特徴点応用マッチング(FPM2)

概要

本サンプルプログラムは、特徴点応用マッチング(FPM2)を行います。

使用しているFVILコンポーネント

FVILbasic, FVILforms, FVILdevice

構成

構成図
画像処理装置にはWIL Ver 3.0.0.0以降がインストールされている必要があります。

操作方法

実行画面

[処理画像取得]

Grab One

カメラから画像を取り込みます。画像取り込みが完了するか、エラーが発生するまで待機します。

LoadFile

画像ファイルを読み込みます。読み込む画像はサイズが512*480の濃淡画像にしてください。

[表示関連]

画像エッジ表示

表示中の画像のエッジ表示を行います。

Ascope

画面上に画像の濃度投影グラフを表示します。

[サーチ実行]

サーチ実行

特徴点応用マッチングを実行します。
実行後、サーチ結果は青い枠線の赤い矩形で、基準点は赤い線で、それぞれ表示されます。

[その他]

Save Image

表示中の画像をファイルに保存します。

[Boad設定]

Trigger Mode

トリガモードの設定をします。
ノーマル/内部トリガ/外部トリガ の3つから選択します。

Video Exposure

露光時間の設定を行います。
1〜3276750μsの範囲で指定してください。

[FPM設定]

フィルタ選択

エッジ抽出の為のフィルタ処理方法を選択します。
通常は相関エッジフィルタをお使い下さい。
・相関エッジフィルタ
局所領域内の関数曲線(シグモイド関数)と濃度分布の一致度を計測するフィルタです。
この一致度をエッジ強度としています。
・ソーベルフィルタ
ソーベルフィルタをかけてエッジを検出する方法です。

検索個数

マッチング回答の上限数の設定を行います。

回転角(-180°〜180°)

回転角の設定を行います。
設定範囲を狭くするほど処理時間が早くなります。

スケール

スケールが変わる可能性がある場合、その範囲を指定します。
設定範囲を狭くするほど処理時間が早くなります。

圧縮レベル(0〜5)

サーチ時のエッジデータの圧縮率の設定を行います。
値を大きくするほどエッジの圧縮率が高くなり、処理時間が短縮されます。
その反面検出能力が低下する可能性がありますのでご注意ください。

誤差範囲

テンプレートエッジ点からの誤差範囲の設定を行います。
設定値より距離が離れているエッジ点はマッチング時のスコア計算に加味されません。

低圧縮スコア閾値

低圧縮処理時のスコア閾値の設定を行います。
値を大きくすると回答候補が少なくなる為、処理時間が短縮される可能性があります。
その反面、検出能力が低下する可能性も高くなります。

高圧縮スコア閾値

高圧縮処理時のスコア閾値の設定を行います。
値を大きくすると回答候補が少なくなる為、処理時間が短縮される可能性があります。
その反面、検出能力が低下する可能性も高くなります。

エッジ極性

エッジ極性の設定を行います。
マッチングに使用する対象物と背景との輝度変化の関係を考慮するパラメータです。

マッチング高速モード

マッチング処理の処理モードの設定を行います。

領域スコア算出

マッチング処理で領域スコア算出を行うか否かを指示するフラグの設定を行います。

不可欠領域スコア算出

マッチング処理で不可欠領域スコア計算を行うか否かを指示するフラグの設定を行います。

高精度ポーズ推定

マッチング実行時に高精度ポーズ推定を実行するか否かを示すフラグの設定を行います。

ボーダー処理

特徴量抽出時のボーダー処理を実行するか否かを示すフラグの設定を行います。

処理範囲設定

サーチ範囲を指定します。
設定範囲を狭くし、エッジ数が少なくなると処理時間が早くなる可能性があります。

[領域スコア設定]

<誤差範囲>
X方向並進値

X方向並進値の誤差範囲の設定を行います。

Y方向並進値

Y方向並進値の誤差範囲の設定を行います。

回転角

回転角の誤差範囲の設定を行います。

スケール

スケールの誤差範囲の設定を行います。

誤差範囲

テンプレートエッジ点からの誤差範囲の設定を行います。

<領域スコア算出>
ノイズデータ重み係数

背景領域ノイズデータ重み係数の設定を行います。
0より大きい数値を設定することで減点が有効になり、ノイズと判断された画素の総数に設定値を掛けた値をスコアから減点します。

スコア閾値(領域スコア)

領域スコア算出時のスコア閾値の設定を行います。

<不可欠領域スコア算出>
誤差範囲(画素)

テンプレートエッジ点からの誤差範囲の設定を行います。

スコア閾値(高精度ポーズ)

スコア閾値の設定を行います。

[エッジ検出設定]

エッジ強度閾値

エッジ強度値に対する閾値の設定を行います。

非極大抑制フィルタ片幅

非極大抑制処理のフィルタ片幅の設定を行います。

局所領域横方向サイズ

横方向の局所領域サイズの設定を行います。
許容値:3以上255以下の奇数

局所領域縦方向サイズ

縦方向の局所領域サイズの設定を行います。
許容値:1以上15以下の奇数

シグモイド関数K

シグモイド関数のパラメータ k の設定を行います。
この値は、関数曲線の形状を決めるパラメータです。

分散閾値

分散閾値の設定を行います。
許容値:1以上16384以下

[パタン関連]

パタン登録

パタンの登録を行います。
パタン登録ダイアログが開きますので、パタンとして登録する矩形位置と、パタン基準点を指定してください。

パタン読込

パタン画像ファイルを読み込みます。

パタン表示

パタン表示ダイアログを開きます。

パタン保存

登録したパタン画像をファイルに保存します。

マスク設定

パタンマスク設定ダイアログを開きます。

[Display Size]

x1

等倍表示にします。

Full

画像が画像表示領域内いっぱいに拡大されるよう、表示倍率を変更します。

表示倍率を0.5プラスします。

表示倍率を0.5マイナスします。

AScope

画面上に画像の濃度投影グラフを表示します。

ReLoad Ini File

ビデオ設定ファイルを選択し直します。

Save Image

表示中の画像をファイルに保存します。

パタン登録ダイアログ

実行画面

[パタン登録]

設定

矩形位置と、パタン基準点をパタンとして登録します。

マスクダイアログ

実行画面

[マスク設定]

エッジ表示

表示中の画像のエッジ表示を行います。

パタン表示倍率

表示中の画像の表示倍率を 1倍/2倍/4倍 から選択します。

ペン形状

マスク編集カーソルモードをペン/消しゴムから選択します。
ペン形状のサイズを 1倍/2倍/4倍 から選択します。

マスク設定

設定するマスクをマスク/不可欠領域から選択します。

OK

表示されているマスク情報をマスクとして設定します。

Cancel

表示されているマスク情報を破棄し、マスクダイアログを開く前のマスクを使用します。

注意事項

FVILを使用する場合

      ・.NET Framework 2.0 (SP2)
      ・.NET Framework 4 Full 及び Visual C++ 2010 ランタイム
      ・.NET Framework 4.5 及び Visual C++ 2012 ランタイム

のいずれかが必要です。


本サンプルプログラムを使用する場合は、GAC への登録が必要になります。
※GAC への登録の詳細は、WIL説明書の環境設定を参照してください。

本サンプルプログラムを使用する際には、使用許諾事項を必ずお読みください。