目標檢測 — one-stage檢測(一)


  總結的很好:https://www.cnblogs.com/guoyaohua/p/8994246.html

 

  目前主流的目標檢測算法主要是基於深度學習模型,其可以分成兩大類:two-stage檢測算法;one-stage檢測算法。本文主要介紹第二類檢測算法。

  目標檢測模型的主要性能指標是檢測准確度和速度,對於准確度,目標檢測要考慮物體的定位准確性,而不單單是分類准確度。一般情況下,two-stage算法在准確度上有優勢,而one-stage算法在速度上有優勢。不過,隨着研究的發展,兩類算法都在兩個方面做改進。

  one-stage檢測算法,其不需要region proposal階段,直接產生物體的類別概率和位置坐標值,經過單次檢測即可直接得到最終的檢測結果,因此有着更快的檢測速度,比較典型的算法如YOLO,SSD,Retina-Net。

 1、YOLO(15)

   將物體檢測任務當做回歸問題(regression problem)來處理,直接通過整張圖片的所有像素得到bounding box的坐標、box中包含物體的置信度和class probabilities。通過YOLO,每張圖像只需要看一眼就能得出圖像中都有哪些物體和這些物體的位置。

  YOLO模型相對於之前的物體檢測方法有多個優點

1、YOLO檢測物體非常快。 因為沒有復雜的檢測流程,只需要將圖像輸入到神經網絡就可以得到檢測結果,YOLO可以非常快的完成物體檢測任務。標准版本的YOLO在Titan X 的 GPU 上能達到45 FPS。更快的Fast YOLO檢測速度可以達到155 FPS。而且,YOLO的mAP是之前其他實時物體檢測系統的兩倍以上。

2、YOLO可以很好的避免背景錯誤,產生false positives。 不像其他物體檢測系統使用了滑窗或region proposal,分類器只能得到圖像的局部信息。YOLO在訓練和測試時都能夠看到一整張圖像的信息,因此YOLO在檢測物體時能很好的利用上下文信息,從而不容易在背景上預測出錯誤的物體信息。和Fast-R-CNN相比,YOLO的背景錯誤不到Fast-R-CNN的一半。

3、YOLO可以學到物體的泛化特征。 當YOLO在自然圖像上做訓練,在藝術作品上做測試時,YOLO表現的性能比DPM、R-CNN等之前的物體檢測系統要好很多。因為YOLO可以學習到高度泛化的特征,從而遷移到其他領域。

  盡管YOLO有這些優點,它也有一些缺點

1、YOLO的物體檢測精度低於其他state-of-the-art的物體檢測系統。

2、 YOLO容易產生物體的定位錯誤

 3、YOLO對小物體的檢測效果不好(尤其是密集的小物體,因為一個柵格只能預測2個物體)

  如圖所示,使用YOLO來檢測物體,其流程是非常簡單明了的: 
1、將圖像resize到448 * 448作為神經網絡的輸入 
2、運行神經網絡,得到一些bounding box坐標、box中包含物體的置信度和class probabilities 
3、進行非極大值抑制,篩選Boxes

  YOLO直接在輸出層回歸bounding box的位置和bounding box所屬的類別(整張圖作為網絡的輸入,把 Object Detection 的問題轉化成一個 Regression 問題)。直接通過整張圖片的所有像素得到bounding box的坐標、box中包含物體的置信度和class probabilities。通過YOLO,每張圖像只需要看一眼就能得出圖像中都有哪些物體和這些物體的位置。

   

 

  網絡設計:

  網絡結構借鑒了 GoogLeNet 。24個卷積層,2個全鏈接層。(用1×1 reduction layers 緊跟 3×3 convolutional layers 取代Goolenet的 inception modules )。

  (1)YOLO將輸入圖像划分為S*S的網格,某個物體落在這個網格中,該網格就負責預測這個物體,並且每個網格只預測一種object;

  (2)每個網格要預測B個bounding box,每個bounding box除了要回歸自身的位置之外,還要附帶預測一個confidence值。 這個confidence代表了所預測的box中含有object的置信度和這個box預測的有多准兩重信息。每一個bounding box包含5個值:x,y,w,h和confidence。公式如下,其中如果有object落在一個grid cell里,第一項取1,否則取0。 第二項是預測的bounding box和實際的groundtruth之間的IoU值。

  

  (3)每一個網格還要預測 C 個 conditional class probability(條件類別概率):Pr(Classi|Object),記為C類,當類別數為20時,一個網格的輸出30個信息。則SxS個網格,每個網格要預測B個bounding box還要預測C個categories。輸出就是S x S x (5*B+C)的一個張量。注意:class信息是針對每個網格的,confidence信息是針對每個bounding box的

  (4)測試時,每個網格預測的class信息和bounding box預測的confidence信息得到每個bbox的class-specific confidence score以后,設置閾值,濾掉得分低的boxes,對保留的boxes進行NMS處理,就得到最終的檢測結果。

2、YOLO-v2(16)

  1、通過一系列的方法提升准確率。

(1)Batch Normalization:對所有的conv層采用BN能夠讓網絡更好的收斂,同時可以替代掉一些其他形式的regularization,而且可以去掉防止overfitting的dropout層而不會出現過擬合。

(2)High resolution classifier:YOLO從224*224增加到了448*448,這就意味着網絡需要適應新的輸入分辨率,使用448*448圖片對網絡微調。

(3) Convolutional With Anchor Boxes:預測偏移(offsets) 而不是直接預測坐標(coordinates) 能夠簡化問題,讓網絡更加容易學習,所以去除全連接層,利用Anchor Boxes預測BB。

  在設置anchor 的比例時,相比於直接手工的設計比例,先用k-means聚類對原訓練集進行聚類后再設置比例,能夠獲得更好的IOU,因為這相當於增加了一些先驗信息。而獲得更好的IOU,則有助於網絡的訓練。而在k-means選擇現在度量距離的時候,並不是直接選擇歐氏距離,而是選擇 d(box, centroid) = 1 – IOU(box, centoid), 因為我們關心的是IOU,這無關於box的大小,而歐氏距離會受box大小的影響。最終選擇k =5.

(4)Direct location prediction:約束位置預測,相對於網格左上角點的位置偏移。

(5)Fine-Grained Features:跨層連接,YOLO則還是采用13x13 的feature map上,但另外增加了一個passthrough layer 將一個earlier layer at 26x26 resolution 連接到 最末端的13x13的 feature map上。具體是,類似於ResNet的 identitymappings,將 26x26x512的feature map 轉換成 13x13x2048的feature map. 最終提高1%的性能。

(6)Multi-Scale Training:網絡是一個權值共享的網絡,但是輸入的圖片大小可以是{320, 352, …, 608} ,訓練時每10個batches 隨機選取一種size。這樣使得模型不需要固定一種輸入尺寸,選取小尺寸時,可以獲得更快的速度,大尺寸可以獲得更高的精度。十分靈活。

  2、提升速度

(1)model–Darknet19,有19個卷積層和5個maxpooling層,基本采用3x3 filter 和 每次pooling后通道數加倍的方法;

(2)采用data augmentation,隨機裁剪,旋轉,以及色調,飽和度和曝光偏移。

(3)去掉原網絡最后一個卷積層,增加了三個 3 * 3 (1024 filters)的卷積層,並且在每一個卷積層后面跟一個1 * 1的卷積層,輸出維度是檢測所需數量。

  

3、YOLO-v3(18)

  相比第二版本的改進點:使用殘差模型和采用FPN架構(多尺度預測,特征金字塔網絡 )。

 (1)特征提取器是一個殘差模型,因為包含53個卷積層,所以稱為Darknet-53,從網絡結構上看,相比Darknet-19網絡使用了殘差單元,所以可以構建得更深。

 (2)采用了3個尺度的特征圖預測(當輸入為416*416  時): (13*13),(26*26),(52*52),其中紅色部分為各個尺度特征圖的檢測結果。YOLOv3每個位置使用3個先驗框,一共三個尺度特征圖,所以使用k-means得到9個先驗框,並將其划分到3個尺度特征圖上,尺度更大的特征圖使用更小的先驗框,和SSD類似。

  • 尺度1: 在基礎網絡之后添加一些卷積層再輸出box信息.
  • 尺度2: 從尺度1中的倒數第二層的卷積層上采樣(x2)再與最后一個16x16大小的特征圖相加,再次通過多個卷積后輸出box信息.相比尺度1變大兩倍.
  • 尺度3: 與尺度2類似,使用了32x32大小的特征圖.

(3)Softmax可被獨立的多個logistic分類器替代,且准確率不會下降。分類損失采用binary cross-entropy loss。

優點:

  • 快速,pipline簡單,背景誤檢率低,通用性強。

  YOLO V3對非自然圖像物體的檢測率遠遠高於DPM和RCNN系列檢測方法。 但相比RCNN系列物體檢測方法,YOLO V3具有以下缺點:  

缺點:

  • 識別物體位置精准性差,召回率低。

  在每個網格中預測兩個bbox這種約束方式減少了對同一目標的多次檢測(R-CNN使用的region proposal方式重疊較多),相比R-CNN使用Selective Search產生2000個proposal(RCNN測試時每張超過40秒),YOLO僅使用7x7x2個。

 

 

參考博客:https://blog.csdn.net/xiaohu2022/article/details/79600037

       http://www.voidcn.com/article/p-ksgrxafo-w.html

       https://blog.csdn.net/hysteric314/article/details/53909408

       https://www.cnblogs.com/makefile/p/YOLOv3.html © 康行天下


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM