微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于DSP的智能视频监控系统的实现

基于DSP的智能视频监控系统的实现

时间:04-23 来源:3721RD 点击:

  引言

  随着社会经济发展,城市交通和基础设施的不断进步,人们对安全的要求不断提高,视频监控系统已经广泛用于小区安全监控、火警监控、流量控制以及军事、银行、商场、机场、地铁等公共场所的安全防范。近年来,数字视频监控正以其无可比拟的优势逐渐取代模拟视频监控,为用户提供更安全、更智能化的视频监控服务。智能监控向网络化,智能化,数字化发展。目前最先进的数字视频监控系统已经具有智能化分析功能,以计算机图像处理技术为基础,对实时场景中的目标进行检测、识别、跟踪分析,并在此基础之上进行行为理解分析,从而代替或者部分代替人类进行监视活动。

  近年来,视频监控系统平台的设计层出不穷,而少有系统架构设计层面的介绍。国内外较为常见的系统设计,一种是使用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板卡。

  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 对

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top