APP下载

基于改进Canny算法的服装款式结构特征识别与分类

2020-07-11庄立锋林俊文

实验室研究与探索 2020年5期
关键词:款式滤波器灰度

庄立锋,林俊文

(浙江农林大学艺术设计学院,杭州311300)

0 引 言

科学技术的快速发展,造福着社会的方方面面,也给服装纺织行业注入了新的生机。科技的不断创新推动着人们对服装款式及元素更高的要求,愈发成为目前发展的主流趋势。利用数字图像处理技术进行服装款式识别,并与后续服装设计相结合,已经成为当前服装产业数字化的研究热点。

不同外部轮廓和特征元素构成了各种不同的服装款式,体现出服装的实用性和社会性。通过提取服装图像中的特征元素,例如纹理,轮廓或者衣片部件,就能有效帮助设计师快速高效的进行服装设计。近年来,国内外诸多学者对服装中数字图像处理的应用做了广泛而深入的研究。朱菊香等[1]提取衬衫图像的所有几何信息,并将其与实体信息进行对照。董晨雪[2]利用Matlab对服装图像进行典型参数的自动识别,用其构建出基础样本。许多服饰都有花纹图案,常规提取方法会产生噪声干扰,An等[3]提出一种全新的轮廓提取方法,通过计算轮廓误差对噪声进行消除,直接修补原始提取方案造成的纹理误差。但是由于服装款式多样性,轮廓提取干扰多,目前还没有一种完全有效的服装轮廓完整清晰的提取方案。

本文针对服装款式提取上的难点,提出基于改进Canny边缘检测算法进行服装款式造型特征元素的识别与分类,并对其性能进行实验验证,与原始方案进行比较,得出结论。

1 服装图像预处理

由服装款式识别研究现状可知,目前主要难点在于服装图像的预处理[4]以及特征提取算法。现介绍主要服装预处理流程。

1.1 灰度变换及阈值分割

由于采样得到的服装图像是彩色的,显示出的服装纹理细节会对后续处理带来干扰,因此处理之初就把彩色图像转换为灰度图像,减少服装表面图案对图像分割造成的影响。灰度变换后若直接二值化处理,对于颜色较浅的服装灰度图像来说服装元素易与背景混淆,因此有必要对图像进行灰度线性变换来增强该图像与其背景颜色的对比度。原彩色图像和经过灰度变换后的图像如图1 所示。

图1 原始图像和灰度变换图像

为了将服装图像与背景分离,应采用阈值分割对图像进行进一步处理。阈值分割中阈值T 的选择是至关重要的。本文采用Otsu(最大类间方差法)[5-7]进行阈值分割。

最优分割阈值的目的在于将前景和背景完美的分割,即两者差别越大,分割效果越好,因此要求类间方差最大化。图2 是经过Otsu 法进行阈值分割后的二值化图,由图可知最大类间方差法能够有效地对服装灰度图进行分割,边缘区域分割效果显著。

图2 阈值分割后图像

1.2 形态学处理

形态学处理即使用数学形态学[8]方法对图像进行特定处理,提取出预期分量。对二值化图像进行不同的处理,可以将其图像边缘平滑,修剪等。形态学处理将图像中所有像素点作为集合,将结构元素在二值化图像中移动探测来分析图像,常见形态学操作有:开运算,闭运算,膨胀和腐蚀等。经过Otsu 阈值分割后的图像仍然存在诸多缺口,前景中仍然有某些区域被当作背景处理。

形态学处理主要使用闭运算。闭运算是指对图像进行先膨胀后腐蚀操作,膨胀实现填补图像中空洞和消除小颗粒噪声的作用,腐蚀操作消除了无意义的小物体,使区域范围减小。图3 所示为形态学闭运算操作后的服装二值图。

图3 形态学处理后图像

由图3 可知,经过形态学操作后,服装图像与背景完全分离,内部空洞被消除,保留了完整的服装轮廓特征。

2 改进Canny算法边缘检测

2.1 原始Canny检测算法

图像边缘检测的任务是检测出灰度图像中灰度值突变点。传统的边缘检测算子包括微分算子法,曲面拟合法,最优算子法等,其中传统的微分算子法[9-11]如Roberts算子,Sobel算子操作简单,但是边缘检测不准确。最优算子法如LoG算子和Canny 算子,是一种根据信噪比来检测出图像边缘的最优滤波器,其抗噪和准确性大大优于传统算法。

由于Canny 算子包括了诸多图像预处理步骤[12-14],使其成为目前边缘检测中使用较为普遍的标准算法。Canny算法流程图如图4 所示。

图4 Canny算法流程图

该算法首先需要对原始图像进行高斯平滑处理。二维高斯函数的形式为:

为了得到更好的效果,将该函数分解为行列滤波器,该函数所对应的梯度矢量如下:

将二维高斯滤波函数直接分解为行和列滤波器,并将其与图像分别进行卷积运算,此时可以得到如下公式。

式中:∂表示高斯滤波函数的空间尺度函数,直接反映滤波器性能,若参数∂过大,函数抑制噪声能力强但边缘定位能力弱;*表示卷积运算。

滤波后应计算梯度的幅值和方向,由经上述处理的图像中2 ×2 邻域进行对角线差分操作获得,其结果如下:

式中:M(i,j)表示图像中灰度值;θ(i,j)表示图像灰度方向;fx(i,j)和fy(i,j)分别是图像沿着x和y方向上的偏导数。

Canny算子在对图像进行非极大值处理后采用双阈值处理。首先Canny 使用高、低阈值分别处理得到两个边缘图像,由高阈值得到的边缘图可能会忽略一些边缘信息,而由低阈值得到的边缘图可能会含有相对较多的边缘无用信息,因此对两种边缘图像进行融合。Canny图像处理技术中利用图像之间的边缘联通特性,高阈值得到的图像确定起点,低阈值图像决定连接的边缘点,以此进行边缘连接得到最终边缘图像。

2.2 传统Canny算法的不足

Canny算法对于传统边缘检测算法有了极大的提升,但是对于现实中对图像处理技术越来越高的要求,传统Canny算法逐渐显现出其不足之处。主要有:

(1)平滑函数的不定性。传统Canny算法使用高斯滤波函数对图像进行平滑处理,此时需要人为设置函数的参数,因此在不同条件下需要设置不用的参数,增加了工作量,单一参数的使用会大大增加工作量。

(2)阈值选取的多变性。传统算法中高低阈值均是人为设定,需要经过大量的参数调整,普适性弱,主观性太强,不同环境条件下需要重新设定。

(3)噪声敏感性。传统算法使用2 ×2 邻域内的方差来计算出梯度幅值,由于该方法自身缺陷,计算结果产生误差,且不具备滤波因子,对噪声敏感。

针对传统算法的上述几点不足,本文提出了Canny的改进算法。

2.3 改进Canny算法

传统Canny算法首先将图像进行平滑,减弱噪声对图像处理的影响。其中图像滤波函数的选取对于处理效果具有至关重要的作用。Canny 算法选取高斯滤波器,通过最有原则,是目前边缘检测中效果最好的滤波器。其主要特性有旋转不变性,单瓣傅里叶频谱等。

二维高斯滤波器由式(2)指出,σ2表示滤波器的方差,二维高斯滤波器可以分解为两个一维滤波器之和,因此一维滤波器为:

高斯滤波器对图像的平滑程度取决于σ 的选取,其值过大造成虚假边缘,过小对噪声抑制能力太弱。鉴于上述矛盾,本文提出一种自适应高斯滤波器,通过图像不同区域的特征自动求得不同方差。

信号fg(x)是经过高斯滤波后的函数,可推出:

经过近似处理可得自定义滤波器方差为:

这里定义误差为:

接下来进行尺度参数的计算,本文采用3 ×3 邻域进行图像处理并求的尺度参数。对于σ,噪声信号处的尺度参数应该较大,相反的,位于平滑区域的尺度参数尽可能小,这样才能达到理想的滤波器效果,即仅仅将图像中噪声点滤除不影响原始图像信号。根据上述分析,可以得到如下公式:

式中,σn和σf分别为噪声信号与原始信号的尺度参数。

假设当前像素点的坐标为P(x,y),则当前点与其邻域点的灰度值平均差为:

式中选用3 ×3 的窗口,当前窗口周围有8 个邻域像素点。由公式可知,图像越平滑,灰度值平均差越小。将当前点与图像邻域特征相结合,在一个3 ×3 邻域范围内,求得当前点与邻域点的平均灰度误差的绝对值,将其除以邻域点灰度平均值。当前像素与邻域的对比度N如下所示:

由此,本文使用对比度N作为目前像素点的尺度参数σ,即可得到自适应高斯滤波函数的尺度参数以适应不同边界环境。

为验证该处理方式对噪声的抑制作用,本文对原始服装图像添加了椒盐噪声,并通过上述算法进行预处理和边缘检测,得到的服装边缘如图5 所示。

图5 加入噪声后以及处理后图像

由图5 可知,本文使用的改进方式对噪声具有很好的抑制作用,仍能完整的提取出服装轮廓。

3 服装款式识别实验结果

对于已经获得准确边缘的二值化图像,采用简单高效的轮廓曲率特征法进行特征提取,使其快速准确的识别和表达出具体衣物特征,有助于服装款式快速识别。服装款式识别流程如图6 所示。

图6 服装款式识别流程

通过轮廓曲率得到服装图像的基本特征,再通过均值Hausdorff距离(MHD)对两张图像特征点之间的距离进行计算,判别是否属于同一类服装。

3.1 服装模板匹配

服装图像轮廓由封闭曲线构成,曲线的拐点曲率较大,决定了该点的特殊性,因此曲率点极值的位置和分布直接反映了服装特点,即服装具体款式。从服装曲率点中提取出一系列特征点,能够较好展现出譬如衣领,肩宽等服装特征元素。服装曲率的计算按下式进行:

式中,d′k、d″k分别表示在k点处的一阶和二阶导数。从服装图片可以看出,服装某些轮廓平行于坐标轴,此时将计算不出具体曲率。为了将曲率特征全部表示出来,将服装的横纵坐标进行互相置换,将之前计算出的缺漏的点补上。根据上述原则,得到一系列曲率数据,曲率数据选择过少,不足以表达服装特征,若曲率特征点选择过多,则增加无意义的计算量。本文选取37 个特征点进行服装特征的描述。提取出的服装特征和制定的服装模板如图7 所示。

图7 服装特征点以及服装模板

由于目前没有统一的服装款式样本模板库,本文从谷歌图片中搜集到800 张图片作为样本库。其中包括连衣裙、长裤、短裤、长袖T 恤,短袖T 恤、衬衫、西服、外套这些生活中常见的服装款式,并且每种款式各100 张白色背景图像。

进行模板匹配时,使用典型的、具有代表特征的模板对最终分类效果具有显著的影响。因此需要制作每种服装款式的模板图案,本文以衬衫为例制作轮廓曲率特征模板。具体制作流程如下:①将样本图片进行预处理,统一样本轮廓高度为320 像素,保持长宽比一致进行等比例缩放,统一尺寸。②将预处理图片进行叠加并边缘均值滤波,再次使用阈值分割技术提取出二值化图像,并进行形态学边缘处理。③将完整模板图像进行特征提取,得到本款式样本的曲率特征向量模板。

3.2 均值Hausdorff距离

进行模板匹配的主要算法是进行相似度的判别,服装图像与模板图像的相似度能够很好地反映特征点的匹配程度。传统Canny算法采用欧式距离对两张图像的特征进行距离判别。欧式距离虽然简单高效,但是对于图像面状的特征点集并不适合。本文拟采用Hausdorff距离[15-16]来进行相似度匹配。

Hausdorff距离描述两个点集之间的距离的最大值。两个数据集合A和B之间的Hausdorff 距离如下所示:

式中,d(B,A)表示数据集B中所有数据点到集合A中任意一点的最小距离的均值。判别图像和模板图像时,若Hausdorff距离小于设定值,则可判定服装图像属于模板图像一类。

3.3 识别结果分析

本文实验平台为MATLAB2014A,编写对应图像处理算法对服装图像进行上述处理,实现边缘检测算法和模板匹配算法,并对Canny 算法改进前后的处理效果进行分析。首先通过改进Canny算法得到服装轮廓,提取出对应轮廓特征点,与模板库中轮廓特征点进行对比计算出MHD值,越小反映两者特征值越接近,即服装款式越相似。以衬衫为例,本文从谷歌图片中获取了另外1 600 张图像,8 种服装款式每种各200 张图像进行实验。图8 为模板库中计算出的各个种类服饰与长袖衬衫特征数据之间的MHD值。

图8 衬衫与各类服装之间MHD值

由上图可知,MHD 值最小的为长袖衬衫,得知该服装特征与模板库中长袖衬衫的特征最为相近,因此最后判定该服装为长袖衬衫。

接下来轮流将八种服装的1 600 张图像进行模板匹配,每次将一种模板库作为标准,与全部测试图像的特征向量进行比对,得到各个款式服装的识别率,如图9 所示。

将所有识别率进行统计,得到原始算法对1 600张图片的平均识别率为86.725%,而改进算法对全部图片的平均识别率为88.763%。从上图可以看出,应用改进算法后,除了西服,其他所有款式的识别率均高于原始算法。

图9 各个款式服装识别率比较

为了验证改进算法的特性,将上述实验重新使用传统Canny算法实现并将其结果与改进算法对比,并以衬衫为具体例子得到结果见表1。

表1 系统运行结果

从表1 中可以清楚看出,改进后的Canny 算法由于得到的边缘更好,后续模板匹配更加精准,准确率有一定幅度的提升,并且运行速度不受影响。

4 结 论

本文对服装款式特征进行分析,对采集到的服装图像进行一定的预处理操作,通过阈值分割,形态学处理等操作得到服装大致轮廓,分析了传统Canny 边缘检测算子的特征及优缺点,提出一种改进的Canny 算法检测服装边缘。完成基于Hausdorff 距离的服装特征匹配,将待分类图像特征与模板图像的特征点进行比对分析,得到最终服装判别分类结果,并使用MATLAB平台进行验证。实验结果表明,该改进系统具有十分优良的服装检测效果,效率高,能够有效减少人工劳动,其快速准确的分类大大加快服装设计流程的进度,提高设计效率。

猜你喜欢

款式滤波器灰度
采用改进导重法的拓扑结构灰度单元过滤技术
局部加热服的款式设计及其舒适性评价
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
从滤波器理解卷积
开关电源EMI滤波器的应用方法探讨
Dream Bag
一种微带交指滤波器的仿真
基于最大加权投影求解的彩色图像灰度化对比度保留算法
最火的单品款式
基于TMS320C6678的SAR方位向预滤波器的并行实现