加特林
什么是加特林?
Gattle 是一款功能强大的开源负载测试工具,专为性能和可靠性而设计。它提供了一个全面的解决方案,用于模拟真实用户行为并测量应用程序在压力下的性能。
动机
加特林使您能够:
1. 了解应用程序的限制:在瓶颈和性能问题影响用户之前识别它们。
2. 改善用户体验:确保您的应用程序能够处理峰值流量并为所有用户提供流畅的性能。
3. 获得有价值的见解:分析测试结果以优化应用程序的性能、可扩展性和可靠性。
有问题,需要帮助吗?
如需帮助和支持,您可以:
1.查阅官方文档:探索详细的教程、指南和API参考。
2. 加入 Gattle 社区论坛:与其他用户联系、分享经验并寻求建议。
3. 报告问题:如果遇到错误,请在官方 Gadling GitHub 存储库上提出问题。
合作伙伴
Ga特林与各个合作伙伴合作提供全面的负载测试解决方案。探索专业集成和支持服务的合作伙伴生态系统。
暗网目标检测框架和 YOLO
Darknet 是一个用 C、C++ 和 CUDA 编写的开源神经网络框架,以其速度和效率而闻名。
YOLO(You Only Look Once)是一种最先进的实时目标检测系统,与 Darknet 框架无缝集成。
探索暗网/YOLO 生态系统:
1. Hank.ai 的贡献:了解 Hank.ai 如何积极为 Darknet/YOLO 社区做出贡献。
2. 官方网站:访问Darknet/YOLO网站上的最新信息、资源和新闻。
3. 全面的常见问题解答:查找有关 Darknet/YOLO 的常见问题解答。
4. 加入 Discord 服务器:与其他 Darknet/YOLO 爱好者联系,讨论想法并获得支持。
文件
1. YOLOv7:探索YOLOv7的最新进展。
2. Scaled-YOLOv4:深入研究 Scaled-YOLOv4 架构及其性能增强。
3. YOLOv4:了解YOLOv4的关键特性和创新。
4. YOLOv3:了解YOLO的起源以及YOLOv3的基本原理。
一般信息
Darknet/YOLO 框架在速度和准确性方面始终优于其他框架和 YOLO 版本。
它完全免费且开源,允许您将其集成到您的项目和产品中,而不受许可限制。
2024 年 10 月发布的 Darknet V3“Jazz”实现了卓越的性能,使用 NVIDIA RTX 3090 GPU 以高达 1000 FPS 的速度处理乐高数据集视频。
暗网版本
1. 版本 0.x:由 Joseph Redmon 在 2013-2017 年开发的原始暗网工具。
2. 版本 1.x:流行的暗网存储库,由 Alexey Bochkovskiy 在 2017 年至 2021 年间维护。
3. 2.x 版本“OAK”:由 Hank.ai 赞助并由 Stéphane Charette 从 2023 年开始维护的暗网存储库。它引入了版本编号并带来了重大增强,包括:
- 使用适用于 Windows 和 Linux 的 CMake 进行统一构建过程。
- 代码库转换为 C++ 编译器。
- 改进了训练期间的图表.png 可视化。
- 错误修复和性能优化。
4. 版本2.1:版本2.x的最后一个分支,在v2分支中可用。
5. 3.x版本“JAZZ”:2024年10月发布的最新版本,特点:
- 删除了遗留和未维护的命令。
- 针对训练和推理的广泛性能优化。
- 修改了旧版 C API。
- 新的 Darknet V3 C 和 C++ API。
- src-examples 中扩展了示例代码和应用程序。
MSCOCO 预训练权重
几个流行的 YOLO 版本在 MSCOCO 数据集上进行了预训练,提供 cfg/coco.names 文件中列出的 80 个对象类。
其他数据集和预训练权重可用于测试,包括:
乐高齿轮
名片盒
从不同位置下载 MSCOCO 预训练权重,包括此存储库:
|版本 |小|完整|
|---|---|---|
| YOLOv2(2016 年 11 月)| yolov2-tiny.weights | yolov2-tiny.weights | yolov2-full.weights | yolov2-full.weights |
| YOLOv3(2018 年 5 月)| yolov3-tiny.weights | yolov3-tiny.weights | yolov3-full.weights | yolov3-full.weights |
| YOLOv4(2020 年 5 月)| yolov4-tiny.weights | yolov4-tiny.weights | yolov4-full.weights | yolov4-full.weights |
| YOLOv7(2022 年 8 月)| yolov7-tiny.weights | yolov7-tiny.weights | yolov7-full.weights | yolov7-full.weights |
使用 MSCOCO 预训练权重的示例:
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 主要用于测试。
建筑
Darknet 需要 C++17 或更高版本、OpenCV,并使用 CMake 进行构建自动化。
重要提示:这些说明针对 2023 年 8 月后构建 Darknet 进行了更新。如果您在使用旧教程时遇到问题,请参阅此自述文件以了解最新的构建步骤。
谷歌合作实验室
请按照下面的 Linux 说明进行操作。探索 colab 子目录中的 Jupyter Notebook 以执行训练等特定任务。
Linux CMake方法
1.安装必要的依赖项:
- sudo apt-get install build-essential git libopencv-dev cmake
2.克隆暗网存储库:
- mkdir ~/srccd ~/src git 克隆 https://github.com/hank-ai/darknet
3.创建构建目录:
- cd darknet mkdir buildcd build
4.配置并构建暗网:
- cmake -DCMAKEBUILDTYPE =发布..
- 制作-j4 包
5.安装.deb包:
- sudo dpkg -i darknet-VERSION.deb
6. 验证安装:
- 暗网版本
可选:安装 CUDA 或 CUDA+cuDNN 以进行 GPU 加速:
1.下载并安装CUDA:
- https://developer.nvidia.com/cuda-downloads
2.下载并安装cuDNN:
- https://developer.nvidia.com/rdp/cudnn-download
- https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn-package-manager-installation-overview
3.验证CUDA安装:
- NVCC
- 英伟达-SMI
4.重建暗网:
- cmake -DCMAKEBUILDTYPE =发布..
- 制作-j4 包
5.安装更新的.deb包:
- sudo dpkg -i darknet-VERSION.deb
Windows CMake方法
1.安装必要的依赖项:
- winget安装Git.Git
- winget安装Kitware.CMake
- winget安装nsis.nsis
- winget安装Microsoft.VisualStudio.2022.Community
2.修改Visual Studio安装:
- 打开“Visual Studio 安装程序”。
- 选择“修改”。
- 选择“使用 C++ 进行桌面开发”。
- 单击“修改”和“是”。
3.安装微软VCPKG:
- 打开 VS 2022 的开发人员命令提示符(不是 PowerShell)。
- cd c:mkdir c:srccd c:src git clone 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
4.克隆暗网存储库:
- cd c:src git克隆 https://github.com/hank-ai/darknet.gitcd darknet
5.创建构建目录:
- mkdir buildcd 构建
6.配置并构建暗网:
- 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:Platform=x64;Configuration=Release PACKAGE.vcxproj
7. 如果需要,复制 CUDA DLL:
- 如果遇到缺少 CUDA DLL 错误,请将它们复制到输出目录:
- 复制“C:Program FilesNVIDIA GPU计算工具包CUDAv12.2bin * .dll”src-cliRelease
8.重新运行msbuild生成NSIS安装包:
- msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj
9. 运行 NSIS 安装向导:
- 暗网版本.exe
10. 验证安装:
- C:Program FilesDarknetbindarknet.exe 版本
可选:安装 CUDA 或 CUDA+cuDNN 以进行 GPU 加速:
1.下载并安装CUDA:
- https://developer.nvidia.com/cuda-downloads
2.下载并安装cuDNN:
- https://developer.nvidia.com/rdp/cudnn-download
- https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows
3.解压cuDNN并复制目录:
- C:/Program Files/NVIDIA GPU 计算工具包/CUDA/[版本]
4.重建暗网:
- 安装 CUDA 后重复步骤 6-8。
使用暗网
命令行界面
命令:
暗网帮助
暗网版本
图像预测:
V2:暗网探测器测试 cars.data cars.cfg cars_best.weights image1.jpg
V3:darknet02displayannotatedimages cars.cfg image1.jpg
DarkHelp:DarkHelp cars.cfg cars.cfg cars_best.weights image1.jpg
输出坐标:
V2:暗网探测器测试animals.dataanimals.cfganimalsbest.weights-extoutputdog.jpg
V3:darknet01inference_images 动物 狗.jpg
DarkHelp:DarkHelp --json Animals.cfg Animals.names Animals_best.weights Dog.jpg
视频处理:
V2:暗网探测器演示 Animals.data Animals.cfg Animalbest.weights -extoutput test.mp4
V3:darknet03display_videos Animals.cfg test.mp4
DarkHelp:DarkHelp Animals.cfg Animals.names Animals_best.weights test.mp4
摄像头:
V2:暗网探测器演示 Animals.data Animals.cfg Animals_best.weights -c 0
V3:darknet08display_网络摄像头动物
将结果保存到视频:
V2:暗网探测器演示animals.data Animals.cfg Animalbest.weights test.mp4 -outfilename res.avi
V3:darknet05processvideos多线程animals.cfganimals.namesanimals_best.weightstest.mp4
DarkHelp:DarkHelp Animals.cfg Animals.names Animals_best.weights test.mp4
JSON 输出:
V2:暗网探测器演示animals.data Animals.cfg Animalbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
V3:darknet06imagestojson 动物 image1.jpg
DarkHelp: DarkHelp --json Animals.names Animals.cfg Animals_best.weights image1.jpg
具体GPU:
V2:暗网探测器演示 Animals.data Animals.cfg Animals_best.weights -i 1 test.mp4
准确性:
暗网探测器地图 Driving.data Driving.cfg moving_best.weights ...
暗网探测器地图animals.dataanimals.cfganimalsbest.weights-iothresh 0.75
锚点:
暗网探测器 calcanchors Animals.data -numof_clusters 6 -宽度 320 -高度 256
训练
DarkMark:利用 DarkMark 进行注释和训练。这是训练新神经网络的推荐方法。
手动设置:
1. 创建项目目录:例如~/nn/animals/。
2.复制配置文件:cfg/yolov4-tiny.cfg
3. 创建一个 Animals.names 文件:列出类(每行一个),例如:
- 狗
- 猫
- 鸟
- 马
4. 创建animals.data文件:
- 班级 = 4
- 火车 = /home/用户名/nn/animals/animals_train.txt
- 有效 = /home/用户名/nn/animals/animals_valid.txt
- 名称 = /home/用户名/nn/animals/animals.names
- 备份 = /home/用户名/nn/animals
5. 创建数据集文件夹:以YOLO格式存储图像和相应的注释文件(.txt)。
6. 创建animalstrain.txt 和animalsvalid.txt:列出用于训练和验证的图像。
7.修改animals.cfg:
- 批次 = 64
- 细分= 1
- max_batches = 8000(4 类 * 2000)
- 步数 = 6400,7200
- 宽度 = ...
- 高度 = ...
- 班级 = 4
- 更新过滤器值(例如,(4 + 5) * 3 = 27)。
8.开始训练: cd ~/nn/animals/ darknet detector -map -dont_show train Animals.data Animals.cfg
训练参数:
--verbose 详细输出
其他工具和链接
DarkMark:Darknet 的项目管理、图像注释和文件生成。
DarkHelp:替代 CLI、图像平铺、对象跟踪和强大的 C++ API。
Darknet/YOLO 常见问题解答:针对常见问题的丰富资源。
Stéphane 的 YouTube 频道:教程和示例视频。
Darknet/YOLO Discord 服务器:社区支持和讨论。
路线图
完全的:
训练期间 qsort() 的 std::sort()
删除 check_mistakes、getchar() 和 system()
C++ 编译器支持(Linux 上的 g++,Windows 上的 VisualStudio)
Windows 构建修复
Python 支持修复
暗网库构建
预测标签(“字母”代码)
CUDA/GPU 代码重新启用
CUDNN 重新启用
CUDNN 半重新启用
非硬编码的 CUDA 架构
改进了 CUDA 版本信息
AVX 重新启用
删除旧的解决方案和 Makefile
OpenCV 作为非可选依赖项
删除旧的 pthread 库依赖项
移除机顶盒
CMakeLists.txt 重写以实现新的 CUDA 检测
删除“字母”代码和数据/标签图像
外源构建
增强版本号输出
训练和推理的性能优化
尽可能通过引用传递
已清理的 .hpp 文件
重写darknet.h
使用 cv::Mat 代替 void* 转换
修复内部图像结构使用
针对基于 ARM 的 Jetson 设备的构建修复
V3 中的 Python API 修复
短期目标:
printf() 的 std::cout
Zed 相机支持
改进的命令行解析
中期目标:
删除 char* 代码以支持 std::string
编译器警告清理
改进了 cv::Mat 的使用
用 std::vector 或 std::list 替换旧列表功能
支持1通道灰度图像
支持 N 通道图像 (N > 3)
持续的代码清理
长期目标:
针对所有 GPU 的 CUDA/CUDNN 修复
CUDA+cuDNN代码重写
非 NVIDIA GPU 支持
旋转边界框和角度支持
关键点和骨架
热图
分割