王曉華,賈繼洋
(西安工程大學 電子信息學院,陜西 西安 710048)
由于天氣、道路以及許多人為因素,交通車輛有時會出現安全問題,因而對于交通車輛的實時定位與監控尤為重要[1-2].基于實時視頻功能的車輛監控系統能滿足交通公司對車輛實時行駛情況的及時掌握,尤其是在有突發事故發生時,能通過視頻及時看到事故現場情況,可以提高對突發事故的反應速度[3-4].
目前,對車輛監管系統的研究,國內已取得了一些成果.文獻[5]應用地理信息系統(GIS)技術及GPS技術,實現了對管理平臺監控模塊的電子地圖操作,但沒有對車廂內進行實時監控;文獻[6]采用了嵌入式技術、無線通信(WIFI和GPRS)技術,提出了一種旅游車輛車載監控系統的設計方案,能夠實現車廂內近距離的圖片傳輸,但沒有實現遠程的視頻傳輸.
本文研制了一套車輛遠程實時視頻監控系統.該系統能夠實時將車輛的行駛狀態和運行環境上傳到車載視頻監控平臺;在突發緊急事件時,車載監控系統會把信息實時地記錄下來發送到監控指揮中心,便于對事故的及時處理;能通過GPS實時定位車輛位置,并通過PC聯網觀看前端實時視頻,在監控中心實現對車輛的遠程實時監控.
車載監控終端安裝在旅游車輛上,它的主要功能是負責實時采集車輛內外的各種數據,實現車內視頻查看和車輛控制功能,同時可以對采集到的視頻數據進行壓縮編碼、封包并傳輸到遠程監控中心.
車載監控終端的硬件組成如圖1所示,其結構按照功能模塊劃分,主要包括主處理器模塊、數據采集模塊和數據傳輸模塊3部分.主處理器模塊主要包括嵌入式主處理器、電源、LCD顯示器等功能模塊;數據采集模塊為攝像頭模塊、其他傳感器模塊;數據傳輸為3G模塊.

圖1 車載監控終端硬件組成
1.1.1 主處理器模塊 主處理器選擇基于S3C6410JZF-S內核的屬于ARM11體系的微處理器S3C6410[7].它支持外擴存儲器、內置了LCD控制器、I2C總線接口、UART串口和USB接口等,功能豐富,便于擴展LCD充當了監控終端的人機交互的接口,可以通過它對車輛進行控制以及播放本地視頻圖像.本地視頻也可存放于存儲器中或者被壓縮、傳輸.
1.1.2 數據采集模塊 數據采集模塊包括ov9650攝像頭、傳感器和GPS模塊.攝像頭通過CAMEAR接口與ARM連接;傳感器通過USB接口將采集到的車輛行駛數據傳給ARM;定位數據采集則應用VK1513 GPS模塊來實現,通過串口連接.
1.1.3 數據傳輸模塊 數據傳輸模塊選用中興 MF190的3G無線上網卡,負責車輛監控系統中車載終端和監控中心之間的通信,該3G無線上網卡通過USB接口與ARM相連.
遠程監控中心是一臺接入Internet的PC機,登錄監控中心界面即可查看車輛視頻信息以及車輛定位信息.車載監控終端與遠程監控中心通過無線通訊網絡溝通,車載監控終端信息通過移動通信網絡發送給遠程監控中心,同時將監控中心的反饋信息傳輸給車輛.
系統功能依托Linux系統、設備驅動程序和用戶應用程序實現.嵌入式Linux系統和USB驅動、LCD驅動、GPS驅動、串口等外設的驅動技術都比較成熟.通常的外設驅動移植過程如下:首先對內核文件中的參數重新配置,使S3C6410可以支持驅動;接著添加外設地址,注冊外設;然后重新編譯內核并引導;然后編寫驅動程序,編譯成ko模塊;最后加載驅動,在/dev目錄下生成相應的設備文件.用戶程序指為完成系統功能而編寫的應用程序,下面介紹視頻信號的采集、處理程序以及GPS定位程序.

圖2 視頻采集流程
在Linux下,所有外設都被看成一種特殊的文件,成為“設備文件”,因此可以通過編寫V4L2接口函數[8-9]對攝像頭對應的設備文件video 0操作,從而實現視頻采集.每采集一幀視頻數據就對其編碼、打包、發送.本系統把攝像頭的內存映射到應用程序的地址空間,視頻數據本身不被拷貝,只是交換指向數據緩沖區的指針,提高了采集效率.采集過程如圖2所示.
H.264視頻編碼僅僅規定了輸入碼流的格式和輸出比特流的句法結構,具體的編碼器在實現上靈活.H.264編碼器主要采用了幀內/幀間預測、運動估計、運動補償、整數變換、量化和熵編碼等方式,以提高對圖像的壓縮率[10-12].相比較其他基于H.264的開源編解碼器,X264在不明顯影響編碼性能的情況下,裁剪了H.264中多參考幀等算法復雜的部分以提高運算速度.因此本系統采用了X264軟編碼對采集到的視頻數據進行編碼.用到的函數如下:
2.2.1 初始化函數 void compress-begin(Encoder *en, int width, int height);通過函數x264-param-default(en->param)對編碼器進行參數設置,x264-picture-alloc()分配一個buffer,用以存放視頻數據中的Y,U,V.
2.2.2 執行函數 int compress-frame(Encoder *en, int type, uint8-t *in, uint8-t *out);計算一個幀的長度,調用函數x264-encoder-encode(en->handle, &(en->nal), &nNal, en->picture,&pic-out)對該幀編碼.
2.2.3 編碼結束函數 void compress-end(Encoder *en);調用x264-picture-clean(en->picture),更新圖片區,調用x264-encoder-close(en->handle),關閉編碼器和輸入輸出文件.
H.264編碼后的數據分為視頻編碼層(VCL)和網絡提取層(NAL).VCL數據表示被壓縮編碼后視頻數據序列,先被映射或封裝進NAL單元中.每個NAL單元包括一個原始字節序列負荷和一組對應于視頻編碼的頭信息.本系統通過C/S架構[13],在應用層采用RTSP控制協議,傳輸SDP文件開啟會話,視頻數據采用RTP封裝后承載在UDP上,并通過RTCP協議監測傳輸質量,開銷相對較小,傳輸效率較高.
GPS模塊主要用于接收GPS導航衛星的信息[14],在車載終端顯示車輛當前所處的位置、速度、方向等信息,并將此數據通過3G網絡傳送到遠程監控中心,車輛的狀態和運動軌跡在遠程監控中心安裝的電子地圖上實時顯示.
在Ubuntu10.10系統環境下,選擇Linux3.0.1內核版本,將GPS模塊、3G模塊以及攝像頭模塊需要的功能編譯進內核,生成新的內核鏡像zImage,并通過一鍵燒寫將其燒寫到對應的S3C6410開發板上.將各模塊同開發板連接,并將各模塊驅動文件手動加載到開發板,使模塊都能夠正常的工作,然后啟動監控中心,在實驗室的條件下進行聯合測試.分別執行各應用程序,遠程監控中心作為服務器端開始監控后,實時等待作為客戶端的車載終端連接,并顯示當前采集的視頻和GPS數據.
通過在應用程序中設置不同的分辨率改變視頻的采集幀率和數據傳輸所占帶寬,以驗證本文搭建的系統的性能.不同分辨率下視頻采集的幀率占用的帶寬見表1.

表1 不同分辨率下的幀率占用帶寬情況
從表1可以看出,分辨率設置為176×144,320×240時,采集視頻的幀率為27幀/s和16幀/s,視頻顯示流暢,可以滿足視頻監控的要求,但是顯示快速運動的圖像仍需要進一步的完善;分辨率設置為640×480時,采集的視頻數據比較大,每秒僅僅可以采集8幀,視頻顯示有延遲,表明分辨率不能設置太大.
3G無線網絡可以適應在不同分辨率下的帶寬占用,但是當分辨率設置為640×480時,占用帶寬有所下降,說明對視頻數據的編碼速度比網絡傳輸的速度要慢,限制了傳輸的數據,因此采用高分辨率時,要考慮對編碼器的優化,以進一步提高系統的實時性.
通過上述數據分析,最后設置的分辨率為320×240,采集的視頻格式為YUV420;編碼幀率分子為20、幀率分母為1、碼率為1 024×10.將采集到的視頻數據通過X264軟編碼,然后將編碼后的視頻數據進行基于RTP協議的封包并應用SOCKET編程將其發送到遠程監控中心,PC機作為遠程監控中心選用VLC播放器對接收的視頻數據解碼播放.視頻信息在PC機上的實時解碼播放,如圖3所示.從圖3可以看出,播放連續,視頻清晰,表明視頻編碼基本沒丟失視頻的有效信息,傳輸過程也沒有數據丟包現象.

圖3 PC機實時視頻播放
在實際的應用中,由于GPS定位數據通過無線網絡遠距離發送,所以對車輛定位的實時性有一定的影響,進而影響了定位的經度.除了數據傳輸過程中時延的影響,GPS本身誤差和地圖誤差也對定位經度有一定的影響.通過差分傳輸方式可以很大部分地減小GPS本身帶來的誤差,通過采用多個控制點進行地圖校準來減少地圖誤差.由于研究的環境限制,在實驗室的條件下模擬車輛定位,通過GPS模塊采集定位信息,然后通過無線網絡將其發送到監控中心PC機上顯示位置,定位誤差為5~8m,與一般GPS定位系統誤差相同.本系統同時將定位信息存儲到access數據庫中,由于風速對GPS模塊天線的影響,所以定位精度在不斷的微小變化,定位信息穩定在小數點后第三位.
(1) 構建的基于ARM的遠程實時視頻監控系統實現了將GPS定位、3G無線網絡通信技術和視頻編解碼技術等技術的集成應用.
(2) 將本系統應用于車輛的遠程實時監控中,管理者能根據車輛傳來的信息實時了解車輛行駛狀況,并能及時發現突發事件,以便解決.
(3) 本系統的模塊化設計思想以及系統具有的開放性,可以在系統原有的基礎上加入更多的外設,針對用戶的需求進行修改,使其應用可以擴展到更多領域.
參考文獻:
[1] JAYAVARDHANA Gubbi,RAJKUMAR Buyya,SLAVEN Marusic,et al.Internet of Things (IoT):A vision, architectural elements, and future directions[J].Future Generation Computer Systems, 2013,29(7):1645-1660.
[2] 蔣新華,陳宇,朱銓,等.交通物聯網的發展現狀及趨勢研究[J].計算機應用研究,2013,30(8):2256-2261.
[3] 吳忠澤.中國智能交通行業發展現狀與未來發展趨勢[J].電氣時代,2013(6):24-26.
[4] DIMITRAKOPOULOS G.Intelligent transportation systems based on internet-connected vehicles: Fundamental research areas and challenges[C].ITS Telecommunications (ITST), 2011 11th International Conference.New York:IEEE,2011:145-151.
[5] 楊苗.基于GPS/GIS的車載監控系統監控模塊的設計與實現[D].西安:西安電子科技大學,2012:5-38.
[6] 李萍.基于嵌入式系統的旅游車輛監控終端的研制[D].西安:西安工程大學,2013:5-50.
[7] 施樂平,楊征宇,馬憲民,等.ARM嵌入式系統綜述[J].中國測試,2012,38(2):14-16.
[8] 劉登誠,沈蘇彬,李 莉.基于V4L2的視頻驅動程序設計與實現[J].微計算機信息,2011,27(10):56-58.
[9] LU yinli,YU Hongli,ZHANG Pengpeng.The implementation of embedded image acquisition based on V4L2[C].Electronics,Communications and Control (ICECC),New York:IEEE,2011:549-552.
[10] 茅炎菲.基于RTSP協議和H.264編碼的網絡視頻監控系統的設計與實現[D].杭州:浙江大學,2011:53-54.
[11] ZHANG Dong,LI Bin,XU Jizheng,et al.Fast transcoding from H.264 AVC to high efficiency video coding[C].Multimedia and Expo (ICME),New York:IEEE,2012:651-656.
[12] 鄭慶紅.基于H.264的視頻傳輸系統的設計與實現[J].無線電工程,2011,41(8):12-14.
[13] 解丹.基于C/S架構的車輛遠程監控系統的設計與實現[D].武漢:華中科技大學,2011:17-48.
[14] 溫宗周,陳改霞.基于GPS/GPRS的遠程車輛管理系統的設計[J].電子測量技術,2013,36(8):76-79.