基于雙塊輕量級神經網絡的無人機拍攝的風力渦輪機圖像去霧方法
UAV-Taken Wind Turbine Image Dehazing With a Double-Patch Lightweight Neural Network
我是菜雞!我是菜雞!我是菜雞!
如果老師及學姐學長對該文有任何意見,請您隨時告訴我,我隨時可以刪除這篇文章(非常非常真誠)!
如果我有內容解釋有誤或不夠清晰也請隨時告訴我,我隨時會對文章進行調整。
核心內容
-
雙塊網絡結構DPLDN
-
去霧網絡DehazeNet的設計
-
模糊圖像重建公式推導部分
-
獨特的損失設計
-
超分辨率重建模塊
整體敘述
從代碼來看,論文中包含兩個獨立的模型,分別為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的影響
文末有論文鏈接
-
AOD-Net: All-in-one dehazing network
-
PSD: Principled synthetic to-real dehazing guided by physical priors
-
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)表示從對應的無霧圖像中提取的邊緣圖像。
起源論文
-
MSE改進 Image quality assessment: from error visibility to structural similarity
-
峰值信噪比(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核尺寸進行高分辨率特征重建。(這里說實在我了解的不清晰,只知道這樣做了,不知道為什么這么做)
后記
這是我們對于整篇論文及代碼進行的最初的解析,剩下的半個月會進入擺爛研究階段,陸續有對相應的參考論文有看的話再對本文進行調整。
同時,本文綜合到的各類知識點較多較雜,很多知識點我之前都沒有接觸過,如果有分析有誤請您隨時指出,我隨時修改。
對于文中后續的計算實驗僅進行了粗讀,后續有時間的話我會再補上,可能也會導致我對模型分析有誤。
相關參考
- 官方開源代碼(里面只看到了SRCNN沒有看到MPSRN,但看結構很接近)
待閱讀論文
- 該論文的后半部分還需精度,比較下實驗內容。
- 多塊結構網絡論文Fast Deep Multi-patch Hierarchical Network for Nonhomogeneous Image Dehazing
- 本文dehazenet的網絡參考AOD-Net: All-in-One Dehazing Network
- DSConv的網絡參考PSD: Principled Synthetic-to-Real Dehazing Guided by Physical Priors
- 多尺度特征融合Multi-Scale feature fusion: Learning better semantic segmentation for road pothole detection
- ASM模型推演相關論文Unsupervised Single Image Dehazing Using Dark Channel Prior Loss
- ASM模型推演相關論文Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks
- MSE改進論文Image quality assessment: from error visibility to structural similarity
- PSNR峰值信噪比論文Loss functions for image restoration with neural networks