胡明玉 夏 雪 楊晨雪 曹景軍 柴秀娟*
(1.中國農(nóng)業(yè)科學(xué)院 農(nóng)業(yè)信息研究所,北京 100081; 2.農(nóng)業(yè)農(nóng)村部農(nóng)業(yè)大數(shù)據(jù)重點(diǎn)實(shí)驗(yàn)室,北京 100081)
隨著計(jì)算機(jī)視覺的發(fā)展,深度學(xué)習(xí)技術(shù)在圖像分類[1-6]、目標(biāo)檢測(cè)[7-12]和圖像分割[13-18]等研究中得到了廣泛應(yīng)用,農(nóng)業(yè)領(lǐng)域中的應(yīng)用包括作物及其器官分類、病蟲害識(shí)別、果實(shí)識(shí)別和計(jì)數(shù)、植物識(shí)別、土壤覆蓋分類、雜草識(shí)別、行為識(shí)別和分類、植物養(yǎng)分含量估計(jì)、植物葉片或種子表型分析等方面[19]。但由于深度學(xué)習(xí)方法需要大量的數(shù)據(jù)樣本,在相關(guān)研究中普遍存在訓(xùn)練樣本標(biāo)注費(fèi)時(shí)費(fèi)力的問題。針對(duì)訓(xùn)練樣本標(biāo)注任務(wù),已開發(fā)出多款圖像標(biāo)注工具。目前在目標(biāo)檢測(cè)研究中可使用的圖像標(biāo)注工具可分為客戶端和WEB端2種??蛻舳藰?biāo)注工具包括Labelme、LabelImg、YOLO_mark、Sloth、RectLabel等,WEB端標(biāo)注工具包括CVAT、VOTT、LabelBox、VIA、Boobs、Vatic等?,F(xiàn)有的圖像標(biāo)注工具各具特點(diǎn)。從支持的標(biāo)注圖形的幾何形狀來看,除矩形外,Labelme、Sloth、RectLabel還支持采用點(diǎn)、線段、多邊形對(duì)圖像進(jìn)行標(biāo)注;從支持的標(biāo)注信息存儲(chǔ)文件導(dǎo)出格式來看,除Yolo_mark僅支持文本格式(專為YOLO系列的模型訓(xùn)練準(zhǔn)備數(shù)據(jù))外,其他標(biāo)注工具均支持至少2種數(shù)據(jù)導(dǎo)出格式,例如COCO JSON格式、VOC[20]XML格式等;從支持標(biāo)注的圖像形式看,Labelme、Sloth、CVAT、VOTT、VIA不僅支持圖片標(biāo)注,還支持視頻標(biāo)注;Vatic是專為視頻標(biāo)注任務(wù)研發(fā)的標(biāo)注工具。另外,部分標(biāo)注工具實(shí)現(xiàn)了半自動(dòng)圖像標(biāo)注功能,例如,Vatic采用了基于OpenCV的目標(biāo)追蹤算法,使得標(biāo)注人員在標(biāo)注視頻圖像時(shí)只需標(biāo)注適量單幀圖像即可實(shí)現(xiàn)對(duì)視頻中所有單幀圖像進(jìn)行標(biāo)注;RectLabel利用其內(nèi)置的Core ML模型實(shí)現(xiàn)了對(duì)圖像的自動(dòng)標(biāo)注。雖然使用已有標(biāo)注工具可以完成大部分常規(guī)的圖像標(biāo)注任務(wù),但一些圖像中會(huì)存在檢測(cè)目標(biāo)數(shù)量大且密集的情況,如食用菌圖像和小麥圖像等,若使用無自動(dòng)標(biāo)注功能的常規(guī)標(biāo)注工具對(duì)圖像中的目標(biāo)逐一進(jìn)行純手工標(biāo)注,一方面工作量較大,另一方面也很難保證多人參與時(shí)圖像標(biāo)注的準(zhǔn)確性、一致性和完整性。另外,現(xiàn)有圖像標(biāo)注工具的半自動(dòng)標(biāo)注功能存在適用的物體類別有限以及自動(dòng)標(biāo)注效果較差的問題。本研究針對(duì)深度學(xué)習(xí)研究中訓(xùn)練樣本標(biāo)注工作費(fèi)時(shí)費(fèi)力的問題,以食用菌為研究對(duì)象,擬采用將深度學(xué)習(xí)目標(biāo)檢測(cè)模型與迭代圖像標(biāo)注工作有效結(jié)合的方法,開發(fā)基于深度學(xué)習(xí)的半監(jiān)督圖像標(biāo)注系統(tǒng),采用“檢測(cè)模型訓(xùn)練—目標(biāo)自動(dòng)檢測(cè)—人工標(biāo)注修正—檢測(cè)模型更新”的迭代操作,以期實(shí)現(xiàn)半監(jiān)督方式的圖像標(biāo)注,不斷優(yōu)化系統(tǒng)的自動(dòng)檢測(cè)性能,從而提高圖像標(biāo)注效率,降低圖像標(biāo)注的人工成本投入。
本研究中所采用的食用菌圖像來自浙江省桐鄉(xiāng)市聯(lián)翔食用菌有限公司的雙孢菇培養(yǎng)工廠。工廠為封閉式結(jié)構(gòu),雙孢菇置于廠內(nèi)層疊的鐵架容器中,每層有10 個(gè)容器,共有5 層。每個(gè)容器長度約為1.5 m,寬度約1.4 m,高度約0.37 m。圖像采集時(shí)間為2018年10月。采集方式為,將每個(gè)容器大致均勻分為16 塊,人工采用IPHONE 8 PLUS手機(jī)在與容器底部平行方向且距食用菌約0.3 m處依次按行、列順序移動(dòng)拍攝圖像。此次共采集分辨率為4 032像素×3 024像素的食用菌圖像1 158 幅。
本試驗(yàn)采用4塊型號(hào)為Tesla P100-SXM2-16GB的顯卡對(duì)數(shù)據(jù)進(jìn)行并行處理。
目標(biāo)檢測(cè)模型是半監(jiān)督圖像標(biāo)注的核心和基礎(chǔ)。目前用于目標(biāo)檢測(cè)的深度學(xué)習(xí)模型分為兩階段目標(biāo)檢測(cè)模型和單階段目標(biāo)檢測(cè)模型。兩階段目標(biāo)檢測(cè)模型中具有代表性的是R-CNN及其衍生的系列模型,如Faster R-CNN[21],采用對(duì)錨框進(jìn)行回歸與分類生成候選框、對(duì)候選框進(jìn)行回歸和分類2個(gè)步驟實(shí)現(xiàn)目標(biāo)檢測(cè)。單階段目標(biāo)檢測(cè)模型中具有代表性的是YOLO和SSD,直接對(duì)采用密集采樣方式設(shè)置的錨框進(jìn)行回歸與分類實(shí)現(xiàn)目標(biāo)檢測(cè)。經(jīng)過分別采用YOLOv3、SSD、Faster R-CNN對(duì)食用菌圖像進(jìn)行檢測(cè)的試驗(yàn)結(jié)果對(duì)比(將在3.2中介紹)可知,基于Resnet50的Faster R-CNN模型的檢測(cè)效果最好,因此本研究選擇此模型作為食用菌目標(biāo)檢測(cè)的深度學(xué)習(xí)模型。Faster R-CNN模型可分為特征提取、候選框生成(Region proposal network,RPN)以及位置回歸和分類預(yù)測(cè)(RoIHead[21]/Faster R-CNN)3個(gè)部分,模型的整體工作流程見圖1。
在特征提取部分,將食用菌圖像輸入到特征提取模塊中,對(duì)圖像的紅(R)、綠(G)、藍(lán)(B)3個(gè)通道進(jìn)行一系列的卷積、池化、全連接等操作后生成特征圖。
在候選框生成部分,將提取的特征圖輸入到RPN模塊來生成候選框。首先針對(duì)特征圖上的每一個(gè)點(diǎn)生成12種不同尺寸和長寬比的錨框,并計(jì)算每一個(gè)錨框?qū)儆谇熬暗母怕室约皩?duì)應(yīng)的位置參數(shù),然后選取概率較大的m個(gè)錨框,利用位置參數(shù)修正錨框的位置得到候選框,最后經(jīng)過非極大值抑制操作保留概率較大的n個(gè)候選框輸入到下一個(gè)模塊中。
圖1 Faster R-CNN整體工作流程Fig.1 Overall process of Faster R-CNN
在位置回歸和分類預(yù)測(cè)部分,RPN模塊提供的n個(gè)候選框被輸入到RoIHead(Fast R-CNN)模塊,對(duì)每個(gè)候選框的位置參數(shù)進(jìn)行調(diào)整來生成預(yù)測(cè)框,并得到分類結(jié)果。
本研究采用“檢測(cè)模型訓(xùn)練—目標(biāo)自動(dòng)檢測(cè)—人工標(biāo)注修正—檢測(cè)模型更新”的迭代操作,實(shí)現(xiàn)了半監(jiān)督方式的圖像標(biāo)注。具體可分為6個(gè)步驟。
步驟1:將部分人工標(biāo)注的食用菌圖像和對(duì)應(yīng)的標(biāo)注信息存儲(chǔ)文件作為輸入,訓(xùn)練得到食用菌目標(biāo)檢測(cè)模型,此時(shí)模型的食用菌檢測(cè)能力較低;
步驟2:載入部分待標(biāo)注食用菌圖像,利用系統(tǒng)中嵌入的食用菌目標(biāo)檢測(cè)模型對(duì)圖像中的食用菌目標(biāo)進(jìn)行檢測(cè),得到系統(tǒng)自動(dòng)標(biāo)注的結(jié)果;
步驟3:對(duì)不準(zhǔn)確的標(biāo)注結(jié)果(包括漏標(biāo)、錯(cuò)標(biāo)和標(biāo)注框歪偏等錯(cuò)誤)進(jìn)行人工修正,得到精確的標(biāo)注結(jié)果(圖像中所有食用菌均有標(biāo)注且標(biāo)注框貼合食用菌邊緣,沒有不包含食用菌的標(biāo)注框);
步驟4:將修正后的精確標(biāo)注信息存儲(chǔ)文件和對(duì)應(yīng)的食用菌圖像作為輸入,重新訓(xùn)練食用菌目標(biāo)檢測(cè)模型,得到精度更高的檢測(cè)模型,此時(shí)圖像中更多的食用菌目標(biāo)可被自動(dòng)標(biāo)注出來;
步驟5:重復(fù)步驟2 至步驟4,迭代更新模型,直至目標(biāo)檢測(cè)模型的檢測(cè)效果達(dá)到理想精度,即平均準(zhǔn)確率(Average precision,AP)>85%;
步驟6:將最終訓(xùn)練獲得的達(dá)到理想精度的目標(biāo)檢測(cè)模型嵌入圖像標(biāo)注系統(tǒng),完成剩余食用菌圖像的標(biāo)注工作,此時(shí)圖像中90%以上的食用菌目標(biāo)可被準(zhǔn)確的標(biāo)注出來。
本系統(tǒng)分為半監(jiān)督標(biāo)注模塊和人工標(biāo)注模塊。半監(jiān)督標(biāo)注模塊實(shí)現(xiàn)系統(tǒng)自動(dòng)標(biāo)注+人工修正的功能,人工標(biāo)注模塊實(shí)現(xiàn)純手工標(biāo)注的功能。系統(tǒng)工作流程見圖2。在進(jìn)行食用菌圖像標(biāo)注時(shí),首先選擇圖片存儲(chǔ)路徑,完成食用菌圖片的載入。若標(biāo)注方式為半監(jiān)督標(biāo)注,系統(tǒng)會(huì)先自動(dòng)檢測(cè)出圖像中的食用菌,同時(shí)生成標(biāo)注信息存儲(chǔ)文件,隨后人工對(duì)自動(dòng)生成的標(biāo)注結(jié)果進(jìn)行修正,人工修正方式分為3種:對(duì)于漏標(biāo)的情況,直接手動(dòng)添加標(biāo)注框;對(duì)于錯(cuò)標(biāo)的情況,直接手動(dòng)刪除標(biāo)注框;對(duì)于標(biāo)注框歪偏的情況,首先手動(dòng)刪除原來的邊框,然后手動(dòng)添加新的邊框。若標(biāo)注方式為人工標(biāo)注,則不執(zhí)行系統(tǒng)自動(dòng)檢測(cè)功能,人工直接對(duì)食用菌圖像進(jìn)行純手工標(biāo)注。在修正或標(biāo)注完當(dāng)前圖像后,系統(tǒng)將自動(dòng)保存標(biāo)注結(jié)果,同時(shí)可跳轉(zhuǎn)至上一張或下一張圖片開始后續(xù)標(biāo)注任務(wù)。
圖2 半監(jiān)督圖像標(biāo)注系統(tǒng)總體運(yùn)行流程Fig.2 Overall operation process of the semi-supervisedimage labeling system
本研究采用Python 3.6編程,通過Tkinter模塊調(diào)用Python的標(biāo)準(zhǔn)Tk 圖形用戶界面(Graphical user interface,GUI)工具包來實(shí)現(xiàn)系統(tǒng)的圖形化操作界面。本系統(tǒng)的操作界面分為上中下3層:上層設(shè)置有圖像路徑選擇功能區(qū)、鼠標(biāo)焦點(diǎn)坐標(biāo)信息顯示區(qū)和當(dāng)前圖像名稱信息顯示區(qū);操作界面中層設(shè)有圖像顯示區(qū)域、局部放大區(qū)和標(biāo)注信息列表區(qū),操作界面下層設(shè)有圖像計(jì)數(shù)信息顯示區(qū)、圖像切換跳轉(zhuǎn)功能區(qū)和自動(dòng)標(biāo)注選擇功能區(qū)。本研究所設(shè)計(jì)的半監(jiān)督圖像標(biāo)注系統(tǒng)操作界面見圖3。
圖3 半監(jiān)督圖像標(biāo)注系統(tǒng)操作界面Fig.3 Operation interface of the semi-supervised image labeling system
半監(jiān)督標(biāo)注模塊采用系統(tǒng)自動(dòng)標(biāo)注和人工修正結(jié)合的方式完成食用菌圖像標(biāo)注任務(wù)。半監(jiān)督圖像標(biāo)注模塊包括4方面的功能:
1)模型自動(dòng)載入與調(diào)用功能。模塊可將訓(xùn)練完成的食用菌目標(biāo)檢測(cè)模型嵌入,當(dāng)半監(jiān)督圖像標(biāo)注功能被激活時(shí),模塊可實(shí)時(shí)調(diào)用模型對(duì)食用菌圖像進(jìn)行處理。
2)食用菌自動(dòng)檢測(cè)功能。模塊可對(duì)輸入的食用菌圖像自動(dòng)進(jìn)行目標(biāo)檢測(cè),獲取圖像中食用菌的位置坐標(biāo)信息。
3)標(biāo)注結(jié)果可視化功能。模塊可根據(jù)系統(tǒng)自動(dòng)檢測(cè)得到的食用菌標(biāo)注信息在圖像上可視化顯示出矩形框,即可呈現(xiàn)自動(dòng)標(biāo)注的效果。
4)標(biāo)注結(jié)果修改功能。模塊可提供利用操作界面對(duì)系統(tǒng)自動(dòng)標(biāo)注結(jié)果進(jìn)行人工修正的功能,并將修改過的食用菌標(biāo)注信息重新保存至相應(yīng)的標(biāo)注信息存儲(chǔ)文件中。
系統(tǒng)自動(dòng)標(biāo)注和人工修正后的食用菌圖像標(biāo)注結(jié)果見圖4,可見,系統(tǒng)自動(dòng)標(biāo)注時(shí)會(huì)出現(xiàn)漏標(biāo)和標(biāo)注不準(zhǔn)確的情況(圖4(a)),需要人工修正來完善標(biāo)注結(jié)果(圖4(b))。
圖4 半監(jiān)督圖像標(biāo)注系統(tǒng)自動(dòng)標(biāo)注及人工修正標(biāo)注效果Fig.4 Auto-labeling results of the semi-supervised labelling system and manual correction results
人工圖像標(biāo)注模塊用來實(shí)現(xiàn)純手工標(biāo)注,作為半監(jiān)督圖像標(biāo)注方式的補(bǔ)充。人工圖像標(biāo)注模塊包括4方面的功能:
1)標(biāo)注信息手動(dòng)刪除功能。模塊提供了2種標(biāo)注信息刪除方法:一種方法是鼠標(biāo)移至標(biāo)注框左上角時(shí),點(diǎn)擊鼠標(biāo)右鍵實(shí)現(xiàn)刪除功能,另一種方法是在標(biāo)注信息列表區(qū)選中待刪標(biāo)注條目,利用專門的刪除功能按鈕實(shí)現(xiàn)標(biāo)注信息的刪除。
2)手動(dòng)標(biāo)注圖像功能。模塊允許以滑動(dòng)鼠標(biāo)的方式來框選圖像中的食用菌目標(biāo),并記錄其位置坐標(biāo)信息。人工進(jìn)行手動(dòng)標(biāo)注時(shí),首先點(diǎn)擊鼠標(biāo)左鍵并滑動(dòng),當(dāng)標(biāo)注框貼合目標(biāo)邊界時(shí)再次點(diǎn)擊鼠標(biāo)左鍵完成一次標(biāo)注。
3)手動(dòng)標(biāo)注信息存儲(chǔ)功能。手動(dòng)標(biāo)注完成后,模塊會(huì)記錄食用菌標(biāo)注框左上角的x、y坐標(biāo)和右下角的x、y坐標(biāo),并以“minx-miny-maxx- maxy”的形式顯示到標(biāo)注信息列表區(qū),同時(shí)將標(biāo)注信息寫入指定的存儲(chǔ)文件中。
4)圖像局部區(qū)域自動(dòng)放大功能。模塊借助圖像切割函數(shù)截取以鼠標(biāo)焦點(diǎn)為中心的50像素×50像素范圍內(nèi)的圖像內(nèi)容,并利用圖像縮放函數(shù)放大截取的圖像區(qū)域,實(shí)現(xiàn)圖像局部區(qū)域的自動(dòng)放大。
本研究試驗(yàn)中檢測(cè)模型的性能評(píng)價(jià)指標(biāo)為平均準(zhǔn)確率(Average precision,AP)。在計(jì)算AP的過程中,交并比(Intersection over Union,IoU)是一個(gè)很重要的參數(shù)。IoU的計(jì)算方法為:
(1)
式中:A為人工標(biāo)注框的面積;B為模型檢測(cè)出的目標(biāo)邊框的面積。
模型的平均準(zhǔn)確率AP根據(jù)準(zhǔn)確率(p)、召回率(r)計(jì)算得出。準(zhǔn)確率和召回率的計(jì)算方法為:
(2)
(3)
式中:TP表示食用菌檢測(cè)模型已檢測(cè)出并且是正確的框的個(gè)數(shù);FP表示模型已檢測(cè)出但是錯(cuò)誤的框的個(gè)數(shù);FN表示模型沒有檢測(cè)出來但是正確的框的個(gè)數(shù)。TP與FN之和即為人工標(biāo)注框的個(gè)數(shù)。
對(duì)于模型檢測(cè)出的每一個(gè)框,遍歷同一幅食用菌圖像中人工標(biāo)注框,分別計(jì)算IoU值,取其中的最大IoU值。當(dāng)最大IoU值>0.5時(shí),記該檢測(cè)結(jié)果為正確的;當(dāng)最大IoU值<0.5時(shí),記該檢測(cè)結(jié)果為錯(cuò)誤的。由此計(jì)算出模型檢測(cè)每一幅圖像的準(zhǔn)確率和召回率并繪制準(zhǔn)確率-召回率曲線,計(jì)算該曲線與坐標(biāo)軸所圍成的區(qū)域面積定義為模型的檢測(cè)AP,它定量地描述了模型在測(cè)試集上的檢測(cè)性能。
在實(shí)際計(jì)算過程中,為了簡便,通常只抽樣選取幾個(gè)特定點(diǎn)的數(shù)據(jù),如召回率為0,0.1,…,1.0所對(duì)應(yīng)的準(zhǔn)確率,繪制準(zhǔn)確率-召回率曲線并近似計(jì)算曲線與坐標(biāo)軸的面積得到模型的檢測(cè)AP:
式中:P(r)表示召回率為r所對(duì)應(yīng)的準(zhǔn)確率。
為了確定最適合食用菌圖像檢測(cè)任務(wù)的網(wǎng)絡(luò)模型,本研究選取了SSD、YOLOv3、Faster R-CNN分別進(jìn)行試驗(yàn),訓(xùn)練集圖像數(shù)均為140 幅(4 032像素×3 024像素),并按照不同網(wǎng)絡(luò)模型的輸入圖像尺寸要求將原圖裁剪為若干幅小圖,不同模型在測(cè)試集上的檢測(cè)AP見表1??梢姡訰esnet50作為特征提取網(wǎng)絡(luò)的Faster R-CNN模型在測(cè)試集上具有最高檢測(cè)AP,為85.3%。因此,本研究選取基于Resnet50的Faster R-CNN模型作為食用菌目標(biāo)檢測(cè)模型,后續(xù)試驗(yàn)均采用此模型來展開。本研究重點(diǎn)在于探討一種基于深度學(xué)習(xí)的半監(jiān)督圖像標(biāo)注系統(tǒng)的設(shè)計(jì)方法,因此本僅選取了7種模型進(jìn)行試驗(yàn),在實(shí)際應(yīng)用中也可采用其他模型。
表1 不同模型對(duì)食用菌圖像檢測(cè)的平均準(zhǔn)確率Table 1 Average precisions of different model detections on edible mushroom images
對(duì)于半監(jiān)督圖像標(biāo)注系統(tǒng),檢測(cè)模型的訓(xùn)練十分關(guān)鍵,模型的檢測(cè)性能將直接影響到圖像標(biāo)注效率,下面將結(jié)合基于Resnet50的Faster R-CNN 模型介紹模型的訓(xùn)練過程。綜合考慮試驗(yàn)所用計(jì)算機(jī)設(shè)備顯存容量、圖像中食用菌尺寸以及模型訓(xùn)練時(shí)輸入數(shù)據(jù)的批尺寸(Batch_size)3種因素,在模型訓(xùn)練前的數(shù)據(jù)預(yù)處理階段對(duì)原圖像采取2種處理方式:第一種方式是將每幅原圖圖像裁剪為140幅尺寸為512像素×512像素的小圖,由于對(duì)原圖進(jìn)行裁剪時(shí)將部分食用菌分為兩半會(huì)造成食用菌特征信息的丟失,因此在裁剪原圖時(shí)采用了重疊裁剪的方式,即在原圖上相鄰的兩幅小圖有一半是重疊的;第二種方式是將原圖縮小為800像素×600像素的圖像。2種方式下均需要對(duì)食用菌圖像的標(biāo)注信息進(jìn)行相應(yīng)的坐標(biāo)轉(zhuǎn)換。
圖5 原圖裁剪為若干小圖,模型檢測(cè)平均 準(zhǔn)確率與訓(xùn)練集圖像數(shù)的關(guān)系Fig.5 Relationship between average precision of themodel detection and the image number of thetraining set when cropping the original imageinto several small images
在將原圖裁剪為若干小圖的圖像處理方式下,選擇50幅原圖像,裁剪為7 000幅小圖訓(xùn)練食用菌目標(biāo)檢測(cè)模型,并結(jié)合半監(jiān)督圖像標(biāo)注的方法不斷更新模型,直到訓(xùn)練出達(dá)到理想精度的目標(biāo)檢測(cè)模型。當(dāng)訓(xùn)練集圖像數(shù)由50幅增至200幅時(shí),模型在測(cè)試集上的檢測(cè)AP呈現(xiàn)先升后降的趨勢(shì)(圖5)。當(dāng)訓(xùn)練集圖像數(shù)達(dá)到140 幅時(shí),模型在測(cè)試集上的檢測(cè)AP達(dá)到峰值,為85.3%。當(dāng)訓(xùn)練集圖像數(shù)(裁剪前)分別為50、90和140 幅時(shí),模型在測(cè)試集上的檢測(cè)效果以及人工修正后的效果示例見圖6。
在將原圖裁剪為若干小圖的圖像處理方式下,訓(xùn)練集圖像數(shù)在裁剪前為140幅時(shí)模型訓(xùn)練過程中的參數(shù)調(diào)優(yōu)過程分為4個(gè)步驟。
步驟1:為確定最佳學(xué)習(xí)率(Learning rate, lr),將批尺寸(Batch_size)設(shè)為24,迭代次數(shù)設(shè)為 15 000 次,將lr分為4種:0.000 1、0.000 5、0.001 0和0.005 0,在每次訓(xùn)練中使用1種lr進(jìn)行訓(xùn)練。不同lr模型訓(xùn)練的損失函數(shù)值見圖7??梢?,當(dāng)lr為0.005 0時(shí),損失函數(shù)收斂速度最快且收斂后的值最小,因此確定0.005 0為本研究中模型訓(xùn)練的最佳lr。
步驟2:為確定最佳Batch_size值,訓(xùn)練時(shí)設(shè)置lr為最佳值0.005 0。當(dāng)?shù)? 000次左右時(shí),損失函數(shù)已收斂,無需再迭代15 000次,因此將迭代次數(shù)設(shè)為6 000次(圖7)。由于計(jì)算機(jī)設(shè)備顯存容量的限制,將Batch_size值分為4、8、16、24這4種,在每次訓(xùn)練中使用1種Batch_size值進(jìn)行訓(xùn)練。不同Batch_size模型對(duì)測(cè)試集上的檢測(cè)結(jié)果見表2??梢?,當(dāng)Batch_size為24時(shí),模型的檢測(cè)效果最好。
步驟3:為確定最佳迭代次數(shù),訓(xùn)練時(shí)設(shè)置lr為最佳值0.005 0,設(shè)置Batch_size為最佳值24。模型對(duì)測(cè)試集的檢測(cè)AP與迭代次數(shù)的關(guān)系見圖8。可見,當(dāng)?shù)螖?shù)達(dá)到6 200次時(shí),AP達(dá)到最高值85.3%。
在將原圖縮小的圖像處理方式下,選擇80 幅食用菌圖像訓(xùn)練食用菌目標(biāo)檢測(cè)模型,并結(jié)合半監(jiān)督圖像標(biāo)注方法不斷更新模型,直到訓(xùn)練出達(dá)到理想精度的目標(biāo)檢測(cè)模型。當(dāng)訓(xùn)練集圖像數(shù)由80 幅逐漸增至400 幅時(shí)模型在測(cè)試集上的檢測(cè)AP見圖9。可見,在訓(xùn)練集圖像數(shù)達(dá)到230 幅時(shí),模型在測(cè)試集上的檢測(cè)效果最好,此時(shí)準(zhǔn)確率為98.1%,召回率為88.5%,AP為88.3%。當(dāng)訓(xùn)練集圖像數(shù)分別為80、140和230 幅時(shí)模型在測(cè)試集上的檢測(cè)效果以及人工修正后的效果示例見圖10。
圖6 原圖裁剪為若干小圖,訓(xùn)練集圖像數(shù)(m)不同時(shí)模型檢測(cè)果及人工修正標(biāo)注效果Fig.6 Detection results of the model trained with the training set of different image numbersand manual correction when cropping the original image into several small images
圖7 不同學(xué)習(xí)率(lr)模型訓(xùn)練的損失函數(shù)值Fig.7 Loss values of the model trainedunder different learning rates
此外,試驗(yàn)還從食用菌采摘的實(shí)際應(yīng)用的角度衡量檢測(cè)模型的性能,由于在食用菌的自動(dòng)采摘過程中,機(jī)器只需采摘體積較大的成熟蘑菇,因此只需測(cè)量模型對(duì)大于某一尺寸的食用菌的檢測(cè)精度。在將原圖縮小的圖像處理方式下,利用230 幅圖像訓(xùn)練的模型對(duì)測(cè)試集中不同大小食用菌的檢測(cè)結(jié)果見表3。可見,檢測(cè)模型對(duì)尺寸較大的食用菌檢測(cè)精度更高,說明圖像中食用菌的尺寸會(huì)對(duì)模型的檢測(cè)精度造成一定影響。
表2 不同Batch_size模型對(duì)測(cè)試集的檢測(cè)結(jié)果Table 2 Detection results on the test set when Batch_size is different
圖8 模型對(duì)測(cè)試集檢測(cè)的平均準(zhǔn)確率與迭代次數(shù)的關(guān)系Fig.8 The relationship between the average precisionof the model detection on the test set with thenumber of iteration
圖9 原圖縮小模型檢測(cè)平均準(zhǔn)確率與訓(xùn)練集圖像數(shù)的關(guān)系Fig.9 Relationship between the average precision of themodel detection with the image number of thetraining set when reducing the original images
圖10 原圖縮小訓(xùn)練集圖像數(shù)(n)不同時(shí)模型檢測(cè)效果和人工修正標(biāo)注效果Fig.10 Detection results of the model trained with the training set of different imagenumbers (n) and manual correction when reducing the original images
由試驗(yàn)結(jié)果可知,與SSD和YOLOv3相比,基于Resnet50的Faster R-CNN模型對(duì)食用菌的檢測(cè)效果最好。試驗(yàn)中采用基于深度學(xué)習(xí)的半監(jiān)督圖像標(biāo)注方法,利用迭代操作得到達(dá)到理想精度的食用菌目標(biāo)檢測(cè)模型。在將原圖裁剪為若干小圖的圖像處理方式下,當(dāng)訓(xùn)練集圖像數(shù)為140幅,lr為0.005 0,Batch_size為24,迭代次數(shù)為6 200 時(shí),模型檢測(cè)平均準(zhǔn)確率AP達(dá)到最高,為85.3%。采用將原圖縮小的圖像處理方式時(shí),對(duì)比將原圖裁剪為若干小圖的圖像處理方式,模型在測(cè)試集上的檢測(cè)AP峰值更高,這可能是因?yàn)閷⒋髨D裁剪為小圖后,增加了訓(xùn)練集中不完整食用菌圖像的數(shù)量,影響了模型對(duì)食用菌特征信息的學(xué)習(xí)。
表3 原圖縮小訓(xùn)練集圖像數(shù)為230 幅時(shí)模型對(duì)不同大小食用菌的檢測(cè)結(jié)果Table 3 Detected results of the model trained with 230 images on edible mushrooms of different sizes when reducing the original images %
試驗(yàn)中采用基于深度學(xué)習(xí)的半監(jiān)督圖像標(biāo)注系統(tǒng)對(duì)食用菌圖像進(jìn)行標(biāo)注,并對(duì)半監(jiān)督圖像標(biāo)注速度進(jìn)行評(píng)測(cè),考慮到對(duì)圖像標(biāo)注工作熟練程度不同的人標(biāo)注速度不同,采用將3個(gè)實(shí)驗(yàn)員的標(biāo)注速度取平均值的方法對(duì)半監(jiān)督圖像標(biāo)注速度進(jìn)行了測(cè)試。在將原圖裁剪為若干小圖的圖像處理方式下,系統(tǒng)嵌入由圖像數(shù)不同的訓(xùn)練集訓(xùn)練所得的檢測(cè)模型時(shí)的半監(jiān)督圖像標(biāo)注速度見圖11??梢?,采用純手工標(biāo)注(訓(xùn)練集圖像數(shù)為0)時(shí),標(biāo)注速度約為600 s/幅;采用半監(jiān)督圖像標(biāo)注方法時(shí),隨著訓(xùn)練集圖像數(shù)的增加,模型不斷優(yōu)化,人工修正一幅圖像的平均耗時(shí)逐漸縮短,在訓(xùn)練集圖像數(shù)為230 幅時(shí),標(biāo)注速度達(dá)到最大值:15 s/幅,單幅圖像的標(biāo)注耗時(shí)僅為純?nèi)斯?biāo)注耗時(shí)的2.5%。由此可見,采用半監(jiān)督圖像標(biāo)注系統(tǒng)能夠顯著提高食用菌圖像標(biāo)注效率。
圖11 系統(tǒng)半監(jiān)督圖像標(biāo)注速度與訓(xùn)練集圖像數(shù)的關(guān)系Fig.11 Relationship between the semi-supervisedimage labeling speed of the system and theimage number of the training set
本研究提出了一種基于深度學(xué)習(xí)的半監(jiān)督圖像標(biāo)注方法,將深度學(xué)習(xí)目標(biāo)檢測(cè)模型與迭代圖像標(biāo)注工作有效結(jié)合,采用“檢測(cè)模型訓(xùn)練—目標(biāo)自動(dòng)檢測(cè)—人工標(biāo)注修正—檢測(cè)模型更新”的迭代操作,實(shí)現(xiàn)了半監(jiān)督方式的食用菌圖像標(biāo)注。構(gòu)建的基于深度學(xué)習(xí)的半監(jiān)督圖像標(biāo)注系統(tǒng)提供了半監(jiān)督圖像標(biāo)注功能和人工圖像標(biāo)注功能,顯著降低了食用菌圖像標(biāo)注工作的繁瑣程度,極大減少了人工標(biāo)注的工作量。試驗(yàn)結(jié)果表明,對(duì)訓(xùn)練集圖像采用將原圖縮小的圖像處理方式,即將原圖縮小至800像素×600像素時(shí),系統(tǒng)內(nèi)嵌模型的檢測(cè)性能達(dá)到最優(yōu),檢測(cè)準(zhǔn)確率為98.1%,召回率88.5%,平均準(zhǔn)確率88.3%。利用系統(tǒng)進(jìn)行半監(jiān)督圖像標(biāo)注的速度由原來純手工標(biāo)注的600 s/幅提升至15 s/幅,標(biāo)注效率顯著提升。研究結(jié)果為深度學(xué)習(xí)研究中的訓(xùn)練樣本標(biāo)注工作提供了高效的標(biāo)注方法和工具,有助于提高圖像標(biāo)注效率,減少人力成本投入。
中國農(nóng)業(yè)大學(xué)學(xué)報(bào)2021年5期