江磊 崔艷榮
摘要:在進(jìn)行目標(biāo)檢測時(shí),小目標(biāo)會出現(xiàn)漏檢或檢測效果不佳等問題。本文將YOLOv5算法用于小目標(biāo)檢測,YOLOv5有3個(gè)檢測頭,能夠多尺度對目標(biāo)進(jìn)行檢測,并對數(shù)據(jù)做了Mosaic數(shù)據(jù)增強(qiáng)、自適應(yīng)錨框計(jì)算、統(tǒng)一圖片尺寸等數(shù)據(jù)預(yù)處理,對小目標(biāo)有很好的檢測效果?;赮OLOv5的基礎(chǔ)上進(jìn)行改進(jìn),把CIOU_Loss、DIOU_nms運(yùn)用于YOLOv5算法中。實(shí)驗(yàn)結(jié)果表明,基于YOLOv5的小目標(biāo)檢測,準(zhǔn)確率高,速度快,具有很好的性能。
關(guān)鍵詞:小目標(biāo)檢測;YOLOv5
中圖分類號:TP18? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2021)26-0131-03
開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
Small Target Detection Based on YOLOv5
JIANG Lei, CUI Yan-rong
(Yangtze University,Jingzhou434023,China)
Abstract: in the process of target detection, small targets may miss detection or have poor detection effect. In this paper,YOLOv5 algorithm is used for small target detection. YOLOv5 has three detection heads, which can detect the target in multi-scale. The data are preprocessed by mosaic data enhancement, adaptive anchor frame calculation, unified image size and so on. It has a good detection effect for small targets. Based on the improvement of YOLOv5, the CIOU_Loss、DIOU_NMS is used in YOLOv5 algorithm. The experimental results show that the small target detection based on YOLOv5 has high accuracy, fast speed and good performance.
Key words:small target detection;YOLOv5
目標(biāo)檢測是計(jì)算機(jī)視覺領(lǐng)域比較熱門的研究方向,已廣泛運(yùn)用到國防、醫(yī)療、工業(yè)等領(lǐng)域。由于小目標(biāo)的尺寸小、分辨率低,常用的目標(biāo)檢測算法在檢測小目標(biāo)時(shí)會出現(xiàn)漏檢或特征不明等問題。
近年來,隨著深度學(xué)習(xí)的不斷發(fā)展,許多基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測算法被提出,卷積神經(jīng)網(wǎng)絡(luò)可以對數(shù)據(jù)自主訓(xùn)練學(xué)習(xí),更新參數(shù),得到一個(gè)比較準(zhǔn)確的模型。基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測算法可以分為兩大類。一類是雙步目標(biāo)檢測算法,如R-CNN,SPP-net,F(xiàn)ast R-CNN,F(xiàn)aster R-CNN,Mask R-CNN等,這些算法把目標(biāo)檢測分為兩步進(jìn)行,先生成Region Proposal(候選區(qū)),在把Region Proposal(候選區(qū))送入網(wǎng)絡(luò)結(jié)構(gòu)中提取特征,并預(yù)測檢測目標(biāo)的位置、識別檢測目標(biāo)的類別。另一類是單步目標(biāo)檢測算法,如YOLOv1,YOLOv2,YOLOv3,YOLOv4,YOLOv5等,此類算法不需要生成Region Proposal(候選區(qū)),而是直接把圖片分成S×S個(gè)網(wǎng)格,在網(wǎng)格的基礎(chǔ)上提取特征,并由算法得到目標(biāo)的位置和類別。
雙步目標(biāo)檢測算法要生成大約2000個(gè)Region Proposal(候選區(qū)),花費(fèi)了大量的時(shí)間,它的檢測速度比較慢,但準(zhǔn)確率相對較高。由于單目標(biāo)檢測算法是在圖片劃分網(wǎng)格的基礎(chǔ)上提取特征,所以它的檢測速度很快,但是早期的YOLO算法會有一定的誤差,隨著技術(shù)的發(fā)展,YOLO中提出了anchor box(先驗(yàn)框)機(jī)制,如YOLOv5中就有9個(gè)大小不同的anchor box(先驗(yàn)框),能夠精準(zhǔn)地檢測到不同尺度的目標(biāo),提高了檢測精度。
1 YOLO的發(fā)展
傳統(tǒng)目標(biāo)檢測算法,主要分為三步:選擇區(qū)域框、提取特征、歸分類別,這就存在有兩個(gè)問題;一是區(qū)域選擇的方法效果不佳、且時(shí)間成本很高;二是提取的區(qū)域框魯棒性很差。隨后出現(xiàn)的R-CNN系列算法,需要提前生成大量的Region Proposal(候選區(qū)),在候選區(qū)的基礎(chǔ)上提取特征,花費(fèi)很多時(shí)間。YOLOv1把生成Region Proposal(候選區(qū))和提取特征歸為一步,圖片被劃分為S×S個(gè)grid(網(wǎng)格),在grid(網(wǎng)格)上提取特征,每個(gè)grid(網(wǎng)格)對應(yīng)兩個(gè)Bounding box(邊界框),缺陷是:速度上提高了,準(zhǔn)確率卻沒有那么高,很容易漏檢。YOLOv2的Backbone使用了Darknet-19,去掉了FC(全連接層),每個(gè)grid(網(wǎng)格)上使用5個(gè)anchor box(先驗(yàn)框),YOLOv2使用ImageNet大量的分類樣本,聯(lián)合COCO的對象檢測數(shù)據(jù)集一起訓(xùn)練,可以檢測出一些沒有學(xué)習(xí)過的對象,識別的對象更多。YOLOv2在YOLOv1的基礎(chǔ)上做了一些改進(jìn),如批量歸一化,多尺度圖像訓(xùn)練,passthrough層檢測細(xì)粒度特征等,速度和準(zhǔn)確率得到了提升,但是YOLOv2在小目標(biāo)檢測方面還是不夠精準(zhǔn)。YOLOv3采用了新的Backbone(主干網(wǎng)絡(luò)) Darknet-53,它含有53個(gè)卷積層,為避免梯度消失,使用了殘差網(wǎng)絡(luò),Head部分利用多尺度特征檢測對象,在網(wǎng)絡(luò)中分別使用32倍下采樣,16倍下采樣,和8倍下采樣,每個(gè)下采樣尺度下設(shè)定3種anchor box(先驗(yàn)框),可以檢測不同尺寸的對象。YOLOv4在YOLOv3的基礎(chǔ)上,把很多優(yōu)良的方法結(jié)合在一起,結(jié)構(gòu)得到優(yōu)化、性能更加強(qiáng)大。YOLOv4的Input使用了Mosaic數(shù)據(jù)增強(qiáng)、cmBN(交叉小批量歸一化)、SAT自對抗訓(xùn)練。Backbone使用CSPDarknet53,使用遺傳算法選擇超參數(shù),用Dropblock防止過擬合,使用Mish和Leaky Relu激活函數(shù)。增添了Neck,Neck由SPP模塊和FPN+PAN結(jié)構(gòu)組成。Head部分仍然采用YOLOv3的多尺度特征檢測[2-4]。