题 目 基于质心追踪算法的低分辨率视野运动研究 关 键 词 二值化 膨胀和腐蚀 8邻域搜索 质心追踪 链码标记
摘 要
本文针对低分辨率下视野运动方向识别的问题进行了研究。在合理假设条件下,对图像进行预处理,将图像像素点坐标化,采用膨胀和腐蚀算法、质心追踪算法,建立了物体形态提取、参考形态区域质心追踪等模型,解决了题目中的问题。
首先,利用Matlab读取视频,将其以某一时间间隔进行单帧处理;任意读取相邻时刻的2帧图像,将其灰度化;然后对灰度图像进行增强和二值化处理,得出二值化图像,然后利用8邻域搜索法,去除图像孔洞;再采用膨胀和腐蚀算法,建立物体形态提取模型,提出去图像中所有的物体形态区域,同时标记所有形态区域;接着将像素点坐标化,计算所有形态区域的灰度质心位置、面积和周长;设定阀值,筛选出参考形态区域集合,建立图像形态区域匹配模型,将前后两帧图像特征进行对比,求出最佳参考形态区域;最后计算运动前后形态区域的质心坐标差,进而判断质心运动方向,反推出了视野区的运动方向。
随机拍摄一段短视频验证模型,以0.02s为时间间隔提取图像,在图像序列中随机选取两张图像,代入模型,程序在0.5s内判断出视野运动方向,结果与实际拍摄方向相符,从而验证了模型的准确性、鲁棒性。
为进一步提高运算速度、减少计算量,利用链码标记算法对模型中形态边界搜寻过程进行优化,计算得到更精确的形态边界,再采用Marius区域填充算法计算得到形态区域面积。最后,对模型进行评价与推广。
缺点:该文没有进行算法的复杂度分析
1
一、问题重述
数码摄像技术被广泛应用于多个场合中。有时由于客观条件的限制,拍摄设备只能在较低的分辨率下成像。为了简单起见,我们只考虑单色成像。假设成像的分辨率为32x64,成像方式为整个矩形视野划分为32x64个相同大小的矩形格子,图像中每个像素的取值为对应格子的亮度平均值。每隔一定时间拍摄一帧图像,运动的画面体现为图像的序列。
第一阶段问题提出:现在整个视野区域向某个方向缓慢运动,拍摄到的系列图像实时地传输到计算机中。请你建立合理的数学模型和算法,通过分析实时拍摄的图像,使用尽量少的时间,以判断出运动的方向。
二、基本假设
1、假设视野区内背景物体均是静止的; 2、假设摄影机是拍摄时不抖动; 3、假设只考虑单色成像;
4、假设摄影机的分辨率为32?64;
5、假设运动方向所在的平面为参考平面,简化为二维平面下运动; 6、假设物体边界为单个像素点。
三、符号说明
具体符号文中相应处均有说明。
四、问题分析
摄影机沿着某个方向缓慢运动拍摄物景时,并且背景是静止的。对于视频资料,将其分离成单帧图像,并随机选出两帧时序图像进行单独处理。在低分辨率下识别视野运动方向,选取和识别参考目标是重点,对此,本文选取物体的灰度质心、面积、周长作为判断匹配参考目标的参数。对于参考目标的选取,本文在待选物体中去除掉灰度面积过大和过小的物体,选取一个最靠近图像中心的物体作为参考目标,以避免视野移动造成参考目标信息损失。对于参考目标的识别,本文采用灰度面积、周长作为识别条件,由于摄影时候的干扰,比如抖动、亮度、拍摄角度变化等因素的影响,都可能造成物体提取出的轮廓有轻微变化,所以,本文将灰度面积和周长最相近的物体判定为运动后的参考物体。对于视野运动方向的判断,可以用运动前后参考目标质心位置坐标的变化情况反映视野运动方向。
五、模型建立
鉴于上述分析过程,本文首先在视频中提取前后两个单帧图像,将图像进行灰度化处理,并对其进行二值化,消除孔洞对计算造成的误差,提取出图像中的物体轮廓,并将不同的物体进行分区编号,计算出不同物体的灰度质心位置、面积和周长;同理,对运动后的图像进行如上处理。将前一帧图像提出的灰度面积过大和过小的物体去掉,选取最靠近图像中心位置的物体作为参考目标,将参考目标的灰度面积、周长和后一帧图
2
像中提取出的物体的灰度面积、周长分别进行比较,设置一定的误差阈值,在满足误差阈值之内的物体之中,和参考目标最相近的物体即为运动后的参考物体。 5.1数字图像灰度处理
由于计算机只接受处理后的数字图像,因此需要将摄影机拍摄的慢运动画面进行单帧图像处理,然后对每个单帧图像进行离散化处理,把这一连续的模拟信息转换为离散的数字图像的过程称为图像的数字化[1]。
(1)图像采样
空间上连续的图像变换成离散的点的过程称为采样。实质就是将图像用许多点来描述,采样的结果一般用图像分辨率来衡量质量的高低。每一个像素点为一个小格。
(2)灰度化
任何一幅完整的图像都是由红色、绿色、蓝色三种颜色通道组成。红色、绿色、蓝色通道都是以灰度显示,采用不同的灰度值来表示红、绿、蓝在图像中的比重称为图像的灰度化。把有黑—灰—白的连变化续的灰度值量化为0-255共256级灰度值(图1 灰度值变化示意图),而在RGB模式中,假如R?G?B,则颜色表示为灰度值。灰度化过程就是取图像的RGB分量相等的值,图像由原来的三维特征峰降到灰度化的一维特征必然会丢失部门信息,因此本文选取最合理灰度图像权值对图像进行灰度化[2],公式如下:
Gray?0.299R?0.587G?0.114B, R?G?B?Gray (1)
式中:Gray表示图像的像素灰度值,R表示图像红色分量,G表示绿色分量,B表示蓝色分量。
0 图1 灰度值变化示意图
255 灰度图像是指每一个像素只有一个采样颜色的图像。通过采样将图像像素化,然后对每一个像素进行灰度化处理,得到灰度图像。图2 为处理后的灰度图像
灰度处理
原始图像
处理后图像
图2 原始图像与处理后的灰度图像对比
(3)直方图均衡化处理
.直方图均衡化处理是为了增强灰度图像的信息,使得灰度图像更加清晰。实质上是将一幅已知灰度概率分布的图像,经过某种变换算法,得出一幅灰度概率分布均匀的新图像[3]。下面是直方图均衡化算法 [4]的运算过程:
3
step1:列出原始图像与变换为灰度图像的灰度级n,m?0,1,?,L?1,其中L为灰度级个数;
step2:统计灰度图像各灰度级的像素个数Yk;
step3:计算原始图像直方图:P(j)?YjN,N为原始图像的像素总个数;
mstep4:原始图像的累计直方图:P(m)??P(k);
step5:取整计算m?int?(L?1)Pm?0.5?;
k?0step6:确定映像关系n?m,将原始图像的灰度值修正为计算的灰度值; step7:统计新直方图各个灰度级的像素个数Yi;
Ystep8:计算新的直方图P(m)?i。
N(4)灰度图像二值化处理
二值化是图像分割的一种方法。通过设定阀值,把它变为仅用两个灰度值表示图像的前景和背景颜色的二值图像,即用灰度值为0(黑色)和1(白色)表示。
设(i,j) 为数字图像的空间坐标,G为灰度值的正整数值,t?G的阀值,B??b0,b1?为一对灰度级,b0,b1?G。用灰度级t作为阀值对图放大司法非凡非凡非凡非凡非凡非凡非凡非凡非凡非凡非凡凡非凡非凡非凡非凡非凡非凡非凡 \\
像f?i,j?进行二值化,则产生的图像函数ft:N?N?B为[5]:
?b0ft(i,j)???b15.2形态提取后图像的去孔洞
,f?i,j??t,f(i,j)?t (2)
其中,t可为固定阀值,也可为动态的阀值,根据情况而定。
观察形态提取后的图像,发现区域中并不是所有的像素点均为1,出现了孔洞的情况,这是由于在二值化的过程中,程序将图像中的灰度值较低的像素点标记为0,将这种被灰度值为0包围的高灰度像素点称之为孔洞点,考虑存在孔洞点的两种情况,如下图:
图3 孔洞点存在的情况
从上图可以看出,孔洞点存在的两种情况为:在3?3区域小块中心处的像素点的灰度值为0,在四个顶点里有且仅有一个顶点的像素值为0,则记该中心点为孔洞点;在3?3的区域小块中心处的像素点灰度值为0,同时在小块的其他8个像素点的灰度值均为1,则将该中心点处的像素点记为孔洞点。
本文中只考虑上述两种情况下的孔洞,得到去除孔洞后的图像,如图4:
4
图4 去孔洞后图像对比
将去除孔洞前后的二值化灰度图进行放大后观察,发现在原图中出现的孔洞经过处理后得到了填补,证明对孔洞的处理是合+理的。
5.3对二值化图像中待选目标形态提取
数学形态是用一定形态的结构元素来度量和提取图像中对应的形状,以达到对图像分析和识别的目的。
设f(i,j)为输入图像,b(i,j)是结构元素,则b对f进行灰度膨胀定义[6]:
(f?b)(s,t)?max?f(s?x,t?j)?b(i,j)|(s?i,t?j)?Df,(i,j)?Db? (3)
b对f进行灰度腐蚀定义[6]:
(f$b)(s,t)?max?f(s?x,t?j)?b(i,j)|(s?i,t?j)?Df,(i,j)?Db? (4)
对灰度图像的膨胀(或腐蚀)操作效果:如果结构元素的值均为正,则输出图像比输入图像更亮(或更暗)。
定义:灰度图像膨胀后,图像像素为1;灰度图像腐蚀后,图像像素为0。 5.4待选形态区域形态标记
从图像中提出目标物体形态后,可得到其连通域的边界,使得计算机能够快速识别目标物体形态。通过目标物体形态的识别,随机给目标物体形态区域赋予不同的颜色,从而得到不同颜色的区域,以便后续能够快速跟踪识别形态区域。
图5 像素赋值示意图
通过上图看,标记过后的形态区域,使得形态区域更加清晰。 5.5形态区域的质心计算
根据对图像的边界提取与跟踪,得到每个目标的边界和边界上每个像素点坐标值,即ln和G(i,j),且相应的灰度值为1。设定图像的左下角为坐标原点(0,0),向右为x轴,向上为y轴,其像素点值1为单位长度。示意图见图6:
5