基于差分法和轮廓填充的运动目标检测方法 [PDF全文]
(浙江科技学院 机械与能源工程学院,杭州 310023)

针对当前计算机视觉领域的运动目标检测存在残缺不全的问题,提出一种基于差分法和轮廓填充的检测新方法。利用帧间差分法提取运动视频前景,绘制帧差结果的最小外接圆,并对其进行填充得到帧差目标; 同时利用背景消除法对相同的运动视频进行前景提取,并填充其结果轮廓,得到背景差目标; 对帧差目标和背景差目标进行与运算即可得到真正的运动目标。试验采用行人和烟雾视频作为测试样本,结果表明该方法计算简便,准确率分别达94.42%和93.88%,可实现对运动目标的有效提取。

Moving target detection method based on difference method and contour filling
CHEN Ning, CHEN Benjun
(School of Mechanical and Energy Engineering, Zhejiang University of Science and Technology, Hangzhou 310023, Zhejiang, China)

In response to the problem of incompleteness afflicting current moving target detection in the field of computer vision, a new detection method based on difference method and contour filling was proposed. Motion video foreground was extracted by virtue of inter-frame difference method. The minimum circumscribed circle was drawn for the result of frame difference, whose contour was further filled to obtain the inter-frame difference target. At the same time, the method of background elimination was applied to extract the foreground of the same moving video, whose contour was further filled to obtain the background difference target. Finally, real motion target was attained through logic and operation of inter-frame difference target and background difference target. The results show that the method is simple in calculation with the accuracy rate up to 94.42% and 93.88% for test samples of pedestrian and smoke video respectively, and moving target can be effectively extracted.

引言

运动目标检测指通过适当的算法将视频中运动的物体提取出来,在视频监控方面应用极广,是计算机视觉的研究重点和热点之一。在这个知识倍增的时代,信息层出叠见,主要分为有效信息和无效信息两类,无效信息的存在会分散人们的注意力,降低工作效率。相对于静止目标而言,运动的目标包含了更多有效的信息,因此有必要对它进行检测研究。

运动目标的检测主流方法是光流法、帧差法和背景消除法。光流法[1-2]利用图像中运动目标像素的强度随时间的变化来确定其位置的变化,以实现背景移动时的检测,但由于其运算量较大,在视频流中应用较少。帧差法[3-5]通过对视频中的不同帧图像进行差分运算来获取运动目标,由于帧图像之间一般差异不大,差分的结果往往会残缺不全,后来衍生出的三帧差分法[6],检测效果相对有所改善,但最根本性的残缺问题并没有得到解决。背景差分[7-8],或称背景消除,则是先选择初始化背景,将视频的每帧与背景进行差分运算,然后利用相关模型进行更新,最后通过选取恰当的阈值处理得到目标图像,由于背景模型难以精确建立,导致结果总是产生误检,故需要建立合适的背景模型。

上述方法都存在不足。对此,本研究提出了一种联合差分法和轮廓填充检测运动目标的新方法,能够较好地发挥帧差法和保留背景消除法各自的优势,从而解决了以往运动目标检测存在的残缺不全和误检率高的问题。

1 联合差分法和轮廓填充算法流程

本研究改进的检测算法主要有以下三步:1)提取视频图像序列相应帧图像进行帧间差分,将差分结果进行图像预处理,目的是去噪,采用自适应阈值二值化和中值滤波,然后对帧差结果提取轮廓,绘制并填充轮廓最小外接圆,得到包含运动前景的圆形区域,即帧差目标。2)对视频图像序列进行均值法背景建模得到初始化背景,进行背景差分; 同样地,将差分结果进行预处理,并对其进行轮廓提取和填充,得到的结果即背景差目标。3)将帧差目标和背景差目标进行与运算,再进行形态学操作,即可得到实际的运动前景。

图1 算法流程<br/>Fig.1 Algorithm flow

图1 算法流程
Fig.1 Algorithm flow

经上述三个步骤可解决差分法检测目标残缺的问题,提取出较为合理的运动目标,算法整体流程如图1所示。

2 联合差分法和轮廓填充的运动目标检测过程2.1 帧差法目标检测2.1.1 帧差法原理及局限性

帧差法其实就是从视频中取出两帧图像,根据两帧之间运动目标位置的变化来达到检测目的,帧图像的选择可以相邻也可间隔多帧。

设ft(x,y)为t时刻的视频帧,ft -k(x,y)为t-k时刻的视频帧,dt(x,y)为前述两者的差分结果,并设t 0为t时刻给定的阈值,b为背景,f为前景,则帧差法可用下列公式表示:

dt(x,y)=|ft(x,y)-ft -k(x,y)|。(1)

{ft(x,y)∈b,if dt(x,y) 0;

ft(x,y)∈f,if dt(x,y)≥t 0。(2)

图2 不同目标帧差示意<br/>Fig.2 Frame difference diagram of different targets

图2 不同目标帧差示意
Fig.2 Frame difference diagram of different targets

运动目标通常可分为两类[9],一类为移动型目标,目标大小不变,仅位置变化,如汽车等固定形态的物体,根据选取的差分时间不同可能会产生多个目标或者重影现象; 另一类为扩散型目标,目标的大小和位置均发生变化,如烟雾、气体运动目标,差分后可能会产生部分残缺和内部空洞的现象,如图2所示。图2中阴影部分表示对两帧进行帧间差分后得到的结果,帧差法的局限性一览无余。

2.1.2 轮廓提取

经帧差后的目标只是真实目标的一小部分,需要对其进行预处理以得到二值化前景图像,然后提取前景图像的轮廓,再对轮廓绘制最小外接圆,如此便包含了完整的运动目标。轮廓提取[10-11]是搜索图像中的像素点,将轮廓的内部点去除,则剩余的点集即为轮廓。对二值前景

图3 轮廓提取示意<br/>Fig.3 Diagram of contour extraction

图3 轮廓提取示意
Fig.3 Diagram of contour extraction

图像进行8邻域搜索,当发现某像素点的值为1,并且其8邻域像素点的值都为1,则表示该点是前景的内部点; 或者发现某像素点的值为0,那么无论其周围的像素值是多少,都将它视作背景点,可直接去除。图3为前景图像轮廓提取的示意图,可见所有的内部点均被删除,只留下轮廓像素点(包括外轮廓和内轮廓)。

经过上述轮廓提取,得到帧差结果的轮廓,对其绘制最小外接圆,并进行轮廓填充。

2.1.3 轮廓扫描线种子填充算法

二值图像种子填充[12-13]主要选取二值轮廓内部一像素点作为种子点,逐个搜索相邻区域内的其他点集,观察其像素值与边缘像素值是否相同。若不同,则填入像素值; 若相同,则认定为边界。填充以轮廓为边界,保证其一直在轮廓内部进行。种子填充算法的效率较低,堆栈可能会占较大的内存,且包含了较多无用的信息,故扫描线种子填充算法应运而生。这种算法[14-15]摒弃了以往递归处理连通域内相邻像素点的方法,通过设立一条水平扫描线,以它为基准填充像素段,按照区段处理相邻点。具体步骤如下:1)将像素值为(X,Y)的点定为起始种子点,放进已建好的空栈中; 2)栈顶像素出栈; 3)以扫描线为基准,并且不得超过轮廓边缘,填充出栈像素的邻近像素; 4)记上述区段最左边和最右边的像素为XL和XR; 5)查看区段[XL,XR]内的扫描线及其相邻上下扫描线有没有填充完毕或者属于轮廓像素。如果发现不是轮廓或者还未填充完毕,则需要继续填充,此时把像素XR当作新的种子点放进堆栈,回到第2)个步骤; 反之,则结束填充过程。根据上述算法对帧间差分轮廓的最小外接圆进行区域填充,可得到一个包含运动目标的圆形区域,即帧差目标。

2.2 背景差分目标检测

设It(x,y)为t时刻的视频帧,Bt(x,y)为t时刻的背景,Dt(x,y)为前述两者的差分值,Rt(x,y)为背景差分的二值化图像,并设T0为t时刻给定的阈值,B为背景,F为前景,则背景差分用公式可表示为:

Dt(x,y)=|It(x,y)-Bt(x,y)|。(3)

Rt(x,y)={1∈F,if Dt(x,y)>T0;

0∈B,if Dt(x,y)≤T0。(4)

从式(1)~(4)及图2可以看出,帧差的结果实际上只包含了真实前景的一部分,而背景差分法提取出的目标却是真实的前景,这也正是它的优点,其缺点在于背景模型难以精确建立。

不同的建模方法各有优劣,因此,选取背景模型要尽量发挥其优势,扬长避短。在保证能合理提取运动目标的前提下,背景建模方法的选取应该越简单越好。本研究在静止背景的前提下展开,选择均值法来更新模型。均值法建模是通过对多帧图像进行平均化得到初始背景[16],然后对该背景进行滑动平均法更新,用公式表示如下:

B 1(x,y)=1/N∑Nn=1In(x,y),(5)

Bn(x,y)=αIn -1(x,y)+(1-α)Bn -1(x,y)。(6)

式(5)~(6)中:B1(x,y)为初始背景; In(x,y)表示第n帧图像; N为帧数,N越大,初始背景越接近真实背景; α(0<α<1)为学习因子,α的大小决定了更新的快慢,其具体值通常要经过大量试验确定。经上述背景差分并预处理后,对其结果进行轮廓提取与填充,可得到背景差目标。

2.3 运动目标确定

经过帧差法和轮廓填充处理后的目标为一个包含帧差结果的圆形区域,背景差分和轮廓填充处理后的目标为完整却可能含有误检的背景差分结果,将两者进行与运算,即可得到较为准确的运动前景目标,又可排除误检。与运算指将不同图像的各像素进行逻辑与操作,在集合的思想中,也就是对应两幅图像的交集。在提取出前景目标之后,还需对它进行形态学运算,其目的是去除小的毛刺和噪声。形态学运算[17]是图像处理中不可或缺的一步,其种类也较多,一般最基本的也是最常用的有膨胀、腐蚀、开启和闭合4种。膨胀的定义如式(7)所示,表示集合A通过结构元素B膨胀后得到的结果是B关于原点的映射B的位移和A相交不为空集时B的原点位置的集合。腐蚀的定义如式(8)所示,表示集合A通过结构元素B腐蚀的结果是B全部含于A时B的原点位置的集合。

A⊕B={x|[(B)x∩A]≠φ},(7)

AΘB={x|(B)xA}。(8)

开运算如式(9)所示,指先对图像进行腐蚀后进行膨胀得到的结果,可以消去图像上细微的噪声,切断并分离细长搭接。闭运算如式(10)所示,指先对图像进行膨胀后进行腐蚀得到的结果,可以填充微小的空洞,连通短的间断。

A B =( A Θ B )⊕ B,(9)

A · B =( A ⊕ B )Θ B 。(10)

3 试验结果及分析

为检测本研究算法的有效性,选取图像视频库中的两组不同类型的视频,一组为仅位置发生变化的行人视频,另一组为大小和位置均发生变化的烟雾视频,分别使用上述3种不同算法对其进行前景检测。结果对比见图4,算法在普通PC机(处理器为AMD A8 4500M APU 1.9 GHz,内存为4 GB),Windows 7操作系统上,使用Visual Studio 2017集成开发环境配置OpenCV3.4.1编程实现。

图4 3种算法测试结果对比<br/>Fig.4 Test result comparison of three kinds of algorithms

图4 3种算法测试结果对比
Fig.4 Test result comparison of three kinds of algorithms

图4可以很明显地看出,行人视频(a)和烟雾视频(e)经帧差后得到的图像(b)和(f)残缺不全; 而背景差分得到的结果(c)和(g)相对而言则较为完整,但由于背景模型更新并不一定及时,会存在一些误检干扰; 然而经本文算法处理后可以排除误检区域,得到的运动目标基本上完整,如(d)和(h)所示。

为验证本研究算法的准确性,取行人视频和烟雾视频各100帧,分别对3种算法进行比对,结果见表1

表1显示,相对于帧间差分法而言,背景差分算法检测前景目标的准确率较高,但与此同时误检率也较高,其原因跟背景模型的选择有一定关系,当选取帧数较小时,模型不能很好地更新从而产生虚影,进而影响差分效果; 另外,由于烟雾扩散速度较为缓慢,会导致其检测准确率低于行人视频,但误检率也较低。本文算法通过对前述两种方法进行改进,能在一定程度上解决目标残缺的问题,合理地提取出运动目标,且具有较高的准确率。

表1 3种算法的性能对比<br/>Table 1 Performance comparison of three kinds of algorithms%

表1 3种算法的性能对比
Table 1 Performance comparison of three kinds of algorithms%

4 结 语

本研究提出了一种新的目标检测方法,将轮廓提取和填充技术融入到差分法中,能有效克服移动型和扩散型目标在差分后存在的误检及目标残缺现象。试验选取了两种具有一定代表性的行人视频和烟雾视频进行测试,准确率分别达到了94.42%和93.88%,同时误检率也降低至5.57%和4.37%,结果验证了该算法的有效性,检测效果良好,且计算量较小,易于实现。

参考文献