基于CNN多阶段图像超分+去噪(超级简单版)

2024-03-17 06:04

本文主要是介绍基于CNN多阶段图像超分+去噪(超级简单版),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这是之前的一项工作,非常简单,简单的复现了两个算法,然后把它们串起来了。

可执行的程序链接:CSDN; Github

我们分成两部分进行讲解:

1. 图像去噪

1.1 基本思路

图像的去噪工作基于很普通的CNN去噪,效果很差。

为了去除椒盐噪声并且提升暗图像的亮度,从以下方面入手:

1)针对椒盐噪声,使用了小核(3×3)中值滤波

2)针对图像亮度太低,梯度难以获取,使用直方图均衡化

3)使用传统CNN模型搭建去噪网络

4)增添了锐化环境,但不建议去噪时使用,效果并不好、

网络模型很简单,CNN模拟高斯滤波的去噪过程。本节采用17个3×3卷积核堆叠的形式(每层配BN层和Relu激活函数)。最后,将原图跳跃连接到最后一个3×3卷积的特征上(最后为通道压缩,则Tensor都为1×3×H×W)。训练思路为,有监督学习。

1.2 函数封装

直接在test_data里填写输入图片的路径即可

其余都不用管。

输出图片的路径很简单:

都可以进行更改。

最后的这个函数,是封装的函数。Hist是是否直方图增量,m_Blur是是否进行中值滤波,sharp是是否进行锐化(单独去噪程序不要使用,效果很差),kernal是中值滤波的卷积核大小(本文为3,太大容易模糊)

2. 图像超分

2.1 基本思路

也是很简单的基于ResNet的超分应用:

骨干网络很简单,堆叠额RFDB块+普通的3×3卷积构成一个端对端残差网络。最后使用上采样进行有监督学习。RFDB,参考的多半是MobileNet等残差块的设计,在我看来没啥创新的地方。不想多讲。就是一个深度的残差块。

我们综合的应用把锐化的函数加在了超分里,总体效果还可以。

2.2 函数封装

基本和图像去噪一样。单独使用,建议加上锐化。感觉还可以。

综合封装:

两个函数放在一起,参数是一样的。在这个函数里,我把属于图像去噪的锐化去除了。你直接运行我的程序就行了。

这篇关于基于CNN多阶段图像超分+去噪(超级简单版)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/818041

相关文章

Python实现简单封装网络请求的示例详解

《Python实现简单封装网络请求的示例详解》这篇文章主要为大家详细介绍了Python实现简单封装网络请求的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装依赖核心功能说明1. 类与方法概览2.NetHelper类初始化参数3.ApiResponse类属性与方法使用实

Docker多阶段镜像构建与缓存利用性能优化实践指南

《Docker多阶段镜像构建与缓存利用性能优化实践指南》这篇文章将从原理层面深入解析Docker多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少... 目录一、技术背景与应用场景二、核心原理深入分析三、关键 dockerfile 解读3.1 Docke

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

python连接sqlite3简单用法完整例子

《python连接sqlite3简单用法完整例子》SQLite3是一个内置的Python模块,可以通过Python的标准库轻松地使用,无需进行额外安装和配置,:本文主要介绍python连接sqli... 目录1. 连接到数据库2. 创建游标对象3. 创建表4. 插入数据5. 查询数据6. 更新数据7. 删除

Jenkins的安装与简单配置过程

《Jenkins的安装与简单配置过程》本文简述Jenkins在CentOS7.3上安装流程,包括Java环境配置、RPM包安装、修改JENKINS_HOME路径及权限、启动服务、插件安装与系统管理设置... 目录www.chinasem.cnJenkins安装访问并配置JenkinsJenkins配置邮件通知

Python yield与yield from的简单使用方式

《Pythonyield与yieldfrom的简单使用方式》生成器通过yield定义,可在处理I/O时暂停执行并返回部分结果,待其他任务完成后继续,yieldfrom用于将一个生成器的值传递给另一... 目录python yield与yield from的使用代码结构总结Python yield与yield

Java中使用 @Builder 注解的简单示例

《Java中使用@Builder注解的简单示例》@Builder简化构建但存在复杂性,需配合其他注解,导致可变性、抽象类型处理难题,链式编程非最佳实践,适合长期对象,避免与@Data混用,改用@G... 目录一、案例二、不足之处大多数同学使用 @Builder 无非就是为了链式编程,然而 @Builder

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

C/C++ chrono简单使用场景示例详解

《C/C++chrono简单使用场景示例详解》:本文主要介绍C/C++chrono简单使用场景示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录chrono使用场景举例1 输出格式化字符串chrono使用场景China编程举例1 输出格式化字符串示