(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024177105
(43)【公開日】2024-12-19
(54)【発明の名称】KNNベースの異常検出のための閾値及びモデルの適応
(51)【国際特許分類】
G06T 7/00 20170101AFI20241212BHJP
G06F 18/2433 20230101ALI20241212BHJP
G06N 20/00 20190101ALI20241212BHJP
G06F 18/2135 20230101ALI20241212BHJP
【FI】
G06T7/00 610Z
G06T7/00 350B
G06F18/2433
G06N20/00 130
G06F18/2135
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024090556
(22)【出願日】2024-06-04
(31)【優先権主張番号】18/330,477
(32)【優先日】2023-06-07
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【弁理士】
【氏名又は名称】廣瀬 繁樹
(74)【代理人】
【識別番号】100130133
【弁理士】
【氏名又は名称】曽根 太樹
(72)【発明者】
【氏名】ユイチアオ チョン
(72)【発明者】
【氏名】加藤 哲朗
(57)【要約】
【課題】物体の画像から異常を検出する方法を提供する。
【解決手段】特徴抽出器が、良好部品及び不良部品を含む部品画像を特徴付ける特徴データを提供する。良好部品の訓練データを使用して、k近傍法(k-NN)モデルコアセットを作成する。良好部品と不良部品の一部の適応データを、k-NNモジュールによって評価し、特徴データから異常スコアを決定する。異常スコアの良好部品対不良部品の閾値を最初は低い値に設定する。閾値を超える異常スコアを検出すると、人が対応する画像を検査して、対象部品が良好か不良かを判定する。部品が良好であり、異常が誤りであった場合に、k-NNモデルコアセットが更新され、対象部品の特徴データが含まれるようになり、閾値が高く調整される。適応のたびにk-NNモデルはテストデータセットに適用されて、性能を評価する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
適応型異常検出方法であって、前記方法は、
複数の良好部品画像及び複数の異常部品画像を含む入力データセットを提供するステップと、
前記入力データセット内の画像に対して特徴抽出を実施して、特徴ベクトルデータを生成するステップと、
プロセッサ及びメモリを有するコンピュータ上で稼働するk近傍法(k-NN)アルゴリズムを使用して、前記画像の異常スコアを決定するステップであって、前記特徴ベクトルデータを良好部品画像の特徴ベクトルを含むモデルコアセットと比較するステップを含む、ステップと、
前記異常スコアが閾値より大きい場合に、前記画像の人間による検査を実施するステップと、
前記検査によって前記画像が真の異常であると判定された場合に、前記画像の前記特徴ベクトルデータを用いて異常ライブラリを更新するステップと、
前記検査によって前記画像が誤った異常であると判定された場合に、前記モデルコアセットを適応させるステップであって、予め定められた相対距離基準が満たされた場合に、前記モデルコアセット内の特徴ベクトルを前記特徴ベクトルデータ内の特徴ベクトルに置き換えるステップを含む、ステップと、
前記モデルコアセットを適応させた後に前記閾値の新たな値を計算するステップと、
前記入力データセット内の次の画像に対して特徴抽出を実施するステップと、を含む、方法。
【請求項2】
前記モデルコアセットを適応させて、前記閾値の新たな値を計算した後に、複数の良好部品画像及び複数の異常部品画像を含むテストデータセットに対して異常検出を実施するステップをさらに含む、請求項1に記載の方法。
【請求項3】
テストデータセットに対して異常検出を実施するステップは、前記テストデータセット内の前記画像のそれぞれに対して前記k-NNアルゴリズムを使用して異常スコアを計算し、前記画像のそれぞれの既知の良好部品又は異常分類と前記異常スコアを比較して、前記モデルコアセット及び前記閾値の現在の適応に対する性能スコアを判定するステップを含む、請求項2に記載の方法。
【請求項4】
良好部品画像が、許容できる品質であると判定された部品の画像であり、不良部品画像が、許容できない品質であると判定された部品の画像である、請求項1に記載の方法。
【請求項5】
前記モデルコアセットは、複数の良好部品画像を含む訓練データセット内の画像からの特徴ベクトルを含めることによって最初に作成される、請求項1に記載の方法。
【請求項6】
k-NNアルゴリズムを使用して前記画像の異常スコアを決定するステップは、前記特徴ベクトルデータ内の各特徴ベクトルから前記モデルコアセット内の特徴ベクトルまでの距離を計算し、最近傍のコアセットの特徴ベクトルまでの最小距離を特定し、前記最小距離に基づいて前記異常スコアを決定するステップを含む、請求項1に記載の方法。
【請求項7】
前記特徴抽出器は、前記画像のそれぞれについて複数の特徴ベクトルを抽出し、各特徴ベクトルは複数の成分値を含み、前記距離は、対応する成分値間の差に基づいてベクトル空間にて計算される、請求項6に記載の方法。
【請求項8】
前記モデルコアセットを適応させるステップは、前記特徴ベクトルデータ内の前記特徴ベクトルから前記モデルコアセット内の最も近い特徴ベクトルまでの距離が、前記モデルコアセット内の最近傍の一対の特徴ベクトル間の距離よりも大きい場合に、前記モデルコアセット内の特徴ベクトルを前記特徴ベクトルデータ内の特徴ベクトルと置き換えるステップを含む、請求項1に記載の方法。
【請求項9】
前記最近傍の一対の前記特徴ベクトルのうちの1つを前記モデルコアセットから除去し、前記特徴ベクトルデータ内の前記特徴ベクトルを前記モデルコアセットに追加する、請求項8に記載の方法。
【請求項10】
前記閾値の新たな値を計算するステップは、前記モデルコアセットを適応させた後に前記画像の前記異常スコアを再計算し、適応後の前記モデルコアセット及び前記異常ライブラリを使用して前記閾値の上限を計算し、前記閾値の古い値と前記再計算された異常スコアのうちの大きい方に増分項を加えた値として前記閾値の前記新たな値を計算し、前記上限を超えないように制限するステップを含む、請求項1に記載の方法。
【請求項11】
前記入力データセット内の前記画像の全部を処理した後に、最終モデルコアセットとともに前記k-NNアルゴリズムを使用して、未知の良好部品又は異常分類の製造部品の画像の異常スコアを計算し、最終閾値未満の異常スコアを有する部品を受け入れ、前記最終閾値を超える異常スコアを有する部品を拒否するステップ、をさらに含む、請求項1に記載の方法。
【請求項12】
適応型異常検出方法であって、前記方法は、
複数の良好部品画像を含む訓練データセット内の画像からの特徴ベクトルを含むモデルコアセットを作成するステップであって、良好部品画像は許容可能な品質を有する部品の画像である、ステップと、
複数の良好部品画像及び複数の異常部品画像を含む入力データセットを提供するステップであって、異常部品画像が、許容できない品質を有する部品の画像である、ステップと、
前記入力データセット内の画像に対して特徴抽出を実施して特徴ベクトルデータを生成するステップと、
プロセッサ及びメモリを有するコンピュータ上で稼働するk近傍法(k-NN)アルゴリズムを使用して、前記画像の異常スコアを決定するステップであって、前記特徴ベクトルデータを前記モデルコアセットと比較するステップを含む、ステップと、
前記異常スコアが閾値より大きい場合に、前記画像の人間による検査を実施するステップと、
前記検査によって前記画像が真の異常であると判定された場合に、前記画像の前記特徴ベクトルデータを用いて異常ライブラリを更新するステップと、
前記検査によって前記画像が誤った異常であると判定された場合に、前記モデルコアセットを適応させるステップであって、予め定められた相対距離基準が満たされた場合に、前記モデルコアセット内の特徴ベクトルを前記特徴ベクトルデータ内の特徴ベクトルと置き換えるステップを含む、ステップと、
前記モデルコアセットを適応させた後に、前記閾値の新たな値を計算するステップと、
複数の良好部品画像及び複数の異常部品画像を含むテストデータセットに対して異常検出を実施して、前記モデルコアセット及び前記閾値の現在の適応の性能スコアを判定するステップと、
前記入力データセット内の次の画像に対して特徴抽出を実施するステップと、
前記入力データセット内の前記画像の全部を処理した後に、最終モデルコアセットとともにk-NNアルゴリズムを使用して、未知の良好又は異常の分類の生産部品の画像の異常スコアを計算し、最終閾値未満の異常スコアを有する部品を受け入れ、最終閾値を超える異常スコアを有する部品を拒否するステップと、を含む、方法。
【請求項13】
前記モデルコアセットを適応させるステップは、前記特徴ベクトルデータ内の前記特徴ベクトルから前記モデルコアセット内の最も近い特徴ベクトルまでの距離が、前記モデルコアセット内の最近傍の一対の特徴ベクトル間の距離よりも大きい場合に、前記最近傍の一対の特徴ベクトルのうちの1つを前記モデルコアセットから除去し、前記特徴ベクトルデータ内の前記特徴ベクトルを前記モデルコアセットに追加するステップを含む、請求項12に記載の方法。
【請求項14】
前記閾値の新たな値を計算するステップは、前記モデルコアセットを適応させた後に前記画像の前記異常スコアを再計算し、適応後の前記モデルコアセット及び前記異常ライブラリを使用して前記閾値の上限を計算し、前記閾値の前記新たな値を、前記閾値の古い値と前記再計算された異常スコアのうちの大きい方に増分項を加えた値として計算し、前記上限を超えないように制限するステップを含む、請求項12に記載の方法。
【請求項15】
適応型異常検出システムであって、
プロセッサ及びメモリが構成されたコンピュータと、
複数の良好部品画像を含む訓練データセット内の画像から特徴ベクトルを抽出する特徴抽出器モジュールであって、前記訓練データセットからの前記特徴ベクトルがモデルコアセットを作成するために使用される、特徴抽出器モジュールと、
k近傍法(k-NN)アルゴリズムと、
適応モジュールと、を備え、
複数の良好部品画像及び複数の異常部品画像を含む入力データセットが前記特徴抽出器モジュールに提供され、
前記特徴抽出器モジュールは、前記入力データセット内の画像に対して特徴抽出を実施して特徴ベクトルデータを作成し、
前記k-NNアルゴリズムは、前記特徴ベクトルデータを前記モデルコアセットと比較することを含んで、前記画像の異常スコアを決定し、
前記適応モジュールは、前記異常スコアが閾値よりも大きく、人間による検査によって前記画像が真の異常であると判定された場合に、前記画像の前記特徴ベクトルデータを用いて異常ライブラリを更新し、
前記適応モジュールは、前記異常スコアが前記閾値よりも小さく、前記人間による検査によって前記画像が誤った異常であると判定された場合に前記モデルコアセットを適応させるステップであって、予め定められた相対距離基準が満たされた場合に前記モデルコアセット内の特徴ベクトルを前記特徴ベクトルデータ内の特徴ベクトルと置き換えるステップを含む、ステップを実施し、
前記適応モジュールは、前記モデルコアセットを適応させた後に、前記閾値の新たな値を計算し、
前記特徴抽出器モジュールは、前記入力データセット内の次の画像に対して特徴抽出を実施する、システム。
【請求項16】
前記モデルコアセットを適応させることは、前記特徴ベクトルデータ内の特徴ベクトルから前記モデルコアセット内の最も近い特徴ベクトルまでの距離が、前記モデルコアセット内の最近傍の一対の特徴ベクトル間の距離よりも大きい場合に、前記最近傍の一対の特徴ベクトルのうちの1つを前記モデルコアセットから除去し、前記特徴ベクトルデータ内の前記特徴ベクトルを前記モデルコアセットに追加することを含む、請求項15に記載のシステム。
【請求項17】
前記特徴ベクトルデータは、前記画像のそれぞれについて複数の特徴ベクトルを含み、各特徴ベクトルは、複数の成分値を含み、前記距離は、対応する成分値間の差に基づいてベクトル空間で計算される、請求項16に記載のシステム。
【請求項18】
前記閾値の新たな値を計算することは、前記モデルコアセットを適応させた後に前記画像の前記異常スコアを再計算し、適応後の前記モデルコアセット及び前記異常ライブラリを使用して前記閾値の上限を計算し、前記閾値の前記新たな値を、前記閾値の古い値と前記再計算された異常スコアのうちの大きい方に増分項を加えた値として計算し、前記上限を超えないように制限することを含む、請求項15に記載のシステム。
【請求項19】
前記k-NNアルゴリズムは、前記特徴ベクトルデータ内の各特徴ベクトルから前記モデルコアセット内の特徴ベクトルまでの距離を計算し、最近傍のコアセットの特徴ベクトルまでの最小距離を特定し、前記最小距離に基づいて前記異常スコアを決定することによって、前記画像の異常スコアを決定する、請求項15に記載のシステム。
【請求項20】
前記入力データセット内の前記画像の全部を処理した後に、前記k-NNアルゴリズムは、最終モデルコアセットを使用して、未知の良好又は異常の分類の生産部品の画像の異常スコアを計算し、最終閾値未満の異常スコアを有する部品を受け入れ、前記最終閾値を超える異常スコアを有する部品を拒否する、請求項15に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、異常検出のための適応型方法に概ね関し、さらに具体的には、特徴抽出器をk近傍法(k-NN)スコアリング技術と組み合わせて使用する異常検出方法に関する。この方法では、適応フェーズ中に、正常オブジェクトデータのモデルと、正常オブジェクトスコアを異常スコアから分割する閾値とを更新して、異常の検出漏れの数と誤った異常アラームの数の両方を同時に改善する。
【背景技術】
【0002】
多くの産業では、部品又は他の物体を検査する必要がある。これには、適切なフィット感及び/又は仕上げ、表面品質などの検査が含まれる。近年、このようなタイプの検査は、人間の検査員が手動で実施するのではなく、コンピュータベースの画像分析システムによって実施されることが多くなっている。典型的なコンピュータベースの画像分析アプリケーションでは、物体の画像がコンピュータに提供され、各物体の画像に対して異常検出を実行するアルゴリズムが実行される。
【0003】
異常検出システムは、多くの場合に、画像を入力として受け取り、画像を特徴付ける特徴ベクトルの集合を出力する機械学習システムなどの特徴抽出器が含まれる。特徴抽出器は、数百万のピクセルを有する画像を、数百に上る可能性のある数値で定義された特徴ベクトルの集合に置き換えることにより、異常検出に必要なデータ量を大幅に削減する。
【0004】
特徴抽出後に、別のアルゴリズム又は計算を使用して特徴ベクトルデータを評価し、異常スコアを提供する。特徴データから異常スコアを決定するための効果的な技術の1つが、k近傍法(k-NN)として知られている。k-NN技術は、データセット(データ集合)内の「k」個の最も近い訓練例から属性値を決定する教師あり学習方法である。異常検出に適用する場合に、データセットには訓練サンプルの特徴ベクトルデータが含まれており、k-NNによって提供される属性値が異常スコアになる。
【0005】
異常検出における基本的な課題には、「良好」物体を表す入力データと「不良」物体を表す入力データとの間のデータの不均衡が挙げられる。即ち、特徴抽出器を訓練するために使用される良好物体の数は、典型的には、不良物体の数をはるかに上回る。これにより、特徴抽出器が良好物体と不良物体の特性を正確に区別するモデルを構築することが困難になる可能性がある。
【0006】
異常検出システムの有効性を改善しようとする技術が、当技術分野で知られている。このような技術は、良好スコアと不良スコアとの間の閾値の単純な調整から、ニューラルネットワーク分類器の適応、特徴ベクトル計算における一度に1つずつのフィルタの重み付けまで多岐にわたる。しかし、このような既存の技術のうち、適応が柔軟で、異常検出結果の改善に効果的であるとわかっているものはない。
【0007】
上記の状況を考慮すると、適応型及び学習型の画像ベースの異常検出には、改善された方法が必要である。
【発明の概要】
【0008】
以下の開示では、物体の画像から異常を検出する方法及びシステムを説明する。特徴抽出器ニューラルネットワークを使用して、多数の良好部品と少数の不良部品の画像を含む複数の画像を特徴付ける特徴データを提供する。良好部品のみの特徴データを含む訓練データを使用して、k近傍法(k-NN)のモデルコアデータセットを作成する。次に、一部の良好部品と一部の不良部品の特徴データを含む適応データをk-NNモジュールによって評価して、各画像の特徴データから異常スコアを決定する。異常スコアの良好対不良の閾値を、最初は低い値に設定する。閾値を超える異常スコアを検出すると、人間の検査官が対応する画像を評価して、対象部品が良好部品か不良部品かを判定する。対象部品が良好部品で、異常が誤報であった場合に、k-NNモデルデータセットは対象部品の特徴データを含むように更新され、閾値は徐々に高くなるように調整される。あらゆる適応の後に、k-NNモデルはテストデータセット内の全部品に適用されて、性能を評価する。
【0009】
本開示の追加の特徴が、添付の図面と併せて以下の説明及び添付の特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0010】
【
図1】
図1は、当技術分野で知られている異常検出システムの基本構造を示すブロック図である。
【
図2】
図2は、異常検出の方法及びシステムを使用して識別する必要がある1つの部品における傷を含む、目視検査される部品の図である。
【
図3】
図3は、オフライン学習部とオンラインテスト部を有する異常検出システムのブロック図である。ここで、オンラインテスト部は、当技術分野で知られているように、特徴データから異常スコアを決定するためのk近傍法(k-NN)モジュールを含む。
【
図4A】
図4Aは、本開示の実施形態によるk-NNベースの異常検出における閾値の概念を示す特徴データクラスタの図である。
【
図4B】
図4Bは、本開示の実施形態によるk-NNベースの異常検出におけるモデル適応の概念を示す特徴データクラスタの図である。
【
図5】
図5は、本開示の実施形態による、オンラインテストデータ処理中の閾値とモデル適応を含むk-NNベースの異常検出システムのブロック図である。
【
図6】
図6は、本開示の実施形態による、k-NNベースの異常検出システムにおける閾値及びモデルの適応の方法のフローチャート図である。
【
図7】
図7は、本開示の実施形態による、k-NNモデルコアセットを更新し、新たな閾値を計算するために使用される計算を含む、k-NNベースの異常検出中の閾値及びモデルの適応の方法のフローチャート図である。
【
図8】
図8は、本開示の実施形態による、k-NNモデルコアセット及び誤った異常データ点の図であり、
図7の方法におけるコアセットの更新に使用される計算を更新されたコアセットと共に示している。
【
図9】
図9は、本開示の実施形態による、
図6及び
図7の方法を使用したk-NNベースの異常検出における閾値及びモデルの適応の効果を示す特徴データからの部品異常スコアの一連の図であり、誤った異常と検出漏れの両方の性能が改善されている。
【
図10】
図10は、当技術分野で知られている畳み込みニューラルネットワークベース(CNNベース)の特徴抽出器システムの概略ブロック図である。
【
図11】
図11は、本開示の実施形態による良好部品及び不良部品を含む複数の部品画像の異常スコアのグラフであり、特徴重み付けのための勾配上昇計算を実施する際に使用する点集合の選択を示す。
【
図12】
図12は、本開示の実施形態による、オンラインテストデータ処理中の特徴フィルタ重み付けを含むk-NNベースの異常検出システムのブロック図である。
【
図13】
図13は、本開示の実施形態による、k-NNベースの異常検出システムにおける特徴重み付けの方法のフローチャート図である。
【
図14】
図14は、本開示の実施形態による、良好部品及び不良部品を含む複数の部品画像の異常スコアの一対のグラフであり、
図13の特徴重み付け方法から得られる間隙率の改善を示す。
【
図15】
図15は、本開示の実施形態による、
図13の特徴重み付け方法から得られた、反復回数に対してプロットされた良好部品と不良部品との間の間隙率のグラフである。
【
図16】
図16は、本開示の実施形態による、
図13の特徴重み付け方法から得られた、
図15の最適な反復回数におけるフィルタ重みのグラフである。
【発明を実施するための形態】
【0011】
k-NNベースの異常検出における閾値及びモデルの適応の方法に関する本開示の実施形態に関する以下の考察は、本質的に単なる例示であり、開示した技術又はその用途又は使用を制限することを意図するものではない。
【0012】
図1は、当技術分野で知られている異常検出システム100の基本構造を示すブロック図である。ブロック110では、入力を提供する。ブロック110の入力は、典型的には、部品又はワークピースの画像などの視覚的な入力である。いくつかのアプリケーションでは、入力は、装置の動作を特徴付ける加速度計又は他のセンサからのデータなどの図形入力又はデータ入力である。いずれの場合も、ブロック110の入力は、分析対象のアイテム(部品又はワークピース、あるいは装置)が正常(別名、「良好」、「OK」、「公称」)であるか、異常(「不良」、「欠陥」)であるかを判定するために使用される。
【0013】
ブロック110からの入力は、異常スコア130を決定するアルゴリズム120に提供される。異常スコア130に基づいて、分析対象のアイテムは正常/良好又は異常/不良のいずれかに分類される。
【0014】
図1は、以下の追加の考察の土台となる、異常検出システムの基本概念と構成要素を示すことを単に目的としているにすぎない。
【0015】
図2は、異常検出の方法及びシステムを使用して識別する必要がある一部分の傷を含む、目視検査される部品の図である。
図2の例では、異常検出システムは、ネジ頭の画像に基づいてネジ頭を良好又は不良に分類するために使用される。ネジ頭は(ヘッダーマシンなどで)製造されたばかりの場合があるか、ネジがアセンブリに取り付けられたばかりの場合がある。さらに別の状況では、ネジは組み立てられた製品の一部であり、外部プローブをネジ頭に接触させることによって電気接続又は性能テストを実行する。
【0016】
図2の左側のネジ頭200が、異常として排除されるような傷のない正常な(良好な)部品である。しかし、ネジ頭200を示す画像には、異常検出のタスクを困難にするいくつかの特徴的な部分が含まれている。例えば、影202及び反射204は、照明条件の不完全さ、周囲の物体、カメラの角度などにより、画像によく現れるものである。ネジ頭200のような光沢があり、平坦ではない表面を有する物体の場合に、影及び反射がまったくない画像を提供することは非常に困難である。
【0017】
ネジ頭200は、この場合にはプラスドライバのビットを受容する形状の凹部206を含む。凹部206は、明らかにネジ頭200に必要な形状特性であり、欠陥又は異常ではない。しかし、凹部206の多数の表面及び影をはじめとする特徴は、ネジ頭200の画像の評価をかなり複雑なものにする。
【0018】
図2の右側のネジ頭220が、異常(不良)部品であり、いくつかの傷があるため、異常として拒否されるべきである。ネジ頭220の画像は、ネジ頭200の画像と同じ影及び反射と、同じ凹部206を備える。ネジ頭220の画像は、ネジ頭200の画像に対して約45°回転しており、これは視覚的な異常検出に関連する別の困難さを示している。即ち、影、反射、およびその他の形状特性は、部品ごとに異なる場所及び向きに現れる可能性があるため、新たな画像と既知の良好な部品画像を単純に比較するだけでは、異常を確実に検出するには不充分である。
【0019】
ネジ頭220には、傷222、224及び226が含まれる。傷222~226は、1種類以上の場合があり、これには、ネジ頭作成機による傷、平坦部分又は他の欠陥、あるいは外部電気プローブがネジ頭220に接触したときにアーク放電によって生じた焼け跡が含まれる。傷222~226のいずれか1つでも、ネジ頭220を異常と分類させるのに充分である。3つの異なる傷が含まれているのは、傷がネジ頭220の異なる部分に現れ、影及び反射に対して異なる場所に現れる可能性があることを示すためである。傷222~226自体は、異なる形状、異なる明暗及び反射特性を有する場合もある。
【0020】
図2及び前述の考察は、異常検出の考察に追加の背景を提供するためのものである。さらに、本開示の技術は、
図2に示しているものとほぼ同じタイプのネジ頭の異常検出に適用されている。開示の方法及びシステムの有効性については、本開示で後ほど考察する。
【0021】
上記で考察したように、現実世界の異常検出で遭遇する複雑さのため、自己学習機能及び高度な異常スコア分析を備えた異常検出のためのさまざまな技術が開発されてきた。
【0022】
図3は、当技術分野で知られている、オフライン学習部及びオンラインテスト部を有する異常検出システム300のブロック図である。システム300は、オフライン学習部302及びオンラインテスト部304を備える。オフライン学習部302は、良好部品の特徴を認識するためにデータベースを事前に訓練するために使用され、オンラインテスト部304は、分類がわからない部品を評価し、特徴データから異常スコアを判定するためのk近傍法(k-NN)モジュールを含む。
【0023】
オフライン学習部302では、訓練データ310を提供する。ここで、訓練データ310は、分類(良好又は異常)が分かっている部品の画像を含む。訓練データ310内の各画像は、ネジ頭の画像、塗装仕上げの品質を判定するための塗装面の画像などの上記で考察したタイプのいずれか、あるいは他のタイプであることができる。訓練データ310内の各画像は、特徴抽出器モジュール320に提供される。このモジュールは、当技術分野で知られているように、画像から特徴ベクトルを抽出する畳み込みニューラルネットワーク(CNN)であっても良い。訓練データ310内の良好部品又は異常部品から抽出されたものとして特徴330が識別されるため、特徴330は、良好部品と異常部品を区別するメモリバンク340を構築するために使用される。いくつかのアプリケーションでは、訓練データ310には良好部品のみを提供する。
【0024】
オンラインテスト部304では、入力350には、典型的には分類(良好又は異常)がわからない部品からの複数の画像が含まれる。入力350からの各画像を特徴抽出器モジュール360に提供し、このモジュールは、オフライン学習部302と同じCNNベースの特徴抽出器モジュール320である場合がある。各画像について特徴抽出器モジュール360から特徴370を提供する。要素370の*は、入力350が訓練データ310と異なるため、特徴370が特徴330と異なることを単に示すにすぎない。特徴370は、k-NNモジュール380に提供される。このモジュールは、個々の部品ごとに特徴370に基づいて異常スコアを決定する。k-NNモジュール380は、各部品の特徴370を、オフライン学習部302で事前に訓練されたメモリバンク340と比較する。各部品の異常スコアは、部品の特徴とメモリバンク340内の良好部品のコアセット(コア集合)の特徴との間の(特徴ベクトル空間内の)「距離」に基づいて、k-NNモジュール380によって決定される。コアセットと厳密に一致する特徴(即ち、距離が非常に短い)を備える部品が、異常スコアを0に近づけることになる。コアセットと厳密に一致しない特徴(即ち、距離が長い)を備える部品が、異常スコアを高くする(例えば、1より大きくする)。
【0025】
ブロック390にて、最終的な部品分類を提供する。最終的な分類は、典型的には、-1(良好部品の場合)又は1(不良又は異常部品の場合)のいずれかである。異常スコアに基づいて最終的な分類値を割り当てる基準が、通常は閾値との比較によって、アプリケーションによって異なる。
【0026】
システム300は、その比較的洗練された特徴抽出器モジュールとk-NNベースの異常スコア判定機能を備えているにもかかわらず、あらゆる場合に良好部品と異常部品を区別するのが依然として困難である。ほとんどの異常検出アプリケーションでは、明らかに良好で異常スコアが低い部品が多数存在し、明らかに不良で異常スコアが高い部品が少数存在する。しかし、典型的には、カットオフ値又は閾値(例えば、1.0)に近い異常スコア(例えば、0.95、1.02)を受け取る部品がいくつかあり、このような部品が良好部品か不良部品かはわからない。
【0027】
図3のシステム300などの既存のシステムで確実に異常を検出することが困難なのは、
図2に示し、上記で考察した現実世界の複雑さが一因である。このほか、(オンラインテスト中の)入力350の良好データの分布が、(オフライン学習中の)訓練データ310の良好データの分布と異なる場合があることにも起因する。例えば、オンラインテストフェーズの良好データのいくつかの特徴が、オフライン訓練フェーズでは決して発生しない可能性がある。このため、オフライン学習部302にて実施される事前訓練は必然的に不完全である。
【0028】
本開示の技術は、上記で考察した
図3のシステム300などのシステムをはじめとする既存の異常検出の方法及びシステムの制限を克服するために開発された。
【0029】
既存の異常検出の方法及びシステムの制限を克服するための第1の技術には、閾値及びモデルの適応が挙げられる。閾値及びモデルの適応は、上記で考察したシステム300の問題、即ち、訓練データが良好部品の特徴の完全な集合を充分かつ正確に表現できないという問題に直接対処する。
【0030】
図4A及び
図4Bは、本開示の実施形態によるk-NNベースの異常検出における閾値及びモデルの適応の概念をそれぞれ示す特徴データクラスタの図である。
図4Aでは、複数の特徴データ点が、異常スコアに応じた場所に描写され、垂直軸402上にプロットされている。楕円410には、(人間による検査などにより)良好であると判定されたアイテム(部品又は入力画像)の特徴データ点が含まれている。楕円420には、不良(異常又は欠陥)であると判定されたアイテム(部品又は入力画像)の特徴データ点が含まれている。
【0031】
閾値ライン430が、k-NN異常スコア評価器で良好部品と不良部品を区別するために使用される初期閾値である。即ち、閾値を超える異常スコアを有する点を不良(異常)として分類し、その逆の場合もある。閾値ライン430を使用すると、特徴点412は良好部品に属することが分かっており、誤って異常として分類される。この状況は、誤った異常分類として知られている。さらに、閾値ライン430を使用すると、特徴点422は不良部品/異常部品に属することがわかっている場合に、誤って良好部品として分類される。これは、異常の検出漏れとして知られている。誤った異常と検出漏れはどちらも望ましくないが、異常検出システムの基準として、異常の検出漏れは許容されない(即ち、不良部品が検出されずに通過することは許されない)ことが規定されることがよくある。
【0032】
点422の検出漏れをなくすために、これより低い新たな閾値ライン432を規定する。閾値ライン432は、実際には
図4Aに示すデータセット(データ集合)のあらゆる検出漏れをなくすが、これより低い閾値は、良好部品の別の特徴データ点が閾値ライン432を超えるため、誤った異常分類の問題を悪化させる。
図4Aは、k-NNベースの異常検出に関する重要な教訓を示している。即ち、閾値調整だけでは、誤った異常分類と異常の検出漏れという相互に関連する問題を克服することはできない。
【0033】
図4Bでは、モデル450(左側)が、良好部品の複数の特徴データ点とともに、異常として分類された部品の特徴データ点460を示している。境界線452が、良好部品の特徴点のコアセットの周囲の境界を定義する(良好部品の特徴点は、モデル450の一部のみを示しているため、境界線452の内側にあり、図では境界線452の右側にある)。特徴データ点460は異常として分類されたが、モデル450の良好部品のコアセットの近くにある。
【0034】
特徴データ点460に関連付けられた部品又は画像が(人間による検査などにより)異常ではなく良好部品であると判定された場合に、モデル450の適応が必要になる場合がある。右側では、モデル470を境界線472によって規定している。モデル470は、良好部品のコアセットに特徴点460を含むモデル450の適応したものである。この適応は、ここでは境界線を単に再描画するものとして示している。しかし、モデルコアセットに含まれる特徴点を継続的に段階的に適応させる技術については、以下で説明する。この技術には、新たな点が追加されたときにコアセットから特徴点を除去することも含まれる。以下に説明する技術では、異常検出の性能が大幅に向上するように、モデル適応と閾値適応を組み合わせる。
【0035】
図4A及び
図4B(及びそれ以降の図)は、関連する概念の考察を簡素化するために2次元で描いている。特徴抽出に精通している人であればわかるように、各特徴「点」は実際には数百である可能性のある次元を有する特徴ベクトルであり、点間の場所と距離の計算は実際には2次元空間ではなくベクトル空間で実施される。
【0036】
本開示の閾値及びモデルの適応技術は、特別に設計された計算ロジックと組み合わせて人間による検査を使用して、異常検出システム内のk-NNモデルコアセットと閾値の両方を除々に適応させる。このような技術については、以下で詳しく考察する。
【0037】
図5は、本開示の実施形態による、オンラインテストデータ処理中の閾値及びモデルの適応を含むk-NNベースの異常検出システム500のブロック図である。システム500は、
図3のシステム300と概ね類似する構造を有しており、オフライン学習部とオンラインテスト部を備える。システム500は、以下で説明するように、k-NN異常スコアの判定と連動した閾値及びモデルの適応計算を追加する。
【0038】
オフライン学習部302Aが、
図3のオフライン学習部302と本質的に同じである。ここで、訓練データ310Aが特徴抽出器モジュール320に提供され、特徴330がメモリバンク340Aに含まれる。好ましい実施形態では、システム500の訓練データ310Aは、良好部品の画像のみを含み、不良/異常部品を含まない。これは、既知の良好な特徴データのコアセットを用いてメモリバンク340Aを最初に作成し、低い初期閾値を規定し、オンラインテストデータ処理中にメモリバンク340Aと閾値を適応させることが目的であるためである。
【0039】
オンラインテスト部504では、入力510には、分類がわからない(即ち、各部品が良好か異常かわからない)部品からの複数の画像が含まれる。入力510からの各画像を、一度に1つずつ、特徴抽出器モジュール520に提供する。このモジュールは、上記で考察したCNNベースの特徴抽出器モジュールと同じタイプであるのが望ましい。各画像について特徴530を特徴抽出器モジュール520から提供する。ここでも、特徴530は、(良好部品と不良/異常部品の両方を含む)分類がわかっていない部品を特徴付ける。特徴530は、個々の部品の特徴に基づいて異常スコアを決定するk-NNモジュール540に提供される。
【0040】
k-NNモジュール540は、各部品の特徴530を、オフライン学習部302Aにて事前に訓練されたメモリバンク340Aと比較する。各部品の異常スコアは、その部品の特徴と、メモリバンク340A内の良好部品のコアセット内の最近傍部品の特徴との間の(特徴ベクトル空間内の)「距離」に基づいて、k-NNモジュール540によって決定される。コアセットと厳密に一致する(即ち、距離が非常に短い)特徴を備える部品では、異常スコアが低くなることになる。コアセットと厳密に一致しない(即ち、距離が長い)特徴を備える部品では、異常スコアが高くなり、例えば、1より大きくなることになる。
【0041】
閾値及びモデルの適応モジュール550をシステム500に追加する。閾値及びモデルの適応モジュール550は、各画像の異常スコアがk-NNモジュール540によって提供された後に、一連の評価及び計算を実施する。閾値及びモデルの適応モジュール550によって実施される機能は、異常スコアが閾値を超えるアイテムが誤った異常であるか否かを判定すること、メモリバンク340A内の良好部品の特徴のコアセットを更新すること、最終的な部品分類に使用される閾値を更新すること及び計算で使用される異常ライブラリ560を更新することを含む。メモリバンク340A及び異常ライブラリ560への破線が、このような要素に対して実施される適応及び更新を示しており、閾値の値は閾値及びモデルの適応モジュール550自体内で維持される。このような評価及び計算の詳細については、
図6及び
図7に関連して以下で考察する。
【0042】
ブロック570では、最終的な部品分類を提供する。最終的な分類は、-1(良好部品の場合)又は1(不良部品又は異常部品の場合)のいずれかである。最終的な分類値は、閾値と比較した異常スコアに基づくものであり、ここで、k-NNモジュール540がスコアを判定するために使用するモデルコアセットと、最終的な分類を実施するために使用する閾値は、閾値及びモデルの適応モジュール550によって処理される画像が増加するにつれて両方とも進化する。
【0043】
システム500の好ましい実施形態では、数百の良好部品画像および数十の不良部品画像などの比較的多数の良好部品と比較的少数の不良部品の画像を使用する。限定されない一実施形態では、良好部品画像(不良部品画像はなし)の3分の1をオフライン学習部302Aの訓練データ310Aに使用し、良好部品画像の3分の1と不良部品画像の半分をオンラインテスト部504の入力510における適応に使用し、良好部品画像の残りの3分の1と不良部品画像の残りの半分をオンラインテスト部504の入力510におけるテストに使用する。この実施形態では、各適応ステップ(1つの画像が処理され、閾値とモデルが適応される)の後に、テスト画像の集合全体が処理されて、システム500の性能を評価する。
【0044】
図6は、本開示の実施形態による、k-NNベースの異常検出システムにおける閾値とモデル適応の方法のフローチャート
図600である。開始楕円602に続いて、ボックス604で閾値αを初期化する。閾値αは、良好部品データのみを使用してオンライン学習を実施した後に初期化される。即ち、オンラインテスト部504を使用して適応を開始する前に、閾値αは比較的低い値(1.0未満)に初期化される。この考え方は、ほとんどの良好部品を良好として分類することができるほど充分に高いが、全ての不良部品を異常として分類する(異常の検出漏れがない)ほど充分に低い値に閾値αを初期化するというものである。
【0045】
ボックス606では、(単一画像用の)新たな特徴データを提供する。これは、
図5の特徴530のデータであり、k-NNモジュール540に提供され、このモジュールは、ボックス608において、メモリバンク340Aからのモデルコアセットとの特徴の比較に基づいて異常スコアを提供する。判定菱形610では、異常スコアが閾値αより大きいか否かが判定される。この判定と
図6の残りのステップは、
図5の閾値及びモデルの適応モジュール550で実施される。異常スコアが閾値αより大きくない場合に、ボックス612でメモリバンク340Aが更新され、特定の基準が満たされた場合に現在の(良好な)画像の特徴をモデルコアセットに追加するステップを含む。基準は、現在の特徴セットの各特徴点からコアセット内の最も近い特徴点までの距離を判定するステップと、距離がコアセット内の既存の特徴点の最小点間距離より大きい場合は、既存の特徴点を現在の特徴セットの特徴点に置き換えるステップと、を含む。これについては、以下でさらに考察し、
図8に図示する。
【0046】
判定菱形610から、異常スコアが閾値αよりも大きく、異常を示している場合に、ボックス618にて、現在の特徴データに対応する部品又は画像を人間が検査する。人間の検査員は、部品画像を良又は不良(異常)のいずれかに分類する。人間の検査員が部品画像を良と分類した場合に、判定菱形620にて、画像特徴データは誤った異常であると判定される。
【0047】
誤った異常の場合に、プロセスはボックス622に移動し、このボックスでは、(良好部品特徴データの)コアセットがメモリバンク340Aに適応される。これには、人間の検査から良好部品画像に属することがわかっている現在の特徴データを評価し、現在の特徴データをコアセットに追加するか否かを判定するステップが含まれる。この評価については、
図7及び
図8を参照して詳しく説明する。ボックス622におけるモデル適応の後に、ボックス624にて閾値αが徐々に高くなる値に適応される。閾値適応についても、
図7の考察で詳しく説明する。
【0048】
人間の検査員が部品/画像が実際に異常であると判定した場合に、これは誤った異常ではないことを意味し、判定菱形620からプロセスはボックス626に移動し、このボックスでは、現在の特徴データを含むように異常ライブラリ560が更新される。閾値αを適応的に更新する際の異常ライブラリ560の適合性については、
図7に関連して以下で考察する。
【0049】
ボックス622及び624におけるモデル及び閾値適応、あるいはボックス626における異常ライブラリ更新の後に、プロセスはボックス606に戻り、(入力510の次の部品画像のために)新たな特徴データが提供される。判定菱形614にて、これ以上分析する部品がなくなると、プロセスは終了点616にて終了する。
【0050】
適応データ画像の集合をオンラインテスト部504に提供し、各適応データ画像を処理した後に、テストデータ画像の集合全体を処理して、システム異常検出性能を判定することは上述した。このため、
図6のステップは適応データ画像に対してのみ実施され、テストデータ画像に対しては実施されない。このため、
図5のシステム500は、システムが適応モードで実施されているかテストモードで実施されているかを示す「スイッチ」を用いて設定されるのが好ましい。システムが適応モードの場合に、
図6(及び
図7)の閾値及びモデルの適応のステップが実施される。システムがテストモードにある場合に、モジュール550は、閾値αの現在の値と比較したその異常スコアに基づいて、各部品画像を単純に分類する。
【0051】
図7は、本開示の実施形態による、k-NNモデルコアセットを更新し、新たな閾値を計算するために使用される計算を含む、k-NNベースの異常検出中の閾値及びモデルの適応の方法のフローチャート
図700である。
図7及び付随する考察は、
図6の方法に含まれていた閾値及びモデルの適応計算ステップの詳細を提供する。
【0052】
プロセスは、
図6の判定菱形620にて誤った異常を検出したときに、開始楕円702にて始まる。ボックス704では、メモリバンク340Aからのデータ(良好部品の特徴データのモデルコアセットMを含む)を、異常ライブラリ560(異常/不良部品特徴データを含む)と共に提供する。このほか、ボックス704では、モデルコアセットM内の特徴ベクトル間の最小距離を含む最小距離ベクトルdを提供する。さらに、増分ステップl
rと割引係数γをボックス704にて提供する。ここで、このようなパラメータは、以下で考察する閾値更新の計算で使用される。
【0053】
ボックス706では、誤った異常部品の特徴データが提供される。これは、判定菱形610にて閾値を超える異常スコアを有し、人間の検査員によって異常ではなく良好部品であると判定された部品/画像である。ここで説明している計算は、
図5の閾値及びモデルの適応モジュール550で実施される。一実施形態では、特徴データは、それぞれが384の次元を備える784個(28×28の格子)の特徴ベクトルの集合から構成される。特徴データの正確な構成は、当業者には理解されるであろうように、特徴抽出器モジュール520の設計によって異なる。
【0054】
オフライン学習フェーズ(
図5を参照)の後に、メモリバンク340Aは、良好部品のみの特徴ベクトルを含むモデルコアセットMを含む。モデルコアセットMは、最初は数十(又は数百)個の部品画像のそれぞれについて784個の特徴ベクトルを含んでいる場合があり、その場合に、特徴ベクトルの数は数十万になることがあり得る。オンラインテストフェーズにおける推論時間を短縮するために、モデルコアセットMは、初期の10
6桁の特徴ベクトル数ではなく、10
5桁程度の特徴ベクトル数を含むようにダウンサンプリングされてもよい。ダウンサンプリングは、任意の適切な方法で実施されてもよい。
【0055】
次に、現在の(誤った異常)部品からの1つ又は複数の特徴ベクトルをモデルコアセットMに含めるか否かを判定する。この背後にある考え方は、現在の誤った異常部品には、その異常スコアを閾値よりも高くする原因となる特徴データがあったが、人間による検査ではそれが良好部品であると判定されたというものである。このため、現在の誤った異常部品画像の特徴をモデルコアセットMに含めることで、コアセットをさまざまな画像特性に対してさらに堅牢にすることがあり得る可能性がある(
図2の例を思い起こされたい)。好ましい実施形態では、現在の誤った異常部品の特徴ベクトルがモデルコアセットMに含まれている場合に、一定のコアセットサイズを維持するために、モデルコアセットMから特徴ベクトルも除去される。
【0056】
ボックス708では、現在の誤った異常部品の特徴ベクトル(例えば、全部で784個)のそれぞれについて、特徴ベクトルから、モデルコアセットM内の最も近い特徴ベクトルまでの距離を計算する。次に、判定菱形710では、ボックス708で計算された距離が、モデルコアセットM内の特徴ベクトル間の(dで提供された)最小距離よりも大きいか否かが判定される。答えが「いいえ」の場合に、プロセスは判定菱形714に進み、ボックス708に戻って次の特徴ベクトルの距離を計算する。
【0057】
判定菱形710にて、ボックス708で計算された距離がモデルコアセットM内の特徴ベクトル間の最小距離よりも大きい場合に、ボックス712において、最小距離に関与する2つの特徴ベクトルのうちの1つがモデルコアセットMから除去され、現在計算中の特徴ベクトルに置き換えられる。次に、モデルコアセットM及び最小距離ベクトルdはメモリバンク340Aにて更新される。
【0058】
図8は、k-NNモデルコアセットM及び誤った異常データ点820の図であり、本開示の実施形態に従って、
図7の方法でコアセットMを更新するために使用される計算を視覚的に表している。810Aで示すコアセットMは、特徴ベクトル(「点」)812、814及び816などを含む。上記で考察したように、誤った異常特徴ベクトル(点)820とコアセットM内の最も近い特徴ベクトルである特徴ベクトル816との間の距離830を計算する。距離832が、コアセットM内の任意の対の特徴ベクトル間の最小距離である。あらゆる距離を特徴ベクトル空間で計算する。距離830は距離832より大きいため、
図7のロジックでは、特徴ベクトル点812/814のうちの1つがコアセットMから除去され、特徴ベクトル820と置き換えられる。
【0059】
図8の下部には、更新されたコアセット810Bが示されており、ここでは、特徴ベクトル点814がコアセットMから除去され、特徴ベクトル820がコアセットMに含まれている。ここでも、このモデルコアセットの適応の目的は、コアセットMに含まれる(既知の良好部品の)特徴ベクトルの多様性を高めることである。これにより、後の閾値の適応とともに、誤った異常分類の数が減少する。
【0060】
上記の方法で、現在の誤った異常部品の全特徴ベクトルを評価し、その一部が、密集したコアセット特徴ベクトルの代わりとしてモデルコアセットMに含まれる場合がある。これは、
図7の方法では、判定菱形714において現在の誤った異常部品に特徴ベクトルが存在しなくなるまで継続される。
【0061】
次に、プロセスはボックス716に移動して、現在の誤った異常部品の評価に基づいて閾値適応に関与するステップを開始する。
図7のボックス716~720のステップは、
図6のボックス624にて実施される。ボックス716では、現在の誤った異常部品の特徴ベクトルとメモリバンク340Aからの修正モデルコアセットMとに基づいて、修正された異常スコアs´をk-NNモジュール540にて計算する。ボックス718では、メモリバンク340Aからの修正モデルコアセットMと比較された異常ライブラリ560内の全異常データに基づいて、上限スコアs
uをk-NNモジュール540にて計算する。
【0062】
ボックス720では、閾値αの既存の値よりも段階的に高い閾値αの新たな値を計算する。閾値αの新たな値は、ボックス720にて次のように計算する。
【0063】
【0064】
ここで、第1項を、修正された異常スコアs´と閾値αの古い値のうち高い方を選択することによって判定し、増分ステップlrに割引係数γを乗じて計算される第2項に追加する。項の合計と上限スコアsuのうち低い方は、閾値αの新たな値として選択される。式(1)に具体化されたロジックは、現在の誤った異常部品が実際には良好部品であるため、修正された異常スコアs´が古い閾値よりも大きい場合に、修正された異常スコアs´は新たな閾値の開始点として受け入れられるというものである。s´又はαのいずれを開始点として選択したとしても、項γ・lrは新たな閾値の計算に増分量を追加し、新たな閾値は上限スコアsuによって上限が定められる。
【0065】
ボックス720における閾値の適応計算の後に、
図7の方法は終端722にて終了する。これは、ボックス624を完了し、新たなデータ(入力510からの別の画像のデータ)の処理に戻る
図6の方法に対応する。誤った異常に遭遇するたびに、
図6の要素618~624のステップは、
図7の閾値及びモデルの適応プロセス全体とともに実行される。
【0066】
図6~
図7の前述の考察では、閾値及びモデルの適応のプロセスで実施されるいくつかの評価及び計算について説明している。
図5のシステムブロック図を参照すると、さまざまなブロック及びモジュールはいずれも、プロセッサ(又は相互に通信する複数のプロセッサ)上で稼働するアルゴリズムに具体化されており、その結果、特徴抽出、k-NNスコアリング、閾値及びモデルの適応、メモリバンク340A及び異常ライブラリ580の更新などのために必要な場合に、必要なデータが各計算モジュールで利用可能であることが理解される。これは、
図5の矢印で視覚的に表されている。
【0067】
図9は、本開示の実施形態による、
図6及び
図7の方法を使用したk-NNベースの異常検出における閾値及びモデルの適応の効果を示す特徴データからの部品異常スコアの一連の図であり、誤った異常と検出漏れの両方の性能が改善されている。
【0068】
特徴ベクトル点の集合を初期状況900(左側)に示しており、点は、垂直軸にプロットされたそれぞれの異常スコアに従って配置されている。900に示している特徴ベクトル点は、部分302Aからのオフライン学習のみが実施され、適応が未だ実施されていない状態の後に、複数のテストデータ画像をシステム500に送信した結果を示している。集合910には、(人間による検査などにより)良好であると判定されたアイテム(部品又は入力画像)の特徴データ点が含まれている。集合920には、不良(異常)であると判定されたアイテム(部品又は入力画像)の特徴データ点が含まれている。閾値ライン902を、異常の検出漏れを防ぐために低い値に設定している。閾値が低く、モデル適応が実施されていない場合に、ボックス904に示すように、多数の誤った異常が発生する。
【0069】
システム500にて一定数の適応データ画像を処理した後に、状況930に示すように、閾値とモデルの適応がいくらか発生している。状況930では、集合940に集合910の良好なアイテムの特徴データ点が含まれており、ここで、データ点は、モデル適応により、概ね異常スコアが低い方向に移動している。集合950には、集合920と同じ不良アイテムの特徴データ点が含まれている。このほか、状況930では、閾値適応の結果、閾値ライン932が徐々に上方に移動している。わずかに高めの閾値と、ある程度のモデル適応により、ボックス934に示すように、誤った異常の数は少なくなる。閾値適応に上記で考察した計算が含まれており、検出漏れが防止されるように、閾値の上方移動が制限されているため、状況930では依然として異常の検出漏れはない。
【0070】
システム500にて追加数の適応データ画像を処理した後に、閾値とモデルの適応が、状況960に示すように、最終又はほぼ最終状態に達している。状況960では、集合970には、集合910及び940からの良好なアイテムの同じ特徴データ点が含まれている。ここで、データ点は、モデル適応により、低い方の異常スコアの方向にさらに移動している。集合980には、集合920及び950と同じ不良アイテムの特徴データ点が含まれている。このほか、状況960では、閾値適応の結果、閾値ライン962がさらに上方に移動している。閾値が高くなり、モデル適応が追加されたため、状況960では誤った異常は発生していない。さらに、状況960では、上記の理由により、依然として異常の検出漏れはない。閾値及びモデルの適応が有効になると、人間による検査の必要量が劇的に減少することになり、最終的には、異常として分類された部品の全部又はほぼ全部が、実際には真の異常になることになることがわかる。
【0071】
上記の閾値及びモデルの適応の技術は、異常検出システムにおいて良好なデータ点の集合と不良なデータ点の集合を分離すると同時に、閾値を最適な値に連続的に設定することが実験を通して示されている。このような技術により、異常検出結果の理想的な組み合わせが達成される。即ち、異常の検出漏れがゼロであるとともに、誤った異常分類がゼロ又はほぼゼロになる。この結果の理想的な組み合わせは、従来の異常検出方法では不可能であった。
【0072】
既存の異常検出方法及びシステムの限界を克服するための本明細書で開示している別の技術には、特徴の重み付けが挙げられる。特徴の重み付けでは、異常スコアを計算するときに特徴ベクトル間の距離を計算するために使用されるフィルタに重みを割り当てることと、良好データと不良データ(例えば、部品画像)の最適な分離を達成するように重みを最適化することが含まれる。特徴の重み付け技術の詳細については、以下で考察する。
【0073】
図10は、当技術分野で知られている畳み込みニューラルネットワークベース(CNNベース)の特徴抽出器システムの概略ブロック図である。特徴抽出器モジュールについては、
図5の閾値及びモデルの適応を使用した異常検出システムで使用されることを含め、本開示でこれまでに繰り返し考察している。
図10は、以下で説明する特徴重み付け技術で重要な特徴抽出器の詳細の一部を考察するための基礎として提供する。
【0074】
これまでに挙げた図に示し、上記で考察したように、入力画像1010を特徴抽出器モジュール1020に提供する。当業者には理解されるように、畳み込みニューラルネットワーク(CNN)とは、特徴抽出器モジュールに使用される一般的な構造であり、実際、層の数及び各層出力のサイズを含むネットワーク構造が固定され、ネットワークパラメータが訓練されている、事前訓練済みの特徴抽出器CNNが利用可能である。特徴抽出器モジュール1020は、そのような事前訓練済みの特徴抽出器CNNの一例である。このほか、異なる数の層と特徴ベクトルを有する特徴抽出器構造の他の例を、本明細書で開示している特徴重み付け異常検出技術で使用してもよい。
【0075】
図10の例では、入力画像1010は、3つの層(L1、L2、L3)を含むCNN1020に特定の画素分解能で提供される。各層は、次の層に入力される出力を提供したり、及び/又はCNN1020から使用可能な出力として提供されたりする。この例では、CNN1020の予め定められた構造と訓練に基づいて、層L2には128個のフィルタが含まれ、各フィルタは28×28の特徴マップになる。層L3には256個のフィルタが含まれ、各フィルタは14×14の特徴マップになる。補間により、L3出力は28×28の特徴マップに変換され、これはL2からの出力のサイズと一致する。このような特徴マップとフィルタ番号を1030に視覚的に示す。
【0076】
k-NN異常検出で使用されるCNN1020の最終的な出力を1040に示す。1040に示した出力は、28×28の特徴ベクトル1042の配列であり、各特徴ベクトルの次元は{384×1}である。特徴ベクトルの総数は784(28×28)である。各特徴ベクトルの次元(384)は、L2出力の128個のフィルタと、L3出力の256個のフィルタを表す。1040に示した出力(それぞれ384個のフィルタ成分を有する784個の特徴ベクトル)は、k-NNベースの異常検出計算で使用される。
【0077】
図3及び特徴抽出と異常検出についてのこれまでの考察に戻ると、異常スコアは、画像の各特徴ベクトルと、良好画像の特徴ベクトルのコアセット内の最近傍ベクトルとの間のベクトル空間における距離を計算することによって、算出される。画像の特徴ベクトルの平均距離が小さいほど、異常スコアは小さくなり(良好部品である可能性が高くなり)、平均距離が大きいほど、異常スコアは大きくなる(即ち、スコアが閾値を超える場合は不良/異常部品になる)。
【0078】
現在評価中の部品/画像の特徴ベクトルとモデルコアセット内の良好部品の特徴ベクトルとの間の距離を計算する場合に、ベクトル成分の全部に等しい重みを与えて、あるベクトルと別のベクトルとの間の重み付けされていない距離を計算するのが一般的である(各ベクトルの次元は、例えば、{384×1}である)。本開示の技術によれば、評価中のベクトルの各フィルタ成分に重みを割り当て、重み付けされた距離を使用する。384個のフィルタ成分のそれぞれに初期重み値1.0を割り当て、反復最適化プロセスを採用し、重み付き(加重)k-NN計算を使用して異常スコアを再計算し、勾配上昇計算によってフィルタの重みを調整し、良好部品と不良部品の異常スコア間の間隙を最大化する。この技術については、残りの図で詳しく考察する。
【0079】
図11は、本開示の実施形態による、良好部品及び不良部品を含む複数の部品画像の異常スコアのグラフ1100であり、特徴重み付けの勾配上昇計算を実施する際に使用する点集合の選択を示している。グラフ1100上のデータ点は、データ点(部品画像)の異常スコアに従って垂直に位置決めされ、画像番号に従って水平に単純に位置決めされる。
【0080】
異常検出のためのフィルタ重みを最適化するために、各反復ステップにて複数の部品画像を処理する必要がある。具体的には、集合1110には、(人間の検査などにより)不良であると判定されたアイテム(部品画像)のデータ点が含まれる。集合1120には、良好であると判定されたアイテム(部品画像)のデータ点が含まれる。異常スコア値(約1.75)に閾値ライン1102を描画して、良好部品と不良部品を区別することができる。閾値ライン1102を使用すると、異常の検出漏れがなく、誤った異常分類もないが、良好部品データ点集合1120と不良部品データ点集合1110との間には垂直方向の分離も間隙もほとんどないことがわかる。言い換えれば、部品画像が良好か不良か事前にわかっていなければ、異常スコアに基づいて部品を良好か不良か確実に分類するであろう閾値を確立することは非常に困難であろう。この例の閾値ラインの値は約1.75である。異なる画像及び/又は異なる特徴抽出器及びコアセットを使用する他の例では、良好部品/不良部品の閾値はこれより低い値になる場合も、高い値になる場合もある。閾値の実際の値は、この考察では重要ではない。重要なのは、良好部品と不良部品の異常スコアを、確実に両者を区別する閾値を確立することができるように、分離することである。
【0081】
本明細書で開示する技術の目的は、最適化ベースの特徴重み付け計算を使用して、良好部品の異常スコアと不良部品の異常スコアとの間の分離又は差を増大させることである。このように最適化されたフィルタ成分の重み付け値により、同じ対象物(例えば、ネジ頭)の追加画像の処理により、差の増大による利点と、その結果生じる異常検出性能の向上が実現される。
【0082】
上記で説明したように、各反復ステップで複数の部品画像を処理する必要がある。ここで考察し、
図11以降の図に示す実際の実装例では、水平(画像番号)軸のメモリで示す場合があるように、56個の部品画像がテストデータセットに含まれていた。この56個の画像の集合は、以下で考察する重み付け最適化アルゴリズムの各反復で処理された。
図11に示しているもう1つの概念は、勾配上昇最適化計算に関するものである。具体的には、勾配上昇計算は、閾値ライン1102に最も近い良好テストデータ点と不良テストデータ点を使用して実装される。これにより、勾配上昇計算が良好部品と不良部品の異常スコア間の差を拡大するための一種のてこ作用が提供される。特徴の重み付け前の異常スコアの初期グラフである
図11では、楕円1112には集合Pに含めるべき不良データ点がいくつか含まれ、楕円1122には集合Pに含めるべき良好なデータ点がいくつか含まれている。集合Pは、
図11では、3つの良好なデータ点と3つの不良データ点が含まれている状態で示しているが、個々の実装形態で使用される数は3つより多くても少なくてもよく、実際にはそれぞれ1つ(1つの良好なデータ点と1つの不良データ点)である場合がある。集合P内の点の選択と使用については、以下でさらに考察する。
【0083】
図12は、本開示の実施形態による、オンラインテストデータ処理中の特徴フィルタ重み付けを含むk-NNベースの異常検出システム1200のブロック図である。システム1200は、オフライン学習部及びオンラインテスト部を含む、
図3及び
図5のシステムとほぼ同じ構造を有する。システム1200は、以下で説明するように、k-NN異常スコア判定と結合して特徴重み付け計算を含む。
【0084】
オフライン学習部302が、
図3のオフライン学習部302と同じである。ここで、訓練データ310が特徴抽出器モジュール320に提供され、特徴330がメモリバンク340に含まれる。システム1200では、訓練データ310には、良好部品の画像のみが含まれ、不良/異常部品は含まれない。これは、既知の良好な特徴データのコアセットを備えるメモリバンク340を作成し、特徴重み付け計算全体にわたってモデルコアセットを使用することが目的であるためである。
【0085】
オンラインテスト部1204では、入力1210には、既知の分類の部品からの複数の画像が含まれる(各部品画像は、良好又は異常としてラベル付けされる)。この例では、入力1210には56個の画像がある。入力1210からの各画像は、
図10に関して前述したタイプのCNNベースの特徴抽出器モジュールである特徴抽出器モジュール1220に提供される。特徴1230は、各画像に関して特徴抽出器モジュール1220から提供される。また、この例の特徴1230には、部品画像ごとに784個の特徴ベクトルが含まれ、各特徴ベクトルには384個のフィルタ成分が含まれている。56個の部品画像それぞれの特徴1230は、各画像のラベル(良好又は不良)とともに、重み付きk-NNモジュール1240に提供され、このモジュールは、個々の部品画像ごとに異常スコアを決定する。
【0086】
重み付きk-NNモジュール1240は、各部品の特徴1230を、オフライン学習部302にて事前に訓練されたメモリバンク340からのモデルコアセットと比較する。各部品の異常スコアは、部品の特徴とメモリバンク340内の良好部品のコアセット内の最近傍部品の特徴との間の(特徴ベクトル空間内の)重み付き距離に基づいて、重み付きk-NNモジュール1240によって判定される。コアセットと厳密に一致する特徴(即ち、距離が非常に小さい)を備える部品では、異常性が低くなることになる。コアセットと厳密に一致しない特徴(即ち、距離が大きい)を備える部品では、異常スコアが高くなることになる。重み付きk-NNモジュール1240では、距離は、384個のフィルタ成分のそれぞれに割り当てられた重み付け値を使用して計算される。重み付け値は、サイズが{384×1}の重みベクトルwに含まれており、wの値はいずれも最初は1.0に設定される。
【0087】
システム1200には、フィルタ重み最適化モジュール1250が含まれている。フィルタ重み最適化モジュール1250は、k-NNモジュール1240との反復ループで重みベクトルwの最適値を計算する。フィルタ重み最適化モジュール1250によって実施される機能には、全ての部品画像の異常スコア(例えば、56個のスコア)に基づいて集合Pを定義するステップと、勾配上昇計算を実施して重みベクトルwの新たな値を計算し、重みライブラリ1260を更新するステップが含まれる。(良好部品特徴データの)モデルコアセットは、変更されず、メモリバンク340から重み付きk-NNモジュール1240に提供される。更新された重みベクトルwはこのほか、重みライブラリ1260から重み付きk-NNモジュール1240に提供され、このモジュールは、新たなフィルタ重みに基づいて全ての部品画像の新たな異常スコアを計算する。モジュール1240及び1250の反復重み付け最適化ループは、規定の反復回数だけ継続されるか、重み付け値が最適化されたと判定されるまで継続される。このような計算の詳細については、
図13を参照して以下で考察する。
【0088】
ブロック1270にて各部品画像に対して最終的な部品分類を提供する。ブロック1270における最終的な部品分類は、モジュール1240及び1250の反復重み付け最適化ループ中には実施されない。しかし、上記で考察したようにフィルタ重み付け値が最適化された後に、オンラインテスト部1204は、部品画像を処理し、ラベルなし画像(即ち、各画像が良好部品か不良部品かわからない)の異常検出を実施するために、使用することができる。この部分には、ブロック1270における最終的な部品分類が含まれる。最適な重み付け値と、良好部品と不良部品との間の間隙にある値に割り当てられた閾値を使用して、システム1200は、異常の検出漏れも誤った異常分類もない状態で、部品画像を確実に分類することになる。
【0089】
最終的な分類は、典型的には、-1(良好部品)又は1(不良部品又は異常部品)のいずれかであるが、他の規約を定義してもよい。最終分類値は、閾値と比較した重み付きk-NN異常スコアに基づくものである。ここで、重み付きk-NNモジュール1240がスコアを判定するために使用する重み値は、上記で考察した反復計算で最適化され、最終分類を実施するために使用される閾値は、重み付け最適化後のスコア分布に基づいて確立される。
【0090】
図13は、本開示の実施形態による、k-NNベースの異常検出システムにおいて特徴を重み付けする方法のフローチャート
図1300である。
図13の方法は、
図12のシステム1200、具体的には、オンラインテスト部1204にて実行され、反復ステップは、特に重み付きk-NNモジュール1240とフィルタ重み最適化モジュール1250にて実施される。
【0091】
プロセスは、オンラインテスト部1204が訓練モードで使用される場合に、開始楕円1302にて開始される。ボックス1304では、ラベル付けされた部品画像又は分類された部品画像の特徴データが提供され、このデータには、既知の良好部品の画像と既知の不良部品の画像が含まれる。上記で考察し、ここでも考察を続ける例では、特徴の重み付けによる異常検出システムの訓練用に56個の部品画像が提供される。もちろん、テストデータセットで使用する部品画像は56個より多くても少なくてもよい。利用可能な部品画像の数よりも多くの入力テスト画像が必要な場合は、利用可能な各部品画像を水平方向及び垂直方向に反転することによってデータ拡大を実現してもよい。計算に関するこの考察の目的では、不良部品画像(即ち、異常又は欠陥)は欠陥データセットDに含まれるものと定義され、良好部品画像は良好部品データセットGに含まれるものと定義される。
【0092】
ボックス1306では、メモリバンク340からの良好部品特徴データのモデルコアセットMは、特定の入力パラメータとともに提供される。計算に必要な入力パラメータには、(部品画像の特徴ベクトルデータ、モデルコアセットM及び重みベクトルwに基づく)重み付きk-NN計算を使用して部品画像の異常スコアを決定するスコア関数fと、欠陥部品画像の場合は1、良好部品画像の場合は-1の値を有するように定義されるラベルyと、g=yfにて定義される関数g(即ち、gの値は欠陥部品のfからの異常スコアの値であり、gの値は良好部品のfからの異常スコアの値の負数である)と、学習率係数αと、が含まれる。
【0093】
ボックス1308では、重みベクトルwは値1にて初期化される(即ち、384個のフィルタ重みがいずれも1に設定される)。ボックス1310では、重み付きk-NN計算を使用して、全ての部品画像の異常スコアを計算する。ここでの例では、一部が欠陥データセットDにあり、一部が良好なデータセットGにある56個の全ての部品画像を分析して、スコア関数fを使用して異常スコアを決定する。ボックス1310が最初に実行されるときは、ベクトルwのフィルタ重みはいずれも値1になる。ボックス1310のその後の実行では、ベクトルwのフィルタ重みはいずれも異なる値になる。ボックス1310の実行後に、テストデータセットの全ての部品が異常スコアを有する。これは、
図11に示し、これまでに考察した状況である。
【0094】
ボックス1312では、点の集合Pが判定される。これまでに考察し、
図11に示したように、集合Pには、最も高い異常スコアを有する1つ以上の良好データ点と、最も低い異常スコアを有する1つ以上の不良データ点とが含まれる。集合Pに含まれる特定のデータ点は、反復ごとに変わる可能性がある。これは、重みベクトルwが更新されるたびに、あらゆるデータ点(部品画像)に新たな異常スコアが付与されるためである。以下は、集合P内の点を決定するためにボックス1312にて使用し得る計算の例である。
【0095】
【0096】
ここで、式(2)は次のように読み取れる。欠陥データセットDの要素の中から、スコア関数fの最小値を有する点xを求め、さらに、良好部品データセットGの要素の中から、スコア関数fの最大値を有する点xを求める。式(2)では、「点」は、その抽出された特徴ベクトルによって定義される個々の識別された部品画像(例えば、#1-56)であり、スコア関数fは、xの特徴ベクトル、モデルコアセットM及び重みベクトルwから評価される。
【0097】
ボックス1314では、重みベクトルwの個々のフィルタ重み値を更新するために勾配上昇計算を実施する。当技術分野で知られているように、勾配上昇は、関数の値に対する入力変数の集合の影響を評価し、勾配に従って関数を最大化するために使用され得る反復技術である。この場合に、ボックス1314にて実施される勾配上昇計算は次のように定義される。
【0098】
【0099】
ここで、式(3)は、点集合Pにて評価された関数gの勾配∇に学習率係数αを乗じた項を追加することによって重みベクトルwを更新する。gの値は、欠陥部品に対するfからの異常スコアの値であり、gの値は、良好部品のfからの異常スコアの値の負数であることが思い起こされよう。このため、関数gの値は、Pの欠陥部品の異常スコアが高くなり、Pの良好部品の異常スコアが低くなる場合に最大になる。各反復で、勾配∇の局所値を確立し、次の反復では、勾配の値を使用して、式(3)に従って重みベクトルwの次の反復を計算することになる。その結果、重みベクトルwは正の勾配の方向に更新され、最終的にgを最大化する最適な重みベクトルwを求める。
【0100】
判定菱形1316では、反復を継続するか否かが判定される。反復は、勾配が、予め定められた収束基準に収束するか、予め定められた最大反復回数に達するまで継続する。収束基準と最大反復回数は、ボックス1306の入力パラメータの中から提供される。判定菱形1316にて反復が継続する場合に、プロセスはボックス1310に戻り、このボックスでは、更新された重みベクトルwを使用して全部品の異常スコアが再計算される。その後に、新たな集合Pが判定され、新たな勾配上昇計算などが実施される。
【0101】
反復が判定菱形1316にて終了すると、テストデータセット内の良好部品と不良部品を分離して区別するための最適な重みベクトルwが求められる(あるいは、全反復のデータを分析することによって求めてもよい)。これは、
図12のシステム1200が異常検出を実施して目的の結果を生成するように現時点で訓練されていることを意味する。このため、
図13のボックス1318では、重み付きk-NNモジュール1240が最終的な(最適な)重みベクトルwとともに使用され、入力部品画像が良好部品と不良部品に分類されていない「生産」モードで異常検出を実施する。生産モードにおける入力部品画像が訓練に使用されたテスト画像と同じ対象(
図2のネジ頭など)である限り、システム1200は、分類されていない部品画像に対して正確に異常検出を実施することになる。プロセスは終了点1320にて終了する。
【0102】
図13の前述の考察では、特徴フィルタの重み付けのプロセスで実施される多数の評価及び計算について説明した。
図12のシステムブロック図を参照すると、さまざまなブロック及びモジュールはいずれも、プロセッサ(又は相互に通信する複数のプロセッサ)上で稼働するアルゴリズムに具体化されており、その結果、特徴抽出、k-NNスコアリング、重みベクトルの最適化などに必要なときに、必要なデータが各計算モジュールで利用可能であることが理解される。これは、
図12の矢印で視覚的に示されている。
【0103】
図14は、良好部品及び不良部品を含む複数の部品画像の異常スコアの一対のグラフであり、本開示の実施形態による、
図13の特徴重み付け方法から得られる間隙率の改善を示している。左側のグラフ1400では、上記で考察した56個のテスト部品画像の初期異常スコアを示している。これまでに説明したように、テスト部品画像は不良(異常又は欠陥)部品1410の集合と良好部品1420の集合にグループ化される。異常スコアは、フィルタ重みがいずれも値1に設定されている初期条件における実際の実験から得られ、これは
図13のフローチャート
図1300の最初の反復に相当する。不良部品1410の集合と良好部品1420の集合を分ける閾値ライン1402を描くことができるが、集合間の分離はほとんどない。
【0104】
右側のグラフ1430では、
図13の方法を使用して求めた最適な重みベクトルwを使用して特徴の重み付けを実施した場合のテスト部品画像の異常スコアを示している。不良部品1410の集合と良好部品1420の集合を分ける閾値ライン1432を描くことができ、集合間の分離がはるかに大きいことがわかる。間隙1440を、最もスコアの低い不良部品と最もスコアの高い良好部品との間の異常スコアの差として定義する。範囲1450を、最も高い全体スコアと最も低い全体スコアとの間の差として定義する。次に、間隙率を、ギャップ1440を範囲1450で割ったものとして定義する。
【0105】
第1の反復(初期、全特徴フィルタの重みが1に設定されている)では、実験の間隙率は3.99%であった。最適な重みベクトルwを用いた反復では、間隙率は26.98%であった。間隙率のこの劇的な増大は、グラフ1400と1430との間の分離の差によって視覚的に確認され、k-NNベースの異常検出に対する開示した特徴重み付け技術の有効性を明確に示している。このほか、Pでの関数gの勾配(∇g|
atP)の増大は、
図14に示すように間隙率の増大に類似した数学的意味を備えることに留意されたい。
【0106】
図15は、本開示の実施形態による、
図13の特徴重み付け方法から得られた、反復回数に対してプロットされた良好部品と不良部品との間の間隙率のグラフ1500である。トレース1510が、各反復の間隙率をプロットする。間隙率は、最初は劇的に増大し、約70回の反復後にピークに達し、その後は減少して蛇行していることがわかる。これは、勾配上昇法の性質であり、さらに優れた最適値を求めることができるか否かを調べるために、実施可能な状態空間内を探索し続けることになる。
【0107】
ピークの間隙率が実現された反復回数にライン1520を引く。このピーク間隙率は、
図14のグラフ1430に対応している。前述のように、
図13の方法の反復は、充分に多い反復回数まで継続して、(
図15に示すように)全反復の後に最大間隙率を特定するために許可されても、収束基準が満たされたときに終了してもよい。収束基準は、
図15の反復数10付近で見られるような局所的最大値での早期終了を回避するために、一連の反復にわたって改善するという観点から定義されてもよい。
【0108】
図16は、本開示の実施形態による、
図13の特徴重み付け方法から得られた、
図15の最適な反復回数におけるフィルタ重みのグラフ1600である。
図16は、重みベクトルw内の384個のフィルタ成分のそれぞれについて、個別のフィルタ重み値をプロットしたものである。フィルタ重みがいずれも、最初は1の値に設定されていたことを思い起こされたい。重みベクトルwの勾配上昇最適化後に、個別のフィルタ重みのほとんどが1にかなり近い値のままであるが、一部は1より大幅に高く、一部は1より大幅に低いことがわかる。このフィルタ重みの分布は、開示した技術の能力を示している。即ち、特定の対象物の部品画像から抽出された特徴ベクトルを使用して、勾配上昇フィルタ重み最適化計算と組み合わせた重み付きk-NN異常スコアリング計算により、正確な異常検出結果をもたらすように訓練されたシステムが提供される。フィルタ重み付けは、対象物の良好部品画像と不良部品画像を分離する効果的な手段であり、
図16は、手動の方法では個別のフィルタ重み値を効果的に選択することが不可能であろうことを示している。このほか、フィルタ重みを一度に1つずつ選択するのは、特徴ベクトル距離を計算する際に数百のフィルタ重みが相互依存しているため、効果的ではない。
【0109】
上記のように特徴フィルタ重み付けを使用して訓練された異常検出システムのテストでは、再現率(異常の検出漏れなし)と精度(誤った異常分類なし)の点で、望ましい異常検出結果特性が得られた。
【0110】
これまでの考察全体を通じて、さまざまなコンピュータを説明し、暗示している。このようなコンピュータのソフトウェアアプリケーションとモジュールは、プロセッサ及びメモリモジュールを有する1つ又は複数の計算装置で実行されることを理解されたい。特に、これには、
図5及び
図12のブロックの機能を実施するアルゴリズムで構成されたプロセッサを備えたコンピュータが含まれる。ここで、コンピュータは、入力画像を提供する画像システム(例えば、カメラ)と通信し、完全に自動化されたシステムを実現するために必要に応じて他の入出力装置と通信することができる。
【0111】
これまでの考察は、本開示の単なる例示的な実施形態を開示し、説明している。当業者であれば、そのような考察及び添付の図面及び請求項から、以下の請求項に定義される本開示の精神及び範囲から逸脱することなく、さまざまな変更、修正及び変形を施すことが可能であることが容易に理解できるであろう。
【外国語明細書】