JP2016014994A - ロボットシステム - Google Patents

ロボットシステム Download PDF

Info

Publication number
JP2016014994A
JP2016014994A JP2014136314A JP2014136314A JP2016014994A JP 2016014994 A JP2016014994 A JP 2016014994A JP 2014136314 A JP2014136314 A JP 2014136314A JP 2014136314 A JP2014136314 A JP 2014136314A JP 2016014994 A JP2016014994 A JP 2016014994A
Authority
JP
Japan
Prior art keywords
image
model
unit
data
feature
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014136314A
Other languages
English (en)
Other versions
JP6372198B2 (ja
Inventor
政司 相磯
Masashi Aiiso
政司 相磯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2014136314A priority Critical patent/JP6372198B2/ja
Priority to CN201510315616.2A priority patent/CN105279514B/zh
Priority to US14/747,189 priority patent/US9595095B2/en
Publication of JP2016014994A publication Critical patent/JP2016014994A/ja
Application granted granted Critical
Publication of JP6372198B2 publication Critical patent/JP6372198B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/772Determining representative reference patterns, e.g. averaging or distorting patterns; Generating dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/28Determining representative reference patterns, e.g. by averaging or distorting; Generating dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • G06T7/001Industrial image inspection using an image reference approach
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/12Edge-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/194Segmentation; Edge detection involving foreground-background segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/88Image or video recognition using optical means, e.g. reference filters, holographic masks, frequency domain filters or spatial domain filters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20172Image enhancement details
    • G06T2207/20192Edge enhancement; Edge preservation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/06Recognition of objects for industrial automation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Image Analysis (AREA)
  • Manipulator (AREA)
  • Image Processing (AREA)

Abstract

【課題】対象物を確実に検出することができるロボットシステムを提供する。【解決手段】ロボットシステムは、複数の物体から一物体を検出する処理装置と、検出された一物体を操作するロボットとを含む。処理装置は、撮像装置により撮像された前記複数の物体の画像を含む画像データを表示する表示部と、画像データから第1画像と第2画像とを選択する選択部と、第1画像と前記第2画像とに基づいてモデルを生成し、生成したモデルを用いて一物体を検出する処理部と、を含む。【選択図】図2

Description

本発明は、ロボットシステムに関する。
従来から、ロボットがピックアップしたワーク(対象物)を所定の位置・姿勢に整列させるロボットシステムが開発されてきた。このロボットシステムでは、対象物をピックアップする際、対象物の形状と予め登録したモデルが示す目標物の形状との間でパターンマッチング処理を行うことにより、対象物を検出する。
例えば、特許文献1に記載の画像処理装置は、予め登録された登録画像に対応するパターンモデルを用いて、サーチ対象画像中から該登録画像に類似するサーチ対象物をサーチして位置決めを行う。また、モデルの生成において、予め複数の対象物を撮像して撮像画像を取得しておき、複数のうちの任意の1つの対象物の画像を選択していた。選択した1つの対象物の画像がモデルとして、パターンマッチング処理に用いられることがある。
特開2010−97436号公報
しかしながら、次の原因(1)〜(4)により、生成したモデルに係る目標物の形状と作業対象の対象物の形状とのパターンマッチング処理が成功しないことがあった。
(1)影の映り方の変化: 立体形状を有する物体に光が当たると、物体によって光が遮蔽される部分である影が、その物体の周辺に生じる。そのため、影の映り方は、光源(例えば、照明、環境光、等)の変化、光源と物体との位置・姿勢関係の変化に応じて変化する。光源が変化しない場合であっても、撮影装置の視野内に置かれた物体の位置・姿勢の変化に応じて影の映り方が変化する。
(2)立体形状を有する物体の姿勢の変化: 撮影装置の視野内に置かれた物体は、立体形状を有するため、その姿勢に応じて平面的形状が異なる。また、物体の姿勢が同一であっても、視野内の位置の違いにより、見かけの輪郭の形状が異なる。特に、広角レンズを備える撮影装置では、光軸上に置かれた物体と、視野の周辺部に置かれた同一の立体形状を有する物体との間で、その形状の差異が明確に表れる。
(3)物体のテクスチャの変化、物体表面の反射によるテクスチャの変化: 物体の表面に表されたテクスチャ(模様)は、その部位に応じて撮像装置の視野内の位置が異なるため見かけ上変化する。また、光沢を有する物体では、到来した光が反射するために、光量や到来方向によっても模様が見かけ上変化する。また、例えば、食品の包装に付された賞味期限の印字のように、同一の形状や大きさを有する物体であっても、その見かけが個々に異なる部分を有する場合もある。
(4)周辺の物体の存在: パターンマッチング処理では、モデルとして目標物を表す画像を登録する。その際、登録した領域(ウィンドウ)に目標物以外の別個の物体の画像が含まれることがある。
そこで、本発明は、上記の問題に鑑みてなされたものであり、対象物を確実に検出することができるロボットシステムを提供する。
本発明の一態様は、複数の物体から一物体を検出する処理装置と、検出された前記一物体を操作するロボットとを含み、前記処理装置は、撮像装置により撮像された前記複数の物体の画像を含む画像データを表示する表示部と、前記画像データから第1画像と第2画像とを選択する選択部と、前記第1画像と前記第2画像とに基づいてモデルを生成し、生成した前記モデルを用いて前記一物体を検出する処理部とを含む、ロボットシステムである。
この構成によれば、第1画像と撮像条件が異なる第2画像とに基づいて生成されたモデルを用いて物体が検出される。そのため、撮像条件の差異による見かけの変化が生じる状況でも、確実に検出対象の物体を検出することができる。
本発明の他の態様は、上述したロボットシステムであって、前記処理部は、前記第1画像、前記第2画像、及び画像データのそれぞれについて細分化した領域毎の特徴を抽出する特徴抽出部と、前記第1画像の特徴と前記第2画像の特徴のいずれかである画像特徴と、前記第1画像の特徴と前記第2画像の特徴とが異なるマスク領域とを含むモデルを生成するモデル統合部と、前記画像特徴から前記マスク領域を除外した領域と、前記画像データの特徴とをマッチングするマッチング部とを含んでもよい。
この構成によれば、第1画像と第2画像との間で特徴が異なる領域が除外されることで、撮像条件の差異により特徴が変化しない領域間でマッチングがなされる。そのため、確実に検出対象の物体を検出することができる。
本発明の他の態様は、上述したロボットシステムであって、前記特徴抽出部は、前記第1画像、前記第2画像、及び前記画像データのそれぞれについてエッジを抽出してもよい。
この構成によれば、画像の特徴として物体の輪郭や模様を表すエッジに基づいてマッチングがなされるので、検出対象の物体の位置や方向を効率よく検出することができる。
本発明の他の態様は、上述したロボットシステムであって、前記モデル統合部は、前記第1画像の特徴と前記第2画像の特徴との位置ならびに姿勢の関係を対応付け、前記マスク領域を定めてもよい。
この構成によれば、第1画像と第2画像との間で位置もしくは姿勢の関係が一致しない場合でも、第1画像と第2画像との間で対応する領域間で特徴が異なるマスク領域を定めることができる。
本発明の他の態様は、上述したロボットシステムであって、前記モデル統合部は、前記第1画像の特徴と前記第2画像の特徴の少なくともいずれかについて膨張処理を行い、前記第1画像の特徴と前記第2画像の特徴とが異なるマスク領域を定めてもよい。
この構成によれば、第1画像と第2画像との撮像条件の差異により位置関係がわずかに異なる場合でも、対応する領域間での特徴を比較することができるため、確実に検出対象の物体を検出することができる。
本発明の他の態様は、上述したロボットシステムであって、前記マッチング部は、前記画像特徴から前記マスク領域を除外した領域について位置ならびに向きを変化させた領域と、前記画像データの特徴との一致の度合いを示すスコアを前記位置ならびに向きの変化量毎に算出し、前記スコアに基づいて前記一物体の位置ならびに向きを検出してもよい。
この構成によれば、画像データにおいて、画像特徴からマスク領域を除外した領域に対応する領域を定量的に特定することにより、画像特徴が表す物体と、その位置ならびに向きを検出することができる。
本発明の他の態様は、上述したロボットシステムであって、前記処理装置は、前記マッチング部が算出したスコアに基づいて前記一物体を検出したか否かを判定する検出部、を備えてもよい。
この構成によれば、画像データの特徴と、画像特徴からマスク領域を除外した領域の一致の度合いに基づいて、画像特徴に係る物体の検出の成否を定量的に判定することができる。
本実施形態に係るロボットシステムの概略斜視図である。 本実施形態に係る画像処理装置の構成を示す概略ブロック図である。 本実施形態に係る表示部に表示される操作画面の例を示す図である。 本実施形態に係るモデル統合部の機能を示す概念図である。 モデルデータの構成例を示す図である。 本実施形態に係るモデル統合処理を示す概念図である。 本実施形態に係るマスク生成処理を示す概念図である。 モデルデータの例を示す図である。 本実施形態に係るモデル生成処理を示すフローチャートである。 本実施形態に係る物体検出処理を示すフローチャートである。 マッチングスコアの例を示す表である。
<実施形態>
以下、本発明の実施形態について、図面を参照して詳細に説明する。
図1は、本実施形態に係るロボットシステム1の概略斜視図である。
図1に示すように、ロボットシステム1は、撮像装置10、画像処理装置21、ロボット制御装置23、及びロボット30を含んで構成される。なお、図1における部品や構造等の縮尺は、図を明瞭なものとするために実際のものとは異なっていることがある。
撮像装置10と画像処理装置21、画像処理装置21とロボット制御装置23、ロボット制御装置23とロボット30は、それぞれ通信可能に有線又は無線で接続されている。有線での通信では、例えば、USB(Universal Serial Bus)、IEEE(Institute of Electrical and Electronics Engineers)802.3等の通信規格が用いられてもよい。無線での通信では、例えば、IEEE802.11a/b/g/n、IEEE802.15.1等に規定された通信規格が用いられてもよい。
撮像装置10は、その視野内に配置された物体の画像を撮像し、撮像した画像を示す画像データを生成する。撮像装置10は、例えば、集光された光を電気信号に変換する撮像素子であるCCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)等を備えたカメラである。また、撮像装置10は、生成した画像データを画像処理装置21に実時間で転送するためのインターフェイスを有するネットワークカメラであってもよい。
図1に示す例では、撮像装置10の撮像方向は鉛直方向(Z方向)に向けられ、作業台Tb上に載置された3個の物体Wk1〜Wk3を被写体とした画像が撮像される。作業台Tbの表面は、水平面に対して平行である。物体Wk1〜Wk3は、互いに重ならないように異なる位置に配置されるため、撮像装置10との相対的な位置関係が異なる。物体Wk1〜3は、マッチングの目標となる目標物にも、作業対象となる対象物にもなりうる。
X方向、Y方向、Z方向は、三次元直交座標系を形成する互いに直交する三次元の方向である。図1では、X方向、Y方向、Z方向は、それぞれ左方、奥行方向、下方に示されている。
画像処理装置21は、撮像装置10から入力された画像データが示す複数の物体の画像を表示し、ユーザーの操作入力に応じて複数の物体の画像のうち第1画像と第2画像を選択する。図1に示す例では、画像処理装置21には、作業台Tb上に載置された3つの物体Wk1〜Wk3を視野内に含む画像を示す画像データが撮像装置10から入力され、入力された画像データに基づいて3つの物体Wk1〜Wk3を示す画像を表示する。画像処理装置21は、操作入力に基づいて物体Wk1〜Wk3のうち、2つを表す領域を、それぞれ第1画像、第2画像として選択する。物体Wk1〜Wk3は、互いに形状、大きさ及び種類が共通であるが、撮像条件として撮像装置10との位置関係が異なる。物体Wk1〜Wk3は、例えば、各種の組立て部品、ネジ、釘、ボルト、ナット、等、ロボット30により操作可能な物体である。
画像処理装置21は、選択した第1画像と前記第2画像とに基づいてモデルを生成し、生成したモデルを用いて一物体を検出する。モデルとは、検出目標である目標物に関する情報である。以下の説明では、モデルを示すデータをモデルデータと呼ぶことがある。モデルデータは、目標物を表す画像の画像データと、マスクデータとを含む。マスクデータは、目標物を表す画像のうち、マッチング処理において考慮しない領域(マスク)を示すデータである。モデルを生成する際に行われるモデル生成処理については後述する。
また、画像処理装置21が一物体を検出する際には、取得した画像データについてモデルデータとマッチング処理を行う。画像処理装置21は、検出した一物体に関する検出情報をロボット制御装置23に出力する。検出情報には、例えば、検出された物体の位置、姿勢を示す情報が含まれる。一物体を検出する際に行われる物体検出処理については後述する。なお、一物体の検出においては、モデルの生成に用いた画像データとは別個の画像データが用いられてもよい。
ロボット制御装置23には、画像処理装置21から検出情報が入力され、ロボット30で検出された力やモーメントの大きさを示す負荷信号が入力される。ロボット制御装置23は、検出情報と負荷信号の一方又は両方に基づいてロボット30の動作を制御する制御信号を生成する。ロボット制御装置23は、生成した制御信号をロボット30に出力する。ロボット制御装置23は、例えば、作業台Tbに載置された3つの物体Wk1〜Wk3のうち、画像処理装置21で検出された物体をロボット30に操作させる。
ロボット30は、6軸の垂直多関節ロボットであり、支持台30a、アーム部30b、及びハンド部30cを含んで構成される。ロボット30は、支持台30aとアーム部30bとハンド部30cとの連係した動作によって6軸の自由度を有し、ハンド部30cが把持する物体Wkの位置および姿勢を自在に変更することができる。また、ロボット30は、ロボット制御装置23から入力された制御信号に基づいて、アーム部30bとハンド部30cのいずれか又はそれらの組み合わせを動作させる。ハンド部30cは、2個の先端部を備え、2個の先端部は各々の長手方向が互いに向かい合うように配置される。これにより、ロボット30は、画像処理装置21で検出された物体を把持して、その位置や姿勢を操作することができる。
ロボット30は、ハンド部30cに加わる力とモーメントを、予め定めた時間間隔(例えば、1ms)で検出する力センサー(図示せず)を備え、検出した力及びモーメントを示す負荷信号をロボット制御装置23に出力する。ロボット30は、エンコーダー(図示せず)を備える。エンコーダーは、ロボット30の各関節の角度を検出し、検出した各関節の角度をロボット制御装置23に出力する。
なお、ロボット30の自由度は6軸に限られず、7軸以上、又は5軸以下であってもよい。また、支持台30aは、壁や天井等、床面に対して固定された場所に設置されてもよい。
また、図1では、撮像装置10が、支持台30aが取り付けられている空間に固定されている場合を例にしたが、撮像装置10は、ロボット30のアーム部30b、その他の可動部に取り付けられていてもよい。
次に、画像処理装置21の構成について説明する。
図2は、本実施形態に係る画像処理装置21の構成を示す概略ブロック図である。
画像処理装置21は、画像データ取得部211、操作入力部212、表示部213、データ入出力部214、データ記憶部215、及び制御部22を含んで構成される。画像データ取得部211、操作入力部212、表示部213、データ入出力部214、データ記憶部215、及び制御部22は、互いにデータを入出力できるようにバス(基線)Bにより接続されている。
画像データ取得部211は、撮像装置10から入力された画像データを取得し、取得した画像データをデータ記憶部215に記憶する。画像データ取得部211は、例えば、データ入出力インターフェイスを含んで構成される。
操作入力部212は、ユーザーによる操作入力を受け付け、受け付けた操作入力に応じた指示を示す指示信号を生成する。操作入力部212は、生成した指示信号を制御部22に出力する。指示信号には、例えば、表示部213に表示された画像の一部の領域を指示する領域信号、各種のパラメータやデータの設定を指示する設定信号、モデル画像データ(後述)の生成を指示するモデル画像生成指示信号、物体検出処理(後述)の開始を指示する物体検出処理開始信号がある。
操作入力部212は、例えば、キーボード、マウス、タッチセンサ、その他の入力デバイスを含んで構成されてもよい。但し、これらの入力デバイスは、画像処理装置21に内蔵されるものに代えて、データ入出力インターフェイス等によって接続された外付け型のものでもよい。
表示部213は、制御部22によりデータ記憶部215から読み出された操作画面データに基づく操作画面を表示する。操作画面は、ユーザーが画像処理装置21やロボット制御装置23を操作するために用いられる画面である。操作画面には、選択部221(後述)から入力された画像データが示す画像をはじめとする各種の画像や、ユーザーが各種の指示を行うための画面部品(ボタン、アイコン、テキストボックス、等)が含まれる。後述するように、表示部213は、データ記憶部215から読み出された画像データが示す複数の物体の画像を表示する。これにより、ユーザーは、複数の物体の画像のうち少なくとも2つの物体を示す領域を、操作入力部212を介して指示することができる。操作画面の例については後述する。
なお、表示部213は、例えば、液晶ディスプレイ(LCD:Liquid Crystal Display)を含んで構成される。表示部213は、操作入力部212のタッチセンサと一体化したタッチパネルであってもよい。
データ入出力部214は、制御部22から入力された物体検出データをロボット制御装置23に出力する。物体検出データは、物体検出処理(後述)により生成されるデータである。データ入出力部214は、例えば、データ入出力インターフェイスを含んで構成される。
データ記憶部215は、画像処理装置21の処理に係る各種データ、プログラム等を記憶する。データ記憶部215は、例えば、HDD(Hard−Disk Drive)、ROM(Read−Only Memory)、RAM(Random Access Memory)等の記憶媒体を含んで構成される。なお、データ記憶部215は、画像処理装置21に内蔵されるものに代えて、データ入出力インターフェイス等によって接続された外付け型の記憶装置でもよい。
制御部22は、所定のプログラムを動作させることにより画像処理装置21の機能を発揮させる。制御部22は、例えば、CPU(Central Processing Unit)等の制御装置を含んで構成される。制御部22は、予め記憶されたプログラムをデータ記憶部215から読み出し、読み出したプログラムを動作させることにより、処理部220及び選択部221として機能する。また、処理部220は、特徴抽出部222、モデル統合部223、マッチング部224、及び検出情報取得部225を含む。
なお、制御部22は、プログラムの動作開始時に操作画面データをデータ記憶部215から読み出し、読み出した操作画面データを表示部213に出力する。
選択部221は、操作入力部212から入力された領域信号が示す領域を、表示部213に表示させている画像上で特定する。選択部221は、操作入力部212からのモデル画像生成指示信号の入力に応じて、表示部213に表示されている画像に係る画像データから、特定した領域内の画像を表す画像データを抽出する。これにより、表示されている複数の物体のいずれか1つの物体が表されている領域が選択される。
なお、以下の説明では、抽出された画像データをモデル画像データ、モデル画像データが表す画像をモデル画像と呼ぶ。
選択部221は、再度の画像生成指示信号の入力に応じて、モデル画像データを抽出する処理を繰り返し、少なくとも2つのモデル画像データを生成する。これにより、少なくとも2つの互いに異なる物体の画像が選択される。選択部221は、生成したモデル画像データをデータ記憶部215に記憶する。
なお、以下の説明では、生成されたモデル画像データのうち1つをベースモデル画像データと呼び、その他のモデル画像データを追加モデル画像データと呼ぶ。ベースモデル画像データは、モデル統合処理(後述)において基礎となるモデル画像データである。追加モデル画像データは、モデル統合処理(後述)において、統合の対象となるモデル画像データである。ベースモデル画像データを抽出した元の画像データと、追加モデル画像データを抽出した元の画像データとは同一であってもよいし、異なっていてもよい。ベースモデル画像データを抽出した元の画像データと、追加モデル画像データを抽出した元の画像データとが異なる場合であっても、ベースモデル画像データが表す物体と、追加モデル画像データが表す物体とは、少なくとも位置と姿勢のいずれかが異なり、同一の形状及び大きさを有していればよい。
特徴抽出部222は、モデル生成処理(後述)において新たに記憶されたモデル画像データをデータ記憶部215から読み出す。特徴抽出部222は、読み出したモデル画像データが表す画像を細分化した小領域毎の特徴、例えば、エッジを抽出する。エッジとは、輝度や色彩が空間的に急激に変化する部分であり、物体の輪郭や物体表面の模様を形成する図形の境界を表す。言い換えれば、エッジは、物体の形状や表面の状態の特徴を表す情報であり、物体の位置や姿勢、光線の照射状況等の撮像条件の差異によって異なる。
エッジ抽出処理において、特徴抽出部222は、例えば、水平方向、垂直方向のそれぞれについてゾーベルフィルター(Sobel filter)を用いて、画素毎に方向別エッジ強度を算出する。エッジ強度は、輝度値の空間的な変化の度合いを示す値である。特徴抽出部222は、水平方向、垂直方向それぞれの方向別エッジ強度について画素毎に平方和の平方根を算出し、算出した値を方向間で統合したエッジ強度と定める。特徴抽出部222は、定めたエッジ強度が予め定めたエッジ強度の閾値よりも大きい画素をエッジ画素と定め、エッジ画素から形成されるエッジを示すエッジマップを生成する。
特徴抽出部222は、生成したエッジマップを、そのエッジマップの生成に用いられたモデル画像データと対応付けて、モデルデータとしてデータ記憶部215に記憶する。なお、モデル画像データとしてベースモデル画像データを含むモデルデータをベースモデルデータと呼び、モデル画像データとして追加モデル画像データを含むモデルデータを追加モデルデータと呼ぶ。
特徴抽出部222は、ランタイムにおいて、撮像装置10から画像データ取得部211を介して入力され、データ記憶部215に逐次に記憶される画像データを読み取る。ランタイムは、制御部22に操作入力部212から物体検出処理開始信号が入力されたことに応じて開始される。以下の説明では、読み取った画像データを対象画像データと呼んで、モデル画像データと区別する。対象画像データは、モデル画像データを抽出した元の画像データと別個であってもよいし、同一であってもよい。
特徴抽出部222は、対象画像データについても上述したエッジ抽出処理を行い、エッジマップを生成する。特徴抽出部222は、生成したエッジマップをデータ記憶部215に記憶する。
モデル統合部223は、データ記憶部215からベースモデルデータと追加モデルデータとを読み取り、読み取ったベースモデルデータと追加モデルデータについてモデル統合処理を行って統合モデルデータを生成する。モデル統合処理において、モデル統合部223は、ベースモデルデータに含まれるエッジマップが示すエッジと、追加モデルデータに含まれるエッジマップが示すエッジとが異なる領域をマスクとして抽出する。モデル統合
部223は、抽出したマスクを示すマスクデータを生成し、生成したマスクデータをベースモデルデータに追加して統合モデルデータを生成する。
また、追加モデルデータが複数個ある場合には、モデル統合部223は、1つの追加モデルデータについて生成した統合モデルデータをベースモデルデータとして、他の1つの追加モデルデータとの間で統合モデルデータを生成する。この場合、モデル統合部223は、新たに抽出したマスクを、既存のマスクデータが示すマスクに追加し、追加されたマスクを示すマスクデータを生成する。モデル統合部223は、既存のマスクデータを新たに生成したマスクデータに更新することにより統合モデルデータを形成する。
モデル統合部223は、生成した統合モデルデータをデータ記憶部215に記憶する。
マッチング部224は、ランタイムにおいて、データ記憶部215に新たに記憶された対象画像データに係るエッジマップと、予め記憶された統合モデルデータとを読み取る。以下の説明では、新たに記憶されたエッジマップを対象エッジマップと呼ぶことにより、統合モデルデータに含まれるエッジマップと区別する。マッチング部224は、統合モデルデータからエッジマップとマスクデータとを抽出し、抽出したエッジマップが示すエッジからマスクデータが示すマスクの部分を除外し、除外されずに残ったエッジを特定する。残ったエッジを、参照エッジと呼ぶ。マッチング部224は、対象エッジマップが示すエッジと、参照エッジとの間でマッチング処理を行う。
マッチング処理において、マッチング部224は、参照エッジと、対象エッジマップが示すエッジとが対応するサーチ条件を探索(サーチ)する。サーチ条件は、対象エッジマップ上の参照エッジの位置、参照エッジの向き、及び参照エッジの倍率を含むセットである。参照エッジの倍率とは、元の参照エッジの大きさに対する拡大または縮小した参照エッジの大きさの比である。マッチング部224は、異なるサーチ条件のそれぞれについて、対象エッジマップが示すエッジとの間でマッチングスコアを算出し、マッチングスコアがサーチ条件の変化に応じて極大となるサーチ条件を求める。マッチング部224は、求めたサーチ条件(位置、向き、倍率)と、そのサーチ条件で算出されたマッチングスコアを示すマッチング情報を検出情報取得部225に出力する。
マッチングスコアは、2つのエッジが一致する度合いを示す指標である。マッチング部224は、特許文献1に記載のスコアをマッチングスコアとして用いてもよい。例えば、マッチング部224は、対象エッジマップが示すエッジ画素におけるエッジ角度ビットと、参照エッジに含まれるエッジ画素におけるエッジ角度ビットとの一致度を画素間で積算して得られた総和を、基点数で除算して得られる値をマッチングスコアとして用いてもよい。エッジ角度ビットとは、エッジ方向を所定の量子化幅(例えば、18°)で量子化した値である。一致度は、比較対象の2つの値が近似するほど大きい実数であり、2つの値が等しい場合に最大値1をとる。基点数とは、参照エッジを形成するエッジ画素の数である。
また、マッチング部224は、対象エッジマップが示すエッジ画素と、参照エッジに含まれるエッジ画素とが対応する画素数を、基点数で除算して得られる値をマッチングスコアとして用いてもよい。
検出情報取得部225は、マッチング部224から入力されたマッチング情報に基づいて、画像データから目標物と同じ種類の対象物の検出に成功したか否かを判定する。検出情報取得部225は、マッチング情報が示すマッチングスコアが予め定めたマッチングスコアの閾値(スコア許容値、アクセプト値とも呼ばれる)以上である場合、画像データから目標物と同じ種類の対象物の検出に成功したと判定する。検出に成功したと判定した場合には、検出情報取得部225は、マッチング情報が示す位置、向きを、カメラ座標系からロボット座標系に座標変換する。カメラ座標系は、撮像装置10の光学系を基準とする座標系であり、ロボット座標系は、ロボット30を基準とする座標系である。従って、変換した位置、向きは、それぞれ撮影された画像が示す対象物の位置、向きを示す。検出情報取得部225は、変換した位置、向きと、検出の成功とを示す検出情報を生成する。
検出情報取得部225は、マッチング情報が示すマッチングスコアが予め定めたスコア許容値よりも小さい場合、検出に失敗したと判定する。検出情報取得部225は、検出の失敗を示す検出情報を生成する。
検出情報取得部225は、生成した検出情報を、データ入出力部214を介してロボット制御装置23に出力する。
次に、操作画面の例について説明する。
図3は、本実施形態に係る表示部213に表示される操作画面の例を示す図である。
図3に示す操作画面には、アイコンic1、ic2、テキストボックスtb1、tb2、ボタンbt1、bt2、及び表示画像im1が含まれている。
アイコンic1は、カメラを図案化した図形であり、操作画面の左上のメニューバーの左端に表示されている。アイコンic1の表示領域がユーザーの操作入力により指定(以下、押下と呼ぶ)されると、制御部22は、撮像装置10から入力された画像データをデータ記憶部215から読み出し、読み出した画像データに基づく画像をこの操作画面内に表示させる。表示画像im1は、制御部22が表示させた画像の例である。
アイコンic2は、右下端が太く表された四角形であり、メニューバーの直下の左端に表示されている。アイコンic2が押下されると、制御部22は、表示画像の所定の位置にウィンドウを表示させる。表示画像im1のほぼ中央に表示されたウィンドウWdは、制御部22が表示させたウィンドウの例である。ウィンドウWdは、長方形の枠とその中心の+印とで形成される。+印の位置により、表示画像im1上のウィンドウWdの代表位置が指定され、枠の大きさにより、その範囲が指定される。また、表示画像im1上のウィンドウWdの位置、水平方向ならびに垂直方向の大きさは、ユーザーの操作入力に応じて可変である。ユーザーは、表示画像im1上の領域を指定することにより、表示画像im1上に表された物体Wk1〜Wk3のいずれかの表示領域を指定することができる。図3に示す例では、物体Wk2の表示領域が指定されている。
テキストボックスtb1は、プロパティと設定値の欄を含む。プロパティとは、設定値の種類を示す。設定値の欄には、それぞれ対応するプロパティの設定値がユーザーの操作入力に応じて入力可能である。プロパティには、例えば、サーチ条件の範囲、スコア許容値、サーチ個数、等がある。サーチ条件として姿勢の範囲、倍率、等が指定可能であってもよい。サーチ個数とは、1個の画像データに係るエッジマップからサーチすべき対象物のエッジの最大数である。姿勢の範囲の設定値は、例えば、−10°〜+10°である。倍率の設定値は、例えば、0.7〜1.5倍である。サーチ個数の設定値は、例えば、1である。入力された設定値は、マッチング部224に設定され、設定された設定値が処理に用いられる。なお、マッチング部224は、予め設定しておいた設定値を処理に用いてもよい。
テキストボックスtb2は、検出結果と検出値の欄を含む。テキストボックスtb2には、マッチング部224で行われるマッチングによる物体の検出結果の項目毎の検出値が表示される。検出結果の項目には、例えば、マッチングスコア、サーチ条件(位置、姿勢、倍率)、所要時間、等がある。
ボタンbt1は、文字列「ティーチ」が表されているボタンである。ボタンbt1が押下されると、選択部221は、指定された領域内に表された物体の画像データを抽出して最初のモデル画像データ(ベースモデル画像データ)を生成する。
その後、制御部22は、新たな領域の指定(新規モデルのティーチ)の指示ボタン1(図示せず)、指定された領域に係るモデル画像データについてのモデル統合処理(サンプルの追加)の指示ボタン2(図示せず)を、操作画面内に表示させる。
指示ボタン1の押下に応じて、選択部221は、指定された領域内に表された物体の画像データを抽出して追加モデル画像データを生成する。
指示ボタン2の押下に応じて、特徴抽出部222は、ベースモデル画像データに基づいてベースモデルデータを生成し、追加モデル画像データに基づいて追加モデルデータを生成する。そして、モデル統合部223は、ベースモデルデータと追加モデルデータについてモデル統合処理を行う。
ボタンbt2は、文字列「オブジェクト実行」が表されているボタンである。ボタンbt2が押下されることに応じて、制御部22は、物体検出処理(後述)を開始する。
次に、本実施形態に係るモデル統合部223について説明する。
図4は、本実施形態に係るモデル統合部223の機能を示す概念図である。
モデル統合部223は、ベースモデルデータBMと追加モデルデータAMを取得し、取得したベースモデルデータBMと追加モデルデータAMについてモデル統合処理を行って統合モデルデータIMを生成する。生成した統合モデルデータIMは、物体検出処理(後述)で用いられる。
次に、モデルデータMDの構成例について説明する。
図5は、モデルデータMDの構成例を示す図である。
モデルデータMDは、モデル画像データ、エッジマップ、及びマスクデータを含んで構成される。この構成は、ベースモデルデータBMと追加モデルデータAMとの間で共通である。
モデル画像データは、選択部221で指示された領域内の画素毎の輝度値を示すデータである。エッジマップは、特徴抽出部222がモデル画像データから抽出したエッジの領域を示すデータである。エッジマップは、画素毎にその画素がエッジ画素であるか否かを示す信号値を有するデータである。例えば、エッジ画素については、信号値は1であり、非エッジ画素については、信号値は0である。
マスクデータは、モデル統合部223が抽出したマスクの領域を示すデータである。マスクデータは、画素毎にその画素がマスクに属するか否かを示す信号値を有するデータである。例えば、マスクに属する画素については、信号値は1であり、マスクに属しない画素については、信号値は0である。なお、マスクデータは、内部マスクとユーザーマスクを含んで構成される。内部マスクとは、モデル統合部223が抽出したマスクを示すデータである。ユーザーマスクとは、ユーザーが定義したマスクを示すデータである。内部マスク、ユーザーマスクは、画素毎に各1ビットでマスクに属するか否かを示す。
なお、本明細書では、特に断らない限りマスクとは、内部マスクを意味する。
次に、本実施形態に係るモデル統合処理について説明する。
図6は、本実施形態に係るモデル統合処理を示す概念図である。
モデル統合処理は、マスク生成処理(ステップS11)、マッピング処理(ステップS12)、及び論理和(OR)処理(ステップS13)を含む。
(ステップS11)モデル統合部223は、ベースモデルデータBMに含まれるエッジマップが示すエッジの領域と、追加モデルデータAMに含まれるエッジマップが示すエッジの領域を照合し、両者が対応していない部分を抽出する。モデル統合部223は、抽出した部分を示す内部マスクを生成する。
なお、ベースモデルデータBMに係る画像データが示す物体と、追加モデルデータAMに係る画像データが示す物体との位置、姿勢関係が未知である場合には、モデル統合部223は、ベースモデルデータBMに係るエッジの領域、追加モデルデータAMに係るエッジの領域についてマッチング処理を行う。これにより、ベースモデルデータBMに係るエッジの領域、追加モデルデータAMに係るエッジの領域との位置及び姿勢を対応付け、両者間の位置、姿勢関係を示す座標変換係数を求める。このマッチング処理は、マッチング部224が行うマッチング処理と同様であってもよい。その後、ステップS12に進む。
(ステップS12)モデル統合部223は、追加モデルデータAMから内部マスクを抽出し、抽出した内部マスクをベースモデルデータBMの内部マスク上の対応する領域に座標変換(マッピング)する。モデル統合部223は、座標変換において、ステップ11におけるマッチング処理により得られた座標変換係数を用いてもよい。その後、ステップS13に進む。
(ステップS13)モデル統合部223は、ベースモデルデータBMに含まれる内部マスクの領域、ステップS11で生成した内部マスク、及びステップS12で座標変換された内部マスクの少なくともいずれかに属する領域を新たな内部マスクと定める。これにより、ベースモデルデータBMに含まれる内部マスクの領域に、ステップS11で生成した内部マスク及びステップS12で座標変換された内部マスクに属する領域が加えられる。モデル統合部223は、ベースモデルデータBMの内部マスクを新たに定めた内部マスクに更新する。その後、図6に示す処理を終了する。
なお、追加モデルデータAMにおいて内部マスクが定義されているか否かに関わらず、ステップS12の処理は省略されてもよい。さらに、ベースモデルデータBMにおいて内部マスクが定義されていない場合には、ステップS13において、モデル統合部223は、ステップS11で生成された内部マスクをベースモデルデータBMに含めるようにしてもよい。
次に、ステップS11(図6)のマスク生成処理の詳細について説明する。
図7は、本実施形態に係るマスク生成処理を示す概念図である。
マスク生成処理は、レジストレーション処理(ステップS111)、マッピング処理(ステップS112)、エッジ画素塗りつぶし処理(ステップS113)、膨張処理(ステップS114)、反転(NOT)処理(ステップS115)、エッジ画素塗りつぶし処理(ステップS116)及び論理積(AND)処理(ステップS117)を含む。
(ステップS111)モデル統合部223は、ベースモデルデータBMに係る画像データが示す物体と、追加モデルデータAMに係る画像データが示す物体との位置、姿勢関係を示す座標変換係数を取得する。これらの物体間の位置、姿勢関係が未知である場合には、モデル統合部223は、ベースモデルデータBMに係るエッジと、追加モデルデータAMに係るエッジとの間でマッチング処理を行うことにより座標変換係数を取得する。その後、ステップS112に進む。
(ステップS112)モデル統合部223は、追加モデルデータAMからエッジマップを抽出する。モデル統合部223は、抽出したエッジマップが示すエッジを取得した座標変換係数を用いて座標変換(マッピング)する。これにより、抽出したエッジマップが示すエッジと、ベースモデルデータBMのエッジマップが示すエッジとの間で位置、姿勢関係が対応付けられる。その後、ステップS113に進む。
(ステップS113)モデル統合部223は、座標変換したエッジに属するエッジ画素の信号値を1と定め、エッジに属さない非エッジ画素の信号値を0と定める(エッジ画素塗りつぶし)。ここで、モデル統合部223は、1つの画素が占める変換後の領域が、所定の面積(例えば、0.5画素)以上である場合には、その画素をエッジ画素として特定し、それ以外の画素は非エッジ画素として特定する。その後、ステップS114に進む。
(ステップS114)モデル統合部223は、特定したエッジ画素で形成されるエッジについて膨張処理を行う。膨張処理において、モデル統合部223は、エッジ領域に含まれるエッジ画素のうち、水平方向又は垂直方向に隣接する画素が非エッジ画素であるエッジ画素について、その非エッジ画素をエッジ画素に変換する。これにより、ベースモデルデータBMに係るエッジと、追加モデルデータAMに係るエッジとわずかな位置の差異により互いに重複する領域が見いだせずに両者の対応付けに失敗するリスクを低減することができる。その後、ステップS115に進む。
(ステップS115)モデル統合部223は、追加モデルデータAMのエッジマップを形成するエッジ画素の信号値1と非エッジ画素の信号値0とを互いに反転し、それぞれエッジ画素の信号値を0、非エッジ画素の信号値を1に変換する。その後、ステップS116に進む。
(ステップS116)モデル統合部223は、ベースモデルデータBMに係るエッジマップが示すエッジに属するエッジ画素の信号値を1と定め、エッジに属さない非エッジ画素の信号値を0と定める(信号エッジ画素塗りつぶし)。その後、ステップS117に進む。
(ステップS117)モデル統合部223は、ベースモデルデータBMに係るエッジマップが示すエッジの領域(信号値1)と、追加モデルデータAMに係るエッジマップにおけるエッジ以外の領域(信号値1)のいずれにも属する領域をマスクと定める。モデル統合部223は、定めたマスクを示すマスクデータ(内部マスク)を生成する。その後、図7に示す処理を終了する。
なお、図7において膨張処理(ステップS114)は省略されてもよい。また、モデル統合部223は、所定の回数(例えば、2回)膨張処理を繰り返すことにより膨張の度合いを高くしてもよい。
図7において、Eg3〜Eg6は、それぞれステップS113〜S116で生成されたデータの例を示す。Eg7は、ステップS117で生成されるマスクデータの例を示す。いずれも信号値1である画素が塗りつぶされ、それ以外の領域が塗りつぶされていない。
Eg3が示すエッジは、マッピング処理(ステップS112)によりEg6が示すエッジとの間で位置、姿勢関係が対応付けられ、いずれも左下から右上に分布している。但し、Eg3が示すエッジは、2つの部分に分断されているのに対し、Eg6が示すエッジは、1個の連続した領域である。ここで、Eg3には右端から第4列と左端から第3列に垂直方向に延在するエッジが示されているが、Eg6には左下端から第3列より上端から第3行の第7列にかけて分布する別の形状のエッジが示されている。
Eg4が示すエッジは、膨張処理(ステップS114)によりEg3が示すエッジから水平方向、垂直方向のそれぞれについて、その順方向ならびに逆方向に1画素ずつ拡大されている。Eg3が示すエッジは、垂直方向に隣接している区間が主であるため、膨張処理による拡大は、垂直方向よりも水平方向が主である。
Eg5が示す塗りつぶし部分は、Eg4のエッジに対する反転処理(ステップS115)により信号値が反転された非エッジ領域を示す。
Eg7が示すマスクは、Eg6が示すエッジの領域と、Eg5が示す非エッジ領域とが重なった領域である。この領域は、Eg3において、Eg6との間のエッジの分断の有無やエッジの位置・形状の差異といった、モデルデータ間における物体の見かけ上の差異が生じている領域である。
次に、モデルデータの例について説明する。
図8は、モデルデータの例を示す図である。
図8(a)は、ベースモデルデータBMの例を示す図である。図8(a)は、ベースモデルデータBMに含まれている画像データが示す物体Wk1の画像に、エッジマップが示すエッジEg1を重ね合わせて表示されている。この例では、物体Wk1の外側の輪郭の大部分と、左下の突起部の輪郭のほぼ全体にエッジEg1が検出されている。
図8(b)は、追加モデルデータAMの例を示す図である。図8(b)は、追加モデルデータAMに含まれている画像データが示す物体Wk2の画像に、エッジマップが示すエッジEg2を重ね合わせて表示されている。物体Wk2は、物体Wk1と同じ種類の物体であり、撮像装置10との位置関係が異なるが、座標変換により両者間で極力多くのエッジが一致するようにエッジが対応付けられている。図8(b)には、エッジと物体Wkとの位置関係を明確するために、物体Wk2画像も、エッジと同様の座標変換が施されている。この例では、撮像装置10と物体Wk2との位置関係が、ベースモデルに係る撮像装置10と物体Wk1との位置関係と異なるため、物体Wk2の外側の輪郭に対して左下の突起部が、物体Wk1の突起物よりも左方に変位している。そのため、突起部の輪郭の左右両端においてはエッジEg1とエッジEg2の位置が左右にずれている。
図8(c)は、統合モデルデータIMの例を示す図である。図8(c)は、統合モデルデータIMに含まれている画像データが示す物体Wk1の画像に、エッジマップが示すエッジEg’を重ね合わせて表示されている。但し、エッジEg’のうち、外部マスクδの領域が一点破線の楕円で囲まれて表示されている。外部マスクδの領域は、エッジEg2とエッジEg’との異なる部分に相当する。この部分は、位置、姿勢関係や光線の照射状況により見かけ上の差異が生じるため、物体検出処理におけるマッチング処理において無視することで、物体検出処理(後述)で算出されるマッチングスコアの低下を防止又は軽減することができる。
次に、本実施形態に係るモデル生成処理について説明する。
図9は、本実施形態に係るモデル生成処理を示すフローチャートである。
(ステップS201)選択部221は、操作入力部212からのモデル画像生成指示信号の入力に応じて、表示部213に表示されている画像に係る画像データから、操作入力により特定された領域内の画像を表すベースモデル画像データを取得する。その後、ステップS202に進む。
(ステップS202)特徴抽出部222は、選択部221が取得したベースモデル画像データについてエッジ抽出処理を行い、抽出したエッジを示すエッジマップを生成する。その後、ステップS203に進む。
(ステップS203)選択部221は、操作入力部212からのモデル画像生成指示信号の再度の入力に応じて、表示部213に表示されている画像に係る画像データから、操作入力により特定された領域内の画像を表す追加モデル画像データを取得する。その後、ステップS204に進む。
(ステップS204)特徴抽出部222は、選択部221が取得した追加モデル画像データについてエッジ抽出処理を行い、抽出したエッジを示すエッジマップを生成する。その後、ステップS205に進む。
(ステップS205)モデル統合部223は、ベースモデル画像データに係るエッジマップが示すエッジと追加モデル画像データに係るエッジマップが示すエッジとが対応していない部分をマスクとして抽出する。モデル統合部223は、抽出したマスクを示すマスクデータを、ベースモデル画像データとエッジマップを含むベースモデルデータに統合して統合モデルデータを生成する(モデル統合処理)。その後、ステップS206に進む。
(ステップS206)選択部221は、操作入力部212からモデル画像生成指示信号がさらに入力された場合、処理を継続すると判定し(ステップS206 YES)、ステップS203に進む。選択部221は、操作入力部212から入力された指示信号が処理の終了を示す場合、処理を終了すると判定し(ステップS206 NO)、図9に示す処理を終了する。
次に、本実施形態に係る物体検出処理について説明する。
図10は、本実施形態に係る物体検出処理を示すフローチャートである。
(ステップS301)データ記憶部215には、撮像装置10から入力された対象画像データが逐次に記憶される。特徴抽出部222は、データ記憶部215から対象画像データを読み取ることにより取得する。その後、ステップS302に進む。
(ステップS302)特徴抽出部222は、取得した対象画像データについてエッジ抽出処理を行い、抽出したエッジを示す対象エッジマップを生成する。その後、ステップS303に進む。
(ステップS303)マッチング部224は、データ記憶部215から統合モデルデータを読み出し、読み出した統合モデルデータからエッジマップとマスクデータを抽出する。マッチング部224は、抽出したエッジマップが示すエッジからマスクデータが示すマスクの部分を除外して、参照エッジを特定する。マッチング部224は、対象エッジマップが示すエッジと、参照エッジとの間でマッチング処理を行い、参照エッジと、対象エッジマップが示すエッジとの間で一致の度合いが極大となる(例えば、最も高い)参照エッジの位置、向き、倍率をサーチする。サーチにおいて、マッチング部224は、参照エッジの位置、向き、倍率の組毎にマッチングスコアを算出し、算出したマッチングスコアが最大になる位置、向き、倍率を特定する。その後、ステップS304に進む。
(ステップS304)検出情報取得部225は、マッチングスコアの最大値が予め定めたスコア許容値以上である場合には、対象物の検出に成功したと判定する。検出情報取得部225は、マッチング部224が特定した位置、向きに基づいて得られた対象物の位置、向きと対象物の検出の成功とを示す検出情報を生成(取得)する。検出情報取得部225は、マッチングスコアの最大値が予め定めたスコア許容値よりも小さい場合には、対象物の検出に失敗したと判定する。検出情報取得部225は、対象物の検出の失敗を示す検出情報を生成(取得)する。その後、ステップS305に進む。
(ステップS305)検出情報取得部225は、取得した検出情報を、データ入出力部214を介してロボット制御装置23に出力する。その後、図10に示す処理を終了する。
次に、マッチングスコアの例について説明する。
図11は、マッチングスコアの例を示す表である。
図11は、ロボット30による操作対象の物体毎のモデル追加前後のマッチングスコアを示す。図11に示すマッチングスコアは、物体検出処理(図10)において特許文献1に記載のスコア値の算出方法を用いて算出されたスコア値(最大値は、1000)である。モデル追加前とは、従来技術と同様に、ベース画像データのエッジマップが示すエッジをそのままマッチングに用いた場合を意味する。図11に示す例では、物体Wk2を表すモデル画像データから抽出されたエッジが用いられている。モデル追加後とは、本実施形態により生成された統合モデルデータに含まれるエッジマップが示すエッジからマスクを除いて得られた参照エッジをマッチングに用いた場合を意味する。図11に示す例では、物体Wk1を表すベース画像データと物体Wk2を表す追加画像データに基づいて生成された統合モデルデータが用いられている。
図11によれば、物体Wk1、Wk3については、モデル追加後のマッチングスコアがそれぞれ950、942であり、モデル追加前のマッチングスコアの892、879から有意に増加している。本実施形態により生成されたマスクを用いることで物体の見かけが異なる部分を無視することによって、マッチングスコアの低下が抑制される。そのため、マッチング処理におけるスコア許容値を低下させずに対象物を検出することができるので、検出精度を向上することができる。
なお、物体Wk2については、モデル追加後のマッチングスコアが996となり、モデル追加前のマッチングスコアの994からの増加量が少ない。これは、検出対象の物体Wk2と同一の条件で撮像された物体Wk2を表す画像データに基づくベースモデルデータが、マッチング処理で用いられていることによる。
なお、上述したように予めマスク生成処理を行って撮影した画像が表す目標物とランタイム(物体検出処理の実行中)で撮影した画像が表す対象物との間で、撮影条件が異なると、目標物と対象物が例え同一の物体であったとしても見かけ上の形状が異なる。従来のマッチング処理では、算出されるマッチングスコアが低下してしまう。他方、対象物を検出するためにスコアの許容値を低くすると、形状が近似した他の物体や背景が、目標物に対応した対象物であるものとして誤検出されるリスクが高くなる。
そこで、マッチングスコアの低下を防ぐために、対象物の見かけ上の形状の変動部分をユーザーが特定し、その部分を手作業でマスクし、目標物の形状とのマッチングは、マスクした部分を除いて行うことも考えられる。
しかしながら、形状の変動部分を特定する際、ユーザーには目視により複数のモデルの輪郭同士を詳細に比較し、正確に変動部分の位置や領域を手作業で特定することが要求される。そのため、マスクすべき部分として変動部分の位置や領域を特定する作業は、一般に困難であり煩雑になりがちである。また、本来マスクする必要がない部分をマスクしまうと、マッチングに用いる領域が少なくなるためマッチングの精度が低下し、形状が近似した他の物体や背景部分を誤検出する要因となる。
以上、説明したように、本実施形態に係るロボットシステム1は、複数の物体(例えば、物体Wk1〜Wk3)から一物体を検出する画像処理装置21と、検出された一物体を操作するロボット30とを含む。画像処理装置21は、撮像装置10により撮像された複数の物体の画像を含む画像データを表示する表示部213と、画像データから第1画像(例えば、ベースモデル画像)と第2画像(例えば、追加モデル画像)とを選択する選択部221を含む。また、画像処理装置21は、第1画像と第2画像とに基づいてモデル(例えば、統合モデルデータ)を生成し、生成したモデルを用いて一物体を検出する処理部220と、を含む。
この構成によれば、第1画像と撮像条件が異なる第2画像とに基づいて生成されたモデルを用いて物体が検出される。そのため、撮像条件の差異による見かけの変化が生じる状況でも、確実に検出対象の物体を検出することができる。
また、ロボットシステム1において、処理部220は、第1画像、第2画像、及び画像データのそれぞれについて細分化した領域毎の特徴を抽出する特徴抽出部222を含む。また、処理部220は、第1画像の特徴と第2画像の特徴のいずれかである画像特徴(例えば、エッジマップ)と、第1画像の特徴と第2画像の特徴とが異なるマスク領域(例えば、内部マスク)とを含むモデルを生成するモデル統合部223を含む。また、処理部220は、画像特徴からマスク領域を除外した領域(例えば、参照エッジ)と、画像データの特徴(例えば、対象エッジマップ)とをマッチングするマッチング部224を含む。
この構成によれば、第1画像と第2画像との間で特徴が異なる領域が除外されることで、撮像条件の差異により特徴が変化しない領域間でマッチングがなされる。そのため、確実に検出対象の物体を検出することができる。
また、ロボットシステム1において、特徴抽出部222は、第1画像、第2画像、及び画像データのそれぞれについてエッジを抽出する。
この構成によれば、画像の特徴として物体の輪郭や模様を表すエッジに基づいてマッチングがなされるので、検出対象の物体の位置や方向を効率よく検出することができる。
また、ロボットシステム1において、モデル統合部223は、例えば、座標変換を行うことにより、第1画像の特徴と第2画像の特徴との位置ならびに姿勢の関係を対応付けてマスク領域を定める。
この構成によれば、第1画像と第2画像との間で位置もしくは姿勢の関係が一致しない場合でも、第1画像と第2画像との間で対応する領域間で特徴が異なるマスク領域を定めることができる。
また、ロボットシステム1において、モデル統合部223は、第1画像の特徴と第2画像の特徴の少なくともいずれかについて膨張処理を行い、第1画像の特徴と第2画像の特徴とが異なるマスク領域を定める。
この構成によれば、第1画像と第2画像との撮像条件の差異により位置関係がわずかに異なる場合でも、対応する領域間での特徴を比較することができるため、確実に検出対象の物体を検出することができる。
また、ロボットシステム1において、マッチング部224は、画像特徴からマスク領域を除外した領域について位置ならびに向きを変化させた領域(例えば、参照エッジ)と、対象画像データの特徴との一致の度合いを示すマッチングスコアを位置ならびに向きの変化量毎に算出し、マッチングスコアに基づいて一物体の位置ならびに向きを検出する。
この構成によれば、対象画像データにおいて、画像特徴からマスク領域を除外した領域に対応する領域を定量的に特定することにより、画像特徴が表す物体と、その位置ならびに向きを検出することができる。
また、ロボットシステム1において、画像処理装置21は、マッチング部224が算出したスコアに基づいて一物体を検出したか否かを判定する検出情報取得部225を備える。
この構成によれば、画像データの特徴と、画像特徴からマスク領域を除外した領域の一致の度合いに基づいて、画像特徴に係る物体の検出の成否を定量的に判定することができる。
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
例えば、上述した実施形態では、ロボット30が1本のアーム部30bを有する単腕ロボットである場合を例にしたが、これには限られない。ロボット30は、2本のアーム部を有する双腕ロボットであってもよいし、水平多関節ロボット(いわゆる、スカラーロボット)であってもよい。
画像処理装置21は、上述したようにロボット制御装置23と別体であってよいし、一体に構成されていてもよい。
ロボット制御装置23は、上述したようにロボット30と別体であってよいし、一体に構成されていてもよい。
また、撮像装置10、画像処理装置21、ロボット制御装置23、及びロボット30の全てが一体に構成されていてもよい。
ロボットシステム1は、物体検出システムとして用いられてもよい。例えば、画像処理装置21は、ベルトコンベア上に載置された1個の物体を検出し、ロボット30は、画像処理装置21が検出した物体を操作してもよい。画像処理装置21は、ベルトコンベア上の複数の位置のそれぞれについて物体を表すモデル画像を取得し、取得したモデル画像に基づいて統合モデルデータを生成してもよい。ベルトコンベア上の複数の位置の間で、それぞれの見かけが異なるが、本実施形態によれば、モデル画像のうち見かけの異なる部分を除外してマッチング処理が行われるので物体の検出精度を向上させることができる。
また、ロボットシステム1は、ビンピッキングに用いられてもよい。例えば、画像処理装置21は、作業台上に乱雑に積み重ねられた多数の物体から1個の物体を検出し、ロボット30は、画像処理装置21が検出した物体を操作してもよい。画像処理装置21は、予め作業台上に乱雑に積み重ねられた多数の物体から少なくとも2個の物体のそれぞれを表すモデル画像を取得し、取得したモデル画像に基づいて統合モデルデータを生成してもよい。積み重ねられた物体のそれぞれの間で、位置、向き、光線の照射状況が異なるため、それぞれの見かけが異なる。例えば、物体がネジである場合には、軸部に付されたネジ山や金属光沢の見かけの差異が複数の物体間で著しい。本実施形態によれば、モデル画像のうち見かけの異なる部分を除外してマッチング処理が行われるので物体の検出精度を向上させることができる。
また、画像処理装置21は、ロボット制御装置23と連係してビジュアルサーボを実行してもよい。ビジュアルサーボにおいて、画像処理装置21が予め生成した統合モデルデータに含まれるエッジデータが、制御目標であるゴール画像として用いられてもよい。ビジュアルサーボにおいて、撮像画像から生成したエッジデータとゴール画像についてマッチング処理を行う際、画像処理装置21は、統合モデルデータに含まれるマスクデータが示すマスクの領域を除外する。
また、上述した実施形態では、ユーザーマスクを考慮しない場合を例にしたが、これには限られない。モデル統合部223は、ベースモデルデータBMに含まれるユーザーマスクと、追加モデルデータAMに含まれるユーザーマスクとの、少なくともいずれかに属する領域を、新たなユーザーマスクと定めてもよい。その場合、モデル統合部223は、統合モデルデータIMを生成する際、ベースモデルデータBMに含まれるユーザーマスクを、新たなユーザーマスクに更新する。
また、マッチング部224は、統合モデルデータから抽出したエッジマップが示すエッジから、少なくとも内部マスクの部分とユーザーマスクの部分のいずれかに属する部分を除外して参照エッジを特定し、対象エッジマップが示すエッジと参照エッジとの間でマッチング処理を行ってもよい。
また、以上に説明した装置(例えば、ロボットシステム1の画像処理装置21)における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、OS(Operating System)や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD(Compact Disc)(登録商標)−ROM等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー(例えば、RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
1…ロボットシステム、10…撮像装置、21…画像処理装置、211…画像データ取得部、212…操作入力部、213…表示部、214…データ入出力部、215…データ記憶部、22…制御部、220…処理部、221…選択部、222…特徴抽出部、223…モデル統合部、224…マッチング部、225…検出情報取得部、23…ロボット制御装置、30…ロボット

Claims (7)

  1. 複数の物体から一物体を検出する処理装置と、
    検出された前記一物体を操作するロボットと、を含み、
    前記処理装置は、
    撮像装置により撮像された前記複数の物体の画像を含む画像データを表示する表示部と、
    前記画像データから第1画像と第2画像とを選択する選択部と、
    前記第1画像と前記第2画像とに基づいてモデルを生成し、生成した前記モデルを用いて前記一物体を検出する処理部と、
    を含む、
    ロボットシステム。
  2. 前記処理部は、
    前記第1画像、前記第2画像、及び画像データのそれぞれについて細分化した領域毎の特徴を抽出する特徴抽出部と、
    前記第1画像の特徴と前記第2画像の特徴のいずれかである画像特徴と、前記第1画像の特徴と前記第2画像の特徴とが異なるマスク領域とを含むモデルを生成するモデル統合部と、
    前記画像特徴から前記マスク領域を除外した領域と、前記画像データの特徴とをマッチングするマッチング部と、
    を含む、
    請求項1に記載のロボットシステム。
  3. 前記特徴抽出部は、前記第1画像、前記第2画像、及び前記画像データのそれぞれについてエッジを抽出する請求項2に記載のロボットシステム。
  4. 前記モデル統合部は、前記第1画像の特徴と前記第2画像の特徴との位置ならびに姿勢の関係を対応付け、前記マスク領域を定める請求項2又は請求項3に記載のロボットシステム。
  5. 前記モデル統合部は、前記第1画像の特徴と前記第2画像の特徴の少なくともいずれかについて膨張処理を行い、前記第1画像の特徴と前記第2画像の特徴とが異なるマスク領域を定める請求項2から請求項4のいずれか一項に記載のロボットシステム。
  6. 前記マッチング部は、前記画像特徴から前記マスク領域を除外した領域について位置ならびに向きを変化させた領域と、前記画像データの特徴との一致の度合いを示すスコアを前記位置ならびに向きの変化量毎に算出し、前記スコアに基づいて前記一物体の位置ならびに向きを検出する請求項2から請求項5のいずれか一項に記載のロボットシステム。
  7. 前記処理装置は、
    前記マッチング部が算出したスコアに基づいて前記一物体を検出したか否かを判定する検出部、
    を備える請求項6に記載のロボットシステム。
JP2014136314A 2014-07-01 2014-07-01 ロボットシステム及び処理装置 Active JP6372198B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014136314A JP6372198B2 (ja) 2014-07-01 2014-07-01 ロボットシステム及び処理装置
CN201510315616.2A CN105279514B (zh) 2014-07-01 2015-06-10 机器人系统
US14/747,189 US9595095B2 (en) 2014-07-01 2015-06-23 Robot system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014136314A JP6372198B2 (ja) 2014-07-01 2014-07-01 ロボットシステム及び処理装置

Publications (2)

Publication Number Publication Date
JP2016014994A true JP2016014994A (ja) 2016-01-28
JP6372198B2 JP6372198B2 (ja) 2018-08-15

Family

ID=55017323

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014136314A Active JP6372198B2 (ja) 2014-07-01 2014-07-01 ロボットシステム及び処理装置

Country Status (3)

Country Link
US (1) US9595095B2 (ja)
JP (1) JP6372198B2 (ja)
CN (1) CN105279514B (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6632208B2 (ja) * 2015-03-24 2020-01-22 キヤノン株式会社 情報処理装置、情報処理方法、プログラム
JP6348093B2 (ja) * 2015-11-06 2018-06-27 ファナック株式会社 入力データから検出対象物の像を検出する画像処理装置および方法
JP6333871B2 (ja) 2016-02-25 2018-05-30 ファナック株式会社 入力画像から検出した対象物を表示する画像処理装置
US11636382B1 (en) * 2018-08-10 2023-04-25 Textron Innovations, Inc. Robotic self programming visual inspection
JP7171407B2 (ja) * 2018-12-12 2022-11-15 株式会社日立製作所 情報処理装置、生産指示支援方法
US11826919B2 (en) * 2019-01-30 2023-11-28 Fuji Corporation Work coordinate generation device
CN113538576A (zh) * 2021-05-28 2021-10-22 中国科学院自动化研究所 基于双臂机器人的抓取方法、装置及双臂机器人

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008186150A (ja) * 2007-01-29 2008-08-14 Hitachi Ltd テンプレートマッチング装置及び方法
JP2009015729A (ja) * 2007-07-06 2009-01-22 Nissan Motor Co Ltd 基準モデル作成方法および基準モデル作成装置
WO2012101717A1 (ja) * 2011-01-26 2012-08-02 株式会社 日立ハイテクノロジーズ パターンマッチング装置、及びコンピュータープログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1693783B1 (en) * 2005-02-21 2009-02-11 Mitsubishi Electric Information Technology Centre Europe B.V. Fast method of object detection by statistical template matching
JP2010097436A (ja) 2008-10-16 2010-04-30 Keyence Corp 画像処理におけるパターンモデルの位置決め方法、画像処理装置、画像処理プログラム及びコンピュータで読み取り可能な記録媒体
JP5331721B2 (ja) * 2010-02-02 2013-10-30 アズビル株式会社 画像処理装置、画像処理方法および画像処理プログラム
FI20106090A0 (fi) * 2010-10-21 2010-10-21 Zenrobotics Oy Menetelmä kohdeobjektin kuvien suodattamiseksi robottijärjestelmässä
US8165403B1 (en) * 2010-11-19 2012-04-24 Mitsubishi Electric Research Laboratories, Inc. Method and system for determining poses of specular objects
JP5895569B2 (ja) * 2012-02-08 2016-03-30 ソニー株式会社 情報処理装置、情報処理方法およびコンピュータプログラム
JP5949242B2 (ja) * 2012-07-11 2016-07-06 セイコーエプソン株式会社 ロボットシステム、ロボット、ロボット制御装置、ロボット制御方法、およびロボット制御プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008186150A (ja) * 2007-01-29 2008-08-14 Hitachi Ltd テンプレートマッチング装置及び方法
JP2009015729A (ja) * 2007-07-06 2009-01-22 Nissan Motor Co Ltd 基準モデル作成方法および基準モデル作成装置
WO2012101717A1 (ja) * 2011-01-26 2012-08-02 株式会社 日立ハイテクノロジーズ パターンマッチング装置、及びコンピュータープログラム

Also Published As

Publication number Publication date
CN105279514B (zh) 2019-08-02
US20160005161A1 (en) 2016-01-07
CN105279514A (zh) 2016-01-27
JP6372198B2 (ja) 2018-08-15
US9595095B2 (en) 2017-03-14

Similar Documents

Publication Publication Date Title
JP6372198B2 (ja) ロボットシステム及び処理装置
US9002119B2 (en) Device method and program for human hand posture estimation
JP7071054B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP5810562B2 (ja) 画像処理システムに向けられたユーザ支援装置、そのプログラムおよび画像処理装置
JP6892286B2 (ja) 画像処理装置、画像処理方法、及びコンピュータプログラム
US10306149B2 (en) Image processing apparatus, robot system, robot, and image processing method
EP2963513B1 (en) Teaching apparatus and robot system
CN111844019B (zh) 一种机器抓取位置确定方法、设备、电子设备和存储介质
US8447097B2 (en) Calibration apparatus and method for assisting accuracy confirmation of parameter for three-dimensional measurement
US10572762B2 (en) Image processing method for performing pattern matching for detecting a position of a detection target
JP2010211746A (ja) 3次元認識結果の表示方法および3次元視覚センサ
US9008442B2 (en) Information processing apparatus, information processing method, and computer program
JP6406900B2 (ja) 画像処理方法、画像処理装置、プログラム、記録媒体、生産装置、及び組立部品の製造方法
WO2012091144A4 (en) Information processing apparatus and method
JP6054831B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP2008108008A (ja) 移動パターン特定装置、移動パターン特定方法、移動パターン特定プログラム、およびこれを記録した記録媒体
JP6885856B2 (ja) ロボットシステムおよびキャリブレーション方法
US11590657B2 (en) Image processing device, control method thereof, and program storage medium
EP2387000B1 (en) Image measuring apparatus, program, and teaching method of image measuring apparatus
JP6326765B2 (ja) 教示装置、ロボット、ロボットシステム、方法、及びプログラム
JP7261306B2 (ja) 情報処理装置、設定装置、画像認識システム、ロボットシステム、設定方法、学習装置、及び学習済みモデルの生成方法
EP2793172A1 (en) Image processing apparatus, image processing method and program
US10562187B2 (en) Robot, robot control device, and robot system
EP4075391A1 (en) Apparatus and method for generating virtual model
JP6425405B2 (ja) 情報処理装置、方法、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170310

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180510

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180619

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180702

R150 Certificate of patent or registration of utility model

Ref document number: 6372198

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150