- 深度學習高手筆記(卷2):經典應用
- 劉巖(@大師兄)
- 1466字
- 2024-09-05 16:45:30
第一篇 目標檢測與分割
“人不過是肉做的機器,而鋼鐵做的機器有一天也會思考。”
——Marvin Lee Minsky
目標檢測是計算機視覺領域的一個重要方向,分為單階段檢測和雙階段檢測。單階段檢測是一種直接從圖像中提取目標位置和類別的目標檢測方法,包括YOLO和SSD等。雙階段檢測是一種將目標檢測分為兩個階段的方法,包括Faster R-CNN和Mask R-CNN等,第一階段是提取圖像特征,第二階段是在圖像特征上進行目標檢測。總的來說,在對速度要求較高的場景下,單階段檢測可能更合適;在對準確度要求較高的場景下,雙階段檢測可能更適合。特征融合策略是目標檢測的一個特別重要的研究方向,其對于解決分類和檢測對特征深淺需求不同的問題、提升小目標的檢測效果是非常有幫助的。特征融合是在特征金字塔網絡(feature pyramid network,FPN)中提出的,FPN采用的是一個自頂向下的融合策略,即將深層小分辨率的特征圖不斷上采樣,然后和淺層的特征圖組合到一起。路徑聚合網絡(path aggregation network,PANet)是加強版的FPN,它通過在FPN的基礎上增加一條自底向上的路徑,進一步增強骨干網絡的表征能力。基于神經架構搜索(neural architecture search,NAS)的特征金字塔網絡(NAS-FPN)則使用強化學習技術對特征融合的策略進行搜索,得出一個異常復雜的融合結構,它不僅包含PANet的自頂向下和自底向上這兩條路徑,還包含一條捷徑(shortcut)連接。EfficientDet提出的雙向特征金字塔網絡(bidirectional feature pyramid network,BiFPN)是更為清晰的包含自頂向下、自底向上和捷徑連接的特征融合網絡,該網絡還可以對網絡的寬度、深度和圖像分辨率之間的縮放關系進行搜索。
目標檢測的另一個研究方向是損失函數。損失函數分為兩條線路,一條是Ln類損失函數,另一條是交并比(intersection over union,IoU)損失函數。在Ln類損失函數中,最開始使用的是均方誤差(mean square error,MSE)損失函數,而Fast R-CNN使用的Smooth L1損失函數使得訓練過程中梯度爆炸的現象顯著減少。Focal Loss對正負樣本的不均衡和難易樣本的不均衡起到了顯著的改善作用。IoU損失函數是以更能反映實際檢測效果的IoU為基礎設計的一系列損失函數。首先,UnitBox中提出的IoU損失直接使用了IoU作為損失函數,IoU具有尺度不變性,可提升對小尺寸目標的檢測效果。GIoU(generalized-IoU,廣義交并比)損失解決了IoU損失在檢測框和真值框沒有重合區域的時候值均為1的問題。因為GIoU使用了閉包作為懲罰項,它存在通過增加預測框的面積來減小損失值這一“走彎路”問題,所以DIoU(distance-IoU,距離交并比)損失和CIoU(complete-IoU,完全交并比)損失直接使用預測框和目標框的歐氏距離作為懲罰項,實現了比GIoU損失收斂更快的效果。Focal-EIoU損失借鑒了Focal Loss的思想,并將其與設計的EIoU(efficient-IoU,高效交并比)損失進行了整合,它的核心是由EIoU損失和Focal Loss共同作為損失函數,EIoU損失解決了CIoU損失中寬和高不能同增同減的問題,Focal L1損失則解決了高、低質量檢測框的回歸不平衡問題。
在計算機視覺領域,分割任務是僅次于分類任務和檢測任務的第三重要的任務,但它的難度遠高于前兩者。完成分割任務需要為圖像中的每像素分配一個類別標簽,根據類別標簽的情況分割任務可分為3類,按照難度從小到大排列,它們依次是語義分割、實例分割和全景分割,如圖6.1所示。其中,圖6.1(b)所示是語義分割(semantic segmentation)的效果,根據圖中物體的類別為其設置標簽,同一類別的不同物體的類別標簽是相同的;圖6.1(c)所示是實例分割(instance segmentation)或者叫作目標分割的效果,根據檢測到的實例進行分割掩碼的預測,每一個實例都擁有一個不同類別的分割掩碼,但是,對于非實例我們統一為其標注背景掩碼,我們在1.6節介紹的Mask R-CNN的分割分支便是實例分割;圖6.1(d)所示是全景分割(panoptic segmentation)的效果,它是語義分割和實例分割的結合體,它不僅要區分每一個實例,還要為圖像中的每一像素設置標簽。