论文阅读<CF-YOLO: Cross Fusion YOLO for Object Detection in Adverse Weather.....>

论文链接:https://arxiv.org/pdf/2309.08152.pdfhttps://arxiv.org/pdf/2206.01381.pdfhttps://arxiv.org/pdf/2309.08152.pdf

代码链接:https://github.com/DiffPrompter/diff-prompter

目前没有完整代码放出。

        恶劣天气下的目标检测主要有以下三种解决方案:1)使用预处理(pre-processing),例如image desnowing/deraining/dehazing,尽管已经有大量的方法去完成这个工作,但是会丢失图像细节。2)使用双分支网络联合学习图像恢复和目标检测,这两个网络共享特征提取层,但是在训练中很难平衡这两项任务。3)使用无监督域适应(Domain Adaptation)来对齐干净图像和恶劣天气下拍摄的特征,但是这样有利于检测的潜在信息可能被忽略。

Abstract 

       

Motivation

        是否能够通过建立真实的雪天OD数据集和开发特征聚合模块(feature aggeregation module)来学习潜在信息的协同作用,增强尖端Object Detection网络在雪天条件下的能力。

Real-World Snowy Object Detection Dataset

A Dataset Introduction

        建立了用于雪中目标检测的真实世界的数据集RSOD(real-world snow object detection dataset),包含2100张不同场景的图像,主要是雪中城市和交通场景,实例分布如下图所示。把雪天分为四个难度等级:easy, normal, difficult, particularly difficult。通过计算SCR值和人工观测进行等级划分,1~600为easy,601~1600为normal,1601~2000为difficult,2001~2100为particularly difficult。

B Unsupervised Training for SCR Calculation

        SCR(snow coverage rate)用来衡量雪覆盖的面积,用下边的公式进行计算。A_{snow}A_{bbox}分别表示雪和bounding box的面积。直接对图片标注可以计算出SCR值,但是这样非常耗费时间。这里采用无监督的训练策略来训练一个响应雪像素并抑制不是雪的像素的CNN。主要通过下边三个策略来实现。

SCR=A_{snow}/A_{bbox}

1、用大雪覆盖大部分图像区域的图像训练CNN模型。对应的ground truth是输入大小相同且几乎所有像素都等于1的map。该步骤将引导模型映射为每个值都等于1的map,模型中的卷积核将通过反向传播对积雪特征进行编码。

2、设计了一个激活函数Peak Act抑制非雪元素。如图2 ( d )所示,我们称激活函数为P eak Act。由于我们用于训练的图像中积雪覆盖面积最大,卷积核自然会对积雪像素做出响应,而对非积雪像素进行抑制。Peak Act表达式如下,设计时遵循以下三个原则:1)是一个峰值函数,其中峰值为( 1 , 1)。因为我们的基本真值是一个所有元素都等于1的矩阵,所以训练过程会引导输出结果趋向于1。并且峰值将有效面积限制在很小的带宽内,如图2 ( d )所示。2)零映射为零。如果一个零映射到一个非零值,就会有一些懒惰的卷积核,所有的权重都等于0,将所有的像素平滑到一个非零值。因此,后面层的特征很容易被等同于真实值,从而导致训练的失败。3)为凹函数,确保特征值在经过激活函数后不会趋近于1。特征只有通过优化才能趋近于1。

f(x)= \left\{\begin{matrix} 0.2x& x<0\\ x^{2}& 0\leq x<1\\ (x-2)^{2}&1\leq x <2 \\ -0.2(x-2)&x\geqslant 2 \end{matrix}\right.

3、CNN的最后一层是Max-out function。它将通道维度中每个像素的最大特征值输出,形成单通道特征图O和Ground Truth去计算损失。由于Peak Act的上限为1,网络的输出将始终小于或等于1。Max - out层将鼓励不同的通道响应不同的特征,从而导致高度特定的内核优化。P是网络参数,α设置为1,β设置为0.0001。损失函数的第一项是引导优化方向,第二项是L1正则化,用于得到稀疏特征。

Loss = \alpha\frac{1}{W*H}\sum_{i}\sum_{j}(GT_{ij}-O_{ij})+\beta||P||_{1}

        CNN模型如图3所示。在训练和测试(即,计算SCR)的过程中,我们使用了不同的头。该模型将输入图像分解为32个通道,并对不同通道的特征图进行二值化和可视化。如图2 ( b )和图2 ( c )所示,Feature Map - 31对积雪的响应非常特异,而Feature Map - 11对边缘的响应非常特异。响应积雪的特征图可以通过统计二值化图中的光照像素来计算SCR。我们还对不同通道的3D表面进行了可视化,如图2 ( e )和图2 ( f )所示,它清楚地显示了通道- 31对积雪区域的响应和对非积雪区域的抑制。CNN和Peak Act的设计,使得能够计算SCR,从而对雪天图像进行分级。

Method

        在MSCOCO训练和的模型,在RSOD上进行检测,由于域偏移(domain shift)的问题,性能严重退化。除此之外,我们还发现一些大物体在雪天中更容易被遗漏,这可能违背常识,因为许多研究表明在大模型上性能很好。基于这一观察,对yolov5s做了小的调整,。通过设置检测置信度阈值为0.01,我们惊讶地发现YOLOv5s已经检测出了雪天图像(类似的现象也存在于许多其他的雪天图像中)中的那些大目标,但是置信度过低,无法通过非极大值抑制( NMS ),导致预测错误,如图10 ( b )。原因是大雪会改变物体的轮廓、纹理和表面,使低层视觉信息缺失和扭曲

        YOLOv5s使用的是Feature Pyramid 和Path Aggregation Network(FPN+PANet)作为特征融合模块,特征在进入检测头之前经过了top-down和bottom-up。而在雪天图像中,低层视觉信息被遗漏或者失真,这种无意义的信息会随着网络进行传播。在深度网络中,深层网络的感受野比较大,因此,更深层的网络可能会考虑到更多的无意义特征。可能会稀释有意义的特征,干扰网络从被雪覆盖的物体中提取有意义的特征,降低预测的置信度。

A Cross Fusion

        为了解决上边提出的问题,这篇论文提出了一个新的交叉融合模块(cross fusion,CF)能够直接集成来自不同层次的特征。该模块的目的是缩短传播路径,而不是使模型变得更复杂或更深入。如图4所示,把不同尺度的输入特征同时送入CF层,促使最后一个阶段直接到达低层特征。CF层还允许不同的输入输出分支,这使得CF成为一个即插即用的模块,以适应不同的模型。

        和FPN+PANet相比,CF可以在低层特征和高层特征之间提供更短的路径,CF的特征融合可以表示为。f_{CSP}是CSP模块,\bigoplus是逐像素相加,O_{1}是CF的结果。CF的特征融合发生在后处理组件之前,而" FPN + PANet "的特征融合只能按照自顶向下和自底向上的顺序依次进行

O_{1}=f_{CSP}(Conv_{11}(X_{1})\bigoplus Conv_{12}(X_{2}) ) \bigoplus Conv_{13}(Resize(X_{3}))

B CF-YOLO

        把YOLOV5的neck部分替换为如图5所示的结构,此外,CF - YOLO的结构非常灵活。通过改变CF ( n )的个数、出入阶段数( In和Out)和g Oct Conv ( K )的核大小,可以很容易地对其进行修改。在这项工作中,我们的CF - YOLO堆叠了两层CF ( n = 2 )。CF-YOLO ( K = 1 )、CF - YOLO ( K = 3 )分别表示CF的核尺寸等于1和3

Experiment

A Comparison of different activation functions

         为了验证提出的Peak Act的有效性,我们将一般的激活函数Sigmoid,ReLU [ 34 ]和Leaky Relu激活函数[ 35 ]与Peak Act进行了比较。并选取最佳的特征图可视化结果进行对比。可以看到只有Peak Act能够保存模型把积雪特征从非积雪特征中分离出来。

B Performance of Detectors on RSOD

        CF - YOLO是在PyTorch中实现的。所有训练设置与YOLOv5s (批大小= 32 ,动量为0.937 ,权重衰减为0.0005的SGD优化器,学习率= 0.01)相同。我们将CF - YOLO与不同的SOTA方法进行了比较,包括YOLOv5s,SSD300 [ 20 ],EfficientDet D0和D1。此外,将RSOD分为训练集、验证集和测试集,分别包含1701、189和210张图像。为了平衡每个子集的难度,图像被随机分配到各个子集。为了验证RSOD的4个难度等级,我们分别在这4个难度等级和整个数据集上进行测试。

        为了验证RSOD的4个难度等级,我们分别在这4个难度等级和整个数据集上进行测试。为了公平比较,所有检测器仅使用MSCOCO进行训练,结果在表1中显示。与YOLOv5s相比,CF - YOLO具有更高的检测结果置信度,能够减少漏检和误检。原因在于提出的CF块使得不同层次的特征能够直接交互,从而可以恢复稀释在高层特征中的有意义的信息。

        为了比较不同方法在RSOD数据集上训练后的性能,使用MSCOCO预训练的权重在RSOD上训练了20个epoch。  我们只训练了20个历元的网络,这就足够了,因为RSOD比MSCOCO小得多。如表2所示,在验证集和测试集上,CF - YOLO仍然优于SOTAs,这证实了CF - YOLO在降雪天气中的优势。

C Performance of Detectors on MSCOCO

        为了进一步考察CFYOLO的泛化能力,我们在MSCOCO上对CF - YOLO的两个版本( K = 1或3)从头训练300历元。表3展示了CF - YOLO和SOTAs在MSCOCO上的比较。可以看到,核大小为K = 1或K = 3的CF - YOLO取得了与YOLOv5s相近的结果。这意味着我们的CF - YOLO在降雪天气下表现良好,而在正常天气下仍然具有竞争力。

Conclusion

        不利的天气往往会给为自动化系统供电的传感器造成能见度问题。尽管前沿的目标检测器在正常天气下捕获的数据集上取得了令人鼓舞的结果,但从恶劣天气(例如,降雪天气)中捕获的低质量图像中检测目标仍然非平凡的。它们往往忽略了对检测有益的潜在信息。通过开发一个采用无监督的训练策略,我们建立了一个高质量的用于目标检测的真实世界雪花数据集( RSOD )。考虑到基于CNN的检测器在RSOD上的退化,我们提出了交叉融合YOLO ( CF-YOLO ):一种轻量但有效的目标检测器。结果表明,我们的CF - YOLO不仅在RSOD上取得了优异的性能,而且是一个有竞争力的轻量级通用检测器,这将为户外视觉系统提供便利。                

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023年12月【考试战报】|ORACLE OCP 19C考试通过

2023年10月【考试战报】|ORACLE OCP 19C考试通过-CSDN博客文章浏览阅读122次。自OCP认证进入中国以来&#xff0c;越来越被大多数DBA所认可&#xff0c;也越来越被企业所重视&#xff0c;90%以上DBA深造&#xff0c;都会选择OCP认证。随着OCP认证在全国范围内的普及&#xff0c…

ios 之 数据库、地理位置、应用内跳转、推送、制作静态库、CoreData

第一节&#xff1a;数据库 常见的API SQLite提供了一系列的API函数&#xff0c;用于执行各种数据库相关的操作。以下是一些常用的SQLite API函数及其简要说明&#xff1a;1. sqlite3_initialize:- 初始化SQLite库。通常在开始使用SQLite之前调用&#xff0c;但如果没有调用&a…

【MySQL】数据库之存储引擎

目录 一、什么是存储引擎 MySQL 整个查询执行过程&#xff0c;即MySQL的工作原理&#xff1f; 二、MyISAM 与 InnoDB 的区别&#xff1f; 三、如何查看当前表的存储引擎&#xff1f; 1.查看当前的存储引擎 2.查看数据库支持哪些存储引擎 四、如何设置存储引擎&#xff1f;…

使用 Jekyll 构建你的网站 - 初入门

文章目录 一、Jekyll介绍二、Jekyll安装和启动2.1 配置Ruby环境1&#xff09;Windows2&#xff09;macOS 2.2 安装 Jekyll2.3 构建Jekyll项目2.4 启动 Jekyll 服务 三、Jekyll常用命令四、目录结构4.1 主要目录4.2 其他的约定目录 五、使用GitLink构建Jekyll博客5.1 生成Jekyll…

Github 2023-12-25开源项目周报 Top15

根据Github Trendings的统计&#xff0c;本周(2023-12-25统计)共有15个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目7Go项目2非开发语言项目2Dart项目1TypeScript项目1Rust项目1Kotlin项目1 GPT-Engineer: 自然语言编…

DevC++ easyx实现视口编辑,在超过屏幕大小的地图上画点,与解决刮刮乐bug效果中理解C语言指针的意义

继上篇文案&#xff0c; DevC easyx实现地图拖动&#xff0c;超过屏幕大小的巨大地图的局部显示在屏幕的方法——用悬浮窗的原理来的实现一个视口-CSDN博客 实现了大地图拖动&#xff0c;但是当时野心不止&#xff0c;就想着一气能搓啥就继续搓啥&#xff0c;看着地图移动都搓…

nodejs+vue+微信小程序+python+PHP基于Android的共享自习室APP系统-计算机毕业设计推荐

1.用户端&#xff1a; 一、首页&#xff1a; &#xff08;1&#xff09;店面轮播图及位置、营业时间 &#xff08;2&#xff09;预约储物柜功能&#xff1a;选择储物柜号码、确认预约 &#xff08;3&#xff09;会员功能&#xff1a;解锁VIP座位、个人积分信息&#xff08;查看…

STM32 cubeMX 光敏电阻AD转化实验

文章代码使用 HAL 库。 文章目录 前言一、光敏电阻介绍二、光敏电阻原理图解析三、ADC采样介绍1. 工作原理&#xff1a;2. ADC精度&#xff1a; 四、STM32 cubeMX配置ADC采样五、代码编写总结 前言 实验开发板&#xff1a;STM32F051K8。所需软件&#xff1a;keil5 &#xff0c;…

解决ELement-UI三级联动数据不回显

目录 一.处理数据时使用this.$set方法来动态地设置实例中的属性&#xff0c;以确保其响应式。 二.检查数据格式是否正确 三.绑定v-if 确保每次执行 四.完整代码 一.处理数据时使用this.$set方法来动态地设置实例中的属性&#xff0c;以确保其响应式。 二.检查数据格式是否正确…

TypeScript下载安装,编译运行

TypeScript是拥有类型的JavaScript超集&#xff0c;它可以编译成普通、干净、完整的JavaScript代码。 简单理解&#xff1a;TypeScript就是加强版的JavaScript。 TypeScript最终会被编译成JavaScript代码&#xff0c;那么我们必然需要对应的编译环境 环境搭建前提&#xff1a…

简单的喷淋实验(2):(1)根据土壤湿度自动控制喷淋开关;(2)根据光照强度控制风扇以及灯的开关---嵌入式实训

目录 简单的喷淋实验(2)&#xff1a; &#xff08;1&#xff09;根据土壤湿度自动控制喷淋开关&#xff1b; &#xff08;2&#xff09;根据光照强度控制风扇以及灯的开关---嵌入式实训 任务2&#xff1a; 具体过程&#xff1a; 所用的头文件&#xff1a; data_global.h …

人工智能_机器学习073_SVM支持向量机_人脸识别模型建模_预测可视化_网格搜索交叉验证最优化参数对比---人工智能工作笔记0113

接着上一节来说,可以看到我们已经找到了合适的参数,然后 我们可以看一下这里 gc.best_params_ 就可以打印出最合适的参数 然后我们把最合适串按说填入到代码中,然后进行计算,看看得分 可以看到得分,训练数据是1.0 然后测试数据得分是0.7857...对吧

nodejs+vue+微信小程序+python+PHP的热带野生动物园景点预约订票系统的设计与实现-计算机毕业设计推荐

管理员是系统的管理者&#xff0c;拥有系统的所有权限&#xff0c;通过系统设定的账号和密码登录后对系统进行管理&#xff0c;包括密码修改、用户管理。新闻公告的管理、景点管理、订单管理。管理员登录中&#xff0c;通过用户的登录名和密码到热带野生动物园景点预约订票系统…

three.js后处理(发光描边OutlinePass描边样式

效果&#xff1a; <template><div><el-container><el-main><div class"box-card-left"><div id"threejs" style"border: 1px solid red"></div><div class"box-right"></div>&…

WPS复选框里打对号,显示小太阳或粗黑圆圈的问题解决方法

问题描述 WPS是时下最流行的字处理软件之一&#xff0c;是目前唯一可以和微软office办公套件相抗衡的国产软件。然而&#xff0c;在使用WPS的过程中也会出现一些莫名其妙的错误&#xff0c;如利用WPS打开docx文件时&#xff0c;如果文件包含复选框&#xff0c;经常会出…

vue3+ts 代理的使用

简单封装request.ts import axios from "axios";// 1.创建axios对象 const serviceaxios.create();// 2.请求拦截器 service.interceptors.request.use(config>{return config; },error>{Promise.reject(error); })// 3.响应拦截器 service.interceptors…

助力打造清洁环境,基于YOLOv7开发构建公共场景下垃圾堆放垃圾桶溢出检测识别系统

公共社区环境生活垃圾基本上是我们每个人每天几乎都无法避免的一个问题&#xff0c;公共环境下垃圾投放点都会有固定的值班时间&#xff0c;但是考虑到实际扔垃圾的无规律性&#xff0c;往往会出现在无人值守的时段内垃圾堆放垃圾桶溢出等问题&#xff0c;有些容易扩散的垃圾比…

HarmonyOS应用程序包-(上)

应用程序包-(上) 1.应用程序包概述 用户应用程序泛指运行在设备的操作系统之上&#xff0c;为用户提供特定服务的程序&#xff0c;简称“应用”。一个应用所对应的软件包文件&#xff0c;称为“应用程序包”。 HarmonyOS提供了应用程序包开发、安装、查询、更新、卸载的管理…

王道考研计算机网络——数据链路层

码元和信号变化是一一对应的 低通&#xff1a;低于最高频率的可以通过 奈氏准则无噪声&#xff0c;香农定理有噪声 给出db&#xff0c;利用公式求出S/N 放到数字信道上传输就是基带信号&#xff0c;放到模拟信道上传输就是宽带信号 把基带信号调制成宽带信号之后&#xff0c;…

微信使用证书退款时候报”请求被中止: 未能创建 SSL/TLS 安全通道

解决方法&#xff1a;IIS-》应用程序池-》高级设置-》进程模块-》加载用户配置文件&#xff0c;设置为True就可以了。