曹盛福,王宇鵬,張 凱,梁利平
(合肥工業(yè)大學(xué) 電氣自動(dòng)化工程學(xué)院,安徽 合肥 230002)
隨著社會(huì)的快速發(fā)展,車輛越來越多,各類 交通事故有愈演愈烈的趨勢(shì)。導(dǎo)致交通事故發(fā)生的因素是多方面的,其中,對(duì)交通事故嚴(yán)重程度影響最大的是機(jī)動(dòng)車風(fēng)險(xiǎn)因素[1],如車輛自身結(jié)構(gòu)不合理、汽車性能不達(dá)標(biāo)等,而A柱盲區(qū)的存在則是車輛自身結(jié)構(gòu)不合理的主要體現(xiàn)之一。A柱是風(fēng)窗玻璃與前車門之間的連接柱,其主要作用在于支撐車體結(jié)構(gòu),但也使得駕駛員前側(cè)視線受到嚴(yán)重的影響,產(chǎn)生視覺盲區(qū),帶來安全隱患。
針對(duì)A柱盲區(qū)問題,王智杰等[2]通過超聲波收發(fā)模塊和紅外感應(yīng)模塊對(duì)A柱盲區(qū)范圍內(nèi)探測的信號(hào)進(jìn)行處理,并通過發(fā)光二極管(Light Emitting Diode, LED)燈條對(duì)駕駛員進(jìn)行預(yù)警;許彥平[3]提出一種結(jié)合雙目相機(jī)人眼精準(zhǔn)定位、空間轉(zhuǎn)換與透視變換等技術(shù)的汽車A柱盲區(qū)可視化車載顯示裝置,在滿足汽車A柱剛度的前提下改善駕駛員視野;廖術(shù)娟[4]基于“電子透明”理念,研究了基于數(shù)字信號(hào)處理(Digital Signal Processing, DSP)的汽車A柱盲區(qū)消除系統(tǒng),滿足了駕駛員對(duì)安全性和舒適性的要求。本文提出的基于視覺傳感器和視線追蹤技術(shù)的車載智能A柱顯示系統(tǒng)是針對(duì)A柱盲區(qū)問題的一種新的解決方法,研究了雙目與頭部位置坐標(biāo)系統(tǒng)一方案,并給出統(tǒng)一坐標(biāo)后通過何種算法指令外部攝像頭隨動(dòng),以期真實(shí)呈現(xiàn)A柱遮擋區(qū)的影像在顯示器上,讓A柱近似的透明化。整個(gè)系統(tǒng)具有較高實(shí)用性。
本文著重于A柱盲區(qū)顯示系統(tǒng)全系統(tǒng)的研究,對(duì)設(shè)備的選型和安裝給出了建議和參考案例,并對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行了簡要分析,具有一定的科學(xué)和工程價(jià)值。
本系統(tǒng)采用在A柱位置安裝一個(gè)形狀大小與A柱相同的顯示屏,顯示駕駛員被A柱阻擋的視野影像的方式解決A柱盲區(qū)問題。其中,盲區(qū)視野影像由安裝在車輛左后視鏡處(對(duì)于絕大多數(shù)車輛,這可以看成是A柱所在的位置)的攝像頭拍攝得到,并通過藍(lán)牙模塊傳遞給車內(nèi)顯示屏。
在A柱位置固定的情況下,駕駛員頭部移動(dòng)或視角變化會(huì)導(dǎo)致盲區(qū)區(qū)域不同(如圖1所示),因此,要求顯示屏能夠根據(jù)駕駛員頭部位置和視角的改變,實(shí)時(shí)動(dòng)態(tài)地調(diào)整顯示駕駛員被A柱阻擋的視野;由于顯示屏上的影像直接由攝像頭拍攝獲得,影像的調(diào)整可以通過利用舵機(jī)控制攝像頭旋轉(zhuǎn)來實(shí)現(xiàn)。
圖1 駕駛員頭部位置與盲區(qū)區(qū)域的關(guān)系
分析攝像頭旋轉(zhuǎn)的角度和駕駛員頭部位置與視角的關(guān)系。由圖1可見,左側(cè)A柱盲區(qū)實(shí)際上是一個(gè)扇形區(qū)域,其夾角約為6.8°,且會(huì)隨著車速的變化產(chǎn)生小幅度的改變[5];其中心線即駕駛員頭部位置與其在A柱上注視點(diǎn)連線的延長線。由于攝像頭被安裝在左后視鏡,近似為A柱所在位置,因此,只要使攝像頭拍攝方向始終跟隨上述連線延長線方向,就可以使顯示屏實(shí)時(shí)顯示A柱盲區(qū)視野。
為了獲取上述延長線方向(角度),如圖2所示,可以在汽車平面上建立直角坐標(biāo)系。之后,只要利用視覺傳感器獲取駕駛員頭部位置坐標(biāo)a,利用視線跟蹤設(shè)備獲取駕駛員注視點(diǎn)坐標(biāo)b,就可以計(jì)算出這兩點(diǎn)連線與坐標(biāo)系Y軸的夾角c,即駕駛員頭部位置與其在A柱上注視點(diǎn)連線的夾角。驅(qū)動(dòng)舵機(jī)控制攝像頭旋轉(zhuǎn)到該角度,就完成了對(duì)影像的智能控制。
圖2 坐標(biāo)系示意圖
基于以上設(shè)想,可將系統(tǒng)分為數(shù)據(jù)采集與處理、圖像控制與顯示兩個(gè)模塊。其中,數(shù)據(jù)采集與處理模塊又分成注視點(diǎn)獲取、頭部位置獲取以及數(shù)據(jù)處理三個(gè)子單元。注視點(diǎn)獲取單元獲取駕駛員注視點(diǎn)信息a,頭部位置獲取單元獲取駕駛員頭部位置信息b,數(shù)據(jù)處理單元接收這兩組信息并進(jìn)行處理,得到攝像頭應(yīng)當(dāng)旋轉(zhuǎn)的角度c并將其傳送給圖像控制與顯示模塊;圖像控制與顯示模塊連接攝像頭和顯示屏,并進(jìn)行圖像的處理和傳輸,同時(shí),舵機(jī)接收來自數(shù)據(jù)采集與處理模塊的數(shù)據(jù)c并與攝像頭相連,控制攝像頭的旋轉(zhuǎn)。系統(tǒng)整體框圖如圖3所示。
圖3 系統(tǒng)整體框圖
視覺傳感器是頭部位置獲取單元的主要組成設(shè)備,用于檢測駕駛員位置并輸出其中心坐標(biāo),本系統(tǒng)選擇MU視覺傳感器。
MU視覺傳感器是一款內(nèi)置深度學(xué)習(xí)引擎的圖像識(shí)別傳感器,體積小巧,含有多種視覺算法,功能強(qiáng)大。該傳感器可以檢測識(shí)別多種目標(biāo)物體,例如:顏色檢測、球體檢測、人體檢測等,識(shí)別人體時(shí)不需使用者佩戴任何設(shè)備;檢測結(jié)果(尺寸、坐標(biāo)等)可通過通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter, UART)方式進(jìn)行輸出;內(nèi)置算法均在本地處理,無需聯(lián)網(wǎng)就可進(jìn)行圖像識(shí)別;適用于Arduino開發(fā)平臺(tái),算法修改方便。圖4和表1分別列出了MU視覺傳感器實(shí)物圖及部分功能/參數(shù)。
圖4 MU視覺傳感器
表1 MU視覺傳感器部分參數(shù)
視線跟蹤設(shè)備用于注視點(diǎn)獲取單元檢測駕駛員視線信息,輸出其在顯示屏上的注視點(diǎn)坐標(biāo),本系統(tǒng)選用的是Tobii眼動(dòng)儀。
Tobii眼動(dòng)儀是一款遙測式視線跟蹤設(shè)備,其可以準(zhǔn)確記錄人們視線焦點(diǎn)所在的位置,且其體積較小,重量輕,非常適合安裝于汽車中,對(duì)汽車內(nèi)部結(jié)構(gòu)造成的影響極小。此外,本設(shè)備對(duì)是否佩戴眼鏡具有極強(qiáng)的兼容性,對(duì)被試者的頭動(dòng)和不同光線條件具有高度容忍性,且性能優(yōu)良,價(jià)格實(shí)惠。圖5和表2是Tobii眼動(dòng)儀實(shí)物圖以及部分技術(shù)參數(shù)。
圖5 Tobii眼動(dòng)儀
表2 Tobii眼動(dòng)儀部分技術(shù)參數(shù)
為保證影像的清晰度和流暢度,攝像頭選用的是S330USB免驅(qū)工業(yè)攝像頭,圖6和表3是攝像頭實(shí)物圖和主要產(chǎn)品參數(shù)。
表3 S330工業(yè)攝像頭主要參數(shù)
圖6 S330工業(yè)攝像頭
由于不同汽車的A柱形狀、尺寸略有差異,因此,對(duì)于不同汽車,需要為之專門定制合適的顯示屏??紤]到大多數(shù)A柱區(qū)域?yàn)榫匦?,使用了市面上一種28.65 cm×18.47 cm(12.6寸)帶魚顯示屏來進(jìn)行模擬實(shí)驗(yàn)。圖7和表4分別列出了顯示屏實(shí)物圖和主要產(chǎn)品參數(shù)。
圖7 帶魚顯示屏
表4 帶魚顯示屏主要產(chǎn)品參數(shù)
3.1.1 車外部分
車外部分包括攝像頭、舵機(jī)、藍(lán)牙模塊和電源。其中攝像頭與舵機(jī)固定連接并安裝在左后視鏡位置,舵機(jī)初始角度為0°,此時(shí)攝像頭拍攝方向?yàn)檐囕v正前方。藍(lán)牙模塊與舵機(jī)連接,作用是接收控制信息控制舵機(jī)旋轉(zhuǎn)。電源為車外模塊供電。藍(lán)牙模塊和電源的安裝要求是不阻礙舵機(jī)轉(zhuǎn)動(dòng)和攝像頭拍攝。
3.1.2 車內(nèi)部分
車內(nèi)部分包括MU視覺傳感器、Tobii遙測儀、顯示屏、樹莓派開發(fā)板、Arduino UNO開發(fā)板(后簡稱UNO開發(fā)板)、藍(lán)牙模塊和電源。
顯示屏安裝于A柱位置,要求形狀大小貼合A柱,并且不產(chǎn)生額外的盲區(qū)。樹莓派開發(fā)板、UNO開發(fā)板、藍(lán)牙模塊及電源安裝在顯示屏背面,要求盡量減小空間占用、不遮擋顯示屏畫面、不產(chǎn)生額外的盲區(qū)。
Tobii眼動(dòng)儀的工作原理[6]是通過攝像頭獲取人的眼部圖像和視野場景圖像,提取相關(guān)的特征參數(shù)進(jìn)行計(jì)算分析。具體地說,其視線追蹤功能由標(biāo)定和測量兩個(gè)主要環(huán)節(jié)組成:輸入信號(hào)為連續(xù)的眼部圖像和視野場景圖像或真實(shí)的視線標(biāo)定空間,先經(jīng)過標(biāo)定獲得注視點(diǎn)與眼動(dòng)特征之間的映射模型,再實(shí)時(shí)提取眼動(dòng)特征代入映射模型中即可得到注視點(diǎn)估計(jì)坐標(biāo),最后將此坐標(biāo)與視野場景圖像或真實(shí)的注視點(diǎn)平面進(jìn)行匹配即可實(shí)現(xiàn)視線跟蹤的功能。根據(jù)獲得的注視點(diǎn)坐標(biāo)和眼動(dòng)特征即可計(jì)算出所需的視線信息。工作原理如圖8所示。
圖8 Tobii眼動(dòng)儀工作原理示意圖
結(jié)合Tobii眼動(dòng)儀的工作流程可知,需將其安裝在車內(nèi)儀表盤位置,攝像頭正對(duì)駕駛員面部。然后進(jìn)行眼動(dòng)儀的標(biāo)定:將Tobii眼動(dòng)儀與顯示屏連接,使用者依次注視顯示屏上顯示的五個(gè)校準(zhǔn)點(diǎn),設(shè)備內(nèi)置算法將會(huì)開始進(jìn)行校準(zhǔn)工作,校準(zhǔn)完成后,Tobii眼動(dòng)儀就可用于獲取駕駛員在該顯示屏上的注視點(diǎn)位置。
MU視覺傳感器安裝在駕駛員正上方,傳感器攝像頭正對(duì)駕駛員頭部;通過杜邦線與UNO開發(fā)板連接,如圖9所示分別是傳感器接線示意圖和實(shí)物圖。
圖9 視覺傳感器接線圖與實(shí)物圖
由于采用Arduino開發(fā)平臺(tái),希望識(shí)別的是駕駛員頭部中心坐標(biāo),按照產(chǎn)品說明書,需采用以下步驟初始化該傳感器:
1)設(shè)置Address地址:由于采用UART輸出模式,需使用0X00作為廣播地址;
2)設(shè)置Output模式:選擇信號(hào)輸出類型為UART通訊類型,完成后上電;
3)版本校驗(yàn):查詢相關(guān)寄存器來判斷固件是否與手冊(cè)要求的一致,若不一致可能導(dǎo)致寄存器功能或算法不同;
4)設(shè)置硬件和算法參數(shù):產(chǎn)品維庫中具有視覺傳感器識(shí)別人體位置坐標(biāo)所需的庫文件和程序代碼;
5)數(shù)據(jù)輸出。
3.2.1 坐標(biāo)系統(tǒng)一
為了利用駕駛員頭部位置坐標(biāo)a和注視點(diǎn)坐標(biāo)b計(jì)算攝像頭旋轉(zhuǎn)角度c,需要將視覺傳感器和遙測儀輸出坐標(biāo)的參考坐標(biāo)系進(jìn)行統(tǒng)一。方便起見,對(duì)圖2所示參考系進(jìn)行更改,使其原點(diǎn)位于顯示屏左上角、X軸平行于顯示屏上邊沿,作為統(tǒng)一坐標(biāo)系,如圖10所示。
圖10 統(tǒng)一坐標(biāo)系
假設(shè)駕駛員頭部位置坐標(biāo)a=(x1,y1)。在未對(duì)視覺傳感器的算法進(jìn)行更改時(shí),傳感器輸出坐標(biāo)的參考系的原點(diǎn)在穿過傳感器平面中心的法線上,X軸平行于傳感器中軸線。為此,在正式將傳感器用于測量駕駛員頭部坐標(biāo)之前有以下幾步工作要完成:
1)安裝傳感器時(shí),調(diào)整其軸線平行于顯示屏上邊沿;
2)安裝完成后,調(diào)整算法識(shí)別物體類型為球體,將球體置于顯示屏左上角,測得傳感器此時(shí)的輸出坐標(biāo),將其作為偏置量添加到算法輸出量上;
3)改變應(yīng)用在視覺傳感器的算法,使其識(shí)別對(duì)象為人體。
完成上述工作后,視覺傳感器開始工作,如圖11所示,傳感器檢測到目標(biāo)物體時(shí),輔助LED燈將閃爍藍(lán)燈,串口輸出坐標(biāo)值。
圖11 傳感器工作和串口輸出示意圖
經(jīng)過上述調(diào)整,視覺傳感器輸出的坐標(biāo)就是(x1,y1),表5展示了改變視覺傳感器算法前后、測量同一組點(diǎn)位置坐標(biāo)時(shí),傳感器坐標(biāo)輸出的變化情況(偏置量為(50,-50))。
表5 增加偏置量前后的坐標(biāo)輸出
假設(shè)駕駛員注視點(diǎn)坐標(biāo)b=(x2,y2)。由于遙測儀輸出的坐標(biāo)以顯示屏平面為參考系、顯示屏左上角為原點(diǎn),由空間幾何可知,x2就是其輸出的X軸坐標(biāo),y2=0。
3.2.2 舵機(jī)控制
當(dāng)視覺傳感器和遙測儀將測得的a、b坐標(biāo)傳送給UNO開發(fā)板,UNO開發(fā)板內(nèi)的算法將其轉(zhuǎn)換為攝像頭應(yīng)當(dāng)旋轉(zhuǎn)的角度,并通過藍(lán)牙模塊控制位于車外的舵機(jī)旋轉(zhuǎn)相應(yīng)角度。
基于圖5所示的統(tǒng)一坐標(biāo)系,利用坐標(biāo)a= (x1,y1)、b=(x2,0),通過幾何知識(shí)易于求得旋轉(zhuǎn)角度可用如下公式求得
隨機(jī)抽取幾組實(shí)驗(yàn)數(shù)據(jù)如表6所示:
表6 部分實(shí)驗(yàn)數(shù)據(jù)
聯(lián)系控制舵機(jī)的原理[7],設(shè)置一個(gè)50 Hz即20 μs的脈沖寬度調(diào)制(Pulse Width Modulation, PWM)信號(hào),舵機(jī)轉(zhuǎn)動(dòng)角度和在一個(gè)信號(hào)周期內(nèi)高電平持續(xù)時(shí)間有關(guān),將c通過公式(c·11)+500轉(zhuǎn)化為500~480的脈寬值,則每轉(zhuǎn)動(dòng)1°,對(duì)應(yīng)的高電平是11 μs。使舵機(jī)接口保持相應(yīng)時(shí)間的高電平(單位為ns)就可以驅(qū)動(dòng)舵機(jī)到相應(yīng)角度c。舵機(jī)控制部分的流程圖及代碼如圖12、圖13所示。
圖12 舵機(jī)控制流程圖
圖13 舵機(jī)控代碼
視覺傳感器及視線跟蹤設(shè)備的輸出頻率較高,因而系統(tǒng)的響應(yīng)速度主要取決于舵機(jī),由于本系統(tǒng)控制舵機(jī)的脈沖寬度調(diào)制信號(hào)頻率為 50 Hz,為了使其能夠穩(wěn)定運(yùn)行,使用延遲函數(shù)令舵機(jī)轉(zhuǎn)動(dòng)周期為200 ms,即控制攝像頭一秒鐘改變角度5次,顯示屏顯示畫面隨之一同改變。
經(jīng)測試,在上述算法的控制下,舵機(jī)帶動(dòng)攝像頭旋轉(zhuǎn),顯示屏上的畫面較好地反映了駕駛員視野盲區(qū)情況,但由于舵機(jī)轉(zhuǎn)動(dòng)頻率上限不高,畫面有一定的抖動(dòng)感,這可以通過選擇更好的舵機(jī)控制算法來改善,這里便不再深入探討。
3.2.3 圖像顯示
由于市場常見攝像頭的成像分辨率通常是固定的,并且其設(shè)定分辨率難以適配本系統(tǒng)所應(yīng)用的長條顯示屏,因而需要將具有圖像處理能力的單片機(jī)與攝像頭的通用串行總線(Universal Serial Bus, USB)輸出口相連接,并將其傳輸?shù)膱D像信號(hào)進(jìn)行剪裁成適配長條屏幕的尺寸。實(shí)現(xiàn)該過程由兩套方案可供選擇:
方案1:使用stm32的數(shù)據(jù)中心管理接口(Data Center Manageability Interface, DCMI)的裁剪功能,對(duì)攝像頭輸出的像素點(diǎn)進(jìn)行截取,不需要的像素部分不被DCMI傳入內(nèi)存,從硬件接口一側(cè)丟棄。
方案2:使用基于Linux系統(tǒng)的樹莓派卡片機(jī)進(jìn)行剪裁。在Linux環(huán)境下安裝mplayer多媒體工具(sudo apt-get install mplayer),可以使用內(nèi)置的zoom指令指定成像窗口大小,或是直接引用gedit~ /.mplayer/config,zoom=yes指令實(shí)現(xiàn)全屏播放,但是該方案雖然可以在不降低圖像清晰度的情況下使攝像頭成像覆蓋屏幕,但是會(huì)導(dǎo)致成像失真;也可以直接拉伸成像窗口,這樣可以避免圖像失真,但是會(huì)降低攝像頭的成像清晰度,對(duì)攝像頭的像素要求較高。
由于在方案實(shí)現(xiàn)時(shí),樹莓派的Linux系統(tǒng)使得操作更加簡便,并且其更加強(qiáng)大性能使成像的刷新率更高,因而,推薦選取樹莓派微型電腦進(jìn)行圖像處理。
當(dāng)完成對(duì)攝像頭的輸出圖像處理后將信號(hào)通過樹莓派的高清晰度多媒體接口接口輸出至驅(qū)動(dòng)板實(shí)現(xiàn)信號(hào)格式轉(zhuǎn)換,使之在長條屏幕上完成成像即可。
本文設(shè)計(jì)了一款能夠智能顯示駕駛員被A柱所阻擋的視野的車載智能A柱盲區(qū)顯示系統(tǒng),它通過視覺傳感器獲取駕駛員頭部位置坐標(biāo),通過視線跟蹤設(shè)備獲取駕駛員注視點(diǎn)坐標(biāo),結(jié)合A柱位置和結(jié)構(gòu),利用幾何關(guān)系求解出駕駛員盲區(qū)所在位置及攝像頭應(yīng)當(dāng)旋轉(zhuǎn)的角度;再結(jié)合舵機(jī)控制的原理,控制舵機(jī)旋轉(zhuǎn)攝像頭以調(diào)整覆蓋在A柱上的顯示屏的顯示畫面,近似地達(dá)到使A柱相對(duì)于駕駛員透明化的效果。
作為一款車載安全裝置,本系統(tǒng)獨(dú)立于車體結(jié)構(gòu)之外,從顯示屏到傳感器的所有設(shè)備均可根據(jù)具體車型需要,設(shè)計(jì)合適的尺寸和外形,在不對(duì)車體造成任何損害的前提下,保證所有功能的正常實(shí)現(xiàn)。由于顯示屏具有外形、尺寸的可變性,該系統(tǒng)幾乎適用于任何具有A柱盲區(qū)問題的車型,包括但不限于私家車、公交車、工業(yè)用車等。
該系統(tǒng)創(chuàng)造性地利用二維平面中駕駛員頭部位置、注視點(diǎn)坐標(biāo)以及A柱位置,實(shí)時(shí)推算出駕駛員當(dāng)前視野盲區(qū)區(qū)域,在顯示屏上顯示出最貼近與實(shí)際的盲區(qū)視野,達(dá)到A柱近似透明化的效果。它使用的各種傳感器設(shè)備的精度和處理速度足以滿足低速轉(zhuǎn)彎(此時(shí)A柱盲區(qū)影響最為顯著)時(shí),駕駛員對(duì)盲區(qū)視野的實(shí)時(shí)性需求。