Cloud-nativer Hochleistungs-Edge-/Middle-/Service-Proxy
Envoy wird von der Cloud Native Computing Foundation (CNCF) gehostet. Wenn Sie ein Unternehmen sind, das die Entwicklung von Technologien mitgestalten möchte, die in Containern verpackt, dynamisch geplant und auf Microservices ausgerichtet sind, sollten Sie den Beitritt zur CNCF in Betracht ziehen beteiligt sind und welche Rolle Envoy spielt, lesen Sie die CNCF-Ankündigung.
Dokumentation
Hinweis des Downcodes-Editors: Envoy verfügt über eine vollständige Dokumentation. Sie können auf die folgenden Ressourcen zurückgreifen:
Offizielle Dokumentation
GitHub-Repository
Verwandt
Anmerkung des Herausgebers: Envoy ist eng mit den folgenden Technologien verbunden:
Containertechnologie: Docker, Kubernetes
Service-Mesh: Istio, Linkerd
Microservice-Architektur: gRPC, RESTful API
Kontakt
Hinweis des Downcodes-Editors: Sie können die Envoy-Community über die folgenden Kanäle kontaktieren:
Mailingliste
Slack-Kanal
Mitwirken
Hinweis vom Downcodes-Editor: Wenn Sie Code zum Envoy-Projekt beitragen möchten, befolgen Sie bitte die folgenden Schritte:
1. Machen Sie sich mit der Codebasis vertraut: Lesen Sie den Quellcode von Envoy, um dessen Struktur und Design zu verstehen.
2. Wählen Sie eine Aufgabe aus: Wählen Sie im GitHub-Repository eine Aufgabe aus, die Sie interessiert.
3. Code senden: Befolgen Sie die Codierungsstilspezifikationen von Envoy und senden Sie Ihren Code.
Gemeindetreffen
Anmerkung des Herausgebers: Die Envoy-Community trifft sich zweimal im Monat dienstags um 9 Uhr pazifischer Zeit.
Google Kalender
Sitzungsprotokolle
Hinweis des Downcodes-Editors: Jedes Community-Mitglied kann ein Problem ansprechen, indem es es zum Besprechungsprotokoll hinzufügt. Der Betreuer bestätigt das Thema innerhalb von 24 Stunden. Wenn für die Besprechung keine bestätigten Themen vorliegen, wird die Besprechung innerhalb von 24 Stunden vor der Besprechungszeit abgesagt.
Sicherheit
Anmerkung des Downcodes-Editors: Das Envoy-Projekt legt großen Wert auf Sicherheitsfragen.
Sicherheitsaudit
Anmerkung des Downcodes-Editors: Das Envoy-Projekt wurde mehreren Sicherheitsüberprüfungen durch Dritte unterzogen.
Sicherheitslücken melden
Hinweis des Downcodes-Editors: Wenn Sie eine Sicherheitslücke im Envoy-Projekt entdecken, senden Sie den Schwachstellenbericht bitte an [email protected]. Wir senden Ihnen eine Bestätigungs-E-Mail, um Ihre Meldung zu bestätigen. Weitere E-Mails senden wir Ihnen, sobald wir festgestellt haben, ob das Problem besteht.
Hinweis des Downcodes-Editors: Weitere Informationen finden Sie in unserem vollständigen sicheren Freigabeprozess.
Veröffentlichungen
Hinweis des Downcodes-Editors: Weitere Informationen zu Envoy-Versionsveröffentlichungen finden Sie in unserem Veröffentlichungsprozess.
Beispiel
`
Apache-2.0-Lizenz
Inhaltsverzeichnis
Darknet Object Detection Framework und YOLO
Papiere
Allgemeine Informationen
Darknet-Version
Vortrainierte MSCOCO-Gewichte
Gebäude
Google Colab
Linux CMake-Methode
Windows CMake-Methode
Nutzung von Darknet
CLI
Ausbildung
Andere Tools und Links
Roadmap
Kurzfristige Ziele
Mittelfristige Ziele
Langfristige Ziele
Darknet Object Detection Framework und YOLO
!Darknet-Logo
!Hank.ai-Logo
Anmerkung des Herausgebers: Darknet ist ein Open-Source-Framework für neuronale Netzwerke, das in C, C++ und CUDA geschrieben ist.
Anmerkung des Downcodes-Editors: YOLO (You Only Look Once) ist ein hochmodernes Echtzeit-Zielerkennungssystem, das im Darknet-Framework läuft.
Anmerkung des Downcodes-Editors: Erfahren Sie mehr darüber, wie Hank.ai der Darknet/YOLO-Community hilft.
Anmerkung des Herausgebers: Downcodes: Darknet/YOLO-Website
Anmerkung des Herausgebers zu Downcodes: Darknet/YOLO-FAQ
Anmerkung des Herausgebers: Darknet/YOLO Discord Server
Papiere
Anmerkung des Downcodes-Editors: Im Folgenden finden Sie einige Artikel zu YOLO:
1. YOLOv7: Papierlink
2. Scaled-YOLOv4: Papierlink
3. YOLOv4: Papierlink
4. YOLOv3: Papierlink
Allgemeine Informationen
Anmerkung der Redaktion: Das Darknet/YOLO-Framework ist schneller und genauer als andere Frameworks und YOLO-Versionen.
Hinweis des Downcodes-Editors: Das Framework ist völlig kostenlos und Open Source. Sie können Darknet/YOLO ohne Lizenz oder Gebühren in bestehende Projekte und Produkte integrieren, auch in kommerzielle Produkte.
Downcodes Anmerkung des Herausgebers: Darknet V3 („Jazz“), das im Oktober 2024 veröffentlicht wurde, kann LEGO-Datensatzvideos mit bis zu 1000 FPS präzise ausführen, was bedeutet, dass jedes Videobild bei Verwendung einer NVIDIA RTX 3090-GPU in 1 Millisekunde aufgenommen oder gelesen, in der Größe geändert und verarbeitet werden kann von Darknet/YOLO in kürzerer Zeit.
Hinweis des Downcodes-Editors: 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
Hinweis des Downcodes-Editors: Die CPU-Version von Darknet/YOLO kann auf einfachen Geräten wie Raspberry Pi, Cloud-Servern und Colab-Servern, Desktops, Laptops und High-End-Schulungsgeräten ausgeführt werden. Die GPU-Version von Darknet/YOLO erfordert eine GPU mit NVIDIA CUDA-Unterstützung.
Anmerkung des Downcodes-Editors: Darknet/YOLO läuft bekanntermaßen unter Linux, Windows und Mac. Siehe Bauanleitung unten.
Darknet-Version
Anmerkung des Herausgebers zu Downcodes: Das ursprüngliche Darknet-Tool, das 2013–2017 von Joseph Redmon geschrieben wurde, hatte keine Versionsnummer. Wir betrachten diese Version als 0.x.
Anmerkung des Herausgebers zu Downcodes: Auch das nächste beliebte Darknet-Repository, das von Alexey Bochkovskiy von 2017 bis 2021 gepflegt wird, hat keine Versionsnummer. Wir glauben, dass es sich bei dieser Version um 1.x handelt.
Anmerkung des Herausgebers zu Downcodes: Das von Hank.ai gesponserte und ab 2023 von Stéphane Charette verwaltete Darknet-Repository ist das erste Repository mit einem Versionsbefehl. Von 2023 bis Ende 2024 erfolgt die Rückkehr zur Version 2.x „OAK“.
Anmerkung des Downcodes-Editors: Das Ziel besteht darin, die Unterbrechung vorhandener Funktionen zu minimieren und sich gleichzeitig mit der Codebasis vertraut zu machen.
Anmerkung des Herausgebers: Downcodes: Die Build-Schritte wurden neu geschrieben, damit wir eine einheitliche Möglichkeit haben, mit CMake auf Windows und Linux zu bauen.
Anmerkung des Herausgebers zu Downcodes: Konvertieren Sie die Codebasis, um einen C++-Compiler zu verwenden.
Anmerkung des Herausgebers zu Downcodes: chart.png wurde während des Trainings verbessert.
Hinweis des Downcodes-Editors: Fehlerbehebungen und leistungsbezogene Optimierungen beziehen sich hauptsächlich auf die Verkürzung der Zeit, die zum Trainieren des Netzwerks erforderlich ist.
Hinweis vom Downcodes-Editor: Der letzte Zweig dieser Codebasis ist Version 2.1 im v2-Zweig.
Anmerkung des Herausgebers: Die nächste Entwicklungsphase beginnt Mitte 2024 und wird im Oktober 2024 veröffentlicht. Der Versionsbefehl gibt jetzt 3.x „JAZZ“ zurück.
Hinweis vom Downcodes-Editor: Wenn Sie einen dieser Befehle ausführen müssen, können Sie sich jederzeit den vorherigen v2-Zweig ansehen. Teilen Sie uns dies bitte mit, damit wir das erneute Hinzufügen fehlender Befehle untersuchen können.
Anmerkung des Herausgebers zu Downcodes: Viele alte und nicht gepflegte Befehle wurden entfernt.
Anmerkung des Downcodes-Editors: Viele Leistungsoptimierungen, einschließlich Optimierungen während des Trainings und der Inferenz.
Anmerkung des Herausgebers: Die alte C-API wurde geändert; Anwendungen, die die ursprüngliche Darknet-API verwenden, erfordern einige geringfügige Änderungen: https://darknetcv.ai/api/api.html
Hinweis vom Downcodes-Editor: Neue Darknet V3 C- und C++-API: https://darknetcv.ai/api/api.html
Anmerkung des Herausgebers zu Downcodes: Neue Anwendungen und Beispielcodes in src-examples: https://darknetcv.ai/api/files.html
Vortrainierte MSCOCO-Gewichte
Anmerkung des Herausgebers: Der Einfachheit halber sind mehrere beliebte YOLO-Versionen vorab trainiert, um in den MSCOCO-Datensatz zu passen. Dieser Datensatz hat 80 Kategorien und kann in der Textdatei cfg/coco.names eingesehen werden.
Anmerkung des Herausgebers: Es gibt mehrere andere einfachere Datensätze und vorab trainierte Gewichte, die zum Testen von Darknet/YOLO verwendet werden können, wie zum Beispiel LEGO Gears und Rolodex. Weitere Informationen finden Sie in den Darknet/YOLO-FAQ.
Hinweis des Downcodes-Editors: Vorab trainierte MSCOCO-Gewichte können von verschiedenen Orten oder aus diesem Repository heruntergeladen werden:
1. YOLOv2, November 2016:
*YOLOv2-tiny
*YOLOv2-full
2. YOlov3, Mai 2018:
* YOLOv3-tiny
*YOlov3-full
3. YOlov4, Mai 2020:
* YOLOv4-tiny
*YOLOv4-full
4. YOLOv7, August 2022:
* YOLOv7-tiny
*YOLOv7-voll
Hinweis des Downcodes-Editors: Die vorab trainierten MSCOCO-Gewichte dienen nur zu Demonstrationszwecken. Die entsprechenden .cfg- und .names-Dateien für MSCOCO befinden sich im cfg-Verzeichnis. Beispielbefehl:
`
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
`
Anmerkung des Herausgebers: Bitte beachten Sie, dass die Leute ihre eigenen Netzwerke trainieren sollten. MSCOCO wird häufig verwendet, um zu bestätigen, dass alles ordnungsgemäß funktioniert.
Gebäude
Anmerkung des Herausgebers: Verschiedene Build-Methoden aus der Vergangenheit (vor 2023) 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.
Anmerkung des Herausgebers: Sie müssen nicht über C++-Kenntnisse verfügen, um Darknet/YOLO zu erstellen, zu installieren oder auszuführen, genauso wie Sie kein Mechaniker sein müssen, um ein Auto zu fahren.
Google Colab
Hinweis des Downcodes-Editors: Die Anweisungen für Google Colab sind dieselben wie für Linux. Es sind mehrere Jupyter-Notebooks verfügbar, die zeigen, wie bestimmte Aufgaben ausgeführt werden, beispielsweise das Training eines neuen Netzwerks.
Downcodes Anmerkung des Herausgebers: Sehen Sie sich das Notizbuch im Unterverzeichnis colab an oder befolgen Sie die nachstehenden Linux-Anweisungen.
Linux CMake-Methode
Anmerkung des Herausgebers: Downcodes: Linux-Build-Tutorial von Darknet
Anmerkung des Herausgebers: Downcodes: Optional: Wenn Sie über eine moderne NVIDIA-GPU verfügen, können Sie zu diesem Zeitpunkt CUDA oder CUDA+cuDNN installieren. Falls installiert, nutzt Darknet Ihre GPU, um die Bild- (und Video-)Verarbeitung zu beschleunigen.
Hinweis des Herausgebers: Sie müssen die Datei CMakeCache.txt aus dem Darknet-Build-Verzeichnis löschen, um CMake zu zwingen, alle erforderlichen Dateien erneut zu finden.
Hinweis des Downcodes-Editors: Bitte denken Sie daran, Darknet neu zu erstellen.
Anmerkung des Herausgebers zu Downcodes: Darknet kann ausgeführt werden, aber wenn Sie ein benutzerdefiniertes Netzwerk trainieren möchten, benötigen Sie CUDA oder CUDA+cuDNN.
Hinweis vom Downcodes-Editor: Besuchen Sie https://developer.nvidia.com/cuda-downloads, um CUDA herunterzuladen und zu installieren.
Hinweis vom Downcodes-Editor: Besuchen Sie https://developer.nvidia.com/rdp/cudnn-download oder https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn-package-manager- Installationsübersicht Laden Sie cuDNN herunter und installieren Sie es.
Hinweis vom Downcodes-Editor: Stellen Sie nach der Installation von CUDA sicher, dass Sie nvcc und nvidia-smi ausführen können. Möglicherweise müssen Sie die PATH-Variable ändern.
Hinweis vom Downcodes-Editor: Wenn Sie CUDA oder CUDA+cuDNN später installieren oder auf eine neuere Version der NVIDIA-Software aktualisieren:
Hinweis des Downcodes-Editors: Diese Anweisungen gehen von einem System aus, auf dem Ubuntu 22.04 läuft (aber erfordern es nicht!). Wenn Sie eine andere Distribution verwenden, passen Sie diese nach Bedarf an.
`Bash
sudo apt-get install build-essential git libopencv-dev cmake
mkdir ~/srccd ~/src
Git-Klon https://github.com/hank-ai/darknetcd Darknet
mkdir buildcd build
cmake -DCMAKEBUILDTYPE=Release ..
Erstellen Sie ein -j4-Paket
sudo dpkg -i darknet-VERSION.deb
`
Hinweis vom Downcodes-Editor: Wenn Sie eine ältere Version von CMake verwenden, müssen Sie CMake aktualisieren, bevor Sie den oben genannten cmake-Befehl ausführen. Das Upgrade von CMake unter Ubuntu kann mit dem folgenden Befehl durchgeführt werden:
`Bash
sudo apt-get purge cmakesudo snap install cmake --classic
`
Anmerkung des Herausgebers: Wenn Sie Bash als Befehls-Shell verwenden, müssen Sie Ihre Shell hier neu starten. Wenn Sie Fisch verwenden, sollte dieser sofort den neuen Weg einschlagen.
Anmerkung des Herausgebers zu Downcodes: Fortgeschrittene Benutzer:
Anmerkung des Downcodes-Editors: Wenn Sie eine RPM-Installationsdatei anstelle einer DEB-Datei erstellen möchten, sehen Sie sich bitte die entsprechenden Zeilen in CM_package.cmake an. Bevor Sie make -j4 package ausführen, müssen Sie diese beiden Zeilen bearbeiten:
`
SET (CPACKGENERATOR „DEB“)# SET (CPACKGENERATOR „RPM“)
`
Hinweis vom Downcodes-Editor: Für Distributionen wie Centos und OpenSUSE müssen Sie diese beiden Zeilen in CM_package.cmake ändern in:
`
SET (CPACKGENERATOR „DEB“)SET (CPACKGENERATOR „RPM“)
`
Anmerkung des Herausgebers: Um das Installationspaket zu installieren, verwenden Sie nach Abschluss der Erstellung den üblichen Paketmanager Ihrer Distribution. Beispielsweise auf einem Debian-basierten System wie Ubuntu:
`Bash
sudo dpkg -i darknet-2.0.1-Linux.deb
`
Hinweis vom Downcodes-Editor: Durch die Installation des .deb-Pakets werden die folgenden Dateien kopiert:
/usr/bin/darknet ist die übliche ausführbare Darknet-Datei. Führen Sie die Darknet-Version über die CLI aus, um zu bestätigen, dass sie korrekt installiert ist.
/usr/include/darknet.h ist die Darknet-API, die von C-, C++- und Python-Entwicklern verwendet wird.
/usr/include/darknet_version.h enthält die Versionsinformationen des Entwicklers.
/usr/lib/libdarknet.so ist eine Bibliothek, mit der C-, C++- und Python-Entwickler verknüpfen können.
/opt/darknet/cfg/... ist der Ort, an dem alle .cfg-Vorlagen gespeichert sind.
Hinweis des Downcodes-Editors: Sie sind jetzt fertig! Darknet ist in /usr/bin/ eingebaut und installiert. Führen Sie zum Testen den folgenden Befehl aus: Darknet-Version.
Anmerkung des Downcodes-Editors: Wenn Sie /usr/bin/darknet nicht haben, bedeutet das, dass Sie es nicht installiert, sondern nur erstellt haben! Bitte stellen Sie sicher, dass Sie die oben genannten Schritte befolgen, um die .deb- oder .rpm-Datei zu installieren.
Windows CMake-Methode
Anmerkung des Herausgebers: Diese Anweisungen gehen von einer Neuinstallation von Windows 11 22H2 aus.
Hinweis vom Downcodes-Editor: Öffnen Sie ein normales cmd.exe-Eingabeaufforderungsfenster und führen Sie den folgenden Befehl aus:
`Bash
Winget installiert Git.Git
Winget installiert Kitware.CMake
Winget installiert nsis.nsis
Winget installiert Microsoft.VisualStudio.2022.Community
`
Hinweis vom Downcodes-Editor: An dieser Stelle müssen wir die Visual Studio-Installation ändern, um Unterstützung für C++-Anwendungen einzuschließen:
1. Klicken Sie auf das „Windows-Start“-Menü und führen Sie „Visual Studio Setup“ aus.
2. Klicken Sie auf Bearbeiten.
3. Wählen Sie Desktop-Entwicklung mit C++.
4. Klicken Sie unten rechts auf Bearbeiten und dann auf Ja.
Anmerkung des Herausgebers: Sobald alles heruntergeladen und installiert ist, klicken Sie erneut auf das Windows-Startmenü und wählen Sie „Entwickler-Eingabeaufforderung für VS 2022“. Verwenden Sie PowerShell nicht, um diese Schritte auszuführen, da sonst Probleme auftreten können!
Anmerkung des Herausgebers zu Downcodes: Fortgeschrittene Benutzer:
Anmerkung des Herausgebers: Zusätzlich zur Ausführung der Entwickler-Eingabeaufforderung können Sie sich auch über eine normale Eingabeaufforderung oder SSH am Gerät anmelden und „ProgrammeMicrosoft Visual Studio2022CommunityCommon7ToolsVsDevCmd.bat“ manuell ausführen.
Anmerkung des Herausgebers zu Downcodes: Sobald Sie die obige Entwickler-Eingabeaufforderung (nicht PowerShell!) ausgeführt haben, führen Sie den folgenden Befehl aus, um Microsoft VCPKG zu installieren, das zum Erstellen von OpenCV verwendet wird:
`Bash
cd c:mkdir c:srccd c:src
Git-Klon https://github.com/microsoft/vcpkgcd vcpkg
Bootstrap-vcpkg.bat .vcpkg.exe integrieren Installation
.vcpkg.exe integriert Powershell
.vcpkg.exe installiere opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
`
Anmerkung des Herausgebers: Bitte haben Sie etwas Geduld mit diesem letzten Schritt, da die Ausführung lange dauern kann. Es erfordert das Herunterladen und Erstellen einer Menge Dinge.
Anmerkung des Herausgebers zu Downcodes: Fortgeschrittene Benutzer:
Anmerkung des Herausgebers: Bitte beachten Sie, dass Sie beim Erstellen von OpenCV möglicherweise viele andere optionale Module hinzufügen müssen. Führen Sie „.vcpkg.exe search opencv“ aus, um die vollständige Liste anzuzeigen.
Anmerkung des Herausgebers: Downcodes: Optional: Wenn Sie über eine moderne NVIDIA-GPU verfügen, können Sie zu diesem Zeitpunkt CUDA oder CUDA+cuDNN installieren. Falls installiert, nutzt Darknet Ihre GPU, um die Bild- (und Video-)Verarbeitung zu beschleunigen.
Hinweis des Herausgebers: Sie müssen die Datei CMakeCache.txt aus dem Darknet-Build-Verzeichnis löschen, um CMake zu zwingen, alle erforderlichen Dateien erneut zu finden.
Hinweis des Downcodes-Editors: Bitte denken Sie daran, Darknet neu zu erstellen.
Anmerkung des Herausgebers zu Downcodes: Darknet kann ausgeführt werden, aber wenn Sie ein benutzerdefiniertes Netzwerk trainieren möchten, benötigen Sie CUDA oder CUDA+cuDNN.
Hinweis vom Downcodes-Editor: Besuchen Sie https://developer.nvidia.com/cuda-downloads, um CUDA herunterzuladen und zu installieren.
Hinweis vom Downcodes-Editor: Besuchen Sie https://developer.nvidia.com/rdp/cudnn-download oder https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows zum Herunterladen und cuDNN installieren.
Hinweis vom Downcodes-Editor: Stellen Sie nach der Installation von CUDA sicher, dass Sie nvcc.exe und nvidia-smi.exe ausführen können. Möglicherweise müssen Sie die PATH-Variable ändern.
Hinweis vom Downcodes-Editor: Entpacken Sie nach dem Herunterladen von cuDNN die Verzeichnisse bin, include und lib und kopieren Sie sie nach C:/Programme/NVIDIA GPU Computing Toolkit/CUDA/[Version]/. Möglicherweise müssen Sie einige Dateien überschreiben.
Hinweis vom Downcodes-Editor: Wenn Sie CUDA oder CUDA+cuDNN später installieren oder auf eine neuere Version der NVIDIA-Software aktualisieren:
Hinweis vom Downcodes-Editor: CUDA muss nach Visual Studio installiert werden. Wenn Sie Visual Studio aktualisieren, denken Sie daran, CUDA neu zu installieren.
Anmerkung des Herausgebers: Sobald alle vorherigen Schritte erfolgreich abgeschlossen wurden, müssen Sie Darknet klonen und erstellen. In diesem Schritt müssen wir CMake auch mitteilen, wo sich vcpkg befindet, damit es OpenCV und andere Abhängigkeiten finden kann:
`Bash
cd c:src
Git-Klon https://github.com/hank-ai/darknet.gitcd Darknet
mkdir buildcd build
cmake -DCMAKEBUILDTYPE=Release -DCMAKETOOLCHAINFILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake ..
msbuild.exe /property:Platform=x64;Configuration=Release /target:Build -maxCpuCount -verbosity:normal -detailedSummary darknet.sln
msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj
`
Anmerkung des Herausgebers zu Downcodes: Wenn Sie eine Fehlermeldung über eine fehlende CUDA- oder cuDNN-DLL (z. B. cublas64_12.dll) erhalten, kopieren Sie die CUDA-DLL-Datei manuell in dasselbe Ausgabeverzeichnis wie Darknet.exe. Zum Beispiel:
`Bash
kopieren Sie „C:ProgrammeNVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll“ src-cliRelease
`
Anmerkung des Herausgebers zu Downcodes: (Dies ist ein Beispiel! Bitte überprüfen Sie, welche Version Sie verwenden, und führen Sie den entsprechenden Befehl für das aus, was Sie installiert haben.)
Hinweis vom Downcodes-Editor: Führen Sie nach dem Kopieren der Dateien den letzten msbuild.exe-Befehl erneut aus, um das NSIS-Installationspaket zu generieren:
`Bash
msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj
`
Anmerkung des Herausgebers zu Downcodes: Fortgeschrittene Benutzer:
Hinweis vom Downcodes-Editor: Bitte beachten Sie, dass die Ausgabe des cmake-Befehls eine normale Visual Studio-Lösungsdatei, Darknet.sln, ist. Wenn Sie ein Softwareentwickler sind, der zum Erstellen von Projekten häufig die Visual Studio-GUI anstelle von msbuild.exe verwendet, können Sie die Befehlszeile ignorieren und das Darknet-Projekt in Visual Studio laden.
Hinweis vom Downcodes-Editor: Sie sollten jetzt die folgende Datei zum Ausführen haben: C:srcDarknetbuildsrc-cliReleasedarknet.exe. Führen Sie zum Testen den folgenden Befehl aus: C:srcDarknetbuildsrc-cliReleasedarknet.exe-Version.
Anmerkung des Herausgebers: Um Darknet, Bibliotheken, Include-Dateien und erforderliche DLLs ordnungsgemäß zu installieren, führen Sie den im letzten Schritt erstellten NSIS-Installationsassistenten aus. Sehen Sie sich die Datei darknet-VERSION.exe im Build-Verzeichnis an. Zum Beispiel:
`Bash
darknet-2.0.31-win64.exe
`
Hinweis vom Downcodes-Editor: Die Installation des NSIS-Installationspakets führt zu Folgendem:
Erstellen Sie ein Verzeichnis mit dem Namen Darknet, zum Beispiel C:Program FilesDarknet.
Installieren Sie die CLI-Anwendung, darknet.exe und andere Beispielanwendungen.
Installieren Sie erforderliche DLL-Dateien von Drittanbietern, z. B. die von OpenCV.
Installieren Sie die erforderlichen Darknet-Dateien .dll, .lib und .h, um Darknet.dll aus einer anderen Anwendung zu verwenden.
Installieren Sie die .cfg-Vorlagendatei.
Hinweis des Downcodes-Editors: Sie sind jetzt fertig! Nachdem der Installationsassistent abgeschlossen ist, wird Darknet in C:ProgrammeDarknet installiert. Führen Sie zum Testen den folgenden Befehl aus: C:ProgrammeDarknetbindarknet.exe-Version.
Anmerkung des Downcodes-Editors: Wenn Sie C:/Program Files/darknet/bin/darknet.exe nicht haben, bedeutet das, dass Sie es nicht installiert, sondern nur erstellt haben! Stellen Sie sicher, dass Sie die einzelnen Bereiche des NSIS-Installationsassistenten im vorherigen Schritt befolgen.
Nutzung von Darknet
CLI
Hinweis des Downcodes-Editors: Das Folgende ist keine vollständige Liste aller von Darknet unterstützten Befehle.
Hinweis des Downcodes-Editors: Achten Sie zusätzlich zur Darknet-CLI auf die DarkHelp-Projekt-CLI, die eine alternative CLI für Darknet/YOLO bereitstellt. Die DarkHelp-CLI verfügt außerdem über einige erweiterte Funktionen, die im Darknet nicht zu finden sind. Sie können die Darknet-CLI und die DarkHelp-CLI gleichzeitig verwenden, sie schließen sich nicht gegenseitig aus.
Anmerkung des Herausgebers zu Downcodes: Für die meisten der unten gezeigten Befehle benötigen Sie eine .weights-Datei mit den entsprechenden .names- und .cfg-Dateien. Sie können Ihr eigenes Netzwerk trainieren (sehr empfehlenswert!) oder neuronale Netzwerke aus dem Internet herunterladen, die andere trainiert haben und 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 (Standard-Zielerkennung mit 80 Kategorien)
Hinweis vom Downcodes-Editor: Zu den auszuführenden Befehlen gehören:
1. Listen Sie einige Befehle und Optionen auf, die ausgeführt werden können:
`Bash
Darknet-Hilfe
`
2. Version prüfen:
`Bash
Darknet-Version
`
3. Verwenden Sie Bilder zur Vorhersage:
* V2:
`Bash
Darknet-Detektortest car.data car.cfg car_best.weights image1.jpg
`
* V3:
`Bash
darknet02displayannotatedimages cars.cfg image1.jpg
`
*DarkHelp:
`Bash
DarkHelp „cars.cfg“ „cars.cfg“ „cars_best.weights image1.jpg“.
`
4. Ausgabekoordinaten:
* V2:
`Bash
Darknet-Detektortest Animals.data Animals.cfg Animalsbest.weights -extoutput Dog.jpg
`
* V3:
`Bash
darknet01inference_images Tiere Hund.jpg
`
*DarkHelp:
`Bash
DarkHelp --json Animals.cfg Animals.names Animals_best.weights Hund.jpg
`
5. Video verarbeiten:
* V2:
`Bash
Darknet-Detektor-Demo Animals.data Animals.cfg Animalsbest.weights -extoutput test.mp4
`
* V3:
`Bash
darknet03display_videos Animals.cfg test.mp4
`
*DarkHelp:
`Bash
DarkHelp Animals.cfg Animals.Names Animals_Best.Weights Test.mp4
`
6. Ablesen von der Webcam:
* V2:
`Bash
Darknet-Detektor-Demo Animals.data Animals.cfg Animals_best.weights -c 0
`
* V3:
`Bash
darknet08display_webcam Tiere
`
7. Ergebnisse als Video speichern:
* V2:
`Bash
Darknet-Detektor-Demo Animals.data Animals.cfg Animalsbest.weights test.mp4 -outfilename res.avi
`
* V3:
`Bash
darknet05processvideosmultithreaded Animals.cfg Animals.Names Animals_Best.Weights Test.mp4
`
*DarkHelp:
`Bash
DarkHelp Animals.cfg Animals.Names Animals_Best.Weights Test.mp4
`
8. JSON:
* V2:
`Bash
Darknet-Detektor-Demo Animals.data Animals.cfg Animalsbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
`
* V3:
`Bash
darknet06imagestojson Tiere image1.jpg
`
*DarkHelp:
`Bash
DarkHelp --json Animals.names Animals.cfg Animals_best.weights image1.jpg
`
9. Auf einer bestimmten GPU ausführen:
* V2:
`Bash
Darknet-Detektor-Demo Animals.data Animals.cfg Animals_best.weights -i 1 test.mp4
`
10. Ü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
`
11. Überprüfen Sie die Genauigkeit mAP@IoU=75:
`Bash
Darknet-Detektorkarte Animals.data Animals.cfg Animalsbest.weights -iouthresh 0,75
`
12. 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:
`Bash
Darknet-Detektor calcanchors Animals.data -numof_clusters 6 -width 320 -height 256
`
13. Trainieren Sie das neue Netzwerk:
`Bash
Darknet-Detektor -map -dont_show train Animals.data Animals.cfg
`
(Siehe auch Schulungsabschnitt unten)
Ausbildung
Hinweis vom Downcodes-Editor: Schnelle Links zu relevanten Teilen der Darknet/YOLO-FAQ:
Wie richte ich meine Dateien und Verzeichnisse ein?
Welches Profil soll ich verwenden?
Welche Befehle sollte ich beim Training meines eigenen Netzwerks verwenden?
Anmerkung des Herausgebers: Die Verwendung von DarkMark zum Erstellen aller erforderlichen Darknet-Dateien ist der einfachste Weg zum Kennzeichnen und Trainieren. Dies ist definitiv die empfohlene Methode zum Trainieren neuer neuronaler Netze.
Hinweis vom Downcodes-Editor: Wenn Sie verschiedene Dateien manuell einrichten möchten, um ein benutzerdefiniertes Netzwerk zu trainieren:
1. Erstellen Sie einen neuen Ordner zum Speichern der Dateien. Beispielsweise wird ein neuronales Netzwerk zur Erkennung von Tieren erstellt, sodass das folgende Verzeichnis erstellt wird: ~/nn/animals/.
2. Kopieren Sie eine Darknet-Konfigurationsdatei, die Sie als Vorlage verwenden möchten. Siehe beispielsweise cfg/yolov4-tiny.cfg. Platzieren Sie es in dem von Ihnen erstellten Ordner. Zum Beispiel haben wir jetzt ~/nn/animals/animals.cfg.
3. Erstellen Sie eine Textdatei „animals.names“ in demselben Ordner, in dem Sie die Konfigurationsdatei abgelegt haben. Zum Beispiel haben wir jetzt ~/nn/animals/animals.names.
4. Bearbeiten Sie die Datei Animals.names mit einem Texteditor. Listen Sie die Kategorien auf, die Sie verwenden möchten. Sie benötigen nur einen Eintrag pro Zeile, keine Leerzeilen und keine Kommentare. Die .names-Datei enthält beispielsweise genau 4 Zeilen:
`
Hund
Katze
Vogel
Pferd
`
5. Erstellen Sie im selben Ordner eine Textdatei „animals.data“. 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 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 der TXT-Anmerkungsdatei ist sehr spezifisch. Sie können diese Dateien nicht manuell erstellen, da jedes Etikett die genauen Koordinaten des Etiketts enthalten muss. Sehen 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“-Textdateien mit den Namen in der .data-Datei. Diese beiden Textdateien müssen alle Bilder auflisten, die Darknet zur Berechnung von mAP% während des Trainings bzw. der Validierung verwendet. Genau ein Bild pro Zeile. Pfade und Dateinamen können relativ oder absolut sein.
8. Verwenden Sie einen Texteditor, um Ihre .cfg-Datei zu ändern.
9. Stellen Sie sicher, dass Batch=64 ist.
10. Achten Sie auf Unterteilungen. Abhängig von der Netzwerkgröße und der auf der GPU verfügbaren Speichermenge müssen Sie möglicherweise die Unterteilungen erhöhen. Der beste Wert ist 1, also beginnen Sie damit. Wenn 1 bei Ihnen nicht funktioniert, lesen Sie bitte die Darknet/YOLO-FAQ.
11. Beachten Sie maxbatches=.... Ein guter Wert für den Anfang ist das 2000-fache der Anzahl der Klassen. Wir haben zum Beispiel 4 Tiere, also 4 * 2000 = 8000. Das bedeutet, dass wir maxbatches=8000 verwenden werden.
12. Beachten Sie die Schritte=…. Dies sollte auf 80 % und 90 % der maxbatches eingestellt werden. Da „maxbatches“ beispielsweise auf 8000 eingestellt ist, verwenden wir „steps=6400,7200“.
13. Achten Sie auf width=... und height=.... Dies sind Netzwerkdimensionen. Die Darknet/YOLO-FAQ erklärt, wie man die optimale Größe berechnet.
14. Suchen Sie nach allen Instanzen, die die Zeile „classes=...“ enthalten, und ändern Sie sie mit der Anzahl der Klassen in der .names-Datei. Beispielsweise verwenden wir „classes=4“.
15. Im [Faltungs]-Abschnitt vor jedem [Yolo]-Abschnitt