Lernen Sie, wie Sie mit dem Python-Paket Ultralytics Daten aus Computer-Vision-Anwendungen in leicht verständliche Grafiken umwandeln können, um bessere Einblicke zu erhalten.
.webp)
Lernen Sie, wie Sie mit dem Python-Paket Ultralytics Daten aus Computer-Vision-Anwendungen in leicht verständliche Grafiken umwandeln können, um bessere Einblicke zu erhalten.
Jede Minute werden riesige Datenmengen erzeugt, von Flughafenterminals und Bahnhöfen bis hin zu Einkaufszentren. Mit der zunehmenden Verbreitung von KI werden viele dieser Daten nun analysiert und aufgeschlüsselt. Doch manchmal machen es die Ergebnisse dieser KI-Modelle schwer, Muster zu erkennen oder Trends auf einen Blick zu verstehen. Hier hilft die Datenvisualisierung - sie verwandelt komplexe Ergebnisse in klare, leicht verdauliche Erkenntnisse.
Dies gilt insbesondere für Anwendungen der Computer Vision. Computer Vision ist ein Zweig der künstlichen Intelligenz (KI), der Maschinen hilft, visuelle Informationen aus der Umgebung, wie Bilder und Videos, zu interpretieren und zu verstehen. Während Vision-KI-Modelle wie Ultralytics YOLO11 bei der Analyse solcher visuellen Daten helfen können, um Informationen zu gewinnen, hilft die Datenvisualisierung dabei, diese Informationen in ein leicht verständliches Format zu bringen.
Einfach ausgedrückt: Datenvisualisierung überbrückt die Kluft zwischen Rohdaten und echtem Verständnis durch aussagekräftige analytische Diagramme. In der heutigen datengesteuerten Welt ist dies von entscheidender Bedeutung, denn es reicht nicht aus, dass Maschinen nur Aufgaben ausführen - sie müssen auch eine Geschichte erzählen.
Genau aus diesem Grund ist die Datenvisualisierung auf dem Vormarsch, und der Markt wird bis 2030 ein Volumen von 18,36 Milliarden US-Dollar erreichen. Zuvor haben wir uns damit beschäftigt, wie Computer Vision wertvolle Geschäftseinblicke liefern kann. Heute gehen wir noch einen Schritt weiter und zeigen Ihnen, wie Sie mit dem Ultralytics-Paket klare, aufschlussreiche Analysegrafiken für Computer-Vision-Anwendungen erstellen können. Fangen wir an!
Bei der Datenvisualisierung in Bildverarbeitungsanwendungen werden die Ergebnisse von Bildverarbeitungsaufgaben, wie z. B. Objekterkennung und -verfolgung, in leicht verständliche Diagramme oder Dashboards umgewandelt. Diese visuellen Darstellungen helfen, Muster und Trends zu erkennen, insbesondere bei der Arbeit mit großen Mengen an Videomaterial.
Anstatt stundenlange Überwachungsvideos manuell auszuwerten, kann beispielsweise ein einfaches Liniendiagramm, das die Anzahl der erkannten Autos oder Personen im Zeitverlauf darstellt, schnell Spitzenzeiten oder ungewöhnlich ruhige Zeiten aufzeigen.
Hier sind einige wichtige Gründe, warum Datenvisualisierung nützlich ist:
Verschiedene Arten von Analysediagrammen können die Ergebnisse der Computer Vision in klare, leicht verständliche Grafiken verwandeln. Nehmen wir an, Sie arbeiten an einer Bildverarbeitungsanwendung, die Personen und Fahrzeuge in Überwachungsbildern erkennt. In diesem Fall eignet sich ein Liniendiagramm hervorragend, um zu zeigen, wie sich die Anzahl der Erkennungen im Laufe der Zeit ändert, z. B. um Spitzen im Fußgängerverkehr im Laufe des Tages zu verfolgen.
Ebenso sind Balkendiagramme hilfreich, wenn Sie die Anzahl der verschiedenen erkannten Objekttypen vergleichen möchten, z. B. um zu sehen, ob mehr Autos, Fahrräder oder Fußgänger im Video vorkommen. Kuchendiagramme hingegen zeigen, welchen Anteil die einzelnen Objekttypen an der Gesamtzahl der Erkennungen haben. Jedes Diagramm hat seinen eigenen Nutzen und trägt dazu bei, dass komplexe Bildverarbeitungsdaten einfacher zu interpretieren und weiterzugeben sind.
Nachdem wir nun untersucht haben, was Datenvisualisierung ist und warum verschiedene Arten von analytischen Diagrammen wichtig sind, wollen wir uns genauer ansehen, wie Sie die Ultralytics Analytics-Lösung zur Visualisierung der Ergebnisse Ihrer Computer-Vision-Modellvorhersagen verwenden können. Bevor wir den Prozess Schritt für Schritt durchgehen, werfen wir einen Blick auf die Tools und Einrichtungsoptionen für das Training und die Verwendung des Ultralytics-Pakets und Modelle wie YOLO11.
Das Ultralytics Python-Paket erleichtert das Trainieren von Modellen, die Erkennung von Objekten, die Durchführung von Vorhersagen und die Visualisierung der Ergebnisse. Um damit zu beginnen, benötigen Sie eine Programmierumgebung. Hier sind drei einfache Optionen:
Diese Tools eignen sich hervorragend für den schnellen Einstieg, aber Benutzer können Ultralytics auch in integrierte Entwicklungsumgebungen (IDEs) wie Visual Studio Code (VS Code) oder in Produktionspipelines integrieren. Weitere Optionen finden Sie in der offiziellen Ultralytics-Dokumentation.
Wenn Sie Ihre bevorzugte Umgebung ausgewählt haben, müssen Sie sie für die Durchführung von Vorhersagen und die Visualisierung der Ergebnisse einrichten. Sie können jede der oben genannten Umgebungen verwenden, je nachdem, womit Sie sich am wohlsten fühlen.
Wenn Sie in Google Colab arbeiten, denken Sie daran, dass es standardmäßig eine CPU verwendet, was die Leistung verlangsamen kann. Um die Dinge zu beschleunigen, wechseln Sie zu einem Grafikprozessor, indem Sie im Menü "Laufzeit" die Option "Laufzeittyp ändern" wählen und den Hardware-Beschleuniger auf Grafikprozessor (idealerweise einen T4) einstellen.
Um Ihre Umgebung vorzubereiten, müssen Sie das Ultralytics-Python-Paket mit dem unten genannten Befehl installieren. In notebookbasierten Tools wie Colab oder Jupyter müssen Sie dem Befehl ein Ausrufezeichen (!) voranstellen.
pip install ultralytics
Als Nächstes brauchen wir ein Video, mit dem wir arbeiten können. Sie können es einfach von einer kostenlosen Website wie Pexels herunterladen. Achten Sie darauf, ein Video zu wählen, das Objekte enthält, die YOLO11 erkennen kann. Da das Modell mit dem COCO-Datensatz trainiert wurde, kann es gängige Objekte wie Menschen, Autos und Fahrräder erkennen.
Für dieses Tutorial verwenden wir ein Video über die Gepäckabfertigung in einem geschäftigen Flughafenterminal. Sie können das gleiche Video verwenden oder ein anderes, das zu Ihrem Projekt passt, auswählen.
Als Nächstes können wir die erforderlichen Bibliotheken importieren und das Eingangsvideo laden.
Wir beginnen mit dem Import von OpenCV (cv2), einer weit verbreiteten Bibliothek für die Arbeit mit Bildern und Videos in der Computer Vision. Außerdem importieren wir die Ultralytics-Bibliothek, die uns bei der Objekterkennung und der Erstellung von Analysen aus dem Video hilft.
Dann versuchen wir, die Videodatei zu öffnen, indem wir ihren Pfad angeben. Achten Sie darauf, "path/to/video.mp4" durch den tatsächlichen Speicherort Ihrer heruntergeladenen Videodatei zu ersetzen.
Der unten stehende Codeausschnitt enthält außerdem eine einfache Überprüfung, um sicherzustellen, dass das Video korrekt geladen wird. Wenn der Pfad falsch ist oder die Datei beschädigt ist, hält das Programm an und zeigt eine Fehlermeldung an: "Fehler beim Lesen der Videodatei".
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
Dann richten wir einen Video-Writer ein, um die Ausgabe zu speichern. Wenn wir die Analyse ausführen, erstellt dieser Teil des Codes eine neue Videodatei, die die aktualisierten Diagramme aufzeichnet, die aus jedem Frame des Originalvideos generiert wurden.
Im folgenden Codeschnipsel werden zunächst die wichtigsten Eigenschaften des Eingabevideos extrahiert - seine Breite, Höhe und Bilder pro Sekunde (fps). Diese Werte werden direkt aus dem Video entnommen und in Ganzzahlen umgewandelt, um sicherzustellen, dass sie das richtige Format für die Ausgabe haben.
Als Nächstes verwenden wir die Funktion cv2.VideoWriter, um eine neue Videodatei mit dem Namen "analytics_output.avi" zu erstellen (Sie können sie nach Bedarf umbenennen). Das Video wird im MJPG-Format gespeichert, einer gängigen Videokomprimierungsmethode. Die Ausgabeauflösung wird auf 1280×720 Pixel festgelegt, unabhängig von der Größe des Originalvideos.
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
out = cv2.VideoWriter(
"analytics_output.avi",
cv2.VideoWriter_fourcc(*"MJPG"),
fps,
(1280, 720),
)
Nun werden wir die Ultralytics Analytics-Lösung so einrichten, dass sie aus dem Video Diagramme erstellt. Sie können wählen, wie die Daten angezeigt werden sollen, z. B. als Linien-, Torten-, Flächen- oder Balkendiagramm, und welches YOLO-Modell verwendet werden soll. In diesem Beispiel verwenden wir das leichtgewichtige Modell "yolo11n.pt" und zeigen die Ergebnisse als Flächendiagramm an.
analytics = solutions.Analytics(
show=True,
analytics_type="area",
model="yolo11n.pt",
)
Im letzten Teil des Codes wird eine Schleife ausgeführt, die das Video Bild für Bild verarbeitet. Jedes Bild wird an das Analysetool weitergeleitet, das das Diagramm in Echtzeit aktualisiert. Das aktualisierte Diagramm wird dann in das Ausgabevideo geschrieben. Wenn ein Bild nicht gelesen werden kann, wird die Schleife angehalten. Nachdem alle Bilder verarbeitet wurden, wird das Video gespeichert und alle offenen Fenster werden geschlossen.
frame_count = 0
while cap.isOpened():
success, im0 = cap.read()
if success:
frame_count += 1
results = analytics(im0, frame_count)
out.write(results.plot_im)
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
Zum Schluss wollen wir alles zusammenfügen. Mit nur wenigen zusätzlichen Codezeilen können wir zwei Ausgabevideos erzeugen: eines mit den YOLO11-Objekterkennungsergebnissen mit Begrenzungsrahmen und Beschriftungen und ein weiteres mit den Echtzeit-Analysegraphen.
Dazu richten wir zwei VideoWriter-Instanzen ein - eine zum Speichern des Vorhersagevideos und eine weitere für die Analyse. Diese Version des Codes umfasst sowohl die Objektverfolgung als auch die Diagrammerstellung, sodass Sie neben den visuellen Erkenntnissen auch die Erkennungsergebnisse sehen können.
Hier finden Sie den umfassenden Code mit Beispielen für die Vorhersage und die Analyseergebnisse.
import cv2
from ultralytics import YOLO, solutions
# Load model and video
model = YOLO('yolo11n.pt')
cap = cv2.VideoCapture('path/to/video.mp4')
assert cap.isOpened(), "Error opening video"
# Get properties
w, h = int(cap.get(3)), int(cap.get(4))
fps = cap.get(5)
analytics_res = (1280, 720)
# Writers for prediction and analytics videos
out_pred = cv2.VideoWriter('output_predictions.avi', cv2.VideoWriter_fourcc(*'MJPG'), fps, (w, h))
out_ana = cv2.VideoWriter('output_analytics.avi', cv2.VideoWriter_fourcc(*'MJPG'), fps, analytics_res)
# Analytics setup
analytics = solutions.Analytics(show=True, analytics_type="area", model='yolo11n.pt')
# Process frames
frame_count = 0
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
frame_count += 1
pred_frame = model.track(frame, persist=True)[0].plot()
out_pred.write(pred_frame)
resized = cv2.resize(pred_frame, analytics_res)
out_ana.write(analytics(resized, frame_count).plot_im)
cap.release(), out_pred.release(), out_ana.release(), cv2.destroyAllWindows()
Wenn der obige Code erfolgreich ausgeführt wird, erzeugt er zwei Ausgabevideos. Die Datei "output_predictions.avi" zeigt die Ergebnisse der Objekterkennung mit Begrenzungsrahmen und Beschriftungen, während "output_analytics.avi" die Echtzeit-Analysegraphen auf der Grundlage der Erkennungen anzeigt.
Hier ist ein Bild aus der Analyseausgabe auf der Grundlage der Vorhersagen. Mithilfe des Flächendiagramms können wir Einblicke gewinnen, wie z. B. Schwankungen in der Anzahl der Koffer im Laufe der Zeit, wie z. B. eine Spitze um Bild 268, die auf eine Bewegung des Koffers oder Aktivität in diesem Teil des Videos hinweist.
Im Folgenden finden Sie einige reale Computer-Vision-Anwendungen, bei denen die Datenvisualisierung eine wichtige Rolle spielt:
Mit dem Ultralytics-Paket können Sie Videomaterial mühelos in klare, aufschlussreiche Diagramme umwandeln, die Aufschluss über das Geschehen geben, z. B. darüber, wie viele Personen oder Objekte im Laufe der Zeit erscheinen. Anstatt stundenlanges Videomaterial manuell auszuwerten, können Sie visuelle Zusammenfassungen erstellen, die wichtige Muster und Trends hervorheben und so ein schnelles Handeln erleichtern. Ganz gleich, ob in Krankenhäusern, Einzelhandelsgeschäften oder Produktionsstätten - diese Diagramme verwandeln komplexe KI-Ergebnisse in Erkenntnisse, die jeder verstehen und nutzen kann.
Möchten Sie mehr über KI erfahren? Erkunden Sie unser GitHub-Repository, tauschen Sie sich mit unserer Community aus, und informieren Sie sich über unsere Lizenzierungsoptionen, um Ihr Computer-Vision-Projekt zu starten. Erfahren Sie mehr über Innovationen wie KI in der Fertigung und Computer Vision in der Logistikbranche auf unseren Lösungsseiten.