当前位置: 首页 > news >正文

改进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

相关文章:

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

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

Vue路由跳转的几种方式

1.this. $router.push( ) 跳转到指定的URL,在history栈中添加一个记录,点击后退会返回上一个页面。 1. 不带参数// 字符串this.$router.push(/home)this.$router.push(/home/first)// 对象this.$router.push({path:/home})this.$router.push({ path: /…...

TiDB x 汉口银行丨分布式数据库应用实践

汉口银行是一家城市商业银行,近年来专注科技金融、民生金融等领域。在数据库国产化改造中,汉口银行引入了 TiDB 数据库,并将其应用在重要业务系统:头寸系统中,实现了一栈式的数据服务,同时满足了高并发、低…...

uci机器学习数据库简介

UCI(University of California, Irvine)机器学习数据库是经过精心整理的、用于研究和开发机器学习算法的数据集合。UCI机器学习数据库是一个公开的、广泛使用的数据集合,它由加州大学欧文分校的计算机科学系维护。该数据库中包含了许多数据集…...

多人协作使用git如何解决冲突?

什么情况会产生冲突 git merge XXX(合并分支时的冲突): 当你尝试将一个分支的更改合并到另一个分支时,如果两个分支都修改了相同的文件的相同部分,Git 将无法自动解决冲突,因此会发生冲突。你需要手动解决这些冲突,然后…...

基于【逻辑回归】的评分卡模型金融借贷风控项目实战

背景知识: 在银行借贷过程中,评分卡是一种以分数形式来衡量一个客户的信用风险大小的手段。今天我们来复现一个评分A卡的模型。完整的模型开发所需流程包括:获取数据,数据清洗和特征工程,模型开发&#xff0c…...

企业拉美跨境出海面对时延情况怎么办?

随着全球化不断发展,中国企业也不断向海外拓展业务,开拓市场,增加收入来源,扩大自身品牌影响力。然而出海企业面临不同以往的困难和挑战,在其中不可避免面临的跨境网络时延问题,如何选择区域进行部署企业业…...

【vector题解】只出现一次的数字 | 电话号码的数字组合

只出现一次的数字 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 给你一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。 你必须设计并…...

VS2022 开发方式

使用 C# 在VS 2022 上开发时,发现有多种项目类型可以创建。这些类型放一起容易搞混,于是记录一下各种类型的区别。 这里主要介绍windows控制台程序、MFC程序、WPF程序、WinForm程序的特点。 创建哪种应用? 创建控制台应用 Windows控制台程序…...

【Python语言速回顾】——数据可视化基础

目录 引入 一、Matplotlib模块(常用) 1、绘图流程&常用图 ​编辑 2、绘制子图&添加标注 ​编辑 3、面向对象画图 4、Pylab模块应用 二、Seaborn模块(常用) 1、常用图 2、代码示例 ​编辑 ​编辑 ​编辑 ​…...

java实现pdf文件添加水印,下载到浏览器

java实现pdf文件添加水印&#xff0c;下载到浏览器 添加itextpdf依赖 <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.8</version> </dependency>文件下载到浏览器和指定路径 …...

代码随想录算法训练营第四十一天丨 动态规划part04

01背包理论基础 见连接&#xff1a;代码随想录 416. 分割等和子集 思路 01背包问题 背包问题&#xff0c;大家都知道&#xff0c;有N件物品和一个最多能背重量为W 的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品只能用一次&#xff0c;求解…...

PyCharm免费安装和新手使用教程

简介 PyCharm是一款由JetBrains公司开发的Python集成开发环境&#xff08;IDE&#xff09;。它提供了一系列强大的功能&#xff0c;包括自动代码完成、语法高亮、自动缩进、代码重构、调试器、测试工具、版本控制工具等&#xff0c;使开发者可以更加高效地开发Python应用程序。…...

使用Python的Scikit-Learn进行决策树建模和可视化:以隐形眼镜数据集为例

决策树是一种强大的机器学习算法&#xff0c;它在数据挖掘和模式识别中被广泛应用。决策树模型可以帮助我们理解数据中的模式和规则&#xff0c;并做出预测。在本文中&#xff0c;我们将介绍如何使用Python的Scikit-Learn库构建决策树模型&#xff0c;并使用Graphviz进行可视化…...

开源软件:释放创新的力量,改变数字世界的游戏规则

在充满活力的技术领域&#xff0c;创新是至高无上的&#xff0c;有一种方法已获得显著的吸引力——开源软件。开源软件凭借其透明、协作和无限可能性的精神&#xff0c;彻底改变了我们开发、共享和定制应用程序的方式。从操作系统到数据分析工具&#xff0c;其影响跨越了多个领…...

【QT】鼠标常用事件

新建项目 加标签控件 当鼠标进去&#xff0c;显示【鼠标进入】&#xff0c;离开时显示【鼠标离开】 将QLable提升成自己的控件&#xff0c;然后再去捕获 添加文件 改继承的类名 提升类 同一个父类&#xff0c;可以提升 效果 现在代码就和Qlabel对应起来了。 在.h中声明&…...

LuatOS-SOC接口文档(air780E)--mlx90640 - 红外测温(MLX90640)

常量# 常量 类型 解释 mlx90640.FPS1HZ number FPS1HZ mlx90640.FPS2HZ number FPS2HZ mlx90640.FPS4HZ number FPS4HZ mlx90640.FPS8HZ number FPS8HZ mlx90640.FPS16HZ number FPS16HZ mlx90640.FPS32HZ number FPS32HZ mlx90640.FPS64HZ number FPS6…...

java连接本地数据库可以简写为///

java连接数据库配置文件写为&#xff1a; server:port: 8091 spring:application:name: user-managerdatasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/user?serverTimezoneAsia/Shanghai&characterEncodingutf-8username: root…...

基于springboot漫画动漫网站

基于springbootvue漫画动漫网站 摘要 基于Spring Boot的漫画动漫网站是一个精彩的项目&#xff0c;它结合了现代Web开发技术和漫画爱好者的热情。这个网站的目标是为用户提供一个便捷的平台&#xff0c;让他们能够欣赏各种漫画和动漫作品&#xff0c;与其他爱好者分享他们的兴趣…...

autoFac 生命周期 试验

1.概述 autoFac的生命周期 序号名称说明1InstancePerDependency每次请求都创建一个新的对象2InstancePerLifetimeScope同一个Lifetime生成的对象是同一个实例3SingleInstance每次都用同一个对象 2.注 InstancePerLifetimeScope 同一个Lifetime生成的对象是同一个实例&#x…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中&#xff0c;拉取视频流只要求udp方式&#xff0c;从2016开始要求新增支持tcp被动和tcp主动两种方式&#xff0c;udp理论上会丢包的&#xff0c;所以实际使用过程可能会出现画面花屏的情况&#xff0c;而tcp肯定不丢包&#xff0c;起码…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker &#xff1b;并安装。 基础操作不再赘述。 打开 macOS 终端&#xff0c;开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...