露光時間
はじめに
露光時間(シャッタースピードとも呼ばれる)とは、カメラの1枚の画像が光にさらされる時間のことです。言い換えれば、シャッターが開いている時間の長さです。
Zivid カメラは、カラー画像と点群を生成するために複数の画像を撮影し、露光時間設定は個々の画像の露光時間です。
Zivid 2 |
Zivid 2+ |
Zivid 2+ R |
Zivid 3 |
|
最小露光時間(µs) |
1 677 |
1 677 |
800 |
600 |
最大露光時間(µs) |
100 000 |
100 000 |
20 000 |
20 000 |
Tip
キャプチャ速度計算ツール を参照して、露光時間が総キャプチャ時間にどのように影響するかを確認してください。
強い周囲光源からの干渉
Zivid カメラで画像を撮影する際、一定の時間枠内で光情報をサンプリングします。このシンプルな概念を利用することで、周囲の光によって生じる多くの問題を回避することが可能です。
構造化光センサーは、テレビや照明など多くのユーティリティ機器と同様のサンプリングレートで動作するサンプリングシステムです。蛍光灯は通常、交流電源である送電線に接続されます。EU では、この電源は周波数 50 Hz の正弦波として電圧を生成します。米国などの他の国では、送電線の周波数は 60 Hz です。
フレームレートが 30 fps のビデオカメラを想像してみてください。ヨーロッパの蛍光灯に向けて録画ボタンを押してみましょう。すると、映像にちらつきが生じるのがわかるでしょう。ガレージや倉庫の中でスマートフォンを使って撮影した際に、このような現象を経験したことがあるかもしれません。
周囲の光源の周波数とキャプチャレートが一致するビデオカメラを考えてみましょう。各画像で同じ位相の光をサンプリングすることになり、ちらつきはなくなります。これにより、光は一定に見えるようになります。
ここで説明する概念は相関サンプリングと呼ばれ、構造化光 3D スキャナにおいて好ましい効果を発揮します。これは、以下の式を満たす露光時間を選択することで、周囲光源から発生する時間とともに変化するノイズを除去することを可能にします。
ここで \(n\) は正の整数であり、 \(f_s\) は光源の周波数です。
強いちらつきのある周囲光源が存在する場合は、グリッド周期の倍数となるサンプリングレート(露光時間)を使用してください。
50 Hz のグリッド周波数が存在する場合、10 000 µs の倍数を使用してください。
60 Hz のグリッド周波数が存在する場合、8 333 µs の倍数を使用してください。
スポットライトや 1 kHz 以上の周波数を持つ LED など、直流電源を使用する光源は、時間とともに変化するノイズを発生させません。
干渉がカラー画像に及ぼす影響
周囲光のちらつき周波数の測定
Zivid カメラは、シーン内のちらつきを検出し、50 Hz と 60 Hz のグリッド干渉を区別することができます。
Zivid Studio を開き、カメラに接続します。 Capture セクションの3つの点をクリックします。次に、 Measure scene lighting conditions をクリックします。ソフトウェアが検出された周囲光のちらつき周波数を表示します。
あるいは、 SDK を使用して周囲の光環境を測定することもできます。この方法では、顕著な周囲光のちらつきが検出されたかどうか、またそれが 50 Hz または 60 Hz の電力網に対応するかどうかを報告します。
std::cout << "Measuring scene conditions" << std::endl;
auto sceneConditions = camera.measureSceneConditions();
auto flickerClassification = sceneConditions.ambientLight().flickerClassification().toString();
std::cout << "Flicker classification: " << flickerClassification << std::endl;
auto flickerFrequency = sceneConditions.ambientLight().flickerFrequency();
std::cout << "Measured flickering frequency in the scene: " << flickerFrequency << " Hz." << std::endl;
Console.WriteLine("Measuring scene conditions");
var sceneConditions = camera.MeasureSceneConditions();
var flickerClassification = sceneConditions.AmbientLight.FlickerClassification.ToString();
Console.WriteLine("Flicker classification: " + flickerClassification);
var flickerFrequency = sceneConditions.AmbientLight.FlickerFrequency;
Console.WriteLine($"Measured flickering frequency in the scene: {flickerFrequency} Hz.");
print("Measuring scene conditions")
scene_conditions = camera.measure_scene_conditions()
flicker_classification = scene_conditions.ambient_light.flicker_classification
print(f"Flicker classification: {flicker_classification}")
flicker_frequency = scene_conditions.ambient_light.flicker_frequency
print(f"The measured flickering frequency in the scene: {flicker_frequency} Hz.")
50 Hz 環境光への対応
下の表は、50 Hz の送電線周波数を使用している国で推奨される露光時間の例を示しています。なお、30 000 µs や 50 000 µs など、10 000 µs の倍数も使用できることにご注意ください。
露光時間(µs) |
10 000 |
20 000 |
40 000 |
80 000 |
100 000 |
段数 |
0 |
+1 |
+2 |
+3 |
+3.32 |
60 Hz 環境光への対応
下の表は、60 Hz の電力線周波数を使用している国々で推奨される露光時間の例を示しています。なお、8 333 µs の倍数である 24 999 µs や 41 665 µs なども使用できることにご注意ください。
露光時間(µs) |
8 333 |
16 667 |
33 333 |
66 667 |
83 333 |
段数 |
0 |
+1 |
+2 |
+3 |
+3.32 |
グリッド周波数に合わせて露光時間を調整すると、画像の露出過多などの問題が発生する場合は、代わりに 2D サンプリング間隔 を地域のグリッド周波数と同期することを検討してください(Zivid 3 のみ)。
バージョン履歴
SDK |
変更点 |
|---|---|
2.18.0 |
Reduced the minimum exposure time on Zivid 2+ R to 800 µs. |
2.16.0 |
周囲光のちらつき周波数を測定する機能を追加しました。 |
2.14.0 |
Zivid 2+ MR130、LR110、および MR60 のサポートを追加しました。最小露光時間は 900 µs です。 |