귀퉁이 서재

OpenCV - 2. OpenCV 개요와 설치 본문

OpenCV

OpenCV - 2. OpenCV 개요와 설치

Baek Kyun Shin 2020. 9. 9. 20:41

이번 포스팅에서는 컴퓨터 비전의 대표적인 라이브러리인 OpenCV에 대해서 배워보겠습니다. 그전에 영상 처리와 컴퓨터 비전에 대해 간단히 알아보겠습니다.

영상 처리와 컴퓨터 비전

영상 처리(image processing)는 영상에 여러 연산을 가해서 원하는 결과를 새롭게 얻어내는 과정입니다. 대부분의 영상 처리의 목적은 더 좋은 품질의 영상을 얻는 것입니다. 영상 처리의 사례로는 화질 개선, 영상 복원, 영상 분할 등이 있습니다.

컴퓨터 비전은 영상 처리를 포함하는 포괄적인 개념입니다. 영상 처리가 원본 영상을 사용자가 원하는 새로운 영상으로 바꿔주는 기술이라면, 컴퓨터 비전은 영상에서 의미 있는 정보를 추출해 주는 기술입니다. 예를 들면, 객체 검출(Object Detection), 객체 추적(Object Tracking), 객체 인식(Object Recognition)이 있습니다. 객체 검출은 영상 속에서 찾고자 하는 물체가 어디에 있는지 검출하는 작업이고, 객체 추적은 영상 속 물체가 어디로 움직이는지 추적하는 작업이며, 객체 인식은 영상 속 물체가 무엇인지 인식하는 작업입니다. 

객체 추적은 대충 알겠는데 객체 검출과 객체 인식은 서로 헷갈릴 수도 있습니다. 객체 인식은 개의 사진을 보여주고 이것이 개인지 고양이인지 구분하는 작업이라고 생각하면 됩니다. 반면, 객체 검출은 개와 고양이가 여러 마리 있는 사진을 보여주고, 여기서 개는 어느 위치에 있는지 찾아내는 작업이라 생각하면 됩니다. 객체 인식은 개인지 고양이인지만 구분하면 되지만, 객체 검출은 개의 위치까지 이미지 내에서 찾아내야 하므로 더 어려운 작업입니다.

일반적으로 컴퓨터 비전을 하기 전에 영상 처리를 하는 경우가 많습니다. 컴퓨터 비전 작업은 영상 처리를 통해 원본 영상을 원하는 새로운 영상으로 바꿔준 뒤, 컴퓨터 비전으로 원하는 정보를 얻어내는 과정이기 때문입니다. 이상으로 영상 처리와 컴퓨터 비전에 간단히 알아봤습니다. 이제, 영상 처리와 컴퓨터 비전의 대표적인 라이브러리인 OpenCV에 대해 알아보겠습니다.

OpenCV란?

OpenCVOpen Source Computer Vision Library의 준 말로, 영상 처리와 컴퓨터 비전 분야의 가장 대표적인 라이브러리입니다. OpenCV는 사진 혹은 영상을 처리해주는 포토샵 기능을 프로그래밍 언어로 구현할 수 있게 해주는 라이브러리라고 생각해도 크게 틀리지 않습니다. OpenCV의 소스 코드 저장소는 다음과 같이 2개로 나뉩니다.

메인 저장소: https://github.com/opencv/opencv

엑스트라 저장소: https://github.com/opencv/opencv_contrib

메인 저장소는 말 그대로 OpenCV의 공식 배포용 메인 저장소입니다. 반면, 엑스트라 저장소는 아직 알고리즘의 성숙도가 떨어지는 코드가 들어 있는 저장소를 뜻합니다. 엑스트라 저장소에 있는 코드는 향후 완성도가 높아지면 메인 저장소로 옮겨집니다.

OpenCV 설치

이제 OpenCV를 설치해보겠습니다. 이 책의 저자는 다음과 같이 개발환경을 세팅했습니다.

Python 3.6
Numpy 1.14
OpenCV-Python 3.4.1, 엑스트라(contrib) 포함
Matplotlib 2.2.2

저는 윈도우 사용자이기 때문에 윈도우 기준으로 가상 환경을 하나 만들어 진행하겠습니다. 참고로 제 PC에는 Anaconda가 설치되어 있어 conda로 가상 환경을 만들었습니다. Anaconda로 가상 환경을 만드는 방법이 궁금하신 분들은 DATA - 1. Anacoda를 참고해주시기 바랍니다.

다음의 코드를 따라 가상 환경을 세팅해보겠습니다.

우선, 파이썬 3.6 버전을 갖는 가상 환경을 만들어줍니다. Anaconda Prompt에 아래와 같이 입력해주면 됩니다.

# Anaconda 환경에서 가상환경 만들기
conda create -n opencv python=3.6

파이썬 3.6 버전이 설치된 opencv라는 이름의 가상 환경이 만들어졌습니다. 이렇게 만든 가상 환경을 아래와 같이 실행해 줍니다.

# 가상환경 실행
conda activate opencv

가상 환경 안에 원하는 버전의 모듈을 설치합니다.

# numpy 1.14 버전 설치
pip3 install numpy==1.14.0

# 엑스트라(contrib)를 포함한 OpenCV-Python 모듈 3.4.1 설치
pip3 install opencv-contrib-python==3.4.1.15

# matplotlib 2.2.2 버전 설치
pip3 install matplotlib==2.2.2

이제, prompt 창에서 python을 실행시킨 뒤 아래와 같이 입력하면 각 모듈별 버전이 뜰 겁니다. 다른 버전이 뜨면 설치가 잘못되었거나 가상 환경 세팅이 잘못된 겁니다.

>>> import numpy
>>> numpy.__version__
'1.14.0'


>>> import cv2
>>> cv2.__version__
'3.4.1'

>>> import matplotlib
>>> matplotlib.__version__
'2.2.2'

이상으로 OpenCV의 개요와 설치 방법에 대해 알아봤습니다.

Comments