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

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

【技术实现步骤摘要】
一种基于知识蒸馏和对抗学习的镜面图像分割方法


[0001]本专利技术涉及镜面图像分割网络轻量化的领域,尤其涉及一种基于知识蒸馏和对抗学习的镜面图像分割方法。

技术介绍

[0002]本专利技术是关于镜面图像分割网络轻量化的领域,现有的计算机视觉系统并没有考虑到镜面的存在,对于这些系统来说,检测出这些镜像的存在是至关重要的。然而近年来为解决镜面图像分割问题而提出的模型,有参数量过大,难以训练和在有限资源的边缘设备移植成本高的问题。
[0003]镜子在生活中随处可见,无处不在,但是现有的计算机视觉系统并没有考虑到镜面的存在,因此会导致系统将镜中的物体与外界的物体产生混淆,进而识别性能会严重下降。镜子通常会反映周围相似的内容,这使得系统无法正确区分两者,从而会发生无法预料的错误,所以检测出这些镜像的存在是至关重要的。
[0004]然而现有的针对镜面图像分割任务设计出的模型算法更加注重提高精度而忽视了运行效率的问题,性能越好的神经网络意味着网络的层数更深,网络的结构更宽,网络的参数更多,这将会导致更加庞大的存储需求和计算开销,这些网络往往是无法顺利移植到移动端和嵌入式设备中。因此,设计一个轻量的、效率高的模型用于镜面分割任务是至关重要的。
[0005]本专利技术将镜面图像分割任务作为研究对象,通过研究主流轻量化神经网络模型,引入知识蒸馏理论和对抗学习策略对模型进行迁移学习,从而能够训练出达到优化模型参数和效率,减少系统资源占用,保留一定准确性的模型算法。

技术实现思路

[0006]本专利技术的目的在于针对现有技术的不足,提供了一种基于知识蒸馏和对抗学习的镜面图像分割方法。
[0007]本专利技术解决其技术问题所采用的技术方案包括以下步骤:
[0008]步骤1:对镜面图像进行预处理;
[0009]步骤2:使用多损失训练学生网络,让学生网络在经过步骤1处理得到的镜面图像上学习,得到反映镜面图像特征的镜面特征图;
[0010]步骤3:使用教师网络输出镜面特征图,并与步骤2中得到的镜面特征图进行对比,计算蒸馏损失;
[0011]步骤4:构建镜面分割对抗学习框架,将学生网络和教师网络输出的特征图作为输入计算对抗损失;
[0012]步骤5:采用公开数据集进行训练及测试,输出镜面图像分割结果。
[0013]进一步地,所述步骤1镜面图像预处理,具体步骤如下:
[0014]1‑
1.数据准备和预处理,即使用canny算法检测每张图像中镜面的边缘,所述
Canny算法是使用openCV库中的findContours函数实现的,读取标签图像后传入findContours,得到镜面边缘像素点位置信息的列表contour_list;
[0015]1‑
2.制作镜面边缘掩码图像,具体操作是:将上一步的contour_list作为参数传入openCV库中的drawContours方法,drawContours方法根据边缘像素点的位置信息描绘标签图像的边缘。
[0016]进一步地,所述步骤2使用多损失训练学生网络,具体步骤如下:
[0017]2‑
1.构建多损失训练学生网络。学生网络是一个MobileNetV3

small网络,它继承了V1的深度可分离卷积模块和V2的线性瓶颈残差模块,引入了SE通道注意力结构。
[0018]保留原MobileNetV3

small模型的前14个特征层,删除原MobileNetV3

small模型的最后两层个特征层,并且在第一层、第四层、第九层和第十二层添加适合图像分割的模块;引入MirrorNet提出的CCFE模块,接着使用逆卷积ConvTranspose,BatchNorm层和Relu激活函数,最后连接一个输出通道数为1的Conv,并使用Sigmoid激活函数输出分割结果;
[0019]所述学生网络包括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;
[0020]每层的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);
[0021]从第2层到第12层的膨胀参数依次为:16、72、88、96、240、240、120、144、288、576、576
[0022]从第1层到第13层的block结构输出的通道数依次为:16、16、24、24、40、40、40、48、48、96、96、96、576
[0023]除第1、3、4、14层外,其它层均引入注意力机制;
[0024]每一层block结构第二个Conv所用的步长,从第一到第14层,分别为2、2、2、1、2、1、1、1、1、2、1、1、1、1
[0025]第2、3、4层的激活函数为RELU,第14层无激活函数,其它层的激活函数为h

swish
[0026]出于对参数和效率的考虑,将原作者的模型的最后两层删除,并仿照教师模型添加相应的分割模块以对齐两者的输出大小方便步骤3进行知识蒸馏。学生网络是由多个损失联合优化的,从数学形式上可以表示为:
[0027][0028]其中S(x)表示学生网络输出的特征图,y表示镜面图像的掩码。α是自定义权重,作为优选,α的值为0.3。
[002本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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的方式进行知识蒸馏;学生网络是由多个损失联合优化的,从数学形式上可以表示为:其中S(x)表示学生网络输出的特征图,y表示镜面图像的掩码;α是自定义权重;2

2.计算边缘损失函数:使用Laplace运...

【专利技术属性】
技术研发人员:陈芙匡振中
申请(专利权)人:杭州电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1