【実施例1】
【0011】
[システム構成]
図1は、実施例1にかかるシステムの全体構成例を説明する図である。
図1に示すように、このシステムは、商品サーバ10とユーザ端末30とがネットワークNを介して相互に通信可能に接続される。なお、商品サーバ10やユーザ端末30の数は、一例であり、図示したもの限定されない。また、ネットワークNには、有線や無線を問わず、インターネットや専用線などの各種通信網を採用することができる。
【0012】
商品サーバ10は、ユーザ端末30に対して、商品の閲覧、試着、購入などの各種サービスを提供するサーバ装置の一例である。例えば、商品サーバ10は、Webブラウザなどを介してユーザ端末5からのアクセスを受け付けると、各種商品の情報が掲載される商品サイトを表示する。そして、商品サーバ10は、Webブラウザにより表示される各ページによって各種サービスを提供する。
【0013】
ユーザ端末30は、指輪やスカーフなどの服飾品の購入を検討するユーザが利用する端末装置の一例であり、例えばカメラなどの撮像部やWebブラウザなどを有する端末装置である。例えば、ユーザ端末30としては、スマートフォン、携帯電話、タブレット、パーソナルコンピュータなどを採用することができる。このユーザ端末30は、Webブラウザなどを用いて、商品サーバ10へアクセスし、商品サーバ10が提供する各種サービスを利用する。
【0014】
ここで、ユーザ端末30は、商品サーバ10から商品に関する情報を取得して、Webブラウザ上で試着サービスを実行する。具体的には、商品サーバ10は、例えば指輪などの商品の値段やサイズなどの商品に関する情報である商品情報と、商品の3次元画像データとを保存する。そして、商品サーバ10は、ユーザ端末30からアクセスを受け付けると、商品情報が掲載される商品サイトをユーザ端末30に表示する。続いて、商品サーバ10は、商品サイトを表示するWebブラウザ上でユーザ端末30から試着対象の商品の選択を受け付けると、当該商品の3次元画像データと制御用のスクリプトを組み込んだ試着ページを、ユーザ端末30に応答する。
【0015】
このようにして、ユーザは、試着対象の商品の3次元画像データと制御スクリプトが組み込まれた試着ページを用いて、ユーザ端末30上で商品の試着を行う。具体的には、ユーザ端末30は、Webブラウザで表示する試着ページ上に、カメラにより撮影される被写体(例えば、手)の映像を表示させる。そして、ユーザ端末30は、商品の3次元画像データから2次元画像データを生成し、Webブラウザ上で、2次元画像データをその被写体の映像に重畳することで、試着を実現する。
【0016】
[利用シーン]
次に、ユーザ端末30を用いて実行される試着サービスの利用シーンを説明する。
図2は、実施例1にかかるシステムの利用シーンを説明する図である。
図2に示すように、ユーザは、商品サーバ10から商品の3次元画像データと制御用のスクリプトを組み込んだ試着ページを取得することで、オンラインに限らず、オフラインの状態であっても試着サービスを利用することができる。
【0017】
例えば、
図2に示すように、自宅のリビングで無線通信を行いながら、指輪の試着サービスを利用することができる。また、恋人同士で婚約指輪を検討する際に、商品サーバ10が提供する試着サービスを利用することにより、様々なブランドの婚約指輪の試着をリビングで繰り返すことができ、店舗に行く前に、購入対象を絞り込むこともできる。また、通勤途中の電車の中で、指輪の試着サービスを利用することができる。
【0018】
このように、商品サーバ10が提供する試着サービスは、実際の店舗に行く必要はなく、Webブラウザを用いて利用することができることから、場所を選ばすに、様々な場所で利用することができる。
【0019】
[機能構成]
次に、
図3を用いて、
図1に示した各装置の機能構成を説明する。
図3は、実施例1にかかるシステムの機能構成を示す機能ブロック図である。ここでは、商品サーバ10とユーザ端末30のそれぞれについて説明する。
【0020】
(商品サーバ10の機能構成)
図3に示すように、商品サーバ10は、通信部11、記憶部12、制御部20を有する。通信部11は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部11は、ユーザ端末30との間で、Webブラウザによるセッションを確立し、Webブラウザを介してデータの送受信を実行する。
【0021】
記憶部12は、各種データや制御部20が実行する各種プログラムなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部12は、商品情報DB13、画像データDB14を記憶する。
【0022】
商品情報DB13は、商品サーバ10が取り扱う各商品に関するデータを記憶するデータベースである。具体的には、商品情報DB13は、各服飾品に関するデータを記憶する。
図4は、商品情報DB13に記憶される情報の例を示す図である。
図4に示すように、商品情報DB13は、「商品ID、商品、価格」などを対応付けて記憶する。
【0023】
ここで記憶される「商品ID」は、商品を識別する識別子であり、「商品」は、商品名などであり、「価格」は、商品の価格である。
図4の例では、商品ID「ID01」で識別される商品「指輪A」の価格が「3万円」であることを示す。
【0024】
画像データDB14は、各商品の3次元の画像データ(以下では単に「3次元画像データ」と記載する場合がある)を記憶するデータベースである。具体的には、画像データDB14は、試着サービスの利用時にユーザ端末30に仮想オブジェクトとして送信される3次元画像データを記憶する。
【0025】
図5は、画像データDB14に記憶される情報の例を示す図である。
図5に示すように、画像データDB14は、「商品ID、商品、3次元画像データ」を対応付けて記憶する。ここで記憶される「商品ID」は、商品情報DB13の商品IDと同じであり、商品を識別する識別子である。「商品」は、商品情報DB13の商品と同じであり、商品名などである。「3次元画像データ」は、商品の3次元画像データである。
図5の例では、商品ID「ID01」で識別される商品「指輪A」には、画像データ「3次元画像データA」が対応付けられていることを示す。なお、3次元画像データは、商品そのものを撮像したデータから作成したり、仮想空間上で作成したり、公知の手法を用いて作成することができる。
【0026】
制御部20は、商品サーバ10全体を司る処理部であり、例えばプロセッサなどである。この制御部20は、受付部21、応答部22を有する。なお、受付部21、応答部22は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。また、制御部20は、アクセスしてきたユーザが正規なユーザであるか否かを認証する認証処理、ユーザが購入する意思を示したときに実行される商品の購入処理なども実行するが、一般的な処理なので、詳細な説明は省略する。
【0027】
受付部21は、ユーザ端末30からの要求に応じて、各種Webページをユーザ端末30に表示し、ユーザ端末30からの各種操作を受け付ける処理部である。具体的には、受付部21は、ユーザ端末30からWebブラウザ等を用いたアクセスを受け付けると、商品サイトをユーザ端末30に表示する。そして、受付部21は、商品サイト上で商品の選択を受け付けると、商品の詳細情報が掲示される商品ページをユーザ端末30に表示する。このようにして、受付部21は、ユーザの操作に対応するWebページ等を表示する。
【0028】
応答部22は、ユーザ端末30から商品の試着要求を受け付けた場合に、試着サービスを提供する各種情報をユーザ端末30に応答する処理部である。具体的には、応答部22は、受付部21により表示された商品ページにおいて、ユーザにより試着の選択が行われると、試着が要求された商品の3次元画像データを画像データDB14から取得する。そして、応答部23は、仮想オブジェクトとして利用される商品の3次元画像データと、商品の3次元画像データの操作に関する制御用のスクリプトとを組み込んだ試着ページを、ユーザ端末30に応答する。
【0029】
ここで、表示されるWebページの遷移を説明する。
図6は、表示されるWebページの遷移を説明する図である。
図6の(a)に示すように、受付部21は、ユーザ端末30からアクセスを受け付けると、各商品が掲載される商品サイト60をユーザ端末30に表示する。なお、商品サイト60には、画面をスクロールするスライダーなども表示される。
【0030】
続いて、
図6の(b)に示すように、受付部21は、商品サイト60上で商品「指輪A」が選択されると、選択された商品「指輪A」の詳細情報を商品情報DB13から取得して、商品「指輪A」の詳細情報が掲載される商品ページ61をユーザ端末30に表示する。なお、商品ページ61には、前の画面に戻る「戻る」ボタン、商品の購入に進む「購入」ボタン、商品の試着に進む「試着」ボタンなども表示される。
【0031】
その後、
図6の(c)に示すように、商品ページ61上で「試着」ボタンが選択されると、応答部22は、表示中の商品「指輪A」の3次元画像データAを画像データDB14から取得して、3次元画像データAと試着を行うための各種制御を制御用のスクリプトとを組み込んだ、商品「指輪A」の試着を行う試着ページ62を表示する。なお、制御用のスクリプトで実行される各種処理は、ユーザ端末30で説明する各種処理部の機能を提供する。なお、この試着ページ62には、試着ページ62をディスプレイに表示するユーザ端末30のカメラと連携し、カメラの撮影対象の領域を含むとともに、当該領域に商品「指輪A」の仮想オブジェクトが表示される。なお、試着ページ62には、前の画面に戻る「戻る」ボタン、商品の購入に進む「購入」ボタンなども表示される。
【0032】
(ユーザ端末30の機能構成)
図3に示すように、ユーザ端末30は、通信部31、撮像部32、記憶部33、制御部40を有する。
【0033】
通信部31は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部31は、商品サーバ10との間で、Webブラウザによるセッションを確立し、Webブラウザを介してデータの送受信を実行する。
【0034】
撮像部32は、カメラなどを用いて撮像された画像や映像などの2次元画像データを取得する処理部である。例えば、撮像部32は、試着を行うユーザの手、顔、身体などを撮像し、撮像した画像データを、制御部40に出力する。
【0035】
記憶部33は、各種データや制御部40が実行する各種プログラムなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。例えば、この記憶部33は、商品サーバ10から受信した商品の3次元画像データや、撮像部32により撮像された画像データなどを記憶する。
【0036】
制御部40は、ユーザ端末30全体を司る処理部であり、例えばプロセッサなどである。この制御部40は、アクセス部41と試着制御部42を有する。なお、アクセス部41と試着制御部42は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
【0037】
アクセス部41は、商品サーバ10との間で、Webブラウザを用いた各種制御を実行する処理部である。例えば、アクセス部41は、ユーザの指示操作により、Webブラウザを起動し、商品サーバ10にアクセスする。そして、アクセス部41は、商品サーバ10から受け付けた商品サイト60や商品ページ61をディスプレイ等に表示する。また、アクセス部41は、試着対象の商品の3次元画像データと制御用のスクリプトが組み込まれた試着ページ62を受け付けると、試着ページをディスプレイ等に表示する。
【0038】
試着制御部42は、2次元画像生成部43と表示制御部44を有し、ユーザ端末30のディスプレイ上で、試着サービスを実行する処理部である。具体的には、試着制御部42は、アクセス部41により試着ページ62が取得されると、試着ページ62に組み込まれる制御用のスクリプトを実行して、2次元画像生成部43と表示制御部44とによる処理を実行することで、試着対象の商品の2次元画像データを生成する仮想空間を用いた制御と、その2次元画像データをディスプレイに実際に表示する制御とを、リアルタイムに連携して試着サービスを実行する。
【0039】
2次元画像生成部43は、各商品について、試着サービスで使用する仮想オブジェクトの2次元画像データを生成する処理部である。具体的には、2次元画像生成部43は、アクセス部41により取得された試着ページ62から、商品サーバ10によって送信された商品の3次元画像データを取得する。そして、2次元画像生成部43は、コンピュータ上でシミュレートした3次元の仮想空間上に、当該商品の3次元画像データを仮想オブジェクトとして配置する。そして、2次元画像生成部43は、3次元の仮想空間上に配置した仮想カメラを用いて、商品の仮想オブジェクトを撮像し、2次元画像データを生成する。また、2次元画像生成部43は、撮影して得られた商品の2次元画像データを、表示制御部44などに出力する。なお、3次元的な仮想空間のシミュレートや仮想カメラなどは、公知のソフトウェアなどを用いることもできる。
【0040】
図7は、仮想オブジェクトの2次元画像データを生成する例を説明する図である。
図7に示す図は、商品の仮想オブジェクトの2次元画像データを生成する3次元の仮想空間を上から見た図であり、仮想空間上に配置した複数の仮想カメラを用いて商品となるオブジェクトを撮像する。
図7に示すように、仮想空間上で仮想カメラ1と仮想カメラ1´とを同位置に設置する。そして、仮想カメラ1が撮影できる領域Pと仮想カメラ1´が撮影できる領域P´との境界上に仮想オブジェクト(3次元画像データ)を配置する。なお、仮想オブジェクトは、任意の方向に回転させることができる。また、仮想オブジェクトのうち、各仮想カメラが撮影できる領域から外れた部分は、その仮想カメラの映像には映らない。そして、仮想オブジェクトを回転させて、各仮想カメラで仮想オブジェクトを撮影し、撮影された画像を組み合わせることで、仮想オブジェクトの2次元画像データを生成する。
【0041】
より詳細に説明する。仮想空間上における仮想オブジェクトの中心座標を(x=0,y=0,z=100)と設定し、仮想オブジェクトは、仮想空間上で様々な方向に自転することができ、自転しても中心座標は変わらない。また、2つの仮想カメラ(仮想カメラ1、仮想カメラ1´)は、仮想空間上の(x=0,y=0,z=0)の位置にあり(x=0,y=0,z=100)の方向を撮影する。
【0042】
そして、仮想カメラ1は、z≧10からz≦100までの領域を撮影し映像化し、z<10またはz>100の領域は映らない。仮想カメラ1´は、z>100からz≦200までの領域を撮影し映像化し、z≦100またはz>200の領域は映らない。すなわち、仮想カメラ1からは、z≧10からz≦100までの領域に含まれる仮想オブジェクトのうち一部分が映り、それ以外が透過された映像が得られる。仮想カメラ1´からは、z>100からz≦200までの領域に含まれる仮想オブジェクトの一部分が映り、それ以外が透過された映像が得られる。
【0043】
そして、仮想カメラ1と仮想カメラ1´の映像をそれぞれHTML(Hyper Text Markup Language)上のcanvas要素に出力し、画面に表示することで、仮想カメラ1の映像を出力したcanvasと仮想カメラ1´の映像を出力したcanvasとが、画面上で同じ位置に重なって表示されるようレイアウトされる。
【0044】
このように、2次元画像生成部43は、シミュレーションした3次元空間上に試着対象として選択された商品の仮想オブジェクトを配置し、2つの仮想カメラで撮影した画像を組み合わせて、商品の2次元画像データを生成する。
図8は、生成される2次元画像データを説明する図である。
図8に示すように、2次元画像生成部43は、仮想カメラ1から得られる映像と、仮想カメラ1´から得られる映像とを合成して、1つの2次元画像データを生成する。なお、1つの2次元画像データのうち、仮想カメラ1で撮影された映像(データ)の領域が被写体よりも常に優先表示される優先領域となる。
【0045】
上述したように、仮想空間上の各仮想カメラは、仮想空間上の仮想オブジェクトを常に撮像して、3次元画像データである仮想オブジェクトのリアルタイムな2次元画像データを生成する。
【0046】
ここで、2次元画像データの生成タイミングについて具体的に説明する。例えば、2次元画像生成部43は、試着サービス開始時は、仮想空間上の所定位置に、予め定めたデフォルトの姿勢で仮想オブジェクトを配置して、2次元画像データを生成する。
【0047】
また、2次元画像生成部43は、試着ページ62に表示される仮想オブジェクトの2次元画像データに対してユーザが操作すると、当該操作に応じて、仮想空間上の仮想オブジェクト(3次元画像データ)の姿勢を変更して、2次元画像データを生成する。より詳細には、2次元画像生成部43は、試着ページ62に表示される仮想オブジェクトの2次元画像データに対するフリック操作を検出すると、フリック操作に応じた距離だけ、仮想空間上の仮想オブジェクトを回転させる。そして、2次元画像生成部43は、回転後の姿勢の仮想オブジェクトを撮影して2次元画像データを生成する。
【0048】
図3に戻り、表示制御部44は、ユーザ端末30のディスプレイに表示される試着ページ62の表示制御に関する各種処理を実行する処理部である。具体的には、表示制御部44は、仮想オブジェクトの2次元画像データを表示する表示処理、試着を行う被写体を検出する検出処理、2次元画像データを用いた試着を行う試着処理などを実行する。
【0049】
(表示処理)
例えば、表示制御部44は、2次元画像生成部43により生成された仮想オブジェクトの2次元画像データを、試着ページ62の予め指定された位置に表示する処理部である。すなわち、表示制御部44は、2次元画像生成部43が随時生成する2次元画像データを、ディスプレイに表示される試着ページ62にリアルタイムに表示する。
【0050】
(検出処理)
また、表示制御部44は、カメラ等により撮像された画像データから被写体を検出する。例えば、表示制御部44は、ユーザ端末30の撮像部32により取得される2次元画像である画像データを試着ページ62に表示し、表示される画像データから、時系列に変化する被写体を検出する。具体的には、表示制御部44は、カメラにより撮影された画像データから、被写体の輪郭、肌色等の指定された色の領域、予め定めておいた型と類似する領域などの様々な手法を用いて、手などの被写体を検出する。
【0051】
ここで、被写体の検出手法の一例として、(1)特定の色と類似する領域を検出する手法、(2)特徴量抽出を用いた手法、(3)背景差分を用いる手法を説明する。
【0052】
(1)特定の色と類似する領域を検出する手法
例えば、表示制御部44は、あらかじめ決めておいた基準の色と合致する画素だけを、被写体と判断することができる。具体的には、表示制御部44は、検出対象のRGB値(画素値)の範囲を予め保持する。そして、表示制御部44は、撮像された画像データの各画素を参照して検出対象のRGB値の範囲内か否かを判定する。そして、表示制御部44は、検出対象のRGB値の範囲内と判定された各画素を、被写体と判定する。
【0053】
また、表示制御部44は、撮像された画像データ上でユーザの選択を受け付ける。そして、表示制御部44は、選択された画素のRGB値を中央値として所定の範囲を検出対象に決定する。その後、表示制御部44は、撮像された画像データの各画素を参照して、検出対象のRGB値の範囲内の各画素を、被写体と判定する。このようにして、表示制御部44は、画像データの各画素を参照して、被写体(例えば手)の輪郭を検出することができる。なお、所定の範囲等は、任意に設定変更することができる。
【0054】
(2)特徴量抽出を用いた手法
例えば、表示制御部44は、画像データの中から特徴を検出し、あらかじめ決めておいた被写体の特徴との類似度を比較し、類似する部分を被写体と判断することもできる。具体的には、表示制御部44は、画素同士の明暗差の並びのパターンを特徴とする手法(Haar Like特徴)、画素同士の輝度の分布を特徴とする手法(Local Binary Pattern特徴)、輝度の方向(画像データの中のグラデーションのつき方)の組み合わせ方を特徴とする手法(Histogram of Oriented Gradients特徴)などを用いることができる。
【0055】
(3)背景差分を用いる手法
例えば、表示制御部44は、時系列に沿って画像を比較し、差分がある領域を被写体として検出することができる。具体的には、表示制御部44は、例えば1秒おきに画像データを撮像部32から順次取得する。そして、表示制御部44は、前後の各画像データを比較し、画像データの中で動きがあった領域を被写体と判定することができる。
【0056】
(試着処理)
また、表示制御部44は、試着ページ62上に、2次元画像生成部43により生成される仮想オブジェクトの2次元画像データと、カメラ等によりリアルタイムに撮影された画像データから検出された被写体とを表示し、仮想オブジェクトの試着を実行する。
【0057】
例えば、表示制御部44は、撮影された画像データから随時認識される被写体の画像データとともに、予め決められた表示位置に商品に対応する2次元画像データを表示する。そして、表示制御部44は、表示されている被写体と2次元画像データの表示が重なったときに、当該重なった領域のうち、優先的に表示させる仮想カメラ1で撮影された2次元画像データの領域を被写体に優先して表示するとともに、それ以外の2次元画像データの領域を非表示する。
【0058】
[具体例]
次に、
図9から
図12を用いて、一例として、指輪Aの試着を行う具体例で説明する。ここでは、ユーザ操作、ディスプレイ制御、試着における画面遷移例、試着例を順に説明する。
【0059】
(ユーザ操作)
図9は、試着イメージを説明する図である。
図9に示すように、ユーザ端末30の表示制御部44は、ディスプレイに表示される試着ページ62に、2次元画像生成部43により生成された指輪Aの2次元画像データQを表示する。ユーザが、このユーザ端末30のカメラを用いて自分の手を撮影することで、表示制御部44が、被写体であるユーザの手を検出して、試着ページ62に表示する。そして、ユーザが、カメラで撮影しながら自分の手を移動させると、表示制御部44が、時系列で撮影された各画像データからユーザの指を随時検出して試着ページ62に表示する。この結果、ユーザは、カメラで手を撮影しながら、試着ページ62上で指に指輪(2次元画像データQ)をはめることで、試着を行う。
【0060】
(ディスプレイ制御)
ここで、ユーザ端末30の試着制御部42は、Webブラウザを介して、カメラなどによりリアルタイムに撮像された指の状態を取得し、ユーザ端末30のディスプレイ上で試着を実現する。
図10は、商品に対応する2次元画像データの試着の構成を説明する図である。
【0061】
図10に示すように、表示制御部44は、ユーザ端末30で撮影された実オブジェクトの映像(レイヤー3)から、検出された被写体(手)のみの領域を示す映像(レイヤー2)を切り抜く。そして、表示制御部44は、2次元画像生成部43により生成された商品の仮想オブジェクトの2次元画像データのうち優先的に表示されないレイヤー1´の映像、レイヤー3から切り抜かれた被写体(手)のみの領域を示す映像(レイヤー2)、当該商品に対応する2次元画像データのうち優先的に表示されるレイヤー1の映像を順に重ねて1つの画面に映し出す。なお、表示制御部44は、レイヤー1´、レイヤー2、レイヤー1については、表示対象のオブジェクトや手以外の領域を透明にすることで、各レイヤーを重ねても下のレイヤーが映るように制御する。また、表示制御部44は、試着ページ62の背景として、カメラで手を撮影しているときの背景を表示することもでき、予め用意しておいた別の背景を表示することもできる。
【0062】
(試着における画面遷移例)
次に、実際の試着例について説明する。
図11は、試着の遷移を説明する図である。
図11の(a)に示すように、試着制御部42は、レイヤー1の映像とレイヤー1´の映像とを組み合わせた指輪Aの2次元画像データ(
図11の説明では単に指輪Aと記載する場合がある)を予め指定した領域に表示させた試着ページ62上で、ユーザ端末30のカメラで撮像された映像を表示させ、被写体である手を検出する。
【0063】
続いて、
図11の(b)に示すように、試着制御部42は、ユーザの操作によって手が指輪Aに近づき、ユーザの指が指輪Aと重なり始めると、指輪Aのレイヤー1´の部分より手を優先させて表示する。この結果、指輪Aのレイヤー1´の部分の上に、ユーザの指が表示される。
【0064】
その後、
図11の(c)に示すように、試着制御部42は、ユーザの操作によって手が指輪Aに近づき、ユーザの指が指輪Aと完全に重なると、指輪Aのレイヤー1´の部分より手を優先させて表示するとともに、指輪Aのレイヤー1の部分を手より優先させて表示する。
【0065】
この結果、試着制御部42は、指輪Aが指に装着しているように表示することができる。なお、試着制御部42は、指輪Aのレイヤー1´の部分について、指と重なっている部分だけを非表示とするので、指の太さ等により、非表示となる領域の大きさが変わる。したがって、ユーザごとの各指に適した装着感を提供することができる。
【0066】
(試着例)
次に、試着制御部42は、指輪などの商品に対応する2次元画像データ(
図12の説明では、単に指輪と記載する場合がある)を様々な方向に動かすことができるので、様々な方向からの試着をユーザに提供することができる。
図12は、試着の別例を説明する図である。
【0067】
図12に示すように、ユーザ端末30の表示制御部44は、試着ページ62に、指輪を横方向に回転させるスライダーAと指輪を上下方向に回転させるスライダーBとを表示する。これらのスライダーにより、指輪を様々な向きに変更することができる。例えば、表示制御部44は、スライダーが操作されると、操作方向や操作距離を検出して2次元画像生成部43に出力する。2次元画像生成部43は、入力された操作方向や操作距離に応じて、仮想空間上に配置した仮想オブジェクトの姿勢を変更し、変更後の姿勢の仮想オブジェクトを撮影して2次元画像データを生成する。そして、表示制御部44は、新たな2次元画像データを試着ページ62に表示する。このように、試着ページ62のユーザ操作を仮想空間にリアルタイムに通知して、仮想オブジェクトの姿勢を動的に変更することができるので、ユーザは、試着ページ62上であたかも商品を動かしているかのように認識することができる。なお、指輪の回転等の操作は、スライダーに限らず、指輪を選択した状態でのフリック操作を採用することができる。
【0068】
ユーザ端末30の試着制御部42は、指輪を横向きにした状態で、ユーザの手を検出することで、横から見た試着を提供する。ここでも、試着制御部42は、指輪のレイヤー1´の部分より手を優先させて表示するとともに、指輪のレイヤー1の部分を手より優先させて表示する。
【0069】
また、試着制御部42は、指輪を裏側にした状態で、すなわち手のひら側の指輪が見える状態で、ユーザの手を検出して、裏側から見た試着を提供する。ここでも、試着制御部42は、指輪のレイヤー1´の部分より手を優先させて表示するとともに、指輪のレイヤー1の部分を手より優先させて表示する。なお、
図12に示すように、裏側の場合、通常時とレイヤーの映像の位置が逆となるが、レイヤー1の映像は常に優先され、レイヤー1´の映像は常に優先されないので、通常時と同様に、仮想的に正しく装着した映像を提供できる。
【0070】
なお、ここでは、スライダーを用いて、指輪を回転させる例を説明したが、これに限定されるものではない。例えば、2次元画像生成部43は、表示される指輪に対するフリック操作等により指輪の姿勢や向きを変更した2次元画像データを生成することもできる。また、ディスプレイの任意の領域をフリック操作することにより、操作されたフリックの向きに合わせて、指輪の姿勢等を変更した2次元画像データを生成することもできる。また、ダブルクリックやピンチアウト操作等に応じて、2次元画像生成部43が2次元画像データの拡大縮小を行うことで、試着ページ62に表示される指輪を拡大縮小させることもできる。
【0071】
[処理の流れ]
図13は、試着処理の流れを示すシーケンス図である。
図13に示すように、ユーザ端末30のアクセス部41は、ユーザ操作により、Webブラウザを用いて商品サーバ10のサイトへアクセスする(S101とS102)。すると、商品サーバ10の受付部21は、各商品が掲示される商品サイト60をユーザ端末30に表示する(S103とS104)。
【0072】
その後、ユーザ端末30において、商品サイト60上で商品が選択されると(S105とS106)、商品サーバ10の受付部21は、選択された商品の商品ページ61をユーザ端末30に表示する(S107とS108)。
【0073】
そして、ユーザ端末30において、商品ページ61上で試着ボタンが選択されると(S109とS110)、商品サーバ10の応答部23は、選択された商品の3次元画像データと制御用のスクリプトとを組み込んだ試着ページ62を、ユーザ端末30に応答する(S111とS112)。
【0074】
このようにして、ユーザ端末30の試着制御部42は、試着ページ62を取得すると(S113)、試着ページ62に含まれる3次元画像データを用いて、商品に対応する2次元画像データを生成する(S114)。
【0075】
その後、ユーザ端末30の試着制御部42は、商品サーバ10から送信された制御用スクリプトを用いて、商品の2次元画像データを表示させた試着ページ62をディスプレイ等に表示する(S115)。
【0076】
続いて、ユーザ端末30の試着制御部42は、手の撮像(S116)、商品の2次元画像データを回転させたりする操作(S117)、商品の試着確認(S118)などを実行して試着サービスを実行する。
【0077】
そして、ユーザ端末30上で試着が繰り返される間(S119:No)、S116以降が繰り返され、ユーザ端末30上で試着終了の操作が実行されると(S119:Yes)、試着サービスを終了する(S120)。
【0078】
[効果]
上述したように、ユーザ端末30は、場所や時間を選ばずに、商品の試着サービスを実行することができる。また、ユーザ端末30は、各ユーザの指の大きさなどに応じて、商品に対応する2次元画像データの非表示とする部分を動的に制御することができるので、実際の指輪装着と同じような装着感を提供することができる。これらの結果、ユーザ端末30は、試着サービスにおける装着感を高めて購買を促進することができる。
【実施例2】
【0079】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【0080】
[商品例]
上記例では、指輪を例にして説明したが、これに限定されるものではない。例えば、スカーフ、ブレスレット、アンクレット、イヤリング、ピアス、時計、帽子などの服飾品も同様に処理することができる。また、これらの服飾品は、ユーザが自分で手などの一部分を用いた試着を行うが、洋服などユーザ全体を撮影して試着を行う商品も採用することができる。例えば、乳幼児、被介護者などを撮影して、洋服の試着などを行うこともできる。また、人間に限らず、ペットの洋服や服飾品も採用することができる。
【0081】
[数値等]
上記実施例で用いたデータ例、数値例、表示例等は、あくまで一例であり、任意に変更することができる。例えば、各種Webページの構成等は一例であり、任意に変更することができる。被写体も指に限らず、スカーフの時は首、時計の時は手首のように、商品によって検出する被写体を変更することができる。例えば、商品サーバ10や試着制御部42が、商品と検出対象の被写体とを対応付けて管理することで、試着する商品によって、検出対象を動的に変更することができる。
【0082】
[商品の操作]
また、商品に対応する2次元画像データが被写体とともに表示されているときでも当該商品の表示姿勢の指示が可能である。例えば、試着制御部42は、指輪(2次元画像データ)が指と重なっている状態であっても、試着ページ62上で指輪の回転などの操作を受け付けると、仮想空間上で回転等を行って回転後の2次元画像データを生成して、試着ページ62に表示することができる。このときの回転後の2次元画像データにおいても、レイヤー1の映像が優先的に表示される。なお、ディスプレイ上でユーザによって操作された領域を特定する手法は、公知の手法を採用することができる。
【0083】
また、試着制御部42は、指輪の2次元画像データが指を装着できないような姿勢で試着ページ62に表示されるときは、時系列で撮影される各画像データから認識された指(被写体)の認識結果を用いて、試着ページ62上で指の向きや移動方向等を検出し、仮想空間上の仮想オブジェクトの姿勢を装着可能な姿勢に修正した上で2次元画像データの生成を行って、試着ページ62に表示することもできる。この結果、ユーザ操作により指輪(2次元画像データ)の姿勢が正しくない場合でも、試着可能な姿勢に動的に補正することができる。
【0084】
[サイト例]
上記実施例で説明したWebサイトやWebページには、HTML(HyperText Markup Language)などで記述されたサイトやページを採用することができる。また、制御用のスクリプトとしては、JavaScript(登録商標)などを採用することができる。また、仮想空間に限らず、商品を各方向から撮影した2次元画像データを予め用意しておき、試着ページ62に表示することもできる。
【0085】
[適用システム]
上記実施例では、商品の閲覧、試着、購入を行うEC(Electronic Commerce)サイトを例にして説明したが、これに限定されるものではない。例えば、試作品や、現品を作る前にデザインの段階で、仮想オブジェクトとする3次元画像データを生成することで、上記試着サービスと同等のサービスを提供することができる。この結果、商品の大量生産を行う前に、デザインの修正や相談を行うことができるので、不要なコストの削減や製造工程を効率化することができる。
【0086】
また、商品サーバ10上で試着サービスを提供することもできる。具体的には、商品サーバ10が、ユーザ端末30と試着制御部42と同等の処理部を有し、Webブラウザを用いて、ユーザ端末30に試着サービスを提供する。また、ユーザ端末30は、ユーザ端末30は、制御用のスクリプトがすでに組み込まれたWebブラウザを用いて、商品の3次元画像データを商品サーバ10から取得して試着サービスを実行することもできる。
【0087】
また、上記例では、ユーザ端末30が、1つの商品の3次元画像データを商品サーバ10から取得する例を説明したが、これに限定されず、複数の商品それぞれの3次元画像データを商品サーバ10から取得することもできる。例えば、ユーザ端末30は、試着対象の指輪を3つ選択して、それぞれの3次元画像データを商品サーバ10から取得する。ユーザ端末30は、ユーザの指示操作により、対象商品を切替えて、試着サービスを実行することができる。
【0088】
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0089】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、オブジェクト生成、試着サービス、商品管理などを別々のサーバで実現することもできる。
【0090】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0091】
[ハードウェア]
図14は、ハードウェア構成例を説明する図である。商品サーバ10とユーザ端末30とは同様のハードウェア構成を有するので、ここでは、コンピュータ100として説明する。
図14に示すように、コンピュータ100は、通信装置100a、HDD(Hard Disk Drive)100b、メモリ100c、プロセッサ100dを有する。また、
図14に示した各部は、バス等で相互に接続される。
【0092】
通信装置100aは、ネットワークインタフェースカードなどであり、他の装置との通信を行う。HDD100bは、
図3に示した機能を動作させるプログラムやDBを記憶する。
【0093】
プロセッサ100dは、
図3に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、
図3等で説明した各機能を実行するプロセスを動作させる。例えば、ユーザ端末30を例にして説明すると、このプロセスは、ユーザ端末30が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、アクセス部41と試着制御部42等と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、アクセス部41と試着制御部42等と同様の処理を実行するプロセスを実行する。
【0094】
このように、コンピュータ100は、プログラムを読み出して実行することで試着制御方法を実行する情報処理装置として動作する。また、コンピュータ100は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、コンピュータ100によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。