(第4回)目のかすみにはマニュアル点眼薬
こんにちは!京セラコミュニケーションシステムの大山です。
前回の投稿からだいぶ空いてしまいすみません!再開いたします!
前回丁度いいサイズの広角レンズUSBカメラを入手しまして、オートフォーカスで調整の手間がかからないのでこれでいける!と思ったのもつかの間、画像取得すると時々フォーカスがあってない状態で保存されてしまう問題が発生。そこまで頻度は多くないですがデモ中にぼやけてしまうとAIも困ってしまうということでこれを何とかしたい!ということで第4回スタートです!
連載記事一覧
デモ機製作の舞台裏を覗く - ラズパイとNode-REDでポータブルなデモ機を作る(第1回)
デモ機製作の舞台裏を覗く - ラズパイとNode-REDでポータブルなデモ機を作る(第2回)"バッチ検査ってそういうこと!?"
デモ機製作の舞台裏を覗く - ラズパイとNode-REDでポータブルなデモ機を作る(第3回)"救世主あらわる・・だが?"
デモ機製作の舞台裏を覗く - ラズパイとNode-REDでポータブルなデモ機を作る(第4回)****"目のかすみにはマニュアル点眼薬" ★本記事★
この記事の対象者
Node-REDでRaspberryPiのGPIOを制御したい方
Node-REDのダッシュボードを使ってみたい方
ラズパイでリレー制御してみたい方
フィッシャーテクニックを動かしてみたい方(もう少々お待ちを・・・)
オートがあるならマニュアルもできるのでは
オートフォーカスであわせる事ができるのであればマニュアルで設定もできるんじゃないかと思い探してみたところV4L2(VideoForLinux2)というコマンドでUSBに挿したカメラを操作できるかもしれない事が分かったので試してみることに
v4l2-ctl -L
上記コマンドで接続しているカメラの設定できるパラメータ一覧を取得できます。こちらを実行してみたところ
何かいろいろと出てきました。
一つ例を上げますと
briteness 0x00980900(int) : min=-64 max=64 step=1 default=0 value=0
ブライトネスの操作で最小-64から最大64まで1づつ操作でき初期値は0で現在の値も0という意味合いみたいです。
そして問題のフォーカス設定ですが
・forcus_automatic_continuousでマニュアル/オート切替
・forcus_absoluteでフォーカス調整
できそうですのでVLCメディアプレイヤーを開いてフォーカス調整ができるか試してみることに
※Raspberry Pi OS(64-bit)又は(32-bit)のOSを選択したらデフォルトでソフトが入っています(2023/9時点)
※VLCメディアプレイヤーは再生タブから再生を選びキャプチャーデバイスタブのビデオデバイス名を/dev/video0を選択して再生ボタンを押すとカメラ画像が再生されます。
フォーカス設定をマニュアルに変更
v4l2-ctl -d /dev/video0 -c focus_automatic_continuous=0
フォーカス設定がマニュアルに変更されていることを確認
v4l2-ctl -d /dev/video0 -C focus_automatic_continuous
フォーカスの現在値を確認
v4l2-ctl -d /dev/video0 -C focus_absolute
※USBポートに挿したカメラは大抵/dev/video0かと思いますが変更できない場合はv4l2-ctl --list-devicesのコマンドで接続しているカメラの一覧から確認してみてください。
フォーカスの値は112なのでとりあえず500に設定して見え方が変わるか確認します。
フォーカスを500に設定します。
v4l2-ctl -d /dev/video0 -c focus_absolute=500
フォーカスの現在値を確認
v4l2-ctl -d /dev/video0 -C focus_absolute
※少しわかりにくいですが値の入力の時は-c(小文字)、値の確認は‐C(大文字)となります。
画面がぼやけたのでカメラのフォーカス設定ができそうです。
最後にオートに戻してみてフォーカスが戻るのか確認してみます。
v4l2-ctl -d /dev/video0 -c focus_automatic_continuous=1
フォーカスがもどりました。
数値も最初の112になっています。
node-redのusbcameraノード撮影前後でもフォーカスに変動がないか確認したところ
フォーカス固定されていることを確認出来たのでマニュアルで設定できそうです。
## まとめ
V4L2(VideoForLinux2)を使えばマニュアル切替と設定ができ、設定値も固定してくれそうということが分かったのでfocus以外の設定項目も含めてNode-REDのダッシュボード上からexecノードでコマンドを実行してカメラ調整できるように今後していきたいと思います。
ということで今回はここまで、次回はオフライン筐体の製作と動作テストの風景のご紹介をしていきたいと思います。
次回「イメージを形に!!」お楽しみに。