自宅内の見守りカメラをアップデートした:③構成を変更しよう編:ラズパイカメラモジュールのマニュアル撮影を極める…!
はじめに
本記事はこちらのパート③にあたります。
もし内容に興味を持たれましたら、他のパートもご覧頂けると幸いです。(順次執筆中…)
システム構成の変更
ハードウェアは据え置きで、ソフトウェアのみ構成を変更します。
パフォーマンス改善:画像取得方法の変更
カメラモジュールを使って単純に静止画を取得したいだけなので、標準コマンドを自作プログラムの中から呼び出して使うようにします。
Before | After |
---|---|
Opencv-python | ラズパイ標準コマンドraspistill
|
取得画像の明るさ適正化:画像取得設定の固定化とキャリブレーションモードの導入
画像取得設定を固定化するには、raspistill
のオプションで各種自動調整を切りつつ、必要なパラメータを全て指定する必要があります。
ここで言うところの自動調整とは、オートホワイトバランス(awb)と自動ゲインコントロール(agc)です。
それらをoffにすると、下記の項目を指定する必要があります。公式ドキュメントを見ても端的にまとまっていなかったため、どのオプションを与えれば良いかを明確にするまでが大変でした…。
オプション | 内容 |
---|---|
-ss | シャッター開放時間 |
-br | 画像の明るさ |
-awbg | ホワイトバランス |
-ag | アナログゲイン |
-dg | デジタルゲイン |
これをいちいちトライアンドエラーするのは辛いです。
そこで同じくraspistill
のオプションで実現できる、自動調整結果の標準出力-set
オプションを使います。
-set
オプションを使うと以下のようなカメラ設定値が標準出力されます。何行も出力されてきますが、基本的には一番最後の行が調整完了済み結果となります。
そこから次の対応付けをして各オプションに値を与えればOKです。
raspistill -set
Camera control callback cmd=0x48435045mmal: Exposure now 499982, analog gain 1075/256, digital gain 256/256
mmal: AWB R=314/256, B=708/256
Camera control callback cmd=0x48435045mmal: Exposure now 499982, analog gain 1075/256, digital gain 258/256
mmal: AWB R=317/256, B=698/256
Camera control callback cmd=0x48435045mmal: Exposure now 499982, analog gain 1130/256, digital gain 256/256
mmal: AWB R=309/256, B=729/256
オプション | 標準出力結果との対応 |
---|---|
-ss | Exposure now の値をそのまま与える |
-awbg | AWB R, Bをそれぞれ小数に直して与える。例: -awbg 1.3, 1.7
|
-ag | analog gainを小数に直して与える |
-dg | digital gainを小数に直して与える |
これにより、一度自動調整を実行して取得したカメラ設定を使って連続して静止画を撮影することができます。
awb, agcを行う必要がなくなるため、撮影のインターバルを狭めることもできるようになります!
最終的な撮影コマンドを以下に示しておきます。xxxは適宜設定する値です。
raspistill -n -awb off -ex off -ss xxx -md xxx -o xxx.jpg -br 50 -awbg xxx,xxx -ag xxx -dg xxx -t xxx
また自動調整時の実行コマンドも同様に示しておきます。
raspistill -set -br 0 -ex xxx
ここで、-ex
は露出設定です。auto
やnight
など、シーンごとの設定が用意されているため、ここは使用する時間帯等に応じて変更できるようにしたほうが良さそうです。
システム構成図の落書き
以上を踏まえたシステム構成図の落書きを示します。
前回記事で明言したようにGo言語決め打ち!としたので、UIを配信するHTTPサーバと並行して動く撮影用goroutineを用意し、ユーザ操作によって撮影設定の自動調整(calibration)が指示されたときのみ、撮影設定を上書きするような構成とします。
このあたりの仕組はちょうど学習していたGo言語を使ったapi構築を応用してみました。
おわりに
raspistill
のマニュアル撮影設定方法を調べるのが一番大変でした…。
なんとかシステム構成が決まりましたので、いよいよ実装→稼働です…!!
Author And Source
この問題について(自宅内の見守りカメラをアップデートした:③構成を変更しよう編:ラズパイカメラモジュールのマニュアル撮影を極める…!), 我々は、より多くの情報をここで見つけました https://qiita.com/tenkoh/items/6ff8fe08d2e660accba5著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .