水下目标检测(低光照目标检测)方法-发表在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

相关文章

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python

Apache Tomcat服务器版本号隐藏的几种方法

《ApacheTomcat服务器版本号隐藏的几种方法》本文主要介绍了ApacheTomcat服务器版本号隐藏的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1. 隐藏HTTP响应头中的Server信息编辑 server.XML 文件2. 修China编程改错误

Java中ArrayList的8种浅拷贝方式示例代码

《Java中ArrayList的8种浅拷贝方式示例代码》:本文主要介绍Java中ArrayList的8种浅拷贝方式的相关资料,讲解了Java中ArrayList的浅拷贝概念,并详细分享了八种实现浅... 目录引言什么是浅拷贝?ArrayList 浅拷贝的重要性方法一:使用构造函数方法二:使用 addAll(

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者

使用Python实现大文件切片上传及断点续传的方法

《使用Python实现大文件切片上传及断点续传的方法》本文介绍了使用Python实现大文件切片上传及断点续传的方法,包括功能模块划分(获取上传文件接口状态、临时文件夹状态信息、切片上传、切片合并)、整... 目录概要整体架构流程技术细节获取上传文件状态接口获取临时文件夹状态信息接口切片上传功能文件合并功能小

Oracle Expdp按条件导出指定表数据的方法实例

《OracleExpdp按条件导出指定表数据的方法实例》:本文主要介绍Oracle的expdp数据泵方式导出特定机构和时间范围的数据,并通过parfile文件进行条件限制和配置,文中通过代码介绍... 目录1.场景描述 2.方案分析3.实验验证 3.1 parfile文件3.2 expdp命令导出4.总结

JAVA利用顺序表实现“杨辉三角”的思路及代码示例

《JAVA利用顺序表实现“杨辉三角”的思路及代码示例》杨辉三角形是中国古代数学的杰出研究成果之一,是我国北宋数学家贾宪于1050年首先发现并使用的,:本文主要介绍JAVA利用顺序表实现杨辉三角的思... 目录一:“杨辉三角”题目链接二:题解代码:三:题解思路:总结一:“杨辉三角”题目链接题目链接:点击这里

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

SpringBoot使用注解集成Redis缓存的示例代码

《SpringBoot使用注解集成Redis缓存的示例代码》:本文主要介绍在SpringBoot中使用注解集成Redis缓存的步骤,包括添加依赖、创建相关配置类、需要缓存数据的类(Tes... 目录一、创建 Caching 配置类二、创建需要缓存数据的类三、测试方法Spring Boot 熟悉后,集成一个外

JavaScript DOM操作与事件处理方法

《JavaScriptDOM操作与事件处理方法》本文通过一系列代码片段,详细介绍了如何使用JavaScript进行DOM操作、事件处理、属性操作、内容操作、尺寸和位置获取,以及实现简单的动画效果,涵... 目录前言1. 类名操作代码片段代码解析2. 属性操作代码片段代码解析3. 内容操作代码片段代码解析4.