基于改进边缘检测算法的服装款式识别

2021-11-03 01:42王哓玉高雅昆于媛媛郝潇潇刘永亮
纺织学报 2021年10期
关键词:轮廓款式边缘

庹 武,王哓玉,高雅昆,于媛媛,郝潇潇,刘永亮,郭 鑫

(1.中原工学院 服装学院,河南 郑州 451191;2.河南工学院 电气工程与自动化学院,河南 新乡 453003)

近年来,计算机技术的快速发展推动着各行各业的技术创新,也给服装纺织行业注入了新的生机。利用数字图像处理技术进行服装款式识别,可以对服装进行自动分类,实现线上购物以图搜图的目的,也可以帮助版师快速判别服装款式类型,以快速寻找相似样板,提高制版效率;此外,服装款式的自动识别也有利于设计师收集服装元素,分析时尚趋势[1-3]。利用数字图像处理与计算机视觉技术实现对服装款式的识别对整个服装行业大有影响,已成为当今服装数字化的主流趋势。

国内外学者对于数字图像处理在服装领域的应用做了广泛而深入的研究。在服装图像中,外部轮廓和内部细节的不同决定服装的不同属性。其中,尹光灿等[4]根据实际情况对卷积神经网络的超参数进行微调,达到了对服装领型分类与识别的功能。但该方法进行的预处理只是对图片进行了边缘检测,经过边缘检测预处理后的图像有很多影响识别精度的因素,比如商标、面料纹理等,因此鲁棒性较低。服装款式的外轮廓包含大量特征元素,是主要的判别途径。通过对这些特征元素的有效表征,就可以提取相同类别的共性,从而实现服装的识别[5]。

Hussain等[6]提出一种款式图到结构图转换的算法,通过提取服装款式图中的特征参数,自动转化为服装衣片。该论文中的部位检测和分割衣片都是手动操作,没有实现自动化算法。李东等[7]对服装轮廓曲率进行计算,通过曲率的大小提取特征点实现对款式的分类,这种算法计算复杂,适用性较低。Sun等[8]提出基于视觉的服装属性分类方法,通过结合人体部位检测技术进行特征选择,克服了服装特征噪声过多的问题,后续对传统支持向量机(SVM)的方法进行优化,对数据集进行多分类,但由于SVM是线性分类器,因此,对于更加抽象的服装特征不能实现准确的分类。丁敏敏等[9]依据服装的款式图对衣领的特征参数进行识别,在款式图的基础上创建坐标系,通过量取衣领的部分尺寸找到相似性较高的结构图。这种方法只能实现尺寸识别的功能,不能达到对服装实物图进行分类的效果。Sun等[10]通过对特定元素的识别判断服装的风格,从而用来推断消费者的喜好,但是,判断服装的风格属性有赖于个人的主观判断,风格元素的种类较少,并不能实现准确判断。总之,服装的款式具备多样性和复杂性的特点,目前还没有一种完全有效提取服装无噪声轮廓的方法。

针对目前所面临的问题,本文提出一种改进型边缘检测算法,可以有效提取服装轮廓信息,避免噪声干扰的影响。利用频域性质提取服装的外轮廓特征,搭建BP神经网络模型对服装款式进行了分类与识别。

1 服装图像预处理

为方便后续对服装款式的特征提取,首先对样本图像做预处理操作[11]。服装图像预处理包含了图像灰度化、灰度变换、阈值分割、形态学处理和边缘检测主要步骤。

1.1 图像灰度变换和阈值分割

常见的服装图片都是三通道存储的彩色图片,色彩中虽然包含了部分款式信息,但色彩并不能作为判断服装款式的主要依据,且不同色彩的变化会增加干扰信息,对轮廓识别中的边缘检测算法造成干扰,不利于对轮廓的识别。因此首先将三通道的彩色图片进行灰度化,同时,灰度化操作也是为后续阈值分割做准备。进行灰度化后的图像如图1所示。

图1 灰度化图像Fig.1 Grayscale image

阈值分割可以有效区分目标图像与背景图像。阈值分割有很多方法,其中,Otsu阈值分割算法的原理是按照灰度值大小将图像分为2部分,自动寻找合适的方法,将相同部分之间的差距缩小,不同部分之间差距扩大[12]。Otsu算法因其复杂度低,鲁棒性强而被广泛应用,因此选择Otsu算法进行阈值分割。灰度变换后的图像如图2所示,阈值分割后的图像如图3所示。

图2 灰度变换Fig.2 Gray scale transformation

图3 阈值分割Fig.3 Threshold segmentation

1.2 形态学处理

阈值分割后的图像虽然已经与背景分割开,但是还存在一些孤岛和凸起噪声点,形态学开运算可以在一定程度上消除这些孤岛和噪声点,但对于部分有图案的服装,形态学开运算不能填充内部较大区域的孔洞,因此采用孔洞填充算法填充干扰区域。

形态学运算和孔洞填充结果如图4所示。

图4 形态学处理后的图像Fig.4 Morphologically processed images

2 改进边缘提取算法

2.1 传统边缘检测算法

边缘检测算法指的是通过一系列运算,检测出图像灰度(亮度)发生空间突变的像素集合[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]。

2.2 传统边缘检测算法存在的不足

图像边缘检测是形状识别领域的重要组成部分,对原始图像预处理后,运用边缘检测算法将目标物体边缘画出[16]。传统的边缘检测算法得到的图像边缘像素中存在多层边缘的干扰噪声点,这对于边缘轮廓提取和后续的特征描述有下列不利影响:1)提取的边缘坐标序列包含大量噪声,干扰后续特征描述;2)提取坐标序列的过程中会出现遗漏甚至无法提取。

针对上述2种问题,对图像边缘提取进行改进。

2.3 改进边缘提取算法

针对传统边缘检测算法所检测的边缘在坐标提取和特征描述方面存在的缺陷,引入图像卷积运算改进边缘提取算法。图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

经大量实验证明,对于不同类别服装的边缘提取,该算法都可以起到消除噪声的作用。

2.4 算法改进对比

直接Canny边缘检测得到的边缘信息不一定是轮廓信息,存在噪声边缘以及重复边缘,理想的轮廓线应该是一条清晰的边缘线。图10示出改进前后轮廓信号对比,左侧是传统边缘检测效果,右侧是改进边缘检测效果。

图10 改进前后轮廓信号对比Fig.10 Profile signals between before(a)and after(b)algorithm improvement

3 傅里叶描述子特征提取

服装的外轮廓是一个闭合的曲线,经过上述改进边缘提取后可以得到准确的外轮廓,通过坐标顺时针提取出轮廓坐标序列。

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

4 BP神经网络模型的构建

对图像提取特征向量后需要进行分类与识别。分类与识别可以借助传统机器学习或神经网络学习的方法。传统的机器学习有逻辑回归、支持向量机和softmax分类器等[18]。由于这些分类模型只能对样本进行线性分类,效果不理想,因而选取BP神经网络算法达到款式特征分类与识别的目的。

BP神经网络是一种通过计算损失值对前层网络进行反馈的多层网络结构。将服装图像的傅里叶描述子特征向量作为训练样本,通过大量特征向量与款式类别之间关系的训练,BP网络可以学习出二者的抽象性函数关系,从而预测数学模型,实现服装款式分类与识别的功能[19]。

5 识别结果分析

服装款式识别系统流程图如图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可看出,改进后的轮廓序列提取算法对于识别准确率有较大提高,并且运行速度几乎不受影响。

6 结束语

本文提出一种改进的边缘检测算法,通过图像卷积运算去除服装二值图像中的噪声,防止提取坐标序列的过程中会出现信息遗漏,运用傅里叶描述子中低频分量作为特征向量提取坐标序列,采用深度学习中的BP神经网络模型完成对服装款式的分类和识别。通过大量的服装图像处理实验,结果表明,该改进算法服装款式识别率达到93.48%以上,具有优良的服装款式识别能力,对于提升服装设计、服装制版的生产效率具有较高的实际应用价值。

猜你喜欢
轮廓款式边缘
跟踪导练(三)
Dream Bag
一张图看懂边缘计算
最火的单品款式
初为人母的着装困扰
儿童筒笔画
千里鞋
创造早秋新轮廓
在边缘寻找自我
走在边缘