vit细粒度图像分类(三)TRS-DeiT 学习笔记

1.摘要

 细粒度图像分类任务由于自身存在的细微的类间差别和巨大的类内差别使其极具挑战性, 为了更好地学习细粒度图像的潜在特征, 该算法将知识蒸馏引入到细粒度图像分类任务中,
提出基于知识蒸馏与目标区域选取的细粒度图像分类方法( TRS-DeiT) , 能使其兼具 CNN 模型和 Transformer 模型的各自优点。 此外, TRS-DeiT的新型目标区域选取模块能够获取最具区分性的区域; 为了区分任务中的易混淆类, 引入对抗失函数计算不同类别图像间的相似度
最终, 在三个经典细粒度数据集 CUB-200-2011、 Stanford Cars 和 Stanford Dogs 上进行训练测试, 分别达到 90. 8%、 95. 0%、 95. 1%的准确率。 实验结果表明, 该算法相较于传统模型具有更高的准确性,通过可视化结果进一步证实该算法的注意力主要集中在识别对象, 从而使其更擅长处理细粒度图像分类任务。

2.问题

根据图像粒度不同, 图像分类可划分为粗粒度图像分类和细粒度图像分类。 粗粒度图像分类即传统意义的图像分类, 如猫和狗属于不同种类, 在类别间存在的类间差距是相当明显的。 对比粗粒度图像分类, 细粒度图像分类聚焦于区分相同大类中多个附属子类下的不同对象 [ 1] , 如区分狗的品种 [ 2] 、 车的款式 [ 3] 等。 类间差别小和类内差别大的特点使得细粒度图像分类更具挑战性。细粒度图像分类实例如图 1 所示, 该图表示视觉上相似的狗,其中每行表示一个种类, 要识别的对象会受到背景、 光照、 遮挡、 对象的姿态等因素的干扰, 从而进一步加大了细粒度图像分类的难度。 

2.1发现

为了解决上述问题, 大量基于深度学习的细粒度图像分类方法被提出来, 主要分为强监督方法 [ 4 ~7] 和弱监督方法 [ 8 ~15] 两大类。 强监督方法依赖额外的手工信息比如标注框
( bounding box) 、 部分信息注释( part annotation) 来获得识对
象的位置和大小, 这有助于提高部分特征与全局特征的关联,进而产生更好的分类效果。 然而, 由于获取这些标注信息的代价十分昂贵, 从某种程度上限制了这类方法的实际应用。 弱监督方法只利用图像级别的注释指导模型学习, 即图像标签, 无须手工注释信息就能自动学习到区分性区域特征, 且在性能上逐渐超过了强监督学习方法, 因此, 弱监督方法逐渐成为细粒度图像分类领域的主流方法。根据模型框架的不同, 弱监督方法可划分为基于 CNN( convolutional neural network) 的方法 [ 8 ~12] 和基于 Transformer的方法 [ 13 ~15] 。

2.2发展

基于 CNN 的方法常用的典型骨架网络有 Res-Net [ 16] 、 DenseNet [ 17] 等。 这些骨架网络的 CNN 过滤器被视做局部描述器, 具有局部性和空间性两个属性, 能学习图像的局部区域并编码空间信息。 在基于 CNN 框架的基础上, 现有细粒度图像分类方法通过注意力机制作为子模块来寻找最具区分性区域, 提出了 RA-CNN [ 10] 、 MA-CNN [ 18] 、 PA-CNN [ 19] 方法。
然而, 上述方法都存在定位区域过大、 涵盖背景等干扰信息的问题, 且在数据集规模较小的情况下, 注意力机制容易过拟合 [ 1] 。 在基于 Transformer 的方法中, Transformer 结构的自注意力模块具有捕获长距离依赖的能力, 能够在最初的几层里定位到图像的细微区别和空间关系 [ 14] , 并且 Transformer 的残差连接结构能够有效地将图像特征从网络的较低层传递到较高层 [ 20] , 因此, Transformer 自身结构更适用于细粒度图像分类任务, 使得基于 Transformer 的方法成为此领域的新兴方法。 通常, 基于 Transformer 的方法使用 ViT [ 21] 作为其骨架网络, 然而, ViT 的局限性在于不能同时兼顾 CNN 方法和 Transformer方法的优点来更全面地学习细粒度图像特征。DeiT [ 22] 模型借助知识蒸馏能实现同时结合 CNN 方法和
Transformer 方法的优点, 且在粗粒度图像分类任务中获得巨大成功, 然而其在细粒度图像分类任务中的表现尚未被探索。

2.3创新

受此启发, 本文首次将 DeiT 模型应用在细粒度图像分类领域, 提出基于知识蒸馏与目标区域选取的细粒度图像分类方法( DeiT based on target regions selection, TRS-DeiT) 。 具体地,本文首先使用细粒度图像分类模型 TransFG [ 14] 和 CAL [ 12] 分别作为教师模型指导 DeiT 模型做特殊领域数据集的任务; 其次,为了找到最具区分性区域, 提出新型目标区域选取模块, 其在注意力权重上利用综合性策略充分考虑令牌间的关系。 为了区分图像中的易混淆类, 本文提出利用对抗性损失函数学习图
像间的相似度
[ 14] 。 最后, 通过大量任务集验证本文模型的有效性。 本文首次探索将 DeiT 模型用于细粒度图像分类任务上的蒸馏方法; 提出新型目标区域选取模块( target regions selec-tion module, TRSM) 用来选取最具区分性的区域, 并且能够去除无关和干扰区域。

3.网络

3.1整体结构

本章将详细介绍本文所提基于知识蒸馏与目标区域选取的细粒度图像分类方法, TRS-DeiT。 其主要包括四部分: a) 骨架网络 DeiT 作为本模型框架用于学习图像基本特征; b) 知识蒸馏的模型设计用于有效学习教师模型知识; c) 目标区域选取模块用于获取图像中最具区分性区域; d) 损失函数总体设计用于高效监督模型学习。 TRS-DeiT 模型整体结构如图 2 所示, 最左侧是模型的输入, 包括图像补丁( image patches) 和两个额外的令牌, 即分类令牌( class token) 和蒸馏令牌( distillation token) ; 中间是骨架网络 DeiT, 在倒数第二层插入目标区域选取模块; 最右侧是通过分类令牌和蒸馏令牌对三个损失函数值进行计算。

3.2 骨架网络 DeiT 介绍
本文最大的创新在于首次将蒸馏型 Transformer 方法用于细粒度图像分类任务中, 使用教师模型指导学生模型完成分类任务。 DeiT 在传统图像分类领域性能超过 ViT 达到最新性能, 本文将探索 DeiT 在细粒度图像分类中的可行性, 并使用DeiT 作为骨架网络完成蒸馏模型设计。
DeiT 模型以 Transformer 为框架, 包含 L 层 Transformer 层
每层 Transformer 包括多头注意力( ,MHSA) 和前馈神经网络(, FFN) 。 除补丁令牌外, 输入令牌还包括分类令牌和蒸馏令牌, 它们都是可训练向量, 分类令牌在首层 Transformer 前被附加到输入令牌中,并在每个 Transformer 层与其他令牌交互, 最后分类令牌通过线性层计算后得到最终预测结果。 蒸馏令牌是为了做知识蒸馏任务添加的令牌, 它的功能与分类令牌类似也是与其他令牌交互, 但其目标是让 DeiT 学习教师模型的知识, 并复现教师模型的预测结果。 DeiT 使用的教师模型有卷积神经网络教师模型和 Transformer 教师模型两种类型。 

3.3 知识蒸馏的模型设计

为了能够让 DeiT 学习到教师模型的知识, 首先要有一个表现良好的教师模型。 可用做细粒度图像分类任务的教师模型包括基于 Transformer 的教师模型 TransFG [ 13] 和基于 CNN 的教师模型 CAL

3.4 目标区域选取模块

由于细粒度图像的细微差异加剧了分类难度, 本文提出在模型中加入目标区域选取模块, 旨在找到最具区分性的区域提高分类精度。 要想找到最具区分性区域也就是找到哪些补丁令牌对分类结果有重要影响, 对此, 本文依照文献[ 26] 的思想, 提出借助每层 Transformer 的注意力权重寻找关键的补丁令牌。 事实上, 在每个 Transformer 层中, 自注意力机制将来自参与嵌入的信息结合到下一层焦点嵌入的表示中, 这样会使来自不同补丁令牌的信息逐渐混合, 那么在 Transformer 中输入令牌与注意力权重之间的对应关系就不确定了。 因此, 本文提出将模型中的信息流建模成有向无环图 ( directed acyclicgraph, DAG) , 输入令牌作为 DAG 的节点, 每层 Transformer 的注意力权重作为 DAG 的边, 注意力权重的大小作为边的大小。最终, 抽取 L -1 层的注意力权重, 并将其进行矩阵相乘后的注意力权重当做输入令牌的注意力权重。
累计相乘后的结果可以看做是每个输入令牌更加真实的注意力权重, 权重值代表输入令牌的重要程度, 权重值越高, 令牌越重要。 因此, 根据权重值找到最重要的补丁令牌, 从而确定最重要区域。
累计的注意力权重可表示为

其中: A l 表示第 l 层 Transformer 的注意力权重; L 表示 Trans-
former 层的数量; a Kl 表示 l 层第 K 个头部的注意力权重。 考虑 分类结果只与分类令牌和蒸馏令牌相关, 因此只选出与这两个令牌有关的权重。 A class 和 A dist 表示注意力权重 A 中关于分类令牌和蒸馏令牌的矩阵行权重, 表示这两个令牌分别对其他令牌的关注程度, A → class 和 A → dist 表示注意力权重 A 中关于分类令牌和蒸馏令牌的矩阵列权重, 表示其他令牌对这两个令牌的关注程度。 将四个选出的权重向量进行元素相乘即得最终的
综合权重, 表示为

根据综合权重的大小, 对应着最大权重的令牌将被选出来作为最具区分性区域( 注: 这里筛选重要令牌是不包括分类令牌和蒸馏令牌的) 。 由于 A final 包括 K 个头部, 每个头部都可以找出一个权值最大令牌, 所以共选出 K 个令牌。 第 L -1 层的输出向量作为目标区域选取模块的输入, 表示为 z inputL -1 , 目标区域选取模块的输出向量表示为 z output
L -1 。 具体计算过程如图 3 所示, 用公式可表示为 

 

其中: N 表示补丁的数量; M TRS ( · ) 表示目标区域选取模块, 对应着图 3 中黄色框图部分。 

 说简单点,目标区域选取模块就是一种注意力机制,给最具区分性的区域更多的注意力权重,使得模型能更快地学到关键信息。到具体实施来看,对于有着L层Transformer层的Deit,选取前L-1层注意力权重作为边,所有的输入令牌,包括分类令牌,补丁令牌和蒸馏令牌一共有L个令牌,这样就有一个L-1条边,L个令牌的无向环。
将其进行矩阵相乘后的注意力权重当做输入令牌的注意力权重”,把每条边的注意力权重用数据表示出来,不过这里的矩阵相乘的矩阵不知道哪里来的。
然后用矩阵相乘的注意力权重来表征输入令牌的注意力权重,也就是说,但所有边的权重确定了,那么所有令牌的权重也就确定了。

3.5 损失函数总体设计

本文所提模型 TRS-DeiT 以 DeiT 的硬标签蒸馏方法 [ 22] 作为部分损失函数并做了微调, 包括两个交叉熵, 一个是在预测标签 y 和真实标签 y TL 上所作的交叉熵, 另一个是预测标签 y和来自教师模型的软标签 y tl 上所作的交叉熵。 用下式表示:

其中: α 介于 0 ~1, 用来调整两个交叉熵的占比。 然而, 该目标函数作为细粒度图像分类任务的损失函数不能强有力地监督细粒度图像间最为细微的区别, 因此, 本文提出加入对抗损失
函数监督模型训练。 对抗损失值包括两部分: 一部分是分类令牌的特征向量 z class 的对抗损失值, 另一部分是蒸馏令牌的特征向量 z dist 的对抗损失值, 公式如下: 

其中: 式( 13) 与( 11) 共享参数 α; β 介于0 ~1, 表示当负样本对的相似值大于 β 时才会起作用。 对抗损失函数能够最大化具有相同标签的图像间相似度, 最小化具有不同标签的图像间相似度, 从而有效区分易混淆类。 最终, TRS-DeiT 的总损失函数是将式( 11) 和( 13) 的损失函数加和得到: 

4.实验

4.1实验设置

4.1.1 数据集

4.1.2 实验细节

为了建模 TRS-DeiT, 本文采用 DeiT-B 作为本模型的骨架网络, 并加载官方 DeiT-B 模型的预训练权重 [ 22] 。
本模型的训练使用两块 NVIDIA RTX 2080 GPU, 在 PyTorch 平台上进行实验。训练参数设置: 数据集的图像尺寸调整为统一的 448 像素 ×448像素, 数据增强方法为随机翻转、 随机裁剪、 随机锐度、归一化。 CUB-200-2011 和 Stanford Cars 数据集的学习率均设置为0.003, Stanford Dogs 数据集的学习率设置为 0. 000 5, 学习率调度器设置为 step, 训练优化器设置为 AdamW, 批大小( batchsize) 设置为4, 整个训练过程最大迭代次数为 100。
根据实验统计验证, 在 CUB-200-2011 和 Stanford Cars 数据集上, 蒸馏损失函数阈值 α 均设置为0.5, 在 Stanford Dogs 数据集上, α 设为 0. 1,
在三个数据集上对抗损失函数的 β 阈值均设为0.4。测试参数设置: 批大小设为 4, 图像尺寸调整为 448 像素 ×448 像素, 统一将图像标准化。
教师模型设置: 在 CUB-200-2011 数据集上, 分别测试基于CNN 的 教 师 模 型 CAL [ 12] 和 基 于 Transformer 的 教 师 模 型TransFG [ 14] 的表现, 并分析两种教师模型的优劣。 最终, 鉴于 CAL作为教师模型在 CUB-200-2011 任务中的突出表现, 在 StanfordCars 和 Stanford Dogs 数据集上只选择 CAL 作为教师模型。

4.2对比试验

 

4.3消融实验

 

5. 结语

本文提出知识蒸馏和目标区域选取模块相结合的细粒度图像分类方法 TRS-DeiT。 所提方法借助知识蒸馏结合 CNN 模型和 Transformer 模型的各自优势, 更好地学习细粒度图像的潜在特征。
此外, 针对细粒度图像分类任务中存在的类间差距小和类内差距大的问题, 在模型中插入目标区域选取模块选取最具区分性区域, 同时通过在损失函数中引入对抗性损失函数让模型关注不同类别图像间的区别和同种类别图像间的相似性, 从而有效监督模型训练。 实验结果表明本文方法在 CUB-200-2011、 Stanford Cars 和 Stanford Dogs 数据集上的准确率分别达到了 90. 8%、 95%、 95. 1%, 优于对比模型, 可视化分析结
果进一步表明本文模型选取了图像中的重要区域而排除无关区域的干扰, 从而使得本文方法在处理细粒度图像分类任务上更具优势。
本文方法在知识蒸馏过程中, 教师模型会极大程度地影响学生模型的结果。 针对此问题, 如何进一步优化知识蒸馏模型, 打破教师模型的限制, 从而进一步提高模型准确率, 是未来工作的重要研究内容。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/656840.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试相关|常见试题 or 易错题集合

📫 作者简介:「六月暴雪飞梨花」,专注于研究Java,就职于科技型公司后端工程师 🏆 近期荣誉:华为云云享专家、阿里云专家博主、腾讯云优秀创作者 🔥 三连支持:欢迎 ❤️关注、&#x…

机器学习模型预测贷款审批

机器学习模型预测贷款审批 作者:i阿极 作者简介:数据分析领域优质创作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论&…

tritonserver学习之六:自定义c++、python custom backend实践

tritonserver学习之一:triton使用流程 tritonserver学习之二:tritonserver编译 tritonserver学习之三:tritonserver运行流程 tritonserver学习之四:命令行解析 tritonserver学习之五:backend实现机制 1、环境准备…

C/C++ (stdio.h)标准库详解

cstdio,在C语言中称为stdio.h。该库使用所谓的流与物理设备(如键盘、打印机、终端)或系统支持的任何其他类型的文件一起操作。 在本文将会通过介绍函数参数,举出实际的简单例子来帮助大家快速上手使用函数。 目录 一、流 二、库函数 1、F…

range函数用法完全解读

嗨喽~大家好呀,这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 迭代器是 23 种设计模式中最常用的一种(之一),在 Python 中随处可见它的身影,我们经常用到它,但是却不…

如何制作翻页效果的电子书

如何制作翻页效果的电子书?想必大家对这个问题也非常困扰吧!不知道从何做起?不知道该怎么制作?那你看到这篇文章就对啦!按照我说的去实践,你也能轻松制作 制作翻页效果的电子书并不复杂,只需要一…

基于ldap实现登录认证

最近开发的应用需要外协人员实现登录认证,外协人员的密码等信息已经录入到ldap, 需要连接ldap进行登录认证。下面先介绍一下登录的网络旅程图。 一.nginx实现AES加密 nginx请求处理入口(前端请求为json格式) location /aes {default_type te…

uniapp多格式文件选择(APP,H5)

uniapp多格式文件选择(APP,H5) 背景实现代码实现运行结果注意事项 尾巴 背景 从手机选择文件进行上传是移动端很常见的需求,在原生开发时由于平台专一性很容易实现。但是用uniapp开发官方提供的API在APP平台只能选择图片和视频&a…

Java RC4加密算法

一、RC4加密算法 在密码学中,RC4(来自Rivest Cipher 4的缩写)是一种流加密算法,密钥长度可变。它加解密使用相同的密钥,因此也属于对称加密算法。 百度百科 - RC4:https://baike.baidu.com/item/RC4/34545…

乔拓云教育系统:打造培训机构全面数字化转型新篇章

在当今数字化、信息化高速发展的时代,教育培训机构也需要与时俱进,借助先进的管理工具提升运营效率,优化学员学习体验。乔拓云教育系统正是这样一个全面、高效、一站式的解决方案,为教育培训机构提供强大的技术支持和全方位的服务…

Focaler-IoU:更聚焦的IoU损失

摘要 边界框回归在目标检测领域中起着至关重要的作用,而目标检测的定位精度在很大程度上取决于边界框回归的损失函数。现有的研究通过利用边界框之间的几何关系来提高回归性能,而忽略了难易样本分布对边界框回归的影响。本文分析了难易样本分布对回归结…

零基础学编程初级视频教程,中文编程工具免费版下载及编程源码文件下载

零基础学编程初级视频教程,中文编程工具免费版下载及编程源码文件下载 编程初级视频教程链接 https://edu.csdn.net/course/detail/39061 编程工具及实例源码文件下载可以点击最下方官网卡片——软件下载——常用工具下载——编程工具免费版下载及实例源码下载。…

Ubuntu2204+ROS2(humble)+usb_cam内参标定

1、安装usb_cam包 pip install pydantic1.10.14sudo apt install ros-humble-usb-cam# 测试打开相机 ros2 launch usb_cam camera.launch.py# 显示图像 ros2 run image_view image_view image:/camera1/image_raw 2、安装 camera_calibration sudo apt install ros-humble-c…

PawSQL更新 | 新增18个SQL性能审核重写规则

PawSQL最新版本针对DML和DQL新增了审核和重写优化规则共计33个,整体的规则数目达到了83个,覆盖了正确性,安全性、可维护性、性能四个方面的SQL质量问题,并提供了优化建议,已经形成比较完善的针对数据操作的SQL质量审查…

防御保护--防火墙的可靠性

目录 前提: VGMP 接口故障切换场景 状态切换备份的过程 HRP 第一种备份方式 --- 自动备份 第二种备份方式 --- 手工备份 第三种备份方式 --- 快速备份 各备份场景过程分析 1,主备形成场景 2,主备模式下,接口故障切…

ElementUI组件:Button 按钮

button按钮 点击下载learnelementuispringboot项目源码 效果图 el-button.vue页面效果图 项目里el-button.vue代码 <script> export default {name: "el_button",// 注意这里的名称不能和 router inex.js里的name一样methods: {sendMsg() {// alert(1)xthi…

Linux系统中Docker的安装及常用组件的安装

什么是Docker Docker是一个开源的应用容器引擎&#xff0c;它可以让开发者将应用程序及其依赖项打包到一个可移植的镜像中&#xff0c;并发布到任何流行的操作系统上。Docker使用沙箱机制来隔离容器&#xff0c;使其相互独立&#xff0c;并简化了应用程序的部署和管理。沙箱机…

网工内推 | 资深网工,周末双休,厂商认证优先,14薪

01 群核科技 招聘岗位&#xff1a;资深网络运维工程师 职责描述&#xff1a; 1、负责公司IDC机房网络的规划及持续改进&#xff0c;保证网络稳定运行&#xff1b; 2、负责公司国内外传输线路建设&#xff0c;提高链路的高可用保证业务的SLA&#xff1b; 3、负责网络监控平台的…

阿尔泰科技—创新解决农业环境监测难题!

引言 “农业是人类生活中不可或缺的重要领域&#xff0c;而农业环境的监测与保护对于农作物的生长和农业生产的可持续发展至关重要。为了解决农业环境参数监测的难题&#xff0c;阿尔泰科技提供了一套先进的解决方案&#xff0c;利用USB5630-D数据采集卡搭配传感器测试方案&a…

Pi 5缺货?CM5什么出来?RP2024? 在 CES2024 上访谈树莓派CEO Eben Upton

Pi 5缺货&#xff1f;CM5什么出来&#xff1f;RP2024&#xff1f; 在 CES2024 上访谈树莓派CEO Eben Upton 树莓派 CEO Eben Upton 在 CES2024 上回答关于树莓派5缺货&#xff0c;Pi 5与AI&#xff0c;以及 CM5 和 RP2024 的未来发展这些相关问题。 00:00 - 树莓派上的AI &…