張之云 蘇山杰
(重慶交通大學(xué)機(jī)電與車輛工程學(xué)院,重慶 400074)
主題詞:摩托車頭盔 佩戴檢測 深度學(xué)習(xí) 目標(biāo)檢測
NMS Non Maximum Suppression
KNN K-near Neighbor
SIFT Scale Invariant Feature Transform
LBP Local Binary Patterns
HOG Histogram of Oriented Gradient
HOI Human Object Interaction
CNN Convolutional Neural Network
SPP Spatial Pyramid Pooling
FCN Fully Convolutional Networks
SSD Single Shot Multi Box Detector
RSSD Rainbow-SSD
SVM Support Vector Machine
RPN Region Proposal Network
YOLO You Only Look Once
ROI Region of Interest
GPU Graphics Processing Unit
COCO Common Objects in Context
MAP Mean Average Precision
CSPNet Cross Stage Partial Networks
DIoU Distance Intersection over Union
CBAM Convolutional Block Attention Module
一些欠發(fā)達(dá)地區(qū),摩托車作為出行的主要工具,駕駛的安全問題越來越受到社會的關(guān)注。摩托車頭盔的佩戴對駕駛員的安全十分重要。據(jù)世界衛(wèi)生組織(WHO)預(yù)測,2022 年中國的摩托車保有量達(dá)到7 925.1 萬輛,到2030 年摩托車保有量下降到7 500 萬輛。摩托車事故中,頭部受傷是導(dǎo)致死亡的主要原因。正確佩戴頭盔能降低42%的死亡率和69%的受傷率,摩托車頭盔能有效的保障駕駛者及乘客的安全。因此,在行駛過程中能及時有效的檢查駕駛?cè)藛T的頭盔佩戴情況對減少交通傷亡事故非常重要。
最原始的頭盔佩戴檢測方法是交通部門派遣工作人員現(xiàn)場監(jiān)督。這種檢測方法存在許多弊端,首先需要大量的資金和人力資源的投入,同時檢查效率變低、危險性大、容易造成道路擁堵的情況。
隨著計算機(jī)科學(xué)的迅速發(fā)展和智能交通的興起,對于一些特定場景下的目標(biāo)可以采取自動檢測的方法,這些方法可以分為傳統(tǒng)的機(jī)器視覺檢測方法和基于深度學(xué)習(xí)的檢測算法兩種類型。本文先對摩托車頭盔檢測方法進(jìn)行綜述,總結(jié)目前存在的問題,最后對摩托車頭盔佩戴檢測方法的未來發(fā)展進(jìn)行展望。
計算機(jī)視覺技術(shù)使機(jī)器能夠通過相關(guān)設(shè)備和計算機(jī)來獲取圖片的信息,對人類視覺進(jìn)行模擬,最終能夠?qū)ξ矬w起到識別的作用。如圖1 所示,傳統(tǒng)的目標(biāo)檢測方法主要分為感興趣區(qū)域的劃分、特征的提取和分類以及回歸4 個步驟。到目前為止,國內(nèi)外許多研究者對摩托車頭盔的檢測做了大量的研究,以下是基于傳統(tǒng)計算機(jī)視覺的摩托車頭盔檢測的相關(guān)工作。
圖1 傳統(tǒng)目標(biāo)檢測算法流程
使用頭盔檢測或搜索的方法來確定摩托車頭盔能有效提高檢測系統(tǒng)的效率和魯棒性。Chiu等提出了一種計算機(jī)視覺系統(tǒng),用于檢測和分割被遮擋的摩托車。該方法使用視覺長度、視覺寬度和像素比來檢測被遮擋的摩托車,并將摩托車從中分割出來。再使用頭盔檢測或搜索的方法來確定頭盔是否存在,該方法克服了遮擋問題。Waranusast R 等提出了一種自動檢測摩托車駕駛員和安全頭盔的系統(tǒng)。該系統(tǒng)使用K-最鄰近(KNN)分類器,根據(jù)特征進(jìn)行摩托車分類,然后對駕駛員的頭部進(jìn)行計數(shù)和分割,該方法根據(jù)4 個部分的頭部特征對戴頭盔與不戴頭盔進(jìn)行分類。R.Silva等,提出了一種基于局部二進(jìn)制模式,采用定向直方圖和霍夫變換描述符的特征提取混合描述符。使用攝像機(jī)捕獲的交通圖像,從而對摩托車頭盔進(jìn)行檢測。Chiverton等使用基于邊緣直方圖的特征來檢測摩托車駕駛員,這種方法的優(yōu)點在于它不會受邊緣直方圖以及視頻中光照強度的影響。由于邊緣直方圖使用圓形霍夫變換來比較和分類頭盔,因此導(dǎo)致對頭盔的許多錯誤分類。Silva等提出了一種系統(tǒng)來處理卡爾曼濾波器跟蹤車輛的錯誤分類問題??柭櫹到y(tǒng)的一個顯著優(yōu)點是能夠連續(xù)跟蹤物體,即使它們稍微被遮擋。但是當(dāng)2 個或3 個以上的摩托車手出現(xiàn)在同一幀中時,卡爾曼濾波器會失敗,因為卡爾曼濾波器主要適用于線性狀態(tài)轉(zhuǎn)換。但是要跟蹤多個對象時需要非線性函數(shù)。Dahiya K 等提出了3 種特征表示方法:尺度不變特征變換(SIFT)、局部二值模式(LBP)和方向梯度直方圖(HOG)。分兩個不同的階段實現(xiàn):首先利用背景減法和目標(biāo)分割法從監(jiān)控視頻中檢測駕駛員。然后利用視覺特征和分類器判斷駕駛員是否戴頭盔。第一階段檢測駕駛員,第二階段定位駕駛員的頭部并檢測頭盔。針對傳統(tǒng)的目標(biāo)檢測方法中效率低以及時間成本大的問題,張乾雷等采用了一種基于并行點檢測和點匹配的單階段HOI Detection 方法。先采用新的全卷積方法對人與物體之間的相互作用直接進(jìn)行檢測,通過網(wǎng)絡(luò)預(yù)測交互點人物交互進(jìn)行分類和定位,與密集預(yù)測的交互向量配對,通過人類和物體檢測相關(guān)聯(lián)來獲取檢測結(jié)果。與傳統(tǒng)的兩階段算法相比,HOI算法的檢測精度與準(zhǔn)確率都有了很大提高。
傳統(tǒng)機(jī)器學(xué)習(xí),這類方法大多是依靠人為的設(shè)計來選取特征,需要實驗者具有扎實的專業(yè)知識和豐富的實驗經(jīng)驗,特征設(shè)計的過程十分復(fù)雜,不但費時費力,而且不能獲取良好的特征、檢測速度慢、精度低也難以適應(yīng)復(fù)雜的條件變化。經(jīng)過不斷迭代研究,計算機(jī)視覺技術(shù)正從機(jī)器學(xué)習(xí)向深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)技術(shù)方向發(fā)展,它不僅速度快、精度高,在整體的檢測性能指標(biāo)上都能有大的提升,這為目標(biāo)識別技術(shù)領(lǐng)域未來發(fā)展提供了新動力。
近幾年,深度學(xué)習(xí)目標(biāo)檢測已經(jīng)成為圖片及視頻識別和分類的主流方法,使用卷積神經(jīng)網(wǎng)絡(luò)自動對圖像進(jìn)行特征進(jìn)行提取,從而對目標(biāo)進(jìn)行識別和定位。深度學(xué)習(xí)檢測算法可以從區(qū)域建議和回歸2個方面劃分為雙階段和單階段2 種不同的類型。表1 將雙階段與單階段的檢測算法在不同的功能上進(jìn)行了對比。
表1 雙階段與單階段檢測算法的性能對比
雙階段的摩托車頭盔檢測算法主要以Faster RCNN 為主。該方法先利用算法來獲取候選區(qū)域,再通過卷積神經(jīng)網(wǎng)絡(luò)對樣本進(jìn)行分類。圖2 是Faster R-CNN 的整體結(jié)構(gòu),F(xiàn)aster R-CNN 首先使用一組基礎(chǔ)卷積層提取圖片的特征,該特征圖被共享用于后續(xù)的RPN 層和全連接層,RPN 網(wǎng)絡(luò)用于生成候選區(qū)域,該層通過Softmax 判斷Anchors 屬于前景還是背景,再利用邊界框回歸來修正Anchors 獲得精確的預(yù)測框。使用ROI pooling 層來綜合輸入特征圖和候選框的信息,提取候選特征圖,在后續(xù)的全連接層判定目標(biāo)類別。
圖2 Faster R-CNN的整體結(jié)構(gòu)[10]
Yogameena 等提出的系統(tǒng)基于Faster R-CNN 來檢測標(biāo)記的前景目標(biāo)中的摩托車,以確保摩托車駕駛員的存在。隨后,F(xiàn)aster R-CNN 也被用于檢測是否戴頭盔的摩托車駕駛員。由于目標(biāo)檢測過程會受到分辨率、天氣條件和光照條件不同因素的影響,無法達(dá)到理想的檢測結(jié)果。Afzal A 等提出了一種監(jiān)控視頻自動檢測摩托車駕駛員是否佩戴頭盔的方法。首先,應(yīng)用候選區(qū)域網(wǎng)絡(luò)RPN對卷積得到的特征圖進(jìn)行候選框選取,對頭盔進(jìn)行檢測,最后再對檢測到的頭盔進(jìn)行識別。試驗結(jié)果表明,實時監(jiān)控視頻對摩托車頭盔的檢測準(zhǔn)確率達(dá)到97.26%。
相比于傳統(tǒng)的檢測算法,深度學(xué)習(xí)的雙階段目標(biāo)檢測算法降低了原來的計算量,加快了檢測速度。應(yīng)用網(wǎng)絡(luò)自動提取候選區(qū)域的特征,解決了獲取特征信息不足的問題,提高了檢測精度。利用多類別分類器推斷類別概率,并使用邊界框回歸模型求出預(yù)測框的修正位置,使其更接近真實框,從而改善了算法的整體檢測性能。單階段網(wǎng)絡(luò)能夠達(dá)到實時的效果,更具備實用價值,因而大多數(shù)研究都是針對單階段算法。
單階段算法一次性完成對物體的分類和定位,與雙階段檢測算法比,這種方式運算速度更快,能夠達(dá)到實時檢測的效果,其主要以YOLO、SSD 算法為代表。
Dasgupta 等提出了一個框架,用于檢測不戴頭盔的單人或多人騎摩托車騎行。在建議的方法中,在第一階段,使用YOLOv3 模型來檢測摩托車駕駛,在第二階段,提出了基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的體系結(jié)構(gòu),該結(jié)構(gòu)受到Y(jié)OLO-Lite 網(wǎng)絡(luò)結(jié)構(gòu)的啟發(fā),減少了網(wǎng)絡(luò)結(jié)構(gòu)層數(shù),并且GPU 設(shè)備使用Batch Nor?malization 來檢測摩托車駕駛員的頭盔。Khan 等提出了一種計算機(jī)化的機(jī)器結(jié)構(gòu),以區(qū)分有或沒有頭盔的摩托車駕駛員與圖像,系統(tǒng)基于特征提取對象類。該系統(tǒng)使用YOLO-Darknet 深度學(xué)習(xí)框架,考慮到網(wǎng)絡(luò)的大小使用了YOLOv3-Tiny,通過以往在CO?CO 數(shù)據(jù)集上預(yù)訓(xùn)練,然后在摩托車檢測數(shù)據(jù)集上進(jìn)行微調(diào)來實現(xiàn)對摩托車駕駛員頭盔佩戴情況的檢測。針對現(xiàn)有的安全頭盔佩戴檢測正確率不高的問題,薛瑞晨等提出了一種改進(jìn)的YOLOv3。將空間與通道的注意力模塊進(jìn)行特征融合,并結(jié)合密集連接網(wǎng)絡(luò)來提高特征提取效果,并且引入了空間金字塔池化結(jié)構(gòu)以增強特征,檢測精確度能達(dá)到93.29%。劉琛等對主流的單階檢測網(wǎng)絡(luò)SSD-Net引入類似視覺機(jī)制的模塊,對網(wǎng)絡(luò)特征圖在通道和空間上進(jìn)行了權(quán)重的重新選擇,并增加了類似人類視覺偏心率機(jī)制的RFB 模塊。通過使用Mosaic 方法進(jìn)行數(shù)據(jù)增強,并采用余弦衰減學(xué)習(xí)率來優(yōu)化網(wǎng)絡(luò)。試驗結(jié)果表明改進(jìn)后的網(wǎng)絡(luò)對摩托車頭盔佩戴的檢測結(jié)果比原始SSD-Net 提升了4%的mAP(Mean Average Precision),具有更好的應(yīng)用效果,也被用于檢測摩托車駕駛員佩戴頭盔情況。王海寬等在Yo?lov3 網(wǎng)絡(luò)中加入跨階段局部網(wǎng)絡(luò)(CSPNet)來改進(jìn)darknet53 的骨干網(wǎng)絡(luò),降低了計算成本,其次通過空間金字塔池(SPP)結(jié)構(gòu),結(jié)合自上而下和自下而上的特征融合策略來改進(jìn)多尺度預(yù)測網(wǎng)絡(luò),達(dá)到特征增強和提升精度。Tan 等基于YOLOv5 增加檢測的尺度來獲取更小的目標(biāo),然后用DIoU-NMS 代替NMS,使其在抑制預(yù)測的邊界框時更加準(zhǔn)確,該算法顯著提高了精度,可滿足實時檢測的需要。為了加強對施工人員的安全監(jiān)督,提高檢查效率,Zhou 等對YOLOv4 算法的卷積神經(jīng)網(wǎng)絡(luò)的損失函數(shù)進(jìn)行替換,通過改變注意力機(jī)制來提高檢測網(wǎng)絡(luò)對于微小物體的敏感度,并且添加參數(shù)來解決類別不平衡的問題。試驗結(jié)果表明,改進(jìn)的算法提高了網(wǎng)絡(luò)模型在檢測和識別安全頭盔佩戴的準(zhǔn)確性。
采用候選框的雙階段檢測算法準(zhǔn)確率較高,但是網(wǎng)絡(luò)的模型較大且結(jié)構(gòu)復(fù)雜,運算量大,檢測的速度較慢。目前較為受歡迎的單階段算法具有較好的檢測性能,特別是對簡單目標(biāo)來說,更能滿足實時性和準(zhǔn)確性的要求。
由于摩托車駕駛環(huán)境的多樣性、路況的復(fù)雜性,采集的圖片和視頻較為片面,現(xiàn)目前的數(shù)據(jù)集主要通過網(wǎng)絡(luò)進(jìn)行收集或者針對特定情況下拍攝的圖片和視頻獲得,圖片單一、數(shù)量也比較少,導(dǎo)致對模型的訓(xùn)練效果不是很好,從而影響模型的判斷力,降低了檢測精度。更全面的數(shù)據(jù)集應(yīng)涵蓋真實環(huán)境下所出現(xiàn)的情況,能夠提高模型在不同情況下的魯棒性。趙睿等對馬賽克數(shù)據(jù)增強方式進(jìn)行改進(jìn),增加了不同光照強度的小尺度樣本數(shù)據(jù)集,將圖片的拼接數(shù)量由原本的4張增加到了9張,增加小樣本的數(shù)量,剔除了多余的邊緣面積來加快模型的訓(xùn)練速度??紤]多種不同環(huán)境條件會增加數(shù)據(jù)集的多樣性,對提高模型的魯棒性有很大的幫助。
對于遠(yuǎn)距離頭盔的檢測仍存在可用的特征少、定位精度不高、小目標(biāo)易聚集問題,很難提高檢測精度,摩托車的頭盔檢測比施工現(xiàn)場復(fù)雜,遠(yuǎn)處有更多的小目標(biāo)。此外,在騎行過程中,目標(biāo)的定位比較困難,駕駛員的頭腦更容易在圖像中聚集,從而引起車輛被遮蔽的問題,這給檢測任務(wù)帶來了更大的挑戰(zhàn)。
現(xiàn)在較先進(jìn)的YOLO 算法已經(jīng)能夠在速度和精度做到很好的平衡,針對遠(yuǎn)處小目標(biāo)和密集型目標(biāo)的檢測準(zhǔn)確率還是有很大的提升空間。近幾年也有許多研究者提出了相應(yīng)的改進(jìn)辦法,Wang等提出了一種改進(jìn)的基于YOLOv5 的頭盔佩戴檢測方法YO?LOv5s-FCG,在YOLOv5 系列中YOLOv5s 體積最小的基礎(chǔ)上,對網(wǎng)絡(luò)進(jìn)行改進(jìn),增加了淺層特征檢測層,將3 個尺度特征檢測改為4 個尺度的特征檢測,添加CBAM 注意力模塊,使用輕量級的Ghost Bottleneck 代替Bottleneck。該算法不僅保證了檢測率、體積、參數(shù)量,而且提高了檢測精度。對弱光、小目標(biāo)的復(fù)雜道路環(huán)境具有良好的適應(yīng)性。因此,針對非常普通的使用條件對算法進(jìn)行改進(jìn),能夠明顯提高檢測模型的實用性。
本文分別對傳統(tǒng)的機(jī)器視覺與基于深度學(xué)習(xí)的摩托車頭盔佩戴檢測算法進(jìn)行了綜述,早期實施的傳統(tǒng)方法在頭盔識別方面雖然能達(dá)到不錯的效果,但對于特征的選取主要依賴人為決定,而且需要較高的專業(yè)領(lǐng)域的知識和大量的人力和物力。另外,容易受天氣、光線和位置形態(tài)因素的干擾,算法相對復(fù)雜,而且性價比不高。而使用卷積神經(jīng)網(wǎng)絡(luò)對圖片自動進(jìn)行由淺到深的特征提取,使模型能夠?qū)W到數(shù)據(jù)中更高層次的信息,并且隨著數(shù)據(jù)集質(zhì)量的越高,模型提取特征層次的能力就越強?;谏疃葘W(xué)習(xí)的單階段算法比雙階段算法的模型更簡單,檢測速度也能滿足實時檢測的要求。但針對目前數(shù)據(jù)集的質(zhì)量、應(yīng)對復(fù)雜特征的識別能力還有待提高。
不同模型的訓(xùn)練流程和策略都不同,當(dāng)前的目標(biāo)檢測模型具有更復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)和優(yōu)化目標(biāo)。未來,不同的優(yōu)化方法應(yīng)被更多地應(yīng)用到各個算法當(dāng)中。主要從數(shù)據(jù)、網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化、損失函數(shù)、訓(xùn)練調(diào)參方面進(jìn)行改進(jìn)。主要的目的在于未來摩托車頭盔檢測網(wǎng)絡(luò)能達(dá)到高精度、高速度、較強的泛化能力。將改進(jìn)后的模型能應(yīng)用于計算量小的嵌入式設(shè)備中,比如交通部門的智能監(jiān)控、摩托車安全啟動系統(tǒng)監(jiān)測設(shè)備中。一方面,加強對摩托車戴頭盔佩戴情況實時監(jiān)督,降低摩托車駕駛違規(guī)行為,從而提高行駛安全性并保障道路交通順暢。另一方面,隨著交通的智能化發(fā)展,將頭盔佩戴情況的實時檢測器與摩托車頭盔提醒系統(tǒng)結(jié)合起來,并使用后臺服務(wù)器進(jìn)行記錄,搭載提醒式的摩托車可以減少非法行為的發(fā)生,對摩頭車智能駕駛的發(fā)展有一定研究意義。