庹 武,王嘵玉,高雅昆,于媛媛,郝瀟瀟,劉永亮,郭 鑫
(1.中原工學(xué)院 服裝學(xué)院,河南 鄭州 451191;2.河南工學(xué)院 電氣工程與自動(dòng)化學(xué)院,河南 新鄉(xiāng) 453003)
近年來,計(jì)算機(jī)技術(shù)的快速發(fā)展推動(dòng)著各行各業(yè)的技術(shù)創(chuàng)新,也給服裝紡織行業(yè)注入了新的生機(jī)。利用數(shù)字圖像處理技術(shù)進(jìn)行服裝款式識(shí)別,可以對(duì)服裝進(jìn)行自動(dòng)分類,實(shí)現(xiàn)線上購(gòu)物以圖搜圖的目的,也可以幫助版師快速判別服裝款式類型,以快速尋找相似樣板,提高制版效率;此外,服裝款式的自動(dòng)識(shí)別也有利于設(shè)計(jì)師收集服裝元素,分析時(shí)尚趨勢(shì)[1-3]。利用數(shù)字圖像處理與計(jì)算機(jī)視覺技術(shù)實(shí)現(xiàn)對(duì)服裝款式的識(shí)別對(duì)整個(gè)服裝行業(yè)大有影響,已成為當(dāng)今服裝數(shù)字化的主流趨勢(shì)。
國(guó)內(nèi)外學(xué)者對(duì)于數(shù)字圖像處理在服裝領(lǐng)域的應(yīng)用做了廣泛而深入的研究。在服裝圖像中,外部輪廓和內(nèi)部細(xì)節(jié)的不同決定服裝的不同屬性。其中,尹光燦等[4]根據(jù)實(shí)際情況對(duì)卷積神經(jīng)網(wǎng)絡(luò)的超參數(shù)進(jìn)行微調(diào),達(dá)到了對(duì)服裝領(lǐng)型分類與識(shí)別的功能。但該方法進(jìn)行的預(yù)處理只是對(duì)圖片進(jìn)行了邊緣檢測(cè),經(jīng)過邊緣檢測(cè)預(yù)處理后的圖像有很多影響識(shí)別精度的因素,比如商標(biāo)、面料紋理等,因此魯棒性較低。服裝款式的外輪廓包含大量特征元素,是主要的判別途徑。通過對(duì)這些特征元素的有效表征,就可以提取相同類別的共性,從而實(shí)現(xiàn)服裝的識(shí)別[5]。
Hussain等[6]提出一種款式圖到結(jié)構(gòu)圖轉(zhuǎn)換的算法,通過提取服裝款式圖中的特征參數(shù),自動(dòng)轉(zhuǎn)化為服裝衣片。該論文中的部位檢測(cè)和分割衣片都是手動(dòng)操作,沒有實(shí)現(xiàn)自動(dòng)化算法。李東等[7]對(duì)服裝輪廓曲率進(jìn)行計(jì)算,通過曲率的大小提取特征點(diǎn)實(shí)現(xiàn)對(duì)款式的分類,這種算法計(jì)算復(fù)雜,適用性較低。Sun等[8]提出基于視覺的服裝屬性分類方法,通過結(jié)合人體部位檢測(cè)技術(shù)進(jìn)行特征選擇,克服了服裝特征噪聲過多的問題,后續(xù)對(duì)傳統(tǒng)支持向量機(jī)(SVM)的方法進(jìn)行優(yōu)化,對(duì)數(shù)據(jù)集進(jìn)行多分類,但由于SVM是線性分類器,因此,對(duì)于更加抽象的服裝特征不能實(shí)現(xiàn)準(zhǔn)確的分類。丁敏敏等[9]依據(jù)服裝的款式圖對(duì)衣領(lǐng)的特征參數(shù)進(jìn)行識(shí)別,在款式圖的基礎(chǔ)上創(chuàng)建坐標(biāo)系,通過量取衣領(lǐng)的部分尺寸找到相似性較高的結(jié)構(gòu)圖。這種方法只能實(shí)現(xiàn)尺寸識(shí)別的功能,不能達(dá)到對(duì)服裝實(shí)物圖進(jìn)行分類的效果。Sun等[10]通過對(duì)特定元素的識(shí)別判斷服裝的風(fēng)格,從而用來推斷消費(fèi)者的喜好,但是,判斷服裝的風(fēng)格屬性有賴于個(gè)人的主觀判斷,風(fēng)格元素的種類較少,并不能實(shí)現(xiàn)準(zhǔn)確判斷。總之,服裝的款式具備多樣性和復(fù)雜性的特點(diǎn),目前還沒有一種完全有效提取服裝無噪聲輪廓的方法。
針對(duì)目前所面臨的問題,本文提出一種改進(jìn)型邊緣檢測(cè)算法,可以有效提取服裝輪廓信息,避免噪聲干擾的影響。利用頻域性質(zhì)提取服裝的外輪廓特征,搭建BP神經(jīng)網(wǎng)絡(luò)模型對(duì)服裝款式進(jìn)行了分類與識(shí)別。
為方便后續(xù)對(duì)服裝款式的特征提取,首先對(duì)樣本圖像做預(yù)處理操作[11]。服裝圖像預(yù)處理包含了圖像灰度化、灰度變換、閾值分割、形態(tài)學(xué)處理和邊緣檢測(cè)主要步驟。
常見的服裝圖片都是三通道存儲(chǔ)的彩色圖片,色彩中雖然包含了部分款式信息,但色彩并不能作為判斷服裝款式的主要依據(jù),且不同色彩的變化會(huì)增加干擾信息,對(duì)輪廓識(shí)別中的邊緣檢測(cè)算法造成干擾,不利于對(duì)輪廓的識(shí)別。因此首先將三通道的彩色圖片進(jìn)行灰度化,同時(shí),灰度化操作也是為后續(xù)閾值分割做準(zhǔn)備。進(jìn)行灰度化后的圖像如圖1所示。
圖1 灰度化圖像Fig.1 Grayscale image
閾值分割可以有效區(qū)分目標(biāo)圖像與背景圖像。閾值分割有很多方法,其中,Otsu閾值分割算法的原理是按照灰度值大小將圖像分為2部分,自動(dòng)尋找合適的方法,將相同部分之間的差距縮小,不同部分之間差距擴(kuò)大[12]。Otsu算法因其復(fù)雜度低,魯棒性強(qiáng)而被廣泛應(yīng)用,因此選擇Otsu算法進(jìn)行閾值分割?;叶茸儞Q后的圖像如圖2所示,閾值分割后的圖像如圖3所示。
圖2 灰度變換Fig.2 Gray scale transformation
圖3 閾值分割Fig.3 Threshold segmentation
閾值分割后的圖像雖然已經(jīng)與背景分割開,但是還存在一些孤島和凸起噪聲點(diǎn),形態(tài)學(xué)開運(yùn)算可以在一定程度上消除這些孤島和噪聲點(diǎn),但對(duì)于部分有圖案的服裝,形態(tài)學(xué)開運(yùn)算不能填充內(nèi)部較大區(qū)域的孔洞,因此采用孔洞填充算法填充干擾區(qū)域。
形態(tài)學(xué)運(yùn)算和孔洞填充結(jié)果如圖4所示。
圖4 形態(tài)學(xué)處理后的圖像Fig.4 Morphologically processed images
邊緣檢測(cè)算法指的是通過一系列運(yùn)算,檢測(cè)出圖像灰度(亮度)發(fā)生空間突變的像素集合[13]。邊緣檢測(cè)的方法多種多樣,較常用的方法有微分方法、擬合方法、統(tǒng)計(jì)方法、混合方法以及小波變換方法等。其中,微分算法中的Canny算法在定位、細(xì)節(jié)和抗噪聲方面都明顯優(yōu)于其他的一階微分邊緣檢測(cè)算法,被廣泛應(yīng)用[14]。傳統(tǒng)邊緣檢測(cè)算法的主要流程,如Canny算法包含了圖5中的5個(gè)步驟。
圖5 Canny算法流程圖Fig.5 Canny algorithm flowchart
由于原始的圖像中存在的噪聲影響對(duì)圖像邊緣的檢測(cè),因此首先需要消除圖像噪聲。采用高斯濾波器進(jìn)行濾波操作,達(dá)到去除噪聲的目的。高斯濾波器核的函數(shù)表達(dá)式如式(1)所示(高斯核的大小為(2k+1)×(2k+1))。其中:H表示卷積核矩陣;k確定矩陣維度;i和j分別表示矩陣中元素的橫向與縱向位置;σ2表示濾波器的方差。
(1≤i,j≤(2k+1))
(1)
利用梯度計(jì)算可以找到圖像中灰度(亮度)發(fā)生跳變的部分,梯度計(jì)算如式(2)所示。
θ=arctan(Gy/Gx)
(2)
式中:G表示像素點(diǎn)梯度強(qiáng)度大?。籊x表示像素點(diǎn)橫向梯度強(qiáng)度大??;Gy表示像素點(diǎn)縱向梯度強(qiáng)度大小;θ表示梯度方向。通過梯度計(jì)算找到的圖像邊界像素含有大量非真正邊緣像素,非極大值抑制(NMS)和雙閾值檢測(cè)可以實(shí)現(xiàn)梯度值的比較,從而消除一部分非真正的邊緣[15]。
圖像邊緣檢測(cè)是形狀識(shí)別領(lǐng)域的重要組成部分,對(duì)原始圖像預(yù)處理后,運(yùn)用邊緣檢測(cè)算法將目標(biāo)物體邊緣畫出[16]。傳統(tǒng)的邊緣檢測(cè)算法得到的圖像邊緣像素中存在多層邊緣的干擾噪聲點(diǎn),這對(duì)于邊緣輪廓提取和后續(xù)的特征描述有下列不利影響:1)提取的邊緣坐標(biāo)序列包含大量噪聲,干擾后續(xù)特征描述;2)提取坐標(biāo)序列的過程中會(huì)出現(xiàn)遺漏甚至無法提取。
針對(duì)上述2種問題,對(duì)圖像邊緣提取進(jìn)行改進(jìn)。
針對(duì)傳統(tǒng)邊緣檢測(cè)算法所檢測(cè)的邊緣在坐標(biāo)提取和特征描述方面存在的缺陷,引入圖像卷積運(yùn)算改進(jìn)邊緣提取算法。圖6示出傳統(tǒng)邊緣檢測(cè)算法提取的部分像素信息,以對(duì)該圖卷積計(jì)算為例,分析改進(jìn)算法,卷積運(yùn)算過程如圖7所示。
圖6 傳統(tǒng)邊緣檢測(cè)部分像素Fig.6 Traditional edge detection of some pixels
圖7 卷積運(yùn)算過程Fig.7 Convolution operation
定義優(yōu)化算法的卷積核L,X1、X2為以邊緣像素所在位置為中心的{(x,y)}矩陣,L與X1、X2卷積結(jié)果Y1、Y2,Yi矩陣中心位置坐標(biāo)為(xi,yi)。
上述卷積運(yùn)算(*表示卷積運(yùn)算)可以得到矩陣Yi,提取Yi中所有非零像素值的坐標(biāo)集合{(x,y)},分別對(duì)集合內(nèi)的鄰域像素(見圖8黑框內(nèi)的元素為Y2中坐標(biāo)為(0,1)的鄰域像素)進(jìn)行判斷。累計(jì)鄰域內(nèi)白點(diǎn)個(gè)數(shù)為n,如式(3)所示。
圖8 Y2中坐標(biāo)為(0,1)的鄰域像素Fig.8 Neighborhood pixel with coordinate (0,1)in Y2
(3)
通過上述運(yùn)算,可將邊緣中的干擾點(diǎn)去除,從而得到圖像真正的邊緣。以部分像素點(diǎn)為例,如圖9所示。
圖9 改進(jìn)后邊緣檢測(cè)部分像素Fig.9 Improved pixel of rear edge detection
經(jīng)大量實(shí)驗(yàn)證明,對(duì)于不同類別服裝的邊緣提取,該算法都可以起到消除噪聲的作用。
直接Canny邊緣檢測(cè)得到的邊緣信息不一定是輪廓信息,存在噪聲邊緣以及重復(fù)邊緣,理想的輪廓線應(yīng)該是一條清晰的邊緣線。圖10示出改進(jìn)前后輪廓信號(hào)對(duì)比,左側(cè)是傳統(tǒng)邊緣檢測(cè)效果,右側(cè)是改進(jìn)邊緣檢測(cè)效果。
圖10 改進(jìn)前后輪廓信號(hào)對(duì)比Fig.10 Profile signals between before(a)and after(b)algorithm improvement
服裝的外輪廓是一個(gè)閉合的曲線,經(jīng)過上述改進(jìn)邊緣提取后可以得到準(zhǔn)確的外輪廓,通過坐標(biāo)順時(shí)針提取出輪廓坐標(biāo)序列。
z1(k)=F[(x1+iy1)rejβ+(x0+iy0)]=
nejβF(x1+iy1)+F(x0+iy0)=
(4)
(5)
式中:k=1,2,…,N-1;‖‖表示取模。由公式可知,對(duì)于旋轉(zhuǎn)和尺度變換,式(5)中的fd(k)不會(huì)改變。當(dāng)物體平移時(shí),僅僅改變z[0]分量[17],因此,傅里葉描述子定義如式(6)所示。
(6)
特征向量的長(zhǎng)度非常重要,太短會(huì)影響識(shí)別精度,太長(zhǎng)會(huì)影響識(shí)別速度。為確定特征向量的維數(shù),本文將特征向量長(zhǎng)度L取范圍為1~40,以1為檔差進(jìn)行多次實(shí)驗(yàn),結(jié)果如圖11所示。由結(jié)果可知,當(dāng)特征向量維數(shù)取16時(shí)綜合效果最好,因此選取特征向量維數(shù)為16。
圖11 傅里葉描述子特征向量長(zhǎng)度與識(shí)別精度關(guān)系Fig.11 Relationship between eigenvector length of Fourier descriptor and recognition close reading
對(duì)圖像提取特征向量后需要進(jìn)行分類與識(shí)別。分類與識(shí)別可以借助傳統(tǒng)機(jī)器學(xué)習(xí)或神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的方法。傳統(tǒng)的機(jī)器學(xué)習(xí)有邏輯回歸、支持向量機(jī)和softmax分類器等[18]。由于這些分類模型只能對(duì)樣本進(jìn)行線性分類,效果不理想,因而選取BP神經(jīng)網(wǎng)絡(luò)算法達(dá)到款式特征分類與識(shí)別的目的。
BP神經(jīng)網(wǎng)絡(luò)是一種通過計(jì)算損失值對(duì)前層網(wǎng)絡(luò)進(jìn)行反饋的多層網(wǎng)絡(luò)結(jié)構(gòu)。將服裝圖像的傅里葉描述子特征向量作為訓(xùn)練樣本,通過大量特征向量與款式類別之間關(guān)系的訓(xùn)練,BP網(wǎng)絡(luò)可以學(xué)習(xí)出二者的抽象性函數(shù)關(guān)系,從而預(yù)測(cè)數(shù)學(xué)模型,實(shí)現(xiàn)服裝款式分類與識(shí)別的功能[19]。
服裝款式識(shí)別系統(tǒng)流程圖如圖12所示。采用python3.7編程實(shí)現(xiàn),建立了500張圖片的樣本庫,包含4類服裝,有連衣裙、長(zhǎng)褲、短袖、襯衫。其中,選取圖片集中的56%用來訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,其余44%用來驗(yàn)證模型的準(zhǔn)確性。圖像集中的各類別數(shù)目如表1所示。
表1 服裝款式圖樣本集Tab.1 Sample collection of clothing style drawings
圖12 服裝款式識(shí)別系統(tǒng)流程圖Fig.12 Flow chart of clothing style identification system
為驗(yàn)證改進(jìn)算法的性能,將算法改進(jìn)前后的所獲得的輪廓序列分為2組,分別進(jìn)行特征提取及識(shí)別,識(shí)別率對(duì)比如表2所示。
表2 測(cè)試集樣本識(shí)別結(jié)果Tab.2 Test sets sample recognition results
從表2可看出,改進(jìn)后的算法識(shí)別率最低提升13.16%,最高提升20.93%,平均提升18.71%,識(shí)別率明顯提升。由于改進(jìn)算法增加了剔除噪聲邊緣的步驟,因此為綜合分析該算法的性能,又將改進(jìn)算法與傳統(tǒng)算法的識(shí)別時(shí)間進(jìn)行了對(duì)比,得到綜合對(duì)比結(jié)果,見表3所示。
表3 綜合對(duì)比結(jié)果Tab.3 Comprehensive comparison results
從表3可看出,改進(jìn)后的輪廓序列提取算法對(duì)于識(shí)別準(zhǔn)確率有較大提高,并且運(yùn)行速度幾乎不受影響。
本文提出一種改進(jìn)的邊緣檢測(cè)算法,通過圖像卷積運(yùn)算去除服裝二值圖像中的噪聲,防止提取坐標(biāo)序列的過程中會(huì)出現(xiàn)信息遺漏,運(yùn)用傅里葉描述子中低頻分量作為特征向量提取坐標(biāo)序列,采用深度學(xué)習(xí)中的BP神經(jīng)網(wǎng)絡(luò)模型完成對(duì)服裝款式的分類和識(shí)別。通過大量的服裝圖像處理實(shí)驗(yàn),結(jié)果表明,該改進(jìn)算法服裝款式識(shí)別率達(dá)到93.48%以上,具有優(yōu)良的服裝款式識(shí)別能力,對(duì)于提升服裝設(shè)計(jì)、服裝制版的生產(chǎn)效率具有較高的實(shí)際應(yīng)用價(jià)值。