リアルタイムでパラメーターを変更
露出時間や画像部分を変えながら画像シーケンスをキャプチャしたくても、撮影時にカメラ設定を手動でやり直すのは不便です。簡単にできる方法はないのでしょうか。それがあるのです。
これまで e2v センサー搭載カメラモデル専用だった特殊機能のシーケンサーモードが、IDS Software Suite 4.81 以降を搭載した USB 3 uEye CP Rev. 2 カメラの全ファミリーで利用できるようになりました。初めて使用するユーザー向けに、特別な「uEye シーケンサーモード」が用意されています。
背景
e2v センサーに既存のシーケンス AOI モードとは違い、新しいシーケンサーモードは特殊なセンサー機能ではなく、カメラのファームウェアに実装されています。つまりこの機能はより多くのカメラモデルで利用でき、プログラミング方法は同じでありながら、機能は拡張可能ということです。
新しいシーケンサーモードでは、画像撮影用のさまざまなパラメーターで 32 種類ものシーケンサーセットを定義できます。各シーケンサーセットには以下の設定が含まれます。
- 露出時間
- ゲイン (マスター、赤、緑、青)
- 画像部分 (AOI) の X 位置と Y 位置
シーケンサーセットはカメラ内に保存されます。したがって、ホストソフトウェアと通信しなくても、撮影中にカメラファームウェアで処理できます。パラメーターの変更は自動的に実行され、キャプチャプロセスに遅延は発生しません。シーケンサーセットの順序はユーザーが指定できます。このため、画像取得のパラメーター変更をリアルタイムですばやく実行できます。
新しい「uEye シーケンサーデモ」でシーケンスモードを試してみて、シーケンスモードを用途に合わせて手軽にあらかじめ設定できることを確認できます。
カメラの設定
uEye シーケンサーデモを、[スタート] > [すべてのプログラム] > [IDS] > [uEye] > [Samples] > [uEyeSequencerDemo] の順に選択して起動します。[Select camera] ダイアログで USB 3 uEye CP Rev. 2 カメラを選択して、プログラムを開始します。
最初に、基本的なカメラ設定を調整します。[Camera] > [Acquisition] で、ピクセルクロック、フレームレート、露出時間を設定できます。
[Camera] > [Image Size] で、画像プロファイルを選択し、画像部分 (AOI) を定義できます。ビニングやサブサンプリングを設定することもできます。
代替カメラ設定: uEye Cockpit の使用
カメラを uEye Cockpit でも設定できます。カメラ設定をパラメーターファイルに保存します (TechTip「プログラミングに代わるパラメーター化」を参照してください)。uEye シーケンサーデモで [Camera] > [Load Camera Configuration] の順に選択して、パラメーターファイルをロードできます。
シーケンサーモードの設定
基本的なカメラ設定を指定したら、シーケンサーモードを設定します。メニューバーで [Add Set] ボタンをクリックして、最初のシーケンサーセットを追加します。シーケンサーセットはまだ空です。次にたとえば、デフォルト値とは別の露出時間を追加します。この場合、[Properties] エリアの左側にある [Exposure] をクリックします。最初のシーケンサーセットで、表示された露出時間の入力フィールドを変更できます。
同じようにして、ゲインと AOI の位置 (AOI オフセット X/Y) を設定できます。[Add Set] をクリックして、シーケンサーセットを追加します。
新しいシーケンサーセットは自動的に末尾に追加され、現在マークされているシーケンサーセットと同じ設定が指定されます。
設定の保存
uEye シーケンサーデモで作成したシーケンサー設定を保存できます。[File] > [Save] で、シーケンサー設定を XML ファイルに保存します。
[File] > [Load] の順に選択して、保存したシーケンサー設定を uEye シーケンサーデモにロードできます。ユーザー固有のアプリケーションで、is_Sequencer() API 関数を IS_SEQUENCER_CONFIGURATION_LOAD パラメーターで使用して、あらかじめ設定したシーケンサー設定をロードします。これによって、シーケンサー設定をロードするだけでシーケンサーモードが有効になるので、アプリケーションのプログラミング作業が軽減されます。
シーケンサーモードの使用
シーケンサーセットを設定またはロードしたら、uEye シーケンサーデモのメニューバーで [Run] をクリックして、シーケンサーモードを起動します。[Stop] をクリックするまで、画像が連続してキャプチャされます。
デモでは、uEye シーケンサーデモは連続ソフトウェアトリガー信号を使用して画像キャプチャをトリガーし、リングバッファーを使用して画像データを格納します。
シーケンサーモードはカメラがトリガーモード (ソフトウェアまたはハードウェアトリガー) の場合にのみ機能します。用途に応じて、1 つのトリガー信号で異なるパラメーター化が施された画像をトリガーしたり、トリガーバーストを使用したりすることができます。たとえば、1 つの信号で画像シーケンス全体のキャプチャを開始できます。
用途分野
シーケンスモードは、異なる露出時間やゲイン設定を持つ画像部分をキャプチャする場合に便利です。たとえば、照明や輝度条件が不明な状況などです。ソフトウェアによってブラケティングを実現したり HDR 画像を計算できます。
この方法では、位置が異なる画像セクションもすぐに実現できます。画像部分の移動は、API 経由でプログラミングし直さなくても、シーケンサーモードで直接適用されます。
用途に応じて、十分なサイズのリングバッファーを使用してください。さまざまなパラメーターを持つ画像シーケンスを高速にキャプチャする場合に備えて、画像処理に使用されるデータ量も増加します。
まとめ
シーケンサーモードは、異なるパラメーターを持つ一連の画像を、あらかじめ決められた非常に短い時間内にキャプチャする必要があり、手動でパラメーターを変更していては時間がかかり過ぎる場合に、非常に有効です。
キャプチャパラメーターはシーケンサーモードのカメラで自動的に直接変更され、PC を経由しないので、パラメーター変更によるキャプチャをリアルタイムで実現できます。これにより、最適なプロセスシーケンスが実現します。
シーケンサーモードを使用するには、以下の前提条件があります。
- シーケンサーモードはすべての USB 3 uEye CP Rev. 2 カメラでサポートされますが、UI-359xCP Rev. 2 カメラモデルではサポートされません。
- シーケンサーモードはトリガーモードでのみサポートされます。ハードウェアトリガーとソフトウェアトリガーの両方が可能です。単一画像向けのトリガーと、画像シーケンス全体のためのバーストトリガーモードがサポートされます。
- シーケンサーモードは、画像撮影が開始する前にアクティブ化する必要があります。
- 内部画像メモリを有効にする必要があります。
- シーケンサーモードは、IDS ラインスキャン (AOI マージモード)、マルチ AOI 機能、またはシーケンス AOI モードと組み合わせて使用することはできません。
シーケンサーモードのプログラミングの詳細については、uEye のマニュアル (https://jp.ids-imaging.com/manuals-ueye-software.html) を参照してください。