极智项目 | 实战retinaface人脸检测
Posted 极智视界
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了极智项目 | 实战retinaface人脸检测相关的知识,希望对你有一定的参考价值。
欢迎关注我,获取我的更多经验分享
大家好,我是极智视界,本文介绍 实战retinaface人脸检测,并提供完整项目源码。
本文介绍的实战retinaface人脸检测项目,提供完整的可以一键训练、测试的项目工程源码,获取方式有两个:
(1) 我整理的项目资源下载,链接:人脸检测项目-retinaface-pytorch-深度学习文档类资源-CSDN下载
(2) 加入我的知识星球「极智视界」,星球内有更多项目源码下载,链接:https://t.zsxq.com/0aiNxERDq
人脸检测任务在AI领域是个古早、重要的任务,它是指给你一副图像,要求找出图像中所有人脸的位置,这个人脸的位置最简单的关键点一般就用两个眼睛、一个鼻子、嘴角两侧五个关键点来进行定位,就像下面这样,后面还可以利用这五个关键点进行人脸畸变校正等其他应用。
人脸检测是很多基于人脸开展任务的基础和前提,如人脸识别、人脸表情分析、换脸等,通常的流程如下。可以看出在人脸相关任务中,人脸检测的位置举足轻重,是一切任务的前提,再获得到了人脸之后,才好进行下一步的分析。如果只是人脸检测单任务,也可以自成应用,比如可以用人脸检测来统计镜头中的人数(计数问题)、用人脸检测来判断镜头中有没有人(有无问题)等。
介绍了一些人脸检测背景和应用之后,开始咱们的人脸检测项目实战。
在拿到完整工程代码后,可以看到工程的目录结构如下:
这里我整理了一键执行训练的脚本 run_train.sh,以及一键测试的脚本 run_test_fddb.sh、run_test_widerface.sh。在拿到工程源码并做好准备工作后 (准备数据集、安装py环境),然后只要直接执行run_train.sh就能够进行训练了,先来窥一窥run_train.sh的内容:
CUDA_VISIBLE_DEVICES=0 python train.py --network mobile0.25
#CUDA_VISIBLE_DEVICES=0 python train.py --network resnet50
#CUDA_VISIBLE_DEVICES=0,1,2,3 python train.py --network resnet50
有了工程源码后,跟着我一步步安装和使用。
(1) 环境安装
- 下载解压工程源码包;
- 安装python3.7,建议可以用anaconda3进行python环境的隔离和管理;
- 安装pytorch和torchvision,pytorch版本1.1.0+,torchvision版本0.3.0+,可以直接用pip进行安装;
(2) 数据集准备
这里使用的人脸训练数据集是widerface,并组织成如下的目录结构:
./data/widerface/
train/
images/
label.txt
val/
images/
wider_val.txt
当然,我做的工程肯定是十分友好的,这里不需要你自己从零开始组织训练数据集,我已经整理好并上传baidudisk(链接:点击这里提取 获取码:6666) (相关的数据集下载方式在工程的README.md也有说明),下载拿到整理好的数据集后直接解压放到retinaface/data/
目录下就可以了,这样训练数据集就准备好了。
(3) 训练
训练相关的配置可以在data/config.py
和train.py
中进行修改,可以修改的参数余地较多,如训练的批次、权重衰减、图像尺寸、通道等,具体可以根据自己的需要进行调整。
要执行训练,可以直接执行run_train.sh,完了会在 ./weights/下生成训练好的权重文件,还会保存中间训练过程权重文件。
./weights/
mobilenet0.25_Final.pth
mobilenet0.25_epochxxx.pth ... ==> 中间训练权重文件
mobilenetV1X0.25_pretrain.tar
Resnet50_Final.pth
(4) 验证
验证可以分为基于两个数据集的验证:基于widerface和基于fddb。
1. 基于widerface验证
# 1.生成txt file
python test_widerface.py --trained_model weight_file --network mobile0.25 or resnet50
# 2.验证txt res
cd ./widerface_evaluate
python setup.py build_ext --inplace
python evaluation.py
2. 基于fddb验证
# 1.生成txt file
python test_fddb.py --trained_model weight_file --network mobile0.25 or resnet50
# 2.验证txt res
cd ./FDDB_evaluate
python setup.py build_ext --inplace
#python evaluate.py -p <your prediction dir> -g <groud truth dir>
python evaluate.py -p pred_sample -g ground_truth
以上在执行test_widerface.py或test_fddb.py的时候,只需要打开py代码中的--save_image
,就可以像我一样保存如下的人脸检测图像,完成人脸检测的整个的过程了。
好了,以上分享了 实战retinaface人脸检测,包括完整的项目工程源码分享,希望我的分享能对你的学习有一点帮助。
【极智视界】
畅享人工智能的科技魅力。邀请您加入我的知识星球,星球内有丰富的AI技术应用相关技术文章、资源、项目源码,涵盖人脸、检测、分割、多模态、自动驾驶、工业等实用、好玩的项目应用,一定会对你的学习有所帮助。
欢迎关注我的微信公众号「极智视界」,获取我的更多经验分享,让我们用极致+极客的心态来迎接AI !
以上是关于极智项目 | 实战retinaface人脸检测的主要内容,如果未能解决你的问题,请参考以下文章