特開2019-211850(P2019-211850A)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

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

▶ 株式会社日立製作所の特許一覧
<>
  • 特開2019211850-骨格検出装置、及び骨格検出方法 図000004
  • 特開2019211850-骨格検出装置、及び骨格検出方法 図000005
  • 特開2019211850-骨格検出装置、及び骨格検出方法 図000006
  • 特開2019211850-骨格検出装置、及び骨格検出方法 図000007
  • 特開2019211850-骨格検出装置、及び骨格検出方法 図000008
  • 特開2019211850-骨格検出装置、及び骨格検出方法 図000009
  • 特開2019211850-骨格検出装置、及び骨格検出方法 図000010
  • 特開2019211850-骨格検出装置、及び骨格検出方法 図000011
  • 特開2019211850-骨格検出装置、及び骨格検出方法 図000012
  • 特開2019211850-骨格検出装置、及び骨格検出方法 図000013
  • 特開2019211850-骨格検出装置、及び骨格検出方法 図000014
  • 特開2019211850-骨格検出装置、及び骨格検出方法 図000015
  • 特開2019211850-骨格検出装置、及び骨格検出方法 図000016
  • 特開2019211850-骨格検出装置、及び骨格検出方法 図000017
  • 特開2019211850-骨格検出装置、及び骨格検出方法 図000018
  • 特開2019211850-骨格検出装置、及び骨格検出方法 図000019
  • 特開2019211850-骨格検出装置、及び骨格検出方法 図000020
  • 特開2019211850-骨格検出装置、及び骨格検出方法 図000021
  • 特開2019211850-骨格検出装置、及び骨格検出方法 図000022
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2019-211850(P2019-211850A)
(43)【公開日】2019年12月12日
(54)【発明の名称】骨格検出装置、及び骨格検出方法
(51)【国際特許分類】
   G06T 7/00 20170101AFI20191115BHJP
   G06T 7/543 20170101ALI20191115BHJP
【FI】
   G06T7/00 660B
   G06T7/543
【審査請求】未請求
【請求項の数】15
【出願形態】OL
【全頁数】23
(21)【出願番号】特願2018-105050(P2018-105050)
(22)【出願日】2018年5月31日
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000198
【氏名又は名称】特許業務法人湘洋内外特許事務所
(72)【発明者】
【氏名】中道 拓也
(72)【発明者】
【氏名】渡邊 昭信
(72)【発明者】
【氏名】瀬尾 欣穂
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096DA02
5L096EA37
5L096EA45
5L096FA09
5L096FA66
(57)【要約】
【課題】骨格検出装置において、実像の誤認識を低減することを目的とする。
【解決手段】骨格検出装置は、撮像部により人物を撮像して得られた3次元データから人体骨格情報を検出する骨格推定部と、骨格推定部により得られた人体骨格情報から人体情報を生成する人体情報生成部と、人体情報生成部により得られた複数の人体情報を用いて、3次元データに含まれる人物の実像と虚像とからなる鏡像対を検出する鏡像対検出部と、鏡像対検出部により検出された鏡像対のうち、撮像部からの距離が遠い方を虚像と判断する虚像判断部とを備える。
【選択図】 図2
【特許請求の範囲】
【請求項1】
撮像部により人物を撮像して得られた3次元データから人体骨格情報を検出する骨格推定部と、
前記骨格推定部により得られた人体骨格情報から人体情報を生成する人体情報生成部と、
前記人体情報生成部により得られた複数の人体情報を用いて、前記3次元データに含まれる前記人物の実像と虚像とからなる鏡像対を検出する鏡像対検出部と、
前記鏡像対検出部により検出された鏡像対のうち、前記撮像部からの距離が遠い方を虚像と判断する虚像判断部と、
を備える骨格検出装置。
【請求項2】
請求項1に記載の骨格検出装置であって、
前記鏡像対検出部により検出された鏡像対における対応する2点を用いて鏡面候補点を算出する鏡面候補点算出部と、
該鏡面候補点算出部により算出された鏡面候補点を保存する鏡面候補点保存部と、
該鏡面候補点保存部に保存された複数の鏡面候補点から鏡面を推定する鏡面推定部と、
備える骨格検出装置。
【請求項3】
請求項2に記載の骨格検出装置であって、
前記鏡面候補点算出部は、前記鏡像対における2点を結ぶ線分の垂直二等分面と、前記虚像判断部により判断された虚像における前記点と前記撮像部を結ぶ線分との交点を、前記鏡面候補点として算出する骨格検出装置。
【請求項4】
請求項2に記載の骨格検出装置であって、
前記鏡面推定部により推定された鏡面を保存する鏡面保存部と、
前記撮像部により得られた3次元データのうち前記鏡面推定部により推定された鏡面よりも前記撮像部から見て遠方の3次元データを除去する虚像除去部とを有し、
前記骨格推定部は、前記虚像除去部により得られた3次元データから人体骨格情報を検出する骨格検出装置。
【請求項5】
請求項2に記載の骨格検出装置であって、
前記鏡面推定部により推定された鏡面を保存する鏡面保存部と、
前記撮像部により得られた3次元データを前記鏡面推定部により推定された鏡面を対称面として折り返した重畳3次元データを生成する鏡像重畳部とを有し、
前記骨格推定部は、前記鏡像重畳部により得られた重畳3次元データから人体骨格情報を検出する骨格検出装置。
【請求項6】
請求項2に記載の骨格検出装置であって、
前記鏡面推定部により推定された鏡面を提示する鏡面提示部を備える骨格検出装置。
【請求項7】
請求項6に記載の骨格検出装置であって、
前記鏡面の当否の入力を受ける鏡面情報入力部を備える骨格検出装置。
【請求項8】
請求項4に記載の骨格検出装置であって、
前記鏡面の移動情報の入力を受け付ける鏡面移動情報入力部を備える骨格検出装置。
【請求項9】
請求項8に記載の骨格検出装置であって、
前記虚像除去部は、前記鏡面移動情報入力部により受け付けられた鏡面の移動情報を用いて、前記鏡面推定部により推定された鏡面を移動させる骨格検出装置。
【請求項10】
請求項5に記載の骨格検出装置であって、
前記鏡面の移動情報の入力を受け付ける鏡面移動情報入力部を備える骨格検出装置。
【請求項11】
請求項10に記載の骨格検出装置であって、
前記鏡像重畳部は、前記鏡面移動情報入力部により受け付けられた鏡面の移動情報を用いて、前記鏡面推定部により推定された鏡面を移動させる骨格検出装置。
【請求項12】
請求項1に記載の骨格検出装置であって、
他の前記骨格検出装置から出力された前記人体情報の入力を受け付ける人体情報入力部を備える骨格検出装置。
【請求項13】
請求項12に記載の骨格検出装置であって、
前記鏡像対検出部は、前記人体情報生成部により得られた人体情報と前記人体情報入力部により受け付けられた人体情報を用いて前記鏡像対を検出する骨格検出装置。
【請求項14】
請求項1に記載の骨格検出装置であって、
前記撮像部を備える骨格検出装置。
【請求項15】
撮像部により人物を撮像して得られた3次元データから人体骨格情報を検出し、
該検出した人体骨格情報から人体情報を生成し、
該生成した複数の前記人体情報を用いて、前記3次元データに含まれる前記人物の実像と虚像とからなる鏡像対を検出し、
該検出した鏡像対のうち、前記撮像部からの距離が遠い方を虚像と判断する骨格検出方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、骨格検出装置、及び骨格検出方法に関する。
【背景技術】
【0002】
測距センサ(TOF(Time of Flight)センサ、ステレオカメラ等)と距離画像解析技術を用いて、人の動作を認識し、生産効率改善や不良品低減、顧客行動分析、従業員監視を実現するユースケースが拡大している。人の動作の認識は、人の骨格検出を行う骨格検出装置を用いることで、認識率が上がることが知られている。例えば、特許文献1は3Dセンサによって取得した3次元データ内に含まれる人物の骨格検出を行う。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】国際公開第2017/187641号
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載の方法では、例えば3Dセンサの撮影範囲内にドアや工作機械から作業者を保護する仕切り板等が存在し、これらが鏡面を有する場合には、その鏡面を反射した像も実像と認識してしまう。鏡面を反射した像は虚像であり、実体を持たない。例えば特許文献1の実施例2に記載のスキル判定装置では、実体を持たない虚像を実像と認識してしまうことで、作業者が正しい行動をしているにもかかわらず、間違った行動をしていると判断してしまう。
【0005】
本発明は、骨格検出装置において、実像の誤認識を低減することを目的とする。
【課題を解決するための手段】
【0006】
本願は、上記課題の少なくとも一部を解決する手段を複数含んでいるが、その例を挙げるならば、以下のとおりである。
【0007】
上記の課題を解決する本発明の一態様は、撮像部により人物を撮像して得られた3次元データから人体骨格情報を検出する骨格推定部と、骨格推定部により得られた人体骨格情報から人体情報を生成する人体情報生成部と、人体情報生成部により得られた複数の人体情報を用いて、3次元データに含まれる人物の実像と虚像とからなる鏡像対を検出する鏡像対検出部と、鏡像対検出部により検出された鏡像対のうち、撮像部からの距離が遠い方を虚像と判断する虚像判断部と、を備える。
【発明の効果】
【0008】
本発明の一態様によれば、骨格検出装置において、実像の誤認識を低減することができる。
【0009】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0010】
図1】本発明の第1実施形態に係る骨格検出装置のハードウェア構成例を示すブロック図である。
図2】骨格検出装置の機能構成例を示すブロック図である。
図3】撮像部の機能構成例を示すブロック図である。
図4】骨格推定部の機能構成例を示すブロック図である。
図5】人物等の撮像対象が存在する撮像対象空間の例を示す図である。
図6】人体情報生成部によって生成される人体情報の例を示す表である。
図7】人物が2回反射している撮像対象空間の例を示す図である。
図8図7に示す撮像対象空間を撮像した場合に、人体情報生成部によって生成される人体情報の例を示す表である。
図9】本発明の第2実施形態に係る骨格検出装置の機能構成例を示すブロック図である。
図10】鏡面候補点の例を示す図である。
図11】推定された鏡面の一例を示す図である。
図12】本発明の第3実施形態に係る骨格検出装置の機能構成例を示すブロック図である。
図13】本発明の第4実施形態に係る骨格検出装置の機能構成例を示すブロック図である。
図14】ディスプレイにおける鏡面位置の表示例を示す図である。
図15】本発明の第5実施形態に係る骨格検出装置の機能構成例を示すブロック図である。
図16】本発明の第6実施形態に係る骨格検出装置の機能構成例を示すブロック図である。
図17】本発明の第7実施形態に係る骨格検出装置の機能構成例を示すブロック図である。
図18】本発明の第8実施形態に係る骨格検出装置の機能構成例を示すブロック図である。
図19】2つの骨格検出装置で撮像対象空間を撮像している例を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の複数の実施形態について、図面を参照して説明する。
【0012】
[第1実施形態]
以下に説明する実施形態では、撮像部により人物を撮影した3次元データから人体の骨格情報を検出し、その骨格情報から人体情報を生成する。そして、その生成した人体情報の類似度を算出することによって、3次元データに含まれる人物の実像とその実像の鏡面反射である虚像の対を検出し、撮像部からの距離が遠い方を虚像と判断する。
【0013】
図1は、本発明の第1実施形態に係る骨格検出装置100のハードウェア構成例である。本実施形態の骨格検出装置100は、図1に示すように、3次元カメラ701、CPU(Central Processing Unit)702、ROM(Read Only Memory)703およびRAM(Random Access Memory)704等を備えている。
【0014】
3次元カメラ701は、人物等の撮像対象が存在する撮像対象空間を撮像し、3次元データを出力する撮像装置である。なお、骨格検出装置100の出力は、後で詳述する人体骨格情報でもよいし、3次元データでもよい。
【0015】
本実施形態では、3次元カメラ701の設置条件が予め測定され、骨格検出装置100に入力設定されている。3次元カメラ701の設置条件としては、例えば床からの高さおよび3次元カメラ701のXYZカメラ座標系のZ軸と鉛直軸とがなす角度等がある。3次元カメラ701の設置条件の測定の方法としては、3次元カメラ701を設置する作業者が実測してもよいし、3次元カメラ701内にカメラの姿勢(向き)を検出するセンサを内蔵し、その出力を用いてZ軸と鉛直軸とがなす角度を求めるようにしてもよい。姿勢を検出するセンサとしては、例えば加速度センサ等がある。また、センサを用いてZ軸と鉛直軸とがなす角度を求める場合、床からの高さは、3次元カメラ701で得られる床からの距離情報および加速度センサから得られるZ軸と鉛直軸とがなす角度から、三角測量法で求めることができる。これにより、カメラ座標系と世界座標系の関係を算出するための情報を得ることが可能である。
【0016】
CPU702は、ROM703またはRAM704に格納されているプログラムを実行する。具体的には、CPU702がプログラムを実行することにより、骨格検出装置100の各部の機能が実現される。ROM703は、CPU702が実行するプログラムおよび実行に必要な各種パラメータを格納するための記憶媒体である。RAM704は3次元カメラ701により生成された画像および各種情報を格納するための記憶媒体である。また、RAM704は、CPU702が使用するデータの一時保管領域としても機能する。骨格検出装置100は、CPU702とROM703とRAM704をそれぞれ複数有することができる。
【0017】
なお、骨格検出装置100のハードウェア構成は、図1に示す構成に限定されない。例えば3次元カメラ701を骨格検出装置100とは別体として設けるようにしてもよい。その場合、骨格検出装置100は汎用のコンピュータ(例えばサーバコンピュータやパーソナルコンピュータ等)を用いて実現するようにしてもよい。
【0018】
また、複数のコンピュータをネットワークで接続して、骨格検出装置100の各部の機能を各コンピュータが分担することもできる。一方で、骨格検出装置100の機能の1つ以上を、専用のハードウェアを用いて実現することもできる。
【0019】
図2は、本実施形態の骨格検出装置100の機能構成例を示すブロック図である。骨格検出装置100は、図2に示すように、撮像部110、骨格推定部120、人体情報生成部103、鏡像対検出部104および虚像判断部105を備える。
【0020】
撮像部110は、人物等の撮像対象が存在する撮像対象空間を撮像し、人物を含む3次元データを生成する。3次元データは、1フレームの静止画であってもよいし、複数フレームからなる映像でもよい。本実施形態における3次元データは、直交する3軸方向に並ぶ各画素に対して、その階調情報(例えばRGB)を与えた距離画像である。撮像部110は、3次元カメラ701によって実現される。また、撮像部110は、3次元カメラ701とCPU702によって実現してもよい。撮像部110以外の骨格推定部120、人体情報生成部103、鏡像対検出部104および虚像判断部105の機能は、CPU702がプログラムを実行することにより実現される。
【0021】
撮像部110は、例えばTOF(Time of Flight)方式によって距離画像を生成する。なお、撮像部110としては、これに限らず、距離画像を生成するのであれば他の方式を用いるようにしてもよい。例えば可視光による撮像を行う2つの光学系を備えたステレオカメラ方式等を用いることができる。
【0022】
以下、TOF方式を用いた撮像部110について説明する。図3は、本実施形態の撮像部110の機能構成例を示すブロック図である。撮像部110は、図3に示すように、制御部111と、光源112と、距離画像センサ113と、距離画像生成部114と、通信部115とを備える。
【0023】
制御部111は、光源112、距離画像センサ113、距離画像生成部114及び通信部115を制御する。例えば、制御部111は、光源112に光の照射を指示し、距離画像センサ113に照射光と反射光の位相差情報の生成を指示し、距離画像生成部114に距離画像の生成を指示し、通信部115に距離画像の送信を指示する。制御部111は、例えば、CPU及びRAM等を含むマイクロコンピュータや、専用ハードウェア回路により実現することができる。
【0024】
光源112は、人物等の撮像対象が存在する撮像対象空間に対して光を照射する。光源112は、例えば、赤外光を照射する発光ダイオードおよび半導体レーザ等のデバイスにより実現することができる。
【0025】
距離画像センサ113は、撮像対象空間からの反射光を、結像レンズ(図示せず)を介して受光し、センサ上の画素毎に、照射時と受光時の位相差情報と、階調情報とを生成して出力する。距離画像センサ113は、例えば、照射時と受光時の位相差情報と階調情報とを生成する複数の受光素子を、二次元状に配列することで構成することができる。
【0026】
距離画像生成部114は、距離画像センサ113から出力されるセンサ上の画素毎の位相差情報を用いて、センサ上の画素毎にその距離情報を算出する。そして、距離画像生成部114は、得られたセンサ上の各画素の階調情報と距離情報に基づき、3次元配列された各画素位置に対してその階調情報を関連付けた距離画像を生成する。
【0027】
また、距離画像生成部114は、距離画像から骨格推定の対象画素を抽出し、骨格推定の対象画素にマークをつけた距離画像を通信部115を介して骨格推定部120に送信する。例えば、距離画像生成部114は、人物等の撮像対象が撮像対象空間に存在するときに撮像して得られた距離画像と、撮像対象が存在しないときに同一の撮像対象空間を撮像して得られた距離画像との間で対応する画素の距離情報の差分を算出する。距離画像生成部114は、距離情報の差分がゼロでない画素を骨格推定の対象画素として抽出することができる。
【0028】
なお、骨格推定の対象画素の抽出方法はこれに限定されない。距離画像生成部114は、例えば、距離が所定値未満の画素を骨格推定の対象画素として抽出してもよい。骨格推定の対象画素にマークをつける方法としては、例えば、骨格推定の対象外の画素(背景画素)の階調情報及び距離情報を所定値(例えば「1」)に設定する方法がある。これにより、距離画像生成部114は、距離画像のサイズ(縦横の画素数を指す、以下同様)を変更することなく、骨格推定の対象画素にマークをつけることができる。
【0029】
また、距離画像生成部114は、出力する距離画像に対して所定の圧縮処理を施すことによってデータ量を削減してもよい。上記のマーキングの例では、背景画素が同じ値に設定されるため、背景画素が連続する領域では圧縮率を高めることができる。距離画像生成部114は、例えば、CPUおよびRAM等を含むマイクロコンピュータや、専用ハードウェア回路により実現することができる。
【0030】
通信部115は、距離画像生成部114から出力されたマーク付きの距離画像を、骨格推定部120に送信する。通信部115は、例えば、USB(Universal Serial Bus)等の規格のシリアルインターフェイスにより実現することができる。
【0031】
撮像部110は、3次元カメラ701またはCPU702もしくはその両方によって、距離画像を加工する機能を有してもよい。距離画像を加工する方法としては、例えば、ノイズ削減および歪み補正等が挙げられる。撮像部110が生成する距離画像の形式は、3次元配列に例えば輝度(階調)等の情報を格納した形式でもよいし、2軸をアドレスとする2次元配列に残り1軸の大きさを格納した形式でもよい。3次元配列の形式を用いる場合、各画素の階調情報は3次元配列中の対応する位置が示すアドレスに格納され、各画素の距離情報は3次元配列中の1次元配列上の位置によって実現される。2次元配列の形式を用いる場合、各画素の階調情報及び距離情報は2次元配列中の対応する位置が示すアドレスに格納される。
【0032】
次に、図2に示す骨格推定部120について説明する。図4は、骨格推定部120の機能構成例を示すブロック図である。骨格推定部120は、撮像部110から出力された距離画像を用いて、その距離画像に含まれる人物の骨格を推定する。骨格推定処理を行うため、骨格推定部120は、特徴量算出部121、部位識別部122、及び関節識別部123を含む。
【0033】
特徴量算出部121は、撮像部110から出力された距離画像を構成する各画素の特徴量を算出する。特徴量算出部121は、骨格推定の対象画素(以下、注目画素という)毎に、特徴量を算出する。本実施形態においては、上述のように背景画素には所定値が設定されているため、注目画素は背景画素から区別することができる。特徴量の算出方法は、既存の技術を用いることができ、限定されない。例えば、注目画素とその周囲画素の距離の差を特徴量とすればよい。具体例としては、注目画素を中心とする縦9画素×横9画素の矩形領域から、注目画素とその周囲の80画素それぞれとの距離の差を有する80次元(2次元配列)の特徴量ベクトルを用いることができる。
【0034】
部位識別部122は、各注目画素が属する部位(例えば、頭、腕、手、胴体等の体のパーツ、関節は含まない)を識別する。部位の識別方法は、既存の技術を用いることができ、限定されない。例えば、特徴量閾値と部位ラベルを関連付けた決定木(識別器)に対して、注目画素の特徴量を入力することで、その注目画素の部位ラベルを取得すればよい。部位ラベルとは、各部位の種類を示す情報等の、部位の識別子である。識別器には、例えば、ランダムフォレスト等の複数の決定木を用いることができ、予め学習した識別器を骨格検出装置100が備えるROM703に記憶しておけばよい。
【0035】
関節識別部123は、識別された各注目画素の部位ラベルを用いて、対象の関節位置を識別する。関節位置の識別方法は、既存の技術を用いることができ、限定されない。例えば、同一部位ラベルが付与された注目画素群である部位毎に、その重心位置(関節位置候補)を取得すればよい。重心位置の取得には、例えば、mean-shift法を用いることができる。また、例えば、関節間の直線距離や関節間を結ぶ直線がなす角度等といった関節間の関係を定義した骨格関節モデルを用いて、各重心位置の骨格関節モデルに対する整合性を評価し、最終的な各関節位置を決定すればよい。また、各関節位置の関節ラベルを決定してもよい。関節ラベルとは、例えば、首関節、手首関節、および肩関節等といった関節の種類の情報を示す識別子である。
【0036】
骨格推定部120は、関節識別部123によって識別された関節位置の情報を人体骨格情報として人体情報生成部103に出力する。
【0037】
人体情報生成部103は、骨格推定部120から得られた1つまたは複数の人体骨格情報から、それぞれの人体情報を生成する。人体情報としては、例えば身長、体重、年齢、関節間の相対位置(例えば関節間の直線距離)、3つの関節(例えば肩関節、肘関節および手首関節)からなる角度、3次元カメラ701(撮像部110)から人物までの距離等がある。また、人体情報生成部103は、人体情報として、撮像対象空間に含まれている人物の数を出力する。身長、体重、年齢は、例えば、骨格の長さや体の表面積から推定することができる。
【0038】
図5は、人物等の撮像対象が存在する撮像対象空間の例を示す。この例では、3次元カメラ701は、人物A、人物B、人物Aが鏡面Mに反射した虚像の人物Cを撮像している。図6は、図5に示す撮像対象空間を3次元カメラ701によって撮像した場合において、人体情報生成部103によって生成される人体情報の例を示す表である。人体情報生成部103が出力する人物の数は「3」である。
【0039】
図6に示す例では、人体情報生成部103は、人体情報として、右肩−右肘−右手の角度、左肩−左肘−左手の角度、首−右肩−右肘、首−左肩−左肘、頭部と首の距離、および3次元カメラ701から人物までの距離を生成している。3次元カメラ701から人体までの距離は、例えば、3次元カメラ701から各人物の頭部までの距離である。人体情報生成部103は、生成する人体情報のうち、左右で対称となり得る項目に、同じ対称番号を付与する。例えば、図6に示す例では、右肩−右肘−右手の角度と左肩−左肘−左手の角度は左右で対称となるので、同じ対称番号「1」が付与され、首−右肩−右肘の角度と首−左肩−左肘の角度も左右で対称となるので同じ対称番号「2」が付されている。
【0040】
鏡像対検出部104は、人体情報生成部103から出力された人物の数が2以上の場合に、距離画像に含まれる鏡像対を検出する。鏡像対とは、人物の実像とその実像が反射してできた虚像からなる組である。鏡像対検出部104は、人体情報生成部103から出力された人体情報を用いて鏡像対を検出する。
【0041】
具体的には、鏡像対検出部104は、第1の人物の人体情報と第2の人物の人体情報との間の類似度を算出する。類似度が小さいほうが類似した人物となる類似度算出式を用いる場合には、類似度が所定の閾値以下の場合に、鏡像対として検出する。一方、類似度が大きいほうが類似した人物となる類似度算出式を用いる場合には、類似度が所定の閾値以上の場合に、鏡像対として検出する。人物の類似度は、例えば式(1)に示すような、同じ種類の人体情報の差の重み付き平方和等である。
【0042】
【数1】
【0043】
Nは人体までの距離を除いた人体情報生成部103が出力する人体情報の種類数、xkはk番目の人体情報に対応する重み、P1kは第1の人物のk番目の人体情報、P2kは第2の人物のk番目の人体情報を表す。このとき類似度は、同じ対称番号が付与されている項目の場合、第1の人物の同じ対称番号が付与された各項目の人体情報に対して、第2の人物の同じ対称番号が付された各項目の人体情報を入れ替えて計算する。
【0044】
具体的には、人物Aと人物Bの類似度を計算する際、人物Aの対称番号「1」が付された右肩−右肘−右手の角度(121)と左肩−左肘−左手の角度(169)に対して、人物Bの同じ対称番号「1」が付された各項目の人体情報、すなわち人物Bの右肩−右肘−右手の角度(160)と左肩−左肘−左手の角度(100)とを入れ替えて類似度を計算する。また、人物Aの対称番号「2」が付された首−右肩−右肘の角度(130)と首−左肩−左肘の角度(95)に対して、人物Bの同じ対称番号「2」が付された各項目の人体情報、すなわち人物Bの首−右肩−右肘の角度(170)と首−左肩−左肘の角度(220)とを入れ替えて類似度を計算する。
【0045】
例えばすべての重みxkが「1」の場合、人物Aと人物Bの類似度は「14272」(=(121-100)^2+(169-160)^2+(130-220)^2+(95-170)^2+(30-25)^2)となり、人物Aと人物Cの類似度は「7」となり、人物Bと人物Cの類似度は「23605」となる。類似度が「100」以下の対を鏡像対として検出する場合、鏡像対検出部104は、人物Aと人物Cを鏡像対と検出する。
【0046】
このように、鏡像対検出部104は、検出された複数の人物の中で、人物2人の全ての組み合わせについて鏡像対の検出を試みる。人体情報を基に人物の類似度を算出し鏡像対を検出することで、距離画像から直接パターンマッチング等によって鏡像対を検出する方法に比べて、処理量を減らすことができる。
【0047】
虚像判断部105は、鏡像対検出部104によって得られた鏡像対のうち、どちらの像が虚像かを判断する。虚像判断部105は、鏡像対のうち、3次元カメラ701(撮像部110)からの距離が遠いほうを虚像と判断する。
【0048】
図5に示す例の場合、3次元カメラ701と人物Aの実像との距離がD1であるのに対し、3次元カメラ701と人物Aの虚像である人物Cとの距離は、距離d21に対して距離d22を加算した距離D2となる。すなわち、3次元カメラ701と人物Cとの距離D2は、反射による経路であるため、幾何学的に必ず3次元カメラ701と人物Aとの距離D1よりも長くなる。したがって、本実施形態の虚像判断部105は、上述したように、鏡像対のうち、3次元カメラ701(撮像部110)からの距離が遠いほうを虚像と判断する。図6の例では、人体までの距離は、人物Aが150、人物Cが250であるため、虚像判断部105は、人物Cを虚像と判断する。
【0049】
また、虚像判断部105は、複数の鏡像対の対応関係から2回以上反射した虚像を判断することができる。虚像判断部105は、上記方法で虚像を判断したのち、他の鏡像対において虚像と判断された人物を虚像と判断する。図7は、人物Dが2回反射している撮像対象空間の例である。また、図8は、図7に示す撮像対象空間を3次元カメラ701によって撮像した場合において、人体情報生成部103によって生成される人体情報の例を示す表である。
【0050】
図7に示す撮像対象空間には、人物D、人物Dが鏡面Maで反射した人物E、人物Dが鏡面Maと鏡面Mbで2回反射した人物Fがそれぞれ存在する。鏡像対検出部104は、上記方法により人物Dと人物Eの対(第1の対)と、人物Eと人物Fの対(第2の対)をそれぞれ鏡像対と検出する。虚像判断部105は、まず、3次元カメラ701から各人物までの距離を参照し、第1の対については、人物Eを人物Dが反射した虚像と判断する。3次元カメラ701と人物Dとの距離は距離D3となり、3次元カメラ701と人物Eとの距離は、距離d41+距離d42=距離D4となる。幾何学的に、必ずD4>D3となるので、人物Eを虚像と判断することができる。
【0051】
また、第2の対については、人物Fを人物Eが反射した虚像と判断する。3次元カメラ701と人物Eとの距離は距離D4となり、3次元カメラ701と人物Fとの距離は、距離d51+距離d52=距離D5となる。幾何学的に、必ずD5>D4となるので、人物Fを虚像と判断することができる。
【0052】
その後、第1の対について人物Eが虚像と判断されていることから、第2の対における人物Eも虚像と判断する。その結果、虚像判断部105は、人物Fを人物Dが2回反射した虚像と判断する。なお、ここでは2回反射した例について説明したが、3回以上反射した場合も同様の手法を用いることができる。
【0053】
第1実施形態の骨格検出装置100によれば、鏡像対検出部104によって、鏡面を反射した虚像と実像の組を検出し、虚像判断部105によって、検出された虚像と実像の組から虚像を判断することができる。これにより、3次元カメラ701から出力された距離画像から実像のみの人体骨格情報を検出することができ、撮像対象空間に含まれる人物の誤認識を低減することができる。
【0054】
なお、虚像については距離画像から削除するようにしてもよいし、虚像として特定した上で、強調表示するなどして利用してもよい。
【0055】
[第2実施形態]
第1実施形態では、虚像判断部105において、鏡像対検出部104で得られた鏡像対のうちの虚像を判断することによって、撮像対象空間に含まれる人物の認識対象からその虚像を除外する構成とした。これに対し、第2実施形態は、鏡像対検出部104で得られた鏡像対から鏡面位置を検出し、その鏡面位置より奥側にある距離画像、すなわち鏡面位置よりも3次元カメラ701から見て遠方の距離画像を除去する構成とする。これにより撮像部110から得られた距離画像から不要な部分が予め削除されるため骨格推定部120の処理負荷を軽減することが可能となる。
【0056】
図9は、本実施形態の機能構成例を示すブロック図である。以下、図9を参照しながら第2実施形態について説明する。なお、第1実施形態と同一の構成、機能を有するものには同一の符号を付して、その詳細な説明を省略する。
【0057】
第2実施形態に係る骨格検出装置100は、第1実施形態で示す機能に加え、鏡面候補点算出部201、鏡面候補点保存部202、鏡面推定部203、鏡面保存部204および虚像除去部205を備えている。
【0058】
虚像除去部205は、鏡面保存部204に鏡面位置が保存されている場合は、3次元カメラ701から見て鏡面保存部204に保存された鏡面位置より遠方(奥側)の領域の距離画像を除去し、その一部が除去された距離画像を骨格推定部120に出力する。一方、虚像除去部205は鏡面保存部204に鏡面位置が保存されていない場合は、入力された距離画像を加工せず骨格推定部120に出力する。鏡面位置より遠方の領域の距離画像はすべて虚像のデータであり骨格検出をする必要はないため、鏡面位置より遠方の領域の距離画像を除去することによって、骨格推定部120の処理量を削減することができる。また、虚像の骨格検出がなくなることで、人体情報生成部103と鏡像対検出部104と虚像判断部105の処理量を減らすことができる。
【0059】
骨格推定部120は、鏡面保存部204に鏡面位置が保存されている場合には、虚像除去部205によって一部除去された距離画像を用いて、その距離画像から人体骨格情報を検出することにより人物の骨格を推定する。すなわち、骨格推定部120は、鏡面保存部204に鏡面位置が保存されている場合には、実像のみの人体骨格情報を出力する。これにより、3次元カメラ701から出力された距離画像から実像のみの人体骨格情報を検出することができ、撮像対象空間に含まれる人物の誤認識を低減することができる。
【0060】
一方、骨格推定部120は、鏡面保存部204に鏡面位置が保存されていない場合には、虚像除去部205において加工されることなく出力された距離画像を用いて、その距離画像から人体骨格情報を検出することにより人物の骨格を推定する。すなわち、骨格推定部120は、鏡面保存部204に鏡面位置が保存されていない場合には、第1実施形態と同様に、実像および虚像の人体骨格情報を出力する。
【0061】
そして、第1実施形態と同様に、人体情報生成部103は、骨格推定部120から出力された人体骨格情報から人体情報を生成し、鏡像対検出部104は、人体情報生成部103から出力された人体情報から鏡像対を検出し、虚像判断部105は、鏡像対のうちの虚像を判断する。
【0062】
鏡面候補点算出部201は、鏡像対検出部104から出力された鏡像対を用いて、鏡面を構成する点の候補の位置を算出する。図10は鏡面候補点C1の位置を示す図である。まず、鏡面候補点算出部201は、実像R1の関節R1pと虚像V1の関節V1pを結ぶ線分の垂直二等分面M1を算出する。
【0063】
関節R1pと関節V1pは、左右がない関節の場合は同じ種類の関節であり、左右がある場合は左右が逆の関節である。垂直二等分面M1は、関節R1pと関節V1pの中点B1を通る面であり、関節R1pと関節V1pを結ぶ線分に垂直な面である。この面と、3次元カメラ701と関節V1pを結ぶ線分の交点を鏡面候補点C1の位置として算出する。鏡面候補点C1の位置の原点は、3次元カメラ701の位置であってもよいし、他の位置でもよく、例えば最初に算出された鏡面候補点C1の位置を原点としてもよい。
【0064】
図10では、関節R1pと関節V1pとして頭部を用いて鏡面候補点C1を求める例を示しているが、実際には、実像と虚像に含まれるその他の複数の関節の組(例えば実像の右肘関節と虚像の左肘関節の組、実像の右肩関節と虚像の左肩関節の組、実像と虚像の股関節の組等)について、それぞれ鏡面候補点C2,C3,C4,C5,・・・が算出される。なお、ここでは5つの鏡面候補点C1,C2,C3,C4,C5(以下、C1〜C5と示す)が算出されたとして説明を進める。また、鏡面候補点の算出方法は、上記の方法に限らず、鏡像対における対応する2点を用いて鏡面候補点を算出する方法であれば、その他の算出方法を用いるようにしてもよい。
【0065】
鏡面候補点保存部202は、鏡面候補点算出部201によって得られた鏡面候補点C1〜C5の絶対位置を保存する。鏡面候補点保存部202は、例えば、リングバッファを内部に持ち、鏡面候補点C1〜C5の位置を保存する。リングバッファとは、バッファの先端と終端が連結され、循環的に利用されるようになっているバッファである。リングバッファを用いることによって、最も古い鏡面候補点を新しい鏡面候補点に更新していくことができる。
【0066】
鏡面推定部203は、鏡面を推定する。鏡面推定部203は、まず、鏡面候補点保存部202に蓄積された複数の鏡面候補点C1〜C5から、例えば最小二乗法によって候補となる平面を求める。その後、鏡面推定部203は、求めた平面候補と各鏡面候補点C1〜C5との距離が最小となる各点、すなわち各鏡面候補点C1〜C5の平面候補に対する垂直投影点のすべてを含み、すべての頂点における内角が180°以下となる最小の多角形の面を鏡面と推定する。例えば鏡面候補点C1〜C5に対応する垂直投影点Ca1〜Ca5が図11に示すように分布している場合、図11において実線で示す多角形の面が鏡面と推定される。なお、図11において点線で示すように垂直投影点Ca3を多角形の頂点の1つとして選択した場合、頂点Ca3における内角θ3が180°を超えることになるので、垂直投影点Ca3は、鏡面を構成する頂点の1つとして選択されない。
【0067】
上記のように鏡像対検出部104から出力された鏡像対を用いて鏡面候補点を算出し、複数の鏡面候補点を用いて鏡面を推定することによって、簡易な演算処理によって鏡面を推定することができる。
【0068】
鏡面保存部204は、鏡面推定部203が推定した鏡面を保存し、保存した鏡面を虚像除去部205に出力する。鏡面保存部204は、例えば鏡面の各頂点の座標を保存する。鏡面を保存することにより、鏡面推定部203は撮像部110のサンプリング周期で(フレーム毎に)鏡面推定を実行する必要がなくなり、鏡面推定部203の処理回数を減らすことができる。
【0069】
なお、撮像部110によって撮像されるフレーム毎に鏡面推定を行い、鏡面位置を順次更新するようにしてもよい。また、予め設定された数のフレーム数だけ鏡面推定を行い、そのフレーム毎に推定された鏡面位置の統計値(例えば平均値)を鏡面保存部204に保存するようにしてもよい。
【0070】
第2実施形態によれば、鏡像対の関係から鏡面を推定し、鏡面より奥の距離画像を除去することによって、骨格推定部120、人体情報生成部103、鏡像対検出部104、虚像判断部105の処理量を減らすことができる。
【0071】
[第3実施形態]
第2実施形態では、虚像除去部205において、鏡面推定部203から得られた鏡面より奥の領域の距離画像を除去する構成について説明した。これに対し、第3実施形態は、鏡面推定部203から得られた鏡面より奥の領域の距離画像を、鏡面を対称面として手前に折り返して重ね合わせる構成である。これにより、鏡像重畳部301において、虚像と実像が重ね合わせられ、実像には現れていない部分を虚像で補うことができるので、骨格推定部120の推定精度を向上することが可能となる。
【0072】
図12は、本実施形態の機能構成例を示すブロック図である。以下、図12を参照しながら第3実施形態について説明する。なお、第2実施形態と同一の構成、機能を有するものには同一の符号を付して、その詳細な説明を省略する。
【0073】
第3実施形態に係る骨格検出装置100は、第2実施形態で示す虚像除去部205に替えて、鏡像重畳部301を備えている。
【0074】
鏡像重畳部301は、撮像部110から出力された距離画像のうち鏡面に反射した虚像を、実像に重ね合わせた重畳画像(本発明の重畳3次元データに相当する)を生成する。鏡像重畳部301は、具体的には、撮像部110から見て鏡面保存部204に保存された鏡面位置より遠方(奥側)の領域の距離画像を、鏡面を対称面とした場合に面対称となる位置に写像し、写像前の鏡面位置より遠方(奥側)の領域の距離画像については削除する。写像の際、面対称な位置に既に実像の距離画像のデータがある場合は、その部分については写像せずに実像の距離画像のデータをそのまま残す(虚像の距離画像のデータは削除する)。
【0075】
例えば、3次元カメラ701から見て骨格検出対象となる人物より奥に鏡面がある場合は(例えば図7に示す人物Dと鏡面Maの位置関係である場合)、3次元カメラ701の死角となる範囲の人物の距離画像のデータを実像の距離画像に重ね合わせることができる。具体例としては、人物Dが3次元カメラ701の方を向いて立っている場合には、人物Eの画像(人物Dの背中側の画像)を写像できる。一方、3次元カメラ701から見て骨格検出対象となる人物より手前に鏡面がある場合は(例えば図5に示す人物Aと鏡面Mの位置関係である場合)、実像と虚像で共通する部分は重ね合わせないようにできる。
【0076】
また、虚像判断部105によって2回以上反射していると判断されている場合は、反射回数が多い鏡面から順に対称面として写像する。図7に示す例では、まず鏡面Mbより奥の領域の距離画像を、鏡面Mbを対称面とした場合に面対称となる位置に写像する。次に、鏡面Maより奥の領域の距離画像を、鏡面Maを対称面とした場合に面対称となる位置に写像する。
【0077】
骨格推定部120は鏡像重畳部301が生成した重畳画像から人体骨格情報を検出する。
【0078】
第3実施形態によれば、鏡像重畳部301において、虚像と実像を重ね合わせることで、骨格推定部120の推定精度を向上することができる。鏡面に反射した虚像は、実像が含まない領域の距離画像を含むため、複数方向から撮像したことと同義であり、骨格推定に利用される距離画像の情報量を増加させることができる。
【0079】
[第4実施形態]
第2実施形態では、鏡面保存部204に保存された鏡面位置より奥の領域の距離画像を除去する構成について説明した。これに対し、第4実施形態は、第2実施形態に対して、鏡面保存部204に保存された鏡面位置を削除または訂正する機能を付加した構成である。これにより、鏡面推定部203において、誤った鏡面を推定した場合に削除または訂正することが可能となる。
【0080】
図13は、本実施形態の機能構成例を示すブロック図である。以下、図13を参照しながら第4実施形態について説明する。なお、第2実施形態と同一の構成、機能を有するものには同一の符号を付して、その詳細な説明を省略する。
【0081】
第4実施形態に係る骨格検出装置100は、第2実施形態で示す機能に加え、鏡面出力部401および鏡面情報入力部402を備えている。
【0082】
鏡面出力部401(本発明の鏡面提示部に相当する)は、鏡面保存部204に保存された鏡面位置を出力する。鏡面出力部401は、例えば、ディスプレイ801に鏡面位置を画像として表示する。図14はディスプレイ801における鏡面位置の表示例を示す。鏡面出力部401は、ディスプレイ801が有する表示画面802に画像803を表示する。画像803は、撮像部110で生成した距離画像に対して、鏡面保存部204に保存された鏡面位置を用いて生成した鏡面画像804を重ね合わせた画像である。画像803は、鏡面画像804を含む距離画像を、任意の視点からみた2次元の画像である。このように鏡面画像804を表示させることによって、ユーザは、推定された鏡面を容易に把握することができ、鏡面の当否および訂正の要否などを即座に判断することができる。
【0083】
また、鏡面出力部401は、鏡面位置をバイナリ形式のデータとして出力する構成としてもよい。この場合、骨格検出装置100は、外部との通信手段を有する。通信手段は、例えばイーサネットやUSB(Universal Serial Bus)等の通信装置である。鏡面出力部401は、通信手段で外部の装置と通信を行い、バイナリ形式のデータとして鏡面位置を出力する。バイナリ形式のデータは、少なくとも鏡面の頂点の3次元位置情報を含む。
【0084】
鏡面情報入力部402は、鏡面出力部401によってディスプレイ801に表示された鏡面画像803が正しいか否かの入力をユーザから受け付ける。また、鏡面情報入力部402は、鏡面画像803が正しくない場合には、鏡面保存部204に保存された鏡面位置および鏡面候補点保存部202に保存された鏡面候補点の削除指示または訂正指示の入力を受け付ける。
【0085】
402は、例えば、キーボード、マウスおよびタッチパネル等の入力装置を介して入力を受け付ける。また、鏡面情報入力部402は、これらの入力装置を複数組み合わせて用いてもよい。また、鏡面情報入力部402は、外部との通信手段を介して入力を受け付けてもよい。具体的には、鏡面情報入力部402は、イーサネット等を介して外部の入力装置からの入力を受け付けてもよい。
【0086】
鏡面情報入力部402は、鏡面画像803が正しいことを示す入力を受け付けた場合または何も入力を受け付けなかった場合には、鏡面保存部204に保存された鏡面位置および鏡面候補点保存部202に保存された鏡面候補点に対して何も処理を施さない。一方、鏡面情報入力部402は、鏡面画像803が正しくないことを示す入力を受け付けた場合には、鏡面保存部204に保存された鏡面位置および鏡面候補点保存部202に保存された鏡面候補点の少なくとも1つの削除指示または訂正指示の入力を受け付ける。この際、鏡面情報入力部402において単に鏡面画像803が正しくないという入力が受け付けられた場合には、鏡面保存部204に保存された鏡面位置およびすべての鏡面候補点が削除され、鏡面候補点の算出が再び行われる。
【0087】
一方、鏡面情報入力部402おいて鏡面画像803が正しくないという入力とともに訂正指示が受け付けられた場合には、鏡面推定部203は、鏡面位置を訂正する。鏡面位置の訂正指示としては、例えば、鏡面の頂点の削除、鏡面の頂点位置の訂正および鏡面の頂点の追加等がある。鏡面の頂点が削除された場合は、その頂点に距離が近い順に鏡面候補点が1つ以上削除され、鏡面推定部203は、削除された鏡面候補点を除外して再び鏡面の推定を行う。また、鏡面の頂点位置が訂正された場合は、訂正前の頂点に距離が近い順に鏡面候補点が1つ以上削除され、新たに訂正後の頂点の位置と同じ位置である鏡面候補点が鏡面候補点保存部202に保存され、鏡面推定部203は、新たに保存された鏡面候補点を含めて再び鏡面の推定を行う。また、鏡面の頂点が追加された場合は、新たに追加された頂点の位置と同じ位置である鏡面候補点が鏡面候補点保存部202に保存され、鏡面推定部203は、新たに保存された鏡面候補点を含めて再び鏡面の推定を行う。
【0088】
第4実施形態によれば、鏡像対検出部104が正しく鏡像対を検出できなかった場合や鏡面推定部203が正しく鏡面を推定できなかった場合でも、間違った鏡面を削除または訂正することができる。また、骨格検出装置100の場所を変更した場合や、撮像対象空間のレイアウトが変更になった場合でも、電源を落とすことなく正しく鏡面を推定することができる。これにより、鏡面位置より奥の領域の距離画像を適切に除去することができる。
【0089】
[第5実施形態]
第3の実施形態では、鏡面位置より奥の領域の距離画像を実像側に重畳する構成について説明した。これに対し、第5実施形態は、第3実施形態に対して、第4実施形態と同様に、鏡面保存部204に保存された鏡面位置を削除または訂正する機能を付加した構成である。これにより、鏡面推定部203において、誤った鏡面を推定した場合に削除または訂正することが可能となる。
【0090】
図15は、本実施形態の機能構成例を示すブロック図である。以下、図15を参照しながら第5実施形態について説明する。なお、第3実施形態と同一の構成、機能を有するものには同一の符号を付して、その詳細な説明を省略する。
【0091】
第5実施形態に係る骨格検出装置100は、第3実施形態で示す機能に加え、鏡面出力部401および鏡面情報入力部402を備えている。第5実施形態における鏡面出力部401および鏡面情報入力部402の機能および具体的な構成は、第4実施形態と同様である。
【0092】
第5実施形態によれば、鏡像対検出部104が正しく鏡像対を検出できなかった場合や鏡面推定部203が正しく鏡面を推定できなかった場合でも、間違った鏡面を削除または訂正することができる。また、骨格検出装置100の場所を変更した場合や、撮像対象空間のレイアウトが変更になった場合でも、電源を落とすことなく正しく鏡面を推定することができる。これにより、鏡面位置より奥の領域の距離画像を実像側に適切に重畳することができる。
【0093】
[第6実施形態]
第4実施形態では、第2実施形態に対して、鏡面保存部204に保存された鏡面位置を削除または訂正する機能を付加した構成について説明した。これに対し、第6実施形態は、さらに、鏡面が移動した場合でも、鏡面より奥の領域の距離画像を適切に除去することができる構成である。これにより、例えば鏡面がドアに形成されており、ドアの開閉によって鏡面が移動した場合でも、鏡面より奥の領域の距離画像を適切に除去することができる。
【0094】
図16は、本実施形態の機能構成例を示すブロック図である。以下、図16を参照しながら第6実施形態について説明する。なお、第4実施形態と同一の構成、機能を有するものには同一の符号を付して、その詳細な説明を省略する。
【0095】
第6実施形態に係る骨格検出装置100は、第4実施形態で示す機能に加え、鏡面移動情報入力部501を備えている。
【0096】
そして、第6実施形態の虚像除去部504は、鏡面移動情報入力部501が出力する鏡面の移動情報と、鏡面保存部503が出力する鏡面位置の情報から、移動する鏡面の現在位置を算出し、その鏡面位置より奥の領域の距離画像を除去する。
【0097】
鏡面移動情報入力部501は、鏡面の移動情報の入力を受け付ける。鏡面の移動情報とは、例えば、鏡面の平行移動量や鏡面の回転角等である。具体的には、例えば鏡面が平行移動する場合には、その鏡面の平行移動軸に沿ってリニアスケール等が設けられ、鏡面移動情報入力部501は、そのリニアスケールから出力された信号を鏡面の平行移動量として受け付ける。また、鏡面が回転する場合には、その鏡面の回転軸に対して、例えばロータリエンコーダ等が設けられ、鏡面移動情報入力部501は、そのロータリエンコーダから出力された信号を鏡面の回転角情報として受け付ける。
【0098】
鏡面情報入力部502は、第4実施形態における鏡面情報入力部402の機能に加え、上述した鏡面の平行移動軸または鏡面の回転軸の入力を受け付け、後段に出力する機能を有する。鏡面情報入力部502は、例えば、キーボード等の入力装置を介して、鏡面の平行移動軸または鏡面の回転軸の各要素の値を受け付ける。
【0099】
鏡面保存部503は、鏡面位置の情報を保存し出力する。鏡面位置の情報は、鏡面推定部203が推定する鏡面位置と、鏡面情報入力部502によって受け付けられる鏡面の平行移動軸または鏡面の回転軸を含む。
【0100】
鏡面の平行移動軸は、例えば、3次元空間単位ベクトルである。虚像除去部504は、鏡面が平行移動する場合、鏡面保存部503から出力された鏡面の平行移動軸である3次元空間単位ベクトルに対し、鏡面移動情報入力部501において受け付けられた平行移動量を乗算したベクトルを、鏡面保存部503が出力する鏡面の各画素に対して加算することで、鏡面の平行移動を行う。
【0101】
また、鏡面の回転軸は、例えば、回転軸上の任意の座標と3次元空間単位ベクトルである。虚像除去部504は、鏡面が回転する場合、鏡面保存部503から出力された3次元空間単位ベクトルを回転軸とし、鏡面の任意の座標を原点として、ロドリゲスの回転公式を用いて、鏡面移動情報入力部501において受け付けられた回転量だけ鏡面の回転を行う。
【0102】
虚像除去部504は、例えば、鏡面がガラスドア等から形成され、ガラスドアの開閉によって回転する鏡面である場合には、鏡面保存部503から出力された鏡面を、鏡面移動情報入力部501から出力された鏡面の回転角だけ回転させた鏡面を算出する。
【0103】
また、虚像除去部504は、例えば、鏡面がガラスドア等から形成され、ガラスドアの開閉によって平行移動する鏡面である場合には、鏡面保存部503から出力された鏡面を、鏡面移動情報入力部501から出力された平行移動量だけ平行移動させた鏡面を算出する。
【0104】
鏡面の回転または平行移動の後、虚像除去部504は、第2実施形態における虚像除去部205と同様に鏡面より奥の領域の距離画像を除去する。
【0105】
第6実施形態によれば、鏡面が移動する場合でも、正しく鏡面位置を推定することができ、鏡面位置よりも奥の領域の距離画像を適切に除去することができる。
【0106】
[第7実施形態]
第5実施形態では、第3実施形態に対して、鏡面保存部204に保存された鏡面位置を削除または訂正する機能を付加した構成について説明した。これに対し、第7実施形態は、さらに、鏡面が移動した場合でも、鏡面より奥の領域の距離画像を適切に実像側に重畳することができる構成である。これにより、例えば鏡面がドアに形成されており、ドアの開閉によって鏡面が移動した場合でも、鏡面より奥の領域の距離画像を実像側に適切に重畳することができる。
【0107】
図17は、本実施形態の機能構成例を示すブロック図である。以下、図17を参照しながら第7実施形態について説明する。なお、第5実施形態と同一の構成、機能を有するものには同一の符号を付して、その詳細な説明を省略する。
【0108】
第7実施形態に係る骨格検出装置100は、第5実施形態で示す機能に加え、第6実施形態と同様に、鏡面移動情報入力部501を備えている。
【0109】
そして、第7実施形態の鏡像重畳部505は、鏡面移動情報入力部501が出力する鏡面の移動情報と、鏡面保存部503が出力する鏡面位置の情報から、移動する鏡面の現在位置を算出し、その鏡面位置より奥の領域の距離画像を実像側に重畳する。
【0110】
第7実施形態の鏡面移動情報入力部501、鏡面情報入力部502および鏡面保存部503の機能および具体的な構成は、第6実施形態と同様である。
【0111】
鏡像重畳部505は、例えば、鏡面がガラスドア等から形成され、ガラスドアの開閉によって回転する鏡面である場合には、鏡面保存部503から出力された鏡面を、鏡面移動情報入力部501から出力された鏡面の回転角だけ回転させた鏡面を算出する。
【0112】
また、鏡像重畳部505は、例えば、鏡面がガラスドア等から形成され、ガラスドアの開閉によって平行移動する鏡面である場合には、鏡面保存部503から出力された鏡面を、鏡面移動情報入力部501から出力された平行移動量だけ平行移動させた鏡面を算出する。
【0113】
鏡面の回転または平行移動の後、鏡像重畳部505は、第3実施形態における鏡像重畳部301と同様に鏡面より奥の領域の距離画像を実像側に写像して重畳する。
【0114】
第7実施形態によれば、鏡面が移動する場合でも、正しく鏡面位置を推定することができ、鏡面位置よりも奥の領域の距離画像を実像側に適切に重畳することができる。
【0115】
[第8実施形態]
第1実施形態から第7実施形態では、撮像対象空間に含まれる人物の人体情報を生成し、その人体情報から鏡像対を検出し、その鏡像対のうちの虚像を判断する構成について説明した。これに対し、第8実施形態は、複数の骨格検出装置を組み合わせて連携することで、1つの骨格検出装置によって虚像のみが撮像された場合でも、その撮像された像を虚像として判断することができる構成である。
【0116】
第8実施形態は、複数の骨格検出装置から構成される骨格検出システムである。図18は、本実施形態の骨格検出システムを構成する各骨格検出装置の機能構成例を示すブロック図である。本実施形態に係る骨格検出システムを構成する各骨格検出装置は、第2実施形態で示す機能に加え、人体情報入出力部601を備えている。なお、第2実施形態と同一の構成、機能を有するものには同一の符号を付して、その詳細な説明を省略する。
【0117】
人体情報入出力部601(本発明の人体情報入力部に相当する)は、例えばイーサネット等のネットワークを介して他の骨格検出装置と通信可能に構成されており、他の骨格検出装置から出力された人体情報の入力の受け付けおよび他の骨格検出装置に対する人体情報の出力を行う。
【0118】
人体情報入出力部601は、人体情報生成部602が出力する人体情報を、他のすべて又は予め指定された1台以上の骨格検出装置の人体情報入出力部601に出力する。また、人体情報入出力部601は、他の1台以上の骨格検出装置の人体情報入出力部601から出力された人体情報の入力を受け付け、その受け付けた人体情報を人体情報生成部602に入力する。すなわち、連携する骨格検出装置のそれぞれで生成された人体情報が、骨格検出装置間で共有される。
【0119】
人体情報生成部602は、骨格推定部120から出力された人体骨格情報を用いて、自身が属する骨格検出装置が撮像した人物までの距離を算出するとともに、人体情報入出力部601を介して入力された人体情報を用いて、他の骨格検出装置が撮像した人物までの距離を算出する。ここで、他の骨格検出装置が撮像した人物までの距離は、人体情報生成部602が属する骨格検出装置の絶対座標、他の骨格検出装置の絶対座標、他の骨格検出装置の3次元カメラ701の撮像角度、他の骨格検出装置の人体情報生成部602において生成された人物の3次元座標から算出する。
【0120】
人体情報生成部602は、第2実施形態の人体情報生成部103の機能に加え、人体情報入出力部601において受け付けられた人体情報の入力の受け付けおよび人体情報入出力部601に対して生成した人体情報を出力する機能を備える。
【0121】
人体情報生成部602は、生成した人体情報を鏡像対検出部104に出力する。人体情報生成部602が生成する人体情報には、人体情報生成部103が生成する人体情報に加え、人物の座標が含まれる。人物の座標とは、人物までの距離の算出に使用した部位と同じ部位の、骨格検出装置を原点とした場合の3次元座標である。
【0122】
図19は、複数の骨格検出装置で撮像対象空間を撮像している例である。本例では、骨格検出装置Aと骨格検出装置Bが撮像対象空間を撮像している。骨格検出装置Aでは、人物Gが鏡面Mcに反射した虚像である人物Hが撮像され、骨格検出装置Bでは、人物Gを撮像されている。骨格検出装置Aと人物Gの間には障害物Aがあるため、骨格検出装置Aは人物Gを撮像することができない。
【0123】
図19の例では、骨格検出装置Aの人体情報生成部602は人物Hの人体情報と3次元座標を生成し、骨格検出装置Bの人体情報生成部602は人物Gの人体情報と3次元座標を生成する。生成された各人体情報と3次元座標は、各人体情報入出力部601を介して共有される。各骨格検出装置の人体情報生成部602は、入力された人物Gおよび人物Hの3次元座標を用いて、各骨格検出装置から人物Gおよび人物Hまでの距離をそれぞれ算出する。また、各骨格検出装置の鏡像対検出部104は、人物Gと人物Hが鏡像対であると検出し、各骨格検出装置の虚像判断部105は、各骨格検出装置から遠い方の人物Hが虚像であると判断する。
【0124】
第8実施形態によれば、1つの骨格検出装置が虚像のみ撮像している場合でも、他の骨格検出装置の人体情報を共有することで、その撮像した像を虚像として判断することができる。
【0125】
なお、第8実施形態は、第2実施形態に係る骨格検出装置を基本的な構成として人体情報入出力部601をさらに設けた構成としたが、これに限らず、第1および第3〜第7実施形態のうちのいずれかの実施形態に係る骨格検出装置を基本的な構成とし、人体情報入出力部601をさらに設けるようにしてもよい。
【0126】
本発明は、上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した各実施形態は、本発明を分かりやすく説明するために詳細に説明したものであり、本発明が、必ずしも説明した全ての構成要素を備えるものに限定されるものではない。また、ある実施形態の構成の一部を、他の実施形態の構成に置き換えることが可能であり、ある実施形態の構成に、他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加、削除および置換をすることが可能である。
【0127】
また、上記各構成、機能、処理部および処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成および各機能は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現されてもよい。各機能を実現するプログラム、テーブルおよびファイル等の情報は、メモリ、ハードディスクおよびSSD(Solid State Drive)等の記憶装置、または、IC(Integrated Circuit)カード、SDカード、DVD等の記憶媒体に置くことができる。また、制御線および情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線および情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【0128】
本発明は、骨格検出装置だけなく、骨格検出装置で実行されるコンピュータ読み取り可能なプログラム、骨格検出装置における処理方法等の様々な態様で提供することができる。
【符号の説明】
【0129】
100:骨格検出装置、103,602:人体情報生成部、104:鏡像対検出部、105:虚像判断部、110:撮像部、111:制御部、112:光源、113:距離画像センサ、114:距離画像生成部、115:通信部、120:骨格推定部、121:特徴量算出部、122:部位識別部、123:関節識別部、201:鏡面候補点算出部、202:鏡面候補点保存部、203:鏡面推定部、204,503:鏡面保存部、205,504:虚像除去部、301,505:鏡像重畳部、401:鏡面出力部、402、502:鏡面情報入力部、501:鏡面移動情報入力部、601:人体情報入出力部、801:ディスプレイ、802:表示画面、803:画像、804:鏡面画像
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19