mengineer's blog

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

GenICam Harvester 使ってみる その1 環境構築

元号も令和に変わって一発目ということで、また新たな気分で新ネタです、
突然ですが、下記ライブラリーを使ってみましたというお話。

github.com

Image acquisition library for GenICam compliant cameras & GenTL Producers
要はGenICamのカメラを操作したり、画像を取込むためのライブラリですね。

これまでJAISDK中心に触ってきて(色々ネタも書いて)、多少は判ってきたかな?
という矢先、eBUS SDKへ切り替わることになったのは、少しショックでした、
そこで、たまたま発見したのが上記のharvesterです。

作者の方も何年もマシンビジョンの分野に関わってこられてて、
色々なサードパーティのライブラリーを学ばなくてはならず大変だった。

それらの経験から、統一した画像取得ライブラリの必要性を感じて、
生産性の面からpythonで開発された、というような背景みたいで、
この辺に共感したのも、使ってみようと思った大きな理由ですね。

と言いつつ、実は初めてpython触るので、自分の勉強メモも兼ねています、
色々と不備や足らない内容など出てくるかもしれませんが、御勘弁下さい。

GenICam Harvesterとは

大きく2つのpythonライブラリーが有ります。

  • Harvester Core: Image acquisition & device manipulation
    画像取込とカメラの操作(GenICamのNodeでアクセス出来ます:他SDK同様)

  • Harvester GUI: Image data visualization
    GUI操作

今回のネタはCoreの方です、元々JAISDK等でもカメラつないで認識させて、
画像を取込む/バッファ参照する、程度の内容しかやっていなかったので、
まずは、それと同等のことが出来るのを最初の目標にします。

必要な環境としては

  • Python 3.4, 3.5, 3.6, or 3.7
  • Windows7, Windows10
  • もしくはFedora 27, Ubuntu 14.04等、Linux
  • もしくはmacOS 10.13
  • GenTL Producers(後述)
  • GenICam対応のマシンビジョンカメラ

注意として、現時点では64bit環境しか対応していないようです、
Harvester自体、まだ始まったばかり(2018年スタート)なので、
今後の展開に期待したいですね。

今回はWindows7の64bit環境で動かしていきます。

GenTL Producer

GenTLについては、以前ちょっとだけですがネタを書いていました。

GenTL Producerはカメラ制御やデータ転送用のライブラリーで、メーカー毎や、
カメラのIF毎に存在します、上記URLに現在harvesterが対応している
GenTL Producerの一覧が有ります。

お薦めとしてMATRIX VISIONの"mvIMPACT_Acquire"も挙げられてますが、
今回は既にJAISDKの環境が有るので、そのままJAIのものを使います。

具体的にはJAISDKのbinフォルダ内、拡張子.ctiのファイルがGenTL Producerです。 f:id:mengineer:20190506143418p:plain

上図赤枠のファイルですね、カメラのIF毎に個別のファイルになっています。

ファイル名 インターフェイス
JaiCLTL.cti カメラリンク
JaiGevTL.cti GigEVision
JaiUSB3vTL.cti USB3 Vision

要はpythonスクリプトから、上記のGenTL Producerを参照出来るように
橋渡ししてくれるのが、今回のHarvesterなんだと思います。(おそらく)

上記のファイル名(ファイルパス)は、後で必要になるので重要です。

環境構築

上記URLに載ってるインストール手順そのままで、無事に構築出来ました、
おおまかな流れとしては、

  • Anacondaインストール(すなわちpythonインストール)
  • genicamという名前で環境構築
  • GenTL producerのインストール(→既に有るので、今回ここはSkip)
  • Harvester Coreのインストール

Anacondaの詳しいインストール手順や、関連する環境設定方法などなど、
検索すると色々と情報が出回ってますので、 そちらを参照して下さい。
(新しいことやるのにも、本当に便利な時代になったものですよね)

Harvester Coreは、pipコマンドでインストールします、
これも初めて使ってみましたが、簡単で便利なものですね。

事前に設定しておいたgenicamの環境に切り替えておくのを、お忘れ無く、
あとパッケージ名は、"harvesters"なので気を付けて下さい。
f:id:mengineer:20190507092305p:plain

後で気付いたのですが、上記の手順で追加した"genicam"、
Anacondaでも出てくるんですね。(当たり前ですけど)
f:id:mengineer:20190507093136p:plain

以降はAnaconda Navigator→genicamに切替→Spyderを使って動かしていきます、
今回のネタはここまで。