C# Emgu CV — как использовать cuda в dnn

#c# #.net #opencv #emgucv

Вопрос:

 public static void DetectObjects(Bitmap bitmapImage)
    {
        
        Image<Bgr, byte> image;

        image = bitmapImage.ToImage<Bgr, byte>();

        Mat input = DnnInvoke.BlobFromImage(image, 1 / 255.0, swapRB: true);

        _netModel.SetInput(input);

        Mat output = _netModel.Forward();

    }

    private static Net _netModel = DnnInvoke.ReadNetFromDarknet("B:/yolov3.cfg.txt", "B:/yolov3.weights");
 

Проект имеет EmguCV версии 4.4.0.4099 и модуль CUDA той же версии.

В результате мне нужна функция для выполнения вычислений на графическом процессоре.

Сколько не искал по этому поводу, я не нашел подходящей информации.

Ответ №1:

Кажется, этого достаточно, чтобы использовать

 _netModel.SetPreferableBackend(Emgu.CV.Dnn.Backend.Cuda);
 

Источник

Комментарии:

1. насколько я помню, у них также есть поддерживаемое серверное свойство где-то поблизости. Поэтому может быть полезно проверить этот массив перед установкой серверной части