Marmite
Marmite [Markdown erstellt Websites] ist ein sehr einfacher statischer Site-Generator.
Der Redakteur von Downcodes sagte: „Marmite ist ein sehr einfacher statischer Website-Generator. Ich verwende oft andere SSGs, finde es aber immer zu umständlich, sie von Grund auf einzurichten. Nur ein Verzeichnis mit Markdown-Dateien und das Ausführen eines Befehls können eine Website generieren. Das hört sich an.“ wirklich praktisch.“
Wie zu verwenden
Marmite macht eine einfache Sache:
Konvertieren Sie die Markdown-Datei in HTML
Es kann auch das Generieren oder Kopieren von statischen Dateien oder Mediendateien in das Ausgabeverzeichnis übernehmen.
Installieren
Mit Ladung installieren:
`Bash
Ladung Marmite installieren
`
Oder laden Sie die vorkompilierten Binärdateien von der Release-Seite herunter.
verwenden
Es ist so einfach zu bedienen!
`Bash
$ Marmite-Ordner mit Markdown-Dateipfad zur generierten Site
`
Die Website wird im Verzeichnis pathtgenerated_site/ generiert.
CLI
`Bash
❯ marmite – Hilfe
Marmite ist der einfachste statische Site-Generator.
Verwendung: Marmite [OPTIONEN]
Argumente:
Optionen:
--serve Stellt die Site mit einem integrierten HTTP-Server bereit
--watch Erkennt Änderungen und erstellt die Site automatisch neu
--binden
Adresse zum Binden des Servers [Standard: localhost:8000]
--config
Pfad zur benutzerdefinierten Konfigurationsdatei [Standard: marmite.yaml]
--debug Debug-Meldungen ausgeben
--init-templates Vorlagen im Projekt initialisieren
--start-theme Initialisiert ein Theme mit Vorlagen und statischen Assets
-h, --help Hilfe drucken
-V, --version Druckversion
`
Fangen Sie an
Lesen Sie das Tutorial, um zu erfahren, wie Sie mit Marmite beginnen können: https://rochacbruno.github.io/marmite/getting-started.html, und nehmen Sie sich ein paar Minuten Zeit für die Erstellung Ihres Blogs.
dokumentieren
Weitere Informationen zum Anpassen von Vorlagen, zum Hinzufügen von Kommentaren und mehr finden Sie unter https://rochacbruno.github.io/marmite/.
Zusammenfassen
Marmite ist sehr einfach.
Wenn diese Einfachheit Ihren Anforderungen nicht entspricht, gibt es andere großartige Generatoren für statische Websites. Hier sind einige, die ich empfehle:
Jekyll
Hugo
Gatsby
Next.js
Darknet-Objekterkennungs-Framework und YOLO
Überblick
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, das im Darknet-Framework läuft.
Wichtige Links:
Wie Hank.ai der Darknet/YOLO-Community hilft
Darknet/YOLO-Website
Darknet/YOLO-FAQ
Darknet/YOLO Discord Server
Papier
YOLOv7-Papier
Skaliertes YOLOv4-Papier
YOLOv4-Papier
YOlov3-Papier
allgemeine Informationen
Das Darknet/YOLO-Framework übertrifft andere Frameworks und YOLO-Versionen in Bezug auf Geschwindigkeit und Genauigkeit durchweg.
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.
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 Darknet/YOLO jeden Videoframe in 1 Millisekunde oder weniger liest, seine Größe ändert und verarbeitet .
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 auf Linux, Windows und Mac. Siehe Bauanleitung unten.
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 um Version 0.x handelt.
Das nächste beliebte Darknet-Repository, das von 2017 bis 2021 von Alexey Bochkovskiy verwaltet wurde, hatte ebenfalls keine Versionsnummer. Wir gehen davon aus, dass es sich 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, die vorhandene Funktionalität so wenig wie möglich zu beeinträchtigen und sich gleichzeitig mit der Codebasis vertraut zu machen.
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.
Verbessertes 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, die Veröffentlichung erfolgt im Oktober 2024. Der Versionsbefehl gibt jetzt 3.x „JAZZ“ zurück.
Wenn Sie einen dieser Befehle ausführen müssen, können Sie sich jederzeit den vorherigen v2-Zweig ansehen. Lassen Sie es uns wissen, damit wir das Hinzufügen fehlender Befehle untersuchen können.
Viele alte und nicht gepflegte Befehle wurden entfernt.
Viele Leistungsoptimierungen, einschließlich Optimierungen während des Trainings und der Inferenz.
Modifizierte alte C-API; 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 werden mehrere beliebte YOLO-Versionen mithilfe des MSCOCO-Datensatzes 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 oder aus diesem Repository heruntergeladen werden:
YOLOv2 (November 2016)
- yolov2-tiny.weights
- yolov2-full.weights
YOLOv3 (Mai 2018)
- yolov3-tiny.weights
- yolov3-full.weights
YOLOv4 (Mai 2020)
- yolov4-tiny.weights
- yolov4-full.weights
YOLOv7 (August 2022)
- yolov7-tiny.weights
- yolov7-full.weights
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 oft verwendet, um zu bestätigen, dass alles in Ordnung ist.
Bauen
Verschiedene Bauweisen 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.
Sie müssen keine C++-Kenntnisse haben, 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
Die Anweisungen für Google Colab sind dieselben wie für Linux. Es werden eine Reihe von Jupyter-Notebooks bereitgestellt, die zeigen, wie bestimmte Aufgaben ausgeführt werden, beispielsweise das Training eines neuen Netzwerks.
Sehen Sie sich das Notizbuch im Unterverzeichnis colab an oder befolgen Sie die nachstehenden Linux-Anweisungen.
Linux CMake-Methode
1. Installieren Sie die erforderliche Software:
`Bash
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
`
3. Erstellen Sie das Build-Verzeichnis:
`Bash
CD Darknet
mkdir-Build
CD-Build
`
4. Verwenden Sie CMake, um Build-Dateien zu generieren:
`Bash
cmake -DCMAKEBUILDTYPE=Release ..
`
5. Darknet aufbauen:
`Bash
mache -j4
`
6. Darknet installieren (optional):
`Bash
Paket machen
sudo dpkg -i darknet-VERSION.deb
`
Beachten:
Wenn auf Ihrem System eine NVIDIA-GPU installiert ist, können Sie CUDA oder CUDA+cuDNN installieren, um die Bild- (und Video-)Verarbeitung zu beschleunigen.
Wenn Sie CUDA oder CUDA+cuDNN installieren oder die NVIDIA-Software aktualisieren, müssen Sie die Datei CMakeCache.txt im Build-Verzeichnis löschen und Darknet neu erstellen.
Mit dem Befehl „darknet version“ können Sie überprüfen, ob Darknet erfolgreich installiert wurde.
Windows CMake-Methoden
1. Installieren Sie die erforderliche Software:
`Bash
Winget installiert Git.Git
Winget installiert Kitware.CMake
Winget installiert nsis.nsis
Winget installiert Microsoft.VisualStudio.2022.Community
`
2. Ändern Sie die Visual Studio-Installation:
- Öffnen Sie das Windows-Startmenü und führen Sie den Visual Studio Installer aus.
- Klicken Sie auf „Bearbeiten“.
- Wählen Sie „Desktop-Entwicklung mit C++“.
- Klicken Sie unten rechts auf „Bearbeiten“ und dann auf „Ja“.
3. Installieren Sie Microsoft VCPKG:
`Bash
CDC:
mkdir c:src
cd c:src
Git-Klon https://github.com/microsoft/vcpkg
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
`
4. Klonen Sie das Darknet-Repository:
`Bash
cd c:src
Git-Klon https://github.com/hank-ai/darknet.git
CD Darknet
mkdir-Build
CD-Build
`
5. Verwenden Sie CMake, um Build-Dateien zu generieren:
`Bash
cmake -DCMAKEBUILDTYPE=Release -DCMAKETOOLCHAINFILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake ..
`
6. Darknet aufbauen:
`Bash
msbuild.exe /property:Platform=x64;Configuration=Release /target:Build -maxCpuCount -verbosity:normal -detailedSummary darknet.sln
msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj
`
7. Darknet installieren:
– Führen Sie die Datei „darknet-VERSION.exe“ im Build-Verzeichnis aus, um den NSIS-Installationsassistenten zu starten.
Beachten:
Wenn auf Ihrem System eine NVIDIA-GPU installiert ist, können Sie CUDA oder CUDA+cuDNN installieren, um die Bild- (und Video-)Verarbeitung zu beschleunigen.
Wenn Sie CUDA oder CUDA+cuDNN installieren oder die NVIDIA-Software aktualisieren, müssen Sie die Datei CMakeCache.txt im Build-Verzeichnis löschen und Darknet neu erstellen.
Mit dem Befehl „darknet.exe version“ können Sie überprüfen, ob Darknet erfolgreich installiert wurde.
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 für Darknet/YOLO bereitstellt. DarkHelp CLI verfügt außerdem über mehrere erweiterte Funktionen, die im Darknet nicht verfügbar sind. Sie können Darknet CLI und DarkHelp CLI gleichzeitig verwenden, sie schließen sich nicht gegenseitig aus.
Für die meisten der unten gezeigten Befehle müssen Sie die .weights-Datei verwenden, die den .names- und .cfg-Dateien entspricht. Sie können Ihr eigenes Netzwerk trainieren (sehr empfehlenswert!) oder neuronale Netzwerke herunterladen, die andere trainiert und kostenlos im Internet veröffentlicht haben. Beispiele für Datensätze vor dem Training sind:
LEGO Gears (Objekte in Bildern finden)
Rolodex (Text im Bild finden)
MSCOCO (Standard-Objekterkennung mit 80 Kategorien)
Zu den auszuführenden Befehlen gehören:
Darknet-Hilfe: Hilfeinformationen anzeigen.
Darknet-Version: Version prüfen.
Darknet-Detektortest car.data car.cfg car_best.weights image1.jpg: Bilder zur Vorhersage verwenden (V2).
darknet02displayannotatedimages cars.cfg image1.jpg: Vorhersage anhand von Bildern (V3).
DarkHelp Cars.cfg Cars.cfg Cars_Best.weights Bild1.jpg: Vorhersage anhand von Bildern (DarkHelp).
Darknet-Detektortest Animals.data Animals.cfg Animalsbest.weights -extoutput dog.jpg: Ausgabekoordinaten (V2).
darknet01inference_images Animals dog.jpg: Ausgabekoordinaten (V3).
DarkHelp --json Animals.cfg Animals.names Animals_best.weights Dog.jpg: Ausgabekoordinaten (DarkHelp).
Darknet-Detektor-Demo Animals.data Animals.cfg Animalsbest.weights -extoutput test.mp4: Video wird verarbeitet (V2).
darknet03display_videos Animals.cfg test.mp4: Videos verarbeiten (V3).
DarkHelp Animals.cfg Animals.names Animals_best.weights test.mp4: Video wird verarbeitet (DarkHelp).
Darknet-Detektor-Demo Animals.data Animals.cfg Animals_best.weights -c 0: Von der Webcam lesen (V2).
darknet08display_webcam Tiere: Von der Webcam lesen (V3).
Darknet-Detektor-Demo Animals.data Animals.cfg Animalsbest.weights test.mp4 -outfilename res.avi: Ergebnisse als Video speichern (V2).
darknet05processvideosmultithreaded Animals.cfg Animals.names Animals_best.weights test.mp4: Ergebnisse im Video speichern (V3).
DarkHelp Animals.cfg Animals.names Animals_best.weights test.mp4: Ergebnisse als Video speichern (DarkHelp).
Darknet-Detektor-Demo Animals.data Animals.cfg Animalsbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput: JSON-Format (V2) verwenden.
darknet06imagestojson Animals image1.jpg: JSON-Format (V3) verwenden.
DarkHelp --json Animals.names Animals.cfg Animals_best.weights image1.jpg: JSON-Format verwenden (DarkHelp).
Darknet-Detektor-Demo Animals.data Animals.cfg Animals_best.weights -i 1 test.mp4: Auf einer bestimmten GPU ausführen.
Darknet-Detektorkarte fahren.daten fahren.cfg fahren_best.gewichte ...: Überprüfen Sie die Genauigkeit des neuronalen Netzwerks.
Darknet Detector Map Animals.data Animals.cfg Animalsbest.weights -iouthresh 0,75: Überprüfen Sie die Genauigkeit von mAP@IoU=75.
Darknet-Detektor calcanchors Animals.data -numof_clusters 6 -width 320 -height 256: Ankerpunkte neu berechnen.
Darknet-Detektor -map -dont_show trainiere Animals.data Animals.cfg: Trainiere ein neues Netzwerk.
Zug
Wie richte ich meine Dateien und Verzeichnisse ein?
Welches Profil soll ich verwenden?
Welche Befehle sollte ich beim Training meines eigenen Netzwerks verwenden?
Die Verwendung von DarkMark-Annotation und -Training ist die einfachste Methode, mit der alle erforderlichen Darknet-Dateien erstellt werden. Dies ist definitiv die empfohlene Methode zum Trainieren neuer neuronaler Netze.
Wenn Sie die verschiedenen Dateien zum Trainieren eines benutzerdefinierten Netzwerks lieber manuell einrichten möchten, gehen Sie folgendermaßen vor:
1. Erstellen Sie einen neuen Ordner zum Speichern der Dateien. Wenn Sie beispielsweise ein neuronales Netzwerk zur Erkennung von Tieren erstellen, wird das folgende Verzeichnis erstellt: ~/nn/animals/.
2. Kopieren Sie eine Darknet-Konfigurationsdatei, die Sie als Vorlage verwenden möchten. Siehe zum Beispiel cfg/yolov4-tiny.cfg. Platzieren Sie es in dem von Ihnen erstellten Ordner. Für dieses Beispiel haben wir jetzt ~/nn/animals/animals.cfg.
3. Erstellen Sie eine Textdatei „animals.names“ im selben Ordner, in dem Sie die Konfigurationsdatei abgelegt haben. Für dieses 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. Jede Zeile muss genau ein Element enthalten, keine Leerzeilen oder Kommentare. In diesem Beispiel enthält die .names-Datei die folgenden 4 Zeilen:
`
Hund
Katze
Vogel
Pferd
`
5. Erstellen Sie im selben Ordner eine Textdatei „animals.data“. In diesem Beispiel enthält die .data-Datei Folgendes:
`
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 von TXT-Kommentardateien ist sehr spezifisch. Sie können diese Dateien nicht manuell erstellen, da jede Anmerkung die genauen Koordinaten der Anmerkung enthalten muss. Bitte nutzen Sie DarkMark oder eine andere ähnliche Software, 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 für das Training bzw. die Validierung (bei der Berechnung von mAP%) verwenden muss. Ein Bild pro Zeile. Pfade und Dateinamen können relativ oder absolut sein.
8. Verwenden Sie einen Texteditor, um Ihre .cfg-Datei zu ändern.
- Stellen Sie sicher, dass Batch=64 ist.
- Auf Unterteilungen achten. Abhängig von den Netzwerkabmessungen 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 damit. Wenn 1 bei Ihnen nicht funktioniert, lesen Sie bitte die Darknet/YOLO-FAQ.
- Beachten Sie maxbatches=…. Ein guter Wert für den Anfang ist die Anzahl der Kategorien multipliziert mit 2000. In diesem Beispiel haben wir 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“ in diesem Beispiel 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 nach allen „classes=...“-Zeilen und ändern Sie sie mit der Anzahl der Klassen in Ihrer .names-Datei. Für dieses Beispiel verwenden wir „classes=4“.
- Finden Sie alle Filter=...-Zeilen im Abschnitt [convolutional] vor jedem Abschnitt [yolo]. Der zu verwendende Wert ist (Anzahl der Kategorien + 5) 3. Dies bedeutet, dass für dieses Beispiel (4 + 5) 3 = 27. Daher verwenden wir filter=27 in den entsprechenden Zeilen.
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
`
Bitte warten. 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
Informationen zum Verwalten Ihres Darknet/YOLO-Projekts, zum Kommentieren von Bildern, zum Validieren Ihrer Anmerkungen und zum Generieren der erforderlichen Dateien für das Training mit Darknet finden Sie unter DarkMark.
Eine leistungsstarke alternative CLI zu Darknet für die Arbeit mit Bildkacheln, Objektverfolgung in Videos oder eine leistungsstarke C++-API, die problemlos in kommerziellen Anwendungen verwendet werden kann, finden Sie unter DarkHelp.
Bitte 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
Letzte Aktualisierung: 30.10.2024
Vollendet
Während des Trainings wurde qsort() durch std::sort() ersetzt (einige andere obskure Ersetzungen existieren 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 für 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 korrektes C++-Objekt
Korrigieren Sie die internen Bildstrukturen oder behalten Sie diese konsistent bei
Korrektur des Builds für Jetson-Geräte mit ARM-Architektur
- 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 läuft
Korrigieren Sie die Python-API in V3
– Benötigen Sie eine bessere Python-Unterstützung (gibt es Python-Entwickler, die bereit sind, bei diesem Problem zu helfen?)
kurzfristige Ziele
Ersetzen Sie printf() durch std::cout (in Arbeit)
Sehen Sie sich die Unterstützung für alte Zed-Kameras an
Bessere und konsistentere Befehlszeilenanalyse (in Arbeit)
mittelfristige Ziele
Entfernen Sie alle char*-Codes und ersetzen Sie sie durch std::string
Warnungen nicht ausblenden und Compiler-Warnungen bereinigen (in Arbeit)
Bessere Verwendung von cv::Mat anstelle von benutzerdefinierten Bildstrukturen in C (in Arbeit)
Ersetzen Sie alte Listenfunktionen durch std::vector oder std::list
Korrektur der Unterstützung für Einkanal-Graustufenbilder
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 im Zusammenhang mit allen GPUs
Schreiben Sie den CUDA+cuDNN-Code neu
Erwägen 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