對於目標檢測,從滑動視窗時代開始,我們已經習慣了候選區域特徵提取然後分類的套路,深度學習時代強大的特徵表示能力讓我們能夠探索不一樣的道路,比如:
ECCV18 Oral | CornerNet目標檢測開啟預測“邊界框”到預測“點對”的新思路
通過定位特定語義點來定位目標。
而且Anchor-Free方法越來越流行,預先定義的Anchor降低計算量的同時,卻已經成為限制目標檢測精度提高的因素。
今天跟大家分享的一篇文章《Segmentation is All You Need》,可能又要顛覆大家的認知,我們不僅不需要Anchor,甚至我們思考目標檢測的方式都被侷限了!
論文作者資訊:
論文作者來自牛津大學、湖南農業大學、SnowCloud公司。該論文已投NeurIPS 2019。
提出問題
在現代目標檢測應用中,目標部分被遮擋、環境光照差和目標相對場景過小等依然難以被解決。
下圖展示了這些極端的例子:
這些難以處理的情況幾乎都和演算法能夠選擇或者預定義正確的、尺度合理的候選區域有關係。
而計算機視覺任務中的分割,不對目標做任何位置和尺度的假設,對畫素進行無差別分類。
目標檢測可否直接用分割來完成呢?這就是作者要解決的問題。
演算法思想
既然是用分割來做目標檢測,那就需要有標註好的分割資料集。
作者使用目標檢測資料庫中目標的包圍框來計算目標的mask,即弱監督標註。
請看下面的例子:
上面的影象來自我愛計算機視覺曾經報導的“數鋼筋”大賽DataFountain新上計算機視覺比賽-20萬鉅獎數鋼筋,在這些鋼筋端部的包圍框上計算內接橢圓,其包含的區域即可以認為是目標的弱監督畫素級標註了。
就像下面這幅蘋果影象,你很容易通過包圍框簡單得到蘋果的大致區域。
完整的演算法示意圖如下:
首先是生成弱監督標註資料,然後使用這些資料訓練語義分割(不是例項分割),推斷的時候,語義分割的結果轉化為二值影象,最後使用輪廓提取演算法找到不同的目標個體。
影象中往往有複雜的遮擋,比如:
這需要在製作目標畫素級標註時考慮到,下圖是將目標包圍框轉化為畫素級標註的細化:
作者稱這種標註方法為multimodal annotations(多模標註)。
推斷時,對二值影象進行輪廓查詢,作者設計了Run-data-based tracing 演算法。
查詢到的不同的輪廓即為不同的目標個體。
對於極其小的目標的訓練,作者在此框架下引入vector field方法。示意圖如下:
實驗結果
作者在三個資料集上進行了實驗,分別是數鋼筋大賽的資料、WiderFace人臉資料集和COCO 目標檢測資料集。
下圖是數鋼筋的結果:
該文提出的演算法在引數量最少的情況下,精度最高,超過目標檢測state-of-the-art Cascade RCNN演算法。
下圖是在WiderFace人臉檢測資料集上的結果,依然超過了所有方法。
最後是在COCO 資料集上的結果,該文演算法取得了與Mask RCNN 和 Cascade R-CNN相匹敵的精度。這類演算法才剛剛出來,應該還有很大改進空間!
值得一提的是,作者對目標進行畫素級標註的方法,對於人臉和鋼筋這種實心的目標可能比較有效,對於自行車這種中間有很大空隙的,會不會有問題?
不知作者會不會進一步公佈在COCO資料集上不同類的檢測結果,應該很有趣。
另外作者目前沒有公開程式碼,也沒公佈推斷時間。
這篇文章顛覆了我們的認知,原來什麼框、什麼點也不需要,也可以做目標檢測!
也許是作者急於快點公佈演算法與實驗結果,以至於忘了在論文最後寫結論了^_^
論文地址:
https://arxiv.org/abs/1904.13300v1