付云霞
(成都理工大學(xué),四川 成都610059)
用于行人檢測(cè)的算法由最初的傳統(tǒng)目標(biāo)檢測(cè)算法慢慢演進(jìn)到基于深度學(xué)習(xí)的方法,這些算法在檢測(cè)方面都有不錯(cuò)的效果。目前常用的方法有:HOG[1]、SIFT[2]、R-CNN[3]、Fast R-CNN[4]、Faster R-CNN[5]、YOLO 系列等。由Redmon 等[6]提出的YOLO 和YOLOv2 算法,由于檢測(cè)速度相對(duì)其他算法較快,從而被廣泛的應(yīng)用于行人檢測(cè)中。即便如此,行人檢測(cè)算法當(dāng)下仍存在誤檢率較高、實(shí)時(shí)性比較差等問(wèn)題。下圖為一些在目標(biāo)檢測(cè)中常用的算法。
YOLOv1 在檢測(cè)速度方面與其他算法相比有一定的提升,但缺陷也較多,主要體現(xiàn)在目標(biāo)定位的準(zhǔn)確度較低、針對(duì)小目標(biāo)其檢測(cè)效果相對(duì)較差、計(jì)算量大。YOLOv2 針對(duì)YOLOv1 的缺陷,進(jìn)行了一些改進(jìn),在檢測(cè)上有了一定的提升,但仍然不夠。后YOLOv3 在YOLOv2 上做了進(jìn)一步的改進(jìn),實(shí)現(xiàn)多尺度檢測(cè)、修改了損失函數(shù)和anchor box 的數(shù)目,改進(jìn)了基礎(chǔ)特征提取網(wǎng)絡(luò)。不僅保證了速度,還提高小目標(biāo)的檢測(cè)精度。
下圖為文獻(xiàn)[7]給出的網(wǎng)絡(luò)結(jié)構(gòu)圖。
YOLO 主要依靠卷積神經(jīng)網(wǎng)絡(luò)[8]來(lái)完成。該網(wǎng)絡(luò)是一個(gè)多隱層的人工神經(jīng)網(wǎng)絡(luò),由大量卷積單元所組成的卷積層是卷積神經(jīng)網(wǎng)絡(luò)中的重要組成部件,大部分計(jì)算量由它承擔(dān),也是包含參數(shù)最多的地方。以下將對(duì)卷積層進(jìn)行簡(jiǎn)介。
卷積層的目標(biāo)特征借助卷積運(yùn)算來(lái)提取,提取目標(biāo)特征可理解為f 和g 生成第三個(gè)函數(shù)的數(shù)學(xué)算子,代表f 與g 的重疊面積,g 會(huì)經(jīng)過(guò)翻轉(zhuǎn)、平移,演算過(guò)程如下:
積分形式:
記圖像為 f( x ,y) , 二維卷積函數(shù)為 g( x, y),輸出圖像(z x, y)可表示為:
該運(yùn)算以卷積核作為計(jì)算參數(shù)實(shí)現(xiàn)圖像的特征提取。卷積運(yùn)算的表達(dá)式在二維圖像輸入時(shí),如下:
積分形式:
給定尺寸是m*n 的卷積核,那么:
借鑒YOLOv3 對(duì)YOLO 網(wǎng)絡(luò)進(jìn)行改進(jìn),將特征提取的網(wǎng)絡(luò)改為62 層的ResNet[9]。使得YOLO 網(wǎng)絡(luò)更深。同時(shí)為提高檢測(cè)效果將特征金字塔結(jié)構(gòu)進(jìn)行了引入。池化層被步長(zhǎng)為2 的卷積層所代替。輸入圖片由416x416 尺寸經(jīng)過(guò)一系列操作最后輸出尺寸為13x13。
假設(shè)輸入層為5x5,卷積核為3x3,輸出神經(jīng)元的過(guò)程如下:
W 表示權(quán)重,I 表示輸入,在激活函數(shù) σ中輸入上式所得值可獲得輸出值:
若圖片三個(gè)通道輸入如下:
卷積計(jì)算:
此時(shí),
重復(fù)上面的計(jì)算過(guò)程,可得特征圖。
用交叉熵?fù)p失函數(shù)代替激活函數(shù),邊界框的尺寸誤差在采用均方差函數(shù)的情況下表達(dá)式為:
進(jìn)行歸一化后的誤差表達(dá)式:
中心坐標(biāo)誤差:
置信誤差:
概率誤差:
通過(guò)對(duì)YOLO 算法的初步了解,以及改進(jìn)發(fā)現(xiàn)其在行人識(shí)別的應(yīng)用上有極大的改進(jìn)空間。后續(xù)將對(duì)YOLO 算法做更加深入的理論分析,進(jìn)一步的改進(jìn),在行人檢測(cè)應(yīng)用上進(jìn)行實(shí)際測(cè)試。