一种利用合成数据的植物叶片分割方法及系统转让专利

申请号 : CN201910439140.1

文献号 : CN110148146B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘骥林艳

申请人 : 重庆大学

摘要 :

本发明公开了一种利用合成数据下的植物叶片分割方法及系统。该方法包括:基于叶片图像构建多个该叶片图像的不同姿态、不同颜色的叶片三维模型;将叶片三维模型投影到二维平面生成叶片二维图像数据,将叶片二维图形数据与不同背景图像进行融合,得到训练集;通过训练集对深度学习模型进行训练,获得叶片分割模型;将包含叶片的待分割图像输入叶片分割模型得到分割后的叶片图像。利用三维树叶模型来生成分割数据,通过一张植物叶片图像,重建得到不同形状、不同颜色的树叶模型,并和不同的背景融合,自动生成大量的训练图片和训练标签构成训练集,减小了人工标注图像的精力消耗,能够在自然背景条件下全自动对植物叶片图像进行分割,分割效果好。

权利要求 :

1.一种利用合成数据的植物叶片分割方法,其特征在于,包括:

步骤S1,基于叶片图像构建多个所述叶片图像的不同姿态、不同颜色的叶片三维模型;

将叶片三维模型投影到二维平面生成叶片二维图像数据,将叶片二维图形数据与不同背景图像进行融合,得到训练集,所述训练集包含多个训练样本和与训练样本对应的样本标签;

步骤S2,通过训练集对深度学习模型进行训练,获得叶片分割模型;

步骤S3,将包含叶片的待分割图像输入叶片分割模型,叶片分割模型输出分割后的叶片图像;

在所述步骤S1中,基于叶片图像构建所述叶片图像的多个不同姿态、不同颜色的叶片三维模型的步骤包括:步骤S11,获取叶片图像中的叶片轮廓;

步骤S12,提取叶脉作为叶片骨架;所述叶片骨架包括二级和/或三极叶脉;

步骤S13,叶片轮廓以及叶片骨架包围的区域组成了叶面部分,对叶面部分进行网格化,获得叶片平面网格模型;

步骤S14,对叶片平面网格模型进行纹理映射处理,具体为:

从叶片图像中提取叶片纹理,将叶片纹理贴到叶片平面网格模型上,对于叶片平面网格模型中网格上的任一顶点v={x,y,z}的纹理坐标{Xtexture,Ytexture,z}为:其中,Xmin=min{x1,x2,...,xn},Xmax=max{x1,x2,...,xn},Ymin=min{y1,y2,...,yn},Ymax=max{y1,y2,...,yn};{x,y,z}表示顶点v在叶片平面网格模型中的欧式坐标,x1,x2,...,xn分别表示叶片平面网格模型中网格上所有顶点的x轴坐标值,y1,y2,...,yn分别表示叶片平面网格模型中网格上所有顶点的y轴坐标值,n表示叶片平面网格模型中网格上的顶点个数;

步骤S15,在纹理映射后的叶片平面网格模型的叶片轮廓和/或叶片骨架上选取至少一个操作点,对操作点进行不同的移动,使叶片轮廓和叶片骨架发生不同的形变,获取操作点形变前后的坐标位置,利用拉普拉斯形变算法对纹理映射后的叶片平面网格模型进行变形,获得多个不同姿态的叶片三维网格模型;

步骤S16,对不同姿态的叶片三维网格模型进行着色处理获得多个不同姿态、不同颜色的叶片三维模型。

2.如权利要求1所述的利用合成数据的植物叶片分割方法,其特征在于,所述步骤S11包括:步骤S111,根据如下公式对叶片图像中的每个像素点进行灰度处理,获得灰度图像;

gray=0.3*R+0.59*G+0.11*B,其中,gray为像素点的灰度值,R,G,B分别为像素点在叶片图像中的R通道值、G通道值和B通道值;

步骤S112,设置灰度阈值,对灰度图像中的所有像素点进行如下判定获得二值图像:若像素点的灰度值大于灰度阈值,则认为该像素点为叶片像素点,若像素点的灰度值小于等于灰度阈值,则认为该像素点为背景像素点;

步骤S113,从二值图像中提取出叶片轮廓,具体为:

在二值图像上设置可移动的方格,方格顶点的颜色与顶点所在位置的像素点的二值化值对应,若像素点二值化值为1,顶点为黑色,若像素点二值化值为0,顶点为白色;

从二值图像中叶片部分的最左侧开始沿叶片边沿逆时针方向移动,直到回到起点,连接每个方格中与一个或两个黑色顶点相邻的两个边的中点获得叶片轮廓线段,所有叶片轮廓线段构成了叶片轮廓,叶片轮廓线段的端点为叶片轮廓的顶点;

当方格的黑色顶点为两个且分别位于方格的对角点时,通过改变方格大小或者忽略其中一个黑色顶点的方式来避免一个方格内生成两条叶片轮廓线段。

3.如权利要求1所述的利用合成数据的植物叶片分割方法,其特征在于,所述步骤S13包括:步骤S131,压缩叶片轮廓的顶点;

步骤S132,从叶片骨架和叶片轮廓上选取多个采样点,将叶片轮廓的采样点和叶片骨架的采样点顺序相连组成多个多边形;

步骤S133,将所述多边形划分为至少2个三角形或四边形,对全部或部分三角形或四边形组成的网格做进一步细分,获得叶片平面网格模型。

4.如权利要求3所述的利用合成数据的植物叶片分割方法,其特征在于,所述步骤S133包括:步骤S1331,通过Delaunay三角剖分算法将所述多边形划分为至少2个三角形;

步骤S1332,将叶片轮廓和叶片骨架标记为边界;

步骤S1333,对全部或部分三角形组成的网格做进一步细分处理,具体包括:步骤A:对于步骤S1331中的任一叶片三角形网格中的顶点v,设集合N为包含顶点v以及顶点v邻域内所有三角形顶点的集合,对集合N中的每个顶点进行细分,具体的:设顶点v0,v1为顶点集N中的两个顶点,v0≠v1,若边v0 v1不是公共边,不插入新顶点;

若边v0 v1为公共边,获取以边v0 v1为公共边的两个三角形所在平面的法线夹角,若所述夹角大于等于第一阈值,在边v0 v1上不插入新顶点,若所述夹角小于第一阈值,在边v0 v1上插入新顶点vnew,vnew的位置坐标计算公式如下:其中,vnew表示新顶点位置坐标;v2和v3分别表示以边v0 v1为公共边的两个三角形中与边v0 v1相对的顶点的位置坐标;所述第一阈值为预设值,取值范围为:15度到60度;

步骤B:对于步骤S1331中的任一顶点v,设集合N为包含顶点v以及顶点v邻域内所有三角形顶点的集合,计算顶点v的平坦度Sv,若Sv<λ,顶点v的位置坐标不需要调整,若Sv≥λ,通过以下公式调整顶点v的位置坐标:其中,v'表示顶点v调整后的位置坐标;vj表示顶点集N中第j个顶点;β为位置调整系数,k为顶点集N中的顶点个数;顶点v的平坦度顶点v的法向量 Nj为顶点v邻域内k-1个三角形中第j个三角形的法向量;λ为平坦度阈值,0<λ<1;

步骤S1334,基于步骤S1333中插入的新顶点、调整后的顶点、以及原顶点生成新的网格;

步骤S1335,s次循环执行步骤S1333和步骤S1334,实现网格的进一步细分,所述s为正整数。

5.如权利要求3所述的利用合成数据的植物叶片分割方法,其特征在于,所述步骤S131包括:步骤S1311,设叶片轮廓上压缩顶点前的顶点集为N1,N1={n10,n11,n12,...,n1m-1},n1p和n1q分别为顶点集N1中序号为p和q的两个顶点,0≤p≤m-1,0≤q≤m-1,m为顶点集N1的顶点个数;设集合V为叶片轮廓压缩顶点后的顶点集;设p=0,q=2,将顶点n10加入到顶点集合V中;

步骤S1312,判断q=m-1是否成立,若成立,叶片轮廓顶点压缩处理结束,若不成立,连接顶点n1p和n1q,构成线段lpq,计算满足p<r<q的所有顶点n1r到线段lpq的欧式距离,r为正整数,选取其中的最大者记为Drmax;

步骤S1313,若Drmax<T,则令q=q+1,返回步骤S1312;

若Drmax≥T,将顶点n1r加入顶点集V中,令p=q-1,q=q+1,返回步骤S1312;

所述T表示叶片轮廓变化前后预设的允许的最大误差值,0<T<50。

6.如权利要求1所述的利用合成数据的植物叶片分割方法,其特征在于,所述步骤S15,具体包括:步骤S151,在叶片轮廓和/或叶片骨架上选取至少一个操作点,设操作点为Qw,操作点数量为W,w表示操作点的序号,1≤w≤W;Qw的根节点为Qw-1,向量QwQw-1与向量Qw-1QN组成了平面P,向量Qw-1QN为Z轴,设向量Qw-1QM垂直于平面P,操作点Qw的移动方式为绕向量Qw-1QM旋转,设旋转转角度为θ,θ≈t,操作点Qw移动后的位置坐标为:Q(t)=k(t)*(Qw+t*(QN-Qw));

其中,k(t)=|Qw|/|Qw+t*(QN-Qw)|,0≤t≤1,通过设置不同参数t,就可以实现对操作点进行不同的移动,使叶片轮廓和叶片骨架发生不同的形变,并获得不同形变后叶片轮廓的顶点和叶片骨架上的特征点的坐标;

步骤S152,设叶片平面网格模型中网格的顶点集合为V={v1,v2,...,vn},1≤i≤n,vi表示顶点集合V中第i个顶点的坐标,设集合N为与顶点vi相邻的顶点集合,vj表示集合N中第j个顶点的坐标,顶点vi的拉普拉斯坐标为:其中,wij是边(vi,vj)的权重,并且有∑j∈Nwij=1,wij=cotα+cotβ,α和β是边(vi,vj)所在的两个邻接三角形中与边(vi,vj)相对的两个对角;

基于上式,获得拉普拉斯坐标的矩阵表达式为:

l(x',y',z')=L×V(x,y,z);

其中,l(x',y',z')是叶片平面网格模型中网格顶点坐标对应的n×3阶拉普拉斯坐标;

V(x,y,z)表示叶片平面网格模型中网格顶点的欧式坐标,为n×3阶矩阵;L是n×n阶拉普拉斯矩阵,具体为:e′是顶点vi和顶点vj的边集,矩阵L的秩的大小为n-1;

构造误差函数,误差函数为:

Qw是第个操作点w,Handles是所有操作点的集合,kw是操作点Qw的权值,0<kw<5,通过求解下式中的V的坐标使得误差函数值最小:H为W×n阶稀疏矩阵;每行仅包含一个非零元素hii=1,此时vi是操作点;hW×3是所有操作点变形后的坐标分别与对应的操作点权值的乘积构成的矩阵;

使用最小二乘法求解:

ATAV=ATb,获得V的坐标,即叶片平面网格模型中顶点V的变形后的坐标,AT为矩阵A的转置矩阵,重复执行步骤S152,直到求得叶片平面网格模型中所有点的变形后的坐标,获得多个不同姿态的叶片三维网格模型。

7.如权利要求1所述的利用合成数据的植物叶片分割方法,其特征在于,所述步骤S16包括:步骤S161,获取植物叶片的着色模型的反射分量fr:

其中,frdiff为漫反射分量;frspec为镜面反射分量;

漫反射分量frdiff的计算公式为:

frdiff=kdDrgbη(x),其中,kd为漫反射参数和光强度的调节参数,由用户设置;η(x)表示归一化后的漫反射纹理,Drgb为植物叶片的双向反射分布函数BRDF的RGB向量,由叶片的叶绿素、胡萝卜素和结构参数来决定;

镜面反射分量frspec的计算公式为:

其中,F为菲涅尔系数,当视线与叶片的角度不同时,看到的反射效果不同;Dbeckmann是Beckmann分布参数,G为遮挡项,θi和θv分别表示光线的入射角和反射角;

步骤S162,获取植物叶片的着色模型的透射分量ft:

ft=ktT′rgbγ(x)e-h;

其中,T′rgb=(0.9g,g,0.2g),g表示T′rgb的绿色光部分,kt为调节漫反射参数和光强度的参数,由用户设置;γ(x)为归一化后的透射纹理;h表示叶片的厚度;

步骤S163,利用叶片的反射分量fr和透射分量ft生成辐照率纹理;使用高斯模糊算法,对生成的辐照率纹理进行处理获得叶片次表面散色分量;联合次表面散色分量、反射分量fr和透射分量ft获得着色模型;

步骤S164,随机调整着色模型中光的颜色、强度以及叶片的透射率,获得多个色彩模型,将该色彩模型与不同的叶片三维网格模型叠加,获得多个不同姿态、不同颜色的叶片三维模型。

8.一种植物叶片分割系统,其特征在于,包括处理器和图像提供单元,处理器从图像提供单元获得包含叶片的待分割图像,并按照权利要求1-7之一所述的利用合成数据的植物叶片分割方法从待分割图像中分割出叶片图像。

说明书 :

一种利用合成数据的植物叶片分割方法及系统

技术领域

[0001] 本发明涉及图像分割领域,特别是涉及一种利用合成数据的植物叶片分割方法及系统。

背景技术

[0002] 研究植物,植物叶片的识别、检测和分割是我们在植物的计算机视觉方面的重要任务。然而自然条件下的植物叶片一般所处的背景条件复杂,而且植物叶片本身种类行行色色,纹理复杂,所以对植物叶片的识别、检测、分割是一个很艰巨的任务。机器能有效地识别叶片,其基础在于能把植物叶片从自然背景中提取出来。只有把叶片从背景中提取出来,对植物的后续分析才能继续。比如通过分割的叶片判断植物是否生长健康,是否遭受了病虫害。而对叶片的分割算法,其实也是用的普通的图像分割方法,其本质是对图像上的区域进行划分。
[0003] 图像分割的原理是通过图像的特征信息的不同,将图像上分为多个部分,而相同部分的特征信息相同,特征信息可也是颜色、形状等信息。当今的图像分割算法大概包括,传统的图像分割方法,比如利用阂值进行区域划分、使用图像边缘检测的算法、根据区域的划分方法、使用图论相关知识的分割以及基于能量泛函的方法等。基于传统的图像分割方法,能在背景比较简单,或者是单片叶子的环境下取得不错的效果,但是在背景复杂的图像中,其分割效果就大打折扣。而且很多传统方法需要手动提取特征,设置参数,不能全自动分割,这显然不能满足实际需要。
[0004] 近几年,随着大数据以及云计算的相关基础设备、算法的完善使得深度学习飞速发展,大批专家学者利用深度学习的相关算法来解决图像分割问题,或者是叶片分割问题。目前也是深度学习的相关方法在公开数据集上取得了最好的效果。但是基于深度学习的方式,必须要有训练数据,目前世界上公开的数据集都是用人工手工来标注的,手工标注的数据意味着要消耗大量的人力财力,并且人工标注也很容易在边缘处标注错误。因此,数据的缺乏问题严重阻碍了深度学习方法在图像分割算法上的进步。并且到目前为止,还没有专门针对植物叶片的分割数据集。同时,数据的缺乏问题也阻碍着深度学习的发展。
[0005] 由上可知,使用传统的叶片分割方法,需要手动输入一些参数,不能完成全自动分割,或者分割效果较差。使用深度学习的分割方法则可以实现叶片的全自动分割,但是需要大量的训练数据。

发明内容

[0006] 本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种利用合成数据的植物叶片分割方法及系统。
[0007] 为了实现本发明的上述目的,根据本发明的第一个方面,本发明提供了一种利用合成数据的植物叶片分割方法,包括:
[0008] 步骤S1,基于叶片图像构建多个所述叶片图像的不同姿态、不同颜色的叶片三维模型;
[0009] 将叶片三维模型投影到二维平面生成叶片二维图像数据,将叶片二维图形数据与不同背景图像进行融合,得到训练集,所述训练集包含多个训练样本和与训练样本对应的样本标签;
[0010] 步骤S2,通过训练集对深度学习模型进行训练,获得叶片分割模型;
[0011] 步骤S3,将包含叶片的待分割图像输入叶片分割模型,叶片分割模型输出分割后的叶片图像。
[0012] 上述技术方案的有益效果为:针对深度学习下的植物叶片研究算法训练数据缺乏的问题,利用三维树叶模型来生成分割数据,通过一张植物叶片图像,重建得到不同形状、不同颜色的树叶模型,并和不同的背景融合,自动生成大量的训练图片和训练标签构成训练集;利用合成的叶片数据和标签来训练分割网络获得叶片分割模型,减小了人工标注图像时的精力消耗,解决了当前基于深度学习的分割方法训练数据不足的问题,并且该叶片分割模型能够在自然背景条件下全自动对植物叶片图像进行分割,且分割效果好。
[0013] 为了实现本发明的上述目的,根据本发明的第二个方面,本发明提供了一种植物叶片分割系统,包括处理器和图像提供单元,处理器从图像提供单元获得包含叶片的待分割图像,并按照本发明所述的利用合成数据的植物叶片分割方法从待分割图像中分割出叶片图像。
[0014] 上述技术方案的有益效果为:除具有本发明所述的利用合成数据下的植物叶片分割方法的有益效果外,还具有全自动和准确地从待分割图像中分割出叶片图像的有益效果。
[0015] 可以看出,使用传统的叶片分割方法,需要手动输入一些参数,不能完成全自动分割,或者分割效果较差。使用深度学习的分割方法则可以实现叶片的全自动分割,但是需要大量的训练数据。针对这一问题,本文提出通过使用利用合成数据来训练叶片分割网络。

附图说明

[0016] 图1是本发明一具体实施方式中利用合成数据下的植物叶片分割方法的流程示意图;
[0017] 图2是本发明一具体实施方式中通过方格获取叶片轮廓线段的示意图;
[0018] 图3是本发明一具体实施方式中叶片轮廓压缩前后的叶片轮廓形状示意图;
[0019] 图4是本发明一具体实施方式中叶面部分网格化过程示意图,其中,图4(a)为叶片骨架和叶片轮廓上的采样点示意图;图4(b)为叶面部分初步网格化结果示意图;图4(c)为叶面部分进一步细分网格化结果示意图;
[0020] 图5是本发明一具体实施方式中操作点的移动过程;其中,图5(a)是操作点移动原理示意图;图5(b)是操作点移动过程示意图;
[0021] 图6是本发明一具体实施方式中叶片平面网格模型变形后的示意图;
[0022] 图7是本发明一具体实施方式中大小不同、视角不一致的二维图像数据示意图;
[0023] 图8是本发明一具体实施方式中样本和样本标签示意图;
[0024] 图9是本发明一具体实施方式中空洞空间金字塔池化的示意图;
[0025] 图10是本发明一具体实施方式中CRF-RNN的单次迭代过程。

具体实施方式

[0026] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
[0027] 在本发明的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
[0028] 在本发明的描述中,除非另有规定和限定,需要说明的是,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
[0029] 本发明公开了一种利用合成数据的植物叶片分割方法,在一种优选实施方式中,该方法的流程图如图1所示,具体包括:
[0030] 步骤S1,基于叶片图像构建多个该叶片图像的不同姿态、不同颜色的叶片三维模型;
[0031] 将叶片三维模型投影到二维平面生成叶片二维图像数据,将叶片二维图形数据与不同背景图像进行融合,得到训练集,训练集包含多个训练样本和与训练样本对应的样本标签;
[0032] 步骤S2,通过训练集对深度学习模型进行训练,获得叶片分割模型;
[0033] 步骤S3,将包含叶片的待分割图像输入叶片分割模型,叶片分割模型输出分割后的叶片图像。
[0034] 在本实施方式中,叶片图像为一张包含需要分割的植物叶片的图片,优选的,在该图片中的植物叶片尽可能地平整、完整,背景也比较干净。叶片图像可通过相机采集,也可以通过扫描获得。
[0035] 在一种优选实施方式中,在步骤S1中,基于叶片图像构建该叶片图像的多个不同姿态、不同颜色的叶片三维模型的步骤具体包括:
[0036] 步骤S11,获取叶片图像中的叶片轮廓;优选的,步骤S11具体包括:
[0037] 步骤S111,根据如下公式对叶片图像中的每个像素点进行灰度处理,获得灰度图像;
[0038] gray=0.3*R+0.59*G+0.11*B,其中,gray为像素点的灰度值,R,G,B分别为像素点在叶片图像中的R通道值、G通道值和B通道值;
[0039] 步骤S112,设置灰度阈值,对灰度图像中的所有像素点进行如下判定获得二值图像:
[0040] 若像素点的灰度值大于灰度阈值,则认为该像素点为叶片像素点,即属于图像中的叶片的像素点,若像素点的灰度值小于等于灰度阈值,则认为该像素点为背景像素点;
[0041] 将灰度图像转换为二值化使得叶片轮廓更加清晰。
[0042] 步骤S113,从二值图像中提取出叶片轮廓,一种准确提取叶片轮廓的方法的具体过程为:
[0043] 在二值图像上设置可移动的方格,方格有四个顶点,每个顶点存放着所处的二值图像的像素点的二值化值,方格顶点的颜色与顶点所在位置的像素点的二值化值对应,若像素点二值化值为1,顶点为黑色,若像素点二值化值为0,顶点为白色;
[0044] 从二值图像中叶片部分的最左侧开始沿叶片边沿逆时针方向移动,直到回到起点,连接每个方格中与一个或两个黑色顶点相邻的两个边的中点获得叶片轮廓线段,所有叶片轮廓线段构成了叶片轮廓,叶片轮廓线段的端点为叶片轮廓的顶点。
[0045] 图2所示为一种应用场景中,通过方格获取叶片轮廓线段的示意图,在图2中,例举了16种情况,当方格的4个顶点不是黑色时,不生成叶片轮廓线段,当有方格有黑色顶点时,连接每个方格中与一个或两个黑色顶点相邻的两个边的中点获得叶片轮廓线段。但是,在情况8和情况16时,会产生两个叶片轮廓线段,需要修正。
[0046] 因此,当方格的黑色顶点为两个且分别位于方格的对角点时,通过改变方格大小或者忽略其中一个黑色顶点的方式来避免一个方格内生成两条叶片轮廓线段。
[0047] 步骤S12,提取叶脉作为叶片骨架;叶片骨架包括二级和/或三极叶脉;叶脉在植物叶片结构中,支撑着整个叶面,起着骨架的作用,保持植物叶片的稳定性;;叶脉有着像树枝一样的层级结构,其主脉最粗,侧脉其次,底下还有细小的脉络。一般用手动的方式,沿着叶片的叶脉,在主脉络选择几个点,然后连接这些点,就得到了叶片骨架。
[0048] 步骤S13,叶片轮廓以及叶片骨架包围的区域组成了叶面部分,对叶面部分进行网格化,获得叶片平面网格模型;优选的,步骤S13具体包括:
[0049] 步骤S131,压缩叶片轮廓的顶点,优选的,步骤S131具体包括:
[0050] 步骤S1311,设叶片轮廓上压缩顶点前的顶点集为N1,N1={n10,n11,n12,...,n1m-1},n1p和n1q分别为顶点集N1中序号为p和q的两个顶点,0≤p≤m-1,0≤q≤m-1,m为顶点集N1的顶点个数;设集合V为叶片轮廓压缩顶点后的顶点集;设p=0,q=2,将顶点n10加入到顶点集合V中;
[0051] 步骤S1312,判断q=m-1是否成立,若成立,叶片轮廓顶点压缩处理结束,若不成立,连接顶点n1p和n1q,构成线段lpq,计算满足p<r<q的所有顶点n1r到线段lpq的欧式距离,r为正整数,选取其中的最大者记为Drmax;
[0052] 步骤S1313,若Drmax<T,则令q=q+1,返回步骤S1312;
[0053] 若Drmax≥T,将顶点n1r加入顶点集V中,令p=q-1,q=q+1,返回步骤S1312;
[0054] T表示叶片轮廓变化前后预设的允许的最大误差值,0<T<50,优选的,T为30。
[0055] 使用上述压缩叶片轮廓的方法,可以减少冗余的节点,并且基本不影响植物叶片的轮廓。其中,T越大,减少的冗余点越多,图3所示为T值不同时,压缩处理后的叶片轮廓形状,从左到右,依次是压缩前、T=10压缩后、T=20压缩后、T=30压缩后的叶片轮廓形状,可以看出,即便提取的特征点数量急剧减少,其轮廓没有大的改变。该压缩叶片轮廓的方法能有效的减少冗余顶点,避免后续运算量过大,同时能保证叶片轮廓形状不失真。
[0056] 步骤S132,从叶片骨架和叶片轮廓上选取多个采样点,将叶片轮廓的采样点和叶片骨架的采样点顺序相连组成多个多边形;优选的,如图4(a)所示,在叶片骨架和叶片轮廓上手动选取一系列采样点,将叶片骨架采样点和叶片轮廓采样点顺序相连组成多个多边形。
[0057] 步骤S133,将多边形划分为至少2个三角形或四边形,对全部或部分三角形或四边形组成的网格做进一步细分,获得叶片平面网格模型。步骤S133具体包括:
[0058] 步骤S1331,通过Delaunay三角剖分算法将多边形划分为至少2个三角形,获得网格初步划分结果,如图4(b)所示。
[0059] 步骤S1332,将叶片轮廓和叶片骨架标记为边界;
[0060] 步骤S1333,对全部或部分三角形组成的网格做进一步细分处理,如可选择在叶片边缘(其曲率比较高)部分,以及叶片不够平坦的部分进行细分,不用对所有叶片进行细分,减少运算量。优选但不限于选择Loop细分法,也可使用如下方法,具体包括:
[0061] 步骤A:对于步骤S1331中的任一叶片三角形网格中的顶点v,设集合N为包含顶点v以及顶点v邻域内所有三角形顶点的集合,对集合N中的每个顶点进行细分,具体的:
[0062] 设顶点v0,v1为顶点集N中的两个顶点,v0≠v1,若边v0v1不是公共边,不插入新顶点;
[0063] 若边v0v1为公共边,获取以边v0v1为公共边的两个三角形所在平面的法线夹角,若夹角大于等于第一阈值,在边v0v1上不插入新顶点,若夹角小于第一阈值,在边v0v1上插入新顶点vnew,vnew的位置坐标计算公式如下:
[0064] 其中,vnew表示新顶点位置坐标;v2和v3分别表示以边v0v1为公共边的两个三角形中与边v0v1相对的顶点的位置坐标;第一阈值为预设值,取值范围为:15度到60度,优选为30度;
[0065] 步骤B:对于步骤S1331中的任一顶点v,设集合N为包含顶点v以及顶点v邻域内所有三角形顶点的集合,计算顶点v的平坦度Sv,若Sv<λ,顶点v的位置坐标不需要调整,若Sv≥λ,通过以下公式调整顶点v的位置坐标:
[0066]
[0067] 其中,v'表示顶点v调整后的位置坐标;vj表示顶点集N中第j个顶点;β为位置调整系数, k为顶点集N中的顶点个数;顶点v的平坦度顶点v的法向量 Nj为顶点v邻域内k-1个三角形中第j个三
角形的法向量;λ为平坦度阈值,0<λ<1,优选的,λ=0.7;
[0068] 步骤S1334,基于步骤S1333中插入的新顶点、调整后的顶点、以及原顶点生成新的网格;
[0069] 步骤S1335,s次循环执行步骤S1333和步骤S1334,实现网格的进一步细分,s为正整数,优选的,s为3,s的数值选择与要求的细分程度有关,细分程度可通过最大网格单元的大小来评判。
[0070] 步骤S14,对叶片平面网格模型进行纹理映射处理。
[0071] 获得了叶片平面网格模型,该模型中叶片只有大致的形状,没有颜色,没有凹凸不平,为了获得真实的叶片信息,需要对叶片进一步处理,而叶片获得真实感的一个最重要的方法就是纹理映射。
[0072] 叶片的纹理映射是将叶片纹理像素(又称UV坐标)映射到三维空间像素中去,这可以理解为将一张贴图贴在一个三维物体上,纹理贴图贴在三维物体上需要比较复杂的算法,因为贴图会发生形变,幸运的是,目前得到的叶片平面网格模型还在二维平面,最初的叶片图像能提供叶片的纹理素材,所以纹理能直接贴到叶片的网格上。纹理映射处理具体过程为:
[0073] 从叶片图像中提取叶片纹理,将叶片纹理贴到叶片平面网格模型上,对于叶片平面网格模型中网格上的任一顶点v={x,y,z}的纹理坐标{Xtexture,Ytexture,z}为:
[0074]
[0075] 其中,Xmin=min{x1,x2,...,xn},Xmax=max{x1,x2,...,xn},Ymin=min{y1,y2,...,yn},Ymax=max{y1,y2,...,yn};{x,y,z}表示顶点v在叶片平面网格模型中的欧式坐标,x1,x2,...,xn分别表示叶片平面网格模型中网格上所有顶点的x轴坐标值,y1,y2,...,yn分别表示叶片平面网格模型中网格上所有顶点的y轴坐标值,n表示叶片平面网格模型中网格上的顶点个数;优选的,为避免叶片边缘之外可能存在着一些噪声在进行纹理映射时也会映射到叶片网格模型之中,利用纹理的透明通道把叶片之外的像素设置为透明。
[0076] 步骤S15,在纹理映射后的叶片平面网格模型的叶片轮廓和/或叶片骨架上选取至少一个操作点,对操作点进行不同的移动,使叶片轮廓和叶片骨架发生不同的形变,获取操作点形变前后的坐标位置,利用拉普拉斯形变算法对纹理映射后的叶片平面网格模型进行变形,获得多个不同姿态的叶片三维网格模型;步骤S15具体包括:
[0077] 步骤S151,在叶片轮廓和/或叶片骨架上选取至少一个操作点,如图5(a)所示,设操作点为Qw,操作点数量为W,w表示操作点的序号,1≤w≤W;Qw的根节点为Qw-1,向量QwQw-1与向量Qw-1QN组成了平面P,向量Qw-1QN为Z轴,设向量Qw-1QM垂直于平面P,操作点Qw的移动方式为绕向量Qw-1QM旋转,设旋转转角度为θ,θ≈t,操作点Qw移动后的位置坐标为:
[0078] Q(t)=k(t)*(Qw+t*(QN-Qw));
[0079] 其中,k(t)=|Qw|/|Qw+t*(QN-Qw)|,0≤t≤1,通过设置不同参数t,就可以实现对操作点进行不同的移动,使叶片轮廓和叶片骨架发生不同的形变,并获得不同形变后叶片轮廓的顶点和叶片骨架上的特征点的坐标;图5(b)给出了叶片轮廓或叶片骨架变形的样例,实际过程中可以设置多个不同的θ,这样能获得不同形状的叶片。
[0080] 步骤S152,设叶片平面网格模型中网格的顶点集合为V={v1,v2,...,vn},1≤i≤n,vi表示顶点集合V中第i个顶点的坐标,设集合N为与顶点vi相邻的顶点集合,vj表示集合N中第j个顶点的坐标,顶点vi的拉普拉斯坐标为:
[0081]
[0082] 其中,wij是边(vi,vj)的权重,并且有∑j∈Nwij=1,wij=cotα+cotβ,α和β是边(vi,vj)所在的两个邻接三角形中与边(vi,vj)相对的两个对角;可以看出拉普拉斯坐标可以当作顶点的一个信息,这个信息代表着它的平均法向曲率的一个近似值。拉普拉斯坐标可以当作是点和它的所有相邻点的平均权重,所以它可以用来表达一个点的局部信息。
[0083] 拉普拉斯坐标也可以用矩阵表达式,基于上式,获得拉普拉斯坐标的矩阵表达式为:
[0084] l(x',y',z')=L×V(x,y,z);
[0085] 其中,l(x',y',z')是叶片平面网格模型中网格顶点坐标对应的n×3阶拉普拉斯坐标;V(x,y,z)表示叶片平面网格模型中网格顶点的欧式坐标,为n×3阶矩阵;L是n×n阶拉普拉斯矩阵,具体地可以用以下分段表达式表达为:
[0086] e′是顶点vi和顶点vj的边集,矩阵L的秩的大小为n-1;
[0087] 构造误差函数,使得变形前后特征的均方差误差最小,误差函数为:
[0088]
[0089] Qw是第个操作点w,Handles是所有操作点的集合,kw是操作点Qw的权值,0<kw<5,通过求解下式中的V的坐标使得误差函数值最小:
[0090]
[0091] H为W×n阶稀疏矩阵;每行仅包含一个非零元素hii=1,此时vi是操作点;hW×3是所有操作点变形后的坐标分别与对应的操作点权值的乘积构成的矩阵;
[0092] 使用最小二乘法求解下式:
[0093] ATAV=ATb,获得V的坐标,即叶片平面网格模型中顶点V的变形后的坐标,AT为矩阵A的转置矩阵,重复执行步骤S152,直到求得叶片平面网格模型中所有点的变形后的坐标,获得多个不同姿态的叶片三维网格模型。使用拉普拉斯变形算法使得叶片的颜色、纹理等信息尽可能地不变,不会丢失细节信息。如图6所示,为叶片网格变形结果示意图。
[0094] 步骤S16,对不同姿态的叶片三维网格模型进行着色处理获得多个不同姿态、不同颜色的叶片三维模型。
[0095] 在得到叶片的三维网格模型之后,需要对其进行上色,以得到色彩多样的三维叶片模型。眼睛看到植物叶片的颜色,是因为光线照到叶片上时,叶片上发生了镜面反射、漫反射以及透射。所以了解了叶片的光学特性,才能对叶片的光照模型建模,从而生成叶片的多个颜色模型,丰富训练样本数据。
[0096] 获取不同姿态的叶片三维网格模型的双向反射分布函数BRDF和双向透射分布函数BTDF并生成辐照率纹理;使用高斯模糊算法对辐照率纹理进行处理,获得处理结果,将处理结果联合双向反射分布函数BRDF和双向透射分布函数BTDF得到不同姿态的叶片三维网
格模型的着色模型;在不同姿态的叶片三维网格模型的着色模型中随机调整光照和叶片参数,获得叶片多个不同姿态的和不同颜色的叶片三维模型。
[0097] 步骤S16具体包括:
[0098] 步骤S161,获取植物叶片的着色模型的反射分量fr:
[0099]
[0100] 其中,frdiff为漫反射分量;frspec为镜面反射分量;
[0101] 漫反射分量frdiff的计算公式为:
[0102] frdiff=kdDrgbη(x),其中,kd为漫反射参数和光强度的调节参数,由用户设置;η(x)表示归一化后的漫反射纹理,Drgb为植物叶片的双向反射分布函数BRDF的RGB向量,由叶片的叶绿素、胡萝卜素和结构参数来决定;
[0103] 镜面反射分量frspec的计算公式为:
[0104]
[0105] 其中,F为菲涅尔系数,当视线与叶片的角度不同时,看到的反射效果不同;Dbeckmann是Beckmann分布参数,G为遮挡项,θi和θv分别表示光线的入射角和反射角;
[0106] 步骤S162,获取植物叶片的着色模型的透射分量ft:
[0107] ft=ktT′rgbγ(x)e-h;
[0108] 其中,T′rgb=(0.9g,g,0.2g),g表示T′rgb的绿色光部分,kt为调节漫反射参数和光强度的参数,由用户设置;γ(x)为归一化后的透射纹理;h表示叶片的厚度;
[0109] 步骤S163,利用叶片的反射分量fr和透射分量ft生成辐照率纹理;使用高斯模糊算法对生成的辐照率纹理进行处理获得叶片次表面散色分量;联合次表面散色分量、反射分量fr和透射分量ft获得着色模型;在高斯模糊算法的卷积过程中,本发明使用了7个卷积,卷积核的大小是12,并且其中心分别为{0.006,0.061,0.242,0.383,0.242,0.061,0.006}。
[0110] 步骤S164,随机调整着色模型中光的颜色、强度以及叶片的透射率,获得多个色彩模型,将该色彩模型与不同的叶片三维网格模型叠加,获得多个不同姿态、不同颜色的叶片三维模型。随机调整光照和叶片的各个参数,比如光的颜色,强度以及叶片的透射率等,并控制在一定范围内,对同一个叶片模型,本文可以通过这种方式得到多个不同颜色的叶片三维模型。
[0111] 步骤S1还包括:将叶片三维模型投影到二维平面生成叶片二维图像数据,将叶片二维图形数据与不同背景图像进行融合,得到训练集,训练集包含多个训练样本和与训练样本对应的样本标签的步骤。
[0112] 由于叶片三维模型不能直接在深度学习模型的分割网络模型中训练,必须要有分割图像以及样本标签,样本标签与对应的训练集中样本图像大小相同,呈黑白色的,其中白色区域为对应的样本图像中叶片区域即代表了叶片的位置信息。先把叶片的三维模型投影到二维平面上去,但是生成的数据只有叶片没有背景信息,生成的数据太单一,需要融合复杂的背景,本文利用拉普拉斯金字塔算法将不同的背景和叶片二维图形数据融合在一起,它能够解决叶片直接融入背景图像时造成的叶片边缘很突兀的问题,由于融合过程中叶片的位置信息是已知的,所以能同,时生成样本标签,整个生成数据的过程完全自动,不需要手工参与。
[0113] 将叶片的三维模型投影到二维平面上去实际是从世界坐标系转换到像素坐标系上去,转换公式:
[0114]
[0115] 其中,像素坐标系是二维图像中刻画像素位置的坐标系,记为O0-uv,其横纵坐标为uv轴;图像坐标系它是像素在平面上的物理位置,单位通常是毫米,定义图像坐标系为O1-xy,x轴和像素坐标系中的u轴平行,y轴和像素坐标系中的v轴平行;相机坐标系是空间的一点相对于相机光心Oc的三维坐标。假设相机坐标系为Oc-XcYcZc,相机拍摄方向为Zc,那么拍摄方向与像素坐标系垂直,并相交于O1点。Xc轴与图像平面坐标系中的u轴方向相同,Yc轴与图像平面坐标系中v轴方向相同。世界坐标系可以表示网格叶片的各个顶点在三维世界的坐标位置,其坐标系为Ow-XwYwZw,它的坐标位置是相对于其它物体位置而言的。fx和fy为相机的焦距;K是一个矩阵,其大小是3×3,是相机内参数矩阵,fx、fy、uo和vo均为相机内参数元素,每个相机都有它自己的内参,并且内参和相机本身有关系。R和t为相机外参数元素,R为旋转参数,t为平移参数,相当于相机相对于世界坐标系的姿态。
[0116] 通过调整相机的外参,也就是旋转参数以及平移参数,对于一个叶片三维模型,可以生成成千上万的二维图像数据,如图7所示,展示了过一个三维叶片模型生成的大小不同、视角不一致的二维图像数据。
[0117] 叶片二维图形数据的背景是纯色的,无法用于制造分割数据,为了合成分割数据集即训练集的样本,随机选择背景图片进行融合。由于叶片二维图形数据中的像素坐标是已知的,所以可以直接制作样本标签。融合的具体流程如下:
[0118] ①先构建植物叶片二维图形数据和需要融合的背景的高斯金字塔,再建立B层的拉普拉斯金字塔。
[0119] ②设置和叶片二维图形数据中叶片形状大小一致的掩膜mask,表示要融合的位置。
[0120] ③根据掩膜,融合叶片二维图形数据和背景图片的拉普拉斯金字塔,得到了一个新的金字塔。
[0121] ④对步骤③的结果进行重建,操作的方法和拉普拉斯金字塔相同,只不过是上采样,然后融合各个层的图像,得到本文的合成背景的叶片二维图形图像(即样本)和样本标签,如图8所示,其中,第一行和第二行为样本图像,第二行和第四行为第一行和第二行为样本图像对应的样本标签。
[0122] 步骤S2,通过训练集对深度学习模型进行训练,获得叶片分割模型;
[0123] 步骤S3,将包含叶片的待分割图像输入叶片分割模型,叶片分割模型输出分割后的叶片图像。
[0124] 本发明中的深度学习模型为基于全卷积神经网络(FCN)模型进行了如下改进:针对全卷积神经网络(FCN)模型中缩小的特征图导致的分割效果不好的问题使用了空洞卷
积;为解决物体的多尺度问题使用了并行结构的空洞卷积层结构(ASPP);从分割的边缘信息不够准确而采用了条件随机场(CRF)技术。最后引出了整合了FCN和ASPP以及CRF的网络DeepLab-ASPP模型,分割效果到达了前所未有的高度。
[0125] 全卷积神经网络FCN经过多次的卷积、池化操作,图像越来越小,分辨率也越来越低,为了得到和原图一样大小的分割图,使用反卷积对图像进行上采样,反卷积就是卷积在正向或者反向传播做相反的运算。
[0126] 在通过反卷积进行上采样的基础上,使用跳层结构,即联合上层网络层的结果进行融合,以得到更精细的分割结果,这样的结构,称之为跳层结构。比如VGG-16网络,一共有5次pool ing操作,每次pool ing之后,图像就变成上一层的1/2大小。在经过第3次的pool ing操作后,图像变成了原来的1/8,此时保存它的结果,第四次pool ing后,变成了原来的
1/16,而最后一次pool ing之后,变成了原来的1/32,这个时候的结果称为热图(heatmap)。
紧接着经过3个卷积层,如果此时直接对1/32大小的热图进行32倍的上采样的话,结果不够精细,因为在池化过程中,一些细节特征就丢失了。此时我们向前迭代,把1/8的特征图,以及1/16特征图的2倍上采样和1/32热的4倍上采样结果融合在一起,就得到了1/8的分割结果。
[0127] 去掉全卷积神经网络FCN中后面的池化层,并用空洞卷积替换,将至少一个卷积层替换为空洞卷积层,避免了由于下采样带来的特征损失,空洞卷积的计算公式为:
[0128] 对于二维输出特征y,它可以用包含输入的特征x表示为:
[0129]
[0130] r为控制着输入特征的采样步长;可以理解为在输入的每两个特征之间插入0再做卷积;w是卷积核,k是卷积核尺寸大小,可为3*3或5*5。
[0131] 针对目标叶片的多尺度性问题,也就是说图像上的叶片有不同的大小的问题。使用多个并行的不同采样率的空洞卷积层来解决多尺度的分割问题。这相当于在原图像上使用多个不同的卷积,并且在多个尺度的图像上获得更多的上下文信息。这种并行结构的空洞卷积层称为ASPP模块。图9展示了空洞空间金字塔的大致流程,4个并行空洞卷积同时对上一层的特征进行采样,每个分支的空洞卷积其参数r分别不同,以采取不同的特征。一般来说,r越小,提取的局部特征越多,r越大,提取的全局信息越多。
[0132] 针对全卷积神经网络FCN能够对植物叶片进行分割,在叶片的边缘部分割的结果不够好的问题,本发明采用条件随机场(CRF),把像素与像素之间的关系考虑在内,从而改进FCN没有关注相邻像素信息的缺点,对分割结果进一步处理。
[0133] 随机变量X={X1,X2,...,XN}表示数据集,Y={Y1,Y2,...,YN}为标签,N为数据集的大小。在叶片分割上,Xi表示第i个像素的像素值,Yi为第i个像素的标签值,它的取值为L={l1,l2,...,lk}。对于图G=(V,E),Y=(yi),其中,G为概率无向图,V表示随机变量,E表示随机变量之间的依赖关系,yi为第i个像素的随机变量,如果给定X,Y的条件概率服从公式P(yi|X,yi,j≠i)=P(yi|X,yi,j:i),j:i为G中j到i的无向边,也就是马尔科夫性质,(X,Y)便构成了一个条件随机场P(Y|X),可以用Gibbs分布表示为:
[0134]
[0135] 其中Z(X)是归一项,对于图G上的每一个基团c的势函数为 对于分割标记的结果y∈L,其Gibbs能量可以用如下方程表示:
[0136]
[0137] P(y|X)为后验概率,为了得到最好的分割结果,获得最好的分割标记y*,即目标函数P(y|X)最大,那么Gibbs能量最小,即:
[0138] y*=argminE(y|X);
[0139] 构建CRF模型的本质是所有的势函数加权求和,本文这里只考虑一阶势和二阶势,其对应的Gibbs能量函数为:
[0140]
[0141] 本文用ψc(yc)代替ψc(yc|X),那么上述表达式可以转换为:
[0142]
[0143] ψi(yi)是一阶势函数,表达了第i个像素点的像素值为Xi时,该点与其所属类别的差异度,它只与像素本身有关系。结合FCN的输出结果,ψi(yi)可以详细计算为:
[0144] ψi(yi)=-ln(PFCN(yi=lk));PFCN(yi=lk)的含义为使用FCN进行图像分割时,第i个像素点的预测值是lk的概率。
[0145] 但是FCN模型没有考虑标签分配的一致性和分割边缘的平滑性。为进一步利用图像之间像素与像素之间的信息,如果相邻像素点的像素值Xi,Xj比较接近,那么可以认为它们属于同一类别的概率大一些,所以本文引进了二阶势函数,用于把像素与像素之间的信息考虑在内。二阶势函数可定义为加权的高斯函数:
[0146]
[0147] 其中,μ(yi,yj)是一个惩罚项,当两个特征相似度越高,惩罚越大。对于图像而言,两个像素的距离越近,像素值越相试,但是类别不同,他们的惩罚越高。当第i个像素点和第j个像素点的标签不同时它为1,否则它为0。w(m)代表的是高斯核对应的权重。每个km应用高斯核 Λ(m)为高斯核函数的精确度矩阵,特征向量fi,fj可以用像素的坐标以及RGB值组成,进一步化简,可以得到:
[0148]
[0149] pi为第i个像素的位置,pj为第j个像素的位置,Ii为第i个像素的颜色,Ij为第j个像素的颜色,λα和λβ为图像上像素在颜色和位置上对其它像素的距离。为了降低计算的复杂度,利用均值场近似法,用Q(X)来近似模拟P(YX), 表示相对熵,等价于两个概率分布的信息熵的差值;并且能够满足KL散度,结合拉格朗日乘子法,可以解得:
[0150]
[0151] 从上式中可以看出,对P(Y|X)的后验概率计算转变成为对Qi(Xi)的后验概率计算,F(i)恰好是对第i个像素的双边滤波操作。
[0152] 如图10所示,将条件随机场CRF的均值场算法转化成神经网络的一个普通层,所有的参数都通过训练得到。参数I为输入图像,结合FCN的输出结果U并通过后续阶段得到输出结果Qout作为下一次的输入Qin,不断迭代,直到收敛为止。
[0153] 初始化阶段:
[0154] 在首次迭代过程中,第i个像素属于第l个类别的输出结果Q的计算表达式为:
[0155]
[0156] 其中U为FCN的输出结果,Ui(l)表示第i层FCN的输出结果;Zi是归一化常数,这一层可以看作是卷积神经网络CNN的Softmax层。
[0157] 概率计算阶段:
[0158] 该阶段是迭代过程中的第一阶段,对Q值应用高斯滤波。根据图像特征推导出滤波系数,比如像素坐标和RGB值。 和 的顶标只是为了区分,无实际意义;由于CRF可能全连接,这样计算高斯卷积核难度太大,因此可以按照如下公式近似计算,获得Q值应用高斯滤波,即特征空间中具有高斯核的卷积,其表达式为:
[0159]
[0160] 权重调整阶段:
[0161] 该阶段直接对概率计算阶段进行加权求和,其方程为:
[0162]
[0163] m为高斯核层数。
[0164] 类别转化阶段:
[0165] 该层是类别转换层,可以看成是1*1的卷积层:
[0166]
[0167] 概率整合阶段:
[0168] 该层结合FCN的输出以及类别转化的输出,对第i个像素分配标签的概率进行整合,可以用数学方程表示如下:
[0169]
[0170] 归一化阶段:
[0171] 对输入进行归一化,以方便进行下一次迭代操作:
[0172]
[0173] Qi归一化处理, 为概率整合。
[0174] 均值场近似法可以通过重复上面的网络层来实现,每次迭代网络层的输入为上一次迭代网络层输出以及一阶势的原始形式。这等同于将迭代均值场算法法推理视为一个循环神经网络(RNN),其迭代算法可以表示如下:
[0175] H2(t)=fθ(U,H2(t-1),I),0
[0176]
[0177] 上面三个公式为CRF在循环神经网络中的均值场迭代算法,t为循环神经网络的迭代次数,U为全卷积网络的结果。实验表明,当T为10左右时,均值场迭代算法就已经基本收敛,此时分割效果最佳。Y(t)为第T次的结果输出。
[0178] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0179] 尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。