上海中安電子信息科技有限公司 高 文
駕駛員的行為不僅會(huì)對(duì)自身安全產(chǎn)生影響,也會(huì)對(duì)整體交通安全產(chǎn)生影響。通過實(shí)時(shí)檢測(cè)駕駛員的不良行為,對(duì)駕駛員進(jìn)行有效的監(jiān)督和警示,可以減少惡性交通事故發(fā)生的概率,提高交通的整體安全性。本文研究基于深度神經(jīng)網(wǎng)絡(luò)的駕駛員行為檢測(cè)方法,通過構(gòu)建用于目標(biāo)檢測(cè)的深度神經(jīng)網(wǎng)絡(luò)Mask R-CNN,并在樣本圖像庫上對(duì)該神經(jīng)網(wǎng)絡(luò)進(jìn)行精調(diào),使之能夠識(shí)別出駕駛員的頭部、手、方向盤、手機(jī)、香煙、座椅等多個(gè)目標(biāo),定位邊框位置和大小,從而檢測(cè)出駕駛員雙手不握方向盤、單手握方向盤、吸煙、打手機(jī)、脫崗等多種危險(xiǎn)駕駛行為。
目標(biāo)檢測(cè)是計(jì)算機(jī)視覺領(lǐng)域的一個(gè)非常具有挑戰(zhàn)的研究課題,它的任務(wù)是找出圖像當(dāng)中所有感興趣的目標(biāo),確定其位置和大小。
傳統(tǒng)的目標(biāo)檢測(cè)方法,大致分為三個(gè)步驟:首先是區(qū)域選擇,一般采用滑動(dòng)窗口的策略對(duì)整幅圖像進(jìn)行遍歷,通過不同尺寸,不同長寬比的滑動(dòng)窗口能選出不同大小的目標(biāo)所在的區(qū)域。然后是特征提取,通常采用Haar特征、蓋伯特征、LBP特征、HOG特征、SIFT特征等對(duì)行人和普通目標(biāo)進(jìn)行檢測(cè)。最后,通過之前的特征,使用已經(jīng)訓(xùn)練好的分類器如SVM,Adaboost等進(jìn)行分類。
傳統(tǒng)的目標(biāo)檢測(cè)方法有如下幾個(gè)問題:光線變化較快時(shí),算法效果不好;緩慢運(yùn)動(dòng)和背景顏色一致時(shí),不能提取特征像素點(diǎn);時(shí)間復(fù)雜度高;抗噪性能差。近年來,隨著深度學(xué)習(xí)的發(fā)展,基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)算法逐漸成為主流。其優(yōu)勢(shì)在于可以根據(jù)數(shù)據(jù)集自動(dòng)提取特征,而且對(duì)形變、光照等變化具有一定程度的不變性。
基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法主要分為兩個(gè)關(guān)鍵子任務(wù):目標(biāo)分類、目標(biāo)定位。其中目標(biāo)分類主要負(fù)責(zé)判斷輸入的圖像區(qū)域內(nèi)是否有目標(biāo)物體,并返回表明該區(qū)域內(nèi)存在感興趣的物體的分?jǐn)?shù),即可能性的標(biāo)簽。目標(biāo)定位則負(fù)責(zé)確定輸入的圖像區(qū)域中感興趣物體的位置和范圍,通常返回bbox(bounding box)來表示物體的位置信息。
目前基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法大致分為:
(1)基于回歸區(qū)域的目標(biāo)檢測(cè)(One-Stage):這類檢測(cè)算法不需要生成候選區(qū)域,通常采用一個(gè)階段直接產(chǎn)生物體的bbox和類別概率。把目標(biāo)對(duì)象的檢測(cè)問題直接作為一個(gè)位置坐標(biāo)和置信度評(píng)分的回歸問題來處理,可一次性實(shí)時(shí)預(yù)測(cè)多個(gè)目標(biāo)對(duì)象的類別和邊框位置。目前主流的算法有SSD模型,YOLO模型等。
(2)基于候選區(qū)域的目標(biāo)檢測(cè)(Two-Stage):這類檢測(cè)算法分為兩個(gè)步驟,首先對(duì)輸入的圖像生成候選區(qū)域,之后在步驟二中對(duì)該候選區(qū)域進(jìn)行分類。預(yù)先找出圖中目標(biāo)可能出現(xiàn)的位置,通過利用圖像中的紋理、邊緣、顏色等信息,保證在選取較少窗口的情況下保持較高的召回率。目前主流的算法有Faster R-CNN,Mask R-CNN模型等。
區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Regions with CNN features)使用深度模型來解決目標(biāo)檢測(cè)。首先對(duì)每一張輸入圖像使用選擇性搜索(Selective search),來選取多個(gè)高質(zhì)量的提議區(qū)域(region proposal);接著對(duì)每一個(gè)提議區(qū)域,將其縮放(warp)成卷積神經(jīng)網(wǎng)絡(luò)需要的輸入尺寸;然后選取一個(gè)預(yù)先訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò),去掉最后的輸出層來作為特征抽取模塊;然后將每一個(gè)提議區(qū)域提出的CNN特征輸入到支持向量機(jī)(SVM)來進(jìn)行物體類別分類;最后,對(duì)于支持向量機(jī)分好類的提議區(qū)域做邊框回歸,訓(xùn)練一個(gè)線性回歸模型來預(yù)測(cè)真實(shí)邊界框,校正原來的建議窗口,生成預(yù)測(cè)窗口坐標(biāo)。
R-CNN的主要性能瓶頸在于需要對(duì)每個(gè)提議區(qū)域(region proposal)獨(dú)立的抽取特征,這會(huì)造成區(qū)域會(huì)有大量重疊,獨(dú)立的特征抽取導(dǎo)致了大量的重復(fù)計(jì)算。因此,2015年出現(xiàn)的Fast R-CNN對(duì)R-CNN的一個(gè)主要改進(jìn)在于首先對(duì)整個(gè)圖像進(jìn)行特征抽取,然后再選取提議區(qū)域,從而減少重復(fù)計(jì)算。它將Fast R-CNN中的選擇性搜索替換成區(qū)域提議網(wǎng)絡(luò)(region proposal network)。RPN以錨框(anchors)為起始點(diǎn),通過一個(gè)小神經(jīng)網(wǎng)絡(luò)來選擇區(qū)域提議。
Faster R-CNN在物體檢測(cè)中已達(dá)到非常好的性能,Mask R-CNN在2018年被提出,在此基礎(chǔ)上更進(jìn)一步,對(duì)每一個(gè)目標(biāo)物體,不僅給出其邊界框,并且對(duì)邊界框內(nèi)的各個(gè)像素是否屬于該物體進(jìn)行標(biāo)記。Mask R-CNN和Faster R-CNN一樣是兩階段框架,第一階段掃描圖像生成候選框;第二階段根據(jù)候選框得到分類結(jié)果,邊界框,同時(shí)在原有Faster R-CNN模型基礎(chǔ)上添加分割分支,得到掩碼結(jié)果,實(shí)現(xiàn)了掩碼和類別預(yù)測(cè)關(guān)系的解耦。
Mask R-CNN算法具有以下特點(diǎn):
(1)分割任務(wù)與定位、分類任務(wù)是同時(shí)進(jìn)行的;
(2)引入了RoI Align代替Faster RCNN中的RoI Pooling;
(3)引入語義分割分支,實(shí)現(xiàn)了mask和類別預(yù)測(cè)的關(guān)系的解耦,mask分支只做語義分割,另一個(gè)分支進(jìn)行類型預(yù)測(cè)的任務(wù)。
以上海中安電子信息科技有限公司開發(fā)的“公交主動(dòng)安全預(yù)警系統(tǒng)”為例,需要利用專用攝像頭實(shí)時(shí)采集駕駛員的圖像和車輛前方行駛情況,通過對(duì)駕駛員臉部疲勞狀態(tài)、不安全駕駛行為進(jìn)行精確分析判斷,進(jìn)行聲音預(yù)警、人工調(diào)度干預(yù),從而減少交通事故發(fā)生。
對(duì)駕駛員行為檢測(cè)的預(yù)期目標(biāo)是:五種駕駛行為(雙手不握方向盤、單手握方向盤、吸煙、打手機(jī)、脫崗)同時(shí)檢測(cè)的平均時(shí)間不超過1s/每幅圖,并且算法準(zhǔn)確率和召回率不小于80%。
基于比較分析,我們挑選了基于PyTorch深度學(xué)習(xí)框架的Mask R-CNN算法作為目標(biāo)檢測(cè)的模版。輸入一張任意大小的駕駛室右側(cè)俯視攝像頭的圖像,通過設(shè)計(jì)并訓(xùn)練好的模型,檢測(cè)7種不同目標(biāo)的位置和大?。厚{駛員的手、駕駛員的頭部、手機(jī)、拿著手機(jī)的手、方向盤、香煙、空座椅。
考慮到在駕駛員與物體互動(dòng)的過程中,目標(biāo)距離近,目標(biāo)發(fā)生重疊,目標(biāo)較小的可能性廣泛存在。因要對(duì)目標(biāo)在圖像上的相對(duì)位置進(jìn)行判斷,所以對(duì)于目標(biāo)邊框的精確度要求交高。在Mask R-CNN框架中,特征提取選用ResNet-101-FPN,RoI選取RoI Align,Classifier選取全連接+softmax分類器。
對(duì)檢測(cè)結(jié)果進(jìn)行分析是一個(gè)多標(biāo)簽分類任務(wù),本系統(tǒng)中的四個(gè)標(biāo)簽的關(guān)聯(lián)性并不強(qiáng),可以直接采用一階策略進(jìn)行多標(biāo)簽分類任務(wù)對(duì)各個(gè)目標(biāo)進(jìn)行分析:如果駕駛員頭部與空駕駛員座椅均未檢出,則攝像頭已經(jīng)被遮擋;如果駕駛員頭部與手機(jī)、耳機(jī)距離近或重合,則該駕駛員在打電話;如果在圖像中檢測(cè)出香煙,則該駕駛員在抽煙;如果在圖像中檢測(cè)出空駕駛員座椅,或者駕駛員頭部未檢出,都可認(rèn)為該駕駛員已經(jīng)脫崗。
經(jīng)過200次實(shí)驗(yàn)驗(yàn)證,五種駕駛行為的識(shí)別準(zhǔn)確率接近90%,高于其它的目標(biāo)檢測(cè)算法。并且適用于重疊目標(biāo)檢測(cè)和小目標(biāo)檢測(cè),速度約為2fps,達(dá)到了我們的設(shè)計(jì)需求。
結(jié)論:由于無需進(jìn)行人工的特征設(shè)計(jì)、良好的特征表達(dá)能力及優(yōu)良的檢測(cè)精度,目前,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法已經(jīng)超越傳統(tǒng)檢測(cè)方法,成為當(dāng)前目標(biāo)檢測(cè)算法的主流。從R-CNN、FAST R-CNN、FASTER R-CNN、到MASK R-CNN,經(jīng)過三年時(shí)間的演進(jìn),計(jì)算機(jī)視覺領(lǐng)域取得了巨大的飛躍,我們可以在保持快速檢測(cè)數(shù)據(jù)的前提下,進(jìn)一步改進(jìn)了小物體的定位精度。在公共交通安全領(lǐng)域,有效解決了視頻存在運(yùn)動(dòng)模糊、遮擋、形態(tài)變化、光照變化、背景變化等檢測(cè)不準(zhǔn)確的問題,確保駕駛員的不良駕駛行為能被有效檢出,并提供主動(dòng)預(yù)警支持,從而提升了駕駛安全。