陳小娥
(福建船政交通職業(yè)學(xué)院 信息工程系, 福州350007)
隨著我國社會經(jīng)濟的快速發(fā)展以及城市化進程的加快,道路上車輛和行人數(shù)量不斷增多,交通問題也隨之變得日益嚴(yán)重。 道路交通目標(biāo)種類繁多,對不同車輛和行人進行快速檢測和識別是計算機研究者近年來面對的挑戰(zhàn)性任務(wù)之一,也是智能交通監(jiān)控系統(tǒng)和自動駕駛技術(shù)等應(yīng)用的關(guān)鍵。
目標(biāo)檢測是計算機視覺技術(shù)的一項重要研究課題,是指通過相關(guān)算法來實現(xiàn)客觀世界中對象的分類和定位。 主要分為傳統(tǒng)目標(biāo)檢測和近階段基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測。 傳統(tǒng)目標(biāo)檢測主要先通過手工提取特征,然后針對特定檢測對象設(shè)計和訓(xùn)練分類器,該方法很大程度上依賴于提取的特征的準(zhǔn)確性,然而手工提取的特征往往對目標(biāo)的表達能力不足,魯棒性低。 近階段基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測,又分為兩大類,包括Two- Stage 和One-Stage的兩種不同的方法和路線。 其中,Two-Stage 方法主要通過利用RPN 網(wǎng)絡(luò)來對候選區(qū)域進行推薦,其中具有代表性的是R-CNN、Faster RCNN 系列方法,如2014 年R-CNN 框架[1]被提出,通過大容量卷積神經(jīng)網(wǎng)絡(luò)來提取特征,而后接連出現(xiàn)了一系列改進框架,如SPP-Net[2]、Fast-R-CNN[3]、Faster RCNN[4]、R-FCN[5]等算法。 而One Stages 主要通過直接回歸目標(biāo)的位置來進行目標(biāo)的檢測,比較典型的有YOLO 和SSD 系列方法,能夠?qū)δ繕?biāo)檢測的速度進行進一步的提升,如2015 年Joseph Redmon等[6]提出的YOLO,用一個卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)定位分類一體化,是一個不基于區(qū)域算法的代表。 接著,劉維等[7]借用了區(qū)域目標(biāo)檢測的思想,將提取候選框的網(wǎng)絡(luò)和目標(biāo)分類的網(wǎng)絡(luò)進行合并,提升了準(zhǔn)確率。 2017 年和2018 年,YOLOv2[8]和YOLOv3[9]版本相繼被提出,它們在保持高效檢測速度的基礎(chǔ)上,引入了anchor box 和多尺度等思想,進一步改進了網(wǎng)絡(luò)結(jié)構(gòu),特別是YOLOv3 引進了ResNet 思想,進一步提高了網(wǎng)絡(luò)的檢測精度和速度。
本文采用基于YOLOv3 深度學(xué)習(xí)網(wǎng)絡(luò),對道路交通中的行人、自行車、小汽車、公共汽車、卡車等目標(biāo)進行檢測。 首先,對采集的數(shù)據(jù)集進行預(yù)處理,然后利用YOLOv3 對交通監(jiān)控對象進行目標(biāo)檢測,最后進行實驗結(jié)果分析。
YOLOv3 采用Darknet-53 作為骨干網(wǎng)絡(luò),進一步地提高了目標(biāo)檢測的定位和分類精度。 Darknet-53 包含53 個卷積層,大量采用3?3 和1?1 的卷積核。 為了訓(xùn)練53 層的深度網(wǎng)絡(luò),借鑒了ResNet的思想,在卷積層之間構(gòu)建殘差模塊,設(shè)置跳躍連接。 YOLOv3 通過借鑒特征金字塔網(wǎng)絡(luò),設(shè)計多尺度特征提取結(jié)構(gòu),提升了小目標(biāo)的檢測效果。YOLOv3 模型結(jié)構(gòu)如圖1 所示。

圖1 YOLOv3 模型結(jié)構(gòu)Fig. 1 Yolov3 model structure
本實驗采用的硬件配置參數(shù)如下:Intel(R)Core(TM)i7-8750H CPU@2.20 GHz 處理器、16 GB內(nèi)存、6G NVIDIA GeForce GTX 1060 GPU。
實驗的主要步驟如下:
(1)數(shù)據(jù)集的采集。 實驗中數(shù)據(jù)集一部分來自網(wǎng)絡(luò)上搜集到的交通監(jiān)控視頻,一部分通過爬蟲程序直接爬取網(wǎng)絡(luò)上交通監(jiān)控目標(biāo)圖像。
(2)數(shù)據(jù)預(yù)處理。 數(shù)據(jù)預(yù)處理包括對采集到的監(jiān)控視頻分解出視頻幀、對視頻幀和直接爬取的目標(biāo)圖像進行清洗等,以及對它們進行標(biāo)注。
(3)采用Yolov3 對測試數(shù)據(jù)集進行目標(biāo)檢測,并進行結(jié)果分析。
實驗中的數(shù)據(jù)集包含提取的視頻幀和爬取的監(jiān)控目標(biāo)圖像,以及擴充后的圖像,共4 490 幅。
提取視頻幀的核心代碼如下所示,按照每秒取1 幀圖像進行保存,crop_vertices 存放待保存的圖像的裁剪范圍,可以根據(jù)實際情況設(shè)定,提取的幀也可不裁剪。
提取的視頻幀和直接爬取的圖片,經(jīng)過一定的篩選,過濾到?jīng)]有目標(biāo)的樣本,使用labelme 進行標(biāo)注。 數(shù)據(jù)集的樣本示例如圖3 所示,上方兩圖是交通監(jiān)控視頻提取的幀,下方兩圖是網(wǎng)上直接爬取的交通監(jiān)控圖像。 表1 中主要包含了數(shù)據(jù)集所有圖片中小汽車、自行車、公共汽車、卡車和行人的目標(biāo)數(shù)量。 表2 中顯示了這些目標(biāo)像素大小的分布情況,尺寸介于(0,32?32]之間的屬于小物體,(32?32,96?96]屬于中物體,大于96?96 的屬于大物體。

圖3 數(shù)據(jù)集的樣本示例圖Fig. 3 Sample pictures of data set

表1 數(shù)據(jù)集中目標(biāo)數(shù)Tab. 1 Target number in dataset

表2 目標(biāo)像素大小分布Tab. 2 Target pixel size distribution
實驗過程中,使用原Yolov3 權(quán)重文件[9],其訓(xùn)練參數(shù)中批次大小batch_size 為64,初始學(xué)習(xí)率為0.001。 對標(biāo)注好的數(shù)據(jù)集進行測試。 YOLOv3 算法對交通監(jiān)控目標(biāo)檢測的結(jié)果如下圖所示。

圖4 檢測結(jié)果示例圖Fig. 4 Some pictures of test result
通過實驗結(jié)果定量評估YOLOv3 算法對于交通監(jiān)控目標(biāo)檢測識別的效果。 從準(zhǔn)確率Precision 和召回率Recall 對算法進行評價。 具體地,

其中,TP 表示本身是正樣本,分類器也認為它是正樣本;FP 表示本身是負樣本,分類器認為它是正樣本;FN 表示本身是正樣本,分類器認為它是負樣本;Precision 表示的是分類器認為是正類并且確實是正類的部分占所有分類器認為是正類的比例;Recall 表示的是分類器認為是正類并且確實是正類的部分占所有確實是正類的比例。 IOU 交并比衡量監(jiān)測框和標(biāo)簽框的重合程度。 表3 中顯示了對應(yīng)不同交并比閾值的平均精度,AP 表示Average Precision,第1 個AP 對應(yīng)的IoU =0.5:0.95,第2 個和第3 個AP 對應(yīng)的IoU 分別為0.5、0.75,后3 個AP 的下標(biāo)分別對應(yīng)小、中、大目標(biāo)。 另外,對應(yīng)大、中、小目標(biāo)在IoU =0.5:0.95 的AR (average recall)值分別為0.279、0.468、0.584。

表3 實驗結(jié)果分析Tab. 3 Analysis of experimental results
本文自行設(shè)計標(biāo)注了交通監(jiān)控目標(biāo)的數(shù)據(jù)集,使用Yolov3 算法對交通監(jiān)控對象進行了目標(biāo)檢測,最后進行了實驗結(jié)果分析。 下一步可以增加樣本的多樣性、同時針對自己的數(shù)據(jù)集進行模型的訓(xùn)練,進一步提高準(zhǔn)確率。