ImageAdaptive-YOLO

news2025/2/26 9:58:04

又发现了一个yolo~~  恶劣天气下的目标检测 也叫IA-YOLO

源代码:https://github.com/wenyyu/ImageAdaptive-YOLO

尽管基于深度学习的目标检测方法在传统数据集上取得了可喜的结果,但从恶劣天气条件下捕获的低质量图像中定位目标仍然具有挑战性。现有方法要么难以平衡图像增强和目标检测的任务,要么经常忽略对检测有益的潜在信息。

为了缓解这个问题,有研究者提出了一种新颖的图像自适应YOLO (IA-YOLO) 框架,其中每个图像都可以自适应增强以获得更好的检测性能。

背景及相关目标检测回顾

基于CNN的方法已在目标检测中盛行。它们不仅在基准数据集上取得了可喜的性能,而且还被部署在自动驾驶等实际应用中。由于输入图像的域偏移,由高质量图像训练的一般目标检测模型在恶劣的天气条件下(例如,有雾和暗光)往往无法获得令人满意的结果。Narasimhan和Nayar以及You等人提出在恶劣天气下拍摄的图像可以分解为干净的图像及其对应的天气信息,而恶劣天气下的图像质量下降主要是由于天气信息和物体之间的相互作用造成的,这导致检测性能差。

 

上图显示了雾天条件下目标检测的示例。可以看出,如果图像可以根据天气状况进行适当的增强,则可以恢复更多有关原始模糊目标和错误识别目标的潜在信息。

为了解决这个具有挑战性的问题,Huang、Le和Jaw(DSNet: Joint semantic learning for object detection in inclement weather conditions)采用了两个子网络来联合学习可见性增强和目标检测,其中通过共享特征提取层来减少图像退化的影响。然而,在训练期间很难调整参数以平衡检测和恢复之间的权重。另一种方法是通过使用图像去雾(Multi-Scale Boosted Dehazing Network with Dense Feature FusionGridDehazeNet: Attention-Based Multi-Scale Network for Image Dehazing)和图像增强(Zero-reference deep curve estimation for low-light image enhancement)等现有方法对图像进行预处理来淡化天气特定信息的影响。然而,这些方法必须包含复杂的图像恢复网络,需要在像素级监督下单独训练。这需要手动标记要恢复的图像。这个问题也可以被视为无监督的domain adaptation任务。与具有清晰图像(源图像)的训练检测器相比,假设在恶劣天气下捕获的图像(目标图像)具有分布偏移。这些方法大多采用domain adaptation原则,侧重于对齐两个分布的特征,而通常忽略了基于天气的图像恢复过程中可以获得的潜在信息。 

具体来说,研究者提出了一个可微分图像处理 (DIP) 模块来考虑YOLO检测器的不利天气条件,其参数由小型卷积神经网络(CNN-PP)预测。以端到端的方式联合学习CNN-PP和YOLOv3,这确保了CNN-PP可以学习适当的DIP,以弱监督的方式增强图像以进行检测。提出的IA-YOLO方法可以在正常和不利的天气条件下自适应地处理图像。实验结果非常令人振奋,证明了提出的IA-YOLO方法在有雾和弱光场景中的有效性。

新框架分析

接下来我们直接开始分析新框架。

在恶劣天气条件下拍摄的图像,由于天气特定信息的干扰,导致目标检测困难。为了应对这一挑战,研究者建议通过删除特定天气信息并揭示更多潜在信息来构建图像自适应检测框架。如上图所示,整个pipeline由基于CNN的参数预测器(CNNPP)、可微分图像处理模块(DIP)和检测网络组成。

首先将输入图像resize为256×256的大小,并将其输入CNN-PP以预测DIP的参数。然后,将DIP模块过滤后的图像作为YOLOv3检测器的输入。提出了一种具有检测损失的端到端混合数据训练方案,以便CNN-PP可以学习适当的DIP以弱监督的方式增强图像以进行目标检测。

DIP Module

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

新提出的DIP模块由六个具有可调超参数的可微滤波器组成,包括去雾、白平衡 (WB)、Gamma、对比度、色调和锐化。例如WB、Gamma、对比度和色调,可以表示为逐像素过滤器。因此,研究者设计的过滤器可以分为去雾、像素过滤和锐化。在这些滤镜中,Defog滤镜是专门为有雾场景设计的。

CNN-PP Module

在图像信号处理 (ISP) pipeline中,通常采用一些可调滤波器来增强图像,其超参数由经验丰富的工程师通过visual inspection手动调整。通常,这样的调整过程对于为广泛的场景找到合适的参数是非常笨拙和昂贵的。为了解决这个限制,研究者建议使用一个小的CNN作为参数预测器来估计超参数,这是非常有效的。

Detection Network Module

最终选择one-stage检测器YOLOv3作为检测网络,它广泛用于实际应用,包括图像编辑、安全监控、人群检测和自动驾驶。它通过对多尺度特征图进行预测来实现多尺度训练,从而进一步提高检测精度,尤其是对于小物体。 采用与原始YOLOv3相同的网络架构和损失函数。

实验及可视化
整个算法流程可以总结为如下伪代码:

 

 

 

whaosoft aiot http://143ai.com  

 

 

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

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

相关文章

三顾茅庐,七面阿里,25k*16offer,还原我的大厂面经

写在片头:声明,勿杠 首先简单说一下,这三次面试阿里并不是一次性去面的,实际上第一次面试时候还在大四,找的实习岗,不太清楚是什么部门,别问我为什么还记得面试题,有记录和复盘的习…

C++Easyx世界杯版跑酷小游戏

🐑本文作者:克隆窝🐑 🎮🔊本文代码适合编译环境:DEV-C💻 ✨🧨温馨提示:此文乃作者心血,如要转载请标注版权,否则视为抄袭!&#x1f38…

计算机毕设Python+Vue羊肉溯源系统(程序+LW+部署)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Python图形用户界面(GUI)之PyQt6入门及转换视频格式示例

上篇文章中学习的wxPython用户界面,没有拖拽组件等操作,不是很方便,下面来看个更加强大的GUI>PyQt系列,拥有拖拽组件界面,这样设计界面就显得非常简单与方便了。Qt库由 Riverbank Computing开发,是最强大…

【Linux】版本控制器Git

​🌠 作者:阿亮joy. 🎆专栏:《学会Linux》 🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉Git概述&a…

Pytorch~单卡改多卡

搬来了这个,这是尝试单卡改多卡加速的过程中出现的bug记录:一是继承DistributedSampler的漏洞百出,二是master进程无法正常结束,这里详细的阐述了出错的细节以及给出了修改的方法。 先说明一下背景,目前正在魔改以下这篇论文的代…

JavaScript 中事件循环(eventloop)、垃圾回收机制、闭包、递归函数的理解及示例

事件循环(eventloop) 概念 js 是单线程,为防止阻塞代码,把同步代码交给 js 引擎执行 异步代码交给宿主环境, 同步代码放入执行栈中 异步代码等待时机送入任务队列中, 执行栈执行完毕 会去任务队列看是否有异步任务 有就送到执行…

Postman核心功能解析-参数化和测试报告

参数化处理 参数化:针对于某一个接口,有大量的的测试数据需要批量验证,一个一个的更改请求参数太耗时耗力,使用参数化批量处理数据会比较高效,常规通过文档参数化实现。 创建文件 格式CSV 文件内第一行信息 需要和参数…

谈谈转行数据分析以及工作的心得

由于两个月前写了一篇文章叫《自己找数据分析师时犯的错误》,然后这期间就一直有人问我找到工作了吗?面试的时候,面试官都是问你的什么呢?你从事数据分析工作之后主要干什么呢?所以想在这里为大家分别解答下。 首先回…

【Linux】编译器gcc / g++的使用

​🌠 作者:阿亮joy. 🎆专栏:《学会Linux》 🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉gcc / g的…

快速玩转ChatGPT全攻略

本文内容: 准备工作。 注册接嘛平台。 注册OpenAI账号。 开始畅聊。 一.准备工作: Proxy,美国,日本,韩国,新加坡,印度,不能用香港。 Chrome浏览器。 二、注册接嘛平台&#x…

在ARM微控制器上部署MATLAB/Simulink仿真模型

在ARM微控制器上部署MATLAB/Simulink仿真模型 苏勇,suyong_yq126.com,2022年12月 文章目录在ARM微控制器上部署MATLAB/Simulink仿真模型IntroductionOverviewMATLAB、Simulink、StateFlow、Real-Time Workshop之间的关系MATLAB Coder、Simulink Coder、…

最新版Android原生集成RN

前言 现在不少应用都是采用了混合开发模式,不论是原生加RN,或是原生加Flutter,或是原生加H5。原生实现主业务线,其他部分可以借助跨平台方案开发,提高开发效率,或者实现热更新,调高业务迭代效率。 下面简单介绍一下A…

如何调整参数来更好地使用频谱分析仪

前言 使用频谱分析仪,最简单最直观的目的就是寻找并观测范围内的频谱信号,乃至将其保存下来做更进一步的数字处理或分析。因此在除了最基本的中心频率与扫宽设置外,合理使用VBW,RBW等参数设置才能获取更为真实准确的信号。 图一 合理调整参数…

Diffusion Model合集 part3

扩散模型原理介绍3八,Diffusion Probabilistic Model的算法代码而我们可以有多种建模目标:Lt−1Eq[12σt2∣∣μt∼(xt,x0)−μθ(xt,t)∣∣2]CL_{t-1}\mathbb{E}_{q}\left[\frac{1}{2\sigma_{t}^{2}}||\overset{\sim}{\mu_{t}}(\mathbf{x}_{t},\mathbf{…

系统调用(Linux)

目录 1.内核态和用户态: 1.1CPU的两种状态: 1.2CPU 指令集权限: 1.3用户态与内核态的空间: 1.4用户态与内核态的切换: 2.系统调用: 2.1linux框架图: 2.2系统调用和API: 2.3系…

The release Method

The release Method The role of the release method is the reverse of open. Sometimes youll find that the method implementation is called device_close instead of device_release. Either way, the device method should perform the following tasks: 释放方法的作用…

跟我学 UML 系统建模

UML 系统建模 1 概述 1.1 课程概述 汇集 UML 及其相关的一些话题回顾 UML 相关的符号与概念以电商订单相关业务为例,借助 UML 完成系统建模将 UML 变成提升建模效率,表达架构思想的工具 1.2 什么是 UML ​ Unified Modeling Language 统一建模语言&a…

Leetcode-1753-移除石子的最大得分

1、堆 我们可以维护一个大顶堆,其中储存了三个石子堆中石子的个数。为了确保我们的分数尽可能大,我们每次都需要从最大的两个堆中取出石子。因此我们不断循环,每次都从当前最大的堆中取出石子。值得注意的是,为了确保能够发现游戏…

数据管理篇之存储和成本管理

第14章 存储和成本管理 目标:有效的降低存储资源的消耗,节省存储成本。 1.数据压缩 问题 在分布式文件系统中,为了提高数据的可用性与性能 ,通常会将数据存储3份,这就意味着存储 1TB 的逻辑数据, 实际上…