HAVRMの空空活動誌

「空空」は「うつらうつら」と読むらしいです.まぁ常に寝不足なもんで...

Raspberry Pi Zero + IMX327で写真・動画撮影

こんにちは,HAVRMです.

低照度カメラIMX327を買ったのでRaspberry Pi Zeroで試してみました.使い方自体は他のRaspberry Piと同じだと思うので参考にしてもらえると嬉しいです.さらに前回のブログでやったDisplay HAT Miniと合わせて使ったときの話も載せます.

Raspberry Pi Zero + Display HAT Mini + IMX327での撮影の様子

havrm.hatenablog.com

注意:この作業は2023/6/1に作業した内容です.バージョンアップ等で変わる可能性があります.

IMX327とは

「IMX327」はSonyが出している低照度カメラ「STARVIS」の一種です.Arducamというメーカが「STARVIS」のカメラモジュールをいくつか出している中で,感度が高く,安いものを選びました.ほかには「IMX290」や「IMX462」が売られています.「IMX462」が一番性能がいいですがその分高く(¥9,944@Switch Science),フレームレートやわずかに画素数が低い以外同じ性能の「IMX327」がほぼ半額(¥4,972)なのでこちらを選びました.買ったものは以下のものです.なお同じページに各センサの比較表があります.

Arducam IMX327搭載 Raspberry Pi用低照度カメラwww.switch-science.com

実際に使ってみる

カメラとの通信ケーブルについて

モジュールのコネクタは22pinであり,あらかじめRaspberry PiのModel AやB用に15pinへの変換ケーブルが付属していますが,Raspberry Pi Zero等の22pin用のケーブルは付属していませんでした.手持ちでもなかったので,ケーブル長が短いものの中で,Amazonですぐ届くケーブル(10本入り)を購入しました.

「/boot/config.txt」の編集

最新のRaspberry Pi OSでは「libcamera」系のコマンドを使うことでいろいろなセンサの画像が撮れます.そうするためにあらかじめ「/boot/config.txt」にセンサ情報を入力する必要がありますが,Arducamの公式サイトでは「dtoverlay=imx327」と追記するように書いてありますが,それでは動きませんでした(泣).

docs.arducam.com

いろいろケーブルの接触Raspberry Piを変えてみたりした結果,この記述内容が間違っていることがわかりました.公式サイトでは「IMX290とIMX327は同じドライバーなので"dtoverlay=imx290"と記載する」と書いてありました orz

www.raspberrypi.com

ということで「dtoverlay=imx290, clock-frequency=74250000」と記入し,再起動するときちんとカメラを認識しました.
なお念のため「gpu_mem=128」も記入しておいた方がいいと思います(どっかのサイトを見てやったのですが,覚えてないです...).

実際のコマンド

ただ,プレビュー画面はエラーになってそのままだと表示できなかったので,「—qt-preview」オプションをつけた次のコマンドで実行しています.

$ libcamera-hello --qt-preview -t 0 #プレビュー表示をするだけ

なお撮影対象は「ホビーガチャ バック・トゥ・ザ・フューチャー デロリアン【タイムマシン】」の「デロリアンバック・トゥ・ザ・フューチャー Part.2)」です.
www.takaratomy-arts.co.jp

実際の写真

次のコマンドで撮影しています.このとき,「/boot/config.txt」に「clock-frequency=74250000」は記入していません.これは後述します.

$ libcamera-jpeg --qt-preview -o test.jpeg

ライトの元(オリジナルです)

IMX327で撮った写真(明かり有り)

(切り抜き画像)

IMX327で撮った写真(明かり有り,切り抜き)

比較対象(iPhone 13 Proの超広角レンズ,いつも通り切り抜き後画質を落としています.)

iPhone 13 Pro 超広角レンズでの写真(明かり有り)

ライトなし(ノートPCディスプレイの明かりのみ,オリジナル)

IMX327で撮った写真(明かりなし)
IMX327で撮った写真(明かりなし,切り抜き)

比較対象(iPhone 13 Proの超広角レンズ,いつも通り切り抜き後画質を落としています.)

iPhone 13 Pro 超広角レンズでの写真(明かりなし)

カメラの性能がいいiPhoneと比較してもそん色ない画像が撮れています.まだ露光時間等設定していないのでそれ次第ではもっと撮れると思います.

実際に取った動画

次のコマンドで撮影しています.カメラの向きのせいで動画の向きがおかしくなってます…

$ libcamera-vid --qt-preview -t 5000 -o test.h264

youtu.be

Pimoroni Display HAT Miniと合わせて使う場合(「clock-frequency=74250000」について)

Raspberry Pi Zero + IMX327のみでは「clock-frequency=74250000」の設定をした状態でうまく通信できていました.この時プレビュー画面は15FPSで安定して更新できていました.ただ,Display HAT Miniと一緒に使ったところ次のように画像が荒れました.

IMX327で撮った写真(明かり有り,荒れた写真)

どうも処理能力か通信能力が足らず,うまくいかなかったようです.そのため,上記のサイトにあった遅いほうの「clock-frequency=37125000」に変更したところ荒れずに写真が取れましたが,プレビュー画面は5FPS~15FPSで不安定になりました.なお「clock-frequency=37125000」を記入しない場合でも同じ状態なので,初期設定は「clock-frequency=37125000」になるようです.上記の写真等はこの「clock-frequency」の設定をしない状態で,Display HAT Miniで確認しながら撮影しました.

最後に

いかがでしたか.ネットでもあまり使っている人のいない(中途半端だからでしょうか...)IMX327を実際に使ったレビューになります.これで月とかが撮れないかいろいろ試していきたいと思います.