c#调用CUDA执行YOLOV5对象检测

c#使用调YOLOV5对象检测,并调用CUDA进行计算

1.CUDA版本11.2

2.cuDNN用cudnn-windows-x86_64-8.9.3.28_cuda11-archive

记得把压缩包的三个文件夹放到cuda根目录下覆盖

3.Microsoft.ML.OnnxRuntime.Gpu要使用1.13.1,如果版本太新,SessionOptions会报错。

 private SessionOptions GetSessionOptions()
 {
     bool supportGPU = (Environment.GetEnvironmentVariable("CPAI_MODULE_SUPPORT_GPU") ?? "true").ToLower() == "true";

     SessionOptions sessionOpts = new SessionOptions();
     string[]? providers = null;
     try
     {
         providers = OrtEnv.Instance().GetAvailableProviders();
     }
     catch
     {
     }
     sessionOpts.AppendExecutionProvider_CUDA();//显卡用这个
     //sessionOpts.AppendExecutionProvider_CPU();
     return sessionOpts;
 }


//初始化onnx模型的代码

 SessionOptions sessionOpts = GetSessionOptions();

 _scorer = new YoloScorer("Assets/Weights/yolov5n.onnx", sessionOpts);

 _capture = new VideoCapture("http://192.168.151.130:8080/video"); // 手机摄像头流媒体

但是最终在2060笔记本显卡上发现 CUDA速度不如AMD的CPU快。。。

你可能感兴趣的:(C#.NET,c#,YOLO,开发语言)