周 越,楊宗浩,解 宇
(上海交通大學(xué)電子信息與電氣工程學(xué)院,上海 200240)
隨著人工智能技術(shù)的發(fā)展,智能駕駛成為自動化領(lǐng)域一個研究的熱點。計算機視覺作為其核心技術(shù)之一,成為該領(lǐng)域人才知識結(jié)構(gòu)中的重要單元。高校承擔(dān)培養(yǎng)各領(lǐng)域人才的重任,如何培養(yǎng)具有扎實的基礎(chǔ)理論和勇于創(chuàng)新實踐的人才是至關(guān)重要。實踐教學(xué)是其中的一個重要環(huán)節(jié)。本文基于視覺感知的智能駕駛為案例構(gòu)建“感知—分析—控制—執(zhí)行”的實踐平臺,有助于學(xué)生系統(tǒng)性地構(gòu)筑知識體系,在解決探究性、綜合性的工程問題時給予學(xué)生一個很好的創(chuàng)新實踐平臺[1]。
構(gòu)建實物環(huán)境的條件苛刻、效費比低且具有一定危險性;對于日常實踐教學(xué)的批量任務(wù)無法實時滿足,且存在安全問題。同時,基于視覺的智能駕駛領(lǐng)域大量引入深度學(xué)習(xí)技術(shù),需要各種場景下標(biāo)注的樣本,場景樣本數(shù)據(jù)片面和海量數(shù)據(jù)樣本無法準(zhǔn)確標(biāo)注的問題凸顯。
虛擬仿真平臺通過將復(fù)雜的智能駕駛場景進行具象化,從系統(tǒng)的角度讓學(xué)生體驗所學(xué)理論知識與提升學(xué)生的創(chuàng)新實踐能力,同時該平臺能夠仿真不同環(huán)境下的各類信息(如視覺信息和深度信息),在一定程度上解決現(xiàn)實場景中海量數(shù)據(jù)標(biāo)注問題,尤其是環(huán)境的深度感知信息與標(biāo)注一直是相關(guān)技術(shù)研究的瓶頸。
基于Unity3D 的智能駕駛虛擬仿真平臺內(nèi)容豐富,本文在介紹城市場景下智能駕駛的虛擬仿真平臺構(gòu)建的基礎(chǔ)上,著重以環(huán)境深度感知為例,說明虛擬仿真的原理與教學(xué)實踐的研究。
虛擬仿真實驗平臺主要是兩大功能:①運用計算機視覺技術(shù)實現(xiàn)城市場景下的智能駕駛;②仿真產(chǎn)生不同場景下感知各類信息的數(shù)據(jù)樣本(如深度信息的感知),并帶有準(zhǔn)確的標(biāo)注信息。
在城市場景駕駛?cè)蝿?wù)部分,平臺提供了三大類型的仿真實驗,城市道路駕駛、測距測姿和自動泊車實驗。各實驗由簡到難,引導(dǎo)學(xué)生進行實驗,學(xué)生可以在不同類型場景下,根據(jù)不同難度逐一進行探索和實驗。此外,在測距實驗中,可以通過調(diào)整雙目相機基線距離、相機焦距參數(shù)、前后車起始距離、前車運行速度以及前車特征標(biāo)志圖類型進行分組對照實驗。又如自動泊車實驗,提供地面和地下停車場2 種不同難度的仿真環(huán)境,對仿真光照和物理空間有著不同的難度。實驗需要學(xué)生通過優(yōu)化不同的多視角組合獲得更有效的視覺信息來完成各項任務(wù),增強了實驗的探索性和學(xué)生的自主性。
平臺還提供多種場景下深度信息感知的仿真。為學(xué)生進一步探究基于深度學(xué)習(xí)的環(huán)境感知與建模提供了數(shù)據(jù)支撐。
自動駕駛需要對周圍環(huán)境中的物體距離有所感知,因此平臺為采集相機提供場景的深度信息,學(xué)生可以使用車輛上的采集相機對環(huán)境中的彩色圖像和對應(yīng)的深度圖像進行采集。為獲取仿真環(huán)境中物體的深度信息,在采集相機對場景進行渲染時,平臺在通用渲染管線中的深度測試階段獲取深度緩沖信息,從而使用該信息推算物體與采集相機之間的距離。深度緩沖作用是避免對相機采集畫面中場景內(nèi)的被遮擋物體進行渲染,在節(jié)省不必要計算的同時,可以獲取場景內(nèi)物體與采集相機的距離。因此平臺利用深度緩沖階段的深度相關(guān)信息進行深度測試,最終得到與彩色圖像對應(yīng)的深度圖,每個像素點具有該點屬于的物體相對相機的距離信息。
相機所采集的視差范圍由設(shè)定好的遠近平面所決定,利用最遠平面剪裁可以舍去比最遠平面更遠的物體的渲染計算,同理,比最近平面更近的物體不需要進行渲染。因此,常規(guī)的深度測試直接利用線性深度緩沖進行計算,將圖像像素點對應(yīng)該點在空間坐標(biāo)系中的z坐標(biāo)映射到視差范圍內(nèi),far和near是用來提供到投影矩陣設(shè)置可見視圖截錐的遠近值。其線性轉(zhuǎn)換方程如下:
使用該方法獲取的深度圖與對應(yīng)的彩色圖像對深度估計網(wǎng)絡(luò)模型進行訓(xùn)練,發(fā)現(xiàn)訓(xùn)練好的模型在公開數(shù)據(jù)集上的表現(xiàn)較差,而在可視化視差圖結(jié)果上可以看出最終得到的視差圖中遠處物體和近處物體的差異并不明顯。因此,本平臺在線性深度測試的基礎(chǔ)上進行改進,建立非線性映射方程以進行深度測試,犧牲對遠處不感興趣物體深度識別精度,從而提高對近處物體深度識別精度的提升。最終建立的非線性映射方程:
圖1 為非線性映射函數(shù)圖像。
圖1 深度值非線性轉(zhuǎn)換函數(shù)圖
基于非線性深度測試方法,平臺提出并實現(xiàn)對采集圖像像素點重建該點世界空間坐標(biāo)的方法,從而獲取該點深度值。平臺使用圖形著色器進行實現(xiàn)。Unity默認的深度測試方法為:首先使用Unity 內(nèi)置正交矩陣Munity對該頂點向量從世界空間向量vvertex轉(zhuǎn)換到觀察空間向量:
然后通過頂點向量v 在觀察空間中的z軸分量(v.z)計算出相機視點的觀察線性深度值(Eye Depth)o,公式如下:
據(jù)此,結(jié)合遠平面截斷與非線性深度緩沖計算方法,通過圖形著色器的改寫成功獲取非線性深度值f,最終的深度值計算方法公式為
平臺所有仿真環(huán)境和場景的構(gòu)建均基于Unity3D圖形引擎,該公開平臺不僅能夠提供充足的仿真場景中所需要的資源,還具有完整的插件系統(tǒng),更有利于搭建供學(xué)生使用的自動駕駛仿真平臺。此外,本平臺在還原現(xiàn)實生活中自動駕駛應(yīng)用場景方面,盡可能涵蓋了常見的駕駛場景,不僅包括日常行駛的城市街道或高速公路,更包括了自然駕駛場景和地下停車場等更具有視覺挑戰(zhàn)性的復(fù)雜場景[14-15]。
引入平臺是為了給學(xué)生提供“學(xué)以致用”的平臺[2],整個虛擬仿真實驗系統(tǒng)架構(gòu)如圖2 所示。①穩(wěn)定的實驗環(huán)境建設(shè)機制:前端包括仿真模型的搭建和使用者代碼編輯功能的建設(shè),后端包括車輛的仿真計算引擎以及仿真場景分配功能。②友好的系統(tǒng)運行需求:本仿真系統(tǒng)可在windows 或linux 系統(tǒng)下運行,用戶使用瀏覽器登錄網(wǎng)站后即可體驗平臺的功能。③真實的仿真信息反饋:在車輛的仿真部分,使用Unity3D搭建車輛行駛場景,代碼IDE 區(qū)域?qū)崿F(xiàn)與python相同的功能,給使用者帶來真實準(zhǔn)確的調(diào)試反饋信息[3]。
圖2 虛擬仿真實驗系統(tǒng)架構(gòu)
(1)以“系統(tǒng)導(dǎo)向,實踐閉環(huán),拓展學(xué)習(xí)”為總體設(shè)計思路。智能駕駛場景下的系統(tǒng)性、綜合性實驗是計算機視覺課程中重要的實踐環(huán)節(jié)[3]。學(xué)生通過虛擬仿真實驗操作,可以打破時空壁壘,無須親臨真實實驗場地,可達到將理論用于實踐的教學(xué)目標(biāo),而且虛擬仿真實驗還能夠及時地給出反饋,將實驗效果以及對比結(jié)果回饋于學(xué)生,形成實踐閉環(huán)。另外,在對平臺設(shè)置的復(fù)雜工程問題進行分析-解決的過程中,可以更好地激發(fā)學(xué)生自主拓展學(xué)習(xí)的熱情,從而達到對知識深化學(xué)習(xí)和拓展知識的目的。
(2)以“實踐探究,興趣驅(qū)動,自主創(chuàng)新”為技術(shù)實現(xiàn)目標(biāo)。實驗由簡到難引導(dǎo)學(xué)生進行實驗,學(xué)生可以在不同類型場景下,根據(jù)不同難度逐一進行探索和實驗,實現(xiàn)了任務(wù)多元化、難度層次化。此外,如在深度測距實驗中,也可以通過調(diào)整雙目相機基線距離、相機焦距參數(shù)、前后車起始距離、前車運行速度以及前車特征標(biāo)志圖類型進行分組對照實驗。在實驗中學(xué)生可以采用控制變量法,逐漸增加實驗場景復(fù)雜度,逼近顯示實際生活場景,完成對應(yīng)的車輛實驗任務(wù)。
又如智能駕駛的環(huán)境深度感知,平臺仿真在不同場景、氣象條件和不同時間,針對多樣化的場景元素仿真出深度信息,同時給出大量數(shù)據(jù)樣本相應(yīng)的標(biāo)注信息,為學(xué)生探究不同深度網(wǎng)絡(luò)和學(xué)習(xí)算法提供了重要支撐;同時可以探究與真實獲取的樣本數(shù)據(jù)的對比實驗以評估仿真數(shù)據(jù)的有效性,進一步研究不同算法在不同場景下的優(yōu)劣,增強了實驗的探索性和自主研究的創(chuàng)新性[4]。
場景中的元素設(shè)計主要分為4 個部分,分別為現(xiàn)實生活中客觀環(huán)境還原、人類行為活動的模擬、道路上車輛動態(tài)行駛邏輯、不同天氣效果和晝夜更替。圖3展示了同一個場景中的不同視覺效果,為用戶還原更真實的視覺任務(wù)場景。
圖3 同一場景不同視角與天氣情況下仿真對比
平臺實現(xiàn)仿真場景中一天內(nèi)光照效果的真實變換,還原晝夜更替效果。仿真環(huán)境中的主光源用于模擬日光或月光,因此會隨時間變換而改變照射角度、光照強度,以及光照顏色。除了光照效果外,天空盒也會隨時間變化,太陽和月亮?xí)?yīng)時間升起或落下,云層也會進行一定程度的隨機變換,并且與天氣系統(tǒng)對應(yīng)。在夜晚時,建筑物、街燈和車燈都會亮起。天氣效果利用粒子系統(tǒng)實現(xiàn),模仿雨滴或雪花的效果。場景中還使用后處理方式豐富了真實燈光細節(jié),如路燈的光暈和車燈的強光。
在逼真的客觀仿真環(huán)境中,為了提供接近真實場景的車輛運動狀態(tài)測量環(huán)境,平臺在搭建仿真環(huán)境時提供了多因素的實驗環(huán)境,包括雙目相機間距、車輛運動狀態(tài)變化、前后車輛間距變化、車輛定位標(biāo)志牌、多種交通標(biāo)志、車道障礙物等外界信息的交互。為了提供接近真實停車場景的車輛泊車環(huán)境,和環(huán)境感知本仿真系統(tǒng)在構(gòu)建仿真環(huán)境時提供了豐富主觀人為全要素的實驗環(huán)境,包括可視方位變化、停車位定位信息變化、車輛與環(huán)境中已泊車輛的距離等外界信息的交互。
平臺提供一個隨機化框架,簡化了將隨機擾動因素引入場景的過程。平臺提供的多個樣本隨機化器,可以完成常見的隨機化任務(wù)(例如,隨機對象的位置、旋轉(zhuǎn)、紋理和色調(diào),以及場景內(nèi)的天氣、天空背景等等)。此外,為在同一場景內(nèi)執(zhí)行不同駕駛?cè)蝿?wù),本系統(tǒng)提供UI面板和按鍵操控功能。圖4 展示了UI操控面板所提供的部分控制接口。例如任務(wù)要求為利用街道駕駛場景中的雙目立體視覺圖像信息完成綜合駕駛?cè)蝿?wù),則使用隨機化工具可以宏觀調(diào)控場景中物體的預(yù)設(shè)組合,以及部分車輛和建筑物等物體的放置方式,從而改變?nèi)蝿?wù)的難度;也可以微觀設(shè)置當(dāng)前駕駛汽車或場景中其他車輛的運動模式、雙目采集相機的相機參數(shù)等。
圖4 參數(shù)調(diào)控工具面板
總而言之,場景參數(shù)調(diào)控框架可以滿足用戶進行綜合任務(wù)時對場景內(nèi)物體的調(diào)控要求,幫助用戶在實驗中更好地利用所需要的視覺信息,配合實驗平臺所提供的信息真值,實現(xiàn)更復(fù)雜的視覺算法,最終能夠有多種方式可選擇地完成綜合駕駛?cè)蝿?wù)的要求。
平臺無須安裝其他插件、外置設(shè)備或者軟件,打開瀏覽器,輸入有效鏈接地址,即可進入仿真平臺環(huán)境。在實驗過程中,學(xué)生只需要打開對應(yīng)的實驗場景,在代碼框中編輯合適的處理算法,點擊連續(xù)運行或單步調(diào)試,即可進行實驗。對學(xué)生使用的電腦硬件條件并沒有任何約束,也無需在使用本虛擬仿真平臺前安裝任何插件,學(xué)生只需要位于網(wǎng)絡(luò)良好的環(huán)境中,便可以進行實驗。
自平臺搭建以來,共計已有大約1 200 余名學(xué)生在教學(xué)中使用該平臺,其中使用平臺的學(xué)生不僅包含了本科三、四年級,還有碩士研究生,同時在全國內(nèi)部推廣,涵蓋10 余所高校。
通過使用該平臺,一方面能夠促進學(xué)生掌握計算機視覺技術(shù),另一方面激發(fā)了學(xué)生們的創(chuàng)新實踐能力。
本平臺最大程度提供逼真的仿真場景和供用戶利用視覺信息完成綜合駕駛?cè)蝿?wù)的仿真平臺。環(huán)境感知與分析建模實驗分為3 個階段:①環(huán)境感知數(shù)據(jù)生成;②利用平臺提供的仿真數(shù)據(jù)對單目深度估計建模;③與真實數(shù)據(jù)所得的模型進行對比與評估,驗證在平臺上所使用的圖像處理算法,能夠更好地在真實場景中使用,從而達到實驗教學(xué)的目的。
平臺為學(xué)生提供了場景深度圖采集功能,為驗證本平臺仿真場景所采集的圖像質(zhì)量以及對應(yīng)的深度圖質(zhì)量,本文于實驗部分選用目前單目深度估計常用網(wǎng)絡(luò)模型MonoDepth2[5]對本平臺提供的圖像數(shù)據(jù)進行質(zhì)量驗證。
首先在本平臺上對不同場景采集視頻序列,分辨率設(shè)定為640 ×480。使用固定基線的兩個采集相機以20 幀/s的幀速率進行雙目圖像采集,彩色圖像與深度圖一一對應(yīng)。
本案例中MonoDepth2 模型使用PyTorch 工具搭建,優(yōu)化方式采用Adam優(yōu)化[6],迭代周期默認設(shè)為20個,批處理大小為12,輸入和輸出分辨率均為640 ×192。驗證集數(shù)量約為訓(xùn)練集大小的10%。
本文使用以下常用的量化指標(biāo),作為對訓(xùn)練后模型單目深度估計表現(xiàn)的衡量標(biāo)準(zhǔn):
(1)絕對相對誤差。計算每一個像素點i的估計深度值Di與實際深度值D*i的差值絕對值,并除以實際深度值,最后將結(jié)果進行累加并取總數(shù)為N個像素點的平均值。計算式如下:
(2)平方相對誤差。計算每一個像素點i的估計深度值Di與實際深度值的差值平方,并除以實際深度值,最后將結(jié)果進行累加并取總數(shù)為N個像素點的平均值。計算式如下:
通過以上測試指標(biāo)對實驗結(jié)果進行分析,誤差值指標(biāo)AbsRel和SqRel越小說明模型測試結(jié)果越好,準(zhǔn)確度指標(biāo)越高說明模型深度估計能力越好。
本文首先分別使用真實數(shù)據(jù)集KITTI[7]和平臺所得到的仿真數(shù)據(jù)訓(xùn)練MonoDepth2 網(wǎng)絡(luò)模型,訓(xùn)練分為兩種方式,一種是只用單目數(shù)據(jù)對模型進行訓(xùn)練;另一種是以一定比例將單目數(shù)據(jù)和雙目數(shù)據(jù)進行混合,然后訓(xùn)練網(wǎng)絡(luò)模型。將訓(xùn)練好的模型在KITTI數(shù)據(jù)集上進行測試,測試集分割選用Eigen子集,使用單目深度估計指標(biāo)對不同數(shù)據(jù)訓(xùn)練所得的網(wǎng)絡(luò)模型的深度估計能力進行比較與評估。
表1 的結(jié)果說明本平臺所采集的仿真數(shù)據(jù)訓(xùn)練好的模型在4 個指標(biāo)中,與真實數(shù)據(jù)建模所得的模型測試指標(biāo)十分接近,說明本平臺仿真的深度數(shù)據(jù)與真實數(shù)據(jù)對網(wǎng)絡(luò)模型的訓(xùn)練效果相近[8]。
表1 不同數(shù)據(jù)訓(xùn)練后的模型在KITTI測試集上深度預(yù)測表現(xiàn)
再進行定性分析,使用不同數(shù)據(jù)訓(xùn)練所得模型對同一張圖進行單目深度估計,并對比可視化視差圖(見圖5)。其中:圖5(a)為原圖,圖5(b)、(c)分別對應(yīng)KITTI數(shù)據(jù)集中使用單目數(shù)據(jù)單獨訓(xùn)練和單雙目數(shù)據(jù)混合訓(xùn)練結(jié)果,圖5(d)、(e)分別對應(yīng)平臺仿真數(shù)據(jù)只使用單目數(shù)據(jù)訓(xùn)練和單雙目數(shù)據(jù)混合訓(xùn)練結(jié)果??梢暬暡顖D對比可得,平臺中的仿真深度數(shù)據(jù)與真實數(shù)據(jù)對建模效果一致。
圖5 深度估計結(jié)果可視化視差圖對比
綜上所述,平臺所提供的彩色圖像數(shù)據(jù)與對應(yīng)深度數(shù)據(jù)能夠滿足深度視覺相關(guān)實驗要求,擁有與真實數(shù)據(jù)相近的逼真程度與準(zhǔn)確性,具有實驗價值[9-12]。
隨著科學(xué)技術(shù)的不斷發(fā)展,計算機視覺技術(shù)越來越多地應(yīng)用于智能駕駛領(lǐng)域,實驗教學(xué)在課程中起著越來越重要的作用。
本文主要針對計算機視覺課程的教學(xué)進行了一些改革嘗試,通過虛擬仿真實驗,不僅培養(yǎng)了學(xué)生動手實踐的能力,還增加了學(xué)生對于此課程的學(xué)習(xí)積極性,對學(xué)生系統(tǒng)地掌握理論知識和提升創(chuàng)新能力都具有極大的促進作用,最終達到提高教學(xué)質(zhì)量的目的[13-14]。