Bildklassifizierung
Dieses Verzeichnis enthält Beispiele und Best Practices für die Erstellung von Bildklassifizierungssystemen. Unser Ziel ist es, Benutzern zu ermöglichen, schnell und einfach hochpräzise Klassifikatoren auf ihren eigenen Datensätzen zu trainieren. Wir stellen Beispiel-Notebooks mit voreingestellten Standardparametern bereit, die sich auf einer Vielzahl von Datensätzen gut bewährt haben. Wir enthalten auch eine umfassende Dokumentation zu häufigen Fallstricken und Best Practices. Zusätzlich zeigen wir, wie Azure, Microsofts Cloud-Computing-Plattform, zur Beschleunigung des Trainings auf großen Datensätzen oder zur Bereitstellung von Modellen als Webservices genutzt werden kann.
| Bildklassifizierung (einzelnes Objekt) | Bildklassifizierung (mehrere Objekte) |
|---|---|
![]() |
![]() |
Wir empfehlen die Verwendung von PyTorch als Deep-Learning-Plattform aufgrund seiner einfachen Bedienung, der einfachen Fehlersuche und seiner Popularität in der Data-Science-Community. Für Computer-Vision-Funktionalitäten verlassen wir uns auch stark auf fast.ai, eine PyTorch-Datenwissenschaftsbibliothek mit umfassenden Deep-Learning-Funktionen und umfangreicher Dokumentation. Wir empfehlen dringend, die fast.ai-Vorlesungsreihe 2019 anzusehen, um die zugrunde liegende Technologie zu verstehen. Die Dokumentation von Fast.ai ist ebenfalls eine wertvolle Ressource.
Häufig gestellte Fragen
Antworten auf häufig gestellte Fragen wie „Wie viele Bilder benötige ich, um ein Modell zu trainieren?“ oder „Wie annotiere ich Bilder?“ finden Sie in der Datei FAQ.md.
Notebooks
Wir stellen mehrere Notebooks zur Verfügung, um zu zeigen, wie Bildklassifizierungsalgorithmen entworfen, evaluiert und operationalisiert werden. Notebooks, die mit 0 beginnen, sind für die sequentielle Ausführung vorgesehen, da es Abhängigkeiten zwischen ihnen gibt. Diese Notebooks enthalten einführendes „erforderliches“ Material. Notebooks, die mit 1 beginnen, können als optional betrachtet werden und behandeln komplexere und spezialisierte Themen.
Obwohl alle Notebooks unter Windows ausgeführt werden können, haben wir festgestellt, dass fast.ai unter dem Linux-Betriebssystem deutlich schneller ist. Zusätzlich verbessert die Verwendung einer GPU die Trainingsgeschwindigkeiten erheblich. Wir empfehlen die Verwendung einer Azure Data Science Virtual Machine mit V100 GPU (Anleitung, Preistabelle).
Wir haben auch festgestellt, dass einige Browser Jupyter-Widgets nicht korrekt rendern. Wenn Sie Probleme haben, versuchen Sie, einen alternativen Browser wie Edge oder Chrome zu verwenden.
| Notebook-Name | Beschreibung |
|---|---|
| 00_webcam.ipynb | Demonstriert die Inferenz auf einem Bild von der Webcam Ihres Computers mit einem vortrainierten Modell. |
| 01_training_introduction.ipynb | Führt einige grundlegende Konzepte rund um das Modelltraining und die -bewertung ein. |
| 02_multilabel_classification.ipynb | Führt die Multilabel-Klassifizierung ein und stellt die wichtigsten Unterschiede zwischen dem Training von Multilabel- und Einzellabel-Klassifizierungsmodellen vor. |
| 03_training_accuracy_vs_speed.ipynb | Trainiert ein Modell mit hoher Genauigkeit im Vergleich zu einem mit schneller Inferenzgeschwindigkeit. Verwenden Sie dies, um auf Ihren eigenen Datensätzen zu trainieren! |
| 10_image_annotation.ipynb | Eine einfache Benutzeroberfläche zum Annotieren von Bildern. |
| 11_exploring_hyperparameters.ipynb | Findet optimale Modellparameter mithilfe der Grid-Suche. |
| 12_hard_negative_sampling.ipynb | Demonstriert, wie harte Negative zur Verbesserung Ihrer Modellleistung verwendet werden können. |
| 20_azure_workspace_setup.ipynb | Richtet Ihre Azure-Ressourcen und Ihren Azure Machine Learning-Workspace ein. |
| 21_deployment_on_azure_container_instances.ipynb | Stellt ein trainiertes Modell bereit, das als REST-API über Azure Container Instances (ACI) verfügbar ist. |
| 22_deployment_on_azure_kubernetes_service.ipynb | Stellt ein trainiertes Modell bereit, das als REST-API über den Azure Kubernetes Service (AKS) verfügbar ist. |
| 23_aci_aks_web_service_testing.ipynb | Testet die bereitgestellten Modelle auf ACI oder AKS. |
| 24_exploring_hyperparameters_on_azureml.ipynb | Führt hochgradig paralleles Parameter-Sweeping mit AzureMLs HyperDrive durch. |
Azure-erweiterte Notebooks
Azure-Produkte und -Dienste werden in bestimmten Notebooks verwendet, um die Effizienz der Entwicklung von Klassifizierungssystemen im großen Maßstab zu verbessern.
Um diese Notebooks erfolgreich auszuführen, **benötigen die Benutzer ein Azure-Abonnement** oder können Azure kostenlos nutzen.
Die in den Notebooks vorgestellten Azure-Produkte umfassen
-
Azure Machine Learning-Dienst – Der Azure Machine Learning-Dienst ist ein Cloud-Dienst, der zum Trainieren, Bereitstellen, Automatisieren und Verwalten von Machine-Learning-Modellen in großem Maßstab verwendet wird, wie ihn die Cloud bietet. Er wird in verschiedenen Notebooks für KI-Modellentwicklungsaufgaben wie die Bereitstellung verwendet. 20_azure_workspace_setup zeigt, wie Sie Ihre Azure-Ressourcen einrichten und eine Verbindung zu einem Azure Machine Learning-Dienst-Workspace herstellen.
-
Azure Container Instance – Sie können den Azure Machine Learning-Dienst verwenden, um Ihr Klassifizierungsmodell in einer Web-Service-Bereitstellung auf Azure Container Instance (ACI) zu hosten. ACI eignet sich gut für Low-Scale, CPU-basierte Workloads. 21_deployment_on_azure_container_instances erklärt, wie ein Web-Service über Azure ML auf ACI bereitgestellt wird.
-
Azure Kubernetes Service – Sie können den Azure Machine Learning-Dienst verwenden, um Ihr Klassifizierungsmodell in einer Web-Service-Bereitstellung auf Azure Kubernetes Service (AKS) zu hosten. AKS eignet sich gut für hoch skalierbare Produktionsbereitstellungen und bietet automatische Skalierung und schnelle Reaktionszeiten. 22_deployment_on_azure_kubernetes_service erklärt, wie ein Web-Service über Azure ML auf AKS bereitgestellt wird.

