TOP > 取扱製品 > Adaptive Vision Studio > Adaptive Vision Studio > データフロー プログラミング

データフロー プログラミング

AdaptiveVisionを使用してサンプルプログラムを作成する様子です。ビジュアル化された画面と簡単な操作で素早くプログラムを作成できます。動画は8倍速ですので、実際にプログラム製作にかかった時間は9分程度です。

 

 

 

Data Flow Programming

 

 

重要:Adaptive Vision Studioでは、低レベルプログラミングの経験は特に必要ありません。それにもかかわらず、プロフェッショナルエンジニアのための専門性の高いツールであり、本格的なビジュアルプログラミング言語です。4つの基本コンセプト(Data,Filter,Connection,Microfilter)を理解する事が重要です。

Data

 

Adaptive Vision Studioは、データ処理環境ですので、dataはその中心概念の一つです。dataについて理解されなければならない最も重要な事は、type(例えばPoint2D)とvalue(例えば、座標(15.7 , 4.1))との違いです。valueが、プログラムの実行中に表れ、処理される情報を表すのに対し、typeは、プロトコルを定義し、プログラム構造を示します。また、 Adaptive Vision Studioは、配列すなわち一緒に処理することができるデータ項目の可変サイズのコレクションをサポートしています。各データ型に対応する配列型があります。例えば、単に4は整数型の値、集合{1,5,4}は整数配列型の値です。ネストされた配列も可能です。

Filter

 

フィルタは、データフロー駆動型プログラミングにおける基本データ処理要素です。一般的なマシンビジョンアプリケーションでは、最初の画像入力に続いて、画像を、領域、輪郭、幾何学的な基本構造に変換する一連のフィルタを経由し、最後に結果をPASS/FAILで示します。 フィルタには、通常、複数の入力と1つまたはそれ以上の出力があります。各ポートは、特定の型(例えば、image , Point2Dなど)があり、互換性のある型のポート間のみを接続することができるconnectionを持っています。未接続の入力の値は、プロパティウィンドウで設定することがででき、また手軽に幾何学的データを定義するためのグラフィカル·エディターも提供されています。フィルタを使用する時、データプレビューパネルを使い出力データを表示させ、分析することができます。
DataFlowProgramming_Filter.png

Connection

 

Connectionはフィルタ間でデータを伝達するが、それらはまた、ループおよび条件文のような複雑で典型的な低レベルプログラミングの構造をカプセル化するのに重要な役割を果たしています。
異なる型のconnectionをサポートしています
Connection_Basic.png  :基本フロー  Connection_Conversion.png :自動接続  Connection_Array.png :相互処理    Connection_Conditional.png:条件処理  
接続型は、”やりたい事をする”をベースに自動的に推論されています。

Macrofilter

 

マクロフィルタは、実際の大きなプロジェクトを構築するための手段として提供されています。それぞれ独自の入力と出力を持つ再利用可能なサブプログラムです。マクロフィルタは、一度作成されプロジェクトエクスプローラウィンドウに表示されたら、他の通常のフィルタとまったく同じ様にドラッグ&ドロップの方法で使用することができます。ほとんどのmicrofilterは(Stepと呼ぶ)ちょうど、プログラムを簡潔に構成するのに役立つ幾つかのフィルタと置き換えとも言えます。しかし、他にも、ネストされたデータ処理ループ(Task)を作成したり、明確に定義された条件パス(変形Step)にプログラムの実行を直接指示することができます。これらの構造によって、いかなる複雑なデータ·フロー·プログラムを”エレガント”に作成することができるのです。
DataFlowProgramming_Macro.png

C++

 

データとその型は、C++と非常によく似ています。 また、std::vector と非常によく似た配列である汎用コレクション型を持っています。フィルタとmicrofilter は、ちょうどfunction関数と同じ様なものです。しかし、単一の戻り値の替わりに、複数の出力値があります。connection は、名前を付ける必要がない変数に対応します。一方、Adaptive Vision Studioでは、ループや条件は、C ++とは非常に異なっています。C++では、配列connectionで行われるのに対し、Adaptive Visionでは、条件付きconnectionと変形Step macrofiltersで行われます。

    • Adaptive Visionのサイトが開きます
    • サンプル・デモ機のお申し込み
    • メールでのお問い合わせはこちら
    • お問い合わせフォーム