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


3 試驗結果與分析
3.1 樣本的獲取



3.2 不同密度樣本取樣尺寸分析




3.3 不同密度樣本字典大小分析


3.4 通用學習字典的重構效果驗證


4 結論