运动图像的分割是物体基视频编码系统中不可缺少的重要部分。运动图像的分割目的是把图像帧中的对象同背景分割开来。同一物体的各部分往往具有一致的属性:空间属性与时间属性, 这是运动图像分割算法的物理依据。
时间域分割是根据运动信息的均一性来划分区域和估算图像的运动场, 并将具有相似运动的区域聚类, 检测相邻帧间的运动区域。空间域分割是利用视频对象的一些空间特征信息, 如颜色、亮度、边缘、纹理等特征进行分割。将时域分割与空域分割结合能达到满意的结果, 最近提出的视频分割算法基本是时空结合的, 如文献
笔者提出了一种灵活多变的时空结合的运动对象分割方法 (流程见图1) , 分割效果较好, 计算复杂度低, 减少了处理时间, 运用灵活。
《1 运动图像的分割算法》
1 运动图像的分割算法
《1.1 预处理阶段》
1.1 预处理阶段
首先应该对运动图像进行平滑滤波以消除图像中内在噪声的影响。为了消除图像全局运动的影响, 还应进行全局运动的估计与补偿 (略) 。
《1.2 利用时域信息求运动区域》
1.2 利用时域信息求运动区域
算法的基本思想仍然是变化检测 (见图2) 。首先通过三幅二次帧差图像与运算得到某帧的运动信息, 对其阈值化, 得到帧差掩模图像, 然后进行二次扫描得到时空结合所需的运动区域。
1.2.1 二次帧差
帧差图用来反映两帧图像之间的变化, 假设图像的背景是静止的, 则该变化是由于对象的运动产生的, 是对象的运动引起运动区域内部像素点的灰度值变化。
二次帧差是利用相邻的两幅帧差图像的交集检测中间帧的运动信息的方法
1.2.2 运动区域
为消去图像中内在噪声产生的帧差图像非零差值, 需要进行阈值化处理:
其中Z (k, k-1) 标记场, 即帧差掩模图像;FD为帧差图像;T是二值化所需的阈值, T的选取与拍摄视频设备有关, 对于不同的视频序列, 阈值要进行一定的调整。
在运用到包含运动对象的运动图像中时, 文献
为了改善阈值计算的鲁棒性, 用于计算的数据是从图像对的左、右和上边带部分取得的。当摄像机静止时, 这些边带的数据中含有运动对象的可能性很小, 这些区域内的属于运动对象的像素, 在利用LHS方法时被作为离群点滤除。在自适应阈值计算中这种方法保证了计算得到的阈值是从图像对中所能得到的最佳阈值。
对运动区域进行阈值化, 可以得到变化检测掩模 (frame difference mask) 。帧差掩模图像中为1的像素对应图像中的运动部分, 0则对应图像中的背景部分。但由于噪声等因素的影响, 此时的掩模并不是一些完整的区域。对于一些孤立的点, 可以采用形态学的开、闭运算予以去除, 然后再经过扫描填充就可以得到完整的运动区域。
为得到准确的运动区域, 使用二次扫描方法。对掩模图像按行扫描, 得到每行的第一个和最后一个属于运动区域的像素, 两者之间的像素属于运动区域, 用灰度值填充这些区域得到水平方向上的候选分割区域。为了消除按行扫描得到的运动区域的不精确, 再按列扫描, 同样可以得到一个垂直方向上的候选分割区域。将两候选分割区域进行与操作, 即可得到分割的运动区域掩模, 用1表示。这样得到的运动区域是完整准确的。
《1.3 利用空域信息求图像边缘》
1.3 利用空域信息求图像边缘
空域分割是借助于像素点的强度将一帧图像分成多个强度均匀的区域。分水岭算法是最常用的方法之一, 但它对图像强度梯度噪声特别敏感, 容易导致过度分割, 计算耗时较长。为了克服分水岭算法带来的缺陷, 人们在尝试改进或者优化其算法
笔者采用形态梯度算子
来求边缘, 其中f是原始图像, g为结构元素, ♁和⦵分别表示膨胀和腐蚀操作。形态梯度处理后, 图像中的物体边缘附近的像素点的强度得到提升, 非边缘的像素点的强度被压抑, 从而使图像中的边缘能完整、较好地分割出来, 如图4所示。这种方法比用Canny算子得到的边缘更连续、更完整。图4c与图4d为两种方法分割边缘的效果对比。
《1.4 时空结合》
1.4 时空结合
由时域信息得到的运动区域是完整的, 但其边缘并不精确。由时域分割得到的运动区域是准确的, 将空域分割求得的边缘向时域分割的运动区域上投影, 可以有效去除图像中静止背景部分的边缘并保留较好的运动对象的边缘。由图4e可见, 得到的边缘图像是准确的, 而边缘部分是连续完整的。将此边缘图像利用前面所提到的二次扫描方法填充, 即可得到完整的运动对象掩模。最后对运动对象掩模进行原值填充, 得到最后的分割对象。
《2 算法的灵活应用及仿真实验》
2 算法的灵活应用及仿真实验
《2.1 算法的灵活使用》
2.1 算法的灵活使用
2.1.1 二次帧差法的灵活使用
1) 背景简单
对于背景简单的视频帧, 可用文献
2) 背景复杂
对大多数背景较复杂的视频序列, 一幅二次帧差方法是不适用的。用二次帧差图求与方法可去除一幅二次帧差方法带来的不准确。
由仿真图6可以看出, 图6g分割结果较好, 在一般情况下, 推荐采用三幅二次帧差图像求与后作为运动区域的最初结果。
2.1.2 时域分割方法的灵活使用
算法中采用了时域信息与空域信息相结合的方法。但是, 在背景较为简单的情况下, 可以利用1.2节中得到的运动区域作为运动对象掩模, 并对该掩模进行原值填充, 得到最后的分割结果, 省去利用空域信息求边界阶段。结果见图7, 分割图像存在着边界不够精确的现象, 但是基本能够满足基于内容的应用需要, 所求运动区域是精确的, 能够将背景有效剔除。
《2.2 时空结合的分割算法仿真实验》
2.2 时空结合的分割算法仿真实验
使用Matlab 6.1在PⅢ, 500 MHz的平台上对本算法进行测试:利用形态梯度算子求边缘比一般的分水岭算法或Canny算子法速度提高了3~5倍。与文献
《3 结论》
3 结论
所提出的算法可以根据实际情况灵活多变, 快速准确。首先在时域分割中采用二次帧差求交集的方法, 缩减了计算量, 对于运动区域的定位和分割相当准确。其次在空域分割过程中仅采用形态梯度算子求边缘, 克服了分水岭法带来的缺点, 在准确分割边缘的同时为进一步提高运算速度提供了条件。虽然对于背景复杂的视频序列, 算法在时域分割中可能需要对多帧图像存储进行比较, 会造成一定的延时, 但是, 两三帧的延时相对于整个分割过程是微不足道的, 并不影响算法的速度。
从实验中可以看出, 该算法对于头肩型运动图像效果较好, 并且具有一定时间上的优势。