1. 程式人生 > >從零開始的無人駕駛 02:Vehicle Detection

從零開始的無人駕駛 02:Vehicle Detection

CNN (Convolutional Neural Networks 卷積神經網路) 普遍運用之前,車輛檢測是通過使用條件隨機場或者SVM(支援向量機)來實現的。操作上分為兩步,先是從影象上提取特徵,然後基於特徵建立模型,判斷車輛位置。

template matching 模板匹配

對於影象上的每一塊顏色,計算與背景圖的distance

甚至更硬核一點,直接把各種可能的車輛圖片存起來,然後跟相機視角的圖片進行比較

這類解決方案統稱 template matching

Color Histogram

template matching的缺陷也很明顯,對於沒有預存過的模板,自然無從識別。因此出現了 Color Histogram方案

將車輛的模板轉換成顏色直方圖,運算時比較目標物體與預存直方圖的相似度。優點是同一個物體在不同角度仍可識別。比如對於一輛紅色的車,從不同方向看過去,模板匹配無法很好地識別,而利用Color Histogram則不受影響。

HOG

Histogram of Oriented Gradients (定向梯度直方圖), 相比於之前的特徵,HOG特徵更加健壯,並且無視顏色的影響。

操作的時候,首先捕捉影象的輪廓與紋理資訊

然後將影象劃分為多個cell。對每個cell計算梯度方向
統計每個cell的區域性直方圖
將結果歸一化,得到的主方向將成為區域性特徵梯度方向
彙總每個cell得到的區域性資訊,就可以得到HOG特徵

Features Combination

首先是資料預處理,這裡主要是進行特徵組合。

比如HOG特徵是針對梯度資訊的特徵,HSV特徵則是針對顏色資訊的特徵

可以直接將二者拼接,得到 顏色+梯度的組合資訊
這裡面有一些要注意的地方,一般多個特徵擁有不同的模量,所以數字上相差很大
那麼就需要進行正則化,將資料對齊
還可以利用決策樹等方法,捨棄影響不大的變數

Sliding Windows

使用滑動視窗進行車輛檢測,在這種場景下有一些機巧

首先還是ROI, 車輛其實只會出現在圖片的下半塊區域

其次可以預先設定好車輛可能的最大寬度和最小寬度
這樣在檢測時進行有限的multi-scale window
減小搜尋空間

Multiple Detection

最後對於同一車輛的Multiple Detection

建立 heat-map,計算中心位置

Build Model & Tracking

模型的選取倒是比較簡單,SVM, Decision Tree, Nerual Network, etc. 這些都是常見的選擇
針對每一幀影象,檢測車輛位置,形成連續追蹤