一种冰晶图片的自动分类方法转让专利

申请号 : CN201910115964.3

文献号 : CN110119739B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张峰肖海霞刘普杨智鹏张敬林闫非

申请人 : 南京信息工程大学

摘要 :

本发明公开一种冰晶图片的自动分类方法,首先将一幅包含多时刻冰晶粒子的大图分割成单一时刻的冰晶粒子图片;根据观察到的冰晶图片数据确定冰晶类别数目,建立冰晶粒子图片数据库;将冰晶粒子数据库分为训练集和测试集两部分,使用卷积神经网络(CNN)模型对其进行训练和测试,并对CNN模型进行调整,保存测试效果最佳的模型;使用保存的模型对冰晶图片进行自动分类。此种方法可解决观测到的冰晶粒子分割问题,可解决使用传统方法对冰晶分类造成的准确率低、费时且带有主观性的问题,可使分割后的冰晶粒子图片实现自动分类。

权利要求 :

1.一种冰晶图片的自动分类方法,其特征在于包括如下步骤:

步骤1,将一幅包含多时刻冰晶粒子的大图分割成单一时刻的冰晶粒子图片;

步骤2,通过基于迁移学习方法训练好的CNN模型对分割之后的单张冰晶粒子图片进行自动分类;

其中,步骤1具体如下:

步骤11,对图片进行灰度处理;

步骤12,绘制灰度图的灰度梯度图,提取待抓取的图片边框;

步骤13,对图片遍历抓取了所有边框的左上角顶点、右上角顶点、左下角顶点、右下角顶点,存于4个矩阵中,再以每一个顶点的坐标为标准进行循环,匹配离它最近的3个顶点,这四个点就构成了一个带抓取矩阵图片边框,然后根据边框位置对图片进行裁剪,从而得到单个冰晶粒子图片。

2.如权利要求1所述的一种冰晶图片的自动分类方法,其特征在于:所述步骤2的具体内容是:步骤21,根据观察到的冰晶图片数据确定冰晶类别数目,建立冰晶粒子图片数据库;

步骤22,将冰晶粒子数据库分为训练集和测试集两部分,使用CNN模型对其进行训练和测试,并对CNN模型进行调整,保存测试效果最佳的模型;

步骤23,使用步骤22中保存的模型对冰晶图片进行自动分类。

3.如权利要求2所述的一种冰晶图片的自动分类方法,其特征在于:所述步骤21中,根据分割后获得的单张冰晶粒子图片,结合冰晶粒子的形状、尺寸大小,将每张冰晶粒子图片做类别标记,最终分为10个类别。

4.如权利要求2所述的一种冰晶图片的自动分类方法,其特征在于:所述步骤22中,将冰晶图片数据库按照4:1的比例分为训练集和测试集两部分。

5.如权利要求2所述的一种冰晶图片的自动分类方法,其特征在于:所述步骤22的具体内容是:选择预训练的CNN模型,在深度学习框架Pytorch进行训练,根据本次冰晶分类任务来调节预训练模型的参数,将卷积网络中最后全连接层进行微调,替换成步骤21的冰晶类别数目;之后使用微调后的预训练模型对训练集和测试集分别进行训练和测试,最后保存测试效果最佳的分类模型。

6.如权利要求5所述的一种冰晶图片的自动分类方法,其特征在于:所述预训练的CNN模型采用DenseNet、Inception、ResNet、SqueezeNet或VGG。

7.如权利要求5所述的一种冰晶图片的自动分类方法,其特征在于:所述步骤22中,在进行训练和测试前,首先对冰晶粒子数据库中的每张冰晶图片进行以下的数据预处理:图片根据短边等比例缩放,对原始尺寸为[256,480]的冰晶图片进行随机采样以进行尺度增强;从图像或其水平翻转中随机采样224×224的裁剪块,其每个像素都减去平均值;调整图像的亮度并且对图像进行缩放以进行图像增强。

8.如权利要求2所述的一种冰晶图片的自动分类方法,其特征在于:所述步骤23中,用步骤22中保存的模型对随机输入的图片进行预测,预测所获得最大概率的类别便作为该图片分类之后的类别。

说明书 :

一种冰晶图片的自动分类方法

技术领域

[0001] 本发明属于大气科学技术领域,特别涉及一种冰晶图片的自动分类方法。

背景技术

[0002] 冰云对全球辐射平衡和气候变化有重要的影响,冰云主要由比球形粒子复杂的各种形状的冰晶粒子组成,其影响程度取决于云本身的微物理特性和光学特性,如冰晶粒子形状、卷云光学厚度等(参见文献1)。不同类别的冰晶与不同形状和高度的云相关联并且具有不同的辐射特性,因此对冰云中的冰晶进行分类研究具有重要意义。目前主要使用云粒子成像仪(CPI)来对冰晶粒子进行观测,以此得到冰晶粒子图片。现有的冰晶图片分类技术主要是根据冰晶粒子自身相关的属性和形状,如文献2使用冰晶图片中粒子的长度、宽度、以及周长等属性为条件来区分不同类别的冰晶粒子,但是由于冰晶粒子尺寸大小以及形状特征多变,使用此方法对冰晶粒子进行分类的准确率较低。此外,通过人为视觉区分冰晶粒子能达到较高的准确率,但是由于观测到的冰晶粒子图片数以万计,如果通过人为视觉去分辨冰晶类别,不仅费时,而且带有较强的主观性。
[0003] 考虑到使用CPI观测冰晶时,所获得的图片为多个时刻冰晶粒子同时在一幅大图片上,并且一幅图片上包含了不同类别的冰晶粒子,难以直接对冰晶图片进行分类。因此对冰晶图片进行分类前,首先要获得图片中单个的冰晶粒子的图片,但是据我们文献调研所知,目前没有专门针对中国地区观测到的冰晶图片进行分割的技术。
[0004] 涉及的文献如下:
[0005] 文献1,程天海,顾行发,陈良富,余涛,田国良,2008:卷云多角度偏振特性研究.物理学报,57(8),5323‑5332.
[0006] 文献2,Lawson R P,Baker B A,Zmarzly P,et al.,2006:Microphysical and optical properties ofatmospheric ice crystals at South Pole Station.Journal ofApplied Meteorology and Climatology,45(11),1505‑1524.
[0007] 文献3,Deng J,Dong W,Socher R,et al.,2009:Imagenet:A large‑scale hierarchical image database.IEEE ComputerVision and Pattern Recognition(CVPR),248‑255.
[0008] 文献4,Ioffe S,Szegedy C,2015:Batch normalization:Acceleration deep network training by reducing internal covariate shift.International Conference on International Conference on Machine Learning,448‑456.[0009] 文献5,Lecun Y,Boser B,Denker J S,et al.,1989:Backpropagation applied to handwritten zip code recognition.Neural computation,1(4),541‑551.[0010] 文献6,PaszkeA,Gross S,Chintala S,and Chanan G,2017:PyTorch.[0011] 文献7,He K,Zhang X,Ren S,et al.,2016:Deep residual learning for image recognition.Proceedings of the IEEE conference on computer vision and pattern recognition,770‑778.

发明内容

[0012] 本发明的目的,在于提供一种冰晶图片的自动分类方法,其可解决观测到的冰晶粒子分割问题,可解决使用传统方法对冰晶分类造成的准确率低、费时且带有主观性的问题,可使分割后的冰晶粒子图片实现自动分类。
[0013] 为了达成上述目的,本发明的解决方案是:
[0014] 一种冰晶图片的自动分类方法,包括如下步骤:
[0015] 步骤1,将一幅包含多时刻冰晶粒子的大图分割成单一时刻的冰晶粒子图片;
[0016] 步骤2,通过基于迁移学习方法训练好的CNN模型对分割之后的单张冰晶粒子图片进行自动分类。
[0017] 上述步骤1的具体内容是:
[0018] 步骤11,对图片进行灰度处理;
[0019] 步骤12,绘制灰度图的灰度梯度图,提取待抓取的图片边框;
[0020] 步骤13,对图片遍历抓取了所有边框的左上角顶点、右上角顶点、左下角顶点、右下角顶点,存于4个矩阵中,再以每一个顶点的坐标为标准进行循环,匹配离它最近的3个顶点,这四个点就构成了一个带抓取矩阵图片边框,然后根据边框位置对图片进行裁剪,从而得到单个冰晶粒子图片。
[0021] 上述步骤2的具体内容是:
[0022] 步骤21,根据观察到的冰晶图片数据确定冰晶类别数目,建立冰晶粒子图片数据库;
[0023] 步骤22,将冰晶粒子数据库分为训练集和测试集两部分,使用CNN模型对其进行训练和测试,并对CNN模型进行调整,保存测试效果最佳的模型;
[0024] 步骤23,使用步骤22中保存的模型对冰晶图片进行自动分类。
[0025] 上述步骤21中,根据分割后获得的单张冰晶粒子图片,结合冰晶粒子的形状、尺寸大小,将每张冰晶粒子做类别标记,最终分为10个类别。
[0026] 上述步骤22中,将冰晶图片数据库按照4:1的比例分为训练集和测试集两部分。
[0027] 上述步骤22的具体内容是:选择预训练的CNN模型,在深度学习框架Pytorch进行训练,根据本次冰晶分类任务来调节预训练模型的参数,将卷积网络中最后全连接层进行微调,替换成步骤21的冰晶类别数目;之后使用微调后的预训练模型对训练集和测试集分别进行训练和测试,最后保存测试效果最佳的分类模型。
[0028] 上述预训练的CNN模型采用DenseNet、Inception、ResNet、SqueezeNet或VGG。
[0029] 上述步骤22中,在进行训练和测试前,首先对冰晶粒子数据库中的每张冰晶图片进行以下的数据预处理:图片根据短边等比例缩放,对原始尺寸为[256,480]的冰晶图片进行随机采样以进行尺度增强;从图像或其水平翻转中随机采样224×224的裁剪块,其每个像素都减去平均值;调整图像的亮度并且对图像进行缩放以进行图像增强。
[0030] 上述步骤23中,用步骤22中保存的模型对随机输入的图片进行预测,预测所获得最大概率的类别便作为该图像分类之后的类别。
[0031] 采用上述方案后,本发明能够有效地分割中国地区观测所获得的整体的冰晶图片,从而得到观测的单个冰晶粒子图片;并且通过训练好的卷积神经网络模型对分割之后的单张冰晶粒子图片进行自动分类,可以高效且准确地将不同类别的冰晶粒子进行区分,实现冰晶粒子的自动分类。

附图说明

[0032] 图1(a)是一张在中国地区CPI观测到的完整冰晶粒子图片;
[0033] 图1(b)是对图片进行灰度处理后的灰度梯度图;
[0034] 图1(c)是待分割的单个冰晶图片的边框;
[0035] 图2是冰晶图片分割成功效果示意图;
[0036] 图3是利用迁移学习方法微调ResNet152模型实现冰晶图片自动分类的流程图。

具体实施方式

[0037] 以下将结合附图,对本发明的技术方案及有益效果进行详细说明。
[0038] 如图3所示,本发明提供一种冰晶图片的自动分类方法,主要包含两个部分:1、冰晶图片的分割;2、冰晶图片的自动分类。第1步是将一幅包含多时刻冰晶粒子的大图自动分割成单一时刻的冰晶粒子图片,第2步是将单张冰晶粒子图片进行分类,具体如下:
[0039] 步骤1,冰晶图片的分割
[0040] 根据观测到冰晶图片特点,利用MATLAB软件编程,根据冰晶图片的灰度梯度将单张的冰晶图片提取出来,从而获得单个冰晶粒子图片。
[0041] 具体步骤:根据在中国地区使用CPI观测到的冰晶粒子图片,如图1(a),根据图片的特点,首先是对图片做简单的灰度处理,如图1(b)所示,图片处理为3色,白色是背景,黑色是字,灰色是待抓取的图片,之后绘制灰度图的灰度梯度图,提取灰色部分即待抓取的图片边框,见图1(c);然后对图片遍历抓取所有边框的左上角顶点、右上角顶点、左下角顶点、右下角顶点,存于4个矩阵中,再以每一个顶点的坐标为标准进行循环,匹配离它最近的3个顶点,这四个点就构成了一个带抓取矩阵图片边框,然后根据边框位置对图片进行裁剪,就可以得到单个冰晶粒子图片,如图2所示。
[0042] 步骤2,冰晶图片的自动分类
[0043] 主要包含以下3个部分:
[0044] 1)根据观测到的冰晶图片数据确定冰晶类别数目,建立冰晶粒子图片数据库——ICDC(Ice Crystals Database in China):根据分割后获得的单张冰晶粒子图片,结合冰晶粒子的形状、尺寸大小,将每张冰晶粒子图片做类别标记,最终分为10个类别,之后在每个类别中挑选出一定数量作为使用卷积网络模型训练和测试的样本,ICDC中冰晶类别名称(对应的图片样本数量)分别如表1:
[0045] 表1
[0046]
[0047] 对于冰晶图片数据库,首先我们检查标记图像的准确性以确保图像唯一,然后我们将冰晶图片数据库按照4:1的比例分为训练集和测试集两部分,并且检查测试集和测试集以确定两者之间没有重复的图片。
[0048] 2)如图3所示,使用深度学习中卷积神经网络(CNN)模型对冰晶粒子数据集进行训练和测试。这里主要使用迁移学习的方法,即是用Imagenet数据集(文献3)训练得到的预训练CNN模型,迁移到冰晶图片数据集上训练,复用预训练网络模型配置,但不复用预训练模型参数,由于冰晶粒子数据集和原模型使用的数据集分布完全不一样,因此需要不断地调整模型配置中的参数以达到预期的效果。
[0049] 将建立的冰晶粒子图片数据库按照一定比例划分成两部分:训练集和测试集。选择预训练的CNN模型,例如,DenseNet、Inception、ResNet、SqueezeNet、VGG等常用的CNN预训练模型。在深度学习框架Pytorch进行训练,根据本次冰晶分类任务来调节预训练模型的参数,也就是使用预训练网络初始化网络,而不是随机初始化,将卷积网络中最后全连接层进行微调,替换成我们所确定的冰晶类别数。之后使用微调后的预训练模型对建立的冰晶图片的训练集和测试集分别进行训练和测试。最后保存测试效果最佳的分类模型。
[0050] 在训练之前,对冰晶粒子数据库中每张冰晶图片进行以下的数据预处理:图片根据短边等比例缩放,对原始尺寸为[256,480]冰晶图像进行随机采样以进行尺度增强。从图像或其水平翻转中随机采样224×224的裁剪块,其每个像素都减去平均值。此外,调整图像的亮度并且对图像进行缩放以进行图像增强。
[0051] 然后,在每次卷积层之后和激活层之前,采用批量标准化(BN)方法(文献4)。在训练过程中使用随机梯度下降和反向传播方法(文献5),图片每次训练的批量大小为4。实验设置动量参数为0.9。另外,为了获得最后一个卷积层的合理权重,使用0.001的学习率并训练30次。每训练一次测试其准确率,同时每经过7次完整训练便将学习率调整为原来的0.1倍。实验中使用了机器学习软件包Pytorch(文献6),以及基于ImageNet数据集训练的的预训练CNN模型,之后在一台配有NVIDIA GeForce GTX1080Ti的电脑上运行。根据训练最优结果选择一种预训练模型:ResNet152。ResNet152是2015年ImageNet大规模视觉识别挑战赛(ILSVRC)竞赛的第一名,具有152层卷积层(文献7)。之后用ResNet152进行迁移学习,首先加载ResNet152预训练模型并将最后一层全连接层输出类别重置为10,训练过程中输出每一次训练和测试的准确率,并自动将具有最高测试精度时的模型保存(测试结果精度最高达到96%)。
[0052] 3)使用步骤2)中保存的模型来对冰晶图片进行自动分类。即调用2)中训练好的分类模型用来分类和识别其他所需要进行分类的冰晶图片,首先对所需要预测的图片进行与上述训练时进行相同的图片预处理操作,之后,用训练好的分类模型对随机输入的图片进行预测,模型预测所获得最大概率的类别便作为该图像分类之后的类别,这样循环输入数据集中其他需要预测的图片,即可获得所有图片的分类结果。
[0053] 以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。