复杂背景下基于汉明距离约束的Hash_LBP 运动目标快速检测算法
2022-10-25裘莉娅陈玮琳李范鸣刘士建王晓钰李临寒
裘莉娅,陈玮琳,李范鸣,刘士建,王晓钰,李临寒
(1 中国科学院上海技术物理研究所,上海 200083)
(2 中国科学院大学,北京 100049)
(3 中国科学院红外探测与成像技术重点实验室,上海 200083)
0 引言
用计算机视觉[1-3]算法实现运动目标检测一直是计算机技术领域中的一个主要研究方向。如今,随着经济的发展,在这个信息化的时代,运动目标检测在视频监控、无人驾驶、行为研究等诸多领域有着广泛的应用[4]。但在动态背景下的多运动目标检测仍然是一个具有挑战性的研究领域,复杂的动态背景[5]包含多种情况:水的随机运动,如雨滴、涟漪或水流等;背景场景中的高速运动,如挥舞树叶、移动旗帜或横幅等;具有相似外观的周围背景的模糊物体;照明和光照强度的不断变化,比如,拨动灯开关引起的突然或逐渐变化,以及太阳被云覆盖等引起的路面场景的光照变化等。近年涌现出的深度学习[6-8]算法,因为具有较强的拟合能力和更高的准确度,在以上场景中能够提取出准确的运动目标。但深度学习算法性能的好坏极度依赖于数据集的大小,在缺少样本或者零样本的未知场景中,其目标检测的准确率往往因样本学习不足而下降,难以满足实际应用的要求。同时深度学习算法对硬件要求明显高于传统算法,成本较高,难以随时部署,因此传统方法仍然有着广泛的应用范围。
背景建模法[9-10]因具有算法简单、检测精度高,运算速度快、满足实时性等优点,逐渐成为广泛应用的目标检测方法,目前的算法已经能够很好地实现静态背景下的运动目标检测[11]。WREN C R 等提出了单高斯背景建模[12],由于研究者将每个像素的可能取值看作是一个高斯分布,不能将背景分离,因此对光照强度的改变敏感,具有很高的误报率。STAUFFER C 等引入混合高斯背景模型(Gaussian Mixed Model,GMM)[13],解决了单高斯背景建模不能处理背景中有运动目标的问题,但需要大量的训练帧且模型中的参数需要实时更新使得计算更为复杂,同样也对光照变化极为敏感。ELGAMMAL A 等提出核密度估计法(Kernel Density Estimation,KDE),通过计算每个像素点成为背景的概率[14],但KDE 算法同样需要人为设置参数,且参数也需要大量的实验才能得到理想的数值,所以计算复杂度仍较大。LEE D 等提出了基于递归高斯混合模型[15],该方法通过对每一帧进行高斯计算得出一个自适应学习速率来代替全局静态的学习速率保持因子来实现。同年,KYUNGNAM K 提出了一种实时的前景-背景分割算法(CodeBook)[16],该算法将图像中每个像素上采样得到的背景值量化为码本,并在背景更新中对每个码字进行匹配,这使得能够在无参的情况下,捕捉到由于长时间的周期性运动而引起的结构性背景变化,但是前景目标若出现在建立模型期间,会在码本再次更新前出现误检,并且对剧烈的光照环境变化敏感;JUNG C R[17]使用统计描述符构建了背景模型,基于改进的均值的模型来使噪声最小化并提高像素分类的准确性。这种方法可以检测阴影像素并很好地处理光照变化问题,但会因为背景场景的变化而突然变化。BARNICH O 等提出基于ViBe(Visual Background Extractor)[18]模型的背景建模方法,该方法并没有采用一般模型中先入先出的策略,而是采取随机策略来进行背景更新,计算量小速度快,对相机抖动有一定的鲁棒性,但对更新速率有很高的要求,更新太快会将前景目标吸收,更新太慢,则容易产生鬼影,无法快速地适应环境变化,尤其是在自然环境中受光照变化影响大。OY V 提出了局部二进制模式马尔科夫随机场(LBP_MRF,Local Binary Pattern_Markov Random Field)[19],一种增强的开源TBMOD 版本,采用新的LBP[20]算子和MRF 结合,新的LBP 使用了比原始LBP 更大的邻域,以较低的计算成本有效地估计了前景。对检测光照波动的情况下重建模型有很好的效果。
背景建模的方法[21-24]通常会有以下问题:环境光照的变化、背景中存在的运动将影响前景目标检测的结果、运动物体的阴影以及图像的噪声等。针对这些问题,提出了一种基于纹理特征的自适应阈值运动目标检测算法,该算法对图像序列中每一个像素点出现的不同灰度值的次数进行统计,做灰度值的直方图,将直方图中出现频率最高的灰度值作为当前背景的灰度值,使得慢速或静止的前景出现时,背景灰度不受影响,并且可以有效地区分静态背景和动态背景;然后结合Hash 和LBP,既保留图像的边缘信息,又保留了图像的低频分量;再采用自适应阈值,使得在与参考背景进行比对稳定图像时更为准确,对不同场景具有适应性,减少噪声对LBP 背景建模影响的同时有效地提高复杂场景下的召回率和准确率。
1 检测算法原理
算法总体流程如图1,首先将输入的图像序列转换为灰度图,以3×3 为窗口计算均值,去除高频的细节信息,对图像进行平滑处理;然后基于多态频率分布的原理建立背景模型;接着计算背景模型与每帧图像的差值矩阵,根据差值矩阵计算自适应阈值,来稳定输入图像并且抑制图像序列中的动态背景和噪声等影响;稳定后的图像和背景模型经过LBP 算法得到纹理特征,并计算两者之间的汉明距离,通过汉明距离进一步解决动态背景和噪声问题,并且图像纹理特征对光照变化不敏感,可以抑制光照变化的问题;最后再次基于多态频率分布的原理对LBP 直方图进行背景建模,检测出运动目标,并且对结果进行形态学操作和孔洞填充提高目标提取的准确性。主要从参考背景建模、与感知哈希算法结合的LBP 算法、自适应阈值选取、汉明距离对LBP 纹理特征约束四个方面介绍了在动态背景抑制方面的改进。
1.1 基于多态频率分布的背景建模
文献[25]中,LAI A N 等将固定长度的数据集序列帧中出现频率最高的灰度值作为真实背景值,该方法在图片序列帧较短的数据集中,容易造成将没有明显位移的运动目标区域或静止的目标区域定义为背景区域;在图片序列帧过长的数据集中,又会造成内存的过度消耗。针对以上问题,记录图像序列中每一个像素点(x,y)出现不同灰度值的次数,并进行统计做灰度值的直方图。随着图像序列在时间上的推移,读取的图像帧数f增加,即可得到该像素点不断更新的灰度值数组
式中,fn为(x,y)第n帧像素点的灰度值。
图2 为参考背景建模过程示意,图2(a)为输入图像序列,随机选取图中一点(100,150)作为展示,随着帧数的递增,将每一帧该点的像素值进行频次统计得到图2(b)所示的动态灰度频次直方图。图中红点标记的(55,45)为第1 180 帧时该点像素值为55,出现频次最多为45 次,55 作为当前参考背景中该点的像素值。
因此,灰度值为a所出现的次数k可表示为
将直方图中出现频率最高的灰度值作为当前背景的灰度值B(x,y),f,此时表达式为
式中,k(b)为灰度值b出现的频次,假设在当前帧fn及之前帧出现频次最高的灰度值为a,频次为k(a),下一帧fn+1输入的灰度值为b,并统计b出现的次数为k(b),则寻找当前帧该像素点的背景灰度值更新的过程为
1.2 汉明距离约束的hash_LBP
1.2.1 哈希算法
哈希算法(hash algorithm)[26]主要是利用图像的低频信息来得到每一张图像的一个字符串,然后通过比较各自图像的字符串,求取汉明距离来得到图像之间的相似度。并且哈希值不会随图像的放大、缩小或者改变纵横比而改变;增加图像的对比度或者改变颜色,对哈希值都不会造成太大的影响。
每一帧图像包含了低频和高频等各种频率,其中高频成分主要为物体的边缘等亮度变化剧烈的区域,而低频成分主要存在于亮度变化较小的区域,均值哈希算法则主要是利用图像中的这些低频信息,具体流程如下:
1)首先将图像进行缩小,去除高频的细节信息,得到8×8 的像素级大小,这样就可以避免不同尺寸图像带来的差异,并提高计算速率;
2)然后将上一步采样后的图像转化为灰度图像;
3)计算8×8 个像素的灰度平均值;
4)将每一个像素的灰度值与上一步求取的平均灰度值比较,进行二进制编码,如果小于平均灰度值,则记为0,反之就将该像素点记为1;
5)将上面步骤后得到的结果,按照一定的顺序(每一帧图像采用同样的次序)组合在一起得到一个64 位的字符串,该字符串记为当前图像的哈希值。
如果要比较两帧图像的相似度,就可以根据这两帧图像的哈希值求取它们的汉明距离[27],汉明距离的数值越接近于0 则相似度越高。
1.2.2 结合汉明距离后的LBP 算法
感知哈希算法和LBP 算法都可以很好地解决光照变化的问题,并且运用感知哈希中的汉明距离计算背景模型和输入图像序列的相似度可以通过设置阈值的方式,很好地抑制动态背景和噪声等对目标检测结果的影响。但由于存在较小的目标,而哈希感知算法去掉了图像的高频分量,将图像压缩到8×8 的大小,会导致较小尺寸的目标丢失。从均值哈希值的编码方式中,可以让人联系到经典的LBP 特征算法,为了解决这个问题将哈希算法与LBP 算法进行结合,LBP 可以保留明暗这种过渡的边缘信息,而Hash 保留下来的是整幅图像在采样后的低频分量。因此,为了既保留图像中目标的特征信息,又保留图像中关键的低频信息,对传统的LBP 进行了改进。最原始LBP 算子采取的是相邻的8 个像素点与中心像素点的灰度值作差分,用中心像素的值作为阈值,如果某相邻像素大于中心像素的值,则该像素的值标记为1,反之则标记为0,得到8位二进制编码转换为十进制得到LBP 值。但是易受噪声影响十分的不稳定,导致最终的计算结果对噪声极其敏感,并且由于数据集解码恢复后图像边界区域会出现的吉布斯震荡现象,图像经过LBP 变换后边界会存在大量条状噪声,由于红外图像纹理相对于可见光图像更加简单,且对比度低、信噪比低,受噪声影响更为严重。
若将图像以3×3 为窗口计算均值,去除高频的细节信息,将这个均值作为当前小区域的灰度值,再与相邻的小区域灰度进行比较,进行二进制编码形成新的LBP 特征。图3 为参考背景和991 帧左上角相同无前景区域处,由于噪声等影响,导致该位置得到的LBP 值不同,造成前景提取时将背景检测为前景的情况。为了抑制动态背景和噪声对目标提取的影响,通过自适应阈值改进了LBP 算法,初步解决复杂背景和噪声的问题,然后结合感知哈希算法中的汉明距离,进一步抑制动态背景和噪声,提出了一种自适应阈值的Hash_LBP 算法。
首先,将得到的参考背景与每一帧以3×3 为窗口,求取灰度平均值。背景平均值为,第i帧平均值与进行比较,得到差值如果小于阈值th(th 由原始图像矩阵与背景建模矩阵中的每个像素点一一对应相减得到的差值矩阵经过校正得到)则将值赋给,否则不变。最后,与相邻区域灰度平均值进行比较形成LBP 特征,得到hash_LBP 值,可表示为
最后对得到LBP 值使用汉明距离进行约束,比较当前帧和参考背景每个像素LBP 值的8 位二进制序列,计算不相同的位数。若不相同位数小于3 则该点LBP 值为背景该点的LBP 值,否则保持当前帧该点的LBP 值。当前帧与背景的LBP 值差值的绝对值图可以反映动态背景的抑制效果,使用汉明距离约束后可以减少部分动态噪声的影响,如图4。
由图可知,在同一帧的场景中,在使用汉明距离约束以后,湖面的干扰减少了很多,背后的树丛干扰也得到了较好的抑制,说明通过汉明距离的约束后,一定程度上抑制了动态背景。
1.3 自适应阈值的设定
通过对每种动态背景的分析,如图5 所示,该数据集为blizzard,场景为下着暴风雪的马路,背景中存在大量雪花,且汽车经过时车灯会造成场景光照变化。随机选取图中一点,如图5(a)中红点标记(400,400)处,统计连续200 帧该点灰度值变化曲线,如图5(b)。图中背景灰度值频繁变化,但波动范围在两条红色虚线区间范围中,而有目标经过后会有更大波动的变化,如图5(b)中两条黑色虚线区间。由于动态背景灰度值波动在一定区间内,可以通过计算参考背景和每帧图像复杂背景波动区间大小作为阈值,对每帧图像进行校正。
由于固定的阈值不同数据集的鲁棒性差,因此采用自适应的阈值作补偿差值,采取差值矩阵的标准差进行阈值更新,具体的操作流程如下:
假设目前所使用的数据集尺寸M×N为当前帧的图像矩阵中行和列的大小,fx,y为图像中每个像素点的灰度值,x∈[1,M]、y∈[1,N],整个当前原始图像矩阵记为F。同样大小下的背景建模图像矩阵记为B,每个像素点的灰度值为Bx,y,首先将原始图像矩阵与背景建模矩阵中的每个像素点一一对应相减得到差的绝对值,得到差值矩阵T,其表达式为
差值矩阵中,仅计算矩阵中大于10 小于100 的值并求取其差值矩阵平均值M,即
为了更好地衡量差值矩阵中的数据波动,继续求取差值矩阵的标准差∂(M),表示为
则阈值可表示为
自适应阈值的处理效果如图6。图6(a)为数据集canoe 中无目标出现,随机选取的一帧图像,背景中存在大量闪烁湖面的动态背景。图6(b)为该帧图像与参考背景的绝对值差值矩阵图和以图像大小为X轴Y轴,差值为Z轴的三维差值直方图,通过三维差值直方图和差值矩阵图反映出存在大量动态背景。图6(c)为通过自适应阈值校正后,该帧图像与参考背景的差值矩阵图与三维差值直方图,可以看出噪点明显减少。
2 实验结果分析
为了能够对所提算法进行定量分析及性能验证,使用了Change Detection.net2014 公共数据集[28]中的6 组复杂可见光场景图像和5 组红外图像进行对比实验,这11 组视频分别为canoe、overpass、highway、skating、blizzard、snow Fall、corridor、dining room、Lake Side、library、park,这些视频包含了生活中常见的复杂场景[29-30]。
首先对所提算法进行纵向对比,将未结合LBP 的背景建模算法运动目标检测结果、仅结合LBP 算法运动目标检测结果与引入汉明距离后的运动目标检测结果进行对比。然后将所提算法与现有背景建模算法CODE_BOOK[9]、LBP_MRF[12]、ViBe[11]、KDE[7]、GMM[6]的检测结果进行横向对比,对比算法均使用原文默认参数。最后将所提的Hash_LBP 算法与ViBe 和GMM 算法结合,验证Hash_LBP 的可行性。数据集处理的硬件为i7-8700K 3.70GHz CPU,32 GB 内存,显卡NVIDIA GeForce GTX 1080 Ti,软件平台使用为:Win10、vs2019 和OpenCV4.2.0 的环境。
2.1 算法纵向对比实验
如图7 所示,随机选取Cdnet2014 数据集中5 个视频序列中的任意一帧处理结果,在同一个数据集中不同算法下选取同一帧处理结果进行比较,其中图7(a)、(b)、(c)为可见光数据集,图7(d)、(e)为红外数据集。由图7 第三列图像可知,处理的数据集中的图像由于对比度较低,且背景变化频繁,导致处理结果从主观上就出现了较多明显的误检,图7(a)中由于光照变化,将路面边缘误检为了前景目标;图7(b)中由于水面闪烁,湖面部分出现了明显的误检;图7(c)中由于背景中树木被风吹动摇摆的影响,背景将部分树木误检测为前景,并且人体结构也并不完整;图7(d)、(e)均是红外图像,图像信噪比较低,但也同样出现了较大的误检。从图7 第四列的图像中看到,在引入LBP 算法后,将背景误检为前景的区域明显减少,但是由于LBP 自身算法的原因导致出现了不同程度的带状噪声,因此又引入了汉明距离对LBP 算法进行约束。从图7 最后一列可以看到,所提的Hash_LBP 算法的处理结果对比前几种方法,目标和背景分割最为准确,很好地解决了动态背景和噪声问题,且运动目标的形状轮廓也较为完整。
2.2 算法检测效果对比实验
2.2.1 可见光复杂场景的对比实验
图8 中复杂场景所选取的数据集为Cdnet2014 数据集中的Bad weather 的canoe、overpass、highway、skating、blizzard 和snowfall,各种算法的主观对比结果如图8。
从图8 可以看到,在六个可见光的复杂场景中,无论是动态背景还是动静结合的背景场景中,所提算法得到的前景目标具有更好的完整性和准确性,尤其是对动态背景的抑制,和其他5 个算法相比得到的背景更为干净准确,得到的前景目标误检像素点更少。图8(a)中能够明显看出所提算法对动态背景有很好的抑制作用,CODE_BOOK、LBP_MRF、ViBe 三个算法相比KDE 和GMM 两个算法,对图像上半部分的树丛处理的较好,但是在湖面的抑制仍然不如所提算法,而所提算法对船上人的提取不够完整清晰;图8(b)和图8(c)都是动静结合的场景,在两个场景中,除了LBP_MRF 和所提算法,其他算法均在不同程度上将背景判别为前景,但是LBP_MRF 算法,在图8(2)中仍然将行人与误判的树叶背景粘连在了一起,因此从主观视觉上所提算法较完整检测出前景的同时很好地抑制了动态背景的影响;图8(d)中除了ViBe 算法和所提算法,其余算法都将大部分飘动的雪花以及树叶上的积雪当作了前景,但和ViBe 算法相比,所提算法中的前景目标更为完整;图8(e)和图8(f)均为恶劣雪天的室外场景,图8(e)中的信噪比更低,其中,LBP_MRF 算法的结果中出现了拖影,其他算法均出现了前景目标提取不完整的现象,而图8(f)中除了所提算法,其他5 个算法均受到了动态飘落雪花的影响,但在前景提取上码本和所提算法无法直接判断谁的结果更为准确。
2.2.2 红外复杂场景的对比实验
由于红外数据集中的动态背景影响较小,且红外数据集具有分辨率、对比度和信噪比低,视觉效果模糊等特点,因此,在对比度低的情况下,还需抑制图像解压编码时产生的噪声[31-32],不同算法的主观对比结果如图9。
从图9 中可以看出,在五个红外场景中,所提的算法都能较好地提取出完整的前景目标。在corridor 图9(a)中,除了码本和所提算法,其他算法均出现了较大的空洞,且码本错误地将人物倒影也当作了前景;在dining room 图9(b)中LBP_MRF 和GMM 算法受到背景中飘动的旗帜的影响,将其误检成为了前景目标,除了所提算法,其他算法均在不同程度上出现了目标不完整;在lakeside 图9(c)中KDE 算法几乎没有检测到前景目标,LBP_MRF、ViBe、GMM 的前景目标点大量缺失,只有码本和所提算法将前景目标尽可能完整地进行了提取;在library 图9(d)中除了所提算法,其他算法在不同程度上都将大部分前景目标当成了背景;在park 图9(e)中背景和前景的灰度差异比较小,其他算法提取的前景都在一定程度上不完整,所提算法目标提取较为完整,但目标边缘处还是存在部分条状噪声。
2.3 定量分析
为了对所提算法进行定量分析,采用了CDet2014 中使用的召回率Re(Recall)、准确率Pr(Precision)、F测度(F-Measure)、误检百分比PPWC(Percentage of Wrong Classification)四个评价指标来衡量。
式中,Pr和Re指标有时候会出现矛盾的情况,这就需要综合考虑,F测度F-Measure 就是准确率和召回率的加权调和平均,用来衡量算法的综合性能。其表达式为
式(13)~(16)中,fTP为正确检测为前景的点,fTN为正确检测为背景的点,fFP为误检为前景的点,fFN为误检为背景的点。一般情况下,Re、Pr、F测度均越大越好,PPWC越小越好。11 种场景的分析结果如图10 和表1和表2 所示。
表1 各算法在不同可见光场景下的误检率Table 1 False detection rate of each algorithm in different visible scenes
表2 各算法在不同红外场景下的误检率Table 2 False detection rate of each algorithm in different infrared scenes
图10 为每个算法Re、Pr、F数的柱状图,其中黑色柱为Re,白色柱为Pr,灰色柱为F数,纵坐标范围为0 到1,横坐标依次为CODE_BOOK、LBP_MRF、Vibe、KDE、GMM、所提算法,每个算法都对Re、Pr、F数分别进行统计。可以看到所提算法在绝大部分场景中都有着较好的指标,11 个场景中所提算法综合性能最优。
从表1~2 中可以看到,所提算法在大部分场景中的误检率都是最低的(最低数值在表中加粗和下划线标出),所提算法在综合性能较好的同时也能保持较低的误检率。测试得到的Re、Pr、F和PPWC所有数据如表3 所示。
表3 各场景下不同算法的Re、Pr、F 和PPWC数值Table 3 Values of Re、Pr、F and PPWC of different algorithms in each scenario
2.4 算法实时性对比结果
为体现算法的实时性,在相同的运行环境下,从时间和空间上分析了算法的复杂度。各个算法不同数据集平均每帧处理速度如表4。
表4 不同算法处理平均时长Table 4 Average processing time of different algorithms
可以看到ViBe 算法在多数场景下,都是处理速度最快的;LBP_MRF 算法是将LBP 和MRF 结合起来,因此计算复杂度更高,耗时也更多;所提算法对LBP 进行了改进,再结合新的建模算法,因此不如ViBe 算法处理快,但相比同样结合了LBP 算法的LBP_MRF 算法,处理时长明显缩减了很多,可以满足目标检测实时性的需求。
由于所提算法与ViBe、GMM 和Code_book 检测速率相似,表5 中分析了以下几种算法CPU 的占用率和占用CPU 内存的容量。
表5 CPU 占用率和内存对比Table 5 Comparison between CPU usage and memory
由表5 可知,所提算法和其他三种算法对CPU 的占用率和内存占用相差不大,所以所提算法也非常适合移植到嵌入式平台上工作,满足各种特殊场合下的实时性要求。
2.5 普遍适应性分析
实验表明所提算法对动态背景的抑制对于ViBe 和GMM 等背景建模算法同样适用。
将所提汉明距离约束的Hash_LBP 算法用于ViBe 算法和GMM 算法,图11(a)为测试数据集canoe,图11(b)为其真值图,图11(c)、(e)为ViBe 和GMM 背景建模算法目标检测结果,此时前景提取中存在大量动态背景。ViBe 和GMM 通过汉明距离约束的Hash_LBP 算法处理后,抑制了大部分动态背景,如图11(d)、(f)。接着对其进行定量分析,结果如表6。
表6 不同算法下的对比结果Table 6 Comparison results under different algorithms
可知,通过汉明距离约束的Hash_LBP 算法处理过的ViBe 算法,Re提高了13.9%,Pr提高了30.3%,F数提高了1.6%,PPWC减少了14.5%。通过汉明距离约束的Hash_LBP 算法处理过的GMM 算法,Re提高了315.9%,Pr提高了395.6%,F数提高了351.4%,PPWC减少了44.5%。
3 结论
本文提出了一种自适应阈值的Hash_LBP 算法,主要研究如何抑制动态背景和噪声问题。首先,根据图像序列的频域特性,对每一个像素建立了灰度频次直方图,将频次最高的灰度值作为参考背景,然后参考哈希算法选取3×3 的窗口求取均值,对图像做平滑处理,将参考背景与每帧比较得到差值矩阵,计算差值矩阵中大于10 小于100 的值的标准差与均值之和,作为自适应阈值校正当前帧灰度值来抑制动态背景,并对参考背景和校正后的每帧通过LBP 算法得到图像的纹理特征。为了更好地抑制动态背景和噪声,将参考背景的LBP 值与每帧LBP 值的汉明距离,以3 为阈值校正每帧LBP 值来稳定图像,进一步抑制动态背景和噪声。实验结果表明,所提算法可以很好地抑制动态背景,提高了复杂背景环境下可见光和红外运动目标检测的召回率、准确率、F数,降低了误检率,综合指标均优于其他算法。并且有较高的鲁棒性,适应多种背景建模算法,无论是可见光数据集还是红外数据集均适用。但所提算法会吸收部分目标,存在目标检测不完整和鬼影问题,接下来将进一步对算法进行优化,研究孔洞填充算法和快速消除鬼影算法,以及对检测到的目标进行识别和跟踪。