Extração de destaques de eventos utilizando a aplicação iYUNDONG Sports
A iYUNDONG é uma empresa da Internet que pretende envolver mais amantes do desporto e participantes em eventos como corridas de maratona. Constrói ferramentas de inteligência artificial (IA) que podem analisar os meios de comunicação captados durante eventos desportivos para gerar automaticamente os destaques. Por exemplo, ao carregar uma selfie, um utilizador da aplicação desportiva iYUNDONG que tenha participado num evento desportivo pode recuperar instantaneamente as suas próprias fotografias ou clips de vídeo a partir de um enorme conjunto de dados dos meios de comunicação social do evento.
Uma das principais caraterísticas da aplicação iYUNDONG chama-se "Encontrar-me em movimento". Normalmente, os fotógrafos tiram grandes quantidades de fotografias ou vídeos durante um evento desportivo, como uma maratona, e carregam as fotografias e os vídeos em tempo real para a base de dados de meios de comunicação iYUNDONG. Os corredores de maratona que queiram ver os seus momentos mais marcantes podem recuperar fotografias que incluam eles próprios, bastando para isso carregar uma das suas selfies. Isto poupa-lhes muito tempo porque um sistema de recuperação de imagens na aplicação iYUNDONG faz toda a correspondência de imagens. O Milvus foi adotado pela iYUNDONG para alimentar este sistema, uma vez que o Milvus pode acelerar consideravelmente o processo de recuperação e apresentar resultados altamente precisos.
Ir para:
Dificuldades e soluções
A iYUNDONG enfrentou os seguintes problemas e encontrou com sucesso as soluções correspondentes ao criar o seu sistema de recuperação de imagens.
- As fotografias de eventos devem estar imediatamente disponíveis para pesquisa.
A iYUNDONG desenvolveu uma função chamada InstantUpload para garantir que as fotografias de eventos estejam disponíveis para pesquisa imediatamente após serem carregadas.
- Armazenamento de conjuntos de dados maciços
Dados enormes, como fotos e vídeos, são carregados no backend da iYUNDONG a cada milésimo de segundo. Por isso, a iYUNDONG decidiu migrar para sistemas de armazenamento na nuvem, incluindo AWS, S3 e Alibaba Cloud Object Storage Service (OSS), para tratar volumes gigantescos de dados não estruturados de forma segura, rápida e fiável.
- Leitura instantânea
Para conseguir uma leitura instantânea, a iYUNDONG desenvolveu o seu próprio middleware de fragmentação para conseguir facilmente uma escalabilidade horizontal e reduzir o impacto da leitura em disco no sistema. Além disso, o Redis é utilizado como camada de cache para garantir um desempenho consistente em situações de elevada concorrência.
- Extração instantânea de caraterísticas faciais
Para extrair com precisão e eficácia as caraterísticas faciais das fotografias carregadas pelos utilizadores, a iYUNDONG desenvolveu um algoritmo próprio de conversão de imagens que as converte em vectores de caraterísticas de 128 dimensões. Outro problema encontrado foi o facto de, muitas vezes, muitos utilizadores e fotógrafos carregarem imagens ou vídeos em simultâneo. Por isso, os engenheiros de sistemas precisavam de ter em consideração a escalabilidade dinâmica quando implementavam o sistema. Mais especificamente, a iYUNDONG aproveitou totalmente o seu serviço de computação elástica (ECS) na nuvem para conseguir um escalonamento dinâmico.
- Pesquisa vetorial rápida e em grande escala
A iYUNDONG precisava de uma base de dados de vectores para armazenar o seu grande número de vectores de caraterísticas extraídos por modelos de IA. De acordo com o seu próprio cenário de aplicação empresarial único, a iYUNDONG esperava que a base de dados de vectores fosse capaz de:
- Realizar uma recuperação de vectores extremamente rápida em conjuntos de dados ultra grandes.
- Conseguir armazenamento em massa a custos mais baixos.
Inicialmente, era processada uma média de 1 milhão de imagens por ano, pelo que a iYUNDONG armazenava todos os seus dados para pesquisa na RAM. No entanto, nos últimos dois anos, o seu negócio cresceu e assistiu a um crescimento exponencial de dados não estruturados - o número de imagens na base de dados da iYUNDONG excedeu 60 milhões em 2019, o que significa que havia mais de mil milhões de vectores de caraterísticas que precisavam de ser armazenados. Uma enorme quantidade de dados tornou inevitavelmente o sistema iYUNDONG pesado e consumidor de recursos. Por isso, teve de investir continuamente em instalações de hardware para garantir um elevado desempenho. Especificamente, o iYUNDONG implementou mais servidores de pesquisa, maior memória RAM e uma CPU com melhor desempenho para alcançar maior eficiência e escalabilidade horizontal. No entanto, uma das desvantagens desta solução era o facto de os custos de funcionamento serem proibitivamente elevados. Por conseguinte, a iYUNDONG começou a explorar uma solução melhor para este problema e ponderou a possibilidade de utilizar bibliotecas de índices vectoriais como a Faiss para poupar custos e orientar melhor a sua atividade. Finalmente, a iYUNDONG escolheu a base de dados vetorial de código aberto Milvus.
O que é o Milvus
O Milvus é uma base de dados vetorial de código aberto fácil de utilizar, altamente flexível, fiável e extremamente rápida. Combinado com vários modelos de aprendizagem profunda, como o reconhecimento de fotografias e voz, o processamento de vídeo e o processamento de linguagem natural, o Milvus pode processar e analisar dados não estruturados que são convertidos em vectores através da utilização de vários algoritmos de IA. Abaixo está o fluxo de trabalho de como o Milvus processa todos os dados não estruturados:
Os dados não estruturados são convertidos em vetores de incorporação por modelos de aprendizagem profunda 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 pesquisas por semelhança e apresenta resultados de pesquisa precisos com base em várias necessidades comerciais.
Blogue iYUNDONG 1.png
Porquê Milvus
Desde o final de 2019, a iYUNDONG realizou uma série de testes sobre a utilização do Milvus para alimentar o seu sistema de recuperação de imagens. Os resultados dos testes mostraram que o Milvus supera outros bancos de dados vetoriais convencionais, pois suporta vários índices e pode reduzir eficientemente o uso de RAM, comprimindo significativamente a linha do tempo para a pesquisa de similaridade vetorial.
Além disso, são lançadas regularmente novas versões do Milvus. Durante o período de testes, o Milvus passou por várias actualizações de versão, da v0.6.0 à v0.10.1.
Além disso, com a sua comunidade de código aberto ativa e as suas poderosas funcionalidades prontas a utilizar, o Milvus permite à iYUNDONG funcionar com um orçamento de desenvolvimento reduzido.
Sistema e fluxo de trabalho
O sistema da iYUNDONG extrai as caraterísticas faciais detectando primeiro os rostos nas fotografias de eventos carregadas pelos fotógrafos. Em seguida, essas caraterísticas faciais são convertidas em vectores de 128 dimensões e armazenadas na biblioteca Milvus. O Milvus cria índices para esses vectores e pode apresentar instantaneamente resultados altamente precisos.
Outras informações adicionais, como IDs de fotografias e coordenadas que indicam a posição de um rosto numa fotografia, são armazenadas numa base de dados de terceiros.
Cada vetor de caraterísticas tem o seu ID único na biblioteca Milvus. A iYUNDONG adoptou o algoritmo Leaf, um serviço de geração de ID distribuído desenvolvido pela plataforma básica de I&D da Meituan, para associar o ID do vetor no Milvus à informação adicional correspondente armazenada noutra base de dados. Combinando o vetor de caraterísticas e a informação adicional, o sistema iYUNDONG pode apresentar resultados semelhantes na pesquisa do utilizador.
Interface da aplicação iYUNDONG
A página inicial apresenta uma série de eventos desportivos recentes. Ao tocar num dos eventos, os utilizadores podem ver todos os pormenores.
Depois de tocar no botão na parte superior da página da galeria de fotografias, os utilizadores podem carregar uma fotografia sua para obter imagens dos seus destaques.
iyundong-interface.jpg
Conclusão
Este artigo apresenta a forma como a aplicação iYUNDONG cria um sistema inteligente de recuperação de imagens que pode fornecer resultados de pesquisa precisos com base nas fotografias carregadas pelo utilizador, que variam em termos de resolução, tamanho, nitidez, ângulo e outras formas que complicam a pesquisa de semelhanças. Com a ajuda do Milvus, a aplicação iYUNDONG pode executar com êxito pesquisas ao nível dos milissegundos numa base de dados de mais de 60 milhões de imagens. E a taxa de precisão da recuperação de fotos é constantemente superior a 92%. Milvus facilita à iYUNDONG a criação de um sistema de recuperação de imagens poderoso e de nível empresarial num curto espaço de tempo e com recursos limitados.
Leia outras histórias de utilizadores para saber mais sobre como fazer coisas com Milvus.
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word