context augmentation and feature refinement network for tiny object detection的一些理解

本文主要是介绍context augmentation and feature refinement network for tiny object detection的一些理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

abstract

本文提出了一种结合增强上下文和细化特征的特征金字塔,将多尺度扩张卷积得到的特征自上向下融合注入特征金字塔,不同上下文信息,引入通道和空间特征细化机制,抑制多尺度特征融合中的冲突形成,防止微小目标消失在冲突信息中,此外提出了一种copy-reduction-paste的数据增强方法,该方法可以增加微小对象在训练过程中损失的贡献,确保训练更加均衡。

直接重点!!!

本文是针对FPN来进行改进的,改进网络结构如下图:
在这里插入图片描述

CEM模块

CEM的灵感来自于人类识别物体的模式,例如在非常高的天空中,人类很难分辨出一只鸟,但是将天空作为上下文信息时,人类就很容易分辨出来,因此作者认为上下文信息有助于微小目标的检测。(个人理解:小目标只要背景纯粹,无大量噪音下,还是比较容易检测到的。)
CEM采用不同膨胀率的空洞卷积来获取不同感受野的上下文信息,并从上到下注入FPN中以丰富上下文信息。但由于FPN不同层次之间的语义差异,在共享信息时,会引入冗余信息和冲突信息
在这里插入图片描述

FPM模块

FPM被用来过滤冲突信息,减少语义差异。通过自适应融合不同层间的特征,消除层间的冲突信息,防止小目标消失在冲突信息中。
在这里插入图片描述
为了证明FRM的有效性,作者可视化了一些特征图。微小目标的检测主要由FPN的底层主导,因此仅对底层特征进行可视化。将特征图缩放到相同的尺寸。如图所示,最左边的一列是待检测的输入图像。F3、L3、P3为中对应标签的特征图可视化结果。
在这里插入图片描述
从可视化分析,本文提出的FRM可以大大减少冲突信息(可以理解为减少背景噪音),提高微小目标的检测精度。

Copy-Reduction-Paste

为了保证网络整体在训练过程中不会向较大目标倾斜,作者提出了一种Copy-Reduction-Paste的方法增加训练中微小目标丢失的比列。(个人理解为:变相增加训练过程中微小目标loss的重要性)
在这里插入图片描述
将小目标物体截取出来,粘贴到数据集图片上随机地方,强行增大小目标样本数量,变相增加小目标物体在loss计算中的贡献。
在这里插入图片描述
随机粘贴一次效果最好,与baseline相比,APs提高了2.5%,APm提高了1.9%,对大中型目标的检测性能也略有提高。

消融实验

在这里插入图片描述
总体而言,本文提出的模块可以显著提高目标检测性能,特别是对于微小目标和中等目标,这也符合设计的初衣。如表所示,APs增加了5.4%。APm增加 , APl增加1.0%。同时,不同尺度目标的召回率也有不同程度的提高。具体而言,ARs增加6.9% ARm增加2.3% ,ARl增加1.1%。
在这里插入图片描述

总结

在这里插入图片描述
从上表可以看出,本文提出的算法在VOC数据集上的mAP值高于近年来大多数算法。比 PFPNet-R512 高1.3%。但比IPG-RCNN低1.2% 。这主要是由于Backbone较差,图像尺寸较小,使得检测性能略低于IPG-RCNN。如果用多尺度方法测试算法,VOC数据集上的mAP可以达到85.1%,高于所有参与对比的算法。
在这里插入图片描述
从上表可以看出,本文提出的算法在微小目标的AP和AR方面具有绝对优势。

本文算法比YOLOV4算法提高3.9% (16.9%vs.13%),在比较算法中最高。与RefineDet相比在上高9.2%(29.4% vs. 20.2%),而在上低1.5%。

同时,本文提出的算法对中等目标的AR值最高,对中等目标具有较强的检测能力。

通过以上可以看到,本文提出的算法在微小目标检测方面有很大的优势。微小目标的AP和AR算法都有较好的性能,优于大多数目标检测算法。

这篇关于context augmentation and feature refinement network for tiny object detection的一些理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/843652

相关文章

Java Spring的依赖注入理解及@Autowired用法示例详解

《JavaSpring的依赖注入理解及@Autowired用法示例详解》文章介绍了Spring依赖注入(DI)的概念、三种实现方式(构造器、Setter、字段注入),区分了@Autowired(注入... 目录一、什么是依赖注入(DI)?1. 定义2. 举个例子二、依赖注入的几种方式1. 构造器注入(Con

Python错误AttributeError: 'NoneType' object has no attribute问题的彻底解决方法

《Python错误AttributeError:NoneTypeobjecthasnoattribute问题的彻底解决方法》在Python项目开发和调试过程中,经常会碰到这样一个异常信息... 目录问题背景与概述错误解读:AttributeError: 'NoneType' object has no at

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

spring IOC的理解之原理和实现过程

《springIOC的理解之原理和实现过程》:本文主要介绍springIOC的理解之原理和实现过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、IoC 核心概念二、核心原理1. 容器架构2. 核心组件3. 工作流程三、关键实现机制1. Bean生命周期2.

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

深入理解Apache Airflow 调度器(最新推荐)

《深入理解ApacheAirflow调度器(最新推荐)》ApacheAirflow调度器是数据管道管理系统的关键组件,负责编排dag中任务的执行,通过理解调度器的角色和工作方式,正确配置调度器,并... 目录什么是Airflow 调度器?Airflow 调度器工作机制配置Airflow调度器调优及优化建议最

Java中Object类的常用方法小结

《Java中Object类的常用方法小结》JavaObject类是所有类的父类,位于java.lang包中,本文为大家整理了一些Object类的常用方法,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. public boolean equals(Object obj)2. public int ha

一文带你理解Python中import机制与importlib的妙用

《一文带你理解Python中import机制与importlib的妙用》在Python编程的世界里,import语句是开发者最常用的工具之一,它就像一把钥匙,打开了通往各种功能和库的大门,下面就跟随小... 目录一、python import机制概述1.1 import语句的基本用法1.2 模块缓存机制1.

深入理解C语言的void*

《深入理解C语言的void*》本文主要介绍了C语言的void*,包括它的任意性、编译器对void*的类型检查以及需要显式类型转换的规则,具有一定的参考价值,感兴趣的可以了解一下... 目录一、void* 的类型任意性二、编译器对 void* 的类型检查三、需要显式类型转换占用的字节四、总结一、void* 的