视频人脸识别系统-python+OpenCV
项目描述 基于OpenCV的视频人脸识别系统
基于 OpenCV 的离线人脸识别,通过摄像头实时检测、识别视频中的人脸,支持陌生目标入侵报警。采用 Haar 级联分类器做人脸检测、LBPH 算法做人脸特征训练与识别,识别数据存于本地 SQLite 数据库,无需联网即可运行。
项目功能
人脸采集:录入学号/姓名,摄像头实时抓拍人脸样本并按用户分目录存储
数据管理:维护用户信息表,支持查询、修改、删除,训练后为每个用户分配 face_id 标签
模型训练:遍历人脸库自动训练 LBPH 模型,输出 trainingData.yml 识别模型文件
实时识别:摄像头视频流中框出人脸并显示识别结果(姓名)或「unknown」(陌生人)
人脸跟踪:基于 dlib 相关跟踪算法,减少每帧检测开销
报警系统:检测到陌生目标时触发设备响铃(winsound 播放 alarm.wav)或 Telegram Bot 消息推送
日志系统:多进程日志队列 + 界面实时输出,便于调试与运行追踪
运行环境
操作系统:Windows
Python:3.13(兼容 3.8+)
外部依赖文件:./haarcascades/haarcascade_frontalface_default.xml(Haar 模型)、./alarm.wav(报警音)、./ui/*.ui(Qt 设计文件)、./config/telegramBot.cfg(Telegram 配置)、./icons/(图标)
项目技术
语言:Python
GUI 框架:PyQt5(通过 .ui 文件加载界面)
计算机视觉:OpenCV(opencv-contrib-python,提供 cv2.face 的 LBPH 识别器、Haar 级联检测)
人脸跟踪:dlib(相关跟踪器 correlation_tracker)
数据存储:SQLite3(FaceBase.db,单文件数据库,存储 users 表)
报警通道:winsound(本地响铃)+ python-telegram-bot + PySocks(Telegram 推送代理)
并发模型:threading + multiprocessing.Queue(日志跨进程通信)
核心算法:Haar Cascade 检测 + LBPH(Local Binary Pattern Histogram)识别
配置解析:configparser(Telegram 配置)、logging.config(日志配置)
以上系统源码经过技术整理与调试,确保能正常运行


