4dbcb46db52895c72c4642f9b4dffd9b.png

2020年4月23日,YOLOV4开源

2020年6月10日,YOLOV5开源

这两个日子,可是把CV类公众号的运营者忙坏了,各大公众号都在忙着抢“首发”

当然,YOLOV4是货真价实的YOLO系列的第四个版本,虽然J.R大神宣布了“退役”,但是v4依然是其团队的研究成果,是具有正宗YOLO血统的

对于YOLOV5,其作者显然不是YOLO团队的,但是v5的作者也是yolo系列忠实粉丝。ultralytics团队实现的pytorch版本的yoloV3[1],广受好评,在github上获得了5.2K的star。

在YOLOV5开源这一天,其repo上就有人发了issue,说不应该使用yoloV5这个名字。

ea092e7fc58f40b804c7985b7b926cc4.png

在下面讨论区,两派的声音势均力敌。

d32ae6aeb9c9bf5a3786b94a6b2fca19.png

这个“you can you up“,简直笑到我了!

21f1fdda4ff87ccdad3f2304054e9f39.png

对于我来说,这个命名也就是一个代号,不管你叫啥,只要性能牛逼,我就给你点star


一、撕逼

我们现在回到YOLOV5这个算法上来

22f421d066ed0473e2937b01fc3bb66e.png

上图来自于yoloV5的repo,给出了不同大小v5模型和efficientDet的比较。

从图中可以看出,yoloV5不同大小的模型,其性能都优于efficientDet,但是有一点大部分人都觉得很奇怪,为啥没有跟yoloV4比较。既然名字都命名了V5,为啥没有与V4的对比实验。

YoloV5 is here[2]这篇博客中说了YOLOv5在Tesla P100显卡上运行超过140FPS,YOLOv4只能运行到50FPS;v5的模型大小是v4模型大小的十分之一,并且两者精度相当。

感兴趣的同学可以看下原文,截图如下。

0cabad6effae35209ef8b5c5150f79ec.png

到目前为止,YOLOV5还没有发表学术论文,ultralytics是一个公司,并不是一个学术组织。所以现在有很多人对github上发出来的对比数据是持怀疑态度的。详情可以看讨论区[3]和社区[4]

甚至,AlexeyAB也直接在issue怼上了

e0232bb46b7fc51622df22d656a72cca.png

AlexeyAB的态度很明确,u团队做对比实验不科学。拿着小模型的v5和大模型的v4比速度,然后也没提供输入分辨率和batch_size。然后AlexeyAB自己做了对比实验,数据如上图。

然后 Ultralytics团队的Glenn- Jocher,对此作出了回应[5]。表示他们原有计划是要写一篇paper来展示实验过程的,但是由于公司资源限制,这个计划被推迟了。毕竟公司是要恰饭的,可以理解。

4f2584d56bdd42c5f6554bfe0ff4ba38.png

关于YoloV4和YoloV5的对比测评[6],可以看RoboFlow写的这篇文章。这篇文章从yolo的历史开始写起,讨论了命名和自定义数据下的性能。

下图是AlexeyAB实验对比数据,分别对比了v3,v4和v5

8614464a8a0287f674baaf56971b2ca6.png

上面的内容基本都是围绕着命名和性能在讨论(撕逼)

但是对于我们算法狗而言,无所谓啦,只要能开源,你叫啥都行!

把开源的变成自己的,把自己的变成祖传的。

二、训练自己的yoloV5

c572b8607af197b2c6b2347b83571567.gif

1、配置环境

git clone https://github.com/ultralytics/yolov5pip install -U -r yolov5/requirements.txt

2、转换数据格式

将自己的xml或者json文件转换为yolo格式的txt文件

3、选择模型大小

可以选择yolo5s,yolo5m,yolo5l,yolo5x不同大小的模型,模型越大精度越高,速度也就相应越慢

4、修改对应配置文件

•data.yaml•custom_yolov5m.yaml

训练过程可以参考yoloV5的wiki,也可以参考这个训练repo[7]和另外一个训练教程[8]

v5的训练速度还是很快的

我原来有个目标检测项目是使用pelee做的,但是pelee本身的性能确实一般,由于硬件算力限制,不得已只能选轻量级的算法。所以yoloV5s和yolov5m对于轻量级算法选型应该是一个不错的选择。

目前遇到一个问题就是,v5检测效果和推理时间都还不错,但是检出的目标confidence值很低,普遍在0.6-0.8之间。当然也可能是我自己训练的原因,如果后面有进展,我会继续更新。

References

[1] pytorch版本的yoloV3: https://github.com/ultralytics/yolov3[2] YoloV5 is here: https://blog.roboflow.ai/yolov5-is-here/[3] 讨论区: http://github.com/AlexeyAB/darknet/issue/5920[4] 社区: https://www.kaggle.com/c/global-wheat-detection/discussion/158371[5] 回应: https://github.com/ultralytics/yolov5/issues/2[6] YoloV4和YoloV5的对比测评: [https://blog.roboflow.ai/yolov4-versus-yolov5/][7] 训练repo: https://github.com/DataXujing/YOLO-v5[8] 另外一个训练教程: https://blog.roboflow.ai/yolov5-improvements-and-evaluation/

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐