暗网目标检测框架和 YOLO
Downcodes 编辑更新了公共 BitTorrent 跟踪器列表
列表
这些列表每天都会自动更新。最后更新2024年10月31日:
您有 DNS 问题吗?这些列表包含相同的跟踪器,但使用 IP 地址而不是域:
笔记
贡献
接触
ngosang [@] hotmail [.es]
第三方工具
第三方在线工具
例子:
Apache-2.0 许可证
目录
暗网目标检测框架和 YOLO
文件
一般信息
暗网版本
MSCOCO 预训练权重
建筑
谷歌合作实验室
Linux CMake方法
Windows CMake方法
使用暗网
命令行界面
训练
其他工具和链接
路线图
短期目标
中期目标
长期目标
暗网目标检测框架和 YOLO
Darknet 是一个开源神经网络框架,主要用 C、C++ 和 CUDA 编写。
YOLO(You Only Look Once)是在 Darknet 框架内运行的尖端实时物体检测系统。
了解 Hank.ai 如何支持 Darknet/YOLO 社区。
探索 Darknet/YOLO 网站。
请参阅 Darknet/YOLO 常见问题解答以获取常见问题的答案。
加入 Darknet/YOLO Discord 服务器进行讨论和寻求帮助。
文件
1.论文YOLOv7
2. 纸尺度-YOLOv4
3.论文YOLOv4
4.论文YOLOv3
一般信息
Darknet/YOLO 框架在速度和准确性方面始终优于其他框架和 YOLO 版本。
该框架完全免费且开源。您可以将 Darknet/YOLO 集成到您的项目和产品中,甚至是商业项目和产品中,而无需许可证或产生费用。
Darknet V3(“Jazz”)于 2024 年 10 月发布,可以使用 NVIDIA RTX 3090 GPU 以高达 1000 FPS 的速度高效运行乐高数据集视频。这意味着 Darknet/YOLO 可以在 1 毫秒或更短的时间内处理每个视频帧(读取、调整大小和处理)。
如果您需要帮助或希望讨论 Darknet/YOLO,请加入 Darknet/YOLO Discord 服务器:https://discord.gg/zSq8rtW
Darknet/YOLO 的 CPU 版本可在各种设备上运行,包括 Raspberry Pi、云和 Colab 服务器、台式机、笔记本电脑和高端训练设备。 GPU 版本需要支持 CUDA 的 NVIDIA GPU。
众所周知,Darknet/YOLO 与 Linux、Windows 和 Mac 兼容。有关详细信息,请参阅下面的构建说明。
暗网版本
Joseph Redmon 在 2013 年至 2017 年间开发的原始暗网工具缺少版本号。我们认为这个版本是 0.x。
随后流行的 Darknet 存储库由 Alexey Bochkovskiy 在 2017 年至 2021 年期间维护,也没有版本号。我们认为这个版本是 1.x。
自 2023 年以来,由 Hank.ai 赞助并由 Stéphane Charette 维护的 Darknet 存储库是第一个包含版本命令的存储库。它从 2023 年到 2024 年底返回了版本 2.x“OAK”。
主要目标是尽量减少对现有功能的干扰,同时熟悉代码库。
主要变化:
统一构建:重写构建步骤,使用适用于 Windows 和 Linux 的 CMake 建立单一、一致的方法。
C++ 迁移:转换代码库以利用 C++ 编译器。
增强图表:改进了训练过程中的chart.png可视化。
错误修复和优化:解决了许多错误并实施了性能优化,主要侧重于减少培训时间。
该代码库的最后一个分支是版本 2.1,位于 v2 分支中。
下一阶段的开发于 2024 年中期开始,并最终于 2024 年 10 月发布 3.x“JAZZ”版本。
Darknet V3(“Jazz”)主要改进:
性能:训练和推理期间的显着性能优化。
API 更改:修改了旧版 C API。使用原始 Darknet API 的应用程序将需要进行细微调整。请参阅:https://darknetcv.ai/api/api.html
新 API:引入了新的 Darknet V3 C 和 C++ API:https://darknetcv.ai/api/api.html
更新的示例:在 src-examples 目录中添加了新的应用程序和示例代码:https://darknetcv.ai/api/files.html
如果需要执行特定命令,您可以随时恢复到之前的 v2 分支。如果您遇到任何丢失的命令,请通知我们,以便我们尝试将它们合并回来。
Darknet V3(“Jazz”)密钥删除:
过时的命令:删除了许多过时和未维护的命令。
MSCOCO 预训练权重
为了方便起见,YOLO 的几个流行版本已经在 MSCOCO 数据集上进行了预训练。该数据集包含 80 个类,可以在文本文件 cfg/coco.names 中找到。
除了 MSCOCO 之外,其他各种更简单的数据集和预训练权重也可用于测试 Darknet/YOLO,例如 LEGO Gears 和 Rolodex。查看 Darknet/YOLO 常见问题解答以了解详细信息。
MSCOCO 预训练权重可以从多个来源下载,包括此存储库:
YOLOv2,2016 年 11 月:
YOLOv2-微小
YOLOv2-full
YOLOv3,2018 年 5 月:
YOLOv3-微小
YOLOv3-full
YOLOv4,2020 年 5 月:
YOLOv4-小
YOLOv4-full
YOLOv7,2022 年 8 月:
YOLOv7-微小
YOLOv7-full
MSCOCO 预训练权重仅用于演示目的。 MSCOCO 相应的 .cfg 和 .names 文件位于 cfg 目录中。命令示例:
`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
`
请记住,我们鼓励用户训练自己的网络。 MSCOCO 主要用于验证一切是否正常运行。
建筑
2023 年之前采用的多种构建方法已整合为统一的解决方案。 Darknet 需要 C++17 或更新版本 OpenCV,并利用 CMake 生成必要的项目文件。
您不需要精通 C++ 来构建、安装或运行 Darknet/YOLO,就像您不需要成为一名机械师来驾驶汽车一样。
谷歌合作实验室
Google Colab 指令反映了 Linux 指令。几个 Jupyter 笔记本演示了各种任务,例如训练新网络。
浏览 colab 子目录中的笔记本或按照下面提供的 Linux 说明进行操作。
Linux CMake方法
Linux 暗网构建教程
可选:如果您拥有现代 NVIDIA GPU,请在此时安装 CUDA 或 CUDA+cuDNN。如果安装,Darknet 将利用您的 GPU 加速图像(和视频)处理。
您必须从 Darknet 构建目录中删除 CMakeCache.txt 文件,以强制 CMake 重新发现所有必需的文件。
记得重建暗网。
没有它们,Darknet 也可以运行,但如果您打算训练自定义网络,则需要 CUDA 或 CUDA+cuDNN。
1. 安装 CUDA:访问 https://developer.nvidia.com/cuda-downloads 下载并安装 CUDA。
2. 安装 cuDNN:访问 https://developer.nvidia.com/rdp/cudnn-download 或 https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn-package-manager-安装概述下载并安装 cuDNN。
安装 CUDA 后,确保可以执行 nvcc 和 nvidia-smi。您可能需要修改 PATH 变量。
如果您稍后安装 CUDA 或 CUDA+cuDNN,或者升级到较新的 NVIDIA 软件版本:
升级 CMake:如果您的 CMake 版本已过时,请使用以下命令进行升级:
`bash
sudo apt-get purge cmake
sudo snap install cmake --经典
`
重新启动 Shell:如果使用 bash 作为命令 shell,请重新启动 shell。如果使用fish,路径应该自动更新。
构建暗网:
`bash
sudo apt-get install build-essential git libopencv-dev cmake
mkdir ~/srccd ~/src
git 克隆 https://github.com/hank-ai/darknetcd darknet
mkdir buildcd build
cmake -DCMAKEBUILDTYPE=发布 ..
使-j4
包裹
sudo dpkg -i darknet-VERSION.deb
`
高级用户:
RPM 安装:要创建 RPM 安装文件而不是 DEB 文件,请修改 CM_package.cmake 中的相关行。在执行 make -j4 package 之前,编辑以下行:
`cmake
设置(CPACKGENERATOR“DEB”)#设置(CPACKGENERATOR“RPM”)
`
对于 CentOS 和 OpenSUSE 等发行版,请将行调整为:
`cmake
设置(CPACK_GENERATOR“DEB”)
设置(CPACK_GENERATOR“RPM”)
`
安装包:使用发行版的包管理器完成构建后安装包。对于基于 Debian 的系统(例如 Ubuntu):
`bash
sudo dpkg -i darknet-2.0.1-Linux.deb
`
安装 .deb 包将复制以下文件:
/usr/bin/darknet:标准的 Darknet 可执行文件。从 CLI 运行 darknet 版本以确认其安装正确。
/usr/include/darknet.h:面向 C、C++ 和 Python 开发人员的 Darknet API。
/usr/include/darknet_version.h:包含开发人员的版本信息。
/usr/lib/libdarknet.so:用于 C、C++ 和 Python 开发中链接的库。
/opt/darknet/cfg/...:存储所有.cfg 模板。
恭喜! Darknet 已构建并安装在 /usr/bin/ 中。运行darknet版本进行验证。
如果你缺少 /usr/bin/darknet,那么你只是构建了 Darknet,而不是安装它。确保按照上面所述安装 .deb 或 .rpm 文件。
Windows CMake方法
这些说明假定全新安装 Windows 11 22H2。
1. 安装先决条件:打开标准 cmd.exe 命令提示符并执行以下命令:
`bash
winget 安装 Git.Git
winget 安装 Kitware.CMake
winget安装nsis.nsis
winget安装Microsoft.VisualStudio.2022.社区
`
2.修改Visual Studio:配置Visual Studio以支持C++应用程序:
单击“Windows 开始”菜单并运行“Visual Studio 安装程序”。
选择“修改”。
选择“使用 C++ 进行桌面开发”。
单击右下角的“修改”,然后单击“是”。
3.开发人员命令提示符:安装完成后,单击“Windows开始”菜单,选择“VS 2022的开发人员命令提示符”。不要使用 PowerShell 执行这些步骤,因为它可能会导致问题!
高级用户:
您可以选择普通命令提示符或通过 SSH 连接并手动执行“Program FilesMicrosoft Visual Studio2022CommunityCommon7ToolsVsDevCmd.bat”,而不是使用开发人员命令提示符。
4. 安装 Microsoft VCPKG:在开发人员命令提示符(不是 PowerShell)中执行以下命令来安装 Microsoft VCPKG,它将用于构建 OpenCV:
`bash
CDC:
mkdir c:src
cd c:src
git 克隆 https://github.com/microsoft/vcpkg
cd vcpkg
bootstrap-vcpkg.bat
.vcpkg.exe集成安装
.vcpkg.exe 集成 powershell.vcpkg.exe 安装 opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
`
最后一步请耐心等待,因为可能需要相当长的时间才能完成。它涉及下载和构建大量组件。
高级用户:
请注意,构建 OpenCV 时可以包含许多可选模块。运行 .vcpkg.exe 搜索 opencv 以查看完整列表。
可选:如果您有现代 NVIDIA GPU,则此时可以安装 CUDA 或 CUDA+cuDNN。如果安装,Darknet 将使用您的 GPU 来加速图像(和视频)处理。
您必须从 Darknet 构建目录中删除 CMakeCache.txt 文件,以强制 CMake 重新查找所有必需的文件。
记得重建暗网。
Darknet 可以在没有它的情况下运行,但如果您想训练自定义网络,则需要 CUDA 或 CUDA+cuDNN。
访问 https://developer.nvidia.com/cuda-downloads 下载并安装 CUDA。
访问 https://developer.nvidia.com/rdp/cudnn-download 或 https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows 下载并安装 cuDNN。
安装 CUDA 后,请确保可以运行 nvcc.exe 和 nvidia-smi.exe。您可能必须修改 PATH 变量。
下载 cuDNN 后,解压并将 bin、include 和 lib 目录复制到 C:/Program Files/NVIDIA GPU Compute Toolkit/CUDA/[version]/ 中。您可能需要覆盖一些文件。
如果您稍后安装 CUDA 或 CUDA+cuDNN,或者升级到较新版本的 NVIDIA 软件:
CUDA 必须在 Visual Studio 之后安装。如果升级 Visual Studio,请记住重新安装 CUDA。
5. 克隆并构建 Darknet:成功完成前面的步骤后,克隆并构建 Darknet。在此步骤中,指定 CMake 的 VCPKG 位置以查找 OpenCV 和其他依赖项:
`bash
cd c:src
git 克隆 https://github.com/hank-ai/darknet.git
CD暗网
mkdir 构建
光盘构建
cmake -DCMAKEBUILDTYPE=发布-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:平台=x64;配置=发布 PACKAGE.vcxproj
`
如果遇到有关缺少 CUDA 或 cuDNN DLL(例如 cublas64_12.dll)的错误,请手动将 CUDA .dll 文件复制到与 darknet.exe 相同的输出目录。例如:
`bash
复制“C:Program FilesNVIDIA GPU计算工具包CUDAv12.2bin * .dll”src-cliRelease
`
(这是一个示例!验证您的运行版本并使用适合您的安装的命令。)
复制文件后,重新运行最后的msbuild.exe命令来生成NSIS安装包:
`bash
msbuild.exe /property:平台=x64;配置=发布 PACKAGE.vcxproj
`
高级用户:
请注意,cmake 命令的输出是标准 Visual Studio 解决方案文件 (Darknet.sln)。如果您是一名软件开发人员,更喜欢使用 Visual Studio GUI 而不是 msbuild.exe 来构建项目,则可以跳过命令行步骤并在 Visual Studio 中加载 Darknet 项目。
您现在应该拥有可执行文件 C:srcDarknetbuildsrc-cliReleasedarknet.exe。运行它来测试:C:srcDarknetbuildsrc-cliReleasedarknet.exe 版本。
要正确安装 Darknet、其库、包含文件和所需的 DLL,请运行上一步中生成的 NSIS 安装向导。在构建目录中找到文件 darknet-VERSION.exe。例如:
`bash
darknet-2.0.31-win64.exe
`
安装 NSIS 安装包将:
创建一个名为 Darknet 的目录,例如 C:Program FilesDarknet。
安装 CLI 应用程序 (darknet.exe) 和其他示例应用程序。
安装必要的第 3 方 .dll 文件,例如 OpenCV 中的文件。
安装所需的 Darknet .dll、.lib 和 .h 文件,以便从其他应用程序使用 darknet.dll。
安装模板 .cfg 文件。
现在你已经完成了!安装向导完成后,Darknet 将安装在 C:Program FilesDarknet 中。通过运行:C:Program FilesDarknetbindarknet.exe 版本进行测试。
如果缺少 C:/Program Files/darknet/bin/darknet.exe,则仅构建 Darknet,而不安装。确保完成上一步中 NSIS 安装向导的每个面板。
使用暗网
命令行界面
以下不是 Darknet 支持的所有命令的完整列表。
除了 Darknet CLI 之外,请记住 DarkHelp 项目 CLI,它提供了 Darknet/YOLO 的替代 CLI。 DarkHelp CLI 包括在 Darknet 中无法直接访问的各种高级功能。您可以同时使用 Darknet CLI 和 DarkHelp CLI;它们并不相互排斥。
对于下面的大多数命令,您将需要 .weights 文件及其相应的 .names 和 .cfg 文件。您可以训练自己的网络(强烈推荐!)或下载某人免费在线提供的预先训练的神经网络。一些预训练的数据集包括:
LEGO Gears(图像中的对象检测)
Rolodex(图像中的文本检测)
MSCOCO(标准80级物体检测)
运行命令:
可能的命令和选项列表:
`bash
暗网帮助
`
检查版本:
`bash
暗网版本
`
使用图像预测:
V2:
`bash
暗网探测器测试 cars.data cars.cfg cars_best.weights image1.jpg
`
V3:
`bash
darknet02displayannotatedimages cars.cfg image1.jpg
`
黑暗帮助:
`bash
DarkHelp cars.cfg cars.cfg cars_best.weights image1.jpg
`
输出坐标:
V2:
`bash
暗网探测器测试animals.dataanimals.cfganimalsbest.weights-extoutputdog.jpg
`
V3:
`bash
darknet01inference_images 动物 狗.jpg
`
黑暗帮助:
`bash
DarkHelp --json Animals.cfg Animals.names Animals_best.weights Dog.jpg
`
处理视频:
V2:
`bash
暗网探测器演示 Animals.data Animals.cfg Animalbest.weights -extoutput test.mp4
`
V3:
`bash
darknet03display_videos Animals.cfg test.mp4
`
黑暗帮助:
`bash
DarkHelp Animals.cfg Animals.names Animals_best.weights test.mp4
`
从网络摄像头读取:
V2:
`bash
暗网探测器演示 Animals.data Animals.cfg Animals_best.weights -c 0
`
V3:
`bash
darknet08display_网络摄像头动物
`
将结果保存到视频:
V2:
`bash
暗网探测器演示 Animals.data Animals.cfg Animalbest.weights test.mp4 -outfilename res.avi
`
V3:
`bash
darknet05processvideos多线程animals.cfganimals.namesanimals_best.weightstest.mp4
`
黑暗帮助:
`bash
DarkHelp Animals.cfg Animals.names Animals_best.weights test.mp4
`
JSON:
V2:
`bash
暗网探测器演示 Animals.data Animals.cfg Animalbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
`
V3:
`bash
darknet06imagestojson 动物 image1.jpg
`
黑暗帮助:
`bash
DarkHelp --json Animals.names Animals.cfg Animals_best.weights image1.jpg
`
在特定 GPU 上运行:
V2:
`bash
暗网探测器演示 Animals.data Animals.cfg Animals_best.weights -i 1 test.mp4
`
检查神经网络的准确性:
`bash
暗网探测器地图 Driving.data Driving.cfg moving_best.weights ...
ID 名称 AvgPrecision TP FN FP TN 准确率 错误率 精确率 召回率 特异性 FalsePosRate
------ ------------ ------ ------ ------ ------ -------- --------- --------- ------ ----------- ------------
0 辆 91.2495 32648 3903 5826 65129 0.9095 0.0905 0.8486 0.8932 0.9179 0.0821
1 摩托车 80.4499 2936 513 569 5393 0.8850 0.1150 0.8377 0.8513 0.9046 0.0954
2 自行车 89.0912 570 124 104 3548 0.9475 0.0525 0.8457 0.8213 0.9715 0.0285
3人 76.7937 7072 1727 2574 27523 0.8894 0.1106 0.7332 0.8037 0.9145 0.0855
4多辆车 64.3089 1068 509 733 11288 0.9087 0.0913 0.5930 0.6772 0.9390 0.0610
5 绿光 86.8118 1969 239 510 4116 0.8904 0.1096 0.7943 0.8918 0.8898 0.1102
6 黄光 82.0390 126 38 30 1239 0.9525 0.0475 0.8077 0.7683 0.9764 0.0236
7 红光 94.1033 3449 217 451 4643 0.9237 0.0763 0.8844 0.9408 0.9115 0.0885
`
检查精度 mAP@IoU=75:
`bash
暗网探测器地图animals.dataanimals.cfganimalsbest.weights-iothresh 0.75
`
重新计算锚点:锚点重新计算最好在 DarkMark 中执行,因为它将连续运行 100 次并从所有计算选项中选择最佳锚点。但是,如果您想使用旧的暗网方法:
`bash
暗网探测器 calcanchors Animals.data -numof_clusters 6 -宽度 320 -高度 256
`
训练新网络:
`bash
cd ~/nn/动物/
暗网探测器-map-dont_show火车animals.dataanimals.cfg
`
(有关更多详细信息,请参阅下面的培训部分。)
训练
暗网/YOLO 常见问题解答相关部分的快速链接:
文件和目录设置:我应该如何设置我的文件和目录?
配置文件:我应该使用哪个配置文件?
训练命令:训练自己的网络时应该使用什么命令?
最简单的注释和训练方法是使用 DarkMark。它简化了创建所有必要的暗网文件的过程。强烈建议使用 DarkMark 来训练新的神经网络。
如果您更喜欢手动设置自定义网络训练的文件:
1. 创建文件夹:新建一个文件夹来存放文件。对于这个例子,我们将创建一个神经网络来检测动物;因此,创建以下目录:~/nn/animals/。
2. 复制配置文件:复制您要用作模板的暗网配置文件。例如,请参见 cfg/yolov4-tiny.cfg。将其放入创建的文件夹中。在此示例中,我们现在有 ~/nn/animals/animals.cfg。
3. 创建animals.names:在与配置文件相同的文件夹中创建名为animals.names 的文本文件。此示例现在有 ~/nn/animals/animals.names。
4. 编辑animals.names:使用文本编辑器编辑animals.names 文件。列出您打算使用的类。每个类应该占据单独的一行,没有任何空行或注释。在此示例中,.names 文件将包含四行:
`
狗
猫
鸟
马
`
5. 创建animals.data:在同一文件夹中创建animals.data 文本文件。对于此示例,.data 文件将包含:
`
班级 = 4
火车 = /home/用户名/nn/animals/animals_train.txt
有效 = /home/用户名/nn/animals/animals_valid.txt
名称 = /home/用户名/nn/animals/animals.names
备份= /home/用户名/nn/animals
`
6. 数据集文件夹:创建一个文件夹来存储图像和注释。例如,这可能是 ~/nn/animals/dataset。每个图像都需要一个相应的 .txt 文件来描述其注释。 .txt 注释文件的格式非常具体。您无法手动创建这些文件,因为每个注释都需要精确的坐标。利用 DarkMark 或类似软件来注释您的图像。 YOLO 注释格式在 Darknet/YOLO FAQ 中有描述。
7.“train”和“valid”文件:创建.data文件中提到的“train”和“valid”文本文件。这两个文件需要单独列出 Darknet 在计算 mAP% 时将用于训练和验证的所有图像。每行包含一张图像。路径和文件名可以是相对的或绝对的。
8. 修改.cfg 文件:使用文本编辑器修改.cfg 文件。
确保批次=64。
观察细分。根据您的网络尺寸和 GPU 内存容量,您可能需要增加细分。理想值为 1,因此从该值开始。如果 1 不适合您,请参阅 Darknet/YOLO 常见问题解答。
注意 maxbatches=..... 一个好的起始值是类数的 2000 倍。在这个例子中,我们有 4 只动物,所以 4 * 2000 = 8000,意味着 maxbatches=8000。
注意steps=.....将其设置为maxbatch的80%和90%。在此示例中,将 maxbatches 设置为 8000,我们将使用 steps=6400,7200。
注意 width=... 和 height=..... 这些是网络尺寸。 Darknet/YOLO 常见问题解答解释了如何确定最佳大小。
搜索所有出现的 class=... 行,并使用 .names 文件中的类数对其进行修改。在此示例中,我们将使用classes=4。
在每个 [yolo] 部分之前的 [卷积] 部分中搜索所有出现的 linefilters=... 。该值应为 (numberofclasses + 5) 3。在此示例中,(4 + 5) 3 = 27。因此,在相应的行上使用filters=27。
9.开始训练:执行以下命令:
`bash
cd ~/nn/动物/
暗网探测器-map-dont_show火车animals.dataanimals.cfg
`
要有耐心。最佳权重将保存为animals_best.weights。可以通过查看chart.png文件来监控训练进度。请参阅 Darknet/YOLO 常见问题解答,了解训练新网络时可能有用的其他参数。
要查看更多训练详细信息,请添加 --verbose 参数。例如:
`bash
暗网探测器-map-dont_show--verbose火车animals.dataanimals.cfg
`
其他工具和链接
要管理 Darknet/YOLO 项目、注释图像、验证注释以及生成使用 Darknet 进行训练所需的文件,请参阅 DarkMark。
如需 Darknet 的强大替代 CLI、利用图像平铺、视频中的对象跟踪或用于商业应用程序的强大 C++ API,请探索 DarkHelp。
检查 Darknet/YOLO 常见问题解答是否可以解决您的问题。
在 Stéphane 的 YouTube 频道上查看大量教程和示例视频。
如果您有支持咨询或想要与其他 Darknet/YOLO 用户互动,请加入 Darknet/YOLO Discord 服务器。
路线图
最后更新于 2024 年 10 月 30 日:
完全的:
1. 在训练期间用 std::sort() 替换 qsort() (仍然存在一些模糊的实例)。
2. 删除了 check_mistakes、getchar() 和 system()。
3. 将 Darknet 转换为使用 C++ 编译器(Linux 上为 g++,Windows 上为 VisualStudio)。
4.修复了Windows版本。
5.修复了Python支持。
6. 构建暗网库。
7. 重新启用预测标签(“字母”代码)。
8. 重新启用 CUDA/GPU 代码。
9. 重新启用CUDNN。
10. 重新启用 CUDNN 一半。
11. 避免对 CUDA 架构进行硬编码。
12.增强CUDA版本信息。
13.重新启用AVX。
14.删除了旧的解决方案和Makefile。
15. 强制使用 OpenCV。
16. 删除了对旧 pthread 库的依赖。
17. 删除机顶盒。
18. 重写 CMakeLists.txt 以纳入新的 CUDA 检测。
19. 删除了旧的“字母”代码并删除了数据/标签中的 700 多个图像。
20. 外部构建。
21.改进版本号输出。
22.实施与培训相关的绩效优化(正在进行的任务)。
23. 实施与推理相关的性能优化(正在进行的任务)。
24. 尽可能使用引用传递。
25. 清理.hpp 文件。
26.重写darknet.h。
27. 避免将 cv::Mat 转换为 void* 并将其用作正确的 C++ 对象。
28.固定或确保内部图像结构使用方式的一致性。
29. 修复了基于 ARM 的 Jetson 设备的构建。
30. 原始 Jetson 设备不太可能得到修复,因为 NVIDIA 不再支持它们(没有 C++17 编译器)。
31. 新的 Jetson Orin 设备可以正常工作。
32.修复了V3中的Python API。
短期目标:
1. 将 printf() 替换为 std::cout(正在进行中)。
2. 重新审视旧的 zed 相机支持。
3.改进和增强命令行解析一致性(正在进行中)。
中期目标:
1. 删除所有 char* 代码并将其替换为 std::string。
2.消除隐藏警告并清理编译器警告(正在进行中)。
3. 更好地利用 cv::Mat 而不是 C 中的自定义图像结构(正在进行中)。
4. 用 std::vector 或 std::list 替换旧的列表功能。
5. 修复对 1 通道灰度图像的支持。
6. 添加对 N 通道图像(其中 N > 3)的支持(例如,具有附加深度或热通道的图像)。
7. 持续的代码清理(正在进行中)。
长期目标:
1. 解决所有 GPU 上的 CUDA/CUDNN 问题。
2.重写CUDA+cuDNN代码。
3. 研究添加对非 NVIDIA GPU 的支持。
4. 引入旋转边界框或某种形式的“角度”支持。
5. 合并关键点/骨架。
6. 集成热图(正在进行中)。
7. 实施细分。