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

相关文章

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

504 Gateway Timeout网关超时的根源及完美解决方法

《504GatewayTimeout网关超时的根源及完美解决方法》在日常开发和运维过程中,504GatewayTimeout错误是常见的网络问题之一,尤其是在使用反向代理(如Nginx)或... 目录引言为什么会出现 504 错误?1. 探索 504 Gateway Timeout 错误的根源 1.1 后端

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的