Overeasy vous permet d'enchaîner des modèles de vision zéro tir pour créer des pipelines personnalisés de bout en bout pour des tâches telles que :
Détection de la boîte englobante
Classification
Segmentation (à venir !)
Tout cela peut être réalisé sans avoir besoin de collecter et d’annoter de grands ensembles de données de formation.
Overeasy simplifie la combinaison de modèles Zero-Shot pré-entraînés pour créer de puissantes solutions de vision par ordinateur personnalisées.
C'est aussi simple que
pip installer trop facile
Pour installer des extras, reportez-vous à notre documentation.
Agents
: outils spécialisés qui effectuent des tâches de traitement d'image spécifiques.
Workflows
: Définir une séquence d'Agents pour traiter les images de manière structurée.
Execution Graphs
: gérez et visualisez le pipeline de traitement d'image.
Detections
: représentent les cadres de délimitation, la segmentation et les classifications.
Pour plus de détails sur les types, la structure de la bibliothèque et les modèles disponibles, veuillez consulter notre documentation.
Remarque : Si vous ne disposez pas de GPU local, vous pouvez exécuter nos exemples en faisant une copie de ce notebook Colab.
Télécharger l'image d'exemple
!wget https://github.com/overeasy-sh/overeasy/blob/73adbaeba51f532a7023243266da826ed1ced6ec/examples/construction.jpg?raw=true -O construction.jpg
Exemple de flux de travail pour identifier si une personne porte un EPI sur un chantier :
from overeasy import *from overeasy.models import OwlV2from PIL import Imageworkflow = Workflow([# Détecter chaque tête dans l'entrée imageBoundingBoxSelectAgent(classes=["person's head"], model=OwlV2()),# Applique une suppression non maximale pour supprimer cadres de délimitation superposésNMSAgent(iou_threshold=0.5, score_threshold=0),# Divise l'image d'entrée en images de chaque headSplitAgent(),# Classifie les images fractionnées à l'aide de CLIPClassificationAgent(classes=["hard hat", "no hard hat"]),# Mappe les noms de classe renvoyésClassMapAgent({"hard hat": "has ppe", "no hard hat" hat": "no ppe"}),# Combine les résultats dans un BoundingBox DetectionJoinAgent() ])image = Image.open("./construction.jpg")résultat, graph = workflow.execute(image)workflow.visualize(graph)
Voici un schéma de ce flux de travail. Chaque couche du graphique représente une étape du flux de travail :
Les attributs d'image et de données de chaque nœud sont utilisés ensemble pour visualiser l'état actuel du flux de travail. L'appel de la fonction visualize
sur le workflow générera une instance Gradio qui ressemble à ceci.
Si vous avez des questions ou avez besoin d'aide, veuillez ouvrir un problème ou nous contacter à [email protected].
Construisons ensemble des modèles de vision étonnants ?!