https://www.cnblogs.com/shanyou/p/18457208
專案介紹
YoloDotNet v2.1 是一個基於 C# 和 .NET 8 的實時物體檢測框架,專為影像和影片中的物體檢測而設計。它整合了 Yolov8 ~ Yolov11 模型,透過 ML.NET 和 ONNX 執行時實現高效的物體檢測,並支援 GPU 加速(使用 CUDA)。YoloDotNet 不僅支援傳統的物體檢測,還涵蓋了分類、OBB 檢測、分割和姿態估計等多種功能,適用於各種複雜的視覺任務。
專案技術分析
YoloDotNet 2.1 現已推出,比以往任何時候都更強大!此版本建立在之前的“Speed Demon”v2.0 更新的基礎上,並新增了一些令人興奮的新功能,同時保持一切順利。與舊版本的相容性已得到保證,並且進行了一些調整以獲得更好的物件檢測效能。檢視新增功能:
- Yolov11 支援:最新、最出色的物件檢測模型的支援,為使用者提供了更先進的物體檢測能力。
- Yolov9 的向後相容性:現在您可以在 Yolov8-v11 版本之間切換。
- 小最佳化:為了更快地檢測物件,這裡和那裡有一些調整,速度越快越好!
- OnnxRuntime 更新:現在支援 CUDA 12.x 和 cuDNN 9.x。GPU 肯定會對這個感到滿意!
YoloDotNet v2.1 – 更快、更智慧,幷包含更多 Yolo 優點;
專案及技術應用場景
YoloDotNet v2.1 的應用場景非常廣泛,包括但不限於:
- 智慧監控:實時檢測監控影片中的異常行為或物體。
- 自動駕駛:實時識別道路上的行人、車輛和其他障礙物。
- 工業檢測:自動化檢測生產線上的產品缺陷或異常。
- 醫療影像分析:輔助醫生快速識別醫學影像中的病變區域。
- 體育分析:實時分析運動員的動作和姿態,用於訓練和比賽分析。
專案特點
YoloDotNet v2.1 具有以下顯著特點:
- 高效能:透過多項最佳化措施,YoloDotNet v2.1 在速度和效率上達到了新的高度,尤其在 GPU 加速下表現出色。
- 多功能:支援分類、物體檢測、OBB 檢測、分割和姿態估計等多種視覺任務,滿足不同應用需求。
- 易用性:提供了簡潔的 API 和豐富的示例程式碼,方便開發者快速上手。
- 跨平臺:基於 .NET 8,支援 Windows、Linux 和 macOS 等多種作業系統。
- 開源免費:完全開源,使用者可以自由使用、修改和分發。
結語
YoloDotNet v2.1 不僅在技術上實現了重大突破,還為使用者提供了強大的工具來應對各種複雜的視覺任務。無論你是開發者、研究人員還是企業使用者,YoloDotNet v2.1 都能為你提供高效、可靠的解決方案。立即體驗 YoloDotNet v2.1,開啟你的智慧視覺之旅!
專案地址:YoloDotNet GitHub:https://github.com/NickSwardh/YoloDotNet
安裝指南:
dotnet add package YoloDotNet
注意:使用 GPU 加速需要安裝 CUDA 和 cuDNN,請確保 ONNX 執行時與這些元件的相容性。
專案的包含一個示例專案,啟動檔案位於 ConsoleDemo/Program.cs
。該檔案包含了專案的入口點,用於啟動和執行 YoloDotNet 的控制檯應用程式。
Program.cs 檔案內容概述
using System;
using YoloDotNet;
namespace ConsoleDemo
{
class Program
{
static void Main(string[] args)
{
// 初始化 Yolo 物件
var yolo = new Yolo(@"path\to\model.onnx");
// 載入影像
var image = Image.Load<Rgba32>(@"path\to\image.jpg");
// 執行物件檢測
var results = yolo.RunObjectDetection(image, confidence: 0.25, iou: 0.7);
// 處理結果
image.Draw(results);
image.Save(@"path\to\save\image.jpg");
}
}
}
啟動檔案功能
- 初始化 Yolo 物件: 載入 ONNX 模型。
- 載入影像: 使用 SixLabors.ImageSharp 載入影像。
- 執行物件檢測: 呼叫 Yolo 物件的
RunObjectDetection
方法進行物件檢測。 - 處理結果: 在影像上繪製檢測結果並儲存。
3. 專案配置檔案介紹
YoloDotNet 專案沒有傳統的配置檔案(如 .config
或 .yaml
檔案),但可以透過程式碼中的配置選項來調整專案的行為。
配置選項示例
var yolo = new Yolo(new YoloOptions
{
OnnxModel = @"path\to\model.onnx",
ModelType = ModelType.ObjectDetection,
Cuda = true,
GpuId = 0,
PrimeGpu = false
});
配置選項說明
- OnnxModel: 指定 ONNX 模型的路徑。
- ModelType: 指定模型型別,如
ObjectDetection
。 - Cuda: 是否啟用 CUDA 加速。
- GpuId: 指定使用的 GPU ID。
- PrimeGpu: 是否預分配 GPU 記憶體。
透過這些配置選項,可以在程式碼中靈活地調整 YoloDotNet 的行為,以適應不同的應用場景。