倪文軍,王晨
(交通運(yùn)輸部天津水運(yùn)工程科學(xué)研究所,天津300456)
基于單目視覺(jué)的波高檢測(cè)方法研究
倪文軍,王晨
(交通運(yùn)輸部天津水運(yùn)工程科學(xué)研究所,天津300456)
一般的波高傳感器需要直接接觸波面干擾實(shí)驗(yàn)過(guò)程,并且受到量程的限制。文章給出了一種基于單目視覺(jué)的波高檢測(cè)方法,由高速攝像機(jī)拍攝波浪試驗(yàn)過(guò)程,通過(guò)分析圖像的顏色亮度特征來(lái)識(shí)別出水與空氣的分界線,并計(jì)算出水位和波高。文中詳細(xì)描述了波高檢測(cè)的圖像處理算法,通過(guò)實(shí)驗(yàn)對(duì)算法進(jìn)行了驗(yàn)證,分析了誤差產(chǎn)生的原因。實(shí)驗(yàn)結(jié)果表明,文章提出的方法可以有效地測(cè)量水位和波高,精度滿足實(shí)際需求,在許多場(chǎng)景下具有應(yīng)用價(jià)值。
圖像處理;波高檢測(cè);顏色亮度特征;波浪實(shí)驗(yàn)
波浪是海岸和海洋工程中面臨的最主要的環(huán)境因素,物理模型波浪試驗(yàn)是對(duì)其進(jìn)行科學(xué)研究的重要手段,有助于解決防洪防災(zāi)、泥沙整治、海岸設(shè)計(jì)等方面的諸多問(wèn)題。波浪試驗(yàn)一般在實(shí)驗(yàn)水槽內(nèi)進(jìn)行,通過(guò)造波機(jī)人工模擬出自然水域中的波浪,天科院大型水動(dòng)力中心的大比尺水槽已于2014年正式落成投入使用[1]。波高是實(shí)驗(yàn)中需要測(cè)量的一項(xiàng)重要實(shí)驗(yàn)數(shù)據(jù),常用的波高傳感器為電阻式或電容式,該類儀器需要插入水中進(jìn)行測(cè)量,布設(shè)傳感器不可避免對(duì)水體流態(tài)造成影響,進(jìn)而影響到檢測(cè)精度,同時(shí)大量程的波高傳感器無(wú)論安裝還是參數(shù)標(biāo)定,都不太方便。
近些年隨著數(shù)字圖像處理和人工智能理論的快速發(fā)展,機(jī)器視覺(jué)技術(shù)在許多領(lǐng)域代替了傳統(tǒng)的技術(shù)手段。它利用高清攝像機(jī)采集數(shù)字圖像并傳輸至計(jì)算機(jī),根據(jù)不同的應(yīng)用需求設(shè)計(jì)圖像處理算法來(lái)對(duì)圖像進(jìn)行處理,分析得出有用的數(shù)據(jù)和信息[2]。目前機(jī)器視覺(jué)技術(shù)已經(jīng)有了許多成功應(yīng)用案例,例如人臉識(shí)別、智能交通、醫(yī)療診斷等,在水位自動(dòng)檢測(cè)方面,也已經(jīng)有了一些研究成果[3-4]。利用機(jī)器視覺(jué)測(cè)水位或波高具有精度高、非接觸的特點(diǎn),以往的研究一般都是針對(duì)于水面高度緩慢變化的情景下進(jìn)行的,而在水槽波浪實(shí)驗(yàn)中,波浪線變化速度快、曲線復(fù)雜,需要較高的實(shí)時(shí)處理速度和精度,本文即旨在對(duì)該問(wèn)題進(jìn)行研究,重點(diǎn)對(duì)算法的分析設(shè)計(jì)進(jìn)行了討論,并通過(guò)實(shí)驗(yàn)對(duì)算法進(jìn)行驗(yàn)證。
機(jī)器視覺(jué)主要分為單目視覺(jué)和雙目視覺(jué)。單目視覺(jué)主要是通過(guò)對(duì)單臺(tái)相機(jī)拍攝的圖像進(jìn)行處理,提取分析有用信息。雙目視覺(jué)主要是根據(jù)視差原理,利用兩臺(tái)攝像機(jī)同時(shí)從不同的位置來(lái)拍攝被測(cè)目標(biāo)的兩幅圖像,通過(guò)計(jì)算兩幅圖像對(duì)應(yīng)點(diǎn)間的位置偏差,可以獲取被測(cè)目標(biāo)的三維立體信息[5]。由于雙目視覺(jué)可測(cè)量三維距離,因此也可考慮用于測(cè)量水位或波高,但是由于雙目視覺(jué)測(cè)量時(shí)需要對(duì)圖像中的特征點(diǎn)進(jìn)行匹配,而波浪試驗(yàn)中水面是時(shí)刻快速變化的,情況較為復(fù)雜,特征點(diǎn)不易獲得,跟蹤匹配也容易失敗,因此雙目視覺(jué)測(cè)距不適用于波高檢測(cè)場(chǎng)景。本文采用單目視覺(jué)進(jìn)行波高檢測(cè)。
已有的研究成果一般思路都是通過(guò)算法識(shí)別出水尺的刻度讀數(shù),本文的方法直接通過(guò)檢測(cè)水與空氣分界線來(lái)測(cè)水位和波高。實(shí)驗(yàn)水槽側(cè)面設(shè)置有玻璃觀察窗,透過(guò)觀察窗可以觀測(cè)實(shí)驗(yàn)過(guò)程中波浪的高度變化。一臺(tái)高分辨率的高速攝像機(jī)被架設(shè)在觀察窗前,垂直于觀察窗拍攝試驗(yàn)過(guò)程,如圖1:外層實(shí)線方框表示水槽觀察窗,內(nèi)層虛線方框?yàn)橄鄼C(jī)的實(shí)際拍攝范圍,拍攝范圍的大小和位置需要提前測(cè)量標(biāo)定。圖2為拍攝得到的單幀視頻圖像,觀察圖2可知:水下與空氣在顏色和亮度上存在差異,單目視覺(jué)測(cè)波高的關(guān)鍵是設(shè)計(jì)圖像處理的算法,編寫(xiě)計(jì)算機(jī)程序,找出水與空氣的分界線,得出分界線后,可根據(jù)分界線像素點(diǎn)在圖像中所處的位置以及相機(jī)標(biāo)定參數(shù)計(jì)算出實(shí)時(shí)水位高度,再根據(jù)波高的定義即可得出波高。
圖1單目視覺(jué)檢測(cè)波高Fig.1Detecting wave height based on monocular vision
圖2拍攝到實(shí)驗(yàn)圖像Fig.2Image of experiment shot by camera
首先在圖3給出波高檢測(cè)圖像處理的算法流程圖,然后在下面分別對(duì)算法的每一步進(jìn)行詳細(xì)描述。
2.1 采集圖像
現(xiàn)實(shí)世界中的圖像信號(hào)都是連續(xù)的,攝像機(jī)拍攝到圖像后,經(jīng)過(guò)采樣和量化,將連續(xù)的模擬信號(hào)轉(zhuǎn)化為數(shù)字量,經(jīng)采集卡傳輸?shù)接?jì)算機(jī)上。在計(jì)算機(jī)中,一幅圖像在二維平面上被分為若干個(gè)像素點(diǎn),任意一點(diǎn)的坐標(biāo)設(shè)為(x,y),每個(gè)點(diǎn)顏色由R、G、B3個(gè)通道表示,每個(gè)通道上的值取為0到255之間的整數(shù),稱為R/G/B值,數(shù)值越大代表亮度越高,整幅圖像可由式(1)來(lái)表示[6],fi(x,y)表示像素點(diǎn)(x,y)在某一通道上的亮度值。
圖3圖像處理算法流程Fig.3Algorithm flow of image processing
2.2 獲取檢測(cè)區(qū)域
在一幅圖像中,包含有用信息的部分可能只是一個(gè)區(qū)域,圖像的多余部分既增加了算法處理的復(fù)雜度,又加大了運(yùn)算量,影響程序執(zhí)行效率。在處理波浪試驗(yàn)圖像時(shí),當(dāng)對(duì)某一位置處的水位進(jìn)行檢測(cè),水位的上下變化即反映了連續(xù)的波高數(shù)據(jù),因此只需在圖像中選取光線、背景理想的位置進(jìn)行處理,在本文的算法中由人來(lái)事先指定監(jiān)測(cè)區(qū)域。
2.3 圖像增強(qiáng)
在采集得到的圖像中,水面以下光照被遮擋亮度較低,而水面以上光照較為充足,因此亮度較高,但是由于存在一些干擾物體,使得水面分界線與背景模糊不清。圖像增強(qiáng)算法目的在于突出水與空氣的分界線,并弱化水面以上的部分。式(2)給出了在像素點(diǎn)(x,y)處的具體圖像增強(qiáng)變換公式,constGray稱為灰度恒定點(diǎn),contrast稱為對(duì)比度,brightness稱為亮度,saturate(z)函數(shù)將取值限定在了0到255。其中constGray值是一個(gè)重要的參數(shù),當(dāng)brightness設(shè)為0時(shí),R/G/B值大于constGray的像素點(diǎn)亮度被增強(qiáng),小于constGray的點(diǎn)亮度被減弱(圖4)。圖5為圖像增強(qiáng)后的效果,可見(jiàn)分界線比圖2更加分明,而背景的干擾被減弱。
2.4灰度化處理
灰度圖像是只含有亮度信息,不含色彩信息的圖像?;叶然蟮膱D像信息復(fù)雜度降低,但是可以保留亮度、形態(tài)等重要的特征,方便后面進(jìn)一步的圖像分割等處理。常用的灰度化方法有平均值法、加權(quán)平均法、最大值法等[7]。
2.5 圖像分割
在經(jīng)過(guò)圖像增強(qiáng)及灰度化處理后,水面分界線已經(jīng)在圖中比較明顯的被區(qū)分開(kāi),通過(guò)二值化,可以進(jìn)一步濾去無(wú)用的背景,分割出水面的分界線。式(3)為二值化的圖像變換公式,threshold為二值化閾值。
圖4圖像增強(qiáng)函數(shù)(brightness設(shè)為0時(shí))Fig.4Image enhancement function(when brightness is set to 0)
圖5圖像增強(qiáng)后的結(jié)果Fig.5Result of image enhancement
2.6 圖像膨脹
經(jīng)過(guò)圖像分割后,已經(jīng)可以識(shí)別出水與空氣的分界線。但是由于背景中還存在一些細(xì)小的擾動(dòng),對(duì)于水位的計(jì)算會(huì)造成影響,因此需要采用圖像形態(tài)學(xué)變換中的圖像膨脹操作來(lái)去除這些噪聲。圖像膨脹操作是指在每個(gè)原像素點(diǎn)的鄰域內(nèi)選取亮度值最大的點(diǎn),將該點(diǎn)的灰度值賦給原像素點(diǎn),可用式(4)來(lái)表示。圖6給出了圖像膨脹操作的結(jié)果,水與空氣的分界線已經(jīng)被完全識(shí)別出來(lái)。
2.7 水位計(jì)算與濾波
理論上,計(jì)算某一點(diǎn)的水位只需分析一個(gè)像素寬度的豎直線即可,但是由于對(duì)單點(diǎn)進(jìn)行分析很容易被噪聲干擾,因此本文算法取10個(gè)像素寬度的豎直條狀區(qū)域進(jìn)行水位計(jì)算。設(shè)像素點(diǎn)橫坐標(biāo)為x,圖像高度為Y,從圖像頂端開(kāi)始向下遍歷,第一個(gè)灰度值為0的點(diǎn)記為(x,y0),則水位成像高度為h'=Y-y0個(gè)像素。10個(gè)像素寬度的圖像區(qū)域可分別計(jì)算出10個(gè)水位成像高度值,經(jīng)中值濾波后可得出較為準(zhǔn)確的水位成像高度h'。
圖7中,設(shè)矩形ABCD為相機(jī)拍攝畫(huà)面在現(xiàn)實(shí)中的實(shí)際范圍;A'B'C'D'為ABCD在相機(jī)中所成的像,P為相機(jī)焦點(diǎn);L為水槽底部的位置,即水位的零點(diǎn)基線,H為相機(jī)拍攝實(shí)際景物范圍的底部相對(duì)于零點(diǎn)基線的高度。h為實(shí)際水位高度,h'為水位成像高度,根據(jù)比例對(duì)應(yīng)關(guān)系可得式(5),AD、A’D’、H幾個(gè)參數(shù)需要事先進(jìn)行確定。為測(cè)量AD,觀察相機(jī)視域,在水槽觀察窗上對(duì)視域邊界進(jìn)行標(biāo)記,并測(cè)量出視域高度,從而得出AD值;A’D’可根據(jù)相機(jī)設(shè)置的分辨率參數(shù)直接獲得;H為水槽設(shè)計(jì)的固有參數(shù);h'為程序?qū)γ恳粠治龅贸龅乃桓叨人嫉南袼亍?/p>
圖6圖像膨脹操作后的結(jié)果Fig.6Result of image dilation
在以上測(cè)量方法中,需要對(duì)AD、H等參數(shù)進(jìn)行測(cè)量,這樣往往會(huì)引入測(cè)量誤差,同時(shí)由于水槽玻璃厚度,光線透過(guò)后會(huì)發(fā)生折射現(xiàn)象,從而影響測(cè)量精度。由式(5)可知,h=Kh'+H為線性方程,因此考慮引入最小二乘法來(lái)標(biāo)定參數(shù)K和H:測(cè)量若干組真實(shí)水位h,以及對(duì)應(yīng)的h',使用最小二乘法對(duì)數(shù)據(jù)進(jìn)行線性回歸處理,從而確定出最優(yōu)的K、H值。真實(shí)水位采用大量程磁致伸縮液位計(jì)來(lái)測(cè)量,其精度能夠滿足在1 mm以內(nèi)。通過(guò)此方法來(lái)標(biāo)定參數(shù)既保證了水位測(cè)量的精度,又在一定程度上修正了光線通過(guò)玻璃發(fā)生折射帶來(lái)的誤差。
2.8 波高分析
本文采用上跨零點(diǎn)法定義波高。取平均水位線為零線,把波面上升與零線相交的點(diǎn)作為一個(gè)波的起點(diǎn),把波面下降到零線以下后再次上升到與零線相交的點(diǎn)作為一個(gè)波的終點(diǎn)。起點(diǎn)和終點(diǎn)之間的波峰和波谷的高度差定義為波高,從起點(diǎn)到終點(diǎn)經(jīng)過(guò)的時(shí)間定義為一個(gè)波的周期。
圖7相機(jī)成像與實(shí)際景物間的幾何關(guān)系Fig.7Geometrical relationship between image and actual object
表1實(shí)驗(yàn)數(shù)據(jù)對(duì)比Tab.1Comparison of experiment data
圖8高速攝像機(jī)Fig.8High speed camera
圖9波形圖對(duì)比Fig.9Comparison of wave
為驗(yàn)證算法,根據(jù)以上章節(jié)詳細(xì)描述的波高檢測(cè)圖像處理算法,基于OpenCV圖像處理開(kāi)發(fā)庫(kù)編寫(xiě)了圖像處理程序[8]。使用高速相機(jī)拍攝人工波浪試驗(yàn)水槽內(nèi)的試驗(yàn)過(guò)程,實(shí)驗(yàn)所用高速攝像機(jī)如圖8所示,采集頻率最高可達(dá)80幀/s。將圖像處理程序分析得出的波高數(shù)據(jù)與波高傳感器測(cè)得的數(shù)據(jù)進(jìn)行比較,波高傳感器采用電容測(cè)量原理測(cè)量,傳感器采用受溫度影響極小的高溫導(dǎo)線,并對(duì)溫度進(jìn)行補(bǔ)償,原理可具體參見(jiàn)《基于CAV444的電容式波高傳感器的設(shè)計(jì)與溫度補(bǔ)償》[9]。共選取了10組數(shù)據(jù),列于表1,圖9則給出兩者分別繪制出的實(shí)驗(yàn)波形曲線對(duì)比。根據(jù)表1中的數(shù)據(jù),波高的絕對(duì)誤差最大為0.7 cm,相對(duì)誤差最大為1.79%,說(shuō)明本文設(shè)計(jì)的基于視覺(jué)的水位、波高檢測(cè)方法具有較好的測(cè)量精度,在對(duì)精度要求不苛刻的場(chǎng)景下可以滿足實(shí)際應(yīng)用需求;而圖9表明繪制的波形曲線與波高傳感器測(cè)出的結(jié)果也基本吻合。當(dāng)前影響檢測(cè)精度進(jìn)一步提高的因素主要包括下面幾點(diǎn):(1)當(dāng)前圖像處理算法本身對(duì)水位線、波形線的識(shí)別受光線影響較大,某些情形下識(shí)別不準(zhǔn)確;(2)受實(shí)驗(yàn)條件影響,相機(jī)參數(shù)標(biāo)定的精度有待提高;(3)相機(jī)的光學(xué)鏡頭本身存在成像畸變,包括線性畸變和非線性畸變,使得圖像失真。已有一些理論可以對(duì)畸變進(jìn)行校正,但仍不能完全消除。
本文主要研究了一種基于機(jī)器視覺(jué)的波高檢測(cè)方法。該方法采用單目高速攝像機(jī)來(lái)拍攝波浪試驗(yàn)過(guò)程,根據(jù)水面與空氣顏色亮度特征上的不同,通過(guò)圖像增強(qiáng)、灰度處理、圖像分割、圖像膨脹、水位濾波等處理手段來(lái)識(shí)別出水與空氣分界線,并計(jì)算出水位及波高。該方法不需要與水面直接接觸,避免了傳感器對(duì)實(shí)驗(yàn)過(guò)程的干擾,打破了傳統(tǒng)波高傳感器對(duì)量程的限制,并且有很高的監(jiān)測(cè)頻率。實(shí)驗(yàn)結(jié)果表明:本文設(shè)計(jì)的基于視覺(jué)的水位、波高檢測(cè)方法具有較好的測(cè)量精度,繪制出的波形曲線與實(shí)際情形相符,在對(duì)精度要求不苛刻的場(chǎng)景下可以滿足應(yīng)用要求。
當(dāng)前對(duì)監(jiān)測(cè)精度有影響的因素包括:算法對(duì)水與空氣分界線的識(shí)別不夠精確、實(shí)驗(yàn)條件導(dǎo)致相機(jī)參數(shù)標(biāo)定結(jié)果不準(zhǔn)確、相機(jī)光學(xué)鏡頭存在成像畸變問(wèn)題,這些還有待在未來(lái)的工作中予以研究和解決,最終期望達(dá)到亞像素級(jí)別的精度。同時(shí)還將進(jìn)一步研究波形識(shí)別算法,增強(qiáng)軟件對(duì)應(yīng)用場(chǎng)景的適用性。
[1]耿寶磊,鄭寶友,孟祥瑋.天科院大比尺波浪水槽的建設(shè)與應(yīng)用前景[J].水道港口,2014,35(4):415-421. GENG B L,ZHENG B Y,MENG X W.Construction and application prospect of the large scale wave flume in TIWTE[J].Journal of Waterway and Harbor,2014,35(4):415-421.
[2]馮春.基于單目視覺(jué)的目標(biāo)識(shí)別與定位研究[D].南京:南京航空航天大學(xué),2013.
[3]畢克宏.基于機(jī)器視覺(jué)的水位監(jiān)控系統(tǒng)研究[D].鄭州:鄭州大學(xué),2009.
[4]任明武,楊萬(wàn)扣,王歡,等.一種基于圖像的水位自動(dòng)測(cè)量新方法[J].計(jì)算機(jī)工程與應(yīng)用,2007,43(22):204-206. REN M W,YANG W K,WANG H,et al.New algorithm of automatic water level measurement based on image processing[J].Com?puter Engineering and Applications,2007,43(22):204-206.
[5]高如新,王俊孟.雙目立體視覺(jué)求取三維坐標(biāo)的方法研究[J].計(jì)算機(jī)仿真,2014,31(10):296-300. GAO R X,WANG J M.Study on some methods of 3D coordinate calculation of binocular vision[J].Computer Simulation,2014,31(10):296-300.
[6]岡薩雷斯,伍茲.數(shù)字圖像處理:第三版[M].北京:電子工業(yè)出版社,2011:42-43.
[7]CHEN W K.Image sharing method for gray?level images[J].The Journal of Systems and Software,2013,86:581-585.
[8]Robert Laganiere,張靜.OpenCV2計(jì)算機(jī)視覺(jué)編程手冊(cè)[M].北京:科學(xué)出版社,2013.
[9]陽(yáng)志杰,倪文軍,栗克國(guó),等.基于CAV444的電容式波高傳感器的設(shè)計(jì)與溫度補(bǔ)償[J].儀表技術(shù)與傳感器,2014(5):11-28. YANG Z J,NI W J,LI K G,et al.Design of Capacitive Wave Height Sensor Based on CAV444 and its Temperature Compensation[J].Instrument Technique and Sensor,2014(5):11-28.
Research on a method of detecting wave height based on monocular vision
NI Wen?jun,WANG Chen
(Tianjin Research Institute for Water Transport Engineering,Ministry of Transport,Tianjin 300456,China)
Common sensor of wave height must direct contact the wave so that it disturbs the experiment pro?cess.And it is limited by the measuring range.In this paper,a method of detecting wave height based on monocular vision was given.High speed camera shot the wave experiment process.The boundary between water and air was recognized by the feature of color and brightness to calculate the water level and wave height.The image processing algorithm of detecting wave height was described in detail.The algorithm was verified through the experiment.The reasons of causing error were analyzed.The result of experiment shows that the algorithm in this paper can effective?ly measure the water level and wave height.The accuracy meets the actual requirement and the method has applica?tion value in many scenarios.
image processing;detecting wave height;feature of color and brightness;wave experiment
TP 391.41;TV 139.2
A
1005-8443(2015)06-0591-05
2015-08-07;
2015-10-28
倪文軍(1971-),男,天津市人,高級(jí)工程師,主要從事電子儀器方面的研究。Biography:NI Wen?jun(1971-),male,senior engineer.