1. 程式人生 > >YOLO論文翻譯

YOLO論文翻譯

摘要

    我們提出了YOLO-一種新的目標檢測的方法,以前 的目標檢測的方法是重新用一個分類器來進行檢測,相反,我們目標檢測的方法是作為一個迴歸的問題,在空間上將邊界框和每個類的概率值分開。一個神經網路直接從影象中預測出每個類的概率值和邊界框。當我們的整個檢測是一個流水線的時候了,我們可以從端到端的優化檢測的效能。

    我們的統一網路結構十分的快,我麼YOLO的基礎模型實時檢測的速度是45幀每秒。更小的網路,快速YOLO,他的實時檢測的速度是155幀每秒,他們同樣達到了其他實時檢測網路的兩倍的mAP。對比目前最先進的檢測系統,YOLO定位失誤更多,但是不太可能把背景預測為正例。最後,YOLO

學習的是目標非常普通的表示,當從一個領域推廣到另外一個領域的時候,比如從自然影象推廣到藝術影象的時候,YOLO這個模型比像DPMR-CNN表現更加好。

1 介紹

    人類看到一張影象的時候,立馬就知道這張影象中的物體是什麼,他們在哪裡,以及他們相互的作用。人類的視覺系統是快而且準的,他允許我們在執行復雜的任務,像開車的時候沒有太多的意識和想法。快速而又準確的目標檢測的演算法允許計算機在沒有特殊感測器的時候駕駛車能夠輔助社祝給人類提供實時的場景的資訊,以及可以解鎖潛在的通用目的,響應機器人系統。

    目前的目標檢測系統重新使用分類器來進行目標檢測,檢測一個目標,其他系統使用一個分類器對目標分類,同時使用不同的位置和尺度測試影象。像

DPM系統,使用一個滑動視窗在整個圖上均勻的滑動。

    更多最近的方法,像R-CNN區域提議方法首先在影象中生成潛在的邊界框,以及在這些潛在的邊界框上使用一個分類器。在分類之後,後面的處理優化邊界框,刪除重複的框,並基於其他的目標的場景中重新設定框。因為每一個獨立的成分必須分開訓練,使得整個複雜的過程很慢,同時很難被優化。

        我們將目標檢測作為一個單一的迴歸問題,直接從影象的畫素到邊界的座標和類的概率。使用我們的系統,你只需要看影象一次,就預測目標是什麼,以及目標在哪裡。


        圖1 YOLO目標檢測系統 。用YOLO處理影象簡單而又直接,我們的系統(1) 將影象歸一化到

448*448 (2) 在影象上跑一個單一的卷積網路,(3)根據模型的置信度限制檢測的結果

YOLO非常簡單,見圖1,單個卷積網路同時預測多個邊界框和和這些邊界框的類的概率,YOLO直接在所喲影象上訓練,直接優化檢測的效能。這個統一的模型和傳統的目標的網路有幾個有點。

第一,YOLO非常的快,81/5000

    由於我們將檢測視為迴歸問題,因此我們不需要複雜的管道。我們只是在測試的時候在一幅新影象上執行我們的神經網路來預測檢測結果。我們的基礎模型在Titan X GPU 上,沒有批量化處理的情況下,我們網路的速度是45幀每秒,一個快的版本的速度大於150幀每秒。這意味著我們可以不到25毫秒的延遲時間內實時處理視訊。此外,YOLO比其他實時檢測系統的mAP大於2倍,有關我們的系統在網路攝像頭上實時執行的演示,請參閱我們的專案網頁:http://pjreddie.com/yolo/.

    第二,YOLO預測時考慮影象的全域性資訊。和滑動視窗和區域建議的方法不同,YOLO在訓練和測試的時候看的是整個影象,因此他隱含編碼類別和他們的表現的上下文資訊。Fast R-CNN,一種高階的檢測方法,因為不能看到更大的上下文,會把背景錯誤的分成目標。YOLOFast RCNN相比,這種錯誤的數量不到Fast RCNN的一半。

    第三,YOLO學習目標的概括性表示,當在自然影象和藝術影象上進行訓練時,YOLO大幅優於頂級的檢測方法比如DPMR-CNN。因為YOLO具有高度概括性,所以當應用於一個新的領域或者意外的輸入時,不太可能發生故障。

    YOLO在準確性方面仍落後於最先進的檢測系統。然而他可以快速的鑑別目標,以及很努力更加精確的定位目標,特別是小目標。在我們的實驗中,我有有所折中。

    我們所有的測試和訓練程式碼都是開源的。各種預訓練的模型也是提供下載的。

2 統一檢測

    我們將目標檢測分開的部分統一為一個神經網路。我們的網路使用從整個影象中提取出的特徵預測每一個邊界框。他們同時也預測影象中所有類的所有邊界框,這就意味著我們網路的原因是整個影象和所有在影象中的目標。YOLO的設計可以從端到端的訓練,以及可以在保持高平均準確度的情況下實現實時的檢測。

    我們的系統將輸入的影象切分成一個S*S的網路,如果一個目標的中心在這個網格中,那麼這個網格就負責檢測這個目標。

    每個單元格預測B個邊界框和這些框的置信度的得分。這些置信度的得分反應了模型預測這個框包含目標的置信度,以及模型的預測這些框的準確度。我們正式將置信度定義為Pr(object)*IOUturth pred  如果在這個單元格中不存在目標,那麼這個置信度的得分應該是0,否則,我們希望置信度的得分等於預測框與真實值之間的交併比(IOU)。

    每一個邊界框包含5個預測值,x,y,w,h以及置信度。(x,y)座標表示相對於網格邊界框的中心,高度h和寬度w是相對於整個影象而言。最後置信度的預測值代表預測框和真實框之間的交併比。

    每一個網格預測還預測C條件類概率,Pr(Classi|Object)。這些概率取決於包含目標的網格單元。我們只是預測每個網格單元的一組類別概率,不管框的數量。

    在測試時我們乘以條件類概率和單個框置信度預測值:

這給出我們了每個框的類的特定的置信度的分數,這些分數編碼類出現在框中的概率

和框擬合這個目標的程度。

2  模型:我們模型檢測作為一個迴歸模型,他把影象切成S*S的網格和每一個網格預測的B 邊界框,置信度,和這些框的C類概率。這些預測值被編碼成一個S*S*(B*5+C)的張量。

PASCAL VOC上評估YOLO,我們使用S=7B=2PASCAL VOC20個類,因此C=20,我們最後預測7*7*30大小的張量。

2.1 網路的設計

我們實現了這個卷積網路模型以及在PASCAL VOC檢測資料集上做了評估。網路的卷積層從影象中提取特徵,而全連線的層預測輸出概率和座標。

我們的模型骨架收到GoogleNet分類模型的啟發,我們的網路有24個卷積層,後面跟兩個全連線層。和Lin 一樣,我們不GoogleNet使用的Inception模組,我們簡單使用1*1還原層和3*3的卷積層。

我們還訓練了一個快速版的YOLO,旨在推動目標邊界的快速檢測。快速版的YOLO使用更少的卷積層,9層卷積層代替之前的24層,以及在這些層裡面更加的濾波器。除了網路的大小,Fast YOLOYOLO所有訓練和測試的引數都是一樣的。


圖3 網路骨架:我們的檢測網路有24個卷積層後面有兩個全連線層。交替1*1的卷積層,減少前一層的特徵空間,我們預訓練卷積層在ImageNet 分類任務上的畫素(224*224),而在檢測上使用雙倍的畫素(448*448)

最後我們網路的輸出是7*7*30的張量。

2.2 訓練

我們在ImageNet 1000類的比賽資料中預訓練卷積層,對於預訓練,我們使用20個卷積層後面接一個averge-pool (平均池化層)層和一個全連線層,見圖3,我們訓練這個網路大概是一週左右,在ImageNet2012年的驗證集上top-5的準確度是88%,和caffe模型裡面的GoogLeNet相當。我們使用DarkNet 框架進行訓練和推理。

然後我們將模型轉化成檢測,Ren 等表明把卷積和全連線層加到預訓練網路效果更加好。根據他們的例子,我們隨機初始化4個卷積層和2個全連線層的權重並新增到預訓練網路中。檢測通常需要細粒度的視覺資訊,因此我們將網路的輸入解析度從224* 224增大到448*448

我們最後的層預測每個類的概率和每個邊界框的座標。我們使用影象的長和寬歸一化邊界框的長和寬這樣保證他們落在[0,1]之間。

我們最後一層的啟用函式是線性啟用函式,所有其他層使用的是leaky ReLU

我們模型的優化目標是輸出的平方和,使用平方誤差和是因為他容易優化,,但它並不完全符合我們最大化平均精度的目標。他對檢測錯誤和分類錯誤賦予同等的權重,這可能並不理想。而且,在每個影象中,許多網格單元不包含任何目標。這將這些不包含目標的單元格的“置信度”分數接近0,通常會壓倒包含目標的單元格的梯度。 這可能導致模型不穩定,從而導致訓練開始發生發散。

為了彌補這個不足,我們增大了對邊界框座標預測的損失,減少了不含有目標的框的置信度的預測損失。我們使用和這兩個引數完成這個彌補的不足。我們設定和。

平方和誤差也同樣對大的和小的框給與相同的權重,我們的誤差應該反映出大的框的偏差要比小框的偏差小,為了解決這個問題,我們預測邊界框的寬和高的平方根,代替直接預測邊界的寬和高。

YOLO每個單元格預測多個邊界框。在預測的的時候,我們希望一個框負責一個目標,我們給預測器分配預測某個目標的責任,基於框和真實值得IOU值大小決定。這導致了邊界框預測器之間的專業化。 每個預測變數可以更好地預測某些尺寸,縱橫比或物件類別,從而改善整體召回率。

在訓練期間,我們優化以下的多部分損失函式:


我們在Pascal  VOC 20072012 資料集上,總共在訓練集和驗證集上跑了135epcohsPascal voc 2012測試時,我們還包括了VOC 2007測試資料用於訓練。我們整個訓練batch_size的大小是64,動量是0.9,衰減因子是0.0005.

我們的學習率是這樣安排的,第一個epoch我們,我們將學習率從10-3,緩慢增加到10-2,如果我們從大的學習率開始,我們的模型通常會由於梯度不穩定而發散。我們繼續用學習率為10-2訓練75個epochs,然後10-3學習率訓練30個epochs,最後使用學習率為10-4訓練30個epochs。

為了避免過擬合,我們使用droupout和其他的資料增強,droupout 的keep_prob大小是0.5,在第一個全連線層後,防止層與層之間的適應,對於資料增強,我們引入隨機縮放,縮放比例是原始影象的20%,我們還在HSV色彩空間中隨機調整影象的曝光和飽和度,最高可達1:5的比例。

2.3 推理

就像訓練一樣,測試影象的時候也是隻需要一個網路進行評估預測,在pascal voc資料集上,網路每張影象預測98個邊界框,每個邊界框預測一個類,YOLO十分的快,因為他只需要一個網路進行評估,不像基於分類器的方法。

網格的設計增強了邊界框預測的空間多樣性,

通常情況下,那個目標落在那個網格中很清楚,網路對每一個目標只預測一個框。大的目標可以被很多個邊界框定位到,非最大抑制可用於修復這些多重檢測。對於R-cnn,DPM,效能不是至關重要,非極大值抑制可以提高mAP 2-3%點

2.4  YOLO的限制

YOLO對邊界框預測強加空間約束,每個網格單元只能預測兩個框,並且只能有一個類。這些空間約束限制我們模型可以預測附近物體的數量,我們的模型與群體中出現的小物體(例如鳥群)發生鬥爭。

因為我們的模型從資料中學到了預測的邊界框,所以他很難推廣到不一樣的,長寬比不同的,結構不一樣的物體上。我們的模型使用相對粗糙的特徵預測的邊界框,因為我們的模型結構從輸入圖片有大量的下采樣層。

最後,當我們訓練一個接近檢測效能的損失函式時,我們小邊界框與大邊界框的誤差相同。在一個大的框中的小錯誤是良性的,但是一個小的框的小誤差對IOU影響很大,我們誤差的主要來源是定位錯誤。

3  和其他的檢測系統對比

目標檢測的核心問題是計算機視覺,檢測流通常從輸入影象中提取一組魯棒性較好的特徵(Haar,SIFT,c卷積特徵)開始。然後,使用分類器或定位來識別特徵空間中的物體。這些分類器和定位可以在整張影象上使用滑動視窗移動,也可以是在影象中的一個子區域滑動。我們對比了YOLO和幾個頂級的檢測框架,突出了相似性和差異。

DPM :DMP使用滑動視窗檢測目標,DPM使用不相交的流來提出靜態特徵,分類區域,在得分高的區域預測邊界框等等。我們的檢測系統使用單一的卷積神經網路代替他們分離的幾部分,網路同時執行特徵提取,邊界框預測,非最大抑制和上下文推理。代替靜態特徵,網路線上訓練特徵,並優化檢測任務。我們統一的結構導致我們模型更加快,比DPM精度更加高。

R-CNN:R-CNN和他的變種使用區域建議的方式代替滑動視窗找到影象中的物體。選擇性搜尋生成潛在的框,卷積層提取特徵,svm對框進行評分,線性模型調整邊界框,非極大值抑制刪除重複框,這些複雜的流程每一階段都需要單獨的精調,每張測試影象測試都需要40s以上

YOLO 和R-cnn有相似處,每一個網格區域都是潛在的邊界框,並使用卷積特徵對這些框打分。然而,我們的系統在網格上使用空間上的約束,幫助我們減緩同一物體多次檢測。我們的系統提出了更少的邊界框,每一張影象只有98個邊界框,而選擇性搜尋需要2000個框,最後,我們的模型獨立的成分聯合成一個單一的,共同優化的模型。

其他快速的檢測:Fast 和Faster Rcnn 框架集中在加速R-cNN框架,通過共享計算以及使用神經網路提取區域代替選擇性搜尋,雖然他們的準確度和速度都比R-cnn要好,但是他們任然達不到實時檢測的效果。

許多研究工作集中於加快DPM管道,他們加快HOG的計算,他們使用級聯,並使用GPU運算。然後實時檢測DPM只有30Hz。

YOLO不是試圖優化大型檢測管道的單個元件,而是完全丟擲管道,並且設計速度很快。

檢測單一類或者是人臉可以高度優化因為他們處理很少的變化,YOLO是一個通用的檢測可以同時學習檢測不同的目標。

Deep MultiBOX  和r-cnn不一樣,訓練卷積神經網路來預測感興趣的區域而不是使用選擇性搜尋,MultiBox還可以通過替換置信度預測單個類別物件檢測。但是,MultiBox無法執行通用物件檢測,並且仍然只是更大檢測流水線中的一部分,需要進一步對影象進行分類。YOLO和MultiBox在一張影象中使用卷積網路預測邊界框,但是YOLOI是一個完整的檢測系統。

OverFeat.:Sermanet等人,訓練一個卷積網路執行定位並使用該定位器執行檢測。OverFeat高效地執行滑動視窗檢測,但它仍然是一個不統一的系統。OverFeat優化定位而不是檢測。和DPM一樣,定位器在做預測時僅僅看區域性的資訊。OverFeat無法推斷全域性上下文,因此需要大量的後處理才能生成一致的檢測結果。

multiGrasp:我們的工作在設計上類似於Redmon等人抓住檢測方面的工作。我們的網格邊界框預測方法基於MultiGrasp系統進行迴歸分析,然而,抓握檢測比物件檢測更簡單。MultiGrasp只需要為包含一個物件的影象預測一個可抓取區域。它不必估計物件的大小,位置或邊界或預測它的類,只找到適合抓取的區域。YOLO預測一張影象中的多個類,多個目標的邊界和類的概率。