從目標檢測到小目標檢測

目標檢測

目標檢測(object detection),就是在給定的一張圖片中精確找到物體所在的位置,並標註出物體的類別。所以,目標檢測要解決的問題就是物體在哪裏以及是什麼的整個流程問題。但是,在實際照片中,物體的尺寸變化範圍很大,擺放物體的角度、姿態、在圖片中的位置都不一樣,物體之間可能還有重疊現象,這使得目標檢測的難度變得很大。

目標檢測近些年取得了較大發展,主要原因就是卷積神經網絡在目標檢測任務的應用代替了原有的基於人工規則提取特徵的方法。

目標檢測

  • 傳統的目標檢測算法:
    Cascade + HOG/DPM + Haar/SVM以及上述方法的諸多改進、優化。
    傳統的目標檢測中,多尺度形變部件模型DPM(Deformable Part Model)表現比較優秀,連續獲得VOC(Visual Object Class)2007到2009的檢測冠軍,。DPM把物體看成了多個組成的部件(比如人臉的鼻子、嘴巴等),用部件間的關係來描述物體,這個特性非常符合自然界很多物體的非剛體特徵。DPM可以看做是HOG+SVM的擴展,很好的繼承了兩者的優點,在人臉檢測、行人檢測等任務上取得了不錯的效果,但是DPM相對複雜,檢測速度也較慢,從而也出現了很多改進的方法。
    但傳統目標檢測存在兩個主要問題:一個是基於滑動窗口的區域選擇策略沒有針對性,時間複雜度高,窗口冗餘;二是手工設計的特徵對於多樣性的變化並沒有很好的魯棒性。

  • 基於深度學習的目標檢測算法:

    • 以候選區域/框(Region Proposal) + 深度學習分類的算法:
      通過提取候選區域,並對相應區域進行以深度學習方法爲主的分類的方案,比如R-CNN(Selective Search + CNN + SVM)、SPP-net(ROI Pooling)、Fast R-CNN(Selective Search + CNN + ROI)、Faster R-CNN(RPN + CNN + ROI)、Mask R-CNN(Mask Prediction Branch+RPN + CNN + ROI)等。
    • 基於深度學習的迴歸算法:
      YOLO、SSD、YOLOv2、YOLOv3等算法

目前目標檢測領域的深度學習方法主要分爲兩類:two stage 的目標檢測算法;one stage 的目標檢測算法。前者是先由算法生成一系列作爲樣本的候選框,再通過卷積神經網絡進行樣本分類;後者則不用產生候選框,直接將目標邊框定位的問題轉化爲迴歸問題處理。正是由於兩種方法的差異,在性能上也有不同,前者在檢測準確率和定位精度上佔優,後者在算法速度上佔優。

小目標檢測

小目標有兩種定義方式,一種是相對尺寸大小,如目標尺寸的長寬是原圖像尺寸的0.1,即可認爲是小目標,另外一種是絕對尺寸的定義,即尺寸小於32*32像素的目標即可認爲是小目標。
小目標檢測在深度學習卷積神經網絡模型中一直是一個難題。早期的目標檢測框架大多數是針對通用的目標來進行檢測,如經典的單階段方法yolo和ssd,兩階段方法faster-rcnn等,這些方法主要是針對通用目標數據集來設計的解決方案,因此對於圖像中的小目標來說,檢測效果不是很理想。
爲了解決小目標問題提出的方法有:

  • 圖像的縮放。也是最瑣碎的一個方向——是在檢測前對圖像進行縮放。但是,由於大圖像變得太大,無法裝入GPU進行訓練,因此單純的升級並不有效。ao等[2017]首先下采樣圖像,然後利用強化學習訓練基於注意力的模型,動態搜索圖像中感興趣的區域。然後對選定的區域進行高分辨率的研究,並可用於預測較小的目標。這避免了對圖像中每個像素進行同等關注分析的需要,節省了一些計算成本。一些論文[Dai等,2016b,2017年,Singh和Davis, 2018年]在目標檢測上下文中訓練時使用圖像金字塔,而[Ren et al., 2017]在測試時使用。
  • 淺網絡。小物體更容易被接受場較小的探測器預測。較深的網絡具有較大的接受域,容易丟失關於較粗層中較小對象的一些信息。Sommer等[2017b]提出了一種非常淺的網絡,只有四個卷積層和三個完全連接的層,用於檢測航空圖像中的目標。當期望的實例類型很小時,這種類型的檢測器非常有用。但是,如果預期的實例具有不同的大小,則效果更好
  • 上下文信息。利用圍繞小對象實例的上下文。Gidaris和Komodakis [2015], Zhu等[2015b]使用上下文來提高性能,Chen等[2016a]則專門使用上下文來提高小對象的性能。他們使用上下文補丁對R-CNN進行了擴展,與區域建議網絡生成的建議補丁並行。Zagoruyko等人[2016]將他們的方法與深度掩模對象建議相結合,使信息通過多條路徑流動。
  • 超分辨率。還有針對小目標的圖像增強等。最典型的是利用生成對抗性網絡選擇性地提高小目標的分辨率。
    它的生成器學會了將小對象的不佳表示增強爲超分辨對象,這些超分辨對象與真實的大對象非常相似,足以欺騙競爭的鑑別器。

近兩年提出了利用多層特徵圖的方法(特徵金字塔、RNN思想、逐層預測),對小目標檢測的效果產生了顯著的提升。
現階段主流算法有:
圖像金字塔:較早提出對訓練圖片上採樣出多尺度的圖像金字塔。通過上採樣能夠加強小目標的細粒度特徵,在理論上能夠優化小目標檢測的定位和識別效果。但基於圖像金字塔訓練卷積神經網絡模型對計算機算力和內存都有非常高的要求。計算機硬件發展至今也難有勝任。故該方法在實際應用中極少。
逐層預測:該方法對於卷積神經網絡的每層特徵圖輸出進行一次預測,最後綜合考量得出結果。同樣,該方法也需要極高的硬件性能。
特徵金字塔:參考多尺度特徵圖的特徵信息,同時兼顧了較強的語義特徵和位置特徵。該方法的優勢在於,多尺度特徵圖是卷積神經網絡中固有的過渡模塊,堆疊多尺度特徵圖對於算法複雜度的增加微乎其微。
RNN思想:參考了RNN算法中的門限機制、長短期記憶等,同時記錄多層次的特徵信息(注:和特徵金字塔有本質區別)。但RNN固有的缺陷是訓練速度較慢(部分操作無法矩陣化)。

原文鏈接:https://www.cnblogs.com/hellojamest/p/11426565.html

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