胡春華 劉 炫 計(jì)銘杰 李羽江 李萍萍
(1.南京林業(yè)大學(xué)信息科學(xué)技術(shù)學(xué)院,南京 210037;2.南京林業(yè)大學(xué)生物與環(huán)境學(xué)院,南京 210037)
為了更好地培育出優(yōu)質(zhì)的楊樹苗,對于楊樹苗的生長狀態(tài)監(jiān)測具有較大的研究意義,楊樹苗葉能反映楊樹苗的生長狀態(tài),遠(yuǎn)程無接觸測量其表型特征對楊樹苗的生長監(jiān)控具有重要意義。對于大田楊樹苗,為準(zhǔn)確測量楊樹葉表型特征參數(shù),楊樹葉的準(zhǔn)確分割是前提。目前遠(yuǎn)程測量植物幾何表型參數(shù)的手段中,大多基于二維彩色圖像、基于RGB-D、基于飛行時(shí)間法(Time of flight,ToF)以及基于點(diǎn)云數(shù)據(jù)等。
雖然目前基于二維彩色圖像的植物葉分割方法較成熟[1],但大多數(shù)基于顏色的檢測方法只有在圖像顏色特征明顯、圖像背景簡單的情況下才能取得更好的效果。當(dāng)植物葉與背景的顏色相近以及葉重疊較多時(shí),僅使用RGB圖像很難檢測單個(gè)植物葉?;诘孛婕す饫走_(dá)在大田場景中采集植物[2-3]數(shù)據(jù),該方法一般應(yīng)用于范圍較大的數(shù)據(jù)采集,價(jià)格昂貴。一些研究者采用基于SfM[4](Structure from motion)與MVS(Multi-view stereo)的三維重建方式用來獲取植物整體的三維數(shù)據(jù)[5-6]。ROSE等[6]使用SfM與MVS算法對番茄圖像進(jìn)行三維重建,計(jì)算番茄的葉面積。ITAKURA等[7]對重建的植物三維點(diǎn)云基于分水嶺算法來分割植物單個(gè)葉片,進(jìn)而測量每個(gè)葉片的面積與傾斜角。該方法一般需要從目標(biāo)周圍不同的角度拍攝圖像,生成的點(diǎn)云包含更完整、更密集的信息,但是三維重建的運(yùn)算過程需要消耗較長的時(shí)間。BAO等[8]使用雙視圖立體三維重建,用于測量高粱的葉長、葉角度等,并且分析了不同的立體重建算法之間的相關(guān)性。但是,這種傳感方式的立體重建算法較復(fù)雜。近些年,RGB-D相機(jī)價(jià)格便宜、體積小、使用方便、數(shù)據(jù)采集速度快,引入了三維空間信息能較好地解決重疊分割等難題,越來越多的研究者使用其獲取數(shù)據(jù)進(jìn)行植物表型研究。
經(jīng)典的植物葉片分割算法主要有基于顏色空間信息[9-10],基于葉片點(diǎn)云空間信息來分割出單個(gè)葉片[11-14]?;陬伾臻g信息葉片分割方法一般需要較為復(fù)雜的圖像處理過程。研究者通常利用葉片的顏色特征分割植物與背景。然后采用如基于邊緣檢測的方法、分水嶺算法或K-means等方法來分割葉片。經(jīng)典聚類算法K-means聚類算法[11]、Mean shift[12]以及密度聚類算法(Density-based spatial clustering of applications with noise,DBSCAN)[13]被用于植物單葉點(diǎn)云分割,這些算法針對復(fù)雜環(huán)境不容易識別出目標(biāo),HU等[14]提出基于LCCP(Locally convex connected patches)與K-meas++點(diǎn)云枝葉分離算法分割樹的枝干與葉片,該算法基于點(diǎn)云區(qū)域分割算法與聚類算法混合能較好地分割枝葉,但是也不能識別出葉與枝。盡管研究者提出了許多的葉片分割方法,在處理具有復(fù)雜背景的圖像時(shí),特別是背景與葉片顏色相同時(shí),經(jīng)典的顏色特征不適用,點(diǎn)云聚類分割算法難以識別種類。
隨著大數(shù)據(jù)技術(shù)發(fā)展,以及計(jì)算機(jī)運(yùn)算能力的提高,利用深層次的卷積神經(jīng)網(wǎng)絡(luò)來識別物體的想法被驗(yàn)證。KRIZHEVSKY等[15]設(shè)計(jì)的深層次卷積神經(jīng)網(wǎng)絡(luò)AlexNet奪得ILSVRC的冠軍,性能大大超過傳統(tǒng)識別方法。由此,深度學(xué)習(xí)計(jì)算機(jī)視覺領(lǐng)域產(chǎn)生了圖像分類、圖像分割、目標(biāo)檢測等任務(wù)。LONG等[16]提出了全卷積網(wǎng)絡(luò)(Fully convolutional networks,F(xiàn)CN)的思想,利用卷積神經(jīng)網(wǎng)絡(luò)對圖像中每一個(gè)像素進(jìn)行類別判斷,引出了卷積神經(jīng)網(wǎng)絡(luò)的語義分割研究領(lǐng)域。隨后,研究人員在醫(yī)學(xué)圖像分割、視覺導(dǎo)航等場景中利用深度學(xué)習(xí)技術(shù)開展大量研究[17]。GIRSHICK等[18]提出了R-CNN,實(shí)現(xiàn)了利用深度學(xué)習(xí)進(jìn)行目標(biāo)檢測。之后,又對網(wǎng)絡(luò)的結(jié)構(gòu)進(jìn)行優(yōu)化,提出了Fast R-CNN[19],提升了R-CNN的檢測速度與精度。REN等[20]在Fast R-CNN的基礎(chǔ)上提出了Faster R-CNN,進(jìn)一步優(yōu)化網(wǎng)絡(luò)性能。實(shí)例分割將以上任務(wù)集成化,具有速度快、提取特征深和魯棒性強(qiáng)的優(yōu)勢,因此該技術(shù)已經(jīng)在農(nóng)業(yè)研究中廣泛應(yīng)用[21-22]。其中應(yīng)用較多的方法為Mask R-CNN[23],實(shí)現(xiàn)了以較高準(zhǔn)確度對圖像中每個(gè)物體進(jìn)行像素級分割,但是該算法在分割密集目標(biāo)時(shí)容易受到鄰近目標(biāo)的干擾,產(chǎn)生預(yù)測區(qū)域的重合,這會增大表型參數(shù)預(yù)測誤差。語義分割的目標(biāo)是對圖像中每一個(gè)像素進(jìn)行分類,與實(shí)例分割不同的是,該算法并沒有分離同一個(gè)類的實(shí)例,而是只考慮圖像中每個(gè)像素的類別。FCN去除了網(wǎng)絡(luò)任務(wù)中的全連接層,改為全卷積層,采用上采樣的方式將圖像還原到原始尺寸,分割圖像中容易丟失細(xì)節(jié)且邊緣模糊。BADRINARAYANAN等[24]提出了SegNet網(wǎng)絡(luò)模型,SegNet基于FCN,是對VGG16網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行修改而得到的語義分割網(wǎng)絡(luò),增強(qiáng)了圖像分割的效果,通過端到端、像素到像素的訓(xùn)練實(shí)現(xiàn)目標(biāo)分割。
本文采用RGB-D相機(jī)采集大田楊樹苗的彩色RGB圖像、深度數(shù)據(jù)以及RGB-D融合數(shù)據(jù),針對融合數(shù)據(jù)采用語義分割算法SegNet對目標(biāo)區(qū)域進(jìn)行提取,并提出結(jié)合三維點(diǎn)云數(shù)據(jù)空間的幾何距離kd-tree法分割出單片楊樹葉。
采集樣本為江蘇省泗洪縣陳圩林場大田種植的南林3804楊樹苗,生長時(shí)間約80 d,數(shù)據(jù)采集時(shí)間為2020年7月21—25日。采集設(shè)備為Kinect V2相機(jī),離地1.3 m左右,固定于相機(jī)三腳架上。因?yàn)樯疃认鄼C(jī)工作距離為0.5~4.5 m,深度相機(jī)無法采集到距離小于0.5 m的點(diǎn),過近的點(diǎn)在深度數(shù)據(jù)中的值為0,顏色則會顯示為黑色,經(jīng)多次實(shí)驗(yàn)分析,工作距離為1.5~2.5 m效果較好,為更清晰地提取出重疊楊樹葉,盡可能使目標(biāo)在采集圖像中像素多,因此,本次采集樣本時(shí)相機(jī)距離楊樹苗1.5 m左右。采集的樣本圖像既包括高度密集種植的楊樹苗,也包括稀疏種植的楊樹苗。為獲得大量的樣本圖像,使用VC++編寫采集圖像程序,編程環(huán)境為Visual Studio 2015。同時(shí)采集RGB、深度圖像以及RGB-D圖像,均為1 068組。由于彩色與深度相機(jī)的位置不同,拍攝的圖像不對齊。為了準(zhǔn)確提取楊樹葉與其幾何表型特征,首先將彩色圖與深度圖進(jìn)行匹配。圖1a為RGB原圖,分辨率為1 920像素×1 080像素,圖1b為深度圖像,圖1c為配準(zhǔn)后彩色圖像,分辨率均為512像素×424像素。
圖1 配準(zhǔn)前后的彩色圖像與深度圖像Fig.1 Color image and depth image before and after registration
本文使用語義分割先從配準(zhǔn)后的彩色圖像中檢測所有的葉片像素區(qū)域,然后將莖與葉從圖像中分離。為分割出單片楊樹葉,對分割出的葉區(qū)域進(jìn)行三維點(diǎn)云重構(gòu),在三維點(diǎn)云空間,使用kd-tree聚類法來分割出單片樹葉。
SegNet是一種深度卷積神經(jīng)網(wǎng)絡(luò),能夠提取深層和抽象的特征,具有較好的圖像分割性能。SegNet的組成包括編碼器和解碼器,最后是一個(gè)像素級的分類層,結(jié)構(gòu)如圖2所示。編碼器網(wǎng)絡(luò)由13個(gè)卷積層組成,對應(yīng)于VGG16網(wǎng)絡(luò)中的前13個(gè)卷積層。該算法拋棄傳統(tǒng)卷積網(wǎng)絡(luò)中常使用的全連接層,以便在編碼器輸出的最深處保留更高分辨率的特征映射,大大減少了SegNet編碼器網(wǎng)絡(luò)中的參數(shù)數(shù)量。每一個(gè)編碼器層都有一個(gè)相應(yīng)的解碼器層,因此解碼器網(wǎng)絡(luò)有13層。
圖2 SegNet網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Structure of SegNet
編碼器網(wǎng)絡(luò)中的每個(gè)編碼器都與濾波器組進(jìn)行卷積,以生成特征圖。接著將特征圖批量標(biāo)準(zhǔn)化。然后,對特征圖上的每個(gè)元素使用線性整流函數(shù)(ReLU)。最后為寬度2×2的濾波器、步長2的最大池化層。
編碼器處理結(jié)束后,解碼器將特征信息映射到原圖像,對每一個(gè)點(diǎn)進(jìn)行分類。在解碼器中,首先進(jìn)行上采樣,將最大池化縮小的圖像尺寸增大。然后用反卷積層增強(qiáng)特征映射。最終,解碼器的輸出被送入多分類的softmax分類器,獨(dú)立地產(chǎn)生每個(gè)像素的類別概率。
從圖3可以發(fā)現(xiàn),對于包含多株楊樹苗的圖像,圖3a為配準(zhǔn)后的彩色圖像,通過SegNet算法能夠識別出大多數(shù)的葉片與莖。如圖3b所示,可以較好地將楊樹葉與莖區(qū)分開。如圖3c所示,像素較為稠密的葉片大部分被保存了下來,少部分像素較為稀疏的葉片被識別成了背景。
圖3 SegNet對多株楊樹苗圖像的識別效果Fig.3 Leaf segmentation results for multiple poplar seedlings using SegNet
為了分割出單片楊樹葉,特別是重疊楊樹葉,本文將SegNet分割出的楊樹葉彩色圖像與深度圖像融合轉(zhuǎn)換為三維點(diǎn)云,再使用三維點(diǎn)云聚類方法進(jìn)行單葉分割。
利用深度相機(jī)的內(nèi)參將深度圖像轉(zhuǎn)換為三維點(diǎn)云的公式為
(1)
式中i——點(diǎn)云序號
N——點(diǎn)云數(shù)量
(xi,yi,zi)——像素i的三維坐標(biāo)
(ui,vi)——像素i在深度圖像坐標(biāo)系下的坐標(biāo)
D——深度圖像
(Ux,Uy)——紅外相機(jī)主點(diǎn)的像素坐標(biāo)
fx——紅外相機(jī)的X方向焦距
fy——紅外相機(jī)的Y方向焦距
基于SegNet檢測的楊樹葉像素區(qū)域并沒有對單葉進(jìn)行分割,所以本文采用點(diǎn)云聚類來分割單葉。為了進(jìn)行單葉聚類,首先用式(1)將圖像轉(zhuǎn)換為三維點(diǎn)云,然后使用歐幾里得kd-tree聚類算法來聚類。歐幾里得kd-tree聚類算法原理如下:
(1)為輸入點(diǎn)云數(shù)據(jù)集P創(chuàng)建一個(gè)kd-tree表示。
(2)建立一個(gè)空的集群C列表,需要檢查點(diǎn)隊(duì)列Q。
(4)當(dāng)所有pi∈P的點(diǎn)都處理完后,所有點(diǎn)都是點(diǎn)集群C列表的一部分,算法終止。
將數(shù)據(jù)分為訓(xùn)練集、驗(yàn)證集、測試集,作為深度學(xué)習(xí)的數(shù)據(jù)集。訓(xùn)練集共641組圖像,驗(yàn)證集共214組圖像,測試集共213組圖像。采用標(biāo)注軟件VIA(VGG image annotator),該軟件基于網(wǎng)頁進(jìn)行標(biāo)注,對環(huán)境沒有較大的依賴,使用方便。程序運(yùn)行環(huán)境為Nvidia GTX 1080Ti GPU處理器,內(nèi)存為32GB RAM,操作系統(tǒng)為Ubuntu 18.04系統(tǒng)。
大田種植楊樹苗有的種植比較稀疏,有的種植比較密集。因此,為了驗(yàn)證分割方法對不同情況的有效性,本次實(shí)驗(yàn)進(jìn)行包含單株、多株楊樹苗的圖像的葉片分割效果測試,比較不同深度學(xué)習(xí)算法的分割效果。然后對語義分割檢測出的楊樹葉片像素點(diǎn)轉(zhuǎn)換到三維空間,采用三維點(diǎn)云kd-tree聚類算法進(jìn)行單葉分割。針對單葉分割的閾值設(shè)定問題,進(jìn)行了多次實(shí)驗(yàn),以選取合適的閾值參數(shù)。
訓(xùn)練網(wǎng)絡(luò)選擇VGG16,訓(xùn)練使用sgdm隨機(jī)梯度下降法,動(dòng)量為0.9,學(xué)習(xí)率為0.001,最小批大小為2,訓(xùn)練次數(shù)設(shè)置為2 000。為了驗(yàn)證模型的性能,本文使用準(zhǔn)確率來評估分割性能,考慮分割結(jié)果中的正確點(diǎn)和錯(cuò)誤點(diǎn),突出反映了重疊葉片的分割效果。利用交并比表示目標(biāo)的測量結(jié)果和目標(biāo)實(shí)際位置的重合度。SegNet模型檢測結(jié)果的準(zhǔn)確率與交并比如表1所示。由表1可知,SegNet模型分割的楊樹葉區(qū)域與莖區(qū)域效果均優(yōu)于經(jīng)典FCN模型。
表1 SegNet與FCN模型的檢測性能分析Tab.1 Detection performance of SegNet and FCN model %
圖4 不同閾值歐幾里得聚類算法對單株楊樹苗葉片的分割結(jié)果Fig.4 Leaf segmentation results of single poplar seedling using Euclidean clustering at different thresholds
圖5 不同閾值歐幾里得聚類算法對多楊樹苗葉片的分割結(jié)果Fig.5 Leaf segmentation results of multiple poplar seedlings using Euclidean clustering at different thresholds
經(jīng)過SegNet獲得的葉片區(qū)域需要采用kd-tree聚類算法分割出單個(gè)楊樹葉,由于點(diǎn)過于稀疏的葉片難以清晰地觀測到,為了保留能夠?qū)嶋H觀測到的葉片,去掉較小的葉片與噪點(diǎn),設(shè)置過濾閾值為100,用于去除點(diǎn)數(shù)小于100的簇,保留點(diǎn)數(shù)大于100的簇。圖4、5為楊樹苗圖像進(jìn)行單葉分割的結(jié)果,可以發(fā)現(xiàn),隨著閾值的增大,將距離相近的重疊葉片聚為同類的情況越來越多。除此以外,還出現(xiàn)了不同株楊樹苗葉片之間的重疊問題。
由圖4、5可知,經(jīng)kd-tree聚類算法的處理,大部分的葉片都能利用距離分離,少部分的葉片由于本身的點(diǎn)云較稀疏,只識別了小塊區(qū)域,這種情況在閾值較小時(shí)更為明顯。閾值選擇過小時(shí)會造成過分割。閾值為7 mm時(shí),如圖4a、5a能較好地區(qū)分開單片葉,但是部分稀疏點(diǎn)云葉片未被保留。隨著閾值的增大,算法會將空間距離較近的葉片聚到一起,如圖4b所示,閾值為8 mm時(shí),上側(cè)的2個(gè)葉片被聚為一類。閾值為9 mm時(shí),算法將上側(cè)的3個(gè)葉片聚為一類,如圖4c所示。由圖5可以發(fā)現(xiàn),隨著閾值的增大,將距離相近的重疊葉片聚為同類的情況越來越多。除此以外,還出現(xiàn)了不同株楊樹苗葉片之間的重疊問題。然而閾值為8、9 mm時(shí),能將左側(cè)點(diǎn)較稀疏的葉片整體保存下來,雖然導(dǎo)致了相鄰的葉片識別為同一葉片。閾值為8 mm時(shí),如圖5b所示,該閾值下葉片沒有較多的過分割,也沒有將過多的相連葉片聚為同類,該閾值的聚類效果取得了綜合平衡。如果閾值選擇過大,則會造成聚類到大量的相連葉片,如圖5c所示,左側(cè)右側(cè)葉片均聚類為同一葉片。
為更好地選擇合適的閾值,對葉片分割準(zhǔn)確率與召回率進(jìn)行了進(jìn)一步分析。不同閾值對應(yīng)葉片分割效果如表2所示,閾值為7 mm時(shí),獲得葉片準(zhǔn)確率與召回率較低,閾值為8 mm時(shí),獲得的準(zhǔn)確率雖然比閾值9 mm時(shí)低,但召回率較高。綜合葉片分割顯示結(jié)果與葉片分割率分析,閾值8 mm對于單株與多株楊樹苗分割效果較好。
表2 不同閾值對應(yīng)的葉片分割效果Tab.2 Leaf segmentation performance at different thresholds %
(1)為獲得葉片的三維點(diǎn)云數(shù)據(jù),對相機(jī)進(jìn)行了標(biāo)定,并對采集的彩色圖像數(shù)據(jù)RGB與深度數(shù)據(jù)進(jìn)行了對齊處理,獲得RGB-D融合的數(shù)據(jù)。
(2)設(shè)計(jì)了適合葉片區(qū)域與樹干區(qū)域分割的SegNet網(wǎng)絡(luò)結(jié)構(gòu),對樣本區(qū)域進(jìn)行大量的訓(xùn)練,并與FCN進(jìn)行了對比分析,本文的SegNet模型對葉、莖檢測的準(zhǔn)確率分別為94.4%、97.5%,交并比分別為75.9%、67.9%,而FCN對葉、莖檢測的準(zhǔn)確率分別為86.9%、92.3%,交并比分別為61.7%、59.2%,結(jié)果表明本文設(shè)計(jì)的SegNet模型優(yōu)于FCN模型,適合楊樹枝葉區(qū)域分割。
(3)為獲得單個(gè)楊樹葉,對葉片區(qū)域進(jìn)行了三維點(diǎn)云重建,采用基于kd-tree的歐幾里得聚類算法分割出單個(gè)楊樹葉。為獲得準(zhǔn)確的距離分割閾值,分析了閾值為7、8、9 mm時(shí)的點(diǎn)云歐幾里得聚類算法對分割葉片效果的影響,表明閾值為8 mm時(shí)綜合效果最優(yōu),能夠較多地分割出單個(gè)葉片,并且較少的出現(xiàn)過分割現(xiàn)象。