石晗耀,陶青川
(四川大學(xué)電子信息學(xué)院,成都 610065)
基于雙目視覺的水位測(cè)量算法
石晗耀,陶青川
(四川大學(xué)電子信息學(xué)院,成都 610065)
水位高度測(cè)量在水利行業(yè)有著重要的作用。針對(duì)水利視頻監(jiān)控系統(tǒng),提出一種基于雙目視覺的水位測(cè)量算法,來代替?zhèn)鹘y(tǒng)單目攝像機(jī)水位測(cè)量算法。首先對(duì)攝像機(jī)進(jìn)行標(biāo)定,得到攝像機(jī)的內(nèi)外參數(shù),然后利用Sobel算子提取水位邊界,并應(yīng)用Haar特征得到完整的水位線位置,最終利用攝像機(jī)內(nèi)外參數(shù)計(jì)算水位在世界坐標(biāo)系下的三維坐標(biāo),得到水位高度。實(shí)驗(yàn)表明,該算法可以快速提取水位線位置并計(jì)算水位高度,具有較高的測(cè)量精度。
圖像處理;雙目視覺;攝像機(jī)標(biāo)定;水位測(cè)量
水位測(cè)量是水利行業(yè)上一個(gè)重要的應(yīng)用,對(duì)防止水災(zāi)、保護(hù)水利資源方面有著重要的作用。利用圖像處理算法對(duì)水利視頻監(jiān)控圖像進(jìn)行水位提取比人工檢測(cè)更直觀,也更節(jié)省人力成本。一般通過對(duì)水尺進(jìn)行圖像識(shí)別,從而提取水尺刻度的方法,由于水利資源環(huán)境復(fù)雜、水尺倒影嚴(yán)重等原因[1],導(dǎo)致測(cè)量精度和準(zhǔn)確度無法保證,而且對(duì)雨雪等天氣因素造成的噪聲的抗干擾性較差。綜合以上兩點(diǎn)考慮,本文提出一種基于雙目視覺的快速水位計(jì)算方式。雙目視覺是一種基于視差原理,由多幅圖像獲取物體三維幾何信息的方法[2]。雙目視覺檢測(cè)系統(tǒng)一般由兩臺(tái)攝像機(jī)從不同角度同時(shí)對(duì)檢測(cè)目標(biāo)進(jìn)行拍攝,獲取目標(biāo)圖像信息,然后利用視差原理恢復(fù)出目標(biāo)物體的三維幾何信息。雙目視覺是人類利用雙眼獲取環(huán)境三維信息的主要途徑,目前被大量運(yùn)用與機(jī)器人視覺、智能交通、航空航天、醫(yī)學(xué)等方面。本算法使用雙目攝像機(jī)系統(tǒng)對(duì)水資源進(jìn)行監(jiān)控,首先對(duì)攝像機(jī)進(jìn)行標(biāo)定,確定攝像機(jī)的內(nèi)外參數(shù),然后使用Sobel算子對(duì)水位線進(jìn)行提取,最后計(jì)算出水位線的高度。
攝像機(jī)標(biāo)定可以獲取檢測(cè)目標(biāo)的圖像像素坐標(biāo)和空間三維坐標(biāo)之間的關(guān)系,然后通過坐標(biāo)系之間的關(guān)系和攝像機(jī)模型,來得到攝像機(jī)的內(nèi)外參數(shù)。本算法采用經(jīng)典的線性成像模型,即針孔模型[3],如圖1所示。
圖1 攝像機(jī)模型
2.1 圖像坐標(biāo)系
攝像機(jī)采集的模擬圖像轉(zhuǎn)為數(shù)字圖像后,以圖像中每一個(gè)像素為單位,以第一個(gè)像素為原點(diǎn),定義直角坐標(biāo)系為圖像像素坐標(biāo)系[4]。像素坐標(biāo)(u,v)表示該像素在數(shù)字圖像中的列數(shù)和行數(shù)。圖像坐標(biāo)系僅表示了某個(gè)像素點(diǎn)的列數(shù)和行數(shù),并沒有具體的物理單位值。因此需要建立一個(gè)以物理單位表示的圖像物理坐標(biāo)系。該坐標(biāo)系以圖像內(nèi)某一點(diǎn)為原點(diǎn),X軸與Y軸分別與u,v軸平行。假設(shè)圖像某一像素點(diǎn)的像素坐標(biāo)為(u0,v0),物理坐標(biāo)為(X,Y),可以得到圖像中某一像素點(diǎn)的坐標(biāo)關(guān)系:
其中dX,dY為圖像物理坐標(biāo)系中的物理尺寸。
(2)攝像機(jī)坐標(biāo)系
攝像機(jī)坐標(biāo)系是以攝像機(jī)光心為原點(diǎn)的一個(gè)三維坐標(biāo)系,該坐標(biāo)系的X軸和Y軸分別平行于圖像坐標(biāo)西的X軸和Y軸,該坐標(biāo)系的Z軸為攝像機(jī)的光軸,與圖像平面垂直。
(3)世界坐標(biāo)系
由于攝像機(jī)可以安裝在環(huán)境空間中的任意位置,因此在空間中采用一個(gè)基準(zhǔn)坐標(biāo)系來描述該環(huán)境中任意物體的位置,該坐標(biāo)系就是世界坐標(biāo)系[5]。世界坐標(biāo)系與攝像機(jī)坐標(biāo)系的關(guān)系如圖2所示:
圖2 攝像機(jī)坐標(biāo)系與世界坐標(biāo)系
兩者之間的關(guān)系可以用旋轉(zhuǎn)矩陣R和平移向量t來表示。其中R為3×3正交單位矩陣,t為三維平移向量。兩者關(guān)系如式(2)所示:
2.2 攝像機(jī)標(biāo)定
一般情況下,3D立體靶標(biāo)制作成本高,加工精度受限制。本算法采用張正友提出的基于2D平面靶標(biāo)的攝像機(jī)標(biāo)定方法[6]。攝像機(jī)和靶標(biāo)可以自由移動(dòng),不需要知道運(yùn)動(dòng)參數(shù)。使用攝像機(jī)對(duì)三個(gè)不同位置的平面靶標(biāo)拍攝三組圖像,然后進(jìn)行攝像機(jī)標(biāo)定。攝像機(jī)拍攝的平面靶標(biāo)圖像如圖3所示:
圖3 實(shí)驗(yàn)標(biāo)定板圖像
最終標(biāo)定結(jié)果如表1所示:
表1 攝像機(jī)標(biāo)定結(jié)果
3.1 邊緣檢測(cè)
邊緣檢測(cè)是圖像處理中的基礎(chǔ)操作,圖像中的邊緣往往因?yàn)橄噜徎叶茸兓瘎×?,所以梯度幅值較大,可以利用微分算子對(duì)圖像進(jìn)行卷積操作來確定圖像的邊緣[7]。典型的微分算子有Roberts算子、Sobel算子、Prewitt算子等。本文基于算法復(fù)雜度和實(shí)際實(shí)驗(yàn)效果考慮,采用Sobel算子進(jìn)行水面的邊界提取。
經(jīng)典Sobel算子是一種利用局部差分尋找邊緣的算子,該算子由兩個(gè)3×3的卷積核形成,如圖4所示。首先將采集的圖像作灰度化處理,然后將圖像中每個(gè)像素點(diǎn)分別與這兩個(gè)核做卷積,取每個(gè)像素的橫向及縱向的灰度值的絕對(duì)值之和作為該像素點(diǎn)新的灰度值。如果某個(gè)像素點(diǎn)的灰度值大于閾值T,則認(rèn)為該點(diǎn)為邊緣點(diǎn)。本文將該閾值T設(shè)為80。
通常情況下,采集圖像的水體區(qū)域相對(duì)平滑,水體顏色也相對(duì)單一;而岸上區(qū)域則相對(duì)粗糙。兩個(gè)區(qū)域之間有較為明顯的突變,水位線就在兩個(gè)區(qū)域的突變位置上,可以通過邊緣檢測(cè)來提取水位線。圖5所示為采集原圖和經(jīng)過邊緣檢測(cè)之后的圖像。
圖4 Sobel卷積算子
圖5 原始圖像和經(jīng)過邊緣檢測(cè)后的圖像
3.2 水位線提取
水位線是水體區(qū)域和陸地區(qū)域之間的分界線,位于兩個(gè)區(qū)域的突變位置上。本算法使用兩矩形的Haar特征[8]進(jìn)行水位線檢測(cè)。在邊界圖像中,黑色的點(diǎn)為特征點(diǎn),特征點(diǎn)密集的區(qū)域稱為特征區(qū)域,特征點(diǎn)少的區(qū)域則為非特征區(qū)域,而水位線就是兩個(gè)區(qū)域的分界線。
為了提高檢測(cè)的精確度,而且水位線通常為不規(guī)則的曲線,本算法采取對(duì)圖像進(jìn)行分段處理,得到每一小段圖像的水位位置,最后擬合成完整水位線的做法。根據(jù)實(shí)驗(yàn)效果,一般把分段數(shù)定為5至7段。針對(duì)每一小段圖像,首先計(jì)算出特征區(qū)域重心和非特征區(qū)域重心,然后在兩個(gè)重心之間,滑動(dòng)Haar特征模板并計(jì)算相應(yīng)位置的特征值。Haar特征值為模板白色區(qū)域特征值總數(shù)減去黑色區(qū)域特征值總數(shù)[9],Haar雙矩形模板如圖6所示。
圖6 雙矩形Haar特征模板
Haar特征值最大的位置就是水位線的位置。最終水位檢測(cè)結(jié)果如圖7所示:
圖7 水位線檢測(cè)結(jié)果圖
3.3 水位高度計(jì)算
實(shí)際水位高度是以水平面為參考基準(zhǔn)來計(jì)算的。在本算法中,把岸頂作為基準(zhǔn)面,來計(jì)算水面到岸頂?shù)南鄬?duì)高度。首先對(duì)左右攝像機(jī)采集的圖像進(jìn)行立體匹配,計(jì)算出視差,然后根據(jù)待測(cè)點(diǎn)的像素坐標(biāo)計(jì)算出世界坐標(biāo)系下的坐標(biāo),最終得到水位高度。
(1)立體匹配
立體匹配是通過匹配兩幅由不同攝像機(jī)拍攝得到的圖像中的三維點(diǎn),得到視差圖,通過三角相似原理來計(jì)算目標(biāo)物體的距離。本文采用SURF(Speeded Up Robust Features)算子來進(jìn)行立體匹配。SURF算法是尺度不變特征變換算法(SIFT算法)的加速版,采用了Haar特征以及積分圖像的概念,大大加快了程序的運(yùn)行時(shí)間。SURF算法首先利用黑森矩陣(Hessian Matrix)進(jìn)行特征點(diǎn)提??;然后對(duì)每一個(gè)特征點(diǎn)逐個(gè)進(jìn)行計(jì)算,得到每一個(gè)特征點(diǎn)的主方向;最后構(gòu)造出SURF特征點(diǎn)描述算子。
SURF運(yùn)行效率大約是SIFT的3倍,而且具有很好的魯棒性,特征點(diǎn)識(shí)別率較SIFT高,在視角、光照、尺度變化等情形下,大體上都優(yōu)于SIFT。
(2)計(jì)算過程
首先,左右攝像頭在平行位置上從不同角度采集目標(biāo)水源的圖像,如圖8所示。
圖8 雙攝像頭采集的左右圖像
然后對(duì)左攝像頭圖像進(jìn)行水位檢測(cè)處理,得到水位線在圖像中的位置。取水位線上一點(diǎn)作為待匹配特征點(diǎn),進(jìn)行特征提取,經(jīng)過立體匹配找到右攝像頭圖像中對(duì)應(yīng)的點(diǎn),如圖9所示。得到同一特征點(diǎn)在左右兩幅圖像中的像素坐標(biāo),計(jì)算出視差,從而可以恢復(fù)待測(cè)圖像的三維信息和深度信息[10]。
圖9 左攝像頭水位線圖像和水位線特征點(diǎn)圖像
由于一般水源地岸的位置是固定的,實(shí)驗(yàn)采取靶標(biāo)定位岸頂?shù)姆椒▉泶姘渡咸卣鼽c(diǎn)的匹配過程。如圖10所示。
提取岸上靶標(biāo)的像素坐標(biāo)和水位線特征點(diǎn)的像素坐標(biāo),根據(jù)視差得到這兩個(gè)點(diǎn)在世界坐標(biāo)系下的坐標(biāo),從而實(shí)現(xiàn)對(duì)水位高度的測(cè)量。
圖10 靶標(biāo)定位圖像
本文算法驗(yàn)證實(shí)驗(yàn)在雙核CPU(主頻2.5GHz)、Win 7操作系統(tǒng)、VS2013編譯平臺(tái)上進(jìn)行,在不同水位高度水面上,從不同方向采集前方水位圖像,來計(jì)算水位線的相對(duì)高度。最終得到實(shí)驗(yàn)結(jié)果如表2所示。
表2 不同水位高度測(cè)量結(jié)果
從表2可以看出,測(cè)量數(shù)據(jù)有一定誤差,主要原因有:一是實(shí)驗(yàn)條件有限,攝像機(jī)精度不高;二是攝像機(jī)標(biāo)定過程中,攝像機(jī)和靶標(biāo)擺放,以及距離測(cè)量的誤差。最終測(cè)量誤差在5%-8%之間,適用于工程中的水位線高度檢測(cè)。
本文提出了一個(gè)基于雙目視覺的水位高度計(jì)算的算法,使用邊緣檢測(cè)算法提取出水位具體位置,然后使用雙目攝像機(jī)計(jì)算出水位線的高度。實(shí)驗(yàn)結(jié)果表明,該算法可以快速提取出水位線位置,對(duì)水位高度計(jì)算誤差在8%以內(nèi),能較好地滿足水利行業(yè)對(duì)水位高度計(jì)算的要求。算法在對(duì)強(qiáng)光、多倒影等圖像的識(shí)別精度不高,在后續(xù)研究中可以進(jìn)一步優(yōu)化,計(jì)算精度也有待提高。
參考文獻(xiàn):
[1]黃萍萍,王建華,陳長(zhǎng)鳳.幾種水面倒影檢測(cè)方法的實(shí)驗(yàn)研究[J].微計(jì)算機(jī)信息,2011(9):199-200.
[2]方芳.空間大尺寸三維測(cè)量系統(tǒng)[J].導(dǎo)彈與航天運(yùn)載技術(shù),1998(3):41-46.
[3]王洪偉,楊會(huì)成,黃雄.基于雙目視覺的紅綠燈距離測(cè)量[J].重慶理工大學(xué)學(xué)報(bào),2014(11):102-106.
[4]劉盼,王金海.基于平行雙目立體視覺的測(cè)距系統(tǒng)[J].計(jì)算機(jī)應(yīng)用,2012,32(S2):162-164.
[5]張廣軍.機(jī)器視覺[M].北京:科學(xué)出版社,2005:24-102.
[6]Zhang Zhenyou.Flexible Camera Calibration by Viewing a Plane from Unknown Orientation,International Conference on Computer Vision[C].Kerkyra:IEEE Xplore Digital Library,1999.
[7]石泓,任智姣.基于改進(jìn)Sobel算子和動(dòng)態(tài)區(qū)域的鐵軌穩(wěn)像算法[J].現(xiàn)代計(jì)算機(jī),2016(9):3-5.
[8]文學(xué)志,方巍,鄭鈺輝.一種基于類Haar特征和改進(jìn)AdaBoost分類器的車輛識(shí)別算法[J].電子學(xué)報(bào),2011,38(5):1121-1126.
[9]鮑江,陶青川,張鵬.基于圖像處理的水位線檢測(cè)算法[J].水電能源科學(xué),2015(4):96-99.
[10]曲學(xué)軍,張璐.基于雙目視覺的三維測(cè)量方法[J].計(jì)算機(jī)仿真,2011(2):373-377.
Water Level Measurement Based on Binocular Vision
SHI Han-yao,TAO Qing-chuan
(College of Electronics and Information,Sichuan University,Chengdu 610065)
Water level detection plays an important role in water conservancy industry.Proposes a water level measurement algorithm based on binocular vision is to replace the traditional monocular camera.Calibrates the camera to get the camera's parameters,then uses Sobel operator to extract water level's boundary,and then gets complete water line position by using Haar features.Finally,obtains the height of water level by calculating the water level's three-dimensional coordinates in the world coordinate system.Experimental results show that the algorithm can extract water level and calculate the height of water level with a high efficiency,and have high measurement accuracy.
Image Processing;Binocular Vision;Camera Calibration;Water Level Measurement
1007-1423(2017)08-0055-05
10.3969/j.issn.1007-1423.2017.08.012
石晗耀(1991-),男,湖北黃石人,碩士研究生,研究方向?yàn)橛?jì)算機(jī)應(yīng)用與圖像處理
2017-01-20
2017-03-10
陶青川(1972-),男,四川南充人,碩士生導(dǎo)師,副教授,研究方向?yàn)槟J阶R(shí)別與智能系統(tǒng)