1.对图片进行预处理 utils.py
一共是十个文件夹,都是从微博下载下来的,对原始图片需要的是进行识别、裁剪;有很多种方法可以成功,笔者尝试效果比较好的是 caffemodel 或者 haarcascade_frontalface_alt2.xml 这个分类器
1.识别函数在
utils.py
这个文件中,传入的是 cv2 读取的图片,返回原照片已经识别到的人脸数组。
```python
测试一张照片
image_path="./pre_dataset/denglun/1.jpg" image=cv2.imread(image_path) cv2.imshow("denglun",image) image,images=face_detector_dnn(image) for i in images: cv2.imshow("dele ",i) cv2.waitKey(0) ```
识别效果
2.对照片进行扩充或者缩放,由于本模型训练的输入是 160*160
此处的结果小于 160 像素,进行了黑边填充
至此识别以及裁剪的工具类
utils.py
已经实现完毕
2.对数据集进行批量操作 pre_data.py
其实就是调用第一步的函数,以及建立文件夹等操作
if __name__ == '__main__':
# 遍历pre_dataset
for i in os.listdir(PRE_DATASET): # i为姓名
input_dir = PRE_DATASET + "/" + i # ./pre_dataset/zhoujielun
output_dir = OP_DATASET + "/" + i
#如果out_dir不存在建立该文件夹
folder = os.path.exists(output_dir)
if not folder:
os.mkdir(output_dir)
_index = 0
for j in os.listdir(input_dir):
image_path = input_dir + "/" + j #./pre_dataset/zhoujielun/7.jpg
image = cv2.imread(image_path)
image,images=utils.face_detector_dnn(image)
for face in images:
#将人脸存回去
face=utils.resize_image(face)
_index+=1
cv2.imwrite(output_dir+"/%d.jpg"%_index,face)
print("存放"+output_dir+"/%d.jpg"%_index)
#调用识别以及裁剪函数
3.训练
op_model.py
主要是 CLASSES 输入类别个数,而模型是 AlexNet.py 文件中
200 次训练结果:
4.测试结果 test.py
1.摄像头预测 test.py
2.数据集跑测试 valid.py
参考文献
- 基于ARM的人脸识别智能视频监控系统的设计与实现(哈尔滨理工大学·朱雨佳)
- 面向人脸识别的加密认证技术研究与实现(贵州大学·吴俊青)
- 人脸识别布控系统的设计与实现(武汉邮电科学研究院·邓锋)
- 基于大余量余弦损失函数的口罩人脸识别算法研究(太原理工大学·冯子坚)
- 基于大余量余弦损失函数的口罩人脸识别算法研究(太原理工大学·冯子坚)
- 面向人脸检测的主题网络爬虫系统(重庆大学·杨东权)
- 电信运营商人脸识别系统的设计与实现(湖北工业大学·陈子健)
- 基于大余量余弦损失函数的口罩人脸识别算法研究(太原理工大学·冯子坚)
- 基于CNN的交互式巨幅人物合照展示系统设计与实现(华中师范大学·刘燕)
- 基于人脸识别的相册管理系统(上海交通大学·田华伟)
- 基于facerecognition的人脸识别平台研究及应用(西南交通大学·汪鹏鹏)
- 人脸识别算法及其在视频剪切中的应用研究(辽宁科技大学·刘旭)
- 基于人脸识别的摄影协会综合管理系统设计与实现(哈尔滨工程大学·李世强)
- 提供人脸识别服务的计费管理系统设计与实现(大连理工大学·宋一凡)
- 基于人脸聚类的图片管理系统的设计与实现(首都经济贸易大学·王子涛)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕设项目助手 ,原文地址:https://m.bishedaima.com/yuanma/35918.html