機器不學習 www.jqbxx.com : 深度聚合機器學習、深度學習算法及技術實戰
介紹目標探測的基本方法,傳統方法 DPM,神經網絡分類 R-CNN 系列方法和神經網絡迴歸 YoLo 系列方法。
目標探測
先來看下什麼是目標探測,下圖矩形框(running box)表示的物體都可以作為目標探測的對象。不止矩形框,橢圓形框在某些場合更適合做目標探測,因為它能更好的捕捉對象,並對物體朝向做相應調整,機變性更好。
目標探測的任務一般分為單目標探測和多目標探測。目的一是找到目標的位置座標,二是判定目標類別。
目標探測的應用場景有安防、自動駕駛等。從技術方面講,目標探測傳統方法用的是DPM,雖然目前已經被神經網絡超越,但是很多思想可以借鑑。神經網絡大體上有兩類方法,一類是分類方法主要是RCNN系列方法 ,先找到若干候選區,然後一個區域一個區域排查,判斷有沒有要找的物體;另一類是迴歸方法主要是YoLo系列方法,直接找到區域,以及區域有什麼物體。
下面來看下目標探測的兩個直接思路。
直接思路一:迴歸問題
一類思路是把目標探測看作是一個迴歸問題。直接生成 class score,也就是判斷是該類別(物品)的 confidence value,和 box coordinates,也就是檢測框的座標值。整個任務的損失函數其實是位置差和分類差的一個組合。
直接思路二:局部識別問題
另一類思路是在很多位置上嘗試識別,能夠完成識別的地方就是目標位置。如下圖,我們生成潛在的候選區域(proposal),然後採用分類器逐個判別這些區域內圖像是不是目標物體,如果是,可以把候選區域做延展(用 regression),看有沒有更合適的候選框。
一個問題是怎樣找到這些候選位置?
一種方法是用不同 scale 的 sliding windows 來遍歷所有的位置,這種方法代價太高,另一種更有效的方法是直接計算候選區域。現在有很多算法能夠有效的產生候選區域,比較常用的是 EdgeBoxes(在 RCNN 中使用)。
傳統方法-DPM
傳統方法主要包括 3 個步驟:
- 利用不同尺度的滑動窗口在圖像上進行區域搜索,定位候選區域;
- 對候選區域進行特徵提取,如sift,hog,haar等;
- 利用分類器進行分類識別,svm等
主要思路就是提取圖像特徵,製作出激勵模板,在原始圖像滑動計算,得到激勵效果圖,然後根據激勵分佈確定目標位置。如下圖人物識別把人為設計的激勵模板和 HOG 特徵圖結合,如果有人,會得到加強的激勵,然而同樣的,柱子也會得到激勵。
DPM(Deformable Part Model)可以看做是HOG(Histograms of Oriented Gradients)+SVM(Surpport Vector Machine) 方法的擴展,大體思路是一致的 — 先計算梯度方向直方圖,然後用 SVM 訓練得到物體的梯度模型。有了這樣的模板就可以直接用來分類了,簡單理解就是模型和目標匹配。DPM 只是在模型上做了很多改進工作。
由於目標可能會形變,之前模型不能很好的適應複雜場景的探測,所以一個改進是各個部分單獨考慮,對物體的不同部分單獨進行學習,所以DPM把物體看成了多個組成部件(比如說人臉的鼻子,嘴巴等),用部件間的關係來描述物體,這個特點非常符合自然界許多物體的非剛性特徵。基本思路如下:
- 產生多個模板,整體模板(root filter)以及不同局部模板(part filter)
- root filter 包含目標的整體信息,而 part filter 採用高分辨率的細節建模,看的梯度會更加精細
- 不同模板同輸入圖片“卷積”產生特徵圖
- 特徵圖組合形成融合特徵
- 對融合特徵進行傳統分類,迴歸,得到目標位置
- 模型在圖像特定位置和尺度的得分, 等於 root filter 的得分加上各個 part filter 得分的總和。每個 part filter 的得分等於該 part 在所有空間位置的得分的最大值,而部件在某位置的得分等於 part filter 在此位置的得分減去此位置的變形代價(也就是 part 偏離其理想位置的程度)
DPM 的優點是方法比較直觀、簡單,運算速度快,也可以適應運動物體變形,很好的處理遮擋、非剛性可變和視覺變換問題,到 2012 年前,是最好的方法。然而 DPM 也有一些缺點
- 性能一般
- 激勵特徵人為設計,表達能力有限,工作量大,難以進行遷移學習
- 大幅度旋轉無法適應,穩定性差
閱讀更多 i機器不學習 的文章