Cloud-native high-performance edge/middle/service proxy
Envoy is hosted by the Cloud Native Computing Foundation (CNCF). If you are a company that wants to help shape the evolution of technologies that are container-packaged, dynamically-scheduled and microservices-oriented, consider joining the CNCF. For details about who's involved and how Envoy plays a role, read the CNCF announcement.
Documentation
Downcodes小编注: Envoy 拥有完善的文档,您可以参考以下资源:
官方文档
GitHub 仓库
Related
Downcodes小编注: Envoy 与以下技术密切相关:
容器技术: Docker, Kubernetes
服务网格: Istio, Linkerd
微服务架构: gRPC, RESTful API
Contact
Downcodes小编注: 您可以通过以下途径与 Envoy 社区联系:
邮件列表
Slack 频道
Contributing
Downcodes小编注: 如果您想为 Envoy 项目贡献代码,请参考以下步骤:
1. 熟悉代码库: 阅读 Envoy 的源代码,了解其结构和设计。
2. 选择任务: 在 GitHub 仓库中选择一个您感兴趣的任务。
3. 提交代码: 遵循 Envoy 的代码风格规范,并提交您的代码。
Community Meeting
Downcodes小编注: Envoy 社区每月两次在周二太平洋时间上午 9 点举行会议。
Google 日历
会议记录
Downcodes小编注: 任何社区成员都可以通过在会议记录中添加议题来提出议题。维护者会在 24 小时内确认议题,或者如果会议没有确认的议题,会在会议时间前 24 小时内取消会议。
Security
Downcodes小编注: Envoy 项目重视安全问题。
Security Audit
Downcodes小编注: Envoy 项目已经进行过多次第三方安全审计。
Reporting security vulnerabilities
Downcodes小编注: 如果您发现了 Envoy 项目中的安全漏洞,请将漏洞报告发送至 [email protected] 邮箱。 我们会发送确认邮件以确认您的报告,并在确定问题是否存在后发送额外的邮件。
Downcodes小编注: 有关更多信息,请参阅我们的完整安全发布流程。
Releases
Downcodes小编注: 有关 Envoy 版本发布的详细信息,请参阅我们的发布流程。
Example
`
Apache-2.0 license
Table of Contents
Darknet Object Detection Framework and YOLO
Papers
General Information
Darknet Version
MSCOCO Pre-trained Weights
Building
Google Colab
Linux CMake Method
Windows CMake Method
Using Darknet
CLI
Training
Other Tools and Links
Roadmap
Short-term goals
Mid-term goals
Long-term goals
Darknet Object Detection Framework and YOLO
!Darknet Logo
!Hank.ai Logo
Downcodes小编注: Darknet 是一个用 C、C++ 和 CUDA 编写的开源神经网络框架。
Downcodes小编注: YOLO (You Only Look Once) 是一个最先进的实时目标检测系统,它在 Darknet 框架中运行。
Downcodes小编注: 了解更多 Hank.ai 如何帮助 Darknet/YOLO 社区的信息。
Downcodes小编注: Darknet/YOLO 网站
Downcodes小编注: Darknet/YOLO 常见问题
Downcodes小编注: Darknet/YOLO Discord 服务器
Papers
Downcodes小编注: 以下是一些关于 YOLO 的论文:
1. YOLOv7: 论文链接
2. Scaled-YOLOv4: 论文链接
3. YOLOv4: 论文链接
4. YOLOv3: 论文链接
General Information
Downcodes小编注: Darknet/YOLO 框架比其他框架和 YOLO 版本更快、更准确。
Downcodes小编注: 该框架是完全免费和开源的。您可以将 Darknet/YOLO 整合到现有项目和产品中,包括商业产品,无需许可或支付费用。
Downcodes小编注: 2024 年 10 月发布的 Darknet V3(“Jazz”)可以准确地以高达 1000 FPS 的速度运行 LEGO 数据集视频,使用 NVIDIA RTX 3090 GPU 时,这意味着每个视频帧在 1 毫秒或更短的时间内被 Darknet/YOLO 读取、调整大小和处理。
Downcodes小编注: 如果您需要帮助或想讨论 Darknet/YOLO,请加入 Darknet/YOLO Discord 服务器: https://discord.gg/zSq8rtW
Downcodes小编注: Darknet/YOLO 的 CPU 版本可以在 Raspberry Pi、云服务器和 Colab 服务器、台式机、笔记本电脑和高端训练设备等简单设备上运行。Darknet/YOLO 的 GPU 版本需要 NVIDIA 的 CUDA 支持的 GPU。
Downcodes小编注: Darknet/YOLO 已知可在 Linux、Windows 和 Mac 上运行。请参阅下面的构建说明。
Darknet Version
Downcodes小编注: Joseph Redmon 在 2013-2017 年编写的原始 Darknet 工具没有版本号。我们认为这个版本是 0.x。
Downcodes小编注: Alexey Bochkovskiy 在 2017-2021 年间维护的下一个流行的 Darknet 仓库也没有版本号。我们认为这个版本是 1.x。
Downcodes小编注: Hank.ai 赞助并由 Stéphane Charette 从 2023 年开始维护的 Darknet 仓库是第一个带有版本命令的仓库。从 2023 年到 2024 年底,它返回版本 2.x “OAK”。
Downcodes小编注: 目标是在熟悉代码库的同时,尽量减少现有功能的破坏。
Downcodes小编注: 重写了构建步骤,因此我们有 1 种统一的方式来使用 CMake 在 Windows 和 Linux 上构建。
Downcodes小编注: 将代码库转换为使用 C++ 编译器。
Downcodes小编注: 在训练期间增强了 chart.png。
Downcodes小编注: 错误修复和性能相关的优化,主要与缩短训练网络所需时间有关。
Downcodes小编注: 此代码库的最后一个分支是 v2 分支中的版本 2.1。
Downcodes小编注: 下一阶段的开发始于 2024 年年中,并在 2024 年 10 月发布。版本命令现在返回 3.x “JAZZ”。
Downcodes小编注: 如果您需要运行这些命令中的一个,您可以随时签出之前的 v2 分支。请告知我们,以便我们调查添加回任何丢失的命令。
Downcodes小编注: 删除了许多旧的和未维护的命令。
Downcodes小编注: 许多性能优化,包括训练和推理期间的优化。
Downcodes小编注: 旧的 C API 已被修改;使用原始 Darknet API 的应用程序需要进行一些小修改: https://darknetcv.ai/api/api.html
Downcodes小编注: 新的 Darknet V3 C 和 C++ API: https://darknetcv.ai/api/api.html
Downcodes小编注: src-examples 中的新应用程序和示例代码: https://darknetcv.ai/api/files.html
MSCOCO Pre-trained Weights
Downcodes小编注: 为了方便起见,几个流行的 YOLO 版本都经过预训练以适应 MSCOCO 数据集。此数据集有 80 个类别,可以在文本文件 cfg/coco.names 中看到。
Downcodes小编注: 还有其他几个更简单的数据集和预训练权重可用于测试 Darknet/YOLO,例如 LEGO Gears 和 Rolodex。有关详细信息,请参阅 Darknet/YOLO 常见问题。
Downcodes小编注: MSCOCO 预训练权重可以从几个不同的位置下载,也可以从此仓库下载:
1. YOLOv2, November 2016:
* YOLOv2-tiny
* YOLOv2-full
2. YOLOv3, May 2018:
* YOLOv3-tiny
* YOLOv3-full
3. YOLOv4, May 2020:
* YOLOv4-tiny
* YOLOv4-full
4. YOLOv7, August 2022:
* YOLOv7-tiny
* YOLOv7-full
Downcodes小编注: MSCOCO 预训练权重仅用于演示目的。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
`
Downcodes小编注: 请注意,人们应该训练自己的网络。MSCOCO 通常用于确认一切正常运行。
Building
Downcodes小编注: 过去(2023 年之前)的各种构建方法已被合并到一个统一的解决方案中。Darknet 需要 C++17 或更高版本、OpenCV,并使用 CMake 生成必要的项目文件。
Downcodes小编注: 您不需要了解 C++ 即可构建、安装或运行 Darknet/YOLO,就像您不需要是机械师才能驾驶汽车一样。
Google Colab
Downcodes小编注: Google Colab 的说明与 Linux 说明相同。有几个 Jupyter 笔记本可供使用,展示如何执行某些任务,例如训练新网络。
Downcodes小编注: 请参阅 colab 子目录中的笔记本,或遵循下面的 Linux 说明。
Linux CMake Method
Downcodes小编注: Darknet 的 Linux 构建教程
Downcodes小编注: 可选:如果您有现代 NVIDIA GPU,您可以在此时安装 CUDA 或 CUDA+cuDNN。如果已安装,Darknet 将使用您的 GPU 加速图像(和视频)处理。
Downcodes小编注: 您必须从 Darknet 构建目录中删除 CMakeCache.txt 文件,以强制 CMake 重新找到所有必需的文件。
Downcodes小编注: 请记住重新构建 Darknet。
Downcodes小编注: Darknet 可以运行,但如果您想训练自定义网络,则需要 CUDA 或 CUDA+cuDNN。
Downcodes小编注: 访问 https://developer.nvidia.com/cuda-downloads 下载并安装 CUDA。
Downcodes小编注: 访问 https://developer.nvidia.com/rdp/cudnn-download 或 https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn-package-manager-installation-overview 下载并安装 cuDNN。
Downcodes小编注: 安装 CUDA 后,请确保您可以运行 nvcc 和 nvidia-smi。您可能需要修改 PATH 变量。
Downcodes小编注: 如果您在稍后安装 CUDA 或 CUDA+cuDNN,或者升级到 NVIDIA 软件的更新版本:
Downcodes小编注: 这些说明假设(但不要求!)运行 Ubuntu 22.04 的系统。如果您使用的是其他发行版,请根据需要进行调整。
`bash
sudo apt-get install build-essential git libopencv-dev cmake
mkdir ~/srccd ~/src
git clone https://github.com/hank-ai/darknetcd darknet
mkdir buildcd build
cmake -DCMAKEBUILDTYPE=Release ..
make -j4 package
sudo dpkg -i darknet-VERSION.deb
`
Downcodes小编注: 如果您使用的是旧版本的 CMake,那么您需要在运行上面的 cmake 命令之前升级 CMake。在 Ubuntu 上升级 CMake 可以通过以下命令完成:
`bash
sudo apt-get purge cmakesudo snap install cmake --classic
`
Downcodes小编注: 如果您使用 bash 作为您的命令 shell,您将需要在此处重新启动您的 shell。如果您使用的是 fish,它应该立即拾取新的路径。
Downcodes小编注: 高级用户:
Downcodes小编注: 如果您想构建 RPM 安装文件而不是 DEB 文件,请参阅 CM_package.cmake 中的相关行。在运行 make -j4 package 之前,您需要编辑这两行:
`
SET (CPACKGENERATOR "DEB")# SET (CPACKGENERATOR "RPM")
`
Downcodes小编注: 对于 Centos 和 OpenSUSE 等发行版,您需要将 CM_package.cmake 中的这两行更改为:
`
SET (CPACKGENERATOR "DEB")SET (CPACKGENERATOR "RPM")
`
Downcodes小编注: 要安装安装包,一旦它完成构建,请使用您发行版的常用包管理器。例如,在基于 Debian 的系统(如 Ubuntu)上:
`bash
sudo dpkg -i darknet-2.0.1-Linux.deb
`
Downcodes小编注: 安装 .deb 包将复制以下文件:
/usr/bin/darknet 是通常的 Darknet 可执行文件。从 CLI 运行 darknet version 以确认它已正确安装。
/usr/include/darknet.h 是 Darknet API,供 C、C++ 和 Python 开发人员使用。
/usr/include/darknet_version.h 包含开发人员的版本信息。
/usr/lib/libdarknet.so 是库,供 C、C++ 和 Python 开发人员链接使用。
/opt/darknet/cfg/... 是所有 .cfg 模板存储的位置。
Downcodes小编注: 您现在完成了!Darknet 已构建并安装到 /usr/bin/ 中。运行以下命令进行测试:darknet version。
Downcodes小编注: 如果您没有 /usr/bin/darknet,则表示您没有安装它,您只是构建了它!请确保您按照上述步骤安装 .deb 或 .rpm 文件。
Windows CMake Method
Downcodes小编注: 这些说明假设 Windows 11 22H2 的全新安装。
Downcodes小编注: 打开一个普通的 cmd.exe 命令提示符窗口并运行以下命令:
`bash
winget install Git.Git
winget install Kitware.CMake
winget install nsis.nsis
winget install Microsoft.VisualStudio.2022.Community
`
Downcodes小编注: 此时,我们需要修改 Visual Studio 安装以包含对 C++ 应用程序的支持:
1. 点击“Windows 开始”菜单,运行“Visual Studio 安装程序”。
2. 点击修改。
3. 选择使用 C++ 的桌面开发。
4. 点击右下角的修改,然后点击是。
Downcodes小编注: 一旦所有内容下载并安装,请再次点击“Windows 开始”菜单,并选择 VS 2022 的开发人员命令提示符。不要使用 PowerShell 执行这些步骤,否则会出现问题!
Downcodes小编注: 高级用户:
Downcodes小编注: 除了运行开发人员命令提示符外,您还可以使用普通命令提示符或 ssh 登录到设备并手动运行“Program FilesMicrosoft Visual Studio2022CommunityCommon7ToolsVsDevCmd.bat”。
Downcodes小编注: 一旦您运行了上述开发人员命令提示符(不是 PowerShell!),请运行以下命令来安装 Microsoft VCPKG,它将用于构建 OpenCV:
`bash
cd c:mkdir c:srccd c:src
git clone https://github.com/microsoft/vcpkgcd vcpkg
bootstrap-vcpkg.bat .vcpkg.exe integrate install
.vcpkg.exe integrate powershell
.vcpkg.exe install opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
`
Downcodes小编注: 请耐心等待最后一步,因为它可能需要很长时间才能运行。它需要下载和构建许多东西。
Downcodes小编注: 高级用户:
Downcodes小编注: 请注意,在构建 OpenCV 时,您可能需要添加许多其他可选模块。运行 .vcpkg.exe search opencv 以查看完整列表。
Downcodes小编注: 可选:如果您有现代 NVIDIA GPU,您可以在此时安装 CUDA 或 CUDA+cuDNN。如果已安装,Darknet 将使用您的 GPU 加速图像(和视频)处理。
Downcodes小编注: 您必须从 Darknet 构建目录中删除 CMakeCache.txt 文件,以强制 CMake 重新找到所有必需的文件。
Downcodes小编注: 请记住重新构建 Darknet。
Downcodes小编注: Darknet 可以运行,但如果您想训练自定义网络,则需要 CUDA 或 CUDA+cuDNN。
Downcodes小编注: 访问 https://developer.nvidia.com/cuda-downloads 下载并安装 CUDA。
Downcodes小编注: 访问 https://developer.nvidia.com/rdp/cudnn-download 或 https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows 下载并安装 cuDNN。
Downcodes小编注: 安装 CUDA 后,请确保您可以运行 nvcc.exe 和 nvidia-smi.exe。您可能需要修改 PATH 变量。
Downcodes小编注: 下载 cuDNN 后,解压缩并将 bin、include 和 lib 目录复制到 C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/[version]/ 中。您可能需要覆盖一些文件。
Downcodes小编注: 如果您在稍后安装 CUDA 或 CUDA+cuDNN,或者升级到 NVIDIA 软件的更新版本:
Downcodes小编注: CUDA 必须在 Visual Studio 之后安装。如果您升级 Visual Studio,请记住重新安装 CUDA。
Downcodes小编注: 一旦所有先前的步骤成功完成,您需要克隆 Darknet 并构建它。在此步骤中,我们还需要告诉 CMake vcpkg 的位置,以便它可以找到 OpenCV 和其他依赖项:
`bash
cd c:src
git clone 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
`
Downcodes小编注: 如果您收到有关缺少 CUDA 或 cuDNN DLL 的错误(如 cublas64_12.dll),则手动将 CUDA .dll 文件复制到与 Darknet.exe 相同的输出目录中。例如:
`bash
copy "C:Program FilesNVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll" src-cliRelease
`
Downcodes小编注: (这是一个例子!请检查确保您运行的是什么版本,并运行适合您安装的内容的命令。)
Downcodes小编注: 一旦文件被复制,重新运行最后一个 msbuild.exe 命令来生成 NSIS 安装包:
`bash
msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj
`
Downcodes小编注: 高级用户:
Downcodes小编注: 请注意,cmake 命令的输出是一个普通的 Visual Studio 解决方案文件,Darknet.sln。如果您是一位经常使用 Visual Studio GUI 而不是 msbuild.exe 来构建项目的软件开发人员,您可以忽略命令行并在 Visual Studio 中加载 Darknet 项目。
Downcodes小编注: 您现在应该有以下文件可以运行:C:srcDarknetbuildsrc-cliReleasedarknet.exe。运行以下命令进行测试:C:srcDarknetbuildsrc-cliReleasedarknet.exe version。
Downcodes小编注: 要正确安装 Darknet、库、包含文件和必要的 DLL,请运行在最后一步中构建的 NSIS 安装向导。请参阅 build 目录中的文件 darknet-VERSION.exe。例如:
`bash
darknet-2.0.31-win64.exe
`
Downcodes小编注: 安装 NSIS 安装包将:
创建一个名为 Darknet 的目录,例如 C:Program FilesDarknet。
安装 CLI 应用程序,darknet.exe 和其他示例应用程序。
安装所需的第三方 .dll 文件,例如来自 OpenCV 的文件。
安装必要的 Darknet .dll、.lib 和 .h 文件,以便从另一个应用程序使用 darknet.dll。
安装模板 .cfg 文件。
Downcodes小编注: 您现在完成了!安装向导完成后,Darknet 将安装到 C:Program FilesDarknet 中。运行以下命令进行测试:C:Program FilesDarknetbindarknet.exe version。
Downcodes小编注: 如果您没有 C:/Program Files/darknet/bin/darknet.exe,则表示您没有安装它,您只是构建了它!请确保您按照上一步中 NSIS 安装向导的每个面板进行操作。
Using Darknet
CLI
Downcodes小编注: 以下不是 Darknet 支持的所有命令的完整列表。
Downcodes小编注: 除了 Darknet CLI 外,请注意 DarkHelp 项目 CLI,它为 Darknet/YOLO 提供了一个替代的 CLI。DarkHelp CLI 还有一些 Darknet 中没有的先进功能。您可以同时使用 Darknet CLI 和 DarkHelp CLI,它们并不相互排斥。
Downcodes小编注: 对于下面显示的大多数命令,您将需要带有相应 .names 和 .cfg 文件的 .weights 文件。您可以训练自己的网络(强烈推荐!),或者从互联网上下载别人已经训练并免费提供的神经网络。预训练数据集的例子包括:
LEGO Gears(在图像中查找物体)
Rolodex(在图像中查找文本)
MSCOCO(标准的 80 类目标检测)
Downcodes小编注: 要运行的命令包括:
1. 列出一些可能运行的命令和选项:
`bash
darknet help
`
2. 检查版本:
`bash
darknet version
`
3. 使用图像进行预测:
* V2:
`bash
darknet detector test cars.data cars.cfg cars_best.weights image1.jpg
`
* V3:
`bash
darknet02displayannotatedimages cars.cfg image1.jpg
`
* DarkHelp:
`bash
DarkHelp cars.cfg cars.cfg cars_best.weights image1.jpg
`
4. 输出坐标:
* V2:
`bash
darknet detector test animals.data animals.cfg animalsbest.weights -extoutput dog.jpg
`
* V3:
`bash
darknet01inference_images animals dog.jpg
`
* DarkHelp:
`bash
DarkHelp --json animals.cfg animals.names animals_best.weights dog.jpg
`
5. 处理视频:
* V2:
`bash
darknet detector 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. 从网络摄像头读取:
* V2:
`bash
darknet detector demo animals.data animals.cfg animals_best.weights -c 0
`
* V3:
`bash
darknet08display_webcam animals
`
7. 将结果保存到视频中:
* V2:
`bash
darknet detector 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 detector demo animals.data animals.cfg animalsbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
`
* V3:
`bash
darknet06imagestojson animals image1.jpg
`
* DarkHelp:
`bash
DarkHelp --json animals.names animals.cfg animals_best.weights image1.jpg
`
9. 在特定 GPU 上运行:
* V2:
`bash
darknet detector demo animals.data animals.cfg animals_best.weights -i 1 test.mp4
`
10. 检查神经网络的准确性:
`bash
darknet detector map driving.data driving.cfg driving_best.weights ...
Id Name AvgPrecision TP FN FP TN Accuracy ErrorRate Precision Recall Specificity FalsePosRate
-- ---- ------------ ------ ------ ------ ------ -------- --------- --------- ------ ----------- ------------
0 vehicle 91.2495 32648 3903 5826 65129 0.9095 0.0905 0.8486 0.8932 0.9179 0.0821
1 motorcycle 80.4499 2936 513 569 5393 0.8850 0.1150 0.8377 0.8513 0.9046 0.0954
2 bicycle 89.0912 570 124 104 3548 0.9475 0.0525 0.8457 0.8213 0.9715 0.0285
3 person 76.7937 7072 1727 2574 27523 0.8894 0.1106 0.7332 0.8037 0.9145 0.0855
4 many vehicles 64.3089 1068 509 733 11288 0.9087 0.0913 0.5930 0.6772 0.9390 0.0610
5 green light 86.8118 1969 239 510 4116 0.8904 0.1096 0.7943 0.8918 0.8898 0.1102
6 yellow light 82.0390 126 38 30 1239 0.9525 0.0475 0.8077 0.7683 0.9764 0.0236
7 red light 94.1033 3449 217 451 4643 0.9237 0.0763 0.8844 0.9408 0.9115 0.0885
`
11. 检查准确率 mAP@IoU=75:
`bash
darknet detector map animals.data animals.cfg animalsbest.weights -iouthresh 0.75
`
12. 重新计算锚点最好在 DarkMark 中完成,因为它会连续运行 100 次并从所有计算出的锚点中选择最佳锚点。但如果您想在 Darknet 中运行旧版本:
`bash
darknet detector calcanchors animals.data -numof_clusters 6 -width 320 -height 256
`
13. 训练新网络:
`bash
darknet detector -map -dont_show train animals.data animals.cfg
`
(另请参阅下面的训练部分)
Training
Downcodes小编注: Darknet/YOLO 常见问题的相关部分的快速链接:
如何设置我的文件和目录?
我应该使用哪个配置文件?
训练自己的网络时应该使用什么命令?
Downcodes小编注: 使用 DarkMark 创建所有必要的 Darknet 文件是进行标注和训练最简单的方法。这绝对是训练新神经网络的推荐方法。
Downcodes小编注: 如果您想手动设置各种文件来训练自定义网络:
1. 创建一个新的文件夹来存储文件。例如,将创建一个神经网络来检测动物,因此将创建以下目录:~/nn/animals/。
2. 复制一个您想用作模板的 Darknet 配置文件。例如,请参阅 cfg/yolov4-tiny.cfg。将它放在您创建的文件夹中。例如,我们现在有了 ~/nn/animals/animals.cfg。
3. 在您放置配置文件的同一个文件夹中创建一个 animals.names 文本文件。例如,我们现在有了 ~/nn/animals/animals.names。
4. 使用文本编辑器编辑 animals.names 文件。列出您要使用的类别。您需要每行只有一个条目,没有空行和注释。例如,.names 文件将包含正好 4 行:
`
dog
cat
bird
horse
`
5. 在同一个文件夹中创建一个 animals.data 文本文件。例如,.data 文件将包含:
`
classes=4
train=/home/username/nn/animals/animals_train.txt
valid=/home/username/nn/animals/animals_valid.txt
names=/home/username/nn/animals/animals.names
backup=/home/username/nn/animals
`
6. 创建一个文件夹来存储您的图像和标注。例如,这可能是 ~/nn/animals/dataset。每个图像都需要一个相应的 .txt 文件,描述该图像的标注。.txt 标注文件的格式非常具体。您不能手动创建这些文件,因为每个标注都需要包含标注的精确坐标。请参阅 DarkMark 或其他类似软件来标注您的图像。YOLO 标注格式在 Darknet/YOLO 常见问题中进行了描述。
7. 创建 .data 文件中命名的“train”和“valid”文本文件。这两个文本文件需要分别列出 Darknet 用于训练和验证时计算 mAP% 的所有图像。每行正好一个图像。路径和文件名可以是相对的或绝对的。
8. 使用文本编辑器修改您的 .cfg 文件。
9. 确保 batch=64。
10. 注意 subdivisions。根据网络尺寸和 GPU 上可用的内存量,您可能需要增加 subdivisions。要使用的最佳值是 1,因此从该值开始。如果 1 不适合您,请参阅 Darknet/YOLO 常见问题。
11. 注意 maxbatches=....。在开始时使用的良好值是类数的 2000 倍。例如,我们有 4 种动物,因此 4 * 2000 = 8000。这意味着我们将使用 maxbatches=8000。
12. 注意 steps=....。这应该设置为 maxbatches 的 80% 和 90%。例如,由于 maxbatches 设置为 8000,因此我们将使用 steps=6400,7200。
13. 注意 width=... 和 height=....。这些是网络尺寸。Darknet/YOLO 常见问题解释了如何计算要使用的最佳尺寸。
14. 搜索所有包含行 classes=... 的实例,并使用 .names 文件中的类别数修改它。例如,我们将使用 classes=4。
15. 在每个 [yolo] 部分之前的 [convolutional] 部分中