【論文閱讀】傾斜目標範圍框的終極方案

 

 

前言

最常用的斜框標註方式是在正框的基礎上加一個旋轉角度θ,其代數表示為(x_c,y_c,w,h,θ),其中(x_c,y_c )表示範圍框中心點坐標,(w,h)表示範圍框的寬和高[1,2,7]。對於該標註方式,如果將w和h的值互換,再將θ加上或者減去2kπ+π⁄2,就能夠表示同一個範圍框。由於同一個範圍框有多種不同的數值表示,會導致近似範圍框之間的數值差異有大大小小多種情況。如果近似範圍框之間的數值差異大,對於基於監督分類的方法來說,就是損失函數的取值異常[7],不利於模型訓練。此標註方式還有一種變形,標註正框時不是記錄寬和高,而是記錄中心點到四邊的距離[6],當然同樣會有損失異常的問題。

記錄四個頂點的坐標也可以用於標註斜框,武大夏桂松和華科白翔團隊製作的DOTA[4]數據集以及中國科學院大學模式識別與智慧系統開發實驗室標註的UCAS-AOD[5]數據集就採用了這種標註方式。由於可以從四個頂點中的任意一個開始記錄,此標註方式導致同一個範圍框有多種不同的數值表示,進而會導致損失異常[7],增加回歸難度,不利於模型訓練。避免損失異常的現行方式是按照坐標值排序頂點,然後計算對應坐標點之間的差異。這種處理方式也是有問題的,對坐標值排序會改變數值維度間的對應關係[8, 9],也就是說,在某次損失計算過程中預測向量的第一維對應真值向量的第二維,在另外一次損失計算過程中第一維可能對應第三維。這種對應關係的隨機性同樣不利於模型訓練。記錄四個頂點坐標的好處是可以表示任意四邊形,但是在表示矩形時會有三個冗餘量。一種去除冗餘的方式是按順時針順序記錄矩形四個頂點中的前兩個和第二個頂點到第三個頂點的距離[7],但是同樣會出現一個範圍框有多種不同的數值表示。

還有一種斜框標註方式是記錄斜框的外接正框以及斜框四個頂點與正框四個頂點順時針方向的偏移量[8]。該標註方式同樣可以表示任意四邊形,如果只記錄斜框量個頂點與正框兩個頂點順時針方向的偏移量就只能表示矩形框[9]。目前沒有用該標註方式標註樣本的,而是用於先預測正框再進一步預測真實的斜框,在預測正框時將錨點框向斜框的外接正框回歸。但是要想斜框預測得準確就要求正框也得預測準確,增加了預測目標數量,也就增加了回歸難度,同樣不利於模型訓練。

本文提供了一種矩形斜框標註方式,可以用作樣本標註和模型的回歸目標。該標註方式沒有冗餘量,同一個範圍框只有一種數值表示,作為回歸目標時不會出現損失異常,有利於模型訓練。本文還將此標註方式與多種其他傾斜範圍框標註方式在目標檢測任務上進行了對比驗證。對比實驗證明此標註方式對於朝向任意、密集排布的目標檢測具有一定的優勢。

標註方法

本文提供的斜框標註方式用於標註的量有「中心點C的坐標、中心點到任意一個頂點D的向量□((CD) ⃗ )、C到D的一個相鄰頂點E的向量□((CE) ⃗ )在□((CD) ⃗ )上的投影向量□((CP) ⃗ )與□((CD) ⃗ )的比例係數」,代數表示為(x_c,y_c,u,v,ρ),其中(x_c,y_c )為中心點C的坐標,(u,v)為向量□((CD) ⃗ )的坐標,ρ為向量□((CP) ⃗ )與□((CD) ⃗ )的比例係數。

圖1中黑實線表示傾斜範圍框,X表示表示影像行方向上的坐標軸,Y表示影像列方向上的坐標軸,C表示範圍框的中心點,D、E為範圍框的某兩個頂點,P為□((CE) ⃗ )在□((CD) ⃗ )上的投影點。

由於向量□((CD) ⃗ )可以從四個中任取,□((CE) ⃗ )向量可以從兩個中任取,必須提供一些外在約束確保標註方式數值表示的唯一性。首先,要求ρ的取值範圍為[0,1) ,也就是□((CP) ⃗ )與□((CD) ⃗ )同向;另外要求從□((CD) ⃗ )到□((CE) ⃗ )的夾角只能是順時針方向或者逆時針方向中的一種。

圖1-用於標註範圍框的量有中心點C、向量□((CD) ⃗ )、□((CP) ⃗ )與□((CD) ⃗ )的比例係數

如此一來,同一個範圍框只有兩種數值表示。也就是說,將向量□((CD) ⃗ )取反,但保持其它值不變,仍然表示同一個範圍框。由於同一個範圍框的兩種表示之間只有向量(CD) ⃗是相反的,可以引入一個量s表示(CD) ⃗的兩個分量是同正負的還是一正一負的(後文將稱之為同號或異號,可見s只有兩種取值),那麼可以用(|u|,|v|,s)表示(CD) ⃗和-(CD) ⃗。同號時,(CD) ⃗和-(CD) ⃗分別為(|u|,|v| )和(-|u|,-|v| );異號時,(CD) ⃗和-(CD) ⃗分別為(-|u|,|v| )和(|u|,-|v| )。此時就可以將同一個範圍框的數值表示減少到一個,其代數表示為(x_c,y_c,|u|,|v|,s,ρ)。

從圖1中還可以看出,如果是正框,顯然向量(CD) ⃗的坐標就是範圍框寬高的一半。可以通過令(u,v)=2(CD) ⃗使該標註方式與正框的相應標註方式兼容。

求解頂點坐標和邊長

在給定標註數值(x_c,y_c,|u|,|v|,s,ρ)時,向量□((CD) ⃗ )就是已知的,向量□((CP) ⃗ )可以表示為□(ρ(CD) ⃗ )。那麼要獲得範圍框四個頂點的坐標,將引入的外部約束用方程進行表示,通過求解以下方程組的實現。

方程組中的第一個式子表示向量□((EP) ⃗ )與向量□((CD) ⃗ )垂直,第二個式子表示向量□((CP) ⃗ )與向量□((CD) ⃗ )的長度相等,第三個式子表示從□((CD) ⃗ )到□((CE) ⃗ )的夾角只能是順時針方向或者逆時針方向中的一種。第三個式子只取用一個即可。

範圍框的邊長可以用下式計算。

式中w_b是範圍框的短邊長度,h_b是範圍框的長邊長度。

正方形範圍框

易知,在範圍框是正方形時,即使滿足前述約束條件,仍然有兩種數值表示。取任意一個頂點作為參考向量□((CD) ⃗ ),中心點到其順時針或逆時針方向的相鄰頂點的向量在□((CD) ⃗ )上的投影總是0。如果ρ的取值不允許為0,就不能表示正方形範圍框,雖然正方形範圍框非常少見。

我們解決方案是,為正方形範圍框引入額外的約束:□((CD) ⃗ )與X軸夾角的取值範圍為[ 0,90) 度。這這個約束條件下,□((CD) ⃗ )只能落在X軸上或者第一、三象限。

圖2 正方形範圍框

s的損失平滑

圖3中實線和虛線範圍框的s值不同,但是它們卻是非常近似的範圍框。因此s值的差異不能真實體現範圍框之間的差異。容易看出,□((CD) ⃗ )與坐標軸的夾角越小,s的差異越是不能真實體現範圍框之間的差異。

圖3 s值不同,但是它們卻是非常近似的範圍框

□((CD) ⃗ )與坐標的夾角越小,□((CD) ⃗ )的兩個分量的模之間的差異越大。當□((CD) ⃗ )的兩個分量的模之間的差異大到一定程度後,為s的差值乘上一個很小的權重來平滑s的差異與範圍框的真實差異間的錯配

我們首先設計了一個函數用於度量□((CD) ⃗ )的兩個分量的模之間的差異。

其中|u|,|v|分別是□((CD) ⃗ )的兩個分量的模。可見diff的取值範圍為[0,1],當|u|,|v|相等時取零,當其中一個為0時取1。在公式(4)中採用了平方函數,實際應用中,為了加快計算速度推薦使用求絕對值函數。然後將diff代入反Sigmoid函數求出s損失的權重。(PS:相減除以相加是常用的評估兩個數量之間相對差異的方式,比如NDVI、NDWI。)

後記

弄這個東西純屬於臨時起意,早些時候為公司做了一個基於深度學習的遙感影像目標檢測軟體,總覺得當時用的範圍框標註方式不夠好。抽了個時間琢磨了一下,設計了這樣一種標註方法。先寫好了專利,覺得把時間投入到深度學習里純屬於浪費生命,問了幾個人是否願意參與進來做個實驗,我來寫個論文,一作讓出去;然而他們不是沒空,就是水平沒到。

這個標註方式確實還有點價值,不想給埋沒了,只得自己動手,設計了一個目標檢測網路,在一些數據集上試驗了效果,寫了論文的初稿。恰好用了一個月的時間,下面那個分割演算法倉庫的提交日誌記錄下來了時間,2-15到3-15。

最終論文會發表到中國某個學報上。發論文不是目的,都是先寫專利,論文從專利說明書改出來的。專利說明書中文寫的,也不想翻譯,發中文期刊省事。

這裡僅介紹了範圍框標註方式,正式發表的論文里還包含了一個用於對比驗證這個標註方式的網路,還有一些試驗數據和結論。關於那個目標檢測網路沒啥好說的,結構簡單不新奇。有了這個標註方式,諸位可以輕鬆想到,或者想到更好的。另外……

神經網路的結構有啥好說的

論文出來之後,程式碼將會公開到tgis-top/TRD

引用

[1] Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun. Faster r-cnn: towards real-time object detection with region proposal networks. In IEEE Transactions on Pattern Analysis and Machine Intelligence, (6):1137–1149, 2017.

[2] Joseph Redmon, Santosh Divvala, Ross Girshick and Ali Farhadi. You only look once: Unified, real-time object detection. In Proc. of CVPR, p779–788, 2016.

[3] Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, and Alexander C Berg. Ssd: Single shot multibox detector. In ECCV, p21–37. Springer, 2016.

[4] Gui-Song Xia, Xiang Bai, Jian Ding, Zhen Zhu, Serge Belongie, Jiebo Luo, Mihai Datcu, Marcello Pelillo, and Liangpei Zhang. DOTA: A Large-scale Dataset for Object Detection in Aerial Images. In CVPR, 2018.

[5] Haigang Zhu, Xiaogang Chen, Weiqun Dai, Kun Fu, Qixiang Ye, Jianbin Jiao. Orientation Robust Object Detection in Aerial Images Using Deep Convolutional Neural Network. IEEE Int’l Conf. Image Processing, 2015.

[6] Xinyu Zhou, Cong Yao, He Wen, Yuzhi Wang, Shuchang Zhou, Weiran He, and Jiajun Liang. East: an efficient andaccurate scene text detector. In Proc. CVPR, p2642–2651, 2017.

[7] Yingying Jiang, Xiangyu Zhu, Xiaobing Wang, Shuli Yang,Wei Li, Hua Wang, Pei Fu, and Zhenbo Luo. R2cnn: rotational region cnn for orientation robust scene text detection. arXiv:1706.09579, 2017.

[8] Xue Yang,Jirui Yang, Junchi Yan, Yue Zhang, Tengfei Zhang, Zhi Guo, Sun Xian, and Kun Fu. SCRDet: Towards More Robust Detection for Small, Cluttered and Rotated Objs. In ICCV, 2019.

[9] Yongchao Xu, Mingtao Fu, Qimeng Wang, Yukang Wang, Kai Chen, Gui-Song Xia, and Xiang Bai. Gliding vertex on the horizontal bounding box for multi-oriented obj detection. arXiv:1911.09358, 2019.

[10] Youtian Lin, Pengming Feng, and Jian Guan. IENet: Interacting Embranchment One Stage Anchor Free Detector for Orientation Aerial Object Detection. arXiv:1912.00969, 2019.

[11] Tsung-Yi Lin, Piotr Doll ́ar, Ross B Girshick, Kaiming He, Bharath Hariharan, and Serge J Belongie. Feature pyramid networks for object detection. In Proc. of CVPR, vol 1, page 4, 2017.

[12] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for image recognition. In Proc. of CVPR, pages 770–778, 2016.