(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-11-30
(54)【発明の名称】AI外観検査のためのシステム及び方法
(51)【国際特許分類】
G01N 21/88 20060101AFI20221122BHJP
G06T 7/00 20170101ALI20221122BHJP
G06V 10/82 20220101ALI20221122BHJP
H04N 7/18 20060101ALI20221122BHJP
G01N 21/84 20060101ALI20221122BHJP
【FI】
G01N21/88 J
G06T7/00 610C
G06T7/00 350C
G06V10/82
H04N7/18 B
G01N21/84 B
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022544868
(86)(22)【出願日】2020-09-30
(85)【翻訳文提出日】2022-05-30
(86)【国際出願番号】 CA2020051306
(87)【国際公開番号】W WO2021062536
(87)【国際公開日】2021-04-08
(32)【優先日】2019-09-30
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】522127601
【氏名又は名称】ムサシ オート パーツ カナダ インコーポレイテッド
(74)【代理人】
【識別番号】100105924
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】ブフィ、マーティン
(72)【発明者】
【氏名】シハタ、ラエフ
【テーマコード(参考)】
2G051
5C054
5L096
【Fターム(参考)】
2G051AA07
2G051AB02
2G051AC15
2G051BB01
2G051CA04
2G051DA01
2G051DA08
2G051EB10
2G051EC01
5C054CA04
5C054CC02
5C054FC15
5C054FE13
5C054HA05
5L096BA03
5L096DA02
5L096FA17
5L096HA08
5L096HA11
5L096KA04
(57)【要約】
【解決手段】外観検査のためのシステム及び方法が提供される。システムは、製造施設又は製造現場における品質保証ステーションにおいて使用することができる。システムは、製造又は加工された物品の品質を評価及び決定することができる。システムは、物品の画像を取り込むための機械的サブシステムを含み得る。システムは、画像などのデータを取り込むためのカメラなどのセンサを含み得る。システムは、物品が非許容欠陥の影響を受けているか否かを判定する人工知能システムを含み得る。
【選択図】
図1
【特許請求の範囲】
【請求項1】
物品の外観検査のためのシステムであって、前記システムは、
検査対象物品の画像データを取得するためのカメラと、
前記カメラから前記画像データを受信し、少なくとも1つの欠陥タイプを検出するように訓練された欠陥検出モデルを使用して前記画像データを分析するためのノードコンピューティングデバイスであって、前記欠陥検出モデルは、前記画像データを入力として受信し、検出された欠陥を記述する欠陥データを出力として生成するように構成された機械学習ベースの物体検出モデルを含む、ノードコンピューティングデバイスと、
前記ノードコンピューティングデバイスから前記欠陥データを受信し、前記欠陥データを許容範囲データと比較することによって前記欠陥データが許容可能であるか又は許容不可能であるかを判定するためのプログラマブルロジックコントローラ(「PLC」)デバイスと、
を含む、システム。
【請求項2】
検査画像を取得する前に、前記検査対象物品に対して第1の撮像位置に前記カメラを自律的に移動させるためのロボットアームを更に含む、請求項1に記載のシステム。
【請求項3】
前記欠陥データが許容不可能であると判定すると、前記ロボットアームは、前記検査対象物品上の物品識別子が前記カメラの撮像ゾーン内にある物品識別子位置に前記カメラを自律的に移動させるように構成され、前記カメラは、前記物品識別子の画像を取得するように構成されている、請求項2に記載のシステム。
【請求項4】
前記物品の検査中に撮像位置の所定のシーケンスを通して前記カメラを自律的に移動させるためのロボットアームを更に含む、請求項1に記載のシステム。
【請求項5】
検査中に前記物品に係合して回転させるように構成された物品マニピュレータを更に含む、請求項1に記載のシステム。
【請求項6】
前記画像データは、前記物品の回転中に取得された複数の画像を含み、前記ノードコンピューティングデバイスは、画像スティッチング技術を使用して前記複数の画像からスティッチング画像を構築するように構成され、前記画像データは、前記スティッチング画像として前記欠陥検出モデルに提供される、請求項1に記載のシステム。
【請求項7】
前記PLCデバイス及び前記ノードデバイスのうちの少なくとも1つからデータを受信し、前記受信されたデータを使用してビジュアライゼーションを生成し、前記ビジュアライゼーションをユーザインターフェースに表示するためのユーザ制御デバイスを更に含む、請求項1に記載のシステム。
【請求項8】
前記ユーザインターフェースは、PLCモード及びノードデバイスモードを含み、前記PLCモードは、PLCデバイス動作のビジュアライゼーションを表示し、前記ノードデバイスモードは、ノードデバイス動作のビジュアライゼーションを表示する、請求項7に記載のシステム。
【請求項9】
前記ユーザ制御デバイスは、前記PLCモードと前記ノードデバイスモードとを自動的に切り替えるように構成されている、請求項8に記載のシステム。
【請求項10】
前記ノードコンピューティングデバイスは、前記検出された欠陥が必要な数の連続する画像フレームに出現したことを確認すると、前記欠陥データを前記PLCデバイスに送信するように構成されている、請求項1に記載のシステム。
【請求項11】
前記PLCデバイスは、前記欠陥データが許容不可能であると判定すると、検査停止コマンドを生成するように構成されている、請求項1に記載のシステム。
【請求項12】
人工知能(「AI」)外観検査システムであって、
ノードコンピューティングデバイスであって、
検査対象物品の画像データを受信することと、
少なくとも1つの欠陥タイプを検出するように訓練された欠陥検出モデルを使用して前記画像データを分析することであって、前記欠陥検出モデルは、前記画像データを入力として受信し、検出された欠陥を記述する欠陥データを出力として生成するように構成された機械学習ベースの物体検出モデルを含む、分析することと、
を行うように構成された、ノードコンピューティングデバイスと、
前記ノードコンピューティングデバイスに通信可能に接続されたプログラマブルロジックコントローラ(「PLC」)デバイスであって、
前記ノードコンピューティングデバイスから前記欠陥データを受信することと、
前記欠陥データを許容範囲データと比較することによって前記欠陥データが許容可能であるか又は許容不可能であるかを判定することと、
を行うように構成された、プログラマブルロジックコントローラ(「PLC」)デバイスと、
を含む、人工知能(「AI」)外観検査システム。
【請求項13】
前記欠陥データは、欠陥タイプに対応する欠陥クラス、欠陥位置、及び信頼水準を含む、請求項12に記載のシステム。
【請求項14】
前記欠陥検出モデルは、2段階物体検出モデルを含む、請求項12に記載のシステム。
【請求項15】
前記2段階物体検出モデルは、第1の段階で関心領域を生成するための領域提案ネットワークを含み、前記関心領域は、物体分類及びバウンディングボックス回帰のためにパイプラインに送られる、請求項14に記載のシステム。
【請求項16】
前記欠陥検出モデルは、インスタンスを3つ以上のクラスのうちの1つに分類するためのマルチクラス分類を実行するように構成され、前記クラスは、少なくとも2つの欠陥タイプを含む、請求項12に記載のシステム。
【請求項17】
前記欠陥検出モデルは、最も高い可能なフレームレートで動作するように修正されている、請求項12に記載のシステム。
【請求項18】
前記欠陥検出モデルは、ニューラルネットワークを含み、前記ニューラルネットワークは、前記ニューラルネットワークの層を融合して前記ニューラルネットワークのサイズを圧縮して前記ノードコンピューティングデバイス上で実行することによって最適化されている、請求項12に記載のシステム。
【請求項19】
前記ノードコンピューティングデバイスは、前記ノードデバイスが暗号化され、前記ノードデバイス上のファイルが暗号化される二重のセキュリティ層を含む、請求項12に記載のシステム。
【請求項20】
前記ノードコンピューティングデバイスは、前記PLCデバイスが前記欠陥データが許容不可能であると判定したときに更新される前記物品の欠陥カウンタを含む、請求項12に記載のシステム。
【請求項21】
前記ノードコンピューティングデバイスは、連続する画像フレームにわたって前記欠陥を追跡することによって、前記検出された欠陥が真の検出であるかどうかを判定するように更に構成されている、請求項12に記載のシステム。
【請求項22】
前記画像データは、前記物品の回転中に取得された複数の画像を含み、前記ノードコンピューティングデバイスは、画像スティッチング技術を使用して前記複数の画像からスティッチング画像を構築するように構成され、前記画像データは、前記スティッチング画像として前記欠陥検出モデルに提供される、請求項12に記載のシステム。
【請求項23】
人工知能(「AI」)を使用した物品の自動外観検査の方法であって、前記方法は、
カメラを使用して検査対象物品の画像データを取得することと、
前記画像データをノードコンピューティングデバイスに提供することと、
少なくとも1つの欠陥タイプを検出するように訓練された欠陥検出モデルを使用して前記ノードコンピューティングデバイスにおいて前記画像データを分析することであって、前記欠陥検出モデルは、前記画像データを入力として受信し、検出された欠陥を記述する欠陥データを出力として生成するように構成された機械学習ベースの物体検出モデルを含む、分析することと、
前記ノードコンピューティングデバイスからプログラマブルロジックコントローラ(「PLC」)デバイスに前記欠陥データを送信することと、
前記PLCデバイスにおいて、前記欠陥データを許容範囲データと比較することによって、前記欠陥データが許容可能であるか又は許容不可能であるかを判定することと、
を含む、方法。
【請求項24】
前記ノードコンピューティングデバイスを使用して、連続する画像フレームにわたって前記検出された欠陥を追跡することを更に含む、請求項23に記載の方法。
【請求項25】
前記ノードコンピューティングデバイスから前記PLCデバイスに前記欠陥データを送信することは、前記検出された欠陥が必要な数の連続する画像フレームにわたって追跡されることに応答して実行される、請求項23に記載の方法。
【請求項26】
前記画像データは、前記物品の回転中に取得された複数の画像を含み、前記方法は、
画像スティッチング技術を使用して前記複数の画像からスティッチング画像を構築することと、
前記画像データを前記スティッチング画像として前記欠陥検出モデルに提供することと、
を更に含む、請求項23に記載の方法。
【請求項27】
前記欠陥データが許容不可能であると判定すると、前記PLCデバイスにおいて検査停止コマンドを生成することを更に含む、請求項23に記載の方法。
【請求項28】
前記欠陥データが許容不可能であると判定すると、前記PLCデバイスにおいてアラームコマンドを生成することと、
アラームを生成して出力するように構成されたアラームシステムに前記アラームコマンドを送信することと、
を更に含む、請求項23に記載の方法。
【請求項29】
前記欠陥データが許容不可能であると判定すると、前記物品の検査を継続し、前記検出された欠陥を含むように前記物品の欠陥カウンタを更新することを更に含む、請求項23に記載の方法。
【請求項30】
前記欠陥データが許容不可能であると判定すると、前記検査対象物品上の物品識別子が前記カメラの撮像ゾーン内にある物品識別子位置に前記カメラを自律的に移動させることと、
前記物品識別子の画像を取得することと、
を更に含む、請求項23に記載の方法。
【請求項31】
前記物品識別子と前記欠陥データとをリンクしてデータベースに記憶することを更に含む、請求項30に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
以下は、概して外観検査に関し、より詳細には、人工知能を用いた物品の外観欠陥検査のためのシステム及び方法に関する。
【発明の概要】
【0002】
外観検査は、製品製造における重要な部分であり得る。欠陥のある製品は、コストがかかる可能性がある。プロセスの適切な段階で欠陥のある製品を発見することは、欠陥物品の販売及び使用を防止し、欠陥に関連する根本的な原因を決定し、かかる原因を修復することができるようにするために、ビジネス上の重要な工程であり得る。
【0003】
既存の外観検査ソリューションは、製造及び他の同様の設定においてスペースが限られている場合、実装することが困難な可能性がある。ハードウェアの要件により、コスト及び操作の複雑さが増大する可能性がある。
【0004】
一部の場合では、外観検査は依然として人間による検査を用いて行われている場合がある。例えば、カムシャフトの検査には、人間がカムシャフトを物理的に持ち上げ、拡大ツールを用いてそれを検査することが含まれている場合がある。人間の外観検査技術は、精度及び速度が制限される可能性がある。人間による検査では、欠陥の見落としが発生しやすい可能性がある。更に、人間による検査には、外観検査を手動で文書化するプロセスが含まれる場合があり、これには、識別された欠陥及び関連情報を文書化することが含まれる。かかる文書化プロセスにより、検査が更に遅くなる可能性がある。
【0005】
人間による外観検査では、一次検査中に欠陥品と見なされた物品に対して、二次検査及び三次検査を行って結果を確認する場合がある。かかる追加の検査工程は、一物品当たりの検査時間を著しく増加させる可能性がある。
【0006】
カムシャフト検査の場合、一次検査者による検査は、カムシャフトごとに約45秒~1分かかることがある。二次検査は、時間をカムシャフト当たり約1.5分に増加させる可能性がある。三次検査は、時間を約2分15秒に更に増加させる可能性がある。これらの検査時間には、人間の検査に関連する移動時間は含まれておらず、この移動時間は、検査時間を増加させることがある。
【0007】
製造業において、人工知能(AI)の使用を含む多くの外観検査ソリューションは、クラウドを使用している。他のソリューションでは、オンプレミスサーバ又は標準フォームファクタのコンピュータ部品が使用されている場合がある。多くのユーザは、ファイアウォールの背後で通信をロックされた状態に保ち、データサイロを作成するためにクラウドを使用することを望んでいない。外観検査がオンプレミスのサーバで実装される場合、ユーザは、適切に最適化される必要があり得るAI推論のための特定のGPUを取得してインストールするために、大きなセットアップコストを負担することになる。AIインジェストパイプライン(ingestion pipeline)が適切に最適化されない場合、多くのGPUは、完了するタスクなしで実行されたままとなり、アイドル状態のまま膨大な電力を消費する可能性がある。例えば、通常のGPUは、約250Wを消費する場合がある。
【0008】
更に、既存の手法は、ユーザのニーズに合わせてスケールアップすることが困難な場合がある。メインデバイスが故障又は破損した場合、ダウンタイムが発生する可能性があり、ユーザにとってコストがかかる可能性がある。
【0009】
多大なコストを要することなく、製造された物品の欠陥検出に適した水準で、かつ工業的な外観検査要件を満たす速度で局所的な推論を実行し得る外観検査ソリューションが望まれている。
【0010】
このように、既存のシステム及び方法の欠点の少なくとも一部を克服する、外観検査のための改善されたシステム及び方法が必要とされている。
【0011】
外観検査のためのシステム及び方法が提供される。システムは、製造施設又は製造現場における品質保証ステーションにおいて使用することができる。システムは、本明細書に説明される方法のうちの任意の1又は複数を使用して、製造又は加工された物品の品質を評価及び決定することができる。
【0012】
物品の外観検査のためのシステムが提供される。システムは、検査対象物品の画像データを取得するためのカメラと、カメラから画像データを受信し、少なくとも1つの欠陥タイプを検出するように訓練された欠陥検出モデルを使用して画像データを分析するためのノードコンピューティングデバイスであって、欠陥検出モデルは、画像データを入力として受信し、検出された欠陥を記述する欠陥データを出力として生成するように構成された機械学習ベースの物体検出モデルを含む、ノードコンピューティングデバイスと、ノードコンピューティングデバイスから欠陥データを受信し、欠陥データを許容範囲データと比較することによって欠陥データが許容可能であるか又は許容不可能であるかを判定するためのプログラマブルロジックコントローラ(「PLC」)デバイスと、を含む。
【0013】
システムは、検査画像を取得する前に、検査対象物品に対して第1の撮像位置にカメラを自律的に移動させるためのロボットアームを更に含み得る。
【0014】
欠陥データが許容不可能であると判定すると、ロボットアームは、検査対象物品上の物品識別子がカメラの撮像ゾーン内にある物品識別子位置にカメラを自律的に移動させるように構成され得、カメラは、物品識別子の画像を取得するように構成されている。
【0015】
システムは、物品の検査中に撮像位置の所定のシーケンスを通してカメラを自律的に移動させるためのロボットアームを更に含み得る。
【0016】
システムは、検査中に物品に係合して物品を回転させるように構成された物品マニピュレータを更に含み得る。
【0017】
画像データは、物品の回転中に取得された複数の画像を含み得、ノードコンピューティングデバイスは、画像スティッチング技術を使用して複数の画像からスティッチング画像を構築するように構成され、画像データは、スティッチング画像として欠陥検出モデルに提供される。
【0018】
システムは、PLCデバイス及びノードデバイスのうちの少なくとも1つからデータを受信し、受信されたデータを使用してビジュアライゼーションを生成し、ビジュアライゼーションをユーザインターフェースに表示するためのユーザ制御デバイスを更に含み得る。
【0019】
ユーザインターフェースは、PLCモード及びノードデバイスモードを含み得、PLCモードは、PLCデバイス動作のビジュアライゼーションを表示し、ノードデバイスモードは、ノードデバイス動作のビジュアライゼーションを表示する。
【0020】
ユーザ制御デバイスは、PLCモードとノードデバイスモードとを自動的に切り替えるように構成され得る。
【0021】
ノードコンピューティングデバイスは、検出された欠陥が必要な数の連続する画像フレームに出現したことを確認すると、欠陥データをPLCデバイスに送信するように構成され得る。
【0022】
PLCデバイスは、欠陥データが許容不可能であると判定すると、検査停止コマンドを生成するように構成され得る。
【0023】
ノードコンピューティングデバイスを含む人工知能(「AI」)外観検査システムが提供され、当該ノードコンピューティングデバイスは、検査対象物品の画像データを受信することと、少なくとも1つの欠陥タイプを検出するように訓練された欠陥検出モデルを使用して画像データを分析することであって、欠陥検出モデルは、画像データを入力として受信し、検出された欠陥を記述する欠陥データを出力として生成するように構成された機械学習ベースの物体検出モデルを含む、分析することと、を行うように構成されている。AI外観検査システムは、ノードコンピューティングデバイスに通信可能に接続され、ノードコンピューティングデバイスから欠陥データを受信し、欠陥データを許容範囲データと比較することによって欠陥データが許容可能であるか又は許容不可能であるかを判定するように構成されたプログラマブルロジックコントローラ(「PLC」)デバイスを含む。
【0024】
欠陥データは、欠陥タイプに対応する欠陥クラス、欠陥位置、及び信頼水準を含み得る。
【0025】
欠陥検出モデルは、2段階物体検出モデルを含み得る。
【0026】
2段階物体検出モデルは、第1の段階で関心領域を生成するための領域提案ネットワークを含み得、関心領域は、物体分類及びバウンディングボックス回帰のためにパイプラインに送られる。
【0027】
欠陥検出モデルは、インスタンスを3つ以上のクラスのうちの1つに分類するためのマルチクラス分類を実行するように構成され得、クラスは、少なくとも2つの欠陥タイプを含む。
【0028】
欠陥検出モデルは、最も高い可能なフレームレートで動作するように修正され得る。
【0029】
欠陥検出モデルは、ニューラルネットワークを含み得、ニューラルネットワークは、ニューラルネットワークの層を融合してニューラルネットワークのサイズを圧縮してノードコンピューティングデバイス上で実行することによって最適化されている。
【0030】
ノードコンピューティングデバイスは、ノードデバイスが暗号化され、ノードデバイス上のファイルが暗号化される二重のセキュリティ層を含み得る。
【0031】
ノードコンピューティングデバイスは、PLCデバイスが欠陥データが許容不可能であると判定したときに更新される物品の欠陥カウンタを含み得る。
【0032】
ノードコンピューティングデバイスは、連続する画像フレームにわたって欠陥を追跡することによって、検出された欠陥が真の検出であるかどうかを判定するように更に構成され得る。
【0033】
画像データは、物品の回転中に取得された複数の画像を含み得、ノードコンピューティングデバイスは、画像スティッチング技術を使用して複数の画像からスティッチング画像を構築するように構成され、画像データは、スティッチング画像として欠陥検出モデルに提供される。
【0034】
人工知能(「AI」)を用いた物品の自動外観検査の方法が提供される。方法は、カメラを使用して検査対象物品の画像データを取得することと、画像データをノードコンピューティングデバイスに提供することと、少なくとも1つの欠陥タイプを検出するように訓練された欠陥検出モデルを使用してノードコンピューティングデバイスにおいて画像データを分析することであって、欠陥検出モデルは、画像データを入力として受信し、検出された欠陥を記述する欠陥データを出力として生成するように構成された機械学習ベースの物体検出モデルを含む、分析することと、ノードコンピューティングデバイスからプログラマブルロジックコントローラ(「PLC」)デバイスに欠陥データを送信することと、PLCデバイスにおいて、欠陥データを許容範囲データと比較することによって、欠陥データが許容可能であるか又は許容不可能であるかを判定することと、を含み得る。
【0035】
方法は、ノードコンピューティングデバイスを使用して、連続する画像フレームにわたって検出された欠陥を追跡することを更に含み得る。
【0036】
ノードコンピューティングデバイスからPLCデバイスに欠陥データを送信することは、検出された欠陥が必要な数の連続する画像フレームにわたって追跡されることに応答して実行され得る。
【0037】
画像データは、物品の回転中に取得された複数の画像を含み得る。方法は、画像スティッチング技術を使用して複数の画像からスティッチング画像を構築することと、画像データをスティッチング画像として欠陥検出モデルに提供することと、を更に含み得る。方法は、欠陥データが許容不可能であると判定すると、PLCデバイスにおいて検査停止コマンドを生成することを更に含み得る。方法は、欠陥データが許容不可能であると判定すると、PLCデバイスにおいてアラームコマンドを生成することと、アラームを生成して出力するように構成されたアラームシステムにアラームコマンドを送信することと、を更に含み得る。
【0038】
方法は、欠陥データが許容不可能であると判定すると、物品の検査を継続し、検出された欠陥を含むように物品の欠陥カウンタを更新することを更に含み得る。
【0039】
方法は、欠陥データが許容不可能であると判定すると、検査対象物品上の物品識別子がカメラの撮像ゾーン内にある物品識別子位置にカメラを自律的に移動させることと、物品識別子の画像を取得することと、を更に含み得る。
【0040】
方法は、物品識別子と欠陥データとをリンクしてデータベースに記憶することを更に含み得る。
【0041】
他の態様及び特徴は、一部の例示的な実施形態の以下の説明を検討すれば、当業者には明らかになるであろう。
【0042】
本明細書に含まれる図面は、本明細書の物品、方法、及び装置の種々の例を示すためのものである。
【図面の簡単な説明】
【0043】
【
図1】一実施形態によるAI外観検査システムの概略図である。
【
図2】一実施形態による、
図1の外観検査システムの撮像ユニットの概略図である。
【
図3】一実施形態による外観検査シーケンスのフローチャートである。
【
図4】一実施形態による外観検査シーケンスの方法のフローチャートである。
【
図5】一実施形態による、
図1のノードデバイス148のネットワーク156をリアルタイムで実行する方法のフローチャートである。
【
図6】一実施形態による、
図1の外観検査システムによって実行される物体検出の方法のフローチャートである。
【
図7】一実施形態による、
図1の外観検査システムによって生成された検査済みカムシャフトの例示的な画像である。
【
図8】一実施形態による、
図1の外観検査システムによって生成された検査済みカムシャフトの例示的な画像である。
【
図9】一実施形態による、
図1の外観検査システムによって生成された検査済みカムシャフトの例示的な画像である。
【
図10】一実施形態による、
図1の外観検査システムによって生成された検査済みカムシャフトの例示的な画像である。
【
図11A】一実施形態による機械的検査サブシステムの第1の斜視図である。
【
図11B】一実施形態による、
図11Aの機械的検査サブシステムの第2の斜視図である。
【
図11G】一実施形態による、
図11Aの機械的検査サブシステムの撮像ユニットの正面図である。
【
図11I】一実施形態による、
図11Aの機械的検査サブシステムの物品ホルダ及び物品マニピュレータの正面図である。
【
図11J】一実施形態による、
図11Aの機械的検査サブシステムの例示的な部品表である。
【
図12】一実施形態による、本開示の機械的検査サブシステムの正面図である。
【
図13】一実施形態による、リアルタイムストリーミングビデオ分析の方法のフローチャートである。
【
図14A】一実施形態による、ロボットオートメーションを用いた機械的検査サブシステムの斜視図である。
【
図15】一実施形態による、生産機械及びカムシャフトAI外観検査機械を含む外観検査システムの種々の構成要素間の通信を示すブロック図である。
【発明を実施するための形態】
【0044】
特許請求される各実施形態の例を提供するために、種々の装置又はプロセスが以下で説明される。以下に記載される実施形態は、特許請求される実施形態を限定するものではなく、特許請求される実施形態は、以下に記載されるものとは異なるプロセス又は装置を包含し得る。特許請求される実施形態は、以下に記載される任意の1つの装置若しくはプロセスの特徴の全てを有する装置若しくはプロセス、又は以下に記載される装置の複数若しくは全てに共通する特徴に限定されない。
【0045】
本明細書で説明される1又は複数のシステムは、それぞれが少なくとも1つのプロセッサ、データストレージシステム(揮発性メモリ及び不揮発性メモリ及び/又は記憶要素を含む)、少なくとも1つの入力デバイス、及び少なくとも1つの出力デバイスを含む、プログラム可能なコンピュータ上で実行されるコンピュータプログラムで実装され得る。例えば、限定するものではないが、プログラマブルコンピュータは、プログラマブル論理ユニット、メインフレームコンピュータ、サーバ、及びパーソナルコンピュータ、クラウドベースのプログラム若しくはシステム、ラップトップ、携帯情報端末、携帯電話、スマートフォン、又はタブレットデバイスであってもよい。
【0046】
各プログラムは、コンピュータシステムと通信するために、高水準手続き型又はオブジェクト指向のプログラミング言語及び/又はスクリプト言語で実装されることが好ましい。ただし、プログラムは、必要に応じて、アセンブリ言語又は機械語で実装することができる。いずれの場合においても、言語は、コンパイラ型言語又はインタープリタ型言語であってよい。かかる各コンピュータプログラムは、好ましくは、記憶媒体又はデバイスが本明細書に記載される手順を実行するためにコンピュータによって読み取られる場合に、コンピュータを構成及び操作するための汎用又は専用のプログラム可能なコンピュータによって可読記憶媒体又はデバイス上に記憶される。
【0047】
互いに通信する複数の構成要素を有する一実施形態の説明は、かかる全ての構成要素が必要とされることを意味しない。むしろ、本発明の多種多様な可能な実施形態を例示するために、種々の所望による構成要素が記載されている。
【0048】
更に、プロセス工程、方法工程、アルゴリズムなどは、(本開示及び/又は特許請求の範囲において)逐次的な順序で説明され得るが、かかるプロセス、方法、及びアルゴリズムは、代替的な順序で機能するように構成され得る。換言すれば、説明され得る工程の任意のシーケンス又は順序は、必ずしも工程がその順序で実行されるという要件を示すものではない。本明細書に記載されるプロセスの工程は、実用的な任意の順序で実行され得る。更に、一部の工程は同時に実行されてもよい。
【0049】
単一のデバイス又は物品が本明細書に記載される場合、2つ以上のデバイス/物品(それらが協働するか否かにかかわらず)が単一のデバイス/物品の代わりに使用され得ることが容易に明らかになるであろう。同様に、2つ以上のデバイス又は物品が本明細書に記載される場合(それらが協働するか否かにかかわらず)、単一のデバイス/物品が2つ以上のデバイス又は物品の代わりに使用され得ることが容易に明らかであろう。
【0050】
外観検査のためのシステム及び方法が本明細書で提供される。システムは、物品を検査するために使用することができる。システムは、ノードアーキテクチャを含む。システムは、1段階又は2段階の物体検出を実行することができる。1段階物体検出器は、(2段階検出器と比較して)より少ないコンピュータ能力しか必要としないが、低い精度しか提供しない。2段階検出器は、より高い精度のために計算機資源のコストが高くなる可能性があり、小型の組み込み型デバイスへのAI導入が最大の課題の1つとなっている。本明細書で提供されるシステムは、低電力の小型計算エッジデバイス上での物体検出器の使用について説明している。
【0051】
ここで
図1を参照すると、一実施形態による外観検査システム100が示されている。この外観検査システム100は、人工知能技術を用いて欠陥検出を行うように構成されている。
【0052】
外観検査システム100は、検査ステーション108に位置している。
【0053】
検査ステーション108は、製造施設又は製造現場における品質保証ステーションであり得る。品質保証ステーションは、製造又は加工された物品の品質を評価及び決定するために使用される製造現場におけるステーション又は場所であり得る。品質保証ステーションは、品質を評価するために指定された別個のステーションであってもよく、又は製造プロセス若しくは処理プロセスの他の部分内に(例えば、コンベヤ上などに)統合されてもよい。
【0054】
検査ステーション108は、物品を検査ステーション108間で搬送するためのコンベヤベルトなどの自動搬送機構を含み得る。
【0055】
変形例では、システム100は、有利には、製造施設における既存のプロセスに対してインラインに位置決めされるように構成することができる。検査ステーション108は、システム100の構成要素を含むように適合された改造コンベヤ型システムであり得る。一例では、システム100の1又は複数の態様(例えば、それぞれ以下で説明する機械的検査サブシステム114、コンピューティングシステム116)を自動搬送機構と統合して、システム100によって提供される外観検査機能を、作業への影響を最小限に抑えて現場で既存のプロセスに統合することができるようにしてもよい。
【0056】
本明細書に記載される実施例は、製造現場又は製造施設でのシステム100(及び本明細書で説明される他のシステム)の統合及び使用に言及する場合があるが、システム100は、外観検査が行われる任意の現場で使用され得ることを理解されたい。
【0057】
外観検査システム100は、物品110を検査するために使用される。
【0058】
システム100は、物品110を検査し、物品110が欠陥を有するか否かを判定する。物品110は、システム100によって欠陥品又は非欠陥品として分類することができる。
【0059】
物品110を欠陥品又は非欠陥品として識別することによって、検査済みの物品は、外観検査の結果に基づいて区別して処理することができる。欠陥物品110は廃棄されるか、別様で更なる処理から除去することができる。非欠陥物品110は、更なる処理を継続することができる。
【0060】
概して、物品110は、欠陥があることが望ましくない物品である。物品110における欠陥は、物品110、又は物品110がその構成要素であるより大きな物品(例えば、システム又は機械)の機能的性能の低下につながり得る。物品110の欠陥は、物品の外観上の魅力を低下させる可能性がある。欠陥のある製品を発見することは、欠陥物品の販売及び使用を防止し、欠陥に関連する根本的な原因を決定し、かかる原因を修復することができるようにするために、ビジネス上の重要な工程であり得る。
【0061】
物品110は、加工された物品であり得る。物品110は、製造された物品であり得、製造プロセス中に欠陥を生じやすい。物品110は、外観から何らかの価値を引き出し、特定の欠陥が外観に悪影響を及ぼし得る物品であり得る。物品110内の欠陥は、物品110自体の製造中、又は何らかの他のプロセス(例えば、輸送、試験)中に発生し得る。
【0062】
物品110は、金属、鋼、プラスチック、複合材料、木材、ガラスなどの1又は複数の材料から構成され得る。
【0063】
物品110は、サイズ及び形状が均一であっても不均一であってもよい。
【0064】
物品110は、複数のセクションを含み得る。物品セクションは、物品サブセクションに更に分割することができる。物品セクション(又はサブセクション)は、物品の外観又は機能に基づいて決定することができる。物品セクションは、物品110のより良好な外観検査を容易にし、許容不可能な欠陥物品をより良好に識別するように決定することができる。
【0065】
物品セクションは、異なる機能を有する物品110の異なる部分に対応し得る。異なるセクションは、同様の寸法又は異なる寸法を有し得る。一部の場合では、物品110は、複数の異なるセクションタイプを含み、各セクションタイプは、物品110内に1回以上出現し得る。セクションは、規則的又は不規則的な形状であり得る。異なるセクションは、異なる欠陥仕様(すなわち、特定の欠陥に対する許容範囲)を有し得る。
【0066】
物品110は、単独で使用することが意図された独立型物品であってもよく、又はより大きな物品の構成要素(例えば、より大きな機械の機械部品)であってもよい。
【0067】
物品110は、システム100を使用して検出可能な複数のタイプ又はクラスの欠陥を生じやすい場合がある。欠陥タイプの例として、塗装、空隙、窪み、傷、汚物などが挙げられる。欠陥タイプは、物品110に応じて変化し得る。例えば、欠陥タイプは、物品110の製造プロセス又は材料組成に基づいて物品110に特有のものであってもよい。物品110の欠陥は、製造自体の間に、又は物品110のその後の処理を通して生じる可能性がある。
【0068】
物品110は、自動車及び/又はオートバイ用のパワートレイン部品であり得る。パワートレイン部品は、カムシャフト、ディファレンシャルアセンブリ、トランスミッションギア、リンケージ、サスペンション部品、又は前述のいずれかの部品若しくは構成要素であり得る。
【0069】
システム100の特定の実施形態では、物品110はカムシャフトである。概して、カムシャフトは、カムが固定されるか、又はカムが一体部分を形成するシャフトである。カムシャフトは、内燃機関の機械的構成要素として使用することができる。カムシャフトは、適切な時間に正確に規定された順序で、エンジンの吸気弁及び排気弁を開閉する。
【0070】
カムシャフトは、複数の異なる構成要素又は部品を含むことができ、各異なる構成要素は、特定の機能を提供し、特定の寸法を有する。カムシャフト構成要素は、ジャーナル、ローブ、端部、及び軸受のうちの任意の1又は複数を含み得る。
【0071】
カムシャフトは、セクションに分割され、システム100を使用して検査することができる。セクションは、カムシャフトの異なる構成要素(例えばローブセクション、ジャーナルセクション)に対応し得る。カムシャフトは、検査対象の10~17個のセクションを有し得る。10~17個のセクションには、ローブ及びジャーナルが含まれ得る。
【0072】
システム100は、カムシャフトごとに650~1700個の範囲内の画像を取得するように構成することができる。システム100は、セクションごとに50~100個の範囲内の画像を取得することができる。カムシャフトごとに13~17個のセクションが存在し得る。セクションに対して、画像は、カムシャフトの回転の7.2度ごとに取得され得る。これにより、2秒ごとに360度回転させながら、AIアルゴリズムに十分な自由度を与えて、各セクションの50~100個の画像の欠陥を適切に追跡することが可能になり得る。
【0073】
カムシャフトは、シリンダバンクの長さ方向に延びる円筒形ロッドを含むことができ、複数の楕円形ローブがロッドから突出している。ローブの数は、弁の数に対応し得る(例えば、各弁に対して1つのローブ)。主ジャーナルは、カムシャフトがエンジンベイ内で回転するときにカムシャフトを定位置に保持する。
【0074】
カムシャフトは、任意の適切なカムシャフト材料で構成することができる。カムシャフトは、チルド鋳鉄又はビレット鋼から作製され得る。
【0075】
カムシャフトは、カムシャフト又はその構成要素の製造プロセス又は他の処理のいずれを通じても、欠陥を発生する傾向があり得る。欠陥タイプには、塗装、空隙、汚物などが含まれ得る。カムシャフトの異なる構成要素又はセクションは、異なるタイプの欠陥を生じ得る。欠陥は、異なる構成要素に異なる影響を及ぼすか、又は影響を与え得る。これは、異なる構成要素が異なる機能を実行し、それにより欠陥に対して異なる許容範囲を有し得るためである。例えば、ローブ及びジャーナルの欠陥は、異なって処理され、異なる許容範囲を有してもよい。一部の場合では、構成要素のサブセクションは異なる仕様を有し得る。例えば、ローブ(卵形である)は、ローブ上の欠陥の位置に基づいて異なる欠陥仕様を有してもよい。
【0076】
一部の場合では、カムシャフトは、0.4mm程度の小さい空隙仕様を有し得る。空隙仕様は、位置に依存し得る。一例として、以下の表Aを参照されたい。
【表A】
【0077】
カムシャフトセクションは、不均一な形状を有し得る。これにより、不規則な光反射が生じ得る。カムシャフトは、防錆剤(クリア)で覆われている場合がある。カムシャフトには、汚物又は暗色の油滴がランダムに発生する場合がある。一部の場合では、汚物が空隙を覆うことがある。欠陥(例えば、空隙、汚物)は、異なるサイズ及び形状を有し得る。
【0078】
外観検査システム100は、機械的検査サブシステム114とコンピューティングシステム116とを含む。機械的検査サブシステム114及びコンピューティングシステム116は、協働して物品110を検査する。
【0079】
機械的検査サブシステム114の構成要素(例えば、アクチュエータ、モータ、撮像ユニット)は、コンベヤ上に設置され得る。構成要素をコンベヤ上に適合させるために、構成要素に対して何らかの修正を行うことができる。かかるセットアップは、例えば、アウトコンベヤを有する物品ラインで使用されてもよい。
【0080】
機械的検査サブシステム114は、検査前に物品110を保持するための物品ホルダ118を含む。検査中、物品110は物品ホルダ118から持ち上げられる。
【0081】
物品ホルダ118は、第1及び第2の物品ホルダ118a、118bを含む。物品ホルダ118a、118bは、それぞれ物品110の第1の端部119a及び第2の端部119bに又はその近くに位置決めされているものとして
図1に示されている。
【0082】
物品ホルダ118(又は複数の物品ホルダ118)の数及び位置決めは、物品110(例えば、形状、寸法、重量など)又は他の設計の選択に応じて変化し得る。任意の適切な数の物品ホルダ118を使用することができる。
【0083】
物品ホルダ118は、必要に応じて、異なる形状、サイズ、重量、材料などの物品110を収容するように修正され得る。
【0084】
システム100の他の変形例は、例えば物品110がコンベヤベルトなどの上にある間にシステム100によって検査される場合、物品ホルダ118を含まなくてもよい。かかる場合、コンベヤベルト又は他の特徴が物品ホルダ118として作用し得る。
【0085】
機械的検査サブシステム114は、物品マニピュレータ120を含む。
【0086】
物品マニピュレータ120は、物品110に係合し、物品110を操作して(すなわち、物品を移動させて)検査を容易にする。物品マニピュレータ120は、検査されている物品及び撮像セットアップに基づいて所定の方法で物品110を操作する。
【0087】
物品マニピュレータ120は、物品110がシステム100によって検査される間、特に物品110が撮像されるときに、物品110を定位置に保持するように適合される。
【0088】
物品ホルダ120は、検査中に物品110の特定のタイプの移動を許容又は制限するように構成することができる。例えば、物品ホルダ120は、物品110の中心軸に沿った物品110の回転移動125を可能にしつつ、物品110のx、y、及びz方向の移動を制限してもよい。
【0089】
物品マニピュレータ120が物品110を移動させる方法(例えば、回転、水平、垂直など)は、物品110の形状及び撮像ユニットの位置決めなどの種々の要因に依存し得る。
【0090】
概して、物品マニピュレータ120は、物品110を操作して、物品110の一部分を撮像ユニットの撮像ゾーン(例えば、以下で説明する撮像ユニット122の撮像ゾーン124)内に位置決めする。そうする際に、物品マニピュレータ120は、物品110の過去に露出されていないセクション又はサブセクションを撮像機器に露出させることなどにより、物品110全体(又は物品セクション全体)の撮像及び検査を容易にすることができる。
【0091】
物品マニピュレータ120は、ステッピングモータの使用などにより、一連の工程で物品110を操作するように構成することができる。
【0092】
物品マニピュレータ120は、第1の物品マニピュレータ120aと第2の物品マニピュレータ120bとを含む。
【0093】
第1及び第2の物品マニピュレータ120a、120bは、移動線123に沿って移動するように構成することができる。マニピュレータ120a、120bの移動は、モータによって駆動され得る。
【0094】
マニピュレータ120a、120bは、検査の開始前に移動線123に沿って物品110に向かって移動して、物品110との係合を促進する。
【0095】
物品110から離れる移動線123に沿ったマニピュレータ120a、120bの移動は、物品110の検査が完了したときに起こり、物品110の係合解除及び新しい物品の係合(載置された場合)を促進する。
【0096】
第1の物品マニピュレータ120aは、物品110の第1の端部119aと係合する。第2の物品マニピュレータ120bは、物品110の第2の端部119bと係合する。第1及び第2の物品マニピュレータ120a、120bは、マニピュレータ120a、120bの回転運動を駆動するモータに接続され、移動線125に沿った物品110の回転を引き起こす。
【0097】
図1の実施形態は2つの物品マニピュレータを示しているが、任意の数の物品マニピュレータが使用されてもよく、物品110(サイズ、重量、寸法)及び物品110に与えられる運動の種類によって規定されてもよい。
【0098】
他の実施形態では、物品マニピュレータ120は、ロボット又は回転ジグを含み得る。
【0099】
機械的検査システム114は、物品ローダを含み得る。物品ローダは
図1には示されていない。物品ローダは、検査のために物品110を自動的に載置及び搬出するように構成される。物品110を載置及び搬出することは、それぞれ、物品110を物品ホルダ118上に載置することと、物品を物品ホルダ118から搬出することとを含み得る。
【0100】
一実施形態では、物品ローダはロボットデバイス(例えば、梱包ロボット)であり得る。ロボットデバイスは、検査のために物品110を落下させ、検査後に物品110を拾い上げ、欠陥物品シュート(欠陥が存在する場合)又はトート若しくはトレイ(欠陥がない場合)のいずれかに物品を配送することができる。
【0101】
一部の場合では、物品ローダは物品110を自動的に載置することができ、物品110は人間のオペレータによって搬出される。これは、検査が梱包前の最後の工程である場合であり得る。
【0102】
システム100によって使用される物品ローダのタイプは、生産ライン及び検査される物品110のタイプに依存し得る。
【0103】
機械的検査サブシステム114はまた、撮像ユニット122を含む。撮像ユニット122は、物品110(又はそのセクション)の画像を取り込む。取り込まれた画像は、コンピューティングシステム116に提供され、コンピューティングシステム116によって分析される。
【0104】
撮像ユニット122は、撮像ゾーン124を有する。撮像ゾーン124は、撮像ユニット122によって画像データが取得されるエリアに対応し、撮像ユニット122の視野(FOV)に対応し得る。
【0105】
一実施形態では、物品110は物品セクションごとに撮像される。かかる場合、撮像ユニット122は、物品110の第1のセクションが撮像ゾーン124内にある場所に最初に位置決めされ、第1のセクションの画像が取り込まれる。次いで、物品110の第2のセクションが(撮像ユニット122又は物品110を移動させることによって)撮像ゾーン124内に位置決めされ、第2のセクションの画像が取り込まれる。このプロセスは、物品110全体が撮像されるまで、物品110の連続するセクションに対して繰り返すことができる。一部の場合では、各セクションの複数の画像が取り込まれ得る。セクションの複数の画像により、画像のシーケンスを構成することができる。例えば、第1のセクションの複数の画像が取り込まれ、その後に第2のセクションの複数の画像が取り込まれてもよい。一部の場合では、複数の画像は、物品110の360°撮像を表してもよい。かかる場合、複数の画像の各々には、過去に撮像されていない物品110の一部分が含まれる。
【0106】
撮像ユニット122は、照明機構126と、カメラ128と、通信サブシステム/インターフェース130とを含む。
【0107】
照明機構126は、物品110に光を照明する。照明機構126は、照明された光を撮像ゾーン124に集束又は制限し得る。照明機構126は、照明機構126と通信する照明コントローラによって制御され得る。
【0108】
照明機構126は、撮像ゾーン124内の物品110上に均質又は均一な照明を照明するように構成することができる。照明機構126はまた、物品110上の影を最小化するか又は排除するように構成することができる。
【0109】
照明機構126は、トンネル照明、同軸照明、又はドーム照明などの1又は複数のタイプの照明を使用することができる。
【0110】
一実施形態では、照明機構126は、トンネル照明及び同軸照明を含む。別の実施形態では、照明機構126は、トンネル照明のみを含んでもよい。
【0111】
撮像ゾーン124内の物品110に均一な照明を提供し、影を回避するように、照明機構126によって提供される照明の1又は複数のタイプを選択することができる。
【0112】
カメラ128は、撮像ゾーン124内に位置決めされた物品110を含む、撮像ゾーン124の画像データを取り込み、画像データをメモリに記憶する。
【0113】
カメラ128は、エリアスキャンカメラであり得る。エリアスキャンカメラは、BASLERエリアスキャンカメラ(例えば、Basler acA1920-40uc)であり得る。エリアスキャンカメラは、同時に露出される2つ以上の画素ラインを有する矩形センサを含む。
【0114】
一実施形態では、システム100は複数のカメラ128を有し得る。複数のカメラ128を使用することにより、検査時間を短縮することができる。カメラ128はそれぞれ、それ自体の撮像ユニット122を有し得る。特定の場合では、システム100は2つのカメラを有してもよく、各カメラは物品セクションの半分を撮像する役割を果たす。カムシャフトの外観検査の例では、カメラは、カムシャフトの各端部に位置決めされ、セクションの半分(例えば、合計16セクションのうちの8セクション)を撮像する役割を果たし得る。2カメラの検査を使用することにより、カムシャフトの全体的な検査時間を半分に短縮することができる。欠陥検出は、各カメラで取得された画像に対して独立した処理として行われてもよい。
【0115】
カメラ128は、通信サブシステム130を介してコンピューティングシステム116に接続される。通信サブシステム/インターフェース130は、カメラ128の通信インターフェース及びデータ転送コネクタ(例えば、USB3.0ケーブル)を含み得る。
【0116】
通信サブシステム130は、データ(カメラ128によって生成された画像データを含む)をコンピューティングシステム116に転送する。コンピューティングシステム116に転送されるデータは、カメラ128によって生成された画像データを含む。
【0117】
ここで
図2を参照すると、一実施形態による撮像ユニット122の正面図が示されている。
【0118】
撮像ユニット122は、照明機構126を含む。照明機構126は、LEDトンネル照明210と、トンネル照明210の上方に位置決めされたLED同軸照明212とを含む。別の実施形態では、トンネル照明210は、ドーム照明と置き換えられてもよい。ドーム照明は、ロボットアーム(例えば、
図14のロボットアーム1484)などのロボットデバイスに取り付けられてもよい。
【0119】
トンネル照明210を使用して、細長い円筒形の物品110(例えば、カムシャフト)に拡散照明を提供することができる。拡散照明は、影を低減し、物品110上に均一な照明を提供することができる。
【0120】
同軸照明212は、反射率の高い物品110(例えば、鋼で構成されている)を撮像するのに役立ち得る。光は拡散バックライトによって生成され、ハーフミラーを使用して物品110に向けられるので、照明軸はカメラ128の光軸と同じである。これにより、影のない画像を生成することができ、反射を排除することができる。
【0121】
トンネル照明210は、第1の照明ケーブル220を介してトンネル照明コントローラ214に接続されている。トンネル照明コントローラ214は、トンネル照明210の動作を制御し、この動作には、提供される光の量が含まれる。
【0122】
同軸照明212は、第2の照明ケーブル218を介して同軸照明コントローラ220に接続されている。同軸照明コントローラ220は、同軸照明212の動作を制御し、この動作には、提供される光の量が含まれる。
【0123】
同軸照明212の上方にはレンズ222が位置決めされている。レンズ222は、マシンビジョンシステムに設置するのに適した高解像度レンズであり得る。レンズ222は、9メガピクセルレンズであり得る。
【0124】
レンズ222は、カメラ128に接続されている。カメラ128は、エリアスキャンカメラである。カメラ128は、物品110の画像データを取り込む。
【0125】
カメラ128は、取り込んだ画像データを、通信ケーブル224を介して物体検出用ノードデバイス148に転送する。通信ケーブル224は、USB3.0ケーブルであり得る。
【0126】
再び
図1を参照すると、撮像ユニット122は、撮像ユニットマニピュレータ132に接続されている。撮像ユニットマニピュレータ132は、物品110(又はその一部分)を撮像ユニット122の撮像ゾーン124内に位置決めするために、物品110に対して撮像ユニット122を移動させる。
【0127】
撮像ユニットマニピュレータ132は、フレーム134を有する。フレーム134は、直立支持体136a、136bと、支持体136a、136bに固定して取り付けられたトラック138とを含む。
図1に示すように、トラックは、物品110と実質的に平行に配置され得る。
【0128】
撮像ユニットマニピュレータ132は、トラック138に摺動可能に取り付けられた撮像ユニットマウント140を含む。撮像ユニットマウント140は、撮像ユニット122がマウント140を介してトラック138に沿って移動され得るように、撮像ユニット122に接続し、撮像ユニット122をフレーム134に固定するように構成される。
【0129】
図1に示す実施形態では、撮像ユニット122は、物品110に対して移動線142に沿ってトラック138を水平方向に移動する。変形例では、撮像ユニットマニピュレータ132は、物品110に対して垂直方向に、又は物品110に対して垂直方向及び水平方向に撮像ユニット122を移動させるように構成することができる。
【0130】
他の実施形態では、撮像ユニット122は静止していてもよく、物品110は、物品110の異なるセクションを撮像するために(例えば、物品マニピュレータ120又はコンベヤベルトを介して)移動されてもよい。
【0131】
撮像ユニット122が物品110に対して水平方向142に移動できるように撮像ユニットマニピュレータ132を配置することで、撮像ユニット122が水平軸に沿って物品110の複数のセクションの画像データを好適に取り込むことが可能になり得る。
【0132】
撮像ユニットマニピュレータ132は、物品マニピュレータ120と協調して動作して、物品全体の画像を取り込むことができる。
【0133】
撮像ユニットマニピュレータ132はまた、撮像ユニット122を移動させるためのモータを含む。モータは、ステッピングモータであり得る。一実施形態では、撮像ユニットマニピュレータ132は、撮像ユニット122を垂直に(上下に)移動させるためのアクチュエータと、撮像ユニット122を物品110の長さ方向に沿って水平に移動させるためのステッピングモータとを含む。アクチュエータは空気圧シリンダであり得る。
【0134】
システム100の別の実施形態では、機械的検査サブシステム114は、物品110を撮像するためのロボットシステムを含む。ロボットシステムは、ロボットアームと、コンピューティングデバイスを含むロボットアームコントローラとを含み得る。一実施形態では、ロボットシステムは、
図14のロボットシステム1482であり得る。撮像ユニット122(カメラ128及び照明機構126を含む)は、ロボットアームに搭載されるか、又は別様に取り付けられ得る。ロボットアームは、撮像ユニットマニピュレータ132、フレーム134、直立支持体136、トラック138、及び撮像ユニットマウント140のうちの任意の1又は複数に置き換えることができる。ロボットアームは、3次元で移動すること(すなわち、厳密には移動線142に沿っていない)が可能であり得る。概して、ロボットアームは、検査される物品110に対して撮像ユニット122(カメラ128及び照明機構126)を移動させ、物品110の長さ方向に沿ってなど、物品の複数のセクションの画像を取り込むために使用される。ロボットアームは、自律的に機能し得る(すなわち、カメラ/撮像ユニットを自律的に移動させるなどの移動を実行し得る)。例えば、物品110の撮像中に実行されるロボットアームの移動は、ロボットアームコントローラにプログラムされてもよい。物品の異なる形状及びサイズによって、プログラムされた移動は変化する場合がある。物品110を撮像するためのロボットアームの移動は、各物品110に対して実行される一連の移動を含み得る。ロボットシステムは、他のシステム100の構成要素と通信するためのイーサネット(登録商標)/IPモジュール(例えば、
図15のイーサネット(登録商標)/IPモジュール1512)などの通信インターフェースを含み得る。例えば、ロボットシステムは、イーサネット(登録商標)/IPモジュールを使用して、生産機械のPLC又は外観検査システム100のPLC146と通信してもよい。
【0135】
外観検査システム100は、システム100の種々の制御、分析、及びビジュアライゼーション機能を実行するためのコンピューティングシステム116を含む。コンピューティングシステム116は、外観検査を実行するためにコンピューティングシステム116と機械的検査サブシステム114との間のデータ転送を容易にするために、機械的検査システム114に通信可能に接続される。
【0136】
コンピューティングシステム116は、プログラマブルロジックコントローラ(PLC)146と、ノードデバイス148と、ユーザ制御デバイス150とを含む。デバイス146、148、150は互いに通信可能に接続され、これには有線接続又は無線接続が含まれ得る。デバイス146、148、150は、有線又は無線のネットワークなどのネットワーク152を介して互いに接続され得る。ネットワーク152は、本明細書で説明する構成要素間の直接有線接続を含み得る。ネットワーク152を介したPLC146などの他の構成要素との機械的検査サブシステム114の態様の通信は、機械的検査システム114からネットワーク152への実線によって表されている。
【0137】
PLC146は、外観検査システム100の電気機械プロセスを自動化するように適合されたデジタルコンピュータである。PLC146は、高い信頼性の制御、並びにプログラミング及びプロセス故障診断の容易性を提供することができる。
【0138】
PLC146は、外観検査システム100の種々の構成要素及び動作を制御するように構成されたPLCコンピュータプログラムを記憶するためのメモリ(例えば、RAM又はフラッシュなどのメモリ)と、PLCコンピュータプログラムを実行するためのプロセッサとを含む。PLC146は、システム100の他の構成要素との間でデータ(例えば欠陥データ)を送受信するための通信インターフェースを含む。
【0139】
PLCコンピュータプログラムは、機械的検査サブシステム114の1又は複数の構成要素の移動及び動作を制御し、ノードデバイス148及びユーザ制御デバイス150とインターフェースを有し、ノードデバイス148から受信された欠陥データを処理するためのコンピュータ実行可能命令を含む。
【0140】
PLC146はまた、
図4の検査シーケンス400などの検査シーケンスを実行するように構成される。
【0141】
PLC146は、PLCコンピュータプログラムを介して複数のアクチュエータ及びモータを制御する。アクチュエータ及びモータは、機械的検査サブシステム114の構成要素を移動させる。任意の適切な数のアクチュエータ及びモータを使用することができる。
【0142】
PLC146は、手動モード又は自動モードのいずれかでアクチュエータ及びステッピングモータを制御することができる。
【0143】
アクチュエータは、空気圧シリンダなどのシリンダであり得る。
【0144】
モータは、ステッピングモータであり得る。
【0145】
システム100は、第1のアクチュエータ、第2のアクチュエータ、及び第3のアクチュエータを含む3つのアクチュエータを含む。
【0146】
第1のアクチュエータは水平移動用である。PLC146からの命令に応じて、第1のアクチュエータは、物品マニピュレータ120aを物品の第1の端部119aに向かって、かつそこから離れるように水平方向に移動させる。
【0147】
第2のアクチュエータは水平移動用である。PLCからの命令に応じて、第2のアクチュエータは、物品マニピュレータ120b(ステッピングモータを含む)を物品110の第2の端部119bに向かって、かつそこから離れるように水平方向に移動させる。
【0148】
第3のアクチュエータは垂直移動用である。第3のアクチュエータは、PLC146からの命令により、撮像ユニット122を物品110に対して上下に移動させる。
【0149】
機械的検査サブシステム114はまた、水平移動モータ及び回転移動モータを含む2つのステッピングモータを含む。
【0150】
水平移動モータは、PLC146からの命令により、撮像ユニット122をトラック138に沿って水平移動させる。撮像ユニット122の撮像位置に応じて、撮像ユニット122を段階的に移動させることができる。撮像位置は、物品110のセクションに対応し得る。撮像位置は予め定められていてもよい。後続の工程又は位置に移動することは、PLC146がシステム100の別の構成要素から(例えば、ノードデバイス148から)信号を受信すること、又はイベントベースの移動を使用することに基づき得る。例えば、ロボット又はカメラは、第1のセクションが完了したことの検出などのイベントに基づいて、物品110の第1のセクションから物品110の第2のセクションに移動するように命令されてもよい。
【0151】
PLC146からの命令で、回転移動モータは、物品110を回転させて、物品全体の検査(例えば、360°全体)を容易にする。物品110は、物品110のサブセクションに対応するステップ(例えば、4度)で回転され得る。
【0152】
撮像ユニット122及び物品マニピュレータ120a、120bは、それぞれ、戻り/ホーム位置及び前進位置を有する。ホーム位置に戻るために、物品マニピュレータ120aは、第1のアクチュエータによって物品110から水平方向に離れるように(左に)移動される。ホーム位置に戻るために、物品マニピュレータ120bは、第2のアクチュエータによって物品110から水平方向に離れるように(右に)移動される。ホーム位置に戻るために、撮像ユニット122は、第3のアクチュエータによって物品110から垂直上方に離れるように移動される。前進位置に前進するために、物品マニピュレータ120aは、第1のアクチュエータによって物品110に向かって水平方向に(右に)移動される。前進位置に前進するために、物品マニピュレータ120bは、第2のアクチュエータによって物品110に向かって水平方向に(左に)移動される。前進位置に前進させるために、撮像ユニット122は、第3のアクチュエータによって物品110に向かって垂直下方に移動される。撮像ユニット122はまた、水平移動モータを介してカムシャフトをスキャンするために、カムシャフトを下方に水平方向に(例えば右から左に)移動する。
【0153】
PLC146は、機械状態データをPLC146に提供するように構成された複数のセンサに通信可能に接続される。機械状態データは、アクチュエータなどのサブシステム114の構成要素に関する状態情報、及び物品110が載置されているか否かを提供する。
【0154】
PLC146は、PLCコンピュータプログラムを介してノードデバイス148とインターフェースを有する。PLC146は、TCP通信プロトコルを介してノードデバイス148と通信することができる。
【0155】
PLC146がノードデバイス148から受信するデータには、ノードデバイス148で欠陥が検出されたか否かを示すコードが含まれる。
【0156】
例えば、ノードデバイス148が欠陥を発見した場合、PLC146は、物品110に欠陥が発見されたこと及び物品110に欠陥があること(すなわち、「不良」)を示すNGコードをノードデバイス148から受信してもよい。
【0157】
NGコードは、欠陥を記述する欠陥データを含み得る。欠陥データは、欠陥タイプ又はクラス(例えば、空隙、汚物、塗装、傷、窪みなど)及び欠陥サイズを含み得る。
【0158】
ノードデバイス148が欠陥を発見しなかった場合、PLCは、欠陥が発見されなかったことを示すOKコードをノードデバイス148から受信することができる。
【0159】
PLC146は、PLCコンピュータプログラムを介してノードデバイス148から受信した欠陥データを処理する。PLC146は、ステッピングモータからモータデータを受信する。モータデータは、物品110のセクションを識別する(例えば、第1のステッピングモータ水平からの)水平読み取り値を含み得る。モータデータは、カムシャフト角度を識別する(第2のステッピングモータ回転からの)回転読み取り値を含み得る。カムシャフト角度は、ピン/キー溝を基準とすることができる。PLC146は、モータデータを使用して、物品110(カムシャフト)の正確なX座標及びθ座標を識別する。モータデータは、セクションデータ(例えばx座標値)と角度データ(例えばθ座標値)とを含む。セクションデータは、物品110の特定のセクションを記述する(例えば、水平座標値xに関連付けることができる)。角度データは、特定の物品の角度を記述する(物品マニピュレータ120に関して(例えば、物品マニピュレータ120bはステッピングモータを含み、物品110の角度を維持する))。セクションデータ及び角度データはともに、物品110のサブセクションを記述する。物品サブセクションは、特定の欠陥タイプに対する許容範囲を含む特定の欠陥仕様(すなわち、特定のセクション/角度の組み合わせに対する)を有する。許容範囲を含む欠陥仕様は、PLC146によってメモリに記憶され、特定のセクション及び角度の組み合わせにリンクされる。物品の異なるサブセクションは、異なる許容範囲を有し得る。
【0160】
上述したように、PLC146は、ノードデバイス148にデータを送信するようにも構成される。
【0161】
PLC146からノードデバイス148に送信されるデータは、検査コードを含み得る。検査コードは、ノードデバイス148に検出開始を命令する。例えば、物品110は、回転モータによって段階的にゆっくり回転させてもよい。各工程について、PLC146は、ノードデバイス148に検出を開始するように命令する検査コードをノードデバイス148に送信することができる。
【0162】
別の実施形態では、コンピューティングシステム116は、画像スティッチング技術を使用することができる。例えば、PLC146は、物品110の画像を撮影するようにノードデバイス148に命令する。次いで、PLC146は、物品110を回転的に移動させ(すなわち、物品110を増分的に回転させ)、ノードデバイス148に物品110の別の画像を取得するように(すなわち、第2の画像の少なくとも一部分が物品110の過去に見えなかった部分であるように)命令する。PLC146及びノードデバイス148による動作のこのプロセスは、物品110の360°全体が撮像されるまで繰り返され得る。物品110の360°撮像を表す複数の画像は、次いで、ノードデバイス148によって互いにスティッチングされ、画像スティッチング技術に従ってスティッチング画像が構築される。そして、ノードデバイス148は、スティッチング画像に対して物体検出を行う。かかる場合、物体検出は、スティッチング画像上の360°の最後の回転時にノードデバイス148によって1回行われ得る。PLC146は、物品110の360回転の完了時に、ノードデバイス148に検出を開始するように命令する検査コードをノードデバイス148に送信することができる。ノードデバイス148は、物品110の複数の隣接するセクションについて、スティッチング画像を構築し、スティッチング画像に対して物体検出を実行し得る。画像スティッチングは、有利には、スティッチング画像によってカバーされる物品のセクション全体を表すスティッチング画像に対して、推論が1回だけ実行されることを可能にし得る。画像を最終的な大きな(スティッチングされた)画像に一緒にクロッピングする動作により、システムに最高品質の画像を提供することができる。
【0163】
PLC146からノードデバイス148に送信されるデータは、終了コードを含み得る。終了コードは、ノードデバイス148に検出終了を命令する。終了コードは、新しい物品110が載置されるまで検出を終了するようにノードデバイス148に命令することができる。
【0164】
PLC146はまた、ノードデバイス148にハンドシェイクデータを送信し、ノードデバイス148からハンドシェイクデータを受信し得る。ハンドシェイクデータは、PLC146とノードデバイス148との間で交換されるときに、デバイス146、148間の通信チャネルを確立する特定のコードを含む。
【0165】
PLC146は、PLCコンピュータプログラムを介してユーザ制御デバイス150とインターフェースを有する。PLC146は、サブシステム114の動作の状態を示すデータをユーザ制御デバイス150に送信することができる。かかる受信されたデータは、ユーザ制御デバイス150によって可視化され得る。PLC146はまた、ユーザ制御デバイス150からデータを受信し得る。かかるデータは、ユーザ制御デバイス150で受信されたユーザ入力に従って、PLC146又はサブシステム114の動作を制御し得る。
【0166】
ここでノードデバイス148を参照すると、ノードデバイス148は、エッジコンピューティングデバイスであり得る。ノードデバイス148は、AIアプリケーションを実行し、ディープラーニングタスクを実行するように特に構成されたエッジデバイスであってもよく、かかるタスクを実行するのに適した、又は適合された処理構成要素を含んでもよい。
【0167】
一実施形態では、ノードデバイス148は、JETSON XAVIERデバイスである。
【0168】
ノードデバイス148は、安全であり、検査の現場又は施設の外部のデバイスに接続する必要のないエッジソリューションを提供することができる。これにより、データをオンプレミスに残すことができる。
【0169】
ノードデバイス148は暗号化(例えば、デバイスレベル暗号化)することができるノードデバイス148上のファイルは暗号化(例えば、ファイルレベル暗号化)することができるこれにより、二重のセキュリティ層が提供され得る。
【0170】
一実施形態では、システム100は、ノードアーキテクチャに配置された複数のノードデバイス148を含み得る。複数のノードデバイス148は、同時に動作し、PLC146と前後に通信することができる。かかるアーキテクチャは、ユーザのための効率的なスケールアップを促進し得る。ノードアーキテクチャはまた、1つのノードデバイス148が故障又は破損した場合、機能していないノードデバイスを代替ノードデバイスを差し込むことによって交換することができるため、機器の問題によって引き起こされる潜在的なダウンタイムを低減することができる。
【0171】
ノードデバイス148は、外観検査システムに関連するコストを、特に既存のエッジベースの手法と比較して、有利に低減することができる。かかる既存のエッジベースの手法は、典型的には、実行するためにコンピュータハードウェアを必要とする通常のNvidia又は同等のグラフィックスカードを使用し得る。
【0172】
推論タスク(すなわち、物体検出、欠陥分類)を実行するためにノードデバイス148を使用することによって、外観検査システム100は、250Wの範囲内の消費を有し得るGPUを有する大型サーバを使用する既存のオンサイト推論手法と比較して、電力消費を低減することができる。例えば、ノードデバイス148は、30Wの範囲内の著しく低い消費を有していてもよい。
【0173】
ノードデバイス148は、組み込み型コンピューティングデバイスである。
【0174】
ノードデバイス148は、処理構成要素及び記憶構成要素を含む。
【0175】
処理構成要素は、1又は複数のCPU及びGPUを含み得る。
【0176】
記憶構成要素は、RAM及びフラッシュなどのメモリを含む。
【0177】
また、ノードデバイス148は、PLC146、ユーザ制御デバイス150、及びカメラ128と通信するための通信インターフェースを含む。
【0178】
ノードデバイス148は、ノードデバイス148の処理構成要素によって実行されると、ノードデバイス148に本明細書で説明されるアクション及び機能を実行させるコンピュータ実行可能命令を含む1又は複数のコンピュータプログラムをメモリに記憶する。
【0179】
ノードデバイス148は、エッジにおいて人工知能を実行するように構成される。ノードデバイス148を使用してエッジでAIを実行する利点として、より速い推論速度、画像取り込みと推論結果との間のより低いレイテンシ、及びデータが施設を出る必要がないことが挙げられる。
【0180】
ノードデバイス148は、通信を確立するために、PLC146との間で特定のコードを送受信するように構成される。
【0181】
ノードデバイス148は、PLC146から検査コードを受信する。ノードデバイス148は、検査コードを受信すると、物体検出パイプラインを開始する。
【0182】
ノードデバイス148は、カメラ128に通信可能に接続され、物品110の画像を取得するようにカメラ128に命令する。ノードデバイス148は、APIなどを介してカメラ128と通信し得る。
【0183】
ノードデバイス148は、欠陥検出モデル154を含む。欠陥検出モデル154は、物品110の画像データを分析し、その中の欠陥を識別するように構成された機械学習ベースのモデルである。欠陥検出モデル154は、物体検出技術を使用して、画像データ内の欠陥を識別する。欠陥検出モデル154は、インスタンスを3つ以上のクラスのうちの1つに分類するためのマルチクラス分類を実行するように構成され得る。クラスは、欠陥検出モデル154が検出するように訓練された異なる欠陥タイプに対応し得る。クラスは、少なくとも2つの欠陥タイプを含み得る。
【0184】
ノードデバイス148は、欠陥検出モデル154を訓練し、最適化し、実行するように構成されたソフトウェアモジュールを含み得る。
【0185】
欠陥検出モデル154は、TensorFlow物体検出API(Object Detection API)などの物体検出APIを利用することができる。物体検出APIは、物体検出モデルの構築、訓練、及び展開を容易にするオープンソースフレームワークであり得る。
【0186】
欠陥検出モデル154は、欠陥分類を実行するように構成される。欠陥分類は、検出された欠陥を欠陥クラスに割り当てることを含む。欠陥クラスは、欠陥検出モデル154が検出するように訓練される特定の欠陥タイプ(例えば、窪み、塗装、傷など)に関連付けられる。物体検出モデル154は、物品110上に存在し得る汚れ、汚物、油及び水のマークなどの異常を無視する方法を学習するように(すなわち、モデル154の訓練を介して)最適化することができる。かかる異常を無視する物体検出モデル154の能力は、有利に誤警報の割合を低減させることができる。
【0187】
欠陥検出モデル154は、画像データを分析して欠陥データを生成する。欠陥データは、識別された欠陥に関する情報、例えば欠陥タイプ、欠陥サイズ、欠陥信頼水準、及び欠陥位置を含む。
【0188】
ノードデバイス148は、欠陥データを1又は複数の記憶構成要素に記憶する。ノードデバイス148は、更なる処理のために欠陥データをPLC146に送信することができる。PLC146は、欠陥データを処理し、欠陥が許容不可能な欠陥(許容範囲外)であるか許容可能な欠陥(許容範囲内)であるかを判定する。
【0189】
ノードデバイス148は、ビジュアライゼーションのために欠陥データをユーザ制御デバイス150に送信することができる。
【0190】
一実施形態では、欠陥検出モデル154はニューラルネットワーク156を含む。ニューラルネットワーク156は、欠陥物品及び非欠陥物品110の画像に対して訓練される。訓練は、既知の訓練技術及び本明細書に記載される技術に従って実行され得る。
【0191】
一実施形態では、ニューラルネットワーク156は、推論のためのモデル訓練及び変換を使用して生成され、これには、予め訓練されたモデルを取得すること、新たなデータを用いて予め訓練されたモデルを訓練すること、モデルをプルーニングすること、プルーニングされたモデルを再訓練して出力モデルを生成すること、及び出力モデルをエンジン(例えば、TensorRTエンジン及び/又は最適化されたCUDAバックエンド)に通すことが含まれ得る。
【0192】
ニューラルネットワーク156は、Faster Region-based Convolutional Neural Network(faster R-CNN)又はCSPDarknet53であり得る。
【0193】
より高速なR-CNNは、ResNet又はInception分類バックボーンを有し得る。ResNetは、ResNet50又はResNet101であり得る。Inceptionは、Inception v2であり得る。
【0194】
ニューラルネットワーク156(例えば、CSPDarknet53)は、重み付き残差結合(WRC)、クロスステージ部分結合(CSP)、クロスミニバッチノーマライゼーション(CmBN)、自己敵対的訓練(SAT)、及びミッシュ活性化などの新しい最新技術を使用して、1段階検出器のみでありながら、2段階物体検出と同様の結果を達成することができる。
【0195】
上述のニューラルネットワーク156は、ノードデバイス148上で動作するように最適化することができる。最適化は、本明細書に記載の最適化方法に従って実施することができる。最適化には、カーネル自動調整(Kernel Auto-Tuning)、層及びテンソルの融合(Layer and Tensor Fusion)、精度較正(Precision Calibration)(FP32~FP16)、CUDA最適化、及び動的テンソルメモリ(Dynamic Tensor memory)の利用のうちの任意の1又は複数が含まれ得る。最適化により、ニューラルネットワーク156の層を融合して、ノードデバイス148上で実行するためにネットワークサイズを圧縮することができる。これは、ネットワーク156がノードデバイス148上で効果的に動作することを可能にし得、エッジにおける局所的な推論を可能にする。
【0196】
ノードデバイス148は、画像ごとの処理時間を有し、リアルタイム速度を可能にし得る。ノードデバイス148は、1000(幅)×1000(高さ)ピクセルを超える画像サイズに対して、画像当たり約25ms~60msの処理時間を有し得る。ノードデバイス148が一般的なGPUである実施形態では、画像ごとの処理時間は5ms~60msの範囲内であり得る。
【0197】
欠陥検出モデル154は、2段階物体検出モデルを含み得る。2段階物体検出モデルは、TensorFlowなどの訓練フレームワークを用いて訓練することができる。2段階物体検出モデルは、入力画像サイズ、バッチ番号、並びに第1の段階及び第2の段階の提案のうちのいずれか1又は複数に対する修正を含み得る。かかる修正は、精度を可能な限り高く、又は許容可能な水準に維持しながら、モデルの効率を改善し得る。
【0198】
2段階検出モデルは、第1の段階で関心領域を生成するために領域提案ネットワークを使用することができる。次いで、関心領域は、物体分類及びバウンディングボックス回帰のためにパイプラインに送られる。
【0199】
欠陥検出モデル154が事前訓練されると、ニューラルネットワーク156の重みは、転移学習を使用して微調整され得る。転移学習は、許容可能な結果を得ながら、データセットのサイズを縮小し、総訓練時間を短縮することができる。
【0200】
欠陥検出モデル154は、非常に大きなデータセット(例えば、1000個のカテゴリを有する120万個の画像を含むImageNet、又はCommon Objects in Context(COCO))に対して事前訓練されたCNNを含むことができ、次いで、欠陥検出タスクのための初期化又は固定特徴抽出器としてCNNを使用することができる。
【0201】
転移学習を使用する微調整には、CNNを微調整することが含まれ得る。CNNを微調整することは、新しいデータセット上でCNNの上の分類器を置換及び再訓練することと、バックプロパゲーションを継続することによって事前訓練されたネットワークの重みを微調整することとを含み得る。CNNの層の全てが微調整されてもよく、又は初期の層の一部が(例えば、過剰適合の懸念に起因して)固定されたままであってもよく、ネットワークの一部のより高い水準の部分が微調整されてもよい。これは、CNNの初期の特徴には多くのタスクに有用であるより一般的な特徴(例えば、エッジ検出器又はカラーブロブ検出器)が含まれるが、CNNの後期の層は、元のデータセットに含まれるクラスの詳細に対して次第により特異的になっていくという観察によって動機付けられ得る。
【0202】
一実施形態では、欠陥検出モデル154(例えば、ニューラルネットワーク156)は、ノードデバイス148(例えば、Jetson Xavier)上でより効率的に動作するように修正することができる。
【0203】
例えば、モデルは、最も高い可能なフレームレート(FPS)で動作するように修正されてもよい。フレームレートとは、1画像あたりの推論のフレームレートである。フレームレートは、多数の要因(例えば、画像サイズ、層の数、アンカーボックスの数、ネットワーク内のアルゴリズム、ネットワーク内の演算、浮動小数点精度、層の融合など)によって決定され得る。ノードデバイス148によるより高いFPS推論は、工業的な製造検査プロセスにより適した水準まで検査時間を短縮することができる。
【0204】
欠陥検出モデル154は、ノードデバイス148上での推論のために最適化され得る。
【0205】
欠陥検出モデル154は、TensorRT又はOpenCV(CUDA)で最適化することができる。最適化は、モデルが過剰適合されないことを確実にするための最適な訓練反復回数後、及び過剰適合を低減するために拡張画像を用いて訓練した後に行われ得る。
【0206】
欠陥検出モデル154の訓練は、画像の拡張を含み得る。データ拡張を実行して、入力画像の変動性を高めることができるため、設計された物体検出モデルは、異なる環境から取得された画像に対してより高いロバスト性を有する。実装され得る2つの拡張戦略には、物体検出モデルの訓練を支援する際の測光歪み及び幾何学的歪みが含まれる。測光歪みに対しては、画像の明るさ、コントラスト、色相、彩度、ノイズを調整することができる。幾何学的歪みについては、ランダムなスケーリング、クロッピング、フリッピング、及び回転を追加することができる。他の特別な拡張として、例えば、ランダム消去、CuTOUT、特徴マップにおけるDropout/Drop Connect/Dropblock、Mixup(2つの異なる画像による)、CutMix、モザイク拡張が挙げられる。
【0207】
訓練中に画像を拡張することによって、訓練セットを人工的に成長させることができ、これにより、欠陥検出モデル154(物体検出器)の一般化能力のロバスト性を高めることができる。
【0208】
次いで、ネットワークは、パイソンでFP16精度でノードデバイス148上で実行することができる。ネットワーク最適化は、ノードデバイス148自体で実行される。これは、現在の実行時にCUDAで最適化された利用可能なハードウェア及びカーネルを利用するためである。
【0209】
ユーザ制御デバイス150は、プロセッサと、メモリと、出力インターフェースとを含む。出力インターフェースはディスプレイ158を含む。ユーザ制御デバイス150は、PLC146及びノードデバイス148などのシステム100の他の構成要素との間でデータを送受信するための通信インターフェースを含む。
【0210】
ユーザ制御デバイス150はまた、オペレータからの入力を受信するための入力インターフェースを含む。入力インターフェースは、ディスプレイ158上のタッチスクリーンであり得る。
【0211】
一実施形態では、ユーザ制御デバイス150のディスプレイ158は、タッチディスプレイ及び高解像度の通常のモニタの両方として動作することができる。
【0212】
メモリは、PLC146及びノードデバイス148から受信したデータを記憶し、当該データには、欠陥データが含まれる。
【0213】
メモリはまた、ユーザインターフェース160を生成及び表示するための1又は複数のコンピュータプログラムを記憶する。ユーザインターフェース160は、外観検査の結果のビジュアライゼーション162を含む。
【0214】
プロセッサは、ノードデバイス148から受信した欠陥データに基づいてビジュアライゼーション162を生成することができる。
【0215】
一実施形態では、ユーザインターフェース160は、PLCモード及びノードデバイスモードを含み得る。PLCモードでは、ユーザインターフェース160は、PLC動作(例えば、動作中の機械的検査サブシステム114)のビジュアライゼーションを生成して表示する。PLCモードにおけるビジュアライゼーションは、PLC146からのデータを使用して生成される。ノードデバイスモードでは、ユーザインターフェース158は、ノードデバイス動作(例えば、物体検出)のビジュアライゼーションを生成して表示する。ノードデバイスモードにおけるビジュアライゼーションは、ノードデバイス148からのデータを使用して生成される。PLCモードとノードデバイスモードとの間の切り替えは、自動的に(例えば、検出が実行されているときにノードデバイスモードへと)行われるようにプログラムされてもよく、又は入力インターフェースを介してオペレータからコマンドを受信することなどによって手動で行われてもよい。
【0216】
一実施形態では、外観検査システム100は、欠陥が検出される(及び確認される)と物品110の検査を停止するように構成することができる。かかる一実施形態は、欠陥物品110の不必要な検査を制限することによって速度上の利点を提供することができる。例えば、物品110が10個のセクションを有し、欠陥が物品110の第3のセクションにおいてコンピューティングシステム116によって識別された場合、外観検査システム100は、物品の検査を停止し、残りの7個のセクションの検査に進まなくてもよい。物品110は搬出され、新しい物品が載置され、検査される。一部の場合では、物品110の検査を停止すると、システム100は、物品110上の物品識別子を(例えば、撮像ユニット122を移動させ、物品識別子の画像を取得することによって)読み取り、識別子を欠陥物品と関連付けてから搬出することができる。検査の停止は、(例えば、検出された欠陥が許容範囲外であると判定した後に)PLC146によって開始することができる。PLC146は、機械的検査サブシステム114の1又は複数の構成要素に検査停止コマンドを送信することができる。検査停止コマンドは、受信構成要素によって受信及び処理されると、受信構成要素に、検査の停止を容易にする1又は複数の動作(例えば、撮像ユニット122を異なる位置に移動させること、物品110を物品マニピュレータ120から搬出すること、物品110を検査エリアから移動させること、新しい物品を物品ホルダ118上に載置することなど)を行わせることができる。
【0217】
別の実施形態では、外観検査システム100は、欠陥が発見された後も継続することができる(すなわち、第1の欠陥が識別され、物品が欠陥と判定された後に停止しない)。かかる場合、コンピューティングシステム116は、物品110用の欠陥カウンタを含み得、当該欠陥カウンタは、物品110上で欠陥が発見される(すなわち、画像データ内で検出される)たびに更新される。欠陥カウンタは、検査対象物品について検出された欠陥の記録を保持するように構成される。欠陥カウンタを更新することは、新たに検出された欠陥に関する欠陥データをレコードに追加することを含み得る。欠陥カウンタは、1又は複数のソフトウェアモジュールを含んでもよく、ノードデバイス148によって実装されてもよい。一部の場合では、欠陥カウンタは、物体追跡を用いて欠陥が真の検出として確認されたときのみ、新しい欠陥で更新されてもよい。欠陥カウンタは、欠陥がPLC146によって(例えば、閾値と比較することによって)許容不可能であると判定された場合にのみ、新しい欠陥で更新されてもよい。
【0218】
外観検査システム100は、既存の技術と比較して、物品110のより迅速な、かつ/又はより正確な外観検査を提供することができる。
【0219】
一部の場合では、外観検査システム100は、(例えば、人間が検査した場合)かかる欠陥を通常不明瞭にし得る他の雑多な物体(例えば、汚物)の存在下で欠陥(例えば、カムシャフトの空隙)を検出することが可能であり得る。これは、物品110が常に清浄であるとは限らず、既存の手法の下で検出を妨げる可能性がある材料を物品110上に有し得る製造及び他の環境において、特に有利であり得る。
【0220】
実施形態は、各セクションについて360度の回転(物品マニピュレータ120によって提供される回転)を用いて、各セクション内のサブセクションをそれぞれ4度で検査することができる。物品110(例えば、カムシャフト)の各セクションについて、物品110を撮像し、特定の度数だけ回転させ、再び撮像することができる。これは、各セクションに対する物品110の全回転に対して実行される。
【0221】
一実施形態では、コンピューティングシステム116によって生成された欠陥データは、欠陥分析データベースに記憶することができる。分析データベースに記憶された欠陥データは、ノードデバイス148から提供され得る。欠陥分析データベース内の欠陥データは、分析目的で分析され、プラント管理者又は他のオペレータに物品内の欠陥検出のより大きなピクチャを提供することができる。例えば、複数の物品110の欠陥データは、欠陥データを分析し、傾向、サイズなどを識別するように構成されたコンピューティングデバイスに提供されてもよい。分析には、欠陥タイプ及び他の傾向を見るための統計的ライブラリ及び機械学習(例えばクラスタリング)を使用することが含まれ得る。かかる情報を含むレポートが生成され、例えばディスプレイ158を介してオペレータに表示されてもよい。
【0222】
ここで
図3を参照すると、一実施形態による外観検査シーケンス300が示されている。シーケンス300は、
図1のシステム100によって実行され得る。
【0223】
310で、シーケンスが開始する。
【0224】
312において、物品110が物品ホルダ118上に載置される。
【0225】
314において、物品マニピュレータ120は物品110と係合する。これにより、物品マニピュレータ120は、検査中に物品110を移動させる(例えば回転させる)ことができる。
【0226】
316において、撮像ユニット122は第1の撮像位置に移動される。撮像ユニットマニピュレータ132を介して撮像ユニット122を移動させる。
【0227】
318において、撮像ユニット122のカメラ128は、現在の撮像位置において物品110の画像を取り込む。
【0228】
320において、画像はカメラ128からノードデバイス148に送信される。
【0229】
322において、ノードデバイス148は、受信された画像に対して物体検出を実行し、物品110内の欠陥を検出する。物体検出は、欠陥検出モデル154を用いて行われる。画像は欠陥データを生成するために分析される。
【0230】
324において、画像の欠陥データがPLC146に送信される。
【0231】
326において、PLCは、欠陥データが所定の許容範囲内にあるか否かを判定する。予め定められた許容範囲は、PLC146において許容範囲データとして記憶される。326における判定には、欠陥データの一部又は全部を許容範囲データと比較又は参照することが含まれ得る。
【0232】
328において、欠陥データが所定の許容範囲内にない場合、物品110は欠陥品として識別され、検査終了となる。
【0233】
330において、撮像ユニット122は、撮像ユニットマニピュレータ132を介して開始位置又はホーム位置に戻される。ホーム位置に戻ると、シーケンスは、別の物品110のために10においてプロセスを開始するために戻ることができる。
【0234】
332において、欠陥データが326における所定の閾値内にある場合、PLC146は、撮像される物品110の別のセクションがあるか否かを判定する。
【0235】
334において、撮像される別のセクションがある場合、撮像ユニット122は、撮像ユニットマニピュレータ132を介して、撮像されていないセクションに対応する第2の撮像位置に移動される。
【0236】
撮像ユニット122が第2の撮像位置に移動されると、プロセス300は318に戻り、現在の撮像位置(すなわち、第2の撮像位置)における物品110の画像が取り込まれ、プロセスが再開する。
【0237】
撮像される物品110の他のセクションがない場合、検査は328で終了する。330において、撮像ユニット122はホーム位置に戻され、310において新たな検査を開始することができる。
【0238】
ここで
図4を参照すると、一実施形態による外観検査シーケンス400が示されている。検査シーケンス400は、
図1の外観検査システム100によって実行することができる。
【0239】
410において、検査シーケンス400が開始する。
【0240】
412において、PLC146は、TCPポートとの通信を確立する。これは、検査システム100の始動時に発生し得る。
【0241】
414において、ハンドシェイクは、特定のコードを送受信することによって、PLC146とノードデバイス148との間で実行される。ハンドシェイクは、PLC146とノードデバイス148との間の通信を開始する。ハンドシェイクは、1つのデバイスが通信チャネルを確立することを望むことを示すメッセージを別のデバイスに送信するときに開始される。2つのデバイス146、148は、それらが通信プロトコルについて合意することを可能にするメッセージを往復して送信する。
【0242】
416において、ハンドシェイクが完了した後、ノードデバイス148は、PLC146をリッスンし続けて、検査コードを受信する。検査コードは、ノードデバイス148に対して、カメラ128の撮像ゾーン124内の物品110の検査を実行するように命令する。
【0243】
418において、物品110が物品ホルダ118上に載置される。物品110は、手動で又は自動的に載置することができる。自動ローディングには、コンベヤなどと統合することが含まれ得る。
【0244】
420において、第1の物品マニピュレータ120aは前進し、物品110に向かって移動する。第1の物品マニピュレータ120aは、第1のアクチュエータ(センタ1)を介して移動される。
【0245】
422において、第2の物品マニピュレータ120bは前進し、物品110に向かって移動する。第2の物品マニピュレータ120bは、第2のアクチュエータ(センタ2)を介して移動される。
【0246】
424において、第2の物品マニピュレータ120bの回転移動モータ(モータ2)が回転して、物品110内のピンをキー溝(例えば、
図11Iのアイテム14)に係合させる。
【0247】
426において、カメラ128は、カメラ128が第1の検査位置に到達するまで下方に移動され、次いで左に移動される。
【0248】
428において、第2の物品マニピュレータ120bの回転移動モータ(モータ2)は、物品110を段階的に移動させ始める。工程ごとに、検査コードがノードデバイス148に送信され、物体検出が開始される。他の実施形態では、検査コードは、所定数の回転工程の完了時(例えば、360°回転の完了時)にノードデバイス148に送信され得る。かかる一実施形態では、物体検出は、工程に対応する複数の画像から構築されたスティッチング画像に対して実行され得る。
【0249】
430において、物品110の画像が取り込まれる。画像は、AIアルゴリズムを使用してノードデバイス148によって分析され、(例えば、欠陥検出モデル154を介して)画像内の欠陥を検出する。
【0250】
432において、第2の物品マニピュレータ120bの回転移動モータ(モータ2)は、物品110がカメラ128によって撮像されている間、物品110を360°回転させ続ける。
【0251】
434において、カメラ128は第2の検査位置に移動され、第2の物品マニピュレータ120bの回転移動モータ(モータ2)は物品110を更に360°回転させる。一実施形態では、カメラ128(撮像ユニット122)は、ステッピングモータを介して移動される。別の実施形態では、カメラ128(撮像ユニット122)は、ロボットアーム(例えば、
図14のロボットアーム1484)を使用して移動される。
【0252】
436において、検査が継続され、物品110の各セクションの検査が完了するまで、連続検査位置に移動して検査を実行する。
【0253】
438において、PLC146は、終了コードをノードデバイス148に送信する。終了コードは、ノードデバイス148に対して、新たな物品110が物品ホルダ118に載置されるまで検出を終了するように命令する。
【0254】
440において、ノードデバイス148が欠陥を発見するたびに、ノードデバイス148は、欠陥タイプ(例えば、空隙、汚物など)及び欠陥サイズを含む欠陥データをPLC146に送信する。
【0255】
欠陥が発見されると、NGコードがノードデバイス148からPLC146に送信される。
【0256】
欠陥が発見されない場合、OKコードがノードデバイス148からPLC146に送信される。OKコードは、検査される物品110のセクションにおいて欠陥が識別されなかったことを示す。
【0257】
442において、PLC146は、受信した欠陥データ及びPLC146に記憶された欠陥仕様を用いて、欠陥がNG(不良、欠陥を確認)であるかOK(欠陥をリジェクト)であるかを判定する。欠陥仕様には、水平セクション値及び角度値にリンクされた物品110の特定のセクションに対する許容範囲が含まれる。
【0258】
PLC146は、水平移動モータ(例えば、カメラ128を含む撮像ユニット122を移動させるためのステッピングモータ1)から提供され得る、セクションを識別する水平読み取り値と、(ピン/キー溝を参照して)物品角度を識別する、第2の物品マニピュレータ120bの回転移動モータ(ステッピングモータ2)からの回転読み取り値とに基づいて判定を行う。PLC146は、特定のセクション/角度の組み合わせに対する欠陥仕様に従って、欠陥がNGであるかOKであるかを判定する。
【0259】
444において、部品がNGであるとPLCが判定した場合、システム100は停止して、アラームを発する。停止及び/又はアラームは、PLC146によって生成された停止コマンド及びアラームコマンドに従って実行される。例えば、PLC146は、アラームコマンドを生成し、アラームコマンドを受信するとアラームを生成又は出力するように構成されたアラームシステムにアラームコマンドを送信してもよい。
【0260】
446において、PLC146が、ノードデバイス148からOKコードを受信することによって、又はノードデバイス148によって識別された欠陥が許容される範囲内/許容範囲内にあると判定することによって、物品110がOKであると判定した場合、検査は継続される。
【0261】
448において、撮像ユニット122及び物品マニピュレータ120a、120bは、逆の順序でホーム位置に進む。これには、第1のアクチュエータ(中心1)が左に移動し、第2のアクチュエータ(中心2)が右に移動し、撮像ユニット122が右及び上に移動することが含まれ得る。
【0262】
450において、検査済みの物品110は、物品ホルダ118から搬出される。
【0263】
452において、新しい物品110が物品ホルダ118上に載置される。
【0264】
一実施形態では、物品110がNGであるとPLC146が判定すると、撮像ユニットマニピュレータ132(又はロボットアーム)は、カムシャフト上の物品識別子がカメラ128の撮像ゾーン124内にある物品識別子位置にカメラ128を移動させる。物品識別子の画像は、カメラ128によって取り込むことができる。物品識別子は、物品110上の一意の(例えば、物品110上にエッチングされた)識別子である。
【0265】
一実施形態では、物品識別子は2Dデータマトリックスである。2Dデータマトリックスは、QRコード(登録商標)と同様であり得る。物品110は、検出された欠陥(例えば、欠陥データ)を物品110のシリアル番号(物品識別子)と関連付けることができるように、2Dマトリックスをカメラ128と平行にするように回転される。欠陥及びシリアル番号は、データベースに保存され得る。欠陥及びシリアル番号は、データベース内でリンクされ得る。かかるデータの記憶は、有利には、どの特定の物品が欠陥品であると判明したか、及びその理由の記録を提供することができる。かかるデータはまた、欠陥の傾向又は根本原因を決定するために、欠陥検出分析プロセスにおける入力として使用され得る。
【0266】
ここで
図5を参照すると、一実施形態による、
図1のノードデバイス148のネットワーク156をリアルタイムで実行する方法500が示されている。方法500は、ノードデバイス148によって実装され得る。
【0267】
508において、方法が開始する。
【0268】
510において、ノードデバイス148は、Basler Cameraクラスのインスタンスを作成及びロードする(ソフトウェアAPIは、Baslerによってそれらのオープンソースgithub上に提供される)。
【0269】
512において、選択された物体検出モデルは、特定のTensorRTライブラリ及び/又は最適化されたopenCV CUDAバックエンドを利用してGPUメモリにロードされる。
【0270】
514において、物体検出が開始される。
【0271】
ここで
図6を参照すると、一実施形態による、外観検査システム100によって実行される物体検出の方法600が示されている。方法600は、
図1のノードデバイス148によって実行され得る。
【0272】
方法600は、
図5の方法500の工程514において実装され得る。
【0273】
610において、方法が開始する。
【0274】
612において、画像フレームがカメラ128から取り込まれる。
【0275】
614において、取り込まれた画像が前処理される。ネットワーク156に対応した画像を得るために、前処理が行われる。
【0276】
画像の前処理には、クロッピング、NumPy配列への変換、画素値のint8フォーマットへの変更、BGRフォーマットのRGBフォーマットへの変更、及びバイリニア補間を用いたサイズ変更のうちのいずれか1又は複数が含まれ得る。
【0277】
616において、前処理された画像は、ニューラルネットワーク156を通過する。画像をネットワーク156に通すことにより、クラス及び信頼スコアを有するバウンディングボックスが生成される。バウンディングボックスは、画像内に位置する物体(欠陥)を囲む。クラスは、欠陥タイプに対応する。
【0278】
618において、614で得られたバウンディングボックスは、前処理関数におけるサイズ変更後に画像がその元のサイズにアップスケールされて戻されるときに、それらが特定の画像寸法で適切に変換されるように後処理される。
【0279】
620において、ノードデバイス148は、検出された各物体を追跡する。これには、複数の画像フレームにわたって検出された欠陥を追跡することが含まれる。このように欠陥を追跡することで、検出された欠陥が実際に欠陥であり、1回限りの不正確な検出ではないという、より大きな確実性を提供することができる。
【0280】
追跡は、アルゴリズムが偽陽性検出及びランダムな1回限りの検出を低減することを可能にし得る。
【0281】
622において、各個々の欠陥を追跡しながら、追跡された欠陥のサイズ情報が、欠陥が見られる全てのフレームにわたって記憶される。
【0282】
624において、ノードデバイス148は、追跡される物体が、単一のフレームをドロップすることなく、最小数N個の連続するフレームに対して出現するかどうかを判定する。
【0283】
626において、追跡される物体が、単一のフレームをドロップすることなく、最小数N個の連続するフレームにわたって見られた場合、検出された物体は、真の検出としてカウントされる。
【0284】
検出が真の検出と見なされると、欠陥が出現した全てのフレームにわたるサイズ情報を用いて、欠陥の平均サイズが計算される。この技術は、バウンディングボックスのサイズによるバラツキを低減することができる。
【0285】
628において、真の検出のための欠陥データがPLC146に送信される。欠陥データには、欠陥サイズ、欠陥位置及び欠陥クラスのいずれか1又は複数が含まれ得る。欠陥データは、ソケット上のTCP/IPを介してノードからPLC146に送信することができる。
【0286】
欠陥データがPLCによって受信されると、PLCはステッピングモータの角度を記録し、欠陥サイズをその特定のセクション上の許容範囲(回転に関する)及び物品110の位置に関連付ける。
【0287】
欠陥位置は、バウンディングボックス座標x0、y0、x1、y1とともにPLC146に送信される。PLC146は、欠陥位置情報を使用して、その特定のセクション(例えば、検査されているカムシャフトの特定のローブ又はジャーナル)上のどこで欠陥が発見されたかを特定することができる。
【0288】
630において、追跡された物体が最小数N個の連続するフレームにわたって見られなかった場合、検出は誤検出としてカウントされる。
【0289】
632において、誤検出の対象となった物体は無視される(すなわち、欠陥データはPLCに送信されない)。
【0290】
634において、プロセスは終了する。工程612~632は、物品110の検査が完了するまで繰り返すことができる。
【0291】
ここで
図7~10を参照すると、
図1の外観検査システム100の一実施形態によって生成された例示的な外観検査画像が示されている。システム100の実施形態は、カムシャフトを撮像し、その中の塗装及び空隙の欠陥タイプを検出するように構成されている。
【0292】
画像は、撮像ユニット122によって取得され、欠陥を検出及び分類するために物体検出技術を使用してノードデバイス148によって処理され、ユーザ制御デバイス150を介して表示された画像を表している。画像は、更なるレビュー及び分析のために、ノードデバイス148及び/又はユーザ制御デバイス150によって記憶され得る。
【0293】
画像700、800、900、1000は、ユーザ制御デバイス150を介してシステム100のオペレータに表示することができる。
【0294】
図7の画像700は、
図1のシステム100によって検査されたカムシャフト710(すなわち、
図1の物品110)を示している。特に、画像700は、カムシャフト710のセクション712に対して実行された外観検査作業の結果を示している。セクション712は、
図1の物品110を参照して説明した物品セクションに対応する。システム100は、塗装及び空隙の欠陥を検出するように構成される。
【0295】
システム100は、取り込まれた画像データに基づいてカムシャフト710における3つの欠陥を識別している。欠陥は、バウンディングボックス714、716、及び718によって囲まれている。欠陥は、バウンディングボックス714に含まれる第1の塗装欠陥、バウンディングボックス716に含まれる第2の塗装欠陥、及びバウンディングボックス718に含まれる空隙欠陥を含む。
【0296】
バウンディングボックス714、716、718は、物体検出中にノードデバイス148によって生成される。
【0297】
図示のように、ユーザ制御デバイス150は、固有の色インジケータを各異なる欠陥タイプと関連付けるように構成することができる。例えば、特定の欠陥タイプを囲むバウンディングボックスに特定の色を付与してもよい。これは、ユーザが画像700内に存在する異なるタイプの欠陥をより容易に識別し区別することを可能にし得る。画像700の例では、緑色は塗装欠陥タイプに関する表示情報に関連付けられ、赤色は空隙欠陥タイプに関する表示情報に関連付けられる。他の実施形態は、欠陥タイプ間を区別するために他のタイプの固有のインジケータを利用することができる。
【0298】
画像700内の各欠陥は、それに関連付けられた欠陥データ720を有する。
【0299】
欠陥データ720は、物体検出プロセス中にノードデバイス148によって生成され、記憶される。欠陥データ720は、ノードデバイス148からユーザ制御デバイス150に渡されてもよい。ユーザ制御デバイス150は、欠陥データ720を記憶し、欠陥データ720を表示するビジュアライゼーションを生成するように構成される。
【0300】
画像700において、ユーザ制御デバイス150は、欠陥データ720が同じ欠陥のバウンディングボックスとリンクされるように欠陥データ720を表示し、ユーザが特定の識別された欠陥に関連する欠陥データ720を識別することを容易にする。
【0301】
欠陥データ720は、欠陥タイプ(又はクラス)722、欠陥信頼水準724、欠陥サイズ726、及び欠陥位置728を含む。システム100の変形例は、より多くの又はより少ないタイプの欠陥データ720を含み得る。この情報は、それぞれの欠陥を所定のカムシャフト欠陥許容範囲と比較する方法を理解するために、PLC146によって使用され得る。
【0302】
欠陥タイプ722は、検出された欠陥の種類を含む。画像700内の欠陥タイプは、塗装欠陥タイプ及び空隙欠陥タイプを含む。
【0303】
欠陥信頼水準724は、物体の検出及び分類のための(すなわち、欠陥タイプ722の欠陥への割り当てのための)信頼水準を表す。
【0304】
欠陥サイズ726は、特定の測定単位における欠陥のサイズを示している。画像700内の欠陥サイズ726はミリメートル単位である。
【0305】
欠陥位置728は、欠陥の位置を示している。欠陥位置は、(x,y)座標を含む。
【0306】
AIが欠陥を検出する信頼性が高くない検査の初期段階では、オペレータにAIとしてリアルタイムで欠陥を視認させることが重要な場合がある。AIがより多くの部品を検査するにつれて、AIは、より多くの欠陥をより高い信頼度で識別する方法を収集し、学習する。AIの性能は人間の能力をはるかに上回るので、AIを人間が監視する必要がなくなる可能性がある。
【0307】
図8の画像800は、
図7の画像700を生成するために使用されたシステム100の実施形態によって検査された別のカムシャフト810を示している。特に、画像800は、カムシャフト810のセクション812に対して実行された外観検査作業の結果を示している。
【0308】
画像800は、セクション812における塗装欠陥及び空隙欠陥を示している。塗装欠陥は、第1のバウンディングボックス814によって輪郭が描かれている。空隙欠陥は、第2のバウンディングボックス818によって輪郭が描かれている。
【0309】
塗装欠陥及び空隙欠陥はそれぞれ、それらに関連付けられた欠陥データ820を有する。欠陥データ820は、物体検出中にノードデバイス148によって生成される。
【0310】
図9の画像900は、
図1のシステム100によって検査された更に別のカムシャフト910を示している。特に、画像900は、カムシャフト910のセクション912に対して実行された外観検査作業の結果を示している。
【0311】
画像900は、セクション912における塗装欠陥及び空隙欠陥を示している。塗装欠陥は、第1のバウンディングボックス914によって輪郭が描かれている。空隙欠陥は、第2のバウンディングボックス918によって輪郭が描かれている。
【0312】
塗装欠陥及び空隙欠陥はそれぞれ、それらに関連付けられた欠陥データ920を有する。欠陥データ920は、物体検出中にノードデバイス148によって生成される。
【0313】
図10の画像1000は、
図1のシステム100によって検査された更に別のカムシャフト1010を示している。特に、画像1000は、カムシャフト1010のセクション1012に対して実行された外観検査作業の結果を示している。
【0314】
画像1000は、セクション1012における塗装欠陥及び空隙欠陥を示している。塗装欠陥は、第1のバウンディングボックス1014によって輪郭が描かれている。空隙欠陥は、第2のバウンディングボックス1016によって輪郭が描かれている。
【0315】
塗装欠陥及び空隙欠陥はそれぞれ、それらに関連付けられた欠陥データ1020を有する。欠陥データ1020は、物体検出中にノードデバイス148によって生成される。
【0316】
ここで
図11A~11Iを参照すると、一実施形態による、本開示の外観検査システムの機械的検査サブシステムの複数の図が示されている。外観検査システムは、カムシャフトを検査するように適合される。外観検査システム100は、
図1の外観検査システム100の一実施形態であり得る。機械的検査サブシステムは、
図1の機械的検査サブシステム114であり得る。
図11A~
図11Iの機械的検査サブシステムは、本明細書に記載の技術に従って外観検査を行うように構成された、
図1のコンピューティングシステム116などのコンピューティングシステムに通信可能に接続することができる。
【0317】
図11A~11Iに提供される参照番号は、
図11Jの部品表1100jに見出される部品番号に対応する。
【0318】
【0319】
【0320】
【0321】
【0322】
【0323】
【0324】
図11Gは、一実施形態による、
図11Aの機械的検査サブシステムの撮像ユニットの正面
図1100gを示している。撮像ユニットは、
図1の撮像ユニット122であり得る。
【0325】
【0326】
図11Iは、一実施形態による、
図11Aの機械的検査サブシステムの物品ホルダ及び物品マニピュレータの正面
図1100iを示している。物品ホルダは、
図1の物品ホルダ118であり得る。物品マニピュレータは、
図1の物品マニピュレータ120であり得る。
【0327】
図11Jは、一実施形態による、
図11Aの機械的検査サブシステムのための部品表1100jを示している。
【0328】
ここで
図12を参照すると、一実施形態による、本開示の機械的検査サブシステムの正面
図1200が示されている。機械的検査サブシステムは、
図1の機械的検査サブシステム114であり得る。
【0329】
ここで
図13を参照すると、一実施形態による、リアルタイムストリーミングビデオ分析の方法1300が示されている。方法100は、
図1の外観検査システム100によって実行することができる。
【0330】
1308において、方法1300が開始する。
【0331】
1310において、ノードデバイス148は、第1の利用可能なカメラ128に接続する。これは、利用可能なUSB3.0(又は他のインターフェース)を探し、任意のカメラが接続されているかどうかを確認することを含み得る。
【0332】
ノードデバイス148は、カメラAPIを介してカメラ128に接続することができる。カメラAPIは、ノードデバイス148上のアプリケーションソフトウェアがカメラ128と通信することを可能にする仕様のセットである。
【0333】
カメラ128がBasler Cameraである一実施形態では、ノードデバイス148は、PylonTM APIを介して第1の利用可能なBasler Cameraに接続する。Basler Pylonカメラソフトウェアスイートは、Baslerカメラを操作するためのドライバ及びツールの集合である。
【0334】
1312において、ノードデバイス148は、カメラ128から連続的に画像を取り込む。ノードデバイス148によってカメラ128から取り込まれた画像は、ビットマップフォーマットであり、次いで、OpenCVによって利用されるBGRチャネル順序付けを用いてNumPy配列フォーマットに変換される。
【0335】
1314において、取り込まれた画像は、カメラフォーマットから、OpenCVなどとともに使用するのに適した別のフォーマットに変換される。一実施形態では、取り込まれた画像は、Basler CameraフォーマットからOpenCV BGRフォーマットに変換される。
【0336】
1316において、OpenCV BGRフォーマット画像データは、NumPy配列に変換される。NumPy配列は、より少ないメモリ消費(NumPyデータ構造がより少ない空間を占め得る)及びより良好なランタイム挙動を提供し得る。
【0337】
1318において、NumPy配列は、前処理のために前処理関数に送られる。例えば、NumPy配列は、
図6の前処理関数614に送られ、
図6の方法600に従って更に処理されてもよい。
【0338】
前処理関数により、ニューラルネットワーク156用の画像を準備するために画像が前処理される。前処理には、クロッピング、NumPy配列への変換、画素値のint8フォーマットへの変更、BGRフォーマットのRGBフォーマットへの変更、及びバイリニア補間を用いたサイズ変更のうちのいずれか1又は複数が含まれ得る。
【0339】
ここで
図14A~14Dを参照すると、一実施形態による、外観検査システムで使用するための機械的検査サブシステム1414の斜視
図1400a、上面
図1400b、正面
図1400c、及び側面
図1400dがそれぞれ示されている。機械的検査サブシステム1414は、ロボットオートメーションを使用する。
【0340】
機械的検査サブシステム1414は、
図1の機械的検査サブシステム114として使用することができる。
【0341】
図14A~14Dの要素は、
図1に記載された対応する要素を有し得る。機械的検査サブシステム114の要素が参照番号1XXによって参照され、この要素が機械的検査サブシステム1414内に対応要素を有する場合、機械的検査サブシステム1414内の対応要素は、参照番号14XXによって参照される(すなわち、
図1の対応要素と同じ下2桁を有する)。対応する要素は、同一又は類似の機能を実行し得る。
【0342】
機械的検査サブシステム1414は、コンピューティングシステム(例えば、
図1のコンピューティングシステム116)に通信可能に接続されて、コンピューティングシステムと機械的検査サブシステム1414との間のデータ転送を容易にして外観検査を実行する。コンピューティングシステム116は、本明細書で説明されるような種々の制御、分析、及びビジュアライゼーション機能を実行する。
【0343】
機械的検査サブシステム1414は、ロボットサブシステム1482を含む。ロボットサブシステム1482は、ロボットアーム1484と、ロボットアーム1484の移動を制御するためのロボットアームコントローラ(図示せず)とを含む。ロボットアーム1484は、ロボットアームコントローラからのコマンドに従って移動するように構成される。ロボットサブシステム1482は、ロボットアーム1484を表面に取り付けるためのベース1486を含む。この表面は、静止物体又は可動物体上にあり得る。
【0344】
機械的検査サブシステム1414は、ロボットアーム1484に取り付けられた撮像ユニット1422を含む。撮像ユニット1422は、カメラ1428と、照明機構1426とを含む。
【0345】
ロボットアーム1484は、検査対象物品1410の画像を取り込むために撮像ユニット1422を移動させるように構成される。ロボットアーム1484は、3次元で移動するように構成され得る。検査中、物品1410は、物品マニピュレータ1420a及び1420bによって係合される。物品マニピュレータ1420a、1420bは、検査中に(例えば、
図1の移動線125と同様の移動線に沿って)物品1410の回転を容易にする。物品1410を回転させることにより、撮像ユニット1422は、物品1410全体の画像を取り込むことができる。
【0346】
特定の場合において、検査動作中に、ロボットアーム1484は、撮像ユニット1422を物品マニピュレータ1420aに近接する物品1410のセクションに移動させ、その位置における物品1410のそのセクションの360°撮像を表す複数の画像を取り込む。次いで、ロボットアーム1484は、第2の位置での同様の360°撮像のために、撮像ユニット1422を物品1410の第2のセクションに移動させる(すなわち、ロボットアーム1484は、撮像ユニット1422を物品マニピュレータ1420aから更に移動させて第2のセクションを撮像する)。このプロセスは、物品1410の長さ方向に沿って(例えば、物品マニピュレータ1420aに近接する端部から物品マニピュレータ1420bに近接する端部まで)繰り返すことができる。
【0347】
ここで
図15を参照すると、一実施形態による、本開示の外観検査システムにおける構成要素間の通信を示すブロック
図1500が示されている。
図15において、構成要素間の実線は、接続された構成要素間のデータ通信を示している。かかる通信は、接続のタイプに応じて、有線又は無線であり得る。
【0348】
外観検査システムは、AI外観検査機械1502と生産機械1504とを含む。生産機械1504は、検査される物品に対して実行される最後のプロセスであり得る。生産機械1504は、AI外観検査機械1502への入力として提供される出力を生成する。AI外観検査機械1502は、
図1の外観検査システム100であり得る。
【0349】
生産機械1504は、PLC1506(「PLC2」と示される)及びイーサネット(登録商標)/IPモジュール1508を含む。イーサネット(登録商標)/IPモジュール1508は、PLC1506とAI外観検査機械1502の構成要素との間の通信を容易にする。PLC1506は、生産機械1504のコントローラである。PLC1506は、生産機械1504及び外観検査機械1502の適切な動作を容易にする統合目的(例えば、インターフェースI/O信号)のために、検査機械1502のPLC1514(後述)と通信する。
【0350】
AI外観検査機械1502は、ロボット1510及びイーサネット(登録商標)/IPモジュール1512を含む。ロボット1510は、
図14のロボットサブシステム1482であってもよく、AI外観検査機械1502の撮像ユニットを操作するためのロボットアーム(例えば、ロボットアーム1484)を含んでもよい。イーサネット(登録商標)/IPモジュール1512は、ロボット1510と、AI外観検査機械1502及び生産機械1504の構成要素との間の通信を容易にする。特に、イーサネット(登録商標)/IPモジュール1512は、ロボット1510と生産機械1504のPLC1506との間の通信を容易にするためにイーサネット(登録商標)/IPモジュール1508と通信することができる。一部の場合では、PLC1506は、ロボット1510と通信する必要がないこともある。しかしながら、一部の他の場合では、イーサネット(登録商標)/IP通信は、生産機械1504のPLC1506と外観検査機械1502のPLC1514との間(例えば、三菱製PLCとキーエンス製PLCとの間)で直接実行可能でない場合があり、そのためロボット1510を通して達成することができる。かかる場合、ロボット1510は、PLC1506とPLC1514との間で信号を転送し得る媒体として機能することができる。
【0351】
AI外観検査機械1502はまた、PLC1514(「PLC1」と示される)を含む。PLC1514は、
図1のPLC146であり得る。PLC1514は、イーサネット(登録商標)/IPモジュール1516及びイーサネット(登録商標)モジュール1518を介して、AI外観検査機械1502及び生産機械1504の他の構成要素と通信する。具体的には、PLC1514は、イーサネット(登録商標)/IPモジュール1516とイーサネット(登録商標)/IPモジュール1512との間の通信を介してロボット1510と通信する。PLC1514は、イーサネット(登録商標)/IPモジュール1516とイーサネット(登録商標)/IPモジュール1508との間の通信を介して、生産機械1504のPLC1506と通信することができる。
【0352】
AI外観検査機械1502はまた、オートメーション構成要素1520を含む。オートメーション構成要素1520は、PLC1514と直接通信する。オートメーション構成要素1520は、検査プロセスを自動化する役割を担う構成要素(例えば、
図1のサブシステム114又は
図14の1414などの機械的検査サブシステムの構成要素)を含む。オートメーション構成要素1520は、例えば、ステッピングモータ、アクチュエータ(例えば、シリンダ)、センサなどを含み得る。オートメーション構成要素1520は、直接配線接続を介してPLC1514と通信する。オートメーション構成要素1520はPLC1514と通信するので、PLC1514はI/O信号を介して所望の検査シーケンスを実行することができる。例えば、PLC1514は、シリンダ(例えば、上述した第1のアクチュエータ)を前進させるための出力信号を開始してもよい。シリンダが前進すると、入力がPLC1514に戻されて、シリンダの「前進」状態などが確認される。
【0353】
AI外観検査機械1502は、光学部品1522及び照明部品1524を含む。光学部品1522は、
図1のカメラ128であり得る。照明部品1524は、
図1の照明機構126であり得る。光学部品1522及び照明部品1524は、AI外観検査機械1502の撮像ユニットを構成する。
【0354】
照明部品1524は、PLC1514と直接通信する。
【0355】
AI外観検査機械1502は、AIデバイス1526を含む。AIデバイス1526は、
図1のノードデバイス148であり得る。AIデバイス1526は、光学部品1522と直接通信する。
【0356】
AIデバイス1526は、イーサネット(登録商標)モジュール1518を介してPLC1514と通信する。
【0357】
AI外観検査機械1502はまた、ディスプレイ/ヒューマンマシンインターフェース(HMI)1528及びヒューマンインターフェース1530を含む。ディスプレイ/HMI1528は、
図1のディスプレイ158又はユーザ制御デバイス150であり得る。ヒューマンインターフェース1530は、
図1のユーザインターフェース160であり得る。ディスプレイ/HMI1528は、ヒューマンインターフェース1530と直接通信する。
【0358】
ディスプレイ/HMI1528は、イーサネット(登録商標)モジュール1518を介してPLC1514と通信する。
【0359】
ヒューマンインターフェース1530は、AIデバイス1526と直接通信する。
【0360】
上記の説明は、1又は複数の装置、方法、又はシステムの例を提供するが、当業者によって解釈されるように、他の装置、方法、又はシステムが特許請求の範囲内にあり得ることが理解されよう。
【手続補正書】
【提出日】2022-07-07
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
物品の外観検査のためのシステムであって、前記システムは、
検査対象物品の画像データを取得するためのカメラと、
前記カメラから前記画像データを受信し、少なくとも1つの欠陥タイプを検出するように訓練された欠陥検出モデルを使用して前記画像データを分析するためのノードコンピューティングデバイスであって、前記欠陥検出モデルは、前記画像データを入力として受信し、検出された欠陥を記述する欠陥データを出力として生成するように構成された機械学習ベースの物体検出モデルを含む、ノードコンピューティングデバイスと、
前記ノードコンピューティングデバイスから前記欠陥データを受
信するためのプログラマブルロジックコントローラ(「PLC」)デバイスと、
を含む、システム。
【請求項2】
前記欠陥データが許容不可能であると判定すると
、ロボットアームは、前記検査対象物品上の物品識別子が前記カメラの撮像ゾーン内にある物品識別子位置に前記カメラを自律的に移動させるように構成され、前記カメラは、前記物品識別子の画像を取得するように構成されている、請求項
1に記載のシステム。
【請求項3】
前記物品の検査中に撮像位置の所定のシーケンスを通して前記カメラを自律的に移動させるためのロボットアームを更に含む、請求項1に記載のシステム。
【請求項4】
検査中に前記物品に係合して回転させるように構成された物品マニピュレータを更に含む、請求項1に記載のシステム。
【請求項5】
前記画像データは、前記物品の回転中に取得された複数の画像を含み、前記ノードコンピューティングデバイスは、画像スティッチング技術を使用して前記複数の画像からスティッチング画像を構築するように構成され、前記画像データは、前記スティッチング画像として前記欠陥検出モデルに提供される、請求項1に記載のシステム。
【請求項6】
前記PLCデバイス及び前記ノードデバイスのうちの少なくとも1つからデータを受信し、前記受信されたデータを使用してビジュアライゼーションを生成し、前記ビジュアライゼーションをユーザインターフェースに表示するためのユーザ制御デバイスを更に含
み、
前記ユーザインターフェースは、PLCモード及びノードデバイスモードを含み、前記PLCモードは、PLCデバイス動作のビジュアライゼーションを表示し、前記ノードデバイスモードは、ノードデバイス動作のビジュアライゼーションを表示し、
前記ユーザ制御デバイスは、前記PLCモードと前記ノードデバイスモードとを自動的に切り替えるように構成されている、請求項1に記載のシステム。
【請求項7】
前記ノードコンピューティングデバイスは、前記検出された欠陥が必要な数の連続する画像フレームに出現したことを確認すると、前記欠陥データを前記PLCデバイスに送信するように構成されている、請求項1に記載のシステム。
【請求項8】
人工知能(「AI」)外観検査システムであって、
ノードコンピューティングデバイスであって、
検査対象物品の画像データを受信することと、
少なくとも1つの欠陥タイプを検出するように訓練された欠陥検出モデルを使用して前記画像データを分析することであって、前記欠陥検出モデルは、前記画像データを入力として受信し、検出された欠陥を記述する欠陥データを出力として生成するように構成された機械学習ベースの物体検出モデルを含む、分析することと、
を行うように構成された、ノードコンピューティングデバイスと、
前記ノードコンピューティングデバイスに通信可能に接続されたプログラマブルロジックコントローラ(「PLC」)デバイスであって、
前記ノードコンピューティングデバイスから前記欠陥データを受信することと
、
を行うように構成された、プログラマブルロジックコントローラ(「PLC」)デバイスと、
を含む、人工知能(「AI」)外観検査システム。
【請求項9】
前記欠陥データは、欠陥タイプに対応する欠陥クラス、欠陥位置、及び信頼水準を含
み、
前記欠陥検出モデルは、インスタンスを3つ以上のクラスのうちの1つに分類するためのマルチクラス分類を実行するように構成され、前記クラスは、少なくとも2つの欠陥タイプを含む、請求項
8に記載のシステム。
【請求項10】
前記欠陥検出モデルは、ニューラルネットワークを含み、前記ニューラルネットワークは、前記ニューラルネットワークの層を融合して前記ニューラルネットワークのサイズを圧縮して前記ノードコンピューティングデバイス上で実行することによって最適化されている、請求項
8に記載のシステム。
【請求項11】
前記ノードコンピューティングデバイスは、連続する画像フレームにわたって前記欠陥を追跡することによって、前記検出された欠陥が真の検出であるかどうかを判定するように更に構成されている、請求項
8に記載のシステム。
【請求項12】
前記画像データは、前記物品の回転中に取得された複数の画像を含み、前記ノードコンピューティングデバイスは、画像スティッチング技術を使用して前記複数の画像からスティッチング画像を構築するように構成され、前記画像データは、前記スティッチング画像として前記欠陥検出モデルに提供される、請求項
8に記載のシステム。
【請求項13】
人工知能(「AI」)を使用した物品の自動外観検査の方法であって、前記方法は、
カメラを使用して検査対象物品の画像データを取得することと、
前記画像データをノードコンピューティングデバイスに提供することと、
少なくとも1つの欠陥タイプを検出するように訓練された欠陥検出モデルを使用して前記ノードコンピューティングデバイスにおいて前記画像データを分析することであって、前記欠陥検出モデルは、前記画像データを入力として受信し、検出された欠陥を記述する欠陥データを出力として生成するように構成された機械学習ベースの物体検出モデルを含む、分析することと、
前記ノードコンピューティングデバイスからプログラマブルロジックコントローラ(「PLC」)デバイスに前記欠陥データを送信することと
、
を含む、方法。
【請求項14】
前記ノードコンピューティングデバイスを使用して、連続する画像フレームにわたって前記検出された欠陥を追跡することを更に含む、請求項
13に記載の方法。
【請求項15】
前記ノードコンピューティングデバイスから前記PLCデバイスに前記欠陥データを送信することは、前記検出された欠陥が必要な数の連続する画像フレームにわたって追跡されることに応答して実行される、請求項
13に記載の方法。
【請求項16】
前記画像データは、前記物品の回転中に取得された複数の画像を含み、前記方法は、
画像スティッチング技術を使用して前記複数の画像からスティッチング画像を構築することと、
前記画像データを前記スティッチング画像として前記欠陥検出モデルに提供することと、
を更に含む、請求項
13に記載の方法。
【請求項17】
前記欠陥データが許容不可能であると判定すると、前記PLCデバイスにおいて検査停止コマンドを生成することを更に含む、請求項
13に記載の方法。
【請求項18】
前記欠陥データが許容不可能であると判定すると、前記PLCデバイスにおいてアラームコマンドを生成することと、
アラームを生成して出力するように構成されたアラームシステムに前記アラームコマンドを送信することと、
を更に含む、請求項
13に記載の方法。
【請求項19】
前記欠陥データが許容不可能であると判定すると、前記物品の検査を継続し、前記検出された欠陥を含むように前記物品の欠陥カウンタを更新することを更に含む、請求項13に記載の方法。
【請求項20】
前記欠陥データが許容不可能であると判定すると、前記検査対象物品上の物品識別子が前記カメラの撮像ゾーン内にある物品識別子位置に前記カメラを自律的に移動させることと、
前記物品識別子の画像を取得することと、
前記物品識別子と前記欠陥データとをデータベースに記憶すること、
を更に含
み、
前記
物品識別子は、前記欠陥データに関連付けられている、請求項
13に記載の方法。
【国際調査報告】