EmguCV - nvcuda.dll не найден - программирование
Подтвердить что ты не робот

EmguCV - nvcuda.dll не найден

Мне было предложено создать приложение распознавания лиц в режиме реального времени, и после некоторого осмотра я решил попробовать EmguCV и OpenCV в качестве библиотеки распознавания лиц.

Проблема, с которой я сейчас сталкиваюсь, заключается в том, чтобы установить SDK и работать. Я выполнил инструкции, найденные здесь, чтобы попытаться запустить его, но я все еще не могу запустить образцы. Всякий раз, когда я пытаюсь запустить их, я получаю сообщение об ошибке

The program can't start because nvcuda.dll is missing from your computer. 
Try reinstalling the program to fix this problem.

Я пробовал большинство обычных исправлений, таких как добавление папки bin в мой путь к среде и копирование dll в мою папку system32, но ни один из них не работает.

  • Версия для EmguCV 2.4.2.1777-windows-x64-gpu
  • Windows 8
  • Графическая карта AMD Radeon HD 6700.

Я предполагаю, что это проблема с тем, что у меня нет графической карты nVidia, но я не уверен, что я могу с этим поделать. На данный момент я собираюсь попробовать перекомпилировать исходный код, а не использовать загруженный файл .exe и посмотреть, помогает ли это.

Любые предложения?

4b9b3361

Ответ 1

Имела ту же проблему, EmguCV 2.4.2 (независимо от того, x86 или x64) скомпилирован с использованием графического процессора, и вы должны иметь графический процессор nvidia с поддержкой CUDA. Итак, если вы хотите, например. Fisherfaces от 2.4 в С# - дожидаться выхода без GPU или купить/занять CUDA-карту;)

Ответ 2

У меня такая же проблема, как и у вас. Все работает нормально на моем компьютере (32-разрядный WinXP), но не на 64-разрядных компьютерах Win7. Это связано с тем, что на моем компьютере у меня уже установлен OpenCV 2.4.2, и когда я запускаю свою программу, путь к DLL OpenCV указывает на папку OpenCV, а не на DLL в папке EmguCV. Исходная DLL OpenCV не имеет такой зависимости от драйвера NVidia.

Я использовал Dependency Walker, чтобы помочь мне узнать, что происходит, как предложено .

Эта ссылка говорит, что только пакеты -gpu имеют обработку gpu, но, как вы говорите, последняя версия (2.4.2) только gpu пакет и пакет no-gpu...

Я прочитал здесь, что все, что мне нужно, это загрузить последние драйверы NVidia, чтобы получить файл nvcuda.dll, но я загрузил много пакетов и никогда нашел этот файл: gpu computing sdk, cuda toolkit, драйверы дисплея, драйверы устройств...

Моим обходным решением вместо использования более старой версии EmguCV/OpenCV является использование исходной dll из OpenCV 2.4.2.

Ответ 3

Я просто использовал nvcuda.dll на dll-files.com.

Ответ 4

Кажется, проблема в том, что последняя версия на сайте не содержит загружаемого без использования графического процессора, а для расширенной загрузки GPU требуется графическая карта nVidia для интеграции CUDA.

Я успешно загрузил и запустил предыдущую версию, которая не имеет улучшений GPU.

Ответ 5

У меня была аналогичная проблема. Когда я компилирую и запускаю свое приложение на компьютере с NVIDIA gpu, он отлично работает. Проблема была в том, что я переместил приложение на другой компьютер. У этого второго компьютера нет NVIDIA gpu, и он выбрал исключение "Emgu.CV.CvInvoke". После многих попыток я, к счастью, решил эту проблему. Как вы уже упоминали, на данный момент существует только пакет gpu для версии 2.4.2. Я этого раньше не заметил.

Для меня решение было:

  • Скопировать файлы: 'cudart64_42_9.dll' и 'npp_42_9.dll' в папку Debug (приложение)
  • Скопируйте файл 'nvcuda.dll' в папку System32. После этих шагов приложение работает на всех компьютерах даже без NVIDIA gpu/CUDA.

Другим решением может быть использование opencv universal gpu version (теперь это альфа 2.4.9) ссылка: http://sourceforge.net/projects/emgucv/files/emgucv/2.4.9-alpha/

Ответ 7

здесь также другая копия dll: http://www.kimchiandchips.com/files/vvvv/nvcuda/

так что 2 решения:

  • Получить NVidia CUDA DLL из указанной выше ссылки. Идеально переименуйте 64 или 32-битную версию в nvcuda.dll на основе вашей необходимой платформы. Поместите рядом с вашей opensv dll
  • Обновление до версии 2.4.9 с поддержкой универсального GPU

Ответ 8

У меня также были некоторые проблемы при выполнении моей диссертации с использованием EmguCV для распознавания лиц. Попробуйте использовать самую стабильную версию libemgucv-windows-x86-2.4.0.1717.exe Старайтесь не использовать загрузку gpu, эта версия имеет наименьшие ошибки, а 32-разрядная версия лучше, чем x64. при компиляции в первый раз используйте visual studio 2012. С этой версией вам не нужно будет устанавливать все вышеперечисленное. Вы можете увидеть этот пример, чтобы узнать, что он действительно работает: http://sourceforge.net/projects/emgufacerecog/