APP下载

基于计算机视觉的运动目标检测算法

2022-06-20李佩阳陆华才

安徽工程大学学报 2022年3期
关键词:像素点灰度阈值

李佩阳,陆华才

(安徽工程大学 电气传动与控制安徽普通高校重点实验室,安徽 芜湖 241000)

基于计算机视觉的运动目标检测已经成为社会发展与技术进步的一个重要发展方向,近年来人工智能领域的兴起,更加促进计算机视觉朝着工业化方向前进,并且在人们日常生活和工业化生产中得到了广泛的应用。对于运动目标的检测技术已然成为热点研究方向之一,同时也是提升智能化交通和城市治理能力的重要环节。现如今在复杂交通场景实现优良性能的运动目标检测效果仍然存在一些问题,比如交通背景的复杂性、视频序列检测时间长、复杂交通场景下的人和车检测在不同尺度变化与外姿变化、运动目标检测过程中的遮挡与重复等。

目前有很多研究学者针对运动目标检测进行了相关技术研究。徐晓明等[1]针对算法的实时性较差与鲁棒性差等问题提出一种Subsense检测算法,能够根据外界环境变化调整相应的参数设置,从而提升复杂运动目标的识别能力。汤旻安等[2]针对静态背景下运动目标“鬼影”问题,提出一种哈希与图像二维信息熵的改进思路,提升ViBe算法对静态场景运动目标的检测与识别能力。但是现有研究中针对视频帧之间联系的解决思路较少,缺少对视频帧之间前景与背景提取问题的深入研究。

本文提出的运动目标检测算法针对视频帧进行图像预处理操作,在视频帧进行二值化过程中采用改进的最大类间方差(OTSU)算法解决光照亮度不均所带来的影响问题[3],再根据视频帧中运动目标区域像素点的变化进一步将运动目标提取出来,根据提取的运动目标轮廓进行标记,从而实现视频帧上运动目标的检测[4]。

1 算法基础原理

从高清摄像机拍摄或保存的视频中提取视频帧图像进行处理。首先对视频帧图像进行预处理操作[5],在对图像进行滤波操作完成二值化过程中,通过采用改进的OTSU算法完成图像前景与背景的阈值输出,从而解决光照因素的干扰,完成后续二值化操作。其中运动目标检测算法基础流程图如图1所示。

图1 运动目标检测算法流程图

在对视频帧进行处理的过程中,需要先进行灰度化,而图像的灰度化操作在一定程度上对噪声有一定的抑制效果[6],同时为了去除图像的椒盐噪声,本文采用中值滤波解决椒盐噪声的干扰问题。在对图像进行二值化的过程中,通过OTSU算法计算出一个合适的阈值T,对图像中的每一个像素点进行阈值操作,按照每个像素的灰度值f(x,y)大小来判断是否大于或等于T,若是该像素点像素值则被置为255(白色),若不是则被置为0(黑色)。公式如下:

(1)

式中,x,y分别为像素点的横纵坐标;P(x,y)为二值化处理后的像素值。

OTSU算法核心在于通过一个阈值T将图像灰度值分成前景和背景部分,该算法主要计算思路及计算公式如下:

①对于图像I(x,y),用阈值T将图像分割为前景和背景两个部分。

②设w0为前景图像像素点与整个图像像素点的比值,设u0为前景图像的平均灰度。

③设w1为背景图像像素点与整个图像像素点的比值,设u1为背景图像的平均灰度。

④设图像总体平均灰度为u,且设g为类间方差,设图像大小为M×N,其中对于灰度值小于阈值T的像素个数为N0,大于阈值T的像素个数为N1。

前景比例:

(2)

背景比例:

(3)

像素点总和:

N0+N1=M×N,

(4)

前景与背景的概率和:

w0+w1=1,

(5)

平均灰度值:

u=w0×u0+w1×u1,

(6)

类间方差:

g=w0(u0-u)2+w1(u1-u)2,

(7)

由式(4)~(6)可得:

g=w0×w1(u0-u1)2。

(8)

当阈值T的值变化到类间方差g最大的时候,则该阈值T为OTSU算法计算所得出的最合适的阈值。选取的交通路口部分图像如图2所示。采用OTSU算法进行阈值选取时会造成亮度较低的区域信息丢失,从而对实验结果产生很大的干扰,如图3所示。由图3可以看出,图像本身存在光照亮度不均部分,经过OTSU算法求得的阈值对于非阴影部分处理结果较好,图像亮度较高的区域信息保留得更加完整,而该算法对亮度较低区域处理结果较差,未能提取亮度较低区域中有效的图像信息。

图2 交通路口原图 图3 OTSU算法处理结果图

在处理光照亮度不均的图像时,可以将整个图像进行全局阈值,然后通过定义ROI区域重复选择图像阴影部分与OTSU算法结合计算,最终可以得到一个算术平均值,将其作为最终阴影区域的阈值输出,其改进的OTSU算法流程为:对于图像阴影区域的处理过程主要是先对图像进行预处理和灰度化,再利用OTSU算法对整个图像的阈值进行初步的阈值处理,从而得到总体的全局阈值T1;然后利用感兴趣区域ROI对图像阴影部分进行单独提取处理,将重复提取的结果算数平均值作为该阴影部分的全局阈值T2;最后判断图像中像素点是否处于阴影部分来进行相应的阈值计算。

在进行二值化操作之后需要对图像进行边缘检测,本实验选用的是Canny边缘检测技术对运动目标进行边缘检测。视频帧的边缘检测过程既要保证检测的准确性,同时也要保证重要的边缘信息不能丢失。而Canny算子的优点在于:第一,既保持了原有重要的边缘部分,同时也不会出现虚假的边缘部分;第二,在图像的边缘检测部分,其实际边缘与检测到的边缘部分偏差最小;第三,将多处的边缘响应部分降低为单个边缘响应部分,这一点很好地解决了边缘部分的噪声影响问题。以下用size=5的高斯内核来表明Canny检测的噪声消除:

(9)

通过计算梯度的幅值和方向,运用一对卷积阵列:

(10)

(11)

式中,x、y分别为两个垂直方向。

梯度幅值和方向计算:

(12)

(13)

式中,θ为角度,而梯度方向的角度一般在0°~135°。

Canny算子本身就自带滞后阈值,滞后阈值包括高阈值和低阈值两种。当扫描图像每一点的像素值的时候,大于高阈值的像素点会被保留下来,而低于低阈值的像素点会被去除。如果某一点的像素值介乎于高阈值和低阈值之间,则会进一步判断该点邻域是否有大于高阈值的像素点,若有则该点被保留,反之排除该点。其中,运动目标检测原图以及Canny边缘检测结果图如图4、5所示。

图4 运动目标检测原图 图5 Canny边缘检测结果图

图6 运动目标轮廓提取流程图

Canny边缘检测的结果可以作为轮廓提取的一个输入,对于视频帧而言检测的目标为运动目标,所以针对这一目的需要将帧与帧之间的关系进行联系。从整个边缘检测效果来看,对于视频帧的边缘检测仅针对图像中所有物体的边缘进行提取[7],而运动目标的边缘包含在里面。只有根据视频帧之间的关系才能将运动目标准确提取出来,在视频帧不断变化的过程中,运动目标所处位置也在不断变化,这意味着运动目标位置的像素点也在不断改变[8],根据这一特性对运动目标进行轮廓提取,其具体流程图如图6所示。由图6可知,视频帧在经过Canny边缘检测之后需要对运动目标的轮廓进行边缘提取,从而进一步在视频帧中提取出运动目标的位置[9]。通过定义考察帧的总数n,在n帧中对像素点进行判断是否为背景点。如果不同帧相同位置的像素差值小于设定阈值t,则判断该位置像素点为背景,反之为运动目标像素点用于后续轮廓提取[10]。最后结合轮廓大小排序,选择轮廓较大的目标进行框选标记,最终标记出视频中的运动目标。

2 算法实现与结果

本文改进的OTSU算法通过交通图像来显示改进效果,以图2的交通路口原图进行算法结果对比,其中OTSU算法结果图如图3所示,改进OTSU算法结果图如图7所示。根据实验结果对比可知,传统OTSU算法在处理图像亮度较低的区域时,会丢失图像阴影部分信息,不能有效地提取图像中有用的信息。而改进的OTSU算法在处理图像与亮度较低区域的过程中,能够很好地解决信息丢失问题,使得亮度较低部分的图像信息能够得到有效地提取[11]。将改进的OTSU算法应用到视频帧中运动目标的检测中,能够有效地解决光照不均等造成的干扰问题。

为了验证本文算法,不仅仅局限于理论可行性,还兼顾实际操作性,所以要通过实验进行验证分析。本次实验基于硬件设备Intel i5-10200H CPU,在Windows 10操作系统下微软开发的Visual Studio 2019社区版本以及计算机开源视觉库Opencv4.1.0版本,在这些实验基础上对交通路段的视频进行相应处理。其中截取了视频中的图像结果作为实验结果,交通路口原图如图2所示,图8~10分别为二值化结果图、未改进算法结果图和改进算法结果图。

图7 改进OTSU算法结果图 图8 二值化结果图

图9 未改进算法结果图 图10 改进算法结果图

实验结果表明,本文提出的算法能够有效针对运动目标进行检测,根据运动物体运动速度的快慢可以通过调节合适的参数进行选择。如果运动目标运动速度较慢,可以选择更多的总帧数n进行调节,同样可以更改连续k帧的值对实验效果进行调节。根据实验场景和实验对象调节不同的参数达到检测的最优效果,经过本文改进后的OTSU算法处理的二值化图像能够对运动目标的图像信息较为完整地提取,避免了由于光照等因素带来的干扰,在算法运行效率方面也有显著提高。实验结果显示,本文提出的运动目标检测算法运动目标检测效果较好,同时避免了检测框交叉影响检测结果,能够将运动目标信息有效地检测出来。

3 结论

本文通过运用图像处理技术对视频帧进行处理,由改进的OTSU算法解决视频帧在进行二值化过程中受到光照亮度不均等因素影响的问题,并运用背景消去思路以及视频帧之间的联系提取视频中的运动目标。根据运动目标在视频帧中位置的不同,从而位置区域像素点发生变化这一原理将运动目标与背景进行分离,再通过轮廓的排序选择合适较大的轮廓轨迹并在视频帧中进行框选操作,从而达到运动目标检测这一目的。实验结果表明,本文提出的运动目标检测算法能够有效提取出视频中的运动目标,特别是在处理交通视频过程中,能够极大地解决光照亮度不均等因素所造成的干扰。在现阶段图像处理技术与算法研究基础上,本文提出的运动目标检测算法实用性较强,能够很好地检测出视频中的运动目标,在处理速度上能够满足实时性要求,而且有益于后续识别过程,对于运动目标的检测和识别等相关工作都有着重要的价值。

猜你喜欢

像素点灰度阈值
非平稳声信号下的小波变换去噪方法研究
基于二值化灰度图像的大豆蛋白液喷雾相对雾化程度的研究
土石坝坝体失稳破坏降水阈值的确定方法
一种改进小波阈值去噪法及其仿真
天津港智慧工作平台灰度发布系统和流程设计
一种小波阈值函数构建的图像去噪算法研究
Arduino小车巡线程序的灰度阈值优化方案
一种X射线图像白点噪声去除算法
基于灰度直方图的单一图像噪声类型识别研究
基于canvas的前端数据加密