1.3MB超輕YOLO算法!全平臺(tái)通用,速度快上45%丨開(kāi)源
本文經(jīng)AI新媒體量子位(公眾號(hào)ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)聯(lián)系出處。
最輕的YOLO算法出來(lái)了!
這是個(gè)模型非常小、號(hào)稱目前最快的YOLO算法——大小只有1.3MB,單核每秒148幀,移動(dòng)設(shè)備上也能輕易部署。
而且,這個(gè)YOLO-Fastest算法滿足所有平臺(tái)的需要。
不論是PyTorch,還是Tensorflow,又或者是Keras和Caffe,可以說(shuō)是全平臺(tái)通用。
此外,作者還推出了超輕YOLO的“加大版”,同樣只需要3.5MB,就能實(shí)現(xiàn)比YOLOv3更好的目標(biāo)檢測(cè)效果。
那么,這么輕的網(wǎng)絡(luò),檢測(cè)效果怎么樣?
1.3MB的超輕YOLO
檢測(cè)效果
下圖是一只快速跑動(dòng)的動(dòng)物,可以看見(jiàn),算法預(yù)測(cè)這只動(dòng)物為雞(chicken)的概率是95%。

不僅在動(dòng)物檢測(cè)上,對(duì)于人的檢測(cè)效果也不錯(cuò)。
從圖中可見(jiàn),正面人物的預(yù)測(cè)概率都超過(guò)了90%,即使是接近側(cè)面的人臉,系統(tǒng)也能準(zhǔn)確預(yù)測(cè)出來(lái),只是概率會(huì)偏小,接近50%。

此外也能看見(jiàn),YOLO不僅能檢測(cè)行人和動(dòng)物,類(lèi)似于餐桌和瓶子這樣的目標(biāo)物體也能檢測(cè)出來(lái)。
當(dāng)然,桌上還有其他的瓶子,不過(guò)沒(méi)有檢測(cè)出來(lái)。
而這樣的檢測(cè)效果,只需要1.3MB大小的YOLO-Fastest模型,相比于3.0MB的MobileNet-YOLOv3,參數(shù)少了65%,速度還要快上45%。

如果硬件要求沒(méi)那么高,相比之下,還是精度更重要的話,這里的YOLO-Fastest-XL會(huì)更加適合。
這個(gè)“加大版”YOLO-Fastest算法是一個(gè)3.5MB的算法模型,mAP要高上不少,達(dá)到了68.8%。
整體來(lái)說(shuō),YOLO-Fastest是個(gè)犧牲一定精度 (大約5%的mAP)、大幅提升速度的目標(biāo)檢測(cè)模型。
結(jié)合最強(qiáng)移動(dòng)端輕量級(jí)神經(jīng)網(wǎng)絡(luò)食用
之所以這么小,也是因?yàn)檫@個(gè)YOLO-Fastest搭配了號(hào)稱當(dāng)前最強(qiáng)的移動(dòng)端輕量級(jí)神經(jīng)網(wǎng)絡(luò)EfficientNet-lite。
這是個(gè)比MobileNet更輕的神經(jīng)網(wǎng)絡(luò),但圖像分類(lèi)的效果還不錯(cuò)。

△ EfficientNet-lite架構(gòu)
不過(guò),這樣的壓縮會(huì)犧牲一定的精度,相比于YOLOv3,YOLO-Fastest模型的mAP只有60.8%。
但對(duì)于一些容量有限的硬件來(lái)說(shuō),已經(jīng)足夠適用了。
那么,究竟為什么要在目標(biāo)檢測(cè)算法中選擇YOLO呢?
YOLO:快速目標(biāo)檢測(cè)
目標(biāo)檢測(cè)算法YOLO的核心,在于它模型體積小、運(yùn)算速度快。
與R-CNN系列(Fast R-CNN、Faster R-CNN等)的算法相比,YOLO的精度上不了臺(tái),但它的速度卻是杠杠的。
檢測(cè)速度,從先驗(yàn)框(下圖中五彩斑斕的框架)變換的頻次就能看出來(lái)。

之所以追求速度,是因?yàn)樽鳛榘卜馈⒆詣?dòng)駕駛領(lǐng)域的核心算法,目標(biāo)檢測(cè)講究實(shí)時(shí)。
如果安防要過(guò)幾秒鐘才能檢測(cè)出竊賊的存在、或是自動(dòng)駕駛汽車(chē)對(duì)路障的感知非常緩慢,那么后果可能會(huì)不堪設(shè)想。
此后誕生出來(lái)的SSD算法,有點(diǎn)像R-CNN和YOLO算法的折中。但對(duì)于某些存儲(chǔ)體積有限的硬件來(lái)說(shuō),依舊只有YOLO才能“裝得進(jìn)去”。
而只有230MFLOPS(每秒運(yùn)行230萬(wàn)次浮點(diǎn)運(yùn)算)的YOLO-Fastest模型,又給算力不足的硬件提供了機(jī)會(huì),使得它有機(jī)會(huì)在更小的機(jī)器上運(yùn)行。
作者相關(guān)
有意思的是,這位在GitHub上名為dog-qiuqiu的作者,此前還寫(xiě)過(guò)基于MobileNet圖像分類(lèi)算法的YOLOv3(GitHub 1.1k星),同樣可以在全平臺(tái)使用。
不僅如此,這個(gè)全平臺(tái)通用的MobileNet-YOLOv3,體積和精度都要優(yōu)于MobileNet-SSD。

在體積只有8.0MB(相比于SSD減少了15.1MB)的情況下,MobileNet-YOLOv3的mAP達(dá)到了73.26%(相比于SSD上升了0.56%)。
如果感興趣的話,可以一同戳下方傳送門(mén)查看這個(gè)目標(biāo)檢測(cè)算法。
傳送門(mén)
1.3MB超輕YOLO:
https://github.com/dog-qiuqiu/Yolo-Fastest
比SSD效果更好的MobileNet-YOLO:
https://github.com/dog-qiuqiu/MobileNet-Yolo