本發(fā)明涉及一種交通標(biāo)志的定位方法,尤其涉及一種自然場(chǎng)景中圓形交通標(biāo)志的定位方法。
背景技術(shù):
汽車是現(xiàn)代社會(huì)必不可少的交通工具之一。汽車在大規(guī)模普及的同時(shí)也帶來了一系列的交通問題,尤其是交通堵塞問題。智能交通系統(tǒng)將智能控制技術(shù)、通信技術(shù)、傳感器技術(shù)、人工智能和模式識(shí)別等先進(jìn)技術(shù)運(yùn)用于交通運(yùn)輸和智能調(diào)度,從而形成一種自動(dòng)、智能、高效、便捷的交通運(yùn)輸調(diào)度與管理系統(tǒng)。
交通標(biāo)志識(shí)別是智能交通系統(tǒng)必須解決的科學(xué)問題。交通標(biāo)志識(shí)別包含兩項(xiàng)子任務(wù):圖像中交通標(biāo)志的定位以及其類別的識(shí)別。如何在復(fù)雜的自然場(chǎng)景下,準(zhǔn)確的定位到圖像中交通標(biāo)志對(duì)應(yīng)的子區(qū)域,是交通標(biāo)志識(shí)別的一個(gè)基礎(chǔ)并且重要的問題。在進(jìn)行目標(biāo)區(qū)域定位時(shí),現(xiàn)有的算法通常都借用Hough變換等方法進(jìn)行定位。但對(duì)于復(fù)雜的自然場(chǎng)景中的圖像而言,由于干擾點(diǎn)較多,定位到正確目標(biāo)區(qū)域的成功率較低。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種自然場(chǎng)景中圓形交通標(biāo)志定位方法,能夠在較為復(fù)雜的自然場(chǎng)景中準(zhǔn)確地定位一幅圖像中圓形交通標(biāo)志對(duì)應(yīng)的子區(qū)域,有效克服了現(xiàn)有定位方法因圖像形變而導(dǎo)致定位成功率較低的缺陷,極大地提高了定位效率及定位精度。
本發(fā)明采用下述技術(shù)方案:
一種自然場(chǎng)景中圓形交通標(biāo)志定位方法,依次包括以下步驟:
A:利用圓形交通標(biāo)志的顏色特征,在將原始圖像的RGB色彩模型轉(zhuǎn)化為HSV色彩模型后,把符合紅色所對(duì)應(yīng)的顏色空間范圍的像素點(diǎn)作為候選像素點(diǎn),所有候選像素點(diǎn)所構(gòu)成的各個(gè)子區(qū)域作為圖像中可能包含圓形交通標(biāo)志的候選區(qū)域;
B:對(duì)轉(zhuǎn)化為HSV色彩模型的原始圖像進(jìn)行二值化處理和中值濾波,得到二值圖像;
C:利用Susan算子,在步驟B所得到的二值圖像中確定位于候選區(qū)域邊緣的候選像素點(diǎn),并保留作為邊緣點(diǎn);
D:對(duì)步驟C保留下來的每個(gè)邊緣點(diǎn),使用Sobel算子分別計(jì)算每個(gè)邊緣點(diǎn)的梯度方向;
E:將步驟D中保留的三個(gè)邊緣點(diǎn)為一組邊緣點(diǎn)組,尋找滿足橢圓的極和極弦性質(zhì)的所有的邊緣點(diǎn)組的集合;
F:對(duì)于步驟E中得到的滿足橢圓的極和極弦性質(zhì)的所有的邊緣點(diǎn)組的集合,利用橢圓的一般方程公式,求解所有的橢圓方程,并將對(duì)應(yīng)的橢圓加入橢圓候選集合中;
G:對(duì)步驟F中得出的橢圓候選集合中的橢圓進(jìn)行篩選,剔除橢圓候選集合中實(shí)際上不存在的橢圓,將最終保留下來的橢圓候選集合中的橢圓作為最終定位的圓形交通標(biāo)志所在的位置。
所述的步驟A包括以下具體步驟:
A1:使用如下公式將原始圖像的色彩模型從RGB轉(zhuǎn)化為HSV,
v=max
其中,r、g和b分別為圖像RGB色彩模型中紅色、綠色以及藍(lán)色的強(qiáng)度值;max為r、g和b中的最大者;min為r、g和b中的最小者;
A2:設(shè)定紅色所對(duì)應(yīng)的顏色空間范圍是:H∈[0°,16°]∪[315°,360°],S∈[40%,100%],V∈[10%,80%],將圖像中符合設(shè)定的紅色所對(duì)應(yīng)的顏色空間范圍的像素點(diǎn)作為候選像素點(diǎn)并進(jìn)行保存,所有候選像素點(diǎn)所構(gòu)成的各個(gè)子區(qū)域作為圖像中可能包含圓形交通標(biāo)志的候選區(qū)域。
所述的步驟B包括以下具體步驟:
B1:在轉(zhuǎn)化為HSV色彩模型的原始圖像中,將步驟A2中保存下來的候選像素點(diǎn)的像素值設(shè)置為1;將候選像素點(diǎn)以外的其它像素點(diǎn)的像素值設(shè)置為0,得到二值圖像;
B2:對(duì)B1步驟得到的二值圖像進(jìn)行中值濾波,最終得到中值濾波后二值圖像中像素值為1的每一個(gè)像素點(diǎn);
中值濾波的具體方法如下:
對(duì)于步驟B1中得到的二值圖像中像素值為1且具有8個(gè)相鄰像素點(diǎn)的每一個(gè)像素點(diǎn)Pn,將像素點(diǎn)Pn及與其相鄰的8個(gè)像素點(diǎn)作為一個(gè)觀察窗,觀察窗中9個(gè)像素點(diǎn)形成3×3矩陣排列,從左至右、從上至下依次為Pn-4、Pn-3、Pn-2、Pn-1、Pn、Pn+1、Pn+2、Pn+3和Pn+4;然后,判斷該觀察窗內(nèi)像素值為1的像素點(diǎn)的個(gè)數(shù)是否大于5,如果大于5,則Pn像素點(diǎn)的像素值保持不變;否則將Pn的像素值設(shè)為0;最終得到中值濾波后二值圖像中像素值為1的每一個(gè)像素點(diǎn)。
所述的步驟C包括以下具體步驟:
C1:對(duì)步驟B2中最終得到的中值濾波后二值圖像中像素值為1的每一個(gè)像素點(diǎn),在轉(zhuǎn)化為HSV色彩模型的原始圖像中進(jìn)行查找并使用其對(duì)應(yīng)的灰度值,得到一個(gè)灰度圖像;
C2:對(duì)于C1步驟中得到的灰度圖像進(jìn)行邊緣檢測(cè),確定位于候選區(qū)域邊緣的候選像素點(diǎn),并保留作為邊緣點(diǎn)。
步驟C2的具體方法如下:
初始化兩個(gè)變量a和b,a和b的初始值均為0,將一個(gè)圓形模板放置在該灰度圖像中的不同位置,將圓形模板所包含區(qū)域的中心點(diǎn)Pm與該區(qū)域中的其它每個(gè)點(diǎn)的灰度值用如下公式進(jìn)行比較,如果兩者灰度值差值的絕對(duì)值小于等于閾值t,則a加1,否則b加1;設(shè)定閾值f,若最終a的值小于閾值f,則判定該P(yáng)m為邊緣點(diǎn),并保留Pm;否則,不保留Pm。
其中,圓形模板的半徑radius為[3,5]之間的一個(gè)整數(shù),圓形模板所包含區(qū)域的中心點(diǎn)Pm的灰度值為I(x0,y0),m為middle的首字母縮寫,圓形模板所包含區(qū)域中的其它點(diǎn)即待比較點(diǎn)c(x,y)的灰度值為I(x,y),閾值t為(0,0.5)之間的一個(gè)浮點(diǎn)數(shù),閾值f為
所述的步驟D中梯度方向計(jì)算方法如下:
設(shè)一個(gè)觀察窗內(nèi)9個(gè)像素點(diǎn)形成3×3矩陣排列,從左至右、從上至下依次為Pn-4、Pn-3、Pn-2、Pn-1、Pn、Pn+1、Pn+2、Pn+3和Pn+4;觀察窗內(nèi)9個(gè)像素點(diǎn)所對(duì)應(yīng)的灰度值依次為An-4、An-3、An-2、An-1、An、An+1、An+2、An+3和An+4;邊緣點(diǎn)Pn即為位于觀察窗中心位置的像素點(diǎn),利用Sobel算子計(jì)算邊緣點(diǎn)Pn的梯度方向?yàn)椋?/p>
Gx=(An+2+2An+3+An+4)-(An-4+2An-3+An-2)
Gy=(An-2+2An+1+An+4)-(An-4+2An-1+An+2);
其中,Gx為經(jīng)橫向邊緣檢測(cè)的圖像灰度值,Gy為經(jīng)縱向邊緣檢測(cè)的圖像灰度值;
邊緣點(diǎn)Pn的梯度方向θ為:
所述的步驟E包括以下具體步驟:
E1:在步驟D保留的所有邊緣點(diǎn)中,隨機(jī)選取兩個(gè)邊緣點(diǎn)Pr和Pv;
E2:對(duì)兩個(gè)邊緣點(diǎn)Pr和Pv,假定它們位于同一個(gè)橢圓,利用橢圓的極和極弦性質(zhì),尋找與這兩個(gè)點(diǎn)位于同一個(gè)橢圓上的第三個(gè)點(diǎn);具體方法如下:
首先利用步驟D中得到的邊緣點(diǎn)Pr和Pv所對(duì)應(yīng)的梯度方向,分別計(jì)算與邊緣點(diǎn)Pr和Pv對(duì)應(yīng)的梯度方向垂直的方向并分別作為邊緣點(diǎn)Pr和Pv的切線方向;再令邊緣點(diǎn)Pr的切線為PrT,邊緣點(diǎn)Pv的切線為PvT,求切線PrT和切線PvT的交點(diǎn)T;令M點(diǎn)為線段PrPv的中點(diǎn),連接MT,再令點(diǎn)G為MT的中點(diǎn);
然后,從步驟D中保留的所有邊緣點(diǎn)中找出位于線段GM上的所有邊緣點(diǎn)的集合,記為S1;對(duì)S1中的每個(gè)邊緣點(diǎn),根據(jù)步驟D中得到的每個(gè)邊緣點(diǎn)對(duì)應(yīng)的梯度方向,計(jì)算與該梯度方向垂直的方向并作為該邊緣點(diǎn)的切線方向,如果該邊緣點(diǎn)的切線方向與PrPv的夾角小于閾值J,則記該點(diǎn)為Pw;
最后,將{Pr,Pv,Pw}作為一組,加入邊緣點(diǎn)組的集合S2中,閾值J為夾角角度,范圍為(0°,10°)之間;
E3:循環(huán)執(zhí)行步驟E1和E2,直到循環(huán)的次數(shù)達(dá)到閾值H,設(shè)w為(0,20]之間的一個(gè)浮點(diǎn)數(shù),|S1|為集合S1中元素的個(gè)數(shù),閾值H為w*|S1|;
E4:步驟執(zhí)行完畢后,得到滿足橢圓的極和極弦性質(zhì)的所有的邊緣點(diǎn)組的集合S2。
所述的步驟E1中,隨機(jī)選取的兩個(gè)邊緣點(diǎn)Pr和Pv之間的距離大于等于d,閾值d為(0,2)之間的一個(gè)浮點(diǎn)數(shù)。
所述的步驟F包括以下具體步驟:
F1:從邊緣點(diǎn)組的集合中隨機(jī)選取兩個(gè)邊緣點(diǎn)組,共6個(gè)邊緣點(diǎn),對(duì)可能存在的橢圓進(jìn)行擬合,將這6個(gè)邊緣點(diǎn)都帶入到下述公式中的橢圓的一般方程中,得到一個(gè)超定線性方程組,然后利用最小二乘法求解該方程組,解出橢圓的方程;將該橢圓加入橢圓候選集合S3中;
其中,A、B、C、D、E為待求解的5個(gè)自由參數(shù),F(xiàn)可以設(shè)定為任意值;
F2:循環(huán)執(zhí)行步驟F1,直到循環(huán)次數(shù)達(dá)到閾值U,閾值U為k*|S2|,k為(0,20]之間的一個(gè)浮點(diǎn)數(shù),|S2|為集合S2中元素的個(gè)數(shù);
F3:步驟F2執(zhí)行完畢后,得到最終的橢圓候選集合。
所述的步驟G包括以下具體步驟:
G1:對(duì)橢圓候選集合中的每一個(gè)橢圓,剔除長短軸小于閾值Q的橢圓,閾值Q為(0,20)之間的一個(gè)浮點(diǎn)數(shù);
G2:對(duì)于經(jīng)步驟G1剔除后剩余的每個(gè)橢圓Ri,i=1,2,3,……,統(tǒng)計(jì)位于該橢圓上的邊緣點(diǎn)數(shù)量;
邊緣點(diǎn)數(shù)量統(tǒng)計(jì)方法如下:
初始化一個(gè)變量gi,i=1,2,3,……,gi初始值為0,設(shè)步驟D中得到的邊緣點(diǎn)為Ph,過邊緣點(diǎn)Ph做x軸和y軸的平行線,x軸和y軸的平行線分別與該橢圓Ri相交于點(diǎn)W1,W2,W3和W4,若點(diǎn)W1,W2,W3和W4中至少有一個(gè)點(diǎn)與邊緣點(diǎn)Ph的距離小于閾值U,則認(rèn)為邊緣點(diǎn)Ph在橢圓Ri上,然后gi的值加1;其中,閾值U為(0,1)之間的一個(gè)浮點(diǎn)數(shù);
G3:對(duì)于步驟G2中的每個(gè)橢圓Ri,以及其對(duì)應(yīng)的gi值,設(shè)橢圓周長為Li,i=1,2,3,……,閾值為z%,z是取值范圍為(0,100]的一個(gè)浮點(diǎn)數(shù),若gi>Li*z%,則認(rèn)為橢圓Ri是真實(shí)存在的并在橢圓候選集合保留Ri;否則將Ri從橢圓候選集合中移除;
G4:將步驟G3執(zhí)行完畢后橢圓候選集合中所保留下來的橢圓作為最終定位的圓形交通標(biāo)志所在的位置。
本發(fā)明采用高準(zhǔn)確率的橢圓擬合算法,基于圓形交通標(biāo)志由紅色環(huán)形區(qū)域包圍的這一顯著特點(diǎn),以橢圓的幾何性質(zhì)為基礎(chǔ),將圓形交通標(biāo)志定位劃分為顏色分割和基于幾何形狀的橢圓檢測(cè)兩個(gè)階段。本發(fā)明在顏色分割階段過濾大部分干擾信息,極大地提高了交通標(biāo)志定位的速度與準(zhǔn)確率;且在橢圓檢測(cè)階段使用兩組可能存在于橢圓上的邊緣點(diǎn)進(jìn)行擬合,最終在圖像中準(zhǔn)確定位圓形交通標(biāo)志所在的子區(qū)域,有效克服了現(xiàn)有定位方法因圖像形變而導(dǎo)致定位成功率較低的缺陷,極大地提高了定位效率及定位精度。
附圖說明
圖1為本發(fā)明的流程示意圖;
圖2為像素點(diǎn)P5及與其相鄰的8個(gè)像素點(diǎn)所組成的一個(gè)觀察窗的位置示意圖;
圖3為圖2中各個(gè)像素點(diǎn)所對(duì)應(yīng)的灰度值的位置示意圖;
圖4是橢圓極和極弦的位置關(guān)系示意圖;
圖5是檢測(cè)邊緣點(diǎn)是否在橢圓上的位置關(guān)系示意圖。
具體實(shí)施方式
以下結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作以詳細(xì)的描述:
自然場(chǎng)景中的圓形交通標(biāo)志由于拍攝角度等問題,很有可能產(chǎn)生形變,在拍攝后圖片中呈現(xiàn)為一個(gè)橢圓。本發(fā)明針對(duì)這種情況,設(shè)計(jì)一種算法對(duì)圖像中可能呈現(xiàn)為橢圓形狀的交通標(biāo)志進(jìn)行檢測(cè),極大地提高了本申請(qǐng)的魯棒性和定位的準(zhǔn)確率。
如圖1所示,本發(fā)明所述的自然場(chǎng)景中圓形交通標(biāo)志定位方法,基于圓形交通標(biāo)志由紅色環(huán)形區(qū)域包圍這一顯著特點(diǎn),以橢圓的幾何性質(zhì)為基礎(chǔ),將圓形交通標(biāo)志定位方法劃分為顏色分割和基于幾何形狀的橢圓檢測(cè)兩個(gè)階段。其中,顏色分割階段對(duì)應(yīng)本申請(qǐng)中的步驟A和步驟B,即將輸入圖像的顏色空間從RGB轉(zhuǎn)化為HSV,然后利用紅色所對(duì)應(yīng)的顏色空間范圍對(duì)圖像中可能包含圓形交通標(biāo)志的區(qū)域進(jìn)行初步定位并得到候選區(qū)域?;趲缀涡螤畹臋E圓檢測(cè)階段對(duì)應(yīng)本申請(qǐng)中的步驟C、D、E、F和G,該階段對(duì)顏色分割階段中得到的候選區(qū)域進(jìn)行二值化處理和邊緣檢測(cè),以進(jìn)行濾波,并針對(duì)交通標(biāo)志所特有的圓形特征,利用改進(jìn)的Hough變換算法進(jìn)行橢圓區(qū)域搜索,最后篩選出最符合橢圓特征的目標(biāo)區(qū)域。
以下結(jié)合具體實(shí)施例對(duì)本發(fā)明所述的自然場(chǎng)景中圓形交通標(biāo)志定位方法進(jìn)行進(jìn)一步闡述:
A:利用圓形交通標(biāo)志的顏色特征,在將原始圖像的RGB色彩模型轉(zhuǎn)化為HSV色彩模型后,把符合紅色所對(duì)應(yīng)的顏色空間范圍的像素點(diǎn)作為候選像素點(diǎn),所有候選像素點(diǎn)所構(gòu)成的各個(gè)子區(qū)域作為圖像中可能包含圓形交通標(biāo)志的候選區(qū)域。
其中,步驟A包括以下具體步驟:
A1:首先,使用公式(1)將原始圖像的色彩模型從RGB轉(zhuǎn)化為HSV。
v=max
其中,r、g和b分別為圖像RGB色彩模型中紅色、綠色以及藍(lán)色的強(qiáng)度值;max為r、g和b中的最大者;min為r、g和b中的最小者。
A2:根據(jù)紅色所對(duì)應(yīng)的顏色空間范圍初步定位出圖像中可能包含圓形交通標(biāo)志的候選區(qū)域。
交通標(biāo)志中的紅色在標(biāo)準(zhǔn)的HSV色彩模型中表現(xiàn)為H=0°,S=100%,V=100%。但由于自然環(huán)境中天氣和光線等條件的影響,會(huì)產(chǎn)生一定程度的失真。為了進(jìn)一步保證魯棒性,本發(fā)明還特殊定義了紅色所對(duì)應(yīng)的顏色空間范圍,最后選取的紅色范圍是:H∈[0°,16°]∪[315°,360°],S∈[40%,100%],V∈[10%,80%]。本發(fā)明所特殊選取的紅色范圍,能夠穩(wěn)定有效地分割出包含交通標(biāo)志信息的目標(biāo)區(qū)域,過濾掉大部分不屬于交通標(biāo)志的區(qū)域,極大地提高了交通標(biāo)志定位的速度與準(zhǔn)確率。最后,將圖像中符合自定義的紅色所對(duì)應(yīng)的顏色空間范圍的像素點(diǎn)作為候選像素點(diǎn)并進(jìn)行保存,所有候選像素點(diǎn)所構(gòu)成的各個(gè)子區(qū)域作為圖像中可能包含圓形交通標(biāo)志的候選區(qū)域。
B:對(duì)轉(zhuǎn)化為HSV色彩模型的原始圖像進(jìn)行二值化處理和中值濾波,得到二值圖像。
其中,步驟B包括以下具體步驟:
B1:在轉(zhuǎn)化為HSV色彩模型的原始圖像中,將步驟A2中保存下來的候選像素點(diǎn)的像素值設(shè)置為1;將候選像素點(diǎn)以外的其它像素點(diǎn)的像素值設(shè)置為0,得到二值圖像。
B2:由于自然場(chǎng)景中的圖像一般含有較多噪聲,因此本步驟中對(duì)B1步驟得到的二值圖像進(jìn)行中值濾波,最終得到中值濾波后二值圖像中像素值為1的每一個(gè)像素點(diǎn)。
中值濾波的具體方法如下:
對(duì)于步驟B1中得到的二值圖像中像素值為1且具有8個(gè)相鄰像素點(diǎn)的每一個(gè)像素點(diǎn)Pn,將像素點(diǎn)Pn及與其相鄰的8個(gè)像素點(diǎn)作為一個(gè)觀察窗,觀察窗中9個(gè)像素點(diǎn)形成3×3矩陣排列,從左至右、從上至下依次為Pn-4、Pn-3、Pn-2、Pn-1、Pn、Pn+1、Pn+2、Pn+3和Pn+4;然后,判斷該觀察窗內(nèi)像素值為1的像素點(diǎn)的個(gè)數(shù)是否大于5,如果大于5,則Pn像素點(diǎn)的像素值保持不變;否則將Pn的像素值設(shè)為0;最終得到中值濾波后二值圖像中像素值為1的每一個(gè)像素點(diǎn)。
本實(shí)施例中,如圖2所示,觀察窗中9個(gè)像素點(diǎn)從左至右、從上至下依次為P1、P2、P3、P4、P5、P6、P7、P8和P9。
C:利用Susan算子,在步驟B所得到的二值圖像中確定位于候選區(qū)域邊緣的候選像素點(diǎn),并保留作為邊緣點(diǎn)。
其中,步驟C包括以下具體步驟:
C1:對(duì)步驟B2中最終得到的中值濾波后二值圖像中像素值為1的每一個(gè)像素點(diǎn),在轉(zhuǎn)化為HSV色彩模型的原始圖像中進(jìn)行查找并使用其對(duì)應(yīng)的灰度值,得到一個(gè)灰度圖像。
C2:對(duì)于C1步驟中得到的灰度圖像進(jìn)行邊緣檢測(cè),確定出位于候選區(qū)域邊緣的候選像素點(diǎn)并保留作為邊緣點(diǎn),具體方法如下:
初始化兩個(gè)變量a和b,a和b的初始值均為0,將一個(gè)圓形模板放置在該灰度圖像中的不同位置,將圓形模板所包含區(qū)域的中心點(diǎn)Pm與該區(qū)域中的其它每個(gè)點(diǎn)的灰度值用公式(2)進(jìn)行比較,如果兩者灰度值差值的絕對(duì)值小于等于閾值t,則a加1,否則b加1;設(shè)定閾值f,若最終a的值小于閾值f,則判定該P(yáng)m為邊緣點(diǎn),并保留Pm;否則,不保留Pm。
其中,,圓形模板的半徑radius為[3,5]之間的一個(gè)整數(shù),圓形模板所包含區(qū)域的中心點(diǎn)Pm的灰度值為I(x0,y0),m為middle的首字母縮寫,圓形模板所包含區(qū)域中的其它點(diǎn)即待比較點(diǎn)c(x,y)的灰度值為I(x,y),閾值t為(0,0.5)之間的一個(gè)浮點(diǎn)數(shù),閾值f為
D:對(duì)步驟C保留下來的每個(gè)邊緣點(diǎn),使用Sobel算子分別計(jì)算每個(gè)邊緣點(diǎn)的梯度方向。
對(duì)步驟C保留下來的每個(gè)邊緣點(diǎn),分別計(jì)算其梯度方向,梯度方向計(jì)算方法如下:
設(shè)一個(gè)觀察窗內(nèi)9個(gè)像素點(diǎn)形成3×3矩陣排列,從左至右、從上至下依次為Pn-4、Pn-3、Pn-2、Pn-1、Pn、Pn+1、Pn+2、Pn+3和Pn+4;觀察窗內(nèi)9個(gè)像素點(diǎn)所對(duì)應(yīng)的灰度值依次為An-4、An-3、An-2、An-1、An、An+1、An+2、An+3和An+4;邊緣點(diǎn)Pn即為位于觀察窗中心位置的像素點(diǎn),利用Sobel算子計(jì)算邊緣點(diǎn)Pn的梯度方向?yàn)椋?/p>
其中,Gx為經(jīng)橫向邊緣檢測(cè)的圖像灰度值,Gy為經(jīng)縱向邊緣檢測(cè)的圖像灰度值;
邊緣點(diǎn)Pn的梯度方向θ為:
如圖2和圖3所示,本實(shí)施例中,觀察窗中9個(gè)像素點(diǎn)從左至右、從上至下依次為P1、P2、P3、P4、P5、P6、P7、P8和P9,9個(gè)像素點(diǎn)所對(duì)應(yīng)的灰度值分別為A1,A2,…,A9,灰度值為A5的邊緣點(diǎn)P5位于觀察窗中心,利用Sobel算子可以計(jì)算邊緣點(diǎn)P5的梯度方向:
邊緣點(diǎn)P5的梯度方向θ為:
E:將步驟D中保留的三個(gè)邊緣點(diǎn)作為一組邊緣點(diǎn)組,尋找滿足橢圓的極和極弦性質(zhì)的所有的邊緣點(diǎn)組的集合。
步驟E包括以下具體步驟:
E1:在步驟D保留的所有邊緣點(diǎn)中,隨機(jī)選取兩個(gè)邊緣點(diǎn)Pr和Pv;
為了進(jìn)一步降低擬合時(shí)產(chǎn)生的誤差,本發(fā)明中設(shè)置有閾值d,隨機(jī)選取的兩個(gè)邊緣點(diǎn)Pr和Pv之間的距離大于等于d,閾值d為(0,2)之間的一個(gè)浮點(diǎn)數(shù)。閾值d的設(shè)置,能夠避免隨機(jī)選取的兩個(gè)邊緣點(diǎn)過于接近,從而杜絕兩個(gè)邊緣點(diǎn)在擬合時(shí)產(chǎn)生較大誤差的情況。
E2:對(duì)兩個(gè)邊緣點(diǎn)Pr和Pv,假定它們位于同一個(gè)橢圓,利用橢圓的極和極弦性質(zhì),尋找與這兩個(gè)點(diǎn)位于同一個(gè)橢圓上的第三個(gè)點(diǎn),方法如下:
利用步驟D中得到的邊緣點(diǎn)Pr和Pv所對(duì)應(yīng)的梯度方向,分別計(jì)算與邊緣點(diǎn)Pr和Pv對(duì)應(yīng)的梯度方向垂直的方向并分別作為邊緣點(diǎn)Pr和Pv的切線方向。令邊緣點(diǎn)Pr的切線為PrT,邊緣點(diǎn)Pv的切線為PvT,求切線PrT和切線PvT的交點(diǎn)T。令M點(diǎn)為線段PrPv的中點(diǎn),連接MT,再令點(diǎn)G為MT的中點(diǎn)。如附圖4所示。
從步驟D中保留的所有邊緣點(diǎn)中找出位于線段GM上的所有邊緣點(diǎn)的集合,記為集合S1。對(duì)集合S1中的每個(gè)邊緣點(diǎn),根據(jù)步驟D中得到的每個(gè)邊緣點(diǎn)對(duì)應(yīng)梯度方向,計(jì)算與該梯度方向垂直的方向并作為該邊緣點(diǎn)的切線方向,如果該邊緣點(diǎn)的切線方向與PrPv的夾角小于閾值J,則記該點(diǎn)為Pw。最后,將{Pr,Pv,Pw}作為一組,加入尋找滿足橢圓的極和極弦性質(zhì)所有的邊緣點(diǎn)組的集合S2中,閾值J為夾角角度,范圍為(0°,10°)之間。
E3:循環(huán)執(zhí)行步驟E1和E2,直到循環(huán)的次數(shù)達(dá)到閾值H,設(shè)w為(0,20]之間的一個(gè)浮點(diǎn)數(shù),|S1|為集合S1中元素的個(gè)數(shù),閾值H為w*|S1|。
E4:步驟執(zhí)行完畢后,得到滿足橢圓的極和極弦性質(zhì)的所有的邊緣點(diǎn)組的集合S2。
F:對(duì)于步驟E中得到的滿足橢圓的極和極弦性質(zhì)的所有的邊緣點(diǎn)組的集合S2,利用橢圓的一般方程公式,求解所有的橢圓方程,并將對(duì)應(yīng)的橢圓加入橢圓候選集合中。
步驟F包括以下具體步驟:
F1:從滿足橢圓的極和極弦性質(zhì)的所有的邊緣點(diǎn)組的集合S2中隨機(jī)選取兩個(gè)邊緣點(diǎn)組,共6個(gè)邊緣點(diǎn),對(duì)可能存在的橢圓進(jìn)行擬合,使用該方法可以較為顯著地減小點(diǎn)的分布對(duì)于真實(shí)存在的橢圓造成的影響,能夠極大地提高橢圓定位的準(zhǔn)確率。將這6個(gè)邊緣點(diǎn)都帶入到公式(5)中的橢圓的一般方程中,得到一個(gè)超定線性方程組,然后利用最小二乘法求解該方程組,解出橢圓的方程。將該橢圓加入橢圓候選集合S3中。
其中,A、B、C、D、E為待求解的5個(gè)自由參數(shù),F(xiàn)可以設(shè)定為任意值,本發(fā)明中設(shè)置F為1000.0;
F2:循環(huán)執(zhí)行步驟F1,直到循環(huán)次數(shù)達(dá)到閾值U,設(shè)k為(0,20]之間的一個(gè)浮點(diǎn)數(shù),|S2|為集合S2中元素的個(gè)數(shù),閾值U為k*|S2|。
F3:步驟執(zhí)行完畢后,得到最終的橢圓候選集合S3。
G:對(duì)步驟F中得出的橢圓候選集合S3中的橢圓進(jìn)行篩選,剔除橢圓候選集合中實(shí)際上不存在的橢圓,將最終保留下來的橢圓候選集合S3中的橢圓作為最終定位的圓形交通標(biāo)志所在的位置。
步驟G包括以下具體步驟:
G1:對(duì)橢圓候選集合S3中的每一個(gè)橢圓,剔除長短軸小于閾值Q的橢圓,閾值Q為(0,20)之間的一個(gè)浮點(diǎn)數(shù)。
G2:對(duì)于經(jīng)步驟G1剔除后剩余的每個(gè)橢圓Ri,i=1,2,3,……,統(tǒng)計(jì)位于該橢圓上的邊緣點(diǎn)數(shù)量。
邊緣點(diǎn)數(shù)量統(tǒng)計(jì)方法如下:
初始化一個(gè)變量gi,i=1,2,3,……,gi初始值為0,設(shè)步驟D中得到的邊緣點(diǎn)為Ph,過邊緣點(diǎn)Ph分別做x軸的平行線Lx和y軸的平行線Ly,x軸的平行線Lx和y軸的平行線Ly分別與該橢圓Ri相交于點(diǎn)W1,W2,W3和W4,如附圖5所示。若點(diǎn)W1,W2,W3和W4中至少有一個(gè)點(diǎn)與邊緣點(diǎn)Ph的距離小于閾值U,則認(rèn)為邊緣點(diǎn)Ph在橢圓Ri上,然后gi的值加1。其中,閾值U為(0,1)之間的一個(gè)浮點(diǎn)數(shù)。
G3:對(duì)于G2中的每個(gè)橢圓Ri,及其對(duì)應(yīng)的gi值,設(shè)橢圓周長為Li,i=1,2,3,……,閾值為z%,z是取值范圍為(0,100]的一個(gè)浮點(diǎn)數(shù),若gi>Li*z%,則認(rèn)為橢圓Ri是真實(shí)存在的并在S3保留Ri;否則將Ri從S3中移除。
G4:將步驟G3執(zhí)行完畢后S3中所保留下來的橢圓作為最終定位的圓形交通標(biāo)志所在的位置。