动态目标检测

2024-11-08

动态目标检测(精选7篇)

动态目标检测 篇1

摘要:该文介绍了几种目前较为流行的运动目标检测方法, 详细阐述了这些方法的检测原理, 然后指出这些方法的优势和不足, 在此基础上提出了动态背景更新方法, 给出了整个算法的实现流程, 同时在细节上做了一些改进。实验结果表明, 此运动检测方法在静止背景的情况下能够有效地检测运动目标。

关键词:背景差分法,帧间差分法,运动目标检测

运动目标检测[1,2]是智能视频监控的第一步, 运动检测的目的是自动分离出视频图像序列中的运动像素点和静止像素点, 将变化区域从背景图像中提取出来。视频监控系统通过对检测到的运动像素点进行自动分析, 运用形态学的操作来确定前景对象, 最终根据前景对象的运动决定是否有意外情况发生并报警。运动目标的准确检测和分割对于目标分类、跟踪和行为理解等后期处理非常重要, 因为以后的处理工作主要是在运动区域上进行的。

1 运动检测常用方法

通常意义上讲, 视频监控系统中获取的视频图像包括前景和背景两部分, 它们在不同的问题中有不同的涵义。在本文设计的运动目标检测方法中, 摄像机是静止的, 并且前景主要是指人或者车辆, 背景主要是俯视角度下的街道马路等背景变化不迅速的场景, 这种场景基本上属于静止背景, 即使是变化也是缓慢的变化。而静止背景下的运动目标检测方法主要有光流法、帧间差分法、背景差分法等, 下面主要介绍应用最广泛的后两种方法的原理和特点[3]。

1.1 帧间差分法

相邻帧间差分法[4]的运动目标检测的原理是:当监控场景中出现异常物体运动时, 帧与帧之间会出现较为明显的差别, 相邻两帧图像相减, 得到两帧图像亮度差的绝对值, 判断它是否大于阈值来确定图像序列中有无物体运动, 并报警。这种方法的优点是因两幅图像之间的时间间隔较短, 对光线等场景变化不太敏感, 能够适应各种动态环境, 检测有效而稳定。不足之处是不能检测出物体的准确位子。采用这种方法时, 需要考虑如何选择合适的时间间隔, 这一般依赖于所监视的物体的运动速度[5]。对快速运动的物体, 需要选择较小的时间差, 而如果选择得不合适, 最坏情况下物体在前后两帧中没有重叠, 造成被检测为两个分开的物体;而对慢速运动的物体, 应该选择较大的时间差, 而如果选择得不适当, 最坏情况下物体在前后两帧中几乎完全重叠, 根本检测不到物体。

1.2 背景差分法

背景图像差分法[6]是利用当前图像与背景图像的差分来检测运动区域的一种技术。它将当前每一帧图像与事先存储或者实时得到的背景图像 (不存在任何运动物体) 相减, 一般情况下, 由于运动物体在灰度上与背景灰度存在着很明显的差异, 这样作差分后的差值图像只是在运动物体处有较大的灰度值。选取适当的阈值, 差值图像的灰度值大于阈值, 则判定被监视场景中有运动物体, 从而得到运动目标。这种方法的优点是:1) 检测出的运动目标位置精确, 且速度快, 因为它只需获取当前的一幅图像;2) 经根据实际情况确定阈值进行处理后, 所得结果直接反映了运动目标的位置、大小、形状等信息。不足之处是受环境光线变化的影响非常敏感, 容易产生误报警。

由此可以看出, 背景图像差分法成功与否依赖于背景图像。背景图像的核心问题在于如何处理环境中随时间推移引起的光线变化, 背景物体移入和移出等造成的背景变化, 为了使背景适应这种变化, 需要对背景进行更新, 即背景更新问题。对于不同的应用场合, 需要对背景更新问题做特定的考虑。本算法的场景主要是在室内, 且摄像机固定, 会遇到的一些背景更新问题有:1) 背景的扰动:背景中可以含有轻微扰动的对象, 如随风摆动的窗帘不应该被看作是运动目标;2) 外界光照条件的变化:一天中不同时间段光线、天气等的变化对检测结果的影响;3) 背景中固定对象的移动:背景里的固定对象可能移动, 如场景中的一把椅子移走, 对象移走后的区域在一段内可能被误认为是运动目标, 但不应该永远被看作是运动目标。

2 动态背景更新运动检测算法

在了解背景图像差分法和相邻帧间差分法的基本原理后, 若将背景图像差分法和相邻帧间差分法结合起来, 使它们优势互补克服各自的弱点, 可以设计出一种改进的运动目标检测算法。

2.1 背景图像的提取与更新

背景图像是基于多帧平均法取得的。在程序开始视频预览后, 首先根据连续采集的n帧图像求平均值获取原始背景图像Bo,

使用一阶递归滤波器对背景图像进行动态更新

其中, Ik (x, y) 表示当前帧图像, Bk (x, y) 表示当前背景图像, Bk-1 (x, y) 表示上一帧背景图像。递归系数α决定各帧在背景图像中的贡献度, α越大, 当前帧和较近的帧对背景图像的贡献越大, 反之, 则当前帧和较近的帧对背景图像的贡献较小。所以, 当α较大时, 动态背景差分法的性能更接近于帧间差分法, 对背景的变化适应较快;而当α较小时, 动态背景差分法的性能更接近于传统的背景差分法, 更适合探测运动速度较慢的物体。

2.2 背景差分法实现运动检测

当图像中出现运动目标时, 由于目标会对背景产生遮挡, 造成当前帧图像和背景图像之间的帧间差别, 判断这种差别的大小就可以判断图像中是否有运动目标。

其中T为灰度阈值, 灰度阈值的大小决定运动探测的灵敏程度。式 (3) 所示的判断方法对于噪声影响和整体光照比较敏感, 容易产生误报。为此, 加入抑制整体光照变化和噪声的附加阈值Text, 调整运动判断条件为

其中:

式 (4) 的意义是统计每帧图像的帧差绝对值超过附加阈值Text的像素数, 如果超过附加阈值的像素总数大于像素数阈值T, 则判断为有运动目标。视频采集程序能够随时改变视频图像的分辨率, 所以像素数阈值T由程序根据图像大小以指定的固定比例动态确定。附加阈值Text有抑制整体光照和噪声两种功能, 因此Text需要考虑这两个因素。

噪声是每个系统 (包括摄像头、采集卡等) 都有的, 对于一个系统, 其噪声 (噪声点的平均数量和幅度) 通常有一个正常的水平, 可以根据使用的经验总结出抑制其系统噪声的阈值Tnoise的大小。光照阈值Tlumi需要通过当前帧图像与背景图像计算得到

N为检测区域内的像素总数, λ为调节系数。当仅有光照对图像产生影响时, 当前帧和背景图像之间的亮度变化在整体上比较均匀, 一般帧间差能超过Tlumi的像素点数无法超过像素数阈值T, 这样就有效地抑制了光照变化所产生的影响。当有运动目标时, 则当前帧和背景图像之间的亮度变化不均匀, 超过Tlumi的像素点数增多, 可以被判定为有运动目标。

综合考虑光照变化和噪声的影响, 附加阈值Text选为Tnoise和Tlumi中较大的一个。

3 结论

本文提出的动态背景差分法, 结合了背景差分法和帧间差分法的优点, 通过附加阈值的设定, 有效解决了背景噪声法对整体光照和噪声敏感的问题。实验结果表明, 此运动检测方法在静止背景的情况下能够有效地检测运动目标。

参考文献

[1]林洪文, 涂丹, 李国辉.基于统计背景模型的运动目标检测方法[J].计算机工程, 2003, 29 (16) :97-99.

[2]张文杰, 戚飞虎, 江卓军.实时视频监控系统中运动目标检测和跟踪的一种实用方法[J].上海交通大学学报, 2002, 36 (12) :1837-1840.

[3]谭铁牛.智能视觉监控研究进展[C].第二届全国智能视觉监控学术会议论文集[M].北京:科学出版社, 2003.

[4]Foresti G L.Object recognition and tracking for remote video surveillance.IEEE Transaction Circuits and Systems for Video Technology, 1999, 9 (7) :1045-1062.

[5]艾海舟, 乐秀宇.面向视觉监视实时跟踪的动态背景更新方法[J].计算机工程与应用, 2001, 37 (19) :104-106.

[6]Stringa E, Regazzoni C S.Real-time video-shot detection for scene surveillance applications.IEEE Transaction on Image Processing, 2000, 9 (1) :69-79.

动态目标检测 篇2

交通是国民经济的基础产业,是社会发展和人民生活水平提高的基本条件。随着公路建设的发展,如何高效、安全地使用高速公路成为亟待研究的问题。由于建造各种公路等物理设施的能力是有限的,所以单纯地依靠修建更多的道路、扩大路网规模等这样的措施仅仅能解一时之需,并不能从根本上解决日益增长的交通需求。基于这种需要提出了交通监控录像系统的概念。监控录像系统是以数字视频处理技术为核心,综合利用光电传感器、计算机网络、自动控制和人工智能等技术的一种新型监控系统。该系统除了具有传统闭路电视监视系统的所有功能外,还具有远程视频传输与回放、自动异常检测与报警、结构化的视频数据存储等功能。

发达国家在交通管理方面,早己经开始了从道路交通状况监控技术到各种交通模型、基础交通理论的研究[1,2,3]。在道路交通监控技术方面,有些研究成果己经在交通管理中实际应用。在交通检测领域还有很多关于视频图像处理的研究[4,5,6]。过去十多年来,以美国、英国为代表的发达国家开展了大量的ITS先导项目研究,在ITS发展领域取得了很多成效[7]。目前,我国也开展了以“机非(机动车和非机动车)混合交通”为特点的交通模型和基础交通方面的理论研究。这项技术的研究和应用,将会极大改变目前交通管理以人管理为主的被动局面,真正实现交通管理智能化。因此,进行视频交通监测的设计和研究具有很重要的实际意义[8,9,10]。

在智能交通监控系统中,车辆运动目标的正确检测与分割是所有后续处理的前提和基础。交通参数(车流量、车速等)采集、车型识别分类以及车辆目标的跟踪等都直接依赖于车辆目标的检测识别结果。本文重点论述车辆目标的检测与分割方法。

1 运动车辆检测

运动目标的检测与分割是计算机视觉、视频信息处理等应用领域的重要研究内容。目前,视频信号的智能化处理要求日益增加,正确地从视频流中提取运动目标是许多智能视频监视系统的基础部分,如视频监视[11]、交通自动监控[12]、人体检测与跟踪[13,14]等。

1.1 车辆检测算法

基于自适应系统统计信息的查询优化器除了具有查询优化器的一般功能和组成结构之外,还有其独特的功能特点。这些特点主要体现在以下几个方面:

(1) 能够根据数据库系统所在环境的变化自动收集系统统计信息。

(2) 可以将收集到的系统统计信息应用到开销估算模型之中,使优化器作出正确的决策。

(3) 拥有反映数据库系统性能的性能诊断模型,使数据库管理员可以根据性能进行合理的调整。

车辆检测的基本原理是通过视频摄像机,对路面情况进行图像输入,且完成数字化工作。由于在图像采集过程中,会有一些影响图像质量的噪声信号产生,所以在对这些数字图像进行处理前,应先进行数字图像滤波,对于预处理后的图像,可进行相应的视频检测程序,提取交通参数。系统框图如图1所示。

1.2 运动目标检测与分割

本文选用了图像差分的方法来进行车辆目标的检测,然后针对交通视频自身的特点,在图像差分中提出了基于统计分析的背景估计方法,并根据具体情况对背景模型进行实时更新,以适应光线变化或场景本身的变化。背景差分操作后,针对运动目标在差分图像中产生空洞的特点,提出了种子点伪随机增长算法。最后用数学形态学运算对目标的分割结果进行后处理,消除噪声和背景扰动带来的影响。图2给出了运动目标检测和提取流程图。

1.3 基于图像背景差分的运动目标检测

背景差分方法是常用的运动目标检测方法,国内外很多学者在这方面做了大量的研究。其基本思想是利用序列图像中的每一帧与背景帧相减,若像素差值大于某一阈值,则判定此像素为出现在运动目标上的,且相减的阈值操作后得到的结果直接给出了目标的位置、大小、形状等信息。这样就达到了检测运动目标的目的。此类减背景方法的优点是位置精确、速度快。

这里采用的方法是:对运动变化区域部分的每一行提取灰度阈值,再在该运动变化区域所对应行里对每一像素进行扫描判断。因为在运动变化区域里大部分像素属于运动物体,少部分为背景像素,所以由每一行的像素累加求和,取均值,再根据具体情况加上一定的置域度,便可以做为该行扫描的灰度门限,剔除背景部分,还原运动物体本身。

为了进一步得到更准确的每一行的灰度信息,可以综合利用前后两帧中的变化运动区域的信息,将前后两帧中的对应的像素相加,求得均值后,再加上一定的置域度,作为该行像素的扫描门限。

本文的图像恢复算法和检测门限的确定方法如下:

Mh(l)为经运动检测运算后得到的灰度发生变化区域的第l行图像的平均灰度值,Mb为该区域附近未发生变化的图像的平均灰度值,则取门限阈度值为:

ε=12|Μh(l)-Μb|(1)

然后再根据运动物体和背景图像的灰度的相对高低来确定检测门限和恢复算法:

若运动物体比背景的平均灰度低(即Mh(l)<Mb),则Th=Mh(l)+ε。以Th为门限在中间帧图像里对应的变化区域分别向两侧扫描,恢复运动物体可得:

f(l,x)={f(l,x)iff(l,x)<Τh255otherwise(2)

其中,f ′(l,x)是扫描恢复后中间帧的第l行的第x个像素的灰度值。当运动物体比背景图像的平均灰度高时(即Mh(l)>Mb),则将门限设定为:

Th=Mh(l)-ε (3)

然后在中间帧图像里对应的变化区域进行扫描,恢复运动物体:

f(l,x)={f(l,x)iff(l,x)>Τh255otherwise(4)

2 运动目标的提取

2.1 图像数据的滤波去噪

依据前面的介绍做背景差分,得到大致的运动目标,但由于噪声及各方面因素的影响,运动目标的检测结果会出现断裂、空洞等问题,下面将针对这些问题进行一些后处理。

运动目标和噪声点的区别在于:运动目标区域表现为由若干具有一定亮度的像素点组成的一定形状空间,而噪声点则表示为相对孤立的像素点的较小的集合。由于图像上各像素的灰度值不是相互独立的,各像素之间有一定的概率依赖关系,称目标像素点组成的一定形状的集合为目标基元。设在m×n点阵内,黑色点个数为A,可作如下假设:当目标基元中大多数像素点被判为背景时,可以认为目标基元中所有像素都应属于背景。同理,当目标基元中大多数像素点被判为前景时,可认为目标基元中所有像素都应属于前景,这样可以在一定程度上将离散的噪声去掉。具体操作如下:

if(A>=T) 将m×n点阵全置黑

else 将m×n点阵全置白 (5)

其中T为给定的一个闭值,目的是为了消除噪声对检测结果的影响。

2.2 种子点伪随机增长

种子点伪随机增长的基本思想是将具有相似性质的像素集合起来构成区域。先对每个要分割的区域找一个种子像素作为生长的起点,然后将种子像素周围邻域中与种子像素相同或相似的像素合并到种子像素所在的区域,将这些新像素当作新的种子像素继续上面的过程,直到没有满足条件的像素可被包含进来。实际的区域生长法需要解决三个问题:

(1) 选择或确定一组能正确代表的种子像素;

(2) 确定在生长过程中能将相邻像素包含进来的准则;

(3) 指定让生长停止的条件或准则。

利用背景相减结合噪声点弃除确定出来的运动点为增长的种子像素点,区域灰度差为生长准则。则基于背景相减的种子点伪随机增长算法如下:

(1) 选择背景相减检测出的运动区域的运动点为种子像素;

(2) 以该像素为中心检查它的邻域像素,即将邻域中的每个像素逐个与它比较,如果灰度差小于确定的闭值,将此像素确定为运动目标上的点;

(3) 以新确定的像素为中心,返回步骤(2),检查新像素的邻域,直到遇到背景相减确定的运动点或找不到相似像素,返回(1),直到所有的种子像素都被检查一遍,结束整个生长过程。

通过上述增长之后,基本上可以把属于同一目标的离散小块连在一起,达到目标分割的目的。

3 实验结果

实验视频采用的有城市交通视频,也有小区内的车辆、行人视频等,算法用VC++6.0编写。下面给出的是城市主要干道的交通视频序列中的某两帧的实验结果。从所示的检测结果中可以看出,当运动目标转为静止状态时,通过背景更新被判为背景,而当静止的物体又重新开始运动时,大约滞后一秒钟可以检测到其开始运动了,在交通监控系统中通过这种方式检测到车辆的停止和起动,进而得到交通堵塞的一些有用信息。图3(a)显示的是第223帧对应实际图像,图3(b)为该帧对应的运动图像检测结果,可以看出,本文的算法可以将交通视频图像中的运动物体很好地提取出来,具有较高的准确性。

从上面的实验结果可以看出,该算法能够很好地检测出运动目标,针对智能交通信息采集系统而言,我们重点关心的对象是运动的车辆,所以,必须尽可能地消除各种干扰,得到准确的车辆信息。具体考虑如下一些干扰情况:噪声是不可避免的,从天空飘落的树叶到图像采集过程中的各种误差都是要考虑的因素。对于一般的随机噪声,采用普通的滤波方法:均值滤波来处理,而对于其他的噪声,采取标记区域确认,在确认的过程中消除噪声的影响。因为噪声出现的位置不同、大小不同,所以在标记区域确认的过程中就可以把它排除掉。

4 结 论

本文讨论分析了运动目标检测的基本方法和理论,然后重点就基于背景差分的运动目标检测方法进行了详述。针对交通视频自身的特点,在统计分析的基础上对背景进行了很好的恢复,利用背景相减法结合种子点伪随机增长进行自适应的运动目标检测,在一定程度上克服了传统算法中使用简单闭值法的缺点,提高了算法的效率。实验证明,本文的算法能准确、快速地检测和提取出运动目标并有很强的鲁棒性,有着广泛的适应性,为视频监控的后续处理提供了坚实的基础,具有较好的实用价值。

摘要:视频交通检测技术已逐渐成为交通信息采集领域的主流技术。以交通信息采集系统中运动车辆的检测与识别为应用背景,在对运动目标检测中背景更新、噪声的消除等一些难点问题进行深入分析研究的基础上,给出了一个稳定的运动车辆检测算法。运动车辆检测方法作为视觉监控领域的一种普遍方法,具有一定的理论意义和实用价值。

动态目标检测 篇3

红外多目标的跟踪和检测方法是卫星预警、精确制导、告警和监测等领域的一项关键核心技术,对复杂背景条件下的港口内运动多目标跟踪与检测研究是现今的热点之一。通常检测红外多目标的方法有基于运动轨迹质心迹累加的序列检测方法,基于多特征融合的方法,动态规划和航迹关联方法等[1]。基于运动轨迹质心迹累加的序列检测方法适用于深空背景下的点目标检测;多特征融合方法的运算量较大,可靠性较差;动态规划和航迹关联方法对于解决复杂红外环境里的目标检测问题的鲁棒性较差。同时,港口内大多存在如高大建筑物、停泊舰船、大铁架、码头和山峰等红外特征显著的物体。这些红外特征显著的物体对复杂动态背景下运动目标的检测有很大的影响[2]。运用上述传统算法很难有效的检测出目标。因此,根据红外多目标跟踪和检测中实时性和精确性的要求,结合港内红外分布的特点,文中提出了先用小波变换的方法实现动态复杂背景的抑制,然后运用区域主动轮廓模型的水平集方法实现红外多目标跟踪。

图1显示了本文在复杂动态背景条件下红外运动多目标跟踪和检测的流程图。先对序列图像采用小波变换,实现背景抑制;然后对各个连通区域运用区域主动轮廓模型的水平集方法求取区域的结构特征、灰度特征和运动特征等,并结合连通区域的先验知识,通过比较和判断实现前后帧间的各个连通区域的数据关联,从而实现对红外多运动目标的连续跟踪和检测目标。

文章的组织结构为:1)先介绍小波变换和采用小波变换实现复杂背景抑制的具体方法;2)背景抑制后,对序列图像的各个连通区域运用区域主动轮廓模型的水平集方法进行图像分割,并求出各个区域的结构特征、灰度特征和运动特征,这里用形状描述因子来表述区域结构特征,用区域的平均灰度来描述区域的灰度特征,用Kalman滤波来描述区域的运动特征;3)通过对前后帧各个连通区域比较以上特征来实现图像间各个连通区域的关联,在关联中会出现多目标“合并和分裂”现象,采用“记忆和填充”方法来实现对多目标的稳定跟踪;4)最后根据先验知识和检测条件来提取最终得到的目标和参数。

1 小波变换

小波变换具有低熵性、多分辨率、去相关性、选基灵活等特点,可同时进行时频域的局部分析,能够灵活地对图像局部奇异特征进行提取[3]。文中采用小波变换方法实现对复杂动态背景抑制的目标。用尺寸为M×N的函数f(x,y)表示原始图像,其二维离散小波变换[4]是:

其中:i代表了值H(水平),V(垂直)和D(对角),j0是任意的开始尺度,Wϕ(j0,m,n)系数定义了图像在尺度j0的f(x,y)的近似,Wψi(j,m,n)系数则表示图像对于j≥j0的水平、垂直和对角方向的细节。

由于Daubechies(db N)小波总结了多分辨分析的概念和金字塔式压缩编码方法,并把小波变换与传统的滤波器组概念联系了起来,因此,这里选用Daubechies小波族中的db3小波作为小波基系数进行小波变换。

2 基于小波变换的背景变化程度估计算法流程

传统背景变化程度估计方法是根据图像间像素的差异,这样处理的结果使得运算量过大,达不到实时处理的要求[5]。为了更准确、更具效率的实现背景抑制,这里,利用小波变换的细节特性,通过比对当前图像和参考背景图像小波变换后的细节若干部分来确定背景移动程度[6]。通过估计背景变换程度来确定参考背景,实现背景抑制,这样处理的目的是为了减少运算量和提高抑制静态场景的能力,为后续进行运动多目标的跟踪和检测打下基础。具体的算法流程如下:

1)选取第一帧图像作为背景图像b(x,y),根据此帧图像小波变换后得到四个子图像wbi(x,y)(i={A,H,V,D}),在wbi(x,y)(i={A,H,V,D})图像中根据式(5)选取数值最大点作为基准点,在内存中保存该点在原始图像的坐标及灰度数据,并记为S(x,y,g)(x、y分为该点横、纵坐标,g为该点灰度);

2)对接下来帧的图像f(x,y)进行小波变换得到图像wfi(x,y)(i={A,H,V,D}),分别保存水平子图像wfH(x,y)中大于一定阈值TH的区域{NHk}和垂直子图像wfV(x,y)中大于一定阈值TV的区域{NVl},并计算区域NH和NV对应原始图像的灰度和坐标点,可得到数据{NHk(x,y,g)}和{NVl(x,y,g)}。用式⑴中的基准点中的灰度分别比对这些区域的平均灰度值,当(NHk⋅g)/(S⋅g)或(NVl⋅g)/(S⋅g)值中有满足区间(0.8∼1.25)的值时,则从中取数值最接近1的数据,并把值赋于N(x,y,g),N(x,y,g)为此帧图像与背景图像的比较点,并转3);若所有比值都不在上述区间,则转1),并把此帧图像作为背景图像。

3)根据S(x,y,g)与N(x,y,g)中的x,y值大小调整此帧图像与背景图像的比对位置,可以得到背景抑制后的图像T(x,y):

当时,∆x=∆y=0(Tz为调整门限,这里根据多次试验结果取为5),也就是不调整背景图像的比对位置。

3 基于动态先验知识的区域主动轮廓模型水平集方法的多目标跟踪与检测

在对背景进行抑制处理后,利用基于动态先验知识的变分方法来实现图像分割和目标分类[7]。设抑制背景后的图像为I(t);图像I(t)中有M个轮廓区域,用标签L=(L1,…,LM)来标识这些区域。这里,在第一帧图像中按照区域面积大小来标识这些区域,在随后的序列图像中采用“竞争机制”来关联轮廓区域和标签,实现多目标的数据关联和跟踪。另设先验知识为At(Sk,Gk,Vk)(Sk:形状描述因子;Gk:灰度特征;Vk:运动特征)。

根据水平集通过最小化能量函数进行图像分割的思想,基于图像I、轮廓C和标签L的能量函数为[8]

式中前一数据项参考Chunming Li在文献[9]中提出基于可伸缩区域自适应能量函数进行图像分割的方法,该方法具有不需要重新初始化水平集、图像分割准确和快速等特点。所采用的最小化能量函数为

式中:第一项为自适应数据项,第二项为曲线弧度长度项,第三项为正则水平集项。其中:M1(φ)=Hε(φ),M2(φ)=1-Hε(φ),∫|∇H(φ(x))d|x为轮廓φ零水平集的长度;函数;1λ和λ2为正常数,f1(x)和f2(x)分为1Ω和Ω2近似图像;K:ℜn→[,0+∞)为高斯核:;σ为尺度参数σ>0,P(φ)为水平集正则项,。

文中通过上式实现f1(x)和f2(x)f的更新,从而实现不需要重新初始化水平集。固定f1(x)和f2(x),对φ求微分来最小化F(Φ,f1,f2),其梯度下降流为

另外

式中:前一项为与先验知识相关的概率项,后一项为约束项,满足:

加权系数:

Pi(A(t)|λ)(i=1M)为基于先验知识的概率函数。

总能量函数的梯度下降流为

3.1 动态先验知识中形状描述因子

为了在序列图像前后帧之间比较、匹配连通区域间的结构特征,可以通过式(17)来判断图像前后帧区域间形状{S1,S2}是否匹配[10]。这里,m为形状S1到形状S2的映射,κ1和κ2为对应的形状曲率。

根据式(17)表述的思想,对图像中区域轮廓结构特征可以用形状描述因子Sk(d vertex,sarea)来描述[11]。dvertex表示区域的拐点到中心点的距离总和,对应式(17)的第一项,dvertex=∑Ni=1((vix-Ox)2+(viy-Oy)2),vi为区域的拐点,vix和viy为对应的横、纵坐标,O为区域中心点,xO和Oy为对应的横、纵坐标;sarea为区域面积,对应式(17)的第二项。

图2显示了区域中的拐点(红色点)和中心点(蓝色)。

3.2 多目标跟踪中的目标合并和分裂现象

多目标在运动中会出现合并和分裂现象,这里采用对存储队列进行“记忆和填充”方法来解决这种问题。具体方法为:假设Ti和Tj为合并的两目标,Tij为Ti和Tj合并形成新的目标。首先,根据坐标和平均灰度特征判断该目标是不是新出现的目标,即:如果满足下式则认为Tij为合并目标。

式中:.xk和.yk为目标区域的质心横、纵坐标,.gk为目标区域的平均灰度,Th1和Th2为设定的门限,根据式(18)中的对称性和试验效果,这里取Th1=Th2=.11。然后把Tij这一时刻的参数作为Ti和Tj公有的参数存储在各自的队列里面。如果不满足式(18),则认为Tij为新出现目标,在内存里重新分配和定义一个新的目标空间,并把Ti和Tj目标空间在内存里删除。由于在Ti和Tj合并时都有对应的保存参数数据,因此在Tij分裂为Ti和Tj时,只要比较这一时刻与Ti和Tj合并前的数据就能实现对Ti和Tj连续参数数据的存储和跟踪。

3.3 候选目标排序和检测结果输出

N次累积后,根据目标特性,按照指定规则对预选的多目标进行排序,如果以目标灰度和区域面积为参考进行排序,具体的规则为按式中oi值大小进行排序,oi值大的排在最前面,其余依次递推。其中:λg和λs分别为灰度.gk和.sk权重系数,和为M个目标的平均灰度和平均面积像素点。最后根据先验知识和检测条件实现小目标检测。检测条件为根据oi值大小进行选大、选小或指定大小等进行选取最终检测结果。同样,也可以根据目标运动速度的大小进行排序和选取。

4 实验与结果分析

采用分辨力为320×240、速率为25帧/秒、响应波段为8∼14µm的红外成像设备进行红外实验和算法检验。实验计算机的配置为英特尔Core2 Duo 2.6 GHz的处理器,4 GB的内存。具体实现过程如下:

实验内容是检测港口内三艘快速交错运动的旅游快艇。多目标运动过程中,港口背景会发生上下和左右移动,其中的两艘快艇在第122帧前后会发生重叠现象。图3(a)分别显示了第10、122、264帧原始红外图像,图3(b)为对这三帧图像进行小波变换后得到的近似、水平、垂直和对角四个子带图像,图3(c)为背景抑制基础上水平集跟踪图像,图3(d)为最终水平集函数。

从图3(a)中可以看出,背景中不仅有高建筑物、码头等红外特征明显的物体,而且背景在整个过程中发生上下和左右晃动。根据2中的算法流程,进行小波变换后根据式(5),可以找到如图3(b)的第10帧中所示的红色标记点作为背景参考基准点(S⋅x=73,S⋅y=92,S⋅g=175),在随后的小波变换图像中,通过匹配该点的灰度找到与本帧图像对应的基准点,整个过程中(NHk⋅g)/(S⋅g)或(NVl⋅g)/(S⋅g)值都能在区间(0.8∼1.25)内,因此不需要更新参考背景,只需调整参考背景的位置就能达到背景抑制目的。

完成背景抑制处理之后,根据3,先采用基于可伸缩区域自适应能量函数方法进行图像分割,再根据式(19)实现目标聚类。式中,gk-1和gk、ak-1和ak、dk-1和dk、vk-1和vk分为k-1和k帧的区域平均灰度、区域面积、区域拐点到中心点距离(见图2)和Kalman滤波预测的运动速率。根据多次试验结果,式(19)、(20)中取ug=0.3,ua=0.2,ud=0.42,uv=0.08时分类效果较好。表1显示了多跟踪过程中测量的各项数据,T1、T2和T3依次为图3.a中从左到右的各个目标。

在第122帧,T1运动过程中与T2出现重叠现象,根据3.2中多目标跟踪中合并和分裂方法,T1与T2符合式(18),所以判别T1与T2合并为T12,并把T12的各项参数同时赋给T1与T2;继续运动,T1与T2将不满足式(18),于是判别T12分裂为T1与T2。这样就较好的解决了多目标运动跟踪中合并和分裂问题。

在对三个目标跟踪过程中,根据oi值,取λg=λs=0.5,可以得到o1=0.69,o2=1.37,o3=0.94。所以三个目标从小到大排序为:o1

结束语

在整个算法步骤中,先用小波变换抑制背景,然后使用基于可伸缩区域自适应能量函数方法进行图像分割,并结合动态先验知识实现数据关联,从而达到对多目标的连续跟踪目的,最后根据检测条件实现对目标的提取。试验表明:使用基于可伸缩区域自适应能量函数图像分割方法迭代8~10次就可趋向稳定,可达到实时性要求,算法是一种解决复杂动态背景下运动多目标检测问题的较好实现方法。如何根据水平集方法提高图像分割速度和在先验知识中改进运动特征提取方法是下一步研究和改进的重点。

参考文献

[1]Barniv Y.Dynamic programming solution for detection dim moving targets[J].IEEE Trans.Aerosp.Electron.Syst(S0018-9251),1985,AES-21(1):144-156.

[2]马超杰,杨华,李晓霞,等.复杂场景多传感器图像的多目标分割算法[J].光电工程,2009,36(1):47-51.MA Chao-jie,YANG Hua,LI Xiao-xia,et al.Multi-target Segmentation in Multi-sensor Images in Complex Scenes[J].Opto-Electronic Engineering,2009,36(1):47-51.

[3]Meyer Y.Wavelets and Applications[C]//Proceedings of the Second International Conference on Wavelets and Their Applications,Marseille France,May,1989,20:74-87.

[4]Daubechies I.Ten Lecture on Wavelets[M].SIAM,Philadephia,1992:135-149.

[5]SUN Yu-qiu,TIAN Jin-wen,LIU Jian.Background suppression based on wavelet transformation to detect infrared target[C]//Proc.Fourth Int.Conf.Mach.Learning Cybern,Guangzhou,China,Aug18-21,2005:4611-4615.

[6]Diani M,Baldacci A,Corsini G.Novel background removal algorithm for navy infrared search and track systems[J].Opt.Eng(S0091-3286),2001,40:1729-1734.

[7]Cremers D,Funka-Lea G.Dynamical statistical shape priors for level set based tracking[J].Workshop on Variational,Geometric and Level Set Methods in Computer Vision(S0920-5691),2005,3752:210-221.

[8]Bresson Xavier,Vandergheynst Pierre,Thiran Jean-Philippe.A variational model for object segmentation using boundary information and shape prior driven by the Mumford-Shah functional[J].International Journal of Computer Vision(S0920-5691),2006,68(2):145-162.

[9]Chunming Li,Chiu-Yen Kao,Gore John C,et al.Minimization of Region-Scalable Fitting Energy for Image Segmentation[J].IEEE Trans.On Image Processing(S1057-7149),2008,17(10):1940-1948.

[10]Chunming Li,Chiu-Yen Kao,Gore John C,et al.Implicit active contours driven by local binary fitting energy[C]//IEEE Conference on Computer Vision and Pattern Recognition(CVPR),Minneapolis,M N,June17-22,2007:1520-1537.

动态目标检测 篇4

关键词:动态背景,ORB,RANSAC,目标检测

0引言

运动目标检测在无人驾驶汽车、智能机器人、战场侦察等领域有着越来越广泛的应用,具有重要的研究意义。尤其在智能监控系统的应用领域有着十分广阔的市场前景,在现有的视频监控系统的基础上,提高视频监控系统的智能化程度,实现实时智能多媒体监控,如智能化楼宇、银行、机场和任何需要安全保护的地方都需要更加智能化的监控系统。

目前,静态摄像机下的运动目标检测技术已发展得较为完善了,但动态摄像机下或者动态背景下的运动目标检测技术还有待继续完善,这也是当前视频监控中的难点和热点问题。

难点之一就是要解决实时性的问题。在监控过程中,需要立即对视频信息进行处理,而视频信息是一系列图像数据,要处理的数据量比文本数据多得多,并且由于目标检测位于像素层, 要对每个像素进行低层处理,所以计算量相当大。如SIFT[1]特征,SURF[2]特征在动态场景中的运用就不能满足实时性的需求,尽管这类描述子判别能力强,但计算复杂度高,效率低。

ORB[3]特征是基于FAST[4]特征和BRIEF[5]算子的改进提出的,其在计算速度上是SIFT的100倍左右,是SURF的10倍左右,同时在性能上与SIFT和SURF的效果相当,基本上能取代SIFT和SURF。

本文算法通过ORB进行特征提取与匹配,利用RANSAC算法去除异常的匹配点对,并估计出全局运动参数,求得图像的全局运动补偿帧,然后运用改进的帧间差分法实现运动目标的检测。

1 ORB特征提取与匹配

1. 1 ORB特征提取

ORB是基于FAST特征检测和BRIEF描述子的改进而得到的。

FAST特征点是不带有方向性的,为了解决旋转不变性问题,在ORB的方案中,FAST特征点的主方向是通过矩计算而来: 获取特征点邻域的灰度值强度中心[3]可以确定方向参数。 邻域矩的定义[6]如下:

其中x,y是相对FAST特征点的位置,r为圆形邻域半径,x,y ∈ [- r,r],I表示x,y坐标上图片的灰度值,mpq称为( p + q) 阶矩, p,q = 0,1,2,… 。由此可以得到圆形邻域的强度中心点,其计算公式如下:

其中m00是零阶矩,m10,m01是一阶矩。设特征中心点为O,则可以构造向量OC。那么其主方向 θ 可以表示为:

BRIEF描述子是这样提取的: 由在图像上某点的邻域内的随机选取n个点对,对于每一个点对,可以形成一个二值 τ 测试,其定义如式( 4) ; 而BRIEF描述子就是由这n个测试得到的n个位字符组成的一个位字符串。

其中x指的是图像中的某一点,p( x) 指的是x点的灰度值。 BRIEF描述子则定义为由N个 τ 测试组成的一个向量,如式( 5) ,其中n一般取值256,构成256 bit的二值特征描述子。

ORB特征描述子是在FAST特征点邻域内生成BRIEF描述子而产生的。由于BRIEF描述子选取是随机点对,容易受噪声影响,所以在文献[3]中,将图像中的某一点改为在31 × 31像素块中选取5 × 5的某一子块,使用积分图快速计算出5 × 5子块内所有点的灰度值之和,再来比较每一子块的灰度总和。通过这样的方法降低了随机噪声的干扰。

ORB根据FAST特征点的主方向提取BRIEF描述子,称为steered BRIEF。但加入主方向之后,steered BRIEF的方差变小了,即区分度变小了,导致其判别性能下降。为了解决这一问题,ORB采用一种贪婪学习算法筛选出具有高方差和低相关性的steered BRIEF,这样的steered BRIEF称之为r BRIEF。

由于FAST特征本身不具有尺度不变性,所以ORB采取先对图像构造高斯金字塔,然后再在金字塔的每一层上提取FAST特征的方法,使得ORB特征拥有了尺度不变性的特性。

由此,ORB特征就具备了旋转不变性、尺度不变性,并具有了一定的抗噪声干扰能力。

1. 2 ORB特征匹配

根据上节得到的ORB二值特征描述子,假设S1、S2分别为两个描述子,通过它们之间的汉明距离DS1,S2表示两个ORB特征描述子的相似程度,如下:

若DS1,S2的值越小,则表示相似程度越高; 反之表示相似程度越低。图1是ORB特征匹配的示意图。

2全局运动参数估计

2. 1 RANSAC方法介绍

RANSAC[7,8]是随机抽样一致性的缩写,它是一种稳健的模型参数估计算法。其思想是尽量用比较少的点估计出模型,再利用剩余点来检验模型。其基本假设是: 1) 数据样本中包含局内点,即数据的分布可以用某些模型参数来解释; 2) 数据样本中包含局外点,即无法适应该模型的数据。局外点的产生可能是因为错误的测量方法、错误的计算或者对数据的错误假设等。 在使用该算法时,RANSAC假设给定一组局内点,存在一个可以估计出这些局内点的模型参数的模型。

2. 2全局运动参数估计

经过ORB特征匹配之后,得到了两帧图像特征点之间的对应关系,即候选匹配特征点对。由于一些因素的影响,候选匹配特征点对中必会存在有误差的点对。为了消除误差,我们利用RANSAC算法,剔除有误差的点对,然后计算出两帧图像之间的全局运动矢量,即两帧图像之间的变换矩阵。变换矩阵包括两帧图像间的平移、旋转和缩放关系,通过变换矩阵能够找到前一帧图像中的点在当前帧图像中的位置,见式( 7) :

或I' = M·I,式中I( x,y) ,I'( x',y') 为一对候选匹配点对,M为变换矩阵。RNASAC估计算法的过程[10]如下:

Step1从N个候选特征点对中,随机地选出3个点对建立方程组,然后求解变换矩阵M的6个未知参数。

Step2对于剩下的( N - 3) 个特征点,计算出经过变换矩阵M的变换后,与它的匹配点之间的距离dv,其公式如式( 8) 。 若dv小于某一阈值,则该特征点对为符合变换矩阵M的内点, 否则为外点。

Step3统计在此M下内点的数量。

Step4另选3对候选匹配点,执行Step1到3,迭代计算若干次后,包含内点数量最多的集合即为最优的内点集合。在此内点集合下的变换矩阵M的6个参数值作为参数估计的最优值。

由此,求出了变换矩阵M。通过求得的变换矩阵M即可求得图像的补偿帧。

3改进的帧间差分

帧间差分法[9]是直接利用相邻两帧之间做减法的形式来获取运动目标,这种方法在静态背景下的效果是比较好的,但并不适用于动态背景下的运动目标检测。为了减少甚至消除动态背景所造成的影响,本文对帧间差分法进行了改进: 取连续相邻的4帧图像,将第1帧图像与第3帧图像进行差分; 第2帧图像与第4帧图像进行差分; 最后再将得到的两帧差分图像进行与操作,具体过程如下:

根据第2节中得到的变换矩阵M,求得帧Ik的补偿图像I'k,然后再I'k将与Ik +2进行差分,得到差分图像Dk +2( x,y) ,其公式如下:

其中threshold是采用大津法( OSTU) 进行自适应地选取。为了消除动态背景带来的影响,我们将先前得到的Dk +1和Dk +2进行逻辑与操作,得到运动目标图像O( x,y) ,其公式如下:

其中亮度为0的区域代表背景区域,亮度为255的区域代表运动目标,由此得到了最终的运动目标。本文算法的框架图如图2所示。

4实验分析

本文实验的计算机操作系统为Windows 7,CPU为Intel( R) Core( TM) i5-2450M,主频2. 5 GHz,内存8 GB,实验是基于Vis- ual Studio 2010的开发平台,使用C + + 编程语言,并结合计算机视觉库Open CV 2. 4. 2而完成的。实验采用运动摄像机拍摄的室外场景中的车辆视频以及使用小米手机拍摄的室外场景中的人的视频来检验算法的性能。实验过程中,将本文提出的算法分别与基于SIFT特征和SURF特征的算法进行了比较。

4. 1本文算法结果

对于室外场景中的车辆视频jeep,其图像的分辨率为480 × 360,该视频一共有254帧,图3中选取了它的第13、14、15、16帧进行结果展示。

由图3中的a1、a2分别得到其补偿帧b1、b2,再将b1、b2分别与a3、a4进行差分,得到c1、c2,最后再将c1和c2进行与操作得到最后的结果c3。从结果中可以看出,本文算法能检测到车辆。

4. 2算法结果对比

表1显示了基于SIFT特征、SURF特征的方法以及本文采用的方法所消耗的时间。从表中可以明显地看出本文所采用的方法要快得多。这主要是因为在计算速度方面,ORB是SIFT的100倍左右,是SURF的10倍左右,它更能满足实时的特征匹配。

单位: ms

图4至图6为本文的实验对比结果,其中d1、d2、d3为视频原图,e1、e2、e3为基于SIFT特征的结果图,f1、f2、f3为基于SURF特征的结果图,g1、g2、g3为本文方法的结果图。由图中可以看出本文方法的结果不比前两种方法的结果差,甚至要比基于SURF的要好,并且本文所提方法的实时性要好得多。因此,本文所提方法更适合实时性要求更高的应用场景。

5结语

本文提出的基于ORB特征的运动摄像机目标检测算法,利用ORB特征提取的速度性能,结合RANSAC方法去除匹配异常点,然后利用改进的帧间差分分割出运动目标,极大地提高了运算速度,并能准确地得到运动目标,能够满足实时检测的需要。 对场景中的光线变化,甚至由于摄像机的运动而造成视频图像的背景变化均有较好的鲁棒性。

参考文献

[1]Lowe D G.Distinctive image features from scale-invariant key-points[J].International journal of computer vision,2004,60(2):91-110.

[2]Bay H,Ess A,Tuytelaars T,et al.Speeded-up robust features(SURF)[J].Computer vision and image understanding,2008,110(3):346-359.

[3]Rublee E,Rabaud V,Konolige K,et al.ORB:An Efficient Alternative to SIFT or SURF[C]//IEEE International Conference on Computer Vision(ICCV),2011:25642571.

[4]Ozuysal M,Calonder M,Lepetit V,et al.Fast Keypoint Recognition Using Random Ferns[J].IEEE Transactions on Pattern Analysis and MachineIntelligence,2010,32(3):448-461.

[5]Calonder M,Lepetit V,Strecha C,et al.Brief:Binary robust independent elementary features[C]//Computer Vision–ECCV 2010,Springer BerlinHeidelberg,2010:778-792.

[6]Rosin P L.Measuring corner properties[J].Computer Vision and Image Understanding,1999,73(2):291-307.

[7]陈付幸,王润生.基于预检验的快速随机抽样一致性算法[J].软件学报,2005,16(8):1431-1438.

[8]Mains J,Chum O.Randomized RANSAC with Td,dtest[J].Image and Vision Computing,2004,22(10):837-842.

[9]甘明刚,陈杰,刘劲,等.一种基于三帧差分和边缘信息的运动目标检测方法[J].电子与信息学报,2010,32(4):894-897.

动态目标检测 篇5

视频图像序列中的运动目标检测是许多视觉系统中一个基础的部分[1〗。在监控应用中,识别非静态区域是所有更高层处理的前提,如目标识别、跟踪、行为分析等。许多算法是建立在背景模型的基础上进行的,前景是由观察图像和存储的背景之间的统计差异确定的。

目标检测主要有两种模式:摄像机静止—目标运动和摄像机运动—目标运动[2]。对于视频监控任务,图像通常是静止的,因此,背景模型已知,目标检测相对容易。背景模型估计和背景差技术在这种情况下得到广泛应用。摄像机运动时,由于摄像机运动产生了背景运动,使得运动目标检测任务变得更有挑战性[3]。静止摄像机情况下的目标检测跟踪技术已经比较成熟,运动摄像机情况下的目标检测和跟踪还在发展中。许多重要的应用,如机器人导航、航拍图像的目标检测跟踪、视频压缩等等,都与运动摄像机情况下的目标检测跟踪密不可分。

在国外,1992年就有人开始研究运动摄像机情况下的运动目标检测,而国内的研究处于起步阶段,下面介绍一下国内外的研究现状:文献[4]等人提出了基于运动矢量置信测量度目标跟踪的算法,该算法由于引进了置信水平测量,达到了更精确的全局估计,减小了变化检测的背景补偿误差。但是此算法在求运动矢量时用的是块匹配法,准确性不能保证,而且用帧差检测运动目标,检测的结果缺少完整性。文献[5]等用前向后向运动历史图定位热成像图中的运动目标,缺点在于运动历史图的产生需要若干帧,所以在检测过程中要引进一个检测的滞后,这对高速运动目标的检测是不适合的。文献[6]等提出的基于稀疏采样的局部补偿误差函数泰勒展开算法,它能快速的寻找出背景运动的仿射模型参数,在寻找相邻两帧之间的对应点时,采用的是图像匹配算法,由于这个算法是通过对不同邻域内的运动矢量做聚类运算得到的最终的目标定位,故对于不同的邻域或同一邻域内运动矢量差异较大的块,都将被视为不同的运动目标。此方法易受光照、噪声、矢量聚类的门限以及设定的步长的影响。文献[7]等提出的基于鲁棒背景运动补偿的运动目标检测,该算法能有效消除摄像机运动引起的背景运动,在摄像机运动的情况下得到完整的目标。此算法是在补偿后的前一帧和当前帧之间做光流,用光流的大小判定前景和背景,而光流易受光照和灰度等级变化的影响,在判断前景背景上容易出现问题,而且该算法计算复杂、运算时间长。文献[8]等人提出的动摄像机的自动目标识别与分类,用文献[9]的方法估计相邻两帧之间的光流,并假设目标没有覆盖图像的每个角落,在这样的情况下,图像角上显著的运动就是摄像机的运动。模型的参数可以通过线性最小二乘解来估计。如果出现异常(孤立点),线性最小二乘估计的性能就会变坏。像丢失特征、缺少背景纹理或者目标占据了一个角,都将成为异常(孤立点)。该算法用的也是易受影响的光流法,在选取点的问题上,选取的是四个角上不容易出现目标的点区域来求解仿射模型参数。如果目标出现在角上,就会使参数不准确,运动补偿失败。

针对运动摄像机情况下运动补偿中出现的难点:对应点选取的准确性和异常点剔除等,本文提出了基于SIFT[10]特征匹配的运动补偿技术,它能很好地解决上述问题,利用SIFT算法提取鲁棒的特征点(每个特征点用一个特征矢量表示)对图像的旋转、尺幅缩放、亮度变换等都保持不变的特点。建立特征点的KD-TREE,用两点间的欧氏距离快速准确地找出相邻两幅图像中的对应点。用RANSAC[11]算法剔除选在目标上的特征对应点,最后利用背景差实现目标的检测,同时进行阴影和鬼影的去除。采用背景动态更新模型的背景差算法完整地检测出了前景目标。

1 基于SIFT特征匹配的运动目标检测算法

整个检测算法主要包括SIFT特征点的提取与匹配、运动补偿及背景建模,如图1所示。首先,提取输入图像帧的特征点,用欧氏距离作为相似度准则,求得当前输入帧中特征点在前一帧中的匹配特征点,然后采用RANSAC的方法剔除选在目标上的异常特征点对,精确求得仿射模型的参数。最后,对前一帧更新后的背景帧作仿射变换,消除由于摄像机运动产生的背景运动,用当前帧和仿射变换后的背景帧作差,检测运动目标。为了使背景更新法则能够正常有效地运行,在处理过程中加入了阴影和鬼影的检测及去除,防止由于阴影或产生的鬼影的存在使整个更新过程恶化。

1.1 SIFT特征点提取与匹配

SIFT全称为尺度不变特征变换,其特征点的特征矢量具有很强的鲁棒性。它是一种提取局部特征的算法,可以把图像数据转化成尺度不变坐标的局部特征。

SIFT特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定的稳定性;独特性好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配;多量性,即使少数的几个物体也可以产生大量的SIFT特征向量;高速性,经优化的SIFT匹配算法甚至可以达到实时的要求;可扩展性,可以很方便地与其他形式的特征向量进行联合。

SIFT主要算法步骤:检测尺度空间极值点;精确定位极值点;为每个关键点指定方向参数;关键点描述子的生成。

求出SIFT特征矢量后,采用欧氏距离判断两幅图像中关键点的相似性,在寻找两幅图像中最相似的两个对应点时,我们采用了KD-TREE的方式寻找。

1.2 全局运动补偿与背景建模

摄像机的运动状态主要包括左右转动、上下转动,焦距变化、追平追踪、垂直追踪等,而仿射变换具有平行线转换成平行线和有限点映射到有限点的一般特性,平移、旋转、缩放及反射等是二维仿射变换的特例,因此仿射变换一直是运动估计的标准模型,仿射模型有三参数、四参数、六参数等模型,参数越多,运动估计也就越准确,不过计算也就越复杂,为了既能准确地描述摄像机的运动,又能降低运算的复杂度,我们一般采用六参数仿射模型。

六参数的仿射模型如下:

其中fxt表示在t时刻的图像帧的x坐标,fyt表示在t时刻的图像帧的y坐标;(a0,a1,a3,a4)表示图像的旋转和缩放,(a2,a5)表示图像的平移。

前面求出的两幅图中的对应匹配点,一部分在背景上,另一部分在运动目标上。相对于背景来说,目标比较小,对应的匹配点个数也是少量的,但是如果用在运动模型中求解参数就会影响参数的准确性,因此在求解过程中需要采用RANSAC的方法来精确求解模型参数。

得到全局运动模型的参数后,对背景进行运动补偿。背景更新的基本原则是检测为前景的区域用仿射变换后的背景模型更新,检测为背景的用当前帧来更新,基本算法如下:

(1)背景初始化,用第一帧作为背景B0(x,y)。

(2)运动目标检测:

(3)背景更新法则:

其中B′t(x,y)=F(Bt-1(x,y)),F(·)表示仿射变换。M(x,y)表示背景差掩模。Th为检测前景目标的阈值。0表示背景区域,1表示前景区域。

1.3 阴影和鬼影的检测及去除

阴影去除结合了统计无参类(SNP)和确定非模型(DNM1和DNM2)两种方法,这两种方法能够快速有效地检测出阴影。阴影检测的基本原理:与背景相比,阴影具有相似的色度和更低的亮度。文献[12]等人的文章详细论述了统计无参类,该算法考虑人眼对颜色不变性的感知能力以及利用Lambertian假设把颜色作为辐射和反射的一种结果。计算亮度失真以及像素期望的色彩值和它当前图像中的色彩值之间的色度失真,利用得到的亮度失真和色度失真设定阈值把像素分为四类。文献[13]描述了一种DNM1,这个算法是基于HSV空间的,主要因为HSV空间更接近人对颜色的感知以及能够更准确辨别阴影[14]。作者利用阴影通常降低背景饱和度以及投射在背景上的阴影并不显著改变背景色度[15]的信息。阴影区域,背景差图中此区域设为背景像素,在背景更新时,这部分用仿射变换后的背景帧更新。

鬼影的检测结合了帧差图信息判断当前背景差结果图中前景块是否存在鬼影,鬼影在帧差图中是检测不到的。对背景差掩膜先进行膨胀,得出帧差图检测到目标的外边缘,再对其进行腐蚀,得到帧差图检测到的目标的内边缘,然后,膨胀和腐蚀后的掩膜做差,差值等于1的区域包含了帧差图中的目标轮廓,然后计算区域中总的像素个数和对应区域帧差图中为前景像素的个数。由于鬼影在帧差中是检测不到的,所以如果此块为前景,对应的帧差图中前景像素的个数几乎为零,如果是真的前景目标,则对应的帧差图中前景像素的个数将接近这块区域的总个数。如果判断为鬼影,在结果图中去掉此块,并在此块的位置用当前帧更新背景帧。鬼影检测过程如下:

其中Dilate(·)表示图像的膨胀操作,Erode(·)表示图像的腐蚀操作,Maskt(x,y)表示图像膨胀和腐蚀后作差的掩模。

设模板Maskt(x,y)中像素值为1的像素个数为N1,像素点(x,y)在模板Maskt(x,y)中像素值为1,并且在帧差图DFt(x,y)中检测为前景的像素个数为N2。

Ratio=N2/N1,如果Ratio大于设定的阈值,判定此块为前景,否则判定为鬼影块。

2 实验结果及分析

实验采用运动摄像机拍摄的分辨率为576×720的室内和室外场景中人和车辆的视频来检验算法的性能,为了减小每帧处理时间,实际处理时将图像转化为240×320处理。在VC2003.NET下,利用Intel Open CV,在Petium4 2.8G的PC机上实现算法。

在SIFT特征提取中,生成关键点描述子时,以关键点为中心取16×16的窗口,在4×4的小块上计算8个方向的梯度方向直方图,绘制梯度方向的累加值,形成一个种子点,这样每个关键点就有4×4共16个种子点,每个种子点有8个方向的信息,每个特征点的特征矢量也就是128维的。生成运动掩模的阈值Th为15。检测过程中同时进行阴影和鬼影的检测,并进行去除,消除在检测过程中可能产生的阴影和鬼影。在阴影检测中,统计无参类方法中设定亮度失真高门限1.2,消除由光照引起的误判前景判决门限,在1.0和1.2之间判定为光照;色度失真度低门限0.5,阴影判决门限,在0.5至1.0之间判定为阴影。如果RGB值都小于80,则不参与阴影检测。颜色失真度平方的门限设为300.0。非确定模型方法中的参数按照文献[15]中的参数设定。在鬼影检测中,Ratio设定为0.08,小于此阈值的则判为鬼影。

本文提出的基于SIFT特征匹配的算法和具有代表性的文献[8]等人提出的基于光流法目标检测进行对比。Ninad Thakoor算法,在四个角上距离边缘为10 pixel的区域选择了20×20区域共1600个点用来求解仿射变换模型参数,采用Lucas&Kanade算法求解光流。

图2-图4所示的实验图中,基于光流的算法显示的结果噪声比较多,是因为光流法受限制比较多,光流法除受光照影响比较大外,还受灰度等级的影响比较大,即一块表面平坦、颜色均匀一致区域的光流将会很小。这一算法在选取匹配特征点上是从四个角上选取,选取的特征点光流都比较小,得出的仿射模型参数不准确,在室内箱柜隔板等杂物比较多,室外高楼、树等复杂环境下和棱角比较多的情况下,最终的检测结果噪声必然会很大。而且帧差法只检测出目标的轮廓,目标有空洞、不够饱满。而采用的SIFT算法非常适应复杂环境,在复杂环境下,提取的环境中的不变特征点就会更多,目标上的特征点相对就越少,再用RANSAC算法剔除异常点,获得的仿射模型参数就更准确,在实验中出现的噪声就更少,检测到的目标就更准确,由于用的是背景差,检测出的目标饱满,适合继续跟踪。

图2-图4显示了两种算法的运动目标检测情况,从表1-表3可以看出基于SIFT特征匹配的算法平均耗时约为0.65s,而基于光流法的算法平均耗时为0.2s。相比之下,基于SIFT特征匹配的算法耗时比较大,这是因为提取稳定的特征点过程复杂,费时比较大。本文提出算法的优点在于利用鲁棒性的SIFT特征点进行匹配,并且用RANSAC方法剔除异常点,精确地求得仿射模型参数,并且动态更新背景,进行背景差,检测到清晰完整的目标。而基于光流的算法只做到了帧差,而且在复杂环境下,噪音特别大。

3 结论

本文提出的基于SIFT匹配和动态背景建模的运动摄像机目标检测算法,利用SIFT算法提取的稳定的特征点,采用KD-TREE有效而准确地建立匹配关系,利用RANSAC方法不断修正参数,剔除仿射模型估计中用到的异常点,极大地降低了参数的误差,提高了参数的准确度。对场景中的光线变化、背景干扰,甚至图像由于摄像机的运动而带来的变形都有很好的鲁棒性。由于算法耗时比较大,未来的工作就是优化算法,使之能够适应实时性。

摘要:运动摄像机情况下的运动目标检测是视频监控中的难点和热点问题。为了能够有效地检测出运动目标,提出了一个基于SIFT(Scale Invariant Feature Transform)特征匹配和动态背景建模的背景差算法。首先利用SIFT算法提取特征点,采用RANSAC(Random Sample Consensus)方法求得仿射变换模型参数并实现图像的全局运动补偿,然后用背景差方法实现运动目标的检测,同时进行阴影和鬼影的去除。SIFT特征点匹配的准确性和RANSAC方法去除异常点的有效性使得仿射变换模型参数计算准确,动态更新背景模型的背景差则完整地检测出了前景目标。与Ninad Thakoor实验结果对比说明:该算法能够准确地检测出运动目标,并且保持了前景目标的完整性。

动态武器目标分配优化 篇6

数据链技术发展, 防空导弹及发射平台之间实现实时信息交互, 该技术将来可能应用多个制导武器的协同制导规划。当前防空导弹武器系统的应用通常采用一对一的交战模式, 不同武器系统间不能够实时进行信息交互, 由其分配规则可能导致对目标齐射过度杀伤或对目标的遗漏。因而, 对编队武器的协同制导提出了强烈需求。协同制导的其中一个关键因素是武器目标分配, 而武器—目标分配的主要任务是确保敌方目标到达我方之前全部被拦截。

武器—目标分配的难点之一是目标的机动是不可预测的。敌方目标通常在飞行初始段进行佯攻一个目标, 而在末端改变攻击航路, 以达到诱骗防空系统的目的。本文根据武器—目标间的几何关系提出最早拦截结合和安全区的概念。最早拦截几何应用敌方目标能够攻击的边界, 在该区域内的防御资源可能遭到攻击。安全区可定义为拦截区域和防御对象最小距离的边缘。安全边界随着分配策略和防空系统的性能而改变。因而, 武器—目标分配则是试图找到优化分配策略产生最大的安全边界。由于最早拦截几何和安全边界是在目标能够瞬间改变方向的假设条件下得到, 武器目标分配能够处理目标机动的不确定性。

1 动态武器—目标分配的定义

武器—目标分配是指挥控制辅助决策系统所研究的重要课题。多武器、多目标战场环境中, 可能由多种武器—目标分配方案, 武器—目标分配方案属于非确定性多项式完全问题[1], 其研究的主要目的是针对多个威胁目标有效分配防空武器系统, 最大限度拦截来袭目标。武器目标分配分为两类, 一类是静态武器—目标分配, 一类是动态武器目标分配。这两类问题中, 期望目标要么是使目标生存概率最小, 要么是防御对象整体生存概率最大。静态武器目标分配的主要特征是基于某一时段, 考虑分配时刻所有提供的信息, 对有限资源分配问题。动态武器目标分配问题, 考虑时空的约束, 是一个多阶段的分配问题, 对每个阶段的结果进行评估, 然后用新空中态势对下一阶段进行分配[2]。动态武器目标分配也可表述为连续的静态武器目标分配, 由于实现过程如同贪婪优化过程, 因而不能保证整体优化。

本文动态武器—目标分配的研究不同于一般文献定义的动态武器目标分配[3], 而是基于几何概念进行优化, 采用的分配模型是适合飞行中导弹武器的目标分配问题。

2 最早拦截几何

由于空袭目标航路是不知道的, 其航向角可能随时改变, 且目标飞行加速度很难预测, 因而目标拦截点是不确定的。为了全面描述所有可能的拦截点, 考虑来袭目标所有可能航向, 推导可能拦截点的集合。为了推导最早拦截点集合, 假定防空导弹和目标航向和速度保持不变。导弹—目标拦截三角形如图1所示。M点表示导弹发射位置, T为目标起始位置, I为拦截点, 坐标为 (x, y) 。

拦截点I随着目标航路角的变化而变化。根据图1中三角形MIN和三角形TIN可得:

速度比定义为:

式 (2) 代入 (1) 可得

整理为:

则方程 (4) 为所有拦截点的轨迹, 即最找拦截几何, 用于评估制导策略。

速度比是求解最早拦截几何的重要参数。为了简化, 我们只考虑导弹的速度大于目标的速度。

上述最早拦截几何可推广应用多导弹、多目标交战场景。图3给出两枚导弹交战两批目标的一种拦截几何示意图[4]。

由图3可知, 防空武器系统的任务是在防空安全区域之外拦截来袭目标。因而, 武器—目标分配的策略就是确保所有的交战资源在该区域之外。

3 武器目标优化分配建模

根据上述分析, 所有防御资源应当在最早拦截几何之外, 而最早拦截几何及拦截几何和防御资源之间的距离与武器目标分配方案的变化而改变, 拦截几何与防御对象的距离定义为安全距离d。显然, 安全距离越大, 所采用的制导算法的性能越好。为了充分发挥导弹的拦截性能, 提高拦截目标的命中率, 最优武器目标分配方案为使得安全边界最大化。武器—目标分配模型表述如下:

其中, p表示防御对象的个数, q表示所有可能的分配方案个数, m表示目标的个数, n表示导弹的个数。dijk表示第k个分配方案的资源i与第j个拦截几何之间的距离。p i表示第i个防御资源的位置矢量, cjk表示第j个目标的位置矢量。

4结语

空袭战术的快速性、灵活性, 使得防空系统的反应速度很难与之相匹配, 打乱了指挥决策周期。采用基于最早拦截几何的武器—目标分配方式, 考虑目标的机动性, 在防空导弹飞行过程实时进行目标分配, 将更能有效发挥防空导弹的作战效能。后续工作将根据所建立的模型, 研究合适的优化算法对其进行仿真验证。

参考文献

[1]Lloyd S P, Witsenhausen H S.Weapon Allocation is NP—Complete[C].Proc.1986 Summer Comput.Simulation Conference, 1986.

[2]王士同, 刘征.动态武器目标分配问题的DWTA—GA算法[J].华东船舶工业学院学报, 1999, 13 (5) :17—22.

[3]刘传波, 邱志明, 吴玲, 等.动态武器目标分配问题的研究现状与展望[J].电光与控制, 2010, 17 (11) :43—48.

动态目标检测 篇7

关键词:webshell检测,PHP扩展,实时动态

0 引言

在web服务器上上传Webshell是网站攻击者常见的用来控制web服务器以进行进一步进行渗透的方法, 对webshell进行检测和防御是进行网站安全防御和降低网站损失的重要方法[1]。现阶段针对PHP webshell的检测技术主要分为两类, 即静态特征检测技术和动态特征检测技术[2]。静态特征检测是指不需要代码运行, 根据文件中是否存在常见的恶意字符串特征结合文件的信息熵等特征进行检测;动态特征检测是指在通过在WAF中对网络流量进行分析来检测和防御webshell。这两类webshell检测方法 都难以有 效检测经 过混淆变 形或经过 加密的webshell。

鉴于现阶段检测PHP webshell的方法的不足, 本文分析了PHP代码运行的流程和各种webshell变形在PHP内核中的特征, 提出了一种基于PHP扩展的webshell检测和防御方法。该方法在PHP扩展中通过对PHP代码的编译和运行进行监控, 结合对外部输入变量的标记追踪和黑白名单机制, 可以实时有效的检测webshell和阻止webshell的运行。该方法不仅可以检测webshell还可以阻止webshell的运行。

1 PHP 原理

1.1 PHP 生命周期

PHP在web容器上的运行方式主要有三种:以模块加载的方式运行;以CGI方式运行;以Fast CGI的方式运行。不管采用哪种方式运行, PHP程序的生命周期都需要经过模块初始化阶段、请求初始化阶段、代码执行阶段、请求结束阶段、模块结束阶段, 如图1。不同运行方式的区别是生命周期中各个阶段执行的频率和次数。

1.2 PHP 代码执行流程

PHP是解释型语言, 代码需要被翻译成中间字节码后由ZEND引擎进行解析执行。PHP代码的执行流程主要包括:词法分析、语法解析、代码编译、opcodes (中间字节码) 执行四个步骤。词法分析是指将PHP代码转换为语言片段, 语法分析是将语言片段转换成简单而有意义的表达式, 代码编译是指将表达式编译成opcodes, opcodes执行是指zend虚拟机执行opcodes并将结果输出。其详细的执行流程如图2。

1.3 PHP 内核 hook 机制

对PHP函数进行hook是指在PHP内核中通过函数重写或修改编译函数来达到改变对PHP函数运行进行监控以获取函数运行时的参数。PHP的函数分为两种, 一种是Zend提供的函数, 如eval;一种是PHP_FUNCTION宏编写的函数, 如shell_exec。其中Zend提供的函数可以通过修改编译函数zend_compile_string的方式来进行HOOK;PHP_FUNCTION宏编写的函数可以通过操纵函数表进行重写来进行hook。除了这两种方法, PHP内核还提供了通用的HOOK方法, 即使用zend_set_user_opcode_handler修改中间字节码对应的处理函数。

2 Webshell 常见变形

Webshell本质上是可以执行恶意功能的PHP代码文件。Webshell为了执行恶意功能, 其代码结构主要由两部分组成:数据传递部分和数据执行部分, 如图3。数据传递部分是指webshell中用于接收外部输入数据的部分, webshell可以根据外部输入数据来动态交互式执行恶意功能。数据执行部分是指webshell中用于执行恶意功能的函数, 如代码执行的eval函数、命令执行的system函数。

在基本的webshell中, 数据传递主要通过$_GET、$_POST、$_COOKIES等变量传递或者直接写入代码中, 数据执行主要通过使用eval或assert进行代码执行或直接调用功能函数进行执行。为了绕过检测机制, 各种webshell都在基本webshell上采取相应的变形, 变形的方法根据其变形的部分主要分为两种:数据传递部分的变形和数据执行部分的变形。

数据传递部分的变形主要有:

将数据放入服务器外部文件中, webshell读取文件获取执行数据。

(1) 将数据放在远程服务器上, 通过curl/file_get_contents等函数获取远程URL中的执行数据。

(2) 将数据放入数据库, 通过读取数据库获取执行数据。数据执行部分的变形方法主要有:

(1) 使用preg_replace函数的/e修饰符进行代码执行。

(2) 使用支持回调机制的函数进行代码回调执行。如:array_map, array_filter, array_reduce等。

(3) 使用变量函数进行函数执行。

(4) 使用匿名函数进行函数执行。

(5) 利用反射函数Reflection Function进行函数执行。

3 PHP webshell 实时动态检测

PHP webshell实时动态检测是一种基于PHP扩展通过对PHP代码的编译和执行进行监控并结合外部输入变量标记追踪、黑白名单机制来进行webshell检测的方法, 主要包含五个模块:变量标记追踪、禁用函数hook检测、危险函数hook检测、编译函数重载检测、数据库黑白名单[4]。

3.1 变量标记追踪

在PHP扩展中可以通过PG (http_globals) 变量获取脚本运行时通过GET、POST、COOKIE方式传递的参数内容。变量标记是指对PG (http_globals) 里保存的字符串变量进行特征标记。变量追踪是指对简单字符串处理函数如strval、explode进行hook, 当函数参数是标记的变量时也对函数结果进行变量标记。

PHP中的字符串变量的值存储在zvalue_value结构体中, 保存有字符串指针和字符串的长度, PHP内核是根据保字符串的长度来读取字符串内容。可以通过将字符串变量的所占内存扩大后, 在字符串的值后添加标记特征的方式来将字符串变量进行标记。由于字符串长度没有修改, 通过这种方式进行变量标记不会修改字符串的值。在进行变量标记检测时, 只要检测字符串指针在长度之后的内容是否是标记特征就可以。

3.2 禁用函数 hook 检测

在PHP的配置文件中, disable_functions参数主要用来设置禁用PHP危险函数。禁用函数hook检测是指在模块初始化阶段, 读取配置文件中disable_functions参数后在函数表中添加针对这些函数的自定义实现。在PHP代码执行阶段, 如果自定义函数被调用, 说明PHP页面中运行有危险函数。如果该PHP脚本不在数据库白名单中, 那么可以判定该PHP脚本就是webshell, 检测过程如图5.

3.3 危险函数 hook 检测

Webshell要执行恶意功能, 如命令执行函数、文件目录操作, 必须要调用相应的功能函数。危险函数hook检测就是指对能执行命令、目录操作等危险功能的函数进行hook后检测函数执行时的参数, 如果危险函数执行的参数是恶意的或者经过变量标记的, 且没有出现在白名单中则认为该文件是webshell文件, 检测过程如图6。需要进行hook的危险函数主要有:

(1) 命令执行类:passthru、system、popen、exec、shell_exec等。

(2) 文件系统函数:fopen、opendir、basename、dirname、file、pathinfo、scandir等

( 3 ) 数据库操 作函数 : mysql_query、mysqli_query、sqlite_query、sqlite_single_query等。

(4) 回调函数类:array_map, array_filter, array_reduce、usort、uksort、array_walk等。

(5) 反射函数:Reflection Function

3.4 编译函数重载检测

编译函数重载检测是指在模块初始化阶段重载编译函数以检测是否有eval或assert代码块的执行, 并对eval/assert代码块的内容进行正则匹配来检测是否有恶意代码。其中eval代码块在编译结果的filename中有eval () 'd code标记, assert代码块则有assert code标记。

检测过程如图7.

3.5 数据库黑白名单

为了减少对webshell的漏报和误报, 采用黑白名单机制。即用户可以添加网站的正常页面进白名单, 在进行webshell检测时如果在白名单中就跳过检测;用户可以添加某些目录进黑名单, 则进行webshell检测时如果检测到执行文件在黑名单中则认为是webshell并报警处理。

4 实验结果

为了验证该PHP webshell实时动态检测模型是否能够有效检测并阻止webshell, 本人收集了较为流行的各种webshell, 包括一句话webshell及变形、普通变形webshell、加密webshell, 与网站安全狗、Avira Antivirus一起对比查杀, 检测结果如图8.

从结果表中可以看到基于PHP扩展的PHP webshell实时动态检测框架可以无视PHP代码是否进行加密, 能够优于网站安全狗、Avira Antivirus来检测并防御大多数的webshell。只要尽可能的覆盖更多检测函数, 可以达到接近100%的查杀率, 缺点是需要消耗较多的系统资源。

5 结束语

本文在分析了PHP代码运行的原理和各种webshell变形后, 提出并实现了一种基于PHP扩展的webshell实时动态检测方法, 该方法能够高效的检测出各种webshell。在网站中利用该方法进行webshell检测与防御可以有效的保证网站的安全运行。

参考文献

[1]张红瑞.Web Shell原理分析与防范实践[J].现代企业教育, 2013 (20) :254-255.

[2]孟正, 梅瑞.Linux下基于SVM分类器的Web Shell检测方法研究[J].技术研究, 2014, 5:5-9

[3]胡建康, 徐震, 马多贺, 等.基于决策树的Webshell检测方法研究[J].网络新媒体技术, 2012, 1 (6) :15-19.

上一篇:能源互补下一篇:国内汽车