前言
yolo系列是目前應(yīng)用范圍比較廣的目標(biāo)的檢測算法,經(jīng)過幾輪的改進(jìn)昏滴,在實(shí)時性和檢測效果上同比第一代yolo也有了較大提升抛虫,本文梳理一下yolo系列算法的改進(jìn)思路懂缕。
YOLO
概述
在yolo之前侣集,目標(biāo)檢測更多的是two-stage算法键俱,即先篩選出部分候選框,在進(jìn)行選擇與分類世分,其中比較有代表性的網(wǎng)絡(luò)為:faster-RCNN编振,mask-RCNN等。
you only look once臭埋,yolo系列是眾多one-stage算法中比較有代表性的踪央,one- stage使用單一網(wǎng)絡(luò)完成定位與分類。
yolo框架思路
目標(biāo)檢測任務(wù)是定位出圖像中的物體并說明物體是什么瓢阴,yolo系列將其轉(zhuǎn)化為回歸問題畅蹂,輸入為圖片,輸出為x,y,w,h,c + 各分類概率
我們從v1 loss 入手看看它的設(shè)計(jì)思路:loss分為三個大部分:
位置損失荣恐、置信度損失液斜、分類損失
位置損失比較容易理解,就是邊框x,y,w,h; w,h 取平方根用來平衡大小框?qū)p失影響大小的問題叠穆。
置信度指的是候選框內(nèi)為物體還是背景的置信度少漆,這里的C取值為0和1,圖像中背景區(qū)域一般來講遠(yuǎn)多于物體硼被,lamda用來平衡該差異對整體損失的影響示损。
第三部分為分類損失。
后面的YOLO都基本按照這個思路進(jìn)行優(yōu)化祷嘶。
YOLOV1
YOLO V1是YOLO的開山之作屎媳,它奠定了YOLO系列的基本框架。
基本思想
將圖片劃分為S*S個格子论巍,每個格子2個預(yù)選框烛谊,若該格子中心包含物體,則該物體由該格子進(jìn)行預(yù)測嘉汰。
預(yù)測產(chǎn)生 S*S*(B*5+C)
yolov1中S=7丹禀,B=2,C為數(shù)據(jù)集類別數(shù)量鞋怀。
網(wǎng)絡(luò)結(jié)構(gòu)
網(wǎng)絡(luò)結(jié)構(gòu)相對簡單双泪, gooleNet作為卷積網(wǎng)絡(luò),兩層全聯(lián)接網(wǎng)絡(luò)進(jìn)行映射密似。
基本過程
輸入:448*448圖像
網(wǎng)絡(luò)預(yù)測邊框分類及其置信度
NMS去處冗余框
不足之處
1.網(wǎng)絡(luò)由于使用全連接網(wǎng)絡(luò)焙矛,輸入大小不可變。
2.預(yù)選框只有兩個残腌,對于密集重合以及小目標(biāo)效果不佳村斟。
YOLOV2
V2在V1的基礎(chǔ)上通過一些較有創(chuàng)造性的trick贫导,進(jìn)一步提升效果與速率。
V2優(yōu)化內(nèi)容
- 去除全連接層蟆盹,采用卷積與池化來進(jìn)行預(yù)測孩灯,該網(wǎng)絡(luò)結(jié)構(gòu)的改進(jìn)可以使用多尺度進(jìn)行訓(xùn)練。
- 去除了全連接層也不再使用dropout來防止過擬合逾滥,使用Batch Normalization來替代峰档。
- 優(yōu)化損失函數(shù),對位置的損失函數(shù)改用偏移量寨昙,更易收斂讥巡。
- 特征融合,除了使用最后一層特征圖外毅待,融合倒數(shù)第二層特征尚卫,改善V1對小目標(biāo)效果較差的問題归榕。
- 預(yù)選框使用K-means聚類得到尸红,同比V1提前指定預(yù)選框,該方式更貼近數(shù)據(jù)集刹泄,更合理外里。
- 更大分辨率,有效提升MAP特石。
- 引入聯(lián)合訓(xùn)練方式盅蝗,即檢測與分類聯(lián)合訓(xùn)練,訓(xùn)練分類時姆蘸,檢測部分的loss不生效墩莫,為0。
網(wǎng)絡(luò)結(jié)構(gòu)
基本過程與細(xì)節(jié)
輸入416*416
卷積網(wǎng)絡(luò)
輸出13*13*5*25
細(xì)節(jié)一:輸入大小為32的奇數(shù)倍逞敷,保證最后框的大小為奇數(shù)狂秦,方便確定框的中心。
細(xì)節(jié)二: K-means聚類聚類距離為推捐,1-IOU裂问;規(guī)避大小框中心點(diǎn)距離差別大的問題。
細(xì)節(jié)三:優(yōu)化loss函數(shù)牛柒,使用相對偏移量計(jì)算損失堪簿,計(jì)算的是預(yù)測框與預(yù)選框的偏移(anchor box),只有最接近ground truth的檢測框進(jìn)行損失的計(jì)算皮壁。V5每個格子5個預(yù)選框椭更,同比V1召回明顯增加,準(zhǔn)確率下降蛾魄,map略有下降虑瀑。
YOLOV3
YOLOV3是極有標(biāo)志性的一代协饲,借鑒了ResNet的殘差思想,大幅度提升了時效性與效果缴川。
插曲佚事:V3是原YOLO作者的最后一代YOLO模型茉稠,因作者發(fā)現(xiàn)V3被用于軍事,從此退出了相關(guān)研究把夸。
網(wǎng)絡(luò)結(jié)構(gòu)
過程與細(xì)節(jié)
輸入圖像
卷積神經(jīng)網(wǎng)絡(luò)
多尺度預(yù)測
多尺度預(yù)測而线,
52*52 用于預(yù)測小目標(biāo)
26*26 用于預(yù)測中目標(biāo)
13*13 用于預(yù)測大目標(biāo)
低層融合高層特征,提高中小目標(biāo)的預(yù)測能力和預(yù)測效果
高層采用上采樣恋日,與中小兩層進(jìn)行拼接融合預(yù)測
取消池化層膀篮,使用卷積控制步長來進(jìn)行下采樣。
改進(jìn)loss岂膳,使得yolo可以進(jìn)行多標(biāo)簽預(yù)測誓竿。