(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025005032
(43)【公開日】2025-01-16
(54)【発明の名称】基板処理装置、および基板処理装置における情報処理方法
(51)【国際特許分類】
G06T 7/70 20170101AFI20250108BHJP
G01B 11/24 20060101ALI20250108BHJP
H01L 21/683 20060101ALN20250108BHJP
【FI】
G06T7/70 Z
G01B11/24 K
H01L21/68 N
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2023105016
(22)【出願日】2023-06-27
(71)【出願人】
【識別番号】000207551
【氏名又は名称】株式会社SCREENホールディングス
(74)【代理人】
【識別番号】100088672
【弁理士】
【氏名又は名称】吉竹 英俊
(74)【代理人】
【識別番号】100088845
【弁理士】
【氏名又は名称】有田 貴弘
(72)【発明者】
【氏名】清水 進二
【テーマコード(参考)】
2F065
5F131
5L096
【Fターム(参考)】
2F065AA01
2F065AA31
2F065AA49
2F065AA51
2F065CC17
2F065CC25
2F065DD06
2F065FF04
2F065JJ19
2F065JJ26
2F065PP12
2F065QQ23
2F065QQ25
2F065QQ29
2F065RR08
5F131EB32
5F131KA03
5F131KA14
5F131KB12
5F131KB53
5L096BA03
5L096CA05
5L096DA02
5L096FA06
5L096FA67
5L096FA69
(57)【要約】
【課題】基板処理装置について部品の姿勢の認識を効率良く行う。
【解決手段】対象部品の設計情報に基づき、対象部品の3Dモデルを囲む仮想的な球面に沿った複数の仮想面における複数の第1仮想カメラ位置のそれぞれについて3Dモデルの二次元形状に係る参照形状情報を取得する。各第1仮想カメラ位置について実画像における物体の二次元形状に係る実形状情報と参照形状情報との間における一致度を算出する。複数の第1仮想カメラ位置のうち、一致度が最も大きな高一致度仮想カメラ位置を検出する。高一致度仮想カメラ位置が設定された仮想面を分割して複数の仮想分割面を生成する。対象部品の設計情報に基づき、複数の仮想分割面における複数の第2仮想カメラ位置のそれぞれについて、3Dモデルの二次元形状に係る参照形状情報を生成する。各第2仮想カメラ位置について、実形状情報と参照形状情報との間における一致度を示す数値を算出する。
【選択図】
図4
【特許請求の範囲】
【請求項1】
基板の処理を行う基板処理装置であって、
対象部品に関する三次元の設計情報を記憶した記憶部と、
前記対象部品を捉えた実画像を撮影によって得る撮影部と、
前記三次元の設計情報に基づいてそれぞれ生成される、複数の仮想カメラ位置からの前記対象部品の三次元モデルの撮影で取得され得る複数の仮想画像のそれぞれにおける前記三次元モデルの二次元形状に係る参照形状情報と、前記実画像における物体の二次元形状に係る実形状情報とに基づいて、前記複数の仮想カメラ位置のうち、前記参照形状情報と前記実形状情報との間における一致度が最も大きな仮想カメラ位置を探索する探索処理部と、を備え、
前記探索処理部は、
前記三次元の設計情報に基づいて、前記三次元モデルの基準点を中心として該三次元モデルを囲む仮想的な球面に沿って位置する複数の仮想面を含む面集合体を仮想的に設定し、且つ前記複数の仮想面のそれぞれに対して仮想的に設定される複数の仮想カメラ位置である複数の第1仮想カメラ位置のそれぞれから前記三次元モデルを撮影する場合を想定して、前記複数の第1仮想カメラ位置のそれぞれについて生成した、前記参照形状情報を取得する第1形状情報取得部と、
前記複数の第1仮想カメラ位置のそれぞれについて、前記実形状情報と前記参照形状情報との間における一致度を示す数値を算出する第1算出部と、
前記第1算出部による算出結果に基づいて、前記複数の第1仮想カメラ位置のうち、前記実形状情報と前記参照形状情報との間における一致度が最も大きな第1仮想カメラ位置である高一致度仮想カメラ位置を検出する第1検出部と、
前記複数の仮想面のうちの前記高一致度仮想カメラ位置が仮想的に設定された仮想面である高一致度仮想面を分割することで複数の仮想分割面を生成する分割面生成部と、
前記三次元の設計情報に基づいて、前記複数の仮想分割面のそれぞれに対して仮想的に設定される複数の仮想カメラ位置である複数の第2仮想カメラ位置のそれぞれから前記三次元モデルを撮影する場合を想定して、前記複数の第2仮想カメラ位置のそれぞれについて、前記参照形状情報を生成する第2形状情報生成部と、
前記複数の第2仮想カメラ位置のそれぞれについて、前記実形状情報と前記参照形状情報との間における一致度を示す数値を算出する第2算出部と、を含む、基板処理装置。
【請求項2】
請求項1に記載の基板処理装置であって、
前記第1形状情報取得部は、
前記三次元の設計情報に基づいて、前記基準点からの距離が相互に異なるT1個(T1は2以上の自然数)の前記面集合体を仮想的に設定し、且つ前記T1個の面集合体のそれぞれにおけるM1個(M1は2以上の自然数)の前記仮想面のそれぞれに対して仮想的に設定されるM1×T1個の仮想カメラ位置であるM1×T1個の第1仮想カメラ位置のそれぞれから前記三次元モデルを撮影する場合を想定して、前記M1×T1個の第1仮想カメラ位置のそれぞれについて生成した、前記参照形状情報を取得し、
前記第1算出部は、
前記M1×T1個の第1仮想カメラ位置のそれぞれについて、前記実形状情報と前記参照形状情報との間における一致度を示す数値を算出し、
前記第1検出部は、
前記第1算出部による算出結果に基づいて、前記M1×T1個の第1仮想カメラ位置のうち、前記実形状情報と前記参照形状情報との間における一致度が最も大きな仮想カメラ位置である前記高一致度仮想カメラ位置を検出し、
前記分割面生成部は、
前記T1個の面集合体のそれぞれにおける前記M1個の仮想面のうち、前記高一致度仮想面を含み且つ前記基準点よりも前記高一致度仮想カメラ位置の側において前記基準点と前記高一致度仮想カメラ位置とを通る直線と交差しているとともに前記基準点からの距離が相互に異なるT2個(T2は2以上の自然数)の仮想面、のそれぞれを同一のルールで分割して、該T2個の仮想面のそれぞれについてM2個(M2は2以上の自然数)の仮想分割面を生成することで、M2×T2個の仮想分割面を生成し、
前記第2形状情報生成部は、
前記三次元の設計情報に基づいて、前記M2×T2個の仮想分割面のそれぞれに対して仮想的に設定されるM2×T2個の仮想カメラ位置であるM2×T2個の第2仮想カメラ位置のそれぞれから前記三次元モデルを撮影する場合を想定して、前記M2×T2個の第2仮想カメラ位置のそれぞれについて、前記参照形状情報を生成し、
前記第2算出部は、
前記M2×T2個の第2仮想カメラ位置のそれぞれについて、前記実形状情報と前記参照形状情報との間における一致度を示す数値を算出する、基板処理装置。
【請求項3】
請求項2に記載の基板処理装置であって、
前記探索処理部は、
前記高一致度仮想カメラ位置ならびに前記M2×T2個の第2仮想カメラ位置のうち、前記実形状情報と前記参照形状情報との間における一致度が最も大きな仮想カメラ位置を検出する第2検出部、を含む、基板処理装置。
【請求項4】
請求項3に記載の基板処理装置であって、
前記探索処理部は、
第1の単位処理を実行した後に、1回以上の第nの単位処理(nは2以上の自然数)を実行し、
前記探索処理部は、
前記第1の単位処理において、第1A処理と、第1B処理と、第1C処理と、第1D処理と、を順に行い、
前記第1A処理は、
前記分割面生成部によって、前記T2個の仮想面をそれぞれ分割することで生成された、前記第2検出部で1番目に検出された仮想カメラ位置である1番目の基準仮想カメラ位置を包含する仮想分割面を含み且つ前記基準点よりも前記1番目の基準仮想カメラ位置の側において前記基準点と前記1番目の基準仮想カメラ位置とを通る直線と交差しているとともに前記基準点からの距離が相互に異なるT3個(T3は2以上の自然数)の仮想分割面である1番目のT3個の仮想分割面、のそれぞれを同一のルールで分割して、該1番目のT3個の仮想分割面のそれぞれについてM3個(M3は2以上の自然数)の仮想分割面である1番目のM3個の仮想分割面を生成することで、M3×T3個の仮想分割面である1番目のM3×T3個の仮想分割面を生成する処理であり、
前記第1B処理は、
前記第2形状情報生成部によって、前記三次元の設計情報に基づいて、前記1番目のM3×T3個の仮想分割面のそれぞれに対して仮想的に設定されるM3×T3個の仮想カメラ位置である1番目のM3×T3個の第3仮想カメラ位置のそれぞれから前記三次元モデルを撮影する場合を想定して、前記1番目のM3×T3個の第3仮想カメラ位置のそれぞれについて、前記参照形状情報を生成する処理であり、
前記第1C処理は、
前記第2算出部によって、前記1番目のM3×T3個の第3仮想カメラ位置のそれぞれについて、前記実形状情報と前記参照形状情報との間における一致度を示す数値を算出する処理であり、
前記第1D処理は、
前記第2検出部によって、前記1番目の基準仮想カメラ位置ならびに前記1番目のM3×T3個の第3仮想カメラ位置のうち、前記実形状情報と前記参照形状情報との間における一致度が最も大きな仮想カメラ位置である2番目の基準仮想カメラ位置を検出する処理であり、
前記探索処理部は、
前記第nの単位処理において、第nA処理と、第nB処理と、第nC処理と、第nD処理と、を順に行い、
前記nA処理は、
前記分割面生成部によって、n-1番目の前記T3個の仮想分割面をそれぞれ分割することで生成された、前記第2検出部でn番目に検出された仮想カメラ位置であるn番目の基準仮想カメラ位置を包含する仮想分割面を含み且つ前記基準点よりも前記n番目の基準仮想カメラ位置の側において前記基準点と前記n番目の基準仮想カメラ位置とを通る直線と交差しているとともに前記基準点からの距離が相互に異なるT3個の仮想分割面であるn番目のT3個の仮想分割面、のそれぞれを同一のルールで分割して、該n番目のT3個の仮想分割面のそれぞれについてM3個の仮想分割面であるn番目のM3個の仮想分割面を生成することで、M3×T3個の仮想分割面であるn番目のM3×T3個の仮想分割面を生成する処理であり、
前記第nB処理は、
前記第2形状情報生成部によって、前記三次元の設計情報に基づいて、前記n番目のM3×T3個の仮想分割面のそれぞれに対して仮想的に設定されるM3×T3個の仮想カメラ位置であるn番目のM3×T3個の第3仮想カメラ位置のそれぞれから前記三次元モデルを撮影する場合を想定して、前記n番目のM3×T3個の第3仮想カメラ位置のそれぞれについて、前記参照形状情報を生成する処理であり、
前記第nC処理は、
前記第2算出部によって、前記n番目のM3×T3個の第3仮想カメラ位置のそれぞれについて、前記実形状情報と前記参照形状情報との間における一致度を示す数値を算出する処理であり、
前記第nD処理は、
前記第2検出部によって、前記n番目の基準仮想カメラ位置ならびに前記n番目のM3×T3個の第3仮想カメラ位置のうち、前記実形状情報と前記参照形状情報との間における一致度が最も大きな仮想カメラ位置を検出する処理である、基板処理装置。
【請求項5】
請求項4に記載の基板処理装置であって、
前記探索処理部は、
前記第2検出部によって、前記1番目の基準仮想カメラ位置から前記n番目の基準仮想カメラ位置のうちの1つの基準仮想カメラ位置が、前記実形状情報と前記参照形状情報との間における一致度が最も大きな仮想カメラ位置として、予め設定された第1所定回数連続して検出されたことに応答して、前記1回以上の第nの単位処理の実行を終了する、基板処理装置。
【請求項6】
請求項4に記載の基板処理装置であって、
前記探索処理部は、
前記第nの単位処理を、予め設定された第2所定回数実行したことに応答して、前記1回以上の第nの単位処理の実行を終了する、基板処理装置。
【請求項7】
請求項4から請求項6の何れか1つの請求項に記載の基板処理装置であって、
前記1回以上の第nの単位処理における最後の前記第nD処理において前記第2検出部によってn+1番目に検出された前記実形状情報と前記参照形状情報との間における一致度が最も大きな仮想カメラ位置に基づいて認識される前記対象部品の姿勢に係る現実情報と、前記対象部品の状態が正常である場合の前記三次元の設計情報に基づく前記対象部品の姿勢に係る正常情報と、を比較することで、前記対象部品の異常を検出する異常検出部、をさらに備えている、基板処理装置。
【請求項8】
請求項2から請求項6の何れか1つの請求項に記載の基板処理装置であって、
前記同一のルールは、
分割される対象である分割対象面の中心点と該分割対象面の全ての頂点とをそれぞれ結ぶ複数の線分によって、前記分割対象面を複数の面に分割するルールを含む、基板処理装置。
【請求項9】
請求項1から請求項6の何れか1つの請求項に記載の基板処理装置であって、
前記複数の仮想面のそれぞれは、
三角形の面であり、
前記面集合体は、
多数の三角形の面で構成された多面体である、基板処理装置。
【請求項10】
請求項9に記載の基板処理装置であって、
前記分割面生成部は、
前記高一致度仮想面における3つの頂点と前記高一致度仮想カメラ位置とをそれぞれ結ぶ3つの線分によって、前記高一致度仮想面を、前記複数の仮想分割面としての3つの仮想分割面に分割する、基板処理装置。
【請求項11】
基板の処理を行う基板処理装置における情報処理方法であって、
演算部によって、撮影部による撮影によって得られた対象部品を捉えた実画像を取得する実画像取得ステップと、
演算部によって、記憶部に記憶された前記対象部品に関する三次元の設計情報に基づいてそれぞれ生成される、複数の仮想カメラ位置からの前記対象部品の三次元モデルの撮影で取得され得る複数の仮想画像のそれぞれにおける前記三次元モデルの二次元形状に係る参照形状情報と、前記実画像における物体の二次元形状に係る実形状情報とに基づいて、前記複数の仮想カメラ位置のうち、前記参照形状情報と前記実形状情報との間における一致度が最も大きな仮想カメラ位置を探索する探索ステップと、を有し、
前記探索ステップは、
前記三次元の設計情報に基づいて、前記三次元モデルの基準点を中心として該三次元モデルを囲む仮想的な球面に沿って位置する複数の仮想面を含む面集合体を仮想的に設定し、且つ前記複数の仮想面のそれぞれに対して仮想的に設定される複数の仮想カメラ位置である複数の第1仮想カメラ位置のそれぞれから前記三次元モデルを撮影する場合を想定して、前記複数の第1仮想カメラ位置のそれぞれについて生成した、前記参照形状情報を取得する第1形状情報取得ステップと、
前記複数の第1仮想カメラ位置のそれぞれについて、前記実形状情報と前記参照形状情報との間における一致度を示す数値を算出する第1算出ステップと、
前記第1算出ステップにおける算出結果に基づいて、前記複数の第1仮想カメラ位置のうち、前記実形状情報と前記参照形状情報との間における一致度が最も大きな第1仮想カメラ位置である高一致度仮想カメラ位置を検出する第1検出ステップと、
前記複数の仮想面のうちの前記高一致度仮想カメラ位置が仮想的に設定された仮想面である高一致度仮想面を分割することで複数の仮想分割面を生成する分割面生成ステップと、
前記三次元の設計情報に基づいて、前記複数の仮想分割面のそれぞれに対して仮想的に設定される複数の仮想カメラ位置である複数の第2仮想カメラ位置のそれぞれから前記三次元モデルを撮影する場合を想定して、前記複数の第2仮想カメラ位置のそれぞれについて、前記参照形状情報を生成する第2形状情報生成ステップと、
前記複数の第2仮想カメラ位置のそれぞれについて、前記実形状情報と前記参照形状情報との間における一致度を示す数値を算出する第2算出ステップと、を含む、基板処理装置における情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、基板の処理を行う基板処理装置において、部品の姿勢を認識する技術に関する。基板処理装置において処理の対象となる基板には、例えば、半導体基板、液晶表示装置もしくは有機EL(Electroluminescence)表示装置などのフラットパネルディスプレイ(Flat Panel Display:FPD)用基板、フォトマスク用ガラス基板、光ディスク用基板、磁気ディスク用基板、または太陽電池用基板などが含まれる。
【背景技術】
【0002】
基板処理装置には、処理室と、基板保持部と、ノズルと、カメラと、画像処理部と、監視部とを備えたものがある(例えば、特許文献1参照)。
【0003】
この基板処理装置では、基板保持部と、ノズルと、カメラと、が処理室内に配置されている。基板保持部は、基板を水平姿勢で保持する。基板保持部は、基板を水平面内で回転させる。ノズルは、該ノズルが固定された駆動アームの旋回によって、基板の側方に外れた待機位置と、基板の上方における吐出位置との間で移動する。ノズルは、基板を基板保持部に対して着脱する際に待機位置に配置され、ノズルから基板に向けて処理液を吐出する際に吐出位置に配置される。カメラは、処理室内の所定位置に取り付けられており、吐出位置に移動したノズルを含む所定領域を撮影する。画像処理部は、カメラからの画像に基づいて、ノズルの位置を示す第2ノズル位置情報を取得し、第2ノズル位置情報を監視部に出力する。監視部は、制御部からのノズルの配置位置を直接的または間接的に示す情報としての第1ノズル位置情報と、画像処理部からの第2ノズル位置情報と、の対応性に基づいて、ノズルの位置に異常があるか否かを判断する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、基板処理装置については、部品の姿勢の認識を効率良く行う点で改善の余地がある。
【課題を解決するための手段】
【0006】
第1の態様に係る基板処理装置は、基板の処理を行う基板処理装置であって、対象部品に関する三次元の設計情報を記憶した記憶部と、前記対象部品を捉えた実画像を撮影によって得る撮影部と、前記三次元の設計情報に基づいてそれぞれ生成される、複数の仮想カメラ位置からの前記対象部品の三次元モデルの撮影で取得され得る複数の仮想画像のそれぞれにおける前記三次元モデルの二次元形状に係る参照形状情報と、前記実画像における物体の二次元形状に係る実形状情報とに基づいて、前記複数の仮想カメラ位置のうち、前記参照形状情報と前記実形状情報との間における一致度が最も大きな仮想カメラ位置を探索する探索処理部と、を備え、前記探索処理部は、前記三次元の設計情報に基づいて、前記三次元モデルの基準点を中心として該三次元モデルを囲む仮想的な球面に沿って位置する複数の仮想面を含む面集合体を仮想的に設定し、且つ前記複数の仮想面のそれぞれに対して仮想的に設定される複数の仮想カメラ位置である複数の第1仮想カメラ位置のそれぞれから前記三次元モデルを撮影する場合を想定して、前記複数の第1仮想カメラ位置のそれぞれについて生成した、前記参照形状情報を取得する第1形状情報取得部と、前記複数の第1仮想カメラ位置のそれぞれについて、前記実形状情報と前記参照形状情報との間における一致度を示す数値を算出する第1算出部と、前記第1算出部による算出結果に基づいて、前記複数の第1仮想カメラ位置のうち、前記実形状情報と前記参照形状情報との間における一致度が最も大きな第1仮想カメラ位置である高一致度仮想カメラ位置を検出する第1検出部と、前記複数の仮想面のうちの前記高一致度仮想カメラ位置が仮想的に設定された仮想面である高一致度仮想面を分割することで複数の仮想分割面を生成する分割面生成部と、前記三次元の設計情報に基づいて、前記複数の仮想分割面のそれぞれに対して仮想的に設定される複数の仮想カメラ位置である複数の第2仮想カメラ位置のそれぞれから前記三次元モデルを撮影する場合を想定して、前記複数の第2仮想カメラ位置のそれぞれについて、前記参照形状情報を生成する第2形状情報生成部と、前記複数の第2仮想カメラ位置のそれぞれについて、前記実形状情報と前記参照形状情報との間における一致度を示す数値を算出する第2算出部と、を含む。
【0007】
第2の態様に係る基板処理装置は、第1の態様に係る基板処理装置であって、前記第1形状情報取得部は、前記三次元の設計情報に基づいて、前記基準点からの距離が相互に異なるT1個(T1は2以上の自然数)の前記面集合体を仮想的に設定し、且つ前記T1個の面集合体のそれぞれにおけるM1個(M1は2以上の自然数)の前記仮想面のそれぞれに対して仮想的に設定されるM1×T1個の仮想カメラ位置であるM1×T1個の第1仮想カメラ位置のそれぞれから前記三次元モデルを撮影する場合を想定して、前記M1×T1個の第1仮想カメラ位置のそれぞれについて生成した、前記参照形状情報を取得し、前記第1算出部は、前記M1×T1個の第1仮想カメラ位置のそれぞれについて、前記実形状情報と前記参照形状情報との間における一致度を示す数値を算出し、前記第1検出部は、前記第1算出部による算出結果に基づいて、前記M1×T1個の第1仮想カメラ位置のうち、前記実形状情報と前記参照形状情報との間における一致度が最も大きな仮想カメラ位置である前記高一致度仮想カメラ位置を検出し、前記分割面生成部は、前記T1個の面集合体のそれぞれにおける前記M1個の仮想面のうち、前記高一致度仮想面を含み且つ前記基準点よりも前記高一致度仮想カメラ位置の側において前記基準点と前記高一致度仮想カメラ位置とを通る直線と交差しているとともに前記基準点からの距離が相互に異なるT2個(T2は2以上の自然数)の仮想面、のそれぞれを同一のルールで分割して、該T2個の仮想面のそれぞれについてM2個(M2は2以上の自然数)の仮想分割面を生成することで、M2×T2個の仮想分割面を生成し、前記第2形状情報生成部は、前記三次元の設計情報に基づいて、前記M2×T2個の仮想分割面のそれぞれに対して仮想的に設定されるM2×T2個の仮想カメラ位置であるM2×T2個の第2仮想カメラ位置のそれぞれから前記三次元モデルを撮影する場合を想定して、前記M2×T2個の第2仮想カメラ位置のそれぞれについて、前記参照形状情報を生成し、前記第2算出部は、前記M2×T2個の第2仮想カメラ位置のそれぞれについて、前記実形状情報と前記参照形状情報との間における一致度を示す数値を算出する。
【0008】
第3の態様に係る基板処理装置は、第2の態様に係る基板処理装置であって、前記探索処理部は、前記高一致度仮想カメラ位置ならびに前記M2×T2個の第2仮想カメラ位置のうち、前記実形状情報と前記参照形状情報との間における一致度が最も大きな仮想カメラ位置を検出する第2検出部、を含む。
【0009】
第4の態様に係る基板処理装置は、第3の態様に係る基板処理装置であって、前記探索処理部は、第1の単位処理を実行した後に、1回以上の第nの単位処理(nは2以上の自然数)を実行し、前記探索処理部は、前記第1の単位処理において、第1A処理と、第1B処理と、第1C処理と、第1D処理と、を順に行い、前記第1A処理は、前記分割面生成部によって、前記T2個の仮想面をそれぞれ分割することで生成された、前記第2検出部で1番目に検出された仮想カメラ位置である1番目の基準仮想カメラ位置を包含する仮想分割面を含み且つ前記基準点よりも前記1番目の基準仮想カメラ位置の側において前記基準点と前記1番目の基準仮想カメラ位置とを通る直線と交差しているとともに前記基準点からの距離が相互に異なるT3個(T3は2以上の自然数)の仮想分割面である1番目のT3個の仮想分割面、のそれぞれを同一のルールで分割して、該1番目のT3個の仮想分割面のそれぞれについてM3個(M3は2以上の自然数)の仮想分割面である1番目のM3個の仮想分割面を生成することで、M3×T3個の仮想分割面である1番目のM3×T3個の仮想分割面を生成する処理であり、前記第1B処理は、前記第2形状情報生成部によって、前記三次元の設計情報に基づいて、前記1番目のM3×T3個の仮想分割面のそれぞれに対して仮想的に設定されるM3×T3個の仮想カメラ位置である1番目のM3×T3個の第3仮想カメラ位置のそれぞれから前記三次元モデルを撮影する場合を想定して、前記1番目のM3×T3個の第3仮想カメラ位置のそれぞれについて、前記参照形状情報を生成する処理であり、前記第1C処理は、前記第2算出部によって、前記1番目のM3×T3個の第3仮想カメラ位置のそれぞれについて、前記実形状情報と前記参照形状情報との間における一致度を示す数値を算出する処理であり、前記第1D処理は、前記第2検出部によって、前記1番目の基準仮想カメラ位置ならびに前記1番目のM3×T3個の第3仮想カメラ位置のうち、前記実形状情報と前記参照形状情報との間における一致度が最も大きな仮想カメラ位置である2番目の基準仮想カメラ位置を検出する処理であり、前記探索処理部は、前記第nの単位処理において、第nA処理と、第nB処理と、第nC処理と、第nD処理と、を順に行い、前記nA処理は、前記分割面生成部によって、n-1番目の前記T3個の仮想分割面をそれぞれ分割することで生成された、前記第2検出部でn番目に検出された仮想カメラ位置であるn番目の基準仮想カメラ位置を包含する仮想分割面を含み且つ前記基準点よりも前記n番目の基準仮想カメラ位置の側において前記基準点と前記n番目の基準仮想カメラ位置とを通る直線と交差しているとともに前記基準点からの距離が相互に異なるT3個の仮想分割面であるn番目のT3個の仮想分割面、のそれぞれを同一のルールで分割して、該n番目のT3個の仮想分割面のそれぞれについてM3個の仮想分割面であるn番目のM3個の仮想分割面を生成することで、M3×T3個の仮想分割面であるn番目のM3×T3個の仮想分割面を生成する処理であり、前記第nB処理は、前記第2形状情報生成部によって、前記三次元の設計情報に基づいて、前記n番目のM3×T3個の仮想分割面のそれぞれに対して仮想的に設定されるM3×T3個の仮想カメラ位置であるn番目のM3×T3個の第3仮想カメラ位置のそれぞれから前記三次元モデルを撮影する場合を想定して、前記n番目のM3×T3個の第3仮想カメラ位置のそれぞれについて、前記参照形状情報を生成する処理であり、前記第nC処理は、前記第2算出部によって、前記n番目のM3×T3個の第3仮想カメラ位置のそれぞれについて、前記実形状情報と前記参照形状情報との間における一致度を示す数値を算出する処理であり、前記第nD処理は、前記第2検出部によって、前記n番目の基準仮想カメラ位置ならびに前記n番目のM3×T3個の第3仮想カメラ位置のうち、前記実形状情報と前記参照形状情報との間における一致度が最も大きな仮想カメラ位置を検出する処理である。
【0010】
第5の態様に係る基板処理装置は、第4の態様に係る基板処理装置であって、前記探索処理部は、前記第2検出部によって、前記1番目の基準仮想カメラ位置から前記n番目の基準仮想カメラ位置のうちの1つの基準仮想カメラ位置が、前記実形状情報と前記参照形状情報との間における一致度が最も大きな仮想カメラ位置として、予め設定された第1所定回数連続して検出されたことに応答して、前記1回以上の第nの単位処理の実行を終了する。
【0011】
第6の態様に係る基板処理装置は、第4の態様に係る基板処理装置であって、前記探索処理部は、前記第nの単位処理を、予め設定された第2所定回数実行したことに応答して、前記1回以上の第nの単位処理の実行を終了する。
【0012】
第7の態様に係る基板処理装置は、第4から第6の何れか1つの態様に係る基板処理装置であって、前記1回以上の第nの単位処理における最後の前記第nD処理において前記第2検出部によってn+1番目に検出された前記実形状情報と前記参照形状情報との間における一致度が最も大きな仮想カメラ位置に基づいて認識される前記対象部品の姿勢に係る現実情報と、前記対象部品の状態が正常である場合の前記三次元の設計情報に基づく前記対象部品の姿勢に係る正常情報と、を比較することで、前記対象部品の異常を検出する異常検出部、をさらに備えている。
【0013】
第8の態様に係る基板処理装置は、第2から第7の何れか1つの態様に係る基板処理装置であって、前記同一のルールは、分割される対象である分割対象面の中心点と該分割対象面の全ての頂点とをそれぞれ結ぶ複数の線分によって、前記分割対象面を複数の面に分割するルールを含む。
【0014】
第9の態様に係る基板処理装置は、第1から第8の何れか1つの態様に係る基板処理装置であって、前記複数の仮想面のそれぞれは、三角形の面であり、前記面集合体は、多数の三角形の面で構成された多面体である。
【0015】
第10の態様に係る基板処理装置は、第9の態様に係る基板処理装置であって、前記分割面生成部は、前記高一致度仮想面における3つの頂点と前記高一致度仮想カメラ位置とをそれぞれ結ぶ3つの線分によって、前記高一致度仮想面を、前記複数の仮想分割面としての3つの仮想分割面に分割する。
【0016】
第11の態様に係る基板処理装置における情報処理方法は、基板の処理を行う基板処理装置における情報処理方法であって、演算部によって、撮影部による撮影によって得られた対象部品を捉えた実画像を取得する実画像取得ステップと、演算部によって、記憶部に記憶された前記対象部品に関する三次元の設計情報に基づいてそれぞれ生成される、複数の仮想カメラ位置からの前記対象部品の三次元モデルの撮影で取得され得る複数の仮想画像のそれぞれにおける前記三次元モデルの二次元形状に係る参照形状情報と、前記実画像における物体の二次元形状に係る実形状情報と、に基づいて、前記複数の仮想カメラ位置のうち、前記参照形状情報と前記実形状情報との間における一致度が最も大きな仮想カメラ位置を探索する探索ステップと、を有し、前記探索ステップは、前記三次元の設計情報に基づいて、前記三次元モデルの基準点を中心として該三次元モデルを囲む仮想的な球面に沿って位置する複数の仮想面を含む面集合体を仮想的に設定し、且つ前記複数の仮想面のそれぞれに対して仮想的に設定される複数の仮想カメラ位置である複数の第1仮想カメラ位置のそれぞれから前記三次元モデルを撮影する場合を想定して、前記複数の第1仮想カメラ位置のそれぞれについて生成した、前記参照形状情報を取得する第1形状情報取得ステップと、前記複数の第1仮想カメラ位置のそれぞれについて、前記実形状情報と前記参照形状情報との間における一致度を示す数値を算出する第1算出ステップと、前記第1算出ステップにおける算出結果に基づいて、前記複数の第1仮想カメラ位置のうち、前記実形状情報と前記参照形状情報との間における一致度が最も大きな第1仮想カメラ位置である高一致度仮想カメラ位置を検出する第1検出ステップと、前記複数の仮想面のうちの前記高一致度仮想カメラ位置が仮想的に設定された仮想面である高一致度仮想面を分割することで複数の仮想分割面を生成する分割面生成ステップと、前記三次元の設計情報に基づいて、前記複数の仮想分割面のそれぞれに対して仮想的に設定される複数の仮想カメラ位置である複数の第2仮想カメラ位置のそれぞれから前記三次元モデルを撮影する場合を想定して、前記複数の第2仮想カメラ位置のそれぞれについて、前記参照形状情報を生成する第2形状情報生成ステップと、前記複数の第2仮想カメラ位置のそれぞれについて、前記実形状情報と前記参照形状情報との間における一致度を示す数値を算出する第2算出ステップと、を含む。
【発明の効果】
【0017】
第1の態様に係る基板処理装置によれば、複数の仮想面のうちの第1検出部によって検出された高一致度仮想カメラ位置が設定された仮想面である高一致度仮想面を分割することで生成した複数の仮想分割面のそれぞれに第2仮想カメラ位置を設定し、各第2仮想カメラ位置について、実形状情報と参照形状情報との間における一致度を示す数値を算出する。このため、高一致度仮想面と複数の仮想分割面とは無関係な面ではなく、複数の仮想分割面については数および面積のうちの少なくとも1つの増大が低減され得る。これにより、実画像で捉えられた対象部品の姿勢を認識するための計算量が低減され得る。その結果、基板処理装置において、部品の姿勢の認識を効率良く行うことができる。
【0018】
第2の態様に係る基板処理装置によれば、撮影部と対象部品との距離が変化する場合に、部品の姿勢の認識を効率良く行うことができる。
【0019】
第3の態様に係る基板処理装置によれば、実形状情報と参照形状情報との間における一致度がより大きくなる仮想カメラ位置を効率良く検出することができる。
【0020】
第4の態様に係る基板処理装置によれば、単位処理を順に実施する際に、実形状情報と参照形状情報との間における一致度が最も大きくなる仮想カメラ位置を包含する仮想分割面を含み且つ対象部品からの距離が相互に異なる複数の仮想分割面をそれぞれ分割して、次回の仮想カメラ位置を設定する複数の仮想分割面を生成する。これにより、分割前の仮想分割面と、分割後の仮想分割面とは無関係な面ではなく、分割後の仮想分割面については数および面積のうちの少なくとも1つの増大が低減され得る。これにより、実画像で捉えられた対象部品の姿勢を認識するための計算量が低減され得る。その結果、基板処理装置において、部品の姿勢の認識を効率良く行うことができる。
【0021】
第5の態様に係る基板処理装置によれば、計算量の低減により、部品の姿勢の認識を効率良く行うことができる。
【0022】
第6の態様に係る基板処理装置によれば、計算量の低減により、部品の姿勢の認識を効率良く行うことができる。
【0023】
第7の態様に係る基板処理装置によれば、基板処理装置における部品の姿勢に係る現実情報の認識を効率良く行うことができるため、部品の異常の検出を効率良く行うことができる。
【0024】
第8の態様に係る基板処理装置によれば、面の分割を容易に行うことができる。
【0025】
第9の態様に係る基板処理装置によれば、複数の仮想面を含む面集合体の設定を容易に行うことができる。
【0026】
第10の態様に係る基板処理装置によれば、仮想面の分割を容易に行うことができる。
【0027】
第11の態様に係る基板処理装置における情報処理方法によれば、複数の仮想面のうちの第1検出ステップにおいて検出された高一致度仮想カメラ位置が設定された仮想面である高一致度仮想面を分割することで生成した複数の仮想分割面のそれぞれに第2仮想カメラ位置を設定し、各第2仮想カメラ位置について、実形状情報と参照形状情報との間における一致度を示す数値を算出する。このため、高一致度仮想面と複数の仮想分割面とは無関係な面ではなく、複数の仮想分割面については数および面積のうちの少なくとも1つの増大が低減され得る。これにより、実画像で捉えられた対象部品の姿勢を認識するための計算量が低減され得る。その結果、基板処理装置において、部品の姿勢の認識を効率良く行うことができる。
【図面の簡単な説明】
【0028】
【
図1】
図1は、第1実施形態に係る基板処理装置の概略的な構成の一例を模式的に示す側面図である。
【
図2】
図2は、第1実施形態に係る基板処理装置の概略的な構成の一例を模式的に示す平面図である。
【
図3】
図3は、第1実施形態に係る基板処理装置の機能的な構成の一例を示すブロック図である。
【
図4】
図4は、制御部における探索処理に関する機能的な構成の具体的な一例を示すブロック図である。
【
図5】
図5は、カメラによる撮影で得られた実画像の具体的な一例を示す図である。
【
図6】
図6は、実画像における処理対象領域の具体的な一例を示す図である。
【
図7】
図7は、処理対象実画像の具体的な一例を示す図である。
【
図8】
図8は、エッジ画像の具体的な一例を示す図である。
【
図9】
図9は、探索処理の基本的な考え方を説明するための図である。
【
図10】
図10は、探索処理の基本的な考え方を説明するための図である。
【
図11】
図11は、探索処理の基本的な考え方を説明するための図である。
【
図12】
図12は、探索処理の基本的な考え方を説明するための図である。
【
図13】
図13は、探索処理の基本的な考え方を説明するための図である。
【
図14】
図14は、探索処理の基本的な考え方を説明するための図である。
【
図15】
図15は、探索処理の基本的な考え方を説明するための図である。
【
図16】
図16は、探索処理の基本的な考え方を説明するための図である。
【
図17】
図17は、複数の第1仮想カメラ位置の設定態様の一例を示す図である。
【
図18】
図18は、仮想面における第1仮想カメラ位置の設定態様の一例を示す図である。
【
図19】
図19は、対象部品からの距離が相互に異なるT1個の面集合体を仮想的に設定する態様の一例を説明するための図である。
【
図20】
図20は、1つの仮想カメラ位置についての実形状情報と参照形状情報との間における一致度を示す数値の計算処理の一具体例を説明するための図である。
【
図21】
図21は、1つの仮想カメラ位置についての実形状情報と参照形状情報との間における一致度を示す数値の計算処理の一具体例を説明するための図である。
【
図22】
図22は、1つの仮想カメラ位置についての実形状情報と参照形状情報との間における一致度を示す数値の計算処理の一具体例を説明するための図である。
【
図23】
図23は、1つの仮想カメラ位置についての実形状情報と参照形状情報との間における一致度を示す数値の計算処理の一具体例を説明するための図である。
【
図24】
図24は、1つの仮想カメラ位置についての実形状情報と参照形状情報との間における一致度を示す数値の計算処理の一具体例を説明するための図である。
【
図25】
図25は、実形状情報としてのエッジ画像に照合対象領域を設定する一具体例を示す図である。
【
図26】
図26は、高一致度仮想面を複数の仮想分割面に分割する一具体例を模式的に示す図である。
【
図27】
図27は、T2個の仮想面の一例を模式的に示すイメージ図である。
【
図28】
図28は、1番目のT3個の仮想分割面の一例を模式的に示すイメージ図である。
【
図29】
図29は、分割面生成部によって1番目のM3×T3個の仮想分割面を生成する第1の具体例を説明するための図である。
【
図30】
図30は、分割面生成部によって1番目のM3×T3個の仮想分割面を生成する第2の具体例を説明するための図である。
【
図31】
図31は、分割面生成部によって1番目のM3×T3個の仮想分割面を生成する第2の具体例を説明するための図である。
【
図32】
図32は、n番目のT3個の仮想分割面の一具体例である2番目のT3個の仮想分割面の一例を模式的に示すイメージ図である。
【
図33】
図33は、分割面生成部によって2番目のM3×T3個の仮想分割面を生成する第1の具体例を説明するための図である。
【
図34】
図34は、分割面生成部によって2番目のM3×T3個の仮想分割面を生成する第2の具体例を説明するための図である。
【
図35】
図35は、分割面生成部によって2番目のM3×T3個の仮想分割面を生成する第2の具体例を説明するための図である。
【
図36】
図36は、基板処理装置における処理の概略的な流れの具体例を示す流れ図である。
【
図37】
図37は、
図36のステップS3およびステップS10における画像処理の流れの具体例を示す流れ図である。
【
図38】
図38は、
図36のステップS4およびステップS11の探索処理における処理の流れの具体例を示す流れ図である。
【
図39】
図39は、
図38のステップSb1の1次探索処理における処理の流れの具体例を示す流れ図である。
【
図40】
図40は、
図38のステップSb2の2次探索処理における処理の流れの具体例を示す流れ図である。
【
図41】
図41は、
図38のステップSb2の2次探索処理における処理の流れの具体例を示す流れ図である。
【
図42】
図42は、
図38のステップSb2の2次探索処理における処理の流れの具体例を示す流れ図である。
【
図43】
図43は、対象部品が原点位置に移動した状態の一例を模式的に示す図である。
【
図44】
図44は、チャックの異常の検出を説明するための図である。
【
図45】
図45は、チャックの異常の検出を説明するための図である。
【
図46】
図46は、ノズルおよびガードの異常の検出を説明するための図である。
【
図47】
図47は、基板処理システムの概略的な構成の一例を模式的に示す図である。
【発明を実施するための形態】
【0029】
処理室と、基板保持部と、ノズルと、カメラと、画像処理部と、監視部とを備えた基板処理装置がある。
【0030】
この基板処理装置では、基板保持部、ノズル、およびカメラが処理室内に配置されている。基板保持部は、基板を水平姿勢で保持した状態で水平面内において回転させる。ノズルは、このノズルが固定された駆動アームの旋回により、基板の側方に外れた待機位置と、基板の上方における吐出位置と、の間で移動する。ノズルは、基板を基板保持部に対して着脱する際に待機位置に配置され、ノズルから基板に向けて処理液を吐出する際に吐出位置に配置される。カメラは、処理室内の所定位置に配置されており、吐出位置に移動したノズルを含む所定領域を撮影する。画像処理部は、カメラからの画像に基づいて、ノズルの位置を示す第2ノズル位置情報を取得して監視部に出力する。監視部は、制御部からのノズルの位置を直接的または間接的に示す情報としての第1ノズル位置情報と、画像処理部からの第2ノズル位置情報と、の対応性に基づいて、ノズルの位置に異常があるか否かを判断する。
【0031】
ところで、基板処理装置においては、ノズル、基板保持部において基板の周縁を保持するチャック、および基板保持部の側方を囲む領域で昇降するガードなどの各種の部品のうちの1つ以上の部品について、部品の異常および動作状態などを検出するために、部品の姿勢を認識したい場合がある。
【0032】
この場合には、例えば、次の[処理A]から[処理E]を順に行う手法によって部品の姿勢を認識することが考えられる。
【0033】
[処理A]部品の三次元CAD(Computer Aided Design)データなどで表される部品の三次元の設計形状(三次元部品モデルともいう)を中心とする球面に沿った複数の仮想面で構成された仮想的な多面体を設定する。各仮想面は、例えば、三角形の面で構成される。
【0034】
[処理B]上記処理Aで設定した仮想的な多面体を構成する各仮想面上の所定の位置(仮想カメラ位置ともいう)にカメラ(仮想カメラともいう)を仮想的に設置する。これにより、三次元部品モデルを中心にして囲むように複数の仮想カメラを仮想的に設置する。
【0035】
[処理C]上記処理Bで複数の仮想カメラ位置に設置した複数の仮想カメラによる三次元部品モデルの仮想的な撮影によって取得される複数の画像(仮想画像ともいう)を生成する。
【0036】
[処理D]上記処理Cで生成された複数の仮想画像のそれぞれと、実際にカメラ(実カメラともいう)で部品を撮影することで得た画像(実画像ともいう)との間で、テンプレートマッチングなどを用いた照合処理を行う。これにより、複数の仮想カメラ位置のうち、捉えられた部品の形状、向きおよび大きさなどについて実画像と仮想画像との間における一致度が最も大きな仮想カメラ位置を検出する。
【0037】
[処理E]上記処理Dにおける検出結果に基づいて、部品の姿勢を認識する。
【0038】
ここで、例えば、実カメラと部品との距離が変化する場合には、上記処理Aにおいて、三次元部品モデルの中心からの距離が相互に異なる、複数の仮想的な多面体を設定する。
【0039】
ところが、例えば、上記処理Aにおいて、非常に細かい多数の仮想面によって仮想的な多面体を構成させることで、部品の姿勢を認識する精度を高めることが考えられるが、計算量の増大によって計算に要する時間が長くなる。
【0040】
そこで、例えば、上記処理Aから上記処理Dを順に所定の回数だけ繰り返した後に上記処理Eを行うこととし、1回目の上記処理Aでは、比較的大きな複数の仮想面によって仮想的な多面体を構成させるとともに、2回目以降の上記処理Aでは、前回の上記処理Aよりも相対的に細かい多数の仮想面によって仮想的な多面体を構成させ、2回目以降の上記処理Bでは、直前の上記処理Aで設定した多面体のうち、直近の上記処理Dで検出された仮想カメラ位置に近い一部の複数の仮想面のそれぞれの上の所定の仮想カメラ位置に仮想カメラを仮想的に設置する手法が考えられる。この手法により、部品の姿勢を認識する精度を高めつつ、計算量の低減によって計算に要する時間が短縮され得る。
【0041】
しかしながら、この手法では、複数回の上記処理Aにおいて段階的に細かい仮想的な多面体を設定する必要があり、2回目以降の上記処理Aにおいて設定される仮想的な多面体は、前回の上記処理Aにおいて設定された仮想的な多面体とは無関係である。このため、部品の姿勢を認識する精度を維持するためには、2回目以降の上記処理Bにおいて仮想カメラが仮想的に設定される上記の一部の複数の仮想面は、直近の上記処理Dで検出された仮想カメラの位置の近くに位置するある程度広いエリアをカバーすることになる。その結果、2回目以降の上記処理Bにおいて設定される上記の一部の複数の仮想面については、数および面積のうちの少なくとも一方がある程度増大してしまい、計算量の低減を十分に図ることが容易でない。
【0042】
よって、基板処理装置については、部品の姿勢の認識を効率良く行う点で改善の余地がある。
【0043】
以下、添付される図面を参照しながら実施の形態について説明する。なお、図面は概略的に示されるものであり、説明の便宜のため、適宜、構成の省略、または、構成の簡略化がなされるものである。また、図面に示される構成の大きさおよび位置の相互関係は、必ずしも正確に記載されるものではなく、適宜変更され得るものである。
【0044】
また、以下に示される説明では、同様の構成要素には同じ符号を付して図示し、それらの名称と機能とについても同様のものとする。したがって、それらについての詳細な説明を、重複を避けるために省略する場合がある。
【0045】
また、以下に記載される説明において、「第1」または「第2」などの序数が用いられる場合があっても、これらの用語は、実施の形態の内容を理解することを容易にするために便宜上用いられるものであり、これらの序数によって生じ得る順序に限定されるものではない。
【0046】
相対的または絶対的な位置関係を示す表現(例えば「一方向に」「一方向に沿って」「平行」「直交」「中心」「同心」「同軸」など)が用いられる場合、該表現は、特に断らない限り、その位置関係を厳密に表すのみならず、公差もしくは同程度の機能が得られる範囲で相対的に角度または距離に関して変位された状態も表すものとする。等しい状態であることを示す表現(例えば「同一」「等しい」「均質」など)が用いられる場合、該表現は、特に断らない限り、定量的に厳密に等しい状態を表すのみならず、公差もしくは同程度の機能が得られる差が存在する状態も表すものとする。形状を示す表現(例えば、「四角形状」または「円筒形状」など)が用いられる場合、該表現は、特に断らない限り、幾何学的に厳密にその形状を表すのみならず、同程度の効果が得られる範囲で、例えば凹凸や面取りなどを有する形状も表すものとする。一の構成要素を「備える」「具える」「具備する」「含む」または「有する」という表現が用いられる場合には、該表現は、他の構成要素の存在を除外する排他的表現ではない。「A、BおよびCのうちの少なくとも1つ」という表現が用いられる場合には、該表現は、Aのみ、Bのみ、Cのみ、A、BおよびCのうち任意の2つ、ならびに、A、BおよびCの全てを含む。
【0047】
<1.基板処理装置の全体構成>
図1は、第1実施形態に係る基板処理装置1の概略的な構成の一例を模式的に示す側面図である。
図2は、第1実施形態に係る基板処理装置1の概略的な構成の一例を模式的に示す平面図である。
【0048】
基板処理装置1は、基板(例えば、半導体ウエハ)Wの処理を行う装置である。本第1実施形態では、基板処理装置1は、基板Wを一枚ずつ処理する枚葉式の装置である。基板Wには、略円盤状の薄い平板が適用される。換言すれば、基板Wは、平面視した場合に円形状の形状を有する。平面視については、特に条件が記載されていない場合には、各部を上方から下方に向けて見た平面視を意味する。基板処理装置1は、基板Wを回転させつつ処理液を供給して所定の処理を基板Wに対して行う。基板処理装置1には、例えば、処理液を用いて基板Wを洗浄する基板洗浄装置などが適用される。
【0049】
基板処理装置1は、筐体CAを備えている。筐体CAは、この筐体CAの内部をこの筐体CAの周囲の雰囲気から遮断する。
【0050】
基板処理装置1は、スピンチャック3を備えている。スピンチャック3は、平面視で基板Wよりも径が大きな円形状の構造を有する。スピンチャック3は、下面に回転軸5の上端が連結されている。回転軸5の下端は、モータ7に連結されている。スピンチャック3は、モータ7の駆動によって回転中心PL1を中心として回転する。回転中心PL1は、鉛直方向に伸びている。
【0051】
スピンチャック3は、複数個のチャック9を備えている。より具体的には、スピンチャック3は、このスピンチャック3の上面の周縁部に複数個のチャック9を備えている。本第1実施形態では、スピンチャック3が4個のチャック9を備えている。スピンチャック3が基板Wを水平姿勢で支持した状態で安定的に回転中心PL1を中心として回転させることが可能であれば、スピンチャック3が備えているチャック9の個数は、4個に限られない。
【0052】
チャック9は、例えば、下面支持部11と、周縁支持部13と、回転用磁石15と、を備えている。下面支持部11は、基板Wの下面に下方から当接することで、基板Wを支持するための部分である。例えば、下面支持部11における基板Wの下面との接触面積が小さくなるように構成されていれば、基板Wとチャック9との間で、相互に汚染が生じる程度が小さくなり得る。下面支持部11は、回転中心PL2で回転自在にスピンチャック3の上面に取り付けられている。回転中心PL2は、鉛直方向に伸びている。周縁支持部13は、下面支持部11の上面に立設されている。例えば、周縁支持部13における下面支持部11の上面からの高さが基板Wの厚みより高ければ、周縁支持部13は、基板Wの周縁を安定して保持することができる。周縁支持部13は、平面視した場合に、回転中心PL2から下面支持部11の外縁に向かって離れた位置に設けられている。換言すると、周縁支持部13は、回転中心PL2から偏芯している。回転用磁石15は、スピンチャック3の下面側において、回転中心PL2に対応する位置に取り付けられている。回転用磁石15は、下面支持部11に連結されている。回転用磁石15は、回転中心PL2を中心として回転自在に設けられている。
【0053】
基板処理装置1は、回転用磁石15の下方に配置されたチャック駆動機構17を備えている。チャック駆動機構17は、チャック9よりも回転軸5側に配置されている。チャック駆動機構17は、例えば、エアシリンダ19と、駆動用磁石21と、を備えている。駆動用磁石21は、平面視した場合に環状の形態を有する。エアシリンダ19は、鉛直方向に沿って位置するピストンロッド(ロッドとも作動軸ともいう)を有する。エアシリンダ19のロッドの上端には、駆動用磁石21が取り付けられている。チャック駆動機構17は、制御部45からのチャック動作指令に応じて動作される。チャック駆動機構17は、エアシリンダ19によって駆動用磁石21を上昇させることで駆動用磁石21をチャック9に接近させることが可能であり、エアシリンダ19によって駆動用磁石21を下降させることで駆動用磁石21をチャック9から離れる方向に移動させることが可能である。チャック駆動機構17は、駆動用磁石21を上昇した位置(上昇位置ともいう)と下降した位置(下降位置ともいう)との間で移動させることができる。
【0054】
チャック9は、図示を省略する付勢機構を備えている。駆動用磁石21が下降して上昇位置から下降位置へ移動すると、チャック9は、開放位置から閉止位置へ移動する。駆動用磁石21が上昇して下降位置から上昇位置へ移動すると、チャック9は、閉止位置から開放位置へ移動する。チャック9が開放位置から閉止位置へ移動すると、周縁支持部13が回転中心PL2を中心として回転し、周縁支持部13が回転中心PL1に近づく方向に移動して、基板Wの周縁に当接する。これにより、複数個のチャック9は、閉止位置において基板Wを挟持することができる。チャック9が閉止位置から開放位置へ移動する際には、周縁支持部13が回転中心PL2を中心として回転し、周縁支持部13が回転中心PL1から離れる方向に移動する。これにより、複数個のチャック9は、開放位置において基板Wを挟持していない状態となる。この状態では、筐体CA外からスピンチャック3上への基板Wの搬入、およびスピンチャック3上から筐体CA外への基板Wの搬出が可能となる。また、下面支持部11上に基板Wが載置されていない状態では、駆動用磁石21が下降して上昇位置から下降位置へ移動すると、チャック9の位置は、下面支持部11上に基板Wが載置された場合に想定される基板Wの外縁の位置よりも周縁支持部13が若干基板Wの内側に移動した位置(原点位置ともチャック原点位置ともいう)となる。換言すれば、チャック9の位置が原点位置にある場合には、周縁支持部13の位置は、チャック9が閉止位置にある場合における位置よりも回転中心PL1側に位置する。
【0055】
基板処理装置1は、チャック9の回転用磁石15付近に配置された原点センサZ1を備えている。原点センサZ1は、チャック9が閉止位置または原点位置に移動すると、この原点センサZ1から出力する信号(出力信号ともいう)を変化させる。例えば、原点センサZ1は、チャック9が閉止位置または原点位置に移動すると、出力信号をオンにする。
【0056】
基板処理装置1は、スピンチャック3の周囲に配置されたガード23を備えている。ガード23は、スピンチャック3の側方を囲っている。ガード23は、スピンチャック3によって支持され且つ回転されている基板W上から周囲への処理液の飛散を防止するための部分である。ガード23は、筒状の形態を有する。ガード23は、上部に形成された開口部23aを有する。開口部23aの内径は、スピンチャック3の外径よりも大きい。
【0057】
基板処理装置1は、ガード23を昇降させることが可能なガード移動機構25を備えている。ガード移動機構25は、例えば、エアシリンダ27と、係止片29とを備えている。ガード移動機構25は、例えば、ガード23の外周側に配置されている。ガード移動機構25は、ガード23を昇降することが可能であれば、ガード23の内周側に配置されていてもよい。エアシリンダ27は、鉛直方向に沿って位置するピストンロッド(ロッドとも作動軸ともいう)を有する。エアシリンダ27のロッドの上端には、係止片29が取り付けられている。係止片29は、ガード23の外周面に固定されている。ガード移動機構25は、ガード23を昇降させることが可能であれば、上記のような構成に限定されない。
【0058】
ガード移動機構25は、制御部45からのガード動作指令に応じて、ガード23を原点位置と処理位置との間で移動させる。ガード23の原点位置は、ガード移動機構25によってガード23が下降された際のガード23の位置である。換言すれば、原点位置は、ガード23の上端が低い位置である。ガード23の処理位置は、ガード移動機構25によってガード23が上昇された際のガード23の位置である。換言すれば、原点位置は、処理位置よりも低い位置であり、処理位置は、原点位置よりも高い位置である。ガード23が原点位置に位置している状態では、ガード23の上縁の位置がスピンチャック3に支持されている基板Wの位置よりも低い。ガード23が処理位置に位置している状態では、ガード23の上縁の位置がスピンチャック3に支持されている基板Wの位置よりも高い。このため、ガード23が処理位置に位置している状態では、ガード23の内周面によって、スピンチャック3によって支持され且つ回転されている基板W上から周囲へ飛散する処理液を受けることができる。基板処理装置1は、例えば、ガード23の内周側に配置された原点センサZ2を備えている。原点センサZ2は、ガード23が原点位置に移動すると、この原点センサZ2から出力される信号(出力信号)を変化させる。例えば、原点センサZ2は、ガード23が原点位置に移動すると、出力信号をオンにする。
【0059】
基板処理装置1は、ガード23の内周側に位置している図示を省略する排液ポートを備えている。廃液ポートは、スピンチャック3によって支持され且つ回転されている基板W上から周囲に飛散してガード23の内周面で受けられた処理液を回収するための部分である。ガード23の数は、1つに限られず、複数であってよい。廃液ポートの数は、1つに限られず、複数であってもよい。ガード23の数が複数である場合には、ガード23ごとに廃液ポートが配置されていてよい。この場合には、各ガード23が、ガード移動機構25によって昇降されて、基板W上から飛散する処理液を受けるガード23と、このガード23の内周面で受けた処理液を回収する廃液ポートと、の組み合わせが切り換わるように構成されていてよい。例えば、処理液の種類に応じて、ガード移動機構25によって各ガード23を昇降させることで、基板W上から飛散する処理液を受けるガード23と、このガード23の内周面で受けた処理液を回収する廃液ポートと、の組み合わせを切り換えることが考えられる。
【0060】
基板処理装置1は、ガード23の外周側に配置された処理液供給機構31を備えている。処理液供給機構31は、例えば、ノズル33と、基台部37と、ノズル移動機構35と、を備えている。本第1実施形態では、処理液供給機構31は、例えば、2本のノズル33を備えている。以下の説明において、2本のノズル33を区別する必要がある場合には、適宜に
図2における左側のノズル33をノズル33Aと称し、右側のノズル33をノズル33Bと称する。処理液供給機構31におけるノズル33の数は、1本であってもよいし、3本以上であってもよい。本第1実施形態では、2本のノズル33が同じ構成であるものとする。
【0061】
ノズル33は、例えば、延出部33aと、垂下部33bと、先端部33cと、を備えている。ノズル33は、延出部33aの一端が基台部37に取り付けられている。延出部33aは、基台部37から水平方向に延出されている。延出部33aの他端は、垂下部33bにつながっている。垂下部33bは、延出部33aから鉛直方向の下方に伸びている。先端部33cは、垂下部33bの下端側に位置している。先端部33cは、下面側から処理液を吐出する。処理液としては、例えば、フォトレジスト液、SOG(Spin-on-Glass)液、現像液、リンス液、純水および洗浄液などが挙げられる。
【0062】
ノズル移動機構35は、例えば、モータ39と、回転軸41と、位置検出部43と、を備えている。モータ39は、鉛直姿勢で配置されている。回転軸41は、モータ39によって回転中心PL3を中心として回転される。回転軸41は、基台部37に連結されている。基台部37は、モータ39の駆動により回転される。ノズル33は、ノズル移動機構35によって、基台部37とともに回転中心PL3を中心として揺動される。位置検出部43は、回転軸41の回転中心PL3を中心とした回転方向における回転軸41の位置(回転位置ともいう)を検出する。位置検出部43は、平面視における回転中心PL3を中心とした回転軸41の角度を検出する。位置検出部43は、回転軸41の回転位置に応じてパルス信号を出力する。
【0063】
基板処理装置1は、平面視でガード23から側方に離れた位置に配置された、待機カップ44を備えている。待機カップ44は、平面視した場合に、ノズル33の先端部33cがこの待機カップ44の上方に位置することが可能に配置されている。別の観点から言えば、待機カップ44は、ノズル33の原点位置の下方に位置している。待機カップ44は、ノズル33の先端部33cの乾燥を防止するための部分である。待機カップ44は、ノズル33からの処理液の空吐出に利用される。ノズル移動機構35は、モータ39を駆動することでノズル33を揺動させる。ノズル移動機構35は、制御部45からのノズル動作指令に応じて、原点位置と、スピンチャック3の回転中心PL1の上にあたる吐出位置と、の間でノズル33の先端部33cを移動させる。ノズル33の吐出位置は、ノズル33の先端部33cから基板W上に向けて処理液を吐出する際にノズル33が配置される位置である。
【0064】
基板処理装置1は、例えば、回転軸41の外周部側に配置された原点センサZ3を備えている。原点センサZ3は、ノズル33が原点位置に位置すると、この原点センサZ3から出力される信号(出力信号)を変化させる。例えば、原点センサZ3は、ノズル33が原点位置に移動すると、出力信号をオンにする。なお、原点センサZ3を省略して構成の簡易化を図ってもよい。この場合には、回転軸41の一部に突起(回転側突起ともいう)を設けておくとともに、回転軸41の外周部側に配置され且つ筐体CAに固定された突起(固定側突起ともいう)を設けておいてもよい。例えば、回転軸41の回転中心PL3を中心とした回転によって回転軸41の回転側突起が固定側突起に当接して、回転軸41の回転中心PL3を中心とした回転が不可能となったことを位置検出部43が検出することで、ノズル33が原点位置に位置していることを検出してもよい。ここでは、位置検出部43のパルス信号が不変となった時点におけるノズル33の位置を原点位置として取り扱ってよい。
【0065】
基板処理装置1は、撮影部としてのカメラCMを備えている。カメラCMは、後述する1つ以上の対象部品を捉えた画像(実画像ともいう)を撮影によって得る。カメラCMは、例えば、筐体CAの一部位に取り付けられている。カメラCMの位置は、後述する対象部品が視野に収まれるのであれば、何れの箇所であってもよい。カメラCMは、例えば、後述する1つ以上の対象部品の全てが視野内に収まる視野角(画角)を有する。カメラCMは、例えば、後述する1つ以上の対象部品の原点位置の全てが視野内に収まる視野角(画角)を有する。
【0066】
基板処理装置1は、制御部45と、指示部47と、報知部49と、を備えている。制御部45の詳細については、後述する。指示部47は、基板処理装置1のオペレータによって操作される。指示部47は、例えば、キーボードもしくはタッチ式パネルである。指示部47は、後述する対象部品、要確認タイミング、許容範囲、レシピおよび処理の開始などを指示する。報知部49は、制御部45が異常を検出した場合に、オペレータに異常を報知する。報知部49としては、例えば、表示器、ランプおよびスピーカなどが挙げられる。
【0067】
<2.基板処理装置における制御系の構成>
図3は、第1実施形態に係る基板処理装置1の機能的な構成の一例を示すブロック図である。
【0068】
制御部45は、例えば、演算部45aおよび記憶部45bなどを備えている。演算部45aは、例えば、中央演算装置(CPU)などのプロセッサとして機能する電子回路、およびプロセッサが処理を実行するためのデータを一時的に記憶するランダムアクセスメモリ(RAM)などのメモリとして機能する電子回路を有する。記憶部45bは、ハードディスクまたはフラッシュメモリなどの不揮発性の記憶媒体として機能する部分などを有する。記憶部45bは、例えば、1つの不揮発性の記憶媒体として機能する部分を有していてもよいし、2つ以上の不揮発性の記憶媒体として機能する部分を有していてもよい。
【0069】
演算部45aは、例えば、複数の機能な構成として、動作制御部51と、画像処理部59と、探索処理部61と、異常検出部63と、を備えている。記憶部45bは、例えば、レシピ情報53、パラメータ情報55、設計情報57およびプログラムPg1などを記憶している。演算部45aでは、例えば、動作制御部51、画像処理部59、探索処理部61、および異常検出部63は、記憶部45b内のプログラムPg1などをCPUが読み出して実行することで実現される機能的な処理部(機能処理部ともいう)であってよい。
【0070】
動作制御部51は、上述したモータ7,39、エアシリンダ19,27、およびカメラCMの動作を制御する。動作制御部51は、原点センサZ1,Z2,Z3、位置検出部43からの信号が与えられる。動作制御部51による各部の動作の制御は、例えば、記憶部45bに記憶されたレシピ情報53内のレシピに応じて行われる。例えば、レシピに基づく各部の動作の開始がオペレータによって指示された後に、動作制御部51は、レシピに基づいて各部に対して各種の動作指令を出力して、モータ7など各部を所定のタイミングで動作させる。
【0071】
レシピ情報53は、記憶部45bに予め記憶された各種のレシピを示す情報である。レシピは、基板Wを処理する各種の手順を規定している。オペレータは、指示部47を操作することで所望のレシピの実行を指示することができる。
【0072】
パラメータ情報55は、記憶部45bに予め記憶された、対象部品ごとの、要確認タイミング、および許容範囲などの情報である。対象部品は、基板処理装置1を構成する部品のうち、特定の処理の対象となる部品である。本第1実施形態では、特定の処理には、異常の検出が含まれる。要確認タイミングは、対象部品の動作状態を確認するためのタイミングである。要確認タイミングは、動作制御部51が動作指令を出力したタイミングと重なる場合があってもよいし、この動作指令に応じて対象部品が移動を完了したタイミングと重なる場合があってもよい。対象部品、要確認タイミング、および許容範囲などは、オペレータが指示部47を操作することで任意に設定され得る。オペレータは、どの部品を対象部品とするか、どのタイミングを要確認タイミングとするか、どの程度の対象部品の位置の誤差を許容する範囲(許容範囲)とするかなど、を指示部47から指示することができる。
【0073】
対象部品には、例えば、チャック9、ガード23、およびノズル33などが含まれ得る。要確認タイミングには、例えば、チャック駆動機構17がチャック動作指令に応じてチャック9を移動させてチャック9の移動が完了したタイミング、ノズル移動機構35がノズル動作指令に応じてノズル33を移動させてノズル33の移動が完了したタイミング、およびガード移動機構25がガード動作指令に応じてガード23を昇降させてガード23の移動が完了したタイミング、チャック9がチャック動作指令によって閉止位置に位置するように設定されたタイミング、ノズル33がノズル動作指令によって吐出位置に位置するように設定されたタイミング、およびガード23がガード動作指令によって処理位置に位置するように設定されたタイミング、などが含まれ得る。
【0074】
許容範囲は、要確認タイミングにおいて、対象部品が正常に動作した場合に対象部品が本来あるべき位置に対する許容度合いを示す。許容範囲は、例えば、対象部品が設計的に意図された位置および角度からのズレをどの程度許容するかを表す度合いである。許容範囲は、基板Wに対する処理を基準として、要確認タイミングにおいて、対象部品が設計的に意図された位置および角度からずれていても、基板Wに対する処理として許容され得る、対象部品のずれの範囲を示す。
【0075】
上述した動作制御部51は、位置検出部43からのパルス信号と、記憶部45b内のパラメータ情報55に基づいて、対象部品としてのノズル33が要確認タイミングにあれば、要確認タイミングにある対象部品としてのノズル33を示す情報と、要確認タイミングにある対象部品としてのノズル33が要確認タイミングにおいて本来あるべき位置(例えば、吐出位置など)を示す情報と、を探索処理部61に知らせる。動作制御部51は、原点センサZ1,Z2,Z3からの信号に基づいて、対象部品が原点位置に位置していれば、原点位置に位置している対象部品を特定する情報を探索処理部61に知らせる。ここで、対象部品が1つしか存在していなければ、動作制御部51は、原点位置に位置している対象部品を特定する情報を探索処理部61に知らせなくてもよい。動作制御部51は、エアシリンダ19,27およびモータ39への動作の制御に応じて、各対象部品について、対象部品が要確認タイミングにあれば、要確認タイミングにある対象部品の情報と、要確認タイミングにおいて対象部品が本来あるべき位置(例えば、チャック9の閉止位置、ノズル33の吐出位置、またはガード23の処理位置など)を示す情報と、を探索処理部61に知らせる。ここで、対象部品が1つしか存在していなければ、動作制御部51は、要確認タイミングにある対象部品の情報を探索処理部61に知らせなくてもよい。動作制御部51は、レシピに応じて各部に動作指令を出力したことを探索処理部61に知らせてもよい。
【0076】
設計情報57は、記憶部45bに記憶された、基板処理装置1を構成している部品に係る設計情報を含む。設計情報57は、基板処理装置1における処理対象としての基板Wに係る設計情報を含んでいてもよい。設計情報57は、例えば、3D-CAD(three-dimensional Computer Aided Design)のデータを含む。設計情報57は、処理に用いる処理液および各種の材料に関する物性情報などを含んでいてもよい。
【0077】
3D-CADデータは、例えば、座標軸が直交する3軸で表現され、三次元空間上に部品を配置した場合に、位置および角度の情報(位置情報とも総称される)で表現される。記憶部45bは、図示しないホストコンピュータから転送された少なくとも対象部品に係る設計情報を、予め記憶している。換言すれば、記憶部45bは、対象部品に関する三次元の設計情報を記憶している。図示しないホストコンピュータは、基板処理装置1の全ての部品および材料に関する3D-CADデータを三次元の設計情報として記憶していてもよい。ここで、記憶部45bに記憶された設計情報57が、基板処理装置1の全部品に関する設計情報ではなく、対象部品の設計情報に限定されていれば、記憶部45bの記憶容量が節約され得る。
【0078】
画像処理部59は、カメラCMによる撮影で得られた実画像を処理する。画像処理部59は、実画像に対して画像処理を施し、実画像で捉えられた物体の二次元形状に係る情報(実形状情報ともいう)を抽出する。画像処理部59は、例えば、実画像のうちの全ての領域もしくは予め設定された一部の領域で捉えられている全ての部品について、例えば、輪郭を抽出する処理を行うことで実形状情報を抽出する。ここでいう輪郭は、部品の外形の輪郭だけでなく、部品の外形の内側に位置する縁部分を含んでいてもよい。画像処理部59で抽出された実形状情報は、探索処理部61に与えられる。
【0079】
探索処理部61は、複数の参照形状情報と実形状情報とに基づいて、複数の仮想的なカメラの位置(仮想カメラ位置ともいう)のうち、参照形状情報と実形状情報との間における一致度が最も大きな仮想カメラ位置を探索する処理(探索処理ともいう)を行う。ここで、複数の参照形状情報は、記憶部45bに記憶された対象部品に関する三次元の設計情報に基づいてそれぞれ生成される情報であって、複数の仮想カメラ位置からの対象部品の三次元モデル(3Dモデルともいう)の撮影で取得され得る複数の仮想的な画像(仮想画像ともいう)のそれぞれにおける対象部品の3Dモデルの二次元形状に係る情報である。1つの参照形状情報は、1つの対象部品に関する三次元の設計情報に基づいて生成される情報であって、1つの仮想カメラ位置からの撮影で取得され得る仮想画像における対象部品の3Dモデルの二次元形状に係る情報である。対象部品の3Dモデルは、対象部品に関する三次元の設計情報に基づいて仮想的に生成される対象部品の三次元の模型である。参照形状情報と実形状情報との間における一致度は、例えば、参照形状情報と実形状情報との間における一致度を示す数値によって表される。一致度および一致度を示す数値については更に後述する。この二次元形状に係る情報は、例えば、図形であってよい。
【0080】
探索処理部61の探索処理によれば、カメラCMによる撮影で得られた実画像において、複数の仮想カメラ位置のうちの何れの仮想カメラ位置からの撮影で取得され得る仮想画像における対象部品の3Dモデルの二次元形状に対して一致度が最も大きくなる対象部品が捉えられているのかが探索され得る。この探索の結果に基づいて、探索処理部61では、対象部品の姿勢が認識され得る。
【0081】
探索処理部61は、少なくとも要確認タイミングとなった対象部品について、探索処理を行う。これにより、基板処理装置1において、要確認タイミングとなった対象部品の姿勢が認識され得る。探索処理部61は、実画像を用いて認識された対象部品の姿勢に係る情報(現実情報ともいう)を異常検出部63に出力する。換言すれば、現実情報は、例えば、探索処理部61によって検出された一致度が最も大きな仮想カメラ位置に基づく対象部品の姿勢に係る情報である。この現実情報は、実画像に基づくものであり、要確認タイミングにおいて、基板処理装置1で現実に対象部品が位置している状態を表す情報である。
【0082】
探索処理部61は、動作制御部51からの指示によって、要確認タイミングでないタイミングであっても対象部品についての探索処理を行う場合がある。例えば、原点センサZ1,Z2,Z3からの出力信号に基づいた動作制御部51からの指示に応答して、探索処理部61は、原点位置に位置している対象部品についての探索処理(原点探索処理ともいう)を行ってもよい。原点探索処理は、例えば、基板処理装置1が起動されて、基板Wに対する処理が開始される際に、各対象部品について一度だけ行われてよい。また、探索処理部61は、要確認タイミングを含む任意のタイミングにおいて、対象部品についての探索処理を行ってもよい。
【0083】
異常検出部63は、探索処理部61から出力された情報に応じて、対象部品の異常を検出する。具体的には、異常検出部63は、探索処理部61によって検出された実形状情報と参照形状情報との間における一致度が最も大きな仮想カメラ位置に基づく対象部品の姿勢に係る情報(現実情報)と、対象部品の状態が正常である場合の三次元の設計情報に基づく対象部品の姿勢に係る情報(正常情報ともいう)と、を比較することで、対象部品の異常を検出する。より具体的には、異常検出部63は、対象部品についての現実情報と正常情報との比較の結果、現実情報と正常情報とが一致しない場合には、対象部品についての異常を検出する。ここで、対象部品についての正常情報は、許容範囲内にある場合においての対象部品の姿勢に係る情報を含んでいてもよい。この場合には、現実情報が正常情報に一致するとは、正常情報の許容範囲内における何れかの対象部品の姿勢に係る情報と、現実情報における対象部品の姿勢に係る情報とが一致していることを含む。
【0084】
異常検出部63は、検出結果に応じて報知部49に報知動作を行わせる。具体的には、異常検出部63は、対象部品についての異常の検出に応答して、報知部49に報知動作を行わせる。報知動作は、例えば、異常の発生を知らせる動作であってよい。報知部49は、異常の発生とともに、例えば、異常が検出された対象部品を特定する情報を併せて報知してもよいし、異常が検出された対象部品の位置情報を併せて報知してもよい。ここで、異常が検出された対象部品を特定する情報としては、例えば、複数個のチャック9のそれぞれを特定する名称もしくは記号、1つ以上のガード23のそれぞれを特定する名称もしくは記号、ならびに1つ以上のノズル33のそれぞれを特定する名称もしくは記号などを示す文字列もしくは音声などが挙げられる。異常が検出された対象部品の位置情報を示す情報としては、チャック9についての閉止位置および開放位置、ガード23についての原点位置および処理位置、ならびにノズル33についての原点位置および吐出位置などを示す文字列もしくは音声などの各種情報が挙げられる。
【0085】
<3.探索処理に関する機能的な構成の具体例>
図4は、制御部45における探索処理に関する機能的な構成の具体的な一例を示すブロック図である。
図4では、制御部45における複数の機能的な構成のうち、記憶部45b、画像処理部59および探索処理部61について示されている。
【0086】
<3-1.画像処理部>
画像処理部59は、複数の機能処理部として、例えば、処理対象領域抽出部591と、輪郭抽出部592と、を有する。これらの処理対象領域抽出部591および輪郭抽出部592は、例えば、制御部45において、記憶部45bに格納されているプログラムPg1をCPUが読み出して実行することで実現される。
【0087】
処理対象領域抽出部591は、カメラCMによる撮影で得られた実画像を取得し、この実画像から処理を行う対象の領域(処理対象領域ともいう)に係る部分を画像(処理対象実画像ともいう)として抽出する。これにより、例えば、輪郭抽出部592における処理および探索処理部61における処理における演算の処理量が低減され得る。その結果、対象部品の姿勢の認識が効率良く行われ得る。
【0088】
図5から
図7は、それぞれ実画像から処理対象領域に係る部分を抽出する処理を説明するための図である。
図5には、カメラCMによる撮影で得られた実画像Ir1の具体的な一例が示されている。
図6には、実画像Ir1における処理対象領域R1の具体的な一例が示されている。
図7には、実画像Ir1から抽出された処理対象実画像Ir2の具体的な一例が示されている。
【0089】
処理対象領域抽出部591は、例えば、
図5で示された実画像Ir1を取得した場合に、
図6で示されるように実画像Ir1のうちの太い二点鎖線で囲まれた処理対象領域R1に係る部分を抽出することで、
図7で示されるような処理対象実画像Ir2を得る。
【0090】
処理対象領域は、例えば、対象部品ごとに、実画像上において要確認タイミングに対象部品が存在し得る領域を包含するように、予め設定されていてよい。例えば、処理対象領域は、事前にカメラCMによる撮影で得られた実画像を参照することで設定されてもよいし、基板処理装置1を構成している部品の設計情報とカメラCMの撮影方向および画角とに基づいて設定されてもよい。
【0091】
輪郭抽出部592は、例えば、処理対象領域抽出部591で得られた処理対象実画像で捉えられている全ての部品について、輪郭を抽出する処理を行うことによって実画像で捉えられた物体の二次元形状に係る情報(実形状情報)を抽出する。これにより、画像処理部59は、実画像で捉えられた物体の二次元形状に係る実形状情報を取得することができる。画像処理部59で取得された実形状情報は、探索処理部61に与えられる。
【0092】
ここでは、処理対象領域抽出部591で得られた処理対象実画像は、対象部品を捉えた実画像とみなされてよい。輪郭は、上述したように、部品の外形の輪郭だけでなく、部品の外形の内側に位置する縁部分も含んでいてもよい。輪郭を抽出する処理は、例えば、Canny法などのエッジを検出する手法などを用いて実現され得る。ここでは、さらに検出されたエッジにモルフォロジー変換などの線を膨張させる処理を施すことで、処理対象実画像で捉えられている全ての部品について輪郭を抽出してもよい。実形状情報は、例えば、実画像で捉えられた物体の輪郭を示すエッジ画像であってよい。エッジ画像としては、例えば、物体の輪郭と、それ以外の部分と、が区別可能な二値画像などが採用される。
図8は、輪郭抽出部592において取得された実形状情報としてのエッジ画像Ir3の具体的な一例を示す図である。
図8で例示されたエッジ画像Ir3は、
図7で例示された処理対象実画像Ir2で捉えられている全ての部品について輪郭を抽出する処理を行うことで得られたエッジ画像の一例である。
図8で例示されたエッジ画像Ir3は、輪郭抽出部592で抽出された部品の輪郭が白色で示され、それ以外の部分が黒色で示された二値画像である。
【0093】
<3-2.探索処理部>
<3-2-1.探索処理の基本的な考え方の一例>
図9から
図16は、それぞれ探索処理の基本的な考え方の一例を説明するための図である。
【0094】
例えば、
図9で示されるように、対象部品(例えば、チャック9)に関する三次元の設計情報に基づいて仮想的に生成される対象部品の三次元の模型である対象部品の3Dモデル3dmを中心として、複数の仮想的なカメラの位置(仮想カメラ位置)P1を適宜設定しながら、各仮想カメラ位置P1からの対象部品の3Dモデル3dmの撮影で取得され得る仮想的な画像(仮想画像)における対象部品の3Dモデル3dmの二次元形状に係る情報(参照形状情報)を生成する。つまり、各仮想カメラ位置P1に対して参照形状情報を生成する。この参照形状情報としては、例えば、
図10で示されるように、各仮想カメラ位置P1からの対象部品の3Dモデル3dmの撮影で取得され得る仮想画像における対象部品の3Dモデル3dmの二次元形状としての輪郭を示す画像(リファレンス画像ともいう)Iv1が採用され得る。
図10では、対象部品の3Dモデル3dmの輪郭が便宜的に太い二点鎖線で描かれたリファレンス画像Iv1の一例が示されている。
図10で例示されたリファレンス画像Iv1は、対象部品の3Dモデル3dmの二次元形状としての輪郭が黒色で示され、それ以外の部分が白色で示された二値画像である。
【0095】
そして、例えば、複数の仮想カメラ位置P1について得られた複数のリファレンス画像Iv1のそれぞれにおける対象部品の3Dモデル3dmの二次元形状と、
図11で示されるような実画像で捉えられた物体の二次元形状に係る実形状情報としてのエッジ画像Ir3と、の間で、一致度を示す数値を算出する。ここでは、例えば、実形状情報としてのエッジ画像Ir3に対して、参照形状情報としてのリファレンス画像Iv1を相対的に回転移動および平行移動をさせて、実形状情報としてのエッジ画像Ir3に対する参照形状情報としてのリファレンス画像Iv1の一致度が最大となる場合におけるこの一致度を示す数値が、実形状情報としてのエッジ画像Ir3と参照形状情報としてのリファレンス画像Iv1との間における一致度を示す数値として算出され得る。換言すれば、各仮想カメラ位置P1について、実形状情報としてのエッジ画像Ir3に対する参照形状情報としてのリファレンス画像Iv1の一致度が最大となる場合におけるこの一致度を示す数値が、実形状情報としてのエッジ画像Ir3と参照形状情報としてのリファレンス画像Iv1との間における一致度を示す数値として算出され得る。
【0096】
さらに、例えば、
図12で示されるように、複数の仮想カメラ位置P1のうち、実形状情報としてのエッジ画像Ir3と参照形状情報としてのリファレンス画像Iv1との間における一致度が最も大きくなる仮想カメラ位置P1を検出する。これにより、対象部品について、カメラCMによる撮影で得られた実画像において、複数の仮想カメラ位置のうちの何れの仮想カメラ位置からの撮影で取得され得る仮想画像における対象部品の3Dモデル3dmの二次元形状に対して一致度が最も大きな対象部品が捉えられているのかが探索され得る。
【0097】
ところで、
図13で示されるように、対象部品の3Dモデル3dmの中心を基準点Poとしての原点とした右手系のxyz座標を設定した場合を想定する。3Dモデル3dmの中心には、例えば、3Dモデル3dmの重心が適用される。この場合には、3Dモデル3dmを中心とした複数の仮想カメラ位置P1は、x軸を中心とした回転方向における角度(緯度ともいう)αと、z軸を中心とした回転方向における角度(経度ともいう)βと、原点からの距離Dと、によって規定され得る。また、仮想カメラ位置P1から対象部品の3Dモデル3dmを撮影する仮想的なカメラの姿勢は、基準点Poと仮想カメラ位置P1とを通る細い一点鎖線で描かれた直線Ln1を中心とした回転方向における角度(ロール角ともいう)γによって規定され得る。
【0098】
ここでは、仮想カメラ位置P1を規定する緯度αおよび経度βを変化させると、仮想カメラ位置P1から対象部品の3Dモデル3dmを撮影する方向が変化する。このため、仮想カメラ位置P1を規定する緯度αおよび経度βを変化させると、例えば、
図14で示されるように、参照形状情報としてのリファレンス画像Iv1における太い二点鎖線で描かれた対象部品の3Dモデル3dmの輪郭の二次元形状は、形が変化し得る。
【0099】
また、仮想カメラ位置P1を規定する距離Dを変化させても、仮想カメラ位置P1から対象部品の3Dモデル3dmを撮影する方向は変化しない。このため、仮に仮想カメラ位置P1を規定する距離Dを変化させると、例えば、
図15で示されるように、参照形状情報としてのリファレンス画像Iv1における太い二点鎖線で描かれた対象部品の3Dモデル3dmの輪郭の二次元形状は、形が変化せずに大きさが変化し得る。
【0100】
また、仮想カメラ位置P1における仮想的なカメラの姿勢を規定するロール角γを変化させると、例えば、
図16で示されるように、参照形状情報としてのリファレンス画像Iv1における太い二点鎖線で描かれた対象部品の3Dモデル3dmの輪郭の二次元形状は、形も大きさも変化せずに向きが変化し得る。
【0101】
探索処理部61における探索処理では、探索処理を効率的に進めるために、1次探索処理を行った後、この1次探索処理の結果を用いた2次探索処理を行う。1次探索処理は、緯度αおよび経度βをある程度粗く異ならせることで、限定された数の仮想カメラ位置P1について、参照形状情報と実形状情報との間における一致度を示す数値を算出して、参照形状情報と実形状情報との間における一致度が最も大きくなる仮想カメラ位置P1を探索する処理である。2次探索処理は、1次探索処理で探索された仮想カメラ位置P1に基づいて、参照形状情報と実形状情報との間における一致度がより大きくなる仮想カメラ位置P1をさらに細かく探索する処理である。1次探索処理および2次探索処理において参照形状情報と実形状情報との間における一致度を示す数値を算出する際には、例えば、この一致度がより大きくなるロール角γも求め、このロール角γも考慮して一致度を示す数値を算出する。これにより、参照形状情報と実形状情報との間における一致度が最も大きくなる仮想カメラ位置P1についての緯度α、経度β、距離Dおよびロール角γが探索処理の結果として取得され得る。その結果、実画像で捉えられた対象部品の姿勢が認識され得る。ここでは、例えば、対象部品の姿勢が、緯度α、経度β、距離Dおよびロール角γの形式で認識されてよい。
【0102】
<3-2-2.探索処理部の機能的な構成>
探索処理部61は、複数の機能処理部として、例えば、第1探索処理部611と、第2探索処理部612と、を有する。これらの第1探索処理部611および第2探索処理部612は、例えば、制御部45において、記憶部45bに格納されているプログラムPg1をCPUが読み出して実行することで実現される。第1探索処理部611は、1次探索処理に関する処理を行う部分であり、第2探索処理部612は、2次探索処理に関する処理を行う。
【0103】
<3-2-2-1.第1探索処理部>
第1探索処理部611は、複数の機能処理部として、例えば、密集度判定部6111、第1形状情報取得部6112、第1算出部6113および第1検出部6114を含む。これらの密集度判定部6111、第1形状情報取得部6112、第1算出部6113および第1検出部6114は、例えば、制御部45において、記憶部45bに格納されているプログラムPg1をCPUが読み出して実行することで実現される。第1探索処理部611では、例えば、第1形状情報取得部6112、第1算出部6113および第1検出部6114によって1次探索処理が実現され得る。
【0104】
<<密集度判定部6111>>
密集度判定部6111は、例えば、輪郭抽出部592で取得された実形状情報としてのエッジ画像について、部品の輪郭の密集度が低い領域(低密集度領域ともいう)を判定する。密集度判定部6111では、例えば、エッジ画像において、所定の大きさの領域(単位判定領域ともいう)ごとに、部品の輪郭が占める割合を、部品の輪郭の密集度として算出し、この密集度が所定値以下である単位判定領域を、低密集度領域として判定することができる。単位判定領域における所定の大きさは、例えば、上述した参照形状情報としてのリファレンス画像の大きさに応じて設定され得る。所定値は、例えば、ゼロなどの数値に設定され得る。
【0105】
例えば、所定値にゼロが適用される場合には、エッジ画像のうち、部品の輪郭が全く含まれていない単位判定領域が、低密集度領域として判定される。密集度判定部6111における判定結果は、第1算出部6113および第2探索処理部612に与えられる。ここでは、低密集度領域には、対象部品の輪郭が含まれていないものと推定される。このため、例えば、後述する第1算出部6113および第2算出部6124において、実形状情報としてのエッジ画像のうちの低密集度領域については、実形状情報と参照形状情報との間における一致度を示す数値の算出を行うための計算の対象外とすることで、探索処理に要する計算量が低減され得る。
【0106】
<<第1形状情報取得部6112>>
第1形状情報取得部6112は、記憶部45bに記憶された対象部品に関する三次元の設計情報に基づいて、複数の仮想カメラ位置(第1仮想カメラ位置ともいう)のそれぞれから対象部品の3Dモデルを撮影する場合を想定して、複数の第1仮想カメラ位置のそれぞれについて生成した、参照形状情報を取得する。複数の第1仮想カメラ位置は、対象部品の3Dモデルの基準点を中心としてこの対象部品の3Dモデルを囲む仮想的な球面に沿って位置する複数の仮想面を含む面の集合体(面集合体ともいう)を仮想的に設定した場合に、複数の仮想面のそれぞれに対して仮想的に設定される複数の仮想カメラ位置である。ここで、参照形状情報は、対象部品に関する三次元の設計情報に基づいて生成される情報であって、仮想カメラ位置からの撮影で取得され得る仮想画像における対象部品の3Dモデルの二次元形状に係る情報である。対象部品の3Dモデルの基準点は、例えば、対象部品の3Dモデルの重心点などの中心点に設定されてよい。ここでは、面集合体を構成する複数の仮想面の数をM1個(M1は2以上の自然数)に設定することで、複数の第1仮想カメラ位置は、M1個の第1仮想カメラ位置に限定される。各仮想面では、例えば、仮想面の所定の位置に第1仮想カメラ位置が仮想的に設定される。所定の位置には、例えば、仮想面の中心の位置が適用される。仮想面の中心には、例えば、仮想面の重心が適用される。
【0107】
本第1実施形態では、面集合体を構成する複数の仮想面のそれぞれには、例えば、三角形の面が適用され、面集合体には、多数の三角形の面で構成された多面体が適用される。換言すれば、面集合体には、多数の三角形で構成された球面状の多面体が適用される。これにより、複数の仮想面を含む面集合体の設定を容易に行うことができる。ここで、三角形には、正三角形が適用され得る。仮想面が三角形の面であれば、仮想面の中心は、例えば、三角形の重心であってもよいし、内心であってもよい。
【0108】
第1形状情報取得部6112は、例えば、記憶部45bに記憶された対象部品に関する三次元の設計情報に基づいて、複数の第1仮想カメラ位置を設定するとともに、複数の第1仮想カメラ位置のそれぞれについて参照形状情報を生成することで、複数の第1仮想カメラ位置のそれぞれについて生成された参照形状情報を取得することができる。
【0109】
ここでは、例えば、
図13で示されたように、対象部品に関する三次元の設計情報で規定される対象部品の3Dモデル3dmの基準点Poを原点とした右手系のxyz座標を設定することで、複数の仮想面の位置および姿勢などが規定され得る。さらに、x軸を中心とした回転方向における角度(緯度)αと、z軸を中心とした回転方向における角度(経度)βと、原点からの距離Dと、によって、複数の第1仮想カメラ位置のそれぞれ位置が規定され得る。
【0110】
図17は、複数の第1仮想カメラ位置P11を設定する態様の一例を示す図である。
図18は、仮想面St1における第1仮想カメラ位置P11の設定態様の一例を示す図である。
図17では、図面の複雑化を避ける目的で、右手系のxyz座標のうち基準点Poとしての原点のみが示されており且つxyzの3軸の記載が省略されており、角度(緯度)αおよび角度(経度)βの記載も省略されている。また、
図17では、第1仮想カメラ位置P11から対象部品の3Dモデル3dmを撮影する仮想的なカメラの姿勢を規定する、基準点Poとしての原点と第1仮想カメラ位置P11とを通る直線を中心とした回転方向における角度(ロール角)γの記載も省略されている。また、
図17では、多面体のうちの手前側の部分は輪郭が実線で描かれており、多面体のうちの奥側の部分は輪郭が細い破線で描かれている。また、
図17では、便宜的に対象部品の3Dモデル3dmの一例として六角形の上下面を有する部品が示されており、この部品の輪郭が太い破線で描かれている。
【0111】
第1形状情報取得部6112では、例えば、
図17で示されるように、対象部品の3Dモデル3dmの基準点Poを中心として、この対象部品の3Dモデル3dmを囲む仮想的な球面に沿って位置する複数の三角形の仮想面St1を含む面集合体As1が仮想的に設定される。そして、複数の三角形の仮想面St1のそれぞれに対して複数の仮想カメラ位置P1としての複数の第1仮想カメラ位置P11が仮想的に設定される。
【0112】
図17では、面集合体As1が、200個程度の三角形の仮想面St1によって構成された球面状の多面体の一例が示されている。
図17では、便宜的に複数の仮想面St1のうちの3つの三角形の仮想面St1に対して符合“St1”が付されている。そして、この3つの三角形の仮想面St1である仮想面St1a、仮想面St1bおよび仮想面St1cのそれぞれには便宜的に梨地を用いたハッチングが付されている。
図17では、複数の三角形の仮想面St1のうちの3つの仮想面St1に対してそれぞれ設定される3つの第1仮想カメラ位置P11が黒塗りの丸印で例示されている。より具体的には、仮想面St1aに対して設定される第1仮想カメラ位置P11に符合“P11a”が付されており、仮想面St1bに対して設定される第1仮想カメラ位置P11に符合“P11b”が付されており、仮想面St1cに対して設定される第1仮想カメラ位置P11に符合“P11c”が付されている。ここでは、例えば、
図18で示されるように、1つの三角形の仮想面St1の所定位置としての1つの三角形の仮想面St1の中心に、1つの第1仮想カメラ位置P11が設定される。換言すれば、例えば、三角形の各仮想面St1の所定位置としての三角形の各仮想面St1の中心に、第1仮想カメラ位置P11が設定される。
【0113】
また、第1形状情報取得部6112では、例えば、
図17で示された複数の第1仮想カメラ位置P11のそれぞれについて、第1仮想カメラ位置P11からの撮影で取得され得る仮想画像における対象部品の3Dモデル3dmの二次元形状に係る参照形状情報が生成される。このとき、第1仮想カメラ位置P11から対象部品の3Dモデル3dmを撮影する仮想的なカメラによる撮影方向は、第1仮想カメラ位置P11から対象部品の3Dモデル3dmの基準点Poに向かう方向に設定される。また、第1仮想カメラ位置P11から対象部品の3Dモデル3dmを撮影する仮想的なカメラの姿勢を規定するロール角γは、例えば、ゼロ(0)度に設定される。
【0114】
図17の下部には、3つの第1仮想カメラ位置P11のそれぞれについて生成される参照形状情報として、各第1仮想カメラ位置P11からの対象部品の3Dモデル3dmの撮影で取得され得る仮想画像における対象部品の3Dモデル3dmの二次元形状としての輪郭を示す画像(リファレンス画像)Iv1が例示されている。
【0115】
ところで、対象部品の移動、あるいは基板処理装置1において対象部品が取り付けられる位置の誤差などによって、カメラCMと対象部品との距離が変化する場合が想定される。この場合には、カメラCMによる撮影で得られる実画像において、対象部品の大きさが変化し得る。これに対して、上述したように、仮想カメラ位置P1を規定する距離Dを変化させると、参照形状情報としてのリファレンス画像Iv1における対象部品の3Dモデル3dmの輪郭の二次元形状の大きさが変化する。このため、カメラCMと対象部品との距離が変化する場合を想定すれば、第1形状情報取得部6112は、距離Dを異ならせた複数の第1仮想カメラ位置P11を仮想的に設定して、各第1仮想カメラ位置P11について生成した参照形状情報を得る必要がある。
【0116】
そこで、第1形状情報取得部6112は、例えば、記憶部45bに記憶された対象部品に関する三次元の設計情報に基づいて、M1×T1個(M1およびT1の何れも2以上の自然数)の第1仮想カメラ位置P11のそれぞれから対象部品の3Dモデルを撮影する場合を想定して、M1×T1個の第1仮想カメラ位置P11のそれぞれについて生成した、参照形状情報を取得する。M1×T1個の第1仮想カメラ位置P11は、対象部品の3Dモデルの基準点からの距離が相互に異なるT1個の面集合体を仮想的に設定し、且つこのT1個の面集合体のそれぞれにおけるM1個の仮想面のそれぞれに対して仮想的に設定される複数の仮想カメラ位置である。ここで、参照形状情報は、対象部品に関する三次元の設計情報に基づいて生成される情報であって、第1仮想カメラ位置P11からの撮影で取得され得る仮想画像における対象部品の3Dモデルの二次元形状に係る情報である。M1個は、例えば、100個から300個程度の範囲で適宜設定される。T1個は、例えば、3個から30個程度の範囲で適宜設定される。
【0117】
図19は、対象部品の3Dモデル3dmの基準点Poからの距離が相互に異なるT1個の面集合体を仮想的に設定する態様の一例を説明するための図である。
図19では、対象部品に関する三次元の設計情報に基づいて仮想的に生成される対象部品の3Dモデル3dmの基準点Poからの距離が相互に異なり、且つ対象部品の3Dモデル3dmの基準点Poを中心としてこの対象部品の3Dモデル3dmを囲む、T1個の仮想的な球面Sv1,Sv2,・・・,SvT1の外縁が、細い二点鎖線で描かれている。
【0118】
第1形状情報取得部6112では、例えば、
図19で示されるT1個の仮想的な球面Sv1,Sv2,・・・,SvT1のそれぞれに沿って、
図17で示されたような面集合体As1を仮想的に設定する。これにより、T1個の面集合体As1が仮想的に設定される。T1個の面集合体As1は、対象部品の3Dモデル3dmの基準点Poを中心として相互に拡大および縮小された相似の関係の形状を有する。換言すれば、T1個の面集合体As1は、相互に大きさが異なるものの、相互に同一の形状を有しており且つ3Dモデル3dmに対して同一の姿勢を有する。また、第1形状情報取得部6112では、T1個の面集合体As1のそれぞれにおいて、M1個の仮想面St1のそれぞれに対して第1仮想カメラ位置P11を仮想的に設定する。これにより、T1個の面集合体As1のそれぞれにおいて、M1個の第1仮想カメラ位置P11が仮想的に設定される。換言すれば、M1×T1個の第1仮想カメラ位置P11が仮想的に設定される。そして、第1形状情報取得部6112では、M1×T1個の第1仮想カメラ位置P11のそれぞれから対象部品の3Dモデル3dmを撮影する場合を想定して、M1×T1個の第1仮想カメラ位置P11のそれぞれについて、参照形状情報を生成する。
【0119】
<<第1算出部6113>>
第1算出部6113は、複数の第1仮想カメラ位置P11のそれぞれについて、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)と、参照形状情報との間における一致度を示す数値を算出する。
【0120】
ここで、上述したように、例えば、第1形状情報取得部6112によってM1×T1個の第1仮想カメラ位置P11のそれぞれについて生成した参照形状情報が取得される場合を想定すれば、第1算出部6113は、上述したM1×T1個の第1仮想カメラ位置P11のそれぞれについて、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)と、参照形状情報との間における一致度を示す数値を算出する。
【0121】
ここで、第1算出部6113における、1つの第1仮想カメラ位置P11についての実形状情報と参照形状情報との間における一致度を示す数値の計算処理について、1つの具体例を挙げて説明する。
【0122】
図20から
図24は、1つの仮想カメラ位置についての実形状情報と参照形状情報との間における一致度を示す数値の計算処理の一具体例を説明するための図である。
【0123】
図20には、1つの第1仮想カメラ位置P11についての参照形状情報としてのリファレンス画像Iv1の一例が示されている。第1算出部6113では、例えば、第1形状情報取得部6112で取得された参照形状情報としてのリファレンス画像Iv1と、画像処理部59で取得された実形状情報としてのエッジ画像Ir3(
図8)との間で、輪郭の二次元形状の一致度を示す数値を算出する。
【0124】
第1算出部6113では、各第1仮想カメラ位置P11について、実形状情報としてのエッジ画像と参照形状情報としてのリファレンス画像との間で、一致度を示す数値を算出する際には、例えば、[処理1a]エッジ画像とリファレンス画像との間におけるロール角γのずれに対応する輪郭の二次元形状の向きのずれ量の検出を行う処理、[処理1b]ロール角γのずれに応じたエッジ画像の回転を行う処理、ならびに[処理1c]回転後のエッジ画像を対象としたリファレンス画像との一致度が最大となる領域の位置の検出を行う処理、をこの記載の順に行う。
【0125】
上記処理1aでは、例えば、実形状情報としてのエッジ画像と、参照形状情報としてのリファレンス画像との間で、回転不変位相限定相関(RIPOC)法を用いて、輪郭の二次元形状の向きのずれ量を検出する。この輪郭の二次元形状の向きのずれ量は、画像上における輪郭の回転方向のずれ量である。ここでは、例えば、
図21で示されるように、画像処理部59から入力された実形状情報としてのエッジ画像Ir3を、複数の比較対象領域Re1に分けた上で、比較対象領域Re1ごとに、RIPOC法によって、リファレンス画像との間で、輪郭の一致度が最も大きくなり得る回転方向におけるずれ量γ1を算出する。このずれ量γ1は、参照形状情報としてのリファレンス画像と実形状情報としてのエッジ画像との間における一致度がより大きくなり得るロール角γに相当する。
【0126】
各比較対象領域Re1のサイズは、例えば、リファレンス画像のサイズを基準として、縦方向および横方向のそれぞれにおいて1倍以上で且つ数倍以下(例えば、3倍)に設定される。また、複数の比較対象領域Re1は、隣り合う比較対象領域Re1において相互に一部が重複するように設定される。
図21の例では、エッジ画像Ir3において、6つの比較対象領域Re1が設定されている。
図21では、1つ目の比較対象領域Re1である第1比較対象領域Re11の外縁が太い一点鎖線で描かれている。2つ目の比較対象領域Re1である第2比較対象領域Re12の外縁が細い一点鎖線で描かれている。3つ目の比較対象領域Re1である第3比較対象領域Re13の外縁が太い破線で描かれている。4つ目の比較対象領域Re1である第4比較対象領域Re14の外縁が細い破線で描かれている。5つ目の比較対象領域Re1である第5比較対象領域Re15の外縁が太い二点鎖線で描かれている。6つ目の比較対象領域Re1である第6比較対象領域Re16の外縁が細い二点鎖線で描かれている。ここでは、複数の比較対象領域Re1のうち、リファレンス画像との間で、輪郭の一致度が最も大きくなり得る1つの比較対象領域Re1と、この1つの比較対象領域Re1とリファレンス画像との間で輪郭の一致度が最も大きくなり得る回転方向におけるずれ量γ1と、が検出される。
【0127】
上記処理1bでは、例えば、実形状情報としてのエッジ画像を、上記処理1aで検出されたずれ量γ1を補正するように回転させる。これにより、回転後のエッジ画像が生成され、実形状情報としてのエッジ画像における輪郭の二次元形状と、参照形状情報としてのリファレンス画像における輪郭の二次元形状との間で、向きを整合させる。ここでは、例えば、上記処理1aで検出された比較対象領域Re1のエッジ画像を、上記処理1aで検出されたずれ量γ1を補正するように回転させる。これにより、回転後のエッジ画像が生成され、実形状情報を構成する比較対象領域Re1における輪郭の二次元形状と、参照形状情報としてのリファレンス画像における輪郭の二次元形状との間で、向きの一致を図る。
図22および
図23には、例えば、
図22で示される4つ目の比較対象領域Re1である第4比較対象領域Re14のエッジ画像を、ずれ量γ1だけ回転させて、
図23で示される回転後のエッジ画像Ir4を生成する様子が示されている。
図23には、回転前の第4比較対象領域Re14のエッジ画像の外縁が細い二点鎖線で模式的に示されている。
【0128】
上記処理1cでは、例えば、上記処理1bで生成した実形状情報に係る回転後のエッジ画像を対象として、参照形状情報としてのリファレンス画像を用いたテンプレートマッチングを行う。ここでは、例えば、回転後のエッジ画像内でリファレンス画像を走査し、回転後のエッジ画像内の各部分領域とリファレンス画像との一致度(類似度)が最大となる領域の位置を検出する。これにより、実形状情報としてのエッジ画像において、リファレンス画像における対象部品の3Dモデル3dmの輪郭の二次元形状と一致度が最大となる領域の位置(マッチング候補位置ともいう)が検出され得る。ここで言う一致度(類似度)は、特に限定されないものの、例えば、画素値の差分の二乗和(Sum of Squared Difference)、画素値の差分の絶対値の和(Sum of Absolute Difference)、正規化相互相関、または零平均正規化相互相関などの公知の一致度(類似度)を示すスコア(マッチングスコアともいう)を用いて表現されてよい。また、ここで、上記のテンプレートマッチングを行う際には、回転後のエッジ画像内の部分領域とリファレンス画像との一致度(類似度)が最大となる場合における一致度(類似度)を示す数値が、第1仮想カメラ位置P11についての、実形状情報としてのエッジ画像と参照形状情報としてのリファレンス画像との間における一致度を示す数値として算出される。ここでは、一致度を示す数値は、例えば、一致度を示すマッチングスコアであってよい。例えば、実形状情報としてのエッジ画像と参照形状情報としてのリファレンス画像との間における一致度が大きいほど、一致度を示すマッチングスコアが大きくなってもよいし、一致度を示すマッチングスコアが小さくなってもよい。以下では、特に条件が記載されていない場合には、実形状情報としてのエッジ画像と参照形状情報としてのリファレンス画像との間における一致度が大きいほど一致度を示すマッチングスコアが大きくなるものとする。
図24には、エッジ画像Ir4におけるマッチング候補位置Pm0の一例の外縁が細い二点鎖線で描かれている。
【0129】
<<第1検出部6114>>
第1検出部6114は、第1算出部6113による算出結果に基づいて、複数の第1仮想カメラ位置P11のうち、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)と参照形状情報との間における一致度が最も大きな第1仮想カメラ位置P11である高一致度仮想カメラ位置を検出する。ここでは、例えば、複数の第1仮想カメラ位置P11のうち、第1算出部6113によって実画像で捉えられた物体の二次元形状に係る情報(実形状情報)と参照形状情報との間について算出されたマッチングスコアが最も大きな第1仮想カメラ位置P11が高一致度仮想カメラ位置として検出されてよい。
【0130】
ここで、上述したように、例えば、第1形状情報取得部6112によってM1×T1個の第1仮想カメラ位置P11のそれぞれについて生成した参照形状情報が取得される場合を想定すれば、第1検出部6114は、第1算出部6113による算出結果に基づいて、M1×T1個の第1仮想カメラ位置P11のうち、実形状情報と参照形状情報との間における一致度が最も大きな仮想カメラ位置である高一致度仮想カメラ位置を検出する。ここでは、例えば、M1×T1個の第1仮想カメラ位置P11のうち、第1算出部6113によって実画像で捉えられた物体の二次元形状に係る情報(実形状情報)と参照形状情報との間について算出されたマッチングスコアが最も大きな第1仮想カメラ位置P11が高一致度仮想カメラ位置として検出されてよい。
【0131】
また、第1検出部6114は、例えば、高一致度仮想カメラ位置を検出する際に、第1算出部6113によって高一致度仮想カメラ位置について検出されたマッチング候補位置を対象部品候補位置として併せて検出する。
【0132】
<3-2-2-2.第2探索処理部>
第2探索処理部612は、複数の機能処理部として、例えば、照合対象領域設定部6121、分割面生成部6122、第2形状情報生成部6123、第2算出部6124および第2検出部6125を含む。これらの照合対象領域設定部6121、分割面生成部6122、第2形状情報生成部6123、第2算出部6124および第2検出部6125は、例えば、制御部45において、記憶部45bに格納されているプログラムPg1をCPUが読み出して実行することで実現される。第2探索処理部612では、例えば、分割面生成部6122、第2形状情報生成部6123、第2算出部6124および第2検出部6125によって2次探索処理が実現され得る。
【0133】
<<照合対象領域設定部6121>>
照合対象領域設定部6121は、第1検出部6114によって検出された対象部品候補位置に基づいて、輪郭抽出部592で取得された実形状情報としてのエッジ画像のうちの第2算出部6124における処理に用いる領域(照合対象領域ともいう)を設定する。これにより、第2算出部6124の処理における計算量が低減され、第2算出部6124の処理の効率が向上し得る。
【0134】
図25は、輪郭抽出部592で取得された実形状情報としてのエッジ画像Ir3に照合対象領域Re2を設定する一具体例を示す図である。
図25で示されるように、エッジ画像Ir3に対して、第1検出部6114によって検出された対象部品候補位置Pm1を包含し、且つ対象部品候補位置Pm1よりも大きなサイズの領域を、照合対象領域Re2として設定する。
図25では、対象部品候補位置Pm1の外縁が細い二点鎖線で描かれており、照合対象領域Re2の外縁が太い破線で描かれている。照合対象領域Re2のサイズは、例えば、対象部品候補位置Pm1のサイズを基準として、縦方向および横方向のそれぞれにおいて1倍よりも大きく且つ数倍以下(例えば、2倍)に設定される。
【0135】
<<分割面生成部6122>>
分割面生成部6122は、面集合体As1を構成しており且つ対象部品の3Dモデル3dmの基準点Poを中心としてこの対象部品の3Dモデル3dmを囲む仮想的な球面に沿って位置する複数の仮想面St1のうち、第1検出部6114で検出された高一致度仮想カメラ位置が仮想的に設定された仮想面である高一致度仮想面を分割することで、複数の分割後の仮想面(仮想分割面ともいう)を生成する。
【0136】
図26は、高一致度仮想面St1mを複数の仮想分割面St2に分割する一具体例を模式的に示す図である。
図26には、
図17で示されたように、面集合体As1を構成している複数の仮想面St1のそれぞれが三角形の面である場合についての一具体例が示されている。
図26では、高一致度仮想カメラ位置P11mが白抜きの丸印で示されている。
図26で示されるように、分割面生成部6122は、例えば、高一致度仮想面St1mにおける3つの頂点と、高一致度仮想カメラ位置P11mとをそれぞれ結ぶ3つの線分によって、高一致度仮想面St1mを、複数の仮想分割面St2としての3つの仮想分割面St2に分割する。これにより、仮想面の分割を容易に行うことができる。
【0137】
ここで、上述したように、例えば、第1形状情報取得部6112によってM1×T1個の第1仮想カメラ位置P11のそれぞれについて生成した参照形状情報が取得される場合を想定すれば、分割面生成部6122は、T1個の面集合体As1のそれぞれにおけるM1個の仮想面St1のうち、高一致度仮想面St1mを含み且つ対象部品の3Dモデル3dmの基準点Poからの距離が相互に異なるT2個(T2は2以上の自然数)の仮想面St1、のそれぞれを同一のルールで分割する。これにより、分割面生成部6122は、T2個の仮想面St1のそれぞれについてM2個(M2は2以上の自然数)の仮想分割面St2を生成することで、M2×T2個の仮想分割面St2を生成する。ここでは、T2個の仮想面St1のそれぞれは、対象部品の3Dモデル3dmの基準点Poよりも高一致度仮想カメラ位置P11mの側において基準点Poと高一致度仮想カメラ位置P11mとを通る直線と交差しているとともに、基準点Poからの距離が相互に異なっている複数の仮想面St1である。T2個は、例えば、T1個と同一である。T2個は、例えば、T1個未満であってもよい。
【0138】
図27は、T2個の仮想面St1の一例を模式的に示すイメージ図である。
図27では、対象部品の3Dモデル3dmの基準点Poから高一致度仮想カメラ位置P11mに向かう方向Dr11が細線で描かれた矢印で示されており、基準点Poと高一致度仮想カメラ位置P11mとを通る直線Ln11が細い二点鎖線で描かれている。
図27では、基準点Poを通り且つ上記のT2個の仮想面St1のそれぞれの外縁を通る線が細い破線で描かれている。
図27では、便宜的にT2個の仮想面St1のうち、3個の仮想面St1が描かれており、その他の仮想面St1の図示が省略されている。
図27で示されるように、上記のT2個の仮想面St1のそれぞれは、直線Ln11のうちの基準点Poよりも高一致度仮想カメラ位置P11mの側に位置している部分と交差している。
【0139】
ここでは、T2個の仮想面St1は、対象部品の3Dモデル3dmの基準点Poを中心として、放射状の方向において相互に拡大および縮小された相似の関係の形状を有する。対象部品の3Dモデル3dmの基準点Poから見た場合、T2個の仮想面St1のそれぞれは、基準点Poを中心とした放射状の方向において相互に拡大および縮小された相似の関係の形状を有する線で分割されることで、M2×T2個の仮想分割面St2が生成される。これにより、T2個の仮想面St1においては、M2個の仮想分割面St2のそれぞれについて、対象部品の3Dモデル3dmの基準点Poを中心として放射状の方向において相互に拡大および縮小された相似の関係の形状を有するT2個の仮想分割面St2が存在する状態となる。
【0140】
上述したT2個の仮想面St1の分割に係る同一のルールは、対象部品の3Dモデル3dmの基準点Poから見て、T2個の仮想面St1を同じ形で分割するルールであってよい。換言すれば、T2個の仮想面St1の分割に係る同一のルールは、対象部品の3Dモデル3dmの基準点Poから見た場合に、T2個の仮想面St1のそれぞれを、基準点Poを中心とした放射状の方向において相互に拡大および縮小された相似の関係の形状を有する線で分割するルールであってよい。さらに換言すれば、T2個の仮想面St1の分割に係る同一のルールは、対象部品の3Dモデル3dmの基準点Poから見て、T2個の仮想面St1の間においてM2個の仮想分割面のそれぞれについて同一の形状のT2個の分割仮想面が生成されるように、T2個の仮想面St1を分割するルールであってよい。上述したT2個の仮想面St1の分割に係る同一のルールは、例えば、分割の対象である面(分割対象面ともいう)の中心点と、この分割対象面の全ての頂点と、をそれぞれ結ぶ複数の線分によって、分割対象面を複数の面に分割するルールであってよい。これにより、分割対象面の分割を容易に行うことができる。
図17で示されたように、面集合体As1を構成している複数の仮想面St1のそれぞれが三角形の面であれば、M2個は、3個であってよい。この場合には、T2個の仮想面St1のそれぞれは、
図26で示された高一致度仮想面St1mと同様に、3つの頂点と、第1仮想カメラ位置P11とをそれぞれ結ぶ3つの線分によって、3つの仮想分割面St2に分割されてよい。これにより、T2個の仮想面St1のそれぞれは、3つの三角形の仮想分割面St2に分割され得る。
【0141】
<<第2形状情報生成部6123>>
第2形状情報生成部6123は、記憶部45bに記憶された対象部品に関する三次元の設計情報に基づいて、分割面生成部6122によって生成された複数の仮想分割面St2に設定される複数の仮想カメラ位置(第2仮想カメラ位置)P12のそれぞれから対象部品の3Dモデル3dmを撮影する場合を想定して、複数の第2仮想カメラ位置P12のそれぞれについて、参照形状情報を生成する。ここでも、参照形状情報は、対象部品に関する三次元の設計情報に基づいて生成される情報であって、仮想カメラ位置からの撮影で取得され得る仮想画像における対象部品の3Dモデル3dmの二次元形状に係る情報である。
【0142】
各仮想分割面St2では、例えば、仮想分割面St2の所定の位置に第2仮想カメラ位置P12が仮想的に設定される。所定の位置には、例えば、仮想分割面St2の中心の位置が適用される。仮想分割面St2の中心には、例えば、仮想分割面St2の重心が適用される。例えば、
図26で示されるように、各仮想分割面St2に、第2仮想カメラ位置P12が設定される。複数の仮想分割面St2が三角形の面であれば、仮想分割面St2の中心は、例えば、三角形の重心であってもよいし、内心であってもよい。
【0143】
第2形状情報生成部6123では、例えば、
図26で示された複数の第2仮想カメラ位置P12のそれぞれについて、第2仮想カメラ位置P12からの撮影で取得され得る仮想画像における対象部品の3Dモデル3dmの二次元形状に係る参照形状情報が生成される。このとき、第2仮想カメラ位置P12から対象部品の3Dモデル3dmを撮影する仮想的なカメラによる撮影方向は、第2仮想カメラ位置P12から対象部品の3Dモデル3dmの基準点Poに向かう方向に設定される。第2仮想カメラ位置P12から対象部品の3Dモデル3dmを撮影する仮想的なカメラの姿勢を規定するロール角γは、例えば、ゼロ(0)度に設定される。
【0144】
ここで、上述したように、例えば、第1形状情報取得部6112によってM1×T1個の第1仮想カメラ位置P11のそれぞれについて生成した参照形状情報が取得される場合を想定すれば、第2形状情報生成部6123は、例えば、記憶部45bに記憶された対象部品に関する三次元の設計情報に基づいて、M2×T2個の第2仮想カメラ位置P12のそれぞれから対象部品の3Dモデル3dmを撮影する場合を想定して、M2×T2個の第2仮想カメラ位置P12のそれぞれについて、参照形状情報を生成する。M2×T2個の第2仮想カメラ位置P12は、上述したM2×T2個の仮想分割面St2のそれぞれに対して仮想的に設定されるM2×T2個の仮想カメラ位置である。ここでも、参照形状情報は、対象部品に関する三次元の設計情報に基づいて生成される情報であって、第2仮想カメラ位置P12からの撮影で取得され得る仮想画像における対象部品の3Dモデル3dmの二次元形状に係る情報である。
【0145】
ここでは、M2×T2個の第2仮想カメラ位置P12は、例えば、T2個の仮想面St1のそれぞれにおいて
図26で示されたように複数の仮想分割面St2のそれそれに設定された第2仮想カメラ位置P12によって構成される。
【0146】
<<第2算出部6124>>
第2算出部6124は、複数の第2仮想カメラ位置P12のそれぞれについて、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)と、参照形状情報との間における一致度を示す数値を算出する。
【0147】
上記のようにして、本第1実施形態では、複数の仮想面St1のうちの第1検出部6114によって検出された高一致度仮想カメラ位置P11mが設定された仮想面(高一致度仮想面)St1mを分割することで生成した複数の仮想面(仮想分割面)St2のそれぞれに第2仮想カメラ位置P12を設定し、各第2仮想カメラ位置P12について、実形状情報と参照形状情報との間における一致度を示す数値を算出する。このため、1次探索処理における高一致度仮想面St1mと2次探索処理における複数の仮想分割面St2とは無関係な面ではなく、複数の仮想分割面St2については数および面積のうちの少なくとも1つの増大が低減され得る。これにより、実画像で捉えられた対象部品の姿勢を認識するための計算量が低減され得る。その結果、基板処理装置1において、対象部品の姿勢の認識を効率良く行うことができる。
【0148】
上述したように、例えば、第1形状情報取得部6112によってM1×T1個の第1仮想カメラ位置P11のそれぞれについて生成した参照形状情報が取得される場合を想定すれば、第2算出部6124は、上記のM2×T2個の第2仮想カメラ位置P12のそれぞれについて、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)と、参照形状情報との間における一致度を示す数値を算出する。これにより、例えば、対象部品の移動あるいは基板処理装置1において対象部品が取り付けられる位置の誤差などによって、カメラCMと対象部品との距離が変化する場合において、対象部品の姿勢の認識を効率良く行うことができる。
【0149】
ここで、第2算出部6124における、1つの第2仮想カメラ位置P12についての実形状情報と参照形状情報との間における一致度を示す数値の計算処理について、1つの具体例を挙げて説明する。
【0150】
第2算出部6124における、1つの第2仮想カメラ位置P12についての実形状情報と参照形状情報との間における一致度を示す数値の計算処理の一具体例は、上述した第1算出部6113における、1つの第2仮想カメラ位置P12についての実形状情報と参照形状情報との間における一致度を示す数値の計算処理の一具体例と同様なものとなり得る。
【0151】
但し、第2算出部6124では、例えば、第2形状情報生成部6123で取得された参照形状情報としてのリファレンス画像と、照合対象領域設定部6121で実形状情報としてのエッジ画像に設定された照合対象領域Re2(
図25)との間で、輪郭の二次元形状の一致度を示す数値を算出する。
【0152】
第2算出部6124では、各第2仮想カメラ位置P12について、実形状情報としてのエッジ画像と参照形状情報としてのリファレンス画像との間で、一致度を示す数値を算出する際には、例えば、[処理2a]エッジ画像とリファレンス画像との間におけるロール角γのずれに対応する輪郭の二次元形状の向きのずれ量の検出を行う処理、[処理2b]ロール角γのずれに応じたエッジ画像の回転を行う処理、ならびに[処理2c]回転後のエッジ画像を対象としたリファレンス画像との一致度が最大である領域の位置の検出を行う処理、をこの記載の順に行う。
【0153】
上記処理2aでは、上記処理1aと同様に、例えば、実形状情報としてのエッジ画像と、参照形状情報としてのリファレンス画像との間で、RIPOC法を用いて、輪郭の二次元形状の向きのずれ量を検出する。この輪郭の二次元形状の向きのずれ量は、画像上における輪郭の回転方向のずれ量である。ここでは、例えば、RIPOC法によって、照合対象領域設定部6121で実形状情報としてのエッジ画像に設定された照合対象領域Re2(
図25)と、リファレンス画像との間で、輪郭の一致度が最も大きくなり得る回転方向におけるずれ量γ2を検出する。このずれ量γ2は、参照形状情報としてのリファレンス画像と実形状情報としてのエッジ画像との間における一致度がより大きくなり得るロール角γに相当する。
【0154】
上記処理2bでは、上記処理1bと同様に、例えば、実形状情報としてのエッジ画像を、上記処理2aで検出されたずれ量γ2を補正するように回転させる。これにより、回転後のエッジ画像が生成され、実形状情報としてのエッジ画像における輪郭の二次元形状と、参照形状情報としてのリファレンス画像における輪郭の二次元形状との間で、向きを整合させる。ここでは、例えば、照合対象領域Re2のエッジ画像を、上記処理2aで検出されたずれ量γ2を補正するように回転させる。これにより、回転後のエッジ画像が生成され、実形状情報を構成する照合対象領域Re2における輪郭の二次元形状と、参照形状情報としてのリファレンス画像における輪郭の二次元形状との間で、向きの一致を図る。
【0155】
上記処理2cでは、上記処理1cと同様に、例えば、上記処理2bで生成した実形状情報に係る回転後のエッジ画像を対象として、参照形状情報としてのリファレンス画像を用いたテンプレートマッチングを行う。ここでは、例えば、回転後のエッジ画像内でリファレンス画像を走査し、回転後のエッジ画像内の各部分領域とリファレンス画像との一致度(類似度)が最大となる領域の位置を検出する。これにより、実形状情報としてのエッジ画像において、リファレンス画像における対象部品の3Dモデル3dmの輪郭の二次元形状との一致度が最大である領域の位置(マッチング候補位置)が検出され得る。ここで言う一致度(類似度)は、特に限定されないものの、例えば、上述したように、画素値の差分の二乗和、画素値の差分の絶対値の和、正規化相互相関、または零平均正規化相互相関などの公知の一致度(類似度)を示すスコア(マッチングスコア)を用いて表現されてよい。また、ここで、上記のテンプレートマッチングを行う際には、回転後のエッジ画像内の部分領域とリファレンス画像との一致度(類似度)が最大となる場合における一致度(類似度)を示す数値が、第2仮想カメラ位置P12についての、実形状情報としてのエッジ画像と参照形状情報としてのリファレンス画像との間における一致度を示す数値として算出される。ここでも、一致度を示す数値は、例えば、一致度を示すマッチングスコアであってよい。
【0156】
<<第2検出部6125>>
第2検出部6125は、第1検出部6114で検出された高一致度仮想カメラ位置P11m、ならびに上述したM2×T2個の第2仮想カメラ位置P12のうち、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)と参照形状情報との間における一致度が最も大きな仮想カメラ位置を検出する。これにより、実形状情報と参照形状情報との間における一致度がより大きくなる仮想カメラ位置を効率良く検出することができる。
【0157】
ここでは、例えば、第1算出部6113によって高一致度仮想カメラ位置P11mについて算出されたマッチングスコア、ならびに第2算出部6124によって算出されたM2×T2個の第2仮想カメラ位置P12についてそれぞれ算出されたマッチングスコア、が比較される。そして、例えば、高一致度仮想カメラ位置P11mおよびM2×T2個の第2仮想カメラ位置P12のうち、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)と参照形状情報との間について算出されたマッチングスコアが最も大きくなった仮想カメラ位置が検出される。
【0158】
ここで、第2検出部6125によって検出された仮想カメラ位置は、対象部品についての探索処理において、第2検出部6125によって1番目に検出された仮想カメラ位置とされる。この第2検出部6125で1番目に検出された仮想カメラ位置は、例えば、後述する1番目の基準仮想カメラ位置となる。本明細書において、X番目(Xは自然数)とは、1つの対象部品についての探索処理を行う際におけるX番目を意味している。
【0159】
<3-2-2-3.単位処理の繰り返し>
探索処理部61は、例えば、第2探索処理部612によって、第1の単位処理を実行した後に、1回以上の第nの単位処理(nは2以上の自然数)を実行する。
【0160】
単位処理は、互いに同一または類似の2回以上の特定の処理が繰り返される場合における、この特定の処理を意味している。本第1実施形態では、第1の単位処理と第nの単位処理とは、類似する処理であり、第nの単位処理どうしは、実質的に同一の処理である。ここで、第1の単位処理は、2回以上の単位処理における1回目の単位処理を意味している。第nの単位処理における2以上の自然数である変数nは、第nの単位処理が何回目の単位処理であるかを示している。換言すれば、第nの単位処理は、2回以上の単位処理におけるn回目の単位処理を意味している。例えば、変数nが2であれば、第nの単位処理は、2回目の単位処理である第2の単位処理を意味する。別の観点から言えば、1回以上の第nの単位処理が実行される際には、2以上の自然数である変数nが初期値としての2に設定され、第nの単位処理が行われるたびに、変数nに1が加算されて、次回の第nの単位処理が行われる。そして、第1の単位処理を実行した後に、1回以上の第nの単位処理を実行するとは、例えば、第1の単位処理と、第2の単位処理と、・・・を順に実行することを意味する。例えば、第1の単位処理を実行した後に、1回の第nの単位処理を実行する場合には、第1の単位処理と、第2の単位処理と、を順に実行する。第1の単位処理を実行した後に、2回の第nの単位処理を実行する場合には、第1の単位処理と、第2の単位処理と、第3の単位処理と、を順に実行する。
【0161】
第1の単位処理は、例えば、探索処理部61において対象部品についての2次探索処理を行う際に、第2検出部6125によって仮想カメラ位置が1番目に検出されたことに応答して開始される。
【0162】
ここで、探索処理部61は、第2探索処理部612によって、第1の単位処理において、下記の第1A処理と、下記の第1B処理と、下記の第1C処理と、下記の第1D処理と、を順に行う。また、探索処理部61は、第2探索処理部612によって、第nの単位処理において、下記の第nA処理と、下記の第nB処理と、下記の第nC処理と、下記の第nD処理と、を順に行う。
【0163】
<<第1A処理>>
第1A処理は、分割面生成部6122によって、1番目のM3×T3個(M3およびT3はそれぞれ2以上の自然数)の仮想分割面を生成する処理である。この処理では、分割面生成部6122は、上記のT2個の仮想面St1をそれぞれ分割することで生成された、第2検出部6125で1番目に検出された仮想カメラ位置である1番目の基準仮想カメラ位置を包含する仮想分割面(1番目の基準仮想分割面ともいう)を含み且つ対象部品の3Dモデル3dmの基準点Poからの距離が相互に異なるT3個の仮想分割面(1番目のT3個の仮想分割面ともいう)、のそれぞれを同一のルールで分割する。これにより、分割面生成部6122は、1番目のT3個の仮想分割面のそれぞれについてM3個の仮想分割面(1番目のM3個の仮想分割面ともいう)を生成することで、1番目のM3×T3個の仮想分割面を生成する。ここでは、1番目のT3個の仮想分割面は、対象部品の3Dモデル3dmの基準点Poよりも1番目の基準仮想カメラ位置の側において該基準点Poと該1番目の基準仮想カメラ位置とを通る直線に交差している複数の仮想分割面である。T3個は、例えば、T2個と同一である。T3個は、例えば、T2個未満であってもよい。
【0164】
ここで、1番目のT3個の仮想分割面の分割に係る同一のルールは、対象部品の3Dモデル3dmの基準点Poから見て、1番目のT3個の仮想分割面を同じ形で分割するルールであってよい。換言すれば、1番目のT3個の仮想分割面の分割に係る同一のルールは、対象部品の3Dモデル3dmの基準点Poから見た場合に、1番目のT3個の仮想分割面のそれぞれを、基準点Poを中心とした放射状の方向において相互に拡大および縮小された相似の関係の形状を有する線で分割するルールであってよい。さらに換言すれば、1番目のT3個の仮想分割面の分割に係る同一のルールは、対象部品の3Dモデル3dmの基準点Poから見て、1番目のT3個の仮想分割面の間においてM3個の仮想分割面のそれぞれについて同一の形状のT3個の分割仮想面が生成されるように、1番目のT3個の仮想分割面を分割するルールであってよい。1番目のT3個の仮想分割面の分割に係る同一のルールは、例えば、分割の対象である分割対象面の中心点と、この分割対象面の全ての頂点と、をそれぞれ結ぶ複数の線分によって、分割対象面を複数の面に分割するルールであってよい。これにより、分割対象面の分割を容易に行うことができる。
【0165】
図28は、1番目のT3個の仮想分割面St2の一例を模式的に示すイメージ図である。
図28では、対象部品の3Dモデル3dmの基準点Poから1番目の基準仮想カメラ位置Ps1に向かう方向Dr12が細線で描かれた矢印で示されており、基準点Poと1番目の基準仮想カメラ位置Ps1とを通る直線Ln12が細い二点鎖線で描かれている。
図28では、基準点Poを通り且つ上記の1番目のT3個の仮想分割面St2のそれぞれの外縁を通る線が細い破線で描かれている。
図28では、便宜的に、1番目のT3個の仮想分割面St2のうち、3個の仮想分割面St2が描かれており、その他の仮想分割面St2の図示が省略されている。
図28で示されるように、上記の1番目のT3個の仮想分割面St2のそれぞれは、直線Ln12のうちの基準点Poよりも1番目の基準仮想カメラ位置Ps1の側に位置している部分と交差している。
【0166】
この第1A処理では、第2検出部6125によって1番目に検出された仮想カメラ位置(1番目の基準仮想カメラ位置)Ps1に応じて、1番目のM3×T3個の仮想分割面の生成方法が異なる。より具体的には、1番目の基準仮想カメラ位置Ps1が、上述したM2×T2個の第2仮想カメラ位置P12のうちの何れか1つの第2仮想カメラ位置P12である場合(1番目の第1の場合ともいう)と、1番目の基準仮想カメラ位置Ps1が、第1検出部6114で検出された高一致度仮想カメラ位置P11mである場合(1番目の第2の場合ともいう)とで、1番目のM3×T3個の仮想分割面の生成方法が異なる。
【0167】
<<<1番目の第1の場合>>>
第2検出部6125によって、上述したM2×T2個の第2仮想カメラ位置P12のうちの何れか1つの第2仮想カメラ位置P12が、1番目の基準仮想カメラ位置Ps1として検出された場合には、高一致度仮想カメラ位置P11mよりも、上述したM2×T2個の第2仮想カメラ位置P12の何れかについて、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)と参照形状情報との間における一致度が大きい。
【0168】
換言すれば、1次探索処理において第1算出部6113によって算出された高一致度仮想カメラ位置P11mについての実形状情報と参照形状情報との間における一致度よりも、2次探索処理の第1の単位処理において第2算出部6124によって算出されたM2×T2個の第2仮想カメラ位置P12の何れかについての実形状情報と参照形状情報との間における一致度が大きい。より具体的には、例えば、1次探索処理において第1算出部6113によって算出された高一致度仮想カメラ位置P11mについての実形状情報と参照形状情報との間における一致度を示すマッチングスコアよりも、2次探索処理の第1の単位処理において第2算出部6124によって算出されたM2×T2個の第2仮想カメラ位置P12の何れかについての実形状情報と参照形状情報との間における一致度を示すマッチングスコアが大きい。
【0169】
そこで、分割面生成部6122は、上述したM2×T2個の第2仮想カメラ位置P12のうち、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)と参照形状情報との間における一致度が最も大きな第2仮想カメラ位置P12を次の仮想面の分割の基準である1番目の基準仮想カメラ位置Ps1として、1番目のM3×T3個の仮想分割面を生成する。これにより、例えば、2次探索処理において、参照形状情報と実形状情報との間における一致度がより大きくなる仮想カメラ位置を探索することができる。
【0170】
ここでは、分割面生成部6122は、上述したM2×T2個の仮想分割面St2のうちの1番目の基準仮想カメラ位置Ps1を包含する仮想分割面(1番目の基準仮想分割面)を含み且つ対象部品の3Dモデル3dmの基準点Poからの距離が相互に異なる1番目のT3個の仮想分割面St2のそれぞれを同一のルールで分割する。これにより、分割面生成部6122は、1番目のT3個の仮想分割面St2のそれぞれについてM3個の仮想分割面である1番目のM3個の仮想分割面を生成することで、1番目のM3×T3個の仮想分割面を生成する。1番目のT3個の仮想分割面St2は、対象部品の3Dモデル3dmの基準点Poよりも1番目の基準仮想カメラ位置Ps1の側において該基準点Poと該1番目の基準仮想カメラ位置Ps1とを通る直線Ln12に交差している複数の仮想分割面St2である。
【0171】
ここで、1番目のT3個の仮想分割面St2の分割に係る同一のルールは、上述したように、分割の対象である分割対象面の中心点と、この分割対象面の全ての頂点と、をそれぞれ結ぶ複数の線分によって、分割対象面を複数の面に分割するルールであってよい。例えば、1番目のT3個の仮想分割面St2のそれぞれが三角形であれば、1番目のT3個の仮想分割面St2のそれぞれは、3つの頂点と、第2仮想カメラ位置P12とをそれぞれ結ぶ3つの線分によって、M3個の仮想分割面である3つの仮想分割面に分割されてよい。これにより、1番目のT3個の仮想分割面St2のそれぞれは、3つの三角形の仮想分割面に分割され得る。その結果、M3×T3個の仮想分割面としての1番目のM3×T3個の仮想分割面が生成される。
【0172】
ここで、例えば、
図26における3つの第2仮想カメラ位置P12のうちの左上の1つの第2仮想カメラ位置P12が1番目の基準仮想カメラ位置Ps1として検出された場合を想定する。この場合には、
図26で示されるように、仮想面St1を分割することで生成された3つの仮想分割面St2のうちの1番目の基準仮想カメラ位置Ps1を包含する仮想分割面St2が、1番目の基準仮想分割面Ss1となる。
【0173】
図29は、分割面生成部6122によって1番目のM3×T3個の仮想分割面St3を生成する第1の具体例を説明するための図である。
図29では、1番目のT3個の仮想分割面St2のうちの1番目の基準仮想分割面Ss1の分割について示されている。1番目のT3個の仮想分割面St2は、分割面生成部6122によって生成されたM2×T2個の仮想分割面St2のうちのT3個の仮想分割面St2である。1番目のT3個の仮想分割面St2は、対象部品の3Dモデル3dmの基準点Poを中心として、放射状の方向において相互に拡大および縮小された相似の関係の形状を有する。
図29には、
図17で示されたように、面集合体As1を構成している複数の仮想面St1のそれぞれが三角形の面である場合についての一具体例が示されている。
図29では、1番目の基準仮想カメラ位置Ps1が白抜きの丸印で示されている。
図29で示されるように、分割面生成部6122は、例えば、1番目の基準仮想分割面Ss1における3つの頂点と、1番目の基準仮想カメラ位置Ps1とを結ぶ3つの線分によって、1番目の基準仮想分割面Ss1を、1番目のM3個の仮想分割面としての3つの仮想分割面St3に分割する。
【0174】
ここでは、対象部品の3Dモデル3dmの基準点Poから見た場合、1番目のT3個の仮想分割面St2のそれぞれは、基準点Poを中心とした放射状の方向において相互に拡大および縮小された相似の関係の形状を有する線で分割されることで、1番目のM3×T3個の仮想分割面St3が生成される。これにより、1番目のT3個の仮想分割面St2においては、M3個の仮想分割面St3のそれぞれについて、対象部品の3Dモデル3dmの基準点Poを中心として放射状の方向において相互に拡大および縮小された相似の関係の形状を有するT3個の仮想分割面St3が存在する状態となる。M3個は、例えば、M2個と同一であってよい。
【0175】
図17で示されたように、面集合体As1を構成している複数の仮想面St1のそれぞれが三角形の面であれば、M3個は、M2個と同じく、3個であってよい。この場合には、1番目のT3個の仮想分割面St2のそれぞれは、
図29で示された1番目の基準仮想分割面Ss1と同様に、3つの頂点と、第2仮想カメラ位置P12とをそれぞれ結ぶ3つの線分によって、3つの仮想分割面St3に分割されてよい。これにより、T3個の仮想分割面St2のそれぞれは、3つの三角形の仮想分割面St3に分割され得る。その結果、M3×T3個の仮想分割面としての1番目のM3×T3個の仮想分割面St3が生成される。
【0176】
<<<1番目の第2の場合>>>
第2検出部6125によって、高一致度仮想カメラ位置P11mが、1番目の基準仮想カメラ位置Ps1として検出された場合には、上述したM2×T2個の第2仮想カメラ位置P12の何れよりも、高一致度仮想カメラ位置P11mについて、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)と参照形状情報との間における一致度が大きい。
【0177】
換言すれば、1次探索処理において第1算出部6113によって算出された高一致度仮想カメラ位置P11mについての実形状情報と参照形状情報との間における一致度よりも、2次探索処理において第2算出部6124によって算出されたM2×T2個の第2仮想カメラ位置P12の全てについての実形状情報と参照形状情報との間における一致度が小さい。より具体的には、例えば、1次探索処理において第1算出部6113によって算出された高一致度仮想カメラ位置P11mについての実形状情報と参照形状情報との間における一致度を示すマッチングスコアよりも、2次探索処理において第2算出部6124によって算出されたM2×T2個の第2仮想カメラ位置P12の全てについての実形状情報と参照形状情報との間における一致度を示すマッチングスコアが小さい。
【0178】
そこで、分割面生成部6122は、高一致度仮想カメラ位置P11mを次の仮想面の分割の基準である1番目の基準仮想カメラ位置Ps1として、1番目のM3×T3個の仮想分割面St3を生成する。これにより、例えば、2次探索処理において、参照形状情報と実形状情報との間における一致度がより大きくなる仮想カメラ位置を探索することができる。
【0179】
ここでは、分割面生成部6122は、高一致度仮想カメラ位置P11mと同一である1番目の基準仮想カメラ位置Ps1を包含する仮想分割面(1番目の基準仮想分割面)を含み且つ対象部品の3Dモデル3dmの基準点Poからの距離が相互に異なる1番目のT3個の仮想分割面のそれぞれを同一のルールで分割する。これにより、分割面生成部6122は、1番目のT3個の仮想分割面のそれぞれについてM3個の仮想分割面である1番目のM3個の仮想分割面を生成することで、1番目のM3×T3個の仮想分割面を生成する。1番目のT3個の仮想分割面は、対象部品の3Dモデル3dmの基準点Poよりも1番目の基準仮想カメラ位置Ps1の側において該基準点Poと該1番目の基準仮想カメラ位置Ps1とを通る直線Ln12に交差している複数の仮想分割面である。
【0180】
ここで、1番目の基準仮想分割面は、所定のルールで設定される。例えば、面集合体As1を構成している複数の仮想面St1のそれぞれが三角形の面であれば、複数の仮想面St1のうちの高一致度仮想面St1mが各辺の中点を結ぶ線で分割されることで生成される4個の三角形の仮想分割面のうち、高一致度仮想カメラ位置P11mを包含する1つの仮想分割面が、1番目の基準仮想分割面Ss1として設定されてよい。ここで、各辺の中点は、例えば、各辺の中点から若干ずれた点であってもよい。
【0181】
図30および
図31は、それぞれ分割面生成部6122によって1番目のM3×T3個の仮想分割面St3を生成する第2の具体例を説明するための図である。
図30および
図31には、
図17で示されたように、面集合体As1を構成している複数の仮想面St1のそれぞれが三角形の面である場合についての一具体例が示されている。
図30および
図31では、1番目の基準仮想カメラ位置Ps1としての高一致度仮想カメラ位置P11mが白抜きの丸印で示されている。
【0182】
ここでは、高一致度仮想面St1mを分割することで生成された、M4個(M4は2以上の自然数)の仮想分割面のうち、1番目の基準仮想カメラ位置Ps1としての高一致度仮想カメラ位置P11mを包含する仮想分割面が、1番目の基準仮想分割面Ss1となる。ここで、M4個の仮想分割面のそれぞれは、仮想面St1が分割されることで生成された面であるため、再設定された仮想分割面St2とされる。例えば、
図30で示されるように、高一致度仮想面St1mは、この高一致度仮想面St1mの各辺の中点をそれぞれ結ぶ線で分割されることで、M4個としての4個の三角形の仮想分割面St2が生成される。そして、この4個の三角形の仮想分割面St2のうち、1番目の基準仮想カメラ位置Ps1としての高一致度仮想カメラ位置P11mを包含する仮想分割面St2が、1番目の基準仮想分割面Ss1となる。
【0183】
ここでは、上記のT2個の仮想面St1のうちのT3個の仮想面St1のそれぞれは、高一致度仮想面St1mと同じルールで分割されることで、T3個の仮想面St1のそれぞれが、M4個の仮想分割面St2に分割される。別の観点から言えば、対象部品の3Dモデル3dmの基準点Poから見た場合、T3個の仮想面St1のそれぞれは、基準点Poを中心とした放射状の方向において相互に拡大および縮小された相似の関係の形状を有する線で分割されることで、M4個×T3個の仮想分割面St2が生成される。そして、1番目の基準仮想分割面Ss1を含む1番目のT3個の仮想分割面St2は、M4×T3個の仮想分割面St2のうちの一部であり、対象部品の3Dモデル3dmの基準点Poを中心として、放射状の方向において相互に拡大および縮小された相似の関係の形状を有する。
【0184】
例えば、上記のT2個の仮想面St1のうちのT3個の仮想面St1のそれぞれは、
図30で示された高一致度仮想面St1mと同様に、各辺の中点をそれぞれ結ぶ線で分割されてよい。これにより、T3個の仮想面St1のそれぞれは、4個の三角形の仮想分割面St2に分割され得る。別の観点から言えば、対象部品の3Dモデル3dmの基準点Poから見た場合、T3個の仮想面St1のそれぞれは、基準点Poを中心とした放射状の方向において相互に拡大および縮小された相似の関係の形状を有する線で分割されることで、4個×T3個の仮想分割面St2が生成される。そして、1番目の基準仮想分割面Ss1を含む1番目のT3個の仮想分割面St2は、4×T3個の仮想分割面St2のうちの一部であり、対象部品の3Dモデル3dmの基準点Poを中心として、放射状の方向において相互に拡大および縮小された相似の関係の形状を有する。
【0185】
ここで、1番目のT3個の仮想分割面の分割に係る同一のルールは、例えば、上述したように、分割の対象である分割対象面の中心点と、この分割対象面の全ての頂点と、をそれぞれ結ぶ複数の線分によって、分割対象面を複数の面に分割するルールであってよい。例えば、1番目のT3個の仮想分割面St2のそれぞれが三角形であれば、1番目のT3個の仮想分割面St2のそれぞれは、3つの頂点と、第1仮想カメラ位置P11とをそれぞれ結ぶ3つの線分によって、M3個の仮想分割面である3つの仮想分割面に分割されてよい。これにより、1番目のT3個の仮想分割面St2のそれぞれは、3つの三角形の仮想分割面に分割され得る。その結果、M3×T3個の仮想分割面としての1番目のM3×T3個の仮想分割面が生成される。
【0186】
図31では、1番目のT3個の仮想分割面St2のうちの1番目の基準仮想分割面Ss1の分割について示されている。1番目のT3個の仮想分割面St2は、対象部品の3Dモデル3dmの基準点Poを中心として、放射状の方向において相互に拡大および縮小された相似の関係の形状を有する。
図31で示されるように、分割面生成部6122は、例えば、1番目の基準仮想分割面Ss1における3つの頂点と、1番目の基準仮想カメラ位置Ps1としての高一致度仮想カメラ位置P11mとを結ぶ3つの線分によって、1番目の基準仮想分割面Ss1を、1番目のM3個の仮想分割面としての3つの仮想分割面St3に分割する。
【0187】
ここでは、対象部品の3Dモデル3dmの基準点Poから見た場合、1番目のT3個の仮想分割面St2のそれぞれは、基準点Poを中心とした放射状の方向において相互に拡大および縮小された相似の関係の形状を有する線で分割されることで、1番目のM3×T3個の仮想分割面St3が生成される。これにより、1番目のT3個の仮想分割面St2においては、M3個の仮想分割面St3のそれぞれについて、対象部品の3Dモデル3dmの基準点Poを中心として放射状の方向において相互に拡大および縮小された相似の関係の形状を有するT3個の仮想分割面St3が存在する状態となる。
【0188】
図17で示されたように、面集合体As1を構成している複数の仮想面St1のそれぞれが三角形の面であれば、M3個は、3個であってよい。この場合には、1番目のT3個の仮想分割面St2のそれぞれは、
図31で示された1番目の基準仮想分割面Ss1と同様に、3つの頂点と、第1仮想カメラ位置P11とをそれぞれ結ぶ3つの線分によって、3つの仮想分割面St3に分割されてよい。これにより、T3個の仮想分割面St2のそれぞれは、3つの三角形の仮想分割面St3に分割され得る。その結果、M3×T3個の仮想分割面としての1番目のM3×T3個の仮想分割面St3が生成される。
【0189】
<<第1B処理>>
第1B処理は、第2形状情報生成部6123によって、記憶部45bに記憶された対象部品に関する三次元の設計情報に基づいて、第1A処理で生成された1番目のM3×T3個の仮想分割面St3のそれぞれに対して仮想的に設定されるM3×T3個の仮想カメラ位置(1番目のM3×T3個の第3仮想カメラ位置ともいう)のそれぞれから対象部品の3Dモデル3dmを撮影する場合を想定して、1番目のM3×T3個の第3仮想カメラ位置のそれぞれについて、参照形状情報を生成する処理である。ここでも、参照形状情報は、対象部品に関する三次元の設計情報に基づいて生成される情報であって、仮想カメラ位置からの撮影で取得され得る仮想画像における対象部品の3Dモデル3dmの二次元形状に係る情報である。
【0190】
1番目のM3×T3個の仮想分割面St3のそれぞれでは、例えば、仮想分割面St3の所定の位置に第3仮想カメラ位置P13が仮想的に設定される。所定の位置には、例えば、仮想分割面St3の中心の位置が適用される。仮想分割面St3の中心には、例えば、仮想分割面St3の重心が適用される。例えば、
図29または
図31で示されるように、各仮想分割面St3に、第3仮想カメラ位置P13が設定される。1番目のM3×T3個の仮想分割面St3のそれぞれが三角形の面であれば、仮想分割面St3の中心は、例えば、三角形の重心であってもよいし、内心であってもよい。
【0191】
第2形状情報生成部6123では、例えば、
図29または
図31で示された複数の第3仮想カメラ位置P13のそれぞれについて、第3仮想カメラ位置P13からの撮影で取得され得る仮想画像における対象部品の3Dモデル3dmの二次元形状に係る参照形状情報が生成される。このとき、第3仮想カメラ位置P13から対象部品の3Dモデル3dmを撮影する仮想的なカメラによる撮影方向は、第3仮想カメラ位置P13から対象部品の3Dモデル3dmの基準点Poに向かう方向に設定される。第3仮想カメラ位置P13から対象部品の3Dモデル3dmを撮影する仮想的なカメラの姿勢を規定するロール角γは、例えば、ゼロ(0)度に設定される。
【0192】
<<第1C処理>>
第1C処理は、第2算出部6124によって、上記の1番目のM3×T3個の第3仮想カメラ位置P13のそれぞれについて、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)と、参照形状情報との間における一致度を示す数値を算出する処理である。
【0193】
第1C処理において、第2算出部6124では、例えば、第1B処理において第2形状情報生成部6123で取得された参照形状情報としてのリファレンス画像と、照合対象領域設定部6121で実形状情報としてのエッジ画像に設定された照合対象領域Re2(
図25)との間で、輪郭の二次元形状の一致度を示す数値を算出する。
【0194】
第1C処理において、第2算出部6124では、各第3仮想カメラ位置P13について、実形状情報としてのエッジ画像と参照形状情報としてのリファレンス画像との間で、一致度を示す数値を算出する際には、例えば、[処理2a1]エッジ画像とリファレンス画像との間におけるロール角γのずれに対応する輪郭の二次元形状の向きのずれ量の検出を行う処理、[処理2b1]ロール角γのずれに応じたエッジ画像の回転を行う処理、ならびに[処理2c1]回転後のエッジ画像を対象としたリファレンス画像との一致度が最大である領域の位置の検出を行う処理、をこの記載の順に行う。
【0195】
上記処理2a1は、上記処理2aと同様に、例えば、実形状情報としてのエッジ画像と、参照形状情報としてのリファレンス画像との間で、RIPOC法を用いて、輪郭の二次元形状の向きのずれ量を検出する。この輪郭の二次元形状の向きのずれ量は、画像上における輪郭の回転方向のずれ量である。ここでは、例えば、RIPOC法によって、照合対象領域設定部6121で実形状情報としてのエッジ画像に設定された照合対象領域Re2(
図25)と、リファレンス画像との間で、輪郭の一致度が最も大きくなり得る回転方向におけるずれ量γ21を算出する。このずれ量γ21は、参照形状情報としてのリファレンス画像と実形状情報としてのエッジ画像との間における一致度がより大きくなり得るロール角γに相当する。
【0196】
上記処理2b1では、上記処理2bと同様に、例えば、実形状情報としてのエッジ画像を、上記処理2a1で検出されたずれ量γ21を補正するように回転させる。これにより、回転後のエッジ画像が生成され、実形状情報としてのエッジ画像における輪郭の二次元形状と、参照形状情報としてのリファレンス画像における輪郭の二次元形状との間で、向きを整合させる。ここでは、例えば、照合対象領域Re2のエッジ画像を、上記処理2a1で検出されたずれ量γ21を補正するように回転させる。これにより、回転後のエッジ画像が生成され、実形状情報を構成する照合対象領域Re2における輪郭の二次元形状と、参照形状情報としてのリファレンス画像における輪郭の二次元形状との間で、向きの一致を図る。
【0197】
上記処理2c1では、上記処理2cと同様に、例えば、上記処理2b1で生成した実形状情報に係る回転後のエッジ画像を対象として、参照形状情報としてのリファレンス画像を用いたテンプレートマッチングを行う。ここでは、例えば、回転後のエッジ画像内でリファレンス画像を走査し、回転後のエッジ画像内の各部分領域とリファレンス画像との一致度(類似度)が最大となる領域の位置を検出する。これにより、実形状情報としてのエッジ画像において、リファレンス画像における対象部品の3Dモデル3dmの輪郭の二次元形状との一致度が最大である領域の位置(マッチング候補位置)が検出され得る。また、ここで、上記のテンプレートマッチングを行う際には、回転後のエッジ画像内の部分領域とリファレンス画像との一致度(類似度)が最大となる場合における一致度(類似度)を示す数値が、第3仮想カメラ位置P13についての、実形状情報としてのエッジ画像と参照形状情報としてのリファレンス画像との間における一致度を示す数値として算出される。ここでも、一致度を示す数値は、例えば、一致度を示すマッチングスコアであってよい。
【0198】
<<第1D処理>>
第1D処理は、第2検出部6125によって、上記の1番目の基準仮想カメラ位置Ps1ならびに上記の1番目のM3×T3個の第3仮想カメラ位置P13のうち、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)と参照形状情報との間における一致度が最も大きな仮想カメラ位置である2番目の基準仮想カメラ位置を検出する処理である。
【0199】
ここでは、例えば、1番目の基準仮想カメラ位置Ps1について算出されたマッチングスコア、ならびに第1C処理において第2算出部6124によって算出された1番目のM3×T3個の第3仮想カメラ位置P13についてそれぞれ算出されたマッチングスコア、が比較される。そして、例えば、1番目の基準仮想カメラ位置Ps1および1番目のM3×T3個の第3仮想カメラ位置P13のうち、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)と参照形状情報との間について算出されたマッチングスコアが最も大きい仮想カメラ位置が2番目の基準仮想カメラ位置として検出される。
【0200】
<<第nA処理>>
第nA処理は、分割面生成部6122によって、n番目のM3×T3個の仮想分割面を生成する処理である。この処理では、分割面生成部6122は、n-1番目のT3個の仮想分割面をそれぞれ分割することで生成された、第2検出部6125でn番目に検出された仮想カメラ位置であるn番目の基準仮想カメラ位置を包含する仮想分割面(n番目の基準仮想分割面ともいう)を含み且つ対象部品の3Dモデル3dmの基準点Poからの距離が相互に異なるT3個の仮想分割面(n番目のT3個の仮想分割面ともいう)のそれぞれを同一のルールで分割する。これにより、分割面生成部6122は、n番目のT3個の仮想分割面のそれぞれについてM3個の仮想分割面(n番目のM3個の仮想分割面ともいう)を生成することで、n番目のM3×T3個の仮想分割面を生成する。n番目のT3個の仮想分割面は、対象部品の3Dモデル3dmの基準点Poよりもn番目の基準仮想カメラ位置の側において該基準点Poと該n番目の基準仮想カメラ位置とを通る直線と交差している。
【0201】
ここで、n番目のT3個の仮想分割面の分割に係る同一のルールは、対象部品の3Dモデル3dmの基準点Poから見て、n番目のT3個の仮想分割面を同じ形で分割するルールであってよい。換言すれば、n番目のT3個の仮想分割面の分割に係る同一のルールは、対象部品の3Dモデル3dmの基準点Poから見た場合に、n番目のT3個の仮想分割面のそれぞれを、基準点Poを中心とした放射状の方向において相互に拡大および縮小された相似の関係の形状を有する線で分割するルールであってよい。さらに換言すれば、n番目のT3個の仮想分割面の分割に係る同一のルールは、対象部品の3Dモデル3dmの基準点Poから見て、n番目のT3個の仮想分割面の間においてM3個の仮想分割面のそれぞれについて同一の形状のT3個の分割仮想面が生成されるように、n番目のT3個の仮想分割面を分割するルールであってよい。n番目のT3個の仮想分割面の分割に係る同一のルールは、例えば、分割の対象である分割対象面の中心点と、この分割対象面の全ての頂点と、をそれぞれ結ぶ複数の線分によって、分割対象面を複数の面に分割するルールであってよい。これにより、分割対象面の分割を容易に行うことができる。
【0202】
図32は、n番目のT3個の仮想分割面St3の一具体例である2番目のT3個の仮想分割面St3の一例を模式的に示すイメージ図である。
図32では、対象部品の3Dモデル3dmの基準点Poから2番目の基準仮想カメラ位置Ps2に向かう方向Dr13が細線で描かれた矢印で示されており、基準点Poと2番目の基準仮想カメラ位置Ps2とを通る直線Ln13が細い二点鎖線で描かれている。
図32では、基準点Poを通り且つ上記の2番目のT3個の仮想分割面St3のそれぞれの外縁を通る線が細い破線で描かれている。
図32では、便宜的に、2番目のT3個の仮想分割面St3のうち、3個の仮想分割面St3が描かれており、その他の仮想分割面St3の図示が省略されている。
図32で示されるように、上記の2番目のT3個の仮想分割面St3のそれぞれは、直線Ln13のうちの基準点Poよりも2番目の基準仮想カメラ位置Ps2の側に位置している部分と交差している。
【0203】
この第nA処理では、第2検出部6125によってn番目に検出された仮想カメラ位置(n番目の基準仮想カメラ位置)に応じて、n番目のM3×T3個の仮想分割面の生成方法が異なる。より具体的には、n番目の基準仮想カメラ位置が、n-1番目のM3×T3個の第3仮想カメラ位置のうちの何れか1つの第3仮想カメラ位置である場合(n番目の第1の場合ともいう)と、n番目の基準仮想カメラ位置が、n-1番目の基準仮想カメラ位置である場合(n番目の第2の場合ともいう)とで、n番目のM3×T3個の仮想分割面の生成方法が異なる。
【0204】
<<<n番目の第1の場合>>>
第2検出部6125によって、上述したn-1番目のM3×T3個の第3仮想カメラ位置のうちの何れか1つの第3仮想カメラ位置が、n番目の基準仮想カメラ位置として検出された場合には、n-1番目の基準仮想カメラ位置よりも、上述したn-1番目のM3×T3個の第3仮想カメラ位置の何れかについて、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)と参照形状情報との間における一致度が大きい。
【0205】
例えば、n-1番目の基準仮想カメラ位置についての実形状情報と参照形状情報との間における一致度を示すマッチングスコアよりも、n-1番目のM3×T3個の第3仮想カメラ位置の何れかについての実形状情報と参照形状情報との間における一致度を示すマッチングスコアが大きい。
【0206】
そこで、分割面生成部6122は、上述したn-1番目のM3×T3個の第3仮想カメラ位置のうち、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)と参照形状情報との間における一致度が最も大きな第3仮想カメラ位置を次の仮想面の分割の基準であるn番目の基準仮想カメラ位置として、n番目のM3×T3個の仮想分割面を生成する。これにより、例えば、2次探索処理において、参照形状情報と実形状情報との間における一致度がさらに大きくなる仮想カメラ位置を探索することができる。
【0207】
ここでは、分割面生成部6122は、上述したn-1番目のM3×T3個の仮想分割面のうちのn番目の基準仮想カメラ位置を包含する仮想分割面であるn番目の基準仮想分割面を含み且つ対象部品の3Dモデル3dmの基準点Poからの距離が相互に異なるn番目のT3個の仮想分割面のそれぞれを同一のルールで分割する。これにより、分割面生成部6122は、n番目のT3個の仮想分割面のそれぞれについてM3個の仮想分割面であるn番目のM3個の仮想分割面を生成することで、n番目のM3×T3個の仮想分割面を生成する。n番目のT3個の仮想分割面は、対象部品の3Dモデル3dmの基準点Poよりもn番目の基準仮想カメラ位置の側において該基準点Poと該n番目の基準仮想カメラ位置とを通る直線と交差している複数の仮想分割面である。
【0208】
ここで、n番目のT3個の仮想分割面の分割に係る同一のルールは、上述したように、例えば、分割の対象である分割対象面の中心点と、この分割対象面の全ての頂点と、をそれぞれ結ぶ複数の線分によって、分割対象面を複数の面に分割するルールであってよい。例えば、n番目のT3個の仮想分割面のそれぞれが三角形であれば、n番目のT3個の仮想分割面のそれぞれは、3つの頂点と、n-1番目の第3仮想カメラ位置とをそれぞれ結ぶ3つの線分によって、n番目のM3個の仮想分割面である3つの仮想分割面に分割されてよい。これにより、n番目のT3個の仮想分割面のそれぞれは、3つの三角形の仮想分割面に分割され得る。その結果、M3×T3個の仮想分割面としてのn番目のM3×T3個の仮想分割面が生成される。
【0209】
ここで、例えば、
図29における3つの第3仮想カメラ位置P13のうちの下側の1つの第3仮想カメラ位置P13が2番目の基準仮想カメラ位置Ps2として検出された場合を想定する。この場合には、
図29で示されるように、仮想分割面St2を分割することで生成された、3つの仮想分割面St3のうちの2番目の基準仮想カメラ位置Ps2を包含する仮想分割面St3が、2番目の基準仮想分割面Ss2となる。
【0210】
図33は、分割面生成部6122によってn番目のM3×T3個の一例としての2番目のM3×T3個の仮想分割面St3aを生成する第1の具体例を説明するための図である。
図33では、2番目のT3個の仮想分割面St3のうちの2番目の基準仮想分割面Ss2の分割について示されている。2番目のT3個の仮想分割面St3は、分割面生成部6122によって生成された1番目のM3×T3個の仮想分割面St3のうちのT3個の仮想分割面St3である。2番目のT3個の仮想分割面St3は、対象部品の3Dモデル3dmの基準点Poを中心として、放射状の方向において相互に拡大および縮小された相似の関係の形状を有する。
図33には、
図17で示されたように、面集合体As1を構成している複数の仮想面St1のそれぞれが三角形の面である場合についての一具体例が示されている。
図33では、2番目の基準仮想カメラ位置Ps2が白抜きの丸印で示されている。
図33で示されるように、分割面生成部6122は、例えば、2番目の基準仮想分割面Ss2における3つの頂点と、2番目の基準仮想カメラ位置Ps2とを結ぶ3つの線分によって、2番目の基準仮想分割面Ss2を、2番目のM3個の仮想分割面としての3つの仮想分割面St3aに分割する。
【0211】
ここでは、対象部品の3Dモデル3dmの基準点Poから見た場合、2番目のT3個の仮想分割面St3のそれぞれは、基準点Poを中心とした放射状の方向において相互に拡大および縮小された相似の関係の形状を有する線で分割されることで、2番目のM3×T3個の仮想分割面St3aが生成される。これにより、2番目のT3個の仮想分割面St3においては、M3個の仮想分割面St3aのそれぞれについて、対象部品の3Dモデル3dmの基準点Poを中心として放射状の方向において相互に拡大および縮小された相似の関係の形状を有するT3個の仮想分割面St3aが存在する状態となる。
【0212】
図17で示されたように、面集合体As1を構成している複数の仮想面St1のそれぞれが三角形の面であれば、2番目のT3個の仮想分割面St3のそれぞれは、
図33で示された2番目の基準仮想分割面Ss2と同様に、3つの頂点と、第3仮想カメラ位置P13とをそれぞれ結ぶ3つの線分によって、3つの仮想分割面St3aに分割されてよい。これにより、2番目のT3個の仮想分割面St3のそれぞれは、3つの三角形の仮想分割面St3aに分割され得る。その結果、M3×T3個の仮想分割面としての2番目の3×T3個の仮想分割面St3aが生成される。
【0213】
<<<n番目の第2の場合>>>
第2検出部6125によって、n-1番目の基準仮想カメラ位置が、n番目の基準仮想カメラ位置として検出された場合には、上述したn-1番目のM3×T3個の第3仮想カメラ位置の何れよりも、n-1番目の基準仮想カメラ位置について、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)と参照形状情報との間における一致度が大きい。
【0214】
換言すれば、第1算出部6113または第2算出部6124によって算出されたn-1番目の基準仮想カメラ位置についての実形状情報と参照形状情報との間における一致度よりも、第n-1の単位処理において第2算出部6124によって算出されたn-1番目のM3×T3個の第3仮想カメラ位置の全てについての実形状情報と参照形状情報との間における一致度が小さい。より具体的には、例えば、第1算出部6113または第2算出部6124によって算出されたn-1番目の基準仮想カメラ位置についての実形状情報と参照形状情報との間における一致度を示すマッチングスコアよりも、第n-1の単位処理において第2算出部6124によって算出されたn-1番目のM3×T3個の第3仮想カメラ位置の全てについての実形状情報と参照形状情報との間における一致度を示すマッチングスコアが小さい。
【0215】
そこで、分割面生成部6122は、n-1番目の基準仮想カメラ位置を次の仮想分割面の分割の基準であるn番目の基準仮想カメラ位置として、n番目のM3×T3個の仮想分割面を生成する。これにより、例えば、2次探索処理において、参照形状情報と実形状情報との間における一致度がさらに大きくなる仮想カメラ位置を探索することができる。
【0216】
ここでは、分割面生成部6122は、n-1番目の基準仮想カメラ位置と同一であるn番目の基準仮想カメラ位置を包含する仮想分割面(n番目の基準仮想分割面)を含み且つ対象部品の3Dモデル3dmの基準点Poからの距離が相互に異なるn番目のT3個の仮想分割面のそれぞれを同一のルールで分割する。これにより、分割面生成部6122は、n番目のT3個の仮想分割面のそれぞれについてM3個の仮想分割面であるn番目のM3個の仮想分割面を生成することで、n番目のM3×T3個の仮想分割面を生成する。n番目のT3個の仮想分割面は、対象部品の3Dモデル3dmの基準点Poよりもn番目の基準仮想カメラ位置の側において該基準点Poと該n番目の基準仮想カメラ位置とを通る直線と交差している複数の仮想分割面である。
【0217】
ここで、n番目の基準仮想分割面は、所定のルールで設定される。
【0218】
例えば、変数nが2である場合には、M2×T2個の仮想分割面St2のそれぞれが三角形の面であれば、M2×T2個の仮想分割面St2のうちの1番目の基準仮想分割面Ss1が各辺の中点を結ぶ線で分割されることで生成される4個の三角形の仮想分割面のうち、2番目の基準仮想カメラ位置Ps2を包含する仮想分割面が、2番目の基準仮想分割面として設定されてよい。ここでも、各辺の中点は、例えば、各辺の中点から若干ずれた点であってもよい。
【0219】
また、例えば、変数nが3以上である場合には、n-2番目のM3×T3個の仮想分割面のそれぞれが三角形の面であれば、n-2番目のM3×T3個の仮想分割面のうちのn-1番目の基準仮想分割面が各辺の中点を結ぶ線で分割されることで生成される4個の三角形の仮想分割面のうち、n番目の基準仮想カメラ位置を包含する仮想分割面が、n番目の基準仮想分割面として設定されてよい。ここでも、各辺の中点は、例えば、各辺の中点から若干ずれた点であってもよい。
【0220】
図34および
図35は、それぞれ分割面生成部6122によってn番目のM3×T3個の仮想分割面の一例としての2番目のM3×T3個の仮想分割面St3aを生成する第2の具体例を説明するための図である。
図34および
図35には、上述したM2×T2個の仮想分割面St2のそれぞれが三角形の面である場合についての一具体例が示されている。
図34および
図35では、2番目の基準仮想カメラ位置Ps2が白抜きの丸印で示されている。
【0221】
ここでは、1番目の基準仮想分割面Ss1を分割することで生成された、M4個の仮想分割面のうち、2番目の基準仮想カメラ位置Ps2を包含する仮想分割面が、2番目の基準仮想分割面Ss2となる。ここで、M4個の仮想分割面のそれぞれは、仮想分割面St2が分割されることで生成された面であるため、再設定された仮想分割面St3とされる。例えば、
図34で示されるように、1番目の基準仮想分割面Ss1は、この1番目の基準仮想分割面Ss1の各辺の中点をそれぞれ結ぶ線で分割されることで、M4個としての4個の三角形の仮想分割面St3が生成される。そして、この4個の三角形の仮想分割面St3のうち、2番目の基準仮想カメラ位置Ps2を包含する仮想分割面St3が、2番目の基準仮想分割面Ss2となる。
【0222】
ここでは、上記のT3個の仮想分割面St2のそれぞれは、1番目の基準仮想分割面Ss1と同じルールで分割されることで、T3個の仮想分割面St2のそれぞれが、M4個の仮想分割面St3に分割される。別の観点から言えば、対象部品の3Dモデル3dmの基準点Poから見た場合、T3個の仮想分割面St2のそれぞれは、基準点Poを中心とした放射状の方向において相互に拡大および縮小された相似の関係の形状を有する線で分割されることで、M4個×T3個の仮想分割面St3が生成される。そして、2番目の基準仮想分割面Ss2を含む2番目のT3個の仮想分割面St3は、M4×T3個の仮想分割面St3のうちの一部であり、対象部品の3Dモデル3dmの基準点Poを中心として、放射状の方向において相互に拡大および縮小された相似の関係の形状を有する。
【0223】
例えば、上記のT3個の仮想分割面St2のそれぞれは、
図34で示された1番目の基準仮想分割面Ss1と同様に、各辺の中点をそれぞれ結ぶ線で分割されてよい。これにより、T3個の仮想分割面St2のそれぞれは、4個の三角形の仮想分割面St3に分割され得る。別の観点から言えば、対象部品の3Dモデル3dmの基準点Poから見た場合、T3個の仮想分割面St2のそれぞれは、基準点Poを中心とした放射状の方向において相互に拡大および縮小された相似の関係の形状を有する線で分割されることで、4個×T3個の仮想分割面St3が生成される。そして、2番目の基準仮想分割面Ss2を含む2番目のT3個の仮想分割面St3は、4×T3個の仮想分割面St3のうちの一部であり、対象部品の3Dモデル3dmの基準点Poを中心として、放射状の方向において相互に拡大および縮小された相似の関係の形状を有する。
【0224】
ここで、n番目のT3個の仮想分割面の分割に係る同一のルールは、例えば、上述したように、分割の対象である分割対象面の中心点と、この分割対象面の全ての頂点と、をそれぞれ結ぶ複数の線分によって、分割対象面を複数の面に分割するルールであってよい。例えば、変数nが2である場合には、2番目のT3個の仮想分割面St3のそれぞれが三角形であれば、2番目のT3個の仮想分割面St3のそれぞれは、3つの頂点と、所定の位置としての中心の位置(例えば、重心の位置)とをそれぞれ結ぶ3つの線分によって、M3個の仮想分割面である3つの仮想分割面に分割され得る。これにより、2番目のT3個の仮想分割面St3のそれぞれは、3つの三角形の仮想分割面に分割され得る。その結果、M3×T3個の仮想分割面としての2番目のM3×T3個の仮想分割面が生成される。
【0225】
図35では、2番目のT3個の仮想分割面St3のうちの2番目の基準仮想分割面Ss2の分割について示されている。2番目のT3個の仮想分割面St3は、対象部品の3Dモデル3dmの基準点Poを中心として、放射状の方向において相互に拡大および縮小された相似の関係の形状を有する。
図35で示されるように、分割面生成部6122は、例えば、2番目の基準仮想分割面Ss2における3つの頂点と、2番目の基準仮想カメラ位置Ps2とを結ぶ3つの線分によって、2番目の基準仮想分割面Ss2を、2番目のM3個の仮想分割面としての3つの仮想分割面St3aに分割する。
【0226】
ここでは、対象部品の3Dモデル3dmの基準点Poから見た場合、2番目のT3個の仮想分割面St3のそれぞれは、基準点Poを中心とした放射状の方向において相互に拡大および縮小された相似の関係の形状を有する線で分割されることで、2番目のM3×T3個の仮想分割面St3aが生成される。これにより、2番目のT3個の仮想分割面St3においては、M3個の仮想分割面St3aのそれぞれについて、対象部品の3Dモデル3dmの基準点Poを中心として放射状の方向において相互に拡大および縮小された相似の関係の形状を有するT3個の仮想分割面St3aが存在する状態となる。
【0227】
図17で示されたように、面集合体As1を構成している複数の仮想面St1のそれぞれが三角形の面であれば、2番目のT3個の仮想分割面St3のそれぞれは、
図35で示された2番目の基準仮想分割面Ss2と同様に、3つの頂点と、第2仮想カメラ位置P12とをそれぞれ結ぶ3つの線分によって、3つの仮想分割面St3aに分割されてよい。これにより、2番目のT3個の仮想分割面St3のそれぞれは、3つの三角形の仮想分割面St3aに分割され得る。その結果、M3×T3個の仮想分割面としての2番目のM3×T3個の仮想分割面St3aが生成される。
【0228】
また、例えば、変数nが3以上である場合には、n番目のT3個の仮想分割面のそれぞれが三角形であれば、n番目のT3個の仮想分割面のそれぞれは、3つの頂点と、所定の位置としての中心の位置(例えば、重心の位置)とをそれぞれ結ぶ3つの線分によって、n番目のM3個の仮想分割面である3つの仮想分割面に分割され得る。これにより、n番目のT3個の仮想面のそれぞれは、3つの三角形の仮想分割面に分割され得る。その結果、M3×T3個の仮想分割面としてのn番目のM3×T3個の仮想分割面が生成される。
【0229】
<<第nB処理>>
第nB処理は、第2形状情報生成部6123によって、記憶部45bに記憶された対象部品に関する三次元の設計情報に基づいて、n番目のM3×T3の仮想分割面のそれぞれに対して仮想的に設定されるM3×T3個の仮想カメラ位置(n番目の第3仮想カメラ位置ともいう)のそれぞれから対象部品の3Dモデル3dmを撮影する場合を想定して、n番目のM3×T3個の第3仮想カメラ位置のそれぞれについて、参照形状情報を生成する処理である。ここでも、参照形状情報は、対象部品に関する三次元の設計情報に基づいて生成される情報であって、仮想カメラ位置からの撮影で取得され得る仮想画像における対象部品の3Dモデル3dmの二次元形状に係る情報である。
【0230】
n番目のM3×T3個の仮想分割面のそれぞれでは、例えば、仮想分割面の所定の位置に第3仮想カメラ位置(n番目の第3仮想カメラ位置)が仮想的に設定される。所定の位置には、例えば、仮想分割面の中心の位置が適用される。仮想分割面の中心には、例えば、仮想分割面の重心が適用される。例えば、変数nが2の場合には、
図33または
図35で示されるように、各仮想分割面St3aに、第3仮想カメラ位置P13aが設定される。n番目のM3×T3個の仮想分割面のそれぞれが三角形の面であれば、仮想分割面の中心は、例えば、三角形の重心であってもよいし、内心であってもよい。
【0231】
第2形状情報生成部6123では、例えば、n番目のM3×T3個の第3仮想カメラ位置のそれぞれについて、第3仮想カメラ位置からの撮影で取得され得る仮想画像における対象部品の3Dモデル3dmの二次元形状に係る参照形状情報が生成される。このとき、各第3仮想カメラ位置から対象部品の3Dモデル3dmを撮影する仮想的なカメラによる撮影方向は、第3仮想カメラ位置から対象部品の3Dモデル3dmの基準点Poに向かう方向に設定される。第3仮想カメラ位置から対象部品の3Dモデル3dmを撮影する仮想的なカメラの姿勢を規定するロール角γは、例えば、ゼロ(0)度に設定される。
【0232】
<<第nC処理>>
第nC処理は、第2算出部6124によって、上記のn番目のM3×T3個の第3仮想カメラ位置のそれぞれについて、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)と、参照形状情報との間における一致度を示す数値を算出する処理である。
【0233】
第nC処理において、第2算出部6124では、例えば、第nB処理において第2形状情報生成部6123で取得された参照形状情報としてのリファレンス画像と、照合対象領域設定部6121で実形状情報としてのエッジ画像に設定された照合対象領域Re2(
図25)との間で、輪郭の二次元形状の一致度を示す数値を算出する。
【0234】
第nC処理において、第2算出部6124では、各第3仮想カメラ位置について、実形状情報としてのエッジ画像と参照形状情報としてのリファレンス画像との間で、一致度を示す数値を算出する際には、例えば、[処理2an]エッジ画像とリファレンス画像との間におけるロール角γのずれに対応する輪郭の二次元形状の向きのずれ量の検出を行う処理、[処理2bn]ロール角γのずれに応じたエッジ画像の回転を行う処理、ならびに[処理2cn]回転後のエッジ画像を対象としたリファレンス画像との一致度が最大である領域の位置の検出を行う処理、をこの記載の順に行う。
【0235】
上記処理2anは、上記処理2a1と同様に、例えば、実形状情報としてのエッジ画像と、参照形状情報としてのリファレンス画像との間で、RIPOC法を用いて、輪郭の二次元形状の向きのずれ量を検出する。この輪郭の二次元形状の向きのずれ量は、画像上における輪郭の回転方向のずれ量である。ここでは、例えば、RIPOC法によって、照合対象領域設定部6121で実形状情報としてのエッジ画像に設定された照合対象領域Re2(
図25)と、リファレンス画像との間で、輪郭の一致度が最も大きくなり得る回転方向におけるずれ量γ2nを算出する。このずれ量γ2nは、参照形状情報としてのリファレンス画像と実形状情報としてのエッジ画像との間における一致度がより大きくなり得るロール角γに相当する。
【0236】
上記処理2bnでは、上記処理2b1と同様に、例えば、実形状情報としてのエッジ画像を、上記処理2anで検出されたずれ量γ2nを補正するように回転させる。これにより、回転後のエッジ画像が生成され、実形状情報としてのエッジ画像における輪郭の二次元形状と、参照形状情報としてのリファレンス画像における輪郭の二次元形状との間で、向きを整合させる。ここでは、例えば、照合対象領域Re2のエッジ画像を、上記処理2anで検出されたずれ量γ2nを補正するように回転させる。これにより、回転後のエッジ画像が生成され、実形状情報を構成する照合対象領域Re2における輪郭の二次元形状と、参照形状情報としてのリファレンス画像における輪郭の二次元形状との間で、向きの一致を図る。
【0237】
上記処理2cnでは、上記処理2c1と同様に、例えば、上記処理2bnで生成した実形状情報に係る回転後のエッジ画像を対象として、参照形状情報としてのリファレンス画像を用いたテンプレートマッチングを行う。ここでは、例えば、回転後のエッジ画像内でリファレンス画像を走査し、回転後のエッジ画像内の各部分領域とリファレンス画像との一致度(類似度)が最大となる領域の位置を検出する。これにより、実形状情報としてのエッジ画像において、リファレンス画像における対象部品の3Dモデル3dmの輪郭の二次元形状との一致度が最大である領域の位置(マッチング候補位置)が検出され得る。また、ここで、上記のテンプレートマッチングを行う際には、回転後のエッジ画像内の部分領域とリファレンス画像との一致度(類似度)が最大となる場合における一致度(類似度)を示す数値が、第3仮想カメラ位置についての、実形状情報としてのエッジ画像と参照形状情報としてのリファレンス画像との間における一致度を示す数値として算出される。ここでも、一致度を示す数値は、例えば、一致度を示すマッチングスコアであってよい。
【0238】
<<第nD処理>>
第nD処理は、第2検出部6125によって、上記のn番目の基準仮想カメラ位置ならびに上記のn番目のM3×T3個の第3仮想カメラ位置のうち、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)と参照形状情報との間における一致度が最も大きな仮想カメラ位置を検出する処理である。
【0239】
ここでは、例えば、n番目の基準仮想カメラ位置について算出されたマッチングスコア、ならびに第nC処理において第2算出部6124によって算出されたn番目のM3×T3個の第3仮想カメラ位置についてそれぞれ算出されたマッチングスコア、が比較される。そして、例えば、n番目の基準仮想カメラ位置およびn番目のM3×T3個の第3仮想カメラ位置のうち、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)と参照形状情報との間について算出されたマッチングスコアが最も大きくなった仮想カメラ位置が検出される。
【0240】
<<単位処理の繰り返しによる効果>>
上述したように、単位処理を繰り返して実行する際には、実形状情報と参照形状情報との間における一致度が最も大きくなる仮想カメラ位置を包含する仮想分割面を含み且つ対象部品の3Dモデル3dmの基準点Poからの距離が相互に異なる複数の仮想分割面をそれぞれ同一のルールで分割して、次回の仮想カメラ位置を設定する複数の仮想分割面を生成する。これにより、分割前の仮想分割面と、分割後の仮想分割面とは無関係な面ではなく、分割後の仮想分割面については数および面積のうちの少なくとも1つの増大が低減され得る。これにより、実画像で捉えられた対象部品の姿勢を認識するための計算量が低減され得る。その結果、基板処理装置1において、対象部品の姿勢の認識を効率良く行うことができる。
【0241】
<<1回以上の第nの単位処理の終了>>
探索処理部61は、例えば、第2検出部6125によって、1番目の基準仮想カメラ位置Ps1からn番目の基準仮想カメラ位置のうちの1つの基準仮想カメラ位置が、実形状情報と参照形状情報との間における一致度が最も大きな仮想カメラ位置として、予め設定された所定回数(第1所定回数ともいう)連続して検出されたことに応答して、1回以上の第nの単位処理の実行を終了する。第1所定回数は、例えば、2回以上の任意の回数に設定されてよい。この場合には、2次探索処理において、単位処理をある程度繰り返して行っても、参照形状情報と実形状情報との間における一致度がより大きくなる仮想カメラ位置が検出されなければ、単位処理の繰り返しの実行が終了される。これにより、計算量の低減によって、対象部品の姿勢の認識を効率良く行うことができる。
【0242】
また、例えば、探索処理部61は、第nの単位処理を、予め設定された所定回数(第2所定回数ともいう)実行したことに応答して、1回以上の第nの単位処理の実行を終了してもよい。第2所定回数は、例えば、1回以上の任意の回数に設定されてよい。これにより、計算量の低減によって、対象部品の姿勢の認識を効率良く行うことができる。
【0243】
ここで、探索処理部61は、例えば、実行された1回以上の第nの単位処理における最後の第nD処理において第2検出部6125によって検出された実形状情報と参照形状情報との間における一致度が最も大きな仮想カメラ位置(最高一致度仮想カメラ位置ともいう)について、この最高一致度仮想カメラ位置を規定する経度α、経度βおよび距離Dと、第2算出部6124で算出したずれ量γ2nに対応するロール角γと、を探索処理の結果として取得することができる。これにより、実画像で捉えられた対象部品の姿勢が認識され得る。ここでは、探索処理部61は、例えば、探索処理の結果としての、最高一致度仮想カメラ位置を規定する経度α、経度βおよび距離D、ならびに最高一致度仮想カメラ位置について第2算出部6124で算出されたずれ量γ2nに対応するロール角γを、対象部品の姿勢に係る情報(現実情報)として認識してよい。この場合には、例えば、異常検出部63で用いる、対象部品の状態が正常である場合の三次元の設計情報に基づく対象部品の姿勢に係る情報(正常情報)も、経度α、経度β、距離D、ならびにロール角γについての情報であってよい。
【0244】
換言すれば、探索処理部61は、例えば、実行された1回以上の第nの単位処理における最後の第nD処理において第2検出部6125によってn+1番目に検出された実形状情報と参照形状情報との間における一致度が最も大きな仮想カメラ位置に基づいて、異常検出部63で用いるための対象部品の姿勢に係る情報(現実情報)を認識してよい。これにより、対象部品の姿勢に係る現実情報の認識を効率良く行うことができるため、対象部品の異常の検出を効率良く行うことができる。
【0245】
また、探索処理部61は、例えば、最高一致度仮想カメラ位置について、第2算出部6124によって検出された、実形状情報としてのエッジ画像内において参照形状情報としてのリファレンス画像との一致度(類似度)が最大となったマッチング候補位置(最終マッチング位置ともいう)を、探索処理の結果の一部として取得してもよい。
【0246】
<4.基板処理装置における処理の具体例>
次に、
図36から
図46を参照して、基板処理装置1における処理の具体例について説明する。
図36は、基板処理装置1における処理の概略的な流れの具体例を示す流れ図である。
図37は、
図36のステップS3およびステップS10における画像処理の流れの具体例を示す流れ図である。
図38は、
図36のステップS4およびステップS11の探索処理における処理の流れの具体例を示す流れ図である。
図39は、
図38のステップSb1の1次探索処理における処理の流れの具体例を示す流れ図である。
図40から
図42は、
図38のステップSb2の2次探索処理における処理の流れの具体例を示す流れ図である。
図43は、対象部品が原点位置に移動した状態の一例を模式的に示す図である。
図44および
図45は、チャック9の異常の検出を説明するための図である。
図46は、ノズル33およびガード23の異常の検出を説明するための図である。
【0247】
オペレータは、予め指示部47を操作して、レシピ情報53内のレシピの実行を指示する。動作制御部51は、実行が指示されたレシピに応じて各部の動作を制御して各基板Wに対する処理を進める。このとき、
図36のステップS1からステップS18の処理が行われる。
【0248】
<<ステップS1>>
ステップS1では、対象部品が原点位置に移動する。ここでは、動作制御部51が、チャック駆動機構17、ガード移動機構25およびノズル移動機構35の動作を制御する。
【0249】
動作制御部51は、チャック動作指令によってチャック駆動機構17を動作させて、チャック9を原点位置に移動させる。ここでは、チャック9は、下面支持部11上に基板Wが載置されていない状態で、チャック動作指令に応じて、回転中心PL2を中心として回転し、周縁支持部13がスピンチャック3の回転中心PL1側の原点位置に移動する。このとき原点センサZ1の出力信号がオンとなる。動作制御部51は、原点センサZ1の出力信号により、チャック9が原点位置に移動したことを認識する。
図44では、チャック9が原点位置に位置している状態が実線で示されており、下面支持部11上に基板Wが載置された場合における基板Wの外縁の位置が細い二点鎖線で示されている。ここでは、下面支持部11上に基板Wが載置された場合における基板Wの外縁よりも若干回転中心PL1側の円に接する位置に各チャック9の周縁支持部13が移動する。
【0250】
動作制御部51は、ガード動作指令によってガード移動機構25を動作させて、ガード23を原点位置に移動させる。ここでは、ガード23は、下降した原点位置に移動する。このとき原点センサZ2の出力がオンとなる。動作制御部51は、原点センサZ2の出力信号により、ガード23が原点位置に移動したことを認識する。
図43では、ガード23が原点位置に位置している状態が実線で示されており、ガード23が処理位置に位置している状態が細い二点鎖線で示されている。
【0251】
動作制御部51は、ノズル動作指令によってノズル移動機構35を動作させて、ノズル33を原点位置に移動させる。ここでは、ノズル33は、回転中心PL3を中心として回転し、ガード23から側方に外れた原点位置に先端部33cが移動する。このとき原点センサZ3の出力がオンとなる。動作制御部51は、原点センサZ3の出力信号により、ノズル33が原点位置に移動したことを認識する。
図43では、ノズル33の先端部33cが原点位置に位置している状態が実線で示されており、ノズル33の先端部33cが吐出位置に位置している状態が細い二点鎖線で示されている。
【0252】
<<ステップS2>>
ステップS2では、カメラCMによる撮影を行う。ここでは、動作制御部51は、複数の対象部品としてのノズル33、チャック9およびガード23のそれぞれが原点位置に移動したことをトリガとして、カメラCMにより撮影を行わせる。具体的には、複数の対象部品としてのノズル33、チャック9およびガード23を対象とした撮影を行う。
【0253】
<<ステップS3>>
ステップS3では、画像処理部59が、ステップS2におけるカメラCMによる撮影で取得された実画像に画像処理を施す。このステップS3では、
図37のステップSa1からステップSa4の処理が順に行われる。
【0254】
ステップSa1では、画像処理部59が、ステップS2の撮影で得られた実画像をカメラCMから取得する。このステップSa1は、本発明のうち、演算部45aによってカメラCMによる撮影によって得られた対象部品を捉えた実画像を取得するステップ(実画像取得ステップともいう)に相当する。
【0255】
ステップSa2では、画像処理部59の処理対象領域抽出部591が、実画像に対して処理対象領域を設定する。ここでは、対象部品ごとに処理対象領域が設定される。
【0256】
ステップSa3では、画像処理部59の処理対象領域抽出部591が、実画像から処理対象領域に係る部分を画像(処理対象実画像)として抽出する。
【0257】
ステップSa4では、画像処理部59の輪郭抽出部592が、処理対象実画像で捉えられている全ての部品について、輪郭を抽出する処理を行う。これにより、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)としてのエッジ画像が取得される。より具体的には、ノズル33を含む物体の二次元形状に係る情報(実形状情報)としてのエッジ画像が取得される。チャック9を含む物体の二次元形状に係る情報(実形状情報)としてのエッジ画像が取得される。ガード23を含む物体の二次元形状に係る情報(実形状情報)としてのエッジ画像が取得される。
【0258】
<<ステップS4>>
ステップS4では、探索処理部61が、各対象部品について探索処理を行う。より具体的には、ノズル33、チャック9およびガード23のそれぞれについて探索処理が行われる。
【0259】
ここでは、探索処理部61が、複数の参照形状情報と実形状情報とに基づいて、複数の仮想カメラ位置のうち、参照形状情報と実形状情報との間における一致度が最も大きな仮想カメラ位置を探索する探索処理を行う。ここで、複数の参照形状情報は、記憶部45bに記憶された対象部品に関する三次元の設計情報に基づいてそれぞれ生成される情報であって、複数の仮想カメラ位置からの対象部品の3Dモデル3dmの撮影で取得され得る複数の仮想画像のそれぞれにおける対象部品の3Dモデル3dmの二次元形状に係る情報である。1つの参照形状情報は、1つの対象部品に関する三次元の設計情報に基づいて生成される情報であって、1つの仮想カメラ位置からの撮影で取得され得る仮想画像における対象部品の3Dモデル3dmの二次元形状に係る情報である。このステップS4は、本発明のうちの演算部45aによって行われる探索ステップに相当する。
【0260】
このステップS4では、各対象部品について、
図38のステップSb1の処理と、ステップSb2の処理とが順に行われる。ステップSb1では、第1探索処理部611が、1次探索処理を行う。より具体的には、ステップSb1では、
図39のステップSb11からステップSb14の処理が行われる。ステップSb2では、第2探索処理部612が、2次探索処理を行う。より具体的には、ステップSb2では、
図40のステップSb21からステップSb25の処理、
図41のステップSb31からステップSb34の処理、および
図42のステップSb41からステップSb48の処理が行われる。ここで、
図41のステップSb31からステップSb34の処理は、上述した第1の単位処理に対応している。
図42のステップSb42からステップSb45の処理は、上述した第nの単位処理に対応している。
【0261】
<<<ステップSb1>>>
<<<<ステップSb11>>>>
ステップSb11では、密集度判定部6111が、ステップSa4で取得された実形状情報としてのエッジ画像について、部品の輪郭の密集度が低い領域(低密集度領域)を判定する。この密集度判定部6111における判定結果は、第1算出部6113および第2算出部6124における処理に利用される。例えば、第1算出部6113および第2算出部6124における処理において、実形状情報としてのエッジ画像のうちの低密集度領域については、一致度を示す数値の算出を行うための計算の対象外とすることで、探索処理に要する計算量が低減され得る。
【0262】
<<<<ステップSb12>>>>
ステップSb12では、第1形状情報取得部6112が、記憶部45bに記憶された対象部品に関する三次元の設計情報に基づいて、複数の仮想カメラ位置(第1仮想カメラ位置)P11のそれぞれから対象部品の3Dモデル3dmを撮影する場合を想定して、複数の第1仮想カメラ位置P11のそれぞれについて生成した、参照形状情報を取得する。複数の第1仮想カメラ位置P11は、対象部品の3Dモデル3dmの基準点Poを中心としてこの対象部品の3Dモデル3dmを囲む仮想的な球面に沿って位置する複数の仮想面St1を含む面の集合体(面集合体)As1を仮想的に設定した場合に、複数の仮想面St1のそれぞれに対して仮想的に設定される複数の仮想カメラ位置である。参照形状情報は、対象部品に関する三次元の設計情報に基づいて生成される情報であって、仮想カメラ位置からの撮影で取得され得る仮想画像における対象部品の3Dモデル3dmの二次元形状に係る情報である。参照形状情報は、具体的には、リファレンス画像である。このステップSb12は、本発明のうちの第1形状情報取得ステップに相当する。
【0263】
より具体的には、ステップSb12では、第1形状情報取得部6112が、記憶部45bに記憶された対象部品に関する三次元の設計情報に基づいて、M1×T1個(M1およびT1の何れも2以上の自然数)の第1仮想カメラ位置P11のそれぞれから対象部品の3Dモデル3dmを撮影する場合を想定して、M1×T1個の第1仮想カメラ位置P11のそれぞれについて生成した、参照形状情報を取得する。M1×T1個の第1仮想カメラ位置P11は、対象部品の3Dモデル3dmの基準点Poからの距離が相互に異なるT1個の面集合体As1を仮想的に設定し、且つこのT1個の面集合体As1のそれぞれにおけるM1個の仮想面St1のそれぞれに対して仮想的に設定される複数の仮想カメラ位置である。参照形状情報は、対象部品に関する三次元の設計情報に基づいて生成される情報であって、第1仮想カメラ位置P11からの撮影で取得され得る仮想画像における対象部品の3Dモデル3dmの二次元形状に係る情報である。
【0264】
ここで、各仮想面St1では、仮想面St1の所定の位置に第1仮想カメラ位置P11が仮想的に設定される。所定の位置には、仮想面St1の中心の位置が適用されてよい。仮想面の中心には、仮想面の重心が適用されてよい。面集合体As1は、多数の三角形の仮想面で構成された多面体であってよい。ここでは、
図13で示されたように、対象部品に関する三次元の設計情報に基づいて仮想的に生成される対象部品の3Dモデル3dmの基準点Poを原点とした右手系のxyz座標を設定することで、複数の仮想面St1の位置および姿勢などが規定される。さらに、x軸を中心とした回転方向における角度(緯度)αと、z軸を中心とした回転方向における角度(経度)βと、原点からの距離Dと、によって、複数の第1仮想カメラ位置P11のそれぞれ位置が規定される。
【0265】
ステップSb12では、第1形状情報取得部6112は、例えば、記憶部45bに記憶された対象部品に関する三次元の設計情報に基づいて、複数の第1仮想カメラ位置P11を設定するとともに、複数の第1仮想カメラ位置P11のそれぞれについて参照形状情報を生成することで、複数の第1仮想カメラ位置P11のそれぞれについて生成された参照形状情報を取得してよい。
【0266】
<<<<ステップSb13>>>>
ステップSb13では、第1算出部6113が、複数の第1仮想カメラ位置P11のそれぞれについて、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)としてのエッジ画像と、参照形状情報としてのリファレンス画像との間における一致度を示す数値を算出する。このステップSb13は、本発明のうちの第1算出ステップに相当する。
【0267】
より具体的には、ステップSb13では、第1算出部6113が、上述したM1×T1個の第1仮想カメラ位置のそれぞれについて、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)としてのエッジ画像と、参照形状情報としてのリファレンス画像との間における一致度を示す数値を算出する。
【0268】
ここでは、第1算出部6113は、各第1仮想カメラ位置P11について、実形状情報としてのエッジ画像と参照形状情報としてのリファレンス画像との間で、一致度を示す数値を算出する際には、例えば、上述した処理1a、処理1b、および処理1cをこの記載の順に行う。具体的には、ステップSb13では、第1算出部6113によって、ステップSb131からステップSb135の処理が行われる。ステップSb132の処理が上述した処理1aに相当し、ステップSb133の処理が上述した処理1bに相当し、ステップSb134の処理が上述した処理1cに相当する。
【0269】
ステップSb131では、第1算出部6113が、ステップSb12で取得された複数の第1仮想カメラ位置P11のそれぞれについての参照形状情報としてのリファレンス画像のうち、1つの第1仮想カメラ位置P11およびその1つの第1仮想カメラ位置P11に係る参照形状情報としてのリファレンス画像をステップSb132からステップSb134の処理の対象として指定する。
【0270】
ステップSb132では、第1算出部6113が、例えば、実形状情報としてのエッジ画像と、参照形状情報としてのリファレンス画像との間で、RIPOC法を用いて、輪郭の二次元形状の向きのずれ量を検出する。ここでは、例えば、
図21で示されるように、画像処理部59から入力された実形状情報としてのエッジ画像Ir3を、複数の比較対象領域Re1に分けた上で、比較対象領域Re1ごとに、RIPOC法によって、リファレンス画像との間で、輪郭の一致度が最も大きくなり得る回転方向におけるずれ量γ1を算出する。このずれ量γ1は、参照形状情報としてのリファレンス画像と実形状情報としてのエッジ画像との間における一致度がより大きくなり得るロール角γに相当する。ここでは、複数の比較対象領域Re1のうち、リファレンス画像との間で、輪郭の一致度が最も大きくなり得る1つの比較対象領域Re1と、この1つの比較対象領域Re1とリファレンス画像との間で輪郭の一致度が最も大きくなり得る回転方向におけるずれ量γ1と、が検出される。
【0271】
ステップSb133では、第1算出部6113が、例えば、実形状情報としてのエッジ画像を、ステップSb132で検出されたずれ量γ1を補正するように回転させる。これにより、回転後のエッジ画像が生成され、実形状情報としてのエッジ画像における輪郭の二次元形状と、参照形状情報としてのリファレンス画像における輪郭の二次元形状との間で、向きを整合させる。ここでは、例えば、ステップSb132で検出された比較対象領域Re1のエッジ画像を、上記ステップSb132で検出されたずれ量γ1を補正するように回転させる。これにより、回転後のエッジ画像が生成され、実形状情報を構成する比較対象領域Re1における輪郭の二次元形状と、参照形状情報としてのリファレンス画像における輪郭の二次元形状との間で、向きの一致を図る。
【0272】
ステップSb134では、第1算出部6113が、例えば、ステップSb133で生成された実形状情報に係る回転後のエッジ画像を対象として、参照形状情報としてのリファレンス画像を用いたテンプレートマッチングを行う。ここでは、例えば、回転後のエッジ画像内でリファレンス画像を走査し、回転後のエッジ画像内の各部分領域とリファレンス画像との一致度(類似度)が最大となる領域の位置を検出する。これにより、実形状情報としてのエッジ画像において、リファレンス画像における対象部品の3Dモデル3dmの輪郭の二次元形状と一致度が最大となる領域の位置(マッチング候補位置)が検出される。ここで、上記のテンプレートマッチングを行う際には、回転後のエッジ画像内の部分領域とリファレンス画像との一致度(類似度)が最大となる場合における一致度(類似度)を示す数値が、第1仮想カメラ位置P11についての、実形状情報としてのエッジ画像と参照形状情報としてのリファレンス画像との間における一致度を示す数値として算出される。ここでも、一致度を示す数値は、例えば、上述した公知の一致度を示すマッチングスコアであってよい。
【0273】
ステップSb135では、第1算出部6113が、ステップSb12で取得された複数の第1仮想カメラ位置P11のそれぞれについての参照形状情報のうち、ステップSb132からステップSb134の処理の対象として未だに指定されてない、第1仮想カメラ位置P11およびその第1仮想カメラ位置P11に係る参照形状情報があるか否か判定する。ここで、ステップSb132からステップSb134の処理の対象として未だに指定されてない、第1仮想カメラ位置P11およびその第1仮想カメラ位置P11に係る参照形状情報があれば、ステップSb131に戻って、第1算出部6113が、ステップSb12で取得された複数の第1仮想カメラ位置P11のそれぞれについての参照形状情報のうち、次の1つの第1仮想カメラ位置P11およびその1つの第1仮想カメラ位置P11に係る参照形状情報をステップSb132からステップSb134の処理の対象として指定する。一方、ステップSb132からステップSb134の処理の対象として未だに指定されてない、第1仮想カメラ位置P11およびその第1仮想カメラ位置P11に係る参照形状情報がなければ、ステップS14へ移行する。
【0274】
つまり、第1算出部6113は、ステップSb12で取得された複数の第1仮想カメラ位置P11のそれぞれについての参照形状情報において、ステップSb132からステップSb134の処理の対象として未だに指定されてない、第1仮想カメラ位置P11およびその第1仮想カメラ位置P11に係る参照形状情報がなくなるまで、ステップSb131からステップSb135の処理を繰り返す。これにより、第1算出部6113は、各第1仮想カメラ位置P11について、実形状情報としてのエッジ画像と、参照形状情報としてのリファレンス画像との間における一致度を示す数値を算出する。
【0275】
<<<<ステップSb14>>>>
ステップSb14では、第1検出部6114が、ステップSb13における算出結果に基づいて、複数の第1仮想カメラ位置P11のうち、実形状情報としてのエッジ画像と参照形状情報としてのリファレンス画像との間における一致度が最も大きな第1仮想カメラ位置P11である高一致度仮想カメラ位置P11mを検出する。ここでは、例えば、複数の第1仮想カメラ位置P11のうち、ステップSb13において実画像で捉えられた物体の二次元形状に係る情報(実形状情報)としてのエッジ画像と参照形状情報としてのリファレンス画像との間について算出されたマッチングスコアが最も大きくなった第1仮想カメラ位置P11が高一致度仮想カメラ位置として検出される。このステップSb14は、本発明のうちの第1検出ステップに相当する。
【0276】
より具体的には、ステップSb14では、第1検出部6114が、ステップSb13における算出結果に基づいて、M1×T1個の第1仮想カメラ位置P11のうち、実形状情報と参照形状情報との間における一致度が最も大きな仮想カメラ位置である高一致度仮想カメラ位置P11mを検出する。ここでは、例えば、M1×T1個の第1仮想カメラ位置P11のうち、ステップSb13において実画像で捉えられた物体の二次元形状に係る情報(実形状情報)としてのエッジ画像と参照形状情報としてのリファレンス画像との間について算出されたマッチングスコアが最も大きくなった第1仮想カメラ位置P11である高一致度仮想カメラ位置P11mが検出される。
【0277】
このステップSb14では、第1検出部6114は、高一致度仮想カメラ位置P11mを検出する際に、ステップSb13において高一致度仮想カメラ位置P11mについて検出されたマッチング候補位置を対象部品候補位置として併せて検出する。
【0278】
<<<ステップSb2>>>
<<<<ステップSb21>>>>
ステップSb21では、第2探索処理部612の照合対象領域設定部6121が、ステップSb14において検出された対象部品候補位置に基づいて、ステップSa4で取得された実形状情報としてのエッジ画像のうちのステップSb24における照合の処理に用いる領域(照合対象領域)を設定する。ここでは、エッジ画像に対して、対象部品候補位置を包含し、且つ対象部品候補位置よりも大きなサイズの領域が、照合対象領域として設定される。
【0279】
<<<<ステップSb22>>>>
ステップSb22では、分割面生成部6122が、面集合体As1を構成しており且つ対象部品の3Dモデル3dmの基準点Poを中心としてこの対象部品の3Dモデル3dmを囲む仮想的な球面に沿って位置する複数の仮想面St1のうち、ステップSb13で検出された高一致度仮想カメラ位置P11mが仮想的に設定された仮想面(高一致度仮想面)St1mを分割することで、複数の仮想面(仮想分割面)St2を生成する。ここでは、複数の仮想面St1は、ステップSb12の処理で用いた複数の仮想面St1である。複数の仮想面St1のそれぞれが三角形の面であれば、高一致度仮想面St1mは、この高一致度仮想面St1mにおける3つの頂点と高一致度仮想カメラ位置とをそれぞれ結ぶ3つの線分によって、複数の分割後の仮想面(仮想分割面)St2としての3つの仮想分割面St2に分割される。このステップSb22は、本発明のうちの分割面生成ステップに相当する。
【0280】
より具体的には、ステップSb22では、分割面生成部6122が、T1個の面集合体As1のそれぞれにおけるM1個の仮想面St1のうち、高一致度仮想面St1mを含み且つ対象部品の3Dモデル3dmの基準点Poからの距離が相互に異なるT2個の仮想面St1のそれぞれを同一のルールで分割する。これにより、分割面生成部6122は、T2個の仮想面St1のそれぞれについてM2個の仮想分割面St2を生成することで、M2×T2個の仮想分割面St2を生成する。ここで、T2個の仮想面St1は、対象部品の3Dモデル3dmの基準点Poよりも高一致度仮想カメラ位置P11mの側において該基準点Poと該高一致度仮想カメラ位置P11mとを通る直線と交差している複数の仮想面である。
【0281】
ここでは、T2個の仮想面St1は、対象部品の3Dモデル3dmの基準点Poを中心として、放射状の方向において相互に拡大および縮小された相似の関係の形状を有する。対象部品の3Dモデル3dmの基準点Poから見た場合、T2個の仮想面St1のそれぞれは、基準点Poを中心とした放射状の方向において相互に拡大および縮小された相似の関係の形状を有する線で分割されることで、M2×T2個の仮想分割面St2が生成される。これにより、T2個の仮想面St1においては、M2個の仮想分割面St2のそれぞれについて、対象部品の3Dモデル3dmの基準点Poを中心として放射状の方向において相互に拡大および縮小された相似の関係の形状を有するT2個の仮想分割面St2が存在する状態となる。T2個は、T1個と同一であってよいし、T1個未満であってもよい。上述したT2個の仮想面St1の分割に係る同一のルールは、例えば、分割の対象である分割対象面の中心点と、この分割対象面の全ての頂点と、をそれぞれ結ぶ複数の線分によって、分割対象面を複数の面に分割するルールであってよい。複数の仮想面St1のそれぞれが三角形の面であれば、T2個の仮想面St1のそれぞれは、高一致度仮想面St1mと同様に、3つの頂点と、第1仮想カメラ位置P11とをそれぞれ結ぶ3つの線分によって、3つの仮想分割面St2に分割されてよい。これにより、T2個の仮想面St1のそれぞれは、3つの三角形の仮想分割面St2に分割される。
【0282】
<<<<ステップSb23>>>>
ステップSb23では、第2形状情報生成部6123が、記憶部45bに記憶された対象部品に関する三次元の設計情報に基づいて、複数の仮想分割面St2に設定される複数の仮想カメラ位置(第2仮想カメラ位置)P12のそれぞれから対象部品の3Dモデル3dmを撮影する場合を想定して、複数の第2仮想カメラ位置P12のそれぞれについて、参照形状情報を生成する。ここでも、参照形状情報は、対象部品に関する三次元の設計情報に基づいて生成される情報であって、仮想カメラ位置からの撮影で取得され得る仮想画像における対象部品の3Dモデル3dmの二次元形状に係る情報である。参照形状情報の具体例は、リファレンス画像である。このステップSb23は、本発明のうちの第2形状情報生成ステップに相当する。
【0283】
より具体的には、ステップSb23では、第2形状情報生成部6123が、記憶部45bに記憶された対象部品に関する三次元の設計情報に基づいて、M2×T2個の第2仮想カメラ位置P12のそれぞれから対象部品の3Dモデル3dmを撮影する場合を想定して、M2×T2個の第2仮想カメラ位置P12のそれぞれについて、参照形状情報を生成する。M2×T2個の第2仮想カメラ位置P12は、ステップSb22で生成されたM2×T2個の仮想分割面St2のそれぞれに対して仮想的に設定されるM2×T2個の仮想カメラ位置である。ここでも、参照形状情報は、対象部品に関する三次元の設計情報に基づいて生成される情報であって、第2仮想カメラ位置P12からの撮影で取得され得る仮想画像における対象部品の3Dモデル3dmの二次元形状に係る情報である。
【0284】
ここで、各仮想分割面St2では、仮想分割面St2の所定の位置に第2仮想カメラ位置P12が仮想的に設定される。所定の位置には、仮想分割面St2の中心の位置が適用されてよい。仮想分割面St2の中心には、仮想分割面St2の重心が適用されてよい。複数の仮想分割面St2は三角形の面であってよい。
【0285】
<<<<ステップSb24>>>>
ステップSb24では、第2算出部6124が、複数の第2仮想カメラ位置P12のそれぞれについて、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)としてのエッジ画像と、参照形状情報としてのリファレンス画像との間における一致度を示す数値を算出する。このステップSb24は、本発明のうちの第2算出ステップに相当する。
【0286】
上記のようにして、複数の仮想面St1のうちのステップSb14で検出した高一致度仮想カメラ位置P11mが設定された仮想面(高一致度仮想面)St1mを分割することで生成した複数の仮想面(仮想分割面)St2のそれぞれに第2仮想カメラ位置P12を設定し、各第2仮想カメラ位置P12について、実形状情報と参照形状情報との間における一致度を示す数値を算出する。このため、高一致度仮想面St1mと複数の仮想分割面St2とは無関係な面ではなく、複数の仮想分割面St2については数および面積のうちの少なくとも1つの増大が低減され得る。これにより、実画像で捉えられた対象部品の姿勢を認識するための計算量が低減され得る。その結果、基板処理装置1において、対象部品の姿勢の認識を効率良く行うことができる。
【0287】
より具体的には、ステップSb24では、第2算出部6124が、上記のM2×T2個の第2仮想カメラ位置P12のそれぞれについて、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)としてのエッジ画像と、参照形状情報としてのリファレンス画像との間における一致度を示す数値を算出する。
【0288】
ここでは、第2算出部6124は、各第2仮想カメラ位置P12について、実形状情報としてのエッジ画像と参照形状情報としてのリファレンス画像との間で、一致度を示す数値を算出する際には、例えば、上述した処理2a、処理2b、および処理2cをこの記載の順に行う。具体的には、ステップSb24では、第2算出部6124によって、ステップSb241からステップSb245の処理が行われる。ステップSb242の処理が上述した処理2aに相当し、ステップSb243の処理が上述した処理2bに相当し、ステップSb244の処理が上述した処理2cに相当する。
【0289】
ステップSb241では、第2算出部6124が、ステップSb23で生成された複数の第2仮想カメラ位置P12のそれぞれについての参照形状情報としてのリファレンス画像のうち、1つの第2仮想カメラ位置P12およびその1つの第2仮想カメラ位置P12に係る参照形状情報としてのリファレンス画像をステップSb242からステップSb244の処理の対象として指定する。
【0290】
ステップSb242では、例えば、第2算出部6124が、実形状情報としてのエッジ画像と、参照形状情報としてのリファレンス画像との間で、RIPOC法を用いて、輪郭の二次元形状の向きのずれ量を検出する。ここでは、例えば、実形状情報としてのエッジ画像のうちのステップSb21で設定された照合対象領域と、リファレンス画像との間で、輪郭の一致度が最も大きくなり得る回転方向におけるずれ量γ2を検出する。このずれ量γ2は、参照形状情報としてのリファレンス画像と実形状情報としてのエッジ画像との間における一致度がより大きくなり得るロール角γに相当する。
【0291】
ステップSb243では、例えば、第2算出部6124が、実形状情報としてのエッジ画像を、ステップSb242で検出されたずれ量γ2を補正するように回転させる。これにより、回転後のエッジ画像が生成され、実形状情報としてのエッジ画像における輪郭の二次元形状と、参照形状情報としてのリファレンス画像における輪郭の二次元形状との間で、向きを整合させる。ここでは、例えば、ステップSb21で設定された照合対象領域のエッジ画像を、上記ステップSb242で検出されたずれ量γ2を補正するように回転させる。これにより、回転後のエッジ画像が生成され、実形状情報を構成する照合対象領域における輪郭の二次元形状と、参照形状情報としてのリファレンス画像における輪郭の二次元形状との間で、向きの一致を図る。
【0292】
ステップSb244では、例えば、第2算出部6124が、ステップSb243で生成された実形状情報に係る回転後のエッジ画像を対象として、参照形状情報としてのリファレンス画像を用いたテンプレートマッチングを行う。ここでは、例えば、回転後のエッジ画像内でリファレンス画像を走査し、回転後のエッジ画像内の各部分領域とリファレンス画像との一致度(類似度)が最大となる領域の位置を検出する。これにより、実形状情報としてのエッジ画像において、リファレンス画像における対象部品の3Dモデル3dmの輪郭の二次元形状と一致度が最大となる領域の位置(マッチング候補位置)が検出される。ここで、上記のテンプレートマッチングを行う際には、回転後のエッジ画像内の部分領域とリファレンス画像との一致度(類似度)が最大となる場合における一致度(類似度)を示す数値が、第2仮想カメラ位置P12についての、実形状情報としてのエッジ画像と参照形状情報としてのリファレンス画像との間における一致度を示す数値として算出される。ここでも、一致度を示す数値は、例えば、上述した公知の一致度を示すマッチングスコアであってよい。
【0293】
ステップSb245では、第2算出部6124が、ステップSb23で取得された複数の第2仮想カメラ位置P12のそれぞれについての参照形状情報のうち、ステップSb242からステップSb244の処理の対象として未だに指定されてない、第2仮想カメラ位置P12およびその第2仮想カメラ位置P12に係る参照形状情報があるか否か判定する。ここで、ステップSb242からステップSb244の処理の対象として未だに指定されてない、第2仮想カメラ位置P12およびその第2仮想カメラ位置P12に係る参照形状情報があれば、ステップS241に戻って、第2算出部6124が、ステップSb23で生成された複数の第2仮想カメラ位置P12のそれぞれについての参照形状情報のうち、次の1つの第2仮想カメラ位置P12およびその1つの第2仮想カメラ位置P12に係る参照形状情報をステップSb242からステップSb244の処理の対象として指定する。一方、ステップSb242からステップSb244の処理の対象として未だに指定されてない、第2仮想カメラ位置P12およびその第2仮想カメラ位置P12に係る参照形状情報がなければ、ステップSb25へ移行する。
【0294】
つまり、第2算出部6124は、ステップSb23で取得された複数の第2仮想カメラ位置P12のそれぞれについての参照形状情報において、ステップSb242からステップSb244の処理の対象として未だに指定されてない、第2仮想カメラ位置P12およびその第2仮想カメラ位置P12に係る参照形状情報がなくなるまで、ステップSb241からステップSb245の処理を繰り返す。これにより、第2算出部6124は、各第2仮想カメラ位置P12について、実形状情報としてのエッジ画像と、参照形状情報としてのリファレンス画像との間における一致度を示す数値を算出する。
【0295】
<<<<ステップSb25>>>>
ステップSb25では、第2検出部6125が、ステップSb14で検出された高一致度仮想カメラ位置P11m、ならびに上述したM2×T2個の第2仮想カメラ位置P12のうち、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)としてのエッジ画像と参照形状情報としてのリファレンス画像との間における一致度が最も大きな仮想カメラ位置を検出する。ここで検出された仮想カメラ位置は、第2検出部6125で1番目に検出された仮想カメラ位置である1番目の基準仮想カメラ位置Ps1となる。
【0296】
ここでは、例えば、ステップSb13において高一致度仮想カメラ位置P11mについて算出されたマッチングスコア、ならびにステップSb24によって算出されたM2×T2個の第2仮想カメラ位置P12についてそれぞれ算出されたマッチングスコア、が比較される。そして、例えば、高一致度仮想カメラ位置P11mおよびM2×T2個の第2仮想カメラ位置P12のうち、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)としてのエッジ画像と参照形状情報としてのリファレンス画像との間について算出されたマッチングスコアが最も大きくなった仮想カメラ位置が検出される。
【0297】
<<<<ステップSb31>>>>
ステップSb31では、探索処理部61が、上述した第1A処理を行う。ここでは、分割面生成部6122が、1番目のM3×T3個の仮想分割面St3を生成する。
【0298】
<<<<ステップSb32>>>>
ステップSb32では、探索処理部61が、上述した第1B処理を行う。ここでは、第2形状情報生成部6123が、ステップSb31で生成された1番目のM3×T3個の仮想分割面St3にそれぞれ設定される1番目のM3×T3個の第3仮想カメラ位置P13のそれぞれについて、参照形状情報としてのリファレンス画像を生成する。
【0299】
<<<<ステップSb33>>>>
ステップSb33では、探索処理部61が、上述した第1C処理を行う。ここでは、第2算出部6124が、ステップSb31で生成された1番目のM3×T3個の仮想分割面St3にそれぞれ設定される1番目のM3×T3個の第3仮想カメラ位置P13のそれぞれについて、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)としてのエッジ画像と、参照形状情報としてのリファレンス画像との間における一致度を示す数値を算出する。
【0300】
ここで、第2算出部6124は、各第3仮想カメラ位置P13について、実形状情報としてのエッジ画像と参照形状情報としてのリファレンス画像との間で、一致度を示す数値を算出する際には、例えば、上述した処理2a1、処理2b1、および処理2c1をこの記載の順に行う。具体的には、ステップSb33では、第2算出部6124によって、ステップSb331からステップSb335の処理が行われる。ステップSb332の処理が上述した処理2a1に相当し、ステップSb333の処理が上述した処理2b1に相当し、ステップSb334の処理が上述した処理2c1に相当する。
【0301】
ステップSb331では、第2算出部6124が、ステップSb32で生成された1番目のM3×T3個の第3仮想カメラ位置P13のそれぞれについての参照形状情報としてのリファレンス画像のうち、1つの第3仮想カメラ位置P13およびその1つの第3仮想カメラ位置P13に係る参照形状情報としてのリファレンス画像をステップSb332からステップSb334の処理の対象として指定する。
【0302】
ステップSb332では、例えば、第2算出部6124が、実形状情報としてのエッジ画像と、参照形状情報としてのリファレンス画像との間で、RIPOC法を用いて、輪郭の二次元形状の向きのずれ量を検出する。ここでは、実形状情報としてのエッジ画像のうちのステップSb21で設定された照合対象領域と、リファレンス画像との間で、輪郭の一致度が最も大きくなり得る回転方向におけるずれ量γ21を検出する。このずれ量γ21は、参照形状情報としてのリファレンス画像と実形状情報としてのエッジ画像との間における一致度がより大きくなり得るロール角γに相当する。
【0303】
ステップSb333では、例えば、第2算出部6124が、実形状情報としてのエッジ画像を、ステップSb332で検出されたずれ量γ21を補正するように回転させる。これにより、回転後のエッジ画像が生成され、実形状情報としてのエッジ画像における輪郭の二次元形状と、参照形状情報としてのリファレンス画像における輪郭の二次元形状との間で、向きを整合させる。ここでは、例えば、実形状情報としてのエッジ画像のうちのステップSb21で設定された照合対象領域のエッジ画像を、上記ステップSb332で検出されたずれ量γ21を補正するように回転させる。これにより、回転後のエッジ画像が生成され、実形状情報を構成する照合対象領域における輪郭の二次元形状と、参照形状情報としてのリファレンス画像における輪郭の二次元形状との間で、向きの一致を図る。
【0304】
ステップSb334では、例えば、第2算出部6124が、ステップSb333で生成された実形状情報に係る回転後のエッジ画像を対象として、参照形状情報としてのリファレンス画像を用いたテンプレートマッチングを行う。ここでは、例えば、回転後のエッジ画像内でリファレンス画像を走査し、回転後のエッジ画像内の各部分領域とリファレンス画像との一致度(類似度)が最大となる領域の位置を検出する。これにより、実形状情報としてのエッジ画像において、リファレンス画像における対象部品の3Dモデル3dmの輪郭の二次元形状と一致度が最大となる領域の位置(マッチング候補位置)が検出される。ここで、上記のテンプレートマッチングを行う際には、回転後のエッジ画像内の部分領域とリファレンス画像との一致度(類似度)が最大となる場合における一致度(類似度)を示す数値が、第3仮想カメラ位置P13についての、実形状情報としてのエッジ画像と参照形状情報としてのリファレンス画像との間における一致度を示す数値として算出される。ここでも、一致度を示す数値は、例えば、上述した公知の一致度を示すマッチングスコアであってよい。
【0305】
ステップSb335では、第2算出部6124が、ステップSb32で生成された1番目のM3×T3個の第3仮想カメラ位置P13のそれぞれについての参照形状情報のうち、ステップSb332からステップSb334の処理の対象として未だに指定されてない、第3仮想カメラ位置P13およびその第3仮想カメラ位置P13に係る参照形状情報があるか否か判定する。ここで、ステップSb332からステップSb334の処理の対象として未だに指定されてない、第3仮想カメラ位置P13およびその第3仮想カメラ位置P13に係る参照形状情報があれば、ステップS331に戻って、第2算出部6124が、ステップSb32で生成された1番目のM3×T3個の第3仮想カメラ位置P13のそれぞれについての参照形状情報のうち、次の1つの第3仮想カメラ位置P13およびその1つの第3仮想カメラ位置P13に係る参照形状情報をステップSb332からステップSb334の処理の対象として指定する。一方、ステップSb332からステップSb334の処理の対象として未だに指定されてない、第3仮想カメラ位置P13およびその第3仮想カメラ位置P13に係る参照形状情報がなければ、ステップS34へ移行する。
【0306】
つまり、第2算出部6124は、ステップSb32で生成された1番目のM3×T3個の第3仮想カメラ位置P13のそれぞれについての参照形状情報において、ステップSb332からステップSb334の処理の対象として未だに指定されてない、第3仮想カメラ位置P13およびその第3仮想カメラ位置P13に係る参照形状情報がなくなるまで、ステップSb331からステップSb335の処理を繰り返す。これにより、第2算出部6124は、1番目のM3×T3個の第3仮想カメラ位置P13のそれぞれについて、実形状情報としてのエッジ画像と、参照形状情報としてのリファレンス画像との間における一致度を示す数値を算出する。
【0307】
<<<<ステップSb34>>>>
ステップSb34では、探索処理部61が、上述した第1D処理を行う。ここでは、第2検出部6125が、ステップSb25で検出された仮想カメラ位置である1番目の基準仮想カメラ位置Ps1、ならびにステップSb31で生成された1番目のM3×T3個の仮想分割面St3にそれぞれ設定される1番目のM3×T3個の第3仮想カメラ位置P13のうち、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)としてのエッジ画像と参照形状情報としてのリファレンス画像との間における一致度が最も大きな仮想カメラ位置である2番目の基準仮想カメラ位置Ps2を検出する。
【0308】
ここでは、例えば、ステップSb24において1番目の基準仮想カメラ位置Ps1について算出されたマッチングスコア、ならびにステップSb33によって算出された1番目のM3×T3個の第3仮想カメラ位置P13についてそれぞれ算出されたマッチングスコア、が比較される。そして、例えば、1番目の基準仮想カメラ位置Ps1および1番目のM3×T3個の第3仮想カメラ位置P13のうち、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)としてのエッジ画像と参照形状情報としてのリファレンス画像との間について算出されたマッチングスコアが最も大きくなった仮想カメラ位置が検出される。
【0309】
<<<<ステップSb41>>>>
ステップSb41では、探索処理部61が、変数nを初期値である2に設定する。
【0310】
<<<<ステップSb42>>>>
ステップSb42では、探索処理部61が、上述した第nA処理を行う。ここでは、分割面生成部6122が、n番目のM3×T3個の仮想分割面を生成する。
【0311】
<<<<ステップSb43>>>>
ステップSb43では、探索処理部61が、上述した第nB処理を行う。ここでは、第2形状情報生成部6123が、ステップSb42で生成されたn番目のM3×T3個の仮想分割面にそれぞれ設定されるn番目のM3×T3個の第3仮想カメラ位置のそれぞれについて、参照形状情報としてのリファレンス画像を生成する。
【0312】
<<<<ステップSb44>>>>
ステップSb44では、探索処理部61が、上述した第nC処理を行う。ここでは、第2算出部6124が、ステップSb42で生成されたn番目のM3×T3個の仮想分割面にそれぞれ設定されるn番目のM3×T3個の第3仮想カメラ位置のそれぞれについて、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)としてのエッジ画像と、参照形状情報としてのリファレンス画像との間における一致度を示す数値を算出する。
【0313】
ここで、第2算出部6124は、各第3仮想カメラ位置について、実形状情報としてのエッジ画像と参照形状情報としてのリファレンス画像との間で、一致度を示す数値を算出する際には、例えば、上述した処理2an、処理2bn、および処理2cnをこの記載の順に行う。具体的には、ステップSb44では、第2算出部6124によって、ステップSb441からステップSb445の処理が行われる。ステップSb442の処理が上述した処理2anに相当し、ステップSb443の処理が上述した処理2bnに相当し、ステップSb444の処理が上述した処理2cnに相当する。
【0314】
ステップSb441では、第2算出部6124が、ステップSb43で生成されたn番目のM3×T3個の第3仮想カメラ位置のそれぞれについての参照形状情報としてのリファレンス画像のうち、1つの第3仮想カメラ位置およびその1つの第3仮想カメラ位置に係る参照形状情報としてのリファレンス画像をステップSb442からステップSb444の処理の対象として指定する。
【0315】
ステップSb442では、例えば、第2算出部6124が、実形状情報としてのエッジ画像と、参照形状情報としてのリファレンス画像との間で、RIPOC法を用いて、輪郭の二次元形状の向きのずれ量を検出する。ここでは、実形状情報としてのエッジ画像のうちのステップSb21で設定された照合対象領域と、リファレンス画像との間で、輪郭の一致度が最も大きくなり得る回転方向におけるずれ量γ2nを検出する。このずれ量γ2nは、参照形状情報としてのリファレンス画像と実形状情報としてのエッジ画像との間における一致度がより大きくなり得るロール角γに相当する。
【0316】
ステップSb443では、例えば、第2算出部6124が、実形状情報としてのエッジ画像を、ステップSb442で検出されたずれ量γ2nを補正するように回転させる。これにより、回転後のエッジ画像が生成され、実形状情報としてのエッジ画像における輪郭の二次元形状と、参照形状情報としてのリファレンス画像における輪郭の二次元形状との間で、向きを整合させる。ここでは、例えば、実形状情報としてのエッジ画像のうちのステップSb21で設定された照合対象領域のエッジ画像を、上記ステップSb442で検出されたずれ量γ2nを補正するように回転させる。これにより、回転後のエッジ画像が生成され、実形状情報を構成する照合対象領域における輪郭の二次元形状と、参照形状情報としてのリファレンス画像における輪郭の二次元形状との間で、向きの一致を図る。
【0317】
ステップSb444では、例えば、第2算出部6124が、ステップSb443で生成された実形状情報に係る回転後のエッジ画像を対象として、参照形状情報としてのリファレンス画像を用いたテンプレートマッチングを行う。ここでは、例えば、回転後のエッジ画像内でリファレンス画像を走査し、回転後のエッジ画像内の各部分領域とリファレンス画像との一致度(類似度)が最大となる領域の位置を検出する。これにより、実形状情報としてのエッジ画像において、リファレンス画像における対象部品の3Dモデル3dmの輪郭の二次元形状と一致度が最大となる領域の位置(マッチング候補位置)が検出される。ここで、上記のテンプレートマッチングを行う際には、回転後のエッジ画像内の部分領域とリファレンス画像との一致度(類似度)が最大となる場合における一致度(類似度)を示す数値が、第3仮想カメラ位置についての、実形状情報としてのエッジ画像と参照形状情報としてのリファレンス画像との間における一致度を示す数値として算出される。ここでも、一致度を示す数値は、例えば、上述した公知の一致度を示すマッチングスコアであってよい。
【0318】
ステップSb445では、第2算出部6124が、ステップSb43で生成されたn番目のM3×T3個の第3仮想カメラ位置のそれぞれについての参照形状情報のうち、ステップSb442からステップSb444の処理の対象として未だに指定されてない、第3仮想カメラ位置およびその第3仮想カメラ位置に係る参照形状情報があるか否か判定する。ここで、ステップSb442からステップSb444の処理の対象として未だに指定されてない、第3仮想カメラ位置およびその第3仮想カメラ位置に係る参照形状情報があれば、ステップS441に戻って、第2算出部6124が、ステップSb43で生成されたn番目のM3×T3個の第3仮想カメラ位置のそれぞれについての参照形状情報のうち、次の1つの第3仮想カメラ位置およびその1つの第3仮想カメラ位置に係る参照形状情報をステップSb442からステップSb444の処理の対象として指定する。一方、ステップSb442からステップSb444の処理の対象として未だに指定されてない、第3仮想カメラ位置およびその第3仮想カメラ位置に係る参照形状情報がなければ、ステップS45へ移行する。
【0319】
つまり、第2算出部6124は、ステップSb43で生成されたn番目のM3×T3個の第3仮想カメラ位置のそれぞれについての参照形状情報において、ステップSb442からステップSb444の処理の対象として未だに指定されてない、第3仮想カメラ位置およびその第3仮想カメラ位置に係る参照形状情報がなくなるまで、ステップSb441からステップSb445の処理を繰り返す。これにより、第2算出部6124は、n番目のM3×T3個の第3仮想カメラ位置のそれぞれについて、実形状情報としてのエッジ画像と、参照形状情報としてのリファレンス画像との間における一致度を示す数値を算出する。
【0320】
<<<<ステップSb45>>>>
ステップSb45では、探索処理部61が、上述した第nD処理を行う。ここでは、第2検出部6125が、ステップSb34またはn-1回目のステップSb45で検出された仮想カメラ位置であるn番目の基準仮想カメラ位置、ならびにステップSb42で生成されたn番目のM3×T3個の仮想分割面にそれぞれ設定されるn番目のM3×T3個の第3仮想カメラ位置のうち、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)としてのエッジ画像と参照形状情報としてのリファレンス画像との間における一致度が最も大きな仮想カメラ位置を検出する。
【0321】
ここでは、例えば、ステップSb33またはn-1回目のステップSb44においてn番目の基準仮想カメラ位置について算出されたマッチングスコア、ならびにステップSb44によって算出されたn番目のM3×T3個の第3仮想カメラ位置についてそれぞれ算出されたマッチングスコア、が比較される。そして、例えば、n番目の基準仮想カメラ位置およびn番目のM3×T3個の第3仮想カメラ位置のうち、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)としてのエッジ画像と参照形状情報としてのリファレンス画像との間について算出されたマッチングスコアが最も大きくなった仮想カメラ位置が検出される。
【0322】
<<<<ステップSb46,Sb47>>>>
ステップSb46では、探索処理部61が、第2探索処理を終了する条件(終了条件ともいう)を満たしているか否か判定する。ここで、終了条件を満たしていなければ、ステップSb47において、探索処理部61が、変数nに1を加算して、ステップSb42に戻る。一方、終了条件を満たしていれば、ステップSb48へ移行する。つまり、終了条件を満たすまで、ステップSb42からステップSb46の処理が繰り返して行われる。
【0323】
ここで終了条件は、例えば、第2検出部6125によって、1番目の基準仮想カメラ位置からn番目の基準仮想カメラ位置のうちの1つの基準仮想カメラ位置が、実形状情報と参照形状情報との間における一致度が最も大きな仮想カメラ位置として、予め設定された第1所定回数だけ連続して検出されたこと、であってよい。また、終了条件は、例えば、第2探索処理において、第nの単位処理が、予め設定された第2所定回数だけ実行されたこと、であってもよい。換言すれば、終了条件は、例えば、第2探索処理において、第nの単位処理が行われた回数であるn-1回が、第2所定回数に到達したこと、であってもよい。
【0324】
<<<<ステップSb48>>>>
ステップSb48では、探索処理部61が、第2探索処理における最後のステップSb45において検出された実形状情報と参照形状情報との間における一致度が最も大きな仮想カメラ位置(最高一致度仮想カメラ位置)について、この最高一致度仮想カメラ位置を規定する経度α、経度βおよび距離Dと、第2算出部6124で算出したずれ量γ2nに対応するロール角γと、を探索処理の結果として取得する。これにより、実画像で捉えられた対象部品の姿勢が認識され得る。
【0325】
また、ここでは、探索処理部61が、最高一致度仮想カメラ位置について、ステップSb44で検出された、実形状情報としてのエッジ画像内において参照形状情報としてのリファレンス画像との一致度(類似度)が最大となったマッチング候補位置(最終マッチング位置)が、探索処理の結果の一部として取得されてもよい。
【0326】
ここで、探索処理部61は、探索処理の結果に基づいて、実画像を用いて認識された対象部品の姿勢に係る現実情報を取得する。
【0327】
<<ステップS5>>
ステップS5では、制御部45は、ステップS4において対象部品ごとに取得された探索処理の結果に基づいて、対象部品ごとに正常情報を設定する。
【0328】
例えば、ノズル33については、制御部45は、ステップS4において各ノズル33について取得された探索処理の結果に応じて、各ノズル33について原点位置以外に位置している際の要確認タイミングにおける正常情報を設定する。より具体的には、制御部45は、各ノズル33が原点位置に位置している状態について取得された探索処理の結果に基づいて得られる各ノズル33の姿勢の三次元の情報を、各ノズル33の原点位置にひも付ける。そして、制御部45は、ノズル移動機構35が各ノズル33を原点位置から吐出位置まで移動させる際に位置検出部43から出力されるパルス信号の数と各ノズル33の設計情報とに基づいて各ノズル33の吐出位置における正常情報を設定する。
【0329】
例えば、チャック9については、制御部45は、ステップS4において各チャック9について取得された探索処理の結果と各チャック9の設計情報とに基づいて各チャック9について原点位置以外に位置している際の要確認タイミングにおける正常情報を設定する。
【0330】
例えば、ガード23については、制御部45は、ステップS4においてガード23について取得された探索処理の結果とガード23の設計情報とに基づいてガード23について原点位置以外に位置している際の要確認タイミングにおける正常情報を設定する。
【0331】
<<ステップS6>>
ステップS6では、処理の対象である基板Wが基板処理装置1の内部に搬入される。基板処理装置1の内部への基板Wの搬入は、例えば、図示を省略する搬送ロボットなどによって行われる。このとき、各チャック9は開放位置に配置される。
【0332】
<<ステップS7>>
ステップS7では、基板Wに対する処理がレシピに沿って進められる。具体的には、まず、複数個のチャック9上に基板Wが載置される。動作制御部51は、例えば、チャック動作指令によりチャック駆動機構17を動作させて、各チャック9を開放位置から閉止位置に移動させる。この状態は、例えば、
図45に示すようなものとなる。つまり、各チャック9は、基板Wが載置されている状態で、回転中心PL2を中心として回転し、周縁支持部13がスピンチャック3の回転中心PL1側に移動する。これにより、各チャック9の周縁支持部13が基板Wの外径に当接して、基板Wが挟持される。このときの周縁支持部13は、平面視すると、
図44における周縁支持部13より若干外周側に位置している。
【0333】
<<ステップS8>>
ステップS8では、動作制御部51によって、対象部品が要確認タイミングであるか否かが確認される。具体的には、動作制御部51は、パラメータ情報55における対象部品とその要確認タイミングとを参照する。ここで、対象部品が要確認タイミングになければステップS14へ移行し、対象部品が要確認タイミングにある場合には、ステップS9へ移行する。このステップS8では、例えば、対象部品としてのチャック9が閉止位置に位置するように設定された要確認タイミングにあれば、ステップS9へ移行する。
【0334】
<<ステップS9>>
ステップS9では、動作制御部51が、カメラCMに撮影を行わせる。具体的には、例えば、動作制御部51は、チャック動作指令によって各チャック9が閉止位置に移動されるタイミングに応じてカメラCMを動作させる。このとき、カメラCMは、撮影によって各チャック9を含む実画像を取得する。
【0335】
<<ステップS10>>
ステップS10では、上記のステップS3と同様な処理によって、画像処理部59が、ステップS9におけるカメラCMによる撮影で取得された実画像に画像処理を施す。このステップS10では、上記のステップS3と同様に、
図37のステップSa1からステップSa4の処理が順に行われる。
【0336】
具体的には、ステップSa1では、画像処理部59が、ステップS9の撮影で得られた実画像をカメラCMから取得する。このステップSa1は、本発明のうちの実画像取得ステップに相当する。ステップSa2では、画像処理部59の処理対象領域抽出部591が、実画像に対して処理対象領域を設定する。ここでは、例えば、各対象部品としての各チャック9について処理対象領域が設定される。ステップSa3では、画像処理部59の処理対象領域抽出部591が、実画像から処理対象領域に係る部分を画像(処理対象実画像)として抽出する。ステップSa4では、画像処理部59の輪郭抽出部592が、処理対象実画像で捉えられている全ての部品について、輪郭を抽出する処理を行う。これにより、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)としてのエッジ画像が取得される。より具体的には、チャック9を含む物体の二次元形状に係る情報(実形状情報)としてのエッジ画像が取得される。ここでは、例えば、各対象部品としての各チャック9についてエッジ画像が取得される。
【0337】
<<ステップS11>>
ステップS11では、上記のステップS4と同様な処理によって、探索処理部61が、各対象部品である各チャック9について探索処理を行う。ここでは、ステップS10において取得された対象部品としての各チャック9についての実形状情報としてのエッジ画像を用いる。このステップS11は、上記のステップS4と同様に、本発明のうちの演算部45aによって行われる探索ステップに相当する。また、ここでは、探索処理部61は、探索処理の結果に基づいて、各対象部品としての各チャック9の姿勢に係る現実情報を取得する。
【0338】
<<ステップS12>>
ステップS12では、異常検出部63が、ステップS11で取得された現実情報に応じて、各対象部品としての各チャック9の異常を検出する。ここでは、異常検出部63は、各対象部品である各チャック9について、現実情報と正常情報とを比較する。異常検出部63は、各対象部品である各チャック9について、現実情報と正常情報との比較の結果、現実情報が正常情報に一致しない場合には、異常を検出する。
【0339】
<<ステップS13>>
ステップS13では、制御部45において、ステップS12において各対象部品としての各チャック9について異常が検出されたか否かが判定される。ここで、ステップS12において各対象部品としての各チャック9について異常が検出されていなければ、ステップS14へ移行する。一方、ステップS12において対象部品としてのチャック9について異常が検出されていれば、ステップS17へ移行する。
【0340】
<<ステップS14>>
ステップS14では、制御部45が、基板Wに対する処理が完了したか否か判定する。ここで、基板Wに対する処理が完了していれば、ステップS15へ移行する。一方、基板Wに対する処理が完了していなければ、ステップS7に戻る。例えば、基板Wが複数個のチャック9上に載置されて、複数個のチャック9によって基板Wが挟持されただけであれば、基板Wに対する処理が完了しておらず、ステップS7に戻る。
【0341】
<<ステップS7>>
ステップS7では、基板Wに対する処理がレシピに沿って進められる。具体的には、例えば、動作制御部51が、ガード移動機構25をガード動作指令によって動作させて、
図43で示されるように原点位置に位置しているガード23を、
図46で示されるように処理位置まで移動させる。この時点では、
図46において基板Wの上方に位置しているノズル33は、原点位置に位置している。
【0342】
<<ステップS8>>
ステップS8では、上述したように、動作制御部51によって、対象部品が要確認タイミングであるか否かが確認される。具体的には、動作制御部51は、パラメータ情報55における対象部品とその要確認タイミングとを参照する。ここで、対象部品が要確認タイミングになければステップS14へ移行し、対象部品が要確認タイミングにある場合には、ステップS9へ移行する。このステップS8では、例えば、対象部品であるガード23が処理位置に位置するように設定された要確認タイミングにあれば、ステップS9へ移行する。
【0343】
<<ステップS9>>
2回目のステップS9では、動作制御部51が、カメラCMに撮影を行わせる。具体的には、例えば、動作制御部51は、ガード移動機構25がガード動作指令によってガード23を上昇させて処理位置への移動が完了したタイミングに応じてカメラCMを動作させる。このとき、カメラCMは、撮影によってガード23を含む実画像を取得する。
【0344】
<<ステップS10>>
2回目のステップS10では、上記の1回目のステップS10と同様な処理によって、画像処理部59が、2回目のステップS9におけるカメラCMによる撮影で取得された実画像に画像処理を施す。この2回目のステップS10では、上記の1回目のステップS10と同様に、
図37のステップSa1からステップSa4の処理が順に行われる。
【0345】
具体的には、ステップSa1では、画像処理部59が、2回目のステップS9の撮影で得られた実画像をカメラCMから取得する。このステップSa1は、本発明のうちの実画像取得ステップに相当する。ステップSa2では、画像処理部59の処理対象領域抽出部591が、実画像に対して処理対象領域を設定する。ここでは、対象部品としてのガード23に対して処理対象領域が設定される。ステップSa3では、画像処理部59の処理対象領域抽出部591が、実画像から処理対象領域に係る部分を画像(処理対象実画像)として抽出する。ステップSa4では、画像処理部59の輪郭抽出部592が、処理対象実画像で捉えられている全ての部品について、輪郭を抽出する処理を行う。これにより、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)としてのエッジ画像が取得される。より具体的には、ガード23を含む物体の二次元形状に係る情報(実形状情報)としてのエッジ画像が取得される。
【0346】
<<ステップS11>>
2回目のステップS11では、上記のステップS4と同様な処理によって、探索処理部61が、対象部品であるガード23について探索処理を行う。ここでは、2回目のステップS10において取得された対象部品としてのガード23についての実形状情報としてのエッジ画像を用いる。このステップS11は、上記のステップS4と同様に、本発明のうちの演算部45aによって行われる探索ステップに相当する。また、ここでは、探索処理部61は、探索処理の結果に基づいて、対象部品としてのガード23の姿勢に係る現実情報を取得する。
【0347】
<<ステップS12>>
2回目のステップS12では、異常検出部63が、2回目のステップS11で取得された現実情報に応じて、対象部品としてのガード23の異常を検出する。ここでは、異常検出部63は、対象部品であるガード23について、現実情報と正常情報とを比較する。異常検出部63は、対象部品であるガード23について、現実情報と正常情報との比較の結果、現実情報が正常情報に一致しない場合には、異常を検出する。
【0348】
<<ステップS13>>
2回目のステップS13では、制御部45において、2回目のステップS12において対象部品としてのガード23について異常が検出されたか否かが判定される。ここで、2回目のステップS12において対象部品としてのガード23について異常が検出されていなければ、ステップS14へ移行する。一方、2回目のステップS12において対象部品としてのチャック9について異常が検出されていれば、ステップS17へ移行する。
【0349】
<<ステップS14>>
ステップS14では、制御部45が、基板Wに対する処理が完了したか否か判定する。ここで、基板Wに対する処理が完了していれば、ステップS15へ移行する。一方、基板Wに対する処理が完了していなければ、ステップS7に戻る。例えば、基板Wが複数個のチャック9によって挟持されて、ガード23が処理位置に移動しただけであれば、基板Wに対する処理が完了しておらず、ステップS7に戻る。
【0350】
<<ステップS7>>
ステップS7では、基板Wに対する処理がレシピに沿って進められる。具体的には、例えば、動作制御部51が、ノズル移動機構35をノズル動作指令によって動作させて、ノズル33A,33Bのうちのノズル33Bを、
図43で示された原点位置に位置している状態から
図46で示された吐出位置に位置している状態となるまで移動させる。吐出位置は、例えば、回転中心PL1上の位置である。
【0351】
<<ステップS8>>
ステップS8では、上述したように、動作制御部51によって、対象部品が要確認タイミングであるか否かが確認される。具体的には、動作制御部51は、パラメータ情報55における対象部品とその要確認タイミングとを参照する。ここで、対象部品が要確認タイミングになければステップS14へ移行し、対象部品が要確認タイミングにある場合には、ステップS9へ移行する。このステップS8では、例えば、対象部品であるノズル33(ノズル33B)が吐出位置に位置するように設定された要確認タイミングにあれば、ステップS9へ移行する。
【0352】
<<ステップS9>>
3回目のステップS9では、動作制御部51が、カメラCMに撮影を行わせる。具体的には、例えば、動作制御部51は、ノズル移動機構35がノズル動作指令によってノズル33(ノズル33B)を移動させて吐出位置への移動が完了したタイミングに応じてカメラCMを動作させる。このとき、カメラCMは、撮影によってノズル33を含む実画像を取得する。
【0353】
<<ステップS10>>
3回目のステップS10では、上記の2回目のステップS10と同様な処理によって、画像処理部59が、3回目のステップS9におけるカメラCMによる撮影で取得された実画像に画像処理を施す。この3回目のステップS10では、上記の2回目のステップS10と同様に、
図37のステップSa1からステップSa4の処理が順に行われる。
【0354】
具体的には、ステップSa1では、画像処理部59が、3回目のステップS9の撮影で得られた実画像をカメラCMから取得する。このステップSa1は、本発明のうちの実画像取得ステップに相当する。ステップSa2では、画像処理部59の処理対象領域抽出部591が、実画像に対して処理対象領域を設定する。ここでは、対象部品としてのノズル33Bに対して処理対象領域が設定される。ステップSa3では、画像処理部59の処理対象領域抽出部591が、実画像から処理対象領域に係る部分を画像(処理対象実画像)として抽出する。ステップSa4では、画像処理部59の輪郭抽出部592が、処理対象実画像で捉えられている全ての部品について、輪郭を抽出する処理を行う。これにより、実画像で捉えられた物体の二次元形状に係る情報(実形状情報)としてのエッジ画像が取得される。より具体的には、ノズル33Bを含む物体の二次元形状に係る情報(実形状情報)としてのエッジ画像が取得される。
【0355】
<<ステップS11>>
3回目のステップS11では、上記のステップS4と同様な処理によって、探索処理部61が、対象部品であるノズル33Bについて探索処理を行う。ここでは、3回目のステップS10において取得された対象部品としてのノズル33Bについての実形状情報としてのエッジ画像を用いる。このステップS11は、上記のステップS4と同様に、本発明のうちの演算部45aによって行われる探索ステップに相当する。また、ここでは、探索処理部61は、探索処理の結果に基づいて、対象部品としてのノズル33Bの姿勢に係る現実情報を取得する。
【0356】
<<ステップS12>>
3回目のステップS12では、異常検出部63が、3回目のステップS11で取得された現実情報に応じて、対象部品としてのノズル33Bの異常を検出する。ここでは、異常検出部63は、対象部品であるノズル33Bについて、現実情報と正常情報とを比較する。異常検出部63は、対象部品であるノズル33Bについて、現実情報と正常情報との比較の結果、現実情報が正常情報に一致しない場合には、異常を検出する。
【0357】
<<ステップS13>>
3回目のステップS13では、制御部45において、3回目のステップS12において対象部品としてのノズル33Bについて異常が検出されたか否かが判定される。ここで、3回目のステップS12において対象部品としてのノズル33Bについて異常が検出されていなければ、ステップS14へ移行する。一方、3回目のステップS12において対象部品としてのノズル33Bについて異常が検出されていれば、ステップS17へ移行する。
【0358】
<<ステップS14>>
ステップS14では、制御部45が、基板Wに対する処理が完了したか否か判定する。ここで、基板Wに対する処理が完了していれば、ステップS15へ移行する。一方、基板Wに対する処理が完了していなければ、ステップS7に戻る。例えば、基板Wが複数個のチャック9によって挟持されて、ガード23が処理位置に移動し、ノズル33Bが吐出位置に移動しただけであれば、基板Wに対する処理が完了しておらず、ステップS7に戻る。
【0359】
<<ステップS7,S8,S14>>
これ以降においては、対象部品についての要確認タイミングにはならないものとする。このため、ステップS7の処理と、ステップS8の処理と、ステップS14の処理と、が繰り返される。この際には、ステップS7では、動作制御部51が、実行が指示されたレシピに応じて各部の動作を制御して基板Wに対する処理を進める。具体的には、例えば、レシピに応じたモータ7の駆動によるスピンチャック3の回転およびノズル33Bから基板W上に対する処理液の供給などを順に行うことで、実行が指示されたレシピに応じた各部の動作による基板Wに対する処理が完了する。そして、基板Wに対する処理が完了した時点で、ステップS14からステップS15へ移行する。
【0360】
<<ステップS15>>
ステップS15では、動作制御部51が、チャック駆動機構17、ガード移動機構25およびノズル移動機構35の動作を制御することで、各チャック9を開放位置に移動させるとともにガード23と、ノズル33と、を原点位置に移動させる。そして、複数個のチャック9上に載置された基板Wが基板処理装置1の外部に搬出される。基板処理装置1の外部への基板Wの搬出は、例えば、図示を省略する搬送ロボットなどによって行われる。
【0361】
<<ステップS16>>
ステップS16では、動作制御部51が、実行が指示されたレシピに応じた処理の対象である次の基板Wがあるか否か判定する。ここで、次の基板Wがあれば、ステップS6へ移行する。このため、ステップS12において異常が検出されない場合には、処理の対象である次の基板Wが存在している限り、ステップS6からステップS16の処理が繰り返し行われる。そして、ステップS16において、処理の対象である次の基板Wがなければ、
図36で示される基板処理装置1における処理が終了される。
【0362】
<<ステップS17>>
ステップS12などにおいて対象部品について異常が検出されている場合には、ステップS17の処理が行われる。
【0363】
ステップS17では、異常検出部63が報知部49に報知動作を行わせる。これにより、異常検出部63は、対象部品についての異常の検出に応答して、報知部49に報知動作を行わせる。ここでは、報知部49は、例えば、異常の発生だけでなく、異常が検出された対象部品を特定する情報、異常が検出された対象部品の位置情報、および検出された異常の内容を示す情報のうちの1つ以上の情報などを併せて報知してもよい。
【0364】
<<ステップS18>>
ステップS18では、例えば、オペレータが、報知部49による報知に応答して、基板処理装置1の動作を停止させる。これにより、基板処理装置1において、異常が存在している状態で複数の基板Wに対する処理が順に行われる不具合が回避され得る。その結果、基板Wに対する処理の不良の発生が回避され得る。
【0365】
なお、基板処理装置1では、例えば、実画像取得ステップを含むステップS3,S10の処理と、探索ステップに相当するステップS4,S11の処理と、において、画像処理などの情報処理を行っている。このため、本第1実施形態においては、基板Wの処理を行う基板処理装置1における情報処理方法は、実画像取得ステップと、探索ステップと、を有していると言える。また、探索ステップに相当するステップS4,S11のそれぞれは、第1形状情報取得ステップに相当するステップSb12と、第1算出ステップに相当するステップSb13と、第1検出ステップに相当するステップSb14と、分割面生成ステップに相当するステップSb22と、第2形状情報生成ステップに相当するステップSb23と、第2算出ステップに相当するステップSb24と、を含む。
【0366】
<5.まとめ>
以上のように、第1実施形態に係る基板処理装置1では、例えば、対象部品に関する三次元の設計情報に基づいてそれぞれ生成される、複数の仮想カメラ位置からの対象部品の3Dモデル3dmの撮影で取得され得る複数の仮想画像のそれぞれにおける対象部品の3Dモデル3dmの二次元形状に係る参照形状情報と、実画像で捉えられた物体の二次元形状に係る実形状情報とに基づいて、複数の仮想カメラ位置のうち、参照形状情報と実形状情報との間における一致度が最も大きな仮想カメラ位置を探索する。この仮想カメラ位置の探索を行う際には、対象部品に関する三次元の設計情報に基づいて、対象部品の3Dモデル3dmの基準点Poを中心として対象部品の3Dモデル3dmを囲む仮想的な球面に沿った複数の仮想面St1のそれぞれに対して仮想的に設定される複数の第1仮想カメラ位置P11のそれぞれから対象部品の3Dモデル3dmを撮影する場合を想定して、複数の第1仮想カメラ位置P11のそれぞれについて生成した、対象部品の3Dモデル3dmの二次元形状に係る参照形状情報を取得する。次に、複数の第1仮想カメラ位置P11のそれぞれについて、対象部品を捉えた実画像における物体の二次元形状に係る実形状情報と参照形状情報との間における一致度を示す数値を算出する。次に、複数の第1仮想カメラ位置P11のうち、実形状情報と参照形状情報との間における一致度が最も大きな第1仮想カメラ位置P11である高一致度仮想カメラ位置P11mを検出する。次に、複数の仮想面St1のうちの高一致度仮想カメラ位置P11mが仮想的に設定された仮想面である高一致度仮想面St1mを分割することで複数の仮想分割面St2を生成する。次に、対象部品に関する三次元の設計情報に基づいて、複数の仮想分割面St2のそれぞれに対して仮想的に設定される複数の第2仮想カメラ位置P12のそれぞれから対象部品の3Dモデル3dmを撮影する場合を想定して、複数の第2仮想カメラ位置P12のそれぞれについて、対象部品の3Dモデル3dmの二次元形状に係る参照形状情報を生成する。そして、複数の第2仮想カメラ位置P12のそれぞれについて、対象部品を捉えた実画像における物体の二次元形状に係る実形状情報と参照形状情報との間における一致度を示す数値を算出する。ここでは、高一致度仮想面St1mと複数の仮想分割面St2とは無関係な面ではないため、複数の仮想分割面St2については数および面積のうちの少なくとも1つの増大が低減され得る。これにより、実画像で捉えられた対象部品の姿勢を認識するための計算量が低減され得る。その結果、基板処理装置1において、対象部品の姿勢の認識を効率良く行うことができる。
【0367】
<6.変形例>
本発明は上述の第1実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更および改良などが可能である。
【0368】
例えば、上記第1実施形態では、単体の基板処理装置1について説明したが、複数の基板処理装置1を備えた基板処理システム91が採用されてもよい。
図47は、基板処理システム91の概略的な構成の一例を模式的に示す図である。基板処理システム91は、例えば、積層された複数の基板処理装置1を備えている。基板処理システム91は、例えば、4つの基板処理装置1が積層されてそれぞれ構成された複数のタワーTWを備えている。基板処理システム91においては、複数のタワーTWが相互に離間して対向した状態で位置している。基板処理システム91は、複数のタワーTWの間に位置している搬送ロボットTRを備えている。搬送ロボットTRは、高さ方向に昇降自在に構成されている。搬送ロボットTRは、図示を省略するアームを基板処理装置1に対して進退させることが可能な構成を有する。搬送ロボットTRは、複数の基板処理装置1のそれぞれに対して、基板Wの搬入および搬出を行うことができる。上記構成を有する基板処理システム91においても、各基板処理装置1において上述した効果を奏する。
【0369】
上記第1実施形態では、実画像で捉えられた物体の二次元形状に係る実形状情報の一例として、実画像から抽出されるエッジ画像を挙げて説明し、対象部品の3Dモデル3dmの二次元形状に係る参照形状情報の一例として、仮想カメラ位置からの対象部品の3Dモデル3dmの撮影で取得され得る仮想画像における対象部品の3Dモデル3dmの二次元形状としての輪郭を示すリファレンス画像を挙げて説明したが、これに限られない。実画像で捉えられた物体の二次元形状に係る実形状情報は、例えば、実画像で捉えられた物体の二次元形状を特徴付ける複数の角部などの複数の特徴点が実画像から抽出されることで得られる、複数の特徴点を含む画像(実特徴点画像ともいう)であってもよい。例えば、実形状情報が、上記実特徴点画像である場合には、参照形状情報は、仮想カメラ位置からの対象部品の3Dモデル3dmの撮影で取得され得る仮想画像における対象部品の3Dモデル3dmの二次元形状を特徴付ける複数の角部などの複数の特徴点の位置を特定している画像(参照特徴点画像ともいう)であってよい。ここで、例えば、実形状情報が実特徴点画像であり、参照形状情報が参照特徴点画像である場合には、実形状情報としての実特徴点画像と、参照形状情報としての参照特徴点画像との間における一致度(類似度)は、例えば、回転後の実特徴点画像内で参照特徴点画像を走査して、特徴点が一致する点数を、一致度を示す数値であるマッチングスコアとして算出してもよい。
【0370】
また、上記第1実施形態では、各仮想面St1が三角形であれば、高一致度仮想面St1mが、3つの頂点と高一致度仮想カメラ位置P11mとを結ぶ3つの線分によって、3つの仮想分割面St2に分割されたが、これに限られない。高一致度仮想面St1mは、例えば、他のルールで複数の仮想分割面St2に分割されてもよい。例えば、高一致度仮想面St1mは、各辺の中点どうしを結ぶ3つの線分によって、4つの仮想分割面St2に分割されてもよい。ここで、各辺の中点は、例えば、各辺の中点から若干ずれた点であってもよい。
【0371】
また、上記第1実施形態では、各仮想面St1が三角形であれば、T2個の仮想面St1のそれぞれが、高一致度仮想面St1mと同様に、3つの頂点と、三角形の中心点としての第1仮想カメラ位置P11とをそれぞれ結ぶ3つの線分によって、3つの仮想分割面St2に分割されたが、これに限られない。例えば、高一致度仮想面St1mが、他のルールで複数の仮想分割面St2に分割される場合には、T2個の仮想面St1のそれぞれは、高一致度仮想面St1mと同様に、他のルールで複数の仮想分割面St2に分割されてよい。
【0372】
また、上記第1実施形態では、上記第1A処理において、1番目のT3個の仮想分割面のそれぞれが三角形であれば、1番目のT3個の仮想分割面のそれぞれが、3つの頂点と三角形の中心点とをそれぞれ結ぶ3つの線分によって、M3個の仮想分割面である3つの仮想分割面に分割されたが、これに限られない。1番目のT3個の仮想分割面のそれぞれは、例えば、他のルールでM3個の複数の仮想分割面に分割されてもよい。例えば、1番目のT3個の仮想分割面のそれぞれは、各辺の中点どうしを結ぶ3つの線分によって、M3個の仮想分割面である4つの仮想分割面に分割されてもよい。その結果、M3×T3個の仮想分割面としての1番目のM3×T3個の仮想分割面が生成されてよい。ここで、各辺の中点は、例えば、各辺の中点から若干ずれた点であってもよい。
【0373】
また、上記第1実施形態では、上記第nA処理において、n番目のT3個の仮想分割面のそれぞれが三角形であれば、n番目のT3個の仮想分割面のそれぞれが、3つの頂点と三角形の中心点とをそれぞれ結ぶ3つの線分によって、n番目のM3個の仮想分割面である3つの仮想分割面に分割されたが、これに限られない。例えば、n番目のT3個の仮想分割面のそれぞれは、例えば、他のルールでM3個の複数の仮想分割面に分割されてもよい。例えば、n番目のT3個の仮想分割面のそれぞれは、各辺の中点どうしを結ぶ3つの線分によって、n番目のM3個の仮想分割面である4つの仮想分割面に分割されてもよい。その結果、M3×T3個の仮想分割面としてのn番目のM3×T3個の仮想分割面が生成されてよい。ここで、各辺の中点は、例えば、各辺の中点から若干ずれた点であってもよい。
【0374】
また、上記第1実施形態では、面集合体As1を構成している複数の仮想面St1は、例えば、それぞれ曲面であってもよい。この場合には、例えば、面集合体As1は、球面体であってもよい。面集合体As1が球面体であれば、複数の仮想面St1は、球面の一部を構成している曲面であってよい。この場合には、複数の仮想面St1は、例えば、球面を緯度の方向において第1の所定角度ごとに分割するとともに経度の方向において第2の所定角度ごとに分割することで生成された複数の仮想面であってよい。第1の所定角度および第2の所定角度には、例えば、10度から20度程度の角度が適用され得る。そして、高一致度仮想面は、例えば、経度方向および緯度方向のそれぞれにおいて2分割することで、複数の仮想分割面St2に分割されてよい。また、仮想分割面を分割するルールは、経度方向および緯度方向のそれぞれにおける角度などで規定されてよい。
【0375】
また、上記第1実施形態では、探索処理部61は、第nの単位処理を行わなくてもよい。この場合には、探索処理部61は、第1の単位処理における第1D処理において第2検出部6125によって検出された実形状情報と参照形状情報との間における一致度が最も大きな仮想カメラ位置を最高一致度仮想カメラ位置として、この最高一致度仮想カメラ位置について、最高一致度仮想カメラ位置を規定する経度α、経度βおよび距離Dと、第2算出部6124で算出したずれ量γ21に対応するロール角γと、を探索処理の結果として取得してもよい。
【0376】
また、上記第1実施形態では、第1形状情報取得部6112は、記憶部45bに記憶された対象部品に関する三次元の設計情報に基づいて、複数の第1仮想カメラ位置P11のそれぞれについて、参照形状情報を生成することで、この参照形状情報を取得したが、これに限られない。例えば、第1形状情報取得部6112は、予め生成されて記憶部45bなどに記憶された複数の第1仮想カメラ位置P11のそれぞれについての参照形状情報を読み出すことで取得してもよい。
【0377】
また、上記実施形態では、例えば、第1探索処理部611は、密集度判定部6111を有していなくてもよい。この場合には、例えば、第1算出部6113および第2算出部6124において、実形状情報としてのエッジ画像のうちの全体が、一致度を示す数値の算出を行うための計算の対象とされてよい。
【0378】
また、上記実施形態では、例えば、第2探索処理部612は、照合対象領域設定部6121を有していなくてもよい。この場合には、例えば、上記処理1aで検出された比較対象領域Re1を照合対象領域Re2としてもよい。
【0379】
また、上記第1実施形態では、分割面生成部6122は、T1個の面集合体As1のそれぞれにおけるM1個の仮想面St1のうち、高一致度仮想面St1mを含み且つ対象部品の3Dモデル3dmの基準点Poよりも高一致度仮想カメラ位置P11mの側において該基準点Poと該高一致度仮想カメラ位置P11mとを通る直線Ln11と交差しているとともに該基準点Poからの距離が相互に異なるT2個(T2は2以上の自然数)の仮想面St1のそれぞれを分割したが、これに限られない。例えば、分割面生成部6122は、T1個の面集合体As1のうちの1つの面集合体As1のみを構成しており且つ対象部品の3Dモデル3dmの基準点Poを中心としてこの対象部品の3Dモデル3dmを囲む仮想的な球面に沿って位置する複数の仮想面St1のうち、第1検出部6114で検出された高一致度仮想カメラ位置P11mが仮想的に設定された仮想面(高一致度仮想面)St1mを分割することで、複数の分割後の仮想面(仮想分割面)St2を生成してもよい。このような構成が採用されても、高一致度仮想面St1mと複数の仮想分割面St2とは無関係な面ではなく、複数の仮想分割面St2については数および面積のうちの少なくとも1つの増大が低減され得る。これにより、実画像で捉えられた対象部品の姿勢を認識するための計算量が低減され得る。その結果、基板処理装置1において、対象部品の姿勢の認識を効率良く行うことができる。
【0380】
また、上記第1実施形態では、対象部品についての正常情報は、許容範囲内にある場合における対象部品の姿勢に係る情報を含んでいなくてもよい。換言すれば、対象部品についての正常情報は、対象部品が正常であるとされる1つの三次元の設計情報に基づいて設定されてもよい。
【0381】
また、上記第1実施形態では、対象部品として、チャック9と、ガード23と、ノズル33とを例にとって説明した。しかしながら、本発明は、このような構成に限定されない。例えば、上記第1実施形態のように、複数の部品が対象部品として設定されてもよいが、単数の部品が対象部品として設定されてもよい。換言すれば、探索処理を行う対象の部品である対象部品は、チャック9、ガード23およびノズル33のうちの1つ以上の部品であってもよいし、基板処理装置1を構成する部品のうち、回転移動または平行移動などの各種の移動を行う他の1つ以上の部品であってもよい。
【0382】
また、上記第1実施形態では、各対象部品について、原点位置以外の1回の要確認タイミングで一度だけ探索処理を行っている。しかしながら、本発明はこれに限定されない。例えば、ノズル33について、原点位置と、ノズル33が吐出位置に位置するように設定されたタイミングとの間に、複数の要確認タイミングで探索処理を行うように設定してもよい。これにより、ノズル33が原点位置と吐出位置との間に位置するように設定された複数の要確認タイミングにおいて異常が検出された場合には、例えば、ノズル移動機構35によるノズル33の移動速度に関する異常として検出され得る。また、ガード23について、原点位置と処理位置との間に位置するように設定された複数のタイミングを複数の要確認タイミングとしてもよい。この場合には、例えば、ガード移動機構25によるガード23の移動速度に関する異常も検出され得る。また、上記第1実施形態では、要確認タイミングにおいて、探索処理および異常検出を行った。しかしながら、要確認タイミングの設定は、必須としなくてもよい。例えば、チャック動作指令などの対象部品を動作させる指令が出され、対象部品が移動したタイミングごとに探索処理および異常の検出を行ってもよい。
【0383】
また、上記第1実施形態では、原点位置における探索処理は、必ずしも行う必要はない。この場合には、例えば、対象部品に係る正常情報は、原点位置における探索処理の結果に基づいて設定されず、対象部品の状態が正常である場合の三次元の設計情報に基づいて設定されてもよい。
【0384】
また、上記第1実施形態では、仮想カメラ位置が、緯度α、経度βおよび距離Dによって規定されたが、これに限られない。例えば、仮想カメラ位置は、球面座標系などの他のルールに従った複数のパラメータで規定されてもよい。
【0385】
また、上記第1実施形態では、基板処理装置1が1台のカメラCMを備えていたが、これに限られない。例えば、基板処理装置1は、2台以上のカメラCMを備えていてもよい。例えば、基板処理装置1は、対象部品ごとの専用のカメラCMを備えていてもよい。
【0386】
また、上記第1実施形態では、制御部45で実現される機能処理部の一部もしくは全部は、例えば、専用の電子回路などのハードウェアで構成されてもよい。
【0387】
また、上記第1実施形態では、基板処理装置1は、基板洗浄装置に限定されるものではなく、熱処理装置、露光装置、塗布現像装置、計測装置または検査装置などの基板の処理を行う基板処理装置であれば良い。基板処理装置1が基板洗浄装置である場合には、基板処理装置1は、複数の基板Wを一括して洗浄するバッチ式の基板洗浄装置であっても良い。
【0388】
なお、上記第1実施形態および各種変形例をそれぞれ構成する全部または一部を、適宜、矛盾しない範囲で組み合わせ可能であることは、言うまでもない。
【符号の説明】
【0389】
1 基板処理装置
23 ガード
33,33A,33B ノズル
3dm 三次元モデル(3Dモデル)
45b 記憶部
57 設計情報
61 探索処理部
6112 第1形状情報取得部
6113 第1算出部
6114 第1検出部
6122 分割面生成部
6123 第2形状情報生成部
6124 第2算出部
6125 第2検出部
63 異常検出部
9 チャック
CM カメラ
Ir1 実画像
Ir3,Ir4 エッジ画像
Iv1 リファレンス画像
Ln1,Ln11,Ln12,Ln13 直線
P1 仮想カメラ位置
P11 第1仮想カメラ位置
P11m 高一致度仮想カメラ位置
P12 第2仮想カメラ位置
P13,P13a 第3仮想カメラ位置
Po 基準点
Ps1 1番目の基準仮想カメラ位置
Ps2 2番目の基準仮想カメラ位置
As1 面集合体
Ss1 1番目の基準仮想分割面
Ss2 2番目の基準仮想分割面
St1,St1a,St1b,St1c 仮想面
St1m 高一致度仮想面
St2,St3,St3a 仮想分割面
Sv1,Sv2,SvT1 球面
W 基板