張文勝,岳 康
1.石家莊鐵道大學(xué) 交通運輸學(xué)院,石家莊 050043
2.河北省交通安全與控制重點實驗室,石家莊 050043
隨著社會經(jīng)濟(jì)的快速發(fā)展,我國汽車保有量及駕駛員數(shù)量迅猛增長。截至2019年,全國汽車保有量達(dá)2.62億輛,機動車駕駛?cè)诉_(dá)4.22億人。汽車保有量與駕駛員數(shù)量的上升,增加了交通事故的發(fā)生概率。2019年,全國道路交通事故萬車死亡人數(shù)高達(dá)1.80人[1],交通事故儼然成為全社會不可忽視的一個重大問題。相關(guān)研究表明,駕駛員因素是造成交通事故發(fā)生的主要因素,其中駕駛員的駕駛前風(fēng)險容忍度及駕駛中的不安全駕駛行為是引發(fā)交通事故的主要人為因素[2]。因此,針對違規(guī)駕駛員以及駕駛學(xué)習(xí)者進(jìn)行駕駛安全教育意義重大。
傳統(tǒng)的駕駛安全教育,受時間、場地、安全、成本等因素限制,培訓(xùn)效果難達(dá)到預(yù)期。因此,改進(jìn)傳統(tǒng)駕駛安全教育方式是提高駕駛員交通安全素養(yǎng)的重要途徑。Goodge等[3]研究發(fā)現(xiàn)虛擬現(xiàn)實技術(shù)在道路危險感知培訓(xùn)和評估方面較2D技術(shù)更具優(yōu)勢;Bari等[4]研究發(fā)現(xiàn)基于虛擬現(xiàn)實的訓(xùn)練削弱了人們對平交路口和超速行駛的冒險態(tài)度,證明了VR技術(shù)在促進(jìn)交通安全方面的潛力;趙曉華等[5]基于VR技術(shù),針對典型的違法駕駛行為,構(gòu)建了動態(tài)教育模式的駕駛安全教育系統(tǒng);Cutello等[6]通過讓年輕司機使用VR技術(shù)觀看道路安全電影,以減少年輕司機的危險駕駛行為;Hsu等[7]使用Unity3D開發(fā)了一款A(yù)ndroid手機游戲,通過VR游戲的方式增強駕駛安全的學(xué)習(xí)效果;León-Paredes等[8]開發(fā)了基于VR的系統(tǒng),讓用戶從旁觀者角度識別虛擬司機可能犯下的錯誤,并允許其進(jìn)行有意識的控制,以此提高用戶學(xué)習(xí)能力;Xie等[9]應(yīng)用VR技術(shù),構(gòu)建了多種災(zāi)難類型中的汽車事故案例,用以培養(yǎng)駕駛員在事故中的安全意識。
然而,上述研究主要集中于對駕駛員進(jìn)行游戲式的教育,增加了學(xué)習(xí)的趣味性,但應(yīng)用場景單一、系統(tǒng)交互性不足、教育內(nèi)容存在局限性,教育目的沒有從造成交通事故的駕駛員本身因素分析,缺乏對駕駛員安全認(rèn)知的深層教育。本文在引發(fā)交通事故的人因理論基礎(chǔ)上,提出基于VR技術(shù)的駕駛仿真及安全教育系統(tǒng),根據(jù)不同的人為因素,開發(fā)具有針對性的學(xué)習(xí)模塊,建立安全高效的學(xué)習(xí)模式,從而提升駕駛員危險感知能力及駕駛安全素養(yǎng),對減少交通事故發(fā)生具有較強的實際應(yīng)用性。
駕駛仿真及安全教育系統(tǒng)采用C/S架構(gòu),以Unity3D游戲引擎作為系統(tǒng)開發(fā)平臺。Unity3D作為實時3D內(nèi)容的創(chuàng)作平臺,被廣泛應(yīng)用于工業(yè)、教育等行業(yè)[10-11]。系統(tǒng)憑借其強大的渲染及資源整合能力,聯(lián)合3ds Max、SUMO等軟件,構(gòu)建駕駛仿真及安全教育系統(tǒng),系統(tǒng)總體架構(gòu)如圖1所示。
圖1 系統(tǒng)總體架構(gòu)Fig.1 System architecture
系統(tǒng)通過3ds Max及道路BIM構(gòu)建逼真的虛擬訓(xùn)練場景,將其導(dǎo)入Unity3D內(nèi),通過聯(lián)合SUMO軟件仿真道路車流,搭建科學(xué)合理的虛擬駕駛環(huán)境;使用HTC Vive及Logitech G29等沉浸式設(shè)備作為交互端,進(jìn)行駕駛行為仿真;同時根據(jù)駕駛風(fēng)險認(rèn)知及不安全駕駛行為教育需求,基于Unity3D實現(xiàn)屏幕特效,建立違規(guī)觸發(fā)機制,設(shè)計安全教育、風(fēng)險駕駛模擬、三維全景視圖三大模塊,對各類駕駛員進(jìn)行針對性教育,綜合提升駕駛員駕駛素養(yǎng)及風(fēng)險規(guī)避能力。
高紅麗等[12]在分析國家車輛事故深度調(diào)查體系數(shù)據(jù)庫內(nèi)的2 384起案例基礎(chǔ)上,將交通事故中的駕駛員因素分為三類,即駕駛前的風(fēng)險容忍行為、駕駛中的不安全行為以及駕駛后的不安全行為。風(fēng)險容忍指駕駛員為達(dá)成駕駛目的而對不規(guī)范駕駛行為的接受程度,而對于駕駛行為的規(guī)范教育,傳統(tǒng)教育方式多采用大廳宣教及圖文教育等方式,并以答題為考核方式,忽略了學(xué)員對學(xué)習(xí)內(nèi)容的理解認(rèn)知過程,無法使學(xué)員對違規(guī)駕駛及交通事故后果嚴(yán)重性形成深刻認(rèn)識,考核也難以反映學(xué)習(xí)者對不安全駕駛行為的實際認(rèn)知程度?;诖?,本系統(tǒng)分別設(shè)計了安全教育、風(fēng)險駕駛模擬、三維全景視圖三大模塊,在保留VR教育系統(tǒng)安全性等優(yōu)點的同時,使得模塊設(shè)計更加科學(xué)合理,符合駕駛安全教育目的。
安全教育模塊引入學(xué)習(xí)-練習(xí)模式,使學(xué)員通過UI學(xué)習(xí)安全規(guī)則,再進(jìn)行相應(yīng)場景VR模擬訓(xùn)練,深化學(xué)員對規(guī)則的認(rèn)識理解。風(fēng)險駕駛模擬模塊設(shè)計多種屏幕特效,用于模擬不正常駕駛狀態(tài)或環(huán)境下的駕駛員視景變化,讓學(xué)員深切感知風(fēng)險駕駛行為危害,端正學(xué)員駕駛態(tài)度。三維全景視圖體驗?zāi)K主要通過基于照片構(gòu)建的三維全景還原交通事故現(xiàn)場,使學(xué)員身臨其境地觀察事故現(xiàn)場,加深對學(xué)員的視覺沖擊,培養(yǎng)學(xué)員對交通安全的敬畏心。三大模塊相輔相成,區(qū)別于傳統(tǒng)的教育方式,強化了其中的薄弱環(huán)節(jié),幫助學(xué)員強化駕駛技能、增強風(fēng)險認(rèn)知能力、提升駕駛安全素養(yǎng)。
駕駛仿真與安全教育系統(tǒng)流程設(shè)計如圖2所示。
圖2 系統(tǒng)設(shè)計流程圖Fig.2 System design flowchart
啟動系統(tǒng)后,學(xué)員進(jìn)入模式選擇,根據(jù)培訓(xùn)需求選擇進(jìn)入安全教育模塊或風(fēng)險駕駛模擬模塊。進(jìn)入模塊后,選擇關(guān)卡,系統(tǒng)開始加載關(guān)卡場景。學(xué)員進(jìn)入安全教育模塊,系統(tǒng)通過UI展示及語音播報進(jìn)行規(guī)則教育,學(xué)員確定后,進(jìn)行該規(guī)則場景VR模擬訓(xùn)練。學(xué)員進(jìn)入風(fēng)險駕駛模塊,系統(tǒng)播報模擬內(nèi)容及該風(fēng)險駕駛危害,播報完成進(jìn)入模擬駕駛過程。當(dāng)上述場景觸發(fā)事故后,系統(tǒng)播報并記錄,待確定后選擇是否進(jìn)入VR實景模塊或返回關(guān)卡選擇。系統(tǒng)應(yīng)用VR技術(shù),將不易理解的學(xué)習(xí)內(nèi)容過程轉(zhuǎn)變?yōu)閷嵺`學(xué)習(xí),沉浸式、強交互的學(xué)習(xí)過程,直接高效,強化學(xué)員學(xué)習(xí)效果。
逼真的虛擬場景增強用戶的沉浸性體驗,動靜結(jié)合的虛擬場景更能模擬真實的駕駛環(huán)境,有助于用戶的知識遷移。如圖3所示,駕駛場景中的三維模型主要分為兩類:靜態(tài)模型和動態(tài)模型。靜態(tài)模型一般不發(fā)生改變,動態(tài)模型在場景中會根據(jù)條件變化發(fā)生變化,該變化一般以腳本定義。
圖3 駕駛訓(xùn)練環(huán)境三維模型設(shè)計Fig.3 3D model design of driving training environment
2.1.1 虛擬場景搭建
目前關(guān)于VR技術(shù)在駕駛安全教育的研究中,虛擬場景類型無法滿足實際應(yīng)用需求,應(yīng)用場景單一。系統(tǒng)為滿足應(yīng)用需求,構(gòu)建了豐富、全面的安全教育場景。場景中模型基于道路實景數(shù)據(jù),采用BIM技術(shù)構(gòu)建道路模型,以3ds Max作為建模軟件構(gòu)建建筑、樹木等模型,建成的模型輕量化后導(dǎo)入Unity3D,以此構(gòu)建高還原度的虛擬場景。同時為場景添加光照、風(fēng)區(qū)、天空盒等元素,使用AudioSource音源組件,為汽車、行人等添加相應(yīng)音效,營造環(huán)境沉浸感。部分場景效果如圖4所示。
圖4 虛擬場景Fig.4 Virtual scene
2.1.2 道路交通流仿真
模擬駕駛過程中,逼真的沉浸環(huán)境能增加用戶控制車輛的模擬保真度。而目前針對駕駛仿真的研究及系統(tǒng)開發(fā),對于道路車輛等影響駕駛行為的重要因素考慮不足。虛擬環(huán)境對于道路車流的仿真主要通過兩種方法:第一種是利用數(shù)字孿生技術(shù)映射真實車流。第二種是構(gòu)建虛擬車流的方法。映射實際車流雖然能夠很好地反映真實車流狀況,但降低了學(xué)員駕駛的測試車輛同微觀交通間的交互。綜合比較,構(gòu)建虛擬仿真車流的方法最為合適,實現(xiàn)相對簡單、滿足駕駛交互需求。而在Unity3D中構(gòu)建虛擬車流,大都使用簡單的路徑移動腳本來實現(xiàn),不具備超車、換道等算法,忽略了車輛運動的隨機性和多樣性等要素,難以反映真實復(fù)雜的真實交通。為構(gòu)建更加真實的車流環(huán)境,本文研究了SUMO與Unity3D的聯(lián)合仿真。
SUMO作為一款開源交通仿真軟件,可實現(xiàn)對路網(wǎng)、交通流、信號燈、行人等道路交通元素的仿真構(gòu)建,其基于物理機理的交通建模,能夠正確合理地描述交通狀況。SUMO為開發(fā)者提供的基于TCP傳輸協(xié)議的TraCI工具(traffic control interface),允許訪問正在運行的交通模擬,并通過檢索模擬對象的值操縱它們。聯(lián)合SUMO與Unity3D的仿真構(gòu)建,即以SUMO作為服務(wù)器,Unity3D作為客戶端,實現(xiàn)SUMO仿真與Unity3D虛擬場景間信息的實時通信。
相較于道路車輛沿設(shè)置路徑機械行駛的方式,SUMO的車輛運動模型算法更為接近實際車輛運動過程。在車輛縱向運動中,SUMO的速度計算方法,考慮了車輛當(dāng)前速度v、車輛最大加速度a、駕駛員熟練度?以及道路安全速度vs速度限值vdes,計算方法如下所示:
其中,?取值范圍為0~1,現(xiàn)實意義為駕駛員操作誤差。
在車輛橫向運動中,SUMO提供了恒定車速變道和瞬間變道兩種模型。恒定車速變道模型中,車輛橫向運動考慮車道間距離及變道時間;瞬間變道模型則不考慮上述因素,車輛瞬間完成橫向車道間移動[13]。系統(tǒng)構(gòu)建過程中,為更好地仿真實際道路狀況,采用恒定速度變道模型。
在Unity3D具體實現(xiàn)中,通過讀取路網(wǎng)文件,編輯道路環(huán)境,并同步紅綠燈狀態(tài)變化,建立測試車輛與交通流車輛的雙向映射,聯(lián)合仿真駕駛效果如圖5所示。需要注意的是,由于測試車輛存在違反SUMO規(guī)則限定的行為可能,測試車輛應(yīng)當(dāng)設(shè)計存在違反交通規(guī)則的幾率,比如壓實線、闖紅燈等。
圖5 聯(lián)合仿真駕駛示例Fig.5 Co-simulation driving example
風(fēng)險駕駛認(rèn)識是系統(tǒng)降低駕駛員風(fēng)險容忍度的主要方式,屏幕特效是其實現(xiàn)的關(guān)鍵技術(shù)。傳統(tǒng)的風(fēng)險駕駛行為教育大多采用文字警示等方式,存在不形象、不深刻等缺陷。而前述基于VR技術(shù)的駕駛安全研究則基本忽略了該內(nèi)容。系統(tǒng)從認(rèn)知教育出發(fā),通過屏幕特效及仿真技術(shù),模擬駕駛員疲勞、醉酒、超速及各種時間天氣狀況下的駕駛體驗與視景變化,從而使駕駛員對風(fēng)險駕駛行為的后果形成深刻的認(rèn)知。
屏幕特效的實現(xiàn),主要通過對屏幕空間內(nèi)像素進(jìn)行后處理。Unity3D內(nèi)置的可編程渲染管線(scriptable render pipeline,SRP),允許編碼自定義渲染的執(zhí)行方式,對Alpha測試、模板測試、深度測試等過程自定義像素繪制方式,從而改變最終渲染畫面,創(chuàng)造性地實現(xiàn)疲勞、醉酒、超速等狀態(tài)下的眼瞼閉合、視線模糊、扭曲、視野變窄等效果[14-15]。
以視線模糊實現(xiàn)為例,對屏幕空間像素的處理過程,主要通過對屏幕圖像進(jìn)行卷積計算操作,重新定義原像素。如圖6所示,將一個3×3的四方形結(jié)構(gòu)作為一個卷積核,在對屏幕空間某個像素進(jìn)行卷積時,把卷積核中心放置在該像素上,翻轉(zhuǎn)核之后再重新計算像素值,從而得到該位置的新像素值。
圖6 卷積核與卷積Fig.6 Convolution kernel and convolution
以高斯模糊為例,其卷積核是一個正方形大小的濾波核,其各元素計算基于公式(3)高斯方程:
其中,δ為標(biāo)準(zhǔn)方差,取值為1,x和y分別對應(yīng)計算位置到卷積核中心整數(shù)距離。為保證濾波后圖像亮度不變,需對卷積核中權(quán)重進(jìn)行歸一化,如圖7所示為高斯模糊一個5×5大小的卷積核。由卷積核可以得出受鄰域像素影響,距離越近,影響越大。以該計算方式重新定義Shader渲染過程,處理后的圖像從而呈現(xiàn)模糊效果,如圖8所示。
圖7 5×5的高斯模糊卷積核Fig.7 5×5 Gaussian blur convolution kernel
圖8 高斯模糊處理效果Fig.8 Gaussian blur effect
交通事故現(xiàn)場能直接高效地表現(xiàn)事故危害程度,警示學(xué)員交通事故嚴(yán)重性。大量研究通過構(gòu)建事故虛擬場景或制作3D電影達(dá)到警示目的,而本系統(tǒng)采用三維全景視圖,還原交通事故現(xiàn)場。三維全景視圖通過照片方式展現(xiàn)三維場景,從而達(dá)到沉浸式閱覽效果,相較于虛擬場景更具有沉浸性,同時相較于3D電影更加簡單高效,基于Unity3D實現(xiàn)更為簡單。
三維全景視圖所需全景圖像數(shù)據(jù),與普通圖像不同,在全景圖像中,為了表現(xiàn)實際場景中物體的空間約束關(guān)系,需要將其投影到具有一定空間特效的曲面上。比較常見的投影方式有球面投影、柱面投影和立方體投影。其中球面模型相較于其他,更易在Unity3D內(nèi)實現(xiàn),因此系統(tǒng)采用球面投影作為全景視圖實現(xiàn)方式。
平面圖像向球面投影,需要正確表達(dá)圖像上的點與球面對應(yīng)點的位置關(guān)系,該過程主要通過全景圖像的拍攝方向及相機投影模型技術(shù)得出。平面圖像多采用針孔投影模型,其相機坐標(biāo)系到圖像坐標(biāo)系之間的映射關(guān)系有如下公式表示:
(Xc,Yc,Zc)表示相機坐標(biāo)系下空間內(nèi)的點,(x,y)表示圖像坐標(biāo)系下對應(yīng)的點,f為相機的焦距。要在Unity3D內(nèi)實現(xiàn)三維全景,魚眼投影相比于針孔投影更適于構(gòu)建系統(tǒng)所用圖像。一般而言,魚眼投影首先需要將三維點投影到球面,再經(jīng)過針孔投影模型投影。系統(tǒng)使用帶有魚眼鏡頭的相機進(jìn)行拍攝,可以得到如圖9所示具有畸變特性的全景圖像,有利于表現(xiàn)拍攝畫面的長景深效果。
圖9 全景圖像示意圖Fig.9 Schematic diagram of panoramic image
其最終三維全景圖像實現(xiàn)方式也較為簡單,在Unity3D內(nèi)創(chuàng)建三維球體,將其Shader修改為Alpha Blended,然后將全景圖作為材質(zhì)的紋理賦予球體,將Camera放置球體內(nèi)部,通過頭戴顯示器,即可觀察到由圖像構(gòu)成的三維實景。
在安全教育及風(fēng)險駕駛模擬關(guān)卡中,系統(tǒng)需要對駕駛行為進(jìn)行監(jiān)測,判斷車輛行駛中是否違反規(guī)則或發(fā)生事故,碰撞檢測是實現(xiàn)違規(guī)觸發(fā)的最佳方式。模擬過程中車輛行為及事故檢測基于包圍盒碰撞檢測技術(shù)實現(xiàn)。其算法是采用近似規(guī)則碰撞器表示復(fù)雜外形結(jié)構(gòu)體,通過檢測其邊界是否發(fā)生相交,從而判斷發(fā)生碰撞[16],其碰撞檢測原理如圖10所示。
圖10 碰撞檢測原理示意圖Fig.10 Schematic diagram of collision detection principle
圖中綠色斜線區(qū)域為結(jié)構(gòu)體A與結(jié)構(gòu)體B的重疊區(qū)域,而在三維空間下,下式成立,即發(fā)生了碰撞。
而在各關(guān)卡中,系統(tǒng)廣泛采用Box Collider觸發(fā)器布置觸發(fā)檢測點,其可以實現(xiàn)在不影響車輛行為及不改變場景的情況下,僅通過C#腳本定義碰撞發(fā)生事件,實現(xiàn)違規(guī)觸發(fā)機制,準(zhǔn)確高效地監(jiān)測模擬駕駛過程。
駕駛過程中,惡劣的自然天氣會影響駕駛員對于行車路況及標(biāo)志標(biāo)線等道路環(huán)境的信息獲取與判斷。在前述研究中,忽略了天氣因素對駕駛安全的影響,系統(tǒng)基于WeatherMake插件進(jìn)行改進(jìn),實現(xiàn)虛擬場景內(nèi)天氣、時間的模擬。駕駛過程中,可以根據(jù)模擬需求,通過與天氣系統(tǒng)的交互,控制場景內(nèi)天氣、時間等因素。如圖11所示,分別模擬了早晨、中午、傍晚三個時間段及晴天、大霧、雨天等天氣。
圖11 系統(tǒng)時間、天氣模擬Fig.11 System time,weather simulation
為驗證駕駛仿真及安全教育系統(tǒng)的實際應(yīng)用效果,發(fā)現(xiàn)系統(tǒng)設(shè)計不足,招募了20位志愿者進(jìn)行系統(tǒng)仿真度測試及實用性評估,被試人員組成見表1,根據(jù)駕駛經(jīng)驗差異分為三組,A組人員編號A1~A10,B組人員編號B1~B8,C組人員編號C1、C2。
表1 被試人員組成Table 1 Composition of subjects
系統(tǒng)采用Logitech G29方向盤套裝及HTC Vive作為交互設(shè)備,相較于駕駛模擬器,HTC Vive頭戴顯示器能更好地呈現(xiàn)虛擬三維空間,并保證用戶不被周圍環(huán)境所分散注意力,為用戶提供更加身臨其境的體驗[17]。系統(tǒng)啟動后,進(jìn)入模式選擇界面,可分別選擇進(jìn)入安全教育、風(fēng)險駕駛模擬及三維全景視圖模塊。在安全教育模塊,通過學(xué)習(xí)規(guī)則且在實際案例中理解應(yīng)用,實現(xiàn)學(xué)習(xí)效果強化,熟練駕駛技能,結(jié)合VR訓(xùn)練的學(xué)習(xí)過程更加具有趣味性,更有利于理論知識向?qū)嶋H認(rèn)知遷移,測試示例如圖12所示。
圖12 安全教育關(guān)卡測試示例Fig.12 Safety education level test example
風(fēng)險駕駛模擬模塊,通過模擬體驗,更加直觀地理解風(fēng)險駕駛行為,結(jié)合事故現(xiàn)場三維全景體驗,認(rèn)識駕駛事故危害,降低對風(fēng)險駕駛的容忍度,具有良好的沉浸性及應(yīng)用價值,測試如圖13、14所示。
圖13 風(fēng)險駕駛模擬Fig.13 Risky driving simulation
圖14 全景體驗及VR駕駛Fig.14 Panoramic experience and VR driving
20位志愿者分別使用Logitech G29及HTC Vive等設(shè)備,依次對系統(tǒng)三大模塊進(jìn)行測試,根據(jù)虛擬場景的仿真程度及駕駛沉浸感對系統(tǒng)仿真度做出打分,同時根據(jù)個人使用體驗對系統(tǒng)實用性做出打分,范圍為0~10分,0分為最低分,代表評估結(jié)果十分消極,10分為滿分,代表評估結(jié)果十分積極。
系統(tǒng)測試結(jié)果如圖15所示,20位志愿者對系統(tǒng)仿真度平均打分為7.45分,對系統(tǒng)實用性平均打分為7.95分。表明志愿者認(rèn)為系統(tǒng)仿真還原度高且對系統(tǒng)實用性持積極態(tài)度。
圖15 測試打分統(tǒng)計圖Fig.15 Statistical chart of test scoring
本文使用Unit3D引擎聯(lián)合SUMO開發(fā)了基于VR的駕駛仿真及安全教育系統(tǒng),為駕駛技能學(xué)習(xí)者提供了安全多樣的駕駛環(huán)境,使駕駛安全教育更加具體、深刻、高效且易于理解。系統(tǒng)基于道路實景數(shù)據(jù),構(gòu)建了更具真實感的駕駛?cè)S場景,聯(lián)合SUMO仿真道路駕駛狀況,實現(xiàn)了不同道路環(huán)境、交通狀況下的駕駛模擬;創(chuàng)新性地通過屏幕特效技術(shù)讓駕駛員通過交互設(shè)備體驗在醉酒、疲勞等風(fēng)險狀況下的視覺變化,幫助駕駛員在清醒狀況下體驗風(fēng)險駕車危害;并在Unity3D內(nèi)構(gòu)建了基于圖像的交通事故三維全景。通過20位志愿者對系統(tǒng)進(jìn)行測試,駕駛場景仿真度較高,運用該系統(tǒng),提高了駕駛學(xué)習(xí)效率,提高了駕駛安全素養(yǎng)。在將來,可進(jìn)一步開發(fā)學(xué)習(xí)過程記錄模塊,為學(xué)員個體提供更具針對性的教育內(nèi)容。