庹 武,王嘵玉,高雅昆,于媛媛,郝瀟瀟,劉永亮,郭 鑫
(1.中原工學院 服裝學院,河南 鄭州 451191;2.河南工學院 電氣工程與自動化學院,河南 新鄉 453003)
近年來,計算機技術的快速發展推動著各行各業的技術創新,也給服裝紡織行業注入了新的生機。利用數字圖像處理技術進行服裝款式識別,可以對服裝進行自動分類,實現線上購物以圖搜圖的目的,也可以幫助版師快速判別服裝款式類型,以快速尋找相似樣板,提高制版效率;此外,服裝款式的自動識別也有利于設計師收集服裝元素,分析時尚趨勢[1-3]。利用數字圖像處理與計算機視覺技術實現對服裝款式的識別對整個服裝行業大有影響,已成為當今服裝數字化的主流趨勢。
國內外學者對于數字圖像處理在服裝領域的應用做了廣泛而深入的研究。在服裝圖像中,外部輪廓和內部細節的不同決定服裝的不同屬性。其中,尹光燦等[4]根據實際情況對卷積神經網絡的超參數進行微調,達到了對服裝領型分類與識別的功能。但該方法進行的預處理只是對圖片進行了邊緣檢測,經過邊緣檢測預處理后的圖像有很多影響識別精度的因素,比如商標、面料紋理等,因此魯棒性較低。服裝款式的外輪廓包含大量特征元素,是主要的判別途徑。通過對這些特征元素的有效表征,就可以提取相同類別的共性,從而實現服裝的識別[5]。
Hussain等[6]提出一種款式圖到結構圖轉換的算法,通過提取服裝款式圖中的特征參數,自動轉化為服裝衣片。該論文中的部位檢測和分割衣片都是手動操作,沒有實現自動化算法。李東等[7]對服裝輪廓曲率進行計算,通過曲率的大小提取特征點實現對款式的分類,這種算法計算復雜,適用性較低。Sun等[8]提出基于視覺的服裝屬性分類方法,通過結合人體部位檢測技術進行特征選擇,克服了服裝特征噪聲過多的問題,后續對傳統支持向量機(SVM)的方法進行優化,對數據集進行多分類,但由于SVM是線性分類器,因此,對于更加抽象的服裝特征不能實現準確的分類。丁敏敏等[9]依據服裝的款式圖對衣領的特征參數進行識別,在款式圖的基礎上創建坐標系,通過量取衣領的部分尺寸找到相似性較高的結構圖。這種方法只能實現尺寸識別的功能,不能達到對服裝實物圖進行分類的效果。Sun等[10]通過對特定元素的識別判斷服裝的風格,從而用來推斷消費者的喜好,但是,判斷服裝的風格屬性有賴于個人的主觀判斷,風格元素的種類較少,并不能實現準確判斷。總之,服裝的款式具備多樣性和復雜性的特點,目前還沒有一種完全有效提取服裝無噪聲輪廓的方法。
針對目前所面臨的問題,本文提出一種改進型邊緣檢測算法,可以有效提取服裝輪廓信息,避免噪聲干擾的影響。利用頻域性質提取服裝的外輪廓特征,搭建BP神經網絡模型對服裝款式進行了分類與識別。
為方便后續對服裝款式的特征提取,首先對樣本圖像做預處理操作[11]。服裝圖像預處理包含了圖像灰度化、灰度變換、閾值分割、形態學處理和邊緣檢測主要步驟。
常見的服裝圖片都是三通道存儲的彩色圖片,色彩中雖然包含了部分款式信息,但色彩并不能作為判斷服裝款式的主要依據,且不同色彩的變化會增加干擾信息,對輪廓識別中的邊緣檢測算法造成干擾,不利于對輪廓的識別。因此首先將三通道的彩色圖片進行灰度化,同時,灰度化操作也是為后續閾值分割做準備。進行灰度化后的圖像如圖1所示。

圖1 灰度化圖像Fig.1 Grayscale image
閾值分割可以有效區分目標圖像與背景圖像。閾值分割有很多方法,其中,Otsu閾值分割算法的原理是按照灰度值大小將圖像分為2部分,自動尋找合適的方法,將相同部分之間的差距縮小,不同部分之間差距擴大[12]。Otsu算法因其復雜度低,魯棒性強而被廣泛應用,因此選擇Otsu算法進行閾值分割。灰度變換后的圖像如圖2所示,閾值分割后的圖像如圖3所示。

圖2 灰度變換Fig.2 Gray scale transformation

圖3 閾值分割Fig.3 Threshold segmentation
閾值分割后的圖像雖然已經與背景分割開,但是還存在一些孤島和凸起噪聲點,形態學開運算可以在一定程度上消除這些孤島和噪聲點,但對于部分有圖案的服裝,形態學開運算不能填充內部較大區域的孔洞,因此采用孔洞填充算法填充干擾區域。
形態學運算和孔洞填充結果如圖4所示。

圖4 形態學處理后的圖像Fig.4 Morphologically processed images
邊緣檢測算法指的是通過一系列運算,檢測出圖像灰度(亮度)發生空間突變的像素集合[13]。邊緣檢測的方法多種多樣,較常用的方法有微分方法、擬合方法、統計方法、混合方法以及小波變換方法等。其中,微分算法中的Canny算法在定位、細節和抗噪聲方面都明顯優于其他的一階微分邊緣檢測算法,被廣泛應用[14]。傳統邊緣檢測算法的主要流程,如Canny算法包含了圖5中的5個步驟。

圖5 Canny算法流程圖Fig.5 Canny algorithm flowchart
由于原始的圖像中存在的噪聲影響對圖像邊緣的檢測,因此首先需要消除圖像噪聲。采用高斯濾波器進行濾波操作,達到去除噪聲的目的。高斯濾波器核的函數表達式如式(1)所示(高斯核的大小為(2k+1)×(2k+1))。其中:H表示卷積核矩陣;k確定矩陣維度;i和j分別表示矩陣中元素的橫向與縱向位置;σ2表示濾波器的方差。
(1≤i,j≤(2k+1))
(1)
利用梯度計算可以找到圖像中灰度(亮度)發生跳變的部分,梯度計算如式(2)所示。
θ=arctan(Gy/Gx)
(2)
式中:G表示像素點梯度強度大小;Gx表示像素點橫向梯度強度大小;Gy表示像素點縱向梯度強度大小;θ表示梯度方向。通過梯度計算找到的圖像邊界像素含有大量非真正邊緣像素,非極大值抑制(NMS)和雙閾值檢測可以實現梯度值的比較,從而消除一部分非真正的邊緣[15]。
圖像邊緣檢測是形狀識別領域的重要組成部分,對原始圖像預處理后,運用邊緣檢測算法將目標物體邊緣畫出[16]。傳統的邊緣檢測算法得到的圖像邊緣像素中存在多層邊緣的干擾噪聲點,這對于邊緣輪廓提取和后續的特征描述有下列不利影響:1)提取的邊緣坐標序列包含大量噪聲,干擾后續特征描述;2)提取坐標序列的過程中會出現遺漏甚至無法提取。
針對上述2種問題,對圖像邊緣提取進行改進。
針對傳統邊緣檢測算法所檢測的邊緣在坐標提取和特征描述方面存在的缺陷,引入圖像卷積運算改進邊緣提取算法。圖6示出傳統邊緣檢測算法提取的部分像素信息,以對該圖卷積計算為例,分析改進算法,卷積運算過程如圖7所示。

圖6 傳統邊緣檢測部分像素Fig.6 Traditional edge detection of some pixels

圖7 卷積運算過程Fig.7 Convolution operation
定義優化算法的卷積核L,X1、X2為以邊緣像素所在位置為中心的{(x,y)}矩陣,L與X1、X2卷積結果Y1、Y2,Yi矩陣中心位置坐標為(xi,yi)。
上述卷積運算(*表示卷積運算)可以得到矩陣Yi,提取Yi中所有非零像素值的坐標集合{(x,y)},分別對集合內的鄰域像素(見圖8黑框內的元素為Y2中坐標為(0,1)的鄰域像素)進行判斷。累計鄰域內白點個數為n,如式(3)所示。

圖8 Y2中坐標為(0,1)的鄰域像素Fig.8 Neighborhood pixel with coordinate (0,1)in Y2
(3)
通過上述運算,可將邊緣中的干擾點去除,從而得到圖像真正的邊緣。以部分像素點為例,如圖9所示。

圖9 改進后邊緣檢測部分像素Fig.9 Improved pixel of rear edge detection
經大量實驗證明,對于不同類別服裝的邊緣提取,該算法都可以起到消除噪聲的作用。
直接Canny邊緣檢測得到的邊緣信息不一定是輪廓信息,存在噪聲邊緣以及重復邊緣,理想的輪廓線應該是一條清晰的邊緣線。圖10示出改進前后輪廓信號對比,左側是傳統邊緣檢測效果,右側是改進邊緣檢測效果。

圖10 改進前后輪廓信號對比Fig.10 Profile signals between before(a)and after(b)algorithm improvement
服裝的外輪廓是一個閉合的曲線,經過上述改進邊緣提取后可以得到準確的外輪廓,通過坐標順時針提取出輪廓坐標序列。

z1(k)=F[(x1+iy1)rejβ+(x0+iy0)]=
nejβF(x1+iy1)+F(x0+iy0)=
(4)
(5)
式中:k=1,2,…,N-1;‖‖表示取模。由公式可知,對于旋轉和尺度變換,式(5)中的fd(k)不會改變。當物體平移時,僅僅改變z[0]分量[17],因此,傅里葉描述子定義如式(6)所示。
(6)
特征向量的長度非常重要,太短會影響識別精度,太長會影響識別速度。為確定特征向量的維數,本文將特征向量長度L取范圍為1~40,以1為檔差進行多次實驗,結果如圖11所示。由結果可知,當特征向量維數取16時綜合效果最好,因此選取特征向量維數為16。

圖11 傅里葉描述子特征向量長度與識別精度關系Fig.11 Relationship between eigenvector length of Fourier descriptor and recognition close reading
對圖像提取特征向量后需要進行分類與識別。分類與識別可以借助傳統機器學習或神經網絡學習的方法。傳統的機器學習有邏輯回歸、支持向量機和softmax分類器等[18]。由于這些分類模型只能對樣本進行線性分類,效果不理想,因而選取BP神經網絡算法達到款式特征分類與識別的目的。
BP神經網絡是一種通過計算損失值對前層網絡進行反饋的多層網絡結構。將服裝圖像的傅里葉描述子特征向量作為訓練樣本,通過大量特征向量與款式類別之間關系的訓練,BP網絡可以學習出二者的抽象性函數關系,從而預測數學模型,實現服裝款式分類與識別的功能[19]。
服裝款式識別系統流程圖如圖12所示。采用python3.7編程實現,建立了500張圖片的樣本庫,包含4類服裝,有連衣裙、長褲、短袖、襯衫。其中,選取圖片集中的56%用來訓練神經網絡模型,其余44%用來驗證模型的準確性。圖像集中的各類別數目如表1所示。

表1 服裝款式圖樣本集Tab.1 Sample collection of clothing style drawings

圖12 服裝款式識別系統流程圖Fig.12 Flow chart of clothing style identification system
為驗證改進算法的性能,將算法改進前后的所獲得的輪廓序列分為2組,分別進行特征提取及識別,識別率對比如表2所示。

表2 測試集樣本識別結果Tab.2 Test sets sample recognition results
從表2可看出,改進后的算法識別率最低提升13.16%,最高提升20.93%,平均提升18.71%,識別率明顯提升。由于改進算法增加了剔除噪聲邊緣的步驟,因此為綜合分析該算法的性能,又將改進算法與傳統算法的識別時間進行了對比,得到綜合對比結果,見表3所示。

表3 綜合對比結果Tab.3 Comprehensive comparison results
從表3可看出,改進后的輪廓序列提取算法對于識別準確率有較大提高,并且運行速度幾乎不受影響。
本文提出一種改進的邊緣檢測算法,通過圖像卷積運算去除服裝二值圖像中的噪聲,防止提取坐標序列的過程中會出現信息遺漏,運用傅里葉描述子中低頻分量作為特征向量提取坐標序列,采用深度學習中的BP神經網絡模型完成對服裝款式的分類和識別。通過大量的服裝圖像處理實驗,結果表明,該改進算法服裝款式識別率達到93.48%以上,具有優良的服裝款式識別能力,對于提升服裝設計、服裝制版的生產效率具有較高的實際應用價值。