UbuntuインストールOpenCV 3詳細チュートリアル付属テスト(親測定可)


宣言


本文の大部分は転載して、いくつかの校正と訂正を行って、原文を参考にして含みます
  • Learn OpenCV
  • Installing OpenCV on Ubuntu

  • Step 1: Update packages


    1 2 sudo apt-get update sudo apt-get upgrade

    Step 2: Install OS libraries


    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Remove any previous installations of x264< /h3 > sudo apt-get remove x264 libx264-dev   We will Install dependencies now   sudo apt-get install build-essential checkinstall cmake pkg-config yasm sudo apt-get install git gfortran sudo apt-get install libjpeg8-dev libjasper-dev libpng12-dev   # If you are using Ubuntu 14.04 sudo apt-get install libtiff4-dev # If you are using Ubuntu 16.04 sudo apt-get install libtiff5-dev   sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev sudo apt-get install libxine2-dev libv4l-dev sudo apt-get install libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev sudo apt-get install qt5-default libgtk2.0-dev libtbb-dev sudo apt-get install libatlas-base-dev sudo apt-get install libfaac-dev libmp3lame-dev libtheora-dev sudo apt-get install libvorbis-dev libxvidcore-dev sudo apt-get install libopencore-amrnb-dev libopencore-amrwb-dev sudo apt-get install x264 v4l-utils   # Optional dependencies sudo apt-get install libprotobuf-dev protobuf-compiler sudo apt-get install libgoogle-glog-dev libgflags-dev sudo apt-get install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen

    Step 3: Install Python libraries


    1 2 3 sudo apt-get install python-dev python-pip python3-dev python3-pip sudo -H pip2 install -U pip numpy sudo -H pip3 install -U pip numpy
    We will use Virtual Environment to install Python libraries. It is generally a good practice in order to separate your project environment and global environment.
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 # Install virtual environment sudo pip2 install virtualenv virtualenvwrapper sudo pip3 install virtualenv virtualenvwrapper echo "# Virtual Environment Wrapper"   >> ~/.bashrc echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc source ~/.bashrc     ############ For Python 2 ############ # create virtual environment mkvirtualenv facecourse-py2 -p python2 workon facecourse-py2     # now install python libraries within this virtual environment pip install numpy scipy matplotlib scikit-image scikit-learn ipython     # quit virtual environment deactivate ######################################     ############ For Python 3 ############ # create virtual environment mkvirtualenv facecourse-py3 -p python3 workon facecourse-py3     # now install python libraries within this virtual environment pip install numpy scipy matplotlib scikit-image scikit-learn ipython     # quit virtual environment deactivate ######################################

    Step 4: Download OpenCV and OpenCV_contrib


    We will download opencv and opencv_contrib packages from their GitHub repositories.

    Step 4.1: Download opencv from Github


    1 2 3 4 git clone https://github.com/opencv/opencv.git cd opencv git checkout 3.4 cd ..

    Step 4.2: Download opencv_contrib from Github


    1 2 3 4 git clone https://github.com/opencv/opencv_contrib.git cd opencv_contrib git checkout 3.4 cd ..

    Step 5: Compile and install OpenCV with contrib modules


    Step 5.1: Create a build directory


    1 2 3 cd opencv mkdir build cd build

    Step 5.2: Run CMake


    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16  
    cmake -D CMAKE_BUILD_TYPE=RELEASE\      -D CMAKE_INSTALL_PREFIX=/usr/local\      -D INSTALL_C_EXAMPLES=OFF\      -D INSTALL_PYTHON_EXAMPLES=ON\      -D WITH_TBB=ON\      -D WITH_V4L=ON\      -D WITH_QT=ON\      -D WITH_OPENGL=ON\      -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules\      -D BUILD_EXAMPLES=ON\      -D WITH_CUDA=ON\      -D PYTHON2_EXECUTABLE=/home/sgx/software/anaconda2/bin/python\      -D PYTHON_INCLUDE_DIR=/home/sgx/software/anaconda2/include/python2.7\      -D PYTHON_INCLUDE_DIR2=/usr/include/x86_64-linux-gnu/python2.7\      -D PYTHON_LIBRARY=/home/sgx/software/anaconda2/lib/libpython2.7.so\      -D PYTHON2_NUMPY_INCLUDE_DIRS=/home/sgx/software/anaconda2/lib/python2.7/site-packages/numpy/core/include/  ..
    ここで補足します.pythonパスは自分のマシン上のパスに設定します.
    実際の操作では、最初のコンパイルでエラーが発生しました.具体的には
    CMakeFiles/example_gpu_multi.dir/multi.cpp.o: undefined reference to symbol '_ZN3tbb18task_group_contextD1Ev'

    Google後に設定-DWITH_を発見EXAMPLES=OFFでいいです...
    おそらくOpencvのexampleとCUDA-8.0のmulti_gpuコードインタフェースが調整されていません.

    Step 5.3: Compile and Install


    1 2 3 4 5 6 7 # find out number of CPU cores in your machine nproc # substitute 4 by output of nproc make -j4 sudo make install sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf.d/opencv.conf' sudo ldconfig
    Step 5.4: Create symlink in virtual environment
    Depending upon Python version you have, paths would be different. OpenCV’s Python binary (cv2.so) can be installed either in directory site-packages or dist-packages. Use the following command to find out the correct location on your machine.
    1 find /usr/local/lib/ - type f -name "cv2*.so"
    It should output paths similar to one of these (or two in case OpenCV was compiled for both Python2 and Python3):
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ############ For Python 2 ############ ## binary installed in dist-packages /usr/local/lib/python2 .6 /dist-packages/cv2 .so /usr/local/lib/python2 .7 /dist-packages/cv2 .so ## binary installed in site-packages /usr/local/lib/python2 .6 /site-packages/cv2 .so /usr/local/lib/python2 .7 /site-packages/cv2 .so     ############ For Python 3 ############ ## binary installed in dist-packages /usr/local/lib/python3 .5 /dist-packages/cv2 .cpython-35m-x86_64-linux-gnu.so /usr/local/lib/python3 .6 /dist-packages/cv2 .cpython-36m-x86_64-linux-gnu.so ## binary installed in site-packages /usr/local/lib/python3 .5 /site-packages/cv2 .cpython-35m-x86_64-linux-gnu.so /usr/local/lib/python3 .6 /site-packages/cv2 .cpython-36m-x86_64-linux-gnu.so
    Double check the exact path on your machine before running the following commands
    1 2 3 4 5 6 7 ############ For Python 2 ############ cd ~/.virtualenvs /facecourse-py2/lib/python2 .7 /site-packages ln -s /usr/local/lib/python2 .7 /dist-packages/cv2 .so cv2.so     ############ For Python 3 ############ cd ~/.virtualenvs /facecourse-py3/lib/python3 .6 /site-packages ln -s /usr/local/lib/python3 .6 /dist-packages/cv2 .cpython-36m-x86_64-linux-gnu.so cv2.so

    Step 6: Test OpenCV3


    We will test a red eye remover application written in OpenCV to test our C++ and Python installations. Download RedEyeRemover.zip and extract it into a folder.

    Step 6.1: Test C++ code


    Move inside extracted folder, compile and run.
    1 2 3 4 5 # compile # There are backticks ( ` ) around pkg-config command not single quotes g++ -std=c++11 removeRedEyes.cpp `pkg-config --libs --cflags opencv` -o removeRedEyes # run . /removeRedEyes

    Step 6.2: Test Python code


    Activate Python virtual environment
    1 2 3 4 5 ############ For Python 2 ############ workon facecourse-py2   ############ For Python 3 ############ workon facecourse-py3
    Quick Check
    1 2 3 4 5 6 7 8 # open ipython (run this command on terminal) ipython # import cv2 and print version (run following commands in ipython) import cv2 print cv2.__version__ # If OpenCV3 is installed correctly, # above command should give output 3.3.1 # Press CTRL+D to exit ipython
    Run RedEyeRemover demo
    1 python removeRedEyes.py
    Now you can exit from Python virtual environment.
    1 deactivate
    Whenever you are going to run Python scripts which use OpenCV you should activate the virtual environment we created, using workon command.

    その他の参照


    https://www.pyimagesearch.com/2016/10/24/ubuntu-16-04-how-to-install-opencv/
    http://rndness.com/blog/2018/2/3/installing-opencv-on-ubuntu-1710
    https://github.com/BVLC/caffe/wiki/OpenCV-3.3-Installation-Guide-on-Ubuntu-16.04
    https://docs.opencv.org/3.4.1/d7/d9f/tutorial_linux_install.html