目標(biāo)檢測(cè)已經(jīng)有了長(zhǎng)足的發(fā)展,總體來(lái)說(shuō)根據(jù)階段個(gè)數(shù),可以劃分為T(mén)wo-stage(Faster RCNN)、one-stage(SSD) 或者E2E(DETR)。根據(jù)是否基于anchor先驗(yàn),可以劃分為anchor-based(Faster RCNN)、anchor-free(CornerNet)的方法。
本文主要從目標(biāo)框位置優(yōu)化的角度來(lái)介紹目標(biāo)檢測(cè)領(lǐng)域的相關(guān)工作。框位置優(yōu)化主要可以分為以下幾個(gè)方面
By XYWH,這是指通過(guò)優(yōu)化與ground truth的中心點(diǎn)坐標(biāo)值、寬和高的值來(lái)實(shí)現(xiàn)目標(biāo)框位置的優(yōu)化
By keypoint,這是指通過(guò)優(yōu)化關(guān)鍵點(diǎn)的方式來(lái)找到目標(biāo)框的位置
By LRBT,這是指通過(guò)優(yōu)化與ground truth 四條邊之間的距離的方式來(lái)實(shí)現(xiàn)目標(biāo)框位置的優(yōu)化
By IoU,這是指通過(guò)最大化與GT計(jì)算得到的IoU來(lái)優(yōu)化目標(biāo)框的位置
uncertainty,解決目標(biāo)檢測(cè)框真值的邊界不確定性
01
Optimize by XYWH
定義
優(yōu)化目標(biāo)為預(yù)測(cè)bbox的中心點(diǎn)坐標(biāo)(x,y)和寬高(width, height)與對(duì)應(yīng)真值的差距盡可能的小。接下來(lái)我們以Faster RCNN為例介紹該方法 。
思路
基于Anchor的先驗(yàn),我們可以得知每個(gè)proposal的大概位置??紤]到利用Anchor的先驗(yàn)信息,作者使得預(yù)測(cè)框到anchor的距離和與子匹配的GT框到anchor的距離盡可能的相似。距離:XYWH的差值。
匹配方法
1、 代表 和 的IoU值; 大于指定閾值,代表i和j之間具有匹配關(guān)系
2、 對(duì)應(yīng)最大IoU的 ;如第一步j(luò)沒(méi)有得到任何匹配,則在此步,i和j具備匹配關(guān)系
優(yōu)化公式
上述是Faster RCNN的優(yōu)化目標(biāo)函數(shù),我們的目標(biāo)就是讓 盡可能的逼近 ,之間的優(yōu)化函數(shù) 可以選擇L2,or L1 作者這里使用了Smooth L1
Q&A
為什么是SmoothL1?
A: smooth L1 在 x 較小時(shí),對(duì) x 的梯度也會(huì)變小,而在 x 很大時(shí),對(duì) x 的梯度的絕對(duì)值達(dá)到上限 1,也不會(huì)太大以至于破壞網(wǎng)絡(luò)參數(shù)。smooth L1 可以避開(kāi) L1 和 L2 損失的缺陷。
為什么要除 ?
A: 消除不同anchor大小帶來(lái)的影響,相當(dāng)于歸一化為什么w和h的優(yōu)化要以log的形式進(jìn)行?
A: target(H和W)是學(xué)習(xí)一個(gè)放縮的尺度,因此尺度值需要大于0,因此需要使用exp,對(duì)應(yīng)的這里為log函數(shù)
02
Optimize by Keypoint
定義
優(yōu)化目標(biāo)為找到物體的兩個(gè)關(guān)鍵點(diǎn):左上點(diǎn)和右下點(diǎn)。核心為一個(gè)semantic segmentation問(wèn)題。
接下來(lái)我們以Corner Net為例介紹該方法 。
思路
不同于基于Anchor的方法,本方法需要先識(shí)別關(guān)鍵點(diǎn)在圖中的位置。由于在pooling過(guò)程中會(huì)引入左邊的誤差,所以需要再針對(duì)每個(gè)關(guān)鍵點(diǎn)預(yù)測(cè)一個(gè)offset。
Q&A
如何訓(xùn)練和預(yù)測(cè)關(guān)鍵點(diǎn)?一個(gè)點(diǎn)一個(gè)pixel
A:作者使用2D Gaussian來(lái)生成,如下圖所示,針對(duì)每個(gè)pixel,生成一個(gè)半徑大小為r的圓形Gaussian分布。半徑r的大小是自適應(yīng)的。
若一個(gè)pixel對(duì)應(yīng)了多個(gè)Gaussian分布的值,選擇最大的。如何根據(jù)top-left和bottom-right關(guān)鍵點(diǎn)兩兩組合形成最終的bbox?
A:作者提出針對(duì)每個(gè)keypoint 預(yù)測(cè)一個(gè)embedded vector,當(dāng)top_left和bottom_left的embedded vector相似度大于一定閾值的時(shí)候則認(rèn)為他們是描述的同一個(gè)bbox。則形成一個(gè)bboxkeypoint往往落在物體的外部,對(duì)應(yīng)位置的特征可能不能很好表征物體,會(huì)增加識(shí)別關(guān)鍵點(diǎn)的難度。
A:作者提出了CornerPooling
優(yōu)化公式
綜上所述,在該方式中,我們需要以下三個(gè)優(yōu)化目標(biāo)
1、關(guān)鍵點(diǎn)的分類(lèi),可以看成一個(gè)語(yǔ)義分割任務(wù),作者采用了focal loss的變種,如下圖所示
2、每個(gè)關(guān)鍵點(diǎn)的offset預(yù)測(cè),每個(gè)關(guān)鍵點(diǎn)offset的真值如下式所示。作者采用smooth l1去優(yōu)化
3、每個(gè)關(guān)鍵點(diǎn)的embedded vector預(yù)測(cè),作者使用下式來(lái)優(yōu)化embedded vector。讓屬于同一個(gè)物體的vector相似,不屬于同一個(gè)物體的不相似
整體訓(xùn)練&推理流程
03
Optimize by LRBT上述基于關(guān)鍵點(diǎn)回歸的方法有幾個(gè)缺點(diǎn)
1、容易產(chǎn)生ghost bbox,這是由于tl br的embedded 相似度的確較高產(chǎn)生的
2、后處理的時(shí)候,若關(guān)鍵點(diǎn)較多,復(fù)雜度較高。為K^2的復(fù)雜度。
為了解決該問(wèn)題,作者提出了基于LRBT的優(yōu)化方式
定義
優(yōu)化目標(biāo)為物體的“中心點(diǎn)”距離四條邊的距離
接下來(lái)我們以FCOS為例介紹該方法 。
思路
在feature map上找到每個(gè)“中心點(diǎn)”,針對(duì)每個(gè)中心點(diǎn)預(yù)測(cè)和他對(duì)應(yīng)的框的四個(gè)值。
Q&A
1、如何定義“中心點(diǎn)”
A:我們需要找到特征圖上每個(gè)location(pixel)和gt_bbox的匹配關(guān)系,然后將匹配到的gt_bbox作為真值。
匹配關(guān)系:
- location落在某個(gè)gt_bbox內(nèi)部,這里的落在內(nèi)部可以直接的理解為落在內(nèi)部,也可以替換成其他規(guī)則。例如真實(shí)中心的某個(gè)范圍。
- 為了加速收斂,l、r、t、b應(yīng)該在某一個(gè)范圍內(nèi),如果不在這個(gè)范圍內(nèi),就以為著應(yīng)該由其他location來(lái)優(yōu)化。例如,都應(yīng)該在scale_factor的范圍內(nèi)2、如何解決一個(gè)物體框可能包括了多個(gè)“中心點(diǎn)”
可以支持這種1對(duì)多的關(guān)系,一個(gè)物體框有多個(gè)中心點(diǎn)負(fù)責(zé)預(yù)測(cè),后續(xù)通過(guò)NMS消除。
但是每個(gè)中心點(diǎn)的權(quán)重作者認(rèn)為是不一樣的,因?yàn)榫嚯x物體實(shí)際中心近的中心點(diǎn)其難度較低,應(yīng)該就越準(zhǔn)確,所有在NMS的時(shí)候權(quán)重應(yīng)該高。所以作者多了一個(gè)branch來(lái)預(yù)測(cè)centerness,即用于評(píng)估每個(gè)中心點(diǎn)的難易程度。
3、如何解決一個(gè)中心點(diǎn)可能落在多個(gè)物體框內(nèi)部
作者選擇面積最小的bbox作為優(yōu)化目標(biāo),其實(shí)也可以優(yōu)化多個(gè)?
04
Optimize by IoU上述基本都是基于距離的回歸,但是我們最終的評(píng)價(jià)指標(biāo)是IoU,所以我們優(yōu)化的目標(biāo)和我們最終評(píng)價(jià)的指標(biāo)之間還存在一些差異。在下面的case中,第一行所有情況的L2loss都是一樣的,但是IoU和GIoU是存在一定差異的。在第二行中,L1 Loss都是一樣的,但是IoU 和 GIoU 也是不一樣的。
為了解決上述的差異,作者提出了使用IoU作為我們的優(yōu)化目標(biāo)
定義
優(yōu)化目標(biāo)為使得預(yù)測(cè)框和真值框IoU最大,使用IoU 作為損失函數(shù)主要有以下兩個(gè)優(yōu)勢(shì)1. 優(yōu)化目標(biāo)和評(píng)價(jià)指標(biāo)存在差異,Ln(L2, L1)范式優(yōu)化和IoU優(yōu)化并不完全等價(jià),如上圖所示。2. IoU對(duì)目標(biāo)物體的scale不敏感。但是直接使用IoU Loss也存在如下兩個(gè)問(wèn)題1. IoU值容易為0,且始終無(wú)法優(yōu)化。2. IoU無(wú)法辨識(shí)不同方式的對(duì)齊,比如方向不一致。為了解決上述問(wèn)題,作者提出了GIoU General IoU Loss
GIoU
定義公式如下所示,C是包含A和B的最小box。當(dāng)IoU(A, B)為0的時(shí)候,優(yōu)化目標(biāo)轉(zhuǎn)化為讓C與AUB之間的空隙盡可能小。即就是A和B盡可能靠近。
A = np.random.random([N, 4])B = np.random.random([N, 4])C = np.zero_like(A)C[:, :2] = np.min(A[:, :2], B[:, :2])C[:, 2:] = np.max(A[:, 2:], B[:, 2:])
實(shí)驗(yàn)結(jié)果如下所示
DIoU
Motivation
Distance IoU Loss 主要是為了解決如下兩個(gè)問(wèn)題
GIoU傾向得到一個(gè)較大的bbox
GIoU 區(qū)分兩個(gè)對(duì)象之間的對(duì)齊方式比較間接,僅通過(guò)引入C的方式來(lái)反應(yīng)重疊的方式,不夠直接。如下圖所示。第二幅圖展示來(lái)當(dāng)GIoU一樣的情況下,DIoU是不一致的(前提是,中心點(diǎn)重合的情況下認(rèn)為擬合的最好)。
Contributions
提出了基于IoU Loss的一般性范式,這是我認(rèn)為最大的貢獻(xiàn)
提出了DIoU Loss,在IoU loss的基礎(chǔ)上將central之間的距離作為懲罰項(xiàng)
在各個(gè)數(shù)據(jù)集和detector上都取得了不錯(cuò)的效果
Detail
范式:作為認(rèn)為IoU loss應(yīng)該優(yōu)化的目標(biāo)包括三個(gè)方面
兩個(gè)框之間的重合度
中心點(diǎn)之間的距離
長(zhǎng)寬比的相似性
作者基于上述的1&&2,提出了DIoU Loss,結(jié)合1&&2&&3提出了CIoU Loss(C is complete)
DIoU:定義如下所示,其中關(guān)鍵中心點(diǎn)之間距離的懲罰項(xiàng)的分子代表兩個(gè)框中心點(diǎn)之間的歐式距離。分母是GIoU中矩陣C的對(duì)角線變長(zhǎng)。分母起到了歸一化的作用。
CIoU的定義如下所示,它在DIoU的基礎(chǔ)上增加了對(duì)長(zhǎng)寬比的懲罰項(xiàng)
05
Optimize by uncertainty
Motivation
不一致性
訓(xùn)練和測(cè)試兩個(gè)階段的,如上圖所示,訓(xùn)練的時(shí)候單獨(dú)優(yōu)化classification score和IoU score,測(cè)試的時(shí)候?qū)⑵湎喑耍缓髸?huì)導(dǎo)致訓(xùn)練和測(cè)試的時(shí)候不一致。
測(cè)試的時(shí)候,進(jìn)入NMS的是classification score乘IoU score,就會(huì)存在一種情況classification score較低,但是IoU score較高,然后使得負(fù)樣本沒(méi)有被過(guò)濾。這是因?yàn)镮oU score并沒(méi)有對(duì)負(fù)樣本做優(yōu)化,所有負(fù)樣本的IoU score并不受控制,如下圖所示。
Localization Quality Estimation (LQE) 是許多one-stage或者anchor-free方法改善效果的途徑。
但是上述的方法會(huì)帶來(lái)一定的不一致性1,它主要包括以下兩點(diǎn)
Contribution1為了解決上述的問(wèn)題,作者提出使用Joint的方式來(lái)聯(lián)合優(yōu)化classification score和IoU score。即就是用同一個(gè)prediction值即代表classification score又代表IoU score
不靈活性
目前目標(biāo)檢測(cè)的標(biāo)準(zhǔn)框有時(shí)候會(huì)存在標(biāo)注的不確定性(或噪聲)。而目前常用的bbox優(yōu)化方式是優(yōu)化Dirac分布(具體什么是Dirac分布后續(xù)會(huì)介紹)。
但是Dirac分布過(guò)于固定,不能解決uncertain的問(wèn)題,因此有人提出了Gaussian 分布。
但是作者認(rèn)為Gaussian分布過(guò)于理想,不能適應(yīng)于復(fù)雜的現(xiàn)實(shí)情況。
Contribution2因此,作者提出了不依賴于任何先驗(yàn)的潛在分布優(yōu)化(underlying distribution)
Method
Quality Focal Loss
在上一節(jié),我們介紹了作者使用同一個(gè)prediction score來(lái)同時(shí)表示classification score和IoU score,那么優(yōu)化該值的時(shí)候真值應(yīng)該是什么呢?作者選擇IoU值作為優(yōu)化的真值,由于IoU是一個(gè)[0,1]之間的連續(xù)值。而傳統(tǒng)的focal loss優(yōu)化的目標(biāo)是{0, 1}這樣的離散值。因此該loss更加泛化一點(diǎn)(general)
Quality Focal Loss就是上述的更加泛化的FocalLoss,其定義如下所示
上述公式的后部分是展開(kāi)形式的交叉熵,系數(shù)是adaptive的,當(dāng)預(yù)測(cè)是和真值接近的時(shí)候,系數(shù)小,當(dāng)遠(yuǎn)的時(shí)候系數(shù)大。
Distribution Focal Loss
在本節(jié)我們主要介紹以下何為Distribution,以及我們的Distribution Focal Loss。
先看為什么是Distribution?傳統(tǒng)的BBox regression即就是直接優(yōu)化兩個(gè)值,讓pred_w接近真值的w。
換個(gè)角度看,假設(shè)我們預(yù)測(cè)的值為pred_w, 我們直接優(yōu)化pred_w接近w,那么我們就相當(dāng)于讓pred_w出現(xiàn)的概率是1.0。這即就是Dirac Distribution。
也就是說(shuō)我們最終的預(yù)測(cè)值是對(duì)所有y可能出現(xiàn)的值計(jì)算積分。也就如下公式所示。
接下來(lái)在看我們的Distribution Focal Loss, 有上式可知,上式是比Dirac更加泛化的形式。因此本文用上式來(lái)計(jì)算預(yù)測(cè)的y^。預(yù)測(cè)y^之前我們需要先清楚兩點(diǎn)
連續(xù)值的積分是不好實(shí)現(xiàn)的,我們可以用離散值的求和來(lái)代替
我們需要確定預(yù)測(cè)值的范圍。
有了上述兩個(gè)條件,我們可以得到pred^的計(jì)算公式如下所示。
得到上述的y的預(yù)測(cè)值后,我們?nèi)绾稳?yōu)化呢?因?yàn)槲覀冎纘^是接近y的,因此我們需要讓int(y)和int(y)+1的prob最大。因此就可以對(duì)應(yīng)下面的公式。
Discussion
GIoU 是否必須?
根據(jù)總的Loss定義,我們發(fā)現(xiàn)GIoU貌似不是必須,因?yàn)橥ㄟ^(guò)
distribution focal loss也可以起到bbox優(yōu)化的目的。因此我們做了對(duì)比實(shí)驗(yàn),發(fā)現(xiàn)取消GIoU loss會(huì)帶來(lái)小幅度的指標(biāo)下降。
別的應(yīng)用場(chǎng)景
數(shù)據(jù)分類(lèi)(帶有噪聲)。針對(duì)每個(gè)類(lèi),我們將其拆分成N份(0., 0.1, 0.2, …, 1.0),分別預(yù)測(cè)每一份的概率,然后求和,即為最終該類(lèi)別的概率。
distribution的意義
分布越陡峭,證明越確定,否則越不確定。
本文分享自華為云社區(qū)《目標(biāo)檢測(cè)中的框位置優(yōu)化總結(jié)》
原文作者:賣(mài)豬肉的阿漆 侵刪
地址:https://bbs.huaweicloud.com/blogs/263436
編輯:jq
-
SSD
+關(guān)注
關(guān)注
21文章
2863瀏覽量
117458 -
目標(biāo)檢測(cè)
+關(guān)注
關(guān)注
0文章
209瀏覽量
15613 -
GT
+關(guān)注
關(guān)注
0文章
14瀏覽量
24662
原文標(biāo)題:總結(jié) | 目標(biāo)檢測(cè)中的框位置優(yōu)化
文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺(jué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論