16

我被要求构建一个实时人脸识别应用程序,经过一番环顾后,我决定尝试 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
  • 视窗 8
  • AMD Radeon HD 6700 系列显卡。

我假设这是我没有 nVidia 显卡这一事实的问题,但我不确定我能做些什么。现在,我将尝试重新编译源代码而不是使用下载的 .exe,看看是否有帮助。

有什么建议么?

4

8 回答 8

11

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

于 2012-10-05T18:56:17.780 回答
8

我碰巧遇到了和你一样的问题。在我的电脑(WinXP 32 位)上一切正常,但在 Win7 64 位电脑上却不行。这是因为在我的计算机上我已经安装了 OpenCV 2.4.2,当我执行我的程序时,OpenCV dll 的路径指向 OpenCV 文件夹,而不是 EmguCV 文件夹中的 dll。原始的 OpenCV dll 对 NVidia 的驱动程序没有这种依赖性。

正如这里所建议的,我使用Dependency Walker帮助我找出发生了什么。

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

我在这里读到,我所需要的只是下载最新的 NVidia 驱动程序来获取 nvcuda.dll 文件,但我下载了很多包,但从未找到这个文件:gpu 计算 sdk、cuda 工具包、显示驱动程序、设备驱动程序......

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

于 2012-09-27T03:59:39.963 回答
4

我刚刚使用了来自dll-files.com的 nvcuda.dll。

于 2012-10-22T13:46:42.497 回答
3

问题似乎在于该站点上的最新版本不包含非 GPU 增强下载,而 GPU 增强下载需要 nVidia 显卡才能集成 CUDA。

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

于 2012-09-27T02:24:23.347 回答
3

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

对我来说,解决方案是:

  • 将文件:“cudart64_42_9.dll”和“npp_42_9.dll”复制到调试(应用程序)文件夹中
  • 将文件“nvcuda.dll”复制到 System32 文件夹中。在此步骤之后,即使没有 NVIDIA gpu/CUDA,应用程序也可以在所有计算机上运行。

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

于 2013-06-02T02:02:16.483 回答
0

您可以从 GIT 下载源 EmguCV 并编译它,我已经完成了这个并且可以工作:

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

它生成非 GPU 版本的 dll

问候。

于 2012-12-09T22:19:47.827 回答
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
于 2014-08-21T00:52:54.217 回答
0

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

于 2014-11-19T13:03:48.497 回答