(57)【要約】【課題】骨格検出装置において、実像の誤認識を低減することを目的とする。【解決手段】骨格検出装置は、撮像部により人物を撮像して得られた３次元データから人体骨格情報を検出する骨格推定部と、骨格推定部により得られた人体骨格情報から人体情報を生成する人体情報生成部と、人体情報生成部により得られた複数の人体情報を用いて、３次元データに含まれる人物の実像と虚像とからなる鏡像対を検出する鏡像対検出部と、鏡像対検出部により検出された鏡像対のうち、撮像部からの距離が遠い方を虚像と判断する虚像判断部とを備える。【選択図】  図２
2019211850.tif 000002
【特許請求の範囲】
【請求項１】
撮像部により人物を撮像して得られた３次元データから人体骨格情報を検出する骨格推定部と、
前記骨格推定部により得られた人体骨格情報から人体情報を生成する人体情報生成部と、
前記人体情報生成部により得られた複数の人体情報を用いて、前記３次元データに含まれる前記人物の実像と虚像とからなる鏡像対を検出する鏡像対検出部と、
前記鏡像対検出部により検出された鏡像対のうち、前記撮像部からの距離が遠い方を虚像と判断する虚像判断部と、
を備える骨格検出装置。
【請求項２】
請求項１に記載の骨格検出装置であって、
前記鏡像対検出部により検出された鏡像対における対応する２点を用いて鏡面候補点を算出する鏡面候補点算出部と、
該鏡面候補点算出部により算出された鏡面候補点を保存する鏡面候補点保存部と、
該鏡面候補点保存部に保存された複数の鏡面候補点から鏡面を推定する鏡面推定部と、
備える骨格検出装置。
【請求項３】
請求項２に記載の骨格検出装置であって、
前記鏡面候補点算出部は、前記鏡像対における２点を結ぶ線分の垂直二等分面と、前記虚像判断部により判断された虚像における前記点と前記撮像部を結ぶ線分との交点を、前記鏡面候補点として算出する骨格検出装置。
【請求項４】
請求項２に記載の骨格検出装置であって、
前記鏡面推定部により推定された鏡面を保存する鏡面保存部と、
前記撮像部により得られた３次元データのうち前記鏡面推定部により推定された鏡面よりも前記撮像部から見て遠方の３次元データを除去する虚像除去部とを有し、
前記骨格推定部は、前記虚像除去部により得られた３次元データから人体骨格情報を検出する骨格検出装置。
【請求項５】
請求項２に記載の骨格検出装置であって、
前記鏡面推定部により推定された鏡面を保存する鏡面保存部と、
前記撮像部により得られた３次元データを前記鏡面推定部により推定された鏡面を対称面として折り返した重畳３次元データを生成する鏡像重畳部とを有し、
前記骨格推定部は、前記鏡像重畳部により得られた重畳３次元データから人体骨格情報を検出する骨格検出装置。
【請求項６】
請求項２に記載の骨格検出装置であって、
前記鏡面推定部により推定された鏡面を提示する鏡面提示部を備える骨格検出装置。
【請求項７】
請求項６に記載の骨格検出装置であって、
前記鏡面の当否の入力を受ける鏡面情報入力部を備える骨格検出装置。
【請求項８】
請求項４に記載の骨格検出装置であって、
前記鏡面の移動情報の入力を受け付ける鏡面移動情報入力部を備える骨格検出装置。
【請求項９】
請求項８に記載の骨格検出装置であって、
前記虚像除去部は、前記鏡面移動情報入力部により受け付けられた鏡面の移動情報を用いて、前記鏡面推定部により推定された鏡面を移動させる骨格検出装置。
【請求項１０】
請求項５に記載の骨格検出装置であって、
前記鏡面の移動情報の入力を受け付ける鏡面移動情報入力部を備える骨格検出装置。
【請求項１１】
請求項１０に記載の骨格検出装置であって、
前記鏡像重畳部は、前記鏡面移動情報入力部により受け付けられた鏡面の移動情報を用いて、前記鏡面推定部により推定された鏡面を移動させる骨格検出装置。
【請求項１２】
請求項１に記載の骨格検出装置であって、
他の前記骨格検出装置から出力された前記人体情報の入力を受け付ける人体情報入力部を備える骨格検出装置。
【請求項１３】
請求項１２に記載の骨格検出装置であって、
前記鏡像対検出部は、前記人体情報生成部により得られた人体情報と前記人体情報入力部により受け付けられた人体情報を用いて前記鏡像対を検出する骨格検出装置。
【請求項１４】
請求項１に記載の骨格検出装置であって、
前記撮像部を備える骨格検出装置。
【請求項１５】
撮像部により人物を撮像して得られた３次元データから人体骨格情報を検出し、
該検出した人体骨格情報から人体情報を生成し、
該生成した複数の前記人体情報を用いて、前記３次元データに含まれる前記人物の実像と虚像とからなる鏡像対を検出し、
該検出した鏡像対のうち、前記撮像部からの距離が遠い方を虚像と判断する骨格検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、骨格検出装置、及び骨格検出方法に関する。
【背景技術】
【０００２】
測距センサ（ＴＯＦ（Time of Flight）センサ、ステレオカメラ等）と距離画像解析技術を用いて、人の動作を認識し、生産効率改善や不良品低減、顧客行動分析、従業員監視を実現するユースケースが拡大している。人の動作の認識は、人の骨格検出を行う骨格検出装置を用いることで、認識率が上がることが知られている。例えば、特許文献１は３Ｄセンサによって取得した３次元データ内に含まれる人物の骨格検出を行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１７/１８７６４１号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の方法では、例えば３Ｄセンサの撮影範囲内にドアや工作機械から作業者を保護する仕切り板等が存在し、これらが鏡面を有する場合には、その鏡面を反射した像も実像と認識してしまう。鏡面を反射した像は虚像であり、実体を持たない。例えば特許文献１の実施例２に記載のスキル判定装置では、実体を持たない虚像を実像と認識してしまうことで、作業者が正しい行動をしているにもかかわらず、間違った行動をしていると判断してしまう。
【０００５】
本発明は、骨格検出装置において、実像の誤認識を低減することを目的とする。
【課題を解決するための手段】
【０００６】
本願は、上記課題の少なくとも一部を解決する手段を複数含んでいるが、その例を挙げるならば、以下のとおりである。
【０００７】
上記の課題を解決する本発明の一態様は、撮像部により人物を撮像して得られた３次元データから人体骨格情報を検出する骨格推定部と、骨格推定部により得られた人体骨格情報から人体情報を生成する人体情報生成部と、人体情報生成部により得られた複数の人体情報を用いて、３次元データに含まれる人物の実像と虚像とからなる鏡像対を検出する鏡像対検出部と、鏡像対検出部により検出された鏡像対のうち、撮像部からの距離が遠い方を虚像と判断する虚像判断部と、を備える。
【発明の効果】
【０００８】
本発明の一態様によれば、骨格検出装置において、実像の誤認識を低減することができる。
【０００９】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１実施形態に係る骨格検出装置のハードウェア構成例を示すブロック図である。
【図２】骨格検出装置の機能構成例を示すブロック図である。
【図３】撮像部の機能構成例を示すブロック図である。
【図４】骨格推定部の機能構成例を示すブロック図である。
【図５】人物等の撮像対象が存在する撮像対象空間の例を示す図である。
【図６】人体情報生成部によって生成される人体情報の例を示す表である。
【図７】人物が２回反射している撮像対象空間の例を示す図である。
【図８】図７に示す撮像対象空間を撮像した場合に、人体情報生成部によって生成される人体情報の例を示す表である。
【図９】本発明の第２実施形態に係る骨格検出装置の機能構成例を示すブロック図である。
【図１０】鏡面候補点の例を示す図である。
【図１１】推定された鏡面の一例を示す図である。
【図１２】本発明の第３実施形態に係る骨格検出装置の機能構成例を示すブロック図である。
【図１３】本発明の第４実施形態に係る骨格検出装置の機能構成例を示すブロック図である。
【図１４】ディスプレイにおける鏡面位置の表示例を示す図である。
【図１５】本発明の第５実施形態に係る骨格検出装置の機能構成例を示すブロック図である。
【図１６】本発明の第６実施形態に係る骨格検出装置の機能構成例を示すブロック図である。
【図１７】本発明の第７実施形態に係る骨格検出装置の機能構成例を示すブロック図である。
【図１８】本発明の第８実施形態に係る骨格検出装置の機能構成例を示すブロック図である。
【図１９】２つの骨格検出装置で撮像対象空間を撮像している例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の複数の実施形態について、図面を参照して説明する。
【００１２】
[第１実施形態]
以下に説明する実施形態では、撮像部により人物を撮影した３次元データから人体の骨格情報を検出し、その骨格情報から人体情報を生成する。そして、その生成した人体情報の類似度を算出することによって、３次元データに含まれる人物の実像とその実像の鏡面反射である虚像の対を検出し、撮像部からの距離が遠い方を虚像と判断する。
【００１３】
図１は、本発明の第１実施形態に係る骨格検出装置１００のハードウェア構成例である。本実施形態の骨格検出装置１００は、図１に示すように、３次元カメラ７０１、ＣＰＵ（Central Processing Unit）７０２、ＲＯＭ（Read Only Memory）７０３およびＲＡＭ（Random Access Memory）７０４等を備えている。
【００１４】
３次元カメラ７０１は、人物等の撮像対象が存在する撮像対象空間を撮像し、３次元データを出力する撮像装置である。なお、骨格検出装置１００の出力は、後で詳述する人体骨格情報でもよいし、３次元データでもよい。
【００１５】
本実施形態では、３次元カメラ７０１の設置条件が予め測定され、骨格検出装置１００に入力設定されている。３次元カメラ７０１の設置条件としては、例えば床からの高さおよび３次元カメラ７０１のＸＹＺカメラ座標系のＺ軸と鉛直軸とがなす角度等がある。３次元カメラ７０１の設置条件の測定の方法としては、３次元カメラ７０１を設置する作業者が実測してもよいし、３次元カメラ７０１内にカメラの姿勢（向き）を検出するセンサを内蔵し、その出力を用いてＺ軸と鉛直軸とがなす角度を求めるようにしてもよい。姿勢を検出するセンサとしては、例えば加速度センサ等がある。また、センサを用いてＺ軸と鉛直軸とがなす角度を求める場合、床からの高さは、３次元カメラ７０１で得られる床からの距離情報および加速度センサから得られるＺ軸と鉛直軸とがなす角度から、三角測量法で求めることができる。これにより、カメラ座標系と世界座標系の関係を算出するための情報を得ることが可能である。
【００１６】
ＣＰＵ７０２は、ＲＯＭ７０３またはＲＡＭ７０４に格納されているプログラムを実行する。具体的には、ＣＰＵ７０２がプログラムを実行することにより、骨格検出装置１００の各部の機能が実現される。ＲＯＭ７０３は、ＣＰＵ７０２が実行するプログラムおよび実行に必要な各種パラメータを格納するための記憶媒体である。ＲＡＭ７０４は３次元カメラ７０１により生成された画像および各種情報を格納するための記憶媒体である。また、ＲＡＭ７０４は、ＣＰＵ７０２が使用するデータの一時保管領域としても機能する。骨格検出装置１００は、ＣＰＵ７０２とＲＯＭ７０３とＲＡＭ７０４をそれぞれ複数有することができる。
【００１７】
なお、骨格検出装置１００のハードウェア構成は、図１に示す構成に限定されない。例えば３次元カメラ７０１を骨格検出装置１００とは別体として設けるようにしてもよい。その場合、骨格検出装置１００は汎用のコンピュータ（例えばサーバコンピュータやパーソナルコンピュータ等）を用いて実現するようにしてもよい。
【００１８】
また、複数のコンピュータをネットワークで接続して、骨格検出装置１００の各部の機能を各コンピュータが分担することもできる。一方で、骨格検出装置１００の機能の１つ以上を、専用のハードウェアを用いて実現することもできる。
【００１９】
図２は、本実施形態の骨格検出装置１００の機能構成例を示すブロック図である。骨格検出装置１００は、図２に示すように、撮像部１１０、骨格推定部１２０、人体情報生成部１０３、鏡像対検出部１０４および虚像判断部１０５を備える。
【００２０】
撮像部１１０は、人物等の撮像対象が存在する撮像対象空間を撮像し、人物を含む３次元データを生成する。３次元データは、１フレームの静止画であってもよいし、複数フレームからなる映像でもよい。本実施形態における３次元データは、直交する３軸方向に並ぶ各画素に対して、その階調情報（例えばＲＧＢ）を与えた距離画像である。撮像部１１０は、３次元カメラ７０１によって実現される。また、撮像部１１０は、３次元カメラ７０１とＣＰＵ７０２によって実現してもよい。撮像部１１０以外の骨格推定部１２０、人体情報生成部１０３、鏡像対検出部１０４および虚像判断部１０５の機能は、ＣＰＵ７０２がプログラムを実行することにより実現される。
【００２１】
撮像部１１０は、例えばＴＯＦ（Time of Flight）方式によって距離画像を生成する。なお、撮像部１１０としては、これに限らず、距離画像を生成するのであれば他の方式を用いるようにしてもよい。例えば可視光による撮像を行う２つの光学系を備えたステレオカメラ方式等を用いることができる。
【００２２】
以下、ＴＯＦ方式を用いた撮像部１１０について説明する。図３は、本実施形態の撮像部１１０の機能構成例を示すブロック図である。撮像部１１０は、図３に示すように、制御部１１１と、光源１１２と、距離画像センサ１１３と、距離画像生成部１１４と、通信部１１５とを備える。
【００２３】
制御部１１１は、光源１１２、距離画像センサ１１３、距離画像生成部１１４及び通信部１１５を制御する。例えば、制御部１１１は、光源１１２に光の照射を指示し、距離画像センサ１１３に照射光と反射光の位相差情報の生成を指示し、距離画像生成部１１４に距離画像の生成を指示し、通信部１１５に距離画像の送信を指示する。制御部１１１は、例えば、ＣＰＵ及びＲＡＭ等を含むマイクロコンピュータや、専用ハードウェア回路により実現することができる。
【００２４】
光源１１２は、人物等の撮像対象が存在する撮像対象空間に対して光を照射する。光源１１２は、例えば、赤外光を照射する発光ダイオードおよび半導体レーザ等のデバイスにより実現することができる。
【００２５】
距離画像センサ１１３は、撮像対象空間からの反射光を、結像レンズ（図示せず）を介して受光し、センサ上の画素毎に、照射時と受光時の位相差情報と、階調情報とを生成して出力する。距離画像センサ１１３は、例えば、照射時と受光時の位相差情報と階調情報とを生成する複数の受光素子を、二次元状に配列することで構成することができる。
【００２６】
距離画像生成部１１４は、距離画像センサ１１３から出力されるセンサ上の画素毎の位相差情報を用いて、センサ上の画素毎にその距離情報を算出する。そして、距離画像生成部１１４は、得られたセンサ上の各画素の階調情報と距離情報に基づき、３次元配列された各画素位置に対してその階調情報を関連付けた距離画像を生成する。
【００２７】
また、距離画像生成部１１４は、距離画像から骨格推定の対象画素を抽出し、骨格推定の対象画素にマークをつけた距離画像を通信部１１５を介して骨格推定部１２０に送信する。例えば、距離画像生成部１１４は、人物等の撮像対象が撮像対象空間に存在するときに撮像して得られた距離画像と、撮像対象が存在しないときに同一の撮像対象空間を撮像して得られた距離画像との間で対応する画素の距離情報の差分を算出する。距離画像生成部１１４は、距離情報の差分がゼロでない画素を骨格推定の対象画素として抽出することができる。
【００２８】
なお、骨格推定の対象画素の抽出方法はこれに限定されない。距離画像生成部１１４は、例えば、距離が所定値未満の画素を骨格推定の対象画素として抽出してもよい。骨格推定の対象画素にマークをつける方法としては、例えば、骨格推定の対象外の画素（背景画素）の階調情報及び距離情報を所定値（例えば「１」）に設定する方法がある。これにより、距離画像生成部１１４は、距離画像のサイズ（縦横の画素数を指す、以下同様）を変更することなく、骨格推定の対象画素にマークをつけることができる。
【００２９】
また、距離画像生成部１１４は、出力する距離画像に対して所定の圧縮処理を施すことによってデータ量を削減してもよい。上記のマーキングの例では、背景画素が同じ値に設定されるため、背景画素が連続する領域では圧縮率を高めることができる。距離画像生成部１１４は、例えば、ＣＰＵおよびＲＡＭ等を含むマイクロコンピュータや、専用ハードウェア回路により実現することができる。
【００３０】
通信部１１５は、距離画像生成部１１４から出力されたマーク付きの距離画像を、骨格推定部１２０に送信する。通信部１１５は、例えば、ＵＳＢ（Universal Serial Bus）等の規格のシリアルインターフェイスにより実現することができる。
【００３１】
撮像部１１０は、３次元カメラ７０１またはＣＰＵ７０２もしくはその両方によって、距離画像を加工する機能を有してもよい。距離画像を加工する方法としては、例えば、ノイズ削減および歪み補正等が挙げられる。撮像部１１０が生成する距離画像の形式は、３次元配列に例えば輝度（階調）等の情報を格納した形式でもよいし、２軸をアドレスとする２次元配列に残り1軸の大きさを格納した形式でもよい。３次元配列の形式を用いる場合、各画素の階調情報は３次元配列中の対応する位置が示すアドレスに格納され、各画素の距離情報は３次元配列中の１次元配列上の位置によって実現される。２次元配列の形式を用いる場合、各画素の階調情報及び距離情報は２次元配列中の対応する位置が示すアドレスに格納される。
【００３２】
次に、図２に示す骨格推定部１２０について説明する。図４は、骨格推定部１２０の機能構成例を示すブロック図である。骨格推定部１２０は、撮像部１１０から出力された距離画像を用いて、その距離画像に含まれる人物の骨格を推定する。骨格推定処理を行うため、骨格推定部１２０は、特徴量算出部１２１、部位識別部１２２、及び関節識別部１２３を含む。
【００３３】
特徴量算出部１２１は、撮像部１１０から出力された距離画像を構成する各画素の特徴量を算出する。特徴量算出部１２１は、骨格推定の対象画素（以下、注目画素という）毎に、特徴量を算出する。本実施形態においては、上述のように背景画素には所定値が設定されているため、注目画素は背景画素から区別することができる。特徴量の算出方法は、既存の技術を用いることができ、限定されない。例えば、注目画素とその周囲画素の距離の差を特徴量とすればよい。具体例としては、注目画素を中心とする縦９画素×横９画素の矩形領域から、注目画素とその周囲の８０画素それぞれとの距離の差を有する８０次元（２次元配列）の特徴量ベクトルを用いることができる。
【００３４】
部位識別部１２２は、各注目画素が属する部位（例えば、頭、腕、手、胴体等の体のパーツ、関節は含まない）を識別する。部位の識別方法は、既存の技術を用いることができ、限定されない。例えば、特徴量閾値と部位ラベルを関連付けた決定木（識別器）に対して、注目画素の特徴量を入力することで、その注目画素の部位ラベルを取得すればよい。部位ラベルとは、各部位の種類を示す情報等の、部位の識別子である。識別器には、例えば、ランダムフォレスト等の複数の決定木を用いることができ、予め学習した識別器を骨格検出装置１００が備えるＲＯＭ７０３に記憶しておけばよい。
【００３５】
関節識別部１２３は、識別された各注目画素の部位ラベルを用いて、対象の関節位置を識別する。関節位置の識別方法は、既存の技術を用いることができ、限定されない。例えば、同一部位ラベルが付与された注目画素群である部位毎に、その重心位置（関節位置候補）を取得すればよい。重心位置の取得には、例えば、mean-shift法を用いることができる。また、例えば、関節間の直線距離や関節間を結ぶ直線がなす角度等といった関節間の関係を定義した骨格関節モデルを用いて、各重心位置の骨格関節モデルに対する整合性を評価し、最終的な各関節位置を決定すればよい。また、各関節位置の関節ラベルを決定してもよい。関節ラベルとは、例えば、首関節、手首関節、および肩関節等といった関節の種類の情報を示す識別子である。
【００３６】
骨格推定部１２０は、関節識別部１２３によって識別された関節位置の情報を人体骨格情報として人体情報生成部１０３に出力する。
【００３７】
人体情報生成部１０３は、骨格推定部１２０から得られた1つまたは複数の人体骨格情報から、それぞれの人体情報を生成する。人体情報としては、例えば身長、体重、年齢、関節間の相対位置（例えば関節間の直線距離）、３つの関節（例えば肩関節、肘関節および手首関節）からなる角度、３次元カメラ７０１（撮像部１１０）から人物までの距離等がある。また、人体情報生成部１０３は、人体情報として、撮像対象空間に含まれている人物の数を出力する。身長、体重、年齢は、例えば、骨格の長さや体の表面積から推定することができる。
【００３８】
図５は、人物等の撮像対象が存在する撮像対象空間の例を示す。この例では、３次元カメラ７０１は、人物Ａ、人物Ｂ、人物Ａが鏡面Ｍに反射した虚像の人物Ｃを撮像している。図６は、図５に示す撮像対象空間を３次元カメラ７０１によって撮像した場合において、人体情報生成部１０３によって生成される人体情報の例を示す表である。人体情報生成部１０３が出力する人物の数は「３」である。
【００３９】
図６に示す例では、人体情報生成部１０３は、人体情報として、右肩−右肘−右手の角度、左肩−左肘−左手の角度、首−右肩−右肘、首−左肩−左肘、頭部と首の距離、および３次元カメラ７０１から人物までの距離を生成している。３次元カメラ７０１から人体までの距離は、例えば、３次元カメラ７０１から各人物の頭部までの距離である。人体情報生成部１０３は、生成する人体情報のうち、左右で対称となり得る項目に、同じ対称番号を付与する。例えば、図６に示す例では、右肩−右肘−右手の角度と左肩−左肘−左手の角度は左右で対称となるので、同じ対称番号「１」が付与され、首−右肩−右肘の角度と首−左肩−左肘の角度も左右で対称となるので同じ対称番号「２」が付されている。
【００４０】
鏡像対検出部１０４は、人体情報生成部１０３から出力された人物の数が２以上の場合に、距離画像に含まれる鏡像対を検出する。鏡像対とは、人物の実像とその実像が反射してできた虚像からなる組である。鏡像対検出部１０４は、人体情報生成部１０３から出力された人体情報を用いて鏡像対を検出する。
【００４１】
具体的には、鏡像対検出部１０４は、第１の人物の人体情報と第２の人物の人体情報との間の類似度を算出する。類似度が小さいほうが類似した人物となる類似度算出式を用いる場合には、類似度が所定の閾値以下の場合に、鏡像対として検出する。一方、類似度が大きいほうが類似した人物となる類似度算出式を用いる場合には、類似度が所定の閾値以上の場合に、鏡像対として検出する。人物の類似度は、例えば式（１）に示すような、同じ種類の人体情報の差の重み付き平方和等である。
【００４２】
【数１】
2019211850.tif 000003
【００４３】
Ｎは人体までの距離を除いた人体情報生成部１０３が出力する人体情報の種類数、xkはk番目の人体情報に対応する重み、P1kは第１の人物のk番目の人体情報、P2kは第２の人物のk番目の人体情報を表す。このとき類似度は、同じ対称番号が付与されている項目の場合、第１の人物の同じ対称番号が付与された各項目の人体情報に対して、第２の人物の同じ対称番号が付された各項目の人体情報を入れ替えて計算する。
【００４４】
具体的には、人物Ａと人物Ｂの類似度を計算する際、人物Ａの対称番号「１」が付された右肩−右肘−右手の角度（121）と左肩−左肘−左手の角度(169)に対して、人物Ｂの同じ対称番号「１」が付された各項目の人体情報、すなわち人物Ｂの右肩−右肘−右手の角度（160）と左肩−左肘−左手の角度(100)とを入れ替えて類似度を計算する。また、人物Ａの対称番号「２」が付された首−右肩−右肘の角度（130）と首−左肩−左肘の角度（95）に対して、人物Ｂの同じ対称番号「２」が付された各項目の人体情報、すなわち人物Ｂの首−右肩−右肘の角度（170）と首−左肩−左肘の角度（220）とを入れ替えて類似度を計算する。
【００４５】
例えばすべての重みxkが「１」の場合、人物Ａと人物Ｂの類似度は「１４２７２」（＝(121-100)^2+(169-160)^2+(130-220)^2+(95-170)^2+(30-25)^2）となり、人物Ａと人物Ｃの類似度は「７」となり、人物Ｂと人物Ｃの類似度は「２３６０５」となる。類似度が「１００」以下の対を鏡像対として検出する場合、鏡像対検出部１０４は、人物Ａと人物Ｃを鏡像対と検出する。
【００４６】
このように、鏡像対検出部１０４は、検出された複数の人物の中で、人物２人の全ての組み合わせについて鏡像対の検出を試みる。人体情報を基に人物の類似度を算出し鏡像対を検出することで、距離画像から直接パターンマッチング等によって鏡像対を検出する方法に比べて、処理量を減らすことができる。
【００４７】
虚像判断部１０５は、鏡像対検出部１０４によって得られた鏡像対のうち、どちらの像が虚像かを判断する。虚像判断部１０５は、鏡像対のうち、３次元カメラ７０１（撮像部１１０）からの距離が遠いほうを虚像と判断する。
【００４８】
図５に示す例の場合、３次元カメラ７０１と人物Ａの実像との距離がＤ１であるのに対し、３次元カメラ７０１と人物Ａの虚像である人物Ｃとの距離は、距離ｄ２１に対して距離ｄ２２を加算した距離Ｄ２となる。すなわち、３次元カメラ７０１と人物Ｃとの距離Ｄ２は、反射による経路であるため、幾何学的に必ず３次元カメラ７０１と人物Ａとの距離Ｄ１よりも長くなる。したがって、本実施形態の虚像判断部１０５は、上述したように、鏡像対のうち、３次元カメラ７０１（撮像部１１０）からの距離が遠いほうを虚像と判断する。図６の例では、人体までの距離は、人物Ａが１５０、人物Ｃが２５０であるため、虚像判断部１０５は、人物Ｃを虚像と判断する。
【００４９】
また、虚像判断部１０５は、複数の鏡像対の対応関係から２回以上反射した虚像を判断することができる。虚像判断部１０５は、上記方法で虚像を判断したのち、他の鏡像対において虚像と判断された人物を虚像と判断する。図７は、人物Ｄが２回反射している撮像対象空間の例である。また、図８は、図７に示す撮像対象空間を３次元カメラ７０１によって撮像した場合において、人体情報生成部１０３によって生成される人体情報の例を示す表である。
【００５０】
図７に示す撮像対象空間には、人物Ｄ、人物Ｄが鏡面Ｍａで反射した人物Ｅ、人物Ｄが鏡面Ｍａと鏡面Ｍｂで２回反射した人物Ｆがそれぞれ存在する。鏡像対検出部１０４は、上記方法により人物Ｄと人物Ｅの対（第１の対）と、人物Ｅと人物Ｆの対（第２の対）をそれぞれ鏡像対と検出する。虚像判断部１０５は、まず、３次元カメラ７０１から各人物までの距離を参照し、第１の対については、人物Ｅを人物Ｄが反射した虚像と判断する。３次元カメラ７０１と人物Ｄとの距離は距離Ｄ３となり、３次元カメラ７０１と人物Ｅとの距離は、距離ｄ４１＋距離ｄ４２＝距離Ｄ４となる。幾何学的に、必ずＤ４＞Ｄ３となるので、人物Ｅを虚像と判断することができる。
【００５１】
また、第２の対については、人物Ｆを人物Ｅが反射した虚像と判断する。３次元カメラ７０１と人物Ｅとの距離は距離Ｄ４となり、３次元カメラ７０１と人物Ｆとの距離は、距離ｄ５１＋距離ｄ５２＝距離Ｄ５となる。幾何学的に、必ずＤ５＞Ｄ４となるので、人物Ｆを虚像と判断することができる。
【００５２】
その後、第１の対について人物Ｅが虚像と判断されていることから、第２の対における人物Ｅも虚像と判断する。その結果、虚像判断部１０５は、人物Ｆを人物Ｄが２回反射した虚像と判断する。なお、ここでは２回反射した例について説明したが、３回以上反射した場合も同様の手法を用いることができる。
【００５３】
第１実施形態の骨格検出装置１００によれば、鏡像対検出部１０４によって、鏡面を反射した虚像と実像の組を検出し、虚像判断部１０５によって、検出された虚像と実像の組から虚像を判断することができる。これにより、３次元カメラ７０１から出力された距離画像から実像のみの人体骨格情報を検出することができ、撮像対象空間に含まれる人物の誤認識を低減することができる。
【００５４】
なお、虚像については距離画像から削除するようにしてもよいし、虚像として特定した上で、強調表示するなどして利用してもよい。
【００５５】
[第２実施形態]
第１実施形態では、虚像判断部１０５において、鏡像対検出部１０４で得られた鏡像対のうちの虚像を判断することによって、撮像対象空間に含まれる人物の認識対象からその虚像を除外する構成とした。これに対し、第２実施形態は、鏡像対検出部１０４で得られた鏡像対から鏡面位置を検出し、その鏡面位置より奥側にある距離画像、すなわち鏡面位置よりも３次元カメラ７０１から見て遠方の距離画像を除去する構成とする。これにより撮像部１１０から得られた距離画像から不要な部分が予め削除されるため骨格推定部１２０の処理負荷を軽減することが可能となる。
【００５６】
図９は、本実施形態の機能構成例を示すブロック図である。以下、図９を参照しながら第２実施形態について説明する。なお、第１実施形態と同一の構成、機能を有するものには同一の符号を付して、その詳細な説明を省略する。
【００５７】
第２実施形態に係る骨格検出装置１００は、第１実施形態で示す機能に加え、鏡面候補点算出部２０１、鏡面候補点保存部２０２、鏡面推定部２０３、鏡面保存部２０４および虚像除去部２０５を備えている。
【００５８】
虚像除去部２０５は、鏡面保存部２０４に鏡面位置が保存されている場合は、３次元カメラ７０１から見て鏡面保存部２０４に保存された鏡面位置より遠方（奥側）の領域の距離画像を除去し、その一部が除去された距離画像を骨格推定部１２０に出力する。一方、虚像除去部２０５は鏡面保存部２０４に鏡面位置が保存されていない場合は、入力された距離画像を加工せず骨格推定部１２０に出力する。鏡面位置より遠方の領域の距離画像はすべて虚像のデータであり骨格検出をする必要はないため、鏡面位置より遠方の領域の距離画像を除去することによって、骨格推定部１２０の処理量を削減することができる。また、虚像の骨格検出がなくなることで、人体情報生成部１０３と鏡像対検出部１０４と虚像判断部１０５の処理量を減らすことができる。
【００５９】
骨格推定部１２０は、鏡面保存部２０４に鏡面位置が保存されている場合には、虚像除去部２０５によって一部除去された距離画像を用いて、その距離画像から人体骨格情報を検出することにより人物の骨格を推定する。すなわち、骨格推定部１２０は、鏡面保存部２０４に鏡面位置が保存されている場合には、実像のみの人体骨格情報を出力する。これにより、３次元カメラ７０１から出力された距離画像から実像のみの人体骨格情報を検出することができ、撮像対象空間に含まれる人物の誤認識を低減することができる。
【００６０】
一方、骨格推定部１２０は、鏡面保存部２０４に鏡面位置が保存されていない場合には、虚像除去部２０５において加工されることなく出力された距離画像を用いて、その距離画像から人体骨格情報を検出することにより人物の骨格を推定する。すなわち、骨格推定部１２０は、鏡面保存部２０４に鏡面位置が保存されていない場合には、第１実施形態と同様に、実像および虚像の人体骨格情報を出力する。
【００６１】
そして、第１実施形態と同様に、人体情報生成部１０３は、骨格推定部１２０から出力された人体骨格情報から人体情報を生成し、鏡像対検出部１０４は、人体情報生成部１０３から出力された人体情報から鏡像対を検出し、虚像判断部１０５は、鏡像対のうちの虚像を判断する。
【００６２】
鏡面候補点算出部２０１は、鏡像対検出部１０４から出力された鏡像対を用いて、鏡面を構成する点の候補の位置を算出する。図１０は鏡面候補点C1の位置を示す図である。まず、鏡面候補点算出部２０１は、実像R1の関節R1pと虚像V1の関節V1pを結ぶ線分の垂直二等分面M1を算出する。
【００６３】
関節R1pと関節V1pは、左右がない関節の場合は同じ種類の関節であり、左右がある場合は左右が逆の関節である。垂直二等分面M1は、関節R1pと関節V1pの中点B1を通る面であり、関節R1pと関節V1pを結ぶ線分に垂直な面である。この面と、３次元カメラ７０１と関節V1pを結ぶ線分の交点を鏡面候補点C1の位置として算出する。鏡面候補点C1の位置の原点は、３次元カメラ７０１の位置であってもよいし、他の位置でもよく、例えば最初に算出された鏡面候補点C1の位置を原点としてもよい。
【００６４】
図１０では、関節R1pと関節V1pとして頭部を用いて鏡面候補点C1を求める例を示しているが、実際には、実像と虚像に含まれるその他の複数の関節の組（例えば実像の右肘関節と虚像の左肘関節の組、実像の右肩関節と虚像の左肩関節の組、実像と虚像の股関節の組等）について、それぞれ鏡面候補点C2，C3，C4，C5，・・・が算出される。なお、ここでは５つの鏡面候補点C1，C2，C3，C4，C5（以下、C1〜C5と示す）が算出されたとして説明を進める。また、鏡面候補点の算出方法は、上記の方法に限らず、鏡像対における対応する２点を用いて鏡面候補点を算出する方法であれば、その他の算出方法を用いるようにしてもよい。
【００６５】
鏡面候補点保存部２０２は、鏡面候補点算出部２０１によって得られた鏡面候補点C1〜C5の絶対位置を保存する。鏡面候補点保存部２０２は、例えば、リングバッファを内部に持ち、鏡面候補点C1〜C5の位置を保存する。リングバッファとは、バッファの先端と終端が連結され、循環的に利用されるようになっているバッファである。リングバッファを用いることによって、最も古い鏡面候補点を新しい鏡面候補点に更新していくことができる。
【００６６】
鏡面推定部２０３は、鏡面を推定する。鏡面推定部２０３は、まず、鏡面候補点保存部２０２に蓄積された複数の鏡面候補点C1〜C5から、例えば最小二乗法によって候補となる平面を求める。その後、鏡面推定部２０３は、求めた平面候補と各鏡面候補点C1〜C5との距離が最小となる各点、すなわち各鏡面候補点C1〜C5の平面候補に対する垂直投影点のすべてを含み、すべての頂点における内角が１８０°以下となる最小の多角形の面を鏡面と推定する。例えば鏡面候補点C1〜C5に対応する垂直投影点Ca1〜Ca5が図１１に示すように分布している場合、図１１において実線で示す多角形の面が鏡面と推定される。なお、図１１において点線で示すように垂直投影点Ca3を多角形の頂点の１つとして選択した場合、頂点Ca3における内角θ3が１８０°を超えることになるので、垂直投影点Ca3は、鏡面を構成する頂点の１つとして選択されない。
【００６７】
上記のように鏡像対検出部１０４から出力された鏡像対を用いて鏡面候補点を算出し、複数の鏡面候補点を用いて鏡面を推定することによって、簡易な演算処理によって鏡面を推定することができる。
【００６８】
鏡面保存部２０４は、鏡面推定部２０３が推定した鏡面を保存し、保存した鏡面を虚像除去部２０５に出力する。鏡面保存部２０４は、例えば鏡面の各頂点の座標を保存する。鏡面を保存することにより、鏡面推定部２０３は撮像部１１０のサンプリング周期で（フレーム毎に）鏡面推定を実行する必要がなくなり、鏡面推定部２０３の処理回数を減らすことができる。
【００６９】
なお、撮像部１１０によって撮像されるフレーム毎に鏡面推定を行い、鏡面位置を順次更新するようにしてもよい。また、予め設定された数のフレーム数だけ鏡面推定を行い、そのフレーム毎に推定された鏡面位置の統計値（例えば平均値）を鏡面保存部２０４に保存するようにしてもよい。
【００７０】
第２実施形態によれば、鏡像対の関係から鏡面を推定し、鏡面より奥の距離画像を除去することによって、骨格推定部１２０、人体情報生成部１０３、鏡像対検出部１０４、虚像判断部１０５の処理量を減らすことができる。
【００７１】
[第３実施形態]
第２実施形態では、虚像除去部２０５において、鏡面推定部２０３から得られた鏡面より奥の領域の距離画像を除去する構成について説明した。これに対し、第３実施形態は、鏡面推定部２０３から得られた鏡面より奥の領域の距離画像を、鏡面を対称面として手前に折り返して重ね合わせる構成である。これにより、鏡像重畳部３０１において、虚像と実像が重ね合わせられ、実像には現れていない部分を虚像で補うことができるので、骨格推定部１２０の推定精度を向上することが可能となる。
【００７２】
図１２は、本実施形態の機能構成例を示すブロック図である。以下、図１２を参照しながら第３実施形態について説明する。なお、第２実施形態と同一の構成、機能を有するものには同一の符号を付して、その詳細な説明を省略する。
【００７３】
第３実施形態に係る骨格検出装置１００は、第２実施形態で示す虚像除去部２０５に替えて、鏡像重畳部３０１を備えている。
【００７４】
鏡像重畳部３０１は、撮像部１１０から出力された距離画像のうち鏡面に反射した虚像を、実像に重ね合わせた重畳画像（本発明の重畳３次元データに相当する）を生成する。鏡像重畳部３０１は、具体的には、撮像部１１０から見て鏡面保存部２０４に保存された鏡面位置より遠方（奥側）の領域の距離画像を、鏡面を対称面とした場合に面対称となる位置に写像し、写像前の鏡面位置より遠方（奥側）の領域の距離画像については削除する。写像の際、面対称な位置に既に実像の距離画像のデータがある場合は、その部分については写像せずに実像の距離画像のデータをそのまま残す（虚像の距離画像のデータは削除する）。
【００７５】
例えば、３次元カメラ７０１から見て骨格検出対象となる人物より奥に鏡面がある場合は（例えば図７に示す人物Ｄと鏡面Ｍａの位置関係である場合）、３次元カメラ７０１の死角となる範囲の人物の距離画像のデータを実像の距離画像に重ね合わせることができる。具体例としては、人物Ｄが３次元カメラ７０１の方を向いて立っている場合には、人物Ｅの画像（人物Ｄの背中側の画像）を写像できる。一方、３次元カメラ７０１から見て骨格検出対象となる人物より手前に鏡面がある場合は（例えば図５に示す人物Ａと鏡面Ｍの位置関係である場合）、実像と虚像で共通する部分は重ね合わせないようにできる。
【００７６】
また、虚像判断部１０５によって２回以上反射していると判断されている場合は、反射回数が多い鏡面から順に対称面として写像する。図７に示す例では、まず鏡面Ｍｂより奥の領域の距離画像を、鏡面Ｍｂを対称面とした場合に面対称となる位置に写像する。次に、鏡面Ｍａより奥の領域の距離画像を、鏡面Ｍａを対称面とした場合に面対称となる位置に写像する。
【００７７】
骨格推定部１２０は鏡像重畳部３０１が生成した重畳画像から人体骨格情報を検出する。
【００７８】
第３実施形態によれば、鏡像重畳部３０１において、虚像と実像を重ね合わせることで、骨格推定部１２０の推定精度を向上することができる。鏡面に反射した虚像は、実像が含まない領域の距離画像を含むため、複数方向から撮像したことと同義であり、骨格推定に利用される距離画像の情報量を増加させることができる。
【００７９】
[第４実施形態]
第２実施形態では、鏡面保存部２０４に保存された鏡面位置より奥の領域の距離画像を除去する構成について説明した。これに対し、第４実施形態は、第２実施形態に対して、鏡面保存部２０４に保存された鏡面位置を削除または訂正する機能を付加した構成である。これにより、鏡面推定部２０３において、誤った鏡面を推定した場合に削除または訂正することが可能となる。
【００８０】
図１３は、本実施形態の機能構成例を示すブロック図である。以下、図１３を参照しながら第４実施形態について説明する。なお、第２実施形態と同一の構成、機能を有するものには同一の符号を付して、その詳細な説明を省略する。
【００８１】
第４実施形態に係る骨格検出装置１００は、第２実施形態で示す機能に加え、鏡面出力部４０１および鏡面情報入力部４０２を備えている。
【００８２】
鏡面出力部４０１（本発明の鏡面提示部に相当する）は、鏡面保存部２０４に保存された鏡面位置を出力する。鏡面出力部４０１は、例えば、ディスプレイ８０１に鏡面位置を画像として表示する。図１４はディスプレイ８０１における鏡面位置の表示例を示す。鏡面出力部４０１は、ディスプレイ８０１が有する表示画面８０２に画像８０３を表示する。画像８０３は、撮像部１１０で生成した距離画像に対して、鏡面保存部２０４に保存された鏡面位置を用いて生成した鏡面画像８０４を重ね合わせた画像である。画像８０３は、鏡面画像８０４を含む距離画像を、任意の視点からみた２次元の画像である。このように鏡面画像８０４を表示させることによって、ユーザは、推定された鏡面を容易に把握することができ、鏡面の当否および訂正の要否などを即座に判断することができる。
【００８３】
また、鏡面出力部４０１は、鏡面位置をバイナリ形式のデータとして出力する構成としてもよい。この場合、骨格検出装置１００は、外部との通信手段を有する。通信手段は、例えばイーサネットやＵＳＢ（Universal Serial Bus）等の通信装置である。鏡面出力部４０１は、通信手段で外部の装置と通信を行い、バイナリ形式のデータとして鏡面位置を出力する。バイナリ形式のデータは、少なくとも鏡面の頂点の３次元位置情報を含む。
【００８４】
鏡面情報入力部４０２は、鏡面出力部４０１によってディスプレイ８０１に表示された鏡面画像８０３が正しいか否かの入力をユーザから受け付ける。また、鏡面情報入力部４０２は、鏡面画像８０３が正しくない場合には、鏡面保存部２０４に保存された鏡面位置および鏡面候補点保存部２０２に保存された鏡面候補点の削除指示または訂正指示の入力を受け付ける。
【００８５】
４０２は、例えば、キーボード、マウスおよびタッチパネル等の入力装置を介して入力を受け付ける。また、鏡面情報入力部４０２は、これらの入力装置を複数組み合わせて用いてもよい。また、鏡面情報入力部４０２は、外部との通信手段を介して入力を受け付けてもよい。具体的には、鏡面情報入力部４０２は、イーサネット等を介して外部の入力装置からの入力を受け付けてもよい。
【００８６】
鏡面情報入力部４０２は、鏡面画像８０３が正しいことを示す入力を受け付けた場合または何も入力を受け付けなかった場合には、鏡面保存部２０４に保存された鏡面位置および鏡面候補点保存部２０２に保存された鏡面候補点に対して何も処理を施さない。一方、鏡面情報入力部４０２は、鏡面画像８０３が正しくないことを示す入力を受け付けた場合には、鏡面保存部２０４に保存された鏡面位置および鏡面候補点保存部２０２に保存された鏡面候補点の少なくとも１つの削除指示または訂正指示の入力を受け付ける。この際、鏡面情報入力部４０２において単に鏡面画像８０３が正しくないという入力が受け付けられた場合には、鏡面保存部２０４に保存された鏡面位置およびすべての鏡面候補点が削除され、鏡面候補点の算出が再び行われる。
【００８７】
一方、鏡面情報入力部４０２おいて鏡面画像８０３が正しくないという入力とともに訂正指示が受け付けられた場合には、鏡面推定部２０３は、鏡面位置を訂正する。鏡面位置の訂正指示としては、例えば、鏡面の頂点の削除、鏡面の頂点位置の訂正および鏡面の頂点の追加等がある。鏡面の頂点が削除された場合は、その頂点に距離が近い順に鏡面候補点が１つ以上削除され、鏡面推定部２０３は、削除された鏡面候補点を除外して再び鏡面の推定を行う。また、鏡面の頂点位置が訂正された場合は、訂正前の頂点に距離が近い順に鏡面候補点が１つ以上削除され、新たに訂正後の頂点の位置と同じ位置である鏡面候補点が鏡面候補点保存部２０２に保存され、鏡面推定部２０３は、新たに保存された鏡面候補点を含めて再び鏡面の推定を行う。また、鏡面の頂点が追加された場合は、新たに追加された頂点の位置と同じ位置である鏡面候補点が鏡面候補点保存部２０２に保存され、鏡面推定部２０３は、新たに保存された鏡面候補点を含めて再び鏡面の推定を行う。
【００８８】
第４実施形態によれば、鏡像対検出部１０４が正しく鏡像対を検出できなかった場合や鏡面推定部２０３が正しく鏡面を推定できなかった場合でも、間違った鏡面を削除または訂正することができる。また、骨格検出装置１００の場所を変更した場合や、撮像対象空間のレイアウトが変更になった場合でも、電源を落とすことなく正しく鏡面を推定することができる。これにより、鏡面位置より奥の領域の距離画像を適切に除去することができる。
【００８９】
[第５実施形態]
第３の実施形態では、鏡面位置より奥の領域の距離画像を実像側に重畳する構成について説明した。これに対し、第５実施形態は、第３実施形態に対して、第４実施形態と同様に、鏡面保存部２０４に保存された鏡面位置を削除または訂正する機能を付加した構成である。これにより、鏡面推定部２０３において、誤った鏡面を推定した場合に削除または訂正することが可能となる。
【００９０】
図１５は、本実施形態の機能構成例を示すブロック図である。以下、図１５を参照しながら第５実施形態について説明する。なお、第３実施形態と同一の構成、機能を有するものには同一の符号を付して、その詳細な説明を省略する。
【００９１】
第５実施形態に係る骨格検出装置１００は、第３実施形態で示す機能に加え、鏡面出力部４０１および鏡面情報入力部４０２を備えている。第５実施形態における鏡面出力部４０１および鏡面情報入力部４０２の機能および具体的な構成は、第４実施形態と同様である。
【００９２】
第５実施形態によれば、鏡像対検出部１０４が正しく鏡像対を検出できなかった場合や鏡面推定部２０３が正しく鏡面を推定できなかった場合でも、間違った鏡面を削除または訂正することができる。また、骨格検出装置１００の場所を変更した場合や、撮像対象空間のレイアウトが変更になった場合でも、電源を落とすことなく正しく鏡面を推定することができる。これにより、鏡面位置より奥の領域の距離画像を実像側に適切に重畳することができる。
【００９３】
[第６実施形態]
第４実施形態では、第２実施形態に対して、鏡面保存部２０４に保存された鏡面位置を削除または訂正する機能を付加した構成について説明した。これに対し、第６実施形態は、さらに、鏡面が移動した場合でも、鏡面より奥の領域の距離画像を適切に除去することができる構成である。これにより、例えば鏡面がドアに形成されており、ドアの開閉によって鏡面が移動した場合でも、鏡面より奥の領域の距離画像を適切に除去することができる。
【００９４】
図１６は、本実施形態の機能構成例を示すブロック図である。以下、図１６を参照しながら第６実施形態について説明する。なお、第４実施形態と同一の構成、機能を有するものには同一の符号を付して、その詳細な説明を省略する。
【００９５】
第６実施形態に係る骨格検出装置１００は、第４実施形態で示す機能に加え、鏡面移動情報入力部５０１を備えている。
【００９６】
そして、第６実施形態の虚像除去部５０４は、鏡面移動情報入力部５０１が出力する鏡面の移動情報と、鏡面保存部５０３が出力する鏡面位置の情報から、移動する鏡面の現在位置を算出し、その鏡面位置より奥の領域の距離画像を除去する。
【００９７】
鏡面移動情報入力部５０１は、鏡面の移動情報の入力を受け付ける。鏡面の移動情報とは、例えば、鏡面の平行移動量や鏡面の回転角等である。具体的には、例えば鏡面が平行移動する場合には、その鏡面の平行移動軸に沿ってリニアスケール等が設けられ、鏡面移動情報入力部５０１は、そのリニアスケールから出力された信号を鏡面の平行移動量として受け付ける。また、鏡面が回転する場合には、その鏡面の回転軸に対して、例えばロータリエンコーダ等が設けられ、鏡面移動情報入力部５０１は、そのロータリエンコーダから出力された信号を鏡面の回転角情報として受け付ける。
【００９８】
鏡面情報入力部５０２は、第４実施形態における鏡面情報入力部４０２の機能に加え、上述した鏡面の平行移動軸または鏡面の回転軸の入力を受け付け、後段に出力する機能を有する。鏡面情報入力部５０２は、例えば、キーボード等の入力装置を介して、鏡面の平行移動軸または鏡面の回転軸の各要素の値を受け付ける。
【００９９】
鏡面保存部５０３は、鏡面位置の情報を保存し出力する。鏡面位置の情報は、鏡面推定部２０３が推定する鏡面位置と、鏡面情報入力部５０２によって受け付けられる鏡面の平行移動軸または鏡面の回転軸を含む。
【０１００】
鏡面の平行移動軸は、例えば、３次元空間単位ベクトルである。虚像除去部５０４は、鏡面が平行移動する場合、鏡面保存部５０３から出力された鏡面の平行移動軸である３次元空間単位ベクトルに対し、鏡面移動情報入力部５０１において受け付けられた平行移動量を乗算したベクトルを、鏡面保存部５０３が出力する鏡面の各画素に対して加算することで、鏡面の平行移動を行う。
【０１０１】
また、鏡面の回転軸は、例えば、回転軸上の任意の座標と３次元空間単位ベクトルである。虚像除去部５０４は、鏡面が回転する場合、鏡面保存部５０３から出力された３次元空間単位ベクトルを回転軸とし、鏡面の任意の座標を原点として、ロドリゲスの回転公式を用いて、鏡面移動情報入力部５０１において受け付けられた回転量だけ鏡面の回転を行う。
【０１０２】
虚像除去部５０４は、例えば、鏡面がガラスドア等から形成され、ガラスドアの開閉によって回転する鏡面である場合には、鏡面保存部５０３から出力された鏡面を、鏡面移動情報入力部５０１から出力された鏡面の回転角だけ回転させた鏡面を算出する。
【０１０３】
また、虚像除去部５０４は、例えば、鏡面がガラスドア等から形成され、ガラスドアの開閉によって平行移動する鏡面である場合には、鏡面保存部５０３から出力された鏡面を、鏡面移動情報入力部５０１から出力された平行移動量だけ平行移動させた鏡面を算出する。
【０１０４】
鏡面の回転または平行移動の後、虚像除去部５０４は、第２実施形態における虚像除去部２０５と同様に鏡面より奥の領域の距離画像を除去する。
【０１０５】
第６実施形態によれば、鏡面が移動する場合でも、正しく鏡面位置を推定することができ、鏡面位置よりも奥の領域の距離画像を適切に除去することができる。
【０１０６】
[第７実施形態]
第５実施形態では、第３実施形態に対して、鏡面保存部２０４に保存された鏡面位置を削除または訂正する機能を付加した構成について説明した。これに対し、第７実施形態は、さらに、鏡面が移動した場合でも、鏡面より奥の領域の距離画像を適切に実像側に重畳することができる構成である。これにより、例えば鏡面がドアに形成されており、ドアの開閉によって鏡面が移動した場合でも、鏡面より奥の領域の距離画像を実像側に適切に重畳することができる。
【０１０７】
図１７は、本実施形態の機能構成例を示すブロック図である。以下、図１７を参照しながら第７実施形態について説明する。なお、第５実施形態と同一の構成、機能を有するものには同一の符号を付して、その詳細な説明を省略する。
【０１０８】
第７実施形態に係る骨格検出装置１００は、第５実施形態で示す機能に加え、第６実施形態と同様に、鏡面移動情報入力部５０１を備えている。
【０１０９】
そして、第７実施形態の鏡像重畳部５０５は、鏡面移動情報入力部５０１が出力する鏡面の移動情報と、鏡面保存部５０３が出力する鏡面位置の情報から、移動する鏡面の現在位置を算出し、その鏡面位置より奥の領域の距離画像を実像側に重畳する。
【０１１０】
第７実施形態の鏡面移動情報入力部５０１、鏡面情報入力部５０２および鏡面保存部５０３の機能および具体的な構成は、第６実施形態と同様である。
【０１１１】
鏡像重畳部５０５は、例えば、鏡面がガラスドア等から形成され、ガラスドアの開閉によって回転する鏡面である場合には、鏡面保存部５０３から出力された鏡面を、鏡面移動情報入力部５０１から出力された鏡面の回転角だけ回転させた鏡面を算出する。
【０１１２】
また、鏡像重畳部５０５は、例えば、鏡面がガラスドア等から形成され、ガラスドアの開閉によって平行移動する鏡面である場合には、鏡面保存部５０３から出力された鏡面を、鏡面移動情報入力部５０１から出力された平行移動量だけ平行移動させた鏡面を算出する。
【０１１３】
鏡面の回転または平行移動の後、鏡像重畳部５０５は、第３実施形態における鏡像重畳部３０１と同様に鏡面より奥の領域の距離画像を実像側に写像して重畳する。
【０１１４】
第７実施形態によれば、鏡面が移動する場合でも、正しく鏡面位置を推定することができ、鏡面位置よりも奥の領域の距離画像を実像側に適切に重畳することができる。
【０１１５】
[第８実施形態]
第１実施形態から第７実施形態では、撮像対象空間に含まれる人物の人体情報を生成し、その人体情報から鏡像対を検出し、その鏡像対のうちの虚像を判断する構成について説明した。これに対し、第８実施形態は、複数の骨格検出装置を組み合わせて連携することで、１つの骨格検出装置によって虚像のみが撮像された場合でも、その撮像された像を虚像として判断することができる構成である。
【０１１６】
第８実施形態は、複数の骨格検出装置から構成される骨格検出システムである。図１８は、本実施形態の骨格検出システムを構成する各骨格検出装置の機能構成例を示すブロック図である。本実施形態に係る骨格検出システムを構成する各骨格検出装置は、第２実施形態で示す機能に加え、人体情報入出力部６０１を備えている。なお、第２実施形態と同一の構成、機能を有するものには同一の符号を付して、その詳細な説明を省略する。
【０１１７】
人体情報入出力部６０１（本発明の人体情報入力部に相当する）は、例えばイーサネット等のネットワークを介して他の骨格検出装置と通信可能に構成されており、他の骨格検出装置から出力された人体情報の入力の受け付けおよび他の骨格検出装置に対する人体情報の出力を行う。
【０１１８】
人体情報入出力部６０１は、人体情報生成部６０２が出力する人体情報を、他のすべて又は予め指定された１台以上の骨格検出装置の人体情報入出力部６０１に出力する。また、人体情報入出力部６０１は、他の１台以上の骨格検出装置の人体情報入出力部６０１から出力された人体情報の入力を受け付け、その受け付けた人体情報を人体情報生成部６０２に入力する。すなわち、連携する骨格検出装置のそれぞれで生成された人体情報が、骨格検出装置間で共有される。
【０１１９】
人体情報生成部６０２は、骨格推定部１２０から出力された人体骨格情報を用いて、自身が属する骨格検出装置が撮像した人物までの距離を算出するとともに、人体情報入出力部６０１を介して入力された人体情報を用いて、他の骨格検出装置が撮像した人物までの距離を算出する。ここで、他の骨格検出装置が撮像した人物までの距離は、人体情報生成部６０２が属する骨格検出装置の絶対座標、他の骨格検出装置の絶対座標、他の骨格検出装置の３次元カメラ７０１の撮像角度、他の骨格検出装置の人体情報生成部６０２において生成された人物の３次元座標から算出する。
【０１２０】
人体情報生成部６０２は、第２実施形態の人体情報生成部１０３の機能に加え、人体情報入出力部６０１において受け付けられた人体情報の入力の受け付けおよび人体情報入出力部６０１に対して生成した人体情報を出力する機能を備える。
【０１２１】
人体情報生成部６０２は、生成した人体情報を鏡像対検出部１０４に出力する。人体情報生成部６０２が生成する人体情報には、人体情報生成部１０３が生成する人体情報に加え、人物の座標が含まれる。人物の座標とは、人物までの距離の算出に使用した部位と同じ部位の、骨格検出装置を原点とした場合の３次元座標である。
【０１２２】
図１９は、複数の骨格検出装置で撮像対象空間を撮像している例である。本例では、骨格検出装置Ａと骨格検出装置Ｂが撮像対象空間を撮像している。骨格検出装置Ａでは、人物Ｇが鏡面Ｍｃに反射した虚像である人物Ｈが撮像され、骨格検出装置Ｂでは、人物Ｇを撮像されている。骨格検出装置Ａと人物Ｇの間には障害物Ａがあるため、骨格検出装置Ａは人物Ｇを撮像することができない。
【０１２３】
図１９の例では、骨格検出装置Ａの人体情報生成部６０２は人物Ｈの人体情報と３次元座標を生成し、骨格検出装置Ｂの人体情報生成部６０２は人物Ｇの人体情報と３次元座標を生成する。生成された各人体情報と３次元座標は、各人体情報入出力部６０１を介して共有される。各骨格検出装置の人体情報生成部６０２は、入力された人物Ｇおよび人物Ｈの３次元座標を用いて、各骨格検出装置から人物Ｇおよび人物Ｈまでの距離をそれぞれ算出する。また、各骨格検出装置の鏡像対検出部１０４は、人物Ｇと人物Ｈが鏡像対であると検出し、各骨格検出装置の虚像判断部１０５は、各骨格検出装置から遠い方の人物Ｈが虚像であると判断する。
【０１２４】
第８実施形態によれば、１つの骨格検出装置が虚像のみ撮像している場合でも、他の骨格検出装置の人体情報を共有することで、その撮像した像を虚像として判断することができる。
【０１２５】
なお、第８実施形態は、第２実施形態に係る骨格検出装置を基本的な構成として人体情報入出力部６０１をさらに設けた構成としたが、これに限らず、第１および第３〜第７実施形態のうちのいずれかの実施形態に係る骨格検出装置を基本的な構成とし、人体情報入出力部６０１をさらに設けるようにしてもよい。
【０１２６】
本発明は、上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した各実施形態は、本発明を分かりやすく説明するために詳細に説明したものであり、本発明が、必ずしも説明した全ての構成要素を備えるものに限定されるものではない。また、ある実施形態の構成の一部を、他の実施形態の構成に置き換えることが可能であり、ある実施形態の構成に、他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加、削除および置換をすることが可能である。
【０１２７】
また、上記各構成、機能、処理部および処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成および各機能は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現されてもよい。各機能を実現するプログラム、テーブルおよびファイル等の情報は、メモリ、ハードディスクおよびＳＳＤ（Solid State Drive）等の記憶装置、または、ＩＣ（Integrated Circuit）カード、ＳＤカード、ＤＶＤ等の記憶媒体に置くことができる。また、制御線および情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線および情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【０１２８】
本発明は、骨格検出装置だけなく、骨格検出装置で実行されるコンピュータ読み取り可能なプログラム、骨格検出装置における処理方法等の様々な態様で提供することができる。
【符号の説明】
【０１２９】
１００：骨格検出装置、１０３，６０２：人体情報生成部、１０４：鏡像対検出部、１０５：虚像判断部、１１０：撮像部、１１１：制御部、１１２：光源、１１３：距離画像センサ、１１４：距離画像生成部、１１５：通信部、１２０：骨格推定部、１２１：特徴量算出部、１２２：部位識別部、１２３：関節識別部、２０１：鏡面候補点算出部、２０２：鏡面候補点保存部、２０３：鏡面推定部、２０４，５０３：鏡面保存部、２０５，５０４：虚像除去部、３０１，５０５：鏡像重畳部、４０１：鏡面出力部、４０２、５０２：鏡面情報入力部、５０１：鏡面移動情報入力部、６０１：人体情報入出力部、８０１：ディスプレイ、８０２：表示画面、８０３：画像、８０４：鏡面画像
【図１】
2019211850.tif 000004
【図２】
2019211850.tif 000005
【図３】
2019211850.tif 000006
【図４】
2019211850.tif 000007
【図５】
2019211850.tif 000008
【図６】
2019211850.tif 000009
【図７】
2019211850.tif 000010
【図８】
2019211850.tif 000011
【図９】
2019211850.tif 000012
【図１０】
2019211850.tif 000013
【図１１】
2019211850.tif 000014
【図１２】
2019211850.tif 000015
【図１３】
2019211850.tif 000016
【図１４】
2019211850.tif 000017
【図１５】
2019211850.tif 000018
【図１６】
2019211850.tif 000019
【図１７】
2019211850.tif 000020
【図１８】
2019211850.tif 000021
【図１９】
2019211850.tif 000022