CN114549891A - 一种基于对比自监督学习的地基云图云类识别方法 - Google Patents
一种基于对比自监督学习的地基云图云类识别方法 Download PDFInfo
- Publication number
- CN114549891A CN114549891A CN202210008918.5A CN202210008918A CN114549891A CN 114549891 A CN114549891 A CN 114549891A CN 202210008918 A CN202210008918 A CN 202210008918A CN 114549891 A CN114549891 A CN 114549891A
- Authority
- CN
- China
- Prior art keywords
- conv2d
- output
- input
- relu
- dimension
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000012549 training Methods 0.000 claims abstract description 65
- 230000006870 function Effects 0.000 claims abstract description 44
- 230000003190 augmentative effect Effects 0.000 claims abstract description 11
- 238000007781 pre-processing Methods 0.000 claims abstract description 7
- 239000013598 vector Substances 0.000 claims description 47
- 238000011176 pooling Methods 0.000 claims description 29
- 238000013434 data augmentation Methods 0.000 claims description 18
- 238000012360 testing method Methods 0.000 claims description 13
- 230000007306 turnover Effects 0.000 claims description 12
- 238000010586 diagram Methods 0.000 claims description 10
- 230000004913 activation Effects 0.000 claims description 9
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 claims description 7
- 210000002364 input neuron Anatomy 0.000 claims description 6
- 210000004205 output neuron Anatomy 0.000 claims description 6
- 230000003416 augmentation Effects 0.000 claims description 5
- 238000005520 cutting process Methods 0.000 claims description 5
- 238000010606 normalization Methods 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 238000009826 distribution Methods 0.000 claims description 3
- 238000013508 migration Methods 0.000 claims description 3
- 230000005012 migration Effects 0.000 claims description 3
- 210000002569 neuron Anatomy 0.000 claims description 3
- 230000008569 process Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 238000003860 storage Methods 0.000 claims description 3
- 238000013519 translation Methods 0.000 claims description 3
- 230000000644 propagated effect Effects 0.000 claims 1
- 238000013135 deep learning Methods 0.000 description 8
- 238000010801 machine learning Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000002759 z-score normalization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24133—Distances to prototypes
- G06F18/24137—Distances to cluster centroïds
- G06F18/2414—Smoothing the distance, e.g. radial basis function networks [RBFN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A90/00—Technologies having an indirect contribution to adaptation to climate change
- Y02A90/10—Information and communication technologies [ICT] supporting adaptation to climate change, e.g. for weather forecasting or climate simulation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Analysis (AREA)
Abstract
本发明提供了一种基于对比自监督学习的地基云图云类识别方法,包括:地基云图预处理与数据增广;初始化训练超参数;基于对比自监督学习的深度网络参数预训练;基于对比自监督学习的深度网络参数预训练:构造用于对比自监督学习的主编码器、辅助编码器、存储体和对比损失函数,以迭代的方式更新网络模型权值和存储体中内容,直到训练轮数达到预设的最大轮数;深度网络参数微调:在经过预训练的深度网络基础上,通过有监督训练对网络权值进行进一步微调;输出云类识别结果:利用完成训练的深度网络模型,通过前向传播,得到地基云图的云类类别。
Description
技术领域
本发明属于大气探测中地面气象观测技术领域,尤其涉及一种基于对比自监督学习的地基云图云类识别方法。
背景技术
云观测是气象观测的重要内容,主要分为卫星遥感和地基观测,其产品分别是卫星云图和地基云图。与卫星云图相比,地基云图主要针对局部天空区域进行观测,时间和空间分辨率更高;且其观测到的是云底部的信息,云特征更明显,更有利于辅助局部区域内的天气预测。地基云图云类识别是模式识别技术在云观测领域的具体运用,其主要任务是对每一幅云图图像,根据特征的差异将其划归到相应的云类别(如层云、积云、卷云、雨层云、积雨云等)中。在地基云图分类的早期研究中,大多数方法都是利用纹理、结构、颜色特征等手工特征(hand-crafted features),结合传统机器学习方法对地基云图进行分类,这类方法包括决策树、K-近邻(K-Nearest Neighbors,KNN)分类器、支持向量机(Support VectorMachine,SVM)、线性判别分析(Linear Discriminant Analysis,LDA)等。然而,由于云体自身变化性与多样性的特点,加之大气中的多种因素同时影响云的状态,手工设计特征的方式并不能充分描述云体特性,云类识别准确率难以得到提高。
近年来,深度学习方法被广泛地应用于图像识别、物体检测、语音识别、自然语言处理等领域,并且取得了领先水平的结果。深度学习技术成功的主要原因在于通过深度(层次)结构,能够更好地进行特征的抽象表示和挖掘特征中的不变性。它舍弃了研究人员预先手工设计特征进而提取特征的模式,自主对数据从低层到高层渐进地进行特征提取,最终形成适合模式分类的理想特征,进而提升分类或者预测的准确性。随着人工智能与气象数据处理技术的深入融合,基于深度学习的解决方案在气象领域持续升温。目前,也有部分工作将深度学习与地基云图云类识别相结合,采用的深度网络模型包括卷积神经网络(Convolutional Neural Networks,CNN)和图神经网络(Graph Neural Networks,GNN)等。这些基于深度学习的工作使地基云图特征提取能力和云类识别准确率得到了一定的提升,但却面临带标签云图样本缺乏的问题。深度学习的主要驱动力为可利用的数据量,数据量越充分,训练得到的模型泛化能力和测试性能越好。但在实际的地基云图分类场景中,往往能较容易地收集到大量的未标记样本,而获取“标记”却需耗费人力物力,因而经过专业人员标注的样本是非常有限的。如何在有限标记样本数据集上进行有效的学习,成为面向地基云图云类识别设计深度学习模型的一个难题。
近几年以来,自监督学习(Self-Supervised Learning,SSL)方法成为机器学习的热点研究方向。自监督学习方法是一种特殊形式的无监督学习方法,其主要思想是数据本身为学习算法提供了监督信息,可充分利用大量无标签数据进行特征学习。一般认为,自监督学习分为生成式学习和对比学习两类。其中,对比自监督学习由于模型和优化简单、泛化能力强的特点,成为近年的机器学习的一个研究焦点。
发明内容
发明目的:本本发明所要解决的技术问题是针对地基云图云类识别在带标注样本不足情况下识别准确性和鲁棒性不高的问题,提出了基于对比自监督学习的地基云图云类识别方法,包括以下步骤:
步骤1,进行地基云图预处理与数据增广:将训练集的图像大小调整到统一的大小并进行归一化,在此基础上进行数据增广;
步骤2,初始化训练超参数:设置每次输入到网络中的训练样本数目、动量系数、对比损失中温度系数、模型训练轮数等超参数;
步骤3,进行基于对比自监督学习的深度网络参数预训练:构造用于对比自监督学习的主编码器、辅助编码器、存储体和对比损失函数,以迭代的方式更新网络模型权值和存储体中内容,直到训练轮数达到预设的最大轮数;
步骤4,进行深度网络参数微调:在经过预训练的深度网络基础上,通过有监督训练对网络权值进行进一步微调,得到完成训练的深度网络模型;
步骤5,输出云类识别结果:利用完成训练的深度网络模型,通过前向传播,得到地基云图的云类类别。
步骤1包括以下步骤:
步骤1-1,地基云图预处理:利用地基全天空成像仪、数码相机等设备对昼间不同时刻天空中的云进行拍摄,得到地基云图数据集。将地基云图数据集中所有图像大小调整到一定尺寸,一般为224×224,然后在红色R、绿色G、蓝色B三个通道上分别采用Z-score标准化(减去平均值除以标准差)的方式对图像进行归一化操作,得到归一化后的图像集合。对于归一化后图像集合中所有图片(设总数目为N),按照一定的比例α,随机选取α×N张图片作为训练集,剩下的(1-α)×N张图片作为测试集,训练集和测试集均包含所有类别的地基云图样本。
步骤1-2,地基云图数据增广:对于步骤1-1得到的训练集中的任意地基云图u,通过不同的数据增广方法,得到它的两个增广样本v和v’;数据增广后的图像与原图像具有相同的尺寸,但因采取的数据增广方法不同,v和v’的图像形式也有所差异;所述不同的数据增广方法包括图像平移、旋转、翻转、裁剪拉伸、色彩抖动、随机噪声、图像模糊(如高斯模糊)等,数据增广后的图像与原图像具有相同的尺寸,其中,旋转包括90°、180°、270°三种旋转形式,翻转包括水平翻转和垂直翻转两种形式,裁剪拉伸是随机从图像中选取一块区域并拉伸该区域至原图像的尺寸。
步骤2包括以下步骤:将训练时每次从训练集输入网络的样本数量设置为batchsize,默认值为256;将更新辅助编码器权值的动量系数设为momentum,默认值为0.999;将存储体中负样本的数量设置为m,默认值为4096;对比损失函数中温度系数设为τ,默认值为0.5;模型预训练的轮数设为epoch_pretraining,默认值为500;模型微调训练轮数设为epoch_finetunning,默认值为100。
步骤3包括以下步骤:
步骤3-1,构造主编码器q和辅助编码器k:步骤1-2得到的增广样本v和v’分别经过主编码器和辅助编码器得到对应的嵌入向量z和z’;主编码器和辅助编码器内部采用相同的网络结构,只是二者的更新方式有所差别。主编码器包括基编码器f和投影头g,用θ和和分别表示主编码器中的基编码器f和投影头g中的可学习参数合集,f和g也记为fθ和辅助编码器具有与主编码器有相同的拓扑结构和超参数,其功能在于用以构造对比损失函数所需要的样本对。用和表示辅助编码器中的基编码器f和投影头g,和分别为辅助编码器中的基编码器和投影头中的可学习参数合集。
步骤3-2,构造存储体:采用队列形式构建存储体,用以存储负样本。
步骤3-3,构造正负样本对:自监督训练时,把每个无标签的样本分别看成一个单独的类别。输入数据通过主编码器和辅助编码器得到的嵌入向量构成正样本对,输入数据经过主编码器得到的嵌入向量和存储体中尚在队列中的之前所有批batch对应的嵌入向量构成负样本对。
步骤3-4,构造损失函数:采用对比损失函数用以指导深度网络的预训练,使得相似样本趋于接近,不相似样本趋于远离。
步骤3-5,更新网络参数和存储体内容:根据步骤2设定的参数对深度网络进行预训练,每次送入网络的样本数目为batchsize,以迭代的方式更新网络模型权值和存储体中内容,直到训练轮数达到预设的最大轮数epoch_pretraining。
步骤3-1包括以下步骤:
步骤3-1-1,构造基编码器:采用残差网络ResNet作为基编码器,具体包括卷积模块Conv1、最大池化层MaxPooling、卷积模块Conv2_x、Conv3_x、Conv4_x、Conv5_x和平均池化层AvgPooling,各模块采用串行方式连接,其中,卷积模块Conv2_x、Conv3_x、Conv4_x、Conv5_x分别包括3、4、6、3个Bottleneck结构;
步骤3-1-2,构造投影头:采用多层感知机(MLP)构造投影头,投影头串联在基编码器之后。多层感知机MLP的输入神经元数目为X1,一般为2048(基编码器的输出节点数目),隐含层神经元数目为X2,一般为512,输出神经元数目为X3,一般为128。投影头的作用在于将特征表示映射到对比损失函数所作用的空间中,减少下游任务中的信息丢失。
步骤3-1-1包括以下步骤:
步骤3-1-1-1,构造卷积模块Conv1:该模块包括一个卷积层Conv2d,一个BatchNorm层BN,以及一个非线性激活函数层ReLU。卷积模块Conv1的输入数据尺寸为步骤1-1中调整的尺寸,即(224,224),卷积层Conv2d的卷积核大小kernel_size为(7,7),输入通道数为3,输出特征图通道数为64,步长stride为2,补零padding为3。Conv2d的输出尺寸OutputSize的计算公式为:
其中,InputSize表示输入数据的尺寸,P表示补零值,F表示卷积核大小,S表示步长,表示向下取整函数。用(channel,width,height)的形式表示数据的输入输出维度,channel、width、height分别表示通道数、图像宽度、图像高度。根据该公式,可知道卷积层的输出特征图维度为(64,112,112)。
卷积模块Conv1除了卷积层,还包括一个BN(Batch Normalization,批归一化)层和一个ReLU(Rectified Linear Unit,修正线性单元)层,它们均不改变图像的尺寸和通道数。ReLU(x)是一种非线性激活函数,其具体形式为:
ReLU(x)=max(0,x)
其中,x表示函数的输入变量;
步骤3-1-1-2,构造最大池化层MaxPooling:该层的输入维度为(64,112,112),采用的池化操作核大小为3,步长为2,补零为1,经过最大池化操作,特征图尺寸缩小1/2,通道数保持不变,因此MaxPooling层的输出特征图维度为(64,56,56)。
步骤3-1-1-3,构造卷积模块Conv2_x:该模块由3个瓶颈Bottleneck结构组成,分别表示为Bottleneck1、Bottleneck2和Bottleneck3,前一个瓶颈Bottleneck的输出是后一个Bottleneck的输入。Bottleneck根据残差连接方式的不同,分为卷积残差块ConvBlock和恒等残差块IdentityBlock两种类型;
步骤3-1-1-4,构造卷积模块Conv3_x:该模块由4个Bottleneck结构组成,分别表示为Bottleneck1、Bottleneck2、Bottleneck3、Bottleneck4,前一个Bottleneck的输出是后一个Bottleneck的输入。
步骤3-1-1-5,构造卷积模块Conv4_x:该模块由6个Bottleneck结构组成,分别表示为Bottleneck1、Bottleneck2、Bottleneck3、Bottleneck4、Bottleneck5、Bottleneck6,前一个Bottleneck的输出是后一个Bottleneck的输入。
步骤3-1-1-6,构造卷积模块Conv5_x:该模块由3个Bottleneck结构组成,分别表示为Bottleneck1、Bottleneck2、Bottleneck3,前一个Bottleneck的输出是后一个Bottleneck的输入。
步骤3-1-1-7,构造平均池化层AvgPooling。
步骤3-1-1-3包括以下步骤:
步骤3-1-1-3-1,构造Bottleneck1:Bottleneck1采用ConvBlock残差连接方式,包括4个卷积层Conv2d1、Conv2d2、Conv2d3、Conv2d4,4个BatchNorm层BN1、BN2、BN3、BN4,以及3个ReLU层ReLU1、ReLU2、ReLU3。其中,BatchNorm层都连接在相应的卷积层之后。具体来看,Conv2d1的输入维度是(64,56,56),卷积核大小为(1,1),输入通道数为64,输出特征图通道数为64,步长为1,补零为0。BN1和ReLU1依次连接在Conv2d1后。Conv2d2的输入维度是(64,56,56),卷积核大小为(3,3),输入通道数为64,输出特征图通道数为64,步长为1,补零为1。BN2和ReLU2依次连接在Conv2d2后。Conv2d3的输入维度是(64,56,56),卷积核大小为(1,1),输入通道数为64,输出特征图通道数为256,步长为1,补零为0。因此,卷积层Conv2d3的输出特征图维度为(256,56,56)。BN3连接在Conv2d3后。Conv2d4以MaxPooling层的输出作为输入,其输入维度是(64,56,56),卷积核大小为(1,1),输入通道数为64,输出特征图通道数为256,步长为1,补零为0。Conv2d4主要起到升维的作用,将数据的通道数从64提升到256。BN4连接在Conv2d4后。将BN3层和BN4层的输出对应元素相加,再经过非线性激活层ReLU3,即得到Bottleneck1的输出。以x表示Bottleneck1的输入数据,F(x)和G(x)分别表示BN3层和BN4层的输出,则Bottleneck1的输出表示为:
步骤3-1-1-3-2,构造Bottleneck2:Bottleneck2采用IdentityBlock残差连接方式,包括3个卷积层Conv2d1、Conv2d2、Conv2d3,3个BatchNorm层BN1、BN2、BN3,以及3个ReLU层ReLU1、ReLU2、ReLU3。其中,BatchNorm层都连接在相应的卷积层之后。具体来看,Conv2d1的输入维度是(256,56,56),卷积核大小为(1,1),输入通道数为256,输出特征图通道数为64,步长为1,补零为0。BN1和ReLU1依次连接在Conv2d1后。Conv2d2的输入维度是(64,56,56),卷积核大小为(3,3),输入通道数为64,输出特征图通道数为64,步长为1,补零为1。BN2和ReLU2依次连接在Conv2d2后。Conv2d3的输入维度是(64,56,56),卷积核大小为(1,1),输入通道数为64,输出特征图通道数为256,步长为1,补零为0。因此,卷积层Conv2d3的输出特征图维度为(256,56,56)。BN3连接在Conv2d3后。将BN3层的输出与Bottleneck2输入数据对应元素相加,再经过非线性激活层ReLU3即得到Bottleneck2的输出。以x表示Bottleneck2的输入数据,F(x)表示BN3层的输出,则Bottleneck2的输出表示为:
步骤3-1-1-3-3,构造Bottleneck3:Bottleneck3具有与步骤3-1-1-3-2中Bottleneck2相同的结构和参数。
步骤3-1-1-4包括以下步骤:
步骤3-1-1-4-1,构造Bottleneck1:Bottleneck1采用ConvBlock残差连接方式,在结构上与Conv2_x的Bottleneck1(步骤3-1-1-3-1)相同,包括4个卷积层(Conv2d1、Conv2d2、Conv2d3、Conv2d4),4个BatchNorm层(BN1、BN2、BN3、BN4),以及3个ReLU层(ReLU1、ReLU2、ReLU3)。其中,BatchNorm层都连接在相应的卷积层之后。与Conv2_x的Bottleneck1不同之处在于各层通道数以及Conv2d2和Conv2d4的步长设置不同。具体来看,Conv2d1的输入维度是(256,56,56),卷积核大小为(1,1),输入通道数为256,输出特征图通道数为128,步长为1,补零为0。BN1和ReLU1依次连接在Conv2d1后。Conv2d2的输入维度是(128,56,56),卷积核大小为(3,3),输入通道数为128,输出特征图通道数为128,步长为2,补零为1。因此,卷积层Conv2d2的输出特征图维度为(128,28,28)。BN2和ReLU2依次连接在Conv2d2后。Conv2d3的输入维度是(128,28,28),卷积核大小为(1,1),输入通道数为128,输出特征图通道数为512,步长为1,补零为0。因此,卷积层Conv2d3的输出特征图维度为(512,28,28)。BN3连接在Conv2d3后。Conv2d4以模块Conv2_x的输出作为输入,其输入维度是(256,56,56),卷积核大小为(1,1),输入通道数为256,输出特征图通道数为512,步长为2,补零为0。经过卷积操作,Conv2d4输出特征图维度为(512,28,28)。这里,Conv2d4起到升维和降采样的作用,将数据的通道数从64提升到256,并将图像尺寸从(56,56)减小为(28,28)。BN4连接在Conv2d4后。将BN3层和BN4层的输出对应元素相加,再经过非线性激活层ReLU3,即得到Bottleneck1的输出。
步骤3-1-1-4-2,构造Bottleneck2:Bottleneck2采用恒等残差块IdentityBlock残差连接方式,在结构上与Conv2_x的Bottleneck2(步骤3-1-1-3-2)相似,包括3个卷积层Conv2d1、Conv2d2、Conv2d3,3个BatchNorm层BN1、BN2、BN3,以及3个ReLU层ReLU1、ReLU2、ReLU3。不同之处仅在于各卷积层的输入通道数、输出通道数以及数据尺寸不同。具体来看,对于本模块而言,Conv2d1的输入维度为(512,28,28),输出维度为(128,28,28);Conv2d2的输入维度为(128,28,28),输出维度为(128,28,28);Conv2d3的输入维度为(128,28,28),输出维度为(512,28,28)。
步骤3-1-1-4-3,构造Bottleneck3和Bottleneck4:Bottleneck3和Bottleneck4具有与步骤3-1-1-4-2中Bottleneck2相同的结构和参数。
步骤3-1-1-5包括以下步骤:
步骤3-1-1-5-1,构造Bottleneck1:Bottleneck1采用ConvBlock残差连接方式,在结构上与Conv3_x的Bottleneck1(步骤3-1-1-4-1)相同,不同之处仅在于各卷积层的输入通道数、输出通道数以及数据尺寸不同。具体来看,对于本模块而言,这里Conv2d1的输入维度为(512,28,28),输出维度为(256,28,28);Conv2d2的输入维度为(256,28,28),输出维度为(256,14,14);Conv2d3的输入维度为(256,14,14),输出维度为(1024,14,14);Conv2d4的输入维度为(512,28,28),输出维度为(1024,14,14)。
步骤3-1-1-5-2,构造Bottleneck2:该模块采用IdentityBlock残差连接方式,在结构上与Conv3_x的Bottleneck2(步骤3-1-1-4-2)相似,包括3个卷积层Conv2d1、Conv2d2、Conv2d3,3个BatchNorm层BN1、BN2、BN3,以及3个ReLU层ReLU1、ReLU2、ReLU3。不同之处仅在于各卷积层的输入通道数、输出通道数以及数据尺寸不同。具体来看,对于本模块而言,这里的Conv2d1的输入维度为(1024,14,14),输出维度为(256,14,14);Conv2d2的输入维度为(256,14,14),输出维度为(256,14,14);Conv2d3的输入维度为(256,14,14),输出维度为(1024,14,14)。
步骤3-1-1-5-3,构造Bottleneck3、Bottleneck4、Bottleneck5、Bottleneck6:Bottleneck3、Bottleneck4、Bottleneck5、Bottleneck6具有与步骤3-1-1-5-2中Bottleneck2相同的结构和参数。
步骤3-1-1-6包括以下步骤:
步骤3-1-1-6-1,构造Bottleneck1:该模块采用ConvBlock残差连接方式,在结构上与Conv4_x的Bottleneck1(步骤3-1-1-5-1)相同,不同之处在于各卷积层的输入通道数、输出通道数以及数据尺寸不同。具体来看,对于本模块而言,这里的Conv2d1的输入维度为(1024,14,14),输出维度为(512,14,14);Conv2d2的输入维度为(512,14,14),输出维度为(512,7,7);Conv2d3的输入维度为(512,7,7),输出维度为(2048,7,7);Conv2d4的输入维度为(1024,14,14),输出维度为(2048,7,7)。
步骤3-1-1-6-2,构造Bottleneck2:该模块采用IdentityBlock残差连接方式,在结构上与Conv4_x的Bottleneck2(步骤3-1-1-4-2)相似,包括3个卷积层Conv2d1、Conv2d2、Conv2d3,3个BatchNorm层BN1、BN2、BN3,以及3个ReLU层ReLU1、ReLU2、ReLU3;不同之处仅在于各卷积层的输入通道数、输出通道数以及数据尺寸不同。具体来看,对于本模块而言,这里的Conv2d1的输入维度为(2048,7 7),输出维度为(512,7,7);Conv2d2的输入维度为(512,7,7),输出维度为(512,7,7);Conv2d3的输入维度为(512,7,7),输出维度为(2048,7,7)。
步骤3-1-1-6-3,构造Bottleneck3:Bottleneck3具有与步骤3-1-1-6-2中Bottleneck2相同的结构和参数。
步骤3-1-1-7包括:平均池化层AvgPooling模块输入维度为(2048,7,7),采用的平均池化操作尺度为(7,7),得到的输出数据维度为(2048,1,1),将输出数据转化为长度为2048的一维特征表示向量。
步骤3-2包括:采用“先进先出”的队列数据结构构建存储体。学习过程中,无标签数据以批(batch)的形式进行输入。一个batch中样本经过辅助编码器k得到的嵌入向量会通过入队列的操作存储在存储体M中。存储体M主要用于存储负样本并形成负样本对。
步骤3-3包括以下步骤:无标签样本u通过数据增广得到两个增广样本v和v’,随后v通过主编码器的fθ和得到嵌入向量z;同时,v’通过辅助编码器的和得到嵌入向量z’。自监督训练时,把每个无标签的样本分别看成一个单独的类别。z和z’来源于同一无标签的样本,构成了一个正样本对。为描述方便,z’也被记为z+,表示z’是z的正样本。负样本对的构造方式为:当前样本经过主编码器得到的嵌入向量z和存储体M中保存的尚在队列中的之前所有batch对应的嵌入向量构成负样本对。
其中,z+表示正样本,表示第j个负样本;m表示存储在存储体(memory bank)M中的负样本总个数;τ为控制数据分布一致性的温度(temperature)系数;exp(·)表示以自然常数e为底数的指数函数;sim(·,·)表示相似度函数,采用余弦相似度的形式:
步骤3-5包括以下步骤:
其中,momentum表示动量系数。momentum的取值一般选取的比较大(0.99以上),以使得辅助编码器更新得更为平稳和稳定。
步骤3-5-3,更新存储体的队列:将辅助编码器k学习得到的嵌入向量通过入队列操作存储在存储体M中。同时,当存储体M的数据超过其最大容量时,将M中最早的batch移出队列。
步骤4包括:该步骤采用有监督的方式对网络权值进行进一步微调。对步骤3中主编码器的基编码器fθ进行参数迁移,在基编码器fθ后添加一个全连接层FC,全连接层FC的输入神经元数目为基编码器的特征表示向量的长度2048,输出神经元数目为地基云图的类别数class_num。步骤4中,输入数据为带有标签的样本数据,采用的网络为主编码器中的f后加全连接层FC。加载步骤3预训练得到的基编码器fθ,利用SGD算法以误差反向传播方式迭代对fθ和FC层的网络权值进行更新,直到训练轮数达到预设的最大轮数epoch_finetunning;
步骤5包括:读取按照步骤1-1得到的测试集中的样本,将测试集中的样本输入到步骤4得到的微调后的网络模型中,通过前向传播,在全连接层FC得到长度class_num的特征向量,找到所述特征向量中具有最大响应值的索引位置,即得到地基云图的云类类别。
本发明具有如下有益效果:针对深度学习框架下地基云图云类识别任务,本发明提出一种基于对比自监督学习的地基云图云类识别方法。在数据增广的基础上,采用对比自监督学习这一前沿技术进行地基云图特征表示学习,利用数据本身为学习算法提供监督信息,实现深度网络的预训练。随后,通过有监督训练对深度网络参数进行微调。与现有的基于深度学习的地基云图分类方法相比,本发明采用的对比自监督学习方法可充分挖掘无标签地基云图数据在特征表示方面的潜力,降低地基云图云类识别对标注样本数量的依赖。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1为本发明流程图。
图2为不同数据增广方法示意图。
图3为基于对比自监督学习的网络参数预训练示意图。
图4为卷积残差块ConvBlock结构示意图。
图5为恒等残差块IdentityBlock结构示意图。
具体实施方式
如图1所示,本发明提供了一种基于对比自监督学习的地基云图云类识别方法,包括以下步骤:
步骤1,进行地基云图预处理与数据增广;
步骤2,初始化训练超参数;
步骤3,进行基于对比自监督学习的深度网络参数预训练;
步骤4,进行深度网络参数微调;
步骤5,输出云类识别结果:利用完成训练的深度网络模型,通过前向传播,得到地基云图的云类类别。
步骤1包括以下步骤:
步骤1-1,地基云图预处理:利用地基全天空成像仪、数码相机等设备对昼间不同时刻天空中的云进行拍摄,得到地基云图数据集。将地基云图数据集中所有图像大小调整到一定尺寸,然后在红色R、绿色G、蓝色B三个通道上分别采用Z-score标准化的方式对图像进行归一化操作,得到归一化后的图像集合;对于归一化后图像集合中所有图片(设总数目为N),按照一定的比例α,随机选取α×N张图片作为训练集,剩下的(1-α)×N张图片作为测试集,训练集和测试集均包含所有类别的地基云图样本。在本发明的一实施例中,地基云图数据集中总的图片数目N=5000,包含积云(cumulus)、层云(stratus)、卷云(cirrus)、混合云(hybrid)和晴空(clearsky)共5个类别的云图,每个类别图片数目为1000张;首先将训练集中所有图像大小调整到224×224,然后在R、G、B三个通道上分别采用Z-score标准化(减去平均值除以标准差)的方式对图像进行归一化操作,得到归一化后的图像集合;取α=0.8,随机选择0.8×5000=4000张图片作为训练集(每个类别800张),剩余的1000张图片作为测试集(每个类别200张)。
步骤1-2,地基云图数据增广:对于步骤1-1得到的训练集中的任意图像u,通过不同的数据增广方法,得到它的两个增广样本v和v’;数据增广后的图像与原图像具有相同的尺寸,但因采取的数据增广方法不同,v和v’的图像形式也有所差异;所述不同的数据增广方法包括图像平移、旋转、翻转、裁剪拉伸、色彩抖动、随机噪声、图像模糊,其中,旋转包括90°、180°、270°三种旋转形式,翻转包括水平翻转和垂直翻转两种形式,裁剪拉伸是随机从图像中选取一块区域并拉伸该区域至原图像的尺寸。图1中两个增广样本v和v’分别是从原图像中选取不同的区域进行裁剪拉伸得到的;图2以积云和层云为例,给出了地基云图采用裁剪拉伸、旋转、随机噪声、高斯模糊四种数据增广方式的效果示意图。
步骤2包括以下步骤:将训练时每次从训练集输入网络的样本数量设置为batchsize,默认值为256;将更新辅助编码器权值的动量系数设为momentum,默认值为0.999;将存储体中负样本的数量设置为m,默认值为4096;对比损失函数中温度系数设为τ,默认值为0.5;模型预训练的轮数设为epoch_pretraining,默认值为500;模型微调训练轮数设为epoch_finetunning,默认值为100。
步骤3包括以下步骤:
步骤3-1,构造主编码器q和辅助编码器k:如图3所示,步骤1-2得到的增广样本v和v’分别经过主编码器和辅助编码器得到对应的嵌入向量,即z和z’。主编码器和辅助编码器内部采用相同的网络结构,只是二者的更新方式有所差别。主编码器由基编码器f和投影头g两个部分组成。用θ和和分别表示主编码器中的基编码器f和投影头g中的可学习参数合集,f和g也记为fθ和辅助编码器具有与主编码器有相同的拓扑结构和超参数,其功能在于用以构造对比损失函数所需要的样本对。用和表示辅助编码器中的基编码器f和投影头g,和为其中的可学习参数。
步骤3-2,构造存储体:采用队列形式构建存储体,用以存储负样本。
步骤3-3,构造正负样本对:自监督训练时,把每个无标签的样本分别看成一个单独的类别。输入数据通过主编码器和辅助编码器得到的嵌入向量构成正样本对,输入数据经过主编码器得到的嵌入向量和存储体中尚在队列中的之前所有batch对应的嵌入向量构成负样本对。
步骤3-4,构造损失函数:采用对比损失函数用以指导深度网络的预训练,使得相似样本趋于接近,不相似样本趋于远离。
步骤3-5,更新网络参数和存储体内容:根据步骤2设定的参数对深度网络进行预训练,每次送入网络的样本数目为batchsize,以迭代的方式更新网络模型权值和存储体中内容,直到训练轮数达到预设的最大轮数epoch_pretraining。
步骤3-1包括以下步骤:
步骤3-1-1,构造基编码器:采用残差网络ResNet作为基编码器,包括卷积模块Conv1,最大池化层MaxPooling,卷积模块Conv2_x、Conv3_x、Conv4_x、Conv5_x以及平均池化层AvgPooling,各模块采用串行方式连接。其中,卷积模块Conv2_x、Conv3_x、Conv4_x、Conv5_x分别包括3、4、6、3个Bottleneck结构。各模块的结构如表1所示:
表1
步骤3-1-2,构造投影头:采用多层感知机(MLP)构造投影头,投影头串联在基编码器之后。MLP的输入神经元数目为2048(基编码器的输出节点数目),隐含层神经元数目为512,输出神经元数目为128。投影头的作用在于将特征表示映射到对比损失函数所作用的空间中,减少下游任务中的信息丢失。
步骤3-1-1包括以下步骤:
步骤3-1-1-1,构造卷积模块Conv1:该模块包括一个卷积层Conv2d,一个BatchNorm层BN,以及一个非线性激活函数层ReLU。Conv1的输入数据尺寸为(224,224),卷积层Conv2d的卷积核大小(kernel_size)为(7,7),输入通道数为3,输出特征图通道数为64,步长(stride)为2,补零(padding)为3。Conv2d的输出尺寸OutputSize的计算公式为:
其中,InputSize表示输入数据的尺寸,P表示补零值,F表示卷积核大小,S表示步长,表示向下取整函数。用(channel,width,height)的形式表示数据的输入输出维度,channel、width、height分别表示通道数、图像宽度、图像高度。根据该公式,可知道卷积层的输出特征图维度为(64,112,112)。
Conv1模块除了卷积层,还包括一个BN层和一个ReLU层,它们均不改变图像的尺寸和通道数。ReLU(x)是一种非线性激活函数,其具体形式为:
ReLU(x)=max(0,x)。
步骤3-1-1-2,构造最大池化层MaxPooling:该层的输入维度为(64,112,112),采用的池化操作核大小为3,步长为2,补零为1,经过最大池化操作,特征图尺寸缩小1/2,通道数保持不变,因此MaxPooling层的输出特征图维度为(64,56,56)。
步骤3-1-1-3,构造卷积模块Conv2_x:该模块由3个Bottleneck结构组成,分别表示为Bottleneck1、Bottleneck2和Bottleneck3,前一个Bottleneck的输出是后一个Bottleneck的输入。Bottleneck根据残差连接方式的不同,分为ConvBlock和IdentityBlock两种类型。
步骤3-1-1-4,构造卷积模块Conv3_x:该模块由4个Bottleneck结构组成,分别表示为Bottleneck1~Bottleneck4,前一个Bottleneck的输出是后一个Bottleneck的输入。
步骤3-1-1-5,构造卷积模块Conv4_x:该模块由6个Bottleneck结构组成,分别表示为Bottleneck1~Bottleneck6,前一个Bottleneck的输出是后一个Bottleneck的输入。
步骤3-1-1-6,构造卷积模块Conv5_x:该模块由3个Bottleneck结构组成,分别表示为Bottleneck1~Bottleneck3,前一个Bottleneck的输出是后一个Bottleneck的输入。
步骤3-1-1-7,构造平均池化层AvgPooling。
步骤3-1-1-3(构造卷积模块Conv2_x)包括以下步骤:
步骤3-1-1-3-1,构造Bottleneck1:该模块采用ConvBlock残差连接方式,其结构如图4所示,包括4个卷积层(Conv2d1、Conv2d2、Conv2d3、Conv2d4),4个BatchNorm层(BN1、BN2、BN3、BN4),以及3个ReLU层(ReLU1、ReLU2、ReLU3)。其中,BatchNorm层都连接在相应的卷积层之后。具体来看,Conv2d1的输入维度是(64,56,56),卷积核大小为(1,1),输入通道数为64,输出特征图通道数为64,步长为1,补零为0。BN1和ReLU1依次连接在Conv2d1后。Conv2d2的输入维度是(64,56,56),卷积核大小为(3,3),输入通道数为64,输出特征图通道数为64,步长为1,补零为1。BN2和ReLU2依次连接在Conv2d2后。Conv2d3的输入维度是(64,56,56),卷积核大小为(1,1),输入通道数为64,输出特征图通道数为256,步长为1,补零为0。因此,卷积层Conv2d3的输出特征图维度为(256,56,56)。BN3连接在Conv2d3后。Conv2d4以MaxPooling层的输出作为输入,其输入维度是(64,56,56),卷积核大小为(1,1),输入通道数为64,输出特征图通道数为256,步长为1,补零为0。Conv2d4主要起到升维的作用,将数据的通道数从64提升到256。BN4连接在Conv2d4后。将BN3层和BN4层的输出对应元素相加,再经过非线性激活层ReLU3,即得到Bottleneck1的输出。以x表示Bottleneck1的输入数据,F(x)和G(x)分别表示BN3层和BN4层的输出,则Bottleneck1的输出表示为:
步骤3-1-1-3-2,构造Bottleneck2:该模块采用IdentityBlock残差连接方式,其结构如图5所示,包括3个卷积层(Conv2d1、Conv2d2、Conv2d3),3个BatchNorm层(BN1、BN2、BN3),以及3个ReLU层(ReLU1、ReLU2、ReLU3)。其中,BatchNorm层都连接在相应的卷积层之后。具体来看,Conv2d1的输入维度是(256,56,56),卷积核大小为(1,1),输入通道数为256,输出特征图通道数为64,步长为1,补零为0。BN1和ReLU1依次连接在Conv2d1后。Conv2d2的输入维度是(64,56,56),卷积核大小为(3,3),输入通道数为64,输出特征图通道数为64,步长为1,补零为1。BN2和ReLU2依次连接在Conv2d2后。Conv2d3的输入维度是(64,56,56),卷积核大小为(1,1),输入通道数为64,输出特征图通道数为256,步长为1,补零为0。因此,卷积层Conv2d3的输出特征图维度为(256,56,56)。BN3连接在Conv2d3后。将BN3层的输出与Bottleneck2输入数据对应元素相加,再经过非线性激活层ReLU3即得到Bottleneck2的输出。以x表示Bottleneck2的输入数据,F(x)表示BN3层的输出,则Bottleneck2的输出表示为:
步骤3-1-1-3-3,构造Bottleneck3:该模块具有与步骤3-1-1-3-2中Bottleneck2相同的结构和参数。
步骤3-1-1-4(构造卷积模块Conv3_x)包括以下步骤:
步骤3-1-1-4-1,构造Bottleneck1:该模块采用ConvBlock残差连接方式,在结构上与Conv2_x的Bottleneck1(步骤3-1-1-3-1)相同,包括4个卷积层(Conv2d1、Conv2d2、Conv2d3、Conv2d4),4个BatchNorm层(BN1、BN2、BN3、BN4),以及3个ReLU层(ReLU1、ReLU2、ReLU3)。其中,BatchNorm层都连接在相应的卷积层之后。与Conv2_x的Bottleneck1不同之处在于各层通道数以及Conv2d2和Conv2d4的步长设置不同。具体来看,Conv2d1的输入维度是(256,56,56),卷积核大小为(1,1),输入通道数为256,输出特征图通道数为128,步长为1,补零为0。BN1和ReLU1依次连接在Conv2d1后。Conv2d2的输入维度是(128,56,56),卷积核大小为(3,3),输入通道数为128,输出特征图通道数为128,步长为2,补零为1。因此,卷积层Conv2d2的输出特征图维度为(128,28,28)。BN2和ReLU2依次连接在Conv2d2后。Conv2d3的输入维度是(128,28,28),卷积核大小为(1,1),输入通道数为128,输出特征图通道数为512,步长为1,补零为0。因此,卷积层Conv2d3的输出特征图维度为(512,28,28)。BN3连接在Conv2d3后。Conv2d4以模块Conv2_x的输出作为输入,其输入维度是(256,56,56),卷积核大小为(1,1),输入通道数为256,输出特征图通道数为512,步长为2,补零为0。经过卷积操作,Conv2d4输出特征图维度为(512,28,28)。这里,Conv2d4起到升维和降采样的作用,将数据的通道数从64提升到256,并将图像尺寸从(56,56)减小为(28,28)。BN4连接在Conv2d4后。将BN3层和BN4层的输出对应元素相加,再经过非线性激活层ReLU3,即得到Bottleneck1的输出。
步骤3-1-1-4-2,构造Bottleneck2:该模块采用IdentityBlock残差连接方式,在结构上与Conv2_x的Bottleneck2(步骤3-1-1-3-2)相似,不同之处仅在于各卷积层的输入通道数、输出通道数以及数据尺寸不同。具体来看,对于本模块而言,Conv2d1的输入维度为(512,28,28),输出维度为(128,28,28);Conv2d2的输入维度为(128,28,28),输出维度亦为(128,28,28);Conv2d3的输入维度为(128,28,28),输出维度为(512,28,28)。
步骤3-1-1-4-3,构造Bottleneck3和Bottleneck4:这2个模块具有与步骤3-1-1-4-2中Bottleneck2相同的结构和参数。
步骤3-1-1-5(构造卷积模块Conv4_x)包括以下步骤:
步骤3-1-1-5-1,构造Bottleneck1:该模块采用ConvBlock残差连接方式,在结构上与Conv3_x的Bottleneck1(步骤3-1-1-4-1)相同,不同之处仅在于各卷积层的输入通道数、输出通道数以及数据尺寸不同。具体来看,对于本模块而言,Conv2d1的输入维度为(512,28,28),输出维度为(256,28,28);Conv2d2的输入维度为(256,28,28),输出维度为(256,14,14);Conv2d3的输入维度为(256,14,14),输出维度为(1024,14,14);Conv2d4的输入维度为(512,28,28),输出维度为(1024,14,14)。
步骤3-1-1-5-2,构造Bottleneck2:该模块采用IdentityBlock残差连接方式,在结构上与Conv3_x的Bottleneck2(步骤3-1-1-4-2)相似,不同之处仅在于各卷积层的输入通道数、输出通道数以及数据尺寸不同。具体来看,对于本模块而言,Conv2d1的输入维度为(1024,14,14),输出维度为(256,14,14);Conv2d2的输入维度为(256,14,14),输出维度亦为(256,14,14);Conv2d3的输入维度为(256,14,14),输出维度为(1024,14,14)。
步骤3-1-1-5-3,构造Bottleneck3~Bottleneck6:这4个模块具有与步骤3-1-1-5-2中Bottleneck2相同的结构和参数。
步骤3-1-1-6(构造卷积模块Conv5_x)包括以下步骤:
步骤3-1-1-6-1,构造Bottleneck1:该模块采用ConvBlock残差连接方式,在结构上与Conv4_x的Bottleneck1(步骤3-1-1-5-1)相同,不同之处仅在于各卷积层的输入通道数、输出通道数以及数据尺寸不同。具体来看,对于本模块而言,Conv2d1的输入维度为(1024,14,14),输出维度为(512,14,14);Conv2d2的输入维度为(512,14,14),输出维度为(512,7,7);Conv2d3的输入维度为(512,7,7),输出维度为(2048,7,7);Conv2d4的输入维度为(1024,14,14),输出维度为(2048,7,7)。
步骤3-1-1-6-2,构造Bottleneck2:该模块采用IdentityBlock残差连接方式,在结构上与Conv4_x的Bottleneck2(步骤3-1-1-4-2)相似,不同之处仅在于各卷积层的输入通道数、输出通道数以及数据尺寸不同。具体来看,对于本模块而言,Conv2d1的输入维度为(2048,7 7),输出维度为(512,7,7);Conv2d2的输入维度为(512,7,7),输出维度亦为(512,7,7);Conv2d3的输入维度为(512,7,7),输出维度为(2048,7,7)。
步骤3-1-1-6-3,构造Bottleneck3:该模块具有与步骤3-1-1-6-2中Bottleneck2相同的结构和参数。
步骤3-1-1-7包括以下步骤:该模块输入维度为(2048,7,7),采用的平均池化操作尺度为(7,7),得到的输出维度为(2048,1,1)。随后,将该数据转化为长度为2048的一维特征表示向量。
步骤3-2包括以下步骤:采用“先进先出”的队列数据结构构建存储体。学习过程中,无标签数据以批(batch)的形式进行输入。一个batch中样本经过辅助编码器k得到的嵌入向量会通过入队列的操作存储在存储体M中。存储体M主要用于存储负样本并形成负样本对。在本发明的一实施例中,存储体的容量设置为4096。
步骤3-3包括以下步骤:无标签样本u通过数据增广得到两个增广样本v和v’,随后v通过主编码器的fθ和得到嵌入向量z;同时,v’通过辅助编码器的和得到嵌入向量z’。自监督训练时,把每个无标签的样本分别看成一个单独的类别。z和z’来源于同一无标签的样本,构成了一个正样本对。为描述方便,z’也被记为z+,表示z’是z的正样本。负样本对的构造方式为:当前样本经过主编码器得到的嵌入向量z和存储体M中保存的尚在队列中的之前所有batch对应的嵌入向量构成负样本对。
步骤3-4包括以下步骤:本发明采用对比损失函数:
其中,z+表示正样本,表示第j个负样本;m表示存储在存储体(memory bank)M中的负样本总个数;τ为控制数据分布一致性的温度(temperature)系数,在本发明一实施例中,τ取值为0.5;exp(·)表示以自然常数e为底数的指数函数;sim(·,·)表示相似度函数,采用余弦相似度的形式:
其中A·B表示向量A和B的点积,||·||表示向量的长度。在本发明的一实施例中,对比损失函数表示为:
步骤3-5包括以下步骤:
其中,momentum表示动量系数。momentum的取值一般选取的比较大(0.99以上),以使得辅助编码器更新得更为平稳和稳定。在本发明一实施例中,momentum取值为0.999,因此,辅助编码器的网络参数和更新方式为:
步骤3-5-3,更新存储体的队列:将辅助编码器k学习得到的嵌入向量通过入队列操作存储在存储体M中。同时,当存储体M的数据超过其最大容量4096时,将M中最早的batch移出队列。
步骤4包括以下步骤:该步骤采用有监督的方式对网络权值进行进一步微调。对步骤3中主编码器的基编码器fθ进行参数迁移,在其后添加一个全连接层FC,FC层的输入神经元数目为基编码器的特征表示向量的长度2048,输出神经元数目为地基云图的类别数class_num。该步骤中,输入数据为带有标签的样本数据,采用的网络为主编码器中的f后加全连接层FC。加载步骤3预训练得到的模型参数,利用SGD算法以误差反向传播方式迭代对网络参数进行更新,直到训练轮数达到预设的最大轮数epoch_finetunning。在本发明一实施例中,epoch_finetunning取值为100,class_num取值为5,即对5类地基云图进行分类。
步骤5包括以下步骤:读取测试数据集中的样本,将其输入到步骤4得到的微调后的网络模型中。模型通过前向传播,在FC层得到长度为5的特征向量。找到该特征向量中具有最大响应值的索引位置,即得到地基云图的云类类别。
本发明提供了一种基于对比自监督学习的地基云图云类识别方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
Claims (10)
1.一种基于对比自监督学习的地基云图云类识别方法,其特征在于,包括以下步骤:
步骤1,进行地基云图预处理与数据增广;
步骤2,初始化训练超参数;
步骤3,进行基于对比自监督学习的深度网络参数预训练;
步骤4,进行深度网络参数微调,得到完成训练的深度网络模型;
步骤5,输出云类识别结果:利用完成训练的深度网络模型,通过前向传播,得到地基云图的云类类别。
2.根据权利要求1所述的方法,其特征在于,步骤1包括以下步骤:
步骤1-1,地基云图预处理:将地基云图数据集中所有图像大小调整到一定尺寸,然后在红色R、绿色G、蓝色B三个通道上分别采用Z-score标准化的方式对图像进行归一化操作,得到归一化后的图像集合;对于归一化后图像集合中所有图片,设总数目为N,按照一定的比例α,随机选取α×N张图片作为训练集,剩下的(1-α)×N张图片作为测试集,训练集和测试集均包含所有类别的地基云图样本;
步骤1-2,地基云图数据增广:对于步骤1-1得到的训练集中的任意地基云图u,通过不同的数据增广方法,得到它的两个增广样本v和v’;所述不同的数据增广方法包括图像平移、旋转、翻转、裁剪拉伸、色彩抖动、随机噪声、图像模糊,其中,旋转包括90°、180°、270°三种旋转形式,翻转包括水平翻转和垂直翻转两种形式,裁剪拉伸是随机从图像中选取一块区域并拉伸该区域至原图像的尺寸。
3.根据权利要求2所述的方法,其特征在于,步骤2包括以下步骤:将训练时每次从训练集输入深度网络模型的样本数量设置为batchsize;将更新辅助编码器权值的动量系数设为momentum;将存储体中负样本的数量设置为m;对比损失函数中温度系数设为τ;模型预训练的轮数设为epoch_pretraining;模型微调训练轮数设为epoch_finetunning。
4.根据权利要求3所述的方法,其特征在于,步骤3包括以下步骤:
步骤3-1,构造主编码器q和辅助编码器k:步骤1-2得到的增广样本v和v’分别经过主编码器和辅助编码器得到对应的嵌入向量z和z’;主编码器和辅助编码器内部采用相同的网络结构,主编码器包括基编码器fθ和投影头用θ和和分别表示主编码器中的基编码器fθ和投影头中的可学习参数合集;辅助编码器具有与主编码器有相同的拓扑结构和超参数;用和分别表示辅助编码器中的基编码器和投影头,和分别为辅助编码器中的基编码器和投影头中的可学习参数合集;
步骤3-2,构造存储体:采用队列形式构建存储体,用以存储负样本;
步骤3-3,构造正负样本对:自监督训练时,把每个无标签的样本分别看成一个单独的类别;输入数据通过主编码器和辅助编码器得到的嵌入向量构成正样本对,输入数据经过主编码器得到的嵌入向量和存储体中尚在队列中的之前所有批batch对应的嵌入向量构成负样本对;
步骤3-4,构造损失函数:采用对比损失函数用以指导深度网络的预训练,使得相似样本趋于接近,不相似样本趋于远离;
步骤3-5,更新网络参数和存储体内容:根据步骤2设定的参数对深度网络进行预训练,每次送入网络的样本数目为batchsize,以迭代的方式更新网络模型权值和存储体中内容,直到训练轮数达到预设的最大轮数epoch_pretraining。
5.根据权利要求4所述的方法,其特征在于,步骤3-1包括以下步骤:
步骤3-1-1,构造基编码器:采用残差网络ResNet作为基编码器,具体包括卷积模块Conv1、最大池化层MaxPooling、卷积模块Conv2_x、Conv3_x、Conv4_x、Conv5_x和平均池化层AvgPooling,各模块采用串行方式连接,其中,卷积模块Conv2_x、Conv3_x、Conv4_x、Conv5_x分别包括3、4、6、3个Bottleneck结构;
步骤3-1-2,构造投影头:采用多层感知机MLP构造投影头,投影头串联在基编码器之后;多层感知机MLP的输入神经元数目为X1,隐含层神经元数目为X2,输出神经元数目为X3。
6.根据权利要求5所述的方法,其特征在于,步骤3-1-1包括以下步骤:
步骤3-1-1-1,构造卷积模块Conv1:该模块包括一个卷积层Conv2d,一个BatchNorm层BN,以及一个非线性激活函数层ReLU;卷积模块Conv1的输入数据尺寸为步骤1-1中调整的尺寸,卷积层Conv2d的卷积核大小kernel_size为(7,7),输入通道数为3,输出特征图通道数为64,步长stride为2,补零padding为3;Conv2d的输出尺寸OutputSize的计算公式为:
其中,InputSize表示输入数据的尺寸,P表示补零值,F表示卷积核大小,S表示步长,表示向下取整函数;用(channel,width,height)的形式表示数据的输入输出维度,channel、width、height分别表示通道数、图像宽度、图像高度;
卷积模块Conv1还包括一个BN层和一个ReLU层,它们均不改变图像的尺寸和通道数;ReLU(x)是一种非线性激活函数,其具体形式为:
ReLU(x)=max(0,x);
其中,x表示函数的输入变量;
步骤3-1-1-2,构造最大池化层MaxPooling:该层的输入维度为(64,112,112),采用的池化操作核大小为3,步长为2,补零为1,经过最大池化操作,特征图尺寸缩小1/2,通道数保持不变;
步骤3-1-1-3,构造卷积模块Conv2_x:该模块由3个瓶颈Bottleneck结构组成,分别表示为Bottleneck1、Bottleneck2和Bottleneck3,前一个瓶颈Bottleneck的输出是后一个Bottleneck的输入;Bottleneck根据残差连接方式的不同,分为卷积残差块ConvBlock和恒等残差块IdentityBlock两种类型;
步骤3-1-1-4,构造卷积模块Conv3_x:该模块由4个Bottleneck结构组成,分别表示为Bottleneck1、Bottleneck2、Bottleneck3、Bottleneck4,前一个Bottleneck的输出是后一个Bottleneck的输入;
步骤3-1-1-5,构造卷积模块Conv4_x:该模块由6个Bottleneck结构组成,分别表示为Bottleneck1、Bottleneck2、Bottleneck3、Bottleneck4、Bottleneck5、Bottleneck6,前一个Bottleneck的输出是后一个Bottleneck的输入;
步骤3-1-1-6,构造卷积模块Conv5_x:该模块由3个Bottleneck结构组成,分别表示为Bottleneck1、Bottleneck2、Bottleneck3,前一个Bottleneck的输出是后一个Bottleneck的输入;
步骤3-1-1-7,构造平均池化层AvgPooling。
7.根据权利要求6所述的方法,其特征在于,步骤3-1-1-3包括以下步骤:
步骤3-1-1-3-1,构造Bottleneck1:Bottleneck1采用ConvBlock残差连接方式,包括4个卷积层Conv2d1、Conv2d2、Conv2d3、Conv2d4,4个BatchNorm层BN1、BN2、BN3、BN4,以及3个ReLU层ReLU1、ReLU2、ReLU3;其中,BatchNorm层都连接在相应的卷积层之后;Conv2d1的输入维度是(64,56,56),卷积核大小为(1,1),输入通道数为64,输出特征图通道数为64,步长为1,补零为0;BN1和ReLU1依次连接在Conv2d1后;Conv2d2的输入维度是(64,56,56),卷积核大小为(3,3),输入通道数为64,输出特征图通道数为64,步长为1,补零为1;BN2和ReLU2依次连接在Conv2d2后;Conv2d3的输入维度是(64,56,56),卷积核大小为(1,1),输入通道数为64,输出特征图通道数为256,步长为1,补零为0;卷积层Conv2d3的输出特征图维度为(256,56,56);BN3连接在Conv2d3后;Conv2d4以MaxPooling层的输出作为输入,输入维度是(64,56,56),卷积核大小为(1,1),输入通道数为64,输出特征图通道数为256,步长为1,补零为0;BN4连接在Conv2d4后;
将BN3层和BN4层的输出对应元素相加,再经过非线性激活层ReLU3,即得到Bottleneck1的输出;以x表示Bottleneck1的输入数据,F(x)和G(x)分别表示BN3层和BN4层的输出,则Bottleneck1的输出y表示为:
y=ReLU(F(x)⊕G(x))
其中,⊕表示对应元素相加;
步骤3-1-1-3-2,构造Bottleneck2:Bottleneck2采用IdentityBlock残差连接方式,包括3个卷积层Conv2d1、Conv2d2、Conv2d3,3个BatchNorm层BN1、BN2、BN3,以及3个ReLU层ReLU1、ReLU2、ReLU3;其中,BatchNorm层都连接在相应的卷积层之后;
Conv2d1的输入维度是(256,56,56),卷积核大小为(1,1),输入通道数为256,输出特征图通道数为64,步长为1,补零为0;BN1和ReLU1依次连接在Conv2d1后;Conv2d2的输入维度是(64,56,56),卷积核大小为(3,3),输入通道数为64,输出特征图通道数为64,步长为1,补零为1;BN2和ReLU2依次连接在Conv2d2后;Conv2d3的输入维度是(64,56,56),卷积核大小为(1,1),输入通道数为64,输出特征图通道数为256,步长为1,补零为0;BN3连接在Conv2d3后;
将BN3层的输出与Bottleneck2输入数据对应元素相加,再经过非线性激活层ReLU3即得到Bottleneck2的输出;
以x表示Bottleneck2的输入数据,F(x)表示BN3层的输出,则Bottleneck2的输出y表示为:
y=ReLU(F(x)⊕x);
步骤3-1-1-3-3,构造Bottleneck3:Bottleneck3具有与步骤3-1-1-3-2中Bottleneck2相同的结构和参数。
8.根据权利要求7所述的方法,其特征在于,步骤3-1-1-4包括以下步骤:
步骤3-1-1-4-1,构造Bottleneck1:Bottleneck1采用ConvBlock残差连接方式,在结构上与Conv2_x的Bottleneck1相同,包括4个卷积层Conv2d1、Conv2d2、Conv2d3、Conv2d4,4个BatchNorm层BN1、BN2、BN3、BN4,以及3个ReLU层ReLU1、ReLU2、ReLU3;其中,BatchNorm层都连接在相应的卷积层之后;Conv2d1的输入维度是(256,56,56),卷积核大小为(1,1),输入通道数为256,输出特征图通道数为128,步长为1,补零为0;
BN1和ReLU1依次连接在Conv2d1后;Conv2d2的输入维度是(128,56,56),卷积核大小为(3,3),输入通道数为128,输出特征图通道数为128,步长为2,补零为1;
BN2和ReLU2依次连接在Conv2d2后;Conv2d3的输入维度是(128,28,28),卷积核大小为(1,1),输入通道数为128,输出特征图通道数为512,步长为1,补零为0;
BN3连接在Conv2d3后;
Conv2d4以模块Conv2_x的输出作为输入,输入维度是(256,56,56),卷积核大小为(1,1),输入通道数为256,输出特征图通道数为512,步长为2,补零为0;
经过卷积操作,Conv2d4输出特征图维度为(512,28,28);
BN4连接在Conv2d4后;
将BN3层和BN4层的输出对应元素相加,再经过非线性激活层ReLU3,即得到Bottleneck1的输出;
步骤3-1-1-4-2,构造Bottleneck2:Bottleneck2采用恒等残差块IdentityBlock残差连接方式,包括3个卷积层Conv2d1、Conv2d2、Conv2d3,3个BatchNorm层BN1、BN2、BN3,以及3个ReLU层ReLU1、ReLU2、ReLU3;Conv2d1的输入维度为(512,28,28),输出维度为(128,28,28);Conv2d2的输入维度为(128,28,28),输出维度为(128,28,28);Conv2d3的输入维度为(128,28,28),输出维度为(512,28,28);
步骤3-1-1-4-3,构造Bottleneck3和Bottleneck4:Bottleneck3和Bottleneck4具有与步骤3-1-1-4-2中Bottleneck2相同的结构和参数。
9.根据权利要求8所述的方法,其特征在于,步骤3-1-1-5包括以下步骤:
步骤3-1-1-5-1,构造Bottleneck1:Bottleneck1采用ConvBlock残差连接方式,在结构上与Conv3_x的Bottleneck1相同,不同之处在于各卷积层的输入通道数、输出通道数以及数据尺寸不同,这里Conv2d1的输入维度为(512,28,28),输出维度为(256,28,28);Conv2d2的输入维度为(256,28,28),输出维度为(256,14,14);Conv2d3的输入维度为(256,14,14),输出维度为(1024,14,14);Conv2d4的输入维度为(512,28,28),输出维度为(1024,14,14);
步骤3-1-1-5-2,构造Bottleneck2:Bottleneck2采用IdentityBlock残差连接方式,包括3个卷积层Conv2d1、Conv2d2、Conv2d3,3个BatchNorm层BN1、BN2、BN3,以及3个ReLU层ReLU1、ReLU2、ReLU3;这里的Conv2d1的输入维度为(1024,14,14),输出维度为(256,14,14);Conv2d2的输入维度为(256,14,14),输出维度为(256,14,14);Conv2d3的输入维度为(256,14,14),输出维度为(1024,14,14);
步骤3-1-1-5-3,构造Bottleneck3、Bottleneck4、Bottleneck5、Bottleneck6:Bottleneck3、Bottleneck4、Bottleneck5、Bottleneck6具有与步骤3-1-1-5-2中Bottleneck2相同的结构和参数。
10.根据权利要求9所述的方法,其特征在于,步骤3-1-1-6包括以下步骤:
步骤3-1-1-6-1,构造Bottleneck1:Bottleneck1采用ConvBlock残差连接方式,在结构上与Conv4_x的Bottleneck1相同,不同之处在于各卷积层的输入通道数、输出通道数以及数据尺寸不同:这里的Conv2d1的输入维度为(1024,14,14),输出维度为(512,14,14);Conv2d2的输入维度为(512,14,14),输出维度为(512,7,7);Conv2d3的输入维度为(512,7,7),输出维度为(2048,7,7);Conv2d4的输入维度为(1024,14,14),输出维度为(2048,7,7);
步骤3-1-1-6-2,构造Bottleneck2:Bottleneck2采用IdentityBlock残差连接方式,包括3个卷积层Conv2d1、Conv2d2、Conv2d3,3个BatchNorm层BN1、BN2、BN3,以及3个ReLU层ReLU1、ReLU2、ReLU3;这里的Conv2d1的输入维度为(2048,7 7),输出维度为(512,7,7);Conv2d2的输入维度为(512,7,7),输出维度为(512,7,7);Conv2d3的输入维度为(512,7,7),输出维度为(2048,7,7);
步骤3-1-1-6-3,构造Bottleneck3:Bottleneck3具有与步骤3-1-1-6-2中Bottleneck2相同的结构和参数;
步骤3-1-1-7包括:平均池化层AvgPooling模块输入维度为(2048,7,7),采用的平均池化操作尺度为(7,7),得到的输出数据维度为(2048,1,1),将输出数据转化为长度为2048的一维特征表示向量;
步骤3-2包括:采用先进先出的队列数据结构构建存储体,学习过程中,无标签数据以批batch的形式进行输入;一个batch中样本经过辅助编码器k得到的嵌入向量会通过入队列的操作存储在存储体M中;存储体M用于存储负样本并形成负样本对;
步骤3-3包括:无标签样本u通过数据增广得到两个增广样本v和v’,随后v通过主编码器的fθ和得到嵌入向量z;同时,v’通过辅助编码器的和得到嵌入向量z’;自监督训练时,把每个无标签的样本分别看成一个单独的类别;z和z’来源于同一无标签的样本,构成了一个正样本对;z’也被记为z+,表示z’是z的正样本;
负样本对的构造方式为:当前样本经过主编码器得到的嵌入向量z和存储体M中保存的尚在队列中的之前所有batch对应的嵌入向量构成负样本对;
其中,z+表示正样本,表示第j个负样本;m表示存储在存储体M中的负样本总个数;τ为控制数据分布一致性的温度系数;exp(·)表示以自然常数e为底数的指数函数;sim(·,·)表示相似度函数,采用余弦相似度的形式:
其中A·B表示向量A和B的点积,||·||表示向量的长度;
步骤3-5包括以下步骤:
其中,momentum表示动量系数;
步骤3-5-3,更新存储体的队列:将辅助编码器k学习得到的嵌入向量通过入队列操作存储在存储体M中;当存储体M的数据超过最大容量时,将M中最早的batch移出队列;
步骤4包括:对步骤3中主编码器的基编码器fθ进行参数迁移,在基编码器fθ后添加一个全连接层FC,全连接层FC的输入神经元数目为基编码器的特征表示向量的长度,输出神经元数目为地基云图的类别数class_num;步骤4中,输入数据为带有标签的样本数据,采用的网络为主编码器中的f后加全连接层FC;加载步骤3预训练得到的基编码器fθ,利用SGD算法以误差反向传播方式迭代对fθ和FC层的网络权值进行更新,直到训练轮数达到预设的最大轮数epoch_finetunning;
步骤5包括:读取按照步骤1-1得到的测试集中的样本,将测试集中的样本输入到步骤4得到的微调后的网络模型中,通过前向传播,在全连接层FC得到长度class_num的特征向量,找到所述特征向量中具有最大响应值的索引位置,即得到地基云图的云类类别。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210008918.5A CN114549891B (zh) | 2022-01-06 | 2022-01-06 | 一种基于对比自监督学习的地基云图云类识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210008918.5A CN114549891B (zh) | 2022-01-06 | 2022-01-06 | 一种基于对比自监督学习的地基云图云类识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114549891A true CN114549891A (zh) | 2022-05-27 |
CN114549891B CN114549891B (zh) | 2024-03-08 |
Family
ID=81670252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210008918.5A Active CN114549891B (zh) | 2022-01-06 | 2022-01-06 | 一种基于对比自监督学习的地基云图云类识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114549891B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115240036A (zh) * | 2022-09-22 | 2022-10-25 | 武汉珈鹰智能科技有限公司 | 一种裂缝图像识别网络的训练方法、应用方法及存储介质 |
CN117495723A (zh) * | 2023-12-29 | 2024-02-02 | 中国石油大学(华东) | 基于分波段处理的不成对数据遥感图像薄云去除方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112884031A (zh) * | 2021-02-04 | 2021-06-01 | 南京信息工程大学 | 一种基于卷积神经网络的地基云图云状自动识别方法 |
CN113536922A (zh) * | 2021-06-11 | 2021-10-22 | 北京理工大学 | 一种加权融合多种图像任务的视频行为识别方法 |
CN113869157A (zh) * | 2021-09-16 | 2021-12-31 | 中国科学院合肥物质科学研究院 | 一种基于可见光和红外云图的云分类方法 |
CN113837370B (zh) * | 2021-10-20 | 2023-12-05 | 贝壳找房(北京)科技有限公司 | 用于训练基于对比学习的模型的方法和装置 |
-
2022
- 2022-01-06 CN CN202210008918.5A patent/CN114549891B/zh active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115240036A (zh) * | 2022-09-22 | 2022-10-25 | 武汉珈鹰智能科技有限公司 | 一种裂缝图像识别网络的训练方法、应用方法及存储介质 |
CN115240036B (zh) * | 2022-09-22 | 2023-02-03 | 武汉珈鹰智能科技有限公司 | 一种裂缝图像识别网络的训练方法、应用方法及存储介质 |
CN117495723A (zh) * | 2023-12-29 | 2024-02-02 | 中国石油大学(华东) | 基于分波段处理的不成对数据遥感图像薄云去除方法 |
CN117495723B (zh) * | 2023-12-29 | 2024-03-19 | 中国石油大学(华东) | 基于分波段处理的不成对数据遥感图像薄云去除方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114549891B (zh) | 2024-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110443143B (zh) | 多分支卷积神经网络融合的遥感图像场景分类方法 | |
CN109934282B (zh) | 一种基于sagan样本扩充和辅助信息的sar目标分类方法 | |
CN110135267B (zh) | 一种大场景sar图像细微目标检测方法 | |
CN111583263B (zh) | 一种基于联合动态图卷积的点云分割方法 | |
CN107909082B (zh) | 基于深度学习技术的声呐图像目标识别方法 | |
CN108647655B (zh) | 基于轻型卷积神经网络的低空航拍影像电力线异物检测方法 | |
CN109308483B (zh) | 基于卷积神经网络的双源图像特征提取及融合识别方法 | |
CN103927531B (zh) | 一种基于局部二值和粒子群优化bp神经网络的人脸识别方法 | |
CN108021947B (zh) | 一种基于视觉的分层极限学习机目标识别方法 | |
CN109635744A (zh) | 一种基于深度分割网络的车道线检测方法 | |
CN114549891A (zh) | 一种基于对比自监督学习的地基云图云类识别方法 | |
CN108416270B (zh) | 一种基于多属性联合特征的交通标志识别方法 | |
CN113591617B (zh) | 基于深度学习的水面小目标检测与分类方法 | |
CN112749621A (zh) | 一种基于深度卷积神经网络的遥感图像云层检测方法 | |
CN112785636A (zh) | 一种多尺度增强式的单目深度估计方法 | |
CN113205103A (zh) | 一种轻量级的文身检测方法 | |
CN112084897A (zh) | 一种gs-ssd的交通大场景车辆目标快速检测方法 | |
CN115393690A (zh) | 一种轻量化神经网络的空对地观测多目标识别方法 | |
CN115457258A (zh) | 一种基于图像增强算法与改进YOLOv5的雾天船舶检测方法 | |
CN113627240B (zh) | 一种基于改进ssd学习模型的无人机树木种类识别方法 | |
CN109886160B (zh) | 一种非限定条件下的人脸识别方法 | |
CN113989612A (zh) | 基于注意力及生成对抗网络的遥感影像目标检测方法 | |
CN108805177A (zh) | 基于深度学习的复杂环境背景下车辆型号识别方法 | |
CN112132207A (zh) | 基于多分支特征映射目标检测神经网络构建方法 | |
CN116912595A (zh) | 一种基于对比学习的跨域多模态遥感图像分类方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |