论文阅读<Contrastive Learning-based Robust Object Detection under Smoky Conditions>

论文链接:https://openaccess.thecvf.com/content/CVPR2022W/UG2/papers/Wu_Contrastive_Learning-Based_Robust_Object_Detection_Under_Smoky_Conditions_CVPRW_2022_paper.pdf

Abstract

        目标检测是指有效地找出图像中感兴趣的目标,然后准确地确定它们的类别和位置。近年来,许多优秀的方法被开发出来,以提供强大的检测能力。然而,在恶劣天气如烟熏条件下,它们的性能可能会显著降低。在这篇论文基于对比下学习提出了一个鲁棒的烟雾图像目标检测算法。提出的算法由两个模块组成,对比学习模块(Contrast learning module)和目标的预测框(object bounding box prediction module)。第一个模块通过最大化同一烟雾图像的不同增强视图之间的一致性来学习表示向量,然后把这些特征送入第二个模块以生成bounding box。此外还提出了一个新颖的仿射数据增强方法。在A2I2 - Haze数据集上进行了大量的的实验,该数据集是第一个与航空和地面图像对齐的实时烟雾测量的真实雾霾数据集。该数据集也是CVPR 2022第5届UG2 +挑战赛中唯一用于训练和测试的数据集。与最先进的方法相比,评估结果表明了我们提出的目标检测器的优越性。

Intruduction

        对比学习属于辨别性特征表示的范畴(discriminative representation learning),通过不同样本之间的比较学习来学习一种表示,这种对比通过在相似的图像对和不相似的图像对中实现。通过对它们的比较,可以有效地实现"相似"样本的表示在嵌入空间中被紧密地映射在一起,而"不相似"样本的表示在嵌入空间中被远离的对比学习目标。对比学习有一个明显的优势,它可以忽略输入的表面现象,同时能够学习和提取它们的内部一致性。

Method

        提出的算法流程如下图所示,主要包括量模块,第一个是Constrast learning module,致力于捕获每个相同烟雾图像的不同增强版本之间的内在一致特征,从而能够学习到它们的一致表示。第二个模块是Object bounding box prediction module,把学习到的表示向量和原来的图像一起作为输入来预测每个目标的bounding box。

3.1 Constrast learning module

        图2是对比学习模块的结构,该模块包含三个部分:Data  Augmentation、Encoder Network、Projection Head(和SimCLR类似)。

        在Data  Augmentation中,对给定的烟雾图像,采用两种图像增强方法,分别是图像灰度化和随机亮度增强来生成其相关的增强视图,记为I_{i}I_{j},记为一对正样本。在Encoder Network中,使用ResNet50提取特征获得h_{i}h_{j}。 在Projection Head中,使用两个简单的MLP把h_{i}h_{j}映射到更抽象的特征。

        使用以下损失函数优化对比学习,其中一批 N 个示例被随机采样以构建 2N 个增强图像。z_{i}z_{j}是增强后的图像,sim(u,v)=u^{T}v/||u||||v||表示L2归一化后的y和v的点乘,\tau表示一个温度参数。

L_{cont}=\frac{1}{2N}\sum_{k=1}^{N}[l(2k-1,2k)+l(2k,2k-1)]

l(i,j)=-log\frac{sim(z_{i},z_{j})/\tau }{\sum_{k=1}^{2N}exp(sim(z_{i},z_{j})/\tau)}

3.2 Object boudning box prediction module

        这个模块包括四个部分:pre-processing,backbone,neck和head。在pre-processing部分,使用Transposed convolution改变输入特征h_{i}h_{j}f_{i}f_{j},然后和输入图像I一起输入到YOLOV5s

3.3 Data Augmentation

        在本文中,考虑到拍摄图像中存在无人机视角变化,我们还提出了一种新颖的仿射数据增强方法。首先,我们拍摄一些内容相似但拍摄角度不同、拍摄距离不同的照片。然后,利用透视变换计算每对相似图像之间的单应矩阵。之后,我们对测试数据集的每个图像执行这些单应矩阵,创建新的转换图像。最后,这些变换后的图像与原始训练数据一起用于网络的训练。

Experiments

4.1 Baselines

        对CenterNet、YOLOv5和参与CVPR2022挑战的12种优秀方法进行对比。用于训练和测试的数据集是 A2I2-Haze [32],它是 CVPR 2022 第五届 UG2+ 挑战赛 Haze 中目标检测赛道中采用的唯一数据集。A2I2Haze 是第一个具有原位烟雾测量的真实雾霾数据集与空中和地面图像对齐。该数据集不仅包含从 12 个视频剪辑而来的总共 177 个配对的模糊/干净帧图像,还包含从相同来源收集的用于训练的 240 个带注释的干净图像,以及用于测试的 60 个其他烟雾图像。此外,我们还采用了所提出的数据增强方法。对这些测试图像进​​行仿射变换,产生384张不同角度、不同距离的变换图像,作为训练数据的补充

4.2 Implementation details

        我们首先使用训练数据单独更新对比学习模块的权重。完成此训练过程后,构建的表示向量与原始图像一起用作对象边界框预测模块的输入来训练其网络。完成所有这些任务后,我们提出的目标检测器的训练就真正完成了。

        所提出的目标检测器在 NVIDIA GeForce RTX3080 GPU 上进行训练和测试。在对比学习模块的训练过程中,batch size和patch size分别设置为8和512×512,采用随机梯度下降(SGD)优化器,学习率初始化为0.05并降低90总共 300 个 epoch 中的 150、200 和 250 个 epoch 的百分比。此外,为了训练对象边界框预测模块,我们将批量大小和补丁大小分别设置为32和512×512。热身是在训练前进行的。学习率初始化为0.01,然后在总共500个epoch的训练中采用Cosine学习率下降策略。

4.3 Quantitative evaluation

        表 1 给出了 SOTA 方法和我们提出的检测器产生的物体检测的数值结果。对于那些挑战者,CVPR 2022只公布了他们的AP50结果,如表1所示。从表中的结果可以看出,由于YOLOv5和CenterNet都没有采取适应烟雾条件的措施,所以它们的性能都较差。尽管 12 名挑战参与者中的每一位都在 AP50 中获得了高分,但我们提出的算法仍然在所有评估方法中获得了针对目标检测的最佳平均预测结果。

4.4 Quanlitative evaluation

        图4是定性分析的结果,提出的方法是最接近于Ground Truth的。

4.5 Ablation Study

        通过直接从图 1 的框架中删除模块 1,在目标检测中使用对比学习机制。此外,还通过避免在训练中使用那些转换后的数据来评估所提出的数据增强的有效性。为了阐明它们的效果,我们将我们提出的方法与以下两个基线进行比较:1)基线1:我们仅使用增强训练数据训练模块2。 2)基线2:我们仅使用原始训练数据来训练我们提出的方法。表 2 比较了他们在消融研究中的物体检测结果。从表2的结果可以看出,对比学习可以学习物体的内部一致性,从而进一步准确地确定目标位置。此外,我们提出的数据增强方法很大程度上改善了目标检测的 AP 结果。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OCP NVME SSD规范解读-4.NVMe IO命令-1

针对NVMe-IO-1到NVMe-IO-14的解读如下: NVMe-IO-1: 设备应支持所有必需的NVMe I/O命令。这是设备能够进行基本数据读写操作的基础要求。NVMe I/O命令包括读、写、删除、擦除等操作,这些是存储设备的核心功能。 NVMe-IO-2: 设备应…

论文阅读——EfficientViT(cvpr2023)

EfficientViT: Memory Efficient Vision Transformer with Cascaded Group Attention 1、 从三个角度探讨如何提高vision transformers的效率:内存访问、计算冗余和参数使用。 2.1. Memory Efficiency 红色字体表示操作所花费的时间主要由内存访问决定,…

Kubernetes技术与架构-集群管理

Kubernetes技术与架构提供支撑工具支持集群的规划、安装、创建以及管理。 数字证书 用户可以使用easyrsa、openssl、cfssl工具生成数字证书,在kubernetes集群的api server中部署数字证书用于访问鉴权 资源管理 如上所示,定义一个服务类service用于负…

【教学类-43-02】20231226 九宫格数独2.0(n=9)(ChatGPT AI对话大师生成 回溯算法)

作品展示: 背景需求: 大4班20号说:我不会做这种(九宫格),我做的是小格子的, 他把手工纸翻过来,在反面自己画了矩阵格子。向我展示: “我会做这种!” 原来他…

大创项目推荐 深度学习二维码识别

文章目录 0 前言2 二维码基础概念2.1 二维码介绍2.2 QRCode2.3 QRCode 特点 3 机器视觉二维码识别技术3.1 二维码的识别流程3.2 二维码定位3.3 常用的扫描方法 4 深度学习二维码识别4.1 部分关键代码 5 测试结果6 最后 0 前言 🔥 优质竞赛项目系列,今天…

HTML---JavaScript基础

文章目录 目录 文章目录 本章目标 一.JavaScript基础 概述 特点 JavaScript 基本机构 语法 网页中引用JavaScript的方式 二. JavaScript核心语法 变量 ​编辑 数据类型 数组 练习 本章目标 掌握JavaScript的组成掌握JavaScript的基本语法会定义和使用函数会使用工具进行…

OpcUaHelper实现西门子OPC Server数据交互

Opc ua客户端类库,基于.net 4.6.1创建,基于官方opc ua基金会跨平台库创建,方便的实现和OPC Server进行数据交互。 FormBrowseServer 在开发客户端之前,需要使用本窗口来进行查看服务器的节点状态,因为在请求服务器的节点数据之前,必须知道节点的名称,而节点的名称可以…

2023年终总结丨很苦,很酷!

文章目录 个人简介丨了解博主写在前面丨博主介绍年终总结丨博主成就年终总结丨博主想说年终总结丨学习芝士年终总结丨未来展望写在后面丨新年快乐 个人简介丨了解博主 主页地址:https://blog.csdn.net/m0_68111267 荣誉身份 ⭐2022年度CSDN 社区之星 Top6 ⭐2023年…

ubuntu下编译obs-studio遇到的问题记录

参考的是这篇文档:Build Instructions For Linux obsproject/obs-studio Wiki GitHub 在安装OBS dependencies时, sudo apt install libavcodec-dev libavdevice-dev libavfilter-dev libavformat-dev libavutil-dev libswresample-dev libswscale-d…

城市生态数据大屏,PSD设计稿

现分享生态系统可视化大数据大屏的 Photoshop 源文件,下载即用!以下为截图示意。 若需 更多行业 相关的大屏,请移步小7的另一篇文章:200套精选数据可视化大屏,大屏PSD设计(各行业大屏UI)https:…

三子棋(c语言)

前言: 三子棋是一种民间传统游戏,又叫九宫棋、圈圈叉叉棋、一条龙、井字棋等。游戏规则是双方对战,双方依次在9宫格棋盘上摆放棋子,率先将自己的三个棋子走成一条线就视为胜利。但因棋盘太小,三子棋在很多时候会出现和…

Android studio 使用greenDao根据实体类生成dao类

1.遇到的问题 使用android studio根据实体类生成dao其实也很简单,你只要实现 Parcelable Entity public class ConfigDataModel implements Parcelable {Id(autoincrement true)private Long id null; } 2.使用自带的方法生成 使用build-->make Project生成 …

Tomcat与Servlet是什么关系

Tomcat与Servlet是什么关系 Apache Tomcat和Servlet之间存在密切的关系,可以说它们是一对密切合作的组件。下面是它们的关系: Tomcat是Servlet容器: Tomcat是一个开源的、轻量级的Servlet容器。Servlet容器是一个Web服务器扩展,用…

软件工程经济学习题 答案(不保证对错,找不到答案)

一、资金等值计算(老师要求不能查表,故只能使用对应数学方法) 1.某IT企业今年向银行贷款20万元以购置一台设备。若银行贷款利率为10%,规定10年内等额偿还,试求每年的偿还金额。 2.某软件企业向银行贷款200万元&#xf…

Python+OpenGL绘制3D模型(九)完善插件功能: 矩阵,材质,法线

系列文章 一、逆向工程 Sketchup 逆向工程(一)破解.skp文件数据结构 Sketchup 逆向工程(二)分析三维模型数据结构 Sketchup 逆向工程(三)软件逆向工程从何处入手 Sketchup 逆向工程(四&#xf…

Redis:原理速成+项目实战——Redis的Java客户端

👨‍🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习 🌌上期文章:Redis:原理速成项目实战——Redis常见命令(数据结构、常见命令总结) 📚订阅专栏&…

【网络安全 | XCTF】simple_transfer

考察kali基本工具的使用 方法一 打开文件如图: 存在较多协议,将协议分级: 可以看到DLEP协议占比最大: 将其作为过滤器应用: 搜索DLEP: 并没有有利信息,但观察到多数数据包损坏: 执行…

一语道破爬虫,来揭开爬虫面纱

目录 一、爬虫(网络蜘蛛(Spider)) 1.1、是什么: 1.2、学习的原因 1.3、用在地方: 1.4、是否合法: 1.5、后果 案例: 二、应用领域 三、Robots协议 四、抓包 4.1、浏览器抓包 4.2、抓包工具 常见…

性能优化-如何提高cache命中率

本文主要介绍性能优化领域常见的cache的命中率问题,旨在全面的介绍提高cache命中率的方法,以供大家编写出性能友好的代码,并且可以应对性能优化领域的面试问题。 🎬个人简介:一个全栈工程师的升级之路! &am…

C++图论之强连通图

1. 连通性 什么是连通性? 连通,字面而言,类似于自来水管道中的水流,如果水能从某一个地点畅通流到另一个地点,说明两点之间是连通的。也说明水管具有连通性,图中即如此。 无向图和有向图的连通概念稍有差…