ケイエルブイは、ハイパースペクトルカメラ・光学部品・光源など世界中の光学機器を取り扱う専門商社です。

03-3258-1238

お問い合わせ
KLV大学 マシンビジョンコース

USBカメラの「露光・露出(Exposure)」調整とは。Python×OpenCVでの変更方法も解説

USBカメラの「露光・露出(Exposure)」とは

露光・露出(Exposure)の直接の意味は、フィルムやイメージセンサーに光を当てることです。
そして、USBカメラの露光設定は、イメージセンサーに光を当てる光の量を制御するためのパラメータで、露光時間を変更することができます。

本記事では、露光・露出(Exposure)変えるとどうなるのか、どういう場合に変更するのか、どう変更するのかを解説していきます。

「露光・露出(Exposure)」を変更すると画像がどう変わるのか

USBカメラの「露光・露出(Exposure)」を変更すると、カメラのシャッタースピード(解放時間)が変わり、1枚の画像を取得する際にイメージセンサーが光を取り込む時間が変わります。

露光時間とシャッタースピードの関係を以下の表に示します。

露光時間 短い 長い
シャッタースピード 速い 遅い
センサーに入る光の量 少ない 多い
一定時間に撮影できる枚数 多い 少ない
暗い箇所の撮影 苦手 得意
動くものの撮影 得意 苦手

明るい場所での撮影の場合は、シャッタースピードが早くても明るく綺麗に撮像できるので、露光時間を短くして撮影できる枚数を増やせます。一方、暗い場所での撮影の場合は、シャッタースピードを遅くして、撮像に必要な光が入るまで露光時間を十分にとる必要があるため、撮影枚数は多くできません。

露光時間(シャッターの解放時間)とフレームレート

露光時間(シャッターの解放時間)とフレームレートは逆数の関係です。

1枚の画像を取得する際のカメラの露光時間は、1/60秒、1/30秒のように秒単位で表されます。
一方、フレームレートは、1秒間に撮影した画像の枚数をさし、60fpsや30fpsのように表されます。
よって、露光時間が1/60秒の場合には、1秒間で撮影できる最大の撮影枚数は60枚になるので60fps、同様に、露光時間が1/30の場合には30fps、露光時間が1/10の場合には10fpsと逆数の関係になります。

露光時間の設定をする際には、撮影の画像に必要な光量や動きのあるもののブレの考慮だけではなく、必要となるフレームレートも含めて考える必要があります。

カメラフレームレート

露光時間(シャッターの解放時間)と明るさ、絞り、ゲイン

明るさ、絞り、ゲインは、露光と同じく写真の「明るさ」に関わる制御パラメータです。
露光パラメータで画像を明るくしようとするとフレームレートが制限を受けるので、そのような場合には、明るさ(Brightness)、絞り、ゲインなどのパラメータを変更して画像の明るさを確保する必要があります。


「露光・露出(Exposure)の変更が有効なシチュエーション

撮影状況が理想的でない場合でも、適切な露光調整によって高品質な画像を撮影することが可能です。
ここでは、特に「露光(Exposure)」の変更が有効な、条件やシチュエーションを紹介します。

1逆光時など被写体が背景に対して暗い場合の露光調整

逆光時には、光の強度が強い部分に露光を合わせるとその他の部分は露光不足になり、適切な撮像が得られません。
逆に、光の強度が弱い部分に露光を合わせると光の強い部分が飽和してしまい真っ白になります。

この場合は、主に撮影したい被写体に合わせてマニュアルで露光を設定する必要があります。

python_opencv_exposure_11.jpg

逆光などの場合は、光の強さの弱い部分に、溶接などの場合は、光の強い部分の撮影が重要になるため、その部分に合わせた露光設定ををして、被写体が適切に撮影されるようにします。
また、HDR撮影が明さの違いが大きい場合の露光調整に役立ちます。HDR撮影は、異なる露光で複数の写真を撮り、1枚に合成することで全体的な明るさを調整する方法で、逆光時の被写体を適切に撮影するのに適した方法です。

※OPENCVにも、HDR画像を生成するための機能があります。

2光量が不足している場合の露光調整

光量が不足している場合にシャッタースピードを遅くすることで、カメラのセンサーは光をより多く受け取り、暗い状況下でも明るい写真を撮影することができます。

ただし、シャッタースピードが遅すぎると、手ブレや被写体ブレが発生する可能性があるため、注意が必要です。この問題を回避するためには、カメラと被写体をしっかりと固定する必要があります。

3高速に移動する物体の露光調整

高速に移動する物体を撮影する際の露光調整では、被写体の動きを適切に捉えるためにシャッタースピードを速く設定することが重要です。

速いシャッタースピードは、被写体のブレを抑えることができますが、露光時間が短くなり光量が少なくなるため、明るさ、絞り、ゲインなどの設定で像が明るく見えるように工夫が必要です。

4その他の露光調整

・鮮やかな色の製品を撮影するとき

鮮やかな色の製品は、ギラギラとした印象の画像になりがちです。そのような時、「露出」を下げて撮影することで、自然な色味に映すとができます。

・製品の表面を検査するとき

生産ラインで、製品表面の欠陥などを検査する場合は、鮮明な画像を取得するために十分な光量が必要です。そのよう なケースでは、「露出」を上げて、製品表面が鮮明に映るように調整してください。

・監視カメラで雪の多い場所を撮影するとき

雪が積もっている場合には、カメラを自動設定にしておくと、光量が多いと判断してしまい、被写体が暗く映ってしまいます。そのような時、「露出」を下げることで、被写体をはっきりと写すことができます。

Python×OpenCVでの「露光(Exposure)」の変更方法

カメラの露光(Exposure)を変更

OpenCVでカメラの「露光(Exposure)」を変更するには、CAP_PROP_EXPOSUREを使用します。

この時、CAP_PROP_EXPOSUREには、露光時間を直接設定するのではなく、0〜-16までの数値を設定します。
この値と露光時間の関係は、設定値をxとすると、露光時間 1/(2^x)になります。

以下に設定値、露光時間、FPS(最大)の関係を紹介します。

設定値 計算式 露光時間 FPS
(最大値)
0 1/(2^0) 1s 1
-1 1/(2^1) 500ms 2
-2 1/(2^2) 250ms 4
-3 1/(2^3) 125ms 8
-4 1/(2^4) 62.5ms 16
-5 1/(2^5) 31.3ms 32
-6 1/(2^6) 15.6ms 64
-7 1/(2^7) 7.8ms 128
-8 1/(2^8) 3.9ms 256
-9 1/(2^9) 2ms 512
-10 1/(2^10) 976.6µs 1024
-11 1/(2^11) 488.3µs 2048
-12 1/(2^12) 244.1µs 4096
-13 1/(2^13) 122.1µs 8192
-14 1/(2^14) 61.5µs 16384
-15 1/(2^15) 30.7µs 32768
-16 1/(2^16) 15.3µs 65536

また、露光設定を行う際に注意が必要な点が、カメラの自動露光設定がONになっている場合には、CAP_PROP_EXPOSUREの設定が有効にならないといいう点です。
カメラの自動設定は、CAP_PROP_AUTO_EXPOSUREで確認・設定できます。この設定をOFF(設定値を"0")にしてください。

サンプルコード
import cv2

# カメラを設定
cap = cv2.VideoCapture(0) 

# カメラの自動露光調整をOFFに設定
cap.set(cv2.CAP_PROP_AUTO_EXPOSURE, ”0”) 

# カメラの明るさを調整
cap.set(cv2.CAP_PROP_EXPOSURE, ”設定値”) 

# カメラから画像を読み込む
ret, frame = cap.read() 

# 画像を表示する
cv2.imshow("Camera Frame", frame)

サンプルコードにおいて、cap.set(cv2.CAP_PROP_EXPOSURE, ”設定値”) でカメラの露光を設定しています。
CAP_PROP_EXPOSUREのデフォルト値や設定できる範囲は、カメラデバイスやドライバに依存するため、カメラの仕様を確認する必要があります。

Linuxの場合は、v4l2でUSBカメラの設定のデフォルト値や設定できる範囲を確認できるので、以下の記事も参考にしてください。

v4l2でUSBカメラの設定可能パラメータと範囲を確認

まとめ

本記事では、露光(Exposure)を変更するとどうなるのか、どういう場合に変更するのか、どう変更するのかを解説しました。

  • 「露光(Exposure)」を大きくするとシャッタースピードが長くなり、光を取り込む時間が増えるので画像が明るくなる。
  • 「露光(Exposure)」の変更は、被写体が明るすぎる場合や暗すぎる場合に有効
  • 「露光(Exposure)」はOpenCVのコマンドを用いて簡単に変更することが可能

実際の現場では、「露光(Exposure)」の設定だけではなく、光源の調整はもちろん、明るさ(Brightness)や絞りなどの他のカメラの設定も合わせて調整することで、より高品質な画像を得ることができます。

製品紹介

ケイエルブイは、「明るさ(Brightness)」を変更可能な、「超小型」の産業用USBカメラを取り扱っています。

製造はドイツの光学機器メーカーOptikron(オプティクロン)社。同社の超小型カメラは医療技術、計測技術、マイクロレーザー技術、高度な技術力が要求される分野で活用されています。

Optikron超小型カメラ

用語集

マシンビジョンコース

ご質問・ご相談お気軽にお問い合せください

お電話でのお問合せ 03-3258-1238 受付時間 平日9:00-18:00(土日祝日除く)
Webでのお問い合わせ