éœ€æ±‚åˆ†æžæ–‡æ¡£ è¦æ±‚:[最终形æˆçš„æ–‡æ¡£ï¼Œä»¥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