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的处理过程
- 对数据集进行向量化表示,例如使用词向量或one-hot编码。
- 前向过程:定义一个输出向量,该网络由n个RNN模块组成。将向量化的数据与一个矩阵W1相乘得到输出out1,将上一个RNN模块的输出out与一个矩阵W2相乘得到out2,将out1与out2相加得到当前RNN模块的输出out3,给out3施加一个激活函数得到out4,out4即为当前RNN模块的输出。
- 反向传播:利用梯度下降法对所有的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代码的学习。
相关文章:
Learning To Count Everything
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 摘要Abstract文献阅读:学习数一切东西1、研究背景2、提出方法3、模块详细3.1、多尺度特征提取模块3.2、密度预测模块 4、损失函数5、性能对比6、贡献 二…...
大语言模型(LLM)token解读
1. 什么是token? 人们经常在谈论大模型时候,经常会谈到模型很大,我们也常常会看到一种说法: 参数会让我们了解神经网络的结构有多复杂,而token的大小会让我们知道有多少数据用于训练参数。 什么是token?比…...
【Micro 2014】NoC Architectures for Silicon Interposer Systems
NoC Architectures for Silicon Interposer Systems 背景和动机 硅中介层 主要内容 基于interposer的多核 NOC架构 试验评估 方法 NoC Architectures for Silicon Interposer Systems Natalie Enright Jerger, University of Toronto Gabriel H. Loh AMD Research 硅中介层…...
《极客时间 - 左耳听风》01 | 程序员如何用技术变现?(上)【文章笔记 + 个人思考】
《极客时间 - 左耳听风》 原文链接 :https://time.geekbang.org/column/intro/100002201?tabcatalog 备注:加粗部分为个人思考 程序员用自己的技术变现是天经地义的事情。写程序是一门手艺活,程序员作为手艺人完全可以不依赖任何公司或者其他…...
Typora结合PicGo + Github搭建个人图床
目录 一 、GitHub仓库设置 1、新建仓库 2、创建Token 并复制保存 二、PicGo客户端配置 1、下载 & 安装 2、配置图床 三、Typora配置 一 、GitHub仓库设置 1、新建仓库 点击主页右上角的 号创建 New repository 填写仓库信息 2、创建Token 并复制保存 点击右上角…...
【JavaWeb】Day27.Web入门——Tomcat介绍
目录 WEB服务器-Tomcat 一.服务器概述 二.Web服务器 三.Tomcat- 基本使用 1.下载 2.安装与卸载 3.启动与关闭 4.常见问题 四.Tomcat- 入门程序 WEB服务器-Tomcat 一.服务器概述 服务器硬件:指的也是计算机,只不过服务器要比我们日常使用的计算…...
怎么更新sd-webui AUTOMATIC1111/stable-diffusion-webui ?
整个工程依靠脚本起来的: 可直接到stable-diffusion-webui子目录执行: git pull更新代码完毕后,删除venv的虚拟环境。 然后再次执行webui.sh,这样会自动重新启动stable-diffusion-webui....
Apache Iceberg最新最全面试题及详细参考答案(持续更新)
目录 1. 描述Apache Iceberg的架构设计和它的主要组件? 2. Iceberg如何处理数据的版本控制和时间旅行?...
从TCP/IP协议到socket编程详解
我的所有学习笔记:https://github.com/Dusongg/StudyNotes⭐⭐⭐ 文章目录 1 网络基础知识1.1 查看网络信息1.2 认识端口号1.3 UDP1.4 TCP1.4.1 确认应答机制1.4.2 TCP三次握手/四次挥手为什么是三次握手为什么是四次挥手listen 的第二个参数 backlog—— 全…...
uniapp开发小程序遇到的问题,持续更新中
一、uniapp引入全局scss 在App.vue中引入uni.scss <style lang"scss">/* #ifndef APP-NVUE */import "uni.scss";/* #endif */ </style>注意:nvue页面的样式在编译时,有很多样式写法被限制了,容易报错。所…...
C++经典面试题目(十一)
1. final和override关键字 在C中,final 和 override 是两个用于类继承和成员函数重写的关键字,它们主要在面向对象编程的上下文中使用,以增强代码的可读性和安全性。 1. final 关键字 final 关键字主要有两种用法: 用于类&…...
设计模式(6):桥接模式
一.桥接模式核心要点 处理多层继承结构,处理多维度变化的场景,将各个维度设计成独立的继承结构,使各个维度可以独立的扩展在抽象层建立关系。 \color{red}{处理多层继承结构,处理多维度变化的场景,将各个维度设计成独立…...
Java切面编程
1.切面编程 无需改变原有类的情况下对业务功能实现扩展或增强。 2.目前最流行的AOP框架有两个,分别为Spring AOP 和 AspectJ。 3.Spring AOP使用纯java实现,不需要专门的编译过程和类加载器,在运行期间通过代理方式向目标类织入增强的代码。 …...
微服务demo(二)nacos服务注册与集中配置
环境:nacos1.3.0 一、服务注册 1、pom: 移步spring官网https://spring.io,查看集成Nacos所需依赖 找到对应版本点击进入查看集成说明 然后再里面找到集成配置样例,这里只截一张,其他集成内容继续向下找 我的&#x…...
面试题库二
1、简述TCP/IP的三次握手和四次挥手 TCP(Transmission Control Protocol)是一种可靠的、面向连接的传输层协议,用于在网络中传输数据。在建立连接和断开连接时,TCP 使用了三次握手和四次挥手来确保通信的可靠性和正确性。 三次握手…...
HarmonyOS实战开发-如何实现一个简单的电子相册应用开发
介绍 本篇Codelab介绍了如何实现一个简单的电子相册应用的开发,主要功能包括: 实现首页顶部的轮播效果。实现页面跳转时共享元素的转场动画效果。实现通过手势控制图片的放大、缩小、左右滑动查看细节等效果。 相关概念 Swiper:滑块视图容…...
FFmpeg将绿幕视频处理成透明视频播放
怎么在网页端插入透明视频呢,之前在做Web3D项目时,使用threejs可以使绿幕视频透明显示在三维场景中,但是在网页端怎么让绿幕视频透明显示呢? 如图上图,视频背景遮挡住后面网页内容 想要如下图效果 之前有使用过ffmpeg…...
【2024系统架构设计】案例分析- 4 嵌入式
目录 一 基础知识 二 真题 一 基础知识 1 基本概念 ◆系统可靠性是系统在规定的时间内及规定的环境条件下,完成规定功能的能力,也就是系统无故障运行的概率。或者,可靠性是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。...
基于javaweb(springboot+mybatis)生活美食分享平台管理系统设计和实现以及文档报告
基于javaweb(springbootmybatis)生活美食分享平台管理系统设计和实现以及文档报告 博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 …...
【MySQL探索之旅】MySQL数据表的增删查改——约束
📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案
在移动互联网营销竞争白热化的当下,推客小程序系统凭借其裂变传播、精准营销等特性,成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径,助力开发者打造具有市场竞争力的营销工具。 一、系统核心功能架构&…...
《Docker》架构
文章目录 架构模式单机架构应用数据分离架构应用服务器集群架构读写分离/主从分离架构冷热分离架构垂直分库架构微服务架构容器编排架构什么是容器,docker,镜像,k8s 架构模式 单机架构 单机架构其实就是应用服务器和单机服务器都部署在同一…...
