基于深度学习的3D图像质量的度量方法与流程

文档序号:13542760阅读:1841来源:国知局

本发明属于图像处理领域,涉及立体图像质量评价方法改进优化,尤其是涉及深度学习的卷积神经网络和主成分分析在立体图像质量客观评价中的应用。



背景技术:

随着移动设备和通信的快速发展,人们生活中接触到的图片内容也越来越多,尤其是最近兴起的3d显示技术和相关应用极大地提高了人眼的视觉感受,比如,3d电影、vr眼镜等,带来了更多的娱乐和独一无二的体验,这不仅在工业界,也在学术界吸引了更多的研究者,如何实时有效地评估立体图像的质量已成为立体图像研究领域的关键问题之一。立体图像的质量评价方法一般分为主观评价(subjectiveevaluation)和客观评价(objectiveevaluation)。由于人眼是最终的图像的最终接收者,所以主观评价被看作是评估立体图像质量的一种可靠方法,但是主观评价方法需要很多的观察者参与图像评价的实验中,每个观察者要给出图像的主观分数,最后统计计算得到平均主观分数(meanopinionscore,mos),这种方式虽然可以获得较准确的图像评价,但花费的时间和成本长,而客观评价方法能够自动评估立体图像的质量,能够有效的弥补主观评价方法的不足。因此,建立一套可以准确反映人眼主观感受的立体图像质量客观评价机制具有深远意义[1]。

近年来,相关研究机构对立体图像质量评价算法进行了深入研究,早期是直接将平面图像质量评价方法应用于立体图像质量评价上,如峰值信噪比(psnr)、均方误差(mse)、结构相似度(ssim)等评价指标。然而立体图像中包含更多的因素如深度图等,直接将平面图像质量评价算法应用于立体图像质量评价上终究是不符合人眼的主观感受。因此研究工作者考虑将平面图像质量评价算法与立体图像中的一些因素相结合,从而提升评价效果。文献[2]融合了立体图像中的深度特性、结构特性和梯度特性,经过实验后得到的结果与主观评价有较高的一致性。文献[3]将结构相似度和立体图像深度信息进行线性组合得到相应的立体图像质量评价得分;文献[4]考虑到人类在观看外部事物时具有的生理特性和心理特性,结合结构相似度方法提出了改进ssim的算法;文献[5]提出了一种将视差信息进行加权处理的立体图像客观评价算法,并在实验中采用相应的立体图像数据库对算法性能进行评估,结果发现加入视差信息后算法能够实现更好的评价效果;文献[6]在传统平面图像质量评价考虑因素中加入了人类的双目融合特性,提出了一种改进的立体图像质量评价方法。以上文献所提出的算法均是基于人眼视觉系统(hvs)的评价方法。然而,由于人眼系统比较复杂,目前对hvs的研究得不够深入,因而基于hvs的评价方式与人眼的主观感受不能完全相符。因此,研究人员提出采用能够模拟人类大脑的神经网络方式进行立体图像质量评价,并取得了良好的效果。文献[7]首先通过独立成分分析(ica)提取立体图像的有效特征,然后通过基于二叉树的支持向量机(bt-svm)算法提出了一种应用在立体图像质量客观评价上的分类器,能够分类识别不同立体图像的质量;文献[8]考虑到传统神经网络学习速度慢、泛化能力差等缺点,首先通过主成分分析(pca)进行原始图像的预处理,引入极限学习机(elm)[9-11]对立体图像质量进行客观评价。但由于elm网络的初始参数即输入权重和阈值随机给定,导致网络的性能不稳定。

近年来,深度学习成为机器学习和神经网络相关领域的研究热点,深度学习能够模拟人脑深层次处理数据的方式对原始数据内部结构和关系得到层次化的特征表示,因而经该预处理后的网络参数符合人脑的处理结果,训练后得到的网络稳定性和泛化能力也有一定的提高。卷积神经网络(cnn)是深度学习网络中的一种经典网络,已经被广泛应用于识别、定位和理解等任务,它以原始图像作为输入,并将特征学习和训练集为一体,能够有效地学习复杂的映射。应用cnn进行平面图像质量评价的文献较多,但立体图像质量评价的相关文献较少。文献[12]中采用将图片输入到多通道的深度神经网络中进行分类,取得良好的效果,然而实验中的数据集图像的尺寸较小,对于尺寸较大的图片而言,网络处理起来相当困难。文献[13]中考虑处理尺寸较大的图,方法是将原始大图切成相同大小的小图片块后再送入到构建的神经网络模型中,最后对图像块的质量分数加权平均得到原始大图的质量分数。然而,将原始大图切割成小的图像块后会破坏原始图像的结构信息,从而影响立体图像质量评价的准确性。

立体图像质量评价算法的发展对立体图像的发展有着重要的意义。



技术实现要素:

为克服现有技术的不足,本发明旨在提出一种新的立体图像质量评价方法,实现更加准确有效的评价立体图像质量,同时在一定程度上推动立体成像技术的发展。为此,本发明采用的技术方案是,基于深度学习的3d图像质量的度量方法,首先对立体图像数据集进行切块处理,切块处理得到许多小的图像块,再对每个图像块进行归一化处理;同时对立体图像数据集进行主成分分析pca降维处理,得到维度较低的图像;然后将切块得到的图像块数据集与pca降维后得到的低维度数据集送入搭建的卷积神经网络中;然后利用卷积神经网络逐层提取特征;最后通过softmax分类器得到立体图像的总体质量。

一个实例中具体步骤如下:

(1)读入训练样本,并将样本随机分成训练集和测试集两部分,并对样本归一化;

(2)对训练集和测试集使用pca算法进行降维处理以及切块处理后得到两组数据集;

(3)将降维后的训练集以及切块后的数据以多通道的方式送入具有多尺度池化层的卷积神经网络中进行训练;

(4)通过训练集训练好后,完成模型建立;

(5)将测试集送入训练好的网络中,得出质量分数。

图像分块处理的步骤如下:

(1)图像分块,假设图片大小为m×n维,图片块的大小设置为k×k维,那么分块后得到的图像块数量n为:

n=(m/k)(n/k)(1)

若m与n不是恰好为k的整数倍,通过对其图像矩阵补0使得其为k的整数倍;

(2)图像块归一化处理规则如下:

公式(2)中i(i,j)表示在位置(i,j)处的初始像素值,ω表示计算均值与方差的局部区域,m×n表示的是在局部区域ω中的像素点的总个数,μ(x,y)表示i(i,j)区域的均值,σ(x,y)表示i(i,j)区域的方差,其中c表示任意的一个极小正数,以防止分母为0,表示归一化后的像素值,归一化后,原始的图像块变成零均值、方差为1的图像块;

通过pca算法对实验图像进行降维预处理,算法步骤如下:

给定l个样本,每个样本的尺寸大小为m×n,样本的矩阵以x=(x1,x2,…,xl)t,其中xii∈[1,l]为第i个样本构成的mn维的一维向量;

(1)对样本矩阵x作中心化处理,即利用得到样本矩阵每列的均值,之后按照每列减去其均值di=xi-mi得到零均值矩阵

(2)计算样本数据的协方差矩阵

(3)利用svd定理,通过求解的特征值和特征向量获得的特征值以及特征向量;

(4)对得到的特征值进行排序,并根据特征值的贡献率选取前k个特征值及其与之对应的特征向量,贡献率表示所定义的主成分在整个数据分析中占多大的比重,在这里通过选取的特征值之和与所有特征之和的比值来表示:

其中λi表示特征值向量λ中的第i个特征值;

(5)投影矩阵。将样本矩阵投影到所选择的特征向量组成的子空间中,投影过程表示如式下式所示:

x→y=wtx(5)

其中,y是立体图像x经过pca降维处理后的信息,wt表示的是投影矩阵;

cnn的过程如下:

(1)卷积层:卷积层的作用就是提取图像特征,原始输入图像与原始输入图像与滤波器进行卷积后通过一个激活函数,就得到第一层输出特征maps,公式为:

其中:上标表示所在的层数;*表示卷积操作;表示卷积后第j个神经元的输出;表示第l层的第i个神经元;表示卷积核;表示偏置;mj表示选择的输入maps的集合;

(2)下采样层即池化层:下采样层的作用是对卷积层得到的图像特征进行下采样操作,即对相邻小区域进行聚合操作,采用有平均池化meanpooling、最大值池化maxpooling、随机池化stochasticpooling中的一种;

(3)全连接层:全连接层的作用是将学习到特征映射到标签空间,之后送入softmax分类器等就可以进行分类;

(4)激活函数:激活函数的主要作用是提供网络的非线性建模能力,采用有relu、leakyrelu、sigmoid中的一个;

(5)dropout:是训练网络中的一种技巧,是在训练过程中以1-p的概率将隐层节点的输出值清0,p为丢失概率,而用bp算法更新权值时,不再更新与该节点相连的权值;

(6)lrn:对局部输入区域进行归一化,能够把所有的变量具有相似的方差,公式如下:

其中,表示卷积核i在位置(x,y)的激活值,表示响应归一化后的激活值,n是该层的卷积核的数量,k,n,α,β是常量,这些参数的值由实验设定;

使用最大值池化,公式如下:

其中,表示第k个卷积核获得的位置(i,j)处的特征图,uk表示其中的最大值,k=1,2,...,k,k表示卷积核的数量。

在深度学习网络中,relu激活函数公式如下:

f(x)=max(0,x)(8)

其中,x为神经网络的输入。

本发明的特点及有益效果是:

实验结果及数据对比表明,本发明提出的mpcnn算法所得结果与主观评价结果有更好的一致性。这说明在立体图像质量评价方面基于深度学习的方法更符合人类的观看体验。由客观评价方法svm所得结果与主观评价结果一致性最差,本文所提方法mpcnn所得结果与主观评价结果具有最好的一致性;客观评价方法elm和评价性能稍微比svm好一些,且仅次于本文所提的客观质量评价方法mpcnn的性能。通过以上各种立体图像质量评价方法性能对比,我们可以发现在立体图像质量评价方面基于深度学习的方法更接近人类做出的主观评价,这说明基于pca和卷积神经网络结合有利于提高立体图像质量评价方法的可靠性和准确性,同时也说明选择合适的特征提取以及网络模型对改善立体图像质量评价方法的性能至关重要。

附图说明:

图1传统卷积神经网络结构。

图2发明的多通道卷积神经网络结构图。

图3基于卷积神经网络的立体图像质量评价方法流图。

图4原图-花。

图5原图-河流。

图6原图-家庭。

图7原图-女孩。

图8失真图-花。

图9失真图-河流。

图10失真图-家庭。

图11失真图-女孩。

具体实施方式

本发明提供一种对图像进行切块预处理的基础上,结合主成分分析pca降维后的数据集,再送入多通道的卷积神经网络后构造了一种新的立体图像质量评价方法。本发明提出的算法更加准确有效的评价立体图像质量,同时在一定程度上推动立体成像技术的发展。

本发明提出了基于卷积神经网络与主成分分析的立体图像质量评价方法。该方法首先分别对图像进行区域分割和主成分分析pca降维预处理,然后将得到的切块数据集与pca降维后的数据集送入多通道卷积神经网络中;最后,应用卷积神经网络逐层提取特征后送入softmax分类器得到立体图像的客观质量。

具体步骤如下:

首先对立体图像数据集进行切块处理,切块处理得到许多小的图像块,再对每个图像块进行归一化处理;同时对立体图像数据集进行主成分分析pca降维处理,得到维度较低的图像;然后将切块得到的图像块数据集与pca降维后得到的低维度数据集送入搭建的卷积神经网络中;然后利用卷积神经网络逐层提取特征;最后通过softmax分类器得到立体图像的总体质量。

一图像块预处理

卷积神经网络是通过卷积层中的卷积核提取图片的特征,若输入的图片尺寸太大,这会造成网络处理起来相对困难,另外复杂度也会大大增加。因此大多数的文献都是先将图像切割成图像块后,再将图像块送入设计的网络中。分块处理的步骤如下:

(1)图像分块。假设图片大小为m×n维,图片块的大小设置为k×k维,那么分块后得到的图像块数量n为(若m与n不是恰好为k的整数倍,可以通过对其图像矩阵补0使得其为k的整数倍):

n=(m/k)(n/k)(1)

(2)图像块归一化处理。由于切块后得到的是不同的图像块,为了产生相似数量级像素值的图像块,需要将图像块进行归一化处理,处理规则如下:

公式(2)中i(i,j)表示在位置(i,j)处的初始像素值,ω表示计算均值与方差的局部区域,m×n表示的是在局部区域ω中的像素点的总个数,μ(x,y)表示i(i,j)区域的均值,σ(x,y)表示i(i,j)区域的方差,,其中c表示任意的一个极小正数,以防止分母为0,表示归一化后的像素值,归一化后,原始的图像块变成零均值、方差为1的图像块。

二pca算法

通过pca算法对实验图像进行降维预处理,能够找到立体图像的有效信息,减少计算量及噪声等因素对实验的影响,另外pca降维得到的特征向量能够较好的保持图片的结构信息。本质上,pca算法是一种线性映射算法,算法步骤如下:

给定l个样本,每个样本的尺寸大小为m×n,样本的矩阵以x=(x1,x2,…,xl)t,其中xi(i∈[1,l])为第i个样本构成的mn维的一维向量。

(6)对样本矩阵x作中心化处理。即利用得到样本矩阵每列的均值,之后按照每列减去其均值di=xi-mi得到零均值矩阵

(7)计算样本数据的协方差矩阵

(8)利用svd定理,通过求解的特征值和特征向量获得的特征值以及特征向量。

(9)对得到的特征值进行排序,并根据特征值的贡献率选取前k个特征值及其与之对应的特征向量。贡献率表示所定义的主成分在整个数据分析中占多大的比重,在这里通过选取的特征值之和与所有特征之和的比值来表示:

其中λi表示特征值向量λ中的第i个特征值。

(10)投影矩阵。将样本矩阵投影到所选择的特征向量组成的子空间中,投影过程表示如式下式所示:

x→y=wtx(5)

其中,y是立体图像x经过pca降维处理后的信息,wt表示的是投影矩阵。

三cnn算法

cnn算法最早由kunihikofukushima提出[14],yannlecun等人进行改进[15],cnn本质上类似于一个多层感知机,具有良好的并行处理能力、自学习能力和泛化能力。传统的cnn由卷积层(convolutionallayer)、下采样层(poolinglayer)和全连接层(fullconnectedlayer)组成。原始图像首先经过卷积层与滤波器进行卷积,得到若干特征图(featuremaps)后,通过下采样层对特征进行模糊,逐层提取特征完毕后,最后通过一个全连接层输出用以识别图像的特征,如图1所示:

cnn的基本过程如下:

(1)卷积层:卷积层的作用就是提取图像特征,原始输入图像与原始输入图像与滤波器进行卷积后通过一个激活函数,就得到第一层输出特征maps,公式为:

其中:上标表示所在的层数;*表示卷积操作;表示卷积后第j个神经元的输出;表示第l层的第i个神经元;表示卷积核;表示偏置;mj表示选择的输入maps的集合。

(2)下采样层(池化层):下采样层的作用是对卷积层得到的图像特征进行下采样操作,即对相邻小区域进行聚合操作。主要作用是提供很强的鲁棒性,并减少了参数的数量,防止过拟合现象的发生。常用的有平均池化(meanpooling)、最大值池化(maxpooling)、随机池化(stochasticpooling)[16]等。本文使用最大值池化,公式如下:

其中,表示第k个卷积核获得的位置(i,j)处的特征图,uk表示其中的最大值,k=1,2,...,k,k表示卷积核的数量。

(3)全连接层:全连接层的作用是将学习到特征映射到标签空间,之后送入softmax分类器等就可以进行分类等。

(4)激活函数:激活函数的主要作用是提供网络的非线性建模能力,一个合适的激活函数能够有效的提升cnn网络的性能,常用的有relu[17]、leakyrelu[18]、sigmoid等。在深度学习网络中,relu激活函数使用较多,公式如下:

f(x)=max(0,x)(8)

其中,x为神经网络的输入。

(5)dropout:是训练网络中的一种技巧,是在训练过程中以1-p(p为丢失概率,一般为0.5)的概率将隐层节点的输出值清0,而用bp算法更新权值时,不再更新与该节点相连的权值。dropout可以有效地提高网络的性能,并能防止过拟合[19]

(6)lrn:对局部输入区域进行归一化,能够把所有的变量具有相似的方差,可以使监督学习算法更快,性能更好[20],公式如下:

其中,表示卷积核i在位置(x,y)的激活值,表示响应归一化后的激活值,n是该层的卷积核的数量,k,n,α,β是常量,这些参数的值由实验设定,本实验中分别设定为k=2,n=5,α=10-4,β=0.75。

鉴于cnn网络的输入尺寸的限定,不同大小的图片输入会对网络的性能有很大差异,也会影响立体图像质量客观评价的准确性。因此,可通过对输入图片进行切块预处理操作,但分块可能会造成图像的结构信息的丢失;因此在网络中加入pca降维后的特征向量通道,另外通过多尺度池化层提取更多的特征信息,来提高cnn网络的识别能力。

本文使用pca算法以及切块预处理获得cnn网络的输入数据集,构造多通道网络,不同的通道采用的是不同的输入数据,对应着pca数据、不同尺寸切块的图像块数据,使得优化后的卷积神经网络能够具有更好的分类识别效果。mpcnn的过程如下:

(1)读入训练样本,并将样本随机分成训练集和测试集两部分,并对样本归一化。

(2)对训练集和测试集使用pca算法进行降维处理以及切块处理后得到两组数据集。

(3)将降维后的训练集以及切块后的数据以多通道的方式送入具有多尺度池化层的卷积神经网络中进行训练。

(4)通过训练集训练好后,完成模型建立。

(5)将测试集送入训练好的网络中,得出质量分数。

本文发明的模型结构如图2所示,算法结构如图3所示。

cnn网络的参数比较多,需要确定网络的层数、网络的结构、卷积层的卷积核大小以及个数,池化层的池化方式以及全连接的节点数等。本文选取不同的激励函数,包括relu函数、sigmoid函数、tanh函数、absval函数、power函数以及bnll函数。实验网络的参数设置如表1,其中pca_net表示pca降维后数据集的通道网络,patch_32表示将图像切块为32×32大小数据集的通道网络,patch_256表示将图像切块为256×256大小数据集的通道网络。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1