暗网目标检测框架和 YOLO
Darknet 是一个使用 C、C++ 和 CUDA 制作的开源神经网络框架。它是 YOLO(You Only Look Once)的基础,YOLO 是一种尖端的实时物体检测系统,以其速度和准确性而闻名。
了解 Hank.ai 如何支持 Darknet/YOLO 社区:[Hank.ai 博客链接]
探索 Darknet/YOLO 官方网站:[Darknet 网站链接]
深入了解全面的 Darknet/YOLO 常见问题解答:[常见问题解答链接]
与 Discord 上充满活力的 Darknet/YOLO 社区互动:[Discord 服务器链接]
文件
1. YOLOv7:[论文链接]
2. Scaled-YOLOv4:[论文链接]
3. YOLOv4:[论文链接]
4. YOLOv3:[论文链接]
一般信息
Darknet/YOLO框架在速度和准确性方面继续主导其他框架和YOLO版本。其开源性质和完全免收许可费用,可以无缝集成到现有项目和商业产品中。
Darknet V3(“Jazz”)于 2024 年 10 月发布,实现了卓越的性能,使用 NVIDIA RTX 3090 GPU 以惊人的 1000 FPS 处理乐高数据集视频。这意味着每个视频帧的处理时间不到 1 毫秒。
通过 [Discord 服务器链接] 加入活跃的 Darknet/YOLO Discord 服务器以获得支持、讨论和协作学习。
Darknet/YOLO 适合各种设备,从 Raspberry Pi 到高端训练设备,支持 CPU 和 GPU 版本。 GPU 版本需要 NVIDIA 提供的支持 CUDA 的 GPU。
Darknet/YOLO 与 Linux、Windows 和 Mac 操作系统兼容。请在下面找到详细的搭建说明。
暗网版本
最初的暗网工具由 Joseph Redmon 在 2013 年至 2017 年期间开发,缺乏版本号。我们将此版本指定为 0.x。
Alexey Bochkovskiy 从 2017 年到 2021 年继续维护流行的 Darknet 存储库,同样没有版本号。我们将此称为版本 1.x。
由 Hank.ai 赞助并自 2023 年起由 Stéphane Charette 维护的 Darknet 存储库引入了“version”命令。 2023 年至 2024 年底期间,它返回了版本 2.x“OAK”。
开发目标是尽量减少对现有功能的干扰,同时熟悉代码库。主要改进包括:
统一构建过程:重写构建步骤,以在 Windows 和 Linux 上实现基于 CMake 的一致构建过程。
C++ 代码库:转换代码库以利用 C++ 编译器。
增强的训练图表:改进了训练过程中的chart.png可视化。
错误修复和优化:与性能相关的增强,重点是减少训练时间。
该代码库的最后一个分支是版本 2.1,位于“v2”分支中。
下一阶段的开发于 2024 年中期开始,并最终于 2024 年 10 月发布 3.x“JAZZ”版本。
您始终可以访问以前的“v2”分支来执行这些版本中的命令。如果您遇到任何丢失的命令,请通知我们,我们将调查它们的重新集成。
Darknet V3 的重大变化包括:
命令删除:删除过时和不常用的命令。
性能优化:训练和推理性能的增强。
Legacy API修改:对遗留C API的修改;使用原始 Darknet API 的应用程序可能需要进行细微调整。
新的 C/C++ API:引入新的 Darknet V3 C 和 C++ API。
更新的示例代码:在“src-examples”目录中包含新应用程序和示例代码。
有关新 API 的详细信息:[Darknet V3 API 文档链接]
探索更新的示例代码:[Darknet V3 API 文件链接]
MSCOCO 预训练权重
为了方便起见,几个流行的 YOLO 版本已经在 MSCOCO 数据集上进行了预训练。该数据集包含 80 个类,可以在“cfg/coco.names”文本文件中轻松识别。
除了 MSCOCO 之外,Darknet/YOLO 还为 LEGO Gears 和 Rolodex 等更简单的数据集提供预训练权重,允许您尝试各种场景。有关详细信息,请参阅 Darknet/YOLO 常见问题解答。
MSCOCO 预训练权重可从多个来源访问,包括此存储库:
YOLOv2(2016 年 11 月):
YOLOv2-tiny:[权重链接]
YOLOv2-full:[权重链接]
YOLOv3(2018 年 5 月):
YOLOv3-tiny:[权重链接]
YOLOv3-full:[权重链接]
YOLOv4(2020 年 5 月):
YOLOv4-tiny:[权重链接]
YOLOv4-full:[权重链接]
YOLOv7(2022 年 8 月):
YOLOv7-tiny:[权重链接]
YOLOv7-full:[权重链接]
这些预先训练的权重主要用于演示目的。 MSCOCO 相应的 .cfg 和 .names 文件位于“cfg”目录中。命令示例:
`
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 生成必要的项目文件。
构建、安装和运行 Darknet/YOLO 不需要 C++ 专业知识,类似于无需机械师即可驾驶汽车。
谷歌合作实验室
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.安装先决条件:
`bash
sudo apt-get install build-essential git libopencv-dev cmake
`
2.克隆暗网存储库:
`bash
mkdir ~/srccd ~/src
git 克隆 https://github.com/hank-ai/darknetcd darknet
`
3.创建构建目录:
`bash
mkdir buildcd build
`
4.配置CMake:
`bash
cmake -DCMAKEBUILDTYPE=发布 ..
`
5. 构建暗网:
`bash
使-j4
`
6. 打包暗网:
`bash
包裹
`
7.安装包:
`bash
sudo dpkg -i darknet-VERSION.deb
`
如果您使用的是旧版本的 CMake,则需要先升级 CMake,然后才能运行上面的 cmake 命令。可以使用以下命令在 Ubuntu 上升级 CMake:
`bash
sudo apt-get purge cmake
sudo snap install cmake --经典
`
如果使用 bash 作为命令 shell,此时您需要重新启动 shell。如果使用鱼,它应该立即选择新路径。
高级用户:
如果您更喜欢 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 version”以确认安装成功。
/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/ 中。运行“暗网版本”来验证安装。
如果你没有 /usr/bin/darknet,这意味着你只是构建了它,而不是安装了它。确保如上所述安装 .deb 或 .rpm 文件。
Windows CMake方法
这些说明假定全新安装 Windows 11 22H2。
1. 使用 Winget 安装先决条件:
`bash
winget 安装 Git.Git
winget 安装 Kitware.CMake
winget安装nsis.nsis
winget安装Microsoft.VisualStudio.2022.社区
`
2.修改Visual Studio安装:
- 单击“Windows 开始”菜单并运行“Visual Studio 安装程序”。
- 单击“修改”。
- 选择“使用 C++ 进行桌面开发”。
- 单击右下角的“修改”,然后单击“是”。
3.安装微软VCPKG:
- 安装完成后,单击“Windows 开始”菜单并选择“VS 2022 的开发人员命令提示符”。不要使用 PowerShell 执行这些步骤,这会导致问题!
- 高级用户:您可以运行普通命令提示符或 ssh 进入设备并手动执行“Program FilesMicrosoft Visual Studio2022CommunityCommon7ToolsVsDevCmd.bat”,而不是使用开发人员命令提示符。
4.使用VCPKG安装OpenCV:
`bash
CDC:
mkdir c:srccd c:src
git 克隆 https://github.com/microsoft/vcpkgcd 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。
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#download-windows 下载并安装 cuDNN。
3.验证CUDA安装:
安装 CUDA 后,确保可以运行 nvcc.exe 和 nvidia-smi.exe。您可能需要调整 PATH 变量。
4.集成cuDNN:
解压下载的 cuDNN 存档并将“bin”、“include”和“lib”目录复制到 C:Program FilesNVIDIA GPU Compute ToolkitCUDA[版本]。您可能需要覆盖现有文件。
5.在Visual Studio之后安装CUDA:
- CUDA 必须在 Visual Studio 之后安装。如果升级 Visual Studio,请记住重新安装 CUDA。
6. 克隆暗网并构建:
`bash
cd c:src
git 克隆 https://github.com/hank-ai/darknet.gitcd darknet
mkdir buildcd build
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
`
7. 处理缺失的 CUDA/cuDNN DLL:
- 如果遇到缺少 CUDA 或 cuDNN DLL(例如 cublas64_12.dll)的错误,请手动将相关 CUDA .dll 文件复制到 darknet.exe 所在的目录中。例如:
`bash
复制“C: Program Files NVIDIA GPU计算工具包 CUDA v12.2 bin * .dll” src-cliRelease
`
(这是一个示例。验证您的 CUDA 版本并执行适当的命令。)
- 重新运行最后一个msbuild.exe命令以生成NSIS安装包。
高级用户:
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 文件,例如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,这表明您只是构建了它,而不是安装了它。确保您按照前面所述完成了 NSIS 安装向导的每个面板。
使用暗网
命令行界面
这并不是 Darknet 支持的所有命令的详尽列表。
除了 Darknet CLI 之外,请注意 DarkHelp 项目 CLI,它为 Darknet/YOLO 提供了替代接口。它包括暗网中不直接提供的一些高级功能。您可以同时使用 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 ...
`
- 此命令将显示数据集中每个类别的平均精度 (AP)。
映射@IoU=75:
`bash
暗网探测器地图animals.dataanimals.cfganimalsbest.weights-iothresh 0.75
`
- 此命令计算 IoU 阈值 0.75 时的 mAP。
计算锚点:
锚点重新计算的最佳实践是使用 DarkMark,因为它会运行 100 次连续计算并选择最佳锚点。但是,您可以使用较旧的暗网方法:
`bash
暗网探测器 calcanchors Animals.data -numof_clusters 6 -宽度 320 -高度 256
`
训练新网络:
基础训练:
`bash
暗网探测器-map-dont_show火车animals.dataanimals.cfg
`
- 最佳权重将保存为animals_best.weights,训练进度在chart.png中可见。
详细训练:
`bash
暗网探测器-map-dont_show--verbose火车animals.dataanimals.cfg
`
- 此命令在训练期间提供更详细的信息。
训练
暗网/YOLO 常见问题解答相关部分的快速链接:
文件和目录设置:[链接到常见问题解答部分]
选择正确的配置文件:[链接到常见问题解答部分]
训练命令:[链接到常见问题解答部分]
最直接的注释和训练方法是使用 DarkMark 创建所有必要的 Darknet 文件。这是训练新神经网络的推荐方法。
手动训练设置:
1. 创建文件夹:创建一个新文件夹来存储您的训练文件。例如,~/nn/animals/。
2. 复制配置文件:将 Darknet 配置文件作为模板(例如 cfg/yolov4-tiny.cfg)复制到您的文件夹中。您现在拥有 ~/nn/animals/animals.cfg。
3. 创建.names 文件:在同一文件夹中创建animals.names 文本文件。
- 编辑文件以列出您要检测的类。每个类必须单独占一行,不能有空行或注释。例如:
`
狗
猫
鸟
马
`
4. 创建.data 文件:在同一文件夹中创建animals.data 文本文件。
- .data 文件定义训练和验证数据集、类名称和备份目录。例如:
`
班级=4
train=/home/用户名/nn/animals/animals_train.txt
valid=/home/用户名/nn/animals/animals_valid.txt
名称=/home/用户名/nn/animals/animals.names
备份=/home/用户名/nn/animals
`
5. 创建图像和注释文件夹:创建一个文件夹(例如~/nn/animals/dataset)来存储图像和注释。
- 每个图像都需要一个包含注释的相应 .txt 文件。注释格式具体;它无法手动创建。使用 DarkMark 或类似软件对图像进行注释。
- YOLO 注释格式在 Darknet/YOLO FAQ 中进行了解释。
6. 创建“train”和“valid”文件:创建.data 文件中提到的“train”和“valid”文本文件。
- 这些文件分别列出了用于训练和验证的图像。每个图像应位于单独的行上。您可以使用相对或绝对路径。
7、修改配置文件:
- 使用文本编辑器打开 .cfg 文件并进行以下调整:
-batch=64:这个值通常就可以了。
- 细分:从细分=1 开始。您可能需要根据 GPU 内存和网络尺寸增加此值。请参阅 Darknet/YOLO 常见问题解答以获取指导。
- maxbatches:将其设置为 2000 * 类数。例如,对于 4 个类,maxbatches=8000。
- 步骤:将其设置为最大批次的 80% 和 90%。例如,maxbatches=8000,steps=6400,7200。
- 宽度和高度:这些是网络尺寸。有关维度计算建议,请参阅 Darknet/YOLO 常见问题解答。
- 类:更改classes=... 行以匹配.names 文件中的类数(在本例中,classes=4)。
- 过滤器:修改每个[yolo]部分之前的每个[卷积]部分中的filters=...行。该值的计算方式为 (numberofclasses + 5) * 3。例如,对于 4 个类,过滤器=27。
8. 开始训练:
`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
`
其他工具和链接
DarkMark:该工具可帮助管理您的 Darknet/YOLO 项目、注释图像、验证注释以及生成 Darknet 训练所需的文件。
DarkHelp:Darknet 的强大替代 CLI,提供图像平铺、视频中的对象跟踪等功能以及用于商业应用程序的强大 C++ API。
Darknet/YOLO 常见问题解答:用于回答有关 Darknet/YOLO 问题的宝贵资源。
Stéphane 的 YouTube 频道:查找大量教程和示例视频。
Darknet/YOLO Discord 服务器:加入服务器以询问支持问题并与其他 Darknet/YOLO 用户联系。
路线图
最后更新: 2024-10-30
完全的
交换 qsort():在代码库的相关部分将 qsort() 替换为 std::sort()。 (剩下的一些实例仍然使用 qsort())
删除过时的函数:删除了 check_mistakes、getchar() 和 system()。
C++ 代码库:将 Darknet 转换为使用 C++ 编译器(Linux 上为 g++,Windows 上为 VisualStudio)。
Windows 构建:修复了 Windows 构建过程。
Python 支持:修复了 Python 集成。
暗网库:构建了暗网库。
预测标签:重新启用预测标签(“字母”代码)。
CUDA/GPU 代码:重新启用 CUDA/GPU 功能。
CUDNN:重新启用 CUDNN 支持。
CUDNN half:重新启用 CUDNN 半精度支持。
CUDA 架构:删除了 CUDA 架构的硬编码。
CUDA版本信息:改进了CUDA版本信息。
AVX:重新启用 AVX 支持。
删除了旧文件:删除了旧的解决方案和 Makefile。
OpenCV 依赖项:使 OpenCV 成为必需的依赖项。
pthread 库:删除了对旧 pthread 库的依赖。
STB:删除了 STB 依赖性。
CMakeLists.txt:重写 CMakeLists.txt 以使用新的 CUDA 检测方法。
删除了过时的文件:删除了旧的“字母”代码并删除了数据/标签中的 700 多个图像。
外源构建:启用外源构建。
版本号:改进版本号输出。
训练性能:训练的性能优化(正在进行的任务)。
推理性能:推理性能优化(正在进行的任务)。
按引用传递:尽可能使用按引用传递以提高效率。
代码清理:清理了 .hpp 文件。
重写darknet.h:更新了Darknet API头文件。
cv::Mat 用法:使用 cv::Mat 作为正确的 C++ 对象,而不是将其强制转换为 void*。
图像结构:修复了与内部图像结构相关的不一致和问题。
Jetson 支持:修复了基于 ARM 的 Jetson 设备的构建。
- 由于 NVIDIA 停止支持(无 C++17 编译器),较旧的 Jetson 设备不太可能得到修复。
- 新的 Jetson Orin 设备正在运行。
V3 中的 Python API:修复了 Darknet V3 中的 Python API。
短期目标
交换 printf():用 std::cout 替换 printf()(正在进行中)。
Zed 相机支持:重新审视并改进对 Zed 相机的支持。
命令行解析:实现更强大和一致的命令行解析(正在进行中)。
中期目标
删除字符代码:删除所有字符代码并将其替换为 std::string。
编译器警告:不要隐藏警告并解决编译器警告(正在进行中)。
cv::Mat 用法:增强 cv::Mat 的使用,而不是 C 中的自定义图像结构(正在进行中)。
列表功能:用 std::vector 或 std::list 替换旧的列表功能。
灰度图像支持:修复了对 1 通道灰度图像的支持。
N 通道图像支持:添加对超过 3 个通道(例如深度或热通道)的图像的支持。
正在进行的代码清理:继续进行正在进行的代码清理(正在进行中)。
长期目标
CUDA/CUDNN 问题:解决不同 GPU 之间的 CUDA/CUDNN 兼容性问题。
重写 CUDA/CUDNN 代码:重写 CUDA/CUDNN 代码以提高性能和兼容性。
非 NVIDIA GPU 支持:研究对非 NVIDIA GPU 的支持。
旋转边界框:实现对旋转边界框或角度信息的支持。
关键点/骨架:添加对关键点和骨架的支持。
热图:实现热图支持(正在进行中)。
分段:添加对分段的支持。