摘 "要: 設(shè)計了一種基于PandaBoard的運動物體檢測系統(tǒng)。該系統(tǒng)的主要組成模塊及其功能簡要描述如下:利用USB攝像頭進(jìn)行視頻幀的采集,基于嵌入式的PandaBoard開發(fā)板運行運動物體檢測的視頻幀處理算法,采用USB無線鼠鍵進(jìn)行檢測系統(tǒng)的啟動或關(guān)閉,最終通過HDMI顯示器進(jìn)行檢測結(jié)果的顯示。其中,嵌入式PandaBoard開發(fā)板上運行的幀間差分運動物體檢測算法基于上位機(jī)Simulink進(jìn)行設(shè)計,設(shè)計完成后直接下載到PandaBoard開發(fā)板上運行。該系統(tǒng)可以脫離上位機(jī)及Simulink開發(fā)環(huán)境獨立運行,具有設(shè)備簡單、成本低、算法可拓展性強(qiáng)等特點,具有良好的應(yīng)用前景。
關(guān)鍵詞: 運動物體檢測; PandaBoard; Simulink; 視頻幀采集
中圖分類號: TN98?34 " " " " " " " " " " 文獻(xiàn)標(biāo)識碼: A " " " " " " " " " " " " " "文章編號: 1004?373X(2015)02?0104?04
Design of a moving object detection system based on PandaBoard
SUN Wen?jian1, XIAO Bo?tao1, LUO Chun?bo2, SONG Hua?jun1, REN Peng1
1. College of Information and Control Engineering, China University of Petroleum (East China), Qingdao 266580, China;
2. School of Engineering and Computing, University of The West of Scotland, Paisley PA12BE, UK)
Abstract: Development of a moving object detection system based on PandaBoard is described in this paper. The main modules along with their functions are presented as follows: (a) one USB camera is used for capturing video frames, (b) the embedded PandaBoard is exploited as the core on which the video frame processing algorithm for detecting moving object is implemented, (c) a wireless USB control board integrating both mouse and keyboard is used for switching on/off the detection system, and (d) a HDMI monitor is employed to demonstrate the detection results. Specifically, the frame difference moving object detection algorithm running on the embedded PandaBoard is designed by means of PC Simulink. The designed algorithm is downloaded to the PandaBoard for execution. The moving object detection system can operate independently of PC and Simulink development environment. It has many merits, i.e. simple construction, low cost and strong scalability to more complex algorithms. It thus has a potential for vaster applications.
Keywords: moving object detection; PandaBoard; Simulink; video frame acquisition
0 "引 "言
目前基于視頻的運動物體檢測系統(tǒng)可粗略劃分為兩類[1?3]——視頻采集裝置內(nèi)嵌處理器的檢測系統(tǒng)和視頻采集終端搭配上位機(jī)構(gòu)建的檢測系統(tǒng)。在前一類檢測系統(tǒng)中,處理器(例如DSP芯片)嵌入在視頻采集設(shè)備上,采集到的視頻幀直接在采集設(shè)備上進(jìn)行處理,處理的結(jié)果發(fā)送到監(jiān)控設(shè)備上顯示。嵌入式的檢測系統(tǒng)通常采用高級語言(比如C語言)進(jìn)行程序的設(shè)計與開發(fā),程序的調(diào)試較為復(fù)雜,工程開發(fā)周期較長。在后一類檢測系統(tǒng)中,視頻采集設(shè)備將采集到的視頻幀傳送至上位機(jī),由上位機(jī)對視頻幀進(jìn)行處理。在上位機(jī)上可以采用Matlab或者Simulink[4?6]進(jìn)行程序的設(shè)計與開發(fā),但是將視頻幀從視頻采集設(shè)備傳送到上位機(jī)的過程中會產(chǎn)生延時,影響運動物體檢測系統(tǒng)的實時性。
PandaBoard[7]作為一種低成本、低功耗的嵌入式數(shù)字信號處理平臺,可以直接運行在Simulink開發(fā)環(huán)境下創(chuàng)建的模型。PandaBoard的出現(xiàn)解決了嵌入式檢測系統(tǒng)程序調(diào)試?yán)щy以及工程開發(fā)周期長的問題,同時也解決了依賴上位機(jī)的檢測系統(tǒng)實時性差的問題,為了在嵌入式設(shè)備上用Simulink開發(fā)復(fù)雜的運動物體檢測算法找到了突破口。
本文提出一種將Simulink上位機(jī)程序設(shè)計方式與PandaBoard嵌入式處理機(jī)制相結(jié)合的運動物體檢測系統(tǒng)。首先在上位機(jī)的Simulink開發(fā)環(huán)境中進(jìn)行視頻幀間差法的設(shè)計,然后以PandaBoard作為嵌入式平臺執(zhí)行Simulink的設(shè)計方案,對視頻進(jìn)行處理。這種方式充分利用了Simulink的設(shè)計方式簡易的特點,將Simulink程序下載到PandaBoard開發(fā)板上運行時能夠達(dá)到嵌入式實時處理效果,降低了運動物體檢測系統(tǒng)的設(shè)計成本,同時保證了系統(tǒng)的運行效率。
1 "系統(tǒng)整體設(shè)計方案
本系統(tǒng)由上位機(jī)子系統(tǒng)和下位機(jī)子系統(tǒng)組成,整體系統(tǒng)框圖如圖1所示。
lt;E:\王芳\現(xiàn)代電子技術(shù)201502\Image\43T1.tifgt;
圖1 系統(tǒng)框架
上位機(jī)子系統(tǒng)主要包括PC機(jī)以及其上運行的Simulink開發(fā)環(huán)境。PC機(jī)主要負(fù)責(zé)PandaBoard系統(tǒng)參數(shù)的設(shè)置以及與PandaBoard進(jìn)行通信,Simulink開發(fā)環(huán)境負(fù)責(zé)視頻幀間差法的設(shè)計并將其下載到PandaBoard開發(fā)板運行。下位機(jī)子系統(tǒng)包括USB攝像頭(圖1中模塊1)、PandaBoard開發(fā)板(圖1中模塊2)、HDMI顯示器(圖1中模塊3)和USB無線鼠鍵(圖1中模塊4)。USB攝像頭到PandaBoard開發(fā)板的箭頭表示觀測視頻幀由攝像頭采集發(fā)送至PandaBoard進(jìn)行處理。PandaBoard開發(fā)板到HDMI顯示器的箭頭表示視頻幀經(jīng)過PandaBoard上運行的程序處理所得的檢測結(jié)果發(fā)送至HDMI顯示器進(jìn)行顯示。USB無線鼠鍵到PandaBoard開發(fā)板的箭頭表示可以通過USB無線鼠鍵對Pandaboard處理板發(fā)送操作指令,包括啟動或者停止等指令。
由上述描述可知,本系統(tǒng)的上位機(jī)僅負(fù)責(zé)下位機(jī)中處理方案設(shè)計以及下位機(jī)參數(shù)設(shè)置,不參與下位機(jī)的視頻處理過程。下位機(jī)系統(tǒng)可以脫離上位機(jī)系統(tǒng)獨立運行。因此,圖1中上位機(jī)系統(tǒng)與下位機(jī)系統(tǒng)(位于圖1中左側(cè)大方框中)用虛線相連,表示二者在運行過程中的獨立性。
2 "系統(tǒng)硬件裝配
除PC機(jī)之外,配置本系統(tǒng)所需的器材包括:USB攝像頭;PandaBoard(含有8 G內(nèi)存卡);帶有HDMI接口的顯示器;USB無線鼠鍵;5 V電源適配器;USB轉(zhuǎn)RS 232串口線;HDMI高清線;網(wǎng)線。
上述器材如圖2所示。
lt;E:\王芳\現(xiàn)代電子技術(shù)201502\Image\43T2.tifgt;
圖2 系統(tǒng)模塊實物圖
本系統(tǒng)的構(gòu)建方式如下所述:
(1) 用USB轉(zhuǎn)RS 232串口線(圖2中器件6)將PandaBoard和PC機(jī)連接,RS 232端口接到PandaBoard上,USB端口接到PC機(jī)上,USB轉(zhuǎn)RS 232串口線主要負(fù)責(zé)傳輸控制命令。
(2) 用網(wǎng)線(圖2中器件8)將PandaBoard和PC機(jī)的網(wǎng)口連接,網(wǎng)線負(fù)責(zé)傳輸數(shù)據(jù)。
(3) 將USB攝像頭(圖2中器件1)連接到PandaBoard的USB接口,負(fù)責(zé)圖像采集并將其傳輸?shù)絇andaBoard。
(4) 用HDMI高清線(圖2中器件7)將PandaBoard和帶有HDMI接口的顯示器連接起來顯示檢測的結(jié)果。
(5) 將USB無線鼠鍵(圖2中器件4)的USB無線接收器插到PandaBoard的USB接口上,負(fù)責(zé)打開或者關(guān)閉該檢測系統(tǒng)。
(6) 接通5 V電源(圖2中器件5)。
在系統(tǒng)構(gòu)建過程中需要注意的是:第(1)步和第(2)步僅在下載上位機(jī)程序到下位機(jī)以及通過上位機(jī)對下位機(jī)進(jìn)行配置的過程中起作用。當(dāng)下位機(jī)獨立運行時,第(1)步和第(2)步中所述的PandaBoard和PC機(jī)的各種連接均可斷開。
在上位機(jī)程序已經(jīng)下載到下位機(jī)的情況下,檢測系統(tǒng)即可脫離上位機(jī)獨立運行。此時,利用圖2中裝置器材構(gòu)建出的系統(tǒng)的運行狀態(tài)如圖3所示。
3 "幀間差分法
本系統(tǒng)采用幀間差分法[8?9]進(jìn)行運動物體檢測,其原理是利用第k幀和第k-1幀圖像的照度信息差的絕對值(差分圖像)來分析圖像序列中有無運動物體。采用[fk(x,y)]表示第k幀在(x,y)位置上的像素的照度值,用[fk-1(x,y)]表示第k-1幀在(x,y)位置上的像素的照度值,計算第k幀和第k-1幀差的絕對值,得到差分圖像在(x,y)位置上的像素值[Dk(x,y)]:
[Dk(x,y)=fk(x,y)-fk-1(x,y)] (1)
在前后幀之間,若(x,y)位置所表示的場景中的點靜止不動,則[fk(x,y)=fk-1(x,y)],此時[Dk(x,y)=0],表示(x,y)位于靜止的前景或背景。在前后幀之間,若(x, y)位置所表示的場景中的點發(fā)生運動,則[fk(x,y)≠fk-1(x,y)] ,此時[Dk(x,y)gt;0], 表示在(x,y)位置檢測到運動物體的邊緣。
lt;E:\王芳\現(xiàn)代電子技術(shù)201502\Image\43T3.tifgt;
圖3 運動物體檢測系統(tǒng)
4 "程序設(shè)計
本系統(tǒng)在上位機(jī)上的Simulink開發(fā)環(huán)境設(shè)計中設(shè)計并實現(xiàn)幀間差分法,然后將設(shè)計好的程序下載到PandaBoard上運行。在Simulink開發(fā)環(huán)境下實現(xiàn)幀間差法,信號流圖如圖4所示。
lt;E:\王芳\現(xiàn)代電子技術(shù)201502\Image\43T4.tifgt;
圖4 幀間差法信號流圖
實現(xiàn)幀間差法要求采集時間上連續(xù)的前后兩幀視頻,因此采集的視頻幀分成兩個支路,其中一個支路經(jīng)過延時處理,另一個支路不做任何處理,兩路視頻幀送到相減模塊進(jìn)行幀間差法操作,即得到第3節(jié)中原理所描述的運動物體檢測結(jié)果。
在Simulink環(huán)境下實現(xiàn)圖4描述的處理過程如圖5所示。
lt;E:\王芳\現(xiàn)代電子技術(shù)201502\Image\43T5.tifgt;
圖5 幀間差法Simulink模型
V4L2 Video Capture模塊是Simulink為PandaBoard開發(fā)的工具箱里的視頻幀采集模塊,對應(yīng)于連接到PandaBoard上的USB攝像頭,負(fù)責(zé)視頻幀的采集;Delay模塊是常用工具箱里的延遲模塊;Matlab Function模塊是用戶自定義的函數(shù)模塊,可以在其中編輯代碼對輸入變量進(jìn)行簡單的操作,我們在其中編寫程序?qū)斎胱兞恳簿褪且曨l幀進(jìn)行相減的操作;V4L2 Video Display模塊是Simulink為PandaBoard開發(fā)的工具箱里的視頻幀顯示模塊。
本系統(tǒng)對圖5中模型進(jìn)行以下設(shè)置。將V4L2 Video Capture模塊采集的視頻幀設(shè)置成YCbCr 4∶2∶2格式,其中Y代表照度信息,Cb和Cr代表色度信息。本系統(tǒng)只對照度信息Y進(jìn)行處理并將色度信息Cb和Cr忽略。 將Delay模塊的延遲時間設(shè)置成延遲1幀。在Matlab Function模塊中編寫代碼對兩個變量進(jìn)行相減的操作,其主要代碼為y=u-du。V4L2 Video Display模塊的輸入圖像像素格式也要設(shè)置成YCbCr 4∶2∶2格式。在本系統(tǒng)的運動物體檢測結(jié)果顯示中,運動物體的邊緣將顯示為白顏色,前景和背景中的靜止區(qū)域?qū)@示為黑顏色。
5 "測試過程
5.1 "系統(tǒng)配置
確保PandaBoard與PC機(jī)連接,在Matlab命令窗口中輸入targetupdate進(jìn)行PandaBoard板上系統(tǒng)的安裝,安裝的中間過程可以在MATHWORKS官網(wǎng)上查詢[10]。在安裝的最后需要配置PandaBoard信息,比如系統(tǒng)名稱、IP地址、網(wǎng)關(guān)等,需要注意的是PandaBoard與PC機(jī)必須處在同一個子網(wǎng)下。系統(tǒng)安裝完成之后需要測試PandaBoard與PC機(jī)的連接狀態(tài),其過程如下:
關(guān)閉PC機(jī)防火墻,防止防火墻阻斷PC機(jī)與PandaBoard的連接;
在PC機(jī)上打開開始,輸入cmd打開命令提示符;
輸入ping+“PandaBoard IP”,查看PC機(jī)到PandaBoard是否連通;
在Matlab命令窗口輸入:h = panda;h.openShell(‘serial’);
上述兩個命令可以打開如圖6所示的PuTTY的配置窗口,通過該窗口配置串口信息,如圖7所示,點擊serial可以查看配置信息;
串口配置完成之后點擊‘Open’可以通過串口在PC機(jī)上打開終端客戶端,對PandaBoard遠(yuǎn)程執(zhí)行Linux命令;
在終端客戶端中輸入ping+“PC機(jī) IP”,查看PandaBoard到PC機(jī)是否連通。
lt;E:\王芳\現(xiàn)代電子技術(shù)201502\Image\43T6.tifgt;
圖6 PuTTY配置窗口
lt;E:\王芳\現(xiàn)代電子技術(shù)201502\Image\43T7.tifgt;
圖7 串口配置信息
確定PC機(jī)與PandaBoard連通之后即可將Simulink模型下載到PandaBoard上運行,下載過程如下:
在模型上選擇Tools→Run on Target Hardware→Options,運行硬件選擇PandaBoard同時檢查PandaBoard配置信息是否正確;
點擊Deploy To Hardware運行模型。
5.2 "系統(tǒng)測試
程序下載到PandaBoard之后即可斷開與PC機(jī)的連接獨立運行。用USB無線鼠鍵在PandaBoard開發(fā)板上運行的Ubuntu系統(tǒng)上打開一個終端,通過命令行的形式即可運行程序,進(jìn)行運動物體檢測,檢測結(jié)果如圖8所示。
圖8(a)顯示了系統(tǒng)對運動人體的檢測結(jié)果,圖8(b)顯示了對運動手掌的檢測結(jié)果。其中,白色像素表示運動物體(人體、手掌),黑色像素表示靜止的前景或背景。
lt;E:\王芳\現(xiàn)代電子技術(shù)201502\Image\43T8.tifgt;
圖8 檢測結(jié)果
6 "結(jié) "語
本文提出一種基于Simulink平臺和嵌入式PandaBoard開發(fā)板綜合設(shè)計的運動物體檢測系統(tǒng)。本系統(tǒng)同時利用Simulink開發(fā)簡易和嵌入式PandaBoard實時處理的優(yōu)點,相比于其他的視頻監(jiān)控設(shè)備,本系統(tǒng)的構(gòu)建成本更低,算法的設(shè)計更加靈活,程序的調(diào)試也更加方便。以本系統(tǒng)為基礎(chǔ)可以構(gòu)建出各種更加復(fù)雜的實時視頻處理系統(tǒng)。因此,本文的方案通用性和可拓展性強(qiáng),將會在更多場景中體現(xiàn)出實際的應(yīng)用價值。
參考文獻(xiàn)
[1] 王寶珠,劉偉.基于ARM11的視頻圖像中運動物體監(jiān)測跟蹤系統(tǒng)[J].電子設(shè)計工程,2012,20(24):168?169.
[2] 陳元枝,李強(qiáng),廖正湘.運動物體檢測監(jiān)控系統(tǒng)設(shè)計[J].大眾科技,2011(11):11?13.
[3] 紀(jì)運紅,張穎,吳慶紅.基于灰度圖像的自適應(yīng)背景模型運動物體檢測算法比較研究[J].現(xiàn)代電子技術(shù),2007,30(5):123?127.
[4] 張德豐.Matlab/Simulink建模與仿真實例精講[M].北京:機(jī)械工業(yè)出版社,2010.
[5] 葛成良,范國濱,梁正.基于Simulink的紅外圖像處理算法仿真平臺[J].紅外與激光工程,2006(z4):83?88.
[6] 趙建春,李文舉,王新年.基于Simulink的車牌識別系統(tǒng)仿真平臺[J].計算機(jī)工程與設(shè)計,2009,30(5):1154?1156.
[7] Anon. PandaBoard [EB/OL]. [2012?09?20]. http:// www.oschina.net.
[8] 陳景濤,楊志剛,程力,等.運動車輛的視頻動態(tài)目標(biāo)檢測[J].汽車工程學(xué)報,2014(1):74?78.
[9] 李建,藍(lán)金輝,李杰.一種新型快速運動目標(biāo)檢測算法[J].中南大學(xué)學(xué)報:自然科學(xué)版,2013,44(3):978?984.
[10] MathWorks. PandaBoard support from Simulink [EB/OL]. [2013?05?16]. http://www. cn.mathworks.com/hardw.