Extraindo destaques de eventos usando o aplicativo de esportes iYUNDONG
iYUNDONG é uma empresa de Internet que visa engajar mais amantes de esportes e participantes de eventos como corridas de maratona. Ela desenvolve ferramentas de inteligência artificial (IA) que podem analisar mídias capturadas durante eventos esportivos para gerar automaticamente destaques. Por exemplo, ao fazer upload de uma selfie, um usuário do App de esportes iYUNDONG que participou de um evento esportivo pode recuperar instantaneamente suas próprias fotos ou clipes de vídeo a partir de um enorme conjunto de dados de mídia do evento.
Um dos principais recursos do App iYUNDONG chama-se “Find me in motion“. Fotógrafos geralmente tiram volumes massivos de fotos ou vídeos durante um evento esportivo, como uma corrida de maratona, e fazem upload das fotos e vídeos em tempo real para o banco de dados de mídia da iYUNDONG. Corredores de maratona que desejam ver seus momentos de destaque podem recuperar imagens que os incluam simplesmente fazendo upload de uma de suas selfies. Isso lhes economiza muito tempo porque um sistema de recuperação de imagens no App iYUNDONG faz toda a correspondência de imagens. Milvus é adotado pela iYUNDONG para impulsionar esse sistema, pois o Milvus pode acelerar muito o processo de recuperação e retornar resultados altamente precisos.
Ir para:
- Dificuldades e soluções
- O que é Milvus
- Por que Milvus
- Sistema e fluxo de trabalho
- Interface do App iYUNDONG
- Conclusão
Dificuldades e soluções
A iYUNDONG enfrentou os seguintes problemas e encontrou com sucesso as soluções correspondentes ao construir seu sistema de recuperação de imagens.
- As fotos do evento devem estar imediatamente disponíveis para busca.
A iYUNDONG desenvolveu uma função chamada InstantUpload para garantir que as fotos do evento estejam disponíveis para busca imediatamente após serem carregadas.
- Armazenamento de conjuntos de dados massivos
Dados massivos, como fotos e vídeos, são carregados no backend da iYUNDONG a cada milissegundo. Portanto, a iYUNDONG decidiu migrar para sistemas de armazenamento em nuvem, incluindo AWS, S3 e Alibaba Cloud Object Storage Service (OSS), para lidar com volumes gigantescos de dados não estruturados de forma segura, rápida e confiável.
- Leitura instantânea
Para alcançar a leitura instantânea, a iYUNDONG desenvolveu seu próprio middleware de sharding para obter facilmente escalabilidade horizontal e mitigar o impacto da leitura em disco no sistema. Além disso, Redis é usado para servir como uma camada de cache para garantir desempenho consistente em situações de alta concorrência.
- Extração instantânea de características faciais
Para extrair de forma precisa e eficiente características faciais de fotos enviadas por usuários, a iYUNDONG desenvolveu um algoritmo proprietário de conversão de imagens que converte imagens em vetores de características de 128 dimensões. Outro problema encontrado foi que, muitas vezes, muitos usuários e fotógrafos faziam upload de imagens ou vídeos simultaneamente. Assim, os engenheiros de sistema precisaram levar a escalabilidade dinâmica em consideração ao implantar o sistema. Mais especificamente, a iYUNDONG aproveitou plenamente seu serviço de computação elástica (ECS) na nuvem para alcançar escalonamento dinâmico.
- Busca vetorial rápida e em larga escala
A iYUNDONG precisava de um banco de dados vetorial para armazenar seu grande número de vetores de características extraídos por modelos de IA. De acordo com seu próprio cenário exclusivo de aplicação de negócios, a iYUNDONG esperava que o banco de dados vetorial fosse capaz de:
- Realizar recuperação vetorial extremamente rápida em conjuntos de dados ultragrandes.
- Alcançar armazenamento em massa a custos mais baixos.
Inicialmente, uma média de 1 milhão de imagens era processada anualmente, então a iYUNDONG armazenava todos os seus dados para busca na RAM. No entanto, nos últimos dois anos, seu negócio prosperou e registrou um crescimento exponencial de dados não estruturados – o número de imagens no banco de dados da iYUNDONG ultrapassou 60 milhões em 2019, o que significa que havia mais de 1 bilhão de vetores de características que precisavam ser armazenados. Uma quantidade enorme de dados inevitavelmente tornou o sistema da iYUNDONG pesado e consumidor de recursos. Por isso, ela precisou investir continuamente em infraestrutura de hardware para garantir alto desempenho. Especificamente, a iYUNDONG implantou mais servidores de busca, mais RAM e uma CPU com melhor desempenho para alcançar maior eficiência e escalabilidade horizontal. No entanto, um dos defeitos dessa solução era que ela elevava os custos operacionais a níveis proibitivamente altos. Portanto, a iYUNDONG começou a explorar uma solução melhor para essa questão e considerou aproveitar bibliotecas de índice vetorial como Faiss para economizar custos e direcionar melhor seu negócio. Finalmente, a iYUNDONG escolheu o banco de dados vetorial de código aberto Milvus.
O que é Milvus
Milvus é um banco de dados vetorial de código aberto fácil de usar, altamente flexível, confiável e extremamente rápido. Combinado com vários modelos de deep learning, como reconhecimento de fotos e voz, processamento de vídeo, processamento de linguagem natural, o Milvus pode processar e analisar dados não estruturados que são convertidos em vetores usando diversos algoritmos de IA. Abaixo está o fluxo de trabalho de como o Milvus processa todos os dados não estruturados:
● Dados não estruturados são convertidos em vetores de incorporação por modelos de deep learning ou outros algoritmos de IA.
● Em seguida, os vetores de incorporação são inseridos no Milvus para armazenamento. O Milvus também cria índices para esses vetores.
● O Milvus realiza busca por similaridade e retorna resultados de busca precisos com base em diversas necessidades de negócio.
Uma visão geral do Milvus.
Por que Milvus
Desde o final de 2019, a iYUNDONG realizou uma série de testes usando o Milvus para impulsionar seu sistema de recuperação de imagens. Os resultados dos testes mostraram que o Milvus supera outros bancos de dados vetoriais convencionais, pois oferece suporte a múltiplos índices e consegue reduzir eficientemente o uso de RAM, comprimindo significativamente o tempo necessário para a busca por similaridade vetorial.
Além disso, novas versões do Milvus são lançadas regularmente. Durante o período de testes, o Milvus passou por várias atualizações de versão, de v0.6.0 a v0.10.1.
Adicionalmente, com sua comunidade ativa de código aberto e poderosos recursos prontos para uso, o Milvus permite que a iYUNDONG opere com um orçamento de desenvolvimento apertado.
Sistema e Fluxo de Trabalho
O sistema da iYUNDONG extrai características faciais detectando primeiro rostos em fotos de eventos enviadas por fotógrafos. Em seguida, essas características faciais são convertidas em vetores de 128 dimensões e armazenadas na biblioteca Milvus. O Milvus cria índices para esses vetores e pode retornar instantaneamente resultados altamente precisos.
Outras informações adicionais, como IDs de fotos e coordenadas que indicam a posição de um rosto em uma foto, são armazenadas em um banco de dados de terceiros.
Cada vetor de características tem seu ID único na biblioteca Milvus. A iYUNDONG adotou o algoritmo Leaf, um serviço distribuído de geração de IDs desenvolvido pela plataforma básica de P&D da Meituan, para associar o ID do vetor no Milvus às suas informações adicionais correspondentes armazenadas em outro banco de dados. Ao combinar o vetor de características e as informações adicionais, o sistema da iYUNDONG pode retornar resultados semelhantes após a busca do usuário.
Interface do App iYUNDONG
Uma série dos eventos esportivos mais recentes é listada na página inicial. Ao tocar em um dos eventos, os usuários podem ver todos os detalhes.
Depois de tocar no botão no topo da página da galeria de fotos, os usuários podem então enviar uma foto própria para recuperar imagens de seus melhores momentos.
Interface do app iYUNDONG.
Conclusão
Este artigo apresenta como o iYUNDONG App constrói um sistema inteligente de recuperação de imagens que pode retornar resultados de busca precisos com base em fotos enviadas pelos usuários, variando em resolução, tamanho, nitidez, ângulo e outras formas que complicam a busca por similaridade. Com a ajuda do Milvus, o iYUNDONG App consegue executar com sucesso consultas em nível de milissegundos em um banco de dados com mais de 60 milhões de imagens. E a taxa de precisão da recuperação de fotos permanece constantemente acima de 92%. O Milvus facilita para a iYUNDONG a criação de um sistema poderoso de recuperação de imagens, de nível empresarial, em pouco tempo e com recursos limitados.
Leia outras histórias de usuários para saber mais sobre como criar coisas com o Milvus.
Continue lendo

Introducing Zilliz CLI and Agent Skills for Zilliz Cloud
Manage your vector database from your terminal or AI coding agent. Zilliz CLI and Agent Skills work with Claude Code, Cursor, Codex, and Copilot.

The AWS Outage Was a Wake-Up Call for Vector Database Cross-Region Disaster Recovery
Zilliz Cloud Had the Answer Before the Crisis. Zilliz Cloud is the world's first vector database with native cross-region disaster recovery.

AI Agents Are Quietly Transforming E-Commerce — Here’s How
Discover how AI agents transform e-commerce with autonomous decision-making, enhanced product discovery, and vector search capabilities for today's retailers.



