最近因为有使用yolov5做人脸检测器,了解到了这个项目,做起来发现有不少需要解决的内容,于是乎做个记录,供后人参考。
论文地址:https://arxiv.org/abs/2105.12931
源码地址:https://github.com/deepcam-cn/yolov5-face
可从上文参考中下载博主们已经转换好的数据集,也可以用官方代码来转,官方代码中:
这两个文件可以提供把WIDER FACE: A Face Detection Benchmark (shuoyang1213.me)http://shuoyang1213.me/WIDERFACE/
转换为该项目可读取格式的功能,但值得一提的是他们的保存路径都需要修改,此处比较容易,毕竟可以直接抄博主们的作业,自己转也不费什么功夫,更改路径即可。
训练按照官方的步骤来就好,如果运行报错(非文件缺失)可以直接搜索解决方案。
这里整理一下我遇到的问题:
参照这篇文章可以妥善解决:(21条消息) Yolov5训练时报错:UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the ind_"userwarning: initializing zero-element tensors is_奋斗的豆腐的博客-CSDN博客https://blog.csdn.net/qq_43742820/article/details/126747455
(21条消息) 解决错误:RuntimeError: result type Float can‘t be cast to the desired output type __int64_顾悦西的博客-CSDN博客https://blog.csdn.net/qq_39195736/article/details/128233102
--data data/widerface.yaml --epochs 100 --cfg models/yolov5n.yaml --weights weights/yolov5n-face.pt
cfg和weights选择自己需求的就好,但是版本太高的容易报错,此外我设置了epochs,页面也只显示我跑了100epochs,但是最后的输出结果却有250个epochs,很神秘。
而widerface.yaml是需要根据你处理后的数据集来修改的,大体如下:
建议使用绝对路径,相对路径我看了没啥错误不知道为什么没读上。
第一轮中处理的数据集似乎不能用于评估,还是得回到最开始的widerface数据集,这里上面的博文中也有整理,自行下载即可,完成上一步以后请按照实际情况修改数据集的val集路径和保存的路径,建议使用绝对路径。
但是直接运行的话你可能会遇到大量文件无法打开的问题,这是因为:widerface\val\images下面仍有子文件夹,此项目的代码没法正常读取,这里与:GitHub - biubug6/Pytorch_Retinaface: Retinaface get 80.99% in widerface hard val using mobilenet0.25.Retinaface get 80.99% in widerface hard val using mobilenet0.25. - GitHub - biubug6/Pytorch_Retinaface: Retinaface get 80.99% in widerface hard val using mobilenet0.25.https://github.com/biubug6/Pytorch_Retinaface.git 这个项目有很大的不同(这个项目的代码可以读取子文件夹路径),上文博客里也有教你怎么处理这种情况的方法:
可以直接复制下面这段:
# for image_path in tqdm(glob.glob(os.path.join(testset_folder, '*'))):
for image_path in tqdm(glob.glob(os.path.join(testset_folder, '*','*.jpg'))):
生成的文件就是可以使用于widerface_eval评估包的代码了,这个包可以在这里下载(官方渠道):WIDER FACE: A Face Detection Benchmark (shuoyang1213.me)http://shuoyang1213.me/WIDERFACE/WiderFace_Results.html
项目里也有包含就是了。
运行评估程序:报错。
可参考:(21条消息) ImportError: cannot import name ‘bbox_overlaps‘ from ‘bbox‘问题解决_小夏有点慌的博客-CSDN博客后面的程序如果没有走通可参考:
Pytorch_Retinaface/README.md at master · biubug6/Pytorch_Retinaface · GitHubhttps://github.com/biubug6/Pytorch_Retinaface/blob/master/README.md
使用生成好的txt文件完成Evaluation后的步骤即可。
感谢所有乐于分享的老哥们。