量子位YOLOv5来了!YOLOv4发布不到50天,推理速度140帧/秒!


贾浩楠 发自 凹非寺
量子位 报道 | 公众号 QbitAI
YOLOv4还没有退热 , YOLOv5已经发布!
6月9日 , Ultralytics公司开源了YOLOv5 , 离上一次YOLOv4发布不到50天 。 而且这一次的YOLOv5是完全基于PyTorch实现的!
量子位YOLOv5来了!YOLOv4发布不到50天,推理速度140帧/秒!
本文插图
在我们还对YOLOv4的各种骚操作、丰富的实验对比惊叹不已时 , YOLOv5又带来了更强实时目标检测技术 。
按照官方给出的数目 , 现版本的YOLOv5每个图像的推理时间最快0.007秒 , 即每秒140帧(FPS) , 但YOLOv5的权重文件大小只有YOLOv4的1/9 。
接下来一起了解一下最新的YOLOv5吧 。
更快更小巧的YOLOv5
老规矩 , 先来介绍一下安装过程 。
安装YOLOv5通过下方代码实现:
$ pip install -U -r requirements.txt
要求Python3.7以上版本 , PyTorch1.5以上 。
YOLOv5的4组不同权重在COCO2017数据集上的结果如下:
量子位YOLOv5来了!YOLOv4发布不到50天,推理速度140帧/秒!
本文插图
所有模型均采用默认配置与超参数训练了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 。
量子位YOLOv5来了!YOLOv4发布不到50天,推理速度140帧/秒!
本文插图
上述指标可以通过如下命令复现:
python test.py —img-size 640 —conf_thres 0.1 —batch-size 16
YOLOv5在单一V-100 GPU的情况下 , COCO 2017数据集上的训练时间分别为:
可以通过以下代码开始训练:
$ python train.py —data coco.yaml —cfg YOLOv5s.yaml —weights ‘’ —batch-size 16
量子位YOLOv5来了!YOLOv4发布不到50天,推理速度140帧/秒!
本文插图
△不同权重YOLOv5的对比
YOLOv5在中国国内街景监控上的实测 , 包含了YOLOv5 s/m/l/x四种不同权重:
量子位YOLOv5来了!YOLOv4发布不到50天,推理速度140帧/秒!
本文插图
△测试视频来自B站@才疏学浅的小白
用户的测试实例并没有给出与前代YOLOv4的对比 , 但官方给出了数据说明 。
YOLOv5速度比前代更快 , 在运行Tesla P100的YOLOv5 Colab笔记本中 , 每个图像的推理时间快至0.007秒 , 意味着每秒140帧(FPS)!相比之下 , YOLOv4在转换为相同的Ultralytics PyTorch后达到了50帧。
同时 , 在研究者对血细胞计数和检测(BCCD)数据集的测试中 , 经过100个epoch的训练 , 获得了大约0.895的平均精度(mAP) , 与EfficientDet和YOLOv4相当 。
量子位YOLOv5来了!YOLOv4发布不到50天,推理速度140帧/秒!
本文插图
YOLOv5体积小 , YOLOv5 s的权重文件为27MB 。 YOLOv4(Darknet架构)的权重文件为244MB 。 YOLOv5比YOLOv4小近90% 。 这意味着YOLOv5可以更轻松地部署到嵌入式设备 。
此外 , 因为YOLOv5是在PyTorch中实现的 , 所以它受益于已建立的PyTorch生态系统;YOLOv5还可以轻松地编译为ONNX和CoreML , 因此这也使得部署到移动设备的过程更加简单 。


推荐阅读