謝州益,胡彥蓉
(浙江農(nóng)林大學(xué)數(shù)學(xué)與計算機科學(xué)學(xué)院/浙江省林業(yè)智能監(jiān)測與信息技術(shù)研究重點實驗室/林業(yè)感知技術(shù)與智能裝備國家林業(yè)和草原局重點實驗室,浙江 杭州 311300)
花卉定位與識別是自動化機械分類采摘的重要依據(jù),在推進園藝種植自動化的今天,實現(xiàn)對鮮花的實時檢測與定位,已成為復(fù)雜生長環(huán)境下做出決策的重要環(huán)節(jié)。隨著全面小康的實現(xiàn),人們開始追求更高品質(zhì)的生活,在欣賞花的同時,如果能準(zhǔn)確獲知其種類,對于花卉知識的普及和產(chǎn)業(yè)的發(fā)展具有重要意義。
傳統(tǒng)依靠專家觀察、利用參考圖片輔以文字的識別方法,由于缺乏對文字描述的統(tǒng)一理解,不利于機械自動化作業(yè),而且憑主觀經(jīng)驗判斷需要具備較高的專業(yè)素養(yǎng)。近些年,基于模型的目標(biāo)分類[1-2]被應(yīng)用于植物病害識別領(lǐng)域。如:將人工提取到的紋理、顏色、方向梯度直方圖(histogram of oriented gradient,HOG)等特征輸入分類器獲得預(yù)測結(jié)果;將環(huán)境因素作為重要影響因子,結(jié)合葉片的其他屬性因子獲得分類結(jié)果[3];基于顯著性分析確定茶園害蟲潛在區(qū)域,實現(xiàn)了復(fù)雜背景下的目標(biāo)定位[4]。但早期方法對特征的選擇單一,以Faster R-CNN[5]為代表的two-stage檢測器和以SSD[6]、YOLO系列[7-11]為代表的one-stage模式,這類基于深度學(xué)習(xí)的目標(biāo)檢測能有效克服人工選取特征適用性不強的缺點。任意平等[12]對比大量花卉圖片發(fā)現(xiàn)花蕊紋路、形狀差異較大,通過Faster R-CNN首先定位花蕊區(qū)域,再進行種類識別顯著提升了局部遮擋下的目標(biāo)識別精度;鄭凱等[13]基于Mask R-CNN,提出混合空洞卷積方法使卷積運算覆蓋所有像素,對茄子花做了像素級的分割。由于two-stage框架的檢測速度慢,較基于先驗框算法的實時性差,一些優(yōu)秀的one-stage框架被提出,常見的有:引入FPN實現(xiàn)多尺度預(yù)測的YOLOv3[9]算法;加入CSPNet網(wǎng)絡(luò)并添加SPP和PANet結(jié)構(gòu)加強特征提取的YOLOv4[10]模型;采用深度可分離卷積和BiFPN實現(xiàn)實時準(zhǔn)確檢測的EfficientDet[14];利用TUM和FFM模塊加強特征提取的M2Det[15];以Focal loss訓(xùn)練以平衡正負(fù)樣本,提高檢測效果的RetinaNet[16]和無先驗框檢測的CenterNet[17]。針對月季花瓣重疊度高的問題,王雪琰等[18]使用4種深度學(xué)習(xí)模型分類同種不同類的相似月季;王楊等[19]使用SE-layer結(jié)合Triplet Attention構(gòu)建加強特征提取網(wǎng)絡(luò),提升模型對隱藏目標(biāo)的檢索能力;方健等[20]利用特征融合、融入注意力機制的膨脹卷積模塊,提高了多目標(biāo)遮擋下小物體的檢測效果;針對靜態(tài)圖像只能處理單個場景的問題,Tian等[21]將SSD算法引入花卉視頻流檢測中,提高了應(yīng)用場景范圍。
現(xiàn)有目標(biāo)檢測的相關(guān)文獻多是對算法進行改進,在農(nóng)業(yè)特別是花卉目標(biāo)檢測領(lǐng)域的研究偏少。因此,本文基于YOLOv4模型對常見花卉的目標(biāo)檢測進行了研究,引入輕量化神經(jīng)網(wǎng)絡(luò)MobileNetV3[22]替換主干CSPDarknet53簡化網(wǎng)絡(luò)結(jié)構(gòu),并在路徑聚合網(wǎng)絡(luò)部分利用深度可分離卷積替換普通卷積,改進預(yù)選框設(shè)定方法后對訓(xùn)練方式進行優(yōu)化,最終得到的模型以較少的精度損失大幅降低了參數(shù)和模型大小,最后在此基礎(chǔ)上實現(xiàn)花卉目標(biāo)檢測系統(tǒng)。該系統(tǒng)具有低載荷、高精度、快速識別等優(yōu)勢,在為用戶提供更好使用體驗的同時,也為農(nóng)作物自動化采摘提供了理論依據(jù)和技術(shù)支持。
本文采用Python的GUI模塊庫PyQt5設(shè)計圖形化用戶交互界面,系統(tǒng)流程如圖 1所示,用戶上傳的圖片經(jīng)縮放后被傳輸?shù)椒?wù)器,通過調(diào)用訓(xùn)練好的模型將識別結(jié)果返回,并在頁面上呈現(xiàn)給用戶。軟件環(huán)境為Windows10的64位操作系統(tǒng),Python3.7、TensorFlow2.3.0、Keras2.4.3;硬件環(huán)境:計算機內(nèi)存8 GB,搭載Intel(R)Core(TM)i7-9750HF CPU@2.60 GHz處理器;PyQt5的開發(fā)必備工具:Python解釋器、PyCharm2019.3和PyQt5相關(guān)的模塊。
圖1 多目標(biāo)花卉識別系統(tǒng)流程圖Fig.1 Flowchart of multi-target recognition system of flowers
圖2 圖像預(yù)處理模塊Fig.2 Image preprocessing module
1.2.1 圖像預(yù)處理模塊圖像預(yù)處理是花卉識別的重要環(huán)節(jié),由于拍攝后上傳到本地的圖像可能會有噪聲、對比度不明顯等問題,需要設(shè)計預(yù)處理模塊來實現(xiàn)圖像的前期處理,并對操作結(jié)果進行實時反饋及存儲。該模塊的界面主要包括選擇圖片、圖像平滑、圖像均衡化等8個功能按鍵(圖 2),按下選擇圖片就會打開本地圖庫,選擇后單擊基本操作,便將對應(yīng)的處理結(jié)果顯示在下方,圖2所示是選擇了向日葵圖像后經(jīng)圖像均衡化處理后的結(jié)果,此時該結(jié)果已保存至后臺,方便進行下一步操作。
1.2.2 花卉目標(biāo)檢測模塊目標(biāo)檢測模塊是部署本文算法的核心模塊,在計算機上得到的.h5模型與系統(tǒng)部署同屬一個編譯環(huán)境,可以減少諸多限制因素,模型部署的流程包括模型準(zhǔn)備、軟件安裝和配置、模型導(dǎo)入和參數(shù)修改、測試與驗證。部署完成后選擇圖像或視頻進行驗證和測試。
圖3是靜態(tài)圖像檢測(a)、視頻檢測(b)以及實時目標(biāo)檢測(c)的示例,在已經(jīng)編寫的圖形化界面中有選擇圖片、打開實時目標(biāo)檢測攝像頭和運行3個按鈕。使用過程中,用戶點擊選擇圖片可以在本地圖片庫中選擇靜態(tài)圖片或視頻,選擇完成后在右側(cè)文件路徑下方顯示剛剛選擇文件的絕對路徑,選好文件后點擊運行按鈕,圖像將被壓縮到固定大小(416×416)后輸入模型中進行計算,左下方等待識別區(qū)域是返回的檢測結(jié)果,右側(cè)下方顯示計算機檢測該圖像的運行時間。示例圖中顯示該靜態(tài)圖像的檢測時間是0.08 s,系統(tǒng)還會把識別到的花卉詳細位置坐標(biāo)反饋給用戶,視頻的檢測也是重復(fù)上述操作步驟,在框選出目標(biāo)位置的同時顯示對該目標(biāo)檢測框的置信度,置信度越高說明判斷為該類別的可靠性越強。
圖3 多目標(biāo)花卉識別系統(tǒng)檢測示例Fig.3 Detection example of multi-target recognition system of flowers
以Kaggle花卉數(shù)據(jù)集(https://www.kaggle.com/alxmamaev/flowers-recognition)中包含的5種常見花卉作為研究對象,整理后發(fā)現(xiàn)樣本中存在一些非花卉、分辨率不足或是分類錯誤的圖片,需要對圖像數(shù)據(jù)進行篩選,同時為豐富數(shù)據(jù)集,添加少量網(wǎng)絡(luò)圖像作為戶外拍攝場景下的照片補充,以此構(gòu)造可靠的訓(xùn)練數(shù)據(jù)集。網(wǎng)絡(luò)圖像是基于Python中的selenium工具,通過模擬瀏覽器登錄,讓爬蟲控制瀏覽器來爬取百度(https://image.baidu.com/)上的圖片,經(jīng)翻轉(zhuǎn)、裁剪后最終獲得原始花卉圖像3 486張,5類花卉分別是小雛菊、蒲公英、玫瑰、向日葵和郁金香,其中圖片數(shù)量最多的蒲公英約900張,最少的玫瑰也有579張,保證每種類別花卉圖片的數(shù)量在600~800張。
試驗中為凸顯圖像重要特征,降低光照等客觀因素對后續(xù)特征提取的影響,利用去噪、直方圖均衡等預(yù)處理有效增強圖像,增大對比度和清晰度,然后按8∶1∶1的比例將數(shù)據(jù)集隨機劃分為訓(xùn)練集、驗證集和測試集,使用Python編寫的圖形圖像注釋工具labelImg對目標(biāo)進行標(biāo)注,形成PASCAL VOC格式的XML文件。
YOLOv4是一種相對高效的目標(biāo)檢測算法,其大體結(jié)構(gòu)與YOLOv3類似,作為YOLOv3的加強版,該算法在原有網(wǎng)絡(luò)Darknet53的基礎(chǔ)上修改resblock_body,運用CSPNet(圖 4)結(jié)構(gòu)、Mish激活函數(shù)提高檢測精度。加強特征提取模塊改變YOLOv3中僅有上采樣過程的特征金字塔結(jié)構(gòu)(feature pyramid networks,FPN),通過上采樣和下采樣2個過程,加強初步特征和深層特征的融合。但實際應(yīng)用場景對檢測模型的尺寸和實時性提出了更高的要求,由于傳統(tǒng)的YOLOv4模型參數(shù)量大、運算速度慢,本研究在原有網(wǎng)絡(luò)的基礎(chǔ)上,通過替換主干特征提取網(wǎng)絡(luò)、簡化路徑聚合網(wǎng)絡(luò)的方式實現(xiàn)模型參數(shù)的縮減,同時探討預(yù)設(shè)框的尺寸和訓(xùn)練技巧對算法性能的影響。
圖4 殘差卷積(左)和CSPNet結(jié)構(gòu)(右)對比Fig.4 Comparison of residual convolution(left)and CSPNet structure(right)
2.3.1 主干特征提取網(wǎng)絡(luò)算法優(yōu)化首先利用輕量級CNN替換YOLOv4中的主干特征提取網(wǎng)絡(luò),MobileNetV3中使用了_Bneck結(jié)構(gòu)塊,具體結(jié)構(gòu)如圖 5所示。_Bneck主干部分首先對輸入進行升維,再利用深度可分離卷積完成特征提取,然后通過施加輕量級的注意力機制來調(diào)整每個通道的權(quán)重,最后將降維后的輸出與殘差邊部分相加。_Bneck結(jié)構(gòu)的特殊之處在于融合深度可分離卷積、殘差倒置結(jié)構(gòu)以及注意力機制來加強特征融合。
圖5 _Bneck結(jié)構(gòu)示意圖Fig.5 Schematic diagram of _Bneck structure
深度可分離卷積將普通卷積拆分為逐通道卷積和逐點卷積兩部分,首先對每一通道單獨卷積,產(chǎn)生和輸入通道數(shù)一致的特征圖輸出,再利用1×1的卷積核進行單點上的特征提取。假設(shè)特征圖輸入和輸出尺寸分別為DF×DF×M、DF×DF×N,卷積核尺寸為DK×DK×M,其中DF為特征圖的寬/高,M和N分別為輸入和輸出的通道數(shù),DK為卷積核的寬/高。標(biāo)準(zhǔn)卷積下的參數(shù)量為(DK×DK×M)×N,而深度可分離卷積中深度卷積參數(shù)量為(DK×DK×1)×M,逐點卷積參數(shù)量為(1×1×M)×N,當(dāng)使用尺寸大小為3×3的卷積核時,深度可分離卷積的模型計算參數(shù)約是標(biāo)準(zhǔn)卷積的1/10。
由于深度可分離卷積的使用會使網(wǎng)絡(luò)層數(shù)增加,過深的模型容易產(chǎn)生梯度彌散而導(dǎo)致訓(xùn)練無法收斂,可通過引入殘差結(jié)構(gòu)來改進映射。該結(jié)構(gòu)最顯著的特點是多了1條實現(xiàn)輸入和輸出之間數(shù)據(jù)疊加的捷徑連接,這種連接并不會增加參數(shù)數(shù)量和計算復(fù)雜度,卻可以有效避免梯度消失,從而在加深網(wǎng)絡(luò)的同時提高模型表達能力。傳統(tǒng)殘差模型采用先壓縮通道數(shù),卷積后再擴張通道數(shù)的策略,這種方式會降低特征提取能力,為此MobileNetV3采用了殘差倒置方式,利用瓶頸結(jié)構(gòu)減少訓(xùn)練參數(shù)的主干部分,先1×1卷積升維,然后利用3×3的深度可分離卷積進行特征提取,最后用1×1卷積降維,在減少計算量的同時加強特征提取能力。
在注意力機制方面,本文對特征提取后的結(jié)果進行全局平均池化,添加高和寬的維度后,利用全卷積代替2個全連接層的方式施加注意力,這樣網(wǎng)絡(luò)就無需限定輸入圖像的分辨率,利用靈活的網(wǎng)絡(luò)結(jié)構(gòu)加上1×1卷積代替全連接,在達到稀疏全連接的同時大大提高計算效率。
2.3.2 路徑聚合網(wǎng)絡(luò)簡化特征金字塔網(wǎng)絡(luò)主要針對多尺度的特征圖,自上而下將深層網(wǎng)絡(luò)提取到的高層特征傳遞到低層進行特征融合,增強了語義信息卻忽視了位置信息。YOLOv4的路徑聚合網(wǎng)絡(luò)(path aggression network,PANet)針對該缺點采用了自底向上的策略,先對空間金字塔池化網(wǎng)絡(luò)(spatial pyramid pooling networks,SPPNet)多尺度最大池化后的輸出進行上采樣,加強特征融合,然后下采樣將淺層網(wǎng)絡(luò)提取的信息傳遞到深層網(wǎng)絡(luò)中,更好地保留物體的位置信息。一系列的上采樣和下采樣使YOLOv4的訓(xùn)練參數(shù)主要集中在PANet結(jié)構(gòu)塊中,為了降低模型復(fù)雜度,同時保證對小目標(biāo)的檢測精度,本文不考慮通過減少網(wǎng)絡(luò)層來簡化模型,而是參考MobileNetV3中的深度可分離卷積,將原始PANet網(wǎng)絡(luò)中的3×3普通卷積更改為深度可分離卷積來獲得更快的檢測速度。卷積更改前后的對比如圖 6所示,激活函數(shù)改為ReLU6的目的在于增強浮點數(shù)的小數(shù)位表達能力,降低精度損失的同時防止數(shù)值爆炸。
圖6 卷積改進前(左)和后(右)結(jié)構(gòu)對比Fig.6 Comparison of improved convolution structures before(left)and after(right)
采用上述優(yōu)化主干特征提取網(wǎng)絡(luò)和簡化PANet后的整體模型結(jié)構(gòu)如圖 7所示,圖中對CBA(convolution batch normalization activation)、DCBA(depthwise separable convolution batch normalization activation)、5_Convs和SPP(spatial pyramid pooling)的具體結(jié)構(gòu)也做了介紹,將大小為416×416×3的圖片輸入目標(biāo)檢測模型,最終得到13×13、26×26、52×52的預(yù)測網(wǎng)格,模型的預(yù)測結(jié)果可以判斷網(wǎng)格點是否包含物體以及物體的種類,最終通過對先驗框的調(diào)整獲得預(yù)測框。
圖7 改進后的MobileNetV3-YOLOv4網(wǎng)絡(luò)結(jié)構(gòu)Fig.7 Network structure of improved MobileNetV3-YOLOv4
2.3.3 改進預(yù)選框生成方式K-means聚類算法是一種迭代求解聚類中心的分析方法,隨機選擇k個對象作為初始聚類中心,通過計算每個對象到各個中心的距離,將其派給距離最近的聚類中心,每指派1個樣本,聚類中心就會根據(jù)現(xiàn)有的對象被重新計算,重復(fù)這個過程直到聚類中心不再發(fā)生變化。為了提高檢測速度,本文根據(jù)人工標(biāo)注的真實目標(biāo)框基于K-means聚類算法生成9簇預(yù)設(shè)的錨框,但在訓(xùn)練自己的數(shù)據(jù)集時,發(fā)現(xiàn)僅采取這種方法得到模型的預(yù)測效果并不好。經(jīng)研究發(fā)現(xiàn),錨框的選擇和數(shù)據(jù)集有很大關(guān)系,在使用自構(gòu)建的數(shù)據(jù)進行訓(xùn)練時,數(shù)據(jù)集的類型單一,人工標(biāo)記的真實框大小尺寸相對集中,僅僅通過K-means聚類產(chǎn)生的錨框大小也相對集中,無法體現(xiàn)模型的多尺度輸出優(yōu)勢。因此本文改進了預(yù)選框的生成辦法,使用線性尺度縮放的方式,將聚類生成的錨框尺寸優(yōu)化,通過拉伸錨框以提升模型的檢測精度,最終的錨框參數(shù)如表1所示。
表1 改進后預(yù)選框值Table 1 Improved preselection box value
圖8 花卉圖像的馬賽克數(shù)據(jù)增強示例Fig.8 Mosaic data augmentation example of flower images
(1)
(2)馬賽克(Mosaic)數(shù)據(jù)增強。馬賽克數(shù)據(jù)增強是YOLOv4訓(xùn)練模型的一大技巧,參考了理論上具有相似性的CutMix數(shù)據(jù)增強方式,圖 8是馬賽克數(shù)據(jù)增強后的結(jié)果。該方法每次讀取4張圖片,并將拼接結(jié)果傳入神經(jīng)網(wǎng)絡(luò)進行學(xué)習(xí),優(yōu)點是豐富檢測物體的背景,而試驗中的訓(xùn)練穩(wěn)定性略差,具體步驟如下:
①依次讀取4張圖片;
②分別通過翻轉(zhuǎn)、縮放和改變色域的方式將更改后的圖片放置于4個方向;
③利用矩陣的方式截取4張圖片的固定位置,組合圖片和標(biāo)注框。
訓(xùn)練均采用遷移學(xué)習(xí)的訓(xùn)練方式,解凍前的學(xué)習(xí)率為10-3,每個批次訓(xùn)練8張圖片,然后對模型進行微調(diào),解凍后學(xué)習(xí)率調(diào)整為10-4,每批次訓(xùn)練減小至4張圖片,最終驗證改進方法在不同學(xué)習(xí)策略下的識別準(zhǔn)確率,并對結(jié)果進行綜合分析。每秒傳輸幀數(shù)(frames per second,FPS)越大,顯示的流暢程度越好;召回率(recall)是衡量模型對花卉目標(biāo)檢測的覆蓋能力,表示識別出的花卉目標(biāo)的比例;精確度(precision)是正確識別的目標(biāo)在所有識別目標(biāo)中的比例,平均精度(average precision,AP)是每一類別精確度的平均值。計算出AP后,對所有類別的AP求平均值則得到整個數(shù)據(jù)集上的平均精度均值(mean average precision,mAP),mAP是目標(biāo)檢測中最重要的指標(biāo),用來衡量檢測性能。
分析改進后的目標(biāo)檢測網(wǎng)絡(luò)在mAP和FPS指標(biāo)上的變化(表 2),可以看到簡化后網(wǎng)絡(luò)的mAP略有下降,但幀頻率從11.21提升至30左右,滿足了實時檢測的需求。對比現(xiàn)有的目標(biāo)檢測模型,發(fā)現(xiàn)使用TUM模塊進行U型特征提取,再利用FFM模塊進行特征融合的M2Det對特征的提取效果最好,5類花卉檢測中的平均精度均值達到83.52%,但FPS僅有12.43,難以滿足實時檢測的條件;無先驗框的CenterNet在本文數(shù)據(jù)集上的效果相對較差,僅為77.66%;而RetinaNet在2種評價指標(biāo)上的表現(xiàn)都不是特別理想。
比較基于K-means聚類的預(yù)設(shè)框和優(yōu)化預(yù)設(shè)框下的訓(xùn)練結(jié)果,發(fā)現(xiàn)兩者在改進后模型中的表現(xiàn)略有差異,但在衡量目標(biāo)檢測算法最重要的指標(biāo)mAP上,經(jīng)過線性尺度縮放拉伸錨框后的檢測結(jié)果更具優(yōu)勢,高于傳統(tǒng)聚類生成錨框模型0.99%。原因是K-means算法雖然會對數(shù)據(jù)集中的目標(biāo)框進行聚類,但由于標(biāo)注的數(shù)據(jù)集中的目標(biāo)框大小相近,聚類出的9個候選框相差不大,因為不同的特征層適合不同大小的先驗框,淺層特征適合較大的先驗框,而聚類得到近似尺寸的預(yù)設(shè)框反而不利于模型的訓(xùn)練。經(jīng)過線性尺度縮放后得到的預(yù)設(shè)框更符合模型多尺度輸出,其泛化能力也就越好。較大的錨框在將淺層網(wǎng)絡(luò)提取的特征信息傳遞到深層網(wǎng)絡(luò)的同時,保留了淺層網(wǎng)絡(luò)中的特征,也能更好地對目標(biāo)進行定位。
表2 模型對比結(jié)果Table 2 Model comparison experimental results
為體現(xiàn)本文模型在硬件需求上的優(yōu)勢,選擇相同試驗條件下的內(nèi)存占用、顯存占用、訓(xùn)練參數(shù)和模型尺寸這4個指標(biāo)來衡量算法的復(fù)雜度。表3展示了幾種模型在進行預(yù)測時對硬件資源的消耗,可知內(nèi)存和顯存的占用量基本和模型復(fù)雜度呈正比,訓(xùn)練參數(shù)越大,分配的資源也就越多。改進后模型的訓(xùn)練參數(shù)由原來的6千多萬降至1千多萬,訓(xùn)練完成后得到的模型尺寸也由原來的245 MB縮小至44.3 MB,而較小的模型更有利于系統(tǒng)的設(shè)計與實現(xiàn),具備在低配置電腦中運行的現(xiàn)實意義。
表3 模型的復(fù)雜度分析Table 3 Complexity analysis of model
進一步定量分析試驗結(jié)果,計算模型改進前、后在每類花卉上的各項指標(biāo),由表4可知,原始模型在向日葵上的識別精度最高,為89.30%,而最低的玫瑰僅為71.52%,說明該模型對不同類型花卉的識別魯棒性不強;經(jīng)K-means聚類方法計算得到anchor后訓(xùn)練的模型在郁金香上的AP最高,達到81.61%,最低的玫瑰也有76.26%,模型在5類花卉間的AP值差距相對較小;而線性尺度縮放優(yōu)化聚類錨框后的模型在向日葵上最高AP值為86.68%,高出優(yōu)化前模型最高值5.07%,最低為74.42%,高出原始模型中的最小值2.90%。
在衡量準(zhǔn)確率和召回率的綜合指標(biāo)F1上,改進anchor的模型平均值介于原始方法和聚類anchor之間,而查看單一指標(biāo)時會發(fā)現(xiàn)原始方法的召回率較高,但犧牲了檢測的精確率,最低精確率僅為83.80%,改進后的模型在每類花卉上的檢測精確率均能保持在85%以上,證明網(wǎng)絡(luò)具有更強的泛化能力。
表4 模型性能參數(shù)對比Table 4 Comparison of performance parameters of models
通過前面的試驗發(fā)現(xiàn)改進的網(wǎng)絡(luò)以較少的精度損失大幅降低了網(wǎng)絡(luò)的計算參數(shù)數(shù)量,特別是改進聚類錨框算法后訓(xùn)練得到的模型mAP值僅與原網(wǎng)絡(luò)相差0.03%,幾乎可以忽略不計,卻可以滿足實時檢測的需求。為了進一步探討改進的錨框選取方法和訓(xùn)練策略對模型檢測效果的影響,設(shè)計試驗探究anchor選擇、學(xué)習(xí)率衰減方法和馬賽克數(shù)據(jù)增強對檢測性能的影響,對照試驗設(shè)計及mAP指標(biāo)結(jié)果如表 5所示。相同試驗條件下改進anchor選取方法后模型的性能較聚類生成的anchor好。進一步探討在改進anchor前提下的學(xué)習(xí)率衰減方式對檢測效果的影響,試驗結(jié)果表明,余弦退火算法以學(xué)習(xí)率跳變的方式“跳出”局部最小值,從而達到全局最優(yōu),采用指數(shù)衰減訓(xùn)練方式的mAP值相較余弦退火低了2.59%,而馬賽克數(shù)據(jù)增強方法穩(wěn)定性欠佳,在本試驗中的表現(xiàn)一般。
表5 對照試驗設(shè)計Table 5 Controlled experimental design
上述4種訓(xùn)練策略下的損失函數(shù)下降曲線如圖 9所示,發(fā)現(xiàn)前11個epoch,使用指數(shù)衰減算法訓(xùn)練的Loss曲線收斂更快,11個epoch后曲線波動不大但仍有小幅下降趨勢,在11至27個epoch范圍內(nèi),使用了余弦退火衰減算法的Loss曲線下降并達到了更低值,說明可以有效跳出局部最優(yōu)解,達到全局最優(yōu)的目的,此時曲線整體已經(jīng)沒有下降趨勢,可認(rèn)為模型已經(jīng)收斂。
圖10展示了4種訓(xùn)練策略下的檢測結(jié)果,可以看到基于聚類anchor的模型預(yù)測結(jié)果并不理想,預(yù)測框的得分低且漏檢現(xiàn)象較為嚴(yán)重;指數(shù)學(xué)習(xí)率衰減和馬賽克訓(xùn)練技巧下的模型檢測效果也不好,都存在一定程度的漏檢,而改進后的模型在不使用馬賽克增強,學(xué)習(xí)率衰減采用余弦退火算法下的檢測性能最好,能夠有效緩解局部遮擋下的漏檢問題,證明了本文方法的有效性。
圖9 對比試驗的loss訓(xùn)練曲線Fig.9 Loss training curve of comparative experiment①②③④分別對應(yīng)表5中的訓(xùn)練策略。下同。①②③④ correspond to the training strategies in Table 5 respectively.The same below.
圖10 檢測結(jié)果對比Fig.10 Comparison of test results
1)本文在YOLOv4基礎(chǔ)上設(shè)計的輕量級目標(biāo)檢測模型,通過替換主干網(wǎng)絡(luò)降低模型復(fù)雜度,并在路徑聚合網(wǎng)絡(luò)部分引入深度可分離卷積大幅減少訓(xùn)練參數(shù),利用線性尺度縮放優(yōu)化基于K-means聚類的預(yù)選框尺寸,并結(jié)合多種學(xué)習(xí)策略訓(xùn)練模型,在最小化精度損失的前提下加速模型訓(xùn)練速度。試驗結(jié)果表明,改進后模型的mAP值略微降低,但檢測速度和均衡性都得到了提高,單類別花卉的最高檢測精度達到96.43%,并能滿足實時檢測的條件,訓(xùn)練后的模型尺寸也由原來的245 MB降至44.3 MB。
2)本文設(shè)計實現(xiàn)的花卉目標(biāo)檢測系統(tǒng),可以為用戶提供圖像預(yù)處理操作,以交互處理方式增加用戶體驗感,通過選擇靜態(tài)圖像或視頻,系統(tǒng)將檢測結(jié)果反饋給用戶。
3)由于缺少常見花卉的大規(guī)模數(shù)據(jù)集,為進一步提高模型的泛化性和魯棒性,需要采集更多、更復(fù)雜場景下的數(shù)據(jù),同時規(guī)范數(shù)據(jù)標(biāo)注的標(biāo)準(zhǔn),確保目標(biāo)框集合的準(zhǔn)確性與統(tǒng)一性。
4)由于本文僅實現(xiàn)了輕量化網(wǎng)絡(luò)在PC端中的花卉目標(biāo)檢測系統(tǒng),算法未在移動設(shè)備上進行驗證,需要進一步研究輕量化模型在移動端的部署。