(57)【特許請求の範囲】
【請求項１】
実測により得られたｋ個（ｋは１より大きい整数）の人体形状データの多変量解析を行う分析ステップと、
前記分析ステップにより得られた特徴成分をもとに、Ｎ個（Ｎ＞ｋ）の仮想的な人体形状データを生成する、仮想形状生成ステップと、
身体の所定位置のサイズを表すサイズ情報をユーザから受け付ける、情報入力ステップと、
前記Ｎ個の仮想的な人体形状データそれぞれについて、前記身体の所定位置のサイズを算出する、サイズ算出ステップと、
前記Ｎ個の仮想的な人体形状データの前記身体の所定位置のサイズに基づいて、前記ユーザから受け付けた前記サイズ情報に適合する仮想的な人体形状データを選択する、選択ステップと、
前記選択ステップで選択された前記仮想的な人体形状データに基づく人体形状を、出力装置に出力する、出力ステップと、
を、コンピュータに実行させる、３次元モデル生成プログラムであって、
前記実測により得られた人体形状データはそれぞれ、３次元直交座標系上のｎ個の点の座標値のセットであり、
前記分析ステップでは、
前記ｋ個の人体形状データのそれぞれについて、前記３次元直交座標系上のｎ個の点の座標値のセットを、所定の係数が乗算された複数の球面調和関数の線形和に変換し、
前記複数の球面調和関数のそれぞれに乗算されている前記係数の集合である係数ベクトルについて、主成分分析を実行する、
ことを特徴とする、３次元モデル生成プログラム。
【請求項２】
前記係数ベクトルは、前記主成分分析により得られる複数の特徴成分である、複数の主成分ベクトルの和として表現され、
前記仮想形状生成ステップでは、前記主成分ベクトルの大きさを変化させることで、Ｎ個の仮想的な係数ベクトルを生成し、
前記Ｎ個の仮想的な係数ベクトルを用いて、前記Ｎ個の仮想的な人体形状データを生成する、
請求項１に記載の３次元モデル生成プログラム。
【請求項３】
前記仮想形状生成ステップでは、前記実測により得られたｋ個の人体形状データの分布を求め、前記Ｎ個の仮想的な人体形状データの分布が、前記ｋ個の人体形状データの分布と等しくなるように、前記Ｎ個の仮想的な人体形状データを生成する
請求項２に記載の３次元モデル生成プログラム。
【請求項４】
前記サイズ情報は、人体の身長であり、
前記サイズ算出ステップでは、前記仮想的な人体形状データを構成する座標値を用いて、前記仮想的な人体形状データによって表される人体形状の身長を算出する、
の情報を含んでおり、
請求項１に記載の３次元モデル生成プログラム。
【請求項５】
前記分析ステップでは、
前記実測により得られた人体形状データを表す前記ｎ個の点の座標値のセット（Ｘｉ，Ｙｉ，Ｚｉ）  （ｉ＝１，２，．．．ｎ）を、以下の式で表される、複数の球面調和関数の線形和に変換する、
請求項１に記載の３次元モデル生成プログラム。
0006698233.tif 000011
（ａｌｍ，ｂｌｍ，ｃｌｍは係数で、ｌ，ｍは、ｌ≧｜ｍ｜の関係がある０以上の整数で、Ｐｌ｜ｍ｜はルジャンドルの陪多項式で、ｅは自然対数の底で、（ｉ）は虚数単位を表す）
【請求項６】
出力装置を有するコンピュータが、
実測により得られたｋ個（ｋは１より大きい整数）の人体形状データの多変量解析を行う分析ステップと、
前記分析ステップにより得られた特徴成分をもとに、Ｎ個（Ｎ＞ｋ）の仮想的な人体形状データを生成する、仮想形状生成ステップと、
身体の所定位置のサイズを表すサイズ情報をユーザから受け付ける、情報入力ステップと、
前記Ｎ個の仮想的な人体形状データそれぞれについて、前記身体の所定位置のサイズを算出する、サイズ算出ステップと、
前記Ｎ個の仮想的な人体形状データの前記身体の所定位置のサイズに基づいて、前記ユーザから受け付けた前記サイズ情報に適合する仮想的な人体形状データを選択する、選択ステップと、
前記選択ステップで選択された前記仮想的な人体形状データに基づく人体形状を、出力装置に出力する、出力ステップと、
を実行する、３次元モデルの生成方法であって、
前記実測により得られた人体形状データはそれぞれ、３次元直交座標系上のｎ個の点の座標値のセットであり、
前記分析ステップでは、
前記ｋ個の人体形状データのそれぞれについて、前記３次元直交座標系上のｎ個の点の座標値のセットを、所定の係数が乗算された複数の球面調和関数の線形和に変換し、
前記複数の球面調和関数のそれぞれに乗算されている前記係数の集合である係数ベクトルについて、主成分分析を実行する、
ことを特徴とする、３次元モデルの生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元モデルの生成方法、及び３次元モデルの生成プログラムに関する。
【背景技術】
【０００２】
近年のコンピュータ技術の急速な進展に伴い、デジタル化された三次元形状モデルを用いた様々なアプリケーションが開発されている。デジタル化された三次元形状モデルの応用例の一つとして、たとえば人間の体型（形状）を３次元コンピュータグラフィックス（ＣＧ）画像として作成し、その画像に対して選択された衣服を着衣させた画像を表示する、いわゆるバーチャル試着方法が提案されている（たとえば特許文献１）。【０００３】
特許文献１には、ユーザの体型に近い３次元ＣＧ画像を得るために、予め取得された多数の個体に対する実測全身相同モデルと身体特徴量を主成分分析するとともに、その中から特徴的な体形の個体を複数抽出してユーザに提示し、その特徴的な体形に対するユーザ自身の主観的帰属度と、身体特徴量を入力させ、これに基づいて３次元ＣＧ画像を出力する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−２６１８６号公報
【非特許文献】
【０００５】
【非特許文献１】Ch. Brechbuhler, G. Gerig, O. Kubler, Parametrization of closed surfaces for 3-D shape description, Computer Vision and Image Understanding 61(2) (1995) 154-170
【非特許文献２】E. Praun, H. Hoppe, Spherical Parametrization and Remeshing, ACM Transactions on Graphics 22 (3) (2003) 340-349
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示の技術では、予め取得された多数の個体の中から特徴的な体形の個体を複数抽出するという作業が必要となる。また、特徴的な体形の抽出という作業は、抽出を行う作業者の主観に基づく作業になるため、特許文献１に開示の技術に基づいて生成される画像が、実際に存在する人体の形状と乖離する可能性もある。【０００７】
開示の技術は、上記事情に鑑みて成されたものであり、少ない計測データに基づいて、ユーザが求める形状の３次元モデルを高い精度で生成することを目的としている。
【課題を解決するための手段】
【０００８】
本発明の一実施形態に係る３次元モデルの生成方法では、実測により得られたｋ個（ｋは１より大きい整数）の人体形状データの多変量解析を行い、この多変量解析により得られた特徴成分をもとに、Ｎ個（Ｎ＞ｋ）の仮想的な人体形状データを生成する。そして、身体の所定位置のサイズを表すサイズ情報をユーザから受け付けると、Ｎ個の仮想的な人体形状データの中から、サイズ情報に適合する仮想的な人体形状データを選択し、選択された仮想的な人体形状データに基づく人体形状を出力装置に出力する。
【発明の効果】
【０００９】
少ない計測データから、ユーザが求める様々な形状の精密な３次元モデルを生成することができる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態に係る３次元モデル生成システムの構成の一例を示す図である。
【図２】形状データ測定装置、仮想形状生成装置、モデル提供装置のハードウェア構成の一例を示す図である。
【図３】実測データ収集処理のフローチャートである。
【図４】球面座標系を説明するための図である。
【図５】マッピング処理の概要の説明図である。
【図６】仮想形状生成処理のフローチャートである。
【図７】係数ベクトルの分布の一例を示す図である。
【図８】図７に示された係数ベクトルの分布について確率密度推定を行った結果の例を示す図である。
【図９】確率密度関数の一例を示す図である。
【図１０】複数の係数ベクトルの分布の一例を示す図である。
【図１１】第１主成分得点を変化させることで得られる人体形状データの例を示す図である。
【図１２】第２主成分得点を変化させることで得られる人体形状データの例を示す図である。
【図１３】モデル出力処理のフローチャートである。
【発明を実施するための形態】
【００１１】
以下に図面を参照して、実施形態の説明を行う。
【００１２】
図１は、一実施形態に係る３次元モデル生成システムの構成の一例を示している。３次元モデル生成システム１は、形状データ測定装置１１、３次元スキャナ（３Ｄスキャナ）１２、仮想形状生成装置２１、モデル提供装置３１、出力装置３３を有する。形状データ測定装置１１、仮想形状生成装置２１、そしてモデル提供装置３１は、ネットワーク１０で相互接続されている。ネットワーク１０は、いわゆるローカルエリアネットワーク（ＬＡＮ）であってもよいし、あるいは形状データ測定装置１１、仮想形状生成装置２１、そしてモデル提供装置３１がそれぞれ異なる拠点に設置されている場合には、これらがいわゆるインターネットなどの広域ネットワークで接続されていてもよい。 
【００１３】
形状データ測定装置１１には、３次元スキャナ（３Ｄスキャナ）１２が接続されている。３Ｄスキャナ１２は、物体（３次元オブジェクト）の形状を計測する装置である。本実施形態では、３Ｄスキャナ１２によって、人体の全身の形状（以下、「人体形状」と呼ぶ）が計測される例を主に説明する。ただし、３Ｄスキャナ１２による計測対象の物体は、人体に限定されず、任意の物体が計測されてもよい。
【００１４】
また、モデル提供装置３１には、出力装置３３が接続されている。本実施形態では、出力装置３３は、たとえば液晶ディスプレイなどの表示装置である。出力装置３３（及びモデル提供装置３１）は、３次元モデル生成システム１（具体的には、形状データ測定装置１１、仮想形状生成装置２１）によって生成された、３次元物体の形状を表現したデータ(３次元形状データ)を、ユーザが容易に理解可能な形式（画像など）に変換してユーザに提供するための装置である。３次元形状データは、たとえば人体などの３次元物体の表面上の各位置の座標の集合からなる情報だが、出力装置３３（及びモデル提供装置３１）はこの情報から人体形状を表現する画像を生成し、表示する。なお、出力装置３３は必ずしも液晶ディスプレイなどの表示装置でなくてもよい。たとえば、出力装置３３が３Ｄプリンタであってもよい。
【００１５】
本実施形態に係る３次元モデル生成システム１は、ユーザの指定する条件に適合した人体形状の画像を出力装置に出力することを目的とする。たとえば身長や胸囲など、一般的に（人体の）体格を表す際に用いられる情報（本実施形態ではこの情報を「サイズ情報」と呼ぶ）を条件としてユーザが入力すると、その条件に合致した（あるいはその条件に近い）形状の画像を、出力装置３３（たとえば液晶ディスプレイ）に出力（表示）する。また、出力装置３３が３Ｄプリンタの場合には、ユーザが入力した条件に合致した（あるいは近い）形状の人体モデルを、３Ｄプリンタに作成させる。
【００１６】
以下ではまず、本実施形態に係る３次元モデル生成システム１を用いた、３次元モデルの生成方法の概要を説明する。まず、複数人の人体形状のデータ（人体の表面上の各点の座標）を３Ｄスキャナ１２を用いて計測する。以下の説明では、ｋ人（ｋは１以上の整数）の人体形状のデータが計測される例を説明する。ｋの値は特定の値に限定されないが、人体形状の測定は、比較的時間のかかる作業であり、人体形状が測定される対象となる人間（被測定者）を多く集めることも現実的ではない。そのためｋの値は、３次元モデル生成システム１のユーザが、実際に集めてくることが可能な被測定者の数（たとえば数百人程度）に限定される。
【００１７】
形状データ測定装置１１は、計測されたｋ人分の人体形状のデータについて、所定の変換処理を施し、形状データ測定装置１１に記憶する。この所定の変換処理の詳細は後述する。また、以下では、形状データ測定装置１１によって計測・収集された人体形状のデータ、あるいはこの人体形状のデータに対して所定の変換処理を施したデータのことを「実測データ」と呼ぶ。
【００１８】
先に述べた通り、人体形状の測定は比較的時間のかかる作業であり、多くの被測定者の人体形状データを収集することは難しい。そのため、ｋ人分の実測データ（人体形状のデータ）の中に、ユーザが入力する条件に適合する体型（形状）の実測データが存在する可能性は決して高くない。そのため、本実施形態に係る３次元モデル生成システム１は、ｋ人分の実測データに対して一種の統計的処理（多変量解析）を施し、その結果得られたデータをもとに、実測データとは異なる形状の、多くの人体形状データを生成する。たとえばユーザが、身長や胸囲を入力条件として指定する場合、多種多様な身長の人体形状データや、多種多様な胸囲の人体形状データが生成される。この処理は主に仮想形状生成装置２１で実施される。また本実施形態では、仮想形状生成装置２１が生成する人体形状データのことを、「仮想形状データ」と呼ぶ。
【００１９】
モデル提供装置３１は、ユーザから身長や胸囲などの条件が入力されると、多数の仮想形状データの中から、入力された条件に適合する人体形状データを選択する。そしてモデル提供装置３１は、選択された人体形状データをもとに、人体形状の３次元画像を生成して出力装置３３に出力（表示）する。
【００２０】
本実施形態で用いられる、形状データ測定装置１１、仮想形状生成装置２１、モデル提供装置３１は、いわゆるＰＣサーバなどの、汎用的な用途で用いられるコンピュータである。図２に、形状データ測定装置１１のハードウェア構成の概略図を示す。形状データ測定装置１１は、ＣＰＵ５１、メモリ５２、インタフェース５３、補助記憶装置５４、ドライブ装置５５、のハードウェアエレメントを有し、これらはたとえばバス５０で相互接続されている。
【００２１】
ＣＰＵ５１はいわゆるマイクロプロセッサで、後述するメモリ５２に格納（ロード）されたプログラムを実行するハードウェアエレメントである。
【００２２】
メモリ５２は、いわゆるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの揮発性半導体記憶装置で、ＣＰＵ５１で実行されるプログラムと、このプログラムが実行されるときに使用されるデータなどが記憶される。またメモリ５２は、プログラムが実行されるときのワークエリア等にも使用される。なお、メモリ５２はＲＡＭに加えて、フラッシュメモリなどの不揮発性半導体記憶媒体を有していてもよい。
【００２３】
インタフェース５３は、形状データ測定装置１１がネットワーク１０を介して外部装置（仮想形状生成装置２１やモデル提供装置３１など）と通信するためのハードウェアである。またインタフェース５３は、形状データ測定装置１１が３Ｄスキャナ１２との通信（３Ｄスキャナ１２が計測したデータの収集など）を行うためのハードウェアも含む。
【００２４】
補助記憶装置５４は、たとえばハードディスクドライブ（ＨＤＤ）などの不揮発性記憶装置であり、ＣＰＵ５１によって実行されるプログラムや、３Ｄスキャナ１２から収集したデータを格納するために用いられる。なお、ＨＤＤのような磁気記憶装置のほか、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などの、不揮発性半導体記憶装置が補助記憶装置５４として用いられてもよい。
【００２５】
ドライブ装置５５は、記録媒体５６の読取装置である。記録媒体５６はいわゆる可搬型記録媒体であり、たとえばＣＤ−ＲＯＭやＤＶＤなどの光学ディスク、あるいはＳＤメモリカードなどの半導体メモリである。
【００２６】
ドライブ装置５５は、プログラムを形状データ測定装置１１にインストールする（補助記憶装置５４に格納する）ために用いられる。具体的には、形状データ測定装置１１で実行されるプログラムが、ＤＶＤなどの可搬型記録媒体（記録媒体５６）に記録された形態で提供される場合、形状データ測定装置１１は、この可搬型記録媒体に記録されたプログラムをドライブ装置５５によって読み取って、補助記憶装置５４に格納する。ただし、形状データ測定装置１１で実行されるプログラムは、必ずしも可搬型記録媒体（記録媒体５６）に記録された形態で提供される必要はない。例えば、ネットワーク１０経由で外部の装置から形状データ測定装置１１に提供されてもよい。その場合には、形状データ測定装置１１はインタフェース５３を介して外部の装置からプログラムを受信して、補助記憶装置５４に格納する。
【００２７】
なお、形状データ測定装置１１は、上で説明したもの以外のハードウェアエレメントを有していてもよい。たとえば、キーボード、マウスなどの、ヒューマンインタフェースデバイス（ＨＩＤ）を有していてもよい。また、液晶ディスプレイ、プリンタなどの外部機器を接続するためのインタフェースコントローラを有していてもよい。
【００２８】
また、図２では形状データ測定装置１１のハードウェア構成が示されているが、仮想形状生成装置２１とモデル提供装置３１のハードウェア構成も、図２と同様で良い。つまり仮想形状生成装置２１とモデル提供装置３１も、上で説明したハードウェアエレメントを備えている。
【００２９】
続いて、形状データ測定装置１１、仮想形状生成装置２１、モデル提供装置３１で行われる処理の詳細を説明する。まず、形状データ測定装置１１で行われる処理を、図３等を参照しながら説明する。図３は、形状データ測定装置１１で行われる、実測データ収集処理のフローチャートである。なお、形状データ測定装置１１のメモリ５２にロードされたプログラム（以下、このプログラムを「実測データ収集プログラム」と呼ぶ）をＣＰＵ５１が実行することにより、実測データ収集処理が実現される。
【００３０】
まずステップＳ１０１で、形状データ測定装置１１（実測データ収集プログラム）は３Ｄスキャナ１２を用いて、ｋ人の人体の全身をスキャンして、ｋ人の人体の全身形状のデータを収集する。また、形状データ測定装置１１は、各人の得られた全身形状のデータを用いて、各人の相同モデルを作成する（本実施例では、この相同モデルを作成する処理のことを、相同モデル化と呼ぶ）。相同モデルは、例えば特許文献１に示されているように、人体の形状を同一点数のユークリッド座標値で表される同数の点と同一位相のポリゴンによって再構築したものである。
【００３１】
相同モデル化を行うことにより、たとえば各人（ここではｋ人）の人体の全身形状は、多数の頂点座標の集合として表現されることになる。本実施例では、１人の人体の形状が相同モデル化により、ｎ個の頂点座標のセットで構成される例を説明する。また、ステップＳ１０１で計測されたｋ人の人体のうち、ｊ番目（ｊは、１以上ｋ以下の整数）の人体のｎ個の頂点をそれぞれ、Ｐｊ１，Ｐｊ２，Ｐｊ３，...，Ｐｊｎと表記する。また頂点座標Ｐｊｉは（ｉは、１以上ｎ以下の整数である）、それぞれＸＹＺ座標系（３次元直交座標系）の座標値（Ｘｊｉ，Ｙｊｉ，Ｚｊｉ）と表記される。また、不特定の人体の頂点座標を表現する際には、ｎ個の頂点はそれぞれＰ１，Ｐ２，Ｐ３，...，Ｐｎと表記され、頂点Ｐｃの座標値は（Ｘｃ，Ｙｃ，Ｚｃ）と表記される（ｃは１以上ｎ以下の整数）。また、頂点の添え字（頂点Ｐｃであれば、ｃが添え字）のことを「頂点番号」と呼ぶ。
【００３２】
相同モデル化を行うことにより、各人の人体の身体的特徴点の位置が、同じ頂点番号の頂点として表現される。たとえば、頂点Ｐ１，Ｐ２，Ｐ３，...，Ｐｎのうち、鼻の先端を表す頂点は、ｃ番目の頂点Ｐｃと決められている（ｃは１以上ｎ以下の整数）。そのため、ｋ人のうち、ａ番目の人の鼻の先端の座標値（Ｐａｃ、＝（Ｘａｃ，Ｙａｃ，Ｚａｃ））、ｂ番目の人の鼻の先端の座標値（Ｐbｃ＝（Ｘbｃ，Ｙbｃ，Ｚbｃ））が容易に特定できる。なお、相同モデル化つまりステップＳ１０１で行われる処理は、特許文献１等に示されているように公知の処理であるため、詳細な説明は略す。
【００３３】
続いてステップＳ１０２では、各頂点Ｐ１，Ｐ２，Ｐ３，...，Ｐｎの座標は、仮想的な球面の座標にマッピングされる。この処理は、３次元直交座標系の座標を、球面座標系に変換する処理と類似した処理である。図４に球面座標系の例を示す。図４に示す通り、球面上の点Ｑはたとえば、ある軸（ｚ軸）と動径のなす角θと、先に述べたある軸（ｚ軸）と直交する別の軸（たとえばｘ軸）と動径のなす角φ、及び動径の長さによって特定される（球面の場合、動径の長さは一定のため、図４では動径の長さの表記は略している）。なお、θとφの取り得る値の範囲はたとえば、０≦θ＜π、０≦φ＜２πである。
【００３４】
図５を用いて、ステップＳ１０２で行われるマッピング処理の概要を説明する。図５は、人体形状の各頂点がどのように球面上の点にマッピングされるかを表した概念図である。図５（ａ）は人体の形状と、人体形状の各頂点を例示した図である。なお、説明をわかりやすくするため、図５（ａ）には人体形状の断面を示しており、また図５（ｂ）には、人体形状の各頂点座標がマッピングされる球面の断面（円）を示している。
【００３５】
先に述べた通り、球面上の点Ｑはたとえば、角θと、角φ、及び動径の長さ（定数）に表すことができる。また図４において動径の長さがｒ（定数）の場合、球面上の点Ｑは、以下の式（１）、（２）、（３）により表される。
ｘ＝ｒ×ｓｉｎθ×ｃｏｓφ  …（１）
ｙ＝ｒ×ｓｉｎθ×ｓｉｎφ  …（２）
ｚ＝ｒ×ｃｏｓθ  …（３）
【００３６】
これは、球面（球面上の各点）が角θと角φの関数として表現できることを意味する。本発明の実施例に係る３次元モデル生成システム１ではこれと同様の考え方で、人体形状（人体形状の表面上の各点）を、角θと角φの関数として表現し、人体形状の各頂点座標値を保持する代わりに、関数（の係数）を管理する。人体形状が角θと角φの関数として表現される場合、３次元モデル生成システム１はある人物の人体形状のデータを管理（記憶）しておく際に、人体形状の各頂点座標値を保持する代わりに、関数（の係数）だけを管理すればよい。関数の係数を管理しておけば、３次元モデル生成システム１は人体形状の各頂点（のＸＹＺ座標値）を計算により求めることが可能である。そして関数の係数だけを管理しておけばよいので、３次元モデル生成システム１はある人物の人体形状のデータを管理しておく際の記憶データ量を削減することが可能になる。ただし人体形状は複雑なため、球面上の点のように簡単な関数では表現できない。具体的には球面調和関数の線形和として人体形状の頂点を表現する。詳細は後述する。
【００３７】
また、人体形状を角θと角φの関数として管理（記憶）しておく場合、人体形状の各頂点（のＸＹＺ座標値）が、（角θと角φの）一価関数として表される必要がある。たとえばある角θに対して、複数の座標値が定まる関数の場合には、人体形状の各頂点（のＸＹＺ座標値）を計算により求めることができなくなるためである。
【００３８】
たとえば図５（ａ）において、人体形状の各頂点がマッピングされる角θを、人体内のある点（たとえば図５（ａ）の点Ｏ）と頂点を通過する線と、ある軸（たとえば鉛直方向軸（図５（ａ）において点Ｏを垂直方向に通過する線）とのなす角の角度である、という規則に基づいて、人体形状の各頂点に角θをマッピングした場合、頂点Ｐｊｂは、点Ｏと頂点Ｐｊａを結ぶ線分上に位置する点であるので、頂点Ｐｊｂと頂点Ｐｊａが同じ角度にマッピングされてしまう。このような規則に基づいて人体形状の各頂点に角θをマッピングすると、人体形状の各頂点（のＸＹＺ座標値）を角θの一価関数として表すことができなくなる。そのため、本実施例に係る３次元モデル生成システム１では、人体形状の各頂点が異なる角θ、異なる角φにマッピングされるように、マッピング関係を定める。
【００３９】
図５では、図５（ａ）に示された各頂点Ｐｊ１，Ｐｊ２，Ｐｊ３，...，Ｐｊｎ（つまりｊ番目の人のｎ個の頂点）がそれぞれ、図５（ｂ）に示された球面（円）上の点Ｑｊ１，Ｑｊ２，Ｑｊ３，...，Ｑｊｎにマッピングされる例を示している。なお、先に述べた通り、球面上の点は、２つの角度（角θと角φ）を用いて表現（特定）されるが、ここでは説明をわかりやすくするため、角θのみを示している（角φがたとえば０等の定数であるケースが図示されているとみなすことができる）。
【００４０】
なお、人体形状の各頂点を球面上の点（角θ、角φ）にマッピングする際、上に述べたように各頂点が異なる角θ、異なる角φにマッピングされるようにすることに加えて、マッピング前の人体の形状（たとえば図５（a））を構成する各ポリゴン(複数の頂点から構成される)の面積比率が、マッピング後もできるだけ同じになるように、マッピング規則を定めると良い。たとえば人体形状の頂点Ｐ１，Ｐ２，Ｐ３，Ｐ４が球面上の点Ｑ１，Ｑ２，Ｑ３，Ｑ４にマッピングされ、頂点Ｐ１，Ｐ２，Ｐ３から構成されるポリゴン（三角形）と頂点Ｐ２，Ｐ３，Ｐ４から構成されるポリゴンの面積比がＡ：Ｂだった場合、マッピング後の点Ｑ１，Ｑ２，Ｑ３，Ｑ４から構成される２つのポリゴン（点Ｑ１，Ｑ２，Ｑ３から構成される三角形と、点Ｑ２，Ｑ３，Ｑ４から構成される三角形）の面積比が、できるだけＡ：Ｂに近くなるように、点Ｑ１，Ｑ２，Ｑ３，Ｑ４の位置（角θ、角φ）を定める。たとえば先に挙げた非特許文献２に示されている、Ｓｐｈｅｒｉｃａｌ  ｐａｒａｍｅｔｒｉｚａｔｉｏｎアルゴリズムを用いてマッピング規則を定めるとよい。
【００４１】
また、本実施形態では、各人の人体形状の各頂点にマッピングされる角（θ，φ）の値は同じである。つまり、ｓ番目（ｓは１≦ｓ≦ｋを満たす任意の整数）の人体形状の、ｉ番目の頂点Ｐｓｉ＝（Ｘｓｉ，Ｙｓｉ，Ｚｓｉ）がマッピングされる球面上の点Ｑｓｉの角（θｓｉ，φｓｉ）は、ｔ番目（ｔは１≦ｔ≦ｋを満たす任意の整数。ただしｓ≠ｔとする）の人体形状のｉ番目の頂点Ｐｔｉ＝（Ｘｔｉ，Ｙｔｉ，Ｚｔｉ）がマッピングされる球面上の点Ｑｔｉの角（θｔｉ，φｔｉ）と等しい。そのため以下の説明では、角θｓｉと角θｔｉを区別せずにθｉと表記し、同様に角φｓｉと角φｔｉを区別せずに、φｉと表記する。
【００４２】
続いて形状データ測定装置１１（実測データ収集プログラム）は、球面調和関数の値を計算する（ステップＳ１０３）。本実施例に係る３次元モデル生成システム１では、人体形状の頂点Ｐｉの座標値（Ｘｉ，Ｙｉ，Ｚｉ）を角θと角φの関数として表現する。具体的には、ｊ番目の人の人体形状の頂点Ｐｊｉの座標値（Ｘｊｉ，Ｙｊｉ，Ｚｊｉ）が、公知の球面調和関数の線形和で表現されるものと仮定する。具体的には頂点Ｐｊｉの座標値（Ｘｊｉ，Ｙｊｉ，Ｚｊｉ）が、以下の式（４）で表される。
【００４３】
【数１】
0006698233.tif 000002
【００４４】
上の式（４）において、Ｙｌｍは、以下の式（５）で表される関数であり、これが球面調和関数になる事が知られている。
【００４５】
【数２】
0006698233.tif 000003
【００４６】
ｌ，ｍは次数で、ｌ≧｜ｍ｜の関係がある。またＰｌ｜ｍ｜はルジャンドルの陪多項式である。球面調和関数は公知の関数であるため、ここでは詳細は略す。また、式（４）において、球面調和関数Ｙｌｍの直前に記されている記号（係数）（ａｌｍ＿ｊ，ｂｌｍ＿ｊ，ｃｌｍ＿ｊ）は定数値で、後述するステップＳ１０５で、ｋ人の人体形状毎に算出される。また、式（５）及びこれ以降に挙げる式において、ｅは自然対数の底（ネイピア数）を表し、虚数単位を表す記号としては、英文字ｉを括弧で囲んだもの「（ｉ）」が用いられる。
【００４７】
ステップＳ１０３では、このＹｌｍの値を計算する。例として、次数ｌが０，１，２の場合のＹｌｍの値を以下に示す。
【００４８】
【数３】
0006698233.tif 000004
【００４９】
式（６）から分かる通り、θｉとφｉの値が既知であれば、Ｙｌｍの値は三角関数の値を算出することで、容易に算出可能である。ステップＳ１０２で、各頂点座標と（θｉ，φｉ）とのマッピングが定まっているため、θｉとφｉの値が既知である。そのため、ステップＳ１０３では、形状データ測定装置１１はステップＳ１０２で定めたθｉとφｉの値を用いて、球面調和関数Ｙｌｍの値を算出する。
【００５０】
なお、各頂点の座標値（Ｘｉ，Ｙｉ，Ｚｉ）を表現するために用いられる球面調和関数の個数（最大何次の球面調和関数まで用いるべきか）は、多いほど精度が高い。つまり、（Ｘｉ，Ｙｉ，Ｚｉ）が多くの球面調和関数の線形和で表現されていると、角度θｉとφｉの値を用いて（Ｘｉ，Ｙｉ，Ｚｉ）を計算したときに、元の計測データ（ステップＳ１０１で計測された値）に近い値が得られる。本願発明者による実験の結果では、５０次程度の球面調和関数までを用いた場合に、極めて高い精度で各頂点の座標値（Ｘｉ，Ｙｉ，Ｚｉ）が算出できることが分かっている。
【００５１】
続いてステップＳ１０４で、形状データ測定装置１１（実測データ収集プログラム）は、変数ｊを用意し、ｊの値を初期化する（ｊに１を代入する）。
【００５２】
ステップＳ１０５では、形状データ測定装置１１（実測データ収集プログラム）は、ｊ番目の人体形状の頂点座標値Ｐｊｉの座標値（Ｘｊｉ，Ｙｊｉ，Ｚｊｉ）と、上で述べた式（４）を用いて、式（４）の各係数（ａｌｍ＿ｊ，ｂｌｍ＿ｊ，ｃｌｍ＿ｊ）を求める。この係数の算出には、例えば最小二乗法が用いられると良い。
【００５３】
ステップＳ１０１で計測した、ｊ番目の人体形状の各頂点のＸ座標（Ｘｊ１，Ｘｊ２，...Ｘｊｎ）と、上述の式（４）（及び角度θｉとφｉの値）を用いて算出されるＸ座標の値との誤差二乗和Ｅｊｘは以下の式（７）のように表される。
【００５４】
【数４】
0006698233.tif 000005
【００５５】
同様に、ステップＳ１０１で計測した、ｊ番目の人体形状の各頂点のＹ座標（Ｙｊ１，Ｙｊ２，...Ｙｊｎ）と、上述の式（４）（及び角度θｉとφｉの値）を用いて算出されるＹ座標の値との誤差二乗和は以下の式（８）に示される通りである。また、ｊ番目の人体形状の各頂点のＺ座標（Ｚｊ１，Ｚｊ２，...Ｚｊｎ）と、上述の式（４）（及び角度θｉとφｉの値）を用いて算出されるＺ座標の値との誤差二乗和は以下の式（９）に示される通りになる。なお、式（７），（８），（９）におけるｎは、先に述べた通り、１人の人体の形状を構成する頂点座標の数である。
【００５６】
【数５】
0006698233.tif 000006
【００５７】
【数６】
0006698233.tif 000007
【００５８】
ステップＳ１０５では、上に示した式（７），（８），（９）の値Ｅｊｘ，Ｅｊｙ，Ｅｊｚの値が最小になるときの係数（ａｌｍ＿ｊ，ｂｌｍ＿ｊ，ｃｌｍ＿ｊ）を算出する。たとえばハウスホルダー法などの、公知の計算方法を用いればよい。
【００５９】
係数が求められると、形状データ測定装置１１はこの係数を形状データ測定装置１１の記憶領域（補助記憶装置５４など）に記憶する。この時、形状データ測定装置１１はｊ番目の人の係数（ａｌｍ＿ｊ，ｂｌｍ＿ｊ，ｃｌｍ＿ｊ）をｊ番目の人の頂点座標値のセット（（Ｘｊ１，Ｙｊ１，Ｚｊ１），（Ｘｊ２，Ｙｊ２，Ｚｊ２），...（Ｘｊｎ，Ｙｊｎ，Ｚｊｎ））と対応付けて記憶してもよいが、あるいは形状データ測定装置１１はｊ番目の人の頂点座標値のセット（（Ｘｊ１，Ｙｊ１，Ｚｊ１），（Ｘｊ２，Ｙｊ２，Ｚｊ２），...（Ｘｊｎ，Ｙｊｎ，Ｚｊｎ））を記憶領域から削除し、係数（ａｌｍ＿ｊ，ｂｌｍ＿ｊ，ｃｌｍ＿ｊ）がｊ番目の人の係数のセットであるという情報のみに対応付けて記憶してもよい。頂点座標値のセット（の近似値）は、係数のセットと式（４）を用いることで算出できるからである。
【００６０】
ステップＳ１０６では、形状データ測定装置１１（実測データ収集プログラム）は、変数ｊに１を加算する。
【００６１】
ステップＳ１０７で、変数ｊの値がｋ（ステップＳ１０１で計測を行った人の数）を超過した場合、処理を終了する。変数ｊの値がｋ以下の場合には、形状データ測定装置１１（実測データ収集プログラム）は再びステップＳ１０５を実行する。これを繰り返すことによりｋ人それぞれについて、関数の係数のセット（式（４）に示された係数（ａｌｍ＿ｊ，ｂｌｍ＿ｊ，ｃｌｍ＿ｊ））を求めることができる。つまり形状データ測定装置１１は、ｋ人それぞれの人体形状データを、式（４）に示された関数として表現（関数に変換）することができ、かつｋ人それぞれの人体形状データを、式（４）に示された関数の形で管理（記憶）することができる。
【００６２】
なお、本実施形態においては、人体形状の頂点Ｐ１，Ｐ２，Ｐ３，...，Ｐｎと球面上の点Ｑ１，Ｑ２，Ｑ３，...，Ｑｎのマッピング関係が固定的であるので、ステップＳ１０２、ステップＳ１０３の処理は予め実行しておいてもよい。つまり、人体形状の頂点Ｐ１，Ｐ２，Ｐ３，...，Ｐｎと球面上の点Ｑ１，Ｑ２，Ｑ３，...，Ｑｎのマッピング関係の情報と、球面調和関数Ｙｌｍの値は、予め補助記憶装置５４等の記憶領域に保存しておき、実測データ収集処理の実行時には、形状データ測定装置１１（実測データ収集プログラム）はステップＳ１０２、ステップＳ１０３は実行せずに、記憶領域に保存された情報を用いてステップＳ１０５の処理を実行してよい。
【００６３】
続いて、仮想形状生成装置２１で行われる処理を、図６等を参照しながら説明する。図６は、仮想形状生成装置２１で行われる、仮想形状生成処理のフローチャートである。なお、仮想形状生成処理は、仮想形状生成装置２１のＣＰＵ５１が仮想形状生成装置２１のメモリ５２にロードされたプログラム（以下、このプログラムを「仮想形状生成プログラム」と呼ぶ）を実行することにより、実現される処理である。
【００６４】
仮想形状生成装置２１は、形状データ測定装置１１が実施した実測データ収集処理（図３）の結果得られたｋ人分の形状データに関連した係数（ａｌｍ＿ｊ，ｂｌｍ＿ｊ，ｃｌｍ＿ｊ）を用いて、仮想形状データを算出する。そのため、仮想形状生成処理の実行が開始される前に、実測データ収集処理の実行が完了している必要がある。
【００６５】
まずステップＳ２０１で、仮想形状生成装置２１（仮想形状生成プログラム）は、形状データ測定装置１１から、ｋ人分の係数を取得する。続いて仮想形状生成装置２１（仮想形状生成プログラム）は、収集したｋ人分の係数の主成分分析を実施する。
【００６６】
主成分分析は公知の統計的手法であるため、ここでは概要のみを記す。主成分分析は、各データをできるかぎり情報損失を抑えるように張られた低次元の部分空間によって表現する統計的手法である。
【００６７】
ここまでの説明では、ｊ番目の人の形状データから得られた係数（ａｌｍ＿ｊ，ｂｌｍ＿ｊ，ｃｌｍ＿ｊ）と表記したが、以下では説明の簡単化のため、これらの係数ａｌｍ＿ｊ，係数ｂｌｍ＿ｊ，係数ｃｌｍ＿ｊを、「係数ｇ」と呼ぶ。また、以下の説明では、形状データ測定装置１１（実測データ収集プログラム）が実行する処理により、各人の形状データからｈ個の係数が得られる（各人の形状データがｈ個の係数に変換される）場合の例を中心に説明する。そして、ｊ番目の人の形状データから得られたｈ個の係数をそれぞれ、ｇｊ１，ｇｊ２，...，ｇｊｈと表記する。また、ｈ個の係数のセットｇｊ１，ｇｊ２，...，ｇｊｈを、（ｊ番目の人の）係数ベクトルと呼び、この係数ベクトルをＧｊと表記する。
【００６８】
ステップＳ２０１では、このｋ人分の係数ベクトル（Ｇ１，Ｇ２，...，Ｇｋ）の主成分分析が行われる。主成分分析の結果、複数の主成分ベクトル（部分空間の基底）が得られる。ここで、主成分分析の結果として得られる複数の主成分ベクトルをそれぞれ、ｐ１，ｐ２，...，ｐｒとするとき（ｒは２以上の整数）、係数ベクトルＧｊはたとえば以下の式（１０）で表現することができる。なお、Ｇｍｅａｎは、ｋ人分の係数ベクトル（Ｇ１，Ｇ２，...，Ｇｋ）の平均値を表すベクトルである（以下、平均値ベクトルと呼ぶ）。また、ｐｑはｈ次元のベクトルである。具体的にはｐ１は第１主成分ベクトルを表し、ｐ２，...，ｐｒはそれぞれ第２主成分ベクトル、…第ｒ主成分ベクトルを表す。またｓｊｑは主成分得点を表す。ｓｊｑはスカラー値である。また以下の説明では、ｓｊ１，ｓｊ２，...，ｓｊｒのセットをＳｊと表記する（Ｓｊはｒ次元のベクトルである）。式（１０）から分かる通り、ｓｊ１，ｓｊ２，...，ｓｊｒの値がすべて０の時、係数ベクトルＧｊは平均値ベクトルＧｍｅａｎと等しい。
【００６９】
【数７】
0006698233.tif 000008
【００７０】
ステップＳ２０１で、仮想形状生成装置２１（仮想形状生成プログラム）は、主成分分析を行い、その結果、上に示す主成分ベクトルを得る。ステップＳ２０１ではさらに、仮想形状生成装置２１（仮想形状生成プログラム）は係数ベクトルＧｊごとに主成分得点のセットＳｊを得る。なお、以下では特に断りのない限り、仮想形状生成装置２１（仮想形状生成プログラム）が主成分分析を行った結果、第１主成分ベクトル及び第２主成分ベクトルまでを得る場合の例を説明する。
【００７１】
図７は、第１主成分得点を横軸に、第２主成分得点を縦軸にとったグラフ上に、係数ベクトル（Ｇ１，Ｇ２，...，Ｇｋ）をプロットした場合の例を示す（グラフ上の個々の点が、係数ベクトルに相当する）。図７は一例であり、形状データ測定装置１１（実測データ収集プログラム）が測定・収集したｋ人の人体形状に依存して、グラフ上の係数ベクトルの分布は異なる。しかし一般的に、無作為に選択された複数人の被測定者の人体形状の測定を行い、複数人分の係数ベクトルを得て、得られた係数ベクトルの主成分分析を行うと、図７に示されるように、複数人分の係数ベクトルの分布は一様にならないことが多いと推測される。被測定者が無作為に選択された場合には、係数ベクトルの分布はたとえば多次元正規分布に従う可能性が高い。
【００７２】
ステップＳ２０２では、仮想形状生成装置２１（仮想形状生成プログラム）は、係数ベクトル（Ｇ１，Ｇ２，...，Ｇｋ）に基づいて、係数ベクトルの分布の推定（確率密度の推定）を行う。図８は、図７に示された係数ベクトルの分布について確率密度推定を行った結果の例を示す。図８のグラフ中のいくつかの閉曲線は、確率密度が等しい線（等高線）をあらわす。図８の例の場合は、グラフの中心（第１主成分得点及び第２主成分得点がいずれも０の点）に近い閉曲線（等高線）ほど確率密度が高く、グラフの中心に対して、より遠くの位置にある閉曲線ほど、確率密度が低いことを表す。
【００７３】
確率密度推定を行う方法は公知であるため、ここでは詳細な説明は略す。たとえば公知の確率密度推定方法として、カーネル密度推定（ＫＤＥ）が良く知られており、ステップＳ２０２では、カーネル密度推定を行うためのソフトウェア（プログラム）を用いてもよい。
【００７４】
先に述べた通り、形状データ測定装置１１で収集したｋ人分の人体形状データに関する係数ベクトルは、上の式（１０）のように表現することができる。また、主成分得点ｓｊｑの値を様々な値に変化させると、様々な係数ベクトルを得ることができる。たとえば下に示す式（１１）に従って、係数ベクトルＧｖを算出することにより、形状データ測定装置１１によって収集されたｋ人分の人体形状データ以外の人体形状データを人工的に（仮想的に）生成することができる。なお、式（１１）は、式（１０）におけるｒを２に限定し、式（１０）における第１主成分得点ｓｊ１と第２主成分得点ｓｊ２をそれぞれｓ１とｓ２に置き換えたものである（ｓ１とｓ２は任意のスカラー値でよい）。
【００７５】
【数８】
0006698233.tif 000009
【００７６】
図１１は、式（１１）において、第１主成分得点ｓ１を変化させることで得られる、（仮想的な）人体形状データを図示したものである。なお、図１１に示す（ａ）、（ｂ）、（ｃ）の各図では、第２主成分得点ｓ２がいずれも０である。図１１の（ｂ）は第１主成分得点ｓ１が０の場合（また第２主成分得点ｓ２も０）の人体形状である。つまり平均値ベクトルＧｍｅａｎから得られる人体形状（平均値ベクトルＧｍｅａｎの各要素を式（４）に代入して得られる各頂点座標をもとに人体形状を図示したもの）で、ｋ人分の人体形状の平均的な形状に相当する。図１１の（ａ）は第１主成分得点ｓ１を減少させた（負の値にした）場合に得られる人体形状である。一方、図１１の（ｃ）は第１主成分得点ｓ１を増加させた（正の値にした）場合に得られる人体形状である。図１１の各図からわかるとおり、第１主成分得点ｓ１を減少させる（負の値にする）ことで、平均的な人体形状よりも身長の低い人体形状を得ることができる。逆に、第１主成分得点ｓ１を増加させる（正の値にする）ことで、平均的な人体形状よりも身長の高い人体形状を得ることができる。
【００７７】
図１２は、式（１１）において、第２主成分得点ｓ２を変化させたときに得られる、（仮想的な）人体形状データを図示したものである。図１２に示す（ａ）、（ｂ）、（ｃ）の各図では、第１主成分得点ｓ１がいずれも０である。図１２の（ｂ）は図１１（ｂ）と同じ図である。つまり平均的な人体形状（第１、第２主成分得点ｓ１，ｓ２が０の場合の人体形状）である。図１２の（ａ）は第２主成分得点ｓ２を減少させた（負の値にした）場合に得られる人体形状である。一方、図１２の（ｃ）は第２成分得点ｓ２を増加させた（正の値にした）場合に得られる人体形状である。図１２の各図からわかるとおり、第２主成分得点ｓ２を減少させる（負の値にする）ことで、平均的な人体形状よりも痩せた（横幅の狭い）人体形状を得ることができる。逆に、第２主成分得点ｓ２を増加させる（正の値にする）ことで、平均的な人体形状よりも太った（横幅の広い）人体形状を得ることができる。
【００７８】
本実施形態では、式（１１）を用いて算出した係数ベクトルＧｖ（先に述べた通り、係数ベクトルＧｖの各要素は、式（４）の各係数（ａｌｍ＿ｊ，ｂｌｍ＿ｊ，ｃｌｍ＿ｊ）に相当する）を式（４）に代入することで得られる、人体形状を構成する各頂点の座標値のセット（Ｐ１，Ｐ２，Ｐ３，...，Ｐｎ）を仮想形状データと呼ぶ。ただし式（１１）を用いて算出された係数ベクトルＧｖのことも仮想形状データと呼ぶことがある。
【００７９】
ステップＳ２０３では仮想形状生成装置２１（仮想形状生成プログラム）は、仮想形状データを多数生成する。以下では、ステップＳ２０３で生成される仮想形状データの数をＮ（Ｎは整数）とする。Ｎの数は任意であるが、少なくともｋ人よりも充分に大きい数の仮想形状データ（たとえば１０万個、あるいは１００万個の仮想形状データ）が生成されることが望ましい。
【００８０】
具体的には、第１主成分得点ｓ１の値及び第２主成分得点ｓ２の値を少しずつ変化させた値を式（１１）に対して代入して、多数の係数ベクトルＧｖを算出し、さらに算出された係数ベクトルＧｖを式（４）に代入して、（仮想的な）人体形状の各頂点の座標値を算出する。これにより、多数の人体形状のデータ（頂点座標値のセット）を生成することができる。なお、仮想形状生成装置２１は、式（４）を用いて（仮想的な）人体形状の各頂点の座標値を算出する際に必要となる、各頂点座標に対応する角度（θｉ，φｉ）を、あらかじめ仮想形状生成装置２１の記憶領域(補助記憶装置５４等)に保存している。仮想形状生成装置２１（仮想形状生成プログラム）がステップＳ２０３を実行する時には、あらかじめ保存している各頂点座標に対応する角度（θｉ，φｉ）ごとに、球面調和関数Ｙｌｍ（θｉ，φｉ）の値を算出する。そして、この球面調和関数Ｙｌｍ（θｉ，φｉ）の値と、式（１１）を用いて算出した係数ベクトルＧｖの各要素（これは式（４）の各係数（ａｌｍ＿ｊ，ｂｌｍ＿ｊ，ｃｌｍ＿ｊ）に相当する）とを式（４）に代入することで、（仮想的な）人体形状の各頂点の座標値を算出する。また、別の実施形態として、仮想形状生成装置２１は角度（θｉ，φｉ）に対応する球面調和関数Ｙｌｍ（θｉ，φｉ）の値もあらかじめ保存しておき、あらかじめ保存しておいた球面調和関数Ｙｌｍ（θｉ，φｉ）の値を使って、（仮想的な）人体形状の各頂点の座標値を算出してもよい。
【００８１】
なお、ステップＳ２０３において生成される複数の仮想形状の分布は、実態に即している（実際に世の中にいる人の形状の分布・傾向に近い）ことが望ましい。そこで、ステップＳ２０３では仮想形状生成装置２１（仮想形状生成プログラム）は、算出される複数の仮想形状の分布が、ステップＳ２０２で得られた係数ベクトルの分布（確率密度関数）に従うように、算出処理を行う。ステップＳ２０２で得られる係数ベクトルの分布は、実際に存在する（複数の）人のデータに基づいて生成されたものであるから、実態に近い分布であると考えられるためである。
【００８２】
算出方法の概要を、図９を用いて説明する。たとえばステップＳ２０２で得られた係数ベクトルの分布（確率密度関数）が、図９に示されるような曲線Ａ（関数Ｆ（ｘ））だった場合を想定する。実際にステップＳ２０２で得られる係数ベクトルの分布は二次元の確率密度関数だが、ここでは説明を簡単にするため、関数Ｆ（ｘ）を第１主成分得点のみの関数（あるいは第２主成分得点のみの関数）とする。
【００８３】
ステップＳ２０３でＮ個の係数ベクトルが生成されるケースを想定する。また図９において、第１主成分得点の値の範囲ｘｃからｘｄの範囲の領域Ｂの面積がＢ（０＜Ｂ＜１）だった場合、仮想形状生成装置２１（仮想形状生成プログラム）は、ステップＳ２０３で生成される係数ベクトルの総数（Ｎ個）に対して、第１主成分得点の値がｘｃからｘｄの区間に収まる係数ベクトルの数（Ｍ）の割合がＢになるようにする（Ｍ／Ｎ＝Ｂになるようにする）。言い換えれば、仮想形状生成装置２１（仮想形状生成プログラム）は第１主成分得点の値がｘｃからｘｄの範囲の係数ベクトルを（Ｂ×Ｎ）個生成すると良い。
【００８４】
ステップＳ２０３で生成される係数ベクトルＧｖの分布が、ステップＳ２０２で求められた分布（確率密度関数）と（ほぼ）同じになるようにするためには、たとえば棄却法を用いて、係数ベクトルＧｖの算出に必要な第１主成分得点ｓ１の値及び第２主成分得点ｓ２の値のペアを生成するとよい。棄却法は公知の手法であるため、ここでは概略のみ説明する。
【００８５】
ここでは、ステップＳ２０２で求められた確率密度関数をｆ（ｓ１，ｓ２）と呼ぶ（ｆは第１主成分得点及び第２主成分得点の関数であり、ｓ１，ｓ２はそれぞれ第１主成分得点及び第２主成分得点を意味する）。またここでは確率密度関数ｆの値域が［０，ｃ］で、第１主成分得点（ｓ１）及び第２主成分得点（ｓ２）の定義域が［−ｄ，ｄ］である場合の例を説明する。
【００８６】
（Ａ）  仮想形状生成装置２１（仮想形状生成プログラム）は、一様乱数を生成するためのプログラム（以下「乱数生成モジュール」と呼ぶ）を実行することで、［−ｄ，ｄ］の範囲の一様乱数を２つ求める。ここで求められた２つの一様乱数をｓｒ１及びｓｒ２と呼ぶ。そして仮想形状生成装置２１（仮想形状生成プログラム）は、求められたｓｒ１及びｓｒ２を用いて、確率密度関数ｆの値（ｆ（ｓｒ１，ｓｒ２））を計算する。
【００８７】
（Ｂ）  さらに仮想形状生成装置２１（仮想形状生成プログラム）は、乱数生成モジュールを実行することで、［０，ｃ］の範囲の一様乱数を１つ求める。ここで求められる乱数をｒとする。
【００８８】
（Ｃ）  仮想形状生成装置２１（仮想形状生成プログラム）はｒとｆ（ｓｒ１，ｓｒ２）を比較する。ｒ＜ｆ（ｓｒ１，ｓｒ２）であった場合、仮想形状生成装置２１（仮想形状生成プログラム）はｓｒ１，ｓｒ２をそれぞれ、第一主成分得点及び第２主成分得点として採択し、これらを用いて仮想形状データを生成する（式（１１）のｓ１にｓｒ１を代入し、ｓ２にｓｒ２を代入することで係数ベクトルＧｖを算出し、また算出された係数ベクトルＧｖを式（４）に代入して、（仮想的な）人体形状の各頂点の座標値を算出する）。逆にｒ≧ｆ（ｓｒ１，ｓｒ２）だった場合には、仮想形状生成装置２１（仮想形状生成プログラム）は仮想形状データの算出は行わない（生成されたｓｒ１，ｓｒ２を棄却する）。
【００８９】
上の（Ａ）〜（Ｃ）を繰り返すことで、生成される複数の係数ベクトルの分布は確率密度関数ｆに従うものになる。仮想形状生成装置２１（仮想形状生成プログラム）は、必要な数（たとえば十万〜百万）の仮想形状データが生成されるまで、上の（Ａ）〜（Ｃ）を繰り返し実行する。また、ステップＳ２０３で生成されるべき複数の係数ベクトルはそれぞれ異なるベクトルであることが好ましい（重複する仮想形状データが生成されても、それは後述するモデル出力処理で用いられないためである）。そのため、上の（Ａ）〜（Ｃ）の処理の過程で、同じ（重複する）係数ベクトルが生成された場合、その係数ベクトルは棄却される。このように、重複する係数ベクトルが生成されないようにすることで、それぞれが異なる形状（体格）を表す、多数の仮想形状データを生成することができる。ただし、重複する係数ベクトルが生成されても（つまり、重複する仮想形状データが生成されても）大きな問題にはならないため、重複する係数ベクトルが生成された場合にその係数ベクトルを棄却する処理は省略されてもよい。
【００９０】
ステップＳ２０３で生成された、複数の係数ベクトルの分布の例を図１０に示す。図１０は、図７（あるいは図８）と同様に、第１主成分得点を横軸に、第２主成分得点を縦軸にとったグラフであり、このグラフ上に、ステップＳ２０３で生成された複数の係数ベクトルがプロットされている。ステップＳ２０３ではＮ個の（ｋ（個）よりも多くの）係数ベクトルが生成されるため、図１０のグラフ上の点の密度は図７（あるいは図８）よりも高い。ただし図１０のグラフにおいて、各点（係数ベクトル）の分布は図７（あるいは図８）と類似している。
【００９１】
最後にステップＳ２０４で、仮想形状生成装置２１（仮想形状生成プログラム）は、ステップＳ２０３で算出されたすべての仮想形状データから、サイズ情報（身長や胸囲などの、体格や身体的特徴を表す値）を算出する。ここではサイズ情報として、身長と胸囲が算出される例を説明する。ステップＳ２０３で、（仮想的な）人体形状の各頂点の座標値が求められているので、身長や胸囲等は容易に算出可能である。仮想形状生成プログラムは、たとえば身長は、「頭部を構成する複数の頂点の中の、特定の頂点ＰｓのＺ座標と、足の裏を構成する複数の頂点の中の特定の頂点ＰｔのＺ座標の差」を算出することで求められる、という計算規則を保持している。同様に仮想形状生成プログラムは、複数の頂点座標値から胸囲を計算するための計算規則も保持している。仮想形状生成プログラムは、これらの計算規則に基づいて、身長や胸囲を算出する。
【００９２】
なお、ステップＳ２０４で算出される値は、後述するモデル提供装置３１で用いられる値（条件情報としてモデル提供装置３１がユーザから受け付ける値）である。そのため、たとえば条件情報としてモデル提供装置３１がユーザから受け付ける値として、肩幅が含まれている場合、ステップＳ２０４で仮想形状生成装置２１（仮想形状生成プログラム）は肩幅の値も算出する。
【００９３】
身長と胸囲の算出が終了すると、仮想形状生成装置２１は、算出された身長と胸囲の値を、ステップＳ２０３で算出された係数ベクトルＧｖと人体形状の各頂点の座標値のセットに対応付けて、仮想形状生成装置２１の補助記憶装置５４に保存し、仮想形状生成処理を終了する。なお、ここで人体形状の各頂点の座標値は必ずしも保存されなくてもよい。係数ベクトルＧｖが保存されていれば、係数ベクトルを用いて人体形状の各頂点の座標値を算出可能だからである。
【００９４】
最後に、モデル提供装置３１で行われる、モデル出力処理の流れを説明する。図１３は、モデル出力処理のフローチャートである。なお、モデル出力処理は、モデル提供装置３１のＣＰＵ５１がモデル提供装置３１のメモリ５２にロードされたプログラム（以下、このプログラムを「モデル出力プログラム」と呼ぶ）を実行することにより、実現される処理である。なおモデル出力処理が実行される前に、仮想形状生成装置２１で行われる仮想形状生成処理（図６）の実行が完了している必要がある。
【００９５】
また、以下の説明ではモデル提供装置３１に接続されている出力装置３３はディスプレイ装置であり、モデル提供装置３１はユーザから入力された条件（身長及び胸囲）に適合する１または複数の人体形状（仮想的な人体形状）をディスプレイ装置に表示する例を説明する。
【００９６】
モデル出力プログラムの実行が開始されると、モデル提供装置３１はユーザから、表示させたい人体形状の条件の入力を受け付ける（ステップＳ３０１）。なお、ここの説明では、人体形状の条件として、身長と胸囲の入力を受け付ける例を説明する。
【００９７】
モデル出力プログラムの実行が開始されると、モデル提供装置３１はユーザから、表示させたい人体形状の条件の情報（身長と胸囲）の入力を受け付ける（ステップＳ３０１）。なおモデル提供装置３１は、ユーザからの条件情報の入力を受け付け、それに応じた人体形状の表示を行うためのグラフィカルユーザインタフェース（ＧＵＩ）を提供する機能を備えているが、ここで提供されるＧＵＩは本実施例の内容とは直接関係しないため、詳細な説明は略す。
【００９８】
ユーザから、表示させたい人体形状の条件（身長と胸囲）を受け付けると、ステップＳ３０２が実行される。ステップＳ３０２では、モデル提供装置３１は仮想形状生成装置２１から、複数の仮想形状データ（仮想形状生成装置２１で生成されたもの）に対応付けられて保存されている、サイズ情報（身長及び胸囲の情報）を取得する。モデル提供装置３１は、取得した複数のサイズ情報の中から、ユーザから受け付けた条件に適合するサイズ情報を１または複数選択する。
【００９９】
ユーザから受け付けた条件に適合するサイズ情報を選択する方法は、特定のものに限定されない。たとえば、ユーザが指定した身長に最も近い身長の仮想形状データを１つ選択し、さらにユーザが指定した胸囲に最も近い胸囲の仮想形状データを１つ選択し、それぞれの（２つの）仮想形状データに基づいて生成される人体形状画像を、出力装置３３に出力してもよい。あるいは、仮想形状データがユーザが指定した条件にどの程度適合しているかを表す一種のスコア（適合度）を仮想形状データ毎に算出し、スコアの最も高い仮想形状データを１つ選択する、あるいは複数（たとえば５つ）の仮想形状データをスコアの高い順に選択するようにしてもよい。
【０１００】
スコアの算出方法の例を以下に示す。ユーザが指定した身長と胸囲をそれぞれＴ，Ｂとし、（スコア（適合度）算出対象の）仮想形状データに対応付けられた身長と胸囲をそれぞれ、Ｔ'、Ｂ'とする。この場合、たとえば以下の式（１２）で算出される値をスコア（適合度）と定義してよい。式（１２）で算出されるスコアは０以下の値を取る。スコアが０に近いほど、そのサイズ情報（Ｔ'とＢ'）がユーザの指定した条件に近いことを表す。
【０１０１】
【数９】
0006698233.tif 000010
【０１０２】
ステップＳ３０２で、モデル提供装置３１は式（１２）を用いて各サイズ情報のスコアを算出し、スコアの高いサイズ情報から順に選択してもよい。ただし、上で説明した式（１２）以外の計算式によってスコア（適合度）が算出されてもよい。
【０１０３】
ユーザから指定された条件に適合するサイズ情報が選択されると、モデル提供装置３１は仮想形状生成装置２１から、選択されたサイズ情報に対応する、人体形状の各頂点の座標値を取得する（ステップＳ３０３）。もし仮想形状生成装置２１が仮想形状生成処理を実行したときに（ステップＳ２０３、ステップＳ２０４で）、人体形状の頂点座標値を保存していない場合（係数ベクトルと、サイズ情報［身長・胸囲］だけを保存している場合）、モデル提供装置３１はステップＳ３０３で、選択されたサイズ情報に対応する係数ベクトルを仮想形状生成装置２１から取得し、取得した係数ベクトルと式（４）を用いて、選択された仮想形状の各頂点の座標値を算出する。また、ステップＳ３０２でサイズ情報を取得する際に、サイズ情報とともに係数ベクトル（または人体形状の頂点座標値）を取得してもよい。その場合には、ステップＳ３０３は実行されなくてもよい。
【０１０４】
ステップＳ３０４で仮想形状生成装置２１は、ステップＳ３０３で取得（または算出）された、各頂点の座標値を用いて、選択された（仮想的な）人体形状の画像（３次元ＣＧ）を作成してディスプレイ装置（出力装置３３）に表示し、モデル出力処理を終了する。
【０１０５】
以上、各実施形態に基づき本発明の説明を行ってきたが、上記実施形態に示した要件に本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することができ、その応用形態に応じて適切に定めることができる。
【０１０６】
たとえば上で説明した実施形態では、実測データ収集処理、仮想形状生成処理、モデル出力処理がそれぞれ、異なるコンピュータ（形状データ測定装置１１、仮想形状生成装置２１、そしてモデル提供装置３１）で実行される例を説明した。ただし、実測データ収集処理、仮想形状生成処理、モデル出力処理は必ずしも、異なるコンピュータで実行される必要はなく、これらの処理が１台のコンピュータで実行されて良い。たとえば３次元モデル生成システムが、３Ｄスキャナと出力装置（ディスプレイ装置あるいは３Ｄプリンタ）が接続された１台のコンピュータで構成されていてもよい。この場合には、このコンピュータに実測データ収集プログラム、仮想形状生成プログラム、モデル出力プログラムをインストールし、この１台のコンピュータで、実測データ収集処理、仮想形状生成処理、仮想形状生成処理を順次実行させることで、上で説明した実施形態と同じことが実現できる。
【０１０７】
また、上で説明した各処理の実行順序は適宜変更されてもよい。たとえば上の説明では、仮想形状データに対応するサイズ情報（身長や胸囲）を、仮想形状生成装置２１が仮想形状生成処理実行時（ステップＳ２０４）に算出しているが、別の例として、モデル出力処理実行時に（たとえばステップＳ３０２の実行時に）サイズ情報の算出が行われてもよい。
【０１０８】
また、上で説明した仮想形状生成処理の説明では、仮想形状データの生成に第１主成分ベクトルと第２主成分ベクトル（及び第１・第２主成分得点）のみを用いる例を説明したが、これは一例に過ぎない。第３主成分以降の主成分ベクトルも仮想形状データの生成に用いられてもよい。
【０１０９】
また、上で説明した実施形態では、モデル出力処理において、仮想形状生成処理で生成された仮想形状データの中からのみ、ユーザの入力した条件に適合するものを検索(選択)しているが、実測データの中にユーザの入力した条件に適合するものが含まれていることもあり得る。そのため、別の実施形態として、仮想形状データに加えて、実測データについてもサイズ情報を生成し、実測データの中にユーザの入力した条件に適合するものが含まれていれば、実測データに基づいて３次元人体形状画像を作成して出力してもよい。たとえば仮想形状生成処理実行時に、形状データ測定装置１１から仮想形状生成装置２１に実測データを送信し、仮想形状生成装置２１において実測データについてサイズ情報を生成するとよい。ただし仮想形状生成装置２１以外の装置で（たとえば形状データ測定装置１１などで）、実測データについてサイズ情報を生成する処理が行われてもよい。また、上で説明した仮想形状生成処理で生成される仮想形状データが、複数の実測データのいずれかと同じになることもあり得る。別の実施形態として、仮想形状生成処理で生成される仮想形状データが、いずれの実測データとも重複しないようにする処理を行ってもよい。たとえば上で説明したステップＳ２０３において、生成された仮想形状データと実測データとを比較して、生成された仮想形状データがいずれかの実測データと重複していた場合に仮想形状データを作り直す処理を行ってもよい。ただし、生成された仮想形状データと実測データとを逐一比較する処理はオーバーヘッドが大きい。また仮想形状生成処理で生成される仮想形状データがいずれかの実測データと重複していたとしても、特段問題にはならないため、仮想形状データが、いずれの実測データとも重複しないようにする処理は必須ではない。
【０１１０】
また、上で説明した実施形態では、３Ｄスキャナなどで計測した実測データ（ＸＹＺ座標値のセット）を、式（４）に示した関数（角θと角φの関数。具体的には「複数の球面調和関数×所定の係数」の線形和）に変換して、変換された関数に含まれる各係数についての主成分分析を行っている。しかし別の実施形態として、実測データを式（４）に示すような関数に変換せず、仮想形状生成処理ではＸＹＺ座標値のセットについて主成分分析を行い、その結果をもとに仮想形状データの生成等を行ってもよい。その場合、式（４）を用いた変換処理は不要になる。しかし、本願発明者による検証結果によると、ＸＹＺ座標値のセットについて主成分分析を行って、その結果をもとに仮想形状データの生成等を行った場合、仮想形状データを生成する際に、多くの主成分ベクトル（第３主成分ベクトル以降の主成分ベクトル）を用いた計算を行わないと、実際の人体に近い形状が得られない等の問題が分かっている。一方、上の実施形態で説明した方法のように、人体形状データを角度（角θと角φ）の関数に変換し、関数の係数を主成分分析した結果を用いて仮想形状データを生成する場合には、第２主成分までを用いれば、比較的実際の人体に近い形状を得ることができる。
【０１１１】
また、人体形状は、性別や年齢によって違いが出ることもある。そのため、例えば実測データ収集処理において男性のみの（あるいは女性のみの）実測データを収集し、仮想形状データの生成においても、男性のみ（あるいは女性のみ）の実測データに基づいた仮想形状データを生成してもよい。そしてモデル出力処理でユーザが人体形状の出力・表示を行う際には、男性の人体形状を出力する場合には男性のみの実測データに基づいた仮想形状データを用いて出力を行う、逆に女性の人体形状を出力する場合には女性のみの実測データに基づいた仮想形状データを用いて出力を行ってもよい。
【０１１２】
また、上では人体形状の分析、生成、出力についての処理を中心に説明してきたが、本発明は人体以外の物体（３次元オブジェクト）の分析、生成、出力に適用することも可能である。さらに２次元オブジェクト（たとえば紙に描かれた人物の形状など）の分析、生成、出力への適用も可能である。
【０１１３】
本願は、日本特許庁に２０１９年４月１０日に出願された特願２０１９−７４９０９号の優先権を主張するものであり、その全内容を参照によりここに援用する。
【符号の説明】
【０１１４】
１  ３次元モデル生成システム
１０  ネットワーク
１１  形状データ測定装置
１２  ３Ｄスキャナ
２１  仮想形状生成装置
３１  モデル提供装置
３３  出力装置
【要約】
本発明の一実施形態に係る３次元モデルの生成方法では、実測により得られたｋ個（ｋは１より大きい整数）の人体形状データの多変量解析を行い、この多変量解析により得られた特徴成分をもとに、Ｎ個（Ｎ＞ｋ）の仮想的な人体形状データを生成する。そして、身体の所定位置のサイズを表すサイズ情報をユーザから受け付けると、Ｎ個の仮想的な人体形状データの中から、サイズ情報に適合する仮想的な人体形状データを選択し、選択された仮想的な人体形状データに基づく人体形状を出力装置に出力する。【図１】
0006698233.tif 000012
【図２】
0006698233.tif 000013
【図３】
0006698233.tif 000014
【図４】
0006698233.tif 000015
【図５】
0006698233.tif 000016
【図６】
0006698233.tif 000017
【図７】
0006698233.tif 000018
【図８】
0006698233.tif 000019
【図９】
0006698233.tif 000020
【図１０】
0006698233.tif 000021
【図１１】
0006698233.tif 000022
【図１２】
0006698233.tif 000023
【図１３】
0006698233.tif 000024