李 頎, 季雨薇, 王志鵬, 竇 軒
(陜西科技大學 電氣與信息工程學院, 陜西 西安 710021)
基于OpenCV+Python的道路結冰檢測系統的設計
李 頎, 季雨薇, 王志鵬, 竇 軒
(陜西科技大學 電氣與信息工程學院, 陜西 西安 710021)
針對目前國內基于視頻檢測的道路結冰檢測裝置采集到的路面圖像環(huán)境復雜、結冰信息提取不充分導致識別準確率低的問題,設計了一種道路結冰檢測系統;通過設定ROI以及邊緣檢測與二值形態(tài)學結合的方法對車輛進行分割以獲得僅有路面的圖像,采用自適應小波去噪算法對路面圖像進行預處理以提高圖像識別的準確率,提取道路圖像顏色H、I分量的三個低階矩以及灰度共生矩陣中的能量、熵和方差的組合作為特征向量,使用SVM分類器對道路圖像進行識別,結果通過以太網分級傳輸至監(jiān)控中心對數據進行存儲、查看以及顯示.實驗結果表明,該系統能夠準確、有效地對道路狀態(tài)進行識別,并能夠將圖像以及數據發(fā)送至監(jiān)控中心供工作人員查看,為交通管理部門的決策提供了數據基礎.
結冰檢測; 圖像處理; OpenCV; 自適應小波去噪; Python
隨著人民生活水平的不斷提高,越來越多的人選擇汽車作為出行的首選交通方式,但是如何保證行車安全,成為人們日益關心的問題.據統計在各種交通事故中,由于地面濕滑或結冰所引發(fā)的事故的發(fā)生比率占到了70%[1].盡管目前在國際市場上已經出現埋入式傳感器等傳感器及技術,在我國關于此技術的研究仍然處于初步階段.由于路面環(huán)境的開放性以及結冰的不均勻性,埋入式結冰傳感器存在可靠性差、成本高且安裝困難的問題.基于圖像處理的道路結冰檢測技術的優(yōu)勢在于其功能強大,圖像直觀,由軟件控制,便于升級,成本較低;安裝維修時不破壞路面,不封閉車道,可以根據不同要求重新設定位置[2].
現有的基于圖像檢測的方式均以道路監(jiān)控視頻為基礎,監(jiān)控中心將各個道路攝像頭采集到的圖像進行處理識別,但是采集到的道路圖像包含的信息不只有路面圖像還包括車輛以及其他障礙物的遮擋,而且由于路面環(huán)境復雜在相機拍攝時出現噪聲,這會導致圖像識別準確率降低;一個普通的監(jiān)控中心監(jiān)測的道路的數量非常可觀,而且道路狀態(tài)分類算法較復雜,同時在上位機上進行處理會出現來不及處理的情況.針對該問題,本文設計了一種道路結冰檢測系統,當檢測到路面溫度低于0 ℃時,使工業(yè)相機采集路面狀態(tài)圖像,在樹莓派上對采集到的圖像進行處理、識別、分類,將道路圖像以及識別后的結果發(fā)送至道路監(jiān)控分中心的數據庫中,監(jiān)控中心上位機接收到道路圖像以及分類檢測結果后進行顯示.
本系統實際應用在高速公路上,一段道路上需要布有一個或者多個采集點對道路上的狀況進行檢測.在高速公路上間隔50 km架設道路狀況采集終端,該終端安裝于道路中間的隔離帶或者綠化帶旁,利用光纖線路通過以太網進行分級傳輸,在每一個地區(qū)設有監(jiān)控分中心,將這一地區(qū)中所有道路的狀況信息進行匯總再上傳至總監(jiān)控中心,系統總體結構如圖1所示.
系統整體設計分為兩個部分:道路狀態(tài)檢測終端設計和監(jiān)控中心監(jiān)測子系統設計.道路檢測終端完成的工作有道路狀態(tài)采集、處理和傳輸;監(jiān)控中心監(jiān)測子系統由圖形用戶界面以及數據庫組成,監(jiān)測子系統將接收到的道路圖像以及識別結果存入數據庫中,并在圖像用戶界面中進行顯示、查詢.
圖1 道路結冰檢測系統框圖
圖像采集、處理以及傳輸工作需要由道路狀態(tài)檢測終端完成,由于傳統的DSP+FPGA/CPLD組合雖然能夠完成采集及處理的工作,但是網絡傳輸較復雜,還需要外加網絡協議棧芯片.樹莓派作為入門型的嵌入式平臺網絡傳輸方式簡單靈活,本文選用的樹莓派3,處理器為64位的1.2 GHz四核ARM Cortex-A53.終端需要提取道路圖像特征以及分類,由于OpenCV中集成了大量的成熟算法,通過調用OpenCV中的函數可以實現圖像處理,選擇在樹莓派中安裝OpenCV軟件,通過編寫Python程序可以完成圖像的處理工作,所以選用樹莓派3作為主處理器可以滿足終端的需求[3].
考慮到終端工作環(huán)境較差,對道路圖像質量要求較高的原因,選用像素為500 W的工業(yè)彩色COMS相機作為道路圖像采集單元,型號為MV-UB500,最大分辨率達到2592*1944,該工業(yè)相機支持Linux系統,也可以兼容OpenCV軟件,與樹莓派通過Universal Serial Bus(USB)接口相連.路面溫度采集單元選用DS18B20溫度傳感器,利用樹莓派General Purpose Input Output (GPIO)口搭建溫度采集電路.由于高速公路一般鋪設有光纖,所以通過樹莓派的10/100以太網接口采用TCP/IP網絡協議將圖像與處理結果發(fā)送至監(jiān)控中心,監(jiān)控中心通過RJ45接口與以太網光纖相連.電源模塊采用樹莓派的獨立供電裝置PiJuice,通過micro-USB接口對樹莓派進行供電,輸入為5 V,能夠連續(xù)供電6 h,且配有太陽能電池板方便在戶外環(huán)境中使用.由于結冰的過程時間較長,本系統終端每2 h工作一次,其余時間均為休眠狀態(tài),所以PiJuice可以滿足本系統的供電要求.終端硬件結構如圖2所示.
圖2 道路結冰檢測終端硬件結構框圖
2.1 道路溫度及圖像的獲取
路面溫度低于0 ℃是整個系統的觸發(fā)信號,若檢測到道路溫度低于0 ℃時,采集路面圖像以及后續(xù)的處理,工作流程圖如圖3所示.路面溫度的測量通過樹莓派的單總線驅動來驅動DS18B20獲取溫度數據,之后判斷溫度值是否低于0 ℃,若高于0 ℃,則進入休眠狀態(tài)兩小時后再進行溫度采集;若低于0 ℃,則調用工業(yè)相機采集路面圖像.在自然光條件下,使相機鏡頭距地面1.5米垂直拍攝,固定焦距以確保所拍攝的圖像具有相同的初始條件,以保證分類結果的準確性.圖像采用960*600分辨率,格式為JPEG,文件大概103 K,一次拍兩張路面狀態(tài)照片進行處理以保證識別結果的準確率.至此,道路圖像已經采集至樹莓派的內存中,以供后續(xù)圖像處理步驟使用.
圖3 道路結冰檢測系統工作流程圖
2.2 道路圖像處理及分類
道路圖像經過上述步驟已經保存至樹莓派的內存中,所采集到的圖像可能是干燥、積水、積雪、結冰中的某一種,所以需要對采集到的圖像進行處理分類,道路圖像識別分類的流程圖如圖4所示.本文進行圖像處理時所選擇的環(huán)境為OpenCV2+Python2.7.9.
圖4 道路圖像識別分類流程圖
2.2.1 道路圖像預處理
由工業(yè)相機直接采集到的圖像會出現障礙物遮擋、噪聲等干擾,影響圖像特征提取以及分類結果的準確率,降低分類的速度,所以需要對采集到的圖像進行預處理.道路圖像的預處理包括對由于道路圖像的分割以及去噪.道路圖像在采集的過程中,圖像上會出現車輛以及綠化帶的遮擋,在道路圖像特征提取的過程中會帶入誤差而且會導致提取的過程變慢,所以需要對道路圖像進行分割.由于綠化帶的位置是固定的,可以通過設定感興趣區(qū)域Region of Interest(ROI)將綠化帶與道路圖像分離以減小計算量,在道路圖像的分割中,車輛具有較多的邊緣信息,所以可以通過邊緣檢測的方法將車輛與道路圖像進行分割,在對比了Canny、Sobel、Prewitt、Robert、Laplace這五種邊緣檢測方法的效果后發(fā)現,Canny算子在檢測車輛邊緣連接最清晰,所以選用Canny算子進行車輛邊緣檢測再進行目標填充、形態(tài)學處理以及分割,道路圖像分割效果如圖5所示.經過分割后的圖像由原來的103 K縮小至68 K,獲得了僅有路面的圖像,加快了圖像特征提取的速度.
圖5 道路圖像分割效果對比圖(左為原始道路圖像,右為分割后道路圖像)
在道路圖像采集時相機由于曝光量過低、采集過程中攝像頭震動以及路面不均勻性的影響,會出現明顯的噪聲引起圖像質量下降,為了減少噪聲對路面狀態(tài)識別的影響提高識別的準確率,需要采用圖像去噪算法改善圖像質量,以保證路面紋理信息的完整性.路面圖像有干燥、潮濕/積水、積雪、結冰,除積雪道路外三種圖像的邊緣信息都較為明顯,使用單純的濾波方式時會濾除圖像中的高頻部分,濾波的同時會使邊緣模糊.圖像的能量主要集中在低頻部分,而邊緣細節(jié)與噪聲相對集中在高頻部分,使用低通濾波器在對路面圖像進行去噪的同時,也會使圖像邊緣變得模糊.由于小波去噪具有多分辨率的特性使得道路圖像的細節(jié)、邊緣等特征得以保留,道路圖像經過小波分解后,通過運算消除高頻系數中的部分系數值,再利用處理過的高頻系數與圖像分解后的低頻系數進行重構從而達到去噪的目的.但是傳統的小波去噪由于閾值選擇是統一的,導致去噪后的路面圖像細節(jié)不夠清晰,小波自適應去噪方法通過選擇小波分解后各層系數去噪的較優(yōu)閾值,選取合適的閾值函數高頻系數進行處理以保留路面圖像細節(jié)信息[4-6],所以本文采用小波自適應閾值的方式對路面圖像進行去噪.
(1)對含噪聲路面圖像進行3層小波分解.
(2)從分解后的高頻子帶中估計出噪聲方差σ2.
(3)計算每一級尺度參數β:
(1)
式(1)中:k=1、2、3,Lk為k級子帶長度,L為原含噪聲圖像長度.
(4)計算第1層到第3層的高頻系數方差σy.
(5)計算閾值Tk,
(2)
式(2)中:σ2為估計噪聲方差,σy為高頻系數方差,β為尺度參數.
(6)根據改進的軟閾值函數對從1層至3層的高頻系數進行處理,
(3)
式(3)中:參數p=2c,c通常取10r,r為比閾值T大兩倍的小波系數百分比.
(7)用閾值化后的小波系數對路面圖像重構,得到去噪后的路面圖像.
該種去噪方法與普通固定閾值小波去噪方法效果對比如圖6所示.該種方法運算量較小,能夠有效的濾除路面圖像中的噪聲,同時保留路面圖像的細節(jié)信息,提高了路面圖像識別分類的準確率.
(a)原始圖像 (b)含噪圖像
(c)普通小波去噪圖像 (d)自適應小波去噪圖像圖6 自適應小波去噪效果圖
2.2.2 道路圖像顏色特征提取
在道路被雪覆蓋時,呈現的是反射率較高的白色;路面積水時,呈現反射率較低的白色;結冰時,路面變得灰白或者透明.因此,可以根據觀察路面顏色,提取各種路面狀態(tài)下的顏色特征值,進行路面種類的識別.在機器視覺中,常用的顏色模型可分為RGB模型、HSI模型以及HSV模型[7].由于檢測終端安裝在戶外環(huán)境下,白天光照強度對路面顏色的影響較大,但HSI模型相對于RGB模型來說受光照強度影響小,所以選擇將RGB空間轉換至HSI顏色空間,作為路面圖像顏色提取的彩色空間.對HSI顏色空間中的H、S、I值分別做與路面狀態(tài)的關系研究后發(fā)現,色調H、亮度I與路面狀態(tài)之間存在明顯的相關關系,如圖7、8所示,所以可以通過判斷路面圖像的色調H與亮度I,對這四種路面狀態(tài)進行分類.
圖7 色調H與路面狀態(tài)關系圖
圖8 亮度I與路面狀態(tài)關系圖
路面圖像的HSI空間中H分量以及I分量的3個低階矩陣,這三個低階矩陣分別描述了圖像顏色的平均值、方差和斜度.通過提取H、I兩個分量與一、二、三階矩陣,構造出一個含有6個分量的顏色特征向量(H分量的一階矩HM、H分量的二階矩HV,H分量的三階矩HS,I分量的一階矩IM、I分量的二階矩IV,I分量的三階矩IS),作為道路圖像顏色特征的特征向量.計算這三個低階矩的公式如下[8]:
(4)
(5)
(6)
式(4)中:μ為圖像顏色一階矩即顏色的平均值,pij是圖像中第j個像素的第i個顏色分量,N為道路圖像的總像素個數;式(5)中:σ為圖像顏色二階矩即顏色的方差;式(6)中:s為圖像顏色三階矩即顏色的斜度.
2.2.3 道路圖像紋理特征提取
由于路面狀態(tài)受地面層溫度、濕度及大氣等多方面因素影響,路面反射圖像充滿了大量的中高頻隨機信號,具體表現在路面圖像多為微弱紋理圖像,較難建立可用于物理測量的關于各種路面狀態(tài)的紋理模型.目前對路面紋理提取的方法有:灰度共生矩陣、Gabor小波變換等[9].由于灰度共生矩陣與Gabor小波變換描述紋理準確率相差不大,但灰度共生矩陣計算復雜度較Gabor小波變換低,檢索速度快,所以本文選用灰度共生矩陣描述圖像紋理特征[10].本文分別采集了干燥、積水、積雪、結冰這4類路面狀態(tài)各20幅圖像,隨機從中提取了50個圖像樣本進行紋理特征參數的篩選.為消除方向性的影響,灰度共生矩陣取0 °、45 °、90 °、135 °四個方向的平均值,進行特征參數選取試驗所得結果如表1所示.
表1 特征參數選取試驗結果
由表1可以看出,選用單一特征參數對路面狀態(tài)進行分類時,分類的結果不是很理想,而選用多種特征參數對路面狀態(tài)進行分類時,分類效果較單種特征參數分類正確率有了提高,在多種特征參數中,能量、熵和方差的組合分類正確率達到95.6%.因此本文使用灰度紋理共生矩陣對路面圖像的紋理進行提取時,選擇能量、熵以及方差的組合進行描述.
2.2.4 分類器設計
經過以上兩步選擇HSI顏色空間中HM、HV、HS、IM、IV、IS、灰度紋理共生矩陣中的能量、熵以及方差組成的特征向量作為道路圖像特征描述量.現有道路狀態(tài)分類器設計研究中,人工神經網絡(ANN)和支持向量機(SVM)是分類準確率較高的兩種分類器[11].由于本文中所采集的路面圖像較少,ANN的訓練需要大量的數據樣本以保證分類的正確性;而且本系統應用至實際道路時路面情況復雜多變,ANN泛化能力不如SVM,所以本文選擇SVM作為分類器.SVM分類器是一種與學習算法相關的監(jiān)督學習模型,當樣本線性不可分而非線性可分的情況下,需通過非線性變換把學習樣本變換到高維空間,使樣本在高維空間是線性可分的.用核函數K(u,v)代替原來的點積(x·xi),核函數K(u,v)通過與其相聯系的非線性變換把特征向量映射到高維特征空間,使樣本成為線性可分的[12-15].常用的核函數有:徑向基(RBF)核函數,線性(LINEAR)核函數,多項式(POLY)核函數,Sigmoid核函數.
設樣本集合為{(xi,yi),i=1,2,…,n},其中xi為樣本點,yi為四種路面狀態(tài)類別,n為樣本個數.
其中,樣本點xi(i=1,2,…,n)定義為:
(7)
(8)
式(8)中:αi為每個約束條件對應的Lagrange乘子.最優(yōu)分類函數為:
(9)
本文采用OpenCV中基于lib-SVM的工具箱對圖像識別生成分類模型,lib-SVM對多類別分類為一對一法,該算法將一個k類問題轉換為k(k-1)/2個二分類問題,利用SVM工具箱對各類路面狀態(tài)分類的大概流程如下[16]:
(1)設置訓練樣本集.選取干燥、積水、積雪、結冰四種路面狀態(tài)下的預處理后的道路圖像,提取最優(yōu)特征向量值組合的前一半作為訓練樣本集,后一半為測試樣本集.
train_cells=[i=[:50] for i in cells] //前50組為訓練樣本
test_cells=[i=[50:]for i in cells] //后50組為測試樣本
(2)設置SVM參數.利用svm_params更改變量參數,包括內核參數,SVM的類型,懲罰系數C等.
svm_params=dict(
kernel_type=cv2.SVM_RBF,//設置內核函數為徑向基函數
svm_type=cv2.SVM_C_SVC,//設置SVM分類器類型為C-SVC
C=2.98) //設置懲罰系數,根據實際分類效果尋找最優(yōu)系數
(3)訓練SVM.
svm=cv2.SVM()
svm.train(trainData,responses,params=svm_params) //第一個為訓練數據,第二個為分類結果,最后一個是SVM參數
svm.save(‘svm_data.dat’)
(4)利用這個SVM模型分類,調用predict函數實現分類
result=svm.predict_all(testData)
至此道路終端處理節(jié)點已完成了圖像檢測分類的工作,還需要將分類檢測的結果以及檢測圖像發(fā)送至道路監(jiān)控子中心的數據庫中.道路監(jiān)測中心子系統的上位機軟件主要由圖形用戶界面、數據庫組成,完成的功能有:與道路終端的通信,數據的存儲、查詢顯示、結冰報警等.通信模塊采用TCP/IP網絡協議分級傳輸的方式,實現遠距離數據傳輸.由終端先將數據上傳至監(jiān)控子中心的數據庫中,監(jiān)控子中心再將數據打包后上傳至監(jiān)控中心的數據庫中,網絡傳輸結構圖如圖9所示.上下位機的以太網通信是基于異步非阻塞Socket封裝類中的函數實現的,圖形用戶界面軟件完成對數據的解析、保存、實時的顯示以及曲線的繪制.
圖9 道路結冰檢測網絡傳輸結構圖
為了實現對道路終端處理節(jié)點的工作狀態(tài)進行實時監(jiān)測,以及路面結冰狀態(tài)的監(jiān)測和預警功能,在Windows操作系統下Delphi編程環(huán)境中設計和開發(fā)道路結冰檢測系統的圖形用戶界面,如圖10所示.道路交通監(jiān)控人員可以通過該軟件對各個地區(qū)內的交通道路的結冰情況進行查看,當系統檢測到道路出現結冰會彈出警報提醒交通監(jiān)控人員對相關道路采取相應的應急措施,并提供路面溫度變化曲線幫助工作人員進行分析對比.
圖10 高速公路路面結冰檢測圖形用戶界面圖
取干燥、積水、積雪、結冰狀態(tài)下的路面圖像各100幅,經過預處理之后的圖像作為A組,未經過預處理的圖像作為B組.每組提取每種路面狀態(tài)圖像前50幅的最優(yōu)特征向量作為訓練樣本集,后50幅的最優(yōu)特征向量作為測試集,測試特征提取時間、SVM訓練時間、分類結果正確率、MSE誤差值,結果見表2所示.經過分析可得出,特征提取速度上A組圖像比B組圖像提取時間短4.105 s,而且A組圖像分類準確率相比較B組圖像分類準確率高出7.7%.由此可得出經過路面圖像預處理提高了分類識別的準確率以及分類識別速度.
表2 經預處理圖像樣本性能對比
本文設計了基于OpenCV+Python的道路結冰檢測系統,由終端采集路面溫度以及圖像,首先使用邊緣檢測和二值形態(tài)學結合的方式對圖像進行分割,采用自適應小波去噪方法以提高圖像識別的準確率,然后提取路面圖像的特征值通過SVM分類器進行識別,最后識別結果通過以太網將路面圖像以及檢測結果以分級的方式發(fā)送至道路監(jiān)控中心.該系統解決了傳統依靠交通監(jiān)控視頻對路面狀態(tài)識別時由于采集到的圖像環(huán)境復雜、結冰信息提取不充分導致識別準確率低,以及監(jiān)控中心計算機處理量龐大、處理速度慢的問題.該系統能夠準確有效的對路面結冰狀態(tài)進行識別,并通過以太網將信息發(fā)送至監(jiān)控中心,為交通監(jiān)控部門提供了實時科學決策的依據.
[1] Symous L,Perry A.Predicting road hazards cause by rain freezing rain and wet surfaces and rok of weather radar[J].Meteoro,1997(4):7-21.
[2] 譚舒亞,葛俊鋒,葉 林,等.非接觸式路面結冰探測技術研究進展[J].公路,2015(6):244-249.
[3] 張懷柱,姚林林,沈 揚,等.基于樹莓派的農作物低空觀測系統設計[J].吉林大學學報(信息科學版),2015,33(6):625-631.
[4] 于篤發(fā),邵建華,張晶如.基于小波自適應閾值圖像去噪方法的研究[J].計算機技術與發(fā)展,2013,23(8):250-253.
[5] 郭中華,李樹慶,王 磊,等.自適應閾值的小波去噪改進算法研究[J].重慶郵電大學學報(自然科學版),2015,27(6):740-744.
[6] 劉瑞禎,于仕琪.OpenCV教程[M].北京:北京航空航天大學出版社,2007.
[7] 萬 劍,趙 愷,王維鋒.基于高維特征和RBF神經網絡的濕滑道路圖像判別方法[J].交通信息與安全,2013,31(2):32-35.
[8] Burges J C.A tutorial on support vector machines for pattern recognition[J].Data Mining and Knowledge Discovery,1998,2(2):121-167.
[9] 張光新,崔 揚,周澤魁.基于小波包分解的紋理圖像去噪[J].華南理工大學學報(自然科學版),2005,33(3):31-33.
[10] 楊曉偉,郝志峰.支持向量機的算法設計與分析[M].北京:科學出版社,2013.
[11] 唐 欽.基于顏色和紋理特征的植物葉片識別方法研究[D].杭州:浙江大學,2015.
[12] 鄭 紅,李 釗,李 俊.灰度共生矩陣的快速實現和優(yōu)化方法研究[J].儀器儀表學報,2012,33(11):2 509-2 515.
[13] 肖 靚.基于支持向量機的圖像分類研究[D].上海:同濟大學,2006.
[14] 田有文,鄭鵬輝,許童羽,等.基于安卓的黃瓜葉部病害程度檢測系統的研發(fā)[J].計算機工程與設計,2016,37(5):1 411-1 416.
[15] 陳 強,田 杰,黃海寧,等.基于統計和紋理特征的SAS圖像SVM分割研究[J].儀器儀表學報,2013,34(6):1 413-1 420.
[16] 劉新宇,黃德啟.基于SVM分類器的道路濕滑圖像分類方法研究[J].武漢理工大學學報(交通科學與工程版),2011,35(4):784-787.
【責任編輯:蔣亞儒】
Design of road icing detection system based on OpenCV+Python
LI Qi, JI Yu-wei, WANG Zhi-peng, DOU Xuan
(College of Electrical and Information Engineering, Shaanxi University of Science & Technology, Xi′an 710021, China)
In view of the shortcomings of the road icing detection device based on video detection in China,including the complex road environment image and the inadequate information extraction,the recognition accuracy is low.A road icing detection system is designed.ROI is set up and the method of edge detection and two value morphology is used to segment the vehicle to obtain the image of the pavement.Adaptive wavelet denoising algorithm is used to pre-process the road image to improve the accuracy of image recognition.The three low order moments of H and I components in HSI color space and the combination of energy,entropy and variance in the gray level co-occurrence matrix is extracted as a feature vector.SVM classifier is used to identify the road image.The classification results are transmitted to the monitoring system by Ethernet.The computer monitoring system can storage,query and analysis the road icing information.Experimental result shows:The system can classify the dry,water,snow and icy roads accurately and effectively,it also can send image and classification result to monitoring system,provide data foundation for traffic management.
ice detection; image processing; OpenCV; adaptive wavelet denoising algorithm; Python
2016-11-04 基金項目:陜西省科技廳農業(yè)科技攻關計劃項目(2015NY028); 西安市未央區(qū)科技計劃項目(201305); 陜西科技大學博士科研啟動基金項目(BJ13-15)
李 頎(1973-),女,陜西西安人,教授,博士,研究方向:工業(yè)自動化與智能控制
1000-5811(2017)02-0158-07
TP391.4
A