李銘 鄭蘇生 姚磊岳
摘? 要:隨著深度學(xué)習(xí)技術(shù)的不斷發(fā)展,端到端的模式識(shí)別方式越來越普及。只要算力足夠,總可以搭建出適合某一場(chǎng)景的分類檢測(cè)與預(yù)測(cè)判斷深度網(wǎng)絡(luò)。但在周期短、算力不足、語義理解要求高的場(chǎng)景下,基于特征的模式識(shí)別仍舊有著巨大的需求。本文通過對(duì)經(jīng)典特征HOG的詳細(xì)解讀,結(jié)合SVM實(shí)現(xiàn)了對(duì)任意物體的智能識(shí)別。相較于深度學(xué)習(xí)算法,有著前期訓(xùn)練成本低、識(shí)別速度快、樣本量需求小等特點(diǎn)。
關(guān)鍵詞:模式識(shí)別;SVM;HOG;目標(biāo)檢測(cè);人工智能
中圖分類號(hào):TP391.41? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2019)24-0067-04
Abstract:With the development of deep learning technology,the end to end method has become the most popular pattern recognition method nowadays. In most situations,an appropriate deep learning network always can be created with the help of enough computing power. However,in the scene of short project period,insufficient computing power,high competence of algorithm etc.,feature based pattern recognition method still has its application requirements. In this paper,the classic feature,HOG was fully introduced,which together with SVM(support vector machine) realized a common algorithm for any certain object detection. Compared with deep learning algorithm,it has the characteristics of low training cost,fast recognition speed and small sample size demand.
Keywords:pattern recognition;SVM;HOG;object detection;artificial intelligence
0? 引? 言
目標(biāo)檢測(cè)是人工智能領(lǐng)域最為重要,也是最為熱門的研究方向之一。它的主要目的是通過對(duì)數(shù)字圖像或視頻的分析,找到制定目標(biāo)的位置、大小、輪廓,賦予計(jì)算機(jī)“看”的能力,并最終做出相應(yīng)判斷。目標(biāo)檢測(cè)是場(chǎng)景識(shí)別、目標(biāo)追蹤,以及其他人工智能復(fù)雜應(yīng)用的前期基礎(chǔ)。如圖1所示,近幾十年來,基于特征的目標(biāo)檢測(cè)算法取得了較好的成績(jī),誕生了許多經(jīng)典的目標(biāo)檢測(cè)特征,如:HOG、DPM、SIFT等等。
基于特征的算法有著較高的特征解釋度,但在識(shí)別率方面卻很難突破天花板。很多實(shí)驗(yàn)結(jié)果準(zhǔn)確率在98%甚至更高的檢測(cè)方法,往往有著很強(qiáng)的數(shù)據(jù)集依賴性或特定場(chǎng)景依賴性。2013年以后,隨著卷積神經(jīng)網(wǎng)絡(luò)在圖像分類方面取得了質(zhì)的突破后,深度學(xué)習(xí)方法在圖像檢測(cè)、目標(biāo)跟蹤方面的研究越來越多,越來越普及。然而,這種依賴GPU算力的“暴力”方法,一方面需要海量的訓(xùn)練樣本;另一方面,較傳統(tǒng)的基于特征的方法而言,深度學(xué)習(xí)方法對(duì)算力的需求以數(shù)量級(jí)增加。
在算力充足、需要保證準(zhǔn)確率的情況下,利用深度學(xué)習(xí)框架構(gòu)建模式識(shí)別應(yīng)用肯定是首選方案。但如果算力有限,對(duì)特征語義解釋度要求較高,且需要快速實(shí)現(xiàn)的情況下,基于手工特征的算法也不失為好的選擇之一?;诖吮尘埃疚脑敿?xì)介紹了如何利用模式識(shí)別中經(jīng)典的HOG特征以及SVM,實(shí)現(xiàn)對(duì)任意目標(biāo)的快速檢測(cè)。
1? 模式識(shí)別的一般性算法思路
不論是基于深度學(xué)習(xí)的模式識(shí)別方法還是基于特征的模式識(shí)別方法,都具有共同的總體流程,如圖2所示。具體可分為三步:
(1)接收外界原始數(shù)字信息(RAW DATA);
(2)通過特定轉(zhuǎn)化,將原始數(shù)字信息轉(zhuǎn)化為參數(shù)矩陣(多維數(shù)字矩陣);
(3)通過多維數(shù)字矩陣以及實(shí)現(xiàn)標(biāo)定樣本對(duì)分類器進(jìn)行訓(xùn)練或進(jìn)行分類預(yù)測(cè)(如果分類器已經(jīng)訓(xùn)練完畢,則可以直接通過分類器和多維數(shù)字矩陣進(jìn)行預(yù)測(cè))。
再簡(jiǎn)而言之,就是將目標(biāo)對(duì)象在數(shù)字層面抽象為更為簡(jiǎn)單的描述,然后再通過已具備先驗(yàn)知識(shí)的分類器(SVM等)進(jìn)行可能性歸類。舉一個(gè)簡(jiǎn)單易懂的例子:如果待檢測(cè)目標(biāo)是一個(gè)動(dòng)物,有毛,有爪子,有四肢,體型不大,那么我們?nèi)耍ň邆湎闰?yàn)知識(shí)的分類器)根據(jù)描述會(huì)把這個(gè)目標(biāo)預(yù)測(cè)為狗、貓或等等有上述特征的動(dòng)物。如果在此描述基礎(chǔ)之上增加“喜歡捕食老鼠”,那么將檢測(cè)目標(biāo)判定為“貓”的概率就大大提高。計(jì)算機(jī)中的模式識(shí)別技術(shù)大抵就是如此。
2? 本文方法實(shí)現(xiàn)
本文算法通過HOG算子計(jì)算目標(biāo)對(duì)象特征,并準(zhǔn)備好正負(fù)樣本對(duì)SVM進(jìn)行訓(xùn)練。訓(xùn)練完成后,即可實(shí)現(xiàn)對(duì)任意圖片中目標(biāo)對(duì)象的檢測(cè)與標(biāo)注。在實(shí)驗(yàn)過程中,算法通過第三方開源項(xiàng)目庫(kù)EMGU.CV v3.1所提供的HOG算子以及SVM實(shí)現(xiàn)。實(shí)驗(yàn)測(cè)試以檢測(cè)圖片中的汽車為例。
2.1? HOG特征分析
方向梯度直方圖(Histogram of Oriented Gradient,HOG)特征是一種在計(jì)算機(jī)視覺和圖像處理中用來進(jìn)行物體檢測(cè)的特征描述子。它通過計(jì)算和統(tǒng)計(jì)圖像局部區(qū)域的梯度方向直方圖來構(gòu)成特征。HOG特征結(jié)合SVM分類器已經(jīng)被廣泛應(yīng)用于圖像識(shí)別中,尤其在行人檢測(cè)中獲得了極大的成功。本文旨在利用HOG進(jìn)行特征提取,詳細(xì)的HOG算子原理可參閱文獻(xiàn)[1]。
如圖3所示,在EMGU.CV中,HOG算子初始化需提供5個(gè)參數(shù),其中:
第一個(gè)參數(shù):WinSize:窗口大小,本文樣本大小為36*36;
第二個(gè)參數(shù):BLOCK,本文塊大小是12*12;當(dāng)然,也可以設(shè)置為18*18或者6*6,切記:BLOCK大小不能是奇數(shù)值,因?yàn)槿绻瞧鏀?shù),cell和BLOCK會(huì)無法除盡。同時(shí),設(shè)計(jì)的過程中,BLOCK要可被WinSize整除。
第三個(gè)參數(shù):stride,即滑動(dòng)窗口步長(zhǎng),本文的設(shè)置是6*6,當(dāng)然也可以設(shè)置為12*12或者4*4,不同的設(shè)置,將得到不同的緯度數(shù)量;
第四個(gè)參數(shù):cell,4個(gè)cell構(gòu)成1個(gè)BLOCK,這也就是BLOCK一定要是偶數(shù)的原因。
第五個(gè)參數(shù):需要得到幾個(gè)channel的值,9個(gè)channel將得到9個(gè)提取值。
經(jīng)過轉(zhuǎn)化后,訓(xùn)練樣本將被抽象為一個(gè)1緯的浮點(diǎn)數(shù)組。本文中的緯度為900,具體計(jì)算公式如下:
利用EMGU.CV實(shí)現(xiàn)HOG初始化后,在計(jì)算HOG特征時(shí),可以直接調(diào)用對(duì)象的compute方法,具體代碼如圖4所示。
2.2? 基于SVM的模式判斷
支持向量機(jī)(Support Vector Machine,SVM)是一類按監(jiān)督學(xué)習(xí)(supervised learning)方式對(duì)數(shù)據(jù)進(jìn)行二元分類的廣義線性分類器(generalized linear classifier),其決策邊界是對(duì)學(xué)習(xí)樣本求解的最大邊距超平面(maximum-margin hyperplane)[2]。
SVM的實(shí)現(xiàn)原理需要有較強(qiáng)的數(shù)學(xué)功底和空間想象能力,因?yàn)?緯及以上空間在現(xiàn)實(shí)生活中就不存在具體模型。但可以將SVM的作用簡(jiǎn)化地理解為在二維平面上進(jìn)行分類,如圖5所示。
即:SVM可以通過標(biāo)定數(shù)據(jù)(圖中表示為不同的小球),在多維空間(圖中為二維)進(jìn)行有效分割,實(shí)現(xiàn)不同類型的最佳區(qū)分。因此,在使用過程中,我們只需知道SVM可以自動(dòng)根據(jù)訓(xùn)練樣本做出最佳分類預(yù)測(cè)即可。故在使用SVM的過程中,要分為以下兩步。
2.2.1? 準(zhǔn)備正負(fù)樣本
正樣本:指算法想要正確分類出的類別所對(duì)應(yīng)的樣本。如本文中希望在圖片中檢測(cè)出汽車,則正樣本則為各種各樣不同的汽車。
負(fù)樣本:指算法想要排除的樣本。如在本文中,所有不是汽車的圖片均可作為負(fù)樣本存在。
正、負(fù)樣本的數(shù)量理論上可以不一致,但是一般而言,最好能夠?qū)崿F(xiàn)1:1對(duì)應(yīng),以提高算法準(zhǔn)確度。本文中,正、負(fù)樣本數(shù)量分別為500和467。一般而言,樣本數(shù)量越多,訓(xùn)練越充分,準(zhǔn)確度越高。
2.2.2? 訓(xùn)練
以正樣本訓(xùn)練為例,如圖6代碼所示:遍歷正樣本目錄,計(jì)算HOG值并存入HOG特征矩陣以供SVM訓(xùn)練使用。原則上,SVM可以接受任意緯度的浮點(diǎn)矩陣。本文中,根據(jù)HOG算子計(jì)算出的特征為900緯的浮點(diǎn)矩陣,具體訓(xùn)練及SVM參數(shù)設(shè)置如圖7所示。
2.2.3? 預(yù)測(cè)(分類)
圖8程序目的在于通過設(shè)置滑塊窗口,實(shí)現(xiàn)目標(biāo)圖片的遍歷,并將滑塊窗口所遍歷出的圖像計(jì)算得到HOG特征值,在通過SVM判斷是否是目標(biāo)對(duì)象。如果是,則記錄當(dāng)前滑塊位置與窗口大小(即圖8中的results[i].Rect)。
2.3? 算法實(shí)現(xiàn)
3? 結(jié)? 論
本文介紹了模式識(shí)別的普適性方法,利用第三方開源平臺(tái),通過HOG+SVM實(shí)現(xiàn)了對(duì)任意目標(biāo)的檢測(cè)。相較于深度學(xué)習(xí)而言,基于傳統(tǒng)手工特征的算法并非已經(jīng)過時(shí)。在特定需求下,基于傳統(tǒng)手工特征的模式識(shí)別方法依然有其顯著的優(yōu)勢(shì)。在未來的進(jìn)一步研究中,本文算法可以通過不同大小的滑動(dòng)窗口實(shí)現(xiàn)不同尺度的目標(biāo)的檢測(cè)。另外,還可以在提取手工特征后,將待檢測(cè)圖片轉(zhuǎn)化為特征圖譜,并將特征圖譜作為深度網(wǎng)絡(luò)的輸入值實(shí)現(xiàn)端到端檢測(cè),從而實(shí)現(xiàn)傳統(tǒng)手工特征與深度學(xué)習(xí)技術(shù)的結(jié)合。
參考文獻(xiàn):
[1] DALAL N,TRIGGS B. Histograms of Oriented Gradients for Human Detection [C]//2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR’05). IEEE,2005.
[2] 周志華.機(jī)器學(xué)習(xí) [M].北京:清華大學(xué)出版社,2016:121-139+298-300.
[3] LI Z,ZHOU F. FSSD:Feature Fusion Single Shot MultiboxDetector [J/OL].arXiv,2017(14):1-10(2017-12-04),https://arxiv.org/pdf/1712.00960v1.pdf.
[4] 陽冰成.視頻序列中行人目標(biāo)檢測(cè)與跟蹤 [D].北京:北京印刷學(xué)院,2019.
[5] 韓濤,楊洋.基于Hough變換的圖像目標(biāo)檢測(cè)與識(shí)別 [J].計(jì)算機(jī)與數(shù)字工程,2019,47(2):412-416.
作者簡(jiǎn)介:李銘(1985.07-),男,漢族,江西撫州人,助教,本科,研究方向:計(jì)算機(jī)網(wǎng)絡(luò);鄭蘇生(1978.01-),男,漢族,江西撫州人,講師,研究生,研究方向:工商管理;姚磊岳(1982.07-),男,漢族,江西南昌人,教授,研究生,研究方向:大數(shù)據(jù)挖掘與人工智能。