본문 바로가기
STUDY/YOLO

opencv with CUDA 정리

by brown_board 2022. 5. 25.
728x90

1. opencv with cuda를 쓰는 이유

YOLO와 호환되는 가장 많이 사용되는 3가지 프레임워크

1. Darknet : 원개발자가 만든 YOLO만을 위한 프레임워크

장점 : 연산이 빠르고, GPU와 CPU 연산 모두 지원

단점 : Linux 환경에서만 지원 (복잡하긴 하지만 환경변수, VS 등을 통해 구현은 가능합니다.)

2. DarkFlow : Darknet의 텐서플로우 버전

장점 : 연산이 빠르고, GPU와 CPU 연산 모두 지원 + 모든 OS 지원

단점 : 복잡한 설치조건

3. OpenCV : 내장 함수를 통한 YOLO 구현

장점 : 간단한 설치, opencv만 설치하면 된다.

단점 : CPU 연산만 지원하기 때문에 웹캠으로 실시간 처리하는데 속도가 느리다.

1~2번의 경우, OpenCV, Tensorflow, Python 등의 버전에 상당히 종속적이다보니 한가지만 틀어져도 실행 자체가 안되는 경우가 많습니다. 10FPS 이상의 실시간 탐지 성능을 원하시는것이 아니거나, 학습된 가중치를 간단하게 테스트를 하시는 경우라면 본문에서 다룰 3번의 방법을 추천드립니다.

그래서나는 3번의 방법으로 yolo를 사용하고 또한, 코드를 건들이기 편해서 opencv를 사용하는 방법을 택했다.

하지만 단점에 나와 있는 것처럼 cpu연산만 지원하기 때문에 cuda와 같이 사용해서 opencv를 동작시키는 방법을 검색했다.

https://bong-sik.tistory.com/16

https://deep-eye.tistory.com/6

2. opencv with CUDA 설치

설치 방법은 아래의 블로그를 참고하여서 설치하였다. 설치 환경은 다음과 같다.

OS: windows 10
GPU: RTX 2060 SUPER
CUDA: 10.2
CUDNN: 8.4.0
PYTHON: anaconda
OPENCV: 4.5.1
OPENCV_contrib: 4.5.1
VISUAL STUDIO: 2017 community
CMAKE:3.23.1

https://ellun.tistory.com/333 

https://www.youtube.com/watch?v=Gfl6EyIhFvM&t=2719s 

https://prlabhotelshoe.tistory.com/26?category=1004669 

다른 점이 있다면 나는 python을 anaconda를 이용해서 설치했고 가상환경을 python3.7로 했는데 cv2파일의 python버전이 3.9로 깔려서 오류가 나왔다. 그리고 import cv2를 해도 인식이 안되고 opencv파일이 이상하고 install되었다.
그래서 가상환경이 아니라 base환경에서 진행하였다. 지금와서 생각해보니 이유가 다음과 같다.


1. opencv4.5.1 zip파일을 다운받고 압축을 푼 폴더가 있을 때 CMAKE 다하고 비주얼스튜디오 빌드를 하면 안에 .cashe파일이 생긴다. 그렇기 때문에 새로 opencv폴더를 생성하고 또 다른 OPENCV를 만들고 안에 이동시킬때 계속 새롭게 압축을 풀고 저장을 해야하는데 이미 빌드된 opencv4.5.1파일을 옮겼다. 그래서 중복이 생겨 안됬던거 같다.
2. build를 해도 python3파일이 생기지 않았다. 이거는 CMAKE에서 경로지정을 할 때 깜빡하고 못해서 생기지 않았다.
3. 이외에도 CMAKE를 체크를 이상하게 해서 원하는대로 파일이 생성안되는 경우도 있었다. 결국 유투브대로 똑같이 하니깐 됬다.

다음과 같은 이유로 하루정도 고생을 하고 opencv with CUDA를 실험할 환경을 갖추게 되었다.

728x90

'STUDY > YOLO' 카테고리의 다른 글

우분투 yolo 환경구축  (0) 2022.05.28
opencv with CUDA실행  (0) 2022.05.25
opencv gpu (3)  (0) 2022.05.24
opencv gpu (2)  (0) 2022.05.24
opencv gpu (1)  (0) 2022.05.24

댓글