CN115222754A - 一种基于知识蒸馏和对抗学习的镜面图像分割方法 - Google Patents

一种基于知识蒸馏和对抗学习的镜面图像分割方法 Download PDF

Info

Publication number
CN115222754A
CN115222754A CN202210911670.3A CN202210911670A CN115222754A CN 115222754 A CN115222754 A CN 115222754A CN 202210911670 A CN202210911670 A CN 202210911670A CN 115222754 A CN115222754 A CN 115222754A
Authority
CN
China
Prior art keywords
mirror image
loss
network
mirror
student
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.)
Pending
Application number
CN202210911670.3A
Other languages
English (en)
Inventor
陈芙
匡振中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Dianzi University
Original Assignee
Hangzhou Dianzi University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Dianzi University filed Critical Hangzhou Dianzi University
Priority to CN202210911670.3A priority Critical patent/CN115222754A/zh
Publication of CN115222754A publication Critical patent/CN115222754A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/12Edge-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)

Abstract

本发明是关于镜面图像分割网络轻量化的领域,针对现有解决镜面图像分割方法,存在参数量过大,难以训练和在有限资源的边缘设备移植成本高的问题,提出了基于知识蒸馏和对抗学习的镜面图像分割方法,包括以下步骤:对镜面图像进行预处理;使用多损失训练学生网络,得到反映镜面图像特征的镜面特征图;计算蒸馏损失;将学生网络和教师网络输出的镜面特征图作为输入计算对抗损失;采用公开数据集进行训练及测试,输出镜面图像分割结果。本发明引入知识蒸馏理论和对抗学习策略对模型进行迁移学习,从而能够训练出达到优化模型参数和效率,减少系统资源占用,保留一定准确性。

Description

一种基于知识蒸馏和对抗学习的镜面图像分割方法
技术领域
本发明涉及镜面图像分割网络轻量化的领域,尤其涉及一种基于知识蒸馏和对抗学习的镜面图像分割方法。
背景技术
本发明是关于镜面图像分割网络轻量化的领域,现有的计算机视觉系统并没有考虑到镜面的存在,对于这些系统来说,检测出这些镜像的存在是至关重要的。然而近年来为解决镜面图像分割问题而提出的模型,有参数量过大,难以训练和在有限资源的边缘设备移植成本高的问题。
镜子在生活中随处可见,无处不在,但是现有的计算机视觉系统并没有考虑到镜面的存在,因此会导致系统将镜中的物体与外界的物体产生混淆,进而识别性能会严重下降。镜子通常会反映周围相似的内容,这使得系统无法正确区分两者,从而会发生无法预料的错误,所以检测出这些镜像的存在是至关重要的。
然而现有的针对镜面图像分割任务设计出的模型算法更加注重提高精度而忽视了运行效率的问题,性能越好的神经网络意味着网络的层数更深,网络的结构更宽,网络的参数更多,这将会导致更加庞大的存储需求和计算开销,这些网络往往是无法顺利移植到移动端和嵌入式设备中。因此,设计一个轻量的、效率高的模型用于镜面分割任务是至关重要的。
本发明将镜面图像分割任务作为研究对象,通过研究主流轻量化神经网络模型,引入知识蒸馏理论和对抗学习策略对模型进行迁移学习,从而能够训练出达到优化模型参数和效率,减少系统资源占用,保留一定准确性的模型算法。
发明内容
本发明的目的在于针对现有技术的不足,提供了一种基于知识蒸馏和对抗学习的镜面图像分割方法。
本发明解决其技术问题所采用的技术方案包括以下步骤:
步骤1:对镜面图像进行预处理;
步骤2:使用多损失训练学生网络,让学生网络在经过步骤1处理得到的镜面图像上学习,得到反映镜面图像特征的镜面特征图;
步骤3:使用教师网络输出镜面特征图,并与步骤2中得到的镜面特征图进行对比,计算蒸馏损失;
步骤4:构建镜面分割对抗学习框架,将学生网络和教师网络输出的特征图作为输入计算对抗损失;
步骤5:采用公开数据集进行训练及测试,输出镜面图像分割结果。
进一步地,所述步骤1镜面图像预处理,具体步骤如下:
1-1.数据准备和预处理,即使用canny算法检测每张图像中镜面的边缘,所述Canny算法是使用openCV库中的findContours函数实现的,读取标签图像后传入findContours,得到镜面边缘像素点位置信息的列表contour_list;
1-2.制作镜面边缘掩码图像,具体操作是:将上一步的contour_list作为参数传入openCV库中的drawContours方法,drawContours方法根据边缘像素点的位置信息描绘标签图像的边缘。
进一步地,所述步骤2使用多损失训练学生网络,具体步骤如下:
2-1.构建多损失训练学生网络。学生网络是一个MobileNetV3-small网络,它继承了V1的深度可分离卷积模块和V2的线性瓶颈残差模块,引入了SE通道注意力结构。
保留原MobileNetV3-small模型的前14个特征层,删除原MobileNetV3-small模型的最后两层个特征层,并且在第一层、第四层、第九层和第十二层添加适合图像分割的模块;引入MirrorNet提出的CCFE模块,接着使用逆卷积ConvTranspose,BatchNorm层和Relu激活函数,最后连接一个输出通道数为1的Conv,并使用Sigmoid激活函数输出分割结果;
所述学生网络包括14个特征层,从第一到第14层,每个特征层的输入的特征图形状用height×width×channel表示依次为:224×224×3、112×112×16、56×56×16、28×28×24、28×28×24、14×14×40、14×14×40、14×14×40、14×14×48、14×14×48、7×7×96、7×7×96、7×7×96、7×7×576;
每层的block结构以及内部Conv的卷积核大小,从第一到第14层分别为(conv2d,3×3)、(bneck,3×3)、(bneck,3×3)、(bneck,3×3)、(bneck,5×5)、(bneck,5×5)、(bneck,5×5)、(bneck,5×5)、(bneck,5×5)、(bneck,5×5)、(bneck,5×5)、(bneck,5×5)、(conv2d,1×1)、(pool,7×7);
从第2层到第12层的膨胀参数依次为:16、72、88、96、240、240、120、144、288、576、576
从第1层到第13层的block结构输出的通道数依次为:16、16、24、24、40、40、40、48、48、96、96、96、576
除第1、3、4、14层外,其它层均引入注意力机制;
每一层block结构第二个Conv所用的步长,从第一到第14层,分别为2、2、2、1、2、1、1、1、1、2、1、1、1、1
第2、3、4层的激活函数为RELU,第14层无激活函数,其它层的激活函数为h-swish
出于对参数和效率的考虑,将原作者的模型的最后两层删除,并仿照教师模型添加相应的分割模块以对齐两者的输出大小方便步骤3进行知识蒸馏。学生网络是由多个损失联合优化的,从数学形式上可以表示为:
Figure BDA0003774235910000041
其中S(x)表示学生网络输出的特征图,y表示镜面图像的掩码。α是自定义权重,作为优选,α的值为0.3。
2-2.计算边缘损失函数。利用镜面图像的显著特点,即镜子内部的景物范围由镜子的大小决定,镜子内外是不连续的,因此解决问题的关键在于检测镜子边缘。由于二阶导数可用于检测边缘,因此我们使用Laplace运算符来获取显着的对象边界,然后使用交叉熵损失来监督镜像边界的生成。从数学形式上可以表示为:
Figure BDA0003774235910000051
其中,yi是二元标签0或者1,pi是输出y标签的概率,是由二阶微分算子计算的,其具体计算过程如下所示:
pi=abs(tanh(conv(f,Klaplace)))
其中,f是学生模型输出的特征图,调用了卷积核为Laplace算子计算显著的对象边界,接着使用反正切函数并取绝对值,将最后的输出值映射到[0,1]区间上,方便二元交叉熵的计算。
2-3.计算融合损失函数。所述融合损失函数是原本学生模型的分割任务损失,将待分割的镜面图像,输入到学生网络S,得到分割结果后,计算与标签值的损失。对于学生模型的镜面分割任务,采用了一定的训练策略,即在前84个epoch内,使用二元交叉熵损失进行训练,84个epoch之后更改为Lovász-hinge损失。铰链损失是一种基于IoU的损失,利用其能够在分割任务中提升结果整体质量的特性,微调学生网络的参数。其训练方式可以表达为下列式子:
Figure BDA0003774235910000052
进一步地,所述步骤3构建知识蒸馏框架,计算蒸馏损失,具体如下:
3-1.选用MirrorNet网络作为教师网络,将一份待分割的镜面图像I输入学生神经网络S,同时输入训练好的教师神经网络T。教师网络T的分割效果是优于学生网络S的,取得两者的分割结果,特征图SF和特征图TF。
3-2.计算蒸馏损失。将3-1中得到的学生网络的特征图SF和教师网络的特征图TF进行二元相对熵的计算,蒸馏损失由KL散度衍生,是用来衡量两个分布之间的距离。
使用相对熵可以让SF的生成逐步毕竟TF的分布,从而达到从教师网络进行知识迁移的目标。
二元相对熵损失从数学形式上可表示为:
Figure BDA0003774235910000061
其中,ti表示教师网络的预测值,si表示学生网络的预测值,N表示预测值的个数。
进一步地,所述步骤4构建镜面分割对抗学习框架,计算对抗损失,具体步骤如下:
4-1.构建镜面分割对抗学习框架。利用对抗学习的原理,生成对抗模型模块的优化过程是一个相互竞争相互对抗的过程,生成器和判别器的性能在迭代过程中不断提高,直到最终模型生成的数据与真实数据的表现一致,此时生成器和判别器都不能再进一步优化。将此思想转化并应用在镜面图像分割领域中,学生模型充当生成器G的角色,教师模型输出的特征图f可看作真实数据,构建一个判别器限制学生模型的注意力区域信息。判别器是一个由三个卷积层和两个自注意力机制模块组成。其中,每层卷积层由一个Conv和一个LeakyRelu激活函数组成,并直接相连。每个自注意力机制模块由三个独立的Conv和一个Softmax激活函数组成,使用键值对注意力机制,特征图结果分别经过不同的Conv来计算注意力分布,并通过Softmax激活后对输入的特征图f进行加权平均。键值对注意力模块将输入信息x表示成一组键值对,即x={(k1,v1),(k2,v2),...,(kN,vN)}。其中k表示键,用来计算注意力分布,v表示值,用来计算注意力分布加权信息。具体的计算过程可以分为三个步骤:
第一步,使用两个相同的1×1Conv,其输出通道是输入通道的八分之一,分别计算输入信息x的query和key,将两者进行矩阵乘法运算求得key的能量矩阵E;
第二步,用Softmax激活函数对能量矩阵E进行归一化;
第三步,使用一个1×1Conv计算输入信息x的值v,并将第二步得到的能量矩阵E与v进行矩阵乘法操作;
4-2.计算对抗损失。将教师模型和学生模型的分割结果分别送入4-1构造的判别器,得到两者的注意力分布聚合信息后,使用对抗损失函数进行计算,使学生模型可以像教师模型一样加强对镜面的注意力。其数学表达式为:
Figure BDA0003774235910000071
其中,N表示判别器输出的Tensor大小,
Figure BDA0003774235910000072
表示学生模型的注意力值,
Figure BDA0003774235910000073
表示教师模型的注意力值。
进一步地,所述步骤5训练模型并测试数据,具体如下:
5-1.准备数据集(比如公共数据集MSD)并按照步骤1所述进行预处理。
5-2.将5-1中预处理后的数据,随机划分训练集和测试集,得到3063张图像用于训练,955张图像用于测试,将训练数据输入到学生网络进行训练并且使用测试数据进行模型测试;
5-3.使用经步骤5-2训练及测试的模型,向模型中输入图片数据,输出镜面图像分割结果;。
进一步地,在所述步骤5-3之后,还有以下步骤:
将步骤5-3输出的镜面图像分割结果,分别与以下现有镜面图像分割方法:MaskRCNN、PFA进行比较,分别计算步骤5-3输出的镜面图像分割结果与现有镜面图像分割方法的以下指标中的一项或多项:分割精确度、模型的时间效率、分析结果的可靠性和实用性。
本发明具有的有益的效果是:
本文提出基于知识蒸馏和对抗学习的镜面图像分割算法,运用知识蒸馏理论,构建了教师-学生网络模型,同时利用对抗学习的特性,在能够保证不增加网络参数和复杂度的基础上,提升紧凑网络的分割准确度。通过实验结果显然证实了所提出方法的高效性与实用性。总之,所提出的方法既能降低工业使用人工智能的门槛,同时也能提高智能设备对环境变化的视觉感知。
附图说明
图1是本发明步骤流程图;
图2是本发明整体架构流程图;
图3是MobileNetV3-small网络网络结构图
具体实施方式
下面结合附图对本发明作进一步说明。
基于知识蒸馏和对抗学习的镜面图像分割算法,具体步骤参看图1所示,整体架构流程图看图2所示:
步骤1:镜面图像预处理;
步骤2:多损失训练学生网络;
步骤3:建立知识蒸馏框架,计算蒸馏损失;
步骤4:建立对抗学习框架,计算对抗损失;
步骤5:采用公开数据集进行训练及测试,输出最终结果。
步骤1镜面图像预处理,具体步骤如下:
1-1.数据准备和预处理,即使用canny算法检测每张图像中镜面的边缘,Canny算法是使用openCV库中的findContours函数实现,读取标签图像后传入findContours,得到镜面边缘像素点位置信息的列表contour_list。
1-2.将得到的边缘像素点的位置进行填充并加粗,以此制作镜面边缘的掩码图像,具体操作是:将上一步的contour_list作为参数传入openCV库中的drawContours方法,drawContours方法根据边缘像素点的位置信息描绘标签图像的边缘。
步骤2使用多损失训练学生网络,具体步骤如下:
2-1.构建学生网络。学生网络是一个MobileNetV3-small网络,直接进行分割任务,在训练过程中它由两个联合损失优化的,从数学形式上可以表示为:
Figure BDA0003774235910000101
其中S(x)表示学生网络输出的特征图,y表示镜面图像的掩码。α是自定义权重,设置α的值为0.3。
Figure BDA0003774235910000102
是边缘损失函数,
Figure BDA0003774235910000103
是融合损失函数。训练时,采用了一定的训练策略,即在前84个epoch内,
Figure BDA0003774235910000104
表示为二元交叉熵损失,之后更改为Lovász-hinge损失。
2-2.边缘损失函数。
使用Laplace运算符,基于二阶导数来获取显着的对象边界,然后使用交叉熵损失来监督镜像边界的生成。从数学形式上可以表示为:
Figure BDA0003774235910000105
其中,yi是二元标签0或者1,pi是输出y标签的概率,是由二阶微分算子计算的,其具体计算过程如下所示:
pi=abs(tanh(conv(f,Klaplace)))
其中,f是学生模型输出的特征图,调用了卷积核为Laplace算子计算显著的对象边界,接着使用反正切函数并取绝对值,将最后的输出值映射到[0,1]区间上,方便二元交叉熵的计算。
2-3.融合损失函数。此损失函数是原本学生网络的分割任务损失,将待分割的镜面图像,输入到学生模型S,得到分割结果后,计算与标签值的损失。对于学生模型的镜面分割任务,采用了一定的训练策略,即在前84个epoch内,使用二元交叉熵损失进行训练,84个epoch之后使用Lovász-hinge损失进行训练。通过Lovász-hinge损失微调学生网络的参数。其训练方式可以表达为下列式子:
Figure BDA0003774235910000111
步骤3构建知识蒸馏框架,计算蒸馏损失,具体如下:
3-1.选用预训练的MirrorNet网络作为教师网络,教师网络的输入数据与学生网络一致,获得教师网络和学生网络的分割结果并计算蒸馏误差损失。蒸馏误差损失为二元相对熵,教师网络不参与训练,参数固定。
构建多损失训练学生网络:所述学生网络是一个改进后的MobileNetV3-small网络,具体的网络结构如图3所示:
第一列Input代表mobilenetV3每个特征层的输入的特征图形状,用height×width×channel表示。
第二列Operator代表每次特征层即将经历的block结构以及内部Conv的卷积核大小k,我们可以看到在MobileNetV3中,特征提取经过了许多的bneck结构,bneck是一个由多个卷积层和两个可选的SE结构和残差结构组成。具体结构为,首先使用卷积核为1×1的Conv,将输入通道转换为膨胀通道exp_size,接着连接BatchNorm层进行归一化操作,然后使用h-swish激活函数,接着是使用卷积核的大小为k,步长为s的Conv,其输入与输出通道都为膨胀通道exp_size,接着是BatchNorm层、SE模块和h-swish激活函数。最后连接一个卷积核为1×1的Conv,将膨胀通道exp_size转换为所需的输出通道out,并连接BatchNorm层归一化。
SE结构基于注意力机制,旨在学习每个通道的特征权值,首先通过一个全局平均池化层GAP将特征压缩,得到一个比较粗糙的全局特征值,接着使用全连接层Linear计算每个通道的特征权值,最后将输入与权值进行矩阵点乘操作。
残差结构将第一列的Input和bneck模块的输出进行矩阵相加操作。
第三列代表了expansion factor,即膨胀参数,膨胀参数乘以输入通道即bneck内部结构上升后的通道数。
第四列分别代表了block结构输出的通道数。
第五列SE代表了是否在这一层引入注意力机制。
第六列NL代表了激活函数的种类,HS代表h-swish,RE代表RELU。
第七列代表了每一层block结构第二个Conv所用的步长。
将原作者的模型的最后两层删除,即图3中的最后两层删除,并且在第一层、第四层、第九层和第十二层添加适合图像分割的模块。引入MirrorNet提出的CCFE模块,接着使用逆卷积ConvTranspose,BatchNorm层和Relu激活函数,最后连接一个输出通道数为1的Conv,并使用Sigmoid激活函数输出分割结果。
步骤4构建镜面分割对抗学习框架,计算对抗损失,具体步骤如下:
4-1.构建镜面分割对抗学习框架:学生模型为生成器G,教师模型输出的特征图f视为真实数据,构建一个判别器限制学生模型的注意力区域信息;
所述判别器由三个卷积层和两个自注意力机制模块组成;其中,每层卷积层由一个Conv和一个LeakyRelu激活函数组成,并直接相连;每个自注意力机制模块由三个独立的Conv和一个Softmax激活函数组成,使用键值对注意力机制,分别经过不同的Conv计算输入信息的注意力分布,并通过Softmax激活后对输入的特征图f进行加权平均;
所述键值对注意力机制,是将输入信息x表示成一组键值对,即x={(k1,v1),(k1,v2),...,(kN,vN)};
其中k表示键,用来计算注意力分布,v表示值,用来计算注意力分布加权信息;所述判别器的计算过程可以分为三个步骤:
第一步,使用两个相同的1×1Conv,其输出通道是输入通道的八分之一,分别计算输入信息x的query和key,将两者进行矩阵乘法运算求得key的能量矩阵E。
第二步,用Softmax激活函数对能量矩阵E进行归一化。
第三步,使用一个1×1Conv计算输入信息x的值v,并将第二步得到的能量矩阵E与v进行矩阵乘法操作。
4-2.计算对抗损失:将教师模型和学生模型的分割结果分别送入4-1构造的判别器,得到两者的注意力分布聚合信息后,使用对抗损失函数进行计算,使学生模型可以像教师模型一样加强对镜面的注意力;所述对抗损失函数的数学表达式为:
Figure BDA0003774235910000131
其中,N表示判别器输出的Tensor大小,
Figure BDA0003774235910000141
表示学生模型的注意力值,
Figure BDA0003774235910000142
表示教师模型的注意力值。
步骤5训练模型并测试数据,具体如下:
5-1.准备数据集并按照步骤1所述进行预处理。
5-2.将5-1中预处理后的数据,随机划分训练集和测试集,得到3063张图像用于训练,955张图像用于测试,将训练数据输入到学生网络进行训练并且使用测试数据进行测试模型测试。
5-3.使用经步骤5-2训练及测试的模型,向模型中输入图片数据,输出镜面图像分割结果。为了验证所提出方法的高效性,将其与当前优秀的方法(比如Mask RCNN、PFA等方法)进行比较,计算分割精确度以及模型效率,以及分析结果的可靠性和实用性。分割结果精确度采用了五种相关领域里常用的指标作为参考,分别是交并比(IoU)、像素精度(PA)、maximum F-measure(Fβ)、平均绝对误差(MAE)和平衡错误(BER)。取前两个指标作为重点,后三个指标作为辅助参考。箭头的指向代表了指标的好坏的导向。模型运行的效率采用浮点运算数(FLOPs)和模型参数的个数(Parameters)来衡量。
实验结果如下:
1.分别检测了本方法与FCN-8s、Mask RCNN、PFA、GDDNet、MirrorNet方法的精确度,并且从不同的参考标准做了对比。具体数据结果详情见表1。
表1本方法与其他方法的分割精确度对比实验结果
PA↑ IoU↑ MAE↓ BER↓ Fβ↑
FCN-8s 0.850 44.94 0.150 25.09 0.603
Mask RCNN 0.820 63.10 0.095 14.38 0.756
PFA 0.869 58.14 0.133 17.04 0.670
GDDNet 0.928 75.39 0.072 8.373 0.825
Teacher 0.933 75.05 0.067 9.807 0.849
本方法 0.902 68.53 0.098 10.01 0.752
2.分别测试了本方法与resnext_101_32x4d、MirrorNet和MobileNetV3-small的性能。具体数据结果详情见表2。
表2本方法与其他方法的效率对比实验结果
Parameters(M)↓ FLOPs(G)↓
resnext_101_32x4d 51.57 24.90
MirrorNet 121.77 77.66
mobilenetv3_small 1.67 2.99
本方法 1.12 1.98

Claims (7)

1.一种基于知识蒸馏和对抗学习的镜面图像分割方法,其特征在于,包括以下步骤:
步骤1:对镜面图像进行预处理;
步骤2:使用多损失训练学生网络,让学生网络在经过步骤1预处理得到的镜面图像上学习,得到反映镜面图像特征的镜面特征图;
步骤3:使用教师网络输出镜面特征图,并与步骤2中得到的镜面特征图进行对比,计算蒸馏损失;
步骤4:构建镜面分割对抗学习框架,将学生网络和教师网络输出的镜面特征图作为输入计算对抗损失;
步骤5:采用公开数据集进行训练及测试,输出镜面图像分割结果。
2.如权利要求1所述的一种基于知识蒸馏和对抗学习的镜面图像分割方法,其特征在于,所述步骤1镜面图像预处理的具体步骤如下:
1-1.使用canny算法检测每张图像中镜面的边缘:所述Canny算法是使用openCV库中的findContours函数实现的,使用Canny算法读取标签图像后传入findContours,得到镜面边缘像素点位置信息的列表contour_list;
1-2.将上一步的contour_list作为参数传入openCV库中的drawContours方法,drawContours方法根据边缘像素点的位置信息描绘标签图像的边缘。
3.如权利要求2所述的一种基于知识蒸馏和对抗学习的镜面图像分割方法,其特征在于,所述步骤2的具体步骤如下:
2-1.构建多损失训练学生网络:
所述学生网络的结构为:
保留原MobileNetV3-small模型的前14个特征层,删除原MobileNetV3-small模型的最后两层个特征层,并且在第一层、第四层、第九层和第十二层添加适合图像分割的模块;引入MirrorNet提出的CCFE模块,接着使用逆卷积ConvTranspose,BatchNorm层和Relu激活函数,最后连接一个输出通道数为1的Conv,并使用Sigmoid激活函数输出分割结果;
所述学生网络包括14个特征层,从第一到第14层,每个特征层的输入的特征图形状用height×width×channel表示依次为:224×224×3、112×112×16、56×56×16、28×28×24、28×28×24、14×14×40、14×14×40、14×14×40、14×14×48、14×14×48、7×7×96、7×7×96、7×7×96、7×7×576;
每层的block结构以及内部Conv的卷积核大小,从第一到第14层分别为(conv2d,3×3)、(bneck,3×3)、(bneck,3×3)、(bneck,3×3)、(bneck,5×5)、(bneck,5×5)、(bneck,5×5)、(bneck,5×5)、(bneck,5×5)、(bneck,5×5)、(bneck,5×5)、(bneck,5×5)、(conv2d,1×1)、(pool,7×7);
从第2层到第12层的膨胀参数依次为:16、72、88、96、240、240、120、144、288、576、576
从第1层到第13层的block结构输出的通道数依次为:16、16、24、24、40、40、40、48、48、96、96、96、576
除第1、3、4、14层外,其它层均引入注意力机制;
每一层block结构第二个Conv所用的步长,从第一到第14层,分别为2、2、2、1、2、1、1、1、1、2、1、1、1、1
第2、3、4层的激活函数为RELU,第14层无激活函数,其它层的激活函数为h-swish
将学生网络和教师网络两者的输出特征图用步骤3的方式进行知识蒸馏;学生网络是由多个损失联合优化的,从数学形式上可以表示为:
Figure FDA0003774235900000031
其中S(x)表示学生网络输出的特征图,y表示镜面图像的掩码;α是自定义权重;
2-2.计算边缘损失函数:
使用Laplace运算符,基于二阶导数来获取显着的对象边界,
然后使用交叉熵损失来监督镜像边界的生成;从数学形式上可以表示为:
Figure FDA0003774235900000032
其中,yi是二元标签0或者1,pi是输出y标签的概率,是由二阶微分算子计算的,其具体计算过程如下所示:
pi=abs(tanh(conv(f,Klaplace)))
其中,f是学生模型输出的特征图,调用了卷积核为Laplace算子计算显著的对象边界,接着使用反正切函数并取绝对值,将最后的输出值映射到[0,1]区间上,方便二元交叉熵的计算;
2-3.计算融合损失函数;所述融合损失函数是原本学生网络的分割任务损失,将待分割的镜面图像,输入到学生网络S,得到分割结果后,计算与标签值的损失;对于学生网络的镜面分割任务,采用一定的训练策略,即在前84个epoch内,使用二元交叉熵损失进行训练,84个epoch之后使用Lovász-hinge损失进行训练;
通过Lovász-hinge损失微调学生网络的参数;其训练方式可以表达为下列式子:
Figure FDA0003774235900000041
4.如权利要求3所述的一种基于知识蒸馏和对抗学习的镜面图像分割方法,其特征在于,所述步骤3计算蒸馏损失的具体步骤如下:
3-1.选用MirrorNet网络作为教师网络,将一份待分割的镜面图像I分别输入学生神经网络S,和训练好的教师神经网络T,分别得到分割结果,特征图SF和特征图TF
3-2.计算蒸馏损失:将3-1中得到的学生网络的特征图SF和教师网络的特征图TF进行二元相对熵的计算,蒸馏损失由KL散度衍生,是用来衡量两个分布之间的距离;二元相对熵损失从数学形式上可表示为:
Figure FDA0003774235900000051
其中,ti表示教师网络的预测值,si表示学生网络的预测值,N表示预测值的个数。
5.如权利要求4所述的一种基于知识蒸馏和对抗学习的镜面图像分割方法,其特征在于,所述步骤4计算对抗损失的具体步骤如下:
4-1.构建镜面分割对抗学习框架:学生模型为生成器G,教师模型输出的特征图f视为真实数据,构建一个判别器限制学生模型的注意力区域信息;
所述判别器由三个卷积层和两个自注意力机制模块组成;其中,每层卷积层由一个Conv和一个LeakyRelu激活函数组成,并直接相连;每个自注意力机制模块由三个独立的Conv和一个Softmax激活函数组成,使用键值对注意力机制,分别经过不同的Conv计算输入信息的注意力分布,并通过Softmax激活后对输入的特征图f进行加权平均;
所述键值对注意力机制,是将输入信息x表示成一组键值对,即x={(k1,v1),(k2,v2),...,(kN,vN)};
其中k表示键,用来计算注意力分布,v表示值,用来计算注意力分布加权信息;所述判别器的计算过程可以分为三个步骤:
第一步,使用两个相同的1×1Conv,其输出通道是输入通道的八分之一,分别计算输入信息x的query和key,将两者进行矩阵乘法运算求得key的能量矩阵E;
第二步,用Softmax激活函数对能量矩阵E进行归一化;
第三步,使用一个1×1Conv计算输入信息x的值v,并将第二步得到的能量矩阵E与v进行矩阵乘法操作;
4-2.计算对抗损失:将教师模型和学生模型的分割结果分别送入4-1构造的判别器,得到两者的注意力分布聚合信息后,使用对抗损失函数进行计算,使学生模型可以像教师模型一样加强对镜面的注意力;所述对抗损失函数的数学表达式为:
Figure FDA0003774235900000061
其中,N表示判别器输出的Tensor大小,
Figure FDA0003774235900000062
表示学生模型的注意力值,
Figure FDA0003774235900000063
表示教师模型的注意力值。
6.如权利要求5所述的一种基于知识蒸馏和对抗学习的镜面图像分割方法,其特征在于,所述步骤5的具体步骤如下:
5-1.准备数据集并按照步骤1所述进行预处理;
5-2.将5-1中预处理后的数据,随机划分训练集和测试集,得到3063张图像用于训练,955张图像用于测试,将训练数据输入到学生网络进行训练并且使用测试数据进行模型测试;
5-3.使用经步骤5-2训练及测试的模型,向模型中输入图片数据,输出镜面图像分割结果。
7.如权利要求6所述的一种基于知识蒸馏和对抗学习的镜面图像分割方法,其特征在于,在所述步骤5-3之后,还有以下步骤:
将步骤5-3输出的镜面图像分割结果,分别与以下现有镜面图像分割方法:Mask RCNN、PFA进行比较,分别计算步骤5-3输出的镜面图像分割结果与现有镜面图像分割方法的以下指标中的一项或多项:分割精确度、模型的时间效率、分析结果的可靠性和实用性。
CN202210911670.3A 2022-07-30 2022-07-30 一种基于知识蒸馏和对抗学习的镜面图像分割方法 Pending CN115222754A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210911670.3A CN115222754A (zh) 2022-07-30 2022-07-30 一种基于知识蒸馏和对抗学习的镜面图像分割方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210911670.3A CN115222754A (zh) 2022-07-30 2022-07-30 一种基于知识蒸馏和对抗学习的镜面图像分割方法

Publications (1)

Publication Number Publication Date
CN115222754A true CN115222754A (zh) 2022-10-21

Family

ID=83616064

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210911670.3A Pending CN115222754A (zh) 2022-07-30 2022-07-30 一种基于知识蒸馏和对抗学习的镜面图像分割方法

Country Status (1)

Country Link
CN (1) CN115222754A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116310667A (zh) * 2023-05-15 2023-06-23 鹏城实验室 联合对比损失和重建损失的自监督视觉表征学习方法
CN117237343A (zh) * 2023-11-13 2023-12-15 安徽大学 半监督rgb-d图像镜面检测方法、存储介质及计算机设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116310667A (zh) * 2023-05-15 2023-06-23 鹏城实验室 联合对比损失和重建损失的自监督视觉表征学习方法
CN116310667B (zh) * 2023-05-15 2023-08-22 鹏城实验室 联合对比损失和重建损失的自监督视觉表征学习方法
CN117237343A (zh) * 2023-11-13 2023-12-15 安徽大学 半监督rgb-d图像镜面检测方法、存储介质及计算机设备
CN117237343B (zh) * 2023-11-13 2024-01-30 安徽大学 半监督rgb-d图像镜面检测方法、存储介质及计算机设备

Similar Documents

Publication Publication Date Title
CN110210551B (zh) 一种基于自适应主体敏感的视觉目标跟踪方法
CN107945204B (zh) 一种基于生成对抗网络的像素级人像抠图方法
CN109493346B (zh) 一种基于多损失的胃癌病理切片图像分割方法和装置
CN111340814B (zh) 一种基于多模态自适应卷积的rgb-d图像语义分割方法
CN110009674B (zh) 基于无监督深度学习的单目图像景深实时计算方法
CN115222754A (zh) 一种基于知识蒸馏和对抗学习的镜面图像分割方法
CN111681178B (zh) 一种基于知识蒸馏的图像去雾方法
CN112950780B (zh) 一种基于遥感影像的网络地图智能生成方法及系统
CN112365514A (zh) 基于改进PSPNet的语义分割方法
CN111401156B (zh) 基于Gabor卷积神经网络的图像识别方法
CN114092697B (zh) 注意力融合全局和局部深度特征的建筑立面语义分割方法
CN109635662A (zh) 一种基于卷积神经网络的道路场景语义分割方法
CN113095251B (zh) 一种人体姿态估计方法及系统
CN111739037B (zh) 一种针对室内场景rgb-d图像的语义分割方法
CN114998566A (zh) 一种可解释的多尺度红外弱小目标检测网络设计方法
CN112819096A (zh) 一种基于复合卷积神经网络的化石图像分类模型的构建方法
CN117079098A (zh) 一种基于位置编码的空间小目标检测方法
CN117456330A (zh) 一种基于MSFAF-Net的低照度目标检测方法
CN110728186A (zh) 一种基于多网融合的火灾检测方法
CN117173595A (zh) 基于改进YOLOv7的无人机航拍图像目标检测方法
CN116311349A (zh) 一种基于轻量神经网络的人体关键点检测方法
CN116433980A (zh) 脉冲神经网络结构的图像分类方法、装置、设备及介质
CN112990336B (zh) 基于竞争注意力融合的深度三维点云分类网络构建方法
CN115063890A (zh) 基于两级加权均方损失函数的人体姿态估计方法
CN109871835B (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