Reid系列论文学习——无人机场景下基于 Transformer 的轻量化行人重识别

今天介绍的一篇论文是针对无人机场景下的行人重识别,论文题目为:"无人机场景下基于 Transformer 的轻量化行人重识别"。该论文针对无人机场景下行人呈现多角度多尺度的特点、以及传统CNN网络在行人重识别任务中受限于感受野和下采样导致的无法充分提取特征,同时也为了便于算法的部署而提出了一种基于Transformer轻量化Reid网络(Lightweight Transformer-based Person Re-Identification, LTReID)。

注:该论文并未开源任何资源(比如代码和数据集),因此论文的真实性并不清楚,本人这里并不负责复现,只是通过该论文为读者提供一个研究思路。

目录

国内外ReID研究难题

国内外ReID在无人机领域的研究现状

Transformer存在的问题

论文对于算法改进的思路

基于Transformer 的轻量化行人重识别关键技术

面向Transformer 的掩码搜索剪枝算法

损失函数设计 

面向无人机场景的空间信息嵌入

参考文献


国内外ReID研究难题

论文首先介绍了国内外围绕ReID的研究难题,比如人物遮挡问题的重识别、全局和局部特征提取效果差的问题。大多数研究主要从添加注意力机制、引入无监督学习和修改网络结构等多个方面提高网络性能,但这些方法无法避免由于卷积和池化带来的识别度下降的问题,同时部分算法会导致模型参数较大,推理实践慢

对上述部分,这里说一下个人观点供大家参考,首先为什么说卷积和池话带来识别度下降的问题,这是因为卷积获得的特征基本都是局部特征,无法像Transformer一样获取全局特征(或者可以理解为Transformer就是一个特殊的卷积),虽然网络的加深,网络的感受野势必也会受到影响,池化层也影响到周边像素的特征提取,因为这些种种问题会导致识别率低。


国内外ReID在无人机领域的研究现状

然后作者又讨论了国内外Reid在无人机领域的研究,例如,作者指出,近些年元学习迁移学习被引入无人机场景下的行人重识别[1],利用元学习提高特征提取能力,利用迁移学习改进所获得的元知识,用这两种策略解决无人机场景下人物图片差异较大的挑战。还有使用卷积后特征图的子空间池化来表征输入的图像[2],用该方法让网络学习到更具判别性紧凑性的特征表示。还有在模型训练中加入协方差信息提高网络的鲁棒性。但不论怎样,作者指出这只是将一些经典算法应用到无人机场景中,没有专门针对无人机场景下的特点对模型进行改进,比如没有利用最新基于注意力机制的 Transformer 模型对无人机场景下的行人图像进行全局特征的提取(我觉得这里说法有问题,只能说你可能没有找到这类论文,而不能说没有)。


Transformer存在的问题

随后作者又指出了Transformer存在的一些问题,比如参数量大导致推理和部署困难,因此作者想到了剪枝进行轻量化。通常剪枝分为结构化剪枝(通道剪枝)和非剪枝化剪枝(权重剪枝),非结构化剪枝一般是需要特定的硬件或者算法库的支持,所以作者选择了结构化剪枝(也是最为常用的方法)。多数结构化剪枝方法由于剪枝后或者剪枝期间需要进行额外的训练,并且剪枝流程需要引入额外的超参数进行调整,因此在实际中阻碍了结 构化剪枝方法的应用。(这里作者附上了一个参考文献,是说Transformer可以不用在训练中剪枝,而是在推理中进行动态剪枝,这个想法很有意思,后面有时间我会研究下并进行分享[3-4])


论文对于算法改进的思路

针对以上问题,我对作者在论文中的算法改进进行了以下总结:

1. 利用多头多注意力机制获取长距关联,提升网络的特征提取能力。

2.针对无人机场景下特点(多角度,多尺度),用Circle边界样本挖掘损失进行训练。

3.在transformer网络中加入边信息嵌入技术,将空间角度非视觉信息特征嵌入到输入中进行学习。

4.使用快速的掩码搜索剪枝[5]进行Transfomer轻量化,可在不进行重训练情况下的轻量化剪枝。

网络结构图如下所示:

图中的空间角度信息就是作者说的使用边信息嵌入技术,将空间信息嵌入到输入中进行训练学习。

基于Transformer 的轻量化行人重识别关键技术

面向Transformer 的掩码搜索剪枝算法

为了实现在不对模型进行重训练的情况下进行轻量化,通过费雪信息矩阵对Transformer 网络中头部和滤波器进行轻量化剪枝。(这部分也等我后面研究一下这个算法)

首先Transformer 的剪枝问题可以归纳为以下优化方法:

其中L为损失函数,m为掩码向量,C 为对浮点运算或时延等成本限制,为了有效的优化该方法,对损失函数围绕 m = 1 进行二阶泰勒展开,并且假设模型收敛到局部最优,损失函数优化可以表示如下:

其中, l表示 K 维全 1 向量, H 为损失函数对应掩码向量的海森矩阵,海森矩阵 H 是二阶偏导数矩阵,计算过于复杂,因此 H 需要进一步简化为对角矩阵形式的费雪信息矩阵,则简化为:

损失函数设计 

由于无人机多视角多尺度特点,不同行人之间的图像差别度减少,相同行人不同视角和高度的图像差距增加,常用的交叉熵和三元组损失函数很难 满足模型训练要求。因此采用Circle 损失函数和边界样本挖掘损失函数。

L_{c}为 Circle 损失函数 ,在 Circle 损失函数中,相较于一般的交叉熵损失函数,从最小化s_{n}^{j}-s_{p}^{j}为优化目标(n表示的类间相似,也就是负样本,p表示类内)扩展为\alpha _{n}^{j}(s_{n}^{j}-\Delta _{n})-\alpha _{p}^{i}(s_{p}^{i}-\Delta _{p}).

边界样本挖掘损失:

 这种就是在寻找最困难的正样本和最困难的负样本。

面向无人机场景的空间信息嵌入

由于无人机多视角的特点,提出了 面向无人机场景的空间信息嵌入,将空间角度信息等非视觉信息嵌入到输入序列中,以学习相同对象不同空间视角的不变特性。作者指出,空间角度信息可以分为两种:(1)以行人所在地为原点,人脸朝向为 X 轴,设无人机地面投影点和原点的连线 X 轴正方向的顺时针夹角为方向角 φ [0, 2π]。以人身为 Z 轴,设无人机和原点连线与 Z 轴 正 方 向 的 顺 时 针 夹 角 为 仰 角 θ ∈ [0,π/ 2] 。在两个方向上分别等间隔取N个区间

论文引用:

胡海峰,倪宗煜,赵海涛,等. 无人机场景下基于 Transformer 的轻量化行人重识别[ J]. 南京邮电大学学报(自然科学版),2024,44 (3):48 62.

参考文献

[1] XU L L, PENG H F, LU X, et al. Learning to generalize aerial person re-identification using the meta-transfer method[ J]. Concurrency and Computation: Practice and Experience, 2023, 35(12): e7687.

[2] ZHANG S Z, ZHANG Q, YANG Y F, et al. Person reidentification in aerial imagery[ J]. IEEE Transactions on Multimedia, 2021, 23: 281-291.

[3] HOU L, HUANG Z, SHANG L, et al. DynaBERT: dynamic BERT with adaptive width and depth [ J ]. Advances in Neural Information Processing Systems, 2020, 33: 9782-9793.

[4] LIU Z J, LI F R, LI G, et al. EBERT: efficient BERT inference with dynamic structured pruning[C]//Findings of the Association for Computational Linguistics: ACL-IJCNLP 2021. 2021: 4814-4823.

[5] KWON W, KIM S, MAHONEY M W, et al. A fast post-training pruning framework for transformers [ J ]. Advances in Neural Information Processing Systems,2022, 35: 24101-24116.

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

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

相关文章

力扣1895.最大的幻方

力扣1895.最大的幻方 求前缀和暴力枚举幻方边长 求行列前缀和 class Solution {public:int largestMagicSquare(vector<vector<int>>& grid) {int n grid.size() , m grid[0].size();vector<vector<int>> rowsum(n,vector<int>(m));for…

关于汽车软件测试的几点想法

如果你有过汽车行业的从业经验&#xff0c;你就应该知道&#xff0c;过去汽车行业只做测试&#xff0c;而不做开发。汽车制造商的主要任务&#xff08;从工程角度看&#xff09;是将来自数百家供应商的数千个零部件组装在一起。考虑到现代软件的复杂性和客户的“挑剔”&#xf…

Rufus 制作启动盘 | 便携的工作空间

唠唠闲话 最近服务器硬盘故障多&#xff0c;在修复过程中&#xff0c;学习了一些操作&#xff0c;这里做个记录。本期主要介绍 U盘启动盘的制作&#xff0c;以及持久化存储。 U 盘启动盘 镜像选择 Ubuntu 的版本命名遵循 “Adjective Animal” 的模式&#xff0c;即 “形容…

【trition-server】python-backend 源码阅读

c++ 的stub 代码import 了 python的类 sys 和 triton_python_backend_utils.pystub本身是一个进程,与主进程做IPC通信docker 运行一个trition-server (base) zhangbin@ubuntu-server:~$ docker run --shm-size=1g --ulimit memlock=-1 -p 8000:8000 -p 8001:8001 -p 8002:8002…

windwos环境和pyspark环境问题解决-记录

一&#xff1a; 打不开cmd/cmd闪退问题解决 1.winR打开 regedit 2.在注册表找到 HKEY_CURRENT_USER\Software\Microsoft\Command Processor路径 3.在该路径下找到AutoRun&#xff0c;将数值改为空 可能原因&#xff1a;找到AutoRun 发现值是&#xff1a; if exist & if…

新港海岸NCS8822 低功耗DP转VGA 分辨率支持1920*1200*60HZ

NCS8822描述&#xff1a; NCS8822是一个低功耗显示端口到vga转换器。NCS8822集成了一个与DP1.2兼容的接收器和一个高速三通道视频DAC。对于DP1.2输入&#xff0c;NCS8822支持1车道/2车道&#xff0c;也支持车道交换功能。对于VGA输出NCS8822&#xff0c;在60Hz帧率下对WUXGA&a…

C++ 栈-队列-优先级队列

目录 1 栈 2 队列 3 deque 介绍 4 优先级队列 5 反向迭代器 栈也是我们在C语言就模拟实现过的一种数据结构&#xff0c;在C中&#xff0c;栈其实和我们前面模拟实现过的string、vector等容器有一点区别&#xff0c;站起是不是容器&#xff0c;而是一种容器适配器&#xff0c;我…

java必知必会-j2ee规范(上)

文章目录 一、WEB三大规范二、j2ee相关接口(上)1.javax.servlet.Servlet2.javax.servlet.http.HttpServlet3.javax.servlet.ServletRequest4.javax.servlet.http.HttpServletRequest5.javax.servlet.ServletResponse6.javax.servlet.http.HttpServletResponse7. javax.servlet.…

k8s record 20240705

k8s 安全管理 request 是1g&#xff0c;你得不到要求&#xff0c;我就不创建了&#xff0c;这就是准入控制二次校验 SA就是serviceAccount。 内部是SA和 token, 外部用户进来就是 .kube/config文件 namespace下的是role&#xff0c;整个集群是 ClusterRole. 动作就是Binding li…

pytest-rerunfailures:优化测试稳定性的失败重试工具

笔者在执行自动化测试用例时&#xff0c;会发现有时候用例失败并非代码问题&#xff0c;而是由于服务正在发版&#xff0c;导致请求失败&#xff0c;从而降低了自动化用例的稳定性&#xff0c;最后还要花时间定位到底是自身case的原因还是业务逻辑问题&#xff0c;还是其他原因…

大数据面试题之Presto[Trino](3)

目录 Presto如何处理数据的聚合操作&#xff1f; Presto支持哪些类型的JOIN操作&#xff1f; 如何在Presto中使用子查询&#xff1f; 解释Presto中的窗口函数。 Presto中的Page和Block是什么&#xff1f; 描述Presto如何处理列式存储数据。 ORC和Parquet格式在Presto中的…

适合家居建材企业的CRM系统盘点(2024版)

当前&#xff0c;CRM市场上&#xff0c;国际巨头的市场优势正在逐渐减弱&#xff0c;国内CRM企业奋起追赶&#xff0c;呈现出强劲的崛起势头。因此&#xff0c;对于家居建材企业来讲&#xff0c;在进行CRM选型时&#xff0c;如何选择一款合适的系统是关乎企业高效发展的重要课题…

探索C嘎嘎的奇妙世界:第十九关---STL(list的模拟实现)

1. 基本框架 首先&#xff0c;我们先从节点的准备工作入手&#xff0c;请看示例&#xff1a; #pragma once #include<iostream> #include<assert.h> using namespace std; //节点 template<class T> struct ListNode {ListNode<T>* _next;Li…

矩阵键盘与密码锁

目录 1.矩阵键盘介绍​编辑 2.扫描的概念 3.代码演示&#xff08;读取矩阵键盘键码&#xff09; 4.矩阵键盘密码锁 1.矩阵键盘介绍 为了减少I/O口的占用&#xff0c;通常将按键排列成矩阵形式&#xff0c;采用逐行或逐列的 “扫描”&#xff0c;就可以读出任何位置按键的状态…

免杀笔记 ----> ShellCode Loader !!!

学了那么久的前置知识&#xff0c;终于到了能上线的地方了&#xff01;&#xff01;&#xff01; 不过这里还没到免杀的部分&#xff0c;距离bypass一众的杀毒软件还有很长的路要走&#xff01;&#xff01; 目录 1.ShellCode 2.ShellCode Loader的概念 3.可读可写可…

字符串函数5-9题(30 天 Pandas 挑战)

字符串函数 1. 相关知识点1.5 字符串的长度条件判断1.6 apply映射操作1.7 python大小写转换1.8 正则表达式匹配2.9 包含字符串查询 2. 题目2.5 无效的推文2.6 计算特殊奖金2.7 修复表中的名字2.8 查找拥有有效邮箱的用户2.9 患某种疾病的患者 1. 相关知识点 1.5 字符串的长度条…

代码随想录算法训练营第四十四天|188.买卖股票的最佳时机IV、309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费

188.买卖股票的最佳时机IV 题目链接&#xff1a;188.买卖股票的最佳时机IV 文档讲解&#xff1a;代码随想录 状态&#xff1a;不会 思路&#xff1a; 在股票买卖1使用一维dp的基础上&#xff0c;升级成二维的即可。 定义dp[k1][2]&#xff0c;其中 dp[j][0] 表示第j次交易后持…

虚拟ECU:纯电动汽车发展下的新选择

人类文明的进步是一个不断自我否定、自我超越的过程。21世纪以来&#xff0c;随着科技进步和经济社会发展&#xff0c;能源和交通系统已从独立于自然环境的孤立系统&#xff0c;转变为与自然、技术、社会深度耦合的复杂系统。为实现可持续发展和应对气候变化&#xff0c;世界各…

【居家养老实训室】:无障碍设施建设与评估

本文围绕居家养老实训室中的无障碍设施建设与评估展开讨论。首先阐述了无障碍设施对于居家养老的重要性&#xff0c;接着详细介绍了常见的居家养老无障碍设施类型&#xff0c;包括出入口、通道、卧室、卫生间等区域的设施。然后重点探讨了无障碍设施的评估方法和标准&#xff0…

【C++航海王:追寻罗杰的编程之路】关联式容器的底层结构——AVL树

目录 1 -> 底层结构 2 -> AVL树 2.1 -> AVL树的概念 2.2 -> AVL树节点的定义 2.3 -> AVL树的插入 2.4 -> AVL树的旋转 2.5 -> AVL树的验证 2.6 -> AVL树的性能 1 -> 底层结构 在上文中对对map/multimap/set/multiset进行了简单的介绍&…