これまで何回かGenICamという言葉が出て来ましたが、多くの皆さんは初耳かも?
多少は業界に馴染みのある私も、なんとなく知ってるかなあ、という程度でした。
ということで、自分の勉強も兼ねてGenICamについて調べていこうと思います。
ちなみに Generic Interface for Cameras の略称ですね。
ざっくり言うと、汎用的なカメラのプログラム用インターフェイス規格です、
EMVA1288同様、European Machine Vision Association で制定されています。
BaslerのVision Campusの説明が、イメージとして判りやすかったです。
以下、もうちょっとだけ詳しい内容を見ていきましょう。
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つの機能が有ります。
- カメラの設定 (GenApiが担当)
- カメラからの画像転送 (GenTLが担当)
- ユーザーIFの提供
- イベントの伝達
- 画像付加データの転送
GenICamを使う最も大きなメリットは1.と2.ですね、これまで各カメラメーカーや
各インターフェイス(GigE Vision、CameraLink、USB3 Vision等)毎に異なる
コマンド、シーケンスだったのが、GenICamを使うことで統一出来ます。
3.〜5.は正直よく判りません、もう少し情報を集めてみます。
1.の動作イメージ図
例えばカメラのゲインを42に設定したい場合、カメラメーカーやIFに関係無く、
ソフト側ではCamera.Gain に42を代入するだけでOKです、ということ。
上図は、さきほどのバージョン一覧の下に有る下記pdfから引用しました、
他の項目の説明も有るので、興味が有る方は見てみて下さい。
http://www.emva.org/wp-content/uploads/genicam_for_executives.pdf
GenICamの参画メンバーと経緯
GenICam2.0当時の資料ですが、下記がGenICamに参画している会社です、
GenICamの知名度の割に、多くの会社が関係していたので驚きました。
下記はこれまでの規格制定の経緯ですね、見にくいですが横軸が年代で、
縦軸が制定に関わった会社名が書かれています。
(この図以降も、年一回〜二回ペースで活動は続いているようです)
BaslerやStemmer、JAIなどは最初の2003年頃から関わってきたことも有り、
早くからGenICamに対応したSDKをリリースしています。
この資料も同じく一覧ページの下、下記リンクから抜粋しました。 http://www.emva.org/wp-content/uploads/GenICam_v2_0_Update.pdf
GenICam2.0の変更内容資料です、こいつのGenICam3.0版が欲しいのですが、
まだ無いようなので、これももう少し他の資料を探してみます。
ほんと概要だけですが今回はここまで、次回はGenApiについて見ていきます。