UniGetUI (ehemals WingetUI)
Der Herausgeber von Downcodes stellt Ihnen UniGetUI vor, eine intuitive GUI-Schnittstelle, die für Benutzer von Windows 10 und 11 erstellt wurde und die Verwendung gängiger CLI-Paketmanager wie WinGet, Scoop, Chocolatey, Pip, Npm, .NET Tool und PowerShell Gallery vereinfachen soll .
UniGetUI-Funktionen
Mit UniGetUI können Sie ganz einfach Software herunterladen, installieren, aktualisieren und deinstallieren, die auf allen unterstützten Paketmanagern veröffentlicht wurde, und vieles mehr!
Von UniGetUI unterstützte Paketmanager
Weitere Informationen finden Sie in der „Tabelle der unterstützten Paketmanager“!
Haftungsausschluss
Das UniGetUI-Projekt steht in keiner Verbindung zu unterstützten Paketmanagern und ist völlig inoffiziell. Bitte beachten Sie, dass Downcodes, der Entwickler von UniGetUI, nicht für heruntergeladene Software verantwortlich ist. Bitte mit Vorsicht verwenden!
Beachten
Die offizielle Website von UniGetUI ist https://www.marticliment.com/unigetui/. Jede andere Website sollte als inoffiziell betrachtet werden, egal was sie sagt. Wingetui.com ist insbesondere nicht die offizielle Website von UniGetUI (ehemals WingetUI).
Unterstützen Sie Entwickler
Ihre Unterstützung ist für die weitere Entwicklung von UniGetUI von entscheidender Bedeutung und wird von den Herausgebern von Downcodes sehr geschätzt. Danke!
Inhaltsverzeichnis
1. Installation
Es gibt mehrere Möglichkeiten, UniGetUI zu installieren. Bitte wählen Sie Ihre bevorzugte Installationsmethode!
* Microsoft Store-Installation (empfohlen)
Klicken Sie hier, um das UniGetUI-Installationsprogramm herunterzuladen.
* Installation über Winget
`Bash
Winget-Installation --exact --id MartiCliment.UniGetUI --source Winget
`
* Installiert über Scoop
Hinweis: Derzeit gibt es ein Problem mit dem Scoop-Paket von UniGetUI. Bitte installieren Sie UniGetUI noch nicht über Scoop.
`Bash
# rem Das aktuelle UniGetUI-Scoop-Paket ist defekt. Bitte installieren Sie UniGetUI vorerst nicht über scoop
# rem Schaufeleimer Extras hinzufügen
# rem scoop install extras/wingetui
`
* Installiert über Chocolatey
`Bash
Choco Wingetui installieren
`
2. UniGetUI aktualisieren
UniGetUI verfügt über eine integrierte automatische Update-Funktion. Sie können es jedoch auch wie jedes andere Paket in UniGetUI aktualisieren (da UniGetUI über Winget und Scoop verfügbar ist).
3. Funktion
* Unterstützte Paketmanager
Hinweis: Alle Paketmanager unterstützen grundlegende Installations-, Update- und Deinstallationsprozesse sowie die Suche nach Updates, das Finden neuer Pakete und das Abrufen von Details aus Paketen.
|. Paketmanager |. Unterstützung |
|---|---|---|
|. WinGet |
|. Schaufel |
|. Schokoladig |. ✅ |
|. Pip |
|. Npm |. ✅ |
|. .NET-Tool |
|. PowerShell-Galerie |
veranschaulichen:
1. Einige Pakete unterstützen die Installation in benutzerdefinierten Speicherorten oder Bereichen nicht und ignorieren diese Einstellung.
2. Obwohl der Paketmanager möglicherweise keine Vorabversionen unterstützt, können einige Pakete kopiert werden, und eine der Kopien ist eine Betaversion davon.
3. Einige Installationsprogramme haben keine grafische Benutzeroberfläche und ignorieren die interaktive Flagge.
* Übersetzen Sie UniGetUI in andere Sprachen
Weitere Informationen zum Übersetzen von UniGetUI in andere Sprachen oder zum Aktualisieren alter Übersetzungen finden Sie im UniGetUI-Wiki.
* Derzeit unterstützte Sprachen
*Aktualisiert: Dienstag, 29. Okt., 00:13:19 Uhr 2024
4. Beitrag
UniGetUI wäre ohne die Hilfe unserer lieben Mitwirkenden nicht möglich. Von der Person, die den Tippfehler behoben hat, bis hin zur Person, die die Hälfte des Codes verbessert hat, konnte UniGetUI nicht ohne ihre Beiträge auskommen!
Mitwirkende:
*…
5. Screenshot
*…
6. Häufig gestellte Fragen
* Ich kann ein bestimmtes Winget-Paket nicht installieren oder aktualisieren! was mache ich?
Dies könnte eher ein Problem mit Winget als mit UniGetUI sein. Bitte prüfen Sie, ob das Paket über PowerShell oder die Eingabeaufforderung mit dem Befehl „winget upgrade“ oder „winget install“ installiert/aktualisiert werden kann (je nach Bedarf, zum Beispiel: „winget upgrade --id Microsoft.PowerToys“). Wenn dies nicht funktioniert, sollten Sie auf der Winget-Projektseite um Hilfe bitten.
* Der Paketname wird durch Auslassungspunkte gekürzt – wie kann ich den vollständigen Namen/die vollständige ID anzeigen?
Dies ist eine bekannte Einschränkung von Winget. Weitere Informationen finden Sie in dieser Ausgabe: microsoft/winget-cli#2603.
* Meine Antivirensoftware sagt mir, dass UniGetUI ein Virus ist! /Mein Browser blockiert den Download von UniGetUI!
Ein häufiger Grund dafür, dass Anwendungen (d. h. ausführbare Dateien) blockiert und/oder als Viren erkannt werden – auch wenn sie keinen bösartigen Code wie UniGetUI enthalten – liegt darin, dass relativ wenige Menschen sie verwenden. Hinzu kommt, dass Sie wahrscheinlich etwas herunterladen, das kürzlich veröffentlicht wurde, und in vielen Fällen ist das Blockieren unbekannter Apps eine gute Vorsichtsmaßnahme gegen echte Malware. Da UniGetUI Open Source ist und sicher zu verwenden ist, setzen Sie die Anwendung bitte in den Einstellungen Ihrer Antivirensoftware/Ihres Browsers auf die Whitelist.
* Sind Winget/Scoop-Beutel sicher?
UniGetUI, Microsoft und Scoop übernehmen keine Verantwortung für zum Download verfügbare Pakete, die von Dritten bereitgestellt werden und theoretisch beschädigt sein könnten. Microsoft hat einige Überprüfungen der auf Winget verfügbaren Software implementiert, um das Risiko des Herunterladens von Malware zu verringern. Dennoch wird empfohlen, dass Sie nur Software von vertrauenswürdigen Herausgebern herunterladen. Weitere Informationen finden Sie im Wiki!
7. Befehlszeilenparameter
Eine vollständige Liste der Parameter finden Sie hier.
8. Beispiel
*…
9. Lizenz
Apache-2.0-Lizenz
Darknet-Objekterkennungs-Framework und YOLO
!darknet und hank.ai-Logo
Darknet ist ein Open-Source-Framework für neuronale Netzwerke, das in C, C++ und CUDA geschrieben ist.
YOLO (You Only Look Once) ist ein hochmodernes Echtzeit-Objekterkennungssystem im Darknet-Framework.
Lesen Sie, wie Hank.ai der Darknet/YOLO-Community hilft
Ankündigung von Darknet V3 „Jazz“
Schauen Sie sich die Darknet/YOLO-Website an
Bitte lesen Sie die Darknet/YOLO-FAQ
Treten Sie dem Darknet/YOLO-Discord-Server bei
Papiere
Papier YOLOv7
Papierskaliert-YOLOv4
Papier YOlov4
Papier YOlov3
Allgemeine Informationen
Das Darknet/YOLO-Framework ist schneller und genauer als andere Frameworks und YOLO-Versionen.
Das Framework ist völlig kostenlos und Open Source. Sie können Darknet/YOLO ohne Lizenzierung oder Gebühren in bestehende Projekte und Produkte – auch kommerzielle Produkte – einbinden.
Darknet V3 („Jazz“), veröffentlicht im Oktober 2024, kann LEGO-Datensatzvideos bei Verwendung einer NVIDIA RTX 3090-GPU präzise mit bis zu 1000 FPS ausführen, was bedeutet, dass jedes Videobild in 1 Millisekunde oder weniger Zeit gelesen, in der Größe geändert und verarbeitet werden kann von Darknet/YOLO.
Wenn Sie Hilfe benötigen oder über Darknet/YOLO diskutieren möchten, treten Sie bitte dem Darknet/YOLO Discord-Server bei: https://discord.gg/zSq8rtW
Die CPU-Version von Darknet/YOLO kann auf einfachen Geräten wie Raspberry Pi, Cloud- und Colab-Servern, Desktops, Laptops und High-End-Schulungsgeräten ausgeführt werden. Die GPU-Version von Darknet/YOLO erfordert die CUDA-kompatible GPU von NVIDIA.
Darknet/YOLO läuft bekanntermaßen unter Linux, Windows und Mac. Schauen Sie sich die Bauanleitung unten an.
Darknet-Version
Die ursprünglichen Darknet-Tools, die Joseph Redmon in den Jahren 2013–2017 geschrieben hatte, hatten keine Versionsnummern. Wir gehen davon aus, dass es sich hierbei um Version 0.x handelt.
Auch das nächste beliebte Darknet-Repository, das zwischen 2017 und 2021 von Alexey Bochkovskiy gepflegt wird, hat keine Versionsnummer. Wir gehen davon aus, dass es sich hierbei um Version 1.x handelt.
Das von Hank.ai gesponserte und ab 2023 von Stéphane Charette gepflegte Darknet-Repository ist das erste, das über einen Versionsbefehl verfügt. Von 2023 bis Ende 2024 erfolgt die Rückkehr zur Version 2.x „OAK“.
Ziel ist es, sich mit der Codebasis vertraut zu machen und dabei möglichst wenig vorhandene Funktionalität zu beeinträchtigen.
Die Build-Schritte wurden neu geschrieben, damit wir mit CMake eine einheitliche Möglichkeit haben, auf Windows und Linux zu erstellen.
Konvertieren Sie die Codebasis, um einen C++-Compiler zu verwenden.
Verbessern Sie chart.png während des Trainings.
Fehlerbehebungen und leistungsbezogene Optimierungen, hauptsächlich im Zusammenhang mit der Reduzierung der Zeit, die zum Trainieren des Netzwerks erforderlich ist.
Der letzte Zweig dieser Codebasis ist Version 2.1 im v2-Zweig.
Die nächste Entwicklungsphase beginnt Mitte 2024 und wird im Oktober 2024 veröffentlicht. Der Versionsbefehl gibt jetzt 3.x „JAZZ“ zurück.
Wenn Sie einen dieser Befehle ausführen müssen, können Sie jederzeit den vorherigen v2-Zweig auschecken. Teilen Sie uns dies bitte mit, damit wir das erneute Hinzufügen fehlender Befehle untersuchen können.
Viele alte und nicht gepflegte Befehle wurden entfernt.
Viele Leistungsoptimierungen, sowohl beim Training als auch bei der Inferenz.
Die alte C-API wurde geändert; Anwendungen, die die ursprüngliche Darknet-API verwenden, erfordern geringfügige Änderungen: https://darknetcv.ai/api/api.html
Neue Darknet V3 C- und C++-API: https://darknetcv.ai/api/api.html
Neue Anwendungen und Beispielcode in src-examples: https://darknetcv.ai/api/files.html
Vortrainierte MSCOCO-Gewichte
Der Einfachheit halber sind mehrere beliebte Versionen von YOLO auf dem MSCOCO-Datensatz vorab trainiert. Dieser Datensatz enthält 80 Kategorien und kann in der Textdatei cfg/coco.names eingesehen werden.
Es stehen mehrere andere einfachere Datensätze und vorab trainierte Gewichte zum Testen von Darknet/YOLO zur Verfügung, beispielsweise LEGO Gears und Rolodex. Weitere Informationen finden Sie in den Darknet/YOLO-FAQ.
Vorab trainierte MSCOCO-Gewichte können von verschiedenen Orten heruntergeladen werden und können auch von diesem Repository heruntergeladen werden:
YOlov2, November 2016
*YOLOv2-tiny
*YOLOv2-full
YOlov3, Mai 2018
* YOLOv3-tiny
*YOlov3-full
YOlov4, Mai 2020
* YOLOv4-tiny
*YOLOv4-full
YOLOv7, August 2022
* YOLOv7-tiny
*YOLOv7-voll
Die vortrainierten MSCOCO-Gewichte dienen nur zu Demonstrationszwecken. Die entsprechenden .cfg- und .names-Dateien für MSCOCO befinden sich im cfg-Verzeichnis. Beispielbefehl:
`Bash
wget --no-clobber https://github.com/hank-ai/darknet/releases/download/v2.0/yolov4-tiny.weights darknet02displayannotatedimages coco.names yolov4-tiny.cfg yolov4-tiny.weights image1.jpg darknet03display_videos coco.names yolov4-tiny.cfg yolov4-tiny.weights video1.avi DarkHelp coco.names yolov4-tiny.cfg yolov4-tiny.weights image1.jpg DarkHelp coco.names yolov4-tiny.cfg yolov4-tiny.weights video1. avi
`
Beachten Sie, dass man sein eigenes Netzwerk trainieren sollte. MSCOCO wird normalerweise verwendet, um zu bestätigen, dass alles ordnungsgemäß funktioniert.
Bauen
Die verschiedenen in der Vergangenheit (vor 2023) verfügbaren Bauweisen wurden zu einer einheitlichen Lösung zusammengeführt. Darknet erfordert C++17 oder höher, OpenCV und die Verwendung von CMake zum Generieren der erforderlichen Projektdateien.
Sie müssen C++ nicht beherrschen, um Darknet/YOLO zu erstellen, zu installieren oder auszuführen, genauso wenig wie Sie Mechaniker sein müssen, um ein Auto zu fahren.
Google Colab
Die Anweisungen für Google Colab sind dieselben wie für Linux. Es gibt mehrere Jupyter-Notebooks, die zeigen, wie bestimmte Aufgaben ausgeführt werden, beispielsweise das Training eines neuen Netzwerks.
Sehen Sie sich das Notebook im Unterverzeichnis „colab“ an oder befolgen Sie die nachstehenden Linux-Anweisungen.
Linux CMake-Methode
1. Abhängigkeiten installieren
`Bash
Sudo apt-get update
sudo apt-get install build-essential git libopencv-dev cmake
`
2. Klonen Sie das Darknet-Repository
`Bash
Git-Klon https://github.com/hank-ai/darknet.git
`
3. Erstellen Sie ein Build-Verzeichnis
`Bash
CD Darknet
mkdir-Build
CD-Build
`
4. Verwenden Sie CMake, um den Build zu konfigurieren
`Bash
cmake -DCMAKEBUILDTYPE=Release ..
`
5. Bauen Sie ein Darknet auf
`Bash
mache -j4
`
6. Darknet installieren
`Bash
sudo make install
`
7. Testen Sie Darknet
`Bash
Darknet-Version
`
Windows CMake-Methoden
1. Abhängigkeiten installieren
`Bash
Winget installiert Git.Git
Winget installiert Kitware.CMake
Winget installiert nsis.nsis
Winget installiert Microsoft.VisualStudio.2022.Community
`
2. Installieren Sie OpenCV
`Bash
CDC:
mkdir C:src
cd C:src
Git-Klon https://github.com/microsoft/vcpkg.git
cd vcpkg
Bootstrap-vcpkg.bat
.vcpkg.exe integrieren installieren
.vcpkg.exe Powershell integrieren
.vcpkg.exe installiere opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
`
3. Klonen Sie das Darknet-Repository
`Bash
cd C:src
Git-Klon https://github.com/hank-ai/darknet.git
`
4. Erstellen Sie ein Build-Verzeichnis
`Bash
CD Darknet
mkdir-Build
CD-Build
`
5. Verwenden Sie CMake, um den Build zu konfigurieren
`Bash
cmake -DCMAKEBUILDTYPE=Release -DCMAKETOOLCHAINFILE=C:srcvcpkgscriptsbuildsystemsvcpkg.cmake ..
`
6. Erstellen Sie Darknet mit Visual Studio
`Bash
msbuild.exe /property:Platform=x64;Configuration=Release /target:Build -maxCpuCount -verbosity:normal -detailedSummary darknet.sln
`
7. Erstellen Sie ein NSIS-Installationspaket
`Bash
msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj
`
8. Führen Sie Darknet aus
`Bash
C:srcdarknetbuildsrc-cliReleasedarknet.exe-Version
`
Nutzung von Darknet
CLI
Im Folgenden finden Sie keine vollständige Liste aller von Darknet unterstützten Befehle.
Beachten Sie neben der Darknet-CLI auch die DarkHelp-Projekt-CLI, die eine alternative CLI zu Darknet/YOLO bereitstellt. DarkHelp CLI verfügt außerdem über mehrere erweiterte Funktionen, die im Darknet nicht zu finden sind. Sie können die Darknet-CLI und die DarkHelp-CLI zusammen verwenden, sie schließen sich nicht gegenseitig aus.
Für die meisten der unten gezeigten Befehle benötigen Sie die .weights-Datei und die entsprechenden .names- und .cfg-Dateien. Sie können das Netzwerk selbst trainieren (sehr empfehlenswert!) oder neuronale Netzwerke herunterladen, die andere trainiert haben und im Internet frei verfügbar sind. Beispiele für Datensätze vor dem Training sind:
LEGO Gears (Objekte in Bildern finden)
Rolodex (Text im Bild finden)
MSCOCO (Standardklasse 80 Objekterkennung)
Zu den auszuführenden Befehlen gehören:
Listen Sie einige mögliche Befehle und Optionen auf, die ausgeführt werden können:
Darknet-Hilfe
Version prüfen:
Darknet-Version
Verwenden Sie Bilder, um Vorhersagen zu treffen:
V2: Darknet-Detektortest car.data car.cfg car_best.weights image1.jpg
V3: darknet02displayannotatedimages cars.cfg image1.jpg
DarkHelp: DarkHelp Cars.cfg Cars.cfg Cars_Best.weights Bild1.jpg
Ausgabekoordinaten:
V2: Darknet-Detektortest Animals.data Animals.cfg Animalsbest.weights -extoutput Dog.jpg
V3: Darknet01inference_images Tiere Hund.jpg
DarkHelp: DarkHelp --json Animals.cfg Animals.names Animals_best.weights Hund.jpg
Video verwenden:
V2: Darknet-Detektor-Demo Animals.data Animals.cfg Animalsbest.weights -extoutput test.mp4
V3: darknet03display_videos Animals.cfg test.mp4
DarkHelp: DarkHelp Animals.cfg Animals.Names Animals_Best.Weights Test.mp4
Lesung per Webcam:
V2: Darknet-Detektor-Demo Animals.data Animals.cfg Animals_best.weights -c 0
V3: darknet08display_webcam Tiere
Ergebnisse als Video speichern:
V2: Darknet-Detektor-Demo Animals.data Animals.cfg Animalsbest.weights test.mp4 -outfilename res.avi
V3: Darknet05processvideosmultithreaded Animals.cfg Animals.Names Animals_Best.Weights Test.mp4
DarkHelp: DarkHelp Animals.cfg Animals.Names Animals_Best.Weights Test.mp4
JSON:
V2: Darknet-Detektor-Demo Animals.data Animals.cfg Animalsbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
V3: darknet06imagestojson Animals image1.jpg
DarkHelp: DarkHelp --json Animals.names Animals.cfg Animals_best.weights image1.jpg
Auf einer bestimmten GPU ausführen:
V2: Darknet-Detektor-Demo Animals.data Animals.cfg Animals_best.weights -i 1 test.mp4
Überprüfen Sie die Genauigkeit des neuronalen Netzwerks:
`Bash
Darknet-Detektorkarte fahren.daten fahren.cfg fahren_best.gewichte ...
ID-Name AvgPrecision TP FN FP TN Accuracy ErrorRate Precision Recall Specificity FalsePosRate
-- ---- ------------ ------ ------ ------ ------ -------- --------- --------- ------ ---------- ----------
0 Fahrzeug 91,2495 32648 3903 5826 65129 0,9095 0,0905 0,8486 0,8932 0,9179 0,0821
1 Motorrad 80,4499 2936 513 569 5393 0,8850 0,1150 0,8377 0,8513 0,9046 0,0954
2 Fahrrad 89,0912 570 124 104 3548 0,9475 0,0525 0,8457 0,8213 0,9715 0,0285
3 Personen 76,7937 7072 1727 2574 27523 0,8894 0,1106 0,7332 0,8037 0,9145 0,0855
4 viele Fahrzeuge 64,3089 1068 509 733 11288 0,9087 0,0913 0,5930 0,6772 0,9390 0,0610
5 grünes Licht 86,8118 1969 239 510 4116 0,8904 0,1096 0,7943 0,8918 0,8898 0,1102
6 gelbes Licht 82,0390 126 38 30 1239 0,9525 0,0475 0,8077 0,7683 0,9764 0,0236
7 rotes Licht 94,1033 3449 217 451 4643 0,9237 0,0763 0,8844 0,9408 0,9115 0,0885
`
Überprüfen Sie die Genauigkeit mAP@IoU=75:
Darknet-Detektorkarte Animals.data Animals.cfg Animalsbest.weights -iouthresh 0,75
Die Neuberechnung von Ankerpunkten erfolgt am besten in DarkMark, da es 100 Mal hintereinander ausgeführt wird und aus allen berechneten Ankerpunkten den besten Ankerpunkt auswählt. Wenn Sie jedoch eine ältere Version im Darknet ausführen möchten:
Darknet-Detektor calcanchors Animals.data -numof_clusters 6 -width 320 -height 256
Trainieren Sie ein neues Netzwerk:
Darknet Detector -map -dont_show train Animals.data Animals.cfg (siehe auch Trainingsabschnitt unten)
Zug
Schnelle Links zu relevanten Abschnitten der Darknet/YOLO-FAQ:
Wie soll ich meine Dateien und Verzeichnisse einrichten?
Welches Profil soll ich verwenden?
Welchen Befehl sollten Sie beim Training Ihres eigenen Netzwerks verwenden?
Die Verwendung von DarkMark zum Erstellen aller erforderlichen Darknet-Dateien ist die einfachste Möglichkeit zum Kommentieren und Trainieren. Dies ist definitiv die empfohlene Methode zum Trainieren neuer neuronaler Netze.
Wenn Sie die verschiedenen Dateien manuell einrichten möchten, um ein benutzerdefiniertes Netzwerk zu trainieren:
1. Erstellen Sie einen neuen Ordner
Erstellen Sie einen neuen Ordner zum Speichern der Dateien. Sie erstellen beispielsweise ein neuronales Netzwerk zur Erkennung von Tieren. Erstellen Sie daher das folgende Verzeichnis: ~/nn/animals/.
2. Kopieren Sie die Konfigurationsdatei
Kopieren Sie eine der Darknet-Konfigurationsdateien, die Sie als Vorlage verwenden möchten. Siehe beispielsweise cfg/yolov4-tiny.cfg. Platzieren Sie es in dem von Ihnen erstellten Ordner. Jetzt haben wir zum Beispiel ~/nn/animals/animals.cfg.
3. Erstellen Sie eine .names-Datei
Erstellen Sie eine Textdatei „animals.names“ in demselben Ordner, in dem Sie die Konfigurationsdatei ablegen. Zum Beispiel haben wir jetzt ~/nn/animals/animals.names.
4. Bearbeiten Sie die .names-Datei
Verwenden Sie einen Texteditor, um die Datei Animals.names zu bearbeiten. Listen Sie die Kategorien auf, die Sie verwenden möchten. Es muss genau ein Eintrag pro Zeile, keine Leerzeilen und keine Kommentare vorhanden sein. Die .names-Datei enthält beispielsweise genau 4 Zeilen:
`
Hund
Katze
Vogel
Pferd
`
5. Erstellen Sie eine .data-Datei
Erstellen Sie im selben Ordner eine Animals.data-Textdatei. Eine .data-Datei würde beispielsweise Folgendes enthalten:
`
Klassen=4
train=/home/username/nn/animals/animals_train.txt
valid=/home/username/nn/animals/animals_valid.txt
Namen=/home/Benutzername/nn/animals/animals.names
backup=/home/username/nn/animals
`
6. Erstellen Sie einen Datensatzordner
Erstellen Sie einen Ordner zum Speichern Ihrer Bilder und Anmerkungen. Dies könnte beispielsweise ~/nn/animals/dataset sein. Für jedes Bild ist eine entsprechende TXT-Datei erforderlich, die die Anmerkungen für dieses Bild beschreibt. Das Format von TXT-Kommentardateien ist sehr spezifisch. Sie können diese Dateien nicht manuell erstellen, da jede Anmerkung die genauen Koordinaten der Anmerkung enthalten muss. Schauen Sie sich DarkMark oder eine andere ähnliche Software an, um Ihre Bilder mit Anmerkungen zu versehen. Das YOLO-Annotationsformat wird in den Darknet/YOLO-FAQ beschrieben.
7. Erstellen Sie „train“- und „valid“-Dateien
Erstellen Sie „train“- und „valid“-Textdateien mit den Namen in der .data-Datei. Diese beiden Textdateien müssen alle Bilder auflisten, die Darknet zum Training bzw. zur Validierung bei der Berechnung von mAP% verwenden muss. Genau ein Bild pro Zeile. Pfade und Dateinamen können relativ oder absolut sein.
8. Ändern Sie die .cfg-Datei
Verwenden Sie einen Texteditor, um Ihre .cfg-Datei zu ändern.
* Stellen Sie sicher, dass Batch=64 ist.
* Auf Unterteilungen achten. Abhängig von der Netzwerkgröße und der auf der GPU verfügbaren Speichermenge müssen Sie möglicherweise die Unterteilungen erhöhen. Der optimale Wert ist 1, also beginnen Sie mit 1. Wenn 1 bei Ihnen nicht funktioniert, lesen Sie bitte die Darknet/YOLO-FAQ.
Beachten Sie maxbatches=…. Ein guter Anfangswert ist die 2000-fache Anzahl der Kategorien. Wir haben zum Beispiel 4 Tiere, also 4 2000 = 8000. Das bedeutet, dass wir maxbatches=8000 verwenden werden.
* Schritte beachten=…. Dies sollte auf 80 % und 90 % der maxbatches eingestellt werden. Da „maxbatches“ beispielsweise auf 8000 eingestellt ist, verwenden wir „steps=6400,7200“.
* Beachten Sie width=... und height=.... Dies sind Netzwerkdimensionen. Die Darknet/YOLO-FAQ erklärt, wie man die optimale Größe berechnet.
Suchen Sie im Abschnitt [convolutional] vor jedem Abschnitt [yolo] alle Instanzen der Zeilen „classes=...“ und „filters=…“. Der zu verwendende Wert ist (Anzahl der Klassen + 5) 3. Das bedeutet, dass für dieses Beispiel (4 + 5) * 3 = 27 ist. Daher werden wir in der entsprechenden Zeile filter=27 verwenden.
9. Beginnen Sie mit dem Training
Führen Sie den folgenden Befehl aus:
`Bash
cd ~/nn/animals/
Darknet-Detektor -map -dont_show train Animals.data Animals.cfg
`
Sei geduldig. Die besten Gewichte werden als Animals_best.weights gespeichert. Sie können den Trainingsfortschritt verfolgen, indem Sie die Datei chart.png anzeigen. Weitere Parameter, die Sie möglicherweise beim Training eines neuen Netzwerks verwenden möchten, finden Sie in den Darknet/YOLO-FAQ.
Wenn Sie während des Trainings weitere Details sehen möchten, fügen Sie den Parameter --verbose hinzu. Zum Beispiel:
`Bash
Darknet-Detektor -map -dont_show --verbose train Animals.data Animals.cfg
`
Weitere Tools und Links
Um Ihr Darknet/YOLO-Projekt zu verwalten, Bilder zu kommentieren, Ihre Anmerkungen zu validieren und die für das Training mit Darknet erforderlichen Dateien zu generieren, schauen Sie sich DarkMark an.
Eine leistungsstarke alternative CLI zu Darknet für die Verwendung von Bildzusammenfügung, Objektverfolgung in Videos oder die Verwendung einer leistungsstarken C++-API, die problemlos in kommerziellen Anwendungen verwendet werden kann, finden Sie bei DarkHelp.
Sehen Sie sich die Darknet/YOLO-FAQ an, um zu sehen, ob sie Ihnen bei der Beantwortung Ihrer Frage helfen kann.
Schauen Sie sich die vielen Tutorials und Beispielvideos auf Stéphanes YouTube-Kanal an
Wenn Sie Supportfragen haben oder mit anderen Darknet/YOLO-Benutzern chatten möchten, treten Sie bitte dem Darknet/YOLO-Discord-Server bei.
Roadmap
Zuletzt aktualisiert am 30.10.2024:
Vollendet
Während des Trainings wurde qsort() durch std::sort() ersetzt (einige weitere Unklarheiten bestehen noch)
Check_mistakes, getchar() und system() entfernen
Konvertieren Sie Darknet zur Verwendung eines C++-Compilers (g++ unter Linux, Visual Studio unter Windows)
Windows-Build reparieren
Korrigieren Sie die Python-Unterstützung
Erstellen Sie eine Darknet-Bibliothek
Labels in Vorhersagen wieder aktivieren („Alphabet“-Code)
CUDA/GPU-Code erneut aktivieren
Aktivieren Sie CUDNN erneut
Aktivieren Sie die CUDNN-Hälfte erneut
Codieren Sie die CUDA-Architektur nicht fest
Bessere Informationen zur CUDA-Version
Aktivieren Sie AVX erneut
Entfernen Sie die alte Lösung und das Makefile
Machen Sie OpenCV nicht optional
Entfernen Sie die Abhängigkeit von der alten Pthread-Bibliothek
STB löschen
Schreiben Sie CMakeLists.txt neu, um die neue CUDA-Instrumentierung zu verwenden
Alter „Alphabet“-Code entfernt und über 700 Bilder in Daten/Beschriftungen gelöscht
Erstellen Sie außerhalb des Quellcodes
Bessere Ausgabe der Versionsnummer
Trainingsbezogene Leistungsoptimierungen (laufende Aufgaben)
Leistungsoptimierungen im Zusammenhang mit Inferenz (laufende Aufgaben)
Verwenden Sie nach Möglichkeit Referenzen nach Wert
Bereinigen Sie .hpp-Dateien
Darknet.h neu schreiben
Konvertieren Sie cv::Mat nicht in void, sondern verwenden Sie es stattdessen als richtiges C++-Objekt
Korrigieren oder behalten Sie die konsistente Verwendung interner Bildstrukturen bei
Fix-Build für ARM-basierte Jetson-Geräte
*Es ist unwahrscheinlich, dass Original-Jetson-Geräte repariert werden, da sie von NVIDIA nicht mehr unterstützt werden (kein C++17-Compiler).
* Neues Jetson Orin-Gerät jetzt in Betrieb
Korrigieren Sie die Python-API in V3
* Benötigen Sie eine bessere Python-Unterstützung (gibt es Python-Entwickler, die bereit sind zu helfen?)
kurzfristige Ziele
Ersetzen Sie printf() durch std::cout (in Arbeit)
Untersuchen Sie die Unterstützung alter ZED-Kameras
Bessere, konsistentere Befehlszeilenanalyse (in Arbeit)
mittelfristige Ziele
Entfernen Sie alle Zeichencodes und ersetzen Sie sie durch std::string
Warnungen nicht ausblenden und Compiler-Warnungen bereinigen (in Arbeit)
Besser cv::Mat statt benutzerdefinierter Bildstrukturen in C verwenden (in Arbeit)
Ersetzen Sie alte Listenfunktionen durch std::vector oder std::list
Unterstützung für 1-Kanal-Graustufenbilder behoben
Unterstützung für N-Kanal-Bilder hinzufügen, bei denen N > 3 (z. B. Bilder mit zusätzlicher Tiefe oder Wärmekanäle)
Laufende Codebereinigung (in Bearbeitung)
langfristige Ziele
Beheben Sie CUDA/CUDNN-Probleme auf allen GPUs
Schreiben Sie den CUDA+cuDNN-Code neu
Untersuchen Sie, Unterstützung für Nicht-NVIDIA-GPUs hinzuzufügen
Gedrehter Begrenzungsrahmen oder eine Art „Winkel“-Unterstützung
Schlüsselpunkte/Skelett
Heatmap (in Arbeit)
Segmentierung