update: Anleitung Training

This commit is contained in:
Your Name 2024-12-04 11:50:40 +01:00
parent b452a3df74
commit 9b724fe7ec

View File

@ -14,6 +14,7 @@ Dieses Repository enthält die Software und Dokumentation für den **CPS Geislin
- [Programmstart](#programmstart)
- [Arbeitsablauf](#arbeitsablauf)
6. [Fehlerbehebung](#fehlerbehebung)
8. [Übersicht Datenaufnahme und Training](#training)
7. [Kontakt](#kontakt)
---
@ -228,6 +229,70 @@ Der **CPS Geislinger PackPal** unterstützt den Verpackungsprozess mit einer int
- Konsolenausgaben kontrollieren:
Sollte es Probleme mit der Bauteilerkennung oder Waage geben, überprüfen Sie die Konsolenausgabe des Programms. Diese zeigt hilfreiche Diagnosen an.
## Übersicht Datenaufnahme und Training
Die Erstellung eines robusten Datensatzes und die anschließende Modelltrainierung erfolgten nach einem klar strukturierten Ablauf, um eine möglichst hohe Präzision der Bauteilerkennung zu gewährleisten. Dieser Prozess lässt sich in mehrere Schritte unterteilen:
---
#### **Datenaufnahme**
1. **Videoaufzeichnung**
- Die Videos wurden mit **OBS Studio** direkt vom Kamerastream aufgenommen.
- Jedes Bauteil wurde einzeln unter standardisierten Bedingungen vermessen und gefilmt.
- Zusätzlich wurden Bauteile in Kombination mit anderen Bauteilen und vor unterschiedlichen Hintergründen aufgenommen, um die Datendiversität zu erhöhen.
2. **Bearbeitung und Extraktion**
- Die aufgenommenen Videos wurden auf die Plattform **Roboflow** hochgeladen.
- Einzelne Frames (ca. **500 Frames pro Bauteil**) wurden aus den Videos extrahiert. Dabei wurde darauf geachtet, eine **repräsentative Stückzahl** zu wählen, die typische Variationen wie Winkel, Beleuchtung und Positionen abdeckt.
---
#### **Annotation und Datensatzvorbereitung**
1. **Annotation**
- Die extrahierten Frames wurden in Roboflow manuell annotiert, d. h., die Bauteile wurden mit präzisen Bounding-Boxen und Labels versehen.
- Für jeden Bauteiltyp wurde eine eigene Klasse definiert.
2. **Export und Augmentierung**
- Der annotierte Datensatz wurde im **YOLOv8-Format** exportiert.
- Während des Exports erfolgte eine automatische **Datenaugmentierung** durch Roboflow:
- **Transformationen**: Die Bilder wurden gespiegelt, gedreht, beschnitten und auf ein **quadratisches 1:1-Bildformat** skaliert.
- Ziel der Augmentierung war es, die Robustheit des Modells gegenüber unterschiedlichen Perspektiven und Hintergründen zu erhöhen.
---
#### **Modelltraining**
1. **Trainingsumgebung**
- Die Trainingsläufe wurden mithilfe der integrierten YOLOv8-Trainingsmethoden durchgeführt (Details siehe [Ultralytics Dokumentation](https://docs.ultralytics.com/modes/train/)).
- Hardware: Eine leistungsstarke **Nvidia Tesla P100 Grafikkarte** wurde für das Training genutzt.
- Framework: YOLOv8 implementiert in Python mit der Ultralytics-Bibliothek.
2. **Trainingsdetails**
- **Train/Test-Split**:
- Der Datensatz wurde in **80% Trainingsdaten** und **20% Testdaten** unterteilt.
- Für die Validierung wurden zusätzliche **10% der Trainingsdaten** als Validierungsdatensatz verwendet.
- **Hyperparameter**:
- Anzahl der **Epochen**: Variationen mit 50, 100 und 200 Epochen, um die optimale Konvergenz zu ermitteln.
- **Mixed Precision Training** wurde aktiviert, um die Speichereffizienz auf der GPU zu erhöhen und die Trainingsgeschwindigkeit zu verbessern.
3. **Trainierte Modelle**
- Es wurden mehrere Modelle basierend auf unterschiedlichen **YOLOv8-Architekturen** erstellt:
- **YOLOv8n** (Nano): Besonders ressourcensparend, ideal für den Einsatz auf Geräten mit begrenzter Rechenleistung.
- **YOLOv8m** (Medium): Liefert eine höhere Genauigkeit, benötigt jedoch mehr Rechenleistung.
- **YOLOv10n**: Als experimenteller Vergleich zur Validierung des Trainingsprozesses.
---
#### **Ergebnisse und Validierung**
1. **Modellbewertung**
- Die Modelle wurden anhand der Metriken **mAP (mean Average Precision)**, **Präzision**, und **Recall** bewertet.
- **Cross-Validation** wurde durchgeführt, um sicherzustellen, dass die Modelle generalisieren und nicht überangepasst sind.
2. **Einfluss von Epochs und Augmentierung**
- Eine höhere Anzahl von Epochen führte in vielen Fällen zu einer Verbesserung der Genauigkeit, allerdings war der Effekt nach etwa 100 Epochen minimal.
- Die Datenaugmentierung zeigte signifikanten Einfluss auf die Robustheit der Modelle, insbesondere bei ungewöhnlichen Blickwinkeln und Hintergründen.
---
## Kontakt
Für weitere Unterstützung oder Fragen wenden Sie sich bitte an: