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

03-3258-1238

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

USBカメラの「ゲイン(Gain)」調整とは。Python×OpenCVでの変更方法も解説

USBカメラの「ゲイン(Gain)」とは

USBカメラの「ゲイン(Gain)」は、イメージセンサーが受講した光を電気信号に変換する際に、電荷を増幅し、明るさを明るくすることができます。

本記事では、「ゲイン(Gain)」を変えるとどうなるのか、どういう場合に変更するパラメータなのか、どう変更するのかを解説していきます。

「ゲイン(Gain)」を変更すると画像がどう変わるのか

カメラ内部には、CCDセンサーやCOMSセンサーといった撮像素子が組み込まれており、光電変換(光を電気信号に変換すること)により、受け止めた光の量に応じて光を電荷、電気信号に変換します。

よって、強い光を受ければ、電荷の量が増え生成される撮影データは明るくなりますし、弱い光の場合は、電荷の量が少なく撮影データは暗くなってしまいます。

そこで、光が弱く電荷の量が少ない場合にでも、信号を取り出すことができるように、各センサーにはアンプ(増幅器)がついています。
そして、このアンプの増幅量を制御するパラメータが「ゲイン(Gain)」です。
ゲインを大きくすると信号の増幅量が大きくなり、暗い場所でも明るい撮影データを得ることができます。

関連記事

電気信号の増幅に関しては、以下のCCDとCMOSの原理について解説する記事をご用意しています。

CMOSセンサーとCCDセンサーの違い

ゲイン(Gain)とノイズ

「ゲイン(Gain)」を大きくする時に気をつけないといけないのがノイズの増加です。

ゲインを大きくすると、アンプでの増幅量が大きくなり明るい撮像ができる一方で、同時にセンサーで発生したノイズも増幅するため、画像に含まれるノイズが大きくなるという点に注意が必要です。
近年では、ノイズリダクション(Noise reduction)など、電気信号に含まれるノイズを抑制、低減する機能も存在しますが、後処理になるのでメリット・デメリットがあります。

ゲインによるカメラの信号増幅

「ゲイン(Gain)」と明るさ、露光設定

ゲインを上げることで明るさを明るくする場合、ノイズが問題になるため、「露光」や「明るさ」を併用してより期待値に近い画像をえることが望ましいです。
「露光」は撮影スピードの観点などで調整に限界がある、「明るさ」には色合いが変わる、「ゲイン」には、ノイズも増幅される とそれぞれのデメリットが存在するため、それを理解した上で、適切に調整してください。

また、後処理でRGBの値に倍率をかけて画像データを明るくすることも可能ですが、この場合には、センサーのノイズだけではなく回路のノイズもざわせて増幅されてしまいます。後処理とカメラの「ゲイン」設定との違いにご注意ください。

「ゲイン(Gain)」の変更が有効なシチュエーション

ここでは、特に「ゲイン(Gain)」の変更が有効な、条件やシチュエーションを紹介します。

ゲイン(Gain)は、前述した通り、「明るさ」、「露光」と組み合わせて使用するのが有効でるため、「明るさ」や「露光」調整する際と類似したシチュエーションになります。

1光量が不足している場合のゲイン調整

夜間や暗い場所では、撮影のための光量が不足しているケースがほとんどです。そのような時、「明るさ」、「露光」と合わせて「ゲイン」を上げることで、明るい画像を得ることができます。
適切な「ゲイン」を設定するためには、試し撮りをして画像の質を確認してください。

2製造ラインなどで高速なプロセスを撮影する場合のゲイン調整

産業用カメラで製造ラインなどを高速に撮影する際には、撮影スピードを早くする必要があるため、露光時間が短くなり十分な光量を得られない場合があります。

この場合、「露光」の設定は、撮影スピードで律速されてしまうため、ゲインが活躍します。
ゲインを上げて明るい画像が撮影できるように設定してください。

3色や形状に関してなるべく正確に測定したい場合のゲイン調整

産業用の検査においては、対象の色や形状を確認する検査工程があります。この場合において、高コントラストの対象を撮影する際に、「明るさ」の設定は色の歪みなどが発生するため、ゲインが活躍します。
ゲインを上げて、明るくわかりやすい画像が撮影できるように設定してください。

Python×OpenCVでの「ゲイン(Gain)」の変更方法

カメラのゲイン(Gain)を変更

OpenCVでカメラの「ゲイン(Gain)」を変更するには、CAP_PROP_GAINを使用します。

サンプルコード
import cv2

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

# カメラのゲインを調整
cap.set(cv2.CAP_PROP_GAIN, ”設定値”)

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

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

サンプルコードにおいて、画像取得のコマンド”cap.read()”の前に、cap.set(cv2.CAP_PROP_GAIN,”設定値”)でカメラのゲインを設定しています。

CAP_PROP_GAINのデフォルト値や各数値の意味はカメラに依存するので、かメアの仕様を確認する必要がありますが、ゲインを大きくすると明るく、ゲインを小さくすると暗くなるのは変わらないので、数値を変更しながら、期待する明るさに変更するのが一般的です。

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

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

まとめ

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

  • 「ゲイン(Gain)」を大きくすると光電変換後の信号をアンプで増幅するので画像が明るくなる。
  • 「ゲイン(Gain)」の変更は、被写体が暗すぎる場合やシャッタースピードを早くする必要がある場合に有効
  • 「ゲイン(Gain)」はOpenCVのコマンドを用いて簡単に変更することが可能

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

製品紹介

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

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

Optikron超小型カメラ

用語集

マシンビジョンコース

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

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