ラズベリーパイとカメラの使い方をまとめてみました。初心者の方でも簡単に撮影できます
Pythonとコマンドのどちらでも写真・動画撮影が対応できる旨を紹介して、最後には画像認識まで実施してみます。
ラズパイでカメラの使い方!Pythonとコマンドの基本・応用例を紹介
ラズベリーパイをカメラに取り付けると多くのことができるようになります。
「写真」「動画」「画像認識」「物体検出」…など様々な用途で活躍可能です。
またラズパイならばカメラをPython・コマンドから制御できるので自由にカスタマイズできるのも非常に便利です。
ラズパイ+カメラの基本的な使い方から応用まで紹介していきます
ラズパイのカメラで写真撮影して画像を保存する
まずは「写真」を撮るコマンド・Pythonのプログラムを紹介します。
ラズパイで写真撮影するコマンド
ターミナルを開いて、下記コマンドを入力することで「test.jpg」という画像が保存されます
デフォルト設定のため「2592×1944」ピクセルの500万画素で写真が保存されます。
初期状態のターミナルで実行した場合は「/home/pi」の箇所に写真が保存されているはずです。
ラズパイで写真の解像度を変更したい場合
写真の解像度を変更したい場合は「-w」「-h」の後に数字を入れることで任意に変更できます。
下記は「640×480」の解像度で「test.jpg」という名前で写真が保存されます
ラズパイで写真撮影するPythonのプログラム
「picamera」のライブラリを使って対応します。(あと「time」のライブラリも使用します)
Python含めてデフォルトでラズパイに入っていますので特にインストール作業は必要ありません。
1 2 3 4 5 6 7 8 |
import time import picamera with picamera.PiCamera() as camera: camera.resolution = (640, 480) camera.start_preview() time.sleep(2) camera.capture('test.jpg') |
上記Pythonを動かすことで「640×480」の解像度で「test.jpg」という名前で写真が保存されます。
プログラムが入っているフォルダに写真が保存されます。
ラズパイのカメラで動画撮影する
次に「動画」を撮るコマンド・Pythonのプログラムを紹介します。
ラズパイで動画撮影するコマンド
ターミナルを開いて、下記コマンドを入力することで5秒間の「test.h264」という動画が保存されます
もし解像度を調整したい場合は写真の時と同様に「-w」「-h」を使えば大丈夫です。
上記コマンドでは「640×480」の解像度で動画が保存されます。
H.264をMP4に変換する方法
今回紹介したラズパイの動画撮影のコマンドではH.264というフォーマットで保存します
H.264だと(デフォルトの)WindowsのPCに持って行った場合、動画ファイルを再生ができません。
しかしラズパイならば簡単に変換可能です。下記コマンドで「gpac」パッケージをインストールします
「gpac」をインストール後は「MP4Box」という下記コマンドでh.264からmp4に変換が可能です。
先ほど保存した「test.h264」ファイルを「test.mp4」に変換できます
ラズパイで動画撮影するPythonのプログラム
Pythonで動画撮影も「picamera」のライブラリを使って対応します。
1 2 3 4 5 6 7 8 9 10 |
import time import picamera with picamera.PiCamera() as camera: camera.resolution = (640, 480) camera.start_preview() time.sleep(2) camera.start_recording('test.h264') camera.wait_recording(10) camera.stop_recording() |
上記プログラムを動かすことで「640×480」の解像度で10秒間動画撮影され、「test.h264」という名前で動画が保存されます。
ラズパイのカメラで画像認識させる
基本的な写真撮影・動画撮影のコマンド・pythonを紹介することができました。
これからは「応用編」ということでラズパイとカメラで(リアルタイムの)画像認識を行っていきます。
ラズパイで画像認識させるにあたり色々なアプローチが考えられますが…
筆者はエッジAIデバイスのCoral USB Acceleratorで(楽して)画像認識する方法を紹介します。
ラズパイで画像認識した応用例
今回は「リアルタイムで物を画像認識」させますが、他の画像認識の応用例も紹介しときます。
よろしければこちらもご覧ください。
人の動作を検出させて、姿勢を推論させた事例
人の動作を検出!Edge TPUとPosenetで姿勢を推論してみる
GPIO入力からカメラ撮影+物体検出させた事例
Pythonと機械学習ができること 画像認識を工場の事例で試してみた
画像認識させた情報からGPIO出力させた事例
AIと画像認識の事例!Pythonでプログラミングして試してみた
リアルタイムで画像認識した情報を学習させた事例
GoogleのAIの活用事例!Edge TPUのデモを自前で作ってみた
ラズパイでリアルタイムの画像認識を行う準備
今回はエッジAIデバイスのUSBアクセラレータを使いますのでライブラリ・サンプルプログラムを用意していきます
正式な手順はUSBアクセラレータのCoral公式ページをご覧ください(リンク先はこちらから)
Coral USB Acceleratorのインストール方法・基本的な使い方に関しては下記記事を参考にお願いします。
Edge TPU APIをダウンロード・インストールする
下記コマンドを実行してEdge TPUのAPIのサンプルをダウンロード・インストールしていきます
インストールが終われば「/usr/share/edgetpu/examples/」の箇所にサンプルプログラムが入っています。
画像認識に必要な機械学習のモデルとラベルをダウンロードする
CoralのHPに行って今回の画像認識に必要なモデルとラベルをダウンロードします。(リンク先はこちらから)
今回は「Image classification」の「MobileNet V2 (ImageNet)」のモデルとラベルを入手します。
ダウンロードしたら「/usr/share/edgetpu/examples/」の直下のフォルダの「models」に入れておきます。
Pythonでリアルタイムで画像認識を行う
画像認識を行うプログラムは既にメーカCoralから用意されていますので、コマンドで実行するだけです。
今回はPythonで書かれている「classify_capture.py」を使ってリアルタイムの画像認識を行います。
興味ある方はプログラムを開いて見ると良いと思います(勉強にもなると思います)。
筆者の環境のコマンドでは下記を実行して、無事画像認識が出来ました。
リアルタイムの画像認識でラズパイの性能比較した動画
ただ結果の動画を貼るだけでは面白くないので、最新のラズパイ4(USB3.0)とラズパイ3(USB2.0)で比較しました。
テスト環境は下記です。
OS:Raspbian Buster with desktop and recommended software(September 2019)
試験プログラム:classify_capture.py
接続デバイス:Google Coral Edge TPU USB Accelerator
結果は「ラズパイ4(USB3.0)…推論時間_5ms程度」「ラズパイ3(USB2.0)…推論時間_13ms程度」でした。
もともとEdgeTPUで高速に画像認識していましたが、ラズパイ4で更に2倍上高速化しています
詳細は下記Youtubeの動画を参考にお願いします。
ラズパイのカメラを動かす方法
基本・応用例まで紹介しましたが、これからラズパイ+カメラを始める人のために初期設定を説明させていただきます。
ラズベリーパイにカメラの取り付け方
ラズベリーパイのカメラの取り付けるのは非常に簡単です。
最近は1000円程度で売られているので非常におすすめです。
実際に購入しますとカメラとケーブルが入っていますので接続するだけです。
難しいことは必要ありません。
カメラ側にケーブルを挿してコネクタをはめて…
ラズベリーパイ側も「CAMERA」のシルクがあるコネクタに
黒いコネクタ側を少し持ち上げてから銀色の端子が見える方を(Micro)HDMI側にして差し込めば完成です。
ケーブルを差し込んだら、黒いコネクタは押し込んでおきます。これで取り付け完了です。
ラズベリーパイのカメラの起動方法
ラズパイのカメラはデフォルトでは動作しませんので、設定を変更する必要があります。
但し変更といっても簡単です。「設定」⇒「Raspberry Piの設定」を選択します。
あとは「インターフェイス」のタブで「カメラ」を有効にしてOKをクリックします。
再起動後にはカメラが使えるはずです。
ラズパイのカメラはケース付きがおすすめです
あと細かい点ですがケースがないとカメラの固定が結構難しいです。
筆者は洗濯ばさみで一時的に代用していますが、かなり見栄えが悪いです…。
もしラズパイのカメラの購入を検討している方はケース付きをおすすめします。
まとめ・感想
ラズベリーパイ(raspberry pi)にカメラは写真・動画撮影だけでなく、「画像認識」含めて色々なことに応用可能です。
ぜひラズパイを所持している方はカメラも試してみてください
コメント
ケースからのカメラモジュールの外し方を教えてください。