Извлечение ярких моментов события с помощью приложения iYUNDONG Sports
iYUNDONG — это интернет-компания, цель которой — вовлечь больше любителей спорта и участников таких мероприятий, как марафонские забеги. Она создает инструменты искусственного интеллекта (AI), которые могут анализировать медиафайлы, снятые во время спортивных мероприятий, чтобы автоматически генерировать хайлайты. Например, загрузив селфи, пользователь спортивного приложения iYUNDONG, участвовавший в спортивном мероприятии, может мгновенно получить свои фотографии или видеоклипы из огромного медиадатасета мероприятия.
Одна из ключевых функций приложения iYUNDONG называется “Find me in motion“. Фотографы обычно делают огромные объемы фотографий или видео во время спортивного мероприятия, например марафонского забега, и загружают фотографии и видео в реальном времени в медиабазу данных iYUNDONG. Марафонцы, которые хотят увидеть свои яркие моменты, могут получить снимки с собой, просто загрузив одно из своих селфи. Это экономит им много времени, поскольку система поиска изображений в приложении iYUNDONG выполняет всё сопоставление изображений. Milvus используется iYUNDONG для работы этой системы, поскольку Milvus может значительно ускорить процесс поиска и возвращать высокоточные результаты.
Перейти к:
- Сложности и решения
- Что такое Milvus
- Почему Milvus
- Система и рабочий процесс
- Интерфейс приложения iYUNDONG
- Заключение
Сложности и решения
iYUNDONG столкнулась со следующими проблемами и успешно нашла соответствующие решения при создании своей системы поиска изображений.
- Фотографии с мероприятий должны быть немедленно доступны для поиска.
iYUNDONG разработала функцию под названием InstantUpload, чтобы гарантировать, что фотографии с мероприятий доступны для поиска сразу после их загрузки.
- Хранение массивных датасетов
Огромные объемы данных, такие как фотографии и видео, загружаются в backend iYUNDONG каждую миллисекунду. Поэтому iYUNDONG решила перейти на облачные системы хранения, включая AWS, S3 и Alibaba Cloud Object Storage Service (OSS), для обработки гигантских объемов неструктурированных данных безопасным, быстрым и надежным способом.
- Мгновенное чтение
Чтобы добиться мгновенного чтения, iYUNDONG разработала собственное промежуточное ПО для шардинга, чтобы легко обеспечить горизонтальную масштабируемость и снизить воздействие чтения с диска на систему. Кроме того, Redis используется в качестве слоя кэширования, чтобы обеспечить стабильную производительность в условиях высокой конкуренции запросов.
- Мгновенное извлечение черт лица
Чтобы точно и эффективно извлекать черты лица из загруженных пользователями фотографий, iYUNDONG разработала собственный алгоритм преобразования изображений, который преобразует изображения в 128-мерные векторы признаков. Еще одна возникшая проблема заключалась в том, что очень часто множество пользователей и фотографов одновременно загружали изображения или видео. Поэтому системным инженерам необходимо было учитывать динамическую масштабируемость при развертывании системы. В частности, iYUNDONG полностью использовала свой elastic compute service (ECS) в облаке для достижения динамического масштабирования.
- Быстрый и крупномасштабный векторный поиск
iYUNDONG требовалась векторная база данных для хранения большого количества векторов признаков, извлеченных AI-моделями. В соответствии со своим уникальным бизнес-сценарием применения iYUNDONG ожидала, что векторная база данных сможет:
- Выполнять молниеносный векторный поиск по сверхбольшим датасетам.
- Обеспечивать массовое хранение с меньшими затратами.
Изначально в среднем ежегодно обрабатывалось 1 миллион изображений, поэтому iYUNDONG хранила все свои данные для поиска в RAM. Однако за последние два года бизнес компании стремительно вырос и продемонстрировал экспоненциальный рост неструктурированных данных — количество изображений в базе данных iYUNDONG превысило 60 миллионов в 2019 году, что означало необходимость хранения более 1 миллиарда векторов признаков. Огромный объем данных неизбежно сделал систему iYUNDONG тяжеловесной и ресурсоемкой. Поэтому компании приходилось постоянно инвестировать в аппаратную инфраструктуру, чтобы обеспечивать высокую производительность. В частности, iYUNDONG развернула больше поисковых серверов, увеличила объем RAM и использовала более производительный CPU, чтобы добиться большей эффективности и горизонтальной масштабируемости. Однако одним из недостатков этого решения было то, что оно чрезмерно повышало операционные расходы. Поэтому iYUNDONG начала искать более эффективное решение этой проблемы и рассматривать возможность использования библиотек векторных индексов, таких как Faiss, чтобы снизить затраты и лучше управлять своим бизнесом. В итоге iYUNDONG выбрала open-source векторную базу данных Milvus.
Что такое Milvus
Milvus — это open-source векторная база данных, простая в использовании, очень гибкая, надежная и чрезвычайно быстрая. В сочетании с различными моделями глубокого обучения, такими как распознавание фото и голоса, обработка видео, обработка естественного языка, Milvus может обрабатывать и анализировать неструктурированные данные, преобразованные в векторы с помощью различных AI-алгоритмов. Ниже представлен рабочий процесс того, как Milvus обрабатывает все неструктурированные данные:
● Неструктурированные данные преобразуются в embedding-векторы с помощью моделей глубокого обучения или других AI-алгоритмов.
● Затем embedding-векторы вставляются в Milvus для хранения. Milvus также создает индексы для этих векторов.
● Milvus выполняет поиск по сходству и возвращает точные результаты поиска в соответствии с различными бизнес-потребностями.
Обзор Milvus.
Почему Milvus
С конца 2019 года iYUNDONG провела серию тестирований использования Milvus для работы своей системы поиска изображений. Результаты тестирования показали, что Milvus превосходит другие популярные векторные базы данных, поскольку поддерживает несколько индексов и может эффективно сокращать использование RAM, значительно уменьшая время, необходимое для поиска по сходству векторов.
Кроме того, новые версии Milvus выпускаются регулярно. За период тестирования Milvus прошла через несколько обновлений версий от v0.6.0 до v0.10.1.
Кроме того, благодаря активному open-source сообществу и мощным функциям, доступным из коробки, Milvus позволяет iYUNDONG работать с ограниченным бюджетом разработки.
Система и рабочий процесс
Система iYUNDONG сначала извлекает признаки лиц, обнаруживая лица на фотографиях мероприятий, загруженных фотографами. Затем эти признаки лиц преобразуются в 128-мерные векторы и сохраняются в библиотеке Milvus. Milvus создает индексы для этих векторов и может мгновенно возвращать высокоточные результаты.
Другая дополнительная информация, такая как ID фотографий и координаты, указывающие положение лица на фотографии, хранится в сторонней базе данных.
Каждый вектор признаков имеет свой уникальный ID в библиотеке Milvus. iYUNDONG использовала алгоритм Leaf, распределенный сервис генерации ID, разработанный базовой R&D-платформой Meituan, чтобы связать ID вектора в Milvus с соответствующей дополнительной информацией, хранящейся в другой базе данных. Объединяя вектор признаков и дополнительную информацию, система iYUNDONG может возвращать похожие результаты при пользовательском поиске.
Интерфейс приложения iYUNDONG
На главной странице представлен ряд последних спортивных мероприятий. Нажав на одно из мероприятий, пользователи могут увидеть полную информацию.
После нажатия кнопки в верхней части страницы фотогалереи пользователи могут загрузить собственную фотографию, чтобы найти изображения своих лучших моментов.
Интерфейс приложения iYUNDONG.
Заключение
В этой статье рассказывается, как приложение iYUNDONG создает интеллектуальную систему поиска изображений, которая может возвращать точные результаты поиска на основе загруженных пользователями фотографий, различающихся разрешением, размером, четкостью, ракурсом и другими параметрами, усложняющими поиск по сходству. С помощью Milvus приложение iYUNDONG может успешно выполнять запросы на уровне миллисекунд по базе данных из более чем 60 миллионов изображений. А точность поиска по фотографиям постоянно превышает 92%. Milvus упрощает для iYUNDONG создание мощной системы поиска изображений корпоративного уровня за короткое время и при ограниченных ресурсах.
Читайте другие истории пользователей, чтобы узнать больше о создании решений с Milvus.
Читать далее

Why I’m Against Claude Code’s Grep-Only Retrieval? It Just Burns Too Many Tokens
Learn how vector-based code retrieval cuts Claude Code token consumption by 40%. Open-source solution with easy MCP integration. Try claude-context today.

Similarity Metrics for Vector Search
Exploring five similarity metrics for vector search: L2 or Euclidean distance, cosine distance, inner product, and hamming distance.

Selecting the Right ETL Tools for Unstructured Data to Prepare for AI
Learn the right ETL tools for unstructured data to power AI. Explore key challenges, tool comparisons, and integrations with Milvus for vector search.



