朱立學,莫冬炎,官金炫,張世昂,王梓穎,黃偉鋒
(1.仲愷農業工程學院機電工程學院,廣州市,510225; 2.廣東省林果機器人共性關鍵技術研發創新團隊,廣州市,510225; 3.廣東中煙工業有限責任公司湛江卷煙廠,廣東湛江,524000; 4.梅州市金綠現代農業發展有限公司,廣東梅州,514000; 5.仲愷農業工程學院自動化學院,廣州市,510225)
肉鴿擁有肉質美味、有益健康、容易飼養且經濟價值高等諸多優點,深受消費者喜愛。龐大的市場需求推動了我國鴿產業的快速發展,但當前肉鴿生產中的喂料、清糞等環節幾乎都由飼養員手工完成,程序繁雜,勞動生產效率低;且肉鴿的生產值和生產指標依靠飼養員的經驗,若飼養員經驗不足會導致種鴿經濟值下降[1-3]。近年來,肉鴿飼喂機器人、肉鴿養殖場清糞機器人等有越來越多的國內外學者進行研究,機器人自主導航是飼喂、清糞等環節自動化作業的基礎和核心[4-5]。
目前,研究人員在室內語義分割路徑識別方面展開了大量研究,但是在環境惡劣的肉鴿養殖場自主導航方面相關研究仍然缺乏[6-10]。室內路徑識別方面已有較多的研究成果,例如王行風等[11]基于內部空間感知規律和層次認知的方法,動態構建和優化室內單元認知分層和編碼以解決室內導航自主尋徑的問題。Padhy等[12]針對無人機在室內無GPS信號的情況,利用基于DenseNet卷積神經網絡的視覺系統進行導航,該方法主要是對無人機的航向進行分類,以指導無人機在室內飛行。Sato等[13]針對離散時間一階提出一種PID控制系統設計方法,提出的設計方法已擴展為自適應控制,可以很好地控制農機在未知或時變的復雜路徑自主導航。季宇寒等[14]基于激光雷達設計了巡檢機器人導航系統,可實現機器人在室內環境下的精準定位、路徑規劃和自主導航,試驗結果表明,在1 m/s的速度下,位置與航向偏差的平均絕對誤差MAE分別小于5 cm和1.1°,標準差SD分別小于5 cm和1.5°。
在肉鴿養殖場中,由于有鴿毛、鴿糞的遮擋加上陽光強度多變的道路環境,用傳統的圖像處理方法較難穩定實時地生成道路信息。為此,本文提出一種基于U-Net的肉鴿養殖場視覺導航路徑識別系統,采用標圖軟件制作道路數據集、采用全卷積神經網絡訓練數據集,生成語義分割模型;對分割圖像進行二值化方便獲取掩碼區域獲取邊緣點像素坐標,采用等比例導航法生成擬合導航點,最后通過最小二乘法曲線擬合生成所需的導航線。
肉鴿養殖場大多采用半封閉式結構,棚頂采用鐵皮鋪設,四周鏤空或者采用透明塑料布進行遮擋,隨著陽光的變化,道路容易出現陰影、強光、弱光、局部光斑等情況;除了外界的影響,鴿毛、鴿糞的堆積也會使得道路出現陰影殘塊。因此,設計一套基于深度學習的視覺導航系統是實現肉鴿養殖場機械化作業的基礎。
FCN、PSP-Net、U-Net等是常用的經典語義分割算法[15-16]。FCN是Long等[17]在2015年提出,第一次實現基于深度學習的語義分割網絡任意圖片大小輸入,FCN首先進行卷積化再通過反卷積進行上采樣,最后通過跳躍結構將所有的池化結果融合在一起,實現分割。但FCN也有明顯的缺點,上采樣過程不夠精細、對輸入圖像細節的處理不夠敏感,跳躍結構忽略了像素之間的關系、缺乏空間一致性,導致分割精度低。PSP-Net網絡主要使用了殘缺網絡、空洞卷積以及降維卷積,其核心是空間金字塔模塊,通過該模塊可以更加有效地提取圖片的局部和全局信息,彌補了FCN網絡的中像素類別易誤分割的問題,但PSP-Net網絡忽略了整體的場景信息。Ronneberger等[18]在MICCAI會議(2015年)上提出了U-Net網絡,U-Net網絡有效地融合了圖像隱藏的多層細節信息和表明環境信息,能夠實現精準分割,故被廣泛應用在圖像處理問題中。U-Net網絡結構如圖1所示,網絡總體上采用U型上下采樣結構及編碼解碼結構,左邊為編碼部分,右邊為解碼部分。編碼部分由4個下采樣模塊組成,每個輸入圖像大小為(512,512,3),經過5次3×3卷積和4次最大池化2×2得到[256,256,64]、[128,128,128]、[64,64,256]、[32,32,512]、[32,32,512]共5個有效特征層。解碼部分由4個上采樣模塊組成,編碼部分得到的5個有效特征層用于特征融合,在進行特征融合時先進行雙采樣以便于網絡構建和更好的通用性,最后得到的輸出的分割圖像和輸入圖片的高寬相同。在預測結果時,利用1×1卷積將通道數調整為2。

圖1 U-Net網絡結構
本文將上述3種網絡在相同的肉鴿養殖場內進行路徑數據集訓練,將訓練所得的模型分別應用于養殖場道路分割,通過對比3種網絡模型訓練的準確率、交并比、召回率以及路徑的實際分割效果,選出分割效果最佳的U-Net網絡。
1.2.1 邊緣點坐標提取
肉鴿養殖場道路通過語義分割網絡得到的分割圖像大多呈不規則三角形形狀,道路的分割效果凹凸不平、掩碼區域斷層,本文用逐行掃描法能夠準確提取路徑左右兩側的邊緣點像素坐標,由邊緣點像素坐標可得到導航線,再通過最小二乘法擬合成導航線,導航點提取流程如下。
1) 圖像二值化處理。對語義分割后的圖像進行二值化處理,黑色的RGB為(0,0,0),紅色的RGB為(255,0,0),道路可行區域為紅色,其他區域為黑色背景。
2) 邊緣點提取。如圖2所示,取圖像下沿左頂點為掃描的起點,從左往右進行掃描,當像素點的閾值小于180時輸出為1,閾值大于180時輸出為2。在一行的掃描中,如果某兩個相鄰像素點的輸出從1變為2,則認為該點為掩碼區域的左邊緣點;當某兩個相鄰的像素點的輸出從2變為1,則認為該點為掩碼區域的右邊緣點。

圖2 邊緣點提取流程圖
1.2.2 等比例導航點獲取方法
傳統的導航點獲取是根據兩側邊緣點求中點,但根據肉鴿養殖場自主作業的要求,機器人底盤若以中線為導航線,在飼喂時會碰撞到鴿籠。肉鴿養殖場道路寬1 m,底盤寬0.7 m,底盤前進方向需偏左前進,右輪距離鴿籠的距離要大于0.2 cm,所以本文提出一種等比例導航點獲取法以保證底盤偏左穩定導航,底盤中線實際偏離道路中線的距離可以取等比例的分割圖像導航點到兩側邊緣中點的像素距離。
(1)

(2)
y3=y2=y1
(3)
式中:k——等比例系數;
d——道路寬度;
x——向左偏的距離;
(x1,y1)——左側邊緣信息點坐標;
(x2,y2)——右側邊緣信息點坐標;
(x3,y3)——導航點坐標。
掩碼區域和擬合導航點生成的效果圖如圖3所示。

圖3 養殖場道路識別
從圖3中可以看出,本文提出的掩碼區域邊緣信息提取方法對肉鴿養殖場道路路況有著較好的適應性和可行性,可生成與道路邊緣弧度相適應的擬合導航點。為了提高導航的魯棒性,需要選擇合適的直線擬合算法對擬合導航點進行擬合形成導航線。最小二乘法直線擬合可以快速求得未知數據,且所求得的未知數據與真實數據的均方誤差最小[19-20]。
1.2.3 基于最小二乘法的導航路徑擬合算法
在有陽光的情況下,道路盡頭會出現反光或逆光導致邊緣信息提取不正確,為此,本文采用半導航線方法,只對分割圖像的下半部分擬合點采用最小二乘法擬合導航線。
假設一張圖片得到N個擬合點數據(xi,yi),i=1,2,3…,N,擬合點yi的偏差的加權平方和最小,即式(4)的值最小,如式(4)所示。
(4)
式中:a——截距即y和豎軸的交點縱坐標;
b——斜率。
式(4)中分別對未知量a、b求偏導,如式(5)所示。
(5)
解方程組得到a、b的最佳估計值,如式(6)所示。
(6)
相關系數r的定義如式(7)所示。
(7)

基于上述公式推導,對肉鴿養殖場擬合導航點進行最小二乘法直線擬合,生成肉鴿養殖場導航路徑。根據最小二乘法直線擬合原理可得,當擬合效果越好時相關系數r的絕對值趨向于1,導航精度相對越高。若r的絕對值趨向于0,說明擬合的直線相關性不大,擬合無意義,導航精度低。
為了測試本文提出的等比例導航方法在環境惡劣的肉鴿養殖場具有穩定性、準確性以及魯棒性,分別進行了網絡模型訓練和自主導航試驗。
肉鴿養殖場機器人自主導航試驗在廣東梅州金綠現代農業有限公司的興寧鴿子場完成。肉鴿養殖場為半封閉式結構,棚頂鋪設鐵皮,四周采用透明塑料布進行遮擋,4組1.35 m×46 m規格鴿籠按照行距1 m的標準布置,形成長50 m、寬10 m的肉鴿養殖場。
在Linux系統下,搭建基于Pytorch框架的U-Net網絡算法環境。訓練模型的硬件配置為CPU:8-Core Carmel ARM v8.2 64-Bit,運存32 GB,顯卡英偉達NVIDIA VoltaTM。
訓練前,在制作的數據集中隨機抽取2 250張圖像作為訓練集,250張作為驗證集,500張作為測試集,圖像分辨率統一為512像素×512像素。本文選用AMSGrad自適應學習率優化器在訓練的過程中可動態調整學習率,迭代次數為200,每次迭代的樣本數為64,初始學習率為0.000 1,學習率衰減因子為0.1。
U-Net使用3、4、5組上采樣和下采樣分別進行訓練,損失函數曲線如圖4所示。從圖4中可以看到,模型的訓練損失值總是小于測試損失值,U-Net模型的損失值在前30次迭代周期內衰減比較劇烈,在30次迭代之后損失值波動不大,逐漸趨于穩定。

(a) 3組上下采樣的U-Net網絡
3種網絡模型的訓練結果如表1所示,其中U-Net網絡的4組上下采樣模型的測試集準確率、交并比和召回率分別為98.48%、96.21%和99.05%。與PSP-Net和FCN模型相比,U-Net網絡4組上下采樣模型訓練效果較好,在準確率、交并比和召回率三個指標中都略勝PSP-Net、FCN網絡,通過訓練指標發現,U-Net網絡具有優越性,因此本文采用U-Net4組上下采樣網絡訓練生成的權重進行肉鴿養殖場語義分割。

表1 模型訓練結果對比
2.3.1 語義分割效果
本文對比了三種語義分割算法,三種算法對養殖場道路的分割效果如圖5所示。

(a) U-Net
PSP-Net網絡過分割即把鴿籠下的鴿糞也識別為道路;FCN網絡對道路分割不充分,道路的邊緣無法實現精準分割;U-Net網絡能夠精準把道路分割出來,從圖中可以看出,U-Net的分割效果相對于PSP-Net、FCN是較好的,能夠完整地分割出道路。通過現場試驗發現,U-net算法可以有效克服鴿糞和羽毛等對視覺導航的影響,故本文選擇U-Net網絡訓練生成的權重進行肉鴿養殖場語義分割。
2.3.2 自主導航試驗
自主導航試驗分別在3種不同光照強度(強光:鴿舍外為晴天,有太陽光照射使得道路產生陰影;正常光:鴿舍外為晴天,有太陽光照射但道路不產生陰影;弱光:鴿舍外為陰天,無太陽光照射)和2種路況下進行,語義分割結果如圖6所示。

(a) 強光照強度,有鴿糞
由圖6可得本文采用的網絡模型對肉鴿養殖場道路主干部分的分割效果受光照強度和鴿糞的影響不大,即使在不同光照強度和路況條件下,掩碼區域邊緣信息提取方法可以較好地獲取道路形狀,進而采用等比例導航獲取不同道路形狀的擬合導航點,通過最小二乘法擬合直線得到目標導航路徑。目標導航路徑為底盤前進方向距離左側鴿籠0.2 m處。
自主導航的橫向偏差和航向偏差如表2所示,在強光照強度下,最大橫向偏差小于0.09 m,有鴿糞和無鴿糞的道路橫向絕對平均偏差分別為0.035 m、0.036 m,橫向標準偏差分別為0.023 m、0.027 m。在正常光照強度下,最大橫向偏差小于0.06 m,有鴿糞和無鴿糞的道路橫向絕對平均偏差分別為0.017 m、0.018 m,橫向標準偏差分別為0.013 m、0.014 m。在弱光照強度下,最大橫向偏差小于0.07 m,有鴿糞和無鴿糞的道路橫向絕對平均偏差分別為0.024 m、0.03 m,橫向標準偏差分別為0.016 m、0.024 m。可得在有鴿糞的條件下橫向絕對平均偏差小于0.04 m、標準偏差小于0.03 m,無鴿糞時由于背景和道路環境相似,路徑分割的精度和導航線提取有所影響,導致導航的絕對平均偏差和標準偏大稍微比有鴿糞時大。在強光照強度下,航向偏差的最大值、平均值和標準差分別小于15°、3°、3°。在正常光照強度下,航向偏差的最大值、平均值和標準差分別小于10°、2°、2°。在弱光照強度下,航向偏差的最大值、平均值和標準差分別小于11°、2°、2°。在有鴿糞的條件下航向偏差的最大值、平均值和標準差分別小于10°、3°、2°,在無鴿糞的條件下航向偏差最大值、平均值和標準差分別小于15°、3°、3°。

表2 導航的橫向偏差及航向偏差
已知所在肉鴿養殖場的道路寬度為1 m,橫向標準偏差平均值和橫向絕對偏差平均值為0.019 5 m、0.027 m,航向標準偏差平均值和航向絕對偏差平均值為1.657°、1.95°。在肉鴿養殖場中四輪驅動底盤的正常行駛速度為0.5 m/s,路徑分割每張圖像的平均處理時間為0.074 s,說明本文提出的路徑識別方法在鴿舍實地環境中具有較好的準確性和實時性,可滿足自主導航的要求。
本文針對室內弱衛星信號下肉鴿養殖機器人自主導航容易衛星信號中斷、鴿毛鴿糞影響導航精度的問題,提出了一種基于U-Net全卷積神經網絡的肉鴿養殖場語義分割方法,并研制了樣機。
1) 通過對比FCN、U-Net、PSP-Net三種網絡發現U-Net網絡的分割效果是最佳。U-Net最優模型訓練的測試集準確率、交并比和召回率分別為98.48%、96.21%和99.05%。可見本文訓練的模型權重抗干擾能力強,用于肉鴿養殖場語義分割具有較高的準確性和魯棒性。
2) 通過現場試驗發現,U-net算法可以有效克服鴿糞和羽毛等對視覺導航的影響,故本文選擇U-Net網絡訓練生成的權重進行肉鴿養殖場語義分割。
3) 已知肉鴿養殖場的道路寬度為1 m,四輪驅動底盤的正常行駛速度為0.5 m/s,語義分割每張圖像的平均處理時間為0.074 s。在不同光照和路況條件下,機器人自主導航的橫向標準偏差平均值和橫向絕對偏差平均值為0.019 5 m、0.027 m,航向標準偏差平均值和航向絕對偏差平均值為1.657°、1.95°。可見本文提出的路徑識別方法在鴿舍實地環境中具有較好的準確性和實時性,可滿足自主導航的要求。
在本次試驗中發現機器人在轉彎處出錯率較高,往后研究將深入研究養殖場轉彎算法,提高自主轉彎成功率且加入避障算法,使機器人完全自主在室內養殖場進行作業。