43220


タイトルの通りなのですが、CPUとOpenCLは大体同じになりますがCUDAですと持ってくる領域が大きくなります。  
CPUと結果を合わせたいのですがコンパイルオプションとかそういうもので何とかする方法をご存知のかたいらっしゃいませんか？


CC BY-SA 3.0
2018-04-13T02:22:48.923
43193
2018-05-02T07:27:54.703
2018-04-14T04:14:09.537
2238
28061
question
windows opencv cuda
OpenCVのカスケード物体認識の結果がCPU、OpenCL、CUDAで違くなってしまう。


質問をするときは最低限のマナーとして、まず環境に関する情報を詳しく書くようにしてください。  
OS、デバイスドライバー、IDE、SDK、ライブラリなどのバージョン、ハードウェアの型番など、提示すべき情報は多岐に渡ります。

[技術系メーリングリストで質問するときのパターン・ランゲージ](http://www.hyuki.com/writing/techask.html#env)

また、現象を再現することのできる実際のコードを可能な限り提示するべきです。回答者はエスパーではありません。

OpenCVのCascade
Classifierは、CPUバージョンは改良・改善が続けられているものの、GPUバージョン（CUDA実装）は同等のメンテがなされずに実装が乖離しているらしいです。おそらく現時点での最新版OpenCV
3.4.1でも状況は同じものと思われます。

[Different results of CascadeClasifier on CPU and GPU · Issue #6693 ·
opencv/opencv](https://github.com/opencv/opencv/issues/6693)

OpenCV内の他の画像処理関数に関しても、CUDA版はCPU版/OpenCL版と比べてサポートするフォーマットが限定されていたりと、積極的なメンテはされていません。そもそもCUDAはNVIDIAハードウェアしかサポートしないため、OpenCLをT-
APIとして取り込んだ現在のOpenCVのクロスプラットフォーム設計方針とは相容れないからです。

ちなみにOpenCVはともかくとして、OpenCLはれっきとした規格名でありトレードマークなので、大文字・小文字をきっちり区別して正式名を書くようにしてください。


CC BY-SA 3.0
2018-04-13T17:20:12.223
43220
2018-04-13T17:20:12.223
15413
43193
answer


scaleFactorの最適な値がCPUとCUDAで違うようです。CPUより大きめにするとよいようです。


CC BY-SA 4.0
2018-05-02T07:27:54.703
43724
2018-05-02T07:27:54.703
28061
43193
answer