本发明属于高光谱图像处理领域,特别涉及一种基于线性预测去相关的矢量量化高光谱图像压缩方法。
背景技术:
高光谱图像通常都是对同一场景在上百个谱带成像的结果。高光谱图像在反映图像中目标的材料成分上有着明显的优势,如今由于高光谱数据在国防,农业,地质等方面受到了越来越多的重视。然而高光谱图像中存在的大量冗余制约了高光谱图像的传输和处理,因此高光谱图像的压缩也成为了一个热门的研究课题。由于高光谱图像中存在着大量冗余,这些冗余分为空间冗余和谱间冗余。针对高光谱图像的压缩方法可以总结为三类:预测编码方法,基于变换的方法和基于矢量量化的方法。矢量量化是一种理论上最优的块编码算法,对于高光谱图像的压缩方法,vq主要被应用于去除谱带冗余。目前对于高光谱图像的谱带冗余去除方式大多使用逐点预测的方案,这类方法运算量较大,使用谱带直接预测的方法效果并不理想。
技术实现要素:
本发明的目的在于提供一种基于线性预测去相关的矢量量化高光谱图像压缩方法,以解决现有技术中由于高光谱图像中存在着大量的空间冗余和谱间冗余,严重限制了高光谱图像的传输和处理的问题。本发明通过对高光谱图像的研究,总结出高光谱图像中谱间冗余要显著强于空间冗余。因此本发明将注意力集中在消除谱间冗余上。同时考虑到谱间的强相关性,该方法对谱带进行整体预测来达到较好的消除谱间冗余的效果。
为了达到上述目的,本发明采用以下技术方案予以实现:
一种基于线性预测去相关的矢量量化高光谱图像压缩方法,包括以下步骤:
步骤一:采集待压缩高光谱图像,将待压缩高光谱图像的所有谱带使用聚类的方法分为多个类,将每一类的聚类中心作为生成的参考谱带;
步骤二:使用参考谱带对待压缩高光谱图像中所有的谱带进行预测,将参考谱带看作一组基底,将待压缩高光谱图像中所有的谱带都投影到这组基底上,通过投影的系数预测这些谱带;预测残差就是去冗余后的结果;
步骤三:对预测残差进行vq编码,完成待压缩高光谱图像的压缩;最终图像被压缩为两部分,谱带预测算法的参考谱带和投影系数,以及vq算法中的码书和索引值。
进一步的,步骤一具体包括:
参考谱带生成过程:
1.1)计算所有谱带间的互相关系数矩阵;
1.2)将互相关系数矩阵中的每一行作为特征向量进行k-means聚类;
1.3)对相同类的谱带求平均谱带作为参考谱带;
在聚类算法中通过计算所有谱带之间的互相关系数向量作为聚类算法的输入特征,任意谱带间的互相关系数计算方法如下:
公式(1)中i,j分别表示任意像素点的空间位置,m和n表示待压缩高光谱图像的长和宽,p和q则表示两个不同谱带;rq(p)=rp(q),rp(q)表示谱带p和q的互相关系数,i(i,j,q)表示高光谱图像中任意一点,
通过计算所有谱带间的互相关系数得到互相关系数矩阵r,r是由vecq(q=1,2,...,p)组成的;
vecq={rq(1),rq(2),...,rq(p),...,rq(p)},p=1,2,...,p(2)
获取了任意谱带的互相关系数向量vecq后,使用k-means算法对所有的互相关系数向量进行聚类;
聚类算法的过程如下:
输入:所有谱带的p个互相关系数向量vecq以及聚类个数k,q=1,2,...,p;
2.1)随机生成k个聚类中心
2.2)计算所有互相关系数向量到k个聚类中心的距离,将每一互相关系数向量划分入距离最近的一个聚类中心所属的类中;
2.3)对每一类的所有互相关系数向量求均值作为该类新的聚类中心;
2.4)当
输出:所有输入互相关系数向量的分类结果和聚类中心
最终通过聚类算法获得的聚类结果为所有谱带的最终分类结果;
通过公式(4)获得refk,k=1,2,...,k为获得的最终参考谱带。
进一步的,步骤二具体包括:
在进行谱带预测时:
公式中y表示待预测谱带,refk表示参考谱带,而wk表示谱带y在该参考谱带上的投影。nk为噪声,通过求解wk获得预测系数。
进一步的,通过求解公式(6)和(7)约束的优化问题得到最终的预测系数;
其中x表示由参考谱带refk组成的矩阵,x={ref1,ref2,...,refk};
w是预测系数,w=(w1,w2,...,wk),wls是通过最小二乘法获得的预测系数;ip是一个待预测谱带,
wls=(xtx)-1xtip(8)
进一步的,vq编码过程具体如下:
3.1)对图像进行分块处理;
3.2)使用lbg算法生成码书;
3.3)对每一块所形成的向量v在码书中查找最接近的块所对应的索引idx,
其中cd为码书中的任意码字,码书共包含sb个码字;
最终码书和索引值idx为编码的最终结果;
lbg算法的具体过程如下:
输入:所有输入图像块v以及码书包含码字的个数sb;
4.1)随机生成sb个初始码字
4.2)计算所有输入图像块到sb个码字的距离,将每一输入图像块划分入距离最近的码字所属的类中;
4.3)对每一类的所有输入图像块求均值作为该类新的码字;
其中a(s)表示
4.4)当
输出:所有码字
进一步的,还包括以下步骤:
步骤四:在对压缩后图像进行解码时分为两部分:使用vq算法进行解码,获得预测残差,使用参考谱带预测出所有的谱带,最终获得重构的高光谱图像。
进一步的,进行k-means聚类生成参考谱带的个数k取4。
进一步的,步骤三中进行vq编码的码字为4×4的块。
相对于现有技术,本发明具有以下优点:能够通过谱带整体预测的方案消除谱间冗余,具有计算更加简单方便的性能;在进行谱带整体预测时使用相关系数作为特征向量,降低了聚类的计算量;通过聚类获取参考谱带的方式比变换的方式更加简单有效;最终以较低的码率可以较好的压缩高光谱图像。
附图说明
图1是本发明流程图。
图2是在indian_pines上统计谱带与空间的相关性结果示意图;其中图2(a)为平均谱间相关性;图2(b)为第50谱带中列的平均相关性。
图3是所有的互相关系数向量组成的矩阵。
图4是谱带ip在参考谱带上的投影结果。
图5是该方法压缩编码流的组成。
图6是压缩后重构的图像和原图像的对比;其中图6(a)为原图第50谱带;图6(b)为压缩后重构图像第50谱带;
图7是本发明压缩方法使用不同大小的码书尺寸sb的率失真曲线。
具体实施方式
下面结合附图对本发明做进一步详细描述:
请参阅图1至图7所示,本发明一种基于线性预测去相关的矢量量化高光谱图像压缩方法,包括以下步骤:
步骤一:采集待压缩高光谱图像,通过谱带之间有很强的相关性的事实,如图2,将待压缩高光谱图像中所有谱带使用聚类的方法分为多个类,从而生成参考谱带。
参考谱带生成过程如下:
(1)计算所有谱带间的互相关系数矩阵;
(2)将互相关系数矩阵中的每一行作为特征向量进行k-means聚类;
(3)对相同类的谱带求平均谱带作为参考谱带。
在聚类算法中通过计算所有谱带之间的互相关系数向量作为聚类算法的输入特征,任意谱带间的互相关系数计算方法如下:
公式(1)中i,j分别表示任意像素点的空间位置,m和n表示待压缩高光谱图像的长和宽,p和q则表示两个不同谱带。rq(p)=rp(q),rp(q)表示谱带p和q的互相关系数,i(i,j,q)表示高光谱图像中任意一点,
通过计算所有谱带间的互相关系数得到互相关系数矩阵r,r是由vecq(q=1,2,...,p)组成的。如图3。
vecq={rq(1),rq(2),...,rq(p),...,rq(p)},p=1,2,...,p(2)
获取了任意谱带的互相关系数向量vecq后,使用k-means算法对所有的互相关系数向量进行聚类。
聚类算法的过程如下:
输入:所有谱带的p个互相关系数向量vecq(q=1,2,...,p),以及聚类个数k。
1)随机生成k个聚类中心
2)计算所有互相关系数向量到k个聚类中心的距离,将每一互相关系数向量划分入距离最近的一个聚类中心所属的类中。
3)对每一类的所有互相关系数向量求均值作为该类新的聚类中心。
ε表示一个接近0的极小值,用来限制算法的迭代收敛条件。
4)当
输出:所有输入互相关系数向量的分类结果和聚类中心
最终通过聚类算法获得的聚类结果为所有谱带的最终分类结果。
通过公式(4)获得refk,k=1,2,...,k为获得的最终参考谱带。
步骤二:使用参考谱带进行预测,将参考谱带看作一组基底,将高光谱图像中所有的谱带都投影到这组基底上,通过投影的系数来预测这些谱带,如图4。预测残差就是去冗余后的结果。在进行谱带预测时:
公式(5)中y表示待预测谱带,refk表示参考谱带,而wk表示谱带y在该参考谱带上的投影。nk为噪声;
通过求解公式(6)和(7)约束的优化问题可以得到最终的预测系数。
其中x表示由参考谱带refk组成的矩阵,x={ref1,ref2,...,refk}。
w是预测系数,w=(w1,w2,...,wk),wls是通过最小二乘法获得的预测系数。ip是一个待预测谱带,
wls=(xtx)-1xtip(8)
步骤三:对已经消除大量相关性的预测残差进行vq编码,达到提升编码性能的目的。最终图像被压缩为两部分,谱带预测算法的参考谱带和投影系数,以及vq算法中的码书和索引值。由于预测残差消除了大量相关性,可以提升编码性能。步骤三中进行vq编码的码字为4×4的块,码书大小则根据待压缩的高光谱图像中谱带的大小进行选择。vq算法的编码过程具体如下:
(1)对图像进行分块处理,块与块之间可出现重叠。
(2)使用lbg算法生成码书。
(3)对每一块所形成的向量v在码书中查找最接近的块所对应的索引idx,
其中cd为码书中的任意码字,码书共包含sb个码字。
最终码书和索引值idx为编码的最终结果。
lbg算法的具体过程如下:
输入:所有输入图像块v以及码书包含码字的个数k。
1)随机生成sb个初始码字
2)计算所有输入图像块到sb个码字的距离,将每一输入图像块划分入距离最近的码字所属的类中。
3)对每一类的所有输入图像块求均值作为该类新的码字。
其中a(s)表示该类所包含的输入图像块的个数。
4)当
输出:所有码字
通过该步骤获得的编码流如图5。
步骤四:在对压缩后图像进行解码和重构。该步骤可分为以下方式进行:
(1)使用vq算法进行解码,获得预测残差,解码的过程是编码的逆过程,通过在码书中查找索引值对应的码字来完成预测残差的重构过程。
(2)使用参考谱带预测出所有的谱带,预测谱带的生成过程是利用参考谱带和每个谱带的预测向量(预测系数)来计算的。预测向量的每一个维度为原始的待预测谱带在对应基底(参考谱带)上的投影值。因此预测谱带就是将这些投影组合起来的过程。公式(12)表示了这个过程最终获得重构的高光谱图像。
最终方法的码率计算如下
公式中k是参考谱带的个数,这个参数在k-means聚类时就已经决定了,sb是码书的大小,sw是码字的维数。最终输出的编码流由三部分组成,分别是参考谱带,预测器的系数和vq中的码书与索引。
通过图6和图7可以看出该高光谱图像压缩方法能够较好的完成对高光谱图像的压缩。图6(a)表示高光谱图像中一个谱带,(b)表示用该发明中方法压缩后恢复的图像,我们的本发明方法能在不对图像质量产生较大影响的情况下很好的压缩图像。图7表示本发明方法在选用不同大小码书的对比效果,可以看出本发明方法的率失真性能在256码字的码书上已经能够有较好的性能。