web-dev-qa-db-ja.com

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
  • ウィンドウズ8
  • AMD Radeon HD6700シリーズグラフィックカード。

これはnVidiaグラフィックカードを持っていないという事実の問題だと思いますが、どうすればよいかわかりません。今のところ、ダウンロードした.exeを使用するのではなく、ソースを再コンパイルして、それが役立つかどうかを確認します。

助言がありますか?

16
Ryan French

同じ問題がありましたが、EmguCV 2.4.2(x86またはx64のどちらでも)はGPUでコンパイルされており、CUDAをサポートするnvidiaGPUが必要です。だから、あなたが例えばしたい場合。 C#の2.4からのFisherfaces-非GPUのリリースを待つか、CUDAカードを購入/借用します;)

11
user1197146

私はたまたまあなたとまったく同じ問題を抱えています。私のコンピューター(WinXP 32ビット)ではすべて正常に動作していますが、Win764ビットコンピューターでは正常に動作していません。これは、コンピューターにOpenCV 2.4.2が既にインストールされており、プログラムを実行すると、OpenCV dllへのパスがEmguCVフォルダー内のdllではなく、OpenCVフォルダーを指すためです。元のOpenCVdllには、NVidiaのドライバーへのこの依存関係はありません。

Dependency Walker を使用して、提案されているように、何が起こっているのかを見つけるのに役立てました ここ

This リンクは、-gpuパッケージのみがgpu処理を有効にしていることを示していますが、最新バージョン(2.4.2)は、gpuパッケージのみであり、no-gpuパッケージはありません...

私は読んだ ここ 必要なのは最新のNVidiaドライバーをダウンロードしてnvcuda.dllファイルを取得することだけでしたが、多くのパッケージをダウンロードしましたが、このファイルは見つかりませんでした: gpu Computing sdk、cuda toolkit 、ディスプレイドライバー、デバイスドライバー..

私の回避策は、古いバージョンのEmguCV/OpenCVを使用する代わりに、 OpenCV 2.4.2 の元のdllを使用することです。

8
rold2007

Dll-files.comの nvcuda.dll を使用しました。

4
Anon

問題は、サイトの最新バージョンに非GPU拡張ダウンロードが含まれておらず、GPU拡張ダウンロードにCUDA統合用のnVidiaグラフィックカードが必要なことです。

GPUが拡張されていない以前のバージョンを正常にダウンロードして実行しました。

3
Ryan French

私も同様の問題を抱えていました。 NVIDIA GPUを搭載したコンピューターでアプリケーションをコンパイルして実行すると、正常に動作します。問題は、アプリを別のコンピューターに移動したときでした。この2番目のコンピューターにはNVIDIAGPUがなく、「Emgu.CV.CvInvoke」例外がスローされました。何度も試みた後、私は幸いにもこの問題を解決しました。今のところ前に述べたように、バージョン2.4.2のgpuパッケージしかありません。私はこれまで気づかなかった。

私にとっての解決策は次のとおりです。

  • ファイルをコピーします:「cudart64_42_9.dll」および「npp_42_9.dll」をデバッグ(アプリケーション)フォルダーにコピーします
  • ファイル「nvcuda.dll」をSystem32フォルダーにコピーします。この手順の後、NVIDIA gpu/CUDAがなくても、アプリケーションはすべてのコンピューターで機能します。

他の解決策は、opencvユニバーサルGPUバージョン(現在はアルファ2.4.9)を使用することです。リンク: http://sourceforge.net/projects/emgucv/files/emgucv/2.4.9-alpha/

3
Adrian

dllの別のコピーもあります: http://www.kimchiandchips.com/files/vvvv/nvcuda/

だから2つの解決策:

  1. 上記のリンクからNVidiaCUDADLLを入手してください。理想的には、必要なプラットフォームに基づいて、64ビットまたは32ビットバージョンの名前をnvcuda.dllに変更します。あなたのopencvdllの隣に置いてください
  2. ユニバーサルGPUをサポートする2.4.9にアップグレードします
0
Elliot Woods

また、顔認識にEmguCVを使用して論文を作成するときに問題が発生しました。最も安定したバージョンのlibemgucv-windows-x86-2.4.0.1717.exeを使用してみてください。gpuダウンロードを使用しないようにしてください。このバージョンはバグが最も少なく、32ビットはx64よりも優れています。初めてコンパイルするときは、Visual Studio 2012を使用してください。このバージョンでは、上記のすべてをインストールする必要はありません。この例を見ると、実際に機能していることがわかります: http://sourceforge.net/projects/emgufacerecog/

0
user2497814

ソースEmguCVをGITからダウンロードしてコンパイルできます。これを実行して、動作します。

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

非GPUバージョンのdllを生成します

よろしく。

0
acandaldev