Mit Overeasy können Sie Zero-Shot-Vision-Modelle verketten, um benutzerdefinierte End-to-End-Pipelines für Aufgaben wie die folgenden zu erstellen:
Begrenzungsrahmenerkennung
Einstufung
Segmentierung (bald verfügbar!)
All dies kann erreicht werden, ohne dass große Trainingsdatensätze gesammelt und mit Anmerkungen versehen werden müssen.
Overeasy macht es einfach, vorab trainierte Zero-Shot-Modelle zu kombinieren, um leistungsstarke, individuelle Computer-Vision-Lösungen zu erstellen.
Es ist so einfach wie
Pip-Installation ist ganz einfach
Informationen zur Installation von Extras finden Sie in unseren Dokumenten.
Agents
: Spezialisierte Tools, die bestimmte Bildverarbeitungsaufgaben ausführen.
Workflows
: Definieren Sie eine Abfolge von Agenten, um Bilder strukturiert zu verarbeiten.
Execution Graphs
: Verwalten und visualisieren Sie die Bildverarbeitungspipeline.
Detections
: Stellt Begrenzungsrahmen, Segmentierung und Klassifizierungen dar.
Weitere Einzelheiten zu Typen, Bibliotheksstruktur und verfügbaren Modellen finden Sie in unseren Dokumenten.
Hinweis: Wenn Sie keine lokale GPU haben, können Sie unsere Beispiele ausführen, indem Sie eine Kopie dieses Colab-Notizbuchs erstellen.
Beispielbild herunterladen
!wget https://github.com/overeasy-sh/overeasy/blob/73adbaeba51f532a7023243266da826ed1ced6ec/examples/construction.jpg?raw=true -O construction.jpg
Beispiel-Workflow zur Feststellung, ob eine Person auf einer Baustelle eine PSA trägt:
from overeasy import *from overeasy.models import OwlV2from PIL import Imageworkflow = Workflow([# Detect every head in the input imageBoundingBoxSelectAgent(classes=["person's head"], model=OwlV2()),# Wendet nicht maximale Unterdrückung zum Entfernen an überlappende BegrenzungsrahmenNMSAgent(iou_threshold=0.5, score_threshold=0),# Teilt das Eingabebild in Bilder jedes erkannten Bildes auf headSplitAgent(),# Klassifiziert die geteilten Bilder mit CLIPClassificationAgent(classes=["hard hat", "no hard hat"]),# Ordnet die zurückgegebenen Klassennamen zuClassMapAgent({"hard hat": "has ppe", "no hard hat ": "no ppe"}),# Kombiniert Ergebnisse zurück in eine BoundingBox DetectionJoinAgent() ])image = Image.open("./construction.jpg")result, graph = Workflow.execute(image)workflow.visualize(graph)
Hier ist ein Diagramm dieses Workflows. Jede Ebene im Diagramm stellt einen Schritt im Arbeitsablauf dar:
Die Bild- und Datenattribute in jedem Knoten werden zusammen verwendet, um den aktuellen Status des Workflows zu visualisieren. Durch Aufrufen der visualize
im Workflow wird eine Gradio-Instanz erzeugt, die so aussieht.
Wenn Sie Fragen haben oder Hilfe benötigen, eröffnen Sie bitte ein Problem oder wenden Sie sich an [email protected].
Lasst uns gemeinsam erstaunliche Visionsmodelle bauen?!