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