帖軍,宋威,尹帆,鄭祿,楊欣
(中南民族大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,湖北省制造企業(yè)智能管理工程技術(shù)研究中心,武漢430074)
目標(biāo)檢測(cè)是計(jì)算機(jī)視覺(jué)領(lǐng)域的基本問(wèn)題,近幾年來(lái)也在智能監(jiān)控[1]、智能分類(lèi)[2,3]及產(chǎn)品檢測(cè)[4]等應(yīng)用領(lǐng)域取得了很大的發(fā)展.然而自然條件下的目標(biāo)檢測(cè)任務(wù)仍然存在許多挑戰(zhàn),其中遮擋因素極大影響了檢測(cè)效果.因?yàn)檎趽鯐?huì)造成圖像中檢測(cè)目標(biāo)的局部特征損失,影響目標(biāo)特征的完整性[5-7],從而在檢測(cè)過(guò)程中,影響實(shí)際的檢測(cè)精度.
為了實(shí)現(xiàn)效率高且精度高的目標(biāo)檢測(cè),深度學(xué)習(xí)模型已經(jīng)廣泛運(yùn)用于目標(biāo)檢測(cè)領(lǐng)域.文獻(xiàn)[8]提出的YOLO V1目標(biāo)檢測(cè)模型,采用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)提取圖像各個(gè)部分的特征,直接回歸目標(biāo)信息,實(shí)現(xiàn)目標(biāo)檢測(cè).文獻(xiàn)[9]提出的YOLO9000模型,引入Faster R-CNN[10]中的Anchor Box到Y(jié)OLO V1中,并結(jié)合全卷積網(wǎng)絡(luò),使模型在識(shí)別精度和速度等方面均有提升.文獻(xiàn)[11]提出的Focal Loss對(duì)正負(fù)樣本分別加權(quán),解決了目標(biāo)檢測(cè)中正負(fù)樣本比例失衡的問(wèn)題,進(jìn)一步提高了檢測(cè)精度.文獻(xiàn)[12]和[13]提出的YOLO V3模型采用多尺度預(yù)測(cè)的方式,并結(jié)合Resnet[14]單元,改善了圖像中大小目標(biāo)的檢測(cè)精度差.但在實(shí)際檢測(cè)中,普遍存在的遮擋情況仍會(huì)影響檢測(cè)精度.熊俊濤等人[15]提出采用Faster R-CNN網(wǎng)絡(luò)分別構(gòu)建甜椒和柑橘檢測(cè)系統(tǒng),但其目標(biāo)檢測(cè)框過(guò)大,易導(dǎo)致檢測(cè)的精度不夠.彭紅星等人[16]以蘋(píng)果、荔枝、臍橙、皇帝柑4種水果為研究對(duì)象,提出了一種改進(jìn)的水果檢測(cè)模型,將SSD[17]模型中的VGG16主干模型替換為ResNet-101模型,并運(yùn)用遷移學(xué)習(xí)方法和隨機(jī)梯度下降算法優(yōu)化訓(xùn)練模型,一定程度上提高了自然環(huán)境下多類(lèi)水果的檢測(cè)精度.BARGOTI等人[18]為了使檢測(cè)模型在不同果園之間均能取得高檢測(cè)精度,使用多個(gè)果園數(shù)據(jù)集,通過(guò)遷移學(xué)習(xí)來(lái)訓(xùn)練模型.
以上研究大多基于深度學(xué)習(xí)的網(wǎng)絡(luò)模型更注重于目標(biāo)物體的檢測(cè),卻缺乏對(duì)具體遮擋信息的描述和分析,不能對(duì)遮擋目標(biāo)信息進(jìn)行更加詳細(xì)的解析,因而在遮擋目標(biāo)普遍存在的場(chǎng)景下檢測(cè)精度不高.
本文基于YOLO V3目標(biāo)檢測(cè)模型,提出遮擋標(biāo)記方法與損失補(bǔ)償機(jī)制,通過(guò)在圖像數(shù)據(jù)集添加遮擋標(biāo)記,并在模型訓(xùn)練過(guò)程中將損失函數(shù)與遮擋標(biāo)記信息結(jié)合,以增強(qiáng)模型對(duì)遮擋目標(biāo)的敏感性,提高模型對(duì)遮擋目標(biāo)的檢測(cè)精度.
本文基于目標(biāo)的卷積特征,在YOLO V3模型框架下對(duì)圖像進(jìn)行檢測(cè),算法總體架構(gòu)如圖1所示.
采用圖像增強(qiáng)技術(shù)對(duì)原始圖像進(jìn)行預(yù)處理(圖1(a)),使用卷積神經(jīng)網(wǎng)絡(luò)提取圖像中的目標(biāo)特征(圖1(b)),通過(guò)YOLO模型獲得不同尺度下圖中目標(biāo)位置(圖1(c)),最后綜合多尺度下的目標(biāo)框信息獲取檢測(cè)結(jié)果(圖1(d)).
圖1 檢測(cè)原理圖
自然環(huán)境中,陽(yáng)光、陰影的變化可能會(huì)使不同圖像中的相同物體產(chǎn)生巨大的特征差異,影響模型對(duì)目標(biāo)特征的提取.對(duì)比度是描述圖像的重要特征,為了避免低頻背景的干擾,本文選用自適應(yīng)對(duì)比度增強(qiáng)[19]算法(Adaptive Contrast Enhancement,ACE).
一張圖可以分為低頻和高頻兩個(gè)部分,低頻部分通過(guò)圖像的平滑模糊而得,高頻部分由原圖減去低頻部分而得.ACE算法的目標(biāo)是通過(guò)增強(qiáng)代表細(xì)節(jié)的高頻部分,即將圖像高頻部分乘以某個(gè)增益值,重組得到增強(qiáng)后的圖像來(lái)實(shí)現(xiàn)對(duì)比度增強(qiáng),公式如下:
f(i,j)=mx(i,j)+C[x(i,j)-mx(i,j)],
其中x(i,j)和mx(i,j)分別表示圖像在(i,j)處的像素值和以(i,j)為中心的固定大小正方形區(qū)域內(nèi)的像素均值,C為大于1的常量,表示增益的系數(shù).圖2展示了部分經(jīng)過(guò)預(yù)處理后的圖像.
(a)原始圖像 (b)處理后的圖像
目標(biāo)檢測(cè)框架如圖3所示,預(yù)處理后的圖像作為卷積神經(jīng)網(wǎng)絡(luò)的輸入,網(wǎng)絡(luò)提取圖像的目標(biāo)特征信息;特征圖輸入到檢測(cè)網(wǎng)絡(luò)中,提取目標(biāo)框信息并判斷目標(biāo)的類(lèi)別,通過(guò)過(guò)濾,得到最終目標(biāo)框.
圖3 檢測(cè)框架
本文選用主流的YOLO V3作為目標(biāo)檢測(cè)模型,如圖4,我們對(duì)輸入特征圖進(jìn)行了5次降采樣,并分別在最后3次降采樣中輸出檢測(cè)結(jié)果,包括目標(biāo)框的中心位置坐標(biāo)、寬高、置信度及類(lèi)別.分別在13×13,26×26,52×52三個(gè)尺度上對(duì)Anchor Box進(jìn)行回歸,最后通過(guò)對(duì)預(yù)測(cè)框的Confidence設(shè)定閾值,過(guò)濾掉低分的預(yù)測(cè)框,然后利用非極大值抑制(Non Maximum Suppression, NMS)處理預(yù)測(cè)框,完成目標(biāo)檢測(cè)任務(wù).
自然場(chǎng)景下,果樹(shù)中枝干、葉片與水果實(shí)體之間的遮擋、重疊,都會(huì)影響模型對(duì)水果目標(biāo)的實(shí)際檢測(cè)效果,甚至導(dǎo)致漏檢、錯(cuò)檢.對(duì)于被遮擋目標(biāo)的圖像特征損失,本文提出遮擋標(biāo)記和遮擋補(bǔ)償機(jī)制,通過(guò)給不同遮擋場(chǎng)景下的水果目標(biāo)添加不同的遮擋標(biāo)記,并在模型訓(xùn)練過(guò)程中結(jié)合損失函數(shù)與遮擋補(bǔ)償機(jī)制,增強(qiáng)模型對(duì)遮擋目標(biāo)的敏感性,從而提高模型對(duì)遮擋目標(biāo)的檢測(cè)精度.
1.3.1 遮擋標(biāo)記格式
本文針對(duì)自然場(chǎng)景下水果目標(biāo)會(huì)出現(xiàn)的遮擋情況提出3種遮擋標(biāo)記方式(表1).
(1)互遮擋標(biāo)記
當(dāng)目標(biāo)與目標(biāo)之間存在遮擋情況(如圖5(a)),則向目標(biāo)添加互遮擋標(biāo)記occ_mutual,作為數(shù)據(jù)集的標(biāo)記信息.
(2)背景遮擋標(biāo)記
當(dāng)目標(biāo)與背景之間存在遮擋情況(如圖5(b)),則向目標(biāo)添加背景遮擋標(biāo)記occ_background(i),作為數(shù)據(jù)集的標(biāo)記信息.其中,i為背景遮擋級(jí)別,i根據(jù)目標(biāo)物被背景物遮擋的區(qū)域的占比來(lái)確定.本文將背景遮擋級(jí)別定為3個(gè)等級(jí),數(shù)據(jù)集標(biāo)注時(shí),當(dāng)目標(biāo)被背景物遮擋區(qū)域的占比在30%~40%時(shí),確定i為3;占比20%~30%時(shí),i為2;占比在10%~20%時(shí),i為1.
(3)復(fù)合遮擋標(biāo)記
當(dāng)目標(biāo)之間的遮擋和目標(biāo)與背景之間的遮擋同時(shí)存在(如圖5(c)),則向目標(biāo)添加復(fù)合遮擋標(biāo)記occ_complex(i),作為數(shù)據(jù)集的標(biāo)記信息.其中,i與背景遮擋標(biāo)記中的i類(lèi)似.
圖4 模型結(jié)構(gòu)圖
(a)互遮擋目標(biāo) (b)背景遮擋目標(biāo) (c)復(fù)合遮擋目標(biāo)
1.3.2 遮擋補(bǔ)償系數(shù)
本文對(duì)于不同遮擋情況提出遮擋補(bǔ)償系數(shù),以處理圖片中不同的遮擋標(biāo)記信息.
對(duì)于同一張圖片中的所有標(biāo)注框,討論其中第k個(gè)標(biāo)注框:
(1)若存在互遮擋標(biāo)記occ_mutual,則由標(biāo)注信息計(jì)算互遮擋系數(shù)occ_mut(k):
其中,GTk表示當(dāng)前圖片所有標(biāo)注框的第k個(gè),cross_area(k)表示當(dāng)前圖片所有標(biāo)注框與第k個(gè)標(biāo)注框的相交面積和,union_area表示當(dāng)前圖片所有標(biāo)注框的合并面積和,n為當(dāng)前圖片中標(biāo)注框總數(shù).
表1 不同類(lèi)型標(biāo)記
(2)若存在背景遮擋標(biāo)記occ_background(i),則由標(biāo)注信息獲取背景遮擋級(jí)別level(k),計(jì)算背景遮擋系數(shù)occ_back(k):
其中,level(k)表示第k個(gè)標(biāo)注框的實(shí)際遮擋級(jí)別,info(k)表示實(shí)際標(biāo)記信息occ_background(i)中的i.
(3)若存在復(fù)合遮擋標(biāo)記occ_complex(i),則由標(biāo)注信息計(jì)算復(fù)合遮擋系數(shù)occ_comp(k):
其中,α1和α2分別為互遮擋補(bǔ)償系數(shù)和背景遮擋補(bǔ)償系數(shù)的權(quán)值,count(labels)表示數(shù)據(jù)集中所有圖片的對(duì)應(yīng)標(biāo)簽計(jì)數(shù),all_labels表示所有類(lèi)型標(biāo)簽.
1.3.3 遮擋補(bǔ)償機(jī)制
本文提出遮擋補(bǔ)償機(jī)制,來(lái)補(bǔ)償圖像在遮擋條件下的信息損失,并提出將遮擋目標(biāo)的補(bǔ)償與損失函數(shù)融合,損失函數(shù)定義為:
Loss=Losscoord+LossIOU.
(1)對(duì)于坐標(biāo)預(yù)測(cè)損失Losscoord.
模型對(duì)于目標(biāo)框的坐標(biāo)損失定義:
Losscoord=
(2)對(duì)于IOU損失LossIOU.
考慮遮擋條件對(duì)于模型預(yù)測(cè)結(jié)果的影響,本文將遮擋補(bǔ)償系數(shù)η引入目標(biāo)框的IOU損失中,檢測(cè)框與標(biāo)注框的交并比IOU的定義為:
其中RT為標(biāo)注框,RP為預(yù)測(cè)框.
目標(biāo)框的IOU損失定義為:
其中,index(i)表示在當(dāng)前圖片的標(biāo)注框中,當(dāng)前Grid Cell對(duì)應(yīng)框的索引;type(i)表示當(dāng)前Grid Cell對(duì)應(yīng)框的標(biāo)記類(lèi)型.
本實(shí)驗(yàn)采用64位Windows 7操作系統(tǒng),硬件配置為Intel(R)Core(TM)i5-8500處理器,顯卡為NVIDIA GeForce GTX1060,內(nèi)存為6GB,使用Python語(yǔ)言和Tensorflow框架構(gòu)建YOLO V3模型,使用OpenCV庫(kù)對(duì)原始圖像進(jìn)行預(yù)處理.
實(shí)驗(yàn)結(jié)果評(píng)價(jià)主要以圖像中檢測(cè)框的精確率為依據(jù),即:
其中,TruePositive表示真正例樣本個(gè)數(shù),F(xiàn)alsePositive表示假正例樣本個(gè)數(shù).
本實(shí)驗(yàn)的圖片數(shù)據(jù)是結(jié)合人工采集和網(wǎng)絡(luò)爬蟲(chóng)所獲取.我們采集了“蘋(píng)果”、“橘子”、“梨子”、“桃子”四類(lèi)圖片.考慮到模型的檢測(cè)精度會(huì)受到訓(xùn)練數(shù)據(jù)集完整性的影響,我們將收集的圖片在顏色、亮度和角度等方面進(jìn)行了調(diào)整并擴(kuò)充數(shù)據(jù)集以提高數(shù)據(jù)集的完整性,最終將圖片總數(shù)擴(kuò)充到600張,其中520張用于訓(xùn)練,80張用于測(cè)試.
實(shí)驗(yàn)設(shè)定IOU的閾值為0.5,即若預(yù)測(cè)框與實(shí)際框的交并比大于等于0.5,認(rèn)定該檢測(cè)結(jié)果為真正例;若交并比小于0.5,則認(rèn)定該檢測(cè)結(jié)果為假正例.
表2展示了本文提出的結(jié)合遮擋補(bǔ)償機(jī)制的目標(biāo)檢測(cè)模型與傳統(tǒng)YOLO V3模型對(duì)4組數(shù)據(jù)集的檢測(cè)精度值.
表2 不同水果的檢測(cè)精度
可以看出,本文模型對(duì)4類(lèi)數(shù)據(jù)集的檢測(cè)精度均高于傳統(tǒng)YOLO V3模型,其中對(duì)蘋(píng)果數(shù)據(jù)集的增益最大,精度提高了6.1%,表明本場(chǎng)景下模型對(duì)蘋(píng)果目標(biāo)最敏感,最適于蘋(píng)果檢測(cè).
總體來(lái)說(shuō),對(duì)于環(huán)境較為復(fù)雜的果園場(chǎng)景,本文模型對(duì)水果目標(biāo)的檢測(cè)精度有明顯的提高.
以下按照不同的遮擋目標(biāo)類(lèi)型分布進(jìn)行劃分,圖6~圖8給出了模型在不同遮擋條件下的檢測(cè)精度.
(1)互遮擋場(chǎng)景
圖6 互遮擋場(chǎng)景下檢測(cè)圖
由圖6可看出,模型對(duì)蘋(píng)果的檢測(cè)精度提升最大,對(duì)其他種類(lèi)的水果也有較大提升,說(shuō)明使用互遮擋標(biāo)記對(duì)遮擋場(chǎng)景進(jìn)行描述,能明顯減小水果間相互遮擋所帶來(lái)的干擾,增強(qiáng)模型對(duì)于水果目標(biāo)的敏感度,提高檢測(cè)精度.
(2)背景遮擋場(chǎng)景
圖7 背景遮擋場(chǎng)景下檢測(cè)圖
由圖7可看出,模型對(duì)各種水果的檢測(cè)精度總體有一定的提升,說(shuō)明使用背景遮擋標(biāo)記對(duì)遮擋場(chǎng)景進(jìn)行描述,能對(duì)檢測(cè)精度產(chǎn)生一定增益.
增益不是非常明顯說(shuō)明背景遮擋標(biāo)記及其遮擋級(jí)別的定義還有不足之處,遮擋級(jí)別的模糊標(biāo)記或者級(jí)別的粒度劃分不當(dāng)都可能產(chǎn)生檢測(cè)誤差.因此如何更確切地描述背景遮擋目標(biāo)將是未來(lái)的研究方向.
(3)復(fù)合遮擋場(chǎng)景
圖8 復(fù)合遮擋場(chǎng)景下檢測(cè)圖
由圖8可看出,模型對(duì)各種水果的檢測(cè)精度均有明顯增益.
總體來(lái)說(shuō),在不同遮擋場(chǎng)景中,本文模型的檢測(cè)精度相較于傳統(tǒng)YOLO V3模型有明顯提升,說(shuō)明本文提出的遮擋標(biāo)記和遮擋補(bǔ)償機(jī)制對(duì)自然環(huán)境下目標(biāo)檢測(cè)精度的提升是有意義的.模型對(duì)各類(lèi)水果的實(shí)際檢測(cè)情況見(jiàn)圖9.
(a)原始圖像 (b)YOLO V3 (c)本文方法
本文對(duì)于在自然條件下目標(biāo)檢測(cè)的遮擋問(wèn)題,提出了遮擋標(biāo)記方法與遮擋補(bǔ)償機(jī)制.通過(guò)對(duì)數(shù)據(jù)集中的被遮擋樣本進(jìn)行標(biāo)記,得到具有遮擋標(biāo)記的數(shù)據(jù)集.對(duì)帶有遮擋標(biāo)記的數(shù)據(jù)進(jìn)行特殊處理,并在模型訓(xùn)練過(guò)程中結(jié)合遮擋補(bǔ)償機(jī)制,使模型的損失函數(shù)得到優(yōu)化.實(shí)驗(yàn)結(jié)果表明:基于遮擋標(biāo)記的目標(biāo)檢測(cè)方法相較于傳統(tǒng)的YOLO V3模型,平均檢測(cè)精度有明顯提高.但是,如何將遮擋標(biāo)記推廣到一般目標(biāo)檢測(cè)數(shù)據(jù)集中,仍然需要研究.將數(shù)據(jù)集標(biāo)注格式應(yīng)用于一般數(shù)據(jù)集,提高人工標(biāo)注的效率和精度,將是未來(lái)主要的研究方向.