【機器學習】HOG detectMultiScale 引數分析
前段時間學習了HOG描述子及其與SVM結合在行人檢測方面的應用。
當我們用訓練好的模型去檢測測試影象時,我們會用到detectMultiScale() 這個函式來對影象進行多尺度檢測。
這是opencv3.1裡的引數解釋
可以看到一共有8個引數。
1.img(必需)
這個不用多解釋,顯然是要輸入的影象。影象可以是彩色也可以是灰度的。
2.foundLocations
存取檢測到的目標位置
3.hitThreshold (可選)
opencv documents的解釋是特徵到SVM超平面的距離的閾值(Threshold for the distance between features and SVM classifying plane)
所以說這個引數可能是控制HOG特徵與SVM最優超平面間的最大距離,當距離小於閾值時則判定為目標。
4.winStride(可選)
HoG檢測視窗移動時的步長(水平及豎直)。
winStride和scale都是比較重要的引數,需要合理的設定。一個合適引數能夠大大提升檢測精確度,同時也不會使檢測時間太長。
5.padding(可選)
在原圖外圍新增畫素,作者在原文中提到,適當的pad可以提高檢測的準確率(可能pad後能檢測到邊角的目標?)
常見的pad size 有(8, 8), (16, 16), (24, 24), (32, 32).
6.scale(可選)
如圖是一個影象金字塔,也就是影象的多尺度表示。每層影象都被縮小尺寸並用gaussian平滑。
scale引數可以具體控制金字塔的層數,引數越小,層數越多,檢測時間也長。 一下分別是1.01 1.5 1.03 時檢測到的目標。 通常scale在1.01-1.5這個區間
7.finalThreshold(可選)
這個引數不太清楚,有人說是為了優化最後的bounding box
8.useMeanShiftGrouping(可選)
bool 型別,決定是否應用meanshift 來消除重疊。
default為false,通常也設為false,另行應用non-maxima supperssion效果更好。