張 遠(yuǎn),趙建國(guó)
(鄭州大學(xué)機(jī)械與動(dòng)力工程學(xué)院,鄭州 450052)
隨著互聯(lián)網(wǎng)不斷發(fā)展,人們對(duì)于弱勢(shì)群體的關(guān)注越來(lái)越密切,如何設(shè)計(jì)出能夠安全可靠輔助盲人出行的設(shè)備成為研究熱點(diǎn)?;跈C(jī)器視覺(jué)與圖像處理的導(dǎo)盲設(shè)備因其成本低、通用性強(qiáng)而具有很重要的研究與實(shí)用價(jià)值[1],而準(zhǔn)確檢測(cè)出盲道邊界是此類導(dǎo)盲設(shè)備的基礎(chǔ)。
目前盲道識(shí)別大致可分為兩類。第一類為基于模型與特征在灰度圖上進(jìn)行檢測(cè)的傳統(tǒng)方法。文獻(xiàn)[2-3]提出將圖像轉(zhuǎn)至HSV(hue saturation value)空間后對(duì)色相通道進(jìn)行閾值化,利用盲道的紋理以及直接在原圖上進(jìn)行Hough變換檢測(cè)直線來(lái)確定盲道邊界。閆志杰等[4]采用聚類的方法針對(duì)盲道的顏色特征進(jìn)行分割提取并在不同時(shí)間和不同的天氣條件下進(jìn)行試驗(yàn)。魏彤等[5]提出一種邊界跟蹤的盲道識(shí)別算法,首先考慮陰影對(duì)盲道的影響,使用灰度共生矩陣與模糊C均值聚類結(jié)合的方法,提取盲道區(qū)域后對(duì)檢測(cè)出的盲道邊界進(jìn)行跟蹤識(shí)別。彭玉青等[6]使用顏色直方圖特征結(jié)合改進(jìn)的區(qū)域生長(zhǎng)法[7]、灰度共生矩陣以及模糊C均值聚類針對(duì)不同類型的盲道進(jìn)行了識(shí)別與分割。周毅等[8]使用顏色信息對(duì)盲道進(jìn)行混合高斯模型建模實(shí)現(xiàn)盲道的檢測(cè)與跟隨。上述方法復(fù)雜度較低,檢測(cè)時(shí)間短,但檢測(cè)精度還有待提升,且使用包含信息較少的灰度圖像或是單一顏色特征,所以通常只適于特定環(huán)境,不具備較強(qiáng)的適應(yīng)性。第二類為機(jī)器學(xué)習(xí)的方法。魏彤等[9]提出了基于機(jī)器學(xué)習(xí)聯(lián)合分水嶺分割的算法:首先采集大量盲道圖像進(jìn)行離線訓(xùn)練,然后進(jìn)行視角轉(zhuǎn)換并運(yùn)用局部二進(jìn)制模式提取紋理特征,最后使用分類器分類聯(lián)合分水嶺算法定位盲道區(qū)域。Liu等[10]提出使用卷積神經(jīng)網(wǎng)絡(luò)模型U-net并制作訓(xùn)練集進(jìn)行訓(xùn)練,實(shí)現(xiàn)了對(duì)盲道的分割與檢測(cè)。Cao等[11]為了減少網(wǎng)絡(luò)模型參數(shù)和提高語(yǔ)義分割檢測(cè)速度,采用深度可分離卷積作為模型基本模塊構(gòu)建輕量級(jí)語(yǔ)義分割網(wǎng)絡(luò),實(shí)現(xiàn)了對(duì)盲道和人行道的快速檢測(cè)。因采用彩色圖像進(jìn)行訓(xùn)練,上述方法檢測(cè)精度較好且響應(yīng)時(shí)間短;不足之處為制作數(shù)據(jù)集時(shí)采集圖像的質(zhì)量,盲道類型等都會(huì)影響檢測(cè)結(jié)果,且網(wǎng)絡(luò)模型一旦建立便很難更改;整個(gè)過(guò)程消耗資源巨大,不適于廣泛應(yīng)用。
無(wú)論是傳統(tǒng)還是機(jī)器學(xué)習(xí)的方法都將盲道視為十分整潔的道路。而盲道上存在落葉的情況時(shí)有發(fā)生,忽略其影響必將導(dǎo)致大量誤檢甚至檢測(cè)失敗,向使用者傳達(dá)錯(cuò)誤信息繼而影響其人身安全,所以對(duì)盲道上存在落葉的情況進(jìn)行研究是十分必要的。針對(duì)傳統(tǒng)方法檢測(cè)精度低、機(jī)器學(xué)習(xí)方法消耗資源過(guò)多以及盲道上存在落葉等問(wèn)題,現(xiàn)提出一種基于邊緣特征點(diǎn)篩選的盲道檢測(cè)算法。首先使用包含更多信息的彩色圖像精確提取盲道區(qū)域,然后對(duì)其進(jìn)行圖像預(yù)處理、邊緣檢測(cè)和直線檢測(cè)得到若干盲道邊界候選線,最后運(yùn)用邊緣特征點(diǎn)篩選的方法確定真正的盲道邊界,以期在落葉遮擋情況下準(zhǔn)確提取盲道區(qū)域并檢測(cè)出盲道邊界。
提取出精確的盲道區(qū)域是進(jìn)行盲道邊界檢測(cè)的基礎(chǔ),分粗提取和精確提取兩部分完成盲道區(qū)域的提取。粗提取使用盲道顏色信息進(jìn)行顏色篩選并結(jié)合Lab空間b通道二值化完成;精確提取則使用粗提取結(jié)果運(yùn)用GrabCut算法完成。
1.1.1 顏色篩選
盲道區(qū)域通常為醒目的黃色,如果使用顏色信息對(duì)彩色圖像進(jìn)行顏色篩選,就可以得到盲道大致區(qū)域;但圖像采集設(shè)備采集的RGB(red green blue)格式圖像不適合顏色篩選,所以將圖像轉(zhuǎn)至HSV顏色空間進(jìn)行顏色篩選,轉(zhuǎn)換公式為
(1)
Cmax=max(R′,G′,B′),Cmin=min(R′,G′,B′)
Δ=Cmax-Cmin
(2)
(3)
(4)
V=Cmax
(5)
式中:H為色度值;S為飽和度值;V為亮度值;R、G、B為某像素在RGB空間坐標(biāo)值;Cmax、Cmin分別為R′、G′、B′三者中最大、最小值,Δ為二者之差;max、min分別為取多個(gè)值中的最大、最小值操作。
圖像轉(zhuǎn)至HSV顏色空間后,通過(guò)限制HSV各個(gè)分量至指定取值范圍:H[h1,h2],S[s1,s2],V[v1,v2],就可以完成顏色篩選,其中:h1、h2、s1、s2、v1、v2分別為色度H、飽和度S、亮度V的上下極限值。對(duì)采集到不同程度光照、落葉影響的盲道進(jìn)行顏色篩選的結(jié)果如圖1所示,可以看到,經(jīng)過(guò)顏色篩選,盲道區(qū)域能夠被提取出來(lái)。
圖1 不同程度光照和落葉的顏色篩選結(jié)果Fig.1 Color screening results with different degrees of light and fallen leaves
1.1.2 Lab空間b通道閾值化
采集設(shè)備采集的圖像易受光照等因素影響,光照會(huì)影響圖像亮度,繼而影響盲道提取結(jié)果,因而為減少光照影響,需要將圖像轉(zhuǎn)至Lab顏色空間。Lab顏色空間與設(shè)備無(wú)關(guān),L分量表示圖像亮度;a、b分量?jī)H表示圖像顏色,與亮度無(wú)關(guān);其中a分量表示紅色到綠色,b分量表示黃色到藍(lán)色。盲道顏色為黃色,對(duì)應(yīng)于b通道,將b通道二值化即可提取盲道區(qū)域。RGB圖像轉(zhuǎn)至Lab顏色空間的方法與RGB圖像轉(zhuǎn)至HSV顏色空間方法類似,但需先將RGB圖像轉(zhuǎn)換到XYZ空間(CIE1931色彩空間)。不同光照?qǐng)D像b通道二值化結(jié)果如圖2(a)所示。
1.1.3 粗提取結(jié)果
顏色篩選雖可以指定范圍篩選顏色,但易受光照影響,光照過(guò)強(qiáng)時(shí)會(huì)將盲道與非盲道區(qū)域混淆;Lab空間b通道不受光照影響,但其顏色范圍不止包含黃色,將其二值化時(shí)容易檢測(cè)出盲道區(qū)域和其顏色范圍內(nèi)非盲道區(qū)域的其他物體。因此為增強(qiáng)粗提取結(jié)果魯棒性,綜合顏色篩選和b通道二值化的結(jié)果,方法為將兩幅二值圖像進(jìn)行邏輯與運(yùn)算,邏輯與運(yùn)算計(jì)算二者的交集:如果二者某一相同位置像素值相同則取相同值,否則取值0為。不同光照下粗提取的結(jié)果如圖2(b)所示。
圖2 不同程度光照和落葉的b通道二值化及粗提取結(jié)果Fig.2 b channel binarization and coarse extraction results with different degrees of light and fallen leaves
1.2.1 GrabCut算法
GrabCut算法將圖像映射為一幅帶權(quán)無(wú)向圖[12],使用K個(gè)(取K=5)高斯分量組成混合高斯模型(Gaussian mixture model,GMM)對(duì)前景和背景進(jìn)行建模,且圖像中的每個(gè)像素只能取自前景或者背景GMM的某個(gè)高斯分量,圖像分割問(wèn)題便可轉(zhuǎn)化為如何最小化圖像能量的問(wèn)題[13],定義吉布斯能量函數(shù)為
E(α,k,θ,z)=U(α,k,θ,z)+V(α,z)
(6)
式(6)中:
(7)
D(αn,kn,θ,zn)=-lnπ(αn,kn)p(zn|αn,kn,θ)
(8)
(9)
θ={π(α,k),μ(α,k),Σ(α,k)},k=1,…,K
(10)
式中:m、n為不同像素;z為像素灰度值;k為第k個(gè)高斯分量(k=1,…,K);α為透明度系數(shù):α=0代表背景,α=1代表前景;β為常數(shù)項(xiàng);γ為經(jīng)驗(yàn)系數(shù);θ為由每個(gè)高斯分量的權(quán)重π、均值向量μ以及協(xié)方差矩陣Σ組成的GMM系數(shù)。
如果某個(gè)像素歸類于正確標(biāo)簽(前景/背景)的概率越大,則區(qū)域項(xiàng)U越小;如果某兩個(gè)像素越相似,則它們屬于同一標(biāo)簽(前景/背景)的概率越大,邊界項(xiàng)V越大。設(shè)定一個(gè)初始GMM參數(shù)后對(duì)所有像素進(jìn)行分類,不斷迭代,直至達(dá)到預(yù)先設(shè)定好的精度或迭代次數(shù)為止。然后使用最后一次GMM參數(shù)正確標(biāo)記每個(gè)像素,圖像的前景和背景便精確地分割開(kāi)來(lái)。
1.2.2 提取盲道區(qū)域
使用OpenCV庫(kù)可以實(shí)現(xiàn)GrabCut算法,使用模式為GC_INIT_WITH_RECT,即需要找到一個(gè)前景所在矩形框提取前景(前景為盲道區(qū)域),此矩形框內(nèi)部為可能前景,外部為確定背景。粗提取結(jié)果存在多個(gè)輪廓,這些輪廓有的由落葉單獨(dú)形成,有的由盲道與落葉相互作用共同形成,只有最大輪廓可以找到所需矩形框,提取出精確的盲道區(qū)域。
查找粗提取結(jié)果所有輪廓并統(tǒng)計(jì)像素?cái)?shù)目,最多者即為最大輪廓,計(jì)算該輪廓最小外接矩形,將其內(nèi)部設(shè)為可能前景,外部設(shè)為確定背景,運(yùn)用GrabCut算法就可以將盲道區(qū)域提取出來(lái)。如圖3所示正常光照的盲道圖像,盡管存在落葉干擾,盲道區(qū)域還是被精確地提取出來(lái)。
圖3 提取盲道區(qū)域Fig.3 Extraction of blind track area
為檢測(cè)出真正的盲道邊界,需要獲取若干邊界候選線。雖已精確提取出盲道區(qū)域,但圖像采集過(guò)程中采集設(shè)備晃動(dòng)或存在干擾等因素會(huì)影響圖像質(zhì)量,因此需要對(duì)盲道圖像進(jìn)行預(yù)處理以突出盲道邊界特征,之后進(jìn)行邊緣檢測(cè)和Hough直線檢測(cè)。
已得到的精確盲道區(qū)域圖像為含有大量信息的彩色圖像,如果直接對(duì)其進(jìn)行盲道邊界檢測(cè)會(huì)增加計(jì)算量,影響算法實(shí)時(shí)性。因此采用加權(quán)平均法將彩色圖像轉(zhuǎn)為灰度圖像以保證算法實(shí)時(shí)性,灰度化公式為
Gray=0.299R+0.587G+0.114B
(11)
采集的圖像不免有各種噪聲,這些噪聲的存在可能會(huì)影響后續(xù)盲道邊界檢測(cè),因此對(duì)灰度化后的圖像采用中值濾波的方式去除噪聲。中值濾波為非線性濾波,去除噪聲同時(shí)可以最大限度保留圖像邊緣信息,使用時(shí)將一個(gè)N*N(N為奇數(shù),取N=3)的窗口在整個(gè)圖像上滑動(dòng),將當(dāng)前窗口覆蓋的N2個(gè)像素從小到大排列,以所有像素中值取代當(dāng)前窗口的中心像素,中值濾波公式為
c=median[f(x-1,y-1),…,f(x,y),…,
f(x+1,y+1)]
(12)
式(12)中:c為濾波后的像素值;median[]為取中值操作;f為某位置像素值;f(x,y)為3*3矩陣的中心像素值。
盲道區(qū)域灰度化和中值濾波結(jié)果如圖4所示。
圖4 灰度化和中值濾波Fig.4 Grayscale and median filtering
將去除噪聲后的盲道區(qū)域圖像二值化以獲得檢測(cè)盲道邊界所需的邊緣特征,由于背景像素大多為零,因此可采用最常用且有效的最大類間方差法進(jìn)行二值化。二值化后的盲道區(qū)域可能存在孔洞,而孔洞的存在可能會(huì)影響后續(xù)的直線檢測(cè)。為消除孔洞影響,采用形態(tài)學(xué)閉運(yùn)算進(jìn)行填補(bǔ)[14]。
膨脹運(yùn)算:
(13)
腐蝕運(yùn)算:
(14)
閉運(yùn)算:
f·g=(f⊕g)Θg
(15)
式中:f(x,y)為輸入圖像;(i,j)為某像素坐標(biāo);g(i,j)為結(jié)構(gòu)元素;⊕和Θ分別為形態(tài)學(xué)膨脹和腐蝕。
二值化以及形態(tài)學(xué)閉運(yùn)算結(jié)果如圖5所示,可以看到,形態(tài)學(xué)閉運(yùn)算后二值圖像孔洞消失。
圖5 圖像預(yù)處理結(jié)果Fig.5 Image preprocessing results
確定盲道邊界候選線需要提取二值圖像邊緣特征,采用Canny邊緣檢測(cè)可以精確找到圖像中盡可能多的邊緣,檢測(cè)出的邊緣點(diǎn)精確定位于邊緣的中心且噪聲不產(chǎn)生偽邊緣[15],檢測(cè)步驟如下。
(1)應(yīng)用高斯濾波去除噪聲,即采用高斯函數(shù)平滑圖像[16]。
(16)
fs(x,y)=G(x,y)*f(x,y)
(17)
式中:σ為方差;f(x,y)為原始圖像;G(x,y)為高斯函數(shù);fs(x,y)為平滑后的圖像;*為卷積操作。
(2)計(jì)算梯度幅值和方向。
(18)
(19)
式中:gx、gy分別為x、y方向的梯度圖像。M(x,y)為梯度幅值圖像;α(x,y)為角度圖像。
(3)非極大值抑制,逐一訪問(wèn)梯度圖像所有像素,只保留某像素周圍像素點(diǎn)中同方向的最大值,得到細(xì)化邊緣圖像gN(x,y)。
(4)雙閾值確定邊緣,設(shè)置高低閾值TH和TL對(duì)細(xì)化邊緣圖像進(jìn)行閾值處理,得到最終邊緣圖像。二值盲道區(qū)域圖像Canny邊緣檢測(cè)結(jié)果如圖6(a)所示。
為了后續(xù)準(zhǔn)確檢測(cè)出盲道邊界,采用Hough變換對(duì)邊緣圖像進(jìn)行直線檢測(cè)。Hough變換利用圖像空間和參數(shù)空間線與點(diǎn)的對(duì)偶性,將圖像空間中的檢測(cè)問(wèn)題轉(zhuǎn)換到參數(shù)空間中進(jìn)行[17]。若盲道邊界沒(méi)有或只有少量落葉,對(duì)邊緣圖像進(jìn)行Hough直線檢測(cè)就可以檢測(cè)出盲道邊界;若較多的落葉覆蓋在盲道邊界上,則落葉可能會(huì)在邊緣圖像的盲道邊界附近產(chǎn)生大量干擾,使傳統(tǒng)Hough直線檢測(cè)很難設(shè)定能夠同時(shí)準(zhǔn)確檢測(cè)出兩條邊界線的參數(shù)。為此可采用邊緣特征點(diǎn)篩選的方法確定真正盲道邊界,此方法需要檢測(cè)出若干盲道邊界候選線;經(jīng)反復(fù)實(shí)驗(yàn)驗(yàn)證,設(shè)置Hough直線檢測(cè)參數(shù)最小直線長(zhǎng)度minLineLength=25,最大直線間隔maxLineGap=5檢測(cè)出多條邊界候選直線;分析實(shí)驗(yàn)樣本圖像發(fā)現(xiàn),一般情況下盲道邊界線角度絕對(duì)值大于70°,因此在直線檢測(cè)時(shí)應(yīng)限制直線角度,避免檢測(cè)出非盲道邊界直線。Hough直線檢測(cè)結(jié)果如圖6(b)所示,可以看到真實(shí)盲道邊界附近檢測(cè)出多條長(zhǎng)度不同,方向角度有所差異的盲道邊界候選線。
圖6 邊緣檢測(cè)與Hough直線檢測(cè)Fig.6 Edge and Hough line detection
通過(guò)對(duì)盲道區(qū)域圖像進(jìn)行預(yù)處理、邊緣檢測(cè)和Hough直線檢測(cè),提取出了若干盲道邊界候選線,顯然候選線方向上的邊緣特征點(diǎn)越多越接近真實(shí)盲道邊界。對(duì)同一側(cè)的不同候選線而言,雖然彼此角度和方向相差不大,但隨著候選線的延長(zhǎng),其方向上的邊緣特征點(diǎn)數(shù)目將會(huì)逐漸出現(xiàn)差異,下一步使用邊緣特征點(diǎn)數(shù)目對(duì)候選線進(jìn)行篩選和修正。
盲道左右邊界附近已檢測(cè)出多條候選線,計(jì)算這些候選線方向上的邊緣特征點(diǎn)數(shù)目對(duì)其進(jìn)行初步篩選。以右側(cè)第一條候選線為例:在一張新的二值圖像上將此線段延長(zhǎng)至圖像邊界,且新的二值圖像只有該延長(zhǎng)線上的像素?cái)?shù)值為255;將新的二值圖像與邊緣圖像進(jìn)行與運(yùn)算,統(tǒng)計(jì)與運(yùn)算結(jié)果非零點(diǎn)像素?cái)?shù)目,即為該候選線方向上的邊緣特征點(diǎn)數(shù)目;真正的盲道邊界為兩條經(jīng)過(guò)圖像邊界的直線,且具有足夠多的邊緣特征點(diǎn),因此設(shè)置邊緣特征點(diǎn)數(shù)目閾值T1,計(jì)算所有候選線邊緣特征點(diǎn)數(shù)目,只保留邊緣特征點(diǎn)數(shù)目大于閾值T1者,完成對(duì)候選線的初步篩選。
經(jīng)初步篩選后,左右邊界候選線數(shù)量已經(jīng)大幅度減少,且剩余候選線都極可能是盲道邊界線,取左右候選線中最長(zhǎng)者作為進(jìn)一步判斷對(duì)象。以右側(cè)最長(zhǎng)候選線為例:計(jì)算該線段的中點(diǎn)(x,y),設(shè)置邊緣特征點(diǎn)數(shù)目閾值T2,首先保持x方向不變,以中點(diǎn)為中心將該線段在y方向每次平移一個(gè)像素(一般y方向上下各平移一個(gè)像素),記此時(shí)線段位置為Y,即
Y:(x,y-1),(x,y),(x,y+1)
(20)
每次平移后保持y方向不變,以中點(diǎn)為中心將該線段在x方向每次平移一個(gè)像素(一般x方向左右各平移兩個(gè)像素),記此時(shí)線段位置為X,即
X:(x-2,y),(x-1,y),(x,y),(x+1,y)(x+2,y)
(21)
顯然一個(gè)位置Y對(duì)應(yīng)與多個(gè)位置X,對(duì)該候選線而言,角度也決定了它是否為盲道邊界,因此還需將其旋轉(zhuǎn)。設(shè)初始角度為S0,每次旋轉(zhuǎn)s度(正負(fù)方向均進(jìn)行旋轉(zhuǎn),最大旋轉(zhuǎn)角度為D度),記此時(shí)線段角度為S。
S:S0-D,…,S0,…,S0+D
(22)
每旋轉(zhuǎn)一個(gè)角度統(tǒng)計(jì)當(dāng)前角度的邊緣特征點(diǎn)數(shù)目,統(tǒng)計(jì)方法與初步篩選候選線所用方法相同,直到完成預(yù)先設(shè)定的所有平移位置與旋轉(zhuǎn)角度,可以得到該候選線在多個(gè)位置、角度的邊緣特征點(diǎn)數(shù)目矩陣N。計(jì)算矩陣N的最大元素值nmax并與閾值T2進(jìn)行比較:如果nmax大于T2,表明該候選線為真正的盲道邊界;如果nmax小于T2,則表明該候選線不是盲道邊界,需要對(duì)候選線中次長(zhǎng)者進(jìn)行判斷,直至某候選線對(duì)應(yīng)最大邊緣特征點(diǎn)數(shù)目大于T2為止。簡(jiǎn)要步驟如下。
(1)取候選線中最長(zhǎng)者,以其中點(diǎn)為基準(zhǔn)在y方向平移多個(gè)位置Y1,Y2,…。
(2)對(duì)應(yīng)每個(gè)位置Yi,將線段在x方向平移多個(gè)位置X1,X2,…。
(3)對(duì)應(yīng)于確定位置(Xi,Yi),以該線段中點(diǎn)為中心,正負(fù)方向旋轉(zhuǎn)多個(gè)角度,計(jì)算每個(gè)角度的邊緣特征點(diǎn)數(shù)目,得到邊緣特征點(diǎn)數(shù)目矩陣N以及N的最大元素值nmax。
(4)將nmax與閾值T2進(jìn)行比較:如果nmax大于閾值T2,則該值對(duì)應(yīng)候選線即為真正盲道邊界;如果nmax小于閾值T2,則將對(duì)應(yīng)候選線刪除后返回步驟1,直到某候選線在某個(gè)位置與角度的邊緣特征點(diǎn)數(shù)目最大值大于閾值T2,完成盲道邊界確定。
某位置Yi的x方向不同位置不同角度的邊緣特征點(diǎn)數(shù)目如圖7所示,可以看到位置3對(duì)應(yīng)角度為-0.5°時(shí)的邊緣特征點(diǎn)最多,即該位置角度對(duì)應(yīng)候選線為真正盲道邊界。
圖7 某位置邊緣像素?cái)?shù)目Fig.7 Number of edge pixels at one location
當(dāng)盲道被落葉不同程度、不同位置遮擋時(shí),因未考慮落葉影響,傳統(tǒng)基于灰度等特征的檢測(cè)算法容易出現(xiàn)失誤。表現(xiàn)為檢測(cè)不到盲道邊界、只檢測(cè)到一側(cè)邊界、能檢測(cè)出兩側(cè)邊界但偏離真正盲道邊界等現(xiàn)象,一些典型失誤如圖8所示。檢測(cè)不到盲道邊界或只檢測(cè)到一側(cè)邊界會(huì)造成系統(tǒng)失效,無(wú)法為使用者指引方向;能檢測(cè)出兩側(cè)邊界但與真實(shí)邊界誤差較大則會(huì)為使用者指引錯(cuò)誤方向,這些失誤容易對(duì)使用者人身安全造成威脅,應(yīng)極力避免。本文算法能夠在盲道正常以及被遮擋的情況下準(zhǔn)確檢測(cè)出盲道邊界,檢測(cè)結(jié)果如圖9所示。
圖8 傳統(tǒng)算法典型失誤Fig.8 Typical mistakes of traditional algorithms
圖9 本文算法Fig.9 Algorithm in this paper
為對(duì)比本文算法與傳統(tǒng)算法檢測(cè)結(jié)果,現(xiàn)將檢測(cè)結(jié)果量化,定義盲道覆蓋面積為:算法檢測(cè)出的邊界線與圖像邊界所圍封閉區(qū)域內(nèi)的真實(shí)盲道區(qū)域像素點(diǎn)數(shù)目,若沒(méi)有組成封閉區(qū)域則盲道覆蓋面積為零;標(biāo)注并計(jì)算真實(shí)盲道區(qū)域面積A,記傳統(tǒng)算法檢測(cè)出的盲道邊界偏離正確邊界時(shí)[圖8(b)]盲道覆蓋面積為A1,本文算法檢測(cè)出的盲道覆蓋面積為A2,定義盲道覆蓋率R為
(23)
經(jīng)計(jì)算,真實(shí)盲道區(qū)域面積A=40 451,傳統(tǒng)算法與本文算法檢測(cè)出的盲道覆蓋面積分別為A1=37 945、A2=39 951,二者盲道覆蓋率分別為
(24)
(25)
可見(jiàn),對(duì)于圖8所示盲道圖像,本文算法相比于傳統(tǒng)算法盲道區(qū)域覆蓋率提升5%左右。
傳統(tǒng)與本文算法檢測(cè)出的邊界線角度分別為ld1、rd1和ld2、rd2,定義邊界線偏離比L為
(26)
對(duì)于盲道圖像(圖8),傳統(tǒng)算法檢測(cè)出的左右邊界線角度分別為ld1=-85.236°、rd1=78.690°;本文算法檢測(cè)出的左右邊界線角度分別為ld2=-83.909°、rd2=82.269°;由圖9(b)可知,本文算法檢測(cè)出的邊界線沒(méi)有偏離真正盲道邊界,而傳統(tǒng)算法檢測(cè)出的左右邊界線都有一定程度偏離,偏離比Ll1、Lr1分別為1.58%、4.35%。雖然傳統(tǒng)算法盲道覆蓋率達(dá)到93.80%,但是檢測(cè)出的邊界線都不同程度偏離真正邊界,將會(huì)導(dǎo)致導(dǎo)盲設(shè)備為使用者指引錯(cuò)誤方向;而本文算法不僅檢測(cè)出的盲道區(qū)域覆蓋率高,且檢測(cè)出的邊界線不偏離真正的盲道邊界。
盲道上落葉的位置、數(shù)量都是隨機(jī)的,對(duì)算法影響也有不同。所以為進(jìn)一步驗(yàn)證算法有效性,使用手機(jī)模擬頭戴式導(dǎo)盲儀在鄭州市科學(xué)大道采集多段尺寸為544×960的視頻,共計(jì)2 030幀;其中包括盲道正常以及被落葉不同程度、不同位置遮擋的圖像。實(shí)驗(yàn)硬件為Intel Core i7-6700HQ CPU、8 GB RAM、NVIDIA GTX 960M GPU的PC機(jī),實(shí)驗(yàn)軟件平臺(tái)及編程環(huán)境為PyCharm和 Python3.7+OpenCV4.4。同時(shí)為驗(yàn)證算法抗干擾性,實(shí)驗(yàn)時(shí)隨機(jī)選取200張圖像加入椒鹽噪聲后進(jìn)行盲道邊界檢測(cè),部分結(jié)果如圖10所示。
為進(jìn)一步對(duì)比傳統(tǒng)算法與本文算法,計(jì)算采集到的所有圖像平均盲道覆蓋率、平均邊界線偏離比和綜合檢測(cè)準(zhǔn)確率作為算法的評(píng)估指標(biāo),實(shí)驗(yàn)對(duì)比結(jié)果如表1所示。
分析檢測(cè)結(jié)果發(fā)現(xiàn),傳統(tǒng)算法發(fā)生大量誤檢與漏檢是由于盲道區(qū)域提取不夠精確以及覆蓋在盲道邊界上的落葉影響了Hough直線檢測(cè)造成的。通過(guò)對(duì)比實(shí)驗(yàn)結(jié)果可以看出:本文算法平均盲道覆蓋率高于傳統(tǒng)算法14%,具有較高的穩(wěn)定性;平均邊界線偏離比相比傳統(tǒng)算法降低8.3%,應(yīng)用于導(dǎo)盲設(shè)備時(shí)可以為使用者指引更加準(zhǔn)確的前進(jìn)方向;漏檢幀數(shù)和誤檢幀數(shù)都遠(yuǎn)少于傳統(tǒng)算法,綜合檢測(cè)準(zhǔn)確率達(dá)到97.54%,每張圖片檢測(cè)平均用時(shí)0.11 s,準(zhǔn)確率和實(shí)時(shí)性均能滿足盲人使用要求;且具備一定的抗干擾能力,有噪聲存在情況下仍能準(zhǔn)確檢測(cè)出盲道邊界。
圖10 本文算法部分檢測(cè)結(jié)果Fig.10 Some results of algorithm in this paper
表1 實(shí)驗(yàn)對(duì)比結(jié)果Table 1 Experimental comparison results
針對(duì)傳統(tǒng)盲道檢測(cè)算法不能應(yīng)對(duì)被落葉遮擋的盲道,容易出現(xiàn)誤檢等問(wèn)題,提出了一種基于邊緣特征點(diǎn)篩選的被遮擋盲道檢測(cè)算法,經(jīng)過(guò)理論分析和實(shí)驗(yàn)驗(yàn)證,得出以下結(jié)論。
(1)提出一種精確的盲道提取方法,主要包括基于顏色篩選與單通道二值化結(jié)合的粗提取和基于GrabCut算法的精確提??;該方法使用彩色圖像提取盲道,在落葉遮擋盲道情況下仍能精確提取盲道區(qū)域,魯棒性好,精度高。
(2)提出一種基于邊緣特征點(diǎn)篩選的盲道邊界檢測(cè)算法,通過(guò)計(jì)算比較多條候選線在多個(gè)位置與角度的邊緣特征點(diǎn)數(shù)目,確定出真正盲道邊界。
(3)實(shí)驗(yàn)結(jié)果表明,當(dāng)盲道被落葉不同程度、不同位置遮擋時(shí),相比于傳統(tǒng)算法,本文算法能精確提取盲道區(qū)域,準(zhǔn)確檢測(cè)出盲道邊界,并具有一定的抗干擾能力與較好的實(shí)時(shí)性,為基于機(jī)器視覺(jué)與圖像處理的導(dǎo)盲設(shè)備提供了更完善的理論支持。