前提・実現したいこと
ラズパイ4に搭載のカメラで撮影した連写画像(RAWデータ)の撮影時間(ミリ秒単位)を取得したいと考えています。時間を取得する目的は、物体の落下挙動を高速で連写撮影し、各画像における物体の移動距離と時間から落下加速度を計算したいためです。下記のコマンドで1秒間に約200枚のRAW画像が取得しています(00001.RAWから連番で取得)。各画像の撮影時刻または経過時間を記録できるような方法がありましたらご教示いただけますとありがたいです。よろしくお願いします。
※Raspberry pi4使用
※カメラ情報
グローバルシャッタータイプカメラ
https://www.inno-maker.com/product/cam-mipiov9281/
※2021.11.19 試したことを追記。
撮影時刻(ファイルの保存時刻ではなく)を確認するには、下記のリンクに書いてあるようなC言語プログラムが必要とのアドバイスをいただきました。v4l2_bufferに撮影時間に関するタイムスタンプ情報が格納されているようですが、具体的にどのようにデータを操作すればいいのかわかりません。わかる方がいましたら教えていただけるとありがたいです。
https://stackoverflow.com/questions/10266451/where-does-v4l2-buffer-timestamp-value-starts-counting
該当のソースコード
timeout 1 ./v4l2_capture_y8
試したこと
回答者様からアドバイスをいただき、下記コマンドで各画像のタイムスタンプを取得しました。
ls --full-time -i | sort -u
結果として、連番のファイルに対して、同じタイプスタンプが2連続ないし3連続で記録されています。(結果を一部抜粋)
200fpsでの高速撮影を実現するために、カメラの仕様として、2ないし3連写してからデータを一気にメモリに転送してファイル保存する(だからファイル保存時刻としては同じタイプスタンプが並ぶのではないか?)ようなことをしているのではないかと思っています。
この結果を用いて加速度を求めてみました。
方法:連続しているタイムスタンプ(x個並んでいるとして)については、これらのタイムスタンプの前後のタイムスタンプの差分をxで割り算して時間⊿を求め、前のタイムスタンプ+Δiを推定タイムスタンプとして使用。
結果:落下加速度は、理論値(9.806 65m/s2)に近い値になっているものもあれば、大きく外れる、あるいはマイナス値になるものもありました。おそらく、補正した後のそれぞれのタイムスタンプ(+Δi)の値が微妙に違っているのではないかと思いますす。
回答2件
あなたの回答
tips
プレビュー