(57)【特許請求の範囲】
【請求項１】
コンピュータシステムを使用するマシンビジョンシステムに使用するための図形制御の流れ構造及び関連アプリケーションソフトウェアを会話形で開発する方法において、上記構造は、少なくとも１つのノードと、少なくとも１つの遷移と、上記少なくとも１つノードと上記少なくとも１つの遷移とを相互接続するための少なくとも１つのリンクを有する制御シーケンスを含んでおり、上記方法は、
上記マシンビジョンシステムのためのユーザインタフェースの可能構成要素を表す第１の組の制御プログラムを含むアプリケーション開発プログラムを格納するステップを含み、上記第１の組の制御プログラムは第１の組の標準制御を定義し、
上記マシンビジョンシステムのための可能マシンビジョンアルゴリズムを表す第２の組の制御プログラムを格納するステップを更に含み、上記第２の組の制御プログラムは第２の組の標準制御を定義し、
上記マシンビジョンシステムに使用するための可能ハードウェアに対応するハードウェア動作パラメータを格納するステップを更に含み、上記ハードウェア動作パラメータは第３の組の標準制御を定義し、
上記可能構成要素、可能ハードウェア、及び可能マシンビジョンアルゴリズムを表す図形を表示するステップと、
上記コンピュータシステムのユーザから命令を受け、上記ユーザインタフェースの所望の構成要素に対応する第１の制御プログラム、所望のハードウェアに対応する所望のハードウェア動作パラメータ、及び所望のマシンビジョンアルゴリズムに対応するマシンビジョン図形表現及びその関連する第２の制御プログラムを選択するステップと、
上記マシンビジョン図形表現が上記構造のノードであるような上記構造を表示するステップと、
を更に含み、
上記選択された第２の制御プログラムは上記ノードにおいて上記構造内へマップされ、上記表示された構造は少なくとも１つの遷移及び上記ノードと上記少なくとも１つの遷移とを相互接続するための少なくとも１つのリンクを更に有し、
ユーザが何等のアプリケーションソフトウェアを書き込むことなく、上記命令に応答して所望のハードウェア動作パラメータを有する上記第１の制御プログラムを上記第２の制御プログラムにリンクして上記アプリケーションソフトウェアを形成するリンキングステップ、
を更に含んでいることを特徴とする方法。
【請求項２】
上記標準制御はプロパティを含み、上記リンキングステップは上記標準制御の上記プロパティをセットするセッティングステップを含んでいることを特徴とする請求項１に記載の方法。
【請求項３】
上記セッティングステップは、１つの標準制御の１つのプロパティを別の標準制御の１つのプロパティに等しくなるようにセットするステップを含んでいることを特徴とする請求項２に記載の方法。
【請求項４】
上記構造はトップ及びボトムを有する階層を有し、上記階層はボトムアップまたはトップダウン開発を可能にすることを特徴とする請求項１に記載の方法。
【請求項５】
上記マシンビジョンシステムに使用するための可能ソフトウェアプロダクツを表す第３の組の制御プログラムを格納するステップと、
上記可能ソフトウェアプロダクツのマシンビジョン図形表現を表示するステップと、
上記構造内の選択されたソフトウェアプロダクツの図形表現を、別のノードとして、または上記構造の上記ノードへの入力／出力として表示するステップと、を更に含み、
上記リンキングステップは、上記命令に応答して、所望のソフトウェアプロダクツに対応する第３の制御プログラムを、上記第１及び第２の制御プログラム及び上記所望のハードウェア動作パラメータにリンクして上記アプリケーションソフトウェアを形成するステップ、
を更に含んでいることを特徴とする請求項１に記載の方法。
【請求項６】
上記所望のハードウェア動作パラメータは、上記マシンビジョンシステムの所望の画像源に対応することを特徴とする請求項１に記載の方法。
【請求項７】
上記所望の画像源は、ビデオカメラであることを特徴とする請求項６に記載の方法。
【請求項８】
上記所望の動作パラメータは、上記マシンビジョンシステムの所望のビジョンプロセッサボードに更に対応することを特徴とする請求項６に記載の方法。
【請求項９】
上記所望のハードウェア動作パラメータは、上記マシンビジョンシステムの所望のフレームグラバボードに更に対応することを特徴とする請求項６に記載の方法。
【請求項１０】
上記所望のハードウェア動作パラメータは、上記マシンビジョンシステムの所望のモーションボードに更に対応することを特徴とする請求項６に記載の方法。
【請求項１１】
上記所望のハードウェア動作パラメータは、上記マシンビジョンシステムの所望のバスに更に対応することを特徴とする請求項６に記載の方法。
【請求項１２】
上記所望のマシンビジョンアルゴリズムは、画像処理アルゴリズムであることを特徴とする請求項６に記載の方法。
【請求項１３】
上記所望のマシンビジョンアルゴリズムは、画像解析アルゴリズムであることを特徴とする請求項６に記載の方法。
【請求項１４】
上記所望のマシンビジョンアルゴリズムは、較正スペースアルゴリズムであることを特徴とする請求項６に記載の方法。
【請求項１５】
上記所望のマシンビジョンアルゴリズムは、会話形のＣＡＤ／ジオメトリアルゴリズムであることを特徴とする請求項６に記載の方法。
【請求項１６】
上記コンピュータシステムは、パーソナルコンピュータを含んでいることを特徴とする請求項６に記載の方法。
【請求項１７】
マシンビジョンシステムに使用するための図形制御の流れ構造及び関連アプリケーションソフトウェアを会話形で開発するコンピュータシステムにおいて、上記構造は、少なくとも１つのノードと、少なくとも１つの遷移と、上記少なくとも１つノードと上記少なくとも１つの遷移とを相互接続するための少なくとも１つのリンクを有する制御シーケンスを含んでおり、上記コンピュータシステムは、
上記マシンビジョンシステムのためのユーザインタフェースの可能構成要素を表す第１の組の制御プログラムを含むアプリケーション開発プログラムを格納する手段を備え、上記第１の組の制御プログラムは第１の組の標準制御を定義し、  上記マシンビジョンシステムのための可能マシンビジョンアルゴリズムを表す第２の組の制御プログラムを格納する手段を更に備え、上記第２の組の制御プログラムは第２の組の標準制御を定義し、
上記マシンビジョンシステムに使用するための可能ハードウェアに対応するハードウェア動作パラメータを格納する手段を更に備え、上記ハードウェア動作パラメータは第３の組の標準制御を定義し、
上記可能構成要素、可能ハードウェア、及び可能マシンビジョンアルゴリズムを表す図形を表示するディスプレイと、
上記コンピュータシステムのユーザから命令を受け、上記ユーザインタフェースの所望の構成要素に対応する第１の制御プログラム、所望のハードウェアに対応する所望のハードウェア動作パラメータ、及び所望のマシンビジョンアルゴリズムに対応するマシンビジョン図形表現及びその関連する第２の制御プログラムを選択する手段と、
を更に備え、
上記ディスプレイは上記マシンビジョン図形表現が上記構造のノードであるような上記構造を表示し、上記選択された第２の制御プログラムは上記ノードにおいて上記構造内へマップされ、上記表示された構造は少なくとも１つの遷移及び上記ノードと上記少なくとも１つの遷移とを相互接続するための少なくとも１つのリンクを更に有し、
ユーザが何等のアプリケーションソフトウェアを書き込むことなく、上記命令に応答して所望のハードウェア動作パラメータを有する上記第１の制御プログラムを上記第２の制御プログラムにリンクして上記アプリケーションソフトウェアを形成するリンキング手段、
を更に備えていることを特徴とするコンピュータシステム。
【請求項１８】
上記標準制御はプロパティを含み、上記リンキング手段は上記標準制御の上記プロパティをセットするセッティング手段を含んでいることを特徴とする請求項１７に記載のコンピュータシステム。
【請求項１９】
上記セッティング手段は、１つの標準制御の１つのプロパティを別の標準制御の１つのプロパティに等しくなるようにセットすることを特徴とする請求項１８に記載のコンピュータシステム。
【請求項２０】
上記構造はトップ及びボトムを有する階層を有し、上記階層はボトムアップまたはトップダウン開発を可能にすることを特徴とする請求項１７に記載のコンピュータシステム。
【請求項２１】
上記マシンビジョンシステムに使用するための可能ソフトウェアプロダクツを表す第３の組の制御プログラムを格納する手段、
を更に備え、
上記ディスプレイは、上記可能ソフトウェアプロダクツの図形表現、及び上記構造内の選択されたソフトウェアプロダクツの図形表現を、別のノードとして、または上記構造の上記ノードへの入力／出力として表示し、
上記リンキング手段は、上記命令に応答して、所望のソフトウェアプロダクツに対応する第３の制御プログラムを、上記第１及び第２の制御プログラム及び上記所望のハードウェア動作パラメータにリンクして上記アプリケーションソフトウェアを形成する、
ことを特徴とする請求項１７に記載のコンピュータシステム。
【請求項２２】
上記所望のハードウェア動作パラメータは、上記マシンビジョンシステムの所望の画像源に対応することを特徴とする請求項１７に記載のコンピュータシステム。
【請求項２３】
上記所望の画像源は、ビデオカメラであることを特徴とする請求項２２に記載のコンピュータシステム。
【請求項２４】
上記所望の動作パラメータは、上記マシンビジョンシステムの所望のビジョンプロセッサボードに更に対応することを特徴とする請求項２２に記載のコンピュータシステム。
【請求項２５】
上記所望のハードウェア動作パラメータは、上記マシンビジョンシステムの所望のフレームグラバボードに更に対応することを特徴とする請求項２２に記載のコンピュータシステム。
【請求項２６】
上記所望のハードウェア動作パラメータは、上記マシンビジョンシステムの所望のモーションボードに更に対応することを特徴とする請求項２２に記載のコンピュータシステム。
【請求項２７】
上記所望のハードウェア動作パラメータは、上記マシンビジョンシステムの所望のバスに更に対応することを特徴とする請求項２２に記載のコンピュータシステム。
【請求項２８】
上記所望のマシンビジョンアルゴリズムは、画像処理アルゴリズムであることを特徴とする請求項２２に記載のコンピュータシステム。
【請求項２９】
上記所望のマシンビジョンアルゴリズムは、画像解析アルゴリズムであることを特徴とする請求項２２に記載のコンピュータシステム。
【請求項３０】
上記所望のマシンビジョンアルゴリズムは、較正スペースアルゴリズムであることを特徴とする請求項２２に記載のコンピュータシステム。
【請求項３１】
上記所望のマシンビジョンアルゴリズムは、会話形のＣＡＤ／ジオメトリアルゴリズムであることを特徴とする請求項２２に記載のコンピュータシステム。
【請求項３２】
上記コンピュータシステムは、パーソナルコンピュータを含んでいることを特徴とする請求項２２に記載のコンピュータシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マシンビジョンシステムに使用するための図形制御流れ、及び関連アプリケーションソフトウェアを会話形で開発する方法及びシステムに関する。
【０００２】
【従来の技術】
ビジョンツールは伝統的に、１組のツールを作成し、使用し、そして一緒に構成できるようになっているＣ＋＋、デルファイ、またはビジュアルベーシックのようなプログラミング環境内に一緒にプログラムされている。若干の環境は、他の環境よりもプログラムすることが容易であるが（例えば、ビジュアルベーシックは、Ｃ＋＋よりも容易である）、それでも、それらはそのプログラミング環境の知識を必要とする。
【０００３】
Silverらの米国特許（第5,481,712号）は、マシンビジョン解析のためのコンピュータプログラムを“Ｃ”により会話形で生成する方法及びシステムを開示しており、このプログラムは、このプログラムに対する構文的な修正変更のみをオペレータ（即ち、プログラマ）だけに許している。メニュー要素は、関心位置について許容されるプログラミング変更を表示する。メニュー要素は、マシンビジョンへの呼出し、サブルーチン、及び機能のようなオブジェクト画像のマシンビジョン解析のために、許容されるプログラミング変更文をその表示内に組み入れている。コンピュータプログラムは、所定のツール及び操作によって、閉ざされた、即ち所有権を主張できる（もしくは、プロプラエタリ）パッケージを介してプログラムされる。
【０００４】
Lipkisらの米国特許（第4,914,567号）は、視覚言語を使用する設計システムを提供している。このシステムは、構造、仕様、及び操作を含む制御システムの視覚ユーザプレゼンテーションを使用する。視覚要素によってユーザは、動作特性を会話形で設計し、変更し、そして探査することができる。状態変数をセットし、試験するためのグラフセット（ Grafcet ）をベースとする図形制御流れ言語が記載されている。付加的な特色は、アプリケーション・人工ビジョンシステム、オブジェクト指向アプリケーションプラットフォーム、トップダウン設計、及び変数値のセッティングである。このシステムは、グラフセットとＭＡＰ技術とをリンクする。
【０００５】
Rumbaughらの米国特許（第5,005,119号）は、コンピュータプログラム及び入力／出力データ流れの対応バージョンのユーザによる会話形制御を提供している。ＣＡＤタスクのためのプログラム、及びそれらの関連データセット要求はフローグラフとして視覚的に表示され、ユーザはそれを用いて入力データセットを選択し、プログラム実行を開始する。
【０００６】
Endoの米国特許（第5,327,350号）は、入力データに基づいてマシンプログラムを作成することによって、マシンツールの動作を制御するための会話形データ入力機能を提供している。
【０００７】
Fujitaらの米国特許（第5,383,110号）は、表示画面上に表示された質問に応答して数値制御プログラムを生成する特色を追加している。
【０００８】
Kahnの米国特許（第5,157,663号）は、コンピュータプログラムの作成、制御、及び実行のための動画化されたユーザインタフェースを提供している。このインタフェースによりユーザは、会話形の視覚的手法でプログラムを作成することができる。アニメーションがコンピュータプログラミングと統合され、ユーザはプログラミングの流れ及び動作を視覚化することができる。
【０００９】
Laneらの米国特許（第4,679,137号）は、設計者及びオペレータのためのプロセス制御インタフェースシステムを提供している。プロセス制御プログラムによって使用される動作パラメータの定義及び選択中、ダイナミックメニュー要素が使用される。各データ構造は、データ構造のパラメータを定義する値指標を含んでいる。
【００１０】
Iadipaoloらの米国特許（第4,759,074号）は、マシンビジョンと、それを使用するシステムを使用して部品を自動的に検査する方法を提供している。このシステムは、特色を検査する一連のステップによって示されている。典型的な特色、並びに許容差は、参照データを開発するためにプログラマによって定義される。
【００１１】
Haywardらの米国特許（第5,574,828号）、Abdel-Malekの米国特許（第5,517,147号）、Kuwaharaらの米国特許（第4,833,624号）、Wrightらの米国特許（第5,453,933号）、Spightの米国特許（第4,462,046号）、Gordonの米国特許（第5,314,055号）は、それぞれロボットまたはＣＮＣマシンツール環境のための一般的なユーザ会話形プログラミング技術を示している。
【００１２】
オートメーションワールド（即ち、ＰＬＣのための）においては、オートメーション制御のための構文を定義するために、グラフセット及びＩＥＣ  １１３１のような開かれた標準が存在している。
【００１３】
【課題を解決するための手段】
本発明の目的は、ユーザがどのようなコードをも書き込むことなく、イメージングプログラミングタスクをコンピュータに教えるようになっているマシンビジョンシステムに使用するためのアプリケーションソフトウェアを会話形で開発する方法及びシステムを提供することである。従って、ユーザはプログラマである必要はない。典型的には、プログラムされたコンピュータはユーザの意図を問い合わせ、タスクが完全に教えられるまでユーザの選択を案内する。このプロセス中、ユーザは単一の命令行を書き込むことはなく、そうではなく、マシンビジョンツールが会話形で要求する変数をセットする。若干のマシンの出力は、典型的には、別のツールの入力である。
【００１４】
本発明の別の目的は、ボトムアップまたはトップダウンプログラム開発を可能した、そしてそれによってユーザの考えに合わせた階層でアプリケーションソフトウェアを開発することができるようなマシンビジョンシステムに使用するためのアプリケーションソフトウェアを会話形で開発する方法及びシステムを提供することである。例えば、ある距離を測定するためにルーラーツールは２つの入力ジオメトリを要求し、それから距離を出力する。エッジツールはエッジを確定することができ、特色探索ツールはある点を確定するために突き合わせを行う。これらの両者はルーラーツールへ入力することができる。ユーザはトップダウンを開始することができる。即ち、彼は最初に測定を考え、システムは入力ジオメトリを定義するために彼を案内する。代替として、ユーザはボトムアップを考えて先ずジオメトリを定義し、次いでそれらの間の測定を行うことを決定できる。
【００１５】
本発明の更に別の目的は、マシンビジョンシステムに使用するためのアプリケーションソフトウェアを会話形で開発する方法及びシステムを提供することであり、この方法及びシステムは、（アクティブＸ（ ActiveX ）制御のような標準制御を使用することによって）サード・パーティツールを容易に統合することを可能にする。制御の標準プロパティを他のツールへ入力または出力することを可能にするだけではなく、ジオメトリのようなオブジェクトを他のツールへの入力及び出力として使用することもできる。
【００１６】
本発明の更に別の目的は、教えられたタスクを通る流れを表すために、変更されたグラフセット標準を使用して標準制御及びオブジェクトをステップ及び遷移の一部として受入れるようになっているマシンビジョンシステムに使用するためのアプリケーションソフトウェアを会話形で開発する方法及びシステムを提供することである。グラフセット標準においては、遷移は、実行判断を行うために、どのような制御のプロパティまたはオブジェクトにもアクセスすることができる。
【００１７】
本発明の上述した目的及び他の目的を達成するために、コンピュータシステムを使用するマシンビジョンシステムに使用するための図形的な制御流れ構造と、関連アプリケーションソフトウェアとを開発する方法を提供する。この構造は、少なくとも１つのノード、少なくとも１つの遷移、及び上記少なくとも１つのノードと上記少なくとも１つの遷移を相互接続するための少なくとも１つのリンクを有する制御シーケンスを含む。本方法は、マシンビジョンシステムのためのユーザインタフェースの可能構成要素を表す第１の組の制御プログラムを含むアプリケーション開発プログラムを格納するステップを含む。第１のセットの制御プログラムは、第１のセットの標準制御を定義する。本方法は、マシンビジョンシステムのための可能マシンビジョンアルゴリズムを表す第２の組の制御プログラムを格納するステップを更に含む。第２のセットの制御プログラムは、第２のセットの標準制御を定義する。本方法は、マシンビジョンシステムに使用するための可能ハードウェアに対応するハードウェア動作パラメータを格納するステップを更に含む。ハードウェア動作パラメータは、第３の組の標準制御を定義する。本方法は、可能構成要素、可能ハードウェア、及び可能マシンビジョンアルゴリズムを表す図形表現を表示するステップを更に含む。次いで、本方法は、コンピュータシステムのユーザから命令を受け、ユーザインタフェースの所望構成要素に対応する第１の制御プログラム、所望のハードウェアに対応する所望ハードウェア動作パラメータ、及び所望マシンビジョンアルゴリズムに対応するマシンビジョン図形表現及びその関連する第２の制御プログラムを選択するステップを含む。本方法は、この構造を表示するステップをも含む。図形表現は、構造のノードである。選択された第２の制御プログラムは、そのノードにおいて構造内へマップされる。表示された構造は、少なくとも１つの遷移、及びそのノードと少なくとも１つの遷移とを相互接続するための少なくとも１つのリンクをも有している。最後に、本方法は、ユーザがどのようなアプリケーションソフトウェアをも書き込むことなく、命令に応答して所望のハードウェア動作パラメータを有する第１の制御プログラムと第２の制御プログラムとをリンクしてアプリケーションソフトウェアを形成するステップを含んでいる。
【００１８】
本発明の上述した目的及び他の目的を達成するために、上記方法の諸ステップを遂行するためのシステムを提供する。
【００１９】
本発明の方法及びシステムによって得られる恩恵は数多くある。例えば、本方法及びシステムは、
１）コンピュータプログラムを会話形で生成／“教え”、
２）２つの標準、即ちアクティブＸ（即ち、制御）とグラフセット及びその派生ＩＥＣ  １１３１とを結合させ、（即ち、アクティブＸ標準とグラフセット１３１１とは互いにリンク済みである。その結果、アクティブＸ挙動はその方法を介して制御される。その特性はプロパティをセットすることによって制御される。アクティブＸイベントはグラフセットパラダイム内のシーケンシングを制御することができる）。
３）グラフセット／ＩＥＣ  １１３１標準は今ではリファイン済みであり、（遷移は、あるアクティブＸ制御によって生成されたイベントである「真」（省略時の場合）、または何れかのアクティブＸ構成要素の内部変数またはプロパティによって定義されるブール表現の何れかであることができる）、
４）グラフセット標準内のあるステップが、今ではどのようなサード・パーティアクティブＸ制御方法、または新しい内部変数の定義をも可能にする数学的ステップの何れかであり、
５）教えの環境が、アルゴリズムを、ボトムアップまたはトップダウン教えアプローチを可能にする階層で定義することを可能にし、
６）ビジョンと制御とを組合わせ、そして
７）どのようなサード・パーティアクティブＸ制御の統合をも可能にする。
【００２０】
コンピュータプログラムを会話形で生成することの陰のアイデアは、プログラマが彼のコードを作る時に構文を誤ることができないようにすることである。従ってこの環境は、メニュー及び適切なインタフェース構造を介して、構文的に正しいコードを作るようにプログラマを案内する。対処すべき問題は、コンピュータ言語が典型的には厳格に定義されており、構文の誤りを許さないことである。
【００２１】
第２のアイデアは、システムオペレータが熟練したプログラマである必要をなくすことである。むしろ彼は、主にそのアプリケーションを理解しているアプリケーションエンジニアであることができ、プログラマである必要はない。現在では、梯子型ロジック及びグラフセット型言語でのプログラミングを使用するために、オートメーションエンジニアが使われている。アプリケーションを熟知しているエンジニアはこれらの環境に習熟しており、このアプリケーションに提示される会話形環境はこれらのエンジニアのためのものである。
【００２２】
本アプリケーションの方法及びシステムは、それがグラフセットの標準を採用し、それを別の標準（即ち、リンクインすることができるアクティブＸ制御）と統合できるように変更したことが、上述した例とは異なっている。
【００２３】
従って、本発明の第１の独特な特色は、アクティブＸ制御として書かれているマシンビジョンまたはオートメーション内のどのようなサード・パーティツールその他でも、この会話形の環境内にリンク可能にしたことである。現在までのところ、サード・パーティ構成要素と会話し、明確に何等かのアクティブＸ制御の構成を有する会話形環境は存在していない。
【００２４】
アクティブＸ制御は広く受入れられるようになりつつあり、多くの会社から多くのものが生産されつつある。これらは、互いにリンクすることができ、構文の誤りを発生する恐れがあるコードを書き込まずに使用することができる。制御シーケンスは、イベント、タイマ、及び変数設定によりトリガーされるようにセットされている。この会話形の変更されたグラフセット／ＩＥＣ  １１３１環境は、アクティブＸ制御のプロパティを読んでこれらをセットするか、または他の制御の他のプロパティにリンクさせることを可能にする。オペレータは、制御上でどれを走らせるか、１つまたは複数の方法を選択することができ、制御によって点弧されるイベントはロジックを順番付けるために使用される。従って、本発明は、現標準インタフェースを見ることによって、何等かのサード・パーティアクティブＸ制御がどのように挙動するかをセットする。
【００２５】
本発明の第２の独特な特色は、オペレータが、彼等がプログラムする方法でトップダウンまたはボトムアップを考えることができるメニュー構造である。従って我々は、ヒューマンオペレータに類似の原理体系を定義して検査ルーチンを定義する。これは、システムの使用を必要とする人の型に注意を向けている。我々は、オペレータがアプリケーションの知識を有していることを望んではいるが、必ずしも彼がまたプログラマであることは望まない。オペレータが、２つの点間の距離を測定することを望む場合の例を考えよう。彼は先ず計測を考え、あるルールアクティブＸ制御から開始することができる。会話形環境は、ルーラーアクティブＸ制御に質問した後に、２つのジオメトリを要求されていることを知る。次いで会話形環境は全ての使用可能なアクティブＸ制御に問い合わせ、どれをオペレータに提示するのかを決定する。従って、オペレータは線、点、または他の使用可能なジオメトリの間を選択することができる。オペレータは、新しいジオメトリまたは既存ジオメトリを定義するために選択することができる。代替として、オペレータは先ず点を考え、これらの点を確定するように進む。次いで、彼は計測を考え、既に確定されている点間を測定するためにルーラーアクティブＸ制御を選択する。この例においては、オペレータが先ずジオメトリを考えるか、または先ず計測を考えるかは無関係である。両アプローチが作業し、会話形環境はどのような構文の誤りをも生ずることなく走るプログラムを作る。全プログラミングシーケンスは、メニュー及びアイコンを通して、ドラッグ・アンド・ドロップ環境内で行われる。
【００２６】
本発明の第３の特色は、ツール間でデータを交換するために所定のインタフェースを支援することである。省略時解釈によってアクティブＸ制御はフロート、二重ストリング、整数等のような１組の所定の変数を出現させる。本発明は、ユーザが彼自身の所定のオブジェクトを出現させることを可能にし、そしてこれらを異なるアクティブＸ制御の間に渡した別のインタフェース（ＣＯＭＭ）を出現させる。この定義されたインタフェースにより、異なるユーザが定義したオブジェクトを異なるアクティブＸ制御の間で管理することが可能になる。
【００２７】
本会話形グラフセット／アクティブＸ環境の第４の特徴は、ユーザフレンドリな手法で、アクティブＸ制御の間でデータを操作できるようにする数学的構成要素である。
【００２８】
用語解説
アクティブＸ制御：プログラム可能な要素のためにマイクロソフトによって定義された名前であり、以前はＯＬＥ制御、ＯＣＸ、またはＯＬＥカスタム制御としてさまざまに知られていたものである。これは、構成要素オブジェクトモデル上に構築された構成要素技術を使用する。一般的に言えば、アクティブＸ制御はあるオブジェクトであって、インスタンス生成された時に、それが操作する特定データ及び機能の両者を実現する。アクティブＸ制御は、状態、挙動、及びアイデンティティを有するエンティティである。オブジェクトの状態は、プロパティとしても知られているその属性と、それらの属性の現在値とからなる。オブジェクトの挙動は、それに対して遂行することができる操作（方法）と、付随する状態変化とからなる。オブジェクトのアイデンティティは、他のオブジェクトからそれを区別するために使用されるものである。最後に、アクティブＸ構成要素は、何かが発生した時に通知するイベントを有している。これに対して、ＣＯＭオブジェクトの挙動は、それが支援するインタフェースによって定義される。ＣＯＭオブジェクトの状態は明示的に指定されないが、そのインタフェースによって暗示される。
【００２９】
ＣＯＭ：ディジタルイクィップメント及びマイクロソフトコーポレーションによって承認されているオブジェクト指向技術に基づくアプリケーションのためのクロスプラットフォーム開発用の開かれたアーキテクチャ。構成要素オブジェクトモデルは、インタフェース（抽象ベースクラスに類似）「未知」を定義し、それから全てのＣＯＭ互換性のあるクラスが導出される。
【００３０】
イベント：状態変化またはユーザ動作に応答してオブジェクトから送られる通知メッセージ。
【００３１】
グラフセット：グラフセットは、初めにフランスのＡＦＣＥＴ（Association Francais pour la Cybernetique Economique et Technique）によって開発され、国際標準になった図形プログラミング言語である。グラフセット言語は、オートメーションシステムの機能をステップ及び遷移のシーケンスとして表し、指示されたフローラインが２つを接続している。これは、ステップが逐次または時間依存であるように、問題を逐次制御するために特別に設計されたものである。グラフセットシーケンス内の各ステップはオートメーションプロセスにおける安定な状況を表し、それに関連する１つまたはそれ以上の動作を有しており、一方遷移は１つのステップから次のステップへの進展の可能性を指示する。各遷移にはブールイベントが関連している。シーケンスは、ある条件またはある並列実行の流れを表すことができる分岐構成体によって互いにリンクすることができる。単一のフローラインは、ステップと遷移とを互いにリンクして実行の流れを指示するために使用される。二重フローラインは、プログラム内の２つまたはそれ以上のステップを同期させなければならない時に使用される。
【００３２】
ＩＥＣ  １１３１：国際電気標準会議によって規定された標準であって、プログラム可能なコントローラのためのプログラミング言語の単一化スーツの構文及び意味を指定している。この標準の一部を逐次機能チャートと称し、構造がグラフセット状である。
【００３３】
方法：オブジェクトのデータへのアクセスを与える手順であって、この手順によって定義されているように挙動することをオブジェクトに求める。
【００３４】
オブジェクト指向設計  またはオブジェクト指向プログラミング：Ｃ、フォートラン、及びコボルのような伝統的な手続き形言語では、コード及びデータが分離している。オブジェクト指向アプローチでは、属し合うコード及びデータはオブジェクトに組合わせることができる。オブジェクト指向設計は、プログラミング内に継承（導出されたクラス）、多相性、カプセル封じ、及び仮想機能（Ｃ＋＋）を使用することを更に特徴としている。
【００３５】
開かれた：我々の特許にとって開かれたとは所有権を主張できない、そして多くの会社によって使用される既存標準を言う。Silverの特許における開かれたとは、他の人々がこのシステムを使用できることは諾とするが、それは所有権を主張できるCognexだけの標準であり、開かれた会社間標準ではない。ビジュアルベーシックは開かれたプログラミング言語である。ビジュアルＣ＋＋は開かれたプログラミング言語である。
【００３６】
プロパティ：アクティブＸ制御の属性。この属性は、読み出すことも、書き込むことも、または両方共できる値を有している。
【００３７】
遷移：グラフセット遷移は遷移の状態を定義し、関連するブール状態を有している。これは、１つのステップから次のステップへの進展の可能性を指示する。各遷移にはブールイベントが関連している。
【００３８】
ＲＰＬ：高速プログラミング言語。ビジュアルベーシックに似た言語は、プログラマが迅速にユーザインタフェースを準備し、彼の目的を達成するためにオブジェクトを挿入できるので、高速プログラミング言語である。ビジュアルＣ＋＋は高速プログラミング言語とは見做されない。デルファイ及びビジュアルベーシックは高速プログラミング言語と考えられる。
【００３９】
ステップ：グラフセット／ＩＥＣ  １１３１内では、グラフセットシーケンス内の各ステップまたはノードは、オートメーションプロセスにおける安定な状況を表し、それには１つまたはそれ以上の動作が関連している。ここでは、アクティブＸまたは類似標準構成要素を表すようにリファインされている。
【００４０】
ビジョンブロックス(登録商標)：ビジョンブロックス（ VisionBlox ）(登録商標)は、アクティブＸ標準に準拠するマシンビジョン構成要素のツールキットである。これらの構成要素は、イメージング処理、画像収集、ジオメトリック機能、及び運動制御を含む。
【００４１】
本発明の上述した目的及び他の目的、特色、及び長所は、添付図面に基づく以下の最良モードの詳細な説明から容易に理解されよう。
【００４２】
【発明の実施の形態】
添付図面を参照する。図１には、本発明の方法及びシステムを実施することができるワークステーションが示されている。図１に示されているハードウェアは、単一のＳＶＧＡディスプレイのようなモニタ１０、キーボード１２、マウス１４のような位置決め装置、磁気記憶デバイス１６、及びＣＰＵ及びランダムアクセスメモリを含むシャーシ１８を含んでいる。好ましい実施の形態においては、シャーシ１８はペンティアムをベースとするＩＢＭ互換性ＰＣ、または少なくとも８メガバイトのＲＡＭ及び少なくとも12メガバイトのハードディスクスペースを有する他のＰＣである。
【００４３】
ハードウェア構成は、並行プロセスのシステムの構造及び詳細な相互作用を画像的に指定するための、ＩＥＣ  １１３１標準によって変更されたグラフセットのような、高レベルの図形流れ制御言語の開発環境をも含んでいる。
【００４４】
図２には、本発明の方法及びシステムによって支援することができる型のマシンビジョンシステム２０の概要が示されている。マシンビジョンシステム２０は典型的には、画像ディジタイザ／フレームグラバ２２を含む。画像ディジタイザ／フレームグラバ２２は、カメラ２４のような１つまたはそれ以上の画像源からの入力画像をサンプルしてディジタル化し、各入力画像を、画素を有するフレームバッファ内に配置する。各画素は、画像内のそのスポットの輝度を表す８ビット数からなることができる。
【００４５】
システム２０は、画像ディジタイザ／フレームグラバ２２から情報を受け、その情報をＩＢＭ互換性ホストコンピュータへ渡すシステムバス３８をも含んでいる。
【００４６】
システム２０は、システム２０が、１つまたはそれ以上のステージを有するロボット、プログラム可能なコントローラ等のような外部周辺デバイスとの通信を可能にする入力／出力回路３０をも含んでいる。
【００４７】
１つまたはそれ以上のカメラ２４は、アナログ、ディジタル、またはＲＳ−１７０、ＣＣＩＲ、ＮＴＳＣ、及びＰＡＬのような線走査カメラのような画像源であることができる。
【００４８】
システムバス２６は、ＰＣＩ、ＥＩＳＡ、ＩＳＡ、またあＶＬシステムバス、または他の何等かの標準バスの何れであることもできる。
【００４９】
Ｉ／Ｏ回路３０は、３軸ステッパボード（即ち、多軸制御）、または他のモーションボードを支援することができる。
【００５０】
画像ディジタイザ／フレームグラバ２２は、Matrox、Cognex、Data Translation製のような普通のフレームグラバボード、または他のフレームグラバであることができる。代替として、画像ディジタイザ／フレームグラバ２２は、Cognex製のようなビジョンプロセッサからなることができる。
【００５１】
マシンビジョンシステム２０は、詳細を後述する画像処理、画像解析、サード・パーティマシンビジョンプロダクツ、較正、及び会話形ＣＡＤ／ジオメトリのためのカスタム制御を含むように、大容量記憶ユニットにおいてプログラムすることができる。画像処理の例は、線形及び非線形強調、形態、カラー、及び画像演算を含むことができる。また、画像解析は、探索、エッジ、キャリパ、ブロッブ、テンプレート、カラー、２Ｄ及び３Ｄ測定を含むことができる。
【００５２】
サード・パーティプロダクツは、ディジタルＩ／Ｏ、いろいろなカメラフォーマット、運動、データベース、ＳＰＣ、その他を含むことができる。
【００５３】
較正は、非線形、２Ｄ、３Ｄ、及びカラー較正を含むことができる。
【００５４】
また、２Ｄ及び３Ｄの両スペースのために会話形ＣＡＤ／ジオメトリカスタム制御を設けることができる。
【００５５】
本発明の方法及びシステムによって、他の類似プログラミング環境を使用できることも理解されよう。
【００５６】
図３には、いろいろなカスタム制御（詳細は後述）をそれに追加した後に現れるツールボックスのアイコンが示されている。
【００５７】
各カスタム制御は、一般的には以下のように説明される。
【００５８】
編集可能な形状カスタム制御は、ユーザが、矩形、楕円、またはトロイダル（ドーナッツ）形状を会話形で編集することによって画像処理領域を定義できるようにする。
【００５９】
編集可能な画像カスタム制御は、追加された画像ビューイング及び処理オプションをユーザに与える強化を有するビジュアルベーシックピクチャボックス制御のように作業する。
【００６０】
カメラカスタム制御は、ユーザが、ビデオカメラからのライブ画像を収集して格納できるようにする。
【００６１】
探索ツールカスタム制御は、ユーザがそれを認識するように訓練されているモデルと一致する画像内の特定の特色を探し、見出したその特色の特徴を報告する。
【００６２】
マジックカスタム制御は、ユーザがマジックビジョンボードを設置した時に、カメラ制御が画像を収集できるようにする。（このツールは、実行時（ランタイム）には見えない。）
【００６３】
ブロッブツールカスタム制御は、画像内の接続された画素または“ブロッブ”を見出し、それを見出した各ブロッブの特徴を報告する。
【００６４】
ＳＥ  １００カスタム制御は、ユーザがＳＥ  １００ビジョンボードを設置した時に、カメラ制御が画像を収集できるようにする。（このツールは、実行時には見えない。）
【００６５】
ＶＰ  ５０カスタム制御は、ユーザがＶＰビジョンボードを設置した時に、カメラ制御が画像を収集できるようにし、そしてオプションで画像探索をスピードアップする。（このツールは、実行時には見えない。）
【００６６】
タイプＩステージカスタム制御は、ステージ制御が、“タイプＩ”として知られている特定の製造者のステージを用いて作業できるようにする。（このツールは、実行時には見えない。）
【００６７】
ステージカスタム制御は、ユーザが、図形ユーザインタフェースを通して多軸ステージを制御できるようにする。デベロッパは、高めのレベルコード内にステージ制御プロパティ及び方法を含むことができる。
【００６８】
図示してないが、ツールボードカスタム制御は、ユーザが、単にツールバー上でボタンをクリックするだけで、アプリケーション内のウィンドウ及びメニューを通してナビゲートできるようにする。
【００６９】
これも図示してないが、タイプIIステージカスタム制御は、ステージ制御が、“タイプII”として知られている特定の製造者のステージを用いて作業できるようにする。（このツールも、実行時には見えない。）
【００７０】
最後に、これもまた図示してないが、タイプIIIステージカスタム制御は、ステージ制御が、“タイプIII”として知られている特定の製造者のステージを用いて作業できるようにする。（このツールも、実行時には見えない。）
【００７１】
一般的に言えば、グラフセット／ＥＩＣ  １１３１プログラミングシステムにおいて、図４に示すアクティブＸカスタム制御を使用してマシンビジョンアプリケーションまたはプログラムを会話形で容易に構築することが可能である。一般的に言えば、カスタム制御をあるフォーム上に配置することによってユーザインタフェースまたはビジョンアプリケーションを作成する。次に、ビジュアルベーシック標準制御及びカスタム制御の両者のためのプロパティをセットする。アプリケーションプログラムを得るために、コードを書き込んでアプリケーションの異なる部分を互いにリンクする必要はない（これは、自動的に行われるから）。
【００７２】
図３のアイコンによって表されている多くのいろいろなマシンビジョン制御の詳細な説明は、前述した特許出願内に見出すことができる。
【００７３】
ソフトウェアプログラミング環境の使用を必要としない開かれたプログラム可能な／再構成可能な／教えることができるシステムを作るために、２つの標準が本発明により互いに結合される。これらの標準は、グラフセット及びその派生ＩＥＣ  １１３１と、アクティブＸ標準である。オプションとして、若干の所定のＣＯＭインタフェースを追加することによって、アクティブＸオブジェクト間のデータの交換が強化される。
【００７４】
従って、これら２つの標準を結合させることの長所は、アクティブＸ較正要素を、オートメーション（即ち、ＰＬＣ）文脈においてはありふれている環境内に挿入することを可能にすることである。第２に、プロパティを問い合わせることによって、何らのプログラミングをも行うことなく、これらのアクティブＸ構成要素演算制御の方法及びイベントをユーザによって合わせることができる。プロパティ、即ちデータは制御間で交換することができる。このデータに対して数学的演算を遂行することができる。ある制御を呼び出す何等かの方法を選択することによってその演算は制御される。最後に、イベントはロジックの流れを制御する。グラフセット／ＩＥＣ  １１３１標準は、条件付き及び並行制御を可能にする。
【００７５】
この会話形グラフセット／アクティブＸ環境はそれ自体アクティブＸであり、従って別の会話形グラフセット／アクティブＸ環境内の構成要素として使用することができる。
【００７６】
ユーザは、ドラッグ・アンド・ドロップ環境を介して、またはメニューシステムを介しての何れかで本発明の方法及びシステムを構成する。メニューシステムは、オペレータがボトムアップまたはトップダウンの何れかのシーケンスを定義可能にするように設計されている。これは、プログラマである必要はないユーザが、タスクを“教える”ことができるにつれて達成される。システムは彼の意図を問い合わせ、タスクが教えられるまでユーザの選択を案内する。プロセス中ユーザは単一の命令行を書き込まず、彼は全てのツール、ビジョン、その他を使用できるだけではなく、ツールが会話形で要求する変数をセットすることができる。若干のツールの出力は、別のツールの入力であろう。
【００７７】
例えば、距離を測定するために、ルーラーツールは２つの入力ジオメトリを要求し、それから距離を出力する。他の２つのツール、例えばエッジツールはエッジを確定し、特色探索ツールはモデルを突き合わせて１つの点を確定する。これらの両者は、ルーラーツールへの入力であることができる。
【００７８】
ユーザは、トップダウンを開始することができる。即ち、彼は先ず測定を考え、システムは入力のジオメトリを定義するように彼を案内する。代替として、ユーザはボトムアップを考えて先ずジオメトリを定義し、次いでそれらの間の測定を行うように決定することができる。
【００７９】
特色、構成要素、及びモジュール
グラフセット制御
本発明のグラフセット／ＩＥＣ  １１３１標準は、遷移及びステップを含んでいる。
【００８０】
グラフセット／ＩＥＣ  １１３１標準内の遷移は、
真（省略時の場合）；
例えばＩＯアクティブＸトリガー制御のようなあるアクティブＸ制御によって生成されたイベント、または、
何等かの制御の内部変数またはプロパティによって定義されたブール表現、
の何れかである。
【００８１】
グラフセット標準内のステップは、
何等かのサード・パーティアクティブＸ制御、または
新しい内部変数の定義を可能にする数学的ステップ、
の何れかである。
【００８２】
制御上でマウス１４の左ボタンをクリックすると、省略時制御インタフェースが与えられる。
【００８３】
制御上でマウス１４の右ボタンをクリックすると、ユーザはどの方法を走らせるのか、及びどのプロパティをセットする必要があるのかを選択することができる。
【００８４】
グラフセット制御は、グラフセットシーケンスまたは構造の形状でビジョンアプリケーションをプログラム可能にするアクティブＸカスタム制御である。プログラミングは、図形ユーザインタフェースを通して行われる。既存アクティブＸ制御は、グラフセットシーケンス内に統合される。
【００８５】
グラフセットシーケンスを作成する１つの方法では、ユーザはグラフセットインタフェース上に表示されたツールバー（図３に示すような）からツールを選択し、そのツールをシーケンス表示領域（二次元格子）上にドラッグ・アンド・ドロップする。ステップが、格子上に表示されるアイコン（ツールを表す）によって図形的に示される。遷移及びフローラインが自動的に挿入され、グラフセットプログラミング言語の規則に準拠する流れ図が維持される（図４参照）。
【００８６】
若干のツール（ステップ）のために入力が要求される場合、ユーザはこれらを入力するようにメッセージ（メッセージパネル内に表示される）を通して促され、入力を挿入する位置が強調される。ユーザは、ツールを選択したのと同じ手法で、即ちシーケンス上へドラッグ・アンド・ドロップすることによって入力を選択する。ステップからの出力は自動的に示される。グラフセットシーケンスはステップとして別のシーケンス内に挿入することができ、シーケンスの再使用及び多レベルシーケンス定義が可能になる。ユーザは、“並列”または“条件付き”分岐アイテムをシーケンス内に挿入することもできる（図５及び６）。
【００８７】
グラフセット制御内では、グラフセットシーケンスを構成し、編集し、そして実行することができる。グラフセット制御メンバー機能にアクセスするために、ポップアップメニューが使用可能である。ポップアップメニューを表示させるためには、カーソルがグラフセット制御環境内にある時にマウス１４の右ボタンをクリックする。（注：もしビジョン制御上でマウスの右ボタンをクリックすると、グラフセット制御ポップアップの代わりに、その制御のためのポップアップが現れる。）
【００８８】
数学及びイベントステップ
数学ステップは、変数の定義と、これらの変数の値をセットする表現とを可能にする。これらの変数は、数値またはブール値の何れかであり、アクティブＸ制御の他の変数またはプロパティのある数学的機能、またはこれらのある組合わせにセットすることができる（図７参照）。
【００８９】
イベントステップは、イベントをビジュアルベーシック内へ点弧させることを可能にする。従って、あるビジュアルベーシックは、あるシーケンス中にある所定の機能を遂行する制御を入手することができる。
【００９０】
マシンビジョンに関係付けられた階層メニューモジュール
システムの概要
本発明の会話形グラフセットアクティブＸ環境システムは、画像解析及び計測機能、即ち較正された測定を遂行するための画像解析技術を使用する。線、円、及び点等のような特色を探索し、測定することができる。複雑な形状を識別し、確認することができる。
【００９１】
完全な複雑なアプリケーションは、ディジタルまたは直列リンクの何れかを使用してリテラル的に直ちに、そして制御された遠隔的に構成することができる。
【００９２】
システムの特色は、以下のものを含む。
*  使用の容易さ、
*  リアルワールドユニットを使用する較正された測定、
*  広範な検査命令のセット、
*  メモリの効率的な使用、
*  簡単なディジタル及び直列インタフェーシング。
【００９３】
本発明のシステムの動作には２つの相が存在する。
*  教育相：この相ではユーザは、コンピュータキーボード及びモニタを使用して、例えば部分識別または測定のような彼のアプリケーションのためにシステムを構成する。
*  実行相：一旦構成されると、教育システムは完全に自動的に走ることができ、またＲＳ２３２直列リンクまたはそのディジタル入力を介して制御することができる。
【００９４】
第１の相においては、ユーザは、特定のアプリケーションを行うようにシステムに“教え”る。コンピュータキーボード１２及びモニタ１０を使用してユーザは、例えば部分識別、測定等のような特定のアプリケーションのためにシステムを“構成”する。システムの使用は、構成済みの、そして階層的な手法で全ての命令をユーザに与えるメニュー方式ユーザインタフェースによって容易になされる。プログラムの全ての点においてヘルプを使用することができる。
【００９５】
システムは、アプリケーションをアプリケーションファイルにする命令の特定シーケンスを格納している。１つより多くのアプリケーションをどの一時点においてもロードすることができる。
【００９６】
第２の相においては、キーボード上のボタンを押すことによって、遠隔入力によって、またはＲＳ２３２または他の通信回線を通してトリガーすることによってアプリケーションを実行させることができる。自動システム診断は、アプリケーションの性能の詳細をユーザに与え、何等かの問題の本質及び型を示す。
【００９７】
全ての測定はリアルワールド座標（ｍ、ｍｍ、ミクロン、インチ、1000、等）でなされる。
【００９８】
多くの命令を使用して、計測（測定）機能及び画像解析機能を含ませることができる。計測機能の例は、距離、角度、直径、円周、面積、直線度、丸み、及び形状の測定を含む。ビジョン機能の例は、グレーレベルエッジ探索（微妙なグレーレベルエッジを見出すことができる）、投影、エッジ移動、及び特色相関を含む。
【００９９】
システム機能は、以下の３つの主カテゴリに分割することができる。
*  画像解析機能：これらの機能は、画像の特色を決定する。
*  システム較正：これらの機能は、ユーザが定義した座標フレーム内で測定及び作業することを可能にする。
*  システムＩ／Ｏ：これらの機能は、システムが、ディジタル入力に応答し、ディジタル出力をセットし、直列回線を通して通信し、情報を印刷し、そしてファイルからの情報を保管して検索することを可能にする。
【０１００】
画像解析機能
画像解析機能は、以下の６つの主カテゴリに分類することができる。
*  部分探知
部分探知は、画像上の点及び配向を識別する。部分が探知された後に定義される例えば線、ウィンドウ、及び楕円のような全ての探索領域は、この新しい部分フレームに対して定義される。
*  ジオメトリ定義
これらの機能は、部分検査中にシステムが使用するエンティティの定義に関する。線、楕円、点、及びプロファイルはこれらの機能を使用して定義することができる。
*  計測
これらの機能は、システム内に定義されているエンティティ間のいろいろな量の測定に関する。距離、面積、円周、及び角度を測定することができる。例えば点から線までの距離のように、異なる型のエンティティ間の若干の量を測定することができる。ジオメトリックエラーも測定することができる。これらは、線の直線度及び円の丸さを含む。
*  形態測定
これらの機能は、画像内の割れのような表面細部の測定に関する。
*  特色相関
この機能は、グラブされた画像内の画素精度に対して予め教えられた特色（モデル）を見出す。システムは、モデルと現画像内の特色との間の類似性のレベルを示す“スコア”を計算する。このスコアはパーセンテージで定義され、100％が完全な一致である。
*  形態強化
これらの機能は、画像内の割れのような表面細部の強化に関する。
【０１０１】
カラー画像処理
較正
システム再較正の目的は、それが作業している単位、即ちｍｍ、インチ等をビジョンシステムに告げることである。較正は、カメラ２４の属性を視野に対して定義する。カメラ較正は、普通は方形または丸い板である既知の形状及びサイズのオブジェクトを見ることによって達成される。較正ファイルは、ジョブファイルと共に保管されるので、異なるジョブは異なる較正データを有することができる。
【０１０２】
システム較正は、幾つかの方法を使用して実施することができる。第１の方法／相は幾つかの方法を使用して実施されている。全方法は、以下のものを含む。
*  初期システムカメラ較正：これは、カメラ２４を運動させれば何時でも、または６ケ月毎のシステム保守時に行われる。較正時には、既知サイズのオブジェクトが各カメラ２４の視野内に配置され、そのサイズ及び位置がシステムによって確定され、識別される。
*  カメラの運動監視及び自動システム再較正：これは、システムがカメラの運動を監視し、このような運動を補償するプロセスである。観測された運動の量が計算され、較正マトリックスが調整され、そしてもし過大であれば、警告が発せられる。
*  連続自動システム再較正：若干の場合には、システム較正は完全に自動的に遂行される。１つまたは複数の参照オブジェクトが絶えず視野内にあるか、または配置される。従って、システムはそれ自体を較正し、情報をカメラ運動上に戻す。もし参照オブジェクトを見ることができない程カメラ運動が過大であれば、警告が発せられる。システムは、最後の省略時較正を使用して動作し続ける。
【０１０３】
メニュー
このセットのメニューは、異なるジオメトリックエンティティ（点、線、円、楕円、及びプロファイル）を定義し、選択することを可能にする。これらのエンティティは、ビデオ源の解析を使用して定義することも、または既存ジオメトリックエンティティを使用して構成することもできる。
【０１０４】
ジオメトリメニュー
点確定メニュー
エッジ上の点（ウィンドウ走査）
特色位置を介しての点確定
楕円の中心
線＋線交点
プロファイル上の点
屈曲点
屈折点
線確定メニュー
エッジの走査による確定
手による確定
２つの点を介しての確定
プロファイル一次ベクトル
円確定メニュー
エッジの走査による確定
手動
プロファイル確定メニュー
【０１０５】
計測メニュー
計測メニューは、ユーザが測定を遂行し、測定結果に基づいて実施試験を遂行することを可能にする。測定及び試験結果は、保管することができる。測定された結果に対して、統計的プロセス制御（ＳＰＣ）を遂行することができる。計測機能は、ジオメトリックエンティティが何処に定義されているかには無関係にそれらを選択する。あるエンティティが選択されると、全てのジオメトリが表示され、それから所要エンティティが選択される。
線形次元
線と線との距離
線と点との距離
点と点との距離メニュー
キャリパ：単一対
キャリパ：複数対
実際の距離
構成要素距離
円／楕円半径
角度次元
線と線との角度
角度線
面積測定
形態測定
強度評価
接続性評価
ジオメトリックエラーメニュー
平行度
直角度
形状エラー直線度
形状エラー丸み
【０１０６】
データインタフェース
幾つかのオプショナルなインタフェースが示唆される。これらのインタフェースは、それら無しでも会話形グラフセット／アクティブＸ環境が作業できるので不可欠では「ない」。しかしながら、もしこれらのインタフェースの何れかが存在すれば、これは機能性をグラフセット／アクティブＸ環境まで拡張する。
【０１０７】
これらのインタフェースは、ＣＯＭ標準に準拠する１組の定義された方法及び属性を提供する。
【０１０８】
表示方法（ｉディスプレイ）
Draw                        ツールを描く
ShowDisplayGraphicssplay    結果  図形
HideDisplayGraphics          結果図形を非表示
EnableAutoRefresh           使用時に結果表示をリフレッシュするようにツールを動作可能にする
DisableAutoRefresh           使用時に結果表示をリフレッシュさせないようにツールを動作不能にする
IsAutoRefreshEnabled        もしツールの自動リフレッシュが動作可能または動作不能であれば戻す
【０１０９】
情報方法（ｉ情報）
GetMemorySize               ツールが使用しているヒープの現在量をバイトで戻す
SetMaximumTime            実行のために使用機能に許される最大時間をセット
GetMinimumTime            実行のために使用機能が必要とする最小時間を戻す
TimeTaken                   最後の使用時に使用機能が要した時間を戻す
GetMaximumTime            実行のために機能に許される最大使用時間の現在の設定を戻す
【０１１０】
データアクセス方法（ｉデータ）
GetInputType                入力に関する情報を戻す
GetOutputType               出力に関する情報を戻す
GetNumberOfInputs          入力の数を戻す
GetNumberOfOutputs         出力の数を戻す
GetOutput                   所与の出力を戻す
SetInput                     所与の入力をセット
【０１１１】
ツール方法（ｉツール）
AutoTrain                    ツールの自動訓練方法
Train                        ツールの初期訓練
AddSample                  ツールの現在の訓練セットにサンプルを追加
PrepareToUse                最初の使用のためにツールを準備
Use                          現在の訓練された情報と共にツールを使用
GetLastError                 ツールが生成した最後のエラーを戻す
Save                         ツール構成及び訓練情報をファイルへ保管
Load                         ツール構成及び訓練情報をファイルへロード  Serialize                     ツール構成をファイルへ直列化
【０１１２】
以上に本発明を遂行する最良モードを詳述したが、本発明が関係している分野に精通していれば、特許請求の範囲に記載されている本発明を実現するためのさまざまな代替設計及び実施の形態を考案できるであろう。
【図面の簡単な説明】
【図１】  本発明の方法を実施することができる好ましいハードウェア構成を示す概要図である。
【図２】  本発明の方法及びシステムによって支援することができるマシンビジョンシステムを示す概要図である。
【図３】  本発明の標準制御を追加した後のプログラミング環境の一部である。
【図４】  本発明により構成された典型的なグラフセットシーケンスの概要図である。
【図５】  実行の２つの代替経路を示す典型的なグラフセットシーケンスの概要図である。
【図６】  並行処理分岐を示すグラフセットシーケンスの１セクションの概要図である。
【図７】  数学的制御を示す画面表示である。
【図８】  “部分存在”信号を待機中のビジョンシステムの通常実行モードにおける典型的な動作シーケンスを示すブロック図流れ図である。
【図１】
0003773789.tif 000002
【図２】
0003773789.tif 000003
【図３】
0003773789.tif 000004
【図４】
0003773789.tif 000005
【図５】
0003773789.tif 000006
【図６】
0003773789.tif 000007
【図８】
0003773789.tif 000008
【図７】
0003773789.tif 000009