点击关注上方“AI深度视线”,并“星标”公号
技术硬文,第一时间送达!
转自 | 量子位
6月9日,Ultralytics公司开源了YOLOv5,离上一次YOLOv4发布不到50天。而且这一次的YOLOv5是完全基于PyTorch实现的!
在我们还对YOLOv4的各种骚操作、丰富的实验对比惊叹不已时,YOLOv5又带来了更强实时目标检测技术。
按照官方给出的数目,现版本的YOLOv5每个图像的推理时间最快0.007秒,即每秒140帧(FPS),但YOLOv5的权重文件大小只有YOLOv4的1/9。
接下来一起了解一下最新的YOLOv5吧。
老规矩,先来介绍一下安装过程。
安装YOLOv5通过下方代码实现:
$ pip install -U -r requirements.txt
要求Python3.7以上版本,PyTorch1.5以上。
YOLOv5的4组不同权重在COCO2017数据集上的结果如下:
所有模型均采用默认配置与超参数训练了300epoch,且未添加自动扩增技术。
可以看到,它超过了大部分的目标检测器,同时具有超快的速度。
APtest指的是COCO-test-dev2017上的结果,其他AP表示val2017的精度。所有指标均为单模型、单尺度、为进行任何集成与TTA。可以通过如下命令进行重现上述指标:
python test.py —img-size 736 —conf_thres 0.001
延迟是在V100 GPU上对5000个COCO-val2017中的数据进行测试的结果,包含数据预处理、模型推理、后处理以及NMS。平均NMS的时间为1.6ms/image。
上述指标可以通过如下命令复现:
python test.py —img-size 640 —conf_thres 0.1 —batch-size 16
YOLOv5在单一V-100 GPU的情况下,COCO 2017数据集上的训练时间分别为:
YOLOv5 s |
YOLOv5 m |
YOLOv5 l |
YOLOv5 x |
2天 |
4天 |
6天 |
8天 |
可以通过以下代码开始训练:
$ python train.py —data coco.yaml —cfg YOLOv5s.yaml —weights ‘’ —batch-size 16
△不同权重YOLOv5的对比
YOLOv5在中国国内街景监控上的实测,包含了YOLOv5 s/m/l/x四种不同权重:
△测试视频来自B站@才疏学浅的小白
用户的测试实例并没有给出与前代YOLOv4的对比,但官方给出了数据说明。
YOLOv5速度比前代更快,在运行Tesla P100的YOLOv5 Colab笔记本中,每个图像的推理时间快至0.007秒,意味着每秒140帧(FPS)!相比之下,YOLOv4在转换为相同的Ultralytics PyTorch后达到了50帧 。
同时,在研究者对血细胞计数和检测(BCCD)数据集的测试中,经过100个epoch的训练,获得了大约0.895的平均精度(mAP),与EfficientDet和YOLOv4相当。
YOLOv5体积小,YOLOv5 s的权重文件为27MB。YOLOv4(Darknet架构)的权重文件为244MB。YOLOv5比YOLOv4小近90%。这意味着YOLOv5可以更轻松地部署到嵌入式设备。
此外,因为YOLOv5是在PyTorch中实现的,所以它受益于已建立的PyTorch生态系统;YOLOv5还可以轻松地编译为ONNX和CoreML,因此这也使得部署到移动设备的过程更加简单。
严格来讲,这次Ultralytics放出的YOLOv5,是YOLOv4的一个实现版本(性能有改进),只不过是完全用Pyotorch实现了。并且支持转ONNX以及CoreML等,方便用户在移动端部署。
所以也有网友叫它YOLOv4.5。
截止发稿,原YOLO项目官方(Darknet)也没有添加YOLOv5链接,所以,这个「YOLOv5」的名号,是Ultralytics团队自封的。
Ultralytics公司可能大家不熟悉,但提到他们公司的一个项目,很多人应该就知道了:基于PyTorch复现的YOLOv3。按目前github上star数来看,应该是最受欢迎的YOLOv3的PyTorch实现版本。
值得一提的是,Ultralytics公司的Glenn Jocher是mosaic数据增强方法的创建者,这种方法是改进后的YOLOv4中的重要技术。
Glenn Jocher就是这次YOLOv5项目的主要开发者。
尽管官方还没认可项目命名为”YOLOv5”这个名字,但它对上一版本性能的改善和提升十分显著,网友也对其开源的精神纷纷点赞,希望项目继续更新,造福更多的YOLO用户。
https://github.com/ultralytics/YOLOv5