IOU-Net原理+python實現

IOU-Net原理+python實現

來自專欄對象檢測2 人贊了文章

論文:Acquisition of Localization Confidence for Accurate Object Detection(ECCV2018)

鏈接:arxiv.org/pdf/1807.1159

一、Introduction

本文是繼Soft-NMS(CVPR2017)之後又一個對經典演算法NMS進行改進的演算法。同時本文還對Bounding Box Regression作了改進,還提出了PrRoI Pooling(Precise RoI Pooling)。

二、Motivation

  1. 改進NMS演算法

非最大值抑制(Non-maximum suppression, NMS)是物體檢測流程中重要的組成部分。NMS演算法首先按照分類得分從高到低對建議框進行排序,然後分數最高的檢測框M被選中,其他框與被選中建議框有明顯重疊(IoU>Threshold)的框被抑制。該過程被不斷遞歸直至所有建議框都遍歷。根據演算法的設計,可能出現下面這種情況:跟Ground Truth最接近的anchor,不一定有最高的分類得分,單純按照分類得分從高到低對建議框進行排序,就會把最好的那個anchor給抑制掉。導致最終指標的下降。

圖一說明了NMS演算法存在的問題。圖中紅色框和綠色框都是模型對同一個Ground Truth(也就是黃色框)的預測框。圖中Cls Conf表示模型的預測框的分類得分(softmax層的概率輸出),Loc Conf表示模型的預測框的回歸得分(Iou-Net的輸出)。使用傳統的NMS演算法,由於紅色框的分類得分比綠色框高,因此只要紅色框和綠色框的IoU超過NMS演算法設定的閾值(比如常用的0.5),那麼綠色框就會被NMS過濾掉。但從下面的3張圖像可以直觀上看出綠色框的預測結果要好於紅色框,因此說明NMS演算法確實存在上述問題。

圖一:NMS演算法的缺陷

2.改進Bounding Box Regression

圖二中上面一行表示Bounding Box Regression過程,所謂Bounding Box Regression就是

用Anchor與Ground Truth之間的平移量與尺度因子來修正Anchor位置。(詳細介紹可以看一文讀懂Faster RCNN的Section2.4),為了得到的結果更準確,通常會迭代的進行Bounding Box Regression操作,直觀上不斷的迭代應該會得到更準確地Anchor,

但圖二中上面一行的結果證明隨著迭代次數的進行,Anchor的準確性逐漸降低(在開始階段是上升了,圖中只顯示了下降的過程),這也就是文中說的非單調性(non-monotonic)。本文換了一種思路,用IoU來監督框的預測,若Anchor和Ground Truth的IoU越大,則得到的Anchor越準確。並且基於IoU方式的預測在不斷迭代的過程中不會出現Anchor準確度下降的問題(圖二中下面一行)。

圖二:Bounding Box Regression的缺陷

3.累累累累 明天再寫

推薦閱讀:

深入理解計算機系統(九):C語言中的有符號數和無符號數以及擴展和截斷數字
Python學習筆記---2
這是你們心心念念的Python網路爬蟲秘籍
Python中操作屬性(添加,修改,刪除)的方法歸納
第二篇詳細Python正則表達式操作指南(re使用)

TAG:目標檢測 | Python |