专栏首页Reinvent Data Science你的 AI 造型师-基于 Milvus 的服装图片搜索系统及应用

你的 AI 造型师-基于 Milvus 的服装图片搜索系统及应用

✏️ 作者:方宇,Mozat 人工智能科学家

Mozat 是一家成立于 2003 年的互联网公司,总部位于新加坡,在广州和沙特阿拉伯设有分公司。Mozat 为全球移动互联网用户提供娱乐和社区服务,致力于打造一个充满乐趣的新移动世界。旗下产品 Stylepedia 是一款面向全球时尚女性的衣柜伴侣 APP。在这里,用户不仅可以打造自己的专属衣柜,还能与全世界的时尚达人在线互动,获取最 in 穿搭。

App 中有三类图片,分别是用户图片、 商品图片、街拍图片。每张图片上都会有一个或多个服饰单品。为了保证用户能精确地检索到与某一单品相似的服装,我们需要一个精准、快速、稳定的服装相似性检索系统作为业务的技术基础,实现拍照搜索、搭配建议和街拍推荐等功能。

系统框架

系统流程框架图

整个系统分为离线在线两个部分。

离线部分是图片入库的流程。在数据流程中,符合要求的商品图和街拍图在经过服装检测、特征提取模型后得到 512 维的特征向量;将该特征向量加入到向量数据库,建立搜索索引。

在线部分是图片搜索的过程。查询图片同样经过服装检测、特征提取后得到特征向量。基于该特征向量,使用向量数据库 Milvus 搜索得到 TopK 个相似向量以及相对应的图片 ID。最后经过后处理(筛选、重排序等)后得到与查询图片的服装相似的图片集合。

实现

基于系统框架,Stylepedia 的功能实现分为四个模块,分别是服装检测、特征提取、相似向量搜索、后处理。

服装检测

服装检测模块使用 YOLOv5 作为目标检测模型,识别图片中的服饰单品,并将其切割(crop)出来作为特征提取模型的输入。YOLOv5 是一个一段式(one-stage)、人为设定框(anchor-based)的目标检测框架, 检测性能较好。由于检测目标较大,此处选择了深度最小、特征图宽度最小的 YOLOv5s 网络。另外,我们将所有服装分为六大类(上衣、外套、裤子、半身裙、连衣裙、连体衣),检测模型也会输出分类的预测结果, 用于后续处理。

特征提取

特征提取模型是相似性检索的关键。模型的输入是以某件单品为主体的图片,经过转化后输出 512 维的浮点向量,作为该单品的特征。我们采用基于度量学习的方法,以 EfficientNet 为骨干网络。

度量学习的对象是样本特征向量之间的距离,其目的是通过训练和学习减小同类样本之间的距离,同时增大不同类别样本之间的距离。在本文所描述的场景下,同类样本即同一件单品。

EfficientNet 同时兼顾速度和精度,有助于探索网络深度、网络宽度和图像分辨率的最优组合。我们选取其中的 EfficientNet-B4 作为特征提取网络,其最后一层全连接层的输出便是我们需要的图片特征。

相似向量搜索

我们采用 Milvus 作为大规模相似向量搜索引擎。Milvus 是一款开源的向量数据库,支持针对 TB 级向量的增删改操作和近实时查询,具有高度灵活、稳定可靠以及快速查询等特点。它集成了 Faiss、NMSLIB、Annoy 等广泛应用的向量索引库,提供了一整套简单直观的 API,可以针对不同场景选择不同的索引类型。

基于业务场景和数据规模的需求, 我们使用的是 CPU 版 Milvus,搭配 HNSW 索引。系统内有商品和街拍两个索引库(集合),服务于不同业务需求,每个索引库又基于检测分类结果分为六个分区来缩小搜索范围。Milvus 在千万级数据上的向量搜索时间以毫秒计算,在开发成本低、资源占用少的前提条件下实现最优性能。

后处理

为了提高召回图片和搜索目标图片的相似度,我们结合业务场景在召回的街拍图片集合增加了颜色特征过滤和主要标签(袖长、衣长、衣领等)过滤,筛选掉不符合要求的图片。

此外, 我们还利用图片质量评估算法对街拍图重新排序, 让用户优先看到质量更高的图片。

应用

用户拍照搜索

用户可以将自己的衣服拍照上传到虚拟衣柜,并基于上传的图片找到商品库中与之最相似的同类商品图。

上传图片在商品库中的相似结果

搭配建议

通过商品图和街拍图之间的相似搜索,可以找到含有特定单品的所有街拍图。然后通过与之搭配的另一件单品的聚类,形成对用户有价值的搭配建议。如下图所示,一件黑夹克可以和很多单品搭配,其中一种是黑色牛仔裤。

搭配组合示例

搭配效果展示

街拍推荐

我们会根据用户虚拟衣柜中的单品、单品浏览记录以及街拍点赞等,基于服装单品相似性,为用户推荐潜在相关的街拍。

虚拟衣柜示例

街拍推荐

利用深度学习和计算机视觉方法,我们基于 Milvus 向量数据库搭建了一个精准、快速、稳定的图片相似性搜索系统,并利用该系统实现用户拍照搜索、穿搭自动生成、推荐等功能,提供更好的用户体验。

参考资料:

1. https://github.com/ultralytics/yolov5

2. https://github.com/kdhht2334/Survey_of_Deep_Metric_Learning

3. https://arxiv.org/abs/1905.11946

4. https://milvus.io/cn/

5. https://stylepedia.com/

6. http://www.mozat.com/home

Zilliz 以重新定义数据科学为愿景,致力于打造一家全球领先的开源技术创新公司,并通过开源和云原生解决方案为企业解锁非结构化数据的隐藏价值。

Zilliz 构建了 Milvus 向量数据库,以加快下一代数据平台的发展。Milvus 目前是 LF AI & Data 基金会的毕业项目,能够管理大量非结构化数据集。我们的技术在新药发现、计算机视觉、推荐引擎、聊天机器人等方面具有广泛的应用。

本文分享自微信公众号 - ZILLIZ(Zilliztech),作者:方宇

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-07-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Milvus 线上问答#14- Milvus 非结构数据服务(UDS)概述

    Milvus 究竟是一个计算平台,还是一个数据库?应用在哪些场景?诸如此类的问题我们的开发者常常在群里被小伙伴问到。这次我们对 Milvus 做了一个简单的概述...

    Zilliz RDS
  • AI 搜房,贝壳找房的Milvus实践

    贝壳作为一家房产服务互联网平台,如何在海量房源中选出能够快速成交的房源是对平台和经纪人来说都是一件非常重要同时具有挑战的事情,但是针对房型图,户型信息等一系列非...

    Zilliz RDS
  • 基于 Milvus 的以图搜图系统 2.0

    Milvus 以图搜图 1.0 版本自发布以来便受到广大用户的欢迎。近日,Zilliz 推出了 Milvus 以图搜图系统 2.0 版。本文将介绍 Milvus...

    Zilliz RDS
  • 拥抱云原生,Milvus v2.0 发布现场回顾 | 附Meetup讲师PPT和视频

    继今年 3 月发布 Milvus 1.0 版本,时隔 3 个月,Milvus 2.0 应云而生。

    Zilliz RDS
  • Milvus 与 ONNX 格式的多种模型结合应用

    开放神经网络交换(Open Neural Network Exchange,简称 ONNX)是一个开放的生态系统,它提供了基于人工智能模型的一种开源格式。自 2...

    Zilliz RDS
  • 海量数据中搜索精华价值:Milvus助力头部企业打造前沿AI搜索

    在今天这个大数据无处不在的时代,如何高效精确地对海量数据进行处理和分析,是摆在各行业头部企业与软件开发团队面前的重大挑战。传统的结构化、半结构化数据领域有着较为...

    深度学习与Python
  • 基于 Milvus 的钓鱼网站检测

    在海量信息中,不乏非法分子利用网络骗取用户信任并从中获利,钓鱼网站就是其中之一。“钓鱼”网站的网址、网页内容、布局等与真实网站极其相似,没有安全意识的网民容易因...

    Zilliz RDS
  • Milvus 到底有多少种玩法?这份攻略合集请收好!

    Milvus 是一款开源的向量相似度搜索引擎,支持使用多种 AI 模型将非结构化数据向量化,并为向量数据提供搜索服务。Milvus 集成了 Faiss、Anno...

    Zilliz RDS
  • Milvus x KubeSphere: 如何一键部署火爆全球的开源向量数据库

    本文将介绍如何使用 KubeSphere 容器平台可视化部署 Milvus 向量数据库以及 Milvus 在云原生场景下的基本使用。下面,让我们先来简单了解一下...

    Zilliz RDS
  • 基于 Google Colab 的 Milvus 使用教程

    Milvus 是一款开源的向量相似度搜索引擎,集成了 Faiss、NMSLIB、Annoy 等广泛应用的向量索引库,并提供了一整套简单直观的 API。Milvu...

    Zilliz RDS
  • Milvus 实战 | Milvus 与 BERT 搭建文本搜索

    Google 的 BERT 模型在 NL 领域中具有巨大的影响力。它是一个通用的语言表示模型,可以应用于诸多领域。本文的项目是将 Milvus 与 BERT ...

    Zilliz RDS
  • 快速搭建对话机器人,就用这一招!

    问答系统是自然语言处理领域一个很经典的问题,它用于回答人们以自然语言形式提出的问题,有着广泛的应用。其经典应用场景包括:智能语音交互、在线客服、知识获取、情感类...

    Zilliz RDS
  • 解读TF、PaddlePaddle、天元等AI框架,你想知道的都在这里了

    【导读】7 月 3-4 日,由 CSDN 主办的第三届 AI 开发者大会(AI ProCon 2020)在线上举行。本次大会有超万人报名参与,参与人群覆盖 60...

    AI科技大本营
  • Chat with Milvus #11 回顾- 分布式数据库与Milvus分布式

    本期的 Milvus 线上问答由我们 15 年经验的数据库专家-顾老师,带你总结主流数据库的发展与未来方向。

    Zilliz RDS
  • 基于 Milvus 的 VOVA 拍照购实践

    VOVA 是一个面向全球市场的新兴跨境电商平台,专注于外贸出口,客户遍布六大洲一百多个国家和地区。VOVA 支持 20 种主流语言和 35 种主流货币,拥有数百...

    Zilliz RDS
  • Milvus开源向量搜索引擎,轻松搭建以图搜图系统

    当您听到“以图搜图”时,是否首先想到了百度、Google 等搜索引擎的以图搜图功能呢?事实上,您完全可以搭建一个属于自己的以图搜图系统:自己建立图片库;自己选择...

    Zilliz RDS
  • Chat with Milvus #10 回顾- Milvus 性能指标

    - Milvus 的顾老师教你怎么看 Milvus 性能报告与如何达到最佳性能。

    Zilliz RDS
  • 图形商标近似检索-知擎者的 Milvus 实践

    知擎者是一个商标大数据智能应用平台,以商标数据为核心,结合企业大数据、法律大数据、营销大数据等,提供基础业务处理、商标预警监测、案件智能挖掘、数据情报分析等服务...

    Zilliz RDS
  • Milvus 在 Tokopedia 的应用 | 让语义搜索更加智能

    Tokopedia 是印度尼西亚最大的电商平台,目前拥有逾 9000 万月活跃用户和 860 万家商户,覆盖印尼 98% 的行政区。我们深知,帮助用户迅速并精准...

    Zilliz RDS

扫码关注云+社区

领取腾讯云代金券