(57)【特許請求の範囲】
【請求項１】
少なくとも１軸を中心に回転可能なカメラと、
前記カメラからの撮像画像から観測対象の人物の領域を検出する人物領域検出部と、
前記カメラの前記少なくとも１軸を中心とした回転角度を含む観測状況を取得する観測状況取得部と、
前記人物領域検出部で検出された人物の領域に対して、前記観測状況に含まれる前記回転角度を含む観測情報の観測情報量に基づいて、複数の推定粒度の情報を有するパーティクルの推定粒度を変更し、前記観測情報量に応じて異なる推定粒度を用いて前記観測対象の位置を推定する推定処理部
を備えた、ロボット。
【請求項２】
前記観測状況は、パーティクルの表す詳細位置を示す第１のパラメータと、現在の概略位置を前記観測対象が前記カメラの視界内にあるか、或いは、視界外にあるかで示す第２のパラメータを含む、請求項１記載のロボット。
【請求項３】
前記第２のパラメータは、前記カメラの視界内を示す値、前記観測対象が視界より右側に存在することを示す値、前記観測対象が視界より左側に存在することを示す値、及び前記観測対象がその場には存在しないことを示す値のいずれかを有する、請求項２記載のロボット。
【請求項４】
前記推定処理部は、
前記観測状況に基づいて、前記検出された前記観測対象の顔領域のパーティクルの推定粒度を決定する推定粒度決定部と、
ある推定粒度の推定値を前記決定された推定粒度の推定値に変換する推定値変換部と、
前記変換された推定値に基づいて、パーティクルを推定粒度毎にサンプリングしてパーティクルを夫々の推定粒度で状態遷移させる複数のサンプリング部と、
前記サンプリングされたパーティクルが夫々の推定粒度での推定値の妥当性を示す推定粒度毎の観測尤度を計算する複数の観測尤度計算部と、
前記計算された推定粒度毎の観測尤度によりパーティクルをリサンプリングするリサンプリング部
を有する、請求項１乃至３のいずれか１項記載のロボット。
【請求項５】
少なくとも１軸を中心に回転可能なカメラの撮像画像から観測対象の人物の領域を人物領域検出部により検出する検出工程と、
前記カメラの前記少なくとも１軸を中心とした回転角度を含む観測状況を観測状況取得部により取得する取得工程と、
検出された前記人物の領域に対して、推定処理部により、取得された前記観測状況に含まれる前記回転角度を含む観測情報の観測情報量に基づいて、複数の推定粒度の情報を有するパーティクルの推定粒度を変更し、前記観測情報量に応じて異なる推定粒度を用いて前記観測対象の位置を推定する推定処理工程
を含む、位置推定方法。
【請求項６】
コンピュータに観測対象の位置を推定させる位置推定処理を実行させるプログラムであって、
少なくとも１軸を中心に回転可能なカメラの撮像画像から観測対象の人物の領域を検出する人物領域検出手順と、
前記カメラの前記少なくとも１軸を中心とした回転角度を含む観測状況を取得する観測状況取得手順と、
検出された前記人物の領域に対して、取得された前記観測状況に含まれる前記回転角度を含む観測情報の観測情報量に基づいて、複数の推定粒度の情報を有するパーティクルの推定粒度を変更し、前記観測情報量に応じて異なる推定粒度を用いて前記観測対象の位置を推定する推定処理手順
を前記コンピュータに実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回転可能なカメラを用いて人物の位置を推定するロボット、位置推定方法及びプログラムに関する。
【背景技術】
【０００２】
人型又はペット型のコミュニケーションロボット（以下、単にロボットと言う）では、ユーザに親近感を与えるためにユーザとのアイコンタクトを取ることが望ましい。ロボットがユーザとアイコンタクトを取るためには、ロボットがユーザと目を合わせるようにロボットの首を動かす機能を設ける必要である。この機能は、例えばロボットの目や鼻の位置に設置したカメラでユーザの顔を撮像し、ユーザの顔が撮像画像の中央に位置するように首を制御する方法等で実現できる。
【０００３】
しかし、ロボットがユーザとコミュニケーションを取っている最中にロボットがある仕草をしたり、ユーザ以外の物に視線を移したり、他のタスクに首やカメラを利用したい場合がある。このような場合にも、ロボットがユーザと自然なコミュニケーションを取るためには、ロボットが適切なタイミングでユーザとアイコンタクトを取ることが望ましいが、ロボットが実行しているタスクによってはユーザがロボットの視界から外れてしまう場合もある。このような場合でもロボットがユーザとスムーズにアイコンタクトを取るためには、ユーザが視界から外れた場合や、ユーザの一部しか視界に入っていない場合等にも、ユーザを観察することでユーザの位置を推定する必要がある。
【０００４】
従来、ロボットに設けたアレイマイクによる音源検知によりユーザの位置を推定し、推定した位置に応じてロボットの首を動かしてユーザとアイコンタクトを取る方法が提案されている。しかし、この方法では、ロボットは、ユーザが発声しないと、ユーザの位置を推定できないのでアイコンタクトを取ることもできない。又、ロボットが使用される環境によっては、音の反射等のノイズによりユーザの位置を正確に推定することは難しい。
【０００５】
一方、人物のシルエット画像と、シルエット画像をシミュレートしたシミュレーション画像の一致度を尤度としたパーティクルフィルタを、観測対象であるユーザに対して構成する方法が提案されている（例えば、特許文献１）。しかし、ロボットの目や鼻の位置に設置したカメラで撮像した撮像画像に基づいてユーザの位置を推定する方法では、ロボットの首の姿勢（即ち、カメラの姿勢）によって視野が変化するので背景も変化する。このため、首の特定の姿勢でカメラが撮像して用意された背景画像と、首の異なる姿勢でカメラが撮像した観測画像との比較演算により背景差分を求めて観測画像中のユーザを追跡するのでは、背景が変化すると背景差分からユーザの位置を正確に推定することは難しい。又、ロボットの首の姿勢にかかわらずユーザの位置を推定可能にする背景差分を求めるには、予め膨大な量の背景画像を用意しておく必要があると共に、背景差分を求めるのに膨大な量の比較演算を行う必要があり、比較演算を実行するプロセッサへの負荷も大きくなる。
【０００６】
カメラが撮像した観測画像の中からユーザの顔を認識することでユーザの位置を推定する方法もあるが、顔の認識には複雑な演算が必要であり、演算を実行するプロセッサへの負荷も大きい。又、ユーザの顔は、ある角度範囲でカメラの方を向いていないと例えば目、鼻や口といった顔の顕著な特徴がカメラの撮像画像に含まれないため顔と認識されず、顔の認識結果に基づいてユーザの位置を正確に推定することは難しい。
【０００７】
例えば、色ヒストグラムを用いて対象物を追跡又は検出する技術も提案されている（例えば、特許文献２、特許文献３及び特許文献４）。
【０００８】
回転可能なカメラの場合、カメラの首角度（又は、姿勢）によっては位置推定対象の人物がロボット（即ち、カメラ）の視野から外れてしまう。人物がロボットの視野から外れた場合、人物の位置推定精度が低下し、ロボットが人物を追従できなくなる状況も起こり得る。特にコミュニケーションロボットの場合、カメラの首の動きは頷き等の自然動作を行うのためにも使用され、必ずしも首の動きが人物の追従のために使用されるわけではない。又、ロボットが複数の人物と相対する場合、一人の人物にロボットの視線を向けると他の人物はロボットの視界から外れてしまう状況が比較的頻繁に起こり得る。人物がロボットの視界から外れる等して、人物の観測値が比較的少ないにも関わらず比較的高精度で位置推定を行おうとすると、的外れな位置に人物がいると誤った位置推定を行い、ロボットが的外れな方向を見てしまう等といった不適切な動作を行う可能性がある。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１０−４１５２６号公報
【特許文献２】特開２００８−２６９７１４号公報
【特許文献３】特開２００６−２２１６１０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
従来の位置推定方法では、比較的簡単、且つ、正確に観測対象である人物（例えば、ユーザ）の位置を推定することは難しいという問題があった。
【００１１】
そこで、本発明は、比較的簡単、且つ、正確に観測対象である人物の位置を推定することができるロボット、位置推定方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の一観点によれば、少なくとも１軸を中心に回転可能なカメラと、前記カメラからの撮像画像から観測対象の人物の領域を検出する人物領域検出部と、前記カメラの前記少なくとも１軸を中心とした回転角度を含む観測状況を取得する観測状況取得部と、前記人物領域検出部で検出された人物の領域に対して、前記観測状況に含まれる前記回転角度を含む観測情報の観測情報量に基づいて、複数の推定粒度の情報を有するパーティクルの推定粒度を変更し、前記観測情報量に応じて異なる推定粒度を用いて前記観測対象の位置を推定する推定処理部を備えたロボットが提供される。
【００１３】
本発明の一観点によれば、少なくとも１軸を中心に回転可能なカメラの撮像画像から観測対象の人物の領域を人物領域検出部により検出する検出工程と、前記カメラの前記少なくとも１軸を中心とした回転角度を含む観測状況を観測状況取得部により取得する取得工程と、検出された前記人物の領域に対して、推定処理部により、取得された前記観測状況に含まれる前記回転角度を含む観測情報の観測情報量に基づいて、複数の推定粒度の情報を有するパーティクルの推定粒度を変更し、前記観測情報量に応じて異なる推定粒度を用いて前記観測対象の位置を推定する推定処理工程を含む位置推定方法が提供される。
【００１４】
本発明の一観点によれば、コンピュータに観測対象の位置を推定させる位置推定処理を実行させるプログラムであって、少なくとも１軸を中心に回転可能なカメラの撮像画像から観測対象の人物の領域を検出する人物領域検出手順と、前記カメラの前記少なくとも１軸を中心とした回転角度を含む観測状況を取得する観測状況取得手順と、検出された前記人物の領域に対して、取得された前記観測状況に含まれる前記回転角度を含む観測情報の観測情報量に基づいて、複数の推定粒度の情報を有するパーティクルの推定粒度を変更し、前記観測情報量に応じて異なる推定粒度を用いて前記観測対象の位置を推定する推定処理手順を前記コンピュータに実行させるプログラムが提供される。
【発明の効果】
【００１５】
開示のロボット、位置推定方法及びプログラムによれば、比較的簡単、且つ、正確に観測対象である人物の位置を推定することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の第１実施例におけるロボットの一例を示すブロック図である。
【図２】粒度変更処理を説明する図である。
【図３】パーティクルを構成するパラメータを説明する図である。
【図４】人の概略位置を示すパラメータの一例を説明する図である。
【図５】粒度変更処理の一例を説明するフローチャートである。
【図６】パーティクルの状態遷移処理を説明するフローチャートである。
【図７】本発明の第２実施例におけるロボットの一例を示すブロック図である。
【図８】本発明の第３実施例におけるロボットの一例を示すブロック図である。
【図９】コンピュータシステムの一例を示すブロック図である。
【発明を実施するための形態】
【００１７】
開示のロボット、位置推定方法及びプログラムでは、回転可能なカメラの撮像画像から観測対象の人物の領域を検出し、検出された人物の領域に対して、カメラの回転角度を含む観測状況に基づいて複数の推定粒度の情報を有するパーティクルの推定粒度を変更し、各推定粒度を用いて観測対象の位置を推定する。
【００１８】
以下に、開示のロボット、位置推定方法及びプログラムの各実施例を図面と共に説明する。
【実施例】
【００１９】
（第１実施例）
本発明の第１実施例におけるコミュニケーションロボットでは、観測された状況（以下、観測状況とも言う）に基づいてパーティクル（即ち、人物の予測値）の推定粒度を変更し、各推定粒度を用いて位置推定を行う。例えば、各推定粒度毎にサンプリング部及び尤度計算部を設けることで、決定した推定粒度に従ったサンプリング及び尤度計算を行うことができる。
【００２０】
図１は、本発明の第１実施例におけるロボットの一例を示すブロック図である。本実施例では、本発明が人型コミュニケーションロボットに適用されている。
【００２１】
コミュニケーションロボット２０１は、図１に示す如く接続されたロボット本体１１、顔領域検出部１２、推定処理部４０、観測方針決定部１８、及びロボット２０１の首の回転を制御する首制御部１９を有する。尚、ロボット本体１１は、ロボット２０１を歩行可能、或いは、走行可能とする周知の移動機構（図示せず）を有しても良いことは言うまでもない。
【００２２】
ロボット本体１１は、例えばパン（Pan）、チルト（Tilt）、及びロール（Roll）可能なカメラ２１、首角度（又は、姿勢）取得部２２及び首回転駆動部２３を有する。カメラ２１は、所謂首振り可能な周知の構造を有し、例えばロボット本体１１の目や鼻の位置に設けられており、ロボット２０１から見える画像を撮像する。カメラ２１のパン軸を中心としたパン、チルト軸を中心としたチルト、ロール軸を中心としたロール（以下、単にパン、チルト、及びロールとも言う）は首回転駆動部２３により周知の方法で制御される。又、首角度取得部２２は、カメラ２１の首角度、即ち、カメラ２１の姿勢を周知の方法で取得する。カメラ２１の首角度は、パン（Pan）角、チルト（Tilt）角、及びロール（Roll）角を含む。
【００２３】
推定処理部４０は、推定粒度決定部４１、推定値変換部４２、推定粒度毎のサンプリング部４３−１〜４３−Ｎ（Ｎは２以上の自然数）、推定粒度毎の観測尤度計算部４４−１〜４４−Ｎ、リサンプリング部４５、及び位置推定部４６を有する。
【００２４】
人物領域検出部の一例である顔領域検出部１２は、カメラ２１からの撮像画像から、ロボット２０１がコミュニケーションを取るべきユーザ（即ち、観測対象）の顔領域（即ち、観測対象領域）を周知の方法で検出する。例えばデジタルカメラ等の分野では、撮像画像から顔領域を検出、或いは、抽出する各種方法が知られている。顔領域検出部１２は、ユーザの顔らしき領域（即ち、顔領域）を検出するものであり、ユーザの顔を認識する個人認証を行う必要はない。顔領域検出部１２の出力には、検出した顔の座標及び大きさ（サイズ）の情報が含まれ、推定粒度決定部４１に供給される。推定粒度決定部４１には、首角度取得部２２が取得して出力するカメラ２１の首角度（即ち、カメラ２１の姿勢）の情報も供給される。首角度取得部２２が出力する首角度は、後述する推定粒度毎の観測尤度計算部４４−１〜４４−Ｎの各々にも供給される。推定粒度決定部４１は、顔領域検出部１２で検出された顔領域に対して、首角度から求めた観測状況に基づいてパーティクルの推定粒度を決定する。推定値変換部４２は、ある推定粒度の推定値を、推定粒度決定部４１で決定された推定粒度の推定値に変換する。
【００２５】
推定粒度毎のサンプリング部４３−１〜４３−Ｎは、推定値変換部４２で変換された推定値に基づいて、パーティクルを推定粒度毎にサンプリングしてパーティクルを夫々の推定粒度で状態遷移させる。推定粒度毎の観測尤度計算部４４−１〜４４−Ｎは、推定粒度毎のサンプリング部４３−１〜４３−Ｎでサンプリングされた各パーティクルが夫々の推定粒度での推定値の妥当性を示す推定粒度毎の尤度（以下、観測尤度とも言う）を計算する。リサンプリング部４５は、推定粒度毎の観測尤度計算部４４−１〜４４−Ｎで計算された推定粒度毎の観測尤度によりパーティクルをリサンプリングし、リサンプリングの結果は推定粒度決定部４１にフィードバックされると共に、位置推定部４６に供給される。
【００２６】
位置推定部４６は、リサンプリング部４５からのリサンプリングの結果に基づいて人物の位置、即ち、ユーザの位置を推定する。観測方針決定部１８は、推定されたユーザの位置の不確実さ等の評価に基づいて、ユーザの観測方針、即ち、ユーザをどのような規則（又は、ルール）に基づいて観測するかを決定する。例えば、観測方針がユーザの位置を確認する頻度に関するものであれば、推定されたユーザの位置と前回推定されたユーザの位置の間の距離が閾値以内であればユーザの位置の確認頻度を第１の時間毎に設定し、閾値を超える場合には確認頻度を第１の時間より短い第２の時間毎に設定する。首制御部１９は、観測方針決定部１８で決定された観測方針に基づいて首回転駆動部２３を制御することで、ユーザがカメラ２１の視界に入るようにカメラ２１の姿勢を制御する。
【００２７】
顔領域検出部１２、観測方針決定部１８、及び首制御部１９のうち少なくとも一部はロボット２０１に対して外付けされていても良い。又、推定処理部４０の少なくとも一部は、ロボット２０１に対して外付けされていても良い。この場合、ロボット２０１に対して外付けされる部分は、ロボット２０１に設けた適切なインタフェース（図示せず）を介してロボット２０１と接続される。ロボット２０１と外付けされる部分とは、例えば無線ネットワーク（図示せず）を介して周知の方法で通信可能とすれば良い。つまり、ロボット２０１の首回転駆動部２３等は、リモートに制御されるものであっても良い。
【００２８】
図２は、粒度変更処理を説明する図である。説明の便宜上、推定粒度は粗い場合と細かい場合の２種類であるものとするが、推定粒度の種類は３種類以上であっても良いことは言うまでもない。又、この例では、推定粒度は、細かい粒度の推定値の値によって決定されるものとする。粗い推定のパーティクルの値によっては、推定粒度を細かい推定粒度に変更しなければいけない可能性がある。推定粒度を細かい推定粒度に変更しなければいけない可能性があるパーティクルに関しては、粗い推定粒度の推定値から細かい推定粒度の推定値を乱数生成する等して、粗い推定粒度の推定値を細かい推定粒度の推定値に変換する。各パーティクルは夫々の推定粒度で状態遷移し、各パーティクルの値によって推定粒度を決定して適切な推定粒度の推定値に変換する。この場合、細かい推定粒度の値に基づいて推定が適切であるか否かを判断するので、粗い推定粒度が適切と判断されたパーティクルについては粗い推定粒度の推定値に変換する。その後、各パーティクルの観測尤度を計算し、その尤度の重みによりリサンプリングで生成される各推定粒度のパーティクルの個数を決定する。
【００２９】
パーティクルフィルタは、観測対象の状態の連続的な事後確率密度分布を離散化して、パーティクルセット（Particle Set）と呼ばれるサンプル集団の各メンバーの状態に対して、観測結果との整合性を逐次的に評価してリサンプリング（Resampling）を行う。これにより、パーティクルでシミュレーションした事後確率密度分布を、真の確率密度分布に収束させる。
【００３０】
図３は、パーティクルを構成するパラメータを説明する図である。図３において、ユーザ３０の位置は、図３に示すパラメータd，ｈ，θで表される。パラメータdは、ロボット２０１のカメラ２１（又は、首）のパン軸からユーザ３０までの最短距離を示し、この例ではユーザ３０の体３２の位置までの距離である。パラメータｈは、ロボット２０１のカメラ２１の基準位置から顔３１の中心までの高さを示す。パラメータθは、カメラ２１の定位置の視線ＦＹと上記最短距離dの方向がなす角度を示す。
【００３１】
図３の例では、ロボット２０１は熊のぬいぐるみの形をしたペット型のコミュニケーションロボットである。例えば、カメラ２１は熊の目（又は鼻）に設置されており、首回転駆動部２３は熊の首の部分に設けられており、首角度取得部２２は熊の胴体部分に設けられている。
【００３２】
各パーティクルは、図３に示すように、例えばカメラ２１の首角度が定位置の際のロール（Roll）中心の方向を基準とした水平角度（視線ＦＹとユーザ３０の体３２の位置までに最短距離ｄの方向がなす角度）θ、ロボット２０１からユーザ３０までの最短距離ｄ、首角度が定位置でのカメラ２１からユーザ３０の顔３１の中心までの高さｈの３つのパラメータで表されるものとする。
【００３３】
このようなパーティクルでシミュレーションを行う構成のパーティクルフィルタを用いて人物の位置を推定する場合、カメラ２１の視界内で顔が検出された人物については精度良く位置を推定可能であるが、視界から外れた人物については入力情報がないため誤った位置を推定してしまい、視界外にいる人物の顔を検出しようとしてもロボット２０１が的外れな方向を見てしまう可能性がある。そこで、本実施例では、入力情報量が少ない場合には推定粒度を落とし、大まかに視界より右にいる等の情報を扱う推定を行うことにより、推定粒度に合わせた人物の位置推定を行う。
【００３４】
この例では、パーティクルの表す詳細位置を示すパラメータ（θ，ｄ，ｈ）の他に、現在の概略位置を示すパラメータαを用いる。パラメータαは、例えば図４に示すようなＰ１〜Ｐ４の値を有する。図４は、人物の概略位置を示すパラメータαの一例を説明する図である。図４において、Ｐ１は人物が視界内にいることを示す値、Ｐ２は人物が視界より右側に存在することを示す値、Ｐ３は人物が視界より左側に存在することを示す値、Ｐ４は人物がその場には存在しないことを示す値である。ここでは説明の便宜上、概略位置を示すパラメータαをこれらの４つの値（又は、状態）に分けているが、例えば視界より上下、近い、遠い、立ち去り等といった、ｄ方向やｈ方向にも３段階程度の推定粒度で状態を定義して、概略位置を示すパラメータαを例えば２７個の状態で管理する等、様々な状態の分け方が考えられる。しかし、本実施例では、説明の便宜上、状態をθ方向にのみ分割した例を前提として説明する。
【００３５】
図４に示す概略位置を示すパラメータαを用いて、人物の位置推定を行う方法の一例を図５と共に説明する。図５は、粒度変更処理の一例を説明するフローチャートである。図５に示す粒度変更処理は、ＣＰＵ１０１により実行可能である。
【００３６】
図５において、ステップＳ５１は、パーティクルフィルタの初期化を行う。例えば、新しく発見した顔が観測された周辺の値を、各パーティクルのパラメータに適当な確率分布に従って割り当てる。確率分布とは、観測された顔の位置や大きさに基づいて、最尤のパラメータから正規分布に従う確率分布や、一定の領域内の一様分布等を表す。
【００３７】
ステップＳ５２は、カメラ２１の撮像画像を取得する。ステップＳ５３は、首角度取得部２２により、現在のカメラ２１のpan，tilt，roll角度を取得する。ロボット２０１の構成によるが、通常、首回転駆動部２３のモータを制御するモジュール等が現在の首角度を管理しているため、pan, tilt, roll角度を取得することができる。そこで、現在のロボット２０１の視界の範囲（θｒ，θｌ）を計算して例えば記憶部１０２に保持する。尚、記憶部１０２には、前回ステップＳ５３を実行した際に計算された視界の範囲（θｒ’，θｌ’）が保持されている。ここで、θrは視界の右端の角度θ，θlは視界の左端の角度θを表すものとし、角度θがθｒ＜θ＜θｌの範囲にあると人物が視界内に存在するものと判定する。初回時は、（θｒ’，θｌ’）＝（θｒ，θｌ）とする。ステップＳ５４は、顔領域検出部１２を用いて、カメラ２１の撮像画像から顔領域を検出する。
【００３８】
ステップＳ５５は、各パーティクルの推定粒度を決定する。ステップＳ５６は、ある推定粒度の推定値を決定された推定粒度の推定値に変換する。又、ステップＳ５７は、パーティクルを推定粒度毎にサンプリングし、サンプリングされた各パーティクルを夫々の推定粒度で状態遷移させる。従って、ステップＳ５５，Ｓ５６，Ｓ５７の処理は、図１に示す推定粒度決定部４１、推定値変換部４２、及び推定粒度毎のサンプリング部４３−１〜４３−Ｎの処理に相当する。
【００３９】
新しい人物の顔発見等をトリガに対象物の追跡を開始し、図５の処理を開始することでステップＳ５５〜Ｓ５７の処理を実行しても良い。図６は、パーティクルの状態遷移処理を説明するフローチャートである。各パーティクルの状態更新について、図６と共に説明する。
【００４０】
図６において、ステップＳ６１は、各パーティクルに関して概略位置を示すパラメータαを評価する。この時点のパラメータαは、前回の位置推定時のパラメータαであり、前回の位置推定時の視界に対する情報である。前回の位置推定時に視界内に存在したパーティクルの信頼度は比較的高いため、前回の位置推定時の視界に対する情報に基づいてパーティクルの状態遷移を行う。具体的には、ステップＳ６２は、α＝１であるか否かを判定し、判定結果がＹＥＳであると処理は後述するステップＳ６８へ進む。ステップＳ６２の判定結果がＮＯであると、ステップＳ６３は、α＝２又はα＝３であるか否かを判定する。ステップＳＳ６３の判定結果がＹＥＳであると、ステップＳ６４は、パーティクルを一定確率でα＝４に状態遷移させる。ステップＳ６４の後、ステップＳ６５は、α＝４であるか否かを判定し、判定結果がＮＯであると処理は後述するステップＳ６７へ進む。ステップＳ６３の判定結果がＮＯ、或いは、ステップＳ６５の判定結果がＹＥＳであると、ステップＳ６６は詳細パラメータ（θ，ｄ，ｈ）を記憶部１０２に保持せず（即ち、使用せず）、処理は終了する。
【００４１】
ステップＳ６７は、詳細パラメータ（θ，ｄ，ｈ）を、α＝２であれば前回の位置推定時の視界の右領域（θ＜θｒ’）から決定し、α＝３であれば前回の位置推定時の視界の左領域（θ＞θｌ’）から決定することで、詳細パラメータ（θ，ｄ，ｈ）を更新して記憶部１０２に保持する。ステップＳ６７の後、或いは、ステップＳ６２の判定結果がＹＥＳであると、ステップＳ６８は、詳細パラメータ（θ，ｄ，ｈ）を図４に従った状態遷移モデルに従い確率的に遷移させて決定する。ステップＳ６９は、決定した詳細パラメータ（θ，ｄ，ｈ）を現在の視覚（θｒ，θｌ）と比較してパラメータαを決定する。ステップＳ７０は、全てのパーティクルに関して処理が完了したか否かを判定し、判定結果がＮＯであると処理はステップＳ６１へ戻り、判定結果がＹＥＳであると処理は終了する。
【００４２】
これにより、前回の位置推定時に視界外に存在したパーティクルの場合、対象人物が既に立ち去っている可能性が比較的高いので、各パーティクルは一定確率で立ち去り状態（α＝４）に遷移する。α＝４の場合は詳細パラメータ（θ，ｄ，ｈ）は保持しない。α＝４に遷移しなかった場合は、詳細パラメータ（θ，ｄ，ｈ）を、α＝２であれば前回の位置推定値の視界の右領域(θ＜θｒ’)から、α＝３であれば前回の視界の左領域(θ＞θｌ’)から、何らかの確率分布に従い決定する。ここで用いる確率分布は、例えば、一様分布によりランダムに選択しても良く、ある程度カメラ２１が最後に撮像した（即ち、ロボット２０１が見た）場所を中心とした正規分布等を用いても良い。パーティクルの状態遷移は、周知のサンプリング方法と同様にして、決定した詳細パラメータ（θ，ｄ，ｈ）に基づいて行うことができる。
【００４３】
尚、詳細パラメータ（θ，ｄ，ｈ）をランダムに選択する場合には、パラメータαがロボット２０１に対して近距離を示すか遠距離を示すかに応じて選択する領域を変えることも可能である。例えば、概略位置の情報に、以下のように距離の情報も含めても良い。
・視界に存在
・視界より右でロボット２０１から近距離に存在
・視界より右でロボット２０１から遠距離に存在
・視界より左でロボット２０１から近距離に存在
・視界より左でロボット２０１から遠距離に存在
・立ち去り
この場合、概略位置の状態は、例えば一定確率で「近距離」⇔「遠距離」⇒「立ち去り」のように遷移させることができる。
【００４４】
図５の説明に戻るに、ステップＳ５７を行い図６のステップＳ７０の判定結果がＮＯであると、処理はステップＳ５５へ戻る。一方、ステップＳ５７を行い図６のステップＳ７０の判定結果がＹＥＳであると、処理はステップＳ５８へ進む。ステップＳ５８は、各パーティクルについて推定粒度毎の観測尤度を計算する。ステップＳ５８の処理は、図１に示す推定粒度毎の観測尤度計算部４４−１〜４４−Ｎの処理に相当する。
【００４５】
ステップＳ５８の観測尤度計算では、α＝１のパーティクルについては、顔が検出された場合には各パーティクルから検出された顔の位置と大きさが観測される尤度を計算する。具体的には、例えば詳細パラメータ（θ，ｄ，ｈ）と現在の（pan，tilt，roll）の値から画像上で観測されるべき座標と大きさ（即ち、予想座標と大きさ）を計算し、カメラ２１による実際の撮像画像により観測された座標と大きさとの誤差に基づいて観測尤度を決定する。顔が観測されない場合は、観測尤度を例えば一定の尤度ｗ１に決定する。又、α≠１のパーティクルについても、顔が観測されない場合は観測尤度を例えば一定の尤度ｗ２に決定するが、ｗ２＞ｗ１とすることにより、α≠１で顔が観測されない場合には視界外のパーティクルが徐々に増加するようにする。尤度計算では、視界内にいても顔が検出できない場合もあるため、光学的に検出した動き情報や、接触センサ等のセンサ情報に基づいて観測尤度を変更するようにしても良い。
【００４６】
ステップＳ５９は、ステップＳ５８で計算された推定粒度の観測尤度によりパーティクルをリサンプリングしてパーティクルフィルタを再構成し、リサンプリングの結果を推定粒度決定部４１にフィードバックすると共に、位置推定部４６に供給する。このリサンプリング自体は、一般的なパーティクルフィルタにおけるリサンプリングと同様である。ステップＳ５９の処理は、図１に示すリサンプリング部４５の処理に相当する。
【００４７】
従って、本実施例では、パーティクルフィルタによる状態追跡において、各パーティクルの値に応じて推定に利用できる観測情報量が異なるような推定を行う。パーティクルは、複数の推定粒度の情報を有し、観測される情報量に応じて推定粒度の異なる推定を行う。各パーティクルの推定粒度を変更しながら評価することで、パーティクルフィルタを構成することができる。
【００４８】
リサンプリングを各推定粒度のパーティクル毎に別々に行っても良い。即ち、リサンプリング後に、各推定粒度のパーティクルの個数の比率が保持されるようにしても良い。
【００４９】
サンプリング前ではなく、サンプリング後に、推定粒度を変更しても良い。
【００５０】
各パーティクルの推定粒度は、各パーティクルの値がロボット（即ち、カメラ）の視界内であるか、或いは、視界外であるかに応じて変更することができる。人物の位置推定の場合、粗い推定粒度の推定値で視界外であるが視界と隣接する領域にある場合には、状態遷移前に細かい推定粒度の推定値を乱数生成し、状態遷移後の推定値を用いて推定粒度を決定する。これにより、カメラの首振りにより視界が変わった際に、視界外から視界内に入る可能性を適切に推定することができる。視界外のパーティクルの観測尤度が、視界内のパーティクルで該当する人物の顔が検出できない場合の観測尤度よりも高くなるように尤度計算を行うことで、位置推定を適切に行うことができる。
【００５１】
コミュニケーションロボットは、人物と同じようにコミュニケーション対象だけを注視するわけではなく、自然な仕草や共同注視等様々な視線制御を行う。このような人物の観測値が比較的少ない状況下でも、本実施例によればコミュニケーション対象の位置を比較的簡単、且つ、正確に推定することができるので、例えば適切なタイミングでアイコンタクトを行うようにコミュニケーションロボットを制御することも可能となる。
【００５２】
（第２実施例）
図７は、本発明の第２実施例におけるロボットの一例を示すブロック図である。図７中、図１と同一部分には同一符号を付し、その説明は省略する。
【００５３】
図７において、コミュニケーションロボット３０１は、ロボット本体１１Ａ及び推定処理部４０Ａを有する。ロボット本体１１Ａは、接触センサ２７及び距離センサ２８を更に有する。又、推定処理部４０Ａは、推定粒度決定部４１Ａを有する。上記第１実施例の場合と同様に、推定処理部４０Ａの少なくとも一部は、ロボット３０１に対して外付けされていても良い。
【００５４】
接触センサ２７は、コミュニケーションロボット３０１とユーザの接触を検出すると、接触検出信号を推定粒度決定部４１Ａに供給する。又、距離センサ２８は、コミュニケーションロボット３０１とユーザ間の距離を測定し、測定された距離を示す距離信号を推定粒度決定部４１Ａに供給する。接触センサ２７自体は、周知の構成を有する。又、距離センサ２８も、ＬＲＦ（Laser Range Finder）等の周知の構成を有する。推定粒度決定部４１Ａは、首角度取得部２２からの首角度に加え、接触センサ２７からの接触検出信号及び距離センサ２８からの距離信号の少なくとも一方に基づいて観測状況（又は、観測環境）を判断し、この観測状況に基づいて推定粒度を決定する。
【００５５】
上記第１実施例では、首角度取得部２２が観測状況取得部を形成しているが、本実施例では、首角度取得部２２、接触センサ２７及び距離センサ２８が観測状況取得部を形成している。
【００５６】
本実施例においても、上記第１実施例の場合と同様にα≠１のパーティクルも一定の尤度ｗ２を与えるがｗ２＞ｗ１とすることにより、顔が観測されない場合は徐々に視界外のパーティクルが増加する。尤度計算では、視界内にいても顔が検出できない場合等もあるため、本実施例では例えば接触センサ２７からの接触検出信号に基づいて観測尤度を変更することができる。
【００５７】
又、顔検出の他に、接触センサ２７及び距離センサ２８の少なくとも一方を使用することで、尤度計算に反映できる。例えばロボット３０１の右方向、又は、左方向に接触反応がある場合、視界より右で近距離に存在、又は、視界より左で近距離に存在するパーティクルの観測尤度を高くすることができる。ロボット３０１からの近距離は、例えば接触センサ２７からの接触検出信号が接触を示す場合、或いは、距離センサ２８からの距離信号が一定値未満を示す場合に検出可能である。一方、ロボット３０１からの遠距離は、例えば接触センサ２７からの接触検出信号が非接触を示す場合、或いは、距離センサ２８からの距離信号が一定値以上を示す場合に検出可能である。又、距離センサ２８により観測対象である人物以外の障害物までの距離を検出可能な場合には、人物の位置推定の尤度計算の際に、検出された障害物よりロボット３０１に近い位置についてはパーティクルの観測尤度を低くすることができる。
【００５８】
これにより、人物の観測値が比較的少ない状況下でも、本実施例によればコミュニケーション対象の位置を比較的簡単、且つ、正確に推定することができるので、例えば適切なタイミングでアイコンタクトを行うようにコミュニケーションロボットを制御することも可能となる。
【００５９】
（第３実施例）
上記の各実施例では、尤度計算方法が推定粒度に応じて異なるため、計算された尤度の比較が難しい場合もあり得る。このような場合には、リサンプリングを各推定粒度毎に行っても良い。リサンプリングを行う場合、推定される各人物がどの推定粒度で推定されるのが妥当であるかを示す尤度を計算し、この尤度の重みによりリサンプリングで生成される各推定粒度のパーティクルの個数を決定しても良い。
【００６０】
図８は、本発明の第３実施例におけるロボットの一例を示すブロック図である。図８中、図１と同一部分には同一符号を付し、その説明は省略する。
【００６１】
図８において、コミュニケーションロボット４０１は、ロボット本体１１及び推定処理部４０Ｂを有する。推定処理部４０Ｂには、推定粒度毎のリサンプリング部４５−１〜４５−Ｎ、尤度計算部４７、及びリサンプリング数決定部４８が含まれる。
【００６２】
尤度計算部４７は、顔領域検出部１２の出力に基づいて、観測対象の人物がどの推定粒度で推定されるのが妥当であるかを示す尤度を所定のアルゴリズムに基づいて計算する。リサンプリング数決定部４８は、尤度計算部４７で計算された尤度の重みにより、推定粒度毎のリサンプリング部４５−１〜４５−Ｎで生成される各推定粒度のパーティクルの個数、即ち、各粒度のパーティクルがリサンプリング後にいくつになるかを決定する。尤度計算部４７及びリサンプリング数決定部４８は、観測対象がどの推定粒度で推定されるのが妥当であるかを示す尤度の重みにより推定粒度毎のリサンプリング部４５−１〜４５−Ｎで生成される各推定粒度のパーティクルの個数を決定する個数決定部の一例である。
【００６３】
推定粒度毎の観測尤度計算部４４−１〜４４−Ｎで計算された推定粒度毎の観測尤度は、推定粒度毎のリサンプリング部４５−１〜４５−Ｎに供給される。リサンプリング部４５−１〜４５−Ｎは、生成される各推定粒度のパーティクルの個数がリサンプリング数決定部４８で決定された個数となるように、推定粒度毎に、計算された推定粒度毎の観測尤度でパーティクルをリサンプリングする。リサンプリング部４５−１〜４５−Ｎによるリサンプリングの結果は、推定粒度決定部４１にフィードバックされると共に、位置推定部４６に供給される。
【００６４】
本実施例によれば、例えば上記第１実施例では尤度計算方法が推定粒度に応じて異なるために計算された尤度の比較が難しいような場合にも対応可能となる。
【００６５】
図９は、コンピュータシステムの一例を示すブロック図である。図９に示すコンピュータシステム１００は、ＣＰＵ１０１、記憶部１０２、インタフェース（Ｉ／Ｆ）１０３、入力装置１０４、及び表示部１０５がバス１０６により接続された構成を有する。ＣＰＵ１０１は、記憶部１０２に格納されたプログラムを実行することによりコンピュータシステム１００全体を制御する。記憶部１０２は、半導体記憶装置、磁気記録媒体、光記録媒体、光磁気記録媒体等で形成可能であり、上記のプログラムや各種データを格納すると共に、ＣＰＵ１０１が実行する演算の中間結果や演算結果等を一時的に格納する一時メモリとしても機能する。Ｉ／Ｆ１０３は、カメラ２１からの撮像画像を受信したり、記憶部１０２に格納するデータをネットワーク（図示せず）から受信することができる。入力装置１０４は、キーボード等により形成可能である。表示部１０５は、ディスプレイ等により形成可能である。入力装置１０４及び表示部１０５は、タッチパネルのように入力装置と表示部の両方の機能を有する入出力装置で形成しても良い。入力装置１０４は、ユーザがロボット２０１（又は、３０１、又は、４０１）に指示等を入力する必要がない場合には省略可能であり、表示部１０５は、ロボット２０１（又は、３０１、又は、４０１）がユーザに対してメッセージ等を表示する必要がない場合には省略可能である。又、表示部１０５の代わりに、音声出力部（図示せず）を設けてユーザに対するメッセージ等を音声で出力するようにしても良いことは言うまでもない。
【００６６】
ＣＰＵ１０１は、記憶部１０２に格納されたプログラムを実行することにより、コンピュータシステム１００をロボット２０１（又は、３０１、又は、４０１）として機能させる。つまり、プログラムは、ＣＰＵ１０１にロボット２０１（又は、３０１、又は、４０１）の各部の機能を実現させる。言い換えると、プログラムは、ＣＰＵ１０１に少なくともロボット２０１（又は、３０１、又は、４０１）の位置推定処理の手順を実行させるものであり、記憶部１０２を含む適切なコンピュータ読み取り可能な記憶媒体に格納されていても良い。従って、ＣＰＵ１０１は、例えば図２、図５及び図６の処理を含む上記の各実施例の処理を実行可能である。
【００６７】
上記の各実施例によれば、位置推定処理の結果を利用することで、コミュニケーションロボットは任意のタイミングで任意のユーザとアイコンタクトを取れるので、コミュニケーションロボットとユーザ間のコミュニケーションがスムーズに行え、より自然な対人動作（Interactive Operation）が可能となる。ここで、コミュニケーションとは、言語による対話に限らない。ユーザの推定位置の確度を保つために、コミュニケーションロボットが時々ユーザに視線を向ける動作も、例えば幼児が遊びながら時折母親の存在を確認する動作に似た動作となり、ロボットの動作が非常に自然になる。又、コミュニケーションロボットの動作に対するユーザの表情等をすぐ確認することができる等、コミュニケーションに必要なセンシング（Sensing）性能が向上し、コミュニケーションロボットの基本性能の大幅な向上につながる。
【００６８】
尚、上記の各実施例では、カメラ２１はパン、チルト、及びロールが可能であるため、直交する３軸（例えば、ｘｙｚ座標系のｘ軸、ｙ軸、及びｚ軸）を中心に回転可能であるため、互いに直交する３軸（例えば、ｘｙｚ座標系のｘ軸、ｙ軸及びｚ軸）を中心に回転可能である。しかし、ユーザの位置を推定できるのであれば、カメラ２１は少なくとも１軸を中心に回転可能であれば良い。
【００６９】
又、パーティクルの値によって推定粒度を決定する場合、サンプリング前ではなく、サンプリング後に推定粒度を変更しても良い。
【００７０】
（変形例）
複数の顔を観測して複数の人物の位置を推定する場合、先ずどの顔がどの人物かを推定した後に、各顔に対して詳細位置の観測尤度を決定すれば良い。顔と人物の推定方法は、例えばパーティクルの平均位置と分散から、観測した人物と推定中の人物とが対応する尤度を求めても良い。全ての人物と顔との組み合わせに関して尤度の合計値を計算し、尤度の合計値が一番高い組み合わせを採用する等の推定方法を採用しても良い。顔に対して対応する人物がいない場合は、検出されていない新たな人物であると推定することもできる。
【００７１】
画像処理を含む処理の場合、画像の内容等に応じて処理時間にばらつきが生じる。そこで、処理時間にばらつきが生じる可能性がある場合は、状態遷移の確率に経過時間を反映すれば良い。大まかな状態の遷移の場合、例えば以下のように遷移確率を決定できる。
【００７２】
【数１】
0005703801.tif 000002
ここで、Ｐは遷移確率、ａは遷移のしやすさを表す正の定数、ｔは経過時間である。この遷移確率Ｐは、どの時刻からも一定時間で状態遷移する確率が一定であり、無限時間経過時に遷移確率Ｐが１となる仮定の遷移確率である。詳細位置の情報に関しては、速度情報と経過時間を含めることにより、経過時間を反映できる。
【００７３】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
少なくとも１軸を中心に回転可能なカメラと、
前記カメラからの撮像画像から観測対象の人物の領域を検出する人物領域検出部と、
前記カメラの前記少なくとも１軸を中心とした回転角度を含む観測状況を取得する観測状況取得部と、
前記人物領域検出部で検出された人物の領域に対して、前記観測状況に基づいて複数の推定粒度の情報を有するパーティクルの推定粒度を変更し、各推定粒度を用いて前記観測対象の位置を推定する推定処理部
を備えた、ロボット。
（付記２）
前記観測状況は、パーティクルの表す詳細位置を示す第１のパラメータと、現在の概略位置を前記観測対象が前記カメラの視界内にあるか、或いは、視界外にあるかで示す第２のパラメータを含む、付記１記載のロボット。
（付記３）
前記第２のパラメータは、前記カメラの視界内を示す値、前記観測対象が視界より右側に存在することを示す値、前記観測対象が視界より左側に存在することを示す値、及び前記観測対象がその場には存在しないことを示す値のいずれかを有する、付記２記載のロボット。
（付記４）
前記推定処理部は、
前記観測状況に基づいて、前記検出された前記観測対象の顔領域のパーティクルの推定粒度を決定する推定粒度決定部と、
ある推定粒度の推定値を前記決定された推定粒度の推定値に変換する推定値変換部と、
前記変換された推定値に基づいて、パーティクルを推定粒度毎にサンプリングしてサンプリングされたパーティクルを夫々の推定粒度で状態遷移させる複数のサンプリング部と、
前記サンプリングされたパーティクルが夫々の推定粒度での推定値の妥当性を示す推定粒度毎の観測尤度を計算する複数の観測尤度計算部と、
前記計算された推定粒度毎の観測尤度によりパーティクルをリサンプリングするリサンプリング部
を有する、付記１乃至３のいずれか１項記載のロボット。
（付記５）
前記推定処理部は、前記リサンプリングの結果に基づいて前記観測対象の位置を推定する位置推定部を更に有し、前記リサンプリングの結果は前記推定粒度決定部にフィードバックされる、付記４記載のロボット。
（付記６）
前記推定処理部は、
前記観測状況に基づいて、前記検出された前記観測対象の顔領域のパーティクルの推定粒度を決定する推定粒度決定部と、
ある推定粒度の推定値を前記決定された推定粒度の推定値に変換する推定値変換部と、
前記変換された推定値に基づいて、パーティクルを推定粒度毎にサンプリングしてサンプリングされたパーティクルを夫々の推定粒度で状態遷移させる複数のサンプリング部と、
前記サンプリングされたパーティクルが夫々の推定粒度での推定値の妥当性を示す推定粒度毎の観測尤度を計算する複数の観測尤度計算部と、
前記計算された推定粒度毎の観測尤度によりパーティクルを推定粒度毎にリサンプリングする複数のリサンプリング部と、
前記観測対象がどの推定粒度で推定されるのが妥当であるかを示す尤度の重みにより前記複数のリサンプリング部で生成される各推定粒度のパーティクルの個数を決定する個数決定部
を有する、付記１乃至３のいずれか１項記載のロボット。
（付記７）
前記推定処理部は、パーティクルのサンプリング前又はサンプリング後にパーティクルの値によって推定粒度を変更する、付記６記載のロボット。
（付記８）
前記ロボットと前記観測対象の接触を検出して接触検出信号を出力する接触センサと、
前記ロボットと前記観測対象間の距離を測定して測定された距離を示す距離信号を出力する距離センサを更に備え、
前記推定処理部で用いる観測状況は、前記接触検出信号及び前記距離信号の少なくとも一方を含む、付記１乃至５のいずれか１項記載のロボット。
（付記９）
前記位置推定部により推定された前記観測対象の位置の不確実さの評価に基づいて観測方針を決定する観測方針決定部を更に備えた、付記５記載のロボット。
（付記１０）
前記観測方針に基づいて前記カメラの前記少なくとも１軸に対する回転位置を制御する制御部を更に備えた、付記９記載のロボット。
（付記１１）
少なくとも１軸を中心に回転可能なカメラの撮像画像から観測対象の人物の領域を人物領域検出部により検出する検出工程と、
前記カメラの前記少なくとも１軸を中心とした回転角度を含む観測状況を観測状況取得部により取得する取得工程と、
検出された前記人物の領域に対して、推定処理部により、取得された前記観測状況に基づいて複数の推定粒度の情報を有するパーティクルの推定粒度を変更し、各推定粒度を用いて前記観測対象の位置を推定する推定処理工程
を含む、位置推定方法。
（付記１２）
前記観測状況は、パーティクルの表す詳細位置を示す第１のパラメータと、現在の概略位置を前記観測対象が前記カメラの視界内にあるか、或いは、視界外にあるかで示す第２のパラメータを含む、付記１１記載の位置推定方法。
（付記１３）
前記第２のパラメータは、前記カメラの視界内を示す値、前記観測対象が視界より右側に存在することを示す値、前記観測対象が視界より左側に存在することを示す値、及び前記観測対象がその場には存在しないことを示す値のいずれかを有する、付記１２記載の位置推定方法。
（付記１４）
前記推定処理工程は、
前記観測状況に基づいて、前記検出された前記観測対象の顔領域のパーティクルの推定粒度を推定粒度決定部により決定する決定工程と、
ある推定粒度の推定値を推定値変換部により前記決定された推定粒度の推定値に変換する変換工程と、
前記変換された推定値に基づいて、サンプリング部によりパーティクルを推定粒度毎にサンプリングしてパーティクルを夫々の推定粒度で状態遷移させるサンプリング工程と、
前記サンプリングされたパーティクルが夫々の推定粒度での推定値の妥当性を示す推定粒度毎の観測尤度を観測尤度計算部により計算する計算工程と、
前記計算された推定粒度毎の観測尤度によりパーティクルをリサンプリング部によりリサンプリングするリサンプリング工程
を含む、付記１１乃至１３のいずれか１項記載の位置推定方法。
（付記１５）
前記推定処理工程は、位置推定部により、前記リサンプリングの結果に基づいて前記観測対象の位置を推定する推定工程を更に含み、前記リサンプリングの結果は前記決定工程で用いる前記推定粒度決定部にフィードバックされる、付記１４記載の位置推定方法。
（付記１６）
前記推定処理工程は、
前記観測状況に基づいて、前記検出された前記観測対象の顔領域のパーティクルの推定粒度を推定粒度決定部により決定する決定工程と、
ある推定粒度の推定値を推定値変換部により前記決定された推定粒度の推定値に変換する変換工程と、
前記変換された推定値に基づいて、サンプリング部によりパーティクルを推定粒度毎にサンプリングしてパーティクルを夫々の推定粒度で状態遷移させるサンプリング工程と、
前記サンプリングされたパーティクルが夫々の推定粒度での推定値の妥当性を示す推定粒度毎の観測尤度を観測尤度計算部により計算する計算工程と、
前記計算された推定粒度毎の観測尤度によりパーティクルをリサンプリング部により推定粒度毎にリサンプリングするリサンプリング工程と、
前記観測対象がどの推定粒度で推定されるのが妥当であるかを示す尤度の重みにより前記リサンプリング工程で生成される各推定粒度のパーティクルの個数を決定する個数決定工程
を含む、付記１１乃至１３のいずれか１項記載の位置推定方法。
（付記１７）
前記推定処理工程は、パーティクルのサンプリング前又はサンプリング後にパーティクルの値によって推定粒度を変更する、付記１６記載の位置推定方法。
（付記１８）
前記推定処理工程で用いる観測状況は、前記ロボットと前記観測対象の接触を検出する接触センサから出力される接触検出信号及び前記ロボットと前記観測対象間の距離を測定する距離センサから出力される距離信号の少なくとも一方を含む、付記１１乃至１５のいずれか１項記載の位置推定方法。
（付記１９）
コンピュータに観測対象の位置を推定させる位置推定処理を実行させるプログラムであって、
少なくとも１軸を中心に回転可能なカメラの撮像画像から観測対象の人物の領域を検出する人物領域検出手順と、
前記カメラの前記少なくとも１軸を中心とした回転角度を含む観測状況を取得する観測状況取得手順と、
検出された前記人物の領域に対して、取得された前記観測状況に基づいて複数の推定粒度の情報を有するパーティクルの推定粒度を変更し、各推定粒度を用いて前記観測対象の位置を推定する推定処理手順
を前記コンピュータに実行させる、プログラム。
（付記２０）
前記観測状況は、パーティクルの表す詳細位置を示す第１のパラメータと、現在の概略位置を前記観測対象が前記カメラの視界内にあるか、或いは、視界外にあるかで示す第２のパラメータを含む、付記１９記載のプログラム。
（付記２１）
前記第２のパラメータは、前記カメラの視界内を示す値、前記観測対象が視界より右側に存在することを示す値、前記観測対象が視界より左側に存在することを示す値、及び前記観測対象がその場には存在しないことを示す値のいずれかを有する、付記２０記載のプログラム。
（付記２２）
前記推定処理手順は、
前記観測状況に基づいて、前記検出された前記観測対象の顔領域のパーティクルの推定粒度を決定する決定手順と、
ある推定粒度の推定値を前記決定された推定粒度の推定値に変換する変換工程と、
前記変換された推定値に基づいて、パーティクルを推定粒度毎にサンプリングしてパーティクルを夫々の推定粒度で状態遷移させるサンプリング手順と、
前記サンプリングされたパーティクルが夫々の推定粒度での推定値の妥当性を示す推定粒度毎の観測尤度を計算する計算手順と、
前記計算された推定粒度毎の観測尤度によりパーティクルをリサンプリングするリサンプリング手順
を含む、付記１９乃至２１のいずれか１項記載のプログラム。
（付記２３）
前記推定処理手順は、前記リサンプリングの結果に基づいて前記観測対象の位置を推定する推定手順を更に含み、前記サンプリングの結果は前記決定手順にフィードバックされる、付記２２記載のプログラム。
（付記２４）
前記推定処理手順は、
前記観測状況に基づいて、前記検出された前記観測対象の顔領域のパーティクルの推定粒度を決定する決定手順と、
ある推定粒度の推定値を前記決定された推定粒度の推定値に変換する変換工程と、
前記変換された推定値に基づいて、パーティクルを推定粒度毎にサンプリングしてパーティクルを夫々の推定粒度で状態遷移させるサンプリング手順と、
前記サンプリングされたパーティクルが夫々の推定粒度での推定値の妥当性を示す推定粒度毎の観測尤度を計算する計算手順と、
前記計算された推定粒度毎の観測尤度によりパーティクルを推定粒度毎にリサンプリングするリサンプリング手順と、
前記観測対象がどの推定粒度で推定されるのが妥当であるかを示す尤度の重みにより前記リサンプリング手順で生成される各推定粒度のパーティクルの個数を決定する個数決定手順
を含む、付記１９乃至２１のいずれか１項記載のプログラム。
（付記２５）
前記推定処理手順は、パーティクルのサンプリング前又はサンプリング後にパーティクルの値によって推定粒度を変更する、付記２４記載のプログラム。
（付記２６）
前記推定処理手順で用いる観測状況は、前記コンピュータと前記観測対象の接触の有無を示す接触検出信号及び前記コンピュータと前記観測対象間の距離を示す距離信号の少なくとも一方を含む、付記１９乃至２３のいずれか１項記載のプログラム。
【００７４】
以上、開示の位置推定方法、ロボット及びプログラムを実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
【符号の説明】
【００７５】
１      コミュニケーションロボット
１１      ロボット本体
１２      顔領域検出部
１３      前景領域抽出部
１４      画像生成部
１５      画像予測部
１６      画像比較部
１７，４６      位置推定部
１８      観測方針決定部
１９      首制御部
２１      カメラ
２２      首角度取得部
２３      首回転駆動部
２７      接触センサ
２８      距離センサ
４０      推定処理部
４１      推定粒度決定部
４２      推定値変換部
４３−１〜４３−Ｎ      サンプリング部
４４−１〜４４−Ｎ      観測尤度計算部
４５，４５−１〜４５−Ｎ      リサンプリング部
４７      尤度計算部
４８      リサンプリング数決定部
１０１      ＣＰＵ
１０２      記憶部
【図１】
0005703801.tif 000003
【図２】
0005703801.tif 000004
【図３】
0005703801.tif 000005
【図４】
0005703801.tif 000006
【図５】
0005703801.tif 000007
【図６】
0005703801.tif 000008
【図７】
0005703801.tif 000009
【図８】
0005703801.tif 000010
【図９】
0005703801.tif 000011