- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于DM642的智能视频监控系统的DSP实现
引言
随着社会经济发展,城市交通和基础设施的不断进步,人们对安全的要求不断提高,视频监控系统已经广泛用于小区安全监控、火警监控、流量控制以及军事、银行、商场、机场、地铁等公共场所的安全防范。近年来,数字视频监控正以其无可比拟的优势逐渐取代模拟视频监控,为用户提供更安全、更智能化的视频监控服务。智能监控向网络化,智能化,数字化发展。目前最先进的数字视频监控系统已经具有智能化分析功能,以计算机图像处理技术为基础,对实时场景中的目标进行检测、识别、跟踪分析,并在此基础之上进行行为理解分析,从而代替或者部分代替人类进行监视活动。
近年来,视频监控系统平台的设计层出不穷,而少有系统架构设计层面的介绍。国内外较为常见的系统设计,一种是使用PC机作为算法运行的硬件平台,如 Morita等采用的C/S结构[1]或Dias等采用的分布式结构[2]。这种系统的主要缺点是成本高,由于PC对数字图像处理不易优化,智能算法很难达到实时要求。另一种使用专门数字图像处理器构建硬件平台。这种系统的最大不足在于随着系统规模扩大、信息量增多,加大了服务器负担,进而影响了整个系统。
在算法研究上,视频监控关键技术包括:背景建立,动目标检测,动目标提取与跟踪,动目标智能分析。其中背景建立和动目标检测是关键技术中的基础,其实现的好坏直接影响监控效果。目前较常见的算法有:帧间差分法[3],背景差分法[4],光流法[5]等。已有很多仿真工作见报道,但是较少有系统实现了的基于数字信号处理器DSP的嵌入式实时处理。
本文设计的视频监控系统遵循数字化、网络化和智能化的发展趋势,综合考虑对上述不足进行改进,可以使用普通模拟摄像头作为视频源进行本地实时智能监控,也可以使用网络摄像机作为视频源进行远程实时智能监控。在算法上较好地解决了监控算法背景更新,动目标检测等关键技术。提出并实现了对可疑物报警、对贵重物体丢失报警等算法。
系统设计
系统硬件
本系统的硬件由多块自行开发的数字信号处理(DSP)板卡组成,主要提供对本地和远程视频监控的硬件支持。每块DSP板卡包括:基于 TMS320DM642(TI多媒体数字信号处理DSP芯片,下文简称DM642)核心处理模块,外设存储器模块,总线控制模块,模拟视频输入模块, PCI模块。系统硬件框图如图1。
系统软件
·DSP端软件
DSP板卡运行多通道的智能监控算法,算法以库形式提供。软件构架则以算法库为核心、DSP/BIOS[6]和RF5[7]为框架进行构建。 DSP/BIOS是TI公司提出的高度优化、可裁剪的DSP实时操作系统内核,提供了抢占式的线程调度,内存管理,外设管理和可视化的调试工具等特性。 RF5是一种基于DSP/BIOS的DSP软件框架,提供了内存管理策略,线程模型,通道封装和算法管理。一台服务器主机中可以安装5张独立的DSP板卡。 [p]
DSP软件包括自启动、初始化、和线程创建,流程如图2所示。
图2中第五步动态创建了1个算法处理线程(ProcessTsk)、2个PCI通信线程(SendTsk,ReceiveTsk)以及一个中断服务子程序(PCI_ISR):ProcessTsk根据客户端为每个通道设定的监控规则,对通道中的图像进行算法分析,若有目标违规,则记录违规场景,产生报警信息,否则送出原始图像。SendTsk负责把ProcessTsk产生的报警信息或者图像通过PCI传输到PC端;ReceiveTsk负责接收来自本地板卡的模拟摄像头和来自PC端的网络摄像头图像,以及PC端来的信息。并传递给ProcessTsk;PCI_ISR负责监听来自PC端的请求,根据不同请求发送不同的旗语,控制线程间的运行。
主机服务器准备传输控制命令或者图像的时候,向DSP发送中断请求。PCI_ISR将响应这些请求,根据主机服务器的不同信息向其他线程发送不同的控制旗语:如果是PC端接收一帧图像完毕,则向SendTsk 发旗语PCI_READ_OK,表示可以接收下一帧图像;如果是断开、连接通道请求,则向ReceiveTsk发送旗语PCI_WRITE_OK,表示可以接收信息。ReceiveTsk接收网络摄像机或者模拟摄像机图像和控制命令。如果收到图像,将其存储在SDRAM的一个缓冲区中,以待进行算法分析; 如果收到控制命令,将其存储在由PC、DSP共同维护的一个缓冲区中。然后发起SCOM通信,把信息传送到ProcessTsk维护的SCOM中。 SCOM是RF5框架中的通信模块,提供了队列 (Queue)和旗语(Semaphore)的双重功能。ProcessTsk收到信息后,会使用视频缓冲区和控制命令缓冲区中的数据作为算法参数进行计算。ProcessTsk计算完成后,会产生相应的结果,比如警报或者处理信息。这些数据会保存在一个字节数组中,然后将其打包封装成一个Message 对象,将其发送到SendTsk维护的SCOM中,SendTsk接收到这个Message包后,对其进行相应的处理,然后发送到PC主机。线程通信如图 3所示。
·PC端软件
在服务器主机端,主要实现三个功能:(1)接收来自网络摄像头的视频流并解码,对应模块为网络摄像机模块;(2)构建用户界面,即客户端模块,记录用户算法设置、控制命令等,用户可以根据自己的需求在规则设置界面中对特定的通道设置算法参数和控制命令等;(3)将图像数据和算法参数、控制命令传给 DSP端,对应模块为后台服务模块。
算法设计与DSP实现
基于DM642的智能视频监控系统的核心是智能视频监控算法,本算法可以实现对监控目标物越线产生报警,对贵重物体消失产生报警,对可疑物体产生报警。算法原理:首先利用改进的帧间差分法来初始化背景模型,得到自适应背景图像[9];然后把当前图像和背景图像做差分运算;再使用动态阈值法对差值图像二值化,引入形态学噪声滤波器来消除噪声影响[8];进而使用快速二值图像连通域标记算法提取动目标;最后与用户预先设置的警戒规则进行比较,如有违规,产生报警信息。算法流程如图4所示。
自适应背景模型建立
在运动目标检测过程中背景模型建立的准确与否直接影响到目标检测结果的好坏。由于背景是个渐变的过程,所以采用了自适应背景更新方法:在视频图像序列中先假设第一帧图像为参考图像I0,在随后的图像序列中找两帧图像I1和I2,要求运动部分在I0,I1以及I2中所占区域没有重叠,将三帧图像的灰度值平均得到图像I:
将图像I与I0进行比较,如果差别较大(差值超出某一阈值T0),则为目标区域,否则为背景区域;在目标区域,进一步判断I1与I2的灰度值,如差别不大(差值小于某一阈值T1),则可用I1或I2中对应区域作为背景对应区域,否则用I0中对应区域作为背景对应区域,经过这一替代,就可以得到一个不包含运动目标的背景图像Ib。然后用此参考图像初始化背景图像模型,公式如下:
差值图像建立及二值化
自适应背景BL产生后,每一帧视频图像将与BL差分,并得到差分后的差值图像,进而进行二值化。在这一过程中,阈值选取的优劣是二值化结果好坏的关键。本文采用动态阈值法进行二值化处理。它的基本思想是对于需要二值化的每一帧差值图像,确定一个最佳阈值,使图像进行二值化处理后,能方便而准确的定位目标物。具体过程如下。 [p]
设差值图像灰度值取值分布范围为1~K,像素总数为N,灰度为i的像素数为ni,则每个图像灰度值的取值概率为:pi=ni/N。设以h为阈值将图像分割为两个区域A、B,灰度为1到h的像素和灰度为h+1到K的像素分别构成区域A和B,各组产生的概率为:
6.jpg
以类间方差作为衡量分离性能的准则,极大化的过程就是自动取定阈值的过程,因此,最佳阈值为:
。换句话说,类间方差最大的那个图像灰度值就是当前差值图像的最佳阈值。
运动目标检测
动态阈值确定以后,可根据此阈值对差值图像进行二值化,得到二值图像。但是在背景和目标中还会存在一定量的噪声斑点,再经过形态学运算处理后的图像更有利于目标提取,滤波后的二值图像通常包含多个连通区域。本文采用改进快速标记算法对各连通域进行检测提取。该算法对原图像只进行一次扫描后通过特殊的边界像素标记,就能搜集足够信息,可方便快捷的获得目标几何特征参数,算法分为像素扫描、整理等价表和图像代换,共三个环节。
根据用户设置的算法规则判断报警
得到动目标的外接矩形以后,对每一个目标物进行跟踪监控就具体化为对每一个矩形框的跟踪监控。这一过程中,用户通过PC端的客户端模块中的用户界面来选择算法规则,实现对人或车的监控。用户可以在主机服务器界面中设定规则,包括对场景设置虚拟警戒线、警戒区域和违规行为(比如贵重物体消失报警,可疑物的出现报警,目标物的越线报警)。一旦当前帧有外接矩形违规,则产生报警信息。
结语
本文实现了一个支持多板卡,多通道以及网络监控的智能视频监控系统。提供了一个完整的包括DSP硬件、软件框架、算法及实现的解决方案,较好的解决了背景更新,动目标提取等监控系统中的重要技术环节,提出并实现了对可疑物的报警、对贵重物体的报警等实用算法。基于DM642的DSP硬件板卡如图5所示,系统运行结果如图6所示。整个系统的技术指标如表1所示。
9.jpg
射频工程师养成培训教程套装,助您快速成为一名优秀射频工程师...
天线设计工程师培训课程套装,资深专家授课,让天线设计不再难...
上一篇:单片机的几种IO口配置
下一篇:模拟电路基板导线设计