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

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.lryc.cn/news/328295.html

相关文章:

  • 大语言模型(LLM)token解读
  • 【Micro 2014】NoC Architectures for Silicon Interposer Systems
  • 《极客时间 - 左耳听风》01 | 程序员如何用技术变现?(上)【文章笔记 + 个人思考】
  • Typora结合PicGo + Github搭建个人图床
  • 【JavaWeb】Day27.Web入门——Tomcat介绍
  • 怎么更新sd-webui AUTOMATIC1111/stable-diffusion-webui ?
  • Apache Iceberg最新最全面试题及详细参考答案(持续更新)
  • 从TCP/IP协议到socket编程详解
  • uniapp开发小程序遇到的问题,持续更新中
  • C++经典面试题目(十一)
  • 设计模式(6):桥接模式
  • Java切面编程
  • 微服务demo(二)nacos服务注册与集中配置
  • 面试题库二
  • HarmonyOS实战开发-如何实现一个简单的电子相册应用开发
  • FFmpeg将绿幕视频处理成透明视频播放
  • 【2024系统架构设计】案例分析- 4 嵌入式
  • 基于javaweb(springboot+mybatis)生活美食分享平台管理系统设计和实现以及文档报告
  • 【MySQL探索之旅】MySQL数据表的增删查改——约束
  • 【Linux】体验一款开源的Linux服务器运维管理工具
  • STM32 软件I2C方式读取AS5600磁编码器获取角度例程
  • [WTL/Win32]_[初级]_[如何设置ListView的列宽不出现水平滚动条]
  • Mac更换JDK版本
  • Day55:WEB攻防-XSS跨站CSP策略HttpOnly属性Filter过滤器标签闭合事件触发
  • root_fs文件系统结构分析和内核加载流程
  • macOS系统配置RUST开发环境
  • Android 15全面解读:性能飙升、隐私守护与智能生活新纪元
  • Java项目:80 springboot师生健康信息管理系统
  • 云服务器配置 docker-spark
  • Matlab之求直角坐标系下两直线的交点坐标