Learning To Count Everything

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 摘要
  • Abstract
  • 文献阅读:学习数一切东西
    • 1、研究背景
    • 2、提出方法
    • 3、模块详细
      • 3.1、多尺度特征提取模块
      • 3.2、密度预测模块
    • 4、损失函数
    • 5、性能对比
    • 6、贡献
  • 二、RNN代码学习
    • 2.1、什么是RNN
    • 2.2、RNN的处理过程
    • 2.3、RNN简单代码实现
  • 总结


摘要

本周主要阅读了CVPR文章,Learning To Count Everything。文章提出了一种名为FamNet的新型网络结构,是卷积神经网络(CNN)的改进版本。可以将FAMNet与CNN或其他类型的神经网络结合,形成更复杂的深度学习模型,以处理更复杂的图像识别任务。FamNet利用提供的示例对象和查询图像之间的相似性来估计密度图,从而实现物体计数。。除此之外,还学习学习了RNN代码的学习。

Abstract

This week, I mainly read the CVPR article Learning To Count Everything. The article proposes a new network structure called FamNet, which is an improved version of convolutional neural network (CNN). FamNet can be combined with CNN or other types of neural networks to form more complex deep learning models to handle more complex image recognition tasks. FamNet estimates a density map using the similarity between provided example objects and query images to achieve object counting. In addition, I also learned how to learn RNN code.


文献阅读:学习数一切东西

Title: Learning To Count Everything
Author:Viresh Ranjan, Udbhav Sharma, Thu Nguyen, Minh Hoai
From:2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)

1、研究背景

在面对密集场景或新类别时的计数问题。在现实生活中,我们经常会遇到需要计数的场景,如统计人群数量、货架上的物品数量或书架上的书本数等。然而,当目标物体数量庞大月分布密集时,传统的人工计数方法不仅效率低下,而且容易出错。因此,开发一种能够自动、准确地进行目标检测与计数的方法变得尤为重要。当前,大多数物体计数方面的研究主要关注单个类别的计数,且大多需要大量的标注数据进行训练。然而,在实际应用中,我们往往面临标注数据不足或需要计数的新类别不断出现的情况。因此,如何在小样本或新类别的情况下实现准确的目标检测与计数成为了一个亟待解决的问题。

2、提出方法

对于物体计数和分类的任务,通常需要大量的标注数据来进行训练。然而,获取这些标注数据是一个昂贵且耗时的过程。因此,文章提出了一种名为FamNet(Fast Adaptive Matching Network)的新方法,用于解决在只有少量标注实例的情况下进行物体计数的问题。FAMNet是一种深度学习模型,主要用于图像识别和计算机视觉任务。它是深度神经网络的一种变体,特别是卷积神经网络(CNN)的改进版本。可以将FAMNet与CNN或其他类型的神经网络结合,形成更复杂的深度学习模型,以处理更复杂的图像识别任务。FamNet利用提供的示例对象和查询图像之间的相似性来估计密度图,从而实现物体计数。
在这里插入图片描述

3、模块详细

3.1、多尺度特征提取模块

使用ImageNet预训练的网络进行特征提取,可以处理广泛的视觉类别。多尺度特征提取模块由来自预训练ResNet-50骨干网络的前四个块组成(这些块的参数在训练期间被冻结)。利用第三和第四个块处的卷积特征映射来表示图像。通过对第三和第四个Resnet-50块卷积特征映射执行ROI池化获得一个示例的多尺度特征。

3.2、密度预测模块

为了使密度预测模块不受视觉类别的影响,不直接使用从特征提取模块获得的特征进行密度预测。相反,只使用范例特征和图像特征之间的相关映射作为密度预测模块的输入。为了解释在不同尺度下感兴趣的对象,将样本特征缩放到不同尺度,并将缩放后的样本特征与图像特征关联,从而获得多个相关map,每个尺度一个。在实验中,使用0.9和1.1的scales,以及原始的scales。将相关图串联并送入密度预测模块。
密度预测模块由5个卷积块和3个上采样层组成,分别位于第一、第二和第三个卷积层之后。最后一层是1*1的卷积层预测2维密度图,其大小与输入图像一致。
在这里插入图片描述

4、损失函数

  • Min-Count loss:每个框对应位置的物体数量应该至少是1个,若小于1个就产生损失。大于等于1不产生损失,框可能包含超过一个物体。
    在这里插入图片描述

  • Perturbation Loss:从目标跟踪的研究借用correlation filter而来的。给定一个需要跟踪的物体以及它的标注框,当一个框位于标注框的位置有最大的响应值,当这个框偏离了标注框,它的响应值根据距离指数型下降。
    在这里插入图片描述

5、性能对比

最终的性能对比结果显示,FamNet在计数任务上的表现优于其他几种方法。具体来说,FamNet在平均绝对误差(MAE)和均方根误差(RMSE)两个评价指标上均取得了最佳结果。此外,FamNet还可以通过增加示例数量来提高计数性能。在与其他几种基线方法的比较中,FamNet也表现出色,尤其是在处理未见过的新类别时。在CARPK数据集上的计数汽车性能测试中,FamNet的表现也优于其他方法。总之,FamNet是一种有效的多目标计数方法,具有良好的泛化能力。
在这里插入图片描述

6、贡献

文章提出了FamNet(Family of Neural Networks)方法,其是一种用于图像识别和计算机视觉任务的神经网络框架。它旨在通过构建一系列相关的神经网络模型来解决不同但相关的任务,这些模型共享一些基础结构和参数,从而提高效率和性能。在FamNet中,不同任务之间的模型共享部分网络层,这使得模型能够学习到跨任务的有用特征表示。通过共享网络层,FamNet可以减少计算量,加速模型训练,并在多个任务之间实现知识迁移。

二、RNN代码学习

2.1、什么是RNN

循环神经网络(Recurrent Neural Network,RNN)是一种深度学习模型,用于处理序列数据。RNN的核心特点是具有记忆单元,能够捕捉序列数据中的长期依赖关系。在RNN中,神经网络单元按照时间序列连接,每个单元的输出作为下一个单元的输入,从而实现信息的循环传递。RNN的应用领域非常广泛,包括自然语言处理、语音识别、机器翻译、时间序列预测等。常见的RNN变种包括长短时记忆网络(LSTM)和门控循环单元(GRU),它们通过引入不同的机制来改善RNN的训练和性能。

2.2、RNN的处理过程

  1. 对数据集进行向量化表示,例如使用词向量或one-hot编码。
  2. 前向过程:定义一个输出向量,该网络由n个RNN模块组成。将向量化的数据与一个矩阵W1相乘得到输出out1,将上一个RNN模块的输出out与一个矩阵W2相乘得到out2,将out1与out2相加得到当前RNN模块的输出out3,给out3施加一个激活函数得到out4,out4即为当前RNN模块的输出。
  3. 反向传播:利用梯度下降法对所有的RNN模块的W1和W2进行更新。

2.3、RNN简单代码实现

class SimpleRNN(nn.Module):  def __init__(self, input_size, hidden_size, output_size):  super(SimpleRNN, self).__init__()  self.hidden_size = hidden_size  self.rnn = nn.RNN(input_size, hidden_size, batch_first=True)  self.fc = nn.Linear(hidden_size, output_size)  def forward(self, x):  # 初始化隐藏状态  h0 = torch.zeros(1, x.size(0), self.hidden_size).to(x.device)   # 前向传播RNN  out, _ = self.rnn(x, h0)  # 获取最后一个时间步的输出  out = self.fc(out[:, -1, :])  return out

总结

本周主要阅读了CVPR文章,Learning To Count Everything。文章提出了一种名为FamNet的新型网络结构,是卷积神经网络(CNN)的改进版本。可以将FAMNet与CNN或其他类型的神经网络结合,形成更复杂的深度学习模型,以处理更复杂的图像识别任务。FamNet利用提供的示例对象和查询图像之间的相似性来估计密度图,从而实现物体计数。。除此之外,还学习学习了RNN代码的学习。

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

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

相关文章

城管智慧执法系统源码,基于微服务+java+springboot+vue开发

城管智慧执法系统源码,基于微服务javaspringbootvue开发 城管智慧执法系统源码有演示,自主研发,功能完善,正版授权,可商用上项目。 一套数字化的城管综合执法办案系统源码,提供了案件在线办理、当事人信用…

Platypus 一种集中式的央行数字货币方案

集中式的CBDC,混合使用账户模型和UTXO模型。 角色分类 中央银行:发行货币,交易验证,公开交易日志,防止双花。 不是完全受信任的,假定为会遵守监管要求,但可能会破坏交易隐私,即获…

正弦实时数据库(SinRTDB)的使用(9)-有损压缩

前文已经将正弦实时数据库的使用进行了介绍,需要了解的可以先看下面的博客: 正弦实时数据库(SinRTDB)的安装 正弦实时数据库(SinRTDB)的使用(1)-使用数据发生器写入数据 正弦实时数据库(SinRTDB)的使用(2)-接入OPC DA的数据 正弦实时数据库(SinRTDB)…

Kafka学习之:mac 上基础使用 python 来使用 kafka 的生产者和消费者进行数据处理

文章目录 前提python 环境配置Kafka 生产消费者模型生产者 producer检查当前存在的所有 topic / 是否自动创建 topic为什么 producer 要通过 key, value 来发布数据键(Key)值(Value) 消费者 consumerconsumer 得到的 message 有哪…

MES系统怎么解决车间生产调度难的问题?

MES系统三个层次 1、MES决定了生产什么,何时生产,也就是说它使公司保证按照订单规定日期交付准确的产品; 2、MES决定谁通过什么方式(流程)生产,即通过优化资源配置,最有效运用资源; …

关于SVG格式图片实现室内地图

SVG格式图片 可缩放矢量图形(Scalable Vector Graphics,SVG)基于 XML 标记语言,用于描述二维的矢量图形。 作为一个基于文本的开放网络标准,SVG 能够优雅而简洁地渲染不同大小的图形,并和 CSS、DOM、JavaScript 和 SMIL 等其他网络标准无缝衔接。本质上,SVG 相对于图像…

react学习总结(二)之案例分享

一.项目框架的搭建 1./src/pages下建不同的页面Header.jsx,About.jsx,Home.jsx, Message.jsx,News.jsx,Detail.jsx Header.jsx import React from react import { useNavigate } from react-router-domexport defau…

C++多线程:线程的创建、join、detach、joinable方法(二)

1、线程的开始与结束 程序运行起来,生成一个进程,该进程所持有的主线程开始自动运行,main主线程运行完所有的代码从main函数中返回表示整个进程运行完毕,标志着主线程和进程的死亡,等待操作系统回收资源,因…

nginx如何清理页面缓存

在 Nginx 中,清理页面缓存通常涉及配置缓存头以控制缓存行为,或者使用外部工具或机制来清除缓存。以下是一些建议来管理和清理 Nginx 的页面缓存: 配置缓存头: Nginx 本身不直接提供缓存机制,但可以通过配置 proxy_cac…

安全算法 - 国密算法

国密算法是中国自主研发的密码算法体系,包括对称加密算法、非对称加密算法和哈希算法。其中,国密算法采用SM4作为对称加密算法,SM2作为非对称加密算法,以及SM3作为哈希算法。国密算法在信息安全领域具有重要意义和广泛应用&#x…

Cocos Creator 常见问题记录

目录 问题1、精灵图九宫格,角度不拉伸 问题2、BlockInputEvents 防止透屏 问题1、精灵图九宫格,角度不拉伸 点击编辑,拖拽到可变区域 问题2、BlockInputEvents 防止透屏

【独立开发前线】Vol.26 【独立开发产品】吉光卡片-让你的文字变得酷炫起来

今天给大家分享一下 独立开发前线 社区成员张小吉 的作品 吉光卡片; 这是一款iOS的APP,下载:吉光卡片,主要功能是帮你制作酷炫的文字卡片,用精美的卡片让你的文字生动起来。 展示效果如下: 你可以用它制作…

【公示】2023年度青岛市级科技企业孵化器拟认定名单

根据《青岛市科技企业孵化器管理办法》(青科规〔2023〕1号)(以下简称《管理办法》)、《关于开展2023年度市级科技企业孵化器认定申报工作的通知》,经申报受理、区市推荐、形式审查、专家评审及现场核查等程序&#xff…

为何keil编译信息显示data使用量不是整数

在使用Keil软件进行嵌入式系统开发时,编译后显示的数据使用量(Data Usage)可能会以小数形式显示。这种情况通常是由以下几个原因造成的: 1.内存对齐:为了提高内存访问效率,编译器会对数据进行对齐处理。例…

【笔记】动⼿学深度学习(花书)|| Aston Zhang Mu Li Zachary C. LiptonAlexander J. Smola

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 前言 第一章 深度学习简介 第二章 P 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录前言本书…

BasicVSR++模型转JIT并用c++libtorch推理

BasicVSR模型转JIT并用clibtorch推理 文章目录 BasicVSR模型转JIT并用clibtorch推理安装BasicVSR 环境1.下载源码2. 新建一个conda环境3. 安装pytorch4. 安装 mim 和 mmcv-full5. 安装 mmedit6. 下载模型文件7. 测试一下能否正常运行 转换为JIT模型用c libtorch推理效果 安装Ba…

使用docker 安装oracle 11g 挂载数据目录并修改SID centos-7

建议:建议使用其它系统去装ubuntu或Rocky(因为centos已经停止维护) 1、安装docker 这里就不细写了,可以查看清华镜像源或者阿里镜像源 清华:https://mirrors.tuna.tsinghua.edu.cn/help/docker-ce/ 阿里:ht…

2434. 使用机器人打印字典序最小的字符串

点击跳转题目 本题学到两点: 1.初始化数组,全部为0的简单写法。之前都是 int arr[26]; memset(arr,0,sizeof(arr));2.if条件中的&&部分左右顺序不能颠倒。颠倒报错,之前一直没重视。 思路: 遍历s,push当前字…

[c++]类和对象常见题目详解

本专栏内容为:C学习专栏,分为初阶和进阶两部分。 通过本专栏的深入学习,你可以了解并掌握C。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:C 🚚代码仓库:小小unicorn的代码仓库&…

2024.03.19 校招 实习 内推 面经

绿*泡*泡VX: neituijunsir 交流*裙 ,内推/实习/校招汇总表格 1、校招 | RoboSense 速腾聚创2024届春招启动(内推) 校招 | RoboSense 速腾聚创2024届春招启动(内推) 2、实习 | 百度智能驾驶事业群组 202…