目录
3、人脸库更新和测试 face_verify_retina.py
一、简介
主要介绍用RetinaFace(MobileNet0.25-RetinaFace和Resnet50-RetinaFace)和ArcFace(MobileFacenet-ArcFace和IR-SE50-ArcFace)的人脸识别测试和验证代码。
二、代码
1、RetinaFace的人脸检测和人脸对齐代码
人脸检测和人脸对齐部分代码参考:GitHub - biubug6/Pytorch_Retinaface: Retinaface get 80.99% in widerface hard val using mobilenet0.25.,该代码中也包含人脸识别,测试过期效果,不如ArcFace,感兴趣的可以试下。
2、ArcFace的人脸识别代码
人脸识别代码参考:GitHub - TreB1eN/InsightFace_Pytorch: Pytorch0.4.1 codes for InsightFace。
3、完整测试和验证代码
整合人脸检测和人脸对齐代码(GitHub - biubug6/Pytorch_Retinaface: Retinaface get 80.99% in widerface hard val using mobilenet0.25.)和人脸识别代码(GitHub - TreB1eN/InsightFace_Pytorch: Pytorch0.4.1 codes for InsightFace)。
具体代码参看如下:基于RetinaFace+ArcFace的人脸识别测试和验证代码
三、测试
1、人脸实时采集take_pic_retina.py
主要用于人脸采集并加入到人脸库中。take_pic_retina.py在take_pic.py基础上修改,使用RetinaFace模型进行人脸检测和采集。采集时,按键盘“t”表示采集,按键盘“q”表示退出采集。
运行下面代码,结果保存默认在data/facebank/yourname目录下。
python3 take_pic_retina.py --name yourname
2、人脸批量导入采集take_pic_pic.py
主要用于人脸批量采集,将每个人的人脸照片分别放在人名文件夹内,所有人名文件夹在YourFaceDatas文件夹中,或修改take_pic_pic.py文件代码中:imgPath = "YourFaceDatas/"。运行take_pic_pic.py后,结果默认存在data/facebank/MyBank中。
3、人脸库更新和测试 face_verify_retina.py
主要介绍调用入口文件face_verify_retina.py。face_verify_retina.py在源代码文件face_verify.py的基础上修改的。源代码文件face_verify.py中使用的人脸检测模型是MTCNN,在这里将其换为RetinaFace模型。
其中main入口的说明如下,if __name__ == '__main__':
bank_name = 'MyBank' #自己的人脸库
det_model_path = './weights/Resnet50_Final.pth' # 人脸检测使用的模型,这里选择为Resnet50-RetinaFace
#det_model_path = './weights/mobilenet0.25_Final.pth' # MobileNet0.25-RetinaFace
face_thres = 1.0 # 人脸比对阈值
update = True #是否更新人脸库,在第一次建立人脸库或者后面加入或减少人脸时调用;其余设为False
test_res(args, bank_name, det_model_path, face_thres, rec_mobile=False, update=update)#其中,rec_mobile为True,表示使用识别模型MobileFacenet-ArcFace;rec_mobile为False,使用模型IR-SE50-ArcFace
注意:如果这里的人脸库目录在data/facebank/MyBank,若运行了上述 “1、人脸实时采集take_pic_retina.py”,人脸目录在data/facebank/yourname,需要将yourname文件夹复制或剪切到MyBank目录下,才能正确识别。
4、运行
python3 face_verify_retina.py
注:由于本人不是每天登陆CSDN,若有问题私信,不能及时回复请见谅。
四、公开数据集验证
CASIA-FaceV5数据集的验证见:test_all_CASIA-FaceV5.py
LFW数据集的验证见:test_all_lfw.py
可参考博客:RetinaFace+ArcFace人脸识别测试