(57)【要約】【課題】誤検出を防止する。【解決手段】パターンマッチング部４１２は、基本エッジ画像５１１を取得し、追加エッジ画像５１２を取得し、基本エッジ画像５１１に追加エッジ画像５１２を追加して統合エッジ画像５１０を求める。パターンマッチング部４１２は、検出対象を含む被探索画像５０３からエッジを抽出した被探索エッジ画像５１３を取得し、統合エッジ画像５１０と被探索エッジ画像５１３との間でパターンマッチングを実施して、被探索エッジ画像５１３における複数の探索位置の各々で統合エッジ画像５１０とのマッチングスコアを求め、複数のマッチングスコアに基づいて検出対象を検出する。【選択図】図３
2020184110.tif 000002
【特許請求の範囲】
【請求項１】
処理部を有する画像処理装置の画像処理方法であって、
前記処理部が、
基本エッジ画像を取得し、
追加エッジ画像を取得し、
前記基本エッジ画像に前記追加エッジ画像を追加して統合エッジ画像を求め、
検出対象を含む被探索画像からエッジを抽出した被探索エッジ画像を取得し、
前記統合エッジ画像と前記被探索エッジ画像との間でパターンマッチングを実施して、前記被探索エッジ画像における複数の探索位置の各々で前記統合エッジ画像とのマッチングスコアを求め、
複数の前記マッチングスコアに基づいて前記検出対象を検出することを特徴とする画像処理方法。
【請求項２】
前記処理部が、
前記追加エッジ画像に含まれるエッジ画素において、前記基本エッジ画像に含まれるエッジ画素と重ならないエッジ画素を、前記基本エッジ画像に追加して、前記統合エッジ画像を求めることを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記複数のマッチングスコアの各々は、前記統合エッジ画像において前記基本エッジ画像に相当する部分と前記被探索エッジ画像との間の第１スコアと、前記統合エッジ画像において前記追加エッジ画像に相当する部分と前記被探索エッジ画像との間の第２スコアとを含むことを特徴とする請求項１又は２に記載の画像処理方法。
【請求項４】
前記処理部が、
前記第１スコア及び前記第２スコアのうち、一方のみが閾値以上であれば、前記閾値以上のものを候補スコアとして選択し、前記第１スコア及び前記第２スコアの両方が閾値以上であれば、いずれかを候補スコアとして選択する選択処理を、前記複数のマッチングスコアの各々について行い、
前記選択処理にて選択した前記候補スコアの中から１つを選んで、前記検出対象を検出することを特徴とする請求項３に記載の画像処理方法。
【請求項５】
前記処理部が、前記第１スコア及び前記第２スコアの両方が閾値以上であれば、前記第１スコアを候補スコアすることを特徴とする請求項４に記載の画像処理方法。
【請求項６】
前記処理部が、前記選択処理にて選択した前記候補スコアの中から最大のものを１つ選ぶことを特徴とする請求項４又は５に記載の画像処理方法。
【請求項７】
前記処理部が、前記選択処理にて選択した前記候補スコアの中に、前記第１スコアである候補スコアがあれば、前記第１スコアである候補スコアのうち、最大のものを１つ選び、なければ、前記選択処理にて選択した前記候補スコアの中から最大のものを１つ選ぶことを特徴とする請求項４又は５に記載の画像処理方法。
【請求項８】
前記追加エッジ画像は、前記基本エッジ画像を用いてパターンマッチングを実施して前記検出対象を検出できなかった場合に追加して取得されるエッジ画像であることを特徴とする請求項１乃至７のいずれか１項に記載の画像処理方法。
【請求項９】
前記処理部が、マニピュレータに保持させたワークを撮像装置に撮像させて、前記検出対象として前記ワークが写り込んだ前記被探索画像を取得し、請求項１乃至８のいずれか１項に記載の画像処理方法による検出結果に基づいて前記マニピュレータを動作させて、物品を製造する物品の製造方法。
【請求項１０】
処理部を有する画像処理装置であって、
前記処理部が、
基本エッジ画像を取得し、
追加エッジ画像を取得し、
前記基本エッジ画像に前記追加エッジ画像を追加して統合エッジ画像を求め、
検出対象を含む被探索画像からエッジを抽出した被探索エッジ画像を取得し、
前記統合エッジ画像と前記被探索エッジ画像との間でパターンマッチングを実施して、前記被探索エッジ画像における複数の探索位置の各々で前記統合エッジ画像とのマッチングスコアを求め、
複数の前記マッチングスコアに基づいて前記検出対象を検出することを特徴とする画像処理装置。
【請求項１１】
ワークを保持可能なマニピュレータと、
前記マニピュレータに保持された前記ワークを撮像可能な撮像装置と、
前記検出対象として前記ワークが写り込んだ前記被探索画像を前記撮像装置から取得する請求項１０に記載の画像処理装置と、を備えることを特徴とするロボットシステム。
【請求項１２】
請求項１乃至８のいずれか１項に記載の画像処理方法をコンピュータに実行させるためのプログラム。
【請求項１３】
請求項１２に記載のプログラムを記録した、コンピュータにより読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パターンマッチングの技術に関する。
【背景技術】
【０００２】
ワークの位置などを計測する方法の１つとして、パターンマッチングが知られている。パターンマッチングは、ワークを撮像し処理を施した画像内を、モデルで探索する手法である。撮像画像には、ワークに対応する検出対象が含まれており、撮像画像にエッジ抽出処理を施すことで、検出対象の外形がエッジとして抽出され、エッジを含むエッジ画像が生成される。生成されたエッジ画像内をモデルとなるエッジ画像で探索することで、検出対象が検出される。しかし、このようなパターンマッチングの処理において、検出対象が検出されないことがある。これは、撮像条件などの様々な要因により、画像上の検出対象がモデルから乖離していることがあるためである。
【０００３】
特許文献１には、撮像条件の差異により、ベースモデルデータと追加モデルデータとの間で特徴が異なる領域を除外して、特徴が変化しない領域間でパターンマッチングすることが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１３６３１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１に開示された方法では、検出対象が検出されなくなるのは防止できるが、モデルデータにおいてエッジの数が少なくなるため、検出対象を検出したとしても、それが誤っていることがあった。
【０００６】
本発明は、誤検出を防止することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、処理部を有する画像処理装置の画像処理方法であって、前記処理部が、基本エッジ画像を取得し、追加エッジ画像を取得し、前記基本エッジ画像に前記追加エッジ画像を追加して統合エッジ画像を求め、検出対象を含む被探索画像からエッジを抽出した被探索エッジ画像を取得し、前記統合エッジ画像と前記被探索エッジ画像との間でパターンマッチングを実施して、前記被探索エッジ画像における複数の探索位置の各々で前記統合エッジ画像とのマッチングスコアを求め、複数の前記マッチングスコアに基づいて前記検出対象を検出することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、誤検出を防止できる。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態に係るロボットシステムの説明図である。
【図２】第１実施形態に係るマニピュレータの先端部分の説明図である。
【図３】第１実施形態に係るロボットシステムの制御系を示すブロック図である。
【図４】（ａ）及び（ｂ）は、第１実施形態に係る画像処理方法のフローチャートである。
【図５】第１実施形態に係る処理を示すフローチャートである。
【図６】第１実施形態に係る画像の説明図である。
【図７】（ａ）は、第１実施形態に係る基本モデル画像の部分画像の説明図である。（ｂ）は、第１実施形態に係る基本エッジ画像の説明図である。
【図８】（ａ）は、第１実施形態に係る追加モデル画像の部分画像の説明図である。（ｂ）は、第１実施形態に係る追加エッジ画像の説明図である。
【図９】第１実施形態に係る処理を示すフローチャートである。
【図１０】（ａ）及び（ｂ）は、第１実施形態に係る処理の説明図である。
【図１１】第１実施形態に係る統合エッジ画像の説明図である。
【図１２】（ａ）は、第１実施形態に係る被探索画像の説明図である。（ｂ）は、第１実施形態に係る被探索エッジ画像の説明図である。
【図１３】第１実施形態に係る処理のフローチャートである。
【図１４】（ａ）及び（ｂ）は、第１実施形態におけるマッチング候補の例の説明図である。
【図１５】第１実施形態に係る処理のフローチャートである。
【図１６】第２実施形態に係る画像処理方法のフローチャートである。
【図１７】第３実施形態に係る画像処理方法のフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
［第１実施形態］
図１は、第１実施形態に係るロボットシステムの説明図である。図１に示すロボットシステム１００は、生産ラインに配置される産業用ロボットである。ロボットシステム１００は、マニピュレータ２００と、撮像装置の一例であるカメラ３００と、マニピュレータ２００及びカメラ３００を制御する制御装置４００と、を備えている。第１実施形態では、制御装置４００は、パターンマッチングを行う画像処理装置でもある。また、ロボットシステム１００は、表示装置の一例であるディスプレイ７００を備えている。
【００１１】
マニピュレータ２００は、制御装置４００の制御の下、ワークＷ１を保持可能である。カメラ３００は、制御装置４００の制御の下、マニピュレータ２００に保持されたワークＷ１を撮像可能である。ディスプレイ７００は、制御装置４００の制御の下、画像を表示することができる。第１実施形態では、ロボットシステム１００は、マニピュレータ２００に、第１ワークとしてのワークＷ１を供給するワーク供給装置６００を備えている。ワークＷ１は、マニピュレータ２００に対する位置を計測する対象物である。ここで、第１実施形態において、「位置」とは、並進方向の位置である並進位置と、回転方向の位置、即ち姿勢である回転位置とを含む。
【００１２】
マニピュレータ２００は、ワーク供給装置６００により供給されたワークＷ１を保持して移動させることができる。制御装置４００は、マニピュレータ２００及びカメラ３００を制御して、マニピュレータ２００にワークＷ１を保持させ、カメラ３００にワークＷ１を撮像させる。そして、制御装置４００は、撮像画像に基づいてマニピュレータ２００に対するワークＷ１の位置を計測し、その計測結果に基づいてマニピュレータ２００を動作させてワークＷ１を第２ワークであるワークＷ２に組み付けさせる。図１では、ワークＷ１は、ワークＷ２と嵌合する穴を有する。ワークＷ１をワークＷ２に組み付けることにより、物品の一例である組立品が製造される。
【００１３】
マニピュレータ２００は、アーム２０１と、エンドエフェクタであるハンド２０２とを有する。アーム２０１は、垂直多関節のロボットアームである。アーム２０１は、例えば、７つのリンクと各リンクを揺動又は回動可能に連結する６つの関節とを備えている。各リンクの長さは、固定である。なお、いずれかのリンクを、直動アクチュエータにより伸縮可能に構成してもよい。また、関節の数は、用途や目的に応じて適宜変更してもよい。アーム２０１は、アーム２０１の先端部である先端リンク２１６を有する。ハンド２０２は、先端リンク２１６に取り付けられている。アーム２０１を動作させることにより、ハンド２０２の位置を調整することができる。
【００１４】
図２は、第１実施形態に係るマニピュレータ２００の先端部分の説明図である。ハンド２０２は、先端リンク２１６に取り付けられたハンド本体２２１と、ハンド本体２２１に開閉駆動される複数、例えば３つの指２２２と、を備える。複数の指２２２同士を互いに近づける閉動作により、複数の指２２２によってワークＷ１を把持することができる。なお、第１実施形態では、エンドエフェクタがハンド２０２であるが、これに限定するものではなく、ワークＷ１を保持可能であれば、いかなるエンドエフェクタであってもよい。
【００１５】
ワークＷ１は、正面視したときの外形が円形の円環形状であり、ワークＷ１の位置の基準となるように、ワークＷ１の端面にマークＭＫ１が設けられている。マークＭＫ１は、例えば正方形状のマークである。マークＭＫ１は、ワークＷ１に貼付されるシールであってもよいしワークＷ１自体に形成された凹凸又はビス穴等であってもよい。
【００１６】
図１に示すようにカメラ３００は、架台３１に固定され、マニピュレータ２００に保持されたワークＷ１、即ちハンド２０２に把持されたワークＷ１を、上方から撮像可能となっている。カメラ３００によってワークＷ１及びその周辺を撮像することにより、ワークＷ１に対応する検出対象を含む被探索画像が生成される。
【００１７】
図３は、第１実施形態に係るロボットシステム１００の制御系を示すブロック図である。アーム２０１の各関節には、モータ２５０と、不図示の減速機と、モータ２５０の回転角度を検出するエンコーダ２５１と、が設けられている。モータ２５０及びエンコーダ２５１は、モータ制御部２５２に接続されている。モータ制御部２５２は、制御装置４００と通信して、モータ２５０及びエンコーダ２５１を制御する。
【００１８】
制御装置４００は、１つのコンピュータにより構成されている。制御装置４００は、図３に示すように、処理部の一例であるＣＰＵ４０１を有する。また、制御装置４００は、記憶部であるＲＡＭ４０２、ＲＯＭ４０３、及びＨＤＤ４０４を有する。ＲＡＭ４０２は、カメラ３００又は外部機器から入力を受けた基本モデル画像５０１、追加モデル画像５０２、及び被探索画像５０３と、これら画像に処理を施した画像などのデータを一時的に記憶することができる。ＲＯＭ４０３は、ＣＰＵ４０１に実行させるプログラムとして、ロボット制御プログラム４２１、及びパターンマッチングプログラム４２２を記憶する。ＨＤＤ４０４は、データを記憶することができる。また、制御装置４００は、マニピュレータ２００に設けられたモータ制御部２５２と通信可能な入出力インターフェース回路（Ｉ／Ｆ）４０５を有する。
【００１９】
基本モデル画像５０１は、カメラ３００によって、ある基準となるワークＷ１を撮像することにより得られる、被探索画像内を探索するのに用いる原画像である。追加モデル画像５０２は、カメラ３００によって、あるワークＷ１を撮像することにより得られる、被探索画像内を探索するのに用いる原画像である。この追加モデル画像５０２は、基本モデル画像５０１がＣＰＵ４０１に取得された後、例えば生産ラインの稼働中に、必要に応じて追加的にＣＰＵ４０１に取得される画像である。被探索画像５０３は、カメラ３００によって、生産ラインの稼働中に、あるワークＷ１を撮像することにより得られる原画像である。これら画像５０１，５０２，５０３は、同一種類のワークＷ１を撮像したときの撮像画像ではあるが、それぞれの画像５０１，５０２，５０３に写っているワークＷ１は互いに異なる。
【００２０】
ＲＯＭ４０３は、予め、ロボット制御プログラム４２１、及びパターンマッチングプログラム４２２を記憶している。即ち、ＲＯＭ４０３は、プログラム４２１，４２２を記録した、コンピュータにより読取可能な記録媒体でもある。
【００２１】
ＨＤＤ４０４は、後述する基本エッジ画像５１１、追加エッジ画像５１２、統合エッジ画像５１０、及び被探索エッジ画像５１３などのデータを記憶することができる、データの読み出し、書き込み、及び消去が可能な、不揮発性の記憶装置である。したがって、ＨＤＤ４０４に記憶されたデータは、制御装置４００の電源がオフ状態にされても保持されるようになっている。
【００２２】
ＣＰＵ４０１は、ロボット制御プログラム４２１を実行することにより、ロボット制御部４１１として機能し、パターンマッチングプログラム４２２を実行することにより、パターンマッチング部４１２として機能する。ロボット制御部４１１は、マニピュレータ２００の動作を制御する。パターンマッチング部４１２は、パターンマッチング処理を行い、その結果をロボット制御部４１１に出力する。
【００２３】
また、コンピュータによって読取可能な記録媒体がＲＯＭ４０３であり、ＲＯＭ４０３にプログラム４２１，４２２が記録されているが、これに限定するものではない。プログラム４２１，４２２は、コンピュータによって読取可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。プログラム４２１，４２２を記録する記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、磁気テープ、不揮発性メモリ等を用いることができる。
【００２４】
以下、パターンマッチング部４１２の処理について説明する。図４（ａ）及び図４（ｂ）は、第１実施形態に係るパターンマッチング部４１２による画像処理方法のフローチャートである。パターンマッチングによりワークＷ１の位置を計測するには、モデルが必要となる。第１実施形態では、モデルは、基本エッジ画像５１１と追加エッジ画像５１２とを統合した統合エッジ画像５１０である。
【００２５】
まず、図１のロボットシステム１００により物品の製造を行う前の処理について説明する。パターンマッチング部４１２は、基本エッジ画像５１１を取得する（Ｓ１）。以下、ステップＳ１の処理について説明する。ロボット制御部４１１は、図１のマニピュレータ２００にワークＷ１を把持させ、ワークＷ１がカメラ３００に対向するようにマニピュレータ２００を動作させる。パターンマッチング部４１２は、カメラ３００に所定の条件でワークＷ１を撮像させ、撮像画像である図３の基本モデル画像５０１を生成し、ＲＡＭ４０２に記憶させる。パターンマッチング部４１２は、基本モデル画像５０１からエッジを抽出して、エッジ画像である基本エッジ画像５１１を生成し、生成した基本エッジ画像５１１をＨＤＤ４０４に記憶させる。エッジの抽出には、例えば、ソーベルフィルタやキャニーフィルタ等のエッジ抽出フィルタを用いる。
【００２６】
このように、パターンマッチング部４１２は、基本モデル画像５０１に画像処理を施して基本エッジ画像５１１を取得する。なお、パターンマッチング部４１２は、外部機器から基本エッジ画像５１１を取得するようにしてもよい。
【００２７】
次に、基本エッジ画像５１１のみをモデルとしてパターンマッチングの処理を行うと、検出対象の検出に失敗することがある。そのため、第１実施形態では、パターンマッチング部４１２は、追加してエッジ画像を取得する（Ｓ２）。このエッジ画像を追加エッジ画像５１２とする。追加エッジ画像５１２は、基本エッジ画像５１１を用いてパターンマッチングを実施して検出対象を検出できなかった場合に取得されるのが好ましい。
【００２８】
以下、ステップＳ２の処理について説明する。ロボット制御部４１１は、図１のマニピュレータ２００にワークＷ１を把持させ、ワークＷ１がカメラ３００に対向するようにマニピュレータ２００を動作させる。パターンマッチング部４１２は、カメラ３００に所定の条件でワークＷ１を撮像させ、撮像画像である図３の追加モデル画像５０２を生成し、ＲＡＭ４０２に記憶させる。パターンマッチング部４１２は、追加モデル画像５０２からエッジを抽出して、追加エッジ画像５１２を生成し、生成した追加エッジ画像５１２をＨＤＤ４０４に記憶させる。エッジを抽出する処理は、ステップＳ１と同様である。
【００２９】
次に、パターンマッチング部４１２は、基本エッジ画像５１１と追加エッジ画像５１２とを統合して統合エッジ画像５１０を求め（Ｓ３）、ＨＤＤ４０４に記憶させる。その際、パターンマッチング部４１２は、基本エッジ画像５１１と位置及び縮尺が整合するように追加エッジ画像５１２を変形処理する。なお、上述したように、位置は、並進位置と回転位置とを含む。パターンマッチング部４１２は、基本エッジ画像５１１に、変形処理が施された追加エッジ画像５１２に含まれるエッジのデータを付け加えることで、統合エッジ画像５１０を生成する。
【００３０】
以下、ステップＳ１の処理について具体的に説明する。図５は、第１実施形態に係るエッジ画像を作成する処理を示すフローチャートである。図６は、第１実施形態に係るディスプレイ７００に表示される画像の説明図である。図３のパターンマッチング部４１２は、所定の位置のワークＷ１を、所定の照明条件でカメラ３００にワークＷ１を撮像させる（Ｓ１１）。これにより、図６に示すように、ワークＷ１に対応する画素群５を含む基本モデル画像５０１が得られる。パターンマッチング部４１２は、基本モデル画像５０１をＲＡＭ４０２に記憶させる（Ｓ１２）。
【００３１】
パターンマッチング部４１２は、基本モデル画像５０１をディスプレイ７００に表示させ、オペレータにより指定された矩形領域の部分画像５０１Ｒを切り出す（Ｓ１３）。例えば、オペレータは、不図示のマウスなどのポインティングデバイスを用いて、ディスプレイ７００に表示された基本モデル画像５０１内の画素群５を包含するよう、部分画像５０１Ｒを指定する。指定の仕方は、特に限定するものではないが、例えば矩形領域の対角となる２点をクリックするようにしてもよい。
【００３２】
図７（ａ）は、第１実施形態に係る基本モデル画像５０１の部分画像５０１Ｒの説明図である。パターンマッチング部４１２は、切り出した部分画像５０１Ｒに含まれる複数の画素７０のそれぞれについて、輝度の勾配強度及び勾配方向を算出することで、エッジを抽出する（Ｓ１４）。勾配強度は、図６のＸ方向及びＹ方向のそれぞれについて、例えばソーベルフィルタを使用して算出される。具体的には、パターンマッチング部４１２は、図６に示すように、ある注目画素７１において、Ｘ方向の勾配強度Ｅｘと、Ｙ方向の勾配強度Ｅｙとをそれぞれ算出する。そして、パターンマッチング部４１２は、注目画素７１の勾配強度Ｅを、勾配強度Ｅｘ，Ｅｙの二乗の和の平方根として算出する。この計算式は、式（１）となる。
【数１】
2020184110.tif 000003
【００３３】
また、パターンマッチング部４１２は、勾配強度Ｅｘ及び勾配強度Ｅｙを用いて、式（２）により勾配方向θを算出する。
【数２】
2020184110.tif 000004
【００３４】
図７（ｂ）は、第１実施形態に係る基本エッジ画像５１１の説明図である。パターンマッチング部４１２は、ステップＳ１４において、部分画像５０１Ｒに含まれる全画素の勾配強度Ｅ及び勾配方向θを算出し、勾配強度Ｅが所定の閾値以上である画素をエッジ画素７４として抽出して、基本エッジ画像５１１を生成する。なお、図７（ｂ）において、エッジ画素７４をハッチングで示す矩形領域で図示している。また、図７（ｂ）には、２つのエッジ７２，７３が図示されている。エッジ７２は、ワークＷ１の輪郭に対応し、エッジ７３は、マークＭＫ１の輪郭に対応する。
【００３５】
ここで、エッジ画素７４における座標をエッジ位置座標、勾配強度をエッジ強度、勾配方向をエッジ方向という。エッジ位置座標、エッジ強度、及びエッジ方向のエッジ情報を持つ有効画素であるエッジ画素７４と、エッジ情報を持たない無効画素である画素７５とで基本エッジ画像５１１が構成されている。
【００３６】
基本エッジ画像５１１の画素毎に２チャンネルのデータ領域を設定する。そして、基本エッジ画像５１１のエッジ強度が閾値以上のエッジ画素７４には、有効画素として、１チャンネル目にエッジ強度の値、２チャンネル目にエッジ方向の値が割り当てられる。一方、図７（ｂ）中、白色で示す、エッジ強度が閾値未満の画素７５には、無効画素として、無効値、例えば０が割り当てられる。
【００３７】
なお、エッジ画像として、画素毎に２チャンネルのデータを割り当てた場合について説明したが、これに限定するものではない。例えば、エッジ強度のみを割り当てたエッジ強度画像と、エッジ方向のみを割り当てたエッジ方向画像の２つの画像を１組として、１つのエッジ画像としてもよい。また、エッジ画像として、エッジ強度のみを割り当てたエッジ強度画像、Ｘ方向のエッジ強度のみを割り当てたエッジ強度画像、及びＹ方向エッジ強度のみを割り当てたエッジ強度画像の３つの画像を１組として、１つのエッジ画像としてもよい。
【００３８】
ここで、ワークＷ１の端面を正面視したときにワークＷ１は円形状の外形であり、マークＭＫ１は正方形状であるため、円形状の特徴と、正方形状の特徴とを、エッジとして抽出できるような基本モデル画像５０１を用意するのがよい。しかし、実際には、撮像条件やワークＷ１自体の特性により、エッジが抽出されない部分が存在する。例えば、ワークＷ１において平面状の端面を撮像した場合であっても、図７（ａ）に示す部分画像５０１Ｒのように、明暗が一定ではなく、ワークＷ１の一部分が欠けたように写ることがある。
【００３９】
基本モデル画像５０１から抽出された基本エッジ画像５１１を用いて探索を行う場合、ある程度は、検出対象の検出に成功する。しかし、取り扱うワークＷ１の変化、カメラ３００の校正ずれなど様々な要因による変化により、安定して検出対象を検出できていた基本エッジ画像５１１であっても、検出できないケースが発生する。例えば、被探索画像５０３を得るためにワークＷ１を撮像する場合、ワークＷ１の姿勢がわずかに変化しただけで、被探索画像５０３において明暗が反転することがある。このような場合には、基本エッジ画像５１１のみでは、検出対象の検出に失敗してしまうことがある。
【００４０】
そこで、第１実施形態では、図７（ｂ）の基本エッジ画像５１１で検出に失敗した場合、パターンマッチング部４１２は、図４（ａ）に示すステップＳ２において、追加エッジ画像５１２を取得する。追加エッジ画像５１２の基となる画像は、基本モデル画像５０１とは別の機会にワークＷ１を撮像して得られる撮像画像である追加モデル画像５０２である。追加エッジ画像５１２を生成する場合も、基本エッジ画像５１１を生成する場合と同様、図５に示すフローチャートに従い、追加モデル画像５０２から部分画像を切り出し、部分画像から追加エッジ画像５１２を生成する。この場合、追加モデル画像５０２として、以前に検出に失敗したときの被探索画像５０３を用いるのが好ましい。これにより、追加エッジ画像５１２は、基本エッジ画像５１１には含まれていないエッジを含むことになる。
【００４１】
図８（ａ）は、第１実施形態に係る追加モデル画像５０２の部分画像５０２Ｒの説明図である。図８（ｂ）は、第１実施形態に係る追加エッジ画像５１２の説明図である。図８（ａ）に示すように、追加モデル画像５０２から切り出した部分画像５０２Ｒには、複数の画素８０が含まれている。パターンマッチング部４１２は、複数の画素８０のそれぞれについて、勾配強度及び勾配方向を算出し、勾配強度が所定の閾値以上である画素を、図８（ｂ）に示すエッジ画素８４として抽出して、追加エッジ画像５１２を生成する。画素８５は、無効画素である。図８（ｂ）には、２つのエッジ８２，８３が図示されている。エッジ８２は、ワークＷ１の輪郭に対応し、エッジ８３は、マークＭＫ１の輪郭に対応する。
【００４２】
図９は、第１実施形態に係るステップＳ３（図４（ａ））の統合処理を示すフローチャートである。パターンマッチング部４１２は、基本エッジ画像５１１と追加エッジ画像５１２とをＨＤＤ４０４から読み込み（Ｓ２１）、ＲＡＭ４０２に展開する。
【００４３】
パターンマッチング部４１２は、ＲＡＭ４０２に展開した基本エッジ画像５１１に対する追加エッジ画像５１２の対応関係を算出する（Ｓ２２）。基本エッジ画像５１１に対する追加エッジ画像５１２の対応関係とは、基本エッジ画像５１１に対する追加エッジ画像５１２の位置、及び拡縮の関係である。対応関係は、２つのエッジ画像５１１，５１２の間で重複するエッジを見つけ出すことで求められる。図７（ｂ）及び図８（ｂ）の例においては、マークＭＫ１に対応するエッジ７３とエッジ８３とが重複する。
【００４４】
なお、基本エッジ画像５１１と追加エッジ画像５１２との間で、重複するエッジが１つもない場合には、対応関係を求めることができなくなるため、基本エッジ画像５１１に膨張処理を施してもよい。図１０（ａ）及び図１０（ｂ）は、第１実施形態に係る膨張処理の説明図である。図１０（ａ）には、基本エッジ画像５１１の一部を図示している。図１０（ａ）において、各エッジ画素７４に、エッジ方向を示す矢印を図示している。膨張処理では、図１０（ａ）に示す各エッジ画素７４を、図１０（ｂ）に示すように上下左右にコピーしてコピー画素７６を生成する。コピーした画素が重なる場合は、いずれか１つ、例えば最近傍のエッジ画素の情報を選択してコピー画素７６とする。その結果、図１０（ｂ）に示すように、基本エッジ画像５１１においてエッジが幅広になるため、追加エッジ画像５１２のエッジが基本エッジ画像５１１のエッジに重なりやすくなる。
【００４５】
次に、パターンマッチング部４１２は、ステップＳ２２で求めた対応関係の情報に基づいて、追加エッジ画像５１２が基本エッジ画像５１１と同じ位置、及び拡縮となるように、追加エッジ画像５１２を変形する（Ｓ２３）。これによって、追加エッジ画像５１２が基本エッジ画像５１１と同じ座標系に整合し、基本エッジ画像５１１と追加エッジ画像５１２との間で、画素同士を重ね合わせることができるようになる。なお、基本エッジ画像５１１と追加エッジ画像５１２との整合性が補償されていれば、このステップＳ２３の処理は省略可能である。
【００４６】
パターンマッチング部４１２は、基本エッジ画像５１１に追加エッジ画像５１２を追加することで、基本エッジ画像５１１と追加エッジ画像５１２とを統合した統合エッジ画像５１０を生成する（Ｓ２４）。図１１は、第１実施形態に係る統合エッジ画像５１０の説明図である。統合エッジ画像５１０には、基本エッジ画像５１１に含まれていたエッジ画素と、追加エッジ画像５１２に含まれていたエッジ画素の両方が含まれる。統合エッジ画像５１０において、基本エッジ画像５１１のエッジ画素７４に追加エッジ画像５１２のエッジ画素８４が重なる位置では、基本エッジ画像５１１のエッジ画素７４を優先してそのエッジ画素７４を用いる。つまり、パターンマッチング部４１２は、追加エッジ画像５１２に含まれるエッジ画素おいて、基本エッジ画像５１１のエッジ画素と重ならないエッジ画素を、基本エッジ画像５１１に追加することで、統合エッジ画像５１０を求める。
【００４７】
統合エッジ画像５１０には、基本エッジ画像５１１にのみ含まれていたエッジ画素１５Ａか、追加エッジ画像５１２にのみ含まれていたエッジ画素１５Ｂか、基本エッジ画像と追加エッジ画像で位置が重複したエッジ画素１５Ｃかを示す情報が添付されている。この情報は、例えばコード番号である。エッジ画素１５Ａには、基本エッジ画像５１１にのみ含まれることを示すコード番号、例えば「１」が割り当てられる。エッジ画素１５Ｂには、追加エッジ画像５１２にのみ含まれることを示すコード番号、例えば「２」が割り当てられる。エッジ画素１５Ｃには、基本エッジ画像５１１及び追加エッジ画像５１２の両方に含まれることを示すコード番号、例えば「０」が割り当てられる。図１１においては、エッジ画素１５Ａを薄いドットパターンで図示し、エッジ画素１５Ｂを濃いドットパターンで示し、エッジ画素１５Ｃを斜線パターンで図示している。これらコード番号は、パターンマッチング部４１２において検出の判定時に使用される。図１１に示す例では、エッジ画素１５Ａは、図７（ｂ）に示すエッジ７２の画素に対応し、エッジ画素１５Ｂは、図８（ｂ）に示すエッジ８２の画素に対応する。エッジ画素１５Ｃは、図７（ｂ）に示すエッジ７３の画素に対応する。
【００４８】
次に、マニピュレータ２００によってワークＷ１をワークＷ２に組み付けて物品を製造する作業について、図４（ｂ）のフローチャートに沿って説明する。まず、ロボット制御部４１１は、マニピュレータ２００にワークＷ１を保持させ、マニピュレータ２００を動作させてワークＷ１をカメラ３００に対向させる。そして、パターンマッチング部４１２は、ワークＷ１を予め決められた条件でワークＷ１を撮像させることで（Ｓ４）、撮像画像である被探索画像５０３を取得する。図１２（ａ）は、第１実施形態に係る被探索画像５０３の説明図である。図１２（ａ）に示すように、被探索画像５０３には、ワークＷ１に対応する検出対象５０が含まれている。
【００４９】
パターンマッチング部４１２は、被探索画像５０３からエッジを抽出して、被探索エッジ画像５１３を生成する（Ｓ５）。エッジの抽出方法は、上述した図５のステップＳ１４と同様である。図１２（ｂ）は、第１実施形態に係る被探索エッジ画像５１３の説明図である。図１２（ｂ）に示すように、被探索エッジ画像５１３には、ワークＷ１に対応するエッジ５１と、マークＭＫ１に対応するエッジ５２とが含まれている。
【００５０】
パターンマッチング部４１２は、統合エッジ画像５１０と被探索エッジ画像５１３との間でパターンマッチングを実施する（Ｓ６）。これにより、パターンマッチング部４１２は、被探索エッジ画像５１３における複数の探索位置Ｐ１，Ｐ２，Ｐ３，…の各々で統合エッジ画像５１０とのマッチングスコアを算出する。
【００５１】
パターンマッチング部４１２は、複数の探索位置Ｐ１，Ｐ２，Ｐ３，…に対応した複数のマッチングスコアに基づいて、検出対象を検出する。即ち、パターンマッチング部４１２は、算出した複数のマッチングスコアに基づいて、検出対象を検出したかどうかを判定し（Ｓ７）、その結果をロボット制御部４１１に出力する（Ｓ８）。パターンマッチング部４１２は、検出対象を検出した場合、その結果として、ワークＷ１の位置の情報をロボット制御部４１１に出力する。ロボット制御部４１１は、その結果に基づいて、ワークＷ１をワークＷ２に組み付けるようマニピュレータ２００を動作させる。
【００５２】
以下、ステップＳ６のパターンマッチング処理について具体的に説明する。図１３は、第１実施形態に係るパターンマッチング処理のフローチャートである。
【００５３】
まず、パターンマッチング部４１２は、被探索エッジ画像５１３内の全域において、統合エッジ画像５１０で探索する探索位置をピクセル単位で設定する（Ｓ５０）。即ち、パターンマッチング部４１２は、図１２（ｂ）に示す複数の探索位置Ｐ１，Ｐ２，Ｐ３，…のうち未選択の１つの探索位置を選択する。統合エッジ画像５１０で探索する探索位置の順序は、図１２（ｂ）に示すように、被探索エッジ画像５１３の左上位置を最初とし、その位置から右に順に１ピクセル単位でシフトさせる。そして、統合エッジ画像５１０が被探索エッジ画像５１３の右端に達したら、統合エッジ画像５１０を１ピクセル下げるとともに、被探索エッジ画像５１３の左端から右に向けて順に探索するようにする。
【００５４】
パターンマッチング部４１２は、探索位置Ｐ１，Ｐ２，Ｐ３，…のうち選択した探索位置おいて、統合エッジ画像５１０と被探索エッジ画像５１３との類似度を示すマッチングスコアＳｉｊを算出する（Ｓ５１）。選択した探索位置における座標を（ｉ，ｊ）とする。パターンマッチング部４１２は、被探索エッジ画像５１３における探索位置（ｉ，ｊ）において、統合エッジ画像５１０と被探索エッジ画像５１３とのマッチングスコアＳｉｊを求める。
【００５５】
第１実施形態では、パターンマッチング部４１２は、マッチングスコアＳｉｊとして、第１スコアであるスコアＳＡｉｊと、第２スコアであるスコアＳＢｉｊとを求める。スコアＳＡｉｊは、統合エッジ画像５１０において基本エッジ画像５１１に相当する部分と被探索エッジ画像５１３との間の類似度を示すスコアである。スコアＳＢｉｊは、統合エッジ画像５１０において追加エッジ画像５１２に相当する部分と被探索エッジ画像５１３との間の類似度を示すスコアである。即ち、マッチングスコアＳｉｊは、スコアＳＡｉｊとスコアＳＢｉｊとの組で構成されている。
【００５６】
各スコアＳＡｉｊ，ＳＢｉｊの計算の一例について説明する。パターンマッチング部４１２は、統合エッジ画像５１０を使用して部分スコアＳｌｉｊを式（３）によって算出する。
【数３】
2020184110.tif 000005
【００５７】
但し、ｌは、上述したコード番号であり、０，１，２のいずれかである。Ｎｌは、ｌ＝０の場合、図１１に示すエッジ画素１５Ｃの画素数、ｌ＝１の場合、エッジ画素１５Ａの画素数、ｌ＝２の場合、エッジ画素１５Ｂの画素数である。ｓｌｋは、局所スコアである。
【００５８】
局所スコアｓｌｋは、統合エッジ画像５１０の１つの画素と被探索エッジ画像５１３の１つの画素との間のスコアである。局所スコアｓｌｋは、被探索エッジ画像５１３のエッジ画素のエッジ方向と、統合エッジ画像５１０のエッジ画素のエッジ方向との差のコサイン値であり、式（４）によって算出される。よって、局所スコアｓｌｋの取り得る値の範囲は、−１〜＋１である。
【数４】
2020184110.tif 000006
【００５９】
但し、ｋは、統合エッジ画像５１０のエッジ画素に付与したインデックスであり、１，…，Ｎの整数値である。θＴｋは、被探索エッジ画像５１３のエッジ画素のエッジ方向である。θＭｋは、統合エッジ画像５１０のエッジ画素のエッジ方向である。
【００６０】
以上、パターンマッチング部４１２は、統合エッジ画像５１０において基本エッジ画像５１１にのみ含まれるエッジ画素と、被探索エッジ画像５１３におけるエッジ画素とのスコアとして、部分スコアＳ１ｉｊを求める。また、パターンマッチング部４１２は、統合エッジ画像５１０において追加エッジ画像５１２にのみ含まれるエッジ画素と、被探索エッジ画像５１３におけるエッジ画素とのスコアとして、部分スコアＳ２ｉｊを求める。また、パターンマッチング部４１２は、統合エッジ画像５１０において基本エッジ画像５１１と追加エッジ画像５１２との間で重複するエッジ画素と、被探索エッジ画像５１３のエッジ画素とのスコアとして、部分スコアＳ０ｉｊを求める。
【００６１】
パターンマッチング部４１２は、算出した部分スコアＳ０ｉｊ，Ｓ１ｉｊに基づいて、統合エッジ画像５１０において基本エッジ画像５１１に相当する部分と、被探索エッジ画像５１３との間のスコアＳＡｉｊを求める。また、パターンマッチング部４１２は、算出した部分スコアＳ０ｉｊ，Ｓ２ｉｊに基づいて、統合エッジ画像５１０において追加エッジ画像５１２に相当する部分と、被探索エッジ画像５１３との間のスコアＳＢｉｊを求める。
【００６２】
スコアＳＡｉｊ，ＳＢｉｊの算出式を例示すると、以下の式（５）及び式（６）となる。式（５）及び式（６）において、各スコアＳＡｉｊ，ＳＢｉｊは、エッジ画素の数で除算して正規化されているため、各スコアＳＡｉｊ，ＳＢｉｊの取り得る値の範囲は、−１〜＋１になる。
【数５】
2020184110.tif 000007
【数６】
2020184110.tif 000008
【００６３】
パターンマッチング部４１２は、スコアＳＡｉｊが閾値ＴＨ以上であるか否かを判定する（Ｓ５２）。パターンマッチング部４１２は、スコアＳＡｉｊが閾値ＴＨ以上である場合（Ｓ５２：ＹＥＳ）、スコアＳＡｉｊを候補スコアとして選択する（Ｓ５３）。パターンマッチング部４１２は、ステップＳ５３において、被探索エッジ画像５１３における統合エッジ画像５１０の位置（ｉ，ｊ）を候補位置として、マッチング候補を設定し、次のステップＳ５６に進む。
【００６４】
パターンマッチング部４１２は、スコアＳＡｉｊが閾値ＴＨ以上ではない場合（Ｓ５２：ＮＯ）、スコアＳＢｉｊが閾値ＴＨ以上であるか否かを判定する（Ｓ５４）。パターンマッチング部４１２は、スコアＳＢｉｊが閾値ＴＨ以上である場合（Ｓ５４：ＹＥＳ）、スコアＳＢｉｊを候補スコアとして選択し（Ｓ５５）、そのときの位置（ｉ，ｊ）を候補位置として、マッチング候補を設定し、次のステップＳ５６に進む。
【００６５】
パターンマッチング部４１２は、スコアＳＢｉｊが閾値ＴＨ以上ではない場合（Ｓ５４：ＮＯ）、マッチング候補なしとして、次のステップＳ５６に進む。以上、ステップＳ５３，Ｓ５５の選択処理により、閾値ＴＨ以上のスコアＳＡｉｊ又は閾値ＴＨ以上のスコアＳＢｉｊが候補スコアとして選択される。
【００６６】
図１４（ａ）及び図１４（ｂ）は、第１実施形態におけるマッチング候補の例の説明図である。図１４（ａ）及び図１４（ｂ）の各々において、マッチング候補を、候補番号０，１，２として３つ図示している。また、図１４（ａ）及び図１４（ｂ）には、それぞれ異なるマッチング候補の例を図示している。
【００６７】
図１４（ａ）及び図１４（ｂ）のそれぞれに示すように、マッチング候補は、「候補番号」、「スコア種別」、「候補スコア」、及び「候補位置」の情報を含む。「候補番号」は、マッチング候補に付与した０，１，２，…等の識別番号である。「スコア種別」は、候補スコアが第１スコアであるか第２スコアであるかを示す識別子であり、例えば「ＳＡ」及び「ＳＢ」の２種類である。「ＳＡ」は、候補スコアが第１スコアであることを示し、「ＳＢ」は候補スコアが第２スコアであることを示している。「候補スコア」は、第１スコア及び第２スコアのうち、スコア種別に対応するスコアの数値情報である。「候補位置」は、位置（ｉ，ｊ）の数値情報である。
【００６８】
パターンマッチング部４１２は、ステップＳ５６において、全探索位置についてスコアの算出が終了したか否かを判定する。パターンマッチング部４１２は、全探索位置についてスコアの算出が終了してはいないと判定した場合は（Ｓ５６：ＮＯ）、ステップＳ５０に戻り、次の探索位置を設定して、再度スコア計算（Ｓ５１〜Ｓ５５）を実施する。パターンマッチング部４１２は、全探索位置についてスコア計算が終了したと判定した場合は（Ｓ５６：ＹＥＳ）、パターンマッチング処理を終了する。
【００６９】
以上、パターンマッチング部４１２は、スコアＳＡｉｊ，ＳＢｉｊのうち、一方のみが閾値ＴＨ以上であれば、閾値ＴＨ以上のものを候補スコアとして選択する。また、パターンマッチング部４１２は、スコアＳＡｉｊ，ＳＢｉｊの両方が閾値ＴＨ以上であれば、いずれか１つ、第１実施形態ではスコアＳＡｉｊを候補スコアとして選択する。パターンマッチング部４１２は、以上の選択処理を、複数の探索位置Ｐ１，Ｐ２，Ｐ３，…におけるマッチングスコアＳｉｊの各々について行う。
【００７０】
次に、図４（ｂ）のステップＳ７の判定処理について詳細に説明する。図１５は、第１実施形態に係る判定処理のフローチャートである。パターンマッチング部４１２は、マッチング候補があるか否かを判定する（Ｓ６１）。マッチング候補が無ければ（Ｓ６１：ＮＯ）、検出位置なしを示す情報をロボット制御部４１１に出力して（Ｓ６６）、処理を終了する。以下、マッチング候補がある場合（Ｓ６１：ＹＥＳ）について説明する。
【００７１】
パターンマッチング部４１２は、求めた候補スコア、即ちマッチング候補の中から１つを選ぶことで、検出対象を検出する（Ｓ６２〜Ｓ６５）。
【００７２】
まず、パターンマッチング部４１２は、図４（ｂ）のステップＳ６で求めた候補スコアの中に、スコアＳＡｉｊである候補スコアがあるかどうかを判定する（Ｓ６２）。パターンマッチング部４１２は、候補スコアの中に、スコアＳＡｉｊである候補スコアがあれば（Ｓ６２：ＹＥＳ）、スコアＳＡｉｊである候補スコアのうち、最大のものを１つ選ぶ（Ｓ６３）。パターンマッチング部４１２は、ステップＳ６で求めた候補スコアの中に、スコアＳＡｉｊである候補スコアが１つもなければ（Ｓ６２：ＮＯ）、全ての候補スコアの中から最大のものを１つ選ぶ（Ｓ６４）。この場合、全ての候補スコアはスコアＳＢｉｊである。
【００７３】
そして、パターンマッチング部４１２は、選んだ候補スコアが属するマッチング候補に含まれる候補位置、即ち選んだ候補スコアに対応付けられている候補位置を検出位置とする（Ｓ６５）。パターンマッチング部４１２は、図４（ｂ）に示すステップＳ８において、検出結果である検出位置の情報を、ロボット制御部４１１に出力する。
【００７４】
図１４（ａ）の場合を例に説明すると、スコア種別がＳＡであるマッチング候補が１つもなく、スコア種別がＳＢであるマッチング候補のみである。この場合、仮に基本エッジ画像５１１のみでパターンマッチングの処理を行っていれば、マッチング候補なしとなり、検出に失敗していることになる。これに対し、第１実施形態では、追加エッジ画像５１２のエッジデータを含む統合エッジ画像５１０を用いてパターンマッチングの処理を行っている。よって、図１４（ａ）の例に示すようにスコア種別がＳＢであるマッチング候補が抽出される。パターンマッチング部４１２は、スコア種別がＳＢであるマッチング候補の中から候補スコアが最大のものを選ぶ。図１４（ａ）の例では、候補番号１の候補スコアが０．９０で最大であるため、パターンマッチング部４１２は、これに対応する候補位置（Ｘ１，Ｙ１）を検出位置としてロボット制御部４１１に出力する。これにより、検出対象５０が検出されなくなるのを防止することができ、また検出対象５０の誤検出も防止することができる。
【００７５】
図１４（ｂ）の場合を例に説明すると、スコア種別がＳＡであるマッチング候補は、２つ存在する。１つは、候補番号１のマッチング候補であり、１つは、候補番号２のマッチング候補である。パターンマッチング部４１２は、スコア種別がＳＡであるマッチング候補の中で候補スコアが最大のものとして、候補番号１のマッチング候補を選ぶ。そして、パターンマッチング部４１２は、候補番号１の候補位置（Ｘ１，Ｙ１）を検出位置としてロボット制御部４１１に出力する。図１４（ｂ）の例では、候補番号０の候補スコアが最も高いが、スコア種別がＳＢである。そして、図１４（ｂ）の例では、スコア種別がＳＡの候補スコアが存在し、その中でスコアが最も高いのが候補番号１の候補スコアである。基本エッジ画像５１１は、追加モデル画像５０２よりも良好な条件でワークＷ１を撮像して得られる基本モデル画像５０１から抽出される。そのため、スコア種別がＳＡのマッチング候補は、スコア種別がＳＢのマッチング候補よりも信頼性が高い。よって、スコア種別がＳＡである候補スコアがある場合、パターンマッチング部４１２は、スコア種別がＳＡである候補番号１のマッチング候補を優先して選択する。これにより、検出対象５０が検出されなくなるのを防止することができ、また検出対象５０の誤検出も防止することができる。また追加モデル画像５０２は、基本モデル画像５０１を用いてパターンマッチングを実施して検出対象を検出できなかった場合の被探索画像５０３を用いている。そのため、基本モデル画像５０１ではマッチング候補にも挙がらないような候補位置が、検出したい正しい位置の場合でも、マッチング候補に挙げることができる。上述では基本モデル画像５０１によるスコアを優先する。しかし、各候補スコアの状況により優先するスコアを変えるような処理を行えば、基本モデル画像５０１ではマッチング候補にも挙がらないような候補位置も検出することができ、確実に誤検出を低減させることができる。
【００７６】
また、第１実施形態では、統合エッジ画像５１０を１回、被探索エッジ画像５１３内を探索するだけでよいので、２つのエッジ画像５１１，５１２をそれぞれ１回ずつ探索する場合に比べ、探索回数を削減することができる。よって、パターンマッチング部４１２の演算負荷を低減することができ、これにより、パターンマッチング処理に要する時間を短縮することができる。
【００７７】
更に、第１実施形態では、パターンマッチング部４１２は、統合エッジ画像５１０を生成するに当たり、基本エッジ画像５１１と追加エッジ画像５１２との間で重複する２つのエッジ画素のうち一方を用いることになる。したがって、パターンマッチング部４１２は、スコアＳＡｉｊ，ＳＢｉｊを算出する際、エッジ画素が重複していた部分においては、式（５）及び式（６）に示すように、同じ部分スコアＳ０ｉｊを用いる。即ち、パターンマッチング部４１２は、スコアＳＢｉｊを算出する際、スコアＳＡｉｊを算出するのに用いた部分スコアＳ０ｉｊを用いる。このように、スコアＳＡｉｊ，ＳＢｉｊを算出する際に部分スコアＳ０ｉｊを共用することで、パターンマッチング処理に要する時間を短縮することができる。
【００７８】
［第２実施形態］
第２実施形態に係る画像処理方法について説明する。図１６は、第２実施形態に係る画像処理方法の一部のフローチャートである。なお、第２実施形態のロボットシステムの構成は、第１実施形態のロボットシステムと同様であるため、説明を省略する。第２実施形態では、図４（ｂ）に示すステップＳ６のパターンマッチング処理が第１実施形態と異なる。図１６には、パターンマッチング処理のフローチャートを図示している。図１６のフローチャートを説明するに当たり、適宜、第１実施形態で説明した図面を参照する。
【００７９】
まず、図３のパターンマッチング部４１２は、被探索エッジ画像５１３内の全域において、統合エッジ画像５１０で探索する探索位置をピクセル単位で設定する（Ｓ７０）。即ち、パターンマッチング部４１２は、図１２（ｂ）に示す複数の探索位置Ｐ１，Ｐ２，Ｐ３，…のうち未選択の１つの探索位置を選択する。
【００８０】
パターンマッチング部４１２は、選択した探索位置において、統合エッジ画像５１０と被探索エッジ画像５１３との類似度を示すマッチングスコアＳｉｊを算出する（Ｓ７１）。パターンマッチング部４１２は、第１実施形態と同様、マッチングスコアＳｉｊとして、第１スコアであるスコアＳＡｉｊと、第２スコアであるスコアＳＢｉｊとを求める。即ち、マッチングスコアＳｉｊは、スコアＳＡｉｊとスコアＳＢｉｊとの組で構成されている。
【００８１】
パターンマッチング部４１２は、スコアＳＡｉｊが閾値ＴＨ以上であり、かつスコアＳＢｉｊが閾値ＴＨ以上であるか否かを判定する（Ｓ７２）。パターンマッチング部４１２は、スコアＳＡｉｊが閾値ＴＨ以上であり、かつスコアＳＢｉｊが閾値ＴＨ以上である場合（Ｓ７２：ＹＥＳ）、スコアＳＡｉｊがスコアＳＢｉｊ以上であるか否かを判定する（Ｓ７３）。
【００８２】
パターンマッチング部４１２は、スコアＳＡｉｊがスコアＳＢｉｊ以上である場合（Ｓ７３：ＹＥＳ）、スコアＳＡｉｊを候補スコアとする（Ｓ７４）。パターンマッチング部４１２は、ステップＳ７４において、被探索エッジ画像５１３における統合エッジ画像５１０の位置（ｉ，ｊ）を候補位置として、マッチング候補を設定し、次のステップＳ７８に進む。
【００８３】
パターンマッチング部４１２は、スコアＳＡｉｊがスコアＳＢｉｊよりも低い場合（Ｓ７３：ＮＯ）、スコアＳＢｉｊを候補スコアとする（Ｓ７７）。パターンマッチング部４１２は、ステップＳ７７において、被探索エッジ画像５１３における統合エッジ画像５１０の位置（ｉ，ｊ）を候補位置として、マッチング候補を設定し、次のステップＳ７８に進む。
【００８４】
パターンマッチング部４１２は、スコアＳＡｉｊが閾値ＴＨ以上、かつスコアＳＢｉｊが閾値ＴＨ以上ではない場合（Ｓ７２：ＮＯ）、スコアＳＡｉｊが閾値ＴＨ以上であるか否かを判定する（Ｓ７５）。
【００８５】
パターンマッチング部４１２は、スコアＳＡｉｊが閾値ＴＨ以上である場合（Ｓ７５：ＹＥＳ）、スコアＳＡｉｊを候補スコアとする（Ｓ７４）。パターンマッチング部４１２は、ステップＳ７４において、被探索エッジ画像５１３における統合エッジ画像５１０の位置（ｉ，ｊ）を候補位置として、マッチング候補を設定し、次のステップＳ７８に進む。
【００８６】
パターンマッチング部４１２は、スコアＳＡｉｊが閾値ＴＨよりも低い場合（Ｓ７５：ＮＯ）、スコアＳＢｉｊが閾値ＴＨ以上であるか否かを判定する（Ｓ７６）。パターンマッチング部４１２は、スコアＳＢｉｊが閾値ＴＨ以上である場合（Ｓ７６：ＹＥＳ）、スコアＳＢｉｊを候補スコアとする（Ｓ７７）。パターンマッチング部４１２は、ステップＳ７７において、被探索エッジ画像５１３における統合エッジ画像５１０の位置（ｉ，ｊ）を候補位置として、マッチング候補を設定し、次のステップＳ７８に進む。
【００８７】
パターンマッチング部４１２は、スコアＳＢｉｊが閾値ＴＨ以上ではない場合（Ｓ７６：ＮＯ）、マッチング候補なしとして、次のステップＳ７８に進む。
【００８８】
パターンマッチング部４１２は、ステップＳ７８において、全探索位置についてスコアの算出が終了したか否かを判定する。パターンマッチング部４１２は、全探索位置についてスコアの算出が終了してはいないと判定した場合は（Ｓ７８：ＮＯ）、ステップＳ７０に戻り、次の探索位置を設定して、再度スコア計算（Ｓ７１〜Ｓ７７）を実施する。パターンマッチング部４１２は、全探索位置についてスコア計算が終了したと判定した場合は（Ｓ７８：ＹＥＳ）、パターンマッチング処理を終了する。
【００８９】
以上、パターンマッチング部４１２は、スコアＳＡｉｊ，ＳＢｉｊのうち、一方のみが閾値ＴＨ以上であれば、閾値ＴＨ以上のものを候補スコアとして抽出する。また、パターンマッチング部４１２は、スコアＳＡｉｊ，ＳＢｉｊの両方が閾値ＴＨ以上であれば、いずれか１つ、第２実施形態ではスコアＳＡｉｊ及びスコアＳＢｉｊのうち高い方を候補スコアとして抽出する。また、パターンマッチング部４１２は、スコアＳＡｉｊ，ＳＢｉｊの両方が閾値ＴＨ以上であり、スコアＳＡｉｊとスコアＳＢｉｊとが同じであれば、スコアＳＡｉｊを候補スコアとして抽出する。パターンマッチング部４１２は、以上の処理を、複数の探索位置Ｐ１，Ｐ２，Ｐ３，…におけるマッチングスコアＳｉｊの各々について行う。
【００９０】
このように、スコアＳＡｉｊ，ＳＢｉｊのうち高いスコアの方を候補スコアとするようにしてもよく、このような場合でも、検出対象５０が検出されなくなるのを防止することができ、また検出対象５０の誤検出も防止することができる。
【００９１】
［第３実施形態］
第３実施形態に係る画像処理方法について説明する。図１７は、第３実施形態に係る画像処理方法の一部のフローチャートである。なお、第３実施形態のロボットシステムの構成は、第１実施形態のロボットシステムと同様であるため、説明を省略する。第３実施形態では、図４（ｂ）に示すステップＳ７の判定処理が第１実施形態と異なる。図１７には、判定処理のフローチャートを図示している。図１７のフローチャートを説明するに当たり、適宜、第１実施形態で説明した図面を参照する。
【００９２】
パターンマッチング部４１２は、抽出したマッチング候補があるか否かを判定する（Ｓ８１）。マッチング候補が無ければ（Ｓ８１：ＮＯ）、検出位置なしを示す情報をロボット制御部４１１に出力して（Ｓ８４）、処理を終了する。
【００９３】
パターンマッチング部４１２は、マッチング候補がある場合（Ｓ８１：ＹＥＳ）求めた候補スコアの中から最大のもの１つを選ぶ（Ｓ８２）。そして、パターンマッチング部４１２は、選んだ候補スコアが属するマッチング候補に含まれる候補位置、即ち選んだ候補スコアに対応付けられている候補位置を検出位置とする（Ｓ８３）。パターンマッチング部４１２は、図４（ｂ）に示すステップＳ８において、検出結果である検出位置の情報を、ロボット制御部４１１に出力する。このように、候補スコアがスコアＳＡｉｊであるかスコアＳＢｉｊであるかに関係なく、最大のものが選択されるようにしてもよい。このような場合であっても、検出対象５０が検出されなくなるのを防止することができ、また検出対象５０の誤検出も防止することができる。
【００９４】
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されない。
【００９５】
上述の実施形態では、マッチングスコアＳｉｊとして、スコアＳＡｉｊとスコアＳＢｉｊとを求める場合について説明したがこれに限定するものではない。例えば、マッチングスコアＳｉｊとして、統合エッジ画像５１０そのものと、被探索エッジ画像５１３との類似度を示すスコアを求めてもよい。この場合は、閾値以上のスコアのうち、最大のスコアとなる探索位置を検出位置とすればよい。
【００９６】
上述の実施形態では、制御装置４００が画像処理装置である場合について説明したが、これに限定するものではない。例えば、画像処理装置が、マニピュレータを制御する制御装置とは別のコンピュータで構成されていてもよい。
【００９７】
また、画像処理装置が１つのコンピュータで構成される場合に限定するものでもない。画像処理装置が、複数のコンピュータで構成されていてもよい。この場合、上述の実施形態で説明した複数の処理の各々を、各コンピュータに分担させてもよい。
【００９８】
また、上述の実施形態では、基本モデル画像５０１、追加モデル画像５０２、及び被探索画像５０３を、同じ１つのカメラ３００が生成する場合について説明したが、これに限定するものではない。基本モデル画像５０１、追加モデル画像５０２、及び被探索画像５０３のうち、いずれかの画像を、カメラ３００とは別のカメラが生成するようにしてもよく、この場合、制御装置４００は、当該画像を別のコンピュータから取得するようにしてもよい。また、制御装置４００は、基本モデル画像５０１、追加モデル画像５０２、及び被探索画像５０３ではなく、基本エッジ画像５１１、追加エッジ画像５１２、及び被探索エッジ画像５１３を別のコンピュータから取得するようにしてもよい。
【００９９】
また上述した種々の実施形態では、マニピュレータ２００が複数の関節を有する多関節ロボットアームを用いた場合を説明したが、関節の数はこれに限定されるものではない。マニピュレータの形式として、垂直多軸構成を示したが、パラレルリンク型など異なる形式の関節においても上記と同等の構成を実施することができる。
【０１００】
また上述した種々の実施形態では、マニピュレータ２００の構成例を各実施形態の例図により示したが、これに限定されるものではなく、当業者において任意に設計変更が可能である。また、マニピュレータ２００に設けられる各モータは、上述の構成に限定されるものではなく、各関節を駆動する駆動源は例えば人工筋肉のようなデバイス等であってもよい。
【０１０１】
また上述した種々の実施形態は、制御装置に設けられる記憶装置の情報に基づき、伸縮、屈伸、上下移動、左右移動もしくは旋回の動作またはこれらの複合動作を自動的に行うことができる機械に適用可能である。
【０１０２】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１０３】
５０…検出対象、１００…ロボットシステム、２００…マニピュレータ、４００…制御装置（画像処理装置）、４０１…ＣＰＵ（処理部）、４２２…パターンマッチングプログラム（プログラム）、５１０…統合エッジ画像、５１１…基本エッジ画像、５１２…追加エッジ画像、５１３…被探索エッジ画像
【図１】
2020184110.tif 000009
【図２】
2020184110.tif 000010
【図３】
2020184110.tif 000011
【図４】
2020184110.tif 000012
【図５】
2020184110.tif 000013
【図６】
2020184110.tif 000014
【図７】
2020184110.tif 000015
【図８】
2020184110.tif 000016
【図９】
2020184110.tif 000017
【図１０】
2020184110.tif 000018
【図１１】
2020184110.tif 000019
【図１２】
2020184110.tif 000020
【図１３】
2020184110.tif 000021
【図１４】
2020184110.tif 000022
【図１５】
2020184110.tif 000023
【図１６】
2020184110.tif 000024
【図１７】
2020184110.tif 000025