基于DSP智能视频监控系统的软件设计

监控系统软件部分,由上层PC监控服务软件和底层DSP监控功能软件两部分组成。上层PC部分主要进行监控功能选择和监控结果的显示,底层DSP部分主要进行智能监控和压缩编码的算法实现。视频监控系统通过使用UART和USB接口作为联系PC和DSP的通道,以实现数据的交换。其中,使用异步串口(UART)作为监控系统与PC端监控软件的通信接口,完成底层监控程序和PC端监控服务软件之间的通信;使用USB控制器作为压缩码流的数据传输接口,完成压缩码流向PC端的输送任务。

智能视频监控系统同时使用Blackfin 561 DSP的两个核进行处理,通过PC服务软件和DSP端监控功能软件协同工作,其主要工作流程如图1所示。

图1 智能视频监控系统的工作流程

DSP端接收到一帧图像后,利用Blackfin 561 DSP的两个核完成智能视频监控处理和视频编码压缩处理。智能视频监控处理部分,利用Blackfin 561 DSP的A核进行,它首先通过UART通信模块获得PC端监控功能选择模块的当前功能,以及这一功能的相应参数;然后根据相应的功能调用监控功能模块中对应的监控函数进行处理:最后再利用UART通信模块将处理的结果传送到PC端显示。视频编码压缩处理部分使用Blackfin 561 DSP的B核进行,利用由ADI公司提供的H264编码函数和USB驱动函数实现,这里就不赘述了。

PC端进行不同监控功能的切换或调整功能参数,在下一帧输入图像中将进行监控功能的切换和参数的调整。

一、客户端软件

客户端软件是用户实现DSP监控操作的平台,主要由监控软件界面、监控功能选择模块、驱动函数模块组成。监控软件界面是监控系统和用户进行信息交互的平台,它整合了各个监控功能模块,用户通过它完成各个监控功能模块的调用、参数的选择、结果的显示等;PC监控功能选择模块完成对底层DSP监控功能的调用,从而实现用户需要的相应的监控功能;驱动函数模块包括UART驱动和USB驶动,UART驱动的作用是实现上层PC的监控服务软件和底层DSP的监控功能程序之间的UART接口通信,USB驱动的作用是通过USB接口接收底层DSP发送的压缩码流。

二、DSP端监控功能软件

DSP监控功能软件是整个监控功能实现的核心,由监控功能模块、H264视频压缩模块和UART通信模块组成。DSP监控功能模块经PC端监控功能选择模块进行调用,直接负责完成相应的监控功能,并将结果传输到PC端;H264视频压缩模块负责将输入视频图像进行H264压缩,并使用USB接口将压缩后的视频图像传输到PC端;UART通信模块负责利用协议实现和PC端的通信。下面主要介绍DSP监控功能模块。

所设计的智能视频监控系统需要实现8个不同的智能视频监控功能。根据监控功能的不同性质和处理手段,主要分为物体检测与数量统计,自动跟踪,入侵和遗留物体检测,摄像机模糊、遮挡及非法遗动等4类不同功能。本模块通过从PC端功能选择模块获取监控信息,选择单一视频监控功能进行处理。监控功能模块流程如图2所示。

图2 监控功能模块流程

监控功能模块中大部分功能首先都需要进行相同的前期处理过程——运动对象的提取。本系统运动对象的提取主要包括背景建模和连通域标记两个部分,其主要流程如图3所示。

图3 运动对象提取

(1)物体检测。需要根据运动检测的结果判断当前运动物体所属的类别,如人体,四足动物、四轮机动车、非机动车等。

•算法分析:使用高斯背景模型进行运动检测,提取目标的形状特征,并对它们进行分类。

•输入参数:输入图像的帧缓冲、检测对象种类。

•输出结果:运动物体的位置、类别。

(2)数量统计。需要在物体检测的基础上,统计各类物体或一类物体的数目。在统计过程中,还需要区分个体和群体。

•算法分析:在分类的基础上,使用计数器统计当前帧中各种目标的数量。

•输入参数:输入图像的帧缓冲、数量统计对象类别。

•输出结果:各类物体数目,如个体数目、群体数目。

(3)入侵检测。需要判断场景中运动物体是否进入某一固定区域。

•算法分析:在运动检测的基础上,判断冃标的位置与标定的“禁入”位置的相对关系,以实现入侵检测。

•输入参数:输入图像的帧缓冲、固定区域坐标。

•输出结果: 入侵物体位置和类别。

(4)遗留物体检测。主要是检测固定区域内箱包类物体的非法滞留问题。具体说,主要是检测行人将箱包等遗留到场景中的情况(重点是为了排除爆炸物和危禁品),也包括将场景中原有物体拿走的情况。

•算法分析:通过判断物体在监控场景中出现的时间的长短,来判断是否为遗留物体。

•输入参数:输入图像的帧缓冲、遗留物体尺寸范围和与运动物体最小距离。

•输出结果:遗留物体的位置及大小。

(5)自动跟踪。实现对于运动对象的连续检测,通过对运动物体的跟踪,获得其位置、速度、运动轨迹等运动信息。

•算法分析:使用卡尔曼滤波的方法进行目标跟踪。

•输入参数:输入图像的帧缓冲、对象的历史信息。

•输出结果:运动物体的位置及中心坐标等。

(6)摄像机模糊、遮挡及非法移动检测。需要发现影响监控摄像机正常工作或者威胁监控摄像机自身安全的活动。

•算法分析:使用DCT变换,统计全局的图像变化信息,判断摄像机是否模糊;利用图像灰度直方图变化信息,判断摄像机是否被遮挡;使用模板匹配的方法,判断摄像机是否非法移动。

•输入参数:输入图像的帧缓冲。

•输出结果:模糊、遮挡及非法移动情况信息和程度。

三、系统优化

(1)三缓冲区结构。设置三缓冲组成缓冲区队列。在实际处理过程中,使用其中两个缓冲区进行数据接收,另外一个缓冲区进行图像处理等。具体的三缓冲区结构如图4所示。

图4  三缓冲区结构

利用回调函数对缓冲区进行管理,每接收完一整幅图像后产生一次回调。使用三个变量维护当前缓冲区状态,Frame Buffer!和Frame Buffer2用于维护在循环中接收的两个缓冲区,FrameCounter为当前最新接收到的缓冲区。每次接收数据的存储位置根据Frame Buffer1和Frame Buffer2的值决定。

在主循环过程中,使用一个变量Active Index维护当前处理中的缓冲区。每当开始处理新的一帧时,交换Frame Counter和Active Index的值,并同时更新Frame Buffer1和Frame Buffer2。实现将上一帧处理结束的缓冲区加到输入缓冲中,而将最新一帧缓冲并进行处理的目的。

(2)算法优化。系统对大部分功能的实现算法进行了优化。由于在物体检测、数量统计、自动跟踪、入侵检测、遗留物体检测等算法中都需要使用背景模型,因此系统需要重点对背景建模算法进行优化。

背景建模主要包括两个部分:一是用当前图像和背景模型的均值和方差矩阵进行比较,得到前景图像和更新后的背景模型;二是对前景图像进行膨胀、腐蚀的形态学运算。

①背景模型更新。模型更新过程涉及的数据有:当前图像帧缓冲(8位)、当前前景帧图像(8位)、背景均值模型(32位)、背景方差模型(32位)、前景驻留时间矩阵(16位)。为了提高运算速度,需要首先将内存搬运到L1中再进行处理。其步骤如下。

第一步:在L1内存中分配行缓存区用于计算,采用PINGPONG结构设计双缓冲区。

第二步:使用两个DMA通道用于输入和输出。首先使用异步DMA方式输入一行输入图像、均值和方差矩阵及驻留时间矩阵,交替使用current和bck指针分别指向输入和处理缓冲区,并不断更新实现双缓冲结构。这里要求从第二行输入起使用同步DMA方式进行传输,因此使用了回调函数Line In Caqll Back和input_index变量,实现依次输入4个缓冲区。

由于这里要求将输入并计算后的新均值、方差和驻留时间行矩阵传回SDRAM中,因此输出DMA采用异步方式,等待完成后才会开始下一次的DMA输入。这样,在一定程度上,可避免同时向一个SDRAM区读/写内存。

②膨胀、腐蚀算法。这里同样也使用行处理方式进行膨胀、腐蚀两步运算。根据膨胀、腐蚀算法的特点,需要输入3行缓冲,然后进行一行的处理。因此,需设计使用6行输入的前景缓冲和两行膨胀、腐蚀处理结果作为3行输入和1行输出双缓冲。

由于输入和输出的缓冲区没有冲突问题,因而输入和输出均采用同步模式,并注意输入缓冲增量设为一行。

下一篇

 安防视频监控系统终端解码器的协议和波特率等的选择设置

弱电工程

安防视频监控系统终端解码器的协议和波特率等的选择设置

一、解码器的协议选择解码器的协议选择采用四位拨码开关:ON=1,OFF=0。解码器的协议选择、拨码开关的位置和适用范围、产品生产厂商不同,其设置就有所不同。一般,常见解码器的生产厂商的产品的拨码开关的设置,如表1所示。表1 常见解码器拨码开... ...

相关内容

基于DSP智能视频监控系统的硬件设计

基于DSP智能视频监控系统的硬件设计

由于本系统使用Blackfin 561 DSP进行开发,因而整个系统可由一块BF......

弱电工程

2022-07-08

基于DSP智能视频监控系统的结构及原理

基于DSP智能视频监控系统的结构及原理

根据系统功能与指标要求,选用美国模拟器件(ADI)公司的Blackfin 561......

弱电工程

2022-07-07

DSP智能视频监控系统设计的功能与指标要求

DSP智能视频监控系统设计的功能与指标要求

一、系统主要功能所需设计的DSP(选双核处理)智能视频监控系统主要完成以下功能。......

弱电工程

2022-07-07