一種基于透視變換的交叉路口多車道標(biāo)定方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及智能交通領(lǐng)域,具體是一種通過透視變換分析交叉路口圖像以標(biāo)定各 車道位置的方法。
【背景技術(shù)】
[0002] 隨著我國(guó)交通事業(yè)的迅速發(fā)展,城市的汽車數(shù)量逐年增加,城市道路交通堵塞、擁 擠問題顯得越來越突出?,F(xiàn)代化交通控制系統(tǒng)的建設(shè),卻可大幅度的提高現(xiàn)有道路的利用 率,而可靠的違章檢測(cè)是智能交通應(yīng)用的保障。
[0003] 交叉路口的多車道標(biāo)定是判別違章的一個(gè)關(guān)鍵。目前在交叉路口埋設(shè)感應(yīng)線圈的 方式不僅成本高、施工難,在一些擁擠路段還不便于維護(hù)。作為替代的計(jì)算機(jī)視覺技術(shù)因其 輕便等特點(diǎn)在智能交通領(lǐng)域得到了廣泛的關(guān)注。
[0004] 與目前用于輔助駕駛系統(tǒng)的單、雙車道識(shí)別不同,城市中的交叉路口往往需要同 時(shí)識(shí)別更多的車道并標(biāo)定出紅燈停止線位置。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明要克服現(xiàn)有技術(shù)的上述缺點(diǎn),以透視變換為依據(jù),提供一種交叉路口的多 車道標(biāo)定方法。本發(fā)明包括如下步驟:
[0006] 步驟1 :從交叉路口的監(jiān)控視頻中選取車道線明顯的圖像,避免車輛遮擋等干擾, 其中圖像的高度為height,寬度為width,單位為像素;
[0007] 步驟2 :在選取的圖像基礎(chǔ)上使用Canny算子進(jìn)行邊緣提取,然后利用Hough變 換提取出n條直線段h (i = 1,2,…,n),其中h的起止端點(diǎn)坐標(biāo)分別記作A i (xAi, yAi)與 81(^,&),坐標(biāo)原點(diǎn)為圖像左上角,每條線段對(duì)應(yīng)的斜率為1計(jì)算公式如下:
[0009] 步驟3 :根據(jù)斜率獲得水平線段集合H與豎直線段集合S,其中:
[0010] H = {li I ki G (-0. 1, 0. 1), i G {1, 2,. . . , n}} (2)
[0011] S= {lJhG (-①,-0.65) U (0.65,①),i G {l,2,...,n}} (3)
[0012] 步驟4 :對(duì)步驟3得到的集合H與S進(jìn)行初步篩選,具體為:
[0013] 步驟4. 1 :將所有端點(diǎn)坐標(biāo)滿足0 < .v 1;. < jk/g/7/1 |~|.0 < i〖的直線段h從 水平線段集合H與豎直線段集合S里剔除,得到新的H與S ;
[0014] 步驟4. 2 (可選):如果視頻圖像中包括時(shí)間戳與地點(diǎn)戳,則進(jìn)一步將端點(diǎn)坐標(biāo)位 于圖像固定時(shí)間戳與地點(diǎn)戳區(qū)域的直線段1,人水平線段集合H與豎直線段集合S里剔除, 再次得到更新的H與S;
[0015] 步驟5:令步驟4得到的最終的H與S記為H'與S',進(jìn)一步對(duì)線段過濾:
[0016] 步驟5. 1 :通過以下公式計(jì)算對(duì)水平線段集合H'進(jìn)行聚類并得到r個(gè)子集ht:
[0017] U:=| h., = H' Hh, g H'且 ht= {1 tk| t = 1,2, ? ? ?,r ;k = 1,2, ? ? ? wt} (4)
[0018] h" n h" = 0 ,其中 p = 1,2,…,r ;q = 1,2,…,r ;p 辛 q (5)
[0022] 其中,^表示子集h t中的線段數(shù);1 tk表示第t個(gè)子集的第k條線段;式(6)中,1 ps 表示子集hp中的第s條線段,1 qz表示子集h q中的第z條線段,DistY(l ps,lqz)表示線段lps 與線段lqz之間的豎直距離,yAps表示子集1^中第s條線段的起始端點(diǎn)的縱坐標(biāo),y Bps表示 子集hp中第s條線段的終止端點(diǎn)的縱坐標(biāo),y Aqz表示子集h q中第z條線段的起始端點(diǎn)的縱 坐標(biāo),yBqz表示子集h q中第z條線段的終止端點(diǎn)的縱坐標(biāo);式(7)表示線段1 ps與線段1 qz 之間的豎直距離應(yīng)該滿足的條件;式(8)表示子集\內(nèi)部的第i條線段1 pi與第j條線段 lpj之間的豎直距離應(yīng)該滿足的條件,w p表示子集h p的線段數(shù);
[0023] 步驟5. 2 :提取每個(gè)子集ht (t = 1,2,…,r)中最長(zhǎng)的線段構(gòu)成新的水平線段集合 H";
[0024] 步驟5. 3 :通過以下公式計(jì)算對(duì)豎直線段集合S'進(jìn)行聚類得到m個(gè)子集st:
[0025] s, = S'且s, g &'且 st= {1 tv| t = 1,2, ? ? ?,m ;v = 1,2, ? ? ? uj (9)
[0026] sp ns9 =0,其中 p = 1,2, ...,m ;q = 1,2, ...,m ;p 辛 q (10)
[0030] 其中,ut表示子集^中的線段數(shù),ltv表示第t個(gè)子集的第v條線段;式(11)中, l ps表示子集s p中的第s條線段,1 qz表示子集s q中的第z條線段,DistX(l ps,lqz)表示線段 lps與線段1 qz之間的水平距離,xAps表示子集sp中第s條線段的起始端點(diǎn)的橫坐標(biāo),x Bps表 示子集sp中第s條線段的終止端點(diǎn)的橫坐標(biāo),xAqz表示子集s q中第z條線段的起始端點(diǎn)的 橫坐標(biāo),xBqz表示子集s q中第z條線段的終止端點(diǎn)的橫坐標(biāo);式(12)表示線段1 ps與線段 lqz之間的水平距離應(yīng)該滿足的條件;式(13)表示子集s 5內(nèi)部的第i條線段1 pi與第j條 線估lw之間的水平距離應(yīng)該滿足的條件,up表示子集s p的線段數(shù);
[0031] 步驟5. 4:提取每個(gè)子集st (t = 1,2,…,m)中最長(zhǎng)的線段構(gòu)成新的豎直線段集合 S";
[0032] 步驟6 :在H"中確定紅燈線并對(duì)S"進(jìn)一步過濾,具體為:
[0033] 步驟6. 1 :對(duì)水平線段集合H"按如下規(guī)則排序:使第i條線段h與第j條線段1』 的端點(diǎn)坐標(biāo)滿足
,其中1# H",1H",i〈j ;
[0034] 步驟6. 2 :保留排序后的H"中第1條線段作為紅燈停止線;
[0035] 步驟6. 3 :計(jì)算豎直線段集合S "中任意兩線段1占1』的延長(zhǎng)線交點(diǎn)C u (Xij,yiJ), i辛j,構(gòu)建交點(diǎn)集P :
[0036] P= {(^(Xij,y。)|i= 1,2, ? ? ?,n";j= 1,2, ? ? ?,n" } (14)
[0038] 7^.= k i (Xij-xAi)+yAi (16)
[0039] 其中對(duì)應(yīng)于S"中線段1^1』的斜率,n"表示S"中線段的數(shù)量,(xAi,y Ai) 表示線段li的起始端點(diǎn)坐標(biāo),(xAj,yAj)表示線段lj的起始端點(diǎn)坐標(biāo);
[0040]步驟6. 4:從交點(diǎn)集P中找出滅點(diǎn)V(x。,y。),其中滅點(diǎn)表示平行線在透視投影中 的交點(diǎn),滅點(diǎn)V(x。,y。)的特征為:
且對(duì)交點(diǎn)集P中的任意一點(diǎn)G(Xg,y g)滿足
,g為下標(biāo),表示交點(diǎn)集P中不同于滅點(diǎn)V的其他任意點(diǎn);
[0041] 步驟6. 5 :求出滅點(diǎn)V(x。,y。)到豎直線段集合S"中任意直線段h的距離cU,其中
,剔除豎直線段集合S"中
-的所有線段得到新的豎 直線段集合S"';
[0042] 步驟7:找出步驟6得到的集合S"'中代表車道線的線段,具體為:
[0043] 步驟7.1:對(duì)豎直線段集合S"'進(jìn)行排序,使得排序后第i條線段h與第 j條線段的端點(diǎn)坐標(biāo)滿足
S " ',1S " ',i〈j,i = 1,2,. . .,n" ',j = 1,2,. . .,n"',其中 n"'表示 S"'中的線段數(shù)量,xAJPl xBi表示 線段li的起始和終止端點(diǎn)的橫坐標(biāo),x &_和x ^表示線段1」的起始和終止端點(diǎn)的橫坐標(biāo);
[0044] 步驟7. 2:利用動(dòng)態(tài)規(guī)劃算法對(duì)豎直線段集合S"'進(jìn)行篩選,盡可能多的保留其 中的線段,并使其中任一線段li到相鄰線段1 i+1的水平距離滿足式(17)和(18):
[0047] 其中DistX的定義見式(11);
[0048]步驟7. 3 :逐一繪制滅點(diǎn)V(x。,y。)到經(jīng)過步驟7. 2篩選后的豎直線段集合S"'中 每條線段^的中點(diǎn)的射線即可標(biāo)記出每個(gè)路口的多車道位置。
[0049] 本發(fā)明的優(yōu)點(diǎn)是:本發(fā)明能有效排除交叉路口復(fù)雜背景的干擾,利用透視變換準(zhǔn) 確標(biāo)定出交叉路口多車道位置。
【附圖說明】
[0050] 圖1為本發(fā)明的實(shí)施例選取的四個(gè)交叉路口圖像。
[0051] 圖2為本發(fā)明的經(jīng)過步驟3處理的四個(gè)交叉路口圖像。
[0052] 圖3為本發(fā)明的經(jīng)過步驟4處理的四個(gè)交叉路口圖像。
[0053] 圖4為本發(fā)明的經(jīng)過步驟5處理的四個(gè)交叉路口圖像。
[0054] 圖5為本發(fā)明的經(jīng)過步驟6. 3處理的四個(gè)交叉路口圖像。
[0055] 圖6為本發(fā)明的經(jīng)過步驟6. 4處理的四個(gè)交叉路口圖像。
[0056] 圖7為本發(fā)明的經(jīng)過步驟6. 5處理的四個(gè)交叉路口圖像。
[0057] 圖8為本發(fā)明的經(jīng)過步驟7. 2處理的四個(gè)交叉路口圖像。
[0058] 圖9為本發(fā)明的經(jīng)過步驟7. 3處理的四個(gè)交叉路口圖像。
【具體實(shí)施方式】
[0059] 下面結(jié)合實(shí)施例來詳細(xì)闡述本發(fā)明的基于透視變換的交叉路口多車道標(biāo)定方法 的【具體實(shí)施方式】。
[0060] 步驟1 :從交叉路口的監(jiān)控視頻中選取車道線明顯的圖像,避免車輛遮擋等干擾, 其中圖像的高度為height,寬度為width,單位為像素。選取的四個(gè)交叉路口圖像如圖1所 不〇
[0061] 步驟2 :在選取的圖像基礎(chǔ)上使用Canny算子進(jìn)行邊緣提取,然后利用Hough變 換提取出n條直線段h (i = 1,2,…,n),其中h的起止端點(diǎn)坐標(biāo)分別記作Ai(xAi, yAi)與 81',^丨坐標(biāo)原點(diǎn)為圖像左上角。每條線段對(duì)應(yīng)的斜率為1計(jì)算公式如下:
[0063] 步驟3 :根據(jù)斜率獲得水平線段集合H與豎直線段集合S,其中:
[0064] H = {li | ki G (-0. 1, 0. 1), i G {1, 2, . . . , n}} (2)
[0065] S = {li | kj G ^ , -0. 65) U (0. 65, , i G {1, 2,. . . , n}} (3)
[0066] 提取出的直線段如圖2所示,其中,水平線段集合H中的直線段用a標(biāo)出,豎直線 段集合S中的直線段用b標(biāo)出。
[0067] 步驟4 :對(duì)步驟3得到的集合H與S進(jìn)行簡(jiǎn)單篩選,具體為:
[0068] 步驟4.1 :將所有端點(diǎn)坐標(biāo)滿足〇 <.),的直線段1乂人 水平線段集合H與豎直線段集合S里剔除,得到新的H與S。
[0069] 步驟4. 2 (可選):如果視頻圖像中包括時(shí)間戳與地點(diǎn)戳,則進(jìn)一步將端點(diǎn)坐標(biāo)位 于圖像固定時(shí)間戳與地點(diǎn)戳區(qū)域的直線段1,人水平線段集合H與豎直線段集合S里剔除, 再次得到更新的H與S。
[0070]如圖3所示,此刻的水平線段集合H中的直線段用a '標(biāo)出,豎直線段集合S中的 直線段用b '標(biāo)出。
[0071]步驟5:令步驟4得到的最終的H與S記為H'與S',進(jìn)行線段粗略過濾:
[0072] 步驟5. 1 :對(duì)水平線段集合H'進(jìn)行聚類得到r個(gè)子集ht,要求滿足如下條件:
[0073] U;=1 h, = H'-且[ H'且 ht= {1 tk| t = 1,2, ? ? ?,r ;k = 1,2, ? ? ? wt} (4)
[0074] n h" = 0,其中 p = 1,2,…,r ;q = 1,2,…,r ;p 辛 q (5)
[0078] 其中,^表示子集h t中的線段數(shù);1 tk表示第t個(gè)子集的第k條線段;式(6)中,1 ps 表示子集hp中的第s條線段,1 qz表示子集h q中的第z條線段,DistY(l ps,lqz)表示線段lps 與線段lqz之間的豎直距離,yAps表示子集1^中第s條線段的起始端點(diǎn)的縱坐標(biāo),y Bps表示 子集hp中第s條線段的終止端點(diǎn)的縱坐標(biāo),y Aqz表示子集h q中第z條線段的起始端點(diǎn)的縱 坐標(biāo),yBqz表示子集h q中第z條線段的終止端點(diǎn)的縱坐標(biāo);式(7)表示線段1 ps與線段1 @之 間的豎直距離應(yīng)該滿足的條件;式(8)表示子集\內(nèi)部的