亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于快速霍夫變換的路口斑馬線檢測(cè)方法與流程

文檔序號(hào):11520251閱讀:374來(lái)源:國(guó)知局
一種基于快速霍夫變換的路口斑馬線檢測(cè)方法與流程

本發(fā)明涉及圖像處理技術(shù)領(lǐng)域,特別是一種基于快速霍夫變換的路口斑馬線檢測(cè)方法。



背景技術(shù):

無(wú)人駕駛汽車從根本上改變了傳統(tǒng)的人—車控制方式,將不可控的駕駛員從駕駛中分離出去,從而大大提高了交通系統(tǒng)的效率和安全性。無(wú)人駕駛汽車需要通過(guò)各類感知器對(duì)道路信息、車輛位置和障礙物信息進(jìn)行采集和運(yùn)算,實(shí)時(shí)分析復(fù)雜的道路情況,并通過(guò)總控程序給車輛作出最優(yōu)的行駛選擇。其中計(jì)算機(jī)視覺(jué)在對(duì)路況分析和處理中起到至關(guān)重要的作用,也是無(wú)人駕駛能否成功的關(guān)鍵。如何準(zhǔn)確識(shí)別和判斷出公路上的各類事物是進(jìn)行進(jìn)一步分析和處理的前提條件,例如,汽車若能對(duì)路口的斑馬線進(jìn)行提前識(shí)別,則能在通過(guò)路口時(shí)提前告知總控程序要對(duì)汽車進(jìn)行減速處理,從而增強(qiáng)了汽車行駛的安全性。

現(xiàn)有的技術(shù)通常采用模式匹配的方法,對(duì)公路上的各類事物通過(guò)采集大量的圖像數(shù)據(jù)讓計(jì)算機(jī)進(jìn)行學(xué)習(xí)并進(jìn)一步分類,然后在實(shí)際運(yùn)行環(huán)境中對(duì)實(shí)時(shí)拍攝到的公路圖像進(jìn)行模式匹配,將匹配度高的結(jié)果作為物體識(shí)別的結(jié)果。然而該方法需要大量的訓(xùn)練數(shù)據(jù),對(duì)不同類的物體運(yùn)用同樣的訓(xùn)練方法,忽略了物體間的差異性,從而導(dǎo)致計(jì)算量很大,而且對(duì)某些路況,如公路上的地面標(biāo)志信息的識(shí)別精確度較低。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明所要解決的技術(shù)問(wèn)題是克服現(xiàn)有技術(shù)的不足而提供一種基于快速霍夫變換的路口斑馬線檢測(cè)方法,以準(zhǔn)確高效地對(duì)公路上的斑馬線進(jìn)行識(shí)別檢測(cè)。

本發(fā)明為解決上述技術(shù)問(wèn)題采用以下技術(shù)方案:

根據(jù)本發(fā)明提出的一種基于快速霍夫變換的路口斑馬線檢測(cè)方法,包括以下步驟:

步驟1、采集公路圖像,對(duì)公路圖像進(jìn)行灰度處理,得到處理后的n×n圖像矩陣g,n代表g中的行數(shù)和列數(shù);

步驟2、對(duì)g進(jìn)行高斯濾波操作,得出更新后的矩陣g′;具體步驟如下:

步驟21、定義模糊半徑r和大小為r*r的模糊矩陣,利用高斯函數(shù)計(jì)算模糊矩陣中每個(gè)元素的值,r<n且r為奇數(shù);

步驟22、對(duì)模糊矩陣中的元素做歸一化處理:計(jì)算模糊矩陣中元素的和sp,并將模糊矩陣中每個(gè)元素除以sp,得到歸一化后的模糊矩陣p;

步驟23、定義矩陣g′=g,計(jì)算更新從而得到更新后的矩陣g′,矩陣g′為n行n列;其中,為向下取整,p(i′,j′)代表p中第i′行和第j′列的元素,g(i′,j′)代表g中第i′行和第j′列的元素,g′(i,j)為矩陣g′中第i行和第j列的元素;

步驟3、對(duì)步驟2得到的矩陣g′做邊緣檢測(cè);具體步驟如下:

步驟31、計(jì)算g′(i,j)的水平方向梯度dx(i,j)=g′(i,j+1)-g′(i,j);

步驟32、計(jì)算g′(i,j)的垂直方向梯度dy(i,j)=g′(i+1,j)-g′(i,j);

步驟33、計(jì)算g′(i,j)的梯度值和梯度方向

步驟34、對(duì)矩陣g′中每個(gè)元素的梯度值進(jìn)行非極大值抑制:對(duì)于g′(i,j),若在α(i,j)方向上的若干個(gè)元素梯度值當(dāng)中,d(i,j)為極大,則g′(i,j)=255;否則g′(i,j)=0;

步驟4、用雙閾值算法對(duì)矩陣g′中的邊緣進(jìn)行連接,具體步驟如下:

步驟41、定義一個(gè)高閾值λ,對(duì)矩陣g′中的元素按梯度值進(jìn)行排序,排序后的元素個(gè)數(shù)為m個(gè);取排序后的前ω*m個(gè)元素中梯度值最大的元素,該元素所對(duì)應(yīng)的梯度值作為λ的值,其中,0.6≤ω≤0.8,且ω*m向下取整;掃描矩陣g′中的每個(gè)元素,對(duì)于元素g′(i,j),若d(i,j)<λ,則g′(i,j)=255,否則g′(i,j)不變;

步驟42、定義一個(gè)低閾值μ,且對(duì)g′中元素值為0的元素做判斷:若與該元素距離為1的鄰域內(nèi)的元素值都等于255,則將鄰域內(nèi)的元素梯度值與μ比較,將梯度值大于μ的元素的值賦為0;

步驟43、重復(fù)步驟42,直到對(duì)矩陣g′中所有的元素都判斷完畢;

步驟5、對(duì)矩陣g′中的元素進(jìn)行快速霍夫變換;具體步驟如下:

步驟51、在矩陣g′中任取一個(gè)g′(i,j),判斷g′(i,j)是否等于0,若是則把該元素加入集合s中,執(zhí)行步驟52,否則重新執(zhí)行步驟51;

步驟52、記新加入集合s中的元素為q,依次對(duì)q的鄰域內(nèi)的元素進(jìn)行判斷,若q的鄰域中存在像素點(diǎn)的值等于0的元素,且該元素不屬于集合s,則將該元素加入s中;

步驟53、重復(fù)步驟52直到集合s不再擴(kuò)大為止;

步驟54、選取集合s中距離最遠(yuǎn)的兩個(gè)元素作為線段s的端點(diǎn),線段s的端點(diǎn)坐標(biāo)分別記為(x1,y1)和(x2,y2),計(jì)算集合s中該線段最大的偏離距離d=max{[(y3-y1)(x2-x1)-(x3-x1)(y2-y1)]/l},(x3,y3)為集合s中元素的坐標(biāo)且(x3,y3)≠(x1,y1),(x2,y2);

步驟55、定義偏離比若集合s的偏離比r>φ,則以(x3,y3)為分割點(diǎn),將原線段s進(jìn)行二分割,分割成以(x1,y1),(x3,y3)為端點(diǎn)的線段s1和以(x3,y3),(x2,y2)為端點(diǎn)的線段s2,并將集合s中元素的坐標(biāo)點(diǎn)靠近s1的元素分為一個(gè)子集,靠近s2的分為另一個(gè)子集;對(duì)于每個(gè)子集合,用該子集合替換步驟54和步驟55中的集合s,并重復(fù)執(zhí)行步驟54和步驟55;若r≤φ,則當(dāng)前子集sk確定一條直線,k初始值為1,每當(dāng)一個(gè)集合能確定一條直線k就自增1,φ為比率閾值;

步驟56、經(jīng)過(guò)步驟55,集合s被劃分成若干個(gè)子集:{s1,s2,...,sn},n為s被劃分成的子集個(gè)數(shù);取矩陣g′的第n行第1列元素的左下方任意一點(diǎn)作為坐標(biāo)原點(diǎn)(0,0),以矩陣g′的行方向?yàn)閤軸正方向,以矩陣g′的列方向?yàn)閥軸正方向,構(gòu)建出平面直角坐標(biāo)系,使得矩陣g′位于該坐標(biāo)系的第一象限;在步驟55得到的每個(gè)子集中,選取υ個(gè)元素,過(guò)這些元素作與x軸負(fù)方向且直線向上方向的夾角為1度到180度的直線,以<距離,夾角>的形式記錄坐標(biāo)原點(diǎn)(0,0)到每條直線的距離和每條直線向上方向與x軸負(fù)方向形成的夾角;

步驟57、對(duì)于每一組<距離,夾角>,統(tǒng)計(jì)與其在距離和夾角上都相同的<距離,夾角>的個(gè)數(shù),若個(gè)數(shù)大于ε,則該<距離,夾角>確定一條直線,ε為一條直線上的元素個(gè)數(shù)閾值;

步驟6、統(tǒng)計(jì)矩陣g′中直線密集的區(qū)域,將該區(qū)域作為斑馬線所在的區(qū)域,具體步驟如下:

步驟61、對(duì)步驟57確定出的若干條直線,統(tǒng)計(jì)在1度到180度上每個(gè)角度所對(duì)應(yīng)的直線數(shù)量:若某一直線向上方向與x軸負(fù)方向的夾角為α°,則α°對(duì)應(yīng)的直線數(shù)量加1;

步驟62、對(duì)同一角度上的所有直線按離原點(diǎn)(0,0)的距離從小到大進(jìn)行排序;對(duì)于每一個(gè)角度,按照距離從近到遠(yuǎn)掃描該角度上的所有直線:定義計(jì)數(shù)變量cnt=1,從第2條直線到最后一條直線逐條判斷,若當(dāng)前判斷直線與前一條直線距離在γ以內(nèi),則cnt=cnt+1,否則cnt=1;對(duì)該角度上所有直線判斷完畢后,若cnt>δ,則選定該角度的直線所在區(qū)域?yàn)榘唏R線區(qū)域;否則該角度上不存在斑馬線區(qū)域,δ為直線數(shù)量閾值,γ為直線間的距離閾值。

作為本發(fā)明所述的一種基于快速霍夫變換的路口斑馬線檢測(cè)方法進(jìn)一步優(yōu)化方案,所述步驟1具體如下:采集公路圖像,對(duì)公路圖像中每個(gè)像素點(diǎn)的紅、綠、藍(lán)三個(gè)色彩值取平均,取得的平均值作為該像素點(diǎn)的灰度值。

作為本發(fā)明所述的一種基于快速霍夫變換的路口斑馬線檢測(cè)方法進(jìn)一步優(yōu)化方案,所述步驟21中高斯函數(shù)為:其中,α為調(diào)節(jié)參數(shù)且代表模糊矩陣中元素的離散程度,δx為模糊矩陣中的元素與模糊矩陣中心點(diǎn)的橫坐標(biāo)方向的距離,δy為模糊矩陣中的元素與模糊矩陣中心點(diǎn)的縱坐標(biāo)方向的距離,e為自然底數(shù)。

作為本發(fā)明所述的一種基于快速霍夫變換的路口斑馬線檢測(cè)方法進(jìn)一步優(yōu)化方案,所述步驟4中ω=75%;

作為本發(fā)明所述的一種基于快速霍夫變換的路口斑馬線檢測(cè)方法進(jìn)一步優(yōu)化方案,所述步驟5中υ的取值為4或5。

本發(fā)明采用以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)效果:

(1)本發(fā)明提出一種基于快速霍夫變換的路口斑馬線檢測(cè)方法,其完整的方法過(guò)程包括對(duì)圖像進(jìn)行灰度處理和高斯濾波處理,再通過(guò)canny算子提取出圖像的邊緣,對(duì)邊緣圖像進(jìn)行快速霍夫變換得到圖像中直線所在的位置,根據(jù)直線的密集程度判斷出路口斑馬線所在的區(qū)域;

(2)本發(fā)明通過(guò)對(duì)圖像進(jìn)行高斯濾波,有效地減少原始圖像存在的噪聲干擾提高識(shí)別的準(zhǔn)確性;

(3)本發(fā)明采用雙閾值法對(duì)圖像邊緣進(jìn)行提取,有效減少圖像中的假邊緣數(shù)并對(duì)圖像邊緣的不連貫區(qū)域進(jìn)行連接;

(4)本發(fā)明通過(guò)快速霍夫變換先對(duì)圖像中近似在同一直線的元素進(jìn)行聚合,再對(duì)聚合元素中的5-6個(gè)元素進(jìn)行霍夫變化即可確定出一條直線,大大改善了傳統(tǒng)霍夫變換計(jì)算量大的缺點(diǎn)。

附圖說(shuō)明

圖1是基于快速霍夫變換的路口斑馬線檢測(cè)方法流程。

圖2是公路圖像實(shí)例。

圖3是圖像邊緣檢測(cè)實(shí)例。

圖4是霍夫變換效果圖。

具體實(shí)施方式

下面結(jié)合附圖對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)說(shuō)明:

根據(jù)附圖1所示快速霍夫變換的路口斑馬線檢測(cè)方法對(duì)應(yīng)的流程圖,附圖2所示公路圖像實(shí)例,附圖3所示圖像邊緣檢測(cè)實(shí)例,附圖4所示霍夫變換效果圖,本發(fā)明具體實(shí)施方式為:

1)輸入公路圖像如附圖1所示,對(duì)圖像進(jìn)行灰度處理得到處理后的n×n圖像矩陣g,n代表g中的行數(shù)和列數(shù),具體步驟如下:

11)對(duì)圖像中每個(gè)像素點(diǎn)的紅、綠、藍(lán)三個(gè)色彩值取平均,取得的平均值作為該像素點(diǎn)的灰度值。

2)對(duì)g進(jìn)行高斯濾波操作,具體步驟如下:

21)定義模糊半徑r=3和大小為3*3的模糊矩陣p,利用高斯函數(shù)計(jì)算p中每個(gè)元素的值,計(jì)算結(jié)果如下:

22)對(duì)p中的元素做歸一化處理:計(jì)算p中元素的和sp,并將p中每個(gè)元素除以sp,得到歸一化后的矩陣p:

23)定義矩陣g′=g,計(jì)算更新從而得到更新后的矩陣g′,更新后的矩陣g′為n行n列;其中,為向下取整,p(i′,j′)代表p中第i′行和第j′列的元素,g(i′,j′)代表g中第i′行和第j′列的元素,g′(i,j)為更新后的矩陣g′中第i行和第j列的元素;

3)對(duì)步驟2)得到的矩陣g′做邊緣檢測(cè)。具體步驟如下:

31)計(jì)算g′(i,j)的水平方向梯度dx(i,j)=g′(i,j+1)-g′(i,j)。

32)計(jì)算g′(i,j)的垂直方向梯度dy(i,j)=g′(i+1,j)-g′(i,j)。

33)計(jì)算g′(i,j)的梯度值和梯度方向

34)對(duì)g′中每個(gè)元素的梯度值進(jìn)行非極大值抑制:對(duì)于元素g′(i,j),若在α(i,j)方向上的若干個(gè)元素梯度值當(dāng)中,d(i,j)為極大,則g′(i,j)=255;否則g′(i,j)=0。以矩陣為例,該矩陣對(duì)應(yīng)的梯度矩陣為假設(shè)a(2,2)的梯度方向?yàn)?0度,則比較b(2,2)和b(1,3),b(3,1)的大小,因?yàn)閎(2,2)并非局部最大,所以a(2,2)的值就賦為255。再假設(shè)a(3,3)的梯度方向?yàn)?35度,由于b(3,3)在b(1,1)和b(2,2)中是局部最大,所以a(3,3)的值就賦為0。

4)用雙閾值算法對(duì)g′中的邊緣進(jìn)行連接,具體步驟如下:

41)定義一個(gè)高閾值λ,對(duì)g′中的元素按梯度值進(jìn)行排序,排序后的元素個(gè)數(shù)為m個(gè);取排序后的前0.75*m個(gè)元素中梯度值最大的元素,該元素所對(duì)應(yīng)的梯度值作為λ的值,其中0.75*m下取整整數(shù);掃描g′中的每個(gè)元素,對(duì)于元素g′(i,j),若d(i,j)<λ,則g′(i,j)=255,否則g′(i,j)不變;

42)定義一個(gè)低閾值μ,且對(duì)g′中元素值為0的元素做判斷:若與該元素距離為1的鄰域內(nèi)的元素值都等于255,則將鄰域內(nèi)的元素梯度值與μ比較,將梯度值大于μ的元素的值賦為0。

43)重復(fù)步驟42),直到對(duì)g′中所有的元素都判斷完畢,得到如附圖3所示的邊緣檢測(cè)效果圖。

5)對(duì)矩陣g′中的元素進(jìn)行快速霍夫變換。具體步驟如下:

51)在g′中任取一個(gè)點(diǎn)g′(i,j),判斷g′(i,j)是否等于0,若是則把該點(diǎn)加入集合s中,執(zhí)行步驟52),否則重新執(zhí)行步驟51)。

52)記新加入集合s中的點(diǎn)為q,依次對(duì)q鄰域內(nèi)的元素進(jìn)行判斷,若q的鄰域中存在像素點(diǎn)的值等于0的元素,且該元素不屬于集合s,則把該元素加入s中。

53)重復(fù)步驟52)直到集合s不再擴(kuò)大為止。

54)選取集合s中距離最遠(yuǎn)的兩個(gè)點(diǎn)作為線段s的端點(diǎn),線段s的端點(diǎn)坐標(biāo)分別記為(x1,y1)和(x2,y2),計(jì)算集合s中該線段最大的偏離距離d=max{[(y3-y1)(x2-x1)-(x3-x1)(y2-y1)]/l},(x3,y3)為集合s中元素的坐標(biāo),且(x3,y3)≠(x1,y1),(x2,y2);所述

55)定義偏離比若集合s的偏離比r>0.2,則以(x3,y3)為分割點(diǎn),將原線段s進(jìn)行二分割,分割成以(x1,y1),(x3,y3)為端點(diǎn)的線段s1和以(x3,y3),(x2,y2)為端點(diǎn)的線段s2,并將集合s中元素坐標(biāo)點(diǎn)靠近s1的元素分為一個(gè)子集,靠近s2的分為另一個(gè)子集;對(duì)于每個(gè)子集合,用該子集合替換步驟54和步驟55中的s,并重復(fù)執(zhí)行步驟54和步驟55;若r≤0.2,則當(dāng)前子集sk確定一條直線,k初始值為1,每當(dāng)一個(gè)集合能確定一條直線k就自增1,φ為比率閾值;

56)經(jīng)過(guò)步驟55)集合s被劃分成若干個(gè)子集:{s1,s2,...,sn},n為s被劃分成的子集個(gè)數(shù)。取矩陣g′的第n行第1列元素的左下方任意一點(diǎn)作為坐標(biāo)原點(diǎn)(0,0),以矩陣g′的行方向?yàn)閤軸正方向,以矩陣g′的列方向?yàn)閥軸正方向,構(gòu)建出平面直角坐標(biāo)系,使得矩陣g′位于該坐標(biāo)系的第一象限;在步驟55得到的每個(gè)子集中,選取5-6個(gè)元素,過(guò)這些元素作與x軸負(fù)方向且直線向上方向的夾角為1度到180度的直線,以<距離,夾角>的形式記錄坐標(biāo)原點(diǎn)(0,0)到每條直線的距離和每條直線向上方向與x軸負(fù)方向形成的夾角;原點(diǎn)到每條直線的距離可由公式:dr=xcosθ+ysinθ計(jì)算得到。以元素g(3,4)為例,過(guò)該元素作與橫坐標(biāo)軸夾角為60度的直線,原點(diǎn)到該直線的距離為3*cos60°+4*sin60°=4.96,把<60,4.96>記錄下來(lái)。

57)對(duì)于每一組<距離,夾角>,統(tǒng)計(jì)與其在距離和夾角上都相同的<距離,夾角>的個(gè)數(shù),若個(gè)數(shù)大于4,則該<距離,夾角>確定一條直線。

6)統(tǒng)計(jì)圖像矩陣g′中直線密集的區(qū)域,把該區(qū)域作為斑馬線所在的區(qū)域,具體步驟如下:

61)對(duì)步驟57)確定出的若干條直線,統(tǒng)計(jì)在1度到180度上每個(gè)角度所對(duì)應(yīng)的直線數(shù)量:若某一直線向上方向與x軸負(fù)方向的夾角為α°,則α°對(duì)應(yīng)的直線數(shù)量加1

62)對(duì)同一角度上的所有直線按離原點(diǎn)(0,0)的距離從小到大進(jìn)行排序。對(duì)于每一個(gè)角度,按照距離從近到遠(yuǎn)掃描該角度上的所有直線:定義計(jì)數(shù)變量cnt=1,從第2條直線到最后一條直線逐條判斷,若當(dāng)前判斷直線與前一條直線距離在γ以內(nèi),則cnt=cnt+1,否則cnt=1。對(duì)該角度上所有直線判斷完畢后,若cnt>δ,則選定該角度的直線所在區(qū)域?yàn)榘唏R線區(qū)域;否則該角度上不存在斑馬線區(qū)域,δ為直線數(shù)量閾值,γ為直線間的距離閾值。

本發(fā)明能精確快速地檢測(cè)出斑馬線所在區(qū)域,通過(guò)高斯濾波減少原始圖像中存在的噪聲干擾,而且在邊緣提取過(guò)程中采用雙閾值法減少了假邊緣的數(shù)量,對(duì)后序快速霍夫變換提取直線的準(zhǔn)確性起到至關(guān)重要的作用。

以上內(nèi)容是結(jié)合具體的優(yōu)選實(shí)施方式對(duì)本發(fā)明所作的進(jìn)一步詳細(xì)說(shuō)明,不能認(rèn)定本發(fā)明的具體實(shí)施只局限于這些說(shuō)明。對(duì)于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡(jiǎn)單推演或替代,都應(yīng)當(dāng)視為屬于本發(fā)明的保護(hù)范圍。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1