(57)【要約】マシンビジョン・システムをネットワークを通して構成するための方法が開示され、前記マシンビジョン・システムは、異質なビジョンプロセッサ（ＶＰ）の組、およびユーザ・インターフェース（ＵＩ）を有する少なくとも１つのホストを含む。本発明の方法は、ＶＰ特性情報を前記ネットワークを通してＶＰからＵＩを有するホストへ送信するステップ、および前記ＵＩを使用して前記ＶＰを前記ネットワーク経由で構成するステップを含む。従って、前記ＵＩを前記ＶＰと合致させる必要はもやはなく、導入、構成、および複数ＶＰビジョン・システムの拡張を簡略化する。また、本発明は、単一のＵＩが実質的に異なる入／出力サポート、通信プロトコル、およびビジョン機能を有するＶＰと接続して構成することを可能にする。
2004535112.tif 000002
【特許請求の範囲】
【請求項１】
マシンビジョン・システムをネットワークを通して構成するための方法であって、前記マシンビジョン・システムは異質なビジョンプロセッサ（ＶＰ）の組、およびユーザ・インターフェース（ＵＩ）を有する少なくとも１つのホストを含み、前記方法が、
ＶＰ特性情報を前記ネットワークを通してＶＰからＵＩを有するホストへ送信し、および
前記ＵＩを使用して前記ＶＰを前記ネットワーク経由で構成する諸ステップから成ることを特徴とする方法。
【請求項２】
前記ＶＰ特性情報が、
複数のＶＰ特性を含むことを特徴とする、請求項１に記載の方法。
【請求項３】
前記ＶＰ特性情報が、
複数のＶＰ識別コード、および
前記ＶＰで実行可能な複数の関数を含むことを特徴とする、請求項１に記載の方法。
【請求項４】
前記ＶＰ特性情報が、
ＶＰ識別コードを含むことを特徴とする、請求項１に記載の方法。
【請求項５】
前記ＶＰ特性情報が、
実行可能なプログラムを含むことを特徴とする、請求項１に記載の方法。
【請求項６】
前記実行可能なプログラムが、
複数のＶＰ関数およびパラメータを構成するのに適合されることを特徴とする、請求項５に記載の方法。
【請求項７】
前記実行可能なプログラムがシン・クライアント上で実行されてＵＩを提供することを特徴とする、請求項５に記載の方法。
【請求項８】
前記ＶＰ特性情報が、
複数のＶＰ識別コードを含むことを特徴とする、請求項１に記載の方法。
【請求項９】
前記ＶＰ特性情報が、
複数の関数を含むことを特徴とする、請求項１に記載の方法。
【請求項１０】
前記ＶＰ特性情報を前記ネットワークを通して送信することが、
前記シン・クライアントを使用して前記ＶＰに接続することを含むことを特徴とする、請求項１に記載の方法。
【請求項１１】
前記シン・クライアントが、ウェブ閲覧ソフトであることを特徴とする、請求項１０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマシンビジョン・システムを構成することに関し、特にネットワークを介してリモート・ビジョンプロセッサを構成することに関する。
【背景技術】
【０００２】
マシンビジョン・システムは、画像を少なくとも処理し解釈するための１または複数のビジョンプロセッサ（ＶＰ）の集合体を含み、ユーザがＶＰと対話および／または制御することを少なくとも可能にするための１または複数のユーザ・インターフェース（ＵＩ）を任意に含む。各ＶＰは１または複数のディジタルカメラに接続され、１または複数のディジタルカメラを通してＶＰは周囲を「見る」（即ち、場面の画像を取得する）。
【０００３】
図１を参照すると、ＵＩおよびＶＰは同じコンピュータ・プラットフォーム上に共存し、この場合にはカメラ１１が取得回路１２経由で汎用プロセッサ１３（例えば、マイクロプロセッサ、ディジタル信号プロセッサ、またはＣＰＵ）に接続される。汎用プロセッサは、共有メモリ経由で互いに通信するＶＰ１４とＵＩ１５を実施するプログラムを実行する。ＵＩは入力装置回路１６経由で１または複数の入力装置（例えば、制御パッド、キーボード、またはマウス）を使用するユーザとインターフェースし、表示回路１７を経由する表示装置（例えば、ＬＣＤディスプレイ、またはコンピュータ・モニタ）でユーザにグラフィカル表示を提供する。
【０００４】
或いは、ＶＰとＵＩは、別々のコンピュータシステムに存在してもよい。この形態は単一のコンピュータビジョン・システムの構成要素を共有するが、異なる汎用プロセッサでＵＩからＶＰを実行する。図２を参照すると、カメラ２１は取得回路２２経由で汎用プロセッサ２３に接続される。このプロセッサは、ＶＰ２４を実施して通信回路２５を経由し通信チャネル２６（例えば、ＲＳ２３２Ｃシリアル接続、またはイーサネット接続）を超えてＵＩを実行中のコンピュータと通信するプログラムを実行する。ＵＩコンピュータ３２は、ＵＩ２９を実施しているプログラムを実行する汎用プロセッサ２８を収容する。ＵＩは、ＶＰコンピュータと通信回路２７および通信リンク２６経由で通信する。ユーザはＵＩを入力装置回路３０に接続された１または複数の入力装置経由で制御でき、グラフィカル出力を表示回路３１経由で表示装置上で見ることができる。
【０００５】
図３を参照すると、もし通信チャネルがネットワークへのアクセスを提供すれば、いくつかの追加的な接続方式も可能であり、各ＵＩ３５はそのネットワーク３６経由でネットワーク化された多くのＶＰ３７，３８，３９の１つと通信できる。ユーザ（特定のビジョンタスクのためにＶＰを構成する開発者、またはオペレーション・フェイズの間ずっとシステムをモニタするオペレータのどちらか）が特定のＶＰと通信することを望むとき、ユーザは新しいＶＰをＵＩにより提供されたリストから選択し、ＵＩに接続を確立するように指示する。この方法で、多くのＵＩが各ＶＰを制御し、各ＵＩが多くのＶＰを制御する。ＶＰの集合体は協働して複雑なビジョン問題を解決することができ、この場合、集合体の各ＶＰはビジョン問題全体の特定部分を解決する。
【０００６】
ビジョン・システムの３つのオペレーション・モードが存在し、３つのオペレーション・モードの間は、異なる動作がＵＩとＶＰの両方で行われる。
１．接続：ＵＩを使用して、開発者またはオペレータは、ＶＰを（ＵＩによってメニューに表示される）利用可能なＶＰの全てのリストから選択する。ＵＩは、ＶＰとの初期通信を確立する。接続フェーズは、ＵＩとＶＰの間のデータ通信を確立する。そのようなデータ接続の１実施例は、ＯＳＩ通信モデルの（クライアント／サーバモデルを使用する）アプリケーション層接続である。
２．設定：ＵＩを通して、開発者が特定のビジョンタスクのために接続されたＶＰを設定する。
３．オペレーション：ＶＰは、設定フェーズの間にユーザによって定義された関数のシーケンスを実行する。ＵＩはＶＰの出力をモニタするためにオペレータによって使用されてもよく、またはＶＰから切り離されて、ＶＰが単体で稼働することを可能にしてもよい。
【０００７】
図４を参照すると、ビジョン・アプリケーションを設計するとき、一般に開発者は特定のＶＰ４１と繋がり、設定４２とオペレーション４３の１または複数のサイクルを行う。開発者が第１のＶＰの設定に満足した後、開発者は第２のＶＰ４４と繋がり、そのシステムの設定４５とオペレーション４６のサイクルを完了する。このプロセスは、同じ型の追加ＶＰに対しても繰り返すことができる。
【０００８】
ユーザの動作に応答して、一定のアプリケーション・プロトコルに従って、ＵＩはコマンドを付加されたＶＰに発行し、応答を付加されたＶＰから受け取る。効率的に通信するために、ＵＩとＶＰの両方は「合致」しなければならない。即ち、ＵＩとＶＰの両方は、使用する特定のプロトコルでアプリオリに一致しなければならない。加えて、ＵＩは、ＶＰの考えられる全ての構成を「知ら」なければならない。例えば、光学式文字認識（ＯＣＲ）を行うための新しいＶＰ関数の追加はＵＩのアップグレードを必要とするので、ユーザはＯＣＲを行うビジョン・アプリケーションを構成する。このことは、上記のようにビジョン・アプリケーションを設計するときに、開発者は均質なＶＰの組から成るビジョン・システムを使用しなけらばならないか、またはビジョン・システムを構成する異なるタイプのＶＰの各々に対して異なるＵＩを操作しなければならないことを意味する。
【０００９】
ＵＩが通信する任意のＶＰと合致しなければならないということは、既存のＶＰの機能を更新し拡張するとき、および古いバージョンと異なる機能を有する新しいＶＰを導入するときに、既知のビジョン・システムにとって深刻な問題である。新しいＶＰに組み込まれる機能の種類は、例えば、
新しい（自然）言語サポート、
サポートされる入出力装置の数とタイプに対する変更、
ＶＰ性能の向上（既存のアルゴリズムの改良、またはＶＰハードウェアのアップグレードによる）、
新しいビジョン・ツール（例えば、ＯＣＲ）の追加、
入出力機能の追加（例えば、ＶＰに対する新しいネットワーク・プロトコルのサポート−＞外部装置通信）、
新しいランタイム・グラフィカル制御および表示の追加、
全機能搭載のシステムに対するコスト的優位を提供するための機能削除を含む。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
今のところ、既知のＵＩは、製造元からの新しいリリースを得ること無しにはこの異なるＶＰ機能をサポートできない。このことは非効率で、不便で、コストが掛かり、継続的なメンテナンスを必要とする。さらに、既知のビジョン・システムは、単一のＵＩが異質なＶＰの組と接続することを可能にできない。
【課題を解決するための手段】
【００１１】
１つの一般的側面では、本発明はネットワークを介してマシンビジョン・システムを構成するための方法であり、マシンビジョン・システムは異質なビジョンプロセッサ（ＶＰ）の組、およびユーザ・インターフェース（ＵＩ）を有する少なくとも１つのホストを含む。本発明の方法は、ＶＰからＵＩを有するホストへネットワークを介してＶＰ特性情報を送信するステップ、およびネットワーク経由でＶＰを構成するためにＵＩを使用するステップを含む。
【００１２】
好ましい実施例では、ＶＰ特性情報は複数のＶＰ特性を含む。他の好ましい実施例では、ＶＰ特性情報は複数のＶＰ識別コード、およびＶＰで実行可能な複数の関数を含む。
【００１３】
或いは、ＶＰ特性情報はＶＰ識別コードだけ、または実行可能なプログラムだけを含む。実行可能なプログラムは、複数のＶＰ関数とパラメータを構成するように適合される。実行可能なプログラムこのクライアントで実行でき、ＵＩを提供する。
【００１４】
他の好ましい実施例では、ＶＰ特性情報は複数のＶＰ識別コード、または複数の関数を含む。
【００１５】
もう１つの側面では、ネットワークを介してＶＰ特性情報を送信することは、シン・クライアント(thin client)を使用してＶＰに接続することを含む。シン・クライアントは、ウエブ閲覧ソフトでもよい。
【００１６】
本発明は、単一のＵＩが異質の多様なＶＰと接続できるようにする。これは、より高度な接続フェーズを含むようにアプリケーション・プロトコルを拡張することにより達成される。この新しい接続フェーズの間、ＶＰはその能力をＵＩに伝達する。次に、ＵＩは、ユーザに提示される内容を現在接続されているＶＰの能力に合致するように変更する。この方法で、単一のＵＩは、異なる能力と利用可能な関数を有する多様なＶＰに接続する。
【００１７】
単一のＵＩが多様な異なるタイプのＶＰに接続するのを許可することは、コストと操作性にかなりのメリットを提供する。本発明では、ＵＩを（ＵＩが接続する）ＶＰと合致させる必要はもはや無く、複数ＶＰビジョン・システムの導入、構成、および拡張を簡単にする。本発明を使用して、単一のＵＩが実質的に異なる入出力サポート、通信プロトコル、およびビジョン機能を用いてＶＰに接続および構成することが可能である。
【発明を実施するための最良の形態】
【００１８】
ＵＩとＶＰの通信のための既存のアプリケーション層プロトコルの拡張を達成する方法が説明される。一般的なクライアント／サーバ・プロトコルはコマンドに基づく。即ち、クライアント（ＵＩ）はコマンドをサーバ（ＶＰ）に発行し、サーバは応答をクライアントに発行する。従って、既存のプロトコルに加えなければならないものの全ては、ＶＰに接続したら直ぐにＵＩが発行する単一のコマンドである。ＶＰがこのコマンドを受信するとき、ＶＰはその能力に対応するデータをＵＩに送信することにより応答する。
【００１９】
好ましい実施例では、ＶＰは一連の数字コードを実行可能な関数のリストおよび十分な添付データと一緒に送信するので、ＵＩは「未知の」マシンビジョン・アプリケーションのセットアップにおいて効率的にユーザを誘導できる。もう１つの考えられる実施例では、接続フェーズの間にＶＰは数字または文字識別コードをＵＩに送信する。ＵＩはＶＰが供給した識別コードを翻訳し、機能の構成だけをＶＰに「理解」させる。第３の実施例では、ＶＰからＵＩへの通信は、ＶＰ関数とパラメータの全てを構成する能力を含む実行可能なプログラムの形式である。
【００２０】
ＶＰのオペレーションは、１組の関数の一連の実行に分解できる。一般的なＶＰオペレーション・サイクルは、３つの関数の実行から成る。例えば、
１．Acquirelmage：ＶＰに接続されたディジタルカメラからの画像を読む関数、
２．ReadBarcode：画像に表示されるＵＰＣバーコードを見つけ出して復号化する関数、
３．WriteSerial：復号化された文字列を外部コンピュータまたは外部装置にＶＰに組み込まれたＲＳ２３２Ｃシリアルポート経由で書き込む関数である。
【００２１】
関数名は完全に任意であり、ＶＰ上に明示的に表示される必要はない。
【００２２】
各関数は１または複数のパラメータを有し、入力パラメータの何らかの組合せに基づく結果を生成する。例えば、cosと名付けられた数学的関数は単一のパラメータを有し、その結果として、（数値）パラメータにより指定される角度のコサインを生成する。より複雑な関数binarizeは、２次元グレースケール画像に対応する単一のパラメータを取り、その結果として、パラメータ画像を最も忠実に近似する２次元白黒画像を生成する。関数のパラメータは定数でもよく、または他の関数の結果でもよい。
【００２３】
パラメータを結果に変換するだけの標準的な関数に加えて、全てのＶＰにとって重要な他の２つのクラスの関数（入力関数、および出力関数）が存在する。入力関数はハードウェア装置からの情報を読み込み、それらの結果は装置の状態により変化する。マシンビジョン・システムにとって中心となる重要な関数は、カメラからの画像を取得する関数（前記のAcquirelmage関数）であり、この場合、関数の結果は、関数が実行されたときの撮像装置またはセンサの状態を忠実に近似する画像である。他の入力関数は、特化された装置経由で、ディジタル入力ライン、シリアルポートまたはイーサネット・ネットワークで送られたデータ、または互換性がある入力装置に接続できる他の外部エンティティの状態を読める。
【００２４】
入力関数と同様に、出力関数も特化されたハードウェア装置と対話する。しかし、それらの挙動は、接続された外部エンティティに状態を明らかにすることである。各関数が明らかにする特定の状態はパラメータに基づき、関数WriteSerialは単一の入力パラメータ（文字列）を取って、その文字列がシステムのシリアルポートを通して書き出されるようにする。他の出力関数は特定の電圧レベルを個々の出力制御ライン上で明らかにし、データをイーサネット・ネットワークを通して書き出すか、または（ユーザに関数パラメータの値について伝えることを目的とする）ＵＩにグラフィカルを表示させる。
【００２５】
ＵＩは、ホスト・オペレーティングシステム（ＯＳ）と一緒に、ビジョン・アプリケーションをユーザが構成するために便利な環境を提供する。図５に示されるように、ＵＩの好ましい実施例はＶＰ関数カテゴリ５１、ＶＰ関数サブカテゴリ５２、およびＶＰ関数５３のグラフィカル表示を提示する。ユーザは、各グループが含む関数を見せたり隠したりするサブカテゴリを表示および非表示にすることができる。強調表示している関数ReadBarCodeに示されるように、ユーザはカーソル５４を入力装置（例えば、マウス、またはキーボード）で所望するＶＰ関数まで動かす。応答では、ＵＩはＶＰ関数の使用方法と構文を記述する関連した関数記述文字列５５をユーザに表示する。
【００２６】
（マウスボタンをクリックすること、またはキーボード・キーを押すことにより）ReadBarcode関数を選択することは、ＵＩにReadBarCode関数に対する詳細な構成情報を表示させる（図６）。ＵＩは関数を入力パラメータ６１で表示し、各パラメータについてのより詳細な情報を表示する。各パラメータに対して、パラメータ名６２，６３がパラメータ値６４，６５の隣の列に示される。カーソル６６を動かすことにより、ユーザはＵＩに関連するパラメータ記述文字列６８を表示させる。特定の関数の実施に依存して、グラフィックス６７は入力パラメータまたは関数結果を記載する。
【００２７】
単一のＵＩが異質なＶＰの組を構成することを可能にするために使用される少なくとも３つの方法が存在する。３つの方法の全てで、ＶＰ７１が通信チャネル７２を通してＶＰの能力の記述７３から成るデータ・ブロックをＵＩ７４へ転送する。第１の方法では、数字または文字識別コードから成る記述が、ＶＰからＵＩへＶＰが実行できる関数の記述と一緒に送信される。ＵＩは、ＶＰで実行可能な関数だけの構成を可能にする。第２の方法では、記述が数字または文字識別コードだけから成る。この方法は第１の方法よりも実施が簡単であるが、同程度の柔軟性を可能にしない。第３の方法では、シン・クライアント（例えば、ウェブ閲覧ソフト）がＶＰに接続し、プロセッサに依存しないプログラムをＶＰからダウンロードする（ここで、記述は暗黙的または明示的にプログラムに含まれる）。クライアントによって実行されるとき、このプログラムは互換性のあるＵＩをクライアントの枠組み内で提供する。
【００２８】
これら３つの方法の全ては、ＵＩが異質なＶＰの組と通信するための手段を提供する。ＶＰが何故異なるか、および単一のＵＩから任意のシステムにアクセスする能力を有することが何故望ましいかについて、考えられる多くの理由が存在する。ＶＰは、わずかに異なる特性を有する異なるバージョンのファームウェアを実行できる。ＶＰは特定ＶＰ向けアプリケーションとして構成され、マシンビジョン・アプリケーションの非常に狭いクラスを解決するように設計される。コスト的理由、または限られたメモリ容量を有するハードウェア・プラットフォームのために、ＶＰは能力を削減されて構成される。最後に、ソフトウェアおよびファームウェア技術が発展するにつれて、新しいツールおよび能力が将来のＶＰに取り入れられ、今日導入されたＵＩが現在利用可能なＶＰおよび将来組み込まれるＶＰと一緒に機能することが望ましい。
【実施例】
【００２９】
（方法１）
この方法を使用して、１組の０または１以上のＶＰ特性が定義され、各特性が数字でラベルされる。ＶＰ特性は、ＵＩを設計するときに構成されることが便利なＶＰの特徴である。例えば、一般的な特性は、ハードウェアの制限（例えば、利用可能なＲＳ２３２シリアルポートの数、利用可能なディジタル入力の数、ならびにＶＰに取り付けられるディジタルカメラの水平および垂直方向のサイズ）を表す。また、特性は、一般的なソフトウェア・コンセプト（例えば、特定の通信プロトコル・サポートの有用性、またはソフトウェア改訂番号）も表す。
【００３０】
ＵＩがＶＰに接続するとき、ＶＰはＵＩにＶＰのタイプを大まかに定義する特性の組を送信する。上記の実施例を使用して、ＶＰは１個のシリアルポート、１０個のディジタル入力、および６４０＊４８０ピクセルの収集サイズの存在を示す数列（１，１０，６４０，４８０）を送信する。列挙された値の任意の符号化が可能であり、他のオプションは人間が読める文字列を含み、例えば「serial 1 digital 10 acquisition 640 480」は同じＶＰ特性を定義するために使用できる。
【００３１】
次の特性の組をＶＰからＵＩへ接続フェーズの間に転送する。
・ファームウェア改訂番号
・ハードウェア・シリアル番号
・特定システム向けのグローバルなソフトウェア構成パラメータ
・現在のＶＰプログラムの内容
【００３２】
・以下を含むＲＳ２３２シリアルポート特性
・シリアルポートの数
・以下を含む各シリアルポートのハードウェア構成
・ボーレート
・パリティ
・データ・ビット
・ストップ・ビット
・ハードウェア・ハンドシェイク
・各シリアルポートの特定システム向けソフトウェア構成（伝達モード、および関係するパラメータを含む）
【００３３】
・以下を含むディジタル入出力特性
・ディジタル入力の数
・ディジタル出力の数
・各ディジタル入力の特定システム向けソフトウェア構成（各入出力に対するオペレーション・モード、および関係するパラメータを含む）
【００３４】
・以下を含むネットワーク・パラメータ
・イーサネットＭＡＣ
・（もし適用可能なら）静的ＩＰアドレス
・サブネット・マスク
・デフォルト・ゲートウェイ
・システム名
・ＤＮＳサーバ・アドレス
・特定システム向けネットワーク・パラメータ
【００３５】
また、ＶＰは、ＶＰによって個別に指定されて実行される全ての関数の構文を送信する。ＵＩは構文仕様を受信し、ユーザがこれらの関数の実行の命令を指定することによりＶＰプログラムを構成することを可能にする。最低限、構文はＶＰ関数記述のリストを含まなければならず、各関数記述は以下を含む。
【００３６】
・関数名
・パラメータの数
この情報を使用して、ＵＩは有効なＶＰ関数の仕様を誘導できる。
より完全な実施例は以下を含む。
・文字列、および関連する数列Ｉｄ(string table)のリスト
・ＶＰ関数カテゴリのリスト。
各関数カテゴリは
・ＶＰ関数サブカテゴリのリストを含む。
各関数サブカテゴリは
・サポートされるＶＰ関数（入出力関数を含む）のリストから成る。
各関数は
【００３７】
・関数名
・関数記述文字列のストリングＩＤ
・関数結果型（整数、浮動小数点、画像、文字列、等）
・パラメータリストから成る。
各パラメータは以下を含む。
・パラメータ名
・デフォルト値（関数が最初に生成させるときに満たされるパラメータ値）
・パラメータ型（入力パラメータの型）から成る。ＵＩはパラメータ型を使用して、ユーザが値をどの様に変更するかを決定する。パラメータ型はBOOLEAN,INTEGER,FLOAT,STRINGまたはENUMERATEDの１つである。
・最小値：パラメータが有効である最小の法定値。
・最大値：パラメータが有効である最大の法定値。
・最小値および最大値、ならびに型は一緒に型ENUMERATEDのパラメータに対するストリングＩＤの任意に列挙されたリストを決定する。ENUMERATEDパラメータは、名前を付けられたパラメータの小さな組から１つの値を取る。
・パラメータ記述文字列のストリングＩＤ。
【００３８】
ＵＩはこの情報を使用して、より適切にユーザをシステム構成において誘導する。図６に示されるように、特定のＶＰ関数のインスタンスを構成するとき、関数名６１が目立つように表示される。また、パラメータ名６２，６３、および各パラメータに対して現在選択されている値６４，６５も表示される。各現在値の表示形式は、パラメータ型に依存する。例えば、数値型のパラメータは浮動小数点数６４として示され、列挙型のパラメータは列挙された文字列６５のリストの１つとして示される。
【００３９】
図８は、如何にしてＵＩが列挙型のパラメータに対するストリングＩＤのリスト８１からの選択を可能にするかを示す。カーソル８２を所望する要素の上に移動させて、マウスボタンをクリックすることにより（または、キーボードの特定のキーを押すことにより）、リストのメンバの１つを選択する。ストリングＩＤの使用は、メモリ容量および必要な通信バンド幅を減少させる。所定のＶＰの多くの関数がパラメータ型を共有するので、ユーザに表示される文字列と説明文が単一のストリング・テーブルに転送されることを助ける。ストリングＩＤは、単一のストリングをストリング・テーブルで指定する数字である。このことは、関数リストのデータの量を著しく減少させる。
【００４０】
ＶＰ関数をカテゴリ５１およびサブカテゴリ５２へ編成すること（図５）は、潜在的に多数の利用可能な関数からの選択においてユーザを支援するために非常に重要である。グループ化の２つのレベルは本システムで十分に検証されたが、少ない関数を有するＶＰも少ないレベルのグループ化から恩恵を受け、多くの関数を有するＶＰも多くのレベルのグループ化から恩恵を受ける。
【００４１】
（方法２）
方法１を簡単にすると、第２の方法を使用して、ＶＰは符号化された特性のリストだけを転送する。ＶＰ関数の記述はＵＩに送信されない。このことは、ＶＰ／ＵＩプロトコルの実施例を、柔軟性を犠牲にして簡略化する。この方法の主な制限は、ＵＩが構成されて導入されるとき、特性および可能な値の完全な組が既知でなければならないことである。もしＶＰの新しいバージョン（多分、新しいビジョン・アプリケーションをサポートするための追加のＶＰ関数）が開発されたら、ＵＩもアップグレードする必要がある。
【００４２】
方法２を使用して、利用可能な関数の組は固有の特性コードとして符号化できる。このことはＶＰが既知の実行可能な全関数のサブセットだけを実施することを許容し、実施されるサブセットをＵＩに伝達することを許容する。しかし、ＵＩが構成されるとき、可能な全関数の組は識別されなければならない。従って、既に記載したように、ＶＰ機能に対する将来の拡張はＵＩの交換に依存する。
【００４３】
（方法３）
最も一般的で柔軟な３つの方法は、汎用「シン・クライアント」コンピュータ・プログラム（例えば、ウェブ閲覧ソフト・プログラム）を利用する。既知のアプリケーション・プロトコル（例えば、ＨＴＴＰ）を利用して、シン・クライアントはＶＰに接続する。次にＶＰは、シン・クライアント・コンピュータで動作する実行可能なプログラムを提供する。ＶＰの能力の記述は、転送されたプログラムの中で符号化される。
【００４４】
この実行可能なプログラムは、クライアント・コンピュータのネイティブ命令セット、または他のはっきり定義された命令セット（例えば、Javaバイトコード）の何れかである。実行可能なプログラムはＶＰによって直接的に提供されるが、実行可能なプログラムは、クライアントにプログラムをそのソースから検索することを要求するネットワーク上のもう１つのコンピュータに存在してもよい。転送されたプログラムを実行することが、ＵＩをクライアント・コンピュータで実現させる。
【００４５】
ＵＩは、単一の型のＶＰとだけ使用してもよい。この場合、異質のＶＰをネットワーク上でサポートするために、各ＶＰは自分のＵＩプログラムをホストコンピュータに提供しなければならない。或いは、各ＵＩプログラムは異質なＶＰの組に独自に接続して構成し、本発明の上記実施例の何れかを実施できなければならない。
【００４６】
以上、本発明の好ましい実施例について図示し記載したが、特許請求の範囲によって定められる本発明の範囲から逸脱することなしに種々の変形および変更がなし得ることは、当業者には明らかであろう。
【図面の簡単な説明】
【００４７】
【図１】ビジョンプロセッサとユーザ・インターフェースの両方が単一のコンピュータの中で実現される単体のマシンビジョン・システムを示すブロック図である。
【図２】汎用通信リンク経由でビジョンプロセッサ・コンピュータに接続されたユーザ・インターフェース・コンピュータを含むマシンビジョン・システムを示すブロック図である。
【図３】ネットワーク経由でユーザ・インターフェース・コンピュータに接続された複数のビジョンプロセッサ・コンピュータを含むネットワーク化されたマシンビジョン・システムを示すブロック図である。
【図４】２ＶＰビジョン・システムを設定するために開発者により実行されるオペレーションのシーケンスである。
【図５】ＶＰ関数およびＶＰ記述のリストを提示するＵＩの好ましい実施例である。
【図６】単一のＶＰ関数のパラメータリストを提示するＵＩの好ましい実施例である。
【図７】ＶＰがその能力の記述をＵＩに転送する本発明のブロック図である。
【図８】単一のＶＰ関数のパラメータリスト拡張された列挙型を示す。
【符号の説明】
【００４８】
１１      カメラ
１２      取得回路
１３      汎用プロセッサ
１６      入力装置回路
１７      表示回路
２１      カメラ
２２      取得回路
２３      汎用プロセッサ
２５      通信回路
２６      通信チャネル
２６      通信リンク
２７      通信回路
２８      汎用プロセッサ
３０      入力装置回路
３１      表示回路
３２      ＵＩコンピュータ
３６      ネットワーク
【図１】
2004535112.tif 000003
【図２】
2004535112.tif 000004
【図３】
2004535112.tif 000005
【図４】
2004535112.tif 000006
【図７】
2004535112.tif 000007
【国際公開パンフレット】
2004535112.tif 000008
2004535112.tif 000009
2004535112.tif 000010
2004535112.tif 000011
2004535112.tif 000012
2004535112.tif 000013
2004535112.tif 000014
2004535112.tif 000015
2004535112.tif 000016
2004535112.tif 000017
2004535112.tif 000018
2004535112.tif 000019
2004535112.tif 000020
2004535112.tif 000021
2004535112.tif 000022
2004535112.tif 000023
2004535112.tif 000024
2004535112.tif 000025
2004535112.tif 000026
2004535112.tif 000027
2004535112.tif 000028
2004535112.tif 000029
2004535112.tif 000030
2004535112.tif 000031
2004535112.tif 000032
2004535112.tif 000033
2004535112.tif 000034
2004535112.tif 000035
2004535112.tif 000036
2004535112.tif 000037
【国際調査報告】
2004535112.tif 000038
2004535112.tif 000039