朱立學(xué),莫冬炎,官金炫,張世昂,王梓穎,黃偉鋒
(1.仲愷農(nóng)業(yè)工程學(xué)院機電工程學(xué)院,廣州市,510225; 2.廣東省林果機器人共性關(guān)鍵技術(shù)研發(fā)創(chuàng)新團隊,廣州市,510225; 3.廣東中煙工業(yè)有限責(zé)任公司湛江卷煙廠,廣東湛江,524000; 4.梅州市金綠現(xiàn)代農(nóng)業(yè)發(fā)展有限公司,廣東梅州,514000; 5.仲愷農(nóng)業(yè)工程學(xué)院自動化學(xué)院,廣州市,510225)
肉鴿擁有肉質(zhì)美味、有益健康、容易飼養(yǎng)且經(jīng)濟價值高等諸多優(yōu)點,深受消費者喜愛。龐大的市場需求推動了我國鴿產(chǎn)業(yè)的快速發(fā)展,但當(dāng)前肉鴿生產(chǎn)中的喂料、清糞等環(huán)節(jié)幾乎都由飼養(yǎng)員手工完成,程序繁雜,勞動生產(chǎn)效率低;且肉鴿的生產(chǎn)值和生產(chǎn)指標(biāo)依靠飼養(yǎng)員的經(jīng)驗,若飼養(yǎng)員經(jīng)驗不足會導(dǎo)致種鴿經(jīng)濟值下降[1-3]。近年來,肉鴿飼喂機器人、肉鴿養(yǎng)殖場清糞機器人等有越來越多的國內(nèi)外學(xué)者進行研究,機器人自主導(dǎo)航是飼喂、清糞等環(huán)節(jié)自動化作業(yè)的基礎(chǔ)和核心[4-5]。
目前,研究人員在室內(nèi)語義分割路徑識別方面展開了大量研究,但是在環(huán)境惡劣的肉鴿養(yǎng)殖場自主導(dǎo)航方面相關(guān)研究仍然缺乏[6-10]。室內(nèi)路徑識別方面已有較多的研究成果,例如王行風(fēng)等[11]基于內(nèi)部空間感知規(guī)律和層次認知的方法,動態(tài)構(gòu)建和優(yōu)化室內(nèi)單元認知分層和編碼以解決室內(nèi)導(dǎo)航自主尋徑的問題。Padhy等[12]針對無人機在室內(nèi)無GPS信號的情況,利用基于DenseNet卷積神經(jīng)網(wǎng)絡(luò)的視覺系統(tǒng)進行導(dǎo)航,該方法主要是對無人機的航向進行分類,以指導(dǎo)無人機在室內(nèi)飛行。Sato等[13]針對離散時間一階提出一種PID控制系統(tǒng)設(shè)計方法,提出的設(shè)計方法已擴展為自適應(yīng)控制,可以很好地控制農(nóng)機在未知或時變的復(fù)雜路徑自主導(dǎo)航。季宇寒等[14]基于激光雷達設(shè)計了巡檢機器人導(dǎo)航系統(tǒng),可實現(xiàn)機器人在室內(nèi)環(huán)境下的精準定位、路徑規(guī)劃和自主導(dǎo)航,試驗結(jié)果表明,在1 m/s的速度下,位置與航向偏差的平均絕對誤差MAE分別小于5 cm和1.1°,標(biāo)準差SD分別小于5 cm和1.5°。
在肉鴿養(yǎng)殖場中,由于有鴿毛、鴿糞的遮擋加上陽光強度多變的道路環(huán)境,用傳統(tǒng)的圖像處理方法較難穩(wěn)定實時地生成道路信息。為此,本文提出一種基于U-Net的肉鴿養(yǎng)殖場視覺導(dǎo)航路徑識別系統(tǒng),采用標(biāo)圖軟件制作道路數(shù)據(jù)集、采用全卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)集,生成語義分割模型;對分割圖像進行二值化方便獲取掩碼區(qū)域獲取邊緣點像素坐標(biāo),采用等比例導(dǎo)航法生成擬合導(dǎo)航點,最后通過最小二乘法曲線擬合生成所需的導(dǎo)航線。
肉鴿養(yǎng)殖場大多采用半封閉式結(jié)構(gòu),棚頂采用鐵皮鋪設(shè),四周鏤空或者采用透明塑料布進行遮擋,隨著陽光的變化,道路容易出現(xiàn)陰影、強光、弱光、局部光斑等情況;除了外界的影響,鴿毛、鴿糞的堆積也會使得道路出現(xiàn)陰影殘塊。因此,設(shè)計一套基于深度學(xué)習(xí)的視覺導(dǎo)航系統(tǒng)是實現(xiàn)肉鴿養(yǎng)殖場機械化作業(yè)的基礎(chǔ)。
FCN、PSP-Net、U-Net等是常用的經(jīng)典語義分割算法[15-16]。FCN是Long等[17]在2015年提出,第一次實現(xiàn)基于深度學(xué)習(xí)的語義分割網(wǎng)絡(luò)任意圖片大小輸入,FCN首先進行卷積化再通過反卷積進行上采樣,最后通過跳躍結(jié)構(gòu)將所有的池化結(jié)果融合在一起,實現(xiàn)分割。但FCN也有明顯的缺點,上采樣過程不夠精細、對輸入圖像細節(jié)的處理不夠敏感,跳躍結(jié)構(gòu)忽略了像素之間的關(guān)系、缺乏空間一致性,導(dǎo)致分割精度低。PSP-Net網(wǎng)絡(luò)主要使用了殘缺網(wǎng)絡(luò)、空洞卷積以及降維卷積,其核心是空間金字塔模塊,通過該模塊可以更加有效地提取圖片的局部和全局信息,彌補了FCN網(wǎng)絡(luò)的中像素類別易誤分割的問題,但PSP-Net網(wǎng)絡(luò)忽略了整體的場景信息。Ronneberger等[18]在MICCAI會議(2015年)上提出了U-Net網(wǎng)絡(luò),U-Net網(wǎng)絡(luò)有效地融合了圖像隱藏的多層細節(jié)信息和表明環(huán)境信息,能夠?qū)崿F(xiàn)精準分割,故被廣泛應(yīng)用在圖像處理問題中。U-Net網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,網(wǎng)絡(luò)總體上采用U型上下采樣結(jié)構(gòu)及編碼解碼結(jié)構(gòu),左邊為編碼部分,右邊為解碼部分。編碼部分由4個下采樣模塊組成,每個輸入圖像大小為(512,512,3),經(jīng)過5次3×3卷積和4次最大池化2×2得到[256,256,64]、[128,128,128]、[64,64,256]、[32,32,512]、[32,32,512]共5個有效特征層。解碼部分由4個上采樣模塊組成,編碼部分得到的5個有效特征層用于特征融合,在進行特征融合時先進行雙采樣以便于網(wǎng)絡(luò)構(gòu)建和更好的通用性,最后得到的輸出的分割圖像和輸入圖片的高寬相同。在預(yù)測結(jié)果時,利用1×1卷積將通道數(shù)調(diào)整為2。
圖1 U-Net網(wǎng)絡(luò)結(jié)構(gòu)
本文將上述3種網(wǎng)絡(luò)在相同的肉鴿養(yǎng)殖場內(nèi)進行路徑數(shù)據(jù)集訓(xùn)練,將訓(xùn)練所得的模型分別應(yīng)用于養(yǎng)殖場道路分割,通過對比3種網(wǎng)絡(luò)模型訓(xùn)練的準確率、交并比、召回率以及路徑的實際分割效果,選出分割效果最佳的U-Net網(wǎng)絡(luò)。
1.2.1 邊緣點坐標(biāo)提取
肉鴿養(yǎng)殖場道路通過語義分割網(wǎng)絡(luò)得到的分割圖像大多呈不規(guī)則三角形形狀,道路的分割效果凹凸不平、掩碼區(qū)域斷層,本文用逐行掃描法能夠準確提取路徑左右兩側(cè)的邊緣點像素坐標(biāo),由邊緣點像素坐標(biāo)可得到導(dǎo)航線,再通過最小二乘法擬合成導(dǎo)航線,導(dǎo)航點提取流程如下。
1) 圖像二值化處理。對語義分割后的圖像進行二值化處理,黑色的RGB為(0,0,0),紅色的RGB為(255,0,0),道路可行區(qū)域為紅色,其他區(qū)域為黑色背景。
2) 邊緣點提取。如圖2所示,取圖像下沿左頂點為掃描的起點,從左往右進行掃描,當(dāng)像素點的閾值小于180時輸出為1,閾值大于180時輸出為2。在一行的掃描中,如果某兩個相鄰像素點的輸出從1變?yōu)?,則認為該點為掩碼區(qū)域的左邊緣點;當(dāng)某兩個相鄰的像素點的輸出從2變?yōu)?,則認為該點為掩碼區(qū)域的右邊緣點。
圖2 邊緣點提取流程圖
1.2.2 等比例導(dǎo)航點獲取方法
傳統(tǒng)的導(dǎo)航點獲取是根據(jù)兩側(cè)邊緣點求中點,但根據(jù)肉鴿養(yǎng)殖場自主作業(yè)的要求,機器人底盤若以中線為導(dǎo)航線,在飼喂時會碰撞到鴿籠。肉鴿養(yǎng)殖場道路寬1 m,底盤寬0.7 m,底盤前進方向需偏左前進,右輪距離鴿籠的距離要大于0.2 cm,所以本文提出一種等比例導(dǎo)航點獲取法以保證底盤偏左穩(wěn)定導(dǎo)航,底盤中線實際偏離道路中線的距離可以取等比例的分割圖像導(dǎo)航點到兩側(cè)邊緣中點的像素距離。
(1)
(2)
y3=y2=y1
(3)
式中:k——等比例系數(shù);
d——道路寬度;
x——向左偏的距離;
(x1,y1)——左側(cè)邊緣信息點坐標(biāo);
(x2,y2)——右側(cè)邊緣信息點坐標(biāo);
(x3,y3)——導(dǎo)航點坐標(biāo)。
掩碼區(qū)域和擬合導(dǎo)航點生成的效果圖如圖3所示。
圖3 養(yǎng)殖場道路識別
從圖3中可以看出,本文提出的掩碼區(qū)域邊緣信息提取方法對肉鴿養(yǎng)殖場道路路況有著較好的適應(yīng)性和可行性,可生成與道路邊緣弧度相適應(yīng)的擬合導(dǎo)航點。為了提高導(dǎo)航的魯棒性,需要選擇合適的直線擬合算法對擬合導(dǎo)航點進行擬合形成導(dǎo)航線。最小二乘法直線擬合可以快速求得未知數(shù)據(jù),且所求得的未知數(shù)據(jù)與真實數(shù)據(jù)的均方誤差最小[19-20]。
1.2.3 基于最小二乘法的導(dǎo)航路徑擬合算法
在有陽光的情況下,道路盡頭會出現(xiàn)反光或逆光導(dǎo)致邊緣信息提取不正確,為此,本文采用半導(dǎo)航線方法,只對分割圖像的下半部分擬合點采用最小二乘法擬合導(dǎo)航線。
假設(shè)一張圖片得到N個擬合點數(shù)據(jù)(xi,yi),i=1,2,3…,N,擬合點yi的偏差的加權(quán)平方和最小,即式(4)的值最小,如式(4)所示。
(4)
式中:a——截距即y和豎軸的交點縱坐標(biāo);
b——斜率。
式(4)中分別對未知量a、b求偏導(dǎo),如式(5)所示。
(5)
解方程組得到a、b的最佳估計值,如式(6)所示。
(6)
相關(guān)系數(shù)r的定義如式(7)所示。
(7)
基于上述公式推導(dǎo),對肉鴿養(yǎng)殖場擬合導(dǎo)航點進行最小二乘法直線擬合,生成肉鴿養(yǎng)殖場導(dǎo)航路徑。根據(jù)最小二乘法直線擬合原理可得,當(dāng)擬合效果越好時相關(guān)系數(shù)r的絕對值趨向于1,導(dǎo)航精度相對越高。若r的絕對值趨向于0,說明擬合的直線相關(guān)性不大,擬合無意義,導(dǎo)航精度低。
為了測試本文提出的等比例導(dǎo)航方法在環(huán)境惡劣的肉鴿養(yǎng)殖場具有穩(wěn)定性、準確性以及魯棒性,分別進行了網(wǎng)絡(luò)模型訓(xùn)練和自主導(dǎo)航試驗。
肉鴿養(yǎng)殖場機器人自主導(dǎo)航試驗在廣東梅州金綠現(xiàn)代農(nóng)業(yè)有限公司的興寧鴿子場完成。肉鴿養(yǎng)殖場為半封閉式結(jié)構(gòu),棚頂鋪設(shè)鐵皮,四周采用透明塑料布進行遮擋,4組1.35 m×46 m規(guī)格鴿籠按照行距1 m的標(biāo)準布置,形成長50 m、寬10 m的肉鴿養(yǎng)殖場。
在Linux系統(tǒng)下,搭建基于Pytorch框架的U-Net網(wǎng)絡(luò)算法環(huán)境。訓(xùn)練模型的硬件配置為CPU:8-Core Carmel ARM v8.2 64-Bit,運存32 GB,顯卡英偉達NVIDIA VoltaTM。
訓(xùn)練前,在制作的數(shù)據(jù)集中隨機抽取2 250張圖像作為訓(xùn)練集,250張作為驗證集,500張作為測試集,圖像分辨率統(tǒng)一為512像素×512像素。本文選用AMSGrad自適應(yīng)學(xué)習(xí)率優(yōu)化器在訓(xùn)練的過程中可動態(tài)調(diào)整學(xué)習(xí)率,迭代次數(shù)為200,每次迭代的樣本數(shù)為64,初始學(xué)習(xí)率為0.000 1,學(xué)習(xí)率衰減因子為0.1。
U-Net使用3、4、5組上采樣和下采樣分別進行訓(xùn)練,損失函數(shù)曲線如圖4所示。從圖4中可以看到,模型的訓(xùn)練損失值總是小于測試損失值,U-Net模型的損失值在前30次迭代周期內(nèi)衰減比較劇烈,在30次迭代之后損失值波動不大,逐漸趨于穩(wěn)定。
(a) 3組上下采樣的U-Net網(wǎng)絡(luò)
3種網(wǎng)絡(luò)模型的訓(xùn)練結(jié)果如表1所示,其中U-Net網(wǎng)絡(luò)的4組上下采樣模型的測試集準確率、交并比和召回率分別為98.48%、96.21%和99.05%。與PSP-Net和FCN模型相比,U-Net網(wǎng)絡(luò)4組上下采樣模型訓(xùn)練效果較好,在準確率、交并比和召回率三個指標(biāo)中都略勝PSP-Net、FCN網(wǎng)絡(luò),通過訓(xùn)練指標(biāo)發(fā)現(xiàn),U-Net網(wǎng)絡(luò)具有優(yōu)越性,因此本文采用U-Net4組上下采樣網(wǎng)絡(luò)訓(xùn)練生成的權(quán)重進行肉鴿養(yǎng)殖場語義分割。
表1 模型訓(xùn)練結(jié)果對比
2.3.1 語義分割效果
本文對比了三種語義分割算法,三種算法對養(yǎng)殖場道路的分割效果如圖5所示。
(a) U-Net
PSP-Net網(wǎng)絡(luò)過分割即把鴿籠下的鴿糞也識別為道路;FCN網(wǎng)絡(luò)對道路分割不充分,道路的邊緣無法實現(xiàn)精準分割;U-Net網(wǎng)絡(luò)能夠精準把道路分割出來,從圖中可以看出,U-Net的分割效果相對于PSP-Net、FCN是較好的,能夠完整地分割出道路。通過現(xiàn)場試驗發(fā)現(xiàn),U-net算法可以有效克服鴿糞和羽毛等對視覺導(dǎo)航的影響,故本文選擇U-Net網(wǎng)絡(luò)訓(xùn)練生成的權(quán)重進行肉鴿養(yǎng)殖場語義分割。
2.3.2 自主導(dǎo)航試驗
自主導(dǎo)航試驗分別在3種不同光照強度(強光:鴿舍外為晴天,有太陽光照射使得道路產(chǎn)生陰影;正常光:鴿舍外為晴天,有太陽光照射但道路不產(chǎn)生陰影;弱光:鴿舍外為陰天,無太陽光照射)和2種路況下進行,語義分割結(jié)果如圖6所示。
(a) 強光照強度,有鴿糞
由圖6可得本文采用的網(wǎng)絡(luò)模型對肉鴿養(yǎng)殖場道路主干部分的分割效果受光照強度和鴿糞的影響不大,即使在不同光照強度和路況條件下,掩碼區(qū)域邊緣信息提取方法可以較好地獲取道路形狀,進而采用等比例導(dǎo)航獲取不同道路形狀的擬合導(dǎo)航點,通過最小二乘法擬合直線得到目標(biāo)導(dǎo)航路徑。目標(biāo)導(dǎo)航路徑為底盤前進方向距離左側(cè)鴿籠0.2 m處。
自主導(dǎo)航的橫向偏差和航向偏差如表2所示,在強光照強度下,最大橫向偏差小于0.09 m,有鴿糞和無鴿糞的道路橫向絕對平均偏差分別為0.035 m、0.036 m,橫向標(biāo)準偏差分別為0.023 m、0.027 m。在正常光照強度下,最大橫向偏差小于0.06 m,有鴿糞和無鴿糞的道路橫向絕對平均偏差分別為0.017 m、0.018 m,橫向標(biāo)準偏差分別為0.013 m、0.014 m。在弱光照強度下,最大橫向偏差小于0.07 m,有鴿糞和無鴿糞的道路橫向絕對平均偏差分別為0.024 m、0.03 m,橫向標(biāo)準偏差分別為0.016 m、0.024 m。可得在有鴿糞的條件下橫向絕對平均偏差小于0.04 m、標(biāo)準偏差小于0.03 m,無鴿糞時由于背景和道路環(huán)境相似,路徑分割的精度和導(dǎo)航線提取有所影響,導(dǎo)致導(dǎo)航的絕對平均偏差和標(biāo)準偏大稍微比有鴿糞時大。在強光照強度下,航向偏差的最大值、平均值和標(biāo)準差分別小于15°、3°、3°。在正常光照強度下,航向偏差的最大值、平均值和標(biāo)準差分別小于10°、2°、2°。在弱光照強度下,航向偏差的最大值、平均值和標(biāo)準差分別小于11°、2°、2°。在有鴿糞的條件下航向偏差的最大值、平均值和標(biāo)準差分別小于10°、3°、2°,在無鴿糞的條件下航向偏差最大值、平均值和標(biāo)準差分別小于15°、3°、3°。
表2 導(dǎo)航的橫向偏差及航向偏差
已知所在肉鴿養(yǎng)殖場的道路寬度為1 m,橫向標(biāo)準偏差平均值和橫向絕對偏差平均值為0.019 5 m、0.027 m,航向標(biāo)準偏差平均值和航向絕對偏差平均值為1.657°、1.95°。在肉鴿養(yǎng)殖場中四輪驅(qū)動底盤的正常行駛速度為0.5 m/s,路徑分割每張圖像的平均處理時間為0.074 s,說明本文提出的路徑識別方法在鴿舍實地環(huán)境中具有較好的準確性和實時性,可滿足自主導(dǎo)航的要求。
本文針對室內(nèi)弱衛(wèi)星信號下肉鴿養(yǎng)殖機器人自主導(dǎo)航容易衛(wèi)星信號中斷、鴿毛鴿糞影響導(dǎo)航精度的問題,提出了一種基于U-Net全卷積神經(jīng)網(wǎng)絡(luò)的肉鴿養(yǎng)殖場語義分割方法,并研制了樣機。
1) 通過對比FCN、U-Net、PSP-Net三種網(wǎng)絡(luò)發(fā)現(xiàn)U-Net網(wǎng)絡(luò)的分割效果是最佳。U-Net最優(yōu)模型訓(xùn)練的測試集準確率、交并比和召回率分別為98.48%、96.21%和99.05%??梢姳疚挠?xùn)練的模型權(quán)重抗干擾能力強,用于肉鴿養(yǎng)殖場語義分割具有較高的準確性和魯棒性。
2) 通過現(xiàn)場試驗發(fā)現(xiàn),U-net算法可以有效克服鴿糞和羽毛等對視覺導(dǎo)航的影響,故本文選擇U-Net網(wǎng)絡(luò)訓(xùn)練生成的權(quán)重進行肉鴿養(yǎng)殖場語義分割。
3) 已知肉鴿養(yǎng)殖場的道路寬度為1 m,四輪驅(qū)動底盤的正常行駛速度為0.5 m/s,語義分割每張圖像的平均處理時間為0.074 s。在不同光照和路況條件下,機器人自主導(dǎo)航的橫向標(biāo)準偏差平均值和橫向絕對偏差平均值為0.019 5 m、0.027 m,航向標(biāo)準偏差平均值和航向絕對偏差平均值為1.657°、1.95°??梢姳疚奶岢龅穆窂阶R別方法在鴿舍實地環(huán)境中具有較好的準確性和實時性,可滿足自主導(dǎo)航的要求。
在本次試驗中發(fā)現(xiàn)機器人在轉(zhuǎn)彎處出錯率較高,往后研究將深入研究養(yǎng)殖場轉(zhuǎn)彎算法,提高自主轉(zhuǎn)彎成功率且加入避障算法,使機器人完全自主在室內(nèi)養(yǎng)殖場進行作業(yè)。