基于雙塊輕量級神經網絡的無人機拍攝的風力渦輪機圖像去霧方法

基于雙塊輕量級神經網絡的無人機拍攝的風力渦輪機圖像去霧方法

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)+(A?bias)?

故公式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
英文地址,請注明出處:http://en.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;說明…