Jetson NanoにOpenCVをインストール

目次
swapファイルを生成
コンパイル途中にメモリー不足などの問題を防ぐため, swapという交換用ファイルを任意のパスに生成しておく。 このファイルは,OS再起動の後に自動的に消えるが, 全てのインストールが終わったら,手作業で交換用ファイルを削除しても良い。
$ fallocate -l 4G swapfile
$ chmod 600 swapfile
$ mkswap swapfile
$ sudo swapon swapfile
$ swapon -s
インストールのスクリプトを生成
以上は,OpenCV 4.0.0をインストールためのリンクで,ここでは,OpenCV 4.1.0をインストールしたいため, バージョン番号の部分に少し手を加える。
#!/bin/bash
#
# Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved.
#
# NVIDIA Corporation and its licensors retain all intellectual property
# and proprietary rights in and to this software, related documentation
# and any modifications thereto. Any use, reproduction, disclosure or
# distribution of this software and related documentation without an express
# license agreement from NVIDIA Corporation is strictly prohibited.
#
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <Install Folder>"
exit
fi
folder="$1"
user="nvidia"
passwd="nvidia"
echo "** Install requirement"
sudo apt-get update
sudo apt-get install -y build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt-get install -y python2.7-dev python3.6-dev python-dev python-numpy python3-numpy
sudo apt-get install -y libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
sudo apt-get install -y libv4l-dev v4l-utils qv4l2 v4l2ucp
sudo apt-get install -y curl
sudo apt-get update
echo "** Download opencv-4.1.0"
cd $folder
curl -L https://github.com/opencv/opencv/archive/4.1.0.zip -o opencv-4.1.0.zip
curl -L https://github.com/opencv/opencv_contrib/archive/4.1.0.zip -o opencv_contrib-4.1.0.zip
unzip opencv-4.1.0.zip
unzip opencv_contrib-4.1.0.zip
cd opencv-4.1.0/
echo "** Building..."
mkdir release
cd release/
cmake -D WITH_CUDA=ON -D CUDA_ARCH_BIN="5.3" -D CUDA_ARCH_PTX="" -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.1.0/modules -D WITH_GSTREAMER=ON -D WITH_LIBV4L=ON -D BUILD_opencv_python2=ON -D BUILD_opencv_python3=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j3
sudo make install
sudo apt-get install -y python-opencv python3-opencv
echo "** Install opencv-4.1.0 successfully"
echo "** Bye :)"
以上のスクリプトを sh
のフォーマットで保存する。例えば install_opencv4.1.0_Nano.sh
。
スクリプトを実行する
mkdir opencv
sh install_opencv4.1.0_Nano.sh opencv
インストールのプロセスが割と時間かかるため,インストールが終わるまで待つ。 ここで,tmuxとかに任せてバックグラウンドでやれば,なんかあった時にattachすれば済むのでおすすめ。
インストールされたOpenCVをテスト
コマンドラインに python
を叩くと import cv2
をためしたらエラーがなければ終わり。
ただ,pyenvなどのpython環境管理ツールを使っている方なら, pyenvを使って入れたpythonにおいてはOpenCVを読み込めない場合がある。 解決案としては,OpenCVのライブラーのソフトリンクをpyenvのpythonの下に置くこと。
例えば,以下のようなpyenvのpythonのライブラリーのパスがある。
/home/{username}/.anyenv/envs/pyenv/versions/3.6.8/lib/python3.6/site-packages
また,インストールされたOpenCVのライブラリーのパスが以下となる。
/usr/local/lib/python3.6/dist-packages/cv2/python-3.6/cv2.cpython-36m-aarch64-linux-gnu.so
この場合は,以下のコマンドでソフトリンクを作れる。
cd /home/{username}/.anyenv/envs/pyenv/versions/3.6.8/lib/python3.6/site-packages
ln -s /usr/local/lib/python3.6/dist-packages/cv2/python-3.6/cv2.cpython-36m-aarch64-linux-gnu.so ./
また,事前にpyenvのpythonのpipを使って,
pip install numpy
でnumpyを入れておくと
さっきのように import cv2
でテストしてエラーがなければおしまい。