立体图像视频序列压缩方法
技术领域
本发明涉及一种立体图像视频序列压缩方法。特别是涉及一种使用delaunay三角剖分的办法对图像进行网格划分,对立体图像进行了压缩,减少了数据量的立体图像视频序列压缩方法。
背景技术
在自然世界中,人类能通过双眼观察到实在的具有立体感的三维景物,人类是如何通过双眼观察事物得到立体视觉感的?这是困扰众多科学家很长时间的问题。对于人类双眼的功能,从笛卡儿开始就对此有研究,牛顿也曾经对双眼的视交叉作过猜测。1838年惠斯登发明了立体镜,揭开了人类获得立体感的原因——视差使人产生立体视觉感。人的两眼之间的平均距离约65mm,观察物体的角度稍有不同,产生视差,即左眼看到的物体与右眼看到的同一物体之间有细微的差别,因此描述场景轮廓的方式也不尽相同。大脑根据这两个有细微差别的场景进行生理融合处理,产生精确的三维物体感知以及该物体在场景中的定位,这就是具有深度的立体感。
人类获取的信息80%来自眼睛,这说明图像是人们生活中信息交流最主要的载体,也是蕴涵信息量最大的媒体。随着显示技术的发展,人们开始追求可以再现景物立体信息的三维立体显示技术。但是,三维立体显示器显示一幅立体图像同时需要最少两幅具有视差的图像,因此也就意味着显示所需要的立体图像具有十分巨大的信息量,是普通二维图像的几倍甚至十几倍。为了有效节省传输带宽和存储空间,对立体图像进行压缩是十分必要的。因此需要一种有效的编码方法,对图像进行压缩。
1、立体视特征
当观看立体图像时,生理立体视觉会直接得到双眼视差异,心理立体视觉会自动地对得到双眼视差异信息进行增强或抑制(当双眼视差异在人不能够接受的范围时,会产生立体感抑制;当双眼视差异在人能够接受的范围时,会产生立体感增强,从而使观察者获得深度感觉逼真的立体图像)。当人有一只眼睛看到的图像混入噪声时(噪声在人能够接受的范围),由于心理立体视觉的作用,人脑会自动地把混入噪声的图像,往另一副没有混入噪声的图像(另一只眼睛看到的)上进行逼近,使噪声弱化。有时单眼能看到的噪声,双眼立体观看时,噪声几乎不见了。这对于立体图像编码非常有用,由于心理立体视觉的存在,可以小范围的降低生理立体视觉要求,也就是小范围的降低双眼视差异信息的要求,所以可以降低立体残差编码的要求。
已有的实验表明,人眼对不同色调细节的分辨力也不相同。如果眼睛对黑白细节的分辨力为100%,则实验测得人眼对各种彩色细节的分辨力分别为表1中所列数值。从该表中数据说明,人眼分辨景物彩色细节的能力很差。因此,常见的彩色电视系统在传送彩色图像时,可以只传送一个粗线条(大面积)的彩色图像,并配以亮度细节。这称为大面积着色原理。视频处理中常见的YUV4:2:0格式的视频表示方法就是利用了人眼对色度不敏感的特征,将色度信号U和V的分辨率降低为Y信号分辨率的1/4,而一般情况下人眼不能察觉到实际显示出的图像质量色度信息的损失。
表1 人眼对彩色细节的分辨力
细节色别 黑白 黑绿 黑红 黑蓝 绿红 红蓝 绿蓝
分辨力 100% 94% 90% 26% 40% 23% 19%
2、边缘提取
边缘是图像最基本也是最重要的特征之一,是图像中灰度发生急剧变化的像素的集合,两个具有不同灰度值的相邻区域之间总存在着边缘。图像边缘是图像最基本的特征之一,边缘检测是图像分割、目标区域识别、区域形状提取等图像分析方法的基础,在工程应用中有着重要的地位。
Canny于1986年提出一个优良的边缘检测算子,被称为Canny算子。其算法是通过寻找图像梯度的局部极大值,用高斯函数的一阶微分来计算梯度。算法中具体通过2个阈值来分别检测强边缘和弱边缘;当且仅当弱边缘与强边缘连接时,弱边缘才被输出。所以,Canny算法不容易受噪声的干扰,能够在噪声和边缘检测问取得较好的平衡,于是能检测出真正的弱边缘。
Canny算子的具体步骤如下:
首先用二维高斯滤波模板对图像进行滤波以消除噪声。σ为高斯滤波器参数,它控制着平滑的程度
G(x,y)=12πσ2exp(-x2+y22σ2)]]>
用导数算子(比如Prewitt算子、Sobel算子)找到图像灰度沿着两个方向的偏导数(Gx,Gy),并求出梯度的大小和梯度方向。
|G|=Gx2+Gy2]]>
θ=Arctan(GxGy)]]>
把边缘的梯度方向大致分为四种(水平,竖直,45℃方向,135℃方向)。各个方向用不同的邻近像素进行比较,以决定局部极大值。若某个像素的灰度值与其梯度方向上前后两个像素的灰度值相比不是最大的,那么将这个像素值置为0,即不是边缘,这个过程称为“非极大抑制”。
使用累计直方图计算两个阀值。凡是大于高阀值的一定是边缘;凡是小于低阀值的一定不是边缘;如果检测结果大于低阀值但又小于高阀值,那就要看这个像素的邻接像素中有没有超过高阀值的像素边缘,如果有的话那么它就是边缘,否则它就不是边缘。
3、特征点提取和匹配
Moravec于1977年提出了一种利用灰度方差提取图像特征点的算法。Moravec将图像的特征点定义为兴趣点,具体而言就是指图像中那些在各个方向上都具有较大灰度变化率的点。用以求取兴趣点的Moravec算子定义为兴趣算子。该算法的思想非常简单,后来的很多算法都是基于该算子改进的。Moravec算法的具体步骤是:
(1)计算每个像素的兴趣值(interest value),即以该像素为中心,取一个n×n的窗口,计算0度,45度,90度,135度四个方向的灰度差平方和,取其中的最小值为该像素的兴趣值。
(2)根据实际图像设定一个阈值,遍历整个图像,以兴趣值大于该阈值的点为候选点。阈值得选择应以候选点中包括需要的特征点,而又不含过多的非特征点。
(3)再选一个一定大小的窗口,以该窗口遍历灰度图像,在此过程中取窗口中兴趣值最大的候选点为特征点。
(4)最后在四个主要方向上,选择具有极大极小灰度方差的点作为特征点。
求取灰度平方和并得到该点兴趣值的算法如下:
V1=Σi=-kk-1(gx+i,y-gx+i+1,y)2]]>
V2=Σi=-kk-1(gx+i,y+i-gx+i+1,y+i+1)2]]>
V3=Σi=-kk-1(gx,y+i-gx,y+i+1)2]]>
V4=Σi=-kk-1(gx+i,y-i-gx+i+1,y-i-1)2]]>
Mar=min{V1,V2,V3,V4}
其中V1,V2,V3,V4 V1,V2,V3,V4分别表示0度,45度,90度,135度的灰度差平方和,gx,y代表像素点处的灰度值。算子Mar为该像素的Moravec输出值:
归一化协方差匹配法是一种匹配图像特征点的方法。首先在已提取出特征点的左视图中取一特征点P1(i,j),然后在待匹配的右视图中以像素点(i,j)为中心,取一个M×N的矩形,将矩形中的每个点Pi与P1点进行相似度衡量,相似度最大的点即为匹配点。顺序将左视图中的每个特征点与右视图匹配,最后得到左右视图对中所有的匹配特征点对。
Pi与P1的相似度衡量是用相关窗口(2k+1)(2l+1)内图像子区域的归一化协方差相关值来表示的。
表示如图1所示(图中A为相关窗口),取左视图特征点P1(i,j),右视图特征点P2(i,j)。设左右视图中像素点(i,j)处的灰度值分别为I1(i,j),I2(i,j)。归一化协方差可定义为:
c(P1,P2)=cov(i,j)var(i,j,I1)var(i,j,I2)]]>
窗口大小:
M=(2k+1)(2l+1)
2k+1,2l+1为窗口的长和宽。
其中左右视图所选窗口内灰度协方差:
cov(i,j)=1MΣm=-kkΣn=-ll[I1(i+m,j+n)-I1(i,j)‾]×[I2(i+m,j+n)-I2(i,j)‾]]]>
左视图所选窗口内灰度方差:
var(i,j,I1)=1MΣm=-kkΣn=-ll[I1(i+m,j+n)-I1(i,j)‾]2]]>
右视图所选窗口内灰度方差:
var(i,j,I2)=1MΣm=-kkΣn=-ll[I2(i+m,j+n)-I2(i,j)‾]2]]>
和
为左右视图所选窗口内灰度平均值。
I1(i,j)‾=1MΣm=-kkΣn=-llI1(i+m,j+n)]]>
I2(i,j)‾=1MΣm=-kkΣn=-llI2(i+m,j+n)]]>
4、三角剖分
1934年,俄国数学家Delaunay曾经指出:对于平面域上的N个散乱点集,存在且仅存在一种三角剖分,使得所有三角形的最小内角之和为最大,一般称之为Delaunay三角剖分,以下简称DT(DelaunayTriangulation),如图2 Delaunay三角剖分所示。显然,DT使得所形成的每个三角形尽可能接近等边三角形,避免病态三角形的出现.因此得到了广泛的应用。
Delaunay三角网具有两个非常重要的性质:
(1)空外接圆性质:在由点集{Pi}所形成的Delaunay三角网中,其每个三角形的外接圆均不包括点集{Pi}中的其它任意点。
(2)最大的最小角度性质:即对任意相邻的两个三角形所构成的四边形来说,Delaunay三角网要求该四边形的一条对角线所分成的2个三角形中所有的6个内角中的最小值将大于另外一条对角线所构成的2个三角形中所有的6个内角中的最小值.此准则使Delaunay三角网尽可能避免产生那种狭长的、具有尖锐内角的病态三角形。
由于这两个性质,也决定了Delaunay三角网具有极大的应用价值。同时,它也是二维平面三角网中唯一的、最好的。
5、仿射变换
仿射变换是一种二维坐标到二维坐标之间的线性变换,保持二维图形的“平直性”和“平行性”。每个仿射变换可以由一个矩阵A和一个向量b给出,一个仿射变换对应于一个矩阵和一个向量的乘法。通过仿射变换可以实现图像的平移、缩放、翻转、旋转和剪切。
发明内容
本发明所要解决的技术问题是,提供一种在左图寻找特征点,在右图对左图的特征点进行匹配,使用delaunay三角剖分的办法对图像进行网格划分,将左图的图像根据网格填充进右图,对立体图像进行了压缩,减少了数据量的立体图像视频序列压缩方法。
本发明所采用的技术方案是:一种立体图像视频序列压缩编码方法,压缩方法和解压缩方法,压缩方法是将立体图像的左视图L和右视图R分别转化为YUV4:2:0,用Moravec算法对左视图L提取特征点再进行Delaunay三角网格剖分,使用归一化协方差方法在右视图R找到左视图L特征点的匹配点,建立中空的右视图R的三角网,将左视图L中的每个三角形变形为对应右视图三角形形状,填充出右视图R’,再提取原右视图R与填充出的右视图R’的Y分量的残差信息Y’,进行DCT变换、量化与熵编码,对左视图L使用JPEG方法压缩。压缩后的数据是经JPEG压缩的左视图L、编码后的残差信息Y’和匹配好的左右视图特征点集;解压缩是将左视图L变换成含有YUV信息的图像。进行Delaunay三角网格剖分,根据匹配的左右视图特征点集的信息将左视图中的每个三角形进行仿射变换,形成填充出的右视图;将左视图和新建右视图的YUV信息转换为RGB信息,得到解压缩后的左右立体图对,再根据显示方式转换成立体图像。
所述的压缩方法包括如下步骤:
第一步:将立体图像的左视点图和右视点图分别保存为RGB色彩空间的BMP图像;
第二步:通过RGB到YUV的转换矩阵,将左右视图由RGB转化为4:2:0的YUV,Y表示图像的亮度信息,U、V表示图像的色度信息;
第三步:对左视图L使用canny算子进行边缘提取,并以得到的边缘为约束条件使用Moravec算法对左视图L提取特征点;
第四步:根据左视图L的特征点对右视图R使用归一化协方差法进行特征点匹配,找到右视图R匹配的特征点;
第五步:根据左视图L的特征点进行Delaunay三角网格剖分,并根据左右视图R的匹配特征点建立中空的右视图三角网;
第六步:按照左右视图的对应三角网关系,将左视图L中的每个三角形进行仿射变换,变形为对应右视图三角形形状,填充入右视图三角网中,形成填充出的右视图R’;
第七步:提取出右视图R与填充出的右视图R′的Y分量的残差信息Y′,进行DCT变换、量化与熵编码;
第八步:对左视图L使用JPEG方法压缩;
压缩后的立体图像所剩的信息为经JPEG方法压缩的左视图L、经过编码的残差信息Y′还有左右视点特征点的匹配关系和坐标。
所述的压缩方法包括如下步骤:
第一步:将经过JPEG压缩后的左视图L变换成含有YUV信息的图像;
第二步:根据左视图L的特征点进行Delaunay三角网格剖分,并根据左右视图的匹配特征点建立中空的右视图三角网;
第三步:按照左右视图的对应三角网关系,将左视图中的每个三角形进行仿射变换,变形为对应右视图三角形形状,填充入右视图三角网中,形成填充出的右视图;
第四步:将残差信息Y′解码后加到填充出的右视图中,得到新建右视图R″;
第五步:通过YUV到RGB的转换矩阵,将左视图和新建右视图的YUV信息转换为RGB信息,并保存为左右视点的BMP格式图像;
第六步:根据立体显示系统的形式使用适应的立体合成处理,得到解码后的立体图像。
本发明的立体图像视频序列压缩方法,简单方便,使立体图像的数据量减少,且解码还原的立体图像立体效果良好,无不舒适感,图像清晰。解码后图像与原图像具有较高的相似度。
附图说明
图1是在右视图搜索P1(i,j)点的对应点示意图,其中a是左视图,b是右视图;
图2是Delaunay三角剖分法的结构图;
图3是压缩编码端原理流程图;
图4是解码重建端原理流程图。
具体实施方式
下面结合实施例和附图对本发明的立体图像视频序列压缩编码方法做出详细说明。
本发明的立体图像视频序列压缩编码方法,其特征在于,压缩方法和解压缩方法,压缩方法是将立体图像的左视图L和右视图R分别转化为YUV4:2:0,用Moravec算法对左视图L提取特征点再进行Delaunay三角网格剖分,使用归一化协方差方法在右视图R找到左视图L特征点的匹配点,建立中空的右视图R的三角网,将左视图L中的每个三角形变形为对应右视图三角形形状,填充出右视图R’,再提取原右视图R与填充出的右视图R’的Y分量的残差信息Y’,进行DCT变换、量化与熵编码,对左视图L使用JPEG方法压缩。压缩后的数据是经JPEG压缩的左视图L、编码后的残差信息Y’和匹配好的左右视图特征点集;解压缩是将左视图L变换成含有YUV信息的图像。进行Delaunay三角网格剖分,根据匹配的左右视图特征点集的信息将左视图中的每个三角形进行仿射变换,形成填充出的右视图;将左视图和新建右视图的YUV信息转换为RGB信息,得到解压缩后的左右立体图对,再根据显示方式转换成立体图像。
如图3所示,以双视点的立体图像为例,所述的立体图像的压缩编码方法包括如下步骤:
第一步:将立体图像的左视点图和右视点图分别保存为RGB色彩空间的BMP图像;
第二步:通过RGB到YUV的转换矩阵,将左右视图由RGB转化为4:2:0的YUV,Y表示图像的亮度信息,U、V表示图像的色度信息;
第三步:对左视图L使用canny算子进行边缘提取,并以得到的边缘为约束条件使用Moravec算法对左视图L提取特征点;
第四步:根据左视图L的特征点对右视图R使用归一化协方差法进行特征点匹配,找到右视图R匹配的特征点;
第五步:根据左视图L的特征点进行Delaunay三角网格剖分,并根据左右视图R的匹配特征点建立中空的右视图三角网;
第六步:按照左右视图的对应三角网关系,将左视图L中的每个三角形进行仿射变换,变形为对应右视图三角形形状,填充入右视图三角网中,形成填充出的右视图R’;
第七步:提取出右视图R与填充出的右视图R′的Y分量的残差信息Y′,进行DCT变换、量化与熵编码;
第八步:对左视图L使用JPEG方法压缩。
压缩后的立体图像所剩的信息为经JPEG方法压缩的左视图L、经过编码的残差信息Y′还有左右视点特征点的匹配关系和坐标。
如图4所示,本发明所述的解压缩方法包括如下步骤:
第一步:将经过JPEG压缩后的左视图L变换成含有YUV信息的图像;
第二步:根据左视图L的特征点进行Delaunay三角网格剖分,并根据左右视图的匹配特征点建立中空的右视图三角网;
第三步:按照左右视图的对应三角网关系,将左视图中的每个三角形进行仿射变换,变形为对应右视图三角形形状,填充入右视图三角网中,形成填充出的右视图;
第四步:将残差信息Y′解码后加到填充出的右视图中,得到新建右视图R″;
第五步:通过YUV到RGB的转换矩阵,将左视图和新建右视图的YUV信息转换为RGB信息,并保存为左右视点的BMP格式图像;
第六步:根据立体显示系统的形式使用适应的立体合成处理,得到解码后的立体图像。