共通フィルタ規約

OfArray、OfLoop、OfSeries

多くの演算子(最も簡単な例としてはAddIntegers)は、値の組、配列全体、または連続する反復で現れる値を処理できます。これら3つのケースすべてに対して、フィルタ名に標準的な命名規則が使われています。

  • AddIntegersは2つの値を単に加算します。
  • AddIntegers_OfArrayは整数の配列を1つ受け取り、その要素の合計を返します。
  • AddIntegers_OfLoopには1つの入力と1つの出力があり、現在のタスクが終了するまで、連続する反復で現れる値を加算します。

その他の便利なフィルタの例をいくつか示します。

  • AverageReals_OfArray - 入力配列に含まれる値の平均を計算します。
  • All - 個々の検査(配列に集められたもの)がすべて合格したかどうかを確認するのに使えます。
  • FlattenArray - 複数の配列の結果を1つの配列に結合するのに使えます。
  • MaximumImage_OfLoop - 各位置で最も明るいピクセル値を蓄積するのに使えます。

また、複数の反復からデータを蓄積してから、さらなる処理に渡す前にフィルタが周期的に動作する必要があるケースもあります。そのような場合にはOfSeries接尾辞を使用します。 inSeriesSizeという入力があり、inSeriesSize - 1回の反復ではNil値が返され、1回の反復で複合結果を得ます。そのようなフィルタとして2つあります。

  • JoinImages_OfSeries - N枚の画像を取得し、結合して1枚の画像として返すのに使えます。ラインスキャンカメラで便利な場合があります。
  • JoinProfilesIntoImage_OfSeries - レーザー三角測量アプリケーションで、多数の認識されたレーザー線からの深度の複合画像を作成するのに使えます。

演算のバリエーション

場合によっては、いくつかの異なる方法で実装できる演算があります。Aurora Vision Studioではそのような場合、異なる接尾辞を付けた複数の異なるフィルタが用意されています。例えば:

  • SmoothImage_Mean - 矩形カーネルで画像をスムージングします。
  • SmoothImage_Gauss - ガウシアンカーネルで画像をスムージングします。
  • SmoothImage_Median - 各近傍から中央値のピクセルを選択することで画像をスムージングします。

サードパーティAPIへのラッパー

異なるサードパーティライブラリから出てくる非常に類似した関数もあります。最も典型的な例はさまざまなカメラメーカーのSDKから来るGrabImageフィルタです。フィルタを区別するため、異なる接頭辞を使用しています。

単一、正確にN個、複数のオブジェクト

オブジェクトを検出するツールを使用する際、ユーザーが答えなければならない特定の質問があります。「結果でいくつのオブジェクトを期待するか?」Aurora Vision Studioではデータの型付けを重視しているため、各地点でシングルオブジェクトか配列かを知る必要があります。例えば、各テンプレートマッチングフィルタには2つのバリアントがあります。

単一のオブジェクト(Rectangle2D)を返すフィルタ

オブジェクトの配列(Rectangle2DArray)を返すフィルタ

また、inMinDistance(オブジェクト間の最小距離)のようなパラメータは、その関数の一方でのみ意味を持つことにも注目してください。

また、検出するオブジェクトの数を正確に知っていれば、より高い信頼性を得られるツールもあります。例えば、YYYY/MM/DD形式の日付で正確に10文字あることを知っていれば、テキストを文字に分割するのはずっと簡単になります。このような場合、"ExactlyN"という語句を使用します。以下は、1次元エッジ検出からの注目すべき別の例です。

1つのエッジ点を検出するか、見つからない場合はNilを返す
(Point2D?)

指定された条件を満たすすべてのエッジを検出する
(Point2DArray)

指定された数のエッジを検出する。
その数のエッジが見つからない場合はNilを返す
(Point2DArray?)