極市導(dǎo)讀本文是今年剛被CVPR接收的文章,關(guān)于CSL的優(yōu)化版本Densely Coded Labels (DCL),優(yōu)化了過于厚重的預(yù)測(cè)層以及對(duì)類正方形目標(biāo)檢測(cè)的不友好。附有相關(guān)代碼與demo展示。 》》加入極市CV技術(shù)交流群,走在計(jì)算機(jī)視覺的最前沿
一、介紹
Densely Coded Labels (DCL)是 Circular Smooth Label (CSL)(https://zhuanlan.zhihu.com/p/111493759)的優(yōu)化版本。DCL主要從兩方面進(jìn)行了優(yōu)化:過于厚重的預(yù)測(cè)層以及對(duì)類正方形目標(biāo)檢測(cè)的不友好。
文章地址:
Dense Label Encoding for Boundary Discontinuity Free Rotation Detection
https://arxiv.org/abs/2011.09670
代碼地址:
DCL-Tensorflow
https://github.com/yangxue0827/RotationDetection
二、厚重的預(yù)測(cè)層
CSL編碼方式與獨(dú)熱編碼(one-hot)均屬于稀疏編碼(Sparsely Coded Label, SCL)。稀疏編碼的一個(gè)明顯缺點(diǎn)是需要較長(zhǎng)的位數(shù)來(lái)進(jìn)行編碼,以CSL為例,下面這種公式是其編解碼的具體過程:

CSL編解碼過程
其中 , 和 分別表示角度范圍(默認(rèn)是180)以及所劃分的角度類別。
那我們就可以計(jì)算出使用CSL編碼方式或獨(dú)熱編碼時(shí)的預(yù)測(cè)層厚度:

CSL編碼方式與獨(dú)熱編碼的預(yù)測(cè)層厚度計(jì)算公式
其中 表示anchor的數(shù)量。
而使用回歸進(jìn)行角度預(yù)測(cè)時(shí)的預(yù)測(cè)層厚度僅為:
回歸方法的預(yù)測(cè)層厚度
以 為例,CSL編碼方式與獨(dú)熱編碼的預(yù)測(cè)層厚度是1620,而基于回歸的預(yù)測(cè)層厚度只有9。這使得基于稀疏編碼方法的參數(shù)量(Params)和計(jì)算量(GFlops)相比基于回歸方法增加了26.40%和32.34%,造成模型訓(xùn)練和測(cè)試的效率低下,如下表所示。

參數(shù)量(Params)和計(jì)算量(GFlops)的比較
因此,如何減短編碼長(zhǎng)度是提高模型效率的關(guān)鍵。因此我們想到了密集編碼方法(Densely Coded Label, DCL),主要編碼方法有二值編碼(Binary Coded Label, BCL)和格雷編碼 (Gray Coded Label, GCL),它們的預(yù)測(cè)層厚度計(jì)算公式如下:

二值編碼和格雷編碼的預(yù)測(cè)層厚度計(jì)算公式
同樣以 為例,它們所對(duì)應(yīng)的預(yù)測(cè)層厚度只有72,只增加1.03%的參數(shù)量和1.26%的計(jì)算量,和回歸方法的效率幾乎一樣。下式是它們的編解碼過程,以二值編碼為例:

BCL編解碼過程
其中二值編碼和格雷編碼的編碼偽代碼:

二值編碼和格雷編碼的編碼偽代碼
盡管編碼長(zhǎng)度大大減少,但會(huì)引入幾個(gè)其他問題。
第一問題是二值編碼在一定程度上失去了相鄰角度之間的“距離遠(yuǎn)近”,也就是相鄰值之間的編碼結(jié)果可能發(fā)生巨大變化,沒有了CSL方法中強(qiáng)調(diào)的容忍性。比如,3和4在三位的二進(jìn)制編碼結(jié)果分別為011和100,如下表所示。

十進(jìn)制數(shù)所對(duì)應(yīng)的三位二值編碼和格雷編碼
可以看到所有三個(gè)位置都發(fā)生了變化,導(dǎo)致兩個(gè)角度預(yù)測(cè)的誤差很大。而格雷碼沒有這樣的問題,這是因?yàn)樵谝唤M數(shù)字的編碼中,任何兩個(gè)相鄰數(shù)的格雷碼只有一位不同。由于最大值和最小值之間也只有一位數(shù)字不同,因此格雷碼也稱為循環(huán)碼。格雷編碼的缺點(diǎn)也很明顯,盡管相鄰角度之間的編碼形式差別不大,但是具有較大差異的角度的編碼差異也不是很明顯,例如1(001)和6(101)。
第二個(gè)問題是所劃分的角度類別數(shù)需要是2的指數(shù)倍才能保證每一種編碼都對(duì)應(yīng)一種角度,否則會(huì)有大量冗余的編碼(盡管實(shí)驗(yàn)驗(yàn)證這個(gè)問題影響不大)。如果將180度范圍劃分為 個(gè)類別,則每個(gè)劃分間隔的范圍為 。根據(jù)CSL文章中的計(jì)算公式,理論期望誤差和最大誤差分別是 和 ,這種大小的誤差在是可以忽略不計(jì)的。
為了更好比較稀疏編碼和密集編碼,下圖就是一個(gè)具體例子:
稀疏編碼和密集編碼的比較例子
三、類正方形目標(biāo)檢測(cè)的不友好
不管是CSL還是DCL,為了避免角度周期性(PoA)和邊的交換性(EoE)問題,它們均采用了“角度分類+長(zhǎng)邊定義法”的組合。長(zhǎng)邊定義法有這樣一個(gè)問題,他無(wú)法較好定義一個(gè)類正方形目標(biāo),如下圖所示:
類正方形檢測(cè)問題
圖的左邊是gt,右邊是一種“視覺可行”的預(yù)測(cè)結(jié)果,之所以說(shuō)“視覺可行”是因?yàn)榇藭r(shí)的計(jì)算誤差非常大。這個(gè)誤差主要來(lái)源于角度(類正方形目標(biāo)兩邊近似相等,因此盡管wh的順序相反,誤差依然很小)。仔細(xì)觀察可以發(fā)現(xiàn)這兩種框的角度差約等于 。其實(shí)使用周期為90的定義方法對(duì)類正方形目標(biāo)來(lái)說(shuō)更加合適(如OpenCV定義法),長(zhǎng)邊定義法有明顯的缺陷。我的另一篇文章GWD詳細(xì)討論了這種問題,有一句話概括長(zhǎng)邊定義法出現(xiàn)這種問題的原因:目標(biāo)長(zhǎng)寬比的減小使得評(píng)估(IoU)和損失( -norm)之間的不一致性逐漸被放大。
針對(duì)這個(gè)問題以及第一個(gè)問題中提到的容忍性的消失,我們?cè)O(shè)計(jì)了一個(gè)損失權(quán)重(ADARSW),具體公式如下:
ADARSW權(quán)重
具體的想法是通過預(yù)測(cè)和gt的十進(jìn)制差值來(lái)引入容忍性,三角函數(shù)的引入來(lái)解決角度周期性和類正方形檢測(cè)問題(通過長(zhǎng)寬比來(lái)調(diào)整 參數(shù),從而調(diào)整三角函數(shù)的周期)。
四、實(shí)驗(yàn)結(jié)果
下表是對(duì)角度離散化粒度 的消融實(shí)驗(yàn)。盡管理論上越小,理論誤差越小,預(yù)測(cè)精度上限越高,但是會(huì)增加角度分類的難度。越大也不好,太大的話理論誤差太大,預(yù)測(cè)精度上限太低。一個(gè)合適的取值范圍是[180/32-180/256]。并且我們發(fā)現(xiàn),基于分類的角度預(yù)測(cè)方法(CSL和DCL)比基于回歸方法在高精度 上更有優(yōu)勢(shì),并且DCL比CSL效果更好,當(dāng)然效率也更高。
角度離散化粒度的消融實(shí)驗(yàn)
下表是對(duì)所提權(quán)重的消融實(shí)驗(yàn),主要列舉了DOTA數(shù)據(jù)集中10種長(zhǎng)寬比比較小的類正方形目標(biāo),并驗(yàn)證了ADARSW的有效性。

ADARSW的消融實(shí)驗(yàn)
下表是在不同數(shù)據(jù)集上對(duì)三種不同方法的比較,我們發(fā)現(xiàn)BCL》CSL》Reg.。

其他數(shù)據(jù)集上的效果驗(yàn)證
下面兩個(gè)表格是所提方法在兩種數(shù)據(jù)集上的SOTA對(duì)比,DCL-based方法具有一定的優(yōu)勢(shì)。

DOTA數(shù)據(jù)集上的SOTA方法對(duì)比

HRSC2016數(shù)據(jù)集上的SOTA方法對(duì)比
下圖是對(duì)DCL方法的所預(yù)測(cè)角度的特征可視化:
RetinaNet-DCL角度特征可視化
五、總結(jié)
基于角度分類預(yù)測(cè)的方法基本告一段落,CSL和DCL驗(yàn)證了角度分類這條路子的可行性,那其實(shí)接下來(lái)可以研究如何更好分類,可以借鑒很多方向的分類損失設(shè)計(jì),例如人臉識(shí)別。但是,這兩篇方法并沒有表現(xiàn)出角度分類這條路的優(yōu)越性,我所看到的優(yōu)勢(shì)僅僅是方法本身不存在邊界問題,也就是論文題目所寫的Boundary Discontinuity Free,但是代價(jià)是存在理論誤差以及模型參數(shù)量和計(jì)算量的增加。因此,最近我又回到了“角度回歸預(yù)測(cè)+新loss設(shè)計(jì)”這條路,一個(gè)工作是GWD(https://arxiv.org/abs/2101.11952),歡迎大家交流討論。
另外,簡(jiǎn)單介紹一下我所寫的一個(gè)基于tensorflow框架的旋轉(zhuǎn)檢測(cè)benchmark:
https://github.com/yangxue0827/RotationDetection
支持的算法:RetinaNet、Faster-RCNN等baseline以及SCRDet (ICCV19)、R3Det (AAAI21)、RSDet (AAAI21)、CSL (ECCV20)、DCL (CVPR21)、GWD等創(chuàng)新方法;
支持的數(shù)據(jù)集:DOTA、HRSC2016、ICDAR2015、ICDAR2017 MLT、MSRA-TD500、UCAS-AOD、FDDB、OHD-SJTU、SSDD++;
提供大量不同的預(yù)訓(xùn)練權(quán)重和訓(xùn)練好的權(quán)重;
訓(xùn)練可視化分析,以R3Det (AAAI21)為例:
SCRDet (ICCV19):https://arxiv.org/abs/1811.071263Det (AAAI21):https://arxiv.org/abs/1908.05612RSDet (AAAI21):https://arxiv.org/abs/1911.08299CSL (ECCV20):https://arxiv.org/abs/2003.05597DCL (CVPR21):https://arxiv.org/abs/2011.09670GWD:https://arxiv.org/abs/2101.11952R3Det (AAAI21):https://arxiv.org/abs/1908.05612
訓(xùn)練可視化
統(tǒng)計(jì)量記錄
5. RotationDetection的總體框如下:
RotationDetection框架結(jié)構(gòu)
6. demo:https://www.zhihu.com/zvideo/1289379563034636288
編輯:lyn
-
編碼
+關(guān)注
關(guān)注
6文章
1039瀏覽量
57000 -
目標(biāo)檢測(cè)
+關(guān)注
關(guān)注
0文章
233瀏覽量
16497 -
計(jì)算機(jī)視覺
+關(guān)注
關(guān)注
9文章
1715瀏覽量
47643
原文標(biāo)題:旋轉(zhuǎn)目標(biāo)檢測(cè)方法解讀(DCL, CVPR2021)
文章出處:【微信號(hào):cas-ciomp,微信公眾號(hào):中科院長(zhǎng)春光機(jī)所】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
YOLO5目標(biāo)檢測(cè)方案-基于米爾RK3576開發(fā)板
電壓放大器在全導(dǎo)波場(chǎng)圖像目標(biāo)識(shí)別的損傷檢測(cè)實(shí)驗(yàn)的應(yīng)用
基于級(jí)聯(lián)分類器的人臉檢測(cè)基本原理
廣和通發(fā)布端側(cè)目標(biāo)檢測(cè)模型FiboDet
使用aicube進(jìn)行目標(biāo)檢測(cè)識(shí)別數(shù)字項(xiàng)目的時(shí)候,在評(píng)估環(huán)節(jié)卡住了,怎么解決?
基于低頻旋轉(zhuǎn)電壓信號(hào)注入的PMSM初始定位
單旋轉(zhuǎn)臺(tái)XYR在精密點(diǎn)膠/外觀檢測(cè)/精密焊接的C#應(yīng)用
氣密性檢測(cè)儀的核心應(yīng)用范疇及其所針對(duì)的檢測(cè)目標(biāo)
【HarmonyOS 5】VisionKit人臉活體檢測(cè)詳解
基于LockAI視覺識(shí)別模塊:C++目標(biāo)檢測(cè)
基于LockAI視覺識(shí)別模塊:C++目標(biāo)檢測(cè)
氣密性檢測(cè)設(shè)備的檢測(cè)結(jié)果不精準(zhǔn)?不實(shí)
詳解旋轉(zhuǎn)目標(biāo)檢測(cè)方法與結(jié)果
評(píng)論