C# - Emgu CV dnn module - Failed to parse NetParameter file
public static void DetectObjects(Bitmap image)
{
Mat blob = DnnInvoke.BlobFromImage(image.ToMat());
_netModel.SetInput(blob);
Mat output = _netModel.Forward();
MessageBox.Show(output.ToString());
}
private static Net _netModel = DnnInvoke.ReadNetFromDarknet("C:/Users/user/Downloads/yolov4-tiny.cfg.txt, C:/Users/user/Downloads/yolov4-tiny.weights");
Этот код бросает исключение CvException: OpenCV: Failed to parse NetParameter file: C:/Users/user/Downloads/yolov4-tiny.cfg.txt, C:/Users/user/Downloads/yolov4-tiny.weights
Для решения проблемы пытался использовать советы вроде этих: https://stackoverflow.com/questions/55792523/failed-to-parse-netparameter-file (Использовать абсолютный путь, скачать новые файлы darknet'а), изменений не последовало.
Также была просмотрена эта страница: https://github.com/cansik/yolo-hand-detection/issues/6, на ней тоже предлагали использовать абсолютные пути, но кроме этого спросили, не забыли ли скачать некую "модель", а позже вопрос закрыли, перед этим написав что да, действительно забыли скачать. Я не совсем понимаю что подразумевается под этой моделью что её можно было забыть скачать, может и я тоже её не скачал..
Как итог должна получится функция получающая на вход изображение и отдающая как результат список координат найденных объектов.
Ответы (1 шт):
Судя по используемой в коде терминологии, речь идёт о DNN - deeplearning neural network, то есть нейронной сети глубокого обучения.
В таком случае, модель - это такой "конфиг сети", то есть набор данных, который описывает её архитектуру, конфигурацию и используемые алгоритмы обучения. Как я понял из кода, Вы ожидаете загрузить "модель с весами", то есть, уже "предобученную" нейронку.
Если Вы хотите в этом разобраться - попробуйте прочитать что нить о распознавнии на основе нейронок. Также, Вы можете исправить воопрос, написав подробнее, какую задачу решает Ваш код.