はじめに
今回、諸事情によりラズパイ3 Model B+ に
・Ubuntu(64bit)
・OpenCV
をインストールしなければならなくなりました。
OpenCVをインストールしてpythonで使用出来るまでに
かなりつまづいたたので、備忘録的に書いていこうと思います。
ちなみに
今回私が使用した環境は以下の通りです。
・ラズパイ3 Model B+
・Ubuntu 18.04LTS(64bit)
・OpenCV 3.4.0
#Ubuntuのインストール
Ubuntuをインストールするに辺り以下の記事を参考にさせていただきました。
・Raspberry Pi 3で64ビット版Ubuntu 19.10を起動してみました
こちらはUbuntuのバージョンが異なりますが基本的には上記記事の通り
こちらよりイメージファイルをダウンロードしてSDカードに書き込みます。
ちなみに今回18.04を選んだ理由としては
・上記ダウンロードサイト内の16.04が
ラズパイ3 Model B+ では 起動出来なかったため
・19.10のpythonのバージョンが ‘3.7系’で
numpyが上手くインストール出来なかったため
です。
#OpenCVのインストール
OpenCVのインストールの細かいコマンド等については、
多くの記事が出ているので、この記事では割愛します。
ここでは、OpenCVをインストールするに辺り
つまづいた点について書いていきます。
###①libjasper-dev,libpng12-devがない
Ubuntu18.04には、パッケージに上記2つがないため、
sudo apt-get install libjasper-dev
sudo apt-get install libpng12-dev
を実行すると、エラーが出ます。
(libpng12-devはlibpng-devに名称が変更になったとか)
これを解消するためにこちらを参考にしました。
リンクの記事にある通り、libjasper-dev等が存在する
バージョンのリポジトリを追加する必要があります。
しかし、リンク記事にある
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu bionic-security main"
や、コメント欄にある
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
をラズパイで実行するとエラー になります。
(以下エラーが出ます)
404 not found
理由としては、ラズパイのCPUがARMであることです。
上記2つのリポジトリは、Intel向けのみのフォルダしか存在しておらず、
ラズパイにて実行するとARM向けのフォルダを探そうとするため、404になってしまいます。
そのため、
sudo add-apt-repository "deb http://ports.ubuntu.com/ubuntu xenial-security main"
とARM向けのフォルダが存在するリポジトリを指定してあげる必要があります。
ちなみに、上記コマンドはOpenCVに必要なライブラリをインストールする前に
実行した方が良いです。
(私は、sudo apt update
, sudo apt upgrade
を実行する前に実行しました。)
これで、libjasper-dev
とlibpng12-dev
をインストールすることが出来るようになるはずです。
###②メモリ不足によりmakeが止まる
①により、インストールがサクサク進み、意気揚々とmakeコマンドを実行するも、
以下のファイルをビルドしている最中に、止まる事があります。
modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.o
こちらの記事によれば、これとpython2はメモリを喰うらしく
メモリ不足によりmakeが止まってしまうそうです。私自身の環境でもずっと止まっていました。
そのため、仮想メモリを追加してあげる必要があります。
今回はこちらの記事を参考にさせていただきました。
仮想メモリを追加してあげた状態で再度makeすることで、
多少時間はかかりますが、最後まで実行されるはずです。
OpenCVをインストールするに辺り、つまづいた点は以上になります。
#終わりに
この辺りがクリアできれば、OpenCVが使えるようになると思います。
今回、インストール完了するまでに結構かかったので忘れないようにしないとですね...。