前一段時間開始了解HoG跟SVM行人識別,看了很多包括Dalal得前輩的文章及經驗分享,對HoG理論有了些初步的認識。
HoG 的全稱是 Histogram of Oriented Gradient, 直譯過來也就是梯度方向直方圖。 就是計算各像素的梯度方向,統計成為直方圖來作為特征表示目標。
下面簡述一下利用HoG + SVM 實現目標檢測的簡要步驟
Step1:獲取正樣本集並用hog計算特征得到hog特征描述子。例如進行行人檢測,可用IRINA等行人樣本集,提取出行人的描述子。
Step2:獲取負樣本集並用hog計算特征得到hog特征描述子。 負樣本圖像可用不含檢測目標的圖像隨機剪裁得到。 通常負樣本數量要遠遠大於正樣本數目。
Step3: 利用SVM訓練正負正負樣本,得到model。
Step4:利用model進行負樣本難例檢測。對Training set 里的負樣本進行多尺度檢測,如果分類器誤檢出非目標則截取圖像加入負樣本中。(hard-negative mining)
Step5: 結合難例重新訓練model。
Step6:應用最后的分類器model檢測test set,對每幅圖像的不同scale進行滑動掃描,提取descriptor並用分類器做分類。如果檢測為目標則用bounding box 框出。圖像掃描完成后應用 non-maximum suppression 來消除重疊多余的目標。

