基於機器視覺和級聯分類器的車輛檢測和預警方法與流程
2023-05-29 00:33:01 1
本發明涉及車距智能測量與計算技術領域,具體地說,涉及一種基於機器視覺和級聯分類器的車輛檢測和預警方法。
背景技術:
目前,駕駛員在行車過程中,由於駕駛疲勞等原因,常常需要一種有效在快速行車的過程中進行碰撞預警的工具,進行碰撞預警,首先要解決實時測距問題,目前常用的測距方式有四種:超聲波測距,毫米波雷達測距,雷射測距,攝像系統測距。
超聲波測距是指利用發射和接收超聲波的時差計算出目標的距離的方法。超聲波測距儀有著原理簡單,製作方便,成本比較低的優點。但受環境影響較大,且不適於長距離測距。
雷達是利用目標對電磁波反射來發現目標並測定其位置的。作為長距離傳感器,雷達測距有著探測性能穩定,不易受對象特徵影響,環境適應性好的優點,但是成本較高。
雷射測距儀根據雷射束傳播時間確定距離,具有測量時間短、量程大、精度高等優點,但是對穩定性、可靠性要求較高,體積也受到限制,同時成本也較高。
攝像系統測距通常採用雙目系統,利用兩臺攝像機同時對同一景物成像,通過對兩幅圖像分析處理,可確定物體的三維坐標。雙目系統有著測量精度高、尺寸小、功耗低、動態範圍大、光計量準確等優良特性,但其價格較高,成像速度慢,且受硬體的制約。
以上幾種方法存在精度較差,成本較高,功能單一,需要加裝昂貴硬體設備,成像速度慢,受環境影響較大等缺點,並不適用於遠距離實時測速與實時碰撞預警,因此,目前駕駛員迫切需要一種使用方便、有效在快速行車的過程中進行碰撞預警的工具。
技術實現要素:
本發明是一種基於機器視覺技術通過級聯分類器對縱向移動車輛檢測跟蹤並實時預警的方法,克服現有技術中的不足,提高了在現實環境中對移動目標的識別效率並增強了在複雜環境下對運動目標的檢測和追蹤能力。
本發明的技術方案是:一種基於機器視覺和級聯分類器的車輛檢測和預警方法,包括如下步驟:
A. 利用經過剪輯的市面上已知車型的汽車圖片進行正負樣本的級聯分類器訓練;
B. 通過大量實測數據建立識別框寬度與現實距離的數學模型;
C. 實時圖像獲取;
D. 圖像預處理,框定感興趣區域;
E. 對感興趣區域進行目標識別;
F. 對識別結果進行數據分析,從而篩選和跟蹤目標;
G. 對跟蹤目標進行識別框移動平均濾波處理;
H. 計算識別目標的實際距離,通過幀差時間和實際距離差計算車輛的移動速度,以此獲得可能發生碰撞的時間並顯示預警信息。
其中,所述分類器基於車輛尾部的LBP特徵訓練得到的。
步驟B中,數學模型按以下方式建立:通過大量實測數據,得到實體與圖像中寬度和距離的相關關係並進行擬合函數誤差分析,確定測距數學模型。
步驟D中,按以下程序進行:
a. 將原始圖片轉化為OPENCV可處理的Mat對象;
b. 對mat對象縮放和灰度處理;
c. 對灰度圖像進行灰度直方圖均衡化;
d. 使用mask遮罩圖像對非感興趣區域實現圖像覆蓋,從而縮小感興趣區域以降低複雜環境對分類器識別的幹擾。
步驟E中包括目標排序與車輛前方檢測過程,具體如下:
目標排序指按照目標到自己的距離遠近進行排序,目標的距離遠近與機器視覺中識別車輛的y坐標值相對應,距離越遠,其識別框的y值越大,通過對比識別框的y坐標值進行排序;
車輛前方檢測指的是前方在縱向行駛過程可能對自己造成威脅的車輛,這裡通過已知的自己車輛寬度對應視頻中的橫向寬度作為三角形的兩個底點,將視頻中的道路無窮遠處視為三角形的頂點,連接三個點構成三角形,當識別框與該檢測三角形發生碰撞時視為前方車輛,以此篩選出前方對自己可能造成威脅的車輛,同時按照識別框y坐標值排序,找到距離自己最近的車輛。
步驟F中,通過上一幀與下一幀的識別框坐標進行對比,採用歐氏距離計算兩個坐標的距離,當距離在閾值範圍內視為同一輛車,這裡取閾值為車輛識別框寬度的二分之一;採用移動平均濾波處理方法對識別寬度進行平滑處理,對追蹤到的車輛將其前四幀的識別寬度計算平均值;
其中,在對識別框平滑處理前進行預處理,具體過程如下:將當前幀的識別框寬度與上一幀的識別框寬度對比,當兩幀識別框寬度差超過上一幀寬度的0.1時,將該幀識別框寬度調整為當前幀識別框寬度與上一幀識別框寬度的平均值。
本發明所提供的基於機器視覺和級聯分類器的車輛檢測和預警方法,具有以下優點:
第一:本發明的方法通過利用正負樣本訓練級聯分類器、實時圖像獲取、圖像預處理、目標識別、目標跟蹤和篩選、目標預警等過程,有效提高了在現實環境中對移動目標的識別效率並增強了在複雜環境下對運動目標的檢測和追蹤能力;
第二:在應用上,使駕駛員在行車過程中利用單目攝像頭即可協助駕駛員對車距進行識別和測量,有效提示駕駛員保持車距,減少追尾事故發生;
第二、該算法簡單實用,既可以作為獨立的手機軟體下載使用,也可以封裝進行車記錄儀,讓行車記錄儀有碰撞預警的功能,真正成為駕駛員的幫手,只需要Android手機或PC平臺加上普通攝像頭即可實現測速測距功能,無需加裝其它硬體設備,在智慧型手機和車載安卓導航系統遍地開花的今天,成本低廉,普及性好,可視化程度好。
附圖說明
圖1為本發明的方法流程示意圖;
圖2為本發明應用中的工作流程示意圖。
具體實施方式
下面結合附圖及實施例對本發明的基於機器視覺和級聯分類器的車輛檢測和預警方法作進一步詳細的說明。
如圖1、圖2所示,本發明提供的是一種基於單目攝像頭的智能測距方法,通過機器視覺捕捉前方車輛並進行圖像處理,得到汽車的位置變化信息從而達到預防車輛追尾的功能,本發明的具體方法可以概括為:
(1)利用正負樣本訓練級聯分類器;
(2)實時圖像獲取;
(3)圖像預處理;
(4)目標識別;
(5)目標跟蹤和篩選;
(6)目標預警。
其中圖像的獲取是指通過攝像頭獲取幀圖片,調用OPENCV庫處理圖片,具體處理流程如下:首先將獲取的圖片縮放處理,這裡縮放值需要綜合考慮識別精度和識別速率,當縮放值增大時,識別精度降低,識別速率加快,當縮放值減小時,識別精度增加,識別速率降低,所以可以通過查看識別效果來確定縮放值。之後需要對縮放後的圖片進行灰度處理,用於提高識別速率。由於灰度處理的圖片對比度不高,不利於分類器的識別,所以在分類器識別之前需要對灰度圖片進行灰度直方圖均衡化,經過調試發現圖片中有一部分並不需要識別,比如圖片的左右框和上框,因為這些區域不會有車輛出現或出現的車輛不會造成威脅,所以在分類器識別之前需要將該區域塗色來縮小感興趣區域以加快識別速度。此時處理的圖片已經可以用於分類器識別,經過對多種分類器的訓練和檢測,綜合考慮識別精度和識別速率後,我們決定使用LBP分類器對處理圖片進行檢測識別。
目標識別的算法主要包括:目標排序算法、車輛前方檢測算法、車輛的追蹤算法、識別框寬度的平滑處理算法。其中目標排序指的是按照目標到自己的距離遠近進行排序,目標的距離遠近與機器視覺中識別車輛的y坐標值相對應,距離越遠,其識別框的y值越大,所以可以通過對比識別框的y坐標值進行排序;車輛前方檢測指的是前方在縱向行駛過程可能對自己造成威脅的車輛,這裡通過已知的自己車輛寬度對應視頻中的橫向寬度作為三角形的兩個底點,將視頻中的道路無窮遠處視為三角形的頂點,連接三個點構成三角形,當識別框與該檢測三角形發生碰撞時視為前方車輛,以此篩選出前方對自己可能造成威脅的車輛,同時按照識別框y坐標值排序,找到距離自己最近的車輛;車輛追蹤算法是指通過上一幀與下一幀的識別框坐標進行對比,採用歐氏距離計算兩個坐標的距離,當距離在閾值範圍內視為同一輛車,這裡取閾值為車輛識別框寬度的二分之一;由於識別過程一直處於動態變化中,識別寬度並不能完全剛好包含車輛,所以需要對識別寬度進行平滑處理,這裡採用的是移動平均濾波處理方法,對追蹤到的車輛將其前四幀的識別寬度計算平均值。為了防止一些識別誤差較大的識別框出現,需要在對識別框平滑處理前進行預處理,可以採用的是將當前幀的識別框寬度與上一幀的識別框寬度對比,當兩幀識別框寬度差超過上一幀寬度的0.1時,將該幀識別框寬度調整為當前幀識別框寬度與上一幀識別框寬度的平均值。
識別距離方面,我們採用了高清攝像頭附帶凸透鏡放大的方式獲取圖片並在圖片預處理方面對遠處局部區域放大的方式以增加識別距離,通過程序調試已經滿足80米內車輛的識別,由於現實生活中對我們有影響的車輛不會超過80米,通過這種方式已經解決了識別距離不足的問題。
預警系統採用了三級預警機制:當前方檢測到車輛時即觸發三級預警;當前方距自己最近的車輛距離低於20米時觸發二級預警;當前方車輛相對自己的速度可能發生碰撞的時間低於2秒時即觸發一級預警。其中距離的計算方式為:採用固定解析度的攝像頭經過多次實測數據擬合出識別框寬度與實際距離的關係表達式,這裡我們得到的關係式: ,其中dist表示實際距離,width為識別框的寬度,k是個與攝像頭解析度相關的常係數,通過得到的關係式再帶入平滑處理後的識別框寬度即可獲得識別車輛的實際距離。識別車輛的速度計算方式為:將當前幀跟蹤的車輛距離減去上一幀同一跟蹤的車輛的距離作為位移差,將當前幀的系統時間減去上一幀的系統時間作為時間差,用位移差除以時間差即可獲得車輛的瞬時速度。與前方跟蹤車輛可能的碰撞時間計算為:首先判斷當前跟蹤車輛的速度,如果為負,表示跟蹤車輛在遠離自己,無需計算可能碰撞時間,如果為正,表示跟蹤車輛在靠近自己,可以採用當前幀跟蹤車輛的距離除以其瞬時速度即可獲得可能碰撞的時間。
本發明只需要Android手機或PC平臺加上普通攝像頭即可實現測速測距功能,無需加裝其它硬體設備。在智慧型手機和車載安卓導航系統遍地開花的今天,成本低廉,普及性好,可視化程度好。
實施例1,具體實施過程:
參照圖1,利用本發明的方法在行駛過程中進行智能測距預警的工作步驟按如下進行:步驟一:對經過剪輯的市面上已知車型的汽車圖片進行Adaboost的訓練,獲取汽車的特徵信息,並保存成xml文件;訓練的過程原理如下:
A:通過對N個訓練樣本的學習得到第一個弱分類器;
B :將分錯的樣本和其他的新數據一起構成一個新的N個的訓練樣本,通過對這個樣本的學習得到第二個弱分類器 ;
C.:將1和2都分錯了的樣本加上其他的新樣本構成另一個新的N個的訓練樣本,通過對這個樣本的學習得到第三個弱分類器;
D:一直訓練樣本,直至選出的最佳弱分類器滿足預定條件,結束訓練過程。
將訓練結果保存成XML可擴展標記語言,用於標記電子文件使其具有結構性,提供統一的方法來描述和交換獨立於應用程式或供應商的結構化數據。
步驟二:圖像採集與預處理,啟動單目攝像頭採集圖像信息,對採集圖像信息進行去噪、平滑濾波預處理;
步驟三:利用步驟一中訓練過的XML文件,對獲取的圖像進行車輛識別,將每個識別出來的車輛進行定位;
步驟四:確定正前方的車輛,對圖像進行像素點分析測量,計算出車輛到本車的相對距離信息,處理速度優選為20幀/秒;
步驟五:與前一幀的距離信息進行對比,獲取相對速度;
步驟六:利用當前時刻的相對距離除以相對速度,計算出預計相撞時間,如果獲取的值低於設定閾值,則觸發碰撞預警警報或輸出信號至制動系統進行減速或制動,如果高於閾值,則繼續檢測。
本發明只需要Android手機或PC平臺加上普通攝像頭即可實現測速測距功能,無需加裝其它硬體設備。在智慧型手機和車載安卓導航系統遍地開花的今天,成本低廉,普及性好,可視化程度好。
以上所述者,僅為本發明的較佳實施例而已,不能以此限定本發明實施的範圍,即但凡依本發明申請專利範圍及發明說明內容所作的簡單的等效變化與修飾,皆仍屬本發明專利涵蓋的範圍內。