鮑 雄,張 煜,程惠敏
(武漢理工大學(xué) 物流工程學(xué)院, 湖北 武漢 430063)
在某些特殊場合,例如生產(chǎn)流水線包裝QR碼識別、AGV二維碼導(dǎo)航等,QR碼識別是在動態(tài)環(huán)境下極短時間內(nèi)完成的,采集到的QR圖像往往會出現(xiàn)類似疊影的運動模糊問題[1],致使QR碼難以識別。為解決上述問題,國內(nèi)外學(xué)者就運動模糊QR碼復(fù)原問題展開了研究。文獻(xiàn)[2]將QR碼的雙峰特征作為約束條件融入NAS-RIF算法中,通過設(shè)定閾值的方式來加速收斂。文獻(xiàn)[3]分析模糊QR碼圖像在梯度和強度等方面的分布特征,提出一種L0正則化復(fù)原方法。文獻(xiàn)[4]將QR圖像特征的先驗條件加入正則化約束,提出一種自適應(yīng)正則化的復(fù)原方法。現(xiàn)有研究大都利用QR碼自身特征作為約束條件,以復(fù)原圖像質(zhì)量最優(yōu)作為目標(biāo)函數(shù),結(jié)合通用的復(fù)原算法進(jìn)行去卷積,卻沒有考慮到QR碼自身糾錯能力強的特性以及QR碼處理大都基于計算能力有限的嵌入式平臺,顯然將產(chǎn)生很多冗余計算,耗時過多,適用性不強。
為了兼顧復(fù)原算法的精度和速度,本文在各項同性全變分(TV/L2)圖像復(fù)原模型的基礎(chǔ)上對FTVd算法進(jìn)行改進(jìn),以QR碼能被準(zhǔn)確識別作為目標(biāo)函數(shù),引入灰度平均梯度作為模糊程度閾值指標(biāo),通過判斷是否達(dá)到預(yù)設(shè)閾值的方式加速收斂,有效地提高了FTVd算法效率。
圖像的模糊退化就是原始圖像經(jīng)過退化系統(tǒng)再加上加性噪聲的過程[5],其退化模型可簡易表示為
g=K*u+n
(1)
式中:u為輸入的原始圖像,K為點擴散函數(shù),n為加性噪聲,g為輸出的退化圖像。圖像復(fù)原實質(zhì)上就是一個去卷積的過程,其目的就是通過給定的g和K,復(fù)原出原圖像u。然而實際中噪聲n的信息未知,因此圖像復(fù)原問題就變成了求解病態(tài)反問題。傳統(tǒng)的復(fù)原算法容易受到外界因素的干擾,只有在點擴散函數(shù)估計較準(zhǔn)確且噪聲較小的情況下才能取得較好的恢復(fù)效果。
各項同性全變分(TV/L2)圖像復(fù)原模型[6]是在全變分模型的基礎(chǔ)上提出的,該模型以全變分第二范數(shù)作為平滑性約束,圖像復(fù)原問題也就是求能量泛函最小值問題
(2)
式中:μ為正則化參數(shù),Diu表示圖像在像素點i的離散梯度,K、u、g等參數(shù)同式(1)。該模型在去除噪聲的同時可以很好地保留圖像邊緣特征,而參數(shù)μ則控制解的平滑度和保真度。
針對式(2)所示模型的求解,目前已經(jīng)出現(xiàn)了不同的數(shù)值算法,例如Split-Bregman算法[7]、ADM算法(alternating direction method)[6]等,這些算法在求解時往往需要復(fù)雜的迭代運算且收斂緩慢,導(dǎo)致算法效率低下??焖偃兎秩ゾ矸e(fast total variation de-convolution,F(xiàn)TVd)算法是一種運用快速傅里葉變換進(jìn)行交替迭代法的全變分算法[8],每次迭代只需3次傅里葉變換便可收斂,且該算法的連續(xù)形式能進(jìn)一步提高收斂速度,這使得其對于時間要求比較高的QR碼復(fù)原具有更強的適用性。
FTVd算法應(yīng)用了典型的變量分離和懲罰項法,通過引入一個輔助變量wi來代替Diu,再加上一個約束作為懲罰項,得到了式(2)的改進(jìn)模型
(3)
式中:β為懲罰因子。式(3)是關(guān)于(w,u)的凸函數(shù),且β→∞收斂,在求解上述模型時,通過給定一個足夠大的β值,在不考慮w和u的關(guān)系時,按如下方式進(jìn)行內(nèi)迭代:分別將u和w看作常量,則目標(biāo)函數(shù)就是求關(guān)于一個變量的最小值問題,多次交替迭代u和w,當(dāng)滿足收斂條件時結(jié)束迭代。考慮到取不同數(shù)量級的β時,結(jié)果一般相差較大,因此引入連續(xù)形式的β進(jìn)行外迭代,每次內(nèi)迭代終止時,更新β。多次外迭代后,β達(dá)到初始化時設(shè)定的最大值βmax,此時便可得到最優(yōu)解,即最終的復(fù)原圖像。
在圖像復(fù)原領(lǐng)域,處理的對象大都是一般的灰度或彩色圖像,算法的最優(yōu)解往往是根據(jù)主觀視覺效果最好或者客觀圖像質(zhì)量最高來獲得的,即追求復(fù)原算法的精度最高。然而,本文研究的對象是特殊的二維QR碼圖像,它只是原始信息經(jīng)過一定的編碼規(guī)則生成的黑白圖像,對模糊QR碼的復(fù)原僅是為了后續(xù)能被更好地識別,即使復(fù)原質(zhì)量不高,但可以被準(zhǔn)確識別,那么復(fù)原算法就是可靠的。另外,考慮到QR碼識別實時性的需求,對模糊QR碼的復(fù)原應(yīng)在保證足夠高效率的基礎(chǔ)上去提高復(fù)原精度。
在求解式(2)所示模型時,文獻(xiàn)[8]已經(jīng)論證了采用連續(xù)形式β的合理性和必要性,但每更新一次β就意味著多一次外迭代,當(dāng)β接近βmax時,復(fù)原圖像質(zhì)量已基本保持穩(wěn)定。顯然,給定足夠大的βmax時,該算法無謂的外迭代將產(chǎn)生過多的冗余計算。為提高FTVd算法對模糊QR碼的復(fù)原效率,本文由大量實驗獲得QR碼能被識別的閾值指標(biāo),以是否達(dá)到預(yù)先設(shè)定的閾值作為額外收斂條件,對FTVd算法進(jìn)行了改進(jìn)。
理想的QR碼圖像一般邊緣像素灰度階躍性較大、灰度變化陡峭,而圖像模糊退化必然會使得原始QR碼圖像邊緣特征丟失,從而導(dǎo)致邊緣像素梯度變化較慢。在使用迭代化的FTVd算法復(fù)原圖像時,每次迭代都伴隨著圖像質(zhì)量的提升,且隨著迭代次數(shù)的增加,圖像邊緣梯度能量越來越大,直至收斂到最優(yōu)解。而本文算法的最優(yōu)解是以QR碼能夠被識別為目標(biāo),故引入灰度平均梯度為參數(shù)估計圖像的模糊程度,當(dāng)其達(dá)到預(yù)設(shè)的閾值時表明獲得最優(yōu)解,所求即為最終的復(fù)原圖像。
灰度平均梯度(gray mean gradient,GMG)是一種無參考的圖像質(zhì)量評價函數(shù),可以敏感地反映圖像中微小的細(xì)節(jié)反差和紋理變化特征,其值越大表示邊緣信息越豐富,圖像清晰度越高,可用來評價圖像的模糊程度[9],其計算公式如下
(4)
式中:g為復(fù)原后大小為M×N的圖像。
大量實驗證明,當(dāng)GMG值大于5.6時,二維QR碼圖像就能被很好的識別。因此,對于連續(xù)更新的β,將GMG>5.6作為外迭代的終止條件。也就是說,對于每一個給定的β,交替迭代u和w后得到一個初始復(fù)原圖像f,計算該圖像的GMG值,當(dāng)其達(dá)到閾值5.6時,說明該圖像已經(jīng)可以被識別,此時f即為最終復(fù)原圖像。
對于式(3)所示模型,本文在FTVd算法的基礎(chǔ)上引入閾值判定條件,提出針對于運動模糊QR碼復(fù)原的改進(jìn)算法,以提高算法收斂速度,改進(jìn)FTVd算法求解流程如圖1所示。
圖1 改進(jìn)的FTVd算法求解流程
具體求解步驟如下:
步驟1 輸入?yún)?shù):g,K,μ>0,β0>0,βmax;
步驟2 初始化變量:u=g,β=β0,ε>0;
步驟3 交替迭代u、w(內(nèi)迭代):
(1)將u看作常量,按下式計算w
(5)
(2)將w看作常量,按下式計算u
(6)
式中:F和F-1分別表示傅里葉變換和傅里葉逆變換,D(1)和D(2)分別表示水平和垂直方向的一階差分矩陣,*表示復(fù)共軛,°為分量相乘運算。
步驟4 判斷是否滿足內(nèi)迭代終止條件:
按如下方式定義r1(i)、r2(i)、r3
(7)
則內(nèi)迭代終止條件為
(8)
式中:Res表示總殘差,ε是規(guī)定的最小殘差。
步驟5 計算內(nèi)迭代所得復(fù)原圖像的GMG值:根據(jù)式(4)計算可得;
步驟6 判斷是否滿足閾值收斂條件:由大量實驗獲得,GMG閾值為5.6;
步驟7 更新β,繼續(xù)外迭代:β←2β;
步驟8 判斷外迭代終止條件:β≤βmax;
步驟9 輸出最終復(fù)原QR碼圖像。
為了測試本文算法的性能,在Intel core i7 2.4 GHz CPU、4 G RAM、Windows10操作系統(tǒng)下,利用Matlab 2014a編程環(huán)境,對不同模糊尺度下的退化QR碼圖像進(jìn)行仿真實驗。為了使本文算法更具有說服力,分別用傳統(tǒng)FTVd算法、經(jīng)典維納濾波算法、ADM算法進(jìn)行圖像復(fù)原,從主觀視覺效果以及客觀性能指標(biāo)兩方面對結(jié)果進(jìn)行分析。實驗中,選擇分辨率為256×256的二維QR碼圖像,利用Matlab自帶的“imfilter”函數(shù)進(jìn)行模糊處理,利用“imnoise”函數(shù)加入方差為0.0001的高斯噪聲,處理后的效果圖如圖2所示。
圖2 原始圖像與退化圖像
以圖2(b)中的QR碼為對象進(jìn)行仿真對比實驗,復(fù)原后的效果如圖3所示。對比本文算法與其它3種算法可以看出,維納濾波的恢復(fù)效果最差,圖像噪聲明顯,邊緣輪廓模糊,F(xiàn)TVd和ADM算法均取得了很好的復(fù)原效果。本文算法復(fù)原效果雖不及這FTVd和ADM算法,但恢復(fù)圖像依舊較好地保留了邊緣和紋理特征,幾乎看不出振鈴效應(yīng),圖像清晰度較高。
圖3 不同算法下運動模糊QR碼復(fù)原效果對比
運動模糊QR碼的復(fù)原大都基于嵌入式系統(tǒng),在設(shè)計復(fù)原算法時,既要有足夠高的精度以滿足系統(tǒng)的功能需求,也要有足夠少的耗時以滿足解碼實時性的需求。因此,本文以算法精度(accuracy)和算法速度(time)的比值(performance)作為復(fù)原算法的性能指標(biāo)[10],其計算公式如下
(9)
在精度上,選取峰值信噪比(PSNR)作為復(fù)原精度的客觀評價標(biāo)準(zhǔn),其值越大表示復(fù)原圖像質(zhì)量越高。在速度上,以復(fù)原算法的耗時作為算法速度的客觀評價指標(biāo),耗時越低則速度越快。
本文以標(biāo)準(zhǔn)的256×256二維QR碼圖像作為實驗對象,分別在不同模糊尺度下進(jìn)行退化處理,并用4種去模糊算法進(jìn)行復(fù)原,圖4為復(fù)原算法的耗時對比,圖5為復(fù)原圖像的PSNR對比,圖6為復(fù)原算法的綜合性能對比。其中本文算法和FTVd算法βmax設(shè)為215,β0設(shè)為1,維納濾波K值取0.0001。
圖4 不同算法的耗時對比
圖5 不同算法的PSNR對比
圖6 不同算法的綜合性能對比
由圖4可以看出,在模糊尺度較小時,本文算法耗時略高于維納濾波算法,遠(yuǎn)小于FTVd和ADM算法,耗時基本在某一范圍內(nèi)保持穩(wěn)定。只有在模糊尺度很大時,需要迭代多次才能達(dá)到設(shè)定的GMG閾值或者始終無法達(dá)到閾值,此時耗時也隨迭代次數(shù)的增加而陡增。
由圖5可以看出,基于TV/L2模型的3種算法其復(fù)原效果明顯優(yōu)于維納濾波,維納濾波只有在模糊尺度很小時才能取得較高的復(fù)原精度。本文算法下復(fù)原圖像的PSNR值僅略小于FTVd和ADM算法,且基本穩(wěn)定在一個較高的水平。
綜合精度和速度兩方面考慮,維納濾波算法雖然耗時最少,但其復(fù)原精度有限,識別率不高;FTVd算法和ADM算法雖然能達(dá)到較高達(dá)到復(fù)原精度,尤其是ADM算法其PSNR值最高可達(dá)到26.1 dB,但這兩種算法往往需要多次迭代才能收斂,耗時過多適用性不強。本文算法在滿足一定精度的條件下,其耗時相對較少,既能被準(zhǔn)確識別,也滿足了實時性的需求。圖6為利用式(9)計算的綜合性能指標(biāo)對比,由圖可以得出,本文算法明顯優(yōu)于其它3種算法,適合嵌入式系統(tǒng)運動模糊QR碼的復(fù)原。
為解決運動模糊QR碼的復(fù)原問題,首先建立了典型的TV/L2圖像復(fù)原模型;然后分析了FTVd算法在復(fù)原QR碼圖像上的不足,引入灰度平均梯度估計QR碼模糊程度,通過設(shè)定閾值的方式來加速收斂,減少了算法耗時;最后,通過實驗對比分析,驗證了本文算法在時間和精度上的優(yōu)越性。但在個別模糊尺度下(例如模糊尺度為100),本文算法耗時增加明顯,算法綜合性能突降。因此,后續(xù)工作需要圍繞模糊尺度很大情況下模糊QR碼的復(fù)原展開,考慮其它方式解決算法耗時過多問題。