裴鵬鵬,樊景帥,陸競英,林琬,張昌德
摘? 要:針對基于視覺的ADAS產(chǎn)品或功能開發(fā),提出一種完整的場景庫建設(shè)方法,并配套開發(fā)相應(yīng)的HIL臺架環(huán)境;以某商用車車載前視攝像頭為例,將場景通過HIL臺架回注到視覺控制器內(nèi)部進行重處理,取得很好效果,驗證了場景庫能很好地支持軟件的迭代開發(fā)和系統(tǒng)功能測試。
關(guān)鍵詞:視覺-ADAS;場景庫;HIL(hardware in loop)
中圖分類號:467.11? ? 文獻標識碼:A? ? 文章編號:1005-2550(2021)05-0085-04
A method of building scenarios library for vision-based-ADAS
PEI Peng-peng, FANG Jing-shuai, LU Jing-ying, LIN Wan, ZHANG Chang-de
(Dongfeng Commercial Vehicles Company, Wuhan 430056, China)
Abstract: This paper puts forward a method of building scenarios library refers to ADAS product development based on vision, and develops the corresponding HIL platform; Taking a commercial vehicle as an example, the scene is reinjected into the controller , the results show this method can well support software s development and test.
目前,自動駕駛汽車測試方法主要分為基于場景的測試方法和基于里程的測試方法兩大類。相比于里程測試,基于場景的測試在測試效率,測試成本等方面具有巨大的技術(shù)優(yōu)勢[1]。但其海量的數(shù)據(jù)來源、復(fù)雜的場景分析提取技術(shù)、對多傳感器多標準體系多仿真環(huán)境的適配支持等造成了落地困難、構(gòu)建方法和標準不一的特點。
就目前的行業(yè)現(xiàn)狀來看,德國的PEGASUS項目、美國NHTSA的場景庫架構(gòu)體系建設(shè)都耗費了相當?shù)臅r間和財力,我國的中汽研也于2015年啟動場景庫建設(shè)工作,目前已經(jīng)發(fā)布“中國典型駕駛場景庫2.0” [2]。對這些場景庫進行研究,發(fā)現(xiàn)主流的建設(shè)思路都是如下圖1所示:
這種建設(shè)方法的特點是全覆蓋場景、數(shù)據(jù)來源太多、分析技術(shù)要求高,場景管理困難等,導致其建設(shè)過程變?yōu)橐粋€耗時耗力的浩大工程。對于基于視覺的ADAS功能前裝產(chǎn)品,ODD相對較窄,往往要求開發(fā)周期短,迭代迅速、功能穩(wěn)定可靠,應(yīng)避免按照主流場景庫思路建設(shè)。以某商用車前視攝像頭為例,擬采用下述方法建設(shè)一個支撐ADAS功能開發(fā)的場景庫。
1? ? 匹配產(chǎn)品定位的場景庫建設(shè)思路
該商用車ADAS產(chǎn)品,定位于城市和高速路況的部分場景,具體為LDW/FCW/LKA/ACC /AEB功能。如下圖2為定版的場景庫開發(fā)邏輯。
這種方法相對于復(fù)雜的主流場景庫開發(fā)思路有如下幾個創(chuàng)新點:①首先應(yīng)從產(chǎn)品功能出發(fā)[3],根據(jù)功能需求做了詳細分解,將場景大綱分為算法識別類、預(yù)警類、ADAS功能三大類;場景來源分為自然駕駛、法規(guī)、第三方數(shù)據(jù)三大類,結(jié)合大綱直接解析出功能場景描述集,將覆蓋性采集變?yōu)獒槍π圆杉?。②針對特定場景,提取場景要素矩陣,利用matlab對場景矩陣做布爾分析得到邏輯和具體場景,利用python工具對場景進行切片、資源管理,自主化程度非常高;③自制回注方法,形成硬件在環(huán),高效迭代驗證。
2? ? 場景庫主體建設(shè)
2.1? ?開放道路采集
針對自然駕駛場景和法規(guī)場景,搭建了測試采集平臺,由VBOX和EyeQ4作為真值,EyeQ4主要負責車道線和自然道路前車動態(tài)識別,Vbox負責封閉法規(guī)場景和靜態(tài)識別,兩者都輸出視頻和can報文;以4通道canoe作為采集設(shè)備,錄制真值和待測設(shè)備的報文,同時真值和待測設(shè)備也有各自的上位機進行實時觀測。如下圖3所示,這套采集系統(tǒng)具有同步功能、且數(shù)據(jù)格式統(tǒng)一、成本低和兼容性高的特點。
采集過程中,嚴格按照預(yù)定的功能描述集進行,本例主要針對動靜態(tài)測速測距、動態(tài)切入切出、高速跟車、城區(qū)避障、法規(guī)要求幾個維度進行采集。過程中,詳細記錄地理位置、道路類型、氣候環(huán)境、交通參與者狀態(tài)、采集人員與車輛狀態(tài)等,最重要的是待測和真值設(shè)備的實時感知數(shù)據(jù)。
2.2? ?數(shù)據(jù)分析、場景提取
當采集的數(shù)據(jù)足夠多后,需要針對某一具體功能場景進行特征提取,形成邏輯或者具體場景。例如針對FCW功能的場景,利用matlab分析形成點陣圖如下圖4所示:
上圖紅色代表已經(jīng)觸發(fā)了報警的場景,黑色代表尚未觸發(fā)報警的場景。發(fā)現(xiàn)數(shù)據(jù)有朝某部分集中的趨勢,說明在城區(qū)道路上,前車速度為0-10km/h,后車速度30-50km/h且前后車相距40-50m時最能觸發(fā)危險場景,這一場景便是場景庫的邏輯場景;根據(jù)概率分析出典型具體場景,然后選擇相關(guān)參數(shù)的臨界值或者更改一些環(huán)境參數(shù)形成重構(gòu)場景,將這樣生成的場景一起歸類到場景庫大綱下的具體場景。樣本量沒有統(tǒng)一標準,可以隨著采集里程的增加,隨時增加建模的原始數(shù)據(jù),使分析結(jié)果更具說服力。
對于提取的具體場景,可以一一追溯到采集的數(shù)據(jù),定位到相應(yīng)的視頻和報文,通過python來進行切片提取。用Pyqt5模塊開發(fā)界面[4]、用openpyxl、matplotlib、cv2等模塊處理報文和視頻并進行切片保存。具體的代碼流程圖如下:
待測設(shè)備輸出的報文帶有視頻幀號信息,canoe采集的所有報文共用一個時間戳,這樣所有報文的時間戳都和視頻有一個固定關(guān)系。對于自然駕駛采集場景,需要人工回放視頻尋找需要的視頻起始幀和結(jié)束幀信息,輸入工具界面,代碼計算報文的時間戳區(qū)間;對于報警類危險場景,代碼將待測設(shè)備和EyeQ4的“warning_msg”報文對比找到功能失效點的時間戳,反過來自動定位視頻的起始和結(jié)束幀號。通過上述方式對視頻、報文進行同步定位,而后通過函數(shù)進行切片。
2.3? ?場景分類、目錄管理
場景描述集合了道路描述+環(huán)境描述+交通參與等要素[5],每個部分的定義和描述方法可以個性化設(shè)置,方便后續(xù)統(tǒng)一管理和搜索應(yīng)用。按照圖2的場景庫開發(fā)邏輯,先通過匹配產(chǎn)品開發(fā)需求、加入標準法規(guī)場景、第三方描述場景、危險場景、常見corner case場景等形成功能場景描述集;再按照描述集針對性路采,通過場景挖掘提取和概率分析形成帶有場景參數(shù)的邏輯場景;最后結(jié)合駕駛習慣、產(chǎn)品ODD等在邏輯場景的基礎(chǔ)上細化參數(shù)形成具體場景。如下表1為本例落地的場景庫描述集的案例展示,按照三大類分類方式總共收納了約290多條場景:
對場景庫的大綱目錄進行管理,目的一是對接場景管理工具,對場景進行搜索和關(guān)聯(lián)。二是當場景庫大綱發(fā)生變化,比如新增或者修改時能快速的重新生成新的目錄。本例把大綱和每條場景描述做成分層文件夾,存放切片結(jié)果。目錄管理工具的代碼流程圖如下:
代碼獲取excel的大綱列表,根據(jù)分級信息,逐層創(chuàng)建目錄。當需要修改時,重新運行程序,代碼會自動處理修改的部分而保存沒有修改的部分。這些建立完成的場景庫,通過成熟的采集、分析方法和切片以及管理工具可以支持場景庫本身的迭代建設(shè),隨著路采數(shù)據(jù)和相應(yīng)法律法規(guī)的健全,場景庫可以不斷的豐富和更新,甚至可以支持因為產(chǎn)品本身定位變化,帶來的場景庫結(jié)構(gòu)變化。
2.4? ?仿真場景補充
很多極端場景或者危險場景自然道路無法采集,比如積雪路面、緊急壁障、高速不同光照強度的隧道等等,這部分可以用仿真軟件補充,本例嘗試過IPG和VTD兩款軟件,都可以創(chuàng)建描述集里面的特殊場景。如下圖7其場景和渲染效果:
通過仿真軟件產(chǎn)生的場景主要當作corner case ,提高場景庫的覆蓋度。后期可以將仿真動畫轉(zhuǎn)成攝像頭輸出的視頻格式加入場景庫備用。
3? ? HIL測試
在沒有視頻暗箱和仿真環(huán)境組成的HIL臺架的前提下,這些場景依然可以快速的投入迭代測試。我們通過研究sensor和視覺控制器本身的架構(gòu)后發(fā)現(xiàn),可以將保存的視頻通過U口導入,經(jīng)過視頻轉(zhuǎn)換板處理后,經(jīng)MIPI口直接注入到視覺控制器的ISP模塊處理。這個方法忽略了攝像頭的鏡頭和CMOS元件,但依然對ISP模塊以及算法策略軟件有著直接的驗證。本例大致的HIL環(huán)境如下圖8所示:
為了驗證這種場景庫構(gòu)建方法的有效性,進行了兩組對比試驗:第一組是選取某一段車道線清晰度較差、同時攝像頭探測到的自車縱軸到車道線距離誤差較大的場景,通過上述方式將這段場景提取出來,在軟件版本沒有迭代的情況下,注入控制器,對比迭代前后版本對同一車道線的識別精度,對比結(jié)果如下圖9所示;第二組是選取一段紅綠燈路口、自車逼近前方靜止車,然后停車等燈的場景,待視覺控制器算法更新迭代后,再將提取的場景注入控制器,對比注入前后控制器輸出的自車到前車的縱向距離,結(jié)果如圖10所示:
由圖9可以看到,在軟件版本和硬件環(huán)境沒有變更的前提下,注入視頻前后控制器輸出的兩次數(shù)值(lane1_Curvature0,攝像頭位置離左側(cè)車道線的距離)幾乎一樣。由圖10可以看到,軟件版本更新前,攝像頭探測到的兩車距離穩(wěn)定性和精度都較差,開發(fā)團隊針對性的更改算法后,識別的到車道線距離則跟真值非常貼近。兩組對比試驗證明注入的場景攝像頭的ISP和控制器的算法模塊都能正確識別到,并且提取的場景本身的質(zhì)量也得到保證,另外這種方式能非常高效地支持算法的迭代開發(fā)與快速驗證。
4? ? 結(jié)論
本文提出了基于攝像頭開發(fā)ADAS功能所需的場景庫建設(shè)思路,通過道路采集、結(jié)合matlab分析挖掘出典型場景、利用python將報文和視頻同步切片保存作為具體場景內(nèi)容的方法建設(shè)了可快速落地的場景庫。并初步建立了場景管理工具;建立了基于MIPI口回注視頻、canoe同步回注報文的HIL臺架,驗證結(jié)果表明這種方法能很好地支持軟件和算法的開發(fā)迭代和測試驗證。
參考文獻:
[1]朱冰,張培興,趙健,陳虹,徐志剛,趙祥模,鄧偉文.基于場景的自動駕駛汽車虛擬測試研究進展[J].中國公路學報,2019(6):1-19.
[2]馮屹,王兆.自動駕駛測試場景技術(shù)發(fā)展與應(yīng)用[M].北京:機械工業(yè)出版社,2020.2.
[3]王鳳嬌,宗巖,靳志剛.自動駕駛仿真測試場景設(shè)計[J].科學技術(shù)創(chuàng)新,2020(29):100-101.
[4]Eric Matthes. Python編程從入門到實踐[M].北京:人民郵電出版社,2020.5.
[5]田思波,樊曉旭.自動駕駛測試場景標準體系建設(shè)的研究和思考[J]. 中國標準化,2020(4):87-91.