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<YoloCocoP5Model>("Assets/Weights/yolov5n.onnx", sessionOpts);
_capture = new VideoCapture("http://192.168.151.130:8080/video"); // 手机摄像头流媒体
但是最终在2060笔记本显卡上发现 CUDA速度不如AMD的CPU快。。。