当前位置: 首页 > 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

在这里插入图片描述

http://www.lryc.cn/news/124872.html

相关文章:

  • vue基础-vue监听当前屏幕大小做不同的操作
  • Unity框架学习--3
  • ARMday2
  • IntelliJ IDEA和Android studio怎么去掉usage和作者提示
  • ssm营业厅宽带系统源码和论文
  • CSS:background 复合属性详解(用法 + 例子 + 效果)
  • django中实现事务/django实现悲观锁乐观锁案例
  • 自动驾驶技术:改变交通出行的未来
  • 5.利用matlab完成 符号矩阵的转置和 符号方阵的幂运算(matlab程序)
  • 为什么要自动化Web测试?
  • Spark_RDD的容错机制_数据丢失恢复
  • VB+SQL期刊信息管理系统设计与实现
  • 如何在iPhone手机上修改手机定位和模拟导航?
  • Linux 当fork在for循环中的问题
  • 推断统计中非参数检验之卡方检验、列联表分析和游程检验
  • AI社交来了,百度、Soul“双向奔赴”
  • 【【verilog 典型电路设计之加法器树乘法器】】
  • 选择最适合自己的NIO, 一探流技术
  • 智能家居(3)---socket网络控制线程封装
  • ubuntu 安装 emscripten 时 install latest 安装报错问题
  • concrt140.dll丢失怎么恢复?教你5种修复方法
  • 【Vue-Router】路由入门
  • 蓝牙耳机运动耳机哪个好、好用的运动蓝牙耳机推荐
  • 大数据面试题:Kafka的ISR机制
  • Windows:解决MySQL登录ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using passwor=YES)问题
  • springboot整合kafka多数据源
  • 基于CentOS 7 配置nginx负载均衡
  • WordToPDF2.java
  • k8s服务注册发现
  • IK分词器升级,MySQL热更新助一臂之力