邱曉金 陳名松 黃高見
(桂林電子科技大學信息與通信學院 桂林 541004)
?
基于Cortex-A8的視頻監(jiān)控跟蹤系統(tǒng)設計與實現(xiàn)*
邱曉金陳名松黃高見
(桂林電子科技大學信息與通信學院桂林541004)
摘要為降低數(shù)字化視頻監(jiān)控設備成本、縮短開發(fā)周期和解決PC機上對視頻運動目標跟蹤時延較大的問題,設計了一種基于Cortex-A8的視頻監(jiān)控跟蹤系統(tǒng)。該系統(tǒng)分為嵌入式視頻采集傳輸部分,網(wǎng)絡視頻流接收部分和視頻監(jiān)控跟蹤部分。嵌入式視頻采集傳輸部分,用具有視頻壓縮功能的攝像頭進行視頻采集,通過構(gòu)建嵌入式視頻流服務器實現(xiàn)遠程監(jiān)控功能。網(wǎng)絡視頻流接收部分,創(chuàng)新地將視頻流服務器的網(wǎng)頁接收代碼與OpenCV的函數(shù)庫結(jié)合完成網(wǎng)絡視頻流數(shù)據(jù)的接收,極大地降低開發(fā)成本和精力。運動目標跟蹤部分,提出了一種基于Camshift算法和Kalman濾波器結(jié)合的算法,使得系統(tǒng)滿足實時性的要求并且跟蹤目標在短時間內(nèi)被遮擋的情況下,仍然可以實現(xiàn)對目標的有效跟蹤。最終一套形成集視頻的采集、傳輸、監(jiān)控、跟蹤為一體視頻監(jiān)控跟蹤系統(tǒng)。
關鍵詞Cortex-A8; MJPG-Streamer; OpenCV; Camshift; Kalman
Design and Implementation of Video Surveillance and Tracking System Based on Cortex-A8
QIU XiaojinCHEN MingsongHUANG Gaojian
(School of Information and Communication, Guilin University of Electronic Technology, Guilin541004)
AbstractTo lower the cost and shorten the development period of digital video surveillance device and reduce the latency of moving object detection on PC, an innovative video object detection system based on Cortex-A8 is devised. The system can be divided into three parts, including the embedded video acquisition and transmission subsystem, the video stream receiving subsystem, video monitoring and tracking subsystem. To implement the embedded video acquisition and transmission subsystem, video is captured by camera with the function of video compression and embedded video stream server is constructed for remote monitoring. As for the video stream receiving subsystem, the receiving code of video stream server and the OpenCV function library are combined innovatively to receive video stream via network,which can greatly reduce the development cost. A new algorithm based on Camshift and kalman filter is proposed to implement the video monitoring and tracking subsystem. The algorithm fulfills the requirement of real-time and is even even able to track objects that had been blocked for a short time. After all these work, a video surveillance and tracking system with the function of video acquisition, transmission, monitering and tracking is completed.
Key WordsCortex-A8, MJPG-Streamer, OpenCV, Camshift, Kalman
Class NumberTP391
1引言
在人類的感官系統(tǒng)所接收的信息中,視覺的信息比例是最大的,占到了80%[1]。除了文字和聲音,視覺是最客觀、最形象、最逼真的描述,是人類最重要的信息承載體。由于視頻的信息量大,人工處理速度慢等原因,迫切要求計算機對視頻進行編輯、處理。因此,計算機對視頻處理的一個重要的方向就是視頻監(jiān)控。目前國內(nèi)的視頻監(jiān)控也已從傳統(tǒng)的模擬,模數(shù)混合監(jiān)控逐步向數(shù)字化、智能化視頻監(jiān)控方向發(fā)展[2],高清視頻監(jiān)控也正逐步進入人們的視野。本課題的主要目的是利用嵌入式技術、網(wǎng)絡技術以及視頻傳感技術的成果來開發(fā)出經(jīng)濟、可靠、高效的視頻監(jiān)控跟蹤系統(tǒng)。
2系統(tǒng)方案
視頻監(jiān)控跟蹤系統(tǒng)是一種基于ARM+Linux嵌入式平臺與PC平臺相結(jié)合視頻監(jiān)控跟蹤系統(tǒng)。嵌入式端搭建視頻流服務器MJPG-Streamer,將采集到的視頻數(shù)據(jù)通過網(wǎng)絡端口進行傳輸;PC端巧妙地將MJPG-Streamer的網(wǎng)頁接收代碼與OpenCV的庫函數(shù)結(jié)合,完成網(wǎng)絡視頻流的接收;最后利用PC的強勁處理能力進行運動目標跟蹤[3~4],跟蹤算法是基于Camshift算法和Kalman濾波器結(jié)合實現(xiàn)的[5]。系統(tǒng)方案如圖1所示。
圖1 系統(tǒng)方案框圖
3嵌入式平臺硬件設計
為保證視頻監(jiān)控跟蹤系統(tǒng)具備低延遲性且具有較好的處理效率,采用Cortex-A8為嵌入式系統(tǒng)的處理器。外圍器件由NAND Flash、網(wǎng)卡DM9000、網(wǎng)絡接口RJ45、USB接口等組成。嵌入式平臺的硬件框圖,如圖2所示。
圖2 嵌入式平臺硬件框圖
為了降低視頻的延遲,保證實時性,系統(tǒng)使用的是支持UVC(USB Video Class)協(xié)議并且可以以MJPEG模式輸出的攝像頭進行視頻圖像的采集。這種攝像頭得到主流操作系統(tǒng)的支持,不需要對USB驅(qū)動進行修改[6],極大降低開發(fā)的成本以及精力。
4軟件設計
基于Cortex-A8的視頻監(jiān)控跟蹤系統(tǒng)的軟件設計包括嵌入式平臺的搭建、視頻流服務器移植、網(wǎng)絡視頻流接收顯示和運動目標跟蹤四個部分。
4.1ARM+Linux嵌入式平臺搭建
為保證嵌入式平臺穩(wěn)定且高效工作,在Cortex-A8平臺上移植Linux系統(tǒng)[7]。攝像頭采集是基于V4L2接口實現(xiàn),需要添加UVC免驅(qū)接口協(xié)議。步驟如下:
1) 移植2012.04.01版本的U-Boot進行系統(tǒng)的引導啟動;
2) 移植與裁剪Linux 3.4.2版本的內(nèi)核作為系統(tǒng)內(nèi)核;
3) 使用Busybox構(gòu)建根文件系統(tǒng);
4) 添加UVC以及OHCI(Open Host Controller Interface)驅(qū)動。
4.2視頻流服務器移植
MJPG-Streamer是一款開源的視頻流服務器,采用的是V4L2視頻設備開發(fā)架構(gòu)[8]。MJPG-Streamer可以將采集到的實時視頻數(shù)據(jù)通過網(wǎng)絡傳輸[9]。首先需要添加JPEG(Joint Photographic Experts Group)庫,同時指定交叉編譯。
tar zxf mjpg-streamer-r63.tar.gz
cd mjpg-streamer-r63
1) 修改所有Makefile文件的編譯器指定。由于架構(gòu)上的差異,因此必須將所有Makefile文件指定的編譯器指定為:arm-linux-gcc;
2) 給plugins/input_uvc指定libjpeg的include文件:MJPG-Streamer需要JPEG庫進行聯(lián)合編譯,并將編譯的include目錄指定為libjpeg的庫目錄;
3) 給plugins/input_uvc指定libjpeg的lib文件,將MJPG-Streamer編譯的lib目錄指定目錄。將編譯生成的相關可執(zhí)行文件和庫文件拷貝到嵌入式的文件系統(tǒng)。
4.3網(wǎng)絡視頻流的接收
在Window7 64位操作系統(tǒng)、VS2010(Visual Studio)編譯環(huán)境下完成網(wǎng)絡視頻流的接收。
視頻流服務器傳輸?shù)木W(wǎng)絡視頻流,可以通過網(wǎng)頁上指定服務器IP地址的方式(http://202.193.53.83:8080/?action=stream)實現(xiàn)視頻流接收功能。但是并不能夠使之在OpenCV進行接收。而OpenCV提供的VideoCapture類則實現(xiàn)了讀取本地視頻文件功能。系統(tǒng)巧妙地將MJPG-Streamer的網(wǎng)頁接收代碼與OpenCV函數(shù)庫相結(jié)合,代碼如下:
// 打開指定地址,需要對接收視頻流的 // 類型指定為JPEG類型
const string address = "http://202.193.53.83:8080/?action=stream?dummy=param.mjpg";
if( !vcap.open( address ) )
{
cout << "Error opening video stream" << endl;
return -1;
}
Mat src;
while( vcap.read( src ))
{
// Mat 轉(zhuǎn) IplImage類型
IplImage temp = src;
IplImage*frame=cvCloneImage( &temp ;
cvShowImage( "camshift", frame);
}
OpenCV接收的網(wǎng)絡視頻流數(shù)據(jù),如圖3所示。
圖3 OpenCV接收的網(wǎng)絡視頻流數(shù)據(jù)
address不僅指定了MJPG-Streamer的URL(Uniform Resource Locator)和視頻流傳輸?shù)姆绞?而且偽造了“param.mjpg”視頻流是MJPEG類型。由于OpenCV支持的視頻圖像格式限制,所以必須偽造為MJPEG類型。結(jié)合使用了VideoCapture類和MJPG-Streamer的網(wǎng)頁接收代碼,實時地獲取視頻數(shù)據(jù),以完成網(wǎng)絡視頻流的接收。
4.4運動目標跟蹤
運動目標跟蹤使用是Camshift算法與Kalman濾波相結(jié)合的方法,來進行運動目標跟蹤。目標跟蹤的前提是獲取到運動目標,系統(tǒng)啟動的時候,使用鼠標選取運動目標進行跟蹤。
Camshift算法(Continuously Adaptive MeanShift)算法的中心思想就是來源于Mean-Shift算法[10],是利用目標顏色的直方圖模型將圖像轉(zhuǎn)換為顏色概率分布圖,從而實現(xiàn)運動目標的跟蹤。Camshift流程圖如圖4所示。
為了減少光線變化帶來的影響,需要將獲得的圖像從RGB空間轉(zhuǎn)為HSV空間[11]。再用圖像的H分量計算出直方圖,直方圖中代表了不同的H分量出現(xiàn)的概率或者像素的個數(shù),得到了顏色概率分布圖。迭代調(diào)用MeanShift算法,得到質(zhì)心的位置。最后,將得到的質(zhì)心的位置作為下一幀搜索窗口的初始值的中心和大小,重新進行搜索。
圖4 Camshift算法流程圖
當運動目標與背景沒有形成較大的連通區(qū)域的時候,即使存在噪聲,Camshift算法也可以較好地完成目標的跟蹤。但是當目標與背景出現(xiàn)較為嚴重的連通區(qū)域或者目標被嚴重遮擋時候,Camshift算法失效,就采用Kalman濾波器的預測值來代替Camshift計算出來的最優(yōu)位置值。
Kalman濾波器是一種基于最小方差的最佳線性遞歸濾波算法,它能夠?qū)ο乱粠瑓^(qū)域的中心的位置進行預測。
利用Camshift算法與Kalman濾波器的結(jié)合對運動目標進行跟蹤,算法框圖如圖5所示。
圖5 算法框圖
Camshift算法與Kalman濾波器的結(jié)合,保證了較低幀率的時候,也可以順利地跟蹤到運動目標,跟蹤效果圖6所示。
圖6 跟蹤效果
5結(jié)語
經(jīng)測試,本文設計的基于Cortex-A8視頻監(jiān)控跟蹤系統(tǒng)可以有效且高效地實現(xiàn)視頻監(jiān)控及跟蹤功能。系統(tǒng)充分結(jié)合了開源軟件MJPG-Streamer和OpenCV,保證了視頻數(shù)據(jù)傳輸?shù)膶崟r性與運動目標跟蹤的可靠性,同時降低了視頻監(jiān)控設備的成本。結(jié)合了嵌入式平臺與PC端,大大降低了視頻監(jiān)控系統(tǒng)的開發(fā)成本并縮短了開發(fā)周期,同時又提供了足夠的性能應付圖像處理帶來的開銷。Camshift算法與Kalman濾波器的相結(jié)合,保證了在短時間內(nèi)運動目標被遮擋時候,系統(tǒng)仍然可以實現(xiàn)對目標的有效跟蹤。系統(tǒng)相比傳統(tǒng)的視頻監(jiān)控系統(tǒng),具備開發(fā)成本低、開發(fā)周期短、延遲較低等優(yōu)點,具有廣闊的市場應用前景。
參 考 文 獻
[1] 賈云得.機器視覺[M].北京:科學出版社,2000.
JIA Yunde. Machine Vision[M]. Beijing: Science Press,2000.
[2] 梁永恩,萬世明.基于S3C6410的智能家居控制系統(tǒng)的設計[J].計算機與數(shù)字工程,2014(6):1104-1107.
LIANG Yongen, WAN Shiming. Intelligent Home Control System Based on S3C6410[J]. Computer & Digital Engineering,2014(6):1104-1107.
[3] 袁敏,張仁杰,邵娜,等.基于Linux的ARM9多路視頻監(jiān)控系統(tǒng)設計[J].國外電子測量技術,2009(1):42-44.
YUAN Min, ZHANG Renjie, SHAO Na, et al. ARM9 Multi-channel Video Monitoring System Design Base on Linux[J]. Foreign Electronic Measurement Technology,2009(1):42-44.
[4] 喬榮愛,李相海.基于嵌入式Linux平臺的多路視頻監(jiān)控系統(tǒng)的設計與實現(xiàn)[J].計算機與數(shù)字工程,2015:1360-1364.
QIAO Rongain, LI Xianghai. Design and Dmplementation of Multi-channel Video Monitoring System Based on Embeded Linux Platform[J]. Computer & Digital Engineering,2015(7):1360-1364.
[5] 樂應英,仲濤.適用于遮擋和目標尺度變化的改進Camshift算法[J].計算機與數(shù)字工程,2015(6):1018-1022.
YUE Yingying, ZHONG Tao. An Improved Camshift Algorithm Based on Occlusion and Scale Variation[J]. Computer & Digital Engineering,2015(6):1018-1022.
[6] 殷開亮.基于UVC協(xié)議的USB3.0圖像采集系統(tǒng)設計[D].蘇州:蘇州大學,2014.
YIN Kailiang. Design of USB3.0 Based on Image Acquisition System with UVC Supported[D]. Suzhou: Soochow University,2014.
[7] 韋東山.嵌入式Linux應用開發(fā)完全手冊[M].北京:人民郵電出版社,2008:240-360.
WEI Dongshan. Application Development of Embeded Linux[M]. Beijing: Posts & Telecom Press,2008:240-360.
[8] 徐家,陳奇.基于V4L2的視頻設備驅(qū)動開發(fā)[J].計算機工程與設計,2010(16):3569-3572.
XU Jia, CHEN Qi. Video Driver Development Based on V4L2[J]. Computer Engineering and Design,2010(16):3569-3572.
[9] 楊宏,張志文.基于Web的嵌入式遠程監(jiān)控系統(tǒng)的研究與實現(xiàn)[J].計算機與數(shù)字工程,2012(10):70-72.
YANG Hong, ZHANG Zhiwen. Research and Implementation of Remote Video Monitoring System Based on Embeded Web[J]. Computer & Digital Engineering,2012(10):70-72.
[10] Zhang L, Chen J, Xiao S, et al. IR Blob Target Tracking Based on Improved Mean Shift Method[C]//Computational and Information Sciences (ICCIS), 2010 International Conference on, 2010:17-19.
[11] Chi-Juang H, Kai-Yew L. Automated image tracking based on the CAMSHIFT algorithm with adaboost and target trajectory and size estimation[C]//Control & Automation (ICCA), 11th IEEE International Conference on, Taichung,2014:18-20.
中圖分類號TP391
DOI:10.3969/j.issn.1672-9722.2016.03.035
作者簡介:邱曉金,男,碩士研究生,研究方向:嵌入式、光通信。陳名松,男,教授,研究方向:教授光通信、光電子技術、寬帶通信網(wǎng)絡。黃高見,男,碩士研究生,研究方向:嵌入式、光通信。
基金項目:廣西科技公關開發(fā)項目(編號:桂科攻1348014-9);廣西研究生創(chuàng)新項目(編號:YCSZ2015145)資助。
收稿日期:2015年9月13日,修回日期:2015年10月28日