IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ムサシ エーアイ ノース アメリカ インコーポレイテッドの特許一覧

特表2024-504735自動化ビジュアル検査を使用する製造品質コントロールのためのシステムおよび方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-01
(54)【発明の名称】自動化ビジュアル検査を使用する製造品質コントロールのためのシステムおよび方法
(51)【国際特許分類】
   G06T 7/00 20170101AFI20240125BHJP
   G06V 10/82 20220101ALI20240125BHJP
   G01N 21/88 20060101ALI20240125BHJP
   G06F 18/22 20230101ALI20240125BHJP
   G06N 3/045 20230101ALI20240125BHJP
   G06N 3/08 20230101ALI20240125BHJP
【FI】
G06T7/00 350C
G06V10/82
G06T7/00 610
G01N21/88 J
G06F18/22
G06N3/045
G06N3/08
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023545249
(86)(22)【出願日】2022-01-25
(85)【翻訳文提出日】2023-08-28
(86)【国際出願番号】 CA2022050100
(87)【国際公開番号】W WO2022160040
(87)【国際公開日】2022-08-04
(31)【優先権主張番号】63/141,643
(32)【優先日】2021-01-26
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】522492244
【氏名又は名称】ムサシ エーアイ ノース アメリカ インコーポレイテッド
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】バクシュマンド、サイード
(72)【発明者】
【氏名】ブフィ、マーティン
【テーマコード(参考)】
2G051
5L096
【Fターム(参考)】
2G051AA07
2G051AB07
2G051EB05
5L096BA03
5L096FA17
5L096FA69
5L096GA08
5L096HA11
5L096JA11
5L096JA22
5L096KA04
(57)【要約】
【解決手段】自動化ビジュアル検査のためのシステムおよび方法がここで提供される。方法は、入力イメージにおいて少なくとも一つの欠陥タイプを検出し、検査イメージにおいて検出されたオブジェクトの位置を特定するオブジェクト位置データを生成するようにトレーニングされるオブジェクト検出モデルに、物品の検査イメージを提供することと、検査イメージにおけるアーティファクトの位置を記述するアーティファクト位置データによって定義され、検査イメージおよびゴールデンサンプルイメージの間の差に対応するアーティファクトを、検査イメージにおいて特定するために、検査イメージとゴールデンサンプルイメージを比較することと、アーティファクト位置データがオブジェクト位置データにマッチするか否かを所定のマッチ基準に従って判定することと、を含む。
【選択図】図3
【特許請求の範囲】
【請求項1】
物品の自動化ビジュアル検査の方法であって、
入力イメージにおいて少なくとも一つの欠陥タイプを検出し、オブジェクト検出モデルを使用して検査イメージにおいて検出されたオブジェクトの位置を特定するオブジェクト位置データを生成するようにトレーニングされる前記オブジェクト検出モデルへの入力として、前記物品の前記検査イメージを提供することと、
第1畳み込みニューラルネットワーク(「CNN」)への入力として前記検査イメージを提供し、前記第1CNNを使用して検査イメージフィーチャマップを生成することと、
前記物品のゴールデンサンプルイメージを第2CNNへの入力として提供し、前記第2CNNを使用してゴールデンサンプルフィーチャマップを生成することと、
前記検査イメージにおけるアーティファクトの位置を記述するアーティファクト位置データによって定義され、前記検査イメージおよびゴールデンサンプルイメージの間の差に対応する前記アーティファクトを、前記検査イメージにおいて特定するために、前記検査イメージと前記ゴールデンサンプルイメージを比較することと、
前記アーティファクト位置データが前記オブジェクト位置データにマッチするか否かを所定のマッチ基準に従って判定することと、
を備える方法。
【請求項2】
前記アーティファクト位置データが前記オブジェクト位置データにマッチする場合、前記検出されたオブジェクトを欠陥として確認することを更に備える、請求項1に記載の方法。
【請求項3】
前記アーティファクト位置データが前記オブジェクト位置データにマッチしない場合、前記検出されたアーティファクトが例外的な欠陥または異常であるか否かを示す入力データをユーザから受け取るように構成されるユーザインターフェースを介して、前記検出されたアーティファクトを表示することを更に備える、請求項1に記載の方法。
【請求項4】
前記検出されたアーティファクトが例外的な欠陥であることを示す入力データを前記ユーザから受け取ることと、
前記検査イメージをオブジェクト検出トレーニングサンプルとしてタグ付けすることと、
を更に備える請求項3に記載の方法。
【請求項5】
前記オブジェクト検出トレーニングサンプルを使用する前記オブジェクト検出モデルの再トレーニングを開始することを更に備える、請求項4に記載の方法。
【請求項6】
前記ゴールデンサンプルイメージは、前記物品のクリーンイメージを表すリファレンスイメージである、請求項1に記載の方法。
【請求項7】
生成機械学習モデルを使用して前記検査イメージから前記ゴールデンサンプルイメージを生成することを更に備える、請求項1に記載の方法。
【請求項8】
前記オブジェクト検出モデルを使用して、前記検出されたオブジェクトについての第1欠陥クラスラベルを生成することと、
前記検出されたオブジェクトを含む前記検査イメージ上の少なくとも一部を分類モデルへの入力として提供することと、
前記分類モデルを使用して、前記検出されたオブジェクトについての第2欠陥クラスラベルを生成することと、
前記第1欠陥クラスラベルが前記第2欠陥クラスラベルにマッチする場合、前記第1欠陥クラスラベルを確認することと、
を更に備える請求項1に記載の方法。
【請求項9】
物品の自動化ビジュアル検査のためのコンピュータシステムであって、
前記物品の検査イメージを受け取るための入力インターフェース、少なくとも一つのプロセッサ、および前記プロセッサと通信しているメモリを備え、
前記少なくとも一つのプロセッサは、
入力イメージにおいて少なくとも一つの欠陥タイプを検出し、オブジェクト検出モデルを使用して検査イメージにおいて検出されたオブジェクトの位置を特定するオブジェクト位置データを生成するようにトレーニングされる前記オブジェクト検出モデルへの入力として、前記物品の前記検査イメージを提供することと、
前記検査イメージにおけるアーティファクトの位置を記述するアーティファクト位置データによって定義され、前記検査イメージおよびゴールデンサンプルイメージの間の差に対応する前記アーティファクトを、前記検査イメージにおいて特定するために、前記検査イメージと前記ゴールデンサンプルイメージを比較することと、
前記アーティファクト位置データが前記オブジェクト位置データにマッチするか否かを所定のマッチ基準に従って判定することと、
を実行するように構成されるシステム。
【請求項10】
前記少なくとも一つのプロセッサは、前記アーティファクト位置データが前記オブジェクト位置データにマッチする場合、前記検出されたオブジェクトを欠陥として確認することを実行するように更に構成される、請求項9に記載のシステム。
【請求項11】
前記少なくとも一つのプロセッサは、前記アーティファクト位置データが前記オブジェクト位置データにマッチしない場合、前記検出されたアーティファクトが例外的な欠陥または異常であるか否かを示す入力データをユーザから受け取るように構成されるユーザインターフェースを介して、前記検出されたアーティファクトを表示することを実行するように更に構成される、請求項9に記載のシステム。
【請求項12】
前記少なくとも一つのプロセッサは、
前記検出されたアーティファクトが例外的な欠陥であることを示す入力データを前記ユーザから受け取ることと、
前記検査イメージをオブジェクト検出トレーニングサンプルとしてタグ付けすることと、
を実行するように更に構成される請求項11に記載のシステム。
【請求項13】
前記少なくとも一つのプロセッサは、前記オブジェクト検出トレーニングサンプルを使用する前記オブジェクト検出モデルの再トレーニングを開始することを実行するように更に構成される、請求項12に記載のシステム。
【請求項14】
前記ゴールデンサンプルイメージは、前記物品のクリーンイメージを表すリファレンスイメージである、請求項9に記載のシステム。
【請求項15】
前記少なくとも一つのプロセッサは、生成機械学習モデルを使用して前記検査イメージから前記ゴールデンサンプルイメージを生成することを実行するように更に構成される、請求項14に記載のシステム。
【請求項16】
前記少なくとも一つのプロセッサは、
前記オブジェクト検出モデルを使用して、前記検出されたオブジェクトについての第1欠陥クラスラベルを生成することと、
前記検出されたオブジェクトを含む前記検査イメージ上の少なくとも一部を分類モデルへの入力として提供することと、
前記分類モデルを使用して、前記検出されたオブジェクトについての第2欠陥クラスラベルを生成することと、
前記第1欠陥クラスラベルが前記第2欠陥クラスラベルにマッチする場合、前記第1欠陥クラスラベルを確認することと、
を実行するように更に構成される請求項9に記載のシステム。
【請求項17】
一または複数のプロセッサ上で実行される、機械学習モデルからのデータ出力を検証する方法であって、
モデルパラメータの第1セットを有する第1機械学習モデルと、前記第1セットと異なるモデルパラメータの第2セットを有する第2機械学習モデルと、のそれぞれへの入力として、イメージデータを提供することと、
前記第1機械学習モデルを使用して、第1オブジェクトの属性を定義する第1オブジェクト属性データを含む前記第1オブジェクトを前記イメージデータにおいて検出することと、
前記第2機械学習モデルを使用して、第2オブジェクトの属性を定義する第2オブジェクト属性データを含む前記第2オブジェクトを前記イメージデータにおいて検出することと、
所定のマッチ基準に従って前記第1オブジェクト属性データが前記第2オブジェクト属性データにマッチする場合、確認されたステータスを前記第1オブジェクトに対して割り当てることと、
前記所定のマッチ基準に従って前記第1オブジェクト属性データが前記第2オブジェクト属性データにマッチしない場合、未確認ステータスを前記第1オブジェクトに対して割り当てる、または、維持することと、
を備える方法。
【請求項18】
前記属性は、オブジェクト位置であり、
前記第1オブジェクト属性データおよび前記第2オブジェクト属性データは、前記イメージデータにおける前記第1または第2オブジェクトのそれぞれの位置を示す位置データを備える、
請求項17に記載の方法。
【請求項19】
前記第1および第2機械学習モデルは、それぞれニューラルネットワークを備える、請求項17に記載の方法。
【請求項20】
前記ニューラルネットワークは、畳み込みニューラルネットワークである、請求項19に記載の方法。
【請求項21】
前記検査イメージと前記ゴールデンサンプルイメージを比較することは、前記検査イメージの検査イメージフィーチャマップと前記ゴールデンサンプルイメージのゴールデンサンプルフィーチャマップを比較することを含む、請求項1に記載の方法。
【請求項22】
第1畳み込みニューラルネットワーク(「CNN」)を使用して、前記検査イメージフィーチャマップを生成することと、
第2CNNを使用して、前記ゴールデンサンプルイメージフィーチャマップを生成することと、
を更に備える請求項22に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
以下は、概して、製造品質コントロールに関し、より具体的には、人工知能を使用する製造された物品の自動化ビジュアル検査のためのシステムおよび方法に関する。
【背景技術】
【0002】
製造品質コントロールは、製品の製造の重要な部分である。欠陥製品は、コストがかかりうる。欠陥製品をプロセスの適切なステージで発見することは、ビジネスが、欠陥物品の販売および使用を防止し、欠陥に関連する根本原因を判定して、このような原因が解消されうるための重要なステップとなりうる。
【0003】
製造品質コントロールを担保するための一つの方法は、物品のビジュアル検査を通すことである。例えば、物品は、欠陥を特定するために、製造後に検査されうる。欠陥物品は廃棄され、非欠陥物品は製造の次のステージに進める。検査された物品を欠陥物品または非欠陥物品として適切に分類する(すなわち、フォルスポジティブまたはフォルスネガティブを回避する)ことは、コストをコントロールする、効率を高める、およびライアビリティを制限するために極めて重要となりうる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
ビジュアル検査は、製品の製造の重要な部分となりうる。既存のビジュアル検査ソリューションは、スペースが限られている場合、製造および他の同様のセッティングにおいて実装するのが難しい。ハードウェア要求は、コストおよびオペレーションの複雑性を高めうる。
【0005】
ビジュアル検査技術は、マニュアルおよび自動化ビジュアル検査技術を含む。マニュアルビジュアル検査技術は、物理的に物品をピックアップし、それを拡大ツール等を使用して検査すること等によって、ビジュアル検査を実行する際に人間を利用する。人間ビジュアル検査技術は、精度およびスピードが限られている。人間検査は、欠陥の見落としが生じやすい。更に、人間検査は、特定された欠陥および関連する情報を文書化することを含むビジュアル検査のマニュアルでの文書化のプロセスを含みうる。このような文書化プロセスは、検査を更に遅らせうる。
【0006】
コンピュータビジョンおよび人工知能を使用する等の自動化ビジュアル検査技術は、高められたスピードおよび精度でビジュアル検査タスクを実行するための機会を提供する。しかし、このような技術にも限界がある。例えば、既存の自動化ビジュアル検査技術では、フォルスポジティブを検出すること(例えば、存在しない欠陥を検出すること)およびフォルスネガティブを検出すること(例えば、存在する欠陥を検出しないこと)が生じやすい。更に、自動化ビジュアル検査技術は、典型的に、物品を欠陥物品として分類するために必要とされる欠陥のレベルに達していない、または、全く欠陥ではなく、物品が欠陥物品(すなわち、異常)であるかのようにシステムレスポンスをトリガすべきではない、検査された物品上の欠点を扱うのに適していない。後者の一つの例は、製造された物品がプロセス中に汚れ、誤った欠陥検出をトリガしうる物質を物品表面上に堆積させることである。
【0007】
このように、フォルスポジティブまたはフォルスネガティブを低減すること、欠陥および異常を検出すること、自動化された欠陥検出を検証すること(例えば、結果をダブルチェックすること)、および新しい欠陥タイプを特定すること等の改良された能力を提供しながら、従来の自動化ビジュアル検査技術のスピードおよび精度等の便益を組み合わせる自動化ビジュアル検査ソリューションを提供することが望まれている。
【0008】
従って、既存のシステムおよび方法の欠点の少なくともいくつかを克服する、自動化ビジュアル検査のための改良されたシステムおよび方法が必要とされている。
【課題を解決するための手段】
【0009】
物品の自動化ビジュアル検査の方法が提供される。方法またはその特定のステップは、一または複数のプロセッサ上で実行されてもよい。方法は、入力イメージにおいて少なくとも一つの欠陥タイプを検出し、オブジェクト検出モデルを使用して検査イメージにおいて検出されたオブジェクトの位置を特定するオブジェクト位置データを生成するようにトレーニングされるオブジェクト検出モデルへの入力として、物品の検査イメージを提供することを含む。方法は、検査イメージにおけるアーティファクトの位置を記述するアーティファクト位置データによって定義され、検査イメージおよびゴールデンサンプルイメージの間の差に対応するアーティファクトを、検査イメージにおいて特定するために、検査イメージとゴールデンサンプルイメージを比較することを更に含む。方法は、アーティファクト位置データがオブジェクト位置データにマッチするか否かを所定のマッチ基準に従って判定することを更に含む。
【0010】
方法は、アーティファクト位置データがオブジェクト位置データにマッチする場合、検出されたオブジェクトを欠陥として確認することを更に含んでもよい。
【0011】
方法は、アーティファクト位置データがオブジェクト位置データにマッチしない場合、検出されたアーティファクトが例外的な欠陥または異常であるか否かを示す入力データをユーザから受け取るように構成されるユーザインターフェースを介して、検出されたアーティファクトを表示することを更に含んでもよい。
【0012】
方法は、検出されたアーティファクトが例外的な欠陥であることを示す入力データをユーザから受け取ることと、検査イメージをオブジェクト検出トレーニングサンプルとしてタグ付けすることと、を更に含んでもよい。
【0013】
方法は、オブジェクト検出トレーニングサンプルを使用するオブジェクト検出モデルの再トレーニングを開始することを更に含んでもよい。
【0014】
ゴールデンサンプルイメージは、物品のクリーンイメージを表すリファレンスイメージでもよい。
【0015】
方法は、生成機械学習モデルを使用して検査イメージからゴールデンサンプルイメージを生成することを更に含んでもよい。
【0016】
方法は、オブジェクト検出モデルを使用して、検出されたオブジェクトについての第1欠陥クラスラベルを生成することと、検出されたオブジェクトを含む検査イメージ上の少なくとも一部を分類モデルへの入力として提供することと、分類モデルを使用して、検出されたオブジェクトについての第2欠陥クラスラベルを生成することと、第1欠陥クラスラベルが第2欠陥クラスラベルにマッチする場合、第1欠陥クラスラベルを確認することと、を更に含んでもよい。
【0017】
検査イメージとゴールデンサンプルイメージを比較することは、検査イメージの検査イメージフィーチャマップとゴールデンサンプルイメージのゴールデンサンプルフィーチャマップを比較することを含んでもよい。
【0018】
方法は、第1畳み込みニューラルネットワーク(「CNN」)を使用して、検査イメージフィーチャマップを生成することと、第2CNNを使用して、ゴールデンサンプルイメージフィーチャマップを生成することと、を更に含んでもよい。
【0019】
物品の自動化ビジュアル検査のためのコンピュータシステムも提供される。システムは、物品の検査イメージを受け取るための入力インターフェース、少なくとも一つのプロセッサ、およびプロセッサと通信しているメモリを含む。少なくとも一つのプロセッサは、入力イメージにおいて少なくとも一つの欠陥タイプを検出し、オブジェクト検出モデルを使用して検査イメージにおいて検出されたオブジェクトの位置を特定するオブジェクト位置データを生成するようにトレーニングされるオブジェクト検出モデルへの入力として、物品の検査イメージを提供することを実行するように構成される。少なくとも一つのプロセッサは、第1畳み込みニューラルネットワーク(「CNN」)への入力として検査イメージを提供し、第1CNNを使用して検査イメージフィーチャマップを生成することを実行するように更に構成される。少なくとも一つのプロセッサは、物品のゴールデンサンプルイメージを第2CNNへの入力として提供し、第2CNNを使用してゴールデンサンプルフィーチャマップを生成することを実行するように更に構成される。少なくとも一つのプロセッサは、検査イメージにおけるアーティファクトの位置を記述するアーティファクト位置データによって定義され、検査イメージおよびゴールデンサンプルイメージの間の差に対応するアーティファクトを、検査イメージにおいて特定するために、検査イメージとゴールデンサンプルイメージを比較することを実行するように更に構成される。少なくとも一つのプロセッサは、アーティファクト位置データがオブジェクト位置データにマッチするか否かを所定のマッチ基準に従って判定することを実行するように更に構成される。
【0020】
少なくとも一つのプロセッサは、アーティファクト位置データがオブジェクト位置データにマッチする場合、検出されたオブジェクトを欠陥として確認することを実行するように更に構成されてもよい。
【0021】
少なくとも一つのプロセッサは、アーティファクト位置データがオブジェクト位置データにマッチしない場合、検出されたアーティファクトが例外的な欠陥または異常であるか否かを示す入力データをユーザから受け取るように構成されるユーザインターフェースを介して、検出されたアーティファクトを表示することを実行するように更に構成されてもよい。
【0022】
少なくとも一つのプロセッサは、検出された特徴が検出されなかった欠陥であることを示す入力データをユーザから受け取り、検査イメージをオブジェクト検出トレーニングサンプルとしてタグ付けすることを実行するように更に構成されてもよい。
【0023】
少なくとも一つのプロセッサは、オブジェクト検出トレーニングサンプルを使用するオブジェクト検出モデルの再トレーニングを開始することを実行するように更に構成されてもよい。
【0024】
ゴールデンサンプルイメージは、物品のクリーンイメージを表すリファレンスイメージでもよい。
【0025】
少なくとも一つのプロセッサは、生成機械学習モデルを使用して検査イメージからゴールデンサンプルイメージを生成することを実行するように更に構成されてもよい。
【0026】
少なくとも一つのプロセッサは、オブジェクト検出モデルを使用して、検出されたオブジェクトについての第1欠陥クラスラベルを生成することと、検出されたオブジェクトを含む検査イメージ上の少なくとも一部を分類モデルへの入力として提供することと、分類モデルを使用して、検出されたオブジェクトについての第2欠陥クラスラベルを生成することと、第1欠陥クラスラベルが第2欠陥クラスラベルにマッチする場合、第1欠陥クラスラベルを確認することと、を実行するように更に構成されてもよい。
【0027】
機械学習モデルからのデータ出力を検証する方法も提供される。方法は、一または複数のプロセッサ上で実行される。方法は、モデルパラメータの第1セットを有する第1機械学習モデルと、第1セットと異なるモデルパラメータの第2セットを有する第2機械学習モデルと、のそれぞれへの入力として、イメージデータを提供することを含む。方法は、第1機械学習モデルを使用して、第1オブジェクトの属性を定義する第1オブジェクト属性データを含む第1オブジェクトをイメージデータにおいて検出することを更に含む。方法は、第2機械学習モデルを使用して、第2オブジェクトの属性を定義する第2オブジェクト属性データを含む第2オブジェクトをイメージデータにおいて検出することを更に含む。方法は、所定のマッチ基準に従って第1オブジェクト属性データが第2オブジェクト属性データにマッチする場合、確認されたステータスを第1オブジェクトに対して割り当てることを更に含む。方法は、所定のマッチ基準に従って第1オブジェクト属性データが第2オブジェクト属性データにマッチしない場合、未確認ステータスを第1オブジェクトに対して割り当てることを更に含む。
【0028】
属性は、オブジェクト位置でもよく、第1オブジェクト属性データおよび第2オブジェクト属性データは、イメージデータにおける第1または第2オブジェクトのそれぞれの位置を示す位置データを備えてもよい。
【0029】
第1および第2機械学習モデルは、それぞれニューラルネットワークを備えてもよい。
【0030】
ニューラルネットワークは、畳み込みニューラルネットワークでもよい。
【0031】
他の側面および特徴は、いくつかの例示的な実施形態の以下の記述をレビューした当業者にとって明らかになる。
【図面の簡単な説明】
【0032】
ここに含まれる以下の図面は、本明細書の物品、方法、および装置の様々な例を示すためのものである。
【0033】
図1は、一実施形態に係るAIビジュアル検査システムの模式図である。
【0034】
図2は、一実施形態に係る本開示のコンピューティングデバイスのブロック図である。
【0035】
図3は、一実施形態に係るAIビジュアル検査システムのブロック図である。
【0036】
図4は、一実施形態に係るクラスタアーキテクチャを有するAIビジュアル検査システムのブロック図である。
【0037】
図5は、一実施形態に係る、AIビジュアル検査のための異常検出パイプラインのブロック図である。
【0038】
図6Aは、一実施形態に係る、AIビジュアル検査のための2ステージオブジェクト検出モデルのブロック図である。
【0039】
図6Bは、一実施形態に係る、カムシャフトのAIビジュアル検査のための2ステージオブジェクト検出モデルのブロック図である。
【0040】
図7Aは、一実施形態に係る、AIビジュアル検査のための1ステージオブジェクト検出モデルのブロック図である。
【0041】
図7Bは、一実施形態に係る、カムシャフトのAIビジュアル検査のための1ステージオブジェクト検出モデルのブロック図である。
【0042】
図8は、実施形態に係る、二つの欠陥分類モデルのパフォーマンス特性の比較を例示する図である。
【0043】
図9Aは、一実施形態に係る、オートエンコーダアーキテクチャを使用するゴールデンサンプルモジュールの生成モデルコンポーネントのグラフィカル表現である。
【0044】
図9Bは、一実施形態に係る、オートエンコーダアーキテクチャを使用するゴールデンサンプルモジュールの生成モデルコンポーネントのグラフィカル表現である。
【0045】
図10は、一実施形態に係る、生成モデルを使用するゴールデンサンプルパイプラインのフロー図である。
【0046】
図11は、一実施形態に係る、ゴールデンサンプルモジュールによって使用される教師なしおよび準教師あり学習技術を例示するグラフである。
【0047】
図12は、実施形態に係る、本開示のビジュアル検査システムによって生成されてゴールデンサンプルコンポーネントによって使用されるイメージの例示である。
【0048】
図13は、一実施形態に係る、入力検査イメージおよび生成ゴールデンサンプル処理を使用した結果としてのゴールデンサンプルイメージの例示である。
【0049】
図14は、実施形態に係る、非生成ゴールデンサンプルおよび生成ゴールデンサンプル処理によるゴールデンサンプルイメージの例示である。
【0050】
図15は、一実施形態に係る、カムシャフトビジュアル検査のための異常検出パイプラインのフロー図である。
【0051】
図16は、一実施形態に係る、カムシャフトビジュアル検査のための異常検出パイプラインのフロー図である。
【0052】
図17は、実施形態に係る、複数の異常検出アルゴリズムについてのパフォーマンス特性のグラフィカル表現である。
【0053】
図18は、一実施形態に係る、オブジェクトトラッキングのためのコンピュータシステムのブロック図である。
【0054】
図19は、一実施形態に係る、図18のオブジェクトトラッカのコード表現の一例である。
【0055】
図20は、一実施形態に係る、オブジェクトトラッキングの方法のフロー図である。
【0056】
図21A~21Dは、一実施形態に係る、オブジェクトトラッキングを使用して処理される、アノテーションされた検査イメージを表示するユーザインターフェースの例示である。
【0057】
図22は、一実施形態に係る、自動化ビジュアル検査パイプラインのブロック図である。
【0058】
図23は、一実施形態に係る、カムシャフトビジュアル検査のための自動化ビジュアル検査パイプラインのフロー図である。
【発明を実施するための形態】
【0059】
以下では、請求項に係る各実施形態の一例を提供するために、様々な装置またはプロセスが記述される。以下で記述されるいずれの実施形態も、請求項に係るいずれの実施形態を限定するものではなく、請求項に係るいずれの実施形態も、以下で記述されるものと異なるプロセスまたは装置をカバーしてもよい。請求項に係る実施形態は、以下で記述される任意の一つの装置またはプロセスの特徴の全てを有する装置またはプロセスや、以下で記述される複数または全ての装置に共通の特徴に限定されない。
【0060】
ここで記述される一または複数のシステムは、それぞれ、少なくとも一つのプロセッサ、データストレージシステム(揮発性および不揮発性メモリおよび/またはストレージ要素を含む)、少なくとも一つの入力デバイス、および少なくとも一つの出力デバイスを備えるプログラマブルコンピュータ上で実行されるコンピュータプログラムにおいて実装されてもよい。非限定的な例として、プログラマブルコンピュータは、プログラマブルロジックユニット、メインフレームコンピュータ、サーバ、およびパーソナルコンピュータ、クラウドベースプログラムまたはシステム、ラップトップ、パーソナルデータアシスタンス、携帯電話、スマートフォン、またはタブレットデバイスでもよい。
【0061】
各プログラムは、好ましくは、コンピュータシステムと通信するための高レベルの手続型またはオブジェクト指向プログラミングおよび/またはスクリプト言語において実装される。但し、プログラムは、必要に応じて、アセンブリまたは機械言語において実装されうる。言語は、コンパイルまたは解釈された言語でもよい。このような各コンピュータプログラムは、好ましくは、ストレージメディアや、汎用または専用のプログラマブルコンピュータによって読取可能なデバイス上に保存され、ここで記述される手続を実行するために、ストレージメディアまたはデバイスがコンピュータによって読み取られる時に、コンピュータを構成して動作させる。
【0062】
互いに通信しているいくつかのコンポーネントを有する一実施形態の記述は、このような全てのコンポーネントが要求されることを意味するものではない。逆に、本発明の可能な実施形態の広い適用範囲を例示するために、様々なオプションのコンポーネントが記述される。
【0063】
更に、処理のステップ、方法のステップ、アルゴリズム等は、順番に記述されてもよいが(開示および/または請求項において)、このようなプロセス、方法およびアルゴリズムは、異なる順序で働くように構成されてもよい。換言すれば、記述されてもよいステップのいずれのシーケンスまたはいずれの順序も、ステップがその順序で実行されることを必ずしも要求するものではない。ここで記述されるプロセスのステップは、任意の現実的な順序で実行されてもよい。更に、いくつかのステップは、同時に実行されてもよい。
【0064】
単一のデバイスまたは物品がここで記述される場合、複数のデバイス/物品(それらが協働するか否かに関わらず)が、単一のデバイス/物品の代わりに使用されてもよいことは明らかである。同様に、複数のデバイスまたは物品がここで記述される場合(それらが協働するか否かに関わらず)、単一のデバイス/物品が、複数のデバイスまたは物品の代わりに使用されてもよいことは明らかである。
【0065】
図1を参照して、一実施形態に係る、ビジュアル検査システム10を示すブロック図が示されている。システム10は、ネットワーク20を介して、カメラデバイス14、オペレータデバイス16、プログラマブルロジックコントローラ(「PLC」)デバイス18、および分析サーバ22と通信するAIビジュアル検査デバイス12を含む。システム10は、AIビジュアル検査デバイス12のトレーニングのためのオブジェクト検出トレーニングデータにアクセスできる、および/または、当該オブジェクト検出トレーニングデータを保存できるオブジェクト検出データベースサーバ24も含む。システム10は、オペレータデバイス16の一部でもよいし、オペレータデバイス16と分かれていてもよい、分析サーバ22と通信する分析クライアントデバイス26も含む。デバイス24および26は、ネットワーク20を介して、一または複数の他のデバイス12、14、16、18、22、24、26と通信可能に接続されてもよい。
【0066】
デバイス12、14、16、18、22、24、26は、サーバコンピュータ、ノードコンピューティングデバイス(例えば、JETSONコンピューティングデバイス)、組み込みデバイス、デスクトップコンピュータ、ノートブックコンピュータ、タブレット、PDA、スマートフォン、または他のコンピューティングデバイスでもよい。デバイス12、14、16、18、22、24、26は、インターネットへの有線または無線接続等のネットワーク20との接続を含んでもよい。いくつかの場合では、ネットワーク20が、他のタイプのコンピュータまたは通信ネットワークを含んでもよい。デバイス12、14、16、18、22、24、26は、メモリ、副ストレージデバイス、プロセッサ、入力デバイス、ディスプレイデバイス、および出力デバイスの一または複数を含んでもよい。メモリは、ランダムアクセスメモリ(RAM)または同様のタイプのメモリを含んでもよい。また、メモリは、プロセッサによって実行されるための一または複数のアプリケーションを保存してもよい。アプリケーションは、以下で記述される機能のための処理を実行するためのコンピュータ実行可能命令を備えるソフトウェアモジュールと対応してもよい。副ストレージデバイスは、ハードディスクドライブ、フロッピーディスクドライブ、CDドライブ、DVDドライブ、ブルーレイドライブ、または他のタイプの不揮発性データストレージを含んでもよい。プロセッサは、アプリケーション、コンピュータ読取可能命令またはプログラムを実行してもよい。アプリケーション、コンピュータ読取可能命令またはプログラムは、メモリまたは副ストレージに保存されてもよいし、インターネットまたは他のネットワーク20から受け取られてもよい。
【0067】
入力デバイスは、デバイス12、14、16、18、22、24、26に情報を入力するための任意のデバイスを含んでもよい。例えば、入力デバイスは、キーボード、キーパッド、カーソル制御デバイス、タッチスクリーン、カメラ、またはマイクロフォンでもよい。ディスプレイデバイスは、視覚情報を提示するための任意のタイプのデバイスを含んでもよい。例えば、ディスプレイデバイスは、コンピュータモニタ、フラットスクリーンディスプレイ、プロジェクタ、またはディスプレイパネルでもよい。出力デバイスは、情報のハードコピーを提示するための任意のタイプのデバイス(例えば、プリンタ)を含んでもよい。出力デバイスは、スピーカ等の他のタイプの出力デバイスを含んでもよい。いくつかの場合では、デバイス12、14、16、18、22、24、26が、プロセッサ、アプリケーション、ソフトウェアモジュール、第2ストレージデバイス、ネットワーク接続、入力デバイス、出力デバイス、およびディスプレイデバイスのうち任意のものを複数含んでもよい。
【0068】
デバイス12、14、16、18、22、24、26は様々なコンポーネントと共に記述されるが、いくつかの場合では、デバイス12、14、16、18、22、24、26がより少ない、追加的なまたは異なるコンポーネントを含んでもよいと当業者は理解する。加えて、メモリに保存されるものとしてデバイス12、14、16、18、22、24、26の実装の側面が記述されうるが、これらの側面は、他のタイプのコンピュータプログラム製品または副ストレージデバイス等のコンピュータ読取可能メディア(ハードディスク、フロッピーディスク、CD、またはDVD、インターネットまたは他のネットワークからの搬送波、または他の形態のRAMまたはROMを含む)上に保存されうる/から読み出されうると当業者は理解する。コンピュータ読取可能メディアは、デバイス12、14、16、18、22、24、26を制御するための命令および/または特定の方法を実行するためのプロセッサを含んでもよい。
【0069】
デバイス12、14、16、18、22、24、26は、特定の行為を実行するものとして記述されうる。これらのデバイスの少なくともいずれかは、自動的にまたは当該デバイスのユーザによる相互作用に応じて、行為を実行してもよいと理解される。すなわち、デバイスのユーザは、一または複数の入力デバイス(例えば、タッチスクリーン、マウス、またはボタン)を操作して、デバイスに記述される行為を実行させてもよい。多くの場合、この側面は以下では記述されないが、暗黙的に理解される。
【0070】
一例として、デバイス12、14、16、18、22、24、26は、一または複数の他のデバイス12、14、16、18、22、24、26に対して情報を送ってもよいと以下で記述される。例えば、オペレータデバイス16を使用するユーザは、一または複数の入力(例えば、マウスおよびキーボード)を操作して、デバイス16のディスプレイ上に表示されるユーザインターフェースと相互作用してもよい。一般的に、デバイスは、ユーザインターフェースを、ネットワーク20から受け取ってもよい(例えば、ウェブページの形態で)。あるいは、または加えて、ユーザインターフェースは、デバイスにローカル保存されてもよい(例えば、ウェブページのキャッシュまたはモバイルアプリケーション)。
【0071】
デバイス12、14、16、18、22、24、26は、複数のデバイス12、14、16、18、22、24、26の少なくともいずれかから、複数の情報を受け取るように構成されてもよい。
【0072】
情報を受け取った各デバイス12、14、16、18、22、24、26は、当該情報をストレージデータベースに保存してもよい。ストレージは、一または複数の他のデバイス12、14、16、18、22、24、26の副ストレージに対応してもよい。一般的に、ストレージデータベースは、ハードディスクドライブ、固体状態ドライブ、メモリカード、またはディスク(例えば、CD、DVD、またはブルーレイ)等の任意の適切なストレージデバイスでもよい。また、ストレージデータベースは、デバイス12、14、16、18、22、24、26とローカル接続されていてもよい。いくつかの場合では、ストレージデータベースは、デバイス12、14、16、18、22、24、26から離れて設置され、ネットワーク等を通じてデバイス12、14、16、18、22、24、26にアクセス可能でもよい。いくつかの場合では、ストレージデータベースが、ネットワーククラウドストレージプロバイダに設置されている一または複数のストレージデバイスを備えてもよい。
【0073】
AIビジュアル検査デバイス12は、オブジェクト(例えば、欠陥)検出タスク、オブジェクト(例えば、欠陥)分類タスク、ゴールデンサンプル分析タスク、オブジェクト(例えば、欠陥)トラッキングタスク、および他の関連するデータ処理タスクを、カメラデバイス14によって取得される検査イメージを使用して実行するために特別にデザインされた専用装置でもよい。
【0074】
分析サーバ24は、AIビジュアル検査デバイス12によって実行されるオブジェクト検出タスク、欠陥分類タスク、ゴールデンサンプル分析タスク、オブジェクトトラッキング、または他の関連するデータ処理タスクからの出力データを受け取り、処理し、保存し、および分析するために特別にデザインされた専用デバイスでもよい。分析サーバ24は、AIビジュアル検査デバイス12等のデバイス12、14、16、18、22、24、26の少なくともいずれかから受け取られる様々なデータや、一または複数のデバイスから受け取られたデータを使用する分析サーバ24によって生成されるデータを保存する分析データベースを含んでもよい、または、当該分析データベースと通信していてもよい。
【0075】
図2を参照して、モバイルデバイスまたはポータブル電子デバイス等のデバイス100のコンポーネントの単純化されたブロック図が示されている。デバイス100は、例えば、図1のデバイス12、14、16、18、22、24、26のいずれであってもよい。デバイス100は、デバイス100のオペレーションを制御するプロセッサ102等の複数のコンポーネントを含む。データ通信、音声通信、または両方を含む通信機能は、通信サブシステム104を通じて実現されてもよい。デバイス100によって受け取られるデータは、デコーダ106によって解凍および復号化されてもよい。通信サブシステム104は、無線ネットワーク150からメッセージを受け取ってもよいし、無線ネットワーク150に対してメッセージを送ってもよい。
【0076】
無線ネットワーク150は、データ中心の無線ネットワーク、音声中心の無線ネットワーク、および音声およびデータの通信の両方をサポートするデュアルモードネットワークを含むが、これらに限られない任意のタイプの無線ネットワークでもよい。
【0077】
デバイス100は、バッテリ駆動のデバイスでもよく、図示されるように、一または複数の充電可能バッテリ144を受けるためのバッテリインターフェース142を含んでもよい。
【0078】
プロセッサ102は、ランダムアクセスメモリ(RAM)108、フラッシュメモリ110、ディスプレイ112(例えば、共に接触感知ディスプレイ118を構成する電子コントローラ116に接続される接触感知オーバーレイ114を有するもの)、アクチュエータアセンブリ120、一または複数のオプションの力センサ122、予備入力/出力(I/O)サブシステム124、データポート126、スピーカ128、マイクロフォン130、近距離通信システム132および他のデバイスサブシステム134等の追加的なサブシステムとも相互作用する。
【0079】
いくつかの実施形態では、グラフィカルユーザインターフェースとのユーザ相互作用が、接触感知オーバーレイ114を通じて実行されてもよい。プロセッサ102は、電子コントローラ116を介して、接触感知オーバーレイ114と相互作用してもよい。プロセッサ102によって生成されてポータブル電子デバイス上で表示または描写されてもよいテキスト、文字、シンボル、イメージ、アイコン、および他のアイテム等の情報は、接触感知ディスプレイ118上に表示されてもよい。
【0080】
プロセッサ102は、図1に示されるように、加速度計136と相互作用してもよい。加速度計136は、重力または重力に由来する反力の方向を検出するために利用されてもよい。
【0081】
本実施形態に従ってネットワークアクセスの加入者を特定するために、デバイス100は、ネットワーク(例えば、無線ネットワーク150)との通信のために、SIM/RUIMインターフェース140内に挿入される、加入者特定モジュールまたは除去可能ユーザ特定モジュール(SIM/RUIM)カード138を使用してもよい。あるいは、ユーザ特定情報は、フラッシュメモリ110にプログラミングされてもよいし、他の技術を使用して実現されてもよい。
【0082】
デバイス100は、オペレーティングシステム146と、フラッシュメモリ110等の持続性データストレージデバイスに保存されてもよい、プロセッサ102によって実行されるソフトウェアコンポーネント148も含む。追加的なアプリケーションは、無線ネットワーク150、予備I/Oサブシステム124、データポート126、近距離通信サブシステム132、または任意の他の適切なデバイスサブシステム134を通じて、デバイス100上にロードされてもよい。
【0083】
使用時に、テキストメッセージ、eメールメッセージ、ウェブページダウンロード、または他のデータ等の受け取られた信号は、通信サブシステム104によって処理されてプロセッサ102に対して入力されてもよい。そして、ディスプレイ112あるいは予備I/Oサブシステム124への出力のために、プロセッサ102は受け取られた信号を処理する。加入者は、例えば、通信サブシステム104を通じて無線ネットワーク150上で送信されてもよいeメールメッセージ等のデータアイテムを作成してもよい。
【0084】
音声通信については、ポータブル電子デバイス100の全体オペレーションが同様でもよい。スピーカ128は、電気信号から変換されたオーディオ情報を出力してもよく、マイクロフォン130は、オーディオ情報を処理のために電気信号に変換してもよい。
【0085】
図3を参照して、一実施形態に係る、自動化ビジュアル検査システム300が示されている。システム300は、ターゲット物品を視覚的に検査するために使用されうる。ビジュアル検査は、欠陥検出および分類および異常検出を含んでもよい。図3は、ビジュアル検査システム300のためのハードウェアコンポーネントのアーキテクチャの一例を示す。
【0086】
システム300は、カメラ304を含む。カメラ304は、ターゲット物品306のイメージデータを取得する。イメージデータは、単一のイメージまたは複数のイメージを含んでもよい。複数のイメージ(フレーム)が、カメラ304によってビデオとして取得されてもよい。ターゲット物品306のエリアを撮像するために、カメラ304およびターゲット物品306が互いに相対移動してもよい。例えば、複数のアングルからの適切な検査を提供するために、ターゲット物品306が回転されてカメラ304によって複数のイメージがターゲット物品306上の異なる位置で取得されてもよい。カメラ304は、それぞれのターゲット物品位置(例えば、ターゲット物品306がカメラ304に対して回転する場合)で撮られる、複数のフレームを取得するように構成されてもよい。カメラ304は、USB 3.0 カメラでもよいし、インターネットプロトコル(「IP」)カメラでもよい。
【0087】
ターゲット物品306は、システム300のユーザがビジュアル検査を実行したい任意の物理的な物品でもよい。ターゲット物品306は、製造または機械製作された物品でもよい。ターゲット物品306は、曲がった外表面を有してもよい。ターゲット物品306は、ターゲット物品306の表面が検査されるように、カメラ304に対して回転される必要がある形状をしていてもよい。特定の場合、ターゲット物品306は、カムシャフトでもよい。
【0088】
ターゲット物品306は、ビジュアル検査タスクを実行する際のチャレンジとなり、システム300が対処するように構成される、様々な物理的性質および特性を有してもよい。例えば、ターゲット物品306は、異なる表面仕上げを有してもよい。ターゲット物品306は、照明の屈折をもたらしてもよい(例えば、検査条件下で)。ターゲット物品306は、ターゲット物品306上の位置毎の欠陥許容範囲の変動を有してもよい。ターゲット物品306は、ビジュアル検査のための照明およびサイクル時間に影響を及ぼしてもよい複雑な物品(例えば、複雑な形状または構造を有するもの)でもよい。ターゲット物品306は、欠陥特性の変動が生じやすいものでもよい。ターゲット物品306は、非対称特性を有してもよい。カメラ位置についての焦点距離に影響を及ぼしうる非対称特性は、ターゲット物品306の適切なイメージを取得するために先進的なロボット操作を要求してもよい。
【0089】
ターゲット物品306は、長さが可変の円筒状の金属オブジェクトでもよい。ターゲット物品306は、欠陥のテクスチャおよびサイズについての特定の許容範囲を有する機械仕上げ表面を有してもよい。ターゲット物品306は、ビジュアル検査の時に、透明または半透明材料(液体)でクリーニングまたはカバーされうる(完全または部分的に)物品でもよい。欠陥の外観は、予め定められていてもよいし、システム300のオペレーション中に更なるトレーニングのために収集されてもよい。
【0090】
ターゲット物品306は、製造またはマシニングプロセス中に発達する欠陥の影響を受けやすいものでもよい。欠陥は、「完璧な」または「良好な」物品からの許容不能な偏差として特徴付けられてもよい。欠陥を有するターゲット物品306は、欠陥あり、許容不能、または「不良」(「NG」)と解釈される。
【0091】
ターゲット物品306は、製造および生産プロセス中に発達する異常の影響を受けやすいものでもよい。異常は、許容可能な良品からの偏差として特徴付けられてもよい。換言すれば、異常は、部品を欠陥ありとするほどには重大でない、欠陥ありのターゲット物品としての取り扱いをトリガすべきではない偏差である。
【0092】
システム300は、物品306を検査し、物品306が欠陥を有するか否かを判定する。物品306は、システム300によって、欠陥ありまたは欠陥なしと分類されてもよい。
【0093】
物品306に欠陥ありまたは欠陥なしと識別することによって、検査された物品はビジュアル検査の結果に基づいて異なる扱いを受けうる。欠陥物品306は、廃棄されてもよいし、更なる処理から除去されてもよい。非欠陥物品306は、更なる処理に進んでもよい。
【0094】
概して、物品306は、欠陥が望ましくない物品である。物品306における欠陥は、物品306または物品306をコンポーネントとして含むより大きい物品(例えば、システムまたは装置)の機能的なパフォーマンスの低下に繋がりうる。物品306における欠陥は、物品のビジュアルアピールを低減しうる。欠陥製品を発見することは、ビジネスが、欠陥物品の販売および使用を防止し、欠陥に関する根本原因を判定して、このような原因を解消するための重要なステップでありうる。
【0095】
物品306は、組立物品でもよい。物品306は、製造プロセス中に発達する欠陥が生じやすい製造物品でもよい。物品306は、外観から何らかの価値が得られる物品であって、特定の欠陥が外観に悪影響を及ぼしうる物品でもよい。物品306における欠陥は、物品306自体の製造またはいくつかの他のプロセス(例えば、転送、テスト)中に発達しうる。
【0096】
物品306は、金属、鉄、プラスチック、コンポジット、木、ガラス等の一または複数の材料から構成されてもよい。
【0097】
物品306は、サイズおよび形状において一様または非一様でもよい。物品306は、曲がった外表面を有してもよい。
【0098】
物品306は、複数のセクションを含んでもよい。物品セクションは、物品サブセクションに更に分割されてもよい。物品セクション(または、サブセクション)は、物品の外観または機能に基づいて決定されてもよい。物品セクションは、物品306のより良いビジュアル検査を可能にし、許容不能な欠陥物品をより良く識別するように決定されてもよい。
【0099】
物品セクションは、異なる機能を有する物品306の異なる部品に対応してもよい。異なるセクションは、同様のまたは異なる寸法を有してもよい。いくつかの場合では、物品306は、それぞれが物品306において一回または複数回に亘って現れる、複数の異なるセクションタイプを含んでもよい。セクションは、規則的または不規則的な形状でもよい。異なるセクションは、異なる欠陥仕様(すなわち、特定の欠陥についての許容範囲)を有してもよい。
【0100】
物品306は、単体での使用が意図されているスタンドアロン物品でもよいし、より大きい物品(例えば、より大きい装置の装置部品)のコンポーネントでもよい。
【0101】
物品306は、システム300を使用して検出可能な欠陥の複数のタイプまたはクラスが生じやすくてもよい。欠陥タイプの例は、ペイント、多孔性、凹み、スクラッチ、スラッジ等を含んでもよい。欠陥タイプは、物品306に応じて変動しうる。例えば、欠陥タイプは、物品306の製造プロセスまたは材料組成に基づいて、物品306に特有のものでもよい。物品306における欠陥は、それ自体の製造中に取得されてもよいし、物品306の後続の処理を通じて取得されてもよい。
【0102】
物品306は、自動車および/またはモータサイクルのためのパワートレイン部品でもよい。パワートレイン部品は、カムシャフト、差動アセンブリ、トランスミッションギア、リンケージ、サスペンション部品、またはこれらのいずれの部品またはコンポーネントでもよい。
【0103】
システム300の特定の実施形態では、物品306はカムシャフトである。一般的に、カムシャフトは、カムが取り付けられたシャフト、または、カムと一体的に構成されたシャフトである。カムシャフトは、内燃エンジンの機械コンポーネントとして使用されうる。カムシャフトは、精緻に定義されたシーケンスにおける適切な時に、エンジンの吸気および排気バルブを開閉する。
【0104】
カムシャフトは、それぞれが特定の機能を提供して特定の寸法を有する、複数の異なるコンポーネントまたは部品を含んでもよい。カムシャフトコンポーネントは、ジャーナル、ローブ、エンド、およびベアリングの少なくともいずれかを含んでもよい。
【0105】
カムシャフトは、システム300を使用して検査するためのセクションに分けられてもよい。セクションは、カムシャフトの異なるコンポーネント(例えば、ローブセクション、ジャーナルセクション)に対応してもよい。カムシャフトは、10個と17個の間の検査対象セクションを有してもよい。10個と17個の間のセクションは、ローブおよびジャーナルを含んでもよい。
【0106】
システム300は、カムシャフト毎に1300個の範囲のイメージを取得するように構成されてもよい。システム300は、セクション(例えば、カムシャフト毎に13個と17個の間のセクション)毎に50個の範囲のイメージを取得してもよい。セクションについて、カムシャフトの7.2度の回転の度にイメージが取得されてもよい。これは、各セクションにおける50個のイメージに亘って適切に欠陥を追跡するための十分な自由度をAIプロセスに与えながら、2秒毎に360度の回転を可能にしうる。
【0107】
カムシャフトは、ロッドから突出する複数の矩形ローブを有するシリンダバンクの長さに亘って延びる円筒状のロッドを含んでもよい。ローブの数は、バルブの数に対応してもよい(例えば、各バルブについて一つのローブ)主ジャーナルは、エンジンベイにおいて回転するカムシャフトを所定の位置に保つ。
【0108】
カムシャフトは、任意の適切なカムシャフト材料によって構成されてもよい。カムシャフトは、チルド鋳鉄またはビレット鋼から作られてもよい。
【0109】
カムシャフトは、カムシャフトまたはそのコンポーネントの製造プロセスまたは他のプロセスを通じて発達する欠陥が生じやすくてもよい。欠陥タイプは、ペイント、多孔性、スラッジ等を含んでもよい。カムシャフトの異なるコンポーネント、またはセクションでは、異なるタイプの欠陥が発達しうる。欠陥は、異なるコンポーネントに異なる態様で影響しうる。これは、例えば、異なるコンポーネントが異なる機能を実行するため、欠陥に対して異なる許容範囲を有してもよいからである。例えば、ローブおよびジャーナルについての欠陥は、異なる態様で扱われてもよく、異なる許容範囲を有してもよい。いくつかの場合では、コンポーネントのサブセクションが、異なる仕様を有してもよい。例えば、ローブ(卵形状である)は、ローブ上の欠陥の位置に基づいて異なる欠陥仕様を有してもよい。
【0110】
いくつかの場合では、0.4mm程度に小さい多孔性仕様をカムシャフトが有してもよい。多孔性仕様は、位置に依存してもよい。以下の表に一例がしめされている。
【表1】
【0111】
カムシャフトセクションは、非一様な形状を有してもよい。これは、不規則的な光の反射をもたらしうる。場合によっては、カムシャフトが、防錆剤(クリア)で覆われていてもよい。カムシャフトでは、スラッジまたはダークオイルドロップがランダムに発生しうる。いくつかの場合では、スラッジは、多孔性をカバーしうる。欠陥(例えば、多孔性、スラッジ)は、異なるサイズおよび形状を有してもよい。
【0112】
カメラ304は、通信リンク312を介して、ワーカノードデバイス310と通信可能に接続される。ワーカノードデバイス310は、図1のAIビジュアル検査デバイス12でもよい。
【0113】
カメラ304は、ワーカノードデバイス310に対して、通信リンク312を介してイメージデータを送る。一実施形態では、カメラ304が、現在のターゲット物品位置でイメージフレームを取得し、ワーカノードデバイス310に対してイメージフレームを送る。
【0114】
ワーカノードデバイス310は、オブジェクト検出コンポーネント314を含む。オブジェクト検出コンポーネント314は、イメージデータにおいて欠陥(オブジェクト)を検出するためのイメージデータに対するオブジェクト検出プロセスを実行するように構成される。概して、オブジェクト検出プロセスは、一または複数の欠陥がイメージデータに存在するか否かを判定する。
【0115】
オブジェクト検出コンポーネント314は、欠陥タイプを分類する(すなわち、検出された欠陥に欠陥クラスを割り当てる)ための欠陥分類プロセスを実行するように更に構成される。欠陥分類は、オブジェクト検出プロセスから提供される入力に対して実行されうる。欠陥分類プロセスは、オブジェクト検出プロセスによるイメージデータにおける一または複数の欠陥の検出に応じて発動される。欠陥分類プロセスは、オブジェクト検出プロセスから提供される欠陥に対して、クラスラベル(例えば、欠陥名または「スクラッチ」等の欠陥タイプ)を割り当てる。いくつかの場合では、オブジェクト検出コンポーネント314が、オブジェクト検出モデルおよびオブジェクト分類モデルを含む。オブジェクト検出モデルは、検出された各オブジェクトについてオブジェクトクラスを生成する。検出されたオブジェクトを含むイメージデータは、オブジェクトクラスを出力する分類モデルに対して提供される。オブジェクト検出コンポーネント314は、オブジェクトについてのクラスラベルを確認するために、オブジェクト検出モデルによって判定されたオブジェクトクラスを、分類モデルによって判定されたオブジェクトクラスと比較する。クラスラベルが分類モデルによって確認されない場合、オブジェクト検出コンポーネント314は、検出を無視するように構成されてもよい。
【0116】
ワーカノードデバイス310は、ゴールデンサンプルコンポーネント316も含む。ゴールデンサンプルコンポーネント316は、カメラ304から受け取られた検査イメージに対して、ゴールデンサンプル分析プロセスを実行するように構成される。このように、ワーカノードデバイス310は、ゴールデンサンプルコンポーネント316に対して検査イメージを渡すように構成されてもよい。
【0117】
ゴールデンサンプル分析プロセスは、差を判定するために、ゴールデンサンプルイメージを参照して、検査イメージを分析することを含む。検査イメージおよびゴールデンサンプルイメージの間の差は、ゴールデンサンプルコンポーネント316によって特定され、異常を検出して欠陥の新しいタイプまたはクラスを特定する等の後続の処理オペレーションにおいて使用されうる。例えば、ゴールデンサンプルコンポーネント316の出力(特定された差またはオブジェクト)およびオブジェクト検出コンポーネント314の出力(検出されたオブジェクト)は、比較されてもよい。
【0118】
ゴールデンサンプルイメージは、ゴールデンサンプルコンポーネント316によって生成されてもよい。一実施形態では、ゴールデンサンプルイメージは、検査イメージから生成される。
【0119】
オブジェクト検出コンポーネント314およびゴールデンサンプルコンポーネント316は、通信リンク318を介して通信可能に接続されてもよい。通信リンク318は、アプリケーションプログラミンインターフェース(API)等を含んでもよい。
【0120】
オブジェクト検出コンポーネント314およびゴールデンサンプルコンポーネント316は、それぞれに専用のハードウェアコンポーネントを有してもよい。例えば、オブジェクト検出コンポーネント314は、第1組み込みデバイス上で実行されてもよく、ゴールデンサンプルコンポーネント316は、第2組み込みデバイス上で実行されてもよい。組み込みデバイスは、人工知能タイプのタスクを実行するために特別に構成された組み込みデバイスでもよい。一実施形態では、組み込みデバイスは、JETSONボックスである。
【0121】
システム300は、PLCデバイス320も含む。PLCデバイス320は、通信リンク322を介して、ワーカノードデバイス310と通信可能に接続される。
【0122】
PLCデバイス320は、ターゲット物品306の操作および物理的な処理を制御するように構成される。これは、通信リンク321を介して、物品操作ユニット(不図示)との間で制御命令を送受信することによって行われてもよい。このような操作および物理的な処理は、撮像や検査エリアにおけるターゲット物品306の設置および除去のために、ターゲット物品306を回転させるまたは他の態様で駆動することを含んでもよい。通信リンク321を介して物品操作ユニットに対してPLC320によって送られる命令の一例は、「ターゲット物品を「n」度だけ回転させる」ことでもよい。いくつかの場合では、このような命令の送信が、ワーカノードデバイス310(例えば、オブジェクト検出コンポーネント314)から受け取られる情報に依存してもよい。
【0123】
PLC320は、欠陥許容範囲データを保存してもよい。欠陥許容範囲データは、特定の欠陥クラスに固有の欠陥クラス識別子および欠陥クラス識別子にリンクされる一または複数の許容範囲値を含んでもよい。他の実施形態では、欠陥許容範囲データが、ワーカノードデバイス310等の他のデバイス上に保存されてもよい。欠陥許容範囲データは、欠陥許容範囲データベースに保存されてもよい。欠陥許容範囲データベースにおける欠陥許容範囲データは、ワーカノードデバイス310によって生成される(例えば、コンポーネント314、316を介して)データとの比較のための許容範囲データ値の取り出しを容易にするために、欠陥クラス識別子を使用して参照されてもよい。
【0124】
例えば、一実施形態では、PLC320が、欠陥検出プロセスの結果を示すデータを、通信リンク322を介してワーカノードデバイス310から受け取るように構成される。例えば、オブジェクト検出コンポーネント314によって欠陥が検出された場合、欠陥データはPLC320に対して送られてもよい。PLC320は、欠陥許容範囲データを保存する。PLC320は、許容範囲データに照らして欠陥データを分析し、ターゲット物品306が欠陥あり(例えば、「NG」)か、許容範囲内(例えば、「OK」)かを判定する。PLC320は、許容範囲分析の結果を示す信号を、ワーカノードデバイス310に対して送ってもよい。PLC320によって欠陥データが許容範囲外であると判定される場合、PLC320は、ターゲット物品306の検査を停止してもよく、欠陥ありターゲット物品の除去および新しいターゲット物品の設置のための処理を開始してもよい。PLC320は、ターゲット物品の検査を停止するための制御信号を生成してもよく、ターゲット物品306の操作を担うアクチュエータに対して制御信号を送信してもよい。
【0125】
オブジェクト検出コンポーネント314が検査イメージにおいて欠陥を検出しなかった場合、ワーカノードデバイス310は(例えば、オブジェクト検出コンポーネント314を介して)、イメージにおいて欠陥が見つからなかった(すなわち「OK」)ことを示すオブジェクト検出プロセスの結果を示す信号を、PLC320に対して送る。「OK」メッセージを受け取ると、PLC320は、ターゲット物品306のアクチュエータまたはマニピュレータに対して制御信号を送り、ターゲット物品306の現在の検査位置を調整する(例えば、ターゲット物品306を「X」度だけ回転させる)。
【0126】
他の実施形態では、欠陥許容範囲データがワーカノードデバイス310で保存されてもよく、許容範囲分析がワーカノードデバイス310によって実行される。そして、ワーカノードデバイス310は、ターゲット物品が欠陥ありか否かを示す信号を、PLC320に対して送ってもよい。
【0127】
システム300は、オペレータデバイス324も含む。オペレータデバイス324は、通信リンク326を介して、ワーカノードデバイス310と通信可能に接続される。
【0128】
オペレータデバイス324は、ユーザインターフェースコンポーネント(または、モジュール)(例えば、ヒューマン/マシンインターフェース)を含む。オペレータデバイス324は、ワーカノードデバイス310から通信リンク326を介してデータを受け取る。受け取られるデータは、ワーカノードデバイス310のオブジェクト検出コンポーネント314およびゴールデンサンプルコンポーネント316からの出力データを含んでもよい。例えば、出力データは、アーティファクトデータを含むアノテーションされた検査イメージを含んでもよい。アーティファクトデータは、ワーカノードデバイス310によって特定された検査イメージにおけるアーティファクト(例えば、欠陥、異常)が、表示されるイメージにおいて視覚的に識別されうるように、位置情報(例えば、座標、バウンディングボックス)およびラベル情報を含んでもよい。
【0129】
ワーカノードデバイス310またはオペレータデバイス324は、コンポーネント314、316によって生成されるデータを備えるメタデータを、デジタル検査イメージに対して自動的に付与するための自動イメージアノテーションソフトウェアを含んでもよい。
【0130】
オペレータデバイス324は、アノテーションされた検査イメージを表示するユーザインターフェーススクリーンを生成するユーザインターフェースコンポーネントに対して、ワーカノードデバイス310からの出力データを提供する。例えば、検査イメージは、欠陥位置情報(例えば、バウンディングボックス座標、重心座標)、欠陥サイズデータ、および欠陥クラス情報等のコンポーネントによって生成される欠陥データを備えるメタデータと共にアノテーションされてもよい。
【0131】
オペレータデバイス324のユーザインターフェースコンポーネントは、オペレータからの入力を受け取るための一または複数のユーザインターフェース要素を描写してもよい。例えば、ユーザインターフェースコンポーネントは、オプションの選択を示すユーザ入力データを受け取るための「yes/no」または同様のバイナリオプションを提供してもよい。特定の場合、ユーザインターフェースは、アノテーションされた検査イメージにおいてワーカノードデバイス310によって検出された特定のオブジェクトを提示および強調してもよく、オブジェクトが異常であるか否かを尋ねてもよい(および、ユーザからの対応する入力を受け取ってもよい)。
【0132】
ユーザから受け取られる入力データに応じて、アノテーションされた検査イメージ(または、その部分)は、システム300において異なるルートが設定されてもよい。例えば、オペレータデバイス324のユーザインターフェースコンポーネントが、特定の入力データ(例えば、「no」のラベルが付されたユーザインターフェース要素のクリック等による、与えられたアーティファクトが異常であるか否かの質問に対する「no」との回答)を受け取った場合、オペレータデバイス324またはワーカノードデバイス310は、アノテーションされた検査イメージ(または、イメージデータのサブセット)を、それぞれ通信リンク332または333を介して、オブジェクト検出トレーニングデータベース330に対して送るように構成されてもよい。オブジェクト検出トレーニングデータベース330によって受け取られたデータは、ワーカノードデバイス310の一または複数の人工知能コンポーネントを更にトレーニングするために使用されうる更なるトレーニングデータセットのためのトレーニングサンプルとして記録されうる。
【0133】
システム300は、サーバノードデバイス334も含む。サーバノードデバイス334は、通信リンク336を介して、ワーカノードデバイス310と通信可能に接続される。特に、サーバノードデバイスは、通信リンク336を介して、ワーカノードデバイス310のオブジェクト検出コンポーネント314と通信している。サーバノードデバイス334は、Jetsonデバイス等を含んでもよい。
【0134】
サーバノードデバイス334は、ワーカノードデバイス310からビジュアル検査データを受け取る。ビジュアル検査データは、オブジェクト検出コンポーネント314からの出力データ(または、「欠陥データ」)を含む。欠陥データは、欠陥が見つかったか否か、検出された各欠陥についてのユニークな欠陥識別子、見つかった欠陥の数、ターゲット物品における欠陥の有無、欠陥の位置(バウンディングボックス座標等の欠陥位置データ)、欠陥クラス識別子等を含んでもよい。サーバノードデバイス334は、受け取られた欠陥データを分析するように構成されるビジュアル検査分析コンポーネントを含む。
【0135】
サーバノードデバイス334は、通信リンク340を介して、クライアントデバイス338と通信可能に接続される。いくつかの場合では、クライアントデバイス338は、サーバノードデバイス334を含んでもよい(すなわち、サーバノードデバイスは、クライアントデバイスのコンポーネントである)。
【0136】
サーバノードデバイス334は、通信リンク344を介して、分析データベース342とも通信可能に接続される。分析データベース342は、分析データおよびワーカノードデバイス310からのビジュアル検査出力データ(例えば、欠陥データ)を保存する。
【0137】
欠陥データは、データベース記録が生成され、検査された各ターゲット物品306について維持されるように、保存されてもよい。記録は、ターゲット物品自体から取得されてもよいターゲット物品識別子(例えば、カメラによって取得される物品上のコード)を含んでもよいし、サーバノードデバイス334によって自動的に生成されてもよい。様々な欠陥データは、ターゲット物品306についてのデータベース記録と関連付けられてもよいし、リンクされてもよい。各欠陥には、欠陥に関する他のデータがリンクされうるユニークな識別子が割り当てられてもよい。
【0138】
分析データは、サーバノードデバイス334によって、ビジュアル検査データから生成されてもよい。分析データは、統計分析技術をビジュアル検査データに対して適用することによって生成されてもよい。分析データは、多数のターゲット物品306に亘ってシステム300によってなされた判定についてのインサイトを、オペレータまたは他のユーザに対して提供してもよい。
【0139】
クライアントデバイス338は、ディスプレイ346を介して、グラフィカルユーザインターフェースを提供するように構成されるユーザインターフェースコンポーネントを含む。ユーザインターフェースコンポーネントは、サーバノードデバイス334から分析データを受け取り、ディスプレイ346上のグラフィカルユーザインターフェースを介して分析データを表示する。いくつかの場合では、サーバノードデバイス334がワーカノードデバイス310からビジュアル検査データを受け取ると、サーバノードデバイス334およびユーザインターフェースコンポーネントが、グラフィカルユーザインターフェースをリアルタイムで更新するように構成される。
【0140】
図4を参照して、他の実施形態に係る、ビジュアル検査システム400が示されている。ビジュアル検査システム400は、クラスタアーキテクチャを有する。システム400のコンポーネントに300シリーズの参照数字が割り当てられている場合、このようなコンポーネントは、図3を参照して記述されたような同様の数字のコンポーネントと同様に機能する。
【0141】
ビジュアル検査システム400は、クラスタ402を含む。クラスタ402は、複数のクラスタユニット404を含む。各クラスタユニット404は、カメラ304およびワーカノードデバイス310を含む。カメラ304およびワーカノードデバイス310は、図3のシステム300におけるように、通信リンク312を介して通信可能に接続される。
【0142】
クラスタ402における各ワーカノードデバイス310は、通信リンク322を介して、同じPLCデバイス320と通信可能に接続される。
【0143】
一実施形態では、2個と16個の間のワーカノードデバイス310と通信している一つのPLCデバイス320が存在するように、システム400が構成される。
【0144】
システム400は、サーバノードデバイス334を含む。各ワーカノードデバイス310は、リアルタイムストリーミングデータを提供するために、サーバノードデバイス334に接続される。
【0145】
サーバノードデバイス334は、ディスプレイ346を含むクライアントデバイス338と通信可能に接続される。
【0146】
システム400のクラスタアーキテクチャは、特定の利点を提供しうる。クラスタアーキテクチャは、デバイス310の組の管理を可能にしうる。一つのエッジデバイス(すなわち、ワーカノードデバイス310)が壊れた場合、全ての部品が交換可能であるため、ユーザは最小または零のダウンタイムでオペレーションを行いうる。加えて、クラスタアーキテクチャは、クラスタにおけるデバイスのグループの管理を容易にし、ビジュアル検査システムのスケールアップオファーを容易にする。
【0147】
図5を参照して、一実施形態に係る、ビジュアル検査パイプライン500が示されている。パイプライン500は、図3のワーカノードデバイス310等の一または複数のコンピューティングデバイスによって実現される。パイプライン500は、欠陥検出および分類および異常検出を実行する。
【0148】
パイプライン500は、検査イメージ502を含む。検査イメージ502は、カメラデバイス(例えば、図3のカメラデバイス304)によって取得される、図3のターゲット物品306等のターゲット物品のイメージデータを備える。検査イメージ502は、カメラデバイス304によって取得される単一のフレームでもよい。概して、パイプライン500は、与えられたターゲット物品306について複数の検査イメージ502を受け取るように構成されてもよい。しかし、いくつかの実施形態では、単一の検査イメージ502でも十分である。
【0149】
検査イメージ502は、通信リンク312を介してカメラデバイス304から受け取られてもよく、イメージが取得される度にリアルタイムで受け取られてもよい。
【0150】
検査イメージ502は、オブジェクト検出モジュール504に対して提供される。オブジェクト検出モジュール504は、オブジェクト検出タスクを実行するためのオブジェクト検出モデルを含む。オブジェクト検出モデルは、デジタルイメージ(検査イメージ)において特定のクラスの意味オブジェクトのインスタンスを検出するために、コンピュータビジョンおよびイメージ処理を実行する。概して、オブジェクト検出モジュール504は、検査イメージを入力として受け取り、オブジェクト検出モデル(例えば、CNN)を通じて検査イメージを渡し、オブジェクト検出(OD)出力データを生成する。OD出力データは、検査イメージ502において検出されたオブジェクトを記述するメタデータを含むアノテーションされた検査イメージの形態でもよい。
【0151】
オブジェクト検出モデルは、トレーニングされ、検査イメージ502において欠陥を見つけるように構成される。オブジェクト検出モデルは、全ての欠陥タイプについて一つのクラスを有する分類子として機能してもよい。一または複数の欠陥を含むイメージ502は、「NG」とラベリングされてもよい。欠陥が検出されなかったイメージは、「OK」とラベリングされてもよい。
【0152】
オブジェクト検出モデルは、検出された各オブジェクトについて、オブジェクトクラス、オブジェクト位置(例えば、バウンディングボックス座標)、および信頼スコアを出力するように構成されてもよい。例えば、検出された各オブジェクトについて、オブジェクト検出モデルは、検出されたオブジェクトの位置を囲むバウンディングボックス(位置データ)を表す四つの数字のアレイ(例えば、[上、左、下、右])を返してもよい。上の値は、イメージの上部からの矩形の上辺のピクセルでの距離を表す。左の値は、入力イメージの左部からの左辺の距離を表す。他の値(下および右)は、同様の態様で下辺および右辺を表す。
【0153】
「OK」とラベリングされた検査イメージ502は、欠陥分類子(例えば、欠陥分類モジュール520)に対して渡されない。
【0154】
「NG」とラベリングされた検査イメージ502は、オブジェクト検出モデルによって特定された一または複数の欠陥を含み、欠陥分類子(例えば、欠陥分類モジュール520)に対して渡される。
【0155】
「NG」検査イメージについてのOD出力データ518は、検査イメージデータおよび欠陥データを含んでもよい。欠陥データは、アノテーションデータまたは検査イメージ502のメタデータとして保存されてもよい。
【0156】
欠陥データは、検出された欠陥のリストを含んでもよい。検出された欠陥のリストは、オブジェクト検出器モデルによって検出された各欠陥に関するデータ(例えば、クラスラベル、バウンディングボックス座標等の位置データ)を含んでもよい。欠陥データは、オブジェクト検出器モデルによって検出された一または複数の欠陥に対応する一または複数のバウンディングボックスのリストを含んでもよい。各バウンディングボックスは、オブジェクト検出器モデルによって検出された欠陥を囲むxおよびy座標によって定義される検査イメージのエリアを表す。一実施形態では、欠陥データは、検出された各欠陥についての欠陥位置データ(例えば、バウンディングボックス座標)および欠陥クラスラベルを含む。
【0157】
欠陥データは、検査イメージ502についての欠陥カウント(すなわち、検出された欠陥の数)を含んでもよい。
【0158】
欠陥データは、検出された欠陥に割り当てられる欠陥識別子を含んでもよい。いくつかの実施形態では、オブジェクト検出モデルによって検出された欠陥が「候補欠陥」であることに注意すべきである。これは、例えば、欠陥クラスに割り当てられないオブジェクト検出器モデルによって検出された欠陥を表す「OK」クラスを、欠陥分類子が含む場合である。換言すれば、オブジェクト検出モジュール504によって検出された欠陥は、後にシステムの他のコンポーネント(例えば、欠陥分類子520、異常検出器モジュール540)によって欠陥でないと判定および特定されうる。
【0159】
オブジェクト検出モジュール504が検査イメージ502において欠陥を検出しなかった場合、オブジェクト検出モジュール504は、検査イメージ502についての「OK」信号またはメッセージを生成してもよい。「OK」信号は、PLC320等のシステムの一または複数のコンポーネントに対して送られてもよい。
【0160】
一実施形態では、オブジェクト検出モジュール504は、「800pi x 600pi」検査イメージに対するオブジェクト検出を40msで実行できる。
【0161】
図5では、オブジェクト検出モデルが畳み込みニューラルネットワーク(CNN)505である。他の実施形態では、オブジェクト検出モデルが、機械学習、深層学習、またはコンピュータビジョン技術を実装する任意の適切なオブジェクト検出器でもよい。
【0162】
CNN505は、複数のコンポーネントまたは層を含む。CNNコンポーネントは、オブジェクト提案コンポーネント506、フィーチャマップコンポーネント508、興味領域(ROI)プーリングコンポーネント510、完全接続層コンポーネント512、ソフトマックスコンポーネント514、およびリグレッサコンポーネント516を含む。ソフトマックスコンポーネント514は、イメージ502において検出された各オブジェクトについてのクラスラベル出力を提供する。リグレッサコンポーネント516は、イメージ502において検出された各オブジェクトについての最終バウンディングボックス座標を提供する。バウンディングボックス座標は、ターゲット位置(すなわち、検出されたオブジェクト)を定義する。バウンディングボックスは、矩形の左上の角におけるxおよびy軸座標、および、右下の角におけるxおよびy軸座標によって決定されてもよい矩形ボックスである。クラスラベルおよび最終バウンディングボックス座標の出力は、オブジェクト検出モジュール504によって、オブジェクト検出出力に組み合わされてもよい。オブジェクト検出出力は、信頼スコア(例えば、「0」および「1」の間)を含んでもよい。
【0163】
オブジェクト検出モジュール504は、検出された欠陥を含む検査イメージ502において興味領域を分離するために、検査イメージ502のサブセットをクロッピングまたは分離するように更に構成されてもよい。オブジェクト検出モジュール504は、欠陥領域に対応する検査イメージデータのサブセットを生成するために、イメージクロッピング機能等を使用してもよい。クロッピング機能は、オブジェクト検出モジュール504からバウンディングボックスおよび検査イメージ502を受け取り、バウンディングボックスに対応する検査イメージ502の部分(イメージデータのサブセット)をクロッピングするように構成されてもよい。結果として、クロッピング機能は、検査イメージのサブセットまたは部分である欠陥イメージ524を生成する。欠陥イメージ524は、オブジェクト検出モジュール504に対して入力された検査イメージのピクセル解像度と異なるピクセル解像度で生成されてもよいし、当該ピクセル解像度に変換されてもよい。一実施形態では、欠陥イメージ524が「200pi x 200pi」の範囲内である。オブジェクト検出モジュール504は、「800pi x 600pi」検査イメージ502から「200pi x 200pi」欠陥イメージを生成してもよい。
【0164】
複数の欠陥が検査イメージ502において検出された場合、オブジェクト検出モジュール504は、検出された各欠陥について欠陥イメージ502(例えば、バウンディングボックスによって定義される興味領域)を生成するためにクロッピング機能を実行する。
【0165】
オブジェクト検出モジュール504によって生成されるアノテーションされた検査イメージ518は、欠陥分類モジュール520に対して渡される。これは、アノテーションされた検査イメージ518から一または複数の欠陥イメージ524を生成し、欠陥イメージ524を欠陥分類モジュール520に対して渡すことを含んでもよい。
【0166】
欠陥分類モジュールは、欠陥分類モデル522を含む。欠陥分類モデル522は、ニューラルネットワークでもよい。パイプライン500における分類モデル522は、畳み込みニューラルネットワークである。ニューラルネットワークを使用する他の分類モデルまたは他の機械または深層学習技術が使用されてもよい。欠陥分類モデル522は、ラベリングされた欠陥イメージを備えるトレーニングデータを使用してトレーニングされてもよい。
【0167】
欠陥分類モジュール520は、トレーニングされた欠陥分類モデル522を使用して欠陥イメージ524を分析し、欠陥イメージ524に対するクラスラベルまたは割り当てを生成するように構成される。欠陥イメージ524は、クロッピングされた欠陥イメージでもよい。
【0168】
欠陥分類モデル522は、複数の出力ノードを備える出力層を含む。出力層における各出力ノードは、欠陥タイプに関連する欠陥クラスに対応する。例えば、カムシャフトビジュアル検査の例では、欠陥クラスが、多孔性、凹み、スクラッチ、巻き込みスケール、パッチ、クレージング、凹凸表面、およびインクルージョンの少なくともいずれかを含んでもよい。異なるサブタイプの欠陥が可能であり、欠陥分類子を一般化して同じクラスの下にサブタイプを分類するのは有用または効率的ではない場合等のいくつかの場合では、特定の欠陥タイプが複数のクラス(すなわち、より大きいクラスのサブクラス)を有してもよい。このような一つの例は、多孔性欠陥の異なるタイプについて異なるクラスがある場合である。分類モデル522は、無欠陥または「OK」クラスに対応する出力ノードも含む。
【0169】
欠陥分類モデル522は、アクティベーション機能(例えば、ソフトマックス)等を使用して、クラス割り当ての確率分布を生成するように構成されてもよい。アクティベーション機能は、潜在的な結果のリストの確率分布を表す(すなわち、欠陥が特定のクラスに属するという旨の)ベクトルを出力してもよい。欠陥分類モジュール520は、アクティベーション機能の出力に基づいて、特定の欠陥イメージに対してクラスラベルを割り当てるように構成される。例えば、欠陥分類モジュール520は、最高の確率スコアを有するクラスラベルを割り当ててもよい。いくつかの場合では、欠陥分類モジュール520が、与えられたクラス割り当てが行われるために満たされなければならない確率閾値を設定してもよい。いくつかの場合では、欠陥分類モジュール520が、欠陥クラスラベルを割り当て、信頼/確率レベルを含めてもよい。
【0170】
欠陥分類モジュール520の出力は、欠陥イメージ524にリンクされる欠陥クラスを含む。オブジェクト検出モジュール504が検査イメージ502において検出された各欠陥に対してユニークな欠陥IDを割り当て、欠陥IDにリンクされた欠陥データを保存した場合、クラス割り当ては、同様の態様で、欠陥IDリンクされ、当該欠陥IDと共に保存されてもよい。欠陥分類出力は、検出されたオブジェクトについての欠陥クラスラベルを確認するために(例えば、クラスラベルを比較することによって)、オブジェクト検出モジュール504によって使用されてもよい。
【0171】
図5のオブジェクト検出モジュール504および欠陥分類モジュール520は、ビジュアル検査システム300の2ステージオブジェクト検出モデルを表す。一実施形態に係る2ステージオブジェクト検出モデルの表現は、図6Aおよび6Bに示される。
【0172】
図6Aは、包括的な2ステージオブジェクト検出モデル600を示す。
【0173】
図6Bは、カムシャフトビジュアル検査実装の2ステージオブジェクト検出モデル650を示す。
【0174】
両方のモデル600、650の場合、2ステージオブジェクト検出モデルの第1ステージは、オブジェクト検出モジュール504によって実行されるオブジェクト検出(欠陥検出)を含む。
【0175】
2ステージオブジェクト検出モデル600、650の第2ステージは、オブジェクト検出モジュール504の出力518を使用して欠陥分類モジュール520によって実行される欠陥分類を含む。
【0176】
他の実施形態では、オブジェクト検出モジュール504が、1ステージオブジェクト検出モデルを実装してもよい。
【0177】
1ステージモデルの表現は、図7Aおよび7Bに示される。
【0178】
図7Aは、ビジュアル検査のための包括的な1ステージオブジェクト検出モデル700を示す。
【0179】
図7Bは、カムシャフトビジュアル検査実装の1ステージオブジェクト検出モデル750を示す。
【0180】
各モデル700、750の場合、1ステージオブジェクト検出モデルは、単一のモデルを使用してオブジェクト検出および欠陥分類を実行する。このような場合、オブジェクト検出モデル700、750は、欠陥分類モジュールの欠陥分類機能を実行するように構成される(すなわち、欠陥分類モジュールの機能が、オブジェクト検出モジュールの一部として実装される)。
【0181】
2ステージオブジェクト検出モデル600、650は、欠陥の検出(オブジェクト検出モデルを介した)の向上および検出された欠陥の分類(欠陥分類モデルを介した)の向上等の様々な利点を提供しうる。更に、2ステージオブジェクトは、フォルスポジティブ欠陥(例えば、オブジェクト検出モデルによって検出された「候補欠陥」であって、分類子によって欠陥でないと認められるもの)の特定を改善しうる。
【0182】
一実施形態では、2ステージオブジェクト検出モデル600、650が、複数の欠陥クラスの代わりに単一の欠陥クラス(NG)を含むように、オブジェクト検出モデルを修正する。これは、特定および分類される欠陥についてより大きいダイナミックレンジを提供し、乏しいクラス間モデルパフォーマンスを向上させうる。
【0183】
一実施形態では、欠陥分類モデル524が、CUDAおよびTensorRT(モデルサイズをスケールダウンさせるためのプルーニングおよび最適化ライブラリ)を有するResNet50を使用する。この欠陥分類モデルの構成は、分類スピードを顕著に高めうる。更に、この欠陥分類モデルの構成は、2ステージ検出および分類モデル600、650に対するリアルタイム検出要求を満たすことを容易にしうる。
【0184】
図8を参照して、実施形態に係る、鋼欠陥についての分類モデルパフォーマンスの比較が示されている。
【0185】
図8は、第1欠陥分類モデル802および第2欠陥分類モデル850を例示する。第2欠陥分類モデル850は、処理スピードの向上を示した第1分類モデル802の修正版である。分類モデル802、850は、それぞれ、欠陥イメージ524等の欠陥を含む入力イメージを分析し、入力イメージに対して欠陥クラスラベルを割り当てるように構成されている。
【0186】
欠陥クラスは、巻き込みスケール804、パッチ806、クレージング808、凹凸表面810、インクルージョン812、およびスクラッチ814を含む。
【0187】
入力イメージの例が、巻き込みスケール欠陥タイプ816、パッチ欠陥タイプ818、クレージング欠陥タイプ820、凹凸表面欠陥タイプ822、インクルージョン欠陥タイプ824、およびスクラッチ欠陥タイプ826について示されている。
【0188】
第2欠陥分類モデル850は、ResNet50、CUDA、およびTensorRTを含むように修正されている。TensorRTは、モデル802と比較して、モデル850のパフォーマンスを加速する。TensorRTは、リアルタイムスピードで実行されるように、メモリおよびGPUの効率が高いエンジンにモデル850を直列化する。TensorRTに基づくアプリケーション(例えば、モデル850)は、CPUのみのプラットフォームより最大で40倍速く推論中に実行されうる。TensorRTは、主要フレームワークにおいてトレーニングされたニューラルネットワークモデルを最適化し、低い精度を高い精度で較正し、ハイパースケールデータセンター、組み込み、または自動車製品プラットフォームへ展開しうる。TensorRTは、CUDA上に構築され、CUDA-Xにおけるライブラリ、開発ツールおよび技術を活用することで、ここで記述されるシステムによって実装される深層学習フレームワークのための推論の最適化を可能にする。TensorRTは、深層学習推論アプリケーションの生産展開のためのINT8およびFP16の最適化を提供する。低減された精密推論は、ビジュアル検査アプリケーションの製造において特に重要でありうる、アプリケーションレイテンシを顕著に低減する。
【0189】
第1欠陥分類モデル802は、「200 x 200」ピクセル入力イメージ毎に100msの平均スピードを示した。
【0190】
第2欠陥分類モデル850は、「200 x 200」ピクセルイメージ毎に3.34msの平均スピードを示した。
【0191】
示されるように、第2欠陥分類モデル850は、大きく改善した欠陥分類スピードおよびパフォーマンスを有する。改善した欠陥分類スピードおよびパフォーマンスは、検査時間を低減する。検査時間を低減することで、ビジュアル検査システムが製造ラインのサイクルタイムに遅れないようにできる。検査システムのサイクルタイムは、主要デザインファクタであり、AIアルゴリズムおよびモデルのスピードに直接的に依存する。この特定の例では、第2分類モデル850が、第1分類モデル802に対して2666%のスピードアップを示した。このように、ここで記述されるオブジェクト検出コンポーネント(特に、欠陥分類コンポーネント)の様々な実施形態は、スピードの改善を実現してリアルタイム欠陥検出(製造品質検査においてしばしば要求される)を可能にするために、同様の変更を分類モデルアーキテクチャに対して加えてもよい。再び図5を参照して、検査イメージ502は、ゴールデンサンプルモジュール526に対しても提供される。
【0192】
概して、ゴールデンサンプルモジュール526は、検査イメージ502およびゴールデンサンプルイメージを分析し、イメージの間の差(このような差は、「オブジェクト」、「アイテム」、「候補領域」、または「(候補)特徴」と表されてもよく、検出された差の位置を示す位置データによって記述されてもよい)を検出し、差を出力(例えば、アノテーションされた検査イメージ)として記録するように構成される。ゴールデンサンプルモジュール526の出力は、オブジェクト検出モジュール504の出力518(および、潜在的には、欠陥分類モジュール520の出力)と共に、異常および新しい欠陥を検出するために使用されうる。新しい欠陥は、検査イメージ502に存在するが、オブジェクト検出モジュール504によって認識されなかった(しかし、ゴールデンサンプルモジュール526によって特定された)欠陥と見なされる。
【0193】
ゴールデンサンプルモジュール526は、ゴールデンサンプルイメージ528を使用する。ゴールデンサンプルイメージ528(または、「ゴールデンサンプル」、または「ゴールデンイメージ」)は、検査イメージ502の「パーフェクト」または「クリーン」バージョンを表すことが意図されているリファレンスイメージである。つまり、ゴールデンサンプルイメージ528は、システムによって完璧であると見なされる。但し、ゴールデンサンプル528は、ゴールデンサンプルモジュール526による分析の目的にとって完璧なイメージを示す役割を担えばよく、実際に完璧であるとは限らず完璧である必要もない。換言すれば、ゴールデンサンプルイメージ528は、検査イメージ502と同じ位置で取得されたターゲット物品のパーフェクトまたはクリーンイメージを表すリファレンスを提供することが意図されている。
【0194】
ゴールデンサンプルモジュール526は、検査イメージ502を受け取る。検査イメージ502は、カメラ304またはオブジェクト検出モジュール504から受け取られてもよい。
【0195】
ゴールデンサンプルモジュール526は、検査イメージ502を生成モデル530に対して渡す。生成モデル530は、変分オートエンコーダ等のオートエンコーダでもよい。生成モデル530は、検査イメージ502からゴールデンサンプルイメージ528を生成するように構成される。生成モデル530を使用して生成されるゴールデンサンプルイメージ528は、「生成ゴールデンサンプル」と見なされてもよい。他の実施形態では、非生成ゴールデンサンプルイメージが、ゴールデンサンプルモジュール526によって使用されてもよい。
【0196】
オートエンコーダの実施形態では、生成モデル530が、エンコーダコンポーネント、コードコンポーネント、およびデコーダコンポーネントを含んでもよい。エンコーダコンポーネントは、入力(検査イメージ502)を圧縮してコードコンポーネントを生成する。デコーダコンポーネントは、コードコンポーネントのみを使用して入力を再構成する。この場合、用語「再構成する」は、検査イメージ502よりノイズが少ない検査イメージ502の表現の再構成を表す。好ましくは、再構成された表現はノイズを含まない。再構成された表現は、生成モデル530への入力として使用される与えられた検査イメージ502に対するゴールデンサンプルイメージ528である。
【0197】
生成モデル530は、エンコーディング方法、デコーディング方法、および出力をターゲットと比較するための損失関数を含んでもよい。
【0198】
概して、生成モデル530は、ノイズありおよびノイズなしデータが混ざった検査イメージ502を受け取る。生成モデル530は、モデル530がノイズとデータを判別できるようにモデル530の重みを設定するのに役立つトレーニング処理を使用してトレーニングされてもよい。一旦トレーニングされると、生成モデル530は、ノイズあり検査イメージ502が送られても、ノイズなし(または、ノイズが少ない)イメージを生成して出力する(すなわち、ゴールデンサンプルイメージ528)。検査イメージ502から除去されるノイズは、欠陥または基準と見なされる機械仕上げ表面からの任意の他の偏差でもよい。検査イメージ502に存在して生成モデル530が除去するように構成されるノイズは、様々なソースを有してもよい。ノイズは、例えば、異なるタイプの欠陥または例外的なオブジェクト、液滴(液体の)またはこのような液体からのしみでもよい。一般的に工場および他の製造施設の環境および空気は清浄ではなく、結果として、マシニング(例えば、CNCマシニング)後に金属片、クーラントの残り、油滴等がターゲット物品306(例えば、カムシャフト)上に残され、床の上に長時間に亘って留まる可能性がある。更に、ターゲット物品306は、洗われてもよいし、防錆剤または油等の保護材料で覆われてもよい。
【0199】
一実施形態では、生成モデル530が、任意の機能を学習する(例えば、標準的なオートエンコーダの場合のように)代わりに、入力データをモデリングする確率分布のパラメータを学習する。生成モデル530は、分布からの点をサンプリングする。
【0200】
ゴールデンサンプルモジュール526は、第1予備トレーニング済CNN532に対しても検査イメージ502を渡す。第1予備トレーニング済CNN532は、検査イメージ502から検査イメージフィーチャマップを生成する。
【0201】
ゴールデンサンプルモジュール526は、第2予備トレーニング済CNN534に対してゴールデンサンプルイメージ528を渡す。第2予備トレーニング済CNN534は、ゴールデンサンプルイメージ528からゴールデンサンプルフィーチャマップを生成する。
【0202】
そして、ゴールデンサンプルモジュール526は、フィーチャマップ分析536を使用する。フィーチャマップ分析536は、フィーチャマップにおける差を特定するために、検査イメージフィーチャマップおよびゴールデンサンプルフィーチャマップを比較することを含む。ゴールデンサンプルモジュール526は、差をフィーチャマップ差として保存する。
【0203】
ゴールデンサンプルモジュール526は、差を興味領域として特徴付け、バウンディングボックスを使用して興味領域を定義することによって、フィーチャマップ差を特定してもよい。差についてのバウンディングボックスデータ(座標)は、保存および検査イメージ502に対してリンクされうる。一実施形態では、ゴールデンサンプルモジュール526が、検査イメージ502およびフィーチャマップ分析536を介して特定されたフィーチャマップ差に対応する検査イメージ502の領域を特定するバウンディングボックスを備える、アノテーションされた出力イメージを生成する。
【0204】
ゴールデンサンプルモジュール526は、重心および形状分析コンポーネント538に対してフィーチャマップ差を渡す。
【0205】
重心/形状分析コンポーネント538は、フィーチャマップに閾値を適用することによって生成されるバイナリイメージを分析し、それらの塊の重心および境界ピクセルを見つける。ゴールデンサンプルモジュール526は、このような塊についての重心のピクセル座標を備える結果出力(ゴールデンサンプル出力)を生成するように構成される。
【0206】
図9Aおよび9Bを参照して、一実施形態に係る、ゴールデンサンプルモジュール526等によって実装されてもよい、変分オートエンコーダの表現例900、950が示されている。
【0207】
図9Aは、変分オートエンコーダの第1表現例900を示す。オートエンコーダは、オリジナルの入力イメージ904から、再構成された出力イメージ902を生成するために使用されうる。入力イメージ904は、図5の検査イメージ502でもよく、出力イメージ902は、図5のゴールデンサンプルイメージ528でもよい。
【0208】
オートエンコーダは、エンコーダ906、潜在表現908、およびデコーダ910を含む。
【0209】
示されるように、オリジナルの入力イメージ904は、エンコーダ906に対して提供される。エンコーダ806は、入力904の潜在表現908を生成するように構成される。潜在表現908は、デコーダ910に対して提供される。デコーダ910は、潜在表現908から再構成された出力902を生成するように構成される。
【0210】
図9Aは、変分オートエンコーダの第2表現例950を示す。
【0211】
オートエンコーダは、入力層952、第1隠れ層954、コード層956、第2隠れ層958、および出力層960を含む。入力層952および第1隠れ層954は、オートエンコーダのエンコーダユニット962を形成する。第2隠れ層958および出力層960は、オートエンコーダのデコーダユニット964を形成する。
【0212】
図9Aのオートエンコーダと同様に、入力イメージ(例えば、検査イメージ502)は、入力層952を介してエンコーダユニット962に対して提供されうる。エンコーダユニット962は、コード層956において入力イメージの後表現を生成する。潜在表現は、入力の潜在表現から再構成された出力(例えば、ゴールデンサンプルイメージ528)を生成するデコーダユニット964に対して、コード層956から提供される。
【0213】
変分オートエンコーダ950は、オーバーフィッテイングを避けるようにトレーニングが規則化されており、潜在空間が生成処理を可能にする良好な特性を有することを担保するオートエンコーダでもよい。
【0214】
標準的なオートエンコーダと同様に、変分オートエンコーダ950は、エンコーダ962およびデコーダ964を含むアーキテクチャであり、エンコード/デコードされるデータおよび初期データの間の再構成エラーを最小化するようにトレーニングされる。
【0215】
変分オートエンコーダでは、入力が潜在空間に亘る分布としてエンコードされてもよい。これは、潜在空間のいくつかの規則化を導入する。変分オートエンコーダ950は、第1エンコーディング入力によって潜在空間に亘る分布としてトレーニングされてもよい。次に、潜在空間からの点が分布からサンプリングされる。次に、サンプリングされた点がデコードされ、再構成エラーが演算される。次に、再構成エラーが、ネットワークを通じてバックプロパゲーションされる。但し、潜在空間のいくつかの規則化を導入するために、エンコーディング/デコーディング処理の僅かな変更が必要である。すなわち、単一の点としての入力がエンコードされる代わりに、潜在空間に亘る分布としてエンコードされる。
【0216】
図10を参照して、一実施形態に係る、ゴールデンサンプル処理および分析パイプライン1000が示されている。パイプライン1000は、図5のゴールデンサンプルモジュール526によって実装されてもよい。
【0217】
パイプライン1000は、ターゲット物品の検査イメージ1002で始まる。
【0218】
検査イメージ1002は、生成モデル1004に対して渡される。パイプライン例1000では、生成モデル1004が、図9Aおよび9Bの変分オートエンコーダ等の変分オートエンコーダである。生成モデル1004は、検査イメージ1002(すなわち、生成ゴールデンサンプルイメージ)から、ゴールデンサンプルイメージ1006を生成するように構成される。
【0219】
生成モデル1004は、生成モデルのエンコーダユニットの少なくとも一つの隠れ層およびエンコードされたデータまたは潜在表現を含むコード層を含むコンポーネント1008を含む。
【0220】
概して、検査イメージ1002は、生成モデル1004の入力層に対して渡され、ゴールデンサンプルイメージ1006を備える再構成された出力が、生成モデル1004の出力層で生成される。
【0221】
検査イメージ1002およびゴールデンサンプルイメージ1006は、それぞれゴールデンサンプル分析コンポーネント1010に対して渡される。概して、ゴールデンサンプル分析コンポーネント1010は、検査イメージ1002およびゴールデンサンプルイメージ1006の間の差を検出および特定するように構成される。
【0222】
ゴールデンサンプルイメージ1006は、第1予備トレーニング済畳み込みニューラルネットワーク1012に対して供給され、ゴールデンサンプルフィーチャマップが生成される。
【0223】
検査イメージ1002は、第2予備トレーニング済畳み込みニューラルネットワーク1014に対して供給され、検査イメージフィーチャマップが生成される。
【0224】
ゴールデンサンプル分析コンポーネント1010は、ゴールデンサンプルフィーチャマップおよび検査イメージフィーチャマップを比較し、フィーチャマップ比較1016を生成する。フィーチャマップ比較1016は、特徴の間の差のインスタンスを示す。このような差のインスタンスは、差が検出された位置のインジケータを含むアノテーションされた検査イメージとして表されてもよい。これは、差の位置を定義するバウンディングボックスを生成することを含んでもよい。
【0225】
概して、検査イメージ1002およびゴールデンサンプルイメージ1006の間で特定される差は、欠陥および異常という二つのカテゴリに大別されうる。欠陥は、オブジェクト検出モジュール504によって特定された欠陥(前に学習された欠陥または既知の欠陥)に対応してもよいし、オブジェクト検出モジュール504によって特定されなかったオブジェクト(「新しい」欠陥)でもよい。検査イメージ1002およびゴールデンサンプルイメージ1006の間の差の分類は、オブジェクト検出モジュール504の出力518(および、いくつかの場合では、分類モジュール520の出力)を使用して実行される。例えば、オブジェクト検出モジュール504によっても検出された(すなわち、オブジェクト検出出力において)、ゴールデンサンプルモジュール526によって特定された差は、ラベリングされてもよい。
【0226】
1018では、比較イメージにおいて特定された差に対して、重心および形状分析が実行される。重心および形状分析の出力は、オブジェクト検出出力(例えば、検出された欠陥を有するアノテーションされた検査イメージ、検出および分類された欠陥を有するアノテーションされた検査イメージ)と比較されうるアノテーションされた検査イメージを備える、ゴールデンサンプル出力を生成するために使用されてもよい。
【0227】
重心および形状分析1018の出力は、アノテーションされた異常検出イメージ1020を生成するために、欠陥検出(および、場合によっては欠陥分類)出力イメージと共に異常検出モジュール540内に供給されうる。出力イメージ1020を生成するために、オブジェクト検出出力において検出されたオブジェクトが、ゴールデンサンプル分析出力(すなわち、ゴールデンサンプルイメージ1006および検査イメージ1002の間の差)において検出されたオブジェクトと比較され、検出されたオブジェクトが既知または前に特定された欠陥、新しい(未知)欠陥、または異常のいずれであるかが判定される。出力イメージ1020は、差のそれぞれがバウンディングボックスによって特定されてラベリングされる、アノテーションされた検査イメージである。前に学習された欠陥1022、新たに学習された欠陥1024、および異常1026の例が、出力イメージ1020において示されている。
【0228】
パイプライン1000の他の実施形態では、生成モデルコンポーネント1008が、ゴールデンサンプル分析コンポーネント1010の代わりに使用されてもよい。このような一実施形態では、ゴールデンサンプルイメージ1006および検査イメージ1002が、それぞれ生成モデルコンポーネント1008に対して供給されてもよく、それぞれの潜在表現が生成されてもよい。そして、潜在またはエンコードされた表現は、ゴールデンサンプルイメージ1006および検査イメージ1002の間の差を判定するために比較されてもよい。差はゴールデンサンプルモジュールによって記録され、異常検出モジュール540に対して渡される。
【0229】
図11を参照して、ゴールデンサンプルモジュール526は、準教師ありまたは教師なし学習アルゴリズムを使用して異常の分布を学習してもよい。
【0230】
例えば、一実施形態では、ゴールデンサンプルモジュール526が、距離に基づく異常検出1102を使用してもよい。ゴールデンサンプルイメージデータ1106およびテストイメージ1108を含むプロット1104が示されている。距離に基づく異常検出1102は、ゴールデンサンプルイメージおよび新しいデータ(すなわち、テストイメージ1108)の間の距離1110に基づいて異常データを見つける。
【0231】
他の実施形態では、ゴールデンサンプルモジュール526が、教師なし異常検出1112を使用してもよい。既知のタイプの欠陥データ(すなわち、平常データ)1116、ノイズタイプのデータ(例外的なデータ)1118、および新規タイプの欠陥データ(例外的なデータ)1120を含むプロット1114が示されている。教師なし異常検出1112は、平常および異常データの前に観測されたサンプルに基づいて異常データを見つける。トレーニング後に生成されてもよい区分線1122が、平常データ1116の周りに示されている。
【0232】
実施形態に係る、本開示のビジュアル検査システムによって生成されるイメージを例示する図12から14を参照する。
【0233】
図12を参照して、ゴールデンサンプルのリファレンスバンクからのリファレンスイメージを使用するゴールデンサンプル処理と比較した、本開示の生成ゴールデンサンプル処理のパフォーマンスを例示するイメージ例1200が示されている。
【0234】
図12は、図3のビジュアル検査システム300(すなわち、カメラ304を使用するもの)等のビジュアル検査システムによって取得されたカムシャフトの検査イメージ1202を示す。
【0235】
イメージ1204は、検査イメージを使用するイメージ処理(例えば、登録に基づく)技術を使用して、ゴールデンサンプルイメージがゴールデンサンプルイメージのバンクから特定される非生成ゴールデンサンプルアプローチを使用したゴールデンサンプルイメージである。このゴールデンサンプル分析のバージョンは、ここで記述されるビジュアル検査システムによって実装されてもよいが、生成ゴールデンサンプルアプローチと比較して欠点を有する。例えば、このアプローチは、ターゲット物品の機械仕上げ表面の変動に敏感でありうる。
【0236】
非生成ゴールデンサンプルイメージ1204は、二つのスクラッチ1206、1208を含む。ゴールデンサンプルイメージ1204におけるこれらのスクラッチ1206、1208の存在は、ゴールデンサンプルアルゴリズム全体に対してエラーを導入しうる。
【0237】
イメージ1210は、本開示の生成ゴールデンサンプルアプローチを使用した、検査イメージ1202についてカスタマイズされた(または、生成型の)ゴールデンサンプルイメージである。イメージ1210は、生成モデル530等の生成モデル(オートエンコーダ)を使用して、検査イメージ1202から生成されたものである。生成モデルは、ノイズあり検査イメージがオートエンコーダに対して送られ、検査イメージにとってのゴールデンサンプルイメージとして機能しうるノイズなしイメージをオートエンコーダが生成できるように、検査イメージデータ1202においてノイズを認識するようにトレーニングされる。この場合、理解されるように、生成ゴールデンサンプル処理は、有利なことに、非生成ゴールデンサンプルイメージ1204において存在する二つのスクラッチ1206、1208を含まないゴールデンサンプルイメージ1210を生成する。このようにすることによって、ゴールデンサンプル分析およびビジュアル検査システムによって実装される異常検出プロセス全体の両方が改善される。
【0238】
図13を参照して、一実施形態に係る、本開示の生成ゴールデンサンプル処理を使用して生成されたゴールデンサンプルイメージ1302、1304、1306の複数の例1300が示されている。生成ゴールデンサンプル処理は、矢印1307によって示されている。イメージは、本開示のビジュアル検査システムを使用して視覚的に検査されているカムシャフトである。
【0239】
ゴールデンサンプルイメージ1302、1304、1306は、それぞれ検査イメージ1308、1310、1312から、生成ゴールデンサンプル処理1307を使用して生成されている。
【0240】
例示されるように、検査イメージ1308は、二つの欠陥(または、ノイズエレメント)1314および1316を含む。検査イメージ1310は、二つの欠陥1318、1320を含む。検査イメージ1312は、二つの欠陥1322および1324を含む。
【0241】
生成ゴールデンサンプル処理1307は、検査イメージ1308、1310、1312から欠陥を除去しながら、ゴールデンサンプルイメージ1302、1304、1306を再構成した。ゴールデンサンプル処理1307は、ゴールデンサンプルイメージ1302、1304、1306を生成するために、検査イメージ1308、1310、1312からノイズを除去する。
【0242】
ゴールデンサンプルイメージ1302、1304、1306は、各検査イメージ1308、1310、1312と共に、更なるゴールデンサンプル分析(その出力は、異常検出のために使用される)のために使用されうる。
【0243】
図14を参照して、実施形態に係る、非生成および生成ゴールデンサンプル処理を使用したゴールデンサンプルイメージの複数の例1400が示されている。イメージは、本開示のビジュアル検査システムを使用して視覚的に検査されているカムシャフトである。
【0244】
イメージ1402aおよび1402bは、ゴールデンサンプルリファレンスバンクアプローチを使用するゴールデンサンプルモジュール526による使用のための非生成ゴールデンサンプルイメージの例である。非生成プロセスは、例えば、検査イメージおよび比較のために最も近いものを判定するための一または複数のゴールデンサンプルイメージについての登録等のイメージ処理技術の適用を含んでもよい。
【0245】
イメージ1404aおよび1404bは、本開示の生成ゴールデンサンプル処理を使用して生成される、ゴールデンサンプルモジュール526による使用のための生成ゴールデンサンプルイメージの例である。
【0246】
非生成ゴールデンサンプルイメージ1402aは、フォルスネガティブ検出1406およびフォルスポジティブ検出1408を含む。
【0247】
対照的に、生成ゴールデンサンプルイメージ1404aは、フォルスネガティブまたはフォルスポジティブ(イメージ1402aに存在するものを含む)のいずれも含まない。
【0248】
イメージ1402aおよび1404aは、同じイメージについてのゴールデンサンプルの二つの異なるバージョンからの分析を提供する。イメージ1402bおよび1404bは、同じ入力イメージについての当該バージョン1402a、1404aの出力フィーチャマップ(すなわち、非生成ゴールデンサンプルフィーチャマップおよび生成ゴールデンサンプルフィーチャマップ)である。
【0249】
イメージ1402bは、非生成ゴールデンサンプル技術を使用して生成される。イメージ1404bは、生成ゴールデンサンプル技術を使用して生成される。イメージ1404bの場合、生成モデルはゴールデンサンプルイメージを合成するために使用される。1402bの場合、「OK」ターゲット物品(カムシャフト)の実際のイメージが使用される。
【0250】
理解されるように、イメージ1402aは、フォルスネガティブ1406およびフォルスポジティブ1408を含む。イメージ1402におけるカムシャフトは、このセグメントにおいてラバーシールリングを含み、その結合点(「フォルスポジティブ」と呼ばれる赤いボックス内のエリア)が設置の際にカムシャフトの周りのどこかに接触しうる。合成ゴールデンサンプル1404aは、検査されたイメージと正確に同じ位置に、このクラックを生成できる。フォルスポジティブ1408の理由は、検査されたイメージおよび検査されたイメージと異なりうる結合点を有する「OK」部分の実際のイメージのピクセル単位での比較を実行しながら、非生成ゴールデンサンプル技術が位置の変動性を考慮できないためである。
【0251】
このような課題のために、非生成ゴールデンサンプル技術は、小サイズ欠陥のクラスタ等の微小な異常に対して低い感度を有する。これは、なぜカムシャフトに亘る凹みのパッチを検出できなかった(すなわち、フォルスネガティブ1406)かも説明する。
【0252】
再び図5を参照して、パイプライン500は、異常検出モジュール540を更に含む。
【0253】
異常検出モジュール540は、オブジェクト検出モジュール504およびゴールデンサンプルモジュール526からの出力を受け取って処理する。
【0254】
いくつかの場合では、異常検出モジュール540が、欠陥分類モジュール520によって判定された欠陥クラス情報を受け取ってもよい。
【0255】
このように、パイプライン500では、オブジェクト検出モジュール504、欠陥分類モジュール520、およびゴールデンサンプルモジュール526のそれぞれが、異常検出モジュール540と通信可能に接続されるように示されている。但し、特定の実装では、オブジェクト検出モジュール504および欠陥分類モジュール520のいずれかのみが、異常検出モジュール540に対して情報を渡してもよいと理解される。
【0256】
一実施形態では、オブジェクト検出モジュール504を実装する同じデバイスに、異常検出モジュール540が実装される。
【0257】
異常検出モジュール540は、ゴールデンサンプルモジュール526から、アノテーションされた検査イメージを備えるゴールデンサンプル出力を受け取る。アノテーションされた検査イメージは、フィーチャマップ分析536の間に特定されたゴールデンサンプルイメージ528および検査イメージ502の間の差を備える、検出されたアイテムを含む。検出されたアイテムは、検出された差を含む興味領域を定義するバウンディングボックスを使用して記述されてもよい。
【0258】
異常検出モジュール540は、それぞれがオブジェクト検出モジュール504によって検出された欠陥を含む、一または複数のバウンディングボックスを備えるオブジェクト検出モジュール504から、オブジェクト検出出力(例えば、オブジェクト検出出力518)を受け取る。異常検出モジュール540によって受け取られるオブジェクト検出出力は、欠陥分類モジュール520によって生成される欠陥分類データ(すなわち、欠陥クラスラベル)を更に含んでもよい。
【0259】
異常検出モジュール540は、出力の間の差を特定するために、ゴールデンサンプル出力およびオブジェクト検出出力を分析する。この分析は、アノテーションされた検査イメージの比較を含んでもよい。例えば、ゴールデンサンプル出力およびオブジェクト検出出力のそれぞれは、各モジュール504、526によって判定される興味領域を定義するバウンディングボックス等の様々なメタデータまたはアノテーションデータでアノテーションされた検査イメージ502を備えてもよい。異常検出モジュール540は、ゴールデンサンプル出力およびオブジェクト検出出力の間に差があるか否かを判定するために、アノテーションデータ(例えば、バウンディングボックス座標)を比較してもよい。
【0260】
ゴールデンサンプルおよびオブジェクト検出出力の両方において現れるアイテムは、異常検出モジュール540によって確認欠陥としてタグ付けされてもよい。このような確認欠陥はオブジェクト検出モジュール504によって検出されているため、「既知の欠陥」または「前に学習された欠陥」(すなわち、システムによって認識または学習されている)と見なされてもよい。このように、異常検出モジュール540は、オブジェクト検出モジュール504の結果に対してダブルチェックを提供する。いくつかの実施形態では、異常検出モジュール540がアイテムを確認欠陥としてタグ付けするために、出力(および、そこで特定されるアイテムまたは「オブジェクト」または「候補領域」)が同じである必要はない。例えば、異常検出540は、許容可能ピクセル差分によって判定されてもよい略同じ位置を有するアイテムを許容および確認するように構成されてもよい。他の実施形態では、異常検出モジュール540が欠陥を許容または確認するために、アイテムが同じ位置を有する必要はない。
【0261】
一実施形態では、異常検出モジュール540が、モジュール504、536が同じオブジェクトを検出したか否かを判定するために、ゴールデンサンプルモジュール526およびオブジェクト検出モジュール504によって提供されるオブジェクト位置およびクラス情報を比較するように構成される。異常検出モジュール540は、オブジェクト位置およびクラス情報のみを比較してもよい。
【0262】
以上で示されたように、異常検出モジュール540は、変動耐性を有するように構成されてもよい。特定の実施形態では、異常検出モジュール540が、ゴールデンサンプル出力からの候補異常領域(オブジェクト)の重心が、オブジェクト検出出力からのオブジェクトバウンディングボックスの内部に来るか否かを判定する。異常検出モジュール540は、重心がオブジェクトバウンディングボックス内に来る場合、オブジェクトを欠陥として確認する。異常検出モジュール540は、重心がオブジェクトバウンディングボックス内に来ない場合、オブジェクトを異常として特定およびフラグ付けしてもよい。
【0263】
ゴールデンサンプルおよびオブジェクト検出出力の間の差は、異常検出モジュール540によってフラグ付けされ、ユーザ(例えば、エキスパート)に対してレビューのために提示されてもよい。これは、ユーザデバイス上に表示されるユーザインターフェースにおける差を含むアノテーションされた検査イメージを介した差の提示を含んでもよい。ゴールデンサンプル出力に存在するがオブジェクト検出出力に存在しないアイテムは、新しい欠陥タイプ(すなわち、現在のオブジェクト検出器モデル508によって検出されない欠陥タイプ)でもよいし、異常(非欠陥変動またはアーティファクト)でもよい。
【0264】
ゴールデンサンプルモジュール526によって検出されるが、オブジェクト検出モジュール504によって検出されないアイテム(つまり、二つの出力の間の差)は、ユーザインターフェースにおいて提示されてもよい。例えば、ユーザインターフェースは、差についての詳細を含む検査イメージ502のアノテーションされたバージョンまたはその部分を提示し、新しいアイテム(すなわち、差)を新しい欠陥タイプまたは異常として特定するためのユーザ入力を要求してもよい。ユーザは、ユーザインターフェースにおいてアノテーションされた検査イメージを視認でき、当該アイテムを異常または新しい欠陥として特定する入力データを提供できる。新しい欠陥タイプの場合、ユーザインターフェースは、欠陥タイプを示す欠陥クラスラベルを備えるユーザ入力データを受け取るためのユーザインターフェースエレメントを提示するように構成されてもよい。
【0265】
そして、異常検出モジュール540は、ユーザから受け取られた入力データに基づいて、新しい検出されたアイテムを異常または新しい欠陥タイプとしてラベリングまたはタグ付けしてもよく、この情報をシステムに保存してもよい。これは、異常についてのユニークな異常識別子または新しい欠陥についての新しい欠陥識別子を含んでもよい。新しい欠陥タイプを含むアノテーションされた検査イメージは、トレーニングサンプル(新しい欠陥クラス等のラベル情報を含んでもよい)として特定またはタグ付けされてもよい。トレーニングサンプルは、モデル508、522が新しい欠陥タイプを検出および/または分類するように更新されうるように、オブジェクト検出モデル508および/または欠陥分類モデル522の更なるトレーニングのためのトレーニングデータとして使用されうる。このようなモデル508、522の更新は、定期的に行われてもよい。異常検出モジュール540は、新しい欠陥タイプを含むものとして特定された検査イメージを、後続のトレーニングにおける使用のためにトレーニングデータベースに対して送るように構成される。
【0266】
異常検出モジュール540および異常検出パイプライン500全体は、様々な利点を提供しうる。異常検出モジュール540は、異常の検出を可能にする。異常検出モジュール540は、新しい欠陥の特定を可能にし、進行中のプロセスの一部として、新しい欠陥を認識するためのモデルの後続のトレーニングを可能にする。異常検出モジュール540は、システムのオブジェクト検出504および欠陥分類520コンポーネントのための、フォルスポジティブ等のエラーを低減しうるダブルチェックメカニズムも提供しうる。
【0267】
パイプライン500の一実施形態では、オブジェクト検出モジュール504が、オブジェクト検出モデル505によって検出された各オブジェクトについてのオブジェクト位置(例えば、バウンディングボックス座標、オブジェクト位置データ)およびオブジェクトクラスを含む出力(例えば、検出されたオブジェクトのリスト)を生成する。分類モジュール520は、分類モデル522を使用して、オブジェクト(欠陥)クラスを含む出力を生成する。そして、分類モジュール520は、オブジェクト検出モジュール504に対して、オブジェクトクラス情報を供給してもよい。オブジェクト検出モジュール504は、クラス割り当てがマッチするか否かを判定するために、オブジェクト検出モデル505からのオブジェクトクラスおよび分類モデル522からのオブジェクトクラスを比較する。モジュール504、520のクラス割り当てがマッチした場合、オブジェクト検出モジュール504は、異常検出モジュール540に対して、オブジェクトクラス情報およびオブジェクト位置情報を、ゴールデンサンプル出力との比較のために渡す。
【0268】
実施形態に係る、カムシャフトビジュアル検査のための異常検出パイプライン1500および1600をそれぞれ例示する図15および16を参照する。
【0269】
異常検出パイプライン1500、1600は、カムシャフトビジュアル検査への適用を含む以下で議論される違いを例外として、図5を参照して記述された異常検出パイプライン500と同様である。繰返しを避けるために、同様の内容は議論されない。従って、以下で議論される違いを除いて、パイプライン500に関して記述された全ての内容が、パイプライン1500、1600にも適用されうる。
【0270】
図15および16では、図5のパイプライン500のエレメントおよびコンポーネントと同様の機能を有するエレメントおよびコンポーネントが、それぞれ1000および1100が加えられた同様の参照番号で表される(すなわち、1500シリーズおよび1600シリーズの参照数字が使用される)。換言すれば、パイプライン500のエレメントまたはコンポーネントが参照番号5xxによって表される場合であって、エレメントまたはコンポーネントがパイプライン1500またはパイプライン1600においてカウンターパートを有する場合、パイプライン1500、1600におけるカウンターパートのエレメントまたはコンポーネントは、それぞれ参照番号15xxおよび16xxによって表される。
【0271】
図15を参照して、異常検出パイプライン1500は、検査イメージ1502で始まる。検査イメージ1502は、カムシャフト上の特定の位置におけるカムシャフトである。
【0272】
検査イメージ1502は、オブジェクト検出モジュール1504に供給される。オブジェクト検出モジュール1504は、第1ノードコンピューティングデバイス(Jetson 1)において実装される。オブジェクト検出モジュール1504は、「800 x 600」のピクセル解像度を有する検査イメージ1502を処理するように構成される。オブジェクト検出モジュール1504は、検査イメージ1502を40msで処理してもよい。
【0273】
オブジェクト検出モジュール1504は、オブジェクト提案コンポーネント1506、フィーチャマップコンポーネント1508、ROIプーリングコンポーネント1510、完全接続層コンポーネント1512、ソフトマックスコンポーネント1514、およびリグレッサコンポーネント1516を備えるCNNを含む。
【0274】
オブジェクト検出モジュール1504は、オブジェクト検出出力イメージ1518を生成するためにCNNを使用する。この場合、オブジェクト検出出力イメージ1518は、検出された欠陥1519を含む。検出された欠陥1519は、出力イメージ1518におけるバウンディングボックスによって特定される。出力イメージ1518は、検出された欠陥1519を記述するメタデータ(例えば、バウンディングボックス情報)でアノテーションされている。
【0275】
出力イメージ1518は、オブジェクト検出モジュール1504から異常検出モジュール1540に対して渡される。
【0276】
出力イメージ1518は、欠陥分類モジュール520または1620等の欠陥分類モジュール(不図示)にも供給されうる。出力イメージ1518を欠陥分類モジュールに対して供給することは、出力イメージ1518全体または検出された欠陥1519に具体的に対応する部分(すなわち、欠陥1519を含む興味領域)を供給することを含んでもよい。検出された欠陥1519を含む部分のみが欠陥分類モジュール1520に対して渡される場合、バウンディングボックス情報等を使用して、興味領域が出力イメージ1518から効果的にクロッピングされてもよい。
【0277】
検査イメージ1502は、ゴールデンサンプルモジュール1526に対しても渡される。ゴールデンサンプルモジュール1526は、第2ノードコンピューティングデバイス(Jetson 2)において実装される。ゴールデンサンプルモジュール1526は、特定のピクセル解像度(例えば、「100 x 300pi」)を有する検査イメージ1502およびゴールデンサンプルイメージ1528を処理するように構成される。ゴールデンサンプルモジュール1526は、検査イメージ1502およびゴールデンサンプルイメージ1528を36msで処理してもよい。オブジェクト検出モジュール1504のためのCNNアーキテクチャは、ゴールデンサンプルモジュール1526と異なっていてもよい。二つのネットワークについての入力サイズ要求は、ネットワークのデザインによって定まるため、いくつかの場合では、各ネットワークの入力要求にマッチするように、モジュール1504、1526の一方または両方によって入力イメージがリサイズされてもよい。
【0278】
ゴールデンサンプルモジュール1526は、第1および第2予備トレーニング済CNN1532、1534に対して、検査イメージ1502およびゴールデンサンプルイメージ1528についてのフィーチャマップを生成するために、それぞれ検査イメージ1502およびゴールデンサンプルイメージ1528を渡す。フィーチャマップは、フィーチャマップ分析1536を使用して比較される。フィーチャマップ分析1536は、フィーチャマップ分析1536によって生成されてもよい出力イメージの一例を示す。理解されるように、特定の差(検出されたアイテム)が検出されている。フィーチャマップ分析1536の出力は、重心および形状分析コンポーネント1538に対して提供される。
【0279】
ゴールデンサンプルイメージ1528は、図5の生成モデル530等の生成モデルによって生成される生成ゴールデンサンプルイメージでもよい。他の実施形態では、ゴールデンサンプルイメージ1528は、非生成ゴールデンサンプルイメージでもよい。例えば、ゴールデンサンプルイメージ1528は、イメージ登録プロセスに基づいて、ゴールデンサンプルイメージのリファレンスバンクから取り出されてもよい。これは、検査イメージ1502が取得された位置(例えば、カムシャフトの回転の角度または位置)を特定することと、ゴールデンサンプルモジュール1526による使用のためのゴールデンサンプルイメージ1526を特定するために、リファレンスバンクからの一または複数の候補ゴールデンサンプルイメージのイメージ登録を実行することと、を含んでもよい。
【0280】
重心および形状分析コンポーネント1538の出力は、ゴールデンサンプルモジュール1526から異常検出モジュール1540に対して渡される。
【0281】
いくつかの場合では、データのサブセットのみが、モジュール1504、1526のそれぞれから、異常検出モジュール1540に対して渡されてもよい。例えば、オブジェクト検出モジュール1504およびゴールデンサンプルモジュール1526は、オブジェクト検出モジュール1504によって検出された欠陥およびゴールデンサンプルモジュール1526によって特定された検出されたアイテムの比較を実行するために必要な情報のみを送ってもよい。この情報は、例えば、バウンディングボックスまたはイメージ(例えば、サイズ、欠陥クラス)をアノテーションする他のイメージメタデータを含んでもよい。
【0282】
オブジェクト検出イメージ1518およびゴールデンサンプルモジュール1526の出力を受け取った異常検出モジュール1540は、出力に対する比較を実行する。これは、オブジェクト検出モジュール1504またはゴールデンサンプルモジュール1526によって検出されたオブジェクトを記述するメタデータを含む、アノテーションされた検査イメージ1542を生成することを含む。オブジェクトは、オブジェクトが既知の欠陥と判定されたか否か、および、既知の欠陥以外のオブジェクトが新しい欠陥または異常であるか否かに応じた識別子でタグ付けされてもよい。
【0283】
アノテーションされたイメージ1542は、オブジェクト1544、1546、および1548を含む。
【0284】
オブジェクト1544は、オブジェクト検出モジュール1504によって特定された検出された欠陥1519に対応し、ゴールデンサンプル出力を介して確認されている。
【0285】
オブジェクト1546および1548は、オブジェクト検出モジュール1504によって検出されなかったが(イメージ1518における当該位置でのバウンディングボックスの欠如によって示されるように)、ゴールデンサンプルモジュール1526によって特定された。そこで、異常検出モジュール1540は、人間エキスパートによるレビューのために、オブジェクト1546および1548にフラグ付けする。
【0286】
前述されたように、オブジェクト1546および1548は、新しい欠陥タイプまたは異常でもよい。異常検出モジュール1540は、アノテーションされたイメージ1542(または、オブジェクト1546、1548を含む部分またはそのメタデータ)のユーザインターフェースを介した提示をトリガする。ユーザインターフェースは、オブジェクト1546を新しい欠陥または異常としてラベリングしたユーザから、入力データを受け取るように構成される。この場合、オブジェクト1546は新しい欠陥タイプとしてラベリングされており、オブジェクト1548は異常としてラベリングされている。
【0287】
新しい欠陥タイプを検出するためのオブジェクト検出モジュール1504のトレーニングまたは再トレーニングのために、オブジェクト1546が新しい欠陥タイプとしてラベリングされると(例えば、ユーザ入力を介して)、異常検出モジュール1540は、イメージ1542またはオブジェクト1546を含む部分を、オブジェクト検出トレーニングデータベースに対して送るように構成されてもよい。
【0288】
図16を参照して、異常検出パイプライン1600は、パイプライン1000と実質的に同様の態様で動作する。パイプライン1600は、欠陥分類モジュール1620を更に含む。欠陥分類モジュール1620は、オブジェクト検出モジュール1620と同じノードデバイス(Jetson 1)上に実装される。欠陥分類モジュール1620は、「200 x 200」のピクセル解像度でイメージを処理する。欠陥分類モジュール1620は、イメージを4msで処理できる。
【0289】
欠陥分類モジュール1620は、オブジェクト検出モジュール1604から欠陥イメージ1624を受け取る。欠陥イメージ1624は、オブジェクト検出モジュール1604によって特定された検出された欠陥1619を含む。
【0290】
欠陥イメージ1624は、CNNを備える分類モデル1622に対して渡される。
【0291】
分類モデル1622は、欠陥イメージ1624を分析し、欠陥についてのクラスラベル(欠陥クラス)を生成する。
【0292】
システムは、オブジェクト検出ネットワークおよび分類ネットワークを使用して確実性チェックを実行するように構成されてもよい。一実施形態では、オブジェクト検出器が、分類ネットワークが同じオブジェクトクラスを見ていることを確実にするために、「オブジェクト位置+オブジェクトクラス」を分類ネットワークに対して渡す。システムによって実装される確実性チェックメカニズムは、二つの異なるネットワーク(オブジェクト検出および分類)が、同じ相対位置で同じ欠陥クラスを判定するという確実性を提供する。二つのネットワークによって生成されるクラスの間に乖離があった場合、判定は不確実であり続けるべきではない。不確実な検出は、システムによって(例えば、オブジェクト検出モジュール1604を介して)将来の調査のためにフラグ付けされてもよく、システムはプロセスを継続してもよい。
【0293】
欠陥クラス情報1625およびオブジェクト検出出力1618は、ゴールデンサンプルモジュール1626の出力との分析のために、異常検出モジュール1640に対して渡される。オブジェクト検出モジュール1604および/または分類モジュール1620によって送られる情報は、欠陥クラスおよび確実性チェック情報を含んでもよい。
【0294】
図17を参照して、本開示によって提供される異常検出アルゴリズムの様々な実施形態のグラフィカル表現1700が示されている。以下では、特定のパフォーマンス特性を参照しながら議論される。
【0295】
四つの実施形態(実施形態1、実施形態2、実施形態3、および実施形態4)が示されている。実施形態のそれぞれでは、異常検出アルゴリズムが、イメージ取得ステージ、オブジェクト検出ステージ、およびゴールデンサンプルステージを含む。
【0296】
グラフィカル表現1700は、開始時刻が「0」に等しく、それに対して実施形態1~4の異常検出アルゴリズムのスピードパフォーマンスが例示される時間軸1702を含む。
【0297】
実施形態1は、イメージ取得ステージ1704、オブジェクト検出ステージ1706、およびゴールデンサンプルステージ1708を含む。実施形態1は、ノードコンピューティングデバイス(Jetson 1)上で実行される主処理スレッド1710を更に含む。イメージ取得1706、オブジェクト検出1708、およびゴールデンサンプル1710ステージは、直列化されたプロセスの一部として、主スレッド1710において順番に実行される。イメージ取得ステージ1704は25msであり、オブジェクト検出ステージ1706は40msであり、ゴールデンサンプルステージ1708は62msである。異常検出アルゴリズムの総時間は、イメージ毎に127msである。
【0298】
実施形態2は、イメージ取得ステージ1712、オブジェクト検出ステージ1714、およびゴールデンサンプルステージ1716を含む。実施形態2は、実施形態1のゴールデンサンプルステージ1708に対する変更を含む。実施形態2は、ノードデバイス(Jetson 1)上で実行される主処理スレッド1718も含む。ゴールデンサンプルの最適化は、ゴールデンサンプルステージ1716の時間を62msから36msに低減し、異常検出アルゴリズムの全処理時間を、イメージ毎に127msから101msに低減した。これは、+25%の実行時間スピード改善を提供した。
【0299】
実施形態3は、イメージ取得ステージ1720、オブジェクト検出ステージ1722、およびゴールデンサンプルステージ1724を含む。異常検出アルゴリズムの実施形態3は、実施形態2の異常検出アルゴリズムの並列化を更に含む。実施形態3は、第1ノードデバイス(Jetson 1)上で実行される第1主処理スレッド1726、第1ノードデバイス上で実行される子処理スレッド1728、および第2ノードデバイス(Jetson 2)上で実行される第2主処理スレッド1730を含む。第1主処理スレッド1726は、イメージ取得ステージ1720およびオブジェクト検出ステージ1722を含む。第2主スレッド1730は、ゴールデンサンプルステージ1724を含む。時間の低減をもたらす最適化には、他のプログラミング言語におけるコードの実装が含まれる。実施形態3における異常検出アルゴリズムの並列化は、全処理時間をイメージ毎に101msから65msに低減した(+55%の実行時間スピード改善を提供した)。
【0300】
一実施形態では、Jetson 1(第1ノードデバイス)上で実行される第1主スレッドが、イメージ取得およびオブジェクト検出ネットワークを実行する。第1主スレッドは、子スレッドを生成して、Jetson 2(第2主スレッドを実行するゴールデンサンプルモジュールを有する第2ノードデバイス)に対して検査イメージを送ってレスポンスを待つ。子スレッドで「待つ」が発生するため、子スレッドからのレスポンスのための準備ができるまで(すなわち、Jetson 1からのリプライが何であったか)、第1主スレッドはコストがかかる演算を継続できる。この場合の「待つ」は、子スレッドがJetson 2からのリプライを待つことである。「送る」は、子スレッドがイメージをJetson 2に対して送ることである。「受け取る」は、子スレッドがJetson 2からのレスポンスを受け取ることである。「スレッド合流」は、第1主スレッドが、そのメモリを解放するためにスレッドを閉じる前に、子スレッドにレスポンスデータの提供を依頼することである。「送る」および「受け取る」は、H264圧縮コーデックを使用する転送イメージのエンコーディングおよびデコーディングのオペレーションである。
【0301】
実施形態4は、イメージ取得ステージ1732、オブジェクト検出ステージ1734、欠陥分類ステージ1736、およびゴールデンサンプルステージ1738を含む。実施形態4は、120 FPSのカメラおよびオブジェクト検出ステージ1734および欠陥分類ステージ1736を含む2ステージオブジェクト検出アーキテクチャを使用する実施形態3の修正版である。実施形態4は、第1ノードデバイス上の第1主処理スレッド1740、第1ノードデバイス上の子処理スレッド1742、および第2ノードデバイス上の第2主処理スレッド1744を含む。第1主処理スレッド1740は、イメージ取得ステージ1732、オブジェクト検出ステージ1734、および欠陥分類ステージ1736を含む。第2主処理スレッド1744は、ゴールデンサンプルステージ1738を含む。
【0302】
実施形態4におけるカメラに対する改良によって、取得時間が改善した。先の実施形態は、41 FPSのカメラを使用していた。41 FPSのカメラでは、センサからソフトウェアまでイメージ情報を取得するのに24.3ミリ秒かかる。120 fpsのカメラは、同じプロセスを8.33ミリ秒だけで行える。何千ものイメージに亘って、この余分な時間が蓄積し始める。このように、全パイプラインのイメージ取得ステージにおける可能な限り多くの時間は、取得されたデータの前処理/推論/後処理のためのより多くの時間的余裕を提供できる。
【0303】
例示されるように、実施形態4は、2ステージオブジェクト検出アーキテクチャの一部としての第1主処理スレッド1740に、追加的な分類ステージ1736を含む。分類ステージ1736は、イメージ毎に4msの処理時間を示した。第1主処理スレッド1740のイメージ取得ステージ1732は、実施形態3におけるイメージ毎に25msから低減した10msの処理時間を示した。実施形態4は、実施形態3のイメージ毎に65msの処理時間から低減したイメージ毎に54msの全処理時間を示した。変更の結果として、実施形態4は、実施形態3に対して+20%の実行時間スピード改善を示した。
【0304】
ここで記述されるビジュアル検査システムおよび方法の、オブジェクトトラッキングを使用する実施形態が、以下で記述される。
【0305】
図18を参照して、一実施形態に係る、ターゲット物品のビジュアル検査中のオブジェクトトラッキングのためのコンピュータシステム1800が示されている。
【0306】
コンピュータシステム1800は、ここで記述される任意の一または複数のコンピューティングデバイスにおいて実装されてもよい。例えば、特定の実施形態では、コンピュータシステム1800が、図3のワーカノードデバイス310または図1のAIビジュアル検査デバイス12において実装されてもよい。コンピュータシステム1800は、図3のオブジェクト検出コンポーネント314等のオブジェクト検出モジュールと通信している。コンピュータシステム1800は、図5のオブジェクト検出モジュール504および欠陥分類モジュール520と通信していてもよい。
【0307】
コンピュータシステム1800によって実装されるオブジェクトトラッキング処理は、オブジェクト検出をフォルスポジティブに対してよりロバストにできるという利点を提供してもよい。
【0308】
コンピュータシステム1800は、メモリ1804と通信しているプロセッサ1802を含む。
【0309】
プロセッサ1802は、オブジェクトトラッカモジュール1806を含む。オブジェクトトラッカモジュール1806は、プロセッサ1802によって実行される時に、コンピュータシステム1800にオブジェクトトラッキング処理を実行させるコンピュータ実行可能命令を備える。オブジェクトトラッキング処理は、コンピュータ実装されたオブジェクト検出プロセスを使用して、ターゲット物品の複数のイメージまたはフレームに亘って検出されるオブジェクトを追跡することを含む。例えば、ターゲット物品は、カメラに対して駆動されながら、複数の時刻に撮像されてもよい(例えば、複数のフレームを備えるビデオ)。一実施形態では、被追跡オブジェクトが、ビジュアル検査システムのオブジェクト検出コンポーネント(例えば、図3のオブジェクト検出コンポーネント314)によって検出されるターゲット物品における欠陥である。
【0310】
オブジェクトトラッカ1806は、検出されたオブジェクトを閾値超のフレーム数に亘って追跡することによって、検出されたオブジェクトがフォルスポジティブでないという確信を人間オペレータに提供してもよい。このように、オブジェクトトラッカ1806は、有利なことに、ビジュアル検査システムにおけるフォルスポジティブオブジェクト検出のインスタンスを低減しうる。
【0311】
メモリ1804は、被追跡オブジェクトデータ構造1808を保存する。被追跡オブジェクトデータ構造1808は、被追跡オブジェクトに関する様々なデータを含む。被追跡オブジェクトデータ構造1808に保存されるデータは、オブジェクトトラッカモジュール1806によって生成および更新される。
【0312】
データ構造1808は、オブジェクトトラッカ1806によって割り当てられる、ユニークなオブジェクトID1810を含む。
【0313】
データ構造1808は、オブジェクト開始位置1812、現在の重心1814、クラス1816、消失フレーム1818、出現フレーム1820、真の検出ステータス1822、平均サイズ1824、重心アレイ1826、動きベクトル1828、計数値1830、および承認された検出ステータス1832を含む、被追跡オブジェクトについてのユニークなオブジェクトID1810にリンクされる様々な他のデータも含む。
【0314】
計数値1830は、イメージにおける「ライン」または特定のセグメントを通過する度に、オブジェクトトラッカが特定の各IDを計数したものを表す。オブジェクトトラッカが真の検出を判定して真の検出を承認した場合、オブジェクトトラッカは、過去24時間(または、他の期間でもよい)に亘ってシステムによって観測された欠陥の数の記録を維持する。このように、オブジェクトトラッカが各欠陥を計数し、計数フィールド(計数値1830)が、特定の欠陥が外部ソフトウェアアプリケーションによって計数されていることをオブジェクトトラッカに知らせることは有利である。
【0315】
様々な実施形態では、追跡されたデータ構造1808が、様々なデータタイプ1812、1814、1816、1818、1820、1822、1824、1826、1828、1830、1832の少なくともいずれかを含んでもよい。追加的なデータタイプが含まれて、オブジェクトIDに対してリンクされてもよい。
【0316】
オブジェクトトラッカモジュール1806は、ソフトウェアライブラリを備えてもよい。ソフトウェアライブラリは、一または複数のソフトウェアコンポーネントのコードベースまたは本開示において記述されるモジュールに入力されてもよい。例えば、ソフトウェアライブラリは、図3のオブジェクト検出コンポーネント314等のオブジェクト検出コンポーネントのコードベースに入力されてもよい。ソフトウェアライブラリは、図3のゴールデンサンプルコンポーネント316等のゴールデンサンプルコンポーネントのコードベースに入力されてもよい。
【0317】
図19は、一実施形態に係る、オブジェクトトラッカのコード表現1900の一例を示す。
【0318】
オブジェクトトラッカモジュール1806は、オブジェクト検出の初期セットを取り、初期検出のそれぞれについてユニークなIDを生成する。オブジェクト検出の初期セットは、バウンディングボックス座標の入力セットでもよい。オブジェクト検出の初期セットは、検出された各オブジェクトについてのクラスラベルを含んでもよい。オブジェクト検出の初期セットは、図3のオブジェクト検出コンポーネント316等のオブジェクト検出ネットワークによって提供される。
【0319】
オブジェクトトラッカモジュール1806は、後続のイメージ(ビデオにおけるフレーム)に亘って移動するオブジェクトのそれぞれを追跡する。オブジェクトトラッカ1806は、トラッキング中にユニークなIDの割り当てを維持する。この際、オブジェクトトラッカモジュール1806は、単純なユークリッド距離メトリックを使用してもよい。このメトリックを使用することで、オブジェクトトラッカモジュール1806は、各オブジェクトを追跡でき、オブジェクトトラッカモジュール1806が観測している全ての組織化された構造を「維持」できる。
【0320】
オブジェクトトラッカモジュール1806は、ユニークなIDを生成し、各被追跡オブジェクトに対して割り当てる(例えば、オブジェクトID:1)。オブジェクトトラッカ1806によるユニークなIDの割り当ては、ビデオにおけるユニークなオブジェクトの計数を可能にする。オブジェクトトラッカモジュール1806の計数機能は、各オブジェクトについて教育されたスマートな決定を可能にする。ユニークな各オブジェクトは、一度だけ承認されればよい。ユニークなオブジェクトは、経時的に計数されうる。オブジェクトが回転する際、オブジェクトのサイズは複数のフレームに亘って適切に調整されうる。オブジェクトトラッカモジュール1806は、オブジェクトの動きベクトルをモニタする。ユニークなオブジェクトを追跡することは、オブジェクトトラッカ1806の重要なコンポーネントである。
【0321】
オブジェクトトラッカモジュール1806は、ユニークな各オブジェクトを同時に追跡する。この際、オブジェクトトラッカモジュール1806は、オブジェクトについての位置情報(例えば、イメージフレームにおける位置、座標情報)およびクラス情報(例えば、「スクラッチ」等の欠陥クラス識別子)を使用してもよい。
【0322】
オブジェクトトラッカモジュール1806は、ランダムにフレームから消えるオブジェクトを追跡できる。オブジェクトトラッカモジュール1806によって実装されるアルゴリズムは、オブジェクトがフレーム毎に特定の方向に最大の数のピクセルを移動することを期待する。この情報に基づいて、オブジェクトが次のフレームで観測されない場合、オブジェクトトラッカモジュール1806は、特定のオブジェクトが消失したと辞書においてマーキングして処理を続ける。そして、オブジェクトが2フレーム以内に再び現れた場合、オブジェクトトラッカモジュール1806は、ユークリッド距離がオブジェクトの期待される位置の境界内に留まっていることを確認し、その消失フラグを除去して通常処理を続ける。
【0323】
オブジェクトトラッカモジュール1806は、複数のフレームに亘る各オブジェクトについてダイナミックアベレージサイジングを使用してもよい。オブジェクトの周りのバウンディングボックスを近似する際のオブジェクト検出器のインターセクションオーバーユニオン(IOU)が100%正確ではないため、オブジェクトトラッカモジュール1806は、より良い測定の精度を実現するために、複数のフレームに亘って欠陥のサイズを記録してもよい。ダイナミックアベレージサイジングの使用は、より良い精度を提供しうる。例えば、オブジェクトを検出するように構成される本開示のソフトウェアコンポーネント(例えば、オブジェクト検出器モジュール、ゴールデンサンプルモジュール)によって出力されるバウンディングボックスは、ノイズを含んでもよく、検出されたオブジェクトの輪郭を正確に再現しなくてもよい。複数のフレームに亘ってオブジェクトサイズを判定および平均化することによって、オブジェクトトラッカ1806は、オブジェクトサイズのより正確または精緻な測定である平均オブジェクトサイズを判定してもよい。欠陥許容範囲を超えたか否かを判定するために欠陥サイズが使用される実施形態では、欠陥の正確なサイジングが特に重要でありうる。これは、欠陥が許容される欠陥許容範囲内か否かが、究極的には視覚的に検査されているターゲット物品が欠陥ありに分類されるか否かを決定するためである。このように、不正確なサイジングは、いくつかの欠陥ありターゲット物品が許容されてしまうことや、いくつかの非欠陥物品が欠陥ありと見なされて廃棄されてしまうことに繋がりうる。
【0324】
オブジェクトトラッカモジュール1806は、各オブジェクトについての動きベクトルを追跡してもよい。動きベクトルは、オブジェクトが次のフレームにおいて現れることが期待される位置の将来予測のために、オブジェクトトラッカモジュール1806によって使用される。
【0325】
オブジェクトトラッカモジュール1806は、約0.113msのスピードで、被追跡オブジェクトデータ構造1804を新しいオブジェクトで更新してもよい。オブジェクトトラッカモジュール1806は、新しいオブジェクトの前にオブジェクト検出器において既に観測および追跡されているオブジェクトと、全ての既存のバウンディングボックスが相関されるように構成されてもよい。このため、新しいオブジェクトについての残りのバウンディングボックスは、トラッカ内に新しいエンティティとして追加される。オブジェクトトラッカモジュール1806は、約0.395sのスピードで、特定のオブジェクトについてのトラッカをインデックス付けして探索してもよい。インデックス付けすることは、現在のオブジェクトについて保存されている全ての情報について、オブジェクトトラッカを探索およびスキャンすることを含む。オブジェクトトラッカモジュール1806は、システムにおけるレイテンシおよびオーバーヘッドが低くなるように、インデックス付けおよび探索スピードを可能な限り速く保つように構成されてもよい。
【0326】
一実施形態では、オブジェクトトラッカモジュール1806が、重心トラッキングアルゴリズムを実装する。重心トラッキングアルゴリズムは、ビデオにおける後続のイメージまたはフレームの間の、既存のオブジェクト(すなわち、オブジェクトトラッカ1806が既に観測しているオブジェクト)の重心および新しいオブジェクトの重心の間のユークリッド距離に依拠する。
【0327】
重心トラッキングアルゴリズムは、与えられたオブジェクトが後続のフレームの間で潜在的に移動するが、フレーム「n」およびフレーム「n+1」についての当該オブジェクトについての重心の間の距離は、他のオブジェクトの間の全ての他の距離より小さくなるという、オブジェクトトラッカ1806においてエンコードされた主な仮定に基づいて動作してもよい。
【0328】
オブジェクトトラッキングモジュール1806は、ループおよび関数を含む最適化されたコードを備えてもよい。パフォーマンス向上を提供するために、コードは「Cynthonize」されていてもよい。
【0329】
オブジェクトトラッキングモジュール1806は、各被追跡オブジェクトについてトラッキングステータスを割り当てて維持するように構成される。トラッキングステータスは、被追跡オブジェクトデータ構造1804に保存される。トラッキングステータスは、複数の可能性のあるトラッキングステータスから割り当てられてもよい。
【0330】
トラッキングステータスは、未確認検出(または、「真ではない検出」)に対応する第1トラッキングステータスを含んでもよい。
【0331】
第1トラッキングステータスは、「N」より少ないフレームにおいて「観測」または検出された被追跡オブジェクトに対して割り当てられる。ここで、「N」は「0」より大きい整数である。「N」は、確認されたまたは真の検出とオブジェクトトラッカモジュール1806によって見なされるために、被追跡オブジェクトが観測されなければならないフレームの数についての閾値を表す。一実施形態では、「N」が「5」である。換言すれば、第1トラッキングステータスは、検出されたものの必要なフレームの数に亘って追跡されなかったオブジェクトに対して割り当てられる。数「N」は、オブジェクトがフレーム内に入ってから、オブジェクトがフレームの他の側から出るまでに、オブジェクトが観測されることが期待される時間の長さに基づいて決定されてもよい。「N」は、「3」~「5」でもよい。
【0332】
トラッキングステータスは、確認されたまたは真の検出に対応する第2トラッキングステータスを含んでもよい。
【0333】
第2トラッキングステータスは、「N」以上のフレームにおいて観測または検出された被追跡オブジェクトに対して割り当てられる。換言すれば、第2トラッキングステータスは、検出されて必要なフレームの数(例えば、「N」フレーム)に亘って追跡されたオブジェクトに対して割り当てられる。
【0334】
トラッキングステータスは、承認された確認検出(または、承認された真の検出)に対応する第3トラッキングステータスを含んでもよい。
【0335】
第3トラッキングは、第2トラッキングステータスを達成し(すなわち、「N」フレームに亘って追跡された)、メモリ1804またはコンピュータシステム1800にアクセス可能な他のデータストレージに保存されている欠陥許容範囲を超えた被追跡オブジェクトに対して割り当てられる。換言すれば、第3トラッキングステータスは、検出されて必要なフレームの数に亘って追跡され、所定の欠陥許容範囲を満たすオブジェクトに対して割り当てられてもよい。
【0336】
一実施形態では、オブジェクトトラッカ1806が、第2トラッキングステータスが割り当てられた各被追跡オブジェクトについて、少なくともオブジェクトサイズ(例えば、平均サイズ1824)を含む被追跡オブジェクトデータを、PLCデバイス(例えば、図3のPLC320)に対して送る。
【0337】
ビジュアル検査システムが欠陥の複数のタイプまたはクラスを検出および分類するように構成される場合等のいくつかの場合では、PLCに対して送られる被追跡オブジェクトデータが、被追跡オブジェクトについてのクラスラベルを更に含んでもよい。
【0338】
PLCは、一または複数の欠陥クラスについての欠陥許容範囲情報を保存する。欠陥許容範囲情報は、サイズ許容範囲にリンクされた欠陥クラス識別子を含んでもよい。PLCは、被追跡オブジェクトが欠陥許容範囲を超えたか否かを判定するために、被追跡オブジェクトデータを受け取ってもよく、欠陥クラスおよび欠陥サイズ情報を使用して保存された欠陥許容範囲情報を参照してもよい。許容範囲判定の結果は、オブジェクトトラッカ1806に対して提供されてもよい。
【0339】
いくつかの場合では、欠陥許容範囲を超えると、ターゲット物品のビジュアル検査を停止し、ターゲット物品を欠陥あり物品として処理するようにPLCが構成されてもよい(例えば、ターゲット物品を除去するための制御信号を送る、欠陥物品を指定エリアに搬送する)。欠陥許容範囲を超えない場合、PLCは、欠陥を無視し、ターゲット物品のビジュアル検査を継続するように構成されてもよい。
【0340】
他の実施形態では、前述されたPLCによって実行されたような、欠陥許容範囲ストレージおよび処理の機能のいくつかは、コンピュータシステム1800またはコンピュータシステム1800と通信可能に接続される他のコンピューティングコンポーネント等の他のコンピューティングデバイスによって実行されてもよい。例えば、欠陥許容範囲を超えたか否かを判定するために、コンピュータシステム1800が、欠陥許容範囲情報をメモリ1804に保存してもよく、プロセッサ1802によって実行されるソフトウェアコンポーネントが、被追跡オブジェクトデータを使用して保存された欠陥許容範囲情報を参照するように構成されてもよい。
【0341】
オブジェクトトラッカ1806は、被追跡オブジェクトがオブジェクト許容範囲を超えたことが確認されると、当該被追跡オブジェクトに対して第3トラッキングステータスを割り当てるように構成される。
【0342】
オブジェクトトラッカ1806は、第3トラッキングステータス(承認された確認検出)が割り当てられた被追跡オブジェクトの追跡を停止するように構成されてもよい。このように、オブジェクトトラッカ1806は、承認された確認検出(例えば、PLCによって承認されたもの)を、将来のフレームにおいて考慮しない。
【0343】
オブジェクトトラッカ1806は、変形例として、実際のオブジェクト検出器より大幅に速くオーバーヘッドを除去してもよく、被追跡オブジェクトがイメージまたはビデオフレームの境界外に消失または移動した場合にも対処できてもよく、オクルージョンに対してロバストになってもよく、オブジェクトトラッカがフレームの間において見失ったオブジェクトをピックアップできてもよい。オブジェクトトラッカの最適化は、ビジュアル検査システムのいくつかの実施形態では極めて重要であり、オブジェクトトラッカがトラッキングのための演算を実行するために過大な時間またはメモリを使用する場合、他のAIアルゴリズム(例えば、オブジェクト検出、分類、ゴールデンサンプル分析)のために使用される必要な時間が奪われてしまう。オクルージョンに対するロバストネスは、過去の動きベクトルを使用してオブジェクトの動きを予測するオブジェクトトラッカの能力によって提供されてもよい。
【0344】
オブジェクトトラッカ1806は、様々な能力および利点を提供しうる。オブジェクトトラッカ1806は、ユニークなオブジェクトを同時に追跡してもよい(クラスおよび位置を介して)。オブジェクトトラッカ1806は、ランダムにフレームから消失するオブジェクトを追跡する能力についてよりロバストでもよい。オブジェクトトラッカ1806は、複数のフレームに亘るダイナミックアベレージサイジングを使用することによって、欠陥サイジングにおけるより良い精度を提供してもよい。オブジェクトトラッカ1806は、各被追跡オブジェクトの動きベクトルを追跡してもよい。オブジェクトトラッカ1806は、ユニークなオブジェクトの計数を可能にしてもよい。オブジェクトトラッカ1806は、オブジェクトが承認された真の検出としてオブジェクトトラッカ1806によってマーキングされた場合、当該オブジェクトを将来のフレームにおいて無視できる。
【0345】
図20を参照して、一実施形態に係る、ビジュアル検査中に図18のオブジェクトトラッカ1806を使用する方法2000が示されている。方法2000は、ターゲット物品を撮像するカメラによって観測または取得された各フレームに対して実行されてもよい。
【0346】
2002では、ターゲット物品の検査イメージ(例えば、ターゲット物品を撮影したビデオのフレーム)が、オブジェクト検出ネットワークへの入力として提供される。オブジェクト検出ネットワークは、欠陥(オブジェクト)を検出するためのオブジェクト検出モデルおよび検出された欠陥を分類するための分類モデルを含む。
【0347】
2004では、オブジェクト検出ネットワークが、検査イメージにおいて欠陥を検出および分類する。
【0348】
2006では、オブジェクト検出ネットワークが、検出および分類された各欠陥について、バウンディングボックス座標およびクラスラベルを出力する。バウンディングボックス座標は、欠陥を含む検査イメージの興味領域を定義する。クラスラベルは、欠陥のタイプまたはクラスを示す。
【0349】
2008では、オブジェクト検出ネットワークによって検出および分類された各欠陥についてのバウンディングボックス座標およびクラスラベルが、オブジェクトトラッカ1806への入力として提供される。
【0350】
2010では、オブジェクトトラッカ1806が、オブジェクト検出ネットワークによって生成されたバウンディングボックスおよびクラス情報を使用して、被追跡オブジェクトデータ構造1808を更新する。これは、与えられた欠陥が前に観測された(追跡された)欠陥であるか、新たに観測された欠陥(未だ追跡されていない)であるかを判定するために、オブジェクトトラッカ1806による重心トラッキングアルゴリズムの適用を含んでもよい。この判定は、バウンディングボックス座標およびクラスラベル情報の使用を含んでもよい。
【0351】
欠陥が新たに観測された欠陥である場合、オブジェクトトラッカ1806は、ユニークなID1810を欠陥に対して割り当て、後続のフレームに亘って欠陥を追跡する。オブジェクトトラッカは、オブジェクトID1810にリンクされた被追跡オブジェクトについての被追跡オブジェクトデータ構造1808を生成する。
【0352】
欠陥が前に観測された(すなわち、追跡された)欠陥である場合、オブジェクトトラッカ1806は、追跡された欠陥のユニークなオブジェクトID1810に対応する被追跡オブジェクトデータ構造1808を更新する。これは、被追跡オブジェクトデータ構造1808におけるデータタイプ1814、1818、1820、1822、1824、1826、1828、1830、1832の少なくともいずれかについての値を更新することを含んでもよい。例えば、これは、現在のフレームからのサイズ情報を使用する、欠陥の新しい平均サイズ1824(ダイナミックアベレージサイジング)の演算を含んでもよい。他の例として、これは、追跡された欠陥のトラッキングステータス(例えば、確認されていない、確認された、確認および承認された)を更新することを含んでもよい。
【0353】
いくつかの場合では、方法2000が、ゴールデンサンプル分析のために実行されてもよい。このような場合、検査イメージは、ゴールデンサンプルコンポーネント(例えば、ゴールデンサンプルコンポーネント316)に対して提供される。ゴールデンサンプル出力は、検出された各オブジェクトについてのバウンディングボックス(すなわち、検査イメージおよびゴールデンサンプルイメージのフィーチャマップの間の差)を含んでもよいが、クラスラベル情報を含まない。そして、オブジェクトトラッカ1806は、バウンディングボックス座標を使用して、被追跡オブジェクトデータ構造1804を更新してもよい。
【0354】
一実施形態に係る、オブジェクトトラッキング処理を使用して処理された検査イメージを例示する図21A~21Dを参照する。例えば、イメージは、図18のオブジェクトトラッカ1806およびコンピュータシステム1800を使用して処理されてもよい。検査イメージは、四つのフレームに亘って撮像されたカムシャフトである。
【0355】
カムシャフトは、ここで記述されるシステムおよび方法によって視覚的に検査されている。ビジュアル検査は、シールリングアセンブリ検出を含む。シールリングアセンブリ検出は、シールリングの存在および方向を検出および確認することを含む。
【0356】
シールリングアセンブリ検出は、シールリングについて実行される。シールリングは、カムシャフト上に取り付けられるプラスチック部品である。シールリング設置を実行する装置は、シールリングをカムシャフト上に設置しない、または、不正確に設置することがある。ビジュアル検査システムおよびオブジェクトトラッカ(例えば、システム1800)は、シールリングが存在してカムシャフト上に正確に挿入されていることを確認するように構成されてもよい。
【0357】
図21Aを参照して、一実施形態に係る、コンピュータシステム1800等を使用するオブジェクトトラッキング処理を使用して処理された第1アノテーションされた検査フレームを示すユーザインターフェース2100aが示されている。
【0358】
ビジュアル検査システムは、三つの興味領域(「ROI」)ROI12104、ROI22106、およびROI3(不図示)を検査し、第1シールリング2110および第2シールリング2112についてシールリングの存在および方向を検出および確認する。ROI3は、カムシャフトのこの特定の部分にない。カムシャフトは、セクション毎に最大で三つの特定のROIを有してもよい。
【0359】
オブジェクトトラッカ1806は、三つのROI2104、2106、およびROI3についての被追跡オブジェクトカウント2114を維持する。理解されるように、被追跡オブジェクトカウント2114は、ROI2104における一つの被追跡オブジェクト(後述される第1オブジェクト2122に対応する)を含む。
【0360】
また、オブジェクトトラッカ1806は、第2および第1シールリング2116、2118についてのシールリングトラッキングステータス(真/偽)を維持している。第2シールリングステータス2116は偽である。第1シールリングステータス2118も偽である。
【0361】
オブジェクトトラッカ1806は、「5」より少ないフレームにおいて観測された被追跡オブジェクトに対して、未確認検出トラッキングステータス(すなわち、真ではない検出)を割り当てるように構成される。未確認検出は、ユニークな色インジケータ(例えば、青色インジケータ)を使用して、ユーザインターフェース2100aにおいてラベリングされてもよい。例えば、特定の情報(例えば、欠陥ID、重心位置)が、欠陥または欠陥についてのバウンディングボックスの近くにテキストで表示されてもよく、このようなテキストは、色付けされてもよいし、色の中でハイライトされてもよい。
【0362】
オブジェクトトラッカ1806は、五つのフレームに亘って観測された被追跡オブジェクトに対して、真の検出トラッキングステータスを割り当てるように構成される。真の検出は、ユニークな色インジケータ(例えば、黄色インジケータ)を使用して、ユーザインターフェース2100aにおいてラベリングされてもよい。例えば、特定の情報(例えば、欠陥ID、重心位置)が、欠陥または欠陥についてのバウンディングボックスの近くにテキストで表示されてもよく、このようなテキストは、色付けされてもよいし、色の中でハイライトされてもよい。
【0363】
オブジェクトトラッカ1806は、五つのフレームに亘って観測され、許容範囲内であると確認された被追跡オブジェクトに対して、承認された真の検出ステータスを割り当てるように構成される。承認された真の検出は、ユニークな色インジケータ(例えば、赤色インジケータ)を使用して、ユーザインターフェース2100aにおいてラベリングされてもよい。例えば、特定の情報(例えば、欠陥ID、重心位置)が、欠陥または欠陥についてのバウンディングボックスの近くにテキストで表示されてもよく、このようなテキストは、色付けされてもよいし、色の中でハイライトされてもよい。理解されるように、ユニークな色インジケータは、ユーザインターフェースを視認するユーザが検出のステータスを理解できるように、未確認検出、真の検出、および承認された真の検出を互いに視覚的に識別可能にしうる。未確認検出、真の検出、および承認された真の検出をユニークに特定および視覚的に識別する他の形態が使用されてもよく、単なる一例としてユニークな色インジケータを有するテキストを使用してもよい。例えば、他の場合、検出のステータスが、検出された欠陥の近くにテキストで提供されてもよい。
【0364】
油およびダートエレメント2120は無視されている。
【0365】
第1オブジェクト2122は、ROI2104において検出されている。第1オブジェクト2122は、少なくとも「5」フレームに亘って観測されており、許容範囲内であると確認されているため、オブジェクトトラッカ1806は、第1オブジェクト2122に対して承認された真の検出ステータスを割り当てる。第1オブジェクト2122は、追跡された欠陥である。
【0366】
第2オブジェクト2124(シールリングトラッキング)は、第1シールリング2110において検出されている。第2オブジェクト2124は、「5」より少ないフレームにおいて観測されているため、オブジェクトトラッカ1806は、第2オブジェクト2124に対して未確認検出トラッキングステータスを割り当てる。
【0367】
第3オブジェクト2126も、観測されうる。第3オブジェクト2126は、第2シールリングである。各カムシャフトは、二つのシールリングを有する。このため、両シールリングが見つかった場合、両シールリングについての確認された存在を示すように、二つの矩形がハイライトされてもよい(例えば、ユニークな色(例えば、緑色)インジケータを使用して)(図21Dに示される)。
【0368】
図21Bを参照して、一実施形態に係る、コンピュータシステム1800等を使用するオブジェクトトラッキング処理を使用して処理された第2アノテーションされた検査フレームを示すユーザインターフェース2100bが示されている。第2検査フレームは、図21Aの第1検査フレームの後に取得された。
【0369】
この時、第2オブジェクト2124が、五つのフレームにおいて観測された。オブジェクトトラッカ1806は、第2オブジェクト2124に対して、真の検出トラッキングステータスを割り当てる。第2オブジェクト2124についての真の検出ステータスは、第1シールリングの存在および方向の確認(未承認の真の検出)を示す。オブジェクトトラッカ1806は、第1シールリングステータス2118を「真」に更新する。
【0370】
第1シールリングの存在および方向は、未だ確認されていない。
【0371】
図21Cを参照して、一実施形態に係る、コンピュータシステム1800等を使用するオブジェクトトラッキング処理を使用して処理された第3アノテーションされた検査フレームを示すユーザインターフェース2100cが示されている。第3検査フレームは、図21Bの第2検査フレームの後に取得された。
【0372】
この時、第2オブジェクト2124が承認された。オブジェクトトラッカ1806は、承認された真の検出ステータスを、第2オブジェクト2124に対して割り当てる。
【0373】
第2シールリング2112の存在および方向は、未だ確認されていない。
【0374】
図21Dを参照して、一実施形態に係る、コンピュータシステム1800等を使用するオブジェクトトラッキング処理を使用して処理された第4アノテーションされた検査フレームを示すユーザインターフェース2100dが示されている。第4検査フレームは、図21Cの第3検査フレームの後に取得された。ユーザインターフェース2100dは、シールリングアセンブリ検出が完了した状態を示す。
【0375】
この時、第3オブジェクト2126が、少なくとも五つのフレームにおいて観測された。オブジェクトトラッカ1806は、第3オブジェクト2126に対して、承認された真の検出ステータスを割り当てる。第3オブジェクト2126についての真の検出ステータスは、第2シールリング2112の存在および方向の確認を示す。オブジェクトトラッカ1806は、第2シールリングステータス2116を「真」に更新した。これは、ユニークな色インジケータ(例えば、緑色ハイライト)を使用して、第2シールリング2112についてのバウンディングボックスをハイライトすることを含んでもよい。
【0376】
ここで記述されるビジュアル検査のためのシステムおよび方法は、効率的なモデルトレーニングおよびオブジェクトトラッキングを使用して、フォルスポジティブ欠陥検出を低減しうる。効率的なモデルトレーニングは、適切なモデルアノテーションおよびイントレーニングオーギュメンテーション、オーバーフィッテイングを避けるための早期停止、ハイパーパラメータチューニング(LR、オプティマイザ、バウンディングボックス提案)、適切なイメージ前処理、およびデータプルーニングの少なくともいずれかを含んでもよい。オブジェクトトラッキングは、オブジェクトトラッカがビジュアル検査システムに対してアラートを発する前に、複数のフレームに亘ってユニークな欠陥が観測されることを要求する。
【0377】
図22を参照して、一実施形態に係る、ビジュアル検査パイプライン2200が示されている。パイプライン2200は、図3のワーカノードデバイス310等の一または複数のコンピューティングデバイスによって実現される。パイプライン2200は、欠陥検出および分類および異常検出を実行する。
【0378】
パイプライン2200は、図5のパイプライン500と同様に機能する。パイプライン2200においてパイプライン500と同一または同様の機能を実現するコンポーネントは、末尾二つが同じ参照番号を使用して示される(例えば、検査イメージ2202、検査イメージ502)。図5を参照して前述された、このようなコンポーネントの特定の特徴および機能は、ここで繰り返されないが、存在するものと理解されるべきである。
【0379】
パイプライン2200は、入力イメージ2202で始まる。入力イメージは、オブジェクト検出モジュール2204およびゴールデンサンプル分析モジュール2226に対して渡される。
【0380】
オブジェクト検出モジュール2204は、オブジェクト検出モデル2205を含む。オブジェクト検出モデル2205は、入力イメージ2202を入力として受け取り、オブジェクト検出(「OD」)出力データ2218を生成する。OD出力データ2218は、入力イメージ2202においてオブジェクト検出モデル2205によって検出された各オブジェクトを記述するオブジェクトデータを含む。検出されたオブジェクトについてのオブジェクトデータは、例えば、オブジェクトをユニークに特定するオブジェクト識別子データ、オブジェクトクラスデータ(例えば、クラスラベル)、オブジェクト位置データ(例えば、バウンディングボックス座標)、オブジェクト信頼レベルデータ、またはオブジェクトサイズデータを含んでもよい。OD出力データ2218は、アレイ、リスト、または検出された各オブジェクトについてのオブジェクトデータを含む他のデータ構造の形態でもよい。OD出力データ2218は、ゴールデンサンプルモジュール2226によって生成される出力データ(後述される)とそのまま比較可能なフォーマットでもよい。そのまま比較可能なフォーマットのOD出力データ2218は、オブジェクト検出モデル2205によって直接的に生成されてもよいし、オブジェクト検出モデル2205の出力を変換することによってオブジェクト検出モジュール2204によって生成されてもよいし、OD出力データ2218を使用して(すなわち、OD出力データを適切なフォーマットに変換して)異常検出モジュール2240によって生成されてもよい。
【0381】
図22では、オブジェクト検出モデル2205が、オブジェクト提案コンポーネント2206、フィーチャマップコンポーネント2208、ROIプーリング層コンポーネント2210、完全接続層コンポーネント2212、ソフトマックス層コンポーネント2214、およびリグレッサ層コンポーネント2216を含む。他の実施形態では、入力イメージ2202においてオブジェクトの一または複数のクラスを検出し、検出されたオブジェクトについてのオブジェクトデータを生成するようにトレーニングされた機械学習モデルであるオブジェクト検出モデル2205が異なる態様で構成されてもよい。
【0382】
OD出力データ2218は、オブジェクト検出モジュール2204から異常検出モジュール2240に対して提供される。
【0383】
前述されたように、入力イメージ2202は、ゴールデンサンプルモジュール2226に対しても提供される。入力イメージ2202は、イメージ比較モジュール2350に対して提供される。
【0384】
入力イメージ2202は、生成モデル2230に対しても提供される。生成モデル2230は、入力イメージ2202を入力として受け取り、ゴールデンサンプルイメージ2228を出力として生成する。ゴールデンサンプルイメージ2228は、イメージ比較モジュール2350に対して提供される。
【0385】
入力イメージ2202およびゴールデンサンプルイメージ2228を受け取ったイメージ比較モジュール2250は、差を特定するイメージ比較出力データ2252を生成するために、入力イメージ2202およびゴールデンサンプルイメージ2228に対してイメージ比較を実行する。差は、概して、入力イメージ2202において存在するが、ゴールデンサンプルイメージ2228において存在しないアーティファクトに対応する。検出されたアーティファクトは、「オブジェクト」または「興味領域」と見なされてもよい。検出されたアーティファクトは、イメージ比較出力データにおいてアーティファクトデータによって定義される。アーティファクトデータは、入力イメージにおけるアーティファクトの位置を特定する位置データを含んでもよい。アーティファクトデータは、アーティファクト位置データにリンクされるアーティファクト識別子を含んでもよい。位置データは、アーティファクトを囲むバウンディングボックスを定義するバウンディングボックス座標を含んでもよい。
【0386】
イメージ比較出力データ2252は、例外的な欠陥および異常分類子モジュール2254に対して提供される。
【0387】
例外的な欠陥および異常分類子モジュール2254は、アーティファクトクロッピングモジュールを含んでもよい。アーティファクトクロッピングモジュールは、イメージ比較出力データ2252を受け取り、アーティファクト位置データを使用して、検出されたアーティファクトを含む入力イメージ2202のサブセットまたは部分を抽出するように構成される。これは、検出された各アーティファクトについて実行されてもよい。例えば、クロッピングモジュールは、バウンディングボックス座標によって定義される入力イメージデータ2202のサブセットをクロッピングまたは抽出するように構成されてもよい。検出されたアーティファクトに対応する入力イメージデータ2202のサブセットは、「クロッピングされたアーティファクトイメージ」と表されてもよい。他の実施形態では、クロッピングモジュールが、イメージ比較モジュール2250またはイメージ比較モジュール2250および例外的な欠陥および異常分類子モジュール2254の間のスタンドアロンモジュールのコンポーネントでもよい。
【0388】
例外的な欠陥および異常分類子モジュール2254は、例外的な欠陥および異常分類子モデルを含む。分類子モデルは、イメージ分類タスクを実行するようにトレーニングされる。分類子モデルは、入力イメージを受け取り、入力イメージに対して例外的な欠陥ラベルまたは異常ラベルを割り当てるように構成されたバイナリ分類モデルでもよい。
【0389】
例外的な欠陥および異常分類子モデルは、イメージ比較出力データ2252(または、生成される場合はクロッピングされたアーティファクトイメージ)を入力として受け取り、分類出力データ2256を生成する。分類出力データ2256は、判定されたクラスラベルを含む。判定されたクラスラベルは、分類されたアーティファクトに対して割り当てられたアーティファクト識別子に(および、アーティファクトについての位置データにも)リンクされてもよい。分類出力データ2256は、分類されたアーティファクトについてのアーティファクト識別子およびアーティファクト位置データを含んでもよい。いくつかの場合では、分類出力データ2256が、複数の検出されたアーティファクト(例えば、ゴールデンサンプルモジュール2226によって検出および分類された入力イメージ2202からの各アーティファクト)についての分類出力データを含んでもよい。
【0390】
分類出力データ2256は、ゴールデンサンプルモジュール2226から異常検出モジュール2240に対して提供される。
【0391】
異常検出モジュール2240は、OD出力データ2218および分類出力データ2256を受け取る。OD出力データ2218および分類出力データ2256は、それぞれ、OD出力データ2218および分類出力データ2256が得られた入力イメージ2202を特定する入力イメージ識別子データを含んでもよいし、当該入力イメージ識別子データとリンクまたは関連付けされてもよい。異常検出モジュール2240は、同じ入力イメージ2202に対応するOD出力データ2218および分類出力データ2256を比較するために、このような入力イメージ識別子を使用してもよい。
【0392】
異常検出モジュール2240は、オブジェクト検出モジュール2204によって検出されたオブジェクト(欠陥)が、ゴールデンサンプルモジュール2226によって判定された例外的な欠陥に対応するか否かを判定するために、OD出力データ2218を分類出力データ2256と比較するように構成される。これは、異常検出モジュール2240が、オブジェクト検出欠陥の位置データおよび例外的な欠陥の位置データが、所定の条件を満たすか否かを判定することを含んでもよい。例えば、所定の条件は、例外的な欠陥のバウンディングボックス座標が、部分的にまたは全体的に、オブジェクト検出欠陥のバウンディングボックス座標内にあること(または、その反対)でもよい。概して、所定の条件は、それらが同じ「アイテム」を特定しているということが推論されうるような、オブジェクト検出欠陥および例外的な欠陥の位置データの相関である。所定の条件が満たされる場合、異常検出モジュール2240は、欠陥に対して「確認欠陥」ステータスまたはラベルを生成して割り当ててもよい。そして、システムは、確認欠陥を「確認欠陥」として保存してもよい。いくつかの場合では、入力イメージをアノテーションする際に、確認された欠陥が「確認済」と視覚的にラベリングされてもよい。更に、確認欠陥ステータスの決定は、物品の更なる検査を停止して下流プロセスを開始してもよい(例えば、信号を生成してノードデバイス310からPLC328に対して送信することによって)。
【0393】
異常検出モジュール2240が、例外的な欠陥がオブジェクト検出欠陥に対応しないと判定した場合、例外的な欠陥ラベルは維持されてもよい。例外的な欠陥ラベルデータは、例外的な欠陥を検出できるようにオブジェクト検出器モデル2205を更にトレーニングするために、例外的な欠陥を含む入力イメージをトレーニングサンプルとして特定することや、ユーザによる欠陥の確認を要求するユーザインターフェース提示(例えば、アノテーションされたイメージを含む)をトリガすること等のシステムの下流プロセスによって使用されてもよい。
【0394】
異常検出モジュール2240は、異常検出出力データ2242を生成する。異常検出出力データ2242は、アノテーションされた入力イメージでもよい。アノテーションされたイメージは、オブジェクト検出モジュール2204によって検出されたオブジェクトおよびゴールデンサンプルモジュール2226によって検出されたアーティファクトを囲む一または複数のバウンディングボックスが重畳された入力イメージを含んでもよい。各バウンディングボックスは、囲まれたアイテムが、オブジェクト検出欠陥、例外的な欠陥、確認欠陥、または異常のいずれであるかを示す、関連するラベルを含んでもよい。他の場合、異常検出出力データ2242は、検出されたオブジェクトおよびアーティファクトを定義するデータ(例えば、クラスラベル、位置データ、識別子データ、入力イメージ識別子データ、サイズデータ、信頼レベルデータ、確認されたステータス)を保存するデータ構造を含んでもよい。データ構造は、データ構造および入力イメージ2202を取り出し、アノテーションされた入力イメージを生成する(および、表示する)ために、イメージアノテーションモジュールを使用すること等によって、アノテーションされた入力イメージを生成するために使用されてもよい。データ構造(または、そこに含まれるデータのサブセット)は、分析データベース342におけるストレージのためにデータ構造をサーバノード334に対して提供すること等によって、分析目的のために使用されてもよい。
【0395】
図23を参照して、一実施形態に係る、カムシャフトビジュアル検査のための自動化ビジュアル検査パイプライン2300が示されている。
【0396】
自動化ビジュアル検査パイプライン2300は、図22において記述された自動化ビジュアル検査パイプライン2200、および異常検出パイプライン500、1500、および1600と同様である。繰返しを避けるために、同様の内容は議論されない。従って、以下で議論される違いを除いて、パイプライン500、1500、1600、および特にパイプライン2200に関して記述された全ての内容が、パイプライン2300にも適用されうる。
【0397】
図2300では、パイプライン2200(および、パイプライン500、1500、および1600)のエレメントおよびコンポーネントと同様の機能を有するエレメントおよびコンポーネントが、末尾二つの数字が同じ参照番号で示される。
【0398】
パイプライン2300は、検査イメージ2302で始まる。検査イメージ2302は、カムシャフトである。変形例として、検査イメージ2302は、他の物品または任意の適切な入力イメージでもよい。
【0399】
検査イメージ2302は、オブジェクト検出モジュール2304に対して提供される。オブジェクト検出モジュール2304は、オブジェクト提案コンポーネント2306を含むオブジェクト検出モデル、フィーチャマップコンポーネント2308、ROIプーリングコンポーネント2310、完全接続層コンポーネント2312、ソフトマックスコンポーネント2314、およびリグレッサコンポーネント2316を含む。
【0400】
オブジェクト検出モジュール2304は、OD出力データ2318を生成する。OD出力データ2318は、検出された欠陥2319(オブジェクト検出欠陥2319)を含む。検出された欠陥2319は、オブジェクトを囲むバウンディングボックス(位置データ)を含むオブジェクトデータによって定義される。OD出力データ2318は、オブジェクト検出モジュール2304から異常検出モジュール2340に対して提供される。
【0401】
検査イメージ2302は、ゴールデンサンプルモジュール2326に対しても提供される。
【0402】
検査イメージ2302は、生成モデル2330に対して提供される。生成モデル2330は、生成ゴールデンサンプルイメージ2328を生成する。
【0403】
検査イメージ2302および生成ゴールデンサンプルイメージ2328は、直接的なイメージ比較を実行してイメージ比較出力データ2360を生成するように構成されるイメージ比較モジュール2350に対して提供される。
【0404】
一実施形態では、行列減算またはピクセル単位グレイスケール減算を使用して、直接的なイメージ比較が実行される。入力および出力は同じ次元であり(実際の入力イメージ(例えば、オートエンコーダからの「512*512」は「300*1000」にスケールバックされる)と同じ)、ピクセル毎に一つの値のみが減算される。これは、イメージのダウンサンプリングされたバージョン(例えば、「7*7」)が使用され、各ピクセルが入力イメージのフィーチャマップからの同じピクセルと同様のサイズのベクトルと比較されるベクトルを含む、図5のフィーチャマップ分析536等において実行されてもよいフィーチャマップアプローチと対照的である。
【0405】
イメージ比較出力データ2360は、イメージ比較プロセスによって特定されたアーティファクト2362、2364、および2366を含む。一実施形態では、イメージ比較出力データ2360が、検査イメージ2302および生成ゴールデンサンプルイメージ2328の間の差を含むグレイスケールイメージ(例えば、「300*1000」)である。前述されたように、差は、概して、検査イメージ2302に存在するが、ゴールデンサンプルイメージ2328に存在しない「アーティファクト」(すなわち、差)に対応する。
【0406】
各アーティファクト2362、2364、2366は、アーティファクトを記述し、アーティファクトを囲むバウンディングボックス(図23に示される)を定義するバウンディングボックス座標を含む、関連するアーティファクトデータを有する。
【0407】
イメージ比較出力データ2360は、二値化および形状分析モジュール2368に対して提供される。
【0408】
二値化および形状分析モジュール2368は、イメージ比較出力データ2360に対して二値化を実行する。二値化は、静的な閾値を使用して白黒イメージを生成することを含む。
【0409】
二値化および形状分析モジュール2368は、イメージ比較出力データ2360に対して形状分析も実行する。形状分析は、形態学的オペレーションの組合せを含む。
【0410】
二値化および形状分析モジュール2368の出力は、領域クロッピングモジュール2370に対して提供される。領域クロッピングモジュール2370は、下流分析ユニットにおける使用のために、イメージからイメージデータのサブセット(すなわち、より小さいイメージ)を切り取るように構成される(例えば、バウンディングボックスを切り取ることによって)。領域クロッピングモジュール2370は、提供されるアーティファクト位置データ(例えば、バウンディングボックス座標)を使用して、より小さいイメージをクロッピングしてもよい。
【0411】
領域クロッピングモジュール2370の出力は、小さいイメージのセットでもよい。一実施形態では、出力が「224*224」イメージのバッチでもよい。
【0412】
領域クロッピングモジュール2370の出力は、ニューラルネットワーク(例えば、CNN)等の分類子モデル2372に対して提供される。図23の実施形態では、分類子モデル2372が、ハイブリッドCNNバイナリ分類子である。他の実施形態では、分類子モデル2372が、微調整CNNでもよい。ハイブリッドCNNバイナリ分類子は、畳み込み層(予備トレーニング済CNNからの)およびサポートベクトルマシン(「SVM」)分類子の組合せでもよい。SVM分類子は、プロジェクトに特有のイメージの小さいセット上でトレーニングされてもよい。十分なトレーニングサンプルがあれば、ハイブリッドCNNは微調整CNNと交換されてもよい。
【0413】
分類子モデル2372は、イメージデータ(領域クロッピングされたイメージ)を入力として受け取り、イメージを例外的な欠陥2374または異常2376として分類するように構成される。分類は、アーティファクトのクラスラベルとして保存される。
【0414】
図23では、分類子2372が、アーティファクト2362を例外的な欠陥と分類し、アーティファクト2364を例外的な欠陥と分類し、およびアーティファクト2366を異常と分類した(後述される出力イメージ2348において示されるように)。
【0415】
二値化および形状分析モジュール2368、領域クロッピングモジュール2370、および分類子モデル2372は、図22の例外的な欠陥および異常分類子モジュール2254等の例外的な欠陥および異常分類子モジュールのコンポーネントでもよい。分類データ2374、2376は、異常検出モジュール2340に対して提供される分類出力データ(例えば、出力データ2256)のコンポーネントである。
【0416】
異常検出モジュール2340は、OD出力データ2318をオブジェクト検出モジュール2304から受け取り、分類2374、2376を含む分類出力データをゴールデンサンプルモジュール2326から受け取る。
【0417】
異常検出モジュール2340は、入力イメージ2302および入力イメージ2302に重畳された複数のバウンディングボックスおよび関連するラベルを含む、アノテーションされた出力イメージ2348を生成する。特に、アノテーションされた出力イメージは、オブジェクト検出欠陥2319、例外的な欠陥2378(アーティファクト2362に対応する)、例外的な欠陥2380(例外的な欠陥2374と分類されたアーティファクト2364に対応する)、および異常2382(異常2376と分類されたアーティファクト2366に対応する)を含む。いくつかの実施形態では、異常検出モジュール2340が、オブジェクト検出欠陥2319および例外的な欠陥2378が同じ欠陥に対応すると判定するように構成されてもよく(バウンディングボックス座標または他の位置データの比較等によって)、欠陥に対して単一のバウンディングボックス(オブジェクト検出欠陥バウンディングボックスまたは例外的な欠陥バウンディングボックス、または両者から得られる新たに定義されたバウンディングボックスに対応してもよい)を生成し、当該欠陥に対して「確認欠陥」ラベルを割り当ててもよい。
【0418】
以上の記述は、一または複数の装置、方法、またはシステムの例を提供するが、他の装置、方法、またはシステムが、当業者によって解釈される請求項の範囲内でありうると理解される。
図1
図2
図3
図4
図5
図6A
図6B
図7A
図7B
図8
図9A
図9B
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21A
図21B
図21C
図21D
図22
図23
【手続補正書】
【提出日】2023-09-29
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
物品の自動化ビジュアル検査の方法であって、
入力イメージにおいて少なくとも一つの欠陥タイプを検出し、オブジェクト検出モデルを使用して検査イメージにおいて検出されたオブジェクトの位置を特定するオブジェクト位置データを生成するようにトレーニングされる前記オブジェクト検出モデルへの入力として、前記物品の前記検査イメージを提供することと、
第1畳み込みニューラルネットワーク(「CNN」)への入力として前記検査イメージを提供し、前記第1CNNを使用して検査イメージフィーチャマップを生成することと、
前記物品のゴールデンサンプルイメージを第2CNNへの入力として提供し、前記第2CNNを使用してゴールデンサンプルフィーチャマップを生成することと、
前記検査イメージにおけるアーティファクトの位置を記述するアーティファクト位置データによって定義され、前記検査イメージおよびゴールデンサンプルイメージの間の差に対応する前記アーティファクトを、前記検査イメージにおいて特定するために、前記検査イメージと前記ゴールデンサンプルイメージを比較することと、
前記アーティファクト位置データが前記オブジェクト位置データにマッチするか否かを所定のマッチ基準に従って判定することと、
を備える方法。
【請求項2】
前記アーティファクト位置データが前記オブジェクト位置データにマッチする場合、前記検出されたオブジェクトを欠陥として確認することを更に備える、請求項1に記載の方法。
【請求項3】
前記アーティファクト位置データが前記オブジェクト位置データにマッチしない場合、前記検出されたアーティファクトが例外的な欠陥または異常であるか否かを示す入力データをユーザから受け取るように構成されるユーザインターフェースを介して、前記検出されたアーティファクトを表示することを更に備える、請求項1に記載の方法。
【請求項4】
前記検出されたアーティファクトが例外的な欠陥であることを示す入力データを前記ユーザから受け取ることと、
前記検査イメージをオブジェクト検出トレーニングサンプルとしてタグ付けすることと、
を更に備える請求項3に記載の方法。
【請求項5】
前記オブジェクト検出トレーニングサンプルを使用する前記オブジェクト検出モデルの再トレーニングを開始することを更に備える、請求項4に記載の方法。
【請求項6】
前記ゴールデンサンプルイメージは、前記物品のクリーンイメージを表すリファレンスイメージである、請求項1に記載の方法。
【請求項7】
生成機械学習モデルを使用して前記検査イメージから前記ゴールデンサンプルイメージを生成することを更に備える、請求項1に記載の方法。
【請求項8】
前記オブジェクト検出モデルを使用して、前記検出されたオブジェクトについての第1欠陥クラスラベルを生成することと、
前記検出されたオブジェクトを含む前記検査イメージ上の少なくとも一部を分類モデルへの入力として提供することと、
前記分類モデルを使用して、前記検出されたオブジェクトについての第2欠陥クラスラベルを生成することと、
前記第1欠陥クラスラベルが前記第2欠陥クラスラベルにマッチする場合、前記第1欠陥クラスラベルを確認することと、
を更に備える請求項1に記載の方法。
【請求項9】
物品の自動化ビジュアル検査のためのコンピュータシステムであって、
前記物品の検査イメージを受け取るための入力インターフェース、少なくとも一つのプロセッサ、および前記プロセッサと通信しているメモリを備え、
前記少なくとも一つのプロセッサは、
入力イメージにおいて少なくとも一つの欠陥タイプを検出し、オブジェクト検出モデルを使用して検査イメージにおいて検出されたオブジェクトの位置を特定するオブジェクト位置データを生成するようにトレーニングされる前記オブジェクト検出モデルへの入力として、前記物品の前記検査イメージを提供することと、
前記検査イメージにおけるアーティファクトの位置を記述するアーティファクト位置データによって定義され、前記検査イメージおよびゴールデンサンプルイメージの間の差に対応する前記アーティファクトを、前記検査イメージにおいて特定するために、前記検査イメージと前記ゴールデンサンプルイメージを比較することと、
前記アーティファクト位置データが前記オブジェクト位置データにマッチするか否かを所定のマッチ基準に従って判定することと、
を実行するように構成されるシステム。
【請求項10】
前記少なくとも一つのプロセッサは、前記アーティファクト位置データが前記オブジェクト位置データにマッチする場合、前記検出されたオブジェクトを欠陥として確認することを実行するように更に構成される、請求項9に記載のシステム。
【請求項11】
前記少なくとも一つのプロセッサは、前記アーティファクト位置データが前記オブジェクト位置データにマッチしない場合、前記検出されたアーティファクトが例外的な欠陥または異常であるか否かを示す入力データをユーザから受け取るように構成されるユーザインターフェースを介して、前記検出されたアーティファクトを表示することを実行するように更に構成される、請求項9に記載のシステム。
【請求項12】
前記少なくとも一つのプロセッサは、
前記検出されたアーティファクトが例外的な欠陥であることを示す入力データを前記ユーザから受け取ることと、
前記検査イメージをオブジェクト検出トレーニングサンプルとしてタグ付けすることと、
を実行するように更に構成される請求項11に記載のシステム。
【請求項13】
前記少なくとも一つのプロセッサは、前記オブジェクト検出トレーニングサンプルを使用する前記オブジェクト検出モデルの再トレーニングを開始することを実行するように更に構成される、請求項12に記載のシステム。
【請求項14】
前記ゴールデンサンプルイメージは、前記物品のクリーンイメージを表すリファレンスイメージであ
前記少なくとも一つのプロセッサは、生成機械学習モデルを使用して前記検査イメージから前記ゴールデンサンプルイメージを生成することを実行するように更に構成される、
請求項9に記載のシステム。
【請求項15】
前記少なくとも一つのプロセッサは、
前記オブジェクト検出モデルを使用して、前記検出されたオブジェクトについての第1欠陥クラスラベルを生成することと、
前記検出されたオブジェクトを含む前記検査イメージ上の少なくとも一部を分類モデルへの入力として提供することと、
前記分類モデルを使用して、前記検出されたオブジェクトについての第2欠陥クラスラベルを生成することと、
前記第1欠陥クラスラベルが前記第2欠陥クラスラベルにマッチする場合、前記第1欠陥クラスラベルを確認することと、
を実行するように更に構成される請求項9に記載のシステム。
【請求項16】
一または複数のプロセッサ上で実行される、機械学習モデルからのデータ出力を検証する方法であって、
モデルパラメータの第1セットを有する第1機械学習モデルと、前記第1セットと異なるモデルパラメータの第2セットを有する第2機械学習モデルと、のそれぞれへの入力として、イメージデータを提供することと、
前記第1機械学習モデルを使用して、第1オブジェクトの属性を定義する第1オブジェクト属性データを含む前記第1オブジェクトを前記イメージデータにおいて検出することと、
前記第2機械学習モデルを使用して、第2オブジェクトの属性を定義する第2オブジェクト属性データを含む前記第2オブジェクトを前記イメージデータにおいて検出することと、
所定のマッチ基準に従って前記第1オブジェクト属性データが前記第2オブジェクト属性データにマッチする場合、確認されたステータスを前記第1オブジェクトに対して割り当てることと、
前記所定のマッチ基準に従って前記第1オブジェクト属性データが前記第2オブジェクト属性データにマッチしない場合、未確認ステータスを前記第1オブジェクトに対して割り当てる、または、維持することと、
を備える方法。
【請求項17】
前記属性は、オブジェクト位置であり、
前記第1オブジェクト属性データおよび前記第2オブジェクト属性データは、前記イメージデータにおける前記第1または第2オブジェクトのそれぞれの位置を示す位置データを備える、
請求項1に記載の方法。
【請求項18】
前記第1および第2機械学習モデルは、それぞれニューラルネットワークを備える、請求項1に記載の方法。
【請求項19】
前記検査イメージと前記ゴールデンサンプルイメージを比較することは、前記検査イメージの検査イメージフィーチャマップと前記ゴールデンサンプルイメージのゴールデンサンプルフィーチャマップを比較することを含む、請求項1に記載の方法。
【請求項20】
第1畳み込みニューラルネットワーク(「CNN」)を使用して、前記検査イメージフィーチャマップを生成することと、
第2CNNを使用して、前記ゴールデンサンプルフィーチャマップを生成することと、
を更に備える請求項19に記載の方法。
【国際調査報告】