露光時間
はじめに
露光時間(シャッタースピードとも呼ばれる)とは、カメラの1枚の画像が光にさらされる時間のことです。言い換えれば、シャッターが開いている時間の長さです。
Zivid カメラは、カラー画像と点群を生成するために複数の画像を撮影し、露光時間設定は個々の画像の露光時間です。
Zivid 2 |
Zivid 2+ |
Zivid 2+ R |
Zivid 3 |
|
最小露光時間(µs) |
1 677 |
1 677 |
800 |
200 [1] |
最大露光時間(µs) |
100 000 |
100 000 |
100 000 |
20 000 |
Tip
キャプチャ速度計算ツール を参照して、露光時間が総キャプチャ時間にどのように影響するかを確認してください。
強い周囲光源からの干渉
Zivid カメラで画像を撮影するとき、特定の時間枠で光の情報をサンプリングします。このシンプルなコンセプトを利用することで、周囲光によって発生する可能性のある多くの問題を回避することができます。
構造化光センサーは、テレビや照明などの多くのユーティリティと同様のサンプリングレートで動作するサンプリングシステムです。蛍光灯は通常、AC 電源である電力線に接続されます。EU では、この電源は周波数 50 Hz の正弦波として電圧を生成します。米国など他の国では、電力線周波数は 60 Hz です。
フレームレートが 30 fps のビデオカメラを考えてみましょう。ヨーロッパの蛍光灯に向けて録画を開始すると、ビデオがちらつくように見えることがわかります。ガレージや倉庫内でスマートフォンを使って撮影する際に、この現象を経験したことがあるのではないでしょうか。
次に、キャプチャレートが周囲光源の周波数と一致するビデオカメラを考えてみましょう。各画像で同じ位相の光をサンプリングすることになり、ちらつきがなくなったように見えます。これにより、光が一定に見えるようになります。
この概念は相関サンプリングと呼ばれ、構造化光 3D スキャナーに有利な効果をもたらします。以下の式を満たす露光時間を選択することで、周囲光源からの時間とともに変化するノイズをフィルタリングすることができます。
ここで \(n\) は正の整数であり、 \(f_s\) は光源の周波数です。
強いちらつきのある周囲光源が存在する場合は、グリッド周期の倍数となるサンプリングレート(露光時間)を使用してください。
50 Hz のグリッド周波数がある場合は 10 000 µs の倍数。
60 Hz のグリッド周波数がある場合は 8 333 µs の倍数。
スポットライトや 1 kHz 以上の LED などの DC 電源を備えた光源では、時間とともに変化するノイズが発生しません。
干渉が点群に及ぼす影響
注釈
周囲光への適応は、強い 周囲光が存在する場合にのみ必要です。カメラのプロジェクターが主な光源となる通常の作業環境では、どのような露光時間でも通常は十分です。
周囲光のちらつき周波数の測定
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 の電力線周波数を使用する国での使用に推奨される露光時間の例を示しています。24 999 µs や 41 665 µs など、8 333 µs の他の倍数も使用できることに注意してください。
露光時間 (µs) |
8 333 |
16 667 |
33 333 |
66 667 |
83 333 |
段数 |
0 |
+1 |
+2 |
+3 |
+3.32 |
バージョン履歴
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 です。 |