复杂场景(精选4篇)
复杂场景 篇1
运动目标检测是智能视频监控系统的!关键组成部分, 用于检测视频中的运动物体, 例如行人和车。一般视频监控系统采用固定摄像机监控场景, 因而基于背景建模的运动目标检测方法得当了广泛的应用。其基本思想是假设可以学习得到稳定的背景模型, 将当前帧图像与背景模型进行比较, 其中差别较大的区域即为检测到的运动物体。因此背景模型的构造对检测结果的正确性至关重要。
传统背景建模方法常以单个像素为处理单元, 以该像素信息构造背景模型, 例如经典的混合多高斯模型[1]。此种方法优点是构造方式简单, 速度比较快;但缺点是忽略了相邻像素的信息, 在复杂场景下如存在环境噪声和光照变化时, 检测结果更容易出现漏检和误检。另外, 传统背景建模方法一般基于阈值来提取前景, 得到的结果不是最优的, 容易出现噪声和空洞。
为了改善传统背景建模在检测复杂场景中运动目标的效果, 研究在马尔科夫随机场框架下, 基于局部区域模型对监控场景进行建模, 减少运动目标检测结果中的漏检和误检。
1 系统框架
运动目标检测可视为二分类问题, 即判断图像中的每个像素为前景或是背景。传统背景建模方法以单像素为处理单元, 基于阈值判断像素的分类, 得到的结果往往不是全局最优的结果。而在最大后验概率马尔科夫随机场框架下, 运动目标检测转化为能量最优化问题, 有可能得到全局最优解, 提高算法的正确率。下面介绍基于最大后验概率马尔科夫随机场的运动目标检测模型。
假设输入图像为I, I中所有像素集合为P, 运动目标检测即对I中任意像素p∈P进行分类, 其类别为lp∈{1, 0}, 其中1为前景, 0为背景。设I中所有像素类别是L={l1, l2…, l|P|}。根据贝叶斯理论和马尔科夫随机场模型, L的最大后验估计可以简化为吉布斯能量E (L) 的最优化问题[2]:
式 (1) 中L*为L的最优估计, 能量模型E (L) 的方程为:
式 (2) 中Ec (lp) 是颜色能量函数, EN (lp, lq) 是相邻像素空间连续性能量函数, λc表示颜色分量Ec (lp) 在整个能量函数的相对权重, Np是像素p的相邻像素集合, 一般选取四连通域或八连通域。
式 (2) 中颜色能量函数Ec (lp) 表示像素p的类别是lp时, 其颜色特征为cp所需的能量。Ec (lp) 定义为颜色分量似然度对数的负值:
式 (3) 中Pr (cp|lp) 表示像素p属于类别lp时颜色向量为cp的概率, cp采用RGB颜色模型, 即cp= (Rp, Gp, Bp) T。
式 (2) 中空间连续性能量函数EN (lp, lq) 反映了相邻像素p和q的类别分别为lp和lq所需的能量。相邻像素之间并不是完全独立的, 具有相似特征的相邻像素更有可能属于同一类别。采用Ising模型定义EN (lp, lq) :
式 (4) 中δlp≠lq是克罗内克δ函数, dpq表示像素p和q颜色差别的度量, ε是常量参数, β是变量参数, 由β= (2〈||cp-cq||〉) -1确定, 这里〈·〉表示关于图像中所有相邻像素颜色特征的期望。为了减小计算量, 可以设置ε=0和β为常数。在文献[3]中作者使用了更简单的Ising模型, 忽略像素间颜色差异的大小, 使用常量。
能量函数EN (lp, lq) 可根据其定义直接由输入图像计算得到, 而计算能量函数Ec (lp) 需要首先估计颜色分量概率Pr (cp|lp) , 这涉及到对场景的具体建模。
图1是算法的系统框架。在任一时刻t, 算法首先根据建立的场景模型计算总的能量函数E (L) , 然后根据式 (1) 最优化E (L) 并且输出前景提取结果, 本文使用最大流算法[2]进行优化求解, 最后更新场景模型。
2 场景建模
本节介绍如何对场景进行建模, 即在线学习得到前景和背景的概率分布, 进而可以计算式 (2) 定义的能量函数。由于EN (lp, lq) 可根据输入图像直接计算得到, 因此这里只讨论基于颜色的场景模型。
2.1 背景颜色模型
传统的背景建模方法假设相邻像素是不相关的, 构造像素背景模型时仅使用像素特征信息, 为了得到更精确的背景模型, 研究融合相邻像素的特征信息, 定义一种混合式背景颜色模型:
式 (5) 中Prpix (cp|lp=0) 表示在像素p属于背景时颜色为cp的概率, Prreg (cp|lp=0) 表示像素p属于背景时在像素p周围区域观察到cp的概率, α∈[0, 1]是权重。
式 (5) 中Prpix (cp|lp=0) 采用经典的高斯背景模型构造:
式 (6) 中ωk, μk和Σk分别是第k个高斯函数的权重、均值和方差矩阵, K是高斯数, 一般取K=2~4。为了简化运算, 可假设Σk=σk2I。式 (5) 中Prreg (cp|lp=0) 可从以像素p为中心的局部区域学习得到。为使学习更具有一般性, 采用非参数的方法:
式 (7) 中Up是时刻t像素p的时空邻域像素集合:
式 (8) 中 (i, j) 是像素p的位置, l定义采样空间范围, Td定义采样时间长度。核函数KH (x) 定义为
式 (9) 中H是带宽矩阵, 可简化为H=h2I。
2.2 前景颜色模型
在时刻t, 像素p属于前景的概率Pr (cp|lp=1) 可由t-1时刻的检测到的前景结果学习得到。与区域背景模型的构造方式类似, 前景颜色模型定义如下:
式 (10) 中γ是一个极小常数, 核函数KH (x) 定义与式 (9) 相同, Vp是t-1时刻的前景像素集合, 即
式 (11) 中 (i, j) 是像素p的位置, w定义采样空间范围。
2.3 模型更新
检测得到运动前景后, 算法对前景和背景模型进行更新。对于区域背景模型和前景颜色模型, 由于使用非参数化方法, 因此仅需使用长度为lb的滑动窗口保存最新的样本。而对于参数化的单像素高斯背景模型, 本文采用和文献[1]类似的更新方式, 即
式中ρ是学习率, 当cp与第k个高斯函数匹配时, Mk, t为1, 否则为0。
3 实验结果及分析
为了验证算法在复杂场景下检测运动目标的有效性, 本文选取典型的复杂场景视频进行测试[3,5,6], 这些视频中包括摇晃树木、喷泉、摄像机抖动和光线变化等干扰。将算法与混合高斯模型[1]和Vibe模型[4]进行实验对比。所有实验结果均没有进行腐蚀和膨胀等后处理。
图2是场景中存在摇晃树木时检测到的运动目标。图3是场景中存在喷泉时检测到的运动目标。图4是场景中存在摄像机抖动检测到的运动目标。图中第一列是原始视频序列, 第二列是手工分割的结果, 第三列是本文算法输出的结果, 第四列是基于混合高斯得到的结果, 最后一列是基于Vibe算法得到的结果。在图2中, 背景中存在的摇晃树木很容易被检测为前景, 基于混合高斯和Vibe方法的检测结果中均含有大量误检。又由于运动物体占据画面较大面积且停留一段时间, 因此基于混合高斯和Vibe方法的检测结果中含有大量空洞。而本文提出的算法由于融合了空间连续性信息, 因而可以有效的抑制误检率和漏检率, 提取的前景比较完整。在图3中, 背景中存在喷泉, 基于混合高斯和Vibe方法的前景检测结果也含有大量误检和漏检, 而本文提出的算法效果要更好。在图4中, 视频中存在摄像机抖动, 抖动范围在14个像素以内, 比较三种方法得到的检测结果, 本文方法更加精确, 误检和漏检更少。
为了从量化指标上评估三种算法检测结果的好坏, 本文采用F值进行评价。F值是一种综合评价指标, 融合了正确率和召回率, 定义为:
式 (15) 中正确率是检测到的前景像素中正确的百分比, 召回率是所有正确的前景像素中检测到的百分比。一般F值越大, 说明结果越好。
图5是采用文献[3]标定的数据对三种方法在有摄像机抖动场景下测得的F值。由于视频仅在第275~490帧间存在前景, 因此图5也仅显示该时间段的F值。本文算法得到的曲线在其他两种方法得到的曲线之上, 说明检测结果更精确。表1是三种方法在该视频序列上测得的F值均值, 本文算法结果具有明显的优势。
图5三种方法在摄像机抖动视频中的F测试结果Fig.5 F-measure comparison of the three methods in scenes with camera motion
4 结论
研究了复杂场景中运动物体检测的难题, 分析了传统背景建模方法失效的原因, 通过融合像素邻域信息, 基于局部区域建模学习得到更精确的前景和背景模型, 并在马尔科夫随机场框架下, 将运动目标检测问题转化为能量优化问题, 进而得到全局最优解, 因而前景分割结果更精确。为了检验算法的有效性, 选取了典型的复杂场景视频进行测试, 并与传统的背景建模方法进行比较, 实验结果表明本文算法更优。
摘要:为了解决传统背景建模方法难以有效检测复杂场景中运动物体的难题, 提出了一种在马尔科夫随机场框架下, 基于区域建模的运动目标检测方法。该方法在学习像素前景和背景的概率模型时, 融合了相邻局部区域的信息;因而比传统的单像素建模方法更加精确。在马尔科夫随机场框架下, 运动目标检测问题转化为能量优化问题, 可以得到比基于阈值分割前景更精确的结果。在复杂场景视频进行测试;并与传统的背景建模方法进行比较, 实验结果表明本文算法更优。
关键词:运动目标检测,马尔科夫随机场,区域建模
参考文献
[1] Stauffer C, Grimson W.Learning pattern of activity using real-time tracking.IEEE Transactions on Pattern Analysis and Machine Intelligence, 2000;22 (8) :747—757
[2] Boykov Y, Veksler O, Zabih R.Fast approximate energy minimization via graph cuts.IEEE Transactions on Pattern Analysis and Machine Intelligence, 2001;23 (11) :1222—1239
[3] Sheikh Y, Shah M.Bayesian modeling of dynamic scenes for object detection.IEEE Transactions on Pattern Analysis and Machine Intelligence, 2005;27 (11) :1778—1792
[4] Barnich O, Van Droogenbroeck M.Vi Be:a universal background subtraction algorithm for video sequences.IEEE Transactions on Image Processing, 2011;20 (6) :1709—1724
[5] Toyama K, Krumm J, Brumitt B, et al.Wallflower:principles and practice of background maintenance.The Seventh IEEE International Conference on Computer Vision.Greece:IEEE Computer Society, 1999:255—261
[6] Li Liyuan, Huang Weimin, Gu I Y H, et al.Statistical modeling of complex backgrounds for foreground object detection.IEEE Transactions on Image Processing, 2004;13 (11) :1459—1472
复杂场景 篇2
近年来随着虚拟现实技术的发展,大规模场景越来越多地出现在游戏、城市漫游等应用中。由于场景规模的激增,其所具有的三角面片数量达到上千万甚至更多,导致在实时交互应用中, 实时绘制变得更加困难。于是如何做到实时渲染大规模场景中的可见部分,越来越受到人们的关注。
可见性计算是图形学中的一个基本问题,其主要目的是对于给定的场景和观察点,通过判断场景中物体的可见性,快速拒绝那些显然不可见的绘制元素,从而减少送入图形绘制管线的几何单元数量。根据可见性评估依据,可以分为视锥体剔除、背面剔除和遮挡剔除三种类型,如图1所示,其中前两种的判断方法比较简单,已有较为成熟的算法,而遮挡剔除方法由于要考虑同一场景中绘制单元之间的相互关系[1],所以更加复杂,成为可见性研究的重点。遮挡剔除根据视点区域可分为两类:针对视点的遮挡剔除和针对视点单元区域的遮挡剔除。前者判断两个物体之间相对于一个视点而言的遮挡关系;后者则判断两者间相对于一个连通区域(即所谓视点单元区域)的遮挡关系。而根据实时性可分为离线遮挡剔除和在线遮挡剔除两大类[2],其中离线算法的实时计算量较小,有利于提高绘制效率,但需要大量的预处理计算和额外的存储开销,而且不能处理动态场景。在线遮挡剔除算法不需要复杂的预处理计算,可以在漫游场景时动态计算可见性,但绘制过程的计算量较大,难以满足实时要求,因此硬件遮挡查询是长期以来人们最热切期待的图形硬件特性。该特性使应用程序可以询问3D API(OpenGL或Direct3D)如果渲染某个特定的物体,是否会画出像素。通过这个特性应用程序可以检查复杂对象的边界框是否可见;如果边界框被遮挡,那么应用程序就可以跳过那些物体的绘制,并且可以在完全动态的场景中工作。
文献[3]中提出了一种基于场景的四叉树组织的遮挡剔除相结合算法,能够根据成像需求选取不同分辨率的场景结点,并有效地剔除大量不可见部分以加快成像速度。文献[4]中提出了一种根据层次一致性的方式进行遮挡测试,每一帧从上一帧终止的节点开始进行从而避免查询先前可见的节点。文献[5]中利用可见性的时间一致性,通过统计物体前几帧的查询结果,对最近较少被遮挡的部分不进行查询测试,从而减少总的查询次数。文献[6]中提出一种复杂的基于启发式算法来减少查询队列的长度。另外还有一些文献在遮挡剔除中结合了LOD技术[7,8,9]。文献[3]的方法只是简单假设之前可见的叶结点在当前帧中仍然可见,因此立即渲染,而查询结果在下一帧中才更新;不可见的节点假设为仍不可见,但是算法在当前帧找回查询结果来显示其可见性变化。文献[4]的方法需要硬件校正来测量硬件参数,然后根据启发式的统计方法计算。针对以上问题,我们的新方法不依靠硬件校正并且将对外界参数的依赖性降到最低,它通过一种自适应的可见性预测,同时减少了查询次数和渲染状态的改变;同时使用一种新的排序方法,解决同类方法中出现的遮挡错误的问题。
1基于硬件的一致性遮挡查询
在OpenGL中,ARB_occlusion_query扩展执行GPU遮挡查询的命令,它的查询过程就是由GPU告诉我们最终在屏幕上可见像素的数量,像素在流水线中经过各种检测,例如视锥体可见检测、裁剪检测、alpha检测、模板和深度检测等,最终通过各种检测的像素是实际可见像素。D3D的遮挡查询命令D3DQUERYTYPE_OCCLUSION允许查询由任意序列的渲染命令所光栅化的片段数目。测试一个复杂场景或物体的遮挡的步骤如下:
(1) 初始化一个遮挡查询;
(2) 关闭写入帧和深度缓冲区并禁用任何多余的状态;
(3) 渲染复杂物体的一个简单近似——通常是包围盒,GPU计算实际通过深度测试的片段数目;
(4) 结束遮挡查询;
(5) 获取查询结果,即近似几何体的可见像素数目;
(6) 启用屏幕渲染和深度写入,如果查询的可见像素数目大于某个阈值(通常取0),则渲染整个物体。
第(3)步使用的近似应该简单才能加速整个过程,它必须覆盖至少和原物体一样大小的屏幕空间面积,以使遮挡测试不会把本来可见的物体变为不可见。因此近似应该渲染得很快,而且不以任何方式修改帧缓冲区。
这个方法利用了硬件加速渲染过程,但是第(5)步需要等待,直到查询的结果实际上变为有效,而等待一个查询可能导致长时间的延迟。因此,一种层次化一致性的遮挡查询被提出,它的核心思想在于,减少查询量并减少CPU空转和GPU的饥饿时间。只查询上次查询结果中的关闭结点(即可见叶子结点和不可见内部结点)。这么做的根据在于一个结点往往会保持上一帧的可见性,即所谓的时间相关性,对于可见叶子结点,直接渲染并且进行查询,对于不可见内部结点,进行遍历查询。每一帧中的查询结果保存下来提供给下一帧作为查询和渲染的依据。而以某种空间层次组织起来的场景又可以保证其空间相关性,一个不可见内部结点的所有子结点必然不可见,所以没必要继续遍历查询下去。这就减少了查询数量。在没有结果到来的时候,CPU可以继续遍历结点,利用这段时间或者把一个物体送往渲染管线渲染,或者发出一个查询。这就减少了CPU等待和GPU空闲期。
2改进的遮挡查询算法
2.1批量查询
为了解决以上算法中出现的问题,首先,我们采用批量查询的方法来减少因为改变渲染状态而带来的效率低下,这主要是关闭和开启深度缓冲和颜色缓冲带来的消耗。在数据结构上,采用双向查询队列,将查询过程用上一帧的可见性来组成两条队列,进行并行查询。在CPU空转且可见队列不空时,取出可见队列中的查询并执行。当不可见队列的数量到达某个阈值时执行不可见队列的合并查询。这样就大大减少了提交查询的次数和中间过程中渲染状态的改变如图2所示。
2.2遮挡物的选取
其次,在遮挡物体的选择上,我们采用了更简单的方法。快速选择几个最近、最大的物体或几何体,将其作为潜在遮挡物;然后将它们投影到屏幕空间中,并从中选择一组可能遮挡很大视野的遮挡物。然而,创建遮挡物时,不使用复杂的几何形状,而是使用完全位于每个遮挡物内的内接矩形。这样就可以使任何比遮挡物平面远且位于遮挡体内的物体都不予考虑,在使用层次存储结构表示大量物体时,这种方法的效率很高,因为这样可以一次性判断出大量物体被遮挡而不予考虑它们。其步骤如下:
(1) 遍历完全位于视锥体内且可能可见的所有物体,选择n个最近最大的物体;
(2) 将物体投影到屏幕空间中,并计算投影区域的面积。从中选择m个(m≤n)投影面积最大的物体。然后计算每个遮挡物的内接矩形;
(3) 将遮挡矩形加入到遮挡体中,然后根据遮挡体对所有物体和多边形进行检测,剔除所有被遮挡的几何体。
2.3遮挡错误结果的校正
基本方法的问题是包围盒不能写入深度缓冲区,因为存在一些特殊情况,这时候某个包围盒完全地遮挡另外一个包围盒,但是在遮挡包围盒里的物体事实上并没有挡住被遮挡包围盒里的物体,如图4所示。这样需要把某些几何体在前面渲染,不进行遮挡消除。
这些几何体起的作用是遮挡物,因此在最终屏幕上应该是大物体。在渲染这些物体后,可以开始进行较小物体的遮挡查询。但是这样反而使问题复杂化,并使遮挡查询变得无效,例如一个大物体本身有时可能完全被遮挡。因此需要另外的办法。
从某观察点看,一个物体被遮挡,而它的包围盒可见,当包围盒比物体大很多时,这时,物体每隔一帧就会被渲染一次,由于在这帧包围盒可见,因此需要在下一帧渲染其物体。然而在下一帧渲染的物体检测结果是不可见,又意味着需要在再下一帧渲染包围盒等等。
可以采用将物体排序:这个方法免去从被遮挡物中分出遮挡物的需要,因为作为遮挡物的每个可见物体,在渲染时已经被写入深度缓冲区。因此,在被遮挡物之前不需要渲染遮挡物(未经过遮挡测试的物体)。但是根据算法的要求,需要按距离把物体排序。
一旦有了在目前场景中需要渲染的全部物体(即通过视锥剪裁检测的物体),就应该把它们分成不透明物和透明物两组。因为我们能看穿透明物体(而且它们不能写到深度缓冲区),它们只能是被遮挡物而不可能是遮挡物。另一方面,不透明物既可能是遮挡物又可能是被遮挡物,这意味着应该将它们从前到后排序,并且在透明物之前渲染。然后,再将透明物从后到前排序,也在屏幕上渲染。
这个方法很好地利用了遮挡查询的功能,因为遮挡物首先被渲染,这使得许多其它物体变成潜在被遮挡物,其中一些渲染就可能由遮挡测试消除。所有不透明物一经被渲染,它们就自动成为所有透明物的潜在遮挡物。
3实验结果与结论
本文的实验平台的机器配置为Intel Core2 2.67GHz CPU,2GB内存,GeForce 9600 GT图形显卡,开发平台为MS-Visual C++ 2008,采用OpenGL作为3D API,漫游测试系统的窗口分辨率为800×600。图5为实验程序在两种模型场景下实时漫游的截屏效果。
表1是图5(b)中的城市场景模型应用不同渲染算法的实验结果比较,此场景的面片数量为3609702个。表2测试场景深度复杂性不断增加时算法的性能及动态物体对绘制效率的影响。虽然Cow模型的形状并不规则,不能成为很好的遮挡体,但由于场景总体以纵深方向放置,由绘制比率可以看出,实际绘制的面片数量还是比较少的,当场景的数量级不断增加时,深度复杂度变大,但是视点可见的物体数目变化不大,帧数基本保持在40 帧/s 左右, 表明算法的性能与绘制的数据量相关,而不与场景的数据量相关;同时大量动态物体的更新操作并不会对绘制帧数有较大的影响。
通过与相关算法的比较可以看出,本文的算法明显降低了渲染状态的改变次数和不必要的查询次数,有效地减少了遮挡查询中的等待时间,从而提高了整个场景的渲染速度。
4结语
在对一般的室外场景进行漫游时,还会遇到两个问题:一是结构无关,由于是按照从视点向远处的渲染顺序,这要求以某种形式对场景结构遍历并形成由近及远的队列,但是场景结构类型繁多,所以必须做成与场景结构无关的形式。二是动态切换,遮挡裁减算法对存在大量遮挡物,尤其是城市场景的效率提升比较显见,但是空旷场景往往得不偿失,所以必须有手动或者自动的切换机制来关闭裁减。在后续工作中,我们将进一步对本文算法进行扩展以满足以上两方面的要求,从而进一步提高复杂场景绘制的效率。
摘要:场景漫游中存在大量复杂模型时,由于其巨大的几何与纹理数据量,渲染速度会随之显著变慢。提出一种改进的大规模场景实时漫游技术,有效地利用了GPU的硬件遮挡查询技术。与以往的方法相比,通过一种改进的可见性分类查询队列,能同时减少遮挡查询次数和渲染状态的改变;并使用一种简单有效的排序方法,解决了同类方法中出现的遮挡错误的问题。实验证明该方法能有效提高复杂场景下漫游的渲染速度。
关键词:实时漫游,遮挡查询,复杂场景
参考文献
[1]张荣华.基于多分辨率遮挡剔除的复杂地形绘制框架的研究[J].系统仿真学报,2009,21(17):5462-5466.
[2]Staneker D,Bartz D,Strafler W.Occlusion-Driven Scene Sorting for Ef-ficient Culling[C]//Proceedings of the 4 th international conferenceon Computer graphics,virtual reality,visualization and interaction,2006:99-106.
[3]Zaugg B,Egbert P.Voxel Column Culling:Occlusion Culling for LargeTerrain Models[C]//Proceeding of Eurographics/IEEE Symposiumon Visualization 2001.Ascona:Springer,2001:85-93.
[4]Bittner J,Wimmer M,Piringer H,et al.Coherent hierarchical culling:hardware occlusion queries made useful[J].ComputerGraphics Forum,2004,23(3):615-62.
[5]Kovalcik V,Sochor J.Occlusion culling with statistically optimized oc-clusion queries[C]//Proceedings of the 13th Intemationa1 Conferencein Central Europe on Computer Graphics,Visualization and ComputerVision’2005,Plzen,Czech Republic,2005:109-112.
[6]Guthe M,Balázs A,Klein R.Near optimal hierarchical culling:Per-formance driven use of hardware occlusion queries[C]//EurographicsSymposium on Rendering 2006(June 2006).Akenine-Mller T,Heid-richW.The Eurographics Association.
[7]许云杰,胡事民.基于层次细节模型的遮挡裁剪算法[J].中国图象图形学报,2002,7(9):962-967.
[8]Andujar C,Saona-Vazquez C,Navazo I.Lod visibility culling and oc-clude synthesis[J].Computer Aided Design(S0010-4485),2000,32(13):773-783.
复杂场景 篇3
智能化生产是目前钢铁产业的迫切需求,第一家在生产线上启用钢坯检测识别的武汉钢铁大型轧钢厂正在计划利用此技术来提高智能化生产水平。生产线复杂场景条件下的钢坯字符目标定位是实现钢坯智能识别的关键,然而由于轧钢生产线的高温及复杂场景等恶劣因素的影响,钢坯端面字符图像常存在背景光照不均、目标字符信息微弱及淹没等现象,甚至由于钢坯在生产线上相互摩擦挤压造成端面粗糙不平、字符形变或断裂,使得钢坯端面字符定位与简单背景的光学字符定位和车牌号定位相比在研究方法上有着本质的区别,各种常规处理算法的稳定性和可靠性都将受到很大的影响。钢坯端面字符的有无、字符方位的不确定性,字符局部污染、残缺、粘连等各种因素的影响对钢坯端面字符定位方法的鲁棒性与准确性研究提出了新的需求。并且,生产线上流动的钢坯对实时的字符检测定位的时间进行限制,对字符的定位速度有了更高的要求。目前常用的字符定位方法有:Eun Ryung等[1,2]提出利用图像中的颜色分量的定位方法;Dai Ruwei等[3]提出的基于Niblack二值化算法及自适应边界搜索算法的定位方法;基于特征的字符定位算法及基于投影的定位算法[4]等。上述方法大多是基于车牌特征来研究车牌字符定位,因而会有一定的针对性和局限性。在对比度不稳定,光照环境及目标几何动态变化大的生产线复杂场景中,定位结果并不理想。
针对这些问题,为了从复杂场景中捕获目标区域,本文提出利用Mean Shift算法抑制背景,采用逐级滤波聚类方法自适应区分兴趣区域和非兴趣区域。其次,对提取的候选区域建立定量模型,加入统计决策算法完成筛选。研究结果表明,本文定位方法在生产线复杂场景中有着更好的稳定性和准确性,解决了复杂条件下字符定位的自适应性、鲁棒性、实时性与可应用性等关键科学技术问题。
1 基于生产线场景下的Mean Shift滤波算法
文中在运用Mean Shift滤波算法方面,提出区分度高、描述性强的核函数与窗口函数来抑制生产线场景下的背景。该方法能在保留完整字符区域的同时抑制较为复杂的背景,特别是在地面、钢轨、物体端面等纹理背景,能够在一定程度上接受字符的形变与断裂。
1.1 Mean Shift滤波算法
Mean Shift是由Fukunaga等人于1975年提出[5],是一种非参数密度梯度估计算法。Comaniciu等人[6]随后成功的把Mean Shift运用到特征空间分析中,拓展了算法的适用领域。陈兆学等人[7]在相应的文章中也给出了算法的收敛性证明。它的基本原理如图1所示,假设{xi,i=,1L,n}服从概率密度函数f(x),随机给定一个初始值x,通过算出相应的偏移均值向量mh(x)而一步步移动,直到收敛于最佳峰值点。
算法的数学模型:
式中:xir和xis分别表示图像采样点ix的颜色信息和该点在图像中的位置信息,xr表示为窗口函数中均值漂移点x的颜色信息,G(x)是一个核函数,w(x)≥0是一个赋值给采样点xi的权重,h系数表示窗宽大小,m系数控制着图像滤波的解析度。
由于考虑到生产线场景下钢坯字符区域边界会模糊,本文采取的核函数为高斯核函数,即:
式中:α是归一化常量,G(x)核的特点是其核值的范围为(0,1),这会使计算过程变得简单,另一方面它会对采样点进行归类,把不同像素差|xir-xr|对mh(x)的计算贡献不同的因素考虑在内。当像素差值|xir-xr|过大时,G(x)的值会趋向于0,反之则趋向于1,这样就可以有侧重的筛选样本点,对像素差变化较大的采样点进行抑制,有利于保持较好的字符边界特性。权重函数w(x)如式(3)所示,式中β是归一化常量。
它的作用是辅助核函数G(x),把距离因素也考虑在内,即离均值漂移点xs越近(|xis-xs|小)的采样点xis对mh(x)的计算贡献要比距离远(|xis-xs|大)的样本点贡献大。
1.2 采样点的设置
在运用Mean Shift算法的窗口函数时,采用一个边长为h的正方形窗口遍历图像中的每一个像素,不同的窗宽得到的采样点也会不同,从而使滤波结果也会不同。当窗宽过大时,参与的采样点过多,均值漂移的程度也会过大,容易导致图像失真。但当窗宽过小时,参与的采样点过少,均值漂移的程度也会大大降低。这里的矛盾在于窗宽和采样点之间不能同时满足要求。一般采样点的选取为窗口面积下的所有样本点,同时相邻采样点之间的空间及色彩信息比较接近,这样不仅导致窗宽和采样点成正比关系,而且导致采样信息比较局限,在对比度低的钢坯字符图像中容易导致错误均值漂移。因此,本文采取的方法如图2所示。利用隔点采样的方式,通过跳点、对角取点的方法,在取相等数量采样点的前提下改变窗口大小,让窗口信息更加具有代表性。
1.3 算法实现
Mean Shift是一个迭代收敛过程,即利用窗口函数来遍历图像,以每个当前点为中心,对属于窗口函数范围内的点进行采样,然后得到相应的样本集合。每个样本集合计算出相应的mh(x),直到收敛后输出mh(x),记为滤波后图像像素。在实际生产线上的系统运算中,一般采取差值门限使其在一定范围下就直接输出均值漂移像素值,无需等到理论上收敛后再进入下一步运算。
在Mean Shift滤波的基础上,根据文献[8]中基于连通域算法的区域测量的思想,按照一定的标号规则扫描图像,得到相应的连通域数组N[i]信息,其中包括每个连通域数组的位置信息,面积信息,形态比例信息等。与文献[8]不同的是本文用区域生长来分割图像,区域生长的分割方法是把像素的对比度考虑在内,窗口函数同样采用隔点采样的方式把对比度相近的像素聚类标记,根据目标连通域的特征把不符合条件的连通域数组N[i]去除,如像素点过少或过多、靠近图像边缘、过长或过宽的连通域数组。
2 钢坯字符定位
2.1 多级分割的滤波与聚类处理
图像二值化可以简化图像信息,寻找合适的阈值是其核心问题。在分割钢坯图像中,一般采用基于最大类间方差准则的局部递归分割算法原理[9],即首先用最大类间方差方法对整图分割,大于门限Th的点集S保持原像素不变,小于则置为0。然后,判断是否符合递归分割的终止条件,如果不符合,则对S继续用最大类间方差准则进行分割,直到满足终止条件为止。
然而生产线复杂场景中的图像一般有许多背景比字符区域显的更亮,比如窗户,物体反光区域等,这会使阈值门限Th在循环过程中快速向这些概率密度和突变像素大的亮色区域靠拢,从而导致阈值门限Th过快循环增长。本文在通过Mean Shift的滤波处理后,将循环过程中的阈值门限Th提前计算并存储于一维数组T[i],i表示循环次数,当Th停止增长时循环终止,记录循环总数n。然后采用逆向取值的方式对图像进行检验,如果以T[n-1]为阈值的二值图像中无法检测出兴趣区域,那么将大于门限T[n-1]的点集S暂时屏蔽,不计入最大类间方差的统计中。判断出无法检测兴趣区域时,立即更新一维数组T[i],反之则继续沿用原有T[i]。需要注意的是如果数组T[i]-T[i-1]变化量大于一定值,则需要插入一个新的数组成员(T[i]+T[i-1])/2来防止过分割。然后再按照一般正向取值方式依次对图像进行多级分割处理,把区域生长的连通域聚类特性作为分割终止条件依据(聚类特性会在标定候选区域中提及)。
2.2 提取目标区域
在拥有合理的阈值门限数组T[i]后,需要提出有效的检测兴趣区域方法,才能作为递归分割终止条件并输出目标区域位置。
2.2.1 标定候选区域
通过对钢坯图像的分析,不难发现钢坯中的字符串连通域会成线性排列。把与水平线角度偏差小于20°的水平钢坯字符串归结为水平聚类,同理可对垂直钢坯字符串归纳为垂直聚类,聚类这些大小、左右间距、位置属性相似的连通域,并对其进行标记,每一个聚类数组都会有自己相应的成员个数number(x),通过比较number(x),选出符合条件个数的聚类数组并加入水平/垂直方向标记,完成标定候选区域。此方法的好处在于它不受复杂场景噪声的干扰,具有良好的稳定性,适合在复杂场景中寻找兴趣区域。
在生产线上由于摩擦和挤压,钢坯端面字符难免会出现字符断裂的情况,本文采用自适应选取窗口形状的方法,分别独立对水平/垂直做闭运算,即对水平方向做竖向矩形窗口闭运算,反之做横向矩形窗口闭运算,修整后图像断裂处可以很好的连接在一起。
2.2.2 筛选候选区域
钢坯图像通过多级分割可以得到不同的二值图,每一级分割阈值都保存在阈值门限数组T[i]中,不同级的分割图又产生对应的候选区域,所以筛选候选区域的任务可以分为两类,一类是在同级分割图中去除伪候选区域,另一类是在邻近级分割图中挑选最佳目标区域并输出终止循环命令。为了区分兴趣区域和非兴趣区域,本文加入权重系数来统计每个聚类数组中连通域的各个特征方差,其中包括区域的间距w、平均高度h、长宽比r、像素占有率v,如式(4)所示:
式中:a、b、c、d为权重系数,x、y、n分别表示聚类数组个数、聚类数组中连通域个数和总数,w(x,y)和分别表示聚类数组中连通域宽度和平均宽度。根据统计F(x)数据差异依次做决策判断,筛选出钢坯字符串区域。
2.3 精准定位
上文标定和筛选出的钢坯字符串区域是钢坯端面信息中的钢坯号字符区域,端面信息除了包含钢坯号还会有附加字符信息钢流号、钢种号,并且端面信息总体还会带有一定的倾斜。附加字符信息基本出现在钢坯号上下两侧,在筛选出钢坯号后需要考虑上下一定区域内是否存在字符,如果存在则要加入定位区域内。本文对钢坯号上下一定区域加入局部投影方法,由于基本坐标已经确定,可以充分利用投影不变性,比较水平/垂直波形特征来判断是否存在字符。
对于带有倾斜字符的钢坯端面,采用最小二乘法拟合字符排列的线性趋势并与水平/垂直线比较得出待定旋转角度θ,然后自适应选择钢坯号字符区域左下点(a,b)为中心,根据式(5)得到校正定位图像。
其中:(x0,y0)为校正图像坐标,(x1,y1)为原图坐标,随后将校正定位图像按各自区域切分成独立区域,以便完成钢坯字符识别工作。
2.4 定位流程
定位流程图如图3所示。
3 实验结果与分析
本文定位方法在计算机(2.66 GHz,0.98 GB)上用VC++6.0编程,用灰度CCD相机(相机型号:MVC900DAM-GE30-01Y23)对生产线复杂场景中的钢坯图像进行了定位实验,并对定位实验结果进行了字符识别测试。
实验一:生产线复杂场景抑制背景处理。图4(a)是一幅正在生产线上运行的钢坯图像(分辨率:1 380×1 028),图4(b)是采用“中值滤波”和“区域分割”算法的抑制背景结果图,图4(c)是采用“Mean Shift滤波”和“区域分割”算法的抑制背景结果图。通过图4(b)和图4(c)对比可以看出,采用相同“区域分割”算法,运用文中的滤波方法可以达到较为理想的效果。
实验二:多级分割滤波处理。图5(a)是分辨率为1 380×1 028的灰度生产线场景图像,图6(a)是分辨率为1 380×770的生产线场景图像,他们显示了在图像Mean Shift滤波过后逐级分割滤波的主要过程,同时表1显示了他们在多级分割滤波过程中阈值门限T[i]更新前后增长情况对比。其中表1中的图A和图B分别代表为图5(b)和图6(b)。从表1的数据可以看出,改进运算能自适应的执行更新阈值门限T[i]任务,当T[n-1]为阈值的二值图像中检测出兴趣区域时就取消更新阈值门限T[i]任务,图A便是此情况,反之就如同图B更新了阈值门限T[i]。通过实例证明改进运算可自适应的防止阈值过快增长而导致失去最佳阈值问题,保证一维数组T[i]中含有最佳阈值,而且此方案的运算时间与原先相比几乎没有增长,但提取最佳阈值准确率大大提高。
实验三:标定候选区域。图7(a)为图像滤波后利用字符的大小(连通域长、宽、像素个数)、形状(长宽比、字符像素占有率)等特征对较为明显的非字符区域进行去噪,图7(b)显示了图像去噪后标定候选区域结果图。图7只显示了图6标定候选区域的过程图,图5同理。经文中算法聚类数组成员个数number(x)门限为4时,可以完成标定候选区域。
实验四:筛选候选区域。比较表2中兴趣区域与非兴趣区域(形态相似)的特征方差期望可知,间距和平均高度方差期望的对比情况较为明显,所以式(4)中权重系数a,b的选取范围应在0.9~1.0之间,而c,d的选取范围应在0.6~0.7之间。通过选取有效地特征值门限可对候选区域进行筛选,即将超出一定范围的F(x)值去除,然后筛选出最小值,从而寻找出目标区域。图8显示了图5和图6标定候选区域后筛选候选区域结果图。
实验五:钢坯图像定位结果对比。图9是图5定位结果图,图10是图6定位结果图。由于传统投影定位方法直接或间接的依赖坐标基准的选取,而生产线复杂场景中的字符串目标区域通常被噪声包裹在随机方位中,常规的坐标基准会使目标投影信息丢失,进而容易产生错误定位,如图9(a)和图10(a)字符区域基本定位不出来,本文定位方法为图9(b)和图10(b)。对钢坯现场随机120场景图像(分辨率:1 380×1 028)用本文定位方法与传统投影定位方法进行定位正确率及运行时间对比,实验测试图包括:背景粗糙及字符腐朽、倒立字符、90°旋转字符、粘连及模糊字符、残缺字符,附加随机字符(应钢厂所需,有时端面字符信息会随机加入钢流号字符、铸机号等),如表3所示。通过实验对比可知,文中方法在生产线复杂光照场景中具有更好的稳定性与准确性。
实验六:字符识别测试。图11是用文中方法定位后的切分结果图,图12是钢坯字符识别结果图,表4为实验5中120张场景定位图像的识别测试。通过识别测试实验可知,用文中方法对生产线复杂场景的钢坯图像进行定位过后,钢坯的识别工作(切分、识别)能够顺利进行,如图12所示得出了准确的识别结果,由表4可知字符识别运行时间满足实际工程需要(实际工程中钢坯在钢轨上的有效检测周期为10 s)。
4 结论
本文针对生产线复杂场景中钢坯端面字符串方位复杂多变等特点,将Mean Shift滤波方法和多级分割的滤波与聚类处理运用到生产线场景下钢坯图像定位中,通过提取区分度高、描述性强的特征进行钢坯端面字符定位。实验结果表明,本文定位方法准确率较高,参数少,可以自适应寻找兴趣区域,能适应多数不同场景,对字符形变大小、镜头焦距长短和倾斜角度要求较小。定位结果图像保留原有字符特征,并拥有各自字符的位置和形态特性,为完成钢坯智能识别工作提供了关键技术,提高了识别率。
参考文献
[1]Lee E R,Kim P K,Kim H J.Automatic Recognition of A Car License Plate Using Color Image Processing[C]//Image Processing,ICIP-94,IEEE International Conference,Austin,T X,Nov13-16,1994:301-305.
[2]Yen J C,Chang F J,Chang S.A New Criterion for Automatic Multilevel Thresholding[J].IEEE Trans on Image processing(S1057-7149),1995,4(3):370-378.
[3]DAI Ru-wei,LIU Cheng-lin,XIAO Bai-hua.Chinese Character Recognition:History Status,and Prospects[J].Frontiers of Computer Science in China(S1673-7350),2007,1(2):126-136.
[4]杨卫平,李吉成,沈振康.车牌目标的自动定位技术[J].中国图象图形学报,2002,7A(8):835-839.YANG Wei-ping,LI Ji-cheng,SHEN Zhen-kang.Technique of Automatic Orientation of Car License Plate Targets[J].Journal of Image and Graphics,2002,7A(8):835-839.
[5]Fukunaga K,Hostetler L D.The estimation of the gradient of a density function with applications in pattern recognition[J].IEEE Trans on Information Theory(S0018-9448),1975,21(1):32-40.
[6]Comaniciu D,Meer P.Mean shift:A robust approach toward feature space analysis[J].IEEE Trans on Pattren Analysis and Machine Intelligence(S0162-8828),2002,24(5):603-619.
[7]陈兆学,赵晓静,聂生东,等.Mean shift方法在图像处理中的研究与应用[J].中国医学物理学杂志,2010,27(6):2244-2249.CHEN Zhao-xue,ZHAO Xiao-jing,NIE Sheng-dong,et al.Research and Applications of Mean Shift Method in Image Processing[J].Chinese Journal of Medical Physics,2010,27(6):2244-2249.
[8]李仪芳,刘景琳.基于连通域算法的区域测量[J].科学技术与工程,2008,9(8):2492-2494.LI Yi-fang,LIU Jing-lin.Measurement for Area Based on Connected Regions Arithmetic[J].Science Technology and Engineering,2008,9(8):2492-2494.
复杂场景 篇4
当前大多数人体数据集中,人体动作往往采集于无噪背景下,每个视频片断往往只包括一种动作(比如快跑或慢跑)和一个人体,且人体在整个视频片断中只有这一种动作。然而,在实际的监视场景中,背景往往带噪,监视系统必须要从人群中检测出感兴趣的目标人体动作。
在背景带噪或人群部分遮挡等复杂场景下,进行人体准确定位的难度很大[1,2]。若没有人体交互,从复杂场景中修剪一个对象往往会导致严重的错位或偶尔的漂移,此外,还可能存在时域模糊性。真实世界中的大部分动作只发生一次且持续时间很短。而人体动作是连续的,动作属于同一种类别但速度可能有巨大差异,所以难以确定这些目标动作的起点或终点,以及真实世界中每个动作的持续时间。另外,未检测到快跑和慢跑等重复性动作在时域的模糊性,但这些模糊性可能严重影响捡东西、拍照、按下电梯按钮等非重复性动作的检测性能。这些空间和时间模糊性大大增加了动作检测的难度。
为了克服这些模糊性,本文提出一种基于多实例学习(MIL)的支持向量机(SVM)处理时域和空域模糊性问题。图1给出了多实例学习的主要思路。虽然不能精确知道目标动作的发生位置和时间,但是可以估计出一个包括多个潜在位置和时间片的“包”。这个包可以是正性包(目标动作发生于包中的某一位置),也可以是负性包(目标动作并未发生)。正性包中肯定有至少一个正性实例,而负性包中的所有实例均为非动作实例。这种多实例方法既可识别目标动作,又可以确定动作的准确位置和时间段。
最上:尺度和位置的空间模糊性;最下:时域上的时间模糊性。不同颜色的方框表示不同的实例候选。
1 相关工作
针对人体动作检测问题,文献[3]提出一种累积方向-数量级光流梯度直方图的人体动作特征表示方法。该方法首先利用Horn-Schunck光流算法计算图像光流,然后将光流矢量按照不同的方向-数量级进行直方图统计,得到单帧图像的方向-数量级的光流梯度直方图,最后将单帧图像的直方图特征在时间维上进行累积来表示整个视频动作的特征。文献[4]提出一种结合全局的剪影特征和局部的光流特征的混合特征,并用于人体动作识别。该算法对于Weizmann数据库中的动作可以达到100%的正确识别率。文献[5]提出一种基于主题模型的人体动作识别方法,该方法首先提取时空兴趣点来描述人体运动,然后提出使用慢特征分析算法计算兴趣点梯度信息不变量最优解,最后使用概率潜在语义分析模型识别人体动作。文献[6]引入压缩感知和稀疏表示理论,同时解决人体活动监测中的动作识别和数据压缩问题,探索如何在达到一定动作识别率的同时降低传感器节点的能耗。
另外,文献[7]提出通过提取密集采样的局部视频补丁检测出背景比较简单的视频的不规则动作。这种方法难以对复杂场景下的非重复性动作执行对准操作。文献[8]提出体积特征,以便将时空形态与分割后的视频片断关联起来。与文献[9]基于流的关联算法相结合后,再利用手工分割获得的动作样本即可检测出视频中的多种动作。然而总的来说,以上方法都还存在着不足:高度依赖人体部位的跟踪,如果出现遮挡或环境变化等复杂因素,将无法得到完整的运动信息;当存在时域和空域模糊性时,人体动作检测精度较低;无法准确获取动作的时间段或动作意图模糊。为了解决以上问题,文中提出了一种面向复杂背景下的人体动作检测方案,并通过仿真实验验证了该方案的有效性。
2 系统概述
为了采集数据构建动作分类器,本文采取手工方式标识视频序列,以获得训练样本。只需明确人体头部的粗略位置以及动作发生地点的近似帧即可。标识过程结束后,按照帧内的不同位置/尺度及时间线上的不同起始/结束帧号,对标识后的视频序列做进一步修剪,于是每个动作(称为包)将生成多个段(称为实例)。这些阳性和阴性包将提供给本文学习算法以训练动作检测器。其中,每个正性包拥有一个目标作为目标动作,而负性包不含。
在测试阶段,本文将处理人体动作在时域和空域上的位置模糊性。本文系统允许短序列中的多个候选作为输入,并推断目标动作是否发生。它并不需要准确的跟踪器或人体检测。相反,可以利用人脸检测器或概率检测器的输出作为人体估计。同时,它也不需确切知道人体动作的起始或结束帧。相反,它可以考虑多种概率,并估计动作的实际发生位置。
为了获得区分性特征进行动作检测,本文首先考虑动作特征,以便将目标动作与其他动作区分开。因为传统的光流容易受到噪声影响,所以本文采用运动历史图像(MHI)特征[10],该特征积累了多个帧的运动信息。在本文系统中计算每个实例的MHI特征,然后将其下采样为10×10像素尺寸,即特征向量长度为100。
本文提出将运动和外观信息结合起来,以便提高人体运动的区分性能。采用了两种外观特征,并与MHI特征相结合,作为运动识别时的高度区分性特征。图2给出了这些特征的多个示例。第1种外观特征是前景图像(FI),通过与背景相减获得;第2种外观特征是定向梯度特征直方图(HOG)[11],它可以描述边缘和拐角的方向和大小。已知一个实例的图像区域,FI特征可正规化为10×10像素。为了获得HOG特征,图像区域被分为3×4=12个子窗口,然后使用梯度方向的8个容器计算直方图,为每个实例生成一个96维HOG特征向量。运动特征(MHI)和外观特征(FI和HOG)可从不同方面描述人体动作,且互为补充。外观特征可以描述运动期间人体的空间形态,而运动特征主要是描述正在运动的人体部位的方向和强度。
3 SMILE-SVM算法
下面介绍如何利用多实例学习解决动作检测在时域和空域上的模糊性,提出了一种模拟退火多实例学习支持向量机(SMILE-SVM)算法。已知一组输入模式x1,x2,⋯,xN分组到B1,B2,⋯,BM中,且对于已知索引集合Im⊆{1,2,⋯,N}有Bm={xi:i∈Im}。每个包Bm关联一个标识Ym,Ym=1表示包是正性包,至少有一个实例xi∈Bm是类别中的阳性样本。相反,Ym=-1表示包是阴性包,所有实例xi∈Bm均是阴性样本。将每个实例的标识表示为yi,则有:如果Ym=-1,则对i∈Im有∀yi=-1,其中m=1,2,⋯,M。否则,如果Ym=1,则对i∈Im,∃yi=1。基于SVM的多实例学习可阐述为如下的目标函数最小化:
条件:
其中,ξi表示估计误差,w确定余量的尺寸。传统的SVM属于二次优化问题,则式(1)最小化是式(2)约束下的混合优化问题。因为yi的可能选择数量太多,所以该目标函数难以直接最小化。
SMILE-SVM算法的目的是在增加包识别率的同时实现分类器容限最大。因为分类容限的尺寸可由衡量[12],所以定义一种新的目标函数:
式中:nc表示包分类的正确率;k表示容限指标权重的控制参数,部署时将k设为0.5。SMILE-SVM采用一种参数T(称为温度)控制新的评分S被接受的概率。在学习过程的早期步骤中,T要设置的足够大以便候选解能够转换为得分较低的另一种状态。在学习过程中,T逐渐下降,以便降低切换到S较低的其他状态的概率。当T接近0时,系统将会收敛。
SMILE-SVM采取迭代方式寻求最优得分Sopt。在第t次迭代时,SMILE-SVM生成一个相邻状态{yi}*,然后提供给下次迭代以便生成一个新的SVM分类器。为了使新分类器的决策边界与之前的边界类似,引入随机微小扰动以生成一个新的状态。
式中:Itrand表示第t次迭代的随机集合;|fit|表示由(wt,bt)估计的分类置信度。生成相邻状态{yi}*之后,SMILE-SVM就会决定是否将其作为下次迭代的训练集。首先,验证式(2)中的约束,如果式(2)满足,则系统将根据式(3)及{yi}*训练出来的分类器计算得分St。此时,通过随机数和St的比较决定将{yi}*作为下次迭代时状态{yit+1}的概率。如果{yi}*未被接受或式(2)未被满足,则将生成另一个相邻状态。上述步骤算法如下:
4 仿真实验
本文通过两组实验评估SMILE-SVM算法的有效性。第一组实验使用CMU人体运动数据集[8]。第二组实验考虑一种真实应用,以检测超市中的客户是否有意从货架上购买商品。
4.1 CMU运动数据集的结果
CMU运动数据集中有5种类型的人体运动,包括人体跳跃、捡东西、双手挥动、单手挥动及按下电梯按钮。所有视频的持续时间约为20 min,包括大约100种目标运动。视频的分辨率下调为160×120像素。人体运动的方式有较大差异。背景带有噪声,且目标运动有时被其他人体遮挡。所有这些变化导致时域和空域存在较大的模糊性。评估时的训练/测试配置与文献[8]相同。一个人体进行的一个样本序列用于所有5种动作的训练。3~6个其他人体每种动作进行多次测试。采用一对多策略分别训练和测试5种人体运动检测器,于是在训练阶段有1个阳性包和4个阴性包,在测试阶段的阳/阴性包的分布类似。
图3给出了使用不同特征进行动作检测的性能比较结果。从图3中可以发现,综合使用运动和HOG外观特征(MHI+HOG特征)后的性能优于其他种类的特征。
表1比较了文献[8]中结果与本文算法的性能。对于所有运动,SMILE-SVM均显著优于文献[8]中的结果,惟一例外便是双手挥舞动作,这也证明了基于运动和外观特征的SMILE-SVM算法的有效性。
4.2 真实场景的结果:超市监测系统
为了进一步验证本文算法的有效性,在真实场景下对其性能进行测试,以证明其在监测应用场景下的作用。目标运动是拥挤的超市中客户是否有意从货架上购买货物,这种类型的运动包括使用一只手或一双手指向或触摸某种商品或者弯腰接近/观看某种商品。超市希望对这种运动进行跟踪以便知道客户的意图。该数据库采集于典型的超市场景下,在早晨和中午时间比较拥挤。
本文构建了一种目标运动检测系统,如图4所示。在该系统中,对卷积神经网络(CNN)[13]进行训练以便检测每一帧中的二维头部候选。根据头部检测器的输出,本文运动检测算法利用CNN人体检测器输出的视频帧中每个人体头部矩形的位置和尺寸作为输入,从空间邻域内这些头部位置周围及时间邻域的相邻帧中提取出不同位置的多个窗口,然后为这些实例提取视频特征。以SMILE-SVM算法的识别结果为基础,如果估计概率超过经过学习的置信度阈值,则检测到目标运动。如果在时间线上的相邻区域内检测到两个运动,则将其融合以形成层次更高、时间更长的运动。该系统将运动检测与三维跟踪器(比如将立体相机二维跟踪结果相融合后产生的结果)结合起来,可获得一些具体信息,比如货架上哪个部位最能吸引客户的注意力。这种信息对商家非常有用。
使用20 min左右时长的视频作为训练视频,40 min时间的视频用作测试视频,包括大约150个阳性运动样本。在时域上,每个运动分割为运动期间随机点上的多个小片断,每个片断的尺寸为10帧。在空域上,包含人体头部和身体的运动区域按照12种不同尺寸和尺度进行修剪。上述每个时空样本成为一个实例,且所有实例与包中的一个运动相关联。这一过程将分别在训练和测试数据集中生成约50个阳性包(包括25 000个实例)和100个阳性包(包括50 000个阳性实例)。对步行和站立等不感兴趣的其他阴性运动(阴性运动样本),只有10%左右(382个阴性包)被随机采样,以便获得数量类似的训练和测试阴性实例(34 000个和79 000个)。
为了保证比较的公平性,对不同算法使用相同的运动特征(MHI)。图5给了3种算法的精度/召回率曲线。可以发现,多实例学习算法的性能远优于经典SVM算法。此外,文献[2]中的算法不如本文算法,因为本文模拟退火搜索策略陷入局部最优值的概率较小。
通过将运动特征和外观特征结合起来后,本系统的性能得到进一步提升。如第2节所示,FI和HOG特征提供的信息与运动特征互补,因此本文分别将运动特征与FI和HOG特征相结合,构建了新的特征。图6给出了基于3种特征的性能:只有运动特征(MHI),两种混合特征((MHI+FI和MHI+HOG)。可以发现,使用混合特征的召回率比只使用MHI平均高出近20%(当精度率为0.6时)。
为了测试本文运动检测器的通用性,将其用于不同时期、不同时刻在超市中采集的新的视频序列。新视频采集于客户运动更密集的高峰时间。新的测试视频包含390个目标运动构成的阳性包和591个非目标运动构成的阴性包,大约包括124 000个阳性实例和166 000个阴性实例。
图7分别给出了采用MHI+FI和MHI+HOG联合特征时,原始测试数据和高难度测试数据的精度/召回率曲线。此时,MFI表示运动(MHI)和外观(FI)联合特征,MHOG表示运动(MHI)和外观(HOG)联合特征。可以发现,由于数据不同,算法总体性能略有下降。然而,这种误差并不明显,算法在新数据集上的性能仍然较好。
如前文所述,非运动包中的所有实例为阴性样本,运动包中只有部分实例被识别为阳性样本。利用这些阳性实例,不仅可以识别出目标运动是否发生于包中,还可以估计出该运动的位置和时间。图8演示了部分样本的运动检测结果,其中阳性示例用红色方框表示。鉴于本文实例的构建方法,即使人体被部分遮挡(见图8(c)),本文算法仍可以检测出目标运动及其时间和位置(见图8(a)和图8(b)。
5 结语