Ubuntu 20.04にOpenCV 4.0をインストールする方法


Ubuntu 20.04にOpenCV 4.0をインストールする


1.インストールしたOpenCVを削除する


以前にOpenCVがインストールされている場合は、新しくインストールされたOpenCV 4.0のバージョンが正常に動作しないため、削除する必要があります.
下図のようにOpenCVはインストールされていません.
$ pkg-config --modversion opencv

インストールされている場合は、バージョンが出力されます.
OpenCV設定ファイルを含む、次のコマンドを使用して削除して続行する必要があります.
$ sudo apt-get purge  libopencv* python-opencv
$ sudo apt-get autoremove

2.既存のインストールパッケージのアップグレード


OpenCV 4.0をインストールする前に既存のパッケージをアップグレードする操作です.
Ubuntuリポジトリからパッケージリストを更新します.
リポジトリに既存のインストールパッケージの新しいバージョンがある場合は、この操作を実行してリストを更新します.
$ sudo apt-get update
$ sudo apt-get upgrade

3.OpenCVをコンパイルする前に必要なパッケージをインストールする


コンパイル用のパッケージをインストールします.インストールされている可能性があります.
bulid-基本パッケージには、C/C++コンパイラ、関連ライブラリ、makeなどのツールが含まれています.
cmakeは、コンパイルまたは構築されたライブラリに含めるためにOpenCVモジュールを構成する必要があります.
$ sudo apt-get install build-essential cmake
pkg-configは、メタファイル(拡張子.pcのファイル)からプログラムのコンパイルとリンクに必要なライブラリに関する情報を取得するために使用されます.
コンパイル端末が特定のライブラリのソースコードを使用するときに、必要なヘッダファイルとライブラリの場所とオプションを追加するのに役立ちます.
$ sudo apt-get install pkg-config

特定のフォーマットの画像ファイルを読み込みまたは保存するために必要なパッケージ.
$ sudo apt-get install libjpeg-dev libtiff5-dev libpng-dev
特定のコーデックのビデオファイルを取得または保存するために必要なパッケージ.
$ sudo apt-get install ffmpeg libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libxine2-dev
Video 4 Linuxパッケージには、Webカメラからのリアルタイムビデオの取得をサポートするデバイスドライバとAPIが含まれています.
$ sudo apt-get install libv4l-dev v4l-utils
GStreamerは、ビデオストリーム管理のためのライブラリです.
$ sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev 
OpenCVでは、Highguiモジュールを使用して独自のウィンドウを作成して画像やビデオを表示できます.
gtkまたはqtを選択してGUIで使用します.たとえば、ウィンドウを作成します.gtk 2が指定されています.
その他のオプションパッケージは次のとおりです.
libgtk2.0-dev
libqt4-dev
libqt5-dev
$ 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 3-devパッケージはOpenCV-Pythonをバインドするために必要なパッケージです.
Numpyは、マトリックス演算などをすばやく処理できるため、OpenCVに使用できます.
$ sudo apt-get install python3-dev python3-numpy

4.OpenCVの設定、コンパイル、インストール


一時ディレクトリを作成してソースコードを保存し、移動後に続行します.
$ mkdir opencv
$ cd opencv

OpenCV 4.0ソースコードをダウンロードして解凍します.
$ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.4.0.zip
$ unzip opencv.zip
Opencv contrib(Extra Modules)ソースコードをダウンロードし、解凍します.
メインモジュールに欠けているモジュールとSURFなどの非自由モジュールを使用する必要があります.
SIFTはOpenCV 4.0からExtraモジュールに移行しました.
$ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.4.0.zip
$ unzip opencv_contrib.zip
$ ls
次の2つのディレクトリが作成されます.

Opencv-4.4.0ディレクトリに移動し、構築ディレクトリを作成し、構築ディレクトリに移動します.
コンパイルは構築ディレクトリで行われます.
$ cd opencv-4.4.0
$ mkdir bulid
$ cd bulid

cmake設定OpenCVコンパイルを使用します.

그래서 OPENCV_GENERATE_PKGCONFIG=ON 옵션을 추가했습니다. 

Non free 모듈을 사용하려면 다음 옵션을 추가했습니다.

( 참고 https://github.com/opencv/opencv/issues/13154 ) 

-D OPENCV_ENABLE_NONFREE=ON
cmakeがない場合は$ sudo apt install cmake
$ 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_PACKAGE=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D WITH_QT=OFF -D WITH_GTK=ON -D WITH_OPENGL=ON -D BUILD_opencv_python3=ON -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.4.0/modules -D WITH_V4L=ON  -D WITH_FFMPEG=ON -D WITH_XINE=ON -D OPENCV_ENABLE_NONFREE=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D OPENCV_SKIP_PYTHON_LOADER=ON -D OPENCV_GENERATE_PKGCONFIG=ON ../
次のメッセージが表示された場合は、すべて正常です.

これはcmakeを用いたOpenCVコンパイルに関する設定の結果である.



Python 3ライブラリプロジェクトが見えなければ(私は見ていませんので):

太字で示すように、対応するパスを直接記入してください.配置で使用するオプションとは異なる場合があります.△上記のように、私はしていないので、違いがあるかもしれません.
上のcmakeコマンドの後ろに貼って書けばいいです.
-D PYTHON3_INCLUDE_DIR=/usr/include/python3.8 -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.8.so ../
makeコマンドを使用してコンパイルを開始します.前にtimeを付けると、コンパイル完了に要する時間が通知されます.
$ time make -j$(nproc)
コンパイルに成功すると、次のメッセージが表示されます.

コンパイル成果物をインストールします.
$ sudo make install
/etc/ld.so.conf.d/ディレクトリに/usr/local/libのプロファイルが含まれていることを確認します.
$ cat /etc/ld.so.conf.d/*

/usr/local/libが出力されていない場合は、次の追加コマンドを実行する必要があります.△追加しました.
$ sudo sh -c 'echo '/usr/local/lib' > /etc/ld.so.conf.d/opencv.conf'
/usr/local/libが見つかった場合、または見つからないために追加された場合は、コンパイル時にopencvライブラリを検索するには、次のコマンドを実行します.
$ sudo ldconfig

5.OpenCVのインストール結果の検証


次のように、Opencvライブラリが
  • python 3 xで使用可能であることを確認してください.
    4.0をOpenCVバージョンに出力する必要があります.
  • python
    $ python3
    import cv2
    cv2.__version__
    quit()
  • サンプルコードを実行します.
  •  python3 /usr/local/share/opencv4/samples/python/facedetect.py --cascade "/usr/local/share/opencv4/haarcascades/haarcascade_frontalface_alt.xml" --nested-cascade "/usr/local/share/opencv4/haarcascades/haarcascade_eye_tree_eyeglasses.xml" /dev/video0

    カメラ映像で顔が検出された結果が得られる.
  • は、不要なコンパイルのためのopencvソースディレクトリを削除します.
  • cd
    rm -rf opencv

    ソース:https://webnautes.tistory.com/1433