(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-22
(45)【発行日】2024-01-30
(54)【発明の名称】物体検出装置及びモデルパターン評価装置
(51)【国際特許分類】
G06T 7/00 20170101AFI20240123BHJP
G01B 11/00 20060101ALI20240123BHJP
【FI】
G06T7/00 610
G06T7/00 300E
G01B11/00 H
(21)【出願番号】P 2021570056
(86)(22)【出願日】2021-01-05
(86)【国際出願番号】 JP2021000120
(87)【国際公開番号】W WO2021141028
(87)【国際公開日】2021-07-15
【審査請求日】2022-08-19
(31)【優先権主張番号】P 2020000522
(32)【優先日】2020-01-06
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【氏名又は名称】廣瀬 繁樹
(74)【代理人】
【識別番号】100120499
【氏名又は名称】平山 淳
(72)【発明者】
【氏名】小倉 翔太郎
(72)【発明者】
【氏名】藁科 文和
【審査官】▲広▼島 明芳
(56)【参考文献】
【文献】特開2012-048593(JP,A)
【文献】特開2017-091079(JP,A)
【文献】特開2015-133049(JP,A)
【文献】特開2016-218729(JP,A)
【文献】特開2017-224009(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
G01B 11/00
G06V 10/00 - 20/90
(57)【特許請求の範囲】
【請求項1】
対象物体を所定の方向から見たときの前記対象物体の互いに異なる位置にある所定の特徴を複数表すモデルパターンを記憶する記憶部と、
前記対象物体が表された画像から前記所定の特徴を複数抽出する特徴抽出部と、
前記画像に対する前記モデルパターンの相対的な位置若しくは角度、相対的な向き及び相対的な大きさの少なくとも1つを変えながら、前記モデルパターンの複数の前記所定の特徴と前記画像上の前記モデルパターンに対応する領域から抽出された複数の前記所定の特徴間の一致度合を表す一致度を算出し、前記一致度が所定の閾値以上となるときの前記モデルパターンに対応する前記画像上の領域に前記対象物体が表されていると判定する照合部と、
を有し、
前記記憶部に記憶された前記所定の特徴は、前記モデルパターンの特定方向における前記対
象物体の位置検出能力が低い場合に前記画像上での前記対象物体の該特定方向における位置を検出するために利用可能な、又は前記モデルパターンの所定点を回転中心とする回転方向における前記対
象物体の角度検出能力が低い場合に前記画像上での前記対象物体の該所定点を回転中心とする回転方向における角度を検出するために利用可能な注目特徴を含み、
前記照合部は、前記モデルパターンの前記注目特徴と前記画像上の前記所定の特徴とが一致する場合は、前記モデルパターンの前記注目特徴以外の前記所定の特徴と前記画像上の前記所定の特徴とが一致する場合よりも前記一致度の算出における寄与度を高くして前記一致度を算出する、物体検出装置。
【請求項2】
前記モデルパターンに含まれる複数の前記所定の特徴の幾何学的な分布を表す評価値を算出する評価部と、
前記評価値に基づいて、複数の前記所定の特徴の少なくとも一部を前記注目特徴として設定する注目特徴設定部と、
を更に有する、請求項1に記載の物体検出装置。
【請求項3】
対象物体が表された画像から前記対象物体を検出するためのモデルパターンについて、前記モデルパターンに含まれる複数の特徴の幾何学的な分布を表す評価値を算出する評価部と、
前記評価値に基づいて、前記複数の特徴のうち、前記モデルパターンの特定方向における前記対
象物体の位置検出能力が低い場合に前記画像上での前記対象物体の該特定方向における位置を検出するために利用可能な第1の特徴、又は前記モデルパターンの所定点を回転中心とする回転方向における前記対
象物体の角度検出能力が低い場合に前記画像上での前記対象物体の該所定点を回転中心とする回転方向における角度を検出するために利用可能な第2の特徴を注目特徴として設定する注目特徴設定部と、
を有する、モデルパターン評価装置。
【請求項4】
前記評価部は、前記評価値に基づいて、前記特徴の位置の分布の広がりが最大となる方向を前記特定方向として特定し、
前記注目特徴設定部は、複数の前記特徴のうち前記特定方向と異なる方向に分布する前記特徴を前記第1の特徴とする、請求項3に記載のモデルパターン評価装置。
【請求項5】
前記評価部は、複数の前記特徴のそれぞれについて隣り合う前記特徴が並ぶ方向に対する法線ベクトルを求めるとともに、前記法線ベクトルの分布を示す共分散行列を前記評価値として算出し、前記共分散行列の2つの固有値のうち大きい方の前記固有値に対する小さい方の前記固有値の比が第1の閾値以下の場合に、前記大きい方の前記固有値に対応する固有ベクトルの方向を前記特定方向とする、請求項3又は4に記載のモデルパターン評価装置。
【請求項6】
前記評価部は、前記評価値に基づいて、前記特徴の一部が前記所定点を回転中心とする前記回転方向に沿って分布していることを特定し
前記注目特徴設定部は、前記回転方向と異なる方向に分布する前記特徴を前記注目特徴として設定する、請求項3に記載のモデルパターン評価装置。
【請求項7】
前記評価部は、複数の前記特徴のそれぞれについて隣り合う前記特徴が並ぶ方向に対する法線を求め、少なくとも一部の前記法線が前記所定点で交わり、前記特徴の全数に対する前記所定点で交わらない前記法線の数の比率を前記評価値とし、前記比率が第2の閾値以上である場合に、前記特徴の一部が前記所定点を回転中心とする前記回転方向に沿って分布していることを特定する、請求項6に記載のモデルパターン評価装置。
【請求項8】
前記注目特徴設定部は、前記法線が前記所定点で交わらない前記特徴を前記注目特徴として設定する、請求項7に記載のモデルパターン評価装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば、画像に表された物体を検出する物体検出装置、及び物体を検出するために用いられるモデルパターンを評価するモデルパターン評価装置に関する。
【背景技術】
【0002】
従来より、対象物体が表された画像から、その対象物体が表された領域を検出する技術が提案されている。そのような技術のなかでも特に、自動車のホイールのように高度に形状の対称性を有するために、特定の部位に注目しないと位置及び姿勢が正確に決まらない形状を有する対象物体に対し、精度良く位置決めする技術が提案されている。例えば、特許文献1に記載された位置決め方法は、検査対象物の規範となる製品の規範画像において規範パターンを取り囲む第一領域及び規範パターンの位置及び姿勢を特徴付ける第二領域を設定する。そしてこの位置決め方法は、第一領域から抽出された特徴を検査対象画像からサーチして検査対象画像における規範パターンの位置及び姿勢を粗に求め(第一サーチ工程)、粗に求められた位置及び姿勢の少なくとも一方を、第二領域から抽出された特徴を検査対象画像からサーチすることで細密に求める(第二サーチ工程)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1に記載の技術では、第二領域はユーザによるコンソールの操作により設定される。このような手法の場合、ユーザの主観的な判断により位置又は姿勢を特徴付ける第二領域が設定されるため、実際は位置又は姿勢を特徴付けることに適していない領域が、ユーザの過誤により第二領域として設定されてしまう可能性がある。
【0005】
一つの側面では、画像に表された対称性を有する対象物体を精度良く検出することが可能な物体検出装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
一つの実施形態によれば、物体検出装置が提供される。この物体検出装置は、対象物体を所定の方向から見たときの対象物体の互いに異なる位置にある所定の特徴を複数表すモデルパターンを記憶する記憶部と、対象物体が表された画像から所定の特徴を複数抽出する特徴抽出部と、画像に対するモデルパターンの相対的な位置若しくは角度、相対的な向き及び相対的な大きさの少なくとも1つを変えながら、モデルパターンの複数の所定の特徴と画像上のモデルパターンに対応する領域から抽出された複数の所定の特徴間の一致度合を表す一致度を算出し、一致度が所定の閾値以上となるときのモデルパターンに対応する画像上の領域に対象物体が表されていると判定する照合部と、を有し、記憶部に記憶された所定の特徴は、モデルパターンの特定方向における対象物体の位置検出能力が低い場合に画像上での対象物体の特定方向における位置を検出するために利用可能な、又はモデルパターンの所定点を回転中心とする回転方向における対象物体の角度検出能力が低い場合に画像上での対象物体の所定点を回転中心とする回転方向における角度を検出するために利用可能な注目特徴を含み、照合部は、モデルパターンの注目特徴と画像上の所定の特徴とが一致する場合は、モデルパターンの注目特徴以外の所定の特徴と画像上の所定の特徴とが一致する場合よりも一致度の算出における寄与度を高くして一致度を算出する。
【0007】
他の実施形態によれば、モデルパターン評価装置が提供される。このモデルパターン評価装置は、対象物体が表された画像から対象物体を検出するためのモデルパターンについて、モデルパターンに含まれる複数の特徴の位置の分布の評価値を算出する評価部と、評価値に基づいて、モデルパターンの特定方向における対象物体の位置検出能力が低い場合に画像上での対象物体の特定方向における位置を検出するために利用可能な特徴、又はモデルパターンの所定点を回転中心とする回転方向における対象物体の角度検出能力が低い場合に画像上での対象物体の所定点を回転中心とする回転方向における角度を検出するために利用可能な特徴を注目特徴として設定する注目特徴設定部と、を有する。
【発明の効果】
【0008】
一つの側面によれば、画像に表された対称性を有する対象物体を精度良く検出することができる。
【図面の簡単な説明】
【0009】
【
図1】一つの実施形態によるロボットシステムの概略構成図である。
【
図3A】所定の方向から見たワークの形状の一例を表す図である。
【
図3B】ワークのモデルパターンの一例を表す図である。
【
図4】モデルパターンを評価するための処理と、物体検出処理を含む可動部制御処理に関する、制御装置が有するプロセッサの機能ブロック図である。
【
図5】
図3Bのモデルパターンの位置検出能力を評価する方法を示す模式図である。
【
図6】モデルパターンの他の例を示す模式図である。
【
図7】
図6に示したモデルパターンの角度検出能力の評価方法を示す模式図である。
【
図8】位置検出能力及び角度検出能力を評価する処理と、評価に基づいて注目特徴を設定する処理の全体の流れを示すフローチャートである。
【
図9】位置検出能力評価部が、モデルパターンの位置検出能力を評価する処理を示すフローチャートである。
【
図10】角度検出能力評価部38bが、モデルパターンの角度検出能力を評価する処理を示すフローチャートである。
【
図11A】モデルパターンと画像との照合の概要説明図である。
【
図11B】モデルパターンと画像との照合の概要説明図である。
【
図11C】モデルパターンと画像との照合の概要説明図である。
【
図11D】モデルパターンと画像との照合の概要説明図である。
【
図11E】モデルパターンと画像との照合の概要説明図である。
【
図12】物体検出処理を含む可動部制御処理の動作フローチャートである。
【
図13】物体検出処理を含む可動部制御処理の動作フローチャートであって、モデルパターンの注目特徴における重みを注目特徴以外の特徴における重みよりも高くして一致度を算出する場合の処理を示す動作フローチャートである。
【発明を実施するための形態】
【0010】
以下、図を参照しつつ、本発明の実施形態によるモデルパターン評価装置及び物体検出装置について説明する。物体検出装置は、例えば、撮像部が探索対象となる物体(以下、単に対象物体と呼ぶ)を撮影することで得られた、対象物体が表された画像から、その対象物体を検出する。その際、この物体検出装置は、画像と対象物体を所定の方向から見たときの外観を表すモデルパターンとの相対的な位置関係を変えながら、画像とモデルパターンをマッチングし、モデルパターン全体について設定された複数の特徴と、画像上のモデルパターンに対応する比較領域から抽出される複数の特徴との間の一致度合を表す一致度を算出する。
【0011】
例えば、検出すべき対象物体を含むモデル画像から抽出した特徴点群をモデルパターンとして記憶しておき、撮像部によって取得された画像から抽出した特徴点群と、モデルパターンの特徴点群の一致度が閾値を超えたときに、対象物体の検出に成功したと判断される。
【0012】
モデルパターンの特徴と対象物体が表された画像上の特徴との一致度を算出するにあたり、モデルパターンによって検出しようとする対象物体の形状によっては、画像によって表された対象物体に対するモデルパターンの位置又は角度(姿勢)を合わせることが難しくなる場合がある。例えば、対象物体の形状が細長い長方形である場合、あるいは対象物体の形状が回転対称など対称性を有している場合などに、画像に表された対象物体に対してモデルパターンの位置又は角度を合わせることが難しくなる場合がある。なお、以下の説明では、画像に表された対象物体の位置を検出する能力を位置検出能力と称し、画像に表された対象物体の角度を検出する能力を角度検出能力と称する。
【0013】
本実施形態のモデルパターン評価装置は、モデルパターンに含まれる複数の特徴の幾何学的な分布を表す評価値を算出し、評価値に基づいて、特徴の位置の分布の広がりが最大となる方向を位置検出能力が低い特定方向として特定する。また、モデルパターン評価装置は、評価値に基づいて、所定の点を回転中心とする回転方向に特徴が分布していることを特定し、その回転方向を角度検出能力が低い方向として特定する。注目特徴設定部37は、これらの特定方向または回転方向と異なる方向に分布する特徴を抽出し、モデルパターン上に注目特徴として設定する。物体検出装置は、モデルパターンに含まれる注目特徴を用いることで、対象物体が表された画像から対象物体の位置または角度を精度よく検出する。
【0014】
以下では、モデルパターン評価装置及び物体検出装置がロボットシステムに組み込まれた例について説明する。この例では、ロボットが有する可動部に取り付けられた撮像部が、その自動機械の作業対象であるワークを対象物体として撮影することでその対象物体が表された画像を生成する。そして物体検出装置が組み込まれたロボットの制御装置が、その画像から対象物体を検出し、その検出結果に基づいて可動部を制御する。
【0015】
図1は、一つの実施形態による、モデルパターン評価装置及び物体検出装置が実装されたロボットシステム1の概略構成図である。ロボットシステム1は、ロボット2と、ロボット2を制御する制御装置3と、ロボット2の可動部に取り付けられ、対象物体の一例であるワーク10を撮影するためのカメラ4とを有する。ロボットシステム1は、自動機械の一例である。
【0016】
ロボット2は、台座11と、回転ステージ12と、第1のアーム13と、第2のアーム14と、リスト15と、ツール16とを有する。回転ステージ12、第1のアーム13、第2のアーム14、リスト15及びツール16は、それぞれ、可動部の一例である。回転ステージ12、第1のアーム13、第2のアーム14及びリスト15のそれぞれは、それらが取り付けられる関節に設けられる軸により支持され、サーボモータがその軸を駆動することで動作する。また、ワーク10は、例えば、ベルトコンベヤーにより搬送され、ワーク10が所定の範囲内に位置している間に、ロボット2は、ワーク10に対する所定の作業を実施する。
【0017】
台座11は、ロボット2が床置き設置される場合に台となる部材である。回転ステージ12は、台座11の天面に、関節21にて、台座11のその一方の面と直交するように設けられる軸(図示せず)を回転中心として回動可能に取り付けられる。
【0018】
第1のアーム13は、その一端側にて、回転ステージ12に設けられる関節22において回転ステージ12に取り付けられる。本実施形態では、
図1に示されるように、第1のアーム13は、関節22にて、台座11の回転ステージ12が取り付けられる面と平行に設けられる軸(図示せず)を中心として回動可能となっている。
【0019】
第2のアーム14は、その一端側にて、関節22とは反対側の第1のアーム13の他端側に設けられる関節23にて第1のアーム13に取り付けられる。本実施形態では、
図1に示されるように、第2のアーム14は、関節23にて、台座11の回転ステージ12が取り付けられる面と平行に設けられる軸(図示せず)を中心として回動可能となっている。
【0020】
リスト15は、関節23とは反対側の第2のアーム14の先端にて、関節24を介して取り付けられる。リスト15は、関節25を有し、関節25にて関節22の軸及び関節23の軸と平行に設けられる軸(図示せず)を回転中心として屈曲可能となっている。さらに、リスト15は、第2のアーム14の長手方向と平行な軸(図示せず)を回転中心として、第2のアーム14の長手方向と直交する面において回動可能であってもよい。
【0021】
ツール16は、関節24とは反対側のリスト15の先端に取り付けられる。ツール16は、ワーク10に対する作業を行うための機構または装置を有する。例えば、ツール16は、ワーク10を加工するためのレーザを有してもよく、ワーク10を溶接するためのサーボガンを有していてもよい。あるいは、ツール16は、ワーク10またはワーク10に組み付けられる部品を把持するためのハンド機構を有していてもよい。
【0022】
カメラ4は、撮像部の一例であり、例えば、ツール16に取り付けられる。なお、カメラ4は、リスト15または第2のアーム14といった他の可動部に取り付けられてもよい。カメラ4は、ロボット2がワーク10に対する作業を実施する際にカメラ4の撮影範囲にワーク10が含まれるように向けられる。そしてカメラ4は、所定の撮影周期ごとに、ワーク10を含む撮影範囲を撮影することでワーク10が表された画像を生成する。カメラ4は、画像を生成する度に、生成した画像を、通信回線5を介して制御装置3へ出力する。
【0023】
制御装置3は、通信回線5を介してロボット2と接続され、ロボット2のそれぞれの関節に設けられる軸を駆動するサーボモータの動作状況を表す情報、カメラ4からの画像などを、ロボット2から通信回線5を介して受信する。そして制御装置3は、受信した情報、画像、及び、上位制御装置(図示せず)から受信した、あるいは、予め設定されたロボット2の動作に基づいて、サーボモータを制御することで、ロボット2の各可動部の位置及び姿勢を制御する。
【0024】
図2は、制御装置3の概略構成図である。制御装置3は、通信インターフェース31と、駆動回路32と、メモリ33と、プロセッサ34とを有する。さらに、制御装置3は、タッチパネルといったユーザインターフェース(図示せず)を有していてもよい。
【0025】
通信インターフェース31は、例えば、制御装置3を通信回線5と接続するための通信インターフェース及び通信回線5を介した信号の送受信に関する処理を実行するための回路などを含む。そして通信インターフェース31は、例えば、ロボット2から、通信回線5を介して、駆動部の一例であるサーボモータ35の回転量を検出するためのエンコーダからの回転量の測定値など、サーボモータ35の動作状況を表す情報を受信して、その情報をプロセッサ34へわたす。なお、
図2では、代表的に一つのサーボモータ35が図示されているが、ロボット2は、関節ごとに、その関節の軸を駆動するサーボモータを有してもよい。さらに、通信インターフェース31は、カメラ4から画像を受信してプロセッサ34へわたす。
【0026】
駆動回路32は、電流供給用のケーブルを介してサーボモータ35と接続され、プロセッサ34による制御に従って、サーボモータ35に生じさせるトルク、回転方向あるいは回転速度に応じた電力をサーボモータ35へ供給する。
【0027】
メモリ33は、記憶部の一例であり、例えば、読み書き可能な半導体メモリと読み出し専用の半導体メモリとを有する。さらに、メモリ33は、半導体メモリカード、ハードディスク、あるいは光記憶媒体といった記憶媒体及びその記憶媒体にアクセスする装置を有していてもよい。
【0028】
メモリ33は、制御装置3のプロセッサ34で実行される、ロボット2の制御用の各種コンピュータプログラムなどを記憶する。また、メモリ33は、ロボット2を動作させる際のロボット2の動作を制御するための情報を記憶する。さらに、メモリ33は、ロボット2の動作中においてロボット2から得られるサーボモータ35の動作状況を表す情報を記憶する。さらにまた、メモリ33は、物体検出処理で利用される各種のデータを記憶する。そのようなデータには、例えば、ワーク10の検出に用いられる、ワーク10のモデルパターン、カメラ4の焦点距離、取り付け位置及び向きといったカメラ4に関する情報を表すカメラパラメータ、及び、カメラ4から得られた画像が含まれる。
【0029】
本実施形態では、モデルパターンには、ワーク10を所定の方向(例えば、鉛直上方)から見たときのワーク10の互いに異なる位置にある所定の特徴が複数表される。また、ワーク10は、例えば、所定の方向から見たときに対称性を有する形状、例えば、線対称又は回転対称となる形状を有するものであってもよい。
【0030】
図3Aは、所定の方向から見たワーク10の形状の一例を表す図であり、
図3Bは、ワーク10のモデルパターンの一例を表す図である。
図3Aに示されるように、この例では、ワーク10は、所定の方向から見たときに、細長い長方形の輪郭を有し、長手方向の中央に突起10aが設けられた形状を有している。これに対して、
図3Bに示されるように、モデルパターン300では、ワーク10の輪郭上の複数の点301がそれぞれ特徴として設定される。
【0031】
これら複数の特徴301は、例えば、所定の方向からワーク10を撮影することで得られる参照画像に対して、後述するプロセッサ34の特徴抽出部38の処理を行うことで求められる。モデルパターン300は、例えば、各特徴301が位置する画素とそれ以外の画素とが異なる値を持つ2値画像で表される。正規化相関など画像そのものがモデルパターン(テンプレート)として使用されるものであってもよい。なお、モデルパターン300を扱いやすくするため、参照画像における画像座標系は、参照画像の中のモデルパターン300を囲む領域のみを抽出したモデルパターン座標系に適宜変換されることが好ましい。
【0032】
特徴301は、ワーク10を撮影することで得られた画像から求める方法以外にも、例えば、ワーク10の3次元データを2次元データに変換することで得られる。この場合、例えば、カメラ4の撮像面上に原点を置く3次元のローカル座標系を定義し、このローカル座標系にCADデータとして表現された対象物体が仮想的に配置される。そして、CADデータの輪郭線上で所定の間隔で3次元点群を設定する。この際、必要があれば、CADデータの中からモデルパターン300として使う輪郭線を指定してもよい。そして、CADデータで表現された3次元点群をカメラ4の撮像面上に投影し、画像座標系上の2次元点群を求める。CADデータ上で明暗の向きを指定すれば、画像座標系の2次元点群において輝度勾配の方向も付加することができる。なお、明暗の向きとは、輪郭線を境界として、明るい領域から暗い領域、または暗い領域から明るい領域へ向かう向きである。対象物体を撮影してモデルパターン300を得る場合は、画素の輝度情報に明暗の向きが含まれている。CADデータで表現された3次元点群をカメラ4の撮像面上に投影する際、画像座標系上の2次元点群の位置には、例えば像面湾曲などのカメラ4の収差の影響が含まれるため、2次元点群の位置にこれらの収差が反映されるよう、予めカメラ4の収差特性を取得しておき、それに応じたキャリブレーションを行うことが好ましい。
【0033】
プロセッサ34は、制御部の一例であり、例えば、Central Processing Unit(CPU)及びその周辺回路を有する。さらにプロセッサ34は、数値演算用のプロセッサを有していてもよい。そしてプロセッサ34は、ロボットシステム1全体を制御する。またプロセッサ34は、モデルパターンを評価するための処理と、物体検出処理を含む可動部制御処理を実行する。
【0034】
図4は、モデルパターンを評価するための処理と、物体検出処理を含む可動部制御処理に関する、プロセッサ34の機能ブロック図である。プロセッサ34は、評価部36と、注目特徴設定部37と、特徴抽出部38と、照合部39と、可動部制御部40とを有する。プロセッサ34が有するこれらの各部は、例えば、プロセッサ34上で実行されるコンピュータプログラムにより実現される機能モジュールである。あるいは、これらの各部は、プロセッサ34の一部に実装される専用の演算回路として実装されてもよい。
【0035】
プロセッサ34が有するこれらの各部のうち、評価部36及び注目特徴設定部37による処理がモデルパターンの評価処理に相当し、特徴抽出部38及び照合部39による処理が物体検出処理に相当する。以下の説明では、先ず評価部36及び注目特徴設定部37によるモデルパターンの評価処理について説明し、その後、特徴抽出部38及び照合部39による物体検出の処理について説明する。
【0036】
モデルパターンの特徴と対象画像上の特徴との一致度を算出する際に、モデルパターンの一部の特徴に注目しないと、対象画像に表された対象物体に対するモデルパターンの位置または角度を正しく特定できない場合がある。例えば、
図3A、
図3Bに示した形状では、ワーク10の輪郭において突起10aが存在する。
図3A、
図3Bに示した形状の場合、モデルパターン300と対象画像との間で特徴のマッチングを行うと、
図3B中に点線で囲んだ領域310においてモデルパターンと対象画像が一致していなくても、パターン全体としては一致度が高く認識されてしまう場合がある。このような場合、対象画像に対するモデルパターンの位置や角度(姿勢)が間違って検出されることがある。
【0037】
このため、本実施形態において、評価部36は、モデルパターンに含まれる複数の特徴の幾何学的な分布を表す評価値を算出し、評価値に基づいて、特徴の位置の分布の広がりが最大となる方向を位置検出能力が低い特定方向として特定する。また、評価部36は、評価値に基づいて、所定の点を回転中心とする回転方向に沿って複数の特徴の少なくとも一部が分布していることを特定し、この回転方向を角度検出能力が低い方向とする。注目特徴設定部37は、これらの特定方向または回転方向と異なる方向に分布する特徴を注目特徴として設定する。これにより、モデルパターンは、ワーク10の特徴が表されており、且つ、位置検出能力または角度検出能力の高い注目特徴が表されているものとなる。
【0038】
具体的には、以下に説明するアルゴリズムで、評価部36は、モデルパターンに表された特徴の位置検出能力または角度検出能力を幾何学的に評価する。注目特徴設定部37は、位置検出能力または角度検出能力の高い特徴を抽出し、モデルパターンに対して注目特徴として設定する。なお、位置検出能力は評価部36の位置検出能力評価部36aにより評価され、角度検出能力は評価部36の角度検出能力評価部36bにより評価される。評価部36は、位置検出能力の評価と角度検出能力の評価を並行して行うが、位置検出能力と角度検出能力のいずれか一方のみを評価してもよい。
【0039】
最初に、位置検出能力評価部36aが行う処理について説明する。なお、以下では、個々の特徴がモデルパターンの輪郭上の点である場合、すなわち、個々の特徴が特徴点である場合を例に挙げて説明する。
【0040】
図3Aを参照すると、ワーク10は、突起10a以外は単純な長方形形状を有しており、長方形の長手方向に沿った方向における形状の変化が乏しい。このため、ワーク10が表された画像において、長手方向におけるワーク10の位置を検出することが困難である。そこで、位置検出能力評価部36aは、
図3Bに示すモデルパターン300において、長手方向と異なる方向に分布する特徴を注目特徴としてモデルパターン300に設定する。
【0041】
位置検出能力評価部36aは、モデルパターン300の輪郭のエッジの角度の分布からモデルパターン300の位置検出能力を算出する。そして、位置検出能力評価部36aは、この角度の分布が、直交する2つの方向で同じ程度であれば、モデルパターン300の位置検出能力が高いと判定し、エッジ角度の分布が一方の方向に偏っていればモデルパターン300の位置検出能力が低いと判定する。
【0042】
図5は、
図3Bのモデルパターン300の位置検出能力を評価する方法を示す模式図である。位置検出能力評価部36aは、モデルパターン300に設定された各特徴点P_iを通り、隣り合う特徴点が並ぶ方向(モデルパターン300の輪郭線の方向)に直交する法線ベクトルの角度θ
iの分布を示す共分散行列Qを計算する。そして、共分散行列Qの2つの固有値と、これらの固有値のそれぞれに対応する固有ベクトルを算出する。なお、特徴点としては様々なものを使用できるが、本実施形態では、エッジ検出により得られるモデルパターン300の輪郭上のエッジ点を特徴点として用いる。エッジ点は、例えば画像中で輝度勾配が大きな点として得られ、輝度勾配に基づいて得られた対象物体の輪郭上の点である。エッジ点を検出する方法としては、周知の方法が適用される。なお、ここでは法線ベクトルを用いるが、接線ベクトルを用いてもよい。
【0043】
具体的には、
図5に示すように、N個の特徴点P_iのそれぞれにおける法線ベクトルが以下のように定義される。
【0044】
【0045】
各法線ベクトルの角度をθiとすると、特徴点P_iにおける法線ベクトルは以下のように表される。
【0046】
【0047】
法線ベクトルの角度θi(エッジ角度)自体は周期的であり、評価対象として扱いにくい。このため、評価対象として評価部36に入力されるデータとして、角度θiを直接用いるのではなく、上記のように法線ベクトル(cosθi,sinθi)が用いられる。なお、180°向きが異なる入力データが同様に評価されるようにするため、且つ、モデルパターン300の重心がずれて固有値の大きさが評価し難くなることを避けるため、1つの特徴点につき(cosθ,sinθ)と(-cosθ,-sinθ)の2つのベクトルが評価対象として評価部36に入力されることが好ましい。
【0048】
また、N個の法線ベクトルの平均は以下の式(1)で表される。
【0049】
【0050】
そして、法線ベクトルの共分散行列Qは、以下の式(2)で表される。
【0051】
【0052】
更に、共分散行列Qの固有値をλj、固有ベクトルをejとすると、以下の式(3)が成立する。
【0053】
【0054】
評価対象の入力データとして1次元のデータの集合を考えた場合、共分散行列Qは入力データの分散に相当する。モデルパターン300を2次元の座標値(x,y)の集合と考えると、法線ベクトルの共分散行列Qの固有ベクトルeiと固有値λiとは、法線ベクトルの分布の分散に相当し、法線ベクトルの分布の広がり方向と広がりの大きさ(分散)を示すことになる。本実施形態において、共分散行列Qは2次元の値から求まるため、固有ベクトルと固有値の数はそれぞれ2つである。そして、大きい方の固有値と、大きい方の固有値に対応する固有ベクトルは、法線ベクトルの分布の広がりの大きさと、分布の広がりが最大の方向をそれぞれ示すことになる。また、小さい方の固有値と、小さい方の固有値に対応する固有ベクトルは、大きい方の固有値に対応する固有ベクトルに直交する方向の分布の広がりの大きさと、その方向を示すことになる。なお、特徴の位置の分布の広がりが最大となる方向は、大きい方の固有値に対応する固有ベクトルの方向となる。
【0055】
このため、2つの固有値の大きさが近似しており、2つの固有値の比が1に近いほど、モデルパターン300を構成する特徴点の法線ベクトルが、直交する2つの固有ベクトルのそれぞれの方向に安定して分布し、モデルパターン300の位置検出能力が高くなる。
【0056】
一方、2つの固有値の大きさが偏っており、大きい方の固有値に対する小さい方の固有値の比が0に近い場合は、モデルパターン300を構成する特徴点の法線ベクトルが、小さい方の固有値に対応する固有ベクトルの方向に偏って分布している。この場合、大きい方の固有値に対応する固有ベクトルの方向、すなわち、特徴の位置の分布の広がりが最大となる方向に対して位置合わせが難しくなり、モデルパターン300の位置検出能力が低くなる。以上のように、法線ベクトルの値を用いた主成分分析により、法線ベクトルの主成分と、主成分と直交する方向の比率を計算することで、モデルパターン300の位置検出能力が算出される。
【0057】
したがって、小さい方の固有値(min(λ1,λ2))を大きい方の固有値(max(λ1,λ2))で除算して得られる比がモデルパターン300の位置検出能力の評価値A1とされ、評価値A1は以下の式(4)で定義される。
A1=min(λ1,λ2)/max(λ1,λ2)
・・・(4)
【0058】
評価値A1は0~1.0の値をとり、評価値A1が1に近いほど、法線ベクトルの角度θiの分布が安定となり、角度θiの偏りが少なくなるため、モデルパターン300の位置検出能力が高くなる。例えば、モデルパターン300が真円の場合、評価値A1の値は1であり、位置検出能力は最も高くなる。また、モデルパターン300が楕円の場合、楕円の長軸の方向が、法線ベクトルの共分散行列Qの大きい方の固有値に対応する固有ベクトルの方向であり、短軸の方向が小さい方の固有値に対応する固有ベクトルの方向となる。長軸が短軸に対して長いほど、法線ベクトルの分布が短軸の方向に偏るため、長軸の方向のモデルパターン300の位置検出能力が低くなる。また、モデルパターン300が直線の場合、評価値A1の値は0であり、位置検出能力は最も低くなる。したがって、評価値A1は、モデルパターンに含まれる複数の特徴の幾何学的な分布を表す。また、共分散行列Q、固有値、固有ベクトルについても、モデルパターンに含まれる複数の特徴の幾何学的な分布を表す評価値である。
【0059】
位置検出能力評価部36aは、評価値A1と予め設定された閾値とを比較し、評価値A1が、予め設定された閾値より小さい値である時、モデルパターン300の位置検出能力が低い、すなわち、モデルパターン300が位置検出能力を有していないと判定する。そして、位置検出能力評価部36aは、大きい方の固有値に対応する固有ベクトルの方向を、位置決定能力を有していない方向と判定する。
【0060】
図5に示す例では、殆どの特徴点P_iの法線ベクトルが
図5に示す矢印D
1の方向であるため、法線ベクトルの分布の広がりは、矢印D
1方向で最も小さくなる。一方、法線ベクトルの分布は、矢印D
1方向と直交する方向で最も大きくなる。したがって、2つの固有ベクトルのうち、小さい方の固有値に対応する固有ベクトルの向きは、ほぼD
1方向である。また、2つの固有ベクトルのうち、大きい方の固有値に対応する固有ベクトルの向きは、ほぼD
1方向と直交する方向である。位置検出能力評価部36aは、矢印D
1方向と直交する方向の固有ベクトルの固有値の方が大きいため、矢印D
1方向と直交する方向の位置検出能力が低いと判定する。
【0061】
次に、角度検出能力評価部36bが行う処理について説明する。
図6は、モデルパターン300の他の例を示す模式図である。ここでは、所定の方向から見たときに輪郭が略円形となり、かつ輪郭の一部が凹状に欠けた、線対称な形状を有するワーク10に対応するモデルパターン300を例示する。
【0062】
このワーク10は、例えば、軸方向から見た場合にキー溝10bが設けられた端面を有する丸棒に相当する。ワーク10は、キー溝10b以外は単純な円形形状を有しており、円の中心を回転中心とする回転方向における形状の変化が乏しい。このため、ワーク10が表された画像において、回転方向におけるワーク10の角度を検出することが困難である。そこで、角度検出能力評価部36bは、
図6に示すモデルパターン300において、回転方向と異なる方向に分布する特徴を注目特徴としてモデルパターン300に設定する。
【0063】
図7は、
図6に示したモデルパターン300の角度検出能力の評価方法を示す模式図である。
図6に示すモデルパターン300の角度検出能力は、
図7に示す長方形領域Rを設定し、長方形領域R内における特徴点の法線によって評価される。
【0064】
角度検出能力評価部36bは、先ず、モデルパターン300を構成する各特徴点P_iを通り、隣り合う特徴点が並ぶ方向(モデルパターン300の輪郭線の方向)に直交する法線ベクトルを求め、法線ベクトルの方向に延在する法線Lを設定する。なお、
図7では、一部の特徴点についてのみ法線ベクトル(
図7中に矢印で示す)と法線Lを図示するが、長方形領域R内の全ての特徴点について法線ベクトル及び法線Lが設定される。
【0065】
角度検出能力評価部36bは、長方形領域R内で最も多くの線が交わる点を回転中心Oとする。多くの特徴点の法線が回転中心Oで交わる場合、これらの特徴点は、回転中心Oを中心とする円周上の点であり、回転中心Oを回転中心とする回転方向の角度検出能力が低い特徴点である。一方、法線Lが回転中心Oを通らない特徴点は、回転中心Oを中心とする円周上の点ではなく、回転中心Oを回転中心とする回転方向の角度検出能力が高い特徴点である。
図7の例では、キー溝10bに対応する輪郭線上の特徴点P_cは、法線Lが回転中心Oを通らないため、角度検出能力の高い特徴点である。一方、ワーク10の外周面に対応する円周上の特徴点P_rは、法線Lが回転中心Oを通るため、角度検出能力の低い特徴点である。
【0066】
したがって、モデルパターン300の角度検出能力が低いか否かは、特徴点P_rのような、法線Lが回転中心Oを通る特徴点の数から判定することができる。法線Lが回転中心Oを通る特徴点の数が多いほど、モデルパターン300の輪郭の形状(特徴点が分布する形状)が円に近くなり、モデルパターン300の角度検出能力は低くなる。このため、角度検出能力評価部36bは、全特徴点数に対する、回転中心Oで交わった法線Lの数の割合を求める。角度検出能力評価部36bは、この割合を評価値A2として、評価値A2が予め設定された閾値よりも大きい値である場合に、モデルパターン300の角度検出能力が低い、すなわち、モデルパターン300が角度検出能力を有していないと判定する。
【0067】
なお、
図7に示したように、モデルパターン300の輪郭が真円を含む場合、理論上は複数の法線Lが一点で交わるが、特徴点の位置に誤差が含まれること等を考慮すると、法線Lが一点で交わらない場合がある。また、モデルパターン300の輪郭が真円でない場合や、輪郭に微妙な凹凸がある場合等においても、法線Lが一点で交わらない場合がある。したがって、角度検出能力評価部36bは、例えば長方形領域R内に存在する複数の交点をその密集度合に応じてクラスタリングし、最も交点が集まっているクラスの重心を求め、この重心から所定距離の領域R1を回転中心とみなしてもよい。
【0068】
評価値A2は0~1.0の値をとり、評価値A2が0に近いほど、全特徴点に対する、回転中心Oで交わった法線Lの数の割合が低くなり、特徴点が円周上に分布しないため、モデルパターン300は回転対称形状ではなく、モデルパターン300の角度検出能力が高くなる。また、評価値A2が1に近いほど、全特徴点に対する、回転中心Oで交わった法線Lの数の割合が高くなり、特徴点が円周上に分布するため、モデルパターン300の角度検出能力が低くなる。例えば、モデルパターン300の全特徴点の法線Lが1点で交わる場合、評価値は1となる。この場合、モデルパターン300は真円であり、モデルパターン300の角度検出能力は最も低くなる。したがって、評価値A2は、モデルパターンに含まれる複数の特徴の幾何学的な分布を表す。
【0069】
以上のように、角度検出能力評価部36bは、評価値A2に基づいてモデルパターン300の特徴の幾何学的な分布を評価し、評価値A2が閾値よりも大きい値の場合、複数の特徴の少なくとも一部が回転中心Oを中心とする回転方向に沿って分布していることを特定することができる。
【0070】
以上のようにしてモデルパターン300の位置検出能力、角度検出能力が評価され、評価値A1,A2に基づいてモデルパターン300の位置検出能力、角度検出能力が低いと判定されると、注目特徴設定部37は、位置検出能力または角度検出能力が低い方向と異なる方向に分布する特徴を注目特徴として設定する。より具体的には、注目特徴設定部37は、位置検出能力または角度検出能力が低い方向と異なる方向のモデルパターン300の輪郭上の特徴を注目特徴として設定する。
【0071】
図5の例では、例えば突起10aに対応するモデルパターン300の輪郭線上の特徴点P_cが注目特徴として設定される。好ましくは、位置検出能力が低い方向と直交する方向のモデルパターン300の輪郭上の特徴が注目特徴として設定される。また、位置検出能力が低い方向と直交する方向に対し、所定の角度範囲内の方向のモデルパターン300の輪郭上の特徴が注目特徴として設定されてもよい。例えば、位置検出能力が低い方向と直交する方向に対し、±30°の範囲内の方向のモデルパターン300の輪郭上の特徴が注目特徴として設定されてもよい。
【0072】
また、
図7の例では、例えばキー溝10bに対応するモデルパターン300の輪郭線上の特徴点P_cが注目特徴として設定される。好ましくは、角度検出能力が低い方向と直交する方向のモデルパターン300の輪郭上の特徴が注目特徴として設定される。また、角度検出能力が低い方向と直交する方向に対し、所定の角度範囲内の方向のモデルパターン300の輪郭上の特徴が注目特徴として設定されてもよい。例えば、角度検出能力が低い方向と直交する方向に対し、±30°の範囲内の方向のモデルパターン300の輪郭上の特徴が注目特徴として設定されてもよい。また、法線Lが回転中心Oを通らない特徴点P_iが注目特徴として設定されてもよい。
【0073】
注目特徴は、
図5及び
図7に示した特徴点P_cのように特徴点自体に設定されてもよいし、特徴点の集合である領域に設定されてもよい。例えば、注目特徴設定部37は、位置検出能力または角度検出能力が低い方向と異なる方向に分布する特徴点を複数抽出し、これらの複数の特徴点を含むモデルパターン上の領域を注目特徴として設定してもよい。また、注目特徴設定部37は、位置検出能力または角度検出能力が低い方向と異なる方向に分布する特徴点を複数抽出し、抽出した複数の特徴点の位置から重心を算出し、重心から所定の範囲内に位置する特徴点に対してクラスタリングをかけることで、複数の特徴点の集合である注目特徴を設定してもよい。
【0074】
以上のようにして、注目特徴は、位置検出能力または角度検出能力を有する特徴として、モデルパターンに設定される。注目特徴が設定されたモデルパターンは、メモリ33に記憶される。
【0075】
以上のように、モデルパターンを幾何学的に評価し、対象画像に表された対象物体に対して位置または角度を検出することが難しい方向を判定することで、位置と角度を安定して検出可能な注目特徴が設定される。これにより、人間がモデルパターンを目視で判断して位置検出能力または角度検出能力の低い方向を決定することが不要であり、人間のケアレスミスによって本来は注目すべきではない特徴がモデルパターン上に選択されてしまうことが抑制される。特に、モデルパターンが複雑になると、人間による目視では、注目すべき特徴の判断が困難になる。本実施形態によれば、モデルパターン評価装置によりモデルパターンに含まれる複数の特徴の幾何学的な分布が評価されるため、モデルパターンが複雑な形状を有していても、対象画像に表された対象物体の位置と角度を安定して検出可能な注目特徴が確実に設定される。
【0076】
次に、
図8~
図10に基づいて、制御装置3のプロセッサ34の評価部36、注目特徴設定部37が行う処理について説明する。
図8は、位置検出能力及び角度検出能力を評価する処理と、評価に基づいて注目特徴を設定する処理の全体の流れを示すフローチャートである。
【0077】
先ず、位置検出能力評価部36aが、モデルパターンの位置検出能力を評価し(ステップS100)、モデルパターンの位置検出能力が低いか否かを判定する(ステップS102)。なお、上述したように、位置検出能力評価部36aは、評価値A1と予め設定された閾値とを比較し、評価値A1が、予め設定した閾値より小さい値である時、モデルパターンの位置検出能力が低いと判定する。そして、注目特徴設定部37は、モデルパターンの位置検出能力が低い場合は、位置検出能力が低い方向に基づいて、位置検出能力が低い方向とは異なる方向に分布する特徴を注目特徴として設定する(ステップS104)。なお、モデルパターンの位置検出能力が高い場合は、ステップS104の処理を行うことなく、ステップS106へ進む。
【0078】
次に、角度検出能力評価部36bは、モデルパターンの角度検出能力を評価し(ステップS106)、モデルパターンの角度検出能力が低いか否かを判定する(ステップS108)。なお、上述したように、角度検出能力評価部36bは、評価値A2と予め設定された閾値とを比較し、評価値A2が、予め設定した閾値より大きい値である時、モデルパターンの角度検出能力が低いと判定する。そして、注目特徴設定部37は、モデルパターンの角度検出能力が低い場合は、角度検出能力が低い方向に基づいて、角度検出能力が低い方向とは異なる方向に分布する特徴を注目特徴として設定する(ステップS110)。ステップS110の後は処理を終了する。なお、モデルパターンの角度検出能力が高い場合は、ステップS108の処理を行うことなく、処理を終了する。
【0079】
図9は、位置検出能力評価部36aが、モデルパターンの位置検出能力を評価する処理(
図8のステップS100)を示すフローチャートである。先ず、モデルパターンを構成する特徴点群の法線ベクトルの共分散行列Qを計算する(ステップS200)。次に、共分散行列Qの2つの固有値λ
1,λ
2の大きさを比較する(ステップS202)。次に、固有値λ
1,λ
2の比である評価値A
1(min(λ
1,λ
2)/max(λ
1,λ
2))が設定した閾値より小さいか否かを判定し(ステップS204)、評価値A
1が閾値よりも小さい場合は、モデルパターンの位置検出能力が低いと判定する(ステップS206)。ステップS206の後は処理を終了する。なお、ステップS204で評価値A
1が閾値以上の場合は、モデルパターンの位置検出能力が高いため、ステップS206の処理を行うことなく処理を終了する。
【0080】
図10は、角度検出能力評価部36bが、モデルパターンの角度検出能力を評価する処理(
図8のステップS106)を示すフローチャートである。先ず、
図7に示したように、モデルパターンを囲う長方形領域Rを設定する(ステップS300)。次に、モデルパターンを構成する各特徴点を通り、各特徴点の輪郭に対する法線を設定する(ステップS302)。次に、最も多くの法線が交わる点を回転中心として設定する(ステップS304)。
【0081】
次に、全特徴点数に対し回転中心を通った法線の数の割合が設定した閾値よりも高いか否かを判定する(ステップS306)。そして、ステップS306の条件が成立する場合はステップS308へ進み、モデルパターンの角度位置検出能力が低いと判定する。ステップS308の後は処理を終了する。なお、ステップS306の条件が成立しない場合は、モデルパターンの角度検出能力が高いため、ステップS308の処理を行うことなく処理を終了する。
【0082】
次に、特徴抽出部38および照合部39が、以上のようにして注目特徴が設定されたモデルパターンを用いて、モデルパターンの特徴と対象物体が表された対象画像上の特徴との一致度を算出する処理について説明する。
【0083】
特徴抽出部38は、カメラ4により得られた時系列の一連の画像のそれぞれから、モデルパターンに表されているのと同じ種類の特徴を複数抽出する。特徴抽出部38は、各画像に対して同じ処理を実行すればよいので、以下では、一つの画像に対する処理について説明する。
【0084】
特徴がワーク10の輪郭上に位置する点といった特徴点である場合、特徴抽出部38は、例えば、画像上の各画素に対してSobelフィルタといったエッジ検出フィルタを適用し、エッジ強度が所定値以上となる画素を特徴として抽出する。あるいは、特徴抽出部38は、画像に対してHarrisなどのコーナー検出フィルタを適用することで検出されるコーナーが表された画素を特徴として抽出してもよい。あるいはまた、特徴抽出部38は、画像に対してSIFTアルゴリズムを適用することで検出される画素を、特徴として抽出してもよい。
【0085】
特徴抽出部38は、画像ごとに、その画像から抽出された各特徴の位置を照合部39へ通知する。例えば、特徴抽出部38は、抽出された特徴が表された画素とそれ以外の画素とが異なる値を持つ2値画像を、各特徴の位置を表すデータとして生成し、その2値画像を照合部39へわたす。
【0086】
照合部39は、カメラ4により得られた時系列の一連の画像のそれぞれについて、その画像から抽出された複数の特徴とモデルパターンとを照合することで、画像からワーク10を検出する。なお、照合部39は、各画像に対して同じ処理を実行すればよいので、以下では、一つの画像に対する処理について説明する。
【0087】
例えば、照合部39は、メモリ33からモデルパターンを読み込み、そのモデルパターンと着目する画像とを照合することで、画像上でワーク10が表された領域を検出する。例えば、照合部39は、画像に対するモデルパターンの相対的な位置関係を変えることで画像上に、モデルパターンと照合される複数の比較領域を設定する。なお、相対的な位置関係の変更は、例えば、画像に対するモデルパターンの相対的な位置(もしくは角度)、画像に対するモデルパターンの相対的な向き及び画像に対するモデルパターンの相対的な大きさ(スケール)の少なくとも一つを変えることで行われる。そのような変更は、例えば、特開2017-91079号公報に記載されているような同次変換行列を用いてモデルパターンを構成する特徴の位置姿勢を画像座標系から見た位置姿勢に変換することによって行われ、例えば、モデルパターンに対してアフィン変換を適用することで行われてもよい。そして照合部39は、比較領域ごとに、その比較領域とモデルパターンとの間で、モデルパターンの全体について設定された複数の特徴と比較領域から抽出された複数の特徴間の一致度合を表す全体一致度を算出する。さらに、照合部39は、モデルパターンに設定された注目特徴について、比較領域ごとに、画像から抽出された特徴との一致度合を表す部分一致度を算出する。
【0088】
照合部39は、例えば、全体一致度及び部分一致度を次式に従って算出することができる。
全体一致度=モデルパターンについて設定された特徴のうち、対象画像の比較領域から抽出された特徴の何れかまでの距離が所定値以下となるものの数/モデルパターンについて設定された特徴の総数
部分一致度=モデルパターンの注目特徴のうち、対象画像の特徴の何れかまでの距離が所定値以下となるものの数/注目特徴の総数
【0089】
なお、個々の特徴が、輪郭上の点といった、点で表される場合(すなわち、個々の特徴は特徴点である場合)、上記の全体一致度及び部分一致度の算出式における、二つの特徴間の距離は、特徴点間のユークリッド距離とすることができる。また、個々の特徴が、直線あるいは曲線である場合、二つの特徴間の距離は、特徴である二つの直線または二つの曲線のそれぞれの所定の複数の位置(例えば、両端点及び中点)間のユークリッド距離の平均値とすることができる。
【0090】
あるいは、照合部39は、モデルパターンの個々の特徴について、比較領域の最も近い特徴までの距離が近いほど、全体一致度及び部分一致度が大きくなるように、例えば、次式に従って、全体一致度及び部分一致度を算出してもよい。
全体一致度=Σn=1
N(1/(dn+1))/N
部分一致度=Σm=1
M(1/(dm+1))/M
ただし、dnは、モデルパターンについて設定されたn番目の特徴について、その特徴から対象画像の比較領域から抽出された特徴の何れかまでの距離のうちの最小値であり、Nは、モデルパターンについて設定された特徴の総数を表す。同様に、dmは、モデルパターンのm番目の注目特徴について、その注目特徴から対象画像の比較領域から抽出された特徴の何れかまでの距離のうちの最小値であり、Mは、モデルパターンに含まれる注目特徴の総数を表す。
【0091】
照合部39は、着目する比較領域について、全体一致度が所定の全体一致度閾値以上となり、かつ、部分一致度が所定の部分一致度閾値以上となる場合、着目する比較領域にワーク10が表されていると判定する。ここで、注目特徴は、位置検出能力が低い方向と異なる方向に分布する特徴であるため、部分一致度が所定の部分一致度閾値以上となる場合、位置検出能力が低い方向においても、着目する比較領域にワーク10が表されていることが精度よく判定される。同様に、注目特徴は、角度検出能力が低い回転方向と異なる方向に分布する特徴であるため、部分一致度が所定の部分一致度閾値以上となる場合、角度検出能力が低い方向においても、着目する比較領域にワーク10が表されていることが精度よく判定される。
【0092】
図11A~
図11Eは、モデルパターン300と画像との照合の概要を説明する図である。ここでは、
図6に示したモデルパターン300と画像とを照合する場合について説明する。
図11Aに示されるように、画像500に表されたワーク10は、輪郭が略円形となり、かつ、輪郭の一部が凹状に欠けた形状(キー溝10b)を有している。そしてワーク10の輪郭に沿って、複数の特徴501が抽出されている。これに対して、
図11Bに示されるように、モデルパターン300でも、ワーク10の輪郭に沿って複数の特徴301が設定されるとともに、輪郭が凹状に欠けた部分に注目特徴320が設定されている。
【0093】
図11Cに示されるように、画像500において、ワーク10を含むように比較領域530が設定され、かつ、モデルパターン300の角度と画像500上のワーク10の角度とが一致しているとする。この場合、モデルパターン300全体において、モデルパターンについて設定された個々の特徴301と、画像500から抽出された個々の特徴501とが略一致し、且つ、注目特徴320と、画像500から抽出された注目特徴320に対応する特徴501とが略一致する。そのため、全体一致度と部分一致度の両方が高い値となるので、比較領域530においてワーク10が表されていると判定され、かつ、画像500上のワーク10の角度は、モデルパターン300と同じ角度であることが分かる。
【0094】
一方、
図11Dに示されるように、比較領域540が、ワーク10が表された領域とずれていると、比較領域全体について、モデルパターン300について設定された個々の特徴301と、画像500から抽出された個々の特徴501とが一致しない。さらに、注目特徴320と、画像500から抽出された個々の特徴501とが一致しない。その結果として、全体一致度及び部分一致度の両方とも低い値となる。そのため、比較領域540はワーク10が表されている領域と異なると判定される。
【0095】
さらに、
図11Eに示されるように、比較領域550が、ワーク10を含むものの、画像500上でのワーク10の角度と照合されるモデルパターン300の角度とが異なるように設定されているとする。この場合、ワーク10の輪郭と略一致するようにモデルパターン300が位置合わせされているので、複数の特徴501のうち、特徴301の何れかとの距離が近いものが多くなるので、全体一致度は比較的高い値となる。しかし、ワーク10の凹状に欠けた部分の位置と、モデルパターン300の注目特徴320の位置とがずれているため、部分一致度は低い値となる。その結果、比較領域550からは、ワーク10は検出されない。
【0096】
このように、照合部39は、モデルパターン全体から算出される全体一致度と部分一致度の両方に基づいて画像上でワーク10が表された領域を検出するの。したがって、角度検出能力が低い回転方向について、ワーク10の角度が正確に検出される。
【0097】
なお、
図11A~
図11Eでは、
図6に示したモデルパターン300と画像とを照合する例を示したが、
図5に示したモデルパターン300と画像とを照合する場合においても、照合部39は、モデルパターン全体から算出される全体一致度と部分一致度の両方に基づいて画像上でワーク10が表された領域を検出するので、位置検出能力が低い方向についても、ワーク10の位置が正確に検出される。
【0098】
なお、全体一致度閾値と部分一致度閾値とは、同一でもよく、あるいは、互いに異なっていてもよい。また、モデルパターンに注目特徴が設定された領域が複数存在する場合には、複数の領域ごとに適用される部分一致度閾値の値は異なっていてもよく、あるいは、複数の領域に適用される部分一致度閾値の値は同じでもよい。
【0099】
なお、モデルパターンは、予め複数用意されてもよい。この場合、モデルパターンごとに、ワーク10を見る方向が異なっていてもよい。この場合、照合部39は、複数のモデルパターンのそれぞれについて、上記と同様に、比較領域ごとに全体一致度及び部分一致度を算出する。そして照合部39は、全体一致度と部分一致度の和が最大となり、全体一致度が全体一致度閾値以上、かつ、部分一致度が部分一致度閾値以上となるモデルパターンの位置と対応する比較領域に、そのモデルパターンに表された方向から見たワーク10が表れていると判定すればよい。
【0100】
画像上でのワーク10の位置が求められると、照合部39は、その位置に基づいて、実空間でのワーク10の位置を検出する。ここで、画像上の各画素の位置は、カメラ4から見た方位と1対1に対応する。そこで、照合部39は、例えば、画像上でワーク10が表された領域の重心に相当する方位を、カメラ4からワーク10へ向かう方位とすることができる。さらに、照合部39は、画像上でワーク10が表された領域の面積に対する、カメラ4からワーク10までの距離が所定の基準距離である場合における、画像上のワーク10の面積の比を、基準距離に乗じることで、カメラ4からワーク10までの推定距離を算出できる。したがって、照合部39は、カメラ4からワーク10へ向かう方位と推定距離とに基づいて、カメラ4の位置を基準とするカメラ座標系でのワーク10の位置を検出できる。
【0101】
さらに、照合部39は、ワーク10が表されていると判定された比較領域におけるモデルパターンの向きに応じて、所定の方向から見たときの、モデルパターンに表されたワーク10の向きに対する、ワーク10の実際の回転量を求めることができる。そのため、照合部39は、その回転量に応じてワーク10の姿勢を求めることができる。さらに、照合部39は、モデルパターンについて規定された所定の方向と、ワーク10が表された領域の重心に対応する、カメラ4からの方位との差の分だけ、画像上でのワーク10の姿勢を回転させることで、カメラ座標系で表されたワーク10の姿勢を求めることができる。
照合部39は、実空間でのワーク10の位置を求める度に、ワーク10の位置を可動部制御部40へ出力する。
【0102】
可動部制御部40は、照合部39により検出されたワーク10の位置及び姿勢に基づいて、ロボット2の可動部を制御する。例えば、ロボット2のツール16がワーク10に対する作業を実施できる位置へ移動するように、ロボット2の各可動部を制御する。その際、可動部制御部40は、例えば、カメラ4により生成される画像において、ツール16がワーク10に対する作業を行う位置に対応する、所定の位置及び所定の大きさでワーク10が表されるように、ロボット2の各可動部を制御する。この場合には、可動部制御部40は、例えば、位置ベース法あるいは特徴ベース法といった、カメラにより得られる対象物体の画像に基づいてロボットを制御する手法に従ってロボット2の各可動部を制御すればよい。そのような手法については、例えば、橋本、「視覚と制御」、計測自動制御学会制御部門大会ウォークショップ、 京都、 pp. 37-68、 2001年を参照されたい。
【0103】
図12は、物体検出処理を含む、可動部制御処理の動作フローチャートである。プロセッサ34は、下記の動作フローチャートに従って、カメラ4から画像を取得する度に、可動部制御処理を実行する。なお、以下の動作フローチャートのうち、ステップS401~S407の処理が、物体検出処理に含まれる。
【0104】
特徴抽出部38は、画像から、ワーク10の互いに異なる位置の外観の特徴を複数抽出する(ステップS401)。照合部39は、画像上にモデルパターンと照合する比較領域を設定する(ステップS402)。照合部39は、モデルパターンと比較領域との間で、全体一致度Saを算出するとともに、部分一致度Spを算出する(ステップS403)。そして照合部39は、全体一致度Saが全体一致度閾値Tha以上となり、かつ、部分一致度Spが部分一致度閾値Thp以上となるか否か判定する(ステップS404)。
【0105】
全体一致度Saが全体一致度閾値Tha未満となるか、あるいは、部分一致度Spが部分一致度閾値Thp未満となる場合(ステップS404-No)、照合部39は、比較領域には、モデルパターンの向きと同じ向きのワーク10は表されていないと判定する。そして照合部39は、画像に対するモデルパターンの相対的な位置、向き及びスケールの少なくとも何れかを変更することで比較領域を変更する(ステップS405)。その後、照合部39は、ステップS103以降の処理を繰り返す。
【0106】
一方、全体一致度Saが全体一致度閾値Tha以上となり、かつ、部分一致度Spが部分一致度閾値Thp以上となる場合(ステップS404-Yes)、照合部39は、比較領域に、照合されたモデルパターンの向きと同じ向きのワーク10が表されていると判定する(ステップS406)。そして照合部39は、画像上のワーク10の位置及び向きから、実空間でのワーク10の位置及び姿勢を検出する(ステップS407)。
【0107】
可動部制御部40は、実空間でのワーク10の位置及び姿勢に基づいて、ツール16がワーク10に対する作業を実施できる位置へ移動するようにロボット2の可動部を制御する(ステップS408)。
【0108】
ステップS408の後、プロセッサ34は、可動部制御処理を終了する。なお、照合部39は、ステップS403~S405の処理を所定回数以上繰り返しても、画像上でワーク10が検出されない場合には、照合部39は、画像にワーク10は表されていないと判定してもよい。この場合には、可動部制御部40は、可動部を停止させてもよい。
【0109】
次に、注目特徴が設定されたモデルパターン300と、対象画像との一致度を算出する方法として、モデルパターン300の注目特徴における重みを注目特徴以外の特徴における重みよりも高くして一致度を算出する方法について説明する。この場合、照合部39は、一致度を以下の式(5)に従って算出する。
【0110】
【0111】
式(5)において、Nはモデルパターン上の特徴点の総数である。また、モデルパターン300上の特徴点Pjと、対象画像上でPjに対応する特徴点Qjとの距離を|Pj-Qj|とすると、δjは以下で定義される。
【0112】
【0113】
また、式(5)において、Wは重み係数である。一例として、モデルパターン300上の特徴点Pjが注目特徴の場合はW=1.2、モデルパターン300上の特徴点Pjが注目特徴でない場合は、W=0.8とされる。
【0114】
照合部39は、式(5)に基づき、モデルパターン300上の任意の特徴点Pjと、対象画像上で特徴点Pjに対応する特徴点Qjとの距離|Pj-Qj|が所定値D未満の場合、特徴点Pjと特徴点Qjが一致するものと判定し、重み係数Wjの値を用いて(δj=1)、一致度を算出する。一方、照合部39は、距離|Pj-Qj|が所定値D以上の場合、特徴点Pjと特徴点Qjが一致しないものと判定し、重み係数Wjの値を用いることなく(δj=0)、一致度を算出する。
【0115】
そして、式(5)において、モデルパターン300上の特徴点Pjが注目特徴である場合の重み係数Wjは、特徴点Pjが注目特徴以外の特徴である場合の重み係数Wjよりも大きな値に設定されている。このため、モデルパターン300に設定された注目特徴が対象画像における特徴と一致しているほど、式(5)から算出される一致度が高くなり、一致度の算出において、位置検出能力または角度検出能力を有する注目特徴の寄与度が、注目特徴以外の特徴の寄与度よりも高くなる。したがって、モデルパターン300が位置検出能力または角度検出能力を有していない場合においても、注目特徴における一致度を重点的に利用して、モデルパターン300と対象画像に表された対象物体との一致度が高い精度で算出される。
【0116】
図13は、可動部制御処理の動作フローチャートであって、モデルパターン300の注目特徴における重みを注目特徴以外の特徴における重みよりも高くして一致度を算出する場合の処理を示す。プロセッサ34は、下記の動作フローチャートに従って、カメラ4から画像を取得する度に、可動部制御処理を実行する。なお、以下の動作フローチャートのうち、ステップS501~S507の処理が、物体検出処理に含まれる。
【0117】
特徴抽出部38は、画像から、ワーク10の互いに異なる位置の外観の特徴を複数抽出する(ステップS501)。照合部39は、画像上にモデルパターンと照合する比較領域を設定する(ステップS502)。照合部39は、モデルパターンと比較領域との間で、一致度Sを算出する(ステップS503)。この際、照合部39は、式(5)に基づき、モデルパターン300上の特徴点Pjが注目特徴である場合の重み係数Wjを、特徴点Pjが注目特徴以外の特徴である場合の重み係数Wjよりも大きくして、一0致度Sを算出する。そして照合部39は、一致度Sが閾値Th以上となるか否か判定する(ステップS504)。
【0118】
一致度Sが閾値Th未満となる場合(ステップS504-No)、照合部39は、比較領域には、モデルパターン300に対応するワーク10は表されていないと判定する。そして照合部39は、画像に対するモデルパターン300の相対的な位置、向き及びスケールの少なくとも何れかを変更することで比較領域を変更する(ステップS505)。その後、照合部39は、ステップS503以降の処理を繰り返す。
【0119】
一方、一致度Sが閾値Th以上となる場合(ステップS504-Yes)、照合部39は、比較領域に、照合されたモデルパターン300に対応するワーク10が表されていると判定する(ステップS506)。ステップS506以降の処理は、
図11のステップS406以降の処理と同様に行われる。
【0120】
以上に説明してきたように、このモデルパターン評価出装置は、モデルパターンに含まれる複数の特徴の幾何学的な分布を表す評価値を算出し、評価値に基づいて、特徴の位置の分布の広がりが最大となる方向を位置検出能力が低い特定方向として特定する。また、モデルパターン評価出装置は、評価値に基づいて、所定の点を回転中心とする回転方向に沿って複数の特徴の少なくとも一部が分布していることを特定し、この回転方向を角度検出能力が低い方向とする。そして、これらの特定方向または回転方向と異なる方向に分布する特徴が注目特徴としてモデルパターンに設定される。物体検出装置は、モデルパターンと対象画像とを照合し、注目特徴と画像から抽出された特徴との一致度に基づいて、対象画像に表された対象物体に対してモデルパターンの位置または角度が一致しているか否かを判定する。したがって、この物体検出装置は、画像上に、対象物体全体と似た全体形状を持つ他の物体が表されている場合でも、他の物体を対象物体として誤検出することを抑制でき、画像に表された対象物体を精度良く検出することができる。特に、この物体検出装置は、例えば対象物体が直線状の単純な形状であったり、対称性を有する形状である場合でも、その対象物体を画像から精度良く検出することができる。
【0121】
(変形例)
この物体検出装置は、自動機械の制御以外の用途に利用されてもよい。例えば、この物体検出装置は、ベルトコンベヤー上を搬送されるワーク10の良否を判定するために用いられてもよい。この場合には、カメラ4は、例えば、ワーク10の搬送経路の一部がカメラ4の撮影範囲に含まれるように固定的に取り付けられてもよい。そして物体検出装置は、例えば、
図2に示される制御装置3と同様の構成を有する装置とすることができる。ただし、駆動回路32は省略されてもよい。この場合、物体検出装置が有するメモリには、ワーク10の良品を表すモデルパターンが記憶される。この場合、物体検出装置のプロセッサは、カメラ4により得られた画像に対して、特徴抽出部38の処理及び照合部39の処理を実行すればよい。そして照合部39が、モデルパターンとの照合により、カメラ4により得られた画像からワーク10を検出すると、そのワーク10は良品であると判定すればよい。一方、照合部39が、画像からワーク10を検出できない場合には、その画像が生成されたときのカメラ4の撮影範囲内に位置しているワーク10は不良品であると判定してもよい。そして物体検出装置のプロセッサは、表示装置に、良否判定結果を表示してもよく、あるいは、通信インターフェースを介して接続される他の機器へ、良否判定結果を通知してもよい。
この変形例によれば、検査対象物の位置及び姿勢が特定されていない場合でも、物体検出装置は、検査対象物の良否を判定することができる。
【0122】
また、制御装置3のプロセッサ34が有する各部の処理を実行するためのコンピュータプログラムは、半導体メモリ、磁気記録媒体または光記録媒体といった、コンピュータ読取可能な可搬性の記録媒体に記録された形で提供されてもよい。
【0123】
また、
図4では、モデルパターン評価装置と物体検出装置とが、ロボットシステム1が備える制御装置3の1つのプロセッサ34により構成される例を示したが、モデルパターン評価装置と物体検出装置は別体に構成されていてもよい。
【0124】
例えば、モデルパターンの形状が予め定められている場合などにおいては、物体検出装置とは別体に構成されたモデルパターン評価装置を用いて、モデルパターンの位置検出能力及び角度検出能力を予め評価し、モデルパターンに注目領域を予め設定しておいてもよい。この場合、制御装置3とは別に構成されたモデルパターン評価装置によりモデルパターンに注目特徴が予め設定される。注目特徴が設定されたモデルパターンは、ロボットシステム1が備える制御装置3のメモリ33に記憶される。
【0125】
一方、例えばカメラ4が撮影した対象物体の画像を取得する度にモデルパターン300を逐次作成し、作成したモデルパターンの位置検出能力、角度検出能力を評価して注目特徴を設定し、そのモデルパターンを用いて逐次対象物体を検出する場合も想定される。このような場合は、
図4に示したように評価部36及び注目特徴設定部37から構成されるモデルパターン評価処理の構成要素と、特徴抽出部38及び照合部39から構成される物体検出処理の構成要素とが1つのプロセッサ34に備えられていることが好ましい。
【0126】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【符号の説明】
【0127】
1 ロボットシステム
2 ロボット
3 制御装置
4 カメラ
5 通信回線
6 物体検出装置
11 台座
12 回転ステージ
13 第1のアーム
14 第2のアーム
15 リスト
16 ツール
21~25 関節
31 通信インターフェース
32 駆動回路
33 メモリ
34 プロセッサ
35 サーボモータ
36 評価部
36a 位置検出能力評価部
36b 角度検出能力評価部
37 注目特徴設定部
38 特徴抽出部
39 照合部
40 可動部制御部