OpenCV提供了人脸识别和训练的基本功能,实现对多人脸数据的采集、训练和识别。在实时视频中对识别的人脸标注人员信息,如姓名等。
由于涉及人脸采集、训练和用户信息管理等,先展示项目文件结构,具体如下:
config:系统配置和关键参数定义
db:存储用户信息,采用json格式保存,格式如下,后续根据实际可扩展
runlog:系统运行日志(根据实际需要使用)
trained:人脸数据训练后的文件,共人脸识别调用,采用yml格式
users:这里存储采集的人脸数据信息,可以有多个。这里0是0#用户,4是4#用户。
{
"0": [
"AAA",
"2022-04-03 09:04:16",
"./users/0"
],
"4": [
"DDD",
"2022-04-08 16:27:26",
"./users/4"
]
}在这里插入代码片
用户信息采用字典格式,“0”是索引值,也是对应的目录名,key值信息分别为:姓名、建立时间、存储的文件夹
由于是多用户,采用简单的命令管理,具体命令如下:
command_list = '''\n------- Command List -------
[R], 启动人脸识别
[T], 训练人脸数据
[S], 显示所有用户\t\t[C], 清除所有用户
[A], 增加一个用户\t\t[D], 删除指定用户\t\t[U], 更新指定用户
[EXIT], 退出'''
将用户命令文件定义到一个类中,由于代码比较简单,这里就不详细展示了。