目录
背景
人脸识别已经发展了很多年,随着深度学习发展,开源的模型也有很不错的效果了。我们可以在不需要深入各种算法细节的情况下,就能搭建自己的人脸识别系统了,除了用于学习,还可以将我们自己家的摄像头接入到我们自己搭的系统,真正用起来。这个专栏就基于这样一个设想,从开源的模型中寻找适合的算法,一步步搭建一个实时的人脸识别系统出来。
效果
视频:https://www.bilibili.com/video/BV1Bh4y157f3/
源码:CoderInCV的个人主页 (mbd.pub)
实现功能
- 完全基于开源模型
- 支持输入视频文件、USB摄像头、rtsp视频流
- 注册信息和识别记录存储在sqlite,重启后不消失
- 除了识别人员,还会累计其出现次数
- 对于非注册人员,也会累计其出现次数
- CPU上可实时
系列预计写得一些内容
- 人脸检测
- 人脸跟踪
- 人脸关键点
- 人脸质量
- 人脸特征提取
- 人脸比对
- 动态人脸识别逻辑
计划首先在CSDN更,视情况再看是否转发博客园。
人脸识别_CodingInCV的博客-CSDN博客
整体框架
代码结构
face_recognition_modules
---base_model 模型推理基类
--- configs 全局配置
--- database sqlite数据库相关炒作
--- face_alignment 人脸关键点
--- face_detection 人脸检测
---face_quality 人脸质量
--- face_search 基于faiss的人脸搜索
--- face_recognition 人脸识别,包括识别模型和识别服务
---tracker 人脸跟踪
---common 一些通用结构体和功能函数
models 模型目录
test_images 测试视频和图片
ui 窗口界面
face_detect_task 算法运行的线程
gui.py 程序入口
软件使用说明
在项目目录,运行gui.py
python gui.py
软件界面如下:
注册人员
点击注册人员按钮,选择导入的文件夹,将注册文件夹下的图片,图片的名称为人员的名字。
注册进度会在日志输出区域显示,在识别过程中也可以执行注册人员的操作。
人员注册信息会存在register.sqlite数据库中。
打开输入源
软件支持3种输入源:视频文件、USB摄像头以及rtsp流。
打开视频文件
点击“打开文件”按钮,选择要打开的视频文件,视频预览区将开始播放视频,并画人脸框以及名称。
打开USB摄像头
在USB Camera区域输入摄像头的索引,一般为数字0,然后点击打开摄像头按钮。
打开IP摄像头(rtsp)
在IP Camera区域输入摄像头流地址rtsp://xxxxx,点击打开IP摄像头。
输出说明
识别结果包含人员姓名(不在底库中的为Unkown), 出现的时间以及出现的次数。
注意该出现次数是从注册这个人开始计算,即使软件重启也不会清零,因为识别记录是存储在数据库中,只有点击清空记录,才会重新开始计算。
数据说明
人员注册信息以及识别记录存储在sqlite数据库中,关闭软件不会清空。再次打开时,会自动载入人员,无需重复注册。需要清空可以删除数据库文件或者在软件界面点击相应的按钮。
标签:人脸识别,实时,face,---,开源,人脸,注册,摄像头 From: https://www.cnblogs.com/haoliuhust/p/17638976.html