IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ファナック株式会社の特許一覧

特許7488033物体検出装置及び物体検出用コンピュータプログラム
<>
  • 特許-物体検出装置及び物体検出用コンピュータプログラム 図1
  • 特許-物体検出装置及び物体検出用コンピュータプログラム 図2
  • 特許-物体検出装置及び物体検出用コンピュータプログラム 図3
  • 特許-物体検出装置及び物体検出用コンピュータプログラム 図4
  • 特許-物体検出装置及び物体検出用コンピュータプログラム 図5
  • 特許-物体検出装置及び物体検出用コンピュータプログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-13
(45)【発行日】2024-05-21
(54)【発明の名称】物体検出装置及び物体検出用コンピュータプログラム
(51)【国際特許分類】
   G06T 7/00 20170101AFI20240514BHJP
【FI】
G06T7/00 300F
【請求項の数】 6
(21)【出願番号】P 2019151809
(22)【出願日】2019-08-22
(65)【公開番号】P2021033555
(43)【公開日】2021-03-01
【審査請求日】2022-05-17
【審判番号】
【審判請求日】2023-08-01
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【弁理士】
【氏名又は名称】廣瀬 繁樹
(74)【代理人】
【識別番号】100133835
【弁理士】
【氏名又は名称】河野 努
(72)【発明者】
【氏名】小倉 翔太郎
【合議体】
【審判長】畑中 高行
【審判官】板垣 有紀
【審判官】高橋 宣博
(56)【参考文献】
【文献】特開2016-130979(JP,A)
【文献】特開2017-096749(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00, 7/00-7/90
G06V 10/00-10/98
G01B 11/00-11/30
(57)【特許請求の範囲】
【請求項1】
対象物体を所定の方向から見たときの前記対象物体の互いに異なる位置にある所定の特徴を複数表すモデルパターンと、前記モデルパターンの一部を含む少なくとも一つの部分領域とを記憶する記憶部と、
前記対象物体が表された画像から前記所定の特徴を複数抽出する特徴抽出部と、
前記モデルパターン全体について設定された複数の前記所定の特徴と前記画像上の前記モデルパターンに対応する領域内の複数の前記所定の特徴間の一致度合を表す全体一致度を算出するとともに、前記少なくとも一つの部分領域のそれぞれについて、複数の前記所定の特徴のうちの当該部分領域に含まれる1以上の特徴と、前記画像上の当該部分領域に対応する領域内の1以上の前記所定の特徴間の一致度合を表す部分一致度を算出し、前記全体一致度が所定の全体一致度閾値以上となり、かつ、前記少なくとも一つの部分領域のそれぞれについて算出された前記部分一致度が所定の部分一致度閾値以上となるときの前記モデルパターンに対応する前記画像上の領域に前記対象物体が表されていると判定する照合部と、を備え、
複数の前記所定の特徴のうち、前記部分一致度の算出に利用される特徴の種類は、前記全体一致度の算出に利用される特徴の種類と異なる、
物体検出装置。
【請求項2】
複数の前記所定の特徴のうち、第1の部分領域に含まれる特徴が前記部分一致度の算出に利用される第1の種類の特徴であり、前全体一致度の算出に利用される特徴が第2の種類の特徴であり、
前記特徴抽出部は、前記画像から前記第1の種類の特徴と前記第2の種類の特徴とをそれぞれ抽出し、
前記照合部は、前記第1の部分領域について、前記第1の種類の特徴と、前記画像上の前記第1の部分領域に対応する領域から抽出された前記第1の種類の特徴との一致度合に基づいて前記部分一致度を算出し、前記第2の種類の特徴と、前記画像上の前記モデルパターンに対応する領域から抽出された前記第2の種類の特徴との一致度合に基づいて前記全体一致度を算出する、請求項1に記載の物体検出装置。
【請求項3】
前記第1の種類の特徴は、直線、所定の曲線または所定の形状を持つ図形であり、前記第2の種類の特徴は、特徴点である、請求項2に記載の物体検出装置。
【請求項4】
前記全体一致度閾値は、前記部分一致度閾値よりも高い、請求項1~3の何れか一項に記載の物体検出装置。
【請求項5】
前記全体一致度閾値は、前記部分一致度閾値よりも低い、請求項1~3の何れか一項に記載の物体検出装置。
【請求項6】
対象物体が表された画像から所定の特徴を複数抽出し、
前記画像に対する前記対象物体を所定の方向から見たときの前記対象物体の互いに異なる位置にある前記所定の特徴を複数表すモデルパターン全体について設定された複数の前記所定の特徴と前記画像上の前記モデルパターンに対応する領域内の複数の前記所定の特徴間の一致度合を表す全体一致度を算出するとともに、前記モデルパターンの一部を含む少なくとも一つの部分領域のそれぞれについて、複数の前記所定の特徴のうちの当該部分領域に含まれる1以上の特徴と、前記画像上の当該部分領域に対応する領域内の1以上の前記所定の特徴間の一致度合を表す部分一致度を算出し、前記全体一致度が所定の全体一致度閾値以上となり、かつ、前記少なくとも一つの部分領域のそれぞれについて算出された前記部分一致度が所定の部分一致度閾値以上となるときの前記モデルパターンに対応する前記画像上の領域に前記対象物体が表されていると判定する、
ことをコンピュータに実行させ、
複数の前記所定の特徴のうち、前記部分一致度の算出に利用される特徴の種類は、前記全体一致度の算出に利用される特徴の種類と異なる、
物体検出用コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば、画像に表された物体を検出する物体検出装置及び物体検出用コンピュータプログラムに関する。
【背景技術】
【0002】
従来より、対象物体が表された画像から、その対象物体が表された領域を検出する技術が提案されている。そのような技術のなかでも特に、自動車のホイールのように高度に形状の対称性を有するために、特定の部位に注目しないと位置及び姿勢が正確に決まらない形状を有する対象物体に対し、精度良く位置決めする技術が提案されている。例えば、特許文献1に記載された位置決め方法は、検査対象物の規範となる製品の規範画像において規範パターンを取り囲む第一領域及び規範パターンの位置及び姿勢を特徴付ける第二領域を設定する。そしてこの位置決め方法は、第一領域から抽出された特徴を検査対象画像からサーチして検査対象画像における規範パターンの位置及び姿勢を粗に求め(第一サーチ工程)、粗に求められた位置及び姿勢の少なくとも一方を、第二領域から抽出された特徴を検査対象画像からサーチすることで細密に求める(第二サーチ工程)。
【0003】
また、特許文献2に記載された製品検査方法は、複数の製品の集合体中に含まれる製品間で相互にパターンマッチングを行う際に、複数の製品が写った画像から個々の製品が表された検査ウィンドウを設定する。この製品検査方法は、基準位置の検査ウィンドウをそれぞれが特徴的なパターンを表す複数の分割画像に分割し、基準位置の検査ウィンドウ全体を表す全体画像及び分割画像をそれぞれテンプレートとして、他の検査ウィンドウとの間でパターンマッチングを実施する。そしてこの製品検査方法は、全体画像のパターンマッチングにより得られる全体モデル相関値と分割画像のパターンマッチングにより得られる分割モデル相関値とを閾値と比較することで、製品の良否を判定する。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2017-96749号公報
【文献】特開2004-318488号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、特許文献1に記載の技術では、第二サーチ工程を行うために、検査対象物の形状に応じてユーザがサーチ方法を設定する必要がある。サーチ方法の設定では、第二サーチ工程において、検査対象画像を回転させることで検査対象物をサーチする回転サーチを実行するか、位置姿勢特徴を検査対象画像内でサーチ方向に沿ってシフトすることで検査対象物をサーチする直線サーチを実行するかの指定、および、回転サーチの場合は回転中心の設定、直線サーチの場合はサーチ方向の設定が行われる。サーチ方法の設定が適切でないと、第二サーチ工程において、設定された第二領域が、検査対象物が表された検査対象画像と一致せず、適切な位置決め結果が得られない。特に、回転中心及びサーチ方向については、設定した回転中心またはサーチ方向に少しでも誤差があると、第二サーチ工程において、第二領域と検査対象画像とが一致する角度及び位置が検出されないため、操作者は各段の注意深さをもってサーチ方法を設定する必要がある。また、第二サーチ工程が、第一サーチ工程のサーチ結果に拘束されるので、第一サーチ工程自体のサーチ結果が適切でないと、検査対象物の正しい位置及び姿勢が得られない。また、特許文献2に記載の技術では、製品群が表された画像に対して予め個々の検査ウィンドウを設定してから検査ウィンドウ間のマッチングが行われる。そのため、検査ウィンドウの設定時点において、個々の検査ウィンドウが製品を表すように適切に設定されていなければ、ウィンドウ全体と分割画像ごとのそれぞれにパターンマッチングを行っても適切な良否判定結果は得られない。
【0006】
一つの側面では、画像に表された対称性を有する対象物体を精度良く検出することが可能な物体検出装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
一つの実施形態によれば、物体検出装置が提供される。この物体検出装置は、対象物体を所定の方向から見たときの対象物体の互いに異なる位置にある所定の特徴を複数表すモデルパターンと、モデルパターンの一部を含む少なくとも一つの部分領域とを記憶する記憶部と、対象物体が表された画像から所定の特徴を複数抽出する特徴抽出部と、画像に対するモデルパターンの相対的な位置関係を変えながら、モデルパターン全体について設定された複数の所定の特徴と画像上のモデルパターンに対応する領域から抽出された複数の所定の特徴間の一致度合を表す全体一致度を算出するとともに、少なくとも一つの部分領域のそれぞれについて、複数の所定の特徴のうちのその部分領域に含まれる1以上の特徴と、画像上のその部分領域に対応する領域から抽出された1以上の所定の特徴間の一致度合を表す部分一致度を算出し、全体一致度が所定の全体一致度閾値以上となり、かつ、少なくとも一つの部分領域のそれぞれについて算出された部分一致度が所定の部分一致度閾値以上となるときのモデルパターンに対応する画像上の領域に対象物体が表されていると判定する照合部と、を有する。
【0008】
他の実施形態によれば、物体検出用コンピュータプログラムが提供される。この物体検出用コンピュータプログラムは、対象物体が表された画像から所定の特徴を複数抽出し、画像に対する対象物体を所定の方向から見たときの対象物体の互いに異なる位置にある所定の特徴を複数表すモデルパターンの相対的な位置関係を変えながら、モデルパターン全体について設定された複数の所定の特徴と画像上のモデルパターンに対応する領域から抽出された複数の所定の特徴間の一致度合を表す全体一致度を算出するとともに、少なくとも一つの部分領域のそれぞれについて、モデルパターンについて設定された複数の特徴のうちのその部分領域に含まれる1以上の所定の特徴と、画像上のその部分領域に対応する領域から抽出された1以上の所定の特徴間の一致度合を表す部分一致度を算出し、全体一致度が所定の全体一致度閾値以上となり、少なくとも一つの部分領域のそれぞれについて算出された部分一致度が所定の部分一致度閾値以上となるときのモデルパターンに対応する画像上の領域に対象物体が表されていると判定する、ことをコンピュータに実行させるための命令を含む。
【発明の効果】
【0009】
一つの側面によれば、画像に表された対称性を有する対象物体を精度良く検出することができる。
【図面の簡単な説明】
【0010】
図1】一つの実施形態によるロボットシステムの概略構成図である。
図2】制御装置の概略構成図である。
図3】(a)は、所定の方向から見たワークの形状の一例を表す図であり、(b)は、ワークのモデルパターンの一例を表す図である。
図4】物体検出処理を含む可動部制御処理に関する、制御装置が有するプロセッサの機能ブロック図である。
図5】(a)~(e)は、モデルパターンと画像との照合の概要説明図である。
図6】物体検出処理を含む、可動部制御処理の動作フローチャートである。
【発明を実施するための形態】
【0011】
以下、図を参照しつつ、本発明の実施形態による物体検出装置について説明する。この物体検出装置は、例えば、撮像部が探索対象となる物体(以下、単に対象物体と呼ぶ)を撮影することで得られた、対象物体が表された画像から、その対象物体を検出する。その際、この物体検出装置は、画像と対象物体を所定の方向から見たときの外観を表すモデルパターンとの相対的な位置関係を変えながら、モデルパターン全体について設定された複数の特徴と、画像上のモデルパターンに対応する比較領域から抽出される複数の特徴との間の一致度合を表す全体一致度を算出する。さらに、この物体検出装置は、モデルパターンの一部分を表す少なくとも一つの部分領域のそれぞれについて、その部分領域に含まれる1以上の特徴とその部分領域に対応する画像上の部分比較領域から抽出される1以上の特徴との間の一致度合を表す部分一致度を算出する。そしてこの物体検出装置は、全体一致度及び各部分領域について算出された部分一致度が閾値以上となるときに、モデルパターンに対応する画像上の比較領域に対象物体が表されていると判定する。
【0012】
以下では、物体検出装置がロボットシステムに組み込まれた例について説明する。この例では、ロボットが有する可動部に取り付けられた撮像部が、その自動機械の作業対象であるワークを対象物体として撮影することでその対象物体が表された画像を生成する。そして物体検出装置が組み込まれたロボットの制御装置が、その画像から対象物体を検出し、その検出結果に基づいて可動部を制御する。
【0013】
図1は、一つの実施形態による、物体検出装置が実装されたロボットシステム1の概略構成図である。ロボットシステム1は、ロボット2と、ロボット2を制御する制御装置3と、ロボット2の可動部に取り付けられ、対象物体の一例であるワーク10を撮影するためのカメラ4とを有する。ロボットシステム1は、自動機械の一例である。
【0014】
ロボット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に対する所定の作業を実施する。
【0015】
台座11は、ロボット2が床置き設置される場合に台となる部材である。回転ステージ12は、台座11の天面に、関節21にて、台座11のその一方の面と直交するように設けられる軸(図示せず)を回転中心として回動可能に取り付けられる。
【0016】
第1のアーム13は、その一端側にて、回転ステージ12に設けられる関節22において回転ステージ12に取り付けられる。本実施形態では、図1に示されるように、第1のアーム13は、関節22にて、台座11の回転ステージ12が取り付けられる面と平行に設けられる軸(図示せず)を中心として回動可能となっている。
【0017】
第2のアーム14は、その一端側にて、関節22とは反対側の第1のアーム13の他端側に設けられる関節23にて第1のアーム13に取り付けられる。本実施形態では、図1に示されるように、第2のアーム14は、関節23にて、台座11の回転ステージ12が取り付けられる面と平行に設けられる軸(図示せず)を中心として回動可能となっている。
【0018】
リスト15は、関節23とは反対側の第2のアーム14の先端にて、関節24を介して取り付けられる。リスト15は、関節25を有し、関節25にて関節22の軸及び関節23の軸と平行に設けられる軸(図示せず)を回転中心として屈曲可能となっている。さらに、リスト15は、第2のアーム14の長手方向と平行な軸(図示せず)を回転中心として、第2のアーム14の長手方向と直交する面において回動可能であってもよい。
【0019】
ツール16は、関節24とは反対側のリスト15の先端に取り付けられる。ツール16は、ワーク10に対する作業を行うための機構または装置を有する。例えば、ツール16は、ワーク10を加工するためのレーザを有してもよく、ワーク10を溶接するためのサーボガンを有していてもよい。あるいは、ツール16は、ワーク10またはワーク10に組み付けられる部品を把持するためのハンド機構を有していてもよい。
【0020】
カメラ4は、撮像部の一例であり、例えば、ツール16に取り付けられる。なお、カメラ4は、リスト15または第2のアーム14といった他の可動部に取り付けられてもよい。カメラ4は、ロボット2がワーク10に対する作業を実施する際にカメラ4の撮影範囲にワーク10が含まれるように向けられる。そしてカメラ4は、所定の撮影周期ごとに、ワーク10を含む撮影範囲を撮影することでワーク10が表された画像を生成する。カメラ4は、画像を生成する度に、生成した画像を、通信回線5を介して制御装置3へ出力する。
【0021】
制御装置3は、通信回線5を介してロボット2と接続され、ロボット2のそれぞれの関節に設けられる軸を駆動するサーボモータの動作状況を表す情報、カメラ4からの画像などを、ロボット2から通信回線5を介して受信する。そして制御装置3は、受信した情報、画像、及び、上位制御装置(図示せず)から受信した、あるいは、予め設定されたロボット2の動作に基づいて、サーボモータを制御することで、ロボット2の各可動部の位置及び姿勢を制御する。
【0022】
図2は、制御装置3の概略構成図である。制御装置3は、通信インターフェース31と、駆動回路32と、メモリ33と、プロセッサ34とを有する。さらに、制御装置3は、タッチパネルといったユーザインターフェース(図示せず)を有していてもよい。
【0023】
通信インターフェース31は、例えば、制御装置3を通信回線5と接続するための通信インターフェース及び通信回線5を介した信号の送受信に関する処理を実行するための回路などを含む。そして通信インターフェース31は、例えば、ロボット2から、通信回線5を介して、駆動部の一例であるサーボモータ35の回転量を検出するためのエンコーダからの回転量の測定値など、サーボモータ35の動作状況を表す情報を受信して、その情報をプロセッサ34へわたす。なお、図2では、代表的に一つのサーボモータ35が図示されているが、ロボット2は、関節ごとに、その関節の軸を駆動するサーボモータを有してもよい。さらに、通信インターフェース31は、カメラ4から画像を受信してプロセッサ34へわたす。
【0024】
駆動回路32は、電流供給用のケーブルを介してサーボモータ35と接続され、プロセッサ34による制御に従って、サーボモータ35に生じさせるトルク、回転方向あるいは回転速度に応じた電力をサーボモータ35へ供給する。
【0025】
メモリ33は、記憶部の一例であり、例えば、読み書き可能な半導体メモリと読み出し専用の半導体メモリとを有する。さらに、メモリ33は、半導体メモリカード、ハードディスク、あるいは光記憶媒体といった記憶媒体及びその記憶媒体にアクセスする装置を有していてもよい。
【0026】
メモリ33は、制御装置3のプロセッサ34で実行される、ロボット2の制御用の各種コンピュータプログラムなどを記憶する。また、メモリ33は、ロボット2を動作させる際のロボット2の動作を制御するための情報を記憶する。さらに、メモリ33は、ロボット2の動作中においてロボット2から得られるサーボモータ35の動作状況を表す情報を記憶する。さらにまた、メモリ33は、物体検出処理で利用される各種のデータを記憶する。そのようなデータには、例えば、ワーク10の検出に用いられる、ワーク10のモデルパターン、カメラ4の焦点距離、取り付け位置及び向きといったカメラ4に関する情報を表すカメラパラメータ、及び、カメラ4から得られた画像が含まれる。
【0027】
本実施形態では、モデルパターンには、ワーク10を所定の方向(例えば、鉛直上方)から見たときのワーク10の互いに異なる位置にある所定の特徴が複数表される。さらに、モデルパターンには、ワーク10の一部分を含むように少なくとも一つの部分領域が設定される。部分領域は、例えば、ワーク10の姿勢を表す局所部分、例えば、所定の方向からワーク10を見たときに、ワーク10の姿勢に応じて、ワーク10の基準点(例えば、所定の方向から見たときのワーク10が表される領域の重心)に対して位置及び姿勢が変化する部分に設定される。なお、部分領域は、一つに限らず、複数設定されてもよい。また、ワーク10は、例えば、所定の方向から見たときに対称性を有する形状、例えば、線対称となる形状を有するものであってもよい。さらに、モデルパターンに表される、所定の特徴は、例えば、ワーク10の外観の輪郭上の点あるいはワーク10に形成される穴に沿った点といった、ワーク10の何らかの部分の輪郭を表す特徴点とすることができる。あるいは、所定の特徴は、ワーク10の特定の部位に位置する直線または曲線、あるいは、ワーク10の特定部位の形状を表す図形(例えば、三角形あるいは円など)であってもよい。
【0028】
図3(a)は、所定の方向から見たワーク10の形状の一例を表す図であり、図3(b)は、ワーク10のモデルパターンの一例を表す図である。図3(a)に示されるように、この例では、ワーク10は、所定の方向から見たときに、輪郭が略円形となり、かつ、輪郭の一部10aが凹状に欠けた、線対称な形状を有している。これに対して、図3(b)に示されるように、モデルパターン300では、ワーク10の輪郭上の複数の点301がそれぞれ特徴として設定される。これら複数の特徴301は、例えば、所定の方向からワーク10を撮影することで得られる参照画像に対して、後述するプロセッサ34の特徴抽出部41の処理を行うことで求められる。また、モデルパターン300では、ワーク10の輪郭において凹状に欠けた部分10aに部分領域310が設定される。部分領域310は、ワーク10の姿勢に応じて、ワーク10が表される領域の重心に対する相対的な位置及び姿勢が変化する部分を含むように設定される。そのため、モデルパターン300全体だけでなく、部分領域310についても、ワーク10が表された画像と照合することで、画像上でのワーク10の位置及び姿勢を正確に検出することが可能となる。なお、部分領域は、例えば、作業者が、上記の参照画像を視認しながら設定すればよい。また、モデルパターン300は、例えば、各特徴が位置する画素とそれ以外の画素とが異なる値を持つ2値画像で表される。
【0029】
プロセッサ34は、制御部の一例であり、例えば、Central Processing Unit(CPU)及びその周辺回路を有する。さらにプロセッサ34は、数値演算用のプロセッサを有していてもよい。そしてプロセッサ34は、ロボットシステム1全体を制御する。またプロセッサ34は、物体検出処理を含む、可動部制御処理を実行する。
【0030】
図4は、物体検出処理を含む、可動部制御処理に関する、プロセッサ34の機能ブロック図である。プロセッサ34は、特徴抽出部41と、照合部42と、可動部制御部43とを有する。プロセッサ34が有するこれらの各部は、例えば、プロセッサ34上で実行されるコンピュータプログラムにより実現される機能モジュールである。あるいは、これらの各部は、プロセッサ34の一部に実装される専用の演算回路として実装されてもよい。また、プロセッサ34が有するこれらの各部のうち、特徴抽出部41及び照合部42による処理が、物体検出処理に含まれる。
【0031】
特徴抽出部41は、カメラ4により得られた時系列の一連の画像のそれぞれから、モデルパターンに表されているのと同じ種類の特徴を複数抽出する。特徴抽出部41は、各画像に対して同じ処理を実行すればよいので、以下では、一つの画像に対する処理について説明する。
【0032】
特徴がワーク10の輪郭上に位置する点といった特徴点である場合、特徴抽出部41は、例えば、画像上の各画素に対してSobelフィルタといったエッジ検出フィルタを適用し、エッジ強度が所定値以上となる画素を特徴として抽出する。あるいは、特徴抽出部41は、画像に対してHarrisなどのコーナー検出フィルタを適用することで検出されるコーナーが表された画素を特徴として抽出してもよい。あるいはまた、特徴抽出部41は、画像に対してSIFTアルゴリズムを適用することで検出される画素を、特徴として抽出してもよい。
【0033】
また、特徴が直線である場合、特徴抽出部41は、例えば、上記のように、画像から複数の特徴点を抽出し、抽出された複数の特徴点に対してハフ変換を実行することで、所定数以上の特徴点が並ぶ直線のそれぞれを特徴として抽出してもよい。同様に、特徴が所定の曲線(例えば、円弧などの2次曲線または3次以上の高次曲線)である場合、特徴抽出部41は、例えば、上記のように、画像から複数の特徴点を抽出し、抽出された複数の特徴点に対して一般化ハフ変換を実行する。これにより、特徴抽出部41は、所定数以上の特徴点が並ぶ所定の曲線のそれぞれを特徴として抽出してもよい。
【0034】
あるいはまた、特徴が所定の形状を持つ図形(例えば、三角形あるいは円)である場合、特徴抽出部41は、その図形を表すテンプレートと画像との間でテンプレートマッチングを実行することで、画像からその所定の形状を持つ図形のそれぞれを特徴として抽出してもよい。あるいは、特徴抽出部41は、所定の形状を持つ図形を検出するように予め学習されたコンボリューショナルニューラルネットワークといった識別器に画像を入力することで、その図形を抽出してもよい。
【0035】
特徴抽出部41は、画像ごとに、その画像から抽出された各特徴の位置を照合部42へ通知する。例えば、特徴抽出部41は、抽出された特徴が表された画素とそれ以外の画素とが異なる値を持つ2値画像を、各特徴の位置を表すデータとして生成し、その2値画像を照合部42へわたす。
【0036】
照合部42は、カメラ4により得られた時系列の一連の画像のそれぞれについて、その画像から抽出された複数の特徴とモデルパターンとを照合することで、画像からワーク10を検出する。なお、照合部42は、各画像に対して同じ処理を実行すればよいので、以下では、一つの画像に対する処理について説明する。
【0037】
例えば、照合部42は、メモリ33からモデルパターンを読み込み、そのモデルパターンと着目する画像とを照合することで、画像上でワーク10が表された領域を検出する。その際、照合部42は、画像に対するモデルパターンの相対的な位置関係を変えることで画像上に、モデルパターンと照合される複数の比較領域を設定する。なお、相対的な位置関係の変更は、例えば、画像に対するモデルパターンの相対的な位置、相対的な向き及びスケールの少なくとも一つを変えることで行われる。そのような変更は、例えば、モデルパターンに対してアフィン変換を適用することで行われる。そして照合部42は、比較領域ごとに、その比較領域とモデルパターンとの間で、モデルパターン全体について設定された複数の特徴と比較領域から抽出された複数の特徴間の一致度合を表す全体一致度を算出する。さらに、照合部42は、比較領域ごとに、モデルパターンに設定される部分領域に含まれる1以上の特徴とその部分領域に対応する画像上の部分比較領域から抽出された1以上の特徴間の一致度合を表す部分一致度を算出する。なお、モデルパターンに対して複数の部分領域が設定されている場合には、照合部42は、複数の部分領域のそれぞれごとに、部分一致度を算出してもよい。
【0038】
照合部42は、例えば、全体一致度及び部分一致度を次式に従って算出することができる。
全体一致度=モデルパターンについて設定された特徴のうち、対象画像の比較領域から抽出された特徴の何れかまでの距離が所定値以下となるものの数/モデルパターンについて設定された特徴の総数
部分一致度=モデルパターンの部分領域について設定された特徴のうち、部分領域に対応する対象画像の部分比較領域から抽出された特徴の何れかまでの距離が所定値以下となるものの数/部分領域に含まれる特徴の総数
【0039】
なお、個々の特徴が、輪郭上の点といった、点で表される場合(すなわち、個々の特徴は特徴点である場合)、上記の全体一致度及び部分一致度の算出式における、二つの特徴間の距離は、特徴点間のユークリッド距離とすることができる。また、個々の特徴が、直線あるいは曲線である場合、二つの特徴間の距離は、特徴である二つの直線または二つの曲線のそれぞれの所定の複数の位置(例えば、両端点及び中点)間のユークリッド距離の平均値とすることができる。さらに、個々の特徴が、三角形または円といった所定の形状を持つ図形である場合、二つの特徴間の距離は、特徴である二つの図形内のそれぞれの所定の複数の位置(例えば、図形の重心、何れかのコーナー等)間のユークリッド距離の平均値とすることができる。
【0040】
あるいは、照合部42は、モデルパターンの個々の特徴について、比較領域の最も近い特徴までの距離が近いほど、全体一致度及び部分一致度が大きくなるように、例えば、次式に従って、全体一致度及び部分一致度を算出してもよい。
全体一致度=Σn=1 N(1/(dn+1))/N
部分一致度=Σm=1 M(1/(dm+1))/M
ただし、dnは、モデルパターンについて設定されたn番目の特徴について、その特徴から対象画像の比較領域から抽出された特徴の何れかまでの距離のうちの最小値であり、Nは、モデルパターンについて設定された特徴の総数を表す。同様に、dmは、モデルパターンの部分領域について設定されたm番目の特徴について、その特徴から部分領域に対応する対象画像の部分比較領域から抽出された特徴の何れかまでの距離のうちの最小値であり、Mは、モデルパターンの部分領域に含まれる特徴の総数を表す。
【0041】
照合部42は、着目する比較領域について、全体一致度が所定の全体一致度閾値以上となり、かつ、各部分領域について算出された部分一致度が所定の部分一致度閾値以上となる場合、着目する比較領域にワーク10が表されていると判定する。
【0042】
図5(a)~図5(e)は、モデルパターンと画像との照合の概要を説明する図である。図5(a)に示されるように、画像500に表されたワーク10は、輪郭が略円形となり、かつ、輪郭の一部が凹状に欠けた形状を有している。そしてワーク10の輪郭に沿って、複数の特徴501が抽出されている。これに対して、図5(b)に示されるように、モデルパターン510でも、ワーク10の輪郭に沿って複数の特徴511が設定されるとともに、輪郭が凹状に欠けた部分に部分領域520が設定されている。
【0043】
図5(c)に示されるように、画像500において、ワーク10を含むように比較領域530が設定され、かつ、モデルパターン510の向きと画像500上のワーク10の向きとが一致しているとする。この場合、モデルパターン510全体だけでなく、部分領域520においても、画像500から抽出された個々の特徴501と、モデルパターンについて設定された個々の特徴511とが略一致する。そのため、全体一致度と部分一致度の両方が高い値となるので、比較領域530においてワーク10が表されていると判定され、かつ、画像500上のワーク10の向きは、モデルパターン510と同じ向きであることが分かる。
【0044】
一方、図5(d)に示されるように、比較領域540が、ワーク10が表された領域とずれていると、比較領域全体について、画像500から抽出された個々の特徴501と、モデルパターン510について設定された個々の特徴511とが一致しない。さらに、部分領域520についても、画像500から抽出された個々の特徴501と、モデルパターン510について設定された個々の特徴511とが一致しない。その結果として、全体一致度及び部分一致度の両方とも低い値となる。そのため、比較領域540はワーク10が表されている領域と異なると判定される。
【0045】
さらに、図5(e)に示されるように、比較領域550が、ワーク10を含むものの、画像500上でのワーク10の向きと照合されるモデルパターン510の向きとが異なるように設定されているとする。この場合、ワーク10の輪郭と略一致するようにモデルパターン510が位置合わせされているので、複数の特徴501のうち、特徴511の何れかとの距離が近いものが多くなるので、全体一致度は比較的高い値となる。しかし、ワーク10の凹状に欠けた部分の位置と、モデルパターン510の部分領域520の位置とがずれているため、部分一致度は低い値となる。その結果、比較領域550からは、ワーク10は検出されない。
【0046】
このように、照合部42は、モデルパターン全体から算出される全体一致度と部分領域について算出される部分一致度の両方に基づいて画像上でワーク10が表された領域を検出するので、画像に表されたワーク10の位置だけでなく、ワーク10の姿勢を検出することができる。
【0047】
なお、全体一致度閾値と部分一致度閾値とは、同一でもよく、あるいは、互いに異なっていてもよい。
【0048】
例えば、カメラ4とワーク10の位置関係によっては、ワーク10の一部に対して何らかの影が掛かり、特徴抽出部41が、画像上で、影が掛かったところから特徴を十分に抽出できないことがある。このような場合、全体一致度が比較的低い値になるおそれがある。そこで、部分一致度閾値が全体一致度閾値よりも高くなるように全体一致度閾値及び部分一致度閾値が設定されることが好ましい。これにより、全体一致度に関しては、比較的一致度合が低くてもワーク10の検出が可能であるのに対して、部分一致度に関しては、ワーク10の検出に比較的高い一致度合が要求される。そのため、照合部42は、他の物体をワーク10として誤検出することを抑制しつつ、ワーク10の検出に失敗することを抑制できる。さらに、ワーク10の一部がユニークな形状となっており、そのユニークな形状を含むように部分領域が設定される場合にも、部分一致度閾値が全体一致度閾値よりも高くなるように全体一致度閾値及び部分一致度閾値が設定されることが好ましい。これにより、照合部42は、より精度良く、ユニークな形状を含むワーク10を検出することができる。
【0049】
また、ワーク10が事前に加工された際に、ワーク10に不定形の穴が形成される場合のように、ワーク10の一部に不定形な部分が含まれ、その不定形な部分を含むように部分領域が設定されることがある。このような場合には、モデルパターンの部分領域内の特徴の位置が、実際のワークの対応する領域内の特徴の位置と必ずしも一致せず、その結果として、着目する比較領域にワーク10が表されていても、部分一致度が全体一致度よりも低くなる。そのため、このような場合には、部分一致度閾値よりも全体一致度閾値が高くなるように、全体一致度閾値及び部分一致度閾値は設定されることが好ましい。これにより、ワーク10の一部に不定形な部分が含まれていても、照合部42は、その不定形な部分の特徴を利用して、画像に表されたワーク10の姿勢を検出することができる。
【0050】
また、モデルパターンに複数の部分領域が設定されている場合には、部分領域ごとに適用される部分一致度閾値の値は異なっていてもよく、あるいは、各部分領域に適用される部分一致度閾値の値は同じでもよい。
【0051】
なお、モデルパターンは、予め複数用意されてもよい。この場合、モデルパターンごとに、ワーク10を見る方向が異なっていてもよい。この場合、照合部42は、複数のモデルパターンのそれぞれについて、上記と同様に、比較領域ごとに全体一致度及び部分一致度を算出する。そして照合部42は、全体一致度と部分一致度の和が最大となり、全体一致度が全体一致度閾値以上、かつ、部分一致度が部分一致度閾値以上となるモデルパターンの位置と対応する比較領域に、そのモデルパターンに表された方向から見たワーク10が表れていると判定すればよい。
【0052】
画像上でのワーク10の位置が求められると、照合部42は、その位置に基づいて、実空間でのワーク10の位置を検出する。ここで、画像上の各画素の位置は、カメラ4から見た方位と1対1に対応する。そこで、照合部42は、例えば、画像上でワーク10が表された領域の重心に相当する方位を、カメラ4からワーク10へ向かう方位とすることができる。さらに、照合部42は、画像上でワーク10が表された領域の面積に対する、カメラ4からワーク10までの距離が所定の基準距離である場合における、画像上のワーク10の面積の比を、基準距離に乗じることで、カメラ4からワーク10までの推定距離を算出できる。したがって、照合部42は、カメラ4からワーク10へ向かう方位と推定距離とに基づいて、カメラ4の位置を基準とするカメラ座標系でのワーク10の位置を検出できる。
【0053】
さらに、照合部42は、ワーク10が表されていると判定された比較領域におけるモデルパターンの向きに応じて、所定の方向から見たときの、モデルパターンに表されたワーク10の向きに対する、ワーク10の実際の回転量を求めることができる。そのため、照合部42は、その回転量に応じてワーク10の姿勢を求めることができる。さらに、照合部42は、モデルパターンについて規定された所定の方向と、ワーク10が表された領域の重心に対応する、カメラ4からの方位との差の分だけ、画像上でのワーク10の姿勢を回転させることで、カメラ座標系で表されたワーク10の姿勢を求めることができる。
照合部42は、実空間でのワーク10の位置を求める度に、ワーク10の位置を可動部制御部43へ出力する。
【0054】
可動部制御部43は、照合部42により検出されたワーク10の位置及び姿勢に基づいて、ロボット2の可動部を制御する。例えば、ロボット2のツール16がワーク10に対する作業を実施できる位置へ移動するように、ロボット2の各可動部を制御する。その際、可動部制御部43は、例えば、カメラ4により生成される画像において、ツール16がワーク10に対する作業を行う位置に対応する、所定の位置及び所定の大きさでワーク10が表されるように、ロボット2の各可動部を制御する。この場合には、可動部制御部43は、例えば、位置ベース法あるいは特徴ベース法といった、カメラにより得られる対象物体の画像に基づいてロボットを制御する手法に従ってロボット2の各可動部を制御すればよい。そのような手法については、例えば、橋本、「視覚と制御」、計測自動制御学会制御部門大会ウォークショップ、 京都、 pp. 37-68、 2001年を参照されたい。
【0055】
図6は、物体検出処理を含む、可動部制御処理の動作フローチャートである。プロセッサ34は、下記の動作フローチャートに従って、カメラ4から画像を取得する度に、可動部制御処理を実行する。なお、以下の動作フローチャートのうち、ステップS101~S107の処理が、物体検出処理に含まれる。
【0056】
特徴抽出部41は、画像から、ワーク10の互いに異なる位置の外観の特徴を複数抽出する(ステップS101)。照合部42は、画像上にモデルパターンと照合する比較領域を設定する(ステップS102)。照合部42は、モデルパターンと比較領域との間で、全体一致度Saを算出するとともに、各部分領域について部分一致度Spを算出する(ステップS103)。そして照合部42は、全体一致度Saが全体一致度閾値Tha以上となり、かつ、各部分領域について部分一致度Spが部分一致度閾値Thp以上となるか否か判定する(ステップS104)。
【0057】
全体一致度が全体一致度閾値Tha未満となるか、あるいは、何れかの部分領域について部分一致度が部分一致度閾値Thp未満となる場合(ステップS104-No)、照合部42は、比較領域には、モデルパターンの向きと同じ向きのワーク10は表されていないと判定する。そして照合部42は、画像に対するモデルパターンの相対的な位置、向き及びスケールの少なくとも何れかを変更することで比較領域を変更する(ステップS105)。その後、照合部42は、ステップS103以降の処理を繰り返す。
【0058】
一方、全体一致度が全体一致度閾値Tha以上となり、かつ、各部分領域について部分一致度が部分一致度閾値Thp以上となる場合(ステップS104-Yes)、照合部42は、比較領域に、照合されたモデルパターンの向きと同じ向きのワーク10が表されていると判定する(ステップS106)。そして照合部42は、画像上のワーク10の位置及び向きから、実空間でのワーク10の位置及び姿勢を検出する(ステップS107)。
【0059】
可動部制御部43は、実空間でのワーク10の位置及び姿勢に基づいて、ツール16がワーク10に対する作業を実施できる位置へ移動するようにロボット2の可動部を制御する(ステップS108)。
【0060】
ステップS108の後、プロセッサ34は、可動部制御処理を終了する。なお、照合部42は、ステップS103~S105の処理を所定回数以上繰り返しても、画像上でワーク10が検出されない場合には、照合部42は、画像にワーク10は表されていないと判定してもよい。この場合には、可動部制御部43は、可動部を停止させてもよい。
【0061】
以上に説明してきたように、この物体検出装置は、画像上の複数の比較領域のそれぞれにおいて、対象物体を表すモデルパターン全体について設定された複数の特徴と、比較領域から抽出される複数の特徴との全体一致度を算出する。さらに、この物体検出装置は、各比較領域において、モデルパターンの一部分を表す少なくとも一つの部分領域のそれぞれについて、その部分領域に含まれる1以上の特徴とその部分領域に対応する対象画像上の部分比較領域から抽出される1以上の特徴との部分一致度を算出する。そしてこの物体検出装置は、全体一致度及び各部分領域についての部分一致度が閾値以上となる比較領域に対象物体が表されていると判定する。そのため、この物体検出装置は、画像上に、対象物体全体と似た全体形状を持つ他の物体が表されている場合でも、他の物体を対象物体として誤検出することを抑制できる。さらに、この物体検出装置は、モデルパターンに設定される1以上の部分領域についての部分一致度も、対象物体の検出に利用するので、画像と比較されるモデルパターンの向きにより、画像上に表された対象物体の向きを正確に検出することができる。そのため、この物体検出装置は、対象物体の姿勢も検出できる。このように、この物体検出装置は、画像に表された対象物体を精度良く検出することができる。特に、この物体検出装置は、対象物体が対称性を有する場合でも、上記の処理を行うことで、その対象物体を画像から精度良く検出することができる。
【0062】
変形例によれば、部分一致度の算出に利用される特徴の種類は、全体一致度の算出に利用される特徴の種類と異なっていてもよい。例えば、全体一致度の算出に利用される特徴は、検出対象物の輪郭上の点(特徴点)であり、一方、部分一致度の算出に利用される特徴は、検出対象物の特徴的な部分を表す図形、直線または曲線であってもよい。さらに、モデルパターンに複数の部分領域が設定されている場合には、部分領域ごとに、部分一致度の算出に利用される特徴の種類が異なっていてもよい。
この場合には、特徴抽出部41は、画像から、全体一致度の算出に利用される種類(第2の種類)の特徴だけでなく、部分一致度の算出に利用される種類(第1の種類)の特徴も抽出する。そして照合部42は、第2の種類の特徴同士の一致度合に基づいて全体一致度を算出し、第1の種類の特徴同士の一致度合に基づいて部分一致度を算出すればよい。なお、全体一致度の算出式及び部分一致度の算出式は、上記の実施形態で用いられる算出式と同じでよい。
【0063】
このように、モデルパターン全体の照合とモデルパターンの一部の照合とに異なる種類の特徴を利用することで、照合部42は、モデルパターン全体の照合に適した特徴(例えば、特徴点)とモデルパターンの一部の照合に適した特徴(例えば、図形、直線または曲線)とを利用することができる。そのため、この物体検出装置は、対象物体の検出精度をより向上できる。
【0064】
また、照合部42は、全体一致度の算出結果に応じて、部分一致度を算出する部分比較領域の探索パターンを自動的に設定してもよい。例えば、照合部42は、全体一致度が低くなるほど、部分比較領域を密に設定してもよい。これにより、この物体検出装置は、ユーザによるサーチ方法の設定無しに、対象物体を精度良く検出できる。
【0065】
また、この物体検出装置は、自動機械の制御以外の用途に利用されてもよい。例えば、この物体検出装置は、ベルトコンベヤー上を搬送されるワーク10の良否を判定するために用いられてもよい。この場合には、カメラ4は、例えば、ワーク10の搬送経路の一部がカメラ4の撮影範囲に含まれるように固定的に取り付けられてもよい。そして物体検出装置は、例えば、図2に示される制御装置3と同様の構成を有する装置とすることができる。ただし、駆動回路32は省略されてもよい。この場合、物体検出装置が有するメモリには、ワーク10の良品を表すモデルパターンが記憶される。この場合、物体検出装置のプロセッサは、カメラ4により得られた画像に対して、特徴抽出部41の処理及び照合部42の処理を実行すればよい。そして照合部42が、モデルパターンとの照合により、カメラ4により得られた画像からワーク10を検出すると、そのワーク10は良品であると判定すればよい。一方、照合部42が、画像からワーク10を検出できない場合には、その画像が生成されたときのカメラ4の撮影範囲内に位置しているワーク10は不良品であると判定してもよい。そして物体検出装置のプロセッサは、表示装置に、良否判定結果を表示してもよく、あるいは、通信インターフェースを介して接続される他の機器へ、良否判定結果を通知してもよい。
この変形例によれば、検査対象物の位置及び姿勢が特定されていない場合でも、物体検出装置は、検査対象物の良否を判定することができる。
【0066】
また、制御装置3のプロセッサ34が有する各部の処理を実行するためのコンピュータプログラムは、半導体メモリ、磁気記録媒体または光記録媒体といった、コンピュータ読取可能な可搬性の記録媒体に記録された形で提供されてもよい。
【0067】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【符号の説明】
【0068】
1 ロボットシステム
2 ロボット
3 制御装置
4 カメラ
5 通信回線
6 物体検出装置
11 台座
12 回転ステージ
13 第1のアーム
14 第2のアーム
15 リスト
16 ツール
21~25 関節
31 通信インターフェース
32 駆動回路
33 メモリ
34 プロセッサ
35 サーボモータ
41 特徴抽出部
42 照合部
43 可動部制御部
図1
図2
図3
図4
図5
図6