前言:
目前咱们对“人脸对齐python代码”大约比较着重,我们都需要了解一些“人脸对齐python代码”的相关资讯。那么小编在网络上收集了一些对于“人脸对齐python代码””的相关内容,希望我们能喜欢,看官们一起来了解一下吧!本文介绍一下如何使用自己的数据集训练自己的人脸识别项目。
一、人脸数据集对齐
首先下载insightface源码,点击github链接下载(下载地址见第一个评论),也可以通过百度盘下载(下载地址见第一个评论),本文代码需在python2.7环境下运行,文章中所需的脚本文件下载地址(下载地址见第一个评论)。
在进行训练之前。首先要准备好自己的数据,数据的存放形式如下图所示,每个文件夹代表一个人,文件夹下放置属于这个人的多张照片。
人脸对齐
然后,需要对所有的照片中的人脸进行对齐处理,并把每张图片缩放到112x112。人脸对齐使用MTCNN,insightface中自带的就有MTCNN和其模型文件,拷贝face_alignment_by_mtcnn.py(在下载的脚本文件里)到deploy文件夹下,修改原始人脸数据文件夹和对齐后要保存的文件夹位置,如下图所示,然后直接运行该程序。
faces_path = r'F:\datasets\20_faces' # 人脸数据文件夹output_path = r'F:\datasets\20_faces_clip' # 对齐后保存人脸数据的文件夹二、生成lst文件
lst文件中主要包含图片的路径、标签、序号等信息,为后面制作数据文件做准备,lst文件中的信息如下图所示,第一列是打乱的序号,第二列是图片的地址,第三列是该图片所对应的的标签。
开始制作
首先复制face2rec2_m.py文件到scr/data文件夹下,然后命令行窗口中输入以下命令:
python -u face2rec2_m.py --list True --prefix F:\datasets\20_faces_datasets\ --root F:\datasets\20_faces_clip\ --train-ratio 0.8 --test-ratio 0.2 --recursive True
参数解释:
--list:是否生成lst文件
--prefix:lst文件保存位置
--root:对齐后人脸数据存放位置
--train-ratio/--test-ratio:训练集和测试集的比例
三、生成rec文件制作proprety
创建文件proprety,注意没有后缀,以文本形式打开,写上以下内容,如下图所示,第一个数字代表类别总数,第二个和第三个数字代表人脸的尺寸。
生成rec文件
进入到face2rec2_m.py所在的目录,然后命令行窗口中输入以下命令:
python -u face2rec2_m.py --prefix F:\datasets\20_faces_datasets\ --root F:\datasets\20_faces_clip\ --train-ratio 0.8 --test-ratio 0.2 --recursive True
参数解释:
--prefix:lst文件保存位置
--root:对齐后的人脸数据存放位置
--train-ratio/--test-ratio:训练集和测试集的比例
然后会在指定目录生成idx和rec文件,idx文件是辅助生成rec的,rec是MXNet训练所需的数据格式。
四、生成bin文件制作pairs.txt
bin文件用于验证和测试,其内容是两两图片的结合,然后给出这两张图片的真实标签,1代表是同一个人,0代表不是同一个人,以此达到验证和测试的目的。
首先我们需要把所有的人脸数据两两结合起来,如下图所示,每一行是一个测试样本,其中前两个是两张图片的地址,最后一个数字代表这两张图片是不是同一个人,运行附件中write_pairs.py,程序中修改人脸数据目录和生成的文件要保存的目录,制作pairs.txt。
生成bin文件
使用附件脚本中 修复MemoryError文件夹下的lfw2pack_m.py和flw_m.py,进入src/data目录下,运行以下命令:
python -u lfw2pack_m.py --txt-dir F:\datasets\20_faces_datasets --output F:\datasets\20_faces_datasets\20_faces.bin
命令行参数解释:
txt-dir:上一步中生成的pairs.txt所在的目录
Output:bin文件所要保存的目录
五、文件制作结果
至此,所有训练和验证中所需的文件都已经制作完成,把所有制作后的文件放到一个目录下,如下图所示。
下个文章介绍最后的训练和验证的过程,点击进入
标签: #人脸对齐python代码