mirror of
https://github.com/opencv/opencv.git
synced 2024-11-26 12:10:49 +08:00
Open Source Computer Vision Library
7452eef6e9
For current OpenCV-CL architecture, if the data buffer allocated in UMat are cpu buffer(not ocl buffer) under cpu mode, and then pass this UMat to an OpenCL kernel as an argument, the OpenCL path will fail and fallback to cpu mode. Take HOGDescriptor::oclSvmDetector as an example: ocl::setUseOpenCL(false); //data allocated in hog.oclSvmDetector will be cpu buffer hog.setSVMDetector(HOGDescriptor::getDaimlerPeopleDetector()); ocl::setUseOpenCL(true); //We enabled OpenCL, but hog.oclSvmDetector are cpu buffer, //so it will fail in the function ocl_classify_hists //when reach to this line //idx = k.set(idx, ocl::KernelArg::PtrReadOnly(detector)); hog.detectMultiScale(img, found, hit_threshold, win_stride, Size(0, 0), scale, gr_threshold); Similar problems heppen on img_aux and img. So we should re-define or re-set these UMat when do mode switch (CPU -> OpenCL) in order to make their data be allocated by ocl and then OpenCL path will succeed. Signed-off-by: Chuanbo Weng <chuanbo.weng@intel.com> |
||
---|---|---|
3rdparty | ||
apps | ||
cmake | ||
data | ||
doc | ||
include | ||
modules | ||
platforms | ||
samples | ||
.gitattributes | ||
.gitignore | ||
.tgitconfig | ||
CMakeLists.txt | ||
index.rst | ||
LICENSE | ||
README.md |
OpenCV: Open Source Computer Vision Library
Resources
- Homepage: http://opencv.org
- Docs: http://docs.opencv.org
- Q&A forum: http://answers.opencv.org
- Issue tracking: http://code.opencv.org
Contributing
Please read before starting work on a pull request: http://code.opencv.org/projects/opencv/wiki/How_to_contribute
Summary of guidelines:
- One pull request per issue;
- Choose the right base branch;
- Include tests and documentation;
- Clean up "oops" commits before submitting;
- Follow the coding style guide.