占 竹 王 凱 李立輕 汪 軍
(東華大學(xué),上海,201620)
紋理反映了物體表面的信息。由于機(jī)織物特殊的形成方式,機(jī)織物紋理具有一定的周期性,并且隨著原料的種類、織物密度以及織物組織結(jié)構(gòu)等參數(shù)的不同呈現(xiàn)出復(fù)雜多變的特性。研究機(jī)織物紋理,使用字典學(xué)習(xí)方法對機(jī)織物紋理圖像進(jìn)行重構(gòu),不僅可以去除圖像采集過程中的噪聲,而且可用于疵點(diǎn)檢測、織物密度檢測和織物組織結(jié)構(gòu)識別等方面,因此織物紋理的表征分析具有重要意義。
字典學(xué)習(xí)算法的主要目的是用于圖像的重建,其目標(biāo)是構(gòu)建一個最小化訓(xùn)練樣本重構(gòu)誤差的字典。ENGAN K 等[1]提出 MOD 算法,該算法通過使重建誤差最小化來學(xué)習(xí)得到一個重建能力更強(qiáng)的字典,用l0約束稀疏編碼來使獲得的稀疏編碼盡可能稀疏。AHARON M 等[2]提出 K-SVD字典學(xué)習(xí)算法,該算法釆用奇異值分解的方法來依次更新字典中的每個原子,并在更新原子的過程中也更新與之相對應(yīng)的稀疏編碼,以此來加快收斂速度。WANG J 等[3]提出的字典學(xué)習(xí)算法用局部性來代替稀疏性,因為局部性能保證稀疏性,反之不行,作者只使用與訓(xùn)練樣本最接近的k個字典原子的線性組合來重構(gòu)訓(xùn)練樣本,以此來學(xué)習(xí)得到一個能體現(xiàn)局部性的字典。這些字典學(xué)習(xí)算法所構(gòu)造的字典只包含某一類圖像的特征,對其他類別的圖像重構(gòu)效果并不理想。本研究提出通用字典學(xué)習(xí)方法構(gòu)造出包含多種織物紋理特征的學(xué)習(xí)字典,進(jìn)而實(shí)現(xiàn)了對不同種類機(jī)織物紋理的有效表征。
字典的來源一般有兩種,一種是直接預(yù)定義的固定字典,它是由固定的數(shù)學(xué)函數(shù)構(gòu)造出來,并不包含某一特定紋理的特征,但是通過合理地選擇數(shù)學(xué)函數(shù)構(gòu)造字典,可以實(shí)現(xiàn)紋理圖像的良好表征;另一種則是學(xué)習(xí)字典,以機(jī)織物等紋理圖像為樣本,通過機(jī)器學(xué)習(xí)算法,剔除了機(jī)織物紋理中的一些冗余信息而獲得的主要紋理特征。對于字典的生成速度,固定字典的算法簡單,構(gòu)造速度相對較快,而學(xué)習(xí)字典的算法復(fù)雜繁瑣,構(gòu)造速度慢。
通過字典元素的線性組合可以實(shí)現(xiàn)對樣本的最優(yōu)近似。固定字典通過合理地選擇數(shù)學(xué)函數(shù),其一般具有近似大多數(shù)樣本的能力,例如通過離散余弦變換(Discrete Cosine Transform,DCT)構(gòu)造 DCT 字 典[4],利 用 Gabor 變 換 構(gòu) 造 Gabor 字典[5],利用小波變換構(gòu)造小波字典[6]。當(dāng)構(gòu)造出字典以后,對紋理的重構(gòu)可以看成一個線性規(guī)劃問題,只需要求解出相應(yīng)的系數(shù),將字典和系數(shù)作矩陣的乘法就可以得到對原圖像的重構(gòu)圖像。
DCT 字典是由離散余弦變換產(chǎn)生的余弦積構(gòu)成的,當(dāng)給定信號f(x),x=1,2,…,N-1,其離散余弦變換見式(1)和式(2)。
式中:F(u)是第u個余弦變換系數(shù),u是廣義頻率變量,u=1,2,3,…,N-1。具體而言,要得到一個尺寸為m2×n2的二維可分離DCT 字典,首先構(gòu)造一個m×n的一維DCT 矩陣D1D。其中第k個原子由1,2,…,n,i=1,2,…,m給出。然后除第一個原子以外的所有原子減去它們的平均值,最后得到的DCT 字典是由矩陣張量積D2D=D1D?D1D計算得到,當(dāng)處理二維圖象時矩陣具有可分離性。
字典學(xué)習(xí)方法是近幾年非常流行的一個超完備字典構(gòu)造方法[7-8],其核心是利用已有的訓(xùn)練樣本來學(xué)習(xí)得到一組自適應(yīng)的基向量,該基向量應(yīng)能夠滿足重構(gòu)誤差和稀疏度的要求。令學(xué)習(xí)字典字典D中 的每一列dK∈Rn稱為一個原子,樣本數(shù)據(jù)矩陣X=設(shè)A是X在字典D上的編碼系數(shù)矩陣,記為即X≈DA,如果αi中僅有T0(T0< 式中:X表示樣本數(shù)據(jù)矩陣;D為所要學(xué)習(xí)的字典;A為所對應(yīng)的系數(shù)矩陣;T0為字典D的稀疏度。 K-SVD 算法是無監(jiān)督字典學(xué)習(xí)中的一種經(jīng)典算法,其已經(jīng)成功應(yīng)用于圖像處理領(lǐng)域,包括圖像重構(gòu)和圖像去噪[9-13]。K-SVD 算法的目標(biāo)是學(xué)習(xí)得到一個過完備的字典,其通過交叉迭代更新稀疏編碼和字典,最終獲得一個表示能力強(qiáng)的過完備字典。K-SVD 算法字典更新過程中采用SVD 分解依次更新字典原子,在更新原子的同時也更新與之相對應(yīng)的稀疏編碼,從而加速收斂,稀疏編碼階段采用OMP 貪心跟蹤算法進(jìn)行求解[14]。 構(gòu)造包含多種織物紋理特征的通用學(xué)習(xí)字典,優(yōu)先需要考慮的兩個問題是每一種織物的取樣尺寸和提取的字典原子個數(shù)在保證重構(gòu)質(zhì)量的前提下要盡可能小。這是因為機(jī)織物紋理具有周期性,過多的樣本量并不會對提高最終重構(gòu)圖像的質(zhì)量有顯著幫助,但卻會顯著增加通用學(xué)習(xí)字典構(gòu)造的時間,合理地選擇字典的大小也可以提高算法的效率。 通用學(xué)習(xí)字典構(gòu)造算法流程圖如圖1 所示。 圖1 通用學(xué)習(xí)字典構(gòu)造算法流程圖 對于每一種織物,提取同一塊織物樣本不同區(qū)域128 像素×128 像素尺寸的圖像分別記為樣本A 和樣本B,樣本A 和樣本B 應(yīng)該具有相同的紋理特征。以不同的取樣尺寸在樣本A 中選取不同數(shù)量的子樣本,使用經(jīng)典的K-SVD 字典學(xué)習(xí)算法計算得到不同樣本量條件下的學(xué)習(xí)字典,分別使用這些字典去重構(gòu)樣本B,計算重構(gòu)圖像與原圖像之間的均方誤差MSE、峰值信噪比PSNR和相關(guān)系數(shù)R等指標(biāo),根據(jù)圖像重構(gòu)質(zhì)量和算法所消耗的時間確定該種織物圖像的取樣尺寸。在確定取樣尺寸基礎(chǔ)上,選取不同字典原子個數(shù)學(xué)習(xí)得到不同大小的字典,使用這些字典對樣本B進(jìn)行重構(gòu),優(yōu)選出其中重構(gòu)圖像質(zhì)量好的字典原子個數(shù)。最后將不同織物學(xué)習(xí)得到的字典列向合并,就可以得到一個包含多種織物紋理特征的通用字典,該字典具有更好的通用性。其中,均方誤差、峰值信噪比和相關(guān)系數(shù)均為客觀評價重構(gòu)圖像和原圖像近似效果的指標(biāo),其定義分別見式(4)、式(5)和式(6)。 式 中 :I代 表M×N的 原 始 灰 度 圖 像是 圖像I的近似圖像為Frobenius-范數(shù)(矩陣中所有元素絕對值的平方和再開平方),n為每像素的比特數(shù),一般取8,即像素灰階數(shù)為256,Cov(I,I^)為I與I^的協(xié)方差,Var(I)為I的方差,Var(I^)為I^的方差。由以上公式可知,MSE值越大,PSNR值越小,相關(guān)系數(shù)R值越大,重構(gòu)圖像I與原始圖像I^近似效果越好。 本研究所用樣布均為全棉白織坯布,使用紗線為18.22 tex 精梳棉紗,在TNY101B-20 型全自動劍桿小樣織機(jī)上設(shè)計織制了5 塊不同密度的平紋樣本和5 塊不同密度的二上一下右斜紋樣本,表1 和表2 列出了詳細(xì)的設(shè)計規(guī)格參數(shù)。采用佳能9000F MarkⅡ型掃描儀采集織物樣本圖像,為了增加圖像的對比度,在織物背面放置一塊全黑的硬紙板。所采集到的樣本圖像皆為8 位灰度圖像,灰度值為0~255 之間的整數(shù),其中0 代表顏色為純黑,255 代表顏色為純白,圖像尺寸為256 像素×256 像素,分辨率為600 dpi。不同密度平紋和斜紋織物樣本原圖如圖2 所示,其中第1 行為平紋,第2行為斜紋,編號與表1 和表2 一一對應(yīng)。 圖2 不同密度平紋和斜紋織物樣本 表1 平紋織物樣本規(guī)格參數(shù) 單位:根/10 cm 表2 斜紋織物樣本規(guī)格參數(shù) 單位:根/10 cm 本研究的試驗基于MATLAB R2014a(64 位)軟件開發(fā)環(huán)境,計算機(jī)配置INTEL CPU(2.3 GHz)和4 G 內(nèi)存。為了確定每個織物樣本所需的最小取樣尺寸,按照本研究第2 節(jié)算法所述,從樣本 A 中分別截取 30 像素×30 像素、40 像素 ×40 像 素 、50 像 素 ×50 像 素 和 60 像 素 ×60 像素一直到100 像素×100 像素等不同尺寸的圖像,使用有重疊的16 像素×16 像素子窗口在截取圖像上按水平和垂直方向每間隔1 個像素滑動,分別可以得到 225、625、1 225、…、7 225 個子樣本,定義初始字典的尺寸為256×100,選擇MSE值作為圖像重構(gòu)評價指標(biāo)。 取樣尺寸對不同密度平紋和斜紋織物圖像重構(gòu)誤差的影響如圖3 和圖4 所示。可以看出隨著訓(xùn)練樣本取樣尺寸的增加,重構(gòu)圖像的誤差明顯減小,當(dāng)取樣尺寸超過一定大小之后,再增加取樣尺寸,重構(gòu)誤差減小趨勢放緩。這是因為當(dāng)取樣尺寸達(dá)到某一臨界值后,從訓(xùn)練樣本內(nèi)能夠提取出幾乎所有表征該織物的紋理特征,再增加取樣量并不會對重構(gòu)結(jié)果產(chǎn)生顯著影響。 取樣尺寸對學(xué)習(xí)字典生成時間的影響如圖5所示??梢钥闯觯S著取樣尺寸的增大,構(gòu)造學(xué)習(xí)字典的時間呈上升的趨勢。 綜合考慮圖像重構(gòu)質(zhì)量和字典構(gòu)造時間兩個指標(biāo),以重構(gòu)圖像誤差顯著放緩的點(diǎn)作為各個密度織物樣本圖像的最優(yōu)取樣尺寸,取樣尺寸結(jié)果見表3。 圖3 取樣尺寸對不同密度平紋織物圖像重構(gòu)誤差的影響 圖4 取樣尺寸對不同密度斜紋織物圖像重構(gòu)誤差的影響 圖5 取樣尺寸對學(xué)習(xí)字典生成時時間的影響 表3 不同密度平紋和斜紋織物樣本取樣尺寸 根據(jù)1.2 節(jié)對字典中原子的定義,字典原子個數(shù)即為學(xué)習(xí)得到的字典中列向量的個數(shù)。根據(jù)表3 對不同密度的織物圖像選擇對應(yīng)的取樣尺寸,選取的字典原子個數(shù)分別為 25、36、49、64 和81,訓(xùn)練得到字典,使用這些字典分別對樣本B 進(jìn)行重構(gòu),重構(gòu)誤差如圖6 和圖7 所示。 可以發(fā)現(xiàn),不管是平紋織物還是斜紋織物,幾乎都是在字典原子個數(shù)為49 時重構(gòu)誤差減小放緩或者出現(xiàn)最小值。這是因為過大的字典中存在冗余信息,反而不利于織物紋理的重構(gòu),因此對于所有樣本設(shè)定的字典原子個數(shù)都為49。 圖6 字典原子個數(shù)對不同密度平紋織物圖像重構(gòu)誤差的影響 圖7 字典原子個數(shù)對不同密度斜紋織物圖像重構(gòu)誤差的影響 通過以上分析,每一塊織物樣本圖像通過KSVD 字典學(xué)習(xí)算法可以得到大小為256×49 的學(xué)習(xí)字典,該字典包含對應(yīng)密度織物紋理的主要特征,將這5 種密度的字典進(jìn)行合并將會得到同時包含這5 種不同密度織物紋理特征,大小為256×245 的通用學(xué)習(xí)字典,如圖8 所示??梢钥闯?,通用學(xué)習(xí)字典中包含了原始織物的紋理結(jié)構(gòu)信息。 圖8 不同密度織物通用學(xué)習(xí)字典 DCT 字典和通用學(xué)習(xí)字典對不同密度斜紋織物圖像的重構(gòu)誤差如圖9 所示。DCT 字典的重構(gòu)誤差仍然比通用學(xué)習(xí)字典的重構(gòu)誤差大,說明該通用學(xué)習(xí)字典既具備了對多種不同密度織物的通用性,同時其重構(gòu)性能也要比DCT 字典更好。 圖9 DCT 字典和通用學(xué)習(xí)字典對不同密度斜紋織物圖像的重構(gòu)誤差 本研究以不同織物密度平紋和斜紋樣本為例,詳細(xì)介紹了通用學(xué)習(xí)字典構(gòu)造算法并應(yīng)用于機(jī)織物紋理表征,確定了不同樣本的最優(yōu)取樣尺寸和重構(gòu)該樣本紋理所需的最優(yōu)字典個數(shù),并比較了通用學(xué)習(xí)字典和DCT 字典對多種織物紋理圖像的重構(gòu)質(zhì)量。試驗結(jié)果表明,通用學(xué)習(xí)字典可以實(shí)現(xiàn)對不同種織物紋理的重構(gòu),且其重構(gòu)性能明顯優(yōu)于DCT 字典,但是其泛化性能還有待進(jìn)一步研究。2 通用學(xué)習(xí)字典構(gòu)造算法
3 試驗結(jié)果與分析
3.1 樣本的獲取
3.2 不同密度樣本取樣尺寸分析
3.3 不同密度樣本字典大小分析
3.4 通用學(xué)習(xí)字典的重構(gòu)效果驗證
4 結(jié)論