YOLOv3 翻譯

YOLOv3

Joseph Redmon Ali Farhadi

University of Washington

摘要

我們推出了YOLO的一些更新!我們做了一籃子微小的設計上的改變來讓YOLO變得更好。我們同時也把這個新網路訓練得更臃腫了。它雖然比上一版本大了一點,但更加準確。別擔心,它依然很快。在320x320的解析度28.2mAP上YOLOv3跑出了22ms,跟SSD準確率一樣但比它快三倍。用老舊的0.5 IOU mAP檢測標準來衡量,YOLOv3很吼了。在Titan X上它達到了57.9 $AP_{50}$ 推斷時間(inference time)51ms以內,對比RetinaNet的57.5 $AP_{50}$推斷時間198ms,性能相當但相比快了3.8倍。照舊,所有的代碼都在

YOLO: Real-Time Object Detection?

pjreddie.com圖標

1.引言

有時一不小心就虛度了一年,你懂的?我這一年沒做太多的研究,而是沉迷推特;玩了一下各種GAN。上一年研究《自然哲學的數學原理》和《類比》*(Analogy)*把我掏空了[10][1];我儘力對YOLO做了些提升。但說實話,沒什麼有意思的,都是些小改動。我同時也給其他人的研究提供了些幫助。

事實上,促成這篇文章的原因是這樣的。我們截稿的ddl快到了,而且我們需要引用我對YOLO做的一些隨機更新,但是我們沒有材料。所以,做好讀技術報告的準備吧!

技術報告很棒棒的一點就是我們不需要簡介,所以你懂的,為什麼會有這篇東西。那麼,在這個引言的最後會闡述這篇文章。首先我們會告訴你YOLOv3是怎麼一回事。然後我們會告訴你我們是怎麼做的。我們也會講那些我們試了但是不work的嘗試。最後我們思考這一切的意義。

2.做法

YOLOv3的真相是:我們吸取了其他人的好點子。我們也訓練了比其他網路更好的分類器網路。我們將帶你從頭過一遍整個系統,讓你能夠徹底理解。

圖一。 我們從Focal Loss[7]的論文里拿來了這張圖。在相同的性能下YOLOv3跑得比其他檢測方法快得多得多。時間數據來自M40或者Titan X ,他們基本上是相同的GPU。

2.1. Bounding Box 預測

順著YOLO9000的做法,我們的系統用維度聚類當anchor boxes[13]來預測bounding boxes。網路預測每個bounding box的4個坐標, t_x、 t_x、 t_w、 t_h

如果cell是從圖像左上角偏移 (c_x, c_y),bounding box prior的寬度是 p_w 高度是 p_h

那麼預測框為:

b_x = σ(t_x) + c_x

b_y = σ(t_y) + c_y

b_w = p_we^{t_w}

b_h = p_he^{t_w}

在訓練期間,我們用了誤差平方和損失函數。如果一些坐標預測的ground truth是 hat{t}_*,梯度是ground truth的值(由ground truth計算得到)減去我們的預測值: hat{t}_* - t_* 。ground truth的值能夠通過逆變換上面的式子很方便地計算出來。

YOLOv3用邏輯回歸從每個bounding box里預測了是物體的得分。如果bounding box prior比其他任何bounding box prior的物體得分都要高,那它的值應該是1。如果bounding box prior並不是最佳的,但是確實在多個閾值上與一個ground truth物體重合,我們就忽略這個預測,按照[15]。我們使用0.5的閾值。不像[15]我們的系統對每一個ground truth只分配一個bounding box prior。如果一個bounding box沒被分配到一個ground truth對象上,它會導致一個坐標或類預測沒有loss,只是說明有物體。

圖2. 帶維度先驗的Bounding Boxes和位置預測。我們從聚類中心預測寬度和高度當作offset。我們預測框的中心坐標,中心坐標與用sigmoid函數的濾波器的位置有關。這張圖公然從[13]中自抄襲。

2.2. 類預測

用多標籤的分類法,每個框預測它可能會包含的類別。我們不用softmax因為我們發現它不能提高性能,相反,我們只是使用了獨立的邏輯分類器。在訓練期間,我們使用了雙向交叉熵損失函數(binary cross-entropy loss)作類別預測。

當我們遷移到更複雜的數據集,比如Open Image Dataset[5],這個方法幫助了我們。在這個數據集中有很多相互重疊的標籤(例如:女人和人)。利用softmax限制假設在每個框中正好有一個類別,通常並不符合情況。多標籤方法能更好地模型化這類數據。

2.3. 多尺度預測

YOLOv3在3個不同的尺度上預測物體框。我們的系統用一個與特徵金字塔網路[6]類似的概念從這些尺度上提取出特徵。在基礎特徵提取器上我們添加了幾個卷積層。最後幾層預測一個三維張量來編碼bounding box,有沒有物體,和類別預測。以我們在COCO[8]上的經驗,我們在每個尺度預測3個框,因此張量為 N 	imes N 	imes [3*(4+1+80)] ,對應為4個bounding box的offset,1為預測物體,還有80個類預測。

下一步,我們取前兩層的特徵圖升採樣2倍。我們還取一個網路早期的特徵圖,並用元素加法把它合併進我們的升採樣特徵里。這個方法讓我們從升採樣特徵里得到更多含義豐富的語義信息,還有從早期特徵圖裡得到更多細粒度信息。然後我們加多了幾層卷積網路來處理這個合成的特徵圖,並最終預測一個相似的張量,雖然模型大小翻了一倍。

我們把同樣的設計在最終尺寸預測框框上再執行了一遍。因此我們對第三尺度的預測得益於所有的prior計算和早期網路細粒度特徵。

我們還使用k-means聚類來決定我們的bounding box prior。我們只是隨意地排序了選定的9個聚類和3個尺度,然後均分每個聚類到各個尺度上。在COCO數據集這9個聚類是:(10x13),(16x30),(33x23),(30x61),(62x45),(59x119),(116x90),(156x198),(373x326)。

2.4. 特徵提取

我們用一個新網路來做特徵提取的工作。我們的新網路是YOLOv2,Darknet-19和時髦的殘差網路這類東西的雜糅。我們的網路用了連續的3x3和1x1的卷積層,但是同時也有一些跨層連接,網路明顯更大了。它有53層卷積,所以我們叫他....噹噹噹噹....Darknet-53!

表1.Darknet-53.

這個新網路比Darknet-19更加強大但仍然比ResNet-101或者ResNet-152更加高效。這是一些ImageNet的結果:

表2. 骨架比較。準確率,每秒十億次浮點運算,和幀率FPS。

每個網路都在相同的設置下訓練,並在256x256的解析度,以single crop accuracy測試。運行時間在Titan X上測量,解析度為256x256。因此Darknet-53與state-of-the-art分類器們效果上不分伯仲,但是浮點運算次數更少還有速度更快。Darknet-53比ResNet-101還要好但是1.5倍快。Darknet-53與ResNet-152表現相當,但是2倍快於它。

Darknet-53同樣還達到了最高的每秒浮點運算數。這意味著這個網路結構更好地利用GPU,讓它更高效地去運算,也因此更快。這是更多是因為ResNet們包含了太太太多層了,才不高效。

2.5. 訓練

我們依然在全圖上作訓練,不加很難區分的負樣本之類的東西。我們用了多尺度訓練,大量的數據增強,批歸一化(batch normalization),全是些標準玩意。我們用Darknet神經網路框架來做訓練和測試[12]。

3.我們怎麼做的

YOLOv3相當好!!看錶 3 。在COCO數據集詭異的均值AP測量方法下它跟SSD參數相當但是3倍快於SSD。雖然它比起其他模型,像RetinaNet,也仍然有一丟丟差距。

但是,當我們用 IOU=.5 上的 mAP (或者表格里 AP_{50} )這種「老的」檢測標準來看,YOLOv3是相當強的。它幾乎相當於RetinaNet,還遠超SSD的各種變體。這表明了YOLOv3是一個相當強的檢測器,擅長生成合格的物體檢測框。但是,隨著IOU閾值的增加效果下降地很明顯,說明YOLOv3在檢測框完美貼合物體上還是有困難。

過去,YOLO對付小物體有困難。但是,現在我們看到形勢發生了反轉。在新的多尺度預測下我們看到YOLOv3有相當高的 AP_S 表現。但是,它相對地在中尺寸和大尺寸物體上表現更差。要找到這個問題的瓶頸還需要更多的研究。

當我們在 AP_{50} (見圖3)上繪出準確度和速度的圖表,我們看到YOLOv3超越其他的檢測系統成效顯著。毫不客氣地說,YOLOv3更快也更好。

4.我們嘗試了但無效的事物

我們嘗試了很多的方法,在耕耘YOLOv3的期間。相當一部分不Work。以下是我們能記得的。

Anchor box x,y offset predictions.我們試過用正常的anchor box預測機制,用線性激活函數預測 x,y 偏移即相當於檢測框的多個寬或高。我們發現這個設計降低了模型的穩定性和工作得不是很好。

用線性 x,y 預測代替logistic。我們嘗試用線性激活代替logistic激活來直接預測 x, y offset。這導致了 mAP 幾個點的下跌。

Focal loss.我們試著用了focal loss。他讓我們的 mAP 掉了2個點。YOLOv3可能在focal loss要解決的問題上已經足夠魯棒,因為YOLOv3將物體預測和條件類別預測分開了。因此在很多情況上類別預測沒有帶來loss?還是因為別的?我們還不能完全確定。

表3.我確實從[7]里盜了所有的表格,他們花了相相相相當長的時間白手起家做出來的。好吧,YOLOv3做得還不賴。給我記住RetinaNet可是花了3.8倍的時間處理一張圖片。YOLOv3比SSD變體們還有AP50下的state-of-the-art的模型們好太多了。

圖3.還是從[7]里借鑒的,這次展示了在.5 IOU mAP上 speed/accuracy 的tradeoff。你可以分辨出YOLOv3很棒棒因為數值很高還有左得都要出去了。是否能引用自己的論文?猜猜誰要試試?這個傢伙→[14]。

雙IOU閾值和真值指派。Faster R-CNN在訓練的時候用了兩個IOU閾值。如果一個預測和ground truth重疊超過0.7那它是個正樣本,如果在[0.3-0.7]之間就忽視掉,小於0.3對於所有的ground truth它就是一個負樣本。我們嘗試了相同的策略,但是並沒有得到好的結果。

我們相當喜歡我們現在的方案,它似乎至少是現在的一個局部最優解。很大可能以上這些技術能最終得到好的結果,或許我們只是需要一些調試來使訓練穩定下來。

5.一切的意義

YOLOv3是個很棒棒的檢測器。又快又精確。它在COCO的0.5和0.95 IOU之間的平均AP上不太好。但是它在0.5 IOU的老檢測評估方法上非常棒啊。

話說回來我們為什麼換了評測方法呢?原始的COCO論文含有這樣的蜜汁句子:

A full discussion of evaluation metrics will be added once the evaluation server is complete.

一個經充分討論的評估標準會在評估服務完成的時候被加進去.

Russakovsky等人報告過人類從0.5里分辨0.3的IOU也很困難!

Training humans to visually inspect a bounding box with IOU of 0.3 and distinguish it from one with IOU 0.5 is surprisingly difficult.[16]

訓練人類來視覺檢索一個0.3 IOU的bounding box,並將它從0.5 IOU里區分出來,這出乎意料地困難。

如果人類都不能分辨有什麼不同,那用哪個評價標準又有什麼關係?

但可能更好的問題是:「我們現在有了這些檢測器,我們要拿來幹嘛?」很多人在Google和Facebook做這些研究。我想至少我們還知道這些技術在好人手裡,還有絕對不會被用於收割人們的個人信息還有把它賣給....等等,你說這正是它的用處?噢??。

好吧其他重金投入視覺研究的人是軍隊,他們從沒做過任何像用新技術殺大量人這樣可怕的事情??啊等等......

我十分希望大多數使用計算機視覺的人只是用它來做令人愉快的、好的事情,比如數一數國家公園的斑馬數量[11],或者追蹤在家旁邊遊盪的貓主子[17]。但是計算機視覺已經被投入有爭議性的用法上了,作為一個研究者我們有責任去最起碼地考慮我們的工作被濫用所造成的傷害,和考慮降低傷害的方式。我們欠這個世界太多了。

最後,別艾特我。(因為我終於戒掉了Twitter。)

引用

[1] Analogy. Wikipedia, Mar 2018. 1

[2] C.-Y. Fu, W. Liu, A. Ranga, A. Tyagi, and A. C. Berg.

Dssd: Deconvolutional single shot detector. arXiv preprint

arXiv:1701.06659, 2017. 3

[3] K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learn-

ing for image recognition. In Proceedings of the IEEE con- ference on computer vision and pattern recognition, pages 770–778, 2016. 3

[4] J. Huang, V. Rathod, C. Sun, M. Zhu, A. Korattikara, A. Fathi, I. Fischer, Z. Wojna, Y. Song, S. Guadarrama, et al. Speed/accuracy trade-offs for modern convolutional object detectors. 3

[5] I. Krasin, T. Duerig, N. Alldrin, V. Ferrari, S. Abu-El-Haija, A. Kuznetsova, H. Rom, J. Uijlings, S. Popov, A. Veit, S. Belongie, V. Gomes, A. Gupta, C. Sun, G. Chechik, D. Cai, Z. Feng, D. Narayanan, and K. Murphy. Open- images: A public dataset for large-scale multi-label and multi-class image classification. Dataset available from openimages, 2017. 2

[6] T.-Y. Lin, P. Dollar, R. Girshick, K. He, B. Hariharan, and S. Belongie. Feature pyramid networks for object detection. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 2117–2125, 2017. 2, 3

[7] T.-Y. Lin, P. Goyal, R. Girshick, K. He, and P. Dolla ?r. Focal loss for dense object detection. arXiv preprint arXiv:1708.02002, 2017. 1, 3, 4

[8] T.-Y. Lin, M. Maire, S. Belongie, J. Hays, P. Perona, D. Ra- manan, P. Dolla ?r, and C. L. Zitnick. Microsoft coco: Com- mon objects in context. In European conference on computer vision, pages 740–755. Springer, 2014. 2

[9] W. Liu, D. Anguelov, D. Erhan, C. Szegedy, S. Reed, C.- Y. Fu, and A. C. Berg. Ssd: Single shot multibox detector. In European conference on computer vision, pages 21–37. Springer, 2016. 3

[10] I. Newton. Philosophiae naturalis principia mathematica. William Dawson & Sons Ltd., London, 1687. 1

[11] J. Parham, J. Crall, C. Stewart, T. Berger-Wolf, and D. Rubenstein. Animal population censusing at scale with citizen science and photographic identification. 2017. 4

[12] J. Redmon. Darknet: Open source neural networks in c. Darknet: Open Source Neural Networks in C, 2013–2016. 3

[13] J.RedmonandA.Farhadi.Yolo9000:Better,faster,stronger. In Computer Vision and Pattern Recognition (CVPR), 2017 IEEE Conference on, pages 6517–6525. IEEE, 2017. 1, 2,3

[14] J.RedmonandA.Farhadi.Yolov3:Anincrementalimprove- ment. arXiv, 2018. 4

[15] S. Ren, K. He, R. Girshick, and J. Sun. Faster r-cnn: To- wards real-time object detection with region proposal net- works. arXiv preprint arXiv:1506.01497, 2015. 2

[16] O. Russakovsky, L.-J. Li, and L. Fei-Fei. Best of both worlds: human-machine collaboration for object annotation. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 2121–2131, 2015. 4

[17] M. Scott. Smart camera gimbal bot scanlime:027, Dec 2017.4

[18] A. Shrivastava, R. Sukthankar, J. Malik, and A. Gupta. Be- yond skip connections: Top-down modulation for object de- tection. arXiv preprint arXiv:1612.06851, 2016. 3

[19] C. Szegedy, S. Ioffe, V. Vanhoucke, and A. A. Alemi. Inception-v4, inception-resnet and the impact of residual connections on learning. 2017. 3


Chinese Translation by Tmono.

版權歸Joseph Redmon和Ali Farhadi所有。

允許轉載,中文轉載署名譯者。禁止商業用途。


譯者的話:

作者是個十分俏皮可愛的人(<del>雖然這麼說鬍子喇碴的大叔怪怪的</del>),從論文中我能讀到快樂,我希望能把這份對生活對學術的快樂分享給更多的人。

推薦閱讀:

TAG:計算機視覺 | 檢測 | 深度學習DeepLearning |