本發(fā)明涉及車載電子技術(shù),尤其涉及一種測量前方車輛距離的方法和裝置。
背景技術(shù):
基于單目前向攝像頭的車輛測距是智能汽車駕駛中的前向防碰撞預(yù)警系統(tǒng)的關(guān)鍵技術(shù)之一,對于保持車距、車道變換以及前車碰撞預(yù)警都有著重要的作用。相對于激光雷達(dá)測距、雙目視覺測距以及其他測距方法,基于單目攝像頭的測距有著成本低廉以及信息豐富的優(yōu)勢。
當(dāng)前,基于單目攝像頭的測距方法主要有:1、根據(jù)圖像中的像素位置和實際距離之間的統(tǒng)計關(guān)系建模,來估算實際距離;該方法無法建立通用的模型,要針對不同車型進行調(diào)試;2、利用攝像頭成像原理,以及近大遠(yuǎn)小的原理,對車輛進行建模,進而估算實際距離,但不能計算出確切的距離數(shù)據(jù);3、利用道路特征和本車在車道中的位置來計算前車的距離,對于道路特征有較強的依賴性,不能通用推廣。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提出一種測量前方車輛距離的方法和裝置,能夠測量前方的車輛與本車的距離,為駕駛員提供參考。
為達(dá)此目的,本發(fā)明采用以下技術(shù)方案:
一方面,本發(fā)明提供一種測量前方車輛距離的方法,包括:
對單目前向攝像頭進行標(biāo)定得到圖像坐標(biāo)與物理坐標(biāo)之間的投影變換矩陣;
通過單目前向攝像頭獲取車輛前方的圖像;
提取前方車輛的邊緣信息,得到表示邊緣的矩形;
根據(jù)所述邊緣信息和預(yù)設(shè)車體模型計算前方車輛的第一實際距離;
根據(jù)所述邊緣信息和所述投影變換矩陣,計算前方車輛的第二實際距離;
根據(jù)所述第一實際距離和所述第二實際距離計算前方車輛距離。
其中,對單目前向攝像頭進行標(biāo)定得到圖像坐標(biāo)與物理坐標(biāo)之間的投影變換矩陣,包括:
通過所述單目前向攝像頭獲取標(biāo)定物的標(biāo)定圖像;
獲取標(biāo)定物的標(biāo)定點的物理坐標(biāo)和在標(biāo)定圖像上的圖像坐標(biāo);
計算圖像坐標(biāo)與物理坐標(biāo)之間的投影變換矩陣。
其中,根據(jù)所述邊緣信息和所述投影變換矩陣,計算前方車輛的第二實際距離,包括:
獲得所述矩形的下邊緣的平均坐標(biāo);
根據(jù)所述投影變換矩陣計算所述平均坐標(biāo)對應(yīng)的實際坐標(biāo);
從所述實際坐標(biāo)中獲取前方車輛的第二實際距離。
其中,根據(jù)所述第一實際距離和所述第二實際距離計算前方車輛距離,包括:
設(shè)置所述第一實際距離的第一權(quán)重和所述第二實際距離的第二權(quán)重;
前方車輛距離=第一實際距離*第一權(quán)重+第二實際距離*第二權(quán)重。
其中,設(shè)置所述第一實際距離的第一權(quán)重和所述第二實際距離的第二權(quán)重,包括:
所述第一權(quán)重和所述第二權(quán)重的初始值均為0.5;
根據(jù)所述第一實際距離和所述圖像的上一幀的前方車輛距離,計算所述圖像的當(dāng)前幀的第一權(quán)重;
第二權(quán)重=1-所述第一權(quán)重。
其中,提取前方車輛的邊緣信息,得到表示邊緣的矩形,包括:
通過樣本訓(xùn)練得到車輛的lbp特征;
根據(jù)所述lbp特征識別前方車輛在圖像中的位置;
通過sobel算子進行邊緣檢測,在所述位置提取前方車輛的上邊緣和下邊緣;
對所述位置進行閾值二值化后,提取前方車輛的左邊緣和右邊緣;
所述上邊緣、所述下邊緣、所述左邊緣和所述右邊緣圍成表示邊緣的矩形。
另一方面,本發(fā)明提供一種測量前方車輛距離的裝置,包括:
標(biāo)定模塊,用于對單目前向攝像頭進行標(biāo)定得到圖像坐標(biāo)與物理坐標(biāo)之間的投影變換矩陣;
單目前向攝像頭,用于獲取車輛前方的圖像;
邊緣檢測模塊,用于提取前方車輛的邊緣信息,得到表示邊緣的矩形;
第一距離計算模塊,用于根據(jù)所述邊緣信息和預(yù)設(shè)車體模型計算前方車輛的第一實際距離;
第二距離計算模塊,用于根據(jù)所述邊緣信息和所述投影變換矩陣,計算前方車輛的第二實際距離;
融合計算模塊,用于根據(jù)所述第一實際距離和所述第二實際距離計算前方車輛距離。
進一步的,所述單目前向攝像頭還用于獲取標(biāo)定物的標(biāo)定圖像;
所述標(biāo)定模塊具體用于獲取標(biāo)定物的標(biāo)定點的物理坐標(biāo)和在標(biāo)定圖像上的圖像坐標(biāo);計算圖像坐標(biāo)與物理坐標(biāo)之間的投影變換矩陣。
其中,所述第二距離計算模塊具體用于:
獲得所述矩形的下邊緣的平均坐標(biāo);
根據(jù)所述投影變換矩陣計算所述平均坐標(biāo)對應(yīng)的實際坐標(biāo);
從所述實際坐標(biāo)中獲取前方車輛的第二實際距離。
其中,所述融合計算模塊具體用于:
設(shè)置所述第一實際距離的第一權(quán)重和所述第二實際距離的第二權(quán)重;
計算前方車輛距離,所述前方車輛距離=第一實際距離*第一權(quán)重+第二實際距離*第二權(quán)重。
本發(fā)明的有益效果為:
通過單目前向攝像頭采集車輛前方的圖像,通過成像原理,根據(jù)車體模型估算前車的距離;再通過對攝像頭進行標(biāo)定,根據(jù)圖像坐標(biāo)系與世界坐標(biāo)系的投影關(guān)系,計算前車的距離;將獲得的兩個距離值進行融合,得到一個接近實際距離的值,供駕駛員參考。本發(fā)明基于單目攝像頭進行測距,成本低,調(diào)試簡單,兼容不同的攝像頭安裝位置、拍攝角度和車型,并且克服了現(xiàn)有技術(shù)中采用單目攝像頭測距不準(zhǔn)確的缺陷,為駕駛員提供駕駛輔助,保證駕駛安全。
附圖說明
圖1是本發(fā)明實施例一提供的測量前方車輛距離的方法的流程圖;
圖2是本發(fā)明實施例一中標(biāo)定物的放置位置示意圖;
圖3是本發(fā)明實施例二提供的測量前方車輛距離的裝置的結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明解決的技術(shù)問題、采用的技術(shù)方案和達(dá)到的技術(shù)效果更加清楚,下面將結(jié)合附圖對本發(fā)明實施例的技術(shù)方案作進一步的詳細(xì)描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。
實施例一
本實施例提供一種測量前方車輛距離的方法,適用于駕駛中估測前車距離的情形,為駕駛員提供駕駛輔助。該方法由一種測量前方車輛距離的裝置來執(zhí)行,該裝置由軟件和/或硬件實現(xiàn),一般集成于車載電子設(shè)備,如行車記錄儀、汽車中控設(shè)備等。
圖1是本發(fā)明實施例一提供的測量前方車輛距離的方法的流程圖。如圖1所示,所述方法包括如下步驟:
s11,對單目前向攝像頭進行標(biāo)定得到圖像坐標(biāo)與物理坐標(biāo)之間的投影變換矩陣。
預(yù)先在車輛駕駛室的適當(dāng)位置安裝單目前向攝像頭,在車輛的中心線(對稱軸)上,于車輛前方放置多個帶有標(biāo)定點的標(biāo)定物,標(biāo)定物的尺寸和擺放標(biāo)定物的位置根據(jù)需要選擇。本實施例中,標(biāo)定物的擺放位置定為距離車頭2米、3米、4米,小型車輛的標(biāo)定物高度為1.2~1.5m,大型車輛為2.0~2.3m。標(biāo)定物選取黑白棋盤格標(biāo)定板,棋盤格尺寸為30cm*30cm。圖2是本發(fā)明實施例一中標(biāo)定物的放置位置示意圖。
通過單目前向攝像頭獲取標(biāo)定物的標(biāo)定圖像,識別出標(biāo)定物上的標(biāo)定點,建立圖像坐標(biāo)系,各標(biāo)定點的圖像坐標(biāo)為(x,y,z);再參考上述圖像坐標(biāo)系建立世界坐標(biāo)系,根據(jù)實際測量得到各標(biāo)定點的物理坐標(biāo)(u,v,w),將各個標(biāo)定點的圖像坐標(biāo)與物理坐標(biāo)對應(yīng)起來,將他們的對應(yīng)關(guān)系用矩陣表示,得到圖像坐標(biāo)與物理坐標(biāo)之間的投影變換矩陣。
s12,通過單目前向攝像頭獲取車輛前方的圖像。
駕駛過程中,通過攝像頭獲取車輛前方的圖像。
s13,提取前方車輛的邊緣信息,得到表示邊緣的矩形。
通過大量的車輛圖像進行樣本訓(xùn)練得到車輛的lbp特征,根據(jù)所述lbp特征識別前方車輛在圖像中的位置。
通過sobel算子在所述位置進行邊緣檢測,包括:利用sobel算子提取出滿足一定閾值的邊緣點,并進行分割,選取邊緣特征強的目標(biāo)點,這些目標(biāo)點組成邊緣,進而提取出前方車輛的上邊緣和下邊緣。
采用otsu圖像二值化算法,對圖像各像素點的灰度進行統(tǒng)計,得到圖像二值化的閾值,根據(jù)該閾值對所述位置進行閾值二值化后,提取前方車輛的左邊緣和右邊緣。
所述上邊緣、所述下邊緣、所述左邊緣和所述右邊緣圍成車輛邊緣,獲得車輛邊緣的外接矩形。
s14,根據(jù)所述邊緣信息和預(yù)設(shè)車體模型計算前方車輛的第一實際距離。
通過大量的車身寬度與車身高度的車型數(shù)據(jù),對車輛進行建模,得到預(yù)設(shè)車體模型t,t=車身高度/車身寬度,一般情況下,t的值為[0.7,1.5]。根據(jù)步驟s13中獲得的矩形,當(dāng)矩形的高寬比滿足某個t值時,根據(jù)現(xiàn)有的車型數(shù)據(jù),可估計得出前方車輛的車身寬度。
根據(jù)矩形的下邊緣獲取圖像中的前車距離,根據(jù)成像原理,圖像中的前車距離/第一實際距離=矩形寬度/車身寬度,可計算出本車與前方車輛的第一實際距離。
s15,根據(jù)所述邊緣信息和所述投影變換矩陣,計算前方車輛的第二實際距離。
根據(jù)步驟s13中獲得的矩形,統(tǒng)計出矩形的下邊緣的中心點,根據(jù)該點的圖像坐標(biāo)和步驟s11中獲得的投影變換矩陣,計算出該中心點投影到世界坐標(biāo)系的物理坐標(biāo),取物理坐標(biāo)的v的值為第二實際距離。
s16,根據(jù)所述第一實際距離和所述第二實際距離計算前方車輛距離。
設(shè)置所述第一實際距離的第一權(quán)重和所述第二實際距離的第二權(quán)重;所述第一權(quán)重和所述第二權(quán)重的初始值均為0.5;根據(jù)所述第一實際距離和所述圖像的上一幀的前方車輛距離,計算所述圖像的當(dāng)前幀的第一權(quán)重,即當(dāng)前幀的第一權(quán)重=|第一實際距離-上一幀的前方車輛距離|/上一幀的前方車輛距離;第二權(quán)重=1-所述第一權(quán)重。
前方車輛距離=第一實際距離*第一權(quán)重+第二實際距離*第二權(quán)重。
其中,步驟s11包括:
s111,通過所述單目前向攝像頭獲取標(biāo)定物的標(biāo)定圖像。
安裝好單目前向攝像頭,并且放置好標(biāo)定物后,通過所述單目前向攝像頭獲取標(biāo)定物的標(biāo)定圖像。對于不同距離上設(shè)置的標(biāo)定物,分別獲取其標(biāo)定圖像。
s112,獲取標(biāo)定物的標(biāo)定點的物理坐標(biāo)和在標(biāo)定圖像上的圖像坐標(biāo)。
根據(jù)建立的世界坐標(biāo)系,通過測量等手段獲取各標(biāo)定點的物理坐標(biāo)(u,v,w);根據(jù)圖像坐標(biāo)系,從標(biāo)定圖像上獲取各標(biāo)定點的圖像坐標(biāo)(x,y,z)。將圖像坐標(biāo)(x,y,z)對應(yīng)到平面直角坐標(biāo)系(x,y),其中,x=x/z,y=y(tǒng)/z。
s113,計算圖像坐標(biāo)與物理坐標(biāo)之間的投影變換矩陣。
根據(jù)坐標(biāo)的對應(yīng)關(guān)系,有投影矩陣的變換公式:
圖像坐標(biāo)矩陣=物理坐標(biāo)矩陣·投影變換矩陣,即
其中,步驟s15包括:
s151,獲得所述矩形的下邊緣的平均坐標(biāo)。
將表示車輛下邊緣的所有點的坐標(biāo)值取平均值,得到下邊緣的中心點的坐標(biāo),記為平均坐標(biāo)。
s152,根據(jù)所述投影變換矩陣計算所述平均坐標(biāo)對應(yīng)的實際坐標(biāo)。
根據(jù)步驟s11得到的投影變換矩陣,將所述平均坐標(biāo)用矩陣表示并代入上述式一中進行計算,得到表示實際坐標(biāo)的矩陣。
s153,從所述實際坐標(biāo)中獲取前方車輛的第二實際距離。
表示實際坐標(biāo)的矩陣中,對應(yīng)實際坐標(biāo)v值的元素,則為前方車輛距離本車的第二實際距離。
本實施例通過單目前向攝像頭采集車輛前方的圖像,通過成像原理,根據(jù)車體模型估算前車的距離;再通過對攝像頭進行標(biāo)定,根據(jù)圖像坐標(biāo)系與世界坐標(biāo)系的投影轉(zhuǎn)換關(guān)系,估算前車的距離;將獲得的兩個距離值配合相應(yīng)的權(quán)重進行動態(tài)融合,得到一個接近實際距離的值,供駕駛員參考。本實施例基于單目攝像頭進行測距,成本低,調(diào)試簡單,兼容不同的攝像頭安裝位置和拍攝角度,也適用于各種不同車型,并且克服了現(xiàn)有技術(shù)中采用單目攝像頭測距不準(zhǔn)確的缺陷,為駕駛員提供駕駛輔助,保證駕駛安全。
實施例二
本實施例提供一種測量前方車輛距離的裝置,用于執(zhí)行上述實施例所述的測量前方車輛距離的方法,解決相同的技術(shù)問題,達(dá)到相同的技術(shù)效果。該裝置由軟件和/或硬件組成,一般集成于車載電子設(shè)備,如行車記錄儀、汽車中控設(shè)備等,也可作為單獨的測距設(shè)備安裝在汽車的駕駛室。
圖3是本發(fā)明實施例二提供的測量前方車輛距離的裝置的結(jié)構(gòu)示意圖。所述裝置包括:單目前向攝像頭21,標(biāo)定模塊22,邊緣檢測模塊23,第一距離計算模塊24,第二距離計算模塊25及融合計算模塊26。
標(biāo)定模塊22,用于對單目前向攝像頭21進行標(biāo)定得到圖像坐標(biāo)與物理坐標(biāo)之間的投影變換矩陣。
單目前向攝像頭21,用于獲取標(biāo)定物的標(biāo)定圖像;完成標(biāo)定后,還用于獲取車輛前方的圖像。
邊緣檢測模塊23,用于提取前方車輛的邊緣信息,得到表示邊緣的矩形。
第一距離計算模塊24,用于根據(jù)所述邊緣信息和預(yù)設(shè)車體模型計算前方車輛的第一實際距離。
第二距離計算模塊25,用于根據(jù)所述邊緣信息和所述投影變換矩陣,計算前方車輛的第二實際距離。
融合計算模塊26,用于根據(jù)所述第一實際距離和所述第二實際距離計算前方車輛距離。
進一步的,所述標(biāo)定模塊22具體用于獲取標(biāo)定物的標(biāo)定點的物理坐標(biāo)和在標(biāo)定圖像上的圖像坐標(biāo);計算圖像坐標(biāo)與物理坐標(biāo)之間的投影變換矩陣。
其中,所述第二距離計算模塊25具體用于:
獲得所述矩形的下邊緣的平均坐標(biāo);根據(jù)所述投影變換矩陣計算所述平均坐標(biāo)對應(yīng)的實際坐標(biāo);從所述實際坐標(biāo)中獲取前方車輛的第二實際距離。
其中,所述融合計算模塊26具體用于:
設(shè)置所述第一實際距離的第一權(quán)重和所述第二實際距離的第二權(quán)重;計算前方車輛距離,所述前方車輛距離=第一實際距離*第一權(quán)重+第二實際距離*第二權(quán)重。
所述第一權(quán)重和所述第二權(quán)重的初始值均為0.5;根據(jù)所述第一實際距離和所述圖像的上一幀的前方車輛距離,計算所述圖像的當(dāng)前幀的第一權(quán)重,即當(dāng)前幀的第一權(quán)重=|第一實際距離-上一幀的前方車輛距離|/上一幀的前方車輛距離;第二權(quán)重=1-所述第一權(quán)重。
進一步的,所述邊緣檢測模塊23具體用于:
通過樣本訓(xùn)練得到車輛的lbp特征;根據(jù)所述lbp特征識別前方車輛在圖像中的位置;通過sobel算子進行邊緣檢測,在所述位置提取前方車輛的上邊緣和下邊緣;對所述位置進行閾值二值化后,提取前方車輛的左邊緣和右邊緣;所述上邊緣、所述下邊緣、所述左邊緣和所述右邊緣圍成車輛邊緣,求得車輛邊緣的外接矩形。
本實施例基于單目攝像頭進行測距,成本低,調(diào)試簡單,兼容不同的攝像頭安裝位置和拍攝角度,并且采用成像原理和投影原理檢測前車的距離,克服了現(xiàn)有技術(shù)中采用單目攝像頭測距不準(zhǔn)確的缺陷,為駕駛員提供駕駛輔助,保證駕駛安全。
以上結(jié)合具體實施例描述了本發(fā)明的技術(shù)原理。這些描述只是為了解釋本發(fā)明的原理,而不能以任何方式解釋為對本發(fā)明保護范圍的限制?;诖颂幍慕忉?,本領(lǐng)域的技術(shù)人員不需要付出創(chuàng)造性的勞動即可聯(lián)想到本發(fā)明的其它具體實施方式,這些方式都將落入本發(fā)明的保護范圍之內(nèi)。