感知算法論文(八):Generalized Intersection over Union:A Metric and A Loss for Bounding Box Regression(2019)

摘要

Intersection over Union(IoU)是目標檢測領域應用最多的度量方式。

優化b-box的參數的迴歸過程所使用的損失函數和最大化度量值之間存在一定的鴻溝

二維軸心對齊的b-box情況,IoU可以直接作爲迴歸損失

但是,IoU無法優化不重疊的b-box情況

本文通過引入一個更一般化的度量方式來作爲新的loss和新的度量

本文通過將提出的 generalizedIoU(GIoU)generalized IoU (GIoU) 和已有的 SOTA 算法合併,來測試效果。

引言

b-box 迴歸是 2D/3D 計算機視覺問題的基礎,目標定位、多目標檢測、目標追蹤和實例分割等都依賴於精準的b-box迴歸。

目前,在提升應用層面性能的方式是使用更好的backbone[15,13],或用更好的方式來提取局部特徵[6]。忽略了使用 l1l_1l2l_2 迴歸來代替基於 IoU 的迴歸損失的方式,

IoU 類似於 Jaccard 係數,用於度量兩個任意形狀的相似程度

IoU 將目標的形狀屬性(如b-box的寬度、高度和位置等)編碼到 region 屬性中,然後計算一個基於其面積的標準化度量。

該屬性使得 IoU 對目標的尺度具有穩定性

最小化一般的 loss 和提升其 IoU 值沒有很強的聯繫,假設二維情況的例子如圖1(a),其中預測的b-box是黑色框,真實的b-box是綠色框,用(左上,右下)(x1,y1,x2,y2)(x_1,y_1,x_2,y_2)來表示。爲了簡化,假設兩個b-box的一個corner的距離是固定的(左下),因此,如果預測的第二個角位於以綠色框的第二個角爲中心的半徑固定的圓上(灰色虛線圓圈),則任何預測的b-box和真實b-box的 l2l_2 距離將相同。但 IoU 值不同(圖1(a))。圖1(b)也一樣。

由此可知,這些度量方式的局部最優並不是 IoU 的局部最優,此外,lnl_n 距離對尺度變化不具有穩定性。一些具有相同重複率但不同尺度的b-box,將會有不同的度量結果。

在這裏插入圖片描述
本文將會研究兩個座標來對齊的矩形的 IoU,該方法具有直觀可解釋性,與目前一般的觀點相反,IoU 可以反向傳播,也就是說可以直接將 IoU 作爲目標函數來優化。

將優化度量方式和優化損失函數進行對比,最優的方式是使用度量方式本身來進行優化。

但是 IoU 可以作爲度量方式,也可以作爲損失:如果兩個目標沒有重疊, IoU 值將爲0,無法反映兩個形狀的距離,如果兩個目標無重疊且使用 IoU 作爲損失函數,則 IoU 的值爲0,梯度爲0,無法優化。

本文中,我們將通過擴展到無重疊的情況,來解決 IoU 的缺點。

假設滿足以下要求:

  • 與一般的 IoU 定義相同,將形狀屬性編碼爲區域屬性
  • 保持 IoU 的形狀不變性
  • 保證在目標重疊情況下,與 IoU 相關性較強

我們將這個更一般化的 IoU 稱爲 GIoU,作爲衡量兩個任意形狀的度量,同樣地,我們對兩個對齊矩形的 GIoU 獲得瞭解析解,允許其可作爲損失函數使用。

將 GIoU loss 集成到優異的目標檢測算法中,可以提升檢測效果。

本文主要貢獻如下:

  • 提出了一種更 generalized 的 IoU,並作爲衡量兩個任意形狀的度量方式
  • 爲 GIoU 提供瞭解析解
  • 將 GIoU 和目前流行的目標檢測算法集成起來,獲得了效果的提升。

2. 相關工作

目標檢測準確性度量:

IoU 是目標檢測中常用的評估指標,用於確定預測結果中真正例和假正例,使用IoU 作爲衡量標準時,需要確定一個閾值。例如在 PASCAL VOC 中,一般使用 mAP,其計算基於固定的 IoU 閾值,如0.5。

任意的 IoU 閾值並不能完全反應某種方法的定位效果,所有高於閾值的框都被認定爲同樣的質量,爲了降低閾值對抑制結果的影響性, MS COCO 數據集將多種 IoU 閾值取得的平均結果也就是 average mAP 作爲衡量準則。

Bounding box representations and losses:

2維目標檢測中,一個很重要的步驟是學習b-box 的參數,目前已經出現了一些不同的 b-box representations 和 losses 。

YOLO v1 [19] 中提出對有輕微形變的邊界框參數直接進行迴歸的方法,來預測b-box大小的平方根,來彌補尺度敏感性。

[5] 中的 R-CNN 使用選擇性搜索方法來預測b-box的位置和偏移量來參數化b-box。爲了減輕尺度敏感性,用log域來表示b-box的尺寸和偏移,之後使用 l2l_2 規範化目標函數,如 MSE loss,來作爲優化目標。

[7] 中的 Fast R-CNN 使用 l1l_1 loss 來保證學習過程對異常值更加魯棒。

[22] 中提出使用一系列的 anchor boxes,之後迴歸得到預測 b-box 的尺寸和偏移量。但這很難訓練,由於正例和負例類別不平衡,爲了解決該問題,作者後續提出了focal loss[13] ,該 loss 和本文的落腳點一致。

很多流行的目標檢測方法都是使用上述的 b-box 表示方法和損失函數,已經取得了很好的效果。下面將介紹GIoU。

使用近似或代替函數來優化 IoU:

語義分割任務中,一般使用近似的或者代替的函數來優化 IoU。

近期的目標檢測任務中,很多方法直接或間接合並 IoU,來更好的執行b-box 迴歸。但是這些方法在非重疊情況下優化 IoU 時,要麼只能得到近似最優,要麼會無法得到最優。

本文通過引入 Generalized IoU 來解決 IoU 的缺陷,直接將 GIoU 作爲優化目標來訓練目標檢測問題。

3. Generalized Intersection over Union

IoU 用於對比兩個任意形狀 A 和 B 的相似度:

IoU=ABABIoU=\frac{|A \bigcap B|}{|A \bigcup B|}

該兩個特徵在 2D/3D計算機視覺任務中用的很多,如下所示:

在這裏插入圖片描述

  • IoU 作爲距離來講(LIoU=1IoUL_{IoU}=1-IoU),是一個數學上的衡量標準,也就是說 LIoUL_{IoU} 滿足非負性、同一性、對稱性和三角不等性。
  • IoU 對尺度不敏感,意味着兩個任意形狀的 A 和 B 對其空間尺度不敏感。

IoU 的缺點:

  • 如果 AB=0|A\bigcap B|=0,則IoU(A,B)=0IoU(A,B)=0。在此情況下, IoU 並不能反映兩個形狀的距離。
  • IoU 無法精確反映兩者重合度大小,如下所示,三種情況 IoU 都相等,但其重合度是不同的,左圖最好,右圖最差。
    在這裏插入圖片描述

爲了解決 IoU 的缺點,本文提出了 GIoU,對兩個任意凸面形狀的 A 和 B,首先尋找凸面形狀 C(包含A 和 B)。如需要對比兩個特殊幾何形狀,那麼 C 也是同樣的類型的幾何形狀。如A 和 B 是兩個橢圓,C 則是兩者交集,也是一個橢圓。之後計算 C 的面積和整個A 和 B 包含的面積的比例。

GIoU 是先計算兩個框的最小閉包區域面積,再計算IoU,再計算閉包區域中不屬於兩個框的區域佔閉包區域的比重,最後用IoU減去這個比重得到GIoU,如下所示:

  1. GIoU 也是一個距離度量,LGIoU=1GIoUL_{GIoU}=1-GIoU,具有所有的屬性,包括非負性、同一性、對稱性和三角不等性。

  2. 類似於 IoU,GIoU 對尺度不敏感

  3. GIoU 永遠是 IoU 的下界,GIoU(A,B)IoU(A,B)GIoU(A, B) ≤ IoU(A, B),且當 A 和 B 有較強的形狀相似性時,該下界更收斂,也就是 limABGIoU(A,B)=IoU(A,B)lim_{A\to B} GIoU(A, B) =IoU(A, B)

  4. 與IoU只關注重疊區域不同,GIoU不僅關注重疊區域,還關注其他的非重合區域,能更好的反映兩者的重合度。

  5. IoU(A,B)<=1IoU(A, B) <=1,而 1<=GIoU(A,B)<=1-1<=GIoU(A,B)<=1,具有對稱性。

    i) 類似於 IoU,1表示兩個形狀重合的很完美,也就是 AB=AB|A \bigcap B| =|A \bigcup B|時,GIoU=IoU=1。

    ii) 當兩個形狀的重複ratio AB|A\bigcup B|C|C| 的面積接近於0時,GIoU 的值接近-1。也就是limABC0GIoU(A,B)=1lim_{\frac{|A\bigcup B|}{|C|} \to 0} GIoU (A, B)=-1

總之,該一般性保留了 IoU 的主要特徵,同時避免了其缺點,因此,GIoU 可以在2D/3D 計算機視覺任務中適當地代替 IoU 來衡量距離。

本文主要研究2D 的目標檢測,可以簡單的獲得 GIoU 的解析解,故可以將其作爲距離度量和損失度量。

3.1 GIoU as Loss for Bounding Box Regression

IoU 沒有解析解,無法直接作爲損失函數來優化,

2D 目標檢測是對比兩個座標對齊的的任意形狀的距離,GIoU 可以直接得到其解析解,該情況下,重疊部分和最小的閉包目標都是矩形形狀,可以看出,它們頂點的座標僅僅是被比較的兩個邊界框中的一個的座標,這可以通過使用min和max函數比較每個頂點的座標來實現。要檢查兩個邊框是否重疊,還必須檢查一個條件。因此,我們有一個解析的解來計算IoU和GIoU。

因爲背景是 min,max 和逐塊的線性函數,如Relu 和 feasible,Alg2 中展示了,每個模型都有很好的表現。因此,IoU 或 GIoU 都可以被作爲損失函數,如 LIoUL_{IoU}LGIoUL_{GIoU} ,來優化目標檢測的網絡。

在這裏插入圖片描述

  • 分別計算 gt 和 predict box 的面積
  • 計算交集面積
  • 計算最小閉包面積
  • 計算 IoU 和 GIoU
  • 根據公式得到 loss

此情況下,我們直接優化距離來作爲損失,該損失是最優的形式,然而,對於不重疊的情況, IoU 的梯度爲0,這會影響訓練過程和收斂速度,包括無重疊情況。

另外,使用 property 3(下界的那個關係),可以發現 GIoU 和 IoU 有着很強的關聯,尤其是在 IoU 的值較大的時候,我們在圖2 中呈現了這種關係,使用10k 個隨機樣本。

圖2中,我們觀察到在重複率較低情況下, 如 IoU <=0.2,GIoU<=0.2,GIoU有能力比 IoU 獲得更多的變化,結尾處,GIoU 可能比 IoU 的梯度更加陡峭,所以將 GIoU 作爲 loss 比使用 IoU 更好。
在這裏插入圖片描述

Loss Stability:

本文研究瞭如果存在極端的情況,會否使得 loss 不穩定或不明確,如何確定輸出值。

假設gt box BgB^g是一個矩形區域,其面積大於0,那麼 Ag&gt;0A^g&gt;0

Alg.2(1) 和 Alg.2(4) 分別確定了預測區域 ApA^p 和重疊區域 LL 都是非負的,即 Ap&gt;=0,L&gt;=0A^p&gt;=0, L&gt;=0。所以對所有的預測值 Bp=(x1p,x2p,y1p,y2p)R4B^p=(x_1^p, x_2^p, y_1^p, y_2^p) \in R^4,都有 union u&gt;0u&gt;0

這就保證了對於所有的預測輸出, IoU 的分母不會爲0,此外,對任何值 Bp=(x1p,x2p,y1p,y2p)R4B^p=(x_1^p, x_2^p, y_1^p, y_2^p) \in R^4,union 都大於交集面積,也就是 u&gt;=Lu&gt;=L。因此,LIoUL_{IoU} 總是有上下界的,也就是0&lt;=LIoU&lt;=10&lt;=L_{IoU}&lt;=1

爲了驗證 LIoUL_{IoU} 的穩定性,額外的一項 AcuAc\frac{A^c-u}{A^c} 應該被預定義爲一個確定的值。

所有預測的值的最小閉包 BcB^c 不會比BgB^g還小,所以 AcuAc\frac{A^c-u}{A^c}的分母總是一個正的非零值,因爲 Ac&gt;=AgA^c&gt;=A^g,且 Ag&gt;=0A^g&gt;=0

此外,所有預測得到的最小閉包不會小於 union,也就是 Ac&gt;=uA^c&gt;=u。故 GIoU 的額外一項是正的且有界的,因此, 0&lt;=LGIoU&lt;=20&lt;=L_{GIoU}&lt;=2

當 IoU=0 時,LGIoUL_{GIoU}的特點:

對於 GIoU loss,我們有 LGIoU=1GIoU=1+AcuAcIoUL_{GIoU}=1-GIoU=1+\frac{A^c-u}{A^c}-IoU,當 BgB^gBpB^p 沒有重疊時, L=0L=0IoU=0IoU=0,GIoU loss 簡化爲LGIoU=1GIoU=1+AcuAc=2uAcL_{GIoU}=1-GIoU=1+\frac{A^c-u}{A^c}=2-\frac{u}{A^c}

該情況下,爲了最小化 LGIoUL_{GIoU},需要最大化 uAc\frac{u}{A^c},該項被規範化到0~1之間,也就是0&lt;=uAc&lt;=10&lt;=\frac{u}{A^c}&lt;=1。當最小閉包 AcA^c 最小的時候,該值最大,且 u=Ag+Apu=A^g+A^p,更精確的說,也就是預測的b-box ApA^p 是最大的。

爲了實現該目標,預測的 b-box BpB^p 的最高點,應該移動到一個方向,來促進 BgB^gBpB^p 的重疊,保證 IoU 不等於0。

4. 實驗

通過將本文提出的GIoU loss 和已有的 Faster R-CNN 、Mask R-CNN 和 YOLOv3等網絡的結合,來探究本文網絡的的效果。

我們將其原有的 loss 使用 LGIoUL_{GIoU} 來替換,也就是替換 Faster/ Mask R-CNN 中的 l1l_1 損失,替換 YOLO v3中的 MSE 損失,同時對比了最終結果。

數據集:

PASCAL VOC[4] 和 MS COCO[14]。

PASCAL VOC 2007: Pascal Visual Object Classes(VOC)基準是分類任務、分割任務和目標檢測任務的應用很廣泛的數據集。包括 9963 個圖像,訓練和測試各佔一半,20個預定義的類別都有b-box 標註。

MS COCO: 包括多於 200000 個圖像,用於訓練,驗證和測試的數據集多於 500000 個標註好的實例,共80個類。

實驗細節介紹:

使用不同 IoU 閾值所得到的類間的 mAP 來衡量真陽性和假陽性。主要使用 AP 來衡量該基準數據集的性能,之後將不同 IoU 閾值情況下所獲得的 mAP 的均值來作爲衡量標準,包括 IoU ={0.5,0.55,…,0.95}等。

此外,使用 GIoU 來修正評估結果,來確定其真陽性和假陽性。因此,我們使用 mAP 的均值來作爲衡量AP 的一個值,當閾值爲0.75時,表中表示爲 AP75。

4.1 YOLO v3

訓練過程:

此處使用原始的 Darknet 實現的 YOLO v3,對於基準結果(使用 MSE loss 訓練的),我們使用 Darknet-608 作爲backbone網絡,並且使用基準參數。

爲了分別訓練基於 IoU 和 GIoU 的 YOLO v3,我們直接利用 IoU 和 GIoU 來代替 MSE 。

考慮到分類需要額外的 MSE loss ,且由於我們使用有界的距離損失來代替無界的距離損失,我們需要調整新的b-box迴歸來解決分類損失。我們使用了一個非常小的變化來調整迴歸 loss 來應對 MSE 分類損失。

1)PASCAL VOC 2007:

遵循原始網絡的訓練過程,我們在訓練集和驗證集上使用每種 loss 來訓練網絡,迭代次數大於50K,如表1所示。
在這裏插入圖片描述
對比標準 IoU 和新的 GIoU 的效果,從表中可知,使用 LGIoUL_{GIoU} 作爲迴歸損失時比使用 MSE 作爲迴歸損失的效果好。

2)MS COCO 數據集:

遵循原始網絡訓練方法,使用所有的訓練集和 88% 的驗證集來進行約502k次的訓練,之後,我們使用剩餘的 12% 的驗證集得到的結果如表2所示。
在這裏插入圖片描述
同樣在 MS COCO 2018 數據集中也進行了實驗,結果見表3.
在這裏插入圖片描述
圖3(a)中展示了使用 LGIoUL_{GIoU} 時, YOLO v3的定位準確性有所提高。

由於目前對正則化參數進行了簡單的調優,平衡了邊界框損失和分類損失,但與基準結果相比,分類得分可能不是最優,如圖3(b)。
在這裏插入圖片描述
由於基於 AP 的性能度量受到分類誤差的影響較大,我們認爲通過尋找正則化參數可以進一步改善結果。

4.2 Faster R-CNN and Mask R-CNN

訓練過程:

對於基準過程(使用 l1l_1-smooth),本文使用 RestNet-50 作爲 Faster R-CNN 和 Mask RCNN 的 backbone,參數都使用默認參數。

分別使用 GIoU 和 IoU 對兩個分割網絡進行訓練,也就是利用 $ L_{IoU}$ 和 LGIoUL_{GIoU} loss 代替 l1l_1-smooth loss 進行訓練,如 Alg.2 所示。

類似於 YOLO v3,我們對新的迴歸損失進行了最小的調整,使之與分類和分割損失等其他損失相對應,我們只是簡單地將所有實驗的 L_{IoU}$ 和 LGIoUL_{GIoU} 乘以10。

PASCAL VOC 2007:

由於該數據集中沒有實例mask的標記,所以無法在該數據集上測試 Mask R-CNN 的效果,因此僅僅對 Faster R-CNN 進行測試,見表4。
在這裏插入圖片描述
使用 LGIoUL_{GIoU} loss 比使用 l1l_1-smooth loss 的效果更好,此外,將 LIoUL_{IoU} loss 合併到迴歸損失中後,可以對 Faster R-CNN 的基準性能略有提高,但比使用 LGIoUL_{GIoU} loss 帶來的提升略差,如圖4,IoU 的閾值從 0.5~0.95。
在這裏插入圖片描述
MS COCO:

在 MS COCO 2018 訓練集上訓練了 Faster R-CNN 和 Mask R-CNN,迭代次數爲95k,驗證集上的結果分別見表5和表7。

在 MS COCO 2018 challenge 測試的結果見表6和8。
在這裏插入圖片描述
LGIoUL_{GIoU} 作爲 loss 的檢測效果優於 l1l_1-smooth,然而其提升的數量低於之前的實驗,其原因有很多:

  • 首先,Faster R-CNN [22] 和 Mask R-CNN [6] 的anchor box 比 YOLO v3 的更加密集,導致 GIoU 相對於 IoU 的優勢場景不太常見,如不重疊的邊界框。

  • 其次,在 PASCAL VOC 上對b-box 的正則化參數進行了簡單的調優,在 MS 上得到了次優的結果。

5. 結論

本文提出了GIoU 作爲新的度量方式,來衡量兩個任意形狀的距離,能夠克服 IoU 的缺點。

同樣,我們對兩個座標對齊的矩形的 GIoU 提出瞭解析解,GIoU 作爲距離度量,其導數可以計算出來,故 GIoU 可以被作爲 b-box 的迴歸損失。

通過將該損失應用於目前先進的目標檢測方法中,對其性能都有了一定的提升,如在 PASCAL VOC 和 MS COCO 等數據集上都有效果的提升。

由於最優損失函數就是該度量標準本身,所以 GIoU 損失可以作爲最優 b-box 迴歸損失。

未來,我們可以研究在兩個可旋轉的矩形的 GIoU,可以用於3D 目標檢測框架。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章