吳 瓊,薛 寧,劉春秀
(1.中國科學(xué)院空天信息創(chuàng)新研究院傳感技術(shù)國家重點實驗室(北方基地),北京 100190;2.中國科學(xué)院大學(xué),北京 100049)
在冬季氣溫較低時,高速公路和機(jī)場路面結(jié)冰、積雪成為誘發(fā)交通事故、影響飛機(jī)安全起降的直接原因,精確監(jiān)測路面冰雪情況并及時清除可以有效避免事故的發(fā)生。目前,國內(nèi)外針對路面狀態(tài)檢測的研究主要以非接觸式為主,如幾何光學(xué)測量方法、近紅外多光譜法[1]、光學(xué)偏振法[2]、雷達(dá)檢測[3]和光強(qiáng)法等,但分別存在實際安裝困難、檢測點少、不能定量檢測、成本高等不足。利用分類器的檢測方法時,準(zhǔn)確率受圖像質(zhì)量和分類器選擇的影響[4]。
基于以上研究現(xiàn)狀,根據(jù)在可見光范圍內(nèi)冰的高透射率和雪的高反射率[5]導(dǎo)致成像時灰度值不同,文中采用機(jī)器視覺方法對路面冰雪斷面進(jìn)行檢測,斷面通過已有模擬路面平臺獲得。與前述方法相比,該方法成本低且安裝簡單,可以定量檢測冰雪厚度且無需大量氣象數(shù)據(jù)支持。其難點在于自然結(jié)冰或積雪過程中冰雪厚度、邊緣形狀、結(jié)冰或積雪還是冰雪同時存在都具有隨機(jī)性,傳統(tǒng)的邊緣檢測算法已無法適用。文中首先通過機(jī)器視覺系統(tǒng)設(shè)計與測試保證量程和精度滿足要求;其次,通過比較不同濾波器的去噪效果,采用兩種保邊濾波器和中值濾波器相結(jié)合的方式去除噪聲;最后,設(shè)計了兩種基于Canny 算子的有效邊緣識別方法,實驗測得兩種方法的檢測平均誤差小于10%。
機(jī)器視覺系統(tǒng)性能與各部件均有關(guān),需要根據(jù)實際應(yīng)用需求進(jìn)行系統(tǒng)設(shè)計[6]。根據(jù)現(xiàn)有產(chǎn)品,選用芯片尺寸為1/2.5 英寸,像素大小為2.2 μm×2.2 μm。根據(jù)奈奎斯特采樣定理,設(shè)定芯片在像面處最小可分辨尺寸為8.8 μm,當(dāng)視場范圍和空間頻率分別為40 mm×40 mm 和5 lp/mm 時,根據(jù)薄透鏡放大率計算公式,如式(1)所示:
式中,h′和h分別為像高和物高,β為放大率,可以得到放大率應(yīng)在0.088~0.107 5 之間。小孔成像中的比例關(guān)系如式(2)所示:
式中,L、h、f′、h′分別為物距、物高、焦距以及芯片高度。當(dāng)物距為7~10 cm 時,得到鏡頭焦距在6.16~10.75 mm,文中選用8 mm 焦距。實驗測得當(dāng)物距為8.4 cm 時,放大率為0.088。最佳照明策略是最大化場景對比度,將重要區(qū)域的亮度置于相機(jī)的動態(tài)范圍內(nèi),依據(jù)冰、雪在可見光范圍內(nèi)的高透過率、高反射率以及不同光源的應(yīng)用特點[7],文中采用白色環(huán)形LED 照明。
為了測試系統(tǒng)的實際空間分辨率,采用對比度法[8]在物距為8.4 cm 處利用不同空間頻率的矩形靶標(biāo)對不同視場下的調(diào)制傳遞函數(shù)MTF(Modulation Transfer Function)進(jìn)行測試。MTF 計算式如式(3)所示:
式中,M′和M分別為輸出和輸入調(diào)制度,Imax、Imin和I′max、I′min分別是給定空間頻率V在輸入圖像和輸出圖像上像素灰度的最大值和最小值,輸入調(diào)制度M近似為1,含有系數(shù)π/4 是由于該處使用了矩形標(biāo)靶而不是正弦標(biāo)靶。利用程序求解I′max和I′min,通過計算得到系統(tǒng)MTF曲線如圖1所示。以MTF大于0.6作為清晰成像的判斷依據(jù),比較圖中曲線可以得到系統(tǒng)分辨率約為4 lp/mm,小于相機(jī)的理論值5 lp/mm,這是由于標(biāo)靶精度、平整度及光源均勻性導(dǎo)致的。通過以上系統(tǒng)設(shè)計及測試,得到系統(tǒng)的實際測試范圍和精度分別為0~40 mm 和0.125 mm。
圖1 系統(tǒng)MTF曲線
算法的基本流程如圖2 所示,對讀取到的圖像進(jìn)行對比度提升以便于后續(xù)識別,相機(jī)畸變校正中采用操作簡單且精度較高的張氏標(biāo)定法[9],忽略高階畸變系數(shù)和微小的薄棱鏡畸變,選取合適的棋盤格[10]標(biāo)定,得到相機(jī)內(nèi)參和畸變系數(shù)如式(4)所示,重投影誤差為0.38,將得到的相機(jī)參數(shù)值作為輸入?yún)?shù)進(jìn)行畸變校正。通過以上預(yù)處理后對圖像進(jìn)行去噪、邊緣檢測和提取。
圖2 算法流程
1.2.1 圖像去噪及Canny算子邊緣檢測
好的去噪效果是邊緣檢測的重要基礎(chǔ)。冰雪圖像噪聲主要源于透光孔上的灰塵、水滴、冰中的氣泡以及眩光效應(yīng),水滴和氣泡可以利用統(tǒng)計排序濾波來減小。經(jīng)過多次效果對比,文中采用非局部均值去噪、中值濾波和雙邊濾波結(jié)合的方式來去除噪聲。圖3 為非局部均值去噪的執(zhí)行過程,以y為中心的鄰域窗口在以x為中心的搜索窗口中滑動,計算兩鄰域窗口V(x)、V(y)之間的高斯加權(quán)歐氏距離來確定其相似程度,具體計算如式(5)~(7)所示:
圖3 非局部均值去噪的執(zhí)行過程
其中,(x)為經(jīng)過濾波的圖像,w(x,y)為鄰域窗口y的權(quán)重系數(shù),n為平滑參數(shù),Z(x)為歸一化系數(shù)。h的大小需要根據(jù)圖像中的噪聲水平來確定,在程序中該值設(shè)定為50。然后利用模板大小為27 的中值濾波器去除表面較小水滴引起的噪聲點[11],最后采用雙邊濾波器再次去噪。雙邊濾波器中的模板權(quán)值與像素間的歐氏距離和灰度相似性有關(guān)[12],灰度差值和距離越大時權(quán)值越小。其空域模板系數(shù)、值域模板系數(shù)如式(8)和式(9)所示:
式中,(k,l)為模板窗口的中心坐標(biāo),(i,j)為窗口的其他像素坐標(biāo),σd、σr為高斯函數(shù)標(biāo)準(zhǔn)差,分別設(shè)定為15 和80,f(i,j)為待處理圖像中坐標(biāo)(i,j)處的像素灰度。
經(jīng)過3 種濾波器對圖4(a)降噪后得到的Canny算子邊緣檢測結(jié)果如圖4(b)所示,檢測到的邊緣清晰且消除了由于氣泡存在導(dǎo)致的冰塊分層及灰塵和部分水滴的干擾。而當(dāng)只使用其中兩種濾波器去噪時,噪聲較大,如圖5(a)、(b)所示;圖5(c)中的噪聲也多于圖4(b),這表明非局部均值去噪和中值濾波去除了大部分噪聲,且未使邊緣模糊而影響檢測,3種濾波器結(jié)合的效果更好。
圖4 經(jīng)過3種濾波器去噪后的Canny算子檢測結(jié)果
圖5 不同去噪情況下的Canny算子檢測結(jié)果
為了比較不同邊緣檢測算子[13]對冰雪圖像的檢測效果,依次采用Roberts 算子、Prewitt 算子、Sobel 算子和Laplacian算子對降噪之后的圖4(a)圖進(jìn)行檢測,結(jié)果如圖6所示,從圖中看到Roberts算子檢測效果最差,Laplacian 算子未檢測到冰雪分界,而Prewitt 算子和Sobel算子效果相似,雖然檢測到了冰雪分界但比較模糊,為多像素寬度。圖4(b)所示的Canny算子檢測結(jié)果更為清晰,所以文中采用經(jīng)典Canny算子,其基于信噪比、定位精度和單邊緣響應(yīng)準(zhǔn)則,實現(xiàn)過程可分為4步。
圖6 各算子邊緣檢測結(jié)果
1)對圖像進(jìn)行高斯平滑以提高信噪比;
2)采用如式(10)所示Sobel 算子與圖像進(jìn)行卷積得到梯度大小和方向,g(x,y)、α(x,y) 如式(11)、式(12)所示:
其中,Gx和Gy分別為水平和豎直方向的一階導(dǎo)數(shù)值;
3)在梯度圖內(nèi)沿著每點的梯度方向判斷該點鄰域內(nèi)的極大值,若該點不是極大值則將其置零,即進(jìn)行非極大值抑制,保留局部梯度最大的點,以得到細(xì)化的邊緣;
4)設(shè)定兩個閾值T1、T2且T1<T2,小于T1的點置零,大于T2的點賦最大值,在兩者之間的像素點使用8 連通域確定其是否為邊緣點,只有與大于T2的像素相連接時才被認(rèn)為是邊緣點[14]。與其他邊緣檢測算子相比,Canny 算子不僅得到了細(xì)化的邊緣且更加準(zhǔn)確。
1.2.2 兩種有效邊緣識別方法
經(jīng)過以上3 種濾波器的去噪和Canny 算子進(jìn)行邊緣檢測,可以看到所檢測到的冰雪邊緣不規(guī)則分布,且不同于一般工業(yè)零部件的厚度檢測,冰雪厚度的可能值在0~20 mm 范圍內(nèi)變化,待測范圍小且厚度值不固定,有效邊緣定位成為整個厚度檢測算法中的難點。為此,文中設(shè)計了基于邊緣特征的一階差分法和自適應(yīng)閾值法,以實現(xiàn)有效的邊緣檢測。理想的水平邊緣經(jīng)過Canny算子檢測,得到的邊緣縱坐標(biāo)曲線如圖7(a)所示,但實際上邊緣傾斜、不平整且有噪聲影響,導(dǎo)致Canny 檢測結(jié)果如圖7(b)所示,可以看到數(shù)據(jù)量過大且曲線趨勢復(fù)雜,為了在大量數(shù)據(jù)中精確定位邊緣值,首先設(shè)計了基于邊緣特征的一階差分法。
圖7 水平邊緣各點縱坐標(biāo)曲線
基于邊緣特征的一階差分法基本思想:利用相鄰邊緣坐標(biāo)差值和有效邊緣長度這兩個邊緣特征,得到邊緣坐標(biāo)數(shù)組中各有效邊緣之間的分界位置,然后求解各段坐標(biāo)均值,作為最終提取結(jié)果。其實現(xiàn)過程包括如下步驟。1)獲得各點縱坐標(biāo)數(shù)組:對Canny 算子檢測結(jié)果進(jìn)行概率霍夫變換[15],得到被檢測為邊緣的各點縱坐標(biāo)組成的數(shù)組,對數(shù)組中元素排序得到數(shù)組Y;2)濾除平滑邊緣:利用式(13)計算數(shù)組Y的一階差分ΔY,設(shè)定a=2,并與ΔY[i]進(jìn)行比較,得到ΔY中大于2 的元素相應(yīng)的索引數(shù)組A,有效邊緣點的索引就包含在內(nèi);3)得到長度大于b的邊緣:繼續(xù)對A求一階差分得到ΔA,設(shè)定b=50 并與ΔA作比較,得到ΔA中大于50 的元素相對應(yīng)的索引數(shù)組C;4)求Y中階躍變化的位置:根據(jù)各索引數(shù)組的對應(yīng)關(guān)系,以C中索引為界,分段求解ΔY中最大值作為最終分段,識別Y中坐標(biāo)值的分界數(shù)組D,求解各段坐標(biāo)均值,即得到邊緣提取結(jié)果。第一步中采用概率霍夫變換,是利用其統(tǒng)計特點來減小數(shù)據(jù)量?;谶吘壧卣鞯囊浑A差分法將直接求解分布范圍較窄的階躍點轉(zhuǎn)化為先求解分布較寬、長度大于b的邊緣位置,再據(jù)此求得階躍位置。該方法不僅有效排除了噪聲的干擾且檢測精度和可檢測到的邊緣長度可以根據(jù)應(yīng)用需要進(jìn)行調(diào)節(jié),其檢測精度由相鄰邊緣點縱坐標(biāo)差值a決定,可檢測到的邊緣長度由b決定。
自適應(yīng)閾值法不同于上述基于邊緣特征的一階差分法,其是根據(jù)檢測范圍和精度來選取閾值數(shù)組,將閾值數(shù)組中每一個元素依次與坐標(biāo)數(shù)組一階差分的元素進(jìn)行比較,從而得到適應(yīng)于待測厚度的閾值和厚度個數(shù),該閾值是消除噪聲和干擾邊緣對最終結(jié)果影響的關(guān)鍵,厚度個數(shù)作為冰雪識別的輔助條件。該方法可分為3 個步驟。
1)獲得各邊緣坐標(biāo)Y:由霍夫變換[16]得到邊緣線后,計算各線與圖像左、右邊界線的交點,兩交點縱坐標(biāo)p1、p2 計算式如式(14)所示:
其中,ρ為極坐標(biāo)中直線與原點的距離,θ為直線的垂線與極軸的夾角,w為圖像寬度,ρ和w的單位為像素;
2)求解符合當(dāng)下檢測厚度的閾值和厚度個數(shù):將各邊緣線縱坐標(biāo)數(shù)組Y的一階差分ΔY中各元素,依次與閾值數(shù)組Thresh[40,30,20,10,5,2]中的元素比較,得到的閾值作為識別Y中有效邊緣坐標(biāo)的依據(jù),峰值個數(shù)表示在該閾值下檢測到的厚度值個數(shù);
3)識別待測物質(zhì):結(jié)合峰值個數(shù)和冰、雪灰度分界值150 對冰和雪進(jìn)行識別,并通過相機(jī)放大率得到最終厚度。該方法的檢測精度由Thresh數(shù)組中的最小值決定,根據(jù)不同檢測范圍和精度可具體設(shè)定數(shù)組中各元素值的大小。
ΔY和數(shù)組Thresh比較的過程是自適應(yīng)閾值法的關(guān)鍵,主要可分為兩步:第一步求解3 個索引數(shù)組Index1、Index2 和Index3,統(tǒng)計ΔY中大于Thresh[i]的元素個數(shù),將其依次存于數(shù)組number0 中,并將number0 中元素值為1、2 和大于2 的相應(yīng)索引分別存于數(shù)組Index1、Index2 和Index3 中,該索引值即為對應(yīng)中閾值元素的索引。由于待測厚度和厚度值個數(shù)的隨機(jī)性,所以第二步根據(jù)厚度檢測中可能出現(xiàn)的情況將以上數(shù)組分為3 種情況進(jìn)行判斷。3 種情況包括:1)Index1 不為空;2)Index1 和Index2 都為空,此時表示超量程或厚度小于檢測精度;3)Index1 為空,Index2 不為空,此時厚度值個數(shù)為2。Index1 不為空時,根據(jù)邊緣數(shù)據(jù)特點,又分為Index2 不為空、Index2 和Index3 都為空、Index2 為空且Index3 不為空3 種情況。這種選取合適閾值的方法很好地解決了在待測物厚度、邊緣形狀和待測物個數(shù)隨機(jī)變化的情況下對有效邊緣的誤判問題。
在環(huán)境光為室內(nèi)燈光,物距為8.4 cm 時,采用聚丙烯酸鈉制造的人造雪代替真實雪,在LED 照明下得到如圖8(a)所示的冰雪圖;去噪后利用Canny 算子檢測邊緣得到圖8(b)所示的冰雪邊緣,冰表面存在較多氣泡引起的噪聲,黑色底座因未在聚焦范圍,所以邊緣未被檢測到;圖8(c)為圖8(b)中所有灰度值不為0 的像素點的縱坐標(biāo)曲線,可以看到曲線沒有明顯的水平邊緣規(guī)律性,且數(shù)據(jù)量很大。而經(jīng)過兩種方法處理得到的圖9 中,數(shù)據(jù)量明顯減少且曲線上圓點標(biāo)記值即為利用基于邊緣特征的一階差分法和自適應(yīng)閾值法得到的有效邊緣均值計算結(jié)果,可以看到,結(jié)果都位于每段近似水平曲線的中間位置,表明了邊緣提取結(jié)果的準(zhǔn)確性。
圖8 Canny算子檢測結(jié)果
圖9 兩種有效邊緣識別方法得到的結(jié)果
為了定量描述檢測結(jié)果的準(zhǔn)確性,如表1 所示為邊緣檢測結(jié)果、冰雪計算厚度、實際厚度和誤差,誤差計算如式(15)所示,Treal和Tcal分別為實際厚度和計算厚度值。實際厚度的測量以畸變校正后圖像中央位置處對應(yīng)的冰雪厚度為準(zhǔn)。從表1 中可以看到兩種方法的誤差都小于10%。
表1 兩種方法檢測結(jié)果
為了避免偶然性,改變光照條件、邊緣形狀和冰雪厚度,對圖10 的6 幅圖片分別進(jìn)行厚度檢測,圖10(a)、(b)、(c)分別為室內(nèi)環(huán)境光下的成像,圖10(d)、(e)為LED 燈照明下的成像,圖10(f)利用LED 照明并且增加了實際應(yīng)用時的透光板,引入了灰塵和眩光效應(yīng)帶來的干擾。相應(yīng)檢測結(jié)果如表2所示,可以看到兩種方法對冰雪檢測的平均誤差都不超過10%。
圖10 不同邊緣形狀和厚度的冰雪圖像
通過以上實驗可以發(fā)現(xiàn),基于邊緣特征的一階差分法整體誤差高于自適應(yīng)閾值法,這是由于該方法基本原理是基于水平邊緣坐標(biāo)特點的,當(dāng)冰雪邊緣不平整程度遠(yuǎn)大于檢測精度時,會在一條邊緣處出現(xiàn)多個階躍位置,而算法只提取一階差分最大位置。此外,在實驗操作過程中,物距測量存在誤差,導(dǎo)致實際放大率與預(yù)設(shè)的0.088 放大率不一致,從而在計算冰雪厚度時引入誤差。
文中提出使用機(jī)器視覺的方法對路面冰雪情況進(jìn)行探測,相比于其他已有方法,其優(yōu)點在于成本低,且可以定量檢測冰雪情況。針對該方法在具體實現(xiàn)中的難點,文中主要進(jìn)行了以下工作:
1)通過系統(tǒng)性能設(shè)計確保量程和精度滿足檢測需求;
2)針對冰雪圖像噪聲特點,采用兩種保邊濾波器和中值濾波結(jié)合的方式進(jìn)行降噪處理;
3)針對自然結(jié)冰積雪過程中厚度范圍、待測物個數(shù)和邊緣形狀的隨機(jī)性,在Canny 算子的基礎(chǔ)上,設(shè)計了基于邊緣特征的一階差分法和自適應(yīng)閾值法提取邊緣,兩種方法的檢測平均誤差在10%以內(nèi)。
以上工作為以后機(jī)器視覺應(yīng)用于實際路面的冰雪厚度監(jiān)測提供了可能。