본문 바로가기

Python

Python OpenCv cuda 사용하기 (gpu 연산)

반응형

Python OpenCv cuda 사용하기 (gpu 연산)

 

오늘은 Python OpenCvSharp cuda를 사용해서 gpu 연산을 사용해 보겠습니다.

opencv는 c++ 기반의 영상, 이미지 처리 오픈소스 라이브러리로 많이 활용되고 있습니다

딥러닝 기술들이 많이 발전하면서 대용량 학습이나 처리 과정에서 속도 향상을 위해 NVIDIA GPU 가속 기술인 cuda를
지원하고 있습니다.

opencv에서 cuda 가속을 사용하려면 단순히 인터넷이나 서버에서 라이브러리를 다운받아 쓰는 게 아니라, 사용자의 하드웨어 및 개발환경에 맞춰서 라이브러리를 생성하는 빌드(build) 작업을 해주어야 하는데, 이게 굉장히 스트레스이고 귀찮습니다...

그래서 저는 보다 쉬운 방법을 소개해드리려고 합니다!

https://www.jamesbowley.co.uk/qmd/opencv_cuda_python_windows.html

 

Build OpenCV (including Python) with CUDA on Windows: Comprehensive Guide including Python Bindings, cuDNN, and Nvidia Video Cod

Guide to building OpenCV (including Python bindings) with CUDA (optionally the Nvidia Video Codec SDK and cuDNN) from within Visual Studio or from the command line using the Ninja build system.

www.jamesbowley.co.uk

위 링크는 윈도우에서 opencv cuda 빌드 관련 설명이 아주 잘 정리되어 있습니다.

opencv를 빌드하는 과정에서 겪는 어려움이 많습니다. 저도 처음엔 cmake를 활용해 빌드할 생각이었지만 긴 시간과 여러 에러 메시지들 결국 포기하고 다른 방법을 찾던 중에 가장 편한 방법을 찾았습니다.
위 링크는 저 같은 사람들을 위해서 여러 버전의 opencv 빌드 파일을 제공해주고 있습니다.

 

1. 빌드 파일 다운로드

빨간 네모 박스를 클릭해 들어가셔서 자기 환경에 맞는 파일을 받아줍니다.
우선 저는 윈도우 환경이라 그에 맞게 진행하겠습니다!

2. 순차적 설치

 

우선적으로 설치해야 하는 것들이 있습니다.

1) 파이썬 : anaconda가 아니면 numpy 패키지를 추가로 설치해주셔야 합니다.
2) cuDNN :  위 이미지를 보시면 v9.7이라고 버전이 명시되어 있습니다.
3) NVIDIA GPU Computing Toolkit : 마찬가지로 v12.8이라고 버전이 명시되어 있습니다.

 

cuDNN 9.7.0 버전 보이시나요 설치해 줍니다! 설치하실때는 우선 exe 실행해주시고 다음만 계속 눌러주시면 됩니다.

마찬가지로 툴킷도 설치해줍니다!

2개 다 설치가 완료되면 자동으로 환경변수에 추가가 되는걸을 확인하실 수 있으실 겁니다.
환경변수는 내 pc -> 우클릭 속성 -> 고급 시스템 설정 -> 환경 변수로 찾아 들어가시면 됩니다.

cuDNN

Nvidia Gpu Computing Toolkit

그리고 cuDNN 내부에 있는 bin, include, lib 파일을 툴킷 폴더로 복붙 해줍니다!

이제 파이썬 환경으로 가셔서 아까 맨 처음 설치한 opencv build 파일을 python 폴더로 옮겨줍니다.

설치해 주시면 끝!

그리고 여기서부터 사실 고백할 게 있습니다. 어렵게 설치해 본 결과라 다시 지우고 해보지 못한 점...
그래서 빠진 부분이 있을 수 있습니다ㅜㅜ 댓글 써주시면 확인해 볼게요!
그리고 하나 더 고백하자면 처음에 설치하면 에러가 나는 경우가 있습니다.
기존의 opencv를 설치하거나 지웠다 설치했다를 반복하다 보면 정상적으로 해결되더라고요... 이건 제가 조금 더 
찾아보고 확인해서 수정하도록 하겠습니다.

3. 설치 확인

print(cv2.cuda.getCudaEnabledDeviceCount())

위 코드를 사용해 보시면 설치 이전에는 0이라고 나오지만 설치 이후에는 1이라고 출력될 겁니다.
cuda를 쓸 수 있는 장치가 1개 있다는 뜻이라 성공적으로 설치했다고 보시면 되겠습니다!

4. 끝으로....

이번 글은 유독 부족한 부분이 많은 거 같아 속상하네요.
정확히 다 알아보고 글을 써야 하지만 조금 급하게 쓴 이유는 직접 build해서 쓰는 글은 많이 봤지만
build된 파일은 써서 하는 글은 안보이더라고요 그래서 저처럼 어려움 겪고 계실 분들을 위해 일단
나름대로 열심히 끄적여 봤습니다. 중간중간 수정도 하겠습니다.
오늘 불금인데 다들 주말 푹 쉬시고 저는 이만 가보겠습니다!

 
반응형