吴恩达深度学习笔记12-Course4-Week3【目标检测】
目標檢測(Object detection)
一、目標定位(Object Localization)
圖像識別的三個層次:
- 圖像分類:判斷圖像中是否包含某一類物體,并且假定每張圖像只有一個目標。
- 目標定位:既要圖像分類,還要輸出這個目標位置。
- 目標檢測:檢測出圖像包含的所有感興趣的目標,并定位。
目標定位:
需要修改輸出層的結構,和數據集的標簽。輸出層不僅要輸出各類別的概率,還要輸出目標的位置坐標。
損失函數和標簽:
- Pc:表示是否包含要檢測目標。如果不包含為0,其它的輸出沒有意義。
- 根據情況,可以對不同的輸出元素使用不同的損失函數,如:對多類別概率使用交叉熵損失函數;對邊界框值使用平方誤差; 對Pc使用 logistic regression 損失函數。
二、特征點檢測(Landmark Detection)
在訓練標簽中添加特征點,并修改模型的輸出層使其輸出特征點坐標值,從而實現特征點檢測。
兩個例子:
- 人臉表情識別:通過標定數據集中特征點的位置信息,來對人臉進行不同位置不同特征的定位和標記。AR的應用就是基于人臉表情識別來設計的,如臉部扭曲、增加頭部配飾等。
- 人體姿態檢測:通過對人體不同的特征位置關鍵點的標注,來檢測人體的姿態。
三、目標檢測(Object Detection)
訓練了一個分類模型。
- 輸入X:將有目標的圖片進行適當的剪切,使圖像剛好只包括目標,訓練集中也應包含沒有目標的圖像。
- 標簽Y:有目標為1,沒目標為0。
實現目標檢測:把圖像裁剪成任意大小(可用滑動窗口實現),輸入分類器,即可判別出是否包含目標同時也知道了目標的位置。
四、卷積的滑動窗口實現(Convolutional Implementation of Sliding Windows)
滑動窗口檢測:
設置一系列尺寸不同的方框,每一種方框都從左向右、從上往下有規律的遍歷圖像,把每一個方框包含的圖片區域輸入不同的分類器,進行分類判別。即可實現目標檢測。
缺點是計算成本太大,方框尺寸的細分程度對定位的精度(粗粒度)影響很大。
卷積層替代全連接層:
利用1×1的卷積替代全連接層。
卷積實現滑動窗口:
不用把圖片進行分割后輸入模型,而是把這張圖片輸入到卷積神經網絡中進行計算,因為各子圖重疊部分可以共享大量的計算。只需一次前向傳播,就可以同時得到所有子圖的預測值。
輸出層尺寸為 :橫向子圖數 x 縱向子圖數 x 類別數
五、預測邊界框(Bounding Box Predictions)
受邊界框尺寸的細分程度的影響,預測結果和實際目標邊框可能會有偏離。
YOLO 算法很好的解決邊界框不準確的問題,下面會講。
邊界框值的意義:
- bx by bh bw :目標的中心點 x、y 坐標和高、寬值。值的大小都是相比于格子尺寸的比例值。
六、交并比(Intersection Over Union)
兩個邊框:實際邊框和預測邊框。
IoU = 邊框交集 / 邊框并集
七、非極大值抑制(Non-max Suppression)
一個目標可能檢測出多個邊界框,用非極大值抑制解決。
以某一個分類類別為例:
- 丟棄Pc小于一定值的預測結果,通常取0.5。
- 選取Pc最大的邊界框,作為一個正確的預測輸出。丟棄與該邊界框有高交并比(通常取大于0.5)的預測結果。
- 重復上一個步驟,直到所有邊界框都被遍歷了。
八、Anchor Boxes
解決一個格子只能預測一個目標的不足。
- 人工定義 Anchor Boxes 的形狀。標簽中對應于 Anchor Boxes 數量設置幾個預測標簽組合成一個大標簽。
- 把目標分配到其邊框與某個Anchor Boxe有最大IoU的所屬格子的這個Anchor Boxe對應的那一組預測標簽中。
九、YOLO Algorithm
訓練:
- 劃分網格:將圖片分割成n×n個小的圖片。
- 根據目標的中心點,為每個目標分配一個grid cell :中點在哪個grid cell ,就將該對象分配這個格子中,每個目標只分配給一個格子。
數據標簽:對于每個 grid cell 都有一個包含分類和位置的標簽yi=[Pc bx by bh bw c1 c2 c3],因為標簽的位置值的大小可以是任意值,相比于滑動窗口寬高比不再固定,因此能得到更精確的邊框。
node: 這里的yi標簽是沒有Anchor Boxes的,如果有Anchor Boxes應相應增加值。
- 將 n×n 個格子的標簽合并起來,得到 n×n×8 的矩陣標簽。
訓練模型。
沒有Anchor Boxes:
有Anchor Boxes:
預測:
- 將圖片縮放成大小和模型要求一致后輸入模型得到大小為n×n×8的預測輸出。即可得到分類類別和邊框位置。
- YOLO算法對于每張圖只進行一次前向傳播,算法運行速度快,基本達到實時應用的要求。
非極大值抑制:
- 對每種類別單獨進行極大值抑制,輸出預測結果。
十、候選區域(Region Proposals)—— R-CNN
- 把圖片分割成不同色塊,數量要遠遠小于窗口滑動的子圖數。
- 把不同色塊的原圖輸入模型進行預測。并不信任輸入色塊的位置值,同樣要輸出邊界框的預測值。
總結
以上是生活随笔為你收集整理的吴恩达深度学习笔记12-Course4-Week3【目标检测】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于mysql搭建框架环境搭建_Mave
- 下一篇: lan pci 联想开机_微软承认KB4