AI Personal Learning
und praktische Anleitung
讯飞绘镜

YOLOv12: ein Open-Source-Tool für die Echtzeit-Erkennung von Bild- und Videozielen

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.

YOLOv12:提供实时图像和视频目标检测的开源工具-1


 

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):

  1. 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.
  2. 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
  1. 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
  2. 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 .
  3. Ü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:

  1. 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']  # 类别名称
  2. 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)
    • epochsAnzahl der Trainingsrunden, mehr als 250 werden für bessere Ergebnisse empfohlen.
    • imgszGeben Sie die Bildgröße ein, Standard 640x640.
  3. Schulungsergebnisse anzeigen
    Nach Abschluss des Trainings werden die Ergebnisse in der Datei runs/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:

  1. Einzelbild-Erkennung
    复制复制复制复制复制复制
    复制
    model = YOLO('path/to/best.pt')
    results = model('test.jpg')
    results.show()  # 显示检测结果
    results.save()  # 保存结果到 runs/detect/predict
  2. Video-Erkennung
    Verwenden Sie die Befehlszeile, um Videodateien zu verarbeiten:

    复制复制复制复制复制
    复制
    python app.py --source 'video.mp4' --model 'path/to/best.pt'
  3. 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.
Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " YOLOv12: ein Open-Source-Tool für die Echtzeit-Erkennung von Bild- und Videozielen
de_DEDeutsch