圖像檢測算法


分類:通常圖像分類並沒有什么用處,只是得出一張圖片里面有什么。
定位+分類:知道圖片中有個什么,也把這個物體定位出來了,但是也沒啥用,因為日常生活中一張圖片中可能有多個物體。
物體檢測:做到這一步在實際中就有用處了。

IOU(交並比)

用於衡量定位的准確度, 一般IOU >= 0.5 可認為定位成功。

上圖中真實的由藍框標記,紅框為算法框出來的。

mAP(mean Average Precision 平均精度均值)

* 用於衡量模型在測試集檢測精度的優劣程度。

  • 綜合考慮召回率和精度,mAP越高表示檢測結果越好。

mAP計算原理

  • 召回率/查全率(recall):選的N個樣本中選對的k個正樣本,占總的M個正樣本的比例 k/M;
  • 精度/查准率(precision):選的N個樣本中選對k個正樣本的比例 k/N;

選擇的樣本N越多,召回率越高,查准率越低;

置信度(閾值)越低,選中的樣本越多,精度越低,召回率越高。

mAP就是計算上圖中折線圖與坐標軸之間的面積。

Two-stage

R-CNN系列

R-CNN系列變化的主要特征是將越來越多的部分交給神經網絡做。

  • R-CNN : Girshick R, Donahue J, Darrell T,et al. Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation[C].2014.
  • Fast R-CNN:Girshick R, Fast R-CNN[j].Computer Science, 2015
  • Faster R-CNN : Ren S, He Km Girshick R,et al. Faster R-CNN:towards real-time object detection with region proposal networks[C], 2015:91-99
R-CNN

R-CNN的主要步驟

  • 候選區域提取:使用Selective Search 從輸入圖片中提取2000個左右的候選區域
  • 特征提取: 首先將所有的候選區域裁剪縮放為固定大小,再用AlexNet(5conv + 2FC)提取圖像的特征。
  • 線性分類: 用特定類別的線性SVMs 對每個候選區域做分類。
    * 邊界框回歸:用線性回歸修正邊界框的位置與大小,其中每個類別單獨訓練一個邊界框回歸器。

這里只有特征提取用到深度學習。

1.候選區域提取 步驟

  • 層次化分組算法
    1)用基於圖的圖像分割方法創建初始區域。
    2)計算所有的相鄰區域的相似度。
     3)每次合並相似度最高的兩個相鄰的圖像區域,並計算合並后的區域與其相鄰區域的相似度。重復改過程,直到所有的圖像合並
    成一張完整的圖像。
    (前面的三步是不是聚類的操作)
     4)提取所有圖像區域的目標位置框,並按層級排序(覆蓋整個圖像的區域的層級為1)。
  • 在不同圖像分割閾值、不同色彩空間、以及不同的相似度(綜合考慮顏色、紋理、大小、重疊度)下。調用層次化分組算法,對所有合並策略下得到的位置框按層級*RND排序,去掉冗余框。
  • 取一定個數的候選區域作為后續卷積神經網絡的輸入。(R-CNN取2000個)。

NMS(非極大值抑制 Non-Maximum Suppression) 用於去掉冗余選框。

分類與回歸

2000個候選框得到4096個特征,然后每個類別有一個21個分類(包括一個背景分類器)得到20個類別,然后去掉冗余框,微調校准選框。

R-CNN缺點

重復計算:需要對兩千候選框做CNN,計算量很大,而且有很多的重復計算。
SVM模型:在標注數據足夠的時候不是最好的選擇。
多個步驟:候選區域提取,特征提取,分類,回歸都要單獨訓練,大量中間數據需要保存。
檢測速度慢:GPU處理一張圖片需要13秒,cpu上則需要53秒。

改進:能否避免候選框特征提取過程的重復的計算?

fast R-CNN

Fast R-CNN的主要步驟

  • 候選區域的提取: 通過Selective Search 從原始圖片中提取2000個左右的區域候選框。(與R-CNN相比沒有變化)。
  • 特征提取: 原始圖像輸入CNN網絡,得到特征圖。(與R-CNN相比,這里是將原始圖片進行了一次特征提取)。
  • ROI-Pooling: 根據 映射關系,將 不同尺寸的候選框特征圖上的對應區域 池化維度相同的特征圖 (因為全連接層要求輸入的尺寸固定)。
  • 全連接層:將維度相同的特征圖轉化為ROI特征向量(ROI feature vector)。
  • 分類與回歸:經過全連接層,再使用softmax分類器進行識別,用回歸器修正邊界框的位置與大小,最后對每個區域做NMS.

ROI Pooling

Fast R-CNN改進之處
  • 直接對整張圖片做卷積,不再對每個候選區域分別做卷積,從而減少大量的重復計算。
  • 用ROI pooling對不同的候選框做尺寸的歸一化。
  • 將邊界回歸器放進網絡一起訓練,每個類別對應一個回歸器。
  • 用softMax代替SVM分類器。
    Fast R-CNN缺點:
  • 候選區域的提取依舊使用Selective search,目標檢測時間大多都消耗在這上面。(region proposal 2-3 s,而特征分類只需要0.32s)。
faster R-CNN

尋找更加高效的候選區域生成方法? 如何將所有的東西都用神經網絡處理?

faster R-CNN主要的步驟:
1. 卷積層:輸入圖片經過多層卷積神經網絡(ZF,VGG),提取卷積特征圖,供給RPN網絡和Fast R-CNN使用,RPN網絡和Fast R-CNN 共享
特征提取網絡可減少計算時間。
2. RPN層:生成候選區域,並用softmax判斷候選框是前景還是背景,從中選取前景候選框並利用bounding box regression調整候選框的位置,得到候選區域。

3. ROIPooling層:同Fast R-CNN一樣,將尺寸不同的候選框,在特征圖上的對應的區域池化為維度相同的特征圖。
4.分類與回歸 :同fast R-CNN ,用softmax分類器判斷圖像的類別,同時用邊界框回歸修正邊界框的位置和大小。

關於anchor box


One-stage

對輸入的圖像直接處理

yolo





ssd



圖像檢測算法

本文來自《智能計算系統》課程


免責聲明!

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



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