蘇寶峰 劉易雪 王 琮 米志文 王方圓
(1.西北農(nóng)林科技大學(xué)機(jī)械與電子工程學(xué)院, 陜西楊凌 712100; 2.農(nóng)業(yè)農(nóng)村部農(nóng)業(yè)物聯(lián)網(wǎng)重點(diǎn)實(shí)驗(yàn)室, 陜西楊凌 712100;3.西安交通大學(xué)機(jī)械工程學(xué)院, 西安 710049)
提高植物表型的獲取效率是研究植物生理機(jī)制過(guò)程亟待解決的問(wèn)題。植物表型數(shù)據(jù)的缺失限制了研究人員對(duì)數(shù)量性遺傳性狀分析的能力[1-2]。借助智能化設(shè)備鑒定植物表型是智慧農(nóng)業(yè)的重要組成部分[3-4]。葉面積的測(cè)定是植物生理機(jī)制研究中一項(xiàng)基本測(cè)定,無(wú)損鑒定植物的葉面積可為研究植物的光合效率等生理機(jī)制提供數(shù)據(jù)支撐[5]。
目前較為流行的葉面積測(cè)定方法為使用手持設(shè)備、通過(guò)單一圖像處理的方式測(cè)定葉片面積[6-7]。然而,從單一圖像測(cè)定葉面積的方法不能滿足表型數(shù)據(jù)高通量獲取的要求,利用三維重建結(jié)構(gòu)技術(shù)獲取葉片形態(tài)成為研究無(wú)損估測(cè)葉面積的新方向[8-11]。
目前常見(jiàn)的三維點(diǎn)云獲取設(shè)備主要有基于激光掃描原理的FastScan、Vivid9i,利用結(jié)構(gòu)光獲取對(duì)象深度信息原理的Microsoft Kinect、3D Scanner等儀器以及基于雙目相機(jī)的立體視覺(jué)系統(tǒng)[12-22]。文獻(xiàn)[16]通過(guò)三維掃描儀完成了對(duì)蘋果葉片的三維重建。文獻(xiàn)[17]使用FastScan對(duì)煙草植株進(jìn)行掃描,得到煙草植株的三維結(jié)構(gòu)。文獻(xiàn)[18]把獲取的深度信息和顏色信息進(jìn)行配準(zhǔn)后,獲得了包含顏色和紋理信息的油菜三維重建模型。文獻(xiàn)[19]改進(jìn)了使用Kinect重建植株三維點(diǎn)云的配準(zhǔn)方法。文獻(xiàn)[20]使用消費(fèi)級(jí)深度相機(jī)對(duì)玉米植株進(jìn)行了三維重建,并提出了去噪方法。文獻(xiàn)[21]使用Kinect重建了玉米的三維模型,并提出了有效去除離群點(diǎn)的方法。文獻(xiàn)[22]提出了一種基于雙目視覺(jué)的能量最低模型,以此估計(jì)植物的葉面積、高度及地上生物量。
然而,這些方法均存在成本較高、對(duì)應(yīng)用環(huán)境要求苛刻等問(wèn)題。使用激光掃描儀雖然可以獲得精確的三維點(diǎn)云,但所需成本高,數(shù)據(jù)處理過(guò)程繁瑣,適用性不強(qiáng);基于結(jié)構(gòu)光的深度圖像系統(tǒng)對(duì)光照環(huán)境的配置要求高;雙目立體視覺(jué)系統(tǒng)使用前需人工校正相機(jī)。運(yùn)動(dòng)恢復(fù)結(jié)構(gòu)算法的提出降低了對(duì)點(diǎn)云獲取設(shè)備和環(huán)境的要求,可基于消費(fèi)級(jí)相機(jī)獲取的多幅圖像實(shí)現(xiàn)三維重建[23]。文獻(xiàn)[24]使用運(yùn)動(dòng)恢復(fù)結(jié)構(gòu)算法對(duì)株高大于50 cm大豆和向日葵進(jìn)行三維重建,并對(duì)整株植株進(jìn)行了分割。雖然詳細(xì)地描述了點(diǎn)云獲取過(guò)程,然而針對(duì)點(diǎn)云分割處理的問(wèn)題,僅分割出植株上的葉片,未能分割出單一葉片。
針對(duì)上述問(wèn)題,本文提出面向智能手機(jī)平臺(tái)獲取圖像進(jìn)行植物3D表型信息提取的方法。該方法通過(guò)運(yùn)動(dòng)恢復(fù)結(jié)構(gòu)(Structure from motion,SfM)對(duì)智能手機(jī)獲取的圖像進(jìn)行處理,獲取點(diǎn)云數(shù)據(jù),針對(duì)點(diǎn)云數(shù)據(jù)處理問(wèn)題,采用顏色特征閾值分割算法實(shí)現(xiàn)點(diǎn)云去噪,采用聚類算法實(shí)現(xiàn)點(diǎn)云分割;針對(duì)離散點(diǎn)云的表面重建問(wèn)題,采用滾球算法對(duì)點(diǎn)云進(jìn)行表面重建,得到網(wǎng)格模型,以實(shí)現(xiàn)葉片面積的計(jì)算。
以3株株高約為30 cm的盆栽赤霞珠葡萄植株為對(duì)象,編號(hào)1、2、3,1號(hào)植株葉片數(shù)量為5,葉片重疊率較低;2號(hào)植株的葉片數(shù)量為9,葉片重疊率適中;3號(hào)植株的葉片數(shù)量為10,葉片重疊率較高,如圖1所示。
圖1 實(shí)驗(yàn)用盆栽赤霞珠葡萄植株Fig.1 Potted Cabernet sauvignon grape
本文使用圖像采集平臺(tái)為iPhone xs Max。依賴其f/1.8光圈的1 200萬(wàn)像素主廣角鏡頭采集圖像。為保證圖像采集平臺(tái)的可替代性,拍攝模式采用默認(rèn)的自動(dòng)對(duì)焦方式,禁止閃光,禁止獲取HDR圖像。先經(jīng)過(guò)預(yù)備實(shí)驗(yàn),手持手機(jī)在距葡萄樹(shù)苗0.5 m的范圍內(nèi)連續(xù)采集圖像以獲取更多的細(xì)節(jié)信息。采集的圖像尺寸為3 024像素×4 032像素,圖像的文件格式為JPG。1號(hào)植株采集了78幅圖像,記為1號(hào)圖像集;2號(hào)植株采集了65幅圖像,記為2號(hào)圖像集;3號(hào)植株采集了109幅圖像,記為3號(hào)圖像集。
針對(duì)使用普通消費(fèi)級(jí)相機(jī)重建目標(biāo)三維模型的問(wèn)題,運(yùn)動(dòng)恢復(fù)結(jié)構(gòu)算法是一種常見(jiàn)的三維重建方法,是一種利用存在信號(hào)耦合的圖像序列估測(cè)目標(biāo)物體三維結(jié)構(gòu)的攝像測(cè)量技術(shù)。
運(yùn)動(dòng)恢復(fù)結(jié)構(gòu)算法使用SIFT算法完成圖像特征點(diǎn)匹配。SIFT算法通過(guò)提取局部圖像特征處理圖像平移、旋轉(zhuǎn)尺度變換的干擾問(wèn)題,降低對(duì)圖像拍攝的要求。提取特征點(diǎn)(基于高斯差分法的尺度空間極值點(diǎn))后對(duì)提取到的特征點(diǎn)附加詳細(xì)信息,再通過(guò)兩幅圖像間的特征點(diǎn)找出匹配對(duì),建立物體間的對(duì)應(yīng)關(guān)系[25-26]。檢測(cè)兩幅圖像的所有特征點(diǎn),計(jì)算第2幅圖像特征點(diǎn)的特征向量集合與第1幅圖像特征點(diǎn)特征向量集合的歐氏距離,然后對(duì)獲得的所有歐氏距離進(jìn)行比較,其中最小的歐氏距離對(duì)應(yīng)特征向量的特征點(diǎn)就是兩幅圖像所匹配的特征點(diǎn)[27]。
使用光束平差算法優(yōu)化后,對(duì)稀疏點(diǎn)云對(duì)應(yīng)的特征點(diǎn)周圍像素進(jìn)行擴(kuò)展,形成密集點(diǎn)云。
目前能實(shí)現(xiàn)運(yùn)動(dòng)恢復(fù)結(jié)構(gòu)算法的軟件有OpenVMS、Pix4D Mapper、Agisoft PhotoScan等。本文選擇Agisoft PhotoScan軟件進(jìn)行點(diǎn)云獲取。將3個(gè)圖像集分別導(dǎo)入Agisoft PhotoScan對(duì)3株葡萄進(jìn)行三維重建,重復(fù)驗(yàn)證本文所提方法。使用Agisoft PhotoScan中的長(zhǎng)度測(cè)量工具測(cè)量標(biāo)尺長(zhǎng)度,與實(shí)際值換算得出點(diǎn)云數(shù)據(jù)的比例尺。
處理點(diǎn)云數(shù)據(jù)實(shí)現(xiàn)葉面積的計(jì)算過(guò)程如下:①分割背景點(diǎn)云。②基于HSV顏色空間使用閾值分割法去除植株點(diǎn)云的噪點(diǎn)。③使用K-means聚類算法對(duì)點(diǎn)云的三維坐標(biāo)矩陣進(jìn)行分類,實(shí)現(xiàn)單片葉片點(diǎn)云的分割。④基于滾球算法重建了葉片的表面網(wǎng)格模型。⑤通過(guò)計(jì)算網(wǎng)格面積求得葉片面積。
1.3.1背景點(diǎn)云分割
針對(duì)密集點(diǎn)云數(shù)據(jù)繁雜背景分割的問(wèn)題,使用MeshLab中的濾波器工具提取葡萄盆栽的點(diǎn)云,去除背景點(diǎn)云。
1.3.2植株點(diǎn)云去噪
噪點(diǎn)主要存在于葉片表面周圍以及下側(cè),主要源自葉片表面反光導(dǎo)致的特征點(diǎn)匹配錯(cuò)誤產(chǎn)生的錯(cuò)誤點(diǎn)以及在葉片遮擋下枝干的特征點(diǎn)匹配錯(cuò)誤產(chǎn)生的錯(cuò)誤點(diǎn)。噪點(diǎn)的顏色特征區(qū)別于葉片點(diǎn)云特征,因此將顏色特征作為閾值區(qū)分出噪點(diǎn)。使用Matlab Color Threshold工具箱提取葉片的顏色閾值創(chuàng)建掩膜函數(shù)。選取HSV顏色空間作為特征,在Color Threshold可視化界面中,提取葉片顏色特征邊界值,通道1的閾值范圍為[50.623,83.666],通道2的閾值范圍為[-41.963,-12.479],通道3的閾值范圍為[-25.137,39.775],創(chuàng)建掩膜矩陣BW。以點(diǎn)云數(shù)據(jù)的顏色矩陣C為對(duì)象,生成新的顏色矩陣R。以掩模矩陣BW為索引,生成這些點(diǎn)新的坐標(biāo)矩陣L。將矩陣R、L寫為點(diǎn)云格式,得到去噪后的植株點(diǎn)云。
1.3.3單個(gè)葉片點(diǎn)云分割
根據(jù)葉片在植株上的分布情況,任意兩片葉片間存在一定距離,采用無(wú)監(jiān)督聚類算法完成單片葉片點(diǎn)云的分割工作。對(duì)經(jīng)過(guò)去噪處理后的植株點(diǎn)云使用K-means算法對(duì)點(diǎn)云數(shù)據(jù)的三維坐標(biāo)矩陣進(jìn)行分類。K-means算法的目標(biāo)是把n個(gè)樣本點(diǎn)劃分到k個(gè)不同類簇里,在樣本中隨機(jī)選取k個(gè)初始中心,然后對(duì)靠近它的點(diǎn)進(jìn)行歸類,通過(guò)迭代的方法,每次在每個(gè)聚類中重新計(jì)算中心值,然后再比較聚類中心間的距離,直到達(dá)到所設(shè)定的收斂條件后聚類結(jié)束。對(duì)應(yīng)不同的植株,在分割時(shí)將k值設(shè)置為對(duì)應(yīng)的葉片數(shù)量。
1.3.4葉片點(diǎn)云表面重建
為了還原不規(guī)則葉片表面形狀,針對(duì)葉片表面卷曲不平整的問(wèn)題,以單個(gè)葉片離散點(diǎn)云為對(duì)象,使用滾球算法(Ball pivoting)重建葉片的表面網(wǎng)格模型。滾球算法的原理是首先在點(diǎn)云中隨機(jī)尋找到一個(gè)種子三角形,然后滾球算法會(huì)在這個(gè)種子三角形邊界內(nèi)滾動(dòng)一個(gè)預(yù)先給定直徑的小球,當(dāng)這個(gè)小球碰到三角形邊界外的另外一個(gè)點(diǎn)時(shí)就組成另外一個(gè)三角形。滾球算法的收斂條件是當(dāng)所有的邊界都被滾動(dòng)到且沒(méi)有多余的點(diǎn)再組成三角形[27]。根據(jù)點(diǎn)云的密集程度,設(shè)置收斂條件為小球半徑為聚類半徑的20%,最大閾值角度為90°,在MeshLab中實(shí)現(xiàn)這一算法。
1.3.5葉片面積計(jì)算
通過(guò)統(tǒng)計(jì)葉片表面的三角網(wǎng)格面積計(jì)算出葉片的表面積。使用Matlab處理點(diǎn)云表面模型,基于海倫凱勒公式計(jì)算得到單個(gè)網(wǎng)格三角形的面積以求得葉片面積。計(jì)算網(wǎng)格面積公式為
根據(jù)表4中數(shù)據(jù)可知,以FPS的大小評(píng)估算法的檢測(cè)速度,可知Faster-RCNN不能滿足無(wú)人車障礙物檢測(cè)系統(tǒng)所需的實(shí)時(shí)性;以mAP值評(píng)估算法的檢測(cè)精度,可知表4目標(biāo)檢測(cè)算法中DSSD算法檢測(cè)精度最高,且在任一類別的目標(biāo)檢測(cè)上,DSSD算法均優(yōu)于其它算法。當(dāng)FPS滿足20時(shí)即可保持畫(huà)面的流暢[13],故DSSD算法可以保證無(wú)人車障礙物檢測(cè)系統(tǒng)的檢測(cè)準(zhǔn)確率和實(shí)時(shí)性需要。
(1)
式中A——每個(gè)三角網(wǎng)格的面積,cm2
r——三角網(wǎng)格序號(hào)
S——植物葉片的總面積,cm2
n——三角網(wǎng)格總數(shù)
通過(guò)植物的三維模型比例尺的比例變換得出植物葉片面積的計(jì)算值。
使用1.2節(jié)中的點(diǎn)云獲取方法獲取葡萄植株的三維點(diǎn)云數(shù)據(jù)與相機(jī)姿態(tài)如圖2所示。
圖2 三維重建結(jié)果Fig.2 Result of 3D reconstruction
對(duì)于1號(hào)植株,校對(duì)78幅圖像后,生成34 508個(gè)特征點(diǎn),得到了3 329 326個(gè)密集點(diǎn)云;對(duì)于2號(hào)植株,校對(duì)65幅圖像后,生成了33 791個(gè)特征點(diǎn),得到了3 566 248個(gè)密集點(diǎn)云;對(duì)于3號(hào)植株,校對(duì)109幅圖像后,生成了79 567個(gè)特征點(diǎn),得到了4 017 324個(gè)密集點(diǎn)云。由結(jié)果可以看出,使用運(yùn)動(dòng)恢復(fù)結(jié)構(gòu)算法處理可見(jiàn)光圖像可以恢復(fù)出目標(biāo)的三維實(shí)景模型,重建效果好。這種三維重建的方法對(duì)原始圖像采集平臺(tái)以及采集方式的要求低,便于操作。
單個(gè)葉片分割結(jié)果如圖5所示。從分割結(jié)果來(lái)看,本文所提分割方法適合離散分布的葉片點(diǎn)云的分割。
葉片表面重建結(jié)果如圖6所示。重建結(jié)果表明,使用滾球算法可以滿足還原葉片的形狀的需求,得到接近實(shí)際的葉片表面模型。
圖3 葡萄葉片提取結(jié)果Fig.3 Extraction results of plant point clouds
圖4 植株點(diǎn)云去噪結(jié)果Fig.4 Denoising results of plant point cloud
圖5 葉片點(diǎn)云分割結(jié)果Fig.5 Results of leaf point cloud segmentation
圖6 葉片表面重建結(jié)果Fig.6 Result of leaf surface reconstruction
為了評(píng)估實(shí)驗(yàn)結(jié)果,本文對(duì)比了目前常見(jiàn)的葉面積測(cè)定方法。分別使用葉形紙稱量法[30-31]、掃描葉片法[32]測(cè)定了3株葡萄的葉片面積并對(duì)比測(cè)定結(jié)果。
在使用葉形紙稱量法進(jìn)行測(cè)量時(shí),選用標(biāo)準(zhǔn)A4紙,用分析天平準(zhǔn)確稱量后,得出A4紙的面積質(zhì)量比。用鉛筆在紙上準(zhǔn)確勾勒出每片葡萄葉片的形狀后剪出并稱量,經(jīng)過(guò)換算得到了葉片面積。
在使用掃描葉片法進(jìn)行測(cè)量時(shí),采摘葉片后將葉片平鋪放置于打印機(jī)的掃描面板上,使用的打印機(jī)型號(hào)為Brother MFC-7860DN Printer,二值化處理掃描圖像后,統(tǒng)計(jì)得出每株葡萄的葉片面積值。
將上述兩種方法得到的結(jié)果與本文方法得出的結(jié)果進(jìn)行比較,見(jiàn)表1。
表1 葉片面積計(jì)算結(jié)果Tab.1 Calculation results of leaf area cm2
通過(guò)對(duì)比計(jì)算結(jié)果可知,本文方法的計(jì)算結(jié)果貼近其他兩種常見(jiàn)的葉面積測(cè)定方法。相比這兩種通過(guò)直接收割葉片測(cè)定面積的方法,本文方法沒(méi)有破壞性。1、2、3號(hào)植株的葉片重疊情況不等,但就處理結(jié)果來(lái)看,本文方法具有一定的穩(wěn)健性。1、2、3號(hào)植株的葉片面積大小不一,面積最小的葉片僅有1 cm2左右,但結(jié)果表明,本文方法的計(jì)算結(jié)果與其他兩種方法對(duì)比的誤差仍然很小。使用其計(jì)算結(jié)果與使用掃描法測(cè)定的面積相比,1號(hào)植株的平均誤差為1.67 cm2,誤差占葉片面積的平均百分比為6.39%;2號(hào)植株的平均誤差為1.16 cm2,誤差占葉片面積的平均百分比為4.41%;3號(hào)植株的平均誤差為0.79 cm2,誤差占葉片面積的平均百分比為3.21%。3次重復(fù)實(shí)驗(yàn)結(jié)果平均誤差為1.21 cm2(平均百分比4.67%);與葉形紙稱量法測(cè)定值相比,1號(hào)植株的平均誤差為1.58 cm2,誤差占葉片面積的平均百分比為4.51%;2號(hào)植株的平均誤差為1.66 cm2,誤差占葉片面積的平均百分比為8.96%;3號(hào)植株的平均誤差為1.00 cm2,誤差占葉片面積的平均百分比為4.67%。3次重復(fù)實(shí)驗(yàn)結(jié)果平均誤差為1.41 cm2(平均百分比6.05%)。誤差分析如表2所示。
表2 葉片面積誤差分析Tab.2 Error analysis cm2
目前在田間無(wú)損測(cè)定植物的葉面積主要采用手持設(shè)備獲取單一圖像并對(duì)圖像處理的方法[31-33]。在本文中,使用圖像處理法估測(cè)3株植株的葉面積以作對(duì)比。使用1.3節(jié)中同樣的手機(jī)采集每株葡萄的圖像,在采集過(guò)程中放置面積為25 cm2的黑色方格紙作為參照標(biāo)志。首先使用Matlab中Image Labeler工具對(duì)黑色方格紙進(jìn)行標(biāo)記,并使用Canny算子提取出黑色方格紙的輪廓,腐蝕填充后統(tǒng)計(jì)像素?cái)?shù)。使用閾值分割法對(duì)葉片進(jìn)行分割,選取L*a*b顏色空間作為特征,設(shè)置通道1的閾值范圍為[0.555,0.647],通道2的閾值范圍為[0.431,0.497],通道3的閾值范圍為[0.503,0.497 4],使用Canny算子提取葉片的輪廓,腐蝕填充后得到葉片的像素?cái)?shù),換算得出每株葉片的估測(cè)值。
使用單一圖像法處理得到的植株整株葉面積之和估測(cè)值與本文方法及葉形紙稱量法、掃描法的結(jié)果對(duì)比如表3所示。結(jié)果表明,在獲取整株植株的葉片面積時(shí),使用單一圖像處理方法估測(cè)的葉面積結(jié)果與葉形紙稱量法相比,3次重復(fù)實(shí)驗(yàn)的平均誤差為53.05 cm2;與掃描法相比,3次重復(fù)實(shí)驗(yàn)的平均誤差為80.10 cm2。使用三維重建法估測(cè)的結(jié)果與葉形紙稱量法相比,3次重復(fù)實(shí)驗(yàn)的平均誤差為37.93 cm2;與掃描法相比, 3次重復(fù)實(shí)驗(yàn)的平均誤差為5.07 cm2。一方面來(lái)看,誤差來(lái)源可能是在實(shí)際情況中大多數(shù)葉片是彎曲的、不平整的。基于圖像處理的方法可能很難解決不在同一平面內(nèi)的扭曲葉面的面積估測(cè)問(wèn)題,然而這為基于三維點(diǎn)云的葉面積估測(cè)方法帶來(lái)了機(jī)遇。從另一方面來(lái)看,在處理從單一視角獲取的植株圖像時(shí),基于Canny算子提取葉片區(qū)域的方法無(wú)法很好地解決葉片間的重疊問(wèn)題,在處理重疊的葉片時(shí),會(huì)被誤認(rèn)為這是一個(gè)聯(lián)通的區(qū)域,而非分離的區(qū)域,如圖7所示。這也是偏差較大的原因之一。
表3 與圖像法結(jié)果對(duì)比Tab.3 Comparison results between proposed methods and image processing cm2
結(jié)果表明,針對(duì)整個(gè)植株的單個(gè)葉片面積測(cè)定問(wèn)題,本文無(wú)損精確測(cè)定葉片面積的方法是可靠的。相比處理單一圖像來(lái)估測(cè)葉面積的方法,本文方法更能處理葉片重疊、葉片卷曲等現(xiàn)象導(dǎo)致計(jì)算有誤的問(wèn)題。相比其他方法重建植株的三維點(diǎn)云模型的方法,本文方法不需要搭載復(fù)雜的系統(tǒng),也不需要對(duì)相機(jī)進(jìn)行校正,操作更加簡(jiǎn)便且成本低廉。
圖7 葉片區(qū)域提取過(guò)程Fig.7 Leaf area extraction based on image processing
(1)使用運(yùn)動(dòng)恢復(fù)結(jié)構(gòu)算法處理智能手機(jī)所獲取的植物圖像,對(duì)植物進(jìn)行三維點(diǎn)云模型重建,提出了一種葉片點(diǎn)云分割、表面重建方法及葉片面積無(wú)損估測(cè)的方法。該方法適用于日常圖像獲取平臺(tái),成本低廉,操作簡(jiǎn)單,且獲取的點(diǎn)云數(shù)據(jù)還原度較高。
(2)相比常規(guī)測(cè)定葉片面積的方法,本文方法的計(jì)算結(jié)果與掃描葉片法測(cè)定值相比平均誤差為1.21 cm2,誤差占葉片面積的平均百分比為4.67%;與葉形紙稱量法測(cè)定值相比平均誤差為1.41 cm2,誤差占葉片面積的平均百分比為6.05%。表明該方法具有較高的可靠性。