徐鳳強,董鵬,王輝兵,付先平
(大連海事大學 信息科學技術學院,大連116026)
利用水下機器人智能檢測和自主抓取海產品成為當前海產養殖業的迫切需要,這是建立現代化海洋牧場的重要途徑。目前,海參、扇貝等海產品的捕撈主要依靠潛水員和拖網船2種方式。潛水員不能在水下持續作業,并且受水下壓強影響,常年從事水下捕撈工作的漁民容易得潛水病。大面積養殖的貝類主要依靠拖網船捕撈,但是這種拖網捕撈方式容易破壞水下生態環境。而水下敏捷機器人能夠克服這些問題,因此,利用水下機器人進行海產品的捕撈成為當下研究的熱點。
目前,水下敏捷機器人的研究大多集中在水下觀測和水下探測等方面,而水下抓捕機器人的研究成果卻很少。僅有的水下抓捕機器人也仍然停留在依靠人工操控進行抓取作業的層面,而自主抓取機器人更加難以實現。造成這種研究困境的原因為:①復雜的水下環境對機器人部件的防水性和氣密性等要求極高,市場缺乏成熟的適用于水下機器人的各種配件;②缺乏服務于水下機器人的智能檢測與自主抓取系統。
因此,本文提出了一種智能檢測與自主抓取系統,用來與機器人協同作業,引導機器人在脫離人工操控的情況下,實現對海產品的智能檢測及自主抓取操作。該系統主要解決水下目標的檢測問題和機器人的水下運動問題,這是實現機器人自主抓取目標必須解決的2個關鍵問題。
針對水下目標檢測問題,將目前比較流行的深度學習算法引入到水下識別場景中,來提高水下目標檢測效果。由于光在水下的折射及散射作用,導致相機拍攝的圖像呈現模糊、偏色、光線偏暗等現象。傳統的圖像檢測方法對于水下圖像的處理效果并不理想。鑒于深度學習在各個領域的應用都取得了非常好的效果,本文將目前效果比較好的DSOD(Deeply Supervised Object Detector)[1]應用到水下目標檢測任務,利用標注的水下圖像數據集訓練網絡模型,檢測海參、扇貝、海膽等水下目標。
對于機器人的水下運動問題,本文提出了基于反饋機制的多信號分析方法,通過獲取海產品位置信息、機器人定位信息、機器人深度等信號進行分析,得出機器人下一步的運動方案并反饋給機器人,從而引導其在水下尋找海產品并抓取目標。為了定位機器人在水下的位置,搭建了短基線定位系統[2]。利用聲波信號在接收器和定位器之間的傳播,計算機器人在定位系統中的位置。通過分析相機成像坐標系與定位系統坐標系之間的關系,提出了一種坐標轉換方法,將海產品的檢測位置坐標轉換到定位系統坐標系,進而控制機器人向目標位置移動。機器人的深度信息在機器人下潛運動中起到重要作用。
為了驗證本文系統的有效性,搭建了一個水下抓捕機器人,將本文算法應用到機器人上,引導其在水下完成海產品的智能檢測及自主抓取工作。
本文的主要貢獻如下:①將DSOD檢測算法應用到水下場景,解決水下目標檢測問題;②提出了一種坐標轉換方法,可以將檢測目標的位置坐標轉換到定位系統坐標系;③設計了一種基于反饋機制的多信號分析方法,引導機器人自動檢測目標并完成自主抓取操作。
目標檢測是計算機視覺領域的一個研究熱點,其不僅需要區分目標的種類,還要精確地定位到目標的包圍框。與傳統的目標檢測算法相比,基于深度學習的目標檢測算法顯著提高了目標檢測的準確率。依據是否需要提取候選區域,可以將基于卷積神經網絡(CNN)的目標檢測算法分為2類:基于候選區域的目標檢測算法和基于回歸的目標檢測算法[1]。
基于候選區域的目標檢測算法先從整幅圖像提取候選區域,再利用候選區域進行分類和回歸,得到檢測結果。Girshick等[3]提出了候選區域與卷積神經網絡相結合的方法R-CNN,檢測效果提升明顯,但是存在大量的重復計算。因此,Girshick[4]提出了一個更加高效的深度卷積網絡Fast R-CNN,提高了檢測效率。Ren等[5]進一步提出了RPN(Region Proposal Network),實現卷積特征的共享,降低網絡訓練的資源消耗。在以上算法基礎上改進的網絡,如Mask R-CNN[6]、R-FCN[7]等也取得了很好的檢測效果。
基于回歸的目標檢測算法摒棄了候選區域提取操作,是一種端到端的目標檢測算法,如YOLO[8]、SSD[9]、DSSD[10]、DSOD[1]等。這類算法把目標檢測看成一個回歸問題,直接利用神經網絡從整幅圖上檢測并定位目標,檢測速度較快,但是檢測效果稍遜一籌。
當前主流目標檢測算法主要集中解決陸地場景問題[11],本文將基于卷積神經網絡的目標檢測算法引入水下場景進行水下目標檢測。綜合考慮算法的檢測速度和準確率,選擇DSOD作為檢測網絡。
目前,比較成熟的定位技術主要基于無線電波和聲波傳輸實現。無線電波在水下傳輸時,由于衰減迅速,導致定位不準確。而水聲定位技術可以克服這一缺點,實現水下穩定傳輸。近年來,基于水聲定位的水下機器人定位技術引起了廣泛的研究。根據聲學基線之間的距離,可以把聲學定位系統分為3類:長基線定位(LBL,基線長度100~6 000 m,甚至有時超過6 000 m)、短基線定位(SBL,基線長度20~50 m)和超短基線定位(USBL,基線長度小于10 cm)[2]。楊放瓊等[12]利用傳統的長基線定位系統,實現了深海采礦ROV的精確定位。佛羅里達大西洋大學海洋工程系和海軍研究所在AUV上裝備了短基線定位系統,用來在偵察任務中進行導航[13]。Mandic'等[14]描述了利用超短基線定位與聲吶圖像測量追蹤水下目標的技術發展。由于長基線定位系統復雜且昂貴,超短基線定位系統校準困難,本文采用短基線定位搭建機器人的水下定位系統。
常用的水下目標定位方法有3種:基于單目的目標定位、基于雙目或者多目的目標定位及基于多傳感器融合的目標定位[15-18]。Marani等[15]通過曲線擬合得到球體目標的圓形輪廓,結合已知的球形半徑信息就可以進行目標的三維定位。Zannatha等[16]利用Canny邊緣檢測算子提取目標的邊緣,利用相似三角形原理完成了機器人的目標定位。Lee等[17]為ROV的2個機械手開發了雙目定位視覺系統,采用2個攝像機對目標進行三維定位,協助2臺機械手協同工作。Zhang等[18]研究了利用激光傳感器與攝像機相結合的三維定位方法,通過相機的焦距等參數,完成水下球體目標的三維定位。本文采用多傳感器融合的目標定位方式,利用聲吶獲取到機器人距離地面的參數,配合相機獲取目標物三維坐標。
水下機器人的目標檢測任務描述為:水下機器人潛入水中航行,并通過搭載的水下相機實時捕捉視頻圖像;利用檢測算法對生成的圖像進行實時檢測,得到圖像中目標的類別及其在圖像中的包圍框坐標信息;檢測結果反饋給機器人。
由于光在水下的折射和散射作用,導致水下成像存在偏色、模糊等問題,這些問題直接影響水下圖像特征提取的豐富程度,導致目標檢測精度降低。而卷積神經網絡在圖像特征提取方面優勢明顯,因此,本文將卷積神經網絡引入到水下場景來解決水下目標檢測問題。通過對比當下主流的目標檢測算法,本文采用檢測速度相對較快且檢測效果最好的DSOD檢測算法進行水下目標檢測。
DSOD是一個端到端的多尺度檢測模型,其不需要提取候選框,也不需要預訓練過程,能夠從頭開始訓練模型,并達到很好的檢測效果。DSOD的網絡結構主要分為2部分:用于特征提取的主干網絡和多尺度預測網絡。
主干網絡是DenseNet網絡的一個變體,其由1個主干網絡、4個密集塊、2個轉換層和2個轉換池化層組成。主干網絡包括3個3×3卷積層和1個2×2最大池化層,這種結構可以減少原始輸入圖像的信息丟失。密集塊中所有前面的層都會連接到當前層,其優勢是后面的層可以接受前面網絡層的監督信息。每個轉換層都包含一個池化操作,用于對特征圖進行下采樣。而轉換池化層可以在不降低特征圖分辨率的情況下增加密集塊的數量。
預測網絡利用精細的密集結構來融合多尺度的預測響應。輸入圖像經過DSOD網絡可以提取出6個不同尺度的特征圖做預測。從第2個特征圖到第6個特征圖,每一個特征圖有一半的特征是從上一個特征圖學到,而剩下的一半特征是對連續的高分辨率特征圖進行下采樣得到。這種預測結構可以用較少的參數產生更精確的結果,甚至對圖像中的小目標也能產生很好的檢測效果。
DSOD網絡結構及模型訓練過程如圖1所示。先利用水下圖像數據集從頭開始訓練DSOD模型,經過反復迭代訓練,可以得到一個效果比較好的網絡模型,該模型能夠產生穩定的參數,滿足目標檢測的性能要求。訓練好的網絡模型集成到水下機器人的檢測算法中,利用機器人實時檢測水下目標,并產生目標類別信息及包圍框位置坐標,這些檢測信息將進一步影響機器人的水下運動情況。

圖1 卷積神經網絡模型的訓練和水下目標實時檢測Fig.1 CNN model training and real-time marine object detection
水下目標定位是一個非常復雜的工作。首先,利用檢測算法通過相機檢測目標;然后,利用短基線定位系統定位機器人;最后,將目標坐標從相機成像坐標系轉換到機器人世界坐標系,再從機器人世界坐標系轉換到短基線定位系統的坐標系。通過分析不同坐標系之間的關系,本文提出了一種坐標轉換方法來計算目標物在定位系統中的實際位置坐標。
短基線定位系統是一種經典的水下定位技術,其采集各個陣元接收到發射器發射信號的時間延遲,通過數學方程獲取發射器相對于基陣坐標系的三維坐標。
如圖2所示,4個陣元分別位于A、B、C、O,目標P與各陣元之間的距離為

式中:Ri為各陣元與發射器之間的距離;(xi,yi,zi)為短基線陣元i的位置坐標;(x,y,z)為搭載發射器的水下機器人的坐標。
目標P與各陣元之間通過水聲傳播的距離表達式為

式中:c為聲音在水中的傳播速度;t為短基線定位系統地面站發送詢問信號的時刻;ti為短基線定位系統各陣元接收到信號的時刻;Δt為短基線定位系統內的延時時間。

圖2 水聲定位幾何原理Fig.2 Geometric principle of underwater sound positioning
聯立式(1)和式(2)得到

將目標P與陣元坐標代入式(3)可以得到一個方程組,該方程組有4個未知量,因此,利用4個方程可以得到位置(x,y,z)和時延Δt。
本文搭建的短基線定位系統如圖3所示。圖中:zo為機器人相對于地面的高度。將發射器集成到水下機器人上,作為發出信號的信標。在水面附近,放置4個短基線陣元,短基線陣元作為接收器監聽發射器發出的信號。定位系統通過計算發射器發出信號到每個短基線陣元接收到信號的時間差來計算攜帶發射器的機器人的位置。

圖3 機器人與目標在定位系統中的位置關系Fig.3 Relative location of robot and target in positioning system
水下定位系統搭建成功后,通過分析相機成像坐標系與機器人世界坐標系之間的關系,以及機器人世界坐標系與定位系統坐標系之間的關系,可以將目標坐標從相機成像坐標系經由機器人世界坐標系轉換到定位系統坐標系,具體計算過程如下:
1)利用DSOD檢測算法檢測水下目標在相機成像坐標系中的坐標(u,v)。
2)通過聲吶獲取機器人距離地面的高度zo。
3)通過相機內參矩陣及高度zo將目標從相機成像坐標系轉換為機器人世界坐標系,進而計算出物體在機器人世界坐標系中的實際位置。
相機的內參矩陣定義為

式中:f為相機的焦距;d x、d y為像元尺寸;(u0,v0)為圖像中心像素坐標;(xo,yo,zo)為目標在機器人世界坐標系的實際位置。由此計算出(xo,yo,zo),即

4)通過短基線定位系統獲取機器人在定位系統坐標系中的坐標F(x,y,z)。
5)根據機器人世界坐標系與定位系統坐標系之間的關系,將目標坐標轉換到定位系統坐標系。如圖4所示,XOY表示短基線定位系統坐標系,MFN表示機器人世界坐標系,α為2個坐標系之間的夾角。F為機器人在短基線定位系統坐標系中的坐標,T為目標在機器人世界坐標系中的坐標。
根據2個坐標系之間的角度關系,可以得出坐標轉換表達式為

圖4 機器人世界坐標系和定位系統坐標系的關系Fig.4 Relation between robot world coordinate system and positioning system coordinate system

式中:(x,y,z)為機器人的坐標;(xf,yf,zf)為目標物體T在定位系統中的坐標。
水下機器人的自主運動是實現自主抓取的前提和關鍵,其目的在于檢測并接近水下目標,最終進行抓取。機器人需要綜合考慮當前所處環境,做出合理的運動選擇。水下環境的不確定性和復雜性給機器人自主運動問題帶來了巨大挑戰。
機器人利用水下定位系統探測目標的運動軌跡,如圖5所示。利用水下定位系統規劃機器人的運動區域,運動區域的邊界附近代表警示區域。機器人從出發區開始,尋找水下目標。機器人的水平運動有3種策略:左轉、右轉和直行,不同的軌跡顏色表示從起點出發的不同運動策略。當機器人進入警示區域時,需要調整運動路線,遠離警示區域并繼續移動,直到檢測到目標為止。當機器人檢測到目標時,需要控制機器人繼續靠近目標方向,直到到達機械手可操作的行程范圍,利用機械手抓取水下目標。
根據以上分析,本文提出了一種基于反饋機制的多信號分析方法,如圖6所示。該方法通過收集機器人的定位信息、深度信息,以及利用目標檢測結果信息,對機器人的運動狀態進行綜合分析,得出最終的移動方案,并將最終決策信號反饋給水下機器人,引導機器人繼續運動。

圖5 水下機器人在限制區域內的運動軌跡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所示。首先,通過短基線定位系統獲得機器人的位置信息,并判斷機器人是否駛入運動區域的限制區域。如果機器人已經進入限制區域,則控制機器人向左前方運動,直到遠離限制區域。然后,獲取目標檢測算法對當前機器人視覺區域的目標檢測結果,如果當前視覺區域沒有目標,則控制機器人向正前方運動;否則,根據檢測結果的目標分布情況,判斷機器人應該向正前方、左前方或右前方運動。根據目標定位算法可以進一步計算出目標在水下定位系統中的位置,從而精確機器人的移動方向。最后,利用機器人搭載的聲吶向海底發射脈沖信號,根據響應時間計算距離海底的深度信息,判斷機器人能否繼續下潛。如果可以繼續下潛,則機器人除了水平方向的運動之外還應該伴隨下潛運動,即機器人應該向正前下、左前下或右前下的方向運動。多信號分析方法的決策結果會及時反饋給機器人并控制機器人的下一步運動,而機器人完成一次運動操作后會繼續利用多信號分析方法獲取下一次移動方案。
目標檢測結果除了用來計算目標在水下定位系統中的位置坐標之外,本文還定義了一種通信協議,用來幫助機器人理解目標在當前視野中的分布情況。如圖8所示,將圖像分為9個區域。根據檢測結果,可以分別統計每個區域內各個類別的目標數目,并將統計結果按照順序拼接成檢測信號發送給機器人,該檢測信號可以幫助機器人分析朝哪個方向運動更接近目標。

圖8 檢測模塊和機器人之間的通信協議Fig.8 Communication protocol between detection module and robot
為了驗證本文算法,設計和開發了一款水下抓取機器人,將算法應用到機器人上,實現機器人的智能檢測和自主抓取。

圖9 水下機器人組成結構Fig.9 Underwater robot composition structure
水下敏捷機器人的自主抓取研發需要解決許多水下運行環境所帶來的問題。如圖9所示,本文設計的機器人是一款6推進器的ROV,其搭載了3個亞克力艙室作為電子部件的防水處理,1個作為主艙保護樹莓派、Pixhawk控制板等核心電子器件,2個作為電池倉放置電壓供電模塊。由于海水腐蝕性很強,選擇具有防腐蝕性的工業鋁搭建機器人主體框架。
Pixhawk控制板主要用來收集并處理機器人各部件發出的信號,樹莓派是機器人的通信中心。6個推進器協調工作實現機器人的上浮、下潛、左右滑動及轉向控制。由于水下能見度低,為了提高圖像采集的質量,選用4 K高清水下相機,并搭載亮度可調的水下光源作為補充。
水下機器人在水下作業需要克服重力影響,本文機器人通過亞克力艙室及浮力塊提供的浮力來維持自身平衡,與水面供電及信號通信的電纜都選用零浮力線纜。
水下定位系統的4個接收器搭建在水面,發射器搭載到機器人上,發射器與接收器之間通過發射脈沖信號通信。聲吶安裝在機器人的底部中心位置,豎直向下發射聲波信號。
為了抓取海產品,設計了一款二自由度的機械手,搭載在機器人的前方。機械手一組完整的抓取動作如圖10所示。
本文設計的機器人經過反復水下實驗,已經能夠在真實海洋環境中實現海產品的自主抓取。
對于基于卷積神經網絡的目標檢測任務,數據集的選取非常重要。Imagenet、COCO、Pascal VOC等公共數據集,體積龐大,雖然種類豐富,但是扇貝、海參、海膽等海產品的圖片數量并不充足。因此,筆者標注了水下圖像數據集用于訓練檢測網絡,數據集包含海參、海膽、扇貝3類海產品共29 500張圖片。
本文目標檢測算法在caffe框架上實現,實驗環境使用Nvidia Geforce GTX 1080 TI GPU、Cudnn v5.1及Intel Core i7-6700k@4.00 GHz。初始學習率設置為0.1,每迭代20 000次學習率降低10%,迭代100 000次停止訓練。經過多次訓練,本文目標檢測算法可以在水下圖像數據集上獲得81.2%的準確率。
目前,比較主流的檢測算法在水下圖像數據集上的檢測效果對比如表1所示。SSD300[9]、YoLov3[19]、DSOD[1]的 檢 測 速 度 都 能 夠 達 到10幀/s以 上,其 中 YoLov3[19]檢 測 速 度 最 快,DSOD[1]的檢測效果最好。

圖10 機器人完整的抓取動作Fig.10 Robot's complete capture action

表1 水下圖像數據集檢測結果對比Table 1 Comparison of detection results on underwater image dataset
對于現階段的水下自主抓取機器人,10幀/s以上的處理速度已經能夠滿足實際作業要求,為了追求更高的目標檢測準確率,選擇DSOD作為本文系統的檢測算法。DSOD目標檢測的部分效果如圖11所示,圖中不同顏色的標簽代表不同類別,每個標簽顯示了檢測算法判定該目標所屬的類別及屬于該類別的概率。

圖11 水下目標檢測結果Fig.11 Detection results of marine object
本文設計的海產品智能檢測與自主抓取系統經過深入實際調研,考慮了機器人實際作業的場景,能夠在真實海洋環境中實時檢測目標,并引導機器人進行海產品的自主抓取作業。但是在實際抓取效率方面,搭載該系統的水下機器人尚未達到人工捕撈的效率。原因主要有:①水下環境異常復雜,機器人在實際作業時容易受到暗流、洋流、礁石等因素的干擾;②系統及機器人還存在進一步改進和完善的空間。
本文提出一種智能檢測和自主抓取系統,用來協助機器人解決水下目標的智能檢測問題并引導機器人自主抓取海產品。
1)針對水下目標檢測問題,將DSOD算法應用到水下場景,利用標注的水下圖像數據集訓練檢測模型來檢測海參、海膽、扇貝等海產品。
2)為了計算海產品的實際位置,搭建了短基線定位系統來定位水下機器人,并通過分析相機成像坐標系與水下定位系統坐標系之間的關系,提出一種計算海產品實際位置的坐標變換方法。
3)針對水下機器人的自主運動問題,設計了一種基于反饋機制的多信號分析方法,用來引導機器人在水下移動并抓捕海產品。為了驗證本文算法的有效性,搭建了一款水下抓捕機器人,并成功將算法應用到機器人進行海產品的智能檢測和自主抓取。