Help us understand the problem. What is going on with this article?

Raspberry Pi に Opencv3.4をinstallしてみた

More than 1 year has passed since last update.

はじめに

Raspberry Pi に Python3.6をinstallしてみた の続きです。
Raspberry Pi に OpenCVをinstallしました。

後々で動画を保存する機能のみ使うので必要最低限のbuildをしています。

方法

⑴ 必要なパッケージをインストール

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

⑵ opecv をdownload

wget https://github.com/opencv/opencv/archive/3.4.3.zip
unzip 3.4.3.zip
cd ./opencv-3.4.3

⑶ opecv をinstall

$ mkdir build
$ cd build

$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_OPENCL=OFF -D WITH_CUDA=OFF -D BUILD_opencv_gpu=OFF \ 
-D BUILD_opencv_gpuarithm=OFF -D BUILD_opencv_gpubgsegm=OFF \ 
-D BUILD_opencv_gpucodec=OFF -D BUILD_opencv_gpufeatures2d=OFF \ 
-D BUILD_opencv_gpufilters=OFF -D BUILD_opencv_gpuimgproc=OFF \ 
-D BUILD_opencv_gpulegacy=OFF -D BUILD_opencv_gpuoptflow=OFF \ 
-D BUILD_opencv_gpustereo=OFF -D BUILD_opencv_gpuwarping=OFF \ 
-D BUILD_DOCS=OFF -D BUILD_TESTS=OFF \ 
-D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF \ 
-D BUILD_opencv_python3=ON -D FORCE_VTK=ON \ 
-D WITH_TBB=ON -D WITH_V4L=ON \ 
-D WITH_OPENGL=ON -D WITH_CUBLAS=ON \ 
-D WITH_FFMPEG=ON ..

$ sudo make -j 4
$ sudo install
$ sudo ldconfig

なぜこんなにコマンドが長いですが、sample codeやGPUの設定をoffにして必要のないlibファイルを作成しないようにするためです。(詳細はInstall OpenCV-Python in Fedora:Configuring and Installing)

で、pythonベースでcv2.VideoCapture(0)を使って動画を起動して、avi形式で保存するappを作成を考えています。そのため、-D BUILD_opencv_python3=ON -D WITH_FFMPEG=ON のフラグが必須です。 ないと、画像(静止画)の保存はできますが動画再生はできないです。

もしmakeが進まないと思ったら。。。

また、このまま make すると opencv_python3のlibファイル生成時にロード中のままで止まってしまいます。解消法としてはRaspberryPi自体のswap領域を拡張することです。

ページを開く
$ sudo vim /etc/dphys-swapfile
dphys-swapfile
# set size to absolute value, leaving empty (default) then uses computed value
#   you most likely don't want this, unless you have an special disk situation
# 1024~2048 に数値変更
CONF_SWAPSIZE=1024
swap領域を更新
$ sudo systemctl stop dphys-swapfile
$ sudo systemctl start dphys-swapfile
swap領域を確認
$ free -h
              total        used        free      shared  buff/cache   available
Mem:           874M        147M        139M         25M        588M        643M
Swap:          1.0G        1.0M        1.0G

⑷ numpyをインストール

$ sudo pip3 install numpy

(5) 確認

$ python3
Python 3.6.8 (default, Jun 17 2019, 16:55:54) 
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> import cv2
>>> cv2.__version__
'3.4.6'
>>> 

おわりに

(3) で cmakeするときの設定ですが、raspberrypiの環境と自分の使いたい機能を確認してから-D XXX
とセットすると良いです。今使っているmicroSDの容量が16GBしかないので、何もしないと要らない機能までlibファイルが作成されるのですぐにfullfull:ice_cream:になってしまいます。

reference

Required Packages
Raspberry Pi CameraモジュールとOpenCVで人間の顔を認識する
Installing OpenCV 3.4.3 on Raspberry Pi 3 Model B+
OpenCVのVideo Writerではきだした動画が再生できない。Ubuntu環境です。
ラズパイにOpenCVをインストールした時に困った事とその解決策
ラズパイ(Raspbian Jessie)とスワップメモリ容量の変更(環境設定の続き)

satsukiya
キュレーションサイト作成中
http://featurepoints.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away