JP2014081863A - 情報処理装置、情報処理方法、及び、プログラム - Google Patents
情報処理装置、情報処理方法、及び、プログラム Download PDFInfo
- Publication number
- JP2014081863A JP2014081863A JP2012230513A JP2012230513A JP2014081863A JP 2014081863 A JP2014081863 A JP 2014081863A JP 2012230513 A JP2012230513 A JP 2012230513A JP 2012230513 A JP2012230513 A JP 2012230513A JP 2014081863 A JP2014081863 A JP 2014081863A
- Authority
- JP
- Japan
- Prior art keywords
- foreground
- state
- model
- image
- coordinate system
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/163—Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Mechanical Engineering (AREA)
- Mathematical Physics (AREA)
- Robotics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Image Analysis (AREA)
Abstract
【課題】物体の操作に関する操作モデルとして、汎用性が高い操作モデルを提供する。
【解決手段】例えば、エージェントのハンドによって操作される操作対象物体とハンド等が映る、実際に観測される画像である実画像を用いて、ハンドによる操作対象物体の操作に関する操作モデルの学習が行われる。操作モデルでは、操作対象物体を基準とする物体基準座標系の各位置において、ハンドの状態が変化したときの、ハンドの位置及び状態変化と、ハンドの状態変化によって生じる操作対象物体の状態変化とが対応付けられる。本技術は、例えば、エージェントのハンドによって、操作対象物体を操作する場合に適用できる。
【選択図】図12
【解決手段】例えば、エージェントのハンドによって操作される操作対象物体とハンド等が映る、実際に観測される画像である実画像を用いて、ハンドによる操作対象物体の操作に関する操作モデルの学習が行われる。操作モデルでは、操作対象物体を基準とする物体基準座標系の各位置において、ハンドの状態が変化したときの、ハンドの位置及び状態変化と、ハンドの状態変化によって生じる操作対象物体の状態変化とが対応付けられる。本技術は、例えば、エージェントのハンドによって、操作対象物体を操作する場合に適用できる。
【選択図】図12
Description
本技術は、情報処理装置、情報処理方法、及び、プログラムに関し、特に、例えば、物体の操作に関する操作モデルとして、汎用性が高い操作モデルを提供することができるようにする情報処理装置、情報処理方法、及び、プログラムに関する。
例えば、マニピュレータに、操作対象の物体を、自律的に操作させる場合には、物体を操作する環境での物体の運動を正確に再現するモデルが、物体の操作に関する操作モデルとして、あらかじめ作り込まれ、その操作モデルを用いて、マニピュレータの運動計画が、解析的にたてられる。
操作モデルとしては、例えば、物体の形状に関するデータや、剛体の動力学モデル等が、マニピュレータの設計者によって作り込まれる。
以上のように、操作モデルを、あらかじめ作り込む場合には、操作モデルに想定されていない物体の形状の変化や摩擦の変化等の外乱等の、物体を操作する環境の変化が生じると、その変化後の環境と操作モデルとの間に、齟齬が生じ(一貫性が失われ)、物体の正確な操作(期待している操作)が困難になる。
そこで、物体の形状に関するデータや、剛体の動力学モデル等を、あらかじめ仮定せずに、環境中での物体の操作の経験を基に、学習によって、物体の操作をすることができるようになるための学習型の操作モデルが提案されている(例えば、非特許文献1)。
K. Kawamoto, K. Noda, T. Hasuo, and K. Sabe, "Development of object manipulation through self-exploratory visuomotor experience," in Proceedings of the IEEE International Conference on Development and Learning (ICDL 2011), 2011.
非特許文献1では、環境中の物体の絶対的な位置及び姿勢(マニピュレータにおいて観測される画像の背景としての環境における、前景としての物体の位置及び姿勢)に依存して、操作モデルの学習が行われる。そのため、物体が、未経験の場所(例えば、マニピュレータが移動したことがない場所)に置かれた場合には、マニピュレータでは、物体が置かれた状態が、未学習の状態と判断され、物体を正確に操作するアクションを行うことが困難であることがある。
物体が、環境中のどの場所に、どのような姿勢で置かれても、その物体を正確に操作することができるように、操作モデルを学習する方法としては、環境中を万遍なく物体が移動した経験を、学習データとして準備し、その学習データすべてを用いて、操作モデルの学習を行う方法がある。
しかしながら、この方法では、経験としての学習データの準備(アクションの試行)、及び、その学習データを用いた操作モデルの学習の完了に、膨大な時間を要する。
したがって、物体が、経験済みの場所に置かれた場合だけでなく、物体が、未経験の場所に置かれた場合であっても、物体を正確に操作することができる、いわば汎用性が高い操作モデルの提案が要請されている。
本技術は、このような状況に鑑みてなされたものであり、物体の操作に関する操作モデルとして、汎用性が高い操作モデルを提供することができるようにするものである。
本技術の一側面の情報処理装置、又は、プログラムは、第1の物体と第2の物体とが映る、実際に観測される画像である実画像を用いて、前記第1の物体を基準とする物体基準座標系の各位置において、前記第2の物体の状態が変化したときの、前記第2の物体の位置及び状態変化と、前記第2の物体の状態変化によって生じる前記第1の物体の状態変化とを対応付ける、前記第2の物体による前記第1の物体の操作に関する操作モデルの学習を行う操作モデル学習部を備える情報処理装置、又は、情報処理装置として、コンピュータを機能させるためのプログラムである。
本技術の一側面の情報処理方法は、第1の物体と第2の物体とが映る、実際に観測される画像である実画像を用いて、前記第1の物体を基準とする物体基準座標系の各位置において、前記第2の物体の状態が変化したときの、前記第2の物体の位置及び状態変化と、前記第2の物体の状態変化によって生じる前記第1の物体の状態変化とを対応付ける、前記第2の物体による前記第1の物体の操作に関する操作モデルの学習を行うステップを含む情報処理方法である。
以上のような一側面においては、第1の物体と第2の物体とが映る、実際に観測される画像である実画像を用いて、前記第1の物体を基準とする物体基準座標系の各位置において、前記第2の物体の状態が変化したときの、前記第2の物体の位置及び状態変化と、前記第2の物体の状態変化によって生じる前記第1の物体の状態変化とを対応付ける、前記第2の物体による前記第1の物体の操作に関する操作モデルの学習が行われる。
なお、情報処理装置は、独立した装置であっても良いし、1つの装置を構成している内部ブロックであっても良い。
また、プログラムは、伝送媒体を介して伝送することにより、又は、記録媒体に記録して、提供することができる。
本技術の一側面によれば、物体の操作に関する操作モデルとして、汎用性が高い操作モデルを提供することができる。
[第0章 本技術の概要]
図1は、本技術の概要を説明する図である。
本技術は、例えば、図1に示すように、環境中の操作対象の物体(操作対象物体)(第1の物体)を操作するのに制御される制御対象の物体(制御対象物体)(第2の物体)としてのハンド(マニピュレータ)等と、環境を観測(撮影)することが可能なカメラ等とを具備したロボット等の、アクション可能なエージェントによって、実環境下での物体(操作対象物体)の操作を実現する際に必要な、物体の操作に関する操作モデルを、カメラで観測される画像から学習し、その操作モデルを用いて、物体の操作を行うための技術である。
すなわち、本技術では、エージェントにおいて実際に観測される実画像から、操作モデルの学習が行われる。そして、その操作モデルを用いて、ハンド(制御対象物体)のアクションが行われ、そのハンドのアクションによって、環境中の物体(操作対象物体)が操作される。
したがって、本技術では、操作モデルは、実画像を用いた学習によって獲得されるので、操作モデルとして、操作対象物体の形状に関する知識や剛体の動力学モデル等を、あらかじめ作り込む必要がなく、学習によって任意形状の操作対象物体の操作を行うことが可能となる。
また、本技術の操作モデルは、ハンド(制御対象物体)の動きと、そのハンドの動きによって生じる物体(操作対象物体)の動きとを確率的に対応付けるモデルであり、ハンドの動き(状態変化)と物体の動き(状態変化)との確率的な関係のみに着目して得ることができる。
さらに、本技術の操作モデルは、ハンドの動きに対して生じる物体の動きを予測することができる予測モデル(順モデル)、及び、目標とする物体の動きを生じさせるために必要なハンドの動きを導出することができる制御モデル(逆モデル)のいずれとしても利用することができる。
また、本技術の操作モデルは、追加学習が可能な追加学習型の操作モデルでもあり、追加学習によって、環境の変化に適応することができる。
本技術の操作モデルの学習では、操作対象物体の環境中の絶対的な位置や姿勢によらずに用いることができる、いわば汎用性が高い操作モデルを獲得するため、すなわち、操作モデルの汎用性を実現するため、操作対象物体を基準とする物体基準座標系で表される物体の位置や姿勢が、操作モデルの学習の学習データとして用いられる。
本技術では、物体基準座標系で表される物体の位置や姿勢を用いて、操作モデルの学習が行われることにより、環境中の物体の絶対的な位置及び姿勢に依存して、学習が行われる場合に比較して、より少ない経験で、物体を正確に操作することが可能な操作モデルを得ることができる。
なお、操作モデルの学習に用いられる画像(実画像)は、エージェントにおいて実際に観測することができる実画像であればよく、例えば、ビデオカメラで撮影した動画や、コンピュータゲームの画面をキャプチャした動画等を採用することができる。
また、本実施の形態では、後述するように、エージェントにおいて観測される実画像から、物体やハンドに対応する前景(物体やハンドが映っている部分)の見えのモデルである前景見えモデルの学習を行い、その前景見えモデルを用いて、実画像から、物体やハンドを認識するが(実画像に映る物体やハンドを認識するが)、本技術の操作モデルの学習にあたっては、前景見えモデルの学習は、必須ではない。
すなわち、本技術の操作モデルの学習にあたって、何らかの方法で、実画像上の物体やハンドを認識し、その位置(重心の位置等)及び姿勢を把握することができるのであれば、前景見えモデルの学習(、及び、後述する背景見えモデルの学習)は、行う必要はない。
[第1章 環境設定]
図2は、本技術が適用される環境の例を説明する図である。
図2では、2次元平面としての環境に、L字型の物体と、エージェントのハンド(マニピュレータ)とが置かれている。
エージェントのハンドは、腕に相当するアームの先端に取り付けられており、エージェントが、アームを動かすことによって、そのアームの先端に取り付けられたハンドも動く。したがって、ハンドは、エージェントが自律的に動かすことができる。
一方、L字型の物体は、自律的に動くことはなく、ハンド等の外部から力が加えられたときに、その加えられた力に従って動く。
本実施の形態では、L字型の物体が、操作対象物体であり、ハンド(マニピュレータ)が、制御対象物体である。
エージェントでは、カメラによって環境が撮影され、背景として、環境が映り、その背景に重なる前景として、位置や姿勢を変化させながら動くL字型の物体、及び、ハンドが映った画像が観測される。
なお、図2では、2次元の環境を図示してあるが、本技術は、3次元の環境にも適用することができる。
また、図2では、エージェントにおいて観測される画像には、L字型の物体に対応する前景と、ハンドに対応する前景との2つの前景が存在するが、画像に存在する前景は、1つであってもよいし、3つ以上であってもよい。
本技術では、画像に存在する前景のうちのi番目の前景#iについて、時刻tでの重心(慣性質量の重心)の位置や姿勢等の状態をzi tと、移動等のために時刻tに前景が行ったアクション、又は、前景に加えられたアクションをui tと、それぞれ表す。
また、画像の背景を表すモデルを、背景モデルというとともに、画像の前景#iを表すモデルを、前景モデル#iともいう。
前景モデル#iは、前景#iの見えのモデルである前景見えモデルμiを含む。
前景見えモデルμiは、前景#iのテクスチャを表す前景テクスチャモデルτiと、前景#iの形状を表す前景形状モデルσiとを含み、式(1)で表現される。
背景モデルは、背景の見えのモデルである背景見えモデルμwを含む。
背景見えモデルμwは、背景全体のテクスチャを表す背景テクスチャモデルτwを含み、式(2)で表現される。
本技術では、画像の観測値を生成する生成モデルが、以上のような前景モデル#i、及び、背景モデルを含み、各時刻tの画像の観測値(以下、観測画像ともいう)xtを生成する。
図3は、前景モデル#i、及び、背景モデル、並びに、前景モデル#i、及び、背景モデルを含む生成モデルにおいて生成(観測)される観測画像xtの例を示す図である。
前景モデル#iにおいて、前景見えモデルμiの前景テクスチャモデルτiと前景形状モデルσiとは、例えば、同一のサイズの画像であり、そのサイズとしては、前景のサイズとして想定される最大のサイズを採用することができる。
前景テクスチャモデルτiとしての画像は、前景#iのテクスチャとしての値(例えば、RGB等)を、各画素(ピクセル、ボクセル)の画素値として有する。
前景形状モデルσiとしての画像は、例えば、0ないし1の範囲の連続値を、各画素の画素値として有する。前景形状モデルσiの各画素の画素値は、その画素が、前景(が映っている画素)である確率を表す。
いま、同一位置の画素の画素値どうしの積を、*で表すこととすると、前景見えモデルμiに含まれる前景テクスチャモデルτiと、前景形状モデルσiとの同一位置の画素の画素値どうしの積τi*σiによって、前景#iの見えが表現される。
前景見えモデルμiが、背景見えモデルμwに重畳されて、観測画像xtが生成される。図3では、2つの前景見えモデルμ1及びμ2が、背景見えモデルμw=τwに重畳され、観測画像xtが生成されている。
図4は、前景#iの状態zi tを説明する図である。
前景#iの状態zi tの表現については、環境(背景)における前景#iの、いわば絶対的な状態を表現するための座標系としての世界座標系Oと、世界座標系O上での前景#iの状態によらず、前景モデル(前景見えモデル)における前景の状態を表現するための座標系としてのローカル座標系O'が定義される。ローカル座標系O'は、前景モデル#iごとに、かつ、時刻tごとに定義される。
世界座標系Oとしては、例えば、背景見えモデルμw=τwの上から下方向を1つの軸としてのx軸とし、左から右方向を他の1つの軸としてのy軸とするとともに、背景見えモデルμw=τwの左上の点を原点とする2次元座標系を採用することができる。
ローカル座標系O'としては、例えば、前景見えモデルμ(前景テクスチャモデルτi、前景形状モデルσi)の上から下方向を1つの軸としてのx1軸とし、左から右方向を他の1つの軸としてのy1軸とするとともに、前景見えモデルμの左上の点を原点とする2次元座標系を採用することができる。
なお、生成モデルにおいて、前景見えモデルμiを、そのままの姿勢で(回転せずに)、背景見えモデルμwに重畳した場合、ローカル座標系O'のx'軸は、世界座標系Oのx軸と平行になり、かつ、ローカル座標系O'のy'軸は、世界座標系Oのy軸と平行になる。図4において、点線の2次元座標系は、前景見えモデルμiを、そのままの姿勢で、背景見えモデルμwに重畳した場合のローカル座標系O'を表している。
前景#iの状態zi tは、例えば、時刻tの前景#i(前景見えモデルμi)の質量重心の世界座標系O上の位置si t、位置si tが変化する速度(位置si tの微分)s・i t、前景#iの姿勢qi t、姿勢qi tが変化する速度(姿勢qi tの微分)q・i tを含み、式(3)で表現される。
ここで、前景#iの姿勢qi tとしては、例えば、世界座標系Oの軸x(y)に対して、ローカル座標系O'の軸x'(y')がなす角度(回転角)を採用することができる。
前景#iのローカル座標系O'は、背景見えモデルμwに前景見えモデルμiが重畳される前景#iの姿勢qi tだけ傾く。また、前景#iのローカル座標系O'上では、その前景#i(前景見えモデルμi)は動かない。したがって、前景#iのローカル座標系O'上では、その前景#iの重心(質量重心)の位置si c'は、固定であり、姿勢も、固定である。
なお、時刻tに生成モデルにおいて観測される観測値(観測画像)xtは、時刻tに存在する前景すべての前景見えモデルμiを、背景見えモデルμw=τwに重畳して得られる画像(観測画像)λtを用い、式(4)で定義する。
[第2章 前景モデル、及び、背景モデルの学習]
[第2.1節 生成モデルのフレームワーク]
図5は、観測画像を生成する生成モデルのグラフィカルモデルの例を示す図である。
図5は、2つの前景#1及び#2が存在する画像の生成モデルのグラフィカルモデルを示している。
図5の生成モデルによれば、前景#1の時刻tの状態z1 tが、直前の時刻t-1の状態z1 t-1を元に決定される。
同様に、前景#2の時刻tの状態z2 tが、直前の時刻t-1の状態z2 t-1を元に決定される。
そして、生成モデルでは、前景見えモデルμ1(としての画像)が、前景#1の時刻tの状態z1 tに従って、背景見えモデルμw(としての画像)に重畳され、前景として、前景#1のみが存在する観測画像xtが生成される。さらに、生成モデルでは、前景見えモデルμ2(としての画像)が、前景#2の時刻tの状態z2 tに従って、直前に前景が重畳された観測画像xt、すなわち、ここでは、前景として、前景#1のみが存在する観測画像xtに重畳されることで、前景として、2つの前景#1及び#2が存在する観測画像xtが、時刻tに観測される観測画像xtとして生成される。図5では、前景として、2つの前景#1及び#2しか存在しないが、3つ以上の前景が存在する場合には、生成モデルでは、以下同様にして、その3つ以上の前景が存在する観測画像xtが、時刻tに観測される観測画像xtとして生成される。
図5において、関数f()は、前景見えモデルμ1、前景#1の時刻tの状態z1 t、前景見えモデルμ2、前景#2の時刻tの状態z2 t、及び、背景見えモデルμwを用いて、観測画像xtを生成する関数であり、生成モデルを表す。
ここで、生成モデルにおいて生成される時刻tの観測画像xtは、確率変数(観測値の期待値)であり、観測画像xtの尤度は、実際に観測される画像の観測値x~tとの比較によって求めることができる。
前景見えモデルμi、背景見えモデルμw、及び、前景#iの状態ziは、画像の観測値を生成する生成モデルのパラメータである。また、前景#iの状態ziは、時々刻々変化する潜在変数であり、前景見えモデルμi、及び、背景見えモデルμwは、時刻によらない恒久的なパラメータ(モデルパラメータ)である。
なお、前景の総数をNで表すこととする。図5では、前景の総数Nを、2としてあるが、前景の総数Nとしては、1や3以上の値を採用することができる。
生成モデルにおいて生成される観測画像xtは、潜在変数としての前景#iの状態zi t、並びに、モデルパラメータとしての前景見えモデルμi t、及び、背景見えモデルμwによって決定される。したがって、観測画像xtは、生成モデルとしての関数f()を用いた式(5)で表現することができる。
[第2.2節 EMアルゴリズム]
図6は、EMアルゴリズムを説明するフローチャートである。
図5に示した生成モデルのような、潜在変数(zi t)を有するモデルについて、実際に観測される観測値を用いて、モデルパラメータの最尤解を求める方法としては、例えば、EM(Expectation-Maximization)アルゴリズムがある。
いま、すべての観測値の集合をXと、潜在(隠れ)変数の集合をZと、それぞれ表すこととする。
観測値Xは観測することができるが、潜在変数Zは観測することができない。かかる観測値Xと潜在変数Zの集合{X,Z}は、完全データと呼ばれ、観測値Xは、不完全データと呼ばれる。
完全データ{X,Z}が、確率分布であるモデルによってモデル化することができることとし、そのモデル(のモデルパラメータ)を、 θと表すこととする。
モデルθにおいて、観測値Xが観測される対数尤度ln(p(X|θ))は、モデルθにおいて、完全データ{X,Z}が観測される尤度p(X,Z|θ)を、潜在変数Zで周辺化し、対数をとることにより求めることができ、式(6)で表される。
ここで、lnは、自然対数を表す。
また、以降において、潜在変数Zについての総和(Σ)を、積分に置き換えることで、潜在変数Zが連続値である場合についても、同一の議論が成立する。
観測することができるのは、不完全データXだけであり、完全データ{X,Z}のすべてを観測することはできない。したがって、完全データ{X,Z}の尤度(関数)p(X,Z|θ)を用いることはできないため、EMアルゴリズムでは、代わりに、潜在変数Zに関する事後確率の期待値を考える。
潜在変数Zに関する事後確率の期待値を考えるプロセスが、EMアルゴリズムのEステップである。
EMアルゴリズムでは、モデルθにおいて、観測値Xが観測されたときの、潜在変数Zの事後分布p(Z|X,θ)の計算に、現在のモデルパラメータθoldが用いられ、この事後分布p(Z|X,θold)が、任意のモデルパラメータθにおいて、完全データ{X,Z}が観測される対数尤度(以下、完全データ対数尤度ともいう)ln(p(X,Z|θ))の期待値Q(θ,θold)の計算に用いられる。
したがって、期待値Q(θ,θold)は、式(7)で表される。
式(7)では、完全データ対数尤度ln(p(X,Z|θ))の期待値Q(θ,θold)が、完全データ対数尤度ln(p(X,Z|θ))の確率分布として、事後分布p(Z|X,θold)を用いて計算される。
EMアルゴリズムでは、Eステップで、以上のようにして、期待値Q(θ,θold)が求められた後、Mステップにおいて、式(8)に従い、期待値Q(θ,θold)を最大化するように、モデルパラメータθが、現在のモデルパラメータθoldから新しいモデルパラメータθnewに更新される。
ここで、式(8)argmaxは、Q(θ,θold)を最大にするモデルパラメータθを表す。
なお、最初のEステップが行われる前に、モデルパラメータθ=θoldは、例えば、乱数等によって適当な値に初期化される。
図6を参照して、EMアルゴリズムについて、さらに説明する。
EMアルゴリズムでは、ステップS11において、モデルパラメータθが、適当な初期値θoldに初期化され、処理は、ステップS12に進む。
ステップS12では、Eステップの処理が行われ、処理は、ステップS13に進む。すなわち、ステップS12では、不完全データXを用いて、事後分布p(Z|X,θold)が求められる。
ステップS13では、Mステップの処理が行われ、処理は、ステップS14に進む。すなわち、ステップS13では、事後分布p(Z|X,θold)を用いて求められる、完全データ対数尤度ln(p(X,Z|θ))の期待値Q(θ,θold)を最大化するように、新たなモデルパラメータθnewが求められる。
ステップS14では、EMアルゴリズムを終了する所定の収束条件が満たされているかどうかが判定される。
ここで、EMアルゴリズムを終了する収束条件としては、例えば、Eステップ及びMステップを、所定回数だけ繰り返したことや、新たなモデルパラメータθnewが、直前のモデルパラメータθoldからほとんど変化しなくなったこと、新たなモデルパラメータθnewにおいて観測される観測値Xの尤度が、直前のモデルパラメータθoldにおいて観測される観測値Xの尤度からほとんど変化しなくなったこと等を採用することができる。
ステップS14において、収束条件が満たされていないと判定された場合、処理は、ステップS15に進み、モデルパラメータθが、現在のモデルパラメータθoldから新しいモデルパラメータθnewに更新される。
そして、処理は、ステップS15からステップS12に戻り、以下、同様の処理が繰り返される。
また、ステップS14において、収束条件が満たされていると判定された場合、処理は終了する。
[第2.3節 パーティクルフィルタによる近似]
図7は、完全データ{X,Z}を表現するモデルθのグラフィカルモデルの例を示す図である。
図7では、観測値Xの系列x1,x2,・・・,xt+1が、潜在変数Zの連鎖z1,z2,・・・,zt+1で表され、各観測値xtは、対応する潜在変数ztの値(状態)によって条件付けられている。
モデルθが、EMアルゴリズムのEステップを解析的に計算することが困難なモデルである場合には、数値的サンプリング(モンテカルロサンプリング)に基づく近似推論法を用いてEステップを計算することができる。
モンテカルロサンプリングについては、例えば、C.M. ビショップ, パターン認識と機械学習 下 ベイズ理論による統計的予測, シュプリンガー・ジャパン, 2008, pp.364-365や、Michael Isard and Andrew Blake, CONDENSATION - conditional density propagation for visual tracking, Int. J. Computer Vision, 29, 1, 5-28, 1998等に記載されている。
潜在変数Zが連続値である場合の、完全データ対数尤度ln(p(X,Z|θ))の期待値Q(θ,θold)は、式(7)のサメーション(Σ)を積分に置き換えた式(9)で表される。
式(9)の期待値Q(θ,θold)は、サンプリング法を用い、現在の事後分布p(Z|X,θold)からサンプリングされた潜在変数ZのL個のサンプルZ(l)(l=1,2,・・・,L)の有限和によって、式(10)に示すように近似することができる。
式(10)に従って求められる期待値Q(θ,θold)については、通常のMステップで最適化することができる(期待値Q(θ,θold)を最大化するモデルパラメータθ=θnewを求めることができる)。
以上のように、式(10)に従って求められる期待値Q(θ,θold)を最大化するモデルパラメータθ=θnewを求めるEMアルゴリズムは、モンテカルロEMアルゴリズムと呼ばれる。
一方、観測値Xの系列x1,x2,・・・,xtに対して、逐次的にサンプリングを行う手法として、パーティクルフィルタと呼ばれる逐次モンテカルロアルゴリズムがある。
図8は、パーティクルフィルタを説明する図である。
パーティクルフィルタでは、例えば、図7で示されるグラフィカルモデルで表現されるモデルθにおいて、時刻t-1までに、観測値Xの系列Xt-1={x1,x2,・・・,xt-1}が観測され、時刻tに、状態ztにいる(状態ztになっている)事後分布p(zt|Xt-1)から、L個の状態z(l) t(z(1) t,z(2) t,・・・,z(L) t)がサンプリングされる。このサンプリングされたサンプル(ここでは、状態z(l) t)が、パーティクルと呼ばれる。
時刻tの状態ztにおいて、図5及び式(5)の生成モデルとしての関数f()に従って観測される観測値xt=f(zt)の期待値E[f(zt)]は、状態ztのパーティクル(状態パーティクル)z(l) tを用いて、式(11)で近似することができる。
ここで、w(l) tは、パーティクルz(l) tの重みを表す。重みw(l) tは、(パーティクルとしての)状態z(l) tにおいて、観測値xtが観測される(観測)尤度p(xt|z(l) t)に対応する値であり、式(12)で定義される。
なお、重みw(l) tは、式0≦w(l) t≦1で表される範囲内の値であり、式w(1) t+w(2) t+・・・+w(L) t=1を満たす。
いま、時刻tに、L個のパーティクルz(1) tないしz(L) tと、重みw(1) tないしw(L) tとが得られている場合において、時刻t+1に、観測値xt+1を観測したとき、時刻tまでに、観測値の系列Xt={x1,x2,・・・,xt}が観測され、時刻t+1に、状態zt+1にいる事後分布p(zt+1|Xt)は、時刻tに状態z(l) tにいて、時刻t+1に状態zt+1に遷移する遷移確率p(zt+1|z(l) t)と、パーティクルz(l) tの重みw(l) tとを用い、式(13)で求めることができる。
式(13)の事後分布p(zt+1|Xt)は、重みw(l) tを、混合係数とする混合分布であり、パーティクルフィルタでは、混合係数としての重みw(l) tに対応する確率で、パーティクルz(l) tを選択するリサンプリングが行われる。
図8を参照して、パーティクルフィルタについて、さらに説明する。
パーティクルフィルタでは、時刻t-1までに、観測値Xの系列Xt-1={x1,x2,・・・,xt-1}が観測され、時刻tに、状態ztにいる事後分布p(zt|Xt-1)が、L個のパーティクルz(1) t-1ないしz(L) t-1、及び、重みz(1) t-1ないしz(L) t-1によってサンプル表現される。
ここで、図8では、パーティクルz(l) tの個数Lが、5個になっている。
パーティクルフィルタでは、次の時刻tのサンプル表現を求めるために、式(13)の混合分布(事後分布)p(zt|Xt-1)の遷移確率p(zt|z(l) t-1)に基づき、時刻t-1のL個のパーティクルz(1) t-1ないしz(L) t-1の次の時刻tの遷移先を算出すること、すなわち、次の時刻tのL個のパーティクルz(1) tないしz(L) tを予測(生成)することが行われる。
ここで、図8において、丸印は、パーティクルを表している。また、パーティクルを表す丸印の中の数字は、そのパーティクルとしての状態z(l) tの値(図8では、図が煩雑になるのを避けるため、状態z(l) tの値をスカラ値にしてある)の例を示している。
図8では、例えば、時刻t-1のパーティクルとしての状態z(5) t-1を表す丸印の数字は、5.0になっているが、その時刻t-1のパーティクルとしての状態z(5) t-1から、遷移確率p(zt|z(5) t-1)に基づいて予測された時刻tのパーティクルとしての状態z(5) tを表す丸印の数字は、5.4になっている。
次の時刻tのL個のパーティクルz(1) tないしz(L) tが予測された後、パーティクルフィルタでは、時刻tの観測値xtを用い、パーティクルz(l) tにおいて、観測値xtが観測される観測尤度p(xt|z(l) t)が計算される。
さらに、パーティクルフィルタでは、観測尤度p(xt|z(l) t)を用い、式(12)に従って、パーティクルz(l) tの重みw(l) tが求められる。図8では、パーティクルz(l) tを表す丸印が、その重みw(l) tの値に相当する大きさで、図示されている。
その後、パーティクルフィルタでは、重みw(l) tに対応する確率で、パーティクルz(l) tがリサンプリングされる。
そして、パーティクルフィルタでは、そのリサンプリングされたパーティクルz(l) tを、重みw(l) tとともに、時刻tまでに観測値Xの系列Xt={x1,x2,・・・,xt}が観測され、時刻t+1に状態zt+1にいる事後分布p(zt+1|Xt)のサンプル表現として用いて、同様の処理が繰り返される。
なお、リサンプリングでは、重みw(l) tに対応する確率で、パーティクルz(l) tがサンプリングされるので、重みw(l) tが小さいために、一度もサンプリングされないパーティクルz(l) tは消滅する。
また、リサンプリングでは、重みw(l) tが大きいパーティクルz(l) tは、複数回、サンプリングされることがあるが、その場合、パーティクルz(l) tと同一の値(状態)のパーティクルが、サンプリングの回数と同一の個数だけ複製される。
以上のように、リサンプリングでは、パーティクルz(l) tと同一の値Vの複数のパーティクルが生じることがあるが、その複数のパーティクルそれぞれの値は、式(13)の遷移確率p(zt+1|z(l) t)に基づいて、次の時刻tのパーティクルの予測(遷移先の算出)が行われるときに、同一の値Vの周辺に散らばって、異なる値となる。
ここで、重みw(l) tに対応する確率で、パーティクルz(l) tをサンプリングするリサンプリングの方法としては、例えば、ルーレット法や、等間隔サンプリングと呼ばれる方法等がある。
ルーレット法では、0ないし1の範囲がL個の区分に区切られ、各区分が、L個の重みw(1) t,w(2) t,・・・,w(L) tに、順番に割り当てられる。重みw(l) tに割り当てられる区分の幅は、重みw(l) tの大きさに比例する幅とされる。
そして、ルーレット法では、0ないし1の範囲内の値を、乱数によってサンプリングし、そのサンプリングされた値を含む区分が割り当てられている重みw(l) tに対応するパーティクルを複製することが、サンプリングの回数がパーティクルの総数Lと同一になるまで繰り返される。
等間隔サンプリングでは、ルーレット法と同様に、0ないし1の範囲が、重みw(l) tの大きさに比例する幅のL個の区分に区切られ、各区分が、L個の重みw(1) t,w(2) t,・・・,w(L) tに割り当てられる。
そして、等間隔サンプリングでは、0ないし1の範囲内の値が、乱数によってサンプリングされ、そのサンプリングされた値を含む区分が割り当てられている重みw(l) tに対応するパーティクルが複製される。
その後、等間隔サンプリングでは、0ないし1の範囲内の値のうちの、直前にサンプリングされた値に所定の値を加算した値をサンプリングし、そのサンプリングされた値を含む区分が割り当てられている重みw(l) tに対応するパーティクルを複製することが、サンプリングの回数がパーティクルの総数Lと同一になるまで繰り返される。
なお、直前にサンプリングされた値に所定の値を加算した値が、1を超える場合には、その値の小数点以下の値がサンプリングされる。
ルーレット法では、L個の乱数を計算する必要があるのに対して、等間隔サンプリングでは、1個の乱数を計算するだけで済むので、等間隔サンプリングは、ルーレット法に比較して、乱数の計算コストが小さい。
[第3章 生成モデル、及び、生成モデルの学習の具体的な実装]
[第3.1節 生成モデルの実装]
図9は、前景モデル#i、及び、背景モデルを用いて、観測画像を生成する生成モデルθ、すなわち、式(5)の関数f()の実装の例を示す図である。
生成モデルでは、背景見えモデルμw上に、状態z1 tが表す位置si tと姿勢qi tで、前景見えモデルμiが重畳される。
背景見えモデルμwへの前景見えモデルμi tの重畳では、背景見えモデルμwとしての背景テクスチャモデルτw(が表すテクスチャ)と、前景見えモデルμiの前景テクスチャモデルτiとが、前景見えモデルμiの前景形状モデルσiを、α値として用いて、αブレンディングされる。
例えば、いま、1番目の前景#1だけが、観測画像xtに存在することとすると、モデルパラメータ(前景見えモデルμi、背景見えモデルμw、及び、前景#iの状態zi)が求められた生成モデルにおいて観測される、1つの前景#1だけが存在する観測画像xt=λ1(z1 t,μ1,μw)は、式(14)で表される。
ここで、σ1(ri)は、前景形状モデルσ1のローカル座標系O'上の点riの画素値を表し、τ1(ri)は、前景テクスチャモデルτ1のローカル座標系O'上の点riの画素値を表す。さらに、τw(rOi t)は、背景テクスチャモデルτwの世界座標系O上の点rOi tの画素値を表す。
また、ローカル座標系O'上の点riに、上付きのOと、下付の時刻のインデクスtを付した点rOi tは、時刻tのローカル座標系O'上の点riに対応する世界座標系O上の点(対応点)を表す。
例えば、世界座標系Oの原点回りに、角度Bだけ回転した(傾いた)ローカル座標系O'上の点Aを、世界座標系O上の対応点に写像する写像関数を、R(A,B)と表すこととすると、ローカル座標系O'上の点riの、世界座標系O上の対応点rOi tは、写像関数R()を用いて、式(15)で表される。
式(14)によれば、ローカル座標系O'上の点r1が、前景見えモデルμ1(前景テクスチャモデルτ1、又は、前景形状モデルσ1としての画像)上の点である場合(r1∈μ1)、その点r1の対応点rO1 tの画素値λ1 t(rOi t)としては、背景テクスチャモデルτwの対応点rO1 tの画素値τw(rO1 t)と、前景テクスチャモデルτ1の点r1の画素値τ1(r1)とを、前景形状モデルσ1の点r1の画素値σ1(r1)を、α値として用いてαブレンディングした値(1-σ1(r1))τw(rO1 t)+σ1(r1)τ1(r1)が採用される。
さらに、式(14)によれば、ローカル座標系O'上の点r1が、前景見えモデルμ1上の点でない場合、その点r1の対応点rO1 tの画素値λ1 t(rO1 t)としては、背景テクスチャモデルτwの対応点rOi tの画素値τw(rO1 t)が採用される。
観測画像xtに、複数の前景が存在する場合(前景モデルが複数存在する場合)、複数の前景それぞれについて、1番目の前景#1だけが観測画像xtに存在する場合と同様の処理を繰り返し行うことにより、生成モデルにおいて観測される、複数の前景が存在する観測画像xtを求めることができる。
但し、観測画像xtに、複数の前景が存在する場合、2番目以降の前景については、背景テクスチャモデルτw(背景見えモデルμw)に代えて、直前の前景について求められた観測画像xtが用いられる。
したがって、例えば、いま、2つの前景#1及び#2が、観測画像xtに存在することとすると、図9に示すように、まず、生成モデルにおいて観測される、1番目の前景#1だけが存在する観測画像xt=λ1(z1 t,μ1,μw)が、式(14)に従って求められる。
そして、1番目の前景#1、及び、2番目の前景#2が存在する観測画像xt=λ1,2(z1 t,z2 t,μ1,μ2,μw)が、図9に示すように、背景テクスチャモデルτwに代えて、式(14)の前景#1について求められた観測画像xt=λ1(z1 t,μ1,μw)を用い、観測画像xt=λ1(z1 t,μ1,μw)と同様にして求められる。
すなわち、1番目の前景#1、及び、2番目の前景#2が存在する観測画像xt=λ1,2(z1 t,(z2 t,μ1,μ2,μw)は、式(16)に従って求められる。
ここで、λ1,2 t(rO2 t)は、1番目の前景#1、及び、2番目の前景#2が存在する観測画像xt=λ1,2(z1 t,(z2 t,μ1,μ2,μw)としての画像の画素値のうちの、(前景#2の)ローカル座標系O'上の点r2の、世界座標系O上の対応点rO2 tの画素値を表す。
3個以上のN個の前景が存在する場合も、同様にして、そのN個の前景が存在する観測画像xt=λ1(z1 t,z2 t,・・・,zN t,μ1,μ2,・・・,μN,μw)を求めることができる。
[第3.2節 前景が1つだけ存在する場合の前景の状態の推定(Eステップ)]
前景が1つだけである場合の、第2.3節で説明したパーティクルフィルタを用いたEステップの具体的な実装について説明する。
なお、ここでは、前景が1つだけであるため、i番目の前景を表すインデクスiの記載は、省略する。
EMアルゴリズムのEステップでは、前回のMステップで更新されたモデルパラメータθ=θoldを用いて、潜在変数Zの事後分布p(Z|X,θold)が求められ、この事後分布p(Z|X,θold)を用いて、完全データ対数尤度ln(p(X,Z|θ))の期待値Q(θ,θold)が、式(7)に従って計算される。
このEステップに、パーティクルフィルタを適用した場合には、時刻tまでに、観測値Xの系列Xt={x1,x2,・・・,xt}が観測されたときの、時刻t+1の潜在変数zt+1の事後分布p(zt+1|Xt)は、式(13)に従って計算することができる。
ここで、式(12)によれば、式(13)の重みw(l) tは、パーティクルとしての状態z(l) tにおいて、観測値xtが観測される観測尤度p(xt|z(l) t)に比例する。
したがって、重みw(l) tを求めるには、観測尤度p(xt|z(l) t)を求める必要がある。
本技術では、前景の状態が、パーティクルとしての状態z(l) tになっていると仮定して、そのパーティクルとしての状態z(l) tに従って、生成モデルにおいて観測される観測画像xt=λtが生成される。
そして、本技術では、生成モデルにおいて観測される観測画像xt=λtの、実際に観測される画像x~t=λ~tに対する誤差(画像λtとλ~tとの距離)が、観測尤度p(xt|z(l) t)として求められる。
すなわち、本技術では、観測尤度p(xt|z(l) t)は、例えば、式(17)に従って求められる。
なお、λt(s)は、生成モデルθにおいて観測される時刻tの観測画像xt=λtである画像の、世界座標系O上の点sの画素値を表し、λt~(s)は、時刻tに実際に観測される実画像λ~tの、世界座標系O上の点sの画素値を表す。
また、式(17)において、K及びσ2は、所定の定数であり、あらかじめ決定される。
時刻tのパーティクルとしての状態z(l) tが、次の時刻t+1に、状態zt+1になる確率、すなわち、パーティクルとしての状態z(l) tの遷移確率p(zt+1|z(l) t)が、ガウス分布(正規分布)に従うこととすると、パーティクルとしての状態z(l) tの遷移モデルは、例えば、式(18)で表すことができる。
ここで、△tは、状態ztを求める時刻の間隔を表し、式(18)では、△t=1である。また、N(A,B)は、平均ベクトル(平均値)がAで、分散共分散行列(分散)がBのガウス分布を表す。
式(18)では、ガウス分布N(0,Σs),N(0,Σs・),N(0,Σq),N(0,Σq・)は、いずれも、平均ベクトルが0のガウス分布である。また、分散共分散行列Σs,Σs・,Σq,Σq・は、あらかじめ決定される。
式(18)の遷移モデルによれば、パーティクルとしての状態が、1時刻前の時刻tの状態としての位置st及び姿勢qt、並びに、その微分値(速度)s・ t及びq・ tに従って決定的に遷移する成分を有しつつ、平均ベクトルが0で、所定の分散共分散行列のガウス分布に従って、確率的に揺らぎながら遷移することとして、時刻t+1の状態zt+1が求められる(予測される)(遷移先が算出される)。
前景が背景上を連続的に移動することを、前提知識として仮定することができる場合、すなわち、前景の状態が環境中を連続的に変化することを仮定することができる場合には、前の時刻の情報(状態zt)を基に、次の時刻の状態zt+1を予測しつつ、ガウス分布のノイズによって近傍をランダムに探索するという式(18)の遷移モデルが有効に機能する。
その結果、パーティクルのリサンプリングの過程で、前景がなる可能性が低い状態に対する状態推定の計算を省くことができ、例えば、環境としての背景を格子状に区切って、すべての格子点について、その格子点の位置に、前景がいるかどうかを推定するような方法に比較して、スケーラビリティを大きくすることができる。
[第3.3節 複数の前景が存在する場合の前景の状態の推定(Eステップ)]
複数の前景が存在する場合の、第2.3節で説明したパーティクルフィルタを用いたEステップの具体的な実装について説明する。
複数の前景が存在する場合、前景#iごとに、その前景#iの状態zi tが存在する。前景#iの状態zi tのl番目のパーティクルを、zi(l) tと表す。また、パーティクルzi(l) tの重みを、wi(l) tと表す。
本技術では、生成モデルで観測される観測画像xt(=λt)は、式(14)ないし式(16)で説明したように生成される。
パーティクルフィルタにおいてパーティクルの重みwi(l) tを求める式(12)の計算に必要な観測尤度p(xt|zi(l) t)を計算するためには、注目している前景#iについては、重みwi(l) tを求めようとするパーティクルとしての状態zi(l) tを用い、かつ、注目している前景#i以外の前景については、その前景の状態のパーティクルの分布と、各パーティクルの重みとを用い、生成モデルで観測される観測画像xt=λtを計算する必要がある。
しかしながら、注目している前景#iの状態zi tのパーティクルzi(l) tの他に、注目している前景#i以外の前景の状態のパーティクルの分布、及び、各パーティクルの重みをも用いて、生成モデルで観測される観測画像xt=λtを計算するのでは、計算コストが大になる。
そこで、本実施の形態では、複数の前景について、独立に、すなわち、注目している前景#i以外の前景を考慮せずに、注目している前景#iだけが、背景上に存在することと仮定することにより、実用上問題ない範囲で厳密性を犠牲にしつつ、計算の高速化を実現する。
注目している前景#iだけが、背景上に存在することを仮定した場合、注目している前景#iが、パーティクルとしての状態zi(l) tになっているときの観測尤度p(xi t|zi(l) t)は、式(19)に従って計算することができる。
なお、λi t(s)は、注目している前景#iだけが、背景上に存在することを仮定した場合に生成モデルθにおいて観測される時刻tの観測画像xt=λi tである画像の、世界座標系O上の点sの画素値を表す。
また、式(19)において、λt~(s)は、式(17)の場合と同様に、時刻tに実際に観測される画像λ~tの、世界座標系O上の点sの画素値を表す。
さらに、式(19)において、K及びσ2は、式(17)の場合と同様に、所定の定数であり、あらかじめ決定される。
注目している前景#iだけが、背景上に存在することを仮定した場合に生成モデルθにおいて観測される時刻tの観測画像xt=λi t=λi(zi t,μi,μw)は、式(20)に従って求めることができる。
ここで、σi(ri)は、前景形状モデルσiのローカル座標系O'上の点riの画素値を表し、τi(ri)は、前景テクスチャモデルτiのローカル座標系O'上の点riの画素値を表す。さらに、τw(rOi t)は、背景テクスチャモデルτwの世界座標系O上の点rOi tの画素値を表す。
また、ローカル座標系O'上の点riに、上付きのOを付した点rOi tは、時刻tのローカル座標系O'上の点riに対応する世界座標系O上の点(対応点)を表し、式(15)に従って求められる。
[第3.4節 前景テクスチャモデルの更新(Mステップ)]
第2.3節で説明したパーティクルフィルタを用いたEステップで行われる前景テクスチャモデルτiの更新の具体的な実装について説明する。
EMアルゴリズムのMステップでは、Eステップで潜在変数Zの事後分布p(Z|X,θold)を用いて計算される完全データ対数尤度ln(p(X,Z|θ)の期待値Q(θ,θold)を最大化するように、モデルパラメータθが、現在のモデルパラメータθoldから新しいモデルパラメータθnewに更新される。
このMステップに、パーティクルフィルタを適用した場合には、モデルパラメータθは、Eステップで求められたパーティクルの重みwi(l) tを用いて更新される。
図10は、パーティクルの重みwi(l) tを用いた前景テクスチャモデルτiの更新を説明する図である。
前景テクスチャモデルτiの更新では、時刻tにおいて、その時刻tの1時刻分の更新データτ~i tを求めるために、図10に示すように、前景#iの状態が、パーティクルとしての状態zi(l) tになっていることとして、その状態zi(l) tになっている前景#iと推定される領域の画像を、時刻tに実際に観測される画像(の観測値)λ~tから切り出し、前景#iのローカル座標系O'上に射影する。
ここで、時刻tに実際に観測される画像(以下、実画像ともいう)λ~tから切り出され、前景#iのローカル座標系O'上に射影された画像を、切り出し画像τ~i(l) tともいう。
切り出し画像τ~i(l) tは、前景テクスチャモデルτi(及び、前景形状モデルσi)と同一サイズの画像であり、式(21)で表される。
ここで、τ~i(l) t(s'i(l) t)は、切り出し画像τ~i(l) tのローカル座標系O'上の点s'i(l) tの画素値を表し、λ~t(s)は、実画像λ~tの世界座標系O上の点sの画素値を表す。
また、世界座標系O上の点sに、ダッシュ(')、前景のインデクスi、パーティクルのインデクス(l)、及び、時刻のインデクスtを付した点s'i(l) tは、世界座標系O上の点sに対応する、パーティクルzi(l) tで表される状態になっている前景#iのローカル座標系O'上の点(対応点)を表す。
世界座標系O上の点sの、前景#iのローカル座標系O'上の対応点s'i(l) tは、式(15)で説明した写像関数R(A,B)を用いることにより、式(22)で表される。
なお、式(22)では、パーティクルのインデクス(l)を省略してある。
式(21)によれば、世界座標系O上の点sの、ローカル座標系O'上の対応点s'i(l) tが、時刻tにおいて、前景見えモデルμi(前景テクスチャモデルτi、又は、前景形状モデルσiとしての画像)上の点である場合(s'i(l) t∈μi)、実画像λ~tの点sの画素値λ~t(s)が、切り出し画像τ~i(l) tの対応点s'i(l) tの画素値τ~i(l) t(s'i(l) t)として採用される。
前景テクスチャモデルτiの更新では、前景#iのL個のパーティクルzi(1) t,zi(2) t,・・・,zi(L) tについて、切り出し画像τ~i(1) t,τ~i(2) t,・・・,τ~i(L) tが求められる。そして、式(23)に従い、パーティクルzi(1) tないしzi(L) tの重みwi(1) tないしwi(L) tを用いて、L個の切り出し画像τ~i(1) tないしτ~i(L) tの重み付け平均値が、前景テクスチャモデルτiについての、時刻tの1時刻分の更新データτ~i tとして求められる。
さらに、前景テクスチャモデルτiの更新では、現在時刻tから、過去TFG-1時刻分の更新データτ~i t,τ~i t-1,・・・,τ~i t-TFG+1の平均値(所定時間分の平均化)が、新しいモデルパラメータθnewとしての新しい前景テクスチャモデルτi,newとして、式(24)に従って求められる。
なお、ここでは、L個のパーティクルzi(1) tないしzi(L) tそれぞれについて得られる切り出し画像τ~i(1) tないしτ~i(L) tの重み付け平均値を、時刻tの1時刻分の更新データτ~i tとして求めることとしたが、その他、例えば、L個のパーティクルzi(1) tないしzi(L) tから最尤状態zi tを求め、その最尤状態zi tについて得られる切り出し画像τ~i tを、時刻tの1時刻分の更新データτ~i tとして採用することができる。
最尤状態zi tとしては、例えば、L個のパーティクルzi(1) tないしzi(L) tの重み付け平均値(wi(1) tzi(1) t+wi(2) tzi(2) t+・・・+wi(L) tzi(L) t)/(wi(1) t+wi(2) t+・・・+wi(L) t)=wi(1) tzi(1) t+wi(2) tzi(2) t+・・・+wi(L) tzi(L) tを採用することができる。
[第3.5 背景テクスチャモデルの更新(Mステップ)]
第2.3節で説明したパーティクルフィルタを用いたEステップで行われる背景テクスチャモデルτwの更新の具体的な実装について説明する。
図11は、背景テクスチャモデルτwの更新を説明する図である。
背景テクスチャモデルτwの更新処理では、すべての前景モデル#1ないし#Nそれぞれのすべてのパーティクルとしての状態z1(1) tないしz1(L) t,z2(1) tないしz2(L) t,・・・,zN(1) tないしzN(L) tを用いて、時刻tの1時刻分の更新データτ~w tが求められる。
すなわち、背景テクスチャモデルτwの更新処理では、図11に示すように、時刻tの実画像λ~tのうちの、前景があると推定される領域の画素値を、現在の背景テクスチャモデルτw,oldで置き換えることを、各前景モデル#iの、各パーティクルとしての状態zi(l) tについて行い、その結果得られる画像が、時刻tの1時刻分の更新データτ~w tとされる。
具体的には、まず、例えば、前景#1が、注目する注目前景とされる。そして、注目前景である前景#1の状態が、パーティクルとしての状態z1(l) tになっていることとして、時刻tの実画像λ~tのうちの、状態zi(l) tになっている前景#iと推定される領域から、前景モデル#i(前景見えモデルμi)の画像成分を除去し、かつ、現在の背景モデル(現在の背景テクスチャモデルτw,old)の画像成分を加えた画像(以下、前景除去画像ともいう)τ~w,1(l)が求められる。
前景#1の、パーティクルとしての状態z1(l) tについて得られる前景除去画像τ~w,1(l)は、式(25)で表される。
式(25)によれば、世界座標系O上の点sの、パーティクルz1(l) tで表される状態になっている前景#1のローカル座標系O'上の対応点s'1(l) tが、前景見えモデルμ1(前景テクスチャモデルτ1、又は、前景形状モデルσ1としての画像)上の点である場合(s'1(l) t∈μ1)、前景除去画像τ~w,1(l)上の点sの画素値τ~w,1(l)(s)としては、実画像上λ~tの点sの画素値λ~t(s)に対して、前景テクスチャモデルτ1上の対応点s'1(l) tの画素値τ1(s'1(l) t)をσ1(s'1(l) t)倍して減算し、かつ、現在の背景テクスチャモデルτw,old上の点sの画素値τw,old(s)を、(1-σ1(s'1(l) t))倍して加算した値λ~t(s)−σ1(s'1(l) t)τ1(s'1(l) t)+(1-σ1(s'1(l) t))τw,old(s)が採用される。
さらに、式(25)によれば、世界座標系O上の点sの、パーティクルz1(l) tで表される状態になっている前景#1のローカル座標系O'上の対応点s'1(l) tが、前景見えモデルμ1上の点でない場合、実画像上λ~tの点sの画素値λ~t(s)が採用される。
その結果、前景除去画像τ~w,1(l)としては、実画像上λ~tから、パーティクルとしての状態z1(l) tになっている前景#1が除去され、その除去された前景#1に隠れていた背景が見えるようになったような画像が得られる。
背景テクスチャモデルτwの更新処理では、前景#1のL個のパーティクルz1(1) tないしz1(L) tそれぞれについて、前景除去画像τ~w,1(1)ないしτ~w,1(L)が求められる。
そして、前景#1のL個のパーティクルz1(1) tないしz1(L) tそれぞれの重みw1(1) tないしw1(L) tを用いて、前景除去画像τ~w,1(1)ないしτ~w,1(L)の重み付け平均値τ~w,1が、実画像上λ~tから前景#1を除去した最終的な画像(以下、前景#1についての最終除去画像ともいう)として求められる。
前景#1についての最終除去画像τ~w,1は、式(26)で表される。
背景テクスチャモデルτwの更新処理では、他の前景#2ないし#Nを、順次、注目前景として、同様の処理が行われる。
但し、前景#2以降の前景#iについては、実画像上λ~tに代えて、直前に注目前景であった前景#(i-1)についての最終除去画像τ~w,i-1が用いられる。
したがって、前景#iの、パーティクルとしての状態zi(l) tについて得られる前景除去画像τ~w,i(l)は、式(25)の実画像上λ~tを、前景#(i-1)についての最終除去画像τ~w,i-1に代えた式(27)に従って求められる。
そして、前景#iについての最終除去画像τ~w,iは、前景除去画像τ~w,i(l)を用い、式(26)と同様に式(28)に従って求められる。
前景#Nについての最終除去画像τ~w,Nは、実画像λ~tから、N個の前景#1ないし#Nすべてを除去し、かつ、前景#1ないし#Nそれぞれがあった領域に、現在の背景テクスチャモデルτw,oldの対応する領域を足し込んだ画像になっている。式(29)に示すように、この画像τ~w,Nが、背景テクスチャモデルτwについての、時刻tの1時刻分の更新データτ~w tとされる。
図11には、前景の数Nが2つである場合の、背景テクスチャモデルτwについての、時刻tの1時刻分の更新データτ~w tの算出の様子が示されている。
その後、背景テクスチャモデルτwの更新では、現在時刻tから、過去TBG-1時刻分の更新データτ~w t,τ~w t-1,・・・,τ~w t-TBG+1の平均値(所定時間分の平均化)が、新しいモデルパラメータθnewとしての新しい背景テクスチャモデルτw,newとして、式(30)に従って求められる。
背景テクスチャモデルτwの更新においては、前景#2以降の前景#iについては、実画像上λ~tに代えて、直前に注目前景であった前景#(i-1)についての最終除去画像τ~w,i-1を用いて、前景除去画像τ~w,i(l)が求められることで、複数の前景モデルによって、同時に、同一の前景がモデル化(獲得)されないようにする排他制御が行われる。
[第3.6節 前景形状モデルの更新(Mステップ)]
前景形状モデルσiの更新では、更新後の前景テクスチャモデルτi(新しい前景テクスチャモデルτi,new)としての画像について、どの領域が前景#iに属し、どの領域が前景#iに属さないのかの評価が、例えば、画素単位で行われる。
すなわち、前景形状モデルσiの更新では、更新後の前景テクスチャモデルτiとしての画像の各画素について、その画素が、前景#iの画素であるかどうかの評価が行われる。
前景テクスチャモデルτiとしての画像の画素が前景#iの画素であるかどうかの評価では、前景テクスチャモデルτiとしての画像の各画素について、その画素が、前景#iの画素であることの尤度(以下、前景尤度ともいう)が求められる。
前景尤度としては、例えば、前景テクスチャモデルτiとしての画像が、前景#iの期待値としての、式(23)の前景テクスチャモデルτiについての、時刻tの1時刻分の更新データτ~i tとして観測される観測される観測尤度を採用することができる。
この場合、前景尤度としての観測尤度は、例えば、式(31)に従って求めることができる。
ここで、τi(ri)は、前景テクスチャモデルτiのローカル座標系O'上の点riの画素値を表し、τ~i t(ri)は、前景テクスチャモデルτiについての、時刻tの1時刻分の更新データτ~i tとしての画像のローカル座標系O'上の点riの画素値を表す。
さらに、L(FG|τi(ri))は、前景テクスチャモデルτiの点riの画素値τi(ri)が、前景#iの画素であることの尤度(前景尤度)を表す。
また、式(31)において、K及びσ2は、所定の定数であり、あらかじめ決定される。
前景テクスチャモデルτiとしての画像の画素が前景#iの画素であるかどうかの評価では、以上のような、前景尤度L(FG|τi(ri))の他、前景テクスチャモデルτiとしての画像の各画素について、その画素が、背景の画素であることの尤度(以下、背景尤度ともいう)が求められる。
背景尤度としては、例えば、前景テクスチャモデルτiとしての画像が、背景の期待値としての、式(28)の前景#iについての最終除去画像τ~w,i tとして観測される観測される観測尤度を採用することができる。
この場合、背景尤度としての観測尤度は、例えば、式(32)に従って求めることができる。
ここで、前景#iについての最終除去画像を表すτ~w,i tにダッシュ(')を付したτ~'w,i tは、前景#iについての最終除去画像τ~w,i tから、前景見えモデルμiの領域を切り出し、前景#iのローカル座標系O'に射影した射影画像(の期待値)を表す。
τ~'w,i t(ri)は、射影画像τ~'w,i tのローカル座標系O'上の点riの画素値を表す。
さらに、L(BG|τi(ri))は、前景テクスチャモデルτiの点riの画素値τi(ri)が、背景の画素であることの尤度(背景尤度)を表す。
また、式(32)において、K及びσ2は、所定の定数であり、あらかじめ決定される。
射影画像τ~'w,i tは、式(28)の前景#iについての最終除去画像τ~w,i tを求めるのに用いられる、式(27)(式(25))の前景除去画像τ~w,i(l) tを用い、式(33)及び式(34)に従って求めることができる。
ここで、τ~'w,i(l) tは、前景#iが、パーティクルとしての状態zi(l) tになっていると仮定した場合の射影画像を表し、τ~'w,i(l) t(s'i(l) t)は、射影画像τ~'w,i(l) tの、世界座標系O上の点sの対応点s'i(l) tの画素値を表す。
式(33)によれば、世界座標系O上の点sの、前景#iのローカル座標系O'上の対応点s'i(l) tが、前景見えモデルμi上の点であれば、前景除去画像τ~w,i(l) tの点sの画素値τ~w,i(l) t(s)が、射影画像τ~'w,i(l) tの対応点s'i(l) tの画素値τ~'w,i(l) t(s'i(l) t)として採用される。
そして、式(34)によれば、前景#iが各パーティクルzi(l) tの状態になっている射影画像τ~'w,i(l) tの重み付け平均値が、式(32)の計算に用いられる射影画像τ~'w,i tとして求められる。
前景形状モデルσiの更新では、式(31)の前景尤度L(FG|τi(ri))と、式(32)の背景尤度L(BG|τi(ri))とを用いて、式(35)に従い、前景テクスチャモデルτiとしての画像の各画素について、その画素が前景#iの画素である確率が求められる。
ここで、p(FG|τi(ri))は、前景形状モデルσiの、前景#iのローカル座標系O'上の点(画素)riが、前景#iの画素である確率を表す。前景形状モデルσiの更新では、点riの画素値σi(ri)が、確率p(FG|τi(ri))に更新される。
[第4章 エージェントが物体操作を行うための操作モデル]
[第4.1節 物体操作の環境設定]
図12は、エージェントが、制御対象物体であるハンド(マニピュレータ)によって、操作対象物体である物体を操作する物体操作の環境設定の概要を説明する図である。
制御対象物体であるハンド、及び、操作対象物体である物体は、平面上に置かれており、エージェントは、ハンド、及び、物体が置かれた平面(環境)に対応する背景上に、ハンドに対応する前景、及び、物体に対応する前景が存在する実画像を観測する。
図12において、制御対象物体であるハンドは、アームの先端に取り付けられており、エージェントは、環境中で、アームを動かすことにより、ハンドを任意の位置に移動させることができる。
なお、本実施の形態では、説明を簡単にするため、ハンドは、円形であることとし、したがって、ハンドの姿勢は、変化しない(考慮しない)こととする。
操作対象物体である物体は、多角形の形状の物体であり、図12では、L字型の物体が採用されている。
操作対象物体(である物体)は、外力を受けると、環境中で、外力に従った移動や回転の運動を行い、その結果、操作対象物体の位置や姿勢が変化する。
したがって、エージェントが、アームを動かして、そのアームの先端のハンドを移動することにより、ハンドが、操作対象物体と接触すると、操作対象物体は、ハンドから加えられる外力によって運動する。
本実施の形態では、操作対象物体について、目標とする位置と姿勢が、目標状態として与えられる。そして、エージェントは、ハンドを移動して、操作対象物体の状態としての位置及び姿勢を、現在の状態(現在状態)から、目標状態に変化させる物体操作を行う。
なお、本実施の形態では、説明を簡単にするため、操作対象物体と、その操作対象物体が置かれている環境(平面)との摩擦が十分に大きく、ハンドが操作対象物体に接触している状態から、ハンドが操作対象物体に接触していない状態(及び、ハンドが操作対象物体に接触していても、ハンドから操作対象物体に力が加えられていない状態)になると、操作対象物体は、直ちに運動を停止することとする。
また、以下では、前景に関する情報を表す変数については、ハンドと操作対象物体との区別をしない変数には、上付きのインデクスiを付す。また、ハンド(マニピュレータ)の前景(ハンドに対応する前景)に関する情報を表す変数には、上付きのインデクスm(manipulator)を付し、操作対象物体の前景に関する情報を表す変数には、上付きのインデクスo(object)を付す。
本技術の操作モデルでは、ハンド及び操作対象物体の前景の運動が、操作対象物体を基準とする座標系である物体基準座標系で表現される。
図13は、物体基準座標系を説明する図である。
図13Aは、世界座標系Oと、操作対象物体のローカル座標系O'とを示しており、図13Bは、物体基準座標系としての重心原点座標系O''を示している。
なお、図13において、内部にバツ印を描いた丸印は、(物体(の前景)の)重心を表す。
重心原点座標系O''は、ローカル座標系O'を平行移動した座標系であり、原点が、操作対象物体(の前景)の重心に位置している。
したがって、重心原点座標系O''は、操作対象物体の前景見えモデルμoの上から下方向を1つの軸としてのx''軸とし、左から右方向を他の1つの軸としてのy''軸とするとともに、前景見えモデルμoの重心を原点とする2次元座標系である。
物体基準座標系は、操作対象物体(の前景#o)を基準とする座標系、すなわち、世界座標系O上での操作対象物体(の前景#o)の状態によらず、操作対象物体(の前景#o)の状態(位置、姿勢)が不変の座標系である。
したがって、操作対象物体(の前景#o)の物体基準座標系としては、ローカル座標系O'、及び、重心原点座標系O''のいずれをも採用し得るが、本実施の形態では、重心原点座標系O''を採用することとする。
なお、以下では、世界座標系O上の変数と、座標系に関係ない変数には、プライム(ダッシュ)を付さず、ローカル座標系O'上の変数には、1つのプライムを付し、物体基準座標系(としての重心原点座標系)O''上の変数には、2つのプライムを付すこととする。
例えば、図13Aにおいて、so tは、時刻tの操作対象物体(の前景#o)の世界座標系O上での位置を表し、sm tは、時刻tのハンド(の前景#m)の世界座標系O上での位置を表す。
また、qo tは、時刻tの操作対象物体の世界座標系O上での姿勢(世界座標系Oに対する、操作対象物体のローカル座標系O'及び物体基準座標系O''の傾き)を表し、so c'は、操作対象物体(の重心)のローカル座標系O'(操作対象物体のローカル座標系O')上での位置を表す。
操作対象物体のローカル座標系O'は、前景見えモデルμoの上から下方向を1つの軸としてのx'軸とし、左から右方向を他の1つの軸としてのy'軸とするとともに、前景見えモデルμoの左上の点を原点とする2次元座標系であるから、操作対象物体は、ローカル座標系O'上を動かない。
したがって、操作対象物体のローカル座標系O'において、その操作対象物体の重心so c'は移動しない。
また、操作対象物体の物体基準座標系としての重心原点座標系O''は、原点が操作対象物体の重心に位置するように、ローカル座標系O'を平行移動した座標系であるから、やはり、操作対象物体は、物体基準座標系としての重心原点座標系O''上を動かない。そして、操作対象物体の重心は、常に、その操作対象物体の物体基準座標系としての重心原点座標系O''の原点に位置する。
図14は、時刻tの操作対象物体の物体基準座標系(としての重心原点座標系)O''上のハンドの状態及びアクションを説明する図である。
ここで、時刻tの前景#iのアクションを、図2で説明したように、ui tと表すこととし、前景#iは、時刻t-1の状態zi tにおいて、アクションui t-1を行うことによって、次の時刻tに、状態zi tになることとする。
また、前景#iの運動に関する運動モデルを、aiと表すこととし、ハンド(の前景#m)の運動モデルamは、既知であることとする。すなわち、ハンドを動かすための所定のトルク等の指令に対して、ハンドが行うアクションum t、及び、ハンドが所定のアクションum tを行うのに与えるべき指令は、既知であることとする。
さらに、ハンドのアクションum tは、世界座標系O上のハンドの状態zm tを、直接決定することとし、したがって、ハンドは、そのハンドが行うアクションum tによって、任意の状態zm tにすることができることとする。
上述したように、ハンドは、円形であるため、ハンドの姿勢は、ハンドと操作対象物体とが接触することによる操作対象物体の運動に影響を与えない。
したがって、ハンドのアクションum tは、式(3)の世界座標系O上のハンドの状態zm t=[sm t,s・m t,qm t,q・m t]のうちの、姿勢以外に関する情報、すなわち、世界座標系O上のハンドの位置sm tと、位置sm tの微分(速度)s・m tとによって、式(36)に示すように定義することができる。
式(36)のハンドのアクションum tにおいて、ハンドの位置sm tは、ハンドが時刻tにアクションum tとしての運動(移動)を行う位置(以下、運動開始位置ともいう)を表し、位置si tの微分(速度)s・m tは、ハンドが時刻tにアクションum tとしての運動(移動)を行う速度(以下、移動速度ともいう)を表す。
ハンドがアクションum tを行う(アクションum tを出力する)、とは、ハンドが、時刻tに、運動開始位置sm tにおいて、移動速度s・m tで移動することを意味する。
なお、ハンドは、操作対象物体との接触の如何に関わらず、アクションum tとして指定された移動速度s・m tで移動することとする。
世界座標系Oにおいて式(36)で表されるハンドのアクションum tは、物体基準座標系O''では、式(37)で表すことができる。
式(37)において、um t''は、時刻tの操作対象物体の物体基準座標系O''上のハンドのアクションを表す。また、位置sm t''は、図14に示すように、(時刻tの操作対象物体の)物体基準座標系O''上のハンドの運動開始位置を表し、位置si tの微分s・m t''は、図14に示すように、物体基準座標系O''上のハンドの移動速度を表す。
世界座標系Oの原点回りに、角度Bだけ回転した(傾いた)物体基準座標系O''上の点Aを、世界座標系O上の対応点に写像する写像関数を、RR(A,B)と表すこととすると、世界座標系O上のアクションum tと、物体基準座標系O''上のアクションum t''との関係は、写像関数RR()を用いて、式(38)で表される。
式(38)において、qo tは、時刻tの操作対象物体(の前景#o)の姿勢、すなわち、時刻tの操作対象物体の物体基準座標系O''の原点回りの回転角度を表す。
エージェントにおいて、ハンドによって操作対象物体を操作するための操作モデルでは、操作対象物体の状態を、現在の状態(現在状態)から、目標とする状態(目標状態)に変化させるのに必要な状態の変化量に基づいて、時刻tの操作対象物体の物体基準座標系O''上のハンドのアクションum t''が生成される。
なお、操作対象物体(の前景#o)の運動モデルaoについては、操作対象物体が、ハンドとの接触によって受ける力によって、どのように運動するかを表現する必要があり、解析的には、剛体の質量や、慣性モーメント、重心等の動力学パラメータが必要となる。かかる運動モデルaoは、剛体の動力学に関する計算モデルに従って、動力学パラメータの推定を行うことで求められる。
但し、本技術では、操作モデルにおいて、操作対象物体の運動は、物体基準座標系O''上での、ハンドの位置及び状態変化と、操作対象物体の状態変化との間の関係に含めて、ハンドの位置及び状態変化に対する、操作対象物体の状態変化への直接のマッピングとして、学習によって獲得される。
そのため、本技術では、操作対象物体を操作するにあたって、操作対象物体の運動モデルao(としての剛体の運動モデル)を用いる必要がなく、したがって、剛体(操作対象物体)の質量等の動力学パラメータを推定する必要もない。
図15は、エージェントが、ハンドによって、操作対象物体を操作する物体操作の環境設定の詳細を説明する図である。
エージェントは、ハンドにアクションを行わせることによって、世界座標系Oでの操作対象物体(の前景#o)の状態を、現在状態から目標状態に変化させる。
いま、現在時刻を時刻tとすると、世界座標系Oにおいて、操作対象物体の現在状態(現在時刻tの状態)は、zo tで表される。また、世界座標系Oにおいて、現在時刻t(の時点)での操作対象物体の目標状態を、zo,tgt tで表すこととする。
この場合、世界座標系Oにおいて、図15に示すように、操作対象物体が、目標状態zo,tgt tになるための、その操作対象物体の状態の変化(以下、目標状態変化ともいう)dzo,tgt tは、現在状態zo tと目標状態zo,tgt tとを用い、式(39)で表される。
なお、本実施の形態では、図12で説明したように、操作対象物体と、その操作対象物体が置かれている環境との摩擦が十分に大きく、ハンドが操作対象物体に接触している状態から、ハンドが操作対象物体に接触していない状態になると、操作対象物体が、直ちに運動を停止することを前提としている。
したがって、ハンドが現在状態zo tの操作対象物体に接触する直前の、操作対象物体の現在状態zo tの位置so tが変化する速度(位置so tの微分)(以下、位置変化速度ともいう)s・o t、及び、姿勢qo tが変化する速度(姿勢qo tの微分)(以下、姿勢変化速度ともいう)q・o t、並びに、ハンドが目標状態zo,tgt tになった操作対象物体から離れた直後の、操作対象物体の目標状態zo,tgt tの位置変化速度s・o,tgt t、及び、姿勢変化速度q・o,tgt tは、0になる。
その結果、目標状態変化dzo,tgt tは、実質的に、式(3)で定義される状態zi tとしての位置si t、位置変化速度s・i t、姿勢qi t、及び、姿勢変化速度q・i tのうちの、位置si t及び姿勢qi tの変化で定義することができる。
すなわち、世界座標系O上での式(39)の目標状態変化dzo,tgt tは、現在状態zo tの位置so t及び姿勢qo t、並びに、目標状態zo,tgt tの位置so,tgt t及び姿勢qo,tgt tを用い、式(40)で表される。
式(40)において、dso,tgt tは、操作対象物体の状態のうちの位置が、現在状態zo tの位置so tから目標状態zo,tgt tの位置so,tgt tになるまでの位置の変化(移動量)を表し、以下、目標位置変化ともいう。
また、式(40)において、dqo,tgt tは、操作対象物体の状態のうちの姿勢が、現在状態zo tの姿勢qo tから目標状態zo,tgt tの姿勢qo,tgt tになるまでの姿勢の変化(回転量)を表し、以下、目標姿勢変化ともいう。
世界座標系O上での式(39)の目標状態変化dzo,tgt tは、時刻tの操作対象物体の物体基準座標系O''上では、式(41)で表される。
式(41)において、dzo,tgt t''は、(時刻tの操作対象物体の)物体基準座標系O''上での目標状態変化を表す。また、dso,tgt t''は、物体基準座標系O''上での目標位置変化を表し、dqo,tgt t''は、物体基準座標系O''上での目標姿勢変化を表す。
ここで、目標姿勢変化、すなわち、操作対象物体の状態のうちの姿勢が、現在状態zo tの姿勢qo tから目標状態zo,tgt tの姿勢qo,tgt tになるまでの姿勢の変化(回転量)は、操作対象物体(の前景#o)が存在する2次元平面上に定義することができるどのような2次元座標系から見ても、同一の回転量(回転角)になる。
したがって、式(40)の世界座標系O上での目標姿勢変化dqo,tgt tと、式(41)の物体基準座標系O''上での目標姿勢変化dqo,tgt t''とは、等しい(dqo,tgt t=dqo,tgt t''である)。
また、式(40)の世界座標系O上での目標位置変化dso,tgt tと、式(41)の物体基準座標系O''上での目標位置変化dso,tgt t''との関係は、式(38)で定義した写像関数RR()の逆関数RR-1を用いて、式(42)で表される。
[第4.2節 物体基準座標系O''上での物体操作の表現]
エージェントがハンドによる操作対象物体の操作(物体操作)に用いる本技術の操作モデルでは、図12で説明したように、ハンド及び操作対象物体(の前景)の運動が、操作対象物体の基準座標系O''上で表現される。
そのため、エージェントは、実画像λ~tから、その実画像λ~tに映る操作対象物体の物体基準座標系O''を基準とする所定の範囲を切り出し、その所定の範囲を、物体基準座標系O''の傾きが0になるように回転することにより、操作対象物体(の前景#o)の前景見えモデルμoに対して、操作対象物体の姿勢が一致した画像である物体基準画像を生成する。
そして、エージェントは、物体基準画像を用いて、ハンド及び操作対象物体の運動が操作対象物体の基準座標系O''上で表現される操作モデルの学習を行う。
図16は、物体基準画像の生成を説明する図である。
エージェントは、実画像λ~tから、その実画像λ~tに映る操作対象物体(の前景#o)を認識する。
実画像λ~tから、操作対象物体を認識する方法としては、例えば、第3.2節や第3.3節で説明したパーティクルフィルタを用いた状態推定(前景の状態の推定)を行う方法がある。
パーティクルフィルタを用いた状態推定によって、操作対象物体を認識する場合には、パーティクルフィルタを用いた状態推定によって得られる操作対象物体(の前景#o)の状態zo t(例えば、パーティクルフィルタを用いた状態推定によって得られるL個のパーティクルzi(1) tないしzi(L) tから求められる最尤状態zo t)が、実画像λ~tからの操作対象物体の認識結果とされる。
そして、エージェントは、操作対象物体の状態zo tのコンポーネントになっている位置so tを、操作対象物体の重心(世界座標系O上の操作対象物体の重心)として採用するとともに、操作対象物体の状態zo tのコンポーネントになっている姿勢qo tを、操作対象物体の姿勢として採用し、図16に示すように、操作対象物体の重心を中心とし、かつ、世界座標系Oに対して、操作対象物体の姿勢qo tだけ傾いた矩形の所定の範囲を、操作対象物体の前景見えモデルμoに対して、姿勢qo tだけ傾いた傾き画像として、実画像λ~tから切り出す。
さらに、エージェントは、図16に示すように、傾き画像を、物体基準座標系の傾きが0になるように回転することにより、すなわち、姿勢qo tとしての回転角だけ逆回転することにより、物体基準画像を生成する。
したがって、物体基準画像に映る操作対象物体の姿勢は、その操作対象物体の前景見えモデルμoに映る操作対象物体の姿勢に一致する。
ここで、実画像λ~tから傾き画像を切り出す所定の範囲としては、ハンドが、操作対象物体の近くに位置している場合の、操作対象物体の近くに位置するハンドが、操作対象物体とともに映るサイズの範囲、すなわち、例えば、操作対象物体に接触しているハンドや、操作対象物体に接触する直前のハンド、操作対象物体から離れた直後のハンドが、操作対象物体とともに映るサイズの範囲が採用される。
したがって、実画像λ~tにおいて、ハンドが、操作対象物体の近くに位置していない場合、その実画像λ~tは、操作モデルの学習には、用いられない。
実画像λ~tにおいて、ハンドが、操作対象物体の近くに位置しているかどうか、すなわち、実画像λ~tから傾き画像を切り出す所定の範囲内に、操作対象物体の他、ハンドが映っているかどうかは、実画像λ~tから、操作対象物体を認識する他、ハンドを認識することで判定することができる。
なお、実画像λ~tから傾き画像を切り出す所定の範囲の形状は、矩形に限定されるものではなく、例えば、円形であってもよい。
また、実画像λ~tから、操作対象物体を認識する方法としては、パーティクルフィルタを用いた状態推定を行う方法の他、操作対象物体の前景テクスチャモデルτoの姿勢を、様々な姿勢に変えながら、実画像λ~tの様々な位置で、操作対象物体の前景テクスチャモデルτoと、実画像λ~tとのマッチングをとる(例えば、画素値どうしの絶対値差分の総和を求める等)方法がある。実画像λ~tから、ハンドを認識する方法についても、同様である。
さらに、傾き画像を切り出すための操作対象物体の重心としては、操作対象物体の状態zo tのコンポーネントになっている位置so tを採用する他、操作対象物体の前景形状モデルσoを用い、その前景形状モデルσoの各位置が前景であることを表す確率分布の重心を採用することができる。
操作対象物体の前景形状モデルσoの各位置が前景であることを表す確率分布の重心(以下、確率分布重心ともいう)は、式(43)に従って求めることができる。
ここで、式(43)において、so c'は、操作対象物体のローカル座標系O'上の確率分布重心を表し、s'は、操作対象物体のローカル座標系O'上の位置を表す。
また、σ(s')は、操作対象物体の前景形状モデルσoの、操作対象物体のローカル座標系O'上の位置s'の画素値、すなわち、位置s'が前景であることの確率を表す。
さらに、式(43)のサメーション(Σ)は、操作対象物体のローカル座標系O'上の位置s'が、操作対象物体の前景見えモデルμo上の点(位置)である場合について計算される。
式(43)で求められるのは、操作対象物体のローカル座標系O'上の確率分布重心so c'の座標であるため、傾き画像を切り出すときには、ローカル座標系O'上の確率分布重心so c'の座標は、世界座標系O上の座標に変換される。
なお、傾き画像を切り出すための操作対象物体の重心が、その操作対象物体の物体基準座標系O''の原点とされる。したがって、操作対象物体の重心と、その操作対象物体の物体基準座標系Oの原点とは、一致する。
エージェントは、以上のようにして、物体基準画像を生成した後、その物体基準画像から、ハンドを認識し、その認識結果として、物体基準座標系O''上のハンドの状態を得る。
ここで、本実施の形態では、上述したように、ハンドは円形であり、姿勢は変化しない。そのため、操作モデルの学習では、ハンドの状態のうちの、姿勢に関する情報は、使用されず、位置に関する情報が使用される。
エージェントは、物体基準座標系O''上のハンドの状態の他、物体基準座標系O''上の操作対象物体の状態変化を用いて、操作モデルの学習を行う。
ところで、時刻tの実画像λ~tから時刻tの操作対象物体の重心を中心として傾き画像を切り出すことにより生成される物体基準画像については、その物体基準画像に映る操作対象物体の重心は、必ず、時刻tの実画像λ~tから生成される物体基準画像の中心、すなわち、時刻tの操作対象物体の物体基準座標系O''の原点に位置する。
さらに、時刻tの実画像λ~tから時刻tの操作対象物体の重心を中心として傾き画像を切り出すことにより生成される物体基準画像に映る操作対象物体の姿勢は、その操作対象物体の前景見えモデルμoに映る操作対象物体の姿勢に一致する。
したがって、実画像λ~tから、その実画像λ~tに映る操作対象物体の物体基準座標系O''を基準とする所定の範囲を切り出し、その所定の範囲を、物体基準座標系O''の傾きが0になるように回転することにより得られる物体基準画像においては、その物体基準画像に映る操作対象物体の状態(位置、姿勢)は変化しないので、操作対象物体の運動(状態変化)を観測することはできない。
そこで、本技術では、現在時刻tから一定時間△tだけ離れた時刻としての、例えば、過去の時刻t-△tの操作対象物体の物体基準座標系O''において、現在時刻tの操作対象物体の状態を求め、その状態を、物体基準座標系O''上の、時刻t-△tから(現在)時刻tにかけての操作対象物体の状態変化として扱う。
すなわち、時刻t-△tの操作対象物体の物体基準座標系O''での、現在時刻tの操作対象物体の位置と姿勢が、物体基準座標系O''上の、時刻t-△tから時刻tにかけての操作対象物体の位置変化と姿勢変化として求められる。
図17は、物体基準座標系O''上のハンドの状態、及び、体基準座標系O''上の操作対象物体の状態変化を求める求め方を説明する図である。
なお、ここまでは、時間tが連続時間である(物体の状態が時々刻々と変化する)ことを前提としたが、以下では、時間(時刻)tとして、離散時間(時刻)を採用する。すなわち、所定の一定時間△tを単位時間として、物体の状態は、単位時間△tの間は変化しない(時刻t-△tの物体の状態は、時刻tの直前まで一定で、時刻tに瞬時に変化する)こととする。
また、時間tとして、離散時間を採用することに伴い、物体(の前景#i)の時刻t-△tの状態zi t-△tから、次の時刻tの状態zi tへの状態の変化を、時刻t-△t(時刻t-△tから時刻tにかけて)の状態変化として扱い、△zi t-△tと表す。
ここで、状態zi tとしては、位置si tと姿勢qi tがあるが、位置si tと姿勢qi tの変化である位置変化と姿勢変化についても、状態変化△zi tと同様に表す。すなわち、位置変化は、△si tと表し、姿勢変化は、△qi tと表す。
また、時間tとして、離散時間を採用することに伴い、世界座標系Oにおいて、ハンドのアクションum tは、上述の式(36)に示したように、位置sm tと位置速度s・m tとで定義するのではなく、式um t=[sm t,△sm t]として、位置sm tと位置変化△sm tとで定義する。
アクションum t=[sm t,△sm t]は、時刻tに、(世界座標系Oの)位置sm tにあるハンドを、次の時刻t+△tまでに、(世界座標系Oで)位置変化△sm tだけ移動するアクションを表す。
なお、同様に、物体基準座標系O''でも、ハンドのアクションum t''は、上述の式(37)に示したように、位置sm t''と位置速度s・m t''とで定義するのではなく、式um t''=[sm t'',△sm t'']として、位置sm t''と位置変化△sm t''とで定義する。
エージェントは、物体基準座標系O''上のハンドの状態(位置)を、以下のようにして求める。
すなわち、エージェントは、現在時刻tの実画像λ~tから、その実画像λ~tに映る操作対象物体を基準とする物体基準座標系O''(以下、現在時刻tの物体基準座標系Ot''、又は、単に、物体基準座標系Ot''ともいう)を基準とする所定の範囲を切り出し、現在時刻tの物体基準座標系Ot''の傾きが0になるように回転することにより得られる物体基準画像(以下、現在時刻物体基準画像POt''ともいう)を生成する。
そして、エージェントは、現在時刻物体基準画像POt''から、ハンドを認識することにより、図17に示すように、現在時刻物体基準画像POt''に映るハンドの位置と位置変化(状態変化)を、物体基準座標系O''でのハンドの位置sm t''と位置変化(状態変化)△sm t''として求める。
ここで、エージェントは、物体基準座標系O''でのハンドの位置sm t''の他、位置変化△sm t''も求める。
時刻tのハンドの位置変化△sm t''は、ここでは、時刻tから時刻t+△tにかけてのハンドの位置の変化であり、時刻tの現在時刻物体基準画像POt''に映るハンドの位置sm t''が求められ、さらに、次の時刻t+△tの現在時刻物体基準画像POt+△t''に映るハンドの位置sm t+△t''が求められた後に、時刻t+△tのハンドの位置sm t+△t''から、時刻tのハンドの位置sm t''を減算することで求めることができる。
したがって、時刻tのハンドの位置sm t''と位置変化△sm t''が求められるのは、正確には、次の時刻t+△tの現在時刻物体基準画像POt+△t''に映るハンドの位置sm t+△t''が求められた後であるが、以下、適宜、説明を簡単にするために、時刻tに、その時刻tのハンドの位置sm t''と位置変化△sm t''が求められることとする。
エージェントは、以上のようにして、物体基準座標系O''でのハンドの位置sm t''、及び、位置変化△sm t''を求める他、物体基準座標系O''上の操作対象物体の状態変化を、以下のようにして求める。
すなわち、エージェントは、現在時刻tの実画像λ~tから、現在時刻tの直前の時刻である前時刻t-△tの実画像λ~tに映る操作対象物体を基準とする物体基準座標系O''(以下、前時刻t-△tの物体基準座標系Ot-△t''、又は、単に、物体基準座標系Ot-△t''ともいう)を基準とする所定の範囲を切り出し、前時刻t-△tの物体基準座標系Ot-△t''の傾きが0になるように回転することにより得られる物体基準画像(以下、前時刻物体基準画像QOt''ともいう)を生成する。
そして、エージェントは、前時刻物体基準画像QOt''から、操作対象物体を認識することにより、図17に示すように、前時刻物体基準画像QOt''に映る操作対象物体の位置と姿勢、すなわち、前時刻t-△tから現在時刻tにかけての操作対象物体の位置の変化と姿勢の変化を、物体基準座標系O''での操作対象物体の位置変化△so t-△t''と姿勢変化△qo t-△t''として求める。
ここで、(現在)時刻tにおいて、前時刻物体基準画像QOt''から求められる操作対象物体の位置変化△so t-△t''と姿勢変化△qo t-△t''は、時刻t-△t(時刻t-△tから時刻tにかけて)の操作対象物体の位置と姿勢の変化である。
したがって、時刻tの操作対象物体の位置変化△so t''と姿勢変化△qo t''が求められるのは、次の時刻t+△tの前時刻物体基準画像QOt+△t''に映る操作対象物体の位置と姿勢が求められた後であるが、以下、適宜、説明を簡単にするために、時刻tに、その時刻tの操作対象物体の位置変化△so t-△t''と姿勢変化△qo t-△t''が求められることとする。
以上のように、エージェントは、現在時刻物体基準画像POt''から、物体基準座標系O''でのハンドの位置sm t''と位置変化△sm t''を求めるとともに、前時刻物体基準画像QOt''から、物体基準座標系O''での操作対象物体の位置変化△so t''と姿勢変化△qo t''を求める。
そして、エージェントは、物体基準座標系O''でのハンドの位置sm t''と位置変化△sm t''、及び、物体基準座標系O''での操作対象物体の位置変化△so t''と姿勢変化△qo t''を用いて、操作モデルの学習を行う。
図18は、物体基準座標系O''でのハンドの位置sm t''と位置変化△sm t''、及び、物体基準座標系O''での操作対象物体の位置変化△so t''と姿勢変化△qo t''それぞれどうしの関係を示すグラフィカルモデルである。
図18のグラフィカルモデルでは、時刻tにおいて、ハンドは、位置sm t''にあり(位置sm t''にある状態になっており)、操作対象物体は、状態zo tになっている。
そして、時刻tから次の時刻t+△tにかけて、位置sm t''にあるハンドが、位置変化△sm t''だけ移動すると(ハンドの位置が、△sm t''だけ位置(状態)変化すると)、操作対象物体には、(△so t'',△qo t'')だけの状態変化、すなわち、△so t''だけの位置変化と、△qo t''だけの姿勢変化が生じる。
その結果、時刻t+△tにおいて、操作対象物体は、状態zo t+△tになる。
物体基準座標系O''でのハンドの位置sm t''及び位置変化△sm t''と、物体基準座標系O''での操作対象物体の位置変化△so t''及び姿勢変化△qo t''との関係は、関数F()及びG()を用いて、式(44)及び式(55)で表すことができる。
式(44)は、操作対象物体を基準として、ハンドをどの位置からどのように動かすと、操作対象物体の状態がどのように変化するかを表現している。
したがって、式(44)の関数F()は、ハンドのアクションum t''である位置(状態)sm t''と位置変化(状態変化)△sm t''から、操作対象物体の状態変化△zo t''である位置変化△so t''及び姿勢変化△qo t''を予測する予測モデル(順モデル)を表す。
一方、式(45)は、操作対象物体に、目標とするある状態変化を生じさせたいときに、その状態変化を生じさせるために、操作対象物体を基準として、ハンドをどの位置からどのように動かせばよいかを表現している。
したがって、式(45)の関数G()は、操作対象物体の、目標とする状態変化△zo t''=(△so t'',△qo t'')から、その状態変化△zo t''を生じさせるハンドの制御としてのハンドのアクションum t''である位置(状態)sm t''と位置変化(状態変化)△sm t''の算出を行う制御モデル(逆モデル)を表す。
エージェントは、物体基準座標系O''でのハンドの位置sm t''と位置変化△sm t''、及び、物体基準座標系O''での操作対象物体の位置変化△so t''と姿勢変化△qo t''を用いて、予測モデルである式(44)の関数F()(以下、予測モデルF()ともいう)、及び、制御モデルである式(45)の関数G()(以下、制御モデルG()ともいう)としての操作モデルの学習を行う。
[第4.3節 操作モデルの具体的な実装]
予測モデルF()及び制御モデルG()としての操作モデルは、確率モデルとして定式化することができる。
例えば、予測モデルF()は、ハンドが位置sm t''から△sm t''だけ位置変化した場合に、操作対象物体に状態変化△zo t''である位置変化△so t''及び姿勢変化△qo t''が生じる確率P(△so t'',△qo t''|sm t'',△sm t'')を表す確率モデルとして定式化することができる。
予測モデルF()としての操作モデルを確率モデルとして実装し、ハンドの位置sm t''及び位置変化△sm t''、並びに、操作対象物体の位置変化△so t''及び姿勢変化△qo t''を用いて、操作モデルの学習を行う方法としては、変数を離散化し、ハンドが位置sm t''から△sm t''だけ位置変化した場合に、操作対象物体に位置変化△so t''及び姿勢変化△qo t''が生じる頻度をカウントするための頻度テーブルを設ける方法がある。
図19及び図20は、確率モデルとして実装する操作モデルの例を示す図である。
本実施の形態では、操作モデルは、位置テーブルから構成される。
図19は、位置テーブルの例を示す図である。
位置テーブルは、図16で説明した傾き画像を切り出すときの所定の範囲と同一の範囲を、例えば、格子状のフィールドに区切った2次元のテーブルであり、各フィールドには、ユニークなインデクスが割り当てられる。
図19では、位置テーブルは、物体基準座標系O''のx''軸及びy''軸それぞれの方向に、等間隔に区切られ、正方形状のD個のフィールドを有している。
また、図19では、2次元の位置テーブルの各フィールドに対し、左上のフィールドから、x''軸方向、さらには、y''軸方向に向かって、1からのシーケンシャルな整数が、インデクス#dとして割り当てられている。
位置テーブルのフィールド(以下、位置フィールドともいう)に割り当てられたインデクス#dは、D個に離散化されるハンドの位置sm t''を表現する。
位置テーブルの各位置フィールドは、その位置フィールドの位置(その位置フィールドに離散化された位置)sm t''から、ハンドが△sm t''だけ位置変化した場合に、操作対象物体に位置変化△so t''及び姿勢変化△qo t''が生じる頻度をカウントするための頻度テーブルを有する。
図20は、頻度テーブルの例を示す図である。
いま、ハンドの位置変化△sm t''をJ個に、操作対象物体の位置変化△so t''をK個に、操作対象物体の姿勢変化△qo t''をH個に、それぞれ離散化することとすると、位置テーブルの各位置フィールドは、横×縦×高さがJ×K×H個のフィールドを有する3次元の頻度テーブルを有する。
3次元の頻度テーブルの所定の頂点から、横方向にj番目で、縦方向にk番目で、高さ方向にh番目のフィールド(以下、頻度フィールドともいう)には、例えば、3つ(3次元)のインデクス#j,#k、及び、#hが割り当てられる。
インデクス#jは、J個に離散化されるハンドの位置変化△sm t''を、インデクス#kは、K個に離散化される操作対象物体の位置変化△so t''を、インデクス#hは、H個に離散化される操作対象物体の姿勢変化△qo t''を、それぞれ表現する。
なお、本実施の形態では、頻度テーブルのフィールドの数が膨大になることを防止するため、ハンドの位置変化△sm t''、操作対象物体の位置変化△so t''、及び、操作対象物体の姿勢変化△qo t''の離散化は、例えば、以下のように行う。
すなわち、ハンドの位置変化△sm t''については、大きさを無視して、方向(角度)だけを扱うこととする。
具体的には、ハンドの位置変化△sm t''については、-πないしπの範囲を出力する逆正接の関数arctan2(△sm t'')を演算することにより、-πないしπの範囲の角度に変換し、-πないしπの範囲を等間隔にJ個に区分した、いずれかの区分(に対応するインデクス#j)に離散化する。
操作対象物体の位置変化△so t''についても、同様とする。すなわち、操作対象物体の位置変化△so t''については、逆正接の関数arctan2(△so t'')を演算することにより、-πないしπの範囲の角度に変換し、-πないしπの範囲を等間隔にK個に区分した、いずれかの区分(に対応するインデクス#k)に離散化する。
また、操作対象物体の姿勢変化△qo t''については、回転しているかどうか(回転の角度の大きさが0とみなせるかどうか)と、回転している場合(回転の角度の大きさが0とみなせない場合)には、回転の角度の大きさを無視して、回転の方向だけを扱うこととする。
具体的には、操作対象物体の姿勢変化△qo t''については、正方向の回転(時計回り、及び、反時計回りのうちの、例えば、反時計回り)、負方向の回転、及び、回転なし(姿勢の変化がない)のうちのいずれかに離散化する。
したがって、操作対象物体の姿勢変化△qo t''は、H=3値に離散化される。
図20では、操作対象物体の姿勢変化△qo t''については、姿勢変化△qo t''が所定値ε(>0)より大である場合(正方向の回転である場合)、インデクス#h=1に離散化され、姿勢変化△qo t''が-ε未満である場合(負方向の回転である場合)、インデクス#h=2に離散化される。また、姿勢変化△qo t''がないとみなせる場合、すなわち、姿勢変化△qo t''の絶対値|△qo t''|が所定値ε以下である場合、姿勢変化△qo t''は、インデクス#h=3に離散化される。
ここで、J×K×H個のフィールドを有する3次元の頻度テーブルのうちの、高さ方向にh番目の、横×縦がJ×K個のフィールドを有する2次元のテーブルを、頻度テーブル#hともいう。
図20では、操作対象物体の姿勢変化△qo t''は、H=3値に離散化されるので、3次元の頻度テーブルは、2次元の頻度テーブル#1,#2、及び、#3を有する。
なお、図20では、図が煩雑になるのを避けるため、3次元の頻度テーブルを、2次元の頻度テーブル#1ないし#3に分け、並べて図示してある。
エージェントにおいて、以上のような頻度テーブルを有する位置テーブルから構成される操作モデルの学習は、例えば、以下のようにして行われる。
すなわち、エージェントは、ハンドを、環境中の様々な位置から、操作対象物体と衝突(接触)するように適当に動かし、図16及び図17で説明したようにして、実画像λ~tから、ハンドの位置sm t''、及び、その位置sm t''からの位置変化△sm t''、並びに、ハンドが、位置sm t''からの位置変化△sm t''だけ動いたときの操作対象物体の位置変化△so t''及び姿勢変化△qo t''を、操作モデルの学習に用いる学習データとして、時間△tごとに収集する。
さらに、エージェントは、学習データとしてのハンドの位置sm t''及び位置変化△sm t''、並びに、操作対象物体の位置変化△so t''及び姿勢変化△qo t''を、それぞれ、インデクス#d,#j,#k、及び、#hに離散化する。
そして、エージェントは、学習データとしてのハンドの位置sm t''及び位置変化△sm t''、並びに、操作対象物体の位置変化△so t''及び姿勢変化△qo t''を離散化したインデクス#d,#j,#k、及び、#hを用いて、操作モデルの追加学習を行う。
すなわち、エージェントは、位置テーブル(図19)から、学習データとしてのハンドの位置sm t''を離散化したインデクス#dが割り当てられた位置フィールドを特定する。
さらに、エージェントは、学習データとしてのハンドの位置sm t''を離散化したインデクス#dが割り当てられた位置フィールドが有する頻度テーブル(図20)から、学習データとしてのハンドの位置変化△sm t''、並びに、操作対象物体の位置変化△so t''及び姿勢変化△qo t''をそれぞれ離散化したインデクス#j,#k、及び、#hが割り当てられた頻度フィールドを、更新対象の頻度フィールド(以下、更新対象フィールドともいう)として特定する。
そして、エージェントは、更新対象フィールドである頻度フィールドに記憶された頻度、すなわち、学習データとしてのハンドの位置sm t''及び位置変化△sm t''、並びに、操作対象物体の位置変化△so t''及び姿勢変化△qo t''(を離散化したインデクス#d,#j,#k、及び、#h)が出現した出現頻度を、1だけインクリメントする。
ここで、頻度テーブルの頻度フィールドに記憶された、ハンドの位置sm t''及び位置変化△sm t''、並びに、操作対象物体の位置変化△so t''及び姿勢変化△qo t''が出現した出現頻度とは、物体基準座標系O''において、位置sm t''にいたハンドが、位置変化△sm t''だけ移動することによって、操作対象物体の位置変化△so t''及び姿勢変化△qo t''が生じた頻度(回数)N(△so t'',△qo t'',sm t'',△sm t'')を表す。
操作対象物体の位置変化△so t''及び姿勢変化△qo t''にかかわらず、位置sm t''にいたハンドが、位置変化△sm t''だけ移動した頻度(回数)を、N(sm t'',△sm t'')と表すこととすると、ハンドが位置sm t''から△sm t''だけ位置変化した場合に、操作対象物体に位置変化△so t''及び姿勢変化△qo t''が生じる確率P(△so t'',△qo t''|sm t'',△sm t'')は、式(46)に従って求めることができる。
頻度フィールドには、頻度N(△so t'',△qo t,sm t'',△sm t'')とともに、確率P(△so t'',△qo t''|sm t'',△sm t'')を記憶しておくことができる。
以上のように、操作モデルは、物体基準座標系O''の各位置sm t''(を離散化したインデクス#d)において、ハンドの状態(位置)が変化したときの、ハンドの位置sm t''及び位置(状態)変化△sm t''(を離散化したインデクス#j)と、(インデクス#k及び#hにそれぞれ離散化された)操作対象物体の位置変化△so t''及び姿勢変化△qo tとが出現する頻度が記憶される頻度フィールドからなる頻度テーブルを含む。
そして、エージェントは、物体基準座標系O''の所定の位置sm t''において、ハンドに、所定の位置変化△sm t''が生じることによって、操作対象物体に、所定の位置変化△so t''及び姿勢変化△qo tが生じた場合に、頻度テーブルの、位置sm t''、位置変化△sm t''、位置変化△so t''、及び、姿勢変化△qo tに対応する頻度フィールドに記憶された頻度、すなわち、所定の位置sm t''において生じたハンドの所定の状態変化△sm t''によって、操作対象物体に所定の位置変化△so t''及び姿勢変化△qo tが生じる頻度をインクリメントすることにより、操作モデルの(追加)学習を行う。
その結果、操作モデルでは、操作対象物体を基準とする物体基準座標系O''の各位置sm t''において、ハンドの状態が位置sm t''から所定の位置変化△sm t''だけ変化したときの、そのハンドの位置sm t''及び位置(状態)変化△sm t''と、ハンドの位置変化△sm t''によって生じる操作体操物体の状態変化としての位置変化△so t''及び姿勢変化△qo tとが対応付けられる。
すなわち、操作モデルでは、物体基準座標系O''上において、ハンドが、位置sm t''から所定の位置変化△sm t''だけ移動したときに、操作対象物体に、位置変化△so t''及び姿勢変化△qo tが生じる可能性(確率)を獲得することができる。
エージェントは、以上のような操作モデルを用いて、ハンドが行うアクションを、以下のように決定する。
すなわち、例えば、いま、図15、及び、式(39)ないし式(41)で説明したように、操作対象物体を、現在状態から目標状態に変化させるための、物体基準座標系O''上の目標状態変化dzo,tgt t''が求められていることとする。
エージェントは、目標状態変化dzo,tgt t''に基づき、例えば、目標状態変化dzo,tgt t''のコンポーネント(式(41))である目標位置変化dso,tgt t''や目標姿勢変化dqo,tgt t''の大きさに応じて大になる値を、目標状態変化dzo,tgt t''を達成するのに行うアクションの回数(以下、達成回数ともいう)Ttgtとして求める。
さらに、エージェントは、式(47)に従い、目標状態変化dzo,tgt t''を、達成回数Ttgtに基づいて分割することで、目標状態変化dzo,tgt t''を、達成回数Ttgtで達成するための、単位時間△tあたりの状態変化△zo,tgt t''を、操作対象物体の状態zo tが目標状態zo,tgt tになるために現在時刻tに必要な操作対象物体の状態の変化量(以下、単位変化量ともいう)として求める。
なお、達成回数Ttgtとしては、目標状態変化dzo,tgt t''の大きさに応じて求められる値の他、例えば、あらかじめ決められた固定の値を採用することができる。
エージェントは、式(47)の単位変化量△zo,tgt t''=(dso,tgt t''/Ttgt,dqo,tgt t''/Ttgt)を求めると、操作モデルを用い、式(48)に従って、単位変化量△zo,tgt t''だけの状態変化としての位置変化dso,tgt t''/Ttgt及び姿勢変化dqo,tgt t''/Ttgtを操作対象物体に生じさせる頻度(確率)が最も高い物体基準座標系O''上のハンドの位置sm t''と位置(状態)変化△sm t''とを、ハンドのアクションum t''に決定する。
式(48)において、argmaxは、確率P(△so t''=dso,tgt t''/Ttgt,△qo t''=dqo,tgt t''/Ttgt|sm t'',△sm t'')を最大にするsm t''及び△sm t''を求めることを表し、sm t''*及び△sm t''*は、それぞれ、確率P(△so t''=dso,tgt t''/Ttgt,△qo t''=dqo,tgt t''/Ttgt|sm t'',△sm t'')を最大にするsm t''及び△sm t''を表す。
操作モデルを用いて決定されるアクションum t''は、物体基準座標系O''上で表現されるアクションであるため、エージェントは、その物体基準座標系O''上のアクションum t''を、式(38)に従って、世界座標系O上のアクションum tに変換し、ハンドに、そのアクションum tを行わせる。
ここで、ハンドのアクションを入力として、操作対象物体の状態変化を出力する順モデルの逆モデルを解くことにより、ある目標状態変化を達成するアクションを求める場合には、一般に、ある目標状態変化を達成するアクションとしては、複数のアクションの候補が存在し、本技術の操作モデルを用いる場合も同様である。
しかしながら、操作対象物体に、所定の状態変化を生じさせるハンドのアクションとして、複数のアクションが存在しても、操作モデルの学習において、その複数のアクションのそれぞれが、操作対象物体の所定の状態変化に対して、同一の回数(頻度)だけ生じることは、極めて稀である。
すなわち、操作対象物体に、所定の状態変化を生じさせるハンドのアクションとして、複数のアクションが存在しても、操作モデルの学習で獲得される、所定の状態変化を生じさせる複数のアクションそれぞれがその所定の状態変化を生じさせる頻度には、ばらつきが生じる。
したがって、操作モデルにおいて、操作対象物体に所定の状態変化を生じさせる頻度が最も高いハンドのアクションを選択することにより、所定の状態変化を生じさせるハンドのアクションとして、複数のアクションが存在しても、その複数のアクション(複数の解)の中から、ハンドが行うべきアクションとして、1つのアクション(1つの解)を決定することができる。
なお、操作モデルにおいて、式(47)の単位変化量△zo,tgt t''=(dso,tgt t''/Ttgt,dqo,tgt t''/Ttgt)だけの状態変化としての位置変化dso,tgt t''/Ttgt及び姿勢変化dqo,tgt t''/Ttgtを操作対象物体に生じさせる頻度が最も高い物体基準座標系O''上のハンドの位置sm t''と位置変化△sm t''とのセットが、複数セット存在する場合には、エージェントは、その複数セットの中から、例えば、ランダムに、1セットを選択し、その1セットを構成するハンドの位置sm t''と位置変化△sm t''を、ハンドのアクションum t''に決定する。
また、本実施の形態では、操作モデルにおいて、ハンドの位置sm t''及び位置変化△sm t''、並びに、操作対象物体の位置変化△so t''及び姿勢変化△qo t''は、それぞれ、インデクス#d,#j,#k、及び、#hに離散化されて扱われるため、エージェントによるハンドのアクションum t''の決定は、正確には、インデクス#d,#j,#k、及び、#hを用いて行われる。
すなわち、エージェントは、単位変化量△zo,tgt t''だけの状態変化としての位置変化dso,tgt t''/Ttgt及び姿勢変化dqo,tgt t''/Ttgtを、それぞれ、インデクス#k及び#hに離散化する。
いま、目標状態変化dzo,tgt t''の単位変化量△zo,tgt t''だけの状態変化としての位置変化dso,tgt t''/Ttgt及び姿勢変化dqo,tgt t''/Ttgtの離散化の結果得られるインデクス#k及び#hを、それぞれ、#k*及び#h*と表すこととすると、エージェントは、操作モデル(図20)において、インデクス#k及び#hが、それぞれ、値#k*及び#h*である頻度フィールドの中で、頻度フィールドに記憶されている頻度が最大の頻度フィールド(以下、最大頻度フィールドともいう)を選択する。
いま、最大頻度フィールドに割り当てられている、ハンドの位置sm t''及び位置変化△sm t''を離散化したインデクス#d及び#jを、それぞれ、#d*及び#j*と表すこととする。
エージェントは、インデクス#d*に離散化されるハンドの位置(物体基準座標系O''上の位置)の範囲の代表値(例えば、平均値や、x''及びy''座標が最小又は最大の位置等)を、ハンドのアクションum t''のコンポーネントとなる位置sm t''に決定する。
さらに、エージェントは、インデクス#j*に離散化されるハンドの位置変化(物体基準座標系O''での位置変化)の範囲の代表値(例えば、平均値や、最小又は最大の位置変化等)を、ハンドのアクションum t''のコンポーネントとなる位置変化△sm t''に決定する。
なお、本実施の形態では、ハンドの位置変化△sm t''は、関数arctan2(△sm t'')により-πないしπの範囲の角度に変換され、その角度が、インデクス#jに離散化される。したがって、インデクス#jに離散化されるハンドの位置変化の範囲の代表値、ひいては、ハンドのアクションum t''に決定される位置変化△sm t''は、方向(角度)だけを有し、大きさを有しない。
そのため、エージェントは、ハンドのアクションum t''に決定される位置変化△sm t''の大きさとして、例えば、あらかじめ決められた所定の大きさを採用する。
[第5章 本技術を適用したエージェントの一実施の形態]
図21は、本技術を適用したエージェントの一実施の形態の構成例を示すブロック図である。
図21において、エージェントは、アクチュエータ制御部11、カメラ12、見えモデル学習部13、見えモデル記憶部14、操作モデル学習部15、操作モデル記憶部16、目標状態生成部17、変化量算出部18、世界座標変換部19、変化量時分割部20、アクション決定部21、及び、物体基準座標変換部22を有する。
アクチュエータ制御部11には、操作モデル学習部15から、前景#iの(現在の)状態zi tが供給されるとともに、物体基準座標変換部22から、ハンドの世界座標系O上のアクションum tが供給される。
アクチュエータ制御部11は、操作モデル学習部15からの前景#iの状態zi tのうちの、ハンド(の前景#m)の状態zm tと、物体基準座標変換部22からのアクションum tとに基づいて、例えば、エージェントのアーム等を駆動するアクチュエータを制御し、これにより、アームの先端に取り付けられたハンドが、アクションum tを行う。
すなわち、ハンドは、操作モデル学習部15からの前景#iの状態zi tのうちの、ハンド(の前景#m)の状態zm tとしての現在位置sm tから、物体基準座標変換部22からのアクションum tのコンポーネントになっている位置(状態)sm tに移動される。
そして、ハンドは、現在位置、すなわち、物体基準座標変換部22からのアクションum tのコンポーネントになっている位置sm tから、同じく、物体基準座標変換部22からのアクションum tのコンポーネントになっている位置(状態)変化△sm tだけ移動される。
カメラ12は、エージェントがおかれている環境の画像を、所定のフレームレートで撮影し、エージェントが観測可能な画像の観測値(実画像)λ~tとして、見えモデル学習部13、及び、操作モデル学習部15に供給する。
見えモデル学習部13は、カメラ12からの実画像λ~tを用いて、見えモデル記憶部14に記憶された前景見えモデルμi、及び、背景見えモデルμwの学習(見えモデルの学習)を行う。
見えモデル記憶部14は、見えモデル学習部13によって学習される前景見えモデルμi、及び、背景見えモデルμwを記憶する。
操作モデル学習部15は、カメラ12からの実画像λ~t、及び、見えモデル記憶部15に記憶された前景見えモデルμi等を用いて、操作モデル記憶部16に記憶された操作モデルの学習を行う。
なお、操作モデル学習部15は、操作モデルの学習にあたり、学習カメラ12からの実画像λ~t、並びに、見えモデル記憶部14に記憶された前景見えモデルμi、及び、背景見えモデルμwを用いて、前景#iの状態zi tを推定する。操作モデル学習部15で推定された前景#iの状態zi tは、アクチュエータ制御部11、目標状態生成部17、変化量算出部18、世界座標変換部19、及び、物体基準座標変換部22に供給される。
操作モデル記憶部16は、操作モデル学習部15によって学習される操作モデルを記憶する。
目標状態生成部17は、操作対象物体(の前景#o)の目標状態zo,tgt tを生成し、変化量算出部18に供給する。
すなわち、目標状態生成部17は、操作モデル学習部15から供給される前景#iの状態zi tのうちの、操作対象物体(の前景#o)の状態zo tと、直前に生成された目標状態zo,tgt tとが一致していない場合、つまり、操作対象物体が、直前に生成された目標状態zo,tgt tになっていない場合、直前に生成された目標状態zo,tgt tを、変化量算出部18に供給する(供給し続ける)。
一方、操作モデル学習部15から供給される操作対象物体の状態zo tと、直前に生成された目標状態zo,tgt tとが一致している場合、つまり、操作対象物体が、直前に生成された目標状態zo,tgt tになった場合、目標状態生成部17は、新たな目標状態zo,tgt tを生成し、変化量算出部18に供給する。
なお、目標状態生成部17では、例えば、ユーザの操作や所定のアルゴリズムに従って、操作対象物体の目標状態zo,tgt tを生成することができる。その他、目標状態生成部17では、例えば、ランダムに、目標状態zo,tgt tを生成することができる。
変化量算出部18は、操作モデル学習部15から供給される前景#iの状態zi tのうちの、操作対象物体の(現在の)状態zo tと、目標状態生成部17からの操作対象物体の目標状態zo,tgt tとを用い、式(40)に従って、世界座標系O上での目標状態変化dzo,tgt t(目標位置変化dqo,tgt t及び目標姿勢変化dqo,tgt t)を求めて、世界座標変換部19に供給する。
世界座標変換部19は、操作モデル学習部15から供給される前景#iの状態zi tのうちの、操作対象物体の状態zo tとしての姿勢qo tを用いて、式(42)を演算することにより、変化量算出部18からの世界座標系O上での目標状態変化dzo,tgt t(目標位置変化dsqo,tgt t及び目標姿勢変化dqo,tgt t)を、式(41)の物体基準座標系O''上での目標状態変化dzo,tgt t''(目標位置変化dqo,tgt t''及び目標姿勢変化dqo,tgt t'')に変換し、変化量時分割部20に供給する。
変化量時分割部20は、式(47)に従い、世界座標変換部19からの目標状態変化dzo,tgt t''を、達成回数Ttgtに基づいて分割することで、単位変化量△zo,tgt t''=(△so,tgt t'',△qo,tgt t'')=(dso,tgt t''/Ttgt,dqo,tgt t''/Ttgt)を求め、アクション決定部21に供給する。
アクション決定部21は、操作モデル記憶部16に記憶された操作モデルを用い、変化量時分割部20からの単位変化量△zo,tgt t''だけの状態変化としての位置変化△so,tgt t''=dso,tgt t''/Ttgt及び姿勢変化△qo,tgt t''=dqo,tgt t''/Ttgtを操作対象物体に生じさせる頻度(確率)が最も高い物体基準座標系O''上のハンドの位置sm t''及び位置変化△sm t''を、ハンドのアクションum t''に決定し、物体基準座標変換部22に供給する。
物体基準座標変換部22は、操作モデル学習部15から供給される前景#iの状態zi tのうちの、操作対象物体の状態zo tとしての姿勢qo tを用いて、式(38)を演算することにより、アクション決定部21からのハンドのアクションum t''、すなわち、物体基準座標系O''で表現されるアクションアクションum t''を、世界座標系Oで表現されるアクションum tに変換し、アクチュエータ制御部11に供給する。
図22は、図21の見えモデル学習部13の構成例を示すブロック図である。
モデル学習部13は、前景状態推定部31、及び、見えモデル更新部32を有する。
前景状態推定部31、及び、見えモデル更新部32には、カメラ12から、実画像λ~tが供給される。
前景状態推定部31は、カメラ12からの実画像λ~t、並びに、見えモデル記憶部14に記憶された前景見えモデルμi、及び、背景見えモデルμwを用いて、カメラ12からの実画像λ~t上の前景#iの状態zi tを推定し、その推定の結果として、状態zi tのパーティクルzi(l) t及び重みwi(l) tを、見えモデル更新部32に供給する。
見えモデル更新部32は、カメラ12からの実画像λ~tと、前景状態推定部31から供給される前景#iの状態zi tの推定の結果としての状態zi tのパーティクルzi(l) t及び重みwi(l) tとを用いて、見えモデル記憶部14に記憶された前景見えモデルμi、及び、背景見えモデルμwを更新する。
すなわち、見えモデル更新部32は、式(21)ないし式(24)に従って、前景見えモデルμiのうちの前景テクスチャモデルτiを更新し、式(31)ないし式(35)に従って、前景見えモデルμiのうちの前景形状モデルσiを更新する。
また、見えモデル更新部32は、式(25)ないし式(30)に従って、背景見えモデルμw(背景テクスチャモデルτw)を更新する。
ここで、図22において、前景状態推定部31は、見えモデル尤度計算部41、状態パーティクル更新部42、状態パーティクル記憶部43、及び、推定観測値生成部44を有する。
見えモデル尤度計算部41には、カメラ12から画像の観測値(実画像)λ~tが供給されるとともに、推定観測値生成部44から、生成モデルで観測される観測画像(生成モデルとしての前景見えモデルμi及び背景見えモデルμwから生成される画像)λi(l) tが供給される。
見えモデル尤度計算部41は、カメラ12からの実画像λ~tと、推定観測値生成部44からの観測画像λi(l) tとを用い、式(19)に従って、注目している前景#iが、パーティクルとしての状態zi(l) tになっているときの、前景#iの観測値xi tの観測尤度p(xi t|zi(l) t)を求めて、状態パーティクル更新部42に供給する。
状態パーティクル更新部42は、状態パーティクル記憶部43に記憶された時刻t-1のパーティクルとしての状態zi(l) t-1から、式(18)に従って、次の時刻tの状態zi tとしてのパーティクルzi(l) tを求める、パーティクルの遷移先の予測(算出)を行う。
状態パーティクル更新部42は、次の時刻tの状態zi tとしてのパーティクルzi(l) tを、状態パーティクル記憶部43に供給し、時刻t-1のパーティクルとしての状態zi(l) t-1に代えて記憶させる。
さらに、状態パーティクル更新部42は、見えモデル尤度計算部41からの観測尤度p(xi t|zi(l) t)を用いて、式(12)に従い、パーティクルzi(l) tの重みwi(l) tを求め、パーティクルzi(l) tと同様に、状態パーティクル記憶部43に供給して記憶させる。
また、状態パーティクル更新部42は、パーティクルzi(l) tの重みwi(l) tに対応する確率で、パーティクルzi(l) tを選択するリサンプリングを行い、状態パーティクル記憶部43に記憶されたパーティクルzi(l) tを、リサンプリング結果に書き換える。
リサンプリング結果としてのパーティクルzi(l) tは、次の時刻t+1の観測尤度p(xi t+1|zi(l) t+1)が得られた後に、式(18)に従って、時刻t+1の状態zi t+1としてのパーティクルzi(l) t+1を予測するときに用いられる。
状態パーティクル記憶部43は、状態パーティクル更新部42が更新する、前景の状態zi tとしてのパーティクルzi(l) tと、その重みwi(l) tとを記憶する。
推定観測値生成部44は、見えモデル記憶部14に記憶された前景見えモデルμi、及び、背景見えモデルμwを用い、前景の状態が、状態パーティクル記憶部43に記憶された各パーティクルとしての状態zi(l) tになっている観測画像(生成モデルにおいて観測される画像)λi(l) tを、式(20)に従って生成し、見えモデル尤度計算部41に供給する。
図23は、図21の操作モデル学習部15の構成例を示すブロック図である。
操作モデル学習部15は、前景状態推定部51、物体基準画像生成部52及び53、前景認識部54及び55、並びに、操作モデル更新部56を有する。
前景状態推定部51、並びに、物体基準画像生成部52及び53には、カメラ12から、実画像λ~tが供給される。
前景状態推定部51は、図22の前景状態推定部31と同様に構成される。
前景状態推定部51は、図22の前景状態推定部31と同様に、カメラ12からの実画像λ~t、並びに、見えモデル記憶部14に記憶された前景見えモデルμi、及び、背景見えモデルμwを用いて、カメラ12からの実画像λ~t上の前景#iの状態zi tを推定する。
そして、前景状態推定部51は、前景#iの状態zi tを、アクチュエータ制御部11、目標状態生成部17、変化量算出部18、世界座標変換部19、及び、物体基準座標変換部22に供給する。
なお、前景状態推定部51では、図22の前景状態推定部31と同様に、カメラ12からの実画像λ~t上の前景#iの状態zi tの推定が行われることにより、その推定の結果として、状態zi tのL個のパーティクルzi(l) t及び重みwi(l) tが求められる。
前景状態推定部51は、例えば、L個のパーティクルzi(l) tの重み付け平均値を、そのパーティクルzi(l) tの重みwi(l) tを重みとして用いて求め、そのL個のパーティクルzi(l) tの重み付け平均値を、前景#iの(最尤)状態zi tとして出力する。
ここで、前景状態推定部51は、図22の前景状態推定部31と同様に構成され、同様の処理を行うので、実装上は、前景状態推定部51と図22の前景状態推定部31とのうちのいずれか一方だけを設ければ済む。
物体基準画像生成部52は、図16及び図17で説明したように、カメラ12からの現在時刻tの実画像λ~tから、現在時刻tの実画像λ~tに映る操作対象物体を基準とする現在時刻tの物体基準座標系Ot''を基準とする所定の範囲を切り出し、現在時刻tの物体基準座標系Ot''の傾きが0になるように回転することにより、現在時刻物体基準画像POt''を生成して、前景認識部54に供給する。
すなわち、物体基準画像生成部52は、例えば、前景状態推定部51からの前景#iの状態zi tのうちの、(現在)時刻tの操作対象物体(の前景#o)の状態zo tのうちの位置so tを、現在時刻tの操作対象物体の重心として採用するとともに、操作対象物体の状態zo tのうちの姿勢qo tを、やはり、現在時刻tの操作対象物体の姿勢として採用し、現在時刻tの操作対象物体の重心so tを中心とし、かつ、世界座標系Oに対して、現在時刻tの操作対象物体の姿勢qo tだけ傾いた矩形の所定の範囲を、傾き画像として、実画像λ~tから切り出す。
そして、物体基準画像生成部52は、傾き画像を、現在時刻tの物体基準座標系Ot''の傾き(現在時刻tの操作対象物体の姿勢qo t)が0になるように回転することにより、現在時刻物体基準画像POt''を生成する。
物体基準画像生成部53は、図16及び図17で説明したように、カメラ12からの現在時刻tの実画像λ~tから、現在時刻tの直前の時刻である前時刻t-△tの実画像λ~t-△tに映る操作対象物体を基準とする前時刻t-△tの物体基準座標系Ot-△t''を基準とする所定の範囲を切り出し、前時刻t-△tの物体基準座標系Ot-△t''の傾きが0になるように回転することにより、前時刻物体基準画像QOt''を生成して、前景認識部55に供給する。
すなわち、物体基準画像生成部53は、例えば、前景状態推定部51から前時刻t-△tに供給された前景#iの前時刻t-△tの状態zi t-△tのうちの、前時刻t-△tの操作対象物体(の前景#o)の状態zo t-△tのうちの位置so t-△tを、前時刻t-△tの操作対象物体の重心として採用するとともに、操作対象物体の状態zo t-△tのうちの姿勢qo t-△tを、やはり、前時刻t-△tの操作対象物体の姿勢として採用し、前時刻t-△tの操作対象物体の重心so t-△tを中心とし、かつ、世界座標系Oに対して、前時刻t-△tの操作対象物体の姿勢qo t-△tだけ傾いた矩形の所定の範囲を、傾き画像として、実画像λ~tから切り出す。
そして、物体基準画像生成部52は、傾き画像を、前時刻t-△tの物体基準座標系Ot-△t''の傾き(前時刻t-△tの操作対象物体の姿勢qo t-△t)が0になるように回転することにより、前時刻物体基準画像QOt''を生成する。
前景認識部54は、物体基準画像生成部52からの現在時刻物体基準画像POt''から、見えモデル記憶部14に前景見えモデルμmが記憶されたハンドを認識することにより、図17で説明したように、現在時刻物体基準画像POt''に映るハンドの位置と位置変化を、物体基準座標系O''でのハンドの位置sm t''と位置変化△sm t''として求め、操作モデル更新部56に供給する。
ここで、前景認識部54での、現在時刻物体基準画像POt''からのハンドの認識は、例えば、前景状態推定部51(図22の前景状態推定部31)での、実画像λ~t上の前景#iの状態zi tの推定の場合と同様に、見えモデル記憶部14に記憶されたハンド(の前景#m)の前景見えモデルμm等を用いて、現在時刻物体基準画像POt''上のハンドの状態zm t''を推定することによって行うことができる。
なお、現在時刻物体基準画像POt''上のハンドの状態zm t''の推定を、前景状態推定部51と同様にして行う場合には、ハンドの前景見えモデルμmの他、現在時刻物体基準画像POt''に映る背景の背景見えモデルが必要となるが、現在時刻物体基準画像POt''に映る背景の背景見えモデルとしては、例えば、見えモデル記憶部14に記憶された背景見えモデルμwのうちの、物体基準画像生成部52が現在時刻物体基準画像POt''となる傾き画像を切り出した範囲と同一の範囲の画像を採用することができる。
前景認識部55は、物体基準画像生成部53からの前時刻物体基準画像QOt''から、見えモデル記憶部14に前景見えモデルμoが記憶された操作対象物体を認識することにより、図17で説明したように、前時刻物体基準画像QOt''に映る操作対象物体の位置と姿勢を、物体基準座標系O''での操作対象物体の位置変化△so t-△t''と姿勢変化△qo t-△t''として求め、操作モデル更新部56に供給する。
ここで、前景認識部55での、前時刻物体基準画像QOt''からの操作対象物体の認識は、例えば、上述の前景認識部54と同様に、見えモデル記憶部14に記憶された操作対象物体(の前景#o)の前景見えモデルμo等を用いて、前時刻物体基準画像QOt''上の操作対象物体の状態zo t''を推定することによって行うことができる。
なお、この場合、操作対象物体の前景見えモデルμoの他、前時刻物体基準画像QOt''に映る背景の背景見えモデルが必要となるが、前時刻物体基準画像QOt''に映る背景の背景見えモデルとしては、例えば、見えモデル記憶部14に記憶された背景見えモデルμwのうちの、物体基準画像生成部53が前時刻物体基準画像QOt''となる傾き画像を切り出した範囲と同一の範囲の画像を採用することができる。
操作モデル更新部56は、前景認識部54からの物体基準座標系O''でのハンドの位置sm t''と位置変化△sm t''、及び、前景認識部55からの物体基準座標系O''での操作対象物体の位置変化△so t''と姿勢変化△qo t''を、操作モデルの学習データとして、その学習データに基づいて、操作モデル記憶部16に記憶された操作モデルを更新する。
すなわち、操作モデル更新部56は、学習データとしてのハンドの位置sm t''及び位置変化△sm t''、並びに、操作対象物体の位置変化△so t''及び姿勢変化△qo tを、それぞれ、インデクス#d,#j,#k、及び、#hに離散化する。
その後、操作モデル更新部56は、操作モデルの位置テーブル(図19)から、学習データとしてのハンドの位置sm t''を離散化したインデクス#dが割り当てられた位置フィールドを特定し、その位置フィールドが有する頻度テーブル(図20)から、学習データとしてのハンドの位置変化△sm t''、並びに、操作対象物体の位置変化△so t''及び姿勢変化△qo tをそれぞれ離散化したインデクス#j,#k、及び、#hが割り当てられた頻度フィールドを、更新対象の更新対象フィールドとして特定する。
そして、操作モデル更新部56は、更新対象フィールドに記憶された頻度、すなわち、学習データとしてのハンドの位置sm t''及び位置変化△sm t''、並びに、操作対象物体の位置変化△so t''及び姿勢変化△qo t(を離散化したインデクス#d,#j,#k、及び、#h)が出現した出現頻度を、1だけインクリメントする。
図24は、図21のエージェントの処理を説明するフローチャートである。
ステップS11では、エージェントのカメラ12において、画像の撮影が行われることにより、実画像λ~tが取得され、その実画像λ~tが、見えモデル学習部13、及び、操作モデル学習部15に供給されて、処理は、ステップS12に進む。
ステップS12では、見えモデル学習部13が、カメラ12からの実画像λ~tを用いて、見えモデル記憶部14に記憶された前景見えモデルμi、及び、背景見えモデルμwの学習を行う見えモデルの学習処理を行い、処理は、ステップS13に進む。
ステップS13では、操作モデル学習部15は、カメラ12からの実画像λ~t、及び、見えモデル記憶部15に記憶された前景見えモデルμi等を用いて、操作モデル記憶部16に記憶された操作モデルの学習を行う操作モデルの学習処理を行い、処理は、ステップS14に進む。
ステップS14では、アクチュエータ制御部11、及び、目標状態生成部17ないし物体基準座標変換部22が、ハンドにアクションを行わせるアクションの出力処理を行い、処理は、ステップS11に戻る。
なお、図24では、カメラ12において、実画像λ~tが撮影されるごとに、見えモデルの学習処理(ステップS12)、操作モデルの学習処理(ステップS13)、及び、アクションの出力処理(ステップS14)が行われるが、その他、例えば、十分な枚数の実画像を用いて、見えモデルの学習処理、及び、操作モデルの学習処理を行い、その後、カメラ12において、実画像λ~tが撮影されるごとに、アクションの出力処理を行うことができる。
すなわち、実画像を用いて、見えモデルの学習処理と、操作モデルの学習処理とを、いわば並列的に行うことを、十分な回数だけ繰り返し、その後、カメラ12において、実画像λ~tが撮影されるごとに、アクションの出力処理を行うことができる。
あるいは、十分な枚数の実画像を用いて、見えモデルの学習処理を行い、精度の高い前景見えモデルμi、及び、背景見えモデルμwが得られてから、十分な枚数の実画像を用いて、操作モデルの学習処理を行い、その後、カメラ12において、実画像λ~tが撮影されるごとに、アクションの出力処理を行うことができる。
図25は、図24のステップS12で行われる見えモデルの学習処理を説明するフローチャートである。
見えモデルの学習処理では、カメラ12で撮影された実画像λ~tが、見えモデル学習部13(図22)の前景状態推定部31、及び、見えモデル更新部32に供給される。
前景状態推定部31は、ステップS21において、実画像λ~tに対して、まだ、注目モデルに選択していない前景モデル#i(前景見えモデルμi)を、注目モデルに選択し、処理は、ステップS22に進む。
ステップS22では、前景状態推定部31の状態パーティクル更新部42が、状態パーティクル記憶部43に記憶された時刻t-1のL個のパーティクルとしての前景#iの状態(以下、状態パーティクルともいう)zi(1) t-1ないしzi(L) t-1の中から、まだ、注目する注目状態パーティクルに選択していない1つの状態パーティクルzi(l) t-1を、注目状態パーティクルに選択して、処理は、ステップS23に進む。
ステップS23では、状態パーティクル更新部42は、状態パーティクル記憶部43に記憶された注目状態パーティクルzi(l) t-1から、式(18)に従って、時刻tの注目状態パーティクルzi(l) tを予測する。
さらに、状態パーティクル更新部42は、時刻tの注目状態パーティクルzi(l) tを、状態パーティクル記憶部43に供給し、時刻t-1の注目状態パーティクルzi(l) t-1に代えて記憶させて、処理は、ステップS23からステップS24に進む。
ステップS24では、前景状態推定部31の推定観測値生成部44が、見えモデル記憶部14に記憶された前景見えモデルμi、及び、背景見えモデルμwを用い、注目モデルになっている前景#iの状態が、状態パーティクル記憶部43に記憶された注目状態パーティクルzi(l) tになっている観測画像(生成モデルにおいて観測される画像)λi(l) tを、式(20)に従って生成する。
推定観測値生成部44は、観測画像λi(l) tを、見えモデル尤度計算部41に供給して、処理は、ステップS24からステップS25に進む。
ステップS25では、見えモデル尤度計算部41が、カメラ12から前景状態推定部31に供給された実画像λ~tと、推定観測値生成部44からの観測画像λi(l) tとを用い、式(19)に従って、注目モデルになっている前景#iが、注目状態パーティクルとしての状態zi(l) tになっているときの、前景#iの観測値xi tの観測尤度p(xi t|zi(l) t)を求める。
さらに、見えモデル尤度計算部41は、観測尤度p(xi t|zi(l) t)を、状態パーティクル更新部42に供給して、処理は、ステップS25からステップS26に進む。
ステップS26では、状態パーティクル更新部42が、見えモデル尤度計算部41からの観測尤度p(xi t|zi(l) t)を用いて、式(12)に従い、注目状態パーティクルzi(l) tの重みwi(l) tを求め、状態パーティクルzi(l) tと同様に、状態パーティクル記憶部43に供給して記憶させ、処理は、ステップS27に進む。
ステップS27では、状態パーティクル更新部42は、状態パーティクル記憶部43に記憶された時刻t-1のL個の状態パーティクルzi(1) t-1ないしzi(L) t-1のすべてを、注目状態パーティクルに選択したかどうかを判定する。
ステップS27において、L個の状態パーティクルzi(1) t-1ないしzi(L) t-1を、まだ、注目状態パーティクルに選択していないと判定された場合、処理は、ステップS22に戻り、状態パーティクル更新部42は、L個の状態パーティクルzi(1) t-1ないしzi(L) t-1のうちの、まだ、注目状態パーティクルに選択していない1つの状態パーティクルを、注目状態パーティクルに新たに選択して、以下、同様の処理が繰り返す。
また、ステップS27において、L個の状態パーティクルzi(1) t-1ないしzi(L) t-1のすべてを、注目状態パーティクルに選択したと判定された場合、処理は、ステップS28に進み、見えモデル更新部32は、カメラ12から供給される実画像λ~tと、ステップS23で状態パーティクル記憶部43に記憶された時刻tの状態パーティクルzi(l) t、及び、ステップS26で状態パーティクル記憶部43に記憶された重みwi(l) tとを用いて、見えモデル記憶部14に記憶された前景見えモデルμiを更新し、処理は、ステップS29に進む。
すなわち、見えモデル更新部32は、式(21)ないし式(24)に従って、前景見えモデルμiのうちの前景テクスチャモデルτiを更新し、式(31)ないし式(35)に従って、前景見えモデルμiのうちの前景形状モデルσiを更新する。
ステップS29では、見えモデル更新部32は、カメラ12から供給される実画像λ~tと、ステップS23で状態パーティクル記憶部43に記憶された時刻tの状態パーティクルzi(l) t、及び、ステップS26で状態パーティクル記憶部43に記憶された重みwi(l) tとを用いて、見えモデル記憶部14に記憶された背景見えモデルμwを更新し、処理は、ステップS30に進む。
すなわち、見えモデル更新部32は、式(25)ないし式(30)に従って、背景見えモデルμw(背景テクスチャモデルτw)を更新する。
ステップS30では、エージェントは、実画像λ~tに対して、N個の前景モデル#1ないし#Nのすべてを、注目モデルに選択したかどうかを判定する。
ステップS30において、N個の前景モデル#1ないし#Nのすべてが、まだ、注目モデルに選択されていないと判定された場合、処理は、ステップS21に戻る。ステップS21では、前景状態推定部31は、実画像λ~tに対して、まだ、注目モデルに選択していない前景モデル#iの1つを、注目モデルに新たに選択し、以下、同様の処理が繰り返される。
また、ステップS30において、N個の前景モデル#1ないし#Nのすべてが、注目モデルに選択されたと判定された場合、処理は、ステップS31に進み、状態パーティクル更新部42は、状態パーティクル記憶部43に記憶された重みwi(l) tに対応する確率で、同じく状態パーティクル記憶部43に記憶された状態パーティクルzi(l) tを選択するリサンプリングを行い、状態パーティクル記憶部43に記憶された状態パーティクルzi(l) tを、リサンプリング結果に書き換えて、処理はリターンする。
なお、ステップS13でのリサンプリングの結果得られる状態パーティクルzi(l) tは、次の時刻t+1の観測尤度p(xi t+1|zi(l) t+1)が得られた後に、式(18)に従って、時刻t+1の状態zi t+1としての状態パーティクルzi(l) t+1を予測するときに用いられる。
また、図25において、ステップS22ないしS27が、EMアルゴリズムのEステップに相当し、ステップS28及びS29が、EMアルゴリズムのMステップに相当する。
図26は、図24のステップS13で行われる操作モデルの学習処理を説明するフローチャートである。
操作モデルの学習処理では、カメラ12で撮影された実画像λ~tが、操作モデル学習部14(図23)の前景状態推定部51、並びに、物体基準画像生成部52及び53に供給される。
前景状態推定部51は、カメラ12からの実画像λ~t、並びに、見えモデル記憶部14に記憶された前景見えモデルμi、及び、背景見えモデルμwを用いて、カメラ12からの実画像λ~t上の前景#iの状態zi tを推定し、アクチュエータ制御部11、目標状態生成部17、変化量算出部18、世界座標変換部19、及び、物体基準座標変換部22に供給して、処理は、ステップS52に進む。
すなわち、前景状態推定部51は、図22の前景状態推定部31と同様に、カメラ12からの実画像λ~t上の前景#iの状態zi tの推定を行うことにより、その推定の結果として、状態zi tのL個のパーティクルzi(l) t及び重みwi(l) tを求める。
さらに、前景状態推定部51は、例えば、L個のパーティクルzi(l) tの重み付け平均値を、そのパーティクルzi(l) tの重みwi(l) tを重みとして用いて求める。そして、前景状態推定部51は、L個のパーティクルzi(l) tの重み付け平均値を、前景#iの状態zi tとして、アクチュエータ制御部11、目標状態生成部17、変化量算出部18、世界座標変換部19、及び、物体基準座標変換部22に供給する。
ステップS52では、物体基準画像生成部52は、前景状態推定部51からの現在時刻tの前景#iの状態zi tのうちの、現在時刻tの操作対象物体(の前景#o)の状態zo tとしての位置so tと姿勢qo tを、現在時刻tの物体基準座標系Ot''(現在時刻tの実画像λ~tに映る操作対象物体を基準とする物体基準座標系O'')の原点と姿勢として認識する。
さらに、物体基準画像生成部52は、図16及び図17で説明したように、カメラ12からの現在時刻tの実画像λ~tから、現在時刻tの物体基準座標系Ot''を基準とする所定の範囲を、傾き画像として切り出す。
そして、物体基準画像生成部52は、傾き画像を、現在時刻tの物体基準座標系Ot''の傾きが0になるように回転することにより、現在時刻物体基準画像POt''を生成し、前景認識部54に供給して、処理は、ステップS52からステップS53に進む。
ステップS53では、前景認識部54は、物体基準画像生成部52からの現在時刻物体基準画像POt''から、見えモデル記憶部14に前景見えモデルμmが記憶されたハンドを認識することにより、図17で説明したように、物体基準座標系O''でのハンドの位置sm t''と位置変化△sm t''を求め、操作モデル更新部56に供給して、処理は、ステップS54に進む。
ステップS54では、物体基準画像生成部53は、前景状態推定部51からの前時刻t-△tの前景#iの状態zi t-△tのうちの、前時刻t-△tの操作対象物体(の前景#o)の状態zo t-△tとしての位置so t-△tと姿勢qo t-△tを、前時刻t-△tの物体基準座標系Ot-△t''(前時刻t-△tの実画像λ~t-△tに映る操作対象物体を基準とする物体基準座標系O'')の原点と姿勢として認識する。
さらに、物体基準画像生成部53は、図16及び図17で説明したように、カメラ12からの現在時刻tの実画像λ~tから、前時刻t-△tの物体基準座標系Ot-△t''を基準とする所定の範囲を、傾き画像として切り出す。
そして、物体基準画像生成部53は、傾き画像を、前時刻t-△tの物体基準座標系Ot-△t''の傾きが0になるように回転することにより、前時刻物体基準画像QOt''を生成し、前景認識部55に供給して、処理は、ステップS54からステップS55に進む。
ステップS55では、前景認識部55は、物体基準画像生成部53からの前時刻物体基準画像QOt''から、見えモデル記憶部14に前景見えモデルμoが記憶された操作対象物体を認識することにより、図17で説明したように、物体基準座標系O''での操作対象物体の位置変化△so t''と姿勢変化△qo t''を求め、操作モデル更新部56に供給して、処理は、ステップS56に進む。
ステップS56では、操作モデル更新部56は、前景認識部54からの物体基準座標系O''でのハンドの位置sm t''と位置変化△sm t''、及び、前景認識部55からの物体基準座標系O''での操作対象物体の位置変化△so t''と姿勢変化△qo t''を、操作モデルの学習データとして、その学習データに基づいて、操作モデル記憶部16に記憶された操作モデルを更新して、処理はリターンする。
すなわち、操作モデル更新部56は、操作モデル(図20)の頻度テーブルの頻度フィールドのうちの、学習データとしてのハンドの位置sm t''及び位置変化△sm t''、並びに、操作対象物体の位置変化△so t''及び姿勢変化△qo tに対応する頻度フィールド(ハンドの位置sm t''及び位置変化△sm t''、並びに、操作対象物体の位置変化△so t''及び姿勢変化△qo tをそれぞれ離散化したインデクス#d,#j,#k、及び、#hが割り当てられた頻度フィールド)を、更新対象の更新対象フィールドとして特定し、その更新対象フィールドに記憶された頻度を、1だけインクリメントすることにより、操作モデルを更新する。
図27は、図24のステップS14で行われるアクションの出力処理を説明するフローチャートである。
目標状態生成部17は、操作モデル学習部15から、各前景#iの状態zi tが供給されると、ステップS61において、その各前景#iの状態zi tのうちの、操作対象物体(の前景#o)の状態zo tが、直前に生成された目標状態zo,tgt tに一致しているかどうかを判定する。
ステップS61において、操作対象物体の状態zo tが、直前に生成された目標状態zo,tgt tに一致していると判定された場合、すなわち、操作対象物体が、直前に生成された目標状態zo,tgt tになっている場合、処理は、ステップS62に進み、目標状態生成部17は、新たな目標状態zo,tgt tを生成して、変化量算出部18に供給し、処理は、ステップS63に進む。
一方、ステップS61において、操作対象物体の状態zo tが、直前に生成された目標状態zo,tgt tに一致していないと判定された場合、すなわち、操作対象物体が、直前に生成された目標状態zo,tgt tになっていない場合、目標状態生成部17は、直前に生成された目標状態zo,tgt tを、変化量算出部18に供給し(供給し続け)、処理は、ステップS62をスキップして、ステップS63に進む。
ステップS63では、変化量算出部18は、操作モデル学習部15から供給される前景#iの状態zi tのうちの、操作対象物体の(現在の)状態zo tと、目標状態生成部17からの操作対象物体の目標状態zo,tgt tとを用い、式(40)に従って、世界座標系O上での目標状態変化dzo,tgt t(目標位置変化dso,tgt t及び目標姿勢変化dqo,tgt t)を求めて、世界座標変換部19に供給し、処理は、ステップS64に進む。
ステップS64では、世界座標変換部19は、操作モデル学習部15から供給される前景#iの状態zi tのうちの、操作対象物体の状態zo tのうちの姿勢qo tを用い、式(42)に従って、変化量算出部18からの世界座標系O上での目標状態変化dzo,tgt t(目標位置変化dqo,tgt t及び目標姿勢変化dqo,tgt t)を、式(41)の物体基準座標系O''上での目標状態変化dzo,tgt t''(目標位置変化dqo,tgt t''及び目標姿勢変化dqo,tgt t'')に変換する。
そして、世界座標変換部19は、式(41)の物体基準座標系O''上での目標状態変化dzo,tgt t''を、変化量時分割部20に供給して、処理は、ステップS64からステップS65に進む。
ステップS65では、変化量時分割部20は、式(47)に従い、世界座標変換部19からの目標状態変化dzo,tgt t''を、達成回数Ttgtに基づいて分割することで、単位変化量△zo,tgt t''=(△so,tgt t'',△qo,tgt t'')=(dso,tgt t''/Ttgt,dqo,tgt t''/Ttgt)を求める。
そして、変化量時分割部20は、単位変化量△zo,tgt t''を、アクション決定部21に供給して、処理は、ステップS65からステップS66に進む。
ステップS66では、アクション決定部21は、操作モデル記憶部16に記憶された操作モデルを用い、変化量時分割部20からの単位変化量△zo,tgt t''だけの状態変化としての位置変化△so,tgt t''=dso,tgt t''/Ttgt及び姿勢変化△qo,tgt t''=dqo,tgt t''/Ttgtを操作対象物体に生じさせる頻度(確率)が最も高い物体基準座標系O''上のハンドの位置sm t''及び位置変化△sm t''を、ハンドのアクションum t''に決定し、物体基準座標変換部22に供給する。
その後、処理は、ステップS66からステップS67に進み、物体基準座標変換部22は、操作モデル学習部15から供給される前景#iの状態zi tのうちの、操作対象物体の状態zo tのうちの姿勢qo tを用い、式(38)に従って、アクション決定部21からのハンドのアクションum t''、すなわち、物体基準座標系O''で表現されるアクションアクションum t''を、世界座標系Oで表現されるアクションum tに変換する。
そして、物体基準座標変換部22は、以上のようにして得られたアクションum t、すなわち、単位変化量△zo,tgt t''だけの状態変化を操作対象物体に生じさせる(可能性が高い)ハンドのアクションum tを、アクチュエータ制御部11に供給して、処理は、ステップS67からステップS68に進む。
ステップS68では、アクチュエータ制御部11は、操作モデル学習部15からの前景#iの状態zi tのうちの、ハンド(の前景#m)の状態zm tと、物体基準座標変換部22からのアクションum tとに基づいて、エージェントのアーム等を駆動するアクチュエータを制御して、処理はリターンする。
ステップS68でのアクチュエータ制御部11によるアクチュエータの制御により、アームの先端に取り付けられたハンドは、アクションum tを行う。
以上のように、エージェントでは、操作対象物体とハンドとが映る実画像λ~tを用いて、操作対象物体を基準とする物体基準座標系O''の各位置において、ハンドの状態としての位置sm tが変化したときの、ハンドの位置sm t及び位置変化△sm tと、ハンドの状態変化によって生じる操作対象物体の状態変化としての位置変化△so t及び姿勢変化△qo tとを対応付ける操作モデルの学習を行うので、汎用性が高い操作モデルを提供することができる。
すなわち、操作モデルでは、物体基準座標系O''上のハンドの位置sm t''と位置変化△sm t''、つまり、操作対象物体から見たハンドの位置sm t''と位置変化△sm t''に対して、操作対象物体に生じる物体基準座標系O''上の位置変化△so t''及び姿勢変化△qo t''が対応付けられるので、世界座標系O上のハンドの位置sm tと位置変化△sm tに対して、操作対象物体に生じる世界座標系O上の位置変化△so t及び姿勢変化△qo tを対応付ける場合に比較して、少ない学習データ(経験)で、ハンドの位置sm t''及び位置変化△sm t''と、操作対象物体に生じる位置変化△so t''及び姿勢変化△qo t''との関係を獲得することができ、短時間の学習で、物体を正確に操作することができる操作モデルを得ることができる。
さらに、操作モデルにおいて、物体基準座標系O''上のハンドの各位置sm t''及び各位置変化△sm t''について、操作対象物体に生じる位置変化△so t''及び姿勢変化△qo t''との関係が獲得されていれば、操作対象物体が、世界座標系O上で未知の位置や姿勢で置かれていても、操作モデルを使い回して、操作対象物体を正確に操作することができる物体基準座標系O''上のハンドのアクションum t''としての位置sm t''及び位置変化△sm t''、ひいては、世界座標系O上のハンドのアクションum tを決定することができる。
また、操作モデルについては、追加学習を行うことができるので、環境の変化等に対して、操作モデルを、適応的に更新することができ、変化後の環境と操作モデルとの間に、齟齬(食い違い)が生じることを防止することができる。
さらに、本実施の形態では、前景見えモデル及び背景見えモデル、並びに、操作モデルの学習が行われるので、前景となるハンド及び操作対象物体の幾何学的な形状や見え、背景となる環境の見え、操作対象物体の運動に関して、人手によって、モデルを作り込む必要がなく、そのようなモデルの作り込みの手間を省くことができる。
[第6章 シミュレーション]
図28は、コンピュータにおいて、背景上に、操作対象物体の前景#o、及び、ハンドの前景#mを合成することにより作成した画像を、実画像λ~tとして用いた行った、見えモデルの学習処理、及び、操作モデルの学習処理のシミュレーションの結果を、模式的に示す図である。
シミュレーションでは、L字型の操作対象物体の前景#oが、円形のハンドの前景#mによって操作される様子が映った画像を、実画像λ~tとして用いて、見えモデルの学習処理、及び、操作モデルの学習処理を行った。
図28Aは、見えモデルの学習処理、及び、操作モデルの学習処理のシミュレーションで用いた時刻tの実画像λ~tを示している。
図28Bは、見えモデルの学習処理により得られた、操作対象物体の前景#oの前景見えモデルμoと、ハンドの前景#mの前景見えモデルμmとを示している。
図28Cは、見えモデルの学習処理により得られた、背景見えモデルμw=τwを示している。
図28Dは、図28Aの実画像λ~tから、操作対象物体(の前景#o)、及び、ハンド(の前景#m)を認識した認識結果と、実画像λ~tから、傾き画像として切り出される所定の範囲とを示している。
図28Dにおいて、点線で囲む部分B1は、実画像λ~tから、操作対象物体を認識する状態推定を行うことによって得られる状態(位置及び姿勢)で、操作対象物体の前景見えモデルμoを配置した場合の、その前景見えモデルμoの外縁を表す。
また、点線で囲む部分B2は、実画像λ~tから、ハンドを認識する状態推定を行うことによって得られる状態で、ハンドの前景見えモデルμmを配置した場合の、その前景見えモデルμmの外縁を表す。
さらに、点線で囲む部分B3は、点線で囲む部分B1及びB2のように、操作対象物体及びハンドが認識された場合に、実画像λ~tから、その時刻t(現在時刻t)の物体基準座標系Ot''を基準として切り出される所定の範囲(傾き画像)を示している。
図28Eは、図28Aの実画像λ~tから生成された現在時刻物体基準画像POt''を示している。
図28Fは、図28Eの現在時刻物体基準画像POt''から、ハンド(の前景#m)を認識した認識結果を示している。
図28Fにおいて、点線で囲む部分B11は、現在時刻物体基準画像POt''から、ハンドを認識する状態推定を行うことによって得られる状態(位置及び姿勢)で、ハンドの前景見えモデルμmを配置した場合の、その前景見えモデルμmの外縁を表す。
図28Gは、図28Aの実画像λ~tから生成された前時刻物体基準画像QOt''を示している。
図28Hは、図28Gの前時刻物体基準画像QOt''から、操作対象物体(の前景#o)を認識した認識結果を示している。
図28Hにおいて、点線で囲む部分B21は、前時刻物体基準画像QOt''から、操作対象物体を認識する状態推定を行うことによって得られる状態(位置及び姿勢)で、操作対象物体の前景見えモデルμoを配置した場合の、その前景見えモデルμoの外縁を表す。
なお、図28のシミュレーションでは、見えモデルの学習処理を、前景見えモデルμi及び背景見えモデルμwが収束するまで行い、その後、その前景見えモデルμi及び背景見えモデルμwを用いて、操作モデルの学習処理を行ったため、操作モデルの学習処理の当初から、ハンドや操作対象物体について、精度の高い状態推定の結果が得られた。
1枚の実画像λ~tに対して、見えモデルの学習処理を行い、その後、操作モデルの学習処理を行うことを繰り返す場合には、前景見えモデルμi及び背景見えモデルμwが、ある程度収束するまでは、操作モデルの学習処理でのハンドや操作対象物体の状態推定の結果の精度は、低くなるが、前景見えモデルμi及び背景見えモデルμwが、徐々に収束するにつれて、操作モデルの学習処理でのハンドや操作対象物体の状態推定の結果の精度は、向上していく。
図29は、操作モデルを用いたアクションの出力処理のシミュレーションの結果を、模式的に示す図である。
図29Aは、アクションの出力処理のシミュレーションで用いた時刻tの実画像λ~tを示している。
図29Bは、図29Aの実画像λ~tからのハンド及び操作対象物体の状態推定の結果としての状態、並びに、目標状態zo,tgt t、及び、目標状態変化dzo,tgt tを示している。
すなわち、図29Bは、世界座標系O上のハンドの状態としての位置sm t及び姿勢qm t、操作対象物体の状態としての位置so t及び姿勢qo t、目標状態zo,tgt tとしての位置so,tgt t及び姿勢qo,tgt t、並びに、目標状態変化dzo,tgt tを示している。
なお、図29Bにおいて、線分は、姿勢、又は、目標状態変化を表し、丸印及びバツ印は、位置を表す。図29Cにおいても、同様である。
図29Cは、物体基準座標系O''上のハンドの位置sm t''及び位置変化△sm t''、並びに、目標状態変化dzo,tgt t''を示している。物体基準座標系O''の原点は、操作対象物体の重心になっている。
図29Dは、操作モデルを用いてのハンドのアクションum t''の決定の様子を示す図である。
エージェントは、単位変化量△zo,tgt t''だけの状態変化としての位置変化dso,tgt t''/Ttgt及び姿勢変化dqo,tgt t''/Ttgtを、それぞれ離散化し、位置変化dso,tgt t''/Ttgt及び姿勢変化dqo,tgt t''/Ttgtを離散化したインデクス#k及び#hの値#k*及び#h*を求める。
さらに、エージェントは、操作モデル(図20)としての位置テーブルの各位置sm t''を離散化した各インデクス#dの位置フィールドが有する頻度テーブルにおいて、インデクス#k及び#hが、それぞれ、値#k*及び#h*である頻度フィールドの中で、頻度フィールドに記憶されている頻度が最大の最大頻度フィールドを選択する。
図29Dでは、頻度テーブルにおいて、黒く塗りつぶしてある頻度フィールドが、最大頻度フィールドとして選択されている。
エージェントは、最大頻度フィールドに割り当てられている、ハンドの位置変化△sm t''を離散化したインデクス#jの値#j*を求めるとともに、最大頻度フィールドを含む頻度テーブルを有する位置テーブルの位置フィールド(図29Dにおいて斜線を付してある部分)に割り当てられている、ハンドの位置sm t''を離散化したインデクス#dの値#d*を求める。
そして、エージェントは、インデクス#d*に離散化されるハンドの位置の範囲の代表値を、ハンドのアクションum t''のコンポーネントとなる位置sm t''に決定するとともに、インデクス#j*に離散化されるハンドの位置変化の範囲の代表値を、ハンドのアクションum t''のコンポーネントとなる位置変化△sm t''に決定する。
ここで、位置テーブルにおいて、最大頻度フィールドを含む頻度テーブルを有する位置フィールド(図29Dにおいて斜線を付してある部分)が、操作対象物体を目標状態にするためにハンドを動かすときの、そのハンドの動きが開始される位置(物体基準座標系O''上の位置)に対応する。
なお、シミュレーションでは、横×縦が20×20個の位置フィールドに区切られた位置テーブルを採用した。
図30は、操作モデルを用いたアクションの出力処理のシミュレーションの他の結果を示す図である。
図30Aは、ハンドによって操作される操作対象物体の移動軌跡(世界座標系O上の移動軌跡)を示している。
図30Bは、ハンドによって操作される操作対象物体の位置の誤差、及び、姿勢の誤差を示している。
図30Bにおいて、横軸は、ハンドを動かした回数(ハンドのアクションを決定した回数)である試行ステップ数を表しており、縦軸は、目標状態に対する、操作対象物体の位置の誤差、及び、姿勢の誤差を示している。
エージェントは、位置と姿勢の両方を、同時に目標状態に到達させるように、ハンドを動かしており、そのため、図30Aに示すように、操作対象物体の移動軌道は、操作対象物体の最初の位置から目標状態としての位置までの最短の軌道に対して、左右に振れた軌跡になっている。
シミュレーションでは、操作対象物体の位置の誤差、及び、姿勢の誤差は、ハンドによって操作されるごとに、傾向として減少していくこと、及び、操作対象物体は、先に、目標状態としての位置に到達し、その後、目標状態としての位置と姿勢の両方に到達することが確認された。
図30Bでは、操作対象物体は、約350ステップ(試行ステップ数)で、目標状態としての位置に到達し、600ステップで、目標状態としての位置及び姿勢の両方に到達している。
[第7章 本技術を適用したコンピュータの説明]
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
そこで、図31は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク105やROM103に予め記録しておくことができる。
あるいはまた、プログラムは、リムーバブル記録媒体111に格納(記録)しておくことができる。このようなリムーバブル記録媒体111は、いわゆるパッケージソフトウエアとして提供することができる。ここで、リムーバブル記録媒体111としては、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。
なお、プログラムは、上述したようなリムーバブル記録媒体111からコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵するハードディスク105にインストールすることができる。すなわち、プログラムは、例えば、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。
コンピュータは、CPU(Central Processing Unit)102を内蔵しており、CPU102には、バス101を介して、入出力インタフェース110が接続されている。
CPU102は、入出力インタフェース110を介して、ユーザによって、入力部107が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)103に格納されているプログラムを実行する。あるいは、CPU102は、ハードディスク105に格納されたプログラムを、RAM(Random Access Memory)104にロードして実行する。
これにより、CPU102は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU102は、その処理結果を、必要に応じて、例えば、入出力インタフェース110を介して、出力部106から出力、あるいは、通信部108から送信、さらには、ハードディスク105に記録等させる。
なお、入力部107は、キーボードや、マウス、マイク等で構成される。また、出力部106は、LCD(Liquid Crystal Display)やスピーカ等で構成される。
ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。
また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
さらに、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、本技術は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
また、本実施の形態では、ハンドの姿勢が変化しないこととしたが、本技術は、ハンドの姿勢が変化する場合にも適用することができる。
さらに、本技術は、任意の第1の物体を、他の任意の第2の物体によって操作する場合に適用することができる。
また、本実施の形態では、重心原点座標系O''(図13)を、操作モデルを扱う物体基準座標系として用いたが、かかる物体基準座標系としては、その他、例えば、ローカル座標系O'(図13)を採用することができる。
なお、本技術は、以下のような構成をとることができる。
[1]
第1の物体と第2の物体とが映る、実際に観測される画像である実画像を用いて、前記第1の物体を基準とする物体基準座標系の各位置において、前記第2の物体の状態が変化したときの、前記第2の物体の位置及び状態変化と、前記第2の物体の状態変化によって生じる前記第1の物体の状態変化とを対応付ける、前記第2の物体による前記第1の物体の操作に関する操作モデルの学習を行う操作モデル学習部を備える
情報処理装置。
[2]
前記操作モデルは、前記物体基準座標系の各位置について、その位置から、前記第2の物体の各状態変化が生じたときに、前記第1の物体の各状態変化が生じる頻度を表す頻度テーブルを含む
[1]に記載の情報処理装置。
[3]
前記操作モデル学習部は、
前記物体基準座標系の所定の位置において、前記第2の物体に、所定の状態変化が生じることによって、前記第1の物体に、他の所定の状態変化が生じた場合に、前記頻度テーブルの、前記所定の位置において生じた前記第2の物体の前記所定の状態変化によって、前記第1の物体に前記他の所定の状態変化が生じる頻度をインクリメントすることにより、前記操作モデルを更新する操作モデル更新部
を有する
[2]に記載の情報処理装置。
[4]
前記操作モデル学習部は、
現在時刻の実画像から、前記現在時刻の実画像に映る前記第1の物体を基準とする前記物体基準座標系である現在時刻の物体基準座標系を基準とする所定の範囲を切り出し、前記現在時刻の物体基準座標系の傾きが0になるように回転することにより得られる画像である現在時刻物体基準画像を生成する第1の物体基準画像生成部と、
前記現在時刻物体基準画像から、前記第2の物体を認識することにより、その第2の物体の位置と状態変化を、前記物体基準座標系での前記第2の物体の位置と状態変化として求める第1の認識部と、
前記現在時刻の実画像から、前記現在時刻の直前の時刻である前時刻の実画像に映る前記第1の物体を基準とする前記物体基準座標系である前時刻の物体基準座標系を基準とする所定の範囲を切り出し、前記前時刻の物体基準座標系の傾きが0になるように回転することにより得られる画像である前時刻物体基準画像を生成する第2の物体基準画像生成部と、
前記前時刻物体基準画像から、前記第1の物体を認識することにより、その第1の物体の状態を、前記物体基準座標系での前記第1の物体の状態変化として求める第2の認識部と
をさらに有し、
前記操作モデル更新部は、前記第1の認識部で求められる前記物体基準座標系での前記第2の物体の位置と状態変化、及び、前記第2の認識部で求められる前記物体基準座標系での前記第1の物体の状態変化に基づいて、前記操作モデルを更新する
[3]に記載の情報処理装置。
[5]
前記操作モデルを用いて、前記第1の物体の状態を所定の目標状態にするように、前記第1の物体を操作するための前記第2の物体のアクションを決定するアクション決定部をさらに備える
[2]ないし[4]のいずれかに記載の情報処理装置。
[6]
前記アクション決定部は、前記操作モデルを用いて、前記第1の物体の状態が前記所定の目標状態になるために現在時刻に必要な前記第1の物体の状態の変化量である単位変化量だけの状態変化を前記第1の物体に生じさせる頻度が最も高い前記物体基準座標系上の前記第2の物体の位置と状態変化とを、前記第2の物体のアクションに決定する
[5]に記載の情報処理装置。
[7]
前記実画像を用いて、前記実画像の、前記第1の物体と前記第2の物体とのそれぞれに対応する前景の見えのモデルである前景見えモデル、及び、背景の見えのモデルである背景見えモデルの学習を行う見えモデル学習部をさらに備える
[1]ないし[6]のいずれかに記載の情報処理装置。
[8]
前記見えモデル学習部は、
前記実画像を用いて、前記前景の状態を推定する前景状態推定部と、
前記前景の状態の推定結果を用いて、前記前景見えモデル、及び、前記背景見えモデルを更新する見えモデル更新部と
を有する
[7]に記載の情報処理装置。
[9]
前記背景見えモデルは、前記背景のテクスチャを表す背景テクスチャモデルを含み、
前記前景見えモデルは、前記前景のテクスチャを表す前景テクスチャモデルと、前記前景の形状を表す前景形状モデルとを含み、
前記前景の状態は、前記前景の位置、及び、前記位置が変化する速度、並びに、前記前景の姿勢、及び、前記姿勢が変化する速度を含む
[8]に記載の情報処理装置。
[10]
前記背景見えモデル、及び、前記前景見えモデルは、パーティクルフィルタを用いたEMアルゴリズムに従って更新される
[9]に記載の情報処理装置。
[11]
前記前景状態推定部は、前記前景の状態を表すパーティクルである状態パーティクルの重みと、前記状態パーティクルの遷移先とを算出する処理を、前記パーティクルフィルタを用いたEMアルゴリズムのEステップとして行う
[10]に記載の情報処理装置。
[12]
前記前景状態推定部は、
前記前景の状態が、前記状態パーティクルが表す状態である場合に、画像の観測値を生成する生成モデルにおいて観測される観測値の観測尤度に対応する値を、前記状態パーティクルの重みとして算出するとともに、
前記状態パーティクルが、前記状態パーティクルが表す前記前景の状態のうちの前記位置変化の速度、及び、前記姿勢変化の速度に従い、かつ、確率的に揺らぎながら遷移することとして、前記状態パーティクルの遷移先を算出し、
前記生成モデルでは、
前記前景見えモデルが表す画像上の点については、前記前景テクスチャモデルが表すテクスチャと、前記背景テクスチャモデルが表すテクスチャとを、前記前景形状モデルをα値としてαブレンディングし、
前記前景見えモデルが表す画像上の点以外の点については、前記背景テクスチャモデルが表すテクスチャを採用する
ことにより、前記生成モデルにおいて観測される前記画像の観測値が生成される
[11]に記載の情報処理装置。
[13]
前記見えモデル更新部は、
前記状態パーティクルが表す状態に従って、前記実画像から画像を切り出し、前記実画像から切り出した画像である切り出し画像を、前記状態パーティクルの重みに従って重み付け加算することにより、前記前景テクスチャモデルを更新する処理、
前記状態パーティクルが表す状態に従って、前記実画像から、前記状態に対応する前景を除去し、前記前景を除去した実画像を、前記状態パーティクルの重みに従って重み付け加算することにより、前記背景テクスチャモデルを更新する処理、
及び、前記前景テクスチャモデルが表すテクスチャの各画素が前景であることの尤度、及び、背景であることの尤度を求め、前記前景であることの尤度、及び、背景であることの尤度を用いて、前記前景テクスチャモデルが表すテクスチャの各画素が前景である確率を求めることにより、前記前景形状モデルを更新する処理
を、前記パーティクルフィルタを用いたEMアルゴリズムのMステップとして行う
[11]又は[12]に記載の情報処理装置。
[14]
前記見えモデル更新部は、
前記切り出し画像を、前記状態パーティクルの重みに従って重み付け加算した重み付け加算値を、所定時間分だけ平均化することにより、前記前景テクスチャモデルを更新するとともに、
前記前景を除去した実画像を、前記状態パーティクルの重みに従って重み付け加算した重み付け加算値を、所定時間分だけ平均化することにより、前記背景テクスチャモデルを更新する
[13]に記載の情報処理装置。
[15]
第1の物体と第2の物体とが映る、実際に観測される画像である実画像を用いて、前記第1の物体を基準とする物体基準座標系の各位置において、前記第2の物体の状態が変化したときの、前記第2の物体の位置及び状態変化と、前記第2の物体の状態変化によって生じる前記第1の物体の状態変化とを対応付ける、前記第2の物体による前記第1の物体の操作に関する操作モデルの学習を行うステップを含む
情報処理方法。
[16]
第1の物体と第2の物体とが映る、実際に観測される画像である実画像を用いて、前記第1の物体を基準とする物体基準座標系の各位置において、前記第2の物体の状態が変化したときの、前記第2の物体の位置及び状態変化と、前記第2の物体の状態変化によって生じる前記第1の物体の状態変化とを対応付ける、前記第2の物体による前記第1の物体の操作に関する操作モデルの学習を行う操作モデル学習部
として、コンピュータを機能させるためのプログラム。
第1の物体と第2の物体とが映る、実際に観測される画像である実画像を用いて、前記第1の物体を基準とする物体基準座標系の各位置において、前記第2の物体の状態が変化したときの、前記第2の物体の位置及び状態変化と、前記第2の物体の状態変化によって生じる前記第1の物体の状態変化とを対応付ける、前記第2の物体による前記第1の物体の操作に関する操作モデルの学習を行う操作モデル学習部を備える
情報処理装置。
[2]
前記操作モデルは、前記物体基準座標系の各位置について、その位置から、前記第2の物体の各状態変化が生じたときに、前記第1の物体の各状態変化が生じる頻度を表す頻度テーブルを含む
[1]に記載の情報処理装置。
[3]
前記操作モデル学習部は、
前記物体基準座標系の所定の位置において、前記第2の物体に、所定の状態変化が生じることによって、前記第1の物体に、他の所定の状態変化が生じた場合に、前記頻度テーブルの、前記所定の位置において生じた前記第2の物体の前記所定の状態変化によって、前記第1の物体に前記他の所定の状態変化が生じる頻度をインクリメントすることにより、前記操作モデルを更新する操作モデル更新部
を有する
[2]に記載の情報処理装置。
[4]
前記操作モデル学習部は、
現在時刻の実画像から、前記現在時刻の実画像に映る前記第1の物体を基準とする前記物体基準座標系である現在時刻の物体基準座標系を基準とする所定の範囲を切り出し、前記現在時刻の物体基準座標系の傾きが0になるように回転することにより得られる画像である現在時刻物体基準画像を生成する第1の物体基準画像生成部と、
前記現在時刻物体基準画像から、前記第2の物体を認識することにより、その第2の物体の位置と状態変化を、前記物体基準座標系での前記第2の物体の位置と状態変化として求める第1の認識部と、
前記現在時刻の実画像から、前記現在時刻の直前の時刻である前時刻の実画像に映る前記第1の物体を基準とする前記物体基準座標系である前時刻の物体基準座標系を基準とする所定の範囲を切り出し、前記前時刻の物体基準座標系の傾きが0になるように回転することにより得られる画像である前時刻物体基準画像を生成する第2の物体基準画像生成部と、
前記前時刻物体基準画像から、前記第1の物体を認識することにより、その第1の物体の状態を、前記物体基準座標系での前記第1の物体の状態変化として求める第2の認識部と
をさらに有し、
前記操作モデル更新部は、前記第1の認識部で求められる前記物体基準座標系での前記第2の物体の位置と状態変化、及び、前記第2の認識部で求められる前記物体基準座標系での前記第1の物体の状態変化に基づいて、前記操作モデルを更新する
[3]に記載の情報処理装置。
[5]
前記操作モデルを用いて、前記第1の物体の状態を所定の目標状態にするように、前記第1の物体を操作するための前記第2の物体のアクションを決定するアクション決定部をさらに備える
[2]ないし[4]のいずれかに記載の情報処理装置。
[6]
前記アクション決定部は、前記操作モデルを用いて、前記第1の物体の状態が前記所定の目標状態になるために現在時刻に必要な前記第1の物体の状態の変化量である単位変化量だけの状態変化を前記第1の物体に生じさせる頻度が最も高い前記物体基準座標系上の前記第2の物体の位置と状態変化とを、前記第2の物体のアクションに決定する
[5]に記載の情報処理装置。
[7]
前記実画像を用いて、前記実画像の、前記第1の物体と前記第2の物体とのそれぞれに対応する前景の見えのモデルである前景見えモデル、及び、背景の見えのモデルである背景見えモデルの学習を行う見えモデル学習部をさらに備える
[1]ないし[6]のいずれかに記載の情報処理装置。
[8]
前記見えモデル学習部は、
前記実画像を用いて、前記前景の状態を推定する前景状態推定部と、
前記前景の状態の推定結果を用いて、前記前景見えモデル、及び、前記背景見えモデルを更新する見えモデル更新部と
を有する
[7]に記載の情報処理装置。
[9]
前記背景見えモデルは、前記背景のテクスチャを表す背景テクスチャモデルを含み、
前記前景見えモデルは、前記前景のテクスチャを表す前景テクスチャモデルと、前記前景の形状を表す前景形状モデルとを含み、
前記前景の状態は、前記前景の位置、及び、前記位置が変化する速度、並びに、前記前景の姿勢、及び、前記姿勢が変化する速度を含む
[8]に記載の情報処理装置。
[10]
前記背景見えモデル、及び、前記前景見えモデルは、パーティクルフィルタを用いたEMアルゴリズムに従って更新される
[9]に記載の情報処理装置。
[11]
前記前景状態推定部は、前記前景の状態を表すパーティクルである状態パーティクルの重みと、前記状態パーティクルの遷移先とを算出する処理を、前記パーティクルフィルタを用いたEMアルゴリズムのEステップとして行う
[10]に記載の情報処理装置。
[12]
前記前景状態推定部は、
前記前景の状態が、前記状態パーティクルが表す状態である場合に、画像の観測値を生成する生成モデルにおいて観測される観測値の観測尤度に対応する値を、前記状態パーティクルの重みとして算出するとともに、
前記状態パーティクルが、前記状態パーティクルが表す前記前景の状態のうちの前記位置変化の速度、及び、前記姿勢変化の速度に従い、かつ、確率的に揺らぎながら遷移することとして、前記状態パーティクルの遷移先を算出し、
前記生成モデルでは、
前記前景見えモデルが表す画像上の点については、前記前景テクスチャモデルが表すテクスチャと、前記背景テクスチャモデルが表すテクスチャとを、前記前景形状モデルをα値としてαブレンディングし、
前記前景見えモデルが表す画像上の点以外の点については、前記背景テクスチャモデルが表すテクスチャを採用する
ことにより、前記生成モデルにおいて観測される前記画像の観測値が生成される
[11]に記載の情報処理装置。
[13]
前記見えモデル更新部は、
前記状態パーティクルが表す状態に従って、前記実画像から画像を切り出し、前記実画像から切り出した画像である切り出し画像を、前記状態パーティクルの重みに従って重み付け加算することにより、前記前景テクスチャモデルを更新する処理、
前記状態パーティクルが表す状態に従って、前記実画像から、前記状態に対応する前景を除去し、前記前景を除去した実画像を、前記状態パーティクルの重みに従って重み付け加算することにより、前記背景テクスチャモデルを更新する処理、
及び、前記前景テクスチャモデルが表すテクスチャの各画素が前景であることの尤度、及び、背景であることの尤度を求め、前記前景であることの尤度、及び、背景であることの尤度を用いて、前記前景テクスチャモデルが表すテクスチャの各画素が前景である確率を求めることにより、前記前景形状モデルを更新する処理
を、前記パーティクルフィルタを用いたEMアルゴリズムのMステップとして行う
[11]又は[12]に記載の情報処理装置。
[14]
前記見えモデル更新部は、
前記切り出し画像を、前記状態パーティクルの重みに従って重み付け加算した重み付け加算値を、所定時間分だけ平均化することにより、前記前景テクスチャモデルを更新するとともに、
前記前景を除去した実画像を、前記状態パーティクルの重みに従って重み付け加算した重み付け加算値を、所定時間分だけ平均化することにより、前記背景テクスチャモデルを更新する
[13]に記載の情報処理装置。
[15]
第1の物体と第2の物体とが映る、実際に観測される画像である実画像を用いて、前記第1の物体を基準とする物体基準座標系の各位置において、前記第2の物体の状態が変化したときの、前記第2の物体の位置及び状態変化と、前記第2の物体の状態変化によって生じる前記第1の物体の状態変化とを対応付ける、前記第2の物体による前記第1の物体の操作に関する操作モデルの学習を行うステップを含む
情報処理方法。
[16]
第1の物体と第2の物体とが映る、実際に観測される画像である実画像を用いて、前記第1の物体を基準とする物体基準座標系の各位置において、前記第2の物体の状態が変化したときの、前記第2の物体の位置及び状態変化と、前記第2の物体の状態変化によって生じる前記第1の物体の状態変化とを対応付ける、前記第2の物体による前記第1の物体の操作に関する操作モデルの学習を行う操作モデル学習部
として、コンピュータを機能させるためのプログラム。
11 アクチュエータ制御部, 12 カメラ, 13 見えモデル学習部, 14 見えモデル記憶部, 15 操作モデル学習部, 16 操作モデル記憶部, 17 目標状態生成部, 18 変化量算出部, 19 世界座標変換部, 20 変化量時分割部, 21 アクション決定部, 22 物体基準座標変換部, 31 前景状態推定部, 32 見えモデル更新部, 41 見えモデル尤度計算部, 42 状態パーティクル更新部, 43 状態パーティクル記憶部, 44 推定観測値生成部, 51 前景状態推定部, 52,53 物体基準画像生成部, 54,55 前景認識部, 56 操作モデル更新部, 101 バス, 102 CPU, 103 ROM, 104 RAM, 105 ハードディスク, 106 出力部, 107 入力部, 108 通信部, 109 ドライブ, 110 入出力インタフェース, 111 リムーバブル記録媒体
Claims (16)
- 第1の物体と第2の物体とが映る、実際に観測される画像である実画像を用いて、前記第1の物体を基準とする物体基準座標系の各位置において、前記第2の物体の状態が変化したときの、前記第2の物体の位置及び状態変化と、前記第2の物体の状態変化によって生じる前記第1の物体の状態変化とを対応付ける、前記第2の物体による前記第1の物体の操作に関する操作モデルの学習を行う操作モデル学習部を備える
情報処理装置。 - 前記操作モデルは、前記物体基準座標系の各位置について、その位置から、前記第2の物体の各状態変化が生じたときに、前記第1の物体の各状態変化が生じる頻度を表す頻度テーブルを含む
請求項1に記載の情報処理装置。 - 前記操作モデル学習部は、
前記物体基準座標系の所定の位置において、前記第2の物体に、所定の状態変化が生じることによって、前記第1の物体に、他の所定の状態変化が生じた場合に、前記頻度テーブルの、前記所定の位置において生じた前記第2の物体の前記所定の状態変化によって、前記第1の物体に前記他の所定の状態変化が生じる頻度をインクリメントすることにより、前記操作モデルを更新する操作モデル更新部
を有する
請求項2に記載の情報処理装置。 - 前記操作モデル学習部は、
現在時刻の実画像から、前記現在時刻の実画像に映る前記第1の物体を基準とする前記物体基準座標系である現在時刻の物体基準座標系を基準とする所定の範囲を切り出し、前記現在時刻の物体基準座標系の傾きが0になるように回転することにより得られる画像である現在時刻物体基準画像を生成する第1の物体基準画像生成部と、
前記現在時刻物体基準画像から、前記第2の物体を認識することにより、その第2の物体の位置と状態変化を、前記物体基準座標系での前記第2の物体の位置と状態変化として求める第1の認識部と、
前記現在時刻の実画像から、前記現在時刻の直前の時刻である前時刻の実画像に映る前記第1の物体を基準とする前記物体基準座標系である前時刻の物体基準座標系を基準とする所定の範囲を切り出し、前記前時刻の物体基準座標系の傾きが0になるように回転することにより得られる画像である前時刻物体基準画像を生成する第2の物体基準画像生成部と、
前記前時刻物体基準画像から、前記第1の物体を認識することにより、その第1の物体の状態を、前記物体基準座標系での前記第1の物体の状態変化として求める第2の認識部と
をさらに有し、
前記操作モデル更新部は、前記第1の認識部で求められる前記物体基準座標系での前記第2の物体の位置と状態変化、及び、前記第2の認識部で求められる前記物体基準座標系での前記第1の物体の状態変化に基づいて、前記操作モデルを更新する
請求項3に記載の情報処理装置。 - 前記操作モデルを用いて、前記第1の物体の状態を所定の目標状態にするように、前記第1の物体を操作するための前記第2の物体のアクションを決定するアクション決定部をさらに備える
請求項3に記載の情報処理装置。 - 前記アクション決定部は、前記操作モデルを用いて、前記第1の物体の状態が前記所定の目標状態になるために現在時刻に必要な前記第1の物体の状態の変化量である単位変化量だけの状態変化を前記第1の物体に生じさせる頻度が最も高い前記物体基準座標系上の前記第2の物体の位置と状態変化とを、前記第2の物体のアクションに決定する
請求項5に記載の情報処理装置。 - 前記実画像を用いて、前記実画像の、前記第1の物体と前記第2の物体とのそれぞれに対応する前景の見えのモデルである前景見えモデル、及び、背景の見えのモデルである背景見えモデルの学習を行う見えモデル学習部をさらに備える
請求項3に記載の情報処理装置。 - 前記見えモデル学習部は、
前記実画像を用いて、前記前景の状態を推定する前景状態推定部と、
前記前景の状態の推定結果を用いて、前記前景見えモデル、及び、前記背景見えモデルを更新する見えモデル更新部と
を有する
請求項7に記載の情報処理装置。 - 前記背景見えモデルは、前記背景のテクスチャを表す背景テクスチャモデルを含み、
前記前景見えモデルは、前記前景のテクスチャを表す前景テクスチャモデルと、前記前景の形状を表す前景形状モデルとを含み、
前記前景の状態は、前記前景の位置、及び、前記位置が変化する速度、並びに、前記前景の姿勢、及び、前記姿勢が変化する速度を含む
請求項8に記載の情報処理装置。 - 前記背景見えモデル、及び、前記前景見えモデルは、パーティクルフィルタを用いたEMアルゴリズムに従って更新される
請求項9に記載の情報処理装置。 - 前記前景状態推定部は、前記前景の状態を表すパーティクルである状態パーティクルの重みと、前記状態パーティクルの遷移先とを算出する処理を、前記パーティクルフィルタを用いたEMアルゴリズムのEステップとして行う
請求項10に記載の情報処理装置。 - 前記前景状態推定部は、
前記前景の状態が、前記状態パーティクルが表す状態である場合に、画像の観測値を生成する生成モデルにおいて観測される観測値の観測尤度に対応する値を、前記状態パーティクルの重みとして算出するとともに、
前記状態パーティクルが、前記状態パーティクルが表す前記前景の状態のうちの前記位置変化の速度、及び、前記姿勢変化の速度に従い、かつ、確率的に揺らぎながら遷移することとして、前記状態パーティクルの遷移先を算出し、
前記生成モデルでは、
前記前景見えモデルが表す画像上の点については、前記前景テクスチャモデルが表すテクスチャと、前記背景テクスチャモデルが表すテクスチャとを、前記前景形状モデルをα値としてαブレンディングし、
前記前景見えモデルが表す画像上の点以外の点については、前記背景テクスチャモデルが表すテクスチャを採用する
ことにより、前記生成モデルにおいて観測される前記画像の観測値が生成される
請求項11に記載の情報処理装置。 - 前記見えモデル更新部は、
前記状態パーティクルが表す状態に従って、前記実画像から画像を切り出し、前記実画像から切り出した画像である切り出し画像を、前記状態パーティクルの重みに従って重み付け加算することにより、前記前景テクスチャモデルを更新する処理、
前記状態パーティクルが表す状態に従って、前記実画像から、前記状態に対応する前景を除去し、前記前景を除去した実画像を、前記状態パーティクルの重みに従って重み付け加算することにより、前記背景テクスチャモデルを更新する処理、
及び、前記前景テクスチャモデルが表すテクスチャの各画素が前景であることの尤度、及び、背景であることの尤度を求め、前記前景であることの尤度、及び、背景であることの尤度を用いて、前記前景テクスチャモデルが表すテクスチャの各画素が前景である確率を求めることにより、前記前景形状モデルを更新する処理
を、前記パーティクルフィルタを用いたEMアルゴリズムのMステップとして行う
請求項11に記載の情報処理装置。 - 前記見えモデル更新部は、
前記切り出し画像を、前記状態パーティクルの重みに従って重み付け加算した重み付け加算値を、所定時間分だけ平均化することにより、前記前景テクスチャモデルを更新するとともに、
前記前景を除去した実画像を、前記状態パーティクルの重みに従って重み付け加算した重み付け加算値を、所定時間分だけ平均化することにより、前記背景テクスチャモデルを更新する
請求項13に記載の情報処理装置。 - 第1の物体と第2の物体とが映る、実際に観測される画像である実画像を用いて、前記第1の物体を基準とする物体基準座標系の各位置において、前記第2の物体の状態が変化したときの、前記第2の物体の位置及び状態変化と、前記第2の物体の状態変化によって生じる前記第1の物体の状態変化とを対応付ける、前記第2の物体による前記第1の物体の操作に関する操作モデルの学習を行うステップを含む
情報処理方法。 - 第1の物体と第2の物体とが映る、実際に観測される画像である実画像を用いて、前記第1の物体を基準とする物体基準座標系の各位置において、前記第2の物体の状態が変化したときの、前記第2の物体の位置及び状態変化と、前記第2の物体の状態変化によって生じる前記第1の物体の状態変化とを対応付ける、前記第2の物体による前記第1の物体の操作に関する操作モデルの学習を行う操作モデル学習部
として、コンピュータを機能させるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012230513A JP2014081863A (ja) | 2012-10-18 | 2012-10-18 | 情報処理装置、情報処理方法、及び、プログラム |
US14/047,285 US9361590B2 (en) | 2012-10-18 | 2013-10-07 | Information processing apparatus, information processing method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012230513A JP2014081863A (ja) | 2012-10-18 | 2012-10-18 | 情報処理装置、情報処理方法、及び、プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014081863A true JP2014081863A (ja) | 2014-05-08 |
Family
ID=50486258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012230513A Pending JP2014081863A (ja) | 2012-10-18 | 2012-10-18 | 情報処理装置、情報処理方法、及び、プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US9361590B2 (ja) |
JP (1) | JP2014081863A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105005381A (zh) * | 2015-07-08 | 2015-10-28 | 西安电子科技大学 | 一种虚拟机械臂交互的抖动消除方法 |
WO2015178148A1 (ja) * | 2014-05-22 | 2015-11-26 | 株式会社メガチップス | 状態推定装置、プログラムおよび集積回路 |
JP2017030135A (ja) * | 2015-07-31 | 2017-02-09 | ファナック株式会社 | ワークの取り出し動作を学習する機械学習装置、ロボットシステムおよび機械学習方法 |
US10717196B2 (en) | 2015-07-31 | 2020-07-21 | Fanuc Corporation | Machine learning device, robot system, and machine learning method for learning workpiece picking operation |
US10807235B2 (en) | 2015-07-31 | 2020-10-20 | Fanuc Corporation | Machine learning device, robot controller, robot system, and machine learning method for learning action pattern of human |
KR20210121878A (ko) * | 2020-03-31 | 2021-10-08 | 한국과학기술원 | Visuomotor 시스템을 이용한 모델 예측 제어에 기반한 풀바디 모델링 방법 및 장치 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012212323A (ja) * | 2011-03-31 | 2012-11-01 | Sony Corp | 情報処理装置、情報処理方法、及び、プログラム |
JP2013191163A (ja) * | 2012-03-15 | 2013-09-26 | Sony Corp | 情報処理装置、情報処理方法、及び、プログラム |
US20160048721A1 (en) * | 2014-08-12 | 2016-02-18 | Joseph Cole Harper | System and method for accurately analyzing sensed data |
US11087228B2 (en) * | 2015-08-12 | 2021-08-10 | Bae Systems Information And Electronic Systems Integration Inc. | Generic probabilistic approximate computational inference model for streaming data processing |
NL2017923B1 (en) * | 2016-12-05 | 2018-06-18 | Qimarox Patenten B V | Device and method configured to control rotation of an object on a carrier |
JP7008136B2 (ja) * | 2018-06-14 | 2022-01-25 | ヤマハ発動機株式会社 | 機械学習装置及びこれを備えたロボットシステム |
US20200156241A1 (en) * | 2018-11-21 | 2020-05-21 | Ford Global Technologies, Llc | Automation safety and performance robustness through uncertainty driven learning and control |
US11138812B1 (en) * | 2020-03-26 | 2021-10-05 | Arm Limited | Image processing for updating a model of an environment |
CN113792664B (zh) * | 2021-09-16 | 2023-06-23 | 四川写正智能科技有限公司 | 正确读写坐标指数标定方法及*** |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4147930A (en) * | 1975-03-20 | 1979-04-03 | U.S. Philips Corporation | Object location detector |
US7486815B2 (en) * | 2004-02-20 | 2009-02-03 | Microsoft Corporation | Method and apparatus for scene learning and three-dimensional tracking using stereo video cameras |
US8154600B2 (en) * | 2007-04-20 | 2012-04-10 | Utc Fire & Security Americas Corporation, Inc. | Method and system for distributed multiple target tracking |
TWI348659B (en) * | 2007-10-29 | 2011-09-11 | Ind Tech Res Inst | Method and system for object detection and tracking |
US8645304B2 (en) * | 2011-08-19 | 2014-02-04 | International Business Machines Corporation | Change point detection in causal modeling |
-
2012
- 2012-10-18 JP JP2012230513A patent/JP2014081863A/ja active Pending
-
2013
- 2013-10-07 US US14/047,285 patent/US9361590B2/en not_active Expired - Fee Related
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015178148A1 (ja) * | 2014-05-22 | 2015-11-26 | 株式会社メガチップス | 状態推定装置、プログラムおよび集積回路 |
US9805285B2 (en) | 2014-05-22 | 2017-10-31 | Megachips Corporation | State estimation apparatus, state estimation method, and integrated circuit |
CN105005381A (zh) * | 2015-07-08 | 2015-10-28 | 西安电子科技大学 | 一种虚拟机械臂交互的抖动消除方法 |
JP2017030135A (ja) * | 2015-07-31 | 2017-02-09 | ファナック株式会社 | ワークの取り出し動作を学習する機械学習装置、ロボットシステムおよび機械学習方法 |
US10717196B2 (en) | 2015-07-31 | 2020-07-21 | Fanuc Corporation | Machine learning device, robot system, and machine learning method for learning workpiece picking operation |
US10807235B2 (en) | 2015-07-31 | 2020-10-20 | Fanuc Corporation | Machine learning device, robot controller, robot system, and machine learning method for learning action pattern of human |
US11780095B2 (en) | 2015-07-31 | 2023-10-10 | Fanuc Corporation | Machine learning device, robot system, and machine learning method for learning object picking operation |
US11904469B2 (en) | 2015-07-31 | 2024-02-20 | Fanuc Corporation | Machine learning device, robot controller, robot system, and machine learning method for learning action pattern of human |
KR20210121878A (ko) * | 2020-03-31 | 2021-10-08 | 한국과학기술원 | Visuomotor 시스템을 이용한 모델 예측 제어에 기반한 풀바디 모델링 방법 및 장치 |
KR102332113B1 (ko) | 2020-03-31 | 2021-11-30 | 한국과학기술원 | Visuomotor 시스템을 이용한 모델 예측 제어에 기반한 풀바디 모델링 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
US20140114888A1 (en) | 2014-04-24 |
US9361590B2 (en) | 2016-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2014081863A (ja) | 情報処理装置、情報処理方法、及び、プログラム | |
US9111172B2 (en) | Information processing device, information processing method, and program | |
EP3583380B1 (en) | Shape estimating apparatus | |
KR20190040506A (ko) | 로봇 조작을 위한 심층 강화 학습 | |
US20180032868A1 (en) | Early prediction of an intention of a user's actions | |
JP2012212322A5 (ja) | ||
US11861777B2 (en) | Using a determined optimum pose sequence to generate a corresponding sequence of frames of animation of an animation character | |
JP7490142B2 (ja) | 姿勢の脱曖昧化 | |
US20180182166A1 (en) | Tracking rigged polygon-mesh models of articulated objects | |
JP2018536550A (ja) | 3次元空間におけるオブジェクト位置および範囲のためのアクティブカメラ移動決定 | |
Larsen et al. | Unscented kalman filtering for articulated human tracking | |
Heiden et al. | Inferring articulated rigid body dynamics from rgbd video | |
JP2016162425A (ja) | 骨格姿勢推定装置、方法、及びプログラム | |
JP2012212323A (ja) | 情報処理装置、情報処理方法、及び、プログラム | |
Feng et al. | Social force model aided robust particle PHD filter for multiple human tracking | |
Mörwald et al. | Predicting the unobservable visual 3d tracking with a probabilistic motion model | |
Bateux et al. | Particle filter-based direct visual servoing | |
JP4673241B2 (ja) | 動体追跡装置、動体追跡方法及びその方法を実現したプログラムを格納した記録媒体 | |
WO2021075465A1 (ja) | 解析対象の3次元再構成装置、3次元再構成方法及び3次元再構成プログラム | |
Cong et al. | Efficient Human Motion Reconstruction from Monocular Videos with Physical Consistency Loss | |
Chen et al. | Enhanced particles with pseudolikelihoods for three-dimensional tracking | |
WO2022172831A1 (ja) | 情報処理装置 | |
CN117893651A (zh) | 实时数据处理方法及装置 | |
Orsula | “Deep reinforcement learning for robotic grasping from octrees | |
Jia et al. | A decoupled Bayesian method for snake robot control in unstructured environment |