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