图像分割是计算机视觉处理领域的一个研究热点。实际中,我们常常需要按照一定的规则,将图像空间划分为不同的部分,分割和提取出感兴趣的目标区域,从而进行更深层次的图像理解和分析。传统的图像分割技术采用颜色和纹理等特征,基于阈值、边缘进行划分区域,使得区域间有较高的差异性、区域内有较高的相似性。
具有代表性的传统图像分割算法有OTSU算法[1]、Canny边缘检测[2]、分水岭算法[3]、图切割算法[4]等等。OTSU算法将像素和阈值直接进行比较,确定像素的所属类别,其中阈值通过最大化类间方差来自适应确定。Canny边缘检测依据区域间图像特征的突变,采用微分算子确定边缘或者兴趣点。分水岭算法基于拓扑理论,考虑像素的空间位置和灰度相似性。而图切割算法是将图像映射为带权无向图,采用基于图论的方法来实现图像分割。传统的图像分割算法属于非监督的方法,一般对噪声较为敏感,特别在处理大规模数据时具有很大的局限性。另外传统图像分割方法大多为无监督方法,无法得到分割结果中每个区域的语义类别。
随着深度学习的快速发展,深度卷积神经网络在图像分类、目标检测、图像分割等任务上均获得了巨大的成功。实际上,基于深度学习的方法不再需要单独进行复杂的特征提取,而是构造含有大量参数的深层神经网络,利用对大规模训练数据的学习,自动地进行特征的逐步抽象和提取。另外,深度网络模型可在大数据环境进行监督学习,即学习不同语义类别的分割模式,所训练的模型能够对一幅图像中的每个像素点指定一个语义类别而得到整体的具有语义的分割结果。这种形式的图像分割被称为语义分割,在计算机视觉中具有重要的理论意义和应用价值。
全卷积网络[5](Fully Convolution Network, FCN)便是第一个端到端的基于深度学习的语义分割网络。图像经过卷积和池化层逐步编码得到高阶特征,提取的特征图也随之缩小,再通过反卷积或者插值,逐步解码得到和原图大小一致的密集预测结果。相比于FCN解码阶段较为粗糙,会丢失重要的细节信息,SegNet[6]在解码阶段加入编码阶段池化层的索引信息,U-Net[7]的解码过程结合下采样各层信息和上采样的输入信息,以此恢复细节信息,逐步还原图像精度。除了编码-解码的结构外,DeepLab系列算法[8-9]采用带孔卷积取代普通卷积,使得下采样过程有足够大的感受野,同时保持一定的图像尺寸,并通过带孔卷积金字塔池化(Atrous Spatial Pyramid Pooling, ASPP)结构[8]实现多尺度学习。然而,这类算法需要处理高分辨率的特征图,因此计算成本比较昂贵。
目前,图像分割技术已被应用到不同的领域。在医学图像中,图像分割技术可用于辅助诊断[10-12]。卫星图像中,图像分割技术用来实现目标定位[13-14]。在自动驾驶问题中,通过图像分割技术完成画面中道路、树木、行人的划分[15-16]。本文将采用图像语义分割技术,从红酒图像中切割出含有酒标信息的区域,剔除无关的背景信息,这对于酒标信息的准确识别具有重要的意义。
本文的结构安排如下:在第2节中,我们详细介绍酒标分割任务以及构建的数据集;我们在第3节中设计了酒标分割模型,其中包括基础网络模型、底层图像特征编码解码结构和带孔卷积金字塔池化结构;在第4节中,我们进行对比实验,比较不同深度网络模型在酒标分割任务上的效果;最后在第5节中对本文工作进行总结。
红酒检索系统由红酒信息库与红酒图像匹配算法两部分组成。其中红酒信息库包括红酒图像与对应的品牌、产地、品种和年份等信息。当一张红酒图像送入检索系统,根据图像匹配技术,从红酒信息库中找到和该图像最为匹配的图像,从而返回该红酒的所有详细信息。受到光照、噪声等影响,匹配时的特征点经常会出现在非酒标区域,影响检索效果。因此,我们需要进行预处理,从图像中分割出酒标区域,去除背景区域对图像匹配的影响。因此酒标分割的目标是对图像上的每个像素点进行分类,分至酒标或者背景两个类别的其中一个。这本质上是一个区域检测或目标识别问题。
为了训练红酒酒标分割模型,并且对模型进行定量的评价,我们在本文中构建了一个大规模的红酒酒标分割数据集。由于基于深度学习的语义分割任务相当于对图像进行了逐像素点的分类,因此在模型训练阶段需要图像逐像素点的标注。
数据集的构建过程如下:我们首先从红酒图像数据库(包含约80万张红酒图像)中随机选取了一部分图像,经过人工清洗后留下了质量较好的7795张红酒图像,并且统一将图像尺寸缩放至长边500像素短边375像素;对于每一张图像,我们人工框出一个包含完整酒标区域并且尽量紧凑的多边形,将多边形内部的像素点标记为酒标,外部像素点标记为背景。最后我们将7795张图像随机切割为7000张与795张,分别作为训练集和测试集。
图像的标注如图1所示。左图为一张手机拍摄的红酒图像,右图为对应的酒标切割标注的可视化结果,其中白色像素点代表酒标区域,黑色像素点为背景。我们在图2中展示了数据集中的部分图像。这些图像在不同的场景下拍摄,拍摄角度多样,有些图像的酒标位置有亮斑,或者亮度较暗,和背景难以区分。
图1 酒标分割数据集标注
Fig.1 Annotation of wine segmentation dataset
图2 酒标分割数据集示例
Fig.2 Examples of wine segmentation dataset
我们采用深度残差网络[17](Deep Residual Network, ResNet)进行特征提取,构造了如图3所示的酒标分割网络。Conv_in模块是由步长为2的卷积层和核为2*2的池化层组成,因此输出的特征图尺寸仅为原图的1/4。Block模块由多个残差瓶颈(Bottleneck)结构的残差模块构成。
图3 基于ResNet50的基础酒标分割模型
Fig.3 Baseline model with ResNet50 backbone
如图4所示,每个残差模块由三个卷积层组成:其中第一个1*1卷积层负责对特征进行4倍降维,以减少第二个3*3卷积层的参数量与计算代价;第二个3*3卷积层则进行局部特征的提取;最后再通过一个1*1卷积将特征维度恢复。两端特征层维度高而中间特征层维度低的结构酷似瓶颈,因此成为瓶颈结构(bottleneck)。为了克服深层网络模型回传时出现梯度消失的问题,残差模块添加了从输入到输出的自身映射,组成跳跃连接层,因此卷积结构只负责学习从输入到输出的残差部分。
图4 残差瓶颈结构[17]
Fig.4 Bottleneck structure[17]
输入图像经过Conv_in和Block模块,通过卷积和池化操作增大感受野,逐步提取高阶特征。每经过一个Block模块,输出的特征图扩大为原有通道数的两倍,缩小为原尺寸的一半。因此,Block4结构输出的特征图的尺寸仅为原图像的1/32。我们通过一个1*1卷积对最终的酒标和背景两个类别进行预测,得到原始图像1/32尺寸的输出热图,称作Pred-32s。为了恢复原图像的大小,我们直接对热图双线性插值得到最终预测结果。
在模型训练阶段,我们计算模型预测与真值图之间的Log交叉熵损失,通过优化这个损失函数对网络模型进行训练。我们所使用的损失函数定义如下,假设像素点的预测输出为x,c是像素点的真实类别,则该像素点的损失函数为:
(1)
损失函数定义则为图中每个像素点损失的平均。
一般来说,高层特征包含图像的全局信息,低层特征则包含更多的细节信息。Pred-32s模型直接使用Block4的特征做预测,会丢失重要的边界信息,使得分割边缘不清晰。我们参考FCN中提出的跨层连接[5],将低层特征和高层特征逐步融合,分别构造Pred-16s、Pred- 8s和Pred- 4s预测模型。这三个模型预测的热图尺寸分别为原图像的1/16、1/8/、1/4,和Pred-32s一致,最终都通过双线性插值恢复到原图像尺寸。
以Pred- 4s为例,我们在融合特征时,采用的是对应像素点相加的方式,因此需要特征图的大小完全相同。由于每个Block输出的特征图通道数不一致,采用1*1的卷积把每个Block的特征通道统一学习到相同维度。另外,高层特征图通过反卷积操作使得特征图的尺寸扩大两倍,达到和前一层特征图尺寸一致。为了比较多个特征层之间的的融合效果,我们在实验部分也做了详细地对比。
在我们设计的基础酒标分割网络模型中,通过卷积和池化操作实现降采样,逐步编码得到压缩特征,再通过反卷积操作实现上采样,重建与输入维度相同的输出向量。对于图像分类任务来说,压缩得到的高层特征就包含分类的全部信息。然而,语义分割任务是一个密集预测问题,每个像素点都需要赋予类别,而下采样导致网络特征图损失大量空间信息,这些信息在上采样的过程中很难进行恢复,最终导致网络对小物体以及物体边缘部分的预测不准确。我们所设计的基础酒标分割网络虽然使用了跨层连接结构,将低特征层中的空间信息与高特征层中的语义信息进行了融合,但对于物体边缘部分的信息恢复是不足够的。因此,我们提出使用一个编码器解码器结构,对图像底层特征进行编码,与最终预测融合后再进行解码,从而恢复更加精细的边缘结构。具体的实现方式如图5所示。
图5 编码底层图像特征的网络结构
Fig.5 Model encoded with low-level image feature
在酒标分割网络模型Pred- 4s的基础之上,我们添加Conv_in结构输出的特征图作为底层图像特征,与Block结构融合得到的特征进行连接,也就是图中的Concat模块。这里,我们采用的不再是对应像素点相加的融合方式,而是将两个特征图沿着通道维度连接。
对于Conv_in结构输出的特征图和融合得到的特征图,它们的尺寸均是原图的1/4,我们先采用1*1的卷积使得两个特征图通道维度相同,最后Concat模块输出的特征图通道数扩大一倍。经过连接操作后的特征图再经过3*3的卷积核,输出预测。
语义分割模型需要一个较大的感受野,若只是观察图像的局部有时很难确定类别。深层神经网络中增大模型感受野的方法主要有池化层和大尺寸卷积层两种方式,使用池化层会带来空间信息的损失,而使用大尺寸卷积层会不可避免地带来参数量的增大。近年来,以DeepLab[8]为代表的算法,使用带孔卷积结构,可以在与小尺寸卷积核参数量相同的情况下,达到与大尺寸卷积核相同的感受野。
和普通卷积相比,带孔卷积不增加额外的参数量,其通过配置不同的参数rate,以达到保持感受野的效果。如图6所示,rate=1时,带孔卷积即为普通卷积。rate=2时,相当于在原有卷积核内加一个空洞,其中空洞部分的参数置为0,只有深色方格内的参数是可学习的。rate=3时,相当于在原有卷积核内加两个空洞。因此,带孔卷积和普通卷积具有相同的参数量。另一方面,假设在一个核为3*3的普通卷积后,再接一个rate=2的带孔卷积,在不缩小特征图的前提下,感受野为5。然而,若全部换成普通卷积,当每个卷积层的步长为2时,感受野同样为5,但特征图的大小缩小到原图的1/4。
图6 带孔卷积结构
Fig.6 Structure of atrous/dilated convolutions
虽然带孔卷积可以调整rate参数,来保证足够的感受野,但仍然存在一些问题。对于同样rate的带孔卷积很难学习到多尺度的特征信息,rate越大,则大物体分割效果越好,小物体分割效果反之受到限制。对于多尺度的学习问题,一般可以通过多尺度的输入来完成,但这种方式计算效率很低。DeepLab模型中提出了并行的带孔卷积空间金字塔结构,用来整合多尺度的特征信息。如图7所示,不同rate的带孔卷积分别作用在输出特征图上,最终通过连接操作将所有输出融合成一个特征图,使得模型可以适应不同尺度的物体。
图7 带孔卷积金字塔池化结构[8]
Fig.7 Atrous Spatial Pyramid Pooling[8]
在基础酒标分割模型Pred- 4s中,我们在每个block模块后的1*1卷积之后加入了ASPP模块,如图8所示。DeepLab[8]表明,当扩张率非常接近特征图的尺寸时,带孔卷积并不会带来更好的效果,需要根据特征图的大小来调整扩张率。因此,我们在更高层的Block模块赋予一组更大的rate值。
图8 加入ASPP的酒标分割网络
Fig.8 Wine label segmentation network with ASPP
我们使用第二章中所构建的酒标切割数据集进行实验,其中训练集中的7000张图像用来训练深度学习语义分割模型,而剩下的795张图像用来计算评价指标。对于图像分割任务,存在很多评价准则来衡量分割模型的效果,这些准则均为基于像素级别的精度评测,最常用的评价准则是均交并比(mean Intersection over Union, mIoU)。
假设像素类别总共有k类,nij表示将第i类像素点划分为第j类的像素数量,那么nii表示正确分类的像素点的个数,nij(i≠j)表示第i类样本错分的数量,nji(i≠j)表示被错分为第i类样本的数量,则mIoU的定义为:
(2)
由公式可以看出,第i类像素点组成集合A,被分为第i类像素点组成集合B,则IoU表示这两个集合的交集与并集之比,对所有类别的IoU求平均得到mIoU的值。mIoU越大,说明模型效果越好。另外,本文的酒标分割问题是二分类问题。我们将酒标区域的像素点看作正类(类标号记为1),属于背景的像素点看作负类(类标号记为0),可用准确率(accuracy)、精确率(precision)、召回率(recall)和F1值进行评测,其计算公式可表示为:
(3)
(4)
(5)
(6)
accuracy表示正确分类的像素点占所有像素点的比例,值越大表明分类效果越好。precision表示所有被分为正类的像素点被正确分类的比例,recall表示所有正类像素点被正确分类的比例。一般来说,precision越大,recall越小。F1值是精确率和召回率的调和均值,是精确率和召回率的综合评价指标。
在本节中,我们实现了在第3节中介绍的所有网络结构。为了便于对比,训练时模型的输入尺寸均设置为512*512,需要使用双线性插值对图像和标注进行放缩预处理。batch大小设置为12。训练过程中,网络学习一次完整的训练数据集记为一个epoch,我们设置最大迭代次数为25个epoch。初始学习率设置为0.001,每经过10个epoch,学习率衰减为当前学习率的0.1倍。在测试阶段为了便于模型的预测,原图尺寸为500*375的测试图在四周被补零至512*384尺寸后输入网络进行预测。
表1列出了所有模型在测试集上的评测结果。我们把3.1节中介绍的模型当作基准网络,其中32s/16s/8s/4s表示模型融合不同网络层之间的信息,最终输出的尺寸分别为原图尺寸的1/32,1/16,1/8和1/4,在表1中用Baseline-Xs表示。Im_Feat表示在模型中编码了底层图像特征的网络,而ASPP表示在模型中加入了带孔卷积金字塔池化结构的网络模型。所有模型均在相同的超参数设置下进行训练。我们统计了所有模型的参数量(Parameters),在测试集上的准确率(Accuracy),精准率(Precision),召回率(Recall),F1值和均交并比(mIoU)。
从特征融合的角度来看,加入底层图像特征的模型融合了更接近原始图像的语义特征,但输出的热图尺寸和Baseline- 4s是相同的。从这五个模型的评测结果来看,加入更低层特征的模型使得分割效果更好,但随着融合的特征层越低,所带来的效果增益是递减的。也就是说,随着编码网络的加深,丢失的图像信息是越来越多的。加入ASPP的模型整合多尺度的信息,评测指标相比于基准模型有所增长。我们另外增加了模型参数量的比较,可以看到加入ASPP模块使得模型参数量剧增。同时融合图像特征和添加ASPP结构的模型表现最好,相比于Baseline-32s模型,F1值约提高1.11%,mIoU约提高1.83%。
我们挑选了测试集中的三张图片,在图9中展示了不同模型下的分割效果。图中前四列对应Baseline-Xs模型(X分别取32/16/8/4),+Im_Feat列表示Baseline- 4s+Im_Feat模型,+ASPP列表示Baseline- 4s+Im_Feat+ASPP模型,阴影部分为分割出的酒标区域。从前两张图片可以看出,随着图像低层特征的融合,酒标区域中被误分割的酒瓶背景被剔除,整合多尺度信息的ASPP结构会带来更好的分割效果。为了便于比较,我们放大了最后一张图片的矩形框区域。可以看到,加入底层图像特征和ASPP结构的模型有利于恢复图像的细节信息,获得更精确的分割边界。
图9 测试集上的可视化结果
Fig.9 Visualization results on test set
表1 酒标分割模型实验结果
Tab.1 Experimental results of proposed wine label segmentation models
ModelsParametersAccuracyPrecisionRecallF1mIoUBaseline-32s24.0M0.93270.91970.92710.92340.8722Baseline-16s24.9M0.93880.93240.92740.92990.8830Baseline-8s25.6M0.94030.93300.93040.93170.8858Baseline-4s26.3M0.94080.93970.92400.93180.8865Baseline-4s+Im_Feat27.5M0.94150.93890.92660.93270.8877Baseline-4s+ASPP34.7M0.94180.93500.93180.93340.8884Baseline-4s+Im_Feat+ASPP35.9M0.94300.93940.92970.93450.8905
针对酒标分割任务,本文提出了一个基于深度学习的语义分割模型。基础酒标分割网络基于深层残差网络,在上采样的过程中逐步将不同尺寸的特征层进行融合,以同时利用大尺寸特征层中的空间信息与小尺寸特征层中的语义信息。为了进一步恢复分割边界,在该网络的基础上,我们实现了基于图像底层特征的编码器解码器结构。另外,我们在网络模型中加入了带孔卷积金字塔结构,使得网络具有学习多尺度酒标的能力。我们构建了一个大型酒标图像分割数据集,在其上的实验结果表明,我们提出的酒标分割模型可以达到0.89的均交叉比和0.94的准确率,显著高于普通的模型和方法。
[1] Otsu N. A threshold selection method from gray-level Histograms[J]. IEEE Transactions on Systems, Man, and Cybernetics, 1979, 9(1): 62- 66.
[2] Canny J. A computational approach to edge detection[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2009, 8(6): 679- 698.
[3] Beucher S, Meyer F. The morphological approach to segmentation: The watershed transformation[M]. Mathematical Morphology in Image Processing, 1993: 433- 481.
[4] Boykov Y Y, Jolly M P. Interactive graph cuts for optimal boundary & region segmentation of objects in ND images[C]∥International Conference on Computer Vision(ICCV), 2001, 2001: 105-112.
[5] Long J, Shelhamer E, Darrell T. Fully convolutional networks for semantic segmentation[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2014, 39(4): 640- 651.
[6] Badrinarayanan V, Kendall A, Cipolla R. SegNet: A deep convolutional encoder-decoder architecture for image segmentation[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(12): 2481-2495.
[7] Ronneberger O, Fischer P, Brox T. U-net: Convolutional networks for biomedical image segmentation[C]∥International Conference on Medical image computing and computer-assisted intervention, 2015, 2015: 234-241.
[8] Chen L C, Papandreou G, Kokkinos I, et al. DeepLab: Semantic image segmentation with deep convolutional nets, atrous convolution, and fully connected crfs[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2018, 40(4): 834- 848.
[9] Chen L C, Zhu Y, Papandreou G, et al. Encoder-decoder with atrous separable convolution for semantic image segmentation[C]∥European Conference on Computer Vision(ECCV), 2018, 2018: 833- 851.
[10] Pham D L, Xu C, Prince J L. Current methods in medical image segmentation[J]. Annual Review of Biomedical Engineering, 2000, 2(2): 315-337.
[11] Zhang D Q, Chen S C. A novel kernelized fuzzy C-means algorithm with application in medical image segmentation[J]. Artificial Intelligence in Medicine, 2004, 32(1): 37-50.
[12] Iglesias J E, Konukoglu E, Montillo A, et al. Combining generative and discriminative models for semantic segmentation of CT scans via active learning[C]∥Biennial International Conference on Information Processing in Medical Imaging, 2011, 2011: 25-36.
[13] Gamanya R, De Maeyer P, De Dapper M. An automated satellite image classification design using object-oriented segmentation algorithms: A move towards standardization[J]. Expert Systems with Applications, 2007, 32(2): 616- 624.
[14] Carleer A P, Debeir O, Wolff E. Assessment of very high spatial resolution satellite image segmentations[J]. Photogrammetric Engineering & Remote Sensing, 2005, 71(11): 1285-1294.
[15] Micusik B, Kosecka J. Semantic segmentation of street scenes by superpixel co-occurrence and 3D geometry[C]∥International Conference on Computer Vision(ICCV), 2009, 2009: 625- 632.
[16] JeongYeol B, Ioana V C, Livia I, et al. Scene Understanding Networks for Autonomous Driving Based on Around View Monitoring System[C]∥Computer Vision and Pattern Recognition(CVPR), 2018, 2018: 961-968.
[17] He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]∥Computer Vision and Pattern Recognition(CVPR), 2016, 2016: 770-778.
Reference format: Zou Yajun, Li Yixin, Ma Jinwen. Research on Deep Learning Based Wine Label Segmentation[J]. Journal of Signal Processing, 2019, 35(4): 623-630. DOI: 10.16798/j.issn.1003- 0530.2019.04.013.
邹亚君 女, 1994年生, 湖北人。2016年毕业于中国地质大学(武汉)数学与物理学院, 获得理学学士学位。现为北京大学数学科学学院信息科学系博士研究生, 主要研究方向为图像处理、模式识别。
E-mail: zouyj@pku.edu.cn
李翌昕 男, 1992年生, 北京人。2014年毕业于中国科学技术大学数学科学学院, 获得理学学士学位。现为北京大学数学科学学院博士研究生, 主要研究方向为计算机视觉。
E-mail: liyixin@pku.edu.cn
马尽文 男, 1962年生, 陕西人。1992年毕业于南开大学数学系, 获理学博士学位。现为北京大学数学科学学院信息科学系主任、教授、博士生导师, 中国电子学会信号处理分会常务委员, 中国工业与应用数学学会理事。主要从事智能信息处理、神经计算、模式识别、生物信息学等方面的研究。
E-mail: jwma@math.pku.edu.cn