高 晗,劉衛(wèi)東,高立娥
(西北工業(yè)大學 航海學院,西安 710072)
海洋環(huán)境的探測與開發(fā)越來越依賴水下機器人對周圍環(huán)境的感知能力,目前探測海洋的方法包括磁探測、聲波探測、光探測和紅外探測等等。而其中聲波探測是唯一能夠在海水介質(zhì)中進行遠距離探測的方法,因此聲波探測是探測海洋的主要方法,利用聲波進行探測的設(shè)備就是聲吶,所以研究使用聲吶進行水下目標檢測對水下環(huán)境探測、作業(yè)有著重要的作用。
目前已有的研究思路大多是采用數(shù)字圖像處理技術(shù)提取目標,在此基礎(chǔ)上衍生出檢測、識別、分類、跟蹤等研究。歸納近些年關(guān)于水下目標檢測方法的國內(nèi)外相關(guān)資料,被廣泛采用的方法有數(shù)字形態(tài)學[1]、馬爾科夫隨機場[2]、模糊邏輯理論[3]、小波變換[4]等。
基于聲吶圖像的目標檢測和參數(shù)識別的文獻有很多。Abu Avi等[5]提出了一種恒虛警率(CFAR,constant false alarm rate)檢測算法,對不同環(huán)境下的270幅真實聲吶圖像進行了檢測,結(jié)果表明該算法在接收機工作特性曲線方面較現(xiàn)有算法具有優(yōu)越性;Santos MMD等[6]提出了一種圖像處理技術(shù)與卷積神經(jīng)網(wǎng)絡(luò)結(jié)合的算法,在檢測過程中融合衛(wèi)星圖像和水下聲吶圖像,以輔助部分結(jié)構(gòu)環(huán)境下的水下導航;Matias Valdenegro-Toro等人提出了一種融合前視聲吶和光學傳感器信息的基于CNN的端對端目標探測方法;Gu J等[7]提出了一種可應(yīng)用于 ROV 目標檢測的算法,該方法利用高頻前視成像聲吶進行自動檢測和識別,并對水下目標回波形狀或聲影形狀的分割。
我國在水下目標探測與識別領(lǐng)域也取得了得以穩(wěn)步發(fā)展。郭戈等人[8]中討論了基于聲吶圖像的目標檢測、去噪和圖像分割的主要進展和典型算法,提出了基于聲吶圖像的水下目標檢測的解決方案;Wenwu W等人[9]在聲吶圖像去噪后,利用相關(guān)匹配方法借助類目標模板進行目標檢測和特征提??;王濤等人[10]提出了一種結(jié)合K-均值聚類和數(shù)學形態(tài)學的海床目標輪廓自動提取算法,該算法具有較強的克服背景噪聲的能力;李海森等人[11]提出了一種基于TBD技術(shù)的SIFT特征跟蹤方法,該方法使用了多波束聲吶序列,能從潛在目標中選擇出真實目標。
本文基于前視聲吶硬件系統(tǒng)的優(yōu)勢功能,調(diào)整軟件算法,搭建了試驗環(huán)境,在水池進行了聲吶數(shù)據(jù)采集試驗,獲取相關(guān)數(shù)據(jù),通過獲取的聲吶數(shù)據(jù)圖像,對水下目標檢測方法進行了研究,達到了檢測水下目標的目的。
水下目標的檢測主要依靠聲吶探測裝置,本文采用的聲傳感器為機械式單波束前視聲吶。聲吶數(shù)據(jù)量非常大并且通信頻率較快,需采用聲吶信息處理計算機來存儲與處理聲吶實時上傳回來的數(shù)據(jù),通過RS232串口通信將聲吶數(shù)據(jù)傳入聲吶信息處理計算機。系統(tǒng)整體結(jié)構(gòu)如圖1所示。
圖1 水下目標檢測系統(tǒng)框圖
圖3 “mtHeadData”命令格式
本文使用的聲吶為來自Tritech公司的Super Seaking DST型單波束前視聲吶。如圖2所示,為前視聲吶掃描示意圖。Super Seaking DST型單波束前視聲吶以低頻3.0°(或高頻1.5°)的開角向四周進行360°全方位掃描,最遠探測距離為300米。該聲吶可通過指令設(shè)置調(diào)節(jié)掃描范圍,在數(shù)據(jù)采集中,利用這一功能僅進行90°范圍內(nèi)的掃描。當調(diào)節(jié)掃描范圍大小后,該聲吶的掃描方式變?yōu)椋好看卧谝粋€特定的方向發(fā)射聲波束,接收到回波數(shù)據(jù)后,改變角度發(fā)送新的聲波束,重復這個過程直到覆蓋整個扇區(qū),一旦到達左右角度邊界,聲吶頭便會反向旋轉(zhuǎn)繼續(xù)掃描。
圖2 前視聲吶掃描示意圖
Super Seaking DST型單波束前視聲吶的工作方式為命令/應(yīng)答模式,即工作時需要接受外部命令,不能主動向外發(fā)送掃描數(shù)據(jù)。具體工作步驟如下:
1)聲吶上電后,會通過RS232串口主動向外發(fā)送”mtAlive”信息,表明此時聲吶與信息處理計算機能正常通信。
2)聲吶和計算機正常通信后,計算機通過串口向聲吶發(fā)送”mtSendVersion”命令。
3)收到”mtSendVersion”命令后,聲吶向計算機發(fā)送確認消息”mtVersionData”。
4)確認好軟件版本信息后,計算機向聲吶發(fā)送”mtHeadCommand”命令為聲吶配置工作模式、參數(shù)等。
5)配置好掃描參數(shù)后,計算機向聲吶連續(xù)發(fā)送”mtSendData”命令,每收到一次,聲吶便按照配置旋轉(zhuǎn)一個步進角度Step并掃描當前的環(huán)境信息,打包成一個數(shù)據(jù)包”mtHeadData”通過串口上傳給計算機。
聲吶回傳給計算機的”mtHeadData”命令格式如圖3所示。
其中,白色部分為”mtHeadCommand”中的配置參數(shù),可通過解算來校驗參數(shù)正確性,Bearing為聲吶當前掃描角度,深色部分為各個掃描線上的采樣點強度值,個數(shù)與Dbytes表示的數(shù)值相同。
為了驗證水下目標檢測算法的可靠性,在如圖4的水池環(huán)境中進行試驗;放置檢測物(由黑色方框標記),設(shè)置聲吶的掃描距離為2米,掃描范圍為90°,采樣點個數(shù)為50個,步進角度為0.9°。
圖4 水池試驗環(huán)境
水下目標檢測算法主要由數(shù)據(jù)解析、濾波處理、增強處理、二值化分割處理、形態(tài)學處理、連通域檢測目標等6個步驟構(gòu)成,具體流程圖如5所示。
圖5 水下目標檢測算法流程圖
前視聲吶圖像的生成依賴于聲吶對接收到的聲波進行的映射,聲波在水中的傳輸中衰減和損耗較大,與光學圖像相比,前視聲吶圖像具有以下特點[12]:
1)聲納圖像分辨率低,圖像整體偏暗,像素灰度值分布不均,大部分為背景區(qū)和混響區(qū),目標區(qū)呈亮斑狀,分布集中并且目標細節(jié)特征較少、輪廓模糊;
2)水下環(huán)境復雜,聲吶成像易受到混響、噪聲以及水中懸浮物的影響,并且由于聲波在傳輸過程中衰減嚴重,往往導致目標被噪聲淹沒;
3)多途效應(yīng)和旁瓣效應(yīng)的影響,聲吶圖像上的目標可能會出現(xiàn)重影或者單個目標分裂成多個的情況,水中其他物體也會干擾目標的檢測;
4)在對聲吶采集的回波數(shù)據(jù)進行成像處理的過程中不可避免會有信息損失。
5)不同的水質(zhì)環(huán)境對聲吶的成像效果也有影響,使用同種處理方法得出的結(jié)果也大有不同。
通過聲吶采集到的數(shù)據(jù)以灰度值的形式顯示得到原始聲吶數(shù)據(jù)圖像如圖6所示。
圖6 聲吶原始圖像
對于聲吶數(shù)據(jù)的處理可以參考傳統(tǒng)光學圖像的處理方法,對聲吶圖像的進行預處理,盡可能地降低噪聲干擾,保留目標特征信息。
聲吶圖像中充斥大量斑點、目標區(qū)域邊緣模糊等問題。為了抑制噪聲影響,需對圖像進行濾波處理,常用的圖像濾波算法有中值濾波、均勻濾波、高斯濾波等。
中值濾波是一種空間域內(nèi)的非線性濾波算法[13],其基本原理是:選擇待處理像素的一個鄰域中各像素值的中值來代替待處理的像素。主要功能使某像素的灰度值與周圍領(lǐng)域內(nèi)的像素比較接近,從而消除一些孤立的噪聲點,所以中值濾波器能夠很好的消除椒鹽噪聲。均勻濾波的基本原理:選擇待處理像素的一個鄰域中各像素值的均值來代替待處理的像素。但是均值濾波不能很好地保持圖像細節(jié),在圖像去噪的同時也破壞了圖像的細節(jié)部分,不能很好地去除噪聲點,特別是聲吶圖像存在的椒鹽噪聲。高斯濾波是一種線性平滑濾波,其基本原理為:待處理像素點的值和其鄰域內(nèi)的其他像素值經(jīng)過加權(quán)平均后得到的值來代替待處理的像素。對原始數(shù)據(jù)圖像進行中值濾波處理、高斯濾波處理、均勻濾波處理和圓形鄰域的均勻濾波處理,得出處理效果圖分別如圖7中(a)、(b)、(c)、(d)所示。
圖7 濾波處理方法對比圖
為了判斷濾波效果的好壞,計算客觀評價指標:峰值信噪比(PSNR,peak signal to noise ratio)、均方誤差(MSE,mean squared error)、平均絕對誤差(MAE,mean absolut error),從而判斷3種濾波方法的效果。PSNR的值越大處理效果更好,MSE和MAE數(shù)值越小處理效果越好。PSNR、MSE和MAE的公式如(1)、(2)和(3)所示。
(1)
(2)
(3)
式中,M、N分別為聲吶圖像的長和寬,fm,n、gm,n分別為濾波前后圖片在點(m,n)處的像素灰度值,MAXf表示圖像中的最大灰度值。經(jīng)過對PSNR、MSE和MAE等指標的計算,對比結(jié)果如表1所示。
表1 濾波效果指標
可以看出,中值濾波在PSNR、NMSE和MAE等指標上相較于高斯濾波、均勻濾波和圓形鄰域的均勻濾波,具有更好的優(yōu)越性,處理效果更好。所以采用中值濾波算法進行濾波處理,具體步驟如下:
1)如圖8所示,取聲吶圖像中點坐標為(m,n)的灰度值為a4。
圖8 3×3的正方形滑動窗口
2)對{a0,a1,a2,a3,a4,a5,a6,a7,a8}的灰度值大小進行排序,排序后為{b0,b1,b2,b3,b4,b5,b6,b7,b8},其中中值b4為點(m,n)處的灰度值。窗口如下:
圖9 排序后的滑動窗口
經(jīng)過濾波后的圖像,需要對其進行增強處理,目的是為了擴大圖像中不同物體特征之間的差別,抑制不感興趣的特征,使之改善圖像質(zhì)量、豐富信息量,加強聲吶圖像判讀和識別效果,滿足檢測目標的需要。
為了得到更好的圖像處理效果,需要對其灰度直方圖進行分析,如圖10所示,得到經(jīng)過中值濾波處理后圖像的灰度直方圖。
圖10 濾波后圖像的灰度直方圖
圖像增強的方法一般采用直方圖均衡化的方法,它是一種有效的空間域圖像處理方法,是圖像增強、圖像壓縮和圖像識別的基礎(chǔ)。直方圖均衡化是利用圖像直方圖調(diào)整圖像對比度的方法。其基本思想是以圖像各灰度級概率的累積分布函數(shù)作為變換函數(shù),將原圖映射為一幅灰度級分布較均勻的圖像。這樣就增加了像素灰度值的動態(tài)范圍,從而可達到增強圖像整體對比度的效果[14]。經(jīng)過直方圖均衡化處理后的圖像如圖11(a)所示,其直方圖如圖11(b)所示
但是通過分析發(fā)現(xiàn),經(jīng)過直方圖均衡化的圖像并沒有將目標的數(shù)據(jù)信息增大,只是將數(shù)據(jù)圖像整體的亮度增強,對于我們后續(xù)提取目標的數(shù)據(jù)信息的作用并不明顯,于是對直方圖數(shù)據(jù)分析后得出,目標的灰度強度主要集中在0.2~0.5灰度范圍內(nèi),即50~125灰度值區(qū)間。
經(jīng)過對灰度直方圖的分析,對圖像進行增強處理:將圖像中灰度值低于50的像素點和灰度值高于125的像素點去掉,再將50和125灰度值之間的像素值映射到整個灰度等級范圍,從而使圖像變得明亮[15]。經(jīng)過增強處理后的圖像如圖11(c)所示,其直方圖如圖11(d)所示。
圖11 增強處理及其直方圖
可以看出,經(jīng)過增強處理后的數(shù)據(jù)圖像,目標的信息被有效的放大,從而使得目標凸顯了出來。
圖像經(jīng)過增強后,就需要對其進行分割處理,圖像分割是通過對圖像某種特征的分析,將圖像分割成不同的區(qū)域,根據(jù)相似度特征提取有用目標的過程[16],目的是通過減少冗余信息來簡化圖像。常用的分割特征有像素灰度、紋理、形狀、邊緣輪廓、直方圖、空間頻譜等[17]。
圖像分割的方法一般有大律法和迭代法,大津法是全局閾分割算法之一,其核心思想是遍歷整個圖像,根據(jù)圖像的灰度特征把圖像分為目標和背景兩部分,通過類間方差確定合適的閾值,使得目標與背景兩部分之間的灰度值方差差異最大[18]。迭代法屬于自適應(yīng)的閾值確定方法,可根據(jù)圖像中的灰度分布自動選取分割閾值,其核心思路是通過多輪迭代運算來一步一步逼近最佳閾值。經(jīng)過大律法和迭代法處理后的圖像分別如圖14(a)和14(b)圖所示。
本文通過采用一種改進的迭代法對圖像進行分割處理。
改進的迭代法實現(xiàn)步驟如下:
1)先求取灰度圖像的最大灰度值Zmax和最小灰度值Zmin,通過最大、最小灰度值得到初始迭代閾值:T1=(Zmax+Zmin)/2;
2)根據(jù)得到的初試閾值T1,將圖像分為背景和目標兩個集合,小于初試閾值的集合為背景集合,大于初試閾值的集合為目標集合,通過式(4)和式(5)求取兩集合的灰度均值分別為μ0和μ1。
(4)
(5)
其中:pi=ni/(M×N),M×N代表灰度圖片大小,ni為灰度值為i的像素點個數(shù)。
當聲吶圖像的環(huán)境亮度與水下目標的亮度不具有明顯區(qū)別時,使用迭代法確定閾值,會得到比較差的二值化結(jié)果,經(jīng)過迭代法取得的閾值,與較亮的背景區(qū)域的像素值比較接近,導致較亮的背景區(qū)域也被誤劃分為水下目標。下面我們對迭代法進行改進,使其求得的閾值更接近水下目標的像素值,從而與較亮背景區(qū)域的像素值區(qū)分開來。迭代法的閾值更新公式為每次取μ0與μ1之和的一半來更新閾值:
T1=μ0*0.5+μ1*0.5
(6)
但是為了使閾值更接近μ1,需對上述公式進行修改,增大μ1的比重,同時減小μ0的比重,則公式更改為:
T1=μ0*(1-K)+μ1*K
(7)
要增大μ1的比重,同時減小μ0的比重,就要對K值進行合適的選擇,本文提出一種自適應(yīng)的K值選擇方法來選取最佳的K值。
關(guān)于如何自適應(yīng)的選取K值,需要引入一個參數(shù),即結(jié)構(gòu)相似性(SSIM,structural similarity),它是一種衡量兩幅圖像相似度的指標。SSIM的公式如(8)所示。
(8)
其算法核心為:遍歷的求取不同K值下的SSIM值,求取SSIM值最大時的K值,即是最佳K值。算法流程圖如圖12所示。
圖12 自適應(yīng)K值算法流程圖
3)設(shè)置迭代最小誤差值ε,若|T1-T|≤ε則停止迭代,T1為最佳分割閾值,二值化圖像;否則令T1=T,返回第2)步繼續(xù)迭代。
改進后的迭代算法流程圖如圖13所示。
圖13 改進的迭代法流程圖
經(jīng)過經(jīng)過改進的迭代法處理后的圖像如圖14(c)所示。
圖14 圖像分割算法處理
為了驗證改進后的迭代法的優(yōu)越性,求取大律法、迭代法、改進迭代法的PSNR、MSE、NMSE、MAE和SSIM等指標,其中,MSE、NMSE、MAE的數(shù)值越小,處理效果越好,PSNR、SSIM的數(shù)值越大,處理效果越好。表中由灰色標注的為改進迭代法的指標,對比結(jié)果如表2所示。
表2 分割算法評價指標
改進后的迭代法的MSE、RMSE、MAE、NMSE相較于大律法和未改進的迭代算法顯著降低,SSIM、PSNR顯著增大,在圖像處理的客觀評價指標的效果上得到顯著增強。
經(jīng)過圖像分割后,目標已被大致提取出來,但目標輪廓不夠清晰,內(nèi)部仍有不連續(xù)的孔洞,且背景區(qū)存在少量孤立噪聲點。進行目標篩選之前,有必要對圖像進行簡單的形態(tài)學處理。數(shù)學形態(tài)學主要應(yīng)用于幾何形狀和結(jié)構(gòu)的分析,其組成元素為形態(tài)學代數(shù)算子,常用的形態(tài)學代數(shù)算子有腐蝕、膨脹、開運算和閉運算[19]。
閉運算是對圖像先膨脹后腐蝕的操作,可以進一步減少背景噪聲干擾,并填充目標內(nèi)部的孔洞、不連續(xù)部分得到連續(xù)[20]。閉運算的定義如下式:
I·se=(I⊕se)Θse
(9)
式中,se為處理圖像的結(jié)構(gòu)算子,⊕為膨脹運算,Θ為腐蝕運算。
對圖像進行特征提取就是要找出可以表征圖像主要特征的信息[21]。本文采用連通域標記法對閉運算之后的聲吶圖像進行目標標記,并通過目標面積特征進一步剔除假目標和噪聲。
基本的8-鄰域連通域查找法則如圖15所示,8-連通域通過查找某一像素點與其周圍八個位置的像素點是否為1來劃分區(qū)域。圖15(a)為二值化后,待分割的圖像,目標區(qū)為1,背景區(qū)為0;圖15(b)為經(jīng)連通域查找標記后的圖像,同一區(qū)域的目標用相同的標識符標記,與其他不連通的區(qū)域劃分開。經(jīng)過連通域查找處理后的圖像如圖16所示。
圖15 8-鄰域連通區(qū)域標記示意圖
圖16 連通域標記圖
如圖15(b)所示,經(jīng)過連通域查找后,不同的目標區(qū)域被打上了不同的標簽,累加每個標簽的個數(shù)來近似確定面積大小,并計算每個目標的面積與聲吶掃描扇區(qū)內(nèi)的像素總個數(shù)的面積比εi來濾掉不符合目標尺寸的假目標。
(10)
式中,areasi為第i個連通域內(nèi)的目標像素個數(shù),Ssec為聲吶掃描扇區(qū)內(nèi)的像素總個數(shù),ε為面積比較閾值,若εi<ε,則認為第i個目標為假目標或者噪聲而剔除。
通過面積特征剔除假目標的步驟如下:
1)創(chuàng)建連通域增長隊列,按從左向右、從上到下的順序依次掃描所有像素點,當找到一個灰度值不為0的像素點時,將其入隊列,并標記為label(label從1開始),當前目標像素個數(shù)加1;
2)檢查隊列是否為空,若不為空,從隊列中彈出一個像素點,依次驗證該點左、上、右、下4個鄰域內(nèi)的像素點,若這些點的值為1并且未被標記過,則該點入隊列并標記為label,當前目標像素個數(shù)加1,重復步驟2)。當隊列中所有的像素點都被彈出時,說明這個連通域查找完畢;
3)檢查當前目標像素個數(shù)與聲吶掃描扇區(qū)總像素個數(shù)的比值,若εi<ε,則清空隊列,該區(qū)域的標記作廢,label-1;
4)繼續(xù)檢測下一個未被標記過的像素點是否為0,若不為0則將其入隊列并標記為label+1,目標像素個數(shù)加1,重復2)~3)步驟直至圖像遍歷完畢。
經(jīng)過面積特征篩查處理的圖像如圖17所示。
圖17 水下目標檢測結(jié)果圖
在如圖18所示的水池環(huán)境中,由聲吶采集水池中的環(huán)境信息數(shù)據(jù),再通過RS232串口連接到信息處理計算機存儲,聲吶處理計算機如圖19所示,最后利用MATLAB平臺將采集到的聲吶數(shù)據(jù)做算法處理。
圖18 水池試驗環(huán)境圖
圖19 聲吶處理計算機
通過對不同目標的檢測,如圖20(a)和圖20(b)所示,分別是以水桶和黑箱為目標進行聲吶數(shù)據(jù)的采集。
圖20 目標信息檢測圖
將采集到的聲吶數(shù)據(jù)在MATLAB平臺里生成圖像后(距聲吶0.2 m的死區(qū)范圍內(nèi)像素灰度值置0)。對其進行灰度處理、中值濾波、二值化、連通域查找等一系列聲吶數(shù)據(jù)操作后,再通過面積特征進行目標篩選,得到如圖21所示的檢測結(jié)果,圖中由虛線標記出來的為檢測物,星號表示檢測物的質(zhì)心。
圖21 水下目標檢測結(jié)果圖
試驗結(jié)果表明,該水下目標檢測算法在識別指定目標的時候具有很強的優(yōu)越性,其根據(jù)檢測物的物理特征做出了很好的檢測效果,但是由于實驗環(huán)境限制測試遠距離的檢測效果,因此還需進一步的完善。
本文首先對實驗場景進行了搭建,利用聲吶設(shè)備進行了聲吶數(shù)據(jù)的采集,利用目標檢測計算機存儲聲吶數(shù)據(jù);然后進行了水下目標檢測算法研究,對采集到的聲吶數(shù)據(jù)進行處理,完成了對數(shù)據(jù)圖像的濾波、增強等操作,并通過對迭代法的改進實現(xiàn)對聲吶圖像的有效分割,之后通過面積特征進行目標篩選,成功識別出待檢測的目標。實驗結(jié)果表明本文所研究系統(tǒng)和算法的有效性。