YOLOv3论文翻译讲解
YOLOv3: An Incremental Improvement
論文地址;代碼地址
摘要
作者對YOLO進行了進一步的更新,做了一些小設計更改讓其表現更好。YOLOv3比YOLOv2相較大了一些,但是檢測更加準確,而且檢測速度依然很快。320×320 YOLOv3模型能在28.2mAP的精度下運行速度達到了22ms,和SSD的準確度相同但是速度快了3倍。在使用之前的0.5 IOU mAP 檢測指標時,YOLOv3表現相當棒。 在Titan X上,它在51毫秒內可達到57.9 AP50,而RetinaNet在198毫秒內才可達到57.5 AP50,性能相似,但速度快3.8倍。 與往常一樣,所有代碼都可以在https://pjreddie.com/yolo/在線獲得。
1、簡介
這里基本都是作者的一些心里感受,與論文無關;就是作者懶得寫論文了;
有時候,一年的時間會因為一些“瑣事”而消耗殆盡,你有這種感受吧?所以,去年我沒做什么研究,而是花了不少時間Twitter上,也玩了一把GANs。然后利用去年僅存的一點精力,我對YOLO做了點改進。但是,老實說,這并不是什么大手筆,這只是一些可以讓YOLO變得更好小更新,另外,我還幫別人做了一點研究。
事實上,那是我們來這里的原因。我們的文章快交稿了,文中引用了我在YOLO中做出的某些更新的內容,但這樣的引用來源還不存在,所以就先寫個技術報告吧!
技術報告有個好處,就是它不需要長長 “引言”,我想此時,你們都知道我們為什么要寫這個。讀到引言的結尾,我相信你們會對文章的結構有所了解。首先我們會向你介紹YOLOv3的更新情況,然后我們會向你們展示我們做的怎么樣,然后我們會告訴你們一些失敗的嘗試,最后我們要說說這次更新到底意味著什么。
2.想法
YOLOv3中的想法:我們大多從別人那里吸取了好想法。 我們還訓練了一個新的分類器網絡,該網絡要比其他分類器更好。 我們將帶您從頭開始學習整個系統,以便您可以全部了解。
2.1 邊界框預測
遵循YOLO9000,我們的系統使用尺寸簇作為錨定框來預測邊界框。 網絡為每個預測邊界框預測4個坐標(tx,ty,tw,th)。 如果此cell從圖像的左上角偏移了(cx,cy)并且先驗邊界框的寬度和高度為pw,ph,則預測對應于:
在訓練的時候采用均方誤差損失和(sum of squared error loss)。 如果某個坐標預測的ground truth(真實標簽)是 t?*,則相應的梯度就是ground truth(從ground truth box計算得出)減去該坐標的預測值:
t?*- t* 。通過反轉上述公式,可以很容易地計算出groud truth。
YOLOv3使用邏輯回歸預測每個邊界框的對象得分(objectness score)。如果先驗邊界框(bounding box prior)與ground truth object的重疊量大于任何其他的先驗邊界框,則其得分應為1。如果先驗邊界框不是最佳的,但是與ground truth object重疊的閾值超過了某個閾值,則忽略后續預測,作者使用的閾值為.5。我們的系統只為每個 ground truth 對象分配一個邊界框。如果一個先驗邊界框沒有分配給ground truth object,則不會對坐標或者類別預測造成損失,僅會對對象造成損失。
2.2 類別預測
每個邊界框使用多標簽分類來預測邊界框中可能包含的類。我們不使用 softmax,而是使用單獨的邏輯分類器,因為我們發現前者在對于神經網絡高性能沒有什么必要。 在訓練過程中,我們使用二元交叉熵損失來進行類別預測。
這個選擇有助于我們把 YOLOv3 用于更復雜的領域,如公開圖像數據集。這個數據集包含了大量重疊的標簽(如女性和人)。如果我們用 softmax,它會強加一個假設,使每個框只包含一個類別,但通常情況并非如此。多標簽的分類方法能夠更好地模擬數據。
2.3 跨尺度的預測
YOLOv3預測3種不同比例的預測框。我們的系統使用相似的概念從那些比例尺中提取特征以構建金字塔網絡。從基本特征提取器中,我們添加了幾個卷積層。并用最后的卷積層預測一個三維張量編碼:邊界框、框中目標和分類預測。在COCO數據集上進行的實驗中,我們預測每個尺度上有3個預測框,因此對于4個邊界框偏移量,1個對象預測和80個類預測,張量為 N×N×[3 *(4 + 1 + 80)]。
接下來,我們從先前的2層中獲取特征圖,并將其上采樣2倍。我們還從網絡中較早的地方獲取了一個特征圖,并使用串聯將其與我們的上采樣特征合并。這種方法使我們能夠從早期特征映射中的上采樣特征和更細粒度的信息中獲得更有意義的語義信息。然后,我們再添加一些卷積層來處理此組合特征圖,并最終預測出一個相似的、大小是原先兩倍的張量。
我們用同樣的網絡設計來預測邊界框的最終尺寸,其實這個過程有助于我們對第三種尺寸的預測,因為我們可以從早期網絡中獲得細粒度的特征。
和上個版一樣,我們仍然使用 k-means 聚類來確定邊界框的先驗。在實驗中,我們選擇了 9 個聚類和 3 個尺寸,然后在不同尺寸的邊界框上均勻分割聚類。在 COCO 數據集上,這 9 個聚類分別是:(10×13)、(16×30)、(33×23)、(30×61)、(62×45)、(59×119)、(116×90)、(156×198)、(373×326) 。
2.4 特征提取器
我們使用一個新的網絡來執行特征提取。 我們的新網絡是YOLOv2,Darknet-19中使用的網絡與新的殘留網絡內容之間的一種混合方法。 我們的網絡使用了連續的3×3和1×1卷積層,但現在也有了一些快捷連接,并且規模更大。 它有53個卷積層,所以我們稱它為 Darknet-53!
這個新網絡比Darknet-19強大得多,效率比ResNet-101或ResNet-152高。 這是一些ImageNet結果:
每個網絡都使用相同的設置進行訓練,輸入 256 × 256 的圖片,并進行單精度測試。運行環境為 Titan X。我們得出的結論是 Darknet-53 在精度上可以與最先進的分類器相媲美,同時它的浮點運算更少,速度也更快。和 ResNet-101 相比,Darknet-53 的速度是前者的 1.5 倍;而 ResNet-152 和它性能相似,但用時卻是它的 2 倍以上。
Darknet-53 也可以實現每秒最高的測量浮點運算。這意味著網絡結構可以更好地利用 GPU,使其預測效率更高,速度更快。這主要是因為 ResNets 的層數太多,效率不高。
2.5 訓練
我們只是輸入完整的圖像,并沒有做其他處理。實驗過程中涉及的多尺寸訓練、大量數據增強和批量標準化等操作均符合標準。模型訓練和測試的框架是 Darknet 神經網絡。
3.我們做的如何
YOLOv3很好!參見表3。就COCO而言,mAP度量標準很奇怪,與SSD變體相當,但速度提高了3倍。不過,在此指標上,它仍然比其他模型(例如RetinaNet)要落后很多。
但是,當我們用以前的評價指標,IOU=0.5 時的 mAP(表中的 AP50)來評價 YOLOv3 時,我們發現它真的很強。它幾乎與 RetinaNet 媲美,且遠遠高于 SSD。這表明它是一個非常強大的檢測器,擅長為檢測目標生成合適的邊界框。但是,隨著 IOU 閾值的增加,YOLOv3 性能顯著下降,這時候 YOLOv3 預測的邊界框就不能做到完美對齊了。
在過去,YOLO 一直被用于小型對象檢測。但現在我們可以看到其中的演變趨勢,隨著多尺寸預測功能的上線,YOLOv3 將具備更高 APS 性能。但它目前在中等尺寸或大尺寸物體上的檢測表現還相對較差,仍需進一步的完善。
當我們在AP50度量標準上繪制精度與速度的關系時(參見圖5),我們看到YOLOv3比其他檢測系統具有明顯的優勢。即更快,更好。
4. 失敗的嘗試
我們在研究 YOLOv3 的時候嘗試了很多東西,以下是我們記得的一些失敗案例。
Anchor box 坐標的偏移預測。我們嘗試了常規的 Anchor box 預測方法,比如使用線性激活來將坐標 x,y 的偏移預測為邊界框寬度或高度的倍數。但我們發現,這種做法降低了模型的穩定性而且效果不佳。
用線性方法預測 x,y,而不是使用邏輯方法預測。我們嘗試使用線性激活來直接預測 x,y 的偏移,而不是使用邏輯激活,這降低了 mAP 成績。
Focal loss。我們嘗試使用 focal loss,但它使我們的 mAP 大概降低了 2 個點。這可能是因為它具有單獨的對象預測和條件類別預測,YOLOv3 對于 focal loss 函數試圖解決的問題已經具有相當的魯棒性。因此,對于大多數例子而言,類別預測沒有損失?或者其他什么原因?我們并不完全確定。
雙 IOU 閾值和真值分配。在訓練期間,Faster RCNN 用了兩個 IOU 閾值,如果預測的邊框與標注邊框的重合度不低于 0.7 ,那判定它為正樣本;如果在 [0.3~0.7] 之間,則忽略;如果低于 0.3 ,就判定它為負樣本。我們也嘗試了這種方法,但是效果并不好。
我們對現在的模型很滿意,至少是目前的最佳狀態。上述的有些技術可能會使我們的額模型更好,但我們可能還需要對它們做一些調整。
5. 更新的意義
YOLOv3 是一個非常棒的檢測器,它又準又快。雖然它在 COCO 數據集上,0.3 和 0.95 的新指標上的成績并不好,但對于舊的檢測指標 0.5 IOU,它還是非常不錯的。
所以,為什么我們要改變指標呢?最初的 COCO 論文中只有這樣的一句含糊其辭的話:評估完成,就會生成評估指標結果。但是 Russakovsky 等人曾經有份報告,說人類很難區分 0.3 和 0.5 的 IOU:“訓練人們用肉眼區別 IOU 值為 0.3 和 0.5 的邊界框是一件非常困難的事”。既然人類都難以區分,那這個指標還重要嗎?
也許有個更好的問題值得我們去探討:“我們用它來做什么”,很多從事這方面研究的人都受雇于 Google 和 Facebook,我想至少我們知道如果這項技術發展的完善,那他們絕對不會把它用來收集你的個人信息然后賣給…等一下,你把事實說出來了!!哦哦。
另外軍方在計算機視覺領域投入了大量資金,他們從來沒有做過任何可怕的事情,比如用新技術殺死很多人…哦哦。
我有很多希望!我希望大多數人會把計算機視覺技術用于快樂、幸福的事情上,比如就統計國家公園里斑馬的數量,或者追蹤他們小區附近有多少只貓。但是計算機視覺技術的應用已經步入歧途了,作為研究人員,我們有責任思考自己的工作可能帶給社會的危害,并考慮怎么減輕這種危害。我們非常珍惜這個世界。
最后,不要在 Twitter 上 @ 我,我已經不玩了。
總結
以上是生活随笔為你收集整理的YOLOv3论文翻译讲解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2020车工(中级)考试软件及车工(中级
- 下一篇: 中山大学软件工程专硕考研经验(双非跨考)