极智项目 | 实战retinaface人脸检测

欢迎关注我,获取我的更多经验分享

大家好,我是极智视界,本文介绍 实战retinaface人脸检测,并提供完整项目源码。

本文介绍的实战retinaface人脸检测项目,提供完整的可以一键训练、测试的项目工程源码,获取方式有两个:

(1) 我整理的项目资源下载,链接:人脸检测项目-retinaface-pytorch-深度学习文档类资源-CSDN下载

(2) 加入我的知识星球「极智视界」,星球内有更多项目源码下载,链接:https://t.zsxq.com/0aiNxERDq

人脸检测任务在AI领域是个古早、重要的任务,它是指给你一副图像,要求找出图像中所有人脸的位置,这个人脸的位置最简单的关键点一般就用两个眼睛、一个鼻子、嘴角两侧五个关键点来进行定位,就像下面这样,后面还可以利用这五个关键点进行人脸畸变校正等其他应用。

人脸检测是很多基于人脸开展任务的基础和前提,如人脸识别、人脸表情分析、换脸等,通常的流程如下。可以看出在人脸相关任务中,人脸检测的位置举足轻重,是一切任务的前提,再获得到了人脸之后,才好进行下一步的分析。如果只是人脸检测单任务,也可以自成应用,比如可以用人脸检测来统计镜头中的人数(计数问题)、用人脸检测来判断镜头中有没有人(有无问题)等。

极智项目 | 实战retinaface人脸检测_第1张图片

介绍了一些人脸检测背景和应用之后,开始咱们的人脸检测项目实战。

在拿到完整工程代码后,可以看到工程的目录结构如下:

极智项目 | 实战retinaface人脸检测_第2张图片

这里我整理了一键执行训练的脚本 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) 环境安装

  1. 下载解压工程源码包;
  2. 安装python3.7,建议可以用anaconda3进行python环境的隔离和管理;
  3. 安装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.pytrain.py中进行修改,可以修改的参数余地较多,如训练的批次、权重衰减、图像尺寸、通道等,具体可以根据自己的需要进行调整。

极智项目 | 实战retinaface人脸检测_第3张图片

极智项目 | 实战retinaface人脸检测_第4张图片

要执行训练,可以直接执行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  -g 
python evaluate.py -p pred_sample -g ground_truth

以上在执行test_widerface.py或test_fddb.py的时候,只需要打开py代码中的--save_image,就可以像我一样保存如下的人脸检测图像,完成人脸检测的整个的过程了。

好了,以上分享了 实战retinaface人脸检测,包括完整的项目工程源码分享,希望我的分享能对你的学习有一点帮助。

【极智视界】

《极智项目 | 实战retinaface人脸检测》

 畅享人工智能的科技魅力。邀请您加入我的知识星球,星球内有丰富的AI技术应用相关技术文章、资源、项目源码,涵盖人脸、检测、分割、多模态、自动驾驶、工业等实用、好玩的项目应用,一定会对你的学习有所帮助。https://t.zsxq.com/0aiNxERDq

你可能感兴趣的:(极智项目,人脸检测,retinaface,pytorch,人工智能,深度学习)