謝源,苗玉彬,張舒
(上海交通大學(xué)機(jī)械與動(dòng)力工程學(xué)院,上海200240)
表型是作物在生長發(fā)育過程中可觀測(cè)的外表特征,能夠反映植株的生長發(fā)育情況,表型監(jiān)測(cè)在水肥運(yùn)籌,倒伏檢測(cè),產(chǎn)量預(yù)測(cè)等領(lǐng)域具有重要的應(yīng)用價(jià)值[1]。傳統(tǒng)的表型特征提取多通過操作者手工進(jìn)行測(cè)量,工作繁瑣,準(zhǔn)確性較低,且不同品種的作物沒有統(tǒng)一的測(cè)量標(biāo)準(zhǔn)[2]。隨著計(jì)算機(jī)視覺的發(fā)展,高精度、低成本、自動(dòng)化的作物表型數(shù)據(jù)獲取技術(shù)逐漸受到關(guān)注。
在提取表型特征之前,需要對(duì)植株的主體進(jìn)行分割,進(jìn)而分析光譜、紋理或是形態(tài)特征?,F(xiàn)有的分割算法主要分為傳統(tǒng)的圖像處理算法和深度學(xué)習(xí)算法。傳統(tǒng)算法主要通過閾值、邊緣、區(qū)域、圖論等方法統(tǒng)計(jì)像素點(diǎn)[3]間的差異并完成分類,例如,Liang等[4]處理了大豆的田間RGB圖像,利用Canny算子檢測(cè)葉邊緣并對(duì)葉片進(jìn)行了分割與檢測(cè),張建華等[5]則利用改進(jìn)的分水嶺分割算法得到了棉花葉部的粘連病斑;深度學(xué)習(xí)算法則依賴卷積運(yùn)算[6]自適應(yīng)地提取特征,Ward等[7]將真實(shí)圖像與合成圖像同時(shí)用作模型的訓(xùn)練數(shù)據(jù),構(gòu)建了Mask R-CNN網(wǎng)絡(luò)模型進(jìn)行了葉片分割,在多個(gè)數(shù)據(jù)集上取得良好表現(xiàn),Chen等[8]利用CNN進(jìn)行葉片表面蚜蟲區(qū)域的分割檢測(cè),分割結(jié)果與人類的專家標(biāo)注具有較高的重疊度。
開放的田間環(huán)境下,復(fù)雜多變的光照條件以及土壤基質(zhì)中的背景噪聲對(duì)分割算法的準(zhǔn)確率與魯棒性提出了新的挑戰(zhàn)。其中,光照強(qiáng)度的變化使傳統(tǒng)算法中的模型參數(shù)難以選擇,通常需要根據(jù)具體的單張圖像特點(diǎn)進(jìn)行變更[9];背景噪聲則與分割主體具有相似特征,使得分割結(jié)果的邊緣產(chǎn)生割裂感,不夠平滑?;谏鲜霰尘?,本文構(gòu)建了多尺度的空洞全卷積網(wǎng)絡(luò)模型,利用卷積編碼圖像特征得到特征張量,再通過雙線性插值完成圖像的重建。為了恢復(fù)局部空間信息,在重建過程中融合了底層卷積的輸出;針對(duì)主體尺度變化的問題,利用不同擴(kuò)張率的空洞卷積提升感受野,從而增強(qiáng)葉片分割場(chǎng)景下模型的泛化能力。
常規(guī)深度卷積網(wǎng)絡(luò)主要用于單一分類任務(wù),在大多數(shù)場(chǎng)景中,模型只需判斷圖片的類別。因此,網(wǎng)絡(luò)對(duì)圖像特征的提取是一個(gè)具體到抽象的過程,底層卷積輸出的尺寸較大,表征局部信息,高層卷積輸出的尺寸較小,表征全局信息。但是,圖像語義分割屬于密集預(yù)測(cè),需要對(duì)每一個(gè)像素點(diǎn)進(jìn)行判別,其輸出也不再是一維向量,而是與輸入分辨率相同的二維圖像。
為了完成像素級(jí)別的分類,全卷積網(wǎng)絡(luò)被設(shè)計(jì)為一個(gè)編碼器-解碼器結(jié)構(gòu),如圖1所示,其中,編碼器主要由卷積層與池化層組成,進(jìn)行圖像特征提取。在不同的學(xué)習(xí)任務(wù)中,編碼器輸出的多維張量是一個(gè)蘊(yùn)含特定語義信息的特征表示。解碼器則使用雙線性插值提高特征張量的分辨率,還原邊緣等局部信息,完成分割結(jié)果重建。
圖1 編碼器-解碼器結(jié)構(gòu)
原始的全卷積網(wǎng)絡(luò)是一個(gè)順序結(jié)構(gòu),層與層之間沒有耦合。在特征編碼的過程中,由于池化、帶步幅卷積的降采樣效果,實(shí)際圖像中的空間排列順序與細(xì)節(jié)特征是有所損失的。在語義分割任務(wù)中,類別與邊緣是重要的判斷信息,其中,類別作為全局特征包含在編碼器輸出的特征張量中。而邊緣、紋理則更多地由底層卷積表示,這類細(xì)粒度的信息對(duì)于像素級(jí)別的分類是至關(guān)重要的,可以解決邊緣模糊的問題。因此,可組合高層抽象語義信息與底層的細(xì)節(jié)信息,將底層卷積的輸出進(jìn)行壓縮,然后與編碼器第一次上采樣的結(jié)果進(jìn)行拼接,并將拼接結(jié)果應(yīng)用于后續(xù)的圖像重建中。
綜上,本文抽取了第一層的卷積輸出特征I1與編碼器輸出結(jié)果進(jìn)行融合,為了在融合過程中不損失空間信息,首先對(duì)特征張量進(jìn)行雙線性插值的上采樣操作得到I2,使之與I1分辨率相同。然后,串聯(lián)拼接兩張圖像得到I3,后續(xù)的圖像重建操作在I3的基礎(chǔ)上展開,通過卷積與雙線性插值得到最終的分割結(jié)果。
圖2 底層卷積融合
隨著植株的生長,葉片的區(qū)域不斷擴(kuò)張,模型所要分割的主體不斷增大,特征的尺度也會(huì)發(fā)生變化。當(dāng)模型參數(shù)固定時(shí),其更適合于尺度相當(dāng)?shù)膱D像輸入。另一方面,由于卷積核的大小遠(yuǎn)小于圖片,其感受野是有限的,因此深度卷積網(wǎng)絡(luò)需要更深的模型結(jié)構(gòu)來抽取全局信息。
空洞卷積是對(duì)傳統(tǒng)卷積的一種優(yōu)化,使用一個(gè)更大的稀疏矩陣來替代傳統(tǒng)的卷積核,從而增加卷積的感受野,在保證相同參數(shù)量的前提下,空洞卷積能夠包含更大的信息范圍。在空洞卷積核中,非零的權(quán)重是等間隔進(jìn)行排列的,間隔的大小稱為擴(kuò)張率r,非零的權(quán)重之間用零值進(jìn)行填充,則其計(jì)算公式為:
圖3 展示了不同擴(kuò)張率的空洞卷積核。其中,黑色圓點(diǎn)表示該位置權(quán)重不為0,其余位置的權(quán)重等于0。由圖可知,當(dāng)擴(kuò)張率線性增大時(shí),空洞卷積的感受野以平方量級(jí)增大,當(dāng)擴(kuò)張率為1時(shí),運(yùn)算與原始卷積相同,感受野為9個(gè)像素點(diǎn);當(dāng)擴(kuò)張率為2時(shí),感受野為49個(gè)像素點(diǎn);當(dāng)擴(kuò)張率為3時(shí),感受野則達(dá)到121個(gè)像素點(diǎn)。
圖3 不同擴(kuò)張率下的空洞卷積核
為了適應(yīng)葉片分割主體中的尺度變化,本文在保持編碼器底層卷積結(jié)構(gòu)不變的基礎(chǔ)上,在編碼器輸出特征張量的卷積運(yùn)算中并行疊加了多層不同擴(kuò)張率的空洞卷積,如圖4所示。擴(kuò)張率為1的空洞卷積等同于傳統(tǒng)卷積操作,擴(kuò)張率為2-4的空洞卷積則使得特征張量包含更多尺度的語義信息,相當(dāng)于為解碼器的輸入增加了新的特征信息,從而提升分割的準(zhǔn)確性。
圖4 空洞卷積的疊加輸出
圖像的分割任務(wù)可以視作對(duì)圖像中的每一個(gè)像素完成一次分類任務(wù)。因此,模型的損失函數(shù)可以表示為圖像中所有像素的損失函數(shù)和。用交叉熵作為單個(gè)像素分類的損失函數(shù),設(shè)輸入圖像尺寸為m×n,模型的損失函數(shù)可以表示為:
為完成網(wǎng)絡(luò)訓(xùn)練,本文首先按照192×192分辨率對(duì)圖像進(jìn)行裁剪,并使用圖片標(biāo)注工具,標(biāo)注了300張圖像。相比于神經(jīng)網(wǎng)絡(luò)的巨型參數(shù)量,上述標(biāo)記過程所獲得的訓(xùn)練集樣本較少,容易造成模型的過擬合,使得模型在測(cè)試集上出現(xiàn)較大的誤差。為了擴(kuò)充訓(xùn)練集的樣本數(shù)量,本文對(duì)上述標(biāo)記結(jié)果進(jìn)行了數(shù)據(jù)增強(qiáng),使用的方法為旋轉(zhuǎn)、鏡面翻轉(zhuǎn)、疊加高斯噪聲,如圖5所示。
經(jīng)過擴(kuò)充的樣本集數(shù)量達(dá)到了1200張圖像,按照8:2的數(shù)量比例將樣本分為訓(xùn)練集與測(cè)試集,訓(xùn)練集大小為960,測(cè)試集大小為240。其中,訓(xùn)練集用于優(yōu)化損失函數(shù)以及更新模型參數(shù),測(cè)試集則不參與模型訓(xùn)練,僅僅用于模型評(píng)估,可以更加準(zhǔn)確地反映模型的性能指標(biāo)。
使用Adam優(yōu)化器進(jìn)行模型訓(xùn)練,優(yōu)化器參數(shù)設(shè)置為:矩估計(jì)指數(shù)衰減速率β1=0.9,β2=0.98,步長ε=10-3,數(shù)值穩(wěn)定參數(shù)δ=10-9,有偏一階矩與有偏二階矩的初始值s0=0,r0=0,模型訓(xùn)練的損失函數(shù)與準(zhǔn)確率曲線如圖6所示。
圖6模型訓(xùn)練曲線
比較本文算法與基于圖論的GrabCut[10]交互式分割算法,原始全卷積網(wǎng)絡(luò)在不同主體尺度下的分割效果,部分不同主體尺度的分割示例如圖7所示。由圖可見,交互式的GrabCut算法由于操作者的經(jīng)驗(yàn),區(qū)域與輪廓分割較為準(zhǔn)確,但該算法無法準(zhǔn)確地區(qū)分邊緣處與葉片特征相似的背景噪聲,因此,分割結(jié)果的邊緣含有較多的噪點(diǎn),具有很強(qiáng)的割裂感,且整個(gè)流程需要操作者多次標(biāo)記前景點(diǎn)與背景點(diǎn),效率較低。神經(jīng)網(wǎng)絡(luò)類模型輸出的結(jié)果更為平滑。其中,原始的全卷積網(wǎng)絡(luò)在不同尺度下的性能較為局限,在很多情況下,模型不能較好地還原葉片的形狀,在葉片的邊緣變化較大的時(shí)候,例如葉片頂端的內(nèi)凹部分,模型通常會(huì)將部分背景區(qū)域識(shí)別為主體,從而增大誤差。而本文的模型在不同尺度下有著較為均衡的表現(xiàn),能夠準(zhǔn)確地分割出主體區(qū)域。但是對(duì)于圖像中的復(fù)雜局部,例如行3中兩片葉子的細(xì)小狹縫、行4中作物的葉柄,算法還無法完全準(zhǔn)確判別,而該類錯(cuò)誤也是分割模型中最大的誤差來源。
統(tǒng)計(jì)算法在測(cè)試集上的表現(xiàn),不同模型在測(cè)試集上的評(píng)價(jià)指標(biāo)如表1所示。設(shè)圖像一共有k個(gè)類別,pij表示像素點(diǎn)屬于類i但是被預(yù)測(cè)為類j的數(shù)量,則不同指標(biāo)的定義如下:
像素精度(Pixel Accuracy,PA):
均像素精度(Mean Pixel Accuracy,MPA):
均交并比(Mean Intersection Over Union,MIOU):
由表可知,本文算法相比于傳統(tǒng)的圖像處理算法與全卷積網(wǎng)絡(luò)在各項(xiàng)指標(biāo)上均有較大地提升,PA值達(dá)到0.9735,在描述分類別的精度指標(biāo)MPA時(shí),本文算法的主體MPA值略高于背景MPA值,這表明算法在出現(xiàn)誤差時(shí)往往將背景像素點(diǎn)判別為主體。該項(xiàng)指標(biāo)上,由于操作者可以對(duì)噪聲像素點(diǎn)進(jìn)行標(biāo)記,因此GrabCut算法的表現(xiàn)較為穩(wěn)定,而未經(jīng)修改的全卷積網(wǎng)絡(luò)則波動(dòng)較大。而在MIOU指標(biāo)上,本文也達(dá)到0.9579,能夠滿足表型特征提取的需求。
圖7不同尺度主體的分割效果展示
表1 不同模型的評(píng)價(jià)指標(biāo)
為了提升葉片分割算法的精度與通用性,本文研究了全卷積網(wǎng)絡(luò)在圖像分割中的應(yīng)用,針對(duì)于編碼器在提取特征的過程中細(xì)節(jié)損失的問題,本文在解碼器中融合底層卷積輸出,使得圖像重建過程能夠恢復(fù)更多的局部空間信息;針對(duì)于主體尺度變化的問題,本文在編碼器輸出中并聯(lián)了不同擴(kuò)張率的空洞卷積,使模型能夠適應(yīng)不同的主體特征尺度。實(shí)驗(yàn)表明,本文模型相比傳統(tǒng)圖像分割方法,分割的邊緣更為平滑;相比于原始全卷積網(wǎng)絡(luò),區(qū)域的識(shí)別更為準(zhǔn)確。PA值達(dá)到0.9735,MIOU值達(dá)到0.9579,能夠?qū)D像進(jìn)行準(zhǔn)確地分割,滿足實(shí)際應(yīng)用需求。