Включить dar knet Yolov3 для обнаружения объектов - PullRequest
2 голосов
/ 18 апреля 2020

К сожалению, я не очень разбираюсь в C ++ и работе с Visual Studio. Мне нужно реализовать приложение на C ++, в котором я могу интегрировать yolo или dar knet в виде библиотеки и использовать ее гибко. Я использую Windows и Visual Studio 2015.

Я посмотрел на следующего репо . Что я пробовал до сих пор:

  • Я установил CUDA (хотя я хочу запустить модель на CPU для тестирования), Cudnn и Opencv
  • Я открыл vs решение от build\darknet\darknet_no_gpu.sln из репозитория AlexeyAb с Visual Studio. Внутри репо много заголовков и C -файлов:

enter image description here

  • Я также добавил свой opencv\build\include путь к каталогам дополнительных включений , opencv\x64\vc14\lib к каталогам дополнительных библиотек и файлу opencv_world320.dll к полю компоновщика Input.

  • Я также установил x64 и Release

Теперь я не знаю, как поступить. Просто создать source.cpp и сделать #include "darknet.h", похоже, не работает. Я получаю много ошибок, таких как: darknet_no_gpu.exe' (Win32): Loaded 'C:\Windows\System32\kernel32.dll'. Cannot find or open the PDB file.. В репо в нескольких местах упоминается, что вам нужно создать решение, но что именно это означает или что я получу впоследствии и сделаю с ним?

Кто-нибудь знает, как я мог решить мою проблему? Я очень рад за любой совет!

Ответы [ 2 ]

2 голосов
/ 21 апреля 2020

Для использования Yolo v3 в приложении C ++ вы можете использовать Alexey AB dar knet repo .
Просто создайте yolo_cpp_dll.sln или yolo_cpp_dll_no_gpu.sln в папке build/darknet в зависимости от того, нужна ли вам поддержка графического процессора или нет.
В репозитории также есть пример консольного приложения, которое уже интегрирует yolo dll и его функции (см. build/darknet/yolo_console_dll.sln).
Более подробную информацию о том, как заставить эти решения работать и как использовать dar knet в качестве библиотеки dll *, можно найти здесь здесь .
API C ++ для yolo dll можно найти здесь .

Чтобы добавить DLL Yolo в проект VS, вы должны ...

... установить Build на Release x64
... настроить следующие свойства на вкладке «Свойства конфигурации» для Release x64 :

  • добавить путь к папке файла заголовка (yolo_v2_class.hpp) в Проект-> Свойства конфигурации-> C / C ++ -> Общие-> Дополнительные каталоги включения

  • добавить путь к папке файла lib (yolo_cpp_dll.lib) в Project-> Свойства конфигурации-> Linker-> General-> Дополнительные каталоги библиотеки

  • добавить yolo_cpp_dll.lib в Project-> Свойства конфигурации-> Linker-> Input-> Дополнительные зависимости

... поместите pthreadVC2.dll и yolo_cpp_dll.dll рядом с вашим файлом .exe (вы можете найти эти dll в build/darknet/x64, если вы уже собрали yolo_cpp_dll.sln или yolo_cpp_dll_no_gpu.sln)

Спасибо до @ glm_ java* 1 061 * за исправление моей проблемы во время выполнения при использовании yolo dll!

Если у вас есть дополнительные вопросы о том, как создавать или компилировать эти решения, не стесняйтесь спрашивать меня!

1 голос
/ 23 апреля 2020

@ LRK У меня такое же исключение bad_allo c, и я решил использовать переход Visual Studio из режима Debug в Release. Я надеюсь, что это сработает.

...