Extracción de momentos destacados de eventos usando iYUNDONG Sports App
iYUNDONG es una empresa de Internet que busca involucrar a más amantes del deporte y participantes de eventos como carreras de maratón. Desarrolla herramientas de inteligencia artificial (IA) que pueden analizar medios capturados durante eventos deportivos para generar automáticamente momentos destacados. Por ejemplo, al subir una selfie, un usuario de la App deportiva iYUNDONG que participó en un evento deportivo puede recuperar instantáneamente sus propias fotos o videoclips de un conjunto masivo de datos multimedia del evento.
Una de las funciones clave de la App iYUNDONG se llama “Find me in motion“. Los fotógrafos suelen tomar enormes volúmenes de fotos o videos durante un evento deportivo como una carrera de maratón, y suben las fotos y videos en tiempo real a la base de datos multimedia de iYUNDONG. Los corredores de maratón que quieran ver sus momentos destacados pueden recuperar imágenes en las que aparezcan simplemente subiendo una de sus selfies. Esto les ahorra mucho tiempo porque un sistema de recuperación de imágenes en la App iYUNDONG realiza toda la coincidencia de imágenes. Milvus es adoptado por iYUNDONG para impulsar este sistema, ya que Milvus puede acelerar enormemente el proceso de recuperación y devolver resultados muy precisos.
Ir a:
- Dificultades y soluciones
- Qué es Milvus
- Por qué Milvus
- Sistema y flujo de trabajo
- Interfaz de la App iYUNDONG
- Conclusión
Dificultades y soluciones
iYUNDONG enfrentó los siguientes problemas y encontró con éxito las soluciones correspondientes al crear su sistema de recuperación de imágenes.
- Las fotos del evento deben estar disponibles inmediatamente para la búsqueda.
iYUNDONG desarrolló una función llamada InstantUpload para garantizar que las fotos del evento estén disponibles para la búsqueda inmediatamente después de ser subidas.
- Almacenamiento de conjuntos masivos de datos
Datos masivos como fotos y videos se suben al backend de iYUNDONG cada milisegundo. Por ello, iYUNDONG decidió migrar a sistemas de almacenamiento en la nube, incluidos AWS, S3 y Alibaba Cloud Object Storage Service (OSS), para gestionar volúmenes gigantescos de datos no estructurados de forma segura, rápida y fiable.
- Lectura instantánea
Para lograr una lectura instantánea, iYUNDONG desarrolló su propio middleware de sharding para lograr fácilmente escalabilidad horizontal y mitigar el impacto en el sistema de la lectura en disco. Además, Redis se utiliza como capa de caché para garantizar un rendimiento constante en situaciones de alta concurrencia.
- Extracción instantánea de rasgos faciales
Para extraer de forma precisa y eficiente los rasgos faciales de las fotos subidas por los usuarios, iYUNDONG desarrolló un algoritmo propietario de conversión de imágenes que convierte las imágenes en vectores de características de 128 dimensiones. Otro problema encontrado fue que, a menudo, muchos usuarios y fotógrafos subían imágenes o videos simultáneamente. Por ello, los ingenieros de sistemas necesitaban tener en cuenta la escalabilidad dinámica al desplegar el sistema. Más específicamente, iYUNDONG aprovechó plenamente su servicio de cómputo elástico (ECS) en la nube para lograr escalado dinámico.
- Búsqueda vectorial rápida y a gran escala
iYUNDONG necesitaba una base de datos vectorial para almacenar su gran cantidad de vectores de características extraídos por modelos de IA. De acuerdo con su propio escenario único de aplicación empresarial, iYUNDONG esperaba que la base de datos vectorial pudiera:
- Realizar recuperación vectorial extremadamente rápida en conjuntos de datos ultragrandes.
- Lograr almacenamiento masivo a menores costos.
Inicialmente, se procesaba una media de 1 millón de imágenes al año, por lo que iYUNDONG almacenaba todos sus datos para búsquedas en RAM. Sin embargo, en los últimos dos años, su negocio creció con fuerza y experimentó un crecimiento exponencial de datos no estructurados: el número de imágenes en la base de datos de iYUNDONG superó los 60 millones en 2019, lo que significaba que había más de 1.000 millones de vectores de características que debían almacenarse. Una cantidad enorme de datos hizo inevitablemente que el sistema de iYUNDONG fuera pesado y consumiera muchos recursos. Por ello, tuvo que invertir continuamente en instalaciones de hardware para garantizar un alto rendimiento. En concreto, iYUNDONG implementó más servidores de búsqueda, más RAM y una CPU de mejor rendimiento para lograr una mayor eficiencia y escalabilidad horizontal. Sin embargo, uno de los defectos de esta solución era que elevaba los costes operativos a niveles prohibitivos. Por lo tanto, iYUNDONG empezó a explorar una solución mejor para este problema y consideró aprovechar bibliotecas de índices vectoriales como Faiss para ahorrar costes y orientar mejor su negocio. Finalmente, iYUNDONG eligió la base de datos vectorial de código abierto Milvus.
Qué es Milvus
Milvus es una base de datos vectorial de código abierto que es fácil de usar, muy flexible, fiable y extremadamente rápida. Combinado con diversos modelos de aprendizaje profundo, como reconocimiento de fotos y voz, procesamiento de vídeo y procesamiento del lenguaje natural, Milvus puede procesar y analizar datos no estructurados que se convierten en vectores mediante diversos algoritmos de IA. A continuación se muestra el flujo de trabajo de cómo Milvus procesa todos los datos no estructurados:
● Los datos no estructurados se convierten en vectores de incrustación mediante modelos de aprendizaje profundo u otros algoritmos de IA.
● Luego, los vectores de incrustación se insertan en Milvus para su almacenamiento. Milvus también crea índices para esos vectores.
● Milvus realiza búsquedas de similitud y devuelve resultados de búsqueda precisos en función de diversas necesidades empresariales.
Una descripción general de Milvus.
Por qué Milvus
Desde finales de 2019, iYUNDONG ha llevado a cabo una serie de pruebas sobre el uso de Milvus para impulsar su sistema de recuperación de imágenes. Los resultados de las pruebas demostraron que Milvus supera a otras bases de datos vectoriales convencionales, ya que admite múltiples índices y puede reducir eficientemente el uso de RAM, comprimiendo significativamente el tiempo necesario para la búsqueda de similitud vectorial.
Además, se publican nuevas versiones de Milvus con regularidad. Durante el periodo de pruebas, Milvus pasó por múltiples actualizaciones de versión, desde v0.6.0 hasta v0.10.1.
Asimismo, gracias a su activa comunidad de código abierto y sus potentes funciones listas para usar, Milvus permite a iYUNDONG operar con un presupuesto de desarrollo ajustado.
Sistema y flujo de trabajo
El sistema de iYUNDONG extrae características faciales detectando primero rostros en fotos de eventos subidas por fotógrafos. Luego, esas características faciales se convierten en vectores de 128 dimensiones y se almacenan en la biblioteca de Milvus. Milvus crea índices para esos vectores y puede devolver instantáneamente resultados de gran precisión.
Otra información adicional, como los ID de las fotos y las coordenadas que indican la posición de un rostro en una foto, se almacena en una base de datos de terceros.
Cada vector de características tiene su ID único en la biblioteca de Milvus. iYUNDONG adoptó el algoritmo Leaf, un servicio distribuido de generación de ID desarrollado por la plataforma básica de I+D de Meituan, para asociar el ID del vector en Milvus con su correspondiente información adicional almacenada en otra base de datos. Al combinar el vector de características y la información adicional, el sistema de iYUNDONG puede devolver resultados similares tras la búsqueda del usuario.
Interfaz de la app iYUNDONG
En la página de inicio se muestra una serie de los eventos deportivos más recientes. Al tocar uno de los eventos, los usuarios pueden ver todos los detalles.
Después de tocar el botón en la parte superior de la página de la galería de fotos, los usuarios pueden subir una foto propia para recuperar imágenes de sus momentos destacados.
Interfaz de la app iYUNDONG.
Conclusión
Este artículo presenta cómo iYUNDONG App crea un sistema inteligente de recuperación de imágenes que puede devolver resultados de búsqueda precisos basados en fotos subidas por usuarios que varían en resolución, tamaño, claridad, ángulo y otros aspectos que complican la búsqueda por similitud. Con la ayuda de Milvus, iYUNDONG App puede ejecutar con éxito consultas a nivel de milisegundos en una base de datos de más de 60 millones de imágenes. Y la tasa de precisión de la recuperación de fotos se mantiene constantemente por encima del 92 %. Milvus facilita a iYUNDONG la creación de un potente sistema de recuperación de imágenes de nivel empresarial en poco tiempo y con recursos limitados.
Lee otras historias de usuarios para obtener más información sobre cómo crear cosas con Milvus.
Sigue leyendo

Build Multimodal Search for 3D Assets with Tripo and Zilliz Cloud
Generate 3D assets with Tripo, then search them by text, image, and metadata with multimodal embeddings and Zilliz Cloud.

Zilliz Cloud Launches in AWS Australia, Expanding Global Reach to Australia and Neighboring Markets
We're thrilled to announce that Zilliz Cloud is now available in the AWS Sydney, Australia region (ap-southeast-2).

Bringing AI to Legal Tech: The Role of Vector Databases in Enhancing LLM Guardrails
Discover how vector databases enhance AI reliability in legal tech, ensuring accurate, compliant, and trustworthy AI-powered legal solutions.



