沼津高専 電子制御工学科 |
||||||
|
||||||
改訂記録 |
||||||
版数 |
作成日 |
作成者 |
承認 |
改訂内容 |
||
A01 |
2009.3.11 |
吉川 |
牛丸 |
初版 |
||
A02 |
2010.6.16 |
牛丸 |
牛丸 |
6.の部分を改訂 |
1.はじめに
2.libwebcamのインストール
3.uvcdynctrlの使用方法
4.uvccaptureの使用方法
5.画像補正機能推奨設定
6.おわりに
本ドキュメントでは、USBカメラから取得される映像の調整を行うためのライブラリであるlibwebcamのインストール手順を記載する。
併せて、libwebcamに含まれる、パラメータを設定するためのアプリケーションである”uvcdynctrl”、uvccaptureの使用方法を記載する。
1. CMakeのインストール
ソースファイルをダウンロードする。
cmake-2.6.2.tar.gz
解凍する。
$tar xzvf cmake-2.6.2.tar.gz
cmake-2.6.2に移動
$cd cmake-2.6.2
configure、コンパイル、インストールを行う。
$./configure
$gmake
$sudo make install
2. gengetoptのインストール
ソースファイルをダウンロードする。
gengetopt-2.22.tar.gz
解凍する。
$tar xzvf gengetopt-2.22.tar.gz
cmake-2.6.2に移動
$cd gengetopt-2.22
configure、コンパイル、インストールを行う。
$./configure
$make
$sudo make install
3. libwebcamのインストール
ソースファイルをダウンロードする。
libwebcam.tar.gz
解凍する。
$tar xzvf libwebcam.tar.gz
libwebcamに移動する。
$cd libwebcam
buildディレクトリを作成し、移動。
$mkdir build
$cd build
cmakeを行う。
$cmake .. -DCMAKE_INSTALL_PREFIX=/usr
コンパイル、インストールを行う。
$make
$sudo make install
uvcdynctrlは、Logitech社によって提供されているアプリケーションであり、Logitech社(日本ではLogicool社)製のUSBカメラに備わった補正機能の設定をすることができる。
その使用方法を以下に示す。
1.
コマンド
コマンドラインに[uvcdynctrl –option]と入力することで使用する。
使用できるオプションは以下の通りである。
-l 使用可能カメラの一覧表示
-d コントロールを行うデバイスの指定(複数のカメラを接続している場合)
-f 取得可能な画像のフォーマットリスト一覧表示
-c 設定可能なコントロールのリスト一覧表示
2.
使用可能カメラの一覧表示
接続されたLogicool社製カメラが一覧で表示される。
例:
$uvcdynctrl –l
Listing available devices:
Video0 UVC Camera (046d:0990)
3.
コントロールを行うデバイスの指定
複数のデバイスを接続しているとき、どのカメラに対してコントロールを行うのかを指定する。
例:コントロールを行うデバイスを、”video0”に指定。
$uvcdynctrl video0
4.
取得可能な画像のフォーマットリスト一覧表示
カメラを使用してキャプチャできる映像のサイズを一覧で表示する。
例:
$ uvcdynctrl –f
Listing available frame formats for device video0:
Pixel format: MJPG (MJPEG; MIME type: image/jpeg)
Frame size: 160x120
Frame rates: 30, 25,
20, 15, 10, 5
Frame size: 176x144
Frame rates: 30, 25,
20, 15, 10, 5
Frame size: 320x240
Frame rates: 30, 25,
20, 15, 10, 5
Frame size: 352x288
Frame rates: 30, 25,
20, 15, 10, 5
Frame size: 640x480
Frame rates: 30, 25,
20, 15, 10, 5
Pixel format: YUYV (YUV 4:2:2 (YUYV); MIME type: video/x-raw-yuv)
Frame size: 160x120
Frame rates: 30, 25,
20, 15, 10, 5
Frame size: 176x144
Frame rates: 30, 25,
20, 15, 10, 5
Frame size: 320x240
Frame rates: 30, 25,
20, 15, 10, 5
Frame size: 352x288
Frame rates: 30, 25,
20, 15, 10, 5
Frame size: 640x480
Frame rates: 30, 25,
20, 15, 10, 5
5.
設定可能なコントロールのリスト一覧表示
設定可能なコントロールが一覧で表示される。
例:
$uvcdynctrl -c
Listening available controls for device video0:
Exposure, Auto
Exposure, Auto Priority
Exposure (Absolute)
Backlight Compensation
Sharpness
White Balance Temperature Auto
Gain
Power Line Frequency
Saturation
Contrast
Brightness
6.
コントロール値の取得、変更
5で表示されたコントロールに設定されている値を取得するには、以下のコマンドを用いる。
$uvcdynctrl –g “コントロール名”
例:シャープネスの値を取得する
$uvcdynctrl –g “Sharpness”
また、コントロールの値を設定するには、以下のコマンドを用いる。
$uvcdynctrl –s “コントロール名” 値
例:シャープネスの値を120に設定する場合
$uvcdynctrl –s “Sharpness” 120
設定可能なコントロールのリストを表示する場合は -c オプションを指定する。
$uvcdynctrl -c
表に、Qcam E3500で使用できるコントロールのリストと簡単な説明を示す。
コントロール |
説明 |
設定可能な値 |
Exposure, Auto |
露光時間・絞り自動設定 |
3 or
0 |
Exposure, Auto
Priority |
露光時間自動設定 |
1 or
0 |
Exposure
(Absolute) |
露光時間指定 |
1〜10000 |
Backlight
Compensation |
逆光補正 |
0〜1 |
Sharpness |
シャープネス |
0〜255 |
White
Balance Temperature |
ホワイトバランス |
0〜10001 |
Power
Line Frequency |
送電線周波数補正 |
0〜2 |
Gain |
ゲイン(信号の増幅度) |
0〜255 |
White
Balance Temperature Auto |
ホワイトバランス自動調整 |
0 or
1 |
Saturation |
彩度 |
0〜255 |
Contrast |
コントラスト |
0〜255 |
Brightness |
明るさ |
0〜255 |
-o<filename> |
キャプチャした画像の保存名を指定 |
-v |
キャプチャ時に情報を表示(解像度、画質など) |
-d<device> |
デバイスの選択(複数台接続時) |
-x<width> |
画像の幅の指定 |
-y<height> |
画像の高さの指定 |
-c<command> |
キャプチャ後にコマンドを実行 ⇒キャプチャした画像をgimpで開く |
-t<integer> |
指定した時間(秒)ごとに撮影 |
-q<integer> |
JPEGのクオリティの指定 |
-B<integer> |
輝度の指定 |
-C<integer> |
コントラストの指定 |
-S<integer> |
彩度の指定 |
-G<integer> |
ゲインの指定 |
uvcdynctrlを使った補正の検証を行った結果を以下に示す。
○送電線周波数補正
1に設定することで、50Hzの明かりの元でのノイズを軽減させることが可能である。
かなり効果が大きい。
○露光自動補正機能
自動補正機能をオンにすると、明るい場所でも暗い場所でも適切な明るさに調整しようとするが、明るさが大きく変化するときに補正が追いつかず、画像が白っぽくなってしまう場合がある。また、カメラからボールまでの距離が近い場合は、補正が無いほうがボールがはっきりと写る場合がある。
○逆光補正
大きな効果があるとは言えないが、補正をすると若干ノイズが軽減することが確認できた。
○シャープネス指定
シャープネスの値を上げると、ボールや数字の輪郭がはっきりするため、認識精度が向上する可能性がある。
その他の補正についても、環境に合わせて様々な設定で動作確認を行ってみると、認識精度の向上を図ることができるだろう。
カメラを動作させるために必要なLinux UVC driver、uvccaptureについては、関連文書のUSBカメラ動作環境実装手順書を参照すること。
画像処理開発環境ライブラリのOpenCVのインストール方法に関しては、画像処理開発環境実装手順書を参照すること。
関連文書 |