基于双块轻量级神经网络的无人机拍摄的风力涡轮机图像去雾方法

基于双块轻量级神经网络的无人机拍摄的风力涡轮机图像去雾方法

UAV-Taken Wind Turbine Image Dehazing With a Double-Patch Lightweight Neural Network

我是菜鸡!我是菜鸡!我是菜鸡!

如果老师及学姐学长对该文有任何意见,请您随时告诉我,我随时可以删除这篇文章(非常非常真诚)!

如果我有内容解释有误或不够清晰也请随时告诉我,我随时会对文章进行调整。

核心内容

  1. 双块网络结构DPLDN

  2. 去雾网络DehazeNet的设计

  3. 模糊图像重建公式推导部分

  4. 独特的损失设计

  5. 超分辨率重建模块

整体叙述

请添加图片描述

从代码来看,论文中包含两个独立的模型,分别为DPLPN和MPSRN,DPLPN使用了独特的损失设计(第四部分),MPSRN则使用了MSE损失。

如图所示,Part C即为双块网络结构DPLDN,在我们叙述的第一部分
而在DPLDN中使用的 Image Dehaze则为Part A中使用的去雾网络DehazeNet,在我们叙述的第二部分
Part B则叙述了去雾图像的具体推导原因及推导方法,在我们叙述的第三部分
Part D在是原文中的混合损失设计,图像中无体现,在我们叙述的第四部分
Part E是MPSRN模块,在我们叙述的第五部分

1. 双块网络结构DPLDN

这样设计的原因是目前大部分CNN的模型都会提取整幅图像的特征而导致忽略了图像的细节,采用多块的结构可以有效恢复图像细节。

具体实现:

将原始图像分割为两个部分并且分别输入到去雾网络中,生成对应部分的去雾图。然后再将拼接后的去雾图与原始图像相结合(加),再输入到去雾网络中,生成最终的去雾图像。
这部分直接看图片中的Part C很好理解
在这里插入图片描述

起源论文

按照论文中的叙述,这里的参考Fast deep multi-patch hierarchical network for
nonhomogeneous image dehazing(论文还没看)。可以横向对比下还有什么提取图像细节的高效的方法。

2. 去雾网络DehazeNet的设计

在这里插入图片描述

如PART A所示,DehazeNet包含七个卷积层和三个拼接层,且每个卷积层后都都连接着一个修正线性单元层。
易看出,七个卷积层中,共包含三个Dilated Conv 和四个 DSConv
这里只是简单叙述了一下这样设计的原因,想要进一步了解DXConv的话我们还是需要去补一下论文。
DSConv将常规卷积分解为两个部分,分别为一个通道级卷积和一个点位级卷积

self.depth_conv1 = nn.Conv2d(in_channels=3,out_channels=3,kernel_size=1,stride=1,padding=0,groups=3
)
self.point_conv1 = nn.Conv2d(in_channels=3,out_channels=3,kernel_size=1,stride=1,padding=0,groups=1
)

实际使用时类似下用例

    out = self.depth_conv1(img)conv_layer1 = self.relu(self.point_conv1(out))

同时在DSconv1之后添加了三个具有不同感知场尺寸的扩张卷积层 Dilated Conv,同时这三个卷积层有着不同的膨胀因子,图像会先经过粗尺度网络再通过细尺度网络进行恢复。因此,恢复后的图像包含更多层次的特征信息。
因为使用卷积神经网络进行高层表征时,早期学习到的低层级语义会逐渐丢失。因此,后续卷积层会复用相邻卷积特征图之间的特征信息,从而充分利用各层提取的信息。这点从图中紧密的concat可以表现出来。

起源论文

按照文中叙述,文中的CNN结构受到了AOD-Net的影响。
DSConv在PSD提出。
多尺度特征融合的思路则是受Multi-Scale feature fusion的影响

文末有论文链接

  1. AOD-Net: All-in-one dehazing network

  2. PSD: Principled synthetic to-real dehazing guided by physical priors

  3. Multi-Scale feature fusion: Learning better semantic segmentation for road pothole detection

3. 模糊图像重建公式推导部分

目前各类基于CNN的端到端去雾算法主要以ASM模型为基础进行去雾处理,其中ASM模型可以表示为
公式1 I(x) = J(x)t(x) + A(1-t(x))
其中I(x)表示含雾图像,J(x)是需要恢复的无雾图像,A为全局大气光,t(x)为透射图

由公式1易推得去雾图像的 计算公式2
J(x) = 1t(x)\dfrac{1}{t(x)}t(x)1 * I(x) - A * 1t(x)\dfrac{1}{t(x)}t(x)1 + A

此时考虑到可以用K(x)单一未知量来替代全局大气光A及透射图t(x)

所以变换数学方程后,可得公式3

K(x) = 1/t(x)∗(I(x)−A)+(A−bias)I(x)−1\dfrac{1/t(x)*(I(x)-A) + (A - bias)}{I(x)-1}I(x)11/t(x)(I(x)A)+(Abias)

故公式4可以表示为

J(x) = K(x) * I(x) - k(X) + bias

通过一连串的数学方程推导后,原公式被转化为仅包含单一未知量的K(x),优化了计算过程,同时bias为默认常数1

但是具体过程我们需要再看一下演变的论文,譬如K(x)变换的想法以及bias为常数1的原因,待后续看起源论文后补充

起源论文

这一部分详细了解的话需要看一下ASM的演变过程,文中提供了参考的论文,详细研究的话需要再看一下如下论文
[Unsupervised single image dehazing using dark channel prior loss]
[Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks]

4. 损失值的设计

采用了复合损失函数,该函数包含图像重建损失、图像结构损失和图像边缘损失

L = λ1LSmooth L1 + λ2Ls + λ2Le

图像重建损失

其中的LSmooth L1表示为

在这里插入图片描述

其中IK表示去雾图像中第k个颜色通道的像素p的强度,JK表示清晰图像中对应的值。

为了避免陷入局部最优解,最终设计为

在这里插入图片描述

图像结构损失

在公式(5)中,Ls用于使图像的视觉效果更符合人眼的主观视觉感知。它通过峰值信噪比(PSNR)来反映生成图像与标准清晰图像之间的结构相似性(SSIM)。该损失函数Ls可表示如下:
请添加图片描述

图像边缘损失

考虑到图像边缘主要由亮度显著变化的像素构成,因此选用交叉熵损失函数来计算边缘损失

请添加图片描述

其中其中,SI(x,y)表示从去雾图像中提取的边缘图像,SJ(x,y)表示从对应的无雾图像中提取的边缘图像。

起源论文
  1. MSE改进 Image quality assessment: from error visibility to structural similarity

  2. 峰值信噪比(PSNR)
    Loss functions for image restoration with neural networks,

超分辨率重建模块

在大部分去雾算法中,处理后的图像细节和边缘信息仍然不够清晰,有必要对图像细节进行增强。所以MPSRN网络被提出。
MPSRN是一个独立的模型,按我的理解是在DPLPN之后,再对于产出的图像进行二次处理,所用的损失按照代码看是MSE损失。
MPSRN的结构类似于DPLDN,主要可以参考Part E中的右半部分进行理解。
请添加图片描述

如PART E部分所示。从底层到顶层,各层级分别包含1、2和4个块。首先处理底层的四个块生成对应特征图,将底层输出的两个图像进行融合。随后与第二层块融合后输入模型处理,将处理后的图像拼接成完整地图。最后将该地图传递至顶层与原始图像融合,最终获得高分辨率图像。(论文讲的很清晰)
请添加图片描述

其中使用的超分辨率重建模型SRN则指Part E的左半部分,共包含3个卷积,第一个采用9×9的卷积核尺寸提取低分辨率图像特征。第二个卷积层负责实现低分辨率特征与高分辨率特征之间的非线性映射;第三个卷积层则使用5×5核尺寸进行高分辨率特征重建。(这里说实在我了解的不清晰,只知道这样做了,不知道为什么这么做)

后记

这是我们对于整篇论文及代码进行的最初的解析,剩下的半个月会进入摆烂研究阶段,陆续有对相应的参考论文有看的话再对本文进行调整。
同时,本文综合到的各类知识点较多较杂,很多知识点我之前都没有接触过,如果有分析有误请您随时指出,我随时修改。
对于文中后续的计算实验仅进行了粗读,后续有时间的话我会再补上,可能也会导致我对模型分析有误。

相关参考

  1. 官方开源代码(里面只看到了SRCNN没有看到MPSRN,但看结构很接近)

待阅读论文

  1. 该论文的后半部分还需精度,比较下实验内容。
  2. 多块结构网络论文Fast Deep Multi-patch Hierarchical Network for Nonhomogeneous Image Dehazing
  3. 本文dehazenet的网络参考AOD-Net: All-in-One Dehazing Network
  4. DSConv的网络参考PSD: Principled Synthetic-to-Real Dehazing Guided by Physical Priors
  5. 多尺度特征融合Multi-Scale feature fusion: Learning better semantic segmentation for road pothole detection
  6. ASM模型推演相关论文Unsupervised Single Image Dehazing Using Dark Channel Prior Loss
  7. ASM模型推演相关论文Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks
  8. MSE改进论文Image quality assessment: from error visibility to structural similarity
  9. PSNR峰值信噪比论文Loss functions for image restoration with neural networks

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

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

相关文章

Spring AI Alibaba 项目接入阿里云百炼平台大模型

1 依赖jdk 21 springboot 3.4.5 spring-ai-alibaba-starter-dashscope 1.0.0.2<properties><java.version>21</java.version><spring-ai.version>1.0.0</spring-ai.version><spring-ai-alibaba.version>1.0.0.2</spring-ai-alibaba.v…

电脑和手机访问网站,自动检测跳转不同网站

自动检测跳转不同网站 自动检测设备手机或电脑来跳转不同网页 开箱即用&#xff0c;不过需要自己修改一下跳转链接 源码截图&#xff1a; 下载地址&#xff1a;电脑和手机访问网站&#xff0c;自动检测跳转不同网站.zip - 蓝奏云

Spring Boot 集成 ShardingSphere 实现读写分离实践

Spring Boot 集成 ShardingSphere 实现读写分离实践 在高并发的业务场景中,数据库往往是系统性能的瓶颈。为了提高系统的吞吐量和稳定性,读写分离是一种常见的优化方案。本文将详细介绍如何使用 Spring Boot 结合 ShardingSphere 实现数据库的读写分离,并提供完整的配置和实…

以rabbitmq为例演示podman导出导入镜像文件

1. 导出镜像为 tar 文件 将镜像保存为压缩包&#xff08;默认格式为 docker-archive&#xff09;&#xff1a; podman save -o rabbitmq_management.tar docker.io/rabbitmq:management-o&#xff1a;指定输出文件名&#xff08;如 rabbitmq_management.tar&#xff09;。镜像名…

LIS(最长上升子序列)与LCS(最长公共子序列)

最长上升子序列定义&#xff1a;给出一个数字序列&#xff08;arr&#xff09;&#xff0c;求出其中长度最长的数值严格递增的子序列做法一&#xff1a;使用动态规划&#xff0c;我们定义dp[i]为以arr[i]结尾的最长上升子序列的长度。#include<bits/stdc.h> using namesp…

javaSE(基础):5.抽象类和接口

抽象类一.理解抽象类思维&#xff1a;假如我想定义一个Shape&#xff08;图形类&#xff09;类&#xff0c;我在这个类中写了一个draw()方法&#xff0c;但是这个方法是不能用来描述图形形状的&#xff08;不能有方法体&#xff09;&#xff0c;因为我只要对他进行了准确描述&a…

ESG评级可持续发展之路,ESG评级的好处

在商业文明的演进历程中&#xff0c;ESG评级正成为衡量企业价值的全新坐标系。这套融合环境&#xff08;Environmental&#xff09;、社会&#xff08;Social&#xff09;和治理&#xff08;Governance&#xff09;三大维度的评估体系&#xff0c;犹如一盏明灯&#xff0c;指引…

camera人脸识别问题之二:【FFD】太阳逆光场景,人像模式后置打开美颜和滤镜,关闭heif拍摄格式对着人脸拍照,成像口红出现位置错误

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; camera人脸识别问题之二&#xff1a;【FFD】太阳逆光场景&#xff0c;人像模式后置打开美颜和滤镜&#xff0c;关…

YOLO-Count:用于文本到图像生成的可微分目标计数

摘要 https://arxiv.org/pdf/2508.00728v1 我们提出了YOLO-Count&#xff0c;一种可微分的开放词汇目标计数模型&#xff0c;旨在解决通用计数挑战并实现文本到图像(T2I)生成的精确数量控制。核心贡献是"基数"图(cardinality map)&#xff0c;这是一种新颖的回归目标…

Go 的错误处理方式深度解析—— error vs panic vs recover:机制原理与实战取舍

一、Go 的错误处理哲学Go 的设计哲学鼓励明确的、显式的错误处理方式。它不像 Java 或 Python 使用异常机制&#xff0c;而是采用了返回值 error 的方式&#xff0c;让错误成为程序流程的一部分。Go 的错误处理核心理念是&#xff1a; 错误是值&#xff08;Errors are values&a…

官方Windows系统部署下载工具实践指南

摘要&#xff1a;本文介绍两款用于获取微软正版系统部署文件的工具&#xff0c;适用于需要快速搭建Windows环境的技术人员。所有工具均基于官方渠道实现&#xff0c;不涉及系统修改或激活功能。一、Windows系统镜像下载方案工具名称&#xff1a;Windows镜像直链下载工具 核心功…

Pandas query() 方法详解

Pandas query() 方法详解query() 是 Pandas 中一个非常强大的方法&#xff0c;它允许你使用字符串表达式来筛选数据行。这种方法比传统的布尔索引更简洁、更易读。基本语法df.query(expr, inplaceFalse, **kwargs)expr: 查询字符串表达式inplace: 是否原地修改 DataFrame (默认…

Linux系统层IO

1.c语言文件操作 fopen&#xff1a;打开文件&#xff0c;模式 "w"&#xff08;写&#xff0c;覆盖&#xff09;或 "r"&#xff08;读&#xff09;。 fwrite&#xff1a;fwrite(data, size, count, fp)&#xff0c;按 size 字节写入 count 次数据。 fread…

QT中的trimmed() 方法(1)

QT中的trimmed() 方法&#xff08;2&#xff09; trimmed() 是 Qt 框架 中 QString 类提供的一个方法&#xff0c;用于 去除字符串首尾的空白字符&#xff08;whitespace characters&#xff09;。它的作用类似于标准 C 中的 std::string 的 trim 操作&#xff0c;但专为 Qt 的…

动漫软件集合分享

通过网盘分享的文件&#xff1a;动漫软件 链接: https://pan.baidu.com/s/1TD_OmaAZksfFxJ4PW6rS-w?pwd1234 提取码: 1234 打印动漫.apk 当鸟动漫.apk 动漫共和国【OmoFun复活】.apk 咕咕香.apk 黑猫动漫.apk 团次元【推荐】.apk 橘漫.apk 曼波.apk 萌国.apk 趣动漫.apk 三…

Mysql与Ooracle 索引失效场景对比

MySQL 和 Oracle 作为主流关系型数据库&#xff0c;其索引失效的场景既有共性&#xff0c;也因底层优化器、索引类型支持等差异存在不同。以下从常见索引失效场景对比两者的表现及原因&#xff1a;一、索引列上使用函数 / 表达式共性&#xff1a;若直接在索引列上使用函数或表达…

【unity知识】unity使用AABB(轴对齐包围盒)和OBB(定向包围盒)优化碰撞检测

文章目录前言一、AABB&#xff08;轴对齐包围盒&#xff09;1、基本概念2、数学表示3、Unity中的实现4、实际应用示例二、OBB&#xff08;有向包围盒&#xff09;1、Physics.ComputePenetration (Unity 物理引擎)1.1 基本概念1.2 Unity中的实现1.3 实际应用示例2、OBB (SAT) 手…

Numpy科学计算与数据分析专题

Numpy科学计算与数据分析 1. Numpy入门&#xff1a;数组操作与科学计算基础 2. Numpy入门&#xff1a;多平台安装与基础环境配置 3. Numpy数组创建与应用入门 4. Numpy数组属性入门&#xff1a;形状、维度与大小 5. Numpy数组索引与切片入门 6. Numpy数组操作入门&#xff1a;…

齐护机器人小智AI_MCP图形化编程控制Arduino_ESP32

齐护机器人小智AI_MCP图形化编程控制Arduino_ESP32 齐护AiTall在项目实践里&#xff0c;我们常常期望达成这样一种场景&#xff1a;借助智能体&#xff08;例如小智 AI&#xff09;来远程操控其他开发板上的设备&#xff0c;这类似于智能家居系统中智能音箱与各类家电的互动模式…

CPO-SVM分类预测+特征贡献SHAP分析,通过特征贡献分析增强模型透明度,Matlab代码实现,引入SHAP方法打破黑箱限制,提供全局及局部双重解释视角

代码功能 该Matlab代码实现了一个基于CPO-SVM冠豪猪算法优化支持向量机的数据分类模型&#xff0c;结合了SHAP可解释性分析&#xff0c;CPO选择最佳的SVM参数c和g。 SVM模型有两个非常重要的参数C与gamma。其中 C是惩罚系数&#xff0c;即对误差的宽容度。c越高&#xff0c;说明…