伊 浩,劉太輝,宋紹成
(北華大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,吉林 吉林 132013)
為減少海嘯對生命財(cái)產(chǎn)的危害,實(shí)時(shí)監(jiān)測遠(yuǎn)距離海面變化是非常必要的.目前,已有很多方法可以監(jiān)測海平面變化情況,有的只能測量岸邊海面,有的則可以測量遠(yuǎn)海海面.測量岸邊的儀器有潮位儀、壓力表、激光儀等,其中,潮位儀[1]通過井口連通海水,井中的水平面會隨著海平面的升降同步變化,從而測量岸邊的潮水變化情況,但這種裝置不能監(jiān)測海嘯,當(dāng)海嘯到來時(shí)還可能損壞儀器.測量遠(yuǎn)海的儀器有GPS浮標(biāo)、雷達(dá)、海底監(jiān)測網(wǎng)等.GPS浮標(biāo)[2]是安裝在遠(yuǎn)海的儀器,通過浮動在海面上的GPS波浪計(jì)測量海平面高度,并通過GPS將位置信息傳送到岸邊的服務(wù)器上,實(shí)時(shí)監(jiān)測海平面高度變化,但它只能測量儀器周圍的海面,不能測量大范圍海面,并且在遠(yuǎn)海安裝也非常困難,維修費(fèi)用很高;海底監(jiān)測網(wǎng)[3]使用的光纖網(wǎng)絡(luò)鋪設(shè)在海底,通過壓力傳感器監(jiān)測海水深度變化,進(jìn)而計(jì)算海平面變化,同樣,也只能監(jiān)測裝置附近區(qū)域,由于是在遠(yuǎn)海鋪設(shè),安裝也很困難,造價(jià)也很高.
基于雙目立體視覺技術(shù)的3D圖像測量系統(tǒng)結(jié)構(gòu)簡單,不需要額外能源就可以監(jiān)測大范圍、遠(yuǎn)距離海面.但這個(gè)方法有很多困難需要克服,比如長距離攝像機(jī)參數(shù)校對、兩幅圖像中海浪的提取和對應(yīng)匹配問題等.SALIN B M等[4]通過拍攝海面視頻測量海浪,提出海面光學(xué)圖像和波浪剖面空間結(jié)構(gòu)的函數(shù)關(guān)系,但這個(gè)方法只能測量裝置附近的海域.本文針對以上問題,提出一系列解決方法:利用云臺控制攝像機(jī)旋轉(zhuǎn)來增加監(jiān)測范圍,保持?jǐn)z像機(jī)水平位置;自制一組標(biāo)定桿精確標(biāo)定遠(yuǎn)距離攝像機(jī)內(nèi)、外參數(shù);提出動態(tài)塊閾值方法,提高海浪提取的精度和速度;在極線約束下[5],結(jié)合特征矩陣獲得海浪的視差圖像;利用RANSAC方法計(jì)算海平面高度[6],構(gòu)建海平面三維信息.通過與公開數(shù)據(jù)進(jìn)行對比分析,驗(yàn)證本文方法的可行性.
測量系統(tǒng)包括兩部分:硬件系統(tǒng)用云平臺控制兩個(gè)攝像機(jī)同時(shí)拍攝海面并獲取圖像數(shù)據(jù);軟件系統(tǒng)用于圖像處理和計(jì)算海平面高度.
硬件系統(tǒng)結(jié)構(gòu)見圖1.硬件系統(tǒng)包括數(shù)據(jù)服務(wù)器、個(gè)人計(jì)算機(jī)、云平臺、長焦攝像機(jī)、角度傳感器、遠(yuǎn)程控制系統(tǒng)、支架.云平臺控制兩個(gè)攝像機(jī)盡可能地拍攝同一片海域;角度傳感器安裝在云平臺上面,用于測量兩個(gè)攝像機(jī)旋轉(zhuǎn)的角度變化,通過標(biāo)定前的攝像機(jī)外參數(shù)就可以實(shí)時(shí)獲得兩個(gè)攝像機(jī)間的相對角度,旋轉(zhuǎn)系統(tǒng)見圖2;個(gè)人計(jì)算機(jī)、遠(yuǎn)程控制器、攝像機(jī)是相互連接的,既可以在遠(yuǎn)程控制器上直接調(diào)整攝像機(jī)參數(shù),也可以通過個(gè)人計(jì)算機(jī)上的軟件操作遠(yuǎn)程控制器去調(diào)節(jié)攝像機(jī)參數(shù),獲得海浪圖像.在對海平面進(jìn)行拍照的同時(shí),圖像數(shù)據(jù)會自動傳輸?shù)綌?shù)據(jù)服務(wù)器中.
圖1硬件測量系統(tǒng)Fig.1Measurement system of hardware圖2旋轉(zhuǎn)系統(tǒng)Fig.2Rotating camera hardware
圖3 軟件系統(tǒng)流程Fig.3Processing of software system
軟件系統(tǒng)流程見圖3.軟件系統(tǒng)處理流程包括5個(gè)步驟:第1步,用兩個(gè)攝像機(jī)對準(zhǔn)同一片海域拍照,將圖像數(shù)據(jù)傳輸?shù)綌?shù)據(jù)服務(wù)器,并對海浪圖像進(jìn)行預(yù)處理(包括除去圖像中的噪點(diǎn)、增加圖像對比度、利用He提出的基于暗通道優(yōu)化算法去除圖片中的薄霧等),獲得高清晰度的海浪圖像;第2步,改進(jìn)Otsu算法,基于動態(tài)塊閾值算法提取圖片中的海浪;第3步,利用特征矩陣的相似性進(jìn)行海浪特征的立體匹配;第4步,提取標(biāo)定圖像中的交點(diǎn)位置,計(jì)算攝像機(jī)內(nèi)、外參數(shù);第5步,利用RANSAC方法計(jì)算海平面高度.
盡管張正友的標(biāo)定方法已經(jīng)很完善[7-8],但標(biāo)定棋盤只適用于近距離標(biāo)定攝像機(jī)參數(shù).本研究的測量目標(biāo)距離大約在5~20 km,在這種遠(yuǎn)距離下,獲得棋盤格子的角點(diǎn)是很困難的.為了解決這個(gè)問題,提出利用多個(gè)標(biāo)定桿子的方法進(jìn)行遠(yuǎn)距離標(biāo)定,每個(gè)標(biāo)準(zhǔn)桿子上已經(jīng)做好標(biāo)記.標(biāo)定桿見圖4.
標(biāo)定模型見圖5.其中:b為兩個(gè)攝像機(jī)之間的距離;O1和O2分別是攝像機(jī)的兩個(gè)光心位置;α1和α2分別為兩個(gè)攝像機(jī)在y軸方向的旋轉(zhuǎn)角;f1和f2分別為兩個(gè)攝像機(jī)的焦距,兩個(gè)攝像機(jī)規(guī)格相同,f1和f2相等.云臺水平儀保證攝像機(jī)水平放置,所以只有f1、y軸方向的角度和基線長度需要標(biāo)定.針孔模型[9]:
式中:Zc為測量點(diǎn)到基線的垂直距離;[Tx,Ty,Tz]T是平移矩陣,Tx等于b的長度,Ty和TZ大小都為0;fx和fy分別為x軸、y軸的焦距.為了簡化方程,設(shè)fx=fy=f;(u,v,1)T是相平面坐標(biāo)系下的齊次坐標(biāo);(Xw,Yw,Zw,1)T是世界坐標(biāo)系下的齊次坐標(biāo).得到:
兩點(diǎn)間距離為
其中:(Xw1,Yw1,Zw1)和(Xw2,Yw2,Zw2)為世界坐標(biāo)系下兩個(gè)不同坐標(biāo)點(diǎn).計(jì)算測量值與真實(shí)值的誤差:
(1)
式中:Di為每次測量的距離.應(yīng)用Levenberg-Marquardt方法對式(1)進(jìn)行最優(yōu)化處理得到攝像機(jī)的參數(shù)b、α1、α2、f.
圖4標(biāo)定桿Fig.4Calibration pole圖5標(biāo)定模型Fig.5Calibration model
由于海浪圖像的亮度不均衡,所以不能使用一個(gè)閾值直接將前、后背景分開.通過改進(jìn)Otsu,提出利用動態(tài)塊閾值處理算法提取海浪.本算法分為2個(gè)步驟:第1步,使用Otsu算法求出每個(gè)小塊的閾值;第2步,通過節(jié)點(diǎn)和四周塊中心點(diǎn)距離比例計(jì)算每個(gè)像素的閾值.
首先,把海浪照片分成32×18的小塊,見圖6.得到每個(gè)小塊的閾值,用T(m,n)表示第(m,n)塊的閾值.由于對每個(gè)塊用閾值直接提取海浪后的圖像會在塊與塊之間產(chǎn)生很多鋸齒,導(dǎo)致不能將海浪有效提取出來,所以需要進(jìn)一步改進(jìn).改進(jìn)的辦法是使每個(gè)點(diǎn)的閾值不是由本塊的閾值直接決定,而是采用線性插值的辦法,由周圍4個(gè)塊的閾值來決定,乘積系數(shù)是當(dāng)前點(diǎn)到周圍4個(gè)塊中心點(diǎn)的距離比例.計(jì)算公式:
t(i, j)=q×((1-p)×Tm,n+p×Tm+1,n)+(1-q)((1-p)×Tm,n+1+p×Tm+1,n+1),
(2)
式中:t(i, j)為當(dāng)前點(diǎn)(i,j)的閾值;p為當(dāng)前點(diǎn)和左側(cè)塊中心點(diǎn)的距離;q為當(dāng)前點(diǎn)和下塊中心點(diǎn)的距離.
原始圖像通過式(2)能把所有點(diǎn)的閾值都計(jì)算出來.原始圖像灰度值的范圍是[Imin,Imax],Imin代表的是圖像的最小灰度值.通過下式得到海浪圖像的二值圖像:
式中:Imax為圖像的最大灰度值;f(i,j)為原始圖像的灰度值;O(i,j)為最后得到的二值圖像的像素灰度值.利用這個(gè)方法提取的海浪圖像見圖7.
圖6動態(tài)塊閾值方法Fig.6Threshold method of dynamic block圖7提取結(jié)果對比Fig.7Comparison of extract results
圖8 海浪特征Fig.8Feature of sea wave
海浪提取完成后,進(jìn)行左、右兩幅圖像中海浪的立體匹配.主要分為兩個(gè)過程:1)求出海浪的重心位置,將重心作為海浪的中心點(diǎn).根據(jù)標(biāo)定的參數(shù)和極線約束,將左圖中提取的海浪中心位置在右圖像中找到對應(yīng)的極線位置,這樣可以大大提高立體匹配精度.2)進(jìn)行精確的特征矩陣立體匹配.每個(gè)海浪提取的特征矩陣見圖8.
特征矩陣的向量包含海浪的周長、面積、曲率、中心坐標(biāo)、L1、L2、L3、L4,得到:
V={A,P,C,y0,L1,L2,L3,L4}.
從而得到每個(gè)圖像的海浪矩陣為
VL=[V1,V2,…,Vi,…,VN],
VR=[V1,V2,…,Vi,…,VM].
最后通過矩陣的相似性得到
式中:Distij為矩陣的相似性.
本次試驗(yàn)選取的數(shù)據(jù)在某海域,時(shí)間為上午6點(diǎn)到下午6點(diǎn).拍攝距離大約為5~10 km.數(shù)據(jù)每5 min采樣1次,每次采樣5 s,每秒30張圖像,每次采樣獲得150張圖片,連續(xù)采樣12 h.
對數(shù)據(jù)進(jìn)行海浪提取、特征矩陣立體匹配,見圖9.其中,圖9 a、b為原始的左、右攝像機(jī)圖像,圖9 c、d為從圖9 a、b圖中用動態(tài)塊閾值法提取的海浪點(diǎn).圖9 c中標(biāo)識的紅點(diǎn)為海浪的重心點(diǎn)位置,用數(shù)字標(biāo)識的海浪為與右圖像中匹配的海浪.在左圖中提取38個(gè)海浪,在右圖中提取40個(gè)海浪,其中,匹配的數(shù)量為9個(gè).左圖匹配率為23.6%,右圖匹配率為22.5%.將150對圖像的匹配點(diǎn)全部找出,利用RANSAC方法計(jì)算海浪高度,結(jié)果見圖10.
將試驗(yàn)數(shù)據(jù)與公開數(shù)據(jù)進(jìn)行對比,均方誤差為6.67%,見圖11.結(jié)果顯示:試驗(yàn)計(jì)算得到的海平面變化曲線與公開數(shù)據(jù)是一致的,說明本方法能夠有效描述海平面的變化,可為居民提供重要的參考依據(jù).
圖10計(jì)算的海浪高度Fig.10Calculation of sea wave height 圖11結(jié)果比較Fig.11Compare results
本文提出了基于雙目視覺測量技術(shù)監(jiān)測遠(yuǎn)距離海平面的完整系統(tǒng),克服了海浪提取、匹配和遠(yuǎn)距離攝像機(jī)標(biāo)定3個(gè)核心問題.為了解決提取海浪時(shí)出現(xiàn)的鋸齒現(xiàn)象,改進(jìn)了Otsu算法,利用動態(tài)塊閾值的方法進(jìn)行提??;通過一組標(biāo)定桿進(jìn)行遠(yuǎn)距離標(biāo)定,制作了一套完整的標(biāo)定系統(tǒng),提出了遠(yuǎn)距離標(biāo)定算法公式;通過特征矩陣和極線約束相結(jié)合,精確匹配了左、右攝像機(jī)中的海浪.結(jié)合試驗(yàn)測試結(jié)果分析可知,利用雙目視覺進(jìn)行遠(yuǎn)距離監(jiān)測海面是可行的.但雙目視覺也存在著很多不足,比如大霧、大雨、晚上都很難清楚地拍攝到海面,也就沒有辦法進(jìn)行有效監(jiān)測,這也是當(dāng)前很多相關(guān)科研人員正在攻關(guān)的問題.
北華大學(xué)學(xué)報(bào)(自然科學(xué)版)2021年4期