Archived
This article has been archived by the owner.2021.11.19
初期尝试部署不同的基于OpenCV软件库和dlib库的人脸识别
一、基于TensorFlow训练的人脸识别神经网络:
识别通过dlib实现, 也可以通过OpenCV实现。在此项目中,假如说想要能够认得我的脸,就需要输入一些我的照片,让它能记住我的人脸特征,为了能够区分我和其他人,还需要提供一些其他人的照片做参照,所以就需要两组数据集来学习,如果想多认识几个人,就多给几组图片集学习。
软件: Python 3.x 、 TensorFlow
获取本人图片集
这里获取本人照片的方式是照片,但前提是照片数量需要足够多,可能需要近千张,程序运行后,得坐在电脑面前不停得给自己的脸摆各种姿势,这样可以提高训练后识别人脸的成功率,在程序中有随机改变对比度与亮度的模块,也是为了提高照片样本的多样性。
参考信息:程序中使用的是dlib来识别人脸部分,也可以使用opencv来识别人脸,在实际使用过程中,dlib的识别效果比opencv的好,但opencv识别的速度会快很多,获取10000张人脸照片的情况下,dlib大约花费了1小时,而opencv的花费时间大概只有20分钟。opencv可能会识别一些奇怪的部分,所以综合考虑之后使用了dlib来识别人脸。
获取其他人脸图片集
这里需要其他的人脸集合,只要不是自己的都行,即作为参照的“第二组数据”,此处需要的照片可以在网上下载。
训练模型
有了训练用的数据后,通过CNN(卷积神经网络)来训练数据,来让它记住我的人脸特征。
训练之后的数据会保存在当前目录下。
使用模型进行识别
训练完毕后,运行程序,调用摄像头,就能够识别出在拍摄区域内出现的我的脸。
此项目的核心技术是TensorFlow平台和CNN在本地训练,但需要的初始数据太多,不适合用在项目上。应该使用学校内部分使用的云在信息支持的人脸识别闸机相似的识别流程,即提交一张照片即可作为比对样本
二、基于OpenCV与dlib库进行人脸检测及实时跟踪
此项目采集100帧左右的人脸数据,也可以手动提交,具有学习价值
采集部分代码:
目前大多数人脸识别都选择了OpenCV和dlib两个库来实现,故可能在接下来的时间中会侧重于这两个方向的了解。
版权所有 Copyright 2023 WorldlineChanger Personal. All rights reserved.