💡

V4L2(Video for Linux 2)のカメラの調整

2022/05/26に公開

jetson nanoやラズパイで定点カメラを運用しています。
そのときのカメラの設定のメモ。

必要なツールのインストール

$ sudo apt install v4l-utils

設定可能な項目の確認

$ v4l2-ctl -d /dev/video0 -L
                     brightness 0x00980900 (int)    : min=-64 max=64 step=1 default=0 value=0
                       contrast 0x00980901 (int)    : min=0 max=100 step=1 default=38 value=25
                     saturation 0x00980902 (int)    : min=0 max=100 step=1 default=64 value=64
                            hue 0x00980903 (int)    : min=-180 max=180 step=1 default=0 value=0
 white_balance_temperature_auto 0x0098090c (bool)   : default=1 value=1
                          gamma 0x00980910 (int)    : min=100 max=500 step=1 default=300 value=300
                           gain 0x00980913 (int)    : min=0 max=128 step=1 default=64 value=64
           power_line_frequency 0x00980918 (menu)   : min=0 max=2 default=1 value=1
				0: Disabled
				1: 50 Hz
				2: 60 Hz
      white_balance_temperature 0x0098091a (int)    : min=2800 max=6500 step=10 default=4600 value=4600 flags=inactive
                      sharpness 0x0098091b (int)    : min=0 max=100 step=1 default=50 value=50
         backlight_compensation 0x0098091c (int)    : min=0 max=2 step=1 default=0 value=0
                  exposure_auto 0x009a0901 (menu)   : min=0 max=3 default=3 value=1
				1: Manual Mode
				3: Aperture Priority Mode
              exposure_absolute 0x009a0902 (int)    : min=50 max=10000 step=1 default=625 value=100
         exposure_auto_priority 0x009a0903 (bool)   : default=0 value=0
                 focus_absolute 0x009a090a (int)    : min=0 max=1023 step=1 default=68 value=170
                     focus_auto 0x009a090c (bool)   : default=1 value=0

設定できる項目や値はカメラによって異なります。

映像がちらつく場合

室内の場合は蛍光灯の周波数が関係している場合が多いので、まずはpower_line_frequencyの値を確認します。50Hzか60Hzを選べるので、その地域の交流電源の周波数に合わせます。
私の場合は関東にいるので、50Hzにセットします。この項目のデフォルト値はカメラによって異なります。

$ v4l2-ctl -d /dev/video0 -c power_line_frequency=1

それでもまだちらつく場合は露出をマニュアルにセットします。

$ v4l2-ctl -d /dev/video0 -c exposure_auto=1
$ v4l2-ctl -d /dev/video0 -c exposure_absolute=100

exposure_absoluteの値をいろいろと変えて、ちらつかないところを見つけてください。

オートフォーカスをオフ

$ v4l2-ctl -d /dev/video0 -c focus_auto=0
$ v4l2-ctl -d /dev/video0 -c focus_absolute=170

雨の日にガラスについた雨粒にフォーカスがあってしまうのを防ぎます。

関連

https://qiita.com/tetsu_koba/items/01491f96daddf15677df

Discussion