03-3258-1238
03-3258-1238平日9:00 ~ 18:00(土日祝日除く)
露光・露出(Exposure)の直接の意味は、フィルムやイメージセンサーに光を当てることです。 そして、USBカメラの露光設定は、イメージセンサーに光を当てる光の量を制御するためのパラメータで、露光時間を変更することができます。
本記事では、露光・露出(Exposure)変えるとどうなるのか、どういう場合に変更するのか、どう変更するのかを解説していきます。
USBカメラの「露光・露出(Exposure)」を変更すると、カメラのシャッタースピード(解放時間)が変わり、1枚の画像を取得する際にイメージセンサーが光を取り込む時間が変わります。
露光時間とシャッタースピードの関係を以下の表に示します。
明るい場所での撮影の場合は、シャッタースピードが早くても明るく綺麗に撮像できるので、露光時間を短くして撮影できる枚数を増やせます。一方、暗い場所での撮影の場合は、シャッタースピードを遅くして、撮像に必要な光が入るまで露光時間を十分にとる必要があるため、撮影枚数は多くできません。
露光時間(シャッターの解放時間)とフレームレートは逆数の関係です。
1枚の画像を取得する際のカメラの露光時間は、1/60秒、1/30秒のように秒単位で表されます。 一方、フレームレートは、1秒間に撮影した画像の枚数をさし、60fpsや30fpsのように表されます。 よって、露光時間が1/60秒の場合には、1秒間で撮影できる最大の撮影枚数は60枚になるので60fps、同様に、露光時間が1/30の場合には30fps、露光時間が1/10の場合には10fpsと逆数の関係になります。
露光時間の設定をする際には、撮影の画像に必要な光量や動きのあるもののブレの考慮だけではなく、必要となるフレームレートも含めて考える必要があります。
【Python×OpenCV】フレームレート(FPS)を変更・確認する方法 (実測方法も)
明るさ、絞り、ゲインは、露光と同じく写真の「明るさ」に関わる制御パラメータです。 露光パラメータで画像を明るくしようとするとフレームレートが制限を受けるので、そのような場合には、明るさ(Brightness)、絞り、ゲインなどのパラメータを変更して画像の明るさを確保する必要があります。
撮影状況が理想的でない場合でも、適切な露光調整によって高品質な画像を撮影することが可能です。 ここでは、特に「露光(Exposure)」の変更が有効な、条件やシチュエーションを紹介します。
逆光時には、光の強度が強い部分に露光を合わせるとその他の部分は露光不足になり、適切な撮像が得られません。逆に、光の強度が弱い部分に露光を合わせると光の強い部分が飽和してしまい真っ白になります。
この場合は、主に撮影したい被写体に合わせてマニュアルで露光を設定する必要があります。
逆光などの場合は、光の強さの弱い部分に、溶接などの場合は、光の強い部分の撮影が重要になるため、その部分に合わせた露光設定ををして、被写体が適切に撮影されるようにします。 また、HDR撮影が明さの違いが大きい場合の露光調整に役立ちます。HDR撮影は、異なる露光で複数の写真を撮り、1枚に合成することで全体的な明るさを調整する方法で、逆光時の被写体を適切に撮影するのに適した方法です。
※OPENCVにも、HDR画像を生成するための機能があります。
光量が不足している場合にシャッタースピードを遅くすることで、カメラのセンサーは光をより多く受け取り、暗い状況下でも明るい写真を撮影することができます。
ただし、シャッタースピードが遅すぎると、手ブレや被写体ブレが発生する可能性があるため、注意が必要です。この問題を回避するためには、カメラと被写体をしっかりと固定する必要があります。
高速に移動する物体を撮影する際の露光調整では、被写体の動きを適切に捉えるためにシャッタースピードを速く設定することが重要です。
速いシャッタースピードは、被写体のブレを抑えることができますが、露光時間が短くなり光量が少なくなるため、明るさ、絞り、ゲインなどの設定で像が明るく見えるように工夫が必要です。
鮮やかな色の製品は、ギラギラとした印象の画像になりがちです。そのような時、「露出」を下げて撮影することで、自然な色味に映すとができます。
生産ラインで、製品表面の欠陥などを検査する場合は、鮮明な画像を取得するために十分な光量が必要です。そのよう なケースでは、「露出」を上げて、製品表面が鮮明に映るように調整してください。
雪が積もっている場合には、カメラを自動設定にしておくと、光量が多いと判断してしまい、被写体が暗く映ってしまいます。そのような時、「露出」を下げることで、被写体をはっきりと写すことができます。
OpenCVでカメラの「露光(Exposure)」を変更するには、CAP_PROP_EXPOSUREを使用します。
この時、CAP_PROP_EXPOSUREには、露光時間を直接設定するのではなく、0〜-16までの数値を設定します。 この値と露光時間の関係は、設定値をxとすると、露光時間 1/(2^x)になります。
以下に設定値、露光時間、FPS(最大)の関係を紹介します。
また、露光設定を行う際に注意が必要な点が、カメラの自動露光設定が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)」の設定だけではなく、光源の調整はもちろん、明るさ(Brightness)や絞りなどの他のカメラの設定も合わせて調整することで、より高品質な画像を得ることができます。
ケイエルブイは、「明るさ(Brightness)」を変更可能な、「超小型」の産業用USBカメラを取り扱っています。
製造はドイツの光学機器メーカーOptikron(オプティクロン)社。同社の超小型カメラは医療技術、計測技術、マイクロレーザー技術、高度な技術力が要求される分野で活用されています。
シリーズページはこちら
USBカメラの「ゲイン」設定
USBカメラの「露光」設定
USBカメラの「明るさ」設定
USBケーブルの延長方法
ハイスピードカメラとは
v4l2でカメラパラメータを確認
産業用カメラの選び方
KLV大学マシンビジョンコース