Allgemeine Einführung
YOLOv12 ist ein Open-Source-Projekt, das vom GitHub-Benutzer sunsmarterjie entwickelt wurde und sich auf Echtzeit-Zielerkennungstechnologie konzentriert. Das Projekt basiert auf YOLO (You Only Look Once) Reihe von Frameworks, die Einführung der Aufmerksamkeit Mechanismus, um die Leistung der traditionellen Faltungs neuronale Netze (CNN) zu optimieren, nicht nur bei der Erkennung von verbesserter Genauigkeit, sondern unterhält auch eine hohe Inferenz Geschwindigkeit. YOLOv12 für eine Vielzahl von Szenarien, wie Überwachungssysteme, automatisiertes Fahren und Bildanalyse, etc. zu bieten Nano, Small, Medium, Large und Extra-Large Modellgrößen zur Verfügung zu stellen, um unterschiedlichen Anforderungen an Rechenleistung und Anwendungen gerecht zu werden. Das Projekt steht unter der GNU AGPL-3.0-Lizenz, die es den Nutzern erlaubt, den Code kostenlos herunterzuladen und ihn an ihre Bedürfnisse anzupassen. Zum Entwicklerteam gehören Forscher der University of Buffalo und der Chinesischen Akademie der Wissenschaften. Die technische Dokumentation und die Installationsanleitung sind detailliert, so dass die Benutzer schnell loslegen können.
Funktionsliste
- Effiziente Zielerfassung in EchtzeitAuf einer T4-GPU erreicht YOLOv12-N 40,6% mAP mit einer Inferenzlatenz von nur 1,64ms.
- Multimodell-AuswahlFünf Modelle (Nano bis Extra-Large) stehen zur Verfügung, um eine breite Palette von Hardwareumgebungen abzudecken, von Geräten mit geringem Stromverbrauch bis hin zu Hochleistungsservern.
- Optimierung des AufmerksamkeitsmechanismusEinführung von Area Attention- und R-ELAN-Modulen zur Verbesserung der Erkennungsgenauigkeit und zur Verringerung des Rechenaufwands.
- Modell ExportUnterstützung für den Export von Trainingsmodellen in das ONNX- oder TensorRT-Format zur einfachen Bereitstellung in Produktionsumgebungen.
- Individuelles DatensatztrainingBenutzer können Modelle mit ihren eigenen Datensätzen trainieren, die für bestimmte Zielerfassungsaufgaben geeignet sind.
- Unterstützung bei der Visualisierung:: Integration von Überwachungsinstrumenten zur einfachen Darstellung von Testergebnissen und Leistungsbewertung.
Hilfe verwenden
Ablauf der Installation
YOLOv12 verfügt derzeit nicht über ein eigenständiges PyPI-Paket und muss aus der GitHub-Quelle installiert werden. Im Folgenden finden Sie die detaillierten Installationsschritte für Linux (Windows- oder Mac-Benutzer müssen ihre Umgebungskonfiguration anpassen):
- Vorbereiten der Umgebung
- Stellen Sie sicher, dass Python 3.11 oder höher auf Ihrem System installiert ist.
- Git installieren:
sudo apt install git
(Beispiel Ubuntu). - Optional: Installieren Sie den NVIDIA GPU-Treiber und CUDA (empfohlene Version 11.8 oder höher), um Training und Inferenz zu beschleunigen.
- Klon-Lager
Laden Sie das YOLOv12-Repository lokal herunter, indem Sie den folgenden Befehl in einem Terminal ausführen:git clone https://github.com/sunsmarterjie/yolov12.git cd yolov12
- Erstellen einer virtuellen Umgebung
Verwenden Sie Conda oder venv, um separate Python-Umgebungen zu erstellen und Abhängigkeitskonflikte zu vermeiden:conda create -n yolov12 python=3.11 conda activate yolov12
- Installation von Abhängigkeiten
Installieren Sie die erforderlichen Abhängigkeiten für das Projekt, einschließlich PyTorch, flash-attn, supervision, etc:wget https://github.com/Dao-AILab/flash-attention/releases/download/v2.7.3/flash_attn-2.7.3+cu11torch2.2cxx11abiFALSE-cp311-cp311- linux_x86_64.whl pip install flash_attn-2.7.3+cu11torch2.2cxx11abiFALSE-cp311-cp311-linux_x86_64.whl pip install -r anforderungen.txt pip install -e .
- Überprüfen der Installation
Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die Umgebung richtig konfiguriert ist:python -c "from ultralytics import YOLO; print('YOLOv12 erfolgreich installiert')"
Verwendung
Training benutzerdefinierter Modelle
YOLOv12 unterstützt den Benutzer beim Training mit eigenen Datensätzen, die für szenenspezifische Zielerfassungsaufgaben geeignet sind. Die Arbeitsschritte sind wie folgt:
- Vorbereiten des Datensatzes
- Die Daten sollten im YOLO-Format vorliegen (mit Bild- und Beschriftungsordnern, Beschriftungen als .txt-Dateien, beschriftet mit Zielkategorien und Bounding-Box-Koordinaten).
- einrichten.
data.yaml
Datei, die den Trainingssatz, den Pfad zum Validierungssatz und den Kategorienamen angibt. Beispiel:Zug: . /dataset/train/images val: . /datensatz/val/images nc: 2 # Anzahl der Kategorien names: ['Katze', 'Hund'] # Kategorienamen
- Laden Sie das Modell und trainieren Sie es
Verwenden Sie ein Python-Skript, um das vortrainierte Modell zu laden und mit dem Training zu beginnen:von ultralytics importieren YOLO model = YOLO('yolov12s.pt') # optional n/s/m/l/x model Ergebnisse = model.train(data='path/to/data.yaml', epochs=250, imgsz=640)
Epochen
Anzahl der Trainingsrunden, mehr als 250 werden für bessere Ergebnisse empfohlen.imgsz
Bildgröße: Geben Sie die Bildgröße ein, Standard 640x640.
- Schulungsergebnisse anzeigen
Nach Abschluss des Trainings werden die Ergebnisse in der Dateiläuft/detektiert/trainiert
einschließlich der Modellgewichte (best.pt
) und Verschleierungsmatrizen, usw. Führen Sie den folgenden Code aus, um die Verwechslungsmatrix zu sehen:from IPython.display import Image Image(filename='runs/detect/train/confusion_matrix.png', width=600)
Begründungen und Tests
Das trainierte Modell kann zur Zielerkennung in Bildern oder Videos verwendet werden:
- Einzelbild-Erkennung
model = YOLO('pfad/zum/besten.pt') ergebnisse = model('test.jpg') results.show() # Testergebnisse anzeigen results.save() # Ergebnisse in runs/detect/predict speichern
- Video-Erkennung
Verwenden Sie die Befehlszeile, um Videodateien zu verarbeiten:python app.py --source 'video.mp4' --model 'path/to/best.pt'
- Leistungsbewertung
Der Validierungssatz wird ausgewertet, um Metriken wie mAP zu erhalten:Ergebnisse = model.val(data='path/to/data.yaml') print(results.box.map) #-Ausgabe mAP@0.5:0.95
Modell Export
Exportieren Sie das Modell in ein Format, das in der Produktionsumgebung verwendet werden kann:
model.export(format='onnx', half=True) # exportiert als ONNX, unterstützt FP16-Beschleunigung
Die exportierten Modelle können auf Edge-Geräten oder Servern bereitgestellt werden.
Featured Function Bedienung
- Optimierung des Aufmerksamkeitsmechanismus
Das Modul "Area Attention" von YOLOv12 muss nicht manuell konfiguriert werden, sondern optimiert automatisch die Merkmalsextraktion während des Trainings und der Inferenz, um die Erkennung kleiner Ziele zu verbessern. Benutzer wählen einfach die richtige Modellgröße (z. B. Nano für Geräte mit geringem Stromverbrauch), um von der verbesserten Genauigkeit dieser Funktion zu profitieren. - Echtzeit-Erkennung
Die Inferenz ist extrem schnell, wenn sie auf CUDA-fähigen GPUs ausgeführt wird. Die Ausführung des YOLOv12-N-Modells auf einem T4-Grafikprozessor führt beispielsweise zu einer Einzelbild-Erkennung in nur 1,64 ms, und die Benutzer können den Erkennungsrahmen und das Konfidenzniveau in Echtzeit mit dem Überwachungswerkzeug visualisieren:ergebnisse = model('bild.jpg') results.plot() # Beschriftetes Bild anzeigen
- Mehrszenen-Adaption
Durch Anpassung der Modellgröße und der Trainingsdaten kann YOLOv12 leicht an verschiedene Aufgaben angepasst werden. Zum Beispiel die Erkennung von Fußgängern in einem Überwachungssystem oder die Erkennung von Fahrzeugen und Verkehrszeichen beim autonomen Fahren.