图像去噪——CTNet网络推理测试(详细图文教程)

在这里插入图片描述

目录

  • 一、CTNet
  • 二、源码包准备
    • 2.1 测试集
    • 2.2 模型权重
  • 三、环境准备
  • 四、推理测试
    • 4.1 配置参数修改
    • 4.2 官网测试
      • 4.2.1 测试当通道图像
        • 4.2.1.1 命令方式测试
        • 4.2.1.2 Configuration配置测试
        • 4.2.1.3 测试结果
      • 4.2.2 测试彩色图像
        • 4.2.2.1 命令方式测试
        • 4.2.2.2 Configuration配置测试
        • 4.2.2.3 测试结果
    • 4.3 直接测试真实噪声图
      • 4.3.1 测试单通道图像
        • 4.3.1.1 命令测试
        • 4.3.1.2 Configuration配置测试
        • 4.3.1.3 测试结果
        • 4.3.1.4 推理速度
      • 4.3.2 测试彩色图像
        • 4.3.2.1 命令测试
        • 4.3.2.2 Configuration配置测试
        • 4.3.2.3 测试结果
        • 4.3.2.4 推理速度
  • 五、测试结果
    • 5.1 合成噪声
    • 5.2 真实噪声
  • 六、总结

一、CTNet

CTNet是一种交叉Transformer的图像去噪方法。

串并行方式获取结构信息:CTNet采用深度和广度搜索以串并行方式来获得更多的结构信息,提高图像去噪性能。

多层特征交互:利用三个并行异构网络实现多层特征交互,增强不同网络间的关系,以提高针去噪网络对复杂场景的适应性。

交叉Transformer技术:交叉Transformer技术可以根据像素关系提取显著性特征,从而优化去噪效果。

二、源码包准备

官网提供的源码包用起来有些别扭,文件路径或者模型权重路径都得用绝对路径,配置文件中参数贼多。另外在推理测试部分网络是导入干净图像,然后在干净图像基础上加随机噪声生成噪声图像,没有直接推理测试真实噪声图像的脚本,参考官网源码我自己重写了一个脚本,用于直接推理测试自己真实噪声图,并直接输出测试结果到指定路径。还有其它的地方我也修改了部分代码。

本教程也是基于我提供源码进行讲解,测试集,模型权重都打包在源码包中。获取我提供源码包的方法为文章末扫码到公众号中回复关键字:图像去噪CTNet。获取下载链接。

官网源码包下载链接:CTNet官网

论文下载链接:论文

下载解压后的样子如下:

在这里插入图片描述

2.1 测试集

测试集位于根目录下的Test_Image文件夹中,如下:

在这里插入图片描述

2.2 模型权重

模型权重位于根目录下的Save_model文件夹中,包含了多个权重文件,分别是单通道图像和三通道图像,在不同噪声水平下的模型权重。

在这里插入图片描述

在这里插入图片描述

三、环境准备

我自己测试的环境如下,供参考,其它的版本也行。

在这里插入图片描述

四、推理测试

4.1 配置参数修改

配置参数的脚本中有很多参数,学者根据自己需求对应修改,如下:

在这里插入图片描述

4.2 官网测试

在官网源码基础上我改了一部分代码,测试的脚本名为train_noise.py,官网原始的脚本为train.py,如下:

在这里插入图片描述

运行该脚本,读入干净图像后,加噪,生成噪声图像,最后会输出原始干净图像,噪声图和去噪图,打印出评价指标:PSNR,SSIM,FSIM。如下:

在这里插入图片描述

4.2.1 测试当通道图像

4.2.1.1 命令方式测试

在对应终端环境中输入下面命令进行测试:

python trian_noise.py --mode test --model_name gtd --rgb_range 1 --n_colors 1 --sigma 25 --num_layers 1 --n_GPU 1 --GPU_id 0 --test_dataset F:\Code\Python\CTNet\CTNet-main\Test_Image\Set12 --model_file_name F:\Code\Python\CTNet\CTNet-main\Save_model\ctnet\g25\model_sigma25.pth --dir_test_img F:\Code\Python\CTNet\CTNet-main\Result_Images

上面命令中,根据自己情况修改路径,各参数解析如下:

–mode表示要训练还是测试,如果要训练就改为train,测试就改为test;

–n_colors表示通道数量,测试单通道图像设为1,测试三通道图像设为3;

–n_GPU表示电脑显卡数量;

–GPU_id表示选用哪块显卡运行代码;

–test_dataset表示测试集路径,一定要用绝对路径;

–model_file_name表示模型权重路径,同样绝对路径;

–dir_test_img表示测试后去噪结果的保存路径。

4.2.1.2 Configuration配置测试

右击鼠标,进入Configuration配置窗口,如下:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.2.1.3 测试结果

在指定的保存路径中会保存原始图像,加噪后的图像,去噪后的图像,如下所示:

在这里插入图片描述

4.2.2 测试彩色图像

4.2.2.1 命令方式测试

测试方法和测试单通道图像一样,只需要修改–n_colors为3,导入彩色图像路径,导入彩色图像的模型权重路径即可。

python trian_noise.py --mode test --model_name gtd --rgb_range 1 --n_colors 3 --sigma 25 --num_layers 1 --n_GPU 1 --GPU_id 0 --test_dataset F:\Code\Python\CTNet\CTNet-main\Test_Image\CBSD68 --model_file_name F:\Code\Python\CTNet\CTNet-main\Save_model\ctnet\c75\model_sigma75.pth --dir_test_img F:\Code\Python\CTNet\CTNet-main\Result_Images

参数解析见:4.2.1.1

4.2.2.2 Configuration配置测试

在这里插入图片描述

4.2.2.3 测试结果

测试结果如下,包含了原始图,加噪图,去噪图。

在这里插入图片描述

4.3 直接测试真实噪声图

该脚本是我重新写的,命名为Predict.py,直接读入噪声图,推理结果输出到指定的路径下,不会输出评价指标。如下:

在这里插入图片描述

测试单通道图像和彩色三通道的函数我都写在了一个脚本里面,如下:

在这里插入图片描述

在这里插入图片描述

4.3.1 测试单通道图像

代码需要修改的地方如下:

在这里插入图片描述

4.3.1.1 命令测试

在终端中输入下面命令测试:

pyhton Predict.py --mode test --model_name gtd --rgb_range 1 --n_colors 1 --sigma 25 --num_layers 1 --n_GPU 1 --GPU_id 0 --model_file_name F:\Code\Python\CTNet\CTNet-main\Save_model\ctnet\g50\model_sigma50.pth
4.3.1.2 Configuration配置测试

在这里插入图片描述

4.3.1.3 测试结果

在这里插入图片描述

4.3.1.4 推理速度

GPU测试环境:Nvidia GeForce RTX 3050,256256分辨率,5s/fps;512512分别率,20s/fps;481*321,12s/fps。

在这里插入图片描述

4.3.2 测试彩色图像

代码需要修改的地方如下:

在这里插入图片描述

4.3.2.1 命令测试

在终端中输入下面命令测试:

pyhton Predict.py --mode test --model_name gtd --rgb_range 1 --n_colors 3 --sigma 25 --num_layers 1 --n_GPU 1 --GPU_id 0 --model_file_name F:\Code\Python\CTNet\CTNet-main\Save_model\ctnet\c75\model_sigma75.pth
4.3.2.2 Configuration配置测试

在这里插入图片描述

4.3.2.3 测试结果

在这里插入图片描述

4.3.2.4 推理速度

GPU测试环境:Nvidia GeForce RTX 3050,测试图片481*321左右,推理时间:12s/fps。

在这里插入图片描述

五、测试结果

5.1 合成噪声

下面左侧是原始干净图,中间是去噪后的图,右侧是合成的噪声图。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.2 真实噪声

下面图最最左侧都为真实模糊噪声图,第2列为噪声水平15模型测试结果,第3列为噪声水平25模型测试结果,最右侧为噪声水平50测试结果。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、总结

以上就是图像去噪CTNet网络推理测试的详细过程,由于推理较耗时,我没有训练,测试了官网提供的模型,学者要训练的参考官网。有什么疑问的,欢迎留言讨论。

总结不易,多多支持,谢谢!

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

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

相关文章

性能优化-HVX架构简介

来自 「发表于知乎专栏《移动端算法优化》」 本文主要介绍Hexagon DSP的HVX技术,旨在通过简单的语言讲清HVX技术。 🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:高性能(HPC)开…

Elasticsearch 入门向使用

文章目录 ElasticSearch简介倒排索引安装(单节点)分词器kibana与Mysql概念上的对比索引库CRUD文档CRUDDSL查询相关性算分Function Score Query自定义算分Boolean Query 搜索结果处理排序分页高亮 数据聚合 aggregations自动补全数据同步集群 ElasticSearch 简介 Elasticsearc…

轻松掌握AI辅助设计微信红包封面并快速过审

【无矶之谈】轻松使用AI设计微信红包封面/动态封面并快速过审 关注本公众号梦无矶测开实录,2024年1月21日之后关注最新的文章,后台回复封面红包,即可免费领取本号专属微信红包封面。(目前我过审的有五个封面,其中一个…

vue项目执行依赖安装(npm i或npm install )报ls-remote -h -t异常

从git拉取的vue项目执行依赖安装时一直报错, 报错如下图:首先,查看了node版本、npm配置的镜像地址均没找到解决办法。 在命令行中直接输入git发现提示于是从网上搜到了一个博文https://blog.csdn.net/weixin_49159364/article/details/118198…

仰暮计划|“每天清晨五六点钟,爷爷早早起床去田地里采摘蔬菜”

★ 我的奶奶出生于1955年,在我眼里是十分伟大的女性。身处在有六个兄弟姐妹的大家庭里,她从小就肩负起了照顾家人的重任。充满朝气的她,在上学和照顾弟弟妹妹之间穿梭。然而,在她将要上小学五年级的时候,文化大革命的爆…

[绍棠] docxtemplater实现纯前端导出word

1.下载需要的依赖 2.util文件夹下创建doc.js文件 doc.js import docxtemplater from docxtemplater import PizZip from pizzip import JSZipUtils from jszip-utils import { saveAs } from file-saver import ImageModule from "docxtemplater-image-module-free"…

力扣hot100 最长有效括号 动态规划

Problem: 32. 最长有效括号 文章目录 思路Code 思路 👨‍🏫 参考题解 Code ⏰ 时间复杂度: O ( n ) O(n) O(n) 🌎 空间复杂度: O ( n ) O(n) O(n) class Solution {public int longestValidParentheses(String s){int n s.length();…

Python武器库开发-武器库篇之Fofa-API使用(四十六)

Python武器库开发-武器库篇之Fofa-API使用(四十六) FOFA(FOcus Observation of Futures Assets)是一款专业的网络资产搜索引擎,旨在帮助企业发现和评估网络上的潜在安全风险。FOFA的基本原理是通过搜索引擎的方式,按照关键词对互…

【Redis】更改redis中的value值

今天继续进步一点点~~ 背景:今天有个前端的同事问我,能不能在Redis中他本人登录公众号的 sessionID 加上一列openID 于是我上网查了一堆在Redis里面的命令,以及不同的客户端怎么输入命令,但是后来问了下同事,他就给我…

PDshell16逆向PostgreSQL 工程显示字段comment备注

现状:当刚逆向成功的表结构是没有原来表结构中的,comment备注如下 然后pd逆向工程的sql已经返回了这个备注的含义 解决方案: 1、设置显示注释列 tools——Display Preferences…如下 勾选-按照下面得方式勾选这三个 复制这里的VBS脚本&a…

OpenVINS学习7——评估工具的简单使用

前言 OpenVINS自带评估工具,这里记录一下使用方法,我是以VIRAL数据集为例,但是目前仍然有问题,发现误差很大,我还没搞明白哪里出了问题。 工具介绍 主要参考 https://docs.openvins.com/eval-error.html https://bl…

Windows和Linux访问不了GitHub的解决方法

一、Windows访问不了GitHub 问题描述 使用Windows访问GitHub时,出现如下情况,显示无法访问。 解决方案: 打开域名查询网站:https://tool.chinaz.com/dns 输入GitHub的域名,点击立即检测。 出现如下页面&#xff0c…

实验五 PLSQL编程

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要&…

git设置代理

git设置代理 git config --global http.proxy 127.0.0.1:7890git查询代理 git config --global http.proxy git取消代理 git config --global --unset http.proxy

【核心复现】基于改进鲸鱼优化算法的微网系统能量优化管理matlab

目录 一、主要内容 1 冷热电联供型微网系统 2 长短期记忆网络(Long Short Term Memory, LSTM) 3 改进鲸鱼优化算法 二、部分代码 三、运行结果 四、下载链接 一、主要内容 该程序为《基于改进鲸鱼优化算法的微网系统能量优化管理》matlab代码,主要内容如下&…

事件驱动架构

请求驱动 服务注册,服务发现,虽然调用地址隐藏了,但是调用stub必须相同。 rpc通信,远程调用。 生产者和消费者要有相同的stub存根。 消费者和生产者的调用接口是耦合的。 事件驱动 核心:上下游不进行通信 中间通过M…

Ubuntu安装最新版Docker和Docker-Compose

ubuntu环境搭建专栏🔗点击跳转 Ubuntu系统环境搭建(十)——Ubuntu安装最新版Docker和Docker Compose 文章目录 Ubuntu系统环境搭建(十)——Ubuntu安装最新版Docker和Docker Compose1.添加Docker库1.1 安装必要的证书并…

实验六 模式对象管理与安全管理

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要&…

Qt5.15.2中加入图片资源

系列文章目录 文章目录 系列文章目录前言一、加入图片资源二、代码 前言 以前用的Qt5.15.2之前的版本,QtCreator默认的工程文件是*.pro,现在用5.15.2创建工程默认的工程文件是CMameList.txt,当然在创建项目时,仍然可以使用pro工程文件用QtCr…

softmax回实战

1.数据集 MNIST数据集 (LeCun et al., 1998) 是图像分类中广泛使用的数据集之一,但作为基准数据集过于简单。 我们将使用类似但更复杂的Fashion-MNIST数据集 (Xiao et al., 2017)。 import torch import torchvision from torch.utils import data from torchvisi…