yolov5-face是基于yolov5基础上的人脸识别,
感兴趣的朋友可以先看看yolov5相关,yolov5没有论文,
yolov5项目地址:ultralytics/yolov5: YOLOv5 in PyTorch > ONNX > CoreML > TFLite (github.com)https://github.com/ultralytics/yolov5
yolo5-face 的论文:
[2105.12931] YOLO5Face: Why Reinventing a Face Detector (arxiv.org)https://arxiv.org/abs/2105.12931yolov5-face的项目地址:
deepcam-cn/yolov5-face: YOLO5Face: Why Reinventing a Face Detector (https://arxiv.org/abs/2105.12931) (github.com)https://github.com/deepcam-cn/yolov5-face
**************************************************************************************************************
**************************************************************************************************************
(环境我用的是之前配置yolov5的同样环境)
下载网址:
WIDER FACE: A Face Detection BenchmarkFace detection is one of the most studied topics in the computer vision community. Much of the progresses have been made by the availability of face detection benchmark datasets. We show that there is a gap between current face detection performance and the real world requirements. To facilitate future face detection research, we introduce the WIDER FACE dataset, which is 10 times larger than existing datasets. The dataset contains rich annotations, including occlusions, poses, event categories, and face bounding boxes. Faces in the proposed dataset are extremely challenging due to large variations in scale, pose and occlusion. Furthermore, we show that WIDER FACE dataset is an effective training source for face detection. We benchmark several representative detection systems, providing an overview of state-of-the-art performance and propose a solution to deal with large scale variation. Finally, we discuss common failure cases that worth to be further investigated.http://shuoyang1213.me/WIDERFACE/
下载如下压缩包
解压缩到yolo5-face项目下data下新建的widerface文件夹下。
手动把WIDER_train,WIDER_test,WIDER_val,改成train,test,val.wider_face_split不变。(wider_face_split不下载也可以。)
这是单纯只有图片。
https://drive.google.com/file/d/1tU_IjyOwGQfGNUvZGwWWM4SwxKp2PUQ8/view?usp=sharing
下载的是widerface图片的label.txt文件。
全部解压完事后,再去压缩retinaface_gt_v1.1,解压缩位置放到yolov5-face-master项目里data文件夹下新建的widerface文件夹下。
这样的话就会直接放到对应的标签里。
(如果不手动改上面的test/train/val的话,压缩retinaface_gt_v1.1后,会多出test/train/val的文件夹)
接着运行train2yolo.py和val2yolo.py文件,这俩个文件是把数据集转成yolo训练用的格式。
直接运行会出错,如图二,
(需要改变文件路径。一开始我找了train2yolo.py中没有读取和存储路径,以为写在retinaface2yolo.py中,然后就改变retinaface2yolo.py中103和104行,如图三,
换成自己的存放地址运行后在widerface文件夹train文件夹下出现照片对应的.txt文件。项目中没有要求运行retinaface2yolo.py,先略过。)
在data文件夹下新建widerfaceyolo文件夹,放widerface文件夹对应的yolo所需的文件。
wideryolo下新建train文件夹。
修改train2yolo.py文件:注释掉104-126行,修改读取路径和保存路径,如图:
修改代码可复制,记得换成自己的保存路径:
original_path = r'F:/YOLOv5projects/yolov5-face-master/data/widerface/train'
save_path = r'F:/YOLOv5projects/yolov5-face-master/data/widerfaceyolo/train'
aa = WiderFaceDetection(os.path.join(original_path, 'label.txt'))
运行train2yolo.py后,出现图五:
这时在widerfaceyolo文件夹下就有如图
(没细看代码,暂时觉得train2yolo.py和retinaface2yolo.py运行后结果一样,以后有机会看看,现在先忙着把程序运行出来。)
接着修改 val2yolo.py文件:
注释掉54-76行,修改到自己的读存取路径如图:
运行后,
此时widerface文件夹下val下多了照片和.txt文件,
这么写没有把.jpg和.txt文件分开,所以在val下新建2文件夹images和labels,改写代码
运行后:
这样子就是图片是图片,标签是标签啦。
(一开始的没有分类的图片和标签没有什么用啦,大家可以不做那一步,属于我绕路啦)
出错 ImportError:TensorBoard 日志记录需要 TensorBoard 1.15 或更高版本
升级tensorboard后还是出错,参考博客后修改了widerface.yaml文件,还是出错
好像是版本的问题,卸载又重新安装了seaborn,还有scipy后,开始训练:
提示没有找到数据集,应该是路径错误。因为widerface.yaml文件中有
down:bash data/scipts/get_voc.sh所以自动下载voc数据集。voc下载成功,但是还是出错。
以为是之前对数据有处理了俩次,导致不知道读取那一部分的数据,所以删掉那些没有分类的数据。
再次train.py
提示没有models/common.py中没有SPPF,从yolov5项目中复制到刚才路径里SPP类的下面
虽然有警告,但是可忽略。再再次运行train.py
wandb: 错误 api_key 未配置 (no-tty):调用 wandb.login(key=[your_api_key])
在 yolov5 遇到这个问题,需要重新设置一下wandb,在对应的环境终端输入如下代码:
wandb init
然后打开弹出的网址:
打开后复制key
在终端中输入(ctrl + v 在终端中不会出现你粘贴的东西),粘贴后 enter 就好。
然后选择创建一个新的还是远来已经创建好的,就可以:
再再再次运行train.py,提示没有wider_val.txt文件,
(我从别的地方下载下来,放进去,有需要的可以私聊我)
也因为是因为cpu训练,所以改小了epoch和batch-size(大家可不改)
再再再再次运行train.py,提示没有足够的内存,我放弃用CPU训练了,打算看看google的免费GPU.
运行完后在run下会有日志还有一丢丢识别图,但是没有权重文件,也没有生成best.pt等。
同时也生成了wandb相关文件:
可以通过wandb看到标签。
虽然没有训练完,但是有一个可以看到效果
等我用GPU训练后再给大家看最终结果。
20220408来记录结果了。
训练后,又修改训练权重,epoch=100,batch_size=32
错误原因:是setuptools的版本问题,
原本setuptools==60.10.0改为pip installsetuptools==59.5.0
batch_size越大,所占运行空间内存越大
训练完事后,修改训练权重,改为摄像头,运行Detect_face.py,出错。
不能识别摄像头,只能读取照片路径。
只能识别单张照片。没有写循环,读取照片时候是单张,写入新的照片需要改名字,要不然会把之前的识别照片覆盖。
修改参数,识别照片,
训练结果如图:
Batch_size小,所占运算内存就越小。这取决于CPU,GPU的运算能力。
一共有俩个权重,一个是yolov5-buzeface.pt,一个是yolo5s.pt,5s的效果更好。
Export.py和yolo.py是用于将模型装换为c++可调用的模型
Yolo.py中 for I(f,n,m,args)in enumerate开始迭代循环backbone与head的配置。f,n,m,args分别代表着从哪层开始,模块的默认深度,模块的类型和模块的参数。
项目,数据集,训练后的权重文件,还有加了注意力训练的权重文件。下载地址:
链接:https://pan.baidu.com/s/1xzjUIc8lbRtWN4NqSLCs6A
提取码:wclb
可以参考这几篇:
(1条消息) ❀YOLO5学习❀基于yolo5-face结合注意力模型SE的数据实验_夏天|여름이다的博客-CSDN博客
(1条消息) ❀YOLO5学习❀基于yolo5-face结合注意力模型CBAM的数据实验_夏天|여름이다的博客-CSDN博客
[1](1条消息) YOLOv5Face YOLO5Face人脸检测论文及代码简析_cliu1_16的博客-CSDN博客_yolov5人脸检测
[2]
(1条消息) yoloV5-face学习笔记_m0_58348465的博客-CSDN博客_yolov5face