融合改进帧差和边缘提取算法的运动目标检测

2022-02-28 12:08杜文汉李东兴王倩楠武帅
科学技术与工程 2022年5期
关键词:差分法像素点算子

杜文汉, 李东兴, 王倩楠, 武帅

(山东理工大学机械工程学院, 淄博 255000)

运动目标检测是图像处理领域的基本任务之一,在视频监控、产品检测、导航等领域有着极其重要的作用[1]。运动目标检测技术的核心在于从实时变化的背景中准确而高效的提取运动目标[2-3]。

针对运动目标的检测问题,背景减法通过当前帧与背景图像差分提取目标,适合的背景模型的构建较复杂,实时性较差[4-5]。帧差法基于图像差分检测目标,计算简单但检测结果易出现重影和空洞[6-7]。对上述算法的研究和改进中,文献[8]通过改进Canny算子提取目标边缘图像来补充目标边界,虽然提高了检测目标边缘像素点的精度,但忽略了检测目标的内部空洞,因而检测目标的完整度较低。郝晓丽等[9]期望利用背景减法的结果填充边缘图像提高检测目标的完整度,虽能有效抑制目标空洞和背景杂波,但运动目标边缘图像和改进帧差法结果的与运算舍弃了大量目标边缘点,仍存在边缘模糊的问题。文献[10]利用四帧差分法结果训练改进混合高斯背景模型,提高了目标检测精度,但算法运算速度较低。

针对上述算法出现的不足,现提出的运动目标检测算法主要在4个方面进行改进和拓展:一是借助帧差法并通过面积阈值剔除无运动目标的帧的检测,以提高算法的检测效率;二是对Canny算子进行优化,以提高边缘点的提取准确率;三是提出一种基于改进Canny算子的运动目标边缘提取算法,通过前后三帧边缘图像直接获得当前帧运动目标边缘;四是改进三帧差分法来准确提取更多的运动目标内部像素点填充目标边缘,以解决检测目标空洞的问题。

1 帧差法目标初检测与阈值判决

帧差法检测目标的灵敏度和效率较高[11]。因此,在帧间差分算法中引入面积阈值判断是否进行当前帧的检测来降低算法计算量。原理如下。

读取视频帧序列后,通过当前帧与前一帧的灰度图像Fk(i,j)、Fk-1(i,j)获取差分图像Dk(i,j),表达式为

Dk(i,j)=|Fk(i,j)-Fk-1(i,j)|

(1)

差分图像Dk(i,j)中大部分运动目标像素点灰度值较高,利用最大类间方差(OTSU)法得到的自适应阈值T高效且准确的分离前景与背景。而后统计二值图像Rk(i,j)中灰度值为1的像素点的个数m:①若m小于预设阈值Ta时,则判定该帧无运动目标,跳过当前帧的检测并执行下一帧的检测;②反之,则对该帧运动目标进行提取而后检测下一帧图像。

2 融合改进帧差和边缘提取的动目标检测

2.1 改进的三帧差分算法

因为相邻帧间的时间间隔较短,传统的三帧差分法对运动目标像素点召回率较低[12]。为了提高三帧差分算法检测目标的召回率,将三帧差分算法的当前帧与后帧差分替换为前帧与后帧差分,使得改进后的三帧差分法能提取更多的目标像素点来解决检测目标的空洞问题。改进的三帧差分算法如图1所示。

图1 改进的三帧差分算法流程图Fig.1 Improved three-frame difference algorithm flowchart

2.2 改进的Canny算子

传统的Canny算子检测边缘不够精细,且存在将阴影检测为目标边缘的问题[13]。因而从去噪、梯度计算以及边缘连接阈值3个部分对Canny算子进行优化,以提高边缘像素点的检测精确度。

自适应σ值二维高斯滤波可有效去除噪声和保留图像的边缘信息,所以使用自适应高斯滤波代替传统的高斯滤波。自适应高斯滤波选取3×3的窗口模板并求取窗口的灰度均值λ(i,j),且标准差σ的计算公式为

σ=abs[f(i,j)-λ(i,j)]

(2)

利用λ(i,j)得到的自适应值σ二维高斯函数G(i,j)=(1/2πσ2)exp[-(i2+j2)/2σ2]与灰度图像进行卷积运算实现低通滤波,实现对噪声点的剔除和边缘信息的保留。

为进一步提高边缘检测的精确性,计算梯度值时使用Sobel算子的3×3窗口,并加入45°和135°方向求取像素点的梯度分量。4个方向的卷积内核表示为

将4个卷积核与去噪后的图像卷积得到4个梯度分量gi(i,j)、gj(i,j)、g45°(i,j)、g135°(i,j),则该点的方向角和梯度值可由式(3)及式(4)得到

θ(i,j)=arctan[gj(i,j)/gi(i,j)]

(3)

(4)

改进的梯度计算方法能有效减少边缘点的误检和漏检,而后进行非极大值抑制处理保留局部梯度最大的像素点获得目标的边缘信息。

在边缘连接中,高、低双门限阈值Th和Tl由OTSU法的自适应阈值TOSTU进行自适应更新,Th和Tl根据TOSTU由式(5)确定,公式为

(5)

将OTSU法引入Canny算子,可根据图像信息自适应的获得高、低阈值,能有效提高边缘检测算子的自适应能力以及边缘点的检测精度。

2.3 基于改进Canny算子的运动目标边缘提取算法

边缘图像包含大量背景边缘噪声,直接使用会将非运动目标边缘错判为运动目标边缘,对运动目标的检测带来较大的干扰[14]。因而提出一种基于改进Canny算子的运动目标边缘提取算法,该算法利用第2.2节的改进Canny算子提取视频序列当前帧与其相邻两帧的边缘图像并结合提出的信息关联法则可直接获取当前帧的运动目标边缘。提出的相邻三帧图像信息关联法则表达式为

(6)

式(6)中:Ck-1(i,j)、Ck(i,j)、Ck+1(i,j)分别为当前帧的相邻三帧的边缘图像;Ek(i,j)为当前帧目标边缘图像。提出的运动目标边缘提取算法的可视化过程如图2所示,通过该方法能高效提取当前帧的运动目标边缘信息,解决了检测运动目标的边缘模糊问题,并进一步提高了检测的完整度和精确度。

图2 目标边缘提取的可视化过程Fig.2 Visualization process of target edge extraction

2.4 融合改进帧差和边缘提取的运动目标检测

本文方法的运动目标检测算法流程图如图3所示。输入视频后,提取视频序列的当前帧与其前一帧图像,然后利用帧差分法检测结果通过面积阈值判断当前帧是否存在运动目标,若判断目标不存在,则进行下一帧的检测,以此来提高算法的检测效率。若判断目标存在,针对目标检测的准确度的要求:首先,利用改进的Canny算子获得相邻三帧边缘信息,通过信息关联法则提取当前帧运动目标边缘信息以保证检测目标边缘的精准性和完整度;其次,将改进的三帧差分法提取运动目标内部像素点填充运动目标边缘图像以有效解决检测目标的空洞问题;最后,通过形态学处理和连通域分析并设置面积阈值去除非运动目标误检区域进一步提高检测精度并输出当前帧的检测结果。

图3 算法流程图Fig.3 Algorithm flow chart of this paper

3 实验验证与结果分析

实验平台为联想台式电脑,配置为Core i5-6600,4.00 GB内存,使用MATLAB R2016a对MATLAB视频数据、LISA datasets、i-LIDS datasets公开数据集的4个监控视频进行本文算法的验证。

性能评价指标准确率(precision,P)代表检测运动目标的精确度,召回率(recall,R)代表检测运动目标的完整性[15],公式定义形式为

(7)

(8)

式中:FN为错检为背景点的像素个数;TP为检测为前景的前景点个数;FP为错检为前景点的像素个数。

指标F值(F-Measure,FM)综合考虑召回率和准确率的影响,其数值越大表示检测效果越好,公式定义形式为

(9)

3.1 改进的三帧差分算法有效性验证

通过帧差法、三帧差分法和本文算法对视频traffic进行运动目标内部像素点提取实验,来验证改进的三帧差分法的检测性能,性能评价指标平均值如表1所示。

由表1可知,三帧差分法虽然克服了帧间差分检测目标容易出现重影的问题,但差分二值图像的与运算丢弃了大量的目标像素点,难以利用获得的像素点检测运动目标。本文算法充分包含由于目标运动所造成的图像间的差异,相较于三帧差分法在准确率近似的条件下召回率提高了10.09%;在召回率与两帧差分法相近的条件下目标检测精确度上提高45.89%。本文算法在保证检测精度的条件下提取了更多的目标像素点,能有效实现对目标内部像素点的补充。

表1 算法评价结果Table 1 Evaluation result of algorithm

3.2 运动目标边缘提取结果分析

如图4所示,列(a)为视频traffic原始图像;列(b)、(c)、(d)为图示边缘检测算子获取的当前帧边缘图像和当前帧运动目标边缘图像。图5为通过本文算法提取的traffic其他帧的运动目标边缘提取结果。

由图4可知,传统的Canny算子运算简单,边缘提取不够精细,存在将目标阴影检测为目标边缘的问题,造成了边缘像素点的大量误检;Roberts算子虽然定位边缘点的精度较高,边缘提取精细,但当运动目标与背景颜色相近时易造成边缘的大量漏检。通过图4和图5可知,本文算法可直接通过相邻三帧边缘图像提取更为准确的目标边缘,克服了将阴影检测为目标边缘、运动目标与背景颜色相近时边缘漏检的问题,能够高效、准确地提取运动目标边缘,提高目标的检测完整度。

图4 边缘提取结果Fig.4 The results of edge extraction

图5 运动目标边缘提取结果Fig.5 The results of moving target edge extraction

3.3 运动目标检测结果对比与分析

图6为定性分析实验结果,第1列为4个视频帧图像,第3~6列为图示4种算法检测结果。表2和表3分别为4种算法在不同视频中单帧平均处理时间和准确率、召回率、F值的均值比较。

由表2、表3和图6可知,文献[8]通过帧间差分检测结果和运动目标的边缘图像进行与运算获取目标边缘像素点来检测目标,边缘漏检比较严重,虽然准确率较高但召回率较低,检测运动目标存在严重的空洞问题。文献[16]将视觉背景提取算法与帧差法相结合,能加快鬼影的消除,对光线变化比较敏感,能自适应的去除阴影,目标检测的召回率相对较低,仍存在较为严重的空洞和边缘模糊的问题。文献[17]将帧差法、图像分割算法与多尺度区域技术相结合用于动目标可能区域的粗略估计来抑制动态背景的变化,并通过改进的Vibe算法获得精确的运动目标,召回率与准确率均比较高但其算法实时性较差。通过实验数据对比可以发现,本文算法提出的边缘信息提取方法能较为准确地提取目标边缘信息,将改进三帧差分算法提取结果对边缘提取结果进行补充有效解决了目标空洞和边缘模糊的问题,在准确率与其余算法相近的条件下在召回率上优于前两种对比算法,且与文献[17]所提出的算法在准确率、召回率等相近的条件下极大提高了运动目标的检测速度。综上所述,本文算法在提高了检测效率的同时更为准确地提取了运动目标,在总体上优于3种对比算法,能够实现对运动目标的实时、有效的检测。

表2 平均处理时间Table 2 Average processing time

图6 4种算法在不同场景的运动目标检测结果Fig.6 Moving target detection results of four algorithms in different scenes

表3 4种算法的性能比较Table 3 Performance comparison of four algorithms

4 结论

为了进一步提高运动目标检测算法的实时性和完整度,将改进帧差和基于改进Canny算子的运动目标边缘提取方法相结合来检测运动目标。针对目标检测过程中无运动目标视频帧的不必要检测,通过帧间差分法面积阈值判决去除该帧的检测有效提高了算法的实时性。针对目标检测的完整度问题,提出了一种运动目标边缘提取算法,通过该算法提取当前帧运动目标边缘信息保证了检测目标的完整性和边缘的准确性。针对检测运动目标容易出现空洞的问题,通过改进的三帧差分法提取目标内部像素点填充目标边缘图像,有效抑制了检测结果的空洞问题。实验验证表明,本文算法在保证检测效率的前提下,进一步提高了运动目标的检测完整度和精确性。

猜你喜欢
差分法像素点算子
与由分数阶Laplace算子生成的热半群相关的微分变换算子的有界性
一类截断Hankel算子的复对称性
二维粘弹性棒和板问题ADI有限差分法
基于时空域交错网格有限差分法的应力速度声波方程数值模拟
拟微分算子在Hp(ω)上的有界性
Heisenberg群上与Schrödinger算子相关的Riesz变换在Hardy空间上的有界性
基于局部相似性的特征匹配筛选算法
基于有限差分法的双臂关节柔性空间机器人智能递阶控制策略
基于5×5邻域像素点相关性的划痕修复算法
基于canvas的前端数据加密