在工业产业飞速发展的今天, 用计算机代替人力完成对现场情况的记录与分析已经越来越必要。传统的视频监控系统主要由人工对采集的图像信息进行分析, 工作量非常巨大。所以, 由计算机来代替人对这些信息进行分析和记录是必要且明智的选择。本文致力于解决物流仓库环境下, 运送轨道上的多目标跟踪问题。
在工业现场的智能视频监控中, 仓库物流管理是一个新兴而复杂的领域。工业现场的物流仓库环境复杂, 不仅背景中存在大量相似的物体, 而且运动轨道上的跟踪目标也很相似, 加上跟踪过程中目标的旋转、大小变化以及相互遮挡等因素, 大大增加了工业现场多目标跟踪的难度。随着三十多年众多学者的不断探索和研究, 大量的跟踪算法被提出, 解决了跟踪过程中遇到的各种问题和挑战, 包括目标突然快速运动、外观变化、尺度变化、光照变化、局部遮挡或者短时间全部遮挡、背景复杂的干扰等[1]。
一般地, 跟踪算法主要包括目标建模、搜索策略和目标更新, 其中跟踪算法的突破主要集中在目标建模和搜索策略方面[2]。在计算机视觉技术快速发展下, 外观模型的建立方法层出不穷。如文献[3]提出的利用图像分割方法, 将被跟踪区域分割成多个超像素块, 结合SIFT特征, 形成词汇本, 并计算每个词在词汇本上的权值, 作为目标的外观模型。实验证明, 该方法能有效地提高跟踪准确率, 但是复杂的计算过程, 使算法无法满足实时监控的要求。
对于目标搜索策略, 现有的多目标跟踪技术大都使用粒子滤波来搜索最佳匹配[4]。粒子滤波采用蒙特卡洛法采样观测样本, 使得算法不易陷入局部极小值, 但是随着目标状态空间的增加, 需要采样大量的粒子才能保证跟踪的精度, 而对每个粒子的计算需要消耗大量的时间, 很难满足实时性的要求[5]。光流法一直被认为是一种计算复杂度较高的方法, 且很少被应用在实时监控中。然而, 文献[6]提出一种稀疏光流快速计算的目标跟踪算法, 克服了实时性差的问题, 能很好地适应于目标遮挡情况并且能跟踪快速运动目标, 但跟踪准确率还有待提高。文献[7]提出一种SVM核函数的结构化输出策略, 该方法利用支持向量机的自由性以及输出空间的泛化能力, 构成一个有效的结构化输出框架, 并加入维数限制机制来防止SVM向量的维数灾难。实验证明, 该算法跟踪效果优于当今最先进的检测跟踪算法。然而, 该算法的缺点在于时间复杂度过高, 无法满足实时监控系统的需要。
Camshift (Continuously Adaptive Mean Shift) 算法是一种基于图像颜色特征的目标跟踪算法, 由于具有目标形变不敏感性以及实时性好等特点近年来倍受青睐[8]。然而传统的Camshift算法在跟踪过程中没有利用跟踪目标的运动信息, 在周围环境干扰较强或者存在遮挡的情况下, 很难对目标进行准确跟踪[9,10,11]。粒子滤波与Camshift算法的结合, 可以加强跟踪的鲁棒性, 但粒子滤波的难点在于分布的选择及粒子退化的问题[12,13]。Deilamani等人用多特征融合的方法对Camshift跟踪算法进行改进[14], 实验结果表明:多特征融合有效地提高了复杂环境下Camshift算法的跟踪准确率, 但算法的复杂度过高, 不能满足实时跟踪系统的需要。
为解决物流仓库环境下, 运送轨道上的多目标实时跟踪问题, 本文在传统的Camshift跟踪算法上加以改进, 选用HSV颜色空间, 减少光照带来的影响。算法主要思想是利用跟踪目标特征的颜色直方图对目标概率密度进行快速估计;在此基础上利用背景建模对目标概率密度进行滤波, 减少静止背景中相似物体对Camshift算法的影响。在Camshift算法迭代搜索过程中, 将每次迭代搜索结果与速度信息加权, 计算出优秀的搜索结果。在多目标跟踪过程中, 根据搜索的顺序, 将前一个目标的搜索得出的区域在概率密度图中置0, 以减少对后面搜索的干扰。通过上述过程的改进, 使得算法不仅能处理背景复杂情况下的目标跟踪问题, 还能对多个相似目标同时进行有效准确跟踪。
Camshift算法是根据连续图像颜色动态变化的概率分布来进行目标搜索的一种方法, 用于对彩色运动目标进行的视觉跟踪。基本思想是根据目标的颜色特征在当前视频图像帧中搜素运动目标所在的位置和大小, 在下一帧图像中, 用运动目标当前的位置和大小初始化搜索窗口, 不断重复上述过程从而实现对目标的连续跟踪。当跟踪彩色目标时, Camshift算法从图像的颜色直方图中获取颜色概率分布[15]。由于Camshift算法是计算局部最优解的算法, 它不依赖于跟踪对象的具体模型, 对噪声干扰不敏感, 同时其计算简单、效率高, 因而具有很强的鲁棒性和良好的实时性。
针对物流仓库运动轨道的特点, 本文设计出有效的多目标跟踪算法, 对轨道上的目标进行跟踪。首先, 运动区域图与概率分布图的融合有效地减少了背景中相似物体对跟踪结果的干扰。但是场景监控中, 传送带上运动的多个物体之间的相互干扰还没有解决, 所以在Camshift算法搜索结果决策时, 加入运动方向信息, 减少搜索结果向运动反方向移动的可能性。多目标搜索过程中, 通过在概率密度图像中, 将已搜索目标的区域置0, 减少相似目标之间的相互干扰。图1为算法流程图。
背景建模的任务是通过对一段连续的视频图像序列进行统计和分析, 从中提取相对不变的像素信息, 并将这些像素信息作为整个视频的参考背景。本文采用统计法提取的背景。为了减少光照带来的影响, 本文使用HSV颜色模型的H分量值作为像素值。
统计提取法的基本假设是在视频序列中, 运动物体不会始终在某个位置保持不动[16]。定义相关图像序列的像素值为I (x, y, t) , 其中 (x, y) 表示像素点空间位置, t表示帧数。那么相邻帧间的灰度变化可以表示为:
其中T表示阈值, 用来滤除噪声。对于坐标为 (x, y) 的像素点, CDM (x, y, t) 表示第t帧与第t-1帧之间像素值差, 它记录像素点 (x, y) 的像素值随时间变化。通过统计, CDM中持续为0的, 表示像素值没有发生变化, 取其中最长的一个区间, 把这段的像素值作为背景。本文采用背景差法从图像中获得目标图像。
算法的准确跟踪离不开外观模型的选择, 本文选择颜色特征直方图作为外观模型的描述, 以直方图匹配度计算来评判跟踪准确率。
假定运动目标模板区域的点的集合为{xi*}i=1, ..., n, 该区域坐标以坐标0为中心, 并按照区域大小h进行归一化。定义一种映射关系b (xi*) :R2→{1, ..., m}, 用以将各个像素点的颜色值量化并映射到对应的直方图bins中, B为最大量化等级。对于每一个像素xi, b (xi*) 表示该像素点颜色量化后的直方图bin序号。该区域的轮廓函数为k (x) 。那么, 对于以坐标0为中心, 其颜色概率分布特征可以表示为:
其中是Cronecker Detal函数, C是归一化常数, 用以保证∑mu=1qu=1。
候选区域直方图计算与参考模板特征直方图类似, 计算公式如式 (5) :
其中, Ch为归一化常数。
运动目标跟踪的实质是在连续帧中寻找与参考模板最为相似的候选区域, 因此物体跟踪可以简化为寻找最优的y, 使得pu (y) 与qu最相似。通常使用Bhattacharrya系数ρ (y) 来衡量两者之间的相似度, Bhattacharrya系数ρ (y) 的定义如下:
Bhattacharrya系数ρ (y) 越大, 则pu (y) 与qu越相似。
物流仓库中, 跟踪目标都沿着物流轨道运动, 运动方向与前几帧都存在关联, 所以在位置决策阶段引入运动方向信息, 有效地抑制搜索框往运动反方向进行搜索。多目标跟踪的顺序按照目标进入轨道的顺序进行, 当一个目标搜索成功后, 将其所在区域在后一个目标的概率目标图像中滤除, 排除了搜索框锁定前方目标的可能。所以, 轨道上的目标能够有效准确地进行跟踪。
在视频监控区域, 检测到多个目标时, 系统给目标按照进入轨道的顺序分别命名:TAG1, TAG2, TAG3, ...依次类推, 针对当前帧的跟踪, 对目标逐个进行搜索, 算法如下:
1) 参考当前目标提取的目标特征直方图, 计算出当前帧的当前搜索目标的颜色概率分布图像。
2) 比对运动区域图像, 根据坐标, 把非运动坐标所对应的概率值置为0, 当前帧中有目标跟踪跟踪结束, 且跟踪成功, 则将已成功跟踪的结果区域概率密度值置为0, 得到新的概率分布图像I (x, y) 。
3) 计算以 (x0, y0) 为中心的候选目标区域的0阶矩M00及关于x0, y0一阶矩M10和M01:
4) 使用公式 (10) 和公式 (11) 计算出候选目标的新位置 (x1, y1) :
5) 记录当前位置坐标到数组Point[], 计算当前位置候选区域相似度, 存储在数组Lhd[]中。
6) 相比于 (x0, y0) 为中心的候选目标区域, 以新位置 (x1, y1) 为中心的候选目标区域与参考模板之间的相似度降低, 那么,
7) 如果移动的步长则迭代结束;否则, x0←x1, y0←y1, 继续执行步骤3) 。
8) 提取前3帧中当前目标所在位置a0, a1 (a1为位置坐标, a0为前一帧中目标的坐标, 以此类推) , 估计出当前目标的运动方向向量
9) 将数组Point[]中保存的坐标分别与前一帧目标的搜索位置坐标相减, 计算位移方向向量, 依次为为迭代次数。分别与P0→计算余弦值, 保存为cos1, cos2, ..., cosn。
10) 将cosi与所对应位置的候选区域的相似度相乘, 结果保存到数组Cos Lhd[]。
11) 把Cos Lhd[]中最大的值所对应的位置作为跟踪的最终结果。如果所有目标跟踪结束, 则跟踪结束, 否则继续执行步骤1) , 对下一个目标进行跟踪。
为了验证本文算法的有效性, 笔者通过书店物流仓库的真实监控视频进行了物品箱跟踪实验。算法在Intel Core i5处理器, 2.80 GHz计算机上运行, 利用VC++编程实现, 检测算法性能, 重点是对算法鲁棒性和实时性进行检测, 包括遮挡、相似物体干扰情况下的跟踪结果。
实验视频为物流仓库的监控视频, 摄像头位置固定, 视频共150帧, 每帧大小320×240。实验中对视频中物流仓库轨道上的箱子进行跟踪, 轨道周围有大量相似物体干扰, 被跟踪物体在运动中会出现相互遮挡、旋转等情况, 以下是实验结果。
首先利用Camshift与Kalman滤波融合算法对物流仓库进行复杂环境跟踪实验。Camshift与Kalman滤波融合是目标跟踪领域一个比较经典的组合算法[17], 由Kalman滤波通过目标前一帧的速度信息以及位置信息, 预测当前帧目标出现的位置, 然后通过Camshift来准确搜索, 提高搜索效率。图2为Camshift算法与Kalman滤波融合的跟踪算法的结果图, 由于目标周围存在大量相似物体, 而算法的预测与搜索, 都是基于颜色特征来进行的, 所以出现跟踪失败。而本文算法考虑到静态背景存在干扰, 引入背景滤除操作, 在搜索过程中, 将运动方向信息考虑到搜索结果的决策中, 有利于排除相似物体的干扰, 即使当目标出现被遮挡的情况下, 也能很好地定位目标。图3为本文算法跟踪效果图。
在物流仓库中, 周围堆砌的物体对跟踪目标的干扰是一个不可忽视的问题, 尤其是与目标完全相同的物体干扰。本实验很好地展示了本文算法对这类问题的处理能力。实验表明:本文算法可以在背景干扰较强的物流仓库环境下对目标进行准确的跟踪。
物流仓库环境下的多目标跟踪存在很多影响因素, 如目标的旋转、镜深引起的目标大小的变化、遮挡以及多目标之间干扰等情况。首先用Camshift与Kalman滤波融合算法进行实验, 该算法被大量文献证明可以很好地解决目标遮挡以及相互干扰等问题。从图4中可以看出, 当被跟踪的2个目标相距较远时, 该算法能准确地跟踪目标, 然而当目标相互靠近, 由于目标太过相似, 跟踪就出现严重偏差。而Camshift算法是基于颜色的搜索, 无法辨别颜色相似的目标。而本文算法, 除了颜色特征, 在搜索结果决策时引入运动方向信息, 并且在针对多目标跟踪时, 将前一个目标的搜索结果, 在新目标搜索的概率密度图像中置0, 减少了相似目标之间的干扰。所以如图5显示, 无论运动目标是明显分开, 还是目标位置非常接近, 本文算法都能准确地对目标进行跟踪。
工业现场环境复杂, 空间较大, 跟踪过程中有很大的不确定性。本文算法在如此复杂环境下, 准确地对多个目标进行跟踪。
在实时性方面, 本算法处理150帧图像所用时间为3.79 s, 能够达到实时处理的要求。
实验结果表明:在物流仓库环境下, 本文算法有很好的鲁棒性和实时性, 很好地解决运送轨道上的多目标跟踪问题。
本文研究在工业现场复杂环境下对多目标进行跟踪的问题, 提出了一种融合背景建模和运动信息的Camshift算法, 并在搜索过程加以约束限制, 提高多目标跟踪的准确率。实验结果表明:在物流仓库环境下, 背景干扰的问题得到有效的解决;运动信息的融合, 以及对跟踪区域滤波, 有效的解决了跟踪过程中多个目标之间的相互干扰问题;实现了在物流仓库的复杂环境下对多目标的准确跟踪。
上一篇: 自动化立体仓库整体规划设计研究
下一篇: 基于普适计算环境的物流仓库定位算法