FiftyOne and Zilliz Cloud Integration
FiftyOne and Zilliz Cloud integrate to power vision searches on computer vision datasets, combining FiftyOne's open-source toolkit for dataset curation and model evaluation with Zilliz Cloud's high-performance vector database for efficient visual similarity search, cross-modal retrieval, and multimodal embedding exploration.
Utilisez cette intégration gratuitementQu’est-ce que FiftyOne
FiftyOne est un outil open source permettant de créer des jeux de données et des modèles de vision par ordinateur de haute qualité. Il permet aux équipes de science des données d’améliorer les modèles de vision par ordinateur grâce à la curation de jeux de données, l’évaluation des modèles, l’identification des erreurs, la visualisation des embeddings et les workflows de production. Grâce à son intégration native avec les moteurs de recherche vectorielle, FiftyOne permet aux utilisateurs d’exploiter facilement la recherche par similarité pour une exploration efficace des données visuelles avec une seule ligne de code.
En s’intégrant à Zilliz Cloud (Milvus entièrement géré), FiftyOne accède à une base de données vectorielle évolutive pour stocker et rechercher des embeddings d’images, permettant une recherche efficace par similarité visuelle, une récupération intermodale (recherche texte-vers-image), une recherche d’objets spécifiques dans les images et l’exploration d’embeddings multimodaux sur des jeux de données de vision par ordinateur à grande échelle.
Avantages de l’intégration FiftyOne + Zilliz Cloud
- Recherche de similarité en une seule ligne : L’intégration Milvus native de FiftyOne vous permet de calculer des indices de similarité et d’interroger des jeux de données avec
backend="milvus"— une seule ligne de code suffit pour exploiter les capacités de recherche vectorielle de Zilliz Cloud. - Recherche intermodale : L’intégration prend en charge la recherche texte-image, permettant aux utilisateurs de trouver des images à l’aide de requêtes en langage naturel alimentées par des modèles comme CLIP, avec des embeddings stockés et recherchés dans Zilliz Cloud.
- Recherche spécifique aux objets : Au-delà de la similarité sur l’image entière, les utilisateurs peuvent rechercher des objets spécifiques dans les images (personnes, animaux, véhicules) à l’aide d’embeddings au niveau des patches stockés dans Zilliz Cloud.
- Authentification et configuration flexibles : L’intégration prend en charge plusieurs méthodes d’authentification — variables d’environnement, fichiers de configuration brain ou arguments nommés — pour se connecter à des serveurs Milvus ou à Zilliz Cloud.
- Exploration visuelle des données : L’application interactive de FiftyOne fournit une recherche de similarité par pointer-cliquer ainsi qu’un accès programmatique en Python, tous deux adossés à la récupération vectorielle rapide de Zilliz Cloud.
- Recherche de similarité en une seule ligne : L’intégration Milvus native de FiftyOne vous permet de calculer des indices de similarité et d’interroger des jeux de données avec
Fonctionnement de l’intégration
FiftyOne sert d’interface de vision par ordinateur et de couche de gestion des jeux de données, fournissant des outils pour charger des jeux de données, calculer des embeddings à l’aide de modèles comme CLIP, gérer des index de similarité (brain runs) et visualiser les résultats de recherche via son App interactive et son API Python.
Zilliz Cloud sert de backend de base de données vectorielle, stockant et indexant les embeddings d’images et de patchs calculés par FiftyOne. Il fournit une recherche de similarité haute performance utilisant des métriques comme le produit scalaire ou la distance euclidienne, permettant une récupération rapide des images les plus similaires à partir de grands jeux de données.
Ensemble, FiftyOne et Zilliz Cloud créent une solution complète de recherche visuelle : les images sont chargées dans FiftyOne, les embeddings sont calculés à l’aide d’un modèle choisi, et un index de similarité Milvus est créé dans Zilliz Cloud via
compute_similarity(). Les utilisateurs peuvent ensuite interroger leurs données à l’aide desort_by_similarity()pour trouver des images similaires par ID d’échantillon, invites textuelles ou vecteurs d’embedding — le tout avec Zilliz Cloud qui gère le stockage vectoriel et la recherche à grande échelle.Guide étape par étape
1. Installer les packages requis
python3 -m pip install pymilvus fiftyone torch torchvision2. Charger un jeu de données dans FiftyOne et calculer les embeddings
Chargez l’ensemble d’images d’exemple fourni par FiftyOne, calculez les embeddings et créez un index de similarité Milvus :
import fiftyone as fo import fiftyone.brain as fob import fiftyone.zoo as foz # Step 1: Load your data into FiftyOne dataset = foz.load_zoo_dataset("quickstart") # Steps 2 and 3: Compute embeddings and create a similarity index milvus_index = fob.compute_similarity( dataset, brain_key="milvus_index", backend="milvus", )3. Effectuer des recherches de similarité visuelle
Utilisez l’index de similarité Milvus pour effectuer des recherches de similarité visuelle sur votre jeu de données :
# Step 4: Query your data query = dataset.first().id # query by sample ID view = dataset.sort_by_similarity( query, brain_key="milvus_index", k=10, # limit to 10 most similar samples ) # Step 5 (optional): Cleanup # Delete the Milvus collection milvus_index.cleanup() # Delete run record from FiftyOne dataset.delete_brain_run("milvus_index")4. Configurer le backend Milvus
Définissez le backend Milvus de manière permanente via une variable d’environnement :
export FIFTYONE_BRAIN_DEFAULT_SIMILARITY_BACKEND=milvusOu configurez-le via la configuration brain dans
~/.fiftyone/brain_config.json:{ "default_similarity_backend": "milvus" }5. Authentification pour un serveur Milvus personnalisé ou Zilliz Cloud
Configurez les identifiants via des variables d’environnement (recommandé) :
export FIFTYONE_BRAIN_SIMILARITY_MILVUS_URI=XXXXXX export FIFTYONE_BRAIN_SIMILARITY_MILVUS_USER=XXXXXX export FIFTYONE_BRAIN_SIMILARITY_MILVUS_PASSWORD=XXXXXX export FIFTYONE_BRAIN_SIMILARITY_MILVUS_TOKEN=XXXXXXOu transmettez les identifiants directement comme arguments nommés :
milvus_index = fob.compute_similarity( ... backend="milvus", brain_key="milvus_index", uri="XXXXXX", token="XXXXXX", collection_name="your_collection", metric="dotproduct", )6. Gérer les exécutions Brain
Répertoriez, inspectez, renommez ou supprimez les exécutions brain :
# List all brain runs dataset.list_brain_runs() # Only list similarity runs dataset.list_brain_runs(type=fob.Similarity) # Get brain run info info = dataset.get_brain_info("milvus_index") print(info) # Delete brain run and Milvus collection milvus_index = dataset.load_brain_results("milvus_index") milvus_index.cleanup() dataset.delete_brain_run("milvus_index")En savoir plus
- Effectuer des recherches visuelles avec Milvus et FiftyOne — Tutoriel officiel de Milvus pour les recherches visuelles avec FiftyOne
- Explorer les embeddings multimodaux avec FiftyOne et Milvus — Blog de Zilliz sur les embeddings multimodaux avec FiftyOne
- Construire de meilleurs pipelines RAG multimodaux avec FiftyOne, LlamaIndex et Milvus — Blog de Zilliz sur les pipelines RAG multimodaux
- Utiliser la recherche vectorielle pour mieux comprendre les données de vision par ordinateur — Blog de Zilliz sur la recherche vectorielle pour les données de vision par ordinateur
- Documentation de l’intégration FiftyOne Milvus — Documentation officielle de FiftyOne pour l’intégration de Milvus


