以下、本発明の実施形態の例について図面に基づき詳細に説明する。ここでは、本発明を電子商取引システムに適用した場合について説明する。すなわち、複数の店舗が出店する仮想的な商店街を実現する電子商取引システムにおいて、本発明の実施形態に係る衣服画像処理システムを実現する場合の例について説明する。
図1は、本発明の実施形態に係る電子商取引システムの全体構成を示す。図1に示すように、本実施形態に係る電子商取引システム1(衣服画像処理システム)は、サーバ10、データベース16、ユーザ端末20、及び店舗端末4を含む。なお、図1では省略されているが、実際には複数のユーザ端末20及び複数の店舗端末4が電子商取引システム1に含まれる。
サーバ10、ユーザ端末20、及び店舗端末4は、例えばインターネット等を含んで構成される通信ネットワーク2に接続される。サーバ10とユーザ端末20との間で相互にデータ通信が可能である。サーバ10と店舗端末4との間でも相互にデータ通信が可能である。
サーバ10は、例えば仮想商店街のポータルとして機能する仮想商店街サーバである。サーバ10は、ユーザ端末20又は店舗端末4から受信した処理要求に基づく処理を実行する。サーバ10は制御部11、主記憶部12、補助記憶部13、通信部14、及び光ディスクドライブ部15を含む。
制御部11は例えば1又は複数のCPUを含み、補助記憶部13に記憶されたオペレーションシステム又はプログラムに従って情報処理を実行する。主記憶部12は例えばRAMであり、補助記憶部13は例えばハードディスク又はソリッドステートドライブである。通信部14は通信ネットワーク2を介してデータ通信を行うためのものである。光ディスクドライブ部15は、光ディスク(情報記憶媒体)に記録されたプログラムやデータを読み出すためのものである。
プログラムやデータは光ディスク(情報記憶媒体)を介して補助記憶部13に供給される。すなわち、光ディスクに記憶されたプログラムやデータが光ディスクドライブ部15によって読み出され、補助記憶部13に記憶される。なお、サーバ10は、光ディスク以外の情報記憶媒体(例えばメモリカード)に記憶されたプログラム又はデータを読み出すための構成要素を含むようにしてもよい。そして、光ディスク以外の情報記憶媒体(例えばメモリカード)を介してプログラムやデータが補助記憶部13に供給されるようにしてもよい。また、プログラム及びデータは通信ネットワーク2を介して補助記憶部13に供給されるようにしてもよい。
サーバ10はデータベース16にアクセスできるようになっている。データベース16はサーバ10に構築されていてもよいし、サーバ10とは別のサーバに構築されていてもよい。データベース16には、例えば、仮想商店街を利用するユーザの情報、仮想商店街に出店している店舗の情報、仮想商店街で取り扱っている商品の情報や、仮想商店街で行われた取引の情報等が記憶される。図2及び図3はデータベース16に記憶されるデータの一例を示す。
図2は店舗テーブルの一例を示す。仮想商店街に出店している店舗の情報が店舗テーブルに登録される。図2に示す店舗テーブルは「店舗ID」、「名称」、「住所」、及び「URL」フィールドを含んでいる。
「店舗ID」フィールドは、仮想商店街に出店している店舗を識別するための識別情報(店舗ID)を示す。「名称」フィールドは店舗の名称を示す。「住所」フィールドは店舗の住所を示す。「URL」フィールドは店舗のウェブページへのリンク情報(URL)を示す。
図3は商品テーブルの一例を示す。仮想商店街で取り扱われている商品の情報が商品テーブルに登録される。図3に示す商品テーブルは「商品ID」、「店舗」、「名称」、「カテゴリ」、「価格」、「在庫」、及び「URL」フィールドを含んでいる。
「商品ID」フィールドは商品を一意に識別する識別情報(商品ID)を示す。「店舗」フィールドは商品を取り扱っている店舗の店舗IDを示す。「名称」フィールドは商品の名称を示す。「カテゴリ」フィールドは商品のメインカテゴリ及びサブカテゴリを示す。「価格」フィールドは商品の価格を示し、「在庫」フィールドは商品の在庫を示す。「URL」フィールドは商品のウェブページへのリンク情報(URL)を示す。
店舗端末4は、仮想商店街に出店する店舗側に設けられた情報処理装置である。店舗端末4は、例えばパーソナルコンピュータ等である。店舗端末4は、仮想商店街で販売する商品の情報等をサーバ10を介してデータベース16に登録するために用いられる。例えば、店舗端末4ではサーバ10から提供される専用画面が表示される。店舗側の管理者は、この専用画面において、店舗の情報や商品の情報等を入力できるようになっている。
ユーザ端末20はユーザによって使用される情報処理装置である。例えば、ユーザ端末20は携帯電話(スマートフォンを含む)、携帯情報端末、又はパーソナルコンピュータ等である。なお以下では、ユーザ端末20が携帯電話(スマートフォン)であることとして説明する。
ユーザ端末20は制御部21、主記憶部22、補助記憶部23、通信部24、表示部25、撮影部26、及び操作部27を含む。制御部21、主記憶部22、補助記憶部23、及び通信部24はサーバ10の制御部11、主記憶部12、補助記憶部13、及び通信部14と同様である。
プログラム及びデータは通信ネットワーク2を介して補助記憶部23に供給される。なお、ユーザ端末20は光ディスクドライブ部を備えるようにしてもよい。そして、プログラムやデータが光ディスク(情報記憶媒体)を介して補助記憶部23に供給されるようにしてもよい。また、ユーザ端末20は、光ディスク以外の情報記憶媒体(例えばメモリカード)に記憶されたプログラム又はデータを読み出すための構成要素を含むようにしてもよい。そして、光ディスク以外の情報記憶媒体(例えばメモリカード)を介してプログラムやデータが補助記憶部23に供給されるようにしてもよい。
表示部25は例えば液晶ディスプレイ又は有機ELディスプレイ等であり、各種画面を表示する。撮影部26は例えばデジタルカメラ等である。撮影部26は静止画を撮影することが可能である。撮影部26は動画を撮影することも可能である。例えば、撮影部26は所定時間(例えば1/60秒)ごとに撮影を行う。すなわち、撮影部26は、1秒ごとのフレーム数が所定数(例えば60)である動画を撮影する。撮影部26によって撮影された静止画又は動画は補助記憶部13に保存される。
操作部27はユーザが操作を行うためのものである。例えば、表示部25に表示される画面内の位置をユーザが指示するためのポインティングデバイスが操作部27として備えられる。例えば、表示部25の上に重ねて設けられるタッチパネルがユーザ端末20に備えられる。なお、タッチパネルの代わりに、例えばマウス、スティック、又はタッチパッド等がユーザ端末20に備えられるようにしてもよい。
電子商取引システム1では、ユーザが様々なコーディネート(衣服・靴の組合せ)を確認しながら衣服や靴を購入できるようになっている。以下、この機能について説明する。
図4は、ユーザ端末20の表示部25に表示されるコーディネート画面の一例を示す。図4に示すコーディネート画面30はサーバ10からユーザ端末20に送信されるデータに基づいて表示される。
図4に示すようにコーディネート画面30にはトップス画像32A、ボトムス画像32B、及び靴画像32Cの組合せが表示される。トップス画像32Aは、仮想商店街で販売されているトップスのうちから選択されたトップスの画像である。同様に、ボトムス画像32Bは、仮想商店街で販売されているボトムスのうちから選択されたボトムスの画像であり、靴画像32Cは、仮想商店街で販売されている靴のうちから選択された靴の画像である。
また、コーディネート画面30には、進むボタン34A,34B,34Cと、戻るボタン36A,36B,36Cとが表示されている。ユーザはこれらのボタンを押下することによって、コーディネート画面30に表示されるトップス画像32A、ボトムス画像32B、及び靴画像32Cの組合せを変えることができる。
コーディネート画面30では複数種類のトップス画像32Aが所定の順序に従って表示されるようになっている。進むボタン34A及び戻るボタン36Aは、コーディネート画面30に表示されるトップス画像32Aを変えるためのボタンである。進むボタン34Aが押下された場合、次のトップス画像32Aがコーディネート画面30に表示される。一方、戻るボタン36Aが押下された場合には、一つ前のトップス画像32Aがコーディネート画面30に表示される。
同様に、コーディネート画面30では複数種類のボトムス画像32Bが所定の順序に従って表示されるようになっている。進むボタン34B及び戻るボタン36Bは、コーディネート画面30に表示されるボトムス画像32Bを変えるためのボタンである。進むボタン34Bが押下された場合、次のボトムス画像32Bがコーディネート画面30に表示される。一方、戻るボタン36Bが押下された場合には、一つ前のボトムス画像32Bがコーディネート画面30に表示される。
また、コーディネート画面30では複数種類の靴画像32Cが所定の順序に従って表示されるようになっている。進むボタン34C及び戻るボタン36Cは、コーディネート画面30に表示される靴画像32Cを変えるためのボタンである。進むボタン34Cが押下された場合、次の靴画像32Cがコーディネート画面30に表示される。一方、戻るボタン36Cが押下された場合には、一つ前の靴画像32Cがコーディネート画面30に表示される。
また、コーディネート画面30にはトップスボタン38A、ボトムスボタン38B、及び靴ボタン38Cが表示されている。
トップスボタン38Aは、コーディネート画面30に表示されるトップス画像32Aの自動変更を開始させるためのボタンである。トップスボタン38Aが押下された場合、コーディネート画面30に表示されるトップス画像32Aが所定時間(例えば2秒)ごとに所定の順序に従って自動的に変更されるようになる。なお、もう一度トップスボタン38Aが押下された場合には、コーディネート画面30に表示されるトップス画像32Aの自動変更が停止される。
同様に、ボトムスボタン38Bは、コーディネート画面30に表示されるボトムス画像32Bの自動変更を開始させるためのボタンである。ボトムスボタン38Bが押下された場合、コーディネート画面30に表示されるボトムス画像32Bが所定時間(例えば2秒)ごとに所定の順序に従って自動的に変更されるようになる。なお、もう一度ボトムスボタン38Bが押下された場合には、コーディネート画面30に表示されるボトムス画像32Bの自動変更が停止される。
靴ボタン38Cは、コーディネート画面30に表示される靴画像32Cの自動変更を開始させるためのボタンである。靴ボタン38Cが押下された場合、コーディネート画面30に表示される靴画像32Cが所定時間(例えば2秒)ごとに所定の順序に従って自動的に変更されるようになる。なお、もう一度靴ボタン38Cが押下された場合には、コーディネート画面30に表示される靴画像32Cの自動変更が停止される。
また、コーディネート画面30には背景欄40が表示されている。背景欄40はコーディネート画面30の背景を選択するためのものである。
図5はコーディネート画面30についてさらに詳しく説明するための図である。コーディネート画面30では、実際のトップス、ボトムス、及び靴の大きさのバランスに近いバランスでトップス画像32A、ボトムス画像32B、及び靴画像32Cが表示されるようになっている。すなわち、コーディネート画面30では、トップス画像32A、ボトムス画像32B、及び靴画像32Cの各々がサイズ調整(拡大又は縮小)されるようになっており(図5に示す矢印A,B,C)、その結果として、トップス画像32A、ボトムス画像32B、及び靴画像32Cが実際のトップス、ボトムス、及び靴の大きさのバランスに近いバランスで表示されるようになっている。
また、コーディネート画面30では、人の肩、腰、及び足の位置関係に対応する位置関係を有するようにしてトップス画像32A、ボトムス画像32B、及び靴画像32Cが表示されるようになっている。すなわち、仮想人体モデル50の肩部分50Aの位置に合わせて、トップス画像32Aが表示されるようになっている。また、仮想人体モデル50の腰部分50Bの位置に合わせて、ボトムス画像32Bが表示されるようになっている。さらに、仮想人体モデル50の足裏部分50Cの位置に合わせて、靴画像32Cが表示されるようになっている。
なお、コーディネート画面30ではトップス画像32Aの優先順位が最も高く設定され、靴画像32Cの優先順位が最も低く設定される。このため、トップス画像32Aの一部と、ボトムス画像32B又は靴画像32Cの一部と、が重なる場合にはトップス画像32Aが優先的に表示される。また、ボトムス画像32Bの一部と、靴画像32Cの一部と、が重なる場合にはボトムス画像32Bが優先的に表示される。
以下、以上に説明したコーディネート画面30を表示するための構成について説明する。まず、データベース16に記憶されるトップス画像32A、ボトムス画像32B、及び靴画像32Cを生成するための処理について説明する。
例えば、トップス画像32A、ボトムス画像32B、及び靴画像32Cは、トップス、ボトムス、又は靴を撮影した画像に基づいて生成される。
図6は、トップス画像32A、ボトムス画像32B、及び靴画像32Cを生成するための処理の一例を示すフロー図である。図6に示す処理は例えばサーバ10において実行される。例えば、店舗の担当者が商品情報を新たに登録する際にトップス、ボトムス、又は靴を撮影した画像がサーバ10に送信された場合に図6に示す処理がサーバ10(衣服画像処理装置)で実行される。
まず、トップス又はボトムスを撮影した画像に基づいてトップス画像32A又はボトムス画像32Bを生成する場合について説明する。なお以下では、トップス又はボトムスを撮影した画像のことを「衣服画像」と呼ぶ。
図6に示すように、まず、サーバ10の制御部11は衣服画像の背景領域を検出する(S101)。ここで、「背景領域」とは、衣服が写されている領域(衣服領域)以外の領域のことを意味している。
図7A、図7B、及び図7Cは背景領域の検出方法の一例について説明するための図である。図7Aは、背景領域の検出処理の対象となる衣服画像の一例を示している。図7Aに示す衣服画像60は、マネキンに着用されたトップスを撮影した画像である。なお、衣服画像60は単色又は類似色の背景で撮影された画像であることとする。また、図7Aに示す衣服画像60において、衣服領域の色はそれ以外の領域の色と同一又は類似の色でないこととする。
衣服画像60の背景領域を検出する場合、まず制御部11は、図7Bに示すように、衣服画像60の四辺に隣接する画素ライン(画素行及び画素列)を背景領域62として初期設定する。
その後、制御部11は、背景領域62内の画素の色と同一又は類似の色を、該画素の隣接画素が有しているか否かを判定する。なお、「隣接画素」とは、背景領域62内の画素に隣接する画素であって、かつ、背景領域62に含まれていない画素である。
例えば、制御部11は、背景領域62内の画素の色と、隣接画素の色と、の間の類似度が基準類似度よりも高いか否かを判定する。そして、類似度が基準類似度よりも高い場合に、制御部11は、背景領域62内の画素の色と同一又は類似の色を隣接画素が有していると判定する。
より具体的には、制御部11は、背景領域62内の画素の色値(例えばRGB値)と、隣接画素の色値(例えばRGB値)と、の間のユークリッド距離を算出する。また制御部11は、算出されたユークリッド距離が基準値よりも小さいか否かを判定する。そして、ユークリッド距離が基準値よりも小さい場合に、制御部11は、背景領域62内の画素の色と同一又は類似の色を隣接画素が有していると判定する。
なお、色はRGB値以外の色値によって表される場合もある。例えば、CIELAB色空間又はHSV色空間における色値が用いられる場合もある。また、二つの色が同一又は類似であるか否かを判定するための手法はユークリッド距離を用いる手法に限られない。例えば、二乗誤差、マハラノビス距離、又はアースムーバーズ距離等を用いて、二つの色が同一又は類似であるか否かを判定するようにしてもよい。
背景領域62内の画素の色と同一又は類似の色を隣接画素が有していると判定された場合、制御部11は該隣接画素を背景領域62に加える。このようにして、制御部11は背景領域62を拡張していく。
以上の処理は、背景領域62内の画素の色と同一又は類似の色を有する隣接画素が見つからなくなるまで繰り返し実行される。その結果、図7Cに示すような背景領域62が検出される。
ステップS101の処理が実行された後、制御部11は衣服画像60の背景領域62を除去する(S102)。制御部11は衣服画像60の背景領域62を透明に設定する。
ステップS102の処理が実行された後、制御部11はサイズ調整ライン及び位置調整ラインを取得する(S103)。「サイズ調整ライン」は、衣服画像(トップス画像32A及びボトムス画像32B)のサイズを調整するための基準として用いられるものである。一方、「位置調整ライン」は、コーディネート画面30における衣服画像(トップス画像32A及びボトムス画像32B)の表示位置を調整するための基準として用いられるものである。サイズ調整ライン及び位置調整ラインの役割の詳細については後述する。
図8は、衣服画像60がトップス画像である場合のサイズ調整ライン及び位置調整ラインの取得方法の一例について説明するための図である。衣服画像60がトップス画像である場合、肩のライン72Aを検出することによってサイズ調整ライン80Aを取得する。
まず制御部11は衣服画像60を二値化する。図8は二値化された衣服画像60を示している。
その後、制御部11は、衣服画像60の各画素行(すなわち、衣服の横方向に対応する方向に延伸する各画素ライン)について、衣服領域70に含まれる画素の個数(N)を計数する。図8におけるグラフは各画素行の上記個数(N)のヒストグラムを示している。
トップス画像の場合、肩部分の曲率が大きくなる傾向があるため、上記のヒストグラムの勾配を調べることによって肩のライン72Aを検出する。具体的には、制御部11は、ヒストグラムの曲率θ(y)の変化を衣服画像60の上部から順に調べる。
曲率θ(y)の変化は、上記のヒストグラムhist(y)に基づき下記の式(1)によって内積を計算することによって算出される。例えば、衣服画像60の縦辺及び横辺のサイズがともに400ピクセルの場合、曲率θ(y)を求める際の高さhは5ピクセルに設定される。
制御部11は、衣服画像60の上部から順に曲率θ(y)を調べていき、最初に所定値(例えば180°)よりも大きな曲率θ(y)の変化がある位置を肩の位置として検出する。すなわち、制御部11は、最初に所定値(例えば180°)よりも大きな曲率θ(y)の変化がある画素行を肩のライン72Aとして検出する。
そして制御部11は、肩のライン72Aとして検出された画素行のうちの、衣服領域70の左端74Lから右端74Rまでの部分をサイズ調整ライン80Aとして取得する。また、トップス画像の場合、制御部11はサイズ調整ライン80Aを位置調整ライン82Aとしても設定する。
図9は、衣服画像60がボトムス画像である場合のサイズ調整ライン及び位置調整ラインの検出方法の一例について説明するための図である。衣服画像60がボトムス画像である場合、腰のライン72Bを検出することによってサイズ調整ライン80Bを取得する。
まず制御部11は衣服画像60を二値化する。図8と同様、図9は二値化された衣服画像60を示している。
その後、制御部11は、衣服画像60の各画素行(すなわち、衣服の横方向に対応する方向に延伸する各画素ライン)について、衣服領域70に含まれる画素の個数(N)を計数する。図9におけるグラフは各画素行の上記個数(N)のヒストグラムを示している。
トップス画像と同様、ボトムス画像の場合、腰部分の曲率が大きくなる傾向があるため、上記のヒストグラムの勾配を調べることによって腰のライン72Bを検出する。具体的には、制御部11は、ヒストグラムの曲率θ(y)の変化を衣服画像60の上部から順に調べる。曲率θ(y)の変化は、上記のヒストグラムhist(y)に基づき上記の式(1)によって内積を計算することによって算出される。
制御部11は、衣服画像60の上部から順に曲率θ(y)を調べていき、最初に所定値(例えば180°)よりも大きな曲率θ(y)の変化がある位置を腰の位置として検出する。すなわち、制御部11は、最初に所定値(例えば180°)よりも大きな曲率θ(y)の変化がある画素行を腰のライン72Bとして検出する。
そして制御部11は、腰のライン72Bとして検出された画素行のうちの、衣服領域70の左端74Lから右端74Rまでの部分をサイズ調整ライン80Bとして取得する。なお、トップス画像と同様、ボトムス画像の場合も制御部11はサイズ調整ライン80Bを位置調整ライン82Bとしても設定する。なお以下では、サイズ調整ライン80A,80Bのことを総称して「サイズ調整ライン80」と記載する場合がある。また、位置調整ライン82A,82Bのことを総称して「位置調整ライン82」と記載する場合がある。
ステップS103の処理が実行された後、制御部11は衣服画像60を正規化するための処理を実行する。衣服画像60内における衣服(衣服領域)のサイズや位置は衣服画像60ごとに異なるため、ここでは、ステップS103で検出されたサイズ調整ライン80に基づいて、衣服画像60のサイズや中心位置を調整する。
まず制御部11はサイズ調整ライン80の長さ(s)を取得する(S104)。
なお、図8(トップス画像)の場合、サイズ調整ライン80Aの長さ(s)とは、肩のライン72Aにおける衣服領域70の幅、すなわち、肩のライン72Aにおける衣服領域70の一方の端(左端74L)から他方の端(右端74R)までの長さである。
同様に、図9(ボトムス画像)の場合、サイズ調整ライン80Bの長さ(s)とは、腰のライン72Bにおける衣服領域70の幅、すなわち、腰のライン72Bにおける衣服領域70の一方の端(左端74L)から他方の端(右端74R)までの長さである。
ステップS104の処理が実行された後、制御部11はサイズ調整ライン80の長さ(s)が所定長(S)になるように衣服画像60を拡大又は縮小する(S105)。
すなわち、制御部11は、サイズ調整ライン80の長さ(s)と、所定長(S)と、の相違の程度に基づいて、サイズ調整ライン80の長さ(s)が所定長(S)になるような拡大率又は縮小率を決定する。具体的には、制御部11は、所定長(S)をサイズ調整ライン80の長さ(s)で除することによって拡大率又は縮小率を取得する。そして、制御部11は、決定された拡大率又は縮小率に従って衣服画像60を拡大又は縮小する。
ステップS105の処理が実行された後、制御部11は、衣服画像60内における衣服領域70の水平位置(X軸方向の位置)を調整する(S106)。
例えば、制御部11は、衣服画像60の中心点を通り、かつ、垂直方向(Y軸方向)に延伸する線上にサイズ調整ライン80の中心点が位置するように、衣服領域70を衣服画像60内で水平方向(X軸正方向又は負方向)に移動させる。
また制御部11は、衣服画像60内における衣服領域70の垂直位置(Y軸方向の位置)を調整する(S107)。
例えば、制御部11は、衣服画像60の上辺から所定距離(dピクセル)離れた位置にサイズ調整ライン80が位置するように、衣服領域70を衣服画像60内で垂直方向(Y軸正方向又は負方向)に移動させる。
さらに制御部11は、衣服画像60の幅が所定長(w)となるように、衣服画像60をトリミングする(S108)。そして制御部11は、以上のようにして正規化された衣服画像60をトップス画像32A又はボトムス画像32Bとしてデータベース16に保存する(S109)。
次に、靴を撮影した画像に基づいて靴画像32Cを生成する場合について説明する。
靴を撮影した画像に基づいて靴画像32Cを生成する場合も、基本的に、トップス画像32A又はボトムス画像32Bを生成する場合と同様である。
ただし、靴を撮影した画像に基づいて靴画像32Cを生成する場合には、サイズ調整ライン80及び位置調整ライン82の取得方法が、トップス又はボトムスを撮影した画像に基づいてトップス画像32A又はボトムス画像32Bを生成する場合とは異なる。
靴の形状はブーツやパンプスといった種類によって大幅に異なるため、トップス画像(図8)やボトムス画像(図9)の場合のように曲率の変化を利用して適切なサイズ調整ライン80を取得することは困難である。このため、靴画像の場合、トップス画像及びボトムス画像とは異なる方法によってサイズ調整ライン80及び位置調整ライン82を取得する。
図10は、靴画像のサイズ調整ライン80及び位置調整ライン82の取得方法の一例について説明するための図である。
まず制御部11は靴領域92の高さ(H)を取得する。すなわち制御部11は、靴領域92の最上部を通る第1の画素ライン94A(画素行)と、靴領域92の最下部を通る第2の画素ライン94B(画素行)と、の間の距離を取得する。
また制御部11は、第1の画素ライン94Aとの間の距離と、第2の画素ライン94Bとの間の距離と、の比が所定の比(例えば1:2)となるような第3の画素ライン94Cを取得する。ここで、第3の画素ライン94Cは、第1の画素ライン94Aから、上記の高さ(H)に所定係数α(0<α<1:例えば1/3)を乗じることによって得られる距離だけ下方(Y軸正方向)に離れた位置にある画素ラインである。
そして制御部11は、第3の画素ライン94Cのうちの、靴領域92の左端96Lから右端96Rまでの部分をサイズ調整ライン80Cとして取得する。また制御部11は第2の画素ライン94Bを位置調整ライン82Cとして取得する。
図6に示すステップS109においてデータベース16に保存された衣服画像60(トップス画像32A又はボトムス画像32B)及び靴画像90(靴画像32C)は画像テーブルによって管理される。図11は画像テーブルの一例を示す。データベース16に保存された衣服画像60(トップス画像32A又はボトムス画像32B)及び靴画像90(靴画像32C)の各種情報が画像テーブルに登録される。この画像テーブルもデータベース16に記憶される。
図11に示すように、画像テーブルは「画像ID」、「商品」、「URL」、「サイズ調整ライン」、及び「位置調整ライン」フィールドを含む。「画像ID」フィールドは、画像を一意に識別するための識別情報(画像ID)を示す。「商品」フィールドは、画像がいずれの商品の画像であるのかを示す。例えば、商品IDが「T001」である商品の画像の場合、商品ID「T001」が「商品」フィールドに登録される。
「URL」フィールドは画像へのリンク情報を示す。「サイズ調整ライン」フィールドはサイズ調整ライン80の位置及び長さを示す。「位置調整ライン」フィールドは位置調整ライン82の位置を示す。
次に、電子商取引システム1で実現される機能ブロックについて説明する。図12は、電子商取引システム1で実現される機能ブロックのうち、コーディネート画面30を表示するための機能ブロックを示す機能ブロック図である。図12に示す各機能ブロックはユーザ端末20又はサーバ10によって実現される。
以下、図12に示す各機能ブロックについて説明する。なお、図13及び図14は各機能ブロックについて説明するための図である。
図12に示すように、電子商取引システム1は第1の衣服画像取得部100A、第1の幅取得部102A、第1の拡大/縮小率決定部104A、及び第1のサイズ調整部106Aを含む。これらの機能ブロックは、トップス画像32Aをコーディネート画面30に表示させるための構成である。
第1の衣服画像取得部100Aは、上半身に着用する第1の衣服の画像である第1の衣服画像を取得する。本実施形態の場合、トップスが「第1の衣服」に相当し、トップス画像32Aが「第1の衣服画像」に相当する。すなわち、第1の衣服画像取得部100Aはトップス画像32Aを取得する。
第1の幅取得部102Aは、トップス画像32Aにおけるトップスの肩部分の幅を取得する。具体的には、第1の幅取得部102Aは、トップス画像32Aにおけるサイズ調整ライン80Aの長さを取得する。
第1の拡大/縮小率決定部104Aは、第1の幅取得部102Aによって取得された幅と、所定の第1の基準長と、の間の相違の程度に基づいて、トップス画像32Aの拡大率又は縮小率を決定する。
本実施形態の場合、仮想人体モデル50の肩部分50Aの幅(Ls)が「第1の基準長」として設定され、第1の拡大/縮小率決定部104Aは、トップス画像32Aにおけるサイズ調整ライン80Aの長さが第1の基準長(Ls)となるような拡大率又は縮小率を取得する。すなわち、第1の拡大/縮小率決定部104Aは、第1の基準長(Ls)をトップス画像32Aにおけるサイズ調整ライン80Aの長さで除することによって、拡大率又は縮小率を取得する。
第1のサイズ調整部106Aは、第1の幅取得部102Aによって取得された幅に基づいて、トップス画像32Aのサイズを調整する。すなわち、第1のサイズ調整部106Aは、トップス画像32Aにおけるサイズ調整ライン80Aの長さに基づいて、トップス画像32Aのサイズを調整する。
本実施形態の場合、第1のサイズ調整部106Aは、第1の拡大/縮小率決定部104Aによって決定された拡大率又は縮小率に基づいて、トップス画像32Aを拡大又は縮小する(図13に示す矢印A参照)。
また図12に示すように、電子商取引システム1は第2の衣服画像取得部100B、第2の幅取得部102B、第2の拡大/縮小率決定部104B、及び第2のサイズ調整部106Bを含む。これらの機能ブロックは、ボトムス画像32Bをコーディネート画面30に表示させるための構成である。
第2の衣服画像取得部100Bは、下半身に着用する第2の衣服の画像である第2の衣服画像を取得する。本実施形態の場合、ボトムスが「第2の衣服」に相当し、ボトムス画像32Bが「第2の衣服画像」に相当する。すなわち、第2の衣服画像取得部100Bはボトムス画像32Bを取得する。
第2の幅取得部102Bは、ボトムス画像32Bにおけるボトムスの腰部分の幅を取得する。すなわち、第2の幅取得部102Bは、ボトムス画像32Bにおけるサイズ調整ライン80Bの長さを取得する。
第2の拡大/縮小率決定部104Bは、第2の幅取得部102Bによって取得された幅と、所定の第2の基準長と、の間の相違の程度に基づいて、ボトムス画像32Bの拡大率又は縮小率を決定する。
本実施形態の場合、図13に示すような仮想人体モデル50の腰部分50Bの幅(La)が「第2の基準長」として設定され、第2の拡大/縮小率決定部104Bは、ボトムス画像32Bにおけるサイズ調整ライン80Bの長さが第2の基準長(La)となるような拡大率又は縮小率を取得する。すなわち、第2の拡大/縮小率決定部104Bは、第2の基準長(La)をボトムス画像32Bにおけるサイズ調整ライン80Bの長さで除することによって、拡大率又は縮小率を取得する。
第2のサイズ調整部106Bは、第2の幅取得部102Bによって取得された幅に基づいて、ボトムス画像32Bのサイズを調整する。すなわち、第2のサイズ調整部106Bは、ボトムス画像32Bにおけるサイズ調整ライン80Bの長さに基づいて、ボトムス画像32Bのサイズを調整する。
本実施形態の場合、第2のサイズ調整部106Bは、第2の拡大/縮小率決定部104Bによって決定された拡大率又は縮小率に基づいて、ボトムス画像32Bを拡大又は縮小する(図13に示す矢印B参照)。
また図12に示すように、電子商取引システム1は第3の衣服画像取得部100C、第3の幅取得部102C、第3の拡大/縮小率決定部104C、及び第3のサイズ調整部106Cを含む。これらの機能ブロックは、靴画像32Cをコーディネート画面30に表示させるための構成である。
第3の衣服画像取得部100Cはデータベース16に記憶される靴画像32Cを取得する。第3の幅取得部102Cは靴画像32Cにおける靴の幅を取得する。すなわち、第3の幅取得部102Cは、靴画像32Cにおけるサイズ調整ライン80Cの長さを取得する。
第3の拡大/縮小率決定部104Cは、第3の幅取得部102Cによって取得された幅と、所定の第3の基準長と、の間の相違の程度に基づいて、靴画像32Cの拡大率又は縮小率を決定する。
本実施形態の場合、図13に示すような仮想人体モデル50の足部分の幅(Ll)が「第3の基準長」として設定され、第3の拡大/縮小率決定部104Cは、靴画像32Cにおけるサイズ調整ライン80Cの長さが第3の基準長(Ll)となるような拡大率又は縮小率を取得する。すなわち、第3の拡大/縮小率決定部104Cは、第3の基準長(Ll)を靴画像32Cにおけるサイズ調整ライン80Cの長さで除することによって、拡大率又は縮小率を取得する。
第3のサイズ調整部106Cは、第3の幅取得部102Cによって取得された幅に基づいて、靴画像32Cのサイズを調整する。すなわち、第3のサイズ調整部106Cは、靴画像32Cにおけるサイズ調整ライン80Cの長さに基づいて、靴画像32Cのサイズを調整する。
本実施形態の場合、第3のサイズ調整部106Cは、第3の拡大/縮小率決定部104Cによって決定された拡大率又は縮小率に基づいて、靴画像32Cを拡大又は縮小する(図13に示す矢印C参照)。
また図12に示すように電子商取引システム1は表示制御部108を含む。表示制御部108は、トップスとボトムスと靴とを上下方向に並べて表示するコーディネート画面30を表示部25に表示させる。
表示制御部108は、第1のサイズ調整部106Aによる調整後のトップス画像32Aと、第2のサイズ調整部106Bによる調整後のボトムス画像32Bと、第3のサイズ調整部106Cによる調整後の靴画像32Cと、に基づいて、コーディネート画面30を表示部25に表示させる。
図14に示すように、コーディネート画面30内には、仮想人体モデル50の肩部分50Aに対応する位置110Aが設定されている。表示制御部108は、位置調整ライン82Aの中心点が上記の位置110Aに一致するようにして、第1のサイズ調整部106Aによる調整後のトップス画像32Aをコーディネート画面30に表示する。
同様に、コーディネート画面30内には、仮想人体モデル50の腰部分50Bに対応する位置110Bが設定されている。表示制御部108は、位置調整ライン82Bの中心点が上記の位置110Bに一致するようにして、第2のサイズ調整部106Bによる調整後のボトムス画像32Bをコーディネート画面30に表示する。
また、コーディネート画面30内には、仮想人体モデル50の足裏部分50C(言い換えれば地表部分)に対応する位置110Cが設定されている。表示制御部108は、位置調整ライン82Cの中心点が上記の位置110Cに一致するようにして、第3のサイズ調整部106Cによる調整後の靴画像32Cをコーディネート画面30に表示する。
次に、コーディネート画面30を表示開始する場合に電子商取引システム1で実行される処理について説明する。図15及び図16は、コーディネート画面30を表示開始する電子商取引システム1で実行される処理について説明するための図である。ユーザ端末20(衣服画像処理装置)の制御部21がプログラムに従って図15及び図16に示す処理を実行することによって、制御部21が図12に示す機能ブロックとして機能するようになる。
コーディネート画面30を表示開始する場合、図15に示すように、まずユーザ端末20の制御部21は、トップス画像32A、ボトムス画像32B、及び靴画像32Cのリストをサーバ10に要求する(S201)。
サーバ10が上記の要求を受け付けた場合、制御部11は、コーディネート画面30への表示対象とするトップス画像32A、ボトムス画像32B、及び靴画像32Cをそれぞれ所定数ずつ選出し、それらのトップス画像32A、ボトムス画像32B、及び靴画像32Cのリストをユーザ端末20に返信する(S202)。この場合、コーディネート画面30への表示対象として選出されたトップス画像32A、ボトムス画像32B、及び靴画像32Cの各々について、画像テーブルに登録されている各種情報がユーザ端末20に送信される。
ユーザ端末20が上記のリストを受信した場合、制御部21は変数i,j,kを1に初期化する(S203)。変数iは、何番目のトップス画像32Aがコーディネート画面30に表示されているかを示す役割を果たす。同様に、変数jは、何番目のボトムス画像32Bがコーディネート画面30に表示されているかを示す役割を果たし、変数kは、何番目の靴画像32Cがコーディネート画面30に表示されているかを示す役割を果たす。
その後、制御部21は第i番目のトップス画像32Aをサーバ10に要求する(S204)。コーディネート画面30への表示対象として選出された複数のトップス画像32Aは、ある順序(例えば画像IDの昇順)でソートされている。このステップS204において、制御部21は、コーディネート画面30への表示対象として選出された複数のトップス画像32Aのうちの、第i番目のトップス画像32Aをサーバ10に要求する。
サーバ10が上記の要求を受け付けた場合、制御部11はトップス画像32Aをユーザ端末20に送信する(S205)。ユーザ端末20がトップス画像32Aを受信した場合、制御部21はトップス画像32Aの拡大率又は縮小率を決定する(S206)。制御部21は、第1の基準長(Ls)をトップス画像32Aのサイズ調整ライン80Aの長さによって除することによって、拡大率又は縮小率を取得する。
そして、制御部21は、ステップS206で決定された拡大率又は縮小率に従って、トップス画像32Aを拡大又は縮小し(S207)、拡大又は縮小後のトップス画像32Aをコーディネート画面30に表示する(S208)。
この場合、トップス画像32Aの位置調整ライン82Aの中心点が、仮想人体モデル50の肩部分50Aに対応する位置110Aと一致するようにして、トップス画像32Aの表示位置が設定される。
その後、制御部21は、コーディネート画面30への表示対象として選出された複数のボトムス画像32Bのうちの、第j番目のボトムス画像32Bをサーバ10に要求する(S209)。サーバ10が上記の要求を受け付けた場合、制御部11は、要求されたボトムス画像32Bをユーザ端末20に送信する(S210)。
ユーザ端末20がボトムス画像32Bを受信した場合、制御部21はボトムス画像32Bの拡大率又は縮小率を決定する(S211)。制御部21は、第2の基準長(La)をボトムス画像32Bのサイズ調整ライン80Bの長さによって除することによって、拡大率又は縮小率を取得する。
そして、制御部21は、ステップS211で決定された拡大率又は縮小率に従って、ボトムス画像32Bを拡大又は縮小し(S212)、拡大又は縮小後のボトムス画像32Bをコーディネート画面30に表示する(S213)。
この場合、ボトムス画像32Bの位置調整ライン82Bの中心点が、仮想人体モデル50の腰部分50Bに対応する位置110Bと一致するようにして、ボトムス画像32Bの表示位置が設定される。
その後、制御部21は、コーディネート画面30への表示対象として選出された複数の靴画像32Cのうちの、第k番目の靴画像32Cをサーバ10に要求する(S214)。サーバ10が上記の要求を受け付けた場合、制御部11は、要求された靴画像32Cをユーザ端末20に送信する(S215)。
ユーザ端末20が靴画像32Cを受信した場合、制御部21は靴画像32Cの拡大率又は縮小率を決定する(S216)。制御部21は、第3の基準長(Ll)を靴画像32Cのサイズ調整ライン80Cの長さによって除することによって、拡大率又は縮小率を取得する。
そして、制御部21は、ステップS216で決定された拡大率又は縮小率に従って、靴画像32Cを拡大又は縮小し(S217)、拡大又は縮小後の靴画像32Cをコーディネート画面30に表示する(S218)。
この場合、靴画像32Cの位置調整ライン82Cの中心点が、仮想人体モデル50の足裏部分50C(地表部分)に対応する位置110Cと一致するようにして、靴画像32Cの表示位置が設定される。以上でコーディネート画面30を表示開始する場合の処理に関する説明を終了する。
なお、コーディネート画面30が表示されている場合において進むボタン34Aが押下された場合、変数iの値がインクリメントされた後にステップS204〜S208と同様の処理が実行される。同様に、戻るボタン36Aが押下された場合、変数iの値がデクリメントされた後にステップS204〜S208と同様の処理が実行される。
同様に、進むボタン34B又は戻るボタン36Bが押下された場合、変数jの値がインクリメント又はデクリメントされた後にステップS209〜S213と同様の処理が実行される。また、進むボタン34C又は戻るボタン36Cが押下された場合、変数kの値がインクリメント又はデクリメントされた後にステップS214〜S218と同様の処理が実行される。
また、トップスボタン38Aが押下された場合には、変数iの値が所定時間(例えば2秒)ごとにインクリメントされる。そして、変数iの値がインクリメントされるごとにステップS204〜S208と同様の処理が繰り返し実行される。
同様に、ボトムスボタン38Bが押下された場合には、変数jの値が所定時間(例えば2秒)ごとにインクリメントされる。そして、変数jの値がインクリメントされるごとにステップS209〜S213と同様の処理が繰り返し実行される。
また、靴ボタン38Cが押下された場合には、変数kの値が所定時間(例えば2秒)ごとにインクリメントされる。そして、変数kの値がインクリメントされるごとにステップS214〜S218と同様の処理が繰り返し実行される。
以上に説明した本実施形態に係る電子商取引システム1(衣服画像処理システム)によれば、トップス画像32A、ボトムス画像32B、及び靴画像32Cの各々のサイズが仮想人体モデル50に合わせて自動的に調整されるようになっており(図13に示す矢印A,B,C)、その結果として、トップス画像32A、ボトムス画像32B、及び靴画像32Cが実際のトップス、ボトムス、及び靴の大きさのバランスに近いバランスで表示されるようになっている。
ところで、トップス画像32A、ボトムス画像32B、及び靴画像32Cが実際のトップス、ボトムス、及び靴の大きさのバランスに近いバランスで表示するための方法としては、電子商取引システムの運営者等が、トップス、ボトムス、又は靴を撮影した画像を1枚ずつ確認しながらサイズ調整やトリミングを行うことによって、マネキンやアバタの体型に合わせた衣服画像を生成しておくことも考えられる。しかしながら、そのような作業には非常に手間がかかり、作業時間やコストが増大してしまう。また、複数の角度から撮影した衣服画像を用意しておくことも考えられるが、やはり作業時間やコストが増大してしまう。この点、本実施形態に係る電子商取引システム1によれば、作業時間やコストを抑えることが可能になる。
また、本実施形態に係る電子商取引システム1の場合、仮想人体モデル50のサイズをユーザの性別、年齢、又は体型に応じて変えることも可能である。本実施形態に係る電子商取引システム1の場合、仮想人体モデル50のサイズを変更したとしても、トップス画像32A、ボトムス画像32B、及び靴画像32Cの各々のサイズを変更後の仮想人体モデル50に合わせて容易に調整することが可能である。
なお、本発明は以上に説明した実施形態に限定されるものではない。
[1]図17はコーディネート画面30の他の一例を示す。図17に示すコーディネート画面30は、読込ボタン120A,120B,120Cを含む点で図4に示すコーディネート画面30とは異なっている。
読込ボタン120Aは、例えば、ユーザが撮影したトップス画像、又はユーザがWebページ等で入手したトップス画像をコーディネート画面30に表示するためのボタンである。読込ボタン120Aが押下された場合、トップス画像を選択するための選択画面(図示せず)が表示部25に表示される。
例えば、ユーザは自分が所有しているトップスを予め撮影しておき、その撮影画像を選択画面で選択する。選択画面で画像が選択された場合、該画像がサーバ10に送信される。この場合、サーバ10では、受信された画像を対象として図6に示す処理が実行される。図6に示す処理が完了すると、該画像がユーザ端末20に返信される。この場合、ユーザ端末20では、図15に示すステップS206〜S208と同様の処理が実行される。そして、その結果として、ユーザが所有しているトップスがコーディネート画面30に表示されるようになる。
なお、読込ボタン120Aが押下された場合、撮影を行うための撮影画面が表示されるようにしてもよい。そして、この撮影画面で撮影された画像がサーバ10に送信されるようにしてもよい。
読込ボタン120Bは、ユーザが撮影したボトムス画像、又はユーザがWebページ等で入手したボトムス画像をコーディネート画面30に表示するためのボタンである。また、読込ボタン120Cは、ユーザが撮影した靴画像、又はユーザがWebページ等で入手した靴画像をコーディネート画面30に表示するためのボタンである。
以上のようにすれば、例えば、ユーザは自分の衣服とのコーディネートを確認できるようになる。
[2]図18はコーディネート画面30の他の一例を示す。図18に示すコーディネート画面30は条件指定ボタン130を含む点で図4,17に示すコーディネート画面30とは異なっている。
条件指定ボタン130は、コーディネート画面30への表示対象とするトップス、ボトムス、及び靴に関する条件を指定するためのボタンである。
条件指定ボタン130が押下された場合、条件指定画面が表示される。図19は条件指定画面の一例を示す。条件指定画面140は、コーディネート画面30への表示対象とするトップス、ボトムス、及び靴画像に関する条件の指定を受け付けるための画面である。
図19に示すように、条件指定画面140は選択欄142A,142B,142Cを含んでいる。選択欄142Aは、コーディネート画面30への表示対象とするトップスのサブカテゴリの指定を受け付けるためのものである。選択欄142Aでサブカテゴリが選択された場合、コーディネート画面30に表示されるトップス画像32Aが、選択されたサブカテゴリに属するトップスの画像に限定されることになる。
選択欄142Bは、コーディネート画面30への表示対象とするボトムスのサブカテゴリの指定を受け付けるためのものである。選択欄142Bでサブカテゴリが選択された場合、コーディネート画面30に表示されるボトムス画像32Bが、選択されたサブカテゴリに属するボトムスの画像に限定されることになる。
選択欄142Cは、コーディネート画面30への表示対象とする靴のサブカテゴリの指定を受け付けるためのものである。選択欄142Cでサブカテゴリが選択された場合、コーディネート画面30に表示される靴画像32Cが、選択されたサブカテゴリに属する靴の画像に限定されることになる。
また、条件指定画面140は予算欄144A,144Bを含んでいる。予算欄144Aは予算の下限の指定を受け付けるためのものであり、予算欄144Bは予算の上限の指定を受け付けるためのものである。
予算欄144Aに金額が入力された場合、価格の合計が予算欄144Aに入力された金額以上になるようなトップス、ボトムス、及び靴の組合せがコーディネート画面30に表示されることになる。
一方、予算欄144Bに金額が入力された場合、価格の合計が予算欄144Bに入力された金額以内になるようなトップス、ボトムス、及び靴の組合せがコーディネート画面30に表示されることになる。
また、条件指定画面140は設定ボタン146及びキャンセルボタン148を含んでいる。キャンセルボタン148が押下された場合にはコーディネート画面30に戻る。
設定ボタン146が押下された場合、条件指定画面140で指定された条件がサーバ10に送信される。この場合、サーバ10では条件を満足するような衣服又は靴が検索され、それらのトップス画像32A、ボトムス画像32B、及び靴画像32Cのリストがサーバ10からユーザ端末20に送信される。そして、ユーザ端末20ではそのリストに基づいてコーディネート画面30が表示される。
以上のようにすれば、ユーザがコーディネートの条件を指定できるようにすることが可能になる。
[3]コーディネート画面30では、トップスとボトムスとのコーディネートのみを提示するようにしてもよい。すなわち。靴画像32C及び靴画像32Cに関するオブジェクト(靴ボタン38C等)をコーディネート画面30に表示しないようにしてもよい。この場合、第3の衣服画像取得部100C、第3の幅取得部102C、第3の拡大/縮小率決定部104C、及び第3のサイズ調整部106Cを省略することができる。