解 宇,周 越
(上海交通大學 自動化系,上海 200240)
計算機視覺與圖形仿真技術(shù)的不斷進步,使得無論通過真實相機還是仿真場景中的相機所采集的圖像,都可以用于訓練各種視覺感知任務(wù)的網(wǎng)絡(luò)模型。其中,在進行三維立體重建、行人或障礙物深度檢測、視覺導(dǎo)航等復(fù)雜感知任務(wù)時,如何獲取具有場景深度信息精準標注的數(shù)據(jù),成為最需要解決的問題。
當前,公開真實深度數(shù)據(jù)集普遍存在兩個主要問題:一是場景種類缺乏。以KITTI數(shù)據(jù)集[1]和NYU Depth V2數(shù)據(jù)集[2]為例,真實數(shù)據(jù)的采集主體以人類和汽車為主,采集方式也是手持攝像機或車載圖像采集設(shè)備,場景分別以道路駕駛場景和室內(nèi)場景為主。由于采集時的客觀條件限制,因此真實數(shù)據(jù)集很難對許多特殊情況進行針對性采集,比如雨雪天氣、夜晚場景等[3];二是深度信息標注不準確。由于真實數(shù)據(jù)集人工標注為主,只能對有限物體進行精細標注,很難達到深度圖與彩色圖像的像素級別信息對齊。
如今隨著虛擬現(xiàn)實技術(shù)的發(fā)展,可以使用如Unity3D、Unreal Engine等虛擬仿真引擎,以可控和定向的方式在搭建場景的同時生成準確的深度標注數(shù)據(jù),從而避免在現(xiàn)實世界中采集和注釋數(shù)據(jù)時的困難與成本問題。因而虛擬仿真數(shù)據(jù)集擁有以下幾個明顯優(yōu)勢:①引擎的渲染所需要的計算時間遠小于人工標注所花費的時間;②整個渲染與采集流程可以提取到關(guān)于場景中物體的所有完美信息;③渲染引擎還可以生成罕見的示例,從而控制訓練數(shù)據(jù)集的場景分布。此外,在整個仿真系統(tǒng)中并不依賴于任何私人數(shù)據(jù),也不涉及侵犯他人隱私。
使用虛擬仿真引擎構(gòu)建場景生成深度數(shù)據(jù)的另一個優(yōu)勢是資源的可重復(fù)利用性。在為所有的視覺資源創(chuàng)建好環(huán)境后,可以通過動態(tài)改變隨機化參數(shù)以及相機位置,將變化引入采集場景。從而使得生成的數(shù)據(jù)集和計算機視覺模型可以進行更快的迭代。綜上所述,構(gòu)建深度仿真數(shù)據(jù)集成為了獲取深度數(shù)據(jù)的新穎且優(yōu)越的解決方案。
本文除了在數(shù)據(jù)集層面上對深度真實數(shù)據(jù)集和現(xiàn)有深度仿真數(shù)據(jù)集進行補充與改進以外,還希望通過特定數(shù)據(jù)的補充訓練,有針對性地對目前單目深度網(wǎng)絡(luò)的訓練結(jié)果進行改進。
單目深度估計是指從單張輸入圖像中自動推斷出具有稠密深度信息的預(yù)測圖[4]。在提供足夠的圖像信息和相對姿態(tài)信息的前提下,即使給定場景可能存在許多不同的深度構(gòu)建方式,利用單目視覺信息對場景進行單目深度估計也是可以解決的問題。而這一特殊性也導(dǎo)致單目深度估計網(wǎng)絡(luò)對訓練數(shù)據(jù)的需求十分顯著,尤其是基于監(jiān)督學習算法的單目視覺神經(jīng)網(wǎng)絡(luò)。在缺少訓練數(shù)據(jù)的情況下使用監(jiān)督學習算法對單目估計深度模型進行訓練顯然具有挑戰(zhàn)性。
本文首先使用公開真實數(shù)據(jù)對一些目前常用的單目深度估計網(wǎng)絡(luò)進行訓練,使用包含特殊情況的圖像數(shù)據(jù)對模型訓練結(jié)果進行測試,可視化結(jié)果顯示,模型在對包含特定情況的圖像進行深度測試時,存在非常明顯的誤差。分析得出這是由于訓練數(shù)據(jù)中缺少包含特殊情況的場景數(shù)據(jù),因此,最終得到的模型訓練結(jié)果缺少對于這些特殊情況中包含的圖像特征的有效學習[5]。如圖1所示,這些特殊情況大部分出現(xiàn)在雨霧天氣、夜晚環(huán)境和室內(nèi)環(huán)境中。
為了解決以上問題,本文設(shè)計并實現(xiàn)一個完整的基于Unity3D的虛擬仿真數(shù)據(jù)采集系統(tǒng),提出了一套完整的仿真數(shù)據(jù)集制作管線,系統(tǒng)架構(gòu)圖如圖2所示。本文首先搭建了豐富的仿真場景,涵蓋了真實世界中有深度數(shù)據(jù)采集需求的場景;基于非線性深度緩沖設(shè)計圖形著色器,實現(xiàn)對場景中物體深度信息更加精準的獲??;提出一種復(fù)雜運動模式的全自動數(shù)據(jù)采集方法,以實現(xiàn)大體量高質(zhì)量仿真數(shù)據(jù)采集。
最后實驗部分對本文仿真數(shù)據(jù)進行兩個方面的驗證。
首先,對最終采集的仿真數(shù)據(jù)的優(yōu)越性加以驗證。使用本文仿真數(shù)據(jù)訓練所得的單目深度估計網(wǎng)絡(luò)模型,以及使用真實數(shù)據(jù)和其他仿真數(shù)據(jù)訓練網(wǎng)絡(luò)模型的結(jié)果,在相同的公開數(shù)據(jù)集上進行測試,結(jié)果表明,本文數(shù)據(jù)訓練所得的模型在各項常用深度估計指標上優(yōu)于其他訓練模型。
此外,本文仿真數(shù)據(jù)涵蓋更豐富的特殊場景數(shù)據(jù),因此,本文使用特殊場景數(shù)據(jù)對單目深度估計網(wǎng)絡(luò)進行補充訓練。實驗結(jié)果表明,特殊場景仿真數(shù)據(jù)的補充可以有效增強模型訓練結(jié)果在特殊場景下的深度預(yù)測表現(xiàn)。
本文使用Unity3D 2019.4 LTS平臺對仿真場景進行搭建。選擇計算機圖形引擎Unity3D的優(yōu)勢在于,使用公開圖形引擎使本方法更易遷移使用,并且Unity3D擁有豐富的圖形資源和強大的功能插件儲備,作為目前最為常用的游戲引擎之一,可以近乎實現(xiàn)對真實場景的全部還原。因此,本文在場景構(gòu)建時,考慮到了所有現(xiàn)實生活中所需用到的視覺任務(wù)應(yīng)用場景,而不僅僅是大多公開數(shù)據(jù)集因客觀條件所限而選擇的駕駛場景或室內(nèi)場景等。完整的場景構(gòu)建主要分為場景物體搭建、動態(tài)行人車輛運動規(guī)劃以及晝夜天氣系統(tǒng)設(shè)計。
首先,本文以購買或建模的方式廣泛收集人物、建筑物以及生活雜物等三維模型,在進行特定更改和組合后成為Unity中的預(yù)設(shè)體(Prefab),比如,車輛和人物以及燈光組成夜晚中行駛的車、樹木和圍欄以及雜物組合成為街邊的景觀樹等,這樣可以大幅加速場景搭建的速度。在擁有足夠豐富的基礎(chǔ)模型以后,本文編寫腳本實現(xiàn)選取四個點后可以自動閉合形成擁有道路、路邊雜物、靜態(tài)人物車輛和位置不變的動態(tài)人物以及建筑物的城市街區(qū)。
建立好靜態(tài)街區(qū)模型以后,本文在部分路口的斑馬線和人行道上手動放置以固定巡邏路線行走的行人,以及在主要街道上以固定路線巡航的車輛。
最后在晝夜變化上,本文編寫腳本使得場景主光源(Directional Light)可以隨初始設(shè)定好的場景內(nèi)相對時間動態(tài)變化。白天時模擬日光,光照強度較強,為暖黃色;夜晚時模擬月光,光照強度較低,為冷藍色。配合時間與光照的變化,本文設(shè)計使用動態(tài)天空盒(Dynamic Skybox),隨全天時間的變化,太陽和月亮會在天空交替起落,云層也會動態(tài)變化,并且場景中的所有建筑物燈光、路燈以及車燈等燈光會在夜晚亮起,白天熄滅。天氣效果則是使用Unity自帶的粒子系統(tǒng)(Particle System),可以調(diào)節(jié)雨滴或雪花的大小、位置、濃密度等等,但是需要配合天氣為客觀場景增加細節(jié),如雨傘、積水、人物變化等等,因此,特殊天氣并不能自動生成,需要手動建立與調(diào)整。
本文通過上述方法實現(xiàn)快速建立城區(qū)場景,如圖3所示。圖3(a)為根據(jù)選取的四個點快速建立街區(qū)的雛形,圖3(b)和圖3(c)為更換其他的模型組合以及附加晝夜變化以后實現(xiàn)的效果。
圖3 利用模型資源快速建立街區(qū)場景
除了搭建常見的城區(qū)場景外,還有自然場景和室內(nèi)場景。自然場景方面,本文使用Unity引擎公開的自然環(huán)境插件Gaia進行地形的構(gòu)造,并在此基礎(chǔ)上豐富細節(jié);室內(nèi)場景則是在建筑物內(nèi)進行室內(nèi)物體模型的簡單擺放,因為室內(nèi)場景往往比較小,且種類有限,如住宅、辦公區(qū)域、商場,因此,只需建好基礎(chǔ)環(huán)境,并對環(huán)境內(nèi)物體進行隨機化設(shè)置即可。
由于虛擬仿真數(shù)據(jù)集中資源的可重復(fù)利用性,以及自動化腳本的輔助,在收集足夠多的模型資源以后,能夠以省時、省力的方式快速建立不同的場景,每次只需更新建筑物、人物、車輛以及場景細節(jié)等模型即可。單個場景從收集模型資源到場景構(gòu)建到最終采集,平均只需不到一天的時間,可以采集上萬張深度數(shù)據(jù),并且通過更改資源和隨機化參數(shù),理論上可以采集更多;而人工標注由于深度數(shù)據(jù)的特殊性,需要在深度檢測相機獲取的未標注圖像上利用算法進一步計算丟失部分的深度數(shù)據(jù),并進行手工標注,效率非常低。以NYU Depth V2數(shù)據(jù)集為例,其精準標注數(shù)據(jù)僅占總數(shù)據(jù)量的1/40,并且補充新的數(shù)據(jù)十分困難。
本文最終選取的20個仿真場景作為仿真數(shù)據(jù)集制作素材,圖4展示了這些場景中的截圖。這些場景不僅覆蓋了生活中較為常見的場景,如車輛較多、人員較少的駕駛場景,人群密集的街區(qū)場景,平靜的海邊場景等等;更包含了真實數(shù)據(jù)集中難以覆蓋的復(fù)雜情況場景,如雨雪天氣的自然場景,空間狹小的室內(nèi)場景,燈光復(fù)雜的霓虹夜景等等。并且最終場景擁有非常豐富的細節(jié),采集相機視野內(nèi)至少擁有500萬個三角面(Triangles)和400萬個頂點(Vertex),最多時可高達2000萬個三角面和1400個頂點。
圖4 廣泛覆蓋真實情況的20個仿真場景
本仿真數(shù)據(jù)采集系統(tǒng)提供場景內(nèi)物體的多模態(tài)信息標注,包括分割信息、類別信息和深度信息等。由于本系統(tǒng)主要用于采集深度估計任務(wù)所需要的視差信息,因此,本文聚焦于綜合效果更好的深度圖生成方式,提出一種更為精準的逐像素點提取物體到視點相對深度信息算法,利用非線性深度緩沖重建像素點世界空間深度信息。
計算機圖形引擎中所有的圖形渲染工作均由渲染管線(Render Pipeline)所決定,而在Unity引擎中,圖形的最終渲染效果由其自帶的圖形著色器(Shader)所定義,因此,本系統(tǒng)中場景物體的深度信息獲取由定義物體圖形著色器所實現(xiàn)。
對于獲取采集相機采集圖像中的像素點視差信息而言,本文從圖形渲染管線中的最后用于計算深度信息的深度測試部分進行切入。深度測試的計算過程需要用到深度緩沖信息,利用深度緩沖信息來計算場景中各物體的深度[6]。深度緩沖可以防止非相關(guān)物體的渲染面遮擋到感興趣對象的渲染面前,即只渲染采集相機中最靠前的像素點深度值,可以節(jié)省渲染其他多余三角面,甚至感興趣物體的背面的開銷,是較為直接的深度計算方法。采集相機由遠平面(Far Plane)與近平面(Near Plane)來決定相機內(nèi)采集對象的視差范圍,與視點距離大于遠平面或小于近平面的片元不進行渲染。因此,深度測試常規(guī)使用的線性深度緩沖是將片元對應(yīng)像素點的z坐標,在遠近平面范圍內(nèi)線性映射到[0,1],也是最為簡單、直接的計算方法。然而,采取線性映射深度緩沖的深度圖像對網(wǎng)絡(luò)模型進行訓練實驗發(fā)現(xiàn),以線性方式創(chuàng)建深度緩沖區(qū)所得到的深度圖像中,物體的視差信息精度在近平面和遠平面沒有差別,導(dǎo)致深度尺度不明顯,最后網(wǎng)絡(luò)訓練模型深度估計結(jié)果較差。
因此,本文選擇使用一種非線性映射的方法建立深度測試方程,以遠平面物體的低精度深度信息為代價,換取近平面附近感興趣區(qū)域精度更高的視覺差異信息。此外,本文對遠平面以一定閾值進行截斷,以最大程度保留截斷范圍內(nèi)的深度精度信息。本文采用的非線性深度計算方程如公式(1)
(1)
其中,本文對距離為65.535 m的遠平面進行了截斷,舍棄更遠的物體,因此,深度測試計算公式中所有near表示近平面裁剪距離取0.3 m,far表示遠平面裁剪距離取65.535 m,z表示像素點z坐標值。選擇距離為65.535 m的遠平面進行截斷,是因為本系統(tǒng)希望最終采集的深度圖像編碼為16位PNG格式的灰度圖像,其像素值區(qū)間為[0,216],即[0, 65 535],因此,深度值區(qū)間取[0, 65.535] m,使得深度圖像中的像素強度1對應(yīng)到相機視點的距離為1 mm。圖5為深度值非線性轉(zhuǎn)換函數(shù)圖像,x軸為該點z坐標值,y軸為映射后的深度值Fdepth。
圖5 深度值非線性轉(zhuǎn)換函數(shù)圖
建立在非線性深度緩沖計算函數(shù)的基礎(chǔ)上,本文能夠利用從攝像機指向屏幕像素點的向量重建該像素點的世界空間位置,再計算該點到觀察視點的距離作為深度值。
此像素點深度值計算方法通過圖形著色器進行實現(xiàn)。所獲取的深度圖像最終以PFM和PNG兩種圖像編碼方式,與對應(yīng)的RGB真值圖像一同保存。
數(shù)據(jù)采集方面,在對真實數(shù)據(jù)集中連續(xù)幀序列進行分析時,發(fā)現(xiàn)以KITTI數(shù)據(jù)集[1]和RobotCar數(shù)據(jù)集[7]為代表的常用公開真實數(shù)據(jù)集,以及SYNTHIA等[8]仿真數(shù)據(jù)集中,無論采集主體是車輛還是機器人,其運動模式均較為簡單,具體表現(xiàn)為采集路線單一,并且采集相機在工作時只擁有細微的旋轉(zhuǎn)、傾斜等角度調(diào)整。過于規(guī)律的運動模式導(dǎo)致前后幀圖像相似度較大,數(shù)據(jù)集整體重復(fù)性較高,導(dǎo)致數(shù)據(jù)集實際有效圖像數(shù)量和質(zhì)量下降。因此,使用復(fù)雜運動模式進行數(shù)據(jù)采集是十分必要的[9]。
在場景中以復(fù)雜運動模式進行單次采集雖然簡單,只需設(shè)定好采集主體在場景中的移動線路與相機位姿變動方式和頻率即可。然而對于數(shù)量較多的場景和場景中復(fù)雜的物體空間布局,每次采集都需要手動設(shè)置采集線路。花費十分龐大且不切實際的工作量。因此,考慮到對于仿真數(shù)據(jù)龐大的、有質(zhì)量保障的采集需求,本文利用場景內(nèi)物體空間信息,提出一種基于三維搜索算法的采集路徑自動生成方法。在給定場景空間信息和采集起點的情況下,實現(xiàn)采集相機在任意場景內(nèi)以復(fù)雜運動模式進行全自動協(xié)程數(shù)據(jù)采集。
本系統(tǒng)在進行場景搭建時,場景內(nèi)的物體均基于由物體模型片元構(gòu)成的柵格渲染器(Mesh Renderer)信息建立柵格碰撞體(Mesh Collider),因此,可以獲取所有物體的三維空間位置信息,如圖6所示。本文利用空間柵格信息在局部空間中進行建模,得到一個三維坐標地圖,將空間中物體柵格碰撞體所占據(jù)的坐標點視為地圖中的障礙物,確認采集主體在場景中的三維可活動范圍。每單次采集時,在給定采集起點的情況下,本系統(tǒng)在采集主體可活動空間內(nèi)隨機生成一個采集終點,使用三維搜索算法,得到從采集起點到采集終點的規(guī)劃好的避障路線。
圖6 利用場景中物體的柵格信息構(gòu)建三維地圖
對于尺寸較大的仿真地圖來說,空間內(nèi)的物體信息過多可能使三維空間建模過于緩慢,甚至建模錯誤。因此,在實際路徑規(guī)劃時,會對場景按固定大小進行分區(qū),在初始分區(qū)進行路線生成以后,會根據(jù)具體采集需求對其他分區(qū)再進行采集路線生成。
在采集主體的位移線路規(guī)劃完成后,系統(tǒng)還需設(shè)置一個擾動系數(shù),使采集相機在特定范圍內(nèi)以固定頻率發(fā)生角度偏轉(zhuǎn),包括相機法向量平面的鏡頭轉(zhuǎn)動(Rotate)以及視平面上的鏡頭傾斜(Lean),并對所有采集相機進行同步處理。其中,隨機擾動的系數(shù)設(shè)定處于合理范圍內(nèi),最終效果如圖7所示。
圖7 簡單模式采集與復(fù)雜模式采集圖像對比
在以復(fù)雜運動模式連續(xù)自動采集時,采集相機同時對彩色圖像及其對應(yīng)深度圖像進行數(shù)據(jù)采集,可能會由于渲染時間較長,或數(shù)據(jù)處理量大,編碼時間較長,而出現(xiàn)數(shù)據(jù)存儲延時的問題,導(dǎo)致同一幀彩色圖像和對應(yīng)深度信息標注圖像中各像素無法對齊,這也是仿真數(shù)據(jù)生成最常見的問題。對此,本系統(tǒng)自定義迭代器接口創(chuàng)建多個協(xié)程(Coroutine)分別對不同數(shù)據(jù)的編碼和圖像存儲進行處理,每一次存儲當前幀的圖像都需要等待上一幀的圖像存儲完成。這種方法可能導(dǎo)致存儲頻率不穩(wěn)定,但是可以有效解決同一幀對應(yīng)的多個數(shù)據(jù)圖像實現(xiàn)像素對齊的問題。本系統(tǒng)已實現(xiàn)全自動采集,因此,對數(shù)據(jù)采集頻率穩(wěn)定性不過高要求,只要數(shù)據(jù)信息精確,可以憑較慢的速度進行采集。
至此,系統(tǒng)理論上可為每個構(gòu)建好的場景提供無數(shù)種復(fù)雜運動模式的采集線路,從而對場景內(nèi)的數(shù)據(jù)信息進行最大程度的提取。在實際進行仿真數(shù)據(jù)采集時,也需要對數(shù)據(jù)進行最后的簡單篩查,以避免出現(xiàn)質(zhì)量太差的連續(xù)視頻序列。但總體來說,復(fù)雜運動模式的自主路徑規(guī)劃明顯提升了采集效率,實現(xiàn)了對任意場景的全自動同步深度數(shù)據(jù)采集。
為進行后續(xù)仿真數(shù)據(jù)質(zhì)量驗證實驗內(nèi),本文基于Unity3D 2019.4 LTS平臺,在20個場景以每秒20幀的速率進行長視頻序列采集,在駕駛場景、人員密集場景、室內(nèi)場景和夜晚場景等場景中,以簡單運動模式和復(fù)雜運動模式分別采集分辨率為640×480的雙目立體圖像對,覆蓋本文所考慮到的現(xiàn)實中可能存在的真實情況,以進行最后的實驗探究。最終每個場景、每種運動模式分別采集到序列數(shù)大于5個,每個視頻序列圖像數(shù)量多于1000張的長視頻序列,經(jīng)過篩選最終保留總計20萬對分辨率為640×480的雙目立體圖像對,一個雙目立體圖像對包括固定基線的左右兩個采集相機的彩色圖像及其對應(yīng)的深度真值圖,并同時記錄采集時相機的位置姿態(tài)信息和內(nèi)參矩陣信息。
本文采集時雙目基線長度與相機內(nèi)參矩陣均與KITTI數(shù)據(jù)集對應(yīng),為比較數(shù)據(jù)集間數(shù)據(jù)訓練質(zhì)量,盡量保證訓練參數(shù)相近,而且KITTI數(shù)據(jù)集的相機內(nèi)外參數(shù)更貼近現(xiàn)實使用需求。因此,雙目灰度采集相機基線平均長度設(shè)置為0.54 cm(會在特殊情況下存在波動),內(nèi)參矩陣設(shè)為
(2)
最終所得深度仿真數(shù)據(jù)集與現(xiàn)有公開深度數(shù)據(jù)集進行對比,如表1所示。本系統(tǒng)在深度數(shù)據(jù)方面,不僅支持單目與雙目立體數(shù)據(jù)的同時采集,還可以實現(xiàn)多種特殊場景內(nèi)的數(shù)據(jù)采集。其中,以密集動態(tài)人物和復(fù)雜光照為主,其他無論是真實數(shù)據(jù)集還是仿真數(shù)據(jù)集,均難以提供動態(tài)人群的密集情況。
表1 現(xiàn)有公開數(shù)據(jù)集和公共平臺上的數(shù)據(jù)采集系統(tǒng)與本文采集系統(tǒng)對比
由于本文希望驗證最終所得到的深度仿真數(shù)據(jù)集的質(zhì)量與使用價值,因此,實驗部分選擇使用在單目視覺領(lǐng)域較為常用的單目深度估計網(wǎng)絡(luò)MonoDepth2[13]。
訓練時,本文參考Eigen等[14]和Zhou等[15]提出的以分割(Split)的方式將仿真數(shù)據(jù)集劃分成了多個子集,以進行不同的訓練實驗。MonoDepth2的網(wǎng)絡(luò)模型使用深度學習工具PyTorch實現(xiàn)的,使用Adam優(yōu)化方式[15],默認訓練20個迭代周期(Epochs),批處理大小(Batch Size)為12,輸入和輸出分辨率均為640×192。MonoDepth2會對前15個迭代周期使用10-4的學習率(Learning Rate),然后對其余的迭代周期使用10-5的學習率。對于驗證集,取訓練集大小10%的數(shù)量作為專用驗證集。平滑參數(shù)λ=0.001。
在進行單目訓練時,選擇左側(cè)相機對應(yīng)的彩色圖像與對應(yīng)深度圖像作為單目訓練數(shù)據(jù);進行雙目訓練時,使用雙目立體圖像對數(shù)據(jù)進行訓練;在進行單目和雙目混合訓練時,單目數(shù)據(jù)與雙目立體圖像對以一定比例進行訓練,默認為1∶1。
對于定量實驗所用的測試指標,本文選擇以下常用的量化指標對最終單目深度估計結(jié)果進行評價。
(3)
(4)
(5)
對于定量實驗結(jié)果,通過測試指標比較,誤差值指標AbsRel和SqRel越小,說明模型測試結(jié)果越好; 準確度指標越高,說明模型深度估計能力越好。
定性實驗結(jié)果使用視差圖進行展示,如圖8所示,顏色越深表示深度值越高,離視點更遠; 顏色越淺表示深度值越低,離視點更近。定性實驗檢驗通過對可視化結(jié)果進行主觀分析完成。
圖8 原圖與對應(yīng)視差圖示意圖
Virtual KITTI 2數(shù)據(jù)集[10]是單目和雙目立體視覺深度估計常用公開虛擬數(shù)據(jù)集之一,該數(shù)據(jù)集利用仿真技術(shù)對KITTI數(shù)據(jù)集的所有涉及的參數(shù)及圖像內(nèi)容進行了完整還原。
本文首先分別使用真實數(shù)據(jù)集KITTI、仿真數(shù)據(jù)集Virtual KITTI 2以及本文所得到的仿真數(shù)據(jù)對MonoDepth2默認單目深度估計模型進行訓練,并分別用單目數(shù)據(jù)單獨訓練和單目與雙目數(shù)據(jù)混合訓練的方式進行訓練,然后以KITTI數(shù)據(jù)集以Eigen的分割子集作為測試集,對訓練所得的模型進行測試,按深度估計常用指標對模型的訓練結(jié)果進行對照分析。
從表2實驗結(jié)果中可以看出,在KITTI駕駛場景測試集中,本文使用仿真數(shù)據(jù)訓練得到的模型在四個指標中均獲得了最佳深度預(yù)測效果。
表2 不同數(shù)據(jù)訓練結(jié)果模型在KITTI測試集上的性能表現(xiàn)
此外,為驗證在特殊場景下本文仿真數(shù)據(jù)對模型訓練效果的提升,本文分別使用真實數(shù)據(jù)集KITTI、室內(nèi)深度數(shù)據(jù)集NYU Depth V2以及本文所得到的仿真數(shù)據(jù)對MonoDepth2默認單目深度估計模型進行單目數(shù)據(jù)訓練,并在NYU Depth V2數(shù)據(jù)集上測試。
實驗結(jié)果如表3所示,在NYU Depth V2室內(nèi)數(shù)據(jù)集上測試的對照實驗結(jié)果表明,本文仿真數(shù)據(jù)訓練的模型在四個指標中再次獲得了最佳效果。本文所得的仿真數(shù)據(jù)可以有效提升訓練模型對室內(nèi)場景的深度感知能力。
表3 不同數(shù)據(jù)訓練結(jié)果模型在NYU Depth V2室內(nèi)測試集上的性能表現(xiàn)
在對MonoDepth2單目深度估計網(wǎng)絡(luò)模型訓練結(jié)果使用不同數(shù)據(jù)進行測試時,發(fā)現(xiàn)使用真實數(shù)據(jù)訓練所得到的通用模型訓練結(jié)果,在許多特殊情況下表現(xiàn)失常。
本文歸納了三種具有代表性且模型預(yù)測失常概率較大的特殊場景,分別是雨霧天氣、夜晚以及室內(nèi)場景。本文使用包含這些特殊因素的一定數(shù)量的仿真數(shù)據(jù),對網(wǎng)絡(luò)模型訓練結(jié)果進行針對性微調(diào)(Finetune),以驗證使用特定仿真數(shù)據(jù)補充訓練對模型結(jié)果有所改善。最后,再使用公開數(shù)據(jù)和自采數(shù)據(jù)對改進前的通用模型訓練結(jié)果和針對性改進后的增強模型訓練結(jié)果再使用同樣特殊情況的數(shù)據(jù)進行測試,對可視化對比結(jié)果進行分析。
使用包含特殊情況的本文深度仿真數(shù)據(jù)對模型進行訓練以后,再用訓練模型對夜晚圖像和濃霧圖像進行單目深度估計,可視化結(jié)果如圖9所示。從實驗結(jié)果可以看出,補充包含特殊情況的深度仿真數(shù)據(jù)作為訓練數(shù)據(jù),無論是在公開數(shù)據(jù)上還是在自采數(shù)據(jù)上進行深度估計,均可以有效地增強模型在特殊場景中對物體的深度感知能力。
圖9 本文數(shù)據(jù)訓練的模型深度估計能力提升
本文主要研究的內(nèi)容是基于虛擬仿真技術(shù)建立一個完整的深度仿真數(shù)據(jù)采集系統(tǒng),提供大體量的高質(zhì)量深度仿真數(shù)據(jù),以解決目前由于真實深度數(shù)據(jù)集在數(shù)量和質(zhì)量上的明顯缺陷,導(dǎo)致基于單目深度學習算法的深度估計網(wǎng)絡(luò)因訓練數(shù)據(jù)缺乏而深度預(yù)測能力下降的問題。
本文首先利用虛擬仿真技術(shù)完成真實感增強的仿真環(huán)境搭建;在數(shù)據(jù)生成方面,基于計算機圖形學原理,實現(xiàn)更豐富和更精準的深度數(shù)據(jù)標注;在數(shù)據(jù)采集方面,提出一種具有復(fù)雜運動模式的全自動數(shù)據(jù)采集方案,有效減小數(shù)據(jù)冗余,提高整個數(shù)據(jù)集迭代效率。最終完整構(gòu)成深度仿真數(shù)據(jù)采集系統(tǒng),在數(shù)據(jù)體量上對真實數(shù)據(jù)集形成擴充,并在綜合質(zhì)量上實現(xiàn)超越。最后通過相關(guān)實驗,驗證了本文仿真數(shù)據(jù)能夠?qū)文可疃裙烙嬀W(wǎng)絡(luò)訓練模型的深度預(yù)測能力實現(xiàn)顯著增強。