码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 简单粗暴提升yolov5小目标检测能力


    论文地址:https://arxiv.org/abs/2208.03641

    代码地址:GitHub - LabSAINT/SPD-Conv: Code for ECML PKDD 2022 paper. No More Strided Convolutions or Pooling: A Novel CNN Architecture for Low-Resolution Images and Small Objects.

            作者提出一种SPD组件,提升了yolov5各个模型在小目标上的检测能力,先看一下结论:

            该组件作者给出了数学上的解释:

            其实解释起来很简单,结合下图:

            和yolov5最开始做的focus是类似的,对于输入的特征图(长宽为S),从左到右以及从上到下每scale个像素采样一次,假设scale=2,采样方式就和上图一样,经过这样采样的输出长宽就是S/2,最后将采样后的输出进行concatenate,通道数就是scale的平方,即4。

            具体的应用,首先对比下网络架构的配置文件

            左侧是yolov5原始模型的网络架构,右图则是增加SPD结构的yolov5网络架构,其中红框部分就是两网络的区别之处 。

    代码的实现也比较简单:

    1. class space_to_depth(nn.Module):
    2. # Changing the dimension of the Tensor
    3. def __init__(self, dimension=1):
    4. super().__init__()
    5. self.d = dimension
    6. def forward(self, x):
    7. return torch.cat([x[..., ::2, ::2], x[..., 1::2, ::2], x[..., ::2, 1::2], x[..., 1::2, 1::2]], 1)
    8. # size_tensor = x.size()
    9. # return torch.cat([x[...,0:size_tensor[2]//2,0:size_tensor[3]//2],
    10. # x[...,0:size_tensor[2]//2,size_tensor[3]//2:],
    11. # x[...,size_tensor[2]//2:,0:size_tensor[3]//2],
    12. # x[...,size_tensor[2]//2:,size_tensor[3]//2:] ],1)

    在coco val2017上的效果:

            其中红色箭头就是两者的区别。

            在原文中作者还将该结构应用在分类模型上,分类性能上也有一定的提升,感兴趣的可以看看原文。

     

  • 相关阅读:
    4+经典思路,肿瘤+WGCNA+预后模型鉴定预后标志物
    OSPFv3报文讲解
    什么是多云? 为什么我们需要多云可观测性 (Observability)?
    2022-09-11 周工作记录
    Centos8安装docker并配置Kali Linux图形化界面
    Linux 文件搜索命令:find
    【CKA考试笔记】六、存储管理
    性能测试有哪些我们测试员必须要掌握的知识点?
    顺丰2023秋招笔试 第二题(C++ 二叉树思想)
    [开发] Qt编译mysql驱动
  • 原文地址:https://blog.csdn.net/athrunsunny/article/details/126585191
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号