陳旭君, 王承祥, 朱德泉, 劉曉麗, 鄒 禹, 張 順, 廖 娟
(1.安徽農(nóng)業(yè)大學(xué)工學(xué)院,安徽 合肥 230036; 2.安徽省農(nóng)業(yè)科學(xué)院水稻研究所,安徽 合肥 230031)
智能農(nóng)機(jī)導(dǎo)航是農(nóng)業(yè)機(jī)械化研究的重要內(nèi)容,主要導(dǎo)航方式有全球定位系統(tǒng)(GPS)導(dǎo)航[1]和視覺(jué)導(dǎo)航[2]。GPS導(dǎo)航通過(guò)衛(wèi)星系統(tǒng)測(cè)量農(nóng)業(yè)機(jī)械在地理空間中的絕對(duì)位置,根據(jù)預(yù)先規(guī)劃的路徑進(jìn)行導(dǎo)航。但在水田中,插秧機(jī)作業(yè)易發(fā)生側(cè)滑,GPS導(dǎo)航的預(yù)先規(guī)劃路徑適應(yīng)性差,此外,GPS信號(hào)的穩(wěn)定性易受環(huán)境中遮擋物、天氣等因素干擾,且隨著定位精度的提高,相應(yīng)的成本也隨之提高[3]。相比于GPS導(dǎo)航,視覺(jué)導(dǎo)航具有成本低、環(huán)境感知信息豐富以及無(wú)需預(yù)先精確規(guī)劃路徑和適應(yīng)性強(qiáng)等特點(diǎn),成為智能農(nóng)機(jī)導(dǎo)航研究的重要方向,在作物種植、培育以及收割方面均有廣泛應(yīng)用[4-5]。農(nóng)業(yè)機(jī)械視覺(jué)導(dǎo)航的關(guān)鍵步驟是導(dǎo)航路徑識(shí)別,其識(shí)別正確與否直接影響導(dǎo)航精度。
目前,視覺(jué)導(dǎo)航路徑識(shí)別主要采用機(jī)器視覺(jué)技術(shù)提取田壟邊界[6]或作物行線[7-8],從而確定導(dǎo)航路徑?;谒狙砻缰本€栽插的特點(diǎn),插秧機(jī)視覺(jué)導(dǎo)航可通過(guò)檢測(cè)插秧機(jī)鄰近行的秧苗并擬合秧苗行線,提取水稻插秧機(jī)視覺(jué)導(dǎo)航路徑。國(guó)內(nèi)外關(guān)于秧苗行線檢測(cè)方法的研究,應(yīng)用較多的是基于Hough變換的秧苗行中心線檢測(cè)方法和特征點(diǎn)聚類方法。標(biāo)準(zhǔn)Hough變換魯棒性較強(qiáng),受環(huán)境噪聲影響小,但計(jì)算耗時(shí)長(zhǎng),難以滿足農(nóng)業(yè)機(jī)械作業(yè)的實(shí)時(shí)性要求。聚類算法提取特征點(diǎn)易受到噪聲點(diǎn)和環(huán)境變化影響,對(duì)不同環(huán)境的適應(yīng)性差。
針對(duì)Hough算法計(jì)算復(fù)雜的問(wèn)題,趙瑞嬌等[9]通過(guò)垂直投影法獲得作物的行定位點(diǎn),用Hough變換擬合行定位點(diǎn),該方法的處理速度較直接Hough變換提高了3倍。為提高特征點(diǎn)聚類法的抗干擾能力,廖娟等[10]分區(qū)域提取秧苗行特征點(diǎn),采用聚類算法獲取秧苗行定位點(diǎn),基于最小二乘法擬合出秧苗行線,有效抑制了圖像噪聲對(duì)特征點(diǎn)的干擾。孟笑天等[11]提取二值化圖像中作物特征點(diǎn),采用K均值算法和最小二乘法擬合出苗期玉米作物行線。但上述算法都是基于人為提取作物的顏色、紋理等特征,對(duì)不同作業(yè)環(huán)境的泛化能力較弱,難以保證作物行線識(shí)別的準(zhǔn)確率,影響農(nóng)業(yè)機(jī)械導(dǎo)航精度。
隨著卷積神經(jīng)網(wǎng)絡(luò)技術(shù)的不斷發(fā)展與應(yīng)用,深度卷積網(wǎng)絡(luò)可以自主學(xué)習(xí)圖像特征并準(zhǔn)確識(shí)別目標(biāo),對(duì)于不同環(huán)境具備很好的泛化能力,廣泛應(yīng)用于農(nóng)業(yè)領(lǐng)域[12-13]。王丹丹等[14]在ResNet50、ResNet101的結(jié)構(gòu)基礎(chǔ)上改進(jìn)R-FCN網(wǎng)絡(luò),提出了基于ResNet44的FCN網(wǎng)絡(luò)模型,對(duì)蘋(píng)果的識(shí)別準(zhǔn)確率達(dá)95.1%。Bodhwani等[15]構(gòu)建了一個(gè)50層的深度殘差網(wǎng)絡(luò),對(duì)植物識(shí)別的準(zhǔn)確度高達(dá)93.09%。
為準(zhǔn)確識(shí)別秧苗行線,從而獲取導(dǎo)航基準(zhǔn)線,為自主行走插秧機(jī)提供相對(duì)位置信息,本研究基于深度卷積神經(jīng)網(wǎng)絡(luò),對(duì)秧苗圖像進(jìn)行分割裁剪、拉伸等預(yù)處理,構(gòu)建樣本集,采用YOLO網(wǎng)絡(luò)進(jìn)行秧苗特征區(qū)域識(shí)別,獲取秧苗行定位點(diǎn),連接定位點(diǎn)并計(jì)算相鄰定位點(diǎn)間線段的斜率,依據(jù)斜率獲取行線角度,從而實(shí)現(xiàn)水稻秧苗行線檢測(cè)。
試驗(yàn)圖像采集于安徽農(nóng)業(yè)大學(xué)廬江郭河試驗(yàn)基地,圖像采集設(shè)備主要有USB免驅(qū)廣角攝像頭和筆記本電腦。為保證數(shù)據(jù)集多樣性、增強(qiáng)網(wǎng)絡(luò)對(duì)檢測(cè)環(huán)境的泛化能力,在晴天、多云以及陰天情況下各采集200張圖像,圖像分辨率為2 560×1 920像素。圖像采集過(guò)程中,使用OpenCV3.0和Spyder編程軟件驅(qū)動(dòng)攝像頭拍攝,所拍攝秧苗圖像如圖1所示。
圖1 圖像采集Fig.1 Image acquisition
為減少后續(xù)網(wǎng)絡(luò)訓(xùn)練所占用的內(nèi)存和顯存,對(duì)分辨率為2 560×1 920像素的圖像進(jìn)行壓縮處理,處理后圖像的分辨率為448×448像素。由圖1-b可以看出,圖像中水稻秧苗行會(huì)出現(xiàn)直線偏移,不利于使用ROI標(biāo)記框?qū)λ狙砻缰苯訕?biāo)記和網(wǎng)絡(luò)對(duì)秧苗的識(shí)別。因此,將圖像水平裁剪成若干張子圖,記錄子圖的位置索引,每個(gè)子圖大小為448像素×28像素。
根據(jù)網(wǎng)絡(luò)輸入圖像大小要求,將裁剪后圖像縱向拉伸為448像素×448像素,圖像縮小與拉伸變換均使用雙線性插值法,結(jié)果如圖2所示。經(jīng)過(guò)裁剪、拉伸預(yù)處理后的圖像共有9 600張,選取8 000張作為訓(xùn)練集,1 600張作為測(cè)試集。拉伸后圖像綠色線條均為豎直方向,將綠色線條視為水稻秧苗特征區(qū)域,采用ROI標(biāo)記框?qū)G色線條進(jìn)行標(biāo)注,制作訓(xùn)練集。
圖2 秧苗圖像的預(yù)處理Fig.2 Preprocessing of rice seedling images
本研究基于YOLO(You Look Only Once)卷積神經(jīng)網(wǎng)絡(luò)檢測(cè)秧苗行線,主要包括2個(gè)步驟:基于YOLO網(wǎng)絡(luò)的秧苗目標(biāo)檢測(cè)和秧苗行線定位點(diǎn)檢測(cè)。
1.3.1 基于YOLO網(wǎng)絡(luò)的秧苗目標(biāo)檢測(cè) YOLO網(wǎng)絡(luò)是一種端到端訓(xùn)練的實(shí)時(shí)目標(biāo)檢測(cè)網(wǎng)絡(luò),由4個(gè)最大池化層、24個(gè)卷積層、2個(gè)全連接組成,具體結(jié)構(gòu)如圖3所示。輸入448×448秧苗圖,經(jīng)卷積等操作,被YOLO網(wǎng)絡(luò)分割成7×7個(gè)單元格[16],判斷每個(gè)單元格是否含有目標(biāo)中心,對(duì)含有目標(biāo)中心單元格預(yù)測(cè)4個(gè)邊框位置和置信度得分,預(yù)測(cè)類別數(shù)為1,最后全連接層對(duì)長(zhǎng)度為1 029的特征向量進(jìn)行回歸和分類,得到相應(yīng)目標(biāo)識(shí)別框坐標(biāo)與預(yù)測(cè)概率。其中,損失函數(shù)用于描述預(yù)測(cè)框與真實(shí)框的誤差,定義為:
loss=lcoordinate+lconfidence+lclass
(1)
圖3 YOLO結(jié)構(gòu)示意圖Fig.3 Schematic diagram of YOLO
由式(1)可知,損失函數(shù)由坐標(biāo)損失、置信度得分損失和類別置信度得分損失組成,而置信度得分表示單元格中包含目標(biāo)的預(yù)測(cè)精確度,計(jì)算如下:
(2)
將置信度得分與類別概率相乘,得到C個(gè)類別置信度得分,計(jì)算如式(3)所示。
(3)
將輸出的Class_Score與閾值進(jìn)行比較,保留大于閾值的預(yù)測(cè)邊框。最后通過(guò)非極大值抑制算法,刪掉剩余的邊框,輸出類別置信度得分最高的目標(biāo)邊框坐標(biāo)和類別預(yù)測(cè)概率。YOLO網(wǎng)絡(luò)采用非極大值抑制算法保證識(shí)別的目標(biāo)只有一個(gè)目標(biāo)框,而對(duì)于秧苗圖像,單個(gè)目標(biāo)框不足以表示秧苗行的完整信息。為此,去除原始YOLO網(wǎng)絡(luò)中非極大值抑制算法,在Class_Score與閾值比較后直接輸出檢測(cè)目標(biāo)的類別預(yù)測(cè)概率和目標(biāo)框坐標(biāo)。
1.3.2 秧苗行線檢測(cè) 利用式(4)計(jì)算每個(gè)秧苗框的中心點(diǎn)坐標(biāo),作為候選的秧苗行定位點(diǎn)p(xi,yi),如圖4所示,紅色圓點(diǎn)是獲取的候選秧苗行定位點(diǎn)。
(4)
式中,xi,yi表示定位點(diǎn)坐標(biāo),ai,bi表示秧苗框的左上頂點(diǎn)坐標(biāo),wi,hi秧苗框的寬和高。
圖4 秧苗行線的候選定位點(diǎn)Fig.4 Candidate positioning point of seedling line
然而,由于單行秧苗檢測(cè)出多個(gè)秧苗框,造成秧苗行上有多個(gè)定位點(diǎn),需對(duì)其進(jìn)行聚類合并。另外,田間環(huán)境復(fù)雜,秧苗檢測(cè)結(jié)果中可能存在秧苗行漏檢,導(dǎo)致漏檢區(qū)域的秧苗行定位點(diǎn)缺失,則需彌補(bǔ)缺失的定位點(diǎn)信息。具體步驟如下:
①將定位點(diǎn)坐標(biāo)p(xi,yi)按橫坐標(biāo)的大小進(jìn)行升序排列,計(jì)算相鄰坐標(biāo)的距離差值di=|xi-xi+1|及均值davg,若di (5) 式中,xj,yj為Qi中第j個(gè)定位點(diǎn)坐標(biāo),n為Qi中定位點(diǎn)總數(shù)量。 ④根據(jù)圖5所示的子圖索引,將子圖定位點(diǎn)拼接為大圖,拼接后定位點(diǎn)檢測(cè)結(jié)果如圖6所示。 ⑤連接圖6中的定位點(diǎn),并計(jì)算相鄰定點(diǎn)間線段斜率,用反三角函數(shù)將斜率轉(zhuǎn)換為角度,計(jì)算相鄰線段的角度差。若相鄰角度差值大于設(shè)定標(biāo)準(zhǔn)值,則說(shuō)明航向出現(xiàn)變化,需及時(shí)調(diào)整方向。 圖5 子圖位置索引Fig.5 Location index of subgraph 圖6 秧苗行線圖Fig.6 Image of seedling line 算法使用軟件為Matlab2019a,計(jì)算機(jī)CPU 為core i7-8700k,主頻3.7 GHz,顯卡為NVIDIA RTX2080ti,計(jì)算機(jī)內(nèi)存為32 G。 試驗(yàn)中,以測(cè)試集中1 600張數(shù)據(jù)集圖像進(jìn)行秧苗區(qū)域檢測(cè)測(cè)試,并將本研究YOLO網(wǎng)絡(luò)分別與Faster R-CNN網(wǎng)絡(luò)和ResNet101網(wǎng)絡(luò)進(jìn)行比較分析。圖7為3種網(wǎng)絡(luò)在測(cè)試圖中檢測(cè)結(jié)果??梢?jiàn),YOLO網(wǎng)絡(luò)檢測(cè)出的目標(biāo)框較ResNet101網(wǎng)絡(luò)和Faster R-CNN網(wǎng)絡(luò)多,包含的秧苗信息更全,更利于后續(xù)的秧苗行定位點(diǎn)的準(zhǔn)確獲取。 圖7 不同網(wǎng)絡(luò)的秧苗檢測(cè)結(jié)果Fig.7 Seedling detection results of different networks 為了比較3個(gè)網(wǎng)絡(luò)的檢測(cè)性能,以檢測(cè)的準(zhǔn)確率和檢測(cè)速度作為檢測(cè)指標(biāo),結(jié)果如表1所示。準(zhǔn)確率(P)以所有特征區(qū)域均檢測(cè)出來(lái)表示正確,以漏識(shí)別表示錯(cuò)誤,檢測(cè)速度以一次檢測(cè)16張圖像為準(zhǔn)。從表1可以看出,與ResNet101、Faster R-CNN網(wǎng)絡(luò)相比,YOLO網(wǎng)絡(luò)的檢測(cè)精度僅提高了0.5%,但檢測(cè)速度遠(yuǎn)快于ResNet101、Faster R-CNN網(wǎng)絡(luò)。由于試驗(yàn)對(duì)象只有一個(gè)綠色特征區(qū)域類別需要檢測(cè),再加上訓(xùn)練集數(shù)量較大,因此網(wǎng)絡(luò)均易于達(dá)到識(shí)別精度的要求。相比之下,YOLO網(wǎng)絡(luò)的檢測(cè)速度更符合導(dǎo)航實(shí)時(shí)性的需求。 表1 不同網(wǎng)絡(luò)檢測(cè)性能對(duì)比 為評(píng)價(jià)秧苗行線檢測(cè)的準(zhǔn)確性,將本研究算法分別與標(biāo)準(zhǔn)Hough變換方法和特征點(diǎn)聚類方法進(jìn)行比較和分析。 Hough變換方法主要實(shí)現(xiàn)步驟為:提取秧苗圖像的超綠特征,采用Otsu算法對(duì)圖像進(jìn)行二值化,使用標(biāo)準(zhǔn)Hough變換檢測(cè)直線。特征點(diǎn)聚類算法主要實(shí)現(xiàn)步驟為:將圖像進(jìn)行二值化,提取水稻特征點(diǎn),基于位置信息進(jìn)行特征點(diǎn)聚類,獲取秧苗行定位點(diǎn),采用最小二乘法進(jìn)行直線擬合。 從圖8可以看出,標(biāo)準(zhǔn)Hough變換方法和特征點(diǎn)聚類算法采用直線擬合方式生成秧苗行線,當(dāng)秧苗行線并非標(biāo)準(zhǔn)直線時(shí),檢測(cè)的秧苗行線與秧苗行趨勢(shì)貼合度降低。而本研究算法提取的秧苗行定位點(diǎn)對(duì)秧苗行線具有較強(qiáng)表征能力,采用多線段的擬合方式更逼近于鄰側(cè)秧苗行的趨勢(shì),檢測(cè)效果優(yōu)于標(biāo)準(zhǔn)Hough變換方法和特征點(diǎn)聚類算法。 圖8 不同算法的秧苗行線檢測(cè)結(jié)果對(duì)比Fig.8 Comparison of seedling line detection results from different algorithms 為量化判斷算法檢測(cè)秧苗行線的準(zhǔn)確率,多次用人工方法提取能表征秧苗行整體走向的參考線(圖9),以檢測(cè)線與參考線的平均角度誤差對(duì)判斷算法的檢測(cè)效果進(jìn)行準(zhǔn)確度統(tǒng)計(jì),大于5°則視為錯(cuò)誤檢測(cè),小于5°時(shí)視為準(zhǔn)確檢測(cè)。本研究算法檢測(cè)線由多線段組成,每段檢測(cè)線與參考線的夾角大小不同,以圖像由下往上為插秧機(jī)前進(jìn)方向,計(jì)算每一線段與參考線的角度偏差,得偏差之和后取平均值作為平均角度誤差,其平均準(zhǔn)確率高達(dá)94.1%。 而標(biāo)準(zhǔn)Hough變換方法和特征點(diǎn)聚類算法所擬合的直線也可視為由多線段組成,其平均角度誤差為每一線段與參考線的角度偏差之和所取平均值,即為擬合直線與參考線的角度偏差,其準(zhǔn)確率分別為79.4%和85.2%??梢?jiàn),本研究算法先獲取表征能力強(qiáng)的秧苗行定位點(diǎn),后基于代表秧苗行趨勢(shì)的定位點(diǎn)獲取秧苗行線,平均檢測(cè)準(zhǔn)確率高于標(biāo)準(zhǔn)Hough變換方法和特征點(diǎn)聚類算法。 圖9 檢測(cè)線與參考線誤差示意圖Fig.9 Schematic diagram of error between detection line and reference line 為提高插秧機(jī)視覺(jué)導(dǎo)航路徑識(shí)別精度,本研究提出了一種基于YOLO卷積神經(jīng)網(wǎng)絡(luò)的秧苗行線檢測(cè)方法。通過(guò)對(duì)秧苗圖像進(jìn)行剪切、拉伸等預(yù)處理,制作秧苗圖像樣本集,基于YOLO網(wǎng)絡(luò)檢測(cè)圖像中秧苗目標(biāo)區(qū)域,利用目標(biāo)框的位置信息提取秧苗行定位點(diǎn),根據(jù)子圖位置索引,獲取整圖中秧苗行定位點(diǎn),連接定位點(diǎn)并計(jì)算相鄰秧苗行定位點(diǎn)之間的斜率,生成秧苗行線,獲得插秧機(jī)的行線角度。試驗(yàn)結(jié)果表明,該方法識(shí)別秧苗區(qū)域目標(biāo)的平均精度為95.1%,16張圖像平均檢測(cè)時(shí)間為0.456 s,且秧苗行線的檢測(cè)準(zhǔn)確率高于標(biāo)準(zhǔn)Hough變換方法和特征點(diǎn)聚類算法。本研究結(jié)果表明該算法能夠準(zhǔn)確提取秧苗行線,為獲取插秧機(jī)視覺(jué)導(dǎo)航路徑和相對(duì)位置信息提供支持。但本算法的檢測(cè)效率還不能滿足實(shí)際相機(jī)的幀率(約1 s 25幀)的需要,有待提升。因此在后續(xù)的研究中將開(kāi)展對(duì)不同類型農(nóng)作物的行線檢測(cè)研究,并提高神經(jīng)網(wǎng)絡(luò)的檢測(cè)速度,優(yōu)化矩陣的計(jì)算方法,提升算法的運(yùn)算速度。2 結(jié)果與分析
2.1 不同網(wǎng)絡(luò)的秧苗區(qū)域檢測(cè)對(duì)比
2.2 不同算法的秧苗行線檢測(cè)對(duì)比
3 討 論