当前位置: 首页 > news >正文

FSOD论文阅读 - 基于卷积和注意力机制的小样本目标检测

来源:知网

标题:基于卷积和注意力机制的小样本目标检测
作者:郭永红,牛海涛,史超,郭铖

郭永红,牛海涛,史超,郭铖.基于卷积和注意力机制的小样本目标检测 [J/OL].兵工学报. https://link.cnki.net/urlid/11.2176.TJ.20231108.1418.002

摘要

  1. 典型的FSOD使用Fast R-CNN作为基本的检测框架
  2. 本文亮点:引入混合扩张卷积确保更大的感受野并减少图像信息的损失;提出支持特征动态融合模块,以每个支持特征和查询特征之间的相关性为权重,自适应地融合支持特征

引言

  1. 早期的FSOD算法遵循元学习范式,首先对训练数据进行采样,然后利用元学习方法训 练FSOD任务的模型,但是元学习器在学习迭代过程中容 易出现非收敛问题(学习算法无法达到一个稳定的解或最优解的状态)
  2. 基于微调的FSOD方法可有效解决非收敛问题(主要是因为这些方法利用了预先训练好的模型和知识,从而在面对有限数据时更有效地学习和适应新任务),基于微调的FSOD方法首先在大 规模基础类数据集上训练检测器,在微调过程中, 主干网络参数可被重用或冻结,而只有Box分类器和回归器是用新数据训练的
  3. Faster R-CNN算法:主要由三部分组成 - 特征提取器、区域候选网络(RPN)和检测头。
  4. Fast R-CNN的工作流程:特征提取器使用卷积神经网络来获得输入图像的feature maps。RPN将feature maps作为输入生成 候选框,并对候选框进行二元分类和粗略回归,将 分类好的候选框映射到feature maps得到感兴趣区域 (RoI)的特征矩阵,发送给后续检测网络,最后由 检测头输出分类和回归的结果
  5. 现有的二阶 段检测算法仍然存在两个明显的缺点。总结就是1、采样过程中的信息丢失. 2、用均值得到的类别融合特征向量会丢失信息
  6. 为解决以上两个问题,文章提出两个方法:1、在主干网络中引入混 合扩张卷积(HDC),以增加感受野. 2、提出了支持特征动态融合(SFDF)模块,使用每个支持特征和查询特征之间的相似性作为权重,动态地融合支持特征,充分利用支持数据

FSOD 任务概述

  1. 一阶段检测算法 - 使用主干网络对图像进行特征提取,直接对特征图像进行分类和回归,例如SSD、YOLO,优点是快,缺点是定位精度低
  2. 二阶段检测算法 - 先找到可能包含目标的RoI,然后对区域进行分类和回归,例如Fast R-CNN,优点是定位精度高,缺点是慢
  3. 综上,在做迁移学习的FSOD时,可以考虑使用以上模型做为基准模型,然后魔改模型中的某部分(本文就是这么干的),然后找到一个baseline,做效率对比
  4. 已有算法:Meta R-CNN(基于transformer)、TFA、MPSR、FSCE、CME、DeFRCN(回头可以考虑使用以上算法做为baseline然后魔改自己的模型测试性能提升)

基于卷积和注意力机制网络结构

  1. N-way K-shot: N个类别,每个类别K个样本
  2. 文章的主干网络是ResNet-101,在主干网络中加入HDC(混合扩张卷积模块)和SFDF(支持特征动态融合模块),模型示意图如下:在这里插入图片描述
  3. HDC模块:混合扩张卷积(扩张卷积:在卷积核之间引入空间,扩大卷积覆盖的范围),本文引入了一个(1, 2, 5)的扩张卷积,对比起(2, 2, 2)的扩张卷积来,感受野的范围更大,且保留了图像信息的连续性:在这里插入图片描述
  4. 扩张卷积引入了间隔,那么扩张卷积是如何保证图像信息不丢失的呢? - 卷积在滑动的过程中会走过每个像素:保证参数不变的同时扩大了感受野.
  5. SFDF模块:该模块首先计算查询特征与支持 集中每一类的每个特征之间的相似度,然后将该系数作为权重,对支持集中每一类的每个特征进行加权求和操作,这样生成的支持集特征可以包含对象最有鉴别性的信息

实验

  1. 使用 ImageNet 数据集上预训练 ResNet101 作为原始模型,使用 RoI Align 作为 RoI 特征提 取器
http://www.lryc.cn/news/232625.html

相关文章:

  • Windows系统中搭建docker (ubuntu,Docker-desktop)
  • 使用记录-MongoDB
  • 用归并排序算法merge_sort( )求解 逆序对的数量 降低时间复杂度为 nlogn
  • 大功率电源芯片WD5030L
  • Spring Boot使用EhCache完成一个缓存集群
  • yolov5模型代码怎么修改
  • VIM去掉utf-8 bom头
  • Go 使用Viper处理Go应用程序的配置
  • hadoop安装网址
  • JavaMail邮件发送服务
  • 【918.环形子数组的最大和】
  • Unity Quaternion接口API的常用方法解析_unity基础开发教程
  • Rust开发——使用rust实现Redis中hset
  • 海康Visionmaster-环境配置:VB.Net 二次开发环境配 置方法
  • 51单片机应用从零开始(四)
  • Django下的Race Condition漏洞
  • 【数据结构】希尔排序(最小增量排序)
  • Android Native崩溃信息分析和 工具(addr2line和ndkstack)使用
  • 2023年05月 Python(六级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • SQLite3 数据库学习(文章链接汇总)
  • 【VSCode】Visual Studio Code 下载与安装教程
  • 分布式教程从0到1【1】分布式基础
  • Ubuntu22.04 部署Mqtt服务器
  • HMM与LTP词性标注之LTP介绍
  • 基于SSM的学生疫情信息管理系统设计与实现
  • 分类预测 | Matlab实现PSO-GRU粒子群算法优化门控循环单元的数据多输入分类预测
  • 用电子签章软件怎么给标书一键签章的小故事
  • Windows10电脑没有微软商店的解决方法
  • SpringCloud-Gateway修改Response响应体,并解决大数据量返回不全等问题
  • Spark与SQL之间NB的转换_withClumn,split及SubString