IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許7152651プログラム、情報処理装置、及び情報処理方法
<>
  • 特許-プログラム、情報処理装置、及び情報処理方法 図1
  • 特許-プログラム、情報処理装置、及び情報処理方法 図2
  • 特許-プログラム、情報処理装置、及び情報処理方法 図3
  • 特許-プログラム、情報処理装置、及び情報処理方法 図4
  • 特許-プログラム、情報処理装置、及び情報処理方法 図5
  • 特許-プログラム、情報処理装置、及び情報処理方法 図6
  • 特許-プログラム、情報処理装置、及び情報処理方法 図7
  • 特許-プログラム、情報処理装置、及び情報処理方法 図8
  • 特許-プログラム、情報処理装置、及び情報処理方法 図9
  • 特許-プログラム、情報処理装置、及び情報処理方法 図10
  • 特許-プログラム、情報処理装置、及び情報処理方法 図11
  • 特許-プログラム、情報処理装置、及び情報処理方法 図12
  • 特許-プログラム、情報処理装置、及び情報処理方法 図13
  • 特許-プログラム、情報処理装置、及び情報処理方法 図14
  • 特許-プログラム、情報処理装置、及び情報処理方法 図15
  • 特許-プログラム、情報処理装置、及び情報処理方法 図16
  • 特許-プログラム、情報処理装置、及び情報処理方法 図17
  • 特許-プログラム、情報処理装置、及び情報処理方法 図18
  • 特許-プログラム、情報処理装置、及び情報処理方法 図19
  • 特許-プログラム、情報処理装置、及び情報処理方法 図20
  • 特許-プログラム、情報処理装置、及び情報処理方法 図21
  • 特許-プログラム、情報処理装置、及び情報処理方法 図22
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-04
(45)【発行日】2022-10-13
(54)【発明の名称】プログラム、情報処理装置、及び情報処理方法
(51)【国際特許分類】
   G06T 7/00 20170101AFI20221005BHJP
【FI】
G06T7/00 660A
【請求項の数】 11
(21)【出願番号】P 2018092913
(22)【出願日】2018-05-14
(65)【公開番号】P2019200456
(43)【公開日】2019-11-21
【審査請求日】2021-02-10
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100094525
【弁理士】
【氏名又は名称】土井 健二
(74)【代理人】
【識別番号】100094514
【弁理士】
【氏名又は名称】林 恒徳
(72)【発明者】
【氏名】田辺 聡
【審査官】松浦 功
(56)【参考文献】
【文献】特開2006-268189(JP,A)
【文献】特開2010-198313(JP,A)
【文献】特開2017-208007(JP,A)
【文献】特開2013-105384(JP,A)
【文献】特開2008-194146(JP,A)
【文献】特開2017-182739(JP,A)
【文献】米国特許第08885882(US,B1)
【文献】久保田整 外2名,近赤外カメラによるドライバの頭部姿勢追跡,画像ラボ,日本工業出版株式会社,2009年05月10日,第20巻,第5号,pp.12-17
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
G06T 1/00
G08G 1/00 -99/00
(57)【特許請求の範囲】
【請求項1】
入力画像データに対して、人物の部位に関する正解データを利用して、画像に含まれる人物の部位の位置情報を推定し、
前記部位のうち顔の部位の位置情報を推定することができなかったとき、推定することができた顔以外の部位の位置情報に基づいて、画像に含まれる人物の視線方向を推定する、
処理をコンピュータに実行させることを特徴とするプログラム。
【請求項2】
前記顔の部位の位置情報には、鼻、左目、右目、左耳、右耳、首、左肩、及び右肩の少なくともいずれか1つの位置情報を含むことを特徴とする請求項1記載のプログラム。
【請求項3】
入力画像データに基づいて、人物の部位に関する正解データを利用して、画像に含まれる人物の部位の位置情報と、前記画像に前記部位が含まれるか否かを示すパラメータとを含む姿勢ベクトルを推定することを特徴とする請求項1記載のプログラム。
【請求項4】
内部メモリから読み出した以下の式(51)に基づいて、画像に含まれる人物iの視線方向を表す向きベクトルqを算出することを特徴とする請求項1記載のプログラム。
【数1】
(ただし、式(51)において、w はパラメータを表す。また、式(51)において、x は、人物iの部位jの位置のx座標を示す。j=1 は鼻、j=6 は首、j=7は左肩、j=8は右肩を示す。
【請求項5】
第1のカメラで撮影された第1の画像の第1の画像データに対して、前記正解データを利用して、前記第1の画像に含まれる人物の部位の2次元座標として表される第1の位置座標を推定し、第2のカメラで撮影された第2の画像の第2の画像データに基づいて、前記正解データを利用して、前記第2の画像に含まれる人物の部位の2次元座標として表される第2の位置座標を推定し、
前記第1の位置座標と前記第2の位置座標とを、部位の3次元位置座標へ変換し、
前記3次元位置座標を利用して、前記人物の顔の部位の位置情報を算出し、画像に含まれる人物の視線方向を推定することを特徴とする請求項1記載のプログラム。
【請求項6】
推定することができなかった第1の人物の前記部位のうち顔の部位の位置情報の数が閾値よりも多いとき、第1の人物において推定することができた他の部位の位置情報と、第1の人物に隣接する第2の人物において推定することができた部位の位置情報とに基づいて、第1の人物において推定することができなかった前記顔の部位の位置情報を算出することを特徴とする請求項1記載のプログラム。
【請求項7】
さらに、推定した前記人物の視線方向の変化を検知し、検知結果を出力する
ことを特徴とする請求項1記載のプログラム。
【請求項8】
時刻tを現在時刻Tとしたとき、推定した前記人物の視線方向を表す向きベクトルを正規化した注目度ベクトルを、時刻(T-n)から時刻(T-m)までに取得した第1の注目度ベクトルの集合と、時刻(T-m)から時刻tまでに取得した第2の注目度ベクトルの集合に分けて、前記第1の注目度ベクトルの集合に基づいて、前記第2の注目度ベクトルの集合の異常度を計算し、前記異常度が閾値以上のとき、時刻(T-m)を境にして視線方向に変化があったことを示す検知結果を出力することを特徴とする請求項7記載のプログラム。
【請求項9】
前記部位のうち顔の部位の位置情報を推定することができなかったとき、推定することができた他の部位の位置情報を利用して、前記顔の部位の位置情報を算出し、前記顔の部
位の位置情報と前記他の部位の位置情報に基づいて、画像に含まれる人物の視線方向を推定することを特徴とする請求項1記載のプログラム。
【請求項10】
入力画像データに対して、人物の部位に関する正解データを利用して、画像に含まれる人物の部位の位置情報を推定する姿勢推定部と、
前記部位のうち顔の部位の位置情報を推定することができなかったとき、推定することができた顔以外の部位の位置情報に基づいて、画像に含まれる人物の視線方向を推定する注目度算出部と
を備えることを特徴とする情報処理装置。
【請求項11】
姿勢推定部と注目度算出部とを有する情報処理装置における情報処理方法であって、
前記姿勢推定部により、入力画像データに対して、人物の部位に関する正解データを利用して、画像に含まれる人物の部位の位置情報を推定し、
前記注目度算出部により、前記部位のうち顔の部位の位置情報を推定することができなかったとき、推定することができた顔以外の部位の位置情報に基づいて、画像に含まれる人物の視線方向を推定する
ことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報処理装置、及び情報処理方法に関する。
【背景技術】
【0002】
従来から、視線方向を推定する技術がある。例えば、アパレルショップやスーパーの店内に設置された監視カメラで撮影した人物の画像から、人物の視線を推定する、などである。これにより、例えば、群衆がどのような商品に注目しているか、を経営者などは把握することができ、売り上げ戦略を策定することが可能となる場合がある。また、例えば、セキュリティ用の都市監視として、標識やサイネージの近傍に設置された監視カメラで撮影した人物画像から視線方向を推定することで、標識などの設置効果の調査や、群衆行動の把握などに利用される場合がある。
【0003】
視線方向を推定する技術として、例えば、以下がある。すなわち、撮影手段で撮影された現時刻の画像フレームに基づいて、眼球の3次元モデルを利用して特定人物の眼球中心の3次元位置を推定するとともに、特定人物の虹彩の位置を検出し、眼球中心と虹彩位置に基づいて視線方向を推定する技術がある。
【0004】
この技術によれば、顔の向きの制限を緩和して、比較的少数のカメラにより、観測範囲内の任意の位置における被測定対象者の視線方向をリアルタイムに推定し追跡することができる、とされる。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2012-216180号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述した、眼球中心と虹彩位置に基づいて視線方向を推定する技術は、例えば、人物の顔が複数の撮影手段で撮影されることが条件となっている。従って、顔が隠れた人物の画像の場合、上述した技術では、その人物の視線方向を推定することができない場合がある。
【0007】
そこで、一開示は、顔が隠れた人物の画像であっても視線方向を推定できるようにしたプログラム、情報処理装置、及び情報処理方法を提供することにある。
【課題を解決するための手段】
【0008】
一開示は、入力画像データに対して、人物の部位に関する正解データを利用して、画像に含まれる人物の部位の位置情報を推定し、前記部位のうち顔の部位の位置情報を推定することができなかったとき、推定することができた他の部位の位置情報に基づいて、画像に含まれる人物の視線方向を推定する、処理をコンピュータに実行させるプログラムにある。
【発明の効果】
【0009】
一開示によれば、顔が隠れた人物の画像であっても視線方向を推定することが可能である。
【図面の簡単な説明】
【0010】
図1図1は情報処理システムの構成例を表す図である。
図2図2は動作例を表すフローチャートである。
図3図3は部位番号の例を表す図である。
図4図4は画像の例を表す図である。
図5図5は姿勢推定処理の例を表すフローチャートである。
図6図6(A)は姿勢推定部の構成例、図6(B)は画像データの例、図6(C)は各部位の確率分布の例をそれぞれ表す図である。
図7図7(A)は右手の確率分布の例、図7(B)は右ひじの確率分布の例、図7(C)は右手と右ひじのつながり度合いの確率分布の例をそれぞれ表す図である。
図8図8は注目度算出処理の例を表すフローチャートである。
図9図9(A)は部位の例、図9(B)は向きベクトルの例をそれぞれ表す図である。
図10図10(A)は部位の例、図10(B)はベクトルの例、図10(C)は向きベクトルの例をそれぞれ表す図である。
図11図11はカウント処理の例を表すフローチャートである。
図12図12は3次元位置座標の例を表す図である。
図13図13は姿勢推定部の構成例を表す図である。
図14図14は動作例を表すフローチャートである。
図15図15(A)は同一人物特定処理、図15(B)は類似度計算処理の例をそれぞれ表す図である。
図16図16は注目度算出処理の動作例を表すフローチャートである。
図17図17は情報処理システムの構成例を表す図である。
図18図18は動作例を表すフローチャートである。
図19図19は注目度変化検出処理の例を表すフローチャートである。
図20図20は注目度ベクトルの時系列の例を表す図である。
図21図21(A)と図21(C)は画像の例、図21(B)と図21(D)は注目度ベクトルの例をそれぞれ表す図である。
図22図22は情報処理装置のハードウェア構成例を表す図である。
【発明を実施するための形態】
【0011】
以下、本発明を実施するための形態について説明する。なお、以下の実施例は開示の技術を限定するものではない。そして、各実施の形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【0012】
[第1の実施の形態]
<情報処理システムの構成例>
図1は情報処理システム10の構成例を表す図である。
【0013】
情報処理システム10は、情報処理装置100と撮像装置200を備える。情報処理装置100は、撮像装置200で撮影された画像の画像データを入力し、入力した画像データから、画像に写っている人物の視線方向を推定する。本第1の実施の形態では、情報処理装置100は、顔が隠れた画像であっても、そのような画像の画像データから視線方向を推定することが可能である。
【0014】
情報処理装置100は、姿勢推定部110と注目度算出部120、空間情報記憶部130、及び注目度記憶部140を備える。
【0015】
姿勢推定部110は、撮像装置200から出力された画像データを入力し、入力画像データに基づいて、画像に含まれる人物i(i=1,2,…,I)の姿勢pを推定する。姿勢pは、例えば、人物iの「鼻」、「左目」、「右目」など、各部位の位置情報を含む。姿勢pの詳細は動作例で説明する。
【0016】
本第1の実施の形態においては、姿勢推定部110は、例えば、入力画像データに基づいて、人物の部位に関するモデルデータ(又は正解データ、或いは教師データ。以下では、これら3つを区別しないで用いる場合がある。)を利用して、姿勢pを生成する。姿勢推定部110における姿勢pの推定処理については動作例で説明する。姿勢推定部110は、推定した姿勢pを注目度算出部120へ出力する。
【0017】
注目度算出部120は、姿勢pに含まれる位置情報を利用して、画像に含まれる人物iの視線方向を推定する。具体的には、注目度算出部120は、例えば、姿勢推定部110で推定対象となっている人物iの部位のうち、顔の部位の位置情報を推定することができなかったとき、推定することができた顔以外の他の部位の位置情報に基づいて、画像に含まれる人物iの視線方向を推定する。
【0018】
例えば、撮像装置200で撮像された画像には、障害物や視線方向などによって人物iの顔などの部位が写っていない場合もある。従って、姿勢推定部110で推定された姿勢pには、顔の部位(例えば、目や鼻など)の位置情報が含まれない場合がある。注目度算出部120では、そのような姿勢推定部110で推定することができなかった顔の部位の位置情報を、姿勢推定部110で推定できた他の部位の位置情報を利用して算出し、これらの位置情報に基づいて、人物iの視線方向を推定するようにしている。
【0019】
なお、注目度算出部120は、例えば、人物iの向きベクトルqを計算することで、人物iの視線方向を推定する。本第1の実施の形態では、向きベクトルqのことを、例えば、注目度と称する場合がある。以下では、注目度、向きベクトルq、及び視線方向を区別しないで用いる場合がある。注目度算出処理の詳細については、動作例で説明する。注目度算出部120は、算出した注目度を注目度記憶部140に記憶する。
【0020】
また、注目度算出部120は、空間情報記憶部130から、各対象物300-1,300-2の位置情報を読み出す。そして、注目度算出部120は、算出した向きベクトルqと、各対象物300-1,300-2の位置情報とに基づいて、各対象物300-1,300-2に視線を向けている人物iの数をカウントする。注目度算出部120は、カウントしたカウント値を注目度記憶部140に記憶する。カウント処理の詳細も、動作例で説明する。
【0021】
空間情報記憶部130は、例えば、メモリであって、各対象物300-1,300-2の位置情報を記憶する。位置情報としては、例えば、各対象物300-1,300-2の設置点とその周囲の領域を、2次元座標(x,y)で表されたものであってもよい。
【0022】
注目度記憶部140は、例えば、メモリであって、注目度算出部120で算出された注目度を記憶する。
【0023】
撮像装置200は、例えば、1又は複数の人物を撮影し、撮影した画像を画像データとして情報処理装置100へ出力する。図1の例では、撮像装置200は、対象物300-1,300-2と、対象物300-1,300-2へ視線方向を向けている複数の人物とを含む画像を撮影する。
【0024】
なお、図1の例では、撮像装置200は情報処理装置100の外部に配置される例を表しているが、撮像装置200は、例えば、撮像部として、情報処理装置100内に設けられてもよい。また、図1の例では、撮像装置200は、1台の例を表しているが、複数台あってもよい。複数台の例は、第2の実施の形態で説明する。
【0025】
<動作例>
図2は情報処理システム10の動作例を表すフローチャートである。
【0026】
撮像装置200と情報処理装置100は処理を開始すると(S10)、撮像装置200は群衆を撮影する(S11)。例えば、撮像装置200は、図1に示すように、複数の人物(以下、「群衆」と称する場合がある、)が写った画像を撮影し、撮影した画像データを情報処理装置100へ出力する。
【0027】
次に、情報処理装置100は、画像データに基づいて、撮像装置200で撮影された画像に写っている人物iの姿勢pを推定する(S12)。姿勢pは、例えば、以下の式(1)で表される。
【0028】
【数1】
【0029】
式(1)において、x は画像内における人物iの部位jのx座標、y は画像内における人物iの部位jのy座標をそれぞれ表す。また、v は、人物iの部位jが画像内で視えている(又は写っている、或いは含まれる)ときは「1」、視えていないときは「0」の値をとるパラメータである。
【0030】
図3は部位番号と部位との関係例を表す図である。図3に示すように、各部位jには、部位番号が予め割り振られている。図3の例では、部位j=1のときは「鼻」を表し、部位j=6のときは「首」を表す。図3は一例であって他の番号が割り振られてもよい。
【0031】
図4は撮像された画像の例を表す図である。図4の例では、人物i=1の右手の部位(j=12)は画像に写っているが、左肘の部位(j=9)は障害物により画像に写っていない。そのため、姿勢p=(・・・ x 0 ・・・ x12 12 1 ・・・)となり得る。例えば、姿勢推定部110は、入力画像データに基づいて、このような姿勢pを推定する。以下では、姿勢推定処理(S12)の詳細について説明する。なお、以下では、姿勢pと姿勢ベクトルpとを区別しないで用いる場合がある。
【0032】
<姿勢推定処理>
図5は姿勢推定処理(S12)の例を表すフローチャートである。また、図6(A)は姿勢推定部110の構成例を表す図である。図5の各処理を説明しながら、図6(A)について説明する。なお、図6(A)に示すように、姿勢推定部110は、CNN(Convolutional neural network)処理部111と候補点算出部112、及びグルーピング処理部113を備える。
【0033】
図5に示すように、姿勢推定部110は、姿勢推定処理を開始すると(S120)、部位j(j=1,2,…,J)の確率分布(又はヒートマップ)を計算する(S121)。CNN処理部111では、例えば、畳み込みニューラルネットワーク(以下、「CNN」と称する場合がある。)を用いた公知の手法により、確率分布φ(X,W)を計算する。Wは、例えば、CNN処理に利用されるパラメータを表す。例えば、CNN処理部111は、以下の処理を行う。
【0034】
すなわち、CNN処理部111は、ある画像データに対して、右手の正解データを利用して、フィルタリング処理(又は畳み込み処理)を行う。そして、CNN処理部111は、フィルタリング後のデータに対して、複数画像を含むブロック毎の代表値(又は最大値)を抽出するプーリング処理を施し、以後、フィルタリング処理とプーリング処理を繰り返すことで、右手(j=12)の確率分布の正解データを生成する。次に、CNN処理部111は、図6(B)に示すようにRGB(Red Green Blue)の画像データXを入力する。CNN処理部111は、右手(j=12)の確率分布の正解データを利用して、入力画像データXに対して、フィルタリング処理とプーリング処理を繰り返すことで、右手の確率分布φ(X,W)を得る。
【0035】
図6(C)は右手の確率分布φ(X,W)の例を表す図である。例えば、確率分布φ(X,W)は、画素毎(又は複数画素を含むブロック毎)に「0」から「1」までの数値(又は確率値)を表すものとして表現される。
【0036】
なお、以下では、フィルタリング処理とプーリング処理を繰り返す処理のことを、例えば、CNN処理と称する場合がある。
【0037】
同様に、CNN処理部111は、右肘(j=10)の正解データを利用して、CNN処理により、右肘の確率分布の正解データを得る。そして、CNN処理部111は、右肘の確率分布の正解データを利用して、CNN処理により、入力画像データXから、右肘の確率分布φ(X,W)を得る。
【0038】
なお、CNN処理部111は、各部位の確率分布φ(X,W)だけではなく、各部位のつながり度合いを表す確率分布φ(X,W)を算出する。CNN処理部111では、CNN処理に利用した、各部位の正解データから、各部位を接続させた正解データを得ることができる。そして、CNN処理部111は、ある画像データから、各部位を接続させた正解データを利用して、ある画像データに対してCNN処理を行うことで、各部位を接続させた正解データの確率分布を得て、入力画像Xに対して、この確率分布を利用してCNN処理を行うことで、各部位のつながり度合いを表す確率分布φ(X,W)を算出することができる。
【0039】
このように、CNN処理部111は、各部位jの正解データを利用して、画像データXに対して、畳み込み処理などを施すことで、各部位jの確率分布φ(X,W)を計算する。
【0040】
CNN処理部111は、S121において、例えば、以下の処理を行う。すなわち、CNN処理部111は、内部メモリに記憶された各部位jの正解データを読み出して、この正解データを利用して、ある画像データに対してCNN処理を行い、各部位jの確率分布の正解データを計算し、内部メモリに記憶する。CNN処理部111は、このような各部位jの確率分布の正解データを、S121の処理の前に計算し、内部メモリに記憶させておいてもよい。そして、CNN処理部111は、入力画像データXに対して、内部メモリから読み出した各部位jの確率分布の正解データを利用して、CNN処理を行うことで、各部位の確率分布φ(X,W)を得る。
【0041】
CNN処理部111は、正解データを用いたときの各部位jの部位番号と、その部位jの確率分布φ(X,W)とを候補点算出部112へ出力する。
【0042】
以上、各部位jの確率分布φ(X,W)の計算例について説明した。このような畳み込みニューラルネットワークを用いた手法として、例えば、Zhe Cao, Tomas Simon, Shih-En Wei, Yaser Sheikh, "Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields", In CVPR 2017に開示された手法がある。CNN処理部111は、これを用いて、各部位jの確率分布φ(X,W)を計算してもよい。また、各部位の確率分布φ(X,W)の計算例としては、畳み込みニューラルネットワーク以外にも、テンプレートマッチングを用いた公知の手法が用いられてもよい。テンプレートマッチングは、例えば、各部位のモデルデータと比較して、入力画像の各部位の確率分布φ(X,W)を算出する手法である。
【0043】
図5に戻り、次に、姿勢推定部110は、部位位置の候補点を求める(S122)。例えば、図6(A)に示すように、候補点算出部112は、CNN処理部111から出力された各部位の確率分布φ(X,W)に基づいて、候補点を算出する。
【0044】
図7(A)は、右手(j=12)の確率分布φ(X,W)に対して右手の候補点A1,A2を探索する例を表す図である。候補点算出部112は、右手の確率分布φ(X,W)において、あるブロックの確率が極大点となっている位置座標A1,A2を探索する。この位置座標A1,A2が右手の候補点となる。また、図7(B)に示すように、候補点算出部112は、右肘の確率分布確率分布φ(X,W)において、確率が極大点となっている位置座標B1,B2を探索する。位置座標B1,B2が右肘の候補点となる。候補点算出部112は、各部位の部位番号とその候補点とをグルーピング処理部113へ出力する。
【0045】
なお、姿勢推定部110は、例えば、極大点が閾値以上のとき、そのような極大点をその部位の候補点とし、極大点が閾値より小さいときは、その部位が入力画像に写っていないと判定する。前者の場合、姿勢推定部110は、v =1(又は視えている部位)とし、後者の場合、v =0(又は視えていない部位)とする。姿勢推定部110は、前者の場合に以降の処理を行い、後者の場合はここで姿勢推定処理(S12)を終了する。
【0046】
図5に戻り、次に、姿勢推定部110は、部位位置の候補点ごとにグルーピングを行い(S123)、人物iごとに部位を特定する。例えば、図6(A)のグルーピング処理部113においてこのようなグルーピングが行われる。グルーピング処理部113は、例えば、部位jの候補点間の距離を比較することで、各候補点をグループ化する。具体的には、グルーピング処理部113は、例えば、CNN処理部111においてCNN処理が施された、部位と部位とのつながり度合いを示す確率分布φ(X,W)を用いて処理を行う。
【0047】
図7(C)は右手と右肘のつながり度合いの確率分布φ(X,W)の例を表す図である。候補点算出部112において、右手の候補点A1,A2(図7(A))と右肘の候補点B1,B2(図7(B))を得ている。グルーピング処理部113は、これらの候補点A1,A2,B1,B2に対して、A1とB1とが同一人物に属する部位であるのか、A1とB2とが同一人物に属する部位であるのかを、右手と右肘のつながり度合いの確率分布に基づいて、判別する。例えば、グルーピング処理部113は、以下の式を利用して、各組み合わせのつながり度合いを計算する。
【0048】
【数2】
【0049】
【数3】
【0050】
式(2)と式(3)において、y1は、例えば、図7(C)に示すように、人物i=1の右手と右肘のつながり度合いを示す確率分布上の集合を表す。ここで、候補点A1とB1のつながり度合いは、例えば、集合yに対して、候補点A1とB1とを結んだ線分の線積分の数値を表している。また、候補点A1とB2とのつながり度合いは、例えば、集合yに対して、候補点A1とB2とを結んだ線分の線積分の数値を表している。グルーピング処理部113は、式(2)と式(3)の数値に対して、大きい方、例えば、候補点A1とB1とを選択し、選択した候補点A1とB1とをグループ化する。同様に、グルーピング処理部113は、人物i=2の右手と右肘のつながり度合いを示す確率分布をCNN処理部111から候補点算出部112を介して取得し、式(2)と式(3)において、yをyに代えた式を用いて、その数値の大きい方を選択して、グループ化する。この場合、グルーピング処理部113は、A2とB2とをグループ化する。
【0051】
このように、CNN処理部111では、各部位のつながり度合いを示す確率分布を計算し、グルーピング処理部113は、このような確率分布と、候補点算出部112で算出された各候補点の組み合わせとに対して、線積分の計算を行う。そして、グルーピング処理部113は、その計算結果が最も大きい候補点の組み合わせをグループ化する。グルーピング処理部113は、グループ化した各候補点により、人物iの各部位を特定することができる。
【0052】
CNN処理部111は、S123において、例えば、以下の処理を行う。すなわち、CNN処理部111は、内部メモリから式(2)と式(3)を読み出し、各部位のつながり度合いを示す確率分布の集合を式(2)と式(3)に代入し、各線分の線積分の数値を得る。そして、CNN処理部111は、最も大きい数値となっている候補点の組み合わせを1つのまとめることで、グループ化する。
【0053】
図5に戻り、次に、姿勢推定部110は、グループ化した人物iごとにその姿勢pを取得する(S124)。例えば、図6(A)のグルーピング処理部113は、グループ化した各部位の候補点(又は位置座標)を、式(1)に示された姿勢pの各要素に代入することで、人物iの姿勢pを得る。
【0054】
以上が姿勢推定処理(S12)である。
【0055】
図2に戻り、次に、情報処理装置100は、群衆の人物iごとに注目度を算出する(S13)。以下、注目度算出処理の例について説明する。
【0056】
<注目度算出処理>
図8は、注目度算出処理の例を表すフローチャートである。例えば、注目度算出部120で行われる処理である。
【0057】
注目度算出部120は、注目度算出処理を開始すると(S130)、姿勢pを利用して、顔の部位、首、左肩、及び右肩は視えているか否かを判別する(S131)。例えば、注目度算出部120は、以下の式を利用して判定する。
【0058】
【数4】
【0059】
注目度算出部120は、vが「1」のとき、顔の部位(鼻、左目、右目、左耳、右耳)、首、左肩、及び右肩が全て視えていると判定し、vが「0」のとき、顔の部位、首、左肩、又は右肩のいずれかが視えていないと判定する。例えば、注目度算出部120は、内部メモリから式(4)を読み出して、姿勢推定部110から出力された姿勢pからv ~v を抽出し、式(4)に代入することで判定する。
【0060】
注目度算出部120は、顔の部位、首、左肩、又は右肩のいずれかが視えていないと判定したとき(S131でNO)、視えていない部位の位置情報を補間により算出する(S132)。注目度算出部120は、例えば、以下の式を用いて、人物iにおいて視えていない部位kの位置ベクトル(又は位置情報。以下では、位置ベクトルと位置情報とを区別しないで用いる場合がある。) =(x を算出する。
【0061】
【数5】
【0062】
式(5)において、ak1 ,ak2 ,…,akM は人物iの視えている部位(k1,k2,…,kM)(Mは、0<M≦jを満たす整数)の位置ベクトル、 は2行2列の行列、b は2行1列の縦ベクトルをそれぞれ表す。
【0063】
式(5)は、例えば、視えていない部位kの位置ベクトルa は、視ている部位の位置ベクトルak1 ,ak2 ,…,akM とオフセットb とを用いて算出されることを表している。
【0064】
式(5)の行列 と縦ベクトルb は、姿勢sの集合Pを用いて、以下の式を解くことで求めることができる。
【0065】
【数6】
【0066】
式(6)において、 =(x は、姿勢sの部位番号kの部位の位置ベクトルを表す。また、姿勢sの集合Pは、例えば、3D-CGソフトウェアなどで作成した人体模型をモデルデータとした場合の各部位の位置ベクトルの集合である。
【0067】
式(6)は、例えば、このような人体模型として作成された人物の部位番号kの位置ベクトルs と、姿勢推定部110で推定された、視えている部位の位置ベクトルak1 ,ak2 ,…,akM との誤差が最小となる とb とを表している。式(6)は、例えば、勾配降下法など、公知の手法により解くことが可能である。
【0068】
このように注目度算出部120は、例えば、顔の部位の位置情報を姿勢推定部110で推定することができなかったとき、姿勢推定部110で推定することができた他の部位の位置情報を利用して、顔の部位の位置情報を算出している。
【0069】
具体的には、注目度算出部120は、S132において、例えば、以下の処理を行う。すなわち、注目度算出部120は、姿勢推定部110から受け取った姿勢pから、視えている部位の位置ベクトルak1 ,ak2 ,…,akM を抽出する。そして、注目度算出部120は、内部メモリに記憶された式(5)を読み出して、式(5)に代入することで、姿勢pの中で視えていない部位kの位置ベクトルa を算出する。その際、注目度算出部120は、内部メモリから式(6)を読み出して、視えている部位の位置ベクトルak1 ,ak2 ,…,akM を式(6)に代入して演算を行うことで、 とb を取得して、式(5)に代入する。
【0070】
なお、首、左肩、右肩、及び鼻を、顔の部位に含めてもよい。この場合、注目度算出部120は、これらの部位を含めた顔の部位について、その部位が視えているか否かをS131において判定してもよい。
【0071】
次に、注目度算出部120は、人物iの向きベクトルqを算出する(S133)。例えば、注目度算出部120は、以下の式を用いて、向きベクトルqを算出する。
【0072】
【数7】
【0073】
式(7)において、Wは2行2列の行列、wは2行1列の縦ベクトルをそれぞれ表す。また、a は、人物iの部位jの位置ベクトルを表す。行列Wと縦ベクトルwは、式(6)と同様に、以下の式を解くことにより求められる。
【0074】
【数8】
【0075】
式(8)において、s=(xは、姿勢sの部位番号kの部位の位置ベクトルを表し、姿勢sの集合Pは、例えば、上述した場合と同様に、3D-CGソフトウェアなどで作成された人体模型のおける各部位の位置ベクトルの集合である。また、qは、例えば、姿勢sが持つ向きベクトルであり、顔の部位(左目、右目、左耳、右耳、鼻、首)の最小2乗平面Sfaceに直交するベクトルとして定義される。図9(A)は人物画像の例を表し、図9(B)は向きベクトルqの例を表す図である。
【0076】
例えば、注目度算出部120は、S133において、以下の処理を行う。すなわち、注目度算出部120は、内部メモリに記憶された式(7)を読み出して、姿勢pから抽出した、視えている部位の位置ベクトルak1 ,ak2 ,…,akM と、補間により算出した、視えていない部位kの位置ベクトルa とを、式(7)に代入する。そして、注目度算出部120は、人物iの向きベクトルqを算出する。その際、注目度算出部120は、内部メモリから、式(8)、向きベクトルq、及び各部位番号kの部位の位置ベクトルsを読み出して、式(8)に代入することで、Wとwとを取得する。この場合、予め計算されたWとwとが内部メモリに記憶され、注目度算出部120は、処理の際に内部メモリからWとwとを読み出して、式(7)に代入するようにしてもよい。
【0077】
図8に戻り、注目度算出部120は、人物iの向きベクトルqを算出すると、注目度算出処理を終了する(S134)。
【0078】
一方、注目度算出部120は、顔の部位、首、左肩、及び右肩のいずれも視えていると判定したとき(S131でYES)、人物iの向きベクトルqを算出し(S133)、注目度算出処理を終了する(S134)。この場合、注目度算出部120は、補間処理(S132)を行うことなく、視ている部位jの位置ベクトルa ,a ,…,a を式(7)に代入することで、向きベクトルqを算出する。
【0079】
上述した例は、人物iの向きベクトルqの算出する(S133)例として、式(7)と式(8)を用いた例について説明した。例えば、注目度算出部120は、式(7)と式(8)に代えて、以下の式を用いて、人物iの向きベクトルqを算出してもよい。
【0080】
【数9】
【0081】
式(9)に示すように、注目度算出部120は、鼻(j=1)、首(j=6)、左肩(j=7)、右肩(j=8)の各部位の位置ベクトルa のx軸方向の位置座標(x ,x ,x ,x )を用いて、向きベクトルqを算出する。なお、式(9)において、w,wはパラメータであり、例えば、w=1.0、w=0.5である。図10(A)から図10(C)は、w=1.0、w=0.5の場合の各座標の関係例を表す図である。
【0082】
注目度算出部120は、例えば、以下の処理を行う。すなわち、注目度算出部120は、内部メモリに記憶した式(9)を読み出す。そして、注目度算出部120は、姿勢pから抽出した、又は、補間により算出した、各部位(j=1,6,7,8)の位置ベクトルak1 のx座標を式(9)に代入することで、人物iの向きベクトルqを算出する。
【0083】
以上が注目度算出処理(S13)の例である。上述した例は、人物iの向きベクトルqを算出する例について説明した。例えば、注目度算出部120は、姿勢推定部110から、他の人物(i+1)の姿勢pi+1を受け取ったときは、この人物(i+1)に対する注目度算出処理(S13)を行い、姿勢pi+1を算出する。このようにして、注目度算出部120は、画像に写っている全ての人物iの向きベクトルqを算出する。
【0084】
図2に戻り、次に、情報処理装置100は、算出した人物iの向きベクトルqを注目度記憶部140に記憶する(S15)。
【0085】
次に、情報処理装置100は、終了するか否かを判定する(S16)。例えば、情報処理装置100を操作するユーザが終了ボタンを操作したか否か、或いは、終了コマンドを入力したか否かにより判定する。
【0086】
情報処理装置100は、終了するときは(S16でYES)、一連の処理を終了させ(S17)、終了しないときは、S11へ移行して、上述した処理を繰り返す(S11からS15)。例えば、情報処理装置100は、他の画像(又は次の画像フレーム)に対して、画像に写っている人物iの向きベクトルqを算出するときは、終了することなく(S16でNO)、上述した処理を繰り返せばよい。
【0087】
なお、情報処理装置100は、向きベクトルqを注目度記憶部140に記憶した後、対象物300-1,300-2に視線を向けている人物iの数をカウント処理を行ってもよい。
【0088】
図11は、カウント処理の例を表すフローチャートである。例えば、注目度算出部120で行われる。
【0089】
注目度算出部120は、処理を開始すると(S140)、向きベクトルqが対象物mと交差するか否かを判定する(S141)。例えば、注目度算出部120は、算出した向きベクトルqを、n(n>0)倍し、n倍した向きベクトルqが、対象物300-1,300-2の設置点の位置座標と交差するか否か、或いは設置点の位置座標の周囲の一定範囲内の領域で交差するか否かにより判定する。この場合、注目度算出部120は、例えば、向きベクトルqを表す二次方程式に、設置点の位置座標を代入しても二次方程式としての解が得られるか否かにより判定してもよい。或いは、注目度算出部120は、向きベクトルqを表す二次方程式と一定範囲内の領域を表す一次方程式とで解が得られるか否かにより判定してもよい。注目度算出部120は、例えば、空間情報記憶部130に記憶された対象物300-1,300-2の設定点を表す位置情報などを利用して、このような計算を行う。
【0090】
注目度算出部120は、向きベクトルqが対象物mと交差すると判定したとき(S141でYES)、対象mに対するカウント値を増加させる(S142)。例えば、注目度算出部120は、n倍した向きベクトルqが、対象物300-1の設置点の位置座標や、その周囲の領域で交差するとき、対象物300-1のカウント値をインクリメントする。
【0091】
次に、注目度算出部120は、終了判定を行い(S143)、カウント処理を終了させるときは(S143でYES)、終了し(S144)、終了させないときは(S143でNO)、人物iをインクリメントし(S145)、次の人物iに対して、どの対象物mに着目しているかを判定する(S141,S142)。
【0092】
一方、注目度算出部120は、向きベクトルqが対象物mと交差しないと判定したとき(S141でNo)、対象物mに対するカウント値を増加させることなく、終了判定を行う(S143)。
【0093】
例えば、注目度算出部120は、カウント処理を終了したとき(S144)、例えば、内部メモリなどに記憶した各対象物mに対するカウント値を、注目度記憶部140に記憶する。注目度算出部120は、表示装置へカウント値を出力することで、ユーザに対して、どの対象物300-1,300-2に群衆が着目しているかを、通知することができる。
【0094】
例えば、街中などで監視カメラを用いて群衆の画像が撮影された場合を考える。この場合、撮影された画像には、障害物や監視カメラの設置場所などによって、顔が隠れた人物が含まれる場合がある。このような場合、顔の部位の位置情報が得られない場合がある。
【0095】
本第1の実施の形態の情報処理装置100は、顔の部位の位置情報が得られないときであっても、位置情報が得られた他の部位の位置情報を利用して、補間処理(例えば図8のS132)により、顔の部位の位置情報を算出する。そして、情報処理装置100は、顔の位置情報と他の部位の位置情報とを用いて、向きベクトルqを算出する。従って、本情報処理装置100は、顔が隠れた人物の画像であっても、その人物の視線方向を推定することが可能である。
【0096】
[第2の実施の形態]
第1の実施の形態では、姿勢pなどは、2次元空間上のベクトルとして表現される例について説明した。本第2の実施の形態では、姿勢pなどが、3次元空間上のベクトルとして表現される例について説明する。このような3次元空間上のベクトルは、例えば、複数台のカメラ(又は撮像装置200)を用いて、計算が可能となる。
【0097】
図12は、2台のカメラの座標系と3次元空間上の位置座標の例を表す図である。図12に示す2台のカメラは、例えば、撮像装置200が2台あることを表している。
【0098】
図12において、Oは第1のカメラの原点、O’は第2のカメラの原点をそれぞれ表す。また、tは第1のカメラから第2のカメラへ向かう並進ベクトル、(X,Y,Z)は第1のカメラの座標系から見た部位の3次元位置座標をそれぞれ表す。さらに、Rは、第1のカメラから見た第2のカメラの回転角を表す回転行列、fは第1のカメラの焦点距離(原点Oから第1のカメラの画像座標系の原点までの距離)、f’は第2のカメラの焦点距離(原点O’から第2のカメラの画像座標系の原点までの距離)をそれぞれ表す。さらに、(x,y)は、第1のカメラの画像内(又は第1のカメラの画像座標系)における部位の2次元位置座標、(x’,y’)は、第2のカメラの画像内(又は第2のカメラの画像座標系)における部位の2次元位置座標をそれぞれ表す。
【0099】
図13は、第2の実施の形態における姿勢推定部110の構成例を表す図である。
【0100】
図13に示すように、姿勢推定部110は、第1及び第2のCNN処理部111-1,111-2、第1及び第2の候補点算出部112-1,112-2、第1及び第2のグルーピング処理部113-1,113-2を備える。また、姿勢推定部110は、同一人物特定処理部114、カメラ行列計算部115、及び3次元位置計算部116を備える。
【0101】
第1及び第2のCNN処理部111-1,111-2は、第1及び第2のカメラから出力された画像データに対して、CNN処理などを施して、各部位に対する確率分布φ(X,W)を出力する。第1及び第2のCNN処理部111-1,111-2の各々は、各カメラからの画像データに対して、例えば、第1の実施の形態と同様のCNN処理を施すことで、各カメラで撮像された画像の各部位に対する確率分布φ(X,W)を出力する。
【0102】
第1及び第2の候補点算出部112-1,112-2は、第1及び第2のCNN処理部111-1,111-2から出力された確率分布φ(X,W)に基づいて、各部位の候補点をそれぞれ算出する。第1及び第2の候補点算出部112-1,112-2の各々は、例えば、第1の実施の形態と同様に、確率分布φ(X,W)から極大点を探索するなどにより、候補点を算出する。
【0103】
第1及び第2のグルーピング処理部113-1,113-2は、第1及び第2の候補点算出部112-1,112-2から出力された候補点に対して、それぞれグルーピングを行う。第1及び第2のグルーピング処理部113-1,113-2の各々は、例えば、第1の実施の形態と同様に、各候補点の距離に基づいて、グルーピングを行う。
【0104】
同一人物特定処理部114は、第1及び第2のグルーピング処理部113-1,113-2から出力された、グループ化された候補点が同一人物の候補点であるか否かを、類似度を用いて特定する。同一人物特定処理部114は、類似度の高い候補点の組み合わせを同一人物の候補点であると判定して、その候補点を出力する。詳細は動作例で説明する。
【0105】
カメラ行列計算部115は、カメラ行列P,P’を計算する。カメラ行列Pは、例えば、図12に示すように、第1のカメラの画像座標系を3次元位置の座標系へ変換する行列を表す。また、カメラ行列P’は、例えば、第2のカメラの画像座標系を3次元位置の座標系を変換する行列を表す。カメラ行列計算部115は、同一人物特定処理部114から出力された各候補点と、計算したカメラ行列P,P’とを3次元位置計算部116へ出力する。カメラ行列P,P’の計算例は動作例で説明する。
【0106】
3次元位置計算部116は、例えば、カメラ行列P,P’を用いて、グループ化された各部位の候補点(2次元の位置座標)を3次元位置座標へ変換して、3次元位置ベクトルを含む姿勢pを出力する。詳細は動作例で説明する。
【0107】
図14は第2の実施の形態における動作例を表すフローチャートである。例えば、情報処理装置100は、図2に示すフローチャートに代えて、図14に示すフローチャートにより処理を行う。
【0108】
情報処理装置100は、処理を開始すると(S20)、第1のカメラで群衆を撮影し(S21)、第2のカメラでも同じ群衆を撮影する(S23)。例えば、撮像装置200が2台あり、一方の撮像装置200が第1のカメラ、他方の撮像装置200が第2のカメラとして、各々群衆を撮影する。
【0109】
次に、情報処理装置100は、第1のカメラで撮影された画像に含まれる各人物の姿勢を推定し(S22)、第2のカメラで撮影された画像に含まれる各人物の姿勢も推定する(S24)。例えば、第1のCNN処理部111-1、第1の候補点算出部112-1、及び第1のグルーピング処理部113-1において、第1のカメラで撮影された画像に含まれる各人物の姿勢を推定する。また、例えば、第2のCNN処理部111-2、第2の候補点算出部112-2、及び第2のグルーピング処理部113-2において、第2のカメラで撮影された画像に含まれる各人物の姿勢を推定する。
【0110】
次に、情報処理装置100は、2つのカメラで撮影された画像に対して、同一人物特定処理を行う(S25)。
【0111】
図15(A)は同一人物特定処理の例を表すフローチャートである。例えば、同一人物特定処理部114において行われる。
【0112】
同一人物特定処理部114は、同一人物特定処理を開始すると(S250)、第1のカメラで撮影した人物の画像をトリミング(又は切り抜き、或いは切り取り)し(S251)、第2のカメラで撮影された人物の画像をトリミングする(S252)。例えば、同一人物特定処理部114は、以下の処理を行う。
【0113】
すなわち、同一人物特定処理部114は、第1及び第2のグルーピング処理部113-1,113-2から、グループ化された候補点を入力する。そのため、同一人物特定処理部114は、候補点に基づいて、グループ化された候補点全体の周囲にある画像の画素値が一定の範囲内にある画素値を、第1及び第2の画像の画像データから抽出することで、人物の画像をトリミングする。例えば、人物の画像の各画素の画素値は、第1及び第2のCNN処理部111-1,111-2、第1及び第2の候補点算出部112-1,112-2,及び第1及び第2のグルーピング処理部113-1,113-2を介して、同一人物特定処理部114へ入力される。
【0114】
次に、同一人物特定処理部114は、類似度計算処理を行う(S253)。
【0115】
図15(B)は類似度計算処理の例を表すフローチャートである。
【0116】
同一人物特定処理部114は、類似度計算処理を開始すると(S2530)、第1及び第2のカメラで撮影された人物の部位の画像をトリミングする(S2531,S2533)。この場合も、例えば、同一人物特定処理部114は、候補点ごとに、候補点の周囲にある画像の画素値が一定の範囲内にある画素値を抽出することで、人物の部位の画像をトリミングする。同一人物特定処理部114は、例えば、第1及び第2のカメラで撮影された画像ごとに、このような部位の画像をトリミングする。
【0117】
次に、同一人物特定処理部114は、各々トリミングした部位の画像に対して、カラーヒストグラムを計算する(S2532,S2534)。例えば、同一人物特定処理部114は、以下の処理を行う。
【0118】
すなわち、同一人物特定処理部114は、各部位の画像の各画素を所定セル(例えば、8×8画素)にまとめ、所定セルごとに、RGBの各画素値(又は階調値)の出現回数を取得する。このような処理は、公知手法でよく、例えば、色情報を利用した局所特徴量であるCSS(Color Self-Similarity)特徴量を計算することで、カラーヒストグラムが計算されてよい。同一人物特定処理部114は、第1及び第2のカメラで撮影された画像ごとに、カラーヒストグラムを計算する。
【0119】
次に、同一人物特定処理部114は、カラーヒストグラム(S2532,S2534)を用いて平均2乗誤差を計算し、類似度を計算する(S2535)。例えば、同一人物特定処理部114は、以下の処理を行う。
【0120】
すなわち、同一人物特定処理部114は、第1のカメラで撮影した、ある部位の画像に対応するカラーヒストグラム(S2532)と、第2のカメラで撮影した、その部位の画像に対応するカラーヒストグラム(S2534)との平均2乗誤差を計算する。カラーヒストグラムでは、異なるカメラで撮影された部位の画像について、所定セルごとの画素値の出現回数として計算される。そのため、同一人物特定処理部114は、そのような2つの出現回数の誤差の2乗を算出し、その算出値の部位全体における平均値を算出する。同一人物特定処理部114は、算出した平均値の逆数を、類似度として計算する。同一人物特定処理部114は、部位ごとに、このような類似度を計算する。
【0121】
同一人物特定処理部114は、類似度を計算すると、類似度計算処理を終了する(S2536)。
【0122】
図15(A)に戻り、次に、同一人物特定処理部114は、類似度の高い組み合わせを探索する(S254)。例えば、同一人物特定処理部114は、部位ごとに計算した複数の類似度が、すべて類似度閾値以上のとき、第1のカメラで撮影した人物と第2のカメラで撮影した人物が同一人物であると判定し、そうでないときは、同一人物ではないと判定する。このような判定は、一例であって、同一人物特定処理部114は、類似度が類似度閾値以上となっている部位の個数が、個数閾値以上のとき、同一人物であると判定し、そうでないときは同一人物ではないと判定してもよい。例えば、類似度が高いほど、同一人物由来の部位画像である確率は高くなる。
【0123】
そして、同一人物特定処理部114は、同一人物特定処理を終了する(S255)。
【0124】
図14に戻り、次に、情報処理装置100は、カメラ行列P,P’を計算する(S26)。ここで、カメラ行列P,P’について説明する。
【0125】
図12に示すように、最初に、第1のカメラの座標系から見た部位の3次元位置座標(X,Y,Z)を第1のカメラの画像内における部位の2次元位置座標(x,y)と第2のカメラの画像内における部位の2次元位置座標(x’,y’)と並進ベクトルt、回転行列Rとで記述することを考える。
【0126】
まず、投資投影モデルによれば、3次元位置座標(X,Y,Z)は、2次元位置座標(x,y)と第1のカメラの焦点距離fを用いて、以下の式(9-1)または式(9-2)で記述される。
【0127】
【数9-1】
【0128】
【数9-2】
【0129】
同様にして、第2のカメラの座標系から見た部位の3次元位置座標(X’,Y’,Z’)は、以下の式(9-3)又は式(9-4)式で記述される。ここで、kとk’は「0」ではない実数である。
【0130】
【数9-3】
【0131】
【数9-4】
【0132】
一方、図12に示すように、第2カメラの座標系(X’,Y’,Z’)と第1カメラの座標系(X,Y,Z)の関係は、並進ベクトルtと回転行列Rを用いて以下の式(9-5)で記述できる。
【0133】
【数9-5】
【0134】
以上の式(9-1)、式(9-2)、式(9-3)、式(9-4)、及び式(9-5)を連立させて解けば、3次元位置座標(X,Y,Z)と2次元位置座標(x,y)と2次元位置座標(x’,y’)の関係が、並進ベクトルt、回転行列Rとを用いて以下の4つの式で記述されることが分かる。
【0135】
【数9-6】
【0136】
【数9-7】
【0137】
【数9-8】
【0138】
【数9-9】
【0139】
ここで、P,P’カメラ行列とよばれる行列である。2次元位置座標(x,y)と2次元位置座標(x’,y’)、並進ベクトルt、回転行列Rが分かれば、3次元位置座標(X,Y,Z)は、上記の式(9-6)、式(9-7)、式(9-8)、及び式(9-9)を逆に解くことで計算できることが分かった。
【0140】
以上から、カメラ行列計算部115は、例えば、以下の式を用いて、カメラ行列P,P’を計算する。
【0141】
【数10】
【0142】
【数11】
【0143】
式(10)と式(11)において、fは、スケールを調整するパラメータであり、例えば、f=1である。
【0144】
カメラ行列計算部115は、例えば、内部メモリに記憶された式(10)と式(11)を読み出して、第1及び第2のカメラの焦点距離f,f’、回転行列R、第1のカメラの原点Oから第2のカメラの原点O’へ向かうベクトルtを式(10)と式(11)に代入する。カメラ行列計算部115は、例えば、焦点距離f,f’、回転行列R、ベクトルtも内部メモリに記憶されており、これらの値を内部メモリから読み出して、式(10)と式(11)に代入すればよい。
【0145】
次に、情報処理装置100は、各部位の3次元位置(X,Y,Z)を計算する(S27)。例えば、3次元位置計算部116は、以下の式の連立方程式を解くことで、(X,Y,Z)を計算する。
【0146】
【数12】
【0147】
【数13】
【0148】
【数14】
【0149】
【数15】
【0150】
例えば、3次元位置計算部116は、以下の処理を行う。すなわち、3次元位置計算部116は、内部メモリに記憶された式(12)から式(15)を読み出して、S26で計算したカメラ行列P,P’の各成分と、部位の位置座標(x,y),(x’,y’)を、式(12)から式(15)に代入する。そして、3次元位置計算部116は、式(12)から式(15)の連立方程式を解くことで、部位の3次元位置座標(X,Y,Z)を得る。この場合、3次元位置計算部116は、計算した部位の3次元位置座標を、式(1)に代入することで、3次元ベクトルとして表現された姿勢pを得る。
【0151】
以降は、情報処理装置100は、第1の実施の形態と同様に、姿勢pを利用して、S13からS17の処理を行って、向きベクトルqを算出し、一連の処理を終了する(S28)。S13からS17の処理においては、情報処理装置100は、例えば、3次元位置座標を用いて処理を行い、3次元位置ベクトルとして表現された向きベクトルqを得る。
【0152】
このように本第2の実施の形態では、姿勢pや向きベクトルqを3次元位置ベクトルとして表現できるため、2次元位置ベクトルを利用した第1の実施の形態と比較して、正確な向きベクトルqを得ることが可能となる。
【0153】
[第3の実施の形態]
第1の実施の形態では、注目度算出処理(例えば図8のS130)において、一定の部位に着目して、視えていない部位については補間する処理について説明した。例えば、ある人物iの視えていない部位kの数が閾値以下でないとき、補間によりそのような部位kを算出しても、その部位kの位置ベクトル =(x を精度良く算出することができない場合がある。
【0154】
本第3の実施の形態の情報処理装置100は、人物iの姿勢は、隣接する人物tの姿勢に似る傾向を持つという、経験測に基づいて、人物iの姿勢pだけではなく、人物tの姿勢pも利用して、人物iの位置ベクトル =(x を算出する。
【0155】
図16は、第3の実施の形態における注目度算出処理の例を表すフローチャートである。ただし、撮像装置200により群衆が撮影され(図2のS11)、姿勢推定部110において、姿勢推定処理(図2のS12)により、人物iの姿勢pと人物tの姿勢pとが得られているものとする。
【0156】
注目度算出部120は、注目度算出処理を開始すると(S130)、ある人物iの視えていない部位(とくに顔の部位)の数が閾値以下か否かを判定する(S135)。例えば、注目度算出部120は、姿勢推定部110から出力された姿勢pにおいて、v =0となっている数が閾値以上となっているか否かを判定する。この場合、例えば、注目度算出部120は、顔の部位(j=1~5)に着目し、その部位のv が「0」となっている数が閾値以上か否かを判定してもよい。
【0157】
注目度算出部120は、視えていない部位の数が閾値よりも多いとき(S135でNO)、視えていない部位kの位置ベクトル =(x を補間により算出する(S136)。例えば、注目度算出部120は、以下の式を用いて、位置ベクトルa を算出する。
【0158】
【数16】
【0159】
式(16)において、ak1 ,ak2 ,…,akM1 は、人物iにおいて視えている部位の位置ベクトル、ak1 ,ak2 ,…,akM2 は、人物iに隣接する人物tにおいて視えている部位の位置ベクトルをそれぞれ表す。また、A M1,M2は、2M行2M +2M の行列である。A M1,M2とb M1,M2は、例えば、姿勢sの集合P(教師データ)を用いて、式(6)と同様に、以下の式を用いて算出する。
【0160】
【数17】
【0161】
例えば、注目度算出部120は、以下の処理を行う。すなわち、注目度算出部120は、姿勢推定部110から出力された姿勢pと姿勢pに基づいて、人物iの中心座標と、人物tの中心座標を求める。注目度算出部120は、2つの中心座標が閾値以内であれば、人物tは人物iに隣接すると判定する。隣接すると判定すると、注目度算出部120は、内部メモリから式(17)を読み出して、A M1,M2とb M1,M2を計算する。注目度算出部120は、姿勢pからv =1となっている位置ベクトルと、姿勢pからv =1となっている位置ベクトル、及び計算したA M1,M2とb M1,M2を、式(16)の右辺に代入することで、人物iの視えていない部位kの位置ベクトルa を算出する。
【0162】
次に、注目度算出部120は、視えている部位の位置ベクトルak1 ,ak2 ,…,akM1 と、補間により算出した、視えていない部位kの位置ベクトルa とを利用して、人物iの向きベクトルqを算出する(S137)。例えば、注目度算出部120は、第1の実施の形態と同様に式(7)を用いて向きベクトルqを算出する。
【0163】
そして、注目度算出部120は、注目度算出処理を終了する(S138)。
【0164】
一方、注目度算出部120は、視えていない部位の数が閾値以下のとき(S135でYES)、姿勢pに基づいて、人物iの向きベクトルqを算出する(S137)。この場合、姿勢pには、部位の位置座標が一部含まれないこともあるが、そのような場合は、注目度算出部120は、行列Wの成分を調整して、そのような行列Wを含む式(7)を利用して、向きベクトルqを算出する。
【0165】
以降、情報処理装置100は、第1の実施の形態と同様の処理(S15からS17)を行う。
【0166】
このように、本第3の実施の形態では、情報処理装置100は、視えていない部位の数が閾値よりも多いときは、処理対象の人物iに隣接する人物tの位置ベクトルを利用して、人物iの部位の位置ベクトルを補間により算出している。従って、補間処理を行わない場合と比較して、本第3の実施の形態の情報処理装置100は、視えていない部位の位置を精度よく算出することができ、さらに、向きベクトルqを精度よく算出することも可能となる。
【0167】
[第4の実施の形態]
第1の実施の形態で利用した式(5)と式(7)は、線形な関数として表現されている。そのため、対象に対する関数の近似能力に限界がある場合がある。そこで、本第4の実施の形態では、式(5)と式(7)に非線形な関数を用いる。これにより、例えば、線形な関数を用いた場合と比較して、対象に対する近似能力を高めるようにする。
【0168】
本第4の実施の形態の情報処理装置100は、式(5)に代えて、以下の式を用いて、視えていない部位kの位置ベクトルa を補間により算出する。
【0169】
【数18】
【0170】
【数19】
【0171】
式(18)において、Dl1 は、l1行2M列の行列、Dl2 l1は、l2行11列の行列、D l2は、k行l2列の行列をそれぞれ表す。また、ak1 ,ak2 ,…,akM は、人物iにおいて視えている部位の位置ベクトルを表す。また、式(19)において、δ(x)は活性化関数であり、αとβは、α≠βとなる予め決められた実数をそれぞれ表す。
【0172】
行列Dl1 ,Dl2 l1,及びD l2は、例えば、式(6)と同様に、姿勢sの集合Pを用いて、以下の式を解くことで得られる行列である。
【0173】
【数20】
【0174】
例えば、注目度算出部120は、補間処理(図8のS132)として、以下の処理を行う。すなわち、注目度算出部120は、内部メモリに記憶されたs と、sk1 ,sk2 ,…,skM とを内部メモリから読み出し、内部メモリから読み出した式(20)に代入し、行列Dl1 ,Dl2 l1,及びD l2を得る。そして、注目度算出部120は、内部メモリに記憶された式(18)を内部メモリから読み出して、式(20)で得た行列Dl1 ,Dl2 l1,及びD l2と、姿勢sから抽出したak1 ,ak2 ,…,akM とを、式(18)に代入する。これにより、注目度算出部120は、視えていない部位kの位置ベクトルa を算出する。
【0175】
また、本第4の実施の形態の情報処理装置100は、式(7)に代えて、以下の式を用いて、人物iの向きベクトルqを算出する。
【0176】
【数21】
【0177】
式(21)において、Wl1 は、l1行2J列の行列、Wl2 l1は、l2行11列の行列、W l2は、k行l2列の行列をそれぞれ表す。
【0178】
行列Wl1 ,Wl2 l1,W l2は、例えば、式(8)と同様に、姿勢sの集合Pを用いて、以下の式を解くことで得られる行列である。
【0179】
【数22】
【0180】
例えば、注目度算出部120は向きベクトルqの算出処理(図8のS133)として、以下の処理を行う。すなわち、注目度算出部120は、内部メモリに記憶されたq と、s ,s ,…,s とを内部メモリから読み出し、内部メモリに記憶された式(22)を内部メモリから読み出して、式(22)に代入し、行列Wl1 ,Wl2 l1,W l2を得る。注目度算出部120は、内部メモリに記憶された式(21)を内部メモリから読み出して、式(22)で得た行列Wl1 ,Wl2 l1,W l2と、姿勢sから抽出したa ,a ,…,a とを、式(21)に代入し、人物iの向きベクトルqを算出する。
【0181】
なお、式(18)において、3つの行列Dl1 ,Dl2 l1,D l2を用いる例について説明した。例えば、注目度算出部120は、このうち2つの行列を用いて式(18)を計算してもよい。また、例えば、注目度算出部120は、3つの行列Wl1 ,Wl2 l1,W l2ではなく、このうち、2つの行列を用いて式(21)を計算してもよい。
【0182】
[第5の実施の形態]
第1の実施の形態では、注目度を算出する例について説明した。本第5の実施の形態では、算出した注目度の変化を検出する例について説明する。情報処理装置100において、このような注目度の変化を検出することで、例えば、群衆が視線を向けている方向が突然変化したような状況が発生したことを検知でき、そのような状況が発生した時間を検出することも可能となる。
【0183】
図17は、第5の実施の形態における情報処理システム10の構成例を表す図である。
【0184】
図17に示すように、情報処理装置100は、さらに、変化検知部150を備える。変化検知部150は、注目度記憶部140から注目度を読み出し、例えば、その時間的な変化を検知する。変化検知部150は、検知した結果を、例えば、外部の表示装置へ出力し、ユーザへ知らせることが可能である。
【0185】
図18は、情報処理装置100の動作例を表すフローチャートである。図18において、S11からS15までの処理は、第1の実施の形態と同様である。
【0186】
情報処理装置100は、各人物iの注目度(又は向きベクトルq)を注目度記憶部140に記録すると(S15)、注目度変化検出処理(S18)を行う。
【0187】
図19は、注目度変化検出処理の例を表すフローチャートである。図19の各処理は、例えば、変化検知部150で行われる。
【0188】
変化検知部150は、注目度検出処理を開始すると(S180)、注目度ベクトルu を、時刻(T-n)<t≦(T-m)と、時刻(T-m)<tとの2つの集合に分ける(S181)。
【0189】
ここで、注目度ベクトルu は、例えば、時刻tにおける人物iの向きベクトルq を正規化したものであり、以下の式で定義される。
【0190】
【数23】
【0191】
また、時刻(T-n)<t≦(T-m)(ただし、n>m)での注目度ベクトルの集合を、UT-n<t≦T-mとすると、注目度ベクトルの集合UT-n<t≦T-mは、例えば、以下の式で定義される。
【0192】
【数24】
【0193】
図20は、時刻t、時刻(T-n)、時刻(T-m)の関係例を表す図である。各時刻tにおいて、1つの注目度ベクトルuが算出されるものとすると、時刻tが現在時刻Tのとき、時刻t=T-nから時刻t=Tまでは、n個の注目度ベクトルuが算出される。また、時刻tが時刻(T-n)から時刻t=(T-m)までの間で算出された注目度ベクトルの個数は(n-m)個であり、時刻(T-m)から現在時刻Tまでの間で算出された注目度ベクトルの個数はm個となる。図20に示すように、時刻(T-m)を境に、前半と後半に別れ、注目度ベクトルの集合UT-n<t≦T-mは、前半である、時刻(T-n)から時刻(T-m)までの注目度ベクトルu の集合を表している。
【0194】
変化検知部150は、S181の処理として、例えば、以下の処理を行う。すなわち、変化検知部150は、注目度記憶部140から、時刻(T-n)から現在時刻Tまでのn個の向きベクトルqを、注目度記憶部140から読み出す。そして、変化検知部150は、内部メモリに記憶された式(22)を読み出して、式(22)に向きベクトルqを代入して、n個の注目度ベクトルu を算出する。変化検知部150は、n個の注目度ベクトルu を、時刻(T-n)<t≦(T-m)までの(n-m)個の注目度ベクトルの集合と、時刻(T-m)<tまでのm個の注目度ベクトルの集合に分ける。前者の注目度ベクトルの集合は、例えば、式(24)として表される。
【0195】
図19に戻り、変化検知部150は、時刻(T-n)<t≦(T-m)までの(n-m)個の注目度ベクトルの集合UT-n<t≦T-mに対して、注目度ベクトルu の確率分布p(u )を推定する(S182)。本処理においては、確率分布p(u )は、例えば、混合フォン・ミーゼス分布(又はフォンミーゼスフィッシャー分布)に沿って分布すると仮定する。混合フォン・ミーゼス分布は、例えば、注目度ベクトルu の始点をd次元(dは例えば2又は3)空間上の原点にとった場合、注目度ベクトルu の向きがどのような方向へ確率的に分布しているかを表している。
【0196】
図21(A)は入力画像、図21(B)は、入力画像に対して、注目度ベクトルu の確率分布の例をそれぞれ表す図である。図21(A)と図21(B)に示すように、画像において群衆は主に2つの方向へ視線を向けているため、注目度ベクトルu の向きも主に2つの方向へ分布している。図21(B)は、混合フォン・ミーゼス分布の例を表している。
【0197】
変化検知部150は、例えば、以下の式を用いて、注目度ベクトルu の集合UT-n<t≦T-mに対して、確率分布p(u )を推定する。
【0198】
【数25】
【0199】
式(25)において、M(u |μ,σ)は、例えば、以下の式を用いて算出される。
【0200】
【数26】
【0201】
式(26)において、Iρ(γ)は、例えば、以下の式を用いて算出される。
【0202】
【数27】
【0203】
式(25)から式(27)において、dは注目度ベクトルu の次元数(2又は3)、Iρ(γ)はρ階の第1種変形ベッセル関数をそれぞれ表す。また、式(25)から式(27)において、α,μ,σは、パラメータである。パラメータα,μ,σの推定は、例えば、注目度ベクトルの集合UT-n<t≦T-mを用いて、公知の期待値最大化法を用いて推定可能である。
【0204】
例えば、変化検知部150は、S182において、以下の処理を行う。すなわち、変化検知部150は、時刻(T-n)<t≦(T-m)までの注目度ベクトルの集合UT-n<t≦T-mに対して、期待値最大化法などを用いて、パラメータα,μ,σを推定する。そして、変化検知部150は、内部メモリに記憶された式(25)から式(27)を読み出して、推定したパラメータα,μ,σや、注目度ベクトルu を、式(25)から式(27)に代入することで、確率分布p(u )を推定する。
【0205】
図19に戻り、次に、変化検知部150は、時刻(T-m)<tでの注目度ベクトルの集合UT-m<tの異常度βを計算する(S183)。異常度βは、例えば、以下の式で計算される。
【0206】
【数28】
【0207】
式(28)に示すように、異常度βは、例えば、時刻(T-n)<t≦(T-m)における注目度ベクトルの集合UT-n<t≦T-mに対する確率分布p(u )を基準にして、時刻(T-m)<tの注目度ベクトルの集合UT-m<tの分布がどれだけ外れているかを表している。注目度ベクトルの集合UT-m<tの分布が、注目度ベクトルの集合UT-n<t≦T-mに対する確率分布p(u )から外れたときは、異常度βの値は大きな値をとり、そうでないときは小さな値をとり得る。
【0208】
例えば、変化検知部150は、内部メモリに記憶された式(28)を読み出して、S182で推定した確率分布p(u )を、式(28)に代入することで、異常度βを計算する。
【0209】
次に、変化検知部150は、異常度βが閾値以上か否かを判定する(S184)。変化検知部150は、異常度βが閾値以上のとき(S184でYES)、変化をユーザへ知らせる。そして、変化検知部150は、注目度変化検出処理を終了する(S186)。一方、変化検知部150は、異常度βが閾値より小さいとき(S184でNO)、S184の処理を行うことなく、注目度変化検出処理を終了する(S186)。
【0210】
変化検知部150は、例えば、以下の処理を行う。すなわち、変化検知部150は、S183で計算した異常度βと、内部メモリに記憶された閾値と比較して、異常度βが閾値以上のとき、変化があったこと、変化があった時刻(例えば、時刻t=(T-m))を外部の表示装置へ出力する。一方、変化検知部150は、異常度βが閾値より小さいときは、変化を通知することなく処理を終了する。
【0211】
図21(A)から図21(D)は、例えば、ある時刻(T-m)を境に群衆の視線方向が変化している様子を表している。図21(A)と図21(C)に示すように、視線方向に変化が生じると、向きベクトルqも変化し、注目度ベクトルu も変化する。そのため、注目度ベクトルの集合UT-n<t≦T-mに対する確率分布p(u )を基準(図21(B))にすると、注目度ベクトルの集合UT-m<tの分布が大きくはずれ(図21(D))、異常度βも大きくなる。
【0212】
情報処理装置100では、このような変化の検知結果を外部の表示装置へ出力することで、ユーザに対して、変化が発生したことや変化が発生した時刻をユーザに通知することができる。これにより、例えば、セキュリティ用の都市監視において、視線方向においてイベントが発生したことやその発生時刻などを、ユーザに知らせることが可能となる。
【0213】
[その他の実施の形態]
図22は、情報処理装置100のハードウェア構成例を表す図である。
【0214】
情報処理装置100は、インタフェース部180、メモリ181、CPU(Central Processing Unit)182、ROM(Read Only Memory)183、及びRAM(Random Access Memory)184を備える。
【0215】
インタフェース部180は、例えば、撮像装置200から出力された画像データをメモリ181やCPU182へ出力する。
【0216】
メモリ181は、例えば、第1の実施の形態の空間情報記憶部130と注目度記憶部140に対応する。また、メモリ181は、例えば、姿勢推定部110、注目度算出部120、及び第5の実施の形態の変化検知部150における内部メモリに対応する。
【0217】
CPU182は、例えば、ROM183に記憶されたプログラムを読み出して、RAM184にロードし、ロードしたプログラムを実行することで、姿勢推定部110、注目度算出部120、及び変化検知部150の機能を実現する。CPU182は、例えば、姿勢推定部110、注目度算出部120、及び変化検知部150に対応する。
【0218】
なお、CPU182にえて、MPU(Micro Processing Unit)やDSP(Digital Signal Processor)、FPGA(Field Programmable Gate Array)などのプロセッサやコントローラなどが用いられてもよい。
【0219】
以上まとめると、付記のようになる。
【0220】
(付記1)
入力画像データに対して、人物の部位に関する正解データを利用して、画像に含まれる人物の部位の位置情報を推定し、
前記部位のうち顔の部位の位置情報を推定することができなかったとき、推定することができた他の部位の位置情報に基づいて、画像に含まれる人物の視線方向を推定する、
処理をコンピュータに実行させることを特徴とするプログラム。
【0221】
(付記2)
前記顔の部位の位置情報には、鼻、左目、右目、左耳、右耳、首、左肩、及び右肩の少なくともいずれか1つの位置情報を含むことを特徴とする付記1記載のプログラム。
【0222】
(付記3)
前記入力画像データに対して、前記正解データを利用して、前記人物の各部位の確率分布を計算し、前記各部位の確率分布に基づいて、前記各部位の候補点を探索し、前記各部位の候補点を人物ごとにグルーピングすることにより、前記人物の部位の位置情報を推定することを特徴とする付記1記載のプログラム。
【0223】
(付記4)
前記正解データを利用して、所定画像の画像データに対するフィルタリング処理を行い、フィルタリング処理後の画像データから、複数画素を含むブロック単位に最大値を抽出するプーリング処理を行い、前記フィルタリング処理と前記プーリング処理とを繰り返して、人物の各部位の確率分布の正解データを生成し、前記人物の各部位の確率分布の正解データを利用して、入力画像データに対する前記フィルタリング処理を行い、フィルタリング処理後の画像データから、前記ブロック単位に最大値を抽出する前記プーリング処理を行い、前記フィルタリング処理と前記プーリング処理とを繰り返して、前記各部位の確率分布を生成することを特徴とする付記3記載のプログラム。
【0224】
(付記5)
前記各部位の確率分布に基づいて、極大点となっている位置座標を前記各部位の候補点とすることを特徴とする付記3記載のプログラム。
【0225】
(付記6)
前記極大点が閾値より小さいとき、前記部位が前記画像に含まれていないと判定し、前記極大点が閾値以上のとき、前記部位が画像に含まれていると判定することを特徴とする付記5記載のプログラム。
【0226】
(付記7)
前記入力画像データに対して、各部位を接続した確率分布の正解データを利用して、フィルタリング処理を行い、フィルタリング処理後の画像データから、複数画素を含むブロック単位に最大値を抽出するプーリング処理を行い、前記フィルタリング処理と前記プーリング処理とを繰り返して、前記各部位のつながり度合いを示す確率分布を生成し、生成した確率分布と前記各部位の候補点とに基づいて、人物ごとに前記候補点をグルーピングすることを特徴とする付記3記載のプログラム。
【0227】
(付記8)
入力画像データに基づいて、人物の部位に関する正解データを利用して、画像に含まれる人物の部位の位置情報と、前記画像に前記部位が含まれるか否かを示すパラメータとを含む姿勢ベクトルを推定することを特徴とする付記1記載のプログラム。
【0228】
(付記9)
前記顔の部位が前記画像に含まれるか否かを示す前記パラメータに基づいて、前記部位のうち顔の部位の位置情報を推定することができなかったことを判定することを特徴する付記8記載のプログラム。
【0229】
(付記10)
内部メモリから読み出した以下の式(29)に、推定することができた他の部位の位置情報を表す位置ベクトルak1 ,ak2 ,…,akM を代入することで、前記部位のうち顔の部位の位置情報を表す位置ベクトルa を算出することを特徴とする付記1記載のプログラム。
【数29】
(ただし、 は2行2列の行列、b は2行1列の縦ベクトル、Mは0<M≦jを満たす整数をそれぞれ表し、 とb は、姿勢sの集合Pを用いて、以下の式(30)を解くことで算出される。)
【数30】
【0230】
(付記11)
内部メモリから読み出した以下の式(31)に、前記顔の部位の位置情報と前記他の部位の位置情報とを表す位置ベクトルa ,a ,…,a を以下の式(31)に代入することで、画像に含まれる人物iの視線方向を表す向きベクトルqを算出することを特徴とする付記1記載のプログラム。
【数31】
(ただし、Wは2行2列の行列、wは2行1列の縦ベクトル、jは前記人物の部位をそれぞれ表し、姿勢sの集合Pと、姿勢sが持つ向きベクトルq、及び姿勢sの部位番号kの部位の位置ベクトルs=(x,yを用いて、Wとwは、以下の式(32)を解くことで算出される。)
【数32】
【0231】
(付記12)
内部メモリから読み出した以下の式(33)に基づいて、画像に含まれる人物iの視線方向を表す向きベクトルqを算出することを特徴とする付記1記載のプログラム。
【数33】
(ただし、式(33)において、wとwはパラメータを表す)
【0232】
(付記13)
内部メモリから読み出した式(33)に、前記顔の部位の位置情報と前記他の部位の位置情報とを表す、鼻、首、左肩、及び右肩の各部位のx軸方向の位置座標x ,x ,x ,x を代入することで、画像に含まれる人物iの視線方向を表す向きベクトルqを算出することを特徴とする付記11記載のプログラム。
【0233】
(付記14)
前記向きベクトルqと、空間情報記憶部から読み出した対象物の位置座標とに基づいて、前記対象物に視線を向けている人物の数をカウントすることを特徴とする付記11記載のプログラム。
【0234】
(付記15)
第1のカメラで撮影された第1の画像の第1の画像データに対して、前記正解データを利用して、前記第1の画像に含まれる人物の部位の2次元座標として表される第1の位置座標を推定し、第2のカメラで撮影された第2の画像の第2の画像データに基づいて、前記正解データを利用して、前記第2の画像に含まれる人物の部位の2次元座標として表される第2の位置座標を推定し、
前記第1の位置座標と前記第2の位置座標とを、部位の3次元位置座標へ変換し、
前記3次元位置座標を利用して、前記人物の顔の部位の位置情報を算出し、画像に含まれる人物の視線方向を推定することを特徴とする付記1記載のプログラム。
【0235】
(付記16)
前記第1の画像における前記部位の各画素値の第1の出現回数と、前記第2の画像における前記部位の各画素値の第2の出現回数とに基づいて、前記第1の画像内における人物と前記第2の画像内における人物とが同一人物であるか否かを判定し、同一人物であると判定したとき、同一人物の3次元位置座標(X,Y,Z)への変換を行うことを特徴とする付記15記載のプログラム。
【0236】
(付記17)
内部メモリから読み出した以下の式(34)と式(35)に、前記第1のカメラの原点から前記第1の位置座標の原点までの焦点距離を表すf、前記第2のカメラの原点から前記第2の位置座標の原点までの焦点距離を表すf’、前記第1のカメラから見た前記第2のカメラの回転角を表すR、前記第1のカメラから前記第2のカメラへ向かう並進ベクトルを表すtを代入して、カメラ行列P,P’を算出し、
前記内部メモリから読み出した以下の式(36)から式(39)に、カメラ行列P,P’の各成分と、前記第1の位置座標を表す(x,y)、前記第2の位置座標を表す(x’,y’)を代入して、式(36)から式(39)に示す連立方程式を解くことで、前記部位の3次元位置座標への変換を行うことを特徴とする付記15記載のプログラム。
【数34】
【数35】
【数36】
【数37】
【数38】
【数39】
【0237】
(付記18)
推定することができなかった第1の人物の前記部位のうち顔の部位の位置情報の数が閾値よりも多いとき、第1の人物において推定することができた他の部位の位置情報と、第1の人物に隣接する第2の人物において推定することができた部位の位置情報とに基づいて、第1の人物において推定することができなかった前記顔の部位の位置情報を算出することを特徴とする付記1記載のプログラム。
【0238】
(付記19)
内部メモリから読み出した以下の式(40)に、推定することができた他の部位の位置情報を表す位置ベクトルak1 ,ak2 ,…,akM を代入することで、前記部位のうち顔の部位の位置情報を表す位置ベクトルa を算出することを特徴とする付記1記載のプログラム。
【数40】
(ただし、式(40)において、δ(x)は、以下の式(41)に示す活性化関数であり、式(40)において、行列Dl1 ,Dl2 l1,及びD l2は、姿勢sの集合Pを用いて、以下の式(42)を解くことで得られる行列である。)
【数41】
【数42】
【0239】
(付記20)
内部メモリから読み出した以下の式(43)に、前記顔の部位の位置情報と前記他の部位の位置情報を表す位置ベクトルa ,a ,…,a を代入することで、画像に含まれる人物iの視線方向を表す向きベクトルqを算出することを特徴とする付記1記載のプログラム。
【数43】
(ただし、式(43)において、δ(x)は、以下の式(44)に示す活性化関数であり、式(43)において、行列Wl1 ,Wl2 l1,W l2は、姿勢sの集合Pを用いて、以下の式(45)を解くことで得られる行列である。)
【数44】
【数45】
【0240】
(付記21)
さらに、推定した前記人物の視線方向の変化を検知し、検知結果を出力する
ことを特徴とする付記1記載のプログラム。
【0241】
(付記22)
時刻tを現在時刻Tとしたとき、推定した前記人物の視線方向を表す向きベクトルを正規化した注目度ベクトルを、時刻(T-n)から時刻(T-m)までに取得した第1の注目度ベクトルの集合と、時刻(T-m)から時刻tまでに取得した第2の注目度ベクトルの集合に分けて、前記第1の注目度ベクトルの集合に基づいて、前記第2の注目度ベクトルの集合の異常度を計算し、前記異常度が閾値以上のとき、時刻(T-m)を境にして視線方向に変化があったことを示す検知結果を出力することを特徴とする付記21記載のプログラム。
【0242】
(付記23)
内部メモリから読み出した以下の式(46)に、時刻(T-n)から時刻(T-m)までに取得した前記人物の視線方向を表す向きベクトルqを代入して、時刻(T-n)から時刻(T-m)までに取得した第1の注目度ベクトルの集合に含まれる注目度ベクトルu を求め、
【数46】
前記内部メモリから読み出した以下の式(47)に、注目度ベクトルu を代入して、時刻(T-n)から時刻(T-m)までに取得した第1の注目度ベクトルの集合における注目度ベクトルu の確率分布p(u )を算出し、
【数47】
前記内部メモリから読み出した以下の式(48)に、確率分布p(u )を代入することで、異常度βを算出することを特徴とする付記21記載のプログラム。
【数48】
(ただし、式(46)は、以下の式(49)と式(50)を用いて算出され、α,μ,σはパラメータを表す。)
【数49】
【数50】
【0243】
(付記24)
前記部位のうち顔の部位の位置情報を推定することができなかったとき、推定することができた他の部位の位置情報を利用して、前記顔の部位の位置情報を算出し、前記顔の部位の位置情報と前記他の部位の位置情報に基づいて、画像に含まれる人物の視線方向を推定することを特徴とする付記1記載のプログラム。
【0244】
(付記25)
入力画像データに対して、人物の部位に関する正解データを利用して、画像に含まれる人物の部位の位置情報を推定する姿勢推定部と、
前記部位のうち顔の部位の位置情報を推定することができなかったとき、推定することができた他の部位の位置情報に基づいて、画像に含まれる人物の視線方向を推定する注目度算出部と
を備えることを特徴とする情報処理装置。
【0245】
(付記26)
姿勢推定部と注目度算出部とを有する情報処理装置における情報処理方法であって、
前記姿勢推定部により、入力画像データに対して、人物の部位に関する正解データを利用して、画像に含まれる人物の部位の位置情報を推定し、
前記注目度算出部により、前記部位のうち顔の部位の位置情報を推定することができなかったとき、推定することができた他の部位の位置情報に基づいて、画像に含まれる人物の視線方向を推定する
ことを特徴とする情報処理方法。
【符号の説明】
【0246】
10:情報処理システム 100:情報処理装置
110:姿勢推定部 111:CNN処理部
111-1:第1のCNN処理部 111-2:第2のCNN処理部
112:候補点算出部 112-1:第1の候補点算出部
112-2:第2の候補点算出部 113:グルーピング処理部
113-1:第1のグルーピング処理部 113-2:第2のグルーピング処理部
114:同一人物特定処理部 115:カメラ行列計算部
116:3次元位置計算部 120:注目度算出部
130:空間情報記憶部 140:注目度記憶部
150:変化検知部 200:撮像装置
300-1,300-2:対象物
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22