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
Einbauverfahren
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 für das Projekt erforderlichen Abhängigkeiten, einschließlich PyTorch, flash-attn, supervision usw:复制复制复制复制复制复制复制复制复制复制复制复制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 requirements.txt pip install -e .
- Überprüfen der Installation
Führen Sie den folgenden Befehl aus, um zu prüfen, ob die Umgebung korrekt konfiguriert ist:复制复制复制复制复制复制复制复制复制复制复制python -c "from ultralytics import YOLO; print('YOLOv12 installed successfully')"
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:复制复制复制复制复制复制复制复制复制复制train: ./dataset/train/images val: ./dataset/val/images nc: 2 # 类别数量 names: ['cat', 'dog'] # 类别名称
- 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:复制复制复制复制复制复制复制复制复制from ultralytics import YOLO model = YOLO('yolov12s.pt') # 可选 n/s/m/l/x 模型 results = model.train(data='path/to/data.yaml', epochs=250, imgsz=640)
epochs
Anzahl der Trainingsrunden, mehr als 250 werden für bessere Ergebnisse empfohlen.imgsz
Geben Sie die Bildgröße ein, Standard 640x640.
- Schulungsergebnisse anzeigen
Nach Abschluss des Trainings werden die Ergebnisse in der Dateiruns/detect/train
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('path/to/best.pt') results = model('test.jpg') results.show() # 显示检测结果 results.save() # 保存结果到 runs/detect/predict
- 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:复制复制复制复制复制results = model.val(data='path/to/data.yaml') print(results.box.map) # 输出 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) # 导出为 ONNX,支持 FP16 加速
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:复制复制复制results = model('image.jpg') results.plot() # 显示带标注的图像
- 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.