李欣旭
摘? 要:在司機(jī)駕駛車輛過(guò)程中,利用深度學(xué)習(xí)與神經(jīng)網(wǎng)絡(luò)等方法對(duì)其使用手機(jī)的行為進(jìn)行檢測(cè),比使用傳統(tǒng)視覺檢測(cè)方法具備更高的精度與穩(wěn)定性。本文基于MobileNet神經(jīng)網(wǎng)絡(luò)搭建輕量化辨識(shí)模型。同時(shí),本文還采集了司機(jī)駕駛圖像以構(gòu)建數(shù)據(jù)集,并將數(shù)據(jù)集用于訓(xùn)練模型。最后,構(gòu)建檢測(cè)算法在測(cè)試集上進(jìn)行驗(yàn)證。此方法性能穩(wěn)定,輕量化程度高,適用場(chǎng)景廣泛。
關(guān)鍵詞:司機(jī)狀態(tài)? 手機(jī)檢測(cè)? 深度學(xué)習(xí)? 輕量化
中圖分類號(hào):TN219;TP183? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? ? ? ? ? ?文章編號(hào):1674-098X(2020)09(b)-0111-04
Abstract: Deep learning and neural networks have higher accuracy and stability than traditional visual inspection methods in the field of image processing, such as detecting the driver's behavior of using mobile phone when the driver is driving a vehicle. Based on MobileNet, we build a lightweight neural network detecting model, collect driver driving images datasets for training the model, and develop an algorithm to verify this model.Our method has stable performance, a lightweight structure, and wide application prospects.
Key Words:Driver status; Mobile phone detection; Deep learning; Lightweight
汽車的出現(xiàn)使得人類出行更加便利,但是也帶來(lái)了交通事故從而威脅到了生命財(cái)產(chǎn)安全。因此,司機(jī)在行車時(shí)需要保持高度集中以進(jìn)行符合規(guī)范的安全駕駛。但是隨著智能手機(jī)的發(fā)展,人們?cè)谌粘I钪惺褂檬謾C(jī)越來(lái)越頻繁,不少司機(jī)在駕駛過(guò)程中出現(xiàn)了使用手機(jī)的情況,這樣會(huì)大幅度降低司機(jī)的注意力,從而造成嚴(yán)重的交通事故。因此,研究一種全天候?qū)崟r(shí)非接觸式的對(duì)司機(jī)駕駛過(guò)程中使用手機(jī)的監(jiān)控安防措施尤為重要。
1? 基于MobileNet的司機(jī)使用手機(jī)狀態(tài)檢測(cè)方法
隨著深度學(xué)習(xí)的發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用變得越來(lái)越普遍。深度神經(jīng)網(wǎng)絡(luò)因?yàn)榫哂凶詫W(xué)習(xí)的特性,所以擁有更大的機(jī)會(huì)去提取獲得數(shù)據(jù)中的有效信息。通常,使用更深更復(fù)雜的神經(jīng)網(wǎng)絡(luò)可以提高檢測(cè)的精度,但是這種神經(jīng)網(wǎng)絡(luò)模型在存儲(chǔ)空間的占用以及對(duì)運(yùn)行資源的消耗上都不太樂(lè)觀。此外,也存在一些使用輕量化神經(jīng)網(wǎng)絡(luò)模型工程化應(yīng)用的案例,例如MobileNet[1]、ShuffleNet[2]、GoogleNet[3]等,在提升運(yùn)算速度的同時(shí),盡可能維持較好檢測(cè)效果。
本文所針對(duì)是在司機(jī)駕駛過(guò)程中檢測(cè)其是否使用手機(jī)的場(chǎng)景,該場(chǎng)景通常被期望作為一個(gè)功能模塊被集成進(jìn)司機(jī)監(jiān)控系統(tǒng)中。這種系統(tǒng)一般采用嵌入式平臺(tái),其硬件資源有限,因此需要盡可能降低算法對(duì)硬件資源的消耗,故而本文使用輕量化神經(jīng)網(wǎng)絡(luò)MobileNet解決上述問(wèn)題。
1.1 神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)
MobileNet與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的區(qū)別在于卷積過(guò)程的不同。對(duì)于一個(gè)典型的標(biāo)準(zhǔn)卷積,通常采用若干個(gè)3×3的卷積核對(duì)輸入的多通道圖像/特征圖進(jìn)行卷積。其中,每個(gè)卷積核都會(huì)對(duì)所有通道上的圖像/特征圖進(jìn)行卷積,從而生成一張新的特征圖。但是MobileNet采用的是深度可分卷積。對(duì)于深度可分卷積分,首先使用給定的卷積核尺寸對(duì)每個(gè)通道分別卷積并將結(jié)果組合,該部分被稱為深度卷積。隨后,深度可分卷積使用單位卷積核進(jìn)行標(biāo)準(zhǔn)卷積并輸出特征圖,該部分被稱為逐點(diǎn)卷積。如圖1所示,深度可分卷積首先采用深度卷積對(duì)不同的輸入通道分別進(jìn)行卷積,然后采用逐點(diǎn)卷積將上面的輸出結(jié)果進(jìn)行整合。
卷積過(guò)程中也會(huì)進(jìn)行“批規(guī)范化”操作和“激活”操作,批規(guī)范化能夠使得輸出結(jié)果的各個(gè)維度的均值為0,方差為1。激活函數(shù)則一般采用ReLU,其函數(shù)表達(dá)式如下式所示:
一個(gè)深層可分卷積過(guò)程和一個(gè)標(biāo)準(zhǔn)卷積過(guò)程輸出的結(jié)果相差不明顯,對(duì)于以3×3為卷積核的標(biāo)準(zhǔn)卷積,除去“批規(guī)范化”計(jì)算和“激活”計(jì)算過(guò)程,深度可分卷積的計(jì)算量約為標(biāo)準(zhǔn)卷積權(quán)重?cái)?shù)的10%~25%。
本文所用神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。首先是一個(gè)3×3的標(biāo)準(zhǔn)卷積,后面則是深層可分卷積與標(biāo)準(zhǔn)卷積的堆疊與組合。網(wǎng)絡(luò)尾部設(shè)置了兩個(gè)全連接層,輸出數(shù)量根據(jù)預(yù)測(cè)類別數(shù)量決定,最后是一個(gè)Softmax函數(shù)。按照MobileNet-Smal版結(jié)構(gòu)搭建模型以進(jìn)一步減少了網(wǎng)絡(luò)層數(shù),以期望在保持檢測(cè)效果的同時(shí),進(jìn)一步降低計(jì)算資源消耗。
1.2 模型訓(xùn)練過(guò)程
本文將攝像頭放置于汽車方向盤位置附近,采集如圖2所示視角的司機(jī)駕駛圖像,從而構(gòu)建數(shù)據(jù)集。數(shù)據(jù)集中包含三類情況:(1)司機(jī)在開車中使用手機(jī);(2)司機(jī)正常開車;(3)司機(jī)不在駕駛位置上。并使用這些數(shù)據(jù)集訓(xùn)練上述神經(jīng)網(wǎng)絡(luò)模型。
訓(xùn)練時(shí)使用交叉熵?fù)p失函數(shù),公式如下式所示:
訓(xùn)練過(guò)程中,使用小批量梯度下降方法,取128個(gè)樣本為一個(gè)批量,學(xué)習(xí)率開始設(shè)為0.01。每學(xué)習(xí)完100次全部樣本后,學(xué)習(xí)率降為原來(lái)的1/10。每訓(xùn)練一個(gè)批量的樣本后,網(wǎng)絡(luò)的權(quán)重都會(huì)被反向更新, 當(dāng)損失值變化隨訓(xùn)練過(guò)程趨于穩(wěn)定之后,則停止訓(xùn)練,輸出神經(jīng)網(wǎng)絡(luò)模型。
2? 狀態(tài)檢測(cè)功能算法實(shí)現(xiàn)
在算法實(shí)現(xiàn)上,本文使用python語(yǔ)言與PyTorch庫(kù)實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)模型的搭建與訓(xùn)練工作,并在以上基礎(chǔ)上建立了流程為:“讀取圖片-輸入網(wǎng)絡(luò)-計(jì)算結(jié)果-統(tǒng)計(jì)結(jié)果”的測(cè)試算法,并對(duì)結(jié)果進(jìn)行了統(tǒng)計(jì)與評(píng)估。
在檢測(cè)精度方面,本文使用精確度與召回值來(lái)評(píng)估。精確度與召回值的值都在0~1之間。召回率的值越高表示算法的漏檢越低,精確度的值越高表示算法的誤檢越低。在檢測(cè)速度方面,本文將算法部署在英偉達(dá)Nano上,并將大小為1920×1080的圖片作為輸入,然后統(tǒng)計(jì)算法每秒能夠處理的圖片數(shù)量作為檢測(cè)速度。最終在測(cè)試集上得到檢測(cè)精度和速度結(jié)果如表2所示。
3? 結(jié)語(yǔ)
本文主要針對(duì)司機(jī)駕駛過(guò)程中使用手機(jī)的行為檢測(cè)場(chǎng)景,通過(guò)分析實(shí)拍采集的真實(shí)視頻數(shù)據(jù),采用輕量化深度神經(jīng)網(wǎng)絡(luò)模型提取數(shù)據(jù)特征、識(shí)別行為結(jié)果。本文算法識(shí)別精度較高,并且是“輸入-輸出”的端對(duì)端結(jié)構(gòu),易于使用,占用計(jì)算資源較少,具有工程化應(yīng)用潛力。
本文算法通過(guò)增加數(shù)據(jù)集的數(shù)量,有望進(jìn)一步提高識(shí)別精度。此外,如果將以PyTorch構(gòu)建的神經(jīng)網(wǎng)絡(luò)模型轉(zhuǎn)化為針對(duì)嵌入式設(shè)備的定制化模型(例如TensorRT、TVM、ONNX模型等),則可以進(jìn)一步提升識(shí)別速度。
參考文獻(xiàn)
[1] 王傲然,劉瑋.TensorFlow平臺(tái)上基于MobileNet模型的商品識(shí)別[J].信息通信,2018(12):49-50.
[2] 陳明,李利軍,范戈.一種新型的ShuffleNet多跳等效時(shí)分復(fù)用網(wǎng)絡(luò)[J].光通信研究,2004(6):30-32.
[3] 白陽(yáng),萬(wàn)洪林,白成杰.基于GoogLeNet的靜態(tài)圖像中人體行為分類研究[J].電腦知識(shí)與技術(shù),2017,13(18):186-188.
[4] 馬秀梅,唐春暉,尹征,等.靜態(tài)圖像中的人體行為分類研究[J].信息技術(shù),2015(4):98-101.
[5] 鄒佳悅.人體行為識(shí)別算法研究[D].秦皇島:燕山大學(xué),2017.
[6] 楊紅菊,馮進(jìn)麗,郭倩.基于多核學(xué)習(xí)的靜態(tài)圖像人體行為識(shí)別方法[J].數(shù)據(jù)采集與處理,2016,31(5):958-964.
[7] 劉照邦,袁明輝.基于深度神經(jīng)網(wǎng)絡(luò)的貨架商品識(shí)別方法[J].包裝工程,2020,41(1):149-155.