DeepFashion︱衣物时尚元素关键点定位+时尚元素对齐技术

2023-12-21 03:32

本文主要是介绍DeepFashion︱衣物时尚元素关键点定位+时尚元素对齐技术,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

香港中文大学最近的研究成果:Fashion Landmark Detection in the Wild
这里写图片描述

github地址:https://github.com/liuziwei7/fashion-landmarks

这项工作提出了时尚关键点检测或时尚对齐(通过三层级联网络),预测关键点位置上的时尚物品,如领口的角落,裙摆,袖口,同时实现了时尚衣物检索功能。

.


一、时尚数据集:Large-scale Fashion (DeepFashion) Database

网址:http://mmlab.ie.cuhk.edu.hk/projects/DeepFashion.html
可扫码看到这一数据集:
这里写图片描述

目前有以下几类数据集:
1. Category and Attribute Prediction Benchmark
这里写图片描述

  1. In-shop Clothes Retrieval Benchmark
    这里写图片描述
  2. Consumer-to-shop Clothes Retrieval Benchmark
    这里写图片描述
  3. Fashion Landmark Detection Benchmark
    这里写图片描述
    .

二、预训练好的caffemodel

三个预先训练好的:

  • 3-stage cascaded CNN models trained on upper-body clothes of Fashion
    Landmark Detection Benchmark (FLD).
  • 3-stage cascaded CNN models trained on lower-body clothes of Fashion
    Landmark Detection Benchmark (FLD).
  • 3-stage cascaded CNN models trained on full-body clothes of Fashion
    Landmark Detection Benchmark (FLD).
    .

三、服装对齐技术

这里写图片描述

结果:
这里写图片描述
.


四、应用一:用深度学习算法感知你的穿衣风格

来源于:大数据与多模态计算公众号

人们常说“所见即所得。”在推荐系统中,视觉信息也扮演着十分重要的角色,尤其是在服装、珠宝、装饰等外观对人们的选择起着重大作用的领域中。因此,研究用户喜好和商品特性的视觉维度变成了一个很重要的任务。
近年来,服装等商品的搭配、推荐受到了广泛的关注,并在基于视觉的推荐问题中取得了一定的成果。但是,目前工作对于商品的表征,往往是在一个通用的视觉特征空间中,比如CNN (Convolutional Neural Networks)网络的输出层特征。这样的视觉特征表示,对商品的类别比较敏感,却难以建模商品的不同风格。如下图所示,我们根据CNN网络的输出层特征对Amazon数据中的服装商品进行聚类,每一行表示一个类别。可以看到,不同类别的服装(比如,上衣、裙子、裤子、鞋等)被聚类到了一起,而不同风格的服装(比如,正式、休闲、运动等)没有被聚类到一起,甚至男装和女装间的区分度也很低。
这样的视觉特征表示很难有效地用于推荐系统中,因为相似风格的商品往往会被同一个人同时购买,但在视觉特征空间中却并不相似,这就为提升推荐效果带来了难度。比如,西裤和皮鞋一般是搭配在一起并被同时购买的,但西裤和皮鞋的相似度要远远小于西裤和牛仔裤的相似度。
根据上面的观察,我们提出了一个假设:一个商品(item)由风格(style)和类别(category)两部分构成,并且满足:
商品(item)= 风格(style)+ 类别(category)

基于上面的假设,我们提出了DeepStyle方法,学习用户的喜好和商品的风格属性,并应用于基于视觉的推荐中。
这里写图片描述
在DeepStyle模型中,我们将每个商品的图片输入到CNN网络中,其中这个CNN网络在ImageNet上经过了预训练。经过CNN,我们可以得到每个商品的视觉特征向量。然后,根据前文的假设,我们从商品的视觉特征向量中减除了该商品对应类别的隐含表达,进而得到了商品的风格特征向量。
随后,我们将得到的风格特征向量输入到BPR (Bayesian Personalized Ranking)框架中实现个性化推荐。对每个用户,采样正负商品样本对(正样本表示实际购买了的商品,负样本表示没有购买过的商品),通过优化,尽量扩大该用户和正样本的相似度,减小和负样本的相似度。我们的模型以用户的实际购买记录为监督进行训练,以SGD (Stochastic Gradient Descent)进行参数学习,直至模型收敛。
还对模型学习得到的商品风格特征向量进行了聚类,如下图所示,每一个方框中的商品属于一个类别:
这里写图片描述
可以看到,DeepStyle学到的风格特征可以很好地表征商品的不同风格,有效地挖掘用户的喜好,而在训练过程中完全没有商品风格方面的监督信息。
.


延伸一:DeepFashion: Powering Robust Clothes Recognition and Retrieval with Rich Annotations (CVPR 2016)

来源:基于深度学习的视觉实例搜索研究进展
介绍了衣服识别和搜索,同样是与实例搜索相关的任务,来自于香港中文大学Ziwei Liu等人的工作。首先,本篇文章介绍了一个名为DeepFashion的衣服数据库。该数据库包含超过800K张的衣服图片,50个细粒度类别和1000个属性,并还额外提供衣服的关键点和跨姿态/跨领域的衣服对关系(cross-pose/cross-domain pair correspondences)

然后为了说明该数据库的效果,作者提出了一种新颖的深度学习网络,FashionNet——通过联合预测衣服的关键点和属性,学习得到更具区分性的特征。该网络的总体框架如下所示:
这里写图片描述
FashionNet的前向计算过程总共分为三个阶段:第一个阶段,将一张衣服图片输入到网络中的蓝色分支,去预测衣服的关键点是否可见和位置。第二个阶段,根据在上一步预测的关键点位置,关键点池化层(landmark pooling layer)得到衣服的局部特征。第三个阶段,将“fc6 global”层的全局特征和“fc6 local”的局部特征拼接在一起组成“fc7_fusion”,作为最终的图像特征。FashionNet引入了四种损失函数,并采用一种迭代训练的方式去优化。这些损失分别为:回归损失对应于关键点定位,softmax损失对应于关键点是否可见和衣服类别,交叉熵损失函数对应属性预测和三元组损失函数对应于衣服之间的相似度学习。作者分别从衣服分类,属性预测和衣服搜索这三个方面,将FashionNet与其他方法相比较,都取得了明显更好的效果。

总结:当有足够多的有标注数据时,深度学习可以同时学习图像特征和度量函数。其背后的思想就是根据给定的度量函数,学习特征使得特征在该度量空间下具有最好的判别性。因此端到端的特征学习方法的主要研究方向就是如何构建更好的特征表示形式和损失函数形式。


公众号“素质云笔记”定期更新博客内容:

这里写图片描述

这篇关于DeepFashion︱衣物时尚元素关键点定位+时尚元素对齐技术的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/518505

相关文章

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

Python实现PDF按页分割的技术指南

《Python实现PDF按页分割的技术指南》PDF文件处理是日常工作中的常见需求,特别是当我们需要将大型PDF文档拆分为多个部分时,下面我们就来看看如何使用Python创建一个灵活的PDF分割工具吧... 目录需求分析技术方案工具选择安装依赖完整代码实现使用说明基本用法示例命令输出示例技术亮点实际应用场景扩

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Java进程异常故障定位及排查过程

《Java进程异常故障定位及排查过程》:本文主要介绍Java进程异常故障定位及排查过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、故障发现与初步判断1. 监控系统告警2. 日志初步分析二、核心排查工具与步骤1. 进程状态检查2. CPU 飙升问题3. 内存

python3如何找到字典的下标index、获取list中指定元素的位置索引

《python3如何找到字典的下标index、获取list中指定元素的位置索引》:本文主要介绍python3如何找到字典的下标index、获取list中指定元素的位置索引问题,具有很好的参考价值,... 目录enumerate()找到字典的下标 index获取list中指定元素的位置索引总结enumerat

Qt如何实现文本编辑器光标高亮技术

《Qt如何实现文本编辑器光标高亮技术》这篇文章主要为大家详细介绍了Qt如何实现文本编辑器光标高亮技术,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录实现代码函数作用概述代码详解 + 注释使用 QTextEdit 的高亮技术(重点)总结用到的关键技术点应用场景举例示例优化建议

CSS实现元素撑满剩余空间的五种方法

《CSS实现元素撑满剩余空间的五种方法》在日常开发中,我们经常需要让某个元素占据容器的剩余空间,本文将介绍5种不同的方法来实现这个需求,并分析各种方法的优缺点,感兴趣的朋友一起看看吧... css实现元素撑满剩余空间的5种方法 在日常开发中,我们经常需要让某个元素占据容器的剩余空间。这是一个常见的布局需求

CSS Anchor Positioning重新定义锚点定位的时代来临(最新推荐)

《CSSAnchorPositioning重新定义锚点定位的时代来临(最新推荐)》CSSAnchorPositioning是一项仍在草案中的新特性,由Chrome125开始提供原生支持需... 目录 css Anchor Positioning:重新定义「锚定定位」的时代来了! 什么是 Anchor Pos

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技