반응형

영상처리 속도개선을 위해 사용되는 방법들 중에 대표적인 것이,

병렬처리와 GPU 사용일 것이다.

병렬처리는 TBB나 IPPCV등을 통해서 구현되며,

GPU 사용은 CUDA와 OpenCL등을 통해 구현된다.


CUDA는 그래픽카드가 NVidia인 경우에만 사용 가능하다.

반면 OpenCL은 기타 여러가지 경우에 사용 가능하다.

이에 대한 내용은 다음 사이트에 잘 나와 있다.

Platform -> OpenCL

OpenCV상에서 실제로 OpenCL을 사용할 때의 키워드는 UMat이다.

그리고, 다음 사이트에도 중요한 내용이 담겨 있다.

OpenCV3.0 Architecture

이 내용을 알아야 UMat을 잘 사용할 수 있다.

특히, getMat(), getUMat()을 사용하는 경우,

get...을 통해 얻어진 Matrix가 해제될 때까지는

원본 Mat을 사용할 수 없다는 사실에 유의해야 한다.


또한, 다음 내용도 참고할 필요가 있다.

OpenCL Module Introduction

CPU와 GPU간 데이터 전송은 성능저하를 유발할 수 있기 때문에

필요한 경우에만 사용해야 하고,

GPU가 double형 연산을 지원하지 못하는데 double형 연산을 구현하는 경우

에러가 발생한다는 내용 등이 쓰여져 있다.

반응형

'영상처리 프로젝트' 카테고리의 다른 글

opencv_contrib 빌드하기  (0) 2016.03.22
OpenCV속도비교2  (1) 2016.02.29
OpenCV 속도 비교 테스트 - 2.1 vs 3.1(with TBB)  (0) 2016.02.18
OpenCV 3.0 빌드 체험기2  (0) 2015.12.15
OpenCV 3.0 빌드 체험기  (0) 2015.12.10

+ Recent posts