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

恶劣天气条件下从低质量图像中定位目标还是极具挑战性的任务。现有的方法要么难以平衡图像增强和目标检测任务,要么往往忽略有利于检测的潜在信息。本文提出了一种新的图像自适应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

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

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

相关文章

基于PyTorch的中文情绪分析器设计与开发

收藏和点赞,您的关注是我创作的动力 文章目录 概要 一、相关基础理论2.1 主流深度学习框架2.2 神经网络2.2.1 神经网络基础 二、中文情感分类模型构建3.1 开发环境3.2 数据部分3.3 文本特征提取3.3.1、过滤标点符号3.3.2 中文分词、单词过滤 三 运行结果与分析五 结…

JAVA基础(JAVA SE)学习笔记(十)多线程

前言 1. 学习视频: 尚硅谷Java零基础全套视频教程(宋红康2023版,java入门自学必备)_哔哩哔哩_bilibili 2023最新Java学习路线 - 哔哩哔哩 第三阶段:Java高级应用 9.异常处理 10.多线程 11.常用类和基础API 12.集合框架 13.泛型 14…

Android任务栈和启动模式

Andrcid中的任务栈是一种用来存放Activity实倒的容器。任务最大的特点就是先进后出,它主要有两个基本操作,分别是压栈和出栈。通常Andaid应用程序都有一个任务栈,每打开一个Activity时,该Activity就会被压入任务栈。每销毁一个Act…

day02 矩阵 2023.10.26

1.矩阵 2.矩阵乘法 3.特殊矩阵 4.逆矩阵 5.正交矩阵 6.几何意义 7.齐次坐标 8.平移矩阵 9.旋转矩阵 10.缩放矩阵 11.复合运算

linux杀毒软件下载、安装(在线安装、离线安装)

下载 ClamAVNet 离线安装 # 离线安装 rpm -ivh --prefix/usr/local/clamav clamav*linux.x86_64.rpm # 添加用户组和组成员 groupadd clamav useradd -g clamav clamav # 创建日志目录、病毒库目录和套接字目录 mkdir -p /usr/local/clamav/logs mkdir -p /usr/local/clamav/…

Flask Run运行机制剖析

一、前言 已经玩了一段时间Flask ,每次调用app.run(或flask run)就可以启动应用,今天我们就来了解一下run背后究竟做了些什么事情。 注:通过上面几行代码就可以启动一个Flask服务器,打开浏览器输入http://127.0.0.1:5000, 页面上…

【广州华锐互动】飞机诊断AR远程指导系统为工程师提供更多支持

随着科技的发展,飞机的维护工作也在不断进步。其中,AR(增强现实)技术的应用使得远程运维成为可能。本文将探讨AR在飞机诊断远程指导系统中的应用,以及它对未来航空维护模式的影响。 AR远程指导系统是一种使用增强现实技…

taro全局配置页面路由和tabBar页面跳转

有能力可以看官方文档:Taro 文档 页面路由配置,配置在app.config.ts里面的pages里: window用于设置小程序的状态栏、导航条、标题、窗口背景色,其配置项如下: tabBar配置:如果小程序是一个多 tab 应用&…

MSQL系列(十一) Mysql实战-Inner Join算法底层原理及驱动表选择

Mysql实战-Inner Join算法驱动表选择 前面我们讲解了BTree的索引结构,及Mysql的存储引擎MyISAM和InnoDB,也详细讲解下 left Join的底层驱动表 选择, 并且初步了解 Inner join是Mysql 主动选择优化的驱动表,知道索引要建立在被驱动表上 那么对于Inner j…

【java学习—十】操作集合的工具类Collections(8)

文章目录 1. 操作集合的工具类: Collections2. 应用3. 查找、替换3.1. max 与 min3.2. 根据Comparator返回max(min) 3.3. frequency 与 replaceAll4. 同步控制 1. 操作集合的工具类: Collections Collections 是一个操作 Set 、List 和 Map 等集合的工具…

揭示沉浸式展览设计方案中的创新展示技术

随着数字多媒体技术在展览设计方案中的广泛应用,让传统的静态展示方式,走向了更为生动、立体的动态化设计模式,而其中最令人瞩目的当属沉浸式展览展示,它以其独特的展示方式和引人入胜的体验效果,引发了大量的关注和热…

解决找不到msvcr120.dll无法继续执行问题的5个方法,快速解决dll问题

在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是找不到msvcr120.dll的错误。这个错误通常发生在运行某些程序或游戏时,它会导致程序无法正常启动或运行。那么,如何解决找不到msvcr120.dll的问题呢?下面我…

深度学习数据集大合集—疾病、植物、汽车等

最近又收集了一大批深度学习数据集,今天分享给大家!废话不多说,直接上数据! 1、招聘欺诈数据集 招聘欺诈数据集:共收集了 200,000 条数据,来自三个网站。 该数据集共收集了 200.000 条数据,分别…

HackTheBox-Starting Point--Tier 1---Tactics

文章目录 一 题目二 实验过程三 Psexec工具使用 一 题目 Tags Network、Protocols、SMB、Reconnaissance、Misconfiguration译文:网络、协议、中小企业、侦察、配置错误Connect To attack the target machine, you must be on the same network.Connect to the S…

自动化测试实战篇:UI自动化测试用例管理平台搭建

用到的工具:python3 django2 mysql RabbitMQ celery selenium python3和selenium这个网上很多教程,我不在这一一说明; 平台功能介绍: 项目管理:用于管理项目。每个项目可以设置多个环境,例如开发环境…

怎样才知道一个单片机的性能到极限了?

怎样才知道一个单片机的性能到极限了? 就题主的问题,应该是想问CPU利用率的问题。可以看看Rt-thread中关于统计CPU利用率函数,其主要实现方式是在idle线程先关闭中断计数后,正常计数(可被其他线程打断),最近很多小伙伴…

竞赛知识点11【线段树】

文章目录 一、概念二、基本操作2.1、建树2.2、区间询问操作2.3、单点修改2.4、区间修改一、概念 线段树是用一种树状结构来存储一个连续区间的信息的数据结构。 它主要用于处理一段连续区间的插入,查找,统计,查询等操作。 复杂度: 设区间长度是 n n n,所有操作的复杂度是 l…

java修仙基石篇->instanceof子父类检查

instanceof检查子父类(或者是否能被强转) 作用1:检查某对象是否是某类的子类 如:儿子类继承了父亲类。 检查儿子类对象是否属于父亲类 作用2:检查两个对象是否可以强转 语法: 子类对象 instanceof 父…

蚂蚁蚁盾发布实体产业「知识交互建模引擎」,最快10分钟定制AI风控模型

数字化起步晚、数据分散稀疏、专业壁垒高、行业知识依赖「老师傅」,是很多传统产业智能化发展面临的难题。2023年云栖大会上,蚂蚁集团安全科技品牌蚁盾发布“知识交互建模引擎”,将实体产业知识与AI模型有机结合,助力企业最快10分…

【23真题】Top3简单专业课似双非!

今天分享的是23年复旦大学957的信号与系统试题及解析。 本套试卷难度分析:这套卷子平均分为120左右,最高分145分。22年复旦大学957信号与系统,我也发布过,若有需要戳这里自取!本套试题内容难度中等偏下,说…