程序员开发实例大全宝库

网站首页 > 编程文章 正文

webface数据集及DeepID网络,Caffe训练出模型参数,得到人脸识别

zazugpt 2024-08-21 04:27:22 编程文章 14 ℃ 0 评论

项目下载地址:

https://github.com/hqli/face_recognition.git

人脸识别

使用李子青团队的webface人脸数据集,根据汤晓欧团队的DeepID网络,通过Caffe训练出模型参数,经过LFW二分类得到人脸识别准确率。

人脸数据集

李子青团队的webface

  • 下载网址:http://www.cbsr.ia.ac.cn/english/CASIA-WebFace-Database.html

  • 10,575个人,494,414幅图像

  • 需要申请,个人申请无效,需要学校部门的领导或者代表。

图像预处理

对包含人脸的图像进行人脸框识别,人脸对齐和人脸剪裁。

原理

  • 人脸框识别

  • 人脸对齐

  • 人脸剪裁

实现

  • 下载webface

  • 根据预处理工具进行人脸框检测,人脸对齐。

    • http://mmlab.ie.cuhk.edu.hk/archive/CNN_FacePoint.htm

    • 预处理工具是其他人写的,地址:https://github.com/RiweiChen/FaceTools

    • 根据香港中文大学提供的人脸框检测和人脸特征点检测的windows二进制程序实现。

    caffe训练

    根据DeepID的网络使用caffe训练得到模型参数。

    原理

    • 对原始数据分离训练集和测试集

    • 转换为caffe可以处理的lmdb格式

    • 根据设定的Net网络和Solver配置文件进行训练

    • 得到训练的模型

    实现

    • 修改DeepID.py中demo(num)方法中的人脸对齐后的文件夹以及最后一行的中训练的人数(1-10575)。

    • 执行以下代码

    python DeepID.py

    人脸识别检测

    检验训练好的模型,得到LFW的人脸准确率。

    原理

    • 根据http://vis-www.cs.umass.edu/lfw/提供的数据集以及pairs.txt得到需要检验的6000对图像(3000对相同人脸,3000对不同人脸)

    • 分别将对应的两个图像分别作为训练好的模型输入,得到两个160维的特征向量。6000对图像依次进行操作,共得到6000对160维特征向量。

    • 计算对应的特征向量的余弦距离(或欧式距离等其他距离),6000对图像依次进行该操作,得到6000个余弦距离(或欧式距离等其他距离),通过选择阈值得到人脸识别的准确率。

    实现

    • 下载lfwcrop_color.zip

      • http://conradsanderson.id.au/lfwcrop/lfwcrop_color.zip

    • 修改DeepIDTest.py中demo_test方法中caffepath,lfwpath等相关路径,以及最后一行的中训练的人数与所用模型的迭代次数。

    • 在caffe_path(一般为~/caffe-master)下,执行以下代码

    python DeepIDTest.py

    本文暂时没有评论,来添加一个吧(●'◡'●)

    欢迎 发表评论:

    最近发表
    标签列表