2017-04-11 10 views
0

저는 최근에 기능 검사기 (예 : SIFT, SURF ...)를 사용하여 OpenCv를 실험하기 시작했습니다. 이제 OpenCL을 살펴보기 시작 했으므로 OpenCL이 있는지 묻고 싶습니다. 이러한 기능에 대한 "지원".OpenCV 기능 검사기/데스크 스크립트 용 OpenCL 지원

질문을 "googleing"하면서이 링크는 가능한 한 OpenCL 가속 기능이있는 1입니다. 그러나 기능 탐지기는 나열되어 있지 않으며, matchers 만 있습니다. github에서 SURF를 사용할 수 있음을 나타내는 2 코드를 발견했습니다. 누가 OpenCL에서 어떤 fetectors/feskriptor를 구현하는지 알고 있습니까?

답변

1

의 OpenCL이 직접 기능 감지기를 지원하지 않습니다

인사말 Drian (그리고 어쩌면 그들을 사용하는 방법).

OpenCL은 이미지 처리를위한 프레임 워크가 아니라 알고리즘을 병렬로 실행하는 저수준 API입니다. 따라서 벡터 함수, 삼각 함수 및 기타 저수준 명령과 같은 많은 저수준 함수를 지원하지만 이미지의 기능을 감지하는 것과 같은 도메인 특정 함수는 지원하지 않습니다.

OpenCV는 GPL에서 실행하여 특정 작업을 가속화하기 위해 OpenCL을 사용합니다. 당신은 높은 수준을 사용하려는 경우

기본적으로, 쉽게 이미지 처리에 대한 라이브러리를 사용하려면 OpenCV의를 사용합니다. 당신의 CPU, GPU를 다른 가속기에 스스로 병렬 실행하는 알고리즘을 구현하려면

, 당신은 OpenCL을를 사용합니다.

+0

답변 해 주셔서 감사합니다. 그래서 내가 예를 들면 가속하고 싶다면. GPU 나 다른 병렬 프로세서에서의 서핑 나는 opencv 함수와 opencl에 구현 된 자체 작성 함수를 사용하여 혼자서 코드를 작성해야 할 필요가 있습니까? 또는 "자신을 가속화하기 위해 opencv의 서핑 사용 opencl에 대해 말할 수 있습니다." – Drian

+0

@Drian : Corect, 직접 알고리즘을 구현해야합니다. OpenCV 소스 코드는 병렬 실행을 위해 작성되어야하기 때문에 "복사하여 붙여 넣기"할 수 없습니다. 병렬 코드를 커널이라고합니다. 이 커널은 C++ 언어 스펙의 서브 세트로 작성됩니다. – Marco