OpenCV(Open Source Computer Vision)는 실시간 컴퓨터 비전을 목적으로 한 프로그래밍 라이브러리로 리눅스, 윈도 등 다양한 플랫폼을 지원하고 있다. 프로그래밍 언어도 C, C++ 뿐만 아니라 파이썬도 지원하고 있어 본 교재에서는 파이썬을 사용한 OpenCV 활용도 가능하다.
이미 빌드된 OpenCV 버전은 2.x이다.
안면 인식, 손글씨 인식 등의 인공지능 기능을 사용하려면 최신 버전인 4.x 이상이 필요하다. 소스코드를 받아서 빌드과정을 거치는 방법은 다음과 같다.
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install cmake build-essential pkg-config git
$ sudo apt install libjpeg-dev libtiff-dev libjasper-dev libpng-dev libwebp-dev libopenexr-dev
$ sudo apt install libavcodec-dev libformat-dev libswscale-dev lib4l-dev libxvidcore-dev libx264-dev libdc1394-22-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
$ sudo apt install libgtk-3-dev libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5
$ sudo apt install libatlas-base-dev liblapacke-dev gfortran
$ sudo apt install libhdf5-dev libhdf5-103
$ sudo apt install python3-dev python3-pip python3-numpy
OpenCV 소스코드 컴파일을 위해서 스왑 파일(가상 메모리 파일)을 2048로 용량 변경
$ sudo vi /etc/dphys-swapfile

$ sudo systemctl restart dphys-swapfile
$ git clone https://github.com/opencv/opencv.git
$ git clone https://github.com/opencv/opencv_contrib.git
$ mkdir ~/opencv/build
$ cd ~/opencv/build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D ENABLE_NEON=ON \
-D ENABLE_VFPV3=ON \
-D BUILD_TESTS=OFF \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D CMAKE_SHARED_LINKER_FLAGS=-latomic \
-D BUILD_EXAMPLES=OFF ..
$ make -j$(nproc)
$ sudo make install
$ sudo ldconfig
빌드가 완료되는 데까지 최대 1시간 30분 걸립니다.
etc/dphys-swapfile 파일에서 다시 스왑 파일을 원래대로 복구합니다.
CONF_SWAPSIZE=100
$ sudo systemctl restart dphys-swapfile
$ python3
import cv2
cv2._ version