?

基于深度學習的車輛檢測

2019-05-20 05:30時文忠王忠榮
中國公共安全 2019年12期
關鍵詞:損失卷積樣本

□文/時文忠 王忠榮

隨著社會的發展和人民生活水平的提升,汽車保有量在不斷的快速增長,從一些大城市的車輛限號和限行可以看出來,交通監管面臨巨大的壓力。各種交通卡口和紅綠燈路口都安裝了智能監控,隨著人工智能的發展,這些繁重的工作可以借助計算機視覺來輔助處理。讓計算機自動處理這些圖像數據,最重要的就是需要定位圖像中車輛的位置,即車輛檢測。本文將深入研究目前的一些目標檢測算法并提出本文的檢測算法。

相關工作

隨著目標檢測精度和速度要求越來越高,傳統方法已經不能滿足需求了。近年來,深度學習技術得到了廣泛的應用,產生了一系列目標檢測算法,例如兩階段目標檢測算法,Girshick等在2014年提出的R-CNN算法一舉奪得當年Pascal VOC比賽的冠軍。SPP-Net提出空間金字塔池化,Fast R-CNN[3]在R-CNN中加入RoIPooling層調整特征圖的尺寸,Faster R-CNN提出RPN取代以前的選擇性搜索方法來更快的生成更準確的候選框,所有步驟由卷積神經網絡完成,Faster R-CNN是第一個端到端的兩階段目標檢測方法。另外一大類是單階段檢測算法,以SSD(Single Shot MultiBox Detector)系列、YOLO(You Only Look Once)系列、RetinaNet等為典型代表,基于全局回歸和分類的框架,從圖像像素直接映射到目標邊界框和類別概率,可以極大較少開銷提升效率,目前大多數單階段行人檢測器都可以做到實時檢測。

本文方法

在深度學習領域,一個深度學習模型由三大部分組成,網絡、損失函數和數據,網絡用于提取特征,數據用于模型擬合,損失函數決定如何訓練。同理,對一個模型的改進也可以從這三個方面入手:首先網絡方面,改進車輛檢測算法的網絡,在三個方面影響檢測性能:網絡深度、下采樣率和感受野大??;其次數據方面,本文使用在圖像分類領域表現很好的mixup數據增廣方法;最后損失函數方面,本文使用焦點損失和困難樣本挖掘提升效果。

數據集

目前的公開數據集不多,本文通過采集大量交通卡口的視頻和圖像數據,然后使用一些目標檢測工具進行人工標注。本文使用自建和公開數據集共計25000張圖像,按照9:1的比例劃分為檢測模型的訓練集和驗證集。

在數據預處理方面,本文使用了常見的數據增廣方法,比如隨機裁剪,隨機翻轉,隨機旋轉(-30-+30度),另外還使用了一種在圖像分類領域表現較好的mixup數據增廣方法。

網絡結構

在目標檢測網絡的骨干網絡部分,在Darknet基礎上進行改進,得到擴張卷積暗網絡,由48層1*1卷積或者3*3卷積網絡構成的全卷積網絡,在網絡最后一個模塊使用Dilated Convolution(擴張卷積),擴張卷積的最大優點在于不做池化或者下采樣的操作,可以增大感受野,讓每個卷積輸出都包含較大范圍的信息,同時盡可能保留較大的特征圖和圖像的空間信息,這對于小目標檢測非常關鍵。對于目標檢測問題,使用擴張卷積可以極大的保留空間信息。使用擴張卷積時,由于特征圖不減小,這會極大增加計算量,與一般的網絡結構不同,DDN網絡在最后一個模塊里,所有卷積的通道數都設置為256。實驗證明,該卷積層通道數是256(記為DDN-256網絡)和通道數是1024(記為DDN-1024網絡)相比,精度幾乎沒有下降或下降極少(由實際數據集決定),卻極大減少了計算量。另外,在最后一個模塊中只有4個殘差模塊,在這里使用Bottleneck結構(瓶頸結構),通過在每個模塊的首尾分別添加1*1的卷積可以進一步減少計算量,加快預測速度,同時可以增加網絡的深度和增加非線性,提升網絡精度。

整個DPDN網絡以DDN網絡作為骨干網絡,檢測部分借鑒FPN思想,使用特征融合的手段進行多層檢測,整體思路可以概括為,使用淺層的大的特征圖檢測小目標,使用深層的含更多語義信息的特征圖檢測大目標。在FPN中,通過融合深層的含有較多語義信息的特征和淺層的語義信息較少的特征,可以更好地定位各種尺度的目標。

損失函數

在網絡的損失函數的分類部分加入了Focal loss(焦點損失)和OHEM(Online hard example mining,在線困難樣本挖掘)方法,檢測部分使用YOLO方法里面的L2損失函數。在線困難樣本挖掘方法是在計算損失的時候重點關注比較難的樣本,即損失比較大的那些樣本,通過加權的方式來處理不同大小的損失。焦點損失可以讓網絡更加關注難識別的樣本,設計加權損失函數,減少簡單樣本損失在總的損失中的比例,進行難例挖掘,可以進一步提升精度。式1為焦點損失公式。

上式中pt表示目標檢測結果中類別的識別概率,取值0~1之間,log自然對數,γ表示焦點參數,是一個0~1之間的數,αt是一個調制系數,是一個0~1之間的數,用來控制正負樣本在總的損失中的比重。

訓練和實驗結果

使用預訓練模型,先把DDN單獨在ImageNet上訓練分類模型,用來初始化骨干網絡,后面檢測部分的一些層使用隨機初始化方法。本方法是單階段訓練方法,依賴預先設置的錨框(anchors),根據實際數據集調整anchors 的尺寸分布,該分布由K-means算法得到,使用(1-IoU)作為距離度量,其中IoU表示先驗候選框與標記框之間面積的交并比。對數據進行左右翻轉、隨機裁剪、色彩抖動等數據增強操作,不斷調整學習率、批量大?。╞atch_size)、優化方法等超參數來訓練DPDN網絡。

實驗結果如表1所示,對比方法有Faster R-CNN和YOLO方法,在檢測速度和精度兩個重要維度進行對比,可以看到本方法全面優于上述兩種算法。

表1 實驗結果對比表

本文方法的車輛檢測結果展示如圖1所示。

▲圖1 本文方法檢測結果

結論

本文在YOLO基礎上設計新的目標檢測網絡DPDN。本方法的骨干網絡是DDN,在末端卷積模塊使用殘差網絡的瓶頸結構,引入擴張卷積,在不減小特征圖的同時增大感受野,同時減少卷積通道數,在損失函數方面引入焦點損失函數,可以讓模型更關注困難樣本。改進檢測網絡和設計更合適的候選框。在檢測部分,設計了一個新的檢測網絡,因為骨干網絡使用了擴張卷積,最后兩個模塊的特征圖的尺寸相同,可以不用做上采樣。最終本文方法取得了較好的檢測結果。

猜你喜歡
損失卷積樣本
基于3D-Winograd的快速卷積算法設計及FPGA實現
胖胖損失了多少元
用樣本估計總體復習點撥
卷積神經網絡的分析與設計
從濾波器理解卷積
玉米抽穗前倒伏怎么辦?怎么減少損失?
規劃·樣本
基于傅里葉域卷積表示的目標跟蹤算法
隨機微分方程的樣本Lyapunov二次型估計
菜燒好了應該盡量馬上吃
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合