一种融合视觉上下文的图像描述方法
技术领域
本发明涉及计算机视觉技术领域和自然语言处理领域,具体是深度神经网络和强化学习方法中的一种融合视觉上下文的图像描述方法。
背景技术
图像描述可以理解为给定一张图片,生成一段用自然语言描述的文字,图像描述和视觉问答属于计算机视觉和自然语言处理的交叉的领域,比目标检测、图片分类和语义分割等任务更具有挑战性,因为它在抽取图像实体和属性的同时还要推理出实体和属性之间的关系,图像描述在盲人导航、儿童早教、图文检索等方面有着广泛应用前景。
图像描述中需要使用编码网络和解码网络,残差网络的提出解决了编码网络在训练中梯度弥散的问题,使得编码网络的层数大大增加,图像描述中使用编码网络提取图像特征,通过不同尺寸的卷积核得到不同尺寸的特征通道,受机器翻译的启发,将编码网络替换成解码网络,解码网络(Recurrent Neural Network,简称RNN)通过带有树状相似的编码网络结构来递归复杂的深度网络,本质上,解码网络是对循环神经网络的一个有效扩展,他们具有不同的计算图,解码网络包括层内的加权连接(与传统前馈网络相比,连接仅馈送到后续层)。因为RNN包含循环,所以它们可以在处理新输入的同时存储信息,这种记忆使它们非常适合处理必须考虑事先输入的任务,比如时间序列数据,解码网络非常适合处理文本、语音、视频等时间序列数据样本,图像描述中将编码网络提取的图像特征看成是时间序列样本输入到解码网络中,然而仅使用编码网络和解码网络并不能取得很好的效果,编码网络存在网络中参数过多和梯度弥散等问题。
强化学习是机器学习的一个重要分支,是多学科多领域交叉的一个产物,它的本质是解决序列决策问题,即自动进行决策,并且可以做连续决策,它主要包含四个元素,代理,环境状态,行动,奖励,强化学习的目标就是获得最多的累计奖励,强化学习和监督学习最大的区别不需要额外的监督,对正确决策予以奖励,错误决策予以惩罚,强化学习只有奖励值,但是这个奖励值和监督学习的输出值不一样,它不是事先给出的,而是延后给出的,比如走路摔倒了才得到大脑的奖励值,同时,强化学习的每一步与时间顺序前后关系紧密,而监督学习的训练数据之间一般都是独立的,没有这种前后的依赖关系,图像描述中存在着暴露偏差现象,即训练的时候递归神经网络在每一时刻输入的是句子真的真是标签,然而在测试时,递归神经网络下一时刻的输入是上一时刻的输出。因此未出现过的句子在测试时将严重影响试验性能。
发明内容
本发明的目的是针对现有技术中存在的不足,而提供一种融合视觉上下文的图像描述方法。这种方法融合了视觉上下文网络,能够保证提取图像特征的准确性,避免视觉错误,使生成的描述更加的流畅以符合人类的语法规则,可使评价指标获得更高的分数。
实现本发明目的的技术方案是:
一种融合视觉上下文的图像描述方法,包括如下步骤:
1)预处理:将MS-COCO图像描述数据集中的图像分为训练集和测试集,分别对训练集和测试集中的图像进行预处理;
2)图像的描述标签进行预处理:训练集中的每张图像对应的5句话作为图像的描述标签,设定每张图像的描述为16个单词长度,对于不满16个单词的句子使用令牌填充,出现次数少于5次的单词过滤舍弃,其中图像对应的描述标签为固定值,每张图像的描述长度自行设定;
3)提取特征:将训练集中的图像经过编码网络提取图像的特征,即裁剪或扩充图像的大小为512*512,并经过编码网络中卷积核大小为7*7的卷积层进行卷积,此时图像的特征通道变为64维,特征图缩小一倍;
4)均值池化:将步骤3)的特征图进行下采样,然后经过均值池化得到池化特征图1;
5)卷积、均值采样池化:将池化特征图1进行卷积运算,再次通过均值采样进行池化操作,此时卷积通道为128维,特征图缩小4倍,得到池化特征图2;
6)获取检测图像实体:将池化特征图2通过Sigmoid函数进行激活,然后通过编码网络的全连接层1输出特征图2到融合网络的模块控制器中,再经过5*5的卷积层卷积,得到图像的初级特征图,初级特征图作为检测图像的实体;
7)获取实体属性:步骤6所得的每个实体经过编码网络的区域推荐网络生成36个区域推荐候选框,对每个候选框进行卷积得到对应实体的属性;
8)卷积:将步骤6)中的初级特征图进行卷积操作,得到特征图3,此时使用的卷积核为3*3,卷积通道为256维,特征图3缩小8倍;
9)获取实体属性特征:对特征图3通过Tanh函数进行激活,然后通过编码网络的全连接层2输出激活后的特征图3到融合网络中的模块控制器中,得到特征图4,特征图4作为实体的属性特征;
10)对特征图3进行卷积操作,此时特征图3的大小是64*64,通道大小为256维,经过3*3的卷积核之后,得到特征图5,特征图5的大小为32*32,图像通道大小为512维;
11)对特征图5经过大小为3*3的卷积核卷积,得到图像大小为16*16,图像通道为1024维的特征图6;
12)对特征图6经过大小为3*3的卷积核卷积,得到图像大小为8*8,图像通道为2048维的特征图7;
13)获取实体和属性的关系:对特征图7进行最大值池化操作,然后选取ReLu作为激活函数对池化后的特征图7进行激活,激活后的特征图7作为实体和属性的关系通过编码网络的全连接层3送入到融合网络的模块控制器和融合模块中;
14)搭配实体和属性的关系:模块控制器对步骤13)中送入到模块控制器中的特征图7作为实体和属性的关系进行搭配,其中搭配的视觉信息由融合网络生成,非视觉信息由解码网络生成;
15)LSTM训练:将搭配后的特征图7输入到解码网络中的LSTM进行训练,在训练的过程中下一单词生成使用的是标签描述;
16)解决暴露偏差:经过40轮迭代后,使用强化学习训练解决解码网络的暴露偏差,强化学习的奖励选取CIDEr,然后将CIDEr送入到融合网络的模块控制器和融合网络中;
17)降低维度:将训练好的句子通过LSTM输出到解码网络的全连接层进行降低维度,其中LSTM输出使用Sigmoid作为激活函数;
18)归一化:将进行了维度降低的句子通过softmax批量归一化到(0,1)之间,在选取描述单词时,每次选取概率最大的前5个单词进行输出;
19)步骤18)输出的5个单词即为当前图像的特征描述,当输出结束时,得到此图像完整的描述语句;
20)对MS-COCO图像描述数据集中剩余的图像重复步骤2)-步骤19)的操作,得到MS-COCO图像描述数据集中所有图像的完整的描述语句,即得到的MS-COCO图像描述数据集中每个图像的完整的描述语句对应一个训练好的模型;
21)将步骤1)中的测试集输入到步骤20)训练好的模型中,测试并验证模型的训练效果和性能。
步骤1)中所述的分别对训练集和测试集中的图像进行预处理,其过程分别如下:
训练集中的图像的预处理过程为:先对训练集中的图像进行裁剪,再将裁剪后的图像水平翻转,然后将翻转后训练集的图像进行归一化;测试集中的图像的预处理过程为:对测试集中图像进行裁剪。
步骤6)中所述的Sigmoid函数表示为:
其中e为数学中的指数,Z为变量。
步骤9)中所述的Tanh激活函数表示为:
其中a为在t时刻的视觉特征向量。
步骤13)中所述的Relu激活函数表示为:
所述编码网络为Resnet101残差网络。
所述融合网络中的模块控制器描述序列的词性搭配,模块控制器生成四个软权重,生成过程为:
其中,x是三个视觉输入向量的拼接,w是一个四维的软注意力向量,最终生成的向量vt送入解码网络中解码。
所述融合网络中的融合模块用于降低非视觉单词梯度对视觉信息的有效性,并生成使描述序列更加流畅的非视觉信息单词,比如“a”或者“an”,解码网络针对不同词性的单词有不同的注意力策略,非视觉信息单词的生成更多依赖语义信息而非视觉信息在每一个时间步t,标准化注意力权重αi,t可计算为:
其中
为训练中的学习参数,在每一时刻由
决定虚词“a”或者“an”由模型产生还是由解码网络生成,
可表示为:
β
t=0.5时,效果最佳,
为自适应特征向量,则自适应注意力的环境编码为:
步骤7)中所述的区域推荐网络在特征图上使用一个滑动窗口,得到一个256维度的中间层,其中每一个卷积特征图使用K个锚点进行固定,经过区域推荐网络后能够产生2k个分类层和4K个回归层。
这种方法融合了视觉上下文网络,保证了提取图像特征的准确性,避免视觉错误,使生成的描述更加的流畅以符合人类的语法规则,使评价指标获得更高的分数。
附图说明
图1为实施例的结构示意图;
图2为实施例中融合模块的示意图;
图3为实施例中模块控制器的结构示意图;
图4为实施例中Resnet101残差网络的结构示意图;
图5为实施例中区域推荐网络的结构示意图。
具体实施方式
下面结合附图和实施例对本发明的内容作进一步的阐述,但不是对本发明的限定。
实施例:
参照图1,一种融合视觉上下文的图像描述方法,包括如下步骤:
1)将MS-COCO图像描述数据集中的图像按7:3分为训练集和测试集,对训练集的图像水平翻转和亮度变换,最后再将图像归一化为每张图像所有像素值的均值为0,方差为1,将测试集的照片尺寸固定为512×512像素,不进行其余处理;
2)图像的描述标签进行预处理:MS-COCO图像描述数据集中的每张图像对应的5句话作为图像的描述标签,设定每张图像的描述为16个单词长度,对于不满16个单词的句子使用令牌填充,出现次数少于5次的单词过滤舍弃,得到一个包含10369个单词的词汇表,其中图像对应的描述标签为固定值,每张图像的描述长度自行设定;
3)将MS-COCO图像描述数据集中的图像,经过编码网络提取图像的特征,即裁剪或扩充图像的大小为512*512,本例编码网络为Resnet101残差网络,如图4所示,并经过Resnet101残差网络中卷积核大小为7*7的卷积层进行卷积,此时图像的特征通道变为64维,特征图缩小一倍;
4)将步骤3)的特征图进行下采样,然后经过均值池化得到池化特征图1;
5)将池化特征图1进行卷积运算,再次通过均值采样进行池化操作,此时卷积通道为128维,特征图缩小4倍,得到池化特征图2;
6)将池化特征图2通过Sigmoid函数进行激活,其中Sigmoid函数表示为:
e为数学中的指数,Z为变量,
激活后的特征图2通过Resnet101残差网络的全连接层1输出到融合网络的模块控制器中,再经过5*5的卷积层卷积,得到图像的初级特征图,初级特征图作为检测图像的实体,如图3所示,融合网络中的模块控制器描述序列的词性搭配,模块控制器生成四个软权重,生成过程为:
其中,x是三个视觉输入向量的拼接,w是一个四维的软注意力向量,最终生成的向量vt送入解码网络中解码;
7)步骤6所得的每个实体经过Resnet101残差网络的区域推荐网络生成36个区域推荐候选框,对每个候选框进行卷积得到对应实体的属性,如图5所示,区域推荐网络在特征图上使用一个滑动窗口,得到一个256维度的中间层,其中每一个卷积特征图使用K个锚点进行固定,经过区域推荐网络后能够产生2k个分类层和4K个回归层,为减少过拟合和降低计算的复杂度,本例选取前36个锚点进行进行输出;
8)将步骤6)中的初级特征图进行卷积操作,得到特征图3,此时使用的卷积核为3*3,卷积通道为256维,特征图3缩小8倍;
9)对特征图3通过Tanh函数进行激活,其中Tanh激活函数表示为:
a为在t时刻的视觉特征向量,激活后的特征图3通过Resnet101残差网络的全连接层2输出到融合网络中的模块控制器中,得到特征图4,特征图4作为实体的属性特征;
10)对特征图3进行卷积操作,此时特征图3的大小是64*64,通道大小为256维,经过3*3的卷积核之后,得到特征图5,特征图5的大小为32*32,图像通道大小为512维;
11)对特征图5经过大小为3*3的卷积核卷积,得到图像大小为16*16,图像通道为1024维的特征图6;
12)对特征图6经过大小为3*3的卷积核卷积,得到图像大小为8*8,图像通道为2048维的特征图7;
13)对特征图7进行最大值池化操作,选取ReLu作为激活函数对池化后的特征图7进行激活,Relu激活函数表示为:
激活后的特征图7作为实体和属性的关系通过编码网络的全连接层3送入到融合网络的模块控制器和融合模块中,如图2所示,所述融合网络中的融合模块用于降低非视觉单词梯度对视觉信息的有效性,并生成使描述序列更加流畅的非视觉信息单词,比如“a”或者“an”,解码网络针对不同词性的单词有不同的注意力策略,非视觉信息单词的生成更多依赖语义信息而非视觉信息在每一个时间步t,标准化注意力权重α
i,t可计算为:
其中
为训练中的学习参数,在每一时刻由
决定虚词“a”或者“an”由模型产生还是由解码网络生成,
可表示为:
β
t=0.5时,效果最佳,
为自适应特征向量,则自适应注意力的环境编码为:
14)模块控制器对步骤13)中送入到模块控制器中的特征图7作为实体和属性的关系进行搭配,其中搭配的视觉信息由融合网络生成,非视觉信息由解码网络生成;
15)将搭配后的特征图7输入到解码网络中的LSTM进行训练,在训练的过程中下一单词生成使用的是标签描述;
16)经过40轮迭代后,使用强化学习训练解决解码网络的暴露偏差,强化学习的奖励选取CIDEr,然后将CIDEr送入到融合网络的模块控制器和融合网络中;
17)将训练好的句子通过LSTM输出到解码网络的全连接层进行降低维度,其中LSTM输出使用Sigmoid作为激活函数;
18)将进行了维度降低的句子通过softmax批量归一化到(0,1)之间,在选取描述单词时,每次选取概率最大的前5个单词进行输出;
19)步骤18)输出的5个单词即为当前图像的特征描述,当输出结束时,得到此图像完整的描述语句;
20)对MS-COCO图像描述数据集中剩余的图像重复步骤2)-步骤19)的操作,得到MS-COCO图像描述数据集中所有图像的完整的描述语句,即得到的MS-COCO图像描述数据集中每个图像的完整的描述语句对应一个训练好的模型;
21)将步骤1)中的测试集输入到步骤20)训练好的模型中,然后输出一句描述语句,对这句描述语句依据七个评价指标进行评价,如下表1所示:
表1
从表中可知,七个评价指标分别又分了两个小指标,其中,c5表示每张图像的输出5句话描述,c40表示每张图像的输出40句话描述,14项指标中,本例有10项比测试集的高,因此本例训练好的模型训练效果和性能优越。