Posted at

RaspberryPiにPython3.6で動くopenCV3系入れるの辛すぎ問題(解決)

とにかくRaspberryPiでPython3.6で動くopenCVをできるだけ簡単に入れたい。

Python2系やPython3.5ではなく、Python3.6なのだ。やんごとなき理由で。

そんな奮闘記。

結論からいえば、RaspberryPiにおいてはpip系のコマンドなどで楽ちんに入れることはできません。公式からbuildするしか方法がないっぽいです。結論だけ知りたい方は「解決策」項だけお読みください。


奮闘記(全部失敗)

pip install opencv-pythonで一発でいけるっしょと思っていたが上記コマンドはmacOSではいけるがraspbianでは無理

ok、それならとpyenvでpython3.6系の環境を入れてから以下のページで1からビルドしようとしたが、情弱かつ我慢強くない自分は「もっとラクな方法は無いものか…」と挫折

余計なものが入ってゴチャゴチャするのが嫌だけど仕方ない、anacondaを入れてconda install opencvで一発で入れるか…と思い、pyenvでanaconda3環境を入れようとしたところ、以下のエラーが出て入らない…(minicondaも試したが同じエラーでコケる)

こちらの記事いわく、anaconda/minicondaはpython3.4までしか用意されていないらしい。ツライ…

そこで、上記の記事に入れているBerry Condaなるものを入れました。

そこでおもむろに conda install opencvするとまたコケるのですが、こちらの記事を参考にして conda install -c conda-forge opencv すると入った。

いやー、めでたしめでたしとしたかったのですが、そうは問屋がおろさん

import cv2するとたしかにopencvの3.1.1が入っていることが確認できるのですが、いざコードを実行すると以下のような謎のエラーが出る

なんだかよくわからないが、どうやらconda installのopencvはダメだから公式からビルドしろと書かれている気がする。マジかよ… RaspberryPiでopenCV(with Python3.6以上)入れるのどんだけツライんだよ…


解決策

さらに別の方法を探し、すがるような気持ちでこちらを参考にして以下を実行

動作確認環境がPython3.4となっているが気にしない気にしない、うごけばいいんや…

make -j4で90minかかるとなっているが、最初のapt-get updateとdist-upgradeでも1hくらいかかった。長い。

最後のmakeするところで -j4 オプションを付けると自分の場合延々に処理が終わらなかったが、-j4を取ってmakeだけすると完了する。

$ sudo apt-get update #ここもそこそこ長い

$ sudo apt-get dist-upgrade #ここもそこそこ長い
$ sudo apt-get install build-essential cmake pkg-config
$ sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
$ sudo apt-get install libxvidcore-dev libx264-dev
$ sudo apt-get install libgtk2.0-dev
$ sudo apt-get install libatlas-base-dev gfortran
$ cd ~
$ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.1.0.zip
$ unzip opencv.zip
$ wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.1.0.zip
$ unzip opencv_contrib.zip
$ cd ~/opencv-3.1.0/
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.1.0/modules -D BUILD_EXAMPLES=ON ..
$ make #注! -j4 とすると延々に処理が終わらない。ここも90分くらいかかる
$ sudo make install
$ sudo ldconfig

自分の環境ではこれでようやく目的を達成した。




<その他参考>