web-dev-qa-db-ja.com

OpenCV 3.2 CUDAサポートpython

http://www.pyimagesearch.com/2016/07/11/compiling-opencv-with-cuda-support/ の指示に従って、CUDAサポートを使用してコンパイルするOpenCV 3.2コンパイルをインストールしましたOpenCVが実行時にCUDAおよびGPUサポートを使用しているかどうかを確認する方法(python2.7を使用しています)

7

指定したリンク で確認できるように、CUDAコンソールでこれを入力することにより、pythonが正しくインストールされているかどうかをいつでも確認できます。

_print(cv2.getBuildInformation())
_

CUDAサポートがある場合は、印刷されたテキストにUse CUDA: YES (version)が表示されます。

次に、_cv2.cuda_モジュールで opencv cuda コマンドを使用できます。

しかし、そのチュートリアルで述べたように、現在のCUDAサポートはpythonにはありません。 (これらのチュートリアルは_OpenCV python_にあるため、これがCUDApythonのサポートを追加するかどうか混乱します。しかし、それはではない。

さらに、GPU対応のCUDA環境では、OpenCVにコンパイル時の最適化を行うことができます。これにより、GPUを利用してより高速な計算を行うことができます(ただし、主にC++アプリケーションの場合、Pythonではそれほど多くありません)。現時点では)。

しかし この答え で説明されているように、PythonでOpenCLサポートを取得できます。 this ドキュメントのように、

Open Computing Language(OpenCL)は、CPU、GPU、DSPなどの異種プラットフォーム間で実行されるコードを記述するためのオープンスタンダードです。

編集1:

もう1つのことは、pythonラッパーを_OpenCV C++_のGPUメソッドごとに記述し、pythonを介してそれらのメソッドを呼び出すことです。これは常にGPUメモリとRAMメモリ間で画像やその他のデータをコピーするため、パフォーマンスが低下するため、お勧めしません。場合によっては、CPUだけの場合よりも時間がかかることがあります。

もう1つのことは、_C++_でGPUを使用して実行する必要がある関数全体を記述し、その関数のpythonラッパーを記述することです。これは以前の方法よりもはるかに優れていますが、_C++_を知っている必要があります。

これを行うにはもっと良い方法があるかもしれません。

16
Ramesh-X