梁胤豪,陳 全,董彩霞,楊長才,4
(1. 西北大學(xué)數(shù)學(xué)學(xué)院,陜西 西安 710127;2. 福建農(nóng)林大學(xué)農(nóng)林大數(shù)據(jù)研究院,福建 福州 350002;3. 福建農(nóng)林大學(xué)計算機與信息學(xué)院/數(shù)字福建農(nóng)林大數(shù)據(jù)研究所,福建 福州 350002;4. 智慧農(nóng)林福建省高校重點實驗室,福建 福州 350002)
【研究意義】玉米是世界上最重要的谷類作物之一。玉米抽雄期是決定玉米產(chǎn)量最關(guān)鍵的時期,雄穗是判斷玉米是否進(jìn)入抽雄期的主要依據(jù)。持續(xù)監(jiān)測玉米雄穗的生長可以確保玉米的安全性、質(zhì)量和單產(chǎn)[1]。傳統(tǒng)育種中,雄穗主要依靠人為識別,效率低下,主觀成分高,識別的樣本量有限。因此,快速準(zhǔn)確的鑒定對于更好地了解玉米的表型特征非常重要。【前人研究進(jìn)展】隨著計算機視覺和基于圖像的植物表型平臺的發(fā)展,研究人員輕松獲得了高分辨率的植物生長圖像。搭載高清攝像機的無人機的最新應(yīng)用發(fā)展極大地增加了樣本量[2-4]。深度學(xué)習(xí)算法已被廣泛用于計數(shù)莖[2]、幼苗數(shù)[3]和小麥穗數(shù)[4]。玉米雄穗的早期檢測算法是利用支持向量機方法[5]對圖像進(jìn)行分割,但是,圖像捕獲過程的吞吐量較低,勞動強度大,無法應(yīng)用于更大的領(lǐng)域。Lu等[6-7]開發(fā)了mTASSLE軟件,以自動細(xì)粒度機器視覺系統(tǒng)監(jiān)視玉米雄穗性狀的不同階段,并提出了TasselNet對玉米雄穗進(jìn)行計數(shù),但樣本數(shù)量仍然有限。Liu[8]通過基于無人機航拍圖像,采用Faster R-CNN目標(biāo)檢測算法高通量的自動檢測雄穗數(shù)量,在15 m高度的無人機圖像中,檢測精度能達(dá)到90%,然而Faster R-CNN的模型參數(shù)較大,檢測速度相對較慢?!颈狙芯壳腥朦c】衡量不同模型的性能,除了要采用相同的數(shù)據(jù)集,還要使用相同的評價準(zhǔn)則。除了mAP指標(biāo)外,預(yù)測的雄穗個數(shù)和真實的雄穗個數(shù)的差異也是衡量的重要指標(biāo)?!緮M解決的關(guān)鍵問題】本研究利用無人機采集圖像數(shù)據(jù),通過提高表現(xiàn)測量的通量,考量不同模型的檢測精度、檢測效率和參數(shù)大小,最終獲得一個檢測精度高、速度快、輕量且適合部署在無人機機載平臺上的模型。
圖像數(shù)據(jù)集來自福建省南平市福建農(nóng)林大學(xué)試驗田。試驗田一共種植了128行不同品種的玉米,每行30個重復(fù)。無人機采用大疆公司生產(chǎn)的Phantom4 Pro,通過無人機對試驗田進(jìn)行航線規(guī)劃,選擇天氣晴朗、光照適度的天氣進(jìn)行拍照。考慮到無人機的續(xù)航能力及地面的分辨率,將無人機飛行高度設(shè)置為離地面25 m,攝像機分辨率為5 280×3 648像素,地面分辨率為1.0 cm·像素-1。航線規(guī)劃使用大疆的DJI Terra軟件(版本 2.2.0.15)(圖1),根據(jù)實際農(nóng)田場景,設(shè)置航向重疊率和旁向重疊率為90%,無人機飛行速度由軟件自動設(shè)定,為1.2 m·s-1。共采集了236張?zhí)镩g玉米的圖像,為了減少數(shù)據(jù)處理時間,將原始圖像裁剪并過濾成分辨率為1 024×1 024的100張圖像。
圖1 無人機航線規(guī)劃Fig.1 Planning of UAV flight routes
使用圖像注釋工具LabelImg[9]對裁剪過的圖像進(jìn)行雄穗邊界框標(biāo)注(圖2)。圖2所示玉米雄穗的所有像素都在邊界框的范圍內(nèi)。帶注釋的圖像根據(jù)3∶1比例隨機分為訓(xùn)練驗證集和測試集。
圖2 試驗田、航線設(shè)置、DJI無人機與LabelImg數(shù)據(jù)標(biāo)注Fig.2 Experimentation field, flight routes, DJI drone, and LabelImg data annotation
在圖像處理中,圖像里有多個感興趣的目標(biāo),不僅需要知道它們的類別,還需要得到它們在圖像中的具體位置。在計算機視覺里,這類任務(wù)稱為目標(biāo)檢測(object detection)或物體檢測[10]?;谏疃葘W(xué)習(xí)的目標(biāo)檢測框架,目前主要分為兩類:一是基于one-stage的框架,如SSD[11](Single Shot MultiBox Detector)、YOLO[12](You Only Look Once)等,能夠同時完成檢測和回歸任務(wù);另一類方法則是基于twostage的學(xué)習(xí)框架,將檢測任務(wù)分為回歸(location)和分類任務(wù),如R-CNN、Fast R-CNN、Faster R-CNN[13]等。總體而言,two-stage框架任務(wù)準(zhǔn)確率相對較高,但是運行速度比較慢;one-stage則能夠達(dá)到實時性,但犧牲了部分精度。
Faster R-CNN[13]采用池化的方法將訓(xùn)練數(shù)據(jù)調(diào)整到統(tǒng)一尺寸,將分類與回歸任務(wù)合并到一起進(jìn)行訓(xùn)練,構(gòu)建區(qū)域預(yù)測網(wǎng)絡(luò)(RPN)直接產(chǎn)生Region proposal來得到感興趣區(qū)域,利用這種方式實現(xiàn)端對端的訓(xùn)練。YOLO v3[12]的基本思想主要是通過輸入圖像提取特征獲得特定大小特征圖,然后利用網(wǎng)格單元來進(jìn)行預(yù)測并通過RPN預(yù)測一定的邊界框。SSD[11]使用了多尺度特征進(jìn)行檢測,SSD不僅在最后的特征層上產(chǎn)生錨框,在幾個高層特征層處也都有產(chǎn)生錨框。同時SSD中所有特征層產(chǎn)生的錨框都經(jīng)過正負(fù)樣本的篩選,然后進(jìn)行分類分?jǐn)?shù)以及邊框的學(xué)習(xí)。
試驗使用的框架基于 MXnet[14]和 GLounCV。MXNet是由DMLC(分布式機器學(xué)習(xí)社區(qū))打造的深度學(xué)習(xí)框架,同時也是亞馬遜云官方深度學(xué)習(xí)框架,它集合了符號式編程以及命令式編程,能夠提供多樣化的環(huán)境,同時還有多種預(yù)訓(xùn)練模型可供使用。GluonCV是MXNet的深度學(xué)習(xí)工具箱,提供了計算機視覺領(lǐng)域最先進(jìn)的(SOTA)深度學(xué)習(xí)算法。模型訓(xùn)練的試驗平臺參數(shù)如表1所示。
深度學(xué)習(xí)模型訓(xùn)練中,batch-size的大小決定了深度學(xué)習(xí)訓(xùn)練過程中完成每個單次訓(xùn)練迭代(epochs)所需的時間和每次迭代(iteration)之間梯度的平滑程度[14]。學(xué)習(xí)率(learning rate)也是深度學(xué)習(xí)訓(xùn)練中重要的超參數(shù)之一,當(dāng)學(xué)習(xí)率設(shè)置過小時,收斂過程將變得十分緩慢。而當(dāng)學(xué)習(xí)率設(shè)置的過大時,梯度可能會在最小值附近來回震蕩,甚至無法收斂。
對于目標(biāo)檢測模型而言,不同的特征提取網(wǎng)絡(luò)對模型最終的效果也有極大影響。考慮到基于無人機檢測玉米雄穗的實時性和機載平臺有限的計算資源,SSD的前置網(wǎng)絡(luò)除了采用網(wǎng)絡(luò)層數(shù)較多的ResNet50,還嘗試了更輕量型的mobilenet。結(jié)合試驗環(huán)境與數(shù)據(jù)類型,最終在Faster R-CNN,YOLO v3和SSD框架下設(shè)定訓(xùn)練參數(shù),如表2所示。
Faster R-CNN的損失函數(shù)(Loss Function)如公式(1):
表1 試驗硬件與軟件信息Table1 Information on hardware and software for testing
表2 模型訓(xùn)練的超參數(shù)Table2 Hyperparameters for model training
Lcls是兩個類別的對數(shù)損失,函數(shù)為:
SSD的損失函數(shù)為:
YOLO v3的損失函數(shù)為:
平均精確度(Mean of average precision,mAP)是目標(biāo)檢測模型性能的衡量標(biāo)準(zhǔn)。mAP的計算涉及查準(zhǔn)率和查全率,查準(zhǔn)率(Precision)是指在所有預(yù)測為正例中真正例的比率,也即預(yù)測的準(zhǔn)確性。查全率(Recall)是指在所有正例中被正確預(yù)測的比率,也即預(yù)測正確的覆蓋率。在目標(biāo)檢測中,交并比IoU衡量的是兩個區(qū)域的重疊程度,是兩個區(qū)域重疊部分面積占二者總面積(重疊部分只計算一次)的比例。物體檢測中的每一個預(yù)測結(jié)果包含兩部分,預(yù)測框(bounding box)和置信概率(Pc)。當(dāng)預(yù)測的類別正確且置信度大于一定閥值(P_threshold),并且預(yù)測框與真實框(ground truth)的IoU大于一定閥值(IoU_threshold)時,認(rèn)為預(yù)測時正確的。在衡量模型性能時,IoU_threshold先取一個定值,然后綜合考慮各種P_threshold取值時的性能。設(shè)定不同的閾值,計算相應(yīng)的Recall和Precision。在同一個坐標(biāo)軸上,繪制Precision-Recall曲線,將曲線平滑化,并計算曲線的AUC(Area under curve),即為AP值。當(dāng)檢測任務(wù)有多個類別時,mAP是各個類別AP的均值。
目標(biāo)檢測技術(shù)在實際應(yīng)用中除了對準(zhǔn)確度有很高的要求,在速度上也要求模型能盡量快地進(jìn)行感興趣物體的檢測。一般來說目標(biāo)檢測中的速度評價指標(biāo)有:(1)FPS,檢測器每秒能處理圖片的張數(shù);(2)檢測器處理每張圖片所需要的時間。此外,在無人機上部署目標(biāo)檢測模型也需要考慮機載平臺的內(nèi)存資源有限,模型的大小決定所需占用的內(nèi)存需求?;诖?,文章對模型的FPS和內(nèi)存也進(jìn)行對比。
Faster R-CNN模型的損失函數(shù)為RPN_conf、RPN_SmoothL1,Cross entropy和RCNN_SmoothL1,訓(xùn)練過程的損失函數(shù)曲線如圖3-(1)所示;SSD模型的損失函數(shù)為Cross entropy和Smooth L1,基于ResNet50和mobilenet的SSD訓(xùn)練過程的損失曲線分別如圖3-(2)和圖3-(3)所示;YOLOv3的如圖3-(4)所示。
從4個模型運行過程的損失函數(shù)中能夠清晰地看到,在經(jīng)過300次迭代后,各框架的損失函數(shù)均已經(jīng)趨于平穩(wěn),驗證了試驗前期數(shù)據(jù)設(shè)置的合理性,具體數(shù)據(jù)如表3所示。從mAP的數(shù)值上來看,F(xiàn)aster R-CNN的數(shù)值最高,表示其檢測精度最高。YOLO v3和Faster R-CNN相當(dāng),而SSD_ResNet50和SSD_mobilenet的mAP值都相對較低,分別為0.490 5和0.578 0。
在同一硬件資源和數(shù)據(jù)集下,分別使用Faster RCNN、YOLO v3和SSD等3種主流目標(biāo)檢測框架進(jìn)行對比,其中考慮到實際使用中需要在無人機機載平臺上輕量級的部署訓(xùn)練好的模型,SSD的特征提取網(wǎng)絡(luò)除了使用ResNet50,還使用了mobilenet。對已經(jīng)標(biāo)記好的25張玉米雄穗訓(xùn)練集進(jìn)行測試,并對最終的訓(xùn)練結(jié)果進(jìn)行了分析對比。
特征提取網(wǎng)絡(luò)使用mobilenet的SSD網(wǎng)絡(luò)對圖像中雄穗的訓(xùn)練識別結(jié)果如圖4所示;特征提取網(wǎng)絡(luò)使用ResNet50的SSD網(wǎng)絡(luò)對圖像中雄穗的訓(xùn)練識別結(jié)果如圖5所示;在Faster R-CNN框架下,對圖像中玉米雄穗的訓(xùn)練識別結(jié)果如圖6所示;在YOLOv3框架下,對圖像中玉米雄穗的訓(xùn)練識別結(jié)果如圖7所示。從3種前沿框架的處理結(jié)果能夠看到:在相同數(shù)據(jù)集和與硬件平臺基礎(chǔ)上,one-stage架構(gòu)的YOLO v3的測試效果相比于Faster R-CNN與SSD要差,圖像中許多十分明顯玉米雄穗都并未被識別出來,整體情況如圖8所示。YOLO v3在對玉米雄穗的判別上,誤差也較為明顯,整體誤差相對較大,并未實現(xiàn)精準(zhǔn)高效的判別效果。
圖3 模型在訓(xùn)練過程中的損失函數(shù)曲線Fig.3 Loss function of model during training
表3 模型的mAP Table3 mAPs of models
圖4 SSD_mobilenet的預(yù)測結(jié)果Fig.4 Prediction by SSD-mobilenet
圖5 SSD_ResNet50的預(yù)測結(jié)果Fig.5 Prediction by SSD_ResNet50
圖6 Faster R-CNN的預(yù)測結(jié)果Fig.6 Prediction by Faster R-CNN
圖7 YOLO v3的預(yù)測結(jié)果Fig.7 Prediction by YOLOv3
使用基于ResNet50的SSD模型和基于mobilenet的SSD模型則基本上實現(xiàn)了對玉米雄穗的識別,但在光線不足或者過度曝光的圖像中,依然存在漏檢的情況,如圖4、圖5和圖8所示。相比之下,F(xiàn)aster R-CNN模型實現(xiàn)了對玉米雄穗的準(zhǔn)確判別。在部分樣本中,在出現(xiàn)光線過度曝光以及顏色干擾等極端的情況,基于Faster R-CNN框架的依然能夠做到相對精準(zhǔn)的判別,部分案例如圖6和圖8所示。
總體而言,在模型的預(yù)測上,F(xiàn)aster R-CNN識別精度最高,漏檢和誤檢率最低;YOLO v3識別精度最低,漏檢和誤檢率最高(表4)。SSD_ResNet50和SSD_mobilenet的識別精度略低于Faster R-CNN。
圖8 模型的預(yù)測結(jié)果對比Fig.8 Comparison of predictions by various models
表4 模型的測試誤差和計數(shù)準(zhǔn)確率比較Table4 Comparison of test errors and detection accuracies by models
在模型對玉米雄穗的計數(shù)上,根據(jù)計算預(yù)測的框數(shù)和實際的雄穗數(shù)據(jù)做誤差分析,結(jié)果顯示(表4),F(xiàn)aster R-CNN準(zhǔn)確率最高,達(dá)到93.79%,SSD_ResNet50和SSD_mobilenet的準(zhǔn)確率分別為87.6%和89.9%;YOLO v3的mAP值較高(表3),但是實際測試的計數(shù)準(zhǔn)確率卻非常低,僅有20.04%。在模型的訓(xùn)練過程中,繪制出4種算法的mAP變化曲線,如圖9所示。
實際應(yīng)用中,除了要考慮模型的精度和誤差,還要綜合考慮模型的性能,主要包括模型的處理速度和參數(shù)大小。
在數(shù)據(jù)的處理速度上,3種模型的處理性能也是差異明顯(表5)。從表5可以看出,F(xiàn)aster R-CNN處理性能最差,為2.6 samples·s-1(每秒處理的樣本數(shù));SSD_ResNet50 的檢測效率為 7.4 samples·s-1;YOLO v3 為3.47 samples·s-1,最快的是 SSD_mobilenet,處理速度為8.9 samples·s-1,領(lǐng)先優(yōu)勢十分明顯。SSD的效率較高,但是精度不高;Faster-RCNN的效率較低,但是精度比較高。
圖9 模型訓(xùn)練過程的mAP曲線Fig.9 mAP curves of models in testing
無人機對田間玉米進(jìn)行大規(guī)模掃描成像后,需要及時、快速地計算出檢測結(jié)果,并且無人機的機載資源有限,續(xù)航能力也限制了無人機的應(yīng)用。因此,在模型的選擇上,除了要考慮精度、速度,也要考慮模型的大小。模型越小,占用的計算資源越小,從而更容易部署在無人機系統(tǒng)上。各個模型在訓(xùn)練之后,保存到內(nèi)存中,通過計算文件的大小來衡量模型的尺寸。如表表5所示,SSD_mobilenet模型的參數(shù)最小,僅有55.519 M;YOLO v3占用資源最大,占用了241.343 M的存儲;Faster R-CNN和SSD_ResNet50大小相當(dāng),分別為133.873 M和 144.277 M。僅從模型大小上來說,SSD_mobilenet更適用于無人機的機載系統(tǒng)部署,因為其所占用的資源較小。
表5 模型的處理速度和參數(shù)大小比較Table5 Comparison of processing speeds and parameters of models
通過使用深度學(xué)習(xí)目標(biāo)檢測中的Faster R-CNN、SSD以及YOLO v3等3種主流的框架,對標(biāo)注好的玉米雄穗數(shù)據(jù)集進(jìn)行訓(xùn)練和識別。在選定硬件與軟件平臺的基礎(chǔ)上,通過設(shè)置損失函數(shù)、迭代次數(shù)、學(xué)習(xí)率等參數(shù),對數(shù)據(jù)進(jìn)行訓(xùn)練與測試。以識別精度、計數(shù)精度、處理速度和模型大小等重要指標(biāo)作為評價標(biāo)準(zhǔn),并結(jié)合最終處理效果作為對比,F(xiàn)aster R-CNN框架識別精度和計數(shù)準(zhǔn)確上最高。而對于模型的處理速度和模型的大小,SSD_mobilenet處理效率最高,模型占用計算資源最小。
Faster R-CNN的計數(shù)準(zhǔn)確率為93.79%,SSD_mobilenet的計數(shù)準(zhǔn)確率為89.9%;處理速度上,SSD_mobilenet為 8.9 samples·s-1, Faster R-CNN 僅 為 2.6 samples·s-1,SSD_mobilenet的速度比 Faster R-CNN 低了近3倍;模型大小上,F(xiàn)aster R-CNN高出SSD_mobilenet近2倍。相對于Faster R-CNN,SSD_mobilenet犧牲部分精度,獲取更快的處理速度和占用更小的計算資源,是比較理想的機載模型選擇。
從試驗整個過程的識別精度中也能看出,三大主流框架中Faster R-CNN的整體表現(xiàn)最好,整體曲線趨于平穩(wěn);而YOLO v3識別精度曲線則是波動劇烈,同時在整個處理期間都存在明顯波動。
雖然經(jīng)過試驗,F(xiàn)aster R-CNN、YOLO v3和SSD的對比分析中,F(xiàn)aster R-CNN和SSD已經(jīng)實現(xiàn)了精準(zhǔn)高效的自動判別,但是本研究工作依然存在一定的缺陷與不足。尤其是前期遙感數(shù)據(jù)采集過程中因為天氣等原因,出現(xiàn)了圖像質(zhì)量不夠完美,部分樣張因為拍攝角度和光線的問題被剔除,對樣本數(shù)據(jù)量造成了一定的影響,也對后期識別造成了一定的干擾。
雖然Faster R-CNN模型最終達(dá)到了預(yù)期效果,但在處理過程中依然存在數(shù)據(jù)設(shè)定不夠完善的情況,影響了最終數(shù)據(jù)的識別效果。在硬件方面,更好的硬件平臺可以實現(xiàn)對數(shù)據(jù)更加充分高效的處理,本次試驗設(shè)備處理性能相對一般,并未徹底的展現(xiàn)出各模型的優(yōu)劣,最終也影響了處理性能與數(shù)據(jù)的處理效果。