賈惠 伍希志 薛洋 李玉彤
(中南林業科技大學材料科學與工程學院,湖南 長沙 410000)
柑橘是我國南方種植較多的一類水果,其經濟效益較高。隨著農林業機械化的不斷進步,柑橘的采摘已經逐漸從人工過渡到結合機器視覺方法。傳統的機器視覺需要對實時采集的圖像進行數據圖像處理操作,效率很低[1];近些年神經網絡快速發展,機器視覺結合深度學習方法進行檢測成為主流[2-5]。目前采用深度學習方法進行柑橘缺陷檢測存在一個關鍵問題:深度學習方法需要預先采集大量訓練樣本得到訓練模型,而在實際采摘柑橘的場景應用中,預先進行大量的缺陷柑橘數據獲取和高質量標注會耗費大量精力。因此,如何使用較少的特征數據樣本獲得較好的檢測效果是學者一直在研究的新方向。
小樣本學習最初受啟發于人類學習模式,人類擅長從極少樣本中快速學習到新事物的特征,并做出準確的預測,這種高效率的學習能力正是當前機器學習模型所需要的。為解決因大量高質量標注樣本帶來的困難,2003年,Li等[6]首次在論文中提出小樣本學習的概念,其使用了一種基于貝葉斯方法的無監督一次性學習物體類別方法,從僅有少量圖像樣本中學習物體類別。此時小樣本主要是進行分類任務,隨著研究的不斷深入,學者開始同時兼顧分類和定位任務。2018年,Dong等[7]利用大量未標注圖像和每個類別只有少數標記的圖像進行目標檢測,與只使用大量圖像標簽的先進弱監督方法相比,產生了非常有競爭力的結果。近年來對于基于小樣本的檢測研究越來越多,史燕燕等[8]、李芳琳[9]將小樣本目標檢測分為4類,并討論了在公共數據集上各方法的效果。楊明欣等[10]將數據進行增強,使用改進的MobileNetV2進行訓練,最終改進模型在對照實驗中具有更優秀的效果。李紅光等[11]基于元學習方法解決了遙感圖像樣本小且易與背景混肴的問題。杜鵑等[12]基于遷移學習對小樣本連接器數據集檢測,在YOLOv5的基礎上進行權重遷移和模型調整,最終該方法檢測精度和收斂速度都有很大提升。唐澤宇等[13]在研究如何提取和識別通信輻射源的目標特征時提出了基于遷移學習的小樣本識別方法,結合數據增強,最終加快了模型的收斂速度,提高了模型識別率和魯棒性。黃友文等[14]在小樣本數據集上使用了融合分類校正和樣本擴增的Faster-R-CNN網絡,在樣本數量很少的情況下,效果有顯著提升。吳晗等[15]提出了基于樣本擴增的小樣本目標檢測算法,采用生成對抗網絡進行樣本數據增強,并在YOLOv3的基礎上添加了空間注意力機制模塊,新算法在自己數據集上提升了近20%的平均精確率。馬鵬等[16]針對智能變電站設備的自動化檢測提出了基于遷移學習的小樣本檢測方法,在單階段多框檢測器的算法基礎上根據數據集添加特征提取層,改進特征預測框和非極大抑制部分,最終實驗精度達到91.1%,為小樣本電力設備智能化檢測奠定了基礎。
綜上所述,目前在小樣本目標檢測的研究上已經取得了一定的成就,但一些研究多數是以公共數據集進行實驗,對于單一種類樣本的數據集研究較少。筆者認為,單一目標的數據集樣本之間相似性較高,能夠更快速地學習到樣本特征,從而實現目標的缺陷檢測。因此,針對收集的柑橘數據集,本論文采用基于遷移學習和數據增強的方法進行柑橘小樣本的缺陷檢測,以減少數據采集和標記的工作量以及算法學習的復雜度。
本實驗收集了13種不同的柑橘缺陷類型圖片,每類有5~30張圖片。這些類別分別是柑橘白癩病、瘡痂、褐腐疫霉病、黑星病、黃龍病、花皮(薊馬危害)、潰瘍、裂果、煤煙病、日灼、砂皮果、炭疽、銹螨。實驗數據均是來自互聯網搜索,并在查閱資料后進行缺陷分類,部分樣本如圖1所示。

圖1 柑橘病害缺陷樣本
本文所使用的方法分別需要原始數據和增強后的數據。原始圖片進行篩選和預處理后得到260張樣本,圖片統一處理為640像素規格。計算機視覺領域的數據增強是指借助圖像處理技術或深度學習技術,使之產生更多有效數據。本文將采用圖像處理方法將原始數據進行旋轉、裁剪、高斯模糊,將數據總量擴充至1000張圖片以提高樣本多樣性。使用LabelImg軟件將圖片標注為VOC標簽格式,該標簽格式涵蓋了較多的圖像信息,在后續使用時可以方便轉為另外2種標簽格式,以避免重復標注。
遷移學習的目標是將舊任務中學習到的知識和技能應用到新任務中[17],基于遷移學習的小樣本目標檢測方法是先在含有大量圖像的數據集上對模型進行預訓練學習大量目標樣本泛化的特征,進行模型參數的微調,將該模型應用到新的小樣本任務中。本實驗采用基于遷移學習的微調方法,具體使用了3種實驗模型:由Yan等[19]提出的FRCN ft-full以及Wang等[18]提出的TFA w/fc和TFA w/cos。如圖2所示,3種模型均是由基礎訓練階段和微調階段組成,在類型豐富的基礎數據集上訓練整個目標檢測器來初始化模型,凍結主要部分,對包含新穎類別的小型平衡訓練集進行微調。
TFA方法的主要思想是在Faster R-CNN模型中添加1個稱為Target Few-Shot Adapter的微調模塊,如圖2b所示,該模塊添加在模型的最后一層,專門用于處理少量目標類別的微調;其中,TFA w/fc使用全連接層作為適配器,而TFAw/cos使用余弦相似度作為適配器。微調模塊在進行新類微調時,凍結了模型的主干網絡、RPN和ROI特征提取3部分,在新類的小樣本集合上,微調檢測模型最后一層的邊界框分類器和回歸器,以適應新的目標類別。而FRCN ft-full使用完全微調的方法,沒有凍結任何層。

圖2 TFA方法流程
基于數據增強的方法主要是對于數據進行修改,不改變訓練模型。小樣本學習的根本問題在于目標任務數據量少,難以訓練出魯棒的識別模型。因此,擴充數據可以從根本上解決小樣本問題。本實驗采用最基礎的傳統方法,在原始數據上做高斯模糊和旋轉等操作,如圖3所示,為部分增強圖像的示例。以增強后的數據為目標數據集,使用主流的目標檢測方法進行檢測。目前根據網絡模型階段來劃分,目標檢測算法可以分為2類,一階段算法和兩階段算法。本文使用的是在小目標檢測中表現優秀的典型算法,分別是一階段算法中的YOLOv8和兩階段算法中的Faster R-CNN。

圖3 部分增強數據
2.2.1 Faster R-CNN算法
Faster R-CNN是一種用于目標檢測的深度學習算法,相較于R-CNN和Fast R-CNN算法,Faster R-CNN引入了RPN(Region Proposal Network)直接生成候選區域,從而提高了檢測效率。其網絡模型結構包括特征提取,RPN網絡生成候選框,最終的目標分類與位置回歸[20]。
2.2.2 YOLOv8算法
YOLO系列算法是一種用于目標檢測的深度學習算法,采用端到端的思路,在速度和準確性之間取得了平衡。YOLOv8是目前最先進的模型,建立在舊YOLO版本的基礎上,引入了新的功能和改進,以進一步提升性能和靈活性。YOLOv8的工作流程如圖4所示,輸入圖像經過卷積層提取特征得到3個尺度的特征圖;每個尺度都會輸出1組邊界框和對應的置信度;根據置信度和閾值,篩選出置信度高的邊界框,并采用非極大值抑制(NMS)來去除重疊的邊界框;得到檢測結果,包括目標類別、邊界框位置和置信度。

圖4 YOLOv8工作流程圖
YOLOv8的網絡結構圖如圖5所示,從圖5可以看出,網絡分為主干網絡(Backbone)、特征增強網絡(Neck)和檢測頭(Head),3個部分。主干網絡將之前的C3結構換成了梯度流更豐富的C2F結構,并對不同尺度的模型調整了不同的通道數;檢測頭部分換成了解耦頭結構,將分類和檢測模塊分離;同時采用了更有效的Anchor-Free檢測方法和更精確的損失函數,大幅提升了模型的性能。

圖5 YOLOv8網絡結構圖
實驗采用了一臺配備Intel Core i7處理器和NVIDIA GeForce GTX 3060顯卡的臺式計算機,內存容量為16GB,實驗運行在Ubuntu 18.04操作系統上,采用Anconda環境和Python語言,運行軟件為Pycharm。
3.2.1 基于遷移學習的方法
基于遷移學習的方法引入了一個新概念N-way K-shot,其中N代表類別數量,K代表樣本數量,實驗數據使用原始樣本,將數據進行隨機分類,使用prepare_voc_few_shot.py文件將原始數據集分成多組隨機種子,每組均為13個類別的樣本,每個類別按照K=1,2,3,5,7,10,20進行實例抽樣。在進行模型訓練時,對于3種算法模型各自進行7組訓練,每組樣本數量分別為K的不同取值。實驗采用Faster R-CNN作為訓練模型,其他參數設置與基于數據增強的法中Faster R-CNN模型的設置一致。
3.2.2 基于數據增強的方法
2種算法均使用相同圖片樣本,圖片大小為640像素,采用增強前的260張原始圖片和增強后的1000張圖片做對照組,學習率為0.001,batch size為1,采用SGD優化器。模型的訓練過程中,采用有監督的學習方式,通過設計損失函數的回歸以及優化柑橘缺陷檢測準確率模型,選擇的訓練輪次為各類模型損失函數基本趨于穩定時的輪次。
3.3.1 基于遷移學習方法的結果分析
基于遷移學習3類算法的結果如表1、圖6所示。
從表1可以看出,在TFA模型算法中,TFA w/cos在1-shot下的表現優于TFA w/fc,然而除1-shot外,TFA w/fc在所有其他實驗條件下的表現均高于TFA w/cos。這表明使用全連接層作為適配器在柑橘的小樣本檢測任務中的效果略優于使用余弦相似度的算法;此外,FRCN ft-full方法在1-shot條件下的mAP值達到25.134%,已經比TFA算法在20-shot條件下的mAP值還高出6.917%;在20-shot下,FRCN ft-full方法的mAP值更是高達69.823%。這些數據充分證明FRCN ft-full方法在該任務中的性能遠超TFA模型算法。
從圖6可以看出,在算法的3個評價指標中,AP50表現最為出色,這表明在IoU為0.5時,準確率達到最佳水平。隨著IoU值的增加,準確率開始下降,說明模型的檢測框的精準度較差,存在能識別到物體但是無法準確定位整個物體的情況。
本研究發現,3類算法的性能均隨著圖像數量的增加而提高。在數據量較少的情況下,增加少量圖片能夠帶來顯著的算法性能提升。然而,在10-shot到20-shot的實驗中,盡管增加的圖片數量較多,但算法性能的提升程度反而并不顯著。這表明隨著圖像數量的增加,圖片數量的影響逐漸降低,即圖片數量對于算法性能的提升作用呈現出飽和趨勢。

圖6 遷移學習方法結果對比圖
3.3.2 基于數據增強方法的結果分析
2種算法進行數據增強前后mAP值的對比見圖7。其中,Faster R-CNN算法在增強前的mAP值為48.2%,增強后為84.7%,增加了36.5%;而YOLOv8算法在增強前的mAP值為52%,增強后為85.3%,增加了33.3%。這表明數據增強對于提高模型準確率具有顯著效果。同時。從圖8可以看出,YOLOv8算法在增強前比Faster R-CNN高出3.8%,在增強后,YOLOv8算法仍比Faster R-CNN高出0.6%。這表明,YOLOv8算法在性能上優于Faster R-CNN算法。

圖7 數據增強前后的mAP值對比
本研究采用了遷移學習方法和數據增強方法進行小樣本柑橘檢測,實驗結果表明,基于數據增強方法在檢測準確率方面優于基于遷移學習方法;基于數據增強方法學習特征單一,容易造成過擬合;基于遷移學習方法泛化性強,但檢測框定位稍差。未來的研究需要繼續優化模型的結構和訓練方法,以提高小樣本數據目標檢測的精準度和魯棒性,進一步提高模型的性能。