黃原有,陽(yáng) 韜,張楊志
(華南理工大學(xué)廣州學(xué)院,廣州 510800)
基于人臉識(shí)別的車輛安全系統(tǒng)主要通過(guò)Jetson Nano人工智能處理器驅(qū)動(dòng)攝像頭,采集駕駛位司機(jī)的圖片,通過(guò)4G模組將圖片信息上傳到云服務(wù)器端。服務(wù)器端將接收到的圖片采用Mctnn模型進(jìn)行人臉的檢測(cè),并將其轉(zhuǎn)化為灰度圖,保存圖片。最后,將司機(jī)的圖片導(dǎo)入訓(xùn)練精度達(dá)到90%的模型進(jìn)行圖片的預(yù)測(cè),如若圖片的相似度為大于80%,識(shí)別為司機(jī),否則將識(shí)別為陌生人。與此同時(shí),服務(wù)器端將識(shí)別的記錄保存,并發(fā)出警報(bào)消息給車主的手機(jī)App和關(guān)閉汽車的能源電池,以提高車輛的安全性。目前發(fā)展的車輛安全系統(tǒng)[1],主要是采用一些傳感器監(jiān)測(cè)車輛的駕駛狀態(tài),反饋給后臺(tái)管理系統(tǒng)。而人臉識(shí)別[2]車輛安全系統(tǒng),主要是基于卷積神經(jīng)網(wǎng)絡(luò)對(duì)采集到的司機(jī)圖片進(jìn)行模型的訓(xùn)練,每一輪將預(yù)測(cè)訓(xùn)練集圖片的值和圖片的標(biāo)簽值進(jìn)行比較,差值越小,模型的訓(xùn)練精度越高,訓(xùn)練好模型后保存。在實(shí)際應(yīng)用中,則放入采集的司機(jī)圖片導(dǎo)入模型,進(jìn)行匹配,識(shí)別司機(jī)是否為陌生人。因此,可用人臉識(shí)別安全系統(tǒng)來(lái)提高車輛的安全性,也可應(yīng)用于一些大客車,識(shí)別駕駛司機(jī)是否為公司聘請(qǐng)的專業(yè)司機(jī),以此來(lái)保證乘車人員的安全。
圖1 系統(tǒng)整體設(shè)計(jì)
如圖1所示,基于人臉識(shí)別的安全系統(tǒng),主要是通過(guò)Jetson Nano智能處理器驅(qū)動(dòng)攝像頭,采集駕駛位司機(jī)的圖片,并通過(guò)處理器上的4G模組將圖片信息上傳到服務(wù)器,并保存原圖像,以便當(dāng)識(shí)別司機(jī)為陌生人時(shí),能獲取犯罪嫌疑人的證據(jù)。云服務(wù)端并將采集到的圖片信息導(dǎo)入模型進(jìn)行圖片的匹配,當(dāng)預(yù)測(cè)圖片的相似度小于80%,則認(rèn)為是陌生人。服務(wù)器將通過(guò)4G模組發(fā)送識(shí)別失敗的信息給Jetson Nano智能處理器,Jetson Nano則通過(guò)GPIO串口將識(shí)別的結(jié)果發(fā)送給Stm32單片機(jī)。Stm32接收到識(shí)別的信息后將發(fā)送語(yǔ)音信號(hào)給語(yǔ)音模塊使其發(fā)出識(shí)別失敗的語(yǔ)音提示和報(bào)警聲,并發(fā)送控制信號(hào)給繼電器[3]關(guān)閉能源電池。除此之外,服務(wù)器端還會(huì)推送汽車被盜或者非法人員駕駛的預(yù)警信息給手機(jī)App,通知車主其車輛處于報(bào)警狀態(tài)。當(dāng)預(yù)測(cè)照片的相似度大于80%,則識(shí)別為司機(jī),服務(wù)器端發(fā)送識(shí)別成功信息給Jetson Nano智能處理器,隨后Jetson Nano將識(shí)別信息傳給Stm32單片機(jī),單片機(jī)將使汽車的電源開啟,并發(fā)出識(shí)別成功的語(yǔ)音信號(hào)。
系統(tǒng)的硬件部分主要包括Stm32f407、Jetson Nano人工智能處理器、攝像頭、4G模塊、語(yǔ)音模塊、繼電器等。硬件系統(tǒng)只需用Jetson Nano人工智能處理器驅(qū)動(dòng)攝像頭獲取駕駛位圖像信息,并將圖像的信息通過(guò)4G模塊上傳到云服務(wù)器進(jìn)行人臉識(shí)別模型的訓(xùn)練,最終用訓(xùn)練好的模型來(lái)識(shí)別人臉圖片,輸出識(shí)別結(jié)果,并將信息回傳給Jetson Nano人工智能處理器。Jetson Nano則將識(shí)別結(jié)果信息轉(zhuǎn)發(fā)給底層的Stm32f407單片機(jī)。Stm32f407收到識(shí)別的結(jié)果后,將根據(jù)識(shí)別的結(jié)果來(lái)控制語(yǔ)音模塊和繼電器。若識(shí)別為司機(jī),Stm32f407則通過(guò)GPIO發(fā)送語(yǔ)音信號(hào)給語(yǔ)音模塊使其發(fā)出識(shí)別成功語(yǔ)音提示,并且通過(guò)GPIO發(fā)送控制信號(hào)控制繼電器進(jìn)而開啟控制能源電池。若識(shí)別失敗,Stm32f407則發(fā)送報(bào)警的語(yǔ)音信號(hào)給語(yǔ)音模塊,并發(fā)送控制信號(hào)給繼電器,關(guān)閉能源電池。
軟件系統(tǒng)的設(shè)計(jì)如圖2所示,系統(tǒng)正式投用之前需要錄入司機(jī)的人臉信息,進(jìn)行模型的訓(xùn)練[4]。首先攝像頭會(huì)以視頻的方式采集上萬(wàn)張司機(jī)的照片,進(jìn)行人臉檢測(cè),并轉(zhuǎn)化成灰度圖,使得圖像的維度下降但能保留圖像的關(guān)鍵信息,這可以減少程序的計(jì)算量,提升運(yùn)算速度。將其保存好后,則采用卷積神經(jīng)網(wǎng)絡(luò)對(duì)圖片信息進(jìn)行卷積、池化、全連接輸出、并與訓(xùn)練集的標(biāo)簽值進(jìn)行差值比較,最后調(diào)整學(xué)習(xí)速率,再進(jìn)行下一輪的學(xué)習(xí),當(dāng)預(yù)測(cè)值和標(biāo)簽值接近時(shí),則訓(xùn)練停止。即模型訓(xùn)練的精確度提高到85%時(shí),則停止訓(xùn)練,并保存模型。
圖2 模型訓(xùn)練流程
圖3 人臉識(shí)別流程
訓(xùn)練完模型之后將進(jìn)行人臉識(shí)別的過(guò)程如圖3所示,攝像頭會(huì)采集駕駛位的人臉圖片,并上傳到云服務(wù)器。程序則將讀取服務(wù)器上的圖像,采用Mtcnn模型進(jìn)行人臉的檢測(cè),并對(duì)圖片做進(jìn)一步的處理后,并作為模型的測(cè)試集導(dǎo)入模型,進(jìn)行圖片的人臉識(shí)別。若圖片中的人臉與司機(jī)相似度達(dá)到80%以上,認(rèn)為識(shí)別成功,將識(shí)別結(jié)果發(fā)送給Jetson Nano人工智能處理器,使得底層的語(yǔ)音模塊發(fā)出識(shí)別成功的語(yǔ)音提示和開啟汽車電源,汽車啟動(dòng)。否則識(shí)別為陌生人,推送消息通知司機(jī)陌生人進(jìn)入車輛,并將識(shí)別的信息發(fā)送給Jetson Nano人工智能處理器,使系統(tǒng)發(fā)出識(shí)別失敗的警報(bào)聲并且關(guān)閉汽車的能源電池。
對(duì)采集的圖片進(jìn)行人臉檢測(cè)處理,采用了Mtcnn模型,最后輸出人臉的邊框位置。對(duì)于Mtcnn模型進(jìn)行人臉檢測(cè)的過(guò)程如圖4所示。首先,將原圖片縮放成多個(gè)大小不同的圖片構(gòu)成一個(gè)圖像金字塔。隨后將圖像金字塔的圖片傳入到P-net層,生成多個(gè)人臉候選框,并截取候選框的圖片傳入到R-net。R-net對(duì)接收到的每個(gè)分散圖片進(jìn)行人臉的檢測(cè)和評(píng)分,并且修正人臉框。得到修正的人臉框后,則將人臉框的圖像截取出來(lái),傳入到O-net進(jìn)行再次的人臉檢測(cè)和評(píng)分,得到最終的人臉框位置。最后將人臉框截取出來(lái),并轉(zhuǎn)化成灰度圖,用于接下來(lái)的模型訓(xùn)練。
人臉識(shí)別的模型采用的是卷積神經(jīng)網(wǎng)絡(luò),對(duì)圖片信息就行卷積、池化、全連接輸出、并與訓(xùn)練集的標(biāo)簽值進(jìn)行差值比較,最后得到模型訓(xùn)練精度的過(guò)程。
圖4 人臉檢測(cè)過(guò)程
如圖5所示,卷積[5]就是對(duì)預(yù)處理后的人臉圖片信息用一個(gè)卷積[7]核Filter依次掃描圖片的矩陣信息并與Filter矩陣對(duì)應(yīng)位置的數(shù)值相乘[6],作為下一層的一個(gè)節(jié)點(diǎn)。當(dāng)掃描完圖片的所有信息后,將會(huì)得到一個(gè)Maps矩陣即為第一次卷積的輸出值。
池化[7]的目的就是降維,將圖片的特征信息提取出來(lái),去掉無(wú)用的信息,最后形成一個(gè)維度更低的矩陣。這樣可以防止過(guò)擬合,也能減少計(jì)算機(jī)對(duì)數(shù)據(jù)的處理量。在池化的過(guò)程中,大多數(shù)采用的是Max poling方法。如圖6所示,Max pooling方法就是對(duì)每個(gè)2×2的filter區(qū)域,取最大值,最終輸出一個(gè)降維的矩陣。
圖5 卷積過(guò)程
全連接的過(guò)程是將池化層的輸出x作為全連接層的輸入,將其乘以權(quán)重系數(shù)w,再加上偏置項(xiàng)b,得到輸出out的值。最后將輸出的out值,通過(guò)Softmax函數(shù)傳遞,將會(huì)得到一個(gè)對(duì)圖像屬于各類別的概率值。對(duì)于這一輪的全連接得出的分類結(jié)果為概率最后的那一類。
基于以上所建立的人臉識(shí)別[8-9]模型,本實(shí)驗(yàn)則抽取5位測(cè)試人員進(jìn)行測(cè)試。首先將采集這5位測(cè)試人員的人臉圖片經(jīng)過(guò)預(yù)處理后,進(jìn)行模型的訓(xùn)練,并紀(jì)錄訓(xùn)練的情況,如圖7所示。由圖可知,無(wú)論是采用0.01、0.02還是0.03的學(xué)習(xí)率進(jìn)行訓(xùn)練,模型的訓(xùn)練精度都隨著訓(xùn)練的次數(shù)的增加而提高,最后趨向一個(gè)穩(wěn)定的訓(xùn)練精度。并從圖中可看出,采用0.01的學(xué)習(xí)速率時(shí),訓(xùn)練的精確度是最高的,效果也是最好的。因此,保存采用0.01學(xué)習(xí)的速率訓(xùn)練的模型。
圖8 測(cè)試人員相似度表
采用訓(xùn)練好的模型依次對(duì)5位測(cè)試人員,進(jìn)行人臉識(shí)別的測(cè)試,輸出識(shí)別的相似度,并記錄數(shù)據(jù),如圖8所示。由圖可知,測(cè)試人員圖片的相似度均在80%以上。由此可看出,該模型的整體識(shí)別率比較高。
以下是后端對(duì)采集的圖片進(jìn)行識(shí)別的效果圖,圖9所示為一個(gè)人的識(shí)別結(jié)果,并表示識(shí)別出當(dāng)前司機(jī)為hyy,圖10所示為兩個(gè)人臉的識(shí)別,識(shí)別出當(dāng)前駕駛位的人員是hyy和dsj。圖11所示為測(cè)試人員是沒(méi)有事先進(jìn)行信息的采集和訓(xùn)練的,因此,系統(tǒng)識(shí)別出該測(cè)試人員為stranger。
圖9 一個(gè)人的識(shí)別結(jié)果
圖10 兩個(gè)人臉的識(shí)別
圖11 stranger識(shí)別結(jié)果
本文研究基于人臉識(shí)別的車輛安全系統(tǒng),主要是運(yùn)用人臉識(shí)別技術(shù),對(duì)駕駛司機(jī)進(jìn)行人臉識(shí)別,進(jìn)而控制汽車的啟動(dòng)電源,以達(dá)到控制的汽車啟動(dòng)。除此之外,識(shí)別司機(jī)的記錄信息也將存儲(chǔ)在服務(wù)器中,以便查詢來(lái)訪車內(nèi)的駕駛?cè)藛T。當(dāng)識(shí)別出駕駛位不是司機(jī)本人時(shí),則將保持汽車電源的關(guān)閉,并發(fā)出警報(bào)給用戶。若識(shí)別當(dāng)前人臉為司機(jī)本人,則開啟汽車電源,啟動(dòng)汽車。這有效提高了車輛的防盜性和車輛駕駛時(shí)的安全性,有效避免非法人員駕駛公共汽車,并對(duì)乘客造成傷害。