YoloDotNet
YoloDotNet 是一个基于 .NET 8 的 C# 实现,用于实时检测图像和视频中的物体。它利用了 ML.NET 和 ONNX runtime,并支持通过 CUDA 进行 GPU 加速。
YoloDotNet 支持的功能:
- 分类 (Classification): 对图像进行分类。
- 物体检测 (Object Detection): 在单个图像中检测多个物体。
- 旋转边界框检测 (OBB Detection): 类似于一般的物体检测,但使用旋转边界框。
- 分割 (Segmentation): 使用像素掩码分割检测到的物体。
- 姿态估计 (Pose Estimation): 识别图像中特定关键点的位置。
使用场景:
- 实时监控: 在视频流中,实时检测和跟踪物体,例如监控摄像头中的人员和车辆。
- 图像分类: 对静态图像进行分类,可以用于图像库管理或内容识别。
- 自动驾驶: 检测道路上的车辆、行人和其他障碍物。
- 无人机监控: 从无人机拍摄的图像中检测和分类感兴趣的物体,如建筑、车辆等。
- 工业自动化: 在生产线中检测和识别产品的状态和位置。
- 姿态评估: 在运动或医疗应用中,用于分析人体姿态。
安装和使用:
-
安装 YoloDotNet 包:
> dotnet add package YoloDotNet
-
安装 CUDA(可选):
- 下载安装 CUDA v11.8。
- 下载并解压 cuDNN v8.9.7,将 bin 文件夹中的 DLL 复制到 CUDA bin 文件夹。
- 将 CUDA bin 文件夹路径添加到环境变量
Path
中。
-
导出 Yolov8 模型为 ONNX 格式:
- 参考 Ultralytics 的文档导出模型。
-
示例 - 图像推理:
using YoloDotNet; using SixLabors.ImageSharp; using SixLabors.ImageSharp.PixelFormats; // 加载 ONNX 模型 using var yolo = new Yolo(@"path\to\your_model.onnx"); // 加载图像 using var image = Image.Load<Rgba32>(@"path\to\image.jpg"); // 执行分类操作 var results = yolo.RunClassification(image, 5); image.Draw(results); image.Save(@"path\to\save\image.jpg");
-
示例 - 视频推理:
- 下载 FFmpeg,并将其添加到环境变量
Path
中。
using SixLabors.ImageSharp; using YoloDotNet; // 加载 ONNX 模型 using var yolo = new Yolo(@"path\to\your_model.onnx"); // 视频选项 var options = new VideoOptions { VideoFile = @"path\to\video.mp4", OutputDir = @"path\to\output\folder" }; // 执行分类操作 var results = yolo.RunClassification(options, 5);
- 下载 FFmpeg,并将其添加到环境变量
YoloDotNet 提供了强大的图像和视频分析功能,适用于各种计算机视觉应用。其可定制性和 GPU 加速支持使其成为处理大规模图像和视频数据的理想选择。
广告:私人定制视频文本提取,字幕翻译制作等,欢迎联系QQ:1752338621