在 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. 這些都是常見的選擇
針對每一幀圖像,檢測車輛位置,形成連續追蹤
總結自Udacity無人車專項,合集版在掘金更新