vit细粒度图像分类(七)TBNet学习笔记

1.摘要

细粒度鸟类图像识别致力于实现鸟类图像的准确分类,是机器人视觉跟踪中的一项基础性工作。鉴于濒危鸟类的监测和保护对保护濒危鸟类具有重要意义,需要采用自动化方法来促进鸟类的监测。在这项工作中,我们提出了一种新的基于机器人视觉跟踪的鸟类监视方法,该方法采用了一种名为TBNet的亲和关系感知模型,该模型结合了CNN和Transformer架构,并具有新颖的特征选择(FS)模块。具体来说,CNN是用来提取表面信息的。利用Transformer来开发抽象的语义亲和关系。引入了FS模块来揭示识别特征
综合实验表明,该算法在cub -200- 201数据集(91.0%)和nabbirds数据集(90.9%)上均能达到最先进的性能。

2.问题

细粒度鸟类图像识别是机器人视觉跟踪和图像处理的基础任务[1-3]。不受人类干扰,通过机器人自动跟踪鸟类对濒危鸟类保护至关重要。目前,由于环境恶化的威胁,一些濒危鸟类濒临灭绝。因此,濒危鸟类的监测与保护对鸟类保护具有重要意义。鉴于世界上近一半的鸟类种群数量在下降,其中13%的鸟类“处境相当严重”[4],濒危鸟类的保护日益受到人们的重视。为了加强鸟类保护,鸟类种群监测已成为研究热点。然而,由于极端的野外条件,例如热带地区的高温和热带雨林的高湿度,这一直是一项具有挑战性的任务。传统上,鸟类研究人员对栖息地濒危鸟类的信息进行人工观测和记录,这是一项费时费力的工作。近年来,随着人工智能的发展,人们提出了许多用于细粒度鸟类图像分类(FBIC)的深度学习方法。因此,下游的任务,如鸟类监视是失败的。

通过对鸟类外形的仔细观察,我们发现了鸟类各部位之间的亲和关系,这有助于FBIC的研究。如图1所示,鸟头和鸟喙的组合或鸟头、翅膀和尾巴上的颜色图案。这些亲和关系可以作为FBIC的判别特征。

2.1发现
然而,在野外识别鸟类也面临着一些挑战。首先,由于极端的野外环境,图像质量会有所不同。例如,从远处拍摄的图像可能会导致低分辨率(图2(a)),或者在低照度下拍摄的图像(图2(a))。2(b)),第二,有任意的鸟的姿势。例如,从图2(e)和图2(d)中可以看出,第一张图片显示的是一只飞行的银鸥,而第二张图片显示的是一只站立的银鸥。在每一幅图中,鸟类看起来都有不同的外观,这是另一个给FBIC带来困难的来源。第三,由于野外背景的隐蔽性和复杂性,鸟类可能在树枝和树叶中(图2(e)),也可能被树枝观察到(图2(f)),这给鸟类图像的分类带来了困难。

2.2发展

由于识别鸟类图像之间的语义长期依赖的亲和关系具有重要意义,因此,Transformer是一种天生擅长探索图像中微观的细粒度细节和微观的长期依赖的语义关系的语言。Transformer[5]最初用于自然语言处理。然后受到计算机视觉领域的启发。Carion等[6]提出了一种基于Transformer的端到端目标检测方法,在[7]中,Dosovitskiy等提出了vision Transformer (ViT),首次应用并证明了纯Transformer是一种可以与CNN竞争并占据其地位的结构。因此,ViT结构被用作我们的模型的骨干,以利用FBIC任务的亲和关系。

2.3创新

在这项工作中,我们提出了一种可以用于智能鸟类监视机器人的方法(图2),智能鸟类监视机器人可以安装在喂食器,鸟巢或鸟类栖息地附近。该机器人可以垂直和水平旋转,以提供更大的视野来探测鸟类。机器人以固定的间隔记录图像,并在图像中检测到鸟时增加频率。一个大的机器人内部安装了大容量电池,可以进行长时间的监控,机器人内部还安装了我们的TBNet模型程序芯片,可以实时对鸟类进行分类。

在监测期间,研究鸟类的出现频率将被计算和记录。然后,收集到的信息可以用于鸟类研究人员对鸟类种群的估计和保护。TBNet模型通过识别鸟类图像中的亲和关系来实现对鸟类图像的分类,从而为下游鸟类种群的估计提供便利。综上所述,本工作的主要贡献如下:
1)提出了一种新的用于鸟类保护的机器人视觉跟踪方法。智能监控机器人可以旋转到不同的方向,记录鸟类的数量。
2)建立了一个有效的TBNet模型。据我们所知,这种亲和关系是首次在鸟类图像中被揭示出来。因此,ViT被用来利用这些抽象的语义亲和关系。利用CNN提取表层信息,引入FS模块揭示判别特征。为TBNet模型的特征映射生成,提出了一种特征提取策略(CPG策略)。
3)在CUB-200-2011和NABirds两个鸟类数据集上进行实验。与现有的几种最先进的方法相比,所提出的TBNet具有更好的性能,从而验证了其有效性

3.网络

3.1整体结构

TBNet模型的管道如图3所示。该方法包括特征提取主干、FS模块和分类头三个部分。第一部分是特征提取主干,用于提取鸟类图像的细粒度和多尺度信息。一般来说,几个当前的骨干[1- 3,7]可以被认为是候选。由于CNN对表层信息的提取能力强,而Transformer在挖掘抽象语义亲和关系方面表现突出,因此本研究采用CNN与ViT的结合作为主干。骨干进一步修改,以提高性能。为了减轻过拟合,所开发的网络在主干的分类头部有dropout层。第二部分是FS模块,提取特定鸟类的判别特征。第三部分是分类头,在分类头中最终利用特征图进行最终分类。

1.使用CNN网络来提取图像初步特征,之后压缩成patch输入vit网络 ,能够较多的保留图像的全局信息,但同时一些低层次的细节信息因为层层卷积而被忽视掉了。

2.FS模块相当于图像增强,通过去掉transformer块中的贡献小的区域来增加显著区域的权重

3.2 Feature map generation

通过特征提取主干对鸟类图像进行处理并生成特征地图。这个过程可以概括为三个步骤:CNN处理,位置嵌入,并通过Transformer块(CPG策略)。该过程完成后,将原始输入图像转换成特征图进行分类。

Step I:CNN处理。在这一步中,通过CNN对原始输入图像进行初步处理,生成n个特征图。然后,将每个特征映射t平面化成一维向量。接下来,应用线性投影将pt投影到p[中。这个过程表示如下:

式中pt为第i个patch, E为线性投影,i为d维投影视觉向量。 

Step II:位置嵌入。由于Transformer层对输入patch序列的排列是不变的,因此需要位置嵌入来编码patch的空间位置和关系。具体来说,这些补丁是通过位置嵌入到补丁向量中来添加的。埋设公式如下:

式中,c_{0}表示由patch向量组成的矩阵,n表示patch的个数,E_{pos'}表示位置嵌入。位置嵌入的类型可以从几个选项中选择,即二维正弦、可学习和相对位置嵌入。 

Step III:穿过Transformer块。位置嵌入补丁然后通过M个Transformer块。每个Transformer块的计算方法如下:

其中c\hat{}^{}l和c^{l}分别为变压器块1的MSA模块和MLP模块的输出patch向量。LN(-)表示层归一化。MLP表示多个完全连接的层。MSA表示多头自我注意。这些变压器块可分为N级。 

3.3 FS module

原始补丁可能引入对分类有害的破坏性特征。图4显示了Transformer块中的特性映射列表。最后一阶段根据特征图的区分分数对特征图进行排序。如图4所示,在较低的层次中,例如阶段1和阶段2,Hits@ k特征彼此之间几乎没有相似性,而得分较差的特征彼此之间几乎相同。在更高的层中,例如阶段N, Hits@k特征更加相似且高度激活,而得分较差的特征似乎是嘈杂的。总的来说,在各个阶段,高分的显著特征比低分的显著特征更重要。因此,我们提出FS模块,以进一步利用这些独特特征提供的信息,有效减轻破坏性特征的破坏性影响。

设在阶段i中,输出为n个ID补丁向量,记为Qj,i e[1,2,3,…,]。首先,FS模块计算n个向量之间的相似度。从余弦相似度或者L2距离的逆选择相似性。余弦相似度定义如下

其中F ”和G ”为两个向量,Sc (F,G) ∈[0,1]。Sc的值表示F与g的相似度,其L2距离构造如下: 

其中“F ”和“G ”表示两个特征向量。相似度的计算公式如下: 

 

其中,\Omega _{i}\Omega _{j}.分别表示第i个和第j个补丁向量。Sc表示余弦相似度,L_{2}表示L_{2}距离。通过计算相似度,可以得到相似矩阵。包含所有patch之间相似度的相似度矩阵可以表示为:

其次,每个patch向量通过与其他patch向量的相似度相加并进行往复运算得到一个判别分数。这个操作公式如下:

 最后选择得分最高的Hits@k (k) patch vector输入到下一层。其余的补丁向量被丢弃,因为它们的鉴别性较差。

4.实验

4.1实验设置

4.1.1数据集

CUB-200-2011,NABirds 

4.1.2实验细节

提出的模型以以下方式实现。首先,将输入图像分辨率调整为448到448,以便进行公平的比较。为提高效率,批量大小设置为8。采用AdamW优化器,权重衰减为0.05。学习率初始化为0.0001。所有的实验都是在一个Nvidia TITAN GPU上使用PyTorch工具箱完成的。

4.2对比试验

 

4.3消融实验

4.4可视化

5.结语

在这项工作中,我们提出了一种新的鸟类保护机器人视觉跟踪方法。智能监控机器人可以旋转到不同的方向,记录鸟类的数量。在此基础上,建立了一个有效的TBNet模型。据我们所知,鸟类图像中的亲和关系首次被揭示。CNN被用来提取肤浅的信息。利用ViT来挖掘抽象的语义亲和关系。引入了FS模块来揭示识别特征。为TBNet模型的特征映射生成,提出了一种特征提取策略(CPG策略)。我们在两个FBIC数据集上测试了TBNet。实验结果表明,该方法可以识别鸟类图像中的亲和关系和判别特征。随着TBNet所取得的可喜成果,相信机器人对鸟类的视觉跟踪具有巨大的潜力是合理的。 

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

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

相关文章

代码随想录算法训练营29期|day36任务以及具体安排

第八章 贪心算法 part05 435. 无重叠区间 class Solution {public int eraseOverlapIntervals(int[][] intervals) {Arrays.sort(intervals, (a,b)-> {return Integer.compare(a[0],b[0]);});if(intervals.length 1) return 0;int result 0;for(int i 1 ; i < interva…

分布式事务(三)—— 两阶段提交解决方案(2PC)

系列目录&#xff1a; 《分布式事务&#xff08;一&#xff09;—— 事务的基本概念》 《分布式事务&#xff08;二&#xff09;—— CAP和Base理论》 一、常见分布式事务解决方案 两阶段提交&#xff08;2PC&#xff0c;Two-phase Commit&#xff09;TCC补偿模式基于本地消…

springboot mybatis-plus 项目分层笔记

整体定义 config: 配置项&#xff0c;包含configuration注解 constants: 常量类enums: 枚举 exceptions: 全局异常处理&#xff0c;自定义异常&#xff0c;RestControllerAdvice 注解 fia3: 三大器依据执行顺序&#xff1a;过滤器filter、拦截器interceptor、切面aop 简称 fia…

算法设计与分析实验:快速选择与单调栈

目录 一、找到K个最接近的元素 1.1 具体思路 1.2 思路展示 1.3 代码实现 1.4 复杂度分析 1.5 运行结果 二、前K个高频元素 2.1 思路一&#xff1a;哈希表 2.2 思路二&#xff1a;快速选择 2.3 思路三&#xff1a;堆 三、柱形图中的最大矩形 3.1 具体思路 3.2 思路…

Mysql单行函数练习

数据表 链接&#xff1a;https://pan.baidu.com/s/1dPitBSxLznogqsbfwmih2Q 提取码&#xff1a;b0rp --来自百度网盘超级会员V5的分享 单行函数练习 单行函数(一行数据返回一个结果) #1.显示系统时间(注:日期时间) #2.查询员工工号,姓名,工资以及提高百分之20后的结果(new…

2024年Java SpringBoot 计算机软件毕业设计题目推荐

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作✌ 主要内容&#xff1a;SpringBoot、Vue、SSM、HLM…

Flume搭建

压缩包版本&#xff1a;apache-flume-1.9.0-bin.tar 百度盘链接&#xff1a;https://pan.baidu.com/s/1ZhSiePUye9ax7TW5XbfWdw 提取码&#xff1a;ieks 1.解压 tar -zxvf /opt/software/apache-flume-1.9.0-bin.tar.gz -C /opt/module/ 2. 修改文件名 [rootbigdata1 opt]…

【stm32】hal库学习笔记-FSMC连接TFT_LCD

【stm32】hal库学习笔记-FSMC连接TFT LCD 触摸屏结构与原理 LCD模块接口原理图 LCD 接口连接在 FSMC 总线上面&#xff0c;图中的 T_MISO/T_MOSI/T_PEN/T_SCK/T_CS 连接在 MCU 的 PB2/PF11/PB1/PB0/PC13 上&#xff0c;这些信号用来实现对液晶触摸屏的控制&#xff08;支持电阻…

RHCE DNS域名解析服务器

目录 1. 正向解析 1.1 安装必要软件 1.2 配置静态ip 1.3 DNS配置 1.4 测试 2. 反向解析 2.1 关闭安全软件&#xff0c;安装必要软件 2.2 配置静态ip 2.3 DNS配置 2.4 测试 1. 正向解析 1.1 安装必要软件 1.2 配置静态ip 服务器配置 nmcli c modify ens32 ipv4.method man…

如何使用 Mermaid、GitHub 和 VSCode 用代码创建关系图三

Mermaid 系列 如何使用 Mermaid、GitHub 和 VSCode 用代码创建关系图一如何使用 Mermaid、GitHub 和 VSCode 用代码创建关系图二 1.如何创建甘特图 Gantt 甘特图以条形图的形式用作可视化表示。它有效地展示了项目的时间表&#xff0c;揭示了各个项目组件完成所需的持续时间…

leetcode刷题(剑指offer) 509.斐波那契数

509.斐波那契数 斐波那契数 &#xff08;通常用 F(n) 表示&#xff09;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项数字的和。也就是&#xff1a; F(0) 0&#xff0c;F(1) 1 F(n) F(n - 1) F(n - 2)&#xff0c;其中 n…

Java玩转《啊哈算法》排序综合篇之小哼买书

是诸法空相&#xff0c;不生不灭&#xff0c;不垢不净&#xff0c;不增不减 非目录 缘起代码地址案例桶排序冒泡排序快速排序 缘起 各位大哥大姐&#xff0c;兄弟姐妹们好呀&#xff01;本人最近看了下《啊哈算法》&#xff0c;说来惭愧&#xff0c;买几年了&#xff0c;当初看…

Office提取某一页转成图片

目录结构 前言支持的文件格式代码整理maven依赖文本文档解析转换电子表格解析转换演示文档解析转换PDF解析转换小编代码整理(完整版)特别感谢扩展前言 近期公司需求,要将office文件提取第一页内容转成图片;一番调查后整理如下: 支持的文件格式 文本文档电子表格演示文档…

协会认证!百望云荣获信创工委会年度“卓越贡献成员单位”称号

当前&#xff0c;新一轮科技革命和产业变革正加速重塑全球经济结构&#xff0c;强化企业科技创新的主体地位&#xff0c;推动创新链、产业链、人才链深度融合&#xff0c;加快科技成果产业化进程至关重要。 近日&#xff0c;中国电子工业标准化技术协会信息技术应用创新工作委员…

HTTP中传输协议的数据格式

HTTP 概述&#xff1a;超文本传输协议(Hyper Text Transfer Protocol) 传输协议&#xff1a;定义了客户端和服务器通信时&#xff0c;发送数据的格式 客户端和服务器端交互&#xff1a;客户端向服务器端发送请求&#xff0c;服务器端向客户端响应请求 HTTP特点&#xff1a;…

安装mysql和navicat

1 安装mysql 以下是 MySQL 的安装教程: 步骤 1:下载 MySQL 首先在官方网站上下载 MySQL 安装包。在下载页面中选择第一个安装包,然后点击“下载”按钮,下载后解压缩。 下载地址 步骤 2:配置环境变量 配置MYSQL_HOME path 中添加%MYSQL_HOME%\bin 添加 my.ini ,内容…

1月威胁态势 | 0day占比83%!两大勒索家族“均分天下”

近日&#xff0c;亚信安全正式发布《亚信安全2024年1月威胁态势报告》&#xff08;以下简称“报告”&#xff09;报告显示&#xff0c;1月份新增安全漏洞1511个&#xff0c;涉及0day漏洞占83%&#xff1b;监测发现当前较活跃的勒索病毒家族是Wacatac和Nemucod&#xff0c;病毒样…

【C++】vector的简单使用和实现

vector就是我们之前数据结构学的顺序表&#xff0c;这篇博客就是说一说它的简单使用和底层实现 文章目录 简单使用模拟实现 简单使用 首先&#xff0c;我们看看它的构造函数 我们比较常用的也就是第二种&#xff0c;就是第一个参数是要存的数据个数&#xff0c;第二个是要填…

Python实现利用仅有像素级标注的json文件生成框标注的json文件,并存放到新文件夹

import json import os # create rectangle labels based on polygon labels, and store in a new folder def create_rectangle_shapes(polygon_shapes):rectangle_shapes []for polygon_shape in polygon_shapes:# 获取多边形的坐标点points polygon_shape[points]# 找到最…

node 第二十四天 mongoDB shell 命令 高级方法 $where aggregate聚合

$where 数据库数据如下 使用where语法如下 等价于 2.aggregate 聚合 使用聚合管道执行聚合操作。该管道允许用户通过一系列基于阶段的操作来处理来自集合或其他源的数据。 过滤数据, 分组数据 (排除name为 AAA 的数据 按price进行分组 每匹配一组计数1) 下面我们用aggregate…