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