一种基于边缘的运动目标检测与跟踪算法

Computer Vision 专栏收录该内容
7 篇文章 0 订阅

转载地址http://blog.csdn.net/kezunhai/article/details/9700641 

本文根据Masayuki Yokoyama等人的论文A contour-based moving object detection and tracking结合自己的理解而成。
          作者提出了一种基于梯度光流法以及边缘算子的线条聚类的运动目标检测算法。与传统的基于灰度、颜色等特征的方法相比,该方法具有更鲁棒的性能。算法通过结合光流法检测的运动信息以及边缘算法检测到的边缘信息来进行场景中的线条的重建,将重建的线条信息与背景模型的线条信息相比,得到运动目标的线条信息。接着,采用Snake来对这些线条进行聚类,从而得到运动目标的轮廓信息,并对轮廓进行跟踪,实现跟踪的目的。

        下面对论文的内容安排逐一进行介绍。

          首先要提取背景的边缘图像,保持背景的边缘图像经过一段时间之后会更新。(方法?

           1) 光流法

          对于2D图像,一般采用以下形式来对图像的运动信息进行近似(光流法假设相邻帧间的灰度差异很小,几乎不变):

其中I(x,t)表示t时刻图像Ix处的灰度值。将上式进行泰勒展开,则可以得到:

其中,△I是梯度,It是时域差分,v表示速度矢量。

         而对于运动信息的检测,则是根据光流法得到的速度矢量v,计算其分量的模的和,与某一阈值进行比较,从而得到图像的运动像素信息,公式表示如下:

其中u,v分别是表示通过光流法计算得到的速度的水平分量和垂直分量。

            2)边缘检测

            文章中对于边缘检测,采用了Canny算子,因为Canny算子从理论上来说是一种最优的算子,而且具有单像素的特性。对于通过Canny算子检测得到的图像edge(x)(其中edge(x)=1表示边缘,否则是背景),如果对应的edge(x)=1,即是边缘像素,那么进一步来判断其|u|+|v|的大小,如果其中大于既定的阈值,则将其标注为运动信息,即前景边缘像素点;同时,将将边缘图像中的该像素置0。如此遍历完所有的像素点,那么就可以得到一个前景掩膜fgMask|u|+|v|>T的点都为前景掩膜中的点),以及一个边缘图像中未标注为前景的边缘图像,记为unMaskEdge,该图像将在后面用到。

         3)轮廓提取

          文章中轮廓提取主要分为4个步骤,分别是线条复原、基于线条的背景减除、聚类和主动轮廓。下面将对着四个步骤进一步行进行分析。

         (1)线条复原

             通过上面的方法提取的运动目标信息会出现很多的漏检,这主要是因为:① 在平滑的区域,通过光流法提取的运动矢量v比较小,导致运动目标的信息没有被提取出来;② 场景中存在边缘信息,当运动目标的边缘信息与边缘信息重合时,将会导致运动信息的漏提。因此需要根据fgMask和unMaskEdge对线条进行复原。具体操作:遍历unMaskEdge中的像素,如果在fgMask的邻域中存在前景像素(且该像素不是交叉像素,crossing-point),那么该像素就被判为前景像素,如此遍历完unMaskEdge中的所有像素。

        (2)基于线条的背景减除

              根据前面检测的前景,检测得到其的运动线条信息{P1, P2,...,Pn},背景的线条用Sbg表示,如果线条满足下式,则认为是背景线条:

          (3)聚类

           本文的聚类采用的是距离和运动矢量的最近邻法则来实现的。假设有两条线条S1={p1,p2,...,pn}, S2={q1,q2,...,qn},如果他们满足下式,则认为他们是同一线条。

其中(Up,Vp)表示P处的运动矢量。(同一线条的连接方法?

        (4)主动轮廓(Active Contours)

           文中采用Snake来对提取的线条进行目标的轮廓。轮廓{P1,P2,...Pn}的离散能量函数表示为:

 

对于Snake的计算,文中通过计算每个聚类的凸包作为Snake的初始轮廓。

        这里对于运动目标的跟踪部分不继续讨论,用兴趣的读者可以根据前面介绍的链接下载来仔细了解。另外,博主也对算法进行过实验,与文章中介绍的有少许不同,主要是取视频序列的前几帧得到的线条作为背景模型(另外每隔固定间隔对背景进行重建或更新),还有就是对最后的主动轮廓Snake没有进行处理,其他的都相同。博主实现的算法中,对光照有一定的鲁棒性,但光照还是对该算法有影响,处理速度还行,大概在16帧左右。

         最后上几幅论文中的实验图。

说明:(b)图为前景掩模图fgmask;(c)被标记为前景的边缘点mask_edge;(d)线条重建后的图;(e)背景减除及运动边缘聚类后的图;

(f)凸包;(g)有效轮廓



  • 0
    点赞
  • 1
    评论
  • 3
    收藏
  • 扫一扫,分享海报

评论 1 您还未登录,请先 登录 后发表或查看评论
运动目标检测在计算机视觉,图像处理,模式识别等多领域有着广泛的应用,经历了多年的研究和探索,针对运动目标检测算法层出不穷,我们也积累了许多相关的算法。但是我们还远没有完成对这个充满挑战的领域的探索。本文对运动目标检测的技术进行了一定的研究,实现了基于canny算子和光流法相结合的运动目标检测方法。为了能够准确把握这个行业的动态,本文首先介绍了运动目标检测的三大经典方法:背景相减法,帧差法,光流法。同时比较了各自的优缺点。帧差法具有易实现,计算量小的优点,但是却无法准确的检测出运动目标的完整轮廓。光流法具有对不断运动运动目标进行目标检测,但是它却有很大的计算量,同时对噪声也比较敏感。为了可以对运动目标进行更好的识别,我们提出了边缘检测算子与光流法相结合的新方法。在对多种边缘检测算子进行了了解之后,我们确定了利用canny算子进行边缘检测,并且结合光流法进行运动目标检测的方法。在用canny算子检测出运动物体边缘之后,借助光流法计算出物体的运动场,同时结合最大类间方差法分辨出运动目标和背景,接着将物体的边缘信息和物体的运动信息进行融合,最后运用数学形态学的方法对结果进行处理,得到最终的运动目标。通过实验,我们发现该方法既克服了帧差法不能准确检测出运动物体轮廓,和光流法抗噪声能力差的缺点,可以准确检测运动目标,对运动目标具有更好的检测效果
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值