Robot
5.2 提案手法
5.2.1 提案手法の概要
図 5.2に提案手法の全体像を示す.本章では,ロボットは家庭でユーザと共に 暮らしていることを想定し,人の音声命令を聞きながらその人の動作と,動作を 行っている際に関係している物体及び位置を観測する.そして,ユーザの行動パ ターンを教師なしで学習するのであるが,その際にまず使っている物体を認識し トラッキングすることで,動作の分節化を行う.これは,同じ物体を使っている間 が一つの行動としての塊であると仮定し,時系列パターンを区切ることを意味す る.そのように区切った動作時系列(関節角の情報)と物体の関係性は,mMLDA
図 5.2: 提案手法の全体像
によってモデル化(カテゴリ分類も含む)することができる.つまり現在の行動を 認識し,その後に起こる行動を予測できれば,mMLDAによって確率的にユーザ が使うであろう物体を予測し,それを持ってくるというサービスを実現可能であ る.これを「動作−物体関係モデル」と呼ぶ.現在の動作の認識は,分節化された 動作の時系列をHDP-HMMを用いてモデル化することで実現する.これを「動作 認識モデル」と呼ぶ.また行動の予測については,学習データから行動のn-gram である,「行動言語モデル」を計算することで実現する.こうした動作認識モデル や行動言語モデルは,動作を分節化し,mMLDAを用いたカテゴリ分類に基づく 記号化によって実現されることに注意されたい.
5.2.2 ロボットによる能動的センシング
ここでは前述した1)ユーザの観測の問題に対する解決策として,ロボットによ る能動的センシングについて議論する.ロボットがユーザをよりよく観測し続け
図 5.3: KINECTより取得された骨格情報のスコアマップ
るためには,追跡するだけではなく,関節角のセンシングに有利な位置に移動す ることが重要である.本章では,頭部にKINECTと台車にLRFが搭載されたロ ボットを用いることを前提に,ユーザの姿勢推定に有利な位置を考慮しながら移 動することを考える.
本章では,ユーザの姿勢推定にはKINECTを用い,ロボットの自己位置推定に はLRFを用いる.KINECTは,ゲームコントローラとして開発されたものである ため,カメラから2m程度離れ正面に向かって動作を行うことが想定されている.
しかし普段我々は,必ずしもロボットの前で行動するとは限らない.そこで,実
際KINECTでユーザの姿勢推定が可能な相対位置関係を検証し,ロボットがその
制約をなるべく満たすようにユーザの追跡を行うこととする.実際,人の姿勢が 取得可能な領域を調べるための予備実験を行った.
本実験において,KINECTをある位置x0 = (x0, y0,Ω0)に固定し,KINECTか ら領域D(x, y)(x0−ℓ2x ≤x≤x0+ℓ2x, y0 ≤y≤ℓy)をグリッド化した.各グリッド R(xgx, ygy)(gx ∈ [1, Gx], gy ∈ [1, Gy])に対して,3種類の動作をそれぞれ行った.
ただし,各動作において,KINECTに対する角度Ωt(t ∈ [1, T])をT 種類設定し た.本章では,ℓx,ℓy,Gx,Gy,T の値をそれぞれ,2.5m,3.0m,5,6,5に設
定した.そして,以下の式より各グリッドRgのスコアS(Rg)を求める.
S(R(xgx, ygy)) =
∑Fgxy
f=1
∑Nψ˙
n=1δ( ˙ψf n)
Fgxy , (5.1)
ただし,Fgxy,Nψ˙はそれぞれグリッドR(xgx, ygy)における動作のデータ数と角速 度ψ˙の次元数を表す.また,ψf nはψ˙のf 番目のn次元目の要素であり,以下の ように求める.
δ( ˙ψf n) =
{ 1 (ψf n ≥閾値)
0 (ψf n <閾値) (5.2)
式(5.1)を用いて姿勢推定可能な領域のマップを計算した結果を,図5.3に示す.
図中のグリッドマップは3.0m×2.5mの部屋で計算しグリッドサイズを0.5mとし た.人がある姿勢(図中の紫棒であり,KINECTに対する角度は白い数字で表す)
において,KINECT(図中の赤楕円)の前に立って動作を行うとき,骨格情報が どれだけ正確に取得できるかというスコアマップを図5.3(a)〜(e)に示す.各 グリッドにおいて,スコアが高いほど白く描画されている.
図5.3より,青い矩形に囲まれたグリッド内で動作を行うとき,姿勢推定の精度 が上がることが分かった.また,当然ながら人がKINECTに対して,正面にある ときのスコアが高かった.本章ではこれらの事実をもとに,人が領域内にあるよ うにロボットが人の位置を計算し,人に対して正面にあるように移動することで,
人を観測し続ける.
5.2.3 問題設定
本章で実現したいサービスは,予測した行動に必要となる物体をユーザに先回 りして届けることである.その際,ユーザがどこで動作を行うかという場所文脈や 命令された音声文脈などを考慮すればより正確なサービスが行えるであろう.この 問題設定は,全ての情報が与えられた際,持ってくるべき物体を推定する問題に置 き換えることができる.すなわち,現在の時刻t−1にロボットが観測したユーザ
の動きm(t−1),物体o(t−1),位置x,音声Sに対して以下の問題を解くことになる.
ˆ
o(t) = argmax
o(t)
P(o(t)m(t−1), o(t−1), x, S) (5.3) 上式を直接的に計算するのは困難であるため,次のように近似する.
ˆ
o(t) = argmax
o(t)
P(o(t)m(t−1), o(t−1))ω1P(o(t)x)ω2P(o(t)S)ω3 (5.4) ただし,P(o(t)m(t−1), o(t−1)),P(o(t)x),P(o(t)S)はそれぞれ,行動文脈,場所 文脈及び音声命令を表しており,ω1,ω2,ω3は各文脈に対する重みである.
各文脈の重みの決め方は様々な手法が存在する.例えば,重みのアクティブな学 習 [71]を考えることもできるが,ここではSVMによる学習を用いる.具体的には,
次節で説明する各文脈C ∈ {C1 =行動,C2 =場所,C3 =音声}より予測される物 体の確率分布PC = (pC1, pC2,· · · , pCO)を一つのヒストグラムhC = (PC1,PC2,PC3) として,SVMの入力データとする.ただし,O は物体カテゴリ数を表す.学習 フェーズにおいて,入力データhC と正解となる物体カテゴリoC の組を用意し,
SVM [48]を用いて学習する.認識フェーズでは,与えられた入力データhCinに対
して,SVMで学習したモデルを用いて認識する.