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 и посмотреть, помогает ли это.
Любые предложения?
Ответы
Ответ 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/
Ответ 6
Вы можете скачать исходный код EmguCV из GIT и скомпилировать его, я сделал это и работает:
http://www.emgu.com/wiki/index.php/Download_And_Installation#Building_from_Git
Он генерирует версию DLL без GPU
С уважением.
Ответ 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/