張魯江
(濱州學(xué)院 信息工程學(xué)院,濱州 256600)
當(dāng)今世界每天都有大量的交通事故發(fā)生[1],其中碰撞事故占交通事故總量的90%左右[2].當(dāng)碰撞事故發(fā)生時(shí),如果車輛能夠自動發(fā)出報(bào)警,則有助于降低事故的死亡率,這種技術(shù)稱為車輛緊急呼叫(Automatic Crash Notification)系統(tǒng),調(diào)查表明該技術(shù)能有效的降低車禍的死亡率[3,4].因?yàn)槿绻本炔块T能夠在第一時(shí)間收到報(bào)警信息,則可以迅速出動進(jìn)行搶救,從而避免因延誤造成的死亡.實(shí)現(xiàn)車輛自動報(bào)警的前提是車輛碰撞的自動檢測,這種技術(shù)對于社會上的一些行業(yè)也很有價(jià)值.例如,保險(xiǎn)公司為車險(xiǎn)業(yè)務(wù)推出了雙免服務(wù),但騙保導(dǎo)致的理賠風(fēng)險(xiǎn)增大,因此希望能夠自動檢驗(yàn)車輛事故的真?zhèn)?而出租車公司和物流公司等擁有大量車輛的企業(yè)需要實(shí)時(shí)監(jiān)控車輛的運(yùn)行狀況.
車輛碰撞的自動檢測可分為兩大類:一類是碰撞的預(yù)警檢測,也就是預(yù)測行駛中的車輛可能發(fā)生的碰撞[5-7],從而提前發(fā)出警告;另一類是碰撞事件的檢測[8],也就是碰撞發(fā)生后的實(shí)時(shí)檢測.本文的研究屬于后者.目前此類研究多集中于車輛被動式安全系統(tǒng)的碰撞檢測,文獻(xiàn)[8]綜述了該領(lǐng)域常用的碰撞檢測算法,由于主要應(yīng)用于安全氣囊等被動式防護(hù)系統(tǒng)的碰撞觸發(fā),必須在極短的時(shí)間內(nèi)完成碰撞的識別,以便給防護(hù)系統(tǒng)的點(diǎn)火啟動留下足夠的時(shí)間,因此只能進(jìn)行簡單的計(jì)算,如速度和加速度的變化率、位移和變形、信號的能量與功率等.當(dāng)計(jì)算結(jié)果超過某個(gè)閾值時(shí),則認(rèn)為發(fā)生碰撞,經(jīng)驗(yàn)公式的色彩濃厚.而且只能判斷是否發(fā)生碰撞,而無法判斷車輛的損傷程度.
本文提出了一種基于機(jī)器學(xué)習(xí)的車輛碰撞檢測方法.該方法用于車輛的遠(yuǎn)程監(jiān)控,而非車輛被動式安全系統(tǒng).不但能檢測碰撞是否發(fā)生,還能同時(shí)檢測車輛的損傷程度.由于使用機(jī)器學(xué)習(xí)方法[9]對車輛的信號進(jìn)行分析,因此具有更好的適應(yīng)性.
車輛碰撞時(shí)產(chǎn)生的信號明顯異于正常行駛狀態(tài)下信號[10].圖1是車輛的加速度信號曲線圖,其中脈沖部分是車輛發(fā)生碰撞時(shí)的信號,而相對平坦的部分則是正常行駛時(shí)的信號,由圖中可以看出,兩類信號的區(qū)別比較明顯.檢測碰撞事件就是從采集到的信號中識別出碰撞信號,但是碰撞類型不同,碰撞信號也會有所變化.圖1(a)和圖1(b)分別是不同碰撞場景下產(chǎn)生的信號,具有明顯的差異.簡單的計(jì)算難以將各類碰撞信號都識別出來,應(yīng)當(dāng)使用機(jī)器學(xué)習(xí)算法進(jìn)行分類.
系統(tǒng)實(shí)時(shí)的采集速度和加速度信號.X 方向的加速度信號和Y 方向的加速度信號分別采集,X 方向是車輛行駛的方向,Y 方向是與車輛行駛方向垂直的方向.速度信號不考慮方向,只考慮大小.采集信號時(shí),將時(shí)間劃分為均勻的段,每一段是一個(gè)采樣窗口,窗口尺寸根據(jù)經(jīng)驗(yàn)值設(shè)定.每采集滿一個(gè)窗口,就分析判斷該窗口內(nèi)的信號是正常信號還是碰撞信號.
如果是碰撞信號,則進(jìn)一步判斷車輛的損傷程度.直接判斷整車的損傷程度比較困難,而判斷車輛各部件的損傷程度則相對容易.此外,要獲得關(guān)于車輛損傷的完整信息,需要知道各部件的損傷程度.車輛發(fā)生時(shí)碰撞時(shí),沖擊力會作用至各個(gè)部件,對不同的部件造成不同程度的損傷,判斷部件的損傷程度本質(zhì)上是將沖擊信號映射至部件損傷程度的過程.機(jī)器學(xué)習(xí)中的核方法具有強(qiáng)大的非線性映射能力,建立在核方法基礎(chǔ)上的支持向量機(jī)具有出色的分類能力[11].先使用支持向量機(jī)判斷各部件的損傷程度,然后將各部件的損傷程度作為支持向量機(jī)的輸入特征,判斷整車的損傷程度.
圖1 轎車碰撞的橫向加速度信號曲線
如圖2所示,在每輛汽車上安裝一部前端設(shè)備,通過車載無線網(wǎng)絡(luò)[12]和一個(gè)后臺服務(wù)器相聯(lián).前端設(shè)備的處理流程如圖3所示:實(shí)時(shí)的采集車輛的速度和加速度信號,每采集滿一個(gè)窗口,就從信號中抽取特征,然后用簡單的算法初步判斷是否發(fā)生碰撞,將可能的碰撞信號發(fā)送給后臺服務(wù)器.這相當(dāng)于對所有信號先做個(gè)過濾,留下候選的碰撞信號.前端設(shè)備因?yàn)橛袑?shí)時(shí)性的要求,因此只能進(jìn)行簡單的計(jì)算,并且不對信號做濾波處理.
圖2 系統(tǒng)架構(gòu)示意圖
后臺服務(wù)器的處理流程如圖4所示:接收前端設(shè)備發(fā)來的信號,對信號進(jìn)行濾波并抽取特征,然后使用機(jī)器學(xué)習(xí)算法確認(rèn)是否發(fā)生碰撞;如果發(fā)生則進(jìn)一步判斷各部件的損傷程度,并在此基礎(chǔ)上判斷整車的損傷程度.
圖4 后臺服務(wù)器的處理流程
在碰撞的過程中,加速度的信號變化劇烈,包含了噪聲成分(如圖1所示),需要對加速度信號進(jìn)行濾波,以便從中提取穩(wěn)定的特征.在實(shí)驗(yàn)的基礎(chǔ)上,確定使用切比雪夫I 型低通濾波器[13].速度信號不需要濾波,取窗口中的速度最大值作為特征.
從車輛的速度和加速度信號中提取兩類特征,一類用于判斷碰撞是否發(fā)生,另一類用于判斷部件的損傷程度.X 方向的加速度信號和Y 方向的加速度信號各自提取一組相同的特征,然后合并成一個(gè)向量.在前端設(shè)備上提取特征不需要濾波,而在后臺服務(wù)器上提取特征要先進(jìn)行濾波.
設(shè)系統(tǒng)從t0時(shí)刻開始采集信號,ti時(shí)刻的采樣信號為sti,i=0,1,2···,采樣窗口尺寸為h,Δt=sti?sti?1為采樣時(shí)間間隔.信號流 (st0,st1,st2,···)的第1 個(gè)采樣窗口為w1=(st0,st1,···,sth?1),第k個(gè)采樣窗口為wk=(st(k?1)h,st(k?1)h+1,···,stkh?1),k=1,2,···.
判斷車輛碰撞所使用的特征用V表示,V=[Vx,Vy],是X 方向加速度信號的特征,是Y 方向加速度信號的特征.具體包括:加速度絕對值的最大值加速度最大值與最小值的差值加速度的平均能量加速度曲線上各點(diǎn)斜率的絕對值的平均值
判斷各零件損傷程度所使用的特征用U表示,是X 方向的加速度信號的特征,是Y 方向的加速度信號的特征.具體包括:速度值(u0)、加速度絕對值的最大值加速度最大值和最小值的差值加速度最大值到最小值之間的平均能量加速度最大值到最小值的連線的斜率絕對值加速度最大值到最小值的橫坐標(biāo)距離加速度曲線上各點(diǎn)斜率的絕對值的平均值加速度信號離散傅里葉變換的0 到38 頻譜的各頻率幅值
不失一般性,設(shè)X 方向加速度信號的當(dāng)前采樣窗口為wx=(st1,st2,···,sth),則X 方向的特征計(jì)算公式為:
各特征的量綱或取值范圍不同,需要進(jìn)行歸一化處理,使用Z-score 方法,歸一化后各特征的取值范圍均為[-1,+1]
在前端設(shè)備初步判斷車輛是否發(fā)生碰撞,對實(shí)時(shí)性要求比較高,因此使用計(jì)算簡單的邏輯回歸[14].將碰撞信號錯(cuò)分為非碰撞信號的代價(jià)要遠(yuǎn)高于把非碰撞信號錯(cuò)分為碰撞信號的代價(jià),在前端設(shè)備寧愿將非碰撞信號誤分為碰撞信號,而在后臺服務(wù)器準(zhǔn)確判別時(shí)排除掉,也不愿將碰撞信號誤分為非碰撞信號,從而造成碰撞事件的漏報(bào).這屬于代價(jià)敏感學(xué)習(xí)問題,在使用邏輯回歸分類器時(shí),可以通過提高碰撞類別的樣本權(quán)重,而降低非碰撞類別的樣本權(quán)重來加以解決[15].由于希望碰撞信號的查全率盡可能高,因此還需要調(diào)低邏輯回歸的分類閾值,以便盡量不遺漏碰撞信號.
在后臺服務(wù)器判斷接收到的信號是否為碰撞信號,不存在迫切的實(shí)時(shí)性要求,而對準(zhǔn)確率的要求更高,因此使用支持向量機(jī)對碰撞信號進(jìn)行分類.判斷各部件的損傷程度同樣使用支持向量機(jī),這是個(gè)非線性分類問題,借助核方法將信號從輸入空間映射到高維的特征空間,從而提高該問題的線性可分性.將各部件的損傷程度作為支持向量機(jī)的輸入特征,可以判斷出整車的損傷程度.不管是仿真碰撞還是實(shí)車碰撞,想獲得足夠多的碰撞樣例來訓(xùn)練深度神經(jīng)網(wǎng)絡(luò),在時(shí)間、成本以及計(jì)算力上都是很困難的,因此沒有使用目前流行的深度學(xué)習(xí)[16],而選擇非常適合于中小樣本的支持向量機(jī).
訓(xùn)練數(shù)據(jù)包括正常信號(非碰撞樣例) 和碰撞信號(碰撞樣例).每個(gè)碰撞樣例都由專業(yè)鑒定師判定各部件的損傷程度和整車的損傷程度.汽車上的部件很多,只考慮對車輛損傷起重要作用的部件.部件的損傷程度分為4 級,分別是1、2、3、4 級.從1 級到4 級損傷程度逐級加重,1 級表示沒有損傷,4 級表示損傷嚴(yán)重.整車的損傷級別與部件的相同,也是分為4 級.
給每個(gè)樣例標(biāo)上1 或0 的標(biāo)簽,1 表示碰撞樣例,0 表示非碰撞樣例,并標(biāo)注各個(gè)部件的損傷級別和整車的損傷級別.然后從每個(gè)樣例中都抽取用于判斷碰撞是否發(fā)生的特征和用于判斷部件損傷程度的特征.判斷部件的損傷程度時(shí),需要為每個(gè)部件單獨(dú)訓(xùn)練一個(gè)分類器,訓(xùn)練每個(gè)分類器都要復(fù)用所有的碰撞樣例,根據(jù)對某個(gè)部件造成的損傷級別,將每個(gè)樣例歸為4 類之一,如圖5所示.
圖5 判斷部件損傷程度的訓(xùn)練樣例復(fù)用示意圖
將一個(gè)碰撞樣例造成的各個(gè)部件的損傷級別作為支持向量機(jī)的輸入特征,可以判斷這個(gè)碰撞樣例對整車造成損傷程度.由于部件的損傷級別是有序的離散值,因此需要先使用Z-score 方法進(jìn)行歸一化處理.
實(shí)驗(yàn)數(shù)據(jù)來自實(shí)車的碰撞實(shí)驗(yàn).在實(shí)驗(yàn)中,選擇了有限方形剛性壁、防護(hù)欄、防撞桶、柱狀體、路緣石這5 種典型的碰撞物構(gòu)建5 種測試工況.每種工況生成160 個(gè)實(shí)驗(yàn)樣例,其中80 個(gè)為非碰撞樣例,80 個(gè)為碰撞樣例.在訓(xùn)練時(shí),使用k-折交叉驗(yàn)證調(diào)優(yōu)超參數(shù),k的值取4.
在前端設(shè)備把碰撞信號誤分為非碰撞信號的代價(jià)要高于把非碰撞信號誤分為碰撞信號的代價(jià),因此要盡量做到不遺漏碰撞信號.這屬于代價(jià)敏感學(xué)習(xí)問題,可以通過調(diào)整類別權(quán)重來解決,在使用邏輯回歸分類時(shí),將碰撞類別的權(quán)重設(shè)為0.6,而非碰撞類別的權(quán)重設(shè)為0.4.同時(shí),為了提高碰撞信號的查全率,將分類閾值降低為0.4.將每種工況的實(shí)驗(yàn)樣例按照3:1 的比例分裂為訓(xùn)練樣例和測試樣例,將所有的訓(xùn)練樣例合在一起組成訓(xùn)練集,而各個(gè)工況的測試樣例單獨(dú)組成測試集,以便觀察各個(gè)工況的測試結(jié)果.
測試結(jié)果如表1所示,提供碰撞類別的查全率和查準(zhǔn)率兩個(gè)性能指標(biāo).從表中可以看出,碰撞類別的查全率在4 個(gè)工況上達(dá)到100%,查準(zhǔn)率也都超過了90%.由于碰撞信號和非碰撞信號的區(qū)別明顯,因此即使邏輯回歸這種簡單的分類器也能以較高的準(zhǔn)確率進(jìn)行區(qū)分.
表1 在前端設(shè)備檢測碰撞信號的測試結(jié)果(%)
當(dāng)前端設(shè)備檢測出可能的碰撞信號后,將信號發(fā)送給后臺服務(wù)器,使用準(zhǔn)確率更高的支持向量機(jī)判斷該信號是否是碰撞信號.后臺服務(wù)器使用的訓(xùn)練數(shù)據(jù)和前端設(shè)備的訓(xùn)練數(shù)據(jù)相同,而將前端設(shè)備在測試過程中發(fā)送給后臺服務(wù)器的信號作為測試數(shù)據(jù).實(shí)驗(yàn)結(jié)果如表2所示,多數(shù)工況達(dá)到了100%的準(zhǔn)確率.由于實(shí)驗(yàn)數(shù)據(jù)有限,這并不意味著分類器具有100%的泛化性能,有待使用更多的實(shí)驗(yàn)數(shù)據(jù)進(jìn)行測試.
表2 在后臺服務(wù)器確認(rèn)碰撞信號的測試結(jié)果(%)
當(dāng)后臺服務(wù)器確認(rèn)發(fā)生碰撞后,接下來判斷各部件的損傷程度.將各個(gè)工況的碰撞樣例合在一起,按照3:1 的比例分裂為訓(xùn)練集和測試集,然后按照2.3 節(jié)所述的方式(見圖5)為各個(gè)部件組織訓(xùn)練集,為每個(gè)部件訓(xùn)練一個(gè)支持向量機(jī)分類器.總共有100 個(gè)測試樣例,其中每個(gè)測試樣例都要分別用每個(gè)部件的分類器測試一下.測試結(jié)果如表3所示,大多數(shù)部件的準(zhǔn)確率較高,少數(shù)部件的準(zhǔn)確率低于80%.從測試結(jié)果來看,對于部件損傷程度的判斷還有待改進(jìn)提高.
當(dāng)判斷出車輛各部件的損傷程度后,接下來使用支持向量機(jī)判斷整車的損傷程度.訓(xùn)練集與3.3 節(jié)的相同,而測試數(shù)據(jù)則由3.3 節(jié)的100 個(gè)測試樣例的輸出結(jié)果構(gòu)成,也就是將每個(gè)碰撞樣例造成的各部件的損傷級別作為輸入特征.測試結(jié)果如表4所示,分類準(zhǔn)確率不高.由于將3.3 節(jié)的測試結(jié)果作為輸入特征,因此3.3 節(jié)的分類錯(cuò)誤會影響本階段的分類準(zhǔn)確率.但測試結(jié)果表明該方法是有效的,遠(yuǎn)高于隨機(jī)猜測的準(zhǔn)確率.
表3 在后臺服務(wù)器判斷各部件損傷程度的測試結(jié)果(%)
表4 后臺服務(wù)器判斷整車損傷程度的測試結(jié)果(%)
提出了一種基于機(jī)器學(xué)習(xí)技術(shù)的碰撞檢測方法,用于車輛的遠(yuǎn)程監(jiān)控,可以實(shí)時(shí)的檢測車輛的碰撞事件.以往的碰撞檢測算法多用于車輛被動安全系統(tǒng)的觸發(fā),難以用于車輛的在線監(jiān)控,且只能檢測碰撞是否發(fā)生.本文提出的方法除了能檢測碰撞是否發(fā)生,還能檢測車輛的損傷程度,從而提供更全面的信息.從實(shí)驗(yàn)結(jié)果來看,該方法對于碰撞事件的檢測達(dá)到了較高的準(zhǔn)確率,對于碰撞損傷的檢測也是有效的.