Yolo Vision Shenzhen
Shenzhen
Jetzt beitreten

Containerisierung mit Docker zur Optimierung der Modellbereitstellung

Abirami Vina

5 Min. Lesezeit

5. Februar 2025

Erfahren Sie, wie der Einsatz von Docker für die Containerisierung die Bereitstellung von Computer-Vision-Modellen wie Ultralytics YOLO11 effizienter und unkomplizierter macht.

Der Prozess zum Erstellen einer Computer Vision Lösung umfasst mehr Schritte als nur das Trainieren und Testen eines Modells. Tatsächlich ist einer der aufregendsten Teile bei der Erstellung hochmoderner Modelle zu beobachten, wie sie in realen Umgebungen Wirkung zeigen. Die Verwendung von Vision AI zur Lösung von Problemen führt auf natürliche Weise zur Bereitstellung der von Ihnen entwickelten Computer Vision Modelle in der Produktion.

Die Modellbereitstellung umfasst verschiedene Schritte, darunter die Optimierung von Modellen für Zuverlässigkeit, Skalierbarkeit und Leistung unter verschiedenen Bedingungen. Ein gut strukturierter Bereitstellungs-Workflow schließt die Lücke zwischen der Modellentwicklung und der sinnvollen Wirkung des Modells, die einen Unterschied macht. 

Bei der Bereitstellung von Computer-Vision-Modellen wie Ultralytics YOLO11 gibt es oft mehrere Bereitstellungstechniken und -optionen, aus denen Sie wählen können, abhängig von der spezifischen Anwendung, die Sie entwickeln. Zum Beispiel können Techniken wie die Containerisierung den Bereitstellungs-Workflow vereinfachen. 

Containerisierung hilft dabei, ein Modell und seine Abhängigkeiten wie Bibliotheken, Frameworks und Konfigurationen in einer einzigen, in sich geschlossenen Einheit, einem sogenannten Container, zu verpacken. Eine der effizientesten und beliebtesten Methoden hierfür ist Docker, eine Open-Source-Plattform, die das Erstellen, Ausliefern und Ausführen von containerisierten Anwendungen vereinfacht.

In diesem Artikel werden wir untersuchen, wie Containerisierung und Docker die Modellbereitstellung optimieren und eine nahtlose Skalierbarkeit und Effizienz in realen Vision-AI-Anwendungen gewährleisten.

Was ist Model Deployment?

Die Modellbereitstellung ist die letzte Phase des Machine-Learning-Lebenszyklus, in der das trainierte Modell in eine Produktionsumgebung eingeführt wird, um Vorhersagen in der realen Welt zu treffen. Eine erfolgreiche Bereitstellung ist ein wichtiger Bestandteil der zuverlässigen Leistung des Modells unter praktischen Bedingungen. 

Betrachten Sie beispielsweise ein Computer Vision-Modell, das entwickelt wurde, um Kennzeichen zu identifizieren für die automatische Mauterhebung. Während es in einer kontrollierten Umgebung mit gut beschrifteten Datensätzen eine hohe Genauigkeit erzielen kann, kann der Einsatz auf Straßenkameras zu Latenzproblemen führen, die auf Faktoren wie hochauflösende Bildverarbeitung, Netzwerkverzögerungen, Hardwarebeschränkungen und Echtzeit-Inferenzbeschränkungen zurückzuführen sind. 

Langsame Vorhersagen könnten zu Verzögerungen bei der Mautabwicklung, Staus oder sogar zu verpassten Erkennungen führen. Geeignete Strategien für die Modellbereitstellung können dazu beitragen, die Latenz zu reduzieren, die Effizienz zu verbessern und eine zuverlässige Leistung in realen Anwendungen zu unterstützen.

__wf_reserved_inherit
Abb. 1. Kennzeichenerkennung mit YOLO11.

Auch bei der Bereitstellung von Modellen sind einige Überlegungen zu beachten. Eine davon ist die Skalierbarkeit, bei der Modelle während des Trainings gut funktionieren, aber Schwierigkeiten haben können, große Datenmengen zu verarbeiten.

Ein weiterer Punkt sind Umgebungsunterschiede, wie z. B. Hardwareunterschiede, wenn ein Modell auf Hochleistungs-GPUs (Graphics Processing Units) trainiert, aber auf Geräten mit begrenzter Rechenleistung eingesetzt wird. Diese Inkonsistenzen bei der Bereitstellung können zu unvorhersehbarem Modellverhalten führen. Fortschrittliche Lösungen wie die Containerisierung können verwendet werden, um diese Herausforderungen zu bewältigen.

Containerisierung

Containerisierung kann mit dem Packen Ihrer Lunchbox verglichen werden, die alles enthält, was Sie für eine Mahlzeit benötigen, wie z. B. Essen, Besteck und Gewürze. Sie können überall essen, ohne sich Gedanken darüber machen zu müssen, eine Küche oder bestimmte Utensilien zu finden. 

In ähnlicher Weise verpackt die Containerisierung ein Modell mit all seinen Abhängigkeiten, wie z. B. Bibliotheken, Frameworks und Konfigurationen, in eine einzige Einheit, die als Container bezeichnet wird. Diese Container stellen sicher, dass das Modell konsistent läuft, indem sie die gleichen Abhängigkeiten über jedes System hinweg bereitstellen, unabhängig von der zugrunde liegenden Umgebung. Im Gegensatz zu virtuellen Maschinen, die ganze Betriebssysteme mit sich führen, sind Container schlank und portabel, was sie zu einer effizienten Alternative macht.

__wf_reserved_inherit
Abb. 2. Eine Übersicht über die Containerisierung.

Hier sind einige der wichtigsten Vorteile der Containerisierung:

  • Versionskontrolle: Durch die Containerisierung können verschiedene Versionen eines Modells oder Software-Stacks nebeneinander existieren, was einfache Rollbacks und Aktualisierungen ermöglicht, ohne Produktionssysteme zu stören.
  • Sicherheit: Container isolieren Anwendungen vom zugrunde liegenden System und reduzieren so das Risiko von Konflikten, Schwachstellen und unbefugtem Zugriff.
  • Schnelle Bereitstellung: Vorkonfigurierte Container-Images ermöglichen schnelle und wiederholbare Bereitstellungen, wodurch die Einrichtungszeit verkürzt und Bereitstellungsfehler minimiert werden.

Docker: Vereinfachung der Containerisierung

Containerisierung ist zwar eine großartige Möglichkeit, Anwendungen in isolierten Umgebungen auszuführen, aber die Einrichtung kann kompliziert sein. Hier kommt Docker ins Spiel. Docker ist eine Open-Source-Plattform, die das Erstellen, Bereitstellen und Verwalten von containerisierten Anwendungen vereinfacht.

Es bietet eine konsistente und isolierte Umgebung zusammen mit den notwendigen Tools und Frameworks zum Testen des Modells. Insbesondere Docker ist bekannt für sein starkes Ökosystem und seine Benutzerfreundlichkeit. Es vereinfacht die Bereitstellung von KI-Modellen, indem es den Prozess vereinfacht, reibungslos mit Cloud-Plattformen zusammenarbeitet und es KI-Modellen ermöglicht, effizient auf Edge-Geräten zu laufen, um schnellere Ergebnisse zu erzielen.

Viele Branchen nutzen es aktiv, um containerisierte Anwendungen effizient bereitzustellen und zu verwalten. Die Docker-basierte Modellbereitstellung umfasst im Allgemeinen drei Hauptkomponenten:

  • Dockerfile: Eine textbasierte Konfigurationsdatei, die als Vorlage für die Erstellung eines Docker-Images dient. Sie enthält alle notwendigen Anweisungen, einschließlich des Basis-Images, der erforderlichen Abhängigkeiten, der Umgebungseinstellungen und der Befehle zur Ausführung des Modells.
  • Docker-Images: Vorkonfigurierte Paketdateien, die alles enthalten, was für die Modellausführung benötigt wird – wie Code, Bibliotheken, Laufzeitumgebungen und Abhängigkeiten. Diese Images stellen sicher, dass das Modell mit der gleichen Konfiguration auf jedem System ausgeführt wird.
  • Docker-Container: Laufende Instanzen von Docker-Images, die eine isolierte und sichere Umgebung für die Modellausführung bieten. Innerhalb dieser Umgebung kann das Modell trainiert, getestet und feinabgestimmt werden, ohne andere Anwendungen oder das Host-System zu beeinträchtigen.
__wf_reserved_inherit
Abb. 3. Die Schlüsselkomponenten von Docker verstehen.

Erkundung einer Computer-Vision-Anwendung mit Docker

Nehmen wir an, eine Stadt möchte ein Verkehrsüberwachungssystem mit Computer Vision einsetzen, um Fahrzeuge in Echtzeit zu erkennen und zu klassifizieren. Der Einsatz dieses Systems an mehreren Standorten mit unterschiedlicher Hardware und Netzwerkbedingungen kann eine Herausforderung darstellen. Kompatibilitätsprobleme, Abhängigkeitskonflikte und inkonsistente Umgebungen können zu einer unzuverlässigen Leistung führen.

Durch die Verwendung von Docker können Entwickler das gesamte Computer-Vision-Modell zusammen mit seinen Abhängigkeiten (wie z. B. KI-Frameworks wie TensorFlow und benutzerdefinierte Skripte) in einen Container packen. Dies stellt sicher, dass das Modell in verschiedenen Umgebungen konsistent läuft, von der lokalen Entwicklung über Cloud-basierte Server bis hin zu Edge-Geräten, die an Verkehrskameras installiert sind.

__wf_reserved_inherit
Abb. 4. Wie Docker funktioniert.

Beispielsweise kann die Stadt durch den Einsatz von Dockerized Computer Vision-Modellen an mehreren Kreuzungen den Verkehrsfluss analysieren, Verstöße erkennen und Verkehrssignale optimieren. Da Docker eine standardisierte Umgebung an allen Standorten ermöglicht, ist die Wartung einfacher, Updates erfolgen nahtlos und die Leistung bleibt konstant.

YOLO11 mit Docker bereitstellen

YOLO11 kann mit seiner Fähigkeit, komplexe Computer Vision Aufgaben auszuführen, in verschiedenen Branchen eingesetzt werden, z. B. in der Fertigung, im Gesundheitswesen, beim autonomen Fahren und in der Landwirtschaft. 

Zum Beispiel kann YOLO11 Video-Feeds in Fitnessanwendungen verarbeiten, um Übungen wie Liegestütze mithilfe von Pose-Schätzung zu verfolgen. Durch die Erkennung von Körperbewegungen und das Zählen von Wiederholungen in Echtzeit hilft es, die Trainingsverfolgung und Leistungsanalyse zu verbessern.

__wf_reserved_inherit
Abb. 5. Überwachung eines Workouts mit YOLO11.

Wenn wir ein solches Modell in realen Anwendungen einsetzen wollen, müssen wir Abhängigkeiten verwalten, Hardware optimieren und eine konsistente Leistung in verschiedenen Umgebungen sicherstellen. Die Verwendung von Docker vereinfacht diesen Prozess, indem es YOLO11 mit allen notwendigen Bibliotheken und Konfigurationen verpackt und so die Bereitstellung effizienter, skalierbarer und zuverlässiger macht.

Hier ist ein kurzer Überblick über die Vorteile des Deployens von YOLO11 mit Docker:

  • Optimierte Wartung: Docker vereinfacht die Aktualisierung und Wartung von YOLO11 und seinen Abhängigkeiten. Updates können auf das Container-Image angewendet werden, ohne das Host-System zu beeinträchtigen, wodurch eine reibungslose und effiziente Modellverwaltung gewährleistet wird.
  • Vereinfachte Zusammenarbeit: Entwickler und Forscher können vorkonfigurierte Docker-Container einfach austauschen und so sicherstellen, dass Teams mit derselben Umgebung arbeiten und Kompatibilitätsprobleme vermieden werden.
  • Ressourceneffizienz: Im Gegensatz zu traditionellen virtuellen Maschinen nutzen Docker-Container das Host-Betriebssystem gemeinsam, wodurch der Overhead reduziert und die Ressourcenauslastung verbessert wird, was für Echtzeit-Inferenzaufgaben entscheidend ist.

YOLO11-Anwendungen, die mit Docker bereitgestellt werden können

Gehen wir einige Beispiele für Computer-Vision-Anwendungen durch, die mit YOLO11 und Docker erstellt werden können. 

Verkehrsüberwachung mit YOLO11

Vorhin haben wir die Verkehrsüberwachung mithilfe von Computer Vision besprochen. Interessanterweise kann die Unterstützung von YOLO11 für Objektverfolgung beim Aufbau eines umfassenden Verkehrsmanagementsystems helfen. Wie funktioniert das?

YOLO11 kann Live-Video-Feeds von Verkehrskameras analysieren, um Fahrzeuge in Echtzeit zu erkennen und zu verfolgen. Durch die kontinuierliche Identifizierung von Fahrzeugpositionen, Geschwindigkeiten und Bewegungsmustern kann das System die Stausituation überwachen, Verkehrsverstöße (wie das Überfahren roter Ampeln oder illegale Abbiegungen) erkennen und Verkehrssignale auf der Grundlage von Echtzeitdaten optimieren.

Auch die Bereitstellung von YOLO11 auf Edge-Geräten oder Cloud-basierten Plattformen mit Hilfe von Docker gewährleistet eine effiziente Verarbeitung und Skalierbarkeit, was es zu einem wertvollen Werkzeug für das intelligente Verkehrsmanagement in Städten macht.

__wf_reserved_inherit
Abb. 6. Fahrzeugverfolgung und -zählung mit YOLO11.

Verbesserte Physiotherapie mit YOLO11

Im Gesundheitswesen ist Physiotherapie entscheidend für die Rehabilitation, und die richtige Körperhaltung und Bewegung sind für eine erfolgreiche Genesung unerlässlich. Echtzeit-Feedback von einem visionsbasierten Patientenüberwachungssystem kann Therapeuten helfen, Probleme wie falsche Gelenkwinkel oder muskuläre Ungleichgewichte zu erkennen. 

Wenn ein Patient beispielsweise den Arm hebt, ihn aber nicht in der richtigen Höhe anhebt oder dies durch eine falsche Körperhaltung kompensiert, kann das System diese Fehler erkennen und sofortige Korrekturen vorschlagen. Dadurch können Therapeuten Behandlungen in Echtzeit anpassen.

Die Pose-Schätzungsfunktionen von YOLO11 können verwendet werden, um wichtige Körperpunkte zu erkennen und Gelenkbewegungen zu analysieren. Es kann Live-Video-Feeds verarbeiten, um sofortiges Feedback zu geben und Therapeuten dabei zu helfen, die Körperhaltung zu korrigieren, die Bewegungsgenauigkeit zu verbessern und Verletzungen vorzubeugen. Dies erleichtert die Erstellung personalisierter Behandlungspläne, die auf den Fortschritten jedes Patienten basieren.

__wf_reserved_inherit
Abb. 7. Ein Beispiel für die Überwachung der Physiotherapie mit YOLO11.

Im Hinblick auf die Bereitstellung dieser Art von Lösung kann die Verwendung von Docker einen reibungslosen Betrieb in verschiedenen Umgebungen gewährleisten, sei es in Kliniken oder für die Fernüberwachung von Patienten. Docker vereinfacht die Bereitstellung, verbessert die Skalierbarkeit und sorgt für Systemkonsistenz, wodurch KI-gestützte Physiotherapie-Tools zuverlässiger und zugänglicher werden.

Wesentliche Erkenntnisse

Die Bereitstellung eines Computer-Vision-Modells ist ein entscheidender Schritt, um es von der Entwicklung in die reale Anwendung zu bringen. Ein reibungsloser Bereitstellungsprozess stellt sicher, dass das trainierte Modell in der Praxis zuverlässig funktioniert. Tools wie Docker und Containerisierung haben diesen Prozess vereinfacht, indem sie viele traditionelle Herausforderungen beseitigt haben. 

Mit ihrer leichten, portablen und skalierbaren Natur verändern diese Technologien die Art und Weise, wie Modelle wie YOLO11 erstellt und eingesetzt werden. Durch den Einsatz von Containerisierung können Unternehmen Zeit sparen, Kosten senken und die Effizienz verbessern, während sie gleichzeitig sicherstellen, dass Modelle in verschiedenen Umgebungen konsistent laufen.

Treten Sie unserer Community bei und besuchen Sie unser GitHub-Repository, um mehr über KI zu erfahren. Lesen Sie mehr über verschiedene Anwendungen von Computer Vision im Gesundheitswesen und KI in der Fertigung. Entdecken Sie unsere YOLO-Lizenzoptionen, um mit Vision AI zu beginnen.

Lasst uns gemeinsam die Zukunft
der KI gestalten!

Beginnen Sie Ihre Reise mit der Zukunft des maschinellen Lernens

Kostenlos starten
Link in die Zwischenablage kopiert