繼2015的YOLO后,2016年作者對YOLO升級到YOLO2,另外一個版本YOLO9000是基于wordtree跨數據集達到檢測9000個分類,卷積層模型稱為darknet-19,達到速度和效果的雙提升,文章里充滿了作者的自豪,也值得自豪;
作者正視了YOLO的兩個大問題:回歸框不精準和召回不夠;一般的解決思路都是把網絡加深加寬,不過本文不屑,作者反而要通過優化網絡學習在準確率不降的情況下提升精度和召回!
升級點
Batch Normalization:每個卷積層加了BN,正則都不要了,droupout也省了,過擬合也沒了,效果還好了,+2%mAP;
High Resolution Classifier - 高分辨率分類:模型訓練時經典做法都是先在ImageNet上pre-train,然而ImageNet上的圖片是低分辨率小于256*256的,而要檢測的圖片是高分辨率448*448的,這樣模型需要同時在高分辨的圖片上做fine-tune和檢測,所以作者提出了三步驟 1) 在ImageNet低分辨率上pre-train;2) 在高分辨率數據集上fine-tune;3) 在高分辨率數據集上檢測;使得模型更容易學習,+4%mAP
Convolution with Anchor Boxer - 加Anchor機制:YOLO是通過最后的全連接層直接預估絕對坐標,而FasterRCNN是通過卷積層預估相對坐標,作者認為這樣更容易學習,因此YOLOv2去掉了全連接層,在最后一層卷積層下采樣后用Anchor,yolo有7*7*2 = 98個框,而YOLOv2有超過1k的anchor,最終效果上雖然mAP略有下降3個千分點,但是召回提升7個百分點,值了!
Dimension Clusters - 維度聚類: Anchor的尺寸faster rcnn里人工選定的,YOLOv2通過k-mean聚類的方法,將訓練數據里gt的框進行聚類,注意這里不能直接用歐式距離,大框會比小框影響大,我們的目標是IOU,因此距離為: d(box, centroid) = 1 IOU(box, centroid);下圖是結果,左圖是k和IOU的trand-off,右圖是5個中心的框尺寸,明顯看出和人工指定的差異很大;
Direct location prediction - 直接預測位置:直接預測x,y會導致模型訓練不穩定,本文預測如下tx,ty,tw,th,to,通過sigmolid歸一化到(0,1),結合dimension clusters,+5%mAP
Fine-Grained Freture - 細粒度特征:引入passthrough layer,將低維度特征傳遞給高維度,類似于resnet的shortcut,+1%mAP;
Multi-Scale Training - 多尺度訓練:這里的多尺度是圖片的尺寸,多了迫使模型適應更大范圍的尺寸,每隔一定的epoch就強制改變輸入圖片的尺寸;
效果
如下是在VOC數據集上效率(每秒處理幀數)和效果(mAP)空間里不同算法的變現,其中YOLOv2為藍色,有不同的trade-off,效率和效果都超過已有的方法;
如下是更多的實驗結果:
如下是COCO上的效果,看得出COCO數據集還是很難的,小物體上YOLO2依然是差一些;
YOLO9000: Better, Faster, Stronger
-
算法
+關注
關注
23文章
4599瀏覽量
92645 -
數據集
+關注
關注
4文章
1205瀏覽量
24644 -
voc
+關注
關注
0文章
102瀏覽量
15669
發布評論請先 登錄
相關推薦
評論