前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【传知代码】水下图像增强(论文复现)

【传知代码】水下图像增强(论文复现)

作者头像
Eternity._
发布2024-11-02 08:01:57
1040
发布2024-11-02 08:01:57
举报
文章被收录于专栏:登神长阶

前言:在水下环境中拍摄的图像,往往会受到多种因素的影响,导致图像质量显著下降。这些因素包括但不限于水质的浑浊度、光线在水中的传播和散射、以及水对光的吸收作用等。这些影响使得水下图像常常出现颜色失真、对比度降低和细节模糊等问题,给后续的图像分析和应用带来了极大的挑战。

为了解决这些问题,水下图像增强技术应运而生。这项技术旨在通过一系列算法和方法,改善水下图像的视觉质量,使其更加清晰、细节更丰富,从而更易于进行后续的分析和应用。


概述


2021年11月,提出一种用于水下图像增强的U型Transformer模型,这是首次在水下图像增强任务中使用Transfomer模型,并且作者同时也发布了《U-shape Transformer for Underwater Image Enhancement》这篇文章。它主要针对水下图像增强任务,通过神经网络训练的方式,将模糊的,低分辨率的,对比度低的水下图像,转换成高清的、高分辨率的,对比度高的图像。并且作者也发布了一个大型的水下图像数据集LSUI,为后续在水下图像增强方向提供重要贡献。

一、论文思路


由于水下环境的复杂性,水下图像常常受到杂质的光吸收和散射的严重影响,导致图像模糊不清,细节丢失。尽管现有的数据驱动水下图像增强(UIE)技术取得了一定的进展,但仍面临着数据集规模有限、场景覆盖不全以及颜色通道和空间区域衰减不一致等挑战。为了克服这些难题,我们构建了大规模水下图像(LSUI)数据集,并创新性地提出了U型Transformer模型。该模型通过集成通道型多尺度特征融合Transformer(CMSFFT)模块和空间型全局特征建模Transformer(SGFMT)模块,有效提升了网络对颜色通道和空间区域衰减的敏感度,实现了对水下图像的更精准增强。

二、模型介绍:


整体架构:包括基于 CMSFFT 和 SGFMT 的生成器和鉴别器。在生成器中,

(1) 编码:除了直接输入到网络之外,原始图像将分别进行3次下采样。然后经过11卷积后,将三个尺度特征图输入到对应的尺度卷积块中。四个卷积块的输出是CMSFFT和SGFMT的输入。

(2) 解码: 特征重新映射后,SGFMT输出直接发送到第一个卷积块。同时,4个卷积不同规模的区块将接收来自CMSFFT的四个输出。在判别器中,四个卷积块的输入包括:自身上层输出的特征图、来自解码部分的相应尺寸的特征图以及下采样到相应尺寸后通过11卷积生成的特征图使用参考图像。通过所描述的多尺度连接,梯度流可以在生成器和鉴别器之间在多个尺度上自由流动,从而可以获得稳定的训练过程,丰富生成图像的细节。

三、实现方法


1、SGFMT:用于替代生成器原来的瓶颈层,可以辅助网络对全局信息进行建模,并加强网络对严重退化部分的关注。具体流程大概为:输入特征图通过线性投影转化为一维序列然后嵌入位置编码进入Transformer层(每一个Transformer层包含一个多头注意力块(MHA)和一个前馈神经网络(FFN)),得到输出序列后通过特征映射转化为输出特征图。

2、CMSFFT: 为了加强网络对衰减更严重的颜色通道的关注,我们设计了CMSFFT块来代替原始生成器编码解码架构的跳跃连接,它由以下三个部分组成。

(1)、多尺度特征编码(Multi-Scale Feature Encoding):输入是不同尺度的特征图, 直接应用于分区原始图像的线性投影不同,我们使用具有相关滤波器大小在不同尺度的特征图上进行线性投影。 (2)、通道方式多头注意力(CMHA):CMHA 块有 6 个输入,其中 IN 表示实例规范化操作。这种注意力操作沿着通道轴而不是经典的补丁轴进行,可以引导网络关注图像质量下降更严重的通道。此外,在相似度图上使用IN来帮助梯度流顺利传播。 (3)、前馈网络(FFN):与前向传播类似,包含多层感知机(MLP)和归一化层(LN)。

3、损失函数:为了利用LAB和LCH颜色空间更宽的色域表示范围以及更准确地描述颜色饱和度和亮度,我们设计了结合RGB、LAB和LCH颜色空间的多颜色空间损失函数来训练我们的网络。 其中α、β、γ、μ为超参数,经过大量实验分别设置为0.001、1、0.1、100。后面的四个分别是生成器的损失函数它们是定义好的。

四、复现过程(重要)


先看结果,原图像与增强之后的图像对比:

能非常直观的感觉出增强效果还是非常好的,接下来是具体的步骤。

1、在Pycharm中导入项目; 2、下载数据集LSUI并将数据集添加到项目data目录中 数据集下载链接:详见附件;

3、修改保存权重路径和数据集路径 (1)、修改数据集路径 在mytrain.py

在mytest.py

(2)、修改权重路径 mytest.py

4、测试之前预训练的模型 预训练模型链接:详见附件 可以直接使用笔者之前训练好的权重去直接测试mytest.py

5、运行mytrain.py文件:

6、运行test.ipynb文件:

7、得出输出图像

部署方式


python 3.7, Pytorch 1.8 编译器采用Pycharm,拿到代码之后,结合ReadMe以及“requirements.txt”配置好环境之后,可以直接使用预训练的模型去处理水下图像;也可以根据自己的需求重新训练一整个网络模型。


编程未来,从这里启航!解锁无限创意,让每一行代码都成为你通往成功的阶梯,帮助更多人欣赏与学习

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-11-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • 一、论文思路
  • 二、模型介绍:
  • 三、实现方法
  • 四、复现过程(重要)
  • 部署方式
相关产品与服务
图像识别
腾讯云图像识别基于深度学习等人工智能技术,提供车辆,物体及场景等检测和识别服务, 已上线产品子功能包含车辆识别,商品识别,宠物识别,文件封识别等,更多功能接口敬请期待。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档