1. 程式人生 > >【目標檢測】基於SVM+HoG目標檢測

【目標檢測】基於SVM+HoG目標檢測

最近正在做一個基於目標檢測的專案,裡面涉及到行人檢測、跟蹤,這裡記錄專案歷程,以備後期研習。

【00】前言

       巴拉巴拉---在做這個之前,看的論文也比較少,主要是百度、必應一些關鍵詞 行人檢測、目標檢測等,比較多的演算法介紹為HoG+SVM、還有一些機器學習相關的演算法,如YOLO等,因為之前在HoG和SVM上花了時間較多,所以現階段任務是在專案上把它們用起來,後期再考慮往深度學習上走

【01】基礎介紹

HoG+SVM

HoG,Histogram of Oriented Gradient, 方向梯度直方圖,主要用來描述影象特徵,最先由Dalal2005CVPR上提出,後期在他們的基礎上作改進的比較多。SVM,support vector machine,支援向量機,主要是通過訓練樣本庫找到正負樣本之間的超平面....

工作時接觸過國外如日本的一些ADAS產品,國內北上廣深一些廠家待量產產品,普遍根據HoG特徵進行改進,都沒有離開HoG+SVM的模型,除了mobileye裡涉及了深度學習,好像其他公司的產品也都差不多

原理性介紹:

·HoG

待補

·SVM

待補

【02】實現過程

流程圖在網上找個貼下

【03】細節描述

演算法基本上了解後,在各自專案實際實施的過程中遇到了很多的問題

(1)樣本製作

樣本製作上有兩種方法,一種是利用手動裁剪樣本;一種利用目標在影象中的位置不進行樣本裁剪,只對目標用標籤進行標註。

本文先介紹裁剪的方法。首先在正負樣本製作上。Dalal在樣本製作時採用的是INRIA的資料集,有些人用的時候直接把他們的樣本集水平或垂直刪減多少畫素來達到64*128尺寸視窗。但是在專案實際操作時,我用工具根據專案場景將含有行人場景內容給他裁剪下來,基於不同距離、尺寸的行人都有,所以造成了最後樣本分佈各種大小尺寸都有,而OpenCV自帶的函式在提取HoG特徵時對樣本視窗尺寸有要求,所以這就來問題了,怎麼將專案上各種尺寸統一到同一尺寸?

如果用resize強行縮放到目標尺寸,那麼這個操作會不會對影象中的HoG特徵造成改變呢?如果事先用固定尺寸來製作樣本,負樣本可能影響較小,但是製作正樣本時,不同尺度的行人樣本所佔相同尺寸視窗的比例不同,如果差異較小還好,差異太大,到時候勢必對該樣本視窗的HoG特徵產生影響,這個怎麼解決呢?

(2)訓練樣本

*****基於C++版本****

(3)LibSVM

LibSVM是臺灣 林智仁(Chih-Jen Lin教授2001年開發的一套支援向量機的庫,這套庫運算速度快,方便對資料做分類或迴歸。由於libSVM程式小,運用靈活,輸入引數少,並且是開源的,易於擴充套件,因此成為目前國內應用最多的SVM庫。目前已經更新到3.22版本

【參考文件】

1、林智仁 LibSVM http://www.csie.ntu.edu.tw/~cjlin/libsvm/