[Ubuntu] OpenCV 설치하기

2021. 5. 6. 13:06기타

오늘은 갑자기 Darknet을 사용하려 했는데 opencv관련 에러가 나와서 OpenCV를 재설치하려고 한다.

 

Ubuntu환경에서 OpenCV를 어떻게 설치하는지 자세히 알아보자.

 


1. OpenCV 설치 여부

먼저 이미 사전에 설치된 OpenCV가 있는지 확인해야한다. 

없다면 다음 과정으로 넘어가도 좋지만 있다면 삭제하고 설치를 진행해야 한다.

 

다음 명령어를 입력해보자!

aistudy@aistudy-pc:~$ pkg-config --modversion opencv

 

**OpenCV4부터는 다음 명령어로 확인할 수 있다.

aistudy@aistudy-pc:~$ pkg-config --modversion opencv4

만약 나처럼 opencv가 설치되어있지 않은 상태라면 

aistudy@aistudy-pc:~$ pkg-config --modversion opencv
Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found

이러한 문구가 나올 것이다.

 

만약 OpenCV의 버전이 출력이 된다면, 이미 설치된 버전이 있다는 뜻이니 삭제를 하자!

다음 명령어들을 순서대로 입력하면 된다.

 

**OpenCV 패키지 삭제

aistudy@aistudy-pc:~$ sudo apt-get purge  libopencv* python-opencv
aistudy@aistudy-pc:~$ sudo apt-get autoremove

 

**OpenCV 라이브러리 삭제

aistudy@aistudy-pc:~$  sudo find /usr/local/ -name "*opencv*" -exec rm -i {} \;

 

2. 사전 환경 세팅

OpenCV를 빌드하기 전에, 필요한 환경을 만들어 주어야 한다.

 

먼저 최신 버전의 패키지를 받을 수 있도록 Ubuntu-repository를 업그레이드 해준다.

aistudy@aistudy-pc:~$  sudo apt-get update

또한, 현재 설치된 패키지를 최신 버전으로 업그레이드 시켜준다.

aistudy@aistudy-pc:~$  sudo apt-get upgrade

 

이제 빌드에 필요한 패키지를 설치할 순서이다. 

다음 패키지들을 설치하면 된다. (패키지들에 대한 자세한 설명은 생략하도록 하겠다.)

**자세한 설명이 필요하면 참조(1)을 참고하길 바란다.

aistudy@aistudy-pc:~$  sudo apt-get install build-essential cmake pkg-config 
aistudy@aistudy-pc:~$ sudo apt-get install libjpeg-dev libtiff5-dev libpng-dev ffmpeg libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libxine2-dev libv4l-dev v4l-utils libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgtk-3-dev mesa-utils libgl1-mesa-dri libgtkgl2.0-dev libgtkglext1-dev libatlas-base-dev gfortran libeigen3-dev python2.7-dev python3-dev python-numpy python3-numpy

**만약 python2를 사용하지 않는다면 python2.7-dev, python-numpy 제거해도 좋다.

 

3. OpenCV 빌드 환경 설정

빌드하기 전에 먼저 opencv를 설치할 폴더를 하나 생성한다.

aistudy@aistudy-pc:~$  mkdir opencv

그 폴더 내에서  OpenCV 4.2.0 zip파일과 OpenCV-contrib파일을 다운받고 압축을 해제한다.

aistudy@aistudy-pc:~$ cd opencv
aistudy@aistudy-pc:~/opencv$ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.2.0.zip
aistudy@aistudy-pc:~/opencv$ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.2.0.zip
aistudy@aistudy-pc:~/opencv$ unzip opencv.zip
aistudy@aistudy-pc:~/opencv$ unzip opencv_contrib.zip

이제 생성된 opencv-4..2.0 디렉토리로 이동하여 build 디렉토리를 만들어 준다.

aistudy@aistudy-pc:~/opencv$ cd opencv-4.2.0
aistudy@aistudy-pc:~/opencv/opencv-4.2.0$ mkdir build
aistudy@aistudy-pc:~/opencv/opencv-4.2.0$ cd build
aistudy@aistudy-pc:~/opencv/opencv-4.2.0/build$

마지막으로 cmake명령어를 사용하여 OpenCV 빌드 설정을 해준다.

aistudy@aistudy-pc:~/opencv/opencv-4.2.0/build$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=OFF -D WITH_IPP=OFF -D WITH_1394=OFF -D BUILD_WITH_DEBUG_INFO=OFF -D BUILD_DOCS=OFF -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D WITH_QT=OFF -D WITH_GTK=ON -D WITH_OPENGL=ON -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.2.0/modules -D WITH_V4L=ON  -D WITH_FFMPEG=ON -D WITH_XINE=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D OPENCV_GENERATE_PKGCONFIG=ON ../

정상적으로 됐다면 --Configuration done, --Generating done 과 같은 메시지가 나왔을 것이다.

 

4. OpenCV 빌드

빌드에 사용할 CPU 코어수를 확인하기 위해 다음과 같은 명령어를 입력한다.

aistudy@aistudy-pc:~/opencv/opencv-4.2.0/build$ cat /proc/cpuinfo | grep processor | wc -l

그럼 2, 4, 8등 사용자의 PC 환경에 해당하는 CPU 코어수가 나올 것이고, 그 숫자를 다음 명령어와 같이 써주면 된다.

aistudy@aistudy-pc:~/opencv/opencv-4.2.0/build$ time make -j4

**time을 붙이면 컴파일에 걸린 시간을 같이 나타내준다.

 

이제 OpenCV를 설치하기만 하면 된다.

aistudy@aistudy-pc:~/opencv/opencv-4.2.0/build$ sudo make install

또한, /etc/ld.so.conf.d/디렉토리에 /usr/local/lib가 없다면 다음 명령어를 추가로 실행해주어야한다.

aistudy@aistudy-pc:~/opencv/opencv-4.2.0/build$ cat /etc/ld.so.conf.d/*
/usr/local/cuda-10.0/targets/x86_64-linux/lib
/usr/lib/x86_64-linux-gnu/libfakeroot
# Multiarch support
/usr/local/lib/i386-linux-gnu
/lib/i386-linux-gnu
/usr/lib/i386-linux-gnu
/usr/local/lib/i686-linux-gnu
/lib/i686-linux-gnu
/usr/lib/i686-linux-gnu
# libc default configuration
/usr/local/lib
# Multiarch support
/usr/local/lib/x86_64-linux-gnu
/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu
# Legacy biarch compatibility support
/lib32
/usr/lib32

**필자는 /usr/local/lib가 있는 것을 확인할 수 있다.

aistudy@aistudy-pc:~/opencv/opencv-4.2.0/build$ sudo sh -c 'echo '/usr/local/lib' > /etc/ld.so.conf.d/opencv.conf'
aistudy@aistudy-pc:~/opencv/opencv-4.2.0/build$ sudo ldconfig

이럼으로써 OpenCV 설치가 끝났다. 더 자세한 설명과 OpenCV 설치 후 테스트를 해보기 원한다면 참조(1)을 참고하기 바란다.


참조(1): https://webnautes.tistory.com/1186