王曉華,賈繼洋
(西安工程大學 電子信息學院,陜西 西安 710048)
由于天氣、道路以及許多人為因素,交通車輛有時會出現(xiàn)安全問題,因而對于交通車輛的實時定位與監(jiān)控尤為重要[1-2].基于實時視頻功能的車輛監(jiān)控系統(tǒng)能滿足交通公司對車輛實時行駛情況的及時掌握,尤其是在有突發(fā)事故發(fā)生時,能通過視頻及時看到事故現(xiàn)場情況,可以提高對突發(fā)事故的反應(yīng)速度[3-4].
目前,對車輛監(jiān)管系統(tǒng)的研究,國內(nèi)已取得了一些成果.文獻[5]應(yīng)用地理信息系統(tǒng)(GIS)技術(shù)及GPS技術(shù),實現(xiàn)了對管理平臺監(jiān)控模塊的電子地圖操作,但沒有對車廂內(nèi)進行實時監(jiān)控;文獻[6]采用了嵌入式技術(shù)、無線通信(WIFI和GPRS)技術(shù),提出了一種旅游車輛車載監(jiān)控系統(tǒng)的設(shè)計方案,能夠?qū)崿F(xiàn)車廂內(nèi)近距離的圖片傳輸,但沒有實現(xiàn)遠程的視頻傳輸.
本文研制了一套車輛遠程實時視頻監(jiān)控系統(tǒng).該系統(tǒng)能夠?qū)崟r將車輛的行駛狀態(tài)和運行環(huán)境上傳到車載視頻監(jiān)控平臺;在突發(fā)緊急事件時,車載監(jiān)控系統(tǒng)會把信息實時地記錄下來發(fā)送到監(jiān)控指揮中心,便于對事故的及時處理;能通過GPS實時定位車輛位置,并通過PC聯(lián)網(wǎng)觀看前端實時視頻,在監(jiān)控中心實現(xiàn)對車輛的遠程實時監(jiān)控.
車載監(jiān)控終端安裝在旅游車輛上,它的主要功能是負責實時采集車輛內(nèi)外的各種數(shù)據(jù),實現(xiàn)車內(nèi)視頻查看和車輛控制功能,同時可以對采集到的視頻數(shù)據(jù)進行壓縮編碼、封包并傳輸?shù)竭h程監(jiān)控中心.
車載監(jiān)控終端的硬件組成如圖1所示,其結(jié)構(gòu)按照功能模塊劃分,主要包括主處理器模塊、數(shù)據(jù)采集模塊和數(shù)據(jù)傳輸模塊3部分.主處理器模塊主要包括嵌入式主處理器、電源、LCD顯示器等功能模塊;數(shù)據(jù)采集模塊為攝像頭模塊、其他傳感器模塊;數(shù)據(jù)傳輸為3G模塊.
圖1 車載監(jiān)控終端硬件組成
1.1.1 主處理器模塊 主處理器選擇基于S3C6410JZF-S內(nèi)核的屬于ARM11體系的微處理器S3C6410[7].它支持外擴存儲器、內(nèi)置了LCD控制器、I2C總線接口、UART串口和USB接口等,功能豐富,便于擴展LCD充當了監(jiān)控終端的人機交互的接口,可以通過它對車輛進行控制以及播放本地視頻圖像.本地視頻也可存放于存儲器中或者被壓縮、傳輸.
1.1.2 數(shù)據(jù)采集模塊 數(shù)據(jù)采集模塊包括ov9650攝像頭、傳感器和GPS模塊.攝像頭通過CAMEAR接口與ARM連接;傳感器通過USB接口將采集到的車輛行駛數(shù)據(jù)傳給ARM;定位數(shù)據(jù)采集則應(yīng)用VK1513 GPS模塊來實現(xiàn),通過串口連接.
1.1.3 數(shù)據(jù)傳輸模塊 數(shù)據(jù)傳輸模塊選用中興 MF190的3G無線上網(wǎng)卡,負責車輛監(jiān)控系統(tǒng)中車載終端和監(jiān)控中心之間的通信,該3G無線上網(wǎng)卡通過USB接口與ARM相連.
遠程監(jiān)控中心是一臺接入Internet的PC機,登錄監(jiān)控中心界面即可查看車輛視頻信息以及車輛定位信息.車載監(jiān)控終端與遠程監(jiān)控中心通過無線通訊網(wǎng)絡(luò)溝通,車載監(jiān)控終端信息通過移動通信網(wǎng)絡(luò)發(fā)送給遠程監(jiān)控中心,同時將監(jiān)控中心的反饋信息傳輸給車輛.
系統(tǒng)功能依托Linux系統(tǒng)、設(shè)備驅(qū)動程序和用戶應(yīng)用程序?qū)崿F(xiàn).嵌入式Linux系統(tǒng)和USB驅(qū)動、LCD驅(qū)動、GPS驅(qū)動、串口等外設(shè)的驅(qū)動技術(shù)都比較成熟.通常的外設(shè)驅(qū)動移植過程如下:首先對內(nèi)核文件中的參數(shù)重新配置,使S3C6410可以支持驅(qū)動;接著添加外設(shè)地址,注冊外設(shè);然后重新編譯內(nèi)核并引導;然后編寫驅(qū)動程序,編譯成ko模塊;最后加載驅(qū)動,在/dev目錄下生成相應(yīng)的設(shè)備文件.用戶程序指為完成系統(tǒng)功能而編寫的應(yīng)用程序,下面介紹視頻信號的采集、處理程序以及GPS定位程序.
圖2 視頻采集流程
在Linux下,所有外設(shè)都被看成一種特殊的文件,成為“設(shè)備文件”,因此可以通過編寫V4L2接口函數(shù)[8-9]對攝像頭對應(yīng)的設(shè)備文件video 0操作,從而實現(xiàn)視頻采集.每采集一幀視頻數(shù)據(jù)就對其編碼、打包、發(fā)送.本系統(tǒng)把攝像頭的內(nèi)存映射到應(yīng)用程序的地址空間,視頻數(shù)據(jù)本身不被拷貝,只是交換指向數(shù)據(jù)緩沖區(qū)的指針,提高了采集效率.采集過程如圖2所示.
H.264視頻編碼僅僅規(guī)定了輸入碼流的格式和輸出比特流的句法結(jié)構(gòu),具體的編碼器在實現(xiàn)上靈活.H.264編碼器主要采用了幀內(nèi)/幀間預測、運動估計、運動補償、整數(shù)變換、量化和熵編碼等方式,以提高對圖像的壓縮率[10-12].相比較其他基于H.264的開源編解碼器,X264在不明顯影響編碼性能的情況下,裁剪了H.264中多參考幀等算法復雜的部分以提高運算速度.因此本系統(tǒng)采用了X264軟編碼對采集到的視頻數(shù)據(jù)進行編碼.用到的函數(shù)如下:
2.2.1 初始化函數(shù) void compress-begin(Encoder *en, int width, int height);通過函數(shù)x264-param-default(en->param)對編碼器進行參數(shù)設(shè)置,x264-picture-alloc()分配一個buffer,用以存放視頻數(shù)據(jù)中的Y,U,V.
2.2.2 執(zhí)行函數(shù) int compress-frame(Encoder *en, int type, uint8-t *in, uint8-t *out);計算一個幀的長度,調(diào)用函數(shù)x264-encoder-encode(en->handle, &(en->nal), &nNal, en->picture,&pic-out)對該幀編碼.
2.2.3 編碼結(jié)束函數(shù) void compress-end(Encoder *en);調(diào)用x264-picture-clean(en->picture),更新圖片區(qū),調(diào)用x264-encoder-close(en->handle),關(guān)閉編碼器和輸入輸出文件.
H.264編碼后的數(shù)據(jù)分為視頻編碼層(VCL)和網(wǎng)絡(luò)提取層(NAL).VCL數(shù)據(jù)表示被壓縮編碼后視頻數(shù)據(jù)序列,先被映射或封裝進NAL單元中.每個NAL單元包括一個原始字節(jié)序列負荷和一組對應(yīng)于視頻編碼的頭信息.本系統(tǒng)通過C/S架構(gòu)[13],在應(yīng)用層采用RTSP控制協(xié)議,傳輸SDP文件開啟會話,視頻數(shù)據(jù)采用RTP封裝后承載在UDP上,并通過RTCP協(xié)議監(jiān)測傳輸質(zhì)量,開銷相對較小,傳輸效率較高.
GPS模塊主要用于接收GPS導航衛(wèi)星的信息[14],在車載終端顯示車輛當前所處的位置、速度、方向等信息,并將此數(shù)據(jù)通過3G網(wǎng)絡(luò)傳送到遠程監(jiān)控中心,車輛的狀態(tài)和運動軌跡在遠程監(jiān)控中心安裝的電子地圖上實時顯示.
在Ubuntu10.10系統(tǒng)環(huán)境下,選擇Linux3.0.1內(nèi)核版本,將GPS模塊、3G模塊以及攝像頭模塊需要的功能編譯進內(nèi)核,生成新的內(nèi)核鏡像zImage,并通過一鍵燒寫將其燒寫到對應(yīng)的S3C6410開發(fā)板上.將各模塊同開發(fā)板連接,并將各模塊驅(qū)動文件手動加載到開發(fā)板,使模塊都能夠正常的工作,然后啟動監(jiān)控中心,在實驗室的條件下進行聯(lián)合測試.分別執(zhí)行各應(yīng)用程序,遠程監(jiān)控中心作為服務(wù)器端開始監(jiān)控后,實時等待作為客戶端的車載終端連接,并顯示當前采集的視頻和GPS數(shù)據(jù).
通過在應(yīng)用程序中設(shè)置不同的分辨率改變視頻的采集幀率和數(shù)據(jù)傳輸所占帶寬,以驗證本文搭建的系統(tǒng)的性能.不同分辨率下視頻采集的幀率占用的帶寬見表1.
表1 不同分辨率下的幀率占用帶寬情況
從表1可以看出,分辨率設(shè)置為176×144,320×240時,采集視頻的幀率為27幀/s和16幀/s,視頻顯示流暢,可以滿足視頻監(jiān)控的要求,但是顯示快速運動的圖像仍需要進一步的完善;分辨率設(shè)置為640×480時,采集的視頻數(shù)據(jù)比較大,每秒僅僅可以采集8幀,視頻顯示有延遲,表明分辨率不能設(shè)置太大.
3G無線網(wǎng)絡(luò)可以適應(yīng)在不同分辨率下的帶寬占用,但是當分辨率設(shè)置為640×480時,占用帶寬有所下降,說明對視頻數(shù)據(jù)的編碼速度比網(wǎng)絡(luò)傳輸?shù)乃俣纫?限制了傳輸?shù)臄?shù)據(jù),因此采用高分辨率時,要考慮對編碼器的優(yōu)化,以進一步提高系統(tǒng)的實時性.
通過上述數(shù)據(jù)分析,最后設(shè)置的分辨率為320×240,采集的視頻格式為YUV420;編碼幀率分子為20、幀率分母為1、碼率為1 024×10.將采集到的視頻數(shù)據(jù)通過X264軟編碼,然后將編碼后的視頻數(shù)據(jù)進行基于RTP協(xié)議的封包并應(yīng)用SOCKET編程將其發(fā)送到遠程監(jiān)控中心,PC機作為遠程監(jiān)控中心選用VLC播放器對接收的視頻數(shù)據(jù)解碼播放.視頻信息在PC機上的實時解碼播放,如圖3所示.從圖3可以看出,播放連續(xù),視頻清晰,表明視頻編碼基本沒丟失視頻的有效信息,傳輸過程也沒有數(shù)據(jù)丟包現(xiàn)象.
圖3 PC機實時視頻播放
在實際的應(yīng)用中,由于GPS定位數(shù)據(jù)通過無線網(wǎng)絡(luò)遠距離發(fā)送,所以對車輛定位的實時性有一定的影響,進而影響了定位的經(jīng)度.除了數(shù)據(jù)傳輸過程中時延的影響,GPS本身誤差和地圖誤差也對定位經(jīng)度有一定的影響.通過差分傳輸方式可以很大部分地減小GPS本身帶來的誤差,通過采用多個控制點進行地圖校準來減少地圖誤差.由于研究的環(huán)境限制,在實驗室的條件下模擬車輛定位,通過GPS模塊采集定位信息,然后通過無線網(wǎng)絡(luò)將其發(fā)送到監(jiān)控中心PC機上顯示位置,定位誤差為5~8m,與一般GPS定位系統(tǒng)誤差相同.本系統(tǒng)同時將定位信息存儲到access數(shù)據(jù)庫中,由于風速對GPS模塊天線的影響,所以定位精度在不斷的微小變化,定位信息穩(wěn)定在小數(shù)點后第三位.
(1) 構(gòu)建的基于ARM的遠程實時視頻監(jiān)控系統(tǒng)實現(xiàn)了將GPS定位、3G無線網(wǎng)絡(luò)通信技術(shù)和視頻編解碼技術(shù)等技術(shù)的集成應(yīng)用.
(2) 將本系統(tǒng)應(yīng)用于車輛的遠程實時監(jiān)控中,管理者能根據(jù)車輛傳來的信息實時了解車輛行駛狀況,并能及時發(fā)現(xiàn)突發(fā)事件,以便解決.
(3) 本系統(tǒng)的模塊化設(shè)計思想以及系統(tǒng)具有的開放性,可以在系統(tǒng)原有的基礎(chǔ)上加入更多的外設(shè),針對用戶的需求進行修改,使其應(yīng)用可以擴展到更多領(lǐng)域.
參考文獻:
[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] 蔣新華,陳宇,朱銓,等.交通物聯(lián)網(wǎng)的發(fā)展現(xiàn)狀及趨勢研究[J].計算機應(yīng)用研究,2013,30(8):2256-2261.
[3] 吳忠澤.中國智能交通行業(yè)發(fā)展現(xiàn)狀與未來發(fā)展趨勢[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的車載監(jiān)控系統(tǒng)監(jiān)控模塊的設(shè)計與實現(xiàn)[D].西安:西安電子科技大學,2012:5-38.
[6] 李萍.基于嵌入式系統(tǒng)的旅游車輛監(jiān)控終端的研制[D].西安:西安工程大學,2013:5-50.
[7] 施樂平,楊征宇,馬憲民,等.ARM嵌入式系統(tǒng)綜述[J].中國測試,2012,38(2):14-16.
[8] 劉登誠,沈蘇彬,李 莉.基于V4L2的視頻驅(qū)動程序設(shè)計與實現(xiàn)[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協(xié)議和H.264編碼的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[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的視頻傳輸系統(tǒng)的設(shè)計與實現(xiàn)[J].無線電工程,2011,41(8):12-14.
[13] 解丹.基于C/S架構(gòu)的車輛遠程監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[D].武漢:華中科技大學,2011:17-48.
[14] 溫宗周,陳改霞.基于GPS/GPRS的遠程車輛管理系統(tǒng)的設(shè)計[J].電子測量技術(shù),2013,36(8):76-79.