一种弱监督语义分割的自动图像标注方法与流程

文档序号:16686037发布日期:2019-01-22 18:19阅读:3573来源:国知局
一种弱监督语义分割的自动图像标注方法与流程

本发明涉及基于深度学习的语义分割技术领域,更具体地说,涉及弱监督语义分割的自动图像标注方法。



背景技术:

传统的图像分割算法都采用交互的方式,通过用户指定前景和背景区域或像素,分割出目标区域。一般用户指定的交互方式分为两种,一种是信息量较大的三分图(trimap),另一种则是信息量较少的草图(scribbles)。三分图是由人工制作的包含前景、背景和未知区域的图,三分图的构造复杂,几乎需要手工将整幅图像都涂满,而草图就方便很多,只要在前景和背景处画几笔即可。然而,这些对图像的标注都需要人工来完成,如果需要标注的图像数量非常大,会耗费大量的人力和时间。

2016年,hinton提出了深度学习的概念,利用深度神经网络从大量的数据中自动地学习高层特征。相比于手工设计的特征,学习的特征更加丰富、表达能力更强。目前,深度学习已广泛应用于各种各样的计算机视觉任务,例如,利用卷积神经网络进行图像分类或目标检测。语义分割是对图像中场景或目标的每一个像素标注所属的类别,这是计算机视觉对于场景理解、行为识别的关键任务。不同于目标检测(定位目标的边框),语义分割需要标注目标边界,这就要求密集的像素级别分类。深度学习的语义分割方法比传统的图像分割方法更具优势,即不需要人工对图像进行预处理,利用深度神经网络就可以实现端到端的语义分割预测。

监督学习是用已知的正确答案来训练神经网络,即用标注数据对神经网络进行训练。深度卷积神经网络需要大量数据进行训练,否则机器学习中的过拟合将不可避免。然而,在许多任务中,由于数据标注过程的成本极高,无法收集足够的训练数据,不足以进行深度神经网络训练。目前主流的语义分割方法要求大量像素级别标注的训练样本,也就是监督学习语义分割。常用的基于监督学习的语义分割网络有fcn(fullyconvolutionalnetworks)、segnet、deeplab等。由于监督学习语义分割方法需要像素级别的标注图像对网络进行训练,这对数据标注的要求过高,需要提供精确到像素级别的语义标注(semanticlabels),即对每一个像素进行标注。人工数据标注是个耗时费力的工作,目前并没有统一用于图像标注的工具,且易受观察者个人因素的影响,人工标注的训练样本一般很难达到90%以上的精度(即标注的正确率)。如果人工标注精度过低,就会直接导致机器预测错误。因此,研究人员开始研究弱监督条件下的图像语义分割问题。

与监督学习语义标注相比,弱监督学习的语义标注更容易获取。在这类问题中,仅需提供图像级别语义标注,而不需要像素级别标注即可取得与现有方法可比的语义分割精度。

2017年,wei提出了一个从简单到复杂的框架(simpletocomplex,stc),能够以弱监督学习的方式(仅提供图像级标签)有效地训练分割网络。框架中引入了一个多标签的交叉熵损失函数来训练基于显著图的分割网络,其中每个像素能够以不同的概率自适应地归类于前景和背景类别。同年,wei又提出利用对抗擦除技术(adversarialerasing,ae)来解决弱监督学习的语义分割问题。首先利用显著性检测技术挖掘出目标的主体区域,再利用ae挖掘更多的目标相关区域,从而分割出完整的目标区域,生成用于训练语义分割网络的分割模板。seong提出了一种将种子区域与显著性检测技术相结合的弱监督语义分割方法。将种子区域和显著性模型作为附加信息,并以此作为先验知识。首先输入图像和图像级别标签,指导标注器(guidelabeller)结合种子区域和显著性模型,产生一个粗糙的标注,再利用这个标注,以监督方式训练分割网络。

目标检测的任务是从图像中定位感兴趣的目标,需要准确地判断每一个目标的具体类别和边框。随着深度学习的不断发展,研究者发现利用卷积神经网络进行目标检测,准确度可以获得较大的提升。不仅因为卷积神经网络提取了高层特征,提高了特征的表达能力,还因为卷积神经网络将特征提取、特征选择和特征分类融合在同一模型中,通过端到端的训练,从整体上进行功能优化,增强了特征的可分性。所以,基于卷积神经网络的目标检测吸引了广泛的关注,成为当前计算机视觉领域的研究热点之一。

弱监督学习的关键问题是如何构建图像级别的语义标注与像素之间的关联,推断出图像中目标对应的分割模板,从而利用全卷积网络学习分割模型。本发明公开了一种弱监督语义分割的自动图像标注方法,将基于深度学习的目标检测技术与弱监督语义分割技术相结合,将目标检测的结果——目标边框和语义标签作为弱监督语义分割的图像级别语义标注,在目标边框和语义标签的语义监督下自动生成弱监督语义分割的训练样本。



技术实现要素:

1、一种弱监督语义分割的自动图像标注方法,其特征在于,包括:

步骤s1,利用图像目标检测方法获得图像中目标的边框和语义标签;

步骤s2,将目标边框和语义标签作为弱监督语义分割的图像级别语义标注,对包含边框的目标进行分割;

步骤s3,生成用于训练分类网络的分割模板;

步骤s4,利用分割模板,训练分类网络;

步骤s5,测试分类网络。

2、如权利要求1所述的方法,其特征在于,

所述利用图像目标检测方法获得图像中目标的边框和语义标签的具体实现方式为:利用resnet分类网络,自底向上地分阶段提取特征生成高层特征图,自顶向下地将高层特征图上采样后与对应尺寸的低层高分辨率特征图融合;

将高层特征做最邻近上采样,然后将其与对应的前一层特征融合,融合方式是做像素间的加法。重复迭代该过程,直至生成最精细的特征图;

将输出的包含目标边框和语义标签的目标检测结果作为弱监督语义分割图像级别标注。

3、如权利要求1所述的方法,其特征在于,

所述对包含边框的目标进行图像分割的具体实现方式为:将弱监督语义分割图像级别标注生成初始三分图;对三分图中边框内像素与框外像素初始化;

利用k-means算法对像素聚类,得到gmm中k个高斯分量;

为每一个像素分配gmm高斯分量,即为目标边框中每一个像素的参数赋值。

对给定的图像数据优化gmm参数;

构建gibbs能量函数对目标进行分割;

4、如权利要求1所述的方法,其特征在于,

所述生成用于训练分类网络的分割模板的具体实现方式为:

当图像中有多个待分割目标时,图像中会有多个目标边框。首先依次对不同边框中的目标的进行分割。然后,合并多个目标区域,生成分割模板。分割模板的背景是各个目标分割后的背景的交集。

5、如权利要求3所述的方法,其特征在于,

所述构建gibbs能量函数对目标进行分割的具体实现方式为:

构建gibbs能量函数,通过最大流最小割算法进行目标分割。对于每一个目标边框,目标像素n的标签αn=1,背景像素n的标签αn=0。

6、如权利要求3-4任意一项所述的方法,其特征在于,

将目标边框和语义标签作为弱监督语义分割的图像级别语义标注,对包含边框的目标进行分割,具体用以下步骤实现:

步骤s21、将弱监督语义分割图像级别标注生成初始三分图;

根据目标检测获得的目标边框,由输入训练样本生成初始的三分图t,即边框外的像素全部作为背景像素tb,而边框内tu的像素全部作为“可能是目标”的像素;

步骤s22、对三分图中边框内像素与框外像素初始化;

对tb内的每一个像素n,初始化像素n的标签αn=0,即为背景像素;而对tu内的每一个像素n,初始化像素n的标签αn=1,即作为“可能是目标”的像素;

经过步骤s21-s22,分别得到属于目标的像素,剩下的像素为属于背景的像素,然后,通过像素值来估计目标和背景的gmm;

步骤s23、利用k-means算法对像素聚类,得到gmm中k个高斯分量;

首先通过k-means算法分别将属于目标和背景的像素聚类为k类,即gmm中的k个高斯分量,此时gmm中每一个高斯分量就具有了一些像素样本集,通过这些像素样本的rgb值,得到它的参数均值和协方差,而该高斯分量的权值通过属于该高斯分量的像素个数与总的像素个数的比值来确定;

步骤s24、为每一个像素分配gmm高斯分量,即为目标边框中每一个像素的参数赋值;

为每一个像素分配gmm高斯分量:

其中,dn(·)为混合高斯模型:

dn(αn,kn,θ,zn)=-log[w(αn,kn)g(zn|αn,kn,θ)]

θ为gmm参数,

θ={w(α,k),μ(α,k),σ(α,k),α=0,1,k=1,...k}

αn为像素n的标签,kn为gmm参数,其中kn∈{1...k},zn为在rgb空间图像的像素点,w(α,k)为各个高斯概率分布的样本数在总样本数中的权值,μ(α,k)为高斯分量的均值,∑(α,k)为协方差,g(·)为高斯函数;

步骤s25、对给定的图像数据优化gmm参数;

对于给定的图像数据z,学习优化gmm的参数;由于在步骤s22中已经为每一个像素所属的高斯分量做了归类,通过这些像素样本的rgb值,得到它的参数均值和协方差,而该高斯分量的权值通过属于该高斯分量的像素个数与总的像素个数的比值来确定;

其中,α为像素标签,α=0为背景,α=1为目标区域,θ为gmm参数;

步骤s26、建立gibbs能量函数对目标进行分割;

对于rgb空间上的彩色图像,建立gibbs能量函数为:

e(α,k,θ,z)=u(α,k,θ,z)+v(α,z)

式中,e(·)为gibbs能量函数,为区域能量项,v(α,z)为边界能量项;边界能量项v用rgb空间的欧几里得距离:

式中,式中,β=(2<(zm-zn)2>)-1,zn为像素n在rgb空间图像的像素点,zm为像素m在rgb空间图像的像素点,常数γ为50,c为闭合边界;

通过初始化像素的gibbs能量函数,建立一个图,然后通过最大流最小割算法来进行分割;迭代最小化过程是总能量e在k、θ、α三个方面的单调递减,这样算法就能保证收敛到e的最小值:

式中,tu为“可能是目标”的像素,αn为像素n的标签,e为gibbs能量函数,α为像素标签,α=0为背景区域,α=1为目标区域,θ为gmm参数,z为图像灰度值。

步骤s27、重复步骤s24-s26,直到收敛。

与现有技术相比,本发明通过利用目标检测的方式,生成包含目标边框和语义标签的图像,将其作为弱监督语义分割的训练样本,利用传统图像分割方法对对图像进行分类。这是一种不需要人工标注,自动生成弱监督语义分割训练样本的方法。

附图说明

图1为自动生成弱监督语义分割训练样本的图释;

图2为本发明实施例所提供的弱监督语义分割的自动图像标注方法的流程图;

图3为本发明其他实施例所提供的弱监督语义分割的自动图像标注方法的流程图;

图4为本发明其他实施例所提供的弱监督语义分割的自动图像标注方法的另一流程图;

图5为本发明实施例所提供的弱监督语义分割的自动图像标注方法的又一流程图;

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明公开了一种弱监督语义分割的自动图像标注方法,将基于深度学习的目标检测技术与传统图像分割技术相结合,以解决现有需要人工对训练样本进行图像标注的问题。目标检测的目的是在视频中定位出目标的边框,并给出语义标签。对于语义分割,目标边框和语义标签可以作为一种弱监督的语义标注,在这种弱监督的图像级别语义标注下,利用传统图像分割技术,构建图像级别的语义标注与像素之间的关联,对场景中的目标和背景进行密集的像素级别分类,推断出图像语义分割的分割模板。图1给出了一个自动生成标注图像的图释,目标检测给出场景中目标的边框,并识别出目标的类别,而传统图像分割方法在目标边框和语义标签的监督下自动分割图像中的语义目标。在分割结果图中使用不同的颜色标注人、车辆和背景。其具体实施方式如下所述:

本实施例公开的一种弱监督语义分割的自动图像标注方法的流程,参见图2,包括以下步骤:

步骤s1、利用目标检测方法获得图像中目标的边框和语义标签。

目前基于深度学习的目标检测方法可以分为基于侯选区域的目标检测方法和端对端学习的目标检测方法,前者首先生成目标候选区域、然后进行目标分类、最后边框(boundingbox)回归。具有代表性的网络有:r-cnn(regionalconvolutionalneuralnetworks)、spp-net(spatialpyramidpooling)、fastr-cnn、fasterr-cnn、rfcn(region-basedfullyconvolutionalnetworks)、fpn(featurepyramidnetworks)。后者直接在输出层回归边框的位置和类别。具有代表性的网络有:yolo(youonlylookonce)和ssd(singleshotmutilboxdetector)等。优选的,在本实施例中使用fpn方法对图像进行目标检测,fpn方法使用多尺度方法对图像进行目标检测,将高层特征图上采样后与对应尺寸的低层高分辨率特征图融合,因此高层特征得到加强。尽管低层特征图学习的语义特征少,然后低层特征图具有分辨率高的特点,fpn方法中加入了多尺度检测,从而提升目标检测的多尺度性。虽然加入了多尺度检测,但是运行时间与计算量并没有增加。原因在于fpn方法是在原特征提取过程中产生的多尺度特征图的基础上改进的。

步骤s2、将目标边框和语义标签作为弱监督语义分割的图像级别语义标注,对包含边框的目标进行分割;

将目标检测的结果(即包含边框和语义标签的图像)作为弱监督语义分割的图像分割算法的输入。根据所述步骤s1得到的目标边框,将边框内的像素当作可能是目标的像素,边框外的像素全部当作背景,采用rgb颜色空间,利用高斯混合模型(gaussianmixedmodel,gmm)来对前景和背景进行建模。

gmm是一种常见的描述混合密度分布的模型,它由多个高斯分布的概率密度函数的加权和组成。高斯分布为正态分布,根据概率论的中心极限定理可得,大量相互独立、服从统一分布的随机变量的概率分布都可以近似地用正态分布描述。gmm是多个单高斯分布的线性组合,是一种能够利用已知样本估计总体分布密度函数的非参数估计模型,其基本思想是对集合中各个类别建立一个概率模型,将数据集在特征空间的特征分布抽象为该概率模型随机产生的结果。

在初始化阶段,根据给定的初始信息,为前景区域和背景区域分别创建gmm的k个高斯分量(在本实施例中,取k=5,即前景区域和背景区域各5个高斯分量)。首先,利用k-means方法对像素聚类,把前景区域与背景区域中的像素分别划分到k个不同的聚类中(高斯分量),然后,再由聚类中的像素值来初始化计算各高斯分量中的参数。在迭代进行的过程中,通过更新gmm来重新计算新的前景与背景区域的颜色分布。将前景区域中的各个像素重新分配到该像素更适合的高斯分量中去,这个过程可以通过简单地将各个像素的像素值代入高斯方程进行估算。然后,用同样的方法处理背景区域。

目标的分割是一个不断进行分割估计和模型参数学习的交互迭代过程。当参数达到最优时,最终得到的分割结果图作为分割模板用来训练分类网络。

步骤s3、生成用于训练分类网络的分割模板;

当图像中有多个待分割目标时,图像中会有多个目标边框。首先依次对不同边框中的目标的进行分割。然后,合并多个目标区域,生成分割模板。分割模板的背景是每一次进行目标分割后的背景的交集。

步骤s4、利用分割模板训练分类网络;

使用分割模板对语义分割网络的参数进行训练和优化。语义分割网络的输入是一幅图像,图像中每一个像素值是rgb颜色值,经过分类后,网络的输出也是一幅图像,其中每一个像素值表示该像素所属的类别。每一种类别用数字表示,不同的数字对应不同的类别。优化过程中使用加入动量(momentum)的随机梯度下降方法(stochasticgradientdescent,sgd),每读入一个数据,便计算损失函数的梯度来更新参数。由于sgd方法的一个缺点是其更新方向完全依赖于当前batch(批量大小,每一次在训练集中取样本的数量)计算出的梯度,并不稳定。因此加入动量参数,其借用了物理中的动量概念,模拟的是物体运动时的惯性,即更新的时候在一定程度上保留之前更新的方向,同时利用当前batch的梯度微调最终的更新方向。因此,可以在一定程度上增加参数更新的稳定性,从而学习地更快,并且可以避免陷入局部最优的情况。在sgd方法中,设置mini-batch(最小批量大小,每一次在训练集中取样本的数量的最小值)的大小为20,学习速率(learningrate)为10-3,动量参数为0.9,权重衰减(weightdecay)为5-4

步骤s5、测试分类网络;

最后,用训练好的分类网络对测试图像进行语义分割。在coco数据集上对设计的网络结构性能进行测试。coco数据集有91类,328,000幅图像和2,500,000个标签。训练、验证和测试集包含超过200,000幅图像。提供了82783幅图像用于训练网络,40504幅图像作为验证数据集,并且包含80000多幅测试图像。最终,根据测试结果计算语义分割方法的平均iou值(intersection-over-union)。

在本发明其他实施例中,参见图3,以上实施例中的步骤s1具体实现步骤可为:

步骤s11、将训练样本图像输入深度卷积神经网络;

深度学习网络的深度对最后的分类和识别的效果有着很大的影响,一般地,网络的深度越深越好,但事实上,常规的网络的堆叠(plainnetwork)在网络很深的时候,效果却越来越差。优选的,在本实施例中,选择resnet作为分类网络。resnet网络引入了残差网络结构(residualnetwork),通过残差网络,可以不断地加深网络层数,最终不断提高网络的分类效果。

步骤s12、自底向上地分阶段提取特征生成高层特征图;自底向上是网络的前向计算过程。在前向过程中,特征图经过卷积层计算,将相同尺寸特征图的层归为一个阶段(stage)。因此每次抽取的特征都是每个阶段的最后一层的输出,这样就能构成特征金字塔。对于特征金字塔,为每个阶段定义一个金字塔级别,然后选择每个阶段的最后一层的输出作为特征图的参考集(因为每个阶段的最深层具有丰富的特征信息)。具体来说,在残差网络resnet中,对每个阶段的最后一个残差结构的特征进行激活并输出。将这些残差模块输出表示为{c2,c3,c4,c5},对应于conv2,conv3,conv4和conv5的输出,并且它们相对于输入图像具有{4,8,16,32}像素的步长。考虑到内存占用,没有将conv1包含在金字塔中。

步骤s13、自顶向下地将高层特征图上采样后与对应尺寸的低层高分辨率特征图融合;

自顶向下的过程中结合了低层高分辨率,首先将更抽象、包含更多语义信息的高层特征图进行上取样,然后把该特征横向传递至前一层特征,因此高层特征得到加强。为了利用底层的定位细节信息,在横向连接操作中,连接的两层特征在空间尺寸上要相同。首先将高层特征做2倍上采样(最邻近上采样法),然后将其和对应的前一层特征融合,融合方式是做像素间的加法。重复迭代该过程,直至生成最精细的特征图。迭代开始阶段,在c5层后面加一个1×1的卷积核来产生最粗略的特征图,最后,用3×3的卷积核去处理已经融合的特征图(为了消除上采样的混叠效应),以生成最后需要的特征图。{c2,c3,c4,c5}层对应的融合特征层为{p2,p3,p4,p5},对应的层空间尺寸是相同的。

步骤s14、将输出的包含目标边框和语义标签的目标检测结果作为弱监督语义分割图像级别标注。

在本实施例中,参见图4,步骤s2具体可以用以下步骤实现:

步骤s21、将弱监督语义分割图像级别标注生成初始三分图;

根据目标检测获得的目标边框,由输入训练样本生成初始的三分图t,即边框外的像素全部作为背景像素tb,而边框内tu的像素全部作为“可能是目标”的像素。

步骤s22、对三分图中边框内像素与框外像素初始化;

对tb内的每一个像素n,初始化像素n的标签αn=0,即为背景像素;而对tu内的每一个像素n,初始化像素n的标签αn=1,即作为“可能是目标”的像素。

经过步骤s21-s22,可以分别得到属于目标(αn=1)的像素,剩下的像素为属于背景(αn=0)的像素,然后,通过像素值来估计目标和背景的gmm。

步骤s23、利用k-means算法对像素聚类,得到gmm中k个高斯分量:

首先通过k-means算法分别将属于目标和背景的像素聚类为k类,即gmm中的k个高斯分量,此时gmm中每一个高斯分量就具有了一些像素样本集,通过这些像素样本的rgb值,可以得到它的参数均值和协方差,而该高斯分量的权值可以通过属于该高斯分量的像素个数与总的像素个数的比值来确定。

步骤s24、为每一个像素分配gmm高斯分量,即为目标边框中每一个像素的参数赋值。

为每一个像素分配gmm高斯分量:

其中,dn(·)为混合高斯模型:

dn(αn,kn,θ,zn)=-log[w(αn,kn)g(zn|αn,kn,θ)]

θ为gmm参数,

θ={w(α,k),μ(α,k),σ(α,k),α=0,1,k=1,...k}

αn为像素n的标签,kn为gmm参数,其中kn∈{1...k},zn为在rgb空间图像的像素点,w(α,k)为各个高斯概率分布的样本数在总样本数中的权值,μ(α,k)为高斯分量的均值,∑(α,k)为协方差,g(·)为高斯函数。

步骤s25、对给定的图像数据优化gmm参数;

对于给定的图像数据z,学习优化gmm的参数。由于在步骤s22中已经为每一个像素所属的高斯分量做了归类,通过这些像素样本的rgb值,可以得到它的参数均值和协方差,而该高斯分量的权值可以通过属于该高斯分量的像素个数与总的像素个数的比值来确定。

其中,α为像素标签,α=0为背景,α=1为目标区域,θ为gmm参数。

步骤s26、建立gibbs能量函数对目标进行分割;

对于rgb空间上的彩色图像,建立gibbs能量函数为:

e(α,k,θ,z)=u(α,k,θ,z)+v(α,z)

式中,e(·)为gibbs能量函数,为区域能量项,v(α,z)为边界能量项。边界能量项v用rgb空间的欧几里得距离:

式中,β=(2<(zm-zn)2>)-1,zn为像素n在rgb空间图像的像素点,zm为像素m在rgb空间图像的像素点,常数γ为50(经过训练得到的最优参数),c为闭合边界。

通过初始化像素的gibbs能量函数,建立一个图,然后通过最大流最小割(maxflow/mincut)算法来进行分割。迭代最小化过程是总能量e在k、θ、α三个方面的单调递减,这样算法就能保证收敛到e的最小值:

式中,tu为“可能是目标”的像素,αn为像素n的标签,e为gibbs能量函数,α为像素标签,α=0为背景区域,α=1为目标区域,θ为gmm参数,z为图像灰度值。

步骤s27、重复步骤s24-s26,直到收敛;

经过步骤s26的分割后,每一个像素的gmm参数kn变了,故gmm也变了,所以每次迭代交互地优化gmm和分割结果。另外,因为步骤s24-s26的过程都是能量递减的过程,当判断出e收敛时自动终止迭代,所以可以保证算法的收敛性。

图5更详细地阐述了本发明公开的弱监督语义分割的自动图像标注方法的流程。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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