一种基于PandaBoard的运动物体检测系统设计

时间:2022-08-25 12:50:32

一种基于PandaBoard的运动物体检测系统设计

摘 要: 设计了一种基于PandaBoard的运动物体检测系统。该系统的主要组成模块及其功能简要描述如下:利用USB摄像头进行视频帧的采集,基于嵌入式的PandaBoard开发板运行运动物体检测的视频帧处理算法,采用USB无线鼠键进行检测系统的启动或关闭,最终通过HDMI显示器进行检测结果的显示。其中,嵌入式PandaBoard开发板上运行的帧间差分运动物体检测算法基于上位机Simulink进行设计,设计完成后直接下载到PandaBoard开发板上运行。该系统可以脱离上位机及Simulink开发环境独立运行,具有设备简单、成本低、算法可拓展性强等特点,具有良好的应用前景。

关键词: 运动物体检测; PandaBoard; Simulink; 视频帧采集

中图分类号: TN98?34 文献标识码: 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 引 言

目前基于视频的运动物体检测系统可粗略划分为两类[1?3]――视频采集装置内嵌处理器的检测系统和视频采集终端搭配上位机构建的检测系统。在前一类检测系统中,处理器(例如DSP芯片)嵌入在视频采集设备上,采集到的视频帧直接在采集设备上进行处理,处理的结果发送到监控设备上显示。嵌入式的检测系统通常采用高级语言(比如C语言)进行程序的设计与开发,程序的调试较为复杂,工程开发周期较长。在后一类检测系统中,视频采集设备将采集到的视频帧传送至上位机,由上位机对视频帧进行处理。在上位机上可以采用Matlab或者Simulink[4?6]进行程序的设计与开发,但是将视频帧从视频采集设备传送到上位机的过程中会产生延时,影响运动物体检测系统的实时性。

PandaBoard[7]作为一种低成本、低功耗的嵌入式数字信号处理平台,可以直接运行在Simulink开发环境下创建的模型。PandaBoard的出现解决了嵌入式检测系统程序调试困难以及工程开发周期长的问题,同时也解决了依赖上位机的检测系统实时性差的问题,为了在嵌入式设备上用Simulink开发复杂的运动物体检测算法找到了突破口。

本文提出一种将Simulink上位机程序设计方式与PandaBoard嵌入式处理机制相结合的运动物体检测系统。首先在上位机的Simulink开发环境中进行视频帧间差法的设计,然后以PandaBoard作为嵌入式平台执行Simulink的设计方案,对视频进行处理。这种方式充分利用了Simulink的设计方式简易的特点,将Simulink程序下载到PandaBoard开发板上运行时能够达到嵌入式实时处理效果,降低了运动物体检测系统的设计成本,同时保证了系统的运行效率。

1 系统整体设计方案

本系统由上位机子系统和下位机子系统组成,整体系统框图如图1所示。

<E:\王芳\现代电子技术201502\Image\43T1.tif>

图1 系统框架

上位机子系统主要包括PC机以及其上运行的Simulink开发环境。PC机主要负责PandaBoard系统参数的设置以及与PandaBoard进行通信,Simulink开发环境负责视频帧间差法的设计并将其下载到PandaBoard开发板运行。下位机子系统包括USB摄像头(图1中模块1)、PandaBoard开发板(图1中模块2)、HDMI显示器(图1中模块3)和USB无线鼠键(图1中模块4)。USB摄像头到PandaBoard开发板的箭头表示观测视频帧由摄像头采集发送至PandaBoard进行处理。PandaBoard开发板到HDMI显示器的箭头表示视频帧经过PandaBoard上运行的程序处理所得的检测结果发送至HDMI显示器进行显示。USB无线鼠键到PandaBoard开发板的箭头表示可以通过USB无线鼠键对Pandaboard处理板发送操作指令,包括启动或者停止等指令。

由上述描述可知,本系统的上位机仅负责下位机中处理方案设计以及下位机参数设置,不参与下位机的视频处理过程。下位机系统可以脱离上位机系统独立运行。因此,图1中上位机系统与下位机系统(位于图1中左侧大方框中)用虚线相连,表示二者在运行过程中的独立性。

2 系统硬件装配

除PC机之外,配置本系统所需的器材包括:USB摄像头;PandaBoard(含有8 G内存卡);带有HDMI接口的显示器;USB无线鼠键;5 V电源适配器;USB转RS 232串口线;HDMI高清线;网线。

上述器材如图2所示。

<E:\王芳\现代电子技术201502\Image\43T2.tif>

图2 系统模块实物图

本系统的构建方式如下所述:

(1) 用USB转RS 232串口线(图2中器件6)将PandaBoard和PC机连接,RS 232端口接到PandaBoard上,USB端口接到PC机上,USB转RS 232串口线主要负责传输控制命令。

(2) 用网线(图2中器件8)将PandaBoard和PC机的网口连接,网线负责传输数据。

(3) 将USB摄像头(图2中器件1)连接到PandaBoard的USB接口,负责图像采集并将其传输到PandaBoard。

(4) 用HDMI高清线(图2中器件7)将PandaBoard和带有HDMI接口的显示器连接起来显示检测的结果。

(5) 将USB无线鼠键(图2中器件4)的USB无线接收器插到PandaBoard的USB接口上,负责打开或者关闭该检测系统。

(6) 接通5 V电源(图2中器件5)。

在系统构建过程中需要注意的是:第(1)步和第(2)步仅在下载上位机程序到下位机以及通过上位机对下位机进行配置的过程中起作用。当下位机独立运行时,第(1)步和第(2)步中所述的PandaBoard和PC机的各种连接均可断开。

在上位机程序已经下载到下位机的情况下,检测系统即可脱离上位机独立运行。此时,利用图2中装置器材构建出的系统的运行状态如图3所示。

3 帧间差分法

本系统采用帧间差分法[8?9]进行运动物体检测,其原理是利用第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)位置所表示的场景中的点发生运动,则[fk(x,y)≠fk-1(x,y)] ,此时[Dk(x,y)>0], 表示在(x,y)位置检测到运动物体的边缘。

<E:\王芳\现代电子技术201502\Image\43T3.tif>

图3 运动物体检测系统

4 程序设计

本系统在上位机上的Simulink开发环境设计中设计并实现帧间差分法,然后将设计好的程序下载到PandaBoard上运行。在Simulink开发环境下实现帧间差法,信号流图如图4所示。

<E:\王芳\现代电子技术201502\Image\43T4.tif>

图4 帧间差法信号流图

实现帧间差法要求采集时间上连续的前后两帧视频,因此采集的视频帧分成两个支路,其中一个支路经过延时处理,另一个支路不做任何处理,两路视频帧送到相减模块进行帧间差法操作,即得到第3节中原理所描述的运动物体检测结果。

在Simulink环境下实现图4描述的处理过程如图5所示。

<E:\王芳\现代电子技术201502\Image\43T5.tif>

图5 帧间差法Simulink模型

V4L2 Video Capture模块是Simulink为PandaBoard开发的工具箱里的视频帧采集模块,对应于连接到PandaBoard上的USB摄像头,负责视频帧的采集;Delay模块是常用工具箱里的延迟模块;Matlab Function模块是用户自定义的函数模块,可以在其中编辑代码对输入变量进行简单的操作,我们在其中编写程序对输入变量也就是视频帧进行相减的操作;V4L2 Video Display模块是Simulink为PandaBoard开发的工具箱里的视频帧显示模块。

本系统对图5中模型进行以下设置。将V4L2 Video Capture模块采集的视频帧设置成YCbCr 4∶2∶2格式,其中Y代表照度信息,Cb和Cr代表色度信息。本系统只对照度信息Y进行处理并将色度信息Cb和Cr忽略。 将Delay模块的延迟时间设置成延迟1帧。在Matlab Function模块中编写代码对两个变量进行相减的操作,其主要代码为y=u-du。V4L2 Video Display模块的输入图像像素格式也要设置成YCbCr 4∶2∶2格式。在本系统的运动物体检测结果显示中,运动物体的边缘将显示为白颜色,前景和背景中的静止区域将显示为黑颜色。

5 测试过程

5.1 系统配置

确保PandaBoard与PC机连接,在Matlab命令窗口中输入targetupdate进行PandaBoard板上系统的安装,安装的中间过程可以在MATHWORKS官网上查询[10]。在安装的最后需要配置PandaBoard信息,比如系统名称、IP地址、网关等,需要注意的是PandaBoard与PC机必须处在同一个子网下。系统安装完成之后需要测试PandaBoard与PC机的连接状态,其过程如下:

关闭PC机防火墙,防止防火墙阻断PC机与PandaBoard的连接;

在PC机上打开开始,输入cmd打开命令提示符;

输入ping+“PandaBoard IP”,查看PC机到PandaBoard是否连通;

在Matlab命令窗口输入:h = panda;h.openShell(‘serial’);

上述两个命令可以打开如图6所示的PuTTY的配置窗口,通过该窗口配置串口信息,如图7所示,点击serial可以查看配置信息;

串口配置完成之后点击‘Open’可以通过串口在PC机上打开终端客户端,对PandaBoard远程执行Linux命令;

在终端客户端中输入ping+“PC机 IP”,查看PandaBoard到PC机是否连通。

<E:\王芳\现代电子技术201502\Image\43T6.tif>

图6 PuTTY配置窗口

<E:\王芳\现代电子技术201502\Image\43T7.tif>

图7 串口配置信息

确定PC机与PandaBoard连通之后即可将Simulink模型下载到PandaBoard上运行,下载过程如下:

在模型上选择ToolsRun on Target HardwareOptions,运行硬件选择PandaBoard同时检查PandaBoard配置信息是否正确;

点击Deploy To Hardware运行模型。

5.2 系统测试

程序下载到PandaBoard之后即可断开与PC机的连接独立运行。用USB无线鼠键在PandaBoard开发板上运行的Ubuntu系统上打开一个终端,通过命令行的形式即可运行程序,进行运动物体检测,检测结果如图8所示。

图8(a)显示了系统对运动人体的检测结果,图8(b)显示了对运动手掌的检测结果。其中,白色像素表示运动物体(人体、手掌),黑色像素表示静止的前景或背景。

<E:\王芳\现代电子技术201502\Image\43T8.tif>

图8 检测结果

6 结 语

本文提出一种基于Simulink平台和嵌入式PandaBoard开发板综合设计的运动物体检测系统。本系统同时利用Simulink开发简易和嵌入式PandaBoard实时处理的优点,相比于其他的视频监控设备,本系统的构建成本更低,算法的设计更加灵活,程序的调试也更加方便。以本系统为基础可以构建出各种更加复杂的实时视频处理系统。因此,本文的方案通用性和可拓展性强,将会在更多场景中体现出实际的应用价值。

参考文献

[1] 王宝珠,刘伟.基于ARM11的视频图像中运动物体监测跟踪系统[J].电子设计工程,2012,20(24):168?169.

[2] 陈元枝,李强,廖正湘.运动物体检测监控系统设计[J].大众科技,2011(11):11?13.

[3] 纪运红,张颖,吴庆红.基于灰度图像的自适应背景模型运动物体检测算法比较研究[J].现代电子技术,2007,30(5):123?127.

[4] 张德丰.Matlab/Simulink建模与仿真实例精讲[M].北京:机械工业出版社,2010.

[5] 葛成良,范国滨,梁正.基于Simulink的红外图像处理算法仿真平台[J].红外与激光工程,2006(z4):83?88.

[6] 赵建春,李文举,王新年.基于Simulink的车牌识别系统仿真平台[J].计算机工程与设计,2009,30(5):1154?1156.

[7] Anon. PandaBoard [EB/OL]. [2012?09?20]. http:// .

[8] 陈景涛,杨志刚,程力,等.运动车辆的视频动态目标检测[J].汽车工程学报,2014(1):74?78.

[9] 李建,蓝金辉,李杰.一种新型快速运动目标检测算法[J].中南大学学报:自然科学版,2013,44(3):978?984.

[10] MathWorks. PandaBoard support from Simulink [EB/OL]. [2013?05?16]. http://www. /hardw.

上一篇:基于单片机的智能电表设计 下一篇:基于FPGA的DVI视频信号发生器设计