?

面向單階段目標檢測的損失函數優化設計

2024-03-20 08:44劉龍哲徐紅鵬權冰潔
電光與控制 2024年3期
關鍵詞:真值置信度懲罰

劉龍哲, 劉 剛, 徐紅鵬, 權冰潔, 田 慧

(河南科技大學信息工程學院,河南 洛陽 471000)

0 引言

在機器視覺中,目標檢測是一項基本且富有挑戰性的任務。在過去的幾十年中,目標檢測經歷了從傳統方法到深度學習方法的過渡。傳統方法依賴于對目標特征的精確建模,工作環境一旦超過算法設定的范圍,檢測性能將大大降低。深度學習網絡具備強大的目標特征學習和表示能力[1],已廣泛應用于目標檢測任務。

常見的基于深度學習的目標檢測算法主要分為兩階段和單階段兩類。兩階段(Two-stage)目標檢測算法是將檢測問題分為兩個階段,先生成候選區域,再對候選區域做回歸和分類。這類算法的典型代表是R-CNN[2]系列算法,這類算法雖然精度高,但存在計算量大、運算速度慢,不能滿足實時應用等缺點。單階段(One-stage)目標檢測算法是一種端到端的目標檢測方法,該類算法不生成候選區域,直接將數據輸入卷積神經網絡,預測物體的邊界框信息,并對這些候選邊界框進行判別,一步到位完成分類和回歸。典型的算法有YOLO算法[3-5]和SSD[6]算法。單階段目標檢測算法與兩階段目標檢測算法的不同在于錨框是一個邏輯結構,只需對這個數據塊進行分類和回歸即可,因此擁有更高的檢測幀率[7]。

在單階段目標檢測算法中,總損失函數通常由分類損失、位置損失以及置信度損失3部分組成,其中位置損失對優化的速度和準確度起到關鍵作用。位置損失常用平均絕對誤差損失(L1范數損失)、均方誤差損失(L2范數損失),但L1、L2范數損失只是考慮預測框與真值框4個角之間的歐氏距離,沒有考慮到兩框4個角之間的位置關系。兩框的交并比(Intersection over Union,IoU)是實際評價邊框定位性能的指標,在L1、L2相同時,兩框的IoU可能存在很大差異,所以文獻[8]提出將IoU作為邊界框回歸損失函數對檢測算法進行優化。但是,當真值框與預測框無交集時,IoU退化為零,無法進行訓練過程。已有研究人員通過在IoU基礎上進行大量改造[9-12],總體上比起IoU效果有所提升,但存在真值框與預測框處于不同包含關系時,位置損失相等,無法指導回歸的情況。

單階段目標檢測算法總損失函數通常將分類損失、位置損失以及置信度損失直接相加[13-15]。由于三者計算時采取的方式及調用的參數不同,三者數值差異較大,這會導致數值較大的損失對總損失的影響更大。當總損失數值變化趨于平穩達到收斂時,數值較小的損失可能還未收斂,導致該懲罰項訓練不完全。

基于以上分析,本文對單階段目標檢測算法的損失進行優化設計:先提出了一種全新的基于回歸位置關系敏感度損失(Regression Position Relationship Sensitivity IoU,RPIoU)的位置損失,從真值框與預測框的角點距離遠近以及兩框的非重疊區域面積大小兩方面構建懲罰項,解決了兩框處于不同包含關系時IoU無法精確判斷回歸位置的問題;之后提出了一種基于遺傳算法的單階段目標檢測算法總損失優化方法,對分類損失、位置損失以及置信度損失分別加權,通過選擇、變異等遺傳操作針對訓練數據集進行權值自動尋優,生成適宜任務的總損失函數。

1 IoU問題分析及改進

1.1 不同IoU損失

基于IoU構建的經典損失有GIoU(Generalized IoU)[16]、DIoU(Distance IoU)[17]、CIoU(Complete IoU)[17]及EIoU(Efficient IoU)[18]。IoU是預測框和真值框交集和并集的比值;GIoU考慮了無法優化的非重疊部分,在IoU基礎上添加一個外接最小方框,對IoU進行約束,確保了當兩框不相交時損失依然存在;DIoU在IoU的基礎上加入了預測框和真值框的中心點之間歐氏距離與最小閉包對角線的比值,使訓練過程中兩框不重疊時也能收斂;CIoU在DIoU的基礎上進行了迭代,添加了一個和邊框寬高比相關的因子,進一步提升回歸精度,但CIoU中使用的是真值框與預測框各自的寬高比,存在當兩框各自的寬高比相等時,兩框面積可能相差很大的情況;EIoU采用了全新的計算方式,將真值框和預測框之間的寬、高分別相比,克服了CIoU存在的問題。

以上關于IoU的損失構建只考慮了預測框和真值框相交、相分離和部分簡單的重疊情況,但是在目標檢測尤其是小目標檢測中常常會出現包含情況,即預測框包含真值框或真值框包含預測框,如圖1所示。將真值框完全包裹預測框稱為內包,如圖1(a)所示,預測框完全包裹真值框稱為外包,如圖1(b)所示。為了解決該問題,從IoU出發對目標檢測位置回歸損失進行優化。

圖1 內包和外包

1.2 位置回歸關系敏感性交并比損失

當真值框和預測框存在不同的包含關系時,損失可能會出現無法區分的問題,如圖2所示。圖2(a)左、右兩個圖像分別是內、外包的兩種情況,以S來表示真值框的面積(GT area),左圖兩框面積差為0.2S,右圖的面積差為0.25S,兩個圖的尺度差異不大。但就面積差來看,左圖中的預測框(BB area)更接近于真值框,因此圖2(a)中左圖好于右圖的回歸效果。目前,現有的位置回歸損失計算都無法對圖2(a)中的不同情況進行區分,這對回歸來說是不利的。圖2(b)中左圖兩框面積差1.25S,右圖面積差2.8125S,兩者的尺度差異大。這種情況下,左圖的預測框比起右圖的預測框要更加接近于真值框,更容易達到兩框完全重合,因此圖2(b)中左圖回歸效果更好。但目前現有的位置回歸損失值在上述情況下是相同的。

圖2 真值框和預測框存在的不同的包含關系

通過對以上現有IoU的分析可發現:GIoU在存在包含關系時會退化為IoU;DIoU在預測框和真值框的中心點一致時,會退化為IoU;CIoU在預測框和真值框寬高比相等時,退化為DIoU;EIoU無法區分部分包含情況。

為了解決以上問題,提出一種基于位置關系敏感性交并比的回歸損失(RPIoU),該損失強化了預測框和真值框之間的位置關系,先用IoU與兩框角點的距離關系作差,使兩框盡可能靠近。當兩框存在包含關系時,再添加一個與兩框的非重疊區域面積相關的懲罰項,來更好地指導邊框的回歸位置。兩框的非重疊區域面積越大,意味著預測框和真值框之間的差距越大,應加強對應的懲罰。該懲罰項應對整體起到微調作用,避免對RPIoU造成較大影響。

基于以上思路設計的損失具體表示為

LRPIoU=1-RRPIoU

(1)

RRPIoU=IIoU-dvalue-r×d×(1-IIoU)

(2)

(3)

其中:B為預測框;Bgt為真值框;d為關于兩框非重疊區域面積差的懲罰項;r為判定項,當兩框處于包含狀態時,r=1,其余狀態下,r=0;dvalue為關于兩框角點關系的懲罰項,是預測框和真值框的角點歐氏距離平方和與最小外接矩形對角線平方的比值,用來刻畫兩框之間位置關系,其表達式為

dvalue=(cz1+cz2)/c2

(4)

(5)

(6)

當兩框存在包含關系時,為RPIoU添加一個與非重疊區域面積相關的懲罰項。該懲罰項通過非重疊區域面積差來對損失進行調節,使其具備處理不同包含關系的能力。首先,當非重疊區域面積差增大時,真值框和預測框之間的差異變大,懲罰項的值應增加,以快速調整面積差對位置回歸的影響;當面積差持續增加時,懲罰值應該變為緩慢增加,以避免損失值爆炸的問題。其次,該懲罰項在[0,1]區間取值,通過與(1-IIoU)相乘,發揮該懲罰項對IoU整體的微調作用。

根據以上思路,構造一個隨面積差變化上升明顯,且到達一定范圍后上升趨于平穩的懲罰函數。選取指數函數作為基礎函數,將兩框的非重疊區域面積差與真值框之間的比值作為指數,構建出的函數曲線如圖3(a)所示。在x>0時,希望懲罰函數值應緩慢上升,故對曲線進行翻轉調節,如圖3(b)所示。對函數進行加1修正,使懲罰項的取值范圍在[0,1]之間。為使面積差異不大時,懲罰更明顯,即曲線更平緩,將指數乘以0.5。懲罰項的函數曲線如圖3(c)所示,構建的懲罰項為

圖3 不同的懲罰函數

d=-e-|SGT-SBB| /2SGT+1

(7)

式中:SGT為真值框的面積;SBB為預測框的面積。

當預測框和真值框完全重合時,RPIoU值為1,符合IoU的定義。當預測框和真值框沒有包含關系時,不再調用RPIoU中關于兩框非重疊區域面積差的懲罰項,但仍存在dvalue利用兩框角點關系進行懲罰,即讓預測框的角點向真值框的角點接近。

2 目標檢測損失整體優化

單階段目標檢測算法總損失通常由分類、位置回歸、置信度損失相加構成。分類損失是錨框中每個類別的概率總和,回歸位置損失是由角點坐標以及面積信息進行計算得到,而置信度損失只是判定錨框中是否存在物體。在訓練中各部分的貢獻度不同,通過加權進行平衡。構造總損失函數為

L=αLbox+βLcls+γLobj

(8)

式中:Lbox為回歸位置損失;Lcls為分類損失;Lobj為置信度損失;α、β、γ為3項的權值。

本文通過遺傳算法(Genetic Algorithm,GA)對權重α、β、γ進行尋優。α、β、γ采用10進制編碼,適應度函數定義為

f=0.9×mmAP@0.5+0.1×mmAP@0.5∶0.95。

(9)

遺傳尋優的具體步驟如下:

1) 開始第1輪訓練,訓練結束,計算適應度。對種群中個體進行變異,生成包含兩個子代的第2代種群;

2) 將第2代種群中變異個體α、β、γ代入總損失進行第2輪訓練,并計算相應的適應度;

3) 選擇當前種群中適應度最低的個體進行變異,與其余個體合并生成新一代種群;

4) 將變異個體α、β、γ代入總損失進行訓練,計算相應的適應度函數,并將所有個體從高到低進行適應度排序,選擇適應度最高的兩組個體組合成新一代種群;

5) 每輪結束后判斷是否達到n輪,若達到,直接輸出適應度最高的個體α、β、γ,未達到,則返回步驟3)、4)。

3 實驗與分析

硬件平臺:操作系統Windows10,CPU為Intel?CoreTMi7-10700 CPU@2.90 GHz,運行內存為32 GiB,GPU為NVIDIA3090,顯存大小為8 GiB,內存大小為24 GiB。軟件平臺:深度學習框架為Pytorch,編程語言為Python3.8,并使用CUDA11.3.1以及CUDNN8.2.1對GPU進行加速。

采用兩個數據集進行實驗驗證,分別為公開可見光數據集和自制紅外數據集。

可見光數據集VisDrone2019和VisDrone2020公開數據集混合后并進行重新分組得到。數據集中圖像為各種不同型號的無人機在不同場景中以及各種天氣與光照條件下采集得到,共14 038幅靜態圖像,包含260萬個城市交通地面目標(如行人、汽車、自行車和三輪車等)。

自制紅外數據集的實驗數據一部分由紅外飛機圖像得到,另一部分來源于對已有圖像進行旋轉、平移等操作的擴充,共得到5582幀圖像。將紅外飛機數據集按照10%的比例隨機劃分出的數據作為測試集,余下的數據集利用“十”字交叉法,按照8∶2的比例劃分出訓練集與驗證集。紅外飛機數據集按照以下類別進行標注,如圖4所示一共分為6類:背向機身(BAF)、背向尾焰(BAT)、側向機身(LAF)、側向尾焰(LAT)以及后向機身(BWF)和后向尾焰(BWT)。

圖4 紅外數據集

3.1 評價標準

本文使用平均精度(AP)及平均精度均值(mAP)來評價算法檢測效果,采用每秒傳輸幀數(FPS)作為衡量算法檢測速度的標準。AP反映了單一類別的檢測效果,其算式為

(10)

式中,p(r)為某個召回率r對應的查準率p的值,即p(r)表示兩者的映射關系。

查準率p和召回率r的算式分別為

p=ITP/(ITP+IFP)

(11)

r=ITP/(ITP+IFN)

(12)

式中:ITP為正樣本被預測正確的數量;IFP為負樣本被預測為正樣本的數量;IFN為正樣本被預測為負樣本的數量。

3.2 實驗設計

實驗以YOLOv5作為基準網絡,主要用來驗證本文所提出的損失函數優化設計在實際檢測中是否具有更好的效果。具體實驗設計如下:首先,只對RPIoU的有效性驗證,即將YOLOv5中IoU部分分別替換為GIoU、DIoU、CIoU、EIoU以及RPIoU,其他網絡結構保持不變,且都在相同的實驗環境下運行;接下來,再將參數優化和RPIoU兩部分改進進行消融實驗;最后,再與其他經典算法的實驗結果進行對比。為驗證本文提出方法的普適性,分別在可見光數據集和紅外數據集進行上述實驗驗證。

3.3 參數設置

訓練階段,將圖像尺寸統一設置為640像素×640像素,batchsize設為16,整個網絡采用SGD優化器,權重衰減設為0.0005,學習率為0.01,共訓練100代。

3.4 可見光數據集實驗

3.4.1 基于RPIoU的回歸損失的目標檢測

為驗證RPIoU的有效性,以YOLOv5為基礎算法,分別使用GIoU、DIoU、CIoU、EIoU以及RPIoU在VisDrone數據集進行對比實驗。表1給出了各個算法在IoU閾值為0.5以及0.5∶0.95時的mAP值。表2給出了各個算法在IoU閾值為0.5的各類別AP值。

表1 VisDrone數據集實驗結果

表2 VisDrone數據集各類別檢測精度

從表1及表2中可得出如下結論:

1) 當IoU閾值為0.5時,使用RPIoU的mAP最高,相比于IoU、DIoU、CIoU和EIoU分別高出了0.026、0.019、0.019和0.024。

2) 當IoU閾值為0.5∶0.95時,使用RPIoU在對比算法中達到最佳,mAP達到0.246,相比于GIoU、DIoU、CIoU和EIoU分別高出了0.008、0.007、0.007、0.013。

在表1中,RPIoU在mAP閾值為0.5以及0.5~0.95的平均值中都得到了最高精度的結果,達到最佳性能。表2的各類AP中可以看出,RPIoU在所有類別都好于其他IoU所檢測的結果,尤其對van、truck以及bus類別的檢測精度提升明顯。說明RPIoU的改進能夠更有效地進行位置回歸,并提高了檢測精度。

為比較RPIoU與其他IoU在訓練中損失收斂速度的差別,分別使用不同IoU對YOLOv5進行訓練,保存各代的總損失值進行比較。圖5為訓練總損失值隨迭代次數的變化曲線圖。

通過圖5可以看出,RPIoU、CIoU、DIoU在0~15個epoch內的收斂速度較快,其中,RPIoU的收斂速度最快。在經過15個epoch后,所有的IoU的收斂速度都逐漸穩定。經過100個epoch可以看出,GIoU的損失曲線遠遠高于其他IoU,其他所有IoU的損失值在100個epoch時基本相同,基于RPIoU的損失值最低,可以證明RPIoU的收斂速度最快。

圖6所示為預測框分布回歸示意圖。

圖6 預測框分步回歸示意圖

圖6中,黑色框為真值框,綠色框為預測框??梢钥吹?在相同的迭代輪次,RPIoU的收斂效果更好。在經過10輪迭代后,使用RPIoU的算法檢測到了目標,并與真值框出現包含關系,此時使用CIoU的算法未檢測到。經過10輪迭代后,使用CIoU的算法檢測到目標,置信度僅為0.3左右,與真值框出現包含關系。而使用RPIoU的算法預測框已經接近0.7左右。在迭代到80輪時,使用RPIoU的算法已基本完成收斂,置信度達到0.84,而使用CIoU的預測出置信度僅0.6。與CIoU相比,RPIoU的改進可以更好地進行收斂,并準確確定預測框與真值框的位置關系。

3.4.2 消融分析

本文所提出的損失優化主要包含對IoU結構的改進(RPIoU)與損失整體優化兩個部分。分別對這兩個部分進行了消融實驗,實驗結果如表3所示。

表3 VisDrone數據集消融實驗

從表3中可以得到如下結論。

1) 在Baseline中只替換IoU進行實驗,與基準方法相比,mAP@0.5在VisDrone數據集上比起Baseline高出了0.019,在mAP@0.5∶0.95提高了0.007,證明基于RPIoU的回歸損失的有效性。

2) 在對損失整體進行優化的訓練中,與基準方法相比,mAP@0.5在VisDrone數據集上比Baseline高0.026,mAP@0.5∶0.95提高了0.013,證明損失整體優化的有效性。

3) 將本文所提出的兩種改進算法共同加入到Baseline中進行實驗。在兩種改進的共同作用下,mAP@0.5在VisDrone上比Baseline高0.037,同時mAP@0.5∶0.95提升了0.018。并且兩者共同加入的精度高于分別加入,這證明了本文所提出的優化算法的綜合有效性。

3.4.3 不同檢測算法對比

將本文提出的改進損失代入YOLOv5并與Faster-RCNN、SSD、Centernet、EfficientDet、YOLOv3算法進行對比,實驗結果如表4所示。代入本文所提出改進的YOLOv5在所有對比檢測算法中表現最佳,達到了最高的0.429,明顯高于其他檢測算法。相較原YOLOv5算法,本文算法提高了0.018的檢測精度,且FPS相比于其他算法也是最高的,可以滿足實時性需求。

表4 不同目標檢測算法在VisDrone數據集的實驗結果

基于本文提出的改進損失的YOLOv5目標檢測算法,在VisDrone數據集上與一些經典檢測算法進行了比較,部分可視化檢測結果如圖7所示。對比第1組密集人群圖片可以看出,Centernet、SSD和EfficientDet檢測到的人數量較少,通過觀察可以發現,其中Centernet與SSD所檢測到的目標多在圖片中心區域,而EfficientDet檢測到的多為圖片邊緣的目標。相比之下,YOLO系列在圖片中檢測到的目標數量最多,添加了本文改進的YOLOv5精度最高,除左上角較為擁擠的人群外,其余都能檢測到;對比第2組較暗環境下的地面車輛圖片,SSD在圖中未能檢測到目標,EfficientDet也只檢測到一個目標,Centernet雖檢測到多數目標但遠少于YOLO系列,添加了本文改進的對于小目標密集區域的檢測結果要優于YOLOv3,降低了漏檢情況;對比第3組較亮環境下地面車輛圖片,Centernet和EfficientDet都只檢測到了最大的車輛和最上方的小車,SSD則多檢測出一輛自行車,但都少于YOLO系列所檢測的目標數,但是對比添加了本文改進還是存在漏檢,如最右下角的綠色車輛。

圖7 不同算法在VisDrone數據集的檢測結果對比

3.5 紅外數據集實驗

為證明本文優化的普適性,可用于包括紅外數據集在內的各種情況,本節使用自制紅外飛機數據集進行實驗分析驗證。

3.5.1 基于RPIoU的回歸損失的目標檢測

以YOLOv5為基礎算法,分別使用GIoU、DIoU、CIoU、EIoU以及RPIoU在紅外飛機數據集進行對比實驗,結果如表5所示。

表5 紅外飛機數據集實驗結果

從表5中可以得到如下結論。

1) 當IoU閾值為0.5時,使用RPIoU的mAP相比GIoU、DIoU、CIoU和EIoU分別高出0.01、 0.007、0.003、0.01。

2) 當IoU閾值為0.5∶0.95時,使用RPIoU在對比算法中取得了最佳,mAP達到了0.606,與DIoU、CIoU保持一致,比GIoU和EIoU要高。

3) 本文所提出的RPIoU在mAP閾值0.5以及0.5~0.95的平均值中都得到了最高的檢測精度,達到最好性能效果。

3.5.2 消融實驗

本文所提出的損失優化主要包含對IoU結構的改進(RPIoU)與損失整體優化兩個部分。分別對這兩個部分在自制紅外飛機數據集上進行消融實驗,結果如表6所示。

表6 紅外飛機數據集消融實驗

從表6中可以得到如下結論。

1) 在Baseline中只替換IoU進行實驗,與Baseline相比,mAP@0.5在紅外數據集上比Baseline高出0.007,證明了RPIoU改進的有效性。

2) 在對損失整體進行損失優化的訓練中,與基準方法相比,mAP@0.5在紅外數據集上相比Baseline高出0.006,這證明損失整體優化的有效性。

3) 將本文提出的兩種改進方法共同加入到Baseline中。在兩種改進共同的作用下,mAP@0.5在紅外數據集上比Baseline高0.014,并且兩者共同加入的檢測精度高于分別加入,這就證明了本文所提出的優化方法的綜合有效性。

3.5.3 基于RPIoU的回歸損失的目標檢測

將本文提出的改進損失,代入YOLOv5并與Faster-RCNN、SSD、Centernet、EfficientDet、YOLOv3經典算法進行對比,實驗結果如表7所示。

表7 不同目標檢測算法在紅外飛機數據集的實驗結果

由表7可以看出,本文所提出的改進在所有對比檢測算法中表現最佳,達到了最高的0.966,明顯高于其他檢測算法。而在實時性方面可以看到FPS相比于其他算法也為最高,可以滿足實時性的需求。上述實驗證明了本文改進算法在紅外數據集上依然可行,此損失函數可滿足在不同場景下的需要,具有較高精確性及魯棒性。

將本文提出的改進損失代入YOLOv5,在紅外數據集上與一些經典檢測算法進行了比較,部分可視化檢測結果如圖8所示。第1組對比圖為被云層遮擋的背向尾焰飛機,所有算法均可檢測出目標,SSD與Centernet所檢測出的置信度不足0.8,其他算法所檢測出的目標置信度都高于0.8,本文改進的算法最高;第2組為無遮擋的后向尾焰飛機群,EfficientDet和Centernet在圖中均未檢測到目標,SSD僅檢測到一個目標,而YOLO系列檢測出所有目標,本文的改進算法置信度最高,達到0.8以上;第3組則是無遮擋的側向機身飛機群,Centernet檢測效果最差,僅檢測出一個目標,SSD和EfficientDet檢測出了大多數目標,但置信度都在0.8以下,YOLO系列檢測出的置信度大多超過0.8。

圖8 不同算法在紅外飛機數據集的檢測結果對比

4 結束語

針對邊界框回歸損失函數對邊界框位置關系變化敏感度不夠的問題,本文在IoU基礎上提出一種關系敏感度交并比位置損失(RPIoU);針對單階段目標檢測算法總損失各部分對于訓練結果的貢獻度不同,本文利用遺傳算法進行優化,得到分類、回歸、置信度損失的各自最佳權重。通過原理分析和實驗驗證,可得如下結論。

1) 本文從預測框與真值框的角點距離遠近以及兩框的非重疊區域面積大小兩方面構建懲罰項,提出的基于RPIoU的位置損失可以更好地指導邊界框回歸。

2) 本文提出的基于遺傳算法的單階段目標檢測總損失各部分加權優化方法,可以更好地平衡分類、回歸、置信度各部分損失對總損失的貢獻程度。

3) 本文所提出的算法在可見光數據集以及紅外數據集上均進行了充分的實驗驗證,證明本文提出的單階段目標檢測算法損失函數的優化設計算法具有普遍適用性。

但是,本文算法對遮擋下的目標檢測問題存在錯檢、漏檢的缺陷,后續可從刻畫預測框和周圍的真值框及其他預測框間的位置關系開展進一步研究工作。

猜你喜歡
真值置信度懲罰
硼鋁復合材料硼含量置信度臨界安全分析研究
神的懲罰
Jokes笑話
正負關聯規則兩級置信度閾值設置方法
懲罰
10kV組合互感器誤差偏真值原因分析
真值限定的語言真值直覺模糊推理
置信度條件下軸承壽命的可靠度分析
真正的懲罰等
基于真值發現的沖突數據源質量評價算法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合