利用光流法实现运动目标提取的研究*

2020-03-04 05:12张丽平王璐瑶张宇涵
计算机与数字工程 2020年1期
关键词:高斯金字塔阈值

张丽平 范 红,2 王璐瑶 张宇涵

(1.东华大学信息科学与技术学院 上海 201620)(2.东华大学数字化纺织中心 上海 201620)

1 引言

运动目标检测是计算机视觉领域一个重要的研究方向,运动目标检测就是将运动目标从含有背景的图像中分离出来[1]。高性能计算机的普及,髙质量、廉价摄像头的大范围使用对智能视频分析日益増长的需求,许多性能优异的跟踪算法不断涌现[2~3]。如果仅仅依靠一种检测算法,很难从复杂的自然图像序列中完整地检测出运动的目标。较高的检测精度和效率就显得尤为重要,因此融合多种检测方法的研究越来越受到重视。

在智能视频监控领域,传统的运动目标检测方法主要有帧间差分法和背景差分法、光流法等[4]。光流法利用运动目标随时间变化的光流特性来建立光流约束方程进行目标检测,但计算复杂、抗噪性差,在实时监控系统中的效果并不理想。帧间差分法通过视频序列中两个或三个相邻帧进行时间差分阈值化来提取目标,该算法计算量小,易于实现,且对于动态环境具有较强的适应性。但当目标运动过快或者过慢时,不能够准确检测出目标,且对照明条件等的改变反应不太灵敏[5]。背景差分法由于计算简易而得到广泛的应用,该方法可以获取完整的目标信息,但对背景的建模要求较高,当光照等外界条件突变时,会导致较大的检测误差[6~7]。如果仅仅依靠一种检测算法,很难从复杂的自然图像序列中完整地检测出运动的目标。较高的检测精度和效率就显得尤为重要,因此融合多种检测方法的研究越来越受到重视。本文提出光流法和帧差法相结合的方法,适用于道路交通车流量检测,对于疏导以及改善交通压力有一定的参考价值。

2 光流法的原理

2.1 LK光流法

LK光流法是一种基于梯度的光流估算方式,其一开始是为了计算稠密光流所提出的,后来因为它的特点,所以在求稀疏光流的方案里,也可以看到有些人的大胆尝试[8]。LK算法基于以下三个假设:1)运动要求是小速度的运动或者在时间上连续。2)在临近的地方发生的运动相似,空间保证符合一致性。3)亮度恒定[9]。

HS光流法是Horn和Schunck将二维速度场与灰度相关联,在假设物体上同一点的灰度在相邻帧变化时不会发生改变并且在短时间内像素点运动的距离很小的前提下,推导出了光流的基本约束方程式如式(1)所示[10~11]。

其中u和v分别是光流场中某点光流(x,y)在t时刻的水平速度分量和垂直速度分量。

HS需要多次反复的迭代运算才能得到精确结果,由于时间条件限制,没时间进行那么多次迭代,这时候LK的优势就显现出来了,在精度与计算速度方面,均优于HS算法,且LK算法在静态背景下的目标跟踪中能够取得良好的效果。由于LK光流法基于三个前提条件,这三个条件也是该方法存在局限性的原因。尤其是第一个假设:小速度的运动或者在时间上连续。当运动目标移动速度过快的时候,较大的运动会将点移出摄像头的小窗口,从而造成无法再找到这些点。

2.2 高斯金字塔

高斯金字塔是图像金字塔的一种,它在下采样之前,先使用高斯平滑滤波器对原图像进行平滑,故命名为高斯金字塔[12]。构建图像金字塔分两步:第一步对图像做高斯平滑;第二步向下采样[13~14]。自下而上是逐层由粗到细的,原始图像是第零层,越往上层,是下一层平滑后的下采样,当这个过程进行到恰当的程度时,原来的大运动被打磨到符合光流约束条件的小运动,以此促成第一个假设实现,这样接下来就可以顺利进行光流的计算,利用得到的图像金字塔的最上面一层进行光流计算,获得到的光流数值衔接到相邻下层金字塔,反复进行这个操作直至零层。如式(2)所示。

其中:Gk(x,y)为第k层高斯金字塔图像;G0为原始图像作为高斯金字塔的低层,w(m,n)为窗口函数。高斯金字塔原理如图1所示。

图1 高斯金字塔原理图

2.3 帧间差分法

帧间差分法顾名思义就是为了得到运动目标大致形状,对视频图像序列里面相邻两帧相减。不正常物体移动的情况发生在监控场景里时,帧与帧之间存在显著差异,获得帧间的亮度差的绝对值。图像序列的逐帧差异等效于时域中图像序列的高通滤除杂质。根据差分后得到的图像进行分析来获得运动目标轮廓的方法,在很多场景下,它都能够体现良好的适用性。帧差法的原理如图2所示。

图2 帧差法算法流程图

帧差法算法实现容易,实时性能好,不易受光线因素干扰。无需获取背景图像,适应性,检测有效且稳定,但是它也有一定局限性,那就是很多时候它不能较完整检测出所有运动像素点,运动目标的移动速度过于快速或过于缓慢,都会对检测结果产生影响[15]。帧差法原理如式(3)所示。

其中:Ik+1(x,y),Ik(x,y)为相邻两帧图像的灰度值,T是设定的阈值,若阈值选取过大,则会使检测到的目标不完整;若选取过小,则又会无法滤除混入的噪声,影响最终的检测效果。

2.4 中值滤波

图像滤波一般是指消除噪声。对于普通人来说,对自己的正常活动,造成不能接受的苦恼的声音,都可以视为噪声。而这些噪声我们都能切身感受到,而在本文中的噪声,不仅仅局限于我们听到或者看到的,因为在图像处理的时候,很多噪声我们单纯凭借感官系统无法获知,但是在处理过程中就会表现出来。专业分类一般把图像噪声分为高斯噪声,脉冲噪声等。噪声往往不会单独存在,大多数都与信号纠缠在一起。如果滤波不好,那图像本身比较细节的地方就会模糊不清[16]。

中值滤波是一种比较常见的非线性信号处理技术,它以排序理论为基础,能够有效地抑制噪声。它主要是排序领域中的像素,接下来再选择排序后的数据中的中间值作为最终输出的像素值[17]。其基本原理为:首先针对以一个像素为中心点的具体领域进行研究,领域也被称为窗口,可以是方形,十字形,圆形或其他类似的形状,然后对领域中的每个像素值按照灰度值的大小进行排序,最后再将这组数的中值作为中心点像素灰度的真值进行输出。序列中值的具体定义如下:若为一组序列xi1≤xi2≤xi3… ≤xin,先把这组序列按大小排序,则该序列的中值y如式(4)所示。

3 系统框架

LK光流法的实际跟踪结果不理想的原因是:大的跟踪窗口才能追寻大运动,而大窗口往往与第一个假设条件背道而驰。在物体移动速度较快的情况下容易丢失目标,所以使用图像金字塔对图像进行缩小处理,使得光流法原来对应的一个像素点变成更多,就更容易找到下一帧的目标位置了。首先在较大空间进行跟踪,然后用图像金字塔自上而下进行处理工作,以此使一开始的运动速度满足要求,这样才能得到较为准确的光流估计。本文将LK高斯金字塔光流法结合帧差法,算法实现容易,实时性能好,不易受光线因素干扰的优点,克服了传统光流法计算量大,耗时长,实时性差,会把变化的光线错误地识别为光流,对光线敏感的问题。

将从摄像头获取的监控视频载入,逐帧检测,利用帧差法获得差图像,然后从视频里提取光流数据。为了减少后面的工作量,先将光流数据先灰度化,然后进行二值化处理,从而获得前景图像。在前景图像里面进行一系列后续处理,包括寻找连通区域,运用基本形态学操作进行滤波,然后统计车辆数量。实验流程如图3所示。

图3 实验流程图

4 实验结果及分析

选取两个不同格式的道路车辆监控视频作为样本视频,然后设置好车辆阈值为0.0015,车辆阈值是可以动态修改的,其设定要根据具体场景,运动目标与背景的颜色差度来选择。这种方法的优点是可以根据需要灵活调整阈值,反复更改阈值,以期达到较为准确的实验结果。实验结果如图4所示。

图4 光流检测实验结果一

该检测视频格式是avi,由MFC界面右下角的播放进度,可以看出该视频有374帧,当前图像停留在第121帧,左上角的光流图像中的箭头为光流场向量。播放控制界面可以控制检测的继续暂停,检测结果可以准确显示当前画面的运动车辆数目。

图5 光流检测实验结果二

该检测视频格式是mp4,由MFC界面右下角的播放进度,可以看出该视频有304帧,当前图像停留在第122帧,左上角的光流图像中的箭头为光流场向量。播放控制界面可以控制检测的继续暂停,检测结果可以准确显示当前画面的运动车辆数目。

图6 不同车辆阈值检测结果对比图

由上图6可知:当车辆阈值为0.01时,体型较小车辆会被误认为杂质点,从而降低了检测准确率。当车辆阈值为0.001时,杂质会被误认为运动目标。由此可知:车辆阈值的选取会严重影响检测准确率。所以人工误差不可避免,这也是后续可以改进的地方。由实验结果可以看到,车辆阈值为0.0015时,该程序可以准确检测画面里的车辆数目,而且滤除掉了一些杂点,也就是车辆阈值小于0.0015的点,达到了预期目标。

表1 不同车辆阈值检测结果对比

5 结语

本文利用VS平台的开发环境和c++语言,采用LK高斯金字塔光流法与帧差法结合的方法,进行运动目标的提取。本文将光流法的优势与帧差法程序设计简单的特点融合,且充分利用了LK高斯金字塔在精度与速度方面的优势特点和中值滤波优良的性能。后续可以在阈值选取方面,进行精细化阈值选取,以求获得更好的实验效果。通过对运动车辆的识别,可进一步统计出指定路段车辆的速度以及数量,有利于预报路况,对道路交通的疏导和公共秩序的维持具有一定的参考意义。

猜你喜欢
高斯金字塔阈值
“金字塔”
改进的软硬阈值法及其在地震数据降噪中的研究
土石坝坝体失稳破坏降水阈值的确定方法
基于小波变换阈值去噪算法的改进
Great Vacation Places
改进小波阈值对热泵电机振动信号的去噪研究
数学王子高斯
金字塔是用金子造的吗
从自卑到自信 瑞恩·高斯林