Я пытаюсь запустить YOLOv3 в Visual Studio 2019 с использованием CUDA 10.2 с cuDNN v7.6.5 на Windows 10 с использованием NVidia GeForce 930M. Вот часть кода, который я использовал.
#include <fstream>
#include <sstream>
#include <iostream>
#include <opencv2/dnn.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp>
using namespace cv;
using namespace dnn;
using namespace std;
int main()
{
// Load names of classes
string classesFile = "coco.names";
ifstream ifs(classesFile.c_str());
string line;
while (getline(ifs, line)) classes.push_back(line);
// Give the configuration and weight files for the model
String modelConfiguration = "yolovs.cfg";
String modelWeights = "yolov3.weights";
// Load the network
Net net = readNetFromDarknet(modelConfiguration, modelWeights);
net.setPreferableBackend(DNN_BACKEND_CUDA);
net.setPreferableTarget(DNN_TARGET_CUDA);
// Open the video file
inputFile = "vid.mp4";
cap.open(inputFile);
// Get frame from the video
cap >> frame;
// Create a 4D blob from a frame
blobFromImage(frame, blob, 1 / 255.0, Size(inpWidth, inpHeight), Scalar(0, 0, 0), true, false);
// Sets the input to the network
net.setInput(blob);
// Runs the forward pass to get output of the output layers
vector<Mat> outs;
net.forward(outs, getOutputsNames(net));
}
Хотя я добавляю $ (CUDNN) \ include; $ (cudnn) \ include; в Дополнительные каталоги включения в обоих C / C ++ и Linker , добавлено CUDNN_HALF; CUDNN; в C / C ++> Определения препроцессора и добавлено cudnn.lib; до Linker> Input , я все еще получаю это предупреждение:
Модуль DNN не был построен с бэкэндом CUDA; переключение на CPU
и он работает на CPU вместо GPU, кто-нибудь может мне помочь с этой проблемой?