基于RetinaFace+ArcFace的人脸识别测试和验证代码

本文档详细介绍了使用RetinaFace和ArcFace进行人脸识别的代码实现,包括人脸检测、对齐、识别及测试过程。提供了实时采集、批量导入人脸数据的脚本,并提供了基于Resnet50-RetinaFace和IR-SE50-ArcFace的测试代码。同时,还包含了针对CASIA-FaceV5和LFW数据集的验证方法。
摘要由CSDN通过智能技术生成

目录

一、简介

二、代码

1、RetinaFace的人脸检测和人脸对齐代码

2、ArcFace的人脸识别代码

3、完整测试和验证代码

三、测试

1、人脸实时采集take_pic_retina.py

2、人脸批量导入采集take_pic_pic.py

3、人脸库更新和测试 face_verify_retina.py

4、运行

四、公开数据集验证


一、简介

主要介绍用RetinaFace(MobileNet0.25-RetinaFaceResnet50-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人脸识别测试

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bixiwen_liu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值