孫維廣
摘 要:文章針對(duì)導(dǎo)盲系統(tǒng)中的斑馬線識(shí)別問題進(jìn)行了研究。首先根據(jù)斑馬線灰度直方圖的特點(diǎn)確定Canny算法的高低閾值,再用Canny算法進(jìn)行邊緣檢測(cè),然后采用Hough變換提取直線,最后根據(jù)提取的直線信息進(jìn)行斑馬線的識(shí)別。實(shí)驗(yàn)結(jié)果表明對(duì)于白天和夜晚受污染的斑馬線本方法可行。
關(guān)鍵詞:Canny算法;Hough變換;斑馬線識(shí)別;灰度直方圖
1 概述
世界上有眾多的視覺障礙人群,導(dǎo)盲設(shè)備對(duì)于提高其生活質(zhì)量具有很大的幫助?;谝曈X的導(dǎo)盲設(shè)備,主要是通過安裝在設(shè)備上的攝像頭來實(shí)時(shí)采集路況圖像,然后對(duì)其進(jìn)行分析,從而做出預(yù)警和提示。斑馬線是道路中一種重要的標(biāo)志,文章對(duì)其檢測(cè)和識(shí)別方法進(jìn)行了研究。
2 斑馬線邊緣提取
2.1 高斯濾波
從攝像頭獲取的原始圖像一般都存在噪聲,對(duì)于后續(xù)的邊緣提取會(huì)造成影響。因此,需要對(duì)其平滑處理。高斯濾波器是一種利用鄰域平均的思想對(duì)圖像進(jìn)行平滑的方法。它的特點(diǎn)是在對(duì)鄰域內(nèi)像素灰度進(jìn)行平滑時(shí),賦予不同位置像素不同的權(quán)值,越是靠近鄰域中心位置其權(quán)值越高。這樣的好處是在濾除噪聲的同時(shí)又較好的保存了圖像的邊緣信息。有利于后續(xù)的邊緣提取。
2.2 Canny邊緣檢測(cè)
Canny邊緣檢測(cè)的基本原理是首先使用高斯濾波器平滑圖像,再用一階偏導(dǎo)的有限差分來計(jì)算梯度的幅值和方向,然后對(duì)梯度幅值進(jìn)行非極大值抑制,最后用雙閾值法來檢測(cè)和連接邊緣。閾值分為上限閾值和下限閾值,Canny推薦其比例為2:1到3:1之間[1]。
實(shí)際中斑馬線總是會(huì)受到污染,斑馬線整體比較暗或內(nèi)部會(huì)有黑斑存在。因此,在閾值選取時(shí),要盡可能提取出斑馬線的邊緣,還要盡可能降低斑馬線內(nèi)部污斑被提取出的比例。文獻(xiàn)[2]應(yīng)用Canny算法對(duì)斑馬線檢測(cè)進(jìn)行了研究,但沒有論述其閾值的選取。文獻(xiàn)[3]的自適應(yīng)閾值選取方法提取出了過多的細(xì)節(jié)邊緣,不適用于斑馬線的邊緣提取。
文章采用了一種通過計(jì)算道路的灰度直方圖,根據(jù)直方圖的特點(diǎn)確定Canny算法雙閾值的方法。這里需要注意的是灰度計(jì)算像素要選擇在斑馬線區(qū)域內(nèi),如圖1(a)所示。直方圖的橫軸表示灰度值,縱軸表示像素?cái)?shù)。文章從測(cè)試的50張圖片中選取了有代表性的列于表1。表1中所用的圖片斑馬線污染大多都比較嚴(yán)重,即使在白天高峰灰度值也在150以下。表1中圖片4的斑馬線比較干凈,并且是在晚上路燈比較亮?xí)r拍攝。經(jīng)驗(yàn)證高峰灰度值在150以上時(shí)對(duì)Canny閾值的要求不是很嚴(yán)格,雙閾值分別為60、120和80、160時(shí)對(duì)邊緣提取效果差別不大,為盡可能排除干擾可選擇后者。對(duì)于圖1(a)兩種閾值的邊緣檢測(cè)效果如圖2(a)和圖2(b)所示。當(dāng)環(huán)境較亮?xí)r,如果高峰閾值超過在100到150之間,Canny算子的閾值可設(shè)為60、120。當(dāng)環(huán)境較暗時(shí)如果高峰灰度值在100以下,高低峰灰度值差大于25時(shí),閾值可設(shè)為30、60,高低峰灰度值差在25以下閾值設(shè)為20、40。其中,表1中12號(hào)圖測(cè)試15、35為最佳閾值,為簡(jiǎn)化起見也可以20、40計(jì)算。實(shí)驗(yàn)表明直方圖的高峰低峰灰度值差越小,即斑馬線和道路顏色越接近,對(duì)閾值的變化越敏感。光線越好高峰灰度值越高對(duì)閾值變化越不敏感。在實(shí)驗(yàn)中還存在灰度直方圖出現(xiàn)單峰的情況,說明斑馬線污染較嚴(yán)重,此時(shí)以較低的閾值也可檢測(cè)出部分直線,但會(huì)影響識(shí)別的正確率。
(a) 計(jì)算區(qū)域 (b) 灰度直方圖
圖1 斑馬線的灰度直方圖
表1 灰度直方圖信息與閾值選取
對(duì)于表1中的圖片6的原圖和Canny邊緣檢測(cè)效果如圖3(a)和圖3(b)所示。表1中的圖片11的原圖和邊緣檢測(cè)效果如圖4(a)和圖4(b)所示。
(a) Canny算子的閾值為60、120 (b)Canny算子的閾值為80、160
圖2 對(duì)于圖1應(yīng)用兩種閾值的邊緣檢測(cè)效果
(a) 原始圖 (b)Canny算子的閾值為30、60
圖3 高低峰灰度值為50、80的斑馬線邊緣檢測(cè)
(a) 原始圖 (b)Canny算子的閾值為20、40
圖4 高低峰灰度值為22、38的斑馬線邊緣檢測(cè)
2.3 Hough直線提取
在邊緣檢測(cè)后,文章采用Hough變換提取直線。Hough變換的原理是利用圖像空間與參數(shù)空間的對(duì)應(yīng)關(guān)系,將圖像空間的具有一定關(guān)系的像素進(jìn)行聚類,利用某一解析形式轉(zhuǎn)化到參數(shù)空間,通過在參數(shù)空間進(jìn)行簡(jiǎn)單的累加統(tǒng)計(jì)來完成檢測(cè)任務(wù)[1]。在應(yīng)用Hough變換直線提取時(shí),同一條邊緣上會(huì)檢測(cè)到很多直線段。為便于后續(xù)處理,要對(duì)屬于一條邊緣的線段進(jìn)行歸并。在極坐標(biāo)系中每條直線都可由與其垂直的ρ和θ角來唯一確定,如圖5所示。因此文章根據(jù)直線間ρ和θ的差值小于某閾值的特征將直線歸并。圖2(b)的直線提取結(jié)果如圖6所示,每條直線上只有一個(gè)起始序號(hào)和一個(gè)結(jié)束序號(hào),表明直線歸并成功。圖3(b)和圖4(b)的直線提取結(jié)果如圖7和圖8所示。
圖5 直線的ρ和θ 圖6 直線歸并效果
圖7 圖3(b)的直線提取結(jié)果 圖8 圖4(b)的直線提取結(jié)果
3 斑馬線識(shí)別
圖6的直線信息如表2所示,斑馬線特征比較明顯,即為一組平行直線,斑馬線寬度、間距遞減,且黑白相間,由于人身高確定,斑馬線間距也可以基本確定。根據(jù)這些信息就可以有效識(shí)別出斑馬線,并和其它道路標(biāo)志相區(qū)分。如圖9列舉了一種易形成干擾的道路標(biāo)志??梢愿鶕?jù)其平行直線數(shù)量、間距、位置信息進(jìn)行區(qū)分。
圖9 干擾道路標(biāo)志
表2 圖6的直線信息
另外,斑馬線的長(zhǎng)度和寬度邊緣不一定都是垂直的。因此只依據(jù)斑馬線的斜率判斷行人是否偏離斑馬線并不可靠,還要加入對(duì)斑馬線的左右邊緣的判斷,以保證行人行走在斑馬線范圍內(nèi)。
4 結(jié)束語
文章選取的圖片大小為640*480,并利用了OpenCV函數(shù)庫進(jìn)行編程實(shí)驗(yàn),結(jié)果表明對(duì)于受污染的斑馬線也有很高的識(shí)別率。實(shí)際環(huán)境中斑馬線的情況千差萬別,有時(shí)獲得一個(gè)最佳的Canny算法雙閾值及獲得比較好的直線提取效果比較困難。但只要斑馬線比較完整,基本會(huì)獲得一組直線邊緣,即使有少量誤提直線也可以正確識(shí)別斑馬線。但如果斑馬線污染嚴(yán)重、缺失較多或有強(qiáng)光照射時(shí)會(huì)出現(xiàn)直線丟失或誤提直線過多的情況,可能會(huì)導(dǎo)致識(shí)別失敗。
參考文獻(xiàn)
[1]Gary Bradski, Adrian Kaehler.學(xué)習(xí)OpenCV(中文版) [M].于仕琪,劉瑞禎,譯.北京:清華大學(xué)出版社,2009.
[2]陸豐麒,陳健,郭語,等. 一種應(yīng)用于導(dǎo)盲機(jī)器人的斑馬線識(shí)別方法[J].數(shù)字技術(shù)與應(yīng)用,2014(4):124-125.
[3]拓小明,李云紅,劉旭,等. 基于Canny算子與閾值分割的邊緣檢測(cè)算法[J].西安工程大學(xué)學(xué)報(bào),2014,28(6):745-747.