25-1023工业控制-火力发电厂辅助控制系统
wumu
2025-03-05 29ae692c404ba4e222705db091a50326dcfaabe1
250305
10个文件已添加
145 ■■■■■ 已修改文件
Client/朱琛/code/存放代码.txt 补丁 | 查看 | 原始文档 | blame | 历史
Client/朱琛/document/存放文档.txt 补丁 | 查看 | 原始文档 | blame | 历史
Client/朱琛/log/存放日志.txt 补丁 | 查看 | 原始文档 | blame | 历史
Server/解来鑫/code/存放代码.txt 补丁 | 查看 | 原始文档 | blame | 历史
Server/解来鑫/document/存放文档.txt 补丁 | 查看 | 原始文档 | blame | 历史
Server/解来鑫/log/存放日志.txt 补丁 | 查看 | 原始文档 | blame | 历史
参考文档/日志模板/名字_日期.doc 补丁 | 查看 | 原始文档 | blame | 历史
参考文档/日志模板/日志_姓名_日期.doc 补丁 | 查看 | 原始文档 | blame | 历史
参考文档/需求分析模板/新需求功能规格说明书_2.docx 补丁 | 查看 | 原始文档 | blame | 历史
需求分析要求.txt 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/Öìè¡/code/´æ·Å´úÂë.txt
Client/Öìè¡/document/´æ·ÅÎĵµ.txt
Client/Öìè¡/log/´æ·ÅÈÕÖ¾.txt
Server/½âÀ´öÎ/code/´æ·Å´úÂë.txt
Server/½âÀ´öÎ/document/´æ·ÅÎĵµ.txt
Server/½âÀ´öÎ/log/´æ·ÅÈÕÖ¾.txt
²Î¿¼Îĵµ/ÈÕ־ģ°å/Ãû×Ö_ÈÕÆÚ.doc
Binary files differ
²Î¿¼Îĵµ/ÈÕ־ģ°å/ÈÕÖ¾_ÐÕÃû_ÈÕÆÚ.doc
Binary files differ
²Î¿¼Îĵµ/ÐèÇó·ÖÎöÄ£°å/ÐÂÐèÇó¹¦Äܹæ¸ñ˵Ã÷Êé_2.docx
Binary files differ
ÐèÇó·ÖÎöÒªÇó.txt
New file
@@ -0,0 +1,145 @@
需求分析文档 è¦æ±‚:[最终形成的文档,以word的文档格式表现出来]
1、项目背景
<<<<<<< HEAD
    åº”市场需求,结合业务方向,现决定研发一款考勤打卡设备,及监控一体以AI为主的设备。
2、可查看范围(谁能看这个文档)
    PM,PL以及负责实现各个模块的Pg。
3、专业术语(名词解释,自己写的缩写和一些较生僻的名字)
AI方面:
    TensorFlow框架:由 Google å¼€å‘和维护的开源深度学习框架,被广泛应用于各类机器学习算法的编程实现
    OpenCV框架:是一个广泛使用的开源计算机视觉和机器学习软件库,它提供了各种用于处理图像和视频的工具和算法。
    CNN卷积神经网络算法:Convolutional Neural Network,CNN)是一种专门为处理具有网格结构数据(如图像、音频)而设计的深度学习模型,在图像识别、目标检测、语义分割等诸多领域取得了巨大成功。
卷积层(Convolutional Layer)
卷积操作:通过卷积核(也叫滤波器)在输入数据上滑动,对每个位置进行卷积计算,提取局部特征。例如,在图像上,卷积核与图像的局部区域进行元素相乘并求和,生成特征图。如一个 3×3 çš„卷积核在一张 6×6 çš„图像上滑动,每次计算对应位置的乘积和,得到新的特征值组成新的矩阵(特征图)。
作用:大大减少模型参数数量,降低计算量,同时保留数据的空间结构信息。例如,对于一张 100×100 åƒç´ çš„彩色图像(3 ä¸ªé€šé“),若使用全连接层处理,参数数量巨大;而使用卷积层,通过小的卷积核就能有效提取特征。
池化层(Pooling Layer)
池化操作:常见的有最大池化(Max Pooling)和平均池化(Average Pooling)。最大池化是在一个区域内取最大值,平均池化则是计算区域内的平均值。例如,在 2×2 çš„区域上进行最大池化,就是从这 4 ä¸ªå€¼ä¸­é€‰å–最大的作为输出。
作用:降低数据维度,减少计算量,同时在一定程度上防止过拟合,提高模型的鲁棒性。比如经过多次卷积后特征图尺寸仍然较大,通过池化可以压缩尺寸。
全连接层(Fully Connected Layer)
连接方式:将前面层输出的所有神经元都与本层的每个神经元相连,其权重矩阵包含了所有输入到输出的连接权重。比如,前一层输出 100 ä¸ªç‰¹å¾ï¼Œå…¨è¿žæŽ¥å±‚有 50 ä¸ªç¥žç»å…ƒï¼Œé‚£ä¹ˆæƒé‡çŸ©é˜µå¤§å°å°±æ˜¯ 100×50。
作用:对前面提取到的特征进行综合,完成分类或回归任务。在图像分类中,全连接层将卷积和池化后提取的特征映射到不同的类别上。
激活函数(Activation Function)
常用函数:如 ReLU(Rectified Linear Unit),表达式为 f (x) = max (0, x)。当输入 x å¤§äºŽ 0 æ—¶ï¼Œè¾“出就是 x æœ¬èº«ï¼›å½“ x å°äºŽç­‰äºŽ 0 æ—¶ï¼Œè¾“出为 0。还有 Sigmoid å‡½æ•°ã€Tanh å‡½æ•°ç­‰ã€‚
作用:为模型引入非线性因素,使模型能够学习复杂的非线性关系。如果没有激活函数,无论神经网络有多少层,其输出都是输入的线性组合,无法处理复杂的现实问题。
视频方面:
    Live555框架:是一个开放源代码的、实现了标准流媒体传输协议的多媒体流框架,广泛应用于流媒体服务器和客户端的开发。
    FFmpeg库:是一个强大的开源音视频处理库,被广泛应用于音视频的录制、转码、流式传输等众多领域。
    RTSP协议:(Real Time Streaming Protocol)即实时流协议,是一种用于控制实时数据(如音频、视频)传输的网络协议。
高并发(多线程):
    çº¿æ€§æ± ï¼šæ˜¯ä¸€ç§é¢„先分配一块连续的内存区域或资源集合,然后按照顺序依次分配和使用这些内存块或资源的管理方式。它在初始化时会一次性分配一大块内存或一组资源,后续的分配操作就在这个已分配的区域内进行,直到所有资源都被分配完。
    Epoll:Epoll æ˜¯ Linux å†…核为处理大批量文件描述符而作的改进,是在 2.5.44 å†…核中引入的,用于实现高效的 I/O å¤šè·¯å¤ç”¨ã€‚
通用:
    XML:可扩展标记语言,是一种用于存储和传输数据的标记语言。设计目标是传输和存储数据,而不是显示数据。它的标签没有被预定义,用户可以根据自己的需求自定义标签,具有很强的灵活性和扩展性,被广泛应用于数据交换、配置文件、文档存储等领域。
    TCP:传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议。
4、功能描述
    4.1、总的功能描述(罗列出C,S端的所有功能)
    C端:1.注册,登录       2.权限管理    3.图像录入    4.考勤识别、管理    5.实时播报    6.历史回放    7.摄像头地图标注    8.系统设置    9.版本升级
    S端:   1.socket网络搭建    2.SQL封装,建库、表,备份导出,防注入   3.日志封装生产    4.配置管理   5.图像管理    6.CNN搭建模型,训练,验证,迁移   7.版本管理
    4.2、具体负责模块的描述:[详细描述]若有界面,可以把界面截图放上来,可以文字描述多写一些
        å°½é‡ç”¨é€šä¿—易懂的语言来描述
    1. å‘˜å·¥ä¿¡æ¯è¡¨ï¼šå­˜å‚¨å‘˜å·¥çš„基本信息,如员工编号、姓名、性别、年龄、部门、职业。
    2. è€ƒå‹¤è®°å½•表:存储员工的考勤记录,包括考勤时间、考勤类型(如上班、下班、加班等)、考勤状态(如正常、迟到、早退、旷工等)。
    3. éƒ¨é—¨ä¿¡æ¯è¡¨ï¼šå­˜å‚¨å…¬å¸çš„部门信息,如部门编号、部门名称等。
1. **员工信息表**:存储员工的基本信息,如员工编号、姓名、年龄、性别、出生日期、部门、职位等。该表的主键为员工编号。
2. **考勤记录表**:存储员工的考勤记录,包括考勤日期、上班时间、下班时间、迟到时间、早退时间、旷工时间等。该表的主键为考勤日期和员工编号的组合键。
3. **部门信息表**:存储公司的部门信息,如部门编号、部门名称、部门负责人等。该表的主键为部门编号。
5、负责模块的流程图(绘制并截图)
6、负责模块用到的数据库表:[若用到多张表了,可以绘制ER图(表之间的关系图)]
    è¡¨åã€å­—段名、具体的约束等(二维表格形式罗列)
7、UML类图:模块用到的类名、属性、函数等,以及类之间的关系(六大关系)
8、网络通信用到的结构体[私有协议]:
    è¯·æ±‚结构体
    å“åº”结构体
    ä»¥åŠéœ€è¦ç”¨åˆ°çš„配套结构体
=======
  åº”市场对于高效人员管理和安全监控的强烈需求,同时结合公司业务的发展方向,决定研发一款集考勤打卡与监控功能为一体,且以 AI æŠ€æœ¯ä¸ºæ ¸å¿ƒçš„设备。
  è¿™æ¬¾è®¾å¤‡æ—¨åœ¨ä¸ºå„类企业、机构提供一站式解决方案,帮助其提升管理效率,降低人力成本,并增强安全性。
2、可查看范围
    é¡¹ç›®ç»ç†
  ïƒ¼å¼€å‘人员
    æµ‹è¯•人员
3、专业术语
    è®¾è®¡æž¶æž„:C/S
    C:Client客户端 ç”¨Qt实现
    S:Sersvr服务端 ç”¨C++实现
    TensorFlow框架:一个机器学习框架,用于构建和训练深度学习模型。
    OpenCv框架:计算机视觉库,用于处理图像和视频。
    CNN卷积神经网络算法:处理图像、音频等深度学习的算法,也是面部识别、行为分析等功能的核心算法。
    Live555框架:多媒体流媒体框架,用于实现音频和视频数据的实时传输。
    FFmpeg:对音频、视频进行解码、编码、转码、复用等操作。
    RTSP协议:实时流协议,监控视频流。
    Epoll:处理大量并发连接,提高服务器端处理大量客户端连接请求的效率。
    TCP:传输控制协议。
    XML:可扩展标记语言,用于存储和传输数据。
4、功能描述
    4.1、总的功能描述 (罗列出C/S的所有功能)
      C:1、注册、登录
         2、权限管理
         3、图像录入
         4、考勤识别、管理
         5、实时播放
         6、历史回放
         7、摄像头地图标注
         8、系统设置
         9、版本升级
      S: 1、socket网络搭建
         2、SQL封装,建库、表,备份导出,防注入
         3、日志封装生成
         4、配置管理
         5、图像管理
         6、CNN搭建模型、训练、验证、迁移
         7、版本管理
    4.2、具体负责模块的描述:[详细描述]若有界面,可以把界面截图放上来,可以文字描述多写一些尽量用通俗易懂的语言来描述 (说白话)
      è´Ÿè´£æ¨¡å—:S端版本管理主要负责服务端软件版本的全生命周期管理。
      æ–°ç‰ˆæœ¬ï¼šå½“有新的功能开发完成后或者问题修复后,会生成新的版本。
      ç‰ˆæœ¬ç¼–号:对不同版本进行编号,记录版本的详细信息,包括发布时间、功能特性、修复的问题等。
      ç‰ˆæœ¬æµ‹è¯•:新版本发布时,进行严格的版本测试,确保新版本的稳定性和兼容性。
      åè°ƒå®¢æˆ·ç«¯ï¼šç¡®ä¿å®¢æˆ·ç«¯å¯ä»¥åŠæ—¶èŽ·å–åˆ°æœ€æ–°çš„æœåŠ¡å™¨ç‰ˆæœ¬ã€‚
5、负责模块的流程图 (绘制流程图,开始结束)
      å¼€å§‹->功能开发/问题修复->生成新版本编号->记录版本信息(发布时间、功能、修复问题等)
      ->进行版本测试->发布版本->回滚到上一个稳定版本->通知客户端升级->通知客户端升级->结束。
6、负责模块用到的数据库表:[若用到多张表了,可以绘制ER图]  (表关系图)
    è¡¨åã€å­—段名、具体的约束等 (表格形式罗列)
7、UML类图:模块用到的类名、属性、函数等,以及类之间的关系
8、网络通信用到的结构体[私有协议]:
    è¯·æ±‚结构体:
    struct Request {
    int request_id;        // è¯·æ±‚ID
    string action;        // è¯·æ±‚的动作
    string data;          // é™„加数据
};
    å“åº”结构体:
    struct Response {
    int response_id;      // å“åº”ID
    bool success;         // æ˜¯å¦æˆåŠŸ
    string message;       // å“åº”信息
    string data;          // é™„加数据
};
    ä»¥åŠéœ€è¦ç”¨åˆ°çš„配套结构体
    struct ClientInfo {
    int client_id;        // å®¢æˆ·ç«¯ID
    string version;       // å®¢æˆ·ç«¯ç‰ˆæœ¬
};
>>>>>>> ea8fe583dba43898151a584ae2c8b4d80d2c4772