特許第6116784号(P6116784)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 楽天株式会社の特許一覧

特許61167843次元モデル生成システム、3次元モデル生成方法、及びプログラム
<>
  • 特許6116784-3次元モデル生成システム、3次元モデル生成方法、及びプログラム 図000008
  • 特許6116784-3次元モデル生成システム、3次元モデル生成方法、及びプログラム 図000009
  • 特許6116784-3次元モデル生成システム、3次元モデル生成方法、及びプログラム 図000010
  • 特許6116784-3次元モデル生成システム、3次元モデル生成方法、及びプログラム 図000011
  • 特許6116784-3次元モデル生成システム、3次元モデル生成方法、及びプログラム 図000012
  • 特許6116784-3次元モデル生成システム、3次元モデル生成方法、及びプログラム 図000013
  • 特許6116784-3次元モデル生成システム、3次元モデル生成方法、及びプログラム 図000014
  • 特許6116784-3次元モデル生成システム、3次元モデル生成方法、及びプログラム 図000015
  • 特許6116784-3次元モデル生成システム、3次元モデル生成方法、及びプログラム 図000016
  • 特許6116784-3次元モデル生成システム、3次元モデル生成方法、及びプログラム 図000017
  • 特許6116784-3次元モデル生成システム、3次元モデル生成方法、及びプログラム 図000018
  • 特許6116784-3次元モデル生成システム、3次元モデル生成方法、及びプログラム 図000019
  • 特許6116784-3次元モデル生成システム、3次元モデル生成方法、及びプログラム 図000020
  • 特許6116784-3次元モデル生成システム、3次元モデル生成方法、及びプログラム 図000021
  • 特許6116784-3次元モデル生成システム、3次元モデル生成方法、及びプログラム 図000022
  • 特許6116784-3次元モデル生成システム、3次元モデル生成方法、及びプログラム 図000023
  • 特許6116784-3次元モデル生成システム、3次元モデル生成方法、及びプログラム 図000024
  • 特許6116784-3次元モデル生成システム、3次元モデル生成方法、及びプログラム 図000025
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6116784
(24)【登録日】2017年3月31日
(45)【発行日】2017年4月19日
(54)【発明の名称】3次元モデル生成システム、3次元モデル生成方法、及びプログラム
(51)【国際特許分類】
   G06T 13/40 20110101AFI20170410BHJP
   G06T 1/00 20060101ALI20170410BHJP
   G06F 17/50 20060101ALI20170410BHJP
【FI】
   G06T13/40
   G06T1/00 315
   G06F17/50 680J
【請求項の数】11
【全頁数】27
(21)【出願番号】特願2017-500096(P2017-500096)
(86)(22)【出願日】2016年2月16日
(86)【国際出願番号】JP2016054404
【審査請求日】2017年1月4日
【早期審査対象出願】
(73)【特許権者】
【識別番号】399037405
【氏名又は名称】楽天株式会社
(74)【代理人】
【識別番号】110000154
【氏名又は名称】特許業務法人はるか国際特許事務所
(72)【発明者】
【氏名】タン トニー
【審査官】 真木 健彦
(56)【参考文献】
【文献】 特表2015−531098(JP,A)
【文献】 特開2015−079362(JP,A)
【文献】 関根 真弘 杉田 馨 フランク ペルーベー,仮想試着システムにおける体型推定を用いた衣服画像合成技術,東芝レビュー Vol.70 No.5 (2015),日本,株式会社東芝,2015年 5月,Vol.70 No.5,P.42-45
【文献】 杉田 馨 関根 真弘 西山 正志,人物シルエットへの時空間位置合わせによる衣服画像の合成,電子情報通信学会論文誌 D Vol.J97-D No.9,日本,社団法人 電子情報通信学会,2014年 9月 1日,Vol.J97-D No.9,P.1519-1528
【文献】 平尾 公男,多関節CGモデルと距離画像による上半身の姿勢推定,電子情報通信学会技術研究報告 パターン認識・メディア理解 Vol.104 No.573,日本,社団法人 電子情報通信学会,2005年 1月14日,PRMU2004-177,P.79-84,ISSN 0913-5685
(58)【調査した分野】(Int.Cl.,DB名)
G06T 13/40
G06T 1/00
G01B 11/00 − 11/30
G06F 17/50
CiNii
(57)【特許請求の範囲】
【請求項1】
深度検出装置が検出した被写体の深度情報に基づいて、骨格パラメータを取得する骨格取得手段と、
前記骨格パラメータに基づいて、体型パラメータにより変形可能な3次元モデルの姿勢を変化させる姿勢変化手段と、
前記深度情報に基づいて、前記被写体の表面形状を取得する表面形状取得手段と、
前記姿勢変化手段により姿勢が変化した3次元モデルの表面形状と、前記被写体の表面形状と、の差に基づいて、前記体型パラメータを決定する体型決定手段と、
前記体型パラメータ決定手段により決定された体型パラメータに基づいて、前記3次元モデルを変形させる体型変形手段と、
を含むことを特徴とする3次元モデル生成システム。
【請求項2】
前記3次元モデル生成システムは、前記3次元モデルの表面形状と、前記被写体の表面形状と、の差に基づいて、前記骨格パラメータを決定する骨格決定手段を更に含み、
前記姿勢変化手段は、前記骨格決定手段により決定された骨格パラメータに基づいて、前記3次元モデルの姿勢を更新する、
ことを特徴とする請求項1に記載の3次元モデル生成システム。
【請求項3】
前記3次元モデル生成システムは、前記体型変形手段により変形した3次元モデルの表面形状の一部と、当該部分に対応する前記被写体の表面形状と、の差に基づいて、当該部分を変形させる部分変形手段、
を更に含むことを特徴とする請求項1又は2に記載の3次元モデル生成システム。
【請求項4】
前記3次元モデル生成システムは、前記深度情報に基づいて、前記3次元モデルの中から、前記深度検出装置の検出範囲に対応する部分を特定する検出範囲特定手段を更に含み、
前記部分変形手段は、前記3次元モデルのうち、前記検出範囲特定手段により特定された部分を変形させる、
ことを特徴とする請求項3に記載の3次元モデル生成システム。
【請求項5】
前記部分変形手段は、前記3次元モデルの各部分を、周囲の変形具合に基づいて変形させる、
ことを特徴とする請求項3又は4に記載の3次元モデル生成システム。
【請求項6】
前記部分変形手段は、前記3次元モデルの各部分を、当該部分の過去の形状に基づいて変形させる、
ことを特徴とする請求項3〜5の何れかに記載の3次元モデル生成システム。
【請求項7】
前記3次元モデル生成システムは、前記3次元モデル又は前記被写体の表面形状に基づいて、前記3次元モデルの中から、前記被写体の身体に対応する身体部分を特定する身体部分特定手段を更に含み、
前記体型決定手段は、前記体型パラメータを決定する場合に、前記身体部分に対応する差の重み付けを、他の部分の差の重み付けよりも高くする、
ことを特徴とする請求項1〜6の何れかに記載の3次元モデル生成システム。
【請求項8】
前記3次元モデル生成システムは、前記深度情報に基づいて、前記3次元モデルの中から、前記深度検出装置の検出範囲に対応する頂点を特定する検出範囲特定手段を更に含み、
前記体型決定手段は、前記検出範囲における前記3次元モデルの表面形状と、前記被写体の表面形状と、の差に基づいて、前記体型パラメータを決定する、
ことを特徴とする請求項1〜7の何れかに記載の3次元モデル生成システム。
【請求項9】
前記3次元モデル生成システムは、前記体型パラメータの履歴を記憶手段に記録する履歴記録手段を更に含み、
前記体型決定手段は、前記履歴記録手段により記録された履歴に基づいて、前記体型パラメータを決定する、
ことを特徴とする請求項1〜8の何れかに記載の3次元モデル生成システム。
【請求項10】
深度検出装置が検出した被写体の深度情報に基づいて、骨格パラメータを取得する骨格取得ステップと、
前記骨格パラメータに基づいて、体型パラメータにより変形可能な3次元モデルの姿勢を変化させる姿勢変化ステップと、
前記深度情報に基づいて、前記被写体の表面形状を取得する表面形状ステップと、
前記姿勢変化ステップにより姿勢が変化した3次元モデルの表面形状と、前記被写体の表面形状と、の差に基づいて、前記体型パラメータを決定する体型決定ステップと、
前記体型パラメータ決定ステップにより決定された体型パラメータに基づいて、前記3次元モデルを変形させる体型変形ステップと、
を含むことを特徴とする3次元モデル生成方法。
【請求項11】
深度検出装置が検出した被写体の深度情報に基づいて、骨格パラメータを取得する骨格取得手段、
前記骨格パラメータに基づいて、体型パラメータにより変形可能な3次元モデルの姿勢を変化させる姿勢変化手段、
前記深度情報に基づいて、前記被写体の表面形状を取得する表面形状取得手段、
前記姿勢変化手段により姿勢が変化した3次元モデルの表面形状と、前記被写体の表面形状と、の差に基づいて、前記体型パラメータを決定する体型決定手段、
前記体型パラメータ決定手段により決定された体型パラメータに基づいて、前記3次元モデルを変形させる体型変形手段、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、3次元モデル生成システム、3次元モデル生成方法、及びプログラムに関する。
【背景技術】
【0002】
従来、人や動物などの被写体を深度検出装置で検出して3次元モデルを生成する技術が知られている。例えば、非特許文献1には、複数のRGBDカメラで互いに異なる方向から被写体を撮影し、各RGBDカメラが取得した被写体の輪郭情報及び深度情報に基づいて被写体のボディラインを推定して3次元モデルを生成する技術が記載されている。また例えば、非特許文献2には、単一のRGBDカメラが検出した深度情報が示す手足の長さに合うように3次元モデルを変形させる技術が記載されている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】A.Weiss, D.Hirshberg, and M.J.Black. Home 3d body scans from noisy image and range data. ICCV, 2011.
【非特許文献2】Q.Wang, V.Jagadeesh, B.Ressler, and R.Piramuthu. Im2fit: Fast 3d model fitting and anthropometrics using single consumer depth camera and synthetic data. arXiv, 2014.
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、非特許文献1の技術では、多数のRGBDカメラを用意する必要があるので、専用の撮影スタジオなどが必要になる。更に、各撮影方向から被写体を撮影したRGBD画像を解析する必要があるので、処理が複雑化し、3次元モデルを生成するのに時間がかかる。また、非特許文献2の技術では、単に手足などの長さに応じて3次元モデルを変形させるので、被写体のサイズを正確に推定できず、例えば、実際の被写体のサイズよりも大きい3次元モデルが生成されてしまい、精度の高い3次元モデルを生成することができない。
【0005】
本発明は上記課題に鑑みてなされたものであって、その目的は、精度の高い3次元モデルを迅速に生成することである。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明に係る3次元モデル生成システムは、深度検出装置が検出した被写体の深度情報に基づいて、骨格パラメータを取得する骨格取得手段と、前記骨格パラメータに基づいて、体型パラメータにより変形可能な3次元モデルの姿勢を変化させる姿勢変化手段と、前記深度情報に基づいて、前記被写体の表面形状を取得する表面形状取得手段と、前記姿勢変化手段により姿勢が変化した3次元モデルの表面形状と、前記被写体の表面形状と、の差に基づいて、前記体型パラメータを決定する体型決定手段と、前記体型パラメータ決定手段により決定された体型パラメータに基づいて、前記3次元モデルを変形させる体型変形手段と、を含むことを特徴とする。
【0007】
本発明に係る3次元モデル生成方法は、深度検出装置が検出した被写体の深度情報に基づいて、骨格パラメータを取得する骨格取得ステップと、前記骨格パラメータに基づいて、体型パラメータにより変形可能な3次元モデルの姿勢を変化させる姿勢変化ステップと、前記深度情報に基づいて、前記被写体の表面形状を取得する表面形状ステップと、前記姿勢変化ステップにより姿勢が変化した3次元モデルの表面形状と、前記被写体の表面形状と、の差に基づいて、前記体型パラメータを決定する体型決定ステップと、前記体型パラメータ決定ステップにより決定された体型パラメータに基づいて、前記3次元モデルを変形させる体型変形ステップと、を含むことを特徴とする。
【0008】
本発明に係るプログラムは、深度検出装置が検出した被写体の深度情報に基づいて、骨格パラメータを取得する骨格取得手段、前記骨格パラメータに基づいて、体型パラメータにより変形可能な3次元モデルの姿勢を変化させる姿勢変化手段、前記深度情報に基づいて、前記被写体の表面形状を取得する表面形状取得手段、前記姿勢変化手段により姿勢が変化した3次元モデルの表面形状と、前記被写体の表面形状と、の差に基づいて、前記体型パラメータを決定する体型決定手段、前記体型パラメータ決定手段により決定された体型パラメータに基づいて、前記3次元モデルを変形させる体型変形手段、としてコンピュータを機能させる。
【0009】
また、本発明に係る情報記憶媒体は、上記のプログラムが記憶されたコンピュータ読み取り可能な情報記憶媒体である。
【0010】
また、本発明の一態様では、前記3次元モデル生成システムは、前記3次元モデルの表面形状と、前記被写体の表面形状と、の差に基づいて、前記骨格パラメータを決定する骨格決定手段を更に含み、前記姿勢変化手段は、前記骨格決定手段により決定された骨格パラメータに基づいて、前記3次元モデルの姿勢を更新する、ことを特徴とする。
【0011】
また、本発明の一態様では、前記3次元モデル生成システムは、前記体型変形手段により変形した3次元モデルの表面形状の一部と、当該部分に対応する前記被写体の表面形状と、の差に基づいて、当該部分を変形させる部分変形手段、を更に含むことを特徴とする。
【0012】
また、本発明の一態様では、前記3次元モデル生成システムは、前記深度情報に基づいて、前記3次元モデルの中から、前記深度検出装置の検出範囲に対応する部分を特定する検出範囲特定手段を更に含み、前記部分変形手段は、前記3次元モデルのうち、前記検出範囲特定手段により特定された部分を変形させる、ことを特徴とする。
【0013】
また、本発明の一態様では、前記部分変形手段は、前記3次元モデルの各部分を、周囲の変形具合に基づいて変形させる、ことを特徴とする。
【0014】
また、本発明の一態様では、前記部分変形手段は、前記3次元モデルの各部分を、当該部分の過去の形状に基づいて変形させる、ことを特徴とする。
【0015】
また、本発明の一態様では、前記3次元モデル生成システムは、前記3次元モデル又は前記被写体の表面形状に基づいて、前記3次元モデルの中から、前記被写体の身体に対応する身体部分を特定する身体部分特定手段を更に含み、前記体型決定手段は、前記体型パラメータを決定する場合に、前記身体部分に対応する差の重み付けを、他の部分の差の重み付けよりも高くする、ことを特徴とする。
【0016】
また、本発明の一態様では、前記3次元モデル生成システムは、前記深度情報に基づいて、前記3次元モデルの中から、前記深度検出装置の検出範囲に対応する頂点を特定する検出範囲特定手段を更に含み、前記体型決定手段は、前記検出範囲における前記3次元モデルの表面形状と、前記被写体の表面形状と、の差に基づいて、前記体型パラメータを決定する、ことを特徴とする。
【0017】
また、本発明の一態様では、前記3次元モデル生成システムは、前記体型パラメータの履歴を記憶手段に記録する履歴記録手段を更に含み、前記体型決定手段は、前記履歴記録手段により記録された履歴に基づいて、前記体型パラメータを決定する、ことを特徴とする。
【発明の効果】
【0018】
本発明によれば、精度の高い3次元モデルを迅速に生成することが可能になる。
【図面の簡単な説明】
【0019】
図1】3次元モデル生成システムにおいて被写体が撮影される様子を示す図である。
図2】3次元モデル生成システムのハードウェア構成を示す図である。
図3】深度情報の一例を示す図である。
図4】検出姿勢情報の一例を示す図である。
図5】3次元モデル生成システムが実行する処理の概要を示す図である。
図6】3次元モデル生成システムで実現される機能の一例を示す機能ブロック図である。
図7】骨格パラメータを示す図である。
図8】体型パラメータにより3次元モデルが変形する様子を示す図である。
図9】骨格パラメータに基づいて3次元モデルの姿勢が変化する様子を示す図である。
図10】骨格パラメータに基づいて3次元モデルの姿勢が変化する様子を示す図である。
図11】検出範囲特定部の処理を説明するための説明図である。
図12】体型決定部の処理の説明図である。
図13】最適化が行われた場合に3次元モデルが変化する様子を示す図である。
図14】頂点移動量の説明図である。
図15】3次元モデルを示す図である。
図16】3次元モデル生成システムにおいて実行される処理の一例を示すフロー図である。
図17】形状推定処理の詳細を示す図である。
図18】幾何学的再構成処理の詳細を示す図である。
【発明を実施するための形態】
【0020】
[1.3次元モデル生成システムのハードウェア構成]
以下、本発明に関わる3次元モデル生成システムの実施形態の例を説明する。図1は、3次元モデル生成システムにおいて被写体が撮影される様子を示す図であり、図2は、3次元モデル生成システムのハードウェア構成を示す図である。図1及び図2に示すように、3次元モデル生成システム1は、深度検出装置10及び3次元モデル生成装置20を含む。深度検出装置10及び3次元モデル生成装置20は、有線通信又は無線通信によりデータ送受信可能に接続される。
【0021】
深度検出装置10は、被写体の深度を検出する計測機器である。例えば、深度検出装置10は、Kinect(登録商標)センサであってよい。深度は、深度検出装置10と被写体との距離である。被写体は、検出対象となる動く物体であり、例えば、人や動物及びその被服である。
【0022】
深度検出装置10は、制御部11、記憶部12、通信部13、及び深度検出部14を含む。制御部11は、例えば、一又は複数のマイクロプロセッサを含む。制御部11は、記憶部12に記憶されたプログラムやデータに従って処理を実行する。記憶部12は、主記憶部及び補助記憶部を含む。例えば、主記憶部はRAMなどの揮発性メモリであり、補助記憶部は、ハードディスクやフラッシュメモリなどの不揮発性メモリである。通信部13は、有線通信又は無線通信用のネットワークカードを含む。通信部13は、ネットワークを介してデータ通信を行う。
【0023】
深度検出部14は、電磁波や音波などを利用して深度を検出する深度センサ(距離カメラ)であり、例えば、RGBDカメラや超音波センサなどである。ここでは、深度検出部14がRGBDカメラを含み、赤外線を利用して被写体の深度を検出する場合を説明するが、深度検出部14自体は、公知の種々の深度センサにより実現可能である。
【0024】
例えば、深度検出部14のRGBDカメラは、CMOSイメージセンサ又はCCDイメージセンサと、赤外線センサと、を含む。深度検出部14は、CMOSイメージセンサ又はCCDイメージセンサの検出信号により、被写体のRGB画像を生成する。RGB画像は、被写体の平面的な情報であり、深度を持たない。また、深度検出部14は、赤外線センサの発光素子から赤外線を発射し、被写体により反射した赤外線を受光素子で検出する。そして、深度検出部14は、赤外線を発射してから戻るまでの飛行時間に基づいて、被写体との距離を推定して深度情報を生成する。なお、深度情報の生成方法自体は、公知の種々の手法を適用可能であり、上記説明した飛行時間方式以外にも、ライトコーディング方式を利用してもよい。
【0025】
図3は、深度情報の一例を示す図である。図3に示すように、ここでは、深度情報Iは、深度画像として示される。このため、深度情報Iの各ピクセルには、深度を示す画素値が関連付けられる。なお、深度情報Iは、RGB画像と別の画像として扱ってもよいし、RGB画像と1つにまとめたRGBD画像として扱ってもよい。RGBD画像とする場合には、各ピクセルの画素値は、各色チャンネルの数値に加えて、深度チャンネルの数値を含むことになる。本実施形態では、深度情報IがRGB画像とは別のものとして扱われる場合を説明する。
【0026】
深度検出装置10は、深度検出部14が検出した深度情報Iに基づいて、被写体の各関節の位置を推定してスケルトンを取得する。スケルトンは、公知の種々の抽出方法で取得可能であるが、ここでは、テンプレートマッチングを利用した方法を一例として説明する。例えば、深度検出装置10は、深度検出部14が検出した深度情報Iと、被写体の輪郭の基本形状を示すテンプレート画像と、のテンプレートマッチングを実行し、深度情報Iにおける被写体の各関節の位置(ピクセル)を推定する。そして、深度検出装置10は、各関節の深度を所定の行列変換することで、各関節の3次元的な位置を推定する。当該推定された各関節の位置は、スケルトンの姿勢であり、以降では、検出姿勢情報として表される。
【0027】
図4は、検出姿勢情報の一例を示す図である。図4に示すように、検出姿勢情報Jは、被写体の複数の関節のそれぞれの3次元座標を含む。ここでは、検出姿勢情報Jは、頭J、肩中央J、右肩J、右ひじJ、右手J、左肩J、左ひじJ、左手J、背骨J、尻中央J10、右尻J11、右ひざJ12、右足J13、左尻J14、左ひざJ15、及び左足J16の3次元座標を含む場合を説明する。なお、図4では、深度検出装置10から被写体を見た様子を示すので、図面上では左右の位置関係が逆になっている。また、検出姿勢情報Jが示す関節の数は、上記16個より多くてもよいし、少なくてもよい。検出姿勢情報Jは、深度情報Iから検出可能な関節の位置を示せばよく、他にも例えば、手首や足首の位置を含んでいてもよい。
【0028】
本実施形態では、深度検出装置10は、所定のフレームレートのもと、深度情報Iと検出姿勢情報Jを生成する。このため、深度検出装置10は、深度情報Iと検出姿勢情報Jを定期的に生成する。例えば、フレームレートを30fpsとすると、深度検出装置10は、1/30秒ごとに深度情報Iと検出姿勢情報Jを生成する。以降、深度情報Iと検出姿勢情報Jのうち、ある時刻tのものを指すときは、それぞれの符号をI,Jと記載する。
【0029】
3次元モデル生成装置20は、3次元モデルを生成するコンピュータであり、例えば、パーソナルコンピュータ、携帯情報端末(タブレット型コンピュータを含む)、又は携帯電話機(スマートフォンを含む)等である。3次元モデル生成装置20は、制御部21、記憶部22、通信部23、操作部24、及び表示部25を含む。制御部21、記憶部22、及び通信部23のハードウェア構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であるので説明を省略する。
【0030】
操作部24は、プレイヤが操作を行うための入力デバイスであり、例えば、タッチパネルやマウス等のポインティングデバイスやキーボード等である。操作部24は、プレイヤによる操作内容を制御部21に伝達する。表示部25は、例えば、液晶表示部又は有機EL表示部等である。表示部25は、制御部21の指示に従って画面を表示する。
【0031】
なお、記憶部12,22に記憶されるものとして説明するプログラム及びデータは、ネットワークを介してこれらに供給されるようにしてもよい。また、深度検出装置10及び3次元モデル生成装置20のハードウェア構成は、上記の例に限られず、種々のコンピュータのハードウェアを適用可能である。例えば、深度検出装置10及び3次元モデル生成装置20の各々は、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、光ディスクドライブやメモリカードスロット)を含んでもよい。この場合、情報記憶媒体に記憶されたプログラムやデータが読取部を介して、深度検出装置10及び3次元モデル生成装置20に供給されるようにしてもよい。
【0032】
[2.本発明に係る処理の概要]
図5は、3次元モデル生成システム1が実行する処理の概要を示す図である。図5のtは時間軸である。図5に示すように、深度検出装置10は、3次元モデル生成装置20に深度情報Iと検出姿勢情報Jを定期的に送信する。3次元モデル生成装置20は、各フレームの開始時点で深度情報Iと検出姿勢情報Jを受信すると、被写体の身体の形状(ボディライン)を推定する形状推定処理と、推定したボディラインから部分的な詳細形状(洋服のしわなど)を再構成する幾何学的再構成処理と、を実行する。形状推定処理と幾何学的再構成処理は、毎フレーム実行される。
【0033】
形状推定処理では、深度情報Iや検出姿勢情報Jを利用して、身体の基本形状を示すテンプレートが、被写体の姿勢や体型と似るように変形する。テンプレートは、身体そのものを示す3次元モデルであり、例えば、裸の3次元モデルであってよい。テンプレートは、身体の部位を示す複数のパーツから構成され、被写体の撮影データや3DCADを利用して予め用意しておけばよい。以降、テンプレートを指すときは、3次元モデルに「M」の符号を記載し、形状推定処理で変形させた3次元モデルを指すときは、「M」の符号を記載する。3次元モデルMは、被写体の姿勢や体型を再現した裸の3次元モデルといえる。
【0034】
幾何学的再構成処理では、深度情報Iを利用して、洋服のしわなどの詳細形状(身体以外の部分の形状)が表れるように、3次元モデルMを部分的に再構成する。以降、この状態の3次元モデルを指すときは、「M」の符号を記載する。3次元モデルMは、被写体のボディラインだけでなく、身に着けているものまで再現した3次元モデルである。詳細は後述するが、3次元モデルMは、被写体の身体の部分とそれ以外の部分とを区別できるので、幾何学的再構成処理の実行結果を形状推定処理にフィードバックすることで、3次元モデルMの精度を高めることもできる。
【0035】
本実施形態では、ベイズ推定理論を利用して、3次元モデルM,Mの精度の高さを評価して、これらの精度を高めるようにしている。ベイズ推定理論は、現実世界の計測結果をもとに、推定したい事柄を確率的な意味で推定する手法である。ベイズ推定理論の確率が高いほど、推定したい事柄が実際に起こる蓋然性が高い。即ち、ベイズ推定理論の確率が高ければ、推定した3次元モデルM,Mが実際の被写体に似ていることになる。
【0036】
3次元モデル生成システム1は、ベイズ推定理論の確率が高くなるように、3次元モデルMの全体的な変形具合と部分的な再構成具合を決める。本実施形態では、この確率を高めるために、3次元モデルMと被写体との全体的なずれ具合の評価値E、3次元モデルMと被写体との部分的なずれ具合の評価値E、及び、3次元モデルMが現実ではありえない急激な変化をしないようにするための評価値Eの3つの評価値を利用して、精度の高い3次元モデルを迅速に生成するようにしている。以降、この技術の詳細を説明する。
【0037】
[3.本実施形態において実現される機能]
図6は、3次元モデル生成システム1で実現される機能の一例を示す機能ブロック図である。図6に示すように、本実施形態では、データ記憶部30、深度取得部31、骨格取得部32、体型取得部33、姿勢変化部34、検出範囲特定部35、表面形状取得部36、体型決定部37、履歴記録部38、体型変形部39、骨格決定部40、部分変形部41、及び身体部分特定部42が、3次元モデル生成装置20で実現される場合を説明する。なお、ここでは、体型決定部37及び骨格決定部40により形状推定処理の主たる処理が実行され、部分変形部41により幾何学的再構成処理の主たる処理が実行される。
【0038】
[3−1.データ記憶部]
データ記憶部30は、記憶部22を主として実現される。データ記憶部30は、3次元モデルM,Mを生成するためのデータを記憶する。ここでは、データ記憶部30が記憶するデータの一例として、下記のデータを説明する。
(1)深度情報Iの履歴を格納する深度履歴データ
(2)骨格パラメータ(詳細後述)の履歴を格納する骨格履歴データ
(3)体型パラメータ(詳細後述)の履歴を格納する体型履歴データ
(4)頂点移動量(詳細後述)の履歴を格納する移動量履歴データ
(5)3次元モデルMを定義したテンプレートデータ
(6)3次元モデルMの履歴を格納する身体履歴データ
(7)3次元モデルMの履歴を格納する再構成履歴データ
【0039】
なお、データ記憶部30に記憶されるデータは上記の例に限られない。例えば、データ記憶部30は、検出姿勢情報Jの履歴を格納するデータやスケルトンJの基本姿勢を示すデータを記憶してもよい。
【0040】
[3−2.深度取得部]
深度取得部31は、制御部21を主として実現される。深度取得部31は、深度検出装置10が検出した被写体の深度情報I(図3)を取得する。本実施形態では、3次元モデル生成装置20が深度検出装置10と直接的に接続されているので、深度取得部31は、深度検出装置10から深度情報Iを直接的に受信するが、他の機器を経由して深度情報Iを間接的に受信してもよい。深度取得部31は、取得した深度情報を深度履歴データに格納する。
【0041】
[3−3.骨格取得部]
骨格取得部32は、制御部21を主として実現される。骨格取得部32は、深度検出装置10が検出した深度情報Iに基づいて、被写体の骨格パラメータを取得する。骨格パラメータは、被写体の骨格に関する情報であり、各関節の位置関係を示す情報である。図4の検出姿勢情報Jをそのまま骨格パラメータとして用いてもよいが、ここでは、骨格取得部32は、検出姿勢情報Jが示す各関節の角度を骨格パラメータとして用いる場合を説明する。骨格取得部32は、取得した骨格パラメータを骨格履歴データに格納する。
【0042】
図7は、骨格パラメータを示す図である。図7に示すように、骨格取得部32は、検出姿勢情報Jが示す各関節の3次元座標に基づいて計算した各関節の角度{θ}を、骨格パラメータとして取得する。検出姿勢情報Jが示す各関節のうち、末端以外の関節には角度が存在するので、図7の例では、骨格パラメータ{θ}は12個の角度から構成されることになる。以降、ある時刻tにおける骨格パラメータ{θ}を指すときは、{θ}と記載する。
【0043】
[3−4.体型取得部]
体型パラメータ取得部は、制御部21を主として実現される。体型パラメータ取得部は、体型パラメータを取得する。本実施形態では、3次元モデルMが体型パラメータにより変形したものが、3次元モデルMである。ここでの変形とは、表面の位置や形状を変えることであり、例えば、全体的なサイズを変えたり、部分的な形状を変えたりすることである。体型取得部33は、取得した体型パラメータを体型履歴データに格納する。
【0044】
体型パラメータは、被写体の体型の特徴を示すものであり、全身又は部位ごとのサイズを示す。例えば、体型パラメータは、身長、胸囲、ウエスト、身幅、股下、腕の長さ、又は足のサイズなどのそれぞれの数値を含む。本実施形態では、体型パラメータは、複数の値の組み合わせであり、{β}の符号で記載する。kは、体型パラメータに含まれる項目を識別する数字であり、例えば、βは身長、βは胸囲、βはウエスト・・・などである。なお、体型パラメータは、複数の値の組み合わせではなく、単一の値のみであってもよい。
【0045】
図8は、体型パラメータ{β}により3次元モデルMが変形する様子を示す図である。図8に示すように、3次元モデルMは、体型パラメータ{β}が示す体型になるように変形する。例えば、3次元モデルMは、βが小さいほど身長が低くなり、βが大きいほど身長が高くなるように変形する。また例えば、3次元モデルMは、βが小さいほど胸囲が短くなり、βが大きいほど胸囲が長くなるように変形する。また例えば、3次元モデルMは、βが小さいほどウエストが細くなり、βが大きいほどウエストが太くなるように変形する。
【0046】
体型パラメータ{β}と、3次元モデルMの各パーツの形状(即ち、頂点の位置)と、の関係は、予めデータ記憶部30に記憶されているものとする。この関係は、数式形式であってもよいし、テーブル形式であってもよいし、プログラムコードとして記述されていてもよい。この関係は、3次元モデルMが体型パラメータ{β}の体型になるように定義されている。後述する体型変形部39は、体型パラメータ{β}に関連付けられた形状になるように、3次元モデルMの各パーツを変形させる。これにより、体型パラメータ{β}に応じた体型になるように、3次元モデルMが変形する。
【0047】
以降、ある時刻tにおける体型パラメータ{β}を指すときは、{β}と記載する。なお、深度情報Iが初めて取得されたとき(即ち、本発明に係る処理の開始時)をt=0とすると、その時点の体型パラメータ{β}は初期値となり、テンプレートの3次元モデルMの体型をそのまま示す値となる。体型パラメータ{β}は、データ記憶部30に予め記憶させておけばよい。t=0では、体型取得部33は、データ記憶部30に記憶された初期値の体型パラメータ{β}を取得することになる。
【0048】
[3−5.姿勢変化部]
姿勢変化部34は、制御部21を主として実現される。姿勢変化部34は、骨格パラメータ{θ}に基づいて、体型パラメータ{β}により変形可能な3次元モデルMの姿勢を変化させる。姿勢変化部34は、骨格パラメータ{θ}が示す姿勢になるように、3次元モデルMの各パーツの位置関係を変化させる。なお、姿勢は、身体の部位の位置関係であり、ここでは、各関節の位置関係である。
【0049】
図9及び図10は、骨格パラメータ{θ}に基づいて3次元モデルMの姿勢が変化する様子を示す図である。図9に示すように、まず、姿勢変化部34は、基本姿勢(例えば、直立の状態)のスケルトンJを3次元モデルMの内部に設定する。スケルトンJを構成する複数の関節の位置関係は、テンプレートである3次元モデルMの姿勢を示すように予め定めておけばよい。3次元モデルMにスケルトンJが設定されると、3次元モデルMの各頂点は、スケルトンJの何れかの関節と関連付けられる。スケルトンJが変形して各関節が移動すると、当該関節に関連付けられた頂点は、当該関節と所定の位置関係を保つように移動する。即ち、ある関節に関連付けられた頂点は、その関節と連動することになる。
【0050】
姿勢変化部34は、骨格パラメータ{θ}が示す各関節の位置関係と、スケルトンJの各関節の位置関係と、が対応するように、スケルトンJを変形させる。位置関係が対応するとは、これら2つの関節の位置が一致すること、又は、位置のずれが所定未満になることである。ある程度の位置的なずれを許容するのは、被写体の実際の関節間の距離と、スケルトンJの関節間の距離と、が必ずしも一致せず、これらの3次元座標を完全に一致させることが難しいからである。
【0051】
本実施形態では、全体的な姿勢を似せるために、姿勢変化部34は、スケルトンJの各関節の角度が、骨格パラメータ{θ}と一致又はずれが基準未満になるように、スケルトンJを変形させる。先述したように、3次元モデルMの各頂点は、自身が関連付けられた関節と連動するので、図10に示すように、姿勢変化部34がスケルトンJを変形させると、被写体の姿勢と似た姿勢の3次元モデルMを取得することができる。
【0052】
[3−6.検出範囲特定部]
検出範囲特定部35は、制御部21を主として実現される。検出範囲特定部35は、深度情報Iに基づいて、3次元モデルMの中から、深度検出装置10の検出範囲に対応する部分を特定する。検出範囲は、被写体の表面のうち検出可能な範囲であり、深度検出装置10の赤外線が反射する場所である。例えば、検出範囲特定部35は、深度情報Iに基づいて、3次元空間における深度検出装置10の向きを取得し、当該取得した向きと、3次元モデルMの表面の向きと、の関係に基づいて検出範囲を特定する。
【0053】
図11は、検出範囲特定部35の処理を説明するための説明図である。図11に示すように、ここでは、深度検出装置10の視線方向V(即ち、赤外線の照射方向)を深度検出装置10の向きとして使用する。検出範囲特定部35は、深度情報Iに基づいて、3次元空間における視点O及び視線方向Vを取得する。視点Oは視点座標系の原点であり、視線方向Vは視点座標系のZ軸である(なお、図11の座標軸はワールド座標系の座標軸である)。
【0054】
例えば、検出範囲特定部35は、深度情報Iの注視点(即ち、画像の中心のピクセル)の深度に基づいて、3次元空間における深度検出装置10の位置O及び視線方向Vを取得する。そして、検出範囲特定部35は、3次元モデルの各頂点vの法線nと、視線方向Vと、の関係に基づいて、検出範囲内の頂点vを特定する。法線nは、頂点間ベクトルの外積で取得すればよい。検出範囲特定部35は、法線nと視線方向Vが互いに向かい合う(例えば、これらのなす角度が90°以上)頂点vを検出範囲内とし、それ以外を検出範囲外とする。
【0055】
[3−7.表面形状取得部]
表面形状取得部36は、制御部21を主として実現される。表面形状取得部36は、深度情報Iに基づいて、被写体の表面形状(後述の図12で示す。)を取得する。被写体の表面形状は、被写体のうち、深度検出装置10が検出した部分の形状であり、深度情報Iに深度として表れた領域である。被写体の表面形状は、深度情報Iに所定の行列変換を施して得られる3次元座標群であり、深度情報Iの各ピクセルの深度を3次元空間に変換したものである。深度検出装置10と被写体の位置関係が図1のような場合は、表面形状取得部36が取得する表面形状は、被写体の前面のみであり、背面は含まれない。
【0056】
[3−8.体型決定部]
体型決定部37は、制御部21を主として実現される。体型決定部37は、姿勢変化部34により姿勢が変化した3次元モデルの表面形状と、被写体の表面形状と、の差に基づいて、体型パラメータを決定する。形状の差とは、3次元空間における位置的な違いであり、例えば、頂点間の距離である。体型決定部37は、形状の差が小さくなるように、体型パラメータを変化させる。即ち、体型決定部37は、体型パラメータを変化させる前の差よりも、体型パラメータを変化させた後の差が小さくなるように体型パラメータを変化させる。
【0057】
図12は、体型決定部37の処理の説明図である。図12では、3次元モデルMを実線で示し、被写体の表面SOBを破線で示す。まず、体型決定部37は、3次元モデルMの各頂点と、被写体の表面SOBの各点と、に基づいて、これらの全体的なずれ具合を示す評価値Eを取得する。評価値Eは、各頂点vの3次元座標と、当該頂点vに対応する点pの3次元座標と、の距離dを総合的に評価するための評価値Eといえる。別の言い方をすれば、評価値Eは、3次元モデルMの精度の高さを示す。
【0058】
例えば、体型決定部37は、距離dを所定の数式に代入することによって、評価値Eを取得する。以降、ある時刻tにおける評価値Eを指すときは、E(X)と記載する。ある時刻tにおける3次元モデルMの表面形状は、体型パラメータ{β}と骨格パラメータ{θ}によって決まるので、これらの組み合わせをXと記載すると(即ち、X={β,θ}である。)、評価値E(X)は、変数Xの関数で示すことができ、例えば、下記の式1により求めることができる。
【0059】
【数1】
【0060】
式1のμは、重み付け係数(ここでは、0以上1以下とする)である。重み付け係数μは、身体ではない(例えば、洋服のしわなど)と思われる部分のずれ具合が、評価値E(X)に与える影響を低減又は除去するための係数である。即ち、身体ではないと思われる部分のずれ具合は、評価値E(X)を取得するうえで、信頼することができないので、身体と思われる部分の重み付けを大きくし、身体ではないと思われる部分の重み付けを小さくするために、重み付け係数μを使用している。重み付け係数μの取得方法は後述する。
【0061】
式1のvは、時刻tにおける3次元モデルMの各頂点である。pは、被写体の表面SOBの各点のうち、最も頂点vに近い点である。vis(v,p)は、条件式を含む関数であり、頂点vが検出範囲内であれば頂点vと点pとの距離を返し、頂点vが検出範囲外であれば所定値λを返す。所定値λを返すのは、頂点vが検出範囲外の場合は、頂点vに対応する点pが存在せず距離を取得できないからである。なお、所定値λは、任意の値であってよいが、0にすると3次元モデルが縮小することがあるので、0.1程度であってよい。式1に示すように、体型決定部37は、頂点vごとに、点pとの距離又は所定値λを取得し、重み付け係数μを乗じた総和を評価値E(X)として取得する。
【0062】
本実施形態では、体型決定部37は、評価値Eに基づいて体型パラメータ{β}を最適化させる。例えば、体型決定部37は、体型パラメータ{β}の候補を複数選出して、その中から、評価値Eを最小又は閾値未満にさせる候補の値を、体型パラメータ{β}として決定する。最適化自体は、種々の最適化アルゴリズムを利用してよいが、ここでは、粒子群最適化手法を利用する場合を一例として説明する。
【0063】
体型決定部37は、粒子群最適化アルゴリズムに基づいて、体型パラメータ{β}の候補を複数選出する。ここでは、体型決定部37は、後述する式2の評価値Eに基づいて体型パラメータ{β}を初期化し、当該初期化した{β}に基づいて複数の候補を選出する。例えば、初期化した{β}との差が所定範囲に収まるものが候補となる。候補の数は、任意であってよく、例えば、30個程度であってよい。体型決定部37は、候補ごとに評価値Eを計算して、複数の候補の中の1つを選択する。例えば、体型決定部37は、評価値Eを最も小さくさせる候補の値を、新たな体型パラメータ{β}として選択する。体型決定部37は、最適化後の体型パラメータ{β}を体型変形部39に渡して3次元モデルMを更新させる。
【0064】
上記のように、本実施形態では評価値Eを計算するときに重み付け係数μを使用することによって、体型決定部37は、体型パラメータ{β}を決定する場合に、身体部分に対応する差の重み付け(即ち、重み付け係数μ)を、他の部分の差の重み付けよりも高くするようにしている。また、本実施形態では、条件関数vis(v,p)を使用することによって、体型決定部37は、検出範囲における前記3次元モデルの表面形状と、被写体の表面形状と、の差に基づいて、体型パラメータを決定するようにしている。
【0065】
なお、深度情報Iは所定のフレームレートのもと繰り返し取得されるので、体型決定部37は、上記のような最適化処理を繰り返し実行することになる。体型決定部37は、ある1つのフレームで1回だけ最適化を実行してもよいし、次のフレームが訪れるまで最適化処理を繰り返し、可能な限り評価値Eを小さくしてもよい。更に、体型決定部37は、評価値Eが閾値未満になった場合の体型パラメータ{β}を保持して、次のフレームの深度情報Iを得るまでは、それ以上の最適化をしないようにしてもよい。
【0066】
また、被写体は動体なので、骨格パラメータ{θ}が急に変化することはあるが、被写体の体型が急に変化することはないので、体型パラメータ{β}が急に変化することはない。しかし、例えば、あるフレームの深度情報Iがたまたま多くのノイズを含んだ場合などは、計算上、体型パラメータ{β}が前回のフレームから急に変化することがある。この場合、3次元モデルMが急激に膨らんだりしぼんだりしてしまう。このような状況を発生させないために、体型決定部37は、あるフレームにおける体型パラメータ{β}の初期値を、過去の値から求めて体型パラメータ{β}の変動を抑えてもよい。この初期値は、過去の体型パラメータ{β}を所定の数式に代入することで得られるようにすればよいが、本実施形態では、評価値Eをもとに体型パラメータ{β}の初期値が決める場合を説明する。評価値Eは、例えば、下記の式2のように、体型パラメータ{β}を変数とする関数で示すことができる。
【0067】
【数2】
【0068】
式2のdは、主成分分析空間(いわゆるPCA空間。ここでは、体型パラメータ{β}が示されるk次元空間である。)における距離である。rは任意の時間である。式2の右辺は、体型パラメータ{β}の候補値と、各時刻tにおける体型パラメータ{β}と、の距離の総計である。このため、式2の左辺は、ある体型パラメータ{β}の候補値が、過去の体型パラメータ{β}と全体的にどれだけずれているかを示す。本実施形態では、体型決定部37は、評価値E({β})を最小又は閾値未満にする{β}に基づいて、初期化を行う。
【0069】
式2では、過去の体型パラメータ{β}の平均値のときに評価値E({β})が最小になるので、体型決定部37は、過去の体型パラメータ{β}の平均値に基づいて初期化をすることになる。このようにすれば、ある時刻tだけ急激に体型パラメータ{β}が変化することを防止することができる。なお、この平均値は、過去の全期間の平均としてもよいし、直近の所定期間の平均としてもよい。更に、式2では、特に係数を設けなかったが、時刻tに応じて係数を設けてもよい。この場合、現時点に近いほど重み付けを大きくした加重平均としてもよい。このように、本実施形態では、体型決定部37は、体型パラメータ{β}と、履歴記録部38により記録された履歴と、に基づいて、体型パラメータ{β}を決定することになる。
【0070】
[3−9.履歴記録部]
履歴記録部38は、制御部21を主として実現される。履歴記録部38は、体型パラメータ{β}の履歴をデータ記憶部30に記録する。履歴記録部38は、体型パラメータ{β}を時系列的に体型履歴データに格納したり、体型パラメータ{β}を最適化した時間と関連付けて体型履歴データに格納したりする。
【0071】
[3−10.体型変形部]
体型変形部39は、制御部21を主として実現される。体型変形部39は、体型パラメータ決定部により決定された体型パラメータに基づいて、3次元モデルMを変形させる。体型変形部39は、3次元モデルMの頂点の位置を変えることで変形させる。頂点は、個々のポリゴンを定義する点なので、頂点の位置が変わると、3次元モデルMの各パーツの位置及び形状の少なくとも一方が変わる。即ち、体型変形部39は、3次元モデルMを構成するポリゴンを移動又は変形させることになる。なお、ここでは、三角形のポリゴンを利用する場合を説明するが、四角形や五角形以上のポリゴンを利用してもよい。
【0072】
図13は、最適化が行われた場合に3次元モデルMが変化する様子を示す図である。図13に示すように、最適化前の3次元モデルM(実線)は、被写体の表面SOB(破線)よりも身長が短いので、体型決定部37は、身長を示すβを大きくして3次元モデルMの身長が高くなるように最適化を行うことになる。体型変形部39が当該最適化された体型パラメータ{β}に基づいて3次元モデルMを更新すると、3次元モデルMが被写体の実際の身長に近づく。
【0073】
[3−11.骨格決定部]
骨格決定部40は、制御部21を主として実現される。骨格決定部40は、3次元モデルMの表面形状と、被写体の表面形状と、の差に基づいて、骨格パラメータ{θ}を決定する。ここでは、骨格取得部32が検出姿勢情報Jをもとに取得した骨格パラメータ{θ}だけでは、3次元モデルMの姿勢を被写体の姿勢に一致させることが難しいので、骨格決定部40は、評価値Eに基づいて骨格パラメータ{θ}を決定して、骨格パラメータ{θ}を最適化させるようにしている。
【0074】
例えば、骨格決定部40は、骨格パラメータ{θ}の候補を複数選出して、その中から、評価値Eを最小又は閾値未満にさせる候補の値を、骨格パラメータ{θ}として決定する。最適化自体は、種々の最適化アルゴリズムを利用してよいが、ここでは、最小二乗法による最適化手法を利用して決定する。
【0075】
骨格決定部40は、最小二乗法に基づいて、骨格パラメータ{θ}の候補を複数選出する。例えば、候補は、現在の骨格パラメータ{θ}との差が所定範囲に収まるものである。候補の数は、任意であってよい。体型決定部37は、候補ごとに評価値Eを計算して、複数の候補の中の1つを選択する。例えば、体型決定部37は、評価値Eを最も小さくさせる候補の値を、新たな骨格パラメータ{θ}として選択する。姿勢変化部34は、骨格決定部40により決定された骨格パラメータ{θ}に基づいて、3次元モデルMの姿勢を更新する。
【0076】
[3−12.部分変形部]
部分変形部41は、制御部21を主として実現される。部分変形部41は、体型変形部39により変形した3次元モデルMの表面形状の一部と、当該部分に対応する被写体の表面形状と、の差に基づいて、当該部分を変形させる。例えば、部分変形部41は、3次元モデルMと、被写体の表面形状と、の部分的なずれ具合に基づいて、3次元モデルMの各頂点があるべき位置に関する頂点移動量を取得する。頂点移動量は、被写体の部分的な詳細を再現するために、3次元モデルMの頂点vをどこに移動させればよいかを示すものである。
【0077】
図14は、頂点移動量の説明図である。図14は、3次元モデルM及び被写体の表面SOBの胴体付近を拡大したものである。なお、図12と同様、3次元モデルMを実線で示し、被写体の表面SOBを破線で示している。頂点移動量は、移動先の頂点vを識別可能な情報であればよいが、図14に示すように、本実施形態では、頂点移動量が、頂点vの法線nに対する方向への移動量ηである場合を説明する。
【0078】
なお、頂点移動量は、移動量ηに限られず、移動先の頂点vの3次元座標そのものを示してもよいし、移動方向及び移動量を示すベクトル情報であってもよい。部分変形部41は、頂点vの3次元座標と、被写体の表面形状のうち頂点vに最も近い点pの3次元座標と、を所定の数式に代入することによって、頂点移動量ηを取得する。この数式は、頂点vの3次元座標と点pの3次元座標とのずれが大きいほど頂点移動量ηが大きくなり、このずれが小さいほど頂点移動量ηが小さくなるように定められている。
【0079】
本実施形態では、評価値Eを利用して頂点移動量ηを取得する場合を説明する。評価値Eは、3次元モデルMを頂点移動量ηに基づいて変形させた場合に、被写体の表面SOBとどれだけずれているかを評価する評価値である。なお、ここでは、頂点移動量ηに基づいて3次元モデルMを変形させたものは「M」の符号で記載しているので、評価値Eは、3次元モデルMの精度の高さを示すものといえる。以降では、ある時刻tにおける評価値Eを指すときは、Eと記載する。なお、評価値Eは、頂点移動量ηに応じて変化するので、頂点移動量ηを変数とした関数E(η)と記載することができる。本実施形態では、部分変形部41は、下記の式3を用いて、評価値E(η)を取得する。
【0080】
【数3】
【0081】
式3の右辺第1項のSは、3次元モデルMの表面である。式3の右辺第1項は、ある時刻tにおける被写体の点pと、頂点vを法線n方向に頂点移動量ηにだけ移動した点v’と、の距離を個々の頂点vごとに算出して総和を取ったものである。式3の右辺第2項のN(i)は、ある頂点vに隣接する他の頂点であり、λは、ハイパーパラメータである。式3の右辺第2項は、ある頂点vの頂点移動量ηと、隣接する頂点の頂点移動量ηと、の差の総和を意味する。この値が大きいと、ある頂点vだけ周囲の頂点よりも出っ張り、現実には起こりえないような局所的に出っ張った形状になる可能性があるので、これを防止して自然な表面にするために、本実施形態では、式3の右辺第2項を定義している。なお、右辺第2項は省略してもよい。
【0082】
部分変形部41は、評価値Eに基づいて、各頂点vの頂点移動量ηを取得する。評価値Eが小さいほど、3次元モデルMと被写体の表面形状との差が小さくなり精度が高くなるので、部分変形部41は、評価値Eを最小又は閾値未満にさせる頂点移動量ηを取得する。以降、ある時刻tにおける頂点移動量ηを指すときは、ηと記載する。本実施形態では、部分変形部41は、下記の式4を利用して、いったん頂点移動量ηを仮計算し、その後に、式3の評価値E(η)が最小になるような頂点移動量ηに修正する。
【0083】
【数4】
【0084】
式4は、現在の時刻tにおける頂点vと点pとのずれと、過去の頂点移動量(式4では直近フレームのもの)と、の加重平均をとるための式である。式4のωt−1及びω´tは、加重平均の係数である。式4のように頂点移動量ηを仮計算するのは、ある時刻tの深度情報Iはノイズが混じることがあるので、ノイズが混じってしまったときだけ急激に頂点移動量ηが変化して、3次元モデルMが突然出っ張ったりへこんだりすることを防止するために、過去との平均を取り、ある時点の頂点移動量ηだけ大きく又は小さくなり過ぎないようにするためである。
【0085】
部分変形部41は、式4を利用して頂点ごとに頂点移動量ηを仮計算する。そして、部分変形部41は、仮計算した頂点移動量ηに基づいて複数の候補を取得する。この候補は、仮計算の頂点移動量ηとのずれが所定範囲内になるものであればよい。この候補の数は、任意であってよい。部分変形部41は、頂点vごとに取得した候補に基づいて評価値E(ηi)を計算して、最小になる候補を頂点移動量ηとして決定する。
【0086】
上記のように、本実施形態では、式3の右辺第2項に示すように、部分変形部41は、各頂点の頂点移動量ηを、周囲の頂点の頂点移動量ηに基づいて決定する。このため、部分変形部41は、3次元モデルMの各部分を、周囲の変形具合に基づいて変形させる。例えば、部分変形部41は、3次元モデルMの各部分の変形具合と、周囲の部分の変形具合と、の差が所定未満になるようにすることができる。
【0087】
また、式4に示すように、頂点移動量ηは、過去の頂点移動量との加重平均により得られるので、部分変形部41は、過去に取得された頂点移動量ηに基づいて、頂点移動量ηを取得する。このため、部分変形部41は、3次元モデルの各部分を、当該部分の過去の形状に基づいて変形する。例えば、部分変形部41は、3次元モデルの各部分の変形具合と、当該部分の過去の変形具合と、の差が所定未満になるようにすることができる。
【0088】
部分変形部41は、上記のようにして頂点ごとに取得された頂点移動量ηに基づいて、当該頂点の位置を変更する。部分変形部41は、頂点移動量ηに基づいて定まる位置に移動するように、各頂点を移動させる。ここでは、頂点移動量ηが法線方向の移動量を示すので、部分変形部41は、頂点vが法線nの方向に頂点移動量ηだけ離れた位置v’になるように、頂点vの3次元座標を変更する。即ち、部分変形部41は、頂点移動量ηに基づいて3次元モデルMを変形させることによって、3次元モデルMを生成することになる。
【0089】
図15は、3次元モデルMを示す図である。図15に示すように、3次元モデルMは、洋服のしわや鞄などの詳細な形状が再現されている。なお、部分変形部41は、深度検出装置10が撮影したRGB画像を、テクスチャとして3次元モデルMの表面にマッピングするようにしてもよい。このようにすれば、被写体の表面の模様や色彩なども3次元モデルMで表現することができる。
【0090】
なお、深度検出装置10の検出範囲外の部分は、深度が計測されないので、部分変形部41は、3次元モデルMのうち、検出範囲特定部35により特定された部分の形状を変更するようにしてもよい。また、頂点移動量ηは繰り返し取得されるので、部分変形部41は、頂点移動量が取得されるたびに、3次元モデルMの各頂点の位置を変更することになる。
【0091】
[3−13.身体部分特定部]
身体部分特定部42は、制御部21を主として実現される。身体部分特定部42は、3次元モデルM,M又は被写体の表面形状に基づいて、3次元モデルM,Mのうち、被写体の身体に対応する身体部分を特定する。身体部分は、式1の重み付け係数μを決定するために特定される。身体部分は、形状の変化が小さい部分であり、比較的固い物体を示す部分である。それ以外の部分は、形状の変化が大きい部分であり、比較的柔らかい物体を示す部分である。例えば、身体部分は、地肌が露出している部分であり、それ以外の部分は、洋服や鞄などのしわが寄る部分(身体の動きに合わせて動く部分)である。
【0092】
洋服のしわや鞄などは形状が変わりやすいが、身体が突然膨らんだりしぼんだりしないので、ここでは、身体部分を特定するために、3次元モデルMのうち位置的な変化の大きい部分を特定する場合を例に挙げる。本実施形態では、身体部分特定部42は、3次元モデルMの頂点の位置関係や時間変化に基づいて身体部分を特定する。例えば、身体部分特定部42は、ある時刻tにおける頂点とその周囲の頂点との位置のずれ具合に基づいて特定してもよいし、頂点の密度や分散具合に基づいて特定してもよい。他にも例えば、身体部分特定部42は、ある頂点の時間経過に伴う位置変化に基づいて特定してもよい。
【0093】
本実施形態では、3次元モデルMの表面の曲率を利用する場合を説明する。身体部分特定部42は、3次元モデルの頂点ごとに、下記の式5のように、曲率に関する評価値κを取得する。評価値κは、局所的な曲率を示す。評価値κは、−1以上1以下の値となる。身体部分特定部42は、ある時刻tにおけるある頂点vのκの標準偏差κが閾値未満であれば、変化が小さいことを示すので身体に対応する領域とし、それ以上であれば、変化が大きいことを示すので身体以外の領域とする。
【0094】
【数5】
【0095】
なお、式5のKは、ガウス曲率であり、Hは、平均曲率(Mean curvature)である。KとHは、頂点ごとに、当該頂点と周囲の頂点との位置関係に基づいて計算され、例えば、頂点の密集具合に基づいて計算される。これらの計算方法自体は一般的であるので、詳細は、「M.Meyer, M.Desbrun, P.Schroder, and A.H.Barr. Discrete differential-geometry operators for triangulated 2-manifolds.Mathematics and Visualization, pages 35−57, 2003」などを参照されたい。
【0096】
身体部分特定部42は、標準偏差κが閾値以上であれば、重み付け係数μを1未満の所定値λ(例えば、λ≪1)とし、標準偏差κが閾値未満であれば、重み付け係数μを1とする。標準偏差κが大きいことは、曲率の変化が大きいことを示すので、この部分は、形状が変わりやすい柔らかい物体と推定される。一方、標準偏差κが小さいことは、曲率の変化が小さいことを示すので、この部分は、形状が変わりにくい固い物体と推定される。このため、標準偏差κが大きい場所の重み付け係数μを小さくし、標準偏差κが小さい場所の重み付け係数μを大きくしている。なお、上記では、評価値κを利用する場合を説明したが、下記の式6で求まる曲率の大きさを示す評価値cを利用して身体部分が特定されてもよい。
【0097】
【数6】
【0098】
[4.本実施形態において実行される処理]
図16は、3次元モデル生成システムにおいて実行される処理の一例を示すフロー図である。図16に示す処理は、制御部11,21が、それぞれ記憶部12,22に記憶されたプログラムに従って動作することによって実行される。下記に説明する処理は、図6に示す機能ブロックにより実行される処理の一例である。
【0099】
まず、深度検出装置10の動作を説明する。図16に示すように、制御部11は、深度検出部14の検出信号に基づいて、深度情報Iと検出姿勢情報Jとを生成する(S10)。制御部11は、S10で生成した深度情報Iと検出姿勢情報Jとを3次元モデル生成装置20に送信する(S11)。
【0100】
制御部11は、次の処理タイミング(フレーム)が訪れたかを判定する(S12)。フレームレートは、予め記憶部12に記憶されているものとする。制御部11は、リアルタイムクロックを利用して計時処理を実行することにより、現在時刻が各フレームの開始時点になったかを判定する。
【0101】
次の処理タイミングが訪れたと判定されない場合(S12;N)、制御部11は、本処理を終了するかを判定する(S13)。S13においては、制御部11は、予め定められた終了条件(例えば、3次元モデル生成装置20から処理を終了するための信号を受信したかなど)が満たされるかを判定すればよい。本処理を終了すると判定されない場合(S13;N)、S12の処理に戻る。一方、本処理を終了すると判定された場合(S13;Y)、本処理は終了する。
【0102】
一方、S12において、次の処理タイミングが到来したと判定された場合(S12;Y)、S10の処理に戻る。以降、深度検出装置10は、本処理が終了するまで、定期的に深度情報Iと検出姿勢情報Jを生成して3次元モデル生成装置20に送信することになる。
【0103】
次に、3次元モデル生成装置20の動作を説明する。図16に示すように、制御部21は、まず、制御部21は、記憶部22に記憶されたテンプレートデータに基づいて、仮想3次元空間内に3次元モデルMを配置する(S20)。S20においては、制御部21は、3次元モデルMに対応する体型パラメータ{β}(即ち、初期値)を体型履歴データに格納する。この初期値は、予め記憶部22に記憶させておけばよい。
【0104】
制御部21は、記憶部22に記憶された基本姿勢データに基づいて、S20で配置した3次元モデルMの内部にスケルトンJを設定する(S21)。S21の時点では、3次元モデル生成装置20は、深度検出装置10から深度情報Iと検出姿勢情報Jをまだ受信していないので、3次元空間では、基本形状の3次元モデルMが基本姿勢を取っている。即ち、3次元モデルMの体型や姿勢は、実際の被写体の形状とは似ていない。
【0105】
制御部21は、深度検出装置10から深度情報Iと検出姿勢情報Jとを受信する(S22)。S22では、制御部21は、受信した深度情報Iと検出姿勢情報Jを、それぞれ深度履歴データと骨格履歴データに格納する。制御部21は、被写体の身体の形状を推定するための形状推定処理を実行する(S23)。
【0106】
図17は、形状推定処理の詳細を示す図である。図17に示すように、制御部21は、S22で受信した検出姿勢情報Jに基づいて、各関節の骨格パラメータ{θ}を取得する(S30)。制御部21は、S30で取得した骨格パラメータ{θ}に基づいて、3次元モデルMを変形させる(S31)。S31においては、制御部21は、S31で取得した骨格パラメータ{θ}に基づいて、3次元モデルM内のスケルトンJを変形させる。
【0107】
制御部21は、S31で変形させた3次元モデルMに対してスキニング処理を実行する(S32)。S32の処理により、3次元モデルの表面が滑らかになる。これにより3次元モデルMが生成される。時刻tにおける3次元モデルMを識別する情報(頂点やスケルトンJの位置)は、身体履歴データに格納される。
【0108】
制御部21は、評価値Eに基づいて体型パラメータ{β}を初期化する(S33)。S33においては、制御部21は、記憶部22に記憶された体型履歴データに格納された履歴を式2に代入し、評価値Eを最小にする値(即ち、平均値)を最新の体型パラメータ{β}とする。なお、時刻t=0であれば、体型履歴データには、初期値しか格納されていないので、初期値がそのまま使用される。
【0109】
制御部21は、評価値Eに基づいて、体型パラメータ{β}を最適化する(S34)。S34においては、制御部21は、S22で受信した深度情報に基づいて被写体の3次元座標を取得する。そして、制御部21は、S33で取得した体型パラメータ{β}と粒子群最適化アルゴリズムに基づいて、体型パラメータ{β}の候補を複数取得する。制御部21は、各候補に対応する3次元モデルMと式1に基づいて、各候補の評価値Eを取得する。制御部21は、評価値Eが最小になる候補の値を体型パラメータ{β}とすることで最適化を実行する。最適化された体型パラメータ{β}は、体型履歴データに格納される。制御部21は、S34で最適化した体型パラメータ{β}に基づいて、3次元モデルMを更新する(S35)。
【0110】
制御部21は、評価値Eに基づいて、骨格パラメータ{θ}を最適化する(S36)。S36においては、制御部21は、最新の骨格パラメータ{θ}と最小二乗法に基づいて、骨格パラメータ{θ}の候補を複数取得する。制御部21は、各候補に対応する3次元モデルMと式1に基づいて、各候補の評価値Eを取得する。制御部21は、評価値Eが最小になる候補の値になるように骨格パラメータ{θ}を更新することで最適化を実行する。最適化された骨格パラメータ{θ}は、骨格履歴データに格納される。制御部21は、S36で最適化した骨格パラメータ{θ}に基づいて、3次元モデルを更新する(S37)。
【0111】
以降、制御部21は、評価値Eが十分に小さくなるまでS33〜S37の処理を繰り返す。なお、S22において深度情報Iと検出姿勢情報Jが受信された場合(即ち、次のフレームになった場合)は、最新の深度情報I及び検出姿勢情報Jに体型や姿勢を合わせる必要があるので、再びS30の処理から実行されることになる。
【0112】
図16に戻り、制御部21は、被写体の部分的な詳細を表現するための幾何学的再構成処理を実行する(S24)。なお、幾何学的再構成処理は、フレーム内で繰り返し実行されるようにしてもよいし、1回だけ実行されるようにしてもよい。
【0113】
図18は、幾何学的再構成処理の詳細を示す図である。図18に示すように、制御部21は、S22で取得した深度情報Iに基づいて、3次元モデルMのうち検出範囲を特定する(S40)。S40においては、制御部21は、深度情報Iに基づいて深度検出装置10の視線方向Vを取得して、3次元モデルMの各頂点vの法線nとの関係に基づいて検出範囲を特定する。
【0114】
制御部21は、評価値Eに基づいて、検出範囲内の頂点ごとに頂点移動量{η}を取得する(S41)。S41においては、制御部21は、検出範囲内の頂点の3次元座標と、被写体の3次元座標と、式3と、に基づいて評価値Eを取得する。そして、制御部21は、式4に基づいて仮の頂点移動量{η}を取得し、評価値Eを最小にする頂点移動量{η}に修正する。時刻tにおける頂点移動量{η}は、移動量履歴データに格納される。
【0115】
制御部21は、S41で取得した頂点移動量{η}に基づいて、検出範囲内の頂点を再配置する(S42)。これにより、3次元モデルMが生成される。時刻tにおける3次元モデルMを識別する情報(頂点やスケルトンJの位置)は、再構成履歴データに格納される。
【0116】
制御部21は、S41で取得した頂点移動量{η}に基づいて、検出範囲内の頂点の重み付け係数μを取得する(S43)。S43においては、制御部21は、式5に基づいて3次元モデルM,Mにおける身体部分とそれ以外の部分とを区別し、当該区別した結果に基づいて、頂点ごとに重み付け係数μを取得することになる。S43で取得された重み付け係数μは、S23の形状推定処理で評価値Eを計算するときに利用される。
【0117】
図16に戻り、制御部21は、本処理を終了するか否かを判定する(S25)。終了すると判定されない場合(S25;N)、S22の処理に戻り、次のフレームの深度情報Iと検出姿勢情報Jが受信された場合に、最新の深度情報Iと検出姿勢情報Jに基づく形状推定処理及び幾何学的再構成処理が実行される。一方、終了すると判定された場合(S25;Y)、本処理は終了する。
【0118】
以上説明した3次元モデル生成システム1によれば、3次元モデルMの姿勢を被写体の姿勢に近づけたうえで、体型パラメータ{β}を決定して3次元モデルMを生成するので、精度の高い3次元モデルMを迅速に生成することができる。即ち、多数の深度検出装置10の画像解析をする必要がないので、複雑な処理を実行する必要がなくなり、迅速に3次元モデルMを生成することができる。更に、被写体の実際のボディラインに近づくように体型パラメータ{β}が最適化されるので、3次元モデルMの精度を高めることができる。例えば、3次元モデルMの精度を高めることができれば、3次元モデルMに洋服などのオブジェクトを重畳させることにより、オンラインショッピングモールなどにおいて、商品を疑似的に試着させることができる。他にも例えば、オーダーメイドの洋服を作成するなどの種々の用途に、3次元モデルMを使用することができる。
【0119】
また、被写体の実際の骨格とのずれが小さくなるように骨格パラメータ{θ}が最適化されるので、3次元モデルMの姿勢を被写体の姿勢に近づけることができ、3次元モデルMの精度を更に高めることができる。例えば、先述したように検出姿勢情報JとスケルトンJとを完全に一致させることは難しいので、骨格パラメータ{θ}を最適化することで、体型と姿勢の両方を実際の被写体に近づけることができる。更に、体型パラメータ{β}を最適化した後に骨格パラメータ{θ}を最適化し、その後再びこれらの最適化を繰り返すことによって、3次元モデルMと被写体とのずれを徐々に小さくすることができる。
【0120】
また、頂点移動量ηに基づいて3次元モデルMを部分的に変形させることによって、3次元モデルMの各部分の形状を被写体の部分的な形状に近づけることができるので、3次元モデルMの精度を高めることができる。例えば、実施形態のように単一の深度検出装置10を用いた場合であっても、深度検出装置10が検出した面については、洋服のしわなどの詳細を3次元モデルMで再現することができ、その他の面については、ボディラインを再現することができる。
【0121】
また、幾何学的再構成処理の対象を検出範囲内の領域とすることにより、変形させる必要のない部分にまで処理を実行することがなくなるので、3次元モデル生成装置20の処理負荷を軽減するとともに、より迅速に3次元モデルMを生成することができる。
【0122】
また、各頂点の頂点移動量ηは周囲の頂点の頂点移動量に基づいて定まるため、3次元モデルMの各部分の形状を周囲の形状に基づいて変形させることができる。その結果、ある部分だけ不自然に飛び出たりへこんだりするような状態を防止することができ、3次元モデルMの精度を高めることができる。
【0123】
また、各頂点の頂点移動量ηは、その頂点の過去の頂点移動量に基づいて定まるので、3次元モデルMの各部分を当該部分の過去の形状に基づいて変形させることができる。その結果、ある時点だけ特定の部分が急に変形してしまうことを防止することができる。
【0124】
また、重み付け係数μを利用することにより、身体以外の部分が評価値Eに与える影響を抑えることができるので、被写体のボディラインを推定するうえで重要ではない部分が評価値Eに与える影響を抑えることができる。その結果、信頼性の高い部分で被写体のボディラインを推定して3次元モデルMとすることができるので、3次元モデルMの精度をより高めることができる。
【0125】
また、深度検出装置10の検出範囲内のずれ具合に基づいて3次元モデルMを変形させることで、検出できない範囲の位置が3次元モデルMの体型に影響を与えてしまうことを防止することができるので、3次元モデルMの精度をより高めることができる。
【0126】
また、体型パラメータ{β}の履歴に基づいて体型パラメータが決まるので、体型パラメータ{β}が突然大きくなるようなことを防止することができる。その結果、ある特定の時だけ3次元モデルMの体型が急激に変化してしまうような不自然な状況を防止することができる。
【0127】
[5.変形例]
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【0128】
例えば、体型パラメータ{β}を最適化した後に骨格パラメータ{θ}を最適化する場合を説明したが、これらの順序は逆であってもよい。また例えば、体型パラメータ{β}と骨格パラメータ{θ}の両方が最適化される場合を説明したが、何れか一方のみが最適化されてもよい。
【0129】
また例えば、頂点移動量ηを計算する場合に、周囲の頂点の変形具合や時間経過に伴う変化を考慮する場合を説明したが、処理速度を優先するのであればこれらは特に考慮しなくてもよい。同様に、過去の体型パラメータ{β}から大きくずれないように評価値Eを利用する場合を説明したが、処理速度を優先するのであれば過去の体型パラメータ{β}は特に考慮しなくてもよい。また、3次元モデルMのうち検出範囲内の領域を特定して評価値Eを取得したり幾何学的再構成の処理対象にしたりする場合を説明したが、特に検出範囲を考慮せず、3次元モデルMの全面を処理対象にしてもよい。
【0130】
また例えば、形状推定処理と幾何学的再構成処理の両方が実行される場合を説明したが、ボディラインの推定だけを目的として3次元モデル生成システム1を利用する場合は、幾何学的再構成処理は省略してもよい。更に、評価値E,E,Eの計算式は一例にすぎず、他の計算式を用いてもよい。また例えば、身体部分は、3次元モデルMを利用して特定されてもよいし、深度情報Iを利用して特定されてもよい。3次元モデルMを利用する場合は、実施形態で説明した方法と同様に、頂点の位置関係や時間変化により特定されるようにすればよい。一方、深度情報Iを利用する場合は、被写体の表面SOBの各点から最も近い頂点のみを身体部分とし、それ以外を身体部分以外としてよい。
【0131】
また例えば、検出姿勢情報Jは、3次元モデル生成装置20により生成されるようにしてもよい。この場合、3次元モデル生成装置20は、深度情報Iに基づいて検出姿勢情報Jを生成することになる。また例えば、骨格パラメータ{θ}は、深度検出装置10が生成して3次元モデル生成装置20に送信してもよい。また例えば、特にフレームレートを定めておかず、深度検出装置10は、深度情報Iと検出姿勢情報Jを不定期的に生成してもよい。また例えば、被写体は、人以外の動物(例えば、犬や猫など)であってもよい。
【0132】
また例えば、3次元モデル生成装置20で各機能が実現される場合を説明したが、深度検出装置10や他のコンピュータで各機能が実現されるようにしてもよい。また例えば、3次元モデル生成システム1の複数のコンピュータで各機能が分担されるようにしてもよい。更に、上記説明した各機能のうち、骨格取得部32、姿勢変化部34、表面形状取得部36、体型決定部37、及び体型変形部39以外の機能は省略してもよい。
【要約】
精度の高い3次元モデルを迅速に生成する。3次元モデル生成システム(1)の骨格取得手段(32)は、深度検出装置(10)が検出した被写体の深度情報に基づいて、骨格パラメータを取得する。姿勢変化手段(34)は、骨格パラメータに基づいて、体型パラメータにより変形可能な3次元モデルの姿勢を変化させる。表面形状取得手段(36)は、深度情報に基づいて、被写体の表面形状を取得する。体型決定手段(37)は、姿勢変化手段(34)により姿勢が変化した3次元モデルの表面形状と、被写体の表面形状と、の差に基づいて、体型パラメータを決定する。体型変形手段(39)は、体型パラメータ決定手段(37)により決定された体型パラメータに基づいて、3次元モデルを変形させる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18