改进YOLOv3!IA-YOLO:恶劣天气下的目标检测

news2024/11/26 4:54:17

恶劣天气条件下从低质量图像中定位目标还是极具挑战性的任务。现有的方法要么难以平衡图像增强和目标检测任务,要么往往忽略有利于检测的潜在信息。本文提出了一种新的图像自适应YOLO (IA-YOLO)框架,可以对每张图像进行自适应增强,以提高检测性能。实验结果证明了IAYOLO方法在雾天和弱光情况下的有效性。

Image-Adaptive YOLO for Object Detection in Adverse Weather Conditions论文: https://arxiv.org/abs/2112.08088
代码: https://github.com/wenyyu/Image-Adaptive-YOLO

虽然基于深度学习的目标检测方法在传统数据集上取得了良好的效果,但在恶劣天气条件下从低质量图像中定位目标仍然具有挑战性。现有的方法要么难以平衡图像增强和目标检测任务,要么往往忽略有利于检测的潜在信息。

为了缓解这一问题,本文提出了一种新的图像自适应YOLO (IA-YOLO)框架,可以对每张图像进行自适应增强,以提高检测性能。针对YOLO探测器的恶劣天气条件,提出了一种可微分的图像处理(DIP)模块,并利用小型卷积神经网络(CNN-PP)对其参数进行预测。

IA-YOLO以端到端的方式学习CNN-PP和YOLOv3,这确保CNN-PP可以学习适当的DIP,以弱监督的方式增强图像进行检测。

本文提出的IA-YOLO方法可以在正常和恶劣天气条件下自适应处理图像。实验结果证明了IAYOLO方法在雾天和弱光情况下的有效性。

一、所提方法

在恶劣天气条件下拍摄的图像,由于特定天气信息的干扰,能见度较差,导致目标检测困难。为了解决这一挑战,本文提出了一种图像自适应检测框架,通过去除特定天气信息并揭示更多潜在信息。如图2所示,整个管道由一个基于cnn的参数预测器(CNNPP)、一个可微分图像处理模块(DIP)和一个检测网络组成。首先调整输入图像的大小为256x256,并将其输入到CNN-PP,以预测DIP的参数。然后,将经过DIP模块滤波后的图像作为YOLOv3检测器的输入。作者提出了一种端到端的混合数据训练方案,该方案具有检测损失,使CNN-PP能够学习适当的DIP,以弱监督方式增强图像的目标检测。

DIP Module

图像滤波器的设计应遵循可微性、分辨率独立的原则。对于基于梯度的CNN-PP优化,滤波器应该是可微的,以允许通过反向传播训练网络。由于CNN在处理高分辨率图像(如4000×3000)时会消耗大量的计算资源,所以在本文中,从下采样的大小为256×256的低分辨率图像中学习滤波器参数,然后将相同的滤波器应用到原始分辨率的图像中。因此,这些过滤器需要独立于图像分辨率。

我们提出的DIP模块由六个可微滤波器组成,具有可调超参数,包括Defog、White Balance(WB)、Gamma、Contrast、Tone和Sharpen。标准的颜色和色调操作符,如WB、Gamma、Contrast和Tone,可以表示为像素级滤波器。因此,设计的滤波器可以分为雾化、像素化和锐化。在这些滤波器中,除雾滤波器是专门为大雾场景设计的。具体情况如下。

1、像素级滤波器

像素级滤波器映射一个输入像素值 ��=(��,��,��) 转换为输出像素值 ��=(��,��,��),其中 (�,�,�)分别表示红、绿、蓝三个颜色通道的值。表1列出了四个像素级过滤器的映射函数,其中第二列列出了在本文的方法中要优化的参数。WB和Gamma是简单的乘法和功率变换。显然,它们的映射函数对于输入图像和参数都是可微的。

设计了可微对比度滤波器,输入参数设置原始图像和完全增强图像之间的线性插值。所示表1,映射函数中 ��(��) 的定义如下:

这里将tone 滤波器设计为一个单调的分段线性函数。用 � 参数学习tone 滤波器,用 {�0,�1,...,��−1} 表示,tone 曲线的点记为 (�/�,��/��),其中 ��=∑�=0�−1��。此外,映射函数用可微参数表示,这使得函数对于输入图像和参数都是可微的,如下所示

2、锐化滤波器

图像锐化可以突出图像的细节。就像未锐化掩模技术(Polesel, Ramponi, and Mathews 2000),锐化过程可以描述如下:

其中 �(�) 为输入图像, ���(�(�)) 为高斯滤波器, � 为正缩放因子。这个锐化操作对于 � 和 � 都是可微的。注意,锐化程度可以通过优化 � 调优目标检测性能。

3、除雾滤波器

基于暗通道先验方法设计了一个具有可学习参数的除雾滤波器。基于大气散射模型,朦胧图像的形成可以表述为:

其中 �(�) 为雾天图像, �(�) 为场景亮度。A为全球大气光, �(�) 为介质透射图,定义为:

其中 � 为大气的散射系数, �(�) 为场景深度。

为了恢复干净图像 �(�) ,关键是获取大气光A和透射图 �(�) 。为此,首先计算暗通道图,并选择最亮的1000个像素。然后,对雾霾图像 �(�) 的1000个像素平均估计A。

根据上式,可以推导出 �(�) 的近似解如下:

进一步介绍一个参数 � 除雾程度控制方法如下:

由于上面的操作是可微的,可以优化 � 通过反向传播使除雾滤波器更有利于雾天图像的检测。

CNN-PP Module

在相机图像信号处理(ISP)管道中,通常使用一些可调滤波器进行图像增强,其超参数由经验丰富的工程师通过视觉检查手动调整。

通常,这样的调优过程是非常笨拙和昂贵的,以找到合适的参数,广泛的场景。为了解决这一局限性,建议使用一个较小的CNN作为参数预测器来估计超参数,这是非常有效的。

以雾天场景为例,CNN-PP的目的是通过了解图像的全局内容,如亮度、颜色和色调以及雾的程度来预测DIP的参数。因此,下采样图像足以估计这些信息,可以大大节省计算成本。对于任意分辨率的输入图像,我们简单地使用双线性插值将其采样到256×256分辨率。如图2所示,CNN-PP网络由5个卷积块和2个全连接层组成。

每个卷积块包括一个带有stride=2的3 × 3卷积层和一个LeakyRelu。最后的全连接层输出DIP模块的超参数。这5个卷积层的输出通道分别为16、32、32、32和32。当参数总数为15时,CNN-PP模型只包含165K个参数。

Detection Network Module

在本文中,选择one-stage检测器YOLOv3作为检测网络。与之前的版本相比,YOLOv3基于ResNet的思想设计了darknet-53,由连续的3×3和1×1卷积层组成。通过对多尺度特征图进行预测,实现多尺度训练,从而进一步提高检测精度,特别是对小目标的检测精度。采用了与原来相同的网络结构和损失函数。

Hybrid Data Training

为了在正常和恶劣天气条件下都能达到理想的检测性能,采用了IA-YOLO混合数据训练方案。算法1总结了提出方法的训练过程。

在输入到网络进行训练之前,每一幅图像都有2/3的概率被随机添加某种雾或被转换为微光图像。无论是普通的还是合成的低质量训练数据,整个过程都是端到端训练,使用YOLOv3检测损失,确保IA-YOLO中的所有模块都可以相互适应。

因此,CNN-PP模块在不手动标注GT真实图像的情况下,受到检测损失的弱监督。混合数据训练模式确保IA-YOLO可以根据每张图像的内容自适应处理图像,从而实现较高的检测性能。

二、实验

指标如下:

可视化结果:

参考文献

[1].Image-Adaptive YOLO for Object Detection in Adverse Weather Conditions

Illustrastion by By Marina Mogulskaya from icons8

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows一键添加命名后缀(文件)

温馨提示:使用前建议先进行测试和原文件备份,避免引起不必要的损失。 (一)需求描述 之前老板让我给大量文件添加命名前缀,如今为了防患于未然,我决定把添加命名后缀的功能也实现一下,虽然这与添…

EASYX键盘交互

eg1:使用键盘的上下左右按钮控制小球的上下左右移动 #include <stdio.h> #include <easyx.h> #include <iostream> #include <math.h> #include <conio.h> #define PI 3.14int main() {// 键盘交互initgraph(800, 600);setorigin(400, 300);set…

Linux网卡

网卡 网卡&#xff08;Network Interface Card&#xff0c;NIC&#xff09;是一种计算机硬件设备&#xff0c;也称为网络适配器或网络接口控制器。一个网卡就是一个接口 网卡组成和工作原理参考https://blog.csdn.net/tao546377318/article/details/51602298 每个网卡都拥有唯…

Mac删除照片快捷键ctrl加什么 Mac电脑如何批量删除照片

Mac电脑是很多人喜欢使用的电脑&#xff0c;它有着优美的设计、高效的性能和丰富的功能。如果你的Mac电脑上存储了很多不需要的照片&#xff0c;那么你可能会想要删除它们&#xff0c;以节省空间和提高速度。那么&#xff0c;Mac删除照片快捷键ctrl加什么呢&#xff1f;Mac电脑…

双目视觉计算三维坐标

一、原理 双目视觉的基本原理&#xff0c;以及公式推导&#xff0c;我参考的b站上的视频&#xff0c;链接如下&#xff1a; 2-线性相机模型-Linear Camera Model-Camera Calibration_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Q34y1n7ot/?p2&spm_id_from333.…

链表加法与节点交换:数据结构的基础技能

目录 两两交换链表中的节点单链表加一链表加法使用栈实现使用链表反转实现 两两交换链表中的节点 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点…

13年测试老鸟,性能压测-死锁定位分析/内存溢出实例(超详细)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 死锁问题定位与分…

0029Java程序设计-家政服务平台管理系统

文章目录 摘要目录系统设计开发环境 摘要 本文首先研究并介绍国内外目前的背景和现状&#xff0c;在此基础上给出论文的主要研究内容&#xff0c;其次&#xff0c;对家政服务平台管理系统的需求进行了分析。再次&#xff0c;对家政服务平台管理系统进行了总体设计&#xff0c;…

虚拟机安装详细步骤(简单版)

虚拟机作为工作以及学习的工具&#xff0c;是很多人必不可少的一款软件&#xff0c;今天就给大家讲一讲如何将虚拟机成功安装上系统&#xff0c;其中呢也将部分问题在文章中表达&#xff0c;因为很多人表示出现了一些问题&#xff0c;却没有办法解决&#xff0c;所以写了这一篇…

0032Java程序设计-基于JavaEE的智能化酒店点餐收款系统的设计与实现论文

文章目录 摘 要目录系统设计开发环境 摘 要 酒店点餐收款系统是为了实现酒店餐饮自动化管理而设计的&#xff0c;它完全取代了原来酒店餐饮管理一直使用的人工处理的工作方式&#xff0c;并且避免了由于管理人员的工作疏忽以及管理质量问题所造成的各种错误&#xff0c;为及时…

给定两个单链表,编写算法找出两个链表的公共结点

给定两个单链表&#xff0c;编写算法找出两个链表的公共结点 算法思路&#xff1a; 如果两个链表有公共结点&#xff0c;那从某个公共结点开始&#xff0c;就两路并一路了&#xff0c;类似下图 知道这个性质之后我们就可以解决问题了&#xff0c;先判断出两个链表哪个是长链…

【Jenkins】新建任务FAQ

问题1. 源码管理处填入Repository URL&#xff0c;报错&#xff1a;无法连接仓库&#xff1a;Error performing git command: ls-remote -h https://github.com/txy2023/GolangLearning.git HEAD 原因&#xff1a; jenkins全局工具配置里默认没有添加git的路径&#xff0c;如果…

Openssl数据安全传输平台017:客户端在Linux上的编译与调试记录

文章目录 1 在windows上先预编译2 Centos上进入项目文件夹进行编译2.1 找不到protobuf的google文件夹2.2 找不到动态库ljson2.3 动态库软链接失效2.4 undefined reference to Json::Value::asString[abi:cxx11]() const![在这里插入图片描述](https://img-blog.csdnimg.cn/5a8e…

快递单号批量查询教程,掌握包裹动态,让你成为物流达人!

亲爱的读者们&#xff0c;你是否曾经为了追踪快递包裹而烦恼&#xff1f;是否曾经为了查询多个快递单号而感到繁琐&#xff1f;现在&#xff0c;我们为你带来一个高效便捷的解决方案——快递单号批量查询教程&#xff01;让你轻松掌握包裹动态&#xff0c;成为物流达人&#xf…

【深入浅出】寄存器精讲第一期

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;数据结构、算法模板、汇编语言 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. ⛳️开篇1.1 &#x1f514;CPU 概述&#xff08;简单了解&#xff09…

两数和的目标 python (初学者vs程序员)

题目描述 1&#xff09;给定一个整数列表&#xff0c;在列表中&#xff0c;从前向后查找两个元素使其相加之和等于目标数&#xff0c;并返回两个整数在列表中的下标。如果没有符合条件的数字&#xff0c;输出False&#xff0c;本题假设题目的解唯一。‬‪‬‪‬‪‬‪‬‮‬‪…

07. 蜂鸣器

07. 蜂鸣器 硬件原理分析代码编写 硬件原理分析 此处为PNP型三极管&#xff0c;BEEP为低的时候三极管才会导通&#xff0c;也就是BEEP0时&#xff0c;蜂鸣器会叫。BEEP是通过SNVS_TAMPER1这个IO控制的 代码编写 将前面的bsp、imx6ul、obj和project拷贝过来 初始化SNVS_TAMPE…

首次cmake 多目录构建失败

新建test3目录&#xff0c;新建如下图空目录&#xff1b;前文有4个源码文件&#xff0c;2个h&#xff0c;2个cpp&#xff1b;把前文的cpp文件拷贝到src目录下&#xff0c;把h文件拷贝到include目录下&#xff1b;前文的CMakeLists.txt拷贝到test3目录下&#xff1b; 在src目录新…

基于小安派AiPi-Eye-S1的Nes游戏机

1.作品展示 作品功能可见以下B站视频 外壳可以使用灰太狼大佬提供的外壳STL文件。在嘉立创三维猴上打印&#xff08;外壳12元快递6元&#xff09;。 外壳从以下的帖子中获取&#xff1a; 模型分享 2.作品说明 2.1 硬件部分 硬件上使用到了AiPi-Eye-S1开发板以及3.5寸 240*3…

社恐了怎么办?如何改变社交恐惧症?

社恐这个词已经算是普及了&#xff0c;自嘲自己是社恐的人真的挺多的&#xff0c;好像一句我社恐了就能解析很多问题&#xff0c;其实真正的社恐远比我们想象的要痛苦多了&#xff0c;社恐能被更多人认识到本来是件好事&#xff0c;但是过于的用社恐来给自己贴标签&#xff0c;…