(57)【特許請求の範囲】
【請求項１】
分類対象となる物体を示す画像データを受信する受信手段と、
受信した前記画像データが提供される入力層と、少なくとも１つの隠れ層と、出力層と、を有する初期ニューラルネットワークアルゴリズムを備え、
前記少なくとも１つの隠れ層は、それぞれ関連する活性化関数を有する複数のニューロンを含み、
受信した前記画像データに応じて出力分類を前記出力層に提供するよう構成された
処理手段と、
を有するマシンビジョンシステムであって、
前記処理手段は、
前記活性化関数に基づいて前記初期ニューラルネットワークアルゴリズムを記述するニューラルネットワーク全体を表す単一の微分方程式であって、前記ニューラルネットワークの特定の層の微分方程式の出力は、前記ニューラルネットワークの次の層の微分方程式への入力となる単一の微分方程式を決定し、
前記微分方程式の解を級数展開の形で決定し、
前記級数展開における項数を有限個に制限することによって前記級数展開を有限級数展開に変換し、
前記有限級数展開に基づいて前記出力分類を決定すること
を特徴とするマシンビジョンシステム。
【請求項２】
請求項１に記載のマシンビジョンシステムであって、
前記処理手段は、
前記活性化関数が微分可能であるかどうかを判定し、
微分可能ではないと判定された前記活性化関数を微分可能な近似によって置換し、
決定された前記微分方程式は、微分可能である前記活性化関数または微分可能な前記近似に基づいて決定されること
を特徴とするマシンビジョンシステム。
【請求項３】
請求項２に記載のマシンビジョンシステムであって、
１又は複数の前記活性化関数は正規化線形関数であり、
前記処理手段は、前記正規化線形関数をシグモイド関数によって置換すること
を特徴とするマシンビジョンシステム。
【請求項４】
請求項２又は３に記載のマシンビジョンシステムであって、
１又は複数の前記活性化関数は最大プーリング層関数であり、
前記処理手段は、前記最大プーリング層関数を要素の加重和で置換すること
を特徴とするマシンビジョンシステム。
【請求項５】
請求項１〜４のいずれか一項に記載のマシンビジョンシステムであって、
前記処理手段は、
前記出力分類を決定するため、前記有限級数展開を用いて受信した前記画像データを評価すること
を特徴とするマシンビジョンシステム。
【請求項６】
請求項１〜４のいずれか一項に記載のマシンビジョンシステムであって、
前記処理手段は、
前記有限級数展開を更新されたニューラルネットワークアルゴリズムに変換し、
前記出力分類を決定するため、前記更新されたニューラルネットワークアルゴリズムを用いて受信した前記画像データを評価すること
を特徴とするマシンビジョンシステム。
【請求項７】
請求項１〜６のいずれか一項に記載のマシンビジョンシステムであって、
前記処理手段は、前記微分方程式の状態空間形式を決定して前記級数展開を決定すること
を特徴とするマシンビジョンシステム。
【請求項８】
請求項７に記載のマシンビジョンシステムであって、
前記処理手段は、前記状態空間形式から１又は複数のベクトル場を抽出して前記級数展開を決定すること
を特徴とするマシンビジョンシステム。
【請求項９】
請求項１〜８のいずれか一項に記載のマシンビジョンシステムであって、
前記処理手段は、
前記初期ニューラルネットワークアルゴリズムを微分可能な近似に変換し、
微分可能な前記近似に基づいて前記微分方程式を決定すること
を特徴とするマシンビジョンシステム。
【請求項１０】
請求項９に記載のマシンビジョンシステムであって、
前記初期ニューラルネットワークアルゴリズムの全結合層に対して、微分可能な前記近似は、
ｘを潜在状態、ｕをネットワーク入力、ｂをバイアス、σを活性化関数のインスタンスのベクトル、ｈ、ｋを初期ニューラルネットワークアルゴリズムの層（ｈ＞０）、Ａを状態行列、Ｂを入力伝達行列であるとして、
【数１】
0006912008.tif 000014
の形式で表現されること
を特徴とするマシンビジョンシステム。
【請求項１１】
請求項９又は１０に記載のマシンビジョンシステムであって、
Ｘを層状態行列、Ｕを層入力行列、Ｅをバイアス、Ｃを状態フィルタ、Ｄを入力畳み込みフィルタであるとして、
前記初期ニューラルネットワークアルゴリズムの畳み込み層に対して、微分可能な前記近似は、
【数２】
0006912008.tif 000015
の形式で表現されること
を特徴とするマシンビジョンシステム。
【請求項１２】
請求項９〜１１のいずれか一項に記載のマシンビジョンシステムであって、
前記処理手段は、微分可能な前記近似を微分して前記微分方程式を得ること
を特徴とするマシンビジョンシステム。
【請求項１３】
請求項１２のいずれか一項に記載のマシンビジョンシステムであって、
前記処理手段は、微分可能な前記近似を微分するために数値計算法を適用すること
を特徴とするマシンビジョンシステム。
【請求項１４】
請求項１〜１３のいずれか一項に記載のマシンビジョンシステムであって、
前記処理手段は、前記級数展開の収束ウィンドウを決定すること
を特徴とするマシンビジョンシステム。
【請求項１５】
請求項１〜１４のいずれか一項に記載のマシンビジョンシステムであって、
前記処理手段は、前記級数展開を生成する最小基底を算出すること
を特徴とするマシンビジョンシステム。
【請求項１６】
請求項１〜１５のいずれか一項に記載のマシンビジョンシステムであって、
前記処理手段は、複数の時間ウィンドウごとに前記級数展開の係数の異なる組を決定すること
を特徴とするマシンビジョンシステム。
【請求項１７】
請求項１６に記載のマシンビジョンシステムであって、
前記処理手段は、所定の収束レベルが達成されるまで、決定された前記係数を調整して前記微分方程式のベクトル場パラメータを調整すること
を特徴とするマシンビジョンシステム。
【請求項１８】
請求項１〜１７のいずれか一項に記載のマシンビジョンシステムであって、
前記処理手段は、再トレーニング処理の一部として、受信した前記画像データ及び関連する前記出力分類に基づいて、前記有限級数展開を更新すること
を特徴とするマシンビジョンシステム。
【請求項１９】
物体を示す画像データと前記物体の関連する既知の分類を含むトレーニングデータを受信する受信手段と、
受信した前記画像データが提供される入力層と、少なくとも１つの隠れ層と、出力層と、を有する初期ニューラルネットワークアルゴリズムを備え、
前記少なくとも１つの隠れ層は、それぞれ関連する活性化関数を有する複数のニューロンを含み、
前記ニューロンの間の接続は関連するシナプス荷重を有し、受信した前記画像データに基づいて前記初期ニューラルネットワークアルゴリズムを評価することで関連する前記分類を生成することが保証されるよう、前記シナプス荷重の値を決定するよう構成された
処理手段と、
を有するマシンビジョンシステムであって、
前記処理手段は、
前記活性化関数に基づいて前記初期ニューラルネットワークアルゴリズムを記述するニューラルネットワーク全体を表す単一の微分方程式であって、前記ニューラルネットワークの特定の層の微分方程式の出力は、前記ニューラルネットワークの次の層の微分方程式への入力となる単一の微分方程式を決定し、
前記微分方程式の解を級数展開の形で決定し、
前記級数展開における項数を有限個に制限することによって前記級数展開を有限級数展開に変換し、
前記有限級数展開に基づいて出力分類を決定し、
前記シナプス荷重の値を調整して、決定した前記出力分類と前記物体の関連する既知の前記分類との間の誤差を減らすこと
を特徴とするマシンビジョンシステム。
【請求項２０】
生産プロセス装置又は生産プロセスシステムを構成するためのマシンビジョン制御システムであって、
前記マシンビジョン制御システムは、
分類対象となる物体を示す画像データを受信する受信手段と、
受信した前記画像データが提供される入力層と、少なくとも１つの隠れ層と、出力層と、を有する初期ニューラルネットワークアルゴリズムを備え、
前記少なくとも１つの隠れ層は、それぞれ関連する活性化関数を有する複数のニューロンを含み、
受信した前記画像データに応じて出力分類を前記出力層に提供するよう構成された
処理手段と、
前記出力分類に応じて、前記生産プロセス装置又は前記生産プロセスシステムに制御信号を送信し、前記生産プロセス装置又は前記生産プロセスシステムのセットアップを実行する制御手段
を有し、
前記処理手段は、
前記活性化関数に基づいて前記初期ニューラルネットワークアルゴリズムを記述するニューラルネットワーク全体を表す単一の微分方程式であって、前記ニューラルネットワークの特定の層の微分方程式の出力は、前記ニューラルネットワークの次の層の微分方程式への入力となる単一の微分方程式を決定し、
前記微分方程式の解を級数展開の形で決定し、
前記級数展開における項数を有限個に制限することによって前記級数展開を有限級数展開に変換し、
前記有限級数展開に基づいて前記出力分類を決定すること
を特徴とするマシンビジョン制御システム。
【請求項２１】
生産ライン構成装置における損傷、異物、又は、不正確に取り付けられた部品を識別して位置を特定するため、前記生産ライン構成装置を検査する生産ライン配置であって、
前記生産ライン配置は、
前記生産ライン構成装置に関する画像データの１又は複数のセットを取得するように構成された少なくとも１つのカメラを含む光学システムと、
分類対象となる物体を示す画像データを受信する受信手段と、
受信した前記画像データが提供される入力層と、少なくとも１つの隠れ層と、出力層と、を有する初期ニューラルネットワークアルゴリズムを備え、
前記少なくとも１つの隠れ層は、それぞれ関連する活性化関数を有する複数のニューロンを含み、
受信した前記画像データに応じて出力分類を前記出力層に提供するよう構成された
処理手段と、
を有するマシンビジョン制御システムと、
前記出力分類に応じて、自身のセットアップを実行する生産プロセス装置又は生産プロセスシステムと、
を有し、
前記処理手段は、
前記活性化関数に基づいて前記初期ニューラルネットワークアルゴリズムを記述するニューラルネットワーク全体を表す単一の微分方程式であって、前記ニューラルネットワークの特定の層の微分方程式の出力は、前記ニューラルネットワークの次の層の微分方程式への入力となる単一の微分方程式を決定し、
前記微分方程式の解を級数展開の形で決定し、
前記級数展開における項数を有限個に制限することによって前記級数展開を有限級数展開に変換し、
前記有限級数展開に基づいて前記出力分類を決定すること
を特徴とする生産ライン配置。
【請求項２２】
分類対象となる物体を示す画像データを受信し、
受信した前記画像データが提供される入力層と、少なくとも１つの隠れ層と、出力層と、を有する初期ニューラルネットワークアルゴリズムであって、前記少なくとも１つの隠れ層は、それぞれ関連する活性化関数を有する複数のニューロンを含む前記初期ニューラルネットワークアルゴリズムを提供し、
前記活性化関数及び関連するニューラルネットワークパラメータに基づいて前記初期ニューラルネットワークアルゴリズムを記述するニューラルネットワーク全体を表す単一の微分方程式であって、前記ニューラルネットワークの特定の層の微分方程式の出力は、前記ニューラルネットワークの次の層の微分方程式への入力となる単一の微分方程式を決定し、
前記微分方程式の解を級数展開の形で決定し、
前記級数展開における項数を有限個に制限することによって前記級数展開を有限級数展開に変換し、
前記有限級数展開に基づいて決定される出力分類を、受信した前記画像データに応じて前記出力層に提供すること
を特徴とする、マシンビジョンに関する方法。
【請求項２３】
１又は複数のプロセッサによって実行されることにより、請求項２２に記載された、マシンビジョンに関する方法を実行させる命令を格納するコンピュータプログラム製品。
【請求項２４】
請求項１〜１９のいずれか一項に記載のマシンビジョンシステムを備えるタブレット端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マシンビジョンシステムに関し、特に車両生産用のマシンビジョンシステムに関する。本発明の態様は、マシンビジョンシステムを実現するために必要とされる計算資源を低減する方法、および、生産プロセス装置又は生産プロセスシステムを構成するためのマシンビジョン制御システム、特に、生産ライン構成装置を検査して、損傷、異物、又は、不正確に取り付けられた部品を識別して位置を特定するための生産ライン配置に関する。
【背景技術】
【０００２】
マシンビジョンシステムおよび方法は、産業用途、特に自動検査、品質制御プロセス、およびロボット制御のための、画像ベースの自動検査および分析を提供するために使用される。具体的には、マシンビジョンシステムおよび方法は、システムによって取得された画像から情報を抽出するために使用される。
【０００３】
図１は、典型的なマシンビジョン装置１０を示す。装置１０は、例えば、車両のような、検査されるべき製品またはワークピース１４を有する製品ライン１２と、画像処理システム／ハードウェア１８に接続された１つ以上の光学センサまたはカメラ１６を有する光学システムとを含む。また、装置１０は、製品またはワークピース１４に関連する欠陥の検出など、多数の決定を行うために、取得した画像を分析するように構成されたコンピュータなどである処理手段２０を含む。処理手段２０は、装置１０のプロセス制御システム２２に信号を出力し、制御システム２２は、処理手段２０の決定に従って製品ライン１２を構成することができる。
【０００４】
一般に、このような処理手段２０は、取得した画像を識別し分類するためにニューラルネットワークアルゴリズム２４を使用する。特に、ニューラルネットワークは、テストデータを考慮することによって、取得した画像から広範囲のアイテムを識別し分類することを学習するようにトレーニングすることができ、取得した画像から広範囲のアイテムを識別し分類できるように、特別にプログラムされる必要はない。
【０００５】
ニューラルネットワークは特徴抽出のために非線形処理ユニットの連結を使用する。ニューラルネットワークを、異なる状況で物体を認識するようにトレーニングすることができる。ニューラルネットワークは、典型的には、入力層と、複数の隠れ層と、出力層とを有し、各層は、複数のニューロンを含む。入力層は、各隠れ層を介して処理される入力データ、例えば、画像データを受信し、その結果、出力層のニューロンは、ニューラルネットワークによって入力画像データに割り当てられた決定された分類を示す値を割り当てられる。このタイプのデータ駆動アプローチは、画像のデータセットを収集し、機械学習を使用して、各画像を特定のカテゴリに分類またはラベル付けする分類器をトレーニングする。次いで、分類器を使用して、新しい画像、例えば、生産ライン１２上のワークピース１４の画像を評価することができる。
【０００６】
ニューラルネットワークは画像分類に特に適している。いくつかの実装では、これは、画像サンプルの各画素を第１の層の特定のニューロンに直接マッピングすることによって達成することができ、その結果、各ニューロンは、画素がオンであるかオフであるかに応じて、１または０を示す。
【０００７】
ニューラルネットワークとそれが解決しようとする問題に依存して、ネットワークの各層は、異なる数のニューロンを有することができ、これらは、入力データの特定の品質に関連することも、しないこともある。第１層の様々なニューロンは、次の層のニューロンに接続される。一実施形態、いわゆる全結合型ニューラルネットワークでは、特定の層の各ニューロンは、次の層の各ニューロンに接続される。
【０００８】
各層の各ニューロンは、前の層の各ニューロンから入力値を受け取る。これらの入力値は合計され、この合計がしきい値と比較される。その値が特定のニューロンの閾値を超えると、そのニューロンは正の値を保持し、最終層に到達するまで、そのニューロンの次の層のニューロンへの入力として使用することができる。この点で、ニューラルネットワークルーチンの出力は、最終層の値から読み取ることができる。
【０００９】
光学的物体認識に使用されるニューラルネットワークの一実施形態では、層内の各値は、特定の物体または物体のクラスに割り当てられる。このような実装では、ニューラルネットワークは、例えば、ネットワークがどのオブジェクトを最も可能性の高い入力オブジェクトとして計算したかを示す１つのニューロンにおける１つの大きな正の値を有する出力層で終了するように構成される。ただし、これらの接続は計算上複雑になる可能性がある。
【００１０】
ニューラルネットワークを実装する１つの方法は、各レベルをニューロン値の行列として扱うことである。接続強度を変換マトリックスとして実装し、各層のマトリックスを乗算する。この乗算により、前の層の各値を接続強度に従ってスケールしてから、行列乗算によって合計することができる。乗算が実行された後、次のレベルの各ニューロンの閾値を説明するために、バイアス行列が積行列に加えられる。次いで、活性化又は閾値関数、例えば双曲線正接関数が、閾値が満たされたか否かを決定するために各結果値に適用され、結果値は次の層のためのマトリックスに配置される。
【００１１】
各層の間の接続、したがってニューラルネットワーク全体は、一連の行列として表現することができる。これらの行列に対して適切な値を決定することがニューラルネットワークをトレーニングする問題である。ニューラルネットワークの計算およびニューラルネットワークのトレーニングは、多くの数学的計算を含む。大規模で複雑なニューラルネットワークは、大量の計算リソースを必要とする。大規模な産業用マシンビジョンシステムでは、大規模で強力なハードウェアであっても、ニューラルネットワークをトレーニングするのに数日から数週間かかることがある。
【００１２】
畳み込みニューラルネットワーク（ＣＮＮ）は、特に画像評価および分類に適したニューラルネットワークの特定のカテゴリである。ＣＮＮは、畳み込み層、プーリング層、全結合層を含むことができる。
【００１３】
畳み込み層は、入力画像から特徴を抽出する。元のイメージの特長を識別するために、複数のフィーチャマップまたはフィルタを有する。各畳み込みニューロンは、それ自身の受容野についてのみデータを処理する。タイリングのような既知の方法は、入力画像の操作、例えば並進、回転、遠近歪みを可能にする。フィルタは、例えば、行列によって数学的に表すことができる。
【００１４】
プーリング層は、１つの層のニューロン群の出力を、次の層の単一のニューロンに結合する。これにより、各フィーチャマップの次元は小さくなるが、最も重要な情報は保持される。
【００１５】
前述のように、全結合層は、ある層のすべてのニューロンを別の層のすべてのニューロンに接続する。原理的には、従来の多層パーセプトロン神経回路網と同じである。
【００１６】
畳み込み層またはプーリング層からの出力は、入力画像の高レベルの特徴を表す。全結合層層の目的は、入力画像をトレーニングデータセットに基づいて種々のクラスに分類するためにこれらの高レベルの特徴を使用することである。
【００１７】
より詳細には、ＣＮＮをトレーニングするとき、ニューラルネットワークは、トレーニング画像を入力として受け取る。これは、例えば、図１の車両１４の場合、ホイールボルトを備えたホイールの画像であり得る。入力画像は、畳み込み層内の順方向伝搬ステップと、１つまたは複数のプーリング層内の１つまたは複数のプーリングステップと、全結合層内の順方向伝搬ステップとを経る。これは、例えば、関心のある特徴をあるタイプのホイールボルトとして識別するなど、データベース内に有する画像の各クラスに対する出力確率を決定する。
【００１８】
上述のように、ニューラルネットワークへのバイアス入力も使用される。ニューラルネットワークのノードへのこれらのバイアス入力は、ノードが受信する通常の入力に加えてトレーニング可能な定数値をすべてのノードに提供する。すなわち、定数値によって活性化／閾値関数を変換できるので重要である。これは、ニューラルネットワークに高い柔軟性を提供するが、一方で、ニューラルネットワークの過剰パラメータ化を生じさせる。
【００１９】
ニューラルネットワークをトレーニングするとき、ランダムな重みをネットワーク中のニューロンに割り当てる。出力での誤差を計算し、次に逆伝搬法を用いてニューラルネットワークにおけるすべての重みに関する誤差を計算する。再帰的ステップにより誤差を低減するので、ネットワークは出力誤差が低減されるように各ニューロンの重みを調整することにより特定の画像を正しく分類することを学習する。
【００２０】
トレーニングステップは、トレーニングセットからの画像が正しく分類されるように、ＣＮＮのすべての重みおよびパラメータが最適化されることを保証する。しかし、実際には、全体的な画像分類に大きく寄与しない冗長なノードおよびパラメータが存在する場合がある。このような冗長ノードは、システムの精度には寄与しないが、依然として計算を必要とし、これは、システムが非効率的に動作することを意味し、例えば、可能なものより遅いか、または真に最適化されたシステムよりも実質的な計算機資源を必要とする。
【００２１】
ＣＮＮがマシンビジョンに適している主な理由の一つは、グラフィカル処理ユニット（ＧＰＵ）に基づく計算資源の利用可能性である。ＧＰＵは、数百万の画像の大規模なデータベースと組み合わされるニューラルネットワークのトレーニング時間を短縮した。これは、このようなシステムをトレーニングするために必要な大量のデータを並列処理するのに有効であるためである。
【００２２】
上述のように、ニューラルネットワークは、逆伝搬法のような技術を介して最適化／トレーニングされ得るが、これは、ニューラルネットワークが真に最適化された形態であることを保証しない。状況によってはニューラルネットワークを実装する上で問題となる可能性がある。
【００２３】
トレーニング時間が減少したとしても、トレーニングされたニューラルネットワークを実際に使用する場合、大量生産される車のための産業プラントのような、実施コストが重要である産業的およびリアルタイムの現場への適用ではまだ問題がある。産業界では、可能な限り低いコストで非常に高い精度と非常に低い偽陽性率の要件が求められている。
【００２４】
産業プロセスへの適用のためには、マシンビジョンシステムには、日中の異なる照明条件、反射、操作者による障害、カメラのレンズ上の汚れに対処できる能力が求められ、保守や較正作業が不要であることが求められる。
【００２５】
マシンビジョンに基づいたアプリケーションに適したニューラルネットワークを設計する際には、決定しなければならない多数の異なるパラメータまたはハイパーパラメータがある。これらのパラメータは、例えば、層の数、層当たりのニューロンの数などを含み得る。ニューラルネットワークシステムを使用する既存のスキームは、いくつかのタスクに対して過剰にパラメータ化され得るため、既存のスキームによると長いトレーニング時間および非効率的なシステムが生成される場合がある。
【００２６】
さらに、いわゆる「過適合」が問題になることがある。機械学習における一般的なタスクは、目に見えないテストデータに対して信頼性の高い予測を行うことを目的として、モデルをトレーニングデータのセットに適合させることである。過適合は、観測数に対してパラメータが多すぎるなど、モデルが複雑すぎる場合に発生する。過適合したモデルは予測性能が低い。
【００２７】
学習アルゴリズムは、典型的には、一組の「トレーニングデータ」、すなわち所望の出力が既知である例示的な状況を用いてトレーニングされる。その目的は、このアルゴリズムが、トレーニング中に遭遇しなかった「検証データ」を与えられたときの出力の予測においても、うまく機能することにある。
【００２８】
過適合は、例えば、現在のタスクに対して最終的に最適であるよりも調整可能なパラメータを含むニューラルネットワークにおいて遭遇する問題である。または最適であるよりも複雑なアプローチを使用する際に遭遇する問題である。モデル曲線をデータセットにフィットさせるのは比較的簡単である。ただし、新しいデータで複雑なモデルを評価すると、パフォーマンスが非常に低下する可能性がある。言い換えると、計算されたモデルはうまく一般化しない。すなわち、トレーニングセット上の誤差は非常に小さい値となるが、新しいデータがネットワークに提示されるとき、誤差は大きくなる。別の言い方をすると、ニューラルネットワークはトレーニングで用いたデータセットをよく覚えているが、新しいデータにも適用できるよう状況を一般化することを学んでいない。
【００２９】
機械学習に必要なより複雑なモデルをトレーニングする場合、過適合とモデルの複雑さの間にバランスがなければならない。モデルが十分に複雑でない場合、たとえば、さまざまな方向や生産ラインのシナリオでさまざまな部品を認識するなど、手元の問題を解決するために必要なすべての有用な情報を取得するには、十分に強力ではない可能性がある。一方、モデルが非常に複雑な場合、特に利用可能なトレーニングデータの量が限られている場合、過適合のリスクがある。
【００３０】
オーバーパラメータ化され、複雑で、より汎用的なニューラルネットワークは、比較的大量の計算リソースを必要とし、比較的「軽量」なハードウェア、例えばラップトップのようなモバイルまたはハンドヘルドハードウェア、およびフィールドプログラマブルゲートアレイ（ＦＰＧＡ）によって実装するのには適していない。
【００３１】
従って、複雑であるが柔軟なモデルが必要とされる生産ラインのニーズを満たすことができ、かつ高速な学習及び適応性（再トレーニング）特性を有するマシンビジョンシステムが必要とされている。
【００３２】
このようなシステムを提供するこれまでの方法は、検証データを使用して早期に停止するなどの手法と併せて、初期過剰パラメータ化などの技法を使用することを含む。ただし、計算機資源の大きさに依存して、この方法は時間がかかることがある。
【００３３】
ニューラルネットワークの効率を改善する別の技術は、ニューラルネットワーク・プルーニングである。このアプローチは、最終的な出力分類に対するそれらの相対的な寄与に従ってネットワーク内のニューロンをランク付けし、次に、ネットワークから最下位のニューロンを除去して、より小さく、より高速なネットワークをもたらす。このアプローチの欠点は、不十分なランキング方法を含み、システムの精度のレベルにおける望ましくない損失をもたらす。評価、剪定、および微調整の追加段階も、計算コストが高く、実装が困難な場合がある。
【００３４】
本発明の目的は、先行技術に関連する１つ以上の欠点に対処することである。
【発明の概要】
【００３５】
本発明の一態様によれば、マシンビジョンシステムが提供される。マシンビジョンシステムは、分類対象となる物体を示す画像データを受信する受信手段を含むものであってもよい。マシンビジョンシステムは、受信した画像データが提供される入力層と、少なくとも１つの隠れ層と、出力層と、を有する初期ニューラルネットワークアルゴリズムを備え、少なくとも１つの隠れ層は、それぞれ関連する活性化関数を有する複数のニューロンを含み、受信した画像データに応じて出力分類を出力層に提供するよう構成された処理手段を含むものであってもよい。処理手段は、活性化関数に基づいて初期ニューラルネットワークアルゴリズムを記述する微分方程式を決定し、微分方程式の解を級数展開の形で決定し、級数展開における項数を有限個に制限することによって級数展開を有限級数展開に変換し、有限級数展開に基づいて出力分類を決定するものであってもよい。
【００３６】
複数のニューロンはまた、他の関連するニューラルネットワークパラメータを含むものであってもよい。初期ニューラルネットワークアルゴリズムを記述する微分方程式は、他の関連するニューラルネットワークパラメータに基づいてもよい。
【００３７】
２つのニューロンの間のそれぞれの接続は、関連するシナプス荷重を有するものであってもよい。各シナプス荷重は、物体を示す画像データおよび物体の関連する既知の分類を含むトレーニングデータのセットから、決定された出力分類と、物体の関連する既知の分類との間の誤差を低減するように調整された値を有するものであってもよい。すなわち、初期ニューラルネットワークアルゴリズムは、トレーニングされたニューラルネットワークアルゴリズムであってもよい。
【００３８】
処理手段は、活性化関数の各々を検査して、活性化関数が微分可能であるかどうかを判定し、微分可能ではないと判定された活性化関数を、微分可能な活性化関数、又は、微分可能な近似によって置換するものであってもよい。
【００３９】
１又は複数の活性化関数は正規化線形関数であり、処理手段は、正規化線形関数をシグモイド関数によって置換するものであってもよい。
【００４０】
１又は複数の活性化関数は最大プーリング層関数であり、処理手段は、最大プーリング層関数を要素の加重和で置換するものであってもよい。
【００４１】
１又は複数の活性化関数は非線形活性化関数であり、処理手段は、非線形活性化関数をＣｈｅｎ−Ｆｌｉｅｓｓ級数による等価システムで置換するものであってもよい。
【００４２】
処理手段は、出力分類を決定するため、有限級数展開を用いて受信した画像データを評価するものであってもよい。
【００４３】
処理手段は、有限級数展開を更新されたニューラルネットワークアルゴリズムに変換し、出力分類を決定するため、更新されたニューラルネットワークアルゴリズムを用いて受信した画像データを評価するものであってもよい。
【００４４】
処理手段は、微分方程式の状態空間形式を決定して級数展開を決定するものであってもよい。
【００４５】
処理手段は、状態空間形式から１又は複数のベクトル場を抽出して級数展開を決定するものであってもよい。
【００４６】
処理手段は、初期ニューラルネットワークアルゴリズムを微分可能な近似に変換し、微分可能な近似に基づいて微分方程式を決定するものであってもよい。
【００４７】
初期ニューラルネットワークアルゴリズムの全結合層に対して、微分可能な近似は、
ｘを潜在状態、ｕをネットワーク入力、ｂをバイアス、σを活性化関数のインスタンスのベクトル、ｈ、ｋを初期ニューラルネットワークアルゴリズムの層（ｈ＞０）、Ａを状態行列、Ｂを入力伝達行列であるとして、
【数１】
0006912008.tif 000002
の形式で表現されるものであってもよい。
【００４８】
Ｘを層状態行列、Ｕを層入力行列、Ｅをバイアス、Ｃを状態フィルタ、Ｄを入力畳み込みフィルタであるとして、
初期ニューラルネットワークアルゴリズムの畳み込み層に対して、微分可能な近似は、
【数２】
0006912008.tif 000003
の形式で表現されるものであってもよい。
【００４９】
処理手段は、微分可能な近似を微分して微分方程式を得るものであってもよい。
【００５０】
処理手段は、微分可能な近似を微分するために数値計算法を適用するものであってもよい。
【００５１】
処理手段は、Ｃｈｅｎ−Ｆｌｉｅｓｓ級数展開を用いて級数展開に現れる１又は複数の係数を決定するものであってもよい。
【００５２】
処理手段は、級数展開の収束ウィンドウを決定するものであってもよい。
を特徴とするマシンビジョンシステム。
【００５３】
処理手段は、級数展開を生成する最小基底を算出するものであってもよい。
【００５４】
処理手段は、複数の時間ウィンドウごとに級数展開の係数の異なる組を決定するものであってもよい。処理手段は、所定の収束レベルが達成されるまで、決定された係数を調整して微分方程式のベクトル場パラメータを調整するものであってもよい。
【００５５】
処理手段は、再トレーニング処理の一部として、受信した画像データ及び関連する出力分類に基づいて、有限級数展開を更新するものであってもよい。
【００５６】
出力分類、すなわち、車両部品などの部品の検査結果は、データ可視化ソフトウェアにアクセス可能なサーバに送信されるものであってもよい。
【００５７】
本発明の一態様によれば、マシンビジョンシステムが提供される。マシンビジョンシステムは、物体を示す画像データと物体の関連する既知の分類を含むトレーニングデータを受信する受信手段を含むものであってもよい。マシンビジョンシステムは、受信した画像データが提供される入力層と、少なくとも１つの隠れ層と、出力層と、を有する初期ニューラルネットワークアルゴリズムを備え、少なくとも１つの隠れ層は、それぞれ関連する活性化関数を有する複数のニューロンを含み、ニューロンの間の接続は関連するシナプス荷重を有し、受信した画像データに基づいて初期ニューラルネットワークアルゴリズムを評価することで関連する分類を生成することが保証されるよう、シナプス荷重の値を決定するよう構成された処理手段を含むものであってもよい。処理手段は、活性化関数に基づいて初期ニューラルネットワークアルゴリズムを記述する微分方程式を決定し、微分方程式の解を級数展開の形で決定し、級数展開における項数を有限個に制限することによって級数展開を有限級数展開に変換し、有限級数展開に基づいて出力分類を決定し、シナプス荷重の値を調整して、決定した出力分類と物体の関連する既知の分類との間の誤差を減らすものであってもよい。
【００５８】
モデルのパラメータ／係数／重みは、線形モデルと同等の任意の適切な入力／出力方法を用いてトレーニングおよび／または再トレーニングされるものであってもよい。処理手段は、システムをトレーニングするために勾配降下法を適用するものであってもよい。処理手段は、線形系の係数を解くために、Ｍｏｏｒｅ  Ｐｅｎｒｏｓｅ擬似逆法を適用するものであってもよい。このアプローチは、級数のより多くの項を作成することによって、初期のシステムをより複雑にする可能性がある。つまり、単純化された有限級数を作成すると、より多くの項が作成されます。しかし、この方法によれば、よりコンパクトな元の級数と比較して、級数展開された際に不要な項を見つけて除去することがより簡単である。そのため、生成された級数を単純化する機会を提供し、従って元の級数またはニューラルネットワークよりも効率が改善される。
【００５９】
本発明の一態様によれば、生産プロセス装置又は生産プロセスシステムを構成するためのマシンビジョン制御システムが提供される。マシンビジョン制御システムは、分類対象となる物体を示す画像データを受信する受信手段を含むものであってもよい。マシンビジョン制御システムは、受信した画像データが提供される入力層と、少なくとも１つの隠れ層と、出力層と、を有する初期ニューラルネットワークアルゴリズムを備え、少なくとも１つの隠れ層は、それぞれ関連する活性化関数を有する複数のニューロンを含み、受信した画像データに応じて出力分類を出力層に提供するよう構成された処理手段を含むものであってもよい。マシンビジョン制御システムは、出力分類に応じて、生産プロセス装置又は生産プロセスシステムに制御信号を送信し、生産プロセス装置又は生産プロセスシステムのセットアップを実行する制御手段を含むものであってもよい。処理手段は、活性化関数に基づいて初期ニューラルネットワークアルゴリズムを記述する微分方程式を決定し、微分方程式の解を級数展開の形で決定し、級数展開における項数を有限個に制限することによって級数展開を有限級数展開に変換し、有限級数展開に基づいて出力分類を決定するものであってもよい。
【００６０】
本発明の一態様によれば、生産ライン構成装置における損傷、異物、又は、不正確に取り付けられた部品を識別して位置を特定するため、生産ライン構成装置を検査する生産ライン配置が提供される。本発明は、特に、生産ライン上の自動車に関係する。生産ライン配置は、生産ライン構成装置に関する画像データの１又は複数のセットを取得するように構成された少なくとも１つのカメラを含む光学システムを含むものであってもよい。生産ライン配置は、分類対象となる物体を示す画像データを受信する受信手段と、受信した画像データが提供される入力層と、少なくとも１つの隠れ層と、出力層と、を有する初期ニューラルネットワークアルゴリズムを備え、少なくとも１つの隠れ層は、それぞれ関連する活性化関数を有する複数のニューロンを含み、受信した画像データに応じて出力分類を出力層に提供するよう構成された処理手段と、を有するマシンビジョン制御システムを含むものであってもよい。生産ライン配置は、出力分類に応じて、自身のセットアップを実行する生産プロセス装置又は生産プロセスシステムを含むものであってもよい。処理手段は、活性化関数に基づいて初期ニューラルネットワークアルゴリズムを記述する微分方程式を決定し、微分方程式の解を級数展開の形で決定し、級数展開における項数を有限個に制限することによって級数展開を有限級数展開に変換し、有限級数展開に基づいて出力分類を決定するものであってもよい。
【００６１】
本発明の一態様によれば、マシンビジョンに関する方法が提供される。本方法は、分類対象となる物体を示す画像データを受信し、受信した画像データが提供される入力層と、少なくとも１つの隠れ層と、出力層と、を有する初期ニューラルネットワークアルゴリズムであって、少なくとも１つの隠れ層は、それぞれ関連する活性化関数を有する複数のニューロンを含む初期ニューラルネットワークアルゴリズムを提供するものであってもよい。本方法は、活性化関数及び関連するニューラルネットワークパラメータに基づいて初期ニューラルネットワークアルゴリズムを記述する微分方程式を決定し、微分方程式の解を級数展開の形で決定するものであってもよい。本方法は、級数展開における項数を有限個に制限することによって級数展開を有限級数展開に変換し、有限級数展開に基づいて決定される出力分類を、受信した画像データに応じて出力層に提供するものであってもよい。
【００６２】
本発明の一態様によれば、１又は複数のプロセッサによって実行されることにより、上述の方法を実行させる命令を格納するコンピュータプログラム製品が提供される。
【００６３】
本発明の一態様によれば、マシンビジョンシステムを備えるタブレット端末が提供される。
【００６４】
本発明の一態様は、非線形時間依存モデルをＦｌｉｅｓｓ／Ｍａｇｎｕｓ形式のべき級数を介してその双線形形式に変換し、べき級数のベクトル場から生成されるＬｉｅ代数の最小基底、例えば、Ｐｈｉｌｌｉｐ  Ｈａｌｌ基底（これにより、モデルに必要な係数の最小数が生成される。）を生成し、確率的勾配降下法または他の標準的な方法によってべき級数係数を学習し、トレーニングセットに対するべき級数の反復適用により、ベクトル場を学習し、べき級数を必要なモデル形式に変換するステップを実行する処理手段として表現することができる。
【００６５】
本発明の一態様は、マシンビジョン実施のためのニューラルネットワーク、例えば畳み込みニューラルネットワークを提供し、双線形形式に変換し、既知のデータセットをトレーニングし、誤差曲面を生成し、トレーニングが完了するまで反復するステップとして表現することができる。
【００６６】
本発明の一態様は、完全に微分可能であると仮定して、ニューラルネットワークについての解析的で完全に微分可能な方程式を生成し（不連続関数がある場合は、シグモイド関数や双曲線正接関数などの近似値に置き換える。）既知の入出力を定義し、Ｆｌｉｅｓｓシステム（これはＶｏｌｔｅｒｒａ  Ｋｅｒｎｅｌメソッドを使用するか、必要に応じて直接展開する。）を介して双線形の形にシステムを変換し、べき級数の収束ウィンドウを決定するためにシステムをテストし（Ｍａｇｎｕｓ展開を使用する場合、これは先験的に計算されるものであってもよい）；収束ウィンドウの最後で形式的なべき級数をリセットするために使用するベクトル場を抽出し、ベクトル場を使用して、時間ウィンドウごとにべき級数係数を計算し、標準的な方法を使用して、例えば、Ｐ  Ｈａｌｌ基底のようなべき級数を生成するための最小基底を計算し、形式べき級数の係数を時間窓ごとに学習し、学習した係数を使用してベクトル場のパラメータを調整し、収束するまで処理を繰り返し、システムが設定された動作環境で動作する場合は、ベクトル場がグローバルでなくなるように調整し、ルックアップテーブルによって記述できるようにし、必要に応じて、標準的な方法を使用してシステム全体を固定点に変換し、システムをリカレントニューラルネットワークや微分方程式などの必要な形式に変換するステップとして表現することができる。
【００６７】
本発明の一態様は、産業プラントプロセスを検査するためのマシンビジョンシステムを実施する方法を提供する。本方法は、複数の画像、例えば１０００枚の画像を有する画像データベースを作成するものであってもよい。本方法は、画像データベース内の画像を分類すること、例えば、関心のある特徴を強調するものであってもよい。本方法は、関心のある特徴を識別するためにニューラルネットワークをトレーニングするものであってもよい。本方法は、トレーニングされたニューラルネットワークを使用して、エラーの識別および管理を管理するものであってもよい。本方法は、冗長パラメータ／ハイパーパラメータの数を減らすことによって、画像処理に使用されるニューラルネットワークを最適化するものであってもよい。本方法は、ニューラルネットワークをべき級数に変換し、冗長パラメータを識別および除去（潜在的に）するものであってもよい。当該べき級数は、画像、スポットエラーなどを評価し分類するために、マシンビジョンシステムで使用するものであってもよい。
【００６８】
当該べき級数は、元のニューラルネットワークの最適化されたバージョンを構築するために使用するものであってもよい。本方法は、関心のある特徴が変化するように、ニューラルネットワークおよび／または最適化されたべき級数を再トレーニングすることができる再トレーニング段階を含むものであってもよい。当該べき級数は、線形代数技法のみを使用してトレーニングすることができるべき級数であってもよい。
【００６９】
本発明の一態様は、任意の形式の変換器によって生成されたデジタルデータを使用して、物理的アイテム、動物、または人間における特徴または動作を識別するシステム／方法として表すことができる。システム／方法は、変換器によって生成されたデジタルデータを取得し、そこから望ましくない特徴を認識して配置することを以前に教示されたアルゴリズムを通過させる機械学習アルゴリズムを使用することができる。このアルゴリズムは、畳み込み／リカレントニューラルネットワークを採用し、完全に微分可能な形式に変換することによって生成することができる。変換器は、その入力をパーソナルコンピュータまたはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）によって理解され得るデジタルフォーマットに変換する任意のセンサであってよい。本方法は、デジタルデータ入力、好ましくはカメラによってデジタル化された、好ましくは１０ａｔｐを超える解像度の視覚データに対する評価、好ましくは人間による視覚評価のための除外基準を定義することを含んでもよい。本方法は、少なくとも１０個、好ましくは少なくとも２０個、より好ましくは少なくとも３０個の異常発生が収集され、デジタル的に、好ましくはコンピュータのハードディスクに記憶されるまでデータを収集することを含み得る。本方法は、人間の評価データをニューラルネットワークに入力し、トレーニングアルゴリズムを実行することを含むことができる。本方法は、除外の評価のためにデジタルデータにモデルを適用することを含むことができる。視覚データは、１つまたは複数の自動車、自動車部品、および自動車工場のビデオ画像であってもよい。排除基準は、傷、し尿等から選択することができる。
【００７０】
本発明の態様は、以下に概説する１つ以上の利点を有する。
【００７１】
本発明は、リカレントニューラルネットワークを配備するために必要とされる計算能力の関連した減少を伴うリカレントニューラルネットワークのトレーニング時間の減少を提供する。本発明は、ＦＰＧＡベースのハードウェア装置において、マシンビジョンニューラルネットワークアルゴリズムを提供するためのフレームワークを提供する。別の言い方をすれば、比較的迅速にトレーニングすることができ、「軽量」な実装を有するシステムが提供される。
【００７２】
連続ニューラルネットワークおよびリカレントニューラルネットワークは、大量のデータを必要とし、その結果、大量のパラメータ、すなわちニューラルネットワークにおける重みが生じ、非線形システムは、局所的な最小値がエラー勾配の計算などの問題を生じ得るエラー関数を計算する際に問題となる。本発明は、まずパラメータ間の線形関係を識別し、次に双線形関係を識別することによって、不要なパラメータを除去するという点で有利である。これは、重みがニューラルネットワークから除去されるという点で「ドロップアウト」に類似しているが、この場合の重みの除去の決定は、ニューラルネットワークが自然に「過剰学習」傾向にあるためではなく、アルゴリズムがそれを必要とするかどうかに基づく。
【００７３】
Ｃｈｅｎ−Ｆｌｉｅｓｓシステムは、所望の入出力画像を与えられた任意の所望の正則化技術による勾配降下のような線形代数技術のみを用いてシステムをトレーニングする能力を有する。勾配降下トレーニングは、他の方法と比較して、比較的速く、記憶が安価である。
【００７４】
最適化されたニューラルネットワークの利用は、ニューラルネットワークのトレーニングを改善できることを意味する。このことは、ニューラルネットワークの再トレーニング性能も改善できることを意味し、ニューラルネットワークを最適化しない同等のシステムよりもシステムを高速化し、汎用性を高める。これは、最適化／更新されたニューラルネットワークと、最終的なべき級数の両方に適用される。
【００７５】
不要な項、すなわち最適化プロセスで除去された項を計算する必要がないので、関心のある特徴の検出速度が向上する。
【００７６】
最適化されたニューラルネットワークの使用による検出に必要な計算リソースの削減は、識別／検出に必要なハードウェアのサイズの削減を意味し、例えば、小型のモバイルプラットフォームまたはＦＰＧＡで十分であり得る。特に、本発明のマシンビジョンシステムは、タブレット装置のようなハンドヘルド装置、または内蔵カメラシステムに実装することができる。つまり、高価なリソースを使用する必要がない。
【００７７】
本発明は、任意の非連続関数を連続関数（近似）で置き換えることによって、入力から出力へ、および出力から入力へと微分可能なニューラルネットワークを提供する。このニューラルネットワークは変換され、線形代数技法のみを用いてトレーニングできる形式的なべき級数が生成される。これには、速度と効率が向上するという利点があります。
【００７８】
カメラのキャリブレーションや正確な位置決めは必要ない。つまり、故障時のメンテナンスが非常に簡単になる。これは、機能していない機器を交換するだけで済むからである。カメラの視野（ＦＯＶ）が生産ラインの部品、例えば車両を含むまで、表示画面を見ることによってカメラを位置決めするだけでよい。
【００７９】
以下に説明するアルゴリズムによって行われるように、車両の位置を特定するためのエンコーダまたは位置センサがないことに伴い、標準的な人間のオペレータが検査を行うために必要とするものを超える特別な照明は必要としない。
【００８０】
本発明は、光沢表面における反射を認識し、それらを意図しないアーチファクトとしてマークし、それらを検出段階から効果的に除去するようにトレーニングされているので、車両における反射を回避するための特別な要件はない。
【００８１】
線形代数技法のみを使用してトレーニングできるニューラルネットワークを生成することは、最終／更新ニューラルネットワークの速度および効率を向上させる。これは、線形代数技法が、ベクトルや行列のような構造を例とする、同時に操作するのに非常に適した数のグループを提供するからである。ニューラルネットワークは重みなどを行列に格納するため、線形代数を使用できるニューラルネットワーク形式を提供することで、行列演算を高速かつ簡単にすることができる。これは特に、ＧＰＵに関するトレーニングの場合に当てはまる。ＧＰＵはベクトルと行列演算を念頭に置いて作成され、データの行列全体、例えばピクセルを並列に操作できる。
【００８２】
本発明は、過剰にパラメータ化され、過剰に適合されたニューラルネットワークに関連する減速および効率の欠点に対処する。本発明は、ニューラルネットワーク・プルーニングのような他の最適化方法の欠点なしに効率を向上させる。
【図面の簡単な説明】
【００８３】
【図１】図１は、従来技術のマシンビジョンシステムを含む構成の概要を示す。
【図２】図２は、本発明の態様の一実施形態によるマシンビジョンシステムを含む構成の概要を示す図である。
【図３】図３は、システムのトレーニング段階中に動作可能な図２のマシンビジョンシステムのトレーニングモジュールを示す図である。
【図４】図４は、ニューラルネットワークを最適化された代数形式に変換するように動作可能な図２のマシンビジョンシステムの変換モジュールを示す。
【図５】図５は、図４の変換モジュールによって行われる方法のステップを示す。
【発明を実施するための形態】
【００８４】
図２は、本発明の一実施形態によるマシンビジョン装置１００を示す。図１の従来技術の構成１０に示されるものと同一の構成要素には、同一の参照番号を付してある。装置１００はコンピュータの形態の処理手段２００を含み、処理手段２００はマシンビジョンシステム２４０を含み、その動作を以下に詳細に説明する。
【００８５】
説明した実施形態では、光学システム１６は、車両１４の両側に配置された、車両１４を遮るもののない二つのカメラを備えた解像度１０８０ｐの四つの赤、緑、青（ＲＧＢ）カメラを含む。カメラは、任意の適切な手段によって任意の適切な構造に接続される。カメラは、その視野（ＦＯＶ）が車両１４の可能な最大領域をカバーするように配置される。カメラは、四つの別個のＣＡＴ７イーサネット(登録商標）ケーブルおよびギガビットハブを介してコンピュータ２００に接続され、このギガビットハブは、１０ギガビットネットワークカードを介してコンピュータ２００に接続される。パソコン、ハブ、カメラはすべてイーサネット(登録商標）ジャンボフレームを使用できるように設定される。カメラは、最高ピクセル解像度で約１０フレーム／秒でイメージをキャプチャするように構成される。コンピュータ２００は、ＥＡＬ４＋  Ｌｉｎｕｘ(登録商標）オペレーティングシステムを、以下に説明するアルゴリズムを実行するための適切なソフトウェアフレームワークと共に実行するように設定される。
【００８６】
個々のシステムにはそれぞれ、ＧＮＵプライバシー・ガード（ＧＮＵＰＧ）によって生成された、自身を識別するための中央認証機関からの証明書が提供される。コンピュータ２００は、標準のＬｉｎｕｘ(登録商標）  Ｕｎｉｆｉｅｄ  Ｋｅｙ  Ｓｅｔｕｐ（ＬＵＫＳ）暗号化ソフトウェアを用いて、そのハードディスクをフルディスク暗号化でセットアップする。さらに、以下に説明するモデルは、ＧＮＵＰＧとその公開暗号化キーを使用して暗号化され、キー失効証明書とともにサーバ・データベースにロードされる。起動時、処理手段２００は、カメラ１６に接続してシステムを初期化する。次に、完全順方向暗号化（楕円曲線Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎなど）を使用した安全な接続を介して中央サーバへの接続を試み、サーバに復号化サービスを要求する。サーバは、トランスポート層セキュリティ（ＴＬＳ）証明書をチェックすることによって、システムが正しく認証されているかどうか、および処理手段またはシステム２００がサーバ・データベースにおいて使用可能として示されているかどうかをチェックする。次に、ビジョンシステムのＧＮＵＰＧの公開キーを使用してモデルを暗号化解除する必要がある。暗号化されたモデルはサーバに送信される。このモデルは、配備されたすべてのマシンビジョンシステムの秘密鍵を保持するサーバによって解読され、管理者によって秘密鍵パスワードが入力された後、マシンビジョンシステムのランダムアクセスメモリに戻される。
【００８７】
動作中、システムは６０秒ごとにハートビートメッセージをサーバに送信する。システムがスケジュールされたシャットダウンイベントの外にハートビートを送信できず、論理暗号接続リンクが存在しなくなった場合、サーバはシステムの暗号化キーを一時的に取り消す。サーバは、サーバ管理者に電子メールを送信して、問題の可能性を通知する。管理者のみが暗号化キーを復元して、システムを再び動作させることができる。
【００８８】
次に、処理手段２００、特にマシンビジョンシステム２４０の動作を詳細に説明する。上述した従来技術のシステム２４とは異なり、ここで説明するシステム２４０は、画像を分類し、欠陥を検出する等のために、トレーニングされたニューラルネットワークをマシンビジョン装置内の捕捉された画像に直接適用しない。代わりに、システム２４０は、まず、トレーニングされたニューラルネットワークを「最適化された」形態に変換し、次いで、この最適化された形態を、分類を行うために、捕捉された画像に適用する。より具体的には、トレーニングされたニューラルネットワークは最適化された代数形式に変換される。この最適化された代数的形式は、捕捉された画像を分類するために使用されてもよく、または最適化された代数的形式は、最適化されたまたは更新されたニューラルネットワーク形式に再度変換されてもよく、その後、捕捉された画像を分類するために使用される。
【００８９】
従って、要約すると、システム２４０によって実行されるステップは、
・システム２４０に提供される「標準」ニューラルネットワークをトレーニングすること
・トレーニングされたニューラルネットワークを最適化された代数形式または双線形形式に変換すること
・最適化された代数形式を、最適化されたニューラルネットワークへ変換すること
・マシンビジョンアレンジメント１００内の捕捉された画像を分類するために、最適化された代数的形式または最適化されたニューラルネットワーク形式のいずれかを適用すること
・キャプチャされた画像の分類出力に基づいて最適化された代数形式または最適化されたニューラルネットワーク形式を再トレーニングすること
を含む。
【００９０】
ニューラルネットワークをトレーニングする第１のステップは、以下のように行うことができる。図３を参照すると、システム２４０は、トレーニングニューラルネットワーク３０２を備えたニューラルネットワークトレーニングモジュール３００を有する。これは、マシンビジョンアプリケーションに適した任意のニューラルネットワークアーキテクチャであってもよく、例えば、畳み込みニューラルネットワーク（ＣＮＮ）、リカレントニューラルネットワーク、またはいずれかもしくは両方の組み合わせを使用することができる。ニューラルネットワークは、例えば、オープンソースの機械学習ソフトウェアライブラリＴｅｎｓｏｒＦｌｏｗを使用して、任意の適切な方法で実装することができる。ニューラルネットワークの特定の選択は重要ではなく、学習された重みおよびバイアスを、以下に説明する生成された級数へ、および生成された級数から転送する手段としてのみ機能する。
【００９１】
ニューラルネットワーク３０２は、ランダム初期化３０４、すなわち、トレーニングプロセス中に調整されるべきランダムな開始値を有する重みのセットを備えている。次に、ニューラルネットワーク３０２には、処理手段２００のデータベース３０６からトレーニングデータが提供される。入力トレーニングデータは、例えばカメラからのトレーニング画像のセット、または準備された画像のデータベースである。トレーニングデータのキャプチャされた画像データは既知の分類を有し、すなわち、ニューラルネットワーク３０２からの所望の出力分類が既知である。このトレーニングデータは、トレーニングモジュール３００によって使用され、ランダム初期化３０４の初期重みを調整して、トレーニングデータのキャプチャされた画像を正しく分類できるようにニューラルネットワークをトレーニングする。
【００９２】
トレーニングデータを処理する際にニューラルネットワーク３０２によってネットワークの各出力ノードに割り当てられた値が、トレーニングデータの既知の「正しい」出力値と比較される。すなわち、各出力ノードに対する寄与は、加算関数３０８によって加算され、各出力ノードに対する誤差項は、ニューラルネットワーク３０２による実際の計算値をデータベース３０６からの「正しい」値と比較することによって計算される。これにより、各出力ノードに誤差項が生成され、誤差項に基づいて初期重みの値が修正される。これらの修正された重み３１０は、ニューラルネットワーク３０２にフィードバックされ、再び実行される。このプロセスは、計算された誤差値が閾値を下回るまで繰り返される。次いで、トレーニングモジュール３００は、変換されるべきトレーニング済みニューラルネットワーク３１２を出力する。
【００９３】
図４を参照すると、システム２４０は、トレーニングモジュール３００によって出力されたトレーニング済みニューラルネットワーク３１２を最適化された代数形式に変換するように構成された変換モジュール３２０を含む。変換モジュール３２０は、トレーニングされたニューラルネットワーク３１２および一組のルール３２４を受信するように構成されたプロセッサまたは処理手段を有し、これらの記憶されたルールに従って変換が行われる。変換モジュール３２０は、トレーニングされたニューラルネットワーク３１２上で所望の動作、すなわち変換を実行するのに適した任意のコンピューティングリソースとすることができる。例えば、デスクトップまたはラップトップのような任意の汎用コンピューティングデバイス、またはＡＳＩＣ／ＦＰＧＡのような特殊ハードウェアを使用することができる。
【００９４】
次に、プロセッサ３２２は、トレーニングされたニューラルネットワーク３１２についての計算された代数形式３２６を出力する。計算された代数形式３２６は、検査されるべき生産ライン／ワークピース１４、例えば車両の画像のクラスを処理するための最適化されたパラメータを有するトレーニングされたニューラルネットワーク３１２の代数表現である。
【００９５】
上述のように、結果として得られる代数形式３２６は、元のニューラルネットワークの最適化された表現であり、マシンビジョン装置１００における「現状のまま」で、光学システム１６からのキャプチャされた画像を分類する際に使用することができる。または、代数形式３２６は、最適化され訓練されたニューラルネットワークを決定するために、オリジナルのトレーニングされたニューラルネットワークのパラメータ（つまり、ウェイト、バイアス、層の数、ノードなど）が、分類の速度および効率を増加させるように最適化される際に使用することができる。
【００９６】
さらに、最適化された代数形式３２６を変換モジュール３２０にフィードバックして、新しいデータセット３２８、すなわち、光学システム１６から「正しい」分類とともに取り込まれた画像に基づいて、マシンビジョンシステム２４０をさらにトレーニングまたは最適化することができる。
【００９７】
次に、図５を参照して、トレーニングされたニューラルネットワーク３１２を最適化された代数形式３２６に変換するためのプロセッサ３２２の動作について説明する。最適化された代数形式３２６は、トレーニングされたニューラルネットワーク３１２の近似であることに留意されたい。最適化された代数形式３２６は、べき級数、例えばテイラー級数の形式であり、ニューラルネットワークのトポロジーを近似するために使用することができる。
【００９８】
図５は、プロセッサ３２２によって行われる方法４００のステップを示す。ステップ４０２において、プロセッサ３２２は、トレーニングモジュール３００および変換のためのルール３２４からトレーニングされたニューラルネットワーク３１２を取得する。
【００９９】
ステップ４０４において、トレーニングされたニューラルネットワークは、順方向および逆方向の両方において完全に微分可能な形式に再変換される。すなわち、ニューラルネットワークは、入力から出力へ、および出力から入力へ完全に微分できるように再変換される。具体的には、ニューラルネットワーク内の各ニューロンにおける活性化関数を微分可能な関数で置き換える。
【０１００】
微分可能な形式に再変換するために、任意の静的な不連続関数を連続近似で除去する。
【０１０１】
例えば、先に述べたように、ニューラルネットワーク、ＣＮＮの場合は、活性化関数の１つの形態として、１つの層のニューロン・クラスタの出力を次の層の単一ニューロンに結合するプーリング層を含む。トレーニングされたＣＮＮ３１２内のプーリング層は、本実施形態では連続関数で置き換えられる。特に、最大プーリング層、すなわち、入力値の最大値がその特定のニューロンの値となるプーリング層は、要素の加重和によって置き換えられる。和の中の各要素はニューロンへの入力を表し、要素の１つは、他の各要素よりも有意に大きな重みを有し、これにより、最大プーリング層における最大入力値の選択を再作成する。
【０１０２】
例えば、トレーニングされたＣＮＮ３１２における別のタイプの活性化関数は、正規化線形ユニット（ＲＬＵ）である。ＲＬＵの正規化線形関数は次のように定義される。
【数３】
0006912008.tif 000004
ここでｕはニューロンへの入力でありｙはニューロンの出力を表す。明らかに、この関数にはｕ＝０に不連続点を有する。したがって、ＲＬＵはシグモイド関数によって置換される。シグモイド関数は、ＲＬＵとは異なり、ドメイン全体に渡って滑らかである。シグモイド関数の例には、双曲線正接関数、逆正接関数、ロジスティック関数、およびエラー関数がある。ＲＬＵをｔａｎｈ関数に置き換えることもできる。この段階では、ニューラルネットワークを表す微分可能な方程式が得られる。次に、得られた方程式を微分する。
【０１０３】
微分可能方程式に対する解は、Ｃｈｅｎ‐Ｆｌｉｅｓｓ級数として記述できる。ここでは、最小解を用いる。最小解を見つけることで、可能な限り最もコンパクトなネットワークの表現を返すことができる。
【０１０４】
これは、非線形活性化関数のようなニューラルネットワークにおける元の項が、それらのＣｈｅｎ‐Ｆｌｉｅｓｓ級数による等価システムで置き換えられることを意味する。
【０１０５】
非線形関数をＣｈｅｎ−Ｆｌｉｅｓ級数で置き換える例を次に示す。ｙ＝ｈ（ｘ）ｕで定義される一般的な非線形活性化関数の場合（ここで、ｙは出力、ｈ（ｘ）は非線形状態空間、ｕは関数への入力）、Ｃｈｅｎ−Ｆｌｉｅｓｓ級数は次のように定義される。
【数４】
0006912008.tif 000005
【０１０６】
このプロセスをさらに詳しく説明すると、ステップ４０４で得られたｙ（ｕ）のような微分可能な関数は、ステップ４０６でプロセッサ３２２によって、ｕに関して微分される。一例として、１つの入力ニューロンと１つの出力ニューロンを持つニューラルネットワークの簡単な例を検討する。単一ニューロンの活性化関数は次の連続関数に置き換えられる。
【数５】
0006912008.tif 000006
ここで、ｗｉはニューロンへの各入力に関連する重み、ｕは入力パラメータ／関数、ｂ  は、アクティブ化関数に対する一定のバイアスである。この例では、合計はｗ０である。
【０１０７】
ステップ４０６にて、ｙ（ｕ）はｕに関して微分されて次式を得る。
【数６】
0006912008.tif 000007
ここで左辺はネットワークの微分を表す。この式は、２階微分方程式としては、実用的には解くのが難しい。したがって、本方法では、方程式を標準的な数学的方法を使用して状態空間形式に変換し、簡単で高速に解くことが可能な１階微分方程式を得る必要がある。
【０１０８】
バイアスがゼロに設定されている場合、すなわち、ｂ＝０である場合、上記の式を次にように状態空間形式に変換してもよい。
【数７】
0006912008.tif 000008
【０１０９】
パラメータｘ１、ｘ２、ｋ１、ｗは、パラメータ空間における状態であり、または、状態空間における座標として理解することができる。例えば、ｘ１はニューロンの出力を表し、ｘ２は入力の加重合計を表すものであってもよい。微分は、例えば、時間に関して行われる。
【０１１０】
このステップは、単にネットワークをＣｈｅｎ−Ｆｌｉｅｓｓ級数に変更する上記の方法を適用できる形式に変換することである。
【０１１１】
本方法により、状態空間形式が提供される。
【０１１２】
この状態空間形式から、ステップ４１０でベクトル場を抽出して、次式を得る。
【数８】
0006912008.tif 000009
【０１１３】
これにより、プロセッサ３２２は、ステップ４１２にて、次の生成された級数を得ることができる。
【数９】
0006912008.tif 000010
ここで、ｃ０とｃ１はベクトル場の適用によって生成される。
【０１１４】
上述の式は、次のように単純化される。
【数１０】
0006912008.tif 000011
【０１１５】
生成された級数が長さ１で切り捨てられる場合、評価の基礎となる活性化関数が、小さな時間間隔と小さな入力変化の下で線形化された状況に相当する。すべての時間、入力に対して有効となる、生成された級数を得るためには、上述の方法を用いて係数ｃ０とｃ１を所定の時間間隔ごとに再計算する必要がある。級数の長さが増加すると収束領域も増加する。つまり、級数の係数を再計算する前と比較して時間の長さと入力が変更できる量が増加する。級数は、任意の長さで切り捨てることができる。
【０１１６】
プロセッサ３２２において生成された級数を実現するためには、上述の方程式を連続時間から有限時間に変換する必要がある。これは、前述のＣｈｅｎ  Ｆｌｉｅｓｓ演算子を反復和で置き換えることによって実現され、アルゴリズムが動作している状況下で必要なエラーレベルが達成される。生成された級数の積分は、周知の数学的方法を用いて合計で置き換えられる。
【０１１７】
より一般的には、プロセッサ３２２によって行われる方法のステップは、以下のように記述され得る。すなわち、トレーニングされたニューラルネットワーク３１２は、ステップ４０２においてプロセッサ３２２によって受信され、ニューラルネットワーク３１２の各（隠れた）層は、全結合層または畳み込み層のいずれかであると定義される。
【０１１８】
ニューラルネットワーク３１２の各全結合層について、ステップ４０２で、層は、微分可能な形式、具体的には次の形式に再変換される。
【数１１】
0006912008.tif 000012
ここで、ｘは潜在状態、ｕはネットワーク入力、ｂはバイアス、σは活性化関数のインスタンスのベクトル、ｈ、ｋは初期ニューラルネットワークアルゴリズムの層（ｈ＞０）、Ａは状態行列、Ｂを入力伝達行列である。つまり、ネットワークのｋ＋１番目の層（又は、リカレントネットワークのｋ＋１番目の時刻）においてベクトル表現を決定するためには、前の層におけるベクトル表現であるｘ（ｋ）をある非線形変換によって追加的に更新する。
【０１１９】
同様に、ニューラルネットワーク３１２の各畳み込み層について、ステップ４０２で、層を微分可能な形態、具体的には次の形態に再変換する。
【数１２】
0006912008.tif 000013
ここで、Ｘは層状態行列、Ｕは層入力行列、Ｅはバイアス、Ｃは状態フィルタ、Ｄは入力畳み込みフィルタである。すなわち、全結合層に使用される行列乗算は、代わりに畳み込み演算子で置き換えられる。
【０１２０】
ステップ４０６では、各層を表す上述の動的システムを微分方程式に変換するように微分する。特に、このステップを実行するために数値計算法を実施することができる。本実施形態では、Ｒｕｎｇｅ−Ｋｕｔｔａ法を用いる。しかしながら、数値積分のタイプはシステムのサンプリングレートに依存する。例えば、いくつかの実施形態では、Ｓｉｍｐｓｏｎの規則の形態を使用することができる。
【０１２１】
この結果、一連の非線形、非自律的な一次常微分方程式（ＯＤＥ）がニューラルネットワークの各層に対して一つずつ得られる。ニューラルネットワークの特定の層に対する微分方程式の出力は、ニューラルネットワークの次の層の微分方程式への入力である。これは、ネットワークの各層がＯＤＥの状態であるニューラルネットワーク全体を表す単一のＯＤＥとみなすことができる。具体的には、ネットワークの最初の層または最上位の層がＯＤＥへの入力であり、ネットワークの最後の層または最下位の層がＯＤＥの出力であり、その他の層は潜在的な層（隠れ層）であるとみなすことができる。
【０１２２】
ネットワークへの入力は、空間内の座標、例えばｘ，ｙ座標であると考えることができる。必要な入力の数に応じて、特に入力の数が比較的多い場合は、これを時間とともに変化する入力のより小さなサブセットに変換することができる。具体的には、時間に応じて変化するすべての入力に対応して追従して変化する関数が得られる。一般には、画像はｍ×ｎの入力を与える。しかしながら、例えば、小さな３×３行列は、代わりに画像全体、すなわち画像全体にわたってトレースされてもよい。言い換えると、ｍ×ｎの入力にわたって、任意の所定の経路と速度で、入力を提供している特定の点が分かるように入力を行うものであってもよい。これは、前述のようにＣｈｅｎ−Ｆｌｉｅｓｓ級数を使用してステップ４１２で生成された級数の係数を計算する際に、項数を減らすのに役立つ。
【０１２３】
これに先立ち、ネットワークを記述するＯＤＥの自由流れと駆動ベクトル場を定義し、分離した。ベクトル場は、時間／入力の変化によって駆動されるＯＤＥの出力の変化の方向及び大きさを与える関数とみなすことができる。初期条件から、ベクトル場の方向と値は、その周囲の小さな領域では変化しない。次に、方程式の流れが少量の時間だけ移動される場合、ベクトル場を使用して、方程式を満たすために必要な入力の方向および大きさの変化を決定することができる。次に、ベクトル場の値が再計算され、方程式がさらに短い時間だけ移動できるようになる。このプロセスを数回繰り返して、任意の入力とすべての時間について元の方程式を解く方法を得る。
【０１２４】
最後に、ベクトル場が定義されると、上記のように、ステップ４１２で生成された級数の係数が計算される。
【０１２５】
状態空間形式への変換は、微分可能形式への変換およびその後の微分の後に行われるものとして図５に示されているが、いずれかの操作が線形である場合、状態空間形式への変換は、この前にも行われ得ることが理解される。
【０１２６】
次に、プロセッサ３２２は、マシンビジョン装置１００内の検証データまたはリアルタイムデータに使用される、すなわち、新たに受信された画像データを分類するために使用される、計算された生成された級数または「最適化された代数形式」３２６を出力する。特に、マシンビジョンシステム２４０は、光学システム１６から画像データを受け取り、生成シリーズの生成された「最適化された」パラメータを使用して、入力データを特定の出力分類に分類する。そして、この出力を生産プロセス制御システム２２に送ることができる。
【０１２７】
あるいは、計算された生成された級数は、変換モジュール３２０によって出力される前に、プロセッサ３２２によって、ニューラルネットワーク、今回は  最適化されたニューラルネットワーク３２６に戻される。次に、最適化されたニューラルネットワーク３２６を使用して、マシンビジョン装置１００内の新たに受信された画像データを分類する。
【０１２８】
最適化されたニューラルネットワーク３２６が新たに受信されたデータを分類した後、この分類の結果をトレーニングモジュール３００にフィードバックして、最適化されたパラメータをさらに改善することができ、したがって、この構成の性能をさらに改善することができる。
【０１２９】
添付の特許請求の範囲に定義される本発明の範囲から逸脱することなく、上述の実施形態に多くの変更を加えることができる。
【０１３０】
説明される実施形態では、システム２４０に提供される（おそらく従来の方法で）ニューラルネットワークは、最適化された形態に変換される前に、まず、システム２４０によってトレーニングされる。しかしながら、異なる実施形態では、ニューラルネットワークは、最適な形態に変換される前にトレーニングされる必要はない。例えば、所望のニューラルネットワークが、既に成功裏にトレーニングされたモデルまたはニューラルネットワークに基づいており、このモデルをより効率的な方法で実施することが望まれる場合、これは、出発点となるニューラルネットワークである。しかしながら、モデルが好ましくない場合、すなわち、ニューラルネットワークが既にトレーニングされていない場合、生成された級数による展開を直接使用することができ、特定のモデルを定義する必要性、すなわち、初期ニューラルネットワークをトレーニングする必要性がなくなる。
【０１３１】
説明される実施形態では、変換モジュール３２０は、初期の標準ニューラルネットワークをトレーニングするトレーニングモジュール３００と同じシステム２４０の一部である。しかし、異なる実施形態では、変換モジュール３２０は、トレーニングモジュール３００とは別のコンピューティングシステム上で動作してもよい。
【０１３２】
本出願は、２０１７年９月２５日に出願された英国特許出願第１７１５４５６．８号からの優先権の利益を主張し、その全内容は、本出願の明細書において参照により援用される。
【図１】
0006912008.tif 000016
【図２】
0006912008.tif 000017
【図３】
0006912008.tif 000018
【図４】
0006912008.tif 000019
【図５】
0006912008.tif 000020