1.3MB的超轻YOLO算法!全平台通用,准确率接近YOLOv3,速度快上45%丨开源

号称目前最快的目标检测算法

萧箫 发自 凹非寺
量子位 报道 | 公众号 QbitAI

最轻的YOLO算法出来了!

这是个模型非常小、号称目前最快的YOLO算法——大小只有1.3MB,单核每秒148帧,移动设备上也能轻易部署。

而且,这个YOLO-Fastest算法满足所有平台的需要。

不论是PyTorch,还是Tensorflow,又或者是Keras和Caffe,可以说是全平台通用

此外,作者还推出了超轻YOLO的“加大版”,同样只需要3.5MB,就能实现比YOLOv3更好的目标检测效果。

那么,这么轻的网络,检测效果怎么样?

1.3MB的超轻YOLO

检测效果

下图是一只快速跑动的动物,可以看见,算法预测这只动物为鸡(chicken)的概率是95%。

不仅在动物检测上,对于人的检测效果也不错。

从图中可见,正面人物的预测概率都超过了90%,即使是接近侧面的人脸,系统也能准确预测出来,只是概率会偏小,接近50%。

此外也能看见,YOLO不仅能检测行人和动物,类似于餐桌和瓶子这样的目标物体也能检测出来。

当然,桌上还有其他的瓶子,不过没有检测出来。

而这样的检测效果,只需要1.3MB大小的YOLO-Fastest模型,相比于3.0MB的MobileNet-YOLOv3,参数少了65%,速度还要快上45%。

如果硬件要求没那么高,相比之下,还是精度更重要的话,这里的YOLO-Fastest-XL会更加适合。

这个“加大版”YOLO-Fastest算法是一个3.5MB的算法模型,mAP要高上不少,达到了68.8%。

整体来说,YOLO-Fastest是个牺牲一定精度 (大约5%的mAP)、大幅提升速度的目标检测模型。

结合最强移动端轻量级神经网络食用

之所以这么小,也是因为这个YOLO-Fastest搭配了号称当前最强的移动端轻量级神经网络EfficientNet-lite

这是个比MobileNet更轻的神经网络,但图像分类的效果还不错。

△ EfficientNet-lite架构

不过,这样的压缩会牺牲一定的精度,相比于YOLOv3,YOLO-Fastest模型的mAP只有60.8%

但对于一些容量有限的硬件来说,已经足够适用了。

那么,究竟为什么要在目标检测算法中选择YOLO呢?

YOLO:快速目标检测

目标检测算法YOLO的核心,在于它模型体积小、运算速度快。

与R-CNN系列(Fast R-CNN、Faster R-CNN等)的算法相比,YOLO的精度上不了台,但它的速度却是杠杠的。

检测速度,从先验框(下图中五彩斑斓的框架)变换的频次就能看出来。

之所以追求速度,是因为作为安防、自动驾驶领域的核心算法,目标检测讲究实时

如果安防要过几秒钟才能检测出窃贼的存在、或是自动驾驶汽车对路障的感知非常缓慢,那么后果可能会不堪设想。

此后诞生出来的SSD算法,有点像R-CNN和YOLO算法的折中。但对于某些存储体积有限的硬件来说,依旧只有YOLO才能“装得进去”。

而只有230MFLOPS(每秒运行230万次浮点运算)的YOLO-Fastest模型,又给算力不足的硬件提供了机会,使得它有机会在更小的机器上运行。

作者相关

有意思的是,这位在GitHub上名为dog-qiuqiu的作者,此前还写过基于MobileNet图像分类算法的YOLOv3(GitHub 1.1k星),同样可以在全平台使用。

不仅如此,这个全平台通用的MobileNet-YOLOv3,体积和精度都要优于MobileNet-SSD。

在体积只有8.0MB(相比于SSD减少了15.1MB)的情况下,MobileNet-YOLOv3的mAP达到了73.26%(相比于SSD上升了0.56%)。

如果感兴趣的话,可以一同戳下方传送门查看这个目标检测算法。

传送门

1.3MB超轻YOLO:
https://github.com/dog-qiuqiu/Yolo-Fastest

比SSD效果更好的MobileNet-YOLO:
https://github.com/dog-qiuqiu/MobileNet-Yolo

版权所有,未经授权不得以任何形式转载及使用,违者必究。