龙空技术网

ArcFace/InsightFace使用自己数据训练人脸识别(1/2)

小梅AI 126

前言:

目前咱们对“人脸对齐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文件中的信息如下图所示,第一列是打乱的序号,第二列是图片的地址,第三列是该图片所对应的的标签。

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,注意没有后缀,以文本形式打开,写上以下内容,如下图所示,第一个数字代表类别总数,第二个和第三个数字代表人脸的尺寸。

制作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。

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代码