mengineer's blog

ニッチなネタばかりですが。

GenICamの世界その1 まずは概要から

これまで何回かGenICamという言葉が出て来ましたが、多くの皆さんは初耳かも?
多少は業界に馴染みのある私も、なんとなく知ってるかなあ、という程度でした。

ということで、自分の勉強も兼ねてGenICamについて調べていこうと思います。
ちなみに Generic Interface for Cameras の略称ですね。

ざっくり言うと、汎用的なカメラのプログラム用インターフェイス規格です、
EMVA1288同様、European Machine Vision Association で制定されています。

BaslerのVision Campusの説明が、イメージとして判りやすかったです。

www.baslerweb.com

以下、もうちょっとだけ詳しい内容を見ていきましょう。

GenICamの構成要素とバージョン

GenICamは大きく下記3つから構成されており、各々にバージョンが有ります。

構成要素 説明 最新バージョン
GenApi カメラの各種設定に関する規定 3.0
GenTL カメラの画像データ転送(TransportLayer)の規定 1.5
SFNC カメラの機能名の標準化規定
Standard Feature Naming Convention
2.2

他にも要素は有りますが、まずは上記3つを覚えておけば良いと思います、
構成要素をまとめて”GenICam"と呼んでおり、下記にその一覧が有ります。

http://www.emva.org/standards-technology/genicam/genicam-downloads/

最初に定義されている”GenICamTM package ”にもバージョンが有り、
各要素のバージョンの組合せが定義されています、何だかややこしいですが、
このPackageのバージョン="GenICam"としてのバージョンですね。

更に見ていくと、PackageとGenApiのバージョンは毎回同じなので、
GenApiが更新されるとGenICamもバージョンが上がるようです。

上記に規格書(pdf)も有りますが、普通にカメラを使うだけなら参照不要です。
(今後必要な場合には、ざっと抜粋して説明する機会が有るかも)

GenICamで出来ること

GenICamには、下記の5つの機能が有ります。

  1. カメラの設定  (GenApiが担当)
  2. カメラからの画像転送 (GenTLが担当)
  3. ユーザーIFの提供
  4. イベントの伝達
  5. 画像付加データの転送

GenICamを使う最も大きなメリットは1.と2.ですね、これまで各カメラメーカーや
インターフェイス(GigE Vision、CameraLink、USB3 Vision等)毎に異なる
コマンド、シーケンスだったのが、GenICamを使うことで統一出来ます。

3.〜5.は正直よく判りません、もう少し情報を集めてみます。

1.の動作イメージ図

例えばカメラのゲインを42に設定したい場合、カメラメーカーやIFに関係無く、
ソフト側ではCamera.Gain に42を代入するだけでOKです、ということ。

f:id:mengineer:20160509221008p:plain

上図は、さきほどのバージョン一覧の下に有る下記pdfから引用しました、
他の項目の説明も有るので、興味が有る方は見てみて下さい。

http://www.emva.org/wp-content/uploads/genicam_for_executives.pdf

GenICamの参画メンバーと経緯

GenICam2.0当時の資料ですが、下記がGenICamに参画している会社です、
GenICamの知名度の割に、多くの会社が関係していたので驚きました。

f:id:mengineer:20160509225128p:plain

下記はこれまでの規格制定の経緯ですね、見にくいですが横軸が年代で、
縦軸が制定に関わった会社名が書かれています。
(この図以降も、年一回〜二回ペースで活動は続いているようです)

f:id:mengineer:20160509225207p:plain

BaslerやStemmer、JAIなどは最初の2003年頃から関わってきたことも有り、
早くからGenICamに対応したSDKをリリースしています。

この資料も同じく一覧ページの下、下記リンクから抜粋しました。 http://www.emva.org/wp-content/uploads/GenICam_v2_0_Update.pdf

GenICam2.0の変更内容資料です、こいつのGenICam3.0版が欲しいのですが、
まだ無いようなので、これももう少し他の資料を探してみます。

ほんと概要だけですが今回はここまで、次回はGenApiについて見ていきます。