HALCON——カメラに接続、パラメータを調整、画像を収集

本節では、HALCON を使用して Mech-Eye 産業用 3D カメラを接続、パラメータを設定、画像を収集する方法について説明します。HALCON を使用すれば、GigE Vision2 プロトコルによってカメラを接続することができます。以下の内容について説明します。

事前準備

  • カメラと IPC の接続 を完了します。

    ヒント

    Nano または Pro XS カメラを使用する場合に、スイッチを使用せずに IPC と直接接続することを推奨します。

  • IPC に 20.11 以上の HALCON をインストールします。

    ヒント

    20.11 以下のHAlCONは完全に検証されていません。

  • IPC に 2.0.0 以上の Mech-Eye SDK をインストールします。

    ヒント

    カメラファームウェアとソフトウェアのバージョンが一致しなければ Mech-Eye SDK を使用できません。ファームウェアをアップグレードする場合に、カメラファームウェアのアップグレード をお読みください。

  • カメラと IPC の IP アドレスを同じネットワークセグメントに設定します。

    ヒント

    カメラと IPC の IP アドレスを静的 IP アドレスに設定することを推奨します。IP アドレスに設定については、IP アドレスの設定 をお読みください。


HALCON をインストールすると、以下の方式でカメラを制御できます。

HALCON アシスタントを使用

HALCON アシスタント機能を使用すると、迅速なカメラ接続と画像取得、パラメータ調整が実現可能です。

IPC で HALCON を実行します。アシスタント ‣ 新規作成 Image Acquisition をクリックして Image Acquisition ウィンドウを開きます。

カメラの接続

  1. Image Acquisition ウィンドウの ソース タブで 画像取り込みインターフェース にチェックを入れ、ドロップメニューで GigEVision2 を選択します。

    ../../_images/choose_gigevision2.png

    ヒント

    ドロップメニューには GigEVision2 がなかったら、GigEVision2 の画像取得インターフェースがインストールされていないからです。 HALCON の インストールガイド を参考して、MVTec Software Manager(SOM)を通じてインターフェースをインストールしてください。

  2. 接続 タブで デバイス に接続するデバイスを選択してから 接続 をクリックしてカメラを接続します。

    ../../_images/connect_the_camera.png

    ヒント

    • 正常に接続したら 接続 ボタンが 接続停止 に変わります。ボタンが変わらなければ接続に失敗したことになります。接続を切断するとき、接続停止 をクリックします。

    • カメラが別のクライアントに接続されている時に HALCON に接続することができません。それを切断してから HALCON に接続してください。

    • 長すぎるカメラ名に対して、Mech-Eye Viewer でカメラを接続して カメラ名を設定 して短くすることができます。英語名を推奨します。

画像の取得

カメラを接続したら 接続 タブで スナップ をクリックすると画像を取得できます。

注釈

画像取得の時間を短縮したい場合、 ジャンボフレーム に設定してください。

また、画像を数回取得し、または連続取得することもできます。そのために、AcquisitionMode パラメータを調整します。

  • 数回取得:

    1. パラメータ タブで AcquisitionModeMultiFrame を選択します。

    2. 右上の 更新 をクリックしてから AcquisitionFrameCount に取得回数を設定します。

    3. 接続 タブで ライブ をクリックすると画像を取得できます。

    4. 設定した回数の取得が完了すると、ライブ ボタンが 停止 になります。停止 をクリックして画像取得を停止します。

  • 連続取得:

    1. パラメータ タブで AcquisitionModeContinuous を選択します。

    2. 接続 タブで ライブ をクリックすると画像を取得できます。

    3. ライブ ボタンが 停止 になるとそれをクリックして画像取得を停止します。

注釈

  • AcquisitionModeMultiFrame または Continuous を選択しても スナップ をクリックして画像を一回取得することができます。

  • AcquisitionModeSingleFrame を選択した場合、画像を一回取得することしかできません。

データタイプの選択

カメラを接続した後、デフォルトでは 2D 画像を取得します。DeviceScanType パラメータを調整することで取得するデータのタイプ(2D 画像または深度画像)を選択できます。

  1. パラメータ タブで DeviceScanType にデータタイプを選択します。各タイプの説明は下表に示します。

    オプション

    データタイプ

    Areascan

    2D 画像

    Areascan3D

    深度画像(深度情報を含む 2D 画像)

  2. 画像をキャプチャして選択したタイプのデータを取得します。

ヒント

パラメータ タブの右上の 画像の更新 にチェックを入れると、パラメータを調整したら Canvas ウィンドウの画像は自動的に更新されます。

取得領域の設定

カメラを接続した後、HeightWidthOffsetXOffsetY を調整することで取得した画像をトリミングできます。

以下の手順に従って取得領域を設定します:

  1. 取得領域を設定するデータタイプを選択します。

  2. スナップ をクリックして画像を一回取得して確認します。

  3. パラメータ タブに切り替えて HeightWidthOffsetXOffsetY を調整します。下図では、これらのパラメータとそれぞれが決定する値を示します。

    ../../_images/set_capture_region_1.png
    • Width :取得領域の横

    • Height :取得領域の縦

    • OffsetX :取得領域の左上の角の x 座標(元画像の左上の角の座標は (0, 0) )

    • OffsetY :取得領域の左上の角の y 座標

    注釈

    下記のように以上の四つのパラメータを調整してください:

    • (Width + OffsetX)≦ 元画像の横

    • (Height + OffsetY)≦ 元画像の縦

    元画像の横と縦は 読み取り専用パラメーターWidthMaxHeightMax の値で表示されます(認知度上級者 または プロフェッショナル に設定する必要があります)。

  4. 画像を再度取得してトリミングの結果を確認します。

    ヒント

    パラメータ タブの右上の 画像の更新 にチェックを入れると、パラメータを調整したら Canvas ウィンドウの画像は自動的に更新されます。

  5. コード生成 タブに切り替えて コードの挿入 をクリックして対応するコードを生成します。

  6. 別のタイプのデータに取得領域を設定:

    1. 現在のアシスタントウィンドウでカメラの接続を切断します。

    2. 改めてアシスタントウィンドウを開いてカメラを接続します。

    3. 別のデータタイプを選択して以上の手順を実行します。

注釈

  • 以上の四つの取得領域パラメータは、パラメータグループに保存されません。カメラの電源が切れたらそのパラメータはリセットされます。パラメータを保存したい場合に、コードを生成して保存してください。

  • DeviceScanTypeScan3DBinningEnable パラメータを調整すると、取得領域パラメータの値もリセットされます。

取得領域と Scan3DROI の違い点

Mech-Eye 産業用 3D カメラでは ROI を設定する Scan3DROILeftScan3DROITopScan3DROIHeightScan3DROIWidth パラメータ(合わせて「Scan3DROI」といいます)を調整できます。

取得領域パラメータと Scan3DROI との違い点は下表に示します。ニーズに応じて使用するパラメータを選択してください。

取得領域

Scan3DROI

パラメータグループに保存不能、カメラ電源が切れたらリセットされる

パラメータグループに保存可能

2D 画像も深度画像も設定可能

2D 画像は設定不能

画像をトリミング可能

画像をトリミング不能

HALCON だけに対応

Mech-Eye Viewer の可視化ツールで設定可能

パラメータの調整

より高品質な画像を取得するために、関連するパラメータを調整します。

ヒント

  • カメラがパラメータグループ設定機能に対応できます。パラメータグループを切り替えることで簡単にカメラに異なるパラメータ値を使用することができます。ただし、指定されたパラメータグループでなければパラメータを設定できません。

  • パラメータグループを追加/削除する場合、Mech-Eye Viewer で行ってください。Mech-Eye Viewer でパラメータグループを設定したら、HALCON の パラメータ タブで右上の 更新 をクリックして変更済みのカメラ設定を読み取ります。

パラメータを調整するために以下のステップを実行してください。

  1. カメラを接続してから パラメータ タブで UserSetSelector に調整するパラメータグループを選択します。

    ../../_images/select_parameter_group.png
  2. UserSetLoad の右にある 適用 をクリックして設定を読み取ります。

    注釈

    適用 をクリックしてもパラメータが変更されない場合に再度クリックしてください。

  3. 調整するパラメータの値を変更します。

  4. UserSetSave の右にある 適用 をクリックして設定を保存します。

  5. コード生成 タブに切り替えて コードの挿入 をクリックして対応するコードを生成します。

参考情報:

  • GenICam がサポートするカメラパラメータの説明については、GenICam パラメータ説明 をお読みください。

  • GenICam がサポートするカメラパラメータは Mech-Eye Viewer で使用できるパラメータとはほとんど一致しています。パラメータの対応関係については、GenICam 対応のソフトウェアで使用できるパラメータ をお読みください。

  • 自動露出ROI深度設定ROI などのカメラパラメータを設定するとき、質の高い画像を取得するまで、値を調整するたびに画像を確認してから調整しなければなりません。HALCON では画像の変化を即時に確認することはできませんが、Mech-Eye Viewer ではこれらのパラメータを直感的に設定できます。詳しくは Mech-Eye Viewer を使用して GenICam 対応のソフトウェアにカメラパラメータを設定 をお読みください。

    ヒント

    Mech-Eye Viewer でカメラを接続する前に、カメラと HALCON との接続を切断してください。接続できない場合に、HALCON を終了して再度接続してください。

HALCON サンプルプログラムの使用

当社は、GitHub で HALCON サンプルプログラムを提供しています。カメラの接続、画像の取得、パラメータの調整、データの保存に使用できます。ユーザーは、HALCON サンプルプログラムを直接使用し、またはニーズに応じて編集することが可能です。

注釈

HALCON サンプルプログラムは、C++ で記述されており、HALCON の HDevelop 統合開発環境で直接実行できます。

サンプルプログラムの実行

以下の操作を実行します:

  1. connect_to_camera_and_capture_images サンプルプログラムの取得 については、 Code ‣ Download ZIP を順番にクリックすればダウンロードできます。

  2. HALCON でサンプルプログラムを開きます:HALCON を起動し、サンプルプログラムを HALCON の プログラムウィンドウ にドラッグします。

  3. プログラムウィンドウinfo_framegrabber の行を選択して step_over をクリックするか、F6 を押して実行します。

  4. 制御変数DeviceInfos をダブルクリックして接続可能なカメラを表示します。

    ../../_images/camera_information_1.png
  5. カメラを選択してダブルクリックし、unique_name: あるいは user_name: の後につくカメラ名をコピーします。

    ../../_images/camera_information_3.png
  6. 以下の行で MechEyeunique_name あるいは user_name に取り替えます。

    DeviceInfo := 'MechEye'
    
  7. ツールバーの run ボタンあるいはキーボードの F5 を押します。

  8. サンプルプログラムを正常に実行したら、実行終了後、サンプルプログラムフォルダで取得した 2D 画像と点群を確認できます。デフォルトでは、2D 画像と点群はそれぞれ image2d.bmpPointCloud.ply に名付けられます。

ヒント

  • サンプルプログラムを実行終了後、ツールバーの reset をクリックして ブログラムの実行をリセット してください。そうしなければ Mech-Eye Viewer でカメラを接続することができません。

  • グラフィックスウィンドウで点群を表示したら、このウィンドウで Continue をクリックして実行を続けてください。そうしなければ visualize_object_model_3d 演算子にとどまります。

  • 画像取得の時間を短縮したい場合、IPC で ジャンボフレーム に設定してください。

  • ネットワークの不具合によりデータが失われた場合に、以下のコマンドを使用して失われるパケットの最大許容数を増やすことができます。

    set_framegrabber_param (AcqHandle, '[Stream]GevStreamMaxPacketGaps', ParameterValues)
    

パラメータの調整

より高品質な画像を取得するために、関連するパラメータを調整します。

ヒント

  • カメラがパラメータグループ設定機能に対応できます。パラメータグループを切り替えることで簡単にカメラに異なるパラメータ値を使用することができます。ただし、指定されたパラメータグループでなければパラメータを設定できません。

  • パラメータを追加/削除する場合、Mech-Eye Viewer で行ってください。

パラメータを調整するために以下のステップを実行してください。

  1. 以下の演算子を使用して接続可能なカメラリストを表示します。

    get_framegrabber_param (AcqHandle, 'UserSetSelector_values', ParameterValues)
    
  2. 制御変数ParameterValues で全てのパラメータ値を確認します。

  3. 以下の演算子を使用して変更するパラメータグループを選択します。UserSetSelectorUserSetLoad はカメラパラメータで、それぞれパラメータグループの選択とロードに使用されます。ParameterGroupName を実際のパラメータグループ名に取り換えてください。

    set_framegrabber_param (AcqHandle, 'UserSetSelector','ParameterGroupName')
    set_framegrabber_param (AcqHandle, 'UserSetLoad','ParameterGroupName')
    
  4. 以下の演算子を使用して指定されたパラメータの値を取得します。ParameterName を実際のパラメータグループ名に取り換えてください。ParameterValues は取得したパラメータ値を保存する変数で、ニーズに応じて調整することができます。変数を引用符で囲む必要はありません。

    get_framegrabber_param (AcqHandle, 'ParameterName', ParameterValues)
    
  5. 制御変数ParameterValues でパラメータ値を確認します。

  6. 以下の演算子を使用してパラメータ設定を変更します。ParameterName を実際のカメラパラメータ名に、NewParameterValue を新しいパラメータ値に取り換えます。

    set_framegrabber_param (AcqHandle, 'ParameterName', 'NewParameterValue')
    
  7. 以下の演算子を使用してパラメータ設定の変更をパラメータグループに保存します。UserSetSave はカメラパラメータで、パラメータの設定をパラメータグループに保存するために使用されます。ParameterGroupName を実際のパラメータグループ名に取り換えます。

    set_framegrabber_param (AcqHandle, 'UserSetSave', 'ParameterGroupName')
    

参考情報

  • GenICam がサポートするカメラパラメータの説明については、GenICam パラメータ説明 をお読みください。

  • GenICam がサポートするカメラパラメータは Mech-Eye Viewer で使用できるパラメータとはほとんど一致しています。パラメータの対応関係については、GenICam 対応のソフトウェアで使用できるパラメータ をお読みください。

  • 自動露出ROI深度設定ROI などのカメラパラメータを設定するとき、質の高い画像を取得するまで、値を調整するたびに画像を確認してから調整しなければなりません。HALCON では画像の変化を即時に確認することはできませんが、Mech-Eye Viewer ではこれらのパラメータを直感的に設定できます。詳しくは Mech-Eye Viewer を使用して GenICam 対応のソフトウェアにカメラパラメータを設定 をお読みください。

    ヒント

    Mech-Eye Viewer でカメラを接続する前に、カメラと HALCON との接続を切断してください。接続できない場合に、HALCON を終了して再度接続してください。