莊立鋒,林俊文
(浙江農(nóng)林大學(xué)藝術(shù)設(shè)計學(xué)院,杭州311300)
科學(xué)技術(shù)的快速發(fā)展,造福著社會的方方面面,也給服裝紡織行業(yè)注入了新的生機??萍嫉牟粩鄤?chuàng)新推動著人們對服裝款式及元素更高的要求,愈發(fā)成為目前發(fā)展的主流趨勢。利用數(shù)字圖像處理技術(shù)進行服裝款式識別,并與后續(xù)服裝設(shè)計相結(jié)合,已經(jīng)成為當(dāng)前服裝產(chǎn)業(yè)數(shù)字化的研究熱點。
不同外部輪廓和特征元素構(gòu)成了各種不同的服裝款式,體現(xiàn)出服裝的實用性和社會性。通過提取服裝圖像中的特征元素,例如紋理,輪廓或者衣片部件,就能有效幫助設(shè)計師快速高效的進行服裝設(shè)計。近年來,國內(nèi)外諸多學(xué)者對服裝中數(shù)字圖像處理的應(yīng)用做了廣泛而深入的研究。朱菊香等[1]提取襯衫圖像的所有幾何信息,并將其與實體信息進行對照。董晨雪[2]利用Matlab對服裝圖像進行典型參數(shù)的自動識別,用其構(gòu)建出基礎(chǔ)樣本。許多服飾都有花紋圖案,常規(guī)提取方法會產(chǎn)生噪聲干擾,An等[3]提出一種全新的輪廓提取方法,通過計算輪廓誤差對噪聲進行消除,直接修補原始提取方案造成的紋理誤差。但是由于服裝款式多樣性,輪廓提取干擾多,目前還沒有一種完全有效的服裝輪廓完整清晰的提取方案。
本文針對服裝款式提取上的難點,提出基于改進Canny邊緣檢測算法進行服裝款式造型特征元素的識別與分類,并對其性能進行實驗驗證,與原始方案進行比較,得出結(jié)論。
由服裝款式識別研究現(xiàn)狀可知,目前主要難點在于服裝圖像的預(yù)處理[4]以及特征提取算法?,F(xiàn)介紹主要服裝預(yù)處理流程。
由于采樣得到的服裝圖像是彩色的,顯示出的服裝紋理細節(jié)會對后續(xù)處理帶來干擾,因此處理之初就把彩色圖像轉(zhuǎn)換為灰度圖像,減少服裝表面圖案對圖像分割造成的影響?;叶茸儞Q后若直接二值化處理,對于顏色較淺的服裝灰度圖像來說服裝元素易與背景混淆,因此有必要對圖像進行灰度線性變換來增強該圖像與其背景顏色的對比度。原彩色圖像和經(jīng)過灰度變換后的圖像如圖1 所示。
圖1 原始圖像和灰度變換圖像
為了將服裝圖像與背景分離,應(yīng)采用閾值分割對圖像進行進一步處理。閾值分割中閾值T 的選擇是至關(guān)重要的。本文采用Otsu(最大類間方差法)[5-7]進行閾值分割。
最優(yōu)分割閾值的目的在于將前景和背景完美的分割,即兩者差別越大,分割效果越好,因此要求類間方差最大化。圖2 是經(jīng)過Otsu 法進行閾值分割后的二值化圖,由圖可知最大類間方差法能夠有效地對服裝灰度圖進行分割,邊緣區(qū)域分割效果顯著。
圖2 閾值分割后圖像
形態(tài)學(xué)處理即使用數(shù)學(xué)形態(tài)學(xué)[8]方法對圖像進行特定處理,提取出預(yù)期分量。對二值化圖像進行不同的處理,可以將其圖像邊緣平滑,修剪等。形態(tài)學(xué)處理將圖像中所有像素點作為集合,將結(jié)構(gòu)元素在二值化圖像中移動探測來分析圖像,常見形態(tài)學(xué)操作有:開運算,閉運算,膨脹和腐蝕等。經(jīng)過Otsu 閾值分割后的圖像仍然存在諸多缺口,前景中仍然有某些區(qū)域被當(dāng)作背景處理。
形態(tài)學(xué)處理主要使用閉運算。閉運算是指對圖像進行先膨脹后腐蝕操作,膨脹實現(xiàn)填補圖像中空洞和消除小顆粒噪聲的作用,腐蝕操作消除了無意義的小物體,使區(qū)域范圍減小。圖3 所示為形態(tài)學(xué)閉運算操作后的服裝二值圖。
圖3 形態(tài)學(xué)處理后圖像
由圖3 可知,經(jīng)過形態(tài)學(xué)操作后,服裝圖像與背景完全分離,內(nèi)部空洞被消除,保留了完整的服裝輪廓特征。
圖像邊緣檢測的任務(wù)是檢測出灰度圖像中灰度值突變點。傳統(tǒng)的邊緣檢測算子包括微分算子法,曲面擬合法,最優(yōu)算子法等,其中傳統(tǒng)的微分算子法[9-11]如Roberts算子,Sobel算子操作簡單,但是邊緣檢測不準確。最優(yōu)算子法如LoG算子和Canny 算子,是一種根據(jù)信噪比來檢測出圖像邊緣的最優(yōu)濾波器,其抗噪和準確性大大優(yōu)于傳統(tǒng)算法。
由于Canny 算子包括了諸多圖像預(yù)處理步驟[12-14],使其成為目前邊緣檢測中使用較為普遍的標準算法。Canny算法流程圖如圖4 所示。
圖4 Canny算法流程圖
該算法首先需要對原始圖像進行高斯平滑處理。二維高斯函數(shù)的形式為:
為了得到更好的效果,將該函數(shù)分解為行列濾波器,該函數(shù)所對應(yīng)的梯度矢量如下:
將二維高斯濾波函數(shù)直接分解為行和列濾波器,并將其與圖像分別進行卷積運算,此時可以得到如下公式。
式中:?表示高斯濾波函數(shù)的空間尺度函數(shù),直接反映濾波器性能,若參數(shù)?過大,函數(shù)抑制噪聲能力強但邊緣定位能力弱;*表示卷積運算。
濾波后應(yīng)計算梯度的幅值和方向,由經(jīng)上述處理的圖像中2 ×2 鄰域進行對角線差分操作獲得,其結(jié)果如下:
式中:M(i,j)表示圖像中灰度值;θ(i,j)表示圖像灰度方向;fx(i,j)和fy(i,j)分別是圖像沿著x和y方向上的偏導(dǎo)數(shù)。
Canny算子在對圖像進行非極大值處理后采用雙閾值處理。首先Canny 使用高、低閾值分別處理得到兩個邊緣圖像,由高閾值得到的邊緣圖可能會忽略一些邊緣信息,而由低閾值得到的邊緣圖可能會含有相對較多的邊緣無用信息,因此對兩種邊緣圖像進行融合。Canny圖像處理技術(shù)中利用圖像之間的邊緣聯(lián)通特性,高閾值得到的圖像確定起點,低閾值圖像決定連接的邊緣點,以此進行邊緣連接得到最終邊緣圖像。
Canny算法對于傳統(tǒng)邊緣檢測算法有了極大的提升,但是對于現(xiàn)實中對圖像處理技術(shù)越來越高的要求,傳統(tǒng)Canny算法逐漸顯現(xiàn)出其不足之處。主要有:
(1)平滑函數(shù)的不定性。傳統(tǒng)Canny算法使用高斯濾波函數(shù)對圖像進行平滑處理,此時需要人為設(shè)置函數(shù)的參數(shù),因此在不同條件下需要設(shè)置不用的參數(shù),增加了工作量,單一參數(shù)的使用會大大增加工作量。
(2)閾值選取的多變性。傳統(tǒng)算法中高低閾值均是人為設(shè)定,需要經(jīng)過大量的參數(shù)調(diào)整,普適性弱,主觀性太強,不同環(huán)境條件下需要重新設(shè)定。
(3)噪聲敏感性。傳統(tǒng)算法使用2 ×2 鄰域內(nèi)的方差來計算出梯度幅值,由于該方法自身缺陷,計算結(jié)果產(chǎn)生誤差,且不具備濾波因子,對噪聲敏感。
針對傳統(tǒng)算法的上述幾點不足,本文提出了Canny的改進算法。
傳統(tǒng)Canny算法首先將圖像進行平滑,減弱噪聲對圖像處理的影響。其中圖像濾波函數(shù)的選取對于處理效果具有至關(guān)重要的作用。Canny 算法選取高斯濾波器,通過最有原則,是目前邊緣檢測中效果最好的濾波器。其主要特性有旋轉(zhuǎn)不變性,單瓣傅里葉頻譜等。
二維高斯濾波器由式(2)指出,σ2表示濾波器的方差,二維高斯濾波器可以分解為兩個一維濾波器之和,因此一維濾波器為:
高斯濾波器對圖像的平滑程度取決于σ 的選取,其值過大造成虛假邊緣,過小對噪聲抑制能力太弱。鑒于上述矛盾,本文提出一種自適應(yīng)高斯濾波器,通過圖像不同區(qū)域的特征自動求得不同方差。
信號fg(x)是經(jīng)過高斯濾波后的函數(shù),可推出:
經(jīng)過近似處理可得自定義濾波器方差為:
這里定義誤差為:
接下來進行尺度參數(shù)的計算,本文采用3 ×3 鄰域進行圖像處理并求的尺度參數(shù)。對于σ,噪聲信號處的尺度參數(shù)應(yīng)該較大,相反的,位于平滑區(qū)域的尺度參數(shù)盡可能小,這樣才能達到理想的濾波器效果,即僅僅將圖像中噪聲點濾除不影響原始圖像信號。根據(jù)上述分析,可以得到如下公式:
式中,σn和σf分別為噪聲信號與原始信號的尺度參數(shù)。
假設(shè)當(dāng)前像素點的坐標為P(x,y),則當(dāng)前點與其鄰域點的灰度值平均差為:
式中選用3 ×3 的窗口,當(dāng)前窗口周圍有8 個鄰域像素點。由公式可知,圖像越平滑,灰度值平均差越小。將當(dāng)前點與圖像鄰域特征相結(jié)合,在一個3 ×3 鄰域范圍內(nèi),求得當(dāng)前點與鄰域點的平均灰度誤差的絕對值,將其除以鄰域點灰度平均值。當(dāng)前像素與鄰域的對比度N如下所示:
由此,本文使用對比度N作為目前像素點的尺度參數(shù)σ,即可得到自適應(yīng)高斯濾波函數(shù)的尺度參數(shù)以適應(yīng)不同邊界環(huán)境。
為驗證該處理方式對噪聲的抑制作用,本文對原始服裝圖像添加了椒鹽噪聲,并通過上述算法進行預(yù)處理和邊緣檢測,得到的服裝邊緣如圖5 所示。
圖5 加入噪聲后以及處理后圖像
由圖5 可知,本文使用的改進方式對噪聲具有很好的抑制作用,仍能完整的提取出服裝輪廓。
對于已經(jīng)獲得準確邊緣的二值化圖像,采用簡單高效的輪廓曲率特征法進行特征提取,使其快速準確的識別和表達出具體衣物特征,有助于服裝款式快速識別。服裝款式識別流程如圖6 所示。
圖6 服裝款式識別流程
通過輪廓曲率得到服裝圖像的基本特征,再通過均值Hausdorff距離(MHD)對兩張圖像特征點之間的距離進行計算,判別是否屬于同一類服裝。
服裝圖像輪廓由封閉曲線構(gòu)成,曲線的拐點曲率較大,決定了該點的特殊性,因此曲率點極值的位置和分布直接反映了服裝特點,即服裝具體款式。從服裝曲率點中提取出一系列特征點,能夠較好展現(xiàn)出譬如衣領(lǐng),肩寬等服裝特征元素。服裝曲率的計算按下式進行:
式中,d′k、d″k分別表示在k點處的一階和二階導(dǎo)數(shù)。從服裝圖片可以看出,服裝某些輪廓平行于坐標軸,此時將計算不出具體曲率。為了將曲率特征全部表示出來,將服裝的橫縱坐標進行互相置換,將之前計算出的缺漏的點補上。根據(jù)上述原則,得到一系列曲率數(shù)據(jù),曲率數(shù)據(jù)選擇過少,不足以表達服裝特征,若曲率特征點選擇過多,則增加無意義的計算量。本文選取37 個特征點進行服裝特征的描述。提取出的服裝特征和制定的服裝模板如圖7 所示。
圖7 服裝特征點以及服裝模板
由于目前沒有統(tǒng)一的服裝款式樣本模板庫,本文從谷歌圖片中搜集到800 張圖片作為樣本庫。其中包括連衣裙、長褲、短褲、長袖T 恤,短袖T 恤、襯衫、西服、外套這些生活中常見的服裝款式,并且每種款式各100 張白色背景圖像。
進行模板匹配時,使用典型的、具有代表特征的模板對最終分類效果具有顯著的影響。因此需要制作每種服裝款式的模板圖案,本文以襯衫為例制作輪廓曲率特征模板。具體制作流程如下:①將樣本圖片進行預(yù)處理,統(tǒng)一樣本輪廓高度為320 像素,保持長寬比一致進行等比例縮放,統(tǒng)一尺寸。②將預(yù)處理圖片進行疊加并邊緣均值濾波,再次使用閾值分割技術(shù)提取出二值化圖像,并進行形態(tài)學(xué)邊緣處理。③將完整模板圖像進行特征提取,得到本款式樣本的曲率特征向量模板。
進行模板匹配的主要算法是進行相似度的判別,服裝圖像與模板圖像的相似度能夠很好地反映特征點的匹配程度。傳統(tǒng)Canny算法采用歐式距離對兩張圖像的特征進行距離判別。歐式距離雖然簡單高效,但是對于圖像面狀的特征點集并不適合。本文擬采用Hausdorff距離[15-16]來進行相似度匹配。
Hausdorff距離描述兩個點集之間的距離的最大值。兩個數(shù)據(jù)集合A和B之間的Hausdorff 距離如下所示:
式中,d(B,A)表示數(shù)據(jù)集B中所有數(shù)據(jù)點到集合A中任意一點的最小距離的均值。判別圖像和模板圖像時,若Hausdorff距離小于設(shè)定值,則可判定服裝圖像屬于模板圖像一類。
本文實驗平臺為MATLAB2014A,編寫對應(yīng)圖像處理算法對服裝圖像進行上述處理,實現(xiàn)邊緣檢測算法和模板匹配算法,并對Canny 算法改進前后的處理效果進行分析。首先通過改進Canny算法得到服裝輪廓,提取出對應(yīng)輪廓特征點,與模板庫中輪廓特征點進行對比計算出MHD值,越小反映兩者特征值越接近,即服裝款式越相似。以襯衫為例,本文從谷歌圖片中獲取了另外1 600 張圖像,8 種服裝款式每種各200 張圖像進行實驗。圖8 為模板庫中計算出的各個種類服飾與長袖襯衫特征數(shù)據(jù)之間的MHD值。
圖8 襯衫與各類服裝之間MHD值
由上圖可知,MHD 值最小的為長袖襯衫,得知該服裝特征與模板庫中長袖襯衫的特征最為相近,因此最后判定該服裝為長袖襯衫。
接下來輪流將八種服裝的1 600 張圖像進行模板匹配,每次將一種模板庫作為標準,與全部測試圖像的特征向量進行比對,得到各個款式服裝的識別率,如圖9 所示。
將所有識別率進行統(tǒng)計,得到原始算法對1 600張圖片的平均識別率為86.725%,而改進算法對全部圖片的平均識別率為88.763%。從上圖可以看出,應(yīng)用改進算法后,除了西服,其他所有款式的識別率均高于原始算法。
圖9 各個款式服裝識別率比較
為了驗證改進算法的特性,將上述實驗重新使用傳統(tǒng)Canny算法實現(xiàn)并將其結(jié)果與改進算法對比,并以襯衫為具體例子得到結(jié)果見表1。
表1 系統(tǒng)運行結(jié)果
從表1 中可以清楚看出,改進后的Canny 算法由于得到的邊緣更好,后續(xù)模板匹配更加精準,準確率有一定幅度的提升,并且運行速度不受影響。
本文對服裝款式特征進行分析,對采集到的服裝圖像進行一定的預(yù)處理操作,通過閾值分割,形態(tài)學(xué)處理等操作得到服裝大致輪廓,分析了傳統(tǒng)Canny 邊緣檢測算子的特征及優(yōu)缺點,提出一種改進的Canny 算法檢測服裝邊緣。完成基于Hausdorff 距離的服裝特征匹配,將待分類圖像特征與模板圖像的特征點進行比對分析,得到最終服裝判別分類結(jié)果,并使用MATLAB平臺進行驗證。實驗結(jié)果表明,該改進系統(tǒng)具有十分優(yōu)良的服裝檢測效果,效率高,能夠有效減少人工勞動,其快速準確的分類大大加快服裝設(shè)計流程的進度,提高設(shè)計效率。