王茂振,程向梅,沈 威,任益博,章家鵬
(1. 航天晨光股份有限公司,南京 210000;2. 南昌航空大學測試與光電工程學院,南昌 330000)
熒光滲透法(Fluorescence Penetration)廣泛應用于檢測管件、焊接件、葉片等工件表面的裂紋、氣孔、分層等表面缺陷,其利用毛細現(xiàn)象原理將涂有熒光滲透液的工件置于一定的環(huán)境條件下[1],使熒光滲透液在物質內部進行滲透,使缺陷部位在黑光燈的照射下發(fā)出熒光,進而判定缺陷等級。它具有非破環(huán)性、成本低、步驟簡單、適用范圍廣等優(yōu)點,結合機器視覺、圖像處理技術可實現(xiàn)工件表面缺陷的自動化檢測[2]。通過采集工件的熒光滲透數(shù)字圖像,利用圖像處理技術識別缺陷大小、位置、類型,可以極大地提高工業(yè)現(xiàn)場的檢測效率。
熒光滲透圖像通常在暗室環(huán)境下進行拍攝,并結合黑光燈的輻射來激發(fā)工件表面的熒光信號。由于環(huán)境光的缺乏,相機感知的光線非常有限,導致圖像的整體亮度較低,這種低照度條件使得圖像細節(jié)難以清晰地展現(xiàn),造成圖像模糊和低對比度的問題。通常在低照度條件下為了增加圖像的信噪比,相機的感光器件會增加增益或延長曝光時間,這容易引入感光器件本身的噪聲,進一步降低圖像的清晰度和質量。多種因素的共同作用使得拍攝出的熒光圖像呈現(xiàn)出清晰度低、模糊、對比度低等不足。
目前對低光照圖像的恢復算法主要分為兩種,一種是傳統(tǒng)的低光照圖像恢復算法,另一種是基于深度學習的圖像恢復算法。傳統(tǒng)的低光照圖像恢復算法主要有色調映射法[3]、伽馬校正法[4]、直方圖均衡化法[5]、基于Retinex[6]理論的方法等。這些方法通過對圖像像素值進行調整,來增強圖像的對比度、亮度等特征,以使圖像變得更加清晰和鮮艷。基于Retinex 理論的圖像增強方法通過模擬圖像中的光照和反射過程,優(yōu)化圖像的亮度和對比度,以改善視覺感知和圖像質量[7]。Retinex 理論認為,人類視覺系統(tǒng)對光照的感知是基于物體表面反射和照明的分離處理。基于這個理論,Retinex 算法將圖像分解為反射分量和照明分量,并進行增強從而對圖像質量進行改善。然而Retinex 方法通常需要對圖像中的光照進行估計,以分離反射和照明分量。然而,在低光照條件下,光照估計本身可能存在挑戰(zhàn),因為光照信息在低亮度區(qū)域可能不可靠或不準確。不準確的光照估計可能導致增強后的圖像出現(xiàn)顏色失真或過度增強的問題。
隨著機器學習的快速發(fā)展,基于深度學習的方法在低光照圖像恢復任務中表現(xiàn)出更為優(yōu)越的性能。Wei等[8]通過神經(jīng)網(wǎng)絡將低光照圖像分解成光照分量和反射分量,并通過學習的方法修正光照分量,以重建低光照圖像,得到增強后的圖像。Shen 等[9]融合了卷積神經(jīng)網(wǎng)絡和Retinex 理論,設計出一個多尺度的卷積神經(jīng)網(wǎng)絡MSR-net(multi-scale Retinex network),這個網(wǎng)絡的設計允許它自動學習并處理不同尺度的信息,以提高對低光照條件下圖像的處理效果。通過使用Photoshop 處理后的成對數(shù)據(jù)進行訓練,實現(xiàn)了一個用于低光照圖像恢復的全面的端對端解決方案。Fan等[10]提出了帶照度約束的多尺度低光照圖像增強網(wǎng)絡,該網(wǎng)絡用Res2Net通過提取深層多尺度特征來增強模型的能力,從而避免了顏色失真問題,同時具有更自然的視覺效果。Wang 等[11]將低光照圖像增強問題視為殘差學習的任務,即試圖估計低光照圖像與正常光照圖像之間的差異,即殘差。他們在網(wǎng)絡結構中采用了光照反向映射的迭代過程,通過多次增加和減少光照來估計殘差光照。Chen等[12]創(chuàng)建了一個包含Raw 格式的短曝光低光照圖像和相應的長曝光參考圖像的數(shù)據(jù)集。利用這個數(shù)據(jù)集,他們提出了一種端到端訓練的基于全卷積網(wǎng)絡的方法,用于改善低光照圖像的質量。Zhao 等[13]則提出了深度對稱網(wǎng)絡,采用可逆神經(jīng)網(wǎng)絡來進行圖像之間的雙向特征學習。
基于深度學習的圖像恢復方法有自動學習特征、適應性強、上下文信息利用、端到端優(yōu)化和魯棒性強等優(yōu)勢。能夠自動學習和提取圖像的高級特征,這能夠更好地捕捉圖像的紋理、結構和語義信息,從而提高恢復質量。盡管深度學習方法在圖像恢復領域取得了顯著的進展,但也有一些缺點,如數(shù)據(jù)需求量大、參數(shù)調整和計算復雜度高、可解釋性低、泛化性差等問題。通常需要大量的訓練數(shù)據(jù)來獲取良好的恢復效果,對于一些數(shù)據(jù)稀缺的領域,該方法顯得比較困難;此外訓練和推理過程中需要大量的計算資源和時間,不利于實時的恢復任務。
本文構建熒光滲透檢測圖像數(shù)據(jù)集,使用Raw 格式圖像采集多種不同短曝光時間圖像作為低光照圖像,對應的長曝光時間圖像作為參考圖像。基于U-net 網(wǎng)絡構建一種端到端的卷積神經(jīng)網(wǎng)絡,Raw 格式數(shù)據(jù)作為輸入,處理并劃分為RGGB 四個通道。隨后將這四通道數(shù)據(jù)減去相機傳感器的黑電平值以進行校正,再放大一定倍數(shù)輸入到U-net 網(wǎng)絡中,最后將網(wǎng)絡輸出通過上采樣操作得到RGB 空間的輸出圖像。訓練過程設計使用一種SSIM 損失與MAE損失聯(lián)合損失函數(shù),以獲得最佳恢復效果。
本文采集原始圖像采用Sony Alpha7SⅡ相機,采集原始圖像數(shù)據(jù)即Raw 格式圖像,該相機的圖像傳感器排列方式為拜爾陣列,即使用拜爾陣列來捕捉彩色圖像。拜爾陣列(Bayer array)是一種常見的彩色圖像傳感器排列方式,廣泛應用于數(shù)碼相機、手機攝像頭等設備中。它利用了人眼對顏色感知的特性,通過排列紅、綠、藍三種濾光片來捕捉彩色圖像。
拜爾陣列的排列方式是一個重復的2×2 單元格網(wǎng)格,每個單元格內包含一個像素。在這個網(wǎng)格中,紅色濾光片(R)和藍色濾光片(B)以交叉的方式排列,而綠色濾光片(G)則位于相鄰的位置,如圖1所示。

圖1 拜爾陣列
當光線通過拜爾陣列時,每個像素只能接收到其中一種顏色的光。圖2(a)為使用相機拍攝滲透檢驗熒光顯示對比圖譜所得的Raw 格式圖像,圖2(b)為截取的一小段圖像,從圖中可以看出,Raw 格式圖像信息有些缺失,圖像、顏色顯示不完整。但通過對鄰近像素的顏色信息進行插值和處理,可以還原出完整的彩色圖像。在拜爾陣列中,綠色像素的數(shù)量最多,通過采樣更多的綠色信息,可以提高圖像的亮度和清晰度。然而,由于每個像素只能接收到一種顏色的光,需要進行插值和后期處理才能得到完整的彩色圖像。因此在Raw 格式圖像中,需要對拜爾陣列中的數(shù)據(jù)進行解析和處理。

圖2 熒光測試板拜爾陣列圖像
算法采用的網(wǎng)絡結構如圖3所示。相機采集到的彩色Raw 格式圖像采用拜爾陣列排列方式,網(wǎng)絡首先輸入一組一定大小的單通道拜爾陣列圖像數(shù)據(jù),并將其劃分為四個通道,再對每個通道做一次2倍的下采樣,空間分辨率減小4倍。隨后將四個通道減去相機傳感器自身的黑電平值進行矯正,將所有低于黑電平值的像素全設置為0,即純黑。黑電平值可通過Raw 圖像自身讀取。再將輸入數(shù)據(jù)亮度放大γ倍,輸入到U-net網(wǎng)絡中,經(jīng)過網(wǎng)絡處理后,圖像的通道數(shù)變?yōu)?2通道,同時分辨率減少為原始分辨率的一半。網(wǎng)絡的輸出為3通道RGB 圖像。其中,γ的計算公式為
其中,Exposure1、Exposure2分別為長曝光時間和短曝光時間。
圖4 為將原始拜爾陣列圖像劃分為四通道圖像示意圖,可以看出四個通道的亮度值均不一致。
其中U-net網(wǎng)絡結構[14]如圖5所示。U-net網(wǎng)絡由編碼器和解碼器兩部分組成,整個網(wǎng)絡的左半部分是編碼器,右半部分是解碼器。編碼器提取圖像的特征,解碼器則負責將特征重新映射為與原始圖像相同尺寸的預測結果[15]。
編碼器部分由一系列卷積層和池化層構成,每個卷積層后面跟著一個激活函數(shù)(ReLU)。這些層逐漸減小圖像的尺寸,同時增加特征的提取深度。通過這種逐步減小尺寸的過程,編碼器可以捕捉到不同尺度的上下文信息,以幫助解碼器更好地還原細節(jié)。

圖3 網(wǎng)絡結構圖

圖4 拜爾陣列四通道圖像
解碼器部分包含了一系列上采樣層和卷積層,它們的作用是逐步將特征圖的尺寸還原為與原始圖像相同的尺寸。每個上采樣層都使用上采樣操作來擴大特征圖的尺寸。接著,通過連接操作將這些層的輸出與編碼器相應層的特征圖相結合,使解碼器能夠充分利用低級和高級特征來精確地還原圖像的細節(jié)信息。這個過程有助于提高網(wǎng)絡對圖像的還原和重建能力。
為了更好地整合編碼器和解碼器之間的信息流動,在U-net 的解碼器的每一層都會執(zhí)行跳躍連接操作。這個跳躍連接的核心思想是將編碼器相應層次的特征圖與當前解碼器層次的特征圖相連接,以實現(xiàn)低級和高級特征的有機融合,有助于提高網(wǎng)絡的性能和準確性。這樣能夠使解碼器同時利用底層和高層的特征信息,從而提高預測結果的準確性。
在U-net 的最末端,利用一個1×1 的卷積層將特征圖映射為最終的預測輸出。U-net 網(wǎng)絡結構呈現(xiàn)出編碼器和解碼器之間的對稱性,通過跳躍連接和特征融合的方法,有效提升了預測結果的準確性。

圖5 U-net網(wǎng)絡結構圖
U-net 網(wǎng)絡采用ReLU 作為網(wǎng)絡的激活函數(shù),ReLU的函數(shù)表達式如式(2)所示:
導數(shù)公式為
ReLU 激活函數(shù)不需要復雜的數(shù)學計算,只是一個簡單的條件判斷。這使得它在計算上非常高效,適用于大規(guī)模的神經(jīng)網(wǎng)絡。ReLU 在負數(shù)范圍內為零,但在非負數(shù)范圍內,它是一個線性函數(shù)。對于大于零的輸入,ReLU 的導數(shù)始終為1,它不會引起梯度消失問題。相比之下,一些傳統(tǒng)的激活函數(shù)(如Sigmoid 和tanh)在輸入較大或較小的情況下,梯度接近于零,導致梯度消失或梯度爆炸。
為了獲得較好的圖像恢復效果,結合結構相似性指數(shù)(SSIM)損失和平均絕對值誤差(MAE)損失構建一個聯(lián)合損失函數(shù),同時考慮圖像的結構相似性和亮度誤差。使用加權求和的方式將這兩個指標結合到一個聯(lián)合損失函數(shù)中,其計算公式為
其中,LMAE表示MAE 損失函數(shù),LSSIM表示SSIM損失函數(shù),α、β分別為其權重系數(shù),設置α=0.8,β= 0.2。
平均絕對值誤差損失函數(shù)LMAE的函數(shù)表達式如下:
其中,yi為真實值,f(xi)為網(wǎng)絡的輸出,n為樣本數(shù)。LMAE對異常值的魯棒性較強,它使用了絕對差值,不受異常值的影響。另外,由于LMAE在0 點處不可導,因此在優(yōu)化過程中,當預測值與真實值之間的差異較小時,LMAE的梯度為常數(shù)1,從而促使模型學習到盡可能少的非零權重,這使得LMAE在優(yōu)化過程中更傾向于產(chǎn)生稀疏解。
LSSIM表示增強圖像E與參考圖像R的特征表示之間的SSIM 損失,用于評估兩個圖像結構相似性,它比較了圖像的亮度、對比度和結構信息,其計算公式為
其中,(E,R)分別表示增強圖像和參考圖像;(μE,μR),分別表示E和R的平均值;(σE,σR),分別表示E和R的標準差;σER代表E和R的協(xié)方差;c1,c2表示常數(shù)。
選用索尼相機,在暗室環(huán)境下拍攝熒光滲透檢測圖像。每次拍攝不同形狀、大小的工件,為保證拍攝過程的穩(wěn)定性,采用固定支架固定相機。保證相同工件的相機參數(shù)相同,調整曝光時間,采集長、短時間曝光圖像。短曝光時間分別設置為0.033 s、0.04 s、0.1 s,長曝光時間為10 s,相機的其他參數(shù)如ISO、光圈、對焦等都設置為最佳,在同一環(huán)境同一工件下,拍攝四種不同曝光時間的圖像,其中長曝光時間圖像只拍攝1 張,短曝光時間分別拍攝3、5、8張,總共對200個不同的工件進行拍攝,最后得到3400 張熒光滲透檢測圖像。熒光圖像數(shù)據(jù)集見表1。其中短曝光時間圖像作為網(wǎng)絡輸入,長曝光時間圖像作為參考圖像,一張長曝光時間圖像對應多張短曝光時間圖像。并劃分數(shù)據(jù)集,訓練集、測試集、驗證集的比例為7∶2∶1。

表1 熒光圖像數(shù)據(jù)集
圖6 為不同曝光時間下的熒光滲透檢測圖像,可以看出隨著曝光時間的增加,圖像亮度也隨之增加,整體細節(jié)也更加豐富,但同時長曝光時間圖像也會引入更多的噪點。

圖6 不同曝光時間的熒光滲透圖像
本實驗使用Ubuntu 18.04 操作系統(tǒng),使用PyTorch 作為深度學習框架。實驗平臺配置了兩塊NVIDIA GeForce RTX 3080 Ti GPU,以及一顆Intel Core i9-12900K CPU 和32 GB DDR4 RAM內存。
將數(shù)據(jù)集加載至網(wǎng)絡,短曝光時間圖像作為網(wǎng)絡輸入,長曝光時間圖像作為真實值,選擇SSIM 損失與MAE損失聯(lián)合損失函數(shù)作為損失函數(shù),并使用Adam 優(yōu)化器進行模型訓練,一共訓練4000 輪。初始學習率設置為0.0001,并采用學習率衰減策略,在訓練了2000 輪后,將學習率調整為0.000001。在每次迭代中,對一張輸入圖片進行隨機裁剪,裁剪成512*512大小的圖片,并對其進行旋轉、翻轉、鏡像等操作。
實驗圖像評價指標為PSNR(峰值信噪比)和SSIM(結構相似性指數(shù))。PSNR 用來度量恢復圖像與原始圖像之間差異,其結果以分貝(dB)為單位表示,數(shù)值越高表示恢復質量越好。SSIM通過比較原始圖像和恢復圖像之間的結構信息來評估它們之間的相似性。SSIM 考慮了亮度、對比度和結構三個方面的相似性。這兩個指標在圖像恢復質量評價中發(fā)揮關鍵作用,它們能夠幫助準確評估恢復圖像與原始圖像之間的差異和相似性,從而評估圖像恢復算法的性能。PSNR 提供了一個數(shù)值度量,而SSIM 則更全面地考慮了圖像的多個方面,能夠更全面地評估圖像恢復的質量,可以更好地捕捉人眼對圖像質量的感知。最終的SSIM 指數(shù)的取值范圍在0~1之間,數(shù)值越接近1,表示恢復質量越好。
恢復后的結果如圖7 所示,從圖7 可以看出,采用本文方法對低光照圖像進行復原,其主觀成像效果較好,圖像細節(jié)、紋理接近于長曝光圖像,而使用直方圖均衡化法恢復的圖像,雖然圖像整體更亮,但同時包含了大量噪點,掩蓋了許多原有的細節(jié),并且偏色較為嚴重,效果不佳。
實驗選用直方圖均衡法、伽馬校正法、自適應對數(shù)映射法[16]、自適應直方圖均衡化法作為對比對照,采用以上幾種方法對所有低光圖像進行恢復,并利用長曝光圖像作為參考圖像計算相應的PSNR 和SSIM 值,結果平均值見表2。可以看出,采用傳統(tǒng)方法恢復的PSNR和SSIM 值都比較低,本文方法的PSNR值達到了28.237 dB,對比傳統(tǒng)方法最高提升了78.7%,SSIM 值達到了0.783,對比傳統(tǒng)方法最高提升了63.6%,提升效果顯著。

圖7 恢復結果對比

表2 不同方法客觀指標比較
圖8為采用傳統(tǒng)方法與本文方法復原結果的對比圖,圖(c)為自適應直方圖均衡化法恢復結果,圖像總體恢復較好,但亮度較低,邊緣處的細節(jié)缺失,工件表面的熒光缺陷部位恢復效果不佳。圖(b)、圖(d)都出現(xiàn)了低強度的噪聲被放大,圖像噪聲過多的問題,并且對比度嚴重失真,圖(e)中恢復圖像的明暗細節(jié)區(qū)域產(chǎn)生了過度增強的效果。而本文方法無論是在圖像噪聲、紋理細節(jié)、圖像亮度等方面都恢復得比較好,優(yōu)于傳統(tǒng)方法,尤其是在工件表面熒光缺陷部分,恢復效果接近于長曝光圖像。

圖8 各方法恢復結果對比
本文提出了一種基于深度學習的低照度圖像恢復方法,優(yōu)于傳統(tǒng)方法。可以較好地還原圖像細節(jié),適合于熒光滲透數(shù)字化圖像恢復,提高檢測精度。