王 果,王 成,王宏濤,張成龍,楊福芹
(1.河南工程學(xué)院 土木工程學(xué)院,鄭州 451191,中國;2.河南理工大學(xué) 測繪與國土信息工程學(xué)院, 焦作 454000,中國; 3.中國科學(xué)院 空天信息創(chuàng)新研究院 數(shù)字地球重點(diǎn)實驗室,北京 100094,中國; 4.北京控制工程研究所,北京 100190,中國)
株數(shù)計數(shù)是特定區(qū)域內(nèi)準(zhǔn)確的植株數(shù)量[1],作為研究出苗率和產(chǎn)量分析的重要參數(shù),玉米植株計數(shù)有助于評估玉米生長狀況和田間管理,對玉米估產(chǎn)和智慧農(nóng)業(yè)具有重要意義[2-3]。人工實地考察法是玉米株數(shù)識別最常規(guī)的方法,該方法對玉米植株具有一定的損傷性,需要耗費(fèi)大量的人力和物力,且對現(xiàn)場經(jīng)驗具有較大的依賴性,尤其對于高密度種植區(qū)域,容易出現(xiàn)錯記、漏記現(xiàn)象[4-5]。
激光雷達(dá)(light detection and ranging,LiDAR)技術(shù)的出現(xiàn)與不斷發(fā)展,為農(nóng)田環(huán)境下作物的識別應(yīng)用提供了新的技術(shù)手段。一方面利用激光雷達(dá)技術(shù)使得玉米株數(shù)獲取更加準(zhǔn)確,另一方面由于外業(yè)數(shù)據(jù)獲取自動化程度高,大大降低了玉米株數(shù)獲取的人力成本,節(jié)約了數(shù)據(jù)采集時間,且由于非接觸的測量方式,避免了對作物的損傷,成為目前作物生長參數(shù)獲取和處理的研究熱點(diǎn)[6-9]。國內(nèi)外學(xué)者利用激光雷達(dá)技術(shù)針對不同作物開展了相關(guān)研究,LEI等人[10]利用無人機(jī)激光雷達(dá)進(jìn)行玉米數(shù)據(jù)獲取并研究玉米葉面積密度的提取方法,為玉米發(fā)育速度和育種提供合理的種植密度參考。GUAN等人[11]利用機(jī)載激光雷達(dá)通過局部鄰域特征分割單行大豆植株,利用均值漂移方法對單株大豆進(jìn)行提取。ZERMAS等人[12]以玉米為例,研究隨機(jī)點(diǎn)云的滑動行為,提出隨機(jī)截取的節(jié)點(diǎn)(randomly intercepted nodes,RAIN)算法,實現(xiàn)玉米莖葉的分離。JIN等人[13]利用地面掃描激光點(diǎn)云,采用快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(fast region convolutional neural network,Fast R-CNN)對玉米的莖桿進(jìn)行訓(xùn)練,結(jié)合區(qū)域增長方法對單個玉米植株進(jìn)行分割。LIN等人[14]通過地面掃描儀對玉米進(jìn)行實驗,在點(diǎn)云配準(zhǔn)的基礎(chǔ)上,利用玉米植株的圓柱幾何信息進(jìn)行玉米莖稈的識別。JIANG等人[15]利用無人機(jī)激光雷達(dá)點(diǎn)云,借助冠層高度模型(canopy height model,CHM)中包含的植株高度,發(fā)展了固定窗口局部最大值算法,實現(xiàn)了玉米成株數(shù)的自動檢測。
目前,國內(nèi)外針對點(diǎn)云分割算法已經(jīng)具有大量研究,但對于農(nóng)田尺度非結(jié)構(gòu)對象玉米等作物的點(diǎn)云分割和處理技術(shù)較少[16],已有的作物識別方面的研究,對農(nóng)田尺度作物的生長環(huán)境和狀況具有較大的依賴性,而玉米農(nóng)田通常具有種植密度較高、植株之間遮擋較為嚴(yán)重等特征,使得現(xiàn)有的農(nóng)田作物識別方法針對玉米農(nóng)田適應(yīng)性較差[17]。
本文中利用飛馬SLAM100手持掃描儀對農(nóng)田真實環(huán)境下的玉米田塊進(jìn)行數(shù)據(jù)采集,利用同時定位與地圖構(gòu)建(simultaneous localization and mapping,SLAM)點(diǎn)云生成過程中的先驗紋理特征和垂直度特征,對玉米株數(shù)自動識別算法進(jìn)行研究,獲取玉米莖稈數(shù)量,為玉米作物3維仿真、田間管理、玉米估產(chǎn)和智慧農(nóng)業(yè)等提供支撐。
作為典型的豎直生長作物,玉米植株在空間上具有近似垂直于地面、空間上具有一定間隔的特點(diǎn),且在利用SLAM進(jìn)行掃描的過程中,可以得到彩色的玉米田塊點(diǎn)云。在進(jìn)行玉米田塊掃描時,掃描者在掃描時通常將SLAM設(shè)備置于胸前高度或者相當(dāng)持平的高度,相當(dāng)于SLAM設(shè)備處于側(cè)視的角度進(jìn)行數(shù)據(jù)采集,雖然由于激光的穿透性可以獲得玉米植株頂部的點(diǎn)云,但卻缺少玉米植株頂部的紋理,因而,獲得的玉米植株頂部點(diǎn)云具有缺少紅綠藍(lán)(RGB)紋理信息的特點(diǎn),為利用SLAM點(diǎn)云進(jìn)行玉米株數(shù)識別提供了依據(jù)。本文作者提出的方法主要包括點(diǎn)云垂直度計算與垂直點(diǎn)云提取、全彩色點(diǎn)云灰度化及玉米植株頂部點(diǎn)云提取、密度聚類法玉米株數(shù)識別等步驟。
玉米植株具有典型的垂直生長特性,對于玉米植株表面點(diǎn)云,當(dāng)前查詢點(diǎn)的鄰域點(diǎn)所擬合平面與水平面之間的關(guān)系可以用垂直度[18]進(jìn)行描述,如圖1所示。對當(dāng)前查詢點(diǎn)q的近鄰點(diǎn)進(jìn)行平面擬合,將該擬合平面的法向量記為n,同時,將水平平面的法向量記為z,那么這兩個向量之間的夾角θ的余弦值定義為垂直度,用qv表示,可用下式進(jìn)行計算:
(1)
式中:θ取值范圍為[0°,180°];qv取值范圍為[0,1]。
如圖1所示,對于玉米植株點(diǎn)云,當(dāng)qv=1時,表明點(diǎn)q的垂直度最大,此時,法向量n和z的夾角為90°;當(dāng)qv=0時,表明點(diǎn)q的垂直度最小,此時,點(diǎn)q及周圍的緊鄰點(diǎn)和水平面平行。通過設(shè)置適當(dāng)?shù)拇怪倍乳撝祋th,便可對原始玉米田塊點(diǎn)云進(jìn)行垂直度分類,分離出近似垂直于地面的點(diǎn)云數(shù)據(jù)。
經(jīng)過垂直度計算,獲得近似垂直于地面的點(diǎn)云數(shù)據(jù)之后,由于真實田塊的復(fù)雜性,依然包含垂直于地面的雜草和部分地面點(diǎn)。根據(jù)SLAM設(shè)備處于側(cè)視的角度進(jìn)行數(shù)據(jù)采集缺少玉米植株頂部紋理這一特征,可采用全彩色點(diǎn)云灰度化方法進(jìn)行玉米植株頂部點(diǎn)云提取,從而去除垂直度計算過程中的非玉米植株點(diǎn)云。
本文中采用彩色轉(zhuǎn)灰度的經(jīng)典加權(quán)平均Luninance算法,該算法依據(jù)心理學(xué)公式進(jìn)行轉(zhuǎn)換,根據(jù)人眼對亮度感知而調(diào)節(jié)出的標(biāo)準(zhǔn)化參數(shù),廣泛應(yīng)用于數(shù)字圖像處理軟件,其基本算法如下式所示:
I(x,y)=0.299×R(x,y)+0.587×
G(x,y)+0.114×B(x,y)
(2)
式中,I(x,y)為(x,y)處的灰度值;R(x,y)、G(x,y)和B(x,y)分別代表(x,y)處的紅色、綠色、藍(lán)色色彩分量值。將SLAM獲得的真彩色玉米田塊3維點(diǎn)云中的RGB信息,通過Luninance算法將彩色點(diǎn)云轉(zhuǎn)換為灰度點(diǎn)云,并進(jìn)行灰度歸一化。通過灰度轉(zhuǎn)換,得到具有灰度屬性的點(diǎn)云,設(shè)定灰度閾值為Ith,便可對經(jīng)過垂直度分類的點(diǎn)云進(jìn)行玉米植株頂部提取,得到玉米植株頂部點(diǎn)云。
利用SLAM點(diǎn)云中玉米植株的豎直度特征和掃描過程中植株的先驗紋理特征進(jìn)行玉米植株頂部的自動提取之后,為了識別單株玉米并統(tǒng)計玉米植株數(shù),將基于密度的聚類算法(density-based spatial clustering of applications with noise,DBSCAN)[19-20]引入農(nóng)田環(huán)境下識別的玉米植株頂部點(diǎn)云進(jìn)行單株玉米分割,該算法包含兩個參數(shù)(ε,Pmin),其中ε表示點(diǎn)集鄰域的距離,Pmin表示在以ε為距離閾值的鄰域內(nèi)包含的最小點(diǎn)數(shù)。該算法的基本原理如圖2所示。
圖2 DBSCAN算法基本原理Fig.2 Basic principle of DBSCAN algorithm
通過DBSCAN算法,可得到單株玉米植株頂部點(diǎn)云,統(tǒng)計聚類數(shù)目,即可獲得玉米株數(shù)。
選擇黃河流域礦區(qū)的實際農(nóng)田進(jìn)行實驗,實驗區(qū)位于河南省洛陽市新安縣,實驗地塊中心地理坐標(biāo)為34.81161493°N,112.10713860°E,海拔498.73 m。該地區(qū)屬暖溫帶大陸性季風(fēng)氣候,光照充足,四季分明,北鄰黃河流域,適合玉米作物生長和種植。整個實驗田塊地勢平坦,種植密度平均為9株/m2。
采用飛馬SLAM100手持移動式激光雷達(dá)進(jìn)行實驗數(shù)據(jù)采集,該掃描儀具有360°旋轉(zhuǎn)云臺,點(diǎn)云覆蓋范圍為270°×360°,具有16個1級激光通道,內(nèi)置3顆500萬像素的攝像頭,視場角為水平200°、垂直100°,掃描頻率為320000點(diǎn)/s,最大測程達(dá)120 m,能夠同步獲取被測對象的紋理信息,生成3維真彩色點(diǎn)云和局部全景影像,將獲取的點(diǎn)云進(jìn)行手動裁剪,去除田塊周邊的雜亂數(shù)據(jù)之后,獲得實驗玉米田塊全彩色點(diǎn)云如圖3所示。
圖3 實驗玉米田塊的全彩色點(diǎn)云Fig.3 Color point cloud of experimental corn field
實驗玉米田塊全彩色點(diǎn)云灰度化后的點(diǎn)云如圖4所示。
圖4 實驗玉米田塊的灰度化點(diǎn)云Fig.4 Gray point cloud of experimental corn field
將實驗田塊的點(diǎn)云進(jìn)行垂直度計算,設(shè)置垂直度閾值qth=0.8,得到提取的垂直點(diǎn)云如圖5所示。
圖5 實驗玉米田塊的垂直點(diǎn)云提取結(jié)果Fig.5 Vertical point cloud extraction results of experimental corn field
設(shè)定灰度閾值Ith=0.8,得到玉米植株頂部點(diǎn)云的提取結(jié)果,如圖6所示。
圖6 實驗玉米田塊的玉米植株頂部提取結(jié)果Fig.6 Top of corn plant extraction results of experimental corn field
設(shè)置DBSCAN算法中的參數(shù)ε=0.2 m,Pmin=5,對玉米植株頂部點(diǎn)云進(jìn)行分割,得到分割后的單株玉米頂部如圖7所示。圖中,不同顏色代表不同的植株頂部(顏色隨機(jī)循環(huán)顯示),共識別出359株玉米。
圖7 實驗玉米田塊的玉米植株頂部分割結(jié)果Fig.7 Top of corn plant segmentation results of experimental corn field
不同平臺的激光雷達(dá)點(diǎn)云由于掃描點(diǎn)云密度、掃描視角、信息豐富程度等存在一定的差別,導(dǎo)致現(xiàn)有針對機(jī)載和地面架站式的激光雷達(dá)的算法并不適用于SLAM點(diǎn)云。此外,對于點(diǎn)云提取效果的分析,由于缺乏統(tǒng)一準(zhǔn)則的實驗測試數(shù)據(jù)集,因此,研究人員需要獲取特定場景和對象的點(diǎn)云數(shù)據(jù)開展實驗驗證,不同的算法之間缺乏可對比性,目前常采用目視的方式評定[21]。從圖6、圖7可以看出,采用本文中設(shè)計的算法,利用SLAM數(shù)據(jù),能夠?qū)⑻飰K的玉米植株頂部進(jìn)行分割,并實現(xiàn)玉米株數(shù)自動識別。
為進(jìn)一步定量地分析SLAM點(diǎn)云玉米植株自動識別效果,人工現(xiàn)場數(shù)實地考察實際株數(shù)為388株,與實際株數(shù)進(jìn)行比較計算,完成精度J驗證,如下式所示:
J=(1-|E-F|/F)×100%
(3)
式中:E為經(jīng)過算法自動識別的玉米株數(shù);F為實驗田塊玉米的真實種植株數(shù)。玉米株數(shù)自動識別的準(zhǔn)確率為92.53%,取得了較好的株數(shù)識別效果,進(jìn)一步驗證了利用SLAM點(diǎn)云和本文中設(shè)計方法能夠?qū)崿F(xiàn)玉米株數(shù)的自動識別,且具有參數(shù)簡單、自動化程度高等特點(diǎn)。分析原因如下:(a)利用手持移動式激光雷達(dá)進(jìn)行實驗數(shù)據(jù)采集,獲得了豐富的點(diǎn)云和紋理信息;(b)手持移動式激光雷達(dá)機(jī)動靈活,獲取的數(shù)據(jù)信息完整,避免了固定站式激光雷達(dá)遷站和不同站間點(diǎn)云配準(zhǔn)對玉米植株提取和識別的影響;(c)利用了SLAM點(diǎn)云中玉米植株的豎直度特征和掃描過程中植株的紋理特征等先驗知識;(d)使用了法向量、垂直度、Luninance、DBSCAN等成熟的算法和開源代碼,提高了SLAM點(diǎn)云玉米株數(shù)自動識別的整體穩(wěn)定性。
針對農(nóng)田環(huán)境中玉米株數(shù)識別的需求,本文中提出了一種利用SLAM點(diǎn)云的玉米株數(shù)自動識別方法,充分利用SLAM點(diǎn)云獲取的豐富紋理信息和點(diǎn)云信息,引入垂直度特征和掃描中植株點(diǎn)云的先驗紋理特征,進(jìn)而借助DBSCAN算法進(jìn)行玉米植株的區(qū)分與株數(shù)自動識別。實際農(nóng)田的數(shù)據(jù)結(jié)果表明,本文中的方法能夠?qū)崿F(xiàn)農(nóng)田玉米株數(shù)的自動識別,且參數(shù)簡單,具有較高的自動化程度,為農(nóng)田玉米株數(shù)自動識別提供了一種新的方法。