《CounTR: Transformer-based Generalised Visual Counting》CVPR2023

摘要

本论文考虑了通用视觉对象计数问题,目标是开发一个计算模型,用于计算任意语义类别的对象数量,使用任意数量的“样本”(即可能为零样本或少样本计数)。作者提出了一个新颖的基于Transformer的架构,称为Counting TRansformer(CounTR),它通过注意力机制显式捕获图像块之间的相似性或与给定“样本”的相似性。此外,作者采用了两阶段训练机制,首先通过自监督学习预训练模型,然后进行有监督的微调。作者还提出了一个简单、可扩展的流程来合成训练图像,这些图像包含大量实例或来自不同语义类别,明确迫使模型利用给定的“样本”。通过在大规模计数基准测试(例如FSC147)上进行彻底的消融研究,证明了在零样本和少样本设置下达到了最先进的性能。

拟解决的问题

论文旨在解决通用视觉对象计数问题,即在一个图像中识别任意语义类别的显著对象的数量。这包括从零样本到少样本对象计数的挑战。

创新之处

  1. 提出了一个新颖的基于Transformer的架构CounTR,利用注意力机制显式捕获图像块之间的相似性或与给定样本的相似性。
  2. 采用了两阶段训练机制,包括自监督预训练和有监督微调,有效提高了计数性能。
  3. 提出了一个简单、可扩展的流程来合成训练图像,这些图像包含大量实例或来自不同语义类别,以解决现有数据集中的长尾问题。
  4. 在大规模计数基准测试上进行了彻底的消融研究,证明了模型在零样本和少样本设置下达到了最先进的性能。

方法

  • 架构:提出了Counting TRansformer (CounTR),它包括视觉编码器、特征交互模块(FIM)和视觉解码器。
  • 两阶段训练:首先通过掩码图像重建 (MAE) 使用自我监督对模型进行预训练,然后对下游计数任务进行微调。
  • 数据合成:提出了一种新颖且可扩展的马赛克管道来合成训练图像,以解决现有对象计数数据集中长尾分布(即具有大量实例的图像往往不太频繁)的挑战。
  • 测试时归一化:对于少样本计数,引入了测试时归一化策略来校准输出密度图。

4.1 架构

  1. 视觉编码器(Visual Encoder):将输入图像和用户提供的样本映射到高维特征空间。
  2. 特征交互模块(Feature Interaction Module, FIM):通过一系列的标准Transformer解码器层来融合来自视觉编码器的信息。
  3. 视觉解码器(Visual Decoder):将特征交互模块的输出重新塑形为2D特征图,并恢复到输入图像的原始分辨率。

视觉编码器:由两部分组成:

  • ViT编码器:基于Vision Transformer(ViT),将输入图像分割成小块,并通过一系列Transformer编码层处理,输出为一系列D维的特征向量。
  • 样本编码器:对于少样本计数,使用轻量级卷积神经网络(CNN)来提取样本的视觉特征。
  • 在没有给出示例的零样本场景下,我们采用可学习的 [SPE] 标记作为替代来为模型提供线索。

特征交互模块:FIM由一系列标准的Transformer解码器层构成,其中图像特征作为查询(Query),样本特征或特殊学习到的标记(在零样本情况下)作为键(Key)和值(Value)。这样的设计使得FIM的输出维度与图像特征相同。

视觉解码器:解码器采用渐进式上采样设计,将向量序列首先重塑为密集的特征图,然后通过基于卷积神经网络的解码器进行处理。最终通过一个线性层作为密度回归器,输出单通道的密度热图。

4.2 两阶段训练方案 

  1. 自监督预训练:使用遮蔽图像建模(Masked Image Modeling)来训练视觉编码器,通过部分观察到的图像块来重建输入图像。
  2. 有监督微调:在预训练的基础上,使用训练集中的图像和样本对模型进行微调,以适应具体的计数任务。

第一阶段:自监督预训练:目的是利用图像内部的冗余信息,通过图像重建任务来学习有效的视觉表示,而不依赖于标注数据。

方法:

  • 遮蔽图像建模(Masked Image Modeling, MAE):这是一种自监督学习方法,通过随机遮蔽图像中的部分区域,然后训练模型预测这些被遮蔽区域的内容。这种方法可以看作是图像版本的BERT,即通过遮蔽部分图像并让模型预测这些部分来学习图像的表示。
  • ViT编码器训练:在CounTR模型中,首先使用MAE对基于Vision Transformer(ViT)的视觉编码器进行预训练。具体来说,将输入图像分割成固定大小的块,随机遮蔽一部分图像块,然后使用剩余的图像块作为输入,训练模型来重建整个图像。

第二阶段:在自监督预训练的基础上,通过有监督学习进一步优化模型,使其更好地适应特定的视觉对象计数任务。

方法:

  • 模型初始化:使用自监督预训练得到的ViT编码器的权重作为初始化,固定这些权重。
  • 任务特定训练:在固定的视觉编码器基础上,添加特征交互模块(FIM)和视觉解码器,然后使用标注的数据集(如FSC-147)对整个模型进行微调。模型的输入包括图像和用户给定的样本,输出为对应的密度图。
  • 损失函数:使用像素级均方误差(MSE)作为损失函数,计算模型预测的密度图和真实密度图之间的差异。

 4.3 可扩展的马赛克

解决通用视觉对象计数数据集中的长尾问题,即大多数图像只包含少量对象,而少量图像包含大量对象。方法如下:

  • 增加背景多样性:通过结合不同图像的区域,增加训练图像的背景多样性。
  • 合成更多实例:在单个图像中合成更多的对象实例,帮助模型更好地学习和泛化到包含大量对象的场景。

拼贴步骤涉及从单个或多个图像中裁剪区域,并将这些区域组合成一个新的图像。 

简单的裁剪和拼贴可能会在图像的边界处留下明显的人工痕迹。为了解决这个问题,在图像的边界处使用随机宽度的α通道混合,使图像的组合更加真实。

4.4 测试时间归一化

针对少样本计数场景提出的一种策略,用于在模型推理阶段校准输出密度图,以提高计数的准确性。 

在少样本计数任务中,用户提供的“样本”(即示例对象)对于模型预测图像中的目标对象至关重要。测试时归一化的目的是利用这些样本信息来校正模型在测试阶段的输出,确保计数的准确性。

  1. 样本位置的密度图预测:模型首先对输入图像进行预测,生成一个包含对象位置的密度图。

  2. 计算样本位置的平均预测值:在得到的密度图中,计算与用户提供的样本相对应的区域的平均预测值。这些区域通常由样本的边界框(bounding boxes)标识。

  3. 归一化处理:如果样本位置的平均预测值超过了预设的阈值(例如1.8),则将整个密度图的值除以该平均值进行归一化。这样做的原因是,如果模型在样本位置的预测值过高,可能意味着它将对象的一部分错误地计为多个实例,或者反之,将多个实例错误地计为一个。

  4. 最终计数:经过归一化处理后,通过累加密度图中的所有值来得到最终的对象计数。

在测试时间归一化中,如果密度图中样本位置的平均总和超过 1.8,则密度图的总和将除以该平均值以获得最终的预测。在测试时间裁剪中,如果至少有一个样本的边长小于10个像素,则将图像裁剪成9个片段,模型将分别处理这9幅图像。最终预测将是这 9 张图像的结果之和。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

shell 学习笔记:变量、字符串、注释

目录 1. 变量 1.1 定义使用变量 1.2 变量命名规则 1.3 只读变量 1.4 删除变量 1.5 变量类型 1.5.1 字符串变量 1.5.2 整数变量 1.5.3 数组变量 1.5.3.1 整数索引数组 1.5.3.2 关联数组 1.4 环境变量 1.5 特殊变量 2. 字符串 2.1 单引号字符串 2.2 双引…

【32项目】基于stm32f103c8t6WIFI远程监控智慧农业大棚(含完整代码)

目录 前言 设计背景 设计原理 所需材料 JW01二氧化碳传感器介绍 YL-69土壤湿度传感器介绍 PCB及原理图 部分代码(完整代码见文章末尾) 前言 随着农业现代化的发展,智慧农业的概念越来越受到重视。智慧农业利用物联网、大数据、人工智…

计算机网络 数据链路层2

ALOHA:想发就发 CSMA 载波监听多路访问协议 CS:载波监听,在发送数据之前检测总线上是否有其他计算机在发送数据 1-坚持CSMA:主机想发送消息,需要监听信道; 信道空闲则直接传输信息; 信道忙碌则一直监听,直…

【JavaWeb】JDBCDruidTomcat入门使用

本章使用技术版本: Tomcatv10.1.25 关于javaweb相关的其他技术,比如tomcat和maven,在我的主页记录了笔记,ajax我用的是本地笔记以后再考虑上传,前端三板斧我用的菜鸟教程文档 JDBC 初识 JDBC概念 JDBC 就是使用Jav…

【深度学习 transformer】使用pytorch 训练transformer 模型,hugginface 来啦

Hugging Face是一个致力于开源自然语言处理(NLP)和机器学习项目的社区。它由几个关键组件组成: Transformers:这是一个基于PyTorch的库,提供了各种预训练的NLP模型,如BERT、GPT、RoBERTa、DistilBERT等。它…

SEO之网站结构优化(十四-内部链接及权重分配3)

初创企业搭建网站的朋友看1号文章;想学习云计算,怎么入门看2号文章谢谢支持: 1、我给不会敲代码又想搭建网站的人建议 2、“新手上云”能够为你开启探索云世界的第一步 博客:阿幸SEO~探索搜索排名之道 7、锚文字分布及变化 前面…

WebGIS与WebGL是什么,两者之间的关系?

WebGL和 WebGlS 都是 web 技术领域的重要内容,特别是这几年webgis开发领域,和webgl打交道是必然的,常见的WebGL开发的基础上,比如二维的Leaflet、三维的Cesium也都是热门。 WebGL是一种基于 HTML5 Canvas 元素的 JavaScriptAPI&a…

RLHF(带有人类反馈的强化学习)初探

我的目标是,在决策游戏上学习某人风格,可以让人对战“带有某人风格”的AI,比如你可以在这里对战“sky风格的AI”,这样的效果。 我最开始受到的启发来源于xbox的广告《爸爸的幽灵车》,已故人在游戏中留下的速度记录的固定轨迹。 …

IOS17.0安装巨魔:TrollRestore巨魔发布

👻 TrollRestore 17.0 巨魔发布 15.0 - 16.7 RC(20H18)和17.0。 官网:https://trollrestore.com/ 下载:https://pan.metanetdisk.com/IOS/%E5%B7%A8%E9%AD%94%E7%8E%A9%E5%AE%B6/TrollRestore.com 使用:ht…

【数字人】Facevid2vid:用于视频会议的一次性自由视图说话头合成

论文:https://arxiv.org/pdf/2011.15126 github:GitHub - zhanglonghao1992/One-Shot_Free-View_Neural_Talking_Head_Synthesis: Pytorch implementation of paper "One-Shot Free-View Neural Talking-Head Synthesis for Video Conferencing" 一种新颖…

缓存分布式一致性问题

缓存一致性问题发生的原因,是在更新数据时数据库和缓存数据的不一致。我们要做到保证缓存的最终一致性。如果数据需要强一致性建议直接查询数据库。 双写模式 双写模式为先写数据库,在写缓存。 进来两个请求,先执行“请求1”的操作写入数据…

装WebVideoCreator记录

背景,需要在docker容器内配置WebVideoCreator环境,配置npm、node.js https://github.com/Vinlic/WebVideoCreatorWebVideoCreator地址:https://github.com/Vinlic/WebVideoCreator 配置环境,使用这个教程: linux下安…

Spring Boot-自定义banner

在 Spring Boot 应用中,你可以自定义启动时显示的 banner。这些 banner 可以包括图形、文字或者其他形式的标识。如图所示: 1. 使用 banner.txt 文件 默认情况下,Spring Boot 使用项目的 banner.txt 文件中的内容作为启动时的 banner。你可以…

文献阅读:对区域间皮层投射神经元命运多样性的时间控制

文献介绍 文献题目: 对区域间皮层投射神经元命运多样性的时间控制 研究团队: Denis Jabaudon(瑞士日内瓦大学) 发表时间: 2021-11-09 发表期刊: Nature 影响因子: 49.9(2021年&am…

关于电力系统的几个疑问

非电力专业人员对于电力中的某些知识不能够形成系统的认识,接下有空也有补充下这方面知识,吹水时候才有水可以吹,嘻嘻!这里舍不得删掉下边chatgpt这几张图片,暂时先保留着。因为一直有个因为在电网里边用发电端和用电端…

EmguCV学习笔记 C# 9.3 移动检测类

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…

爬取图片保存为pdf

本文章想借着爬虫给大家介绍一下图片转pdf,有需要的友友们可以看看参考参考,有帮助到友友的可以收藏+关注。下面以爬取初中7年级数学上册为例给大家演示一下。网址是这个 https://mp.weixin.qq.com/s?__bizMzAxOTE4NjI1Mw&mid2650214000&idx…

智慧医院是什么?建设智慧医院的关键步骤

智慧医院是什么? 智慧医院是一种新型的医疗机构,它利用先进的信息技术、数据分析和智能化系统,优化医院的管理和服务流程,提高医疗质量和效率。在智慧医院中,所有的运营和管理环节都可以通过数据驱动的方式来实现优化…

Trollspeed网速悬浮窗,精简且强大

我很喜欢iOS的界面UI,它的设计哲学是以人为本,简约而不简单。不过有时候,我也会觉得iOS简约过头了。人类是很没安全感的动物,获取的信息量足够多,我们才会感觉到安全。 在iOS16中,苹果加入了电量百分比显示…

一种快速edit的方法

后端的CURD,通过chatgpt很容易。 前端的CURD,编辑操作稍微有点复杂。 我一开始的想法是编辑的时候使用一个模态框,但是发现不舒服,为了快速实现,我决定点击编辑的时候,直接打开新的页面,这样开…