這個是從一篇報道戶外汽車識別比賽(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進行後處理。