贺志洋,秦 蕾,陈 玺,李 杨
(北京计算机技术及应用研究所,北京 100854)
基于机器视觉的运动目标检测是根据视频序列图像在时间和空间上的信息,经过一定推理计算来确定运动目标的位置。运动目标检测也称前景检测,是视频分析技术领域的重要内容,也是目标跟踪和行为分析的前提,它在AR、人机交互、视频监控等多领域得到广泛应用[1]。在物联网的视频监控领域,运动目标检测过程往往是在本地边缘计算层完成的。由于本地的计算能力有限,所以边缘计算中亟需计算成本低且不影响准确率和精度的轻量化检测算法。
目前已有专家学者提出多种运动目标检测方法,主要有帧间差分法、背景建模法、光流法和机器学习法四类。
帧间差分法是利用视频中时间相近的若干幅图像(帧)的差异,检测出运动目标[2]。杨嘉琪等人[3]采用基于自适应学习率的混合高斯背景建模,以像素点间的匹配次数作为参考量来修正模型的学习速率,提高算法对动态环境的适应性;通过基于边缘提取的三帧差分改进算法对视频图像的目标轮廓进行提取,保证目标信息的完整。余长生等人[4]提出了一种将TFDM与混合高斯模型(GMM)相结合的运动目标检测方法;与单独的TFDM和GMM算法相比,既能得到相对完整的运动目标,又能减小噪声等外部干扰带来的影响。帧间差分法虽然简单,但目标中往往出现空洞,需要累积多幅图像(帧)后才能得到完成的目标。
光流法是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。它是通过视频中多个点在不同帧间的移动,检测移动的目标[5]。Xia等人[6]利用光流的高阶特征进行复杂背景下的人体动作识别。崔捷等人[7]为了保证生成器能够利用正常的视频帧产生清晰的高质量预测结果,而让异常的帧预测不清晰,基于U-Net设计了输入具有时间差的两帧双流生成器,并取得较佳的检测效果。但是光流法计算量相对较大,不适合性能较低的视频采集分析设备,尤其是边缘计算设备。
背景建模法是建立视频中的背景模型,再利用当前图像帧与背景模型的差异,分离出运动目标[8]。刘志豪等人[9]提出一种以ViBe算法为基础的改进算法,采用多帧初始化背景模型的方式,为背景模型引入可靠真实的背景样本。杨国萍[10]在动态场景中准确高效地检测到监控内的环境异常变化,并展开研究,提出一种参数自适应的高斯混合背景模型,并获得较佳的测试效果。但是背景建模法计算量较大,不适合性能较低的视频采集分析设备。
机器学习法是利用待识别对象的多幅图像训练神经网络,再用训练好的神经网络分离图像中的目标[11]。王震宇等人[12]利用深度卷积神经网络在公开的OPPORTUNITY传感器数据集中进行运动识别,实验证明该方法能够改进以前手工设计的模型结构,且是可行有效的。但是机器学习法需要大量的训练图像、大量的训练时间、高性能的计算设备,对运行模型的设备性能要求也较高。
上述研究在运动目标检测中均取得了较大进展,但是针对物联网的边缘计算均难以满足轻量化的计算需求。因此本文提出一种差分分块运动目标快速检测算法。该算法的输入是相近两帧图像,避免了背景模型的构建和更新步骤。同时,该算法具有计算复杂度和时间复杂度较低的优点。
差分分块运动目标快速检测算法是对采集视频中时间相近的两幅图像(帧)进行差分,并将图像分块,选择移动块对图像进行二分法查找,最终确定运动目标。该算法主要包括如下步骤:采集视频中时间相近的两幅图像(帧)并将图像分块,计算采集到的两幅图像的差异图像并二值化,在采集时间靠后的图像上选择移动块,在选择的移动块的邻接块中选择移动块,组成运动目标,其流程如图1所示。
图1 差分分块的运动目标快速检测算法流程
采集视频中时间相近的两幅图像(帧)并将图像分块。采集到的两幅图像(帧)分别为图像I1和图像I2,图像I2的采集时间靠后,通常时间差在200 ms左右。图像I1和图像I2的大小相同,为M行N列,划分为m行n列的小块,m 图2 图像分块示意图 计算采集到的两幅图像的差异图像并二值化。首先,进行差分运算,两幅图像I1和I2的差异图像I3的像素值是图像I1和I2对应像素值之差的绝对值,即I3(x, y)=|I2(x, y)-I1(x, y)|,其中图像I3的大小与图像I1和I2相同,也划分为m行n列的小块。其次,对差分图像I3进行二值化。二值化的阈值根据经验设定为:阈值T=均值+标准差。 在采集时间靠后的图像上选择移动块。二值化后图像I3中的块包含的差异像素数目大于等于块中像素数目的1/10时,标记为差异块。如果采集时间靠后的图像I2的某个块在差异图像I3中对应块的邻接块是差异块,则图像I2中的这个块就标记为候选移动块。图像I2的某个块在差异图像I3中对应块的上、下、左、右、左上、左下、右上、右下等8个邻接块中,有一个邻接块是差异块,则图像I2中的这个块就标记为候选移动块。计算候选移动块在图像I1中对应的运动向量和运动向量处的差异。如果图像I2中的这个块在运动向量处的差异小于等于阈值T,则标记为移动块,否则不标记。运动向量个数计算可以采用视频图像编码的方法计算,运动向量的绝对值不超过图像块的大小。 在选择的移动块的邻接块中选择移动块,组成运动目标。具体实施时,如果采集时间靠后的图像I2的某个块与某个移动块邻接,且其在图像I1中的运动向量与移动块的运动向量相近,差值在-1~min(M/m,N/n)范围内,且在运动向量处的差异小于等于阈值T,则这个块也标记为移动块。所有邻接的移动块组成运动目标。 为了验证提出的差分分块运动目标快速检测算法的有效性,利用MATLAB2019软件在ThinkPadE450c硬件平台上进行实验验证。实验对象为2007年英国的基于视频和信号的监控系统会议提供的AVSS数据集。 通过实验发现,该方法对上述实验对象均可有效识别其运动目标,其中一组的实验过程及效果如图3所示。其中,测试视频的帧率为30 fps,视频的单帧图像像素为240×320。实验所使用的样本视频为50组,每组样本视频时间长度为10 s。图3中:(a)是视频中前帧图像,(b)是视频中后帧图像,(c)是两帧图像的差分图像,(d)是对差分图像做二值化运算并分块得到的图像,(e)是在视频中的后帧图像中检测并标记出的移动块,将移动块合并后则得到图像(f),图像(f)也是所得到的运动目标识别结果。 图3 实验过程及效果 为了进一步验证差分分块运动目标快速检测算法的实时性,引入了光流法和已经训练好的YOLO3作为对比方法。其中,光流法是基于光流假设的一种传统运动目标识别方法;YOLO3是近年来提出的一种图像快速分割的网络模型,将对象检测重新定义为一个回归问题。它将单个卷积神经网络(CNN)应用于整个图像,将图像分成网格,并预测每个网格的类概率和边界框。这两种对比方法均可有效识别出视频中的运动目标。 利用上述实验平台和实验对象分别使用光流法和YOLO3进行定位识别,其平均耗时见表1所列,其中光流法和YOLO3的平均耗时分别为8.437 s和0.352 s。 表1 运动目标识别耗时 为了满足物联网中视觉设备边缘计算的轻量化需求,提出了差分分块运动目标快速检测算法,并通过实验进行了验证。结果表明,本文所提出的算法可有效识别视频图像中运动目标,且计算复杂度和时间复杂度低,具有耗时低的特点。对硬件设备的计算能力要求不高,能够满足边缘计算的轻量化需求。2 实验验证
3 结 语