Extraction des moments forts d’événements avec l’application sportive iYUNDONG
iYUNDONG est une entreprise Internet visant à impliquer davantage d’amateurs de sport et de participants à des événements tels que les marathons. Elle crée des outils d’intelligence artificielle (IA) capables d’analyser les médias capturés lors d’événements sportifs afin de générer automatiquement des moments forts. Par exemple, en téléversant un selfie, un utilisateur de l’App sportive iYUNDONG ayant participé à un événement sportif peut récupérer instantanément ses propres photos ou clips vidéo à partir d’un immense ensemble de données multimédias de l’événement.
L’une des fonctionnalités clés de l’App iYUNDONG s’appelle « Find me in motion ». Les photographes prennent généralement d’énormes volumes de photos ou de vidéos lors d’un événement sportif tel qu’un marathon, et téléversent les photos et les vidéos en temps réel dans la base de données multimédia d’iYUNDONG. Les coureurs de marathon qui souhaitent voir leurs moments forts peuvent récupérer des images les incluant simplement en téléversant l’un de leurs selfies. Cela leur fait gagner beaucoup de temps, car un système de recherche d’images dans l’App iYUNDONG effectue toute la correspondance d’images. Milvus est adopté par iYUNDONG pour alimenter ce système, car Milvus peut considérablement accélérer le processus de recherche et renvoyer des résultats très précis.
Aller à :
- Difficultés et solutions
- Qu’est-ce que Milvus
- Pourquoi Milvus
- Système et flux de travail
- Interface de l’App iYUNDONG
- Conclusion
Difficultés et solutions
iYUNDONG a rencontré les problèmes suivants et a trouvé avec succès les solutions correspondantes lors de la création de son système de recherche d’images.
- Les photos d’événements doivent être immédiatement disponibles pour la recherche.
iYUNDONG a développé une fonction appelée InstantUpload pour garantir que les photos d’événements soient disponibles pour la recherche immédiatement après leur téléversement.
- Stockage d’ensembles de données massifs
Des données massives telles que des photos et des vidéos sont téléversées vers le backend d’iYUNDONG à chaque milliseconde. iYUNDONG a donc décidé de migrer vers des systèmes de stockage cloud, notamment AWS, S3 et Alibaba Cloud Object Storage Service (OSS), afin de gérer des volumes gigantesques de données non structurées de manière sécurisée, rapide et fiable.
- Lecture instantanée
Afin de permettre une lecture instantanée, iYUNDONG a développé son propre middleware de partitionnement afin d’atteindre facilement une évolutivité horizontale et d’atténuer l’impact de la lecture sur disque sur le système. De plus, Redis est utilisé comme couche de cache pour garantir des performances constantes dans les situations de forte concurrence.
- Extraction instantanée des caractéristiques faciales
Afin d’extraire avec précision et efficacité les caractéristiques faciales des photos téléversées par les utilisateurs, iYUNDONG a développé un algorithme propriétaire de conversion d’images qui convertit les images en vecteurs de caractéristiques à 128 dimensions. Un autre problème rencontré était que, très souvent, de nombreux utilisateurs et photographes téléversaient simultanément des images ou des vidéos. Les ingénieurs système devaient donc prendre en compte l’évolutivité dynamique lors du déploiement du système. Plus précisément, iYUNDONG a pleinement exploité son service de calcul élastique (ECS) sur le cloud pour parvenir à une mise à l’échelle dynamique.
- Recherche vectorielle rapide et à grande échelle
iYUNDONG avait besoin d’une base de données vectorielle pour stocker le grand nombre de vecteurs de caractéristiques extraits par les modèles d’IA. Selon son propre scénario d’application métier unique, iYUNDONG s’attendait à ce que la base de données vectorielle puisse :
- Effectuer une recherche vectorielle ultra-rapide sur des ensembles de données ultra-volumineux.
- Permettre un stockage massif à moindre coût.
Initialement, une moyenne de 1 million d’images était traitée chaque année, donc iYUNDONG stockait toutes ses données de recherche dans la RAM. Cependant, au cours des deux dernières années, son activité a explosé et connu une croissance exponentielle des données non structurées : le nombre d’images dans la base de données d’iYUNDONG a dépassé 60 millions en 2019, ce qui signifie que plus de 1 milliard de vecteurs de caractéristiques devaient être stockés. Une quantité considérable de données a inévitablement rendu le système iYUNDONG lourd et gourmand en ressources. Il a donc dû investir continuellement dans des infrastructures matérielles afin de garantir des performances élevées. Plus précisément, iYUNDONG a déployé davantage de serveurs de recherche, une RAM plus importante et un CPU plus performant afin d’atteindre une meilleure efficacité et une meilleure évolutivité horizontale. Cependant, l’un des défauts de cette solution était qu’elle faisait grimper les coûts d’exploitation à un niveau prohibitif. Par conséquent, iYUNDONG a commencé à explorer une meilleure solution à ce problème et a envisagé d’exploiter des bibliothèques d’indexation vectorielle comme Faiss afin de réduire les coûts et de mieux piloter son activité. Finalement, iYUNDONG a choisi la base de données vectorielle open-source Milvus.
Qu’est-ce que Milvus
Milvus est une base de données vectorielle open-source facile à utiliser, hautement flexible, fiable et extrêmement rapide. Combiné à divers modèles de deep learning tels que la reconnaissance photo et vocale, le traitement vidéo et le traitement du langage naturel, Milvus peut traiter et analyser des données non structurées converties en vecteurs à l’aide de divers algorithmes d’IA. Voici le flux de travail montrant comment Milvus traite toutes les données non structurées :
● Les données non structurées sont converties en vecteurs d’embedding par des modèles de deep learning ou d’autres algorithmes d’IA.
● Ensuite, les vecteurs d’embedding sont insérés dans Milvus pour y être stockés. Milvus crée également des index pour ces vecteurs.
● Milvus effectue une recherche de similarité et renvoie des résultats de recherche précis en fonction de divers besoins métier.
Un aperçu de Milvus.
Pourquoi Milvus
Depuis la fin de 2019, iYUNDONG a mené une série de tests sur l’utilisation de Milvus pour alimenter son système de recherche d’images. Les résultats des tests ont montré que Milvus surpasse les autres bases de données vectorielles grand public, car il prend en charge plusieurs index et peut réduire efficacement l’utilisation de la RAM, raccourcissant considérablement le délai de recherche de similarité vectorielle.
De plus, de nouvelles versions de Milvus sont publiées régulièrement. Au cours de la période de test, Milvus a connu plusieurs mises à jour de version, de v0.6.0 à v0.10.1.
En outre, grâce à sa communauté open-source active et à ses puissantes fonctionnalités prêtes à l’emploi, Milvus permet à iYUNDONG de fonctionner avec un budget de développement restreint.
Système et flux de travail
Le système d’iYUNDONG extrait d’abord les caractéristiques faciales en détectant les visages dans les photos d’événements téléversées par les photographes. Ces caractéristiques faciales sont ensuite converties en vecteurs à 128 dimensions et stockées dans la bibliothèque Milvus. Milvus crée des index pour ces vecteurs et peut renvoyer instantanément des résultats très précis.
D’autres informations supplémentaires, telles que les identifiants des photos et les coordonnées indiquant la position d’un visage dans une photo, sont stockées dans une base de données tierce.
Chaque vecteur de caractéristiques possède son identifiant unique dans la bibliothèque Milvus. iYUNDONG a adopté l’algorithme Leaf, un service de génération d’identifiants distribués développé par la plateforme de R&D de base de Meituan, afin d’associer l’identifiant du vecteur dans Milvus aux informations supplémentaires correspondantes stockées dans une autre base de données. En combinant le vecteur de caractéristiques et les informations supplémentaires, le système iYUNDONG peut renvoyer des résultats similaires lors d’une recherche utilisateur.
Interface de l’application iYUNDONG
Une série des événements sportifs les plus récents est affichée sur la page d’accueil. En appuyant sur l’un des événements, les utilisateurs peuvent en consulter tous les détails.
Après avoir appuyé sur le bouton en haut de la page de la galerie photo, les utilisateurs peuvent ensuite téléverser une photo personnelle afin de retrouver des images de leurs moments forts.
Interface de l’application iYUNDONG.
Conclusion
Cet article présente la manière dont l’application iYUNDONG construit un système intelligent de recherche d’images capable de renvoyer des résultats de recherche précis à partir de photos téléversées par les utilisateurs, qui varient en résolution, taille, netteté, angle et selon d’autres paramètres compliquant la recherche de similarité. Grâce à Milvus, l’application iYUNDONG peut exécuter avec succès des requêtes de l’ordre de la milliseconde sur une base de données de plus de 60 millions d’images. Et le taux de précision de la recherche de photos reste constamment supérieur à 92 %. Milvus permet à iYUNDONG de créer plus facilement, en peu de temps et avec des ressources limitées, un puissant système de recherche d’images de niveau entreprise.
Lisez d’autres témoignages d’utilisateurs pour en savoir plus sur la création de solutions avec Milvus.
Continuer à lire

Introducing Zilliz MCP Server: Natural Language Access to Your Vector Database
Developers can easily manage and query vector databases with natural language via Zilliz MCP Server in AI-native environments.

VidTok: Rethinking Video Processing with Compact Tokenization
VidTok tokenizes videos to reduce redundancy while preserving spatial and temporal details for efficient processing.

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.



