朱學(xué)巖,張新偉,顧夢夢,趙燕東,陳鋒軍*
(1. 北京林業(yè)大學(xué)工學(xué)院,北京 100083;2. 城鄉(xiāng)生態(tài)環(huán)境北京實驗室,北京 100083;3. 德州農(nóng)工大學(xué)園藝系,大學(xué)城 77843;4. 林業(yè)裝備與自動化國家林業(yè)和草原局重點實驗室,北京 100083)
苗木庫存是相關(guān)企業(yè)運營和管理的一個關(guān)鍵參數(shù)。目前苗木數(shù)量主要依靠傳統(tǒng)的人工計數(shù)完成,工作重復(fù)枯燥,主觀性強,勞動效率低,人工成本高并且無法保證計數(shù)準(zhǔn)確率[1-2]。在苗木行業(yè)飛速發(fā)展和人工成本逐年提高的背景下,亟須自動、高效、準(zhǔn)確并且成本低的苗木計數(shù)解決方案。利用無人機航拍苗木圖像加上機器視覺的技術(shù),快速準(zhǔn)確地計數(shù)苗木是一種理想的解決方法。
國內(nèi)外學(xué)者對于苗木計數(shù)的問題進行了各種探索。Haakess[3]使用條形碼和RFID電子標(biāo)簽進行苗木庫存盤點,但該方法與人工計數(shù)相比成本沒有明顯下降,難以推廣應(yīng)用。一些學(xué)者嘗試?yán)糜嬎銠C圖像處理和機器視覺的方法統(tǒng)計麥穗數(shù)量[4]、玉米株數(shù)[5]、柑橘樹數(shù)量[6]、苗圃盆栽和地栽植株數(shù)量[7],以及棕櫚樹的數(shù)量[8],雖然做了各種各樣的嘗試,但是離實際應(yīng)用還有一定的差距。隨著深度學(xué)習(xí)被證明為一種有效的工具,越來越多的研究者開始相關(guān)應(yīng)用的研究,取得了各種各樣的研究進展。Fromm等[9]證明使用卷積神經(jīng)網(wǎng)絡(luò)可以檢測加拿大阿爾伯塔北部森林樹木的數(shù)量;Morales等[10]提出基于Deeplabv3+網(wǎng)絡(luò)的棕櫚樹分割模型分割單獨的棕櫚樹和被遮擋的棕櫚樹;Onishi等[11]利用eCognition Developer軟件和GoogLeNet模型分割桃樹樹冠統(tǒng)計桃樹數(shù)量;Csillik等[12]利用卷積神經(jīng)網(wǎng)絡(luò)檢測柑橘樹并統(tǒng)計數(shù)量,但是無法準(zhǔn)確統(tǒng)計尺寸大小不一的柑橘樹的數(shù)量;2016年,Redmon等[13]提出單階段目標(biāo)檢測模型YOLO,隨之優(yōu)化版本YOLO9000[14]和YOLOv3[15],YOLOv3模型以檢測快速準(zhǔn)確的優(yōu)點被迅速關(guān)注;陳宏彩等[16]利用YOLOv3模型檢測車輛速度很快,處理高清圖像平均耗時0.05 s/幅;丁明宇等[17]利用YOLOv3模型識別商品的參數(shù)準(zhǔn)確率很高,表格參數(shù)檢測準(zhǔn)確率達(dá)到90.42%,文字塊參數(shù)檢測準(zhǔn)確率達(dá)到85.22%;趙德安等[18]利用YOLOv3模型識別不同生長階段和不同光照條件下的蘋果,準(zhǔn)確率達(dá)97%??傊疃葘W(xué)習(xí)中的YOLOv3模型目標(biāo)檢測泛化性能好,在算法準(zhǔn)確率和檢測速度方面表現(xiàn)突出。
本研究以無人機采集的云杉可見光圖像為研究對象,提出一種應(yīng)用YOLOv3的云杉計數(shù)方法,有效解決稠密、粘連和云杉個體尺寸大小不均的問題,快速檢測云杉并準(zhǔn)確統(tǒng)計數(shù)量。主要工作包括采集、標(biāo)注和擴充云杉圖像以及構(gòu)建、訓(xùn)練和測試YOLOv3模型。
2017年7月、2018年10月和2019年8月在內(nèi)蒙古云杉苗圃基地(111°49′47″E,40°31′47″N,海拔1 134 m)選用大疆精靈4無人機采集4 000×3 000 像素的云杉可見光圖像,保存為JPG格式。無人機相機鏡頭焦距為20 mm,像元尺寸為2.4 μm,選取成像角度為-90°,相機鏡頭與地面平行,飛行高度12~36 m,S形飛行路線定點懸停的方式。采集時間選擇05:30—07:30、09:00—10:00和17:00—18:00。云杉種植區(qū)域行間距1.5 m左右,冠幅尺寸差異較大。
按照多樣性原則選取無人機拍攝的云杉圖像558幅,為了保證充分訓(xùn)練YOLOv3模型,進一步擴充云杉圖像數(shù)據(jù)集[19]。變換云杉圖像的對比度,模擬不同光照條件下云杉的成像效果;縮放云杉圖像的大小,模擬無人機飛行高度變化條件下云杉成像在尺寸上的變化。對比度和縮放比例系數(shù)分別在[0.2, 1.8]和[0.5, 1.5]閉區(qū)間中隨機生成。由此云杉圖像數(shù)據(jù)集增加到原來的3倍共1 674 幅。按照7∶3的比例確定訓(xùn)練集和測試集,其中訓(xùn)練集包含圖像1 169幅,測試集包含圖像505幅,具體示例如圖1所示。
圖1 云杉圖像數(shù)據(jù)集
自然光照條件下使用無人機獲取的云杉圖像,云杉稠密、粘連并且個體間尺寸差異很大,導(dǎo)致快速準(zhǔn)確地統(tǒng)計云杉數(shù)量非常困難?;谏疃葘W(xué)習(xí)的目標(biāo)檢測算法YOLOv3在設(shè)計中引入特征圖像金字塔原理,能夠?qū)D像中尺寸大小差異很大的目標(biāo)同時進行準(zhǔn)確檢測,基于YOLOv3的這個特點選取其作為云杉計數(shù)的模型。
YOLOv3云杉計數(shù)模型包含特征提取和多尺度預(yù)測2個模塊。參考文獻[16],將云杉原始圖像縮放為416×416像素,輸入特征提取模塊,包含53個1×1和3×3的卷積,稱為Darknet-53特征提取模塊。多尺度預(yù)測模塊從13×13、26×26和52×52這3個尺度對云杉進行預(yù)測。YOLOv3模型具體結(jié)構(gòu)如圖2所示。
圖2 YOLOv3模型結(jié)構(gòu)
Darknet-53特征提取模塊的網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù)設(shè)置皆為缺省值[15]。53個卷積層中卷積2、卷積5、卷積10、卷積27和卷積44的作用是下采樣,每次采樣步長為2;全連接層的作用是實現(xiàn)云杉檢測;殘差層的作用是避免出現(xiàn)梯度消失或者梯度爆炸的情況。
為了評價YOLOv3模型云杉計數(shù)的結(jié)果,選用數(shù)量統(tǒng)計評價標(biāo)準(zhǔn)[20]中的平均計數(shù)準(zhǔn)確率(mean counting accuracy,AMC)、均方根誤差(root mean squared error,ERMS)、欠估計(underestimate percent,Up)、過估計(overestimate percent,Op)和總誤差(difference percent,Dp)5個評價指標(biāo),具體如下所示。
1)平均計數(shù)準(zhǔn)確率AMC:YOLOv3模型云杉計數(shù)的準(zhǔn)確率,是最主要的評價指標(biāo)。
(1)
2)均方根誤差ERMS:YOLOv3模型云杉計數(shù)結(jié)果與人工計數(shù)結(jié)果的標(biāo)準(zhǔn)偏差。
(2)
3)欠估計Up:YOLOv3模型遺漏計數(shù)的云杉數(shù)量占云杉總數(shù)的比率,假設(shè)人工計數(shù)的結(jié)果為云杉總數(shù)的絕對真值。
(3)
4)過估計Op:YOLOv3模型重復(fù)計數(shù)的云杉數(shù)量占云杉總數(shù)的比率。
(4)
5)總誤差Dp:過估計和欠估計引起的云杉數(shù)量統(tǒng)計總誤差。
Dp=Up+Op
(5)
式中:N為測試云杉圖像的數(shù)量;t為云杉圖像的標(biāo)號,表示第t幅云杉圖像;Gt為第t幅圖像內(nèi)實際的云杉數(shù)量,由人工手動統(tǒng)計得到;Et為YOLOv3模型統(tǒng)計的第t幅圖像中云杉的數(shù)量。
云杉圖像標(biāo)注遵循如下規(guī)則:1)圖像邊界上不完整的云杉不進行標(biāo)注;2)相互粘連的云杉獨立標(biāo)注但標(biāo)注區(qū)域可以重疊。云杉標(biāo)注框選擇為矩形,標(biāo)注類別為Spruce,訓(xùn)練集1 169幅圖像平均每幅標(biāo)注184株云杉。利用LabelImg軟件人工標(biāo)注的云杉訓(xùn)練集圖像示例如圖3所示。
云杉訓(xùn)練集圖像標(biāo)注信息以PASCAL VOC格式保存,標(biāo)注后生成對應(yīng)的xml文件,包含圖像存儲位置、圖像名稱、標(biāo)注矩形框的左上角坐標(biāo)和右下角坐標(biāo)、標(biāo)注矩形框的長度和寬度以及標(biāo)注名稱信息。為了加快YOLOv3模型處理速度并提高對不同尺寸大小云杉的預(yù)測能力,歸一化處理訓(xùn)練集圖像的云杉標(biāo)注矩形框。假設(shè)歸一化后云杉標(biāo)注矩形框中心點坐標(biāo)記為(x,y),歸一化后云杉標(biāo)注矩形框的寬度和高度分別記為w和h,具體歸一化處理如式(6)所示。
(6)
式中:xmax、ymax、xmin和ymin分別為原始圖像中人工標(biāo)注矩形框右下角的x和y坐標(biāo)、左上角的x和y坐標(biāo);w0和h0分別為原始圖像的寬度和高度。
實驗硬件平臺配置為:Intel(R) Core i7-8700K CPU @ 3.70 GHz處理器,16 GB內(nèi)存,11 GB GeForce GTX 1080 Ti顯卡,500 G固態(tài)硬盤和4 TB機械硬盤,Ubuntu16.04系統(tǒng)。在Darknet框架[21]下C++編程實現(xiàn)YOLOv3云杉計數(shù)模型,程序運行調(diào)用CUDA、Cudnn和OpenCV等第三方庫,其中OpenCV主要用來讀取輸入的云杉圖像數(shù)據(jù)和保存測試圖像的檢測結(jié)果。
根據(jù)經(jīng)驗設(shè)置訓(xùn)練權(quán)值衰減和初始學(xué)習(xí)率分別為0.000 5和0.001;采用批處理量為64的批處理訓(xùn)練方式縮短模型訓(xùn)練時間;權(quán)值更新過程采用BN正則化處理,并根據(jù)經(jīng)驗在每一層中加入丟棄比為0.5的丟棄層,動量設(shè)置為0.9。
其中多尺度預(yù)測模塊的錨點框數(shù)量通過實驗確定,繪制錨點框數(shù)量與平均交并比之間的關(guān)系曲線如圖4所示,根據(jù)實驗測試結(jié)果選定錨點框數(shù)量為9,平均交并比為84.55%。
圖4 錨點框數(shù)量與平均交并比關(guān)系
以測試集505幅圖像檢驗YOLOv3模型性能。每一幅圖像中利用最優(yōu)云杉預(yù)測邊界框標(biāo)識檢測到的云杉植株,最優(yōu)云杉預(yù)測邊界框的數(shù)量即為云杉植株數(shù)量,結(jié)果顯示在圖像的左上角;人工數(shù)量統(tǒng)計的結(jié)果設(shè)為真值,顯示在測試集原圖的左上角,具體示例如圖5所示。
由圖5a、b可知,對于無人機航拍的正常光照下的云杉圖像,YOLOv3模型可以準(zhǔn)確識別云杉并計數(shù)。由圖5c可知,對于由光照強度導(dǎo)致的過度曝光和曝光不足的云杉圖像,YOLOv3模型也可以很好地完成識別和計數(shù)。同時由示例3不難發(fā)現(xiàn),對于過度曝光圖像中顯示白色的區(qū)域,除了有極少數(shù)受影響較大的云杉未被識別,大多數(shù)云杉均被準(zhǔn)確識別;對于曝光不足的圖像,YOLOv3模型雖能識別大多數(shù)云杉,但由于曝光不足增加了粘連云杉的識別難度,導(dǎo)致識別的準(zhǔn)確率略有降低。
圖5 人工計數(shù)真值和YOLOv3模型計數(shù)結(jié)果
本文以平均計數(shù)準(zhǔn)確率、均方根誤差、欠估計、過估計和總誤差作為評價指標(biāo)。其中,平均計數(shù)準(zhǔn)確率是衡量YOLOv3模型性能的主要因素,欠估計和過估計2個指標(biāo)分別對應(yīng)漏數(shù)和重復(fù)計數(shù)問題,也是主要的評價指標(biāo)。漏數(shù)是指云杉植株未被檢測或者一個預(yù)測邊界框包含多株云杉;重復(fù)計數(shù)是指背景等物體被誤檢為云杉或者多個預(yù)測邊界框只包含一株云杉。YOLOv3模型對測試集505幅圖像計數(shù)的平均計數(shù)準(zhǔn)確率達(dá)到90.24%,均方根誤差為45.82,欠估計、過估計和總誤差分別為15.47%,19.25%和34.72%,基本沒有重復(fù)計數(shù)的情況發(fā)生。對于測試集圖像中云杉數(shù)量較少,排列較稀疏的情況,YOLOv3模型計數(shù)結(jié)果準(zhǔn)確;對于云杉數(shù)量較多、云杉較小并且存在一定程度粘連的情況,YOLOv3模型也能準(zhǔn)確計數(shù);對于云杉粘連嚴(yán)重的情況,YOLOv3模型能夠分割粘連云杉并準(zhǔn)確統(tǒng)計數(shù)量;對云杉大小不均的情況,YOLOv3模型也能準(zhǔn)確統(tǒng)計數(shù)量??傊琘OLOv3模型可有效解決單幅圖像中云杉粘連和尺寸大小差異性大的問題,準(zhǔn)確統(tǒng)計云杉數(shù)量。
YOLOv3模型對圖像的處理速度與圖像中云杉的數(shù)量基本成正比關(guān)系,具體如圖6所示。最少包含76株云杉圖像,YOLOv3模型計數(shù)用時0.274 s;最多包含381株云杉圖像,YOLOv3模型計數(shù)用時0.461 s;在測試集中YOLOv3模型統(tǒng)計云杉數(shù)量的速度平均為0.415 s/幅,有效地解決了云杉稠密的問題,計數(shù)速度完全滿足實時性要求。
圖6 YOLOv3模型計數(shù)時間
為進一步驗證YOLOv3模型的性能,選取FCN分割[22]加Hough圓檢測的方法進行比較,具體比較示例如圖7所示。
圖7 云杉數(shù)量統(tǒng)計方法比較
由圖7兩種方法的計數(shù)結(jié)果可知,F(xiàn)CN分割加Hough圓檢測結(jié)合的計數(shù)方法未能很好地處理粘連問題,導(dǎo)致計數(shù)過程容易出現(xiàn)重復(fù)計數(shù)的情況。YOLOv3模型雖能較好地實現(xiàn)圖像中稠密云杉的計數(shù),但仍存在對部分稠密云杉檢測不佳的情況,如圖7中圖像2。通過咨詢專家和分析可知,導(dǎo)致YOLOv3模型對部分稠密云杉檢測不佳的原因是云杉的個體差異,即存在部分非典型云杉。如圖7中未被檢測的云杉在顏色特征上明顯區(qū)別于大多數(shù)云杉,并且這些非典型云杉的數(shù)量較少。從模型訓(xùn)練的角度分析,由于這些非典型云杉的數(shù)量相對較少,在訓(xùn)練時也沒有足夠的非典型云杉數(shù)據(jù)訓(xùn)練YOLOv3模型,導(dǎo)致YOLOv3模型未能有效檢測圖像中的非典型云杉。
YOLOv3模型和FCN分割加Hough圓檢測2種云杉計數(shù)方法在測試集中進行比較,以平均計數(shù)準(zhǔn)確率、均方根誤差、欠估計、過估計和總誤差作為評價指標(biāo)定量對比2種方法,結(jié)果如表1所示。
表1 云杉計數(shù)方法性能對比
測試結(jié)果表明,YOLOv3模型的平均計數(shù)準(zhǔn)確率達(dá)到90.24%,均方根誤差、欠估計、過估計和總誤差4項評價指標(biāo)均表現(xiàn)優(yōu)異,能夠有效解決單幅圖像中云杉稠密、粘連和尺寸大小差異大的難題,準(zhǔn)確統(tǒng)計云杉數(shù)量;FCN分割加Hough圓檢測方法平均計數(shù)準(zhǔn)確率為87.75%,比YOLOv3模型低2.49%;均方根誤差、欠估計、過估計和總誤差比YOLOv3模型分別落后29.32,6.7%,5.7%和12.4%,對于單幅圖像中云杉稠密和粘連的現(xiàn)象會出現(xiàn)較為嚴(yán)重的漏數(shù)和重復(fù)計數(shù)的問題。
進一步比較2種云杉計數(shù)方法和人工計數(shù)的真值,測試集中隨機選取32幅圖像,按照圖像中云杉目標(biāo)真值升序的方式排列,對比人工計數(shù)真值、FCN分割加Hough圓檢測方法和YOLOv3模型方法的計數(shù)結(jié)果,具體如圖8所示。
由圖8中2種方法計數(shù)結(jié)果和人工計數(shù)真值的對比發(fā)現(xiàn),當(dāng)圖像中云杉數(shù)量少于130株時,2種方法和人工計數(shù)結(jié)果相近,2種方法的準(zhǔn)確率都比較高;當(dāng)單幅圖像中云杉數(shù)量增多,云杉目標(biāo)變得越來越稠密時,F(xiàn)CN分割加Hough圓檢測方法誤差開始增大,將背景識別為云杉的重復(fù)計數(shù)問題越來越嚴(yán)重,計數(shù)準(zhǔn)確率下降;YOLOv3模型對于云杉大小差異較大并且稠密的目標(biāo)檢測和計數(shù)結(jié)果良好,計數(shù)準(zhǔn)確率基本不變,始終能夠較為準(zhǔn)確地統(tǒng)計云杉數(shù)量。
圖8 2種方法計數(shù)結(jié)果和真值的比較
為實現(xiàn)快速準(zhǔn)確統(tǒng)計苗木庫存的應(yīng)用目的,以無人機拍攝的云杉單幅可見光圖像為研究對象,提出一種應(yīng)用YOLOv3模型的云杉檢測和數(shù)量統(tǒng)計方法。首先利用無人機采集、標(biāo)注并擴充圖像,制作訓(xùn)練集和測試集;使用C++編程利用缺省的Darknet-53框架搭建并訓(xùn)練YOLOv3模型;根據(jù)經(jīng)驗設(shè)置訓(xùn)練權(quán)值衰減、初始學(xué)習(xí)率、批處理量、丟棄比和動量大小等參數(shù)。測試YOLOv3模型,平均計數(shù)準(zhǔn)確率達(dá)到90.24%,均方根誤差僅為45.82,欠估計、過估計和總誤差分別為15.47%,19.25%和34.72%,有效解決單幅圖像中云杉粘連、成像受光照條件變化影響較大的問題,快速準(zhǔn)確地統(tǒng)計云杉數(shù)量。
進一步驗證YOLOv3模型的效果,與FCN分割加Hough圓檢測方法以及人工計數(shù)真值進行比較。FCN分割加Hough圓檢測方法對于云杉數(shù)量稠密的圖像出現(xiàn)較為嚴(yán)重的重復(fù)計數(shù)問題,平均準(zhǔn)確率比YOLOv3模型低2.49%,均方根誤差、欠估計、過估計和總誤差分別比YOLOv3模型高29.32,6.7%,5.7%和12.4%。對比結(jié)果表明YOLOv3模型對光照具有魯棒性,能夠有效分割粘連云杉,能夠較好解決云杉稠密和尺寸大小差異性大的問題,快速準(zhǔn)確地統(tǒng)計云杉數(shù)量,為實現(xiàn)云杉庫存統(tǒng)計邁出了關(guān)鍵性的一步。下一步工作需要研究適用于拼接圖像后的云杉計數(shù)方法或者采用視頻的方式動態(tài)統(tǒng)計完整地塊種植的云杉數(shù)量。