본문 바로가기

Programming/Environment Settings

ubuntu 16.04 에 caffe 설치하기 from scratch! 2)OpenCV 설치

2. Caffe Installment Tutorial 따라하기 - 이어서

지난번 포스팅에 이어서, 우분투에 Caffe를 설치하기 전에 미리 설치해야 할 소프트웨어인 OpenCV를 설치한다.

OpenCV를 설치는 아래 링크를 참고하였다. 
https://github.com/BVLC/caffe/wiki/OpenCV-3.3-Installation-Guide-on-Ubuntu-16.04

우선 OpenCV의  dependencies들을  설치해준다.
아래와 같은 코드를 터미널에 한 줄씩 입력하여 설치한다.

sudo apt-get install --assume-yes build-essential cmake git sudo apt-get install --assume-yes pkg-config unzip ffmpeg qtbase5-dev python-dev python3-dev python-numpy python3-numpy sudo apt-get install --assume-yes libopencv-dev libgtk-3-dev libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev sudo apt-get install --assume-yes libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev sudo apt-get install --assume-yes libv4l-dev libtbb-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev sudo apt-get install --assume-yes libvorbis-dev libxvidcore-dev v4l-utils vtk6 sudo apt-get install --assume-yes liblapacke-dev libopenblas-dev libgdal-dev checkinstall

결론부터 말하자면, 위의 코드들(caffe 공식 git 페이지에 나와있는 코드인데도..)로 open cv에 필요한 패키지를 설치를 했을때 
계속 make를 실패했다.
sudo apt-get install build-essential cmake 

sudo apt-get install build-essential cmake sudo apt-get install pkg-config sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libxine2-dev sudo apt-get install libv4l-dev v4l-utils sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev sudo apt-get install libgtk2.0-dev sudo apt-get install mesa-utils libgl1-mesa-dri libgtkgl2.0-dev libgtkglext1-dev sudo apt-get install libatlas-base-dev gfortran libeigen3-dev sudo apt-get install python2.7-dev python3-dev python-numpy python3-numpy

따라서 첫번째 코드 대신 이걸 사용하는 걸 추천.
튜토리얼대로 패키지를 설치했더니 빠진 내용이 있었는지

Makefile:160: recipe for target 'all' failed make: *** [all] Error 2
라는 에러가 계속 떴었다.
대신에 아래 코드로 패키지를 빠짐 없이 설치해줬더니 해결할 수 있었다.


나중에 CMAKE 빌드를 하고 나서 다른 패키지를 추가로 install을 해줬다면, CMAKE빌드도 다시 해줄것!

또, CUDA와 CUDNN이 필요한데, 이는저번 포스팅에서설치했으므로 생략한다.

https://github.com/opencv/opencv/archive/3.3.0.zip
에서 OpenCV 3.3을 다운받는다.
그리고 원하는 디렉토리에 압축을 푼다.
압축을 푸는 명령어는 아래와 같다.
sudo apt-get install unzip
unzip 모듈을 설치하고
unzip file.zip -d destination_folder
file.zip에 파일이름 destination_folder에 목표디렉토리를 입력하면 된다. 
나는 같은 위치에 압축을 풀고 싶었기 때문에 
unzip opencv-3.3.0.zip을 입력하였다

그러면 이렇게, 압축을 풀어 생긴 폴더가 나타난다.

압축을 푼 디렉토리로 이동해서 

mkdir build cd build/ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D FORCE_VTK=ON -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D WITH_CUBLAS=ON -D CUDA_NVCC_FLAGS="-D_FORCE_INLINES" -D WITH_GDAL=ON -D WITH_XINE=ON -D BUILD_EXAMPLES=ON .. make -j $(($(nproc) + 1))

터미널에 코드를 한 줄씩 입력한다.
라고 caffe github에서 보고 실행했는데..
결론부터 다시 말하자면 실패했다.

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 ENABLE_NEON=ON \ -D ENABLE_VFPV3=ON \ -D WITH_QT=OFF \ -D WITH_GTK=ON \ -D WITH_OPENGL=ON \ -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.3.0/modules \ -D WITH_V4L=ON \ -D WITH_FFMPEG=ON \ -D WITH_XINE=ON \ -D BUILD_NEW_PYTHON_SUPPORT=ON \ ../

대신 위 코드를 입력하자 ! ^^

그리고 

-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi/opencv/opencv-3.3.0/build

이 나타나면 CMAKE로 빌드파일 생성을 성공한것이다. 

$ make -j4 $ sudo make install $ sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf' $ sudo ldconfig $ sudo apt-get update

위 소스코드로, opencv 빌드파일을 컴파일한다!
설치확인은 

이렇게 버전이 뜨면 완성!

오늘 거의 6시간 넘게 붙잡고 있었던거 같은데 ... 
핵심은 필요한 패키지를 몽땅!!! 설치하고
CMAKE 빌드를 모든 패키지를 설치한 다음 빌드파일 생성해야 에러를 줄일 수 있었다는 것이다.