手势关键点检测方法、装置、计算机设备和存储介质与流程

文档序号:20755350发布日期:2020-05-15 17:22阅读:212来源:国知局
手势关键点检测方法、装置、计算机设备和存储介质与流程

本申请涉及计算机技术领域,尤其涉及一种手势关键点检测方法、装置、计算机设备和存储介质。



背景技术:

手势关键点识别成为一个重要研究方向。传统的手势检测中,仅仅检测出手势的部位和类别,而关键点识别可以识别出手部的关节点,更加精细地识别手势区域,从而实现更多的应用。由于手势多样而且存在严重的遮挡,传统的方法难以实现手势关键点的识别,存在精度低,速度慢的问题。



技术实现要素:

为了解决上述技术问题,本申请提供了一种手势关键点检测方法、装置、计算机设备和存储介质。

第一方面,本申请提供了一种手势关键点检测方法,包括:

获取待检测图像,待检测图像中包含手势特征;

通过已训练的手势检测模型提取待检测图像中的手势特征,输出手势特征所在的区域,得到至少一个目标区域;

通过已训练的关键点回归模型提取各个目标区域中的关键点的特征,输出各个目标区域的关键点的位置信息,已训练的手势检测模型和已训练的关键点回归模型是单独训练得到的。

第二方面,本申请提供了一种手势关键点检测装置,包括:

数据获取模块,用于获取待检测图像,待检测图像中包含手势特征;

区域检测检测模块,用于通过已训练的手势检测模型提取待检测图像中的手势特征,输出手势特征所在的区域,得到至少一个目标区域;

关键点检测模块,用于通过已训练的关键点回归模型提取各个目标区域中的关键点的特征,输出各个目标区域的关键点的位置信息,已训练的手势检测模型和已训练的关键点回归模型是单独训练得到的。

一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

获取待检测图像,待检测图像中包含手势特征;

通过已训练的手势检测模型提取待检测图像中的手势特征,输出手势特征所在的区域,得到至少一个目标区域;

通过已训练的关键点回归模型提取各个目标区域中的关键点的特征,输出各个目标区域的关键点的位置信息,已训练的手势检测模型和已训练的关键点回归模型是单独训练得到的。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

获取待检测图像,待检测图像中包含手势特征;

通过已训练的手势检测模型提取待检测图像中的手势特征,输出手势特征所在的区域,得到至少一个目标区域;

通过已训练的关键点回归模型提取各个目标区域中的关键点的特征,输出各个目标区域的关键点的位置信息,已训练的手势检测模型和已训练的关键点回归模型是单独训练得到的。

上述手势关键点检测方法、装置、计算机设备和存储介质,所述方法包括:获取待检测图像,待检测图像中包含手势特征;通过已训练的手势检测模型提取待检测图像中的手势特征,输出手势特征所在的区域,得到至少一个目标区域;通过已训练的关键点回归模型提取各个目标区域中的关键点的特征,输出各个目标区域的关键点的位置信息,已训练的手势检测模型和已训练的关键点回归模型是单独训练得到的。首先采用手势检测模型进行定位手势所在区域,将定位到的区域输入关键点回归模型,直接回归出各个目标区域的关键点的位置信息,降低模型的复杂度,从而提高检测效率。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1为一个实施例中手势关键点检测方法的应用环境图;

图2为一个实施例中手势关键点检测方法的流程示意图;

图3为一个实施例中手势检测模型的示意图;

图4为一个实施例中手势关键点检测结果的示意图;

图5为一个实施例中手势关键点检测结果的示意图;

图6为一个实施例中手势关键点检测装置的结构框图;

图7为一个实施例中计算机设备的内部结构图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。

图1为一个实施例中手势关键点检测方法的应用环境图。参照图1,该手势关键点检测方法应用于手势关键点检测系统。该手势关键点检测系统包括终端110和服务器120。终端110或服务器120获取待检测图像,待检测图像中包含手势特征;通过已训练的手势检测模型提取待检测图像中的手势特征,输出手势特征所在的区域,得到至少一个目标区域;通过已训练的关键点回归模型提取各个目标区域中的关键点的特征,输出各个目标区域的关键点的位置信息,已训练的手势检测模型和已训练的关键点回归模型是单独训练得到的。

终端110和服务器120通过网络连接。终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

如图2所示,在一个实施例中,提供了一种手势关键点检测方法。本实施例主要以该方法应用于上述图1中的终端110(或服务器120)来举例说明。参照图2,该手势关键点检测方法具体包括如下步骤:

步骤s201,获取待检测图像。

在本具体实施例中,待检测图像中包含手势特征。

具体地,手势特征是指用于描述手势的特征,不同的手势采用不同的手势特征描述。待检测图像是指图像采集设备采集的包含手势特征的图像,待检测图像中可以包含一个或多个手势对应的手势特征。

步骤s202,通过已训练的手势检测模型提取待检测图像中的手势特征,输出手势特征所在的区域,得到至少一个目标区域。

具体地,已训练的手势检测模型是通过对大量的携带手势特征标识的图像进行训练得到的检测模型。手势检测模型可以采用常见的深度学习检测模型,如moblienet、ssd(singleshotmultiboxdetector,多分类单杆检测器)、fasterrcnn和yolo等等中的至少一种模型,通过深度学习检测模型的各个网络层对待检测图像进行特征提取,采用提取到的特征与已训练的手势检测模型中的存储的特征进行匹配,得到匹配度最高的特征所在的区域,即目标区域。若待检测图像中包含多个手势,则输出多个手势对应的目标区域,得到多个目标区域。

步骤s203,通过已训练的关键点回归模型提取各个目标区域中的关键点的特征,输出各个目标区域的关键点的位置信息。

在本具体实施例中,已训练的手势检测模型和已训练的关键点回归模型是单独训练得到的。

具体地,已训练的关键点回归模型,是指通过对大量的携带关键点位置信息的图像进行训练得到的深度学习模型。已训练的关键点回归模型包括特征提取单元和回归单元,其中特征提取单元用于提取目标区域的特征,提取特征的单元可以卷积层、池化层和全连接层中的一个或多个不同类型的网络进行特征提取。卷积层是指采用卷积核执行卷积操作的网络层,不同的卷积核用于提取不同的特征。池化层是指采用池化算法执行池化操作的网络层。回归单元包括回归层,回归层包括至少一个全连接层,采用回归层执行回归操作后得到对应的回归结果,即回归得到各个关键点的位置信息。采用特征提取单元对每个目标区域进行特征提取,得到每个目标区域对应的特征图,采用回归层对各个每个目标区域对应的特征图执行回归操作,得到各个目标区域的关键点的位置信息。其中已训练的关键点回归模型可以为mobilenet或改进的mobilenet网络。

上述手势关键点检测方法,包括:数据获取模块,用于获取待检测图像,待检测图像中包含手势特征;通过已训练的手势检测模型提取待检测图像中的手势特征,输出手势特征所在的区域,得到至少一个目标区域;通过已训练的关键点回归模型提取各个目标区域中的关键点的特征,输出各个目标区域的关键点的位置信息,已训练的手势检测模型和已训练的关键点回归模型是单独训练得到的。首先采用手势检测模型进行定位手势所在区域,将定位到的区域输入关键点回归模型,直接回归出各个目标区域的关键点的位置信息,采用二个单独训练得到的网络进行关键点检测,提高检测效率,并保证检测准确度。

在一个实施例中,已训练的关键点回归模型包括卷积层和回归层,步骤s203包括:输入各个目标区域至卷积层,通过卷积层中的卷积核对各个目标区域执行卷积运算,得到各个目标区域对应的卷积特征图;输入各个卷积特征图至池化层,通过池化层执行池化运算,得到对应的池化特征图;输入各个池化特征图至回归层,回归出各个目标区域关键点的位置信息。

具体地,关键点回归模型包含至少一个卷积层、一个池化层和一个回归层,每个卷积层中包含的卷积核的大小和数量可以根据需求自定义。池化层对应的池化运算包括全局平均池化算法、最大值池化算法等等。采用各个卷积层的卷积核提取目标区域的特征,得到对应的卷积特征图,将卷积特征图输入至池化层,采用池化层中的预设池化算法对卷积特征图再次提取特征,得到对应的池化特征图,将池化层输入的池化特征图输入回归层,输出各个目标区域的关键点的位置信息。

在一个实施例中,生成已训练的关键点回归模型,包括:获取多个训练图像,训练图像携带手势对应的多个关键点位置信息;输入各个训练图像至关键点回归模型,输出各个关键点的预测位置信息;根据各个关键点的位置信息和预测位置信息的差异度,计算关键点回归模型的损失值;当损失值位于预设损失值区间时,得到已训练的关键点回归模型。

具体地,训练图像是用于训练关键检测模型的图像,训练图像中携带了关键点的位置信息,输入训练图像至关键点回归模型,通过关键点回归模型中的模型参数提取训练图中的关键点的特征,根据提取到的特征回归出关键点的位置信息,即得到关键点和对应的预测位置信息,根据预测得到的关键点和对应的预测位置信息与训练图像中标注的关键点和对应的位置信息的差异度确定关键点回归模型的损失值。其中差异度采用两者的差值、比值、平方差、差值平方或差值的指数或对数等等确定,损失值还可以用关键点识别的准确率等等表示。预设损失值区间是预先设置的数据区间,该数据区间可以是经验区间,也可以是计算得到的准确区间等。当损失值位于预设损失值区间时,表示关键点回归模型收敛,得到已训练的关键点回归模型。

在一个实施例中,关键点回归模型为molienet的改进模型。该模型具有精度高,速度快的优点。

在一个实施例中,当损失值不位于预设损失值区间时,根据损失值更新关键点回归模型的模型参数,得到中间关键点回归模型;执行输入各个训练图像至中间关键点回归模型,直至中间关键点回归模型的损失值位于预设损失值区间时,得到已训练的关键点回归模型。

具体地,当损失值不位于预设损失值区间时,表示关键点回归模型未收敛,需要继续学习,根据损失值更新关键点回归模型的模型参数,得到中间关键点回归模型。其中更新模型参数时采用深度学习模型的常规更新方法,采用中间关键点回归模型对训练图像进行继续学习,判断学习后的中间关键点回归模型的损失值是否位于预设损失值区间,当位于时,得到已训练的关键点回归模型,反之则根据中间关键点回归模型的损失值,更新中间关键点回归模型的模型参数,直至更新了参数的中间关键点回归模型的损失值位于预设损失值区间,得到已训练的关键点回归模型。

在一个具体的实施例中,上述手势关键点检测方法,包括:

训练手势检测模型:

采集多个类型的手势的多张图片,人工标记出手势的区域和类别。

使用训练数据训练mobilenet+ssd的手势检测模型,该手势检测模型的网络结构示意图如图3所示,图3中包含mobilenet和ssd。其中mobilenet是针对手机等嵌入式设备提出的一种轻量级的深层神经网络,可以有效降低神经网络的运算复杂度。

在检测时使用ssd算法。ssd是目前主要的检测框架之一,相比fasterrcnn有明显的速度优势,相比yolo精度更高。ssd算法中,只需要将图片输入一次就可以得到手势区域的矩形框以及手势类别。ssd中加入基于特征金字塔的检测方式,能够在多个尺度检测手势。

原始的输入图片经过mobilenet以后,在不同的层级分别提取特征,输入到ssd目标检测层,在网络每个层级分别进行检测。经过多级的网络级联以后,最终输出目标检测框坐标以及位置信息。

输出的目标检测框经过非极大值抑制算法后,排除重叠的检测框,得到置信度最大的框坐标和分类结果。

训练关键点识别模型:

标注大量的手势关键点的张图片,图片中的手势部位被分成21个关键点进行标注。手势共分为21个关键点,其中每个手指为4个关键点,手腕处标记1个关键点。训练的模型使用一个简化版本的深度学习网络,模型结构如表1所示。该模型结构仅为其中一个具体的结构,对该结构可以进行修改,如增加或减少卷积层和全连接层。

表1关键点回归模型

其中conv是指卷积层,convdw是指执行深度卷积的卷积层,avgpool是指平均池化层,fc是指全连接层。卷积层对应的参数a×b×c×d是指卷积核为三维卷积核a×b×c,卷积核数量为d。深度卷积对应的参数e×f×hdw是指卷积大小为e×f,卷积核数量为h的深度卷积,平均池化层pool7×7是指池化窗口的大小。s1是指移动步长为1,s2是指移动步长为2。

训练的目标是每个手势对应的21个关键点的x,y坐标,共42个值。训练时采用平方和误差函数作为模型的损失函数。

使用阶段:

将包含手势的图像输入手势检测模型检测,输出包含手势特征的目标区域,将目标区域输入到训练得到的关键点回归模型,即回归模型中,直接得到每个手势对应的21个关键点的42个坐标数值,检测结果的示意图,如图4和图5所示。

使用二级的关键点检测架构,先进行手势检测然后再进行关键点检测。对于关键点检测部分,使用一种简化版本的深度学习网络,直接回归出手势关键点的结果,规避了复杂的前处理和后处理过程。手势检测使用了深度学习,快速获取手势区域的框。手势关键点检测算法,使用简化版本的深度学习网络,速度快,精度高。结合手势检测和关键点检测模块,在保证关键点识别精度的同时,还可以保证检测速度,从而达到实时检测的目的。

在一个具体的实施例中,接收播放视频时,采集的用户的手势图像,输入用户手势图像至已训练的手势检测模型,输出手势所在的目标区域,将目标区域输入已训练的关键点回归模型,输出关键点的位置信息,结合图形渲染前端,叠加各种特效,增加基于视频的交互。

在一个具体的实施例中,将关键点检测方法应用在智能剪辑中,自动检测视频中手势区域及其关键点,便于后期人员增加手势特效等操作。

图2为一个实施例中手势关键点检测方法的流程示意图。应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图6所示,提供了一种手势关键点检测装置200,包括:

数据获取模块201,用于获取待检测图像,待检测图像中包含手势特征。

区域检测检测模块202,用于通过已训练的手势检测模型提取待检测图像中的手势特征,输出手势特征所在的区域,得到至少一个目标区域。

关键点检测模块203,用于通过已训练的关键点回归模型提取各个目标区域中的关键点的特征,输出各个目标区域的关键点的位置信息,已训练的手势检测模型和已训练的关键点回归模型是单独训练得到的。

在一个实施例中,上述手势关键点检测装置200,还包括:

模型生成模块,用于生成已训练的关键点回归模型,其中模型生成模块,包括:

数据获取单元,用于获取多个训练图像,训练图像携带手势对应的多个关键点位置信息。

预测单元,用于输入各个训练图像至关键点回归模型,输出各个关键点的预测位置信息。

损失值计算单元,用于根据各个关键点的位置信息和预测位置信息的差异度,计算关键点回归模型的损失值。

模型生成单元,用于当损失值位于预设损失值区间时,得到已训练的关键点回归模型。

在一个实施例中,模型生成单元还用于当损失值不位于预设损失值区间时,根据损失值更新关键点回归模型的模型参数,得到中间关键点回归模型;执行输入各个训练图像至中间关键点回归模型,直至中间关键点回归模型的损失值位于预设损失值区间时,得到已训练的关键点回归模型。

在一个实施例中,关键点检测模块203具体用于输入各个目标区域至卷积层,通过卷积层中的卷积核对各个目标区域执行卷积运算,得到各个目标区域对应的卷积特征图,输入各个卷积特征图至池化层,通过池化层执行池化运算,得到对应的池化特征图;输入各个池化特征图至回归层,回归出各个目标区域的关键点的位置信息,其中已训练的关键点回归模型包括卷积层、池化层和回归层。

图7示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110(或服务器120)。如图7所示,该计算机设备通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现手势关键点检测方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行手势关键点检测方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,本申请提供的手势关键点检测装置可以实现为一种计算机程序的形式,计算机程序可在如图7所示的计算机设备上运行。计算机设备的存储器中可存储组成该手势关键点检测装置的各个程序模块,比如,图6所示的数据获取模块201、区域检测检测模块202和关键点检测模块203。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的手势关键点检测方法中的步骤。

例如,图7所示的计算机设备可以通过如图6所示的手势关键点检测装置中的数据获取模块201执行获取待检测图像,待检测图像中包含手势特征。计算机设备可以通过区域检测检测模块202执行通过已训练的手势检测模型提取待检测图像中的手势特征,输出手势特征所在的区域,得到至少一个目标区域。计算机设备可以通过关键点检测模块203执行通过已训练的关键点回归模型提取各个目标区域中的关键点的特征,输出各个目标区域的关键点的位置信息,已训练的手势检测模型和已训练的关键点回归模型是单独训练得到的。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取待检测图像,待检测图像中包含手势特征;通过已训练的手势检测模型提取待检测图像中的手势特征,输出手势特征所在的区域,得到至少一个目标区域;通过已训练的关键点回归模型提取各个目标区域中的关键点的特征,输出各个目标区域的关键点的位置信息,已训练的手势检测模型和已训练的关键点回归模型是单独训练得到的。

在一个实施例中,生成已训练的关键点回归模型,包括:获取多个训练图像,训练图像携带手势对应的多个关键点位置信息;输入各个训练图像至关键点回归模型,输出各个关键点的预测位置信息;根据各个关键点的位置信息和预测位置信息的差异度,计算关键点回归模型的损失值;当损失值位于预设损失值区间时,得到已训练的关键点回归模型。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:当损失值不位于预设损失值区间时,根据损失值更新关键点回归模型的模型参数,得到中间关键点回归模型;执行输入各个训练图像至中间关键点回归模型,直至中间关键点回归模型的损失值位于预设损失值区间时,得到已训练的关键点回归模型。

在一个实施例中,已训练的关键点回归模型包括卷积层和回归层,通过已训练的关键点回归模型提取各个目标区域中的关键点的特征,输出各个目标区域的关键点的位置信息,包括:输入各个目标区域至卷积层,通过卷积层中的卷积核对各个目标区域执行卷积运算,得到各个目标区域对应的卷积特征图;输入各个卷积特征图至池化层,通过池化层执行池化运算,得到对应的池化特征图;输入池化特征图至回归层,回归出各个目标区域的关键点的位置信息。

在一个实施例中,回归层包括至少一个全连接层。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取待检测图像,待检测图像中包含手势特征;通过已训练的手势检测模型提取待检测图像中的手势特征,输出手势特征所在的区域,得到至少一个目标区域;通过已训练的关键点回归模型提取各个目标区域中的关键点的特征,输出各个目标区域的关键点的位置信息,已训练的手势检测模型和已训练的关键点回归模型是单独训练得到的。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:生成已训练的关键点回归模型。其中,生成已训练的关键点回归模型,包括:获取多个训练图像,训练图像携带手势对应的多个关键点位置信息;输入各个训练图像至关键点回归模型,输出各个关键点的预测位置信息;根据各个关键点的位置信息和预测位置信息的差异度,计算关键点回归模型的损失值;当损失值位于预设损失值区间时,得到已训练的关键点回归模型。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当损失值不位于预设损失值区间时,根据损失值更新关键点回归模型的模型参数,得到中间关键点回归模型;执行输入各个训练图像至中间关键点回归模型,直至中间关键点回归模型的损失值位于预设损失值区间时,得到已训练的关键点回归模型。

在一个实施例中,已训练的关键点回归模型包括卷积层和回归层,通过已训练的关键点回归模型提取各个目标区域中的关键点的特征,输出各个目标区域的关键点的位置信息,包括:输入各个目标区域至卷积层,通过卷积层中的卷积核对各个目标区域执行卷积运算,得到各个目标区域对应的卷积特征图;输入各个卷积特征图至池化层,通过池化层执行池化运算,得到对应的池化特征图;输入池化特征图至回归层,回归出各个目标区域的关键点的位置信息。

在一个实施例中,回归层包括至少一个全连接层。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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

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