Python编程实例——利用Dragonboard 410c开发板实现人脸识别(二)

在上一期基于dragonboard 410c开发板实现人脸识别文章中,已经教大家如何利用python实现人脸识别的第一个部分——人脸检测功能,今天在前面人脸检测的基础上,进一步教大家如何使用createfisherfacerecognizer在dragonbaord 410c开发板上来进行人脸识别,今天将重点介绍该方法的原理和调用方法,处理中只是以识别前面人脸检测方法检测出来的人脸和数据库中存入的人脸进行匹配,最终识别人脸对象。
首先我们需要准备人脸数据,这里我对使用上一期文章中的获取人脸的方法进行了封装,写成了getface.py文件,通过执行该文件在dragonboard 410c上采集了三个人的人脸,每个人的人脸采集5次不同角度数据,分别保存到了usrimg文件夹下的001、002、003文件夹中,对应的命名为1.jpg,2.jpg,3.jpg,4.jpg,5.jpg,这些数据作为训练数据,然后基于这些数据调用facerecognizer提供的方法来实现对测试人脸的预测。
准备好数据后,就可以利用这些数据进行简单的人脸识别了,根据上述数据,使用python编写程序,将数据导入到系统中,然后构建对应的训练数据集合和标签,其中相同的图片对应相同的标签数据,具体的对应方式如下:
人脸图片 标签
./usrimg/001/1.jpg 0
./usrimg/001/2.jpg 0
./usrimg/001/3.jpg 0
./usrimg/001/4.jpg 0
./usrimg/001/5.jpg 0
./usrimg/002/1.jpg 1
./usrimg/002/2.jpg 1
./usrimg/002/3.jpg 1
./usrimg/002/4.jpg 1
./usrimg/002/5.jpg 1
./usrimg/003/1.jpg 2
./usrimg/003/2.jpg 2
./usrimg/003/3.jpg 2
./usrimg/003/4.jpg 2
./usrimg/003/5.jpg 2
在读取中,通过以下代码来读取到limg和lables两个列表中:
dir = ['./usrimg/001/','./usrimg/002/','./usrimg/003/']
name = ['1.jpg','2.jpg','3.jpg','4.jpg','5.jpg']
lables = []
limg = []
n = 0
for x in dir:
for y in name:
obj = cv2.imread(x+y,0)
obj2=cv2.resize(obj,(400,500))
limg.append(obj2)
lables.append(n)
n = n+1
然后就可以调用facerecognizer中提供的方法来进行人脸训练了,具体代码如下:
model = cv2.createfisherfacerecognizer();
model.train(limg,np.array(lables))
完成训练后,读取测试人脸,这里可以用上一期人脸识别文章中的代码读取获取人脸,接着就可以进行人脸测试了,具体代码如下:
img1 = cv2.imread(‘test.jpg’,0)
test=cv2.resize(img1,(400,500))
result = model.predict(test)
print result
完成后,将代码进行保存,运行脚本,就可以得到人脸检测结果,将会输出被检测人脸匹配的标签和相似度,结果如下:
以上就是整个人脸识别实现的过程,后续blog中将进一步完善如何利用摄像头直接检测人脸和识别出对应的人,并且显示姓名。

如何实现纯电动汽车电机驱动系统三相线滤波磁环的设计?
中国移动宋可为:推出三大产品确保互联网金融安全
新型存储器是怎样创造AI算力的
蒸汽拖把好用吗?强烈推介日本轻奢网红同款!
LCD常见模组驱动接口的分类及特点
Python编程实例——利用Dragonboard 410c开发板实现人脸识别(二)
自制太阳能手机充电器
身份验证和生物识别身份系统应用越加广泛
IC Insights:2018年半导体行业资本支出总额超1000亿美元 增长15%
华为FusionCompute资源配置方案
小米出货量反超苹果,未来几年欲成为欧洲第一
电磁屏蔽理论介绍
北明大数据基于openLooKeng大数据技术 开发数据服务跨源分析功能
AI助力机器人健康成长
开发者开发了一款Hololens应用 通过手势和眼神来操控家电
10种经典的软件滤波方法介绍
以传统燃气公司的智能化业务,来看智能家居行业的坚守
数据库国产化替代的必要性与实施策略
特斯拉打盹模式新功能,可设置闹钟和空调系统
3D打印技术在航空航天领域有了新的发展方向