説明

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

【課題】ロボット、位置推定方法及びプログラムにおいて、比較的簡単、且つ、正確に観測対象であるユーザの位置を推定することを目的とする。
【解決手段】少なくとも1軸を中心に回転可能なカメラの撮像画像から観測対象と推定される観測対象らしき画像の観測値を画像生成部により計算し、観測対象の位置の過去の推定結果と現在の前記カメラの姿勢に基づいて観測対象らしき画像の予測値を画像予測部により計算し、画像比較部により前記観測値と前記予測値を比較して前記観測値と前記予測値の一致度を尤度として計算し、前記尤度に基づいて前記観測対象の位置を位置推定部により推定するように構成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パン(Pan)及びチルト(Tilt)可能なカメラを用いて人物の位置を推定するロボット、位置推定方法及びプログラムにに関する。
【背景技術】
【0002】
人型又はペット型のコミュニケーションロボット(以下、単にロボットと言う)では、ユーザに親近感を与えるためにユーザとのアイコンタクトを取ることが望ましい。ロボットがユーザとアイコンタクトを取るためには、ロボットがユーザと目を合わせるようにロボットの首を動かす機能を設ける必要である。この機能は、例えばロボットの目や鼻の位置に設置したカメラでユーザの顔を撮像し、ユーザの顔が撮像画像の中央に位置するように首を制御する方法等で実現できる。
【0003】
しかし、ロボットがユーザとコミュニケーションを取っている最中にロボットがある仕草をしたり、ユーザ以外の物に視線を移したり、他のタスクに首やカメラを利用したい場合がある。このような場合にも、ロボットがユーザと自然なコミュニケーションを取るためには、ロボットが適切なタイミングでユーザとアイコンタクトを取ることが望ましいが、ロボットが実行しているタスクによってはユーザがロボットの視界から外れてしまう場合もある。このような場合でもロボットがユーザとスムーズにアイコンタクトを取るためには、ユーザが視界から外れた場合や、ユーザの一部しか視界に入っていない場合等にも、ユーザを観察することでユーザの位置を推定する必要がある。
【0004】
従来、ロボットに設けたアレイマイクによる音源検知によりユーザの位置を推定し、推定した位置に応じてロボットの首を動かしてユーザとアイコンタクトを取る方法が提案されている。しかし、この方法では、ロボットは、ユーザが発声しないと、ユーザの位置を推定できないのでアイコンタクトを取ることもできない。又、ロボットが使用される環境によっては、音の反射等のノイズによりユーザの位置を正確に推定することは難しい。
【0005】
一方、人物のシルエット画像と、シルエット画像をシミュレートしたシミュレーション画像の一致度を尤度としたパーティクルフィルタを、観測対象であるユーザに対して構成する方法が提案されている(特許文献1)。しかし、ロボットの目や鼻の位置に設置したカメラで撮像した撮像画像に基づいてユーザの位置を推定する方法では、ロボットの首の姿勢(即ち、カメラの姿勢)によって視野が変化するので背景も変化する。このため、首の特定の姿勢でカメラが撮像して用意された背景画像と、首の異なる姿勢でカメラが撮像した観測画像との比較演算により背景差分を求めて観測画像中のユーザを追跡するのでは、背景が変化すると背景差分からユーザの位置を正確に推定することは難しい。又、ロボットの首の姿勢にかかわらずユーザの位置を推定可能にする背景差分を求めるには、予め膨大な量の背景画像を用意しておく必要があると共に、背景差分を求めるのに膨大な量の比較演算を行う必要があり、比較演算を実行するプロセッサへの負荷も大きくなる。
【0006】
カメラが撮像した観測画像の中からユーザの顔を認識することでユーザの位置を推定する方法もあるが、顔の認識には複雑な演算が必要であり、演算を実行するプロセッサへの負荷も大きい。又、ユーザの顔は、ある角度範囲でカメラの方を向いていないと例えば目、鼻や口といった顔の顕著な特徴がカメラの撮像画像に含まれないため顔と認識されず、顔の認識結果に基づいてユーザの位置を正確に推定することは難しい。
【0007】
例えば、色ヒストグラムを用いて対象物を追跡又は検出する技術も提案されている(特許文献2、特許文献3及び特許文献4)。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特許第3664784号公報
【特許文献2】特開平11−136664号公報
【特許文献3】特開2002−247440号公報
【特許文献4】特表2006−508461号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
従来の位置推定方法では、比較的簡単、且つ、正確に観測対象であるユーザの位置を推定することは難しいという問題があった。
【0010】
そこで、本発明は、比較的簡単、且つ、正確に観測対象であるユーザの位置を推定することができるロボット、位置推定方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明の一観点によれば、少なくとも1軸を中心に回転可能なカメラと、前記カメラの撮像画像から観測対象と推定される観測対象らしき画像の観測値を計算する画像生成部と、観測対象の位置の過去の推定結果と現在の前記カメラの姿勢に基づいて観測対象らしき画像の予測値を計算する画像予測部と、前記観測値と前記予測値を比較して前記観測値と前記予測値の一致度を尤度として計算する画像比較部と、前記尤度に基づいて前記観測対象の位置を推定する位置推定部を備えたロボットが提供される。
【0012】
本発明の一観点によれば、少なくとも1軸を中心に回転可能なカメラの撮像画像から観測対象と推定される観測対象らしき画像の観測値を画像生成部により計算する画像生成工程と、観測対象の位置の過去の推定結果と現在の前記カメラの姿勢に基づいて観測対象らしき画像の予測値を画像予測部により計算する画像予測工程と、画像比較部により前記観測値と前記予測値を比較して前記観測値と前記予測値の一致度を尤度として計算する画像比較工程と、前記尤度に基づいて前記観測対象の位置を位置推定部により推定する位置推定工程を含む位置推定方法が提供される。
【0013】
本発明の一観点によれば、コンピュータに観測対象の位置を推定させる位置推定処理を実行させるプログラムであって、少なくとも1軸を中心に回転可能なカメラの撮像画像から観測対象と推定される観測対象らしき画像の観測値を計算して記憶部に格納する画像生成手順と、観測対象の位置の過去の推定結果と現在の前記カメラの姿勢に基づいて観測対象らしき画像の予測値を計算して前記記憶部に格納する画像予測手順と、前記観測値と前記予測値を比較して前記観測値と前記予測値の一致度を尤度として計算して前記記憶部に記憶する画像比較手順と、前記尤度に基づいて前記観測対象の位置を推定する位置推定手順を前記コンピュータに実行させるプログラムが提供される。
【発明の効果】
【0014】
開示のロボット、位置推定方法及びプログラムによれば、比較的簡単、且つ、正確に観測対象であるユーザの位置を推定することができる。
【図面の簡単な説明】
【0015】
【図1】本発明の一実施例におけるロボットの一例を示すブロック図である。
【図2】パーティクルフィルタを用いた予測画像の計算を説明する図である。
【図3】顔を円形、体を楕円形で表現したテンプレートにより予測画像を生成する例を説明する図である。
【図4】顔領域とテンプレート領域の一例を示す図である。
【図5】観測画像から人物らしき画像を生成する処理を説明するフローチャートである。
【図6】20×20画素のブロックに対する色ヒストグラムの一例を示す図である。
【図7】色ヒストグラムを用いた前景領域の抽出において、バタチャリア距離を用いて前景らしき多値化画像を算出した結果を示す図である。
【図8】ロボットの動作を説明するフローチャートである。
【図9】図8のステップS13〜S15の処理をより詳細に説明するフローチャートである。
【図10】図8のステップS24の処理をより詳細に説明するフローチャートである。
【図11】コンピュータシステムの一例を示すブロック図である。
【発明を実施するための形態】
【0016】
開示のロボット、位置推定方法及びプログラムでは、少なくとも1軸を中心に回転可能なカメラの撮像画像から抽出された観測対象らしき画像(又は、人物と推定される画像)の観測値を計算し、観測対象の位置の過去の推定結果とカメラの姿勢に基づいて観測対象らしき画像の予測値を計算し、観測対象らしき画像の観測値と予測値の比較結果から計算した尤度に基づいて観測対象の位置を推定する。
【0017】
観測対象の位置の推定結果は、不確実さ等の評価に基づいてカメラの姿勢を制御するのに使用できる。
【0018】
以下に、開示のロボット、位置推定方法及びプログラムの各実施例を図面と共に説明する。
【実施例】
【0019】
図1は、本発明の一実施例におけるロボットの一例を示すブロック図である。本実施例では、本発明が人型コミュニケーションロボットに適用されている。
【0020】
コミュニケーションロボット1は、図1に示す如く接続されたロボット本体11、顔領域検出部12、前景領域抽出部13、人物らしき画像を生成する画像生成部14、人物らしき画像を予測する画像予測部15、人物らしき画像を比較する画像比較部16、人物の位置を推定する位置推定部17、観測方針決定部18、及びロボット1の首の回転を制御する首制御部19を有する。尚、ロボット本体11は、ロボット1を歩行可能、或いは、走行可能とする周知の移動機構(図示せず)を有しても良いことは言うまでもない。
【0021】
ロボット本体11は、パン(Pan)及びチルト(Tilt)可能なカメラ21、首角度(又は、姿勢)取得部22及び首回転駆動部23を有する。カメラ21は、所謂首振り可能な周知の構造を有し、例えばロボット本体11の目や鼻の位置に設けられており、ロボット1から見える画像を撮像する。カメラ21のパン軸を中心としたパン及びチルト軸を中心としたチルト(以下、単にパン・チルトと言う)は首回転駆動部23により周知の方法で制御される。又、首角度取得部22は、カメラ21の首角度、即ち、カメラ21の姿勢を周知の方法で取得する。カメラ21の首角度は、パン角及びチルト角を含む。
【0022】
顔領域検出部12は、カメラ21からの撮像画像から、ロボット1がコミュニケーションを取るべきユーザ(即ち、観測対象)の顔領域を抽出する。後述するように、顔領域検出部12は、ユーザの顔らしき領域(即ち、顔領域)を検出するものであり、ユーザの顔を認識する個人認証を行うものではない。前景領域抽出部13は、カメラ21からの撮像画像から、前景領域を抽出する。画像生成部14は、抽出された顔領域及び前景領域に基づいて、人物らしき画像、即ち、ユーザらしき画像を生成する。一方、画像予測部15は、首角度取得部22が取得した首角度と位置推定部17からの人物の位置の過去の推定結果に基づいて、人物らしき画像、即ち、ユーザらしき画像を予測する。画像比較部16は、画像生成部14で生成された画像(又は、観測値)と画像予測部15で予測された予測画像(又は、予測値)を比較して、比較結果を位置推定部17に出力する。例えば、画像比較部16は、比較する観測画像と予測画像の一致度を尤度とする周知のパーティクルフィルタを有し、尤度を含む比較結果を位置推定部17に出力する。
【0023】
パーティクルフィルタは、観測対象の状態の連続的な事後確率密度分布を離散化して、パーティクルセット(Particle Set)と呼ばれるサンプル集団の各メンバーの状態に対して、観測結果との整合性を逐次的に評価してリサンプリング(Resampling)を行う。これにより、パーティクルでシミュレーションした事後確率密度分布を、真の確率密度分布に収束させる。
【0024】
位置推定部17は、画像比較部16からの比較結果に基づいて人物の位置、即ち、ユーザの位置を推定する。観測方針決定部18は、推定されたユーザの位置の不確実さ等の評価に基づいて、ユーザの観測方針、即ち、ユーザをどのような規則(又は、ルール)に基づいて観測するかを決定する。例えば、観測方針がユーザの位置を確認する頻度に関するものであれば、推定されたユーザの位置と前回推定されたユーザの位置の間の距離が閾値以内であればユーザの位置の確認頻度を第1の時間毎に設定し、閾値を超える場合には確認頻度を第1の時間より短い第2の時間毎に設定する。首制御部19は、観測方針決定部18で決定された観測方針に基づいて首回転駆動部23を制御することで、ユーザがカメラ21の視界に入るようにカメラ21の姿勢を制御する。
【0025】
顔領域検出部12、前景領域抽出部13、画像生成部14、画像予測部15、画像比較部16、位置推定部17、観測方針決定部18、及び首制御部19のうち少なくとも一部はロボット1に対して外付けされていても良い。この場合、ロボット1に対して外付けされる部分は、ロボット1に設けた適切なインタフェース(図示せず)を介してロボット1と接続される。ロボット1と外付けされる部分とは、例えば無線ネットワーク(図示せず)を介して周知の方法で通信可能とすれば良い。つまり、ロボット1の首回転駆動部23等は、リモートに制御されるものであっても良い。
【0026】
画像予測部15は、首角度取得部22が取得した首角度に基づいて、例えば周知のパーティクルフィルタ(Particle Filter)を用いてユーザらしき画像を予測する予測画像を計算する。図2は、パーティクルフィルタを用いた予測画像の計算を説明する図である。図2において、ユーザ30の位置は、図2に示すパラメータd,h,θで表される。パラメータdは、ロボット1のカメラ21(又は、首)のパン軸からユーザ30までの最短距離を示し、この例ではユーザ30の体32の位置までの距離である。パラメータhは、ロボット1のカメラ21の基準位置から顔31の中心までの高さを示す。パラメータθは、カメラ21の定位置の視線FYと上記最短距離dの方向がなす角度を示す。
【0027】
図2の例では、ロボット1は熊のぬいぐるみの形をしたペット型のコミュニケーションロボットである。例えば、カメラ21は熊の目(又は鼻)に設置されており、首回転駆動部23は熊の首の部分に設けられており、首角度取得部22は熊の胴体部分に設けられている。
【0028】
予測画像は、ユーザ30の顔31の推定位置と、人物のシルエットを表す人型テンプレートから生成することができる。この場合、水平方向及び垂直方向の各々の1°当たりの画素数をα,βとすると、画像中の顔31の座標(uf, vf)は、画像中心の座標を(uc, vc)、パン・チルト角を夫々pan, tilt、パン軸及びチルト軸とカメラ21の光学中心(又は、光軸)との距離を夫々a,
b、パン軸とチルト軸の光軸方向の距離をcで示すと、次のような式に基づいて計算することができる。この例では、パン軸はロボット1が設置される水平面に対して垂直であり、チルト軸は水平面と平行でありパン軸と直交する。
【0029】
uf=uc+α×atan(d×sin(θ-pan)/(d×cos(θ-pan)-a))
vf=vc+β×atan(d×(atan(h/d)-tilt)/((d-c)×cos(atan(h/d)-tilt)-b))
【0030】
特に、パラメータa,b,cが無視できる程度に小さい場合には、次の式のように計算を簡略化することができる。
【0031】
uf=uc+α×(θ-pan)
vf=vc+β×(atan(h/d)-tilt)
【0032】
図3は、顔を円形、体を楕円形で表現したテンプレートにより予測画像を生成する例を説明する図である。厳密には、チルト角によって人物の形が変化するが、この例では説明の便宜上、大まかな推定しか要求されておらず、人物の形の変化に起因する誤差は無視できるとする。図3に示す定型の人型テンプレート30Aは、(vf, uf)を基点としており、円形の顔テンプレート部31A及び楕円形の体テンプレート部32Aを有する。ここでは、ユーザ30のカメラ21からの距離dに応じて人型テンプレート30Aの大きさを変化させる。
【0033】
カメラ21が撮像して観測された画像から人物らしさの度合いを表す画像を生成する際には、幾つかの異なる生成方法の組み合わせを採用する。これは、カメラ21のパン・チルトのため、顔31等のユーザの顕著な特徴がカメラ21の視界に入らないこともあり得るからである。例えば、以下のような指標又は判定基準JR1〜JR3の少なくとも一つに基づいて観測画像から人物らしき画像を生成するようにしても良い。
【0034】
(JR1)顔領域31Bを検出した場合、顔領域31Bは人物らしさの度合い(又は、確率)が極めて高い。
【0035】
(JR2)顔領域31Bを基点とした上記と同様の人型テンプレート30Aの領域は人物らしさの度合い(又は、確率)が高い。
【0036】
(JR3)前景領域抽出部13において前景として抽出された領域(即ち、前景領域)は、背景とされた領域(即ち、背景領域)よりも人物らしさの度合い(又は、確率)が高い。
【0037】
図4は、顔領域とテンプレート領域の一例を示す図である。図4において、顔領域31を検出すると、顔領域31Bの画像を基点とした体領域32Bを含む人型領域30Bは人物らしさが極めて高いことがわかる。又、体領域32B(又は、人型領域30B)の大きさは、検出した顔領域31Bの大きさに比例する。そこで、例えば表1に従って観測画像から人物らしさを示す値を決定することができる。
【0038】
【表1】

【0039】
図5は、観測画像から人物らしき画像を生成する処理を説明するフローチャートである。図5において、ステップS1は、図1の顔領域抽出部12により実行され、カメラ21からの撮像画像からユーザの顔を検出して、顔領域31Bと体領域32Bを抽出する。ステップS2は、図1の前景領域抽出部13により実行され、カメラ21からの撮像画像から前景領域を抽出する。ステップS3は、図1の画像生成部14により実行され、抽出された顔領域31B及び前景領域に基づいて各画素の値を表1に従って決定し、人物らしき画像、即ち、ユーザらしき画像を生成する。
【0040】
ステップS2において前景領域を抽出する際には、ロボット1の首の可動範囲全域において、撮像画像を適切な複数のブロック(又は、区域)に分割して分割された各ブロックの特徴量を例えば前景領域抽出部13内の記憶部(図示せず)に記憶しておき、カメラ21が現在撮像している(即ち、現在カメラ21から見えている)領域の各ブロックの特徴量と記憶部に記憶されている該当領域のブロックの特徴量を比較し、差異がある部分を前景領域として扱う。この場合に使用する特徴量は、領域の特徴を表し、且つ、照明変化やパン・チルトの誤差等の影響を受けにくいことが望ましい。この例では、色ヒストグラムを特徴量として使用する。色ヒストグラムとは、画像を例えばHSV画像(Hue(色相)、Saturation(彩度)、Value(明度)の画像)に変換し、各画素の色相の値に関してある範囲の値域毎に出現頻度を計測した結果である。
【0041】
図6は、撮像画像中の20画素×20画素で形成された矩形ブロックに対する色ヒストグラムの一例を示す図である。図6中、(a)はカメラ21からの撮像画像を示し、(b)は(a)中の矩形ブロックについて算出した色ヒストグラムを示す。色ヒストグラムにおいて、C1〜C5は互いに異なる色成分を示す。
【0042】
背景領域を記憶部に記憶する時には、カメラ21はロボット1の首の可動範囲で撮像を行い、首の可動範囲全域に対して左右、上下とも一定角度毎に特徴量を記憶部に記憶する。記憶部に記憶する際の角度と撮像した画像の特徴量の対応付けは、現在のパン角及びチルト角(以下、パン・チルト角と言う)と、各ブロックの画像内の位置から決定できる。首の可動範囲に対する撮像画像を記憶するのではなく、特徴量を記憶部に格納するので、撮像画像を記憶する場合と比較すると記憶部に求められる記憶容量を大幅に削減可能となる。
【0043】
一方、前景領域を抽出する際には、記憶部に記憶されている背景領域の特徴量とカメラ21が現在撮像している画像の特徴量の比較に基づいて抽出する。この時、比較方法として、バタチャリア距離(Bhattacharyya Distance)や正規化相関等を用いることができる。人物らしき画像を生成する際には、この正規化相関の値やバタチャリア距離の値を利用することができる。つまり、例えば色ヒストグラムの比較で、比較に使った尺度(正規化相関やバタチャリア距離)の尺度を適切に変換した値を人物らしさの尺度に使うことができる。
【0044】
例えば、0〜1の多値化画像を求めるには、バタチャリア距離は0〜1の値をとり、バタチャリアの値が0に近い程比較対象である特徴量が似ているため、例えばバタチャリアの値をそのまま多値化画像の画素の値として利用することができる。又、0〜1の多値化画像を求めるには、正規化相関の値は−1〜1の値を取り、1に近い程比較対象である特徴量が似ているため、例えば正規化相関の値を−0.5倍した後に1を加算した値を多値化画像の画素の値として利用することができる。
【0045】
図7は、図6の如き色ヒストグラムを用いた前景領域の抽出において、バタチャリア距離を用いて前景らしき多値化画像を算出した結果を示す図である。図7中、(a)はカメラ21からの撮像画像を示し、(b)は(a)の撮像画像について算出した色ヒストグラムと記憶部に記憶されている背景部分の色ヒストグラムの比較の際にバタチャリア距離を用いて算出した多値化画像を示す。ここでは便宜上、多値化画像を黒画素で示している。
【0046】
多値化した前景情報(以下、前景度と言う)から実際に人物らしき画像を決定する方法の一例を表2に示す。この場合の処理は、図5の処理と同様の手順を行えば良い。尚、説明の便宜上、表2では前景度が0〜1に正規化されているものとする。
【0047】
【表2】

【0048】
尚、人領域の色ヒストグラムを記憶部に記憶しておき、カメラ21からの撮像画像の各ブロック(又は、各領域)内の代表的な色が人領域ではどの程度の頻度(即ち、色頻度)であるかを示す情報を利用することも考えられる。この場合、例えば表3のように人物らしさの値、即ち、顔領域31Bらしさの値及び体領域32Bらしさの値を決定すれば良い。この場合の処理も、図5の処理と同様の手順を行えば良い。表3は、カメラ21からの撮像画像から人物らしさを決定する方法の一例を示す。尚、説明の便宜上、表3では人領域(即ち、顔領域31B及び体領域32B)における色頻度は0〜1に正規化されているものとする。
【0049】
【表3】

【0050】
尚、図1の顔領域抽出部12に周知の顔識別機能が備えられている場合には、人型テンプレートを顔識別された人物毎に変更しても良い。
【0051】
又、上記の尤度を計算する際に、顔識別が利用できる場合には、識別された顔より手前に他の人物がいる確率は低いため、その条件に当てはまるパーティクルの尤度を低くしても良い
図1の画像比較部16における尤度計算を行う際、カメラ21の前に手をかざした場合等には、撮像画像の全領域が前景と判断されてしまう。このため、顔領域31Bが検出されておらず、且つ、撮像画像中の多くの領域が前景領域である場合には、観測結果を無効として何も観測されていないという扱いとしても良い。
【0052】
撮像画像だけで必要な推定精度が得られない場合には、超音波センサやアレイマイク等により、ロボット1に対してどの方向に人物がいる可能性があるかを示す情報をも尤度計算に利用しても良い。例えば、超音波センサの反応がある方向のパーティクルは尤度が高い。超音波センサやアレイマイク等は、反射を受け取ることもあるが、今回の推定結果と前回までの推定結果等を併用することにより、反射による誤検知を防ぐことができる。
【0053】
又、照明条件の大きな変化や、コミュニケーションロボットのようにカメラの姿勢が固定されていない場合は、カメラの設置位置(又は、取り付け位置)が設計位置からずれたりすることがある。このような場合には、位置推定精度が低下しないように、背景の特徴量を定期的に記憶部に記憶し直すことが有効である。このため、背景の特徴量は、人領域である確率が極めて低い領域については、記憶部に記憶し直すようにしても良い。
【0054】
人物の存在確率がある程度ばらついてきたら、その人物にカメラを向けて確認する機能設けても良い。この場合、パーティクルの平均値(即ち、顔の予測値)に向かってロボットの首を動かす。首を動かしている途中で人物が一部カメラの視界に入ったりして推定値が変化した場合には、適宜首の動かし方を変更すれば良い。これにより、カメラの視界に入らない人物の位置の推定を定期的に行い、位置推定精度を一定レベルに保つことができる。
【0055】
複数の人物を追跡する場合は、複数の人推定プログラムを動作させ、予測画像を複数の画像を足し合わせることにより作成しても良い。
【0056】
コミュニケーションロボットの場合、通りすがりの人物は検出する必要がなく、コミュニケーションロボットが対面した人物のみの位置を推定すれば良い。このため、カメラの撮像画像中、人物が存在し得ない場所で顔が検出された場合には、新たな人物の推定を開始すれば良い。
【0057】
又、パーティクルの分布が広がり、確度が落ちてきた場合には、該当する方向の様子を確認する等、確度を改善する対策を取った後に、確度が改善しないようであれば人物が立ち去ったと判断すれば良い。
【0058】
コミュニケーションロボットによる首のかしげ動作等、首がロール軸を中心としてロール方向に回転可能なカメラの場合、適切な座標変換を行った画像を入力にする。例えば、事前に撮像画像中の回転中心を求めておき、回転中心を中心として回転させた撮像画像において予測画像を生成することにより、ロール角がある場合でも人物が追跡可能となる。
【0059】
図8は、ロボット1の動作を説明するフローチャートである。図8において、ステップS11は、例えばデフォルトの設定に応じて首制御部19により首回転駆動部23を制御してロボット1の首を動しながら、首の可動範囲全域に関する背景領域の特徴量(以下、背景特徴量とも言う)を算出して記憶部に記憶する。
【0060】
ステップS12は、カメラ21からの撮像画像と首角度取得部22からのパン・チルト角を示す角度位置情報を取得する。ステップS12において、首角度取得部22は、例えばロボット1の首(又は、カメラ21)のパン角を制御する首回転駆動部23内のモータ(図示せず)及びチルト角を制御する首回転駆動部23内のモータの夫々の回転角度位置を検出する角度センサが出力する角度位置信号から首角度を取得することができる。又、パン角及びチルト角を制御するモータ自体が回転角度位置を示す角度位置信号を出力する機能を備えている場合には、各モータが出力する角度位置信号から首角度を取得すれば良い。モータに回転角度位置を問い合わせる処理を省略する場合には、モータに対する指示(目標回転角度θdistと到達時間duration)とモータ指示時の回転角度θ0、指示時刻t0、現在時刻tから線形補完により近似的に現在の回転角度を求めることもできる。この場合、現在角度θは、例えばθ=θ0+(θdist−θ0)×(t−t0)/durationなる式から計算可能である。
【0061】
ステップS13は、パン・チルト角から現在のカメラ21の視野におけるブロック毎の背景特徴量を取得して記憶部に記憶する。ステップS13の処理については、より詳細に後述する。ステップS14は、撮像画像を複数のブロックに分割し、ブロック毎の特徴量を計算して記憶部に記憶する。ステップS15は、ステップS13で取得されたブロック単位の背景特徴量とステップS14で計算されたブロック単位の特徴量を比較して前景領域を抽出し、記憶部に記憶する。一方、ステップS16は、カメラ21からの撮像画像から顔領域31Bを抽出し、記憶部に記憶する。ステップS17は、抽出した顔領域31Bと抽出した前景領域に基づいて人物らしき画像を生成し、記憶部に記憶する。
【0062】
ステップS18は、人物らしき画像の仮説(又は、候補)を一つ選択し、ステップS19は、首回転駆動部23により首を駆動して所定量動かして状態遷移を発生させる。ステップS20は、パン・チルト角を示す角度位置情報と位置推定部17からの人物の位置の過去の推定結果に基づいて上記の如く予測画像を生成し、記憶部に記憶する。ステップS21は、少なくとも生成された予測画像と人らしき画像に基づいて尤度を計算し、記憶部に記憶する。ステップS22は、全ての仮説について尤度の計算が終了したか否かを判定し、判定結果がNOであると処理はステップS18へ戻る。
【0063】
一方、ステップS22の判定結果がYESであると、ステップS23は、上記パーティクルフィルタによるリサンプリング処理を行う。ステップS24は、必要であれば首を動かす制御指示を首回転駆動部23に出力する。ステップS25は、人物がいる確率が閾値より低い、即ち、確率が極めて低い場所に関して背景領域を更新し、処理はステップS12へ戻る。
【0064】
尚、図8において、ステップS16を省略した場合には、ステップS17は抽出した前景領域に基づいて人物らしき画像を生成すれば良い。又、ステップS25を省略しても良い。この場合、ステップS24の後、処理はステップS12へ戻る。
【0065】
ところで、ステップS13は、水平方向及び垂直方向の1°当たりの画素数をα、βとすると、画像中の顔31の座標(uf, vf)は、画像中心の座標を(uc, vc)、パン・チルト角を夫々pan, tilt、パン軸とチルト軸とカメラ21の光学中心との距離を夫々a, bで示すと、予測画像の生成時と同様に計算することができる。予測画像の生成時には予測の(θ, d, h)から、画像中の点を求める必要があるが、ステップS13では、背景特徴量の記憶の際には距離dが十分に遠い距離であると仮定して、パン・チルトの基準位置からのチルト方向の角度をφとし、背景の(θ, φ)の周辺に対する画像特徴量を記憶する。例えば、dθ,dφ毎に特徴量を記憶する場合、パン・チルトをdθ,dφずつ首の可動範囲内全域で行い、各回転位置(パン・チルト位置)において、撮像画像の中心付近で画像特徴量を計算して記憶部に記憶する。首の可動範囲の限界に達した場合には、可動範囲の外側についてもdθ,dφ毎に画像特徴量を計算して記憶部に記憶する。パン・チルトをdθ,dφより大きく行って複数のブロックの画像特徴量を一度に記憶部に記憶しても良いが、撮像画像の中心付近の画像特徴量を記憶する方が特徴量の比較時に誤差が生じる可能性が低くなる。
【0066】
パン・チルト角(pan, tilt)から、撮像画像中の各ブロックの画像特徴量を取得するには、記憶部に記憶している(θ,φ)毎の特徴量と現在の撮像画像中の座標(u, v)との対応を求める必要がある。この例では、a, bを無視できるくらい十分にdが長いと仮定し、以下の式により求める。
【0067】
u=uc+α×(θ-pan)
v=vc+β×(φ-tilt)
【0068】
上記の式を(θ,φ)を求める式に変換すると、以下の式が得られる。
【0069】
θ=(u-uc)/α+pan
φ=(v-vc)/β+tilt
これにより、撮像画像内の座標(u, v)における、記憶部に記憶されている(θ,φ)の画像特徴量を取得できる。この(θ,φ)に対応する座標(u, v)付近で画像特徴量を計算して、取得した画像特徴量と比較する。(θ,φ)に対する特徴量は、隣接する(θ+dθ,φ+dφ)の特徴量と重複するブロックから計算しても良い。
【0070】
図9は、撮像画像中の各ブロックの背景特徴量を取得して前景を抽出する図8のステップS13〜S15の処理をより詳細に説明するフローチャートである。ブロックの分割方法は、各座標(u, v)を中心として動的に決定しても、予めブロックに分割しておいて各座標(u, v)を含むブロックの特徴を求めるようにしても良い。
【0071】
図9において、ステップS31は、カメラ21の視野内の(θ,φ)の範囲を求める。ステップS32は、記憶部に記憶されている範囲内の離散値(θ,φ)に対応する座標(u, v)を求める。ステップS33は、求めた座標(u, v)の中から一つの座標を選択する。ステップS34は、選択した座標(u, v)に対する背景特徴量を対応する(θ,φ)から取得する。ステップS35は、撮像画像中の座標(u, v)の周辺領域に対する特徴量を計算する。ステップS36は、背景特徴量と撮像画像中の特徴量を比較して、座標(u, v)が含まれるブロックが前景領域か否かを決定するか、或いは、前景領域である確率を示す前景度を求める。ステップS37は、ステップS32で抽出した全ての(u, v)についての処理が終了したか否かを判定し、判定結果がNOであると処理はステップS33へ戻る。一方、ステップS37の判定結果がYESであると、処理は終了する。
【0072】
図10は、図8のステップS24の処理をより詳細に説明するフローチャートである。図10において、ステップS41は、現在推定中の全ての人物に対して、推定値θの分散を計算する。ステップS42は、全ての人物の中で最も推定値θの分散が大きい人物とその分散を求める。ステップS43は、推定値θの分散が閾値より大きいか否かを判定する。ステップS43の判定結果がYESであると、ステップS44は、観測対象である人物の推定値(平均推定値)の(θ,d,h)を求める。ステップS45は、パン・チルト角を夫々θ,atan(h/d)に制御するように制御指示を首回転駆動部23に出力する。ステップS45の後、或いは、ステップS43の判定結果がNOであると、処理は終了する。
【0073】
尚、ロボット1の目を向けてアイコンタクトを取らせる観測対象であるユーザの決定方法については、必ずしも推定値θの分散が最大のユーザに決定するではなく、別の注目するユーザを優先する等、ロボット1の用途や使用環境に応じて適切に決定すれば良い。上記の例では、推定値θの分散が閾値より大きいか否かに応じてロボット1にパン・チルトを行わせるか否かを決定しているが、例えば最後に顔領域31Bが検出されてからの経過時間等、様々な条件に応じてロボット1のパン・チルトを制御可能である。
【0074】
図11は、コンピュータシステムの一例を示すブロック図である。図11に示すコンピュータシステム100は、CPU101、記憶部102、インタフェース(I/F)103、入力装置104、及び表示部105がバス106により接続された構成を有する。CPU101は、記憶部102に格納されたプログラムを実行することによりコンピュータシステム100全体を制御する。記憶部102は、半導体記憶装置、磁気記録媒体、光記録媒体、光磁気記録媒体等で形成可能であり、上記のプログラムや各種データを格納すると共に、CPU101が実行する演算の中間結果や演算結果等を一時的に格納する一時メモリとしても機能する。I/F103は、カメラからの撮像画像を受信したり、記憶部102に格納するデータをネットワーク(図示せず)から受信することができる。入力装置104は、キーボード等により形成可能である。表示部105は、ディスプレイ等により形成可能である。入力装置104及び表示部105は、タッチパネルのように入力装置と表示部の両方の機能を有する入出力装置で形成しても良い。入力装置104は、ユーザがロボット1に指示等を入力する必要がない場合には省略可能であり、表示部105は、ロボット1がユーザに対してメッセージ等を表示する必要がない場合には省略可能である。又、表示部105の代わりに、音声出力部(図示せず)を設けてユーザに対するメッセージ等を音声で出力するようにしても良いことは言うまでもない。
【0075】
CPU101は、記憶部102に格納されたプログラムを実行することにより、コンピュータシステム100をロボットとして機能させる。つまり、プログラムは、CPU101にロボットの各部の機能を実現させる。言い換えると、プログラムは、CPU101に少なくともロボットの位置推定処理の手順を実行させるものであり、記憶部102を含む適切なコンピュータ読み取り可能な記憶媒体に格納されていても良い。従って、CPU101は、図8乃至図10の処理を実行可能である。
【0076】
上記実施例によれば、コミュニケーションロボットは任意のタイミングで任意のユーザとアイコンタクトを取れるので、コミュニケーションロボットとユーザ間のコミュニケーションがスムーズに行え、より自然な対人動作(Interactive Operation)が可能となる。ここで、コミュニケーションとは、言語による対話に限らない。ユーザの推定位置の確度を保つために、コミュニケーションロボットが時々ユーザに視線を向ける動作も、例えば幼児が遊びながら時折母親の存在を確認する動作に似た動作となり、ロボットの動作が非常に自然になる。又、コミュニケーションロボットの動作に対するユーザの表情等をすぐ確認することができる等、コミュニケーションに必要なセンシング(Sensing)性能が向上し、コミュニケーションロボットの基本性能の大幅な向上につながる。
【0077】
ところで、上記実施例では、カメラはパン・チルト可能であるため、直交する2軸(例えば、xy座標系のx軸及びy軸)を中心に回転可能であるか、或いは、パン・チルト・ロール可能であるため、互いに直交する3軸(例えば、xyz座標系のx軸、y軸及びz軸)を中心に回転可能である。しかし、ユーザの位置を推定できるのであれば、カメラは少なくとも1軸を中心に回転可能であれば良い。
【0078】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
少なくとも1軸を中心に回転可能なカメラと、
前記カメラの撮像画像から観測対象と推定される観測対象らしき画像の観測値を計算する画像生成部と、
観測対象の位置の過去の推定結果と現在の前記カメラの姿勢に基づいて観測対象らしき画像の予測値を計算する画像予測部と、
前記観測値と前記予測値を比較して前記観測値と前記予測値の一致度を尤度として計算する画像比較部と、
前記尤度に基づいて前記観測対象の位置を推定する位置推定部を備えた、ロボット。
(付記2)
前記カメラからの撮像画像から観測対象である人物の顔領域を抽出する顔領域検出部と、
前記カメラからの撮像画像から前景領域を抽出する前景領域抽出部を更に備え、
前記画像生成部は、抽出された顔領域及び前景領域に基づいて人物らしき画像を生成する、付記1記載のロボット。
(付記3)
前記前景領域抽出部は、前記前景領域を抽出する際、前記カメラの可動範囲全域において撮像画像を分割した各ブロックの特徴量を記憶部に予め記憶しておき、前記カメラの現在の撮像画像の各ブロックの特徴量と前記記憶部に予め記憶してある該当ブロックの特徴量を比較し、差異がある部分を前景領域とする、付記2記載のロボット。
(付記4)
前記前景領域抽出部は、前記記憶部に記憶されている背景領域の特徴量と前記カメラの現在の撮像画像の特徴量の比較に基づいて前記前景領域を抽出する際に、バタチャリア距離(Bhattacharyya Distance)又は正規化相関を用い、人物らしき画像を生成する際には前記正規化相関の値又はバタチャリア距離の値をそのまま多値化画像の画素の値として利用する、付記3記載のロボット。
(付記5)
前記位置推定部により推定された前記観測対象の位置の不確実さの評価に基づいて観測方針を決定する観測方針決定部を更に備えた、付記1乃至4のいずれか1項記載のロボット。
(付記6)
前記観測方針に基づいて前記カメラの前記少なくとも1軸に対する回転位置を制御する制御部を更に備えた、付記5記載のロボット。
(付記7)
人物の存在確率がある程度ばらついてきたら、前記制御部を制御することで顔の予測値に向かって前記カメラを動かす、付記6記載のロボット。
(付記8)
少なくとも1軸を中心に回転可能なカメラの撮像画像から観測対象と推定される観測対象らしき画像の観測値を画像生成部により計算する画像生成工程と、
観測対象の位置の過去の推定結果と現在の前記カメラの姿勢に基づいて観測対象らしき画像の予測値を画像予測部により計算する画像予測工程と、
画像比較部により前記観測値と前記予測値を比較して前記観測値と前記予測値の一致度を尤度として計算する画像比較工程と、
前記尤度に基づいて前記観測対象の位置を位置推定部により推定する位置推定工程を含み、
前記画像生成工程は、前記カメラからの撮像画像から観測対象である人物の顔領域を顔領域検出部により抽出し、前記カメラからの撮像画像から前景領域を前景領域抽出部により抽出し、抽出された顔領域及び前景領域に基づいて前記画像生成部により人物らしき画像を生成する、位置推定方法。
(付記9)
前記前景領域を抽出する際、前記カメラの可動範囲全域において撮像画像を分割した各ブロックの特徴量を記憶部に予め記憶しておき、前記カメラの現在の撮像画像の各ブロックの特徴量と前記記憶部に予め記憶してある該当ブロックの特徴量を比較し、差異がある部分を前景領域とする、付記8記載の位置推定方法。
(付記10)
前記記憶部に記憶されている背景領域の特徴量と前記カメラの現在の撮像画像の特徴量の比較に基づいて前記前景領域を抽出する際に、バタチャリア距離(Bhattacharyya Distance)又は正規化相関を用い、人物らしき画像を生成する際には前記正規化相関の値又はバタチャリア距離の値をそのまま多値化画像の画素の値として利用する、付記9記載の位置推定方法。
(付記11)
前記位置推定工程により推定された前記観測対象の位置の不確実さの評価に基づいて観測方針を観測方針決定部により決定する観測方針決定工程を更に含む、付記8乃至10のいずれか1項記載の位置推定方法。
(付記12)
前記観測方針に基づいて前記カメラの前記少なくとも1軸に対する回転位置を制御部により制御する制御工程を更に含む、付記11記載の位置推定方法。
(付記13)
コンピュータに観測対象の位置を推定させる位置推定処理を実行させるプログラムであって、
少なくとも1軸を中心に回転可能なカメラの撮像画像から観測対象と推定される観測対象らしき画像の観測値を計算して記憶部に格納する画像生成手順と、
観測対象の位置の過去の推定結果と現在の前記カメラの姿勢に基づいて観測対象らしき画像の予測値を計算して前記記憶部に格納する画像予測手順と、
前記観測値と前記予測値を比較して前記観測値と前記予測値の一致度を尤度として計算して前記記憶部に記憶する画像比較手順と、
前記尤度に基づいて前記観測対象の位置を推定する位置推定手順と、
前記カメラからの撮像画像から観測対象である人物の顔領域を抽出して前記記憶部に記憶する顔領域抽出手順と、
前記カメラからの撮像画像から前景領域を抽出して前記記憶部に記憶する前景領域抽出手順
を前記コンピュータに実行させ、
前記画像生成手順は、抽出された顔領域及び前景領域に基づいて人物らしき画像を生成する、プログラム。
(付記14)
前記前景領域抽出手順は、前記前景領域を抽出する際、前記カメラの可動範囲全域において撮像画像を分割した各ブロックの特徴量を記憶部に予め記憶しておき、前記カメラの現在の撮像画像の各ブロックの特徴量と前記記憶部に予め記憶してある該当ブロックの特徴量を比較し、差異がある部分を前景領域とする、付記13記載のプログラム。
(付記15)
前記前景領域抽出手順は、前記記憶部に記憶されている背景領域の特徴量と前記カメラの現在の撮像画像の特徴量の比較に基づいて前記前景領域を抽出する際に、バタチャリア距離(Bhattacharyya Distance)又は正規化相関を用い、人物らしき画像を生成する際には前記正規化相関の値又はバタチャリア距離の値をそのまま多値化画像の画素の値として利用する、付記14記載のプログラム。
(付記16)
前記位置推定手順により推定された前記観測対象の位置の不確実さの評価に基づいて観測方針を決定する観測方針決定手順
を更に前記コンピュータに実行させる、付記13乃至15のいずれか1項記載のプログラム。
(付記17)
前記観測方針に基づいて前記カメラの前記少なくとも1軸に対する回転位置を制御する制御手順
を更に前記コンピュータに実行させる、付記16記載のプログラム。
【0079】
以上、開示の位置推定方法、ロボット及びプログラムを実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
【符号の説明】
【0080】
1 コミュニケーションロボット
11 ロボット本体
12 顔領域検出部
13 前景領域抽出部
14 画像生成部
15 画像予測部
16 画像比較部
17 位置推定部
18 観測方針決定部
19 首制御部
21 カメラ
22 首角度取得部
23 首回転駆動部
101 CPU
102 記憶部

【特許請求の範囲】
【請求項1】
少なくとも1軸を中心に回転可能なカメラと、
前記カメラの撮像画像から観測対象と推定される観測対象らしき画像の観測値を計算する画像生成部と、
観測対象の位置の過去の推定結果と現在の前記カメラの姿勢に基づいて観測対象らしき画像の予測値を計算する画像予測部と、
前記観測値と前記予測値を比較して前記観測値と前記予測値の一致度を尤度として計算する画像比較部と、
前記尤度に基づいて前記観測対象の位置を推定する位置推定部を備えた、ロボット。
【請求項2】
前記カメラからの撮像画像から観測対象である人物の顔領域を抽出する顔領域検出部と、
前記カメラからの撮像画像から前景領域を抽出する前景領域抽出部を更に備え、
前記画像生成部は、抽出された顔領域及び前景領域に基づいて人物らしき画像を生成する、請求項1記載のロボット。
【請求項3】
前記前景領域抽出部は、前記前景領域を抽出する際、前記カメラの可動範囲全域において撮像画像を分割した各ブロックの特徴量を記憶部に予め記憶しておき、前記カメラの現在の撮像画像の各ブロックの特徴量と前記記憶部に予め記憶してある該当ブロックの特徴量を比較し、差異がある部分を前景領域とする、請求項2記載のロボット。
【請求項4】
少なくとも1軸を中心に回転可能なカメラの撮像画像から観測対象と推定される観測対象らしき画像の観測値を画像生成部により計算する画像生成工程と、
観測対象の位置の過去の推定結果と現在の前記カメラの姿勢に基づいて観測対象らしき画像の予測値を画像予測部により計算する画像予測工程と、
画像比較部により前記観測値と前記予測値を比較して前記観測値と前記予測値の一致度を尤度として計算する画像比較工程と、
前記尤度に基づいて前記観測対象の位置を位置推定部により推定する位置推定工程を含み、
前記画像生成工程は、前記カメラからの撮像画像から観測対象である人物の顔領域を顔領域検出部により抽出し、前記カメラからの撮像画像から前景領域を前景領域抽出部により抽出し、抽出された顔領域及び前景領域に基づいて前記画像生成部により人物らしき画像を生成する、位置推定方法。
【請求項5】
コンピュータに観測対象の位置を推定させる位置推定処理を実行させるプログラムであって、
少なくとも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

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2011−233072(P2011−233072A)
【公開日】平成23年11月17日(2011.11.17)
【国際特許分類】
【出願番号】特願2010−105126(P2010−105126)
【出願日】平成22年4月30日(2010.4.30)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】