徐鳳強,董鵬,王輝兵,付先平
(大連海事大學 信息科學技術學院,大連116026)
利用水下機器人智能檢測和自主抓取海產(chǎn)品成為當前海產(chǎn)養(yǎng)殖業(yè)的迫切需要,這是建立現(xiàn)代化海洋牧場的重要途徑。目前,海參、扇貝等海產(chǎn)品的捕撈主要依靠潛水員和拖網(wǎng)船2種方式。潛水員不能在水下持續(xù)作業(yè),并且受水下壓強影響,常年從事水下捕撈工作的漁民容易得潛水病。大面積養(yǎng)殖的貝類主要依靠拖網(wǎng)船捕撈,但是這種拖網(wǎng)捕撈方式容易破壞水下生態(tài)環(huán)境。而水下敏捷機器人能夠克服這些問題,因此,利用水下機器人進行海產(chǎn)品的捕撈成為當下研究的熱點。
目前,水下敏捷機器人的研究大多集中在水下觀測和水下探測等方面,而水下抓捕機器人的研究成果卻很少。僅有的水下抓捕機器人也仍然停留在依靠人工操控進行抓取作業(yè)的層面,而自主抓取機器人更加難以實現(xiàn)。造成這種研究困境的原因為:①復雜的水下環(huán)境對機器人部件的防水性和氣密性等要求極高,市場缺乏成熟的適用于水下機器人的各種配件;②缺乏服務于水下機器人的智能檢測與自主抓取系統(tǒng)。
因此,本文提出了一種智能檢測與自主抓取系統(tǒng),用來與機器人協(xié)同作業(yè),引導機器人在脫離人工操控的情況下,實現(xiàn)對海產(chǎn)品的智能檢測及自主抓取操作。該系統(tǒng)主要解決水下目標的檢測問題和機器人的水下運動問題,這是實現(xiàn)機器人自主抓取目標必須解決的2個關鍵問題。
針對水下目標檢測問題,將目前比較流行的深度學習算法引入到水下識別場景中,來提高水下目標檢測效果。由于光在水下的折射及散射作用,導致相機拍攝的圖像呈現(xiàn)模糊、偏色、光線偏暗等現(xiàn)象。傳統(tǒng)的圖像檢測方法對于水下圖像的處理效果并不理想。鑒于深度學習在各個領域的應用都取得了非常好的效果,本文將目前效果比較好的DSOD(Deeply Supervised Object Detector)[1]應用到水下目標檢測任務,利用標注的水下圖像數(shù)據(jù)集訓練網(wǎng)絡模型,檢測海參、扇貝、海膽等水下目標。
對于機器人的水下運動問題,本文提出了基于反饋機制的多信號分析方法,通過獲取海產(chǎn)品位置信息、機器人定位信息、機器人深度等信號進行分析,得出機器人下一步的運動方案并反饋給機器人,從而引導其在水下尋找海產(chǎn)品并抓取目標。為了定位機器人在水下的位置,搭建了短基線定位系統(tǒng)[2]。利用聲波信號在接收器和定位器之間的傳播,計算機器人在定位系統(tǒng)中的位置。通過分析相機成像坐標系與定位系統(tǒng)坐標系之間的關系,提出了一種坐標轉(zhuǎn)換方法,將海產(chǎn)品的檢測位置坐標轉(zhuǎn)換到定位系統(tǒng)坐標系,進而控制機器人向目標位置移動。機器人的深度信息在機器人下潛運動中起到重要作用。
為了驗證本文系統(tǒng)的有效性,搭建了一個水下抓捕機器人,將本文算法應用到機器人上,引導其在水下完成海產(chǎn)品的智能檢測及自主抓取工作。
本文的主要貢獻如下:①將DSOD檢測算法應用到水下場景,解決水下目標檢測問題;②提出了一種坐標轉(zhuǎn)換方法,可以將檢測目標的位置坐標轉(zhuǎn)換到定位系統(tǒng)坐標系;③設計了一種基于反饋機制的多信號分析方法,引導機器人自動檢測目標并完成自主抓取操作。
目標檢測是計算機視覺領域的一個研究熱點,其不僅需要區(qū)分目標的種類,還要精確地定位到目標的包圍框。與傳統(tǒng)的目標檢測算法相比,基于深度學習的目標檢測算法顯著提高了目標檢測的準確率。依據(jù)是否需要提取候選區(qū)域,可以將基于卷積神經(jīng)網(wǎng)絡(CNN)的目標檢測算法分為2類:基于候選區(qū)域的目標檢測算法和基于回歸的目標檢測算法[1]。
基于候選區(qū)域的目標檢測算法先從整幅圖像提取候選區(qū)域,再利用候選區(qū)域進行分類和回歸,得到檢測結(jié)果。Girshick等[3]提出了候選區(qū)域與卷積神經(jīng)網(wǎng)絡相結(jié)合的方法R-CNN,檢測效果提升明顯,但是存在大量的重復計算。因此,Girshick[4]提出了一個更加高效的深度卷積網(wǎng)絡Fast R-CNN,提高了檢測效率。Ren等[5]進一步提出了RPN(Region Proposal Network),實現(xiàn)卷積特征的共享,降低網(wǎng)絡訓練的資源消耗。在以上算法基礎上改進的網(wǎng)絡,如Mask R-CNN[6]、R-FCN[7]等也取得了很好的檢測效果。
基于回歸的目標檢測算法摒棄了候選區(qū)域提取操作,是一種端到端的目標檢測算法,如YOLO[8]、SSD[9]、DSSD[10]、DSOD[1]等。這類算法把目標檢測看成一個回歸問題,直接利用神經(jīng)網(wǎng)絡從整幅圖上檢測并定位目標,檢測速度較快,但是檢測效果稍遜一籌。
當前主流目標檢測算法主要集中解決陸地場景問題[11],本文將基于卷積神經(jīng)網(wǎng)絡的目標檢測算法引入水下場景進行水下目標檢測。綜合考慮算法的檢測速度和準確率,選擇DSOD作為檢測網(wǎng)絡。
目前,比較成熟的定位技術主要基于無線電波和聲波傳輸實現(xiàn)。無線電波在水下傳輸時,由于衰減迅速,導致定位不準確。而水聲定位技術可以克服這一缺點,實現(xiàn)水下穩(wěn)定傳輸。近年來,基于水聲定位的水下機器人定位技術引起了廣泛的研究。根據(jù)聲學基線之間的距離,可以把聲學定位系統(tǒng)分為3類:長基線定位(LBL,基線長度100~6 000 m,甚至有時超過6 000 m)、短基線定位(SBL,基線長度20~50 m)和超短基線定位(USBL,基線長度小于10 cm)[2]。楊放瓊等[12]利用傳統(tǒng)的長基線定位系統(tǒng),實現(xiàn)了深海采礦ROV的精確定位。佛羅里達大西洋大學海洋工程系和海軍研究所在AUV上裝備了短基線定位系統(tǒng),用來在偵察任務中進行導航[13]。Mandic'等[14]描述了利用超短基線定位與聲吶圖像測量追蹤水下目標的技術發(fā)展。由于長基線定位系統(tǒng)復雜且昂貴,超短基線定位系統(tǒng)校準困難,本文采用短基線定位搭建機器人的水下定位系統(tǒng)。
常用的水下目標定位方法有3種:基于單目的目標定位、基于雙目或者多目的目標定位及基于多傳感器融合的目標定位[15-18]。Marani等[15]通過曲線擬合得到球體目標的圓形輪廓,結(jié)合已知的球形半徑信息就可以進行目標的三維定位。Zannatha等[16]利用Canny邊緣檢測算子提取目標的邊緣,利用相似三角形原理完成了機器人的目標定位。Lee等[17]為ROV的2個機械手開發(fā)了雙目定位視覺系統(tǒng),采用2個攝像機對目標進行三維定位,協(xié)助2臺機械手協(xié)同工作。Zhang等[18]研究了利用激光傳感器與攝像機相結(jié)合的三維定位方法,通過相機的焦距等參數(shù),完成水下球體目標的三維定位。本文采用多傳感器融合的目標定位方式,利用聲吶獲取到機器人距離地面的參數(shù),配合相機獲取目標物三維坐標。
水下機器人的目標檢測任務描述為:水下機器人潛入水中航行,并通過搭載的水下相機實時捕捉視頻圖像;利用檢測算法對生成的圖像進行實時檢測,得到圖像中目標的類別及其在圖像中的包圍框坐標信息;檢測結(jié)果反饋給機器人。
由于光在水下的折射和散射作用,導致水下成像存在偏色、模糊等問題,這些問題直接影響水下圖像特征提取的豐富程度,導致目標檢測精度降低。而卷積神經(jīng)網(wǎng)絡在圖像特征提取方面優(yōu)勢明顯,因此,本文將卷積神經(jīng)網(wǎng)絡引入到水下場景來解決水下目標檢測問題。通過對比當下主流的目標檢測算法,本文采用檢測速度相對較快且檢測效果最好的DSOD檢測算法進行水下目標檢測。
DSOD是一個端到端的多尺度檢測模型,其不需要提取候選框,也不需要預訓練過程,能夠從頭開始訓練模型,并達到很好的檢測效果。DSOD的網(wǎng)絡結(jié)構(gòu)主要分為2部分:用于特征提取的主干網(wǎng)絡和多尺度預測網(wǎng)絡。
主干網(wǎng)絡是DenseNet網(wǎng)絡的一個變體,其由1個主干網(wǎng)絡、4個密集塊、2個轉(zhuǎn)換層和2個轉(zhuǎn)換池化層組成。主干網(wǎng)絡包括3個3×3卷積層和1個2×2最大池化層,這種結(jié)構(gòu)可以減少原始輸入圖像的信息丟失。密集塊中所有前面的層都會連接到當前層,其優(yōu)勢是后面的層可以接受前面網(wǎng)絡層的監(jiān)督信息。每個轉(zhuǎn)換層都包含一個池化操作,用于對特征圖進行下采樣。而轉(zhuǎn)換池化層可以在不降低特征圖分辨率的情況下增加密集塊的數(shù)量。
預測網(wǎng)絡利用精細的密集結(jié)構(gòu)來融合多尺度的預測響應。輸入圖像經(jīng)過DSOD網(wǎng)絡可以提取出6個不同尺度的特征圖做預測。從第2個特征圖到第6個特征圖,每一個特征圖有一半的特征是從上一個特征圖學到,而剩下的一半特征是對連續(xù)的高分辨率特征圖進行下采樣得到。這種預測結(jié)構(gòu)可以用較少的參數(shù)產(chǎn)生更精確的結(jié)果,甚至對圖像中的小目標也能產(chǎn)生很好的檢測效果。
DSOD網(wǎng)絡結(jié)構(gòu)及模型訓練過程如圖1所示。先利用水下圖像數(shù)據(jù)集從頭開始訓練DSOD模型,經(jīng)過反復迭代訓練,可以得到一個效果比較好的網(wǎng)絡模型,該模型能夠產(chǎn)生穩(wěn)定的參數(shù),滿足目標檢測的性能要求。訓練好的網(wǎng)絡模型集成到水下機器人的檢測算法中,利用機器人實時檢測水下目標,并產(chǎn)生目標類別信息及包圍框位置坐標,這些檢測信息將進一步影響機器人的水下運動情況。
圖1 卷積神經(jīng)網(wǎng)絡模型的訓練和水下目標實時檢測Fig.1 CNN model training and real-time marine object detection
水下目標定位是一個非常復雜的工作。首先,利用檢測算法通過相機檢測目標;然后,利用短基線定位系統(tǒng)定位機器人;最后,將目標坐標從相機成像坐標系轉(zhuǎn)換到機器人世界坐標系,再從機器人世界坐標系轉(zhuǎn)換到短基線定位系統(tǒng)的坐標系。通過分析不同坐標系之間的關系,本文提出了一種坐標轉(zhuǎn)換方法來計算目標物在定位系統(tǒng)中的實際位置坐標。
短基線定位系統(tǒng)是一種經(jīng)典的水下定位技術,其采集各個陣元接收到發(fā)射器發(fā)射信號的時間延遲,通過數(shù)學方程獲取發(fā)射器相對于基陣坐標系的三維坐標。
如圖2所示,4個陣元分別位于A、B、C、O,目標P與各陣元之間的距離為
式中:Ri為各陣元與發(fā)射器之間的距離;(xi,yi,zi)為短基線陣元i的位置坐標;(x,y,z)為搭載發(fā)射器的水下機器人的坐標。
目標P與各陣元之間通過水聲傳播的距離表達式為
式中:c為聲音在水中的傳播速度;t為短基線定位系統(tǒng)地面站發(fā)送詢問信號的時刻;ti為短基線定位系統(tǒng)各陣元接收到信號的時刻;Δt為短基線定位系統(tǒng)內(nèi)的延時時間。
圖2 水聲定位幾何原理Fig.2 Geometric principle of underwater sound positioning
聯(lián)立式(1)和式(2)得到
將目標P與陣元坐標代入式(3)可以得到一個方程組,該方程組有4個未知量,因此,利用4個方程可以得到位置(x,y,z)和時延Δt。
本文搭建的短基線定位系統(tǒng)如圖3所示。圖中:zo為機器人相對于地面的高度。將發(fā)射器集成到水下機器人上,作為發(fā)出信號的信標。在水面附近,放置4個短基線陣元,短基線陣元作為接收器監(jiān)聽發(fā)射器發(fā)出的信號。定位系統(tǒng)通過計算發(fā)射器發(fā)出信號到每個短基線陣元接收到信號的時間差來計算攜帶發(fā)射器的機器人的位置。
圖3 機器人與目標在定位系統(tǒng)中的位置關系Fig.3 Relative location of robot and target in positioning system
水下定位系統(tǒng)搭建成功后,通過分析相機成像坐標系與機器人世界坐標系之間的關系,以及機器人世界坐標系與定位系統(tǒng)坐標系之間的關系,可以將目標坐標從相機成像坐標系經(jīng)由機器人世界坐標系轉(zhuǎn)換到定位系統(tǒng)坐標系,具體計算過程如下:
1)利用DSOD檢測算法檢測水下目標在相機成像坐標系中的坐標(u,v)。
2)通過聲吶獲取機器人距離地面的高度zo。
3)通過相機內(nèi)參矩陣及高度zo將目標從相機成像坐標系轉(zhuǎn)換為機器人世界坐標系,進而計算出物體在機器人世界坐標系中的實際位置。
相機的內(nèi)參矩陣定義為
式中:f為相機的焦距;d x、d y為像元尺寸;(u0,v0)為圖像中心像素坐標;(xo,yo,zo)為目標在機器人世界坐標系的實際位置。由此計算出(xo,yo,zo),即
4)通過短基線定位系統(tǒng)獲取機器人在定位系統(tǒng)坐標系中的坐標F(x,y,z)。
5)根據(jù)機器人世界坐標系與定位系統(tǒng)坐標系之間的關系,將目標坐標轉(zhuǎn)換到定位系統(tǒng)坐標系。如圖4所示,XOY表示短基線定位系統(tǒng)坐標系,MFN表示機器人世界坐標系,α為2個坐標系之間的夾角。F為機器人在短基線定位系統(tǒng)坐標系中的坐標,T為目標在機器人世界坐標系中的坐標。
根據(jù)2個坐標系之間的角度關系,可以得出坐標轉(zhuǎn)換表達式為
圖4 機器人世界坐標系和定位系統(tǒng)坐標系的關系Fig.4 Relation between robot world coordinate system and positioning system coordinate system
式中:(x,y,z)為機器人的坐標;(xf,yf,zf)為目標物體T在定位系統(tǒng)中的坐標。
水下機器人的自主運動是實現(xiàn)自主抓取的前提和關鍵,其目的在于檢測并接近水下目標,最終進行抓取。機器人需要綜合考慮當前所處環(huán)境,做出合理的運動選擇。水下環(huán)境的不確定性和復雜性給機器人自主運動問題帶來了巨大挑戰(zhàn)。
機器人利用水下定位系統(tǒng)探測目標的運動軌跡,如圖5所示。利用水下定位系統(tǒng)規(guī)劃機器人的運動區(qū)域,運動區(qū)域的邊界附近代表警示區(qū)域。機器人從出發(fā)區(qū)開始,尋找水下目標。機器人的水平運動有3種策略:左轉(zhuǎn)、右轉(zhuǎn)和直行,不同的軌跡顏色表示從起點出發(fā)的不同運動策略。當機器人進入警示區(qū)域時,需要調(diào)整運動路線,遠離警示區(qū)域并繼續(xù)移動,直到檢測到目標為止。當機器人檢測到目標時,需要控制機器人繼續(xù)靠近目標方向,直到到達機械手可操作的行程范圍,利用機械手抓取水下目標。
根據(jù)以上分析,本文提出了一種基于反饋機制的多信號分析方法,如圖6所示。該方法通過收集機器人的定位信息、深度信息,以及利用目標檢測結(jié)果信息,對機器人的運動狀態(tài)進行綜合分析,得出最終的移動方案,并將最終決策信號反饋給水下機器人,引導機器人繼續(xù)運動。
圖5 水下機器人在限制區(qū)域內(nèi)的運動軌跡Fig.5 Trajectory of underwater robot moving within constrained area
圖6 基于反饋機制的多信號分析方法Fig.6 Multi-signal analysis method based on feedback mechanism
圖7 多信號分析方法流程Fig.7 Flowchart of multi-signal analysis method
多信號分析方法的決策流程如圖7所示。首先,通過短基線定位系統(tǒng)獲得機器人的位置信息,并判斷機器人是否駛?cè)脒\動區(qū)域的限制區(qū)域。如果機器人已經(jīng)進入限制區(qū)域,則控制機器人向左前方運動,直到遠離限制區(qū)域。然后,獲取目標檢測算法對當前機器人視覺區(qū)域的目標檢測結(jié)果,如果當前視覺區(qū)域沒有目標,則控制機器人向正前方運動;否則,根據(jù)檢測結(jié)果的目標分布情況,判斷機器人應該向正前方、左前方或右前方運動。根據(jù)目標定位算法可以進一步計算出目標在水下定位系統(tǒng)中的位置,從而精確機器人的移動方向。最后,利用機器人搭載的聲吶向海底發(fā)射脈沖信號,根據(jù)響應時間計算距離海底的深度信息,判斷機器人能否繼續(xù)下潛。如果可以繼續(xù)下潛,則機器人除了水平方向的運動之外還應該伴隨下潛運動,即機器人應該向正前下、左前下或右前下的方向運動。多信號分析方法的決策結(jié)果會及時反饋給機器人并控制機器人的下一步運動,而機器人完成一次運動操作后會繼續(xù)利用多信號分析方法獲取下一次移動方案。
目標檢測結(jié)果除了用來計算目標在水下定位系統(tǒng)中的位置坐標之外,本文還定義了一種通信協(xié)議,用來幫助機器人理解目標在當前視野中的分布情況。如圖8所示,將圖像分為9個區(qū)域。根據(jù)檢測結(jié)果,可以分別統(tǒng)計每個區(qū)域內(nèi)各個類別的目標數(shù)目,并將統(tǒng)計結(jié)果按照順序拼接成檢測信號發(fā)送給機器人,該檢測信號可以幫助機器人分析朝哪個方向運動更接近目標。
圖8 檢測模塊和機器人之間的通信協(xié)議Fig.8 Communication protocol between detection module and robot
為了驗證本文算法,設計和開發(fā)了一款水下抓取機器人,將算法應用到機器人上,實現(xiàn)機器人的智能檢測和自主抓取。
圖9 水下機器人組成結(jié)構(gòu)Fig.9 Underwater robot composition structure
水下敏捷機器人的自主抓取研發(fā)需要解決許多水下運行環(huán)境所帶來的問題。如圖9所示,本文設計的機器人是一款6推進器的ROV,其搭載了3個亞克力艙室作為電子部件的防水處理,1個作為主艙保護樹莓派、Pixhawk控制板等核心電子器件,2個作為電池倉放置電壓供電模塊。由于海水腐蝕性很強,選擇具有防腐蝕性的工業(yè)鋁搭建機器人主體框架。
Pixhawk控制板主要用來收集并處理機器人各部件發(fā)出的信號,樹莓派是機器人的通信中心。6個推進器協(xié)調(diào)工作實現(xiàn)機器人的上浮、下潛、左右滑動及轉(zhuǎn)向控制。由于水下能見度低,為了提高圖像采集的質(zhì)量,選用4 K高清水下相機,并搭載亮度可調(diào)的水下光源作為補充。
水下機器人在水下作業(yè)需要克服重力影響,本文機器人通過亞克力艙室及浮力塊提供的浮力來維持自身平衡,與水面供電及信號通信的電纜都選用零浮力線纜。
水下定位系統(tǒng)的4個接收器搭建在水面,發(fā)射器搭載到機器人上,發(fā)射器與接收器之間通過發(fā)射脈沖信號通信。聲吶安裝在機器人的底部中心位置,豎直向下發(fā)射聲波信號。
為了抓取海產(chǎn)品,設計了一款二自由度的機械手,搭載在機器人的前方。機械手一組完整的抓取動作如圖10所示。
本文設計的機器人經(jīng)過反復水下實驗,已經(jīng)能夠在真實海洋環(huán)境中實現(xiàn)海產(chǎn)品的自主抓取。
對于基于卷積神經(jīng)網(wǎng)絡的目標檢測任務,數(shù)據(jù)集的選取非常重要。Imagenet、COCO、Pascal VOC等公共數(shù)據(jù)集,體積龐大,雖然種類豐富,但是扇貝、海參、海膽等海產(chǎn)品的圖片數(shù)量并不充足。因此,筆者標注了水下圖像數(shù)據(jù)集用于訓練檢測網(wǎng)絡,數(shù)據(jù)集包含海參、海膽、扇貝3類海產(chǎn)品共29 500張圖片。
本文目標檢測算法在caffe框架上實現(xiàn),實驗環(huán)境使用Nvidia Geforce GTX 1080 TI GPU、Cudnn v5.1及Intel Core i7-6700k@4.00 GHz。初始學習率設置為0.1,每迭代20 000次學習率降低10%,迭代100 000次停止訓練。經(jīng)過多次訓練,本文目標檢測算法可以在水下圖像數(shù)據(jù)集上獲得81.2%的準確率。
目前,比較主流的檢測算法在水下圖像數(shù)據(jù)集上的檢測效果對比如表1所示。SSD300[9]、YoLov3[19]、DSOD[1]的 檢 測 速 度 都 能 夠 達 到10幀/s以 上,其 中 YoLov3[19]檢 測 速 度 最 快,DSOD[1]的檢測效果最好。
圖10 機器人完整的抓取動作Fig.10 Robot's complete capture action
表1 水下圖像數(shù)據(jù)集檢測結(jié)果對比Table 1 Comparison of detection results on underwater image dataset
對于現(xiàn)階段的水下自主抓取機器人,10幀/s以上的處理速度已經(jīng)能夠滿足實際作業(yè)要求,為了追求更高的目標檢測準確率,選擇DSOD作為本文系統(tǒng)的檢測算法。DSOD目標檢測的部分效果如圖11所示,圖中不同顏色的標簽代表不同類別,每個標簽顯示了檢測算法判定該目標所屬的類別及屬于該類別的概率。
圖11 水下目標檢測結(jié)果Fig.11 Detection results of marine object
本文設計的海產(chǎn)品智能檢測與自主抓取系統(tǒng)經(jīng)過深入實際調(diào)研,考慮了機器人實際作業(yè)的場景,能夠在真實海洋環(huán)境中實時檢測目標,并引導機器人進行海產(chǎn)品的自主抓取作業(yè)。但是在實際抓取效率方面,搭載該系統(tǒng)的水下機器人尚未達到人工捕撈的效率。原因主要有:①水下環(huán)境異常復雜,機器人在實際作業(yè)時容易受到暗流、洋流、礁石等因素的干擾;②系統(tǒng)及機器人還存在進一步改進和完善的空間。
本文提出一種智能檢測和自主抓取系統(tǒng),用來協(xié)助機器人解決水下目標的智能檢測問題并引導機器人自主抓取海產(chǎn)品。
1)針對水下目標檢測問題,將DSOD算法應用到水下場景,利用標注的水下圖像數(shù)據(jù)集訓練檢測模型來檢測海參、海膽、扇貝等海產(chǎn)品。
2)為了計算海產(chǎn)品的實際位置,搭建了短基線定位系統(tǒng)來定位水下機器人,并通過分析相機成像坐標系與水下定位系統(tǒng)坐標系之間的關系,提出一種計算海產(chǎn)品實際位置的坐標變換方法。
3)針對水下機器人的自主運動問題,設計了一種基于反饋機制的多信號分析方法,用來引導機器人在水下移動并抓捕海產(chǎn)品。為了驗證本文算法的有效性,搭建了一款水下抓捕機器人,并成功將算法應用到機器人進行海產(chǎn)品的智能檢測和自主抓取。