一种基于对比学习和深度学习的硅藻显微图像自动分类方法与流程
未命名
09-07
阅读:115
评论:0
1.本发明属于生物检测与图像识别领域,具体是一种基于对比学习和深度学习的硅藻显微图像自动分类方法。
背景技术:
2.硅藻是一种多样化的单细胞浮游植物,对于水生生态系统起着至关重要的作用。它们广泛分布于海洋和淡水环境中,同时也存在于土壤和其他潮湿环境中。硅藻数量庞大,估计有超过100,000个物种,是数量最多的浮游植物群之一。硅藻具有独特的硅质细胞壁,由于其复杂多样的图案,它们能够长时间存活,对于重建历史环境条件具有很高的价值。硅藻能够重建盐度、营养水平和ph值等环境因子,因此对了解环境变化的影响具有重要的帮助。
3.由于硅藻的高度相似性,对其进行识别可能会带来一些挑战。在过去的一个世纪中,已经开发了几种用于硅藻分类的研究方法,其中主要包括形态学分类法和分子检测。这个过程需要大量时间和使用显微镜,因此较为繁琐。同时,一些现存的硅藻难以培养和分析,无法从古代环境中提取,因此物种鉴定必须依赖形态学分类学。
4.对比学习是一种无监督学习方法,通过学习样本之间的相似性和差异性来建立特征表示。通过对比学习,可以在没有标签的情况下学习到具有良好判别性的特征表示,从而可以应用于图像分类、目标检测、人脸识别等任务中。深度学习中的特征学习往往依赖于大量的训练数据和复杂的网络结构。然而,这些学习到的特征可能对于输入数据中的变化不具备鲁棒性。对比学习可以通过学习样本之间的相似性和差异性来约束特征表示,从而提高特征学习的鲁棒性。
5.深度学习在利用相似性度量来计算图像相似性方面有着悠久的历史。使用最广泛和最早的相似性度量是欧氏距离,它计算n维空间中两点之间的距离。然而,这种方法没有考虑图像中视觉特征之间的复杂结构和关系。为了解决这一局限性,研究人员转向了更适合图像数据的高维性质的距离度量,例如余弦相似度。该指标衡量两个向量之间的角度相似性,并考虑了图像特征的复杂性。因此,它提供了比欧氏距离更准确的图像相似性度量。
技术实现要素:
6.针对现有技术的缺点,本发明提供了一种基于对比学习和深度学习的硅藻显微图像自动分类方法,将对比学习与深度学习相结合,以提高藻类识别的效率。该方法使用了对比学习方法可以通过预训练阶段学习到判别性的特征表示,有助于提取图像中的重要特征。深度学习模型的强大表达能力也可以进一步增强特征学习的能力。通过预训练的对比学习模型,可以将学习到的特征迁移到不同的任务和数据集上,而无需从头开始训练。同时,引入了余弦相似度,通过计算各硅藻物种之间的相似度来进行分类,尽可能地减少图像被错误预测的概率,从而提高硅藻识别的准确性。该方法包含以下步骤:
7.步骤1)使用高质量显微镜获取图像并挑选硅藻图像,然后进行图像清晰度的检查
和裁剪,以及去噪处理;
8.步骤2)将搜集到的图片按照7:3的比例划分训练集、测试集;
9.步骤3)对硅藻数据集的训练集中的图像进行数据增强;
10.步骤4)搭建对比学习simclrv2模型架构,包括特征提取器、投影头、归一化层和分类器;
11.步骤5)使用对比损失和图像增强生成不同的视图来进行预训练;
12.步骤6)使用pytorch进行模型搭建和微调预训练好的对比学习模型,并添加附加层进行分类;
13.步骤7)通过准确率来评估模型的性能;
14.步骤8)使用余弦相似度和阈值来调整图像的预测结果,进一步优化分类结果。
15.进一步地,步骤1)获取和处理数千种硅藻的图像方法具体为:
16.步骤101)选择北美存在的数千种硅藻,并通过高质量显微镜(使用最小1.3na油浸物镜和1.3na聚光镜)获取了它们的图像;
17.步骤102)为了确保特征提取的准确性,检查每张硅藻图像,并删除了不能清晰地代表该物种的图像,以减少模糊图像对性能的影响;
18.步骤103)当同一物种的多个硅藻出现在一张图像上时,手动选择裁剪它们,以便每张硅藻图像只描绘一个硅藻平截头体;
19.步骤104)由于采集过程中可能存在光照不均匀、颗粒污染或其他噪声源的影响,这些噪声和伪影会降低图像质量和后续处理的效果;为了消除这些噪声和伪影,对采集的硅藻显微图像进行去噪处理;去噪处理算法采用传统的滤波方法(如中值滤波、高斯滤波);这些方法可以通过平滑图像、减少噪声和伪影的影响,提高图像质量。
20.进一步地,步骤3)对训练集图像数据增强具体为:
21.使用opencv进行图像数据增强,如:使用cv2.resize()函数对图像进行缩放操作;使用cv2.flip()函数实现图像的水平翻转、垂直翻转或同时进行两者;使用cv2.convertscaleabs()函数可以对图像进行亮度和对比度的调整。
22.进一步地,步骤4模型架构的搭建具体为:
23.步骤401)选择一个卷积神经网络(cnn)作为特征提取器;选取再imagenet上预训练的卷积神经网络模型,如resnet、vgg或efficientnet;这些模型在大规模图像数据上进行了训练,具有强大的特征提取能力;
24.步骤402)在特征提取器后添加一个投影头层;该层将特征向量投影到一个低维空间,以得到更紧密的表现;通常,投影头包括一个全连接层,其输出维度要小于特征提取器输出的维数;
25.步骤403)在投影头之后添加归一化层,如批归一化(batch normalization),以提高模型的鲁棒性和训练效果;
26.步骤404)在模型的最后添加一个分类器,用于将特征表示映射到具体的类标签;分类器可以是一个全连接层,其输出维度等于种类的数量。
27.进一步地,步骤5具体为:
28.步骤501)为每个训练图像生成两个不同的增强视图;这可以通过对同一图像应用不同的随机增强(例如裁剪或颜色变换)来完成;
29.步骤502)定义对比损失(contrastive loss):对比损失度量图像之间的相似性;对于每个图像视图对,计算视图之间的相似性得分;通常使用余弦相似度、负样本对比等方法来计算相似性得分;
30.步骤503)将一对图像作为模型的输入;将图像通过主干网络和特征提取器得到特征表示;计算视图之间的相似性得分,并根据相似性得分更新模型的参数;使用对比损失最小化正样本之间的相似性,最大化负样本之间的相似性。
31.进一步地,步骤6)具体为:
32.步骤601)采用pytorch作为深度学习框架进行模型的搭建和训练;
33.步骤602)图像大小统一调整为224
×
224
×
3,以便于模型的处理和训练;
34.步骤603)使用微调的迁移学习方法,加载在对比学习过程中预训练好的simclrv2模型;在微调过程中,冻结骨干网和投影头的权重;这意味着在训练期间,这些层不会更新,它们学习到的表示将被保留;冻结这些层有助于保留以前学习的一般特征;
35.步骤604)在预训练的simclrv2模型之上,添加附加层以进行分类;这些层负责将学习到的特征从simclrv2模型映射到特定的类标签;附加层的数量及其架构取决于分类任务的复杂性;
36.步骤605)使用pytorch中的交叉熵损失函数来计算模型的损失;该损失函数是将softmax函数和负对数似然损失nllloss结合而来的结果;其公式如下所示:
[0037][0038]
其中,m表示训练样本的数量,i表示第i个训练样本;yi和pi分别表示第i个样本的真实值和预测值;
[0039]
步骤606)通过网络提供训练数据集并优化附加层的参数来训练模型;该过程涉及前向传播、计算损失和反向传播以更新模型的权重;在此步骤中,冻结层(骨干和投影头)的权重保持不变;
[0040]
步骤607)在每个epoch中,将训练好的权重文件及其对应的损失值保存下来;这是因为希望能够在训练过程中及时发现模型训练的效果,并选择损失值最低的权重文件作为最佳模型;这个步骤可以有效地提高模型的准确率和泛化能力。
[0041]
进一步地,步骤7具体为:
[0042]
步骤701)使用准确率来评估分类器的性能;准确率是指模型预测正确的样本数(真阳性和真阴性)占样本总数的比例;准确率越高,表示模型的分类性能越好;其公式如下所示:
[0043][0044]
其中,tp、tn、fp和fn分别表示真阳性、真阴性、假阳性和假阴性。
[0045]
步骤702)计算模型的top1和top5准确率;top1准确率表示模型预测中概率最高的那个是预测的答案;top5准确率表示模型的前五个最高概率答案中的每一个都与正确的标签进行比较;如果五个预测中的任何一个与正确的标签匹配,则认为分类是正确的;通过计算top1和top5准确率,可以更全面地评估模型的性能。
[0046]
进一步地,所述步骤8)具体为:
[0047]
步骤801)余弦相似度是一种计算两个向量之间内积余弦值的方法,用于衡量它们的相似度;余弦相似度的取值范围为-1到1,值越接近1表示两个硅藻图像之间的夹角越小,相似度越高;其公式如下:
[0048][0049]
步骤802)设定一个概率阈值(记作
∝
),如果预测类别的概率得分低于
∝
,则从该图像预测概率最高的前五个物种中选择一个作为预测结果;
[0050]
步骤803)在整个计算过程中,将五个物种对应的预测图像和原始训练集中的图像调整为统一的224
×
224
×
3大小;
[0051]
步骤804)由于每个物种都包含多张图像,因此需要计算预测图像与相应物种的原始训练集中保存的每个图像之间的余弦相似度;
[0052]
步骤805)依次选取五个物种中的每一个,将该物种中的每张图片和待预测图片求余弦相似度值并进行平均,然后将结果存储在名为“similaritylist”的列表中;
[0053]
步骤806)重复步骤805,直到计算出预测图像与排名前五的物种之间的相似度值,此时“similaritylist”列表中共有五个平均值,每个平均值代表一个不同的物种;
[0054]
步骤807)从“similaritylist”列表中选择最高值,并将对应于该值的硅藻物种视为与预测图像最相似的物种;该物种被指定为最终的预测结果。
[0055]
有益效果
[0056]
采用本发明提供的技术方案,相比现有技术,具有以下优点:
[0057]
1.对比学习方法通过将图像与负样本进行比较来学习特征表示,负样本是从不同类别或数据增强技术中生成的。这种对比训练可以使模型具有对抗性鲁棒性,能够区分不同类别之间的微小差异,并减少由于噪声或变化引起的错误分类。
[0058]
2.将对比学习方法与深度神经网络相结合,大大提高了硅藻识别效率。具有特征学习能力强、泛化性能好、无监督学习、可迁移性强、高性能分类和可解释性等优点。解决了传统化学检测和分子检测方法在硅藻鉴定过程中仪器精密、价格昂贵、鉴定过程繁琐等问题。
[0059]
3.将余弦相似度与深度学习卷积神经网络相结合,引入硅藻预测中,并基于预测概率设置阈值,以便技术人员根据实际识别需求进行阈值调整。通过余弦相似度调整预测结果,可以减少硅藻图像预测错误的概率,提高硅藻识别的准确性。
附图说明
[0060]
图1为本发明的处理流程示意图;
[0061]
图2为本发明对硅藻图片进行数据增强后的结果示意图;
[0062]
图3为本发明结合余弦相似度与硅藻物种预测的流程图;
[0063]
图4为本发明是否使用数据增强方法的训练结果比较;
[0064]
图5为本发明结合余弦相似度后设置不同阈值的实验结果。
具体实施方式
[0065]
本发明公开了一种基于对比学习和深度学习的硅藻显微图像自动分类方法,用于解决统化学检测和分子检测方法在硅藻鉴定过程中仪器精密、价格昂贵、鉴定过程繁琐等问题。此外,该方法还能大大缩短传统的通过硅藻质地、颜色、突触等形态学分类方法识别硅藻所需的时间。
[0066]
为了使本技术领域的人员更好地理解本发明方案,本文结合附图和具体实施方式对本发明进行了进一步详细的说明。需要指出的是,所描述的实施例仅是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域的普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
[0067]
具体而言,参照图1所示,该自动分类方法包括以下步骤:
[0068]
步骤1)使用高质量显微镜获取图像并挑选硅藻图像,然后进行图像清晰度的检查和裁剪,以及去噪处理。
[0069]
对数据集进行处理,包括以下步骤:
[0070]
101)选择北美存在的数千种硅藻,并通过高质量显微镜(使用最小1.3na油浸物镜和1.3na聚光镜)获取了它们的图像;
[0071]
102)为了确保特征提取的准确性,检查每张硅藻图像,并删除了不能清晰地代表该物种的图像,以减少模糊图像对性能的影响;
[0072]
103)当同一物种的多个硅藻出现在一张图像上时,手动选择裁剪它们,以便每张硅藻图像只描绘一个硅藻平截头体;
[0073]
104)由于采集过程中可能存在光照不均匀、颗粒污染或其他噪声源的影响,这些噪声和伪影会降低图像质量和后续处理的效果;为了消除这些噪声和伪影,对采集的硅藻显微图像进行去噪处理;去噪处理算法采用传统的滤波方法(如中值滤波、高斯滤波);这些方法可以通过平滑图像、减少噪声和伪影的影响,提高图像质量。
[0074]
步骤2)将搜集到的图片按照7:3的比例划分训练集、测试集。
[0075]
步骤3)对硅藻数据集中的图像进行数据增强,参照图2所示。
[0076]
使用opencv进行图像数据增强,如:使用cv2.resize()函数对图像进行缩放操作;使用cv2.flip()函数实现图像的水平翻转、垂直翻转或同时进行两者;使用cv2.convertscaleabs()函数可以对图像进行亮度和对比度的调整。
[0077]
步骤4)搭建对比学习simclrv2模型架构,包括特征提取器、投影头、归一化层和分类器。
[0078]
401)选择一个卷积神经网络(cnn)作为特征提取器;选取再imagenet上预训练的卷积神经网络模型,如resnet、vgg或efficientnet;这些模型在大规模图像数据上进行了训练,具有强大的特征提取能力;
[0079]
402)在特征提取器后添加一个投影头层;该层将特征向量投影到一个低维空间,以得到更紧密的表现;通常,投影头包括一个全连接层,其输出维度要小于特征提取器输出的维数;
[0080]
403)在投影头之后添加归一化层,如批归一化(batch normalization),以提高模型的鲁棒性和训练效果;
[0081]
404)在模型的最后添加一个分类器,用于将特征表示映射到具体的类标签;分类
器可以是一个全连接层,其输出维度等于种类的数量。
[0082]
步骤5)使用对比损失和图像增强生成不同的视图来进行预训练。
[0083]
501)为每个训练图像生成两个不同的增强视图;这可以通过对同一图像应用不同的随机增强(例如裁剪或颜色变换)来完成;
[0084]
502)定义对比损失(contrastive loss):对比损失度量图像之间的相似性。对于每个图像视图对,计算视图之间的相似性得分;通常使用余弦相似度、负样本对比等方法来计算相似性得分;
[0085]
503)将一对图像作为模型的输入;将图像通过主干网络和特征提取器得到特征表示;计算视图之间的相似性得分,并根据相似性得分更新模型的参数;使用对比损失最小化正样本之间的相似性,最大化负样本之间的相似性。
[0086]
步骤6)使用pytorch进行模型搭建和微调预训练好的对比学习模型,并添加附加层进行分类。
[0087]
601)采用pytorch作为深度学习框架进行模型的搭建和训练;
[0088]
602)图像大小统一调整为224
×
224
×
3,以便于模型的处理和训练;
[0089]
603)使用微调的迁移学习方法,加载在对比学习过程中预训练好的simclrv2模型;在微调过程中,冻结骨干网和投影头的权重;这意味着在训练期间,这些层不会更新,它们学习到的表示将被保留;冻结这些层有助于保留以前学习的一般特征;
[0090]
604)在预训练的simclrv2模型之上,添加附加层以进行分类;这些层负责将学习到的特征从simclrv2模型映射到特定的类标签;附加层的数量及其架构取决于分类任务的复杂性;
[0091]
605)使用pytorch中的交叉熵损失函数来计算模型的损失;该损失函数是将softmax函数和负对数似然损失nllloss结合而来的结果;其公式如下所示:
[0092][0093]
其中,m表示训练样本的数量,i表示第i个训练样本;yi和pi分别表示第i个样本的真实值和预测值;
[0094]
606)通过网络提供训练数据集并优化附加层的参数来训练模型;该过程涉及前向传播、计算损失和反向传播以更新模型的权重;在此步骤中,冻结层(骨干和投影头)的权重保持不变;
[0095]
607)在每个epoch中,将训练好的权重文件及其对应的损失值保存下来;这是因为希望能够在训练过程中及时发现模型训练的效果,并选择损失值最低的权重文件作为最佳模型;这个步骤可以有效地提高模型的准确率和泛化能力。
[0096]
步骤7)通过准确率来评估模型的性能。
[0097]
701)使用准确率来评估分类器的性能;准确率是指模型预测正确的样本数(真阳性和真阴性)占样本总数的比例;准确率越高,表示模型的分类性能越好;其公式如下所示:
[0098][0099]
其中,tp、tn、fp和fn分别表示真阳性、真阴性、假阳性和假阴性;
[0100]
702)计算模型的top1和top5准确率;top1准确率表示模型预测中概率最高的那个
是预测的答案;top5准确率表示模型的前五个最高概率答案中的每一个都与正确的标签进行比较;如果五个预测中的任何一个与正确的标签匹配,则认为分类是正确的;通过计算top1和top5准确率,可以更全面地评估模型的性能。
[0101]
步骤8)使用余弦相似度和阈值来调整图像的预测结果,进一步优化分类结果,操作流程图参照图3所示。
[0102]
801)余弦相似度是一种计算两个向量之间内积余弦值的方法,用于衡量它们的相似度;余弦相似度的取值范围为-1到1,值越接近1表示两个硅藻图像之间的夹角越小,相似度越高;其公式如下:
[0103][0104]
802)设定一个概率阈值(记作
∝
),如果预测类别的概率得分低于
∝
,则从该图像预测概率最高的前五个物种中选择一个作为预测结果;
[0105]
803)在整个计算过程中,将五个物种对应的预测图像和原始训练集中的图像调整为统一的224
×
224
×
3大小;
[0106]
804)由于每个物种都包含多张图像,因此需要计算预测图像与相应物种的原始训练集中保存的每个图像之间的余弦相似度;
[0107]
805)依次选取五个物种中的每一个,将该物种中的每张图片和待预测图片求余弦相似度值并进行平均,然后将结果存储在名为“similaritylist”的列表中;
[0108]
806)重复步骤805,直到计算出预测图像与排名前五的物种之间的相似度值,此时“similaritylist”列表中共有五个平均值,每个平均值代表一个不同的物种;
[0109]
807)从“similaritylist”列表中选择最高值,并将对应于该值的硅藻物种视为与预测图像最相似的物种,该物种被指定为最终的预测结果。
[0110]
为了验证本方法,进行如下实验。
[0111]
一、实验过程
[0112]
1、搜集海洋硅藻图片,创建硅藻数据集。搜集了1042个硅藻种,并将每个硅藻种对应的图片保存到以该硅藻种名命名的文件夹中。使用python中的os.listdir()函数读取原图片路径,使用random.sample()函数从图片序列中随机选取每个类中的70%图片作为训练样本,剩余的30%图片作为测试样本。将分别划分好的图片放到该硅藻名命名的文件夹中,并分别保存到train文件夹和test文件夹中。同时,对训练集中的每张图片进行水平翻转和垂直翻转等数据增强方式。最后,将每个硅藻名作为标签保存到cls_classes.txt文件中,生成cis_train和cls_test文件,中间用分号隔开。最终生成的txt文件中,每一行是标签(0,1,2...)+分号(;)+每张图片的绝对路径。
[0113]
2.设置训练参数,并跟踪记录训练过程每一次迭代的结果。输入图像的大小统一调整为224
×
224
×
3。对于每个模型,使用预训练好的对比学习模型作为基础,batch size设置为8。整个训练过程使用两个部分:冷冻训练和解冻训练。前50个阶段是冷冻训练,后50个阶段则是解冻训练。冻结训练可以加快训练效率,防止重量被破坏。前50个时期的学习率设置为1e-3,后50个时期学习率为1e-4。使用“.pth”跟踪记录每一次模型的迭代。当对硅藻进行预测时,选择训练时保存的最低损失值的权重文件。使用pytorch深度学习框架。
[0114]
3.设置不同的概率阈值
∝
,结合余弦相似度对硅藻识别准确率的影响,在实验中,以0.1为间隔差,取多个
∝
的值进行计算,求预测的准确率。
[0115]
二、实验结果
[0116]
1.如图4,比较了进行数据增强和不进行数据增强之后的准确率,进行数据增强时,对硅藻图像识别比不进行数据增强的top1、top5准确率高很多。验证了在训练样本相对较少的情况下,数据增强方法可以使模型学习更多样本图像特征,从而提高识别准确率。
[0117]
2.在将余弦相似度加入硅藻预测的实验中,以0.1为间隔差,在0.1至0.3之间取多个
∝
的值进行计算,实验结果如图5所示。
[0118]
三、结论
[0119]
本方法针对海洋硅藻数据集,将对比学习与深度学习相结合,以提高藻类识别的效率。该方法使用了对比学习方法可以通过预训练阶段学习到判别性的特征表示,有助于提取图像中的重要特征。深度学习模型的强大表达能力也可以进一步增强特征学习的能力。通过预训练的对比学习模型,可以将学习到的特征迁移到不同的任务和数据集上,而无需从头开始训练。同时,引入了余弦相似度,通过计算各硅藻物种之间的相似度来进行分类,尽可能地减少图像被错误预测的概率,从而提高硅藻识别的准确性。该方法具有技术先进性。
[0120]
需要注意的是,以上的实施例仅用于说明本发明的技术方案,而非对其做出限制。虽然参照了前述实施例对本发明进行了详细的说明,但本领域的普通技术人员应当理解,他们仍然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。这些修改或者替换,并不会使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
技术特征:
1.一种基于对比学习和深度学习的硅藻显微图像自动分类方法,将对比学习中的对比学习方法运用到硅藻图像识别中,其特征是包括以下步骤:步骤1)使用高质量显微镜获取图像并挑选硅藻图像,然后进行图像清晰度的检查和裁剪,以及去噪处理;步骤2)将搜集到的图片按照7∶3的比例划分训练集、测试集;步骤3)对硅藻数据集的训练集中的图像进行数据增强;步骤4)搭建对比学习simclrv2模型架构,包括特征提取器、投影头、归一化层和分类器;步骤5)使用对比损失和图像增强生成不同的视图来进行预训练;步骤6)使用pytorch进行模型搭建和微调预训练好的对比学习模型,并添加附加层进行分类;步骤7)通过准确率来评估模型的性能;步骤8)使用余弦相似度和阈值来调整图像的预测结果,进一步优化分类结果。2.根据权利要求1所述的一种基于对比学习和深度学习的硅藻显微图像自动分类方法,其特征在于,所述步骤1中硅藻数据集的处理步骤具体如下:201)选择北美存在的数千种硅藻,并通过高质量显微镜(使用最小1.3na油浸物镜和1.3na聚光镜)获取了它们的图像;202)为了确保特征提取的准确性,检查每张硅藻图像,并删除了不能清晰地代表该物种的图像,以减少模糊图像对性能的影响;203)当同一物种的多个硅藻出现在一张图像上时,手动选择裁剪它们,以便每张硅藻图像只描绘一个硅藻平截头体;204)由于采集过程中可能存在光照不均匀、颗粒污染或其他噪声源的影响,这些噪声和伪影会降低图像质量和后续处理的效果;为了消除这些噪声和伪影,对采集的硅藻显微图像进行去噪处理;去噪处理算法采用传统的滤波方法(如中值滤波、高斯滤波);这些方法可以通过平滑图像、减少噪声和伪影的影响,提高图像质量。3.根据权利要求1所述的一种基于对比学习和深度学习的硅藻显微图像自动分类方法,其特征在于,所述步骤3中硅藻图像实际增强方法具体如下:使用opencv进行图像数据增强,如:使用cv2.resize()函数对图像进行缩放操作;使用cv2.flip()函数实现图像的水平翻转、垂直翻转或同时进行两者;使用cv2.convertscaleabs()函数可以对图像进行亮度和对比度的调整。4.根据权利要求1所述的一种基于对比学习和深度学习的硅藻显微图像自动分类方法,其特征在于,所述步骤4模型架构如下:401)选择一个卷积神经网络(cnn)作为特征提取器;选取再imagenet上预训练的卷积神经网络模型,如resnet、vgg或efficientnet;这些模型在大规模图像数据上进行了训练,具有强大的特征提取能力;402)在特征提取器后添加一个投影头层;该层将特征向量投影到一个低维空间,以得到更紧密的表现;通常,投影头包括一个全连接层,其输出维度要小于特征提取器输出的维数;403)在投影头之后添加归一化层,如批归一化(batch normalization),以提高模型的
鲁棒性和训练效果;404)在模型的最后添加一个分类器,用于将特征表示映射到具体的类标签;分类器可以是一个全连接层,其输出维度等于种类的数量。5.根据权利要求1所述的一种基于对比学习和深度学习的硅藻显微图像自动分类方法,其特征在于,所述步骤5预训练具体步骤如下:501)为每个训练图像生成两个不同的增强视图;这可以通过对同一图像应用不同的随机增强(例如裁剪或颜色变换)来完成;502)定义对比损失(contrastive loss):对比损失度量图像之间的相似性;对于每个图像视图对,计算视图之间的相似性得分;通常使用余弦相似度、负样本对比等方法来计算相似性得分;503)将一对图像作为模型的输入;将图像通过主干网络和特征提取器得到特征表示;计算视图之间的相似性得分,并根据相似性得分更新模型的参数;使用对比损失最小化正样本之间的相似性,最大化负样本之间的相似性。6.根据权利要求1所述的一种基于对比学习和深度学习的硅藻显微图像自动分类方法,其特征在于,所述步骤6使用微调预训练好的对比学习模型来实现分类任务操作如下:601)采用pytorch作为深度学习框架进行模型的搭建和训练;602)图像大小统一调整为224
×
224
×
3,以便于模型的处理和训练;603)使用微调的迁移学习方法,加载在对比学习过程中预训练好的simclrv2模型;在微调过程中,冻结骨干网和投影头的权重;这意味着在训练期间,这些层不会更新,它们学习到的表示将被保留;冻结这些层有助于保留以前学习的一般特征;604)在预训练的simclrv2模型之上,添加附加层以进行分类;这些层负责将学习到的特征从simclrv2模型映射到特定的类标签;附加层的数量及其架构取决于分类任务的复杂性;605)使用pytorch中的交叉熵损失函数来计算模型的损失;该损失函数是将softmax函数和负对数似然损失nllloss结合而来的结果;其公式如下所示:其中,m表示训练样本的数量,i表示第i个训练样本;y
i
和p
i
分别表示第i个样本的真实值和预测值;606)通过网络提供训练数据集并优化附加层的参数来训练模型;该过程涉及前向传播、计算损失和反向传播以更新模型的权重;在此步骤中,冻结层(骨干和投影头)的权重保持不变;607)在每个epoch中,将训练好的权重文件及其对应的损失值保存下来;这是因为希望能够在训练过程中及时发现模型训练的效果,并选择损失值最低的权重文件作为最佳模型;这个步骤可以有效地提高模型的准确率和泛化能力。7.根据权利要求1所述的一种基于对比学习和深度学习的硅藻显微图像自动分类方法,其特征在于,所述步骤7分类性能评估指标如下:701)使用准确率来评估分类器的性能;准确率是指模型预测正确的样本数(真阳性和真阴性)占样本总数的比例;准确率越高,表示模型的分类性能越好;其公式如下所示:
其中,tp、tn、fp和fn分别表示真阳性、真阴性、假阳性和假阴性;702)计算模型的top1和top5准确率;top1准确率表示模型预测中概率最高的那个是预测的答案;top5准确率表示模型的前五个最高概率答案中的每一个都与正确的标签进行比较;如果五个预测中的任何一个与正确的标签匹配,则认为分类是正确的;通过计算top1和top5准确率,可以更全面地评估模型的性能。8.根据权利要求1所述的一种基于对比学习和深度学习的硅藻显微图像自动分类方法,其特征在于,所述步骤8如下:801)余弦相似度是一种计算两个向量之间内积余弦值的方法,用于衡量它们的相似度;余弦相似度的取值范围为-1到1,值越接近1表示两个硅藻图像之间的夹角越小,相似度越高;其公式如下:802)设定一个概率阈值(记作
∝
),如果预测类别的概率得分低于
∝
,则从该图像预测概率最高的前五个物种中选择一个作为预测结果;803)在整个计算过程中,将五个物种对应的预测图像和原始训练集中的图像调整为统一的224
×
224
×
3大小;804)由于每个物种都包含多张图像,因此需要计算预测图像与相应物种的原始训练集中保存的每个图像之间的余弦相似度;805)依次选取五个物种中的每一个,将该物种中的每张图片和待预测图片求余弦相似度值并进行平均,然后将结果存储在名为“similaritylist”的列表中;806)重复步骤805,直到计算出预测图像与排名前五的物种之间的相似度值,此时“similaritylist”列表中共有五个平均值,每个平均值代表一个不同的物种;807)从“similaritylist”列表中选择最高值,并将对应于该值的硅藻物种视为与预测图像最相似的物种;该物种被指定为最终的预测结果。
技术总结
本发明公开了一种基于对比学习和深度学习的硅藻显微图像自动分类方法。步骤包括:步骤1)获取硅藻图像,并对图像预处理;步骤2)按照7∶3的比例将图像划分为训练集和测试集;步骤3)对硅藻图像进行了数据增强操作;步骤4)搭建了对比学习模型架构;步骤5)利用对比损失和图像增强生成不同视图进行预训练;步骤6)模型搭建和微调预训练好的对比学习模型,并添加附加层进行硅藻图像的分类;步骤7)通过准确率等指标评估模型的性能;步骤8)使用余弦相似度和阈值来调整图像的预测结果,提高分类的一致性和稳定性。这种方法具有特征学习能力强、数据增强和泛化性能好、无监督学习、可迁移性强等优点,为硅藻图像分类任务提供了有潜力的解决方案。方案。方案。
技术研发人员:浦思悦 张帆
受保护的技术使用者:绍兴兰红智能科技有限公司
技术研发日:2023.06.06
技术公布日:2023/9/6
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
