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

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

▶ 東芝デジタルメディアエンジニアリング株式会社の特許一覧

特開2022-1836403D物体位置検出装置及び3D物体位置検出方法
<>
  • 特開-3D物体位置検出装置及び3D物体位置検出方法 図1
  • 特開-3D物体位置検出装置及び3D物体位置検出方法 図2
  • 特開-3D物体位置検出装置及び3D物体位置検出方法 図3
  • 特開-3D物体位置検出装置及び3D物体位置検出方法 図4
  • 特開-3D物体位置検出装置及び3D物体位置検出方法 図5
  • 特開-3D物体位置検出装置及び3D物体位置検出方法 図6
  • 特開-3D物体位置検出装置及び3D物体位置検出方法 図7
  • 特開-3D物体位置検出装置及び3D物体位置検出方法 図8
  • 特開-3D物体位置検出装置及び3D物体位置検出方法 図9
  • 特開-3D物体位置検出装置及び3D物体位置検出方法 図10
  • 特開-3D物体位置検出装置及び3D物体位置検出方法 図11
  • 特開-3D物体位置検出装置及び3D物体位置検出方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022183640
(43)【公開日】2022-12-13
(54)【発明の名称】3D物体位置検出装置及び3D物体位置検出方法
(51)【国際特許分類】
   G06T 7/70 20170101AFI20221206BHJP
   G06T 7/00 20170101ALI20221206BHJP
   G01B 11/245 20060101ALI20221206BHJP
【FI】
G06T7/70 Z
G06T7/00 300D
G06T7/00 350C
G06T7/00 C
G01B11/245 H
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2021091075
(22)【出願日】2021-05-31
(71)【出願人】
【識別番号】390010308
【氏名又は名称】東芝デベロップメントエンジニアリング株式会社
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100103034
【弁理士】
【氏名又は名称】野河 信久
(74)【代理人】
【識別番号】100179062
【弁理士】
【氏名又は名称】井上 正
(74)【代理人】
【識別番号】100075672
【弁理士】
【氏名又は名称】峰 隆司
(74)【代理人】
【識別番号】100153051
【弁理士】
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100162570
【弁理士】
【氏名又は名称】金子 早苗
(72)【発明者】
【氏名】石過 壮
【テーマコード(参考)】
2F065
5L096
【Fターム(参考)】
2F065AA04
2F065AA37
2F065BB05
2F065DD03
2F065FF01
2F065FF05
2F065FF09
2F065JJ03
2F065JJ05
2F065JJ26
2F065QQ38
5L096AA06
5L096AA09
5L096BA05
5L096CA05
5L096DA02
5L096EA13
5L096EA15
5L096EA16
5L096FA60
5L096FA66
5L096FA67
5L096FA69
5L096GA40
5L096GA51
5L096HA11
5L096JA09
(57)【要約】
【課題】物体の位置及び姿勢を短時間に精度良く検出する。
【解決手段】一実施形態に係る3D物体位置検出装置は、画像取得部、マッチング部、及び算出部を備える。画像取得部は第1及び第2のカメラで物体を撮影した第1及び第2の画像を取得する。マッチング部は、第1の画像中の物体に対応するモデルの姿勢とモデルの基準点に対応する第1の画像中の点の位置とを探索するために、モデル及び第1の画像に対して2D-3Dマッチングを行い、モデル及び第1の画像に対する2D-3Dマッチングの結果に基づいて決定される探索範囲において第2の画像中の物体に対応するモデルの姿勢とモデルの基準点に対応する第2の画像中の点の位置とを探索するために、モデル及び第2の画像に対して2D-3Dマッチングを行う。算出部は、第1及び第2の画像のそれぞれに対する2D-3Dマッチングの結果に基づいて物体の位置及び姿勢を算出する。
【選択図】図2
【特許請求の範囲】
【請求項1】
第1のカメラで物体を撮影した第1の画像及び第2のカメラで前記物体を撮影した第2の画像を取得する画像取得部と、
前記第1の画像中の前記物体に対応する前記物体の3D形状を表すモデルの姿勢と、前記モデルに施される回転の基準点に対応する前記第1の画像中の点の位置と、を探索するために、前記モデル及び前記第1の画像に対して2D-3Dマッチングを行い、前記モデル及び前記第1の画像に対する2D-3Dマッチングの結果に基づいて決定される探索範囲において、前記第2の画像中の前記物体に対応する前記モデルの姿勢と、前記基準点に対応する前記第2の画像中の点の位置と、を探索するために、前記モデル及び前記第2の画像に対して2D-3Dマッチングを行うマッチング部と、
前記モデル及び前記第1の画像に対する2D-3Dマッチングの結果と、前記モデル及び前記第2の画像に対する2D-3Dマッチングの結果と、に基づいて、前記物体の位置及び姿勢を算出する算出部と、
を備える3D物体位置検出装置。
【請求項2】
前記マッチング部は、
前記モデル及び前記第2の画像に対する2D-3Dマッチングの結果に基づいて決定される探索範囲において、前記第1の画像中の前記物体に対応する前記モデルの姿勢と、前記基準点に対応する前記第1の画像中の点の位置と、を探索するために、前記モデル及び前記第1の画像に対して2D-3Dマッチングを行うことと、
前記モデル及び前記第1の画像に対する2D-3Dマッチングの結果に基づいて決定される探索範囲において、前記第2の画像中の前記物体に対応する前記モデルの姿勢と、前記基準点に対応する前記第2の画像中の点の位置と、を探索するために、前記モデル及び前記第2の画像に対して2D-3Dマッチングを行うことと、
を含む処理をさらに行う、
請求項1に記載の3D物体位置検出装置。
【請求項3】
前記マッチング部は、前記モデル及び前記第1の画像に対する2D-3Dマッチングの結果に基づいて算出される前記物体の姿勢と前記モデル及び前記第2の画像に対する2D-3Dマッチングの結果に基づいて算出される前記物体の姿勢との差が所定の条件を満たすまで前記処理を繰り返し行う、
請求項2に記載の3D物体位置検出装置。
【請求項4】
第1のカメラで物体を撮影した第1の画像及び第2のカメラで前記物体を撮影した第2の画像を取得する画像取得部と、
前記第1の画像中の前記物体に対応する前記物体の3D形状を表すモデルの姿勢と、前記モデルに施される回転の基準点に対応する前記第1の画像中の点の位置と、を探索するために、前記モデル及び前記第1の画像に対して2D-3Dマッチングを行うことと、前記第2の画像中の前記物体に対応する前記モデルの姿勢と、前記基準点に対応する前記第2の画像中の点の位置と、を探索するために、前記モデル及び前記第2の画像に対して2D-3Dマッチングを行うことと、を含む第1の処理と、
前記第1の処理の結果に基づいて決定される第1の探索範囲において、前記第1の画像中の前記物体に対応する前記モデルの姿勢と、前記基準点に対応する前記第1の画像中の点の位置と、を探索するために、前記モデル及び前記第1の画像に対して2D-3Dマッチングを行う第2の処理と、
前記第1の処理の結果に基づいて決定される第2の探索範囲において、前記第2の画像中の前記物体に対応する前記モデルの姿勢と、前記基準点に対応する前記第2の画像中の点の位置と、を探索するために、前記モデル及び前記第2の画像に対して2D-3Dマッチングを行う第3の処理と、
を行うマッチング部と、
前記第2の処理の結果と前記第3の処理の結果とに基づいて、前記物体の位置及び姿勢を算出する算出部と、
を備え、
前記マッチング部は、前記第2の処理及び前記第3の処理を同時並行的に実行する、
3D物体位置検出装置。
【請求項5】
前記マッチング部は、前記第2の処理の結果に基づいて算出される前記物体の姿勢と前記モデル及び前記第3の処理の結果に基づいて算出される前記物体の姿勢との差が所定の条件を満たすまで前記第2の処理及び前記第3の処理を繰り返し行い、
前記第2の処理及び前記第3の処理が繰り返し行われるときには、前記第1の探索範囲は、直前に行われた前記第3の処理の結果に基づいて決定され、前記第2の探索範囲は、直前に行われた前記第2の処理の結果に基づいて決定される、
請求項4に記載の3D物体位置検出装置。
【請求項6】
前記マッチング部は、前記モデル及び前記第2の画像に対して2D-3Dマッチングを行うときに、前記モデル及び前記第1の画像に対する2D-3Dマッチングにより得られる前記モデルの姿勢に対して1つの軸周りの回転を前記モデルに施す、
請求項1乃至5のいずれか1項に記載の3D物体位置検出装置。
【請求項7】
前記マッチング部は、前記モデル及び前記第1の画像に対する2D-3Dマッチングの結果と前記1つの軸周りに前記モデルに施す回転の角度とに基づいて決定される前記第2の画像中の位置を基準として、前記第2の画像中の物体の検出を行う、
請求項6に記載の3D物体位置検出装置。
【請求項8】
前記マッチング部は、ディープラーニングを用いて前記第1の画像及び前記第2の画像のそれぞれにおける前記物体の位置を推定することにより、前記物体までの距離を推定し、前記距離の推定結果を使用して前記モデル及び前記第1の画像に対する2D-3Dマッチングを行う、
請求項1乃至7のいずれか1項に記載の3D物体位置検出装置。
【請求項9】
前記ディープラーニングでの精度及び処理時間並びに2D-3Dマッチングでの精度及び処理時間は、前記物体の位置及び姿勢の検出精度並びに前記物体の位置及び姿勢を算出する処理時間が所定の条件を満たすように設定される、
請求項8に記載の3D物体位置検出装置。
【請求項10】
3D物体位置検出装置により実行される3D物体位置検出方法であって、
第1のカメラで物体を撮影した第1の画像及び第2のカメラで前記物体を撮影した第2の画像を取得することと、
前記第1の画像中の前記物体に対応する前記物体の3D形状を表すモデルの姿勢と、前記モデルに施される回転の基準点に対応する前記第1の画像中の点の位置と、を探索するために、前記モデル及び前記第1の画像に対して2D-3Dマッチングを行うことと、
前記モデル及び前記第1の画像に対する2D-3Dマッチングの結果に基づいて決定される探索範囲において、前記第2の画像中の前記物体に対応する前記モデルの姿勢と、前記基準点に対応する前記第2の画像中の点の位置と、を探索するために、前記モデル及び前記第2の画像に対して2D-3Dマッチングを行うことと、
前記モデル及び前記第1の画像に対する2D-3Dマッチングの結果と、前記モデル及び前記第2の画像に対する2D-3Dマッチングの結果と、に基づいて、前記物体の位置及び姿勢を算出することと、
を備える3D物体位置検出方法。
【請求項11】
第1のカメラで物体を撮影した第1の画像及び第2のカメラで前記物体を撮影した第2の画像を取得することと、
前記第1の画像中の前記物体に対応する前記物体の3D形状を表すモデルの姿勢と、前記モデルに施される回転の基準点に対応する前記第1の画像中の点の位置と、を探索するために、前記モデル及び前記第1の画像に対して2D-3Dマッチングを行うことと、前記第2の画像中の前記物体に対応する前記モデルの姿勢と、前記基準点に対応する前記第2の画像中の点の位置と、を探索するために、前記モデル及び前記第2の画像に対して2D-3Dマッチングを行うことと、を含む第1の処理を行うことと、
前記第1の処理の結果に基づいて決定される第1の探索範囲において、前記第1の画像中の前記物体に対応する前記モデルの姿勢と、前記基準点に対応する前記第1の画像中の点の位置と、を探索するために、前記モデル及び前記第1の画像に対して2D-3Dマッチングを行う第2の処理を行うことと、
前記第1の処理の結果に基づいて決定される第2の探索範囲において、前記第2の画像中の前記物体に対応する前記モデルの姿勢と、前記基準点に対応する前記第2の画像中の点の位置と、を探索するために、前記モデル及び前記第2の画像に対して2D-3Dマッチングを行う第3の処理を行うことと、
前記第2の処理の結果と前記第3の処理の結果とに基づいて、前記物体の位置及び姿勢を算出することと、
を備え、
前記第2の処理及び前記第3の処理は同時並行的に実行される、
3D物体位置検出方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、3D物体位置検出装置及び3D物体位置検出方法に関する。
【背景技術】
【0002】
ピッキングやパッキングなどのアクションを行うロボットが広く利用されている。ロボットが物体に対してアクションを行うためには、物体とロボットとの間の相対的な位置及び姿勢を測定する必要がある。
【0003】
特許文献1は、2次元見え方モデルを介して2台のカメラにより得られる2次元画像間の対応付けを行うことにより、物体の3次元位置を算出する方法を開示している。引用文献2は、2台のカメラにより得られた2次元画像間の対応付けを行い、三角測量の原理によって3次元画像情報を得て、3次元画像情報から物体の平面を抽出し、3次元画像情報の画像を平面の法線方向からの画像に変換し、法線方向画像及びモデル画像に対して2D-2Dマッチングを行うことにより、物体の位置及び姿勢を検出する方法を開示している。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平8-136220号公報
【特許文献2】特開2010-127819号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に開示される方法では、3次元的な特徴点が少ない物体については精度の良い検出ができない。特許文献2に開示される方法では、平面部がない物体については位置及び姿勢の検出ができない。
【0006】
3次元的な特徴点が少ない物体や平坦部がない物体であっても、物体の位置及び姿勢を精度良く検出できる技術が求められている。
【0007】
また、特許文献1に記述されているように、スリット光などを用いて点群データを作成する場合、精度の良い点群データを取得するには相当の時間がかかる。モデル作成では多少時間がかかってもよいが、シーンからのデータ作成の時間は短くしなければならない。
【課題を解決するための手段】
【0008】
一実施形態に係る3D物体位置検出装置は、画像取得部、マッチング部、及び算出部を備える。画像取得部は、第1のカメラで物体を撮影した第1の画像及び第2のカメラで前記物体を撮影した第2の画像を取得する。マッチング部は、前記第1の画像中の前記物体に対応する前記物体の3D形状を表すモデルの姿勢と、前記モデルに施される回転の基準点に対応する前記第1の画像中の点の位置と、を探索するために、前記モデル及び前記第1の画像に対して2D-3Dマッチングを行い、前記モデル及び前記第1の画像に対する2D-3Dマッチングの結果に基づいて決定される探索範囲において、前記第2の画像中の前記物体に対応する前記モデルの姿勢と、前記基準点に対応する前記第2の画像中の点の位置と、を探索するために、前記モデル及び前記第2の画像に対して2D-3Dマッチングを行う。算出部は、前記モデル及び前記第1の画像に対する2D-3Dマッチングの結果と、前記モデル及び前記第2の画像に対する2D-3Dマッチングの結果と、に基づいて、前記物体の位置及び姿勢を算出する。
【発明の効果】
【0009】
本発明によれば、物体の位置及び姿勢を短時間に精度良く検出する技術が提供される。
【図面の簡単な説明】
【0010】
図1】実施形態に係る3D物体位置検出装置が適用されるシステムの一例であるロボットシステムを示すブロック図。
図2】実施形態に係る3D物体位置検出装置を示すブロック図。
図3図2に示したモデル記憶部に格納されるモデルを示す図。
図4】同じ形状で大きさが異なる2つのワークがある事例を示す図。
図5】参照画像及びカメラ画像を重ね合わせた状態を示す図。
図6】実施形態に係る物体の位置及び姿勢を検出する方法を説明する図。
図7】実施形態に係る物体の位置及び姿勢を検出する方法を説明する図。
図8】実施形態に係る物体の位置及び姿勢を検出する方法を説明する図。
図9図2に示した3D物体位置検出装置が行う処理の手順例を示すフローチャート。
図10図2に示した3D物体位置検出装置が行う処理の手順例を示すフローチャート。
図11】1台のカメラを用いた場合に物体の位置を一意に決定できないことを説明する図。
図12図2に示した3D物体位置検出装置が行う処理の手順の他の例を示すフローチャート。
【発明を実施するための形態】
【0011】
以下、図面を参照しながら実施形態を説明する。なお、重複する説明を避けるために、全図を通じて同様の構成要素に同様の参照符号を付している。
【0012】
[構成]
図1は、実施形態に係る3D(3次元)物体位置検出装置が適用され得るロボットシステム10を概略的に示している。図1に示すロボットシステム10は、例えば、ある領域から別の領域にワークを移動させる。ここで、ワークはロボットシステム10により処理される物体の一例である。ロボットシステム10は、ロボット11、ステレオカメラ12、及びコントローラ13を備える。
【0013】
ロボット11は、アームとアームの先端部に設けられたエンドエフェクタとを備える。アームは、例えば多関節アームであり、エンドエフェクタの位置及び姿勢を変更させる。エンドエフェクタは、例えば、ワークを把持するように構成されたグリッパであり得る。
【0014】
ステレオカメラ12は1対のカメラ12R、12Lを備える。各カメラ12R、12Lは2D(2次元)画像を生成する。本実施形態では、2D画像はカラー画像である。なお、2D画像はモノクロ画像であってもよい。例えば、カメラ12R、12Lは、それらの光軸が互いに平行となるように配置される。代替として、カメラ12R、12Lは、それらの光軸が互いに交差するように配置されてもよい。ステレオカメラ12は、ロボット11の周囲環境に設けられてもよく、或いは、ロボット11に取り付けられてもよい。
【0015】
コントローラ13は、プロセッサ14、メモリ15、及び入出力インタフェース16を備える。プロセッサ14は、CPU(Central Processing Unit)などの汎用プロセッサを含む。メモリ15は、制御プログラム、モデル、及び各カメラ12R、12Lの内部パラメータなどのデータを記憶する。制御プログラムは、プロセッサ14により実行されたときに、ロボット11及びステレオカメラ12の制御をプロセッサ14に行わせる。制御プログラムは、図2に示す3D物体位置検出装置20に関して後述する処理をプロセッサ14に行わせる画像処理プログラムを含む。
【0016】
プロセッサ14は、ステレオカメラ12でワークを含むシーンを撮像してステレオ画像を得る。ステレオ画像は、カメラ12Rにより得られる画像及びカメラ12Lにより得られる画像を含む。以降では、各カメラ12R、12Lにより得られる画像をカメラ画像と称することもある。また、カメラ12Rにより得られる画像を右カメラ画像と称し、カメラ12Lにより得られる画像を左カメラ画像と称することもある。プロセッサ14は、ステレオ画像に基づいてワークの位置及び姿勢を検出する。ステレオ画像に基づいてワークの位置及び姿勢を検出する方法については後述する。プロセッサ14は、ワークの位置及び姿勢の検出結果に基づいてロボット11を操作する。
【0017】
入出力インタフェース16は、ロボット11及びステレオカメラ12に対するインタフェースである。プロセッサ14は、入出力インタフェース16を介してロボット11及びステレオカメラ12と通信する。
【0018】
制御プログラムは、コンピュータで読み取り可能な記憶媒体に記憶された状態でコントローラ13に提供されてよい。この場合、例えば、コントローラ13は、記憶媒体からデータを読み出すドライブを備え、記憶媒体からプログラムを取得する。記憶媒体の例は、磁気ディスク、光ディスク(CD-ROM、CD-R、DVD-ROM、DVD-Rなど)、光磁気ディスク(MOなど)、半導体メモリを含む。また、プログラムをネットワーク上のサーバに格納し、コントローラ13がサーバからプログラムをダウンロードするようにしてもよい。
【0019】
なお、コントローラ13は、汎用プロセッサに代えて又は追加して、ASIC(Application Specific Integrated Circuit)又はFPGA(Field Programmable Gate Array)などの専用プロセッサを含んでいてもよい。
【0020】
図2は、実施形態に係る3D物体位置検出装置20の構成例を概略的に示している。3D物体位置検出装置20は、図1に示したプロセッサ14により実施される。図2に示すように、3D物体位置検出装置20は、画像取得部21、モデル記憶部22、マッチング部23、及び算出部24を備える。3D物体位置検出装置20は、ステレオカメラ12と別個の装置として示されているが、ステレオカメラ12を備えてもよい。
【0021】
画像取得部21はステレオカメラ12からステレオ画像を取得する。ステレオ画像は、カメラ12Rにより得られる右カメラ画像及びカメラ12Lにより得られる左カメラ画像を含む。
【0022】
モデル記憶部22は、あらかじめ用意される、ワークの3D形状を表すモデル(3Dモデル)を格納する。本実施形態では、モデルは、ワークの3D形状をモデル化したデータにワークの色情報(RGB情報)を付加することにより得られる色付き点群データである。モデルはグレースケールの点群データであってもよい。
【0023】
マッチング部23は、モデル記憶部22に格納されているモデル及び画像取得部21により取得される各カメラ画像に対して2D-3Dマッチングを行う。2D-3Dマッチングは、3Dモデルを投影した2D画像とシーンとして撮影された2D画像とのマッチングからシーン中の対象物を検出する手法である。以降では、モデルを投影した2D画像を参照画像と称することもある。また2D画像どうしのマッチング処理はテンプレートマッチングであってもよいし、特徴量ベースのマッチングでもよい。後述のディープラーニングを用いることで、左カメラ画像及び右カメラ画像のそれぞれのワークのおおよその位置を取得することができれば、そこからワークまでのおおよその距離がわかるので、ワークの大きさの範囲を限定できる。探索の範囲が限定されていれば、回転と大きさを考慮した2D-2Dマッチングは短時間で高精度な検出が可能である。
【0024】
マッチング部23は、モデルに対して回転及び平行移動を施したうえで参照画像を生成することができる。マッチング部23は、カメラ画像中のワークに対応するモデルの姿勢と、モデルに施される回転の基準点に対応するカメラ画像中の点の位置と、を探索するために、モデル及びカメラ画像に対して2D-3Dマッチングを行う。カメラ画像中のワークに対応するモデルの姿勢は、参照画像中のモデルがカメラ画像中のワークとマッチするときにおけるモデルの姿勢を示す。例えば、マッチング部23は、参照画像及びカメラ画像間のマッチングを行って参照画像中のモデルとカメラ画像中のワークとの間の一致度を測定し、一致度が所定の閾値を超える場合に参照画像中のモデルがカメラ画像中のワークとマッチすると判定する。姿勢は直交する3つの軸周りの回転角で表すことができる。基準点は例えばモデルの重心である。以降では、モデルに施される回転の基準点に対応するカメラ画像中の点をカメラ画像中の対応点と称することもある。基準点がモデルの重心である場合、カメラ画像中の対応点は、カメラ画像におけるワークの重心に対応する。
【0025】
マッチング部23は、右カメラ画像中のワークに対応するモデルの姿勢と、右カメラ画像中の対応点の位置と、を探索するために、モデル及び右カメラ画像に対して2D-3Dマッチングを行う。マッチング部23は、モデル及び右カメラ画像に対する2D-3Dマッチングの結果に基づいて決定される探索範囲において、左カメラ画像中のワークに対応するモデルの姿勢と、左カメラ画像中の対応点の位置と、を探索するために、モデル及び左カメラ画像に対して2D-3Dマッチングを行う。
【0026】
算出部24は、モデル及び右カメラ画像に対する2D-3Dマッチングの結果と、モデル及び左カメラ画像に対する2D-3Dマッチングの結果と、に基づいて、ワークの3次元空間内の位置及び姿勢を算出する。
【0027】
図3は、モデル記憶部22に格納されるモデルの一例を概略的に示している。図3に示すモデルは、1つの面に星印がある立方体であるワークをモデル化した色付き点群データである。各面は隣接する面と異なる色及び明るさを有し、星印は星印がある面と異なる色及び明るさを有する。
【0028】
図4は、同じ形状で大きさの異なる2つのワーク41、42がある事例を概略的に示している。図4に示す事例では、小さいワーク42が大きいワーク41よりもステレオカメラ12の近くに位置している。右カメラ画像45Rでは、ワーク41、42は同じに写っており、ワーク41とワーク42を区別することができない。一方、左カメラ画像45Lでは、ワーク41とワーク42はそれぞれ別の位置に写るので区別できる。
【0029】
図5は、参照画像中のモデル53がカメラ画像中のワーク51とマッチしているときの参照画像及びカメラ画像を重ね合わせた状態を概略的に示している。図5において、カメラ画像中のワーク51が実線で示され、参照画像中のモデル53が破線で示されている。矢印は、参照画像中のモデル53の重心54とカメラ画像中の対応点52との間のずれを示す。
【0030】
図6から図8を参照して、ワークの位置及び姿勢を検出する方法について説明する。説明のために、図6に示すように、各カメラ12R、12Lに対してカメラ座標系(XcYcZc座標系)を設定し、カメラ12Rのレンズとカメラ12Lのレンズとの中間地点を原点Oとし、X軸、Y軸、Z軸がそれぞれXc軸、Yc軸、Zc軸と平行になるようにワールド座標系(XYZ座標系)を設定する。カメラ間隔(カメラ12L、12R間の距離)をTとする。この場合、ワールド座標系では、カメラ12Rの位置は(T/2,0,0)であり、カメラ12Lの位置は(-T/2,0,0)である。ワークの位置を(X,Y,Z)とし、ワークの回転角を(α,β,γ)とする。αはX軸周りの回転角(ピッチ方向の回転角)を表し、βはY軸周りの回転角(ヨー方向の回転角)を表し、γはZ軸周りの回転角(ロール方向の回転角)を表す。
【0031】
さらに、図7に示すように、モデル71に対して、カメラ座標系に対応するXmYmZm座標系を設定する。XmYmZm座標系の原点に各カメラ12R、12Lと同等のカメラがあるものとして、参照画像75が生成される。図7には、回転を施していない状態のモデル71及び当該モデル71について得られる参照画像75が示されている。マッチング部23は、モデル71に対して回転及び平行移動を施し、回転及び平行移動を施した状態のモデル71を2D画像平面に投影することにより、参照画像75を生成する。マッチング部23は、モデル71の重心73を中心として、モデルに対してXm軸周りの回転、Ym軸周りの回転、Zm軸周りの回転を適用することができる。平行移動は、モデル71の重心73が参照画像75の中心に位置するように、Zm軸に沿って行われてよい。Zm軸に沿った平行移動を施すことにより、参照画像75上でのモデル71の大きさが調整される。
【0032】
マッチング部23は、モデル及び右カメラ画像に対して2D-3Dマッチングを行い、参照画像中のモデルが右カメラ画像中のワークとマッチするときにおけるモデルの回転角(α,β,γ)と、参照画像中のモデルと右カメラ画像中のワークとの間のずれを表すシフト量(x,y)と、を取得する。さらに、マッチング部23は、モデル及び左カメラ画像に対して2D-3Dマッチングを行い、参照画像中のモデルが左カメラ画像中のワークとマッチするときにおけるモデルの回転角(α,β,γ)と、参照画像中のモデルと左カメラ画像中のワークとの間のずれを表すシフト量(x,y)と、を取得する。算出部24は、回転角(α,β,γ)、シフト量(x,y)、回転角(α,β,γ)、シフト量(x,y)からワークの位置(X,Y,Z)及び回転角(α,β,γ)を算出する。
【0033】
以下では、説明を簡単にするために、α=γ=0、Y=0とする。
【0034】
図6を参照すると、右カメラ画像65Rは、カメラ12Rでワーク61を撮像することにより得られ、左カメラ画像65Lは、カメラ12Lでワーク61を撮像することにより得られる。図6において、fは各カメラ12L、12Rのレンズの焦点距離を表す。
【0035】
マッチング部23は、参照画像75中のモデル71が右カメラ画像65R中のワーク61にマッチするまで、モデル71に対して回転及び平行移動を少しずつ行う。マッチング部23は、参照画像75中のモデル71が右カメラ画像65R中のワーク61にマッチするときにおけるモデル71の回転角βを得る。マッチング部23は、右カメラ画像65R中の対応点の位置を検出し、参照画像75中のモデル71の重心73と右カメラ画像65R中の対応点との間のずれを表すシフト量xを得る。
【0036】
同様に、マッチング部23は、参照画像75中のモデル71が左カメラ画像65L中のワーク61にマッチするまで、モデル71に対して回転及び平行移動を少しずつ行う。マッチング部23は、参照画像75中のモデル71が左カメラ画像65L中のワーク61にマッチするときにおけるモデル71の回転角βを得る。マッチング部23は、左カメラ画像65L中の対応点の位置を検出し、参照画像75中のモデル71の重心73と左カメラ画像65L中の対応点との間のずれを表すシフト量xを得る。
【0037】
カメラ12R、12Lの光軸が互いに平行である場合、カメラ12Lから見たワーク61の姿勢はカメラ12Rから見たワーク61の姿勢に対してY軸周りの回転を施したものになる。よって、マッチング部23は、モデル及び左カメラ画像に対して2D-3Dマッチングを行う際には、モデル及び右カメラ画像に対する2D-3Dマッチングにより得られた回転角(α,β,γ)に対してYm軸周りの回転をモデルに施せばよい。
【0038】
ワーク61の位置(X,Z)は下記の式で表すことができる。
【数1】
【0039】
モデル71の回転角β(i=r,l)は、ワーク61の実際の回転角βにカメラの見込み角を加えた値になる。よって、モデル71の回転角β、βとワーク61の回転角βとの間には、下記の関係が成り立つ。
【数2】
【0040】
よって、ワーク61の回転角βは下記の式で表すことができる。
【数3】
【0041】
上記の式において下記の近似を使用している。
【数4】
【0042】
回転角(α,β,γ)及びシフト量(x,y)と回転角(α,β,γ)及びシフト量(x,y)との間には拘束条件がある。マッチング部23は、2D-3Dマッチングを行う際に拘束条件を使用する。例えば、マッチング部23は、モデル及び右カメラ画像に対する2D-3Dマッチングの結果(回転角(α,β,γ)及びシフト量(x,y))に基づいて決定される探索範囲において、回転角(α,β,γ)及びシフト量(x,y)を探索する。α=γ=0、Y=0である場合には、拘束条件は以下のようになる。
【0043】
上記式(3)、(4)から下記式(5)が求まる。
【数5】
【0044】
式(5)に上記の近似を適用すると、下記式(6)が求まる。
【数6】
【0045】
上記の式(6)によれば、図8に示すように、(β,x)は、傾き1/f、切片(β-x/f)の直線上の点である。(β,x)は上記式(6)を満たす点の1つであるので、マッチング部23は、(β,x)を求める際には、上記式(6)及び(β,x)に基づいて決定される探索範囲において探索を行う。例えば、マッチング部23は、式(6)を使用して回転角β及びシフト量xとモデル71に施した回転角とから算出される左カメラ画像65L中の位置を基準として、左カメラ画像65L中のワーク61の検出を行う。例えば、基準となる位置を中心とする探索範囲内でワーク61の検出を行う。
【0046】
マッチング部23は、モデル71及び右カメラ画像65Rに対して2D-3Dマッチングを行い、参照画像75中のモデル71が右カメラ画像65R中のワーク61とマッチしたときにおける回転角とシフト量の組み(β,x)を特定する。ワーク61までの距離がまだ定まらないので、(β,x)は誤差を含んでいる可能性が高い。
【0047】
さらに、マッチング部23は、モデル71及び左カメラ画像65Lに対して2D-3Dマッチングを行い、参照画像75中のモデル71が左カメラ画像65L中のワーク61とマッチしたときにおける回転角とシフト量の組み(β,x)を特定する。
【0048】
マッチング部23は、下記式(7)に従って、(β,x)及び(β,x)から誤差εを計算する。
【数7】
【0049】
誤差εは、モデル71及び右カメラ画像65Rに対する2D-3Dマッチングの結果に基づいて得られるワーク61の回転角と、モデル71及び左カメラ画像65Lに対する2D-3Dマッチングの結果に基づいて得られるワーク61の回転角と、の間の差を表す。
【0050】
誤差εがあらかじめ設定される閾値以下である場合、算出部24は、下記式(8)に従ってワークの回転角βを得る。
【数8】
【0051】
誤差εがあらかじめ設定される閾値を超える場合、マッチング部23は、下記式(9)を使用して(β,X)から決定される探索範囲において探索を再度行い、(β,X)を求める。
【数9】
【0052】
上述した操作を繰り返すことにより、誤差εは徐々に小さくなる。誤差εが閾値より小さくなるまで上述した操作を繰り返すことにより、閾値以下の精度でワーク61の位置及び姿勢を求めることができる。さらに、探索範囲は式(6)及び式(9)を用いて決定される範囲に限定されるので、短時間で処理を行うことができる。
【0053】
実際の処理では上記式(4)の近似を用いないことで、精度の高い検出ができる。その際の処理の流れは上記と同じになる。
【0054】
回転角(α,β,γ)及びシフト量(x,y)の初期値を決定する際に、マッチング部23は、ディープラーニングを用いて右カメラ画像及び左カメラ画像のそれぞれにおけるワークの位置を推定することにより、ワークまでの距離を推定し、距離の推定結果を使用してモデル及び右カメラ画像に対する2D-3Dマッチングを行ってよい。例えば、マッチング部23は、ディープラーニングを用いて右カメラ画像及び左カメラ画像におけるワークの位置x、xを推定し、推定された位置x、xを上記式(1)に代入することによりZの値を求める。マッチング部23は、求めたZの値からワークの大きさの範囲を推定し、ワークの大きさの範囲の推定結果からモデルに施す平行移動の量の範囲を決定する。このように、ディープラーニングを用いて得られる距離の推定結果は、ワークの大きさの範囲を限定することを可能にし、よって、モデルに施す平行移動の量の範囲を限定することを可能にする。その結果、2D-3Dマッチングの処理時間が短縮される。ディープラーニングとしては、例えば、金崎朝子、“第4話 3次元物体認識技術”、[online]、インターネット<URL: https://kanezaki.github.io/media/RobotSeminar20180531_AsakoKanezaki.pdf>又は太田英司、“セマンティック・セグメンテーションの基礎”、[online]、インターネット<URL: https://jp.mathworks.com/content/dam/mathworks/mathworks-dot-com/company/events/webinar-cta/2459280_Basics_of_semantic_segmentation.pdf>に開示される技術を利用することができる。
【0055】
[動作]
次に、3D物体位置検出装置20の動作例を説明する。
【0056】
図9は、3D物体位置検出装置20がワークの位置及び姿勢を算出する処理手順の例を概略的に示している。
【0057】
図9のステップS11において、画像取得部21は、ステレオカメラ12からカメラ12Rにより得られた右カメラ画像及びカメラ12Lにより得られた左カメラ画像を取得する。例えば、画像取得部21は、ステレオカメラ12を使用してワークを含むシーンを撮影し、ステレオカメラ12から右カメラ画像及び左カメラ画像を受信する。
【0058】
ステップS12において、マッチング部23は、右カメラ画像中のワークに対応するモデルの姿勢と、右カメラ画像中の対応点の位置と、を探索するために、モデル及び右カメラ画像に対して2D-3Dマッチングを行う。
【0059】
ステップS13において、マッチング部23は、モデル及び右カメラ画像に対する2D-3Dマッチングの結果に基づいて決定される探索範囲において、左カメラ画像中のワークに対応するモデルの姿勢と、左カメラ画像中の対応点の位置と、を探索するために、モデル及び左カメラ画像に対して2D-3Dマッチングを行う。例えば、マッチング部23は、モデル及び右カメラ画像に対する2D-3Dマッチングの結果とモデルに施した回転角とから算出される左カメラ画像中の位置を基準として、ワーク61の検出を行う。
【0060】
ステップS14において、算出部24は、モデル及び右カメラ画像に対する2D-3Dマッチングの結果とモデル及び左カメラ画像に対する2D-3Dマッチングの結果とに基づいてワークの位置及び姿勢を算出する。
【0061】
図10は、3D物体位置検出装置20がワークの位置及び姿勢を算出する処理手順の例を示している。ここでは、図6から図8に関して説明した例を再び参照する。
【0062】
図10のステップS21において、マッチング部23は、右カメラ画像に基づいてシフト量x及び回転角βの初期値を設定する。例えば、マッチング部23は、モデルに対して回転及び平行移動を施してモデルを2D画像平面に投影することにより参照画像を生成し、参照画像と右カメラ画像との間でマッチングを行う処理を繰り返し行い、それにより参照画像中のモデルが右カメラ画像中のワークとマッチするときにおけるシフト量x及び回転角βを初期値として得る。
【0063】
マッチング部23は、ディープラーニングを使用して右カメラ画像からシフト量x及び回転角βの初期値を設定してもよい。具体的には、マッチング部23は、ディープラーニングを用いて右カメラ画像及び左カメラ画像のそれぞれにおけるワークの位置を推定することにより、ワークまでの距離を推定し、距離の推定結果を使用してモデル及び右カメラ画像に対して2D-3Dマッチングを行う。シフト量x及び回転角βの初期値の設定にディープラーニングを使用することにより、ワークの個体差や照明の影響を受けにくくなり、シフト量x及び回転角βの初期値をより適切に設定することが可能となる。その結果、後述する繰り返し処理の回数を低減することができる。
【0064】
ディープラーニングでは推論時間を実用的な時間(例えば0.2秒)にしようとすると、検出精度はワークまでの距離に対して±10%程度になる。ディープラーニングの検出結果を元に本実施形態の方法を適用することで、検出精度を±1%程度にすることが可能となる。ディープラーニングと本実施形態の方法を組み合わせることで短い時間(例えば0.5秒)で高い精度でワークの位置と姿勢を検出することが可能となる。例えば、ディープラーニングでの精度及び処理時間並びに2D-3Dマッチングでの精度及び処理時間は、ワークの位置及び姿勢の精度並びにワークの位置及び姿勢を算出する処理時間が所定の条件を満たすように設定される。
【0065】
ディープラーニングの位置検出で用いられるインスタンスセグメンテーションやセマンティックセグメンテーションでは推論時間はほぼ入力画像の画素数に比例する。おおよその位置と姿勢だけがわかればよいのであれば、例えば4×4のブロックに分割することで1024×1024を256×256にダウンサイジングできるので、推論時間を0.2秒程度に抑えることができる。また対象ワークの種類があらかじめわかっていれば、ディープラーニングによってワークの種類を特定できるので、複数種類(例えば5種類)のワークに対応することができる。
【0066】
ステップS22において、マッチング部23は、上記式(6)に従ってステップS21において得られたシフト量x及び回転角βから決定される探索範囲において、左カメラ画像に基づいてシフト量x及び回転角βを求める。ディープラーニングを用いることで左カメラ画像におけるワークのおおよその位置をしることができるので、xの探索範囲を限定することができる。x及びxのおおよその値を上記式(1)に代入することでおおよそのZの値がわかるので、2D-3Dマッチングの際の大きさの範囲を限定することができる。
【0067】
ステップS23において、マッチング部23は、ステップS21において得られたシフト量x及び回転角β及びステップS22において得られたシフト量x及び回転角βから上記式(7)に示す誤差εを求め、誤差εが閾値以下であるか否かを判定する。
【0068】
誤差εが閾値を超える場合(ステップS23;No)、フローはステップS24に進む。ステップS24において、マッチング部23は、上記式(9)に従ってステップS22において得られたシフト量x及び回転角βから決定される探索範囲において、右カメラ画像に基づいてシフト量x及び回転角βを求める。その後、フローはステップS22に戻る。ステップS22において、マッチング部23は、上記式(6)に従ってステップS24において求められたシフト量x及び回転角βから決定される探索範囲において、左カメラ画像に基づいてシフト量x及び回転角βを求める。ステップS23において、マッチング部23は、ステップS24において得られたシフト量x及び回転角β及びステップS22において得られたシフト量x及び回転角βから上記式(7)に示す誤差εを求め、誤差εが閾値以下であるか否かを判定する。
【0069】
誤差εが閾値以下である場合(ステップS23;Yes)、フローはステップS25に進む。ステップS25において、算出部24は、シフト量x及び回転角β並びにシフト量x及び回転角βに基づいてワークの位置(X,Z)及び回転角βを求める。例えば、算出部24は、上記式(8)に従ってワークの回転角βを算出し、上記式(1)、(2)に従ってワークの位置(X,Z)を算出する。
【0070】
[効果]
3D物体位置検出装置20は、右カメラ画像中のワークの姿勢にマッチするモデルの姿勢と、モデルの基準点に対応する右カメラ画像中の点の位置と、を探索するために、モデル及び右カメラ画像に対して2D-3Dマッチングを行い、モデル及び右カメラ画像に対する2D-3Dマッチングの結果に基づいて決定される探索範囲において、左カメラ画像中のワークの姿勢にマッチするモデルの姿勢と、基準点に対応する左カメラ画像中の点の位置と、を探索するために、モデル及び左カメラ画像に対して2D-3Dマッチングを行い、モデル及び右カメラ画像に対する2D-3Dマッチングの結果と、モデル及び左カメラ画像に対する2D-3Dマッチングの結果と、に基づいて、ワークの位置及び姿勢を算出する。これにより、位置及び姿勢を精度良く検出することが可能となる。本実施形態に係る3D物体位置検出装置20は、3次元的な特徴点が少ないワークや平坦部がないワークについても適用可能である。
【0071】
例えば、図11に示すように、単一のカメラ101で得られた1枚のカメラ画像102に対して2D-3Dマッチングを行うと、ワークの姿勢は一意に決定できるが、同じ形状で大きさが異なるワーク103、104が異なる距離にいる場合に、それらを区別できず、ワークの位置を一意に決定することができない。これに対して、本実施形態では、2台のカメラ12L、12Rを使用することにより、ワークの位置及び姿勢を一意に決定することができる。
【0072】
さらに、モデル及び左カメラ画像に対する2D-3Dマッチングにおいて、モデル及び右カメラ画像に対する2D-3Dマッチングの結果に基づいて決定される探索範囲において探索を行うことにより、処理時間を短縮することが可能となる。
【0073】
3D物体位置検出装置20は、モデル及び左カメラ画像に対する2D-3Dマッチングの結果に基づいて決定される探索範囲において、右カメラ画像中のワークの姿勢にマッチするモデルの姿勢と、基準点に対応する右カメラ画像中の点の位置と、を探索するために、モデル及び右カメラ画像に対して2D-3Dマッチングを行うことと、モデル及び右カメラ画像に対する2D-3Dマッチングの結果に基づいて決定される探索範囲において、左カメラ画像中のワークの姿勢にマッチするモデルの姿勢と、基準点に対応する左カメラ画像中の点の位置と、を探索するために、モデル及び左カメラ画像に対して2D-3Dマッチングを行うことと、を含む処理をさらに行う。3D物体位置検出装置20は、モデル及び右カメラ画像に対する2D-3Dマッチングの結果に基づいて算出されるワークの姿勢とモデル及び左カメラ画像に対する2D-3Dマッチングの結果に基づいて算出されるワークの姿勢との差が所定の条件を満たすまで上記処理を繰り返す。これにより、所望する精度でワークの位置及び姿勢を検出することが可能となる。
【0074】
3D物体位置検出装置20は、左カメラ画像中のワークに対応するモデルの姿勢を探索する際に、右カメラ画像に関して決定されたモデルの姿勢に対してYm軸周りの回転(ヨー方向の回転)のみをモデルに施す。3D物体位置検出装置20は、モデル及び右カメラ画像に対する2D-3Dマッチングの結果とモデルに施すYm軸周りの回転の角度とに基づいて決定される左カメラ画像中の位置を基準として、左カメラ画像中のワークの検出を行う。このように、モデル及び一方のカメラ画像に対する2D-3Dマッチングの結果を使用して、他方のカメラ画像に対する2D-3Dマッチングにおける探索範囲を絞り込むことにより、処理時間を短縮することが可能となる。
【0075】
[変形例]
図12は、3D物体位置検出装置20がワークの位置及び姿勢を算出する処理手順の他の例を示している。ここでは、図6から図8に関して説明した例を再び参照する。
【0076】
図12のステップS31において、マッチング部23は、シフト量x及び回転角βの初期値並びにシフト量x及び回転角βの初期値を設定する。例えば、マッチング部23は、ディープラーニングを用いて右カメラ画像及び左カメラ画像のそれぞれにおけるワークの位置を推定することにより、ワークまでの距離を推定する。マッチング部23は、距離の推定結果を使用してモデル及び右カメラ画像に対して2D-3Dマッチングを行い、それによりシフト量x及び回転角βの初期値を設定する。さらに、マッチング部23は、距離の推定結果を使用してモデル及び左カメラ画像に対して2D-3Dマッチングを行い、それによりシフト量x及び回転角βの初期値を設定する。
【0077】
ステップS32において、マッチング部23は、下記式(10)に従ってステップS31において得られたシフト量x及び回転角βから決定される探索範囲において、右カメラ画像に基づいてシフト量x及び回転角βを求める。
【数10】
【0078】
ステップS33において、マッチング部23は、上記式(6)に従ってステップS31において得られたシフト量x及び回転角βから決定される探索範囲において、左カメラ画像に基づいてシフト量x及び回転角βを求める。
【0079】
ステップS32の処理及びステップS33の処理は同時並行的に実行される。ステップS32の処理及びステップS33の処理が同時並行的に実行されるとは、ステップS32の処理及びステップS33の処理が少なくとも部分的に時間的に重なって実行されることを指す。
【0080】
ステップS34において、マッチング部23は、ステップS32において得られたシフト量x及び回転角β及びステップS33において得られたシフト量x及び回転角βから上記式(7)に示す誤差εを求め、誤差εが閾値以下であるか否かを判定する。
【0081】
誤差εが閾値を超える場合(ステップS34;No)、マッチング部23は、上記式(9)に従ってステップS33において得られたシフト量x及び回転角βから探索範囲を決定し(ステップS35)、決定した探索範囲において、右カメラ画像に基づいてシフト量x及び回転角βを新たに求める(ステップS32)。
【0082】
さらに、マッチング部23は、下記式(11)に従ってステップS32において得られたシフト量x及び回転角βから探索範囲を決定し(ステップS36)、決定した探索範囲において、左カメラ画像に基づいてシフト量x及び回転角βを新たに求める(ステップS33)。
【数11】
【0083】
誤差εが閾値以下である場合(ステップS34;Yes)、フローはステップS37に進む。ステップS37において、算出部24は、ステップS32において得られたシフト量x及び回転角β並びにステップS33において得られたシフト量x及び回転角βに基づいてワークの位置(X,Z)及び回転角βを求める。例えば、算出部24は、上記式(8)に従ってワークの回転角βを算出し、上記式(1)、(2)に従ってワークの位置(X,Z)を算出する。
【0084】
図12に示すフローは、右カメラ画像から求まる初期値(β,x)から(β,x)を求めると同時に、左カメラ画像から求まる初期値(β,x)から(β,x)を求め、それぞれの結果に基づき次の探索範囲を決定するというループを含む。このようにすることで、処理時間を短縮することができる。閾値の設定によっては、ループは1回で終わることもあり、その場合は1回分の探索時間しかかからない。
【0085】
上述した実施形態では、2D-3Dマッチングの実行時にモデルに回転及び平行移動を施しながらモデルを投影した参照画像を次々に生成している。他の実施形態では、モデルに回転及び平行移動を施してモデルを投影した参照画像をあらかじめ生成しておき、参照画像をモデル記憶部22に格納しておいてもよい。
【0086】
モデルは、点の位置と点間の接続関係とにより物体の3D形状をモデル化したものであってもよい。本実施形態のように、カメラ画像をカラー画像とし、モデルを色付き点群データとすると、2D-3Dマッチングにおいてモデルの姿勢及びカメラ画像中の対応点の位置の検出精度を向上することができる。
【0087】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0088】
10…ロボットシステム、11…ロボット、12…ステレオカメラ、12L…カメラ、12R…カメラ、13…コントローラ、14…プロセッサ、15…メモリ、16…入出力インタフェース、20…3D物体位置検出装置、21…画像取得部、22…モデル記憶部、23…マッチング部、24…算出部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12