室内图像中家具多标签标注的实现
2018-01-06马天瑶
马天瑶
摘要:在基于图像进行家居虚拟设计的应用中,由于图像缺乏场景的深度信息、物体之间存在相互遮挡等问题,给获取图像信息带来一定的挑战。该文利用深度学习技术,提出了一种结合卷积神经网络和循环神经网络的方法,对室内图像进行特征提取,实现家具的多标签标注,以获取家具的属性信息,包括种类、位置、颜色和材质等。结果表明,该方法提高了虚拟展示内容的丰富性和精确性,为家居智能交互作了很好的铺垫。
关键词: 深度学习; 图像标注; 卷积神经网络; 循环神经网络; Faster R-CNN
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2017)35-0219-03
A Method of Dense Furniture Caption for Indoor Images
MA Tian-yao
(School of Software Engineering, Tongji University, Shanghai 201804, China)
Abstract: In the application of image-based virtual house design system, it becomes a huge challenge to obtaining rich information from images because of some problems such as the lack of scene depth and the occlusion between objects. With the development of deep learning, this paper proposes a method of dense furniture caption for indoor images, which combines CNN and RNN to extract features. It can get multiple information of furniture, such as classification, location, color, material, etc. The result indicates that the method improves the richness and accuracy of furniture information, which makes a great contribution to virtual house design system.
Key words: deep learning; image caption; CNN; RNN; Faster R-CNN
隨着互联网的迅速发展,家居虚拟展示跨越了时空的局限,帮助用户直观、全面地了解到室内设计方案,因而被家居行业广泛接受。近年来,基于图像进行家居虚拟设计[1]的方法不断涌现,在一定程度上克服了纯3D技术渲染速度慢、模型制作复杂等缺点,且素材丰富、获取容易。但是,图像往往缺少一些关键信息,如场景的深度信息等。同时,室内图像中物品之间存在相互遮挡,这些都会给获取图像信息带来一定的挑战。
本文着力于获取丰富、准确的图像信息,利用深度学习技术,设计出一个合理的、高效的解决方案来对室内图像中的家具进行多标签标注,以获取其属性信息,包括种类、位置、颜色以及材质等,进而降低家居虚拟展示过程的复杂性,并提高虚拟展示的内容丰富性和精确性。
1 基于Faster R-CNN的物体多标签标注模型
本文将采用卷积神经网络Faster R-CNN[2]和循环神经网络GRU[3]结合的方式对室内图像中的物体进行多标签多标签标注。首先,将Faster R-CNN的最后一层与两个全连接层相连,每个全连接层都使用ReLU[4]和Dropout[5]。然后,把上述生成的图像特征和Word2vec生成的词向量特征作为输入,连接到GRU中。
在训练GRU时,对于文本,其词向量标记为。其中,表示区域编码,对应特定符号
1.1 Faster R-CNN的代价函数
为了减少Fast R-CNN[6]在计算候选区域时所消耗的时间,Faster R-CNN在其基础上提出了候选区域网络(Region Proposal Network, RPN)来加以改进,生成region proposal。在最后一层卷积层输出的feature map上设置了一个滑动窗,该滑动窗与RPN进行全连接。对于滑动窗滑过的每个位置,模型中给定若干个以滑动窗中心为中心、不同尺度与长宽比的anchor,RPN将以每个anchor为基准相应地计算出一个候选区域。候选区域网络是一个全卷积网络,网络的第一层将滑动窗的输入特征映射到一个较低维的向量,然后将该向量输入到两个并列的全连接子层,其中分类层(cls layer)用于输出该向量对应图像属于物体还是背景的概率分布,回归层(reg layer)用于输出候选区域的坐标信息。
Faster R-CNN的损失函数可定义为:
其中,i表示第i个anchor,表示预测其是物体的概率,表示预测bounding box的4个参数化坐标。分类损失是一个二值分类器的softmax loss,回归损失。和是两个normalization参数,是平衡因子。
对于bounding box的回归,4个参数化坐标定义如下:
其中,x、y、w、h表示box的中心坐标以及它的宽度和高度,、、分别针对于预测的box、anchor box和实际的box(y、w、h类似)。可以认为是从一个anchor box到一个附近实际的box的bounding box回归。
1.2 RNN的代价函数
GRU是一般RNN的改良,主要是从以下两个方面进行改进。一是,序列中不同的位置处的单词对当前的隐藏层的状态的影响不同,越前面的影响越小,即每个前面状态对当前的影响进行了距离加权,距离越远,权值越小。二是,在产生误差时,误差可能是由某一个或者几个单词而引发的,所以应当仅仅对对应的单词权重进行更新。GRU也可以看成是LSTM[]的变种,GRU把LSTM中的forget gate和input gate用update gate来替代。把cell state和隐藏状态进行合并,在计算当前时刻新信息的方法和LSTM有所不同。具体更新过程如下:
1) 计算reset gate和update gate,分别标记为和。
2) 计算候选隐藏层,和LSTM中的,可以看成是当前时刻的新信息。
3) 计算得到最后输出的隐藏层信息,与LSTM的区别是GRU中没有output gate。
其中,用来控制需要保留多少之前的记忆,如果接近0,那么之前的隐藏层信息就会丢弃,只包含当前词的信息。则控制需要从前一时刻的隐藏层中遗忘多少信息,需要加入多少当前时刻的隐藏层信息,如果接近1,相当于把之前的隐藏层信息拷贝到当前时刻,可以学习长距离依赖。一般来说那些具有短距离依赖的单元reset gate比较活跃,具有长距离依赖的单元update gate比较活跃。
RNN的损失函数通常被定义为交叉熵(cross entropy)。t时刻的损失函数计算如下:
对于大小为T的文本,其损失函数定义如下:
1.3 模型的端到端训练
为了给模型更多可以根据数据自动调节的空间,增加模型的整体契合度,尽可能使模型从原始输入到最终输出实现端到端学习,本文将在图像标注网络结构中增加以下两个层:
1) RoI pooling层
由于RoI的尺寸不固定,为了保证每个RoI的后续工作能够正常进行,需要有一个RoI pooling层来提取出固定维度的特征表示。RoI pooling的具体实现可以看做是针对RoI区域的普通feature map的max pooling。
2) RoI warping层
为了使得梯度可以反向传播到坐标上,在RPN之后对region proposal的位置做二次调整,需要在RoI pooling层之前添加可以求导的RoI warping层来将残差传递给bounding box。对于每个RoI,其feature map都会被crop和warp到固定大小,转换方法如下:
其中,和分别表示warp之前和之后feature map的元素位置。表示长度和宽度两个方向上的双线性插值函数乘积。
于是,根据链式法则,bounding box的参数导数计算如下:
2 家具多标签标注训练方法的总体设计
在家具多标签标注训练方法的总体设计中,选择包含图像标注的MS COCO[8]作为数据集输入至网络模型中进行训练。
由于研究内容针对室内图像中的家具,因此,在把数据集输入至网络模型之前需要对其做预处理。首先,明确和家具相关的物体类别;然后,遍历MS COCO中的标注文件,删除和家具无关的标注信息,即将室外图像和室内图像中和家具无关的物体当成负样本。另外,在之后的训练过程中,可以进行迭代训练以提高家具识别的准确率。
在网络模型训练过程中,主要有以下三个步骤:
1) 模型搭建。首先,选择同时支持对CNN和RNN训练的深度学习框架作为平台进行模型搭建,然后,根据图像标注的网络模型结构设置各层的排列方式,并且定义filter的数量和尺寸以及pooling的方式。最后进行参数初始化以及定义超参数、损失函数和优化方式。这里,超参数包括mini-batch的大小、学习率的大小、正则化的程度以及dropout的比例等。
2) 模型检查。为了确保模型的正确合理,需要对搭建的模型进行一些检查,检查的内容包括:
①梯度检查
把解析梯度和数值计算梯度进行比较。这里将使用中心化公式近似表示数值计算梯度。
②合理性检查
对小数据子集过拟合。在整个数据集进行训练之前,尝试在一个很小的数据集上进行训练(比如20个数据),然后确保能到达0的损失值。在这个过程中,最好让正则化强度为0,不然它会阻止得到0的损失。除非能通过这个正常性检查,不然进行整个数据集训练是没有意义的。
3) 模型跟踪。在超参数调优时,需要跟踪一些重要的数值并绘制图表,从而知道应该如何修改超参数以获得更高效的学习过程。最后选取表现较好的超参数。这里需要跟踪的数值包括:
①损失值
绘制损失值随时间变化的图表,曲线形状会给出关于学习率的设置情况。过低的学习率导致算法的改善是线性的;高一些的学习率会看起来呈几何指数下降;更高的学习率会让损失值很快下降,但是接着就停在一个不好的损失值上。
②训练集和验证集的准确率
绘制训练集和验证集的准确率随时间变化的图表,訓练集准确率和验证集准确率中间的空隙指明了模型过拟合的程度。一种可能是,相较于训练集,验证集的准确率低了很多,说明模型有很强的过拟合,遇到这种情况,就应该增大正则化强度(更强的L2权重惩罚,更多的随机失活等)或收集更多的数据;另一种可能是验证集曲线和训练集曲线如影随形,说明模型容量还不够大,应该增加参数数量。
最后,将室内图像输入至合理超参数定义下的已训练的标注网络中,得到图像中包含物体的区域的坐标信息以及对应的物体的属性信息,完成家具的多标签标注。
3 结论endprint
在智能家居交互系統中,对图像家具信息提取的准确性和丰富性成为了系统成型的关键。本文研究了卷积神经网络和循环神经网络的训练,并以此设计和实现了基于Faster R-CNN的图像多标签标注模型。该方法首次被应用到虚拟家居设计领域中,提高了虚拟展示内容的丰富性和精确性,为家居智能交互作了很好的铺垫。
参考文献:
[1] 王海菲, 贾金原, 谢宁. 复杂室内图像的灭点检测与箱体重建方法[J]. 计算机科学与探索, 2016, 10(5).
[2] Ren S, He K, Girshick R, et al. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks.[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2016:1-1.
[3] Cho K, Merrienboer B V, Gulcehre C, et al. Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation[J]. Computer Science, 2014.
[4] Glorot X, Bordes A, Bengio Y. Deep Sparse Rectifier Neural Networks[C]. International Conference on Artificial Intelligence and Statistics. 2011.
[5] Srivastava N, Hinton G, Krizhevsky A, et al. Dropout: a simple way to prevent neural networks from overfitting[J]. Journal of Machine Learning Research, 2014, 15(1):1929-1958.
[6] Girshick R. Fast R-CNN[J]. Computer Science, 2015.
[7] Hochreiter S, Schmidhuber J. Long Short-Term Memory[J]. Neural Computation, 1997, 9(8):1735.
[8] Lin T Y, Maire M, Belongie S, et al. Microsoft COCO: Common Objects in Context[J]. 2014, 8693:740-755.endprint