1

我使用Opencv 2.4.10(当前稳定版本)。我gpu::CascadeClassifier_GPU::detectMultiScale用来检测人脸。我想将它与我在单独启动的 CUDA 内核代码中异步cudaStream_t使用。但是默认情况下CascadeClassifier_GPU在默认的零流中启动,这使得在 GPU 上启动任何异步的东西都是不可能的。

正如我在这里看到的,没有办法使用gpu::StreamCascadeClassifier_GPUOpenCV DOC 链接

  • 我可以使用gpu::Stream以及CascadeClassifier_GPU如何使用?
  • 如果不是,那么我可以在哪个版本的 OpenCV 中执行此操作?

更新:到目前为止,我发现的唯一方法 - 使用单独的 CPU 线程来执行功能gpu::CascadeClassifier_GPU::detectMultiScale并在单独的 GPU 上执行。但为此至少我需要2 个GPU。

4

1 回答 1

2

CascadeClassifier_GPU使用混合 GPU/CPU 实现并在内部执行额外的同步,这就是它不支持带gpu::Stream参数的异步模式的原因。为了与您的代码异步启动它,您需要为它使用单独的 CPU 线程。

于 2014-12-17T20:09:13.127 回答