(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024109847
(43)【公開日】2024-08-14
(54)【発明の名称】処理装置及びプログラム
(51)【国際特許分類】
G06T 7/60 20170101AFI20240806BHJP
B25J 13/08 20060101ALI20240806BHJP
G06T 7/70 20170101ALI20240806BHJP
【FI】
G06T7/60 200Z
B25J13/08 A
G06T7/70 Z
【審査請求】有
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2024084758
(22)【出願日】2024-05-24
(62)【分割の表示】P 2023013072の分割
【原出願日】2023-01-31
(71)【出願人】
【識別番号】000006633
【氏名又は名称】京セラ株式会社
(74)【代理人】
【識別番号】100088672
【弁理士】
【氏名又は名称】吉竹 英俊
(74)【代理人】
【識別番号】100088845
【弁理士】
【氏名又は名称】有田 貴弘
(74)【代理人】
【識別番号】100156177
【弁理士】
【氏名又は名称】池見 智治
(74)【代理人】
【識別番号】100130166
【弁理士】
【氏名又は名称】田中 宏明
(72)【発明者】
【氏名】南出 隼人
(57)【要約】 (修正有)
【課題】物体が有する、外観が互いに類似する複数の面において、撮像装置側を向く面を適切に特定する処理装置及びプログラムを提供する。
【解決手段】処理装置1において、制御部は、撮像装置から外観が互いに類似する複数の面を有する物体の第1姿勢の第1画像を取得し、複数の面のうち撮像装置側を向く対象面を特定し、さらに、物体の姿勢が前記第1姿勢とは異なる第2姿勢の第2画像を取得し、第1画像及び第2画像に基づいて対象面を特定する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
撮像装置から外観が互いに類似する複数の面を有する物体の第1姿勢の第1画像を取得し、前記複数の面のうち前記撮像装置側を向く対象面を特定する制御部を備え、
前記制御部は、
前記物体の姿勢が前記第1姿勢とは異なる第2姿勢の第2画像をさらに取得し、
前記第1画像及び前記第2画像に基づいて前記対象面を特定する、処理装置。
【請求項2】
請求項1に記載の処理装置であって、
前記制御部は、
前記第1画像に基づいて、前記複数の面のそれぞれが前記対象面であるとした場合の前記物体の姿勢を推定した複数の第1推定姿勢を取得し、
前記第2画像に基づいて、前記複数の面のそれぞれが前記対象面であるとした場合の前記物体の姿勢を推定した複数の第2推定姿勢を取得し、
前記複数の第1推定姿勢及び前記複数の第2推定姿勢に基づいて前記対象面を特定する、処理装置。
【請求項3】
請求項2に記載の処理装置であって、
前記第2姿勢は、前記物体の姿勢が前記第1姿勢とは異なるように前記物体が前記撮像装置に対して相対的に回転した姿勢であり、
前記制御部は、
前記複数の第1推定姿勢が回転した複数の第1回転推定姿勢を取得し、
前記複数の第1回転推定姿勢と前記複数の第2推定姿勢とを、対応する面ごとに比較する比較処理を行い、当該比較処理の結果に基づいて前記対象面を特定する、処理装置。
【請求項4】
請求項2に記載の処理装置であって、
前記制御部は、
前記複数の第1推定姿勢に基づいて、前記物体の前記第1画像に写る姿勢を、前記物体を保持する保持機構の座標系で示す複数の第1変換推定姿勢を取得し、
前記複数の第2推定姿勢に基づいて、前記物体の前記第2画像に写る姿勢を前記保持機構の前記座標系で示す複数の第2変換推定姿勢を取得し、
前記複数の第1変換推定姿勢と前記複数の第2変換推定姿勢とに基づいて前記対象面を特定する、処理装置。
【請求項5】
請求項1に記載の処理装置であって、
前記第2姿勢は、前記物体の姿勢が前記第1姿勢とは異なるように前記物体が前記撮像装置に対して相対的に回転した姿勢であり、
前記制御部は、
前記第1画像に基づいて、前記複数の面のそれぞれが前記対象面であるとした場合の前記物体の姿勢を推定した複数の第1推定姿勢を取得し、
前記複数の第1推定姿勢が回転した複数の第1回転推定姿勢を取得し、
前記複数の第1回転推定姿勢と前記第2画像との類似度に基づいて、前記対象面を特定する、処理装置。
【請求項6】
請求項5に記載の処理装置であって
前記制御部は、
前記物体の姿勢がそれぞれ対応付けられた複数のテンプレートと画像とを比較するテンプレートマッチングを実行可能であり、
前記複数の第1回転推定姿勢のそれぞれに対応する対応テンプレートを特定し、
前記対応テンプレートと前記第2画像とを比較するテンプレートマッチングを行い、当該テンプレートマッチングの結果に基づいて、前記対象面を特定する、処理装置。
【請求項7】
請求項1から請求項6のいずれか一つに記載の処理装置であって、
前記制御部は、前記物体を保持する保持機構の移動によって変更された前記第2姿勢の前記第2画像を取得する、処理装置。
【請求項8】
請求項1から請求項6のいずれか一つに記載の処理装置であって、
前記制御部は、前記撮像装置の移動によって変更された前記第2姿勢の前記第2画像を取得する、処理装置。
【請求項9】
請求項1から請求項6のいずれか一つに記載の処理装置であって、
前記制御部は、
前記第1画像に基づいて、前記複数の面のそれぞれが前記対象面であるとした場合の前記物体の姿勢を推定した複数の第1推定姿勢を取得し、
前記複数の第1推定姿勢のうち、特定した前記対象面に対応する第1推定姿勢を、前記第1画像が前記撮像装置で生成される場合の前記物体の姿勢の最終的な推定結果とする、処理装置。
【請求項10】
請求項2から請求項6のいずれか一つに記載の処理装置であって、
前記制御部は、前記複数の第2推定姿勢または前記複数の第1回転推定姿勢のうち、特定した前記対象面に対応する第2推定姿勢または第1回転推定姿勢を、前記第2画像が前記撮像装置で生成される場合の前記物体の姿勢の最終的な推定結果とする、処理装置。
【請求項11】
請求項1に記載の処理装置であって、
前記制御部は、
前記第2画像に基づいて、前記複数の面のそれぞれが前記対象面であるとした場合の前記物体の姿勢を推定した複数の第2推定姿勢を取得し、
前記複数の第2推定姿勢及び前記第1画像に基づいて前記対象面を特定する、
処理装置。
【請求項12】
請求項11に記載の処理装置であって、
前記第2姿勢は、前記物体の姿勢が前記第1姿勢とは異なるように前記物体が前記撮像装置に対して相対的に回転した姿勢であり、
前記制御部は、
前記複数の第2推定姿勢が回転した複数の第2回転推定姿勢を取得し、
前記複数の第2回転推定姿勢及び前記第1画像に基づいて前記対象面を特定する、
処理装置。
【請求項13】
請求項12に記載の処理装置であって、
前記制御部は、
前記第1画像に基づいて、前記複数の面のそれぞれが前記対象面であるとした場合の前記物体の姿勢を推定した複数の第1推定姿勢を取得し、
前記複数の第2回転推定姿勢及び前記複数の第1推定姿勢に基づいて前記対象面を特定する、処理装置。
【請求項14】
コンピュータ装置を、請求項1から請求項6及び請求項11から請求項13のいずれか一つに記載の処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、物体において撮像装置側を向く面を特定する技術に関する。
【背景技術】
【0002】
特許文献1には、吸着ノイズに吸着した部品の吸着姿勢が表裏反対であるか否かを判定する技術が記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
物体において撮像装置側を向く面を特定する技術については改善の余地がある。
【課題を解決するための手段】
【0005】
処理装置及びプログラムが開示される。一の実施の形態では、処理装置は、撮像装置から外観が互いに類似する複数の面を有する物体の第1姿勢の第1画像を取得し、複数の面のうち撮像装置側を向く対象面を特定する制御部を備える。制御部は、物体の姿勢が前記第1姿勢とは異なる第2姿勢の第2画像をさらに取得する。制御部は、第1画像及び第2画像に基づいて対象面を特定する。
【0006】
また、一の実施の形態では、プログラムは、コンピュータ装置に、上記の処理装置として機能させるためのプログラム。
【発明の効果】
【0007】
物体が有する、外観が互いに類似する複数の面において、撮像装置側を向く面を適切に特定することができる。
【図面の簡単な説明】
【0008】
【
図2】物体が撮像装置で撮像される様子の一例を示す概略図である。
【
図4】処理装置の動作の一例を示すフローチャートである。
【
図5】撮像装置から見た物体の様子の一例を示す概略図である。
【
図6】撮像装置から見た物体の様子の一例を示す概略図である。
【
図7】撮像装置から見た物体の様子の一例を示す概略図である。
【
図8】撮像装置から見た物体の様子の一例を示す概略図である。
【
図10】物体の回転動作の一例を示す概略図である。
【
図11】処理装置の動作の一例を示すフローチャートである。
【
図12】ロボットに保持された物体が撮像装置で撮像される様子の一例を示す概略図である。
【
図13】処理装置の動作の一例を示すフローチャートである。
【
図14】処理装置の動作の一例を示すフローチャートである。
【
図15】処理装置の動作の一例を示すフローチャートである。
【
図16】処理装置の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【0009】
図1は処理装置1の構成の一例を示す概略図である。処理装置1は、物体10を撮像する撮像装置8で生成される画像に基づいて、物体10において撮像装置8側を向く面を特定することが可能である。
図2は、物体10が撮像装置8で撮像される様子の一例を示す概略図である。
【0010】
図2に示されるように、撮像装置8は、例えば、ロボット9で保持されている物体10を撮像する。撮像装置8はカメラとも呼ばれる。撮像装置8は、例えば、2次元のカラー画像を生成することが可能である。カラー画像は例えばRGB画像とも呼ばれる。以後、撮像装置8で生成される画像を単に撮像画像と呼ぶことがある。
【0011】
ロボット9は、例えば、アーム90と、アーム90に接続されたエンドエフェクタ91とを備える。アーム90は複数の関節を備える。複数の関節の少なくとも一つの回転量が変化することによって、アーム90の姿勢が変化する。そして、アーム90の姿勢が変化することによって、エンドエフェクタ91の位置及び姿勢が変化する。
【0012】
エンドエフェクタ91は、物体10を保持することが可能である。エンドエフェクタ91は、物体10を保持する保持機構であるといえる。エンドエフェクタ91で保持された物体10の位置及び姿勢は、エンドエフェクタ91の位置及び姿勢の変化に応じて変化する。物体10の位置及び姿勢は、アーム90の動きに応じて変化するともいえる。エンドエフェクタ91は、例えば、物体10を吸着して保持してもよいし、物体10を複数の指で把持して保持してもよい。
【0013】
物体10は、例えば、容器内に配置される。ロボット9は、エンドエフェクタ91で容器内の物体10を保持し、アーム90を動かして、保持した物体10を撮像装置8の前まで運ぶ。つまり、ロボット9は、アーム90の姿勢を変化させて、保持した物体10が撮像装置8で撮像される位置まで物体10を運ぶ。このとき、ロボット9は、例えば、物体10の外表面において、エンドエフェクタ91で保持した面とは反対側の面が撮像装置8側を向くように物体10を配置する。処理装置1は、物体10が写る撮像画像に基づいて、物体10の外表面において撮像装置8側を向く面を特定する。物体10の外表面において撮像装置8側を向く面が特定されることによって、ロボット9での物体10の保持姿勢が特定される。本例では、物体10の外表面において、エンドエフェクタ91が保持した面とは反対側の面が撮像装置8側を向いていることから、物体10の外表面において撮像装置8側を向く面が特定されることによって、ロボット9が物体10のどの面を保持しているかが特定される。つまり、処理装置1は、物体10の外表面において撮像装置8側を向く面を特定し、特定した面とは反対側の面をロボット9が保持していると判定することができる。
【0014】
処理装置1は、例えば、ロボット9を制御することが可能である。処理装置1は、ロボット9での物体10の保持姿勢に応じて、ロボット9の動作を制御してもよい。例えば、処理装置1は、エンドエフェクタ91が物体10のある面を保持しているときには、ロボット9に物体10をある場所まで移動させ、エンドエフェクタ91が物体10の別の面を保持しているときには、ロボット9に物体10を別の場所まで移動させる。なお、ロボット9の動作例はこの限りではない。また、物体10はロボット9以外で保持されてよい。
【0015】
図3は物体10の一例を示す概略図である。物体10は、例えば、くの字に曲がる板状部材である。物体10は、例えば、互いに対向する第1主面101及び第2主面102を有する。第1主面101及び第2主面102の外形は、例えば、高さが下底よりも大きいやや細長い台形を成している。第1主面101は、その長手方向(言い換えれば、第1主面101の外形が構成する台形の高さ方向)の中央部において外側に突き出るようにくの字に曲がっている。第2主面102は、その長手方向の中央部において内側に凹むようにくの字に曲がっている。
【0016】
図3の一番左には、物体10を第1主面101側から見た様子の一例が示されている。
図3の左から三番目には、物体10を第2主面102側から見た様子の一例が示されている。
図3の左から二番目には、一番左に示される物体10を図の右側から見た様子の一例が示されている。
図3の一番右には、左から三番目に示される物体10を図の右側から見た様子の一例が示されている。以後、物体10の形状を説明する場合に、物体10の上、下、右及び左と言えば、物体10を
図3の一番左に示される状態で見た場合の上、下、右及び左をそれぞれ意味する。また、第1主面101をおもて面101と呼び、第2主面102を裏面102と呼ぶことがある。おもて面101は表側面101ともいえる。
【0017】
物体10は、おもて面101及び裏面102以外にも、右面103、左面104、上面105及び下面106を備える。右面103、左面104、上面105及び下面106は、それぞれ、右端面103、左端面104、上端面105及び下端面106ともいえる。物体10は、左右対称で厚さが小さい形状を成している。以後、右面103及び左面104を特に区別する必要が無い場合には、それぞれを側面と呼ぶことがある。右面103は右側の側面103ともいえ、左面104は左側の側面104ともいえる。
【0018】
ロボット9は、容器内の物体10を保持する場合、例えば、おもて面101及び裏面102のどちらか一方を保持する。例えば、容器内において、物体10のおもて面101が容器の開口側(上側)を向くように物体10が配置されている場合、ロボット9は物体10のおもて面101を保持する。一方で、容器内において、物体10の裏面102が容器の開口側を向くように物体10が配置されている場合、ロボット9は物体10の裏面102を保持する。ロボット9は、容器内の物体10を保持するとき、物体10のおもて面101及び裏面102のどちらが容器の開口側を向いているのか認識していない。したがって、ロボット9は、物体10を保持したとき、おもて面101及び裏面102のどちらの面を保持しているのか認識していない。
【0019】
物体10は、外観が互いに類似する複数の面を有する。当該複数の面は、物体10の姿勢を変えずに当該複数の面を見たとき、互いに外観が類似する面を有している。物体10が有する、外観が互いに類似する複数の面のそれぞれは、例えば、ロボット9で保持される可能性がある。処理装置1は、物体10が写る撮像画像に基づいて、物体10が有する、外観が互いに類似する複数の面のうち、撮像装置8側を向く面(対象面ともいう)を特定する。なお、例えば、撮像装置8で物体を撮影した際、物体の姿勢が一意に定まらない場合、その物体は外観が互いに類似する複数の面を有している物体10であるとしてよい。
【0020】
本例では、物体10のおもて面101及び裏面102が互いに類似する。同じ姿勢の物体10を、おもて面101側から見た様子と裏面102側から見た様子とは互いに類似している。言い換えれば、同じ姿勢の物体10を、おもて面101側から見た場合の物体10の外観と、裏面102側から見た場合の物体10の外観とは互いに類似している。処理装置1は、物体10が写る撮像画像に基づいて、おもて面101及び裏面102において撮像装置8側を向く対象面を特定する。
【0021】
なお、物体10の形状は
図3の例に限られない。例えば、物体10は、外観が互いに類似する3つ以上の面を有してもよい。
【0022】
以後、物体10が有する、外観が互いに類似する複数の面を複数の特定面と呼ぶことがある。処理装置1は、複数の特定面のうち撮像装置8側を向く特定面を特定するともいえる。物体10を各特定面から見た様子は互いに類似している。
【0023】
ロボット9は、物体10を保持すると、保持した面とは反対側の面が撮像装置8側を向くように物体10を配置する。したがって、物体10のおもて面101がロボット9で保持される場合、物体10は、裏面102が撮像装置8側に向くように配置される。物体10の裏面102が撮像装置8側に向いている状態は、撮像装置8が裏面102側に位置している状態と見ることができる。物体10の裏面102が撮像装置8側に向いているとき、撮像装置8は物体10を裏面102側から撮像する。一方で、
図2に示されるように、物体10の裏面102がロボット9で保持される場合、物体10は、おもて面101が撮像装置8側に向くように配置される。物体10のおもて面101が撮像装置8側に向いている状態は、撮像装置8がおもて面101側に位置している状態と見ることができる。物体10のおもて面101が撮像装置8側に向いているとき、撮像装置8は物体10をおもて面101側から撮像する。
【0024】
物体10のおもて面101がロボット9で保持される場合、処理装置1では、裏面102が撮像装置8側を向く面として、つまり対象面として特定される。一方で、物体10の裏面102がロボット9で保持される場合、処理装置1では、おもて面101が撮像装置8側を向く面として、つまり対象面として特定される。
【0025】
処理装置1は、例えばコンピュータ装置の一種である。処理装置1は、例えば、撮像画像に基づいて物体10の対象面を特定するだけではなく、ロボット9を制御することが可能である。処理装置1は、ロボット9を制御するロボット制御装置としても機能する。なお、処理装置1とは別に、ロボット9を制御するロボット制御装置が設けられてもよい。
【0026】
図1に示されるように、処理装置1は、例えば、制御部2と、記憶部3と、インタフェース4と、インタフェース5とを備える。処理装置1は、例えば処理回路ともいえる。
【0027】
インタフェース4は、撮像装置8と通信することが可能である。制御部2は、インタフェース4を通じて撮像装置8で生成される画像を取得することができる。インタフェース4は、例えば、インタフェース回路、通信部あるいは通信回路ともいえる。インタフェース4は、撮像装置8と有線通信を行ってもよいし、無線通信を行ってもよい。
【0028】
インタフェース5は、ロボット9と通信することが可能である。制御部2は、インタフェース5を通じてロボット9を制御することが可能である。インタフェース5は、例えば、インタフェース回路、通信部あるいは通信回路ともいえる。インタフェース5は、ロボット9と有線通信を行ってもよいし、無線通信を行ってもよい。
【0029】
制御部2は、処理装置1の他の構成要素を制御することによって、処理装置1の動作を統括的に管理することが可能である。制御部2は、例えば制御回路ともいえる。制御部2は、以下にさらに詳細に述べられるように、種々の機能を実行するための制御及び処理能力を提供するために、少なくとも1つのプロセッサを含む。
【0030】
種々の実施形態によれば、少なくとも1つのプロセッサは、単一の集積回路(IC)として、または複数の通信可能に接続された集積回路IC及び/またはディスクリート回路(discrete circuits)として実行されてもよい。少なくとも1つのプロセッサは、種々の既知の技術に従って実行されることが可能である。
【0031】
1つの実施形態において、プロセッサは、例えば、関連するメモリに記憶された指示を実行することによって1以上のデータ計算手続または処理を実行するように構成された1以上の回路またはユニットを含む。他の実施形態において、プロセッサは、1以上のデータ計算手続きまたは処理を実行するように構成されたファームウェア(例えば、ディスクリートロジックコンポーネント)であってもよい。
【0032】
種々の実施形態によれば、プロセッサは、1以上のプロセッサ、コントローラ、マイクロプロセッサ、マイクロコントローラ、特定用途向け集積回路(ASIC)、デジタル信号処理装置、プログラマブルロジックデバイス、フィールドプログラマブルゲートアレイ、またはこれらのデバイス若しくは構成の任意の組み合わせ、または他の既知のデバイス及び構成の組み合わせを含み、以下に説明される機能を実行してもよい。
【0033】
制御部2は、例えば、プロセッサとしてのCPU(Central Processing Unit)を備えてもよい。記憶部3は、ROM(Read Only Memory)及びRAM(Random Access Memory)などの、制御部2のCPUが読み取り可能な非一時的な記録媒体を含んでもよい。記憶部3には、例えば、処理装置1を制御するためのプログラム30が記憶されている。制御部2の各種機能は、例えば、制御部2のCPUが記憶部3内のプログラム30を実行することによって実現される。
【0034】
なお、制御部2の構成は上記の例に限られない。例えば、制御部2は、複数のCPUを備えてもよい。また制御部2は、少なくとも一つのDSP(Digital Signal Processor)を備えてもよい。また、制御部2の全ての機能あるいは制御部2の一部の機能は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてもよい。また、記憶部3は、ROM及びRAM以外の、コンピュータが読み取り可能な非一時的な記録媒体を備えてもよい。記憶部3は、例えば、小型のハードディスクドライブ及びSSD(Solid State Drive)などを備えてもよい。
【0035】
制御部2は、撮像画像に基づいて物体10の対象面(つまり、撮像装置8側を向く面)を特定する対象面特定処理を行うことが可能である。制御部2は、例えば、推定部20及び特定部21を備える。推定部20及び特定部21は、例えば、制御部2のCPUが記憶部3内のプログラム30を実行することによって、制御部2に形成される機能ブロックである。なお、推定部20の全ての機能あるいは特定部21の一部の機能は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてもよい。特定部21についても同様である。
【0036】
推定部20は、撮像画像に基づいて物体10の姿勢を推定する。特定部21は、物体10が有する、外観が類似した複数の面(つまり、複数の特定面)において撮像装置8側を向く面(つまり、対象面)を特定する。本例では、特定部21は、互いに外観が類似するおもて面101及び裏面102において撮像装置8側を向く面を特定する。以後、物体10のおもて面101が撮像装置8側を向いている状態を表向きと呼び、物体10の裏面102が撮像装置8側を向いている状態を裏向きと呼ぶことがある。特定部21は、物体10が表向きか裏向きかを判定するともいえる。物体10が表向きであることは、撮像装置8が物体10をおもて面101側から撮像する状態であるともいえる。また、物体10が裏向きであることは、撮像装置8が物体10を裏面102側から撮像する状態であるともいえる。
【0037】
<対象面特定処理の一例>
本例では、物体10のおもて面101と裏面102とは互いに外観が類似している。そのため、物体10が写る1枚の撮影画像だけでは、制御部2は、物体10が表向きなのか裏向きなのかを判断することが難しい。
【0038】
例えば、撮影画像に、物体10の外表面のうちおもて面101だけが写っている場合を考える。この場合、制御部2は、撮影画像に対して画像処理を行って、撮影画像におもて面101が写っていることが特定できれば、物体10が表向きであることを特定することができる。しかしながら、おもて面101と裏面102とは互いに外観が類似することから、制御部2は、撮影画像に写る面がおもて面101なのか裏面102なのかを特定することができないことがある。そのため、制御部2は、物体10が表向きであることを特定することができないことがある。
【0039】
そこで、本例の対象面特定処理では、一枚の撮影画像だけが使用されて物体10の対象面が特定されるのではなく、それに写る物体10の姿勢が互いに異なる2枚の撮影画像(第1画像及び第2画像)に基づいて物体10の対象面が特定される。これにより、対象面の特定精度を向上させることができる。
【0040】
図4は制御部2が実行する対象面特定処理の一例を示すフローチャートである。
図4に示されるように、ステップs1において、制御部2は、物体10を保持するロボット9を制御して、ロボット9に物体10を撮像装置8の前まで運ばせる。このとき、ロボット9は、制御部2による制御により、例えば、物体10の外表面において、保持する面とは反対側の面だけが撮像装置8で撮像されるように物体10を撮像装置8の前に配置する。例えば、ロボット9が裏面102を保持する場合、物体10は、おもて面101だけが撮像装置8で撮像されるように配置される。この場合、撮像画像には、物体10が
図3の一番左側のように写る。つまり、撮像装置8から物体10を見た場合には、物体10は
図3の一番左側のように見える。一方で、ロボット9がおもて面101を保持する場合、物体10は、裏面102だけが撮像装置8で撮像されるように配置される。この場合、撮像画像には、物体10が
図3の左から三番目のように写る。つまり、撮像装置8から物体10を見た場合には、物体10は
図3の左から三番目のように見える。
【0041】
次にステップs2において、制御部2は、撮像装置8に物体10を撮像させる。ステップs2で物体10が撮像される場合において撮像装置8から見た物体10の姿勢を第1姿勢と呼ぶ。第1姿勢は、物体10の外表面においてロボット9が保持する面とは反対側の面だけが撮像装置8で撮像されるように配置された物体10を撮像装置8から見た場合の物体10の姿勢であるといえる。ステップs2の実行により、撮像装置8は、第1姿勢の物体10を撮像する。撮像装置8は、第1姿勢の物体10が写る撮像画像(第1撮像画像ともいう)を生成して制御部2に出力する。ロボット9が物体10の裏面102を保持する場合、第1撮像画像には、表向きの物体10が写っており、詳細には、物体10の外表面のうちおもて面101だけが写っている。一方で、ロボット9が物体10のおもて面101を保持する場合、第1撮像画像には、裏向きの物体10が写っており、詳細には、物体10の外表面のうち裏面102だけが写っている。
【0042】
推定部20は、複数の特定面にそれぞれ対応する、撮像画像に基づいて物体10の姿勢を推定する複数種類の姿勢推定処理であって、対応する特定面が撮像装置8側を向く場合に適した複数種類の姿勢推定処理を実行することが可能である。ステップs2の後、ステップs3において、推定部20は、第1撮像画像に基づく複数種類の姿勢推定処理を実行する。以後、第1撮像画像に基づく複数種類の姿勢推定処理でそれぞれ推定された複数の推定姿勢のそれぞれを第1推定姿勢と呼ぶ。
【0043】
本例では、推定部20は、おもて面101に対応し、おもて面101が撮像装置8側を向く場合に適した姿勢推定処理(表用姿勢推定処理ともいう)を実行することが可能である。また、推定部20は、裏面102に対応し、裏面102が撮像装置8側を向く場合に適した姿勢推定処理(裏用姿勢推定処理ともいう)を実行することが可能である。物体10のおもて面101が撮像装置8側を向く場合、言い換えれば、撮像装置8が物体10をおもて面101側から撮像する場合、表用姿勢推定処理が実行されることによって、物体10の姿勢を適切に推定できる可能性が高くなる。一方で、物体10の裏面102が撮像装置8側を向く場合、言い換えれば、撮像装置8が物体10を裏面102側から撮像する場合、裏用姿勢推定処理が実行されることによって、物体10の姿勢を適切に推定できる可能性が高くなる。物体10が表向きの場合には、裏用姿勢推定処理が実行されるときよりも、表用姿勢推定処理が実行されるときの方が、物体10の姿勢推定精度が向上する。そして、物体10が裏向きの場合には、表用姿勢推定処理が実行されるときよりも、裏用姿勢推定処理が実行されるときの方が、物体10の姿勢推定精度が向上する。以後、表用姿勢推定処理を簡略化して表用処理と呼び、裏用姿勢推定処理を簡略化して裏用処理と呼ぶことがある。
【0044】
姿勢推定処理では、例えば、物体10の姿勢がそれぞれ対応付けられた複数のテンプレートと撮像画像とが比較されるテンプレートマッチングが行われる。テンプレートは、テンプレート画像とも呼ばれ、撮像装置8で事前に生成された撮像画像である。記憶部3には、表用処理で使用される複数の表用テンプレートと、裏用処理で使用される複数の裏用テンプレートとが記憶されている。
【0045】
複数の表用テンプレートは、撮像装置8が物体10をおもて面101側から様々な角度で撮像することによって得られた多数の撮像画像で構成される。複数の裏用テンプレートは、撮像装置8が物体10を裏面102側から様々な角度で撮像することによって得られた多数の撮像画像で構成される。
【0046】
各テンプレートに対しては、当該テンプレートが撮像装置8で生成されるときの物体10の姿勢が対応付けられている。つまり、各テンプレートに対しては、当該テンプレートに写る物体10の姿勢が対応付けられている。テンプレートに対応付けられる姿勢は、例えば、撮像装置8の座標系(撮像装置座標系ともいう)で表されている。撮像装置座標系は、撮像装置8に設定された三次元直交座標系である。すなわち、撮像装置座標系は、撮像装置8から見たときの現実空間を座標空間として表現した座標系である。
【0047】
推定部20は、姿勢推定処理において、撮像画像とテンプレートとを比較する場合、撮像画像及びテンプレートに対して、二値化処理等を含む画像処理を行って、撮像画像に写る物体10の輪郭を第1輪郭として抽出し、テンプレートに写る物体10の輪郭を第2輪郭として抽出する。物体10の輪郭は外界輪郭とも呼ばれる。そして、推定部20は、第1輪郭と第2輪郭とを比較して、両者の類似度を算出する。この類似度は、撮像画像とテンプレートとの類似度を表している。撮像画像とテンプレートとの類似度は、マッチングのスコアとも呼ばれる。以後、撮像画像とテンプレートとの類似度をマッチングスコアと呼ぶことがある。
【0048】
推定部20は、表用姿勢推定処理において、撮像画像と複数の表用テンプレートとを比較する場合、複数の表用テンプレートのそれぞれについての撮像画像とのマッチングスコアを上述のようにして求める。そして、推定部20は、複数の表用テンプレートのうち、撮像画像とのマッチングスコアが最も高い表用テンプレートに対応付けられている姿勢を、撮像画像に写る物体10の推定姿勢とする。同様に、推定部20は、裏用姿勢推定処理において、撮像画像と複数の裏用テンプレートとを比較する場合、複数の裏用テンプレートのそれぞれについての撮像画像とのマッチングスコアを求める。そして、推定部20は、複数の裏用テンプレートのうち、撮像画像とのマッチングスコアが最も高い裏用テンプレートに対応付けられている姿勢を、撮像画像に写る物体10の推定姿勢とする。
【0049】
ステップs3において、推定部20は、ステップs2で得られた第1撮像画像に基づく表用姿勢推定処理及び裏用姿勢推定処理を行う。第1撮像画像に基づく表用姿勢推定処理において、推定部20は、複数の表用テンプレートのそれぞれについての第1撮像画像とのマッチングスコアを求める。そして、推定部20は、複数の表用テンプレートのうち、第1撮像画像とのマッチングスコアが最も高い表用テンプレートに対応付けられている姿勢を、第1撮像画像に写る物体10の第1推定姿勢とする。この第1推定姿勢を、表用処理使用時の第1推定姿勢と呼ぶ。
【0050】
同様に、第1撮像画像に基づく裏用姿勢推定処理において、推定部20は、複数の裏用テンプレートのそれぞれについての第1撮像画像とのマッチングスコアを求める。そして、推定部20は、複数の裏用テンプレートのうち、第1撮像画像とのマッチングスコアが最も高い裏用テンプレートに対応付けられている姿勢を、第1撮像画像に写る物体10の第1推定姿勢とする。この第1推定姿勢を、裏用処理使用時の第1推定姿勢と呼ぶ。第1推定姿勢は撮像装置座標系で表される。
【0051】
ステップs3が実行される段階では、制御部2は、おもて面101及び裏面102のうちどのらの面が撮像装置8側を向いているか把握していない。つまり、制御部2は、物体10が表向きであるのか裏向きであるのかを把握していない。上述のように、推定部20が表用姿勢推定処理を実行することは、推定部20が、物体10のおもて面101が撮像装置8側を向いていると仮定して(言い換えれば、物体10が表向きであると仮定して)、物体10の姿勢を推定していると見ることもできる。また、推定部20が裏用姿勢推定処理を実行することは、推定部20が、物体10の裏面102が撮像装置8側を向いていると仮定して(言い換えれば、物体10が裏向きであると仮定して)、物体10の姿勢を推定していると見ることもできる。
【0052】
例えば、物体10が表向きであって、物体10の外表面のうちおもて面101だけが第1撮像画像に写っている場合を考える。この場合、表用処理使用時の第1推定姿勢は、撮像装置8から見た物体10の実際の姿勢(つまり第1姿勢)に近い姿勢となる。一方で、裏用処理使用時の第1推定姿勢は、撮像装置8から見た物体10の実際の姿勢とは大きく異なる姿勢となる。本例では、おもて面101と裏面102とが互いに外観が類似していることから、裏用処理使用時の第1推定姿勢は、物体10の外表面のうち裏面102だけが第1撮像画像に写る場合に裏用処理を行うことで得られる第1推定姿勢と同じとなる。裏用処理使用時の第1推定姿勢は、裏面102だけが撮像装置8で撮像されるように配置された物体10を撮像装置8から見た場合の物体10の姿勢に近い姿勢となる。
【0053】
また、物体10が裏向きであって、物体10の外表面のうち裏面102だけが第1撮像画像に写っている場合を考える。この場合、裏用処理使用時の第1推定姿勢は、撮像装置8から見た物体10の実際の姿勢に近い姿勢となる。一方で、表用処理使用時の第1推定姿勢は、撮像装置8から見た物体10の実際の姿勢とは大きく異なる姿勢となる。表用処理使用時の第1推定姿勢は、物体10の外表面のうちおもて面101だけが第1撮像画像に写る場合に表用処理を行うことで得られる第1推定姿勢と同じとなる。表用処理使用時の第1推定姿勢は、おもて面101だけが撮像装置8で撮像されるように配置された物体10を撮像装置8から見た場合の物体10の姿勢に近い姿勢となる。
【0054】
ステップs3において、表用処理使用時の第1推定姿勢と、裏用処理使用時の第1推定姿勢とが求められると、ステップs4において、制御部2は、ロボット9に物体10を回転させる。ステップs4において、ロボット9は、アーム90を動かして、所定の回転軸J(
図2参照)の回りに所定角度Wだけ物体10を回転させる。物体10はエンドエフェクタ91とともに回転する。つまり、物体10とエンドエフェクタ91とは一体となって回転する。ロボット9では、アーム90の動きによって、物体10を保持するエンドエフェクタ91が回転軸Jの回りに角度Wだけ回転することによって、物体10が回転軸Jの回りに角度Wだけ回転する。物体10が回転軸Jの回りに角度Wだけ回転した後の撮像装置8から見た物体10の姿勢を第2姿勢と呼ぶ。その後、ステップs5において、制御部2は、第2姿勢の物体10を撮像装置8に撮像させる。ステップs5において撮像装置8で生成された撮像画像を第2撮像画像と呼ぶ。第2撮像画像には、第1姿勢から回転した第2姿勢の物体10が写る。
【0055】
なお、本開示において、物体10と撮像装置8は、相対的に回転していればよく、後述するように撮像装置8が回転してもよいし、物体10及び撮像装置8の双方が回転してもよい。また、複数の撮像装置8を準備して、複数の撮像装置8と物体10を仮想直線で結んだときの角度が所定角度Wになるように複数の撮像装置8を配置して、第1撮像装置8にて第1撮像画像を取得し、第2撮像装置8にて第2撮像画像を取得してもよい。
【0056】
図5及び6は、物体10が回転軸Jの回りに角度Wだけ回転する様子の一例を示す概略図である。
図5の左側には、表向きの第1姿勢の物体10を撮像装置8から見た様子が示されている。
図5の右側には、表向きの第2姿勢の物体10を撮像装置8から見た様子が示されている。つまり、
図5の右側には、表向きの第1姿勢の物体10が、回転軸Jの回りに所定角度Wだけ回転した後に当該物体10を撮像装置8から見た様子の一例が示されている。
図6の左側には、裏向きの第1姿勢の物体10を撮像装置8から見た様子が示されている。
図6の右側には、裏向きの第2姿勢の物体10を撮像装置8から見た様子が示されている。つまり、
図6の右側には、裏向きの第1姿勢の物体10が、回転軸Jの回りに所定角度Wだけ回転した後に当該物体10を撮像装置8から見た様子の一例が示されている。撮像装置8から見た物体10の様子は、物体10が写る撮像画像内での物体10の様子であるともいえる。
【0057】
回転軸Jは、例えば、物体10を通るように設定される。また、回転軸Jは、例えば、第1姿勢の物体10及び回転軸Jを撮像装置8から見た場合に物体10の上下方向に沿った方向に設定される。また、回転軸Jは、第1姿勢の物体10及び回転軸Jを撮像装置8から見た場合に物体10の左右方向の中心を通るように設定される。回転軸Jは、例えば、撮像装置8の光軸80(
図2参照)に垂直な方向、あるいは光軸80に略垂直な方向に設定される。制御部2は、第1撮像画像に基づいて回転軸Jを設定する。また、各特定面が撮像装置8を向いていると仮定して、回転軸Jの回りに物体10を回転させたときに、回転の後の物体10の外観が各特定面でできるだけ互いに異なるように回転軸Jが事前に設定されてもよい。以後、単に物体10の回転といえば、物体10の回転軸Jの回りの回転を意味する。
【0058】
角度Wは、ある面(おもて面101あるいは裏面102)が撮像装置8側を向いている第1姿勢の物体10が当該角度Wだけ回転した場合に、物体10の外側表面のうち、当該ある面と、当該ある面に繋がる側面(右面103あるいは左面104)とだけが撮像装置8で撮像されるような値に設定される。つまり、角度Wは、ある面が撮像装置8側を向いている第1姿勢の物体10が当該角度Wだけ回転した場合に、当該ある面が撮像装置8側を向きつつ、当該ある面に繋がる側面が撮像装置8で撮像されるような値に設定される。
【0059】
本開示では、回転軸Jを物体10の上側から見た場合の回転軸Jの時計回りの回転角度を+(プラス)で表す。また、回転軸Jを物体10の上側から見た場合の回転軸Jの反時計回りの回転角度を-(マイナス)で表す。ステップs4において、ロボット9は、例えば、回転軸Jの回りに角度+Wだけ物体10を回転させて、物体10の姿勢を第1姿勢から第2姿勢に変化させる。なお、回転軸Jを物体10の上側から見た場合の回転軸Jの時計回りの回転角度を-(マイナス)で表し、回転軸Jを物体10の上側から見た場合の回転軸Jの反時計回りの回転角度を+(プラス)で表してもよい。
【0060】
表向きの第1姿勢の物体10が角度+Wだけ回転した場合には、
図5に示されるように、撮像装置8からは、物体10の外側表面のうち、おもて面101及び右面103(言い換えれば、右側の側面103)だけが見える。よって、ステップs5において、表向きの第2姿勢の物体10が撮像装置8で撮像されたとき、第2撮像画像には、物体10の外側表面のうち、おもて面101及び右面103だけが写る。
【0061】
裏向きの第1姿勢の物体10が角度+Wだけ回転した場合には、
図6に示されるように、撮像装置8からは、物体10の外側表面のうち、裏面102及び左面104(言い換えれば、左側の側面104)だけが見える。よって、ステップs5において、裏向きの第2姿勢の物体10が撮像装置8で撮像されたとき、第2撮像画像には、物体10の外側表面のうち、裏面102及び左面104だけが写る。
【0062】
図5及び6に示されるように、撮像装置8から表向きの第1姿勢の物体10を見た様子と、撮像装置8から裏向きの第1姿勢の物体10を見た様子とは、互いに類似している。つまり、第1撮像画像での表向きの第1姿勢の物体10の様子と、第1撮像画像での裏向きの第1姿勢の物体10の様子とは、互いに類似している。一方で、撮像装置8から表向きの第2姿勢の物体10を見た様子と、撮像装置8から裏向きの第2姿勢の物体10を見た様子とは、互いに大きく異なっている。つまり、第2撮像画像での表向きの第2姿勢の物体10の様子と、第2撮像画像での裏向きの第2姿勢の物体10の様子とは、互いに大きく異なっている。
【0063】
このように、第1撮像画像が生成される場合に撮像装置8側を向く特定面がどの面であっても、第1撮像画像に写る物体10の外観は同じような外観となる。そして、第1撮像画像が生成される場合に撮像装置8側を向く特定面に応じて、第2撮像画像に写る物体10の外観が大きく異なるようになる。例えば、第1撮像画像が生成される場合に撮像装置8側を向く特定面がおもて面101であっても裏面102であっても、第1撮像画像に写る物体10の外観は同じような外観となる(
図5の左側と
図6の左側)。そして、第1撮像画像が生成される場合に撮像装置8側を向く特定面がおもて面101のときに第2撮像画像に写る物体10の外観(
図5の右側)と、第1撮像画像が生成される場合に撮像装置8側を向く特定面が裏面102のときに第2撮像画像に写る物体10の外観(
図6の右側)とは互いに大きく相違する。
【0064】
ステップs5の後、ステップs6において、推定部20は、ステップs3と同様にして、第2撮像画像に基づく複数種類の姿勢推定処理を実行する。以後、第2撮像画像に基づく複数種類の姿勢推定処理でそれぞれ推定された複数の推定姿勢のそれぞれを第2推定姿勢と呼ぶ。
【0065】
本例では、ステップs6において、推定部20は、第2撮像画像に基づく表用姿勢推定処理及び裏用姿勢推定処理を行う。第2撮像画像に基づく表用姿勢推定処理において、推定部20は、複数の表用テンプレートのそれぞれについての第2撮像画像とのマッチングスコアを求める。そして、推定部20は、複数の表用テンプレートのうち、第2撮像画像とのマッチングスコアが最も高い表用テンプレートに対応付けられている姿勢を、第2撮像画像に写る物体10の第2推定姿勢とする。この第2推定姿勢を、表用処理使用時の第2推定姿勢と呼ぶ。
【0066】
同様に、第2撮像画像に基づく裏用姿勢推定処理において、推定部20は、複数の裏用テンプレートのそれぞれについての第2撮像画像とのマッチングスコアを求める。そして、推定部20は、複数の裏用テンプレートのうち、第2撮像画像とのマッチングスコアが最も高い裏用テンプレートに対応付けられている姿勢を、第2撮像画像に写る物体10の第2推定姿勢とする。この第2推定姿勢を、裏用処理使用時の第2推定姿勢と呼ぶ。第2推定姿勢は撮像装置座標系で表される。
【0067】
例えば、表向きの第2姿勢の物体10(
図5参照)が第2撮像画像に写っている場合を考える。この場合、表用処理使用時の第2推定姿勢は、撮像装置8から見た物体10の実際の姿勢(つまり表向きの第2姿勢)に近い姿勢となる。一方で、裏用処理使用時の第2推定姿勢は、撮像装置8から見た物体10の実際の姿勢とは大きく異なる姿勢となる。ここで、第1姿勢の物体10を回転軸Jの回りに角度-Wだけ回転させた後の物体10を撮像装置8から見た場合の物体10の姿勢を第3姿勢と呼ぶ。表向きの第3姿勢とは、表向きの第1姿勢の物体10を回転軸Jの回りに角度-Wだけ回転させた後の物体10を撮像装置8から見た場合の物体10の姿勢である。裏向きの第3姿勢とは、裏向きの第1姿勢の物体10を回転軸Jの回りに角度-Wだけ回転させた後の物体10を撮像装置8から見た場合の物体10の姿勢である。
図7は、表向きの第2姿勢の物体10を撮像装置8から見た様子(
図7の左側)と、裏向きの第3姿勢の物体10を撮像装置8から見た様子(
図7の右側)とを示す概略図である。
図7に示されるように、本例では、表向きの第2姿勢の物体10を撮像装置8から見た様子と、裏向きの第3姿勢の物体10を撮像装置8から見た様子とが、特に外界輪郭の点で互いに類似している。つまり、表向きの第2姿勢と裏向きの第3姿勢とは互いに様子が類似している。したがって、表向きの第2姿勢の様子を裏用姿勢推定処理が使用されて得られた裏用処理使用時の第2推定姿勢は、裏向きの第3姿勢に近い姿勢となる。
【0068】
また、裏向きの第2姿勢の物体10(
図6参照)が第2撮像画像に写っている場合を考える。この場合、裏用処理使用時の第2推定姿勢は、撮像装置8から見た物体10の実際の姿勢(つまり、裏向きの第2姿勢)に近い姿勢となる。一方で、表用処理使用時の第2推定姿勢は、撮像装置8から見た物体10の実際の姿勢とは大きく異なる姿勢となる。
図8は、表向きの第3姿勢の物体10を撮像装置8から見た様子(
図8の左側)と、裏向きの第2姿勢の物体10を撮像装置8から見た様子(
図8の右側)とを示す概略図である。
図9に示されるように、本例では、裏向きの第2姿勢の物体10を撮像装置8から見た様子と、表向きの第3姿勢の物体10を撮像装置8から見た様子とが、特に外界輪郭の点で互いに類似している。つまり、裏向きの第2姿勢と表向きの第3姿勢とは互いに類似している。したがって、裏向きの第2姿勢の様子を表用姿勢推定処理が使用されて得られた表用処理使用時の第2推定姿勢は、表向きの第3姿勢に近い姿勢となる。
【0069】
ステップs6において、表用処理使用時の第2推定姿勢と、裏用処理使用時の第2推定姿勢とが求められると、ステップs7において、特定部21は、物体10の姿勢が第1姿勢から第2姿勢に回転する場合と同様にステップs3で得られた複数の第1推定姿勢が回転した複数の第1回転推定姿勢を求める。本例では、特定部21は、表用処理使用時の第1推定姿勢が、物体10の姿勢が第1姿勢から第2姿勢に回転する場合と同様に回転した第1回転推定姿勢(表用処理使用時の第1回転推定姿勢ともいう)を求める。また特定部21は、裏用処理使用時の第1推定姿勢が、物体10の姿勢が第1姿勢から第2姿勢に回転する場合と同様に回転した第1回転推定姿勢(裏用処理使用時の第1回転推定姿勢ともいう)とを求める。特定部21は、撮像装置座標系において、表用処理使用時の第1推定姿勢を、回転軸Jの回りに角度+Wだけ回転させて得られる姿勢を、表用処理使用時の第1回転推定姿勢とする。また、特定部21は、撮像装置座標系において、裏用処理使用時の第1推定姿勢を、回転軸Jの回りに角度+Wだけ回転させて得られる姿勢を、裏用処理使用時の第1回転推定姿勢とする。
【0070】
例えば、表向きの第1姿勢の物体10が第1撮像画像に写っている場合を考える。この場合、上述のように、表用処理使用時の第1推定姿勢は、表向きの第1姿勢に近い姿勢となる。したがって、物体10の姿勢が第1姿勢から第2姿勢に回転する場合と同様に表用処理使用時の第1推定姿勢が回転した第1回転推定姿勢、つまり、表用処理使用時の第1回転推定姿勢は、表向きの第2姿勢に近い姿勢となる。そして、上述のように、表用処理使用時の第2推定姿勢は、表向きの第2姿勢に近い姿勢となることから、表用処理使用時の第1回転推定姿勢は、表用処理使用時の第2推定姿勢に近い姿勢となる。一方で、裏用処理使用時の第1推定姿勢は、裏向きの第1姿勢に近い姿勢となる。したがって、物体10の姿勢が第1姿勢から第2姿勢に回転する場合と同様に裏用処理使用時の第1推定姿勢が回転した第1回転推定姿勢、つまり、裏用処理使用時の第1回転推定姿勢は、裏向きの第2姿勢(
図6の右側)に近い姿勢となる。そして、裏用処理使用時の第2推定姿勢は、裏向きの第3姿勢(
図7の右側)に近い姿勢となることから、裏用処理使用時の第1回転推定姿勢は、裏用処理使用時の第2推定姿勢と大きく異なる姿勢となる。
【0071】
また、裏向きの第1姿勢の物体10が第1撮像画像に写っている場合を考える。この場合、上述のように、裏用処理使用時の第1推定姿勢は、裏向きの第1姿勢に近い姿勢となる。したがって、物体10の姿勢が第1姿勢から第2姿勢に回転する場合と同様に裏用処理使用時の第1推定姿勢が回転した第1回転推定姿勢、つまり、裏用処理使用時の第1回転推定姿勢は、裏向きの第2姿勢に近い姿勢となる。そして、裏用処理使用時の第2推定姿勢は、裏向きの第2姿勢に近い姿勢となることから、裏用処理使用時の第1回転推定姿勢は、裏用処理使用時の第2推定姿勢に近い姿勢となる。一方で、表用処理使用時の第1推定姿勢は、表向きの第1姿勢に近い姿勢となることから、物体10の姿勢が第1姿勢から第2姿勢に回転する場合と同様に表用処理使用時の第1推定姿勢が回転した第1回転推定姿勢、つまり、表用処理使用時の第1回転推定姿勢は、表向きの第2姿勢(
図5の右側)に近い姿勢となる。そして、表用処理使用時の第2推定姿勢は、表向きの第3姿勢(
図8の左側)に近い姿勢となることから、表用処理使用時の第1回転推定姿勢は、表用処理使用時の第2推定姿勢と大きく異なる姿勢となる。
【0072】
このように、表向きの第1姿勢の物体10が写る第1撮像画像が生成される場合、表用処理使用時の第1回転推定姿勢は、表用処理使用時の第2推定姿勢に近い姿勢となる。一方で、裏用処理使用時の第1回転推定姿勢は、裏用処理使用時の第2推定姿勢と大きく異なる姿勢となる。
【0073】
また、裏向きの第1姿勢の物体10が写る第1撮像画像が生成される場合、裏用処理使用時の第1回転推定姿勢は、裏用処理使用時の第2推定姿勢に近い姿勢となる。一方で、表用処理使用時の第1回転推定姿勢は、表用処理使用時の第2推定姿勢と大きく異なる姿勢となる。
【0074】
ステップs7の後、ステップs8において、特定部21は、ステップs7で得られた複数の第1回転推定姿勢と、ステップs6で得られた複数の第2推定姿勢とを、対応する特定面ごとに比較する第1比較処理を行う。本例では、特定部21は、表用処理使用時の第1回転推定姿勢及び裏用処理使用時の第1回転推定姿勢と、表用処理使用時の第2推定姿勢及び裏用処理使用時の第2推定姿勢とを、対応する特定面ごとに比較する第1比較処理を行う。表用処理使用時の第1回転推定姿勢と、表用処理使用時の第2推定姿勢とは、おもて面101に対応することから、第1比較処理では、表用処理使用時の第1回転推定姿勢と、表用処理使用時の第2推定姿勢とが比較される。裏用処理使用時の第1回転推定姿勢と、裏用処理使用時の第2推定姿勢とは、裏面102に対応することから、第1比較処理では、裏用処理使用時の第1回転推定姿勢と、裏用処理使用時の第2推定姿勢とが比較される。
【0075】
特定部21は、第1比較処理において、例えば、各第1回転推定姿勢について、当該第1回転推定姿勢と、当該第1回転推定姿勢が対応する特定面と同じ特定面に対応する第2推定姿勢との類似度を示す評価値(第1類似度評価値ともいう)を求める。これにより、第1比較処理の結果として、複数の特定面にそれぞれ対応する複数の第1類似度評価値が得られる。ある特定面に対応する第1回転推定姿勢と、当該ある特定面に対応する第2推定姿勢との類似度を示す第1類似度評価値は、当該ある特定面に対応する第1類似度評価値となる。
【0076】
本例では、特定部21は、第1比較処理において、表用処理使用時の第1回転推定姿勢と、表用処理使用時の第2推定姿勢との類似度を示す第1類似度評価値(表用処理使用時の第1類似度評価値ともいう)を求める。また、特定部21は、第1比較処理において、裏用処理使用時の第1回転推定姿勢と、裏用処理使用時の第2推定姿勢との類似度を示す第1類似度評価値(裏用処理使用時の第1類似度評価値ともいう)を求める。表用処理使用時の第1類似度評価値と裏用処理使用時の第1類似度評価値が、第1比較処理の結果となる。以下に、第1類似度評価値の算出方法の一例について説明する。
【0077】
例えば、撮像装置座標系での物体10の姿勢は、基準姿勢に対する回転(αn,βn,γn)で表される(nは変数)。αnは、撮像装置座標系のx軸回りの回転角度(ロール角ともいう)を意味する。βnは、撮像装置座標系のy軸回りの回転角度(ピッチ角ともいう)を意味する。γnは、撮像装置座標系のz軸回りの回転角度(ヨー角ともいう)を意味する。例えば、表用処理使用時の第1回転推定姿勢が回転(α11,β11,γ11)で表され、表用処理使用時の第2推定姿勢が回転(α12,β12,γ12)で表されているとする。また、例えば、裏用処理使用時の第1回転推定姿勢が回転(α21,β21,γ21)で表され、裏用処理使用時の第2推定姿勢が回転(α22,β22,γ22)で表されているとする。また、撮像装置座標系において、原点を始点とするベクトルが(x,y,z)で表されるとする。xは撮像装置座標系のx軸上の位置を示し、yは撮像装置座標系のy軸上の位置を示し、zは撮像装置座標系のz軸上の位置を示す。
【0078】
特定部21は、撮像装置座標系において、ベクトルT(0,0,1)を考える。特定部21は、表用処理使用時の第1類似度評価値を求める場合、ベクトルTを、まずα11だけx軸回りに回転し、次にβ11だけy軸回りに回転し、最後にγ11だけz軸回りに回転し、それらの回転によって得られたベクトルをベクトルT11とする。また、特定部21は、ベクトルTを、まずα12だけx軸回りに回転し、次にβ12だけy軸回りに回転し、最後にγ12だけz軸回りに回転し、それらの回転によって得られたベクトルをベクトルT12とする。そして、特定部21は、ベクトルT11の終点とベクトルT12の終点との間のユークリッド距離を求めて、求めたユークリッド距離を、表用処理使用時の第1類似度評価値とする。本例では、表用処理使用時の第1類似度評価値が小さいほど、表用処理使用時の第1回転推定姿勢と表用処理使用時の第2推定姿勢との類似度が高いことになる。
【0079】
同様にして、特定部21は、裏用処理使用時の第1類似度評価値を求める場合、ベクトルTを、まずα21だけx軸回りに回転し、次にβ21だけy軸回りに回転し、最後にγ21だけz軸回りに回転し、それらの回転によって得られたベクトルをベクトルT21とする。また、特定部21は、ベクトルTを、まずα22だけx軸回りに回転し、次にβ22だけy軸回りに回転し、最後にγ22だけz軸回りに回転し、それらの回転によって得られたベクトルをベクトルT22とする。そして、特定部21は、ベクトルT21の終点とベクトルT22の終点との間のユークリッド距離を求めて、求めたユークリッド距離を、裏用処理使用時の第1類似度評価値とする。本例では、裏用処理使用時の第1類似度評価値が小さいほど、裏用処理使用時の第1回転推定姿勢と裏用処理使用時の第2推定姿勢との類似度が高いことになる。
【0080】
ステップs8の後、ステップs9において、特定部21は、ステップs8での第1比較処理の結果に基づいて、第1姿勢の物体10が写る第1撮像画像が撮像装置8で生成される場合に物体10の複数の特定面において撮像装置8側を向く特定面を、対象面として特定する。つまり、特定部21は、第1比較処理の結果に基づいて、第1姿勢の物体10が撮像装置8で撮像される場合において撮像装置8側を向く特定面を、対象面として特定する。ステップs9において、特定部21は、例えば、第1比較処理の結果としての複数の第1類似度評価値における最小の第1類似度評価値を特定する。そして、特定部21は、特定した最小の第1類似度評価値に対応する特定面を対象面とする。
【0081】
本例では、特定部21は、第1撮像画像が撮像装置8で生成される場合に(つまりステップs2において)おもて面101及び裏面102において撮像装置8側を向く面を、第1比較処理の結果である表用処理使用時の第1類似度評価値及び裏用処理使用時の第1類似度評価値に基づいて特定する。特定部21は、例えば、表用処理使用時の第1類似度評価値が裏用処理使用時の第1類似度評価値よりも小さければ、表用処理使用時の第1類似度評価値に対応する特定面、つまりおもて面101が、ステップs2において撮像装置8側に向く面であると判定する。特定部21は、表用処理使用時の第1類似度評価値が裏用処理使用時の第1類似度評価値よりも小さければ、ステップs2において物体10が表向きであると判定するともいえる。一方で、特定部21は、例えば、裏用処理使用時の第1類似度評価値が表用処理使用時の第1類似度評価値よりも小さければ、裏用処理使用時の第1類似度評価値に対応する特定面、つまり裏面102が、ステップs2において撮像装置8側に向く面であると特定する。特定部21は、裏用処理使用時の第1類似度評価値が表用処理使用時の第1類似度評価値よりも小さければ、ステップs2において物体10が裏向きであると判定するともいえる。なお、特定部21は、表用処理使用時の第1類似度評価値と裏用処理使用時の第1類似度評価値とが同じである場合、おもて面101を対象面としてもよいし、裏面102を対象面としてもよい。
【0082】
上述のように、表向きの第1姿勢の物体10が写る第1撮像画像が生成される場合、表用処理使用時の第1回転推定姿勢は、表用処理使用時の第2推定姿勢に近い姿勢となる。一方で、裏用処理使用時の第1回転推定姿勢は、裏用処理使用時の第2推定姿勢と大きく異なる姿勢となる。したがって、第1撮像画像が生成される場合におもて面101が撮像装置8側を向いているとき、表用処理使用時の第1類似度評価値が小さくなり、裏用処理使用時の第1類似度評価値が大きくなる。よって、第1撮像画像が生成される場合におもて面101が撮像装置8側を向いているとき、表用処理使用時の第1類似度評価値が裏用処理使用時の第1類似度評価値よりも小さくなる可能性が高い。したがって、表用処理使用時の第1類似度評価値が裏用処理使用時の第1類似度評価値よりも小さい場合に、撮像装置8側に向く面がおもて面101であると判定することによって、第1撮像画像が生成される場合に撮像装置8側に向く面を適切に特定することができる。
【0083】
また、上述のように、裏向きの第1姿勢の物体10が写る第1撮像画像が生成される場合、裏用処理使用時の第1回転推定姿勢は、裏用処理使用時の第2推定姿勢に近い姿勢となる。一方で、表用処理使用時の第1回転推定姿勢は、表用処理使用時の第2推定姿勢と大きく異なる姿勢となる。したがって、第1撮像画像が生成される場合に裏面102が撮像装置8側を向いているとき、裏用処理使用時の第1類似度評価値が小さくなり、表用処理使用時の第1類似度評価値が大きくなる。よって、第1撮像画像が生成される場合に裏面102が撮像装置8側を向いているとき、裏用処理使用時の第1類似度評価値が表用処理使用時の第1類似度評価値よりも小さくなる可能性が高い。したがって、裏用処理使用時の第1類似度評価値が表用処理使用時の第1類似度評価値よりも小さい場合に、撮像装置8側に向く面が裏面102であると判定することによって、第1撮像画像が生成される場合に撮像装置8側に向く面を適切に特定することができる。
【0084】
制御部2は、対象面を特定すると、特定した対象面の反対側の面がロボット9で保持されていると判断する。例えば、対象面がおもて面101である場合、制御部2は、裏面102がロボット9で保持されていると判断する。一方で、対象面が裏面102である場合、制御部2は、おもて面101がロボット9で保持されていると判断する。インタフェース5を通じてロボット9を制御することが可能な制御部2は、物体10におけるロボット9で保持されている面に応じてロボット9の作業を変更してもよい。例えば、制御部2は、おもて面101を保持するロボット9にはある作業を実行させ、裏面102を保持するロボット9には当該ある作業とは別の作業を実行させてもよい。
【0085】
なお、回転軸Jの設定方向は上記の例に限られない。例えば、回転軸Jは、第1姿勢の物体10及び回転軸Jを撮像装置8から見た場合に物体10の上下方向に沿った方向に対して少し斜めの方向に設定されてもよい。また、回転軸Jは、第1姿勢の物体10及び回転軸Jを撮像装置8から見た場合に物体10の左右方向の中心から少しずれた位置を通るように設定されてもよい。また、回転軸Jは物体10を通らないように設定されてもよい。
【0086】
上記の説明から理解できるように、本開示では、表向きの第1姿勢の物体10を角度+Wだけ回転させることによって得られた表向きの第2姿勢の物体10を撮像装置8から見た場合の物体10の様子(
図5の右側)と、裏向きの第1姿勢の物体10を角度+Wだけ回転させることによって得られた裏向きの第2姿勢の物体10を撮像装置8から見た場合の物体10の様子(
図6の右側)とを互いに大きく異ならせることによって、対象面、つまり撮像装置8側を向く面の特定精度を向上させることができる。言い換えれば、表向きの第2姿勢と裏向きの第2姿勢とを互いに大きく異ならせることによって、対象面の特定精度を向上させることができる。さらに、言い換えれば、第1撮像画像が生成される場合に撮像装置8側を向く特定面がおもて面101のときに第2撮像画像に写る物体10の外観(
図5の右側)と、第1撮像画像が生成される場合に撮像装置8側を向く特定面が裏面102のときに第2撮像画像に写る物体10の外観(
図6の右側)とを互いに大きく異ならせることによって、対象面の特定精度を向上させることができる。回転軸Jが、
図5及び6の例のように設定される場合には、表向きの第2姿勢と裏向きの第2姿勢とが互いに大きく異なることから、対象面の特定精度が向上する。
【0087】
一方で、回転軸Jが、
図9に示されるように、例えば、撮像装置8から物体10及び回転軸Jを見た場合に物体10の左右方向に沿った方向に設定される場合には、表向きの第2姿勢と裏向きの第2姿勢との差が小さくなる。よって、この場合には、回転軸Jが
図5及び6の例のように設定される場合と比較して、対象面を特定しにくくなる。
【0088】
本例では、ロボット9は、アーム90を動かすことによって物体10を回転させている。ロボット9が物体10を保持して撮像装置8の前に物体10を運んだとき、
図10の左側に示されるように、アーム90の動きだけで物体10を回転させることができる回転軸Mと、物体10を回転すべき回転軸Jとが異なることも考えられる。この場合には、ロボット9は、ステップs2の実行前に、物体10を保持するエンドエフェクタ91の全体、あるいはエンドエフェクタ91の先端だけを、アーム90に対して相対的に回転させることによって、
図10の右側のように、回転軸Jを回転軸Mに一致させてもよい。ロボット9のこの動作は、処理装置1の制御部2がロボット9を制御することによって実現される。制御部2は、ステップs1及びステップs2の間において、撮像装置8に物体10を撮像させる。そして、制御部2は、撮像装置8で生成された撮像画像に基づいて、撮像装置8の光軸の回りの物体10の回転を特定し、その特定結果に基づいてロボット9を制御することによって、回転軸Jが回転軸Mに一致するように、ロボット9に、エンドエフェクタ91の全体あるいはエンドエフェクタ91の先端をアーム90に対して相対的に回転させる。
【0089】
以上のように、本例では、第1姿勢の物体10が写る第1撮像画像に基づく複数種類の姿勢推定処理でそれぞれ推定された複数の第1推定結果と、第1姿勢から回転した第2姿勢の物体10が写る第2撮像画像に基づく複数種類の姿勢推定処理でそれぞれ推定された複数の第2推定結果とに基づいて、第1撮像画像が撮像装置8で生成される場合に物体10の複数の特定面において撮像装置8側を向く特定面が特定される。これにより、第1撮像画像が生成される場合に撮像装置8側を向く特定面に応じて、第2撮像画像に写る物体10の外観が大きく異なる場合には、第1撮像画像が生成される場合に撮像装置8側を向く特定面を適切に特定することができる。
【0090】
特定部21は、対象面を特定した後、ステップs3で得られた複数の第1推定姿勢のうち、特定した対象面に対応する第1推定姿勢を、第1撮像画像が撮像装置8で生成される場合の物体10(つまり第1姿勢の物体10)の姿勢の最終的な推定結果としてもよい。例えば、特定部21は、対象面としておもて面101を特定した場合、表用処理使用時の第1推定姿勢を、第1撮像画像が生成される場合の物体10の姿勢の最終的な推定結果としてもよい。一方で、特定部21は、対象面として裏面102を特定した場合、裏用処理使用時の第1推定姿勢を、第1撮像画像が生成される場合の物体10の姿勢の最終的な推定結果としてもよい。
【0091】
また、特定部21は、対象面を特定した後、ステップs6で得られた複数の第2推定姿勢のうち、特定した対象面に対応する第2推定姿勢を、第2撮像画像が撮像装置8で生成される場合の物体10(つまり第2姿勢の物体10)の姿勢の最終的な推定結果としてもよい。例えば、特定部21は、対象面としておもて面101を特定した場合、表用処理使用時の第2推定姿勢を、第2撮像画像が生成される場合の物体10の姿勢の最終的な推定結果としてもよい。一方で、特定部21は、対象面として裏面102を特定した場合、裏用処理使用時の第2推定姿勢を、第2撮像画像が生成される場合の物体10の姿勢の最終的な推定結果としてもよい。
【0092】
また、特定部21は、対象面を特定した後、ステップs7で得られた複数の第1回転推定姿勢のうち、特定した対象面に対応する第1回転推定姿勢を、第2撮像画像が撮像装置8で生成される場合の物体10(つまり第2姿勢の物体10)の姿勢の最終的な推定結果としてもよい。例えば、特定部21は、対象面としておもて面101を特定した場合、表用処理使用時の第1回転推定姿勢を、第2撮像画像が生成される場合の物体10の姿勢の最終的な推定結果としてもよい。一方で、特定部21は、対象面として裏面102を特定した場合、裏用処理使用時の第1回転推定姿勢を、第2撮像画像が生成される場合の物体10の姿勢の最終的な推定結果としてもよい。
【0093】
<対象面特定処理の他の例>
上記の例では、撮像装置8が物体10を撮像するときの物体10の姿勢が回転させられることによって第1撮像画像及び第2撮像画像が撮像装置8で生成されているが、物体10を撮像するときの撮像装置8の姿勢が回転させられることによって第1撮像画像及び第2撮像画像が撮像装置8で生成されてもよい。
図11はこの場合の対象面特定処理の一例を示すフローチャートである。
図11に示される対象面特定処理が実行される場合には、
図12に示されるように、撮像装置8を回転させることが可能な駆動機構800が設けられる。
【0094】
駆動機構800は、撮像装置8を回転軸Jの回りに回転することが可能である。駆動機構800としては、例えば、ロボット9と同様のロボットが採用されてもよい。駆動機構800は処理装置1の制御部2によって制御される。処理装置1には、駆動機構800と通信することが可能なインタフェースが設けられる。制御部2は、当該インタフェースを通じて駆動機構800を制御して、駆動機構800に撮像装置8を回転軸Jの回りに回転させる。
【0095】
図11に示される対象面特定処理では、まず、上述のステップs1,s2,s3が実行される。その後、ステップs11において、制御部2は、駆動機構800に撮像装置8を回転させる。ステップs11において、駆動機構800は、回転軸Jの回りに角度-Wだけ撮像装置8を回転させる。その後、上述のステップs5が実行されて、撮像装置8が物体10を撮像する。ステップs5では、上記の例と同様に、第1姿勢から回転した第2姿勢の物体10が写る第2撮像画像が生成される。以後、上述のステップs6,s7,s8,s9が順次実行される。
【0096】
このように、物体10を撮像するときの撮像装置8の姿勢が回転させられることによって第1撮像画像及び第2撮像画像が撮像装置8で生成される場合であっても、制御部2は、第1撮像画像が生成される場合に撮像装置8側を向く特定面を適切に特定することができる。
【0097】
図13は、対象面特定処理の他の例を示すフローチャートである。
図13に示される対象面特定処理では、上述のステップs1,s2,s3,s4,s5,s6が実行される。ステップs6の後、ステップs21が実行される。
【0098】
ここで、物体10を保持する保持機構としてのエンドエフェクタ91には三次元直交座標系が設定されている。この三次元直交座標系を保持機構座標系と呼ぶ。保持機構座標系とは、アーム90の先端の位置に基づいて、エンドエフェクタ91から見たときの現実空間を座標空間として表現した座標系である。上述のように、ステップs4では、アーム90の動きによって、物体10を保持するエンドエフェクタ91が回転軸Jの回りに角度+Wだけ回転することによって、物体10が回転軸Jの回りに角度+Wだけ回転する。エンドエフェクタ91が回転軸Jの回りに角度+Wだけ回転することによって、物体10の姿勢が第1姿勢から第2姿勢に変化するともいえる。第2姿勢の物体10を保持するときのエンドエフェクタ91の保持機構座標系は、第1姿勢の物体10を保持するときのエンドエフェクタ91の保持機構座標系を回転軸Jの回りに角度+Wだけ回転したものとなる。言い換えれば、第2撮像画像が生成される場合の保持機構座標系は、第1撮像画像が生成される場合の保持機構座標系を回転軸Jの回りに角度+Wだけ回転したものとなる。以後、第1姿勢の物体10を保持するときのエンドエフェクタ91の保持機構座標系を回転前保持機構座標系と呼び、第2姿勢の物体10を保持するときのエンドエフェクタ91の保持機構座標系を回転後保持機構座標系と呼ぶ。
【0099】
ステップs21において、特定部21は、ステップs3で得られる複数の第1推定姿勢を、撮像装置座標系から回転前保持機構座標系に変換して、複数の第1変換推定姿勢を取得する。本例では、ステップs21において、特定部21は、表用処理使用時の第1推定姿勢を、撮像装置座標系から回転前保持機構座標系に変換して、表用処理使用時の第1変換推定姿勢を取得する。また、特定部21は、裏用処理使用時の第1推定姿勢を、撮像装置座標系から回転前保持機構座標系に変換して、裏用処理使用時の第1変換推定姿勢を取得する。第1推定姿勢を撮像装置座標系から回転前保持機構座標系に変換することは、第1推定姿勢を、第1姿勢の物体10を撮像装置8から見た場合の物体10の推定姿勢から、第1姿勢の物体10を保持するエンドエフェクタ91から第1姿勢の物体10を見た場合の物体10の推定姿勢に変換することともいえる。よって、第1変換推定姿勢は、第1姿勢の物体10を保持するエンドエフェクタ91から第1姿勢の物体10を見た場合の物体10の推定姿勢であるといえる。
【0100】
ステップs21の後、ステップs22において、特定部21は、ステップs6で得られる複数の第2推定姿勢を、撮像装置座標系から回転後保持機構座標系に変換して、複数の第2変換推定姿勢を取得する。本例では、ステップs22において、特定部21は、表用処理使用時の第2推定姿勢を、撮像装置座標系から回転後保持機構座標系に変換して、表用処理使用時の第2変換推定姿勢を取得する。また、特定部21は、裏用処理使用時の第2推定姿勢を、撮像装置座標系から回転後保持機構座標系に変換して、裏用処理使用時の第2変換推定姿勢を取得する。第2推定姿勢を撮像装置座標系から回転後保持機構座標系に変換することは、第2推定姿勢を、第2姿勢の物体10を撮像装置8から見た場合の物体10の推定姿勢から、第2姿勢の物体10を保持するエンドエフェクタ91から第2姿勢の物体10を見た場合の物体10の推定姿勢に変換することともいえる。よって、第2変換推定姿勢は、第2姿勢の物体10を保持するエンドエフェクタ91から第2姿勢の物体10を見た場合の物体10の推定姿勢であるといえる。
【0101】
例えば、表向きの第1姿勢の物体10が第1撮像画像に写っている場合を考える。この場合、上述のように、表用処理使用時の第1推定姿勢は、撮像装置8から見た物体10の実際の姿勢に近い姿勢となる。また、表用処理使用時の第2推定姿勢は、撮像装置8から見た物体10の実際の姿勢に近い姿勢となる。エンドエフェクタ91は物体10とともに回転することから、第1姿勢の物体10を保持するエンドエフェクタ91から第1姿勢の物体10を見た実際の様子と、第2姿勢の物体10を保持するエンドエフェクタ91から第2姿勢の物体10を見た実際の様子とは同じである。よって、物体10の実際の姿勢に近い表用処理使用時の第1推定姿勢から得られた表用処理使用時の第1変換推定姿勢と、物体10の実際の姿勢に近い表用処理使用時の第2推定姿勢から得られた表用処理使用時の第2変換推定姿勢とは、互いに近い姿勢となる。
【0102】
一方で、表向きの第1姿勢の物体10が第1撮像画像に写っている場合、裏用処理使用時の第1推定姿勢は、裏向きの第1姿勢の物体10を撮像装置8から見た場合の物体10の姿勢に近い姿勢となる。エンドエフェクタ91は物体10とともに回転することから、裏用処理使用時の第2推定姿勢が、仮に、裏向きの第1姿勢の物体10を角度+Wだけ回転させた後の物体10を撮像装置8から見た場合の物体10の姿勢、つまり、裏向きの第2姿勢(
図6の右側)に近い姿勢であれば、表用処理使用時の第1変換推定姿勢と表用処理使用時の第2変換推定姿勢との関係のように、裏用処理使用時の第1変換推定姿勢と、裏用処理使用時の第2変換推定姿勢とは、互いに近い姿勢となる。しかしながら、裏用処理使用時の第2推定姿勢は、上述のように、裏向きの第3姿勢に近い姿勢となる。したがって、裏用処理使用時の第1変換推定姿勢と、裏用処理使用時の第2変換推定姿勢とは、互いに大きく異なることになる。
【0103】
裏向きの第1姿勢の物体10が第1撮像画像に写っている場合にも上記と同様に考えることができる。裏向きの第1姿勢の物体10が第1撮像画像に写っている場合には、裏用処理使用時の第1変換推定姿勢と、裏用処理使用時の第2変換推定姿勢とは、互いに近い姿勢となる。これに対して、表用処理使用時の第1変換推定姿勢と、表用処理使用時の第2変換推定姿勢とは、互いに大きく異なることになる。
【0104】
ステップs22の後、ステップs23において、特定部21は、ステップs21で得られた複数の第1変換推定姿勢と、ステップs22で得られた複数の第2変換推定姿勢とを、対応する面ごとに比較する第2比較処理を行う。本例では、特定部21は、表用処理使用時の第1変換推定姿勢及び裏用処理使用時の第1変換推定姿勢と、表用処理使用時の第2変換推定姿勢及び裏用処理使用時の第2変換推定姿勢とを、対応する面ごとに比較する第2比較処理を行う。表用処理使用時の第1変換推定姿勢と、表用処理使用時の第2変換推定姿勢とは、おもて面101に対応することから、第2比較処理では、表用処理使用時の第1変換推定姿勢と、表用処理使用時の第2変換推定姿勢とが比較される。裏用処理使用時の第1変換推定姿勢と、裏用処理使用時の第2変換推定姿勢とは、裏面102に対応することから、第2比較処理では、裏用処理使用時の第1変換推定姿勢と、裏用処理使用時の第2変換推定姿勢とが比較される。
【0105】
特定部21は、第2比較処理において、例えば、各第1変換推定姿勢について、当該第1変換推定姿勢と、当該第1変換推定姿勢が対応する特定面と同じ特定面に対応する第2変換推定姿勢との類似度を示す評価値(第2類似度評価値ともいう)を求める。これにより、第2比較処理の結果として、複数の特定面にそれぞれ対応する複数の第2類似度評価値が得られる。ある特定面に対応する第1変換推定姿勢と、当該ある特定面に対応する第2変換推定姿勢との類似度を示す第2類似度評価値は、当該ある特定面に対応する第2類似度評価値となる。
【0106】
特定部21は、第2比較処理において、例えば、表用処理使用時の第1変換推定姿勢と、表用処理使用時の第2変換推定姿勢との類似度を示す第2類似度評価値(表用処理使用時の第2類似度評価値ともいう)を求める。また、特定部21は、第2比較処理において、例えば、裏用処理使用時の第1変換推定姿勢と、裏用処理使用時の第2変換推定姿勢との類似度を示す第2類似度評価値(裏用処理使用時の第2類似度評価値ともいう)を求める。表用処理使用時の第2類似度評価値と裏用処理使用時の第2類似度評価値が、第2比較処理の結果となる。特定部21は、例えば、第1類似度評価値を算出する場合と同様にして、第2類似度評価値を算出してもよい。
【0107】
ステップs23の後、ステップs24において、特定部21は、第2比較処理の結果に基づいて、第1姿勢の物体10が撮像装置8で撮像される場合において撮像装置8側を向く特定面を、対象面として特定する。ステップs23において、特定部21は、例えば、複数の第2類似度評価値における最小の第2類似度評価値を特定する。そして、特定部21は、特定した最小の第2類似度評価値に対応する特定面を対象面とする。
【0108】
本例では、特定部21は、第1撮像画像が撮像装置8で生成される場合におもて面101及び裏面102において撮像装置8側を向く面を、表用処理使用時の第2類似度評価値及び裏用処理使用時の第2類似度評価値に基づいて特定する。特定部21は、例えば、表用処理使用時の第2類似度評価値が裏用処理使用時の第2類似度評価値よりも小さければ、ステップs2において撮像装置8側に向く面がおもて面101であると判定する。一方で、特定部21は、例えば、裏用処理使用時の第2類似度評価値が表用処理使用時の第2類似度評価値よりも小さければ、ステップs2において撮像装置8側に向く面が裏面102であると判定する。なお、特定部21は、表用処理使用時の第2類似度評価値と裏用処理使用時の第2類似度評価値とが同じである場合、おもて面101を対象面としてもよいし、裏面102を対象面としてもよい。
【0109】
上述のように、表向きの第1姿勢の物体10が写る第1撮像画像が生成される場合、表用処理使用時の第1変換推定姿勢は、表用処理使用時の第2変換推定姿勢に近い姿勢となる。一方で、裏用処理使用時の第1変換推定姿勢は、裏用処理使用時の第2変換推定姿勢と大きく異なる姿勢となる。したがって、第1撮像画像が生成される場合におもて面101が撮像装置8側を向いているとき、表用処理使用時の第2類似度評価値が小さくなり、裏用処理使用時の第2類似度評価値が大きくなる。よって、第1撮像画像が生成される場合におもて面101が撮像装置8側を向いているとき、表用処理使用時の第2類似度評価値が裏用処理使用時の第2類似度評価値よりも小さくなる可能性が高い。したがって、表用処理使用時の第2類似度評価値が裏用処理使用時の第2類似度評価値よりも小さい場合に、撮像装置8側に向く面がおもて面101であると判定することによって、第1撮像画像が生成される場合に撮像装置8側に向く面を適切に特定することができる。
【0110】
また、上述のように、裏向きの第1姿勢の物体10が写る第1撮像画像が生成される場合、裏用処理使用時の第1変換推定姿勢は、裏用処理使用時の第2変換推定姿勢に近い姿勢となる。一方で、表用処理使用時の第1変換推定姿勢は、表用処理使用時の第2変換推定姿勢と大きく異なる姿勢となる。したがって、第1撮像画像が生成される場合に裏面102が撮像装置8側を向いているとき、裏用処理使用時の第2類似度評価値が小さくなり、表用処理使用時の第2類似度評価値が大きくなる。よって、第1撮像画像が生成される場合に裏面102が撮像装置8側を向いているとき、裏用処理使用時の第2類似度評価値が表用処理使用時の第2類似度評価値よりも小さくなる可能性が高い。したがって、裏用処理使用時の第2類似度評価値が表用処理使用時の第2類似度評価値よりも小さい場合に、撮像装置8側に向く面が裏面102であると判定することによって、第1撮像画像が生成される場合に撮像装置8側に向く面を適切に特定することができる。
【0111】
図14は、対象面特定処理の他の例を示すフローチャートである。
図14に示される対象面特定処理では、上述のステップs1,s2,s3,s11,s5,s6が実行される。ステップs6の後、ステップs31が実行される。
【0112】
ここで、上述のように、ステップs11では、撮像装置8が回転軸Jの回りに角度-Wだけ回転する。したがって、第2撮像画像を生成するときの撮像装置8の撮像装置座標系は、第1撮像画像を生成するときの撮像装置8の撮像装置座標系を回転軸Jの回りに角度-Wだけ回転したものとなる。第1撮像画像を生成するときの撮像装置8の撮像装置座標系を回転前撮像装置座標系と呼び、第2撮像画像を生成するときの撮像装置8の撮像装置座標系を回転後撮像装置座標系と呼ぶ。ステップs3で得られる複数の第1推定姿勢は回転前保持機構座標系で表され、ステップs6で得られる複数の第2推定姿勢は回転後保持機構座標系で表される。
【0113】
ステップs31において、特定部21は、ステップs3で得られる複数の第1推定姿勢を、回転前撮像装置座標系から保持機構座標系に変換して、複数の第3変換推定姿勢を取得する。本例では、ステップs31において、特定部21は、表用処理使用時の第1推定姿勢を、回転前撮像装置座標系から保持機構座標系に変換して、表用処理使用時の第3変換推定姿勢を取得する。また、特定部21は、裏用処理使用時の第1推定姿勢を、回転前撮像装置座標系から保持機構座標系に変換して、裏用処理使用時の第3変換推定姿勢を取得する。対象面特定処理においてロボット9での物体10の保持姿勢が同じであれば、表用処理使用時の第3変換推定姿勢は、上述の表用処理使用時の第2変換推定姿勢と同じとなり、裏用処理使用時の第3変換推定姿勢は、上述の裏用処理使用時の第2変換推定姿勢と同じとなる。
【0114】
ステップs31の後、ステップs32において、特定部21は、ステップs6で得られる複数の第2推定姿勢を、回転後撮像装置座標系から保持機構座標系に変換して、複数の第4変換推定姿勢を取得する。本例では、ステップs32において、特定部21は、表用処理使用時の第2推定姿勢を、回転後撮像装置座標系から保持機構座標系に変換して、表用処理使用時の第4変換推定姿勢を取得する。また、特定部21は、裏用処理使用時の第2推定姿勢を、回転後撮像装置座標系から保持機構座標系に変換して、裏用処理使用時の第4変換推定姿勢を取得する。
【0115】
例えば、表向きの第1姿勢の物体10が第1撮像画像に写っている場合を考える。この場合、上述のように、表用処理使用時の第1推定姿勢は、撮像装置8から見た物体10の実際の姿勢に近い姿勢となる。また、表用処理使用時の第2推定姿勢は、撮像装置8から見た物体10の実際の姿勢に近い姿勢となる。
図13の例のように物体10がエンドエフェクタ91とともに回転する場合と同様に、撮像装置8が回転する場合であっても、第1撮像画像が生成される場合にエンドエフェクタ91から物体10を見た実際の様子と、第2撮像画像が生成される場合にエンドエフェクタ91から物体10を見た実際の様子とは同じである。よって、物体10の実際の姿勢に近い表用処理使用時の第1推定姿勢から得られた表用処理使用時の第3変換推定姿勢と、物体10の実際の姿勢に近い表用処理使用時の第2推定姿勢から得られた表用処理使用時の第4変換推定姿勢とは、互いに近い姿勢となる。
【0116】
一方で、表向きの第1姿勢の物体10が第1撮像画像に写っている場合、裏用処理使用時の第1推定姿勢は、裏向きの第1姿勢に近い姿勢となる。裏用処理使用時の第2推定姿勢が、仮に、裏向きの第2姿勢に近い姿勢であれば、表用処理使用時の第3変換推定姿勢と表用処理使用時の第4変換推定姿勢との関係のように、裏用処理使用時の第3変換推定姿勢と、裏用処理使用時の第4変換推定姿勢とは、互いに近い姿勢となる。しかしながら、裏用処理使用時の第2推定姿勢は、裏向きの第3姿勢に近い姿勢となる。したがって、裏用処理使用時の第3変換推定姿勢と、裏用処理使用時の第4変換推定姿勢とは、互いに大きく異なることになる。
【0117】
裏向きの第1姿勢の物体10が第1撮像画像に写っている場合にも上記と同様に考えることができる。裏向きの第1姿勢の物体10が第1撮像画像に写っている場合には、裏用処理使用時の第3変換推定姿勢と、裏用処理使用時の第4変換推定姿勢とは、互いに近い姿勢となる。これに対して、表用処理使用時の第3変換推定姿勢と、表用処理使用時の第4変換推定姿勢とは、互いに大きく異なることになる。
【0118】
ステップs32の後、ステップs33において、特定部21は、ステップs31で得られた複数の第3変換推定姿勢と、ステップs32で得られた複数の第4変換推定姿勢とを、対応する面ごとに比較する第3比較処理を行う。本例では、特定部21は、表用処理使用時の第3変換推定姿勢及び裏用処理使用時の第3変換推定姿勢と、表用処理使用時の第4変換推定姿勢及び裏用処理使用時の第4変換推定姿勢とを、対応する面ごとに比較する第3比較処理を行う。第3比較処理では、表用処理使用時の第3変換推定姿勢と、表用処理使用時の第4変換推定姿勢とが比較され、裏用処理使用時の第3変換推定姿勢と、裏用処理使用時の第4変換推定姿勢とが比較される。
【0119】
特定部21は、第3比較処理において、例えば、各第3変換推定姿勢について、当該第3変換推定姿勢と、当該第3変換推定姿勢が対応する特定面と同じ特定面に対応する第4変換推定姿勢との類似度を示す評価値(第3類似度評価値ともいう)を求める。これにより、第3比較処理の結果として、複数の特定面にそれぞれ対応する複数の第3類似度評価値が得られる。ある特定面に対応する第3変換推定姿勢と、当該ある特定面に対応する第4変換推定姿勢との類似度を示す第3類似度評価値は、当該ある特定面に対応する第3類似度評価値となる。
【0120】
本例では、特定部21は、第3比較処理において、表用処理使用時の第3変換推定姿勢と、表用処理使用時の第4変換推定姿勢との類似度を示す第3類似度評価値(表用処理使用時の第3類似度評価値ともいう)を求める。また、特定部21は、第3比較処理において、例えば、裏用処理使用時の第3変換推定姿勢と、裏用処理使用時の第4変換推定姿勢との類似度を示す第3類似度評価値(裏用処理使用時の第3類似度評価値ともいう)を求める。表用処理使用時の第3類似度評価値と裏用処理使用時の第3類似度評価値が、第3比較処理の結果となる。特定部21は、例えば、第1類似度評価値を算出する場合と同様にして、第3類似度評価値を算出してもよい。
【0121】
ステップs33の後、ステップs34において、特定部21は、第3比較処理の結果に基づいて、第1姿勢の物体10が撮像装置8で撮像される場合において撮像装置8側を向く特定面を、対象面として特定する。ステップs34において、特定部21は、例えば、複数の第3類似度評価値における最小の第3類似度評価値を特定する。そして、特定部21は、特定した最小の第3類似度評価値に対応する特定面を対象面とする。
【0122】
本例では、特定部21は、第1撮像画像が撮像装置8で生成される場合におもて面101及び裏面102において撮像装置8側を向く面を、表用処理使用時の第3類似度評価値及び裏用処理使用時の第3類似度評価値に基づいて特定する。特定部21は、例えば、表用処理使用時の第3類似度評価値が裏用処理使用時の第3類似度評価値よりも小さければ、ステップs2において撮像装置8側に向く面がおもて面101であると判定する。一方で、特定部21は、例えば、裏用処理使用時の第3類似度評価値が表用処理使用時の第3類似度評価値よりも小さければ、ステップs2において撮像装置8側に向く面が裏面102であると判定する。なお、特定部21は、表用処理使用時の第3類似度評価値と裏用処理使用時の第3類似度評価値とが同じである場合、おもて面101を対象面としてもよいし、裏面102を対象面としてもよい。
【0123】
図15は、対象面特定処理の他の例を示すフローチャートである。
図15に示される対象面特定処理では、上述のステップs1,s2,s3,s4,s5,s7が実行される。ステップs7の後、ステップs41が実行される。
【0124】
ステップs41において、特定部21は、ステップs7で得られた複数の第1回転推定姿勢のそれぞれについて、複数種類の姿勢推定処理のうち当該第1回転推定姿勢に対応する姿勢推定処理で使用される複数のテンプレートから、当該第1回転推定姿勢に対応する対応テンプレートを特定する。これにより、複数の第1回転推定姿勢にそれぞれ対応する複数の対応テンプレートが特定される。本例では、特定部21は、表用処理使用時の第1回転推定姿勢に対応する表用姿勢推定処理で使用される複数の表用テンプレートから、表用処理使用時の第1回転推定姿勢と同じ姿勢が対応付けられている表用テンプレートを対応表用テンプレートとして特定する。また、特定部21は、裏用処理使用時の第1回転推定姿勢に対応する裏用姿勢推定処理で使用される複数の裏用テンプレートから、裏用処理使用時の第1回転推定姿勢と同じ姿勢が対応付けられている裏用テンプレートを対応裏用テンプレートとして特定する。
【0125】
ステップs41の後、ステップs42において、特定部21は、ステップs5で得られた第2撮像画像と、ステップs41で特定された複数の対応テンプレートのそれぞれとを比較するテンプレートマッチングを行う。特定部21は、推定部20での姿勢推定処理で実行されるテンプレートマッチングと同様にして、各対応テンプレートについて、当該対応テンプレートと第2撮像画像とのマッチングスコアを求める。これにより、ステップs42でのテンプレートマッチングの結果として、複数の対応テンプレートにそれぞれ対応する複数のマッチングスコアが求められる。対応テンプレートに対応するマッチングスコアは、当該対応テンプレートについての第2撮像画像とのマッチングスコアである。本例では、特定部21は、対応表用テンプレートと第2撮像画像とのマッチングスコアを求め、対応裏用テンプレートと第2撮像画像とのマッチングスコアを求める。以後、対応表用テンプレートと第2撮像画像とのマッチングスコアを対応表用テンプレート使用時のマッチングスコアと呼び、対応裏用テンプレートと第2撮像画像とのマッチングスコアを対応裏用テンプレート使用時のマッチングスコアと呼ぶことがある。
【0126】
ステップs42の後、ステップs43において、特定部21は、ステップs42でのテンプレートマッチングの結果に基づいて、第1姿勢の物体10が撮像装置8で撮像される場合において撮像装置8側を向く特定面を、対象面として特定する。ステップs43において、特定部21は、例えば、テンプレートマッチングの結果としての複数のマッチングスコアのうち、最も高いマッチングスコアを特定する。そして、特定部21は、特定した最も高いマッチングスコアに対応する対応テンプレートに対応する特定面を対象面とする。ある対応プレートに対応する特定面とは、当該ある対応テンプレートが使用される姿勢推定処理に対応する特定面である。例えば、対応表用テンプレートに対応する特定面とは、対応表用テンプレートが使用される表用姿勢推定処理に対応するおもて面101であり、対応裏用テンプレートに対応する特定面とは、対応裏用テンプレートが使用される裏用姿勢推定処理に対応する裏面102である。
【0127】
本例では、特定部21は、第1撮像画像が撮像装置8で生成される場合におもて面101及び裏面102において撮像装置8側を向く面を、対応表用テンプレート使用時のマッチングスコアと、対応裏用テンプレート使用時のマッチングスコアとに基づいて特定する。特定部21は、例えば、対応表用テンプレート使用時のマッチングスコアが対応裏用テンプレート使用時のマッチングスコアよりも高ければ、ステップs2において撮像装置8側に向く面がおもて面101であると判定する。一方で、特定部21は、例えば、対応裏用テンプレート使用時のマッチングスコアが対応表用テンプレート使用時のマッチングスコアよりも高ければ、ステップs2において撮像装置8側に向く面が裏面102であると判定する。なお、特定部21は、対応表用テンプレート使用時のマッチングスコアと対応裏用テンプレート使用時のマッチングスコアとが同じである場合、おもて面101を対象面としてもよいし、裏面102を対象面としてもよい。
【0128】
例えば、表向きの第1姿勢の物体10が第1撮像画像に写っている場合を考える。この場合、上述のように、表用処理使用時の第1推定姿勢は、表向きの第1姿勢に近い姿勢となる。したがって、表用処理使用時の第1回転推定姿勢は、表向きの第2姿勢に近い姿勢となる。よって、表用処理使用時の第1回転推定姿勢に対応する対応表用テンプレートは、表向きの第2姿勢の物体10が写る第2撮像画像に類似する画像となる。そのため、対応表用テンプレートと第2撮像画像とのマッチングスコアは高くなる。一方で、裏用処理使用時の第1推定姿勢は、裏向きの第1姿勢に近い姿勢となる。したがって、裏用処理使用時の第1回転推定姿勢は、裏向きの第2姿勢に近い姿勢となる。よって、裏用処理使用時の第1回転推定姿勢に対応する対応裏用テンプレートは、裏向きの第2姿勢が写る撮像画像と類似し、表向きの第2姿勢の物体10が写る第2撮像画像とは類似しない。そのため、対応裏用テンプレートと第2撮像画像とのマッチングスコアは低くなる。したがって、第1撮像画像が生成される場合におもて面101が撮像装置8側を向いているとき、対応表用テンプレート使用時のマッチングスコアが対応裏用テンプレート使用時のマッチングスコアよりも高くなる可能性が高い。
【0129】
また、裏向きの第1姿勢の物体10が第1撮像画像に写っている場合を考える。この場合、上述のように、裏用処理使用時の第1推定姿勢は、裏向きの第1姿勢に近い姿勢となる。したがって、裏用処理使用時の第1回転推定姿勢は、実際の裏向きの第2姿勢に近い姿勢となる。よって、裏用処理使用時の第1回転推定姿勢に対応する対応裏用テンプレートは、裏向きの第2姿勢の物体10が写る第2撮像画像に類似する画像となる。そのため、対応裏用テンプレートと第2撮像画像とのマッチングスコアは高くなる。一方で、表用処理使用時の第1推定姿勢は、表向きの第1姿勢に近い姿勢となる。したがって、表用処理使用時の第1回転推定姿勢は、表向きの第2姿勢に近い姿勢となる。よって、表用処理使用時の第1回転推定姿勢に対応する対応表用テンプレートは、表向きの第2姿勢が写る撮像画像と類似し、裏向きの第2姿勢の物体10が写る第2撮像画像とは類似しない。そのため、対応表用テンプレートと第2撮像画像とのマッチングスコアは低くなる。したがって、第1撮像画像が生成される場合に裏面102が撮像装置8側を向いているとき、対応裏用テンプレート使用時のマッチングスコアが対応表用テンプレート使用時のマッチングスコアよりも高くなる可能性が高い。
【0130】
このように、本例では、第1撮像画像が生成される場合に撮像装置8側を向く特定面がおもて面101か裏面102かに応じて、第2撮像画像に写る物体10の外観が大きく異なることから、第1撮像画像が生成される場合におもて面101が撮像装置8側を向いているとき、対応表用テンプレート使用時のマッチングスコアが対応裏用テンプレート使用時のマッチングスコアよりも高くなる可能性が高く、第1撮像画像が生成される場合に裏面102が撮像装置8側を向いているとき、対応裏用テンプレート使用時のマッチングスコアが対応表用テンプレート使用時のマッチングスコアよりも高くなる可能性が高い。したがって、対応表用テンプレート使用時のマッチングスコアが対応裏用テンプレート使用時のマッチングスコアよりも高いときに、撮像装置8側に向く面がおもて面101であると判定し、対応裏用テンプレート使用時のマッチングスコアが対応表用テンプレート使用時のマッチングスコアよりも高いときに、撮像装置8側に向く面が裏面102であると判定することによって、第1撮像画像が生成される場合に撮像装置8側に向く面を適切に特定することができる。
【0131】
なお、
図16に示されるように、物体10を角度+Wだけ回転させるステップs4の替わりに、撮像装置8を角度-Wだけ回転させるステップs11が実行されてもよい。
【0132】
このように、
図15及び16の例では、複数の第1回転推定姿勢について特定された対応テンプレートと第2撮像画像とを比較するテンプレートマッチングが行われ、当該テンプレートマッチングの結果に基づいて、第1撮像画像が撮像装置8で生成される場合に撮像装置8側を向く特定面が特定される。これにより、第1撮像画像が生成される場合に撮像装置8側を向く特定面に応じて、第2撮像画像に写る物体10の外観が大きく異なる場合には、第1撮像画像が生成される場合に撮像装置8側に向く特定面を適切に特定することができる。
【0133】
上記の
図15及び16の例以外において、姿勢推定処理では、テンプレートマッチング以外の方法で物体10の姿勢が推定されてもよい。例えば、推定部20は、ニューラルネットワークなどの非線形関数を用いた方法で物体10の姿勢を推定してもよい。例えば、推定部20が、ニューラルネットワークを用いて物体10の姿勢を推定する場合、表用姿勢推定処理では、物体10をおもて面101側から様々な角度で撮像して得られた多数の撮像画像に基づいて学習されたニューラルネットワークが使用され、裏用姿勢推定処理では、物体10を裏面102側から様々な角度で撮像して得られた多数の撮像画像に基づいて学習されたニューラルネットワークが使用されてもよい。
【0134】
上記の
図4及び11の例では、第1推定姿勢から第1回転推定姿勢が求められているが、第1推定姿勢が求められずに第1撮像画像から、第1回転推定姿勢が直接求められてもよい。例えば、機械学習が用いられて表用処理使用時の第1回転推定姿勢を推定するように学習された推定器(例えばニューラルネットワーク)が、第1撮像画像と回転軸Jの回りの角度+Wとに基づいて、表用処理使用時の第1回転推定姿勢を推定してもよい。推定器で推定される表用処理使用時の第1回転推定姿勢は、物体10のおもて面101が撮像装置8側を向いていると仮定して第1姿勢の物体10の姿勢を推定した推定姿勢を回転軸Jの回りの角度+Wだけ回転させた回転姿勢に相当する姿勢となる。また、機械学習が用いられて裏用処理使用時の第1回転推定姿勢を推定するように学習された推定器が、第1撮像画像と回転軸Jの回りの角度+Wとに基づいて、裏用処理使用時の第1回転推定姿勢を推定してもよい。推定器で推定される裏用処理使用時の第1回転推定姿勢は、物体10の裏面102が撮像装置8側を向いていると仮定して第1姿勢の物体10の姿勢を推定した推定姿勢を回転軸Jの回りの角度+Wだけ回転させた回転姿勢に相当する姿勢となる。
【0135】
上記の
図4及び11の例では、複数の第1推定姿勢が、物体10の姿勢が第1姿勢から第2姿勢に回転する場合と同様に回転した複数の第1回転推定姿勢が使用されていたが、複数の第2推定姿勢が、物体10の姿勢が第1姿勢から第2姿勢に回転する場合とは逆の方向に回転した複数の第2回転推定姿勢が使用されてもよい。この場合、上述のステップs7において、特定部21は、物体10の姿勢が第1姿勢から第2姿勢に回転する場合とは逆の方向にステップs6で得られた複数の第2推定姿勢が回転した複数の第2回転推定姿勢を求める。例えば、特定部21は、表用処理使用時の第2推定姿勢が、物体10の姿勢が第1姿勢から第2姿勢に回転する場合とは逆の方向に回転した第2回転推定姿勢(表用処理使用時の第2回転推定姿勢ともいう)を求める。また特定部21は、裏用処理使用時の第2推定姿勢が、物体10の姿勢が第1姿勢から第2姿勢に回転する場合とは逆の方向に回転した第2回転推定姿勢(裏用処理使用時の第2回転推定姿勢ともいう)を求める。特定部21は、撮像装置座標系において、表用処理使用時の第2推定姿勢を、回転軸Jの回りに角度-Wだけ回転させて得られる姿勢を、表用処理使用時の第2回転推定姿勢とする。また、特定部21は、撮像装置座標系において、裏用処理使用時の第2推定姿勢を、回転軸Jの回りに角度-Wだけ回転させて得られる姿勢を、裏用処理使用時の第2回転推定姿勢とする。
【0136】
上記の説明から理解できるように、表向きの第1姿勢の物体10が第1撮像画像に写っている場合には、表用処理使用時の第2回転推定姿勢は、表用処理使用時の第1推定姿勢と近い姿勢となる。一方で、裏用処理使用時の第2回転推定姿勢は、裏用処理使用時の第1推定姿勢と大きく異なる姿勢となる。よって、表向きの第1姿勢の物体10が第1撮像画像に写っている場合には、つまり対象面がおもて面101である場合には、表用処理使用時の第2回転推定姿勢と、表用処理使用時の第1推定姿勢との類似度が高くなり、裏用処理使用時の第2回転推定姿勢と、裏用処理使用時の第1推定姿勢との類似度が低くなる。
【0137】
また、裏向きの第1姿勢の物体10が第1撮像画像に写っている場合には、裏用処理使用時の第2回転推定姿勢は、裏用処理使用時の第1推定姿勢と近い姿勢となる。一方で、表用処理使用時の第2回転推定姿勢は、表用処理使用時の第1推定姿勢と大きく異なる姿勢となる。よって、裏向きの第1姿勢の物体10が第1撮像画像に写っている場合には、つまり対象面が裏面102である場合には、裏用処理使用時の第2回転推定姿勢と、裏用処理使用時の第1推定姿勢との類似度が高くなり、表用処理使用時の第2回転推定姿勢と、表用処理使用時の第1推定姿勢との類似度が低くなる。
【0138】
上述のステップs7において複数の第2回転推定姿勢が求められる場合、上述のステップs8では、特定部21は、第1比較処理と同様にして、複数の第2回転推定姿勢と、複数の第1推定姿勢とを、対応する特定面ごとに比較する第4比較処理を行う。その後、上述のステップs9において、特定部21は、ステップs8での第4比較処理の結果に基づいて対象面を特定する。ステップs9において、特定部21は、第4比較処理の結果、表用処理使用時の第2回転推定姿勢と表用処理使用時の第1推定姿勢との類似度が、裏用処理使用時の第2回転推定姿勢と裏用処理使用時の第1推定姿勢との類似度よりも高い場合、おもて面101を対象面とする。一方で、特定部21は、第4比較処理の結果、裏用処理使用時の第2回転推定姿勢と裏用処理使用時の第1推定姿勢との類似度が、表用処理使用時の第2回転推定姿勢と表用処理使用時の第1推定姿勢との類似度よりも高い場合、裏面102が対象面であると判断する。
【0139】
なお、第2推定姿勢が求められずに、第2撮像画像から第2回転推定姿勢が直接求められてもよい。例えば、機械学習が用いられて表用処理使用時の第2回転推定姿勢を推定するように学習された推定器(例えばニューラルネットワーク)が、第2撮像画像と回転軸Jの回りの角度-Wとに基づいて、表用処理使用時の第2回転推定姿勢を推定してもよい。推定器で推定される表用処理使用時の第2回転推定姿勢は、第2姿勢の物体10をおもて面101が撮像装置8側を向いていると仮定して第2姿勢の物体10の姿勢を推定した推定姿勢を回転軸Jの回りの角度-Wだけ回転させた回転姿勢に相当する姿勢となる。また、機械学習が用いられて裏用処理使用時の第2回転推定姿勢を推定するように学習された推定器が、第2撮像画像と回転軸Jの回りの角度-Wとに基づいて、裏用処理使用時の第2回転推定姿勢を推定してもよい。推定器で推定される裏用処理使用時の第2回転推定姿勢は、物体10の裏面102が撮像装置8側を向いていると仮定して第2姿勢の物体10の姿勢を推定した推定姿勢を回転軸Jの回りの角度-Wだけ回転させた回転姿勢に相当する姿勢となる。
【0140】
以上のように、処理装置は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この開示がそれに限定されるものではない。また、上述した各種例は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の例が、この開示の範囲から外れることなく想定され得るものと解される。
【0141】
例えば、本例では、第1撮像画像に写っている物体10の様子が、おもて面では
図3の左から1番目の外観で、裏面では
図3の左から3番目の外観としたが、これに限らず、例えば、おもて面が
図7の左から1番目の外観で裏面が
図7の左から2番目の外観としたり、おもて面が
図8の左から1番目の外観で裏面が
図8の左から2番目の外観としたりしてもよい。これらの場合、Wを任意の微小な角度としてもよい。
【0142】
本開示には以下の内容が含まれる。
【0143】
一実施形態において、(1)処理装置は、撮像装置から外観が互いに類似する複数の面を有する物体の第1姿勢の第1画像を取得し、前記複数の面のうち前記撮像装置側を向く対象面を特定する制御部を備え、前記制御部は、前記物体の姿勢が前記第1姿勢とは異なる第2姿勢の第2画像をさらに取得し、前記第1画像及び前記第2画像に基づいて前記対象面を特定する。
【0144】
(2)上記(1)の処理装置において、前記制御部は、前記第1画像に基づいて、前記複数の面のそれぞれが前記対象面であるとした場合の前記物体の姿勢を推定した複数の第1推定姿勢を取得し、前記第2画像に基づいて、前記複数の面のそれぞれが前記対象面であるとした場合の前記物体の姿勢を推定した複数の第2推定姿勢を取得し、前記複数の第1推定姿勢及び前記複数の第2推定姿勢に基づいて前記対象面を特定する。
【0145】
(3)上記(2)の処理装置において、前記第2姿勢は、前記物体の姿勢が前記第1姿勢とは異なるように前記物体が前記撮像装置に対して相対的に回転した姿勢であり、前記制御部は、前記複数の第1推定姿勢が回転した複数の第1回転推定姿勢を取得し、前記複数の第1回転推定姿勢と前記複数の第2推定姿勢とを、対応する面ごとに比較する比較処理を行い、当該比較処理の結果に基づいて前記対象面を特定する。
【0146】
(4)上記(2)の処理装置において、前記制御部は、前記複数の第1推定姿勢に基づいて、前記物体の前記第1画像に写る姿勢を、前記物体を保持する保持機構の座標系で示す複数の第1変換推定姿勢を取得し、前記複数の第2推定姿勢に基づいて、前記物体の前記第2画像に写る姿勢を前記保持機構の前記座標系で示す複数の第2変換推定姿勢を取得し、前記複数の第1変換推定姿勢と前記複数の第2変換推定姿勢とに基づいて前記対象面を特定する。
【0147】
(5)上記(1)の処理装置において、前記第2姿勢は、前記物体の姿勢が前記第1姿勢とは異なるように前記物体が前記撮像装置に対して相対的に回転した姿勢であり、前記制御部は、前記第1画像に基づいて、前記複数の面のそれぞれが前記対象面であるとした場合の前記物体の姿勢を推定した複数の第1推定姿勢を取得し、前記複数の第1推定姿勢が回転した複数の第1回転推定姿勢を取得し、前記複数の第1回転推定姿勢と前記第2画像との類似度に基づいて、前記対象面を特定する。
【0148】
(6)上記(5)の処理装置において、前記制御部は、前記物体の姿勢がそれぞれ対応付けられた複数のテンプレートと画像とを比較するテンプレートマッチングを実行可能であり、前記複数の第1回転推定姿勢のそれぞれに対応する対応テンプレートを特定し、前記対応テンプレートと前記第2画像とを比較するテンプレートマッチングを行い、当該テンプレートマッチングの結果に基づいて、前記対象面を特定する。
【0149】
(7)上記(1)から(6)のいずれか一つの処理装置において、前記制御部は、前記物体を保持する保持機構の移動によって変更された前記第2姿勢の前記第2画像を取得する。
【0150】
(8)上記(1)から(6)のいずれか一つの処理装置において、前記制御部は、前記撮像装置の移動によって変更された前記第2姿勢の前記第2画像を取得する。
【0151】
(9)上記(1)から(8)のいずれか一つの処理装置において、前記制御部は、前記第1画像に基づいて、前記複数の面のそれぞれが前記対象面であるとした場合の前記物体の姿勢を推定した複数の第1推定姿勢を取得し、前記複数の第1推定姿勢のうち、特定した前記対象面に対応する第1推定姿勢を、前記第1画像が前記撮像装置で生成される場合の前記物体の姿勢の最終的な推定結果とする。
【0152】
(10)上記(2)から(9)のいずれか一つの処理装置において、前記制御部は、前記複数の第2推定姿勢または前記複数の第1回転推定姿勢のうち、特定した前記対象面に対応する第2推定姿勢または第1回転推定姿勢を、前記第2画像が前記撮像装置で生成される場合の前記物体の姿勢の最終的な推定結果とする。
【0153】
(11)上記(1)の処理装置において、前記制御部は、前記第2画像に基づいて、前記複数の面のそれぞれが前記対象面であるとした場合の前記物体の姿勢を推定した複数の第2推定姿勢を取得し、前記複数の第2推定姿勢及び前記第1画像に基づいて前記対象面を特定する。
【0154】
(12)上記(11)の処理装置において、前記第2姿勢は、前記物体の姿勢が前記第1姿勢とは異なるように前記物体が前記撮像装置に対して相対的に回転した姿勢であり、前記制御部は、前記複数の第2推定姿勢が回転した複数の第2回転推定姿勢を取得し、前記複数の第2回転推定姿勢及び前記第1画像に基づいて前記対象面を特定する。
【0155】
(13)上記(12)の処理装置において、前記制御部は、前記第1画像に基づいて、前記複数の面のそれぞれが前記対象面であるとした場合の前記物体の姿勢を推定した複数の第1推定姿勢を取得し、前記複数の第2回転推定姿勢及び前記複数の第1推定姿勢に基づいて前記対象面を特定する。
【0156】
(14)プログラムは、コンピュータ装置を、上記(1)から(13)のいずれか一つの処理装置として機能させるためのプログラムである。
【符号の説明】
【0157】
1 処理装置
2 制御部
4,5 インタフェース
8 撮像装置
10 物体
30 プログラム
91 エンドエフェクタ(保持機構)
101 おもて面
102 裏面