段俊瑞,石美紅,溫宗周,宋玉琴,薛海偉
(1.西安工程大學(xué) 電子信息學(xué)院,陜西 西安 710048;2.西安工程大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,陜西 西安 710048)
車載視頻監(jiān)控是許多汽車生產(chǎn)商及用戶十分關(guān)注的問題。隨著半導(dǎo)體技術(shù)的快速發(fā)展,近年來眾多為汽車開發(fā)的微處理器,特別是帶視頻處理器的高性能微處理器紛紛面世,這為車載視頻監(jiān)控器的開發(fā)提供了必要條件。目前車載前視、后視監(jiān)控器技術(shù)已經(jīng)成熟,并被廣泛使用。但此類產(chǎn)品僅能在行駛時(shí)為司機(jī)車前的路況(前視),倒泊車時(shí)對(duì)車后的路況(后視)提供幫助,而不能為司機(jī)提供一個(gè)車外完整的環(huán)繞立體視頻。汽車3D環(huán)繞立體車載監(jiān)控系統(tǒng),是一種新興的汽車ADAS技術(shù),是帶有車載攝像頭的駕駛輔助系統(tǒng)。它可為駕駛員提供車輛360°的周圍環(huán)境[1]。目前,國(guó)外對(duì)3D環(huán)繞立體車載監(jiān)控系統(tǒng)的研究處于起步階段,國(guó)內(nèi)對(duì)陸運(yùn)交通視頻監(jiān)控方面有所研究[2-3],但尚沒有3D環(huán)繞立體車載監(jiān)控系統(tǒng)的產(chǎn)品出現(xiàn)[4-5]。
本文設(shè)計(jì)的3D環(huán)繞立體車載監(jiān)控系統(tǒng)來自4臺(tái)攝像機(jī)的視頻流,通過專用算法進(jìn)行組合拼接成3D視頻然后發(fā)送到顯示器,它可以無縫地合成車輛及車輛周圍的鳥瞰圖。該3D環(huán)繞視頻系統(tǒng)解決方案具有行業(yè)領(lǐng)先的視頻處理性能,是適用于任何類型的車輛和需要觀察環(huán)境視野的系統(tǒng),它旨在通過改善觀察視野提高安全性和舒適性,可為司機(jī)、行人和車輛本身帶來巨大的安全環(huán)境。3D環(huán)繞視頻系統(tǒng)可滿足汽車工業(yè)對(duì)安全系數(shù)不斷增長(zhǎng)的需求[6]。通過使用NXP公司生產(chǎn)的S32V234視頻處理器,產(chǎn)生高質(zhì)量(HD)的3D視頻圖像。此外,嵌入式系統(tǒng)可自動(dòng)對(duì)每個(gè)攝像頭外部取景參數(shù)及各個(gè)攝像頭之間色度差進(jìn)行校準(zhǔn)[7]。
系統(tǒng)使用4個(gè)微型攝像頭,分別安裝在車輛的四周,即前后保險(xiǎn)杠上和左右后視鏡下,如圖1所示。
為獲得360°周圍畫面,攝像頭的取景角應(yīng)大于180°。本系統(tǒng)使用的4個(gè)DC3K-1-LVD型攝像頭,具有190°的取景角,1.2 M像點(diǎn),可在-40 ℃~85 ℃的環(huán)境下工作,該攝像機(jī)集成了TI公司生產(chǎn)的DS90UB913Q 串行器,并以FPD-Link III傳輸格式以30 幀/s的速率輸出視頻流。
圖 1 車載攝像頭的安裝Fig.1 Istallation of on-board camera
系統(tǒng)使用NXP公司專為車載嵌入式系統(tǒng)生產(chǎn)的S32V234FS視頻處理器芯片,該芯片為視覺和傳感器融合領(lǐng)域的安全計(jì)算密集型應(yīng)用而設(shè)計(jì),是一款汽車視頻片上系統(tǒng)(SoC)。該處理器搭載了4個(gè)ARM Cortex-A53 和1個(gè)ARM Cortex-M4核,同時(shí)搭載了2個(gè)CogniVueAPEX-2圖像識(shí)別引擎以傳輸和分類大規(guī)模的視頻數(shù)據(jù)和一個(gè)Vivante GP30003D 圖像處理 (GPU)用于視頻處理器。該芯片具有強(qiáng)大的視頻數(shù)據(jù)處理能力,可同時(shí)捕獲多路視頻信號(hào),經(jīng)過處理可獲得理想的3D圖像。此外,該芯片在片內(nèi)集成了眾多的接口以滿足不同系統(tǒng)開發(fā)的需求。系統(tǒng)硬件框圖見圖2。
圖 2系統(tǒng)硬件框圖Fig.2 Hardware diagram of the system
圖2是利用S32V234FS芯片的存儲(chǔ)器總線及控制信號(hào)搭建一個(gè)適合于本系統(tǒng)的最小存儲(chǔ)系統(tǒng),包括2 GB內(nèi)存作為視頻數(shù)據(jù)的緩沖區(qū),1 GB eMMC的閃存作為程序存儲(chǔ)器,16 MB的閃存作為系統(tǒng)的啟動(dòng)引導(dǎo)碼區(qū)以及一個(gè)16 GB的SD卡槽,以便在需要時(shí)存儲(chǔ)視頻圖像。圖中JTAG(片上調(diào)試接口)和URAT(串行通信接口)用于系統(tǒng)的調(diào)試及程序?qū)懙匠绦虼鎯?chǔ)器。本系統(tǒng)使用了S32V234FS芯片提供的2個(gè)MIPI CSI2接口,接收4個(gè)攝像頭傳來的視頻數(shù)據(jù),使用LCD 24 Bits RGB接口輸出合成的3D視頻數(shù)據(jù)到一個(gè)7英寸的LCD顯示屏。使用 CAN 接口構(gòu)成一個(gè)CAN總線端口用于系統(tǒng)和車輛中央控制系統(tǒng)通信,使用Ethernet RGMII接口構(gòu)成一個(gè)LAN端口用于傳輸3D視頻信號(hào)到車輛中央控制系統(tǒng),以便3D視頻能在車輛自身的顯示器上顯示(LCD顯示器)。 由于篇幅有限,本文僅闡述硬件框圖中視頻接收單元和LCD 顯示單元。
本系統(tǒng)使用4個(gè) DC3K-1-LVD 型攝像頭,該攝像頭集成了一片TI公司的 DS90UB913A 串行器,它將來自攝像頭傳感器的信號(hào)轉(zhuǎn)換成串行信號(hào),并通過 FPD-Link III 傳輸層以30 幀/s的速率輸出視頻流。如圖3所示,攝像頭的串行視頻信號(hào)使用 Coaxial 50 Ω電纜送到解串器。解串器使用TI公司的DS90UB964A 芯片,該芯片有4個(gè)獨(dú)立的 FPD-Link III 輸入口,可同時(shí)接收來自 4DS90UB913A 串行器4通道送來的串行視頻信號(hào),它如同一個(gè)解串器集線器,可將接收到的4個(gè)獨(dú)立的串行視頻流解串并匯成符合 MIPI CSI2 標(biāo)準(zhǔn)的視頻數(shù)據(jù)流送到1個(gè)或2 個(gè)CSI2輸出口。圖3包含了一個(gè)攝像頭與 DS90UB964A 解串器的連接方式,攝像頭采用Coaxial電纜供電方式。由于視頻信號(hào)傳輸采用電容耦合方式,因而供電不會(huì)對(duì)視頻信號(hào)的傳輸產(chǎn)生影響。
圖 3攝像頭與解串器的連接及供電Fig.3 Connection and power supply between camera and deserializer
4個(gè)攝像頭通過4個(gè)FPD-Link III傳輸層以電容耦合的方式連接到解串器DS90UB964A,輸出端采用了DS90UB964A的2個(gè)MIPI CSI2 端口。通過設(shè)定DS90UB964A的有關(guān)參數(shù),攝像頭1和2傳輸來的視頻流經(jīng)解串后被匯聚到MIPI CSI2端口1,攝像頭3和4傳輸來的視頻流經(jīng)解串后被匯聚到MIPI CSI2 端口2,同時(shí)為了提高數(shù)據(jù)傳輸?shù)乃俾?。MIPI CSI2均設(shè)置為4對(duì)差分?jǐn)?shù)據(jù)傳輸線,1對(duì)差分時(shí)鐘線,如圖4所示。
圖 4攝像頭,解串器與處理器的連接Fig.4 Connection among camera,deserializer and processor among
圖4中I2C-SCL 和I2C-SDA是I2C傳輸層的時(shí)鐘和數(shù)據(jù)線,I2C傳輸層用于處理器S32V234FS讀寫DS90UB964A的寄存器以設(shè)置DS90UB964A的工作參數(shù)。INT是DS90UB964A給處理器發(fā)出的中斷信號(hào),一旦DS90UB964A成功收到每個(gè)攝像頭一幀視頻信號(hào)就將它解串并轉(zhuǎn)換成MIPI CSI2視頻流,然后發(fā)中斷信號(hào)通知處理器接收視頻信號(hào)。
為了提高 MIPI CSI2傳輸層的帶寬,將解串集線器DS90UB964A設(shè)置為4輸入2輸出的格式,如圖5所示。
圖 5MIPI CSI2傳輸層數(shù)據(jù)的傳輸順序Fig.5 Transmission sequence of MIPI CSIZ transport data
圖5中方塊A1,A2,A3,…,An;B1,B2,B3,…,Bn;C1,C2,C2,…,Cn;D1,D2,D3,…,Dn分別代表攝像頭傳來的一幀視頻數(shù)據(jù),他們按序地輸入到解串器集線器的接收緩沖區(qū),經(jīng)解串集線器解串后攝像頭A和B的幀數(shù)據(jù)交錯(cuò)地從MIPI CSI2 1端口輸送到處理器,而經(jīng)解串后攝像頭C和D的幀數(shù)據(jù)包交錯(cuò)地從MIPI CSI2 2端口輸送到處理器。
圖6是LCD 顯示驅(qū)動(dòng)單元。LCD顯示器使用1塊NHD-7.0-800480EF液晶顯示,該顯示屏有1個(gè)7英寸的LCD顯示屏,分辨率為800×480。它的驅(qū)動(dòng)器使用HX8246-D02驅(qū)動(dòng)器模塊,該驅(qū)動(dòng)器接收來自處理器的24位RGB 數(shù)據(jù)及相應(yīng)的控制信,輸出為1 200行控制像點(diǎn),完全可滿足NHD-7.0-800480EF的需求。TSC2007觸摸屏控制器接收來自觸摸屏的觸摸位置變化參數(shù)并通過I2C傳輸層送到處理器,一旦有觸屏信號(hào)到來TSC2007控制器會(huì)發(fā)出中斷信號(hào)通知處理器,以便處理器及時(shí)處理觸屏請(qǐng)求。
圖 6LCD 顯示驅(qū)動(dòng)單元Fig.6 LCD display drive unit
系統(tǒng)軟件主要由LINUX操作系統(tǒng)、處理器BSP和應(yīng)用程序3部分組成。Linux操作系統(tǒng)采用 LINUX 3.18.10版本,BSP(Board Support Package)即控制器開發(fā)支持包采用S32V234FS生產(chǎn)商N(yùn)XP公司提供的Linux BSP支持包,該支持包包括處理器芯片包含的所有硬件及接口的驅(qū)動(dòng)程序及許多子程序以支持系統(tǒng)的啟動(dòng)、系統(tǒng)的初始化、操作系統(tǒng)和應(yīng)用程序正常工作,并滿足系統(tǒng)實(shí)時(shí)操作的性能。BSP是一個(gè)壓縮文件,該文件在Linux環(huán)境下解壓后便得到一個(gè)包括LINUX核,S32V234FS處理器所有硬件驅(qū)動(dòng)程序及處理器的根引導(dǎo)程序在內(nèi)的基本程序開發(fā)環(huán)境,在此環(huán)境下系統(tǒng)的應(yīng)用程序開發(fā)和工作,軟件的調(diào)試通過JATG接口完成。BSP解包后得到的系統(tǒng)引導(dǎo)程序存于根引導(dǎo)閃爍存儲(chǔ)器中,寫好的應(yīng)用程序調(diào)試完成后由URAT寫入程序存儲(chǔ)器。三維監(jiān)控系統(tǒng)的軟件工作流程如圖7所示。
圖 7軟件工作流程Fig.7 Software workflow
系統(tǒng)啟動(dòng)并完成基本的初始化。進(jìn)入應(yīng)用程序后,首先要對(duì)系統(tǒng)所使用的處理器芯片上的所有接口進(jìn)一步設(shè)置相應(yīng)的參數(shù),對(duì)系統(tǒng)中用到的其他芯片如DS90UB964A解串器,TSC2007 觸摸控制器等通過I2C接口初始化建立相應(yīng)的線程。在LINUX操作系統(tǒng)下,本系統(tǒng)在任務(wù)階段以多線程工作。
線程1處理器從2個(gè)MIPICSI2接口讀4個(gè)攝像頭各一幀數(shù)據(jù)并送內(nèi)存區(qū)。線程2,3,4完成本環(huán)繞立體攝像機(jī)解決方案的3個(gè)關(guān)鍵算法組件,即幾何對(duì)齊、光度對(duì)齊和復(fù)合視圖合成。幾何對(duì)準(zhǔn)校正輸入視頻的眼睛失真,并確定視頻頭的取景位置,光度校正相鄰視圖之間的亮度、對(duì)比度和顏色差使之相匹配,以實(shí)現(xiàn)無縫拼接[8-9]。合成算法在幾何和光度校正之后生成,然后將4個(gè)攝像頭獲得視頻數(shù)據(jù)和車輛本身的圖片合成并生成復(fù)合環(huán)繞視圖。線程5將合成的3D立體圖像送到LCD顯示,也可傳送到車輛自帶的顯示器顯示。如果收到通過CAN總線傳來的車輛中央控制器傳輸立體圖像數(shù)據(jù)的請(qǐng)求,圖像數(shù)據(jù)通過LAN接口送往車輛控制器,否則3D立體圖像數(shù)據(jù)送到LCD顯示器控制器。線程6,完成其他任務(wù),如處理LCD觸摸屏的控制請(qǐng)求,存儲(chǔ)圖像數(shù)據(jù)送到SD卡等。
將攝像頭分別安裝在一輛轎車的前后保險(xiǎn)杠和左右后視鏡進(jìn)行系統(tǒng)測(cè)試。圖8(a)為該系統(tǒng)在泊車時(shí)的拍攝效果,圖上方分別是前后左右4個(gè)攝像頭獨(dú)立的影像。為測(cè)試車輛模型照片,預(yù)先存于SD卡中,大圖則為本系統(tǒng)合成的效果圖。圖8(b)為該系統(tǒng)在行進(jìn)過程中的拍攝效果。由此可以看出本三維環(huán)繞車載監(jiān)控系統(tǒng)基本達(dá)到了預(yù)期的效果,但需進(jìn)一步完善。
(a) 車輛靜態(tài)測(cè)試效果
(b) 車輛動(dòng)態(tài)測(cè)試效果圖 8車輛測(cè)試效果Fig.8 Test results of vehicles
本系統(tǒng)是為轎車設(shè)計(jì),但也可用于其他車輛,例如卡車、工程車輛、收割機(jī)、裝甲車、坦克等。本系統(tǒng)經(jīng)過簡(jiǎn)單的升級(jí)可使用6~8個(gè)攝像頭,以便更好地獲取周圍環(huán)境的影像。在使用6~8個(gè)攝像頭時(shí),還可降低對(duì)攝像頭取景角的要求(這時(shí)取景角可小于180°)。