本发明涉及深度学习、计算机视觉,特别是涉及一种基于卷积神经网络的图像复杂度评估方法。
背景技术:
1、图像复杂度(image complexity,ic)指的是一张图像的复杂程度。从客观上来说,复杂度是一张图像里细节、内容种类的数量。主观上来说,复杂度可以定义为人类感知或者描述一张图像的全局和细节信息的难度。复杂度是一种重要的心理学感知,它极大地影响着观测者的视觉审美和情绪感知。同时,复杂度也是一种关键的图像属性,自动复杂度评估可以有效地用于图像分割、图像隐写、网页设计、文字检测、图像增强等任务中。
2、早期已经有一些方法被提出来用于复杂度评估。基于复杂度越高,所含的信息量就越多的假设,一些方法使用信息熵作为复杂度的度量。类似的,由于简单的图像所含的像素信息更加冗余,而复杂的图像在每个位置上的像素更难以预测,所以可以使用图压缩比来对复杂度进行度量。具体来说,图像压缩比越低,表明像素冗余更少,所以也就更加复杂。不仅如此,一些基于图像特征的方法也可以用来评估复杂度,比如说图像边缘密度、图像的色彩种类、组成分布直方图等等。除此之外,一些研究者尝试先提取多种手工特征作为特征向量,然后输入到支持向量机、梯度提升树等分类器中进行复杂度预测。
3、随着深度卷积神经网络(deep convolutional neural networks,dcnn)的发展,一些方法开始使用dcnn来对复杂度进行评估。一些研究者认为如果图像越复杂,那么dcnn的激活层被激活的程度就越高,所以可以使用dcnn激活层的平均激活值来表示复杂度。另外也有一些方法先用在大型数据集训练好的dcnn用于特征提取,然后再使用支持向量机或者线性回归器进行复杂度预测。
4、上面的这些方法大多数都是基于传统的特征提取和分类回归方法,很难取得理想的效果。一些方法使用了最新的dcnn技术,但是却没有能够实现端到端的训练,即dcnn只是用于特征提取,却没有参与训练过程,进而限制了dcnn的可学习能力。
技术实现思路
1、本发明的目的是针对现有技术中复杂度评估存在的技术缺陷,而提供一种基于卷积神经网络的图像复杂度评估方法。
2、为实现本发明的目的所采用的技术方案是:
3、一种基于卷积神经网络的图像复杂度评估方法,包括以下步骤:
4、步骤1,使用包括细节分支网络和全局分支网络的双分支卷积神经网络,对于给定的图像,分别把该图像输入到细节分支网络和全局分支网络中;
5、步骤2,使用细节分支网络提取低层细节特征,全局分支网络提取高层语义特征,对于提取到的细节特征和语义特征,使用空间分布注意力模块进行以复杂度为导向的细节和语义特征优化;
6、步骤3,将步骤2优化后的细节特征和语义特征使用双线性上采样调整到同样空间大小,然后再基于通道维度进行特征拼接,得到融合的特征;
7、步骤4,使用conv-bn-relu三层结构对步骤3得到的融合的特征进行平衡和进一步映射,得到全局复杂度分数预测头的待输入特征图fsp以及局部复杂度热度图预测头的待输入特征图fmp,然后再将fsp输入到全局复杂度分数预测头得到全局复杂度得分,将fmp输入到局部复杂度热度图预测头得到局部复杂度热度图;
8、步骤5,分别计算全局复杂度分数预测头以及局部复杂度热度图预测头的损失函数,得得到总的训练损失,通过梯度反向传播算法优化所述双分支卷积神经网络、全局复杂度分数预测头以及局部复杂度热度图预测头的参数。
9、在上述技术方案中,所述步骤1中的双分支卷积神经网络使用resnet网络架构,所述resnet网络架构包括cs1,cs2,cs3,cs4四个阶段,所述细节分支网络包括cs1和cs2,所述全局分支网络包括cs1,cs2,cs3,cs4。
10、在上述技术方案中,所述步骤1中,对于给定的图像使用双线性插值算法分别将其放缩到256×256和512×512两个不同大小的尺寸,其中512×512尺寸图像输入到所述细节分支网络中,促进捕捉局部细节信息,256×256尺寸图像输入到所述全局分支网络中,促进捕捉全局语义信息。
11、在上述技术方案中,所述步骤2中,空间分布注意力模块的输入和输出都是特征图,先将一个特征图按照长和宽的空间维度展平,然后输入到共享权重的全连接层中,根据空间特征分布为每个通道自适应地预测权重;之后使用所述权重对原始的特征图通过元素级别的相乘操作进行加权。所述空间分布注意力模块能够使得捕获的特征更加具有复杂度区分性。
12、在上述技术方案中,所述步骤2中,空间分布注意力模块进行细节特征优化和语义特征优化的步骤均如下:
13、2.1对于给定的一个三维特征图f∈rc×h×w,首先按照空间维度将特征图展平为二维特征图ffl∈rc×(hw);
14、2.2使用mlp将二维特征图ffl映射为向量s∈rc,mlp共有两层,第一层的权重和偏置参数分别为w0,b0,第二层的权重和偏置参数分别为w1,b1,mlp对的每个通道维度单独进行操作,并且权重共享,对于某个通道维度i,计算方式为:
15、
16、其中σ0和σ1分别是relu和sigmoid激活函数,w0∈r(hw)×512,w1∈r512×1,b0∈r512,b1∈r1;
17、2.3将得到的s在每个通道上扩展到与f同样的空间大小,得到注意力权重s∈rc×h×w,将s和f进行元素级别的张量乘法操作,得到空间分布注意力模块的输出。
18、在上述技术方案中,所述步骤4中,所述全局复杂度分数预测头由平均池化层、全连接神经网络和激活层组成,计算全局复杂度得分的过程如下:全局复杂度分数预测头使用全局的平均池化将特征图fsp平均池化为向量xsp∈r512:
19、
20、其中是xsp的第i个元素,是fsp的第x行,y列,i通道的元素,之后使用输入神经元个数为512,输出神经元个数为1的全连接神经网络对sp进行映射,得到结果xsp,该神经网络的权重为wspfc∈r512×1,偏置参数为bspfc∈r,计算过程为:
21、
22、最后使用sigmoid激活函数将xsp放缩到归一化的[0,1]区间,得到复杂度分数s1,表示图像的全局复杂度,激活函数的计算方法为:
23、
24、在上述技术方案中,所述步骤4中,局部复杂度热度图预测头由长和宽都为1的卷积层以及激活层组成,其预测局部复杂度热度图的过程如下:
25、局部复杂度热度图预测头先使用1×1卷积将特征图fmp映射到1通道特征图fmps∈r64×64。这里卷积的权重为wmpco∈r512×1,具体计算过程为:
26、
27、之后使用一个施加在整个特征图fmps上的sigmoid函数获得复杂度的局部预测热度图mht:
28、
29、在上述技术方案中,所述步骤5中,所述全局复杂度分数预测头通过均方误差损失使用全监督方法进行训练,全局复杂度分数预测头的损失函数sgt为样本的真实复杂度标签,为训练过程中批大小,s1为复杂度分数。
30、在上述技术方案中,所述步骤5中,所述局部复杂度热度图预测头使用均方误差损失基于弱监督方法进行训练,所述局部复杂度热度图预测头使用的损失函数其中,sgt为样本的真实复杂度标签,为训练过程中批大小。
31、在上述技术方案中,所述步骤5中,总的训练损失l=λ×l1+(1-λ)×l2,λ的取值范围为0~1,优选为0.9。
32、与现有技术相比,本发明的有益效果是:
33、1.本发明设计了一种包括细节分支和全局分支的双分支卷积神经网络进行全面的特征提取,它能够提取到全局的高层语义信息以及细节的底层纹理信息,这些信息对于复杂度的评估至关重要。
34、2.本发明还提出了针对复杂度进行设计的空间分布注意力模块,该模块由展平、多层感知器、扩充、张量元素相乘操作组成,它能够进一步对提取的特征按照空间分布进行以复杂度为导向的特征优化。
35、3.本发明提出了双预测头结构,两个预测头可以同时复用提取到的特征,之后分别预测衡量一张图像整体复杂程度的全局分数,以及用来描述每个局部像素复杂程度的复杂度热度图。最后本发明在训练时有效地利用了全监督和弱监督训练策略,进一步挖掘了dcnn的学习能力,从而获得精确的复杂度评估效果。