荣俊勇 王中华

【摘 要】为了提高居家环境的安全以及视频监控系统的检测和存储效率,论文设计了一种基于PBAS算法的嵌入式视频监控系统。首先,构建了以S3C2440芯片为核心的嵌入式Linux平台,使用Qt 5.6实现了系统的人机交互界面。然后,对PBAS算法提出了改进方案,即改进决策阀值的更新策略和引入闪烁点机制。最后使用OpenCV实现该算法并应用在嵌入式Linux平台上。实验结果表明,该视频监控系统能较准确地检测出视频中含有移动目标的帧并将其保存下来,能有效节省存储视频所需的内存空间。

【Abstract】In order to improve the security of home environment and the detection and storage efficiency of video monitoring system, this paper designs an embedded video monitoring system based on PBAS algorithm. Firstly, this paper constructs an embedded Linux platform with S3C2440 chip as the core, and uses Qt 5.6 to realize the human-computer interaction interface of the system. Then, the paper proposes an improved scheme for PBAS algorithm, that is, to improve the updating strategy of decision threshold and introduce the scintillation point mechanism. Finally, the algorithm is implemented by OpenCV and applied to the embedded Linux platform. Experimental results show that the video monitoring system can detect the frame of moving target in video accurately and save it, which can effectively save the memory space needed to store video.

【关键词】视频监控;PBAS算法;S3C2440;嵌入式Linux;OpenCV

【Keywords】 video monitoring; PBAS algorithm; S3C2440; embedded Linux; OpenCV

【中图分类号】TP277 【文献标志码】A 【文章编号】1673-1069(2019)02-0174-02

1 系统软件设计

嵌入式视频监控系统的软件设计包括嵌入式Linux平台底层软件、视频监控系统的视频处理算法和人机交互软件的设计,以下对嵌入式视频监控系统软件进行介绍。

本文使用的开发工具有Linux虚拟机运行软件VMware Workstations10、虚拟机Ubuntu16.04 LTS、交叉编译器arm-linux-gcc4.4.3。构建嵌入式Linux平台,首先要在虚拟机上使用交叉编译器对Boot Loader、Linux内核、yaffs2文件系统以及使用到的软件(Qt creater 5.6、OpenCV 3.0)进行交叉编译,再将交叉编译后的文件移植到嵌入式硬件平台上。

程序开始执行后,首先使用V4L2对摄像头进行一系列初始化,接着用捕获的视频对PBAS算法的背景模型进行初始化,完成初始化后再对捕获的视频的每一帧进行移动目标的检测,如果有移动目标出现,则用矩形标记出移动目标以及在图像上标记出移动目标出现的时间,再将该帧图像保存到视频文件中;如果没有出现移动目标则进行下一帧的检测。视频监控界面设计如图1所示。

图1 视频监控界面结构

主界面包含三个按钮:实时监控按钮、历史视频按钮、退出按钮。点击实时监控按钮进入实时监控操作界面,实时监控界面有开始/暂停按钮、返回按钮,开始/暂停按钮控制实时视频监控的进行;点击返回按钮则回到主界面,但只要没有暂停实时视频监控就会在后台持续监控。点击历史视频按钮则会进入历史视频操控界面,历史视频控制界面有播放/暂停按钮和退出按钮,播放/暂停用于查看视频监控保存下来的含有移动目标的历史视频;点击返回按钮则停止播放历史视频,返回到视频监控主界面。

2 PBAS算法

在PBAS中,和SACON算法相似,背景模型是由视频序列中的N个历史样本组成的[1]。而前景检测和背景模型更新与VIBE算法类似,但背景模型更新是动态的。任何一个像素xi都有一个决策阀值R(xi),通过背景模型B(xi)和当前帧I(xi)比较把当前帧的像素分为背景和前景。背景模型的随机更新取决于学习速率T(xi)。

2.1 前景分割决策

在PBAS中,类似于其他前景分割算法,前景和背景分类是基于背景模型与当前像素进行比较的。PBAS的背景模型是由邻近当前视频帧观察到的N个历史像素值组成的:

B(xi)={B1(xi),…,Bk(xi),…,BN(xi)} (1)

如果在背景模型B(xi)的N个值中有至少#min个与像素点xi的像素值I(xi)距离小于R(xi),则该像素点为背景点,否则为前景点。因此前景分割掩模计算式为:

F(xi)=1 {dist(I(xi),Bk(xi))

表达式(2)中,F=1表示前景,F=0表示背景,dist为距离计算:

dist(I(xi),Bk(xi))=|I(xi)-B(xi)|(3)

决策所涉及的两个参数:①每个像素单独定义且可动态改变的距离阈值R(xi);②固定的全局参数,最小数目#min。

2.2 背景模型更新

为了适应背景的变化,需要对背景模型B(xi)进行更新。由于前景区域不能用于更新背景模型,背景模型只对当前的背景像素进行更新。PBAS算法的更新策略为:等概率选择k ∈1…N,用当前像素值I(xi)取代相应背景模型值Bk(xi),但更新概率为p=1/T(xi)。因此,学习速率T(xi)决定更新速率。T(xi)越大,像素被更新的概率越小。

PBAS算法也以概率p=1/T(xi)随机选择更新一个相邻像素yi∈N(xi)。因此,在这个相邻像素的背景模型中Bk(yi)被其当前像素值V(yi)所取代。该属性的优点是判断错误的前景对象会很快消失。

2.3 决策阈值R(xi)的更新

在PBAS算法中决策阈值R(xi)的更新机制如下:首先,在构建背景模型B(xi)的同时也创建一个决定最小距离的数组:

D(xi)={D1(xi),…,Dk(xk),…,DN(xi)} (4)

不管背景模型B(xi)是否进行了更新,当前的最小距离都将被保存到Dk(xi)中,当前的最小距离为:

dmin(xi)=minkdist(dist(I(xi),Bk(xi))) (5)

D(xi)的平均值 min(xi)可以用来横量当前背景的复杂度。决策阈值R(xi)的更新模型如下:

R(xi)=R(xi)·(1-Rinc/dec) R(xi)> min(xi)·RscaleR(xi)·(1+Rinc/dec) 其他(6)

其中,Rinc/dec为更新率,Rscale为比例因子,两者均为固定参数。

3 系统测试

原始PBAS算法经测试得出的最佳参数值如下:背景模型历史像素值数N=35,最小数目:#min=2,更新率:Rinc/dec=0.05,比例因子:Rscale=5,决策阀值R(xi)下限:Rlower=18,T(xi)下降速率:Tdec=0.05,T(xi)上升速率Tinc=0.05,T(xi)下限:Tlower=2,T(xi)上限:Tupper=200。

每个像素背景模型中的历史像素数N为35时性能达到最佳,但对于一些简单的场景只需要取10既能达到检测要求。由于本系统使用的处理芯片为S3C2440,其计算速度相对较慢,为了减小计算复杂度,提高视频监控系统的实时性,在本系统中将N设置为20。其他参数则保持不变。

4 结语

本文针对传统视频监控系统的不足,设计了一种基于PBAS算法的嵌入式视频监控系统。该视频监控系统以嵌入式Linux为硬件平台,大大节省了视频监控的投入;以Qt 5.6和OpenCV 3.0为软件编程工具,实现了良好的人机交互界面,并使用PBAS算法对移动目标进行检测,较好地实现了对视频监控中移动目标的检测以及对含有移动目标的视频序列的存储[2]。与传统视频监控相比,使用户尽量减少在视频监控上所花费的人力和物力。

【参考文献】

【1】李棚,吴晓红,何小海,等.一种改进的PBAS运动目标检测算法[J].科学技术与工程,2015,15(27):48-53.

【2】张泽斌,袁哓兵.一种改进反馈机制的PBAS运动目标检测算法[J].电子设计工程,2017,25(3):35-40.