【去雨去雾小工具】用python实现去雨去雾的小工具

目录

🍓🍓1.效果

🍂🍂2.去雨功能实现

🍇2.1训练模型:

🍇2.2保存模型:

🙋🙋3.去雾功能实现

🐸🐸4.python代码实现可视化界面

🍋4.1完整代码        

🍋4.2代码解释

1. 创建主窗口

2. 创建原始图像显示区域

3. 创建去雨后图像显示区域

4. 创建去雾后图像显示区域

5. 创建按钮

6. 存储原始图像数据

7. 运行主循环

🍋4.3代码逻辑总结

💖💖5.打包成exe文件

🍉5.1.安装 PyInstaller

🍉5.2 使用 PyInstaller 打包脚本

1. 基本命令

2. 常用选项

🍉5.3打包后的文件结构

🍉5.4 测试打包后的程序

🍉5.5示例命令

🍉5.6注意事项

整理不易,欢迎一键三连!!!

送你们一条美丽的--分割线--


🍓🍓1.效果

去雨去雾小工具的实现成果是一个exe的可执行文件,打开效果如下:

完整代码获取请私信留言。

🍂🍂2.去雨功能实现

去雨功能是选用深度学习网络进行实现,具体为Attentive-GAN-Derainnet,其网络结构如下:

使用 tensorflow 实现深度卷积生成对抗网络 ,训练好的去雨网络模型权重文件存储在文件夹 weights/,可以按照如下方式在经过训练的模型上测试单个图像

python tools/test_model.py --weights_path ./weights/derain_gan/derain_gan.ckpt-100000
--image_path ./data/test_data/test_1.png

去雨结果如下:

输入图像:

输出去雨后的图像:

整理训练示例。将所有雨图和干净图像放在两个单独的文件夹中,分别以 SOURCE_DATA_ROOT_DIR/rain_image 和 SOURCE_DATA_ROOT_DIR/clean_image 命名。其余准备工作将通过运行以下脚本完成

<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#f0f6fc"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>cd PROJECT_ROOT_DIR
python data_provider/data_feed_pipline.py --dataset_dir SOURCE_DATA_ROOT_DIR
--tfrecords_dir TFRECORDS_SAVE_DIR
</code></span></span></span></span>

        训练样本由两部分组成:一张没有雨滴标签的干净图像和一张被雨滴污染的原始图像。

        所有训练图像将根据配置文件自动缩放为相同比例,并转换为 TensorFlow 记录,以实现高效的数据馈送管道。

🍇2.1训练模型:

         在我的实验中,训练周期为 100010,批量大小为 1,初始化学习率为 0.002。有关训练参数,您可以查看 global_configuration/config.py 了解详情。

        你可以调用以下脚本来训练你自己的模型:

<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#f0f6fc"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>cd REPO_ROOT_DIR
python tools/train_model.py --dataset_dir SOURCE_DATA_ROOT_DIR
</code></span></span></span></span>

        还可以通过以下方式继续训练过程:

<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#f0f6fc"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>cd REPO_ROOT_DIR
python tools/train_model.py --dataset_dir SOURCE_DATA_ROOT_DIR 
--weights_path path/to/your/last/checkpoint</code></span></span></span></span>

🍇2.2保存模型:

        训练好的模型可以转换为 tensorflow 保存的模型和 tensorflow js 模型以供网络使用。如果你想将 ckpt 模型转换为 tensorflow 保存的模型,你可以运行以下脚本

<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#f0f6fc"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>cd PROJECT_ROOT_DIR
python tools/export_tf_saved_model.py --export_dir ./weights/derain_gan_saved_model 
--ckpt_path ./weights/derain_gan/derain_gan.ckpt-100000
</code></span></span></span></span>

        如果你想转换成 tensorflow js 模型,你可以修改 bash 脚本并运行它

<span style="background-color:var(-

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

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

相关文章

使用python脚本提取html网页上的所有文本信息

你可以使用 BeautifulSoup 库来提取 HTML 网页上的所有文本信息。以下是一个示例脚本&#xff1a; 步骤 安装 beautifulsoup4 和 requests&#xff08;如果尚未安装&#xff09;&#xff1a; pip install beautifulsoup4 requestsPython 脚本&#xff1a; import requests fro…

11.推荐系统的安全与隐私保护

接下来我们将学习推荐系统的安全与隐私保护。在推荐系统中&#xff0c;用户的数据是至关重要的资产。保护用户的隐私和数据安全&#xff0c;不仅是法律和道德的要求&#xff0c;也是提升用户信任和满意度的关键因素。在这一课中&#xff0c;我们将介绍以下内容&#xff1a; 推…

k8s优雅操作pod容器组

k8s优雅操作pod容器组 回退备份 kubectl get deploy deployName -o yaml>>deployName-bak-date "%Y-%m-%d".yaml获取副本数 replicasecho | kubectl get -o template deploy/deployName --template{{.spec.replicas}}停止容器组 kubectl scale deployment …

DeepSeek R1打造本地化RAG知识库

本文将详细介绍如何使用Ollama、Deepseek R1大语音模型、Nomic-Embed-Text向量模型和AnythingLLM共同搭建一个本地的私有RAG知识库。 一. 准备工作 什么是RAG&#xff1f; RAG是一种结合了信息检索和大模型&#xff08;LLM&#xff09;的技术&#xff0c;在对抗大模型幻觉、…

Node.js使用教程

Node.js使用教程 Node.js是一个基于Chrome V8引擎的JavaScript运行环境&#xff0c;它让JavaScript运行在服务器端。以下是一个简单的Node.js使用教程&#xff1a; 一、 Node.js开发环境和编译 1.1 安装Node.js 访问Node.js官网下载并安装适合您操作系统的Node.js版本。 1…

MySQL和SQL server的区别

在当今数据驱动的世界里&#xff0c;数据库技术的选择对于企业和个人开发者来说至关重要。MySQL 和 SQL Server 是两个广泛使用的数据库管理系统&#xff08;DBMS&#xff09;&#xff0c;它们各自拥有独特的优势和适用场景。本文将深入探讨这两个数据库系统之间的区别&#xf…

从零开始人工智能Matlab案例-粒子群优化

目标&#xff1a;求解Rastrigin函数最小值&#xff08;多峰测试函数&#xff09; 粒子群优化算法是一种基于群体智能的优化算法&#xff0c;模拟了鸟群或鱼群等群体的行为&#xff0c;通过粒子在搜索空间中的移动来寻找最优解。 % PSO参数 nParticles 30; % 粒子数量 max…

无人机遥感图像拼接及处理教程

无人机遥感图像采集流程&#xff1a; 无人机遥感监测 无人机航线规划设计 无人机飞行软件操作 无人机航拍一般过程 无人机遥感图像拼接软件&#xff1a; Photoscan软件 软件基本操作 遥感图像拼接的一般流程 遥感图像分组拼接与点云分类 无人机遥感图像拼接&#xff1a; 基于无…

LeetCode每日精进:876.链表的中间结点

题目链接&#xff1a;876.链表的中间结点 题目描述&#xff1a; 给你单链表的头结点 head &#xff0c;请你找出并返回链表的中间结点。 如果有两个中间结点&#xff0c;则返回第二个中间结点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[3,4,5…

Vue 发送 PDF 文件链接到 WinForm 程序进行打印

Vue 发送 PDF 文件链接到 WinForm 程序进行打印的完整流程如下&#xff1a; 1. Vue 端 Vue 通过 fetch 或 axios 发送 PDF 文件的 URL 给 WinForms 程序&#xff08;WinForms 需要开启一个本地 API&#xff09;。 <template><div><button click"sendPri…

从零到一:开发并上线一款极简记账本小程序的完整流程

从零到一&#xff1a;开发并上线一款极简记账本小程序的完整流程 目录 前言需求分析与功能设计 2.1 目标用户分析2.2 核心功能设计2.3 技术栈选择 开发环境搭建 3.1 微信开发者工具安装与配置3.2 项目初始化3.3 版本控制与协作工具 前端开发 4.1 页面结构与布局4.2 组件化开发…

对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 , 基于 openEuler 构建 LVS-DR 群集。

对比 LVS 负载均衡群集的 NAT 模式和 DR 模式&#xff0c;比较其各自的优势 NAT模式的优势&#xff1a; 可以隐藏后端服务器的IP地址&#xff0c;提高了系统的安全性。 支持多个后端服务器共享同一个IP地址&#xff0c;提高了系统的可扩展性。 可以在负载均衡器和后端服务…

【操作系统】操作系统结构

内核 什么是内核&#xff1f; 内核作为应用程序连接硬件设备的桥梁&#xff0c;使得应用程序只需关心与内核交互&#xff0c;不用关心硬件细节。 内核有哪些能力呢&#xff1f; 内核是怎么工作的&#xff1f; Linux 的设计 MultiTask SMP ELF ELF 的意思是可执行文件链接格式…

缓存的介绍

相关面试题 &#xff1a; ● 为什么要用缓存&#xff1f; ● 本地缓存应该怎么做&#xff1f; ● 为什么要有分布式缓存?/为什么不直接用本地缓存? ● 为什么要用多级缓存&#xff1f; ● 多级缓存适合哪些业务场景&#xff1f; 缓存思想 空间换时间(索引&#xff0c;集群&a…

什么是弧形光源

工业检测中的弧形光源是一种专门设计用于机器视觉和自动化检测的照明设备,通常用于提供均匀、高对比度的照明,以增强图像采集质量,便于检测系统识别和分析目标物体的特征。以下是关于工业检测弧形光源的详细介绍: 特点 1均匀照明: 弧形设计能够提供均匀的漫反射光,减少阴…

[每日动态]科技新闻每日信息差2025年2月14日

### 2025年2月14日科技新闻每日信息差 #### 引言 在快速发展的科技领域&#xff0c;信息差是决定个人和企业竞争力的关键因素。2025年2月14日&#xff0c;全球科技界迎来了多项重要进展&#xff0c;从人工智能到量子计算&#xff0c;从医疗科技到太空探索&#xff0c;这些…

Go语言实现单例模式

单例模式 单例模式分为饿汉和懒汉模式&#xff0c;前者是在程序启动的时候就初始化一个单例对象&#xff0c;后者是使用到这个单例的时候&#xff0c;才会初始化一个单例对象。 饿汉模式 package mainimport "fmt"type Singleton struct { }var instance *Singleto…

zyNo.23

SQL注入漏洞 1.SQL语句基础知识 一个数据库由多个表空间组成&#xff0c;sql注入关系到关系型数据库&#xff0c;常见的关系型数据库有MySQL,Postgres,SQLServer,Oracle等 以Mysql为例&#xff0c;输入 mysql-u用户名-p密码 即可登录到MySQL交互式命令行界面。 既然是…

LeapMotion第2代 Unity示范代码(桌面开发)

一、官方地址&#xff1a; 官网&#xff1a;https://www.ultraleap.com/ 驱动下载&#xff1a;https://leap2.ultraleap.com/downloads/leap-motion-controller-2/ docs地址&#xff1a;https://docs.ultraleap.com/xr-and-tabletop/tabletop/unity/getting-started/index.html…

深入剖析推理模型:从DeepSeek R1看LLM推理能力构建与优化

著名 AI 研究者和博主 Sebastian Raschka 又更新博客了。原文地址&#xff1a;https://sebastianraschka.com/blog/2025/understanding-reasoning-llms.html。这一次&#xff0c;他将立足于 DeepSeek 技术报告&#xff0c;介绍用于构建推理模型的四种主要方法&#xff0c;也就是…