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

发布时间:2024年01月20日

在这里插入图片描述

一、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网络推理测试的详细过程,由于推理较耗时,我没有训练,测试了官网提供的模型,学者要训练的参考官网。有什么疑问的,欢迎留言讨论。

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

文章来源:https://blog.csdn.net/qq_40280673/article/details/135697929
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。