2021年11月28日日曜日

本書の演習をウェブカメラで実行する方法

1. はじめに

本書では、Raspberry Piの公式カメラモジュールを用いた電子工作の例をいくつか紹介しました。 第6章のカメラ台、第7章の画像処理、第8章の六脚ロボットへのカメラの搭載などです。

本ページでは、カメラモジュールではなく市販のウェブカメラで演習を行う方法を紹介します。こちらで動作検証したカメラはロジクール社のC270およびC920です。

本ページでは「××社の○○と言うカメラで動くか」という質問や「××社の○○と言うカメラで動くようにして欲しい」という要望には応えることができません。

カメラが異なることによるそのようなトラブルを避けるために、本書ではRaspberry Pi専用のカメラモジュールを使用する方針としたのだったからです。 本ページは上級者向けのサービスという位置づけとしますのでご理解ください。

ところで、2022年2月、Raspberry Pi OS Bullseye の 64-bit 版が正式にリリースされました。この 64-bit 版 OS では、本書でこれまで用いていたカメラモジュールを用いるプログラムをそのまま利用することができません。カメラモジュールの利用法が大きく変わったためです(32-bit 版 OS ではこれまでどおり利用可能)。 本ページの「本書の演習をウェブカメラで実行する方法」を用いると、「64-bit 版 OS でカメラモジュールを用いた演習」が可能になる、という副作用があります。ただし、この方法は準備がやや面倒ですので、カメラモジュールを用いた演習を行いたい方はこれまで通り 32-bit 版 OS の利用をお勧めします。

2. 手順

それではターミナルアプリケーションLXTerminalを開き、本書のサンプルファイル(「bb2-」で始まるファイル)が存在するディレクトリに移動してください。 サンプルファイルをユーザーpiのホームディレクトリに展開した方は移動の必要はありません。bluebacksディレクトリに展開した方は下記のコマンドを実行するのでした。
cd bluebacks
次に、下記の3つのコマンドを順に実行して、必要なファイルのダウンロードと展開を行ってください。コマンドはコピー&貼り付けで実行することを推奨します。展開後はダウンロードした圧縮ファイルは不要となるので削除しています。
wget https://github.com/neuralassembly/raspi/raw/master/raspi2-webcam.zip
unzip raspi2-webcam.zip
rm raspi2-webcam.zip
なお、展開されるファイルの名前は既存のサンプルファイルとは異なりますので、サンプルファイルが上書きされることはありません。展開により現れるファイルは下記の通りです。ファイル名の末尾付近に全て「-webcam」がついていることに注意してください。
bb2-06-03-stream-webcam.sh
bb2-07-01-preview-webcam.py
bb2-07-02-binary-webcam.py
bb2-07-03-cannyedge-webcam.py
bb2-07-04-circle-webcam.py
bb2-07-05-face-webcam.py
bb2-07-06-tracking-circle-webcam.py
bb2-07-07-tracking-face-webcam.py
bb2-07-08-tracking-circle-pca9685-webcam.py
bb2-07-09-tracking-face-pca9685-webcam.py
あとは、以下に従って実行します。

3. 実行

実行に関する注意を、いくつか例を挙げながら解説します。 例えば、本書 p.224 に、下記のコマンドを実行するよう指示があります。
sh bb2-06-03-stream.sh
このファイル「bb2-06-03-stream.sh」に対しては、ウェブカメラ対応の代替ファイル「bb2-06-03-stream-webcam.sh」が存在します。 そのような場合、上記コマンドの代わりに下記のコマンドを実行して欲しい、ということです。
sh bb2-06-03-stream-webcam.sh
同様に、p.239 には下記のコマンドを実行するよう指示があります(Python3 用のコマンドに変更してあります)。
python3 bb2-07-01-preview.py
このファイル「bb2-07-01-preview.py」に対しては、ウェブカメラ対応の代替ファイル「bb2-07-01-preview-webcam.py」が存在します。 そのような場合、上記コマンドの代わりに下記のコマンドを実行して欲しい、ということです。
python3 bb2-07-01-preview-webcam.py
以上のように、実行するファイルを書籍から読み替える形でコマンドを実行してください。

0 件のコメント:

コメントを投稿