发明内容
本申请的目的在于提供测量板材孔和/或槽尺寸的光学测量系统、方法及介质,解决了传统机器视觉方法很难准确的提取出板材中各式各样的花色孔槽区域,进而无法对孔槽尺寸进行准确测量的问题。
本申请的第一方面提供了测量板材孔和/或槽尺寸的光学测量系统,包括:
图像拾取装置,用于对待检测板材表面进行拍摄;其中,所述图像拾取装置包括相机和用于将光照射到所述待检测板材表面的照明部件;
传送装置,用于使得所述待检测板材与所述图像拾取装置之间产生相对移动;
控制装置,用于控制所述照明部件及控制所述相机进行图像采集;以及
处理装置,用于生成控制指令给控制装置及接收所述图像拾取装置采集的图像数据,并基于深度学习的语义分割模型对所采集的待检测板材的图像数据进行分析得到所述待检测板材上孔和/或槽的实际物理尺寸,其中,所述孔和/或槽的实际物理尺寸包括孔的直径、槽的宽度和/或长度。
在一些示例方案中,其中,所述处理装置包括:图像数据建立模块,用于建立图像数据集,所述图像数据集包括不同花色且含有孔和/或槽的板材图像和所述板材图像对应的人工标注的孔和/或槽的掩膜图像;
图像数据划分模块,用于将所述图像数据集随机划分为训练集和测试集;
图像数据扩充模块,用于利用旋转操作、填充式裁剪操作或Mosaic增强操作扩充所述训练集和所述测试集,得到扩充后训练集和扩充后测试集;
语义分割模型训练模块,用于利用所述扩充后训练集训练语义分割模型,得到训练后的语义分割模型,利用所述扩充后测试集评价所述训练后的语义分割模型的训练效果;
语义分割模型执行模块,用于将所述相机采集的待检测板材图像输入到所述训练后的语义分割模型,得到待检测的掩膜图像;
孔槽区域和非孔槽区域划分模块,用于利用二分类法将所述待检测的掩膜图像划分为孔槽区域和非孔槽区域;
清晰掩膜图像获得模块,用于对划分后的所述待检测的掩膜图像进行二值化操作,得到清晰掩膜图像;
边缘提取模块,用于利用Canny边缘检测算子或索贝尔算子提取所述清晰掩膜图像中的孔和/或槽边缘;
实际尺寸计算模块,基于所述边缘提取模块所提取的孔和/或槽边缘、通过相机标定关系得到待检测板材上孔和/或槽的实际物理尺寸。
在一些示例方案中,所述不同花色且含有孔和/或槽的板材图像包括:仅含有开孔、仅含有开槽、同时含有开孔和开槽的三类图像;其中,所述图像数据集中的图像为完整高清图像。
在一些示例方案中,对所述图像数据集按照8:2的数量比例划分为所述训练集与所述测试集。
在一些示例方案中,所述图像数据扩充模块利用所述旋转操作、所述填充式裁剪操作或所述Mosaic增强操作扩充所述训练集和所述测试集,进一步进行以下处理:
所述训练集和所述测试集中的所有图片均进行所述Mosaic增强操作得到Mosaic增强操作后的图片;
分别以0.5的概率将所述旋转操作或所述填充式裁剪操作施加在所述Mosaic增强操作后的图片上,得到所述扩充后训练集和所述扩充后测试集;
其中,所述图像数据集中的所述板材图像和所述板材图像对应的人工标注的孔和/或槽掩膜图像需要经历相同的所述旋转操作、所述填充式裁剪操作或所述Mosaic增强操作。
在一些示例方案中,所述语义分割模型选用Unet语义分割网络。
在一些示例方案中,所述Unet语义分割网络的训练方法包括:
第1步:采用3×3大小的卷积核,所述扩充后训练集中的板材图像经过两次卷积将图像通道数提升为64通道,经过一次池化操作后,降低维度;
第2步:进行两次卷积操作将图像通道数由64提升为128,并进行池化操作;
第3步:进行两次卷积操作将图像通道数由128提升为256,并再次进行池化操作;
第4步:进行两次卷积操作将图像通道数由256提升为512,并再次进行池化操作;
第5步:进行两次卷积操作将图像通道数由512提升为1024;
第6步:进行一次反卷积操作,将图像通道数由1024减少为512,并拼接第4步中图像,将图像通道数合并为1024通道,再进行两次卷积操作,将通道数由1025降为512;
第7步:进行一次反卷积操作,将图像通道数由512减少为256,拼接第3步中图像,将图像通道数合并为512通道,并进行两次卷积操作,将图像通道数由512降为256;
第8步:进行一次反卷积操作,将图像通道数由256减少为128,拼接第2步中图像,将图像通道数合并为256通道,进行两次卷积操作,将图像通道数由256降为64;
第9步:进行一次反卷积操作,将图像通道数由128减少为64,拼接第1步中图像,将图像通道数合并为128通道,进行两次卷积后,图像通道数由128降为64;
第10步:进行一次1*1卷积核大小的卷积操作,图像通道数由64降低为单通道灰度图像,得到预处理后的板材图像;
对所述扩充后训练集中的所有图片都执行如上第1-10步操作;
第11步:将处理后的所述预处理后的板材图像输入到所述Unet语义分割网络中,所述Unet语义分割网络输出对应的掩膜图像;
第12步:将所述Unet语义分割网络输出的掩膜图像以及图像数据集中的所述人工标注的孔和/或槽的掩膜图像代入损失函数进行迭代,直至Loss值收敛;将所述Loss值返回所述Unet语义分割网络,所述Unet语义分割网络根据Loss值使用随机梯度下降法调整参数,获得训练后的语义分割模型。
在一些示例方案中,所述Unet语义分割网络训练过程中采用的损失函数是Softmax Loss,如下式:
其中,i为分类数,共有两种类别,分别为孔槽区域及非孔槽区域;f i 代表图像中像素,fyi为像素fi为孔槽的概率值,N为训练批次,e是自然常数。
在一些示例方案中,所述Unet语义分割网络的参数更新方式采用随机梯度下降法,更新方式如下:
其中,W为待更新的网络参数;
L为损失函数所计算的损失值,即Loss值;
为学习
速率。
在一些示例方案中,所述扩充后测试集用于评价所述训练后的语义分割模型的训练效果。
在一些示例方案中,所述利用所述二分类法将所述待检测的掩膜图像划分为孔槽区域和非孔槽区域,进一步包括:
预设灰度值200为二分类阈值,灰度值小于200的像素灰度值置为0,灰度值大于200的像素灰度值置为255;
其中,孔槽区域的灰度值趋近于0,非孔槽区域的灰度值趋近于255。
本申请的第二方面提供了测量板材孔和/或槽尺寸的光学测量方法,所述方法包括:
利用传送装置将待检测板材运送至图像拾取装置的图像采集区域;
利用图像拾取装置对待检测板材表面进行拍摄,获取待测板材图像数据;
利用处理装置生成控制指令给控制装置及接收所述图像拾取装置采集的图像数据,并基于深度学习的语义分割模型对所采集的待检测板材的图像数据进行分析得到所述待检测板材上孔和/或槽的实际物理尺寸,其中,所述孔和/或槽的实际物理尺寸包括孔的直径、槽的宽度和/或长度。
在一些示例方案中,所述基于深度学习的语义分割模型对所采集的待检测板材的图像数据进行分析得到所述待检测板材上孔和/或槽的实际物理尺寸,进一步包括:
建立图像数据集,所述图像数据集包括不同花色且含有孔和/或槽的板材图像和所述板材图像对应的人工标注的孔和/或槽的掩膜图像;
将所述图像数据集随机划分为训练集和测试集;
利用旋转操作、填充式裁剪操作或Mosaic增强操作扩充所述训练集和所述测试集,得到扩充后训练集和扩充后测试集;
利用所述扩充后训练集训练语义分割模型,得到训练后的语义分割模型;
将待检测板材图像输入到所述训练后的语义分割模型,得到待检测的掩膜图像;
利用二分类法将所述待检测的掩膜图像划分为孔槽区域和非孔槽区域;
对划分后的所述待检测的掩膜图像进行二值化操作,得到清晰掩膜图像;
利用Canny边缘检测算子或索贝尔算子提取所述清晰掩膜图像中的孔槽边缘;
基于所述边缘提取模块所提取的孔和/或槽边缘,通过相机标定关系得到待检测板材孔槽的实际物理尺寸。
本申请的第三方面提供了一种计算机可读存储介质,其上存储有程序或指令,所述程序或指令被处理器执行时实现本申请所述方法的步骤
本申请的有益效果是:本申请通过非接触式的用于测量板材孔和/或槽尺寸的光学测量系统、方法,利用基于深度学习的语义分割技术实现了板材孔槽区域的精准划分;并对划分后的待检测的掩膜图像进行二值化操作,得到清晰掩膜图像,利用边缘提取算法提取清晰掩膜图像的孔槽边缘,并通过相机标定关系得到待检测板材孔槽的实际物理尺寸。以上极大的增加了孔槽尺寸测量精度,确定了基于机器视觉进行板材孔槽测量的可行性,提升了家具行业的智能化水平。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图15所示,本申请提供的测量板材孔和/或槽尺寸的光学测量系统,包括:
图像拾取装置5,用于对待检测板材4表面进行拍摄;其中,图像拾取装置包括相机1和用于将光照射到待检测板材4表面的照明部件2;
传送装置3,用于使得待检测板材4与图像拾取装置5之间产生相对移动;
控制装置6,用于控制照明部件2及控制相机1进行图像采集;以及
处理装置7,用于生成控制指令给控制装置6及接收图像拾取装置5采集的图像数据,并基于深度学习的语义分割模型对所采集的待检测板材4的图像数据进行分析得到待检测板材4上孔和/或槽的实际物理尺寸,其中,孔和/或槽的实际物理尺寸包括孔的直径、槽的宽度和/或长度。
其中,如图16所示,处理装置7包括:
图像数据建立模块,用于建立图像数据集,图像数据集包括不同花色且含有孔和/或槽的板材图像和板材图像对应的人工标注的孔和/或槽的掩膜图像;
图像数据划分模块,用于将图像数据集随机划分为训练集和测试集;
图像数据扩充模块,用于利用旋转操作、填充式裁剪操作或Mosaic增强操作扩充训练集和测试集,得到扩充后训练集和扩充后测试集;
语义分割模型训练模块,用于利用扩充后训练集训练语义分割模型,得到训练后的语义分割模型,利用扩充后测试集评价训练后的语义分割模型的训练效果;
语义分割模型执行模块,用于将相机采集的待检测板材图像输入到训练后的语义分割模型,得到待检测的掩膜图像;
孔槽区域和非孔槽区域划分模块,用于利用二分类法将待检测的掩膜图像划分为孔槽区域和非孔槽区域;
清晰掩膜图像获得模块,用于对划分后的待检测的掩膜图像进行二值化操作,得到清晰掩膜图像;
边缘提取模块,用于利用Canny边缘检测算子或索贝尔算子提取清晰掩膜图像中的孔和/或槽边缘;
实际尺寸计算模块,基于边缘提取模块所提取的孔和/或槽边缘、通过相机标定关系得到待检测板材上孔和/或槽的实际物理尺寸。
如图8-11所示,图像数据集中包含多种场景下的不同类型、不同花色的板材图像,并且不同花色且含有孔和/或槽的板材图像可分为仅含开槽图像、仅含开孔图像、同时包含开孔和开槽图像的三类图像。
另外,图像数据集中的图像为完整高清图像,其中:图像可为任意大小,但应凸显孔和/或槽区域在图像中所占面积;图像数据集中的每张板材图像都会有对应的人工标注的孔和/或槽掩膜图像。
对建立的图像数据集按照8:2的数量比例进行训练集与测试集的划分;图像数据集的划分采用随机划分,训练集和测试集均包括板材图像和其对应的人工标注的孔和/或槽掩膜图像。
利用旋转操作、填充式裁剪操作或Mosaic增强操作扩充得到的训练集和测试集,以增加板材图像的内容多样性,提升语义分割模型的鲁棒性。
训练集和测试集中的所有图片均进行Mosaic增强操作得到Mosaic增强操作后的图片;
分别以0.1-0.9的概率将旋转操作或填充式裁剪操作施加在Mosaic增强操作后的图片上,得到扩充后训练集和扩充后测试集。其中,扩充后测试集用于评价训练后的语义分割模型的训练效果;
其中,板材图像和板材图像对应的人工标注的孔槽掩膜图像需要经历相同的旋转操作、填充式裁剪操作或Mosaic增强操作。
如图4所示,其为图像数据集中的某一张板材图像,后续将通过执行旋转操作、填充式裁剪操作或Mosaic数据增强操作,变换为一张新的图像;
其中,旋转操作为将图片进行自定义角度方向的旋转,如图5所示。
填充式裁剪即对原图进行局部裁剪,并将裁剪后的图像填充至与原图相同大小,如图6所示。
Mosaic数据增强操作为将选定的图片和随机的3张图片进行随机裁剪,再拼接到一张图上。在Mosaic数据增强操作过程中,所有的操作均以一定概率施加在原图上,然后作为本次语义分割模型迭代的输入数据,以此减少内存占用。具体来讲,所有图片都需要进行Mosaic数据增强操作,除了Mosaic数据增强操作,旋转操作和填充式裁剪操作均以0.5的概率施加在原图上,即一张图片可能同时被施加多种操作。
利用扩充后训练集训练语义分割模型,得到训练后的语义分割模型。
其中,语义分割模型选用Unet语义分割网络。Unet语义分割网络为端到端的经典语义分割网络,鉴于其所需数据量小、图像底层特征敏感的特点,因此非常适用于工业场景中数据收集困难、图像边界模糊、梯度复杂的情况。
需要说明的是:训练过程中,每次迭代的图像数据输入都执行旋转操作、填充式裁剪操作或Mosaic增强操作,每隔50个批次保存一次训练模型文件并在扩充后的测试集上测试模型性能,择优确定最终的Unet语义分割网络参数。
其中,50个批次指的是把扩充后的训练集的所有图片训练50遍,批次大小为32指的是一批训练集中,每32张图片为一组同时输入到Unet语义分割网络中进行训练,批次大小主要是为了加快训练时间。
另外,Unet语义分割网络的参数更新方式采用随机梯度下降法,更新方式如下:
其中,W为待更新的网络参数;
L为损失函数所计算的损失值,即Loss值;
为学习速
率。
示例性的,Unet语义分割网络的初始学习速率为0.01,动量系数为0.937,批次大小为32,非极大值抑制的IoU阈值(IoU为交并比,即网络推理图像和人工标注图像的交集和并集的比值)为0.2,以上参数的设置也是多次实验得到的最佳值。
示例性的,分辨率为572*572大小图像,经Unet语义分割网络训练过程如下:
第1步:采用3×3大小的卷积核,读入扩充后训练集中的板材图像,经过一次卷积操作,图像通道数由1提升至64,分辨率由572*572降为570*570,再次进行卷积操作,分辨率由570*570降为568*568,进行池化操作图像分辨率由568*568降为284*284;
第2步:进行两次卷积操作,图像通道数由64提升为128,并进行一次池化操作,分辨率由284*284降为140*140;
第3步:进行两次卷积操作,图像通道数由128提升为256,并进行一次池化操作,分辨率由140*140降为68*68;
第4步:进行两次卷积操作,图像通道数由256提升为512,并进行一次池化操作,分辨率由68*68降为32*32;
第5步:进行两次卷积操作,图像通道数由512提升为1024,分辨率由32*32降为28*28;
第6步:进行一次反卷积操作,图像通道数由1024降为512,并拼接第四步中图像,合并通道为1024,并进行两次卷积操作,图像通道数由1024降为512,分辨率由28*28提升至52*52;
第7步:进行一次反卷积操作,图像通道数由512降为258,并拼接第三步中图像,合并通道为512,并进行两次卷积操作,图像通道数由512降为258,分辨率由52*52提升至100*100;
第8步:进行一次反卷积操作,图像通道数由258降为128,并拼接第二步中图像,合并通道为258,并进行两次卷积操作,图像通道数由258降为128,分辨率由100*100提升至196*196;
第9步:进行一次反卷积操作,图像通道数由128降为64,并拼接第一步中图像,合并通道为128,并进行两次卷积操作,图像通道数由128降为64,分辨率由196*196提升至388*388;
第10步:进行一次卷积核为1*1大小的卷积操作,图像通道数由64降低为单通道灰度图像,图像分辨率由388*388提升至572*572,得到预处理后的板材图像,得到预处理后的板材图像;
对扩充后训练集中的所有图片都执行如上第1-10步操作;
第11步:将预处理后的板材图像输入到Unet语义分割网络中,Unet语义分割网络输出对应的掩膜图像;
第12步:将Unet语义分割网络输出的掩膜图像以及人工标注的孔槽掩膜图像代入损失函数进行迭代,直至Loss值收敛;
Unet语义分割网络训练过程中采用的损失函数L如下式所示,
其中,L为损失函数所计算的损失值,即Loss值;i为分类数,此语义分割模型为二分类任务,共有两种类别,分别为孔槽区域及非孔槽区域;f i 代表图像中像素,fyi为像素fi为孔槽的概率值,N为训练批次,e是自然常数。
将Loss值返回Unet语义分割网络,Unet语义分割网络根据Loss值使用随机梯度下降法调整参数,获得训练后的语义分割模型。
将待检测的含有孔槽的板材图像输入训练后的语义分割模型中获得待检测的掩膜图像,利用二分类法将待检测的掩膜图像划分为孔槽区域和非孔槽区域。
得到训练后的语义分割模型后,将工业现场采集得到的板材孔槽图像输入到训练后的语义分割模型中,该训练后的语义分割模型会提取输入图像的高维度特征信息,如孔槽内板材花纹信息、孔槽边界信息等,并结合低维度的像素间关系信息,输出待检测的掩膜图像。
利用二分类法将待检测的掩膜图像划分为孔槽区域和非孔槽区域。
对待检测的掩膜图像逐个像素进行二分类操作,即划分为孔槽区域、非孔槽区域。该二分类操作依据置信度将各像素灰度值映射为0-255区间,其中灰度值越趋近于0则越认定为非孔槽区域,越趋近于255则越认定为孔槽区域,最终输出得到划分后的待检测的掩膜图像;
其中,预设灰度值200为二分类阈值,灰度值小于200的像素灰度值置为0,灰度值大于200的像素灰度值置为255;孔槽区域的灰度值趋近于0,非孔槽区域的灰度值趋近于255。
对划分后的待检测的掩膜图像进行二值化操作,输出清晰掩膜图像。
得到划分后的待检测的掩膜图像后,由于光照、相机参数、采集方式等原因原始图像中板材的孔槽边界在成像上存在一定的边缘模糊,可依据板材孔槽边缘的灰度变化列数或行数,即梯度变化速率来判定边缘模糊程度。通常,清晰的图像梯度变化较快,1-2个像素内即可表现出板材边界梯度情况,模糊的图像需要3-5个像素甚至以上。因此依据边界模糊情况,可设定合适的阈值,如边界模糊为5个像素,即可采取第3个像素的纬度值为二值化阈值,对划分后的待检测的掩膜图像进行二值化操作,使板材孔槽边界分割更加清晰、准确。
得到清晰掩膜图像后,利用Canny边缘检测算子或索贝尔算子提取清晰掩膜图像中的孔槽边缘,在得到孔槽边缘后,利用相机标定关系即可算出孔槽实际物理尺寸.如槽边缘长度为200pix,相机像素当量为0.05mm/pix,则槽边缘实际长度为1mm,计算公式如下:
实际长度=像素长度*相机像素当量
其中,边缘提取算法可以使用索贝尔算子或Canny算子等。此处选用索贝尔算子,采用3×3大小的卷积核,计算图像中x方向梯度,如图12-13所示,即可得出槽的左边缘及右边缘位置,根据左右边缘像素点拟合出边界直线,计算两条直线间距即可得出槽的像素宽度。
本实施例中待检测板材开槽和开孔经本实施例的方法处理后开槽和开孔的图像如图2-3所示,由上述图像可以看出,语义分割模型识别的图像清晰度高,为后续孔槽测量奠定了良好的基础。
最终可依据计算长度及像素长度验证本方法的有效性,计算长度可根据实际尺寸进行手工测量,像素长度可根据采集图像进行人工截取测量。
本申请的实施例还提供了测量板材孔和/或槽尺寸的光学测量方法和一种计算机可读存储介质。
本申请的实施例提供的测量板材孔和/或槽尺寸的光学测量方法,包括:
利用传送装置3将待检测板材4运送至图像拾取装置5的图像采集区域;
利用图像拾取装置5对待检测板材4表面进行拍摄,获取待检测板材4图像数据;
利用处理装置7生成控制指令给控制装置6及接收图像拾取装置5采集的图像数据,并基于深度学习的语义分割模型对所采集的待检测板材4的图像数据进行分析得到待检测板材上孔和/或槽的实际物理尺寸,其中,孔和/或槽的实际物理尺寸包括孔的直径、槽的宽度和/或长度。
其中,基于深度学习的语义分割模型对所采集的待检测板材的图像数据进行分析得到待检测板材上孔和/或槽的实际物理尺寸,进一步包括:
建立图像数据集,图像数据集包括不同花色且含有孔和/或槽的板材图像和板材图像对应的人工标注的孔和/或槽的掩膜图像;
将图像数据集随机划分为训练集和测试集;
利用旋转操作、填充式裁剪操作或Mosaic增强操作扩充训练集和测试集,得到扩充后训练集和扩充后测试集;
利用扩充后训练集训练语义分割模型,得到训练后的语义分割模型;
将待检测板材图像输入到训练后的语义分割模型,得到待检测的掩膜图像;
利用二分类法将待检测的掩膜图像划分为孔槽区域和非孔槽区域;
对划分后的待检测的掩膜图像进行二值化操作,得到清晰掩膜图像;
利用Canny边缘检测算子或索贝尔算子提取清晰掩膜图像中的孔槽边缘;
基于边缘提取模块所提取的孔和/或槽边缘,通过相机标定关系得到待检测板材孔槽的实际物理尺寸。
本申请实施例还提供的一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如上述非接触式的用于测量板材孔和/或槽尺寸的光学测量方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
在本申请所提供的实施例中,应该理解到,所揭露方法和装置,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是,上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。