🚀 免费试用 Zilliz Cloud,完全托管的 Milvus,体验 10 倍的性能提升!立即试用>

milvus-logo
LFAI
  • Home
  • Blog
  • 使用 iYUNDONG 体育应用程序提取赛事集锦

使用 iYUNDONG 体育应用程序提取赛事集锦

  • Scenarios
March 16, 2021
milvus

iYUNDONG 是一家互联网公司,旨在吸引更多体育爱好者和马拉松等赛事的参与者。它开发的人工智能(AI)工具可以分析体育赛事中捕捉到的媒体,自动生成赛事集锦。例如,参加体育赛事的 iYUNDONG 运动应用程序用户只需上传一张自拍照,就能立即从赛事的海量媒体数据集中检索到自己的照片或视频片段。

iYUNDONG 应用程序的主要功能之一是 "在运动中找到我"。 摄影师通常会在马拉松比赛等体育赛事期间拍摄大量照片或视频,并将照片和视频实时上传到 iYUNDONG 媒体数据库。马拉松选手如果想查看自己的精彩瞬间,只需上传一张自拍照,就能检索到包括自己在内的照片。这为他们节省了大量时间,因为 iYUNDONG 应用程序中的图像检索系统会完成所有图像匹配工作。iYUNDONG 采用Milvus为这一系统提供动力,因为 Milvus 可以大大加快检索过程,并返回高度准确的结果。


跳转到


困难与解决方案

在建立图像检索系统时,iYUNDONG 遇到了以下问题,并成功找到了相应的解决方案。

  • 活动照片必须立即可供检索。

iYUNDONG 开发了一个名为 InstantUpload 的功能,以确保活动照片在上传后立即可供搜索。

  • 海量数据集的存储

照片和视频等海量数据每毫秒都要上传到 iYUNDONG 后端。因此,iYUNDONG 决定迁移到云存储系统上,包括AWSS3阿里巴巴云对象存储服务 (OSS),以安全、快速、可靠的方式处理巨量的非结构化数据。

  • 即时阅读

为了实现即时读取,iYUNDONG 开发了自己的分片中间件,以轻松实现横向扩展,减轻磁盘读取对系统的影响。此外,还使用Redis作为缓存层,以确保在高并发情况下性能的一致性。

  • 即时提取面部特征

为了准确、高效地从用户上传的照片中提取面部特征,iYUNDONG 开发了一种专有的图像转换算法,可将图像转换为 128 维特征向量。遇到的另一个问题是,许多用户和摄影师经常同时上传图片或视频。因此,系统工程师在部署系统时需要考虑动态可扩展性。具体来说,iYUNDONG 充分利用了云上的弹性计算服务(ECS)来实现动态扩展。

  • 快速、大规模的向量搜索

iYUNDONG 需要一个向量数据库来存储其通过人工智能模型提取的大量特征向量。根据自身独特的业务应用场景,iYUNDONG 希望该向量数据库能够

  1. 在超大数据集上执行快速向量检索。
  2. 以更低的成本实现海量存储。

最初,平均每年要处理 100 万张图像,因此,iYUNDONG 将所有搜索数据都存储在 RAM 中。但近两年,其业务蓬勃发展,非结构化数据呈指数级增长--2019 年,iYUNDONG 数据库中的图片数量超过 6000 万张,这意味着需要存储的特征向量超过 10 亿个。巨大的数据量不可避免地使 iYUNDONG 系统的构建和资源消耗变得十分庞大。因此,它必须不断投资硬件设施,以确保高性能。具体来说,iYUNDONG 部署了更多的搜索服务器、更大的内存和性能更好的 CPU,以实现更高的效率和横向扩展能力。然而,这种解决方案的缺陷之一是导致操作符成本过高。因此,iYUNDONG 开始探索更好的解决方案,并考虑利用像 Faiss 这样的向量索引库来节约成本,更好地指导业务。最终,iYUNDONG 选择了开源向量数据库 Milvus。


什么是 Milvus

Milvus 是一个开源的向量数据库,具有易用性、高度灵活性、可靠性和极快的速度。结合照片和语音识别、视频处理、自然语言处理等多种深度学习模型,Milvus 可以处理和分析非结构化数据,这些数据通过各种人工智能算法转换成向量。以下是 Milvus 处理所有非结构化数据的工作流程:

通过深度学习模型或其他人工智能算法将非结构化数据转换为嵌入向量。

然后将嵌入向量插入 Milvus 进行存储。Milvus 还会为这些向量建立索引。

Milvus 根据各种业务需求执行相似性搜索,并返回准确的搜索结果。

iYUNDONG Blog 1.png iYUNDONG 博客 1.png


为什么选择 Milvus

从2019年底开始,i云动使用Milvus对其图像检索系统进行了一系列测试。测试结果表明,Milvus 的性能优于其他主流向量数据库,因为它支持多索引,并能有效降低内存使用率,大幅压缩向量相似性搜索的时间线。

此外,Milvus 还定期发布新版本。在测试期间,Milvus 经历了从 v0.6.0 到 v0.10.1 的多次版本更新。

此外,凭借其活跃的开源社区和强大的开箱即用功能,Milvus 允许 iYUNDONG 在紧张的开发预算内操作。


系统和工作流程

iYUNDONG 的系统首先通过检测摄影师上传的活动照片中的人脸来提取面部特征。然后将这些面部特征转换成 128 维向量并存储到 Milvus 库中。Milvus 会为这些向量创建索引,并能即时返回高度准确的结果。

其他附加信息,如照片 ID 和显示人脸在照片中位置的坐标,则存储在第三方数据库中。

iYUNDONG 采用美团基础研发平台开发的分布式 ID 生成服务Leaf 算法,将 Milvus 中的向量 ID 与另一个数据库中存储的相应附加信息关联起来。通过将特征向量与附加信息相结合,i 云洞系统可以在用户搜索时返回相似的结果。


iYUNDONG 应用程序界面

主页上列出了一系列最新的体育赛事。点击其中一项赛事,用户就能看到全部详情。

点击相册页面上方的按钮后,用户可以上传自己的照片,获取精彩瞬间的图片。

iyundong-interface.jpg iyundong-interface.jpg


总结

本文介绍了 iYUNDONG 应用程序如何建立一个智能图像检索系统,根据用户上传的照片在分辨率、大小、清晰度、角度等方面的不同,以及其他使相似性搜索复杂化的方式,返回准确的搜索结果。在 Milvus 的帮助下,iYUNDONG App 可以在 6000 多万张图片的数据库中成功运行毫秒级查询。照片检索的准确率始终保持在 92% 以上。Milvus 使 iYUNDONG 更容易在短时间内利用有限资源创建强大的企业级图片检索系统。

阅读其他用户故事,了解更多使用 Milvus 制作的信息。

    Try Managed Milvus for Free

    Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

    Get Started

    Like the article? Spread the word

    扩展阅读