本發(fā)明涉及車輛檢測技術(shù)領(lǐng)域,更具體地說,涉及一種基于機(jī)器視覺和機(jī)器學(xué)習(xí)的運(yùn)動車輛檢測算法。
背景技術(shù):
車輛檢測是汽車輔助駕駛系統(tǒng)中的一個研究重點(diǎn)。目前基于視覺傳感器的車輛檢測方法主要分為以下三種方法:基于先驗知識的方法、基于運(yùn)動信息的方法以及基于機(jī)器學(xué)習(xí)算法的方法。
基于先驗知識的車輛檢測方法主要是指使用車底陰影、車尾燈、車體水平(豎邊緣、車體角點(diǎn)信息)及車體對稱性等簡單的車輛圖像特征對車輛感興趣區(qū)域進(jìn)行確定。這種方法雖然時間花費(fèi)少但檢測精度低,誤檢、漏檢率較高?;谶\(yùn)動信息典型的方法就是光流場法。光流法是通過攝像頭移動形成的光流和車輛運(yùn)動造成的光流場的差異來確定車輛信息。光流法由于其計算量很大,導(dǎo)致實時性較差,并且遠(yuǎn)距離光流場較弱,容易造成漏檢和誤檢?;跈C(jī)器學(xué)習(xí)的車輛檢測方法主要是將車輛特征用相應(yīng)的描述子進(jìn)行表示,然后使用機(jī)器學(xué)習(xí)方法對樣本的特征集進(jìn)行訓(xùn)練,最后用訓(xùn)練得到的分類器進(jìn)行車輛檢測?;跈C(jī)器學(xué)習(xí)的方法檢測精度較高,對環(huán)境適應(yīng)性好,但對硬件要求較高,對整幅圖象用不同大小窗口進(jìn)行遍歷計算量較大。
由于車輛自身的復(fù)雜變化,包括車輛快速運(yùn)動、車輛尺度變化、車輛旋轉(zhuǎn)、姿態(tài)變化和車輛受相似物干擾、車輛部分甚至全部遮擋等,以及復(fù)雜的外部環(huán)境,如攝像頭移動、抖動、光線變化和惡劣的雨雪天氣等,使得車輛目標(biāo)的準(zhǔn)確檢測仍然存在諸多難點(diǎn)。針對上述情況,設(shè)計一種同時滿足精確性和實時性的車輛檢測算法顯得十分必要。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題在于,提供一種基于機(jī)器視覺和機(jī)器學(xué)習(xí)的運(yùn)動車輛檢測算法。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:構(gòu)造一種基于機(jī)器視覺和機(jī)器學(xué)習(xí)的運(yùn)動車輛檢測算法,包括以下步驟:
步驟s010,通過安裝在車輛內(nèi)后視鏡下的攝像頭采集道路前方場景視頻流,從視頻流中獲取當(dāng)前幀的數(shù)據(jù);
步驟s020,提取車輛假設(shè)區(qū)域;
步驟s030,驗證車輛假設(shè)區(qū)域。
優(yōu)選地,在上述步驟s020中,包括以下步驟:
步驟s021,對攝像頭讀入的每一幀圖像進(jìn)行感興趣區(qū)域的劃分,將圖像垂直方向從下到上1/3圖像大小的區(qū)域剔除;
步驟s022,采用加權(quán)平均法對步驟s021處理后的彩色圖像進(jìn)行灰度處理;
步驟s023,對灰度圖像進(jìn)行圖像去噪;
步驟s024,對去噪后的圖像進(jìn)行圖像閾值分割;
步驟s025,對二值化圖像進(jìn)行形態(tài)學(xué)處理;
步驟s026,選用面積和矩形度兩種特征描述子來剔除形態(tài)學(xué)處理后的圖像中非目標(biāo)區(qū)域;
步驟s027,提取并合并陰影線。
優(yōu)選地,在上述步驟s030中,包括以下步驟:
步驟s031,圖像預(yù)處理;
步驟s032,提取特征;
步驟s033,離線訓(xùn)練分類器;
步驟s034,測試分類器;
步驟s035,應(yīng)用經(jīng)步驟s033訓(xùn)練和步驟s034測試的分類器對步驟s020提取到的車輛假設(shè)區(qū)域進(jìn)行驗證;
步驟s036,輸出帶框車輛的圖像序列。
進(jìn)一步地,在上述步驟s023中,采用中值濾波來進(jìn)行圖像去噪,對鄰域內(nèi)的采樣數(shù)據(jù)進(jìn)行排序后取中值來替代中心像素灰度值。
進(jìn)一步地,在上述步驟s024中,先將灰度圖像使用canny算子進(jìn)行邊緣檢測來提取圖像邊緣特征,沿垂直方向從圖像底部進(jìn)行掃描,把灰度值突變前的區(qū)域作為路面區(qū)域,然后計算出路面區(qū)域的均值和標(biāo)準(zhǔn)差,最后選取閾值為均值減去3倍的標(biāo)準(zhǔn)差來進(jìn)行二值化。
進(jìn)一步地,在上述步驟s027中,將二值圖像從上到下、從左到右依次掃描,對于每一行像素,若像素點(diǎn)滿足f(x-1,y)-f(x,y)==1&&f(x,y)-f(x+1,y)==0,則將其標(biāo)記為lstart,若像素點(diǎn)滿足f(x,y)-f(x-1,y)==0&&f(x+1,y)-f(x,y)==1,則將其標(biāo)記為lend;然后設(shè)定陰影線長度為length=lend-lstart,圖像和實際車輛的關(guān)系為
進(jìn)一步地,在上述步驟s031中,按
進(jìn)一步地,在上述步驟s032中,選用水平和垂直的haar-like邊緣特征以及水平和垂直的haar-like線性特征來作為分類器的特征向量。
進(jìn)一步地,在上述步驟s033中,采用監(jiān)督型機(jī)器學(xué)習(xí)算法adaboost離線訓(xùn)練分類器,首先賦予每一個訓(xùn)練樣本相同的一個權(quán)重,迭代初始各樣本比重均等,在迭代運(yùn)算的過程中,各樣本的權(quán)重值大小由樣本是否被正確分類所決定,當(dāng)樣本被錯誤分類時,將增加其權(quán)重值,反之,則減少其權(quán)重值,實現(xiàn)被錯誤分類的樣本在后續(xù)迭代運(yùn)算的過程更被關(guān)注;構(gòu)建弱分類器的流程如下:對于n個樣本、m個特征的樣本數(shù)據(jù),首先對于每一個特征,計算n個樣本在該特征下的特征值,然后將特征值從小到大排序,計算選取某個特征值作為分類閾值時的分類錯誤率,選取錯誤率最小的的特征為該弱分類器的特征。
進(jìn)一步地,在上述步驟s034中,首先輸入正負(fù)車輛樣本集,然后對圖像進(jìn)行預(yù)處理,再提取圖像的haar-like特征,隨后將特征向量輸入adaboost來訓(xùn)練得到分類器。
實施本發(fā)明一種基于機(jī)器視覺和機(jī)器學(xué)習(xí)的運(yùn)動車輛檢測算法,具有以下有益效果:
本發(fā)明所設(shè)計的運(yùn)動車輛檢測方法精度高,計算過程簡單,魯棒性好,較好地提高了車輛實時檢測的速度和準(zhǔn)確度。
附圖說明
下面將結(jié)合附圖及實施例對本發(fā)明作進(jìn)一步說明,附圖中:
圖1為本發(fā)明實施例整個車輛檢測算法的流程圖;
圖2為本發(fā)明實施例車輛檢測算法中加權(quán)所得灰度圖;
圖3為本發(fā)明實施例車輛檢測算法中提取到的車輛前方的路面區(qū)域;
圖4為本發(fā)明實施例車輛檢測算法中路面像素灰度值分布圖;
圖5為本發(fā)明實施例車輛檢測算法中經(jīng)過閾值分割之后的二值化圖像;
圖6為本發(fā)明實施例車輛檢測算法中二值圖經(jīng)過形態(tài)化處理之后圖像;
圖7為本發(fā)明實施例車輛檢測算法中剔除不合適區(qū)域之后的圖像;
圖8為本發(fā)明實施例車輛檢測算法中剔除不合適線段之后的圖像;
圖9為本發(fā)明實施例車輛檢測算法中合并陰影線之后的圖像;
圖10為本發(fā)明實施例車輛檢測算法中車輛假設(shè)區(qū)域產(chǎn)生后的圖像;
圖11為本發(fā)明實施例車輛檢測算法中車輛假設(shè)區(qū)域驗證后的圖像;
圖12為本發(fā)明實施例車輛檢測算法中分類器訓(xùn)練的流程圖;
圖13為本發(fā)明實施例車輛檢測算法中分類器測試的流程圖。
具體實施方式
為了對本發(fā)明的技術(shù)特征、目的和效果有更加清楚的理解,現(xiàn)對照附圖詳細(xì)說明本發(fā)明的具體實施方式。
如圖1所示,本發(fā)明提供一種基于機(jī)器視覺和機(jī)器學(xué)習(xí)的運(yùn)動車輛檢測算法,包括以下步驟:
步驟s010,通過安裝在車輛內(nèi)后視鏡下的攝像頭采集道路前方場景視頻流,從視頻流中獲取當(dāng)前幀的數(shù)據(jù)。
步驟s020,提取車輛假設(shè)區(qū)域。在步驟s020中,包括以下步驟:
步驟s021,對攝像頭讀入的每一幀圖像進(jìn)行感興趣區(qū)域的劃分。由于攝像頭本身的垂直視角的關(guān)系,攝像頭獲取的原始圖像會包含一部分車輛自身的部分,這部分在車輛檢測中是無用的,因此首先把它去掉。在本實施例中,將圖像垂直方向從下到上1/3圖像大小的區(qū)域去掉,具體劃分區(qū)域的參數(shù)大小可根據(jù)攝像頭安裝位置及車型選取。
步驟s022,采用加權(quán)平均法對步驟s021處理后的彩色圖像進(jìn)行灰度處理。由于攝像頭獲取的原始圖像為rgb的真彩色圖像,雖然包含信息豐富,但在后續(xù)算法中是沒有必要的,因此我們把它轉(zhuǎn)化為單通道的灰度圖。人眼對三原色的敏感度從高到低分別是綠、紅、藍(lán),因此為了得到最符合人眼感觀的灰度圖,在本實施例中,選用加權(quán)平均法來將彩色圖像轉(zhuǎn)化為灰度圖,具體轉(zhuǎn)化關(guān)系為:r=g=b=0.299r+0.587g+0.114b。
步驟s023,對灰度圖像進(jìn)行圖像去噪。由于攝像頭本身的精度和外界環(huán)境的影響,圖像中一般會夾雜一些不必要的噪聲對目標(biāo)檢測產(chǎn)生影響。因此,在目標(biāo)檢測之前要對圖像進(jìn)行去噪處理。在本實施例中,采用中值濾波來進(jìn)行圖像去噪,這種算法在有效去除噪聲的同時還能夠最大限度地保留圖像的邊緣細(xì)節(jié)信息。這種算法對鄰域內(nèi)的采樣數(shù)據(jù)進(jìn)行排序后取中值來替代中心像素灰度值。
步驟s024,對去噪后的圖像進(jìn)行圖像閾值分割。為了得到待處理圖像中的車底陰影從而來提取車輛假設(shè)區(qū)域。在本實施例中,采用改進(jìn)后的路面閾值法:先將灰度圖像使用canny算子進(jìn)行邊緣檢測來提取圖像邊緣特征,沿垂直方向從圖像底部進(jìn)行掃描,把灰度值突變前的區(qū)域作為路面區(qū)域,如圖3所示,該區(qū)域的像素灰度值的分布一般服從高斯分布,如圖4所示;然后計算出路面區(qū)域的均值和標(biāo)準(zhǔn)差,最后選取閾值為均值減去3倍的標(biāo)準(zhǔn)差來進(jìn)行二值化,如圖5所示。
步驟s025,對二值化圖像進(jìn)行形態(tài)學(xué)處理。對于二值化分割出的陰影區(qū)域,邊緣可能會出現(xiàn)毛刺或者內(nèi)部斷裂的情況對后續(xù)算法產(chǎn)生影響。因此,在本實施例中,應(yīng)用形態(tài)學(xué)處理中的閉運(yùn)算對陰影區(qū)域進(jìn)行修正,選取結(jié)構(gòu)元素為2*3的矩形結(jié)構(gòu)元素來對二值化圖像進(jìn)行閉運(yùn)算,如圖6所示。
步驟s026,剔除形態(tài)學(xué)處理后的圖像中非目標(biāo)區(qū)域。經(jīng)過陰影閩值分割后的圖像存在一些非車輛底部陰影的區(qū)域,這些區(qū)域會干擾對車輛的定位,因此需要排除這些局部區(qū)域。由于車輛底部陰影輪廓比較接近矩形以及車輛底部陰影的面積不會太大也不會很小。因此,在本實施例中,選用面積和矩形度兩種特征描述子來剔除非目標(biāo)區(qū)域,經(jīng)過大量試驗,面積參數(shù)選為10到1000個像素的面積做限定,由于車底陰影有時候不會很規(guī)則,因此選用的矩形度余度比較大,為0.3,最后的效果如圖7所示。
步驟s027,提取并合并陰影線。前方車輛與本車的距離不同致使陰影的水平長度不同,因此可根據(jù)透視投影關(guān)系設(shè)置閾值,將符合條件的車底陰影線保留下來,剔除不滿足條件的噪聲線段。在本實施例中,將二值圖像從上到下、從左到右依次掃描,對于每一行像素,若像素點(diǎn)滿足f(x-1,y)-f(x,y)==1&&f(x,y)-f(x+1,y)==0,則將其標(biāo)記為lstart,若像素點(diǎn)滿足f(x,y)-f(x-1,y)==0&&f(x+1,y)-f(x,y)==1,則將其標(biāo)記為lend;然后設(shè)定陰影線長度為length=lend-lstart,根據(jù)透視投影原理,圖像和實際車輛的關(guān)系為
步驟s030,驗證車輛假設(shè)區(qū)域。在步驟s030中,包括以下步驟:
步驟s031,圖像預(yù)處理。按
步驟s032,提取特征。分類器的訓(xùn)練需要樣本特征作為輸入。在本實施例中,選用haar-like特征來作為分類器的特征向量,因為haar-like特征具有計算速度快,對邊緣特征明顯的剛體目標(biāo)有較好的檢測率。優(yōu)選地,選用四類haar-like特征,包括水平和垂直的haar-like邊緣特征以及水平和垂直的haar-like線性特征。
步驟s033,離線訓(xùn)練分類器。在本實施例中,采用監(jiān)督型機(jī)器學(xué)習(xí)算法adaboost離線訓(xùn)練分類器,首先賦予每一個訓(xùn)練樣本相同的一個權(quán)重,迭代初始各樣本比重均等,在迭代運(yùn)算的過程中,各樣本的權(quán)重值大小由樣本是否被正確分類所決定,當(dāng)樣本被錯誤分類時,將增加其權(quán)重值,反之,則減少其權(quán)重值。這樣權(quán)值的改變使得算法在后續(xù)的運(yùn)行過程中將更關(guān)注于被錯誤分類的樣本,從而提高分類器的性能。構(gòu)建弱分類器的流程如下:對于n個樣本、m個特征的樣本數(shù)據(jù),首先對于每一個特征,計算n個樣本在該特征下的特征值,然后將特征值從小到大排序,計算選取某個特征值作為分類閾值時的分類錯誤率,選取錯誤率最小的的特征為該弱分類器的特征。分類器的訓(xùn)練流程如圖12所示:首先輸入正負(fù)車輛樣本集,然后對圖像進(jìn)行預(yù)處理,再提取圖像的haar-like特征,隨后將特征向量輸入adaboost來訓(xùn)練得到分類器。
步驟s034,測試分類器。測試分類器的實際分類性能,若檢測率不滿足要求,則需要調(diào)整樣本集以及特征量的選擇,重復(fù)步驟s033直至分類器滿足要求。分類器的測試流程如圖13所示:首先輸入測試樣本集,然后對圖像進(jìn)行預(yù)處理,再提取圖像的haar-like特征,隨后將特征向量導(dǎo)入分類器模型,最后輸出分類結(jié)果。
步驟s035,應(yīng)用經(jīng)步驟s033訓(xùn)練和步驟s034測試的分類器對步驟s020提取到的車輛假設(shè)區(qū)域進(jìn)行驗證,將驗證為非車區(qū)域的信息剔除,保留車輛位置信息,最后得到的結(jié)果如圖11所示。
步驟s036,輸出帶框車輛的圖像序列。最后在視頻幀中輸出檢測到車輛的圖像及其位置信息,供后續(xù)fcw、aeb等功能的使用。
上面結(jié)合附圖對本發(fā)明的實施例進(jìn)行了描述,但是本發(fā)明并不局限于上述的具體實施方式,上述的具體實施方式僅僅是示意性的,而不是限制性的,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的啟示下,在不脫離本發(fā)明宗旨和權(quán)利要求所保護(hù)的范圍情況下,還可做出很多形式,這些均屬于本發(fā)明的保護(hù)之內(nèi)。