找不到EmguCV - nvcuda.dll

时间:2012-09-26 05:20:01

标签: opencv cuda emgucv

我被要求建立一个实时的人脸识别应用程序,经过一些环顾四周,我决定尝试使用EmguCV和OpenCV作为面部识别库。

我目前遇到的问题是尝试安装和运行SDK。我按照here找到的说明尝试让它运行,但我仍然无法运行示例。每当我尝试运行它们时,我都会收到错误

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,看看是否有帮助。

有什么建议吗?

8 个答案:

答案 0 :(得分:11)

出现同样的问题,EmguCV 2.4.2(无论是x86还是x64)都是用GPU编译的,你必须拥有支持CUDA的nvidia GPU。所以,如果你想要,例如。 Fisherfaces来自2.4 in C# - 等待非GPU发布或购买/借用CUDA卡;)

答案 1 :(得分:8)

我碰巧和你有完全相同的问题。我的计算机(WinXP 32位)上的一切正常,但Win7 64位计算机上没有。 这是因为在我的计算机上我已经安装了OpenCV 2.4.2,当我执行程序时,OpenCV dll的路径指向OpenCV文件夹,而不是指向EmguCV文件夹中的dll。最初的OpenCV DLL没有依赖NVidia的驱动程序。

我使用Dependency Walker帮助我了解正在发生的事情,如here所示。

This链接说只有-gpu包启用了gpu处理,但正如你所说的最新版本(2.4.2)只有一个gpu包而且没有no-gpu包......

我读到here我需要的是下载最新的NVidia驱动程序以获取nvcuda.dll文件,但我下载了很多软件包但从未找到此文件:gpu computing sdk, cuda toolkit,显示驱动程序,设备驱动程序...

我的解决方法是使用OpenCV 2.4.2中的原始dll,而不是使用旧版本的EmguCV / OpenCV。

答案 2 :(得分:4)

我刚从dll-files.com使用了nvcuda.dll

答案 3 :(得分:3)

似乎问题是该网站上的最新版本不包含非GPU增强下载,并且GPU增强下载需要使用nVidia显卡进行CUDA集成。

我成功下载并运行了之前没有GPU增强功能的版本。

答案 4 :(得分:3)

我有类似的问题。 当我使用NVIDIA gpu在计算机上编译和运行我的应用程序时,它工作正常。 问题是我将应用程序移动到另一台计算机 第二台计算机没有NVIDIA gpu,它抛出'Emgu.CV.CvInvoke'异常。 经过多次尝试,我幸运地解决了这个问题。 正如您之前提到的那样,版本2.4.2只有gpu包。 我之前没有注意到这一点。

对我而言,解决方案是:

  • 将文件:'cudart64_42_9.dll'和'npp_42_9.dll'复制到Debug(应用程序)文件夹
  • 将文件'nvcuda.dll'复制到System32文件夹中。 在此步骤之后,即使没有NVIDIA gpu / CUDA,aplication也适用于所有计算机。

其他解决方案可能是使用opencv通用gpu版本(现在是alpha 2.4.9)链接:http://sourceforge.net/projects/emgucv/files/emgucv/2.4.9-alpha/

答案 5 :(得分:0)

你可以从GIT下载源EmguCV并编译它,我已经完成了这个并且有效:

http://www.emgu.com/wiki/index.php/Download_And_Installation#Building_from_Git

它生成一个非GPU版本的dll

问候。

答案 6 :(得分:0)

这里还有dll的另一个副本: http://www.kimchiandchips.com/files/vvvv/nvcuda/

所以2个解决方案:

  1. 从上面的链接获取NVidia CUDA DLL。理想情况下,根据您所需的平台将64或32位版本重命名为nvcuda.dll。放在opencv dll的旁边
  2. 升级到具有通用GPU支持的2.4.9

答案 7 :(得分:0)

使用EmguCV进行人脸识别时,我的论文也存在一些问题。 尝试使用最稳定的版本libemgucv-windows-x86-2.4.0.1717.exe 尽量不要使用gpu下载,这个版本的bug最少,32位比x64好。 在第一次编译时使用visual studio 2012。 使用此版本,您无需安装上述所有内容。你可以看到这个例子,知道它确实有效:http://sourceforge.net/projects/emgufacerecog/