初期設定のまとめ 【OpenCV & Raspberry Pi】

Python

新たに Raspberry Pi の設定を行ったとき、よく使われるパッケージの確認方法、インストール方法をまとめておきます。
Linux や基板のバージョンなど、初期設定時によく使われるコマンドについても集約しておきます。
OpenCV 等を使うことを想定しています。

環境: Raspberry Pi 4、または 3 (bullseye)

起動用 SD カードの作成

起動用 SD カードの作成方法は以下のリンクにまとめています。速攻で終わらせましょう。
・ 起動用SDカードを設定する 【Raspberry Pi】

Raspberry Pi のバージョンの確認方法

最近は、Raspberry Pi の世代が変わるごとに、デフォルトでインストールされているパッケージが大きく変更になっています。また、各プログラムのバージョンの組み合わせによっては動く/動かないといった現象も生じています。そこで、Linux や Raspberry Pi のバージョンなどを確認するコマンドを集約しておきます。

なお、以下の各コマンドの末尾に ” > 220118_lsb_release.txt” 等を加えると、出力をテキストで書き出しておくことができます。SDカード設定時の初期状態で何が入っていたか、安定動作時に何が入っていたかなど、日付つきで書き出しておくと、後日、思い出せる/トレースできるため、安心です。

Linux のバージョンの確認方法

Linux のバージョンに関連する情報を確認する場合は、以下のコマンドを実行してください。

$ lsb_release -a 

→ Distributor ID: Raspbian, Codename: bullseye、または buster 等となっていると思います。
ハードウェアではなく、入っているソフトウェアの情報です。

基板のバージョンの確認方法

Raspberry Pi の基板のバージョンを確認したい場合は、以下を実行してください。

$ cat /proc/cpuinfo 

→ 末尾に “Model : Raspberry Pi XX ” 等の表示がされ、確認できると思います。
こちらは、OS ではなく、Raspberry Pi の基板などのハードウェア情報です。

インストールされているソフトウェアの確認方法

方法1:パッケージ一覧の確認コマンド

すでにインストールされているパッケージ一覧は、以下のコマンドで確認できます。

$ dpkg -l 

※ [space] キーを押すと、次のページが表示されます。
※ [q] キーで、表示のモードから抜けることができます。
※ 大量に表示されると思いますので、”dpkg -l > 220120_dpkglist1.txt” のようにすると、”/home/pi” フォルダの中に、テキストで書き出しておくことができます。
Raspberry Pi を使っていると、最初から入っていたソフトウェアだったのか、後から自分でインストールしたソフトウェアなのか、わからなくなってくることもあると思います。日付つきのテキストとして書き出しておくと便利です。(コマンドも忘れてしまいますし。)

方法2:pip インストールされているプログラムの確認

“pip install” を使ってインストールされているプログラムについては、以下のコマンドで確認できます。(上記のコマンドでは表示されません。)

$ pip list

※ 上記と同様に、”pip list > 220120_pip_list1.txt” のようにすると、”/home/pi” フォルダの中に、テキストで書き出しておくことができます。
※ なお、Windows の Anaconda 環境を使っている場合も、OS は異なりますが、”pip list”、”conda list” のコマンドが動くと思います。

初期状態で入っているプログラムの確認

よく使われるパッケージをピックアップしてみます

上記の Raspberry Pi bullseye の初期状態で、すでにインストールされているパッケージをいくつか抜粋すると、以下となっています。確認してみてください。(2022年1月時点)

・ python3 (3.9.2-3)  … Python3 がすでにインストールされていることがわかります。なお、以前の buster でインストールされていた Python2 は、bullseye 以降はなくなっています。初期状態では Python3 のみの対応となったことがわかります。
・ i2c-tools (4.2-1+b1)  …  リアルタイムクロックなどの設定で使う I2C 設定用のツール i2c-tools についても、すでに入っています。インストールが不要になっています。
・ python3-numpy (1:1.19.5-1)、python3-pygame (1.9.6+dfsg-4+b1)、python3-tk:armhf (3.9.2-1) … Python の数値計算、機械学習関連でよく使われている numpy、pygame、また、tkinter も入っています。特に設定をする必要もなさそうです。
・ python3-flask (1.1.2-2) … ”dpkg -l” 側のリストを見ると、flask が入っています。”pip list” のリストをみると、Jinja2 がインストールされています。Raspberry Pi の初期設定のままで、Flask 版の Web サーバーが動くようになっています。活用したほうが便利そうです。

※ 以前の Raspberry Pi (Buster より前)では、SD カードを準備した際、個々のパッケージのインストール作業が必要でした。しかし、bullseye 以降では、よく使われるパッケージについてはすでにインストールされています。過去、数時間かかっていたような初期設定の手間がなくなり、かなり改善されました。
※ もし、古い OS を使っており、python3, pygame などがリストにない場合は、個別にインストールしましょう。あるいは、支障がなければ、起動用の SD カードを作り直して、Raspberry Pi OS を最新版に更新してしまいましょう。

OpenCV のインストール方法

Raspberry Pi の bullseye では、よく使われている多くのアプリはデフォルトでインストールされるようになりました。
しかしながら、OpenCV は初期設定ではインストールされていないと思います。
画像を扱ったり、USB カメラを使う場合、ほぼ必要になると思いますので記載しておきます。

今後は Python3 が標準になりますので、Python3 から OpenCV が実行できるようにします。

OpenCV の関連パッケージのインストール

まず、OpenCV の関連パッケージをインストールします。私の環境では、下記の手順で一部、エラーが出ましたが、そのままインストールを続けていったところ、OpenCV が動くようになりました。

$ sudo apt-get install libhdf5-dev libhdf5-serial-dev libhdf5-100
$ sudo apt-get install libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5
$ sudo apt-get install libatlas-base-dev
$ sudo apt-get install libjasper-dev

OpenCV のインストール

つぎに、Python3 で動くように pip から OpenCV をインストールします。

$ sudo pip3 --default-timeout=1000 install opencv-python

→ とくにエラーなどが出なければ、これでインストールが完了です!

※ 2022/04 時点での状況
 なお、ご参考までに私の環境(bullseye)で、インストールコマンドを実行した際のエラー表示の要部を書き出しておくと、① libhdf5-serial-dev の代わりに libhdf5-dev を選択した、② libhdf5-100、libqtgui4、libqtwebkit4、libqt4-test は、インストール候補が見つからない、等の表示が出ています。
①に関しては差し替え、②に関してはインストール不要かもしれませんが、実機で確認しきれていません。(私の環境ではインストールのコマンドを実行してしまったため。後日、アップデートしようと思います。)
エラーが出た場合であっても、OpenCV のプログラムを実行してみると、カメラなど特に問題なく動いています。

OpenCV の動作確認

※ インストールが終わったら、OpenCV を使った Python スクリプトなどを実行して動作確認をしてください。もし、USB カメラがあれば、静止画を取得するサンプルコードを以下でまとめています。
・ 静止画を撮影する 【Raspberry Pi】

※ OpenCV を動かしてみて、もし、”RuntimeError: module compiled against API version 0xf but this version of numpy is 0xd” といったエラーが出るようでしたら、以下を実行し、numpy をアップグレードしてみてください。

$ pip install numpy --upgrade

インストールが終わったら

この後、よくある設定については、別途、まとめています。以下を参照してみてください。
・ Raspberry Pi にリモートデスクトップで接続する
・ 固定IPアドレスを設定する 【Raspberry Pi】
・ リアルタイムクロック関連のまとめ 【Raspberry Pi】

★ 私の場合、リモートデスクトップ、固定IPアドレス、時刻用のリアルタイムクロックの各設定は、初期設定後のルーチン作業のようになっています。
最初に、リモートデスクトップでログインできるところまで設定してしまえば、以後は、Windows など普段使うパソコンからログインして設定を進めることが可能となります。空き時間などに、残りの設定作業や技術検討などがリモートで進められるようになるため、とても効率的です。

まとめ

Raspberry Pi で OpenCV などの画像処理、機械学習などを行うにあたり、よく使うパッケージの確認方法、インストール方法についてまとめました。
最新版では、よく使われるパッケージはすでに入っており、かなりの手間が不要になりました。
また、python2 が廃止となり、python3 が標準となっていることがわかります。

他にもラズパイの設定方法などについて、以下の関連リンクにまとめています。
IoT (Internet of Things)などといわれているようにアイディア次第で無限の可能性がある分野です。
もし関心があるようでしたら、参考にしてみてください。

関連リンク
・ 起動用SDカードを設定する 【Raspberry Pi】
・ 静止画を撮影する 【Raspberry Pi】
・ 【Python】 OpenCV の動作確認 コピペ用サンプル 【USB カメラ】
・ すでにインストールされているパッケージを確認する 【Linux】

外部リンク
・ Raspberry Pi4 ModelB 4GB

タイトルとURLをコピーしました