安徽理工大學(xué)電氣與信息工程學(xué)院 楊高坤
目前,隨著目標(biāo)檢測(cè)算法取得的重大突破,目標(biāo)檢測(cè)技術(shù)已經(jīng)代替了很多枯燥簡(jiǎn)單的勞動(dòng),并且取得了很好的效果。其中主要分為基于備選框并對(duì)備選框進(jìn)行判斷的雙階段的目標(biāo)檢測(cè)方法,還有一種是把輸出框和分類作為一個(gè)回歸問題的單階段目標(biāo)檢測(cè)方法,總結(jié)了單階段法目標(biāo)檢測(cè)的各種特點(diǎn)及優(yōu)缺點(diǎn)。最后針對(duì)不同的算法和改進(jìn)的方法進(jìn)行總結(jié)。
Pierre S.等人提出了早期的單階段目標(biāo)檢測(cè)模型Overfeat,該模型將圖像分類、定位、檢測(cè)三個(gè)任務(wù)放到一個(gè)框架中。由于Overfeat框架需要大量的已標(biāo)記的樣本,并且檢測(cè)的精度不是很高,所以Joseph Redmon等人提出了YOLO框架,YOLO框架的缺點(diǎn)也比較明顯,比如小目標(biāo)難以檢測(cè)、召回率低、精確性低等等問題,所有又有了后面的YOLOv2、YOLOv3、YOLOv4、SSD等其它的框架。
圖1 YOLO網(wǎng)絡(luò)結(jié)構(gòu)
YOLO將物體檢測(cè)作為回歸問題求解。
YOLO模型采用回歸分析的方法計(jì)算出多個(gè)滑動(dòng)窗口的位置和置信度。YOLO網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
YOLO的優(yōu)點(diǎn):(1)對(duì)比其他的雙階段法目標(biāo)檢測(cè),YOLO的檢測(cè)速度相當(dāng)?shù)目?。?)不同于其他的目標(biāo)檢測(cè)算法,YOLO的輸入是一整張圖片,在檢測(cè)時(shí)很好的利用了整體的信息,不容易在背景上預(yù)測(cè)出錯(cuò)誤的物體信息。(3)通用性強(qiáng),不僅可以檢測(cè)動(dòng)物、植物等,對(duì)于藝術(shù)品也一樣的適用。
YOLO的缺點(diǎn):(1)在進(jìn)行卷積與池化的過(guò)程中,特征丟失比較嚴(yán)重就會(huì)導(dǎo)致精度下降。(2)因?yàn)橐粋€(gè)grid cell只能預(yù)測(cè)2個(gè)物體,因此對(duì)小物體的檢測(cè)效果不好。
YOLOv2的出現(xiàn)彌補(bǔ)了YOLOv1的一些缺點(diǎn),在保持檢測(cè)速度的同時(shí)提高檢測(cè)的精度和定位準(zhǔn)確度,改進(jìn)如下:
(1)批量規(guī)范化:對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,對(duì)每一層數(shù)據(jù)進(jìn)行加工。
(2)高分辨率分類器:第一步利用Image net訓(xùn)練集進(jìn)行高分辨率的預(yù)訓(xùn)練,而且這種方法對(duì)于精度的提高是很明顯的。
(3)采用了新網(wǎng)絡(luò):YOLOv2包含了19個(gè)卷積層和5個(gè)最大池化層。
(4)維度聚類:還是針對(duì)錨定框,發(fā)現(xiàn)錨定框的個(gè)數(shù)為5時(shí)IOU的匹配度最高。
(5)多尺度預(yù)測(cè):通過(guò)不同的分辨率圖片來(lái)訓(xùn)練提高網(wǎng)絡(luò)的適應(yīng)性。
相對(duì)于YOLO算法,SSD有兩點(diǎn)改進(jìn):
圖2 SSD框架與YOLO框架對(duì)比圖
圖3 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)圖
圖4 YOLOv4網(wǎng)絡(luò)結(jié)構(gòu)圖
(1)SSD提取了不同尺度的特征圖來(lái)做檢測(cè),利用特征圖的大小不同來(lái)提取大小不一的物體,這種方式可以可以有效的解決小物體檢測(cè)不出來(lái)的問題。
(2)該算法采用了不同尺度和長(zhǎng)寬比的先驗(yàn)框,通過(guò)這些長(zhǎng)寬比不同的先驗(yàn)框可以有效地解決檢測(cè)物體的大小和形狀不規(guī)則的問題。SSD框架與YOLO框架對(duì)比如圖2所示。
該算法的缺點(diǎn)總結(jié):(1)需要手動(dòng)設(shè)置先驗(yàn)框的最大最小值和寬高比,這樣導(dǎo)致調(diào)試的時(shí)候會(huì)遇到一些麻煩;(2)對(duì)于小目標(biāo)的召回率不是很高,存在提取不充分的原因。
YOLOv3以YOLOv1和YOLOv2為基礎(chǔ)進(jìn)行了一些改進(jìn),特別是針對(duì)小目標(biāo)檢測(cè)加強(qiáng)了識(shí)別能力。
(1)調(diào)整了網(wǎng)絡(luò)結(jié)構(gòu):Darknet-53在網(wǎng)絡(luò)中加入了殘差模塊,解決了網(wǎng)絡(luò)的梯度問題。
(2)利用三個(gè)不同的特征圖進(jìn)行目標(biāo)檢測(cè),而且這三層特征圖來(lái)自不同的卷積層的輸出。
(3)使用Kmeans聚類的方法來(lái)決定錨定框的尺寸大?。簽槊糠N下采樣尺寸設(shè)定3種先驗(yàn)框,這樣一共就有九種尺寸的先驗(yàn)框,然后就會(huì)選擇合適的先驗(yàn)框選擇位置。
(4)選擇了新的對(duì)象分類,由原來(lái)的softmax換成了logistic。YOLOv3的優(yōu)點(diǎn)在于:通過(guò)對(duì)YOLOv3算法的改進(jìn),主要提升了對(duì)小物體的檢測(cè)精度,同時(shí)它的檢測(cè)速度并沒有因此降低。
YOLOv4與YOLOv3的差別我們可以直接從圖3與圖4所示中看出差異。
(1)主干網(wǎng)絡(luò)的改進(jìn):將原來(lái)的Darknet53改為CSPDarknet53,在網(wǎng)絡(luò)結(jié)構(gòu)中加入了CSP結(jié)構(gòu),而且激活函數(shù)換成了Mish激活函數(shù)。
(2)對(duì)特征提取過(guò)程進(jìn)行了加強(qiáng):添加了SPP,PANet結(jié)構(gòu)。
(3)在數(shù)據(jù)預(yù)處理階段加入Mosaic方法。
(4)在損失函數(shù)中做了改進(jìn)使用了CIOU作為回歸Loss。
根據(jù)僅對(duì)比YOLOv3和YOLOv4,在COCO數(shù)據(jù)集上,同樣的FPS等于83左右時(shí),YOLOv4的AP是43,而YOLOv3是33,直接上漲了10個(gè)百分點(diǎn)。
基于SSD算法小目標(biāo)行人檢測(cè)的改進(jìn)方法:
(1)改進(jìn)SSD網(wǎng)絡(luò)結(jié)構(gòu)
圖5 經(jīng)過(guò)改進(jìn)的SSD結(jié)構(gòu)圖
改進(jìn)的SSD是將全連接層替換為卷積層后的VGG16,然后利用新添加的卷積層組成多尺度特征層,稱之為SSD Layer。經(jīng)過(guò)改進(jìn)的SSD結(jié)構(gòu)融如圖5所示。
(2)反卷積與特征融合
反卷積和融合操作中所有批歸一BN層的作用都是增強(qiáng)網(wǎng)絡(luò)的魯棒性,防止網(wǎng)絡(luò)中權(quán)重偏置溢出。
Tiny YOLOv3是YOLOV3的簡(jiǎn)化版本,卷積層數(shù)大幅減少,模型結(jié)構(gòu)簡(jiǎn)單,不需占用大量?jī)?nèi)存,是目前最快的目標(biāo)實(shí)時(shí)檢測(cè)算法,但檢測(cè)精度較低,尤其是在行人等小目標(biāo)檢測(cè)。為了提高精度,我們可以通過(guò)以下的方法來(lái)改進(jìn)算法:
(1)通過(guò)構(gòu)造反殘差塊來(lái)增加網(wǎng)絡(luò)的深度;
(2)網(wǎng)絡(luò)模型的改進(jìn):改進(jìn)的網(wǎng)絡(luò)由12個(gè)反殘差塊構(gòu)成,通過(guò)反殘差塊,擴(kuò)張?zhí)卣鲌D通道提取高維特征,再進(jìn)行通道降維,得
到特征圖。在原網(wǎng)絡(luò)兩尺度預(yù)測(cè)目標(biāo)的基礎(chǔ)上增加一上采樣層upsample,形成52×52、26×26、13×13三尺度預(yù)測(cè),進(jìn)一步提高目標(biāo)檢測(cè)準(zhǔn)確率。
(3)改進(jìn)損失函數(shù):根據(jù)實(shí)際情況,可以通過(guò)GIOU代替IOU來(lái)提升損失函數(shù)的位置誤差。
由于現(xiàn)代社會(huì)的快速發(fā)展,對(duì)于圖像處理的要求越來(lái)越高,目標(biāo)檢測(cè)的方法也越來(lái)越多,加上對(duì)深度學(xué)習(xí)的不斷探索,目標(biāo)檢測(cè)的方法也發(fā)生了質(zhì)變,本綜述主要講述了單階段法目標(biāo)檢測(cè)的方法。隨著新的框架被不斷的提出來(lái),面對(duì)具體問題的算法框架也越來(lái)多,這時(shí)候我們?nèi)绾芜x擇合適的算法框架變得尤為重要。
截至到目前,Ultralytics公司開源了YOLOv5,離上一次YOLOv4發(fā)布不到50天。而且這一次的YOLOv5是完全基于PyTorch實(shí)現(xiàn)的,這一次的YOLOv5更加的小巧,更加的快,可以達(dá)到140幀/s。YOLOv5的出現(xiàn),帶給了目標(biāo)檢測(cè)的一大進(jìn)步,通過(guò)算法的不斷改進(jìn)和成熟,目標(biāo)檢測(cè)一定會(huì)有巨大的價(jià)值實(shí)現(xiàn)。