解開(kāi)車(chē)輛檢測算法之謎

發(fā)布時(shí)間:2020-10-20 09:57    發(fā)布者:eechina
關(guān)鍵詞: 車(chē)輛檢測 , 算法
車(chē)輛檢測技術(shù)看似神秘,本質(zhì)上是通過(guò)數學(xué)公式,計算出圖片上指定區域內的像素特征,進(jìn)而根據特征判斷物體所屬類(lèi)別。物體檢測方法可以總結為特征提取與類(lèi)別判定兩步,常用方法為支持向量機, Support Vector Machine(SVM)與方向梯度直方圖, Histograms of Oriented Gradients(HOG)相互配合。

本文將從以下幾個(gè)方面介紹這種常用的車(chē)輛檢測算法,揭開(kāi)其神秘面紗,也讓讀者通過(guò)閱讀對機器學(xué)習過(guò)程有清晰的了解。

應用場(chǎng)景簡(jiǎn)介

詳述HOG特征的計算方法
簡(jiǎn)述SVM的工作過(guò)程
對比及總結
應用場(chǎng)景簡(jiǎn)介

現實(shí)生活中車(chē)輛檢測技術(shù)應用廣泛,下面舉例說(shuō)明車(chē)內裝置的應用。我們平時(shí)開(kāi)的私家車(chē)里有時(shí)會(huì )有后置車(chē)載攝像頭,后方一定距離內有車(chē)將要超過(guò)該車(chē)時(shí),此系統便會(huì )啟動(dòng),檢測出后方車(chē)輛以后發(fā)出警報,提示駕駛員減速駕駛(圖1)。另一個(gè)例子便是在自動(dòng)駕駛領(lǐng)域的應用,通過(guò)對周邊車(chē)的定位,分析他車(chē)車(chē)速、距離等干擾因素,從而改變該車(chē)的行駛軌道。


圖1:后視車(chē)載攝像頭檢測出車(chē)輛在圖像上用矩形框定位

車(chē)輛檢測系統還廣泛用于交通管制和路況監控(圖2),例如在隧道口安置此系統,則會(huì )統計每天各個(gè)時(shí)段的車(chē)流量,適當實(shí)施限行政策,減少交通事故的發(fā)生,并且提醒駕駛員,哪里是擁擠路段,哪里交通較為順暢,進(jìn)而方便駕駛員選擇出行線(xiàn)路,起到疏散交通的目的。此外車(chē)流量的統計也會(huì )應用在機場(chǎng)或火車(chē)站的停車(chē)場(chǎng),經(jīng)過(guò)大數據分析出車(chē)位緊張的時(shí)段,以便工作人員合理調度資源。

附帶車(chē)輛檢測系統的信號燈可以通過(guò)與其他技術(shù)相結合,探測信號燈周?chē)?chē)流量,工作人員通過(guò)大數據人工智能進(jìn)行統計,通過(guò)計算設定紅綠燈交替變換的合理時(shí)間間隔。


圖2:車(chē)輛檢測系統在路況監控場(chǎng)景下的應用

HOG 與 SVM相結合的算法

( 40 −16 )/ 8 +1 =4

利用HOG與SVM相結合的行人檢測方法最初是由法國研究人員Dalal于2005年在CVPR上提出的,如今演變成以HOG+SVM為主要思路對各類(lèi)物體進(jìn)行檢測,包括車(chē)輛以及車(chē)道的定位。

步驟如下(圖3)所示:


圖3:SVM與HOG結合做車(chē)輛檢測的流程圖。

HOG特征計算

HOG是一個(gè)局部提取特征的算法,如果是包含復雜背景的大圖,就算提取再多的特征也不會(huì )達到檢測物體的目的。我們需要將圖片剪裁得到目標,經(jīng)實(shí)驗證明,車(chē)輛作為目標物體占圖片比重必須大于80%才會(huì )得到好的效果。在剪裁好的局部圖像上將圖像分區(block),每個(gè)區域以細胞(cell)為單位提取特征。(圖像中的多個(gè)像素為一個(gè)細胞cell,多個(gè)cell組成區域塊block。)  我們以下(圖4)為例,解釋HOG特征的計算過(guò)程。 首先剪裁得到一張40*40的圖片(以像素為單位),之后我們要定義如下幾個(gè)變量:


圖4:block在剪裁圖片上的移動(dòng)過(guò)程,由圖可知4個(gè)cell組成一個(gè)邊長(cháng)為16個(gè)像素值block,圖片經(jīng)剪裁得到長(cháng)寬均為40個(gè)像素值。步長(cháng)為1, 即每次移動(dòng)一個(gè)像素值。

定義移動(dòng)步長(cháng)s, 例如:s=1。
定義cell大小,以像素為單位,例如:8*8。
定義block大小,例如:由2*2=4個(gè)cell組成。
定義bin的數量取值,根據需要設定數量,例如bin=9,每個(gè)bin用來(lái)存放計算出的直方圖的梯度方向累加值,其原理下文將具體講解。

對輸入的圖像及顏色進(jìn)行標準化處理,減少光照或陰影對圖像中物體檢測準確性的干擾,具體做法是進(jìn)行g(shù)emma顏色矯正后改為灰度圖(Gemma顏色矯正原理在此不做介紹)。
梯度大小的計算。以一個(gè)細胞部分區域為例做計算方法講解(圖5),下文為計算像素值為25的中間點(diǎn)的公式。


圖5:一個(gè)細胞的部分區域大小及像素值

采用一個(gè)合理的卷積核方式的定義,實(shí)驗表明[-1,0,1]效果最好。卷積核 [-1,0,1] 可以理解為一個(gè)矩陣,用于計算每個(gè)像素點(diǎn)的梯度幅值方向,因此我們可以橫向(x軸正方向,向右)采用[-1,0,1] 的卷積核,縱向(y軸正方向,向上)采用〖[-1,0,1]〗^T,對于圖像區域中的每一個(gè)像素點(diǎn)做橫向,縱向的梯度分量計算,二者平方和開(kāi)根號得到該點(diǎn)的梯度方向,因此計算公式如下:



所以像素為25的點(diǎn)水平方向的計算方法如下(圖6)所示:


圖6:像素值為25的中間點(diǎn)水平方向的像素值的計算過(guò)程

計算公式:


所以像素為25的點(diǎn)垂直方向計算方法如下(圖7)所示:


圖7:像素值為25的中間點(diǎn)水平方向的像素值的計算過(guò)程

計算公式:           


梯度方向的計算采用以下公式:


對每個(gè)細胞(cell)中的所有像素點(diǎn)重復3-4的計算過(guò)程,再將數值相加,我們就得到了一個(gè)細胞(cell)內9個(gè)梯度方向上的梯度積分圖(圖8)。
求解圖像分區(block)的HOG特征,即:將所包含的細胞(cell)特征串聯(lián)到一起。
求解整個(gè)圖片的HOG特征,即:將所包含的圖像分區(block)特征串聯(lián)到一起。

特征維度的計算方法:
以上例子中block塊沿著(zhù)x,y軸分別移動(dòng)4步:

(40-16)/8+1=4

每個(gè)block中包含4個(gè)cell:

2*2=4

特征維度的計算公式:



因此該圖例中通過(guò)計算得到特征維度是576。

將求得的梯度向量正則化。正則化的重要目的是為了防止過(guò)擬合,過(guò)擬合會(huì )造成在對訓練集的分類(lèi)效果過(guò)于理想,但是測試集檢測率極其偏低,這顯然是我們不能接受的。跟一般的機器學(xué)習特征正則化的道理相同,例如得到的特征值在(0, 200)之間分布,我們要求防止200以?xún)鹊臄底謱μ卣髡w分布造成影響(模型在訓練中會(huì )為了迎合200而偏離整體趨勢,造成過(guò)擬合),因此要將特征分布規范化到一定區間,Dalal在論文中提到采用L2-norm得到的效果非常理想。(這里0,200指特征值所在的范圍)
將特征與標簽一起送往SVM中對分類(lèi)器進(jìn)行訓練。
直方圖的梯度方向及bin的取值

Dalal在論文中提到,“這一步驟的目的是為局部圖像區域提供一個(gè)指示函數量化梯度方向的同時(shí),能夠保持對圖像中檢測對象外觀(guān)的弱敏感性”。 梯度大小要根據梯度方向插入到對應的bin中,方向分為兩種。 第一種無(wú)方向的方法(unsighed)適用于車(chē)輛或其他目標檢測,第二種有方向的方法(sighed)經(jīng)實(shí)驗證明,不適用于車(chē)輛或其他目標檢測,這種方法在圖片放大、縮小、或經(jīng)過(guò)旋轉后,像素點(diǎn)要恢復到原位置時(shí)會(huì )有應用,可以點(diǎn)擊參考文獻的第5個(gè)鏈接進(jìn)行深入了解。

無(wú)方向。 (0 , π)
下面我們詳細了解無(wú)方向插值法.

本文將使用三張表格去做講解,每張表格中第一行為計算出的幅值,第二行為規定好的bin的方向取值,由180度除以定義的bin個(gè)數得來(lái)。第三行為bin的序號,從0開(kāi)始.

根據實(shí)際需要分成若干個(gè)bin, 例如分成9個(gè),即每個(gè)細胞內統計9個(gè)方向的梯度直方圖,每個(gè)bin的覆蓋方向為20度。將幅值(上文中計算的 G(x, y) )插入到bin中,最終bin中幅值的累加和即為直方圖的縱軸,橫軸則是bin的取值范圍,該例中取(0, 8) 的數字。

插入值的方法:

若某個(gè)像素點(diǎn)的幅值為80,方向為20度,則插入到(表格1)藍色區域的位置:


(表格1)

若幅值為80,方向為10度,則分別插入到(表格2)藍色填充的兩個(gè)位置:


  (表格2)

若幅值為60,方向為165度,則分別插入到表格3藍色的兩個(gè)位置:

(180度和0度在方向上等價(jià),所以幅值按1:3分別插入兩個(gè)bin)


   (表格3)

上述(表格1)介紹的方向值恰好為bin對應值的插入方法,表格2介紹了方向值介于兩個(gè)bin值之間的插入方法,表格3介紹了方向值大于最大bin值的插入方法。根據三種方法的原理,以cell為單位計算,一個(gè)cell中所有像素點(diǎn)遍歷后的幅值累加,例如上面我們在0號bin的位置得到了兩個(gè)幅度值分別為40和15,因此我們到目前為止0號bin的直方圖累加到55。以此類(lèi)推,計算每個(gè)cell 的1-8號bin幅度分別累加。最終我們會(huì )得到類(lèi)似于下面(圖8)的直方圖,橫坐標X為梯度方向,縱坐標Y為梯度幅值:


圖8:梯度直方圖實(shí)例。橫軸為bin序號,縱軸為計算出的幅值。本圖縱軸對應的數字僅為舉例說(shuō)明,例如,上圖三張表格中的bin1幅值加和得到80+40+0=120作為最終結果,則直方圖縱坐標得到120,繼續做計算,bin1 的值會(huì )繼續累加。

實(shí)驗證明目標檢測時(shí)用9個(gè)bin,單向插入會(huì )得到最佳效果。

有方向。(0, 2π)
方向前加了正負號,若也定義9個(gè)bin, 則每一個(gè)bin所分配到的角度范圍是(0, π/9 °) 例如,第二個(gè)bin,其正值插入到范圍在20-40(藍色的扇形區域),負值應插入到200-220的bin中(藍色的扇形區域)。(圖9)


圖9:有方向的插值方法,每一個(gè)扇形區域代表一個(gè)bin覆蓋角度范圍值。紅色為一號bin,覆蓋0-20度。順時(shí)針?lè )较蛞来螛颂,綠色為終點(diǎn),340-360度。藍色區域為相對應的兩個(gè)方向的bin.

簡(jiǎn)述SVM的工作過(guò)程

SVM (Support Vector Machine) 全稱(chēng)為支持向量機 ,在空間中將兩個(gè)類(lèi)別通過(guò)一個(gè)超平面分開(kāi),二維空間可簡(jiǎn)單理解成為了找到 y 而 y 滿(mǎn)足



y的值決定了樣本是正類(lèi)還是負類(lèi)。但是如何確定最優(yōu)超平面,這里就引入了支持向量和最大 間隔。我們的目標是引入超平面,使得距離超平面最近的點(diǎn)之間有最大間隔(圖10)。


圖10:紅色的線(xiàn)為超平面,落 在兩側的虛線(xiàn)上的點(diǎn)為支持向量,計算得到的𝑦值即1(正類(lèi))或-1(負類(lèi)),藍色的點(diǎn)為正 樣本,綠色的點(diǎn)為負樣本,目的是找到虛線(xiàn)之間的距離最大的𝑤值,因為距離越大表示二分類(lèi) 模型效果越好。 (來(lái)源: https://en.wikipedia.org/wiki/Support-vector_machine)

由于現實(shí)情況中的數據復雜度高,有時(shí)會(huì )根據需要引入核函數,作用是將低維度映射到高維度 中,通過(guò)找到㇐個(gè)最優(yōu)超平面使線(xiàn)性不可分(圖11)的數據變得線(xiàn)性可分。


圖11:紅色圈內的點(diǎn)與藍色的點(diǎn)二維空間中線(xiàn)性不可分,因此需要通過(guò)核函數將各個(gè)點(diǎn)映射 到高維度的空間坐標系中

SVM的計算量大,訓練耗時(shí),因為對于每個(gè)點(diǎn)都要計算㇐遍與其他每㇐個(gè)點(diǎn)的相似度。因此S VM適用于數據量較小的二分類(lèi)模型訓練,若為多個(gè)類(lèi)別,則通常分別訓練多個(gè)模型。此外, 臺灣大學(xué)教授研發(fā)的兩款開(kāi)源工具當下深受科學(xué)家的喜愛(ài),㇐個(gè)是LibSVM,另㇐個(gè)是基于SV M開(kāi)發(fā)、適用于大數據量的liblinear。

SVM對參數也極其敏感。libSVM或LibLinear訓練過(guò)程中要注意懲罰項C,和權重系數w. C 即懲罰項,越大,代表訓練過(guò)程分類(lèi)效果越好,但是C過(guò)大會(huì )造成過(guò)擬合,即訓練樣本分類(lèi) 正確率極其高但是測試準確率極其底。因為數據中不可避免的出現㇐些遠離集中群體的點(diǎn),C 的大小表明了你是否愿意放棄這些離群點(diǎn)。越大表示不愿意放棄,因此模型會(huì )特別好的擬合訓 練集但非測試集, W即權重代表正負樣本的系數,如果想讓更多的目標被檢測出來(lái),就將正樣本權重加大,但 是這樣誤檢率(FP)會(huì )特別高。反之,負樣本權重加大,會(huì )控制誤檢率(FP),當然目標檢測率 (TP)就會(huì )降低。

經(jīng)過(guò)筆者親自實(shí)驗發(fā)現,㇐百萬(wàn)個(gè)數據,1152維特征,在2個(gè)CPU,60G內存的 Windows10 操作系統下,開(kāi)18個(gè)線(xiàn)程程訓練耗時(shí)20分鐘。因此作者建議大家使用liblinear庫訓練超大文 本,或增加計算機內存。

對比及總結

本文重點(diǎn)解析了車(chē)輛檢測的特征計算部分,以及簡(jiǎn)要介紹SVM的分類(lèi)策略。建議HOG特征用 于車(chē)輛檢測時(shí),采用大于1000維度特征,9個(gè)bin的無(wú)方向插值法,特征分布不均勻務(wù)必采用 正則化處理;SVM可根據需要選擇核函數,必要時(shí)可以選用LibSVM庫訓練基于超大數據量的 模型。 SVM 的內核函數機制將低維度空間映射到高維度空間有效解決了線(xiàn)性不可分的難題,SVM的 計算復雜度由支持向量的個(gè)數決定,而幸運的是,最終決策函數由少量支持向量決定。SVM 同樣有其局限性,如果不使用LiBSVM/Liblinear開(kāi)源庫,單純的SVM對大型數據的處理非常 困難,因為SVM在計算過(guò)程中涉及矩陣計算,其行數列數由樣本數量決定,大型樣本在計算 過(guò)程中消耗大量時(shí)間和空間。同理,實(shí)踐過(guò)程中,對于是否選擇HOG也要雙向考慮優(yōu)缺點(diǎn)優(yōu) 點(diǎn)。這里對其優(yōu)缺點(diǎn)做總結以便讀者做參考:

優(yōu)點(diǎn):HOG是在局部的單元上做檢測,能較好地捕捉局部形狀信息,而忽略光照,色 彩等因素,例如車(chē)輛檢測中可以忽略車(chē)的色彩因素,從而降低所需要的特征維度,而 且因為對光照的若敏感度,即使車(chē)輛存在遮擋的部分也可以檢測出。

缺點(diǎn):HOG不擅長(cháng)處理遮擋問(wèn)題,車(chē)輛方向改變也不易檢測;因為梯度的性質(zhì),HOG 對噪點(diǎn)相當敏感,因此在實(shí)際應用中,在 block 和 cell分割成局部區域單元之后,通常 有必要做㇐次高斯平滑去除噪點(diǎn)。對特征維度的確定(細胞,塊,步長(cháng)的確定)要求 高,實(shí)際工作中需反復設計方案實(shí)驗得出最優(yōu)解。

以上是本文的主要內容,希望給讀者㇐個(gè)清晰的思路。盡管SVM與HOG的結合計算量大,但 是成本較低,模型的訓練也基于CPU就可以進(jìn)行,深受中小型產(chǎn)品研發(fā)企業(yè)的青睞,例如車(chē) 載攝像頭等小部件的研發(fā)與產(chǎn)出,在保證可用性的前提下價(jià)格方面會(huì )親民許多。


參考文獻

https://blog.csdn.net/u011285477/article/details/50974230
https://www.learnopencv.com/histogram-of-oriented-gradients/
https://www.stat.purdue.edu/~pan ... _HumanDetection.pdf
https://www.csie.ntu.edu.tw/~cjlin/libsvm/
https://blog.csdn.net/u011448029/article/details/11709443


文章來(lái)源:貿澤電子

作者簡(jiǎn)介:王晶是一名機器學(xué)習算法工程師,目前在汽車(chē)檢測領(lǐng)域工作。熱衷于技術(shù)文章的創(chuàng )作。她希望她的文章能引起讀者們對人工智能的興趣,以激勵更多的專(zhuān)業(yè)人員致力于這個(gè)領(lǐng)域,將AI與云技術(shù)和大數據結合起來(lái),以使人們的生活更加安全便捷。
本文地址:http://selenalain.com/thread-606083-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页