説明

ロボット、位置推定方法及びプログラム

【課題】ロボット、位置推定方法及びプログラムにおいて、比較的簡単、且つ、正確に観測対象であるユーザの位置を推定することを目的とする。
【解決手段】回転可能なカメラの撮像画像から観測対象の人物の領域を検出し、検出された人物の領域に対して、カメラの回転角度を含む観測状況に基づいて複数の推定粒度の情報を有するパーティクルの推定粒度を変更し、各推定粒度を用いて観測対象の位置を推定するように構成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、回転可能なカメラを用いて人物の位置を推定するロボット、位置推定方法及びプログラムに関する。
【背景技術】
【0002】
人型又はペット型のコミュニケーションロボット(以下、単にロボットと言う)では、ユーザに親近感を与えるためにユーザとのアイコンタクトを取ることが望ましい。ロボットがユーザとアイコンタクトを取るためには、ロボットがユーザと目を合わせるようにロボットの首を動かす機能を設ける必要である。この機能は、例えばロボットの目や鼻の位置に設置したカメラでユーザの顔を撮像し、ユーザの顔が撮像画像の中央に位置するように首を制御する方法等で実現できる。
【0003】
しかし、ロボットがユーザとコミュニケーションを取っている最中にロボットがある仕草をしたり、ユーザ以外の物に視線を移したり、他のタスクに首やカメラを利用したい場合がある。このような場合にも、ロボットがユーザと自然なコミュニケーションを取るためには、ロボットが適切なタイミングでユーザとアイコンタクトを取ることが望ましいが、ロボットが実行しているタスクによってはユーザがロボットの視界から外れてしまう場合もある。このような場合でもロボットがユーザとスムーズにアイコンタクトを取るためには、ユーザが視界から外れた場合や、ユーザの一部しか視界に入っていない場合等にも、ユーザを観察することでユーザの位置を推定する必要がある。
【0004】
従来、ロボットに設けたアレイマイクによる音源検知によりユーザの位置を推定し、推定した位置に応じてロボットの首を動かしてユーザとアイコンタクトを取る方法が提案されている。しかし、この方法では、ロボットは、ユーザが発声しないと、ユーザの位置を推定できないのでアイコンタクトを取ることもできない。又、ロボットが使用される環境によっては、音の反射等のノイズによりユーザの位置を正確に推定することは難しい。
【0005】
一方、人物のシルエット画像と、シルエット画像をシミュレートしたシミュレーション画像の一致度を尤度としたパーティクルフィルタを、観測対象であるユーザに対して構成する方法が提案されている(例えば、特許文献1)。しかし、ロボットの目や鼻の位置に設置したカメラで撮像した撮像画像に基づいてユーザの位置を推定する方法では、ロボットの首の姿勢(即ち、カメラの姿勢)によって視野が変化するので背景も変化する。このため、首の特定の姿勢でカメラが撮像して用意された背景画像と、首の異なる姿勢でカメラが撮像した観測画像との比較演算により背景差分を求めて観測画像中のユーザを追跡するのでは、背景が変化すると背景差分からユーザの位置を正確に推定することは難しい。又、ロボットの首の姿勢にかかわらずユーザの位置を推定可能にする背景差分を求めるには、予め膨大な量の背景画像を用意しておく必要があると共に、背景差分を求めるのに膨大な量の比較演算を行う必要があり、比較演算を実行するプロセッサへの負荷も大きくなる。
【0006】
カメラが撮像した観測画像の中からユーザの顔を認識することでユーザの位置を推定する方法もあるが、顔の認識には複雑な演算が必要であり、演算を実行するプロセッサへの負荷も大きい。又、ユーザの顔は、ある角度範囲でカメラの方を向いていないと例えば目、鼻や口といった顔の顕著な特徴がカメラの撮像画像に含まれないため顔と認識されず、顔の認識結果に基づいてユーザの位置を正確に推定することは難しい。
【0007】
例えば、色ヒストグラムを用いて対象物を追跡又は検出する技術も提案されている(例えば、特許文献2、特許文献3及び特許文献4)。
【0008】
回転可能なカメラの場合、カメラの首角度(又は、姿勢)によっては位置推定対象の人物がロボット(即ち、カメラ)の視野から外れてしまう。人物がロボットの視野から外れた場合、人物の位置推定精度が低下し、ロボットが人物を追従できなくなる状況も起こり得る。特にコミュニケーションロボットの場合、カメラの首の動きは頷き等の自然動作を行うのためにも使用され、必ずしも首の動きが人物の追従のために使用されるわけではない。又、ロボットが複数の人物と相対する場合、一人の人物にロボットの視線を向けると他の人物はロボットの視界から外れてしまう状況が比較的頻繁に起こり得る。人物がロボットの視界から外れる等して、人物の観測値が比較的少ないにも関わらず比較的高精度で位置推定を行おうとすると、的外れな位置に人物がいると誤った位置推定を行い、ロボットが的外れな方向を見てしまう等といった不適切な動作を行う可能性がある。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2010−41526号公報
【特許文献2】特開2008−269714号公報
【特許文献3】特開2006−221610号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
従来の位置推定方法では、比較的簡単、且つ、正確に観測対象である人物(例えば、ユーザ)の位置を推定することは難しいという問題があった。
【0011】
そこで、本発明は、比較的簡単、且つ、正確に観測対象である人物の位置を推定することができるロボット、位置推定方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明の一観点によれば、少なくとも1軸を中心に回転可能なカメラと、前記カメラからの撮像画像から観測対象の人物の領域を検出する人物領域検出部と、前記カメラの前記少なくとも1軸を中心とした回転角度を含む観測状況を取得する観測状況取得部と、前記人物領域検出部で検出された人物の領域に対して、前記観測状況に基づいて複数の推定粒度の情報を有するパーティクルの推定粒度を変更し、各推定粒度を用いて前記観測対象の位置を推定する推定処理部を備えたロボットが提供される。
【0013】
本発明の一観点によれば、少なくとも1軸を中心に回転可能なカメラの撮像画像から観測対象の人物の領域を人物領域検出部により検出する検出工程と、前記カメラの前記少なくとも1軸を中心とした回転角度を含む観測状況を観測状況取得部により取得する取得工程と、検出された前記人物の領域に対して、推定処理部により、取得された前記観測状況に基づいて複数の推定粒度の情報を有するパーティクルの推定粒度を変更し、各推定粒度を用いて前記観測対象の位置を推定する推定処理工程を含む位置推定方法が提供される。
【0014】
本発明の一観点によれば、コンピュータに観測対象の位置を推定させる位置推定処理を実行させるプログラムであって、少なくとも1軸を中心に回転可能なカメラの撮像画像から観測対象の人物の領域を検出する人物領域検出手順と、前記カメラの前記少なくとも1軸を中心とした回転角度を含む観測状況を取得する観測状況取得手順と、検出された前記人物の領域に対して、取得された前記観測状況に基づいて複数の推定粒度の情報を有するパーティクルの推定粒度を変更し、各推定粒度を用いて前記観測対象の位置を推定する推定処理手順を前記コンピュータに実行させるプログラムが提供される。
【発明の効果】
【0015】
開示のロボット、位置推定方法及びプログラムによれば、比較的簡単、且つ、正確に観測対象である人物の位置を推定することができる。
【図面の簡単な説明】
【0016】
【図1】本発明の第1実施例におけるロボットの一例を示すブロック図である。
【図2】粒度変更処理を説明する図である。
【図3】パーティクルを構成するパラメータを説明する図である。
【図4】人の概略位置を示すパラメータの一例を説明する図である。
【図5】粒度変更処理の一例を説明するフローチャートである。
【図6】パーティクルの状態遷移処理を説明するフローチャートである。
【図7】本発明の第2実施例におけるロボットの一例を示すブロック図である。
【図8】本発明の第3実施例におけるロボットの一例を示すブロック図である。
【図9】コンピュータシステムの一例を示すブロック図である。
【発明を実施するための形態】
【0017】
開示のロボット、位置推定方法及びプログラムでは、回転可能なカメラの撮像画像から観測対象の人物の領域を検出し、検出された人物の領域に対して、カメラの回転角度を含む観測状況に基づいて複数の推定粒度の情報を有するパーティクルの推定粒度を変更し、各推定粒度を用いて観測対象の位置を推定する。
【0018】
以下に、開示のロボット、位置推定方法及びプログラムの各実施例を図面と共に説明する。
【実施例】
【0019】
(第1実施例)
本発明の第1実施例におけるコミュニケーションロボットでは、観測された状況(以下、観測状況とも言う)に基づいてパーティクル(即ち、人物の予測値)の推定粒度を変更し、各推定粒度を用いて位置推定を行う。例えば、各推定粒度毎にサンプリング部及び尤度計算部を設けることで、決定した推定粒度に従ったサンプリング及び尤度計算を行うことができる。
【0020】
図1は、本発明の第1実施例におけるロボットの一例を示すブロック図である。本実施例では、本発明が人型コミュニケーションロボットに適用されている。
【0021】
コミュニケーションロボット201は、図1に示す如く接続されたロボット本体11、顔領域検出部12、推定処理部40、観測方針決定部18、及びロボット201の首の回転を制御する首制御部19を有する。尚、ロボット本体11は、ロボット201を歩行可能、或いは、走行可能とする周知の移動機構(図示せず)を有しても良いことは言うまでもない。
【0022】
ロボット本体11は、例えばパン(Pan)、チルト(Tilt)、及びロール(Roll)可能なカメラ21、首角度(又は、姿勢)取得部22及び首回転駆動部23を有する。カメラ21は、所謂首振り可能な周知の構造を有し、例えばロボット本体11の目や鼻の位置に設けられており、ロボット201から見える画像を撮像する。カメラ21のパン軸を中心としたパン、チルト軸を中心としたチルト、ロール軸を中心としたロール(以下、単にパン、チルト、及びロールとも言う)は首回転駆動部23により周知の方法で制御される。又、首角度取得部22は、カメラ21の首角度、即ち、カメラ21の姿勢を周知の方法で取得する。カメラ21の首角度は、パン(Pan)角、チルト(Tilt)角、及びロール(Roll)角を含む。
【0023】
推定処理部40は、推定粒度決定部41、推定値変換部42、推定粒度毎のサンプリング部43−1〜43−N(Nは2以上の自然数)、推定粒度毎の観測尤度計算部44−1〜44−N、リサンプリング部45、及び位置推定部46を有する。
【0024】
人物領域検出部の一例である顔領域検出部12は、カメラ21からの撮像画像から、ロボット201がコミュニケーションを取るべきユーザ(即ち、観測対象)の顔領域(即ち、観測対象領域)を周知の方法で検出する。例えばデジタルカメラ等の分野では、撮像画像から顔領域を検出、或いは、抽出する各種方法が知られている。顔領域検出部12は、ユーザの顔らしき領域(即ち、顔領域)を検出するものであり、ユーザの顔を認識する個人認証を行う必要はない。顔領域検出部12の出力には、検出した顔の座標及び大きさ(サイズ)の情報が含まれ、推定粒度決定部41に供給される。推定粒度決定部41には、首角度取得部22が取得して出力するカメラ21の首角度(即ち、カメラ21の姿勢)の情報も供給される。首角度取得部22が出力する首角度は、後述する推定粒度毎の観測尤度計算部44−1〜44−Nの各々にも供給される。推定粒度決定部41は、顔領域検出部12で検出された顔領域に対して、首角度から求めた観測状況に基づいてパーティクルの推定粒度を決定する。推定値変換部42は、ある推定粒度の推定値を、推定粒度決定部41で決定された推定粒度の推定値に変換する。
【0025】
推定粒度毎のサンプリング部43−1〜43−Nは、推定値変換部42で変換された推定値に基づいて、パーティクルを推定粒度毎にサンプリングしてパーティクルを夫々の推定粒度で状態遷移させる。推定粒度毎の観測尤度計算部44−1〜44−Nは、推定粒度毎のサンプリング部43−1〜43−Nでサンプリングされた各パーティクルが夫々の推定粒度での推定値の妥当性を示す推定粒度毎の尤度(以下、観測尤度とも言う)を計算する。リサンプリング部45は、推定粒度毎の観測尤度計算部44−1〜44−Nで計算された推定粒度毎の観測尤度によりパーティクルをリサンプリングし、リサンプリングの結果は推定粒度決定部41にフィードバックされると共に、位置推定部46に供給される。
【0026】
位置推定部46は、リサンプリング部45からのリサンプリングの結果に基づいて人物の位置、即ち、ユーザの位置を推定する。観測方針決定部18は、推定されたユーザの位置の不確実さ等の評価に基づいて、ユーザの観測方針、即ち、ユーザをどのような規則(又は、ルール)に基づいて観測するかを決定する。例えば、観測方針がユーザの位置を確認する頻度に関するものであれば、推定されたユーザの位置と前回推定されたユーザの位置の間の距離が閾値以内であればユーザの位置の確認頻度を第1の時間毎に設定し、閾値を超える場合には確認頻度を第1の時間より短い第2の時間毎に設定する。首制御部19は、観測方針決定部18で決定された観測方針に基づいて首回転駆動部23を制御することで、ユーザがカメラ21の視界に入るようにカメラ21の姿勢を制御する。
【0027】
顔領域検出部12、観測方針決定部18、及び首制御部19のうち少なくとも一部はロボット201に対して外付けされていても良い。又、推定処理部40の少なくとも一部は、ロボット201に対して外付けされていても良い。この場合、ロボット201に対して外付けされる部分は、ロボット201に設けた適切なインタフェース(図示せず)を介してロボット201と接続される。ロボット201と外付けされる部分とは、例えば無線ネットワーク(図示せず)を介して周知の方法で通信可能とすれば良い。つまり、ロボット201の首回転駆動部23等は、リモートに制御されるものであっても良い。
【0028】
図2は、粒度変更処理を説明する図である。説明の便宜上、推定粒度は粗い場合と細かい場合の2種類であるものとするが、推定粒度の種類は3種類以上であっても良いことは言うまでもない。又、この例では、推定粒度は、細かい粒度の推定値の値によって決定されるものとする。粗い推定のパーティクルの値によっては、推定粒度を細かい推定粒度に変更しなければいけない可能性がある。推定粒度を細かい推定粒度に変更しなければいけない可能性があるパーティクルに関しては、粗い推定粒度の推定値から細かい推定粒度の推定値を乱数生成する等して、粗い推定粒度の推定値を細かい推定粒度の推定値に変換する。各パーティクルは夫々の推定粒度で状態遷移し、各パーティクルの値によって推定粒度を決定して適切な推定粒度の推定値に変換する。この場合、細かい推定粒度の値に基づいて推定が適切であるか否かを判断するので、粗い推定粒度が適切と判断されたパーティクルについては粗い推定粒度の推定値に変換する。その後、各パーティクルの観測尤度を計算し、その尤度の重みによりリサンプリングで生成される各推定粒度のパーティクルの個数を決定する。
【0029】
パーティクルフィルタは、観測対象の状態の連続的な事後確率密度分布を離散化して、パーティクルセット(Particle Set)と呼ばれるサンプル集団の各メンバーの状態に対して、観測結果との整合性を逐次的に評価してリサンプリング(Resampling)を行う。これにより、パーティクルでシミュレーションした事後確率密度分布を、真の確率密度分布に収束させる。
【0030】
図3は、パーティクルを構成するパラメータを説明する図である。図3において、ユーザ30の位置は、図3に示すパラメータd,h,θで表される。パラメータdは、ロボット201のカメラ21(又は、首)のパン軸からユーザ30までの最短距離を示し、この例ではユーザ30の体32の位置までの距離である。パラメータhは、ロボット201のカメラ21の基準位置から顔31の中心までの高さを示す。パラメータθは、カメラ21の定位置の視線FYと上記最短距離dの方向がなす角度を示す。
【0031】
図3の例では、ロボット201は熊のぬいぐるみの形をしたペット型のコミュニケーションロボットである。例えば、カメラ21は熊の目(又は鼻)に設置されており、首回転駆動部23は熊の首の部分に設けられており、首角度取得部22は熊の胴体部分に設けられている。
【0032】
各パーティクルは、図3に示すように、例えばカメラ21の首角度が定位置の際のロール(Roll)中心の方向を基準とした水平角度(視線FYとユーザ30の体32の位置までに最短距離dの方向がなす角度)θ、ロボット201からユーザ30までの最短距離d、首角度が定位置でのカメラ21からユーザ30の顔31の中心までの高さhの3つのパラメータで表されるものとする。
【0033】
このようなパーティクルでシミュレーションを行う構成のパーティクルフィルタを用いて人物の位置を推定する場合、カメラ21の視界内で顔が検出された人物については精度良く位置を推定可能であるが、視界から外れた人物については入力情報がないため誤った位置を推定してしまい、視界外にいる人物の顔を検出しようとしてもロボット201が的外れな方向を見てしまう可能性がある。そこで、本実施例では、入力情報量が少ない場合には推定粒度を落とし、大まかに視界より右にいる等の情報を扱う推定を行うことにより、推定粒度に合わせた人物の位置推定を行う。
【0034】
この例では、パーティクルの表す詳細位置を示すパラメータ(θ,d,h)の他に、現在の概略位置を示すパラメータαを用いる。パラメータαは、例えば図4に示すようなP1〜P4の値を有する。図4は、人物の概略位置を示すパラメータαの一例を説明する図である。図4において、P1は人物が視界内にいることを示す値、P2は人物が視界より右側に存在することを示す値、P3は人物が視界より左側に存在することを示す値、P4は人物がその場には存在しないことを示す値である。ここでは説明の便宜上、概略位置を示すパラメータαをこれらの4つの値(又は、状態)に分けているが、例えば視界より上下、近い、遠い、立ち去り等といった、d方向やh方向にも3段階程度の推定粒度で状態を定義して、概略位置を示すパラメータαを例えば27個の状態で管理する等、様々な状態の分け方が考えられる。しかし、本実施例では、説明の便宜上、状態をθ方向にのみ分割した例を前提として説明する。
【0035】
図4に示す概略位置を示すパラメータαを用いて、人物の位置推定を行う方法の一例を図5と共に説明する。図5は、粒度変更処理の一例を説明するフローチャートである。図5に示す粒度変更処理は、CPU101により実行可能である。
【0036】
図5において、ステップS51は、パーティクルフィルタの初期化を行う。例えば、新しく発見した顔が観測された周辺の値を、各パーティクルのパラメータに適当な確率分布に従って割り当てる。確率分布とは、観測された顔の位置や大きさに基づいて、最尤のパラメータから正規分布に従う確率分布や、一定の領域内の一様分布等を表す。
【0037】
ステップS52は、カメラ21の撮像画像を取得する。ステップS53は、首角度取得部22により、現在のカメラ21のpan,tilt,roll角度を取得する。ロボット201の構成によるが、通常、首回転駆動部23のモータを制御するモジュール等が現在の首角度を管理しているため、pan, tilt, roll角度を取得することができる。そこで、現在のロボット201の視界の範囲(θr,θl)を計算して例えば記憶部102に保持する。尚、記憶部102には、前回ステップS53を実行した際に計算された視界の範囲(θr’,θl’)が保持されている。ここで、θrは視界の右端の角度θ,θlは視界の左端の角度θを表すものとし、角度θがθr<θ<θlの範囲にあると人物が視界内に存在するものと判定する。初回時は、(θr’,θl’)=(θr,θl)とする。ステップS54は、顔領域検出部12を用いて、カメラ21の撮像画像から顔領域を検出する。
【0038】
ステップS55は、各パーティクルの推定粒度を決定する。ステップS56は、ある推定粒度の推定値を決定された推定粒度の推定値に変換する。又、ステップS57は、パーティクルを推定粒度毎にサンプリングし、サンプリングされた各パーティクルを夫々の推定粒度で状態遷移させる。従って、ステップS55,S56,S57の処理は、図1に示す推定粒度決定部41、推定値変換部42、及び推定粒度毎のサンプリング部43−1〜43−Nの処理に相当する。
【0039】
新しい人物の顔発見等をトリガに対象物の追跡を開始し、図5の処理を開始することでステップS55〜S57の処理を実行しても良い。図6は、パーティクルの状態遷移処理を説明するフローチャートである。各パーティクルの状態更新について、図6と共に説明する。
【0040】
図6において、ステップS61は、各パーティクルに関して概略位置を示すパラメータαを評価する。この時点のパラメータαは、前回の位置推定時のパラメータαであり、前回の位置推定時の視界に対する情報である。前回の位置推定時に視界内に存在したパーティクルの信頼度は比較的高いため、前回の位置推定時の視界に対する情報に基づいてパーティクルの状態遷移を行う。具体的には、ステップS62は、α=1であるか否かを判定し、判定結果がYESであると処理は後述するステップS68へ進む。ステップS62の判定結果がNOであると、ステップS63は、α=2又はα=3であるか否かを判定する。ステップSS63の判定結果がYESであると、ステップS64は、パーティクルを一定確率でα=4に状態遷移させる。ステップS64の後、ステップS65は、α=4であるか否かを判定し、判定結果がNOであると処理は後述するステップS67へ進む。ステップS63の判定結果がNO、或いは、ステップS65の判定結果がYESであると、ステップS66は詳細パラメータ(θ,d,h)を記憶部102に保持せず(即ち、使用せず)、処理は終了する。
【0041】
ステップS67は、詳細パラメータ(θ,d,h)を、α=2であれば前回の位置推定時の視界の右領域(θ<θr’)から決定し、α=3であれば前回の位置推定時の視界の左領域(θ>θl’)から決定することで、詳細パラメータ(θ,d,h)を更新して記憶部102に保持する。ステップS67の後、或いは、ステップS62の判定結果がYESであると、ステップS68は、詳細パラメータ(θ,d,h)を図4に従った状態遷移モデルに従い確率的に遷移させて決定する。ステップS69は、決定した詳細パラメータ(θ,d,h)を現在の視覚(θr,θl)と比較してパラメータαを決定する。ステップS70は、全てのパーティクルに関して処理が完了したか否かを判定し、判定結果がNOであると処理はステップS61へ戻り、判定結果がYESであると処理は終了する。
【0042】
これにより、前回の位置推定時に視界外に存在したパーティクルの場合、対象人物が既に立ち去っている可能性が比較的高いので、各パーティクルは一定確率で立ち去り状態(α=4)に遷移する。α=4の場合は詳細パラメータ(θ,d,h)は保持しない。α=4に遷移しなかった場合は、詳細パラメータ(θ,d,h)を、α=2であれば前回の位置推定値の視界の右領域(θ<θr’)から、α=3であれば前回の視界の左領域(θ>θl’)から、何らかの確率分布に従い決定する。ここで用いる確率分布は、例えば、一様分布によりランダムに選択しても良く、ある程度カメラ21が最後に撮像した(即ち、ロボット201が見た)場所を中心とした正規分布等を用いても良い。パーティクルの状態遷移は、周知のサンプリング方法と同様にして、決定した詳細パラメータ(θ,d,h)に基づいて行うことができる。
【0043】
尚、詳細パラメータ(θ,d,h)をランダムに選択する場合には、パラメータαがロボット201に対して近距離を示すか遠距離を示すかに応じて選択する領域を変えることも可能である。例えば、概略位置の情報に、以下のように距離の情報も含めても良い。
・視界に存在
・視界より右でロボット201から近距離に存在
・視界より右でロボット201から遠距離に存在
・視界より左でロボット201から近距離に存在
・視界より左でロボット201から遠距離に存在
・立ち去り
この場合、概略位置の状態は、例えば一定確率で「近距離」⇔「遠距離」⇒「立ち去り」のように遷移させることができる。
【0044】
図5の説明に戻るに、ステップS57を行い図6のステップS70の判定結果がNOであると、処理はステップS55へ戻る。一方、ステップS57を行い図6のステップS70の判定結果がYESであると、処理はステップS58へ進む。ステップS58は、各パーティクルについて推定粒度毎の観測尤度を計算する。ステップS58の処理は、図1に示す推定粒度毎の観測尤度計算部44−1〜44−Nの処理に相当する。
【0045】
ステップS58の観測尤度計算では、α=1のパーティクルについては、顔が検出された場合には各パーティクルから検出された顔の位置と大きさが観測される尤度を計算する。具体的には、例えば詳細パラメータ(θ,d,h)と現在の(pan,tilt,roll)の値から画像上で観測されるべき座標と大きさ(即ち、予想座標と大きさ)を計算し、カメラ21による実際の撮像画像により観測された座標と大きさとの誤差に基づいて観測尤度を決定する。顔が観測されない場合は、観測尤度を例えば一定の尤度w1に決定する。又、α≠1のパーティクルについても、顔が観測されない場合は観測尤度を例えば一定の尤度w2に決定するが、w2>w1とすることにより、α≠1で顔が観測されない場合には視界外のパーティクルが徐々に増加するようにする。尤度計算では、視界内にいても顔が検出できない場合もあるため、光学的に検出した動き情報や、接触センサ等のセンサ情報に基づいて観測尤度を変更するようにしても良い。
【0046】
ステップS59は、ステップS58で計算された推定粒度の観測尤度によりパーティクルをリサンプリングしてパーティクルフィルタを再構成し、リサンプリングの結果を推定粒度決定部41にフィードバックすると共に、位置推定部46に供給する。このリサンプリング自体は、一般的なパーティクルフィルタにおけるリサンプリングと同様である。ステップS59の処理は、図1に示すリサンプリング部45の処理に相当する。
【0047】
従って、本実施例では、パーティクルフィルタによる状態追跡において、各パーティクルの値に応じて推定に利用できる観測情報量が異なるような推定を行う。パーティクルは、複数の推定粒度の情報を有し、観測される情報量に応じて推定粒度の異なる推定を行う。各パーティクルの推定粒度を変更しながら評価することで、パーティクルフィルタを構成することができる。
【0048】
リサンプリングを各推定粒度のパーティクル毎に別々に行っても良い。即ち、リサンプリング後に、各推定粒度のパーティクルの個数の比率が保持されるようにしても良い。
【0049】
サンプリング前ではなく、サンプリング後に、推定粒度を変更しても良い。
【0050】
各パーティクルの推定粒度は、各パーティクルの値がロボット(即ち、カメラ)の視界内であるか、或いは、視界外であるかに応じて変更することができる。人物の位置推定の場合、粗い推定粒度の推定値で視界外であるが視界と隣接する領域にある場合には、状態遷移前に細かい推定粒度の推定値を乱数生成し、状態遷移後の推定値を用いて推定粒度を決定する。これにより、カメラの首振りにより視界が変わった際に、視界外から視界内に入る可能性を適切に推定することができる。視界外のパーティクルの観測尤度が、視界内のパーティクルで該当する人物の顔が検出できない場合の観測尤度よりも高くなるように尤度計算を行うことで、位置推定を適切に行うことができる。
【0051】
コミュニケーションロボットは、人物と同じようにコミュニケーション対象だけを注視するわけではなく、自然な仕草や共同注視等様々な視線制御を行う。このような人物の観測値が比較的少ない状況下でも、本実施例によればコミュニケーション対象の位置を比較的簡単、且つ、正確に推定することができるので、例えば適切なタイミングでアイコンタクトを行うようにコミュニケーションロボットを制御することも可能となる。
【0052】
(第2実施例)
図7は、本発明の第2実施例におけるロボットの一例を示すブロック図である。図7中、図1と同一部分には同一符号を付し、その説明は省略する。
【0053】
図7において、コミュニケーションロボット301は、ロボット本体11A及び推定処理部40Aを有する。ロボット本体11Aは、接触センサ27及び距離センサ28を更に有する。又、推定処理部40Aは、推定粒度決定部41Aを有する。上記第1実施例の場合と同様に、推定処理部40Aの少なくとも一部は、ロボット301に対して外付けされていても良い。
【0054】
接触センサ27は、コミュニケーションロボット301とユーザの接触を検出すると、接触検出信号を推定粒度決定部41Aに供給する。又、距離センサ28は、コミュニケーションロボット301とユーザ間の距離を測定し、測定された距離を示す距離信号を推定粒度決定部41Aに供給する。接触センサ27自体は、周知の構成を有する。又、距離センサ28も、LRF(Laser Range Finder)等の周知の構成を有する。推定粒度決定部41Aは、首角度取得部22からの首角度に加え、接触センサ27からの接触検出信号及び距離センサ28からの距離信号の少なくとも一方に基づいて観測状況(又は、観測環境)を判断し、この観測状況に基づいて推定粒度を決定する。
【0055】
上記第1実施例では、首角度取得部22が観測状況取得部を形成しているが、本実施例では、首角度取得部22、接触センサ27及び距離センサ28が観測状況取得部を形成している。
【0056】
本実施例においても、上記第1実施例の場合と同様にα≠1のパーティクルも一定の尤度w2を与えるがw2>w1とすることにより、顔が観測されない場合は徐々に視界外のパーティクルが増加する。尤度計算では、視界内にいても顔が検出できない場合等もあるため、本実施例では例えば接触センサ27からの接触検出信号に基づいて観測尤度を変更することができる。
【0057】
又、顔検出の他に、接触センサ27及び距離センサ28の少なくとも一方を使用することで、尤度計算に反映できる。例えばロボット301の右方向、又は、左方向に接触反応がある場合、視界より右で近距離に存在、又は、視界より左で近距離に存在するパーティクルの観測尤度を高くすることができる。ロボット301からの近距離は、例えば接触センサ27からの接触検出信号が接触を示す場合、或いは、距離センサ28からの距離信号が一定値未満を示す場合に検出可能である。一方、ロボット301からの遠距離は、例えば接触センサ27からの接触検出信号が非接触を示す場合、或いは、距離センサ28からの距離信号が一定値以上を示す場合に検出可能である。又、距離センサ28により観測対象である人物以外の障害物までの距離を検出可能な場合には、人物の位置推定の尤度計算の際に、検出された障害物よりロボット301に近い位置についてはパーティクルの観測尤度を低くすることができる。
【0058】
これにより、人物の観測値が比較的少ない状況下でも、本実施例によればコミュニケーション対象の位置を比較的簡単、且つ、正確に推定することができるので、例えば適切なタイミングでアイコンタクトを行うようにコミュニケーションロボットを制御することも可能となる。
【0059】
(第3実施例)
上記の各実施例では、尤度計算方法が推定粒度に応じて異なるため、計算された尤度の比較が難しい場合もあり得る。このような場合には、リサンプリングを各推定粒度毎に行っても良い。リサンプリングを行う場合、推定される各人物がどの推定粒度で推定されるのが妥当であるかを示す尤度を計算し、この尤度の重みによりリサンプリングで生成される各推定粒度のパーティクルの個数を決定しても良い。
【0060】
図8は、本発明の第3実施例におけるロボットの一例を示すブロック図である。図8中、図1と同一部分には同一符号を付し、その説明は省略する。
【0061】
図8において、コミュニケーションロボット401は、ロボット本体11及び推定処理部40Bを有する。推定処理部40Bには、推定粒度毎のリサンプリング部45−1〜45−N、尤度計算部47、及びリサンプリング数決定部48が含まれる。
【0062】
尤度計算部47は、顔領域検出部12の出力に基づいて、観測対象の人物がどの推定粒度で推定されるのが妥当であるかを示す尤度を所定のアルゴリズムに基づいて計算する。リサンプリング数決定部48は、尤度計算部47で計算された尤度の重みにより、推定粒度毎のリサンプリング部45−1〜45−Nで生成される各推定粒度のパーティクルの個数、即ち、各粒度のパーティクルがリサンプリング後にいくつになるかを決定する。尤度計算部47及びリサンプリング数決定部48は、観測対象がどの推定粒度で推定されるのが妥当であるかを示す尤度の重みにより推定粒度毎のリサンプリング部45−1〜45−Nで生成される各推定粒度のパーティクルの個数を決定する個数決定部の一例である。
【0063】
推定粒度毎の観測尤度計算部44−1〜44−Nで計算された推定粒度毎の観測尤度は、推定粒度毎のリサンプリング部45−1〜45−Nに供給される。リサンプリング部45−1〜45−Nは、生成される各推定粒度のパーティクルの個数がリサンプリング数決定部48で決定された個数となるように、推定粒度毎に、計算された推定粒度毎の観測尤度でパーティクルをリサンプリングする。リサンプリング部45−1〜45−Nによるリサンプリングの結果は、推定粒度決定部41にフィードバックされると共に、位置推定部46に供給される。
【0064】
本実施例によれば、例えば上記第1実施例では尤度計算方法が推定粒度に応じて異なるために計算された尤度の比較が難しいような場合にも対応可能となる。
【0065】
図9は、コンピュータシステムの一例を示すブロック図である。図9に示すコンピュータシステム100は、CPU101、記憶部102、インタフェース(I/F)103、入力装置104、及び表示部105がバス106により接続された構成を有する。CPU101は、記憶部102に格納されたプログラムを実行することによりコンピュータシステム100全体を制御する。記憶部102は、半導体記憶装置、磁気記録媒体、光記録媒体、光磁気記録媒体等で形成可能であり、上記のプログラムや各種データを格納すると共に、CPU101が実行する演算の中間結果や演算結果等を一時的に格納する一時メモリとしても機能する。I/F103は、カメラ21からの撮像画像を受信したり、記憶部102に格納するデータをネットワーク(図示せず)から受信することができる。入力装置104は、キーボード等により形成可能である。表示部105は、ディスプレイ等により形成可能である。入力装置104及び表示部105は、タッチパネルのように入力装置と表示部の両方の機能を有する入出力装置で形成しても良い。入力装置104は、ユーザがロボット201(又は、301、又は、401)に指示等を入力する必要がない場合には省略可能であり、表示部105は、ロボット201(又は、301、又は、401)がユーザに対してメッセージ等を表示する必要がない場合には省略可能である。又、表示部105の代わりに、音声出力部(図示せず)を設けてユーザに対するメッセージ等を音声で出力するようにしても良いことは言うまでもない。
【0066】
CPU101は、記憶部102に格納されたプログラムを実行することにより、コンピュータシステム100をロボット201(又は、301、又は、401)として機能させる。つまり、プログラムは、CPU101にロボット201(又は、301、又は、401)の各部の機能を実現させる。言い換えると、プログラムは、CPU101に少なくともロボット201(又は、301、又は、401)の位置推定処理の手順を実行させるものであり、記憶部102を含む適切なコンピュータ読み取り可能な記憶媒体に格納されていても良い。従って、CPU101は、例えば図2、図5及び図6の処理を含む上記の各実施例の処理を実行可能である。
【0067】
上記の各実施例によれば、位置推定処理の結果を利用することで、コミュニケーションロボットは任意のタイミングで任意のユーザとアイコンタクトを取れるので、コミュニケーションロボットとユーザ間のコミュニケーションがスムーズに行え、より自然な対人動作(Interactive Operation)が可能となる。ここで、コミュニケーションとは、言語による対話に限らない。ユーザの推定位置の確度を保つために、コミュニケーションロボットが時々ユーザに視線を向ける動作も、例えば幼児が遊びながら時折母親の存在を確認する動作に似た動作となり、ロボットの動作が非常に自然になる。又、コミュニケーションロボットの動作に対するユーザの表情等をすぐ確認することができる等、コミュニケーションに必要なセンシング(Sensing)性能が向上し、コミュニケーションロボットの基本性能の大幅な向上につながる。
【0068】
尚、上記の各実施例では、カメラ21はパン、チルト、及びロールが可能であるため、直交する3軸(例えば、xyz座標系のx軸、y軸、及びz軸)を中心に回転可能であるため、互いに直交する3軸(例えば、xyz座標系のx軸、y軸及びz軸)を中心に回転可能である。しかし、ユーザの位置を推定できるのであれば、カメラ21は少なくとも1軸を中心に回転可能であれば良い。
【0069】
又、パーティクルの値によって推定粒度を決定する場合、サンプリング前ではなく、サンプリング後に推定粒度を変更しても良い。
【0070】
(変形例)
複数の顔を観測して複数の人物の位置を推定する場合、先ずどの顔がどの人物かを推定した後に、各顔に対して詳細位置の観測尤度を決定すれば良い。顔と人物の推定方法は、例えばパーティクルの平均位置と分散から、観測した人物と推定中の人物とが対応する尤度を求めても良い。全ての人物と顔との組み合わせに関して尤度の合計値を計算し、尤度の合計値が一番高い組み合わせを採用する等の推定方法を採用しても良い。顔に対して対応する人物がいない場合は、検出されていない新たな人物であると推定することもできる。
【0071】
画像処理を含む処理の場合、画像の内容等に応じて処理時間にばらつきが生じる。そこで、処理時間にばらつきが生じる可能性がある場合は、状態遷移の確率に経過時間を反映すれば良い。大まかな状態の遷移の場合、例えば以下のように遷移確率を決定できる。
【0072】
【数1】

ここで、Pは遷移確率、aは遷移のしやすさを表す正の定数、tは経過時間である。この遷移確率Pは、どの時刻からも一定時間で状態遷移する確率が一定であり、無限時間経過時に遷移確率Pが1となる仮定の遷移確率である。詳細位置の情報に関しては、速度情報と経過時間を含めることにより、経過時間を反映できる。
【0073】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
少なくとも1軸を中心に回転可能なカメラと、
前記カメラからの撮像画像から観測対象の人物の領域を検出する人物領域検出部と、
前記カメラの前記少なくとも1軸を中心とした回転角度を含む観測状況を取得する観測状況取得部と、
前記人物領域検出部で検出された人物の領域に対して、前記観測状況に基づいて複数の推定粒度の情報を有するパーティクルの推定粒度を変更し、各推定粒度を用いて前記観測対象の位置を推定する推定処理部
を備えた、ロボット。
(付記2)
前記観測状況は、パーティクルの表す詳細位置を示す第1のパラメータと、現在の概略位置を前記観測対象が前記カメラの視界内にあるか、或いは、視界外にあるかで示す第2のパラメータを含む、付記1記載のロボット。
(付記3)
前記第2のパラメータは、前記カメラの視界内を示す値、前記観測対象が視界より右側に存在することを示す値、前記観測対象が視界より左側に存在することを示す値、及び前記観測対象がその場には存在しないことを示す値のいずれかを有する、付記2記載のロボット。
(付記4)
前記推定処理部は、
前記観測状況に基づいて、前記検出された前記観測対象の顔領域のパーティクルの推定粒度を決定する推定粒度決定部と、
ある推定粒度の推定値を前記決定された推定粒度の推定値に変換する推定値変換部と、
前記変換された推定値に基づいて、パーティクルを推定粒度毎にサンプリングしてサンプリングされたパーティクルを夫々の推定粒度で状態遷移させる複数のサンプリング部と、
前記サンプリングされたパーティクルが夫々の推定粒度での推定値の妥当性を示す推定粒度毎の観測尤度を計算する複数の観測尤度計算部と、
前記計算された推定粒度毎の観測尤度によりパーティクルをリサンプリングするリサンプリング部
を有する、付記1乃至3のいずれか1項記載のロボット。
(付記5)
前記推定処理部は、前記リサンプリングの結果に基づいて前記観測対象の位置を推定する位置推定部を更に有し、前記リサンプリングの結果は前記推定粒度決定部にフィードバックされる、付記4記載のロボット。
(付記6)
前記推定処理部は、
前記観測状況に基づいて、前記検出された前記観測対象の顔領域のパーティクルの推定粒度を決定する推定粒度決定部と、
ある推定粒度の推定値を前記決定された推定粒度の推定値に変換する推定値変換部と、
前記変換された推定値に基づいて、パーティクルを推定粒度毎にサンプリングしてサンプリングされたパーティクルを夫々の推定粒度で状態遷移させる複数のサンプリング部と、
前記サンプリングされたパーティクルが夫々の推定粒度での推定値の妥当性を示す推定粒度毎の観測尤度を計算する複数の観測尤度計算部と、
前記計算された推定粒度毎の観測尤度によりパーティクルを推定粒度毎にリサンプリングする複数のリサンプリング部と、
前記観測対象がどの推定粒度で推定されるのが妥当であるかを示す尤度の重みにより前記複数のリサンプリング部で生成される各推定粒度のパーティクルの個数を決定する個数決定部
を有する、付記1乃至3のいずれか1項記載のロボット。
(付記7)
前記推定処理部は、パーティクルのサンプリング前又はサンプリング後にパーティクルの値によって推定粒度を変更する、付記6記載のロボット。
(付記8)
前記ロボットと前記観測対象の接触を検出して接触検出信号を出力する接触センサと、
前記ロボットと前記観測対象間の距離を測定して測定された距離を示す距離信号を出力する距離センサを更に備え、
前記推定処理部で用いる観測状況は、前記接触検出信号及び前記距離信号の少なくとも一方を含む、付記1乃至5のいずれか1項記載のロボット。
(付記9)
前記位置推定部により推定された前記観測対象の位置の不確実さの評価に基づいて観測方針を決定する観測方針決定部を更に備えた、付記5記載のロボット。
(付記10)
前記観測方針に基づいて前記カメラの前記少なくとも1軸に対する回転位置を制御する制御部を更に備えた、付記9記載のロボット。
(付記11)
少なくとも1軸を中心に回転可能なカメラの撮像画像から観測対象の人物の領域を人物領域検出部により検出する検出工程と、
前記カメラの前記少なくとも1軸を中心とした回転角度を含む観測状況を観測状況取得部により取得する取得工程と、
検出された前記人物の領域に対して、推定処理部により、取得された前記観測状況に基づいて複数の推定粒度の情報を有するパーティクルの推定粒度を変更し、各推定粒度を用いて前記観測対象の位置を推定する推定処理工程
を含む、位置推定方法。
(付記12)
前記観測状況は、パーティクルの表す詳細位置を示す第1のパラメータと、現在の概略位置を前記観測対象が前記カメラの視界内にあるか、或いは、視界外にあるかで示す第2のパラメータを含む、付記11記載の位置推定方法。
(付記13)
前記第2のパラメータは、前記カメラの視界内を示す値、前記観測対象が視界より右側に存在することを示す値、前記観測対象が視界より左側に存在することを示す値、及び前記観測対象がその場には存在しないことを示す値のいずれかを有する、付記12記載の位置推定方法。
(付記14)
前記推定処理工程は、
前記観測状況に基づいて、前記検出された前記観測対象の顔領域のパーティクルの推定粒度を推定粒度決定部により決定する決定工程と、
ある推定粒度の推定値を推定値変換部により前記決定された推定粒度の推定値に変換する変換工程と、
前記変換された推定値に基づいて、サンプリング部によりパーティクルを推定粒度毎にサンプリングしてパーティクルを夫々の推定粒度で状態遷移させるサンプリング工程と、
前記サンプリングされたパーティクルが夫々の推定粒度での推定値の妥当性を示す推定粒度毎の観測尤度を観測尤度計算部により計算する計算工程と、
前記計算された推定粒度毎の観測尤度によりパーティクルをリサンプリング部によりリサンプリングするリサンプリング工程
を含む、付記11乃至13のいずれか1項記載の位置推定方法。
(付記15)
前記推定処理工程は、位置推定部により、前記リサンプリングの結果に基づいて前記観測対象の位置を推定する推定工程を更に含み、前記リサンプリングの結果は前記決定工程で用いる前記推定粒度決定部にフィードバックされる、付記14記載の位置推定方法。
(付記16)
前記推定処理工程は、
前記観測状況に基づいて、前記検出された前記観測対象の顔領域のパーティクルの推定粒度を推定粒度決定部により決定する決定工程と、
ある推定粒度の推定値を推定値変換部により前記決定された推定粒度の推定値に変換する変換工程と、
前記変換された推定値に基づいて、サンプリング部によりパーティクルを推定粒度毎にサンプリングしてパーティクルを夫々の推定粒度で状態遷移させるサンプリング工程と、
前記サンプリングされたパーティクルが夫々の推定粒度での推定値の妥当性を示す推定粒度毎の観測尤度を観測尤度計算部により計算する計算工程と、
前記計算された推定粒度毎の観測尤度によりパーティクルをリサンプリング部により推定粒度毎にリサンプリングするリサンプリング工程と、
前記観測対象がどの推定粒度で推定されるのが妥当であるかを示す尤度の重みにより前記リサンプリング工程で生成される各推定粒度のパーティクルの個数を決定する個数決定工程
を含む、付記11乃至13のいずれか1項記載の位置推定方法。
(付記17)
前記推定処理工程は、パーティクルのサンプリング前又はサンプリング後にパーティクルの値によって推定粒度を変更する、付記16記載の位置推定方法。
(付記18)
前記推定処理工程で用いる観測状況は、前記ロボットと前記観測対象の接触を検出する接触センサから出力される接触検出信号及び前記ロボットと前記観測対象間の距離を測定する距離センサから出力される距離信号の少なくとも一方を含む、付記11乃至15のいずれか1項記載の位置推定方法。
(付記19)
コンピュータに観測対象の位置を推定させる位置推定処理を実行させるプログラムであって、
少なくとも1軸を中心に回転可能なカメラの撮像画像から観測対象の人物の領域を検出する人物領域検出手順と、
前記カメラの前記少なくとも1軸を中心とした回転角度を含む観測状況を取得する観測状況取得手順と、
検出された前記人物の領域に対して、取得された前記観測状況に基づいて複数の推定粒度の情報を有するパーティクルの推定粒度を変更し、各推定粒度を用いて前記観測対象の位置を推定する推定処理手順
を前記コンピュータに実行させる、プログラム。
(付記20)
前記観測状況は、パーティクルの表す詳細位置を示す第1のパラメータと、現在の概略位置を前記観測対象が前記カメラの視界内にあるか、或いは、視界外にあるかで示す第2のパラメータを含む、付記19記載のプログラム。
(付記21)
前記第2のパラメータは、前記カメラの視界内を示す値、前記観測対象が視界より右側に存在することを示す値、前記観測対象が視界より左側に存在することを示す値、及び前記観測対象がその場には存在しないことを示す値のいずれかを有する、付記20記載のプログラム。
(付記22)
前記推定処理手順は、
前記観測状況に基づいて、前記検出された前記観測対象の顔領域のパーティクルの推定粒度を決定する決定手順と、
ある推定粒度の推定値を前記決定された推定粒度の推定値に変換する変換工程と、
前記変換された推定値に基づいて、パーティクルを推定粒度毎にサンプリングしてパーティクルを夫々の推定粒度で状態遷移させるサンプリング手順と、
前記サンプリングされたパーティクルが夫々の推定粒度での推定値の妥当性を示す推定粒度毎の観測尤度を計算する計算手順と、
前記計算された推定粒度毎の観測尤度によりパーティクルをリサンプリングするリサンプリング手順
を含む、付記19乃至21のいずれか1項記載のプログラム。
(付記23)
前記推定処理手順は、前記リサンプリングの結果に基づいて前記観測対象の位置を推定する推定手順を更に含み、前記サンプリングの結果は前記決定手順にフィードバックされる、付記22記載のプログラム。
(付記24)
前記推定処理手順は、
前記観測状況に基づいて、前記検出された前記観測対象の顔領域のパーティクルの推定粒度を決定する決定手順と、
ある推定粒度の推定値を前記決定された推定粒度の推定値に変換する変換工程と、
前記変換された推定値に基づいて、パーティクルを推定粒度毎にサンプリングしてパーティクルを夫々の推定粒度で状態遷移させるサンプリング手順と、
前記サンプリングされたパーティクルが夫々の推定粒度での推定値の妥当性を示す推定粒度毎の観測尤度を計算する計算手順と、
前記計算された推定粒度毎の観測尤度によりパーティクルを推定粒度毎にリサンプリングするリサンプリング手順と、
前記観測対象がどの推定粒度で推定されるのが妥当であるかを示す尤度の重みにより前記リサンプリング手順で生成される各推定粒度のパーティクルの個数を決定する個数決定手順
を含む、付記19乃至21のいずれか1項記載のプログラム。
(付記25)
前記推定処理手順は、パーティクルのサンプリング前又はサンプリング後にパーティクルの値によって推定粒度を変更する、付記24記載のプログラム。
(付記26)
前記推定処理手順で用いる観測状況は、前記コンピュータと前記観測対象の接触の有無を示す接触検出信号及び前記コンピュータと前記観測対象間の距離を示す距離信号の少なくとも一方を含む、付記19乃至23のいずれか1項記載のプログラム。
【0074】
以上、開示の位置推定方法、ロボット及びプログラムを実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
【符号の説明】
【0075】
1 コミュニケーションロボット
11 ロボット本体
12 顔領域検出部
13 前景領域抽出部
14 画像生成部
15 画像予測部
16 画像比較部
17,46 位置推定部
18 観測方針決定部
19 首制御部
21 カメラ
22 首角度取得部
23 首回転駆動部
27 接触センサ
28 距離センサ
40 推定処理部
41 推定粒度決定部
42 推定値変換部
43−1〜43−N サンプリング部
44−1〜44−N 観測尤度計算部
45,45−1〜45−N リサンプリング部
47 尤度計算部
48 リサンプリング数決定部
101 CPU
102 記憶部

【特許請求の範囲】
【請求項1】
少なくとも1軸を中心に回転可能なカメラと、
前記カメラからの撮像画像から観測対象の人物の領域を検出する人物領域検出部と、
前記カメラの前記少なくとも1軸を中心とした回転角度を含む観測状況を取得する観測状況取得部と、
前記人物領域検出部で検出された人物の領域に対して、前記観測状況に基づいて複数の推定粒度の情報を有するパーティクルの推定粒度を変更し、各推定粒度を用いて前記観測対象の位置を推定する推定処理部
を備えた、ロボット。
【請求項2】
前記観測状況は、パーティクルの表す詳細位置を示す第1のパラメータと、現在の概略位置を前記観測対象が前記カメラの視界内にあるか、或いは、視界外にあるかで示す第2のパラメータを含む、請求項1記載のロボット。
【請求項3】
前記第2のパラメータは、前記カメラの視界内を示す値、前記観測対象が視界より右側に存在することを示す値、前記観測対象が視界より左側に存在することを示す値、及び前記観測対象がその場には存在しないことを示す値のいずれかを有する、請求項2記載のロボット。
【請求項4】
前記推定処理部は、
前記観測状況に基づいて、前記検出された前記観測対象の顔領域のパーティクルの推定粒度を決定する推定粒度決定部と、
ある推定粒度の推定値を前記決定された推定粒度の推定値に変換する推定値変換部と、
前記変換された推定値に基づいて、パーティクルを推定粒度毎にサンプリングしてパーティクルを夫々の推定粒度で状態遷移させる複数のサンプリング部と、
前記サンプリングされたパーティクルが夫々の推定粒度での推定値の妥当性を示す推定粒度毎の観測尤度を計算する複数の観測尤度計算部と、
前記計算された推定粒度毎の観測尤度によりパーティクルをリサンプリングするリサンプリング部
を有する、請求項1乃至3のいずれか1項記載のロボット。
【請求項5】
少なくとも1軸を中心に回転可能なカメラの撮像画像から観測対象の人物の領域を人物領域検出部により検出する検出工程と、
前記カメラの前記少なくとも1軸を中心とした回転角度を含む観測状況を観測状況取得部により取得する取得工程と、
検出された前記人物の領域に対して、推定処理部により、取得された前記観測状況に基づいて複数の推定粒度の情報を有するパーティクルの推定粒度を変更し、各推定粒度を用いて前記観測対象の位置を推定する推定処理工程
を含む、位置推定方法。
【請求項6】
コンピュータに観測対象の位置を推定させる位置推定処理を実行させるプログラムであって、
少なくとも1軸を中心に回転可能なカメラの撮像画像から観測対象の人物の領域を検出する人物領域検出手順と、
前記カメラの前記少なくとも1軸を中心とした回転角度を含む観測状況を取得する観測状況取得手順と、
検出された前記人物の領域に対して、取得された前記観測状況に基づいて複数の推定粒度の情報を有するパーティクルの推定粒度を変更し、各推定粒度を用いて前記観測対象の位置を推定する推定処理手順
を前記コンピュータに実行させる、プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2012−164089(P2012−164089A)
【公開日】平成24年8月30日(2012.8.30)
【国際特許分類】
【出願番号】特願2011−23232(P2011−23232)
【出願日】平成23年2月4日(2011.2.4)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】