YoloDotNet v2.1:實時物體檢測的利器

China Soft發表於2024-10-15

https://www.cnblogs.com/shanyou/p/18457208

專案介紹

YoloDotNet v2.1 是一個基於 C# 和 .NET 8 的實時物體檢測框架,專為影像和影片中的物體檢測而設計。它整合了 Yolov8 ~ Yolov11 模型,透過 ML.NET 和 ONNX 執行時實現高效的物體檢測,並支援 GPU 加速(使用 CUDA)。YoloDotNet 不僅支援傳統的物體檢測,還涵蓋了分類、OBB 檢測、分割和姿態估計等多種功能,適用於各種複雜的視覺任務。

image

專案技術分析

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
});
PLAINTEXT 複製 全屏
配置選項說明
  • OnnxModel: 指定 ONNX 模型的路徑。
  • ModelType: 指定模型型別,如 ObjectDetection
  • Cuda: 是否啟用 CUDA 加速。
  • GpuId: 指定使用的 GPU ID。
  • PrimeGpu: 是否預分配 GPU 記憶體。

透過這些配置選項,可以在程式碼中靈活地調整 YoloDotNet 的行為,以適應不同的應用場景。

相關文章