P2PNet-Soy原理梳理

news2024/12/24 4:02:41

前文总结了P2PNet源码以及P2PNet-Soy源码实现方法,相关链接如下:

人群计数P2PNet论文:[2107.12746] Rethinking Counting and Localization in Crowds:A Purely Point-Based Framework (arxiv.org)

p2p人群计数源码:GitHub - TencentYoutuResearch/CrowdCounting-P2PNet: The official codes for the ICCV2021 Oral presentation "Rethinking Counting and Localization in Crowds: A Purely Point-Based Framework"

p2p人群计数源码复现过程:

crowdcountingp2p代码复现_追忆苔上雪的博客-CSDN博客

crowdcountingp2p代码复现(续)_追忆苔上雪的博客-CSDN博客

 P2P大豆计数论文:https://spj.science.org/doi/10.34133/plantphenomics.0026

P2P大豆计数论文阅读:论文阅读--考虑特征水平的改进的基于田间的大豆种子计数和定位_追忆苔上雪的博客-CSDN博客 

 P2P大豆计数复现:p2p大豆计数模型_追忆苔上雪的博客-CSDN博客

现在梳理一下P2PNet-Soy原理

1.P2PNet-Soy流程图

图3.VGG16是提取特征的基本框架,首先融合高层次和低层次特征,并将其添加到原始图像中,以进行后续定位和计数。

2.提高模型性能的几种策略

(1)使用k-d树这一无监督聚类算法,用于找到大豆种子位置相近的预测中心,提高最终预测的准确性; (Physically based rendering: From theory to implementation, Pharr M, et al.)

图4.原始P2PNet的性能。(A) 没有k-d树后处理。(B) 用k-d树对大豆种子进行后处理,对单株进行计数。

其中1:1line代表1:1对角线,Fitting line代表最小最小二乘拟合线;

R^2R^2 ≤1,且R^2 越接近1越好!

原始P2PNet无法去除这些紧密定位的预测(图5A),导致这些种子的相应真实位置周围出现密集的“crowded”。通过直接应用k-d树作为后处理过程,MAE的值急剧下降至14.40,并与它们的人工标注具有0.85的改进相关性(图4B)。然而,在这些预测中遗漏了一些尺寸较大的种子(图4)。

图5.在从测试数据集中随机选择的单个植物上预测大豆种子数量时,原始P2PNet(A)未经后处理和(B)经后处理之间的比较。虚线框中的图像在实心框内的图像部分中进行缩放。

(2)利用高级特征和低级特征的组合充分探索大豆种子计数的模型潜力;

高级特征包含全局上下文感知信息( global-context-aware information)

低级特征可以捕捉到更详细的空间结构信息(spatial structural information)

(Pyramid feature attention network for saliency detection. Zhao T, et al.)

(3)使用膨胀率为1、3、5和7的空洞卷积(atrous convolution )来覆盖不同级别特征上的不同感受野,从而获得

尺度不变特征,以应对种子大小的变化。

(4)应用空间注意力(spatial attention)来降低低层次特征的噪声水平,并采用通道注意力(channel

attention)来突出大豆种子的语义信息。利用空间和通道注意力有效地对目标种子与其背景之间的边界信息进行优先级排序,从而获得更好的计数性能。

(5)直接将原始图像作为参考,将整个框架格式化为残差学习,以提高模型性能。

图6. P2PNet-Soy大豆在预测大豆单株种子数量方面的性能。

图7.通过所提出的P2PNet-Soy模型预测大豆种子的一个例子。右侧虚线框中的图像是左侧图像的实心框内的图像的放大部分。

图8. 优化的P2PNet大豆模型(A)和原始P2PNet模型(B)与随机选择的现场图像的后处理的比较。虚线框中的图像在实心框内的图像部分中进行缩放。

3.P2PNet-Soy消融实验

尽管性能有所改善,但所提出的P2PNet-Soy模型仍然高度依赖于后处理,因此进行了消融研究,以进一步阐述每种策略的不同贡献,见下表

表中:

        H代表高级特征high-level features: VGG16-conv3, VGG16-conv4, and VGG16-conv5;

        L代表低级特征low-level features: VGG16-conv1 and VGG16-conv2;

        SAL代表低级特征空间注意力spatial attention on low-level features;

        CAH代表高级特征的通道注意力channel-wise attention on high-level features;

        MSMR代表多尺度多感受野特征提取;

        OI代表原始图original image;

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

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

相关文章

商品秒杀系统整理

1、使用redis缓存商品信息 2、互斥锁解决缓存击穿问题,用缓存空值解决缓存穿透问题。 3、CAS乐观锁解决秒杀超卖的问题 4、使用redission实现一人一单。(分布式锁lua)脚本。 5、使用lua脚本进行秒杀资格判断(将库存和用户下单…

三维模型3DTile格式轻量化压缩在移动智能终端应用方面的重要性分析

三维模型3DTile格式轻量化压缩在移动智能终端应用方面的重要性分析 随着移动智能终端设备的不断发展和普及,如智能手机、平板电脑等,以及5G网络技术的推广应用,使得在这些设备上频繁使用三维地理空间数据成为可能。然而,由于这类数…

协议-TCP协议-基础概念02-TCP握手被拒绝-内核参数-指数退避原则-TCP窗口-TCP重传

协议-TCP协议-基础概念02-TCP握手被拒绝-TCP窗口 参考来源: 《极客专栏-网络排查案例课》 TCP连接都是TCP协议沟通的吗? 不是 如果服务端不想接受这次握手,它会怎么做呢? 内核参数中与TCP重试有关的参数(两个) -net.ipv4.tc…

umi+React项目引入字体文件

1. 在public下新建文件夹fonts,将字体文件复制到该文件夹下 2. 在public文件下新建font.css文件 font-face {font-family: YouSheBiaoTiHei;src: url(./fonts/YouSheBiaoTiHei-2.ttf); }3. 在app.ts里面加上导入语句即可引入该字体 import ../public/font.css;

似然和概率

前言 高斯在处理正态分布的首次提出似然,后来英国物理学家,费歇尔 概率是抛硬币之前,根据环境推断概率 似然则相反,根据结果推论环境 P是关于x的函数,比如x为正面朝上的结果,或者反面朝上的结果&#xf…

【计算机网络】基于UDP的简单通讯(服务端)

文章目录 流程代码实现加载库创建套接字绑定ip接收数据发送数据关闭套接字、卸载库 流程 我们UDP通讯就像是在做小买卖,主要就是进行收发数据 实现UDP协议的服务端需要经过五步操作: 加载库(Ws2_32.lib)创建套接字&#xff08…

vue组件的通信

文章目录 组件通信父传子父传子:通过prop来进行通信 子传父先在父组件用注册方法 , 在子组件触发使用 emit 函数 组件间通信-平行组件使用事件总线的方法,也就是把整个vue提出来,当为一个事件总线 其他组件通信父组件 provide来提供变量,然后再子组件中通过inject来注入变量 组…

Java之IO流概述

1.1 什么是IO 生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了ctrls ,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里。那么数据都是在哪些设备上的呢?键…

FlashDuty Changelog 2023-09-21 | 自定义字段和开发者中心

FlashDuty:一站式告警响应平台,前往此地址免费体验! 自定义字段 FlashDuty 已支持接入大部分常见的告警系统,我们将推送内容中的大部分信息放到了 Lables 进行展示。尽管如此,我们用户还是会有一些扩展或定制性的需求…

【yolov5】detect.py

执行方法: 代码 # YOLOv5 🚀 by Ultralytics, AGPL-3.0 license """ Run YOLOv5 detection inference on images, videos, directories, globs, YouTube, webcam, streams, etc.Usage - sources:$ python detect.py --weights yolov5s.pt --source …

面经分享 | 某康安全开发工程师

本文由掌控安全学院 - sbhglqy 投稿 一、反射型XSS跟DOM型XSS的最大区别 DOM型xss和别的xss最大的区别就是它不经过服务器,仅仅是通过网页本身的JavaScript进行渲染触发的。 二、Oracle数据库了解多吗 平常用的多的是MySQL数据库,像Oracle数据库也有…

PHP脚本导出MySQL数据库

背景:有时候需要同步数据库的表结构和部分数据,同步全表数据非常大,也不适合。还有一个种办法是使用数据库的dump命令执行备份,无法进入服务器?没有权限怎么办? 这里只要能访问服务器中的 information_sch…

前端项目练习(练习-003-webpack-01)

学习webpack前,首先,创建一个web-003项目,内容和web-002一样。(注意将package.json中的name改为web-003) 想想,我们开发Java 的时候,Maven帮我们做的主要是编译,打包等等内容。开发前…

org.quartz.SchedulerConfigException: DataSource name not set.

解决: JobStore配置 原: prop.put("org.quartz.jobStore.class", "org.quartz.impl.jdbcjobstore.JobStoreTX"); 改为: prop.put("org.quartz.jobStore.class", "org.springframework.scheduling.qu…

论文笔记:ST2Vec: Spatio-Temporal Trajectory SimilarityLearning in Road Networks

2022 KDD 1 intro 现有的轨迹相似性学习方案强调空间相似性而忽视了时空轨迹的时间维度,这使得它们在有时间感知的场景中效率低下 如上图,在拼车过程中,T1表示司机计划的行程,T2和T3是两个想要搭车的人。T1和T2在空间上更接近&am…

Mac 苹果系统使用nvm use 切换node版本号

windows在使用 nvm 管理并切换 node 时,通过 nvm use 切换node版本会全局切换。也就是node版本号切换后只要不手动更改就会一直保持当前版本号不变。 但博主最近换了苹果系统后,发现苹果系统不能全局更改node版本。我在 vscode中使用nvm use x.x.x之后&…

Django(21):使用Celery任务框架

目录 Celery介绍Celery安装Celery使用项目文件和配置启动Celery编写任务调用异步任务查看任务执行状态及结果 设置定时和周期性任务配置文件添加任务Django Admin添加周期性任务启动任务调度器beat Flower监控任务执行状态Celery高级用法与注意事项给任务设置最大重试次数不同任…

东郊到家app小程序公众号软件开发预约同城服务系统成品源码部署

东郊到家app系统开发,东郊到家软件定制开发,东郊到家小程序APP开发,东郊到家源码定制开发,东郊到家模式系统定制开发 一、上门软件介绍 1、上门app是一家以推拿为主项,个人定制型的o2o平台,上门app平台提…

Nginx的反向代理、动静分离、负载均衡

反向代理 反向代理是一种常见的网络技术,它可以将客户端的请求转发到服务器群集中的一个或多个后端服务器上进行处理,并将响应结果返回给客户端。反向代理技术通常用于提高网站的可伸缩性和可用性,并且可以隐藏真实的后端服务器地址。 #user…

泡泡玛特城市乐园开园在即,知名潮玩IP落地北京朝阳

今年以来,文旅产业成为亮眼消费赛道,大IP主题乐园再次受到市场关注。优质IP可以为园区引流,帮助乐园摆脱门票经济,平衡收入结构。 国内“潮玩第一股”泡泡玛特近日宣布,国内首个潮玩行业沉浸式IP主题乐园——泡泡玛特…