吳恩達深度學習筆記 course4 week3 目標檢測

 

1.Objection localization 

圖片檢測問題分爲:算法

1.圖片分類:是否爲汽車(結果只爲單個對象)windows

2.分類與定位:是否爲汽車 ,汽車位置(結果只爲單個對象)網絡

3.目標檢測: 檢測不一樣物體 並定位(結果可能含多個對象)dom

分類與定位的表示:函數

分類與定位的輸出層可用以下表示:                                             性能

1.Pc  是否存在測試

2.bx  目標中心的座標 xatom

3.by 目標中心的座標 yspa

4.bH 目標高度.net

5.bW 目標寬度

6.C1  是否爲分類1

7.C2 是否爲分類2

8.C3 是否爲分類3

模型訓練時,bx、by、bh、bw都由人爲肯定其數值。

 

損失函數:

  • Pc=1,即y1=y^1=1:

       L(y^,y)=(y^1y1)2+(y^2y2)2++(y^8y8)2L(y^,y)=(y^1−y1)2+(y^2−y2)2+⋯+(y^8−y8)2

 

  • Pc=0,即y1=0y1=0

      L(y^1,y)=(y^1-y1)2    

 

固然在實際的目標定位應用中,咱們可使用更好的方式是:

  • 對 c1c2c3 經過 softmax 輸出;
  • 對邊界框的四個值應用平方偏差或者相似的方法;
  • 對 Pc 應用 logistic regression 損失函數,或者平方預測偏差。

比較而言,平方偏差已經可以取得比較好的效果。

2.Landmark detection

除上述的矩形檢測外,還能夠對目標的關鍵點特徵進行一個檢測

其輸出爲:

1.Pc 

2.l1_x,l1_y   (記錄關鍵點點特徵的位置)

3.l2_x,l2_y

..........

咱們經過標定訓練數據集中特徵點的位置信息,來對人臉進行不一樣位置不一樣特徵的定位和標記。AR的應用就是基於人臉表情識別來設計的,如臉部扭曲、增長頭部配飾等。

在人體姿態檢測中,一樣能夠經過對人體不一樣的特徵位置關鍵點的標註,來記錄人體的姿態。

3.Objection detection

目標檢測的一種簡單算法是滑動窗口檢測

首先:蒐集一些目標圖片和非目標圖片做爲訓練集的樣本進行訓練獲得一個CNN模型 以下圖:

注意:訓練集圖片尺寸較小,儘可能僅包含相應目標

而後從測試圖片選擇合適的窗口,進行從左到右,從上到下的滑動,對每個窗口使用已經訓練好的CNN模型,觀察是否有該目標.

若判斷有目標,則此窗口即爲目標區域;若判斷沒有目標,則此窗口爲非目標區域。

優勢:原理簡單,且不須要人爲選定目標區域(檢測出目標的滑動窗即爲目標區域)。

缺點:滑動窗口的大小,步長過大選取都會影響到目標檢測到的成功率. 因爲會對每一個選取的窗口進行CNN網絡計算,若是步長小,則會形成計算量大,性能低下.

總而言之,滑動窗口算法不夠快,不夠靈活

 

4.Convolutional implentation of sliding windows

卷積實現滑動窗口

將全鏈接層轉爲卷積層:

在上一週課程中,Ng講授過 1×1 的卷積核至關於在一個三維圖像的切片上應用了一個全鏈接的神經網絡。一樣,全鏈接層也能夠由 1×1 大小卷積核的卷積層來替代。需注意卷積核的個數與隱層神經元個數相同(即保證輸出具備相同的channel)。

最終獲得的輸出層維度是1 x 1 x 4,表明4類輸出值。

 

咱們以訓練好的模型,輸入一個16x16x3大小的整幅圖片,圖中藍色部分表明滑動窗口的大小。咱們以2爲大小的步幅滑動窗口,分別與卷積核進行卷積運算,最後獲得4幅10×10×16大小的特徵圖,然而由於在滑動窗口的操做時,輸入部分有大量的重疊,也就是有不少重複的運算,致使在下一層中的特徵圖值也存在大量的重疊,因此最後獲得的第二層激活值(特徵圖)構成一副12×12×16大小的特徵圖。對於後面的池化層和全鏈接層也是一樣的過程。

 

那麼由此可知,滑動窗口在整幅圖片上進行滑動卷積的操做過程,就等同於在該圖片上直接進行卷積運算的過程。因此卷積層實現滑動窗口的這個過程,咱們不須要把輸入圖片分割成四個子集分別執行前向傳播,而是把他們做爲一張圖片輸入到卷積神經網絡中進行計算,其中的重疊部分(公共區域)能夠共享大量的計算.

 

值得一提的是,窗口步進長度與選擇的MAX POOL大小有關。若是須要步進長度爲4,只需設置MAX POOL爲4 x 4便可。

依據上面的方法,咱們將整張圖片輸入到訓練好的卷積神經網絡中。無需再利用滑動窗口分割圖片,只需一次前向傳播,咱們就能夠同時獲得全部圖片子集的預測值。

5.Bounding Box Prodiction

滑動窗口算法所存在的問題,可能沒法精準的輸出邊界框

爲解決這個問題,咱們能夠採用YOLO(You Only Look Once)算法

YOLO算法:將目標圖片劃分爲N X N個區域,爲了簡便,接下來的都劃分爲 3 X3,

而後對每個小區域都採用目標檢測與定位的算法,每個小區域的輸出和以前所講的分類與定位的輸出是一致的

 

其中當前區域的Pc=0時,便是檢測到的目標中心再也不此區域中,反之,則在此區域  (這裏不明白它是怎麼判斷目標中心在此區域的,若是在某個區域內檢測到目標的部分,就能夠判斷其中心是否在此區域嗎,它又如何判斷它的完整邊界).

 YOLO是一次卷積實現,並非在 n×n 網格上進行n^2運算,而是單次卷積實現,算法實現效率高,運行速度快,能夠實現實時識別。

bounding boxes 細節:

  利用YOLO算法實現目標探測的時候,對於存在目標對象的網格中,定義訓練標籤Y的時候,邊界框的指定參數的不一樣對其預測精度有很大的影響。這裏給出一個較爲合理的約定:(其餘定值方式可閱讀論文)

  • 對於每一個網格,以左上角爲(0,0),以右下角爲(1,1);
  • 中點bx、by表示座標值,在0~1之間;
  • 寬高bh、bw表示比例值,存在>1的狀況。 (不理解如何判斷其完整bounding boxes)

6.Intersection-Over-Union

Intersection-Over-Union是用來評估其Bounding boxes檢測是否準確的,計算公式爲:

IoU=I/U

通常在目標檢測任務中,約定若是 IoU⩾0.5 ,那麼就說明檢測正確。固然標準越大,則對目標檢測算法越嚴格。獲得的IoU值越大越好。:

7.Non-max suppression

YOLO算法中,如果鄰近的區域都被判斷有同一個目標時,該如何選擇,以下:

non-max suppression(非極大值抑制):

1.去掉 Pc<閾值的全部網格

2.對於剩下的,先選取其中Pc最大的,在利用IoU,屏蔽與其交疊較大的網格,重複這個過程,直到結束

8.Anchor boxes

以前介紹的都是一個網格只存在一個object的狀況,對於一個grid cell存在多個object的狀況該如何處理?

引入Anchor boxes

只是在輸出中加了個與Anchor box相對應的份量

在進行YOLO算法時,其選取方法與上節的非極大值抑制同樣,只是分別對每個Anchor box 進行 NMS.

難點問題:

  • 若是咱們使用了兩個Anchor box,可是同一個格子中卻有三個對象的狀況,此時只能用一些額外的手段來處理;

  • 同一個格子中存在兩個對象,但它們的Anchor box 形狀相同,此時也須要引入一些專門處理該狀況的手段。

可是以上的兩種問題出現的可能性不會很大,對目標檢測算法不會帶來很大的影響。

 

Anchor box 的選擇:

  • 通常人工指定Anchor box 的形狀,選擇5~10個以覆蓋到多種不一樣的形狀,能夠涵蓋咱們想要檢測的對象的形狀;

  • 高級方法:K-means 算法:將不一樣對象形狀進行聚類,用聚類後的結果來選擇一組最具表明性的Anchor box,以此來表明咱們想要檢測對象的形狀。

  •  

9.Putting it togerther YOLO agorithm

此節便是對以前的進行總結,內容以下:

10.Region Proposal (Optional)

R-CNN:

R-CNN(Regions with convolutional networks),會在咱們的圖片中選出一些目標的候選區域,從而避免了傳統滑動窗口在大量無對象區域的無用運算。

因此在使用了R-CNN後,咱們不會再針對每一個滑動窗口運算檢測算法,而是隻選擇一些候選區域的窗口,在少數的窗口上運行卷積網絡。

具體實現:運用圖像分割算法,將圖片分割成許多不一樣顏色的色塊,而後在這些色塊上放置窗口,將窗口中的內容輸入網絡,從而減少須要處理的窗口數量。

Region Proposals共有三種方法:

  • R-CNN: 滑動窗的形式,一次只對單個區域塊進行目標檢測,運算速度慢。

  • Fast R-CNN: 利用卷積實現滑動窗算法,相似第4節作法。

  • Faster R-CNN: 利用卷積對圖片進行分割,進一步提升運行速度。

比較而言,Faster R-CNN的運行速度仍是比YOLO慢一些。

 

 

 

 

 

 

 

 

補充:參考自https://blog.csdn.net/red_stone1/article/details/79028058

  https://blog.csdn.net/Dby_freedom/article/details/79865515

相關文章
相關標籤/搜索