露光時間

はじめに

露光時間(シャッタースピードとも呼ばれる)とは、カメラの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 スキャナにおいて好ましい効果を発揮します。これは、以下の式を満たす露光時間を選択することで、周囲光源から発生する時間とともに変化するノイズを除去することを可能にします。

\[t_{exp} = \frac{n}{2f_s},\quad n \in \mathbb{N}^{+}\]

ここで \(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 をクリックします。ソフトウェアが検出された周囲光のちらつき周波数を表示します。

../../../../../_images/studio-measure-ambient-light.png

あるいは、 SDK を使用して周囲の光環境を測定することもできます。この方法では、顕著な周囲光のちらつきが検出されたかどうか、またそれが 50 Hz または 60 Hz の電力網に対応するかどうかを報告します。

ソースへ移動

source

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;
ソースへ移動

source

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.");
ソースへ移動

source

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 です。