本發(fā)明涉及一種保證準確性的車輛運動狀態(tài)估計方法,屬于計算機視覺、視頻挖掘和計算機軟件的交叉技術(shù)應(yīng)用領(lǐng)域。
背景技術(shù):
車輛無人駕駛需要通過對視頻數(shù)據(jù)進行處理,從而得到車輛的當前位置與運動軌跡,汽車狀態(tài)參數(shù)的準確獲得是保證汽車主動安全系統(tǒng)有效性的重要要求。通過對車輛的運動過程進行運動學(xué)或動力學(xué)建模,同時將相應(yīng)的車載傳感器(如輪速傳感器、陀螺儀、加速度計等)信息作為觀測信息,進而利用適當?shù)臑V波估計算法實現(xiàn)對汽車運行狀態(tài)的估計。這種方法需要對車輛整體甚至各個輪胎分別進行建模,當這些模型或者模型參數(shù)不準時,估計誤差較大。
隨著計算機軟硬件的不斷發(fā)展,人們能越來越方便的獲取和存儲視頻數(shù)據(jù),對視頻數(shù)據(jù)進行分析的需求也隨之提高。因此根據(jù)車載視頻數(shù)據(jù)對車輛運動狀態(tài)估計成了廣泛研究的課題。中國專利cn201210442082.6公開了一種基于光流的車輛運動狀態(tài)估計方法,適用于估計道路交通環(huán)境下低速行駛在平坦瀝青路面上的車輛的運動狀態(tài)。首先在車輛后橋中心位置安裝俯視高精度單目攝像機,并通過標定算法獲取攝像機參數(shù);接著采用直方圖均衡化對獲取的圖像序列進行預(yù)處理,以凸顯瀝青路面角點特征,降低路況及光照變化帶來的不利影響;再采用高效的哈里斯harris角點檢測算法進行實時路面角點特征檢測;然后根據(jù)盧卡斯-柯乃德lucas-kanade光流算法進行前、后幀的角點匹配跟蹤,選用隨機采樣一致ransac算法進一步優(yōu)化匹配角點,進而獲取較為準確的光流信息;最后,由圖像光流重構(gòu)出車輛載體坐標系下縱向速度、橫向速度和質(zhì)心側(cè)偏角等車輛實時運動參數(shù),由此獲得較高精度的車輛對地運動狀態(tài)的估計。
但是上述方法需要耗費較多計算機資源,而在計算機資源和內(nèi)存有限的條件下,通過車載視頻數(shù)據(jù)在線求得當前車輛運動狀態(tài)準確性不高;因此,如何在有限的計算條件下,提出一種保證準確性的車輛運動狀態(tài)估計方法,是有待解決的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是:針對車載視頻數(shù)據(jù)在線求得當前車輛運動狀態(tài)準確性不高的問題,提出一種保證準確性的車輛運動狀態(tài)估計方法,該方法能夠通過對運動狀態(tài)的檢驗保證結(jié)果的準確性。
本發(fā)明為解決上述技術(shù)問題采用以下技術(shù)方案:
一種保證準確性的車輛運動狀態(tài)估計方法,包括:
步驟一、特征提?。菏紫龋鶕?jù)裝載于車輛上的視頻攝像機,獲得以幀為單位的待分析視頻圖像數(shù)據(jù),每一幀視頻圖像對應(yīng)一個二維點陣;然后,提取當前幀中圖像特征點集合,采用光流算法計算當前幀圖像特征點在下一幀圖像中對應(yīng)特征的位置,獲得關(guān)于當前幀圖像和下一幀圖像中的特征點對集合;之后,反向使用光流算法過濾掉特征點對集合中的噪聲數(shù)據(jù);
步驟二、數(shù)據(jù)分析:首先,采用隨機采樣一致算法和八點算法相結(jié)合,從步驟一得到的特征點對集合中求得一個基本矩陣;然后,通過多次迭代采樣過程,將所得的基本矩陣按對整個特征點對集合的匹配程度由高到低排序,并根據(jù)視頻攝像機的固有參數(shù)求得本質(zhì)矩陣;之后,對所得本質(zhì)矩陣做分解,求解對應(yīng)的運動方向向量與旋轉(zhuǎn)矩陣;
步驟三、結(jié)果驗證:對求得的運動方向向量與旋轉(zhuǎn)矩陣進行校驗,確定最終的車輛運動狀態(tài)估計結(jié)果。
進一步的,本發(fā)明的車輛運動狀態(tài)估計方法,步驟一具體如下:
步驟1)、設(shè)共獲得n幀視頻圖像,所述的每一幀視頻圖像對應(yīng)一個二維點陣,點陣中每一個點上的數(shù)值指該位置圖像的灰度值,每一幀圖像以左下角為起始位置,用元組(1,1)表示左下角位置的點,初始化數(shù)值k為2,對第k-1幀中圖像提取所需特征點,形成點集s;
步驟2)、定義點集s′,表示集合s中的特征點在第k幀中的對應(yīng)點集合,并將其初始化為空集,尋找s中的特征點在第k幀中的對應(yīng)點加入集合s′;
步驟3)、反向計算集合s′中的對應(yīng)點在第k-1幀的位置,并構(gòu)成點集s″,比較集合s和集合s″中的對應(yīng)點,如果距離大于設(shè)定閾值則在s和s′中將對應(yīng)點刪去。
進一步的,本發(fā)明的車輛運動狀態(tài)估計方法,所述步驟1)具體如下:
步驟11)、定義點集s,將其初始化為空集,所述s是指第k-1幀中特征點的集合,所述的特征點是指二維平面上的點;
步驟12)、在第k-1幀中選取未計算過的點(i,j),計算mi,j:
其中,(i,j)指的是第k-1幀中第i行,第j列的點,w是以(i,j)為中點的矩形點集,ix和iy分別是圖像水平和豎直方向的導(dǎo)數(shù),
步驟13)、求矩陣mi,j的特征值λ1,λ2,當其中模較小的特征值的模大于一個質(zhì)量因子mf,將點(i,j)加入點集s,所述λ1,λ2是關(guān)于λ的方程|mi,j-λe|=0的兩個根,e指的是二階單位矩陣,即
步驟14)、當?shù)趉-1幀中還有未計算的點時,轉(zhuǎn)到步驟12)。
進一步的,本發(fā)明的車輛運動狀態(tài)估計方法,所述步驟2)具體步驟如下:
步驟21)、選取點集s中未被選取的一點u,計算在s′的對應(yīng)點為u′,具體步驟如下:
步驟211)對第k-1幀圖像i,第k幀圖像j,建立圖像i和圖像j的金字塔模型:{il}l=0,1...lm,{jl}l=0,1...lm,其中il,jl是原始幀圖像i、圖像j的第l層采樣層,lm是采樣的最高層層數(shù),原始圖像對應(yīng)的層數(shù)為0,初始化金字塔的光流估計量:
步驟212)定位圖像il上點u的位置
步驟213)定義數(shù)值p表示迭代次數(shù),初始化p為1,初始化迭代向量v=[00]t,光流估計矢量g=[00]t,迭代步驟如下:
步驟a)計算圖像像素差δil(x,y):
根據(jù)像素差計算圖像的不匹配量
步驟b)計算光流η=g-1b;
步驟c)對迭代中的v進行修改v←v+η;
步驟d)計算p←p+1,當p≤pm時轉(zhuǎn)到步驟a),所述的pm是設(shè)置的迭代次數(shù);
步驟214)求得第l層的最終光流d=v,當l不為0時,計算l-1層上的光流為
步驟215)計算最終的光流矢量d←g+d,得出u′=u+d,所述的u′是點u在第k幀中的位置矢量;
步驟22)、根據(jù)步驟21),將計算得到的點u′加入s′。
步驟23)、當沒有將s中的點全部遍歷時,轉(zhuǎn)到步驟21)執(zhí)行。
進一步的,本發(fā)明的車輛運動狀態(tài)估計方法,所述步驟3)具體步驟如下:
步驟31)、對于點集s′中的任意一點u′,求得其在點集s″的對應(yīng)點為u″,具體步驟如下:
步驟311)對第k-1幀圖像i,第k幀圖像j,建立圖像i和圖像j的金字塔模型:{il′}l′=0,1...lm′,{jl′}l′=0,1...lm′,所述的il′,jl′是原始幀圖像i,j的第l′層采樣層,lm′是采樣的最高層層數(shù),原始圖像對應(yīng)的層數(shù)為0;初始化金字塔的光流估計量:
步驟312)定位圖像jl′上點u′的位置
步驟313)定義數(shù)值p′表示迭代次數(shù),初始化p′為1,初始化迭代向量v′=[00]t,光流估計矢量g′=[00]t,迭代步驟如下:
步驟a)計算圖像像素差δj′l(x,y):
根據(jù)像素差計算圖像的不匹配量
步驟b)計算光流η′=g′-1b′;
步驟c)對迭代中的v′進行修改v′←v′+η′;
步驟d)計算p′←p′+1,當p′≤p′m時轉(zhuǎn)到步驟a),所述的p′m是設(shè)置的迭代次數(shù);
步驟314)求得第l′層的最終光流d′=v′,當l′不為0時,計算l′-1層上的光流為
步驟315)計算最終的光流矢量d′←g′+d′,得出u″=u′+d′,所述的u″是點u′在第k-1幀中的位置矢量;
步驟32)、將點u″加入s″,當沒有將s′中的點全部遍歷時,轉(zhuǎn)到步驟311)執(zhí)行;
步驟33)、在s中的取未遍歷一點u=[xy]t,在s″中的對應(yīng)的點為u′=[x″y″]t,如果兩點的距離
步驟34)、當s中還有未遍歷的點時,轉(zhuǎn)到步驟33)執(zhí)行。
進一步的,本發(fā)明的車輛運動狀態(tài)估計方法,步驟二中求得本質(zhì)矩陣的具體步驟如下:
步驟41)、在集合s和s′中隨機選取8組對應(yīng)點,分別記為(xl,yl)和(x′l,y′l),l∈[1,8],構(gòu)造一個矩陣a:
步驟42)、對矩陣a進行分解得到a=uadava,具體步驟如下:
步驟421)計算矩陣b=ata;
步驟422)初始化特征向量矩陣va為9×9的單位矩陣,其中單位矩陣是指主對角線上元素全為1,其余元素為0的矩陣;
步驟423)在矩陣b中找到除主對角線外絕對值最大的元素brc,其中brc是指矩陣b中第r行第c列的元素,根據(jù)公式
步驟424)迭代計算b←htbh,va←hva,若此時b中除主對角線上的元素外絕對值最大的元素大于閾值thb,則返回步驟423)繼續(xù)迭代,否則此時b中主對角元素就是矩陣ata的特征值,對應(yīng)列的矩陣va中的列向量就是對應(yīng)的特征向量;將特征值按絕對值大小依次排列,記為λ1,λ2,…,λ9,對應(yīng)的特征向量為s1,s2,…,s9;得到da=diag(λ1,λ2,…,λ9),va=(s1,s2,…,s9);
步驟425)計算
步驟43)、選取va的第9列作為向量s:
s=[s1s2s3s4s5s6s7s8s9]t
步驟44)、計算得到基本矩陣f′:
步驟45)、計算矩陣
步驟46)計算求得本質(zhì)矩陣e=ktf′k。
進一步的,本發(fā)明的車輛運動狀態(tài)估計方法,步驟二中,對所得本質(zhì)矩陣做分解,求解對應(yīng)的運動方向向量與旋轉(zhuǎn)矩陣具體步驟如下:
步驟51)、對本質(zhì)矩陣e按步驟42)的方法分解為
步驟52)、計算得到運動方向矢量
步驟53)定義
進一步的,本發(fā)明的車輛運動狀態(tài)估計方法,步驟三根據(jù)運動方向和旋轉(zhuǎn)矩陣的約束關(guān)系做驗證,具體如下:
步驟61)、根據(jù)旋轉(zhuǎn)矩陣r,求得前一幀時車輛的運動方向t0=r-1t,以t0在xoz平面的投影為x′軸方向,原y軸為y′建立新的局部坐標系,將r和t在新的坐標系里記為r′和t′,車輛繞y′軸的旋轉(zhuǎn)角度,記為β;
步驟62)、計算|t′ztan(β/2)-t′x|,其中t′x、t′z是運動方向t′在x′、z′方向的分量,當該值小于預(yù)設(shè)的閾值,那得到的r,t即為所求的旋轉(zhuǎn)矩陣和運動方向向量,否則轉(zhuǎn)向步驟41)。
進一步的,本發(fā)明的一種保證準確性的車輛運動狀態(tài)估計方法,所述的矩陣a是8×9的矩陣,矩陣b是實對稱矩陣。
本發(fā)明采用以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)效果:
本發(fā)明所述的保證準確性的車輛運動狀態(tài)估計方法包括特征提取、數(shù)據(jù)分析和結(jié)果驗證三個部分,其中特征提取部分采用雙向光流算法,保證所得的特征點對的可靠性;數(shù)據(jù)分析部分采用隨機采樣一致算法和八點算法相結(jié)合,保證運算過程的高效;結(jié)果驗證部分對求得的運動方向向量與旋轉(zhuǎn)矩陣進行校驗,確保最終結(jié)果的合理性。
具體來說,本發(fā)明所述的方法具有如下的有益效果:
(1)本發(fā)明所述的保證準確性的車輛運動狀態(tài)估計方法,采用雙向光流算法來選取特征點對,過濾了不易追蹤的特征點和一些噪聲數(shù)據(jù),減小了后續(xù)運算量,有助于提高最終計算結(jié)果的可靠性。
(2)本發(fā)明所述的保證準確性的車輛運動狀態(tài)估計方法,采用隨機采樣一致算法和八點算法相結(jié)合對特征數(shù)據(jù)點對進行分析,在保證效率的前提下進行數(shù)據(jù)處理,有助于實現(xiàn)對視頻數(shù)據(jù)的在線分析。
(3)本發(fā)明所述的保證準確性的車輛運動狀態(tài)估計方法,將計算得到的運動方向向量和旋轉(zhuǎn)矩陣進行驗證,確保計算結(jié)果的合理性,有助于提高本方法的準確性。
附圖說明
圖1是本發(fā)明保證準確性的車輛運動狀態(tài)估計方法流程圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明的技術(shù)方案做進一步的詳細說明:
本發(fā)明提出一種保證準確性的車輛運動狀態(tài)估計方法,由特征提取、數(shù)據(jù)分析和結(jié)果驗證三個部分,通過雙向光流算法提取特征點對,使用隨機采樣一致算法和八點算法相結(jié)合迭代求解基本矩陣進而求得運動方向向量與旋轉(zhuǎn)矩陣,并根據(jù)車輛本身的運動路徑約束對最終的結(jié)果進行驗證。該算法的特征提取部分采用雙向光流算法,保證所得的特征點對的可靠性,過濾噪聲數(shù)據(jù)。數(shù)據(jù)分析部分采用隨機采樣一致算法和八點算法相結(jié)合,將所得的基本矩陣按對整個特征點對集合的匹配程度由高到低排序,求解對應(yīng)的運動方向向量與旋轉(zhuǎn)矩陣。結(jié)果驗證部分對求得的運動方向向量與旋轉(zhuǎn)矩陣進行校驗,確保最終結(jié)果的合理性。
根據(jù)附圖1,以下對本發(fā)明保證準確性的車輛運動狀態(tài)估計方法具體實施例作更詳細的描述。
一、提取圖像特征點對時,采用以下的具體實施步驟:
步驟1)、設(shè)共獲得n幀視頻圖像,所述的每一幀視頻圖像對應(yīng)一個二維點陣,點陣中每一個點上的數(shù)值指該位置圖像的灰度值,每一幀圖像以左下角為起始位置,用元組(1,1)表示左下角位置的點,初始化數(shù)值k為2,對第k-1幀中圖像提取所需特征點,形成點集s;
步驟2)、定義點集s′,表示集合s中的特征點在第k幀中的對應(yīng)點集合,并將其初始化為空集,尋找s中的特征點在第k幀中的對應(yīng)點加入集合s′;
步驟3)、反向計算集合s′中的對應(yīng)點在第k-1幀的位置,并構(gòu)成點集s″,比較集合s和集合s″中的對應(yīng)點,如果距離大于設(shè)定閾值則在s和s′中將對應(yīng)點刪去。
進一步的,本發(fā)明的車輛運動狀態(tài)估計方法,所述步驟1)具體如下:
步驟11)、定義點集s,將其初始化為空集,所述s是指第k-1幀中特征點的集合,所述的特征點是指二維平面上的點;
步驟12)、在第k-1幀中選取未計算過的點(i,j),計算mi,j:
其中,(i,j)指的是第k-1幀中第i行,第j列的點,w是以(i,j)為中點的矩形點集,ix和iy分別是圖像水平和豎直方向的導(dǎo)數(shù),
步驟13)、求矩陣mi,j的特征值λ1,λ2,當其中模較小的特征值的模大于一個質(zhì)量因子mf,將點(i,j)加入點集s,所述λ1,λ2是關(guān)于λ的方程|mi,j-λe|=0的兩個根,e指的是二階單位矩陣,即
步驟14)、當?shù)趉-1幀中還有未計算的點時,轉(zhuǎn)到步驟12)。
進一步的,本發(fā)明的車輛運動狀態(tài)估計方法,所述步驟2)具體步驟如下:
步驟21)、選取點集s中未被選取的一點u,計算在s′的對應(yīng)點為u′,具體步驟如下:
步驟211)、對第k-1幀圖像i,第k幀圖像j,建立圖像i和圖像j的金字塔模型:{il}l=0,1...lm,{jl}l=0,1...lm,其中il,jl是原始幀圖像i、圖像j的第l層采樣層,lm是采樣的最高層層數(shù),原始圖像對應(yīng)的層數(shù)為0,初始化金字塔的光流估計量:
步驟212)、定位圖像il上點u的位置
步驟213)、定義數(shù)值p表示迭代次數(shù),初始化p為1,初始化迭代向量v=[00]t,光流估計矢量g=[00]t,迭代步驟如下:
步驟a)計算圖像像素差δil(x,y):
根據(jù)像素差計算圖像的不匹配量
步驟b)計算光流η=g-1b;
步驟c)對迭代中的v進行修改v←v+η;
步驟d)計算p←p+1,當p≤pm時轉(zhuǎn)到步驟a),所述的pm是設(shè)置的迭代次數(shù);
步驟214)、求得第l層的最終光流d=v,當l不為0時,計算l-1層上的光流為
步驟215)、計算最終的光流矢量d←g+d,得出u′=u+d,所述的u′是點u在第k幀中的位置矢量;
步驟22)、根據(jù)步驟21),將計算得到的點u′加入s′。
步驟23)、當沒有將s中的點全部遍歷時,轉(zhuǎn)到步驟21)執(zhí)行。
進一步的,本發(fā)明的車輛運動狀態(tài)估計方法,所述步驟3)具體步驟如下:
步驟31)、對于點集s′中的任意一點u′,求得其在點集s″的對應(yīng)點為u″,具體步驟如下:
步驟311)對第k-1幀圖像i,第k幀圖像j,建立圖像i和圖像j的金字塔模型:{il′}l′=0,1...lm′,{jl′}l′=0,1...lm′,所述的il′,jl′是原始幀圖像i,j的第l′層采樣層,lm′是采樣的最高層層數(shù),原始圖像對應(yīng)的層數(shù)為0;初始化金字塔的光流估計量:
步驟312)定位圖像jl′上點u′的位置
步驟313)定義數(shù)值p′表示迭代次數(shù),初始化p′為1,初始化迭代向量v′=[00]t,光流估計矢量g′=[00]t,迭代步驟如下:
步驟a)計算圖像像素差δj′l(x,y):
根據(jù)像素差計算圖像的不匹配量
步驟b)計算光流η′=g′-1b′;
步驟c)對迭代中的v′進行修改v′←v′+η′;
步驟d)計算p′←p′+1,當p′≤p′m時轉(zhuǎn)到步驟a),所述的p′m是設(shè)置的迭代次數(shù);
步驟314)求得第l′層的最終光流d′=v′,當l′不為0時,計算l′-1層上的光流為
步驟315)計算最終的光流矢量d′←g′+d′,得出u″=u′+d′,所述的u″是點u′在第k-1幀中的位置矢量;
步驟32)、將點u″加入s″,當沒有將s′中的點全部遍歷時,轉(zhuǎn)到步驟311)執(zhí)行;
步驟33)、在s中的取未遍歷一點u=[xy]t,在s″中的對應(yīng)的點為u′=[x″y″]t,如果兩點的距離
步驟34)、當s中還有未遍歷的點時,轉(zhuǎn)到步驟33)執(zhí)行。
進一步的,本發(fā)明的車輛運動狀態(tài)估計方法,步驟二中求得本質(zhì)矩陣的具體步驟如下:
步驟41)、在集合s和s′中隨機選取8組對應(yīng)點,分別記為(xl,yl)和(x′l,y′l),l∈[1,8],構(gòu)造一個矩陣a:
步驟42)、對矩陣a進行分解得到a=uadava,具體步驟如下:
步驟421)計算矩陣b=ata;
步驟422)初始化特征向量矩陣va為9×9的單位矩陣,其中單位矩陣是指主對角線上元素全為1,其余元素為0的矩陣;
步驟423)在矩陣b中找到除主對角線外絕對值最大的元素brc,其中brc是指矩陣b中第r行第c列的元素,根據(jù)公式
步驟424)迭代計算b←htbh,va←hva,若此時b中除主對角線上的元素外絕對值最大的元素大于閾值thb,則返回步驟423)繼續(xù)迭代,否則此時b中主對角元素就是矩陣ata的特征值,對應(yīng)列的矩陣va中的列向量就是對應(yīng)的特征向量;將特征值按絕對值大小依次排列,記為λ1,λ2,…,λ9,對應(yīng)的特征向量為s1,s2,…,s9;得到da=diag(λ1,λ2,…,λ9),va=(s1,s2,…,s9);
步驟425)計算
步驟43)、選取va的第9列作為向量s:
s=[s1s2s3s4s5s6s7s8s9]t
步驟44)、計算得到基本矩陣f′:
步驟45)、計算矩陣
步驟46)計算求得本質(zhì)矩陣e=ktf′k。
二、特征點對篩選完成后,依據(jù)求得的本質(zhì)矩陣計算車輛的運動狀態(tài),采用以下的具體實施步驟:
步驟51)、對本質(zhì)矩陣e按步驟42)的方法分解為
步驟52)、計算得到運動方向矢量
步驟53)定義
三、求得車輛的運動方向向量和旋轉(zhuǎn)矩陣后,需要對其進行檢驗,采用以下的具體實施步驟:
步驟61)、根據(jù)旋轉(zhuǎn)矩陣r,求得前一幀時車輛的運動方向t0=r-1t,以t0在xoz平面的投影為x′軸方向,原y軸為y′建立新的局部坐標系,將r和t在新的坐標系里記為r′和t′,車輛繞y′軸的旋轉(zhuǎn)角度,記為β;
步驟62)、計算|t′ztan(β/2)-t′x|,其中t′x、t′z是運動方向t′在x′、z′方向的分量,當該值小于預(yù)設(shè)的閾值thc,那得到的r,t即為所求的旋轉(zhuǎn)矩陣和運動方向向量,否則轉(zhuǎn)向步驟41)。在具體實施過程中,thc過大會導(dǎo)致檢驗過于寬松,難以分辨出錯誤的結(jié)果;thc過小會使檢驗過于嚴格,容易造成過擬合的情況。thc的具體取值與攝像機像素和幀率有關(guān)。
本發(fā)明的方法根據(jù)裝載在車輛上的單個攝像機獲得的錄像來對車輛運動、轉(zhuǎn)向進行估計。該方法選取圖像中較易于追蹤的特征,對特征進行篩選去除數(shù)據(jù)中噪聲,通過隨機采樣一致性算法對特征點對進行隨機采樣,計算本質(zhì)矩陣最終得到平移向量和旋轉(zhuǎn)矩陣并進行驗證。
以上所述僅是本發(fā)明的部分實施方式,應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。