如何运行基本的OpenCL人脸检测代码

时间:2013-07-04 16:38:52

标签: opencv image-processing computer-vision opencl face-detection

我尝试运行OpenCL基本面部检测器代码,该代码位于“samples / ocl / facedetect.cpp”中。在编译面检测代码之前,我按照以下步骤编译OpenCV并启用OpenCL。

  1. 我从 Intel SDK for OpenCL Applications 2013 下载了英特尔的OpenCL SDK并安装了它。

  2. 使用CMake,我启用了“WITH_OPENCL”并成功构建了OpenCV。 “libopencv_ocl245.dll”已创建。

  3. 我尝试编译人脸检测代码并成功编译。但是int devnums = cv::ocl::getDevice(oclinfo, ocl::CVCL_DEVICE_TYPE_DEFAULT);总是返回“0”。

    我更改了以下标志,我收到以下错误:

    标志:

      

    int devnums = cv :: ocl :: getDevice(oclinfo,   OCL :: CVCL_DEVICE_TYPE_DEFAULT);

    错误:

    >     0x06670A02 (0x08730080 0x00000000 0x00000018 0x0A3121D8)0x06670A02 (0x08F70080 0x00000000 0x00000024 0x0A0DC008)0x06670A02 (0x097B0080
    > 0x00000000 0x00000000 0x0028E48C) <unknownmodule>
    >                                                                                                                                                                                               <unknown module>
    >                                                                                                                                                                                                               0x630E6900 (0x0A3121C8 0x00000000 0x00000000 0x00000018)0x630E6900
    > (0x0A0DBFF8 0x00000000 0x00000000 0x00000024) <unknown module>
    >                                                                                                                   0x630E6900 (0x0028E47C 0x00000000 0x00000000 0x00000000),
    > opencl_mic_printf() + 0x12130 bytes(s), opencl_mic_printf() + 0x12130
    > bytes(s), opencl_mic_printf() + 0x12130 bytes(s)  ....
    
    1. 运行OpenCL人脸检测代码是否有任何硬件依赖性?我在Intel CPU上运行代码。

    2. 运行OpenCL人脸检测示例代码需要哪些规范?

    3. 上述步骤中的任何地方都错了吗?

    4. 仅安装OpenCL SDK吗?或者我是否需要安装其他东西?

1 个答案:

答案 0 :(得分:1)

您可能使用OpenCL 1.1而不是1.2。或者可能是仅与OpenCL 1.1兼容的Intel CPU。 OpenCV需要运行OpenCL 1.2文件和OpenCL 1.2兼容设备。

根据您使用英特尔CPU的事实判断,我可能会错误地回答这个问题,因为大多数英特尔CPU都与OpenCL 1.2兼容,但值得一看。另一种可能性是您的默认OpenCL设备是您的GPU,如果它来自Nvidia,则可能与OpenCL 1.2不兼容。