Corner Proposal Network 论文阅读(2020ECCV)
Introduction
引言
介紹了anchor base 和 anchor free 與one stage 和 two stage ,然后說通常認為的anchor base 有低召回的問題,anchor free 對于極端的size 和 aspact ratio 的樣本也能夠能好的定位。
這里anchor free 也分為兩種也有區別。一種是基于keypoint 的方法,另一種是基于分割的方法對每一個位置都進行邊界預測。keypoint的方法不受這種奇怪size的影響如corner net ,center net ,但是后者比如fcos,border net 這些事預測邊界,遇到size很奇怪的(長寬比10:1)回歸也會有困難。
但是通常認為one stage 會生成很多false positives,所以需要two stage 增加一個獨立的分類器區分正負樣本。所以提出了一個 anchor free 的 two stage 的 network.
問題
就是說這個經典的Corner net,存在一個嚴重的問題,之前是通過distance embeding 層生成所有的點對,然后這些點對的位置都為一個object,那么就會生成特別多的錯誤正樣本。
方法
two stage,先使用對應的feature進行提取proposals,然后二階段分類器進行proposals的錯誤正例去除,剩下的就每一個點對就對應一個object,再多類分類。跟這個rpn的感覺是一樣的,但是是anchor free的。
Motivation
就上述討論了anchor base 的低召回問題后,采用了召回率高的anchor free,但是隨之而來的就是高召回低準確率的問題。作者對比了corner net 與 center net 發現center net 添加了一個中心點的過濾而去除了一些false positive,但是顯然的是并不能完全去除完所有的錯誤正例。
Idea
提出了一種two stage的famework,backbone是hourglass,一階段先通過Corner net 生成 corner point 以及對應的proposals,二階段通過專門的分類器去除false positive 和多分類回歸。
One stage
首先使用與Corner一致的方法兩個heat map 分別生成左上角和右下角角點以及對應的類別,然后ground-truth的角點使用高斯函數分散成一個區域,通過focal loss計算定位誤差,在通過feature生成offset loss。
但是列舉了一下Cornet 原論文中 distance embedding 問題,比如:
1.并沒有證明該embedding的可學習性(learnable)
2.只是將訓練中不屬于同一物體的點在embdding層上給不同的值以達到分離效果,但是對于沒有見過的場景,比如將幾張訓練圖片拼接在一塊的時候,之前在對應分開圖片上表現效果很好的該方法也會直接崩掉(暫時還是不太知道怎么去理解這句話?,yolov4中有對應的訓練方法,估計是作者用了但是效果很差)
所以,直接丟棄該embedding層,采用two stage,那么對于該第一層只是用了一些簡單的條件判斷,比如是屬于同一類,以及左上角x,y小于右下角這種篩選去除一部分點對,剩下所有滿足條件的點對都是這個stage的輸出proposals。
Two stage
因為一階段給出的proposals 還有很多,文章中說大概有2500個,所以二階段又兩個步驟,第一個步驟是通過一個二值分類器進行前后景分類,再多類分類。
第一步如上圖中間部分,使用高分辨率(channel為32)的特征層直接通過RoiAlign將proposal從特征層中到77大小的roi,然后直接使用77的卷積獲得對應proposal的分數。這個分數拿來做二值分類。跟匹配最大iou的ground truth框框如果大于0.7算做正例,不然算作負例。然后Focal loss 計算損失,這里的focal loss也是作者自己提出的一種損失函數,跟原focal loss 不太一樣,Loss 函數如下。
Pm表示第m個proposal是正例。
第二步就是拿到第一步中的正例,之前one stage部分其實已經有了角點的分類,但是說這不一定就是準確的,因為之前分類缺少ROI的信息,corner之前的分類也就是角點位置特征去分的類。所以就需要iou大于0.7的proposal再做多類分類。同樣的,如上圖第三層,在分辨率低的特征圖上(語義信息高一點)去roialign的特征拿去分類,分類損失如下。
Qm,c表示第m個proposal是對應第c個類別。
最終的loss(前兩個是一階段的,對應corner net里邊的去掉embedding的損失,后兩個是二階段的)
推理部分
這里作者說了一下實際推理的時候,因為預測分數pm,qm.c都趨向于0,所以iou那個閾值取的是0.2使得保留更多的proposal。
然后就是因為有兩次多類分類的類和分數,一次是corner,一次是兩個corner對應的proposal的分數。這兩個類有可能相同也有可能不同,但是最終的類別是按照proposal的。分數的話,對于兩個角點的平均值分數為s1,proposal的分數為s2,兩次分類共同決定最后的結果,但是如果某個分數大于0.5就加中他的比重,例如最終的分數Sc=(S1+0.5)(S2+0.5)(if s1>0.5 s1+0.5:s1)再歸一化到(0,1)。
然后就是取最高分數top100,再nms得到結果。
Experiments
跟各個主流算法對比,在anchor free中獲得map sota
二階段的消融實驗,兩次分類。?
因為是從corner net 和center net 的問題中來的,對標一下motivation中解決average false posotives.
?
Speed
這也算作者一個體現論文很好的實驗,在精度和速度上做了很好的trade-off,作者原話:
This indicates that two-stage detectors are not necessarily slow
Conclusion
提出了一個二階段的,anchor-free的目標檢測網絡,使用提取keypoint的方式提取出proposals,使用二階段二值分類過濾錯誤正例,再對剩下的框進行分類得到結果。在召回率和準確率上都有提高,同時也對速度和精度做了很好的tradeoff。
總結
以上是生活随笔為你收集整理的Corner Proposal Network 论文阅读(2020ECCV)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BorderDet(论文解读)
- 下一篇: linux设备:初始化