Fast YOLO: A Fast You Only Look Once System for Real-time Embedded Object Detection in Video 學習筆記


Abstract

  目標檢測被認為是計算機視覺領域最具挑戰性的問題之一,因為它涉及場景中物體分類和物體定位的組合。最近,與其他方法相比,深度神經網絡(DNN)已經被證明可以實現出色的物體檢測性能,其中,就速度和准確性而言,YOLOv2(一種改進的Only Only Look Once模型)是基於DNN的物體檢測中最先進的技術之一盡管YOLOv2可以在強大的GPU上實現實時性能,但利用這種方法在嵌入式計算設備上的視頻中進行實時對象檢測具有有限的計算能力和有限的內存,仍然非常具有挑戰性。

  在本文中,我們提出了一個名為Fast YOLO的新框架,它是一種快速的You Only Look Once框架,可加速YOLOv2以便能夠以實時方式在嵌入式設備上的視頻中執行對象檢測。首先,我們利用進化深度智能框架來進進化YOLOv2網絡架構並生成優化的架構(在此稱為O-YOLOv2),參數少2.8倍,而IOU下降約2%。為了在保持性能的同時進一步降低嵌入式設備的功耗,在所提出的快速YOLO框架中引入運動自適應推理方法,以減少基於時間運動特性的O-YOLOv2的深度推理頻率。實驗結果表明,與原始YOLOv2相比,所提出的快速YOLO框架可以將深度推斷的數量平均減少38.13%,對於視頻中的目標檢測平均加速~3.3X,從而使Fast YOLO在Nvidia Jetson TX1嵌入式系統上運行達到~18FPS。

1 Introduction

  目標檢測是計算機視覺領域最具挑戰性的問題之一。對象檢測的目標是定位場景中的不同對象,並將標簽分配給對象的邊界框。 解決這個問題的最常用的方法是重復使用現有的訓練過的分類器來將標簽分配給場景中的邊界框。 例如,標准滑動窗口方法可用於分類器確定場景中存在的所有可能窗口的對象及其相應標簽。 然而,這種方法不僅計算復雜度高,而且檢測錯誤率也高。

  最近,深度神經網絡(DNNs)在各種不同的應用中表現出優越的性能,目標檢測是DNNs已經顯着超越現有方法的關鍵領域之一。 具體而言,已經證明了許多基於卷積神經網絡(CNN)的方法達到了最先進的目標檢測性能。 例如,在Region-CNN(R-CNN)[5]方法中,CNN體系結構用於在圖像中生成bounding boxes proposals,而不是滑動窗口方法,因此分類器僅對邊界框提議進行分類。 雖然R-CNN能夠產生最新的精確度,但整個過程緩慢且難以優化,因為每個組件都必須單獨進行培訓。

  最近,YOLO目標檢測方法被提出,它通過將對象檢測問題作為一個單一的回歸問題,緩解與R-CNN相關的計算復雜性問題,其中邊界框坐標和類概率是同時計算的。 盡管YOLO被證明比R-CNN具有顯着的速度優勢(例如,Nvidia Titan-X GPU上的每秒45幀),但也表明YOLO的定位誤差顯着高於最近的R-CNN變體,例如 作為更快的R-CNN,Faster R-CNN中的region proposal network(RPN)預測anchor boxes的偏移和置信度,anchor boxes使用人工挑選的priors,而不是直接預測邊界框坐標。 每個anchor box的4個坐標和2個評分值相關聯, which estimate the probability of object and not object of the proposed box.

  由anchor box來改進Faster R-CNN得到啟發,Redmon和Farhadi提出了一種改進的YOLO方法(名為YOLOv2),用anchor boxes預測邊界框。此外,與YOLO相比,YOLOv2在其網絡架構中沒有全連接層。為了使網絡的訓練過程更容易,對訓練集中的邊界框用k均值聚類來自動選擇良好的priors,從而提高了建模精度。為了使網絡更快,與其他使用VGG-16的框架相比,YOLOv2采用了新的CNN網絡架構(即Darknet-19)。更具體地說,Darknet-19需要85.2億個浮點運算,與VGG-16相比要低得多,每個正向運算需要306.9億個浮點運算。該方法的實驗結果表明,YOLOv2可以在Nvidia Titan-X GPU上以67 FPS執行目標檢測,同時實現最先進的檢測性能。
  
   盡管YOLOv2能夠在強大的GPU上實現實時性能,但利用這種方法在嵌入式計算設備上的視頻實時對象檢測方面仍然非常具有挑戰性,而且計算能力有限且內存有限。 例如,在智能手機實時推斷和嵌入式視頻監控等不同的現實世界應用中,可用計算資源僅限於低功率GPU的組合,甚至僅限於內存有限的嵌入式CPU。 因此,嵌入式設備視頻中的實時對象檢測仍然是解決問題的一大挑戰。
  
  為了應對這一挑戰,我們提出了一個名為Fast YOLO的新框架,該框架通過兩個關鍵策略加速YOLOv2在嵌入式設備視頻中的實時目標檢測。首先,由ShafiEe等證明的結果,我們利用進化深度智能框架的方法來進化YOLOv2網絡架構,並產生一個優化的架構(在這里稱為O-YOLOv2),它具有明顯更少的參數,同時保持強大的檢測性能。其次,在所提出的Fast YOLO框架中引入了運動自適應推理方法,以減少基於時間運動特征的O-YOLOv2深度推理的頻率。這兩種策略的結合產生了一種對象檢測框架,不僅提高了視頻的實時嵌入式目標檢測的速度,使其在有限的計算能力,內存和功耗的嵌入式設備上能夠運行。本文的結構如下。在第2節中,詳細介紹了Fast YOLO背后的方法。展示快速YOLO效率的實驗結果在第3節中給出,並在第4節中得出結論。

2 Methodology

  所提出的Fast YOLO框架分為兩個主要組件:i)優化的YOLOv2架構,以及ii)運動自適應推理(見Figure 1)。 對於視頻每一幀,由視頻幀與參考幀組成的圖像棧被傳遞到1×1卷積層。 卷積層的結果是運動概率映射,然后將其饋送到運動自適應推斷模塊以確定是否需要深度推斷來計算更新的類別概率映射。 正如Introduction中提到的,主要目標是引入視頻中的對象檢測框架,可以在嵌入式設備上更快地執行操作,同時減少資源使用,進而顯着降低功耗。 通過利用這種運動自適應推理方法,深度推斷的頻率大大降低,並且僅在必要時才執行。

  

2.1 Optimized Network Architecture

  深度神經網絡的主要挑戰之一,尤其是在將它們用於嵌入式場景時,主要體現在網絡架構設計中。設計過程通常由人類專家來完成,他探索大量的網絡配置,從而在建模精度和參數數量方面為特定任務尋找最佳架構。目前通常將尋找優化網絡架構作為超參數優化問題來解決,但這種解決該問題的方法非常耗時且大多數方法對於大型網絡架構而言在計算上難以處理,或者導致次優解決方案不足以應用到嵌入式系統中。例如,超參數優化的常用方法是網格搜索,其中檢查大范圍的不同網絡配置,然后選擇最佳配置作為最終網絡架構。然而,為了視頻中的對象檢測而設計的深度神經網絡(例如YOLOv2)具有大量的參數,因此在計算上不易搜索整個參數空間以找到最優解。因此,我們不是利用超參數優化方法來獲得基於YOLOv2的最佳網絡架構,而是利用專門設計的用於提高網絡效率的網絡優化策略特別是,我們利用進化深度智能框架來優化網絡架構,以合成一個滿足嵌入式設備內存和計算能力限制的深度神經網絡。

  在進化深度智能框架中,深層神經網絡的建築特征通過概率遺傳編碼建模策略建模。具體而言,以這種方式產生的概率“DNA”編碼在網絡架構內存在所有可能的突觸的概率。然后利用祖先網絡(模仿遺傳)的概率“DNA”以及環境因素以隨機方式(模仿自然選擇和隨機突變)合成新的后代深度神經網絡。這種編碼和合成過程是一代一代重復的,隨着時間的推移會產生越來越有效的深度神經網絡。這種方法的一個關鍵優勢是,與超參數優化方法不同,需要評估大量可能的解決方案,這是顯着減少的,因此顯着降低了尋找最佳網絡架構的計算復雜性。

  為了利用演化深度智能框架獲得基於YOLOv2的優化網絡體系結構,以實現視頻嵌入式對象檢測,我們考慮到計算能力和可用內存在嵌入式設備上受到很大限制的事實。 因此,我們配置網絡合成過程中使用的環境因素,使得網絡結構中的參數數量在每一代都大大減少,因為參數的數量是深度神經網絡計算和存儲要求的主要因素。

  使用這種方法,我們可以自動找到基於YOLOv2(我們將稱之為O-YOLOv2)的優化網絡體系結構,該體系結構與原始YOLOv2網絡體系結構相比,包含的參數少了約2.8倍。 運行這種優化的深度神經網絡不僅大大降低了計算和內存的需求,而且還降低了處理器單元的功耗,這對於嵌入式設備非常重要。

2.2 Motion-adaptive Inference

  為了進一步降低視頻中嵌入對象檢測的處理器單元的功耗,我們利用並非所有捕獲的視頻幀都包含唯一信息這一事實,因此不需要在所有幀上執行深入推理。 因此,我們引入運動自適應推理方法來確定特定視頻幀是否需要深度推斷。 通過在必要時使用前面章節中介紹的O-YOLOv2網絡進行深入推理,該運動自適應推理技術可以幫助框架減少對計算資源的需求,從而顯着降低系統的功耗以及 處理速度的提高。

  運動自適應推理過程可以在Figure 1中看到。每個幀與參考幀Iref堆疊在一起形成一個圖像堆棧。 然后在圖像堆棧上執行1×1卷積層以產生運動概率圖。 運動概率映射連同框架It一起被傳遞到運動自適應推理模塊,該模塊確定框架與參考框架相比是否足夠獨特,以確保深度推理計算新的類別概率圖。 如果模塊確定需要進行深度推理,則使用O-YOLOv2網絡來計算更新的類別概率圖,然后將它和更新的圖分別存儲為Iref和參考概率圖。 在運動自適應推理模塊確定幀It不需要深度推斷的情況下,所存儲的參考類概率圖被直接使用而不在幀It上執行O-YOLOv2。

  通過利用這個簡單而有效的過程,只有需要深度推理的幀才能被處理,這不僅降低了功耗,而且還減少了每幀的平均運行時間,並且可以為靜止的或頻繁發生微小變化的環境提供更快的框架。

3 Results & Discussion

  對提出的Fast-YOLO框架使用兩種不同的策略進行評估。 首先,我們評估優化的YOLOv2(即O-YOLOv2)網絡架構在Pascal VOC 2007數據集上的原始YOLOv2網絡架構的建模精度和性能,以演示網絡架構優化過程的有效性。 Table 1顯示了O-YOLOv2與Pascal VOC數據集上原始YOLOv2之間的架構和性能比較。 可以觀察到,與原始YOLOv2相比,O-YOLO網絡架構小2.8倍,IOU僅下降2%,這對真實世界的基於視頻的對象檢測應用幾乎沒有影響。

  

  其次,提出的Fast YOLO框架,O-YOLOv2和原始YOLOv2是根據的視頻在Nvidia Jetson TX1嵌入式系統上的平均運行時間來評估的。 從Table 2可以看出,所提出的快速YOLO框架可以將深度推斷的數量平均減少68.5%,從而導致平均運行時間為56ms,而原始YOLOv2實現的運行時間為184ms(速度約3.3x以上)。

  

4 Conclusion

  在本文中,我們介紹了Fast YOLO,這是一個用於視頻中實時嵌入對象檢測的新框架。 雖然YOLOv2被認為是在強大的GPU上實時推斷的最先進的框架,但它不可能在嵌入式設備上實時使用它。 在這里,我們利用進化深度智能框架,基於YOLOv2生成優化的網絡架構。 優化的網絡架構被用於運動自適應推理框架內,以加速檢測過程並降低嵌入式設備的能耗。 實驗結果表明,所提出的Fast YOLO框架的平均運行時間比原來的YOLOv2快3.3倍,平均可以減少38.13%的深層推理,並且具有約小2.8x的網絡結構。

 

  

 

 

  

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM