申曉寧,游 璇,黃 遙,華昭杰,蔣星宇
(南京信息工程大學 自動化學院 江蘇省大氣環境與裝備技術協同創新中心 江蘇省大數據分析技術重點實驗室,江蘇 南京 210044)
目前,傳統的水產養殖仍沿用粗放式經營的方式,主要通過人工進行水樣的采集檢測、喂食、投藥和巡檢等工作。而人工水樣采集檢測時效性差、數據片面,喂食和投藥容易造成資源浪費和對水體的二次污染,人工巡檢成本過高,覆蓋范圍小。在信息化的今天,人們不斷將新的技術應用于水產養殖,希望能夠實現輔助甚至取代傳統養殖方式[1]。
目前,傳統的水產養殖系統通過結合移動互聯網、大數據、云計算、物聯網等技術,實現了結構上的升級改造,創造出了現代水產養殖新模式和新業態。例如,文獻[2]提出了利用多模自適應控制方法來解除明輪船的耦合效應,使船速超調量不超過5%,穩態誤差在3%之內。文獻[3]設計了一種無人船的在線監控設備,結合統計分析、信息融合、組態控制、嵌入式等技術,提高了水產養殖過程中的監控效率和精度。針對缺乏養殖現場信息反饋、餌料投放全憑人工判斷等缺陷,文獻[4]提出了一種智能投餌系統,能對浮餌圖像進行自動采集、識別和數量統計,并預測投放量,提高了養殖效率和效益。同時,智能化的水產養殖系統還需要繼續加強頂層設計和對關鍵技術的研究,突破資源、環境、食品安全等問題的制約,向更加現代化的方向不斷發展。
針對現有問題,本文設計了一種集通信、傳感器、云計算和圖像處理等技術的智能水產養殖無人船系統。本設計采用模塊化方案,搭載通信、定位、傳感器、圖像采集、采樣與投放等裝置,實現無人船智能規劃檢測水域的航行路線且自主巡航,客戶端實時顯示水質數據和水面圖像,遠程實現精確的采樣和投放工作,同時檢測數據云端存儲用于研究分析。
系統集航線規劃、自主航行、水質實時監測、圖像采集與檢測、投放與采樣和遠程監控與操作等功能于一體,采用三體船結構,主要分為船載系統、云服務器計算系統和客戶端系統3部分,系統總體框架如圖1所示。船載系統除了避障巡航和通信系統外,還以模塊化的方式搭載了GPS定位模塊、超聲波測距模塊、多種水質檢測傳感器、采樣與投放系統、圖像采集模塊,用于實現自主航行、水質監測、視頻監控、采樣投放等功能;云服務器主要實現數據存儲、航線規劃和圖像檢測功能;客戶端顯示監控的水面狀況和水質實時數據,并實現遠程操控。

圖1 系統總體框架
無人船采用三體船結構,船艙密封工藝,選用abs工程塑料,平穩性較好,強度高,可抗3~4級風浪。無人船采用意法半導體公司的STM32F103ZET6芯片[5]作為主控制器,該芯片具有32位處理器,256 kB的程序存儲器和64 kB的數據存儲器,完全能夠滿足本設計需要。全船采用12 V鋰電池供電,能量密度大,穩定性高,并且分別通過電壓轉換芯片LM2576-5和 LM117-3.3 為各傳感器和控制器供電,滿足不同模塊的電壓需求。
無人船的動力推進裝置由兩個無刷直流電機組成,位于船體尾部兩側,可正反轉,搭配電子調速器對電機協同控制,通過正反轉和差速控制法實現船體的轉向;選用定位模塊ATK1218-BD,AHRS模塊GY99(MPU9250)[6],實現船體姿態和位置的解算,為航向與航線的校正提供參考數據,其中ATK1218-BD為GPS-北斗雙模定位模塊,可在30 s內實現定位,精度為2.5mCEP,GY99是通過陀螺儀、加速器與磁場傳感器經過數據融合算法直接得到角度信息,分辨率為0.1°,精確率為2°,兩個模塊體積小、功耗低,能夠滿足使用需求,同時能夠實現船體姿態的監測;相較于紅外傳感器,超聲波傳感器性能更加穩定且不易受環境干擾,在無人船中軸線上的最前端和左右分別45°角加裝超聲波測距模塊,實現障礙物探測并為規避動作提供信號,超聲波傳感器測距的工作原理是發射出去的超聲波遇到物體時會反生成反射波,傳感器會接收到該反射信號,將發射和接收的時間差傳換成距離,也稱為時間差測距法,選用模塊型號為KS103,最大測程8 m,最小盲區為1 cm,精度可達3 mm,能夠滿足一般的工業需求[7]。
如圖2所示,無人船系統上電后,各模塊初始化,在客戶端設置相應的檢測位置,位置坐標數據上傳至服務器,采用禁忌搜索算法[8]實現航線規劃,將航線數據包發送給無人船控制器,控制器開始驅動電機工作,無人船以一初始角度航行,每3 m進行一次位置信息(GPS)和角度信息(電子羅盤)的讀取,并與指定航線與航向對比,計算出角度偏差,通過差速法校正無人船航向,直至無人船到達終點,完成自主巡航的任務。

圖2 巡航與避障系統工作流程
通信系統的總體框架如圖3所示,共分為無人船端、云服務器端和客戶端。從傳輸數據的內容和距離角度出發,通信系統設計方案采用第四代移動通信技術,需用型號為USR-LTE-7S4 V2的4G透傳模塊,通過串口通信與控制器STM32F103ZET6連接,主要實現控制器和服務器之間的信息交互,該模塊體能夠支持13個頻段,允許兩個網絡連接同時在線,支持TCP和UDP,支持多種工作模式,如網絡透傳模式、HTTPD模式和UDC模式,傳輸速度快,簡單可靠,不受距離限制。本系統設計的云服務器端是基于騰訊提供的云服務器CVM開發,服務器具有固定IP,保持客戶端和無人船長時間連接,接收、轉發兩者的數據,同時對數據進行存儲和處理,如航線規劃和路徑檢測,減少了無人船控制器和客戶端的工作負載,也降低了對于控制器的硬件要求,且云服務器具有彈性計算、多樣化配置、簡單可靠和安全低廉等優點。客戶端基于C#語言在VS環境下設計而成,通過英特網與云服務器連接,接收顯示服務器傳來的數據或將操作指令發送到服務器[9]。

圖3 通信系統總體框架
本設計的水質檢測系統以多種高精度傳感器為設備終端,STM32F103ZET6芯片為控制器實現數據的采集和處理。為滿足日常的檢測需求,以溫度、酸堿度、氨氮、溶解氧、濁度和電導率作為檢測要素[10],參考國家標準的水質測定法,使用由濟南智澤貿易公司提供的相關傳感器,型號和部分參數見表1。傳感器為保障檢測精度,自帶溫度補償,因此不需要專門搭載一個溫度傳感器。
無人船系統的水質檢測模塊主要由幾種常見水質檢測要素傳感器組成,根據實際檢測需求更換傳感器配置,可使系統更加靈活可靠。水質檢測系統的通信網絡基于RS485通信協議,所使用的傳感器均使用RS485通信協議并聯在一起,并與中央控制器上的RS485接口相連接,圖4為水質檢測主控制器和各個傳感器的通信結構圖。

表1 水質檢測傳感器參數

圖4 水質檢測通信結構
在水產養殖的過程中,水樣采集與物料投放屬于常規作業,本設計的采樣與投放系統結構如圖5所示。
該部分由支架(1),牽引電機(2),絞盤(3),牽引繩(4)、水泵(5)、彈簧水管(6)、托盤(7)、連倉軟管(8)、電磁閥(9)和艙體(10)組成,可通過調換彈簧水管(6)與連倉軟管(8)的接口位置切換采樣與投料工作模式。其中,牽引電機為兩相四線步進電機,線序為ABCD,步角距為1.8°,驅動模塊采用A4988驅動器[11],為精確投放深度,設置為1/4步進模式;絞盤半徑為0.06 m;水泵為無刷直流水泵,震動較小適用于船體內部,流量4 L/min。按式(1)和式(2)將需要投管的深度h和采樣或投放體量V分別轉化為步進電機和水泵的工作時間
(1)
(2)
采樣與投放系統的工作流程如圖6所示。客戶端設定相關工作參數后,將數據包發送給無人船端,無人船航行到指定作業位置后制動,步進電機釋放牽引繩,將彈簧軟管下放到指定深度,電磁閥打開,水泵開始工作,采樣或投料結束后,水泵關閉,電磁閥關閉,步進電機拖動牽引繩收回彈簧水管。本投放系統只能投放液體物料,主要應用于溶于水的化學藥劑投放,實現水質治理和病害防治。

圖6 采樣/投放工作流程
視頻采集系統主要用于水域水面環境監測,通過4G透傳模塊將畫面傳輸到客戶端,實現水面遠程監控。綜合考慮STM32F103ZET6的視頻采集能力,本系統設計單獨采用樹莓派(Raspberry pi3)[12]作為圖像采集控制器,它使用64位四核ARM Cortex-A53,雙核 Videocore IV多媒體協處理器,主要實現實時獲取攝像頭的視頻數據,然后將數據通過4G DTU模塊發送到服務器做進一步處理。視頻采集終端采用高清夜視攝像頭,視頻分辨率可達1080P,F2.0光圈高清錄像,配備夜視功能,采用H.264解碼,支持TCP通信協議,防塵防水,能夠滿足水面圖像采集標準。
本設計采用面向對象的C#語言來編寫客戶端軟件,為了高效地實現無人船數據的實時讀取和顯示,并查看參數曲線對其加以分析,VS2013集成了大量實用的類庫,該客戶端軟件即在此環境下編譯完成。根據系統的軟件設計任務要求,采用模塊化的軟件設計理念,設計主要包括TCP/IP通信模塊、實時數據顯示模塊、視頻監控模塊等。客戶端主界面如圖7所示。

圖7 客戶端界面
在圖7主界面中,左側通過菜單欄可切換功能,右上角為操控指令區,實現采樣投放、視頻采集等操控,右下方為攝像頭采集水面畫面顯示。圖7(a)為開啟自主巡航功能時的主界面,界面左側顯示的是航線軌跡圖;圖7(b)為水質監測時的主界面,此時界面左側為各項水質監測指標的曲線圖,右側顯示的是水質信息的實時數據。
1986年,美國系統學家Glover提出了禁忌搜索算法[13](Tabu Search或Taboo Search,TS),它是一種廣義的局部搜索算法,其中的禁忌技術高度模擬了人類大腦的“記憶力機制”,具有較強的“爬山能力”,不易早熟收斂,已經被廣泛應用于生產調度[14]、公交網絡[15]、電網輸電[16]和電路印刷[17]等領域。基于禁忌搜索算法的航線規劃系統主要是在云服務器內完成,如圖8所示,在客戶端設置好相應的檢測點,檢測點的位置信息,轉化為坐標信息,然后發送至服務器,利用禁忌搜索算法進行航線規劃,該算法首先用隨機法生成初始解(初始航線),然后采用2-opt法生成若干組鄰域解(鄰域航線),根據航線長度選出一部分作為候選解(候選航線),如果最優候選解優于當前解(當前航線),則最優候選解替代當前解,且進入禁忌表,取代最先進入禁忌表的解,否則在非禁忌的候選解中選最優解取代當前解并進入禁忌表,重復以上迭代計算直到完成相應的迭代次數[18]。

圖8 禁忌搜索航線規劃流程
機器視覺是人工智能一個開速發展的分支,簡單說,就是用機器對于圖像的捕捉和處理來替代人的視覺系統做測量和判斷。深度學習(DL)是機器學習的一種,它們都是通過建立模型將特定的現實問題轉化為數學模型,并解決相似問題的方法。深度學習沿用人工神經網絡(artificial neural network,ANN)的理論,通過建立模型,構造復雜、多層的神經網絡,模擬人腦的機制對文本、圖像、聲音等數據進行處理和學習,因此深度學習又稱為深層神經網絡(deep neural networks,DNN)。本系統設計采用Mask R-CNN網絡[19]對圖像內的目標進行檢測與分類,此網絡由Facebook 人工智能小組提出,是一種簡單靈活、通用性強的目標實例分割框架。它在Faster R-CNN[20]邊界框識別分支的基礎上添加了一個并行的分支,用來預測目標掩碼,因此每個實例都能生成一個高質量的分割掩碼,每個實例中同時出現的目標能被有效地檢測到,其網絡結構如圖9所示。綜合圖像處理速度和精確度考慮,Mask R-CNN網絡無疑是一種比較合適的選擇。

圖9 Mask R-CNN網絡結構
本系統搭建完成后進行功能測試,選取校園內一人工湖作為測試水域,天氣陰天,風3~4級,無強光。
無人船下水后,首先按照手動操作指令運行,分別操控無人船完成直線航行、轉向、制動漂浮、水質檢測、手動操做采樣和視頻采集開關等指令,發現無人船能夠具備基本的通信與航行功能,并將航行軌跡和檢測數據發送到客戶端顯示出來;然后切換自動工作模式,在客戶端設定巡航軌跡、水質檢測位置、采樣位置、深度、容量,發現無人船直線航速可達50 m/min,控制系統指令傳輸平均時延為300 ms,當開啟視頻采集模式時時延有所增加,約為500 ms,測算檢測位置、采樣位置和返航位置的設定坐標和實際航行位置,在空曠水域定位偏差約為2CEP,測量采樣投放系統中牽引繩入水深度和艙體實際采樣體積,投放深度誤差約為5%,采樣容量誤差約為8%;最后將無人船航行到水域某點后切斷通信,無人船在30 s內無法重新連接后,按照出發路線返航,返航成功。經測試,本系統的操作、通信、檢測、巡航等基本功能都能正常運行,且滿足設計需求。
基于禁忌搜索算法的航線規劃系統,依托云服務器進行計算,首先將在地圖上選取的檢測點經緯度信息轉換成二維坐標信息,將坐標輸入算法中,規劃出一天航線后,將航線坐標信息解碼成經緯度參數發給無人船。此處采用MATLAB軟件進行仿真,在一個200 m*200 m的水域,隨機選取15個監測點,坐標信息為[131 43;142 31;161 135;78 41;98 114;20 85;97 96;191 192;100 143;80 0;167 116;11 174;74 176;125 97;85 57],設坐標中為0或者200的為岸邊,經過仿真,航線規劃如圖10(a)所示,從坐標(80,0)位置出發,巡航所有監測點后返回出發位置;航線規劃過程如圖10(b)所示,初始隨機生成的一條搜索航線總長度為1514.3 m,經過禁忌搜索法迭代到第86次時,最優規劃航線的總長度僅為780.069 m,節省48.47%的里程,仿真用時約6 s,滿足計算需求,同時對于無人船的續航和工作能力的增加有著重要意義。

圖10 基于禁忌搜索算法的航線規劃
基于深度學習算法的圖像檢測對于硬件上設備具有一定的要求,本系統采用云服務器作為算法運行的載體,極大地減輕了客戶端主機和圖像采集控制器的負載和成本。圖11(a)為水面單個物體檢測,且能夠將水中的建筑物與漂浮物進行區分;圖11(b)為多物體檢測,能夠準確識別水面的漂浮物。雖然當檢測算法運行時,圖像存在掉幀情況,但是能夠維持8幀左右,能夠滿足日常水面巡檢工作。
水質檢測部分是整個系統的重要組成,本次測試在校園內的人工湖進行實地測試。在檢測時選取5個檢測點,分別用無人船水質監測系統和便攜式水質檢測儀進行水質檢測,無人船系統的檢測數據與便攜式水質檢測儀數據的差值的絕對值見表2,其中無人船檢測的數據,為每5 s檢測一次,取5次的平均值。
利用表2數據,用測量的絕對誤差最大值除以量程可以計算出每種傳感器的引用誤差。根據《GBT 13283-2008工業過程測量和控制用檢測儀表和顯示儀表精確度等級》[21],我國儀表精度等級依據引用誤差值劃分為0.1,0.2,0.5,1.0,1.5,2.5,5.0這7個等級,由表2數據中的引用誤差,可知傳感器的等級分別為Ⅳ(1.0),Ⅲ(0.5),Ⅱ(0.2),Ⅰ(0.1),Ⅲ(0.5),Ⅰ(0.1),綜上可知無人船水質檢測部分的檢測精度誤差能夠滿足常規的檢測要求,其中無人船航行對水流的影響會引起溫度、溶解氧和濁度的變化,測量存在一定誤差。

圖11 水面漂浮物檢測測試結果
本文介紹了傳統水產養殖系統和現代水產養殖技術的發展現狀與不足,并針對現存的問題提出了一種模塊化的智能水產養殖無人船系統,能夠完成自主巡航、水質監測、實時監控、遠程控制、采樣投料等任務。通過對各個功能和模塊進行測試和實驗,結果表明,本文設計的智能水產養殖無人船系統能夠實現航線規劃與自主巡航,對當前水域的水質和水面狀況進行實時監測,各傳感器的精度符合國家標準要求,并能通過遠程控制實施精準的物料投放,此外,無人船航行的路線及位置、水質監測的詳細參數和水面的圖像畫面都能夠通過客戶端軟件顯示出來,監測數據可通過云端進行保存。

表2 水質檢測誤差值
與傳統的水產養殖系統相比,本文提出的無人船系統降低了水產養殖行業的勞動作業強度和人力成本,通過對養殖過程的實時監測和精準的物料投放,有效改善了水體環境,大大降低了水產養殖行業的風險系數,提高了生產效率,同時也便于操作人員的規范管理。利用云服務器將養殖過程中產生的數據收集起來,進行整合、挖掘后變成有價值的信息,不僅可以用于科研技術的進一步研究,還可以為經營主體提供決策支持和行業服務,有利于政府進行大數據管理和科學化監管。
本設計完成了系統各模塊的硬件及軟件設計目標,經檢測達到了預期指標要求。但是,仍然還有一些有待改進加強的地方。
(1)由于船體的限制,僅能搭載少量檢測傳感器,需要對船體進一步設計提高其負載能力,針對實際需求加載其它設備,如魚群探測傳感器,水域地形探測傳裝備等。
(2)將檢測對象擴展到三維水體空間,研究追蹤定位養殖環境中污染源的方法,根據檢測數據追溯污染源。
(3)構建相關數據庫,收集水域水質和養殖數據,繪制相關狀況分布圖。
(4)進一步開發圖像采集模塊,將機器視覺應用于巡航避障,即采用雙目攝像頭實現對檢測到障礙物進行空間信息解算。