Arbitrary-Oriented Object Detection with Circular Smooth Label(ECCV2020,旋轉目標檢測)


 

 

論文鏈接:https://arxiv.org/abs/2003.05597

code:https://github.com/Thinklab-SJTU/CSL_RetinaNet_Tensorflow

文章概要:

  本文展示了目前流行的基於回歸的旋轉目標檢測方法都存在或多或少的不連續邊界問題,問題直接由角度的周期性或角點的順序導致。根本原因則是理想的預測超出了所定義的范圍,導致邊界問題的產生,即產生了一個較大的損失值。針對上述問題,本文設計了一種沒有邊界問題的預測方法。該方法的核心是將角度預測從回歸任務轉變為分類任務處理,並提出了環形平滑標簽(circular smooth label ,CSL ),通過引入周期性解決了角度周期性的問題。

本文出發點:

  面對四邊形的邊界問題,SCRDet、Gliding Vertex和RSDet在內沒有從更深層次來解決這個問題,只是在發現有這個問題之后采取措施搶救,而不是設計一種沒有邊界問題的預測方法。本文通過探討發現理想的預測超出了所定義的范圍,導致了邊界問題的產生,即產生了一個較大的損失值。因此本文提出了CSL的概念,通過將角度的回歸問題轉換成了一個分類問題,限制預測結果的范圍來消除這一問題。

網路結構:

   從Fig.1可以看到,本文在RetinaNet的基礎上添加了一個角度分類的分支,同時依然保留角度回歸分支。作者實驗中沒有給出CSL單獨使用的實驗結果。

常見的角度回歸表示方法:

 

  • 90°-regression-based method (五參數法,$x,y,w,h,\theta$),角度$\theta$表示矩形框與x軸所形成的銳角,且框與x軸組成銳角的邊記為$w$,另一條邊則記為$h$。$\theta\in[-90,0])$。
  • 180°-regression-based method (五參數法,$x,y,h,w,\theta$),即長邊表示法。矩形框的長邊($h$)與x軸形成的夾角。$\theta\in[-90,90)$。
  • Point-based method (八參數法,$x_1,y_1,x_2,y_2,x_3,y_3,x_4,y_4$),最左邊的點(如果水平矩形的話有兩個點滿足取上面的那個)為起始點,逆時針排列。

各種回歸方法的邊界問題:

  

  •  90°-regression-based method :最理想的角度回歸路線是由藍色框逆時針旋轉到紅色框,但由於角度的周期性,導致按照這個回歸方式的損失非常大(參見上圖右邊的Example)。此時模型必須以更復雜的形式回歸(例如藍色框順時針旋轉,同時縮放w和h),增加了回歸的難度。通過上圖(a)右邊的example,我們可以發現損失值的突增來源於兩部分,一個是角度周期性(periodicity of angular,PoA),另一個是邊的交換性(exchangeability of edges,EoE)。
  • 180°-regression-based method :這種方式比上面稍微簡單一些,損失值的突增只來源於PoA。
  • point-based method:看(c)圖,如果是藍框是anchor,紅框是ground-truth,那么通過點的排序之后,實際和理想的回歸方式是一樣的(按照回歸的距離定義),都是:

    而綠框是ground-truth時,實際是:

    理想情況是:

    通過上述三種例子的分析,我們不難得出這樣的結論:理想的預測結果超出了所定義的范圍,導致出現邊界問題,即產生一個較大的損失值。

環形平滑標簽(CSL):

  作者在該節內容探討了將基於回歸方法的角度預測問題轉換為分類問題的可行性。以180°-regression-based method 為例,將定義的角度范圍進行類別划分,比如一度歸為一類$(\omega =1°)$。但是將回歸問題轉化為分類問題實際上是一個連續到離散的變換,會造成精度的損失。因為轉換為分類問題后,基於本文一度一類的舉例,0.5度的情況是無法預測的。在這種情況下,計算最大損失和期望損失:
$$\begin{split}
&Max(loss)=\omega/2,\\
&E(loss)=\int^b_a x*\frac{1}{b-a}dx=\int^{\omega/2}_0 x*\frac{1}{\omega/2-0}dx=\frac{\omega}{4},
\end{split}\tag{1}
$$

  同樣,以一度一類的為例$(\omega =1°)$,精度最大和期望的損失分別是0.5和0.25。假如,有兩個相同的長寬比1:9的同中心的矩形,角度相差0.5和0.25,則他們之間的IoU只下降了0.05和0.02。這對於最后評測其實影響非常小,畢竟也不是所有目標都有這么大的長寬比(長寬比越大,IoU隨角度的變化愈加劇烈)。因此,將角度預測方式轉換成分類問題是可行的,但是如果只是以最簡單的分類手段(one-hot編碼)來處理還是存在幾個問題的:

  • 邊界交換性無法解決
  • 預測值和真實值的角度距離不可知,當ground-truth為0°時,預測為-90°和1°的損失值是一樣的,但是實際上預測為1°時才是可接受的情況。

  作者在論文里論述CSL能規避邊界交換性和角度周期性問題,作者的表述不是很准確(角度分類只解決PoA問題,EoE是用180定義法解決的。)CSL的表達式如下:

$$ CSL(x) =
 \begin{cases}
    g(x),& \text{$\theta-r<x<\theta+r$,} \\
   0,& \text{$otherwise$.}
 \end{cases} \tag{2}              $$

公式中的 $g(x)$是窗口函數,窗口半徑由 $r$來控制。窗口函數主要由四點性質:

   按作者在論文中以及知乎專欄中的表述可知,窗口函數的設置使得模型可以衡量預測標簽和地面真相標簽之間的角度距離,即在一定范圍內越靠近真實值的預測值的損失值越小。而且通過引入周期性解決了角度周期性的問題,即使得89和-90兩個度數變成是近鄰的,這也是取名為環形平滑損失的原因。為了更好的理解,引用https://zhuanlan.zhihu.com/p/111493759這篇文章評論中tgis-top的舉例:“比如就離散成8類,脈沖函數處理出來的類別真值向量是1 0 0 0 0 0 0 0,高斯函數處理出的可能是 1 0.5 0.1 0 0 0 0.1 0.5,方波處理出來的可能是 1 0 0 0 0 0 0 1,相當於對類別標簽進行了平滑。也就說原始真值是1 0 0 0 0 0 0 0,預測成 1 0 0 0 0 0 0 1也是和CSL處理出來的真值相同的,對於最終結果來說也是准確的。確實是從兩個角度入手,本質都是通過引入周期函數讓“取值雖然相差很大,但是損失可以很小”。需要注意的是,當窗口函數是脈沖函數或者窗口函數的窗口半徑很小時,Circular Smooth Label 等價於One-hot label。平滑標簽的概念不是作者首創,但是根據具體任務引入了窗口函數,解決了角度周期性的問題,對相鄰角度具有一定的容忍性,非常棒的想法。

Loss Function

  • 邊框回歸

$$\begin{split}
&t_x=(x-x_a)/w_a,t_y=(y-y_a)/h_a\\
&t_w=log(w/w_a),t_h=log(h/h_a),\\
&t_{\theta}=(\theta-\theta_a)\cdot\pi/180 (only for regression branch)
\end{split}\tag{3}
$$

$$\begin{split}
&t^{'}_x=(x^{'}-x_a)/w_a,t^{'}_y=(y^{'}-y_a)/h_a\\
&t^{'}_w=log(w^{'}/w_a),t^{'}_h=log(h^{'}/h_a),\\
&t^{'}_{\theta}=(\theta^{'}-\theta_a)\cdot\pi/180 (only for regression branch)
\end{split}\tag{4}
$$

變量$x,x_a,x^{'}$分別表示vground-truth box, anchor box, 和predicted box (y,w,h, θ同理) 。

  • 多任務損失

$$\begin{split}
L=&\frac{\lambda_1}{N}\sum_{n=1}^{N}{obj_n}\cdot\sum_{j\in\lbrace x,y,w,h,\theta \rbrace}{}{ L_reg(v^{'}_{nj},v_{nj})}\\
&+\frac{\lambda_2}{N}\sum_{n=1}^{N}{L_{CSL}(\theta^{'}_n,\theta_n})+\frac{\lambda_3}{N}\sum_{n=1}^{N}{L_{cls}(p_n,t_n})
\end{split}\tag{5}
$$

 $\lambda_1,\lambda_2,\lambda_3$取值為$[1,0.5,1]$

實驗分析

  1. 不同窗口函數的對比實驗

  • 采用90°定義的方法因為邊界交換性問題的存在,效果不如180°定義法
  • 高斯窗口函數的效果最好,而基於脈沖窗口函數的方法效果最差

  下圖是在盡可能相同配置條件下CSL-Based和regression-based方法的效果對比,以及不同窗口函數的可視化對比。

 

 

  2.不同窗口半徑的對比

  • 窗口半徑的大小要適中,過小則會變成One-hot label形式,無法學到角度信息,過大則角度預測偏差會加大;
  • 單階段檢測器比雙階段檢測器對於窗口半徑更加敏感,推測的原因是雙階段方法是基於instance-level的特征提取方法(RoI Pooling或RoI Align),這些方法提取到的特征會明顯好於單階段image-level的提取方式,使得雙階段檢測方法可以區分更加小角度差的角度類別。
  • 不同窗口下的可視化效果圖

  3. CSL-Based與regression-based方法的比較

  CSL-based方法在角度特征明顯的類別上具有較大的優勢,但是由於DOTA數據集類別多且邊界情況所占整個數據集的比例比較小,因此在整體性能比較上的優勢並不是那么大。

 

 

   其他數據集的效果比較

 

 

   4. 可視化分析
  為了進一步證明CSL-based方法的特性,作者對CSL-FPN-based檢測器中的每個RoI的角度特征向量進行了可視化的展示,采用的方法是主成分分析法(PCA),可視化結果如下圖所示:

 

 

   上圖中第一行用的是脈沖窗口函數,可以看到每個RoI的角度特征分布是趨於隨機的,也就說明它沒有學習到角度這一信息。而第二行使用的是高斯窗口函數,可以看到整個可視化分布是呈現環狀的,而且相鄰度數的特征是挨在一起的,具有一定的耦合。這種現象正是作者設計CSL方法的目的,也很好證明了基於CSL方法的檢測器可以很好學習到目標的方向信息。

  5. 與其他方法的比較

 

 

 總結
  本文從源頭上解決旋轉目標檢測的角度周期性問題,引入窗口函數的設計很巧妙,將相鄰類別之間的角度距離,預測容忍度,以及角度的周期性問題都考慮在內。但是角度類別划分的數量有點多,導致檢測器的head過厚。實驗中也沒有設計CSL單獨作用時的實驗。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM