0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于循环设计的3R理论分析了纺织服装业中的循环利用法

新机器视觉 来源:丝绸杂志 作者:丝绸杂志 2021-03-20 10:32 次阅读

摘要

基于人们消费习惯的变化,衣服的寿命从原本的使用寿命转化成“审美寿命”,造成大量的废旧服装,致使时尚成为全球第二大污染源,中国更是过度消费和时尚污染的重灾区。为了探索循环时尚的设计方法,顺应循环经济的发展方向,文章基于循环设计的3R理论分析了纺织服装业中的循环利用法,对其中升级再造的内涵和商业实践的现状进行了分析。通过设计实践,总结了4大类符合循环时尚且可操作性较强的升级再造设计方法,共15种再造技术,旨在深入思考和探索可持续的时尚方式,从设计角度探索废旧纺织品的循环利用方法。

研究背景

电子商务已成必然趋势的当今社会,网购发展迅速,越来越多的人通过网购挑选服装服饰。然而目前线上购物查找大多还是使用文字检索,这一方式需要对产品进行文字标注,不仅要耗费大量人力,且文字描述的能力也很有限,因此买家要快速搜到满意的商品非常困难,尤其是对服饰这样的非标品更加如此。如果能实现图像检索,客户可以直接由图片搜到心仪的服饰[1],无疑会大幅提高网购便捷性,提升用户购买欲。

数字图像技术的发展使其成为可能,目前已有较多的研究围绕服装款式的自动识别[2-4]展开,如利用服装局部HOG特征,结合关键尺寸进行款式分类[5];利用匹配卷积神经网络和超像素平滑等方法[6]进行语义分割,以及多人的服装分割算法[7]等。但上述人工构造特征及传统的分类方法易受检测图像多样性的影响,使检测效果不够理想。近年来,深度学习技术在多个领域都有了越来越广泛的应用,展示出巨大优势,其中CNN(卷积神经网络)[8]由于可以提取多层特征,无须人工设计特征、分类检测准确率高等优势而引起广泛关注[9-10]。

综上,现有的自动识别技术一般针对服装的款式展开研究,但是配饰也对着装的整体效果起着不可或缺的重要作用。高跟鞋作为广受女性欢迎的服饰之一,本文拟利用卷积神经网络中的Faster R CNN模型[11]对高跟鞋款式的自动识别加以研究,不仅能促进服装智能搭配系统的研发,还将有助于电子商务的发展,对图像处理技术也有一定的参考。

实 验

1.1 样本库

高跟鞋款式众多,其中变化最多的部位是鞋跟、鞋面、鞋头,根据鞋跟高度可分为低跟、中跟、高跟等;根据鞋跟形状则可分为细跟、粗跟、坡跟等;而按照鞋面沿口高低又可分为浅口款、高帮款、长筒款等。其中浅口高跟鞋的适用性较广,所以本文以浅口高跟鞋为例展开研究,具体选择跟高在6~10 cm的三种(细跟、粗跟和坡跟)浅口高跟鞋。所用图像样本来源于淘宝、京东等线上销售网络平台,均为纯色背景,且侧面180°摆放。三款高跟鞋的样本图像各300张,共900张,并将其统一裁剪成500像素×500像素。每种款式随机抽取200张作为训练集,剩余100张作为测试集,并对图像进行标记。

1.2 卷积神经网络

卷积神经网络的基本结构[10]如图1所示,分为输入层、隐含层和输出层,其中输入为原始图像,卷积层、池化层和全连接层构成了其隐含层,输出层即检测结果。卷积层类似前馈神经网络的神经元,对输入图像进行特征提取,卷积层参数决定了输出特征图的尺寸;池化层对特征提取后输出的特征图进行特征选择;连接层类似传统前馈神经网络中的隐含层,并只向其他全连接层传递信号

f545c544-88ef-11eb-8b86-12bb97331649.jpg

图1 卷积神经网络(CNN)的基本框架

Fig.1 Basic structure of convolution neural network(CNN)

1.3 Faster R CNN检测模型

Faster R CNN的基本结构[11]如图2所示,输入图片经过底部卷积层提取特征,得到特征图,区域建议网络利用特征图生成候选区域,再用分类器对候选区域进行分类,最后判断候选区域中是否含有目标。

图2 Faster R CNN的基本结构

Fig.2 Basic structure of Faster R CNN

由上述可知,Faster R CNN模型由四个模块组成:1)卷积层,原始图像通过一定的卷积层、池化层提取图像特征,输出其特征图;2)区域建议网络(RPN),是一个深度全卷积网络,同时进行边框预测及得分计算,用于生成建议区域;3)池化层,PRN在得到候选区域后,将特征图与候选区一起送入池化层;4)Faster R CNN检测器,从RPN产生的目标框作为输入提取特征,最后通过Softmax检测目标类别并做边框回归。Faster R CNN通过共享卷积的方式将RPN和R C NN相连接,且进行了联合训练,所以Faster R CNN模型比单一网络结构更能提升图像检测性能。

1.4 基于Faster R CNN的浅口高跟鞋款式识别模型

1.4.1 整体识别框架

图3为利用Faster R CNN模型对浅口高跟鞋款式进行识别的框架。首先利用训练集(由粗跟、细跟和坡跟三款组成,每款200张图片)对Faster R CNN模型(其主要由RPN和R CNN两部分组成)进行训练,生成检测模型,然后将测试集(由粗跟、细跟和坡跟三款组成,每款100张图片)输入检测模型,验证识别结果(结果为粗跟、细跟或坡跟)。本文使用包含13个卷积层、5个最大池化层和3个全连接层的VGG16[12]作为特征提取网络,并使用线性整流函数作为激活函数。

f5ed0fa2-88ef-11eb-8b86-12bb97331649.jpg

图3 浅口高跟鞋款式识别整体框架

Fig.3 Style recognition framework of shallow opening high-heeled shoes

1.4.2 具体识别流程

图4为利用Faster R CNN模型对浅口高跟鞋款式进行识别的具体流程。当输入的浅口高跟鞋图像经过VGG16特征提取网络后,会对细跟、粗跟和坡跟鞋的特征信息进行提取,并输出特征图,该特征图被输入到RPN层和池化层共享。

f6469f04-88ef-11eb-8b86-12bb97331649.jpg

图4 基于Faster R CNN的浅口高跟鞋款式识别具体流程

Fig.4 Recognition process of shallow opening high-heeled shoes based on Faster R CNN

特征图输入到RPN网络后,先进行1次3×3的卷积运算,再进行2次1×1的卷积运算。其中一次是计算检测区域的前景(识别目标,即本文中的鞋跟款式)或背景概率,另一次1×1卷积运算用于给候选区域精确定位。换句话说,RPN以特征图作为输入,并通过滑动3×3窗口获得锚(anchor,即每个滑动窗口的中心框),结合不同尺寸和比例的区域建议,每个锚产生9个不同的锚框,然后输出可能包含细跟、粗跟和坡跟的矩形候选框及得分。RPN通过滑动窗口,可同时预测多个候选区[13]。

由于RPN产生的候选区域尺寸不同,所以池化层以特征图和RPN网络输出的候选框作为输入,将其映射成固定尺寸的候选框后输入全连接层。

最后利用Softmax层对每个候选框进行分类并输出得分;同时利用回归获得更精确的边界框,也就是最终得到高跟鞋类别(细跟、粗跟或坡跟)及得分。

1.4.3 评价指标

在深度学习领域,准确率P(%)和召回率R(%)常被用来评价模型性能[14],因此本文也用其评价浅口高跟鞋检测模型的性能,并用处理每张图片所用时间T(s)来评价模型的检测效率。P是准确识别的目标数与被判定为目标的总数之百分比,即查准率;召回率R是正确识别的目标数与实际目标总数之百分比,即查全率。

f68856d8-88ef-11eb-8b86-12bb97331649.jpg

(1)

f6c0a740-88ef-11eb-8b86-12bb97331649.jpg

(2)

以粗跟为例,TP表示将粗跟预测为粗跟的样本数;FN表示将粗跟预测为细跟或坡跟的样本数;FP表示将细跟或坡跟预测为粗跟的样本数;TN表示将细跟或坡跟预测为细跟或坡跟的样本数。

假定实际粗跟有100个样本,将粗跟检测为粗跟的样本数40个(即TP),将粗跟检测为细跟或坡跟的样本数为20个(FN),将细跟或坡跟检测为粗跟的为10个(FP),将细跟或坡跟检测为细跟或坡跟的样本数30个(TN)。则计算出的准确率P为80%,召回率R为66.7%。很显然,准确率和召回率越高,说明模型性能越好。

此外,利用总体精度F(%)来评价模型的整体性能[15]。

f6f6a426-88ef-11eb-8b86-12bb97331649.jpg

(3)

1.4.4 平台和参数设置

实验环境为IntelCore i7-3770 CPU@3.40 GHz,8位英特尔处理器(美国英特尔集成电子公司),NVIDIA Ge Force GTX 1080Ti GPU,使用Tensor Flow作为深度学习框架。在参数设置方面,迭代次数设置为10 000次,初始学习率设为0.001,每次迭代训练图像的数量为256张,学习率的衰减系数和网络训练动量分别为0.1和0.9[13]。

结果与分析

2.1 测试结果

图5和图6是分别以鞋跟和整只鞋为目标区域,利用训练好的Faster R CNN模型对浅口高跟鞋款式进行识别的部分结果,其中黑色框标出的为定位区域,线框内的左上角为检测结果,包括类别和得分:X为细跟;C为粗跟;P为坡跟。图5(a)(b)(c)的检测结果分别为X:1.00;C:0.95;P:0.97,图6(a)(b)(c)的检测结果分别为X:1.00;C:1;P:0.98,与实际情况完全吻合。由此可知,无论以鞋跟为目标区域,还是以整只鞋为检测区域,Faster R CNN模型都能对浅口高跟鞋图像进行良好的检测识别,且无须经过人为特征提取,方便可行。

图5 以鞋跟为目标区域的部分浅口高跟鞋识别结果

Fig.5 Recognition results of some shallow opening high-heeled shoes with the heel as the target area

图6 以整只鞋为目标区域的部分浅口高跟鞋识别结果

Fig.6 Recognition results of some shallow opening high-heeled shoes with the whole shoe as the target area

2.2 不同目标区域对识别结果的影响

以准确率、召回率和总体精度为评价指标,列出了利用Faster R CNN检测模型进行识别的结果,如表1所示。由表1可知,即使目标区域相同(鞋跟或整只鞋),高跟鞋种类不同,识别的准确率、召回率也不相同。其中以鞋跟为目标区域时,细跟和粗跟的检测准确率都达到了100%;而以整只鞋为目标区域时,粗跟和坡跟的检测准确率则为100%。以三类的平均值来看,以鞋跟为目标区域的召回率高于以整只鞋为目标区域,而以整只鞋为目标区域的准确率高于以鞋跟为目标区域。对总体精度而言,还是以鞋跟为目标区域稍高,但是二者相差不大。

表1 不同目标区域对识别结果的影响

Tab.1 Effect of different target area to the recognition results %

f7f77580-88ef-11eb-8b86-12bb97331649.jpg

2.3 部分识别错误的样本分析

图7和图8是分别以整只鞋和以鞋跟为目标区域时的部分识别错误样本,并以此为例对识别错误的可能原因加以分析。

图7(a)为粗跟鞋,识别结果为X:0.96和P:0.83,识别错误的原因主要与这款鞋的材质和款式有关。此款鞋和训练集中的鞋在款式上有很大的不同,训练集重的样本皆为浅口高跟皮鞋,而这款是夏季凉鞋,且鞋跟处的材质由两部分组成,一大半为透明水晶状材质,小部分为与鞋底相同的材质。因此计算机在识别的时候,容易将透明水晶材质部分与白色背景相混淆,而将其误检测为细跟X,同时也容易将白色背景混为透明水晶状的鞋跟,从而误检测为坡跟P。图7(b)虽为粗跟鞋,但与其他粗跟鞋也有较大不同,其余的粗跟鞋的鞋跟基本上下粗细差不多,或者上粗下细,而这款鞋跟则呈上细下粗结构,且鞋跟上部粗细与其他细跟鞋的鞋跟上部相差无几,因此出现了一对一错2个检测结果,即X:0.99和C:0.97。图7(c)虽也为粗跟,但由于鞋跟的颜色和主体颜色相差甚大,所以计算机识别的时候可能将颜色不同的鞋跟部分排除在外,只检测了前面部分,而将鞋跟与鞋底之间的白色背景当成鞋跟,从而误判断为坡跟,因此也出现了一对一错2个检测结果,即C:1.00和P:0.97。

图8(a)为细跟凉鞋,与图7(a)一样,都属于与训练集中的浅口高跟皮鞋款式差异较大的鞋,而且后跟的较大装饰品遮住了鞋跟,因此识别时将装饰品当作了鞋跟,导致2个识别结果都将其检测为粗跟,C:0.56和C:0.71。图8(b)虽为粗跟,但鞋跟处上下段的材质截然不同,下半段为完全透明的材质,导致计算机识别时将鞋跟与鞋底部分的白色背景也归为了鞋跟,因此将其误判成P:0.57,另外一个则是正确的检测结果,C:0.93。图8(c)与图7(a)为同一只鞋,这是一款与训练集种的样本款式完全不同的凉鞋,在以鞋跟为目标检测时,也出现了识别错误,甚至将鞋面部分当成了鞋跟,将其误判为坡跟P:0.66。

图7 以整只鞋为目标区域时识别错误的样本

Fig.7 Samples recognized wrongly with the whole shoe as the target area

图8 以鞋跟为目标区域时识别错误的样本

Fig.8 Samples recognized wrongly with the heel as the target area

综上分析识别错误的样本,可以发现误判原因主要是鞋的款式与训练集相差很大,或者由于鞋上的装饰物干扰及后跟的材质、颜色等不一致造成。由于测试集样本存在的这些问题,使得利用Faster R CNN模型进行款式识别时虽然准确率较高(大于94%),但是尚未达到100%。然而这并不影响该方法的有效性,如果摒弃款式过于奇异的及与训练集款式差别甚大的样本,相信会大幅提高模型的测试准确率。

2.4 不同识别方法对识别结果的影响

在相同实验条件下,本文利用不同的检测方法识别浅口高跟鞋,结果如表2所示。由表2可知,Faster R CNN无论是在总体精度还是在检测速度上,都优于其他方法,尤其是检测速度。R CNN的训练和测试尤其耗时,且占用磁盘空间大;SPP-Net对整张图片只进行一次特征提取,相比R CNN极大提高了检测速度。而FAST R CNN将整张图像归一化后直接送入CNN,且一次性提取CNN特征和建议区域,候选区域的前几层无须重复计算特征,且训练数据从GPU内存直接进Loss层,不但提高了计算速度,还节省了存储空间。而本文运用的Faster R CNN由于用RPN替了前面几种方法的Selective Search(选择性搜索)产生建议窗口;同时产生建议窗口的CNN和目标检测的CNN通过共享卷积的方式相连接,并进行了联合训练,因此无论在总体精度上抑或是检测速度方面,都比前面几种方法更具优势。

表2 不同识别方法的对比

Tab.2 Comparison of different recognition methods

fa75db80-88ef-11eb-8b86-12bb97331649.jpg

结论

为探索利用图片对服饰款式进行自动识别的技术,本文以浅口高跟鞋为例,通过收集网购平台上的产品图像,建立了样本库:包含细跟、粗跟、坡跟三款浅口高跟鞋,每款300张图像。每款随机抽取200张作为训练集,剩余100张作为测试集,并对图像进行标记。然后利用深度学习中的Faster R CNN检测模型对浅口高跟鞋款式进行训练和识别,结果表明:

1)无论以鞋跟为目标区域,还是以整只鞋为检测区域,Faster R CNN模型都能对浅口高跟鞋图像进行良好的检测识别,准确率可达94%以上,且不用经过人为特征提取,方便可行,具有较好的先进性。

2)识别错误的样本,主要是由于鞋的款式与训练集相差很大,或者因为鞋上的装饰物干扰及鞋跟的材质、颜色等不一致的原因造成。如果对测试集中的样本进行优选,去除与训练集差异甚大的,或者去除款式过于奇异的样本,准确率将会进一步提高。

3)Faster R CNN由于用RPN代替R CNN、SPP-Net、FAST R CNN这几种方法利用Selective Search产生建议窗口;同时产生建议窗口的CNN和目标检测的CNN共享,使检测模型的总体精度和检测速度都更具优势。

因此,利用本文设计的方法对浅口高跟鞋的款式进行自动识别是可行的,研究结果可为实现网购时的图像检索提供参考,同时还能为买家快速搜到满意的商品提供帮助。

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4576

    浏览量

    98873
  • 图像
    +关注

    关注

    2

    文章

    1065

    浏览量

    40049
  • cnn
    cnn
    +关注

    关注

    3

    文章

    327

    浏览量

    21306

原文标题:基于Faster R CNN的浅口高跟鞋款式识别

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    c语言在while中嵌套if循环

    中嵌套if语句的用法和好处。 一、C语言中的while循环和if语句 在开始我们深入探讨while循环中嵌套if语句的细节之前,让我们首先回顾一下while循环和if语句的基本
    的头像 发表于 11-22 10:09 1611次阅读

    while循环用法格式

    while循环是一种常用的循环结构,能够按照指定条件多次重复执行一段代码。它的一般用法格式如下: while 条件表达式:循环体 在执行while
    的头像 发表于 11-22 10:02 862次阅读

    for循环的基本例子

    for循环是一种常见的循环结构,用于重复执行一段代码。它通常由三个部分组成:循环变量的初始化、循环条件和循环变量更新。下面将通过详细的例子来
    的头像 发表于 11-22 10:00 987次阅读

    for in range循环怎么使用

    for-in range 循环是Python中的一种循环结构,用于重复执行一段代码,而且循环次数是已知的。 在Python中,for-in range 循环有以下几种
    的头像 发表于 11-21 14:49 6561次阅读

    C语言for循环用法和注意事项

    C 语言是一种广泛使用的编程语言,它具有简洁、高效、灵活的特点。C 语言中有很多控制流程的语句,其中 for 循环是一种常见的循环结构,可以用来重复执行一段代码,直到满足某个条件为止。
    的头像 发表于 11-20 18:27 1046次阅读
    C语言for<b class='flag-5'>循环</b>的<b class='flag-5'>用法</b>和注意事项

    C语言拆解循环 以空间换时间

    拆解循环-以空间换时间 在编写循环处理程序的时候要充分利用CPU的指令缓存,要充分分解小的循环。特别是当循环体本身很小的时候,分解
    的头像 发表于 11-20 18:05 290次阅读

    喇叭的规格什么3R 4W是代表什么意思?音量吗?

    喇叭的规格什么3R 4W是代表什么意思?音量吗?
    发表于 11-07 06:05

    C语言中while和do-while循环用法

    循环是一种重要的控制结构,可以使程序重复执行一段代码,直到满足特定条件为止。在C语言中,while和do-while是两种常用的循环结构,本文将详细介绍这两种循环用法
    发表于 08-18 16:35 1159次阅读
    C语言中while和do-while<b class='flag-5'>循环</b>的<b class='flag-5'>用法</b>

    C语言中for循环用法和应用 C语言中for循环与while循环的区别

    C语言中的循环结构时,for循环是最常用的一种。它允许重复执行一段代码,直到满足特定条件为止。
    发表于 08-18 16:33 1049次阅读
    C语言中for<b class='flag-5'>循环</b>的<b class='flag-5'>用法</b>和应用 C语言中for<b class='flag-5'>循环</b>与while<b class='flag-5'>循环</b>的区别

    for循环语句基本用法及示例 介绍几种可综合的for循环语句

    利用for循环实现对信号的赋值。
    的头像 发表于 08-03 10:22 1688次阅读

    079. while循环:5.14 while循环嵌套快速体验 #硬声创作季

    循环
    充八万
    发布于 :2023年07月07日 07:02:06

    074. while循环:5.9 循环的注意事项

    循环
    充八万
    发布于 :2023年07月07日 06:56:17

    066. while循环:5.1 循环章节课程介绍

    循环
    充八万
    发布于 :2023年07月07日 03:42:29

    067. while循环:5.2 了解循环

    循环
    充八万
    发布于 :2023年07月05日 15:48:56

    066. while循环:5.1 循环章节课程介绍

    循环
    充八万
    发布于 :2023年07月05日 15:47:47