본문 바로가기

잡다한 것

darknet, Yolo v3 설치 시 Opencv 오류 관련 및 클린 설치

darknet 설치하였을 때 에서 opencv관련 오류가 발생하는 경우가 있다.

그 경우 pip로 install 한 opencv가 인식되지 않는 것이므로 opencv를 컴퓨터에 빌드해 주어야한다.

// 2020/01/22 추가
sudo apt install python3-opencv
명령어를 통해 opencv를 우분투에 설치 가능(해당 명령어 이후, 해결이 안됬을 경우 밑에 과정 진행)

기본(Default) OpenCV 제거


Ubuntu 18.04에 기본으로 설치되어 있는 OpenCV를 제거한다.

sudo apt-get remove libopencv*
sudo apt-get autoremove

**만약 autoremove시 cuda관련 패키지가 같이 삭제된다고 나오는 경우 진행하지 않는 것을 추천(libopencv만 지워주자)**

Prerequisites 설치

Update & Upgrade

sudo apt-get update 
sudo apt-get upgrade

개발자 도구 설치

build-essential : c/c++ 컴파일러와 관련 라이브러리, make 같은 도구들이 포함된다.
cmake : 컴파일 옵션이나 빌드된 라이브러리에 포함시킨다. (OpenCV 모듈 설정을 위해 필요하다.)
unzip : 압축을 풀기위해 필요하다.
pkg-config : 컴파일할 목적으로 설치된 라이브러리 조회하기 위해 설치한다. (나중에 설치가 되었는지 확인을 위해 설치)

###

sudo apt-get install build-essential cmake unzip pkg-config

libraries 설치

이미지 처리/컴퓨터 비전 라이브러리인 JPEG, PNG, TIFF 파일 형식 로드를 위해 이미지 I/O 패키지를 설치한다.

sudo apt-get install libjpeg-dev libpng-dev libtiff-dev

카메라 스트림으로 작업하고 비디오 파일을 처리 할 수 있도록 비디오 I/O 패키지를 설치한다.

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev v4l-utils libxvidcore-dev libx264-dev libxine2-dev

비디오 스트리밍을 위한 라이브러리를 설치한다.

sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev

OpenCV의 GUI 작업을 위해 GTK 라이브러리를 설치한다.

sudo apt-get install libgtk-3-dev

OpenGL을 지원하기 위한 라이브러리를 설치한다.

sudo apt-get install mesa-utils libgl1-mesa-dri libgtkgl2.0-dev libgtkglext1-dev

OpenCV 기능을 최적화 해주는 라이브러리를 설치한다.

sudo apt-get install libatlas-base-dev gfortran libeigen3-dev

Python 설치
Python 헤더와 라이브러리를 설치한다.
(Pyhton의 Numpy는 매트릭스 연산 등을 빠르게 처리할 수 있어 OpenCV에서 사용된다.)

sudo apt-get install python2.7-dev python3-dev python-numpy python3-numpy

OpenCV 3.4.0 설치


OpenCV 3.4.0 다운로드

저장할 임시 디렉토리를 생성 후 그 폴더에 OpenCV 3.4.0을 다운받는다.

mkdir opencv
cd opencv
wget -O opencv.zip https://github.com/opencv/opencv/archive/3.4.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/3.4.0.zip

압축을 푼다.

unzip opencv.zip
unzip opencv_contrib.zip

Build & install OpenCV

working directory를 생성한다.

cd opencv-3.4.0
mkdir build
cd build

Build 구성 복붙해서 cmake해주자

cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D BUILD_opencv_cudacodec=OFF \
-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-3.4.0/modules \
-D WITH_V4L=ON  \
-D WITH_FFMPEG=ON \
-D WITH_XINE=ON \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
-D PYTHON2_INCLUDE_DIR=/usr/include/python2.7 \
-D PYTHON2_NUMPY_INCLUDE_DIRS=/usr/lib/python2.7/dist-packages/numpy/core/include/ \
-D PYTHON2_PACKAGES_PATH=/usr/lib/python2.7/dist-packages \
-D PYTHON2_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython2.7.so \
-D PYTHON3_INCLUDE_DIR=/usr/include/python3.6m \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include/  \
-D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages \
-D PYTHON3_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so \
../

컴파일

make 명령을 사용하여 컴파일 시작한다.
(cpu 코어 수를 확인하는 방법은 cat/proc/cpuinfo | grep processor | wc-;)

make -j

※ 컴파일하는데 오랜 시간이 걸립니다.

Install OpenCV

sudo make install
sudo sh -c echo '/usr/local/lib/' > sudo /etc/ld.so.conf.d/opencv.conf
sudo ldconfig

빌드가 완료되면 파일들이 생성된다.

참고 : https://j-remind.tistory.com/57?category=693866

 

4. (YOLO) Ubuntu 18.04에 OpenCV 3.4.0 설치

Ubuntu 18.04에 YOLO를 설치하기 위해 먼저 OpenCV 3.4.0을 설치합니다. 기본(Default) OpenCV 제거 Ubuntu 18.04에 기본으로 설치되어 있는 OpenCV를 제거합니다. 1 2 3 sudo apt-get remove libopencv* sudo apt..

j-remind.tistory.com