xYOLO | 最新最快的實時目標檢測
隨著物聯(lián)網(wǎng)(IoT)、邊緣計算和自主機器人等領(lǐng)域的車載視覺處理技術(shù)的出現(xiàn),人們對復合高效卷積神經(jīng)網(wǎng)絡(luò)模型在資源受限的硬件設(shè)備上進行實時目標檢測的需求越來越大。Tiny-YOLO通常被認為是低端設(shè)備中速度更快的對象探測器之一,這個也是今天作者工作的基礎(chǔ)。
今天要分享的這篇目標檢測,在Raspberry PI 3B上實驗,Tiny-YOLO可以達到每秒0.14幀的速度,對于足球機器人檢測球門和球來說太慢了。今天要說的這個技術(shù),一種改進的YOLO CNN模型xYOLO,它可以在Raspberry PI 3 B上以9.66 FPS的速度實現(xiàn)目標檢測,這是通過交換一個可接受的精度來實現(xiàn)的,使網(wǎng)絡(luò)比Tiny-YOLO快約70倍。在CPU和GPU上也實現(xiàn)了更大的推理速度。此外,還提供了一個帶注釋的Darknet數(shù)據(jù)集,用于球門和球的檢測。
相關(guān)工作
傳統(tǒng)上,在機器人杯類人機器人比賽中,基于顏色分割的技術(shù)被用來檢測足球場的特征,如球門和球。這些技術(shù)是快速和可以實現(xiàn)良好的精度在簡單的環(huán)境,例如使用橙色的球,控制室內(nèi)照明和黃色的目標。然而,根據(jù)RoboCup 2050年的球門,球隊已經(jīng)看到了自然光照條件(暴露在陽光下)、白色背景的球門和各種顏色的國際足聯(lián)球?;陬伾指畹募夹g(shù)在這些具有挑戰(zhàn)性的場景中無法發(fā)揮作用,主要推動了實現(xiàn)多種神經(jīng)網(wǎng)絡(luò)方法的競爭。
基于CNN的模型在復雜場景中的目標檢測精度方面取得了很大進展。然而,這些基于cnn的高性能計算機視覺系統(tǒng),雖然比全連接的網(wǎng)絡(luò)精簡得多,但仍然具有相當大的內(nèi)存和計算消耗,并且只有在高端GPU設(shè)備上才能實現(xiàn)實時性。因此,這些型號中的大多數(shù)不適合于低端設(shè)備,如智能手機或移動機器人。這就限制了它們在實時應(yīng)用中的應(yīng)用,比如自主的仿人機器人踢足球,因為有權(quán)力和重量方面的考慮。因此,開發(fā)輕量級、計算效率高的模型,使CNN能夠使用更少的內(nèi)存和最少的計算資源,是一個活躍的研究領(lǐng)域。
最近發(fā)表了大量關(guān)于適合于低端硬件設(shè)備的目標檢測的輕量級深入學習模型的研究論文。這些模型大多基于SSD、SqueezeNet、AlexNet和GoogleNet。在這些模型中,目標檢測流水線通常包含預處理、大量卷積層和后處理等幾個部分。分類器在圖像中的不同位置和多尺度上使用滑動窗口方法或區(qū)域候選方法進行評估。這些復雜的目標檢測計算量大,因此速度慢。XNOR-Net使用二進制運算的近似卷積,與傳統(tǒng)卷積中使用的浮點數(shù)相比計算效率高。XNOR網(wǎng)絡(luò)的一個明顯的缺點是類似大小的網(wǎng)絡(luò)的準確性下降。
另一方面,在you only look once(YOLO),目標檢測是一個單一的回歸問題。YOLO工作在邊界框級別,而不是像素級別,即YOLO同時預測邊界框和相關(guān)的類概率,從整個圖像中在一個“看”。YOLO的一個主要優(yōu)點是它能夠?qū)ι舷挛男畔⑦M行編碼,因此在混淆目標圖像中的背景時出錯較少。
“Lighter”版本的YOLO v3,稱為Tiny-YOLO,設(shè)計時考慮到了速度,并被普遍報道為表現(xiàn)較好的模型之一,在速度和準確性的權(quán)衡。Tiny-YOLO有九個卷積層和兩個全連接層。實驗表明,Tiny-YOLO能夠在Raspberry PI 3上實現(xiàn)0.14 FPS,這與實時目標檢測相差很遠。
從有些文章中的結(jié)果可以看出,這些目標檢測器不能在計算資源最少的低端硬件上提供實時性能(例如,以Raspberry PI作為計算資源的類人機器人)。在作者使用的機器人中,使用一個計算資源來處理幾個不同的過程,例如行走引擎、自我定位等。視覺系統(tǒng)只剩下一個核心來執(zhí)行所有的目標檢測。
新的框架方法
作者提出的網(wǎng)絡(luò)xYOLO是從YOLO v3 tiny派生而來的,具體而言,使用AlexeyAB的DarkNet,它允許XNOR層,并建立在下圖所示的Raspberry PI的基礎(chǔ)上,xYOLO在訓練和recall中都使用了正常的卷積層和XNOR層。
每年的RoboCup比賽都會帶來新的挑戰(zhàn),在比賽開始的時候,模型必須使用收集到的圖像進行再訓練。因此,作者設(shè)計這一網(wǎng)絡(luò)的方法是將訓練時間減少到45分鐘以下,以便對不同的網(wǎng)絡(luò)配置和新的足球場條件進行相對快速的測試。
上圖是一個網(wǎng)絡(luò)的例子,其中的參數(shù)太小,以至于無法檢測對象。在下圖中,這將表現(xiàn)為損失均方誤差在不能將損失降低到可接受的值(即1.5以下)的1000次迭代或模型之前沒有減少到6以下。一般來說可以得出結(jié)論,一個網(wǎng)絡(luò)是否在訓練的前15分鐘有一個合理的機會成功。
實驗及結(jié)果
下面是xYOLO網(wǎng)絡(luò)的結(jié)構(gòu):
如下表所示,與其他測試模型相比,xYOLO在計算效率方面取得了更好的性能。
基于仿人足球數(shù)據(jù)集的目標檢測精度結(jié)果
觀察到上圖,模型在訓練和未見測試集上都取得了相似的精度。與其他模型相比,Tiny-YOLO實現(xiàn)了更好的目標檢測精度。在驗證數(shù)據(jù)集上,xYOLO能夠達到約68%的準確率,在測試集上達到約67%,這在考慮到xYOLO的速度和大小時是很好的。
示例目標檢測結(jié)果由模型產(chǎn)生。左側(cè):Tiny-YOLO,中間:xYOLO,右側(cè):Tiny-YOLO-XNOR。當每個網(wǎng)絡(luò)識別達到檢測閾值的對象時,球和球門被標記。可以觀察到,xYOLO的目標檢測結(jié)果優(yōu)于Tiny-YOLO-XNOR,其結(jié)果與Tiny-YOLO具有可比性。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。