龔渠,張偉,王生懷,張俊杰
(湖北汽車工業(yè)學(xué)院 機(jī)械工程學(xué)院,湖北 十堰 442002)
數(shù)字條紋輪廓技術(shù)是非接觸式三維形貌重建技術(shù)[1],廣泛應(yīng)用于工業(yè)制造與檢測(cè)、逆向設(shè)計(jì)、醫(yī)療工程等領(lǐng)域。數(shù)字條紋輪廓技術(shù)是采用特殊設(shè)計(jì)的結(jié)構(gòu)光條紋投影到被測(cè)物體表面,然后通過(guò)提取受到被測(cè)物調(diào)制的變形條紋的信息獲取物體的三維形貌。實(shí)際測(cè)量應(yīng)用中,條紋圖不可避免地產(chǎn)生噪聲,影響測(cè)量精度,對(duì)條紋圖進(jìn)行分析之前,消除或減小噪聲很有必要。簡(jiǎn)單常用的條紋圖去噪算法是均值濾波和中值濾波,但會(huì)造成條紋圖邊緣模糊,特別是高密度條紋圖邊緣模糊嚴(yán)重,影響條紋圖信息提取。旋濾波算法[2]、基于偏微分方程的條紋圖去噪算法[3]等空間域?yàn)V波算法簡(jiǎn)單,處理速度快,但處理?xiàng)l紋圖的高頻信息時(shí),會(huì)丟失圖像信息造成圖像模糊。傅里葉變換法[4]、小波變換[5]、窗口傅里葉變換[6]等變換域?yàn)V波能較好地抑制噪聲,同時(shí)保留圖像中的高頻信息,但計(jì)算速度較慢?;谄娈愔捣纸馊ピ胨惴ǎ?]效果較好但十分耗時(shí)。非局部均值[8]用于條紋圖去噪,效果好但時(shí)間較長(zhǎng),為了提升去噪效率只能降低去噪性能。近些年,隨著計(jì)算機(jī)硬件的提升,深度學(xué)習(xí)技術(shù)快速發(fā)展,基于深度學(xué)習(xí)的條紋圖去噪算法也在快速發(fā)展。Yan等[9]使用深度學(xué)習(xí)對(duì)條紋圖去噪,能夠得到高質(zhì)量的條紋圖且處理速度快。Lin等[10]提出了基于多階段卷積網(wǎng)絡(luò)的條紋圖去噪算法,使用了3個(gè)階段,每個(gè)階段經(jīng)過(guò)8個(gè)卷積層后得到1個(gè)噪聲圖像,3個(gè)階段后對(duì)噪聲圖像去噪,采用較少使用的Leaky ReLU激活函數(shù),比ReLU激活函數(shù)得到了更好的去噪性能。在實(shí)際基于條紋的測(cè)量中,不同形面會(huì)產(chǎn)生條紋圖分布密集稀疏現(xiàn)象。條紋密度越高,測(cè)量精度越高,同時(shí)邊緣特征越易受到噪聲污染,顯然密集條紋圖的噪聲更影響測(cè)量結(jié)果。傳統(tǒng)條紋圖濾波處理時(shí)易導(dǎo)致密集條紋嚴(yán)重模糊,導(dǎo)致測(cè)量結(jié)果誤差較大或錯(cuò)誤的測(cè)量結(jié)果;濾波處理后能得到高質(zhì)量的條紋圖,但處理時(shí)間較長(zhǎng)。因此提出基于深度學(xué)習(xí)的疏密條紋分類去噪算法,將條紋圖分為密集條紋和稀疏條紋進(jìn)行處理。對(duì)比不同條紋密度類型運(yùn)行時(shí)間和去噪性能,選取適當(dāng)?shù)纳疃葘W(xué)習(xí)模型參數(shù),提高網(wǎng)絡(luò)運(yùn)算速度,同時(shí)盡可能增加去噪性能。
被測(cè)物形狀如圖1所示,投影正弦條紋圖受被測(cè)物形狀調(diào)制變形。圖2為不同形面調(diào)制后的條紋圖。條紋圖模型為
圖1 被測(cè)物體的形面
圖2 條紋類型
式中:(x,y)為時(shí)空坐標(biāo);A(x,y)為背景強(qiáng)度;B(x,y)為條紋幅度;φ(x,y)為相位分布;N0(x,y)為圖像噪聲。條紋圖去噪目的是從噪聲圖像I(x,y)中去除噪聲N0(x,y)。條紋投影到被測(cè)物體,受到被測(cè)物體形面調(diào)制變形,公式為
式中:f為條紋頻率;β為被測(cè)物梯度系數(shù);Ψ(x,y)為被測(cè)物形面參數(shù)。f、β與條紋密度成正比。用像素尺寸為64×64窗口提取條紋圖區(qū)域中心線,依據(jù)中心線數(shù)量判定疏密類型。選取部分條紋圖用上述方法提取中心線,發(fā)現(xiàn)稀疏條紋圖窗口提取中心線數(shù)量均小于6,密集條紋圖窗口提取中心線數(shù)量大于6。若某窗口提取中心線數(shù)量超過(guò)6,則判定為密集條紋圖,反之為稀疏條紋圖。條紋圖深度學(xué)習(xí)模型去噪處理過(guò)程如圖3所示。
圖3 去噪處理過(guò)程
疏密分類模型首層采用卷積連接,并用多個(gè)相同的卷積核獲取圖像淺層特征,卷積核參數(shù)為長(zhǎng)、寬和通道數(shù)。通常采用長(zhǎng)×寬像素尺寸為1×1,3×3,5×5的卷積核,尺寸選擇均為奇數(shù),是為了確保有1個(gè)中心,卷積核增大,特征信息會(huì)更豐富,然而訓(xùn)練速度會(huì)變慢,因此選擇像素尺寸為3×3的卷積核對(duì)條紋進(jìn)行訓(xùn)練。首先輸入添加了高斯噪聲的條紋圖,將條紋圖根據(jù)密度分類后分別放入卷積神經(jīng)網(wǎng)絡(luò)中,經(jīng)過(guò)卷積神經(jīng)網(wǎng)絡(luò)后得到1個(gè)估計(jì)噪聲,用噪聲條紋圖減去估計(jì)噪聲輸出得到去噪圖像。卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示:1)第1層L1包含了卷積濾波和ReLU(rectified linear unit)激活函數(shù)[11],卷積濾波器個(gè)數(shù)為64,像素尺寸為3×3×1,可以輸出64個(gè)特征圖;2)中間層L2~Ln-1包含了卷積濾波器、批標(biāo)準(zhǔn)化(batch normalization,BN)[12]和激活函數(shù)ReLU,濾波器個(gè)數(shù)為64,像素尺寸為3×3×64;3)最后層Ln包含了1個(gè)卷積濾波器,濾波器個(gè)數(shù)為1,像素尺寸為3×3×64。
圖4 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
第1層卷積是為了進(jìn)行特征提??;中間層卷積后加入BN是解決內(nèi)部協(xié)變量轉(zhuǎn)移(internal covariate shift,ICS)問題,即神經(jīng)網(wǎng)絡(luò)后面的網(wǎng)絡(luò)層會(huì)因?yàn)榍懊婢W(wǎng)絡(luò)層的輸入變化而變化,且變化幅度劇烈,使得學(xué)習(xí)率過(guò)低;最后層經(jīng)過(guò)卷積后輸出估計(jì)噪聲。整個(gè)網(wǎng)絡(luò)中每層的通道數(shù)均為64,殘差模塊可以直接在2個(gè)卷積層之間進(jìn)行運(yùn)算。殘差模塊和批標(biāo)準(zhǔn)化結(jié)合不僅可以加速和穩(wěn)定訓(xùn)練過(guò)程,還能提升去噪效果[13]。
訓(xùn)練網(wǎng)絡(luò)每層的目標(biāo)是解決1階可訓(xùn)練非線性反應(yīng)擴(kuò)散(trainable nonlinear reaction diffusion,TNRD)問題[14],TNRD的目標(biāo)是解決問題:
式中:I為帶噪聲條紋圖;I0為干凈條紋圖;N為圖像尺寸;λ為正則項(xiàng)系數(shù),fm·I0為圖像I0在第m次的卷積核fm的卷積;ρm為第m層的懲罰函數(shù)。式(3)的解表示從初始點(diǎn)I開始進(jìn)行1次梯度下降:
式中:fm*為fm的伴隨卷積核,由卷積核fm旋轉(zhuǎn)180°得到;α為步長(zhǎng);?m為影響函數(shù)。
式(4)可以等價(jià)于
式中:v為I0對(duì)于I的估計(jì)殘差。?m是非線性逐點(diǎn)映射到卷積特征圖,所以式(6)實(shí)際上是2層前饋的卷積神經(jīng)網(wǎng)絡(luò)。把采用殘差學(xué)習(xí)公式訓(xùn)練的殘差圖像定義為
式中:θ為網(wǎng)絡(luò)的訓(xùn)練參數(shù),包含每層訓(xùn)練后更新的濾波器和批標(biāo)準(zhǔn)化的參數(shù)。由此得到去除噪聲的條紋圖像:
其損失函數(shù)為
式中:K為每層網(wǎng)絡(luò)中每次訓(xùn)練中批次樣本數(shù)量。最終訓(xùn)練得到高度非線性方程,作為近似的噪聲強(qiáng)度統(tǒng)計(jì)分布。
2.1.1 訓(xùn)練和測(cè)試數(shù)據(jù)
使用MATLAB隨機(jī)生成10050張像素尺寸為512×512的密集條紋圖和10050張像素尺寸為512×512的稀疏條紋圖。將條紋圖灰度化處理后,20000張圖片作為訓(xùn)練數(shù)據(jù),剩余100張用作檢測(cè)。訓(xùn)練數(shù)據(jù)需要添加噪聲作為輸入圖像,添加的噪聲為高斯白噪聲,其標(biāo)準(zhǔn)差σ分別為15、25和50。實(shí)驗(yàn)在64位Windows10系統(tǒng)的PyCharm社區(qū)版軟件中運(yùn)行,使用PyTorch深度學(xué)習(xí)框架進(jìn)行網(wǎng)絡(luò)訓(xùn)練,電腦硬件配置為Intel Core i5-9700CPU 3.00GHz,顯卡為NVIDIA GeForce GTX1660Ti。
2.1.2 參數(shù)設(shè)置
為了探究卷積層數(shù)對(duì)不同密度條紋圖的去噪效果,多次實(shí)驗(yàn)發(fā)現(xiàn),卷積層數(shù)設(shè)置為7和17的效果較好,選擇Adam(adaptive moment estimation)參數(shù)優(yōu)化法,權(quán)值更新如下:
式中:W為卷積核權(quán)值;l為第幾層卷積;b為迭代次數(shù);η為學(xué)習(xí)率,設(shè)為0.0001。批標(biāo)準(zhǔn)設(shè)為128,W初始化為均值0、標(biāo)準(zhǔn)差0.001 的正態(tài)分布。
2.1.3 去噪效果評(píng)價(jià)標(biāo)準(zhǔn)
在圖像去噪領(lǐng)域,常用2個(gè)評(píng)價(jià)指標(biāo),即峰值信噪比(peak signal-to-noise ratio,PSNR)和結(jié)構(gòu)相似性(structural similarity,SSIM)[15]。PSNR是峰值信號(hào)能量與噪聲信號(hào)平均能量的比值,以對(duì)數(shù)可變分量(dB)為單位,基于均方誤差(mean-square error,MSE)進(jìn)行評(píng)估,定義為
式中:EMS為MSE;RPSN為PSNR;Mx為圖像點(diǎn)顏色的最大數(shù)值,灰度圖借助整數(shù)0~255表示,取255。SSIM主要是通過(guò)對(duì)比原始圖像和去噪圖像中的結(jié)構(gòu)信息變化,判斷圖像是否產(chǎn)生失真現(xiàn)象。模型為
式中:x為去噪圖像;y為原始圖像;μx為x的均值;μy為y的均值;σx為x的標(biāo)準(zhǔn)差;σy為y的標(biāo)準(zhǔn)差;σxy為x,y的協(xié)方差;c1,c2為穩(wěn)定性常數(shù)。
模型訓(xùn)練了100個(gè)周期,如圖5~9所示。圖6~7中圖例含義為噪聲等級(jí)-神經(jīng)網(wǎng)絡(luò)卷積層數(shù),圖8~9中圖例含義為訓(xùn)練集-測(cè)試集-噪聲等級(jí)-卷積層數(shù),其中D為密集條紋,S為稀疏條紋。
圖5 σ為50時(shí)去噪圖像處理
從圖6中可以看出,密集條紋網(wǎng)絡(luò)模型參數(shù)檢測(cè)密集條紋時(shí),神經(jīng)網(wǎng)絡(luò)卷積層數(shù)增加,去噪效果有一定提升;稀疏條紋網(wǎng)絡(luò)模型參數(shù)檢測(cè)稀疏條紋時(shí),由圖7a~b和圖7d~e可知,σ為15、25時(shí)神經(jīng)網(wǎng)絡(luò)卷積層數(shù)多,去噪效果好,由圖7c和圖7f可知,σ為50時(shí),神經(jīng)網(wǎng)絡(luò)卷積層數(shù)低,去噪效果好。σ為15時(shí),曲線重合率大,所以條紋密度分類去噪實(shí)驗(yàn)中添加噪聲的標(biāo)準(zhǔn)差為25和50。此時(shí)稀疏條紋網(wǎng)絡(luò)模型參數(shù)檢測(cè)稀疏條紋,去噪效果較好的卷積層數(shù)分別為17和7,因此用密集條紋網(wǎng)絡(luò)模型參數(shù)檢測(cè)稀疏條紋測(cè)試集時(shí)卷積層數(shù)分別設(shè)為17和7;密集條紋網(wǎng)絡(luò)模型參數(shù)檢測(cè)密集條紋中,卷積層數(shù)為17時(shí)去噪效果好,因此用稀疏條紋網(wǎng)絡(luò)模型參數(shù)檢測(cè)密集條紋測(cè)試集時(shí)卷積層數(shù)均設(shè)為17。由圖8a和圖8c可知,σ為25時(shí),密集條紋網(wǎng)絡(luò)模型參數(shù)和稀疏條紋網(wǎng)絡(luò)模型參數(shù)檢測(cè)稀疏條紋測(cè)試集的圖像質(zhì)量相似,在周期為80~100時(shí),密集條紋網(wǎng)絡(luò)模型參數(shù)的去噪效果略微小于稀疏條紋網(wǎng)絡(luò)模型參數(shù);由圖8b和圖8d可知,σ為50時(shí),密集條紋網(wǎng)絡(luò)模型參數(shù)檢測(cè)稀疏條紋測(cè)試集的去噪效果遠(yuǎn)小于稀疏條紋網(wǎng)絡(luò)模型參數(shù)。由圖9可知,σ為25和50時(shí),稀疏條紋網(wǎng)絡(luò)模型參數(shù)檢測(cè)密集條紋測(cè)試集的去噪效果明顯低于密集條紋網(wǎng)絡(luò)模型參數(shù)。
圖6 密集條紋網(wǎng)絡(luò)模型參數(shù)檢測(cè)密集條紋測(cè)試集的PSNR和SSIM平均值
圖7 稀疏條紋網(wǎng)絡(luò)模型參數(shù)檢測(cè)稀疏條紋測(cè)試集的PSNR和SSIM平均值
圖8 密集條紋網(wǎng)絡(luò)模型參數(shù)檢測(cè)稀疏條紋測(cè)試集的平均PSNR和SSIM
圖9 稀疏條紋網(wǎng)絡(luò)模型參數(shù)檢測(cè)密集條紋測(cè)試集的平均PSNR和SSIM
稀疏條紋網(wǎng)絡(luò)模型參數(shù)和密集條紋網(wǎng)絡(luò)模型參數(shù)分別對(duì)50張稀疏條紋測(cè)試集和50張密集條紋測(cè)試集的檢測(cè)時(shí)間如表1所示。σ為25時(shí),條紋密度不分類的DnCNN去噪效果與疏密條紋分類去噪效果對(duì)比如表2所示,DnCNN的訓(xùn)練圖像是分別從密集條紋圖和稀疏條紋圖中選取5000張,訓(xùn)練完成后分別對(duì)密集條紋測(cè)試集和稀疏條紋測(cè)試集進(jìn)行檢測(cè)。由表1可知,訓(xùn)練集和測(cè)試集的條紋密度類型相同時(shí),同樣的噪聲和卷積層數(shù)下,條紋圖去噪的處理速度更快。由表2可知,條紋密度分類去噪效果與DnCNN去噪效果沒有明顯差別,去噪效率明顯提升,檢測(cè)稀疏條紋測(cè)試集時(shí)處理速度提升了10.62%,檢測(cè)密集條紋測(cè)試集時(shí)處理速度提升了11.37%。
表1 不同網(wǎng)絡(luò)模型參數(shù)分別對(duì)2個(gè)測(cè)試集進(jìn)行檢測(cè)的時(shí)間
表2 σ為25時(shí)條紋疏密分類去噪與DnCNN去噪效果
文中提出基于深度學(xué)習(xí)的疏密條紋分類去噪方法,分別訓(xùn)練密集條紋圖和稀疏條紋圖,生成稀疏和密集2類網(wǎng)絡(luò)模型參數(shù),輸入帶噪聲的條紋圖,調(diào)用相應(yīng)的網(wǎng)絡(luò)模型參數(shù)去噪。調(diào)用對(duì)應(yīng)密度的網(wǎng)絡(luò)模型參數(shù),去噪速度比不對(duì)應(yīng)密度去噪提升約3%,比不分類去噪提升約10%。調(diào)用不對(duì)應(yīng)密度的網(wǎng)絡(luò)模型參數(shù),去噪速度比不分類去噪提升約7%,去噪效果仍可接受。文中提出的算法在基于條紋的實(shí)時(shí)測(cè)量處理實(shí)時(shí)動(dòng)態(tài)圖像以及批量圖像去噪時(shí)具有速度優(yōu)勢(shì)。