【论文阅读笔记】用于恶劣天气条件下的目标检测的IA-YOLO(Image-Adaptive YOLO) | 适合雾天和低光照场景


目录
摘要
1 方法
■ DIP模块
▲像素级滤波器
▲锐化滤波器
▲去雾滤波器
■ CNN-PP Module
■ 检测网络模块
■ 混合数据训练
2 实验
■ 实现细节
■ 有雾图像上的实验
■ 低照度图像上的实验
■ 消融研究
■ 有效分析
结论
论文题目:Image-Adaptive YOLO for Object Detection in Adverse Weather Conditions(用于恶劣天气条件下的目标检测的图像自适应Yolo)
论文地址:https://arxiv.org/pdf/2112.08088
论文代码:https://github.com/wenyyu/ImageAdaptive-YOLO
发表时间:2022/7/4
作者单位:浙江大学计算机科学与技术学院、阿里巴巴-浙江大学联合前沿技术研究院、达摩书院、阿里巴巴集团、香港科技大学、香港理工大学
摘要
尽管基于深度学习的目标检测方法在传统数据集上取得了很好的效果,但从恶劣天气条件下拍摄的低质量图像中定位目标仍然具有挑战性。现有方法要么在平衡图像增强和目标检测任务上存在困难,要么往往忽略了对检测有利的潜在信息。为了缓解这个问题,提出了一种新颖的图像自适应YOLO(IA-YOLO)框架,其中每张图像都可以进行自适应增强以获得更好的检测性能。具体来说,针对YOLO探测器的恶劣气象条件,提出了一种可微图像处理(DIP)模块,其参数由一个小型卷积神经网络(CNN-PP)预测。以端到端的方式联合学习CNN-PP和YOLOv3,保证了CNN-PP能够以弱监督的方式学习到合适的DIP来增强待检测图像。我们提出的IA-YOLO方法可以自适应地处理正常和恶劣天气条件下的图像。实验结果非常令人鼓舞,证明了我们提出的IA-YOLO方法在雾天和低光照场景下的有效性。
图1:在真实世界的有雾环境中,我们的方法可以自适应地输出更清晰的图像,并且物体边界周围的边缘更清晰,从而以更少的缺失实例产生更高的置信度检测结果。

本文工作的亮点在于:
1)提出了一种图像自适应的检测框架,在正常和恶劣天气条件下都取得了良好的性能;
2)提出了一种白盒可微图像处理模块,其超参数由弱监督参数预测网络预测;
3)在合成数据集( VOC_Foggy和VOC_Dark)和真实数据集(RTTS和ExDark)上,与之前的方法相比,取得了令人鼓舞的实验结果。
1 方法
在恶劣天气条件下拍摄的图像,由于天气特有信息的干扰,能见度较差,造成目标检测困难。为了应对这一挑战,提出了一种图像自适应的检测框架,通过去除天气特有的信息,揭示更多的潜在信息。如图2所示,整个管道由基于卷积神经网络的参数预测器( CNNPP )、可微图像处理模块(DIP)和检测网络组成。

首先,将输入图像调整为256×256大小,并将其输入到CNN-PP中预测DIP的参数。
然后,将DIP模块滤波后的图像作为YOLOv3检测器的输入。
提出了一种带有检测损失的端到端混合数据训练方案,使得CNN-PP能够以弱监督的方式学习一个合适的DIP来增强用于目标检测的图像。
■ DIP模块
对于基于梯度优化的CNNPP,滤波器应该是可微的,以便通过反向传播来训练网络。由于CNN在处理高分辨率图像(例如4000×3000)时会消耗大量的计算资源,本文从尺寸为256×256的下采样低分辨率图像中学习滤波器参数,然后将相同的滤波器应用到原始分辨率的图像中。因此,这些滤波器需要独立于图像分辨率。
提出的DIP模块由六个可调超参数的可微滤波器组成,包括Defog、White Balance ( WB )、Gamma、Contrast、Tone和Sharpen。与( Hu等2018)一样,标准的颜色和色调算子,如WB,Gamma,对比度和色调,可以表示为像素级滤波器。因此,设计的滤波器可以分为Defog滤波器、像素级滤波器和Sharpen滤波器。在这些滤波器中,Defog滤波器是专门为雾天场景设计的。
▲像素级滤波器
逐像素滤波器将输入像素值Pi=(ri , gi , bi)映射为输出像素值Po=(ro , go , bo),其中(r , g , b)分别表示红、绿、蓝3个颜色通道的值。四个像素级滤波器的映射函数列于表1中,其中,第二列列出了方法中需要优化的参数。WB和Gamma是简单的乘法和幂变换。显然,它们的映射函数关于输入图像和参数都是可微的。
表1:像素级滤波器的映射函数。

通过一个输入参数设计可微对比度滤波器来设置原始图像和完全增强图像之间的线性插值。如表1所示,映射函数中En(Pi)的定义如下,见公式1、2、3:
![]()

将tone滤波器设计为单调和分段线性函数。学习具有L个参数的色调滤波器,表示为{t0,t1,..,tL-1}。色调曲线上的点记为( k/L , Tk/TL),其中,
。此外,映射函数由可微参数表示,这使得函数关于输入图像和参数{ t0,t1,..,tL-1 }均可微,见公式4:

▲锐化滤波器
图像锐化可以突出图像细节。与反锐化掩模技术一样,锐化过程可以描述如下,见公式5:
![]()
其中,I(x)是输入图像,Gau(I(x))是高斯滤波器,λ是一个正尺度因子。这种锐化操作对x和λ都是可微的。需要注意的是,可以通过优化λ来调整锐化程度,以获得更好的目标检测性能。
▲去雾滤波器
受暗通道先验方法的启发,设计了一个具有可学习参数的去雾滤波器。基于大气散射模型,雾天图像的形成可以表述如下,见公式6:
![]()
其中,I(x)表示有雾图像,J(x)表示场景辐射亮度(干净图像)。A为全球大气光,t(x)为介质透射图,定义见公式7:
![]()
其中,β表示大气的散射系数,d(x)为场景深度。
为了恢复干净的图像J(x),关键是获取大气光A和透射图t(x)。为此,首先计算雾天图像I(x)的暗通道图,并挑选前1000个最亮的像素。然后,通过对雾天图像I(x)的对应位置的1000个像素取平均来估计A。可以得到t(x)的一个近似解,见公式8:

进一步引入一个参数ω来控制去雾的程度,见公式9:

由于上述操作是可微的,可以通过反向传播来优化ω,使去雾滤波器更有利于雾天图像检测。
图8:学习到的DIP模块及其滤波输出示例。图像自适应处理模块可以根据每幅输入图像的亮度、颜色、色调和天气信息输出相应的滤波器参数,从而获得更好的检测性能。

■ CNN-PP Module
在相机图像信号处理(ISP)管道中,通常使用一些可调滤波器进行图像增强,其超参数由经验丰富的工程师通过视觉检查手动调节以找到适合广泛的场景参数。一般来说,这样的调优过程是非常笨拙和昂贵的。为了解决这个限制,建议使用一个小的CNN作为参数预测器来估计超参数,这是非常有效的。
以雾天场景为例,CNN-PP的目的是通过理解图像的全局内容,如亮度、颜色和色调,以及雾的程度来预测DIP的参数。因此,降采样后的图像足以估计这些信息,可以大大节省计算成本。给定一幅任意分辨率的输入图像,简单地使用双线性插值将其下采样到256×256分辨率。如图2,CNN-PP网络由5个卷积块和2个全连接层组成。每个卷积块包括一个步长为2的3×3卷积层和一个leaky Relu。最后的全连接层为DIP模块输出超参数。这五个卷积层的输出通道分别为16、32、32、32和32。当参数总数为15时,CNN-PP模型仅包含165K个参数。

■ 检测网络模块
本文选择在实际应用中广泛使用的单级检测器YOLOv3作为检测网络,包括图像编辑、安防监控、人群检测和自动驾驶。与之前版本相比,YOLOv3基于Resnet的思想设计了由连续3×3和1×1卷积层组成的darknet-53。它通过对多尺度特征图进行预测来实现多尺度训练,从而进一步提高检测精度,特别是对小目标的检测。我们采用与原始YOLOv3相同的网络架构和损失函数。
■ 混合数据训练
为了在正常和恶劣天气条件下都能达到理想的效果,采用了一种针对IA-YOLO的混合数据训练方案。算法1总结了提出的方法的训练过程。

每幅图像有2/3的概率被随机添加某种雾气或转化为低照度图像后输入到网络中进行训练。利用正常和合成的低质量训练数据,使用YOLOv3检测损失对整个流水线进行端到端的训练,保证了IA-YOLO中各个模块能够相互适应。因此,CNN-PP模块在没有人工标注真值图像的情况下,受到检测损失的弱监督。混合数据训练模式保证了IA-YOLO能够根据每幅图像的内容自适应地处理图像,从而达到较高的检测性能。
2 实验
我们评估了我们的方法在雾天和低光照场景下的有效性。滤波器组合为[去雾,白平衡( WB ) , Gamma ,对比度,色调,锐化],而Defog滤波器只在雾天条件下使用。
■ 实现细节
在提出的IA-YOLO方法中,所有实验的骨干网为Darknet-53。在训练过程中,我们随机调整图像大小为(32N×32N),其中N∈[9、19]。此外,采用图像翻转、裁剪和变换等数据增强方法扩充训练数据集。我们的IA-YOLO模型由Adam优化器以80个epochs进行训练。起始学习率为0.0001,批次大小为6。IA-YOLO在三个不同尺度下预测边界框,每个尺度下预测三个锚点。使用Tensorflow进行实验,并在Tesla V100 GPU上运行。
■ 有雾图像上的实验
图3:YOLOv3 II (第1、3、5列)和IA-YOLO (第2、4和6列)在合成VOC_Foggy_test图像(上排)和真实RTTS有雾图像(下排)上的检测结果。所提方法通过学习减少雾霾和锐化图像边缘,具有更好的检测性能,漏检和误检较少。

图7:不同方法在真实RTTS雾天图像上的检测结果。从左到右依次为:YOLOv3 II、Gird Dehaze+YOLOv3 I、MSBDN+YOLOv3 I和IA-YOLO。所提方法学习减少雾霾,增强图像对比度,从而以更少的漏检和误检获得更好的检测性能。

■ 低照度图像上的实验
图4给出了IA-YOLO与基准YOLOv3Ⅱ的定性比较。可以看出,我们提出的DIP模块能够自适应地增加输入图像的对比度,并揭示图像细节,这对于目标检测至关重要。

■ 消融研究
表5:DIP模块中滤波器的消融分析。

■ 有效分析
表7:不同方法的有效分析。

在IA-YOLO框架中,在YOLOv3中引入了一个具有165K可训练参数的小型CNNPP学习模块。IA-YOLO在单个Tesla V100 GPU上检测一幅544×544×3分辨率图像耗时44 ms。与YOLOv3基线相比,它仅增加了13 ms,比GridDehaze-YOLOv3和MSBDNYOLOv3分别快7 ms和50 ms。综上所述,IA-YOLO只增加了165K的可训练参数,同时在运行时间相当的所有测试数据集上取得了更好的性能。
结论
提出了一种新颖的IA-YOLO方法来改善恶劣天气条件下的目标检测,其中每个输入图像都进行了自适应增强,以获得更好的检测性能。开发了一个完全可微的图像处理模块,通过去除YOLO探测器的天气特异性信息来恢复潜在内容,其超参数由小型卷积神经网络预测。此外,整个框架以端到端的方式进行训练,其中参数预测网络通过检测损失进行弱监督学习一个合适的DIP模块。通过利用混合训练和参数预测网络的优势,提出的方法能够自适应地处理正常和不良天气条件。实验结果表明,我们的方法在雾天和低光照场景下的表现都比以前的方法要好得多。
至此,本文的内容就结束了。
相关文章:
【论文阅读笔记】用于恶劣天气条件下的目标检测的IA-YOLO(Image-Adaptive YOLO) | 适合雾天和低光照场景
目录 摘要 1 方法 ■ DIP模块 ▲像素级滤波器 ▲锐化滤波器 ▲去雾滤波器 ■ CNN-PP Module ■ 检测网络模块 ■ 混合数据训练 2 实验 ■ 实现细节 ■ 有雾图像上的实验 ■ 低照度图像上的实验 ■ 消融研究 ■ 有效分析 结论 论文题目:Image-Adapti…...
【Elasticsearch】Set up a data stream 创建data stream
在 Elasticsearch 中,数据流(Data Stream)是一种用于管理时间序列数据的高级功能,它通过自动管理索引的生命周期和版本控制,简化了大规模时间序列数据的存储和查询。以下是结合上述翻译内容,对 Elasticsear…...
redhat无网利用iso搭建本地yum源
redhat8 挂载iso镜像到本地目录 第一种方法: 上传rhel8的iso文件到服务器。 mkdir /mnt/cdrom mount -t iso9660 -o loop rhel-8.10-x86_64-dvd.iso /mnt/cdrom 第二种方法: 如果是vmware等自己安装的虚拟机,可以直接挂载iso镜像到cd/dvd…...
我的ChatGPT怎么登不上?
近期,不少用户反馈在使用ChatGPT时遇到登录困难、连接超时等问题。本文将从技术角度分析常见原因,并提供合规、安全的解决方案,同时结合开发者实际需求推荐实用工具,助您高效应对登录障碍。 ChatGPT登录失败的常见原因 网络环境限…...
飞机大战lua迷你世界脚本
-- 迷你世界飞机大战 v1.2 -- 星空露珠工作室制作 -- 最后更新:2024年1月 ----------------------------- -- 迷你世界API适配配置 ----------------------------- local UI { BASE_ID 7477478487091949474-22856, -- UI界面ID ELEMENTS { BG 1, -- 背景 BTN_LE…...
链表常用技巧和操作总结
链表是我们数据结构很重要的一点,也是常考的点 接下来我会先进行技巧总结,然后再通过具体的题来进行详解 总结 1.常用技巧 画图: 用笔是肯定比只用脑子强的,画图会更加清晰 引入虚拟头节点: 便于处理边界: 如果没有头节点,也就是第一个节点就有有效数据,就需要考虑边界问题…...
CSS的列表属性
列表相关属性,可以用在ul,ol,li元素上. CSS属性名功能属性值 list-style-type 设置列表符号 常用值如下: none:不显示前面的标识(很常用!) square:实心方块 disc:圆形 decimal:数字 lower-roma:小写罗马字 upper-roman:大写罗马字 lower-alph:小写字母 upper-alpha:大写字母 …...
Django 5实用指南(十三)安全性与防护
随着Web应用的普及,安全性问题越来越成为开发者关注的重点。Django5为Web开发者提供了强大的安全防护功能,可以帮助开发者防范常见的Web攻击,如SQL注入、跨站脚本攻击(XSS)、跨站请求伪造(CSRF)…...
cesium+vue3自定义HTML实体弹窗、加高德路网、防实体漂浮、让用户画圆、鹰眼
一、基础使用:Cesium.js基础使用(vue)-CSDN博客 1、基础路径 为 Cesium 库设置一个全局变量 CESIUM_BASE_URL,用于指定 Cesium 的资源文件(如 WebGL shaders、纹理、字体等)的 示例场景:假设你…...
Go红队开发—编解码工具
文章目录 开启一个项目编解码工具开发Dongle包Base64编解码摩斯密码URL加解密AES加解密 MD5碰撞工具开发 开启一个项目 这作为补充内容,可忽略直接看下面的编解码: 一开始用就按照下面的步骤即可 1.创建一个文件夹,你自己定义名字(建议只用…...
计算机毕业设计SpringBoot+Vue.js常规应急物资管理系统(源码+文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
thinkphp5对接阿里云ocr试卷切题
thinkphp5对接阿里云ocr试卷切题 提示:切题使用的是api:RecognizeEduPaperCut 以下是基于 ThinkPHP5.14 框架调用阿里云 RecognizeEduPaperCut 接口的详细实现步骤和代码示例。 文章目录 thinkphp5对接阿里云ocr试卷切题前言1、前置准备2、 配置文件3、控制器直接引…...
AI数据分析:用DeepSeek做数据清洗
在当今数据驱动的时代,数据分析已成为企业和个人决策的重要工具。随着人工智能技术的快速发展,AI 驱动的数据分析工具正在改变我们处理和分析数据的方式。本文将着重介绍如何使用 DeepSeek 进行数据清洗。 数据清洗是数据分析的基础,其目的是…...
免费轻巧多功能 PDF 处理工具:转换、压缩、提取一应俱全
软件技术 今天要给大家分享一款超实用的 PDF 处理工具,它免费又轻巧,如同随时待命的得力小帮手,功能之强大超乎想象,真的值得大家收藏。 这款工具是绿色版软件,解压后开启,满满的 PDF 处理功能便映入眼帘…...
基于JavaWeb开发的Java+SpringBoot+vue+element实现物流管理系统
基于JavaWeb开发的JavaSpringBootvueelement实现物流管理系统 🍅 作者主页 网顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定…...
计算机毕业设计SpringBoot+Vue.js华强北商城二手手机管理系统 (源码+文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
实验:k8s+keepalived+nginx+iptables
1、创建两个nginx的pod,app都是nginx nginx1 nginx2 2、创建两个的pod的service 3、配置两台keepalived的调度器和nginx七层反向代理,VIP设置192.168.254.110 keepalived调度器master keepalived调度器backup 两台调度器都配置nginx七层反向代理&#…...
DeepSeek入门学习
参考文档:DeepSeek(人工智能企业)_百度百科 DeepSeek-R1 凭借创新的强化学习技术实现重大突破。在极少量标注数据的基础上,通过深度优化的后训练阶段,显著提升了模型的推理能力。在数学运算、代码生成、自然语言推理等…...
几道考研数学题求解
函数性质问题 【题目】 已知函数 f ( x , y ) x 3 y 3 − ( x y ) 2 3 f(x, y) x^3 y^3 - (xy)^2 3 f(x,y)x3y3−(xy)23。设 T T T 为曲面 z f ( x , y ) z f(x, y) zf(x,y) 在点 ( 1 , 1 , 1 ) (1,1,1) (1,1,1) 处的切平面, D D D 为 T T T 与坐标…...
Highcharts 配置语法详解
Highcharts 配置语法详解 引言 Highcharts 是一个功能强大的图表库,广泛应用于数据可视化领域。本文将详细介绍 Highcharts 的配置语法,帮助您快速上手并制作出精美、实用的图表。 高级配置结构 Highcharts 的配置对象通常包含以下几部分:…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
