基于注意力机制与胶囊网络的低照度图像分类方法与流程

文档序号:22967802发布日期:2020-11-19 21:42阅读:872来源:国知局
基于注意力机制与胶囊网络的低照度图像分类方法与流程

本发明涉及深度学习、图像增强以及图像分类技术领域,尤其涉及一种基于注意力机制与胶囊网络的低照度图像分类方法。



背景技术:

由于现实生活中,有大量在低光环境下拍摄的图像,在运用时很多信息无法准确获取,肉眼难以分辨,导致一些类似图像分类、目标检测、复原等图像处理造成了困难。虽然在图像分类方面已经取得了一个又一个的重大突破,但大多都是在处理明亮的图像,明显缺乏低光的处理。这一直是图像分类技术领域待解决的问题。



技术实现要素:

针对现有技术的不足,本发明提供一种基于注意力机制与胶囊网络的低照度图像分类方法,所要解决的技术问题是如何能在低光环境下拍摄的图像通过注意力机制与胶囊网络结合得到较好的准确率。

为解决上述技术问题,本发明采用的技术方案是:

一种基于注意力机制与胶囊网络的低照度图像分类方法,首先将图像分类领域的注意力模块cbam运用到图像增强领域,用来增强低照度图像去噪能力、提高低照度图像细节还原效果,再利用提出的基于mae+ssim的内容损失函数来优化cbam模块,接着送入增加跳跃连接的胶囊网络(capsnet)对增强后的图像进行实例化和分类,包括以下步骤:

步骤一,制作数据源,建立数据集:

根据需求,将正常光照的数据集制作出相对应低照度条件的图片,并与正常光照的图片作为数据对,然后将所有图片同一规格大小,形成数据集;根据训练与测试的需求,将数据集分为6个数据集,分别为:

(1)正常光照下的可见光图片训练数据集(nor_train);

(2)图片标签训练数据集(label_train);

(3)低照度下的弱可见光训练图片数据集(low_train);

(4)正常光照下的可见光图片测试数据集(nor_test);

(5)图片标签测试数据集(label_test);

(6)低照度下的弱可见光图片测试数据集(low_test);

网络的训练标签,低照度下的弱可见光训练样本标签集作为网络的训练样本,正常光照下的可见光数据集与低照度下的弱可见光数据集构成图像对,图像内容需要高度相似,通过图像像素值归一化操作对所有图像数据进行像素值归一化处理,将像素值映射到[0,1]的范围内;

训练集占所有图片数据的80%,测试集占所有图片数据的20%,其中正常光照下可见光图片数据与低照度下弱可见光图片数据的数量为1:1的图像对,如表1所示,

表1,正常光照和低照度下训练集与测试集的数据关系表

步骤二,构建cbam网络模块,将低照度图像增强,第一块为通道注意力(channelattention),第二块为空间注意力(spatialattention),包括以下步骤:

2-1,输入nor_train数据集中大小为h×w×c的低照度图像,c表示特征图的长,h表示特征图的宽,w表示特征图的通道数;

2-2,经过一层卷积层,包括卷积操作和relu激活,卷积核大小为9×9,通有256个,得到特征图f1;

2-3,进入通道注意力:对特征图f1中的每个通道同时分别进行平均池化(avg_pooling)和最大池化(max_pooling),再同时分别送入两层全连接层,进行下采样和上采样,得到的第一层神经元个数为256/r,r是压缩率,激活函数为relu,得到的第二层神经元个数为256,将这两个特征向量相加,接着经过一个sigmoid激活函数得到权重系数mc,最后,跳跃连接拿权重系数mc和特征图f1相乘得到缩放后的特征图f2;

2-4,进入空间注意力:将特征图f2每个像素的所有通道分别进行平均池化和最大池化,接着拼接在一起,经过一个卷积层,激活函数为sigmoid,得到权重系数ms,最后,拿权重系数ms和特征图f2相乘得到缩放后的特征图f3;

2-5,cbam模块损失函数优化:由基于mae+ssim的内容损失组成,包括以下步骤:

2-5-1,内容损失:是风格迁移中的损失函数之一,将预测特征图与目标图片的特征值做损失,mse(meansquarederror,均方误差,简称mse)特点是光滑连续、可导,便于使用梯度下降算法,使用mse损失函数作为内容损失:

公式(1)中,h代表第h层神经网络,ch表示第h层神经网络特征图的长,hh表示第h层神经网络特征图的宽,wh表示第h层神经网络特征图的通道数,表示内容损失函数的值,当输入待处理图片后,经过特征提取后得到输出特征同时输入目标图片y与输入一个已经训练好的vgg16网络进行训练,得到φh(y)和

2-5-2,计算mae损失,平均绝对误差(mae)是绝对误差的平均值,对离群点不那么敏感,更有包容性,鲁棒性更好,公式如下:

公式(2)中,h代表第h层神经网络,ch表示第h层神经网络特征图的长,hh表示第h层神经网络特征图的宽,wh表示第h层神经网络特征图的通道数,yh是目标参考图片的值,xh是网络预测输出的值;

2-5-3,计算ssim损失,结构相似性指数(structuralsimilarityindex,简称ssim)对局部结构变化很敏感,更多的考虑了人眼的视觉感知,在修复图像质量的过程中更有优势,公式如下:

公式(3)中,μx是网络预测输出图片的所有像素的平均值,μy是目标参考图片的所有像素的平均值,σx是网络预测输出图片的所有像素的方差,σy是目标参考图片的所有像素的方差,c1,c2是为了防止分母为零的情况设置的偏置值;σxy表示网络预测输出图片和目标参考图片的所有像素的协方差;

2-5-4,改进的基于mae+ssim的内容损失:在cbam模块用预测输出的增强后特征与同时经过cbam模块输出的目标参考特征计算损失,公式如下:

lcontent=lcon-mae+lcon-ssim(6)

h代表第h层神经网络,ch表示第h层神经网络特征图的长,hh表示第h层神经网络特征图的宽,wh表示第h层神经网络特征图的通道数,φy表示目标参考图片经过网络结构得到的特征,表示网络预测输出的特征,lcontent表示内容损失值,lcon-mae表示与基于内容损失的mae损失值,lcon-ssim表示与基于内容损失的ssim损失值;φh(x)为cbam预测输出的增强后的正常光照的特征,φh(y)为目标参考图片经过cbam得到的特征,用特征值代替图片像素值计算损失,所以,为待处理图片cbam预测输出特征的平均值,为目标参考图片经cbam输出的特征的平均值,为待处理图片经cbam输出的特征的方差,为目标参考图片的所有像素的方差,c1,c2是为了防止分母为零的情况而设置的偏置值;

步骤三,构建胶囊网络(capsnet),将增强后的特征图送入capsnet进行图像分类,前两层为编码器,后三层为解码器,包括以下步骤:

3-1,输入增强后的特征图f3到capsnet;

3-2,经过第一层胶囊(低层胶囊)primarycaps,每个胶囊中包含多个神经元,接受卷积层检测到的基本特征,生成特征的向量组合,包括不同类型的实例化参数,本层输出有n个胶囊ui,每个胶囊由8个卷积核对前一层进行卷积,i表示该层第i个胶囊,卷积核大小为9×9,通道数为256,步长为2;

3-3,胶囊间的动态路由算法(routingalgorithm):将primarycaps层的输出向量(低级实例)与变换矩阵w相乘,变换矩阵w通过反向传播来更新,高级实例由多个低级实例组成;primarycaps层的输出向量(低级实例)与变换矩阵w相乘后得出的可看做是以ui的视角对高级实例胶囊j的预测,j表示high-levelcaps层的第j个胶囊,再乘以权重值cij求和累加得到sj,cij=softmax(bij),bij定义胶囊i到j的可能性,初始值为0,将低层胶囊i对不同高层胶囊的可能性输出为概率权重值cij,并且∑jcij=1,接着在高层胶囊high-levelcaps中进行求和公式如下:

∑icijuj|i(7)

即组成每个高层胶囊j由primarycaps层组成的相关胶囊进行加权求和,然后经过压缩函数squash():

输入输出都为向量,得到一个小于1的概率vj,即该被所有相关低层胶囊共同预测出的高层胶囊j存在的概率,再用概率vj与uj|i点积更新bij,

bij=bij+uj|i·vj(9)

向量的点积可得出相关性,相关性越大bij即cij越大,反之,输出的概率总和并不等于1,也就是胶囊有同时分类多个物体的能力;

迭代3次后输出,cij越大的高层胶囊将得到更多由低层胶囊提供的信息,cij越小的高层胶囊将得到更少由低层胶囊提供的信息;

primarycaps层到high-levelcaps层为全连接,由n个8维的胶囊向量输出到m个16维的胶囊向量,m为被分出的类别个数;

3-4,三层全连接层重构:通过添加一个能够从顶层胶囊的姿态参数和身份重构输入图像的网络,可以提高胶囊网络的判别能力,重构子网络可以视作一种检测对抗性攻击的非常有效的方法;

将high-levelcaps层输出的向量放入三层全连接网络中进行重构,前两层的激活函数为relu函数,第三层的激活函数为sigmoid函数,最后生成与输入图像大小相同的图像;

3-5,跳跃连接:从第一层卷积层后到high-levelcaps层后增加一段跳跃连接,将原图的背景信息传入全连接重构中;

3-6,capsnet模块损失函数优化,将增强后的特征图进行图像分类:

capsnet网络的损失函数由两部分组成,一个是边缘损失(marginloss),另一个是重构损失(reconstructionloss),重构损失为l2损失,用来最后重构图像,公式如下:

边缘损失函数lmargin用来优化图像分类,公式如下:

lmargin=tkmax(0,m+-||vk||)2+λ(1-tk)max(0,||vk||-m-)2(11)

k表示类别,vk表示第k类的high-levelcaps中的高层胶囊,

公式(11)中,使用one-hot编码向量,提取图像高级实例标签集nor_ins_train中的对应图像标签,如果正确的标签与high-levelcaps层中one-hot编码结果的相同,tk为1,否则为0,正确的标签来自于正常光照下的可见光训练样本图像高级实例标签集;m+为上界,惩罚假阳性,即预测k类存在但真实不存在,分类出来但错了,m-为下届,惩罚假阴性,即预测k类不存在但真实存在,没有分类出来,λ系数以确保训练中的数值稳定性,λ系数值为0.5;

one-hot编码,又称为一位有效编码,主要是采用z位状态寄存器来对z个状态进行编码,每个状态都有其独立的寄存器位,并且在任意时候只有一位有效,该编码是分类变量作为二进制向量的表示;

步骤四,计算总损失函数:

α为权重系数,将重构损失缩小到0.0005倍,使得边缘损失占主导作用,也可根据网格调参法对lcontent、lmargin和lreconstruction不同子损失函数的权重进行调整;

步骤五,训练注意力模块与胶囊网络,包括以下步骤:

5-1,将low_train数据集中的低照度图像导入胶囊网络中,经过第一层卷积层后获取低级特征信息;

5-2,将低级特征信息送入channelattention模块中,对通道进行平均池化和最大池化,并放入mlp(multi-layerperceptron,多层感知器)中进行非线性映射,最后归一化得出第一个权重值;

5-3,将加上第一个权重值的特征图送入spatialattention模块中,对不同位置的所有通道进行平均池化和最大池化,并一起放入卷积层中提取信息,最后归一化为第二个权重值;

5-4,对加上第二个权重的特征图进行lcontent损失计算,得出增强后的特征图;

5-5,将步骤5-4增强后的特征图作为低级特征信息送入胶囊层,组合成向量形式,向量的方向为获取实例的方向,长度为该方向的概率;

5-6,经过两层胶囊层得到图像中高级实例,并且由于胶囊的结构以及没有pooling层,有利于更多细节信息的保留,所以high-levelcaps层可得出不同轮廓清晰细节信息饱满的实例;

5-7,由于两层胶囊层以获取实例为主,可能无法获取整幅图像的所有像素点,所以在primarycaps层前到high-levelcaps层后加入跳跃连接,将一些胶囊层未获取到的非实例信息传入到全连接重构中;

5-8,将high-levelcaps层获取到的信息和跳跃连接中的信息送入三层全连接中进行重构,使得重构图像接近正常光照图像;

5-9,进行损失计算,将high-levelcaps层得到的边缘损失和三层全连接重构得到的重构损失进行线性组合,得到总损失,利用现有的adam(adaptivemomentestimation,自适应矩估计)优化器进行参数更新。

本发明的分类方法利用cbam注意力机制网络,来增强低照度图像的亮度、去除图像的噪声、提高低照度图像的细节,再将增强后的图像输入胶囊网络中进行分类。

本发明通过注意力机制与胶囊网络对低照度图像进行亮度和噪声上的优化,得到亮度增强并且细节清晰的图像,并在分类弱光环境下的图像效果更好。

与现有技术相比,本发明在低光环境下拍摄的图像不受到低动态范围和噪声的影响并仍得到接近于正常照度下的图。

附图说明

图1为cbam模块结构示意图;

图2为动态路由胶囊网络结构示意图;

图3为本发明注意力机制与胶囊网络的低照度图像分类方法实施例的网络结构示意图;

图4为本发明基于注意力机制与胶囊网络的低照度图像分类方法实施例的流程图。

具体实施方式

下面结合附图对本发明的具体实施方式作进一步的说明,但不是对本发明的限定。

图1示出了一种注意力机制cbam,是由通道注意力(channelattention)模块和空间注意力(spatialattention)模块组成,通道注意力中将特征图的每个通道分别同时进行全局池化(通过maxpool进行)和平均池化(通过avgpool进行),空间注意力中将特征图的每个像素分别同时进行全局池化(通过maxpool进行)和平均池化(通过avgpool进行),经过这两个注意力模块的sigmoid激活函数加权得出加权特征图。

注意力机制最初是在1998年从生物学中引入,被称为显著性,而后在2014年被定义为attention(注意力),早前也被用于机器翻译,现在已成为神经网络领域的一个重要概念。在人工智能领域,注意力已成为神经网络结构的重要组成部分,并在自然语言处理、统计学习、语音和计算机等领域有着大量的应用。在计算机视觉方面,由于视觉注意力机制是人类视觉所特有的大脑信号处理机制,人类视觉通过快速扫描全局图像,获得需要重点关注的目标区域,也就是一般所说的注意力焦点,而后对这一区域投入更多注意力资源,以获取更多所需要关注目标的细节信息,而抑制其他无用信息。这是人类利用有限的注意力资源从大量信息中快速筛选出高价值信息的手段,是人类在长期进化中形成的一种生存机制,人类视觉注意力机制极大地提高了视觉信息处理的效率与准确性。其中一个有代表性的注意力机制模块cbam(convolutionalblockattentionmodule,卷积模块的注意力机制模块,简称cbam)如图1所示,在2018年被提出,在图像的分类中达到了当时准确率最高的模型。

图2示出了一种胶囊网络capsnet,先将图片经过卷积层特征提取,随后获取primarycaps层(低级实例组成),接着通过动态路由获得high-levelcaps层(高级实例组成),此时高级实例中为分类结果,最后通过三层全连接重构出原图。卷积层、primarycaps层和high-levelcaps层可看作为一个编码器,三层全连接可看作为解码器。

胶囊网络(capsnet)是由hinton等人于2017年提出的全新的网络,hinto认为要让深度神经网络变得更聪明,就要向无监督学习过渡,反向传播是时候该放弃了,而胶囊形式的网络则是未来深度学习发展的一个趋势,更符合生物学上的神经组织。新提出的动态路由胶囊网络将多个神经元组合成可以包含多种信息的胶囊向量,更好的保留信息,没有pooling(池化)层,同时避免了由于pooling层导致的信息丢失,胶囊间的权重更新使用的是一种通过点积迭代来耦合的方式,而非反向传播,并且通过点积更准确的获取特征之间的位置关系,拥有空间分层和空间推理的能力,不需要大量的数据即可以获得较高的精度,对于处理拥挤重叠的场景也非常有优势,在检测分类领域有较好的表现。动态路由胶囊网络结构如图2所示。

在上述理论基础上,本发明提出了利用注意力模块结合胶囊网络结构,将图像分类领域的cbam注意力模型运用到了图像增强领域中,并加入提出的基于mae(meanabsoluteerror,平均绝对误差,简称mae)+ssim(structuralsimilarity,结构相似性,简称ssim)的内容损失函数,达到对低照度图像进行图像增强后再分类准确率更高的效果。

本发明方法采用图3所示的网络结构示意图及图4所示的训练流程。

图3示出了一种基于注意力机制与胶囊网络的低照度图像分类方法,先利用cbam模块中的通道注意力(channelattention)模块和空间注意力(spatialattention)模块,通过本方法提出的基于mae+ssim的内容损失对低照度图像进行亮度和噪声上的优化,再输入胶囊网络(capsnet)中进行特征的实例化和分类。

图4示出了本发明具体实施步骤。

一种基于注意力机制与胶囊网络的低照度图像分类方法,包括以下步骤:

步骤一,制作数据源,建立数据集:

根据需求,将正常光照的数据集制作出相对应低照度条件的图片,并与正常光照的图片作为数据对,然后将所有图片同一规格大小,形成数据集,根据训练与测试的需求,将数据集分为6个数据集,分别为:

(1)正常光照下的可见光图片训练数据集(nor_train);

(2)图片标签训练数据集(label_train);

(3)低照度下的弱可见光训练图片数据集(low_train);

(4)正常光照下的可见光图片测试数据集(nor_test);

(5)图片标签测试数据集(label_test);

(6)低照度下的弱可见光图片测试数据集(low_test);

网络的训练标签,低照度下的弱可见光训练样本标签集作为网络的训练样本,正常光照下的可见光数据集与低照度下的弱可见光数据集构成图像对,图像内容需要高度相似,图像像素值归一化操作对所有图像数据进行像素值归一化处理,将像素值映射到[0,1]的范围内;

训练集占所有图片数据的80%,测试集占所有图片数据的20%,其中正常光照下可见光图片数据与低照度下弱可见光图片数据的数量为1:1的图像对,如表1所示,

表1,正常光照和低照度下训练集与测试集的数据关系表

步骤二,构建cbam网络模块,将低照度图像增强,第一块为通道注意力(channelattention),第二块空间注意力(spatialattention),包括以下步骤:

2-1,输入nor_train数据集中大小为h×w×c的低照度图像,c表示特征图的长,h表示特征图的宽,w表示特征图的通道数;

2-2,经过一层卷积层,包括卷积操作和relu激活,卷积核大小为9×9,通道数为1,步长为1,有256个,得到特征图f1;

2-3,进入通道注意力:对特征图f1中的每个通道同时分别进行平均池化(avg_pooling)和最大池化(max_pooling),得到两个1×1×256的通道描述,相当于一维特征向量,再同时分别送入两层全连接层,进行下采样和上采样,得到的第一层神经元个数为256/r,r是压缩率,r的值为8,激活函数为relu,得到的第二层神经元个数为256,全连接层中参数和relu函数共享,并行得到的依然是两个一维特征向量,将这两个特征向量相加,接着经过一个sigmoid激活函数得到权重系数mc,最后,跳跃链接拿权重系数mc和原来的特征图f1相乘得到缩放后的特征f2;

2-4,进入空间注意力:将特征图f2每个像素的所有通道分别进行平均池化(avg_pooling)和最大池化(max_pooling),得到两个h×w×1的通道描述,也就是两个二维特征图,接着拼接在一起,经过一个7×7的卷积层,激活函数为sigmoid,得到权重系数ms,最后,拿权重系数ms和特征图f2相乘得到缩放后的特征图f3;

2-5,cbam模块损失函数优化:由基于mae+ssim的内容损失组成,包括以下步骤:

2-5-1,contentloss(内容损失):

属于感知损失函数中的一部分,在mse(meanabsoluteerror,平均绝对误差,简称mae)损失函数的基础上,将预测特征图与目标图片的特征值做损失,得到了内容损失函数,一般的像素级的计算误差没有捕获预测输出和目标参考图像之间的感知区别,特征级关注的是实际图片内容而不是像素值,更能体现实例的整体性,由于mse数学形式更方便,在机器学习领域得到了广泛应用,特点是光滑连续、可导,便于使用梯度下降算法,内容损失函数公式如下:

公式(1)中,h代表第h层神经网络,ch表示第h层神经网络特征图的长,hh表示第h层神经网络特征图的宽,wh表示第h层神经网络特征图的通道数,表示内容损失函数的值,当输入待处理图片后,经过特征提取后得到输出特征同时输入目标图片y与输入一个已经训练好的vgg16网络进行训练,得到φh(y)和

2-5-2,计算mae损失:平均绝对误差mae(meanabsoluteerror)是绝对误差的平均值,它其实是更一般形式的误差平均值,对离群点不那么敏感,更有包容性,鲁棒性更好,公式如下:

公式(2)中,h代表第h层神经网络,ch表示第h层神经网络特征图的长,hh表示第h层神经网络特征图的宽,wh表示第h层神经网络特征图的通道数,yh是目标参考图片的值,xh是网络预测输出的值;

2-5-3,计算ssim损失:结构相似性指数(structuralsimilarityindex,简称ssim)对局部结构变化很敏感,更多的考虑了人眼的视觉感知,在修复图像质量的过程中更有优势,公式如下:

对于两个图像块,他们的ssim始终小于1,1表示完全相似,公式(3)中,μx是网络预测输出图片的所有像素的平均值,μy是目标参考图片的所有像素的平均值,σx是网络预测输出图片的所有像素的方差,σy是目标参考图片的所有像素的方差,c1,c2是为了防止分母为零的情况设置的偏置值;σxy表示网络预测输出图片和目标参考图片的所有像素的协方差;2-5-4,改进的基于mae+ssim的内容损失:由现有文献可知,mse对异常值敏感,因为它的惩罚是平方的,所以异常值的loss会非常大,容易导致出现椒盐噪声,mae可以缓解这个问题,并在图像复原时对边缘轮廓的对比度等效果比较好;结合ssim在在修复图像质量上的优势,有文献指出可以将mae+ssim的模式用在图像增强上面,并通过实验取得相对更好效果;

本发明提出基于mae+ssim的内容损失函数,在cbam模块用预测输出的增强后特征与同时经过cbam模块输出的目标参考特征计算损失,公式如下:

lcontent=lcon-mae+lcon-ssim(6)

h代表第h层神经网络,ch表示第h层神经网络特征图的长,hh表示第h层神经网络特征图的宽,wh表示第h层神经网络特征图的通道数,φy表示目标参考图片经过网络结构得到的特征,表示网络预测输出的特征,lcontent表示内容损失值,lcon-mae表示与基于内容损失的mae损失值,lcon-ssim表示与基于内容损失的ssim损失值;φh(x)为cbam预测输出的增强后的正常光照的特征,φh(y)为目标参考图片经过cbam得到的特征,用特征值代替图片像素值计算损失,所以,为待处理图片cbam预测输出特征的平均值,为目标参考图片经cbam输出的特征的平均值,为待处理图片经cbam输出的特征的方差,为目标参考图片的所有像素的方差,c1,c2是为了防止分母为零的情况而设置的偏置值,在这样一个联合损失函数的作用下使得输入的弱光环境下的低照度的特征可以尽可能学习到正常光照图片的特征,为后续的分类过程创造更好的数据条件;

步骤三,构建胶囊网络(capsnet),将增强后的特征图送入capsnet进行图分类,前两层为编码器,后三层为解码器,包括以下步骤:

3-1,输入增强后的特征图f3到capsnet;

3-2,经过第一层胶囊(低层胶囊)primarycaps,获取低级实例,每个胶囊中包含多个神经元,接受卷积层检测到的基本特征,生成特征的向量组合,包括不同类型的实例化参数,例如姿态,即位置、大小、方向,变形,速度,色相,纹理等,胶囊里一个非常特殊的属性是图像中某个类别的实例的存在,它的输出数值大小就是实体存在的概率,方向表示在不同方向上的检测,本层输出有n个(维度为8的)胶囊ui,每个胶囊由8个卷积核对前一层进行卷积,卷积核大小为9×9,通道数为256,步长为2,i表示该层第i个胶囊;

3-3,胶囊间的动态路由算法(routingalgorithm):这是一个图像分类的过程,由低级实例编码分类成高级实例的目标类别;

将primarycaps层的输出胶囊ui(低级实例)与大小为16×8的变换矩阵w相乘,w编码了低级实例(如:眼睛、嘴巴和鼻子)与高级实例(如:人脸)之间的空间关系和其他重要关系,w通过反向传播来更新,高级实例由多个低级实例组成,也就是最后得到的目标类别;

primarycaps层的输出向量(低级实例)与变换矩阵w相乘后得出的可看做是以ui的视角对高级实例胶囊j的预测,j表示high-levelcaps层的第j个胶囊,再乘以权重值cij求和累加得到sj,cij=softmax(bij),bij定义胶囊i到j的可能性,初始值为0,将低层胶囊i对不同高层胶囊的可能性输出为概率权重值cij,并且∑jcij=1,接着在高层胶囊high-levelcaps中进行求和公式如下:

∑icijuj|i(7)

即组成每个高层胶囊j由primarycaps层组成的相关胶囊进行加权求和,然后经过压缩函数squash():

输入输出都为向量,得到一个小于1的概率vj,即该被所有相关低层胶囊共同预测出的高层胶囊j存在的概率,再用概率vj与uj|i点积更新bij,

bij=bij+uj|i·vj(9)

向量的点积可得出相关性,相关性越大bij即cij越大,反之,输出的概率总和并不等于1,也就是胶囊有同时分类多个物体的能力;

迭代3次后输出,cij越大的高层胶囊将得到更多由低层胶囊提供的信息,cij越小的高层胶囊将得到更少由低层胶囊提供的信息;

primarycaps层到high-levelcaps层为全连接,由n个8维的胶囊向量输出到m个16维的胶囊向量,m为被分出的类别个数;

3-4,三层全连接层重构:hinton提出,通过添加一个能够从顶层胶囊的姿态参数和身份重构输入图像的网络,可以提高胶囊网络的判别能力,并用实验证明了在输入图像和重构图像之间的l2距离上设置阈值可以有效检测出攻击图像,重构子网络可以视作一种检测对抗性攻击的非常有效的方法;

将high-levelcaps层输出的向量放入三层全连接网络中进行重构,前两层的激活函数为relu函数,第三层的激活函数为sigmoid函数,神经元数量分别为512、1024、784,最后生成与输入图像大小相同的图像;

3-5,跳跃连接:从第一层卷积层后到high-levelcaps层后增加一段跳跃连接,将原图的背景信息传入全连接重构中;

注:hinton提出的动态路由胶囊网络结构模型细节如表2所示,可供参考,输入图片大小为28×28像素点:

表2胶囊网络结构参数设置参考

3-6,capsnet模块损失函数优化,将经过cbam模块增强后的特征图进行图像分类:

capsnet网络的损失函数由两部分组成,一个是边缘损失(marginloss),另一个是重构损失(reconstructionloss),重构损失为l2损失,用来最后重构图像,公式如下:

边缘损失函数lmargin用来优化图像分类,公式如下:

lmargin=tkmax(0,m+-||vk||)2+λ(1-tk)max(0,||vk||-m-)2(11)

k表示类别,vk表示第k类的high-levelcaps中的高层胶囊,

公式(11)是用于图像分类的损失函数,公式(11)中,使用one-hot编码向量,提取图像高级实例标签集nor_ins_train中的对应图像标签,如果正确的标签与high-levelcaps层中one-hot编码结果的相同,tk为1,否则为0,正确的标签来自于正常光照下的可见光训练样本图像高级实例标签集;m+为上界,惩罚假阳性,即预测k类存在但真实不存在,分类出来但错了,m-为下届,惩罚假阴性,即预测k类不存在但真实存在,没有分类出来,λ系数以确保训练中的数值稳定性,λ系数值为0.5,tkmax(0,m+-||vk||)2和λ(1-tk)max(0,||vk||-m-)2取平方是为了让损失函数符合l2正则,正则化一下效果更好;

one-hot编码,又称为一位有效编码,主要是采用z位状态寄存器来对z个状态进行编码,每个状态都有其独立的寄存器位,并且在任意时候只有一位有效,该编码是分类变量作为二进制向量的表示,这首先要求将分类值映射到整数值,然后,每个整数值被表示为二进制向量,除了整数的索引之外,它都是零值,它被标记为1;

步骤四,计算总损失函数:

α为权重系数,将重构损失缩小到0.0005倍,使得边缘损失占主导作用,也可根据网格调参法对lcontent、lmargin和lreconstruction不同子损失函数的权重进行调整;

步骤五,训练注意力模块与胶囊网络,包括以下步骤:

5-1,将low_train数据集中的低照度图像导入胶囊网络中,经过第一层卷积层后获取低级特征信息;

5-2,将低级特征信息送入channelattention模块中,对通道进行平均池化和最大池化并放入mlp(multi-layerperceptron,多层感知器)中进行非线性映射,最后归一化得出第一个权重值;

5-3,将加上第一个权重值的特征图送入spatialattention模块中,对不同位置的所有通道进行平均池化和最大池化,并一起放入卷积层中提取信息,最后归一化为第二个权重值;

5-4,对加上第二个权重的特征图进行lcontent损失计算,得出增强后的特征图;

5-5,将步骤5-4增强后的特征图作为低级特征信息送入胶囊层,组合成向量形式,向量的方向为获取实例的方向,长度为该方向的概率;

5-6,经过两层胶囊层得到图像中高级实例,并且由于胶囊的结构以及没有pooling层,有利于更多细节信息的保留,所以high-levelcaps层可得出不同轮廓清晰细节信息饱满的实例;

5-7,由于两层胶囊层以获取实例为主,可能无法获取整幅图像的所有像素点,所以在primarycaps层前到high-levelcaps层后加入跳跃连接,将一些胶囊层未获取到的非实例信息传入到全连接重构中;

5-8,将high-levelcaps层获取到的信息和跳跃连接中的信息送入三层全连接中进行重构,使得重构图像接近正常光照图像;

5-9,进行损失计算,将high-levelcaps层得到的边缘损失和三层全连接重构得到的重构损失进行线性组合,得到总损失,利用现有的adam(adaptivemomentestimation,自适应矩估计)优化器进行参数更新。

以上结合附图对本发明的实施方式做出了详细说明,但本发明不局限于所描述的实施方式。对于本领域技术人员而言,在不脱离本发明的原理和精神的情况下,对这些实施方式进行各种变化、修改、替换和变型仍落入本发明的保护范围。

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