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