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

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

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

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

1 系统整体设计方案

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


图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所示。


图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 帧间差分法

本系统采用帧间差分法进行运动物体检测,其原理是利用第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) = | f k (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)位置检测到运动物体的边缘。


图3 运动物体检测系统
        
4 程序设计

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


图4 帧间差法信号流图

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


图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 官网上查询。在安装的最后需要配置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机是否连通。


图6 PuTTY配置窗口



图7 串口配置信息

确定PC 机与PandaBoard连通之后即可将Simulink模型下载到PandaBoard上运行,下载过程如下:
在模型上选择Tools→Run on Target Hardware→Options,运行硬件选择PandaBoard同时检查PandaBoard配置信息是否正确;
点击Deploy To Hardware运行模型。

5.2 系统测试
程序下载到PandaBoard之后即可断开与PC机的连接独立运行。用USB无线鼠键在PandaBoard开发板上运行的Ubuntu系统上打开一个终端,通过命令行的形式即可运行程序,进行运动物体检测,检测结果如图8所示。
图8(a)显示了系统对运动人体的检测结果,图8(b)显示了对运动手掌的检测结果。其中,白色像素表示运动物体(人体、手掌),黑色像素表示静止的前景或背景。


图8 检测结果

6 结语

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

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表