专栏首页Reinvent Data Science基于 Milvus 的 VOVA 拍照购实践

基于 Milvus 的 VOVA 拍照购实践

✏️ 作者介绍:

Jessie Ji,VOVA 算法部 Java 开发工程师

项目背景

VOVA 是一个面向全球市场的新兴跨境电商平台,专注于外贸出口,客户遍布六大洲一百多个国家和地区。VOVA 支持 20 种主流语言和 35 种主流货币,拥有数百万件高品质、高性价比的产品,为用户提供最新的全球平价商品和轻松有趣的购物体验。

近几年,网络购物平台日益流行,大众对网购的热情也日益高涨。但是大部分传统购物网站只支持关键词搜索,当用户无法用词汇准确描述商品时,就很难搜索到心仪的商品。因此,通过图片搜索相似产品,能够帮助用户更准确地找到想要的商品。为方便用户体验快捷的一站式购物,VOVA 全新推出拍照购功能。如果消费者在影视屏幕、广告牌、报刊杂志、行人身上等任何地方看到自己喜欢的商品,他们只需拍照并上传至 VOVA 平台,便可找到相似商品。

系统流程

拍照购系统会根据用户上传的商品图片,对商品库中商品照片进行检索并返回给用户最相似的商品图片。如下图所示,系统流程分为数据导入(蓝线)和查询(橙线)两个阶段,涉及三个关键步骤:

  1. 使用 YOLO 模型进行端侧目标检测
  2. 使用 ResNet 网络提取图片特征向量
  3. 使用 Milvus 进行向量相似度检索

目标检测端

目前,仅 VOVA App 端支持拍照购功能。我们首先在端侧部署 YOLO 算法模型对用户拍摄的图片进行目标检测。YOLO 算法全称是 You Only Look Once: Unified, Real-Time Object Detection。作为一个 one-stage 检测算法,YOLO 仅使用一个 CNN 网络来直接预测不同目标的类别与位置。YOLO 系列算法已经迭代至第五代,且模型较小,适合移动端部署。YOLO 采用卷积网络来提取特征,然后使用全连接层获取预测值。YOLO 的卷积网络结构参考 GooLeNet 模型,包含 24 个卷积层和 2 个全连接层,如下图所示。输入图像大小为 448 * 448,经过若干个卷积层与池化层,变为 7 * 7 * 1024 维张量(图中倒数第三个立方体),最后经过两层全连接层,输出张量维度为 7 * 7 * 30。网络的预测值 P 是一个二维张量,其 shape 为 [batch,7*7*30] 。采用切片,那么 P[:,0:7*7*20] 就是类别概率部分,而 P[:,7*7*20:7*7*(20+2)] 是置信度部分,最后剩余部分 P[:,7*7*(20+2):] 是边界框的预测结果。

图片特征向量提取

本项目采用深度残差网络(Deep residual network, ResNet)模型对库内现有的图片以及经过端侧检测的新上传图片进行特征提取,并转化为特征向量。ResNet 模型针对深度网络的退化问题而提出。随着学习网络的深度增加,网络准确度会出现下降的现象。如下图所示,ResNet 网络参考了 VGG19 网络,在其基础上进行了修改,通过短路机制加入了残差单元。2014 年提出的 VGG 网络只有 19 层,而 2015 年推出的 ResNet 网络则多达 152 层。ResNet 结构易于修改和扩展。改变 block 内的 channel 数量以及堆叠的 block 数量,即可轻松调整网络的宽度和深度,得到不同表达能力的网络,有效地解决网络的“退化”问题。只要训练数据足够,可以通过逐步加深网络获得表达性能更佳的模型。通过模型训练,我们提取每张图片的特征,并转化为 256 维的浮点向量。

相似向量检索

目前 VOVA 拥有超过 3 千万张商品图片,且实际的数据量还在成倍增长。为了从如此庞大的图片库中快速地检索出最相似的商品图片,我们采用 Milvus 作为特征向量相似度计算引擎。相比于Faiss、Annoy 等向量开发库,Milvus 是一个可以开箱即用的工具。Milvus 不仅集成了不同的索引库,还支持不同的索引类型和相似度计算方式。此外,Milvus 官方还提供多种语言的 SDK 和插入、查询等丰富的 API 可供调用,方便项目组直接入手,降低学习成本。在检索速度上,十亿向量查询时单条向量查询时间不高于 1.5 秒,批量查询的平均时间不高于 0.08 秒。因此 Milvus 能够实现十亿级别向量的毫秒级检索。实际实践过程中,我们参照了Milvus 的分片中间件解决方案 Mishards 组件搭建高可用的服务集群,其大致结构如下图所示。使用具有水平扩展能力的 Milvus 集群,能够较好地满足该项目对海量向量数据的高性能检索需求。

系统界面展示

如下图所示,用户上传商品图片后即可查询外观相似的商品,找到心仪的产品。

结语

目前,拍照购功能已上线,且运行稳定。越来越多用户通过拍照购购买商品。VOVA 将持续优化本项目中运用的模型,并关注后续的 Milvus 版本更新,从而为用户提供更好的购物体验。

参考资料

YOLO

https://arxiv.org/pdf/1506.02640.pdf

https://arxiv.org/pdf/1612.08242.pdf

https://zhuanlan.zhihu.com/p/35325884

ResNet

https://arxiv.org/abs/1512.03385

https://www.cnblogs.com/shine-lee/p/12363488.html

Milvus

https://milvus.io/cn/docs/overview.md

About Zilliz

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

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

本文分享自微信公众号 - ZILLIZ(Zilliztech),作者:M小编

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

原始发表时间:2021-04-01

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

我来说两句

0 条评论
登录 后参与评论

相关文章

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

    Mozat 是一家成立于 2003 年的互联网公司,总部位于新加坡,在广州和沙特阿拉伯设有分公司。Mozat 为全球移动互联网用户提供娱乐和社区服务,致力于打造...

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

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

    AI科技大本营
  • 海量数据中搜索精华价值:Milvus助力头部企业打造前沿AI搜索

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

    深度学习与Python
  • 拥抱云原生,Milvus v2.0 发布现场回顾 | 附Meetup讲师PPT和视频

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

    Zilliz RDS
  • 以图搜图系统工程实践

    •提取图像特征向量(用特征向量去表示一幅图像)•特征向量的相似度计算(寻找内容相似的图像)

    凌虚
  • Milvus 2.0 新版本一览:重新定义向量数据库

    2018 年 10 月,我们写下了向量数据库 Milvus 的第一行代码;在历经了 29 个月、19 个版本的迭代与全球 1000 家用户的实践验证后,终于在 ...

    Zilliz RDS
  • Milvus 实战 | 基于 Milvus 的 CORD-19 论文检索引擎

    论文检索是指根据用户输入的信息从大量的论文集合中查找出相关文本的一种技术。论文检索作为信息检索的一种,常用于搜索引擎、数字图书馆等领域,是信息检索技术的一个重要...

    Zilliz RDS
  • 贝壳找房基于Milvus的向量搜索实践(三)

    第二篇中我们解决了部署方案的问题,接下来要考虑的是数据如果存储。在分布式部署情况下,Milvus是需要使用Mysql来存储元数据的[1]。Milvus分布式部署...

    Zilliz RDS
  • Milvus 在唯品会搜索推荐的实践

    随着互联网数据规模的爆炸式增长,当前主流电商平台的商品品类及数量越来越多,用户却越来越难以便捷地找到自己需要的产品。

    Zilliz RDS
  • 相似问答检索——汽车之家的 Milvus 实践

    汽车之家作为中国汽车互联网平台,拥有全球最大的汽车社区论坛。多年来积累了丰富的用户问答数据,能够解决用户在看车、买车、用车等方面遇到的各种问题。针对用户在平台上...

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

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

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

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

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

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

    Zilliz RDS
  • 基于语义向量的内容召回和短文本分类的错误查找-搜狐的 Milvus 实战

    随着互联网和移动终端的发展,用户获取信息的需求越来越高——从以前单一地接受信息到现在主动获取自己感兴趣的资讯。搜狐新闻客户端的重要任务就是根据用户喜好向用户推荐...

    Zilliz RDS
  • 基于 Milvus 构建的近似最近邻(ANN)搜索引擎

    根据格像科技公司的业务需求,我们需要搭建一个近似最近邻(Approximate Nearest Neighbor,即 ANN)搜索引擎,以便将在线向量相似搜索功...

    Zilliz RDS
  • Milvus 分布式向量检索-Mishards架构介绍

    向量搜索引擎 Milvus 旨在帮助用户实现海量非结构化数据的近似检索和分析。单个 Milvus 实例可处理十亿级数据规模,而对于百亿或者千亿规模数据的需求,则...

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

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

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

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

    Zilliz RDS
  • 基于 Milvus 的钓鱼网站检测

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

    Zilliz RDS

扫码关注云+社区

领取腾讯云代金券