相比較於前兩篇論文,個人感覺YOLO3作者有點來搞笑的!!!雖然加了一些新的點子進來,但是,論文的開頭是這樣的:
簡單理解就是作者花了很多時間玩Twitter去了,所以沒有做啥研究!!!!
然後:
你可以引用自己的論文嗎?猜猜誰會這麼做,就是這傢伙,然後我發現鏈接竟然是他自己這篇論文:
還有調侃下谷歌、臉書等大公司和目標檢測等技術:
很多從事這項研究的在谷歌和臉書,所以我們應該相信他們不會用技術來採集我們的信息然後拿來賣!!!等等,你是說這纔是技術的真正用途????哈哈,投資計算機視覺研究的都是軍方的人,他們從未將新技術用來殺人!!!
接着作者說:
希望搞計算視覺的人是出於興趣做一件快樂的事情,比如數數公園裏斑馬的數量,跟蹤下房子周圍的貓!!!!
重要的是接下來的一句,他說:
不要艾特我,我終於退出推特了!!!
好咯,言歸正傳,那麼其實這篇論文相比較前兩篇,倒是沒啥其他特別的點,總結起來主要也就是新的骨架和多尺度。
一、Bounding Box Prediction
目標邊界框的預測實際上也還是沿用YOLO2的做法,網絡會預測每個網格中目標邊界框的四個座標tx、ty、tw、th,如果每個網格相對於整體圖像的左上角的偏移量爲(Cx,Cy),而先驗邊界框的寬度和高度爲pw、ph,那麼由預測值到座標的映射如下:
訓練的時候則是取所有損失的平方和。
YOLO3採用邏輯迴歸來預測每個邊界框的包含目標的分數objectness score,如果邊界框與ground truth object的重疊大於其它邊界框,那麼其分數爲1,如果邊界框不是最好的,但是與ground truth object的重疊大於一定閾值,那麼就忽略該預測。系統只爲每個ground truth object分配一個邊界框,沒有分配的邊界框就不會對座標或者類別的預測造成損失?
二、Class Prediction
類別預測,YOLO3不適用softmax,因爲發現沒啥特別影響,所以用獨立的邏輯分類器。訓練的時候用了二元交叉熵損失函數。
三、Predictions Across Scales
多尺度預測,YOLO3使用了三個尺度,借鑑了FPN,使用多尺度。最後一個卷積提取了一個三維的編碼了邊界框、目標分數和類別預測等信息的張量,以COCO數據集爲例子,每個尺度都會預測三個邊界盒子,那麼每個尺度的張量大小爲:
其中4爲4個邊界框偏移量,1個目標檢測分數,80個類別的概率。三個尺度之間的大小關係是彼此2倍的遞進的關係。通過上採樣將小尺度特徵圖與大尺度特徵圖拼接,然後又新加一些卷積層對融合後的特徵做了處理。
YOLO3同樣使用K均值聚類來計算先驗框,對三個尺度計算了9個類,分別爲:
四、Feature Extractor
特徵提取部分,YOLO3設計了新的骨架,Darknet53,因爲用了53個卷積層:
新骨架與Darknet19和其它網絡的性能對比如下:
Darknet53的表現還是比較好的。
四、Training
跟YOLO2的做法基本上是類似的。
五、Things We Tried That Didn’t Work
作者做了一些新的嘗試,但是沒有作用:
1、Anchor box x, y offset predictions:嘗試用常規的先驗框機制,也就是用線性激活函數預測x、y爲邊界框寬度和高度的倍數,但是沒用。
2、Linear x, y predictions instead of logistic:用線性激活函數直接預測x、y偏移量,而不是用邏輯迴歸,沒用。
3、Focal loss:嘗試用Focal loss,但是沒用,可能YOLO3對於Focal loss要解決的問題來說已經很溜了,不需要Focal loss了吧,這點作者做了一些測試,但是也說不準。
4、Dual IOU thresholds and truth assignment:嘗試採用Faster RCNN採用的雙閾值策略,但是沒用。
六、YOLO3 表現:
在COCO上與其它算法的對比,不如RetinaNet,但是基本上也還是比SSD好一些(相愛相殺?)
論文:https://arxiv.org/pdf/1804.02767.pdf
支離東北風塵際,漂泊西南天地間。
三峽樓臺淹日月,五溪衣服共雲山。
羯胡事主終無賴,詞客哀時且未還。
庾信平生最蕭瑟,暮年詩賦動江關。
-- 杜甫 《詠懷古蹟 五首 其一》