深度學習實戰(十九)——做戶外汽車識別可採用的方法

     這個是從一篇報道戶外汽車識別比賽(Nexar 挑戰賽)結果的新聞裏摘抄下來的,裏面有一些獲獎者分享的他們的模型介紹,整理下來以備日後使用

       

                                                                                   圖一 識別效果

                             

                                                                圖二 比賽使用各模型的比例以及得分

大多數參賽者使用更快的RCNN作爲他們的模型,其得分範圍從0.5到0.77。但是明顯的獲勝者是Deformable R-FCN,平均得分爲0.8。

                              

                                                                          圖三  比賽結果


方法分享-1:

“我使用具有soft-NMS的Deformable R-FCN參加了這次挑戰。使用了從ImageNet上用ResNet-50預訓練的一個單模型。

核心要點:

1. Deformable Convnets和R-FCN功能強大,在ImageNet和COCO上獲得了最先進的性能。我都不需要使用集成。如果我使用集成,和ResNet-101一起,加上更多trick,性能可以更好。

2. 水平翻轉訓練圖像效果很好。我將所有訓練數據水平翻轉。這已經是一個非常普遍的數據增強/擴充方法了。

3. 小尺寸錨點。查看訓練數據,我看到很多小的邊界框,於是決定添加更多的小尺寸錨點。結果證明這樣做效果很好。

4. 多尺度測試。這一般會帶來大約2%的性能提升。我在720訓練,在(600,720,1000)測試,獲得了性能提升。


方法分享-2:

本質上我的源代碼組成如下:

1)基於Faster-RCNN的Deformable ConvNets,代碼(https://github.com/msracver/Deformable-ConvNets)。我進行了一些小的修改,包括讀取Nexar數據集的適配器,禁用非最大抑制階段的選項,以及能夠運行多個預測的小腳本。

2)一些用於準備數據集擴充和轉換結果的實用程序腳本。

3)實施定製的靈活非最大抑制階段(non maximum suppression stage)。

核心要點

我決定使用Faster-RCNN或R-FCN的Deformable ConvNets修改。

由於比賽時可以修改/標註訓練數據集,我首先檢查了訓練數據的改進情況。

標籤的規模和性質都不適合用手工進行重新打標籤。

我將訓練數據集分爲兩個,在每個上都訓練了R-FCN模型。

我比較了兩個分開數據集預測與原始標籤預測的結果,發現了訓練集中缺少的邊界框。

幾乎在所有情況下,我發現這都是標籤缺失導致的。

我按照缺失的邊界框數量對訓練集中的圖像進行排序,並重新標記了其中15-20%邊界框缺失最多的圖像,最壞情況下圖像中有多達8輛車沒有邊界框。

由於模型生成的邊界框相當準確,所以我只需要選擇將哪些預測邊界框添加到訓練數據集中,所以過程還是相對較快。

我決定使用Faster-RCNN,因爲經過一個快速測試,它比R-FCN實現了稍微更好的結果。

我計劃嘗試這篇論文(https://arxiv.org/abs/1704.04503)中描述的Soft NMS方法

我擴展了Soft NMS的原始概念,不僅調整置信區間,還要調整邊界框的位置。

我在NMS階段之前檢查了Faster-RCNN的結果,發現它經常產生一些具有相似置信區間和位置的封閉邊界框。

只保留置信區間最上層結果,拋棄其他所有的結果,聽起來有點浪費,尤其是當結合使用多個模型或測試時間擴充以後。

所以,我的 Flexible NMS方法如下:

1)對於置信度最高的邊界框,將其與iou> 0.8的所有其他類似框組合,框的位置作爲具有置信度權重的邊界框位置的加權平均值。

2)對於組合框的置信度,我使用conf = sum(最多N個邊界框)/ N

。這對組合多個結果特別有用,我還想懲罰那些只有單個網絡找到的一個結果(相比更多網絡/邊界框預測的置信度更高的結果)。

我使用N == 4 ×預測數的組合。

3)對於與當前框重疊的所有其他框,我按照原始 Soft NMS文章中的所述調整了置信度。

總體來說,這種方法讓我從單個模型、默認NMS得分~0.72–0.73,增加到0.77-0.78,後面是使用 Flexible NMS從2個不同模型組合大約6個預測的結果。

我最終提交的結果,訓練了3個Faster RCNN模型,對於所有圖像的每個預測,翻轉和±20%調整大小。

我將所有結果結合,禁用原始NMS,並通過Flexible NMS進行後處理。

 

摘自:

22歲復旦學生拿下世界深度學習競賽冠軍:50層ResNet網絡

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章