水下目标检测(低光照目标检测)方法-发表在Patter Recognition,代码已开源

本文主要是介绍水下目标检测(低光照目标检测)方法-发表在Patter Recognition,代码已开源,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这里写自定义目录标题

  • 前言
  • 动机
  • 贡献
  • Overview
  • 一些实验结果
    • 数据集
    • 主要实验结果
    • 实验结果展示
  • 总结

前言

Hi,各位读者,好久不见!现在我已经从北大博士毕业,成为一名小青椒啦!工作还是需要宣传的。今天想分享我在水下目标检测的工作:《A gated cross-domain collaborative network for underwater object detection》,发表在中科院一区期刊《Pattern Recognition》,代码已经开源:Github
欢迎大家引用我的工作,也欢迎学术合作👏

动机

水下目标检测(Underwater Object Detection,UOD)与通用目标检测(Generic Object Detection,GOD)之间最大的区别在于不同的检测环境。水下图像不可避免地受到能见度差、光线折射、吸收和散射等影响。尽管有研究通过水下图像增强(Underwater Image Enhancement, UIE)技术改善图像质量以提高目标检测性能,但也有研究显示,仅依赖图像增强可能不足以提升检测效果,有时甚至会导致性能的显著下降。这主要是因为图像增强技术虽然能在视觉上改善图像,但机器对场景的理解与人眼存在本质差异,仅通过调整颜色、亮度和对比度并不能充分提供目标检测所需的信息。而且,图像增强的过程不可避免地移除或改变图像中的关键细节,引入噪声或伪影。针对这一问题,有研究者探索了结合水下视觉增强和目标检测的策略,这些策略主要分为预处理方式和多任务学习方式。如图(a)所示,在预处理方式中,水下图像增强方法作为预处理步骤来生成增强图像,然后在生成的增强图像上进行目标检测。然而,由于水下图像增强方法可能引入噪声或伪影,检测算法的性能无法显著提高。而在多任务学习策略中,视觉恢复和目标检测被视为一个联合优化的多任务学习问题,以引导图像增强朝着检测有利的方向进行,如图(b)所示。然而,这些研究方法需要匹配的模糊和清晰图像对进行训练,这在实际应用中难以获得。(辛辛苦苦画的图,如有需要,务必引用!!!)
辛辛苦苦画的图,如有需要,务必引用
与先前的方法不同,本文提出了一种基于门控跨域协作网络的水下目标检测方法(A gated cross-domain collaborative network for underwater object detection,GCC-Net),将来自水下图像增强模型生成的增强图像领域和原始图像领域的特征进行交互和融合,如图(c)所示。受水下图像增强模型工作的启发,增强图像可以提高可见性质量。本文工作受到以下问题的启发:为什么这些视觉上更清晰的增强图像会降低水下目标检测的性能?这可能是因为图像增强过程丢失了一些用于目标检测的有用的原始信息。因此,本文提出的方法尝试整合来自原始域和增强域的特征。由于增强图像可以提高水下图像的视觉质量,提供更清晰、更可辨识的对象边界,这有助于解决水下目标检测中遇到的低对比度和弱光照问题。另一方面,原始图像保留了场景的自然特征,并提供了关于对象的清晰纹理信息。增强图像域和原始图像域都为水下目标检测提供独特而有价值的信息,因此探索原始图像和增强图像之间的交互和融合对于准确识别水下对象将是有益的。

贡献

本文工作的主要贡献可以总结如下:
(1)提出一种实时的水下图像增强方法:该方法用于生成增强图像,可以改善低光区域的水下对象的可见性,同时从原始图像和增强图像域中学习特征有助于在弱光条件下识别水下对象。
(2)提出一种跨域特征交互模块:它通过同时处理原始图像和增强图像,在一个统一的框架中实现两个域信息的相互作用和融合,旨在解决水下环境中的低可见性和对比度问题。
(3)提出一种门控特征融合机制:用于自适应地控制跨域信息的融合比率,以此减少由水下增强模型产生的不可靠结果带来的负面影响。
(辛辛苦苦画的图,如有需要,务必引用!!!)
在这里插入图片描述

Overview

本文提出的弱光照目标检测方法整体框架如图2所示,该方法主要由四个组件组成:(1)使用在线图像增强模型water-MSR生成清晰的增强图像;(2)跨域特征交互(Cross-domain Feature Interaction,CFI)模块以促进增强图像和原始图像之间的特征交互并探索互补信息;(3)门控特征融合(Gated Feature Fusion,GFF)模块以控制跨域信息的融合比率;(4)使用检测头输出结果。

方法细节请看我的论文原文。

一些实验结果

数据集

本方法在公认的四个水下目标检测数据集DUO、Brackish、TrashCan和 WPBB上进行实验,以验证弱光照目标检测方法的性能。

主要实验结果

在这里插入图片描述

实验结果展示

在这里插入图片描述

总结

本文提出了一种端到端的门控跨域协作网络(GCC-Net),旨在解决目标检测任务在弱光照环境下遇到的低对比度和可见性差等挑战。通过将图像增强技术与目标检测框架相结合,本方法在原始图像域与清晰图像域之间建立了一种交互和融合的机制。该机制包含三大核心模块:在线图像增强模型(waterMSR)、跨域特征交互(CFI)模块以及门控特征融合(GFF)模块。通过提出的CFI模块,模型不仅能利用增强图像中的显著目标信息,还能够捕捉原始图像所特有的自然场景属性和细节纹理。CFI模块在提高图像视觉质量的同时,维持了真实场景的属性,在弱光照环境中能更精确地检测和定位目标。本章还引入了门控特征融合(GFF)模块,优化了增强特征与原始特征间的信息交流,确保了两类特征的有效融合,避免了任何一方特征对最终结果的过度影响。

欢迎引用!!!也欢迎和我交流弱光照目标检测的工作

这篇关于水下目标检测(低光照目标检测)方法-发表在Patter Recognition,代码已开源的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1117358

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Java判断多个时间段是否重合的方法小结

《Java判断多个时间段是否重合的方法小结》这篇文章主要为大家详细介绍了Java中判断多个时间段是否重合的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录判断多个时间段是否有间隔判断时间段集合是否与某时间段重合判断多个时间段是否有间隔实体类内容public class D

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Linux使用nload监控网络流量的方法

《Linux使用nload监控网络流量的方法》Linux中的nload命令是一个用于实时监控网络流量的工具,它提供了传入和传出流量的可视化表示,帮助用户一目了然地了解网络活动,本文给大家介绍了Linu... 目录简介安装示例用法基础用法指定网络接口限制显示特定流量类型指定刷新率设置流量速率的显示单位监控多个

Java覆盖第三方jar包中的某一个类的实现方法

《Java覆盖第三方jar包中的某一个类的实现方法》在我们日常的开发中,经常需要使用第三方的jar包,有时候我们会发现第三方的jar包中的某一个类有问题,或者我们需要定制化修改其中的逻辑,那么应该如何... 目录一、需求描述二、示例描述三、操作步骤四、验证结果五、实现原理一、需求描述需求描述如下:需要在

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

C#中读取XML文件的四种常用方法

《C#中读取XML文件的四种常用方法》Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具,下面我们就来看看C#中读取XML文件的方法都有哪些吧... 目录XML简介格式C#读取XML文件方法使用XmlDocument使用XmlTextReader/XmlTextWr

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::