<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          總結(jié) | 目標(biāo)檢測中的框位置優(yōu)化

          共 6985字,需瀏覽 14分鐘

           ·

          2021-06-10 19:23

          點擊左上方藍字關(guān)注我們



          全網(wǎng)搜集目標(biāo)檢測相關(guān),人工篩選最優(yōu)價值內(nèi)容

          編者薦語
          目標(biāo)檢測已經(jīng)有了長足的發(fā)展,總體來說根據(jù)階段個數(shù),可以劃分為Two-stage(Faster RCNN)、one-stage(SSD) 或者E2E(DETR)。根據(jù)是否基于anchor先驗,可以劃分為anchor-based(Faster RCNN)、anchor-free(CornerNet)的方法。

          轉(zhuǎn)載自 | AI算法與圖像處理

          作者 | 賣豬肉的阿漆

          鏈接 | https://bbs.huaweicloud.com/blogs/263436

          摘要
          本文主要從目標(biāo)框位置優(yōu)化的角度來介紹目標(biāo)檢測領(lǐng)域的相關(guān)工作。框位置優(yōu)化主要可以分為以下幾個方面:
          • By XYWH,這是指通過優(yōu)化與ground truth的中心點坐標(biāo)值、寬和高的值來實現(xiàn)目標(biāo)框位置的優(yōu)化
          • By keypoint,這是指通過優(yōu)化關(guān)鍵點的方式來找到目標(biāo)框的位置
          • By LRBT,這是指通過優(yōu)化與ground truth 四條邊之間的距離的方式來實現(xiàn)目標(biāo)框位置的優(yōu)化
          • By IoU,這是指通過最大化與GT計算得到的IoU來優(yōu)化目標(biāo)框的位置
          • uncertainty,解決目標(biāo)檢測框真值的邊界不確定性




          01


          Optimize by XYWH


          定義


          優(yōu)化目標(biāo)為預(yù)測bbox的中心點坐標(biāo)(x,y)和寬高(width, height)與對應(yīng)真值的差距盡可能的小。
          接下來我們以Faster RCNN為例介紹該方法  。


          思路


          基于Anchor的先驗,我們可以得知每個proposal的大概位置。考慮到利用Anchor的先驗信息,作者使得預(yù)測框到anchor的距離和與子匹配的GT框到anchor的距離盡可能的相似。距離:XYWH的差值。


          匹配方法


          1、  代表  和  的IoU值;  大于指定閾值,代表i和j之間具有匹配關(guān)系
          2、  對應(yīng)最大IoU的  ;如第一步j(luò)沒有得到任何匹配,則在此步,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 較小時,對 x 的梯度也會變小,而在 x 很大時,對 x 的梯度的絕對值達到上限 1,也不會太大以至于破壞網(wǎng)絡(luò)參數(shù)。smooth L1 可以避開 L1 和 L2 損失的缺陷。



          為什么要除  ?
          A: 消除不同anchor大小帶來的影響,相當(dāng)于歸一化
          為什么w和h的優(yōu)化要以log的形式進行?
          A: target(H和W)是學(xué)習(xí)一個放縮的尺度,因此尺度值需要大于0,因此需要使用exp,對應(yīng)的這里為log函數(shù)



          02


          Optimize by Keypoint


          定義


          優(yōu)化目標(biāo)為找到物體的兩個關(guān)鍵點:左上點和右下點。核心為一個semantic segmentation問題。
          接下來我們以Corner Net為例介紹該方法  。


          思路


          不同于基于Anchor的方法,本方法需要先識別關(guān)鍵點在圖中的位置。由于在pooling過程中會引入左邊的誤差,所以需要再針對每個關(guān)鍵點預(yù)測一個offset。


          Q&A


          如何訓(xùn)練和預(yù)測關(guān)鍵點?一個點一個pixel
          A:作者使用2D Gaussian來生成,如下圖所示,針對每個pixel,生成一個半徑大小為r的圓形Gaussian分布。半徑r的大小是自適應(yīng)的。



          半徑r是通過下圖所示的三種方式計算得到的最小值



          若一個pixel對應(yīng)了多個Gaussian分布的值,選擇最大的。
          如何根據(jù)top-left和bottom-right關(guān)鍵點兩兩組合形成最終的bbox?
          A:作者提出針對每個keypoint 預(yù)測一個embedded vector,當(dāng)top_left和bottom_left的embedded vector相似度大于一定閾值的時候則認(rèn)為他們是描述的同一個bbox。則形成一個bbox
          keypoint往往落在物體的外部,對應(yīng)位置的特征可能不能很好表征物體,會增加識別關(guān)鍵點的難度。
          A:作者提出了CornerPooling,其結(jié)構(gòu)如下圖所示


          優(yōu)化公式


          綜上所述,在該方式中,我們需要以下三個優(yōu)化目標(biāo)
          1、關(guān)鍵點的分類,可以看成一個語義分割任務(wù),作者采用了focal loss的變種,如下圖所示



          2、每個關(guān)鍵點的offset預(yù)測,每個關(guān)鍵點offset的真值如下式所示。作者采用smooth l1去優(yōu)化



          3、每個關(guān)鍵點的embedded vector預(yù)測,作者使用下式來優(yōu)化embedded vector。讓屬于同一個物體的vector相似,不屬于同一個物體的不相似


          整體訓(xùn)練&推理流程


          整個cornernet 的訓(xùn)練和推理流程如下圖所示





          03


          Optimize by LRBT
          上述基于關(guān)鍵點回歸的方法有幾個缺點
          1、容易產(chǎn)生ghost bbox,這是由于tl br的embedded 相似度的確較高產(chǎn)生的
          2、后處理的時候,若關(guān)鍵點較多,復(fù)雜度較高。為K^2的復(fù)雜度。
          為了解決該問題,作者提出了基于LRBT的優(yōu)化方式


          定義


          優(yōu)化目標(biāo)為物體的“中心點”距離四條邊的距離



          接下來我們以FCOS為例介紹該方法  。


          思路


          在feature map上找到每個“中心點”,針對每個中心點預(yù)測和他對應(yīng)的框的四個值。


          Q&A


          1、如何定義“中心點”
          A:我們需要找到特征圖上每個location(pixel)和gt_bbox的匹配關(guān)系,然后將匹配到的gt_bbox作為真值。
          匹配關(guān)系:
          - location落在某個gt_bbox內(nèi)部,這里的落在內(nèi)部可以直接的理解為落在內(nèi)部,也可以替換成其他規(guī)則。例如真實中心的某個范圍。
          - 為了加速收斂,l、r、t、b應(yīng)該在某一個范圍內(nèi),如果不在這個范圍內(nèi),就以為著應(yīng)該由其他location來優(yōu)化。例如,都應(yīng)該在scale_factor的范圍內(nèi)
          2、如何解決一個物體框可能包括了多個“中心點”
          可以支持這種1對多的關(guān)系,一個物體框有多個中心點負(fù)責(zé)預(yù)測,后續(xù)通過NMS消除。
          但是每個中心點的權(quán)重作者認(rèn)為是不一樣的,因為距離物體實際中心近的中心點其難度較低,應(yīng)該就越準(zhǔn)確,所有在NMS的時候權(quán)重應(yīng)該高。所以作者多了一個branch來預(yù)測centerness,即用于評估每個中心點的難易程度。



          3、如何解決一個中心點可能落在多個物體框內(nèi)部
          作者選擇面積最小的bbox作為優(yōu)化目標(biāo),其實也可以優(yōu)化多個?


          04


          Optimize by IoU
          上述基本都是基于距離的回歸,但是我們最終的評價指標(biāo)是IoU,所以我們優(yōu)化的目標(biāo)和我們最終評價的指標(biāo)之間還存在一些差異。在下面的case中,第一行所有情況的L2loss都是一樣的,但是IoU和GIoU是存在一定差異的。在第二行中,L1 Loss都是一樣的,但是IoU 和 GIoU 也是不一樣的。



          為了解決上述的差異,作者提出了使用IoU作為我們的優(yōu)化目標(biāo)


          定義


          優(yōu)化目標(biāo)為使得預(yù)測框和真值框IoU最大,使用IoU 作為損失函數(shù)主要有以下兩個優(yōu)勢
          1. 優(yōu)化目標(biāo)和評價指標(biāo)存在差異,Ln(L2, L1)范式優(yōu)化和IoU優(yōu)化并不完全等價,如上圖所示。
          2. IoU對目標(biāo)物體的scale不敏感。
          但是直接使用IoU Loss也存在如下兩個問題
          1. IoU值容易為0,且始終無法優(yōu)化。
          2. IoU無法辨識不同方式的對齊,比如方向不一致。
          為了解決上述問題,作者提出了GIoU General IoU Loss  


          GIoU


          定義公式如下所示,C是包含A和B的最小box。當(dāng)IoU(A, B)為0的時候,優(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:])


          實驗結(jié)果如下所示


          DIoU

          Motivation


          Distance IoU Loss  主要是為了解決如下兩個問題


          • GIoU訓(xùn)練過程較慢,作者做的模擬實驗見下圖

          • GIoU傾向得到一個較大的bbox
          • GIoU 區(qū)分兩個對象之間的對齊方式比較間接,僅通過引入C的方式來反應(yīng)重疊的方式,不夠直接。如下圖所示。第二幅圖展示來當(dāng)GIoU一樣的情況下,DIoU是不一致的(前提是,中心點重合的情況下認(rèn)為擬合的最好)。

          Contributions

          • 提出了基于IoU Loss的一般性范式,這是我認(rèn)為最大的貢獻
          • 提出了DIoU Loss,在IoU loss的基礎(chǔ)上將central之間的距離作為懲罰項
          • 在各個數(shù)據(jù)集和detector上都取得了不錯的效果

          Detail


          范式:作為認(rèn)為IoU loss應(yīng)該優(yōu)化的目標(biāo)包括三個方面


          • 兩個框之間的重合度
          • 中心點之間的距離
          • 長寬比的相似性


          作者基于上述的1&&2,提出了DIoU Loss,結(jié)合1&&2&&3提出了CIoU Loss(C is complete)


          • DIoU:定義如下所示,其中關(guān)鍵中心點之間距離的懲罰項的分子代表兩個框中心點之間的歐式距離。分母是GIoU中矩陣C的對角線變長。分母起到了歸一化的作用。

          • CIoU的定義如下所示,它在DIoU的基礎(chǔ)上增加了對長寬比的懲罰項


          05


          Optimize by uncertainty


          Motivation

          • 不一致性
            • 訓(xùn)練和測試兩個階段的,如上圖所示,訓(xùn)練的時候單獨優(yōu)化classification score和IoU score,測試的時候?qū)⑵湎喑耍缓髸?dǎo)致訓(xùn)練和測試的時候不一致。
            • 測試的時候,進入NMS的是classification score乘IoU score,就會存在一種情況classification score較低,但是IoU score較高,然后使得負(fù)樣本沒有被過濾。這是因為IoU score并沒有對負(fù)樣本做優(yōu)化,所有負(fù)樣本的IoU score并不受控制,如下圖所示。
            • Localization Quality Estimation (LQE) 是許多one-stage或者anchor-free方法改善效果的途徑。LQE的常用方法見下圖所示。

            • 但是上述的方法會帶來一定的不一致性1,它主要包括以下兩點


          Contribution1
          為了解決上述的問題,作者提出使用Joint的方式來聯(lián)合優(yōu)化classification score和IoU score。即就是用同一個prediction值即代表classification score又代表IoU score


          • 不靈活性
            • 目前目標(biāo)檢測的標(biāo)準(zhǔn)框有時候會存在標(biāo)注的不確定性(或噪聲),如下圖所示。而目前常用的bbox優(yōu)化方式是優(yōu)化Dirac分布(具體什么是Dirac分布后續(xù)會介紹)。

            • 但是Dirac分布過于固定,不能解決uncertain的問題,因此有人提出了Gaussian 分布。
            • 但是作者認(rèn)為Gaussian分布過于理想,不能適應(yīng)于復(fù)雜的現(xiàn)實情況。


          Contribution2
          因此,作者提出了不依賴于任何先驗的潛在分布優(yōu)化(underlying distribution)


          Method

          Quality Focal Loss

          • 在上一節(jié),我們介紹了作者使用同一個prediction score來同時表示classification score和IoU score,那么優(yōu)化該值的時候真值應(yīng)該是什么呢?作者選擇IoU值作為優(yōu)化的真值,由于IoU是一個[0,1]之間的連續(xù)值。而傳統(tǒng)的focal loss優(yōu)化的目標(biāo)是{0, 1}這樣的離散值。因此該loss更加泛化一點(general)
          • Quality Focal Loss就是上述的更加泛化的FocalLoss,其定義如下所示

          • 上述公式的后部分是展開形式的交叉熵,系數(shù)是adaptive的,當(dāng)預(yù)測是和真值接近的時候,系數(shù)小,當(dāng)遠(yuǎn)的時候系數(shù)大。

          Distribution Focal Loss


          在本節(jié)我們主要介紹以下何為Distribution,以及我們的Distribution Focal Loss。


          • 先看為什么是Distribution?傳統(tǒng)的BBox regression即就是直接優(yōu)化兩個值,讓pred_w接近真值的w。
            • 換個角度看,假設(shè)我們預(yù)測的值為pred_w, 我們直接優(yōu)化pred_w接近w,那么我們就相當(dāng)于讓pred_w出現(xiàn)的概率是1.0。這即就是Dirac Distribution,其如下圖所示。

            • 也就是說我們最終的預(yù)測值是對所有y可能出現(xiàn)的值計算積分。也就如下公式所示。

          • 接下來在看我們的Distribution Focal Loss, 有上式可知,上式是比Dirac更加泛化的形式。因此本文用上式來計算預(yù)測的y^。預(yù)測y^之前我們需要先清楚兩點
            • 連續(xù)值的積分是不好實現(xiàn)的,我們可以用離散值的求和來代替
            • 我們需要確定預(yù)測值的范圍。
            • 有了上述兩個條件,我們可以得到pred^的計算公式如下所示。

          • 得到上述的y的預(yù)測值后,我們?nèi)绾稳?yōu)化呢?因為我們知道y^是接近y的,因此我們需要讓int(y)和int(y)+1的prob最大。因此就可以對應(yīng)下面的公式。

          Discussion

          • GIoU 是否必須?
            根據(jù)總的Loss定義,我們發(fā)現(xiàn)GIoU貌似不是必須,因為通過
            distribution focal loss也可以起到bbox優(yōu)化的目的。因此我們做了對比實驗,發(fā)現(xiàn)取消GIoU loss會帶來小幅度的指標(biāo)下降。
          • 別的應(yīng)用場景
            數(shù)據(jù)分類(帶有噪聲)。針對每個類,我們將其拆分成N份(0., 0.1, 0.2, …, 1.0),分別預(yù)測每一份的概率,然后求和,即為最終該類別的概率。
          • distribution的意義
            分布越陡峭,證明越確定,否則越不確定。


          06


          參考文獻
          Ren S, He K, Girshick R, et al. Faster r-cnn: Towards real-time object detection with region proposal networks[J]. arXiv preprint arXiv:1506.01497, 2015.Law H, Deng J. Cornernet: Detecting objects as paired keypoints[C]//Proceedings of the European conference on computer vision (ECCV). 2018: 734-750.Tian Z, Shen C, Chen H, et al. Fcos: Fully convolutional one-stage object detection[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. 2019: 9627-9636.Rezatofighi H, Tsoi N, Gwak J Y, et al. Generalized intersection over union: A metric and a loss for bounding box regression[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019: 658-666.Zheng Z, Wang P, Liu W, et al. Distance-IoU loss: Faster and better learning for bounding box regression[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2020, 34(07): 12993-13000.Li X, Wang W, Wu L, et al. Generalized focal loss: Learning qualified and distributed bounding boxes for dense object detection[J]. arXiv preprint arXiv:2006.04388, 2020.


          END



          整理不易,點贊三連↓

          瀏覽 43
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  操屄网址| 狼友新网址 | 影音先锋夜夜亚洲 | 可以免费观看的毛片 | 漂亮一区二区三区大学生 |