一种基于距离度量的细胞图像小样本分类系统
技术领域
本发明属于深度学习
技术领域
,具体涉及一种基于距离度量的细胞图像小样本分类系统。背景技术
人体中血细胞有红细胞、粒细胞和血小板三种类型。与其他细胞类型相比,粒细胞的识别分类被认为是一个活跃的研究领域,因为粒细胞负责人体的免疫。粒细胞的分类为医生提供了宝贵的信息,有助于白血病和艾滋病等许多重要诊断。传统粒细胞的分类在显微镜下手工进行,这样不仅耗时,而且错误率也高。
目前,临床上对粒细胞的检验方法是人工镜检,人工镜检准确度能够达到95%以上,但是人工镜检效率低,分类速度慢,准确度受检验人员经验和状态的影响。在医学图像处理领域,随着深度学习技术的发展,用深度学习辅助医学诊断成为一大趋势,精确的计算机辅助工具有助于加快疾病的诊断,减少医生的工作量提高工作效率,带来更精确、更高效的诊断结果。
然而深度学习算法通常需要成千上万个有监督的样本来保证其学习效果,在处理标注数据很少的小样本问题时,其各项指标达不到人类的水平。在医学领域中,有关细胞分类问题没有大量的标注数据可用,并且获取标注数据的成本也非常大。
人类具有从少量样本中快速学习的能力,即可以仅通过一个或几个示例就可以轻松地建立对新事物的认知,由此诞生了基于深度学习的小样本分类方法,旨在解决具有少量标记样本数据集的分类任务。针对细胞标注样本少,如何学习出好的特征,泛化细胞中罕见的类别,对细胞在小样本的情况下进行准确的分类,是细胞分类识别领域的热点问题,具有很强的现实意义。
发明内容
为了克服上述问题,本发明提供一种基于距离度量的细胞图像小样本分类系统,通过建立分类模型,包含图像转换模块、预训练模块、小样本分类模块,对血液细胞小样本数据集学习并分类,辅助临床医生对血液细胞进行快速分类,以减少工作量,提高细胞分类能力以及模型泛化能力,对处理医学领域中的血液细胞小样本分类问题具有重要意义。
一种基于距离度量的细胞图像小样本分类系统,包含图像转换模块、预训练模块、小样本分类模块;其中图像转换模块对细胞图像数据集进行处理,并采用训练好的图像转换网络将细胞图像数据集A转换为细胞图像数据集B,然后将细胞图像数据集A和细胞图像数据集 B进行合并得到细胞小样本数据集;
预训练模块对构建的Resnet18分类模型进行预训练,当预训练分类模型的分类准确率随着训练次数递增而不在增加时,模型达到收敛状态,得到预训练好的Resnet18分类模型;
小样本分类模块将预训练好的Resnet18分类模型的最终输出通道数量替换为小样本分类模型训练过程中所需识别的细胞类别数量,从而将Resnet18分类模型构建为细胞小样本分类模型,通过训练细胞小样本分类模型实现对细胞小样本图像中的细胞进行分类;
所述对细胞小样本分类模型的训练过程如下:
步骤一,将图像转换模块得到的细胞小样本训练集按类别比6:4的比例分为训练集和测试集;其中训练集分为支持集和查询集,且训练集和测试集中细胞的类别不重复;
步骤二,所述步骤一中从训练集中随机抽取n类细胞图片,再在每类中随机抽取m张细胞图片作为支持集,再从这n类剩下的细胞图片中选取z张细胞图片作为查询集;最后将支持集、查询集送入细胞小样本分类模型中进行训练,具体过程如下:
通过细胞小样本分类模型得到细胞图片的特征向量f(Xi),计算支持集中每一个细胞图片的特征向量f(Xi)分别与支持集中其他同类细胞图片特征向量之间的欧式距离,它们的欧式距离之和记为d;再计算支持集中每一个细胞图片的特征向量f(Xi)分别与查询集中最近的异类的5个细胞图片的特征向量f(Xi)之间的欧式距离,它们的欧式距离之和记为D;所以有a=-d+D,对支持集中每个细胞的a值进行归一化处理,从而得到了支持集中每个细胞的置信度ai;
分别计算支持集中每张细胞图片属于当前训练过程中随机抽取的几类细胞类别中每一个类别的概率:同时训练过程通过随机梯度下降最小化损失函数将当前细胞图片的细胞类别定义为概率值最大的那个类别;
其中k为细胞训练样本的真实标签,每个细胞类别的原型表示ck: Sk={(X1,y1),…,(XN,yN)}代表类别为k的细胞数据集合,X是某个细胞即原始数据,y为X 细胞对应的类别;
步骤三,将测试集输入经步骤二训练后的细胞小样本分类模型,当细胞小样本分类模型对测试集中分类正确的图像数量占测试集中全部图像数量的百分比随着训练过程次数的增长不在增长时,得到训练好的细胞小样本分类模型。
所述预训练模块中构建的Resnet18分类模型结构如下:
第一层依次为:卷积层,输入为3通道,输出为64通道,卷积核大小为7*7,步长为2;扩充层数为3;BN层;ReLU激活层;最大池化层,区域大小为3*3,步长为2,填充层数为 3;
第一个残差块:
其中,第二层结构依次为:卷积层:输入为64通道,输出为64通道,卷积核大小为3*3,步长为1,填充层数为1;BN层;
第三层结构与第二层相同;并将第二层输入与第三层输出相加通过两个连续的ReLU激活层后送入第四层;
第四层结构依次为:卷积层:输入为64通道,输出为64通道,卷积核大小为3*3,步长为1,填充层数为1;BN层;
第五层结构与第四层相同;并将第四层输入与第五层输出相加通过两个连续的ReLU激活层后送入第二个残差块;
第二个残差块:
第六层结构依次为:卷积层:输入为64通道,输出为128通道,卷积核大小为3*3,步长为2,填充层数为1;BN层;
第七层结构依次为:卷积层:输入为128通道,输出为128通道,卷积核大小为3*3,步长为1,填充层数为1;BN层;
将第六层卷积层输入与第七层卷积层输出相加通过两个连续的ReLU激活层后送入第八层卷积层;
第八层结构依次为:卷积层:输入为128通道,输出为128通道,卷积核大小为3*3,步长为1,填充层数为1;BN层;
第九层卷积层:输入为128通道,输出为128通道,卷积核大小为3*3,步长为1,填充层数为1;将第八层输入与第九层输出相加通过两个连续的ReLU激活层后送入下一残差块;
第三个残差块:
第十层结构依次为:卷积层:输入为128通道,输出为256通道,卷积核大小为3*3,步长为2,填充层数为1;BN层;
第十一层结构依次为:卷积层:输入为256通道,输出为256通道,卷积核大小为3*3,步长为1,填充层数为1;BN层;
将第十层卷积层输入与第十一层卷积层输出相加通过两个连续的ReLU激活层后送入第十二层卷积层;
第十二层结构依次为:卷积层:输入为256通道,输出为256通道,卷积核大小为3*3,步长为1,填充层数为1;BN层;
第十三层卷积层:输入为256通道,输出为256通道,卷积核大小为3*3,步长为1,填充层数为1;将第十二层输入与第十三层输出相加通过两个连续的ReLU激活层后送入下一残差块;
第四个残差块:
第十四层结构依次为:卷积层:输入为256通道,输出为512通道,卷积核大小为3*3,步长为2,填充层数为1;BN层;
第十五层结构依次为:卷积层:输入为512通道,输出为512通道,卷积核大小为3*3,步长为1,填充层数为1;BN层;
将第十四层卷积层输入与第十五层卷积层输出相加通过两个连续的ReLU激活层后送入第十六层卷积层;
第十六层结构依次为:卷积层:输入为512通道,输出为512通道,卷积核大小为3*3,步长为1,填充层数为1;BN层;
第十七层卷积层:输入为512通道,输出为512通道,卷积核大小为3*3,步长为1,填充层数为1;将第十六层输入与第十七层输出相加通过两个连续的ReLU激活层后送入下一层;
最后两层依次为:平均池化层,卷积核大小为7*7,步长为7,不填充;全连接层,预训练时输出通道数为64。
所述小样本分类模块中构建的细胞小样本分类模型是将Resnet18分类模型中最后的全连接层输出通道替换为所需识别的细胞类别数量。
所述图像转换模块结构如下:
图像转换模块包括两个生成器和两个判别器;
所述生成器包括6个残差块和1个输出块,其中:
第一个卷积块,依次为:镜像扩充层,填充宽度为3;卷积层,输入为3通道,输出为64通道,卷积核大小为7*7;InstanceNorm归一化层,ReLU层;
第二个卷积块,依次为:卷积层,输入为64通道,输出为128通道,卷积核大小为3*3,步长为2,扩充层数为1;InstanceNorm归一化层,ReLU层;
第三个卷积块,依次为:卷积层,输入为128通道,输出为256通道,卷积核大小为3*3,步长为2,扩充层数为1;InstanceNorm归一化层;ReLU层;
第四个卷积块为6个残差块,其中每个残差块均为:第一层卷积层,输入为256通道,输出为64通道,卷积核大小为1*1;第二层为ReLU层;第三层卷积层,输入为64通道,输出为64通道,卷积核大小为3*3;第四层为ReLU层;第五层卷积层,输入为64通道,输出为256通道,卷积核大小为1*1;将每个残差块中第五层卷积层的输出与该残差块的输入相加再经过一个ReLU层;
第五个卷积块为反卷积块,依次为:卷积层,输入为256通道,输出为128通道,卷积核大小为3*3,步长为2,输入填充宽度为1,输出填充宽度为1;InstanceNorm归一化层;ReLU层;
第六个卷积块为反卷积块,依次为:卷积层,输入为128通道,输出为64通道,卷积核大小为3*3,步长为2,输入填充宽度为1,输出填充宽度为1;InstanceNorm归一化层 ReLU层;
第七个卷积块为输出块,依次为:镜像扩充层,填充宽度为3;卷积层,输入为64通道,输出为3通道,卷积核大小为7*7;Tanh层;
所述判别器;包括四层卷积层和全连接层,其中:
第一卷积层依次为,卷积层:输入为3通道,输出为64通道,卷积核大小为4*4,步长为2,扩充层数为1;LeakyReLU层;
第二卷积层依次为,卷积层:输入为64通道,输出为128通道,卷积核大小为4*4,步长为2,扩充层数为1;InstanceNorm归一化层;LeakyReLU层;
第三卷积层依次为,卷积层:输入为128通道,输出为256通道,卷积核大小为4*4,步长为2,扩充层数为1;InstanceNorm归一化层;LeakyReLU层;
第四卷积层依次为,卷积层:输入为256通道,输出为512通道,卷积核大小为4*4,步长为1,扩充层数为1;InstanceNorm归一化层;LeakyReLU层;
第五层为全连接层:输入为512通道,输出为1通道,卷积核大小为4*4,扩充层数为1;平均池化层。
所述图像转换网络的训练过程如下:将现有公开的图像数据集maps输入图像转换网络进行训练即得到训练好的图像转换网络。
所述图像转换模块对数据集进行预处理的具体过程为:
对获得的细胞图像数据集中的全部图片分别进行水平翻转、旋转、移位、转换为灰度图、色彩抖动、缩放和裁剪处理,将全部图片统一为224*224的固定大小。
本发明的有益效果:
本发明采用数据增强策略,结合生成对抗网络、预训练网络构建新的特征提取器并通过 RelifF算法对基于距离的小样本分类模型原型计算方法进行改进,对显微镜下细胞进行分类标记,有效的减少临床医生做标记的工作量,具有一定准确性和泛化性。
具体实施方式
下面对本发明作进一步描述。以下实例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
一种基于距离度量的细胞图像小样本分类系统,包含图像转换模块、预训练模块、小样本分类模块;其中图像转换模块对细胞图像数据集进行处理,并采用训练好的图像转换网络将细胞图像数据集A转换为细胞图像数据集B,然后将细胞图像数据集A和细胞图像数据集 B进行合并得到细胞小样本数据集;
预训练模块采用所有的细胞基类数据(训练集)对构建的Resnet18分类模型进行预训练,当预训练分类模型的分类准确率(本次约为78%)随着训练次数递增而不在增加时,模型达到收敛状态,得到经过预训练后的Resnet18分类模型;
小样本分类模块将经过预训练的Resnet18分类模型的最终输出通道数量替换为小样本分类模型训练过程中所需识别的细胞类别数量,从而将传统分类模型——Resnet18分类模型构建为细胞小样本分类模型,通过训练细胞小样本分类模型实现对细胞小样本图像中的细胞进行分类;
所述对细胞小样本分类模型的训练过程如下:
步骤一,将图像转换模块得到的细胞小样本训练集按类别比6:4的比例分为训练集和测试集;其中训练集分为支持集和查询集,且训练集和测试集中细胞的类别不重复;
步骤二,所述步骤一中从训练集中随机抽取n=5类细胞图片,再在每类中随机抽取m=5 张细胞图片作为支持集,再从这n=5类剩下的细胞图片中选取z=16张细胞图片作为查询集;将含有5*5=25张细胞图片的支持集、16*5=80张细胞图片的查询集送入细胞小样本分类模型中进行训练,具体过程如下:
通过细胞小样本分类模型得到每个细胞图片的特征向量f(Xi),其中,基于RelifF算法的置信度计算方法如下:步骤二得到的25张支持集细胞的向量表示后,计算支持集中每一个细胞图片的特征向量f(Xi)分别与支持集中其他同类细胞图片特征向量之间的欧式距离,它们的欧式距离之和记为d;再计算支持集中每一个细胞图片的特征向量f(Xi)分别与查询集中最近的异类的5个细胞图片的特征向量f(Xi)之间的欧式距离,它们的欧式距离之和记为D;d越小,D越大,即与同类越近,与异类越远,表示该细胞的置信度越高,图片质量相对而言越好,越具有参考性,所以有a=-d+D,对支持集中每个细胞的a值进行归一化处理,即计算从25个值,对同类的5个值进行softmax即归一化处理,从而得到了支持集中每个细胞的置信度ai(即权重);
细胞小样本分类模型通过ResNet18(特征提取网络)得到每个细胞图像的特征向量表示,此时在模型网络中对提取的每个细胞图像的特征图增加一个权重参数(即上述计算的置信度),置信度越高则权重越大,计算支持集样本中每一类细胞的特征向量的加权和作为该类的类原型(中心点)。每次迭代训练计算查询集与该类原型(中心点)的欧式距离,以度量距离的方式进行细胞小样本图像分类模型的训练,通过下文的损失函数不断优化网络参数,从而使得模型训练过程中,同类细胞样本尽量靠近,不同类细胞样本尽量远离。
分别计算支持集中每张细胞图片属于当前训练过程中随机抽取的几类细胞类别(随机抽取类别的数量即所需识别的细胞类别数量)中每一个类别的概率:
即使用softmax函数作用在查询集向量点到ck的距离,d()为欧几里得距离度量,同时训练过程通过随机梯度下降(即SGD)最小化损失函数;损失函数为:J=-logp(y=k|X);将当前细胞图片的细胞类别定义为概率值最大的那个类别;
其中k为细胞训练样本的真实标签,每个细胞类别的原型表示ck:其中细胞类别的原型表示是对支持集中所有特征向量取加权和得到的;在细胞小样本分类任务中,Sk={(X1,y1),…,(XN,yN)}代表类别为k的细胞数据集合,即一组N标签的细胞支持集, X是某个细胞即原始数据,y为X细胞对应的类别;
其中,训练集每次随机抽取5类后,在这5类中随机抽取100次,每次均为5个样本,16个查询图像来通过损失函数来调整网络参数,
传统的图像分类是学习如何分类,小样本学习是指模型学习如何学会分类,测试的时候,数据的类别是从来没有训练过的,且每类只含有5个样本,这在传统分类模型上根本不可能训练出来一个好的效果。
步骤三,将测试集输入经步骤二训练后的细胞小样本分类模型,当细胞小样本分类模型对测试集中分类正确的图像数量占测试集中全部图像数量的百分比随着训练过程次数的增长不在增长时,得到训练好的细胞小样本分类模型(本次分类准确率可达70%左右)。
所述预训练模块中构建的Resnet18分类模型结构如下:
第一层依次为:卷积层,输入为3通道,输出为64通道,卷积核大小为7*7,步长为2;扩充层数为3;BN层;ReLU激活层;最大池化层,区域大小为3*3,步长为2,填充层数为 3;
第一个残差块:
其中,第二层结构依次为:卷积层:输入为64通道,输出为64通道,卷积核大小为3*3,步长为1,填充层数为1;BN层;
第三层结构与第二层相同;并将第二层输入与第三层输出相加通过两个连续的ReLU激活层后送入第四层;
第四层结构依次为:卷积层:输入为64通道,输出为64通道,卷积核大小为3*3,步长为1,填充层数为1;BN层;
第五层结构与第四层相同;并将第四层输入与第五层输出相加通过两个连续的ReLU激活层后送入第二个残差块;
第二个残差块:
第六层结构依次为:卷积层:输入为第一个残差块的输出,输入为64通道,输出为128 通道,卷积核大小为3*3,步长为2,填充层数为1;BN层;
第七层结构依次为:卷积层:输入为128通道,输出为128通道,卷积核大小为3*3,步长为1,填充层数为1;BN层;
将第六层卷积层输入与第七层卷积层输出相加通过两个连续的ReLU激活层后送入第八层卷积层;
第八层结构依次为:卷积层:输入为128通道,输出为128通道,卷积核大小为3*3,步长为1,填充层数为1;BN层;
第九层卷积层:输入为128通道,输出为128通道,卷积核大小为3*3,步长为1,填充层数为1;将第八层输入与第九层输出相加通过两个连续的ReLU激活层后送入下一残差块;
第三个残差块:
第十层结构依次为:卷积层:输入为第一个残差块的输出,输入为128通道,输出为256通道,卷积核大小为3*3,步长为2,填充层数为1;BN层;
第十一层结构依次为:卷积层:输入为256通道,输出为256通道,卷积核大小为3*3,步长为1,填充层数为1;BN层;
将第十层卷积层输入与第十一层卷积层输出相加通过两个连续的ReLU激活层后送入第十二层卷积层;
第十二层结构依次为:卷积层:输入为256通道,输出为256通道,卷积核大小为3*3,步长为1,填充层数为1;BN层;
第十三层卷积层:输入为256通道,输出为256通道,卷积核大小为3*3,步长为1,填充层数为1;将第十二层输入与第十三层输出相加通过两个连续的ReLU激活层后送入下一残差块;
第四个残差块:
第十四层结构依次为:卷积层:输入为第一个残差块的输出,输入为256通道,输出为 512通道,卷积核大小为3*3,步长为2,填充层数为1;BN层;
第十五层结构依次为:卷积层:输入为512通道,输出为512通道,卷积核大小为3*3,步长为1,填充层数为1;BN层;
将第十四层卷积层输入与第十五层卷积层输出相加通过两个连续的ReLU激活层后送入第十六层卷积层;
第十六层结构依次为:卷积层:输入为512通道,输出为512通道,卷积核大小为3*3,步长为1,填充层数为1;BN层;
第十七层卷积层:输入为512通道,输出为512通道,卷积核大小为3*3,步长为1,填充层数为1;将第十六层输入与第十七层输出相加通过两个连续的ReLU激活层后送入下一层;
最后两层依次为:平均池化层,卷积核大小为7*7,步长为7,不填充;全连接层,预训练时输出通道数为64。
所述小样本分类模块中构建的细胞小样本分类模型是将Resnet18分类模型中最后的全连接层在分类任务时的输出通道替换为所需识别的细胞类别数量——本实施例中是替换为 5。
所述图像转换模块结构如下:
图像转换模块包括两个生成器(即数据A转换为数据B、数据B转换为数据A)和两个判别器(判别由数据A转换为数据B、数据B转换为数据A的结果是否为真);
所述生成器网络整体上经过一个降采样(卷积)、上采样(反卷积)的过程,包括6个残差块和1个输出块,其中:
第一个卷积块,依次为:镜像扩充层,填充宽度为3;卷积层,输入为3通道,输出为64通道,卷积核大小为7*7;InstanceNorm归一化层,对每个输出通道进行归一化;ReLU 层;
第二个卷积块,依次为:卷积层,输入为64通道,输出为128通道,卷积核大小为3*3,步长为2,扩充层数为1;InstanceNorm归一化层,对每个输出通道进行归一化;ReLU层;
第三个卷积块,依次为:卷积层,输入为128通道,输出为256通道,卷积核大小为3*3,步长为2,扩充层数为1;InstanceNorm归一化层,对每个输出通道进行归一化;ReLU层;
第四个卷积块为6个残差块,其中每个残差块均为:第一层卷积层,输入为256通道,输出为64通道,卷积核大小为1*1;第二层为ReLU层;第三层卷积层,输入为64通道,输出为64通道,卷积核大小为3*3;第四层为ReLU层;第五层卷积层,输入为64通道,输出为256通道,卷积核大小为1*1;将每个残差块中第五层卷积层的输出与该残差块的输入相加再经过一个ReLU层;
第五个卷积块为反卷积块,依次为:卷积层,输入为256通道,输出为128通道,卷积核大小为3*3,步长为2,输入填充宽度为1,输出填充宽度为1;InstanceNorm归一化层,对每个通道(128个)进行归一化;ReLU层;
第六个卷积块为反卷积块,依次为:卷积层,输入为128通道,输出为64通道,卷积核大小为3*3,步长为2,输入填充宽度为1,输出填充宽度为1;InstanceNorm归一化层,对每个通道(64个)进行归一化;ReLU层;
第七个卷积块为输出块,依次为:镜像扩充层,填充宽度为3;卷积层,输入为64通道,输出为3通道,卷积核大小为7*7;Tanh层;
所述判别器,经过5层卷积,通道数缩减为1,最后平均池化,尺寸缩减为1*1,最后reshape操作;包括四层卷积层和全连接层,其中:
第一卷积层依次为,卷积层:输入为3通道,输出为64通道,卷积核大小为4*4,步长为2,扩充层数为1;LeakyReLU层;
第二卷积层依次为,卷积层:输入为64通道,输出为128通道,卷积核大小为4*4,步长为2,扩充层数为1;InstanceNorm归一化层,对每个通道(128个)进行归一化;LeakyReLU层;
第三卷积层依次为,卷积层:输入为128通道,输出为256通道,卷积核大小为4*4,步长为2,扩充层数为1;InstanceNorm归一化层,对每个通道(256个)进行归一化;LeakyReLU 层;
第四卷积层依次为,卷积层:输入为256通道,输出为512通道,卷积核大小为4*4,步长为1,扩充层数为1;InstanceNorm归一化层,对每个通道(512个)进行归一化;LeakyReLU 层;
第五层为全连接层:输入为512通道,输出为1通道,卷积核大小为4*4,扩充层数为1;平均池化层。
所述图像转换网络的训练过程如下:将现有公开的图像数据集maps输入图像转换网络进行训练即得到训练好的图像转换网络。
将训练数据A送入图像转换网络,该网络由传统的卷积神经网络和反卷积网络构成,输出为数据B,将数据B送入图像转换网络,该网络由传统的卷积神经网络和反卷积网络构成,输出为数据A,其中采用一个卷积神经网络对数据A和数据B进行分类。
所述图像转换模块对数据集进行预处理的具体过程为:
对获得的细胞图像数据集(细胞图像数据集为多张单个细胞图片组成;)中的全部图片分别进行水平翻转、旋转、移位、转换为灰度图、色彩抖动(调整图像的亮度、饱和度、对比度)、缩放和裁剪(随机裁剪固定大小的图片)处理,将全部图片统一为224*224的固定大小;
具体地:旋转为随机向左或向右旋转90°;缩放为向外或向内缩放10%;裁剪为从原始图像随机抽样一个部分;移位为沿X或Y方向移动图像。