沼津高専 電子制御工学科

MIRSMG3D USBカメラ環境設定説明書

MIRSMG3D-OSIN-0006

改訂記録

版数

作成日

作成者

承認

改訂内容

A01

2009.3.11

吉川

牛丸

初版

A02

2010.6.16

牛丸

牛丸

6.の部分を改訂


 

目次

 

1.はじめに
2.libwebcamのインストール
3.uvcdynctrlの使用方法
4.uvccaptureの使用方法
5.画像補正機能推奨設定
6.おわりに

 


1.はじめに

本ドキュメントでは、USBカメラから取得される映像の調整を行うためのライブラリであるlibwebcamのインストール手順を記載する。
併せて、libwebcamに含まれる、パラメータを設定するためのアプリケーションである”uvcdynctrl”、uvccaptureの使用方法を記載する。

2. libwebcamのインストール
       
libwebcamをインストールするためには、CMakegengeoptをあらかじめインストールしておく必要がある。
          

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

 

3.uvcdynctrlの使用方法

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)

露光時間指定

110000

Backlight Compensation

逆光補正

01

Sharpness

シャープネス

0255

White Balance Temperature

ホワイトバランス

010001

Power Line Frequency

送電線周波数補正

02

Gain

ゲイン(信号の増幅度)

0255

White Balance Temperature Auto

ホワイトバランス自動調整

0 or 1

Saturation

彩度

0255

Contrast

コントラスト

0255

Brightness

明るさ

0255

 

4.uvccaptureの使用方法

uvccaptureは、画像取得時にオプションを付けることで画像サイズの変更や画質の調整を行うことが可能である。
使用できるオプションは、表に示すとおりである。

-o<filename>

キャプチャした画像の保存名を指定

-v

キャプチャ時に情報を表示(解像度、画質など)

-d<device>

デバイスの選択(複数台接続時)

-x<width>

画像の幅の指定

-y<height>

画像の高さの指定

-c<command>

キャプチャ後にコマンドを実行
例:uvccapture cgimp

⇒キャプチャした画像をgimpで開く

-t<integer>

指定した時間(秒)ごとに撮影

-q<integer>

JPEGのクオリティの指定

-B<integer>

輝度の指定

-C<integer>

コントラストの指定

-S<integer>

彩度の指定

-G<integer>

ゲインの指定

例:サイズ640×480、クオリティを100で画像取得する場合
$uvccapture
x640 y480 q100

 

5. 画像補正機能検証結果

uvcdynctrlを使った補正の検証を行った結果を以下に示す。

○送電線周波数補正
1
に設定することで、50Hzの明かりの元でのノイズを軽減させることが可能である。
かなり効果が大きい。

○露光自動補正機能
自動補正機能をオンにすると、明るい場所でも暗い場所でも適切な明るさに調整しようとするが、明るさが大きく変化するときに補正が追いつかず、画像が白っぽくなってしまう場合がある。また、カメラからボールまでの距離が近い場合は、補正が無いほうがボールがはっきりと写る場合がある。

○逆光補正
大きな効果があるとは言えないが、補正をすると若干ノイズが軽減することが確認できた。

○シャープネス指定
シャープネスの値を上げると、ボールや数字の輪郭がはっきりするため、認識精度が向上する可能性がある。

その他の補正についても、環境に合わせて様々な設定で動作確認を行ってみると、認識精度の向上を図ることができるだろう。

 

6.おわりに

カメラを動作させるために必要なLinux UVC driveruvccaptureについては、関連文書のUSBカメラ動作環境実装手順書を参照すること。

画像処理開発環境ライブラリのOpenCVのインストール方法に関しては、画像処理開発環境実装手順書を参照すること。

関連文書