(57)【要約】【課題】輪郭が不安定なワークを検出する際に、ワーク上に略同形の形状が複数存在している場合でもワークの誤認識を防ぐとともに、ワークの正確な位置姿勢を認識する画像処理装置を提供する。【解決手段】鋳物部品等の輪郭が不安定なワーク７をパターンマッチングで認識する場合、まずワーク７の輪郭を認識して、その結果を使ってワーク上の所定部位８及び１０を探索する範囲やパラメータを調整する。調整された探索範囲やパラメータを使ってワーク上の所定部位を認識することで、同形の形状が複数存在した場合でもワークの誤認識を防ぐとともに、ワークの正確な位置姿勢を認識することができる。【選択図】図２
2010078513.tif 000002
【特許請求の範囲】
【請求項１】
ワークを捉えた対象画像に画像処理を行って前記ワークの位置を求める画像処理装置であって、
対象画像内において、パターンマッチングを用いてワークの輪郭からワークの位置を仮位置として認識する仮位置認識手段と、
前記仮位置認識手段が認識したワークの仮位置に基づいて、該ワーク上の所定部位を探索する範囲又はパラメータを調整して該ワーク上の所定部位の位置を認識する所定部位認識手段と、
前記仮位置と、前記所定部位認識手段が認識した所定部位の位置とからそれらの相対位置関係を求める相対位置計算手段と、
基準となるワークについて、前記相対位置計算手段が求めた前記相対位置関係を記憶する記憶手段と、
前記基準となるワークについて求めた相対位置関係と、認識対象ワークについて前記相対位置計算手段が求めた相対位置関係とに基づいて、前記認識対象ワークの輪郭から認識された仮位置を、該ワーク上の所定部位によって表現される本来の位置に変換するための調整量を求める調整量計算手段と、
前記調整量計算手段が求めた調整量を、前記認識対象ワークの仮位置に乗じることにより、前記認識対象ワークの位置姿勢を求める位置姿勢計算手段と、
を備えたことを特徴とする画像処理装置。
【請求項２】
対象画像内において、パターンマッチングを用いてワークの輪郭から該ワークの位置及び角度、スケール、扁平率を認識する手段をさらに備え、
前記所定部位認識手段は、ワークを仮に認識した位置と、該ワークの角度、スケール及び扁平率の少なくとも１つとに基づいて、該ワーク上の所定部位を探索する範囲又はパラメータを調整して該ワーク上の所定部位の位置を認識する、請求項１に記載の画像処理装置。
【請求項３】
ワーク上の所定部位は１点以上であり、前記認識対象ワークの認識された位置に対する調整量が位置又は角度である、請求項１又は２に記載の画像処理装置。
【請求項４】
ワーク上の所定部位は２点以上であり、前記認識対象ワークの認識された位置に対する調整量が位置及び角度である、請求項１又は２に記載の画像処理装置。
【請求項５】
ワーク上の所定部位は３点以上であり、前記認識対象ワークの認識された位置に対する調整量が位置、角度、スケール及び扁平率である、請求項１又は２に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処置装置に関し、特には、予め指定された対象物をカメラから得られた入力画像中から認識する機能を備えた画像処理装置に関する。
【背景技術】
【０００２】
予め指定された対象物をカメラから得られた入力画像中から認識する画像処理装置は、ＦＡ（ファクトリーオートメーション）の分野で使用されるものが代表的である。このような画像処理装置は例えば、工業製品をカメラで撮像し、得られた画像中からその製品の位置や姿勢を認識して、ロボットでその製品をハンドリングする場合に使用される。
【０００３】
このような製品（ワーク）の位置姿勢を求める画像処理装置としては、例えば特許文献１に記載されている、物体の輪郭を用いてワークの位置姿勢を認識するものが公知である。こうした画像処理装置を適用する際には、照明の変動や障害物による隠蔽といった環境の変動、あるいは、輪郭の形状誤差といった不確定な要素の影響がしばしば認識の妨げとなる。そこで、特許文献２に記載の技術は、認識する対象の全体パターンを、特徴的な部分の局所パターンとそうでない部分との連結パターンに分け、認識する対象を含む画像から局所パターンを認識し、その部分の情報を基にして全体パターンの変形（位置、回転、スケール変動）を推定することにより、上述の問題の解決を図っている。
【０００４】
【特許文献１】特開昭６０−２５８６８９号公報
【特許文献２】特開２００３−２１６９３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ワークの輪郭が安定している場合には、特許文献１で示されている画像処理装置等でも、比較的安定してワークを認識することができる。ここで、例えばワークが鋳物部品の場合、同一の金型を使って製造するロットではワークの輪郭の個体差は小さいが、金型を変更して別に製造するロットではワークの輪郭に個体差が発生するため、適切に認識できない虞がある。このような場合、特許文献２で示された技術を使えば、ワーク上の加工箇所等の、図面上で位置が決められているワークの部分的な特徴箇所を認識対象として選択することで、全体の位置を決定することができる。しかし、こうしたワーク上の加工箇所は、丸穴など比較的単純な形状になることが多く、同形の形状の箇所が複数存在することがしばしば起こる。このような場合には、同形の別の箇所を誤認識してしまう虞がある。
【０００６】
そこで本発明は、略同形の形状のワークが複数存在している場合でもワークの誤認識を防ぐとともに、ワークの正確な位置姿勢を認識する画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、請求項１に記載の発明は、ワークを捉えた対象画像に画像処理を行って前記ワークの位置を求める画像処理装置であって、対象画像内において、パターンマッチングを用いてワークの輪郭からワークの位置を仮位置として認識する仮位置認識手段と、前記仮位置認識手段が認識したワークの仮位置に基づいて、該ワーク上の所定部位を探索する範囲又はパラメータを調整して該ワーク上の所定部位の位置を認識する所定部位認識手段と、前記仮位置と、前記所定部位認識手段が認識した所定部位の位置とからそれらの相対位置関係を求める相対位置計算手段と、基準となるワークについて、前記相対位置計算手段が求めた前記相対位置関係を記憶する記憶手段と、前記基準となるワークについて求めた相対位置関係と、認識対象ワークについて前記相対位置計算手段が求めた相対位置関係とに基づいて、前記認識対象ワークの輪郭から認識された仮位置を、該ワーク上の所定部位によって表現される本来の位置に変換するための調整量を求める調整量計算手段と、前記調整量計算手段が求めた調整量を、前記認識対象ワークの仮位置に乗じることにより、前記認識対象ワークの位置姿勢を求める位置姿勢計算手段と、を備えたことを特徴とする画像処理装置を提供する。
【０００８】
請求項２に記載の発明は、請求項１に記載の画像処理装置において、対象画像内において、パターンマッチングを用いてワークの輪郭から該ワークの位置及び角度、スケール、扁平率を認識する手段をさらに備え、前記所定部位認識手段は、ワークを仮に認識した位置と、該ワークの角度、スケール及び扁平率の少なくとも１つとに基づいて、該ワーク上の所定部位を探索する範囲又はパラメータを調整して該ワーク上の所定部位の位置を認識する、画像処理装置を提供する。
【０００９】
請求項３に記載の発明は、請求項１又は２に記載の画像処理装置において、ワーク上の所定部位は１点以上であり、前記認識対象ワークの認識された位置に対する調整量が位置又は角度である、画像処理装置を提供する。
【００１０】
請求項４に記載の発明は、請求項１又は２に記載の画像処理装置において、ワーク上の所定部位は２点以上であり、前記認識対象ワークの認識された位置に対する調整量が位置及び角度である、画像処理装置を提供する。
【００１１】
請求項５に記載の発明は、請求項１又は２に記載の画像処理装置において、ワーク上の所定部位は３点以上であり、前記認識対象ワークの認識された位置に対する調整量が位置、角度、スケール及び扁平率である、画像処理装置を提供する。
【発明の効果】
【００１２】
本発明に係る画像処理装置によれば、先ずワークの輪郭を認識して、その結果を使ってワーク上の所定部位を探索する範囲やパラメータを調整し、さらに調整された探索範囲やパラメータを使ってワーク上の所定部位を認識することにより、同形の形状が複数存在した場合でもワークの誤認識が防止され、ワークの正確な位置姿勢が認識可能となる。従って、鋳物部品のように輪郭が不安定なワークであっても、安定してその位置を認識することができる。また、ワーク上の所定部位を認識する前に、ワークの輪郭を認識し、ワーク輪郭から得られた認識結果を用いて、ワーク上の所定部位を認識するので、所定部位と同形の箇所が複数存在しても、誤認識することがない。
【発明を実施するための最良の形態】
【００１３】
図１は、本発明に係る画像処理装置の一実施形態の構成を示すブロック図である。パーソナルコンピュータ等のコンピュータによって実現可能な画像処理装置１は、カメラ２による撮像画像を入力とし、所定の画像処理を行い、認識対象であるワーク（後述）の位置姿勢を求める画像処理部３と、画像処理部３による画像処理に使用されるデータを蓄積・記憶するデータ格納部５とを備えている。画像処理部３の処理結果は、モニタ４に出力することができる。また、画像処理装置１の処理結果は、ロボット６に送られる。ロボット６は付属のコントローラ（図示省略）により、画像処理部３で計算された認識対象ワークの位置姿勢データに基づいて、該ワークを把持するように制御される。
【００１４】
図２は、カメラ２によって撮像された、認識対象ワークの一例である鋳物物品７の画像の一例を示す。図示例の鋳物物品７は、自動車のエンジンに使用される部品であって、後述する部位８及び１０を含む複数の開口部を有している。鋳物部品すなわちワーク７の外形の輪郭は、実際には個体差によるばらつきがあり、この輪郭だけでワーク７の位置姿勢を認識しようとすると、意図的に画像の分解能を下げて細部の違いを考慮しない（無視する）画像処理をする等の工夫が必要となる。しかし、このような工夫によって認識自体はできるようになったとしても、細部の違いを考慮しないため、同一のワークに対する認識結果が各回毎に異なる可能性がある。
【００１５】
図３は、ワーク７の外形の輪郭を用いてワーク７の位置姿勢を認識しようとした際に、ワーク７の輪郭の変化によりワーク７の位置姿勢が変わることを説明する図である。ワーク７の位置姿勢１１はワークの輪郭が実線の時のワークの位置姿勢であり、ワークの位置姿勢１２はワークの輪郭が点線の時のワークの位置姿勢である。なお図３の例では、ワーク７の位置を表す点の例として重心を使用し、該重心の位置がワークの輪郭の変化によって変化する様子を示している。但し一般的には、ワークの輪郭の変化によってワークの位置だけでなく姿勢も変化する場合もある。
【００１６】
一方、ワーク７は、加工時や組立時等にワーク７の位置を特定する際のポイントとなる部位８及び部位１０を、例えば予め加工された基準穴として有している。図３に例示したように、ワークの外形の輪郭でワークの位置姿勢を認識しようとすると、ワークの位置姿勢はワークの輪郭の変化により変わるが、部位８や部位１０のような箇所は、ワークの外形の輪郭が変化しても位置が変わらない。そこで、この部位８及び部位１０を使って鋳物部品７の位置姿勢を正確に認識する手順を本発明の実施例として説明する。
【００１７】
先ず、教示作業として、鋳物部品７の基準ワークを用意し、認識するモデルの設定を行う。図４は、その処理の流れを示すフローチャートである。
先ずステップＴＳ０において、カメラを用いて基準ワークを含む画像を撮像する。次にステップＴＳ１において、パターンマッチングにより、認識するモデルとして基準ワークの外形の輪郭を設定し、基準ワークを認識する際に探索する範囲と、認識するためのパラメータとを調整する。パラメータとして、角度やスケール、扁平率等が挙げられる。
【００１８】
ステップＴＳ２において、ステップＴＳ１で設定したモデルを使って基準ワークを認識する。認識した基準ワークでの結果を、Ｗ１としてデータ格納部５に記憶する。基準ワークを認識した結果Ｗ１は、基準ワークの位置、角度、スケール、扁平率のデータを含んだ次式（１）で表すことができる。
【００１９】
【数１】
2010078513.tif 000003
【００２０】
式（１）において、ｘ、ｙは基準ワークの検出位置、ｒ11〜ｒ22は基準ワークの角度、スケール、扁平率を表す。基準ワークの位置（Ｗ1.Trans）はｘ、ｙを用いて式（２−１）によって表され、基準ワークの角度（Ｗ1.Ang）、（Ｗ1.Scale）及び扁平率（Ｗ1.Aspect）は、ｒ11〜ｒ22を用いてそれぞれ次式（２−２）、（２−３）及び（２−４）によって表すことができる。
【００２１】
【数２】
2010078513.tif 000004
【００２２】
ステップＴＳ３において、さらに、パターンマッチングで認識するモデルとして基準ワーク７上の部位８及び部位１０をそれぞれ設定し、部位８及び部位１０が認識できるように探索する範囲や、角度、スケール及び扁平率といったパラメータを調整する。図５は、所定部位を探索する範囲の設定例を示す。探索範囲１３は基準ワーク７上の部位８を探索する範囲であり、探索範囲１４は基準ワーク７上の部位１０を探索する範囲である。図５に示すように、所定部位を探索する範囲からは、同形のものなど誤認識しやすい対象が含まれる可能性のある箇所を除外しておくことが好ましい。例えば、鋳物部品の部位８を探索する際、部位８に近い形状を有する部位９の周辺も探索する範囲に含まれていると、部位９の位置を部位８として誤認識する恐れがある。
【００２３】
ステップＴＳ４において、ステップＴＳ３で設定したモデルを使って基準ワーク上の部位８及び部位１０の位置を認識する。ここで認識した基準ワーク上の部位８の位置をＰ１、部位１０の位置をＰ２としてデータ格納部５に保存する。ここで、Ｐ１及びＰ２は、次式（３）で示される検出位置を表すものである。
【００２４】
【数３】
2010078513.tif 000005
【００２５】
ステップＴＳ５において、ステップＴＳ２で認識した基準ワークの検出位置（Ｗ1.Trans）と基準ワーク上の部位８の位置（Ｐ１）及び部位１０の位置（Ｐ２）の相対位置関係を計算してデータ格納部５に記憶する。相対位置関係ＲＥＦは次式（４）で計算される。
【００２６】
【数４】
2010078513.tif 000006
【００２７】
次に実行時の処理の流れを、図６のフローチャートを用いて説明する。まず、ステップＲＳ０において、カメラを用いてワークを含む画像を撮像し、ステップＲＳ１においてワークの輪郭からワークの仮位置を認識する。認識した結果をＷ１’とすると、Ｗ１’は、基準ワークで認識した結果Ｗ１と同様に、ワークの位置、角度、スケール、扁平率のデータを含んだものであり、次式（５）で表すことができる。
【００２８】
【数５】
2010078513.tif 000007
【００２９】
ステップＲＳ２において、ステップＴＳ２で記憶された基準ワークの認識結果（Ｗ１）とステップＲＳ１におけるワークの認識結果（Ｗ１’）とを使って、次のステップＲＳ３で必要とするワーク上の所定部位の探索範囲やパラメータを調整する。ステップＴＳ３で設定したワーク上の部位８の探索範囲をＳ１とし、それに対応するステップＲＳ３の探索範囲Ｓ１’を求める方法を以下に示す。探索範囲Ｓ１は、次式（６−１）〜（６−４）でそれぞれ規定される４点Ａ〜Ｄを頂点とする矩形として表すことができる。
【００３０】
【数６】
2010078513.tif 000008
【００３１】
ここでＰｏは原点から探索範囲のコーナーへのベクトル、Ｖｘは該コーナーから矩形の長辺に沿った方向ベクトル、Ｖｙは矩形の短辺に沿った方向ベクトルを表す。ステップＲＳ３で使用する探索範囲Ｓ１’を求めるには、Ａ〜Ｄに対応する頂点Ａ’〜Ｄ’を求めればよい。そのための計算式を次式（７−１）〜（７−８）に示す。なお以下、演算子「×」は行列同士の乗算を表すものとする。
【００３２】
【数７】
2010078513.tif 000009
【００３３】
図７は、実行時に計算された探索範囲の一例を示す図である。探索範囲１５はワーク７上の部位８を探索する範囲であり、探索範囲１６はワーク７上の部位１０を探索する範囲である。ワークの位置に応じて、ワーク上の所定部位を探索する範囲が調整される。
【００３４】
また、ステップＴＳ３において、ワーク上の部位８を角度がAng_MAXからAng_MIN、スケールがScale_MAXからScale_MIN、扁平率がAspect_MAXからAspect_MINの範囲にあるワークを認識するように設定したとすると、ステップＲＳ３で使用するパラメータは次式（８−１）〜（８−９）で計算される。
【００３５】
【数８】
2010078513.tif 000010
【００３６】
ここで、Ｗ1'.AngはＷ1'の角度、Ｗ1'.ScaleはＷ1'のスケール、Ｗ1'.AspectはＷ1'の扁平率を表す。
【００３７】
ワーク上の部位１０においても同様の処理を行ない、部位１０の探索範囲及びパラメータを調整する。
【００３８】
ステップＲＳ３において、ステップＲＳ２で求めたパラメータを使ってワーク上の部位８及び部位１０の位置を認識する。ここで認識したワーク上の部位８の位置をＰ１’、部位１０の位置をＰ２’とする。Ｐ１’及びＰ２’は、次式（９）で示す検出位置を表すものである。
【００３９】
【数９】
2010078513.tif 000011
【００４０】
ステップＲＳ４において、ワーク認識位置の調整量Ｔを求める。調整量Ｔは、ワークの外形から認識した仮位置を、ワーク上の部位８や部位１０などによって表現される本来の位置に変換するための量であり、ワークの外形が基準ワークのそれと全く同一だった場合には調整量Ｔは単位行列となり、仮位置の変換は行われない。調整量Ｔは、次式（１０）で表すものとする。
【００４１】
【数１０】
2010078513.tif 000012
【００４２】
調整量Ｔを求めるためには、先ず次式（１１−１）、（１１−２）に示される値を計算する。
【００４３】
【数１１】
2010078513.tif 000013
【００４４】
ここで、ＡＣＴとＲＥＦとの間には次式（１２）に示す関係が成り立つ。
【００４５】
【数１２】
2010078513.tif 000014
【００４６】
上式（１２）を満足する値ａ〜ｆを計算し、ワーク認識位置の調整量Ｔを求める。調整するのが位置と姿勢の場合は、次式（１３−１）〜（１３−３）に示すような条件が存在する。
【００４７】
【数１３】
2010078513.tif 000015
【００４８】
上記条件を満たすａ〜ｆを求めれば、調整量Ｔが定まる。このＴを用いた次式（１４）により、仮位置Ｗ1’を本来の位置Ｗ1”に変換することができる。
【００４９】
【数１４】
2010078513.tif 000016
【００５０】
仮位置Ｗ1’に調整量Ｔを乗じる理由は、後述するようにＴの求め方を変えるだけで位置姿勢の調整だけでなく、位置だけの調整や姿勢（角度）だけの調整などに対応できることである。例えば、ワークが鋳物であってその形状にばらつきがあり、おおよその位置姿勢は外形から把握可能であるが、正確な位置はワーク所定部位に頼りたい、しかし所定部位として利用可能な部位は丸穴一箇所のみ（すなわち角度を確定させることはできない）、従って正確な位置を所定部位（丸穴１箇所）で調整し、姿勢（角度）についてはワーク外形から求められる姿勢をそのまま用いたい、という場合を考える。このような場合、後述する位置のみを調整する量としてＴを求めることで、こうした場合に柔軟かつ容易に対応することができる。
【００５１】
さて上記にてワーク上で検出する所定部位が２点でワークの位置姿勢を調整する量を計算する方法について説明したが、ワーク上の所定部位が１点の場合には、次の制約条件を付加して位置又は角度のみを調整する量を計算する。具体的には、位置だけを調整する場合、次式（１５−１）、（１５−２）が制約条件となる。
【００５２】
【数１５】
2010078513.tif 000017
【００５３】
一方、角度だけを調整する場合、次式（１６−１）〜（１６−４）が制約条件となる。
【００５４】
【数１６】
2010078513.tif 000018
【００５５】
また、ワーク上で検出する所定部位が３点以上の場合、ワークの位置姿勢だけでなく変形量（スケールや扁平率の変化）を計算することができる。３点以上の場合は、式（１２）は次式（１７−１）、（１７−２）のように変形できる。
【００５６】
【数１７】
2010078513.tif 000019
【００５７】
従って、次式（１８）によりａ〜ｆを計算することができる。
【００５８】
【数１８】
2010078513.tif 000020
【００５９】
ここで、ＲＥＦi.ｘ及びＲＥＦi.ｙはそれぞれＲＥＦiのｘ方向及びｙ方向成分を表し、ＡＣＴi.ｘ及びＡＣＴi.ｙはそれぞれＡＣＴiのｘ方向及びｙ方向成分を表している。
【００６０】
ステップＲＳ５において、ステップＲＳ４で計算した調整量Ｔを、ステップＲＳ１でワークを認識した結果Ｗ１’に乗じて、鋳物部品７の位置を正確に認識した結果Ｗ１”を得る。この際、計算式は式（１４）を用いることができる。
【００６１】
上述のような鋳物部品等の輪郭が不安定なワークをパターンマッチングで認識する場合、認識対象としてワークの輪郭を設定すると正確な位置が得られない。そのため、加工穴のようなワークの所定部位（ワークの位置を表現する要となる部位）を認識対象として設定する方法がとられるが、そうした対象は、往々にして形状が単純であり、同形の形状が複数存在して、誤認識を招くという問題があった。そこで本発明では、まずワークの輪郭を認識して、その結果を使ってワーク上の所定部位を探索する範囲やパラメータを調整する。調整された探索範囲やパラメータを使ってワーク上の所定部位を認識することで、同形の形状のワークが複数存在している場合でも、ワークの誤認識を防ぐとともに、ワークの正確な位置姿勢を認識することができる。
【図面の簡単な説明】
【００６２】
【図１】本発明に係る画像処理装置の一実施形態の概略構成を示すブロック図である。
【図２】カメラで撮像して得られる画像の一例を示す図である。
【図３】ワークの輪郭の変化によりワークの重心が変わることを説明する図である。
【図４】教示時の処理の手順を示すフローチャートである。
【図５】ワークの各所定部位の探索範囲の設定例を示す図である。
【図６】実行時の処理の手順を示すフローチャートである。
【図７】実行時におけるワークの所定部位の探索範囲が、ワークの位置に応じて調整される例を示す図である。
【符号の説明】
【００６３】
１    画像処理装置
２    カメラ
３    画像処理部
４    モニタ
５    データ格納部
６    ロボット
７    ワーク
８、９、１０    部位
１１、１２    重心
１３、１４、１５、１６    探索範囲
【図１】
2010078513.tif 000021
【図２】
2010078513.tif 000022
【図３】
2010078513.tif 000023
【図４】
2010078513.tif 000024
【図５】
2010078513.tif 000025
【図６】
2010078513.tif 000026
【図７】
2010078513.tif 000027