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

针对低分辨率或小目标的卷积-SPDConv

针对低分辨率或小目标的卷积-SPDConv

  • 摘要
  • 引言
  • A New Building Block:SPD-Conv
  • 附录
    • 代码:

摘要

卷积神经网络在许多计算机视觉任务中取得了巨大成功。然而,在图像低分辨率目标较小任务上,他们的性能迅速下降。在本文中,我们指出,这根源于现有CNN架构中存在的一个有缺陷但常见的设计,即使用strided convolution和/或pooling layers,这导致细粒度信息的丢失和不够有效的特征表示的学习。为此,我们提出了一个新的CNN构建快, 称为SPD-Conv,取代每个strided convolution层和每个pool层(因为完全消除他们)。SPD-Conv由一个space-to-depth(SPD)层和一个non-strided convolution层组成,可以应用于大多数CNN架构。我们将这种新设计解释为两个最具代表性的计算机视觉任务:目标检测和图像分类,然后,我们通过将SPD-Conv应用于YOLOv5和ResNet创建了新的CNN架构。
代码地址: https://github.com/LabSAINT/SPD-Conv

引言

自从AlexNet提出以来,卷积神经网络在许多计算机视觉任务中表现出色。然而,所有这些CNN模型在训练和推断中都需要高质量的输入,例如:AlexNet最初是在227 X 227的清晰图片上进行训练和评估的,但是将图像分辨率降低为1/4和1/8后,其分类的准确性分别下降了14%和30%,类似也使用于VGG和ResNet,在目标检测的情况下,小目标检测是一项非常具有挑战性的任务,因为较小的目标本身分辨率较低,并且对于模型学习而言,上下文信息也受限制。此外,他们通常于同一图像中的大对象共存,大对象往往也在特征学习过程中占主导地位,从而使得小对象无法被检测到。
本文认为,现有CNN中存在的一个缺陷但常见的设计导致了性能下降,即,在CNN架构的早期层使用步幅卷积或池化,这种设计的不利影响通常不会表现出来,因为大多数研究的情况都是友好的,图像具有良好的分辨率,对象的大小适中。因此,存在着大量的冗余像素信息可以被卷积或者池化方便的跳过,模型仍然可以学习到良好的特征。然而,在更困难的任务中,当图像模糊或对象较小时,冗余信息的奢侈假设不在成立,当前的设计开始遭受详细信息和学习特征不足的损失。
为了解决这一问题,我们提出了一种CNN的新构建快,称为SPD-Conv 完全替代了下采样和池化。SPD-Conv是一个空间到深度层,仅跟随一个非步幅卷积层。SPD层对特征图X进行将采样,当保留了通道维度中的所有信息,因此没有信息损失,我们受到了图像转换技术的启发,该技术在将原始图像馈送到神经网络之前对其进行重新缩放,但我们将其广泛推广到网络内部和整个网络中的特征图的将采样,此外,我们在每个SPD之后添加了一卷积操作,使用科学系的参数减少通道数量,我们提出的方法即通用又统一,即SPD可以应用于大多数CNN架构,并且以相同的方式替代了步幅卷积和池化。
在这里插入图片描述

A New Building Block:SPD-Conv

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
论文地址:https://arxiv.org/pdf/2208.03641v1.pdf
在这里插入图片描述

附录

代码:

# SPD-Conv
import torch
import torch.nn as nn
class Spd(nn.Module):def __init__(self,dimension=1):super().__init__()self.d = dimensiondef forward(self,x):return torch.cat([x[...,::2,::2],x[...,1::2,::2],x[...,::2,1::2],x[...,1::2,1::2]],1)
data = torch.zeros(3,64,640,640)
con = Spd()
con(data).shape

在这里插入图片描述

相关文章:

针对低分辨率或小目标的卷积-SPDConv

针对低分辨率或小目标的卷积-SPDConv 摘要引言A New Building Block:SPD-Conv附录代码: 摘要 卷积神经网络在许多计算机视觉任务中取得了巨大成功。然而,在图像低分辨率或目标较小任务上,他们的性能迅速下降。在本文中,我们指出&…...

vue基础-vue监听当前屏幕大小做不同的操作

文章目录 前言一、代码如下:总结 前言 在vue项目开发过程中,有个需求,就是当屏幕大于1024时,我们默认为PC模式。小于1024时,我们默认为H5模式。但是有的界面我们想在PC和H5上面展示不同的数据,请求不同的接…...

Unity框架学习--3

单例模式基类 构造函数私有化,防止外部创建对象 提供一个属性给外部访问,这个属性就相当于是这个类的唯一对象 分为懒汉模式和饿汉模式 不继承MonoBehaviour的单例模式 public static MyUiManager Instance {get{if (instance null){instance new …...

ARMday2

.text .global _start _start:mov r0,#0x1mov r1,#0x0sum:cmp r0,#0x64bhi stopaddls r1,r1,r0addls r0,r0,#0x1bls sumstop:b stop .end...

IntelliJ IDEA和Android studio怎么去掉usage和作者提示

截止到目前我已经写了 600多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载 下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ 提取码&#xf…...

ssm营业厅宽带系统源码和论文

ssm简易版营业厅宽带系统源码和论文018 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储&#xff0c…...

CSS:background 复合属性详解(用法 + 例子 + 效果)

目录 background 复合属性background-color 背景颜色(纯)background-image 背景图片 或者 渐变颜色background-repeat 背景是否重复background-size 设置图片大小background-position 设置背景图片显示位置background-attachment 设置背景图片是否随页面…...

django中实现事务/django实现悲观锁乐观锁案例

django中实现事务的几种方式 # 1 全局开启事务---> 全局开启事务,绑定的是http请求响应整个过程DATABASES {default: {#全局开启事务,绑定的是http请求响应整个过程ATOMIC_REQUESTS: True, }}from django.db import transaction# 局部禁用事务trans…...

自动驾驶技术:改变交通出行的未来

自动驾驶技术,这个让人充满期待的技术,正在改变我们的交通方式,带来一种全新的出行体验。它可以让汽车、无人机等交通工具像人类驾驶一样自主行驶,通过人工智能、视觉计算、雷达、监控装置和全球定位系统协同合作,实现…...

5.利用matlab完成 符号矩阵的转置和 符号方阵的幂运算(matlab程序)

1.简述 Matlab符号运算中的矩阵转置 转置向量或矩阵 B A. B transpose(A) 说明 B A. 返回 A 的非共轭转置,即每个元素的行和列索引都会互换。如果 A 包含复数元素,则 A. 不会影响虚部符号。例如,如果 A(3,2) 是 12i 且 B A.&#xff0…...

为什么要自动化Web测试?

Web自动化是更快地实现所需结果的较佳方式。自动化测试在市场上引起了巨大的轰动。此软件测试过程可以让您使用正确的自动化测试工具和技术集自动执行测试过程。我们执行它是为了检查软件应用程序是否具有完全按照我们希望它执行的方式执行的勇气。 比以往更快地获得反馈 自动化…...

Spark_RDD的容错机制_数据丢失恢复

我们都知道Spark是弹性分布式数据集,数据会存储在多台机器上,那么如何确保在分布式数据计算中,数据不丢失就是其中的关键的部分。本文主要讲解一下Spark中的容错机制。 Spark 主要提供了3个层面的数据容错机制。分别是 调度层,RDD…...

VB+SQL期刊信息管理系统设计与实现

摘 要 本次毕业设计课题为“期刊信息管理系统”,该系统在正常运营中总是面对大量的读者信息、期刊信息以及两者相互作用产生的借刊信息,还刊信息。因此需要对读者资源、期刊资源、借刊信息、还刊信息进行管理,及时了解各个环节中信息的变更,有利于提高管理效率。 此次毕…...

如何在iPhone手机上修改手机定位和模拟导航?

如何在iPhone手机上修改手机定位和模拟导航? English 首先,你需要在Mac电脑上下载安装 Location Simulator/定位模拟工具 和 Runner 这两款应用程序。 完成安装后,打开软件,并用USB连接手机设备 修改iPhone手机定位和模拟导航 …...

Linux 当fork在for循环中的问题

以下代码会打印几个"A"&#xff1f; 例1.代码如下&#xff1a; int main(int argc, char* argv[],char* envp[]) { for(int i 0;i < 2; i ) { fork(); printf("A\n"); } exit(0); } 代码分析&#xff1a; //父进程for(int i …...

推断统计中非参数检验之卡方检验、列联表分析和游程检验

一、&#xff08;卡方检验&#xff09;&#xff1a;赛马比赛的赛道会影响成绩吗 这里以一个实例赛马比赛的赛道是否会影响成绩为例&#xff0c;实际就是检验获胜频数与期望频数之间有无显著性差异。 import pandas as pdstep1 调用包 from scipy.stats import chisquare impor…...

AI社交来了,百度、Soul“双向奔赴”

随着科技的飞速进步和迅猛发展&#xff0c;AI技术已经开始渗透到教育、工作、社交、娱乐和健康多个领域&#xff0c;并为人们生活中的多个场景带来了诸多的创新和可能性。甚至可以说&#xff0c;AI技术已经深刻地介入到了我们日常生活的方方面面&#xff0c;让我们的生活方式发…...

【【verilog 典型电路设计之加法器树乘法器】】

verilog 典型电路设计之加法器树乘法器 加法器树乘法器 加法器树乘法器的设计思想是“移位后加”&#xff0c;并且加法运算采用加法器树的形式。乘法运算的过程是&#xff0c;被乘数与乘数的每一位相乘并且乘以相应的权值&#xff0c;最后将所得的结果相加&#xff0c;便得到了…...

选择最适合自己的NIO, 一探流技术

目录 一、Channel1、FileChannel代码示例2、DatagramChannel代码示例3、SocketChannel 和 ServerSocketChannel代码示例 二、Buffer1、ByteBuffer示例代码2、CharBuffer示例代码3、ShortBuffer、IntBuffer、LongBuffer、FloatBuffer、DoubleBuffer 等示例代码 三、Selector1、S…...

智能家居(3)---socket网络控制线程封装

封装socket网络线程实现对智能家居中各种灯光的控制 main.Pro(主函数) #include <stdio.h> #include "controlDevice.h" #include "inputCommand.h" #include <pthread.h>struct Devices *pdeviceHead NULL; //设备工厂链表…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

【JVM】Java虚拟机(二)——垃圾回收

目录 一、如何判断对象可以回收 &#xff08;一&#xff09;引用计数法 &#xff08;二&#xff09;可达性分析算法 二、垃圾回收算法 &#xff08;一&#xff09;标记清除 &#xff08;二&#xff09;标记整理 &#xff08;三&#xff09;复制 &#xff08;四&#xff…...

Web后端基础(基础知识)

BS架构&#xff1a;Browser/Server&#xff0c;浏览器/服务器架构模式。客户端只需要浏览器&#xff0c;应用程序的逻辑和数据都存储在服务端。 优点&#xff1a;维护方便缺点&#xff1a;体验一般 CS架构&#xff1a;Client/Server&#xff0c;客户端/服务器架构模式。需要单独…...

在 Spring Boot 中使用 JSP

jsp&#xff1f; 好多年没用了。重新整一下 还费了点时间&#xff0c;记录一下。 项目结构&#xff1a; pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...

零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程

STM32F1 本教程使用零知标准板&#xff08;STM32F103RBT6&#xff09;通过I2C驱动ICM20948九轴传感器&#xff0c;实现姿态解算&#xff0c;并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化&#xff0c;适合嵌入式及物联网开发者。在基础驱动上新增…...