楊 雪,馬培立,施子凡,石 硬
(南京工程學(xué)院創(chuàng)新學(xué)院,江蘇 南京 211167)
隨著陸地資源的逐漸枯竭,人們將大規(guī)模的探索和開發(fā)海洋資源,魚類在水中具有非凡的運(yùn)動(dòng)能力,其運(yùn)動(dòng)的高速性和高效性是早期仿生機(jī)器魚研究重點(diǎn)關(guān)注的問題[1]。但水下環(huán)境較陸面復(fù)雜,諸如水深壓強(qiáng)、線路絕緣與防漏、低能見度環(huán)境識(shí)別等問題均需考慮,功能各有側(cè)重的仿生機(jī)器人層出不窮。仿生機(jī)器魚作為水下機(jī)器人,具有低噪聲、對環(huán)境擾動(dòng)小等特點(diǎn)[2];ROV則適于工作在復(fù)雜的海洋環(huán)境中,具有運(yùn)動(dòng)速度慢,運(yùn)動(dòng)慣性較大,非線性和耦合性較強(qiáng)的特點(diǎn)[3]。為了提高機(jī)器魚的水下推進(jìn)效率和靈活性,美國麻省理工學(xué)院(MIT)設(shè)計(jì)里機(jī)器金槍魚Robo Yun[4]。日本研制的SMA驅(qū)動(dòng)的仿生機(jī)器魚,利用PIC進(jìn)行控制,自帶攝像頭,實(shí)現(xiàn)了用機(jī)器魚進(jìn)行水下探測[5]。北京航空航天大學(xué)研制的“SPC-II”仿生機(jī)器魚把航行穩(wěn)定性作為優(yōu)化設(shè)計(jì)的首要考慮因素,并結(jié)合電驅(qū)動(dòng)伺服系統(tǒng)進(jìn)行結(jié)構(gòu)和機(jī)構(gòu)設(shè)計(jì),將仿生機(jī)器魚的水下連續(xù)工作時(shí)間提高至2~3 h[6]。但是電池供電方式仍然使得機(jī)器魚續(xù)航能力有限,許多研究工作都以提升仿生機(jī)器魚推進(jìn)效率和水下作業(yè)時(shí)間為研究目標(biāo)[7]。采用有纜方式的遙控水下機(jī)器人(ROV)在深水作業(yè)方面逐漸顯現(xiàn)出其深水、長時(shí)間作業(yè)優(yōu)勢。但是ROV造價(jià)昂貴、水下噪聲大、水中姿態(tài)靈活性較差[8]。本文結(jié)合仿生機(jī)器魚和ROV的優(yōu)勢,設(shè)計(jì)并制作了一臺(tái)有纜自主型機(jī)器魚。它通過電纜將仿生魚與地面站相連,不僅解決了仿生魚續(xù)航能力差的問題,而且避免了水對短波信號的影響,同時(shí)采用有纜的信息傳輸方式也保證了數(shù)據(jù)傳輸?shù)姆€(wěn)定性和實(shí)時(shí)性。對傳統(tǒng)仿生魚進(jìn)行改進(jìn),解決了機(jī)器魚水下續(xù)航時(shí)間短的問題,優(yōu)化了魚眼鏡頭的畸變校正方法,并增加了具有較強(qiáng)魯棒性的水下目標(biāo)自動(dòng)追蹤能力。
考慮到整機(jī)系統(tǒng)的實(shí)用性,本文設(shè)計(jì)的有纜自主型機(jī)器魚系統(tǒng)包括地面站、核心控制器、多關(guān)節(jié)機(jī)器魚、有纜光纖和電源5個(gè)主要部分,其結(jié)構(gòu)如圖1所示。水下電纜采用上海達(dá)柔特種電纜有限公司生產(chǎn)的ROV機(jī)器人專用電纜線。多關(guān)節(jié)機(jī)器魚上安裝有兩個(gè)魚眼鏡頭、舵機(jī)及舵機(jī)驅(qū)動(dòng)電路,下位機(jī)核心控制器也被布置在多關(guān)節(jié)機(jī)器魚艙體內(nèi)。另外機(jī)器魚上部還設(shè)置有電纜線接口,其結(jié)構(gòu)如圖2所示。魚眼鏡頭用于采集水下環(huán)境圖像,驅(qū)動(dòng)電路用于驅(qū)動(dòng)魚尾擺動(dòng),下位機(jī)核心控制器負(fù)責(zé)收集魚眼鏡頭采集到的圖像,并且控制舵機(jī)轉(zhuǎn)動(dòng)角度以調(diào)整機(jī)器魚運(yùn)動(dòng)姿態(tài)和速度。同時(shí)下位機(jī)核心控制器與地面站間的通信由從魚體上方接入的光纖完成。本機(jī)采用有纜方式既有效避免了水對短波信號的影響,實(shí)現(xiàn)核心控制器與地面站信號的雙向傳輸,便于實(shí)現(xiàn)利用地面站對機(jī)器魚舵機(jī)實(shí)時(shí)操控,保證了機(jī)器魚的信息的實(shí)時(shí)性與穩(wěn)定性;又解決了機(jī)器魚水下續(xù)航能力問題,把電源線直接接入在水中工作的機(jī)器魚,提供其正常工作所需電能,另配有故障應(yīng)急備用電源。本文設(shè)計(jì)的有纜視覺自主型機(jī)器魚由電纜供電,因此航行時(shí)間不受電池容量控制,可因水下作業(yè)的難易程度調(diào)整航行時(shí)間。
圖1 有纜自主型機(jī)器魚系統(tǒng)組成
圖2 單關(guān)節(jié)機(jī)器魚內(nèi)部結(jié)構(gòu)示意圖
魚眼鏡頭圖像獲取與畸變校正過程如圖3所示,通過7個(gè)步驟實(shí)現(xiàn)圖像獲取與校正,包括圖像的采集、預(yù)處理、畸變校正、區(qū)域分割、模塊化校正、圖像匹配及其融合。為了抑制圖像噪聲,保留其真實(shí)性,首先要進(jìn)行降噪、濾波等預(yù)處理操作,接著進(jìn)行圖像畸變校正和模塊化校正,然后對校正好的圖像做區(qū)域分割,分區(qū)域進(jìn)行圖像匹配。最后把各區(qū)域匹配好的圖像再融合成一張完整的全景圖像。
圖3 魚眼攝像頭畸變校正流程圖
機(jī)器魚在顯示全景圖像的同時(shí),還具備水下目標(biāo)自動(dòng)跟蹤功能。與核心控制器相比,地面站擁有更快的運(yùn)算速度和更強(qiáng)大的處理能力,圖像自動(dòng)跟蹤功能由地面站計(jì)算機(jī)控制實(shí)現(xiàn)。在顯示全景圖像的同時(shí),可以利用HSI分析與EKF預(yù)測得到目標(biāo)準(zhǔn)確方位,并對其自動(dòng)跟蹤。通過上位機(jī)程序控制,可以根據(jù)下位機(jī)回傳上來的圖像選定目標(biāo)追蹤物,然后對選定的目標(biāo)做出誤選判斷。如果發(fā)現(xiàn)是誤選,則不做記錄,重新選定目標(biāo)物;如果確認(rèn)為選中目標(biāo)物,則利用利用HSI分析與EKF預(yù)測對目標(biāo)物進(jìn)行持續(xù)捕獲,實(shí)現(xiàn)自動(dòng)追蹤功能。自主型機(jī)器魚系統(tǒng)實(shí)物如圖4所示。
圖4 自主型機(jī)器魚系統(tǒng)實(shí)物圖
目前常用的兩種目標(biāo)跟蹤算法為Mean Shift和卡爾曼濾波[9-10]。由于環(huán)境以及其他運(yùn)動(dòng)目標(biāo)對目標(biāo)跟蹤過程中的干擾,目標(biāo)的多樣性以及目標(biāo)模型難以自動(dòng)初始化都給目標(biāo)的實(shí)時(shí)跟蹤帶來了巨大的挑戰(zhàn),所以市場上存在的OPENROV等操作水下機(jī)器人,幾乎只能保證短時(shí)間的追蹤觀察,難以完成長時(shí)間、持續(xù)觀察任務(wù)。針對這一難題,本文構(gòu)建了一種自動(dòng)初始化目標(biāo)模型,設(shè)計(jì)了一套能處理目標(biāo)遮掩的實(shí)時(shí)跟蹤算法。與核心板相比,地面站擁有更為強(qiáng)大的處理能力,在顯示全景圖像的同時(shí),將完成了HSI分析與EKF預(yù)測相結(jié)合的水下目標(biāo)定位識(shí)別,使機(jī)器魚具備水下指定目標(biāo)自動(dòng)跟蹤的功能。機(jī)器魚水下目標(biāo)自動(dòng)跟蹤功能是以HSI顏色空間方法為基礎(chǔ)的。首先將目標(biāo)的RGB(紅綠黑)三原色值轉(zhuǎn)化為HSI(色調(diào)、色飽和度和亮度)3個(gè)要素。其轉(zhuǎn)化方法為
其中,R為目標(biāo)紅色色值;G為目標(biāo)綠色色值;B為目標(biāo)黑色色值。
對HSI處理的圖像進(jìn)行兩次圖像差分運(yùn)算,使其能更好地捕捉運(yùn)動(dòng)目標(biāo)。捕捉到目標(biāo)并進(jìn)行人為選取后,機(jī)器設(shè)備便可自動(dòng)進(jìn)行跟蹤。而由于水下環(huán)境較為復(fù)雜,周圍干擾因素多,目標(biāo)極易由于遮擋而丟失,因此提出了基于卡爾曼濾波算法為基礎(chǔ)的解決方式。即假設(shè)目標(biāo)消失時(shí)間為t0至t1,通過對t0時(shí)刻的前一幀圖像進(jìn)行EKF預(yù)測,并將其值作為t0+1幀時(shí)刻的狀態(tài)參數(shù)值,無限循環(huán)直至與某一候選目標(biāo)參數(shù)相同,則跟蹤目標(biāo)重新上線,此時(shí)進(jìn)行EKF狀態(tài)更新以防目標(biāo)再次丟失。
由于鏡頭焦距短、視場大的特點(diǎn)及光學(xué)原理約束,導(dǎo)致魚眼鏡頭圖像畸變嚴(yán)重,視覺效果差。目前,魚眼圖像畸變校正主要采用兩種方式,即基于投影變換模型的校正方法和基于標(biāo)定的魚眼鏡頭畸變校正方法[11-12]。前者計(jì)算復(fù)雜實(shí)時(shí)性差,后者對實(shí)驗(yàn)設(shè)備要求較高。受文獻(xiàn)[13]的啟發(fā),本文提出分區(qū)域模塊化畸變校正方法,該方法是一種水平/豎直雙精度畸變校正算法。采用一種球面模型半徑大于魚眼圖像半徑的方法以減弱南北極拉伸,根據(jù)魚眼鏡頭畸變幾何原理和校正后圖像視覺效果,通過優(yōu)化球面模型半徑,以進(jìn)一步減弱極點(diǎn)畸變。由于魚眼鏡頭采集圖像時(shí),要求水平與垂直視角要超過180°,為增加其視角范圍降低畸變程度,在多次畸變校正的基礎(chǔ)上,設(shè)計(jì)了魚眼鏡頭圖像分區(qū)域模塊化畸變校正方法。兩只魚眼鏡頭采集到的圖像,首先要進(jìn)行圖像預(yù)處理,利用canny算子做邊緣檢測,完成圖像降噪工作;隨后通過標(biāo)定攝像頭、分區(qū)域模塊化畸變校正及模塊化校正圖像重新拼接3個(gè)步驟校正畸變圖像。
由于魚眼鏡頭存在嚴(yán)重的桶形畸變,需要對圖像進(jìn)行標(biāo)定,以得到具有線性特征的圖像。假設(shè)空間一點(diǎn)在絕對坐標(biāo)系中的坐標(biāo)為(、、),將其投影到圖像平面為
其中,(u,v)為投影到圖像平面的坐標(biāo)。A為魚眼鏡頭相機(jī)內(nèi)參數(shù)矩陣,c為基準(zhǔn)點(diǎn),f為焦距。相機(jī)內(nèi)部參數(shù)矩陣與環(huán)境無關(guān),進(jìn)行一次系統(tǒng)初始化后,即可多次重復(fù)使用。[R|t]為魚眼鏡頭外參數(shù)矩陣,用于描述相機(jī)在固定環(huán)境中的運(yùn)動(dòng)情況。
利用非線性最小二乘法求J的最大似然估計(jì):
根據(jù)式(6)得到魚眼鏡頭相機(jī)內(nèi)參數(shù)矩陣A的約束條件:
根據(jù)式(4)可以求出魚眼鏡頭相機(jī)內(nèi)參數(shù)矩陣A及其畸變系數(shù)。利用OpenCV實(shí)現(xiàn)魚眼相機(jī)的標(biāo)定,通過計(jì)算得到的魚眼鏡頭相機(jī)內(nèi)外參數(shù),對空間的三維點(diǎn)進(jìn)行重新投影計(jì)算,得到空間三維點(diǎn)在圖像上新的投影點(diǎn)的坐標(biāo),計(jì)算投影坐標(biāo)和亞像素角點(diǎn)坐標(biāo)之間的偏差,偏差越小,標(biāo)定結(jié)果越好[14]。
魚眼鏡頭獲取的圖像會(huì)發(fā)生嚴(yán)重的桶形畸變,如圖5(a)所示。圖5(b)為校正后的目標(biāo)圖像。對比校正前后的兩幅目標(biāo)圖像,圖5(a)中的棋盤方格發(fā)生了明顯的畸變,而經(jīng)過校正后的圖5(b),棋盤方格被修正達(dá)到了預(yù)期的效果。分區(qū)域模塊化畸變校正方法采用模塊化畸變校正標(biāo)定,利用分區(qū)的方式選取了在不同區(qū)域的特征像素點(diǎn),在校正前后分別對特征像素點(diǎn)的位置進(jìn)行提??;同時(shí)還要檢測不同區(qū)域的相對變化率,利用支持向量機(jī)觀察、分析其校正規(guī)律;并獲取每個(gè)區(qū)間的像素點(diǎn)在校正前后的圖像距離中心點(diǎn)的平均距離。根據(jù)多次校正得到的統(tǒng)計(jì)學(xué)規(guī)律,遵循等距投影定理構(gòu)建出入射角與徑向距離關(guān)系處理公式,并得到校正結(jié)果。相對于傳統(tǒng)校正,模塊化校正方法速度更快,更加適合于在復(fù)雜水下環(huán)境中作業(yè)的機(jī)器魚。
圖5 畸變校正前后輸出圖像對比
在實(shí)現(xiàn)模塊化校正后,需要進(jìn)行圖像匹配。采用SIFT算法將多幅具有公共信息的重疊區(qū)域圖像,在空間位置上進(jìn)行匹配疊加,最終拼接成一幅完整無重疊圖像。圖6為兩幅有重疊區(qū)域圖像的匹配、拼接過程。其處理匹配順序?yàn)?NN,1NN/2NN<0.8,1NN+RANSAC,1NN/2NN<0.8+RANSAC。
圖6 測試圖像SIFT算法匹配過程
1NN匹配獲取圖像img1(圖6左)中的SIFT特征點(diǎn)point1,img2(圖6右)中的SIFT特征點(diǎn)查找與自己最近的img1上的SIFT特征點(diǎn)point1,重復(fù)該過程直至獲得匹配點(diǎn),得到初步的SIFT匹配算子,但其結(jié)果有較大誤差。接著進(jìn)行1NN/2NN<0.8校正,利用圖像 img1中的 SIFT特征點(diǎn) point1,在img2圖像上的SIFT關(guān)鍵點(diǎn)查找獲取img1上最近SIFT關(guān)鍵點(diǎn)point21和次近關(guān)鍵點(diǎn)point22,并分別設(shè)置其像素距離為dis1與dis2,如果dis1/dis2<0.8,則將其視為正確匹配的點(diǎn)對,否則為錯(cuò)配點(diǎn),將其剔除。1NN+RANSAC與1NN/2NN<0.8+RANSAC匹配則是利用RANSAC算法做直線擬合,并篩選相應(yīng)的點(diǎn),剔除錯(cuò)誤結(jié)果,做個(gè)大概的結(jié)果預(yù)測。圖像匹配、拼接后的效果如圖7所示。兩幅有重疊區(qū)域的圖像被拼接成1幅完整圖像,既沒有重疊區(qū)域,也沒有被誤刪除的缺失區(qū)域。
圖7 測試圖像匹配、拼接結(jié)果
畸變處理將(X,Y,Z)三維坐標(biāo)點(diǎn),投影在平面圖像上的二維坐標(biāo)為(u,v)。取Kx與Ky為徑向畸變系設(shè)定時(shí)圖像中心點(diǎn)為(u0,v0),并不斷選取其他坐標(biāo)點(diǎn),計(jì)算標(biāo)定點(diǎn)的成像點(diǎn)到圖像中心的像素差,并進(jìn)行計(jì)算。如表1所示,選取二維坐標(biāo)平面上的7個(gè)點(diǎn),其中第1個(gè)點(diǎn)為圖像中心點(diǎn),經(jīng)過測量鏡面到成像點(diǎn)的距離為17.8 cm。徑向畸變系數(shù)平均值為:Kx=3.884 597 2,Ky=3.908 111 19。
經(jīng)過徑向畸變系數(shù)標(biāo)定處理后,即可用魚眼攝像頭拍攝圖像。由于魚眼圖像在邊緣處畸變最為嚴(yán)重,所以選擇從中心處提取圖像坐標(biāo)并進(jìn)行計(jì)算,計(jì)算出鏡頭畸變系數(shù)、旋轉(zhuǎn)矩陣和平移矩陣,最終對整個(gè)圖像進(jìn)行分析,得出圖像的平均誤差。隨機(jī)選取一只魚眼鏡頭在固定環(huán)境下拍攝的8幅圖像,計(jì)算得本只魚眼鏡頭相機(jī)內(nèi)參數(shù)矩陣為
表1 Kx、Ky標(biāo)定測試結(jié)果
其畸變系數(shù)為[-0.040 910 8,0.030 590 5,-0.029 693,0.008 837 04]。對8幅魚眼鏡頭畸變圖像進(jìn)行畸變校正,獲取的校正參數(shù)如表2所示。
表2 魚眼鏡頭圖像畸變校正參數(shù)
圖8所示圖像分區(qū)選取示意圖。表3為對7個(gè)隨機(jī)區(qū)間圖像進(jìn)行分區(qū)域模塊化畸變校正的修正結(jié)果。根據(jù)每個(gè)區(qū)間的像素點(diǎn)在校正前后的圖像距離中心點(diǎn)的平均距離,得到校正前后圖像的位置變化率,在對多個(gè)訓(xùn)練圖像區(qū)間進(jìn)行畸變校正的過程中,可以從訓(xùn)練集中分析出入射角與徑向距離的關(guān)系,從而得到校正結(jié)果。由于7個(gè)區(qū)域的選取是從中心向邊緣提取,因此在圖像中心點(diǎn)1區(qū)間,沒有發(fā)生畸變,不需要校正,但是隨著區(qū)間點(diǎn)逐漸偏離中心點(diǎn),校正前后的變化率逐漸增大,說明越靠近邊緣,畸變越嚴(yán)重,需要進(jìn)行較大修正。
圖8 圖像分區(qū)選取
表3 各區(qū)間校正前后變化率
通過多次實(shí)驗(yàn)測試證明,HSI分析與EKF預(yù)測相結(jié)合的水下目標(biāo)自動(dòng)跟蹤方法具有較好的跟蹤效果。如圖9所示,圓形的橙色物體和矩形棕色物體,在水中都能夠被機(jī)器魚自動(dòng)識(shí)別。如圖9(a)和圖9(c)所示,兩個(gè)被選定的目標(biāo)都一直處于橢圓框選中狀態(tài)。如圖9(b)和圖9(d)所示,盡管兩個(gè)物體在水中都有一部分被遮擋,但機(jī)器魚仍然能夠發(fā)現(xiàn)并繼續(xù)跟蹤目標(biāo)物,將目標(biāo)物鎖定在橢圓框中。
圖9 水中目標(biāo)自動(dòng)跟蹤實(shí)驗(yàn)效果
通過在測試區(qū)域中放置數(shù)量不同、顏色近似,大小相近的物體,以相同頻率在機(jī)器魚附近擺動(dòng)500次,傳統(tǒng)RGB法目標(biāo)自動(dòng)蹤成功率和本文識(shí)別法目標(biāo)跟蹤效果對比如表4所示。從表中可知,HSI分析與EKF預(yù)測相結(jié)合的識(shí)別法目標(biāo)跟蹤成功率明顯高于RGB法。當(dāng)目標(biāo)數(shù)量僅有3個(gè)時(shí),HSI分析與EKF預(yù)測相結(jié)合的識(shí)別法目標(biāo)跟蹤平均成功率比RGB法高出10.5%。隨著目標(biāo)數(shù)量的增加,HSI分析與EKF預(yù)測相結(jié)合的識(shí)別法的優(yōu)勢更為明顯,當(dāng)目標(biāo)數(shù)為5個(gè)時(shí),HSI分析與EKF預(yù)測相結(jié)合的識(shí)別法目標(biāo)跟蹤平均成功率比RGB法高14.2%。當(dāng)目標(biāo)數(shù)為7個(gè)時(shí),更是高出16.5%。由此可見,HSI分析與EKF預(yù)測相結(jié)合的識(shí)別法具有較為明顯的優(yōu)勢。
表4 目標(biāo)跟蹤效果對比
本文設(shè)計(jì)了一款有纜視覺自主型機(jī)器魚,該機(jī)器魚采用有纜供電方式,增加了機(jī)器魚水下作業(yè)時(shí)間。采用仿生魚結(jié)構(gòu)增強(qiáng)了水下運(yùn)動(dòng)的靈活性和靜音效果,采用上位機(jī)和下位機(jī)分工協(xié)作的控制方式,實(shí)現(xiàn)了復(fù)雜作業(yè)環(huán)境中的圖像實(shí)時(shí)傳輸與目標(biāo)選定跟蹤。設(shè)計(jì)了分區(qū)域模塊化魚眼鏡頭圖像畸變校正方法,實(shí)現(xiàn)多幅連拍全景圖像的拼接與復(fù)原,更適合于曲屏顯示,保證觀測者一直處于第一觀察視角。提出了HSI分析與EKF預(yù)測相結(jié)合的水下目標(biāo)自動(dòng)識(shí)別方法,實(shí)現(xiàn)了在水中復(fù)雜環(huán)境及遮擋環(huán)境中選定目標(biāo)的正確識(shí)別。本文提出的HSI分析與EKF預(yù)測相結(jié)合的識(shí)別法目標(biāo)跟蹤成功率明顯高于RGB法。但是本次設(shè)計(jì)的機(jī)器魚僅能在較淺的實(shí)驗(yàn)水域中作業(yè),當(dāng)水深較大時(shí),魚體結(jié)構(gòu)會(huì)出現(xiàn)滲漏現(xiàn)象,嚴(yán)重危及電路板安全。另外當(dāng)作業(yè)水域渾濁不清時(shí),目標(biāo)選取與自動(dòng)識(shí)別效果急劇下降。在下一階段的工作中,將進(jìn)一步優(yōu)化魚體結(jié)構(gòu)防水性,增加其下潛深度,同時(shí)還要進(jìn)一步開發(fā)水下目標(biāo)識(shí)別算法,使其具有更廣的適用范圍。