黃林,陶青川,沈建軍
(四川大學電子信息學院,成都 610065)
水資源和水安全問題嚴重影響國民經濟的發(fā)展,因此國家水利部門急切需要建立一套有效的水情監(jiān)控系統(tǒng),并能精確、實時地對江河、水庫和大壩等進行水位的監(jiān)測。目前國內大多水文檢測站使用傳統(tǒng)測量方法進行水位測量。
傳統(tǒng)水位測量方式主要有安裝水尺目測讀數(shù)和使用傳感器自動采集水位相關的模擬量再轉換為水位量兩種[1]。其中目測測量方式效率低、實時性差以及惡劣情況下無法讀取等缺點;而使用傳感器測量方式成本高、難以維護、受環(huán)境影響大等缺點。
目前,國內很多監(jiān)控水位監(jiān)控站點建設有攝像頭并配備了標準的水尺,為通過圖像處理的方式識別水位提供了硬件條件。國內外許多學者采用不同的圖像處理的方法對水尺識別做了一些研究工作[1-7]。但是,目前水尺水位的提取存在無法有效分隔清澈水面上水尺倒影和水尺本身[2-3]、識別刻度采用K-means聚類算法無法滿足實時性的要求[1]、在復雜背景的江面上需要人工輔助定位[4]以及基于雙目視覺需要兩個攝像頭且需要水平面參考基準[5]等問題。國內學者提出的基于色調的能量函數(shù)方法[7]實現(xiàn)水尺定位,而該方法對于背景相對單一的場景具有很好的效果。而本文場景是基于河流、湖泊以及水庫背景相對較復雜的場景上述方法無法有效的定位出水尺,例如圖1(a)所示的圖中,基于色調的能量統(tǒng)計圖如圖1(b)所示。
圖1 基于全局色調能量函數(shù)結果圖
本文首先在嵌入式設備中獲取攝像機的實時視頻,然后檢測和矯正水尺圖像并準確分割水尺和倒影,最后快速準確地得出了水尺刻度,研究表明該算法具有很大的工程實際意義。算法系統(tǒng)框圖如圖2所示。
水尺定位是準確獲取水尺刻度線的關鍵。所以,水尺定位的目標是精準定位水尺在圖像中的位置,并有效檢測和分割水面上的水尺和水下的倒影,消除水尺倒影的影響,同時裁剪圖像中水面上的水尺。此過程主要有:預處理、水尺定位和裁剪以及傾斜矯正。
圖2 算法系統(tǒng)框圖
水尺在清澈的水面上容易形成清晰的倒影,造成算法容易將水尺倒影誤識別為刻度。而基于色彩空間模型的水位識別算法的理論基礎是在不同的光照中,場景中待檢測目標物的色彩亮度有明顯的差異,然而它們的色調基本能夠保持一個比較穩(wěn)定的值[4]。因此在HSV色彩空間下能夠有效地分割水尺和水尺倒影。
解碼后的數(shù)據(jù)常為RGB格式,因此需要將水尺圖像按式(1)、式(2)、式(3)將其轉換到 HSV色彩空間,以便于后續(xù)的圖像的二值化。
將從攝像機采集到分辨率為958×1280的原始圖像f(x,y),見圖3(a),對其轉換到HSV色彩空間,然后對圖像按照表1對紅色取值范圍內的色彩進行二值化,得到圖3(b)所示的二值圖像。
其表 1,Hmin,Hmax,Smin,Smax,Vmin,Vmax分別是各個顏色的HSV分量的最小和最大值。
由圖3(b)可知,水尺在二值圖像中所占面積最大。因此利用形態(tài)學處理將水尺圖像膨脹使得水尺在圖像中連通,提取最大的連通區(qū)域即可粗略定位水尺。
表1 各個顏色HSV對照表
圖3 原始圖像的預處理
膨脹在數(shù)學形態(tài)上是連接物體的邊緣點,使得邊界向外擴展的過程[8],其數(shù)學表達式如下:
對3(b)的二值圖像經過膨脹操作,其膨脹后的圖像見圖 4(a),并計算圖 4(a)中連通區(qū)域的面積,其最大的外接矩形即為水尺目標所在的區(qū)域;然后在原始圖像f(x,y)上剪切最大外接矩形所在區(qū)域的水尺目標,得到圖 4(b)所示。
圖4 外接矩形粗略定位
基于膨脹裁剪的水尺圖像使得比真實水尺圖像略大,同時在清澈水面下剪切的水尺圖像的下邊界還存在部分的倒影。該倒影會嚴重影響對水尺刻度的識別精度。如4(b)所示水尺圖像上的刻度具有很強的水平邊緣信息以及周邊環(huán)境幾乎沒有水平邊緣信息特點,利用水平邊緣信息和掃描線法[9]再次裁剪水尺的左右區(qū)域。常見的邊緣信息獲取算子有Roberts、Sobel、Pre-witt以及Canny等。本文基于算法的復雜度以及實際效果考慮,采用了Sobel算子進行水平邊緣的檢測,然后對圖像的每一列進行掃描,其示意圖如圖5(a)所示,統(tǒng)計像素跳變次數(shù),統(tǒng)計方法如式(5)所示,即上一像素與下一像素邏輯異或處理,最后確定跳變次數(shù)連續(xù)大于閾值C的掃描線中的起始位置x1和終止位置x2,并再次裁剪得到如圖5(b)所示,閾值設定為10。
其中,代表x行y列的像素值,Nx代表x列的像素跳變個數(shù),^代表邏輯異或。
同時,色度和亮度是相互獨立的,在水面上下部分,物體的顏色的亮度會呈現(xiàn)比較大差異,見圖5(c)。
故對水尺圖像的飽和度(Saturation)進行建模,設計統(tǒng)計函數(shù)Ey對每一行的飽和度進行累加,如式(6)所示。
其中,height為水尺圖像的高,x1和x2分別為掃描線確定的起始和終止位置。
由于膨脹操作使得截圖部分尺寸大于真實的水面水尺,為減少運算量,故式(6)是從截取圖像的下半部分對飽和度進行能量統(tǒng)計,并對Ey歸一化,得到如圖5(e)所示能量函數(shù)圖。由圖5(e)能量統(tǒng)計圖觀察知,倒影部分的能量明顯偏低,故設定閾值即可找到水尺的下邊界,取閾值為0.25,重裁剪后的水尺圖像如圖5(d)所示。
圖像的傾斜矯正的核心在于如何確定待檢目標的傾斜角,目前傾斜角的檢測主要分為5類:基于變換的方法,基于投影特征的方法,基于交叉相關性的方法,基于變換的方法和最近鄰簇方法[11]。
目前常用的5種傾斜角度檢測方法都存在計算復雜度高的缺點,并且這些方法一般適用于文檔圖像和車牌圖像的校正,對于水尺圖像傾斜校正缺乏適應性,存在較大的誤差[11]??紤]嵌入式設備的計算能力和效果,該五類算法并不能適用于水尺刻度的矯正。本算法根據(jù)水尺幾何特性,利用水尺定位和裁剪過程中的最大連通區(qū)域的最小包圍矩形,獲取該連通區(qū)域的傾斜角θ。其最小包圍矩形不用循環(huán)迭代方式即可獲取到傾斜角,適用于嵌入式設備,其最小包圍矩陣如圖6(a)。
假設圖像某點坐標P(x0,y0),矯正坐標為P1(x,y)則旋轉矩陣如式(7)所示:
矯正前后的水尺圖像對比圖如圖6(b)、6(c)所示:
圖6 矯正前后對比圖
水尺的左半部分的數(shù)字會影響正確識別水尺水位識別結果,所以算法首先需要消去數(shù)字字符,然后進行連通處理,最后獲取連通區(qū)域的個數(shù),其個數(shù)即為水上的水尺刻度個數(shù)。此過程主要分為:消除字符、連通性分析提取水尺刻度。
圖5 水尺裁剪過程
如圖6(c)所示,將水尺圖像分為左右部分,利用閉操作對水尺的右半部分做形態(tài)學處理,使得右半部分能夠完全填充字符區(qū)域同時不影響右半部分的空白區(qū)域,然后利用右半部分消去左半部分的數(shù)字。
閉操作能使得輪廓平滑,同時能夠消、消弭狹窄的間斷和長細的鴻溝,消除小的空洞,并填補輪廓中的斷裂[8]。根據(jù)水尺圖像的特點,可采用大小為水尺圖像寬的1/4作為形態(tài)學處理的核,有效地將右半部分刻度區(qū)域填充。
使用結構元素B對集合A進行閉操作,表示A?B,其數(shù)學定義如下:
假定原水尺圖像為f(x,y),閉操作后的左半部分和右半部分水尺圖像分別為 f1(x,y)、f2(x,y),則用右半部分的像素取反后與左半部分進行邏輯與就可以消去左半部分的字符,按式(9):
水尺消去數(shù)字前后如圖7(a)和圖 7(b)所示。
水尺圖像在消去數(shù)字后,可能存在部分左右刻度線連接在一起的情況。因此,需要先斷開左右部分的刻度連接。形態(tài)學開操作能夠有效地消除細小的突出物以及在纖細處分離物體[8]。
使用結構元素B對集合A進行開操作,表示A°B,其數(shù)學定義如下:
然后采用算法復雜度比較低的Sobel算子做水平邊緣檢測,斷開水尺刻度之間的連接處,同時采用大津法(Ostu)對圖像做二值化。其二值化圖如圖7(c)所示。
最后統(tǒng)計圖7(c)中的連通區(qū)域個數(shù)就是水尺的刻度。連通區(qū)域檢測結果如圖7(d)所示。
本文算法的驗證實驗在樹莓派嵌入式設備,Ubuntu 64操作系統(tǒng)、OpenCV3.2.0版本的開源庫進行,采用最小刻度1cm的紅色水尺,并用手機采集了分辨率為958×1280,不同水位高度、拍攝角度以及水面清澈程度下的118張圖像,來識別圖像中水面部分的水尺的刻度個數(shù),并以此計算水位高度。典型實驗如圖8所示以及部分水位提取結果分析如表3所示。
圖7 連通性提取水尺刻度
圖8 典型實驗結果圖
表2 不同場景下部分水位提取結果分析表
從表2可以看出,算法的誤差大概在1cm左右,并能有效地解決倒影問題,適用于工程水尺水位檢測的誤差要求,同時算法的平均識別速度82.18141ms,基本達到實時要求,可以對視頻每5-10幀做一次水位檢測。
本文是基于機器視覺提出的水尺測量算法,可廣泛運用于各監(jiān)測站點的水位測量系統(tǒng)中,能快速和較小誤差獲取水尺刻度。水尺刻度提取方法將標定好的攝像機采集到的水尺圖像在HSV色彩空間下,使用掃描線以及形態(tài)學處理的方式定位并分割水尺與倒影,同時裁剪水面上的水尺圖像,然后通過最小外接矩形矯正水尺圖像,最后采用連通性分析得到水尺的刻度。實驗結果表明,該算法能夠快速和較小誤差的識別水位刻度,其水位刻度誤差在1cm左右,滿足水利行業(yè)對水位高度計算的要求。算法在夜晚存在顏色無法提取使得不能識別水尺刻度的弊端,有待于后續(xù)的改進。
參考文獻:
[1]仲志遠.一種基于圖像識別的水位測量算法[J].國外電子測量技術,2017(6):96-99.
[2]李翊,蘭華勇,嚴華.基于圖像處理和BP神經網絡的水位識別研究[J].人民黃河,2015(12):12-15.
[3]高姍姍,周新志,雷印杰.基于圖像處理和稀疏表示的水位識別研究[J].人民黃河,2016(12):52-56.
[4]王瑩.基于圖像處理的水位監(jiān)測系統(tǒng)的研究與實現(xiàn)[D].西安電子科技大學,2014.
[5]石晗耀,陶青川.基于雙目視覺的水位測量算法[J].現(xiàn)代計算機,2017(8):55-59.
[6]張陽.基于計算機視覺的河流水位測量系統(tǒng)設計[D].太原理工大學,2014.
[7]高曉亮,王志良,王馨,等.基于HSV空間的視頻實時水位檢測算法[J].鄭州大學學報(理學版),2010(3):75-79.
[8]岡薩雷斯.數(shù)字圖像處理(MATLAB版)[M].北京:電子工業(yè)出版社,2004.
[9]石貴民.基于掃描線的新型車牌定位方法研究[J].科學技術與工程,2014(8):218-221.
[10]ZhangZhenyou.Flexible Camera Calibration by Viewinga Planefrom Unknown Orientation,International Conferenceon Computer Vision[C].Kerkyra:IEEEXplore Digital Library,1999.
[11]姜兵.基于圖像識別的遠程水位監(jiān)測系統(tǒng)研究[D].西安電子科技大學,2011.