2025/05/16日日志 基于人脸识别的签到程序-软件开发环境与技术说明
软件开发环境
-
Python开发环境
·语言版本:Python 3.9 或更高版本
·核心依赖库:
·face_recognition:基于dlib的人脸识别库(需C++编译支持)
·OpenCV(cv2):图像采集与实时视频处理
·pymysql:MySQL数据库连接驱动
·PIL/Pillow:图像文件处理与GUI界面图像渲染
·numpy:数值计算及人脸编码数据处理 -
数据库环境
·数据库类型:MySQL 8.0 或更高版本
·关键配置:
·本地数据库服务(localhost)
·用户认证:root/密码"211314"(需根据实际环境配置)
·数据库名称:face_attendance
·字符集:utf8mb4
软件开发技术描述
-
图形界面设计
·GUI框架:基于tkinter和ttk模块构建
·界面特性:
·响应式布局(支持窗口缩放)
·现代风格主题(clam主题)
·卡片式功能按钮与表格数据显示
·多级弹窗交互(文件选择、输入框、消息提示) -
数据库技术
·连接管理:
·使用pymysql建立持久化数据库连接
·事务管理(commit/rollback)
·防重复插入机制(UNIQUE约束)
·表结构设计:
·users表:存储用户ID、姓名、人脸编码(JSON序列化)
·attendance_records表:关联用户ID与签到时间戳 -
人脸识别技术
·核心算法:
·HOG模型检测人脸位置
·CNN模型生成128维人脸编码(face_encodings)
·欧氏距离比对(face_distance)
·阈值设定:
·匹配阈值:0.4(阈值越小匹配越严格,0.4左右可以符合日常生活使用)
·多重采集:10次采样取平均特征 -
多线程处理
·线程隔离:摄像头操作、人脸识别等耗时任务在独立线程执行
·防阻塞机制:通过threading模块实现界面无卡顿 -
异常处理与用户反馈
·异常捕获:
·数据库唯一性约束异常(IntegrityError)
·摄像头访问异常(VideoCapture错误)
·图像文件格式异常
·交互反馈:
·实时状态栏提示
·messagebox弹窗(成功/错误/警告) -
数据存储技术
·人脸编码存储:
·将numpy数组序列化为JSON字符串
·支持从数据库动态加载编码(load_all_encodings)
补:
- 签到记录:
-
时间戳格式:YYYY-MM-DD HH:MM:SS
-
支持最近50条记录查询(LIMIT 50)
- 图像处理技术:
-
实时视频流:
·使用OpenCV捕获摄像头帧(BGR转RGB)
·帧率自适应(通过after方法实现定时更新) -
文件处理:
·支持JPG/PNG格式上传
·人脸检测失败重试机制(最多5次尝试)

浙公网安备 33010602011771号