肖德琴 蔡家豪 林思聰 楊秋妹 謝曉君 郭婉怡
(1.華南農(nóng)業(yè)大學(xué)數(shù)學(xué)與信息學(xué)院,廣州510642;2.廣州中醫(yī)藥大學(xué)醫(yī)學(xué)信息工程學(xué)院,廣州510006)
我國是柚子種植面積最大的國家,柚子產(chǎn)量僅次于美國,位于世界第二位[1]。自2000 年以來,我國柚類產(chǎn)品得到國際市場的認(rèn)可,柚類出口量急劇增長,具有巨大的發(fā)展前景。在柚子的生產(chǎn)過程中,采摘是最耗時(shí)費(fèi)力的過程,后續(xù)的存儲(chǔ)和加工過程直接取決于采摘效果,所以保證柚子采摘質(zhì)量成為關(guān)鍵環(huán)節(jié)。目前,國內(nèi)的水果采摘主要是由人工完成,工作強(qiáng)度大,且效率低下[2]。有研究表明,用于采摘過程的費(fèi)用占生產(chǎn)總費(fèi)用的50% ~70%。隨著水果的大面積種植,傳統(tǒng)的人工采摘方式已經(jīng)不能滿足生產(chǎn)需求,研究水果采摘機(jī)械化意義重大[3]。
在自然環(huán)境下,快速、準(zhǔn)確識(shí)別與定位柚子是實(shí)現(xiàn)柚子自動(dòng)化采摘的重點(diǎn)研究方向之一,因此,研究者提出一系列水果檢測識(shí)別方法[4-6]。深度學(xué)習(xí)在農(nóng)業(yè)領(lǐng)域取得了顯著的進(jìn)展[7-9]。在傳統(tǒng)方法中,柚子的顏色、形狀以及紋理特征因受自然環(huán)境的影響而產(chǎn)生變化,所以很難對(duì)柚子進(jìn)行有效的描述,從而對(duì)算法的泛化性產(chǎn)生了極大影響?;谏疃葘W(xué)習(xí)的方法可以通過學(xué)習(xí)訓(xùn)練數(shù)據(jù)的特征來提供準(zhǔn)確的結(jié)果。深度學(xué)習(xí)方法已被用于農(nóng)業(yè)研究的各個(gè)領(lǐng)域,如FERENTINOS[10]使用卷積神經(jīng)網(wǎng)絡(luò)對(duì)健康和患病植物的簡單葉片圖像進(jìn)行植物疾病檢測和診斷。彭紅星等[11]使用Res101 結(jié)合SSD 構(gòu)建了深度水果檢測模型,對(duì)自然條件下的多種水果進(jìn)行檢測識(shí)別。然而小目標(biāo)柚子在圖像視野中占比較少,邊緣特征不明顯,甚至缺失,由于分辨率和信息有限,使得傳統(tǒng)基于深度學(xué)習(xí)的柚子檢測算法效果并不理想[12]。同時(shí),常見的目標(biāo)檢測算法是根據(jù)重疊度(Intersection over Union,IoU)閾值,從先驗(yàn)框中挑選IoU 小于0.7 和IoU 大于等于0.7 的先驗(yàn)框分別作為正負(fù)樣本,進(jìn)行分類網(wǎng)絡(luò)的訓(xùn)練。然而包含葉子背景的柚子負(fù)樣本遠(yuǎn)遠(yuǎn)大于正樣本,導(dǎo)致樣本不平衡,使柚子檢測模型存在很嚴(yán)重的偏向性。
為此,本文提出一種基于IFSSD 卷積網(wǎng)絡(luò)的柚子檢測模型,對(duì)膨大期、成熟期兩個(gè)階段的柚子進(jìn)行檢測試驗(yàn)。
試驗(yàn)中的柚子圖像于2018 年4 月1 日—10 月10 日在廣東省梅州市的順興果園獲得。果園中共種植柚子樹1 500 余棵,柚子樹隨機(jī)分布。選用??低旸S-2CD3T56WD-I3 型攝像頭進(jìn)行拍攝,將4個(gè)攝像頭固定在離地面3 m 的支架上,攝像頭分別向正北、正東、正西、正南4 個(gè)方向。支架之間的距離為60 m,共9 個(gè)支架。試驗(yàn)設(shè)備和現(xiàn)場圖如圖1所示。拍攝圖像的尺寸為1 920 像素×1 080 像素,JPG 格式。于每天09:00—17:00 每隔1 h 拍攝一次圖像,其中包含了晴天正午、晴天傍晚以及陰天正午等特殊光照條件,共獲得了5 000 幅圖像。其中圖像中存在枝葉遮擋和果實(shí)互相遮擋的圖像數(shù)量分別為3 563 幅和2 469 幅。
圖1 試驗(yàn)設(shè)備和現(xiàn)場圖Fig.1 Photos of experimental equipment and site
在5 000 幅柚子樹圖像中利用隨機(jī)抽取的方式選擇4 000 幅圖像,使用Labelme 軟件進(jìn)行標(biāo)記作為訓(xùn)練集,其他圖像作為測試集。
圖2 為訓(xùn)練集的樣本預(yù)處理過程,通過對(duì)圖像分別進(jìn)行翻轉(zhuǎn)、平移和裁剪來擴(kuò)充數(shù)據(jù)集。
圖2 圖像預(yù)處理Fig.2 Image preprocessing
在柚子訓(xùn)練集中,柚子分為膨大期果實(shí)和成熟期果實(shí),如圖3 所示,膨大期果實(shí)和成熟期果實(shí)在顏色上有明顯的區(qū)分。
圖3 膨大期和成熟期柚子果實(shí)Fig.3 Grapefruit fruit during expansion and maturity
1.3.1 InceptionV3 網(wǎng)絡(luò)
InceptionV3 是Google Inception 系列網(wǎng)絡(luò)中的一種,該網(wǎng)絡(luò)在InceptionV2 的基礎(chǔ)上提出了一種新的結(jié)構(gòu),網(wǎng)中網(wǎng)(Network in network,NIN)結(jié)構(gòu)[13]。InceptionV3 是Inception 模塊按照NIN 結(jié)構(gòu)構(gòu)建的一種新型網(wǎng)絡(luò)。InceptionV3 的Inception 模塊如圖4所示。
圖4 InceptionV3 的Inception 模塊結(jié)構(gòu)Fig.4 Structure of InceptionV3 Inception module
如圖4 所示,InceptionV3 模塊通過提取不同尺度的特征來減少模型的參數(shù)數(shù)量[14],同時(shí)多尺度特征可以提高模型的識(shí)別能力。研究證明,卷積核為1 ×1 的卷積層可以通過少量的計(jì)算實(shí)現(xiàn)特征的轉(zhuǎn)換、提高網(wǎng)絡(luò)的識(shí)別能力以及改變卷積模塊輸出的通道數(shù)[15]。InceptionV3 的第5 ~9 Inception 模塊使用更大的卷積核來獲取更加抽象的特征。針對(duì)于卷積核為7 × 7 且容易產(chǎn)生大量參數(shù)的卷積層,InceptionV3 使用1 ×7 卷積層和7 ×1 卷積層,從而提高算法的效率并降低過擬合的風(fēng)險(xiǎn)。試驗(yàn)證明,這種不對(duì)稱卷積結(jié)構(gòu)可以處理越來越豐富的空間特征并增加特征多樣性。
1.3.2 SSD 與FSSD
InceptionV3 網(wǎng)絡(luò)模型主要是對(duì)柚子的成熟情況進(jìn)行分類,存在一個(gè)局限條件就是每幅圖像中只能有一個(gè)柚子,柚子占據(jù)圖像的面積要盡量大。為了解決這個(gè)問題,許多目標(biāo)檢測方法被提出,例如使用顏色和紋理特征來檢測水果。由于柚子等水果是簇狀結(jié)果,因此在柚子檢測過程當(dāng)中容易發(fā)生重疊和誤檢的情況,使得檢測精度大大降低。
目前有許多用于目標(biāo)檢測的深度學(xué)習(xí)方法被廣泛應(yīng)用于農(nóng)業(yè)領(lǐng)域,如借助區(qū)域提議網(wǎng)絡(luò)實(shí)時(shí)目標(biāo)檢測算法(Towards real-time object detection with region proposal networks,F(xiàn)aster-RCNN)[16]、通過基于區(qū)域的全卷積網(wǎng)絡(luò)目標(biāo)檢測算法(Object detection via region-based fully convolutional networks,RFCN)[17]、單 鏡 頭 多 盒 探 測 器 算 法(Single shot multibox detector,SSD)[18]、YOLO 算 法(You only look once,YOLO)[19]以及RetinaNet[20]等。此外,柚子檢測對(duì)于算法的實(shí)時(shí)性能和小物體檢測有著更高的要求,所以需要在保證精度符合要求的情況下盡量選擇效率更高并且對(duì)小物體檢測更有效的算法。
SSD 是一種在圖像中使用同一個(gè)深度神經(jīng)網(wǎng)絡(luò)進(jìn)行檢測和識(shí)別檢測目標(biāo)的算法。SSD 生成一系列尺寸不同的候選框,通過計(jì)算標(biāo)注框與候選框的偏置值來匹配兩者,一般每個(gè)標(biāo)注框都會(huì)匹配多個(gè)候選框。SSD 將IoU 大于0.5 的候選框認(rèn)為是正樣本,其他設(shè)置為負(fù)樣本[21]。
SSD 使用VGG16 作為骨干網(wǎng)絡(luò)[22],通過 在Conv4_3、FC7、Conv7_2、Conv6_2、Conv8_2 和pool6中提取不同尺寸的特征圖來形成多尺度檢測,SSD的網(wǎng)絡(luò)結(jié)構(gòu)圖如圖5a 所示。其中特征圖尺寸為5 像素×5 像素、3 像素×3 像素和1 像素×1 像素,低級(jí)特征圖有利于小目標(biāo)的檢測,特征圖尺寸為38 像素×38 像素、19 像素×19 像素和10 像素×10 像素的高級(jí)特征圖則有利于大目標(biāo)檢測。SSD 使用通道數(shù)為1 024 的3 ×3 卷積層和1 ×1 卷積層代替全連接層和丟失層,從而達(dá)到減少模型參數(shù)、提高計(jì)算效率以及有效防止過度擬合的目的。SSD 的損失函數(shù)為
式中 L(x,c,l,g)——總體損失值
x——卷積特征值 c——真實(shí)類別
l——預(yù)測框的位置坐標(biāo)值
g——真實(shí)框的位置坐標(biāo)值
Lloc——預(yù)測框和真實(shí)框間的平滑損失值
N——候選框的數(shù)量
Lconf——多類置信度下的softmax 損失值
α——Lloc的權(quán)重
Multibox Loss 由兩部分組成,前者使用了softmax 進(jìn)行分類損失計(jì)算,后者通過局部損失來預(yù)測位置。
圖5 SSD 和FSSD 模型的結(jié)構(gòu)Fig.5 Model structure of SSD and FSSD
SSD 為柚子檢測任務(wù)提供了堅(jiān)實(shí)的基礎(chǔ),其主要優(yōu)點(diǎn)是檢測速度快。然而,試驗(yàn)表明,SSD 存在以下問題:較小的目標(biāo)難以識(shí)別;一些背景區(qū)域被識(shí)別為目標(biāo)對(duì)象;重復(fù)識(shí)別目標(biāo)。為了解決這些問題,SSD 模型被修改為FSSD 模型且不增加模型參數(shù)的數(shù)量,并降低檢測速度。
FSSD 模型的提出者認(rèn)為SSD 模型中用于預(yù)測的每個(gè)層之間的關(guān)系是相互獨(dú)立的[23]。FSSD 模型是將這些層與不同比例的特征圖進(jìn)行融合[24],以便它們相互通信并提高準(zhǔn)確性。但是,這種方法不適合在FSSD 模型中融合小于10 ×10 的特征映射,因?yàn)閹缀鯖]有要合并的信息。合并3 個(gè)較大層的特征圖以生成38 像素×38 像素的特征圖,并生成特征金字塔網(wǎng)絡(luò)(Feature pyramid networks,F(xiàn)PN)[25]。最后,F(xiàn)SSD 模型從FPN 中提取特征。
FSSD 模型的結(jié)構(gòu)如圖5b 所示。FSSD 模型以VGG16 作為主要骨干網(wǎng)絡(luò)。Conv7_2 的特征映射變?yōu)?0 ×10。FC7 和Conv7_2 使用雙線性插值將特征圖尺寸調(diào)整為38 像素×38 像素,然后將它們與Conv4_3 連接,在該步驟中,合并層的通道數(shù)為768(256 +256 +256)。然后BN 作用于合并層,該層的通道數(shù)減小到512。另外使用5 個(gè)卷積層來減小特征圖的尺寸。最后,獲得6 種不同尺寸特征圖(38 像素×38 像素、19 像素×19 像素、10 像素×10 像素、5 像素×5 像素、3 像素×3 像素和1 像素×1 像素),并將它們用于多尺度預(yù)測。這種方法可以將淺層細(xì)節(jié)特征與高級(jí)語義特征相結(jié)合,可以比SSD模型更好地識(shí)別小物體[26],并降低誤檢率。但FSSD 模型的速度比SSD 模型的速度略有下降。
1.3.3 IFSSD 模型建立
在本文中,只需要判斷檢測目標(biāo)是否是柚子,并不需要進(jìn)行多類別分類。柚子的特征相對(duì)簡單,可以簡化模型,所以本文選擇InceptionV3 作為IFSSD的骨干網(wǎng)絡(luò)。IFSSD 模型結(jié)構(gòu)如圖6 所示。
(1)InceptionV3 深度網(wǎng)絡(luò)優(yōu)化
為了減少參數(shù)數(shù)量和提高對(duì)小目標(biāo)的檢測效果,本文對(duì)InceptionV3 進(jìn)行了調(diào)整,以實(shí)現(xiàn)檢測器基于不同感受野的多尺度檢測。本文對(duì)mixed7 層進(jìn)行了刪除。IFSSD 模型在mixed6 層之后添加1 ×1 卷積,步長為2,通道數(shù)為768,然后進(jìn)行批量歸一化。新添加的圖層mixed6_s 的特征圖尺寸為18 像素×18 像素。mixed7 層的特征圖尺寸從原來的35 像素×35 像素變成18 像素×18 像素。在mixed7之后加入卷積核為1×1、步長為2、通道數(shù)為768 的卷積層。mixed7_s 的特征圖尺寸為9 像素×9 像素。圖6 中改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)用黃色方框表示。
圖6 基于IFSSD 的柚子檢測模型結(jié)構(gòu)Fig.6 IFFSD-based grapefruit detection model structure
IFSSD 模型與FSSD 模型類似,都對(duì)較大的特征圖進(jìn)行合并。在IFSSD 模型的InceptionV3 中,分別選擇特征圖尺寸各不相同的4 層模塊,分別是mixed4、mixed5、mixed6_s、mixed7_s。在第1 個(gè)連接層中,卷積核為1 ×1、步長1、通道數(shù)為256 的卷積層被應(yīng)用于mixed4 和mixed5。這樣做的目的是在不改變特征圖尺寸的前提下減小模型參數(shù),從而減少模型中的參數(shù)數(shù)量并增加增強(qiáng)模型的非線性識(shí)別能力。卷積后生成的特征圖尺寸為35 像素×35 像素,然后將mixed4 和mixed5 卷積生成的特征圖合并到一起。在第2 個(gè)連接層中,在mixed5 模塊之后添加一層卷積核為1 ×1、步長為2、通道數(shù)為256 的卷積層,其生成的特征圖尺寸為18 像素×18 像素。在mixed6_s 之后添加一個(gè)卷積核為1 ×1、步長為1、通道數(shù)為256 的卷積層。其生成的特征圖尺寸為18 像素×18 像素。然后,對(duì)兩個(gè)特征圖進(jìn)行合并。在第3 個(gè)連接層中,一個(gè)卷積核為1 ×1、步長為2、通道數(shù)為128 的卷積層被添加到mixed6_s 之后,生成了9 ×9 ×128 的特征圖。最后卷積核為1 ×1、步長為1、通道數(shù)為128 的卷積層被添加到mixed7_s 之后,其生成了9 ×9 ×128 的特征圖,并將兩個(gè)特征圖進(jìn)行合并。
在IFSSD 模型中,35 ×35 ×512、18 ×18 ×512和9 ×9 ×256 的連接層用于生成FPN。在9 ×9 ×256 的連接層之后添加一個(gè)卷積核為3 ×3、步長為2、通道數(shù)為256 的SAME 卷積層,生成特征圖尺寸為5 像素×5 像素。其后,添加一個(gè)卷積核為3 ×3、步長為1 ×1、通道數(shù)為256 以及使用VALID 的卷積層,生成特征圖尺寸為3 像素×3 像素。最后,在3 ×3 ×256 層之后,添加一個(gè)卷積核為3 ×3、步長為1、通道數(shù)為256 的VALID 卷積層,生成的特征圖尺寸為1 像素×1 像素。圖中綠色方框所示的6 層不同尺度的預(yù)測框用于獲得柚子的位置和置信度。
可以看出,F(xiàn)SSD 模型使用雙線性插值從VGG16 中3 個(gè)不同層獲得相同的尺寸,并將它們?nèi)诤显谝黄鹨垣@得輸出層并生成FPN。IFSSD 模型使用1 × 1 卷積來修改InceptionV3 中的mixed4、mixed5、mixed6_s、mixed7_s 層的通道數(shù)和圖像尺寸,并且成對(duì)地融合上述修改后的卷積層以獲得3個(gè)不同層,然后基于這3 個(gè)層生成FPN。
(2)損失函數(shù)優(yōu)化
一階段算法(one-stage)和二階段算法(twostage)的表現(xiàn)不同主要是由大量前景背景類別不平衡導(dǎo)致[27]。二階段算法中,在候選框階段,通過得分和非極大值抑制(Non-maximum suppression,NMS)篩選過濾掉了大量的負(fù)樣本,然后在分類回歸階段又固定了正負(fù)樣本比例,或者通過難例挖掘(OHEM)在線挖掘困難樣本使得前景和背景相對(duì)平衡。而一階段算法需要產(chǎn)生約100 kB 的候選位置。雖然有重復(fù)采樣,但是訓(xùn)練仍然被大量負(fù)樣本所主導(dǎo)。本文使用的IFSSD 模型屬于one-stage 模型,使用Focal Loss 代替原有的損失函數(shù)。
Focal Loss 主要是為了解決one-stage 目標(biāo)檢測中正負(fù)樣本比例嚴(yán)重失衡的問題[28]。該損失函數(shù)降低了大量簡單負(fù)樣本在訓(xùn)練中所占的權(quán)重,也可理解為一種困難樣本挖掘。Focal Loss 是在交叉熵?fù)p失函數(shù)基礎(chǔ)上進(jìn)行的修改。二分類交叉熵?fù)p失值計(jì)算式為
式中 L——二分類交叉熵的損失值
y——真實(shí)分類 y′——預(yù)測分類
y′是激活函數(shù)的輸出,取值在0 ~1 之間。可見普通的交叉熵對(duì)于正樣本而言,輸出概率越大損失越小;對(duì)于負(fù)樣本而言,輸出概率越小則損失越小。此時(shí)的損失函數(shù)在大量簡單樣本的迭代過程中比較緩慢且可能無法優(yōu)化至最優(yōu)。
Focal Loss 在原有基礎(chǔ)上加了一個(gè)常數(shù)因子γ,以減少易分類樣本的損失,從而更關(guān)注于困難的、錯(cuò)分的樣本。此外,加入平衡因子at,用來平衡正負(fù)樣本本身的比例不均,具體公式如下
式中 pi——不同類別的概率
at——正樣本和負(fù)樣本的比例,前景類別使用at時(shí),對(duì)應(yīng)的背景類別使用1 -at
柚子數(shù)據(jù)集中包含一定量果實(shí)膨大期和成熟期的圖像。訓(xùn)練集和驗(yàn)證集以4∶1的比例進(jìn)行隨機(jī)劃分。其中訓(xùn)練集包含4 000 幅圖像,使用Labelme 標(biāo)注軟件對(duì)每幅圖像中成熟期和果實(shí)膨大期的柚子進(jìn)行標(biāo)注,最后按照PASCAL VOC 數(shù)據(jù)格式[29]構(gòu)建訓(xùn)練集,另外1 000 幅未被標(biāo)注圖像作為測試集,用來評(píng)價(jià)模型在未知柚子圖像數(shù)據(jù)集上的泛化性能。
為了評(píng)估IFSSD 模型對(duì)柚子的檢測識(shí)別性能,首先通過預(yù)處理的4 000 幅RGB 圖像創(chuàng)建IFSSD 模型。剩余的1 000 幅測試圖像用于IFSSD 模型的測試。測試環(huán)境為IntelXeon E3-1245 v3 CPU、主頻3.40 GHz、內(nèi)存32 GB,GPU 為GeForce RTX 2060、操作系統(tǒng)為Ubuntu 16.04,Cuda 版本為9.0,Keras深度學(xué)習(xí)框架,OpenCV 4.0、Python3.7 編程語言。
IFSSD 模型使用自適應(yīng)矩估計(jì)(Adaptive moment estimation)作為優(yōu)化算法,同時(shí)以TensorFlow 作為張量操作庫的Keras 深度學(xué)習(xí)框架在GeForce RTX2060 顯卡上進(jìn)行加速運(yùn)算。
本文模型設(shè)置不同參數(shù),通過交叉驗(yàn)證選取最優(yōu)參數(shù)設(shè)置,初始學(xué)習(xí)率設(shè)置為0.001,經(jīng)過多次迭代后微調(diào)為10-4,偏差1 設(shè)置為0.9,偏差2 設(shè)置為0.999,歸一化的最小值邊界設(shè)置為0.000 1,權(quán)重衰變?yōu)? ×10-4,圖像批量為16。
本文模型對(duì)300 像素×300 像素圖像的檢測速率為29 f/s,訓(xùn)練過程中損失值變化曲線如圖7 所示,隨著迭代次數(shù)增加,IFFSD 模型的損失值不斷下降,經(jīng)過100 次迭代后,下降趨勢趨向于平緩,并在200 次迭代后趨于穩(wěn)定。
圖7 IFSSD 模型訓(xùn)練過程中損失值的變化曲線Fig.7 Change of loss value during IFSSD training
本文使用IFSSD、SSD、FSSD 模型分別對(duì)數(shù)據(jù)集進(jìn)行檢測。表1 為檢測結(jié)果,其中檢測出來的目標(biāo)定為正樣本,未檢測出來的目標(biāo)定為負(fù)樣本。IoU閾值為0.5,試驗(yàn)結(jié)果有4 種,分別為IoU 值小于等于0.5(FP)、IoU 值大于0.5(TP)、未檢測出真實(shí)目標(biāo)FN、TN。本文不統(tǒng)計(jì)TN 類樣本。準(zhǔn)確率計(jì)算公式為
式中 TP——檢測出的正樣本數(shù)量
FP——檢測出的負(fù)樣本數(shù)量
表1 不同檢測模型的檢測結(jié)果Tab.1 Detection results of different detection models
在檢測精度方面,IFSSD 模型的準(zhǔn)確率為93.7%,分別比SSD 模型和FSSD 模型提高了9.4個(gè)百分點(diǎn)和2.2 個(gè)百分點(diǎn)。在圖像檢測速率方面,IFSSD 模型每幅圖像檢測時(shí)間為29 s,低于SSD 模型的38 s 和FSSD 模型的41 s。
如表2 所示,IFSSD 模型的準(zhǔn)確率比梯度直方圖(Histogram of oriented gradient,HOG)+支持向量機(jī)(Support vector machine,SVM)和變形零件模型(Deformable parts model,DPM)+SVM 提高了14.1個(gè)百分點(diǎn)和16.4 個(gè)百分點(diǎn),這是由于傳統(tǒng)目標(biāo)檢測算法只適用于特征明顯、背景簡單的圖像,而在實(shí)際應(yīng)用中,背景復(fù)雜多變,且待檢測的目標(biāo)復(fù)雜多變,很難通過一般的抽象特征完成對(duì)目標(biāo)的檢測,而深度學(xué)習(xí)可以提取同一目標(biāo)的豐富特征,完成目標(biāo)的檢測。然而在模型規(guī)模上IFSSD 模型要大于HOG+SVM 和DPM+SVM,這是由于IFSSD 模型的參數(shù)較多。從效率方面看,IFSSD 模型的效率與傳統(tǒng)方法較接近。
表2 IFSSD 與傳統(tǒng)檢測模型性能的比較Tab.2 Comparison of IFSSD and traditional grapefruit detection models
相對(duì)于Faster R-CNN 和YOLOv2-DarkNet-19,由于IFSSD 模型加入了FPN 結(jié)構(gòu)和Inception 骨干網(wǎng)絡(luò),使得準(zhǔn)確率分別提高了7.8 個(gè)百分點(diǎn)和9.4個(gè)百分點(diǎn);從檢測時(shí)間看,IFSSD 模型與Faster RCNN 模型較接近。
本文分別從目標(biāo)大小、物候期、重疊情況、光照情況以及有無枝葉遮擋等方面分別對(duì)SSD、FSSD、IFSSD 模型進(jìn)行比較。從表3 可以看出,IFSSD 模型的總體性能優(yōu)于FSSD、SSD 模型。從目標(biāo)大小方面看,加入了FPN 模塊的FSSD、IFSSD 模型在小目標(biāo)檢測方面有了一定的提升,這是由于FPN 能夠從更小的特征跨度進(jìn)行特征融合,來進(jìn)行多尺度預(yù)測。從不同物候期方面進(jìn)行分析,IFSSD 模型對(duì)膨脹期的識(shí)別提升較為明顯,相對(duì)于SSD、FSSD 模型分別提高了5.21 個(gè)百分點(diǎn)和4.51 個(gè)百分點(diǎn),這是由于膨脹期的柚子顏色為綠色,容易因正負(fù)樣本不平衡而導(dǎo)致錯(cuò)檢和漏檢,F(xiàn)ocal Loss 的引入緩解了這個(gè)問題。但是在重疊、光照和有枝葉遮擋的情況下,IFSSD 模型檢測效果沒有明顯的提高,仍然需要進(jìn)一步優(yōu)化。由于攝像機(jī)型號(hào)不同,不同的焦距和距離導(dǎo)致柚子圖像的尺寸不同,本文采用將攝像頭固定并通過調(diào)整焦距來獲得小目標(biāo)、中目標(biāo)和大目標(biāo)3 種類型的圖像。圖8 是使用以上3 種模型對(duì)部分圖像處理的效果。從圖中可以看出,對(duì)于中型和大型目標(biāo),3 種模型都能檢測到大部分的目標(biāo)。對(duì)于大型目標(biāo),3 種模型的準(zhǔn)確率均達(dá)到92%以上。但是對(duì)于極小的目標(biāo),SSD 模型效果要比IFSSD 模型和FSSD 模型差,SSD 模型容易漏檢大部分小目標(biāo)柚子。這是由于SSD 模型雖然從不同層次的特征進(jìn)行預(yù)測,ConvNets 提取的特征隨著層次的增加語義越來越強(qiáng),但是SSD 模型卻把它們當(dāng)成一樣的層次去預(yù)測,不能充分地利用局部細(xì)節(jié)特征和全局語義特征。FSSD 模型采用FPN 方法把細(xì)節(jié)特征(定位)和全局語義(識(shí)別)結(jié)合起來,即把淺層的細(xì)節(jié)特征和高層的語義特征結(jié)合起來,因此IFSSD、FSSD模型在小目標(biāo)檢測方面得到了進(jìn)一步的提升。
表3 不同圖像類型下不同模型的檢測準(zhǔn)確率Tab.3 Detection accuvaey of different models under different image types %
圖8 3 種模型對(duì)圖像的處理效果Fig.8 Processing effect of three models on images
進(jìn)一步通過試驗(yàn)來分析IFSSD 模型在數(shù)據(jù)不平衡下對(duì)柚子檢測效果的改進(jìn)。
如圖9 所示,對(duì)于成熟期的柚子而言,IFSSD、FSSD、SSD 模型都具有較精確的檢測效果。這是由于成熟期的柚子是黃色的,相對(duì)于背景和果實(shí)膨大期的柚子有著明顯的顏色區(qū)別。但是SSD 模型和FSSD 模型會(huì)將某些葉片檢測為果實(shí)膨大期的柚子,這是因?yàn)槿~子與果實(shí)膨大期的柚子的顏色相似,同時(shí)在數(shù)據(jù)不平衡的情況下,以葉子為主的背景樣本明顯要多于果實(shí)膨大期的柚子樣本,這會(huì)造成模型對(duì)于果實(shí)膨大期柚子的識(shí)別效果較差,同時(shí)在光線等自然條件的影響下,容易將成簇的葉子錯(cuò)認(rèn)為是處于膨大期的果實(shí)。
圖9 柚子識(shí)別檢測結(jié)果示例Fig.9 Examples of grapefruit identification results
圖10 為SSD、FSSD 模型將綠色葉子錯(cuò)誤檢測為膨大期柚子的情況,而IFSSD 模型能夠極大地避免此類情況的發(fā)生,這表明Focal Loss 損失函數(shù)的引入能夠改善數(shù)據(jù)不平衡帶來的影響,從而提高柚子的檢測精度。
圖10 膨大期柚子漏檢示例Fig.10 Examples of expanded leaves misidentified as grapefruit
本文設(shè)計(jì)了一種改進(jìn)的特征融合單鏡頭檢測器(IFSSD),提出了基于IFSSD 卷積神經(jīng)網(wǎng)絡(luò)的柚子檢測模型,并對(duì)所提模型進(jìn)行檢測試驗(yàn)。結(jié)果表明,本文模型對(duì)柚子檢測的準(zhǔn)確率達(dá)到93.7%,每幅圖像的檢測時(shí)間為29 s。