以下、添付図面を参照して、本発明に係る実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではなく、また、実施形態が複数ある場合には、各実施形態を組み合わせて構成するものも含む。
(実施形態)
まず、図1を用いて、本発明の第一実施形態から第七実施形態に係る服飾マッチングシステム1の共通の構成について説明する。図1は、実施形態に係る服飾マッチングシステム1の一例を示すブロック図である。服飾マッチングシステム1は、遠隔ショッピング等において、服飾品の購入を希望する消費者が自身の希望条件に基づいた服飾品の推薦を受けることができるシステムである。服飾マッチングシステム1は、場所Xにいるユーザxが利用する移動体端末100Xと、場所Xとは別の場所Yにいるユーザyが利用する移動体端末100Yと、から構成される。
ユーザxは、服飾品を購入したい人物である。ユーザxは、服飾品の推薦をユーザyに依頼している。ユーザyは、一般的な店員よりも依頼者の容姿や趣味等にあった服飾品を効率的に推薦する人物である。ユーザyは、例えば、ショップ店員等ではなく、ショップを訪問するカリスマバイヤーやフリマアプリ等で服飾品を販売して、何らかのインセンティブを得たい人物である。ユーザyは、ユーザxの個人情報を、メールアドレスやSNSのアカウント程度の連絡をとるために必要な最低限しか所有していないものとする。
移動体端末100Xおよび移動体端末100Yは、同様の機能を有し、アバター生成用アプリケーションを含む服飾マッチング用アプリケーションが搭載されたスマートフォン等の端末である。移動体端末100Xおよび移動体端末100Yは、互いにインターネットまたは携帯電話回線等の通信ネットワークを介して通信可能である。通信ネットワークは、例えば、LTE(Long Term Evolution)等である。以下の説明において、移動体端末100X、100Yをそれぞれ区別する必要がない場合には、移動体端末100と記載される。
次に、図2を用いて、本発明の第一実施形態から第七実施形態に係る移動体端末100の共通の構成について説明する。図2は、実施形態に係る移動体端末100の構成の一例を示すブロック図である。移動体端末100は、撮像部101と、距離測定部102と、操作部103と、記憶部104と、表示部105と、通信部106と、制御装置110と、服飾合成装置120と、アバター生成装置10、20、30、40、50、60、70と、を備える。
撮像部101は、移動体端末100に搭載されるカメラであり、移動体端末100の周囲の任意の範囲を撮像する。撮像部101は、CMOS(Complementary Metal Oxide Semiconductor)イメージセンサ等の映像素子を含む。撮像部101は、撮像者による操作部103の操作に応じて撮像画像を撮像する。撮像画像は、例えば、RGB画像、YUV画像、またはJPEG画像等である。撮像画像は、動画から切り出した画像であってもよい。移動体端末100Xの撮像部101は、例えば、ユーザxの全身を、少なくとも正面を含む1つ以上の方向から撮像する。移動体端末100Yの撮像部101は、例えば、ユーザyが選択した服飾品を、少なくとも正面を含む1つ以上の方向から撮像する。撮像部101は、撮像画像を表す画像情報を制御装置110の撮像情報取得部111へ出力する。
距離測定部102は、移動体端末100から撮像部101による撮像対象までの距離を測定する。距離測定部102によって測定される距離情報は、撮像対象の3次元座標を含む。距離測定部102は、例えば、撮像部101のカメラが有するレーザーオートフォーカス機能を利用したものであってもよい。移動体端末100Xの距離測定部102は、例えば、ユーザxの全身までの、少なくとも正面を含む1つ以上の方向からの距離を測定する。移動体端末100Yの距離測定部102は、例えば、ユーザyが選択した服飾品までの、少なくとも正面を含む1つ以上の方向からの距離を測定する。距離測定部102は、距離情報を制御装置110の距離情報取得部112へ出力する。
操作部103は、移動体端末100に対する様々な操作を受け付けるインターフェースである。操作部103は、例えば、物理的なスイッチや、表示部105に設けられたタッチパネルで実現することができる。操作部103は、例えば、撮像部101に撮像させる操作を受け付け可能である。操作部103は、例えば、撮像部101が撮像した撮像画像、通信部106が受信したアバター画像または服飾撮像画像、アバター生成装置10、20、30、40、50、60、70によるアバター生成画面、服飾合成装置120による服飾合成画像の生成画面等を表示部105に表示させる操作を受け付け可能である。操作部103は、例えば、アバター画像または服飾撮像画像を通信部106に送信させる操作を受け付け可能である。操作部103は、アバター生成装置10、20、30、40、50、60、70にアバターを生成させるための各種設定情報を入力する操作を受け付け可能である。操作部103は、服飾合成装置120に服飾合成画像を生成させるための各種設定情報を入力する操作を受け付け可能である。操作部103は、受け付けた操作に応じた操作信号を操作情報取得部113へ出力する。
記憶部104は、各種情報を記憶する。記憶部104は、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、フラッシュメモリ等の不揮発性または揮発性の半導体メモリ等の記憶媒体を有する。記憶部104は、制御装置110が実行する各種の制御プログラム、各種の制御処理に用いられるデータ、および制御装置110が取得した各種保存用データが記憶される。記憶部104は、例えば、撮像部101が撮像した全身撮像画像および距離測定部102が測定した全身距離情報を記憶する。記憶部104は、例えば、操作部103から入力されたアバター生成装置10、20、30、40、50、60、70にアバターを生成させるための各種設定情報を記憶する。記憶部104は、例えば、アバター生成装置10、20、30、40、50、60、70が生成したアバター画像およびアバター距離情報を記憶する。記憶部104は、例えば、通信部106が受信したアバター画像およびアバター距離情報を記憶する。記憶部104は、例えば、撮像部101が撮像した服飾撮像画像および距離測定部102が測定した服飾距離情報を記憶する。記憶部104は、例えば、服飾合成装置120が生成した服飾合成アバター画像および服飾合成アバター距離情報を記憶する。記憶部104は、例えば、通信部106が受信した服飾撮像画像および服飾距離情報を記憶する。記憶部104は、例えば、服飾合成装置120が生成した服飾合成画像および服飾合成距離情報を記憶する。記憶部104は、制御装置110の記憶制御部114から出力された制御信号に基づいて、各種情報を記憶する。
表示部105は、種々の画像、映像および文字等の情報を表示する。表示部105は、液晶素子または有機EL(Organic Electro-Luminescence)素子による表示パネルを含む。表示部105がタッチパネルを含む場合、表示部105は、表示パネル上のユーザx、yの指等の指示体の位置を検知するためのタッチセンサを有する。表示部105は、例えば、撮像部101が撮像した撮像画像を表示する。表示部105は、例えば、通信部106が受信したアバター画像または服飾撮像画像を表示する。表示部105は、例えば、アバター生成装置10、20、30、40、50、60、70によるアバター生成画面を表示する。表示部105は、例えば、服飾合成装置120による服飾合成画像の生成画面を表示する。表示部105は、制御装置110の表示制御部115から出力された表示情報に基づいて、各種情報を表示する。
通信部106は、通信ユニットである。移動体端末100Xの通信部106と移動体端末100Yの通信部106とは、通信ネットワークを介して互いに通信を行う。移動体端末100Xの通信部106は、例えば、アバター生成装置10、20、30、40、50、60、70が生成したアバター画像およびアバター距離情報を移動体端末100Yへ送信する。移動体端末100Yの通信部106は、例えば、アバター画像およびアバター距離情報を移動体端末100Xから受信する。移動体端末100Yの通信部106は、例えば、撮像部101によって撮像した服飾撮像画像および距離測定部102が測定した服飾距離情報を移動体端末100Xへ送信する。移動体端末100Xの通信部106は、例えば、服飾撮像画像および服飾距離情報を移動体端末100Yから受信する。通信部106は、制御装置110の通信制御部116から出力された制御信号に基づいて、各種通信を実行する。
制御装置110は、例えば、CPU(Central Processing Unit)等で構成された演算処理装置(制御装置)である。制御装置110は、記憶部104に記憶されているプログラムをメモリにロードして、プログラムに含まれる命令を実行する。制御装置110には図示しない内部メモリ等が含まれる。内部メモリは、制御装置110の各部を実現させるためのプログラムが記憶されている。この場合、制御装置110は、内部メモリ等に記憶されているプログラムを展開して実行することで、各部の機能を実現する。また、内部メモリは、制御装置110におけるデータの一時記憶等にも用いられる。制御装置110は、バス119によって接続された、撮像情報取得部111と、距離情報取得部112と、操作情報取得部113と、記憶制御部114と、表示制御部115と、通信制御部116と、情報入力部117と、情報取得部118と、を含む。
撮像情報取得部111は、撮像部101が撮像した各種の撮像画像を表す画像情報を取得する。撮像情報取得部111は、例えば、撮像部101がユーザxの全身を撮像した撮像画像を取得する。撮像情報取得部111は、例えば、撮像部101が服飾品を撮像した撮像画像を取得する。撮像情報取得部111は、撮像部101から取得した画像情報を、記憶制御部114へ出力する。
距離情報取得部112は、距離測定部102が測定した各種の撮像対象との距離を示す距離情報を取得する。距離情報取得部112は、撮像部101が撮像したユーザxの全身の正面からの距離情報を取得する。距離情報取得部112は、撮像部101が撮像した服飾品の正面からの距離情報を取得する。距離情報取得部112は、距離測定部102から取得した距離情報を、記憶制御部114へ出力する。
操作情報取得部113は、操作部103がユーザx、y等から受け付けた操作に関する操作信号を取得する。操作情報取得部113は、例えば、撮像部101による撮像操作を示す撮像操作信号、各種表示情報の表示操作を示す表示操作信号、各種通信情報の送信操作を示す送信操作信号、各種設定情報の入力操作を示す入力操作信号等を取得する。操作情報取得部113は、受け付けた操作信号に応じた制御信号を、撮像情報取得部111、距離情報取得部112、表示制御部115、通信制御部116または情報入力部117へ出力する。この場合、撮像情報取得部111、距離情報取得部112、表示制御部115、通信制御部116および情報入力部117は、制御信号に従って動作を実行する。
記憶制御部114は、制御装置110が取得した各種情報を、記憶部104に記憶させる。各種情報は、全身撮像画像および全身距離情報、アバターを生成させるための各種設定情報、アバター画像およびアバター距離情報、服飾撮像画像および服飾距離情報、服飾合成アバター画像および服飾合成アバター距離情報、服飾撮像画像および服飾距離情報、服飾合成画像および服飾合成距離情報等である。
表示制御部115は、種々の画像、映像および文字等の情報を表示部105に表示させる。表示制御部115は、表示部105に表示情報信号を出力することで、表示部105に各種情報を表示させる。表示制御部115は、例えば、撮像部101が撮像した撮像画像、アバター画像または服飾撮像画像、アバター生成画面または服飾合成画像の生成画面等の表示情報信号を出力する。
通信制御部116は、通信部106における通信を制御する。通信制御部116は、記憶制御部114から出力された通信情報を取得する。通信制御部116は、取得した通信情報を、通信部106へ出力する。通信制御部116は、通信部106が受信した各種情報を、記憶制御部114へ出力する。通信制御部は、例えば、アバター画像およびアバター距離情報、服飾撮像画像および服飾距離情報を、記憶制御部114から取得する。通信制御部は、例えば、アバター画像およびアバター距離情報、服飾撮像画像および服飾距離情報を、通信部106へ出力する。
情報入力部117は、操作部103から入力された各種の設定情報および記憶部104に保存される各種の設定情報を、アバター生成装置10、20、30、40、50、60、70、または服飾合成装置120に入力する。各種の設定情報は、例えば、ユーザxの全身撮像画像および全身距離情報、年齢、性別、購入したい服飾品類を着用することが推奨される季節、場所、または表情等の状況、嗜好、お気に入り顔、平均顔画像、有名人の顔画像、置換用のアバター顔パーツ画像、アバター顔画像、服飾撮像画像および服飾距離情報等の情報である。移動体端末100Xの情報入力部117は、アバターを生成するための各種情報を、アバター生成装置10、20、30、40、50、60、70に入力する。移動体端末100Yの情報入力部117は、服飾合成アバター画像を生成するための各種情報を、服飾合成装置120に入力する。移動体端末100Xの情報入力部117は、服飾合成画像を生成するための各種情報を、服飾合成装置120に入力する。
情報取得部118は、アバター生成装置10、20、30、40、50、60、70、または服飾合成装置120から各種の生成情報を取得する。移動体端末100Xの情報取得部118は、アバター生成装置10、20、30、40、50、60、70が生成したまたは生成中のアバターに関する情報を取得する。移動体端末100Yの情報取得部118は、服飾合成装置120が生成した服飾合成アバター画像および服飾合成アバター距離情報を取得する。移動体端末100Xの情報取得部118は、服飾合成装置120が生成した服飾合成画像および服飾合成距離情報を取得する。情報取得部118は、取得した各種生成情報を記憶制御部114へ出力する。
服飾合成装置120は、情報入力部117から取得した各種の設定情報に基づいて、アバター画像または全身撮像画像と服飾画像とを合成した合成画像を生成する。移動体端末100Yの服飾合成装置120は、移動体端末100Xのアバター生成装置10、20、30、40、50、60、70が生成したアバター画像と、移動体端末100Yの撮像部101が撮像した服飾画像とを合成した服飾合成アバター画像を生成する。移動体端末100Xの服飾合成装置120は、移動体端末100Xの撮像部101が撮像したユーザxの全身撮像画像と、移動体端末100Yの撮像部101が撮像した服飾画像とを合成した服飾合成画像を生成する。
アバター生成装置10、20、30、40、50、60、70は、情報入力部117から取得した各種の設定情報に基づいて、アバターを生成する。各実施形態のアバター生成装置10、20、30、40、50、60、70の構成については、後述にて詳細に説明する。
図3を用いて、実施形態に係る服飾マッチングシステム1のシーケンスについて説明する。図3は、実施形態に係る服飾マッチングシステム1のシーケンスの一例を示す説明図である。ここで、移動体端末100Xの記憶部104には、アバターを生成するための各種設定情報が予め保存されているものとする。服飾マッチングシステム1は、移動体端末100Xが、ユーザxによる操作部103への所定の開始操作を受け付けることによって、図3に示すステップST101に移行して処理を開始する。
移動体端末100Xのアバター生成装置10、20、30、40、50、60、70は、情報入力部117からアバターを生成するための各種の設定情報を取得する(ステップST101)。移動体端末100Xは、アバター生成装置10、20、30、40、50、60、70に、各種の設定情報に基づいてアバターを生成させる(ステップST102)。各実施形態のアバター生成装置10、20、30、40、50、60、70の生成方法については、後述にて詳細に説明する。移動体端末100Xを操作するユーザxは、生成されたアバターのアバター画像およびアバター距離情報を含むアバターデータDaを、移動体端末100Yへ送信させる(ステップST103)。
移動体端末100Yが移動体端末100XからアバターデータDaを受信した後、ユーザyは、移動体端末100Yの撮像部101によって、アバターに着用させる服飾品を撮像する。移動体端末100Yは、服飾画像および服飾距離情報を取得する(ステップST104)。移動体端末100Yは、服飾合成装置120に、アバター距離情報および服飾距離情報に基づいてアバター画像と服飾画像とを合成して、服飾合成アバター画像を生成させる(ステップST105)。移動体端末100Yは、服飾合成アバター画像および服飾合成アバター距離情報に基づいて、服飾合成アバター画像を3次元にモデリングし、表示部105に立体的に表示させる(ステップST106)。ユーザyは、表示部105に表示された服飾品を着用したアバターを確認して、服飾品が似合っているかを判断する。ユーザyは、似合っていると判断した場合、判断結果、服飾画像および服飾距離情報を含む服飾データDdを、移動体端末100Xへ送信させる(ステップST107)。なお、ユーザyは、似合っていないと判断した場合、ステップST104からステップST106までを繰り返し実行する。
移動体端末100Xが移動体端末100Yから服飾データDdを受信した後、ユーザxは、移動体端末100Xの服飾合成装置120に、全身距離情報および服飾距離情報に基づいて全身撮像画像と服飾画像とを合成して、服飾合成画像を生成させる(ステップST108)。移動体端末100Xは、服飾合成画像および服飾合成距離情報に基づいて、服飾合成画像を3次元にモデリングし、表示部105に立体的に表示させる(ステップST109)。これにより、ユーザxは、ユーザyが推薦した服飾品を自身が着用している画像で確認することができる。
(第一実施形態)
図4および図5を用いて、第一実施形態に係るアバター生成装置10について説明する。第一実施形態に係るアバター生成装置10は、撮像したユーザx自身の撮像画像と予め記憶部104に記憶されている所定数の顔画像とを平均した平均顔画像を利用したアバターを生成する。図4は、第一実施形態に係るアバター生成装置10の構成の一例を示すブロック図である。アバター生成装置10は、顔画像取得部11と、顔タイプ判定部12と、変形ポリシー設定部13と、顔変形部14と、全身画像合成部15と、を含む。
顔画像取得部11は、制御装置110の記憶制御部114を介して記憶部104に保存されたユーザxの全身撮像画像および全身距離情報を含む設定情報を取得する。記憶部104から取得する設定情報は、さらに、少なくとも、ユーザxの年齢および性別の情報を含む。記憶部104から取得する設定情報は、購入したい服飾品類を着用することが推奨される季節、場所、または表情等の状況等を含んでもよい。以下の説明において、記憶部104から取得した全身撮像画像および全身距離情報は、正面から撮像した撮像画像およびユーザxの全身の正面からの距離情報とする。顔画像取得部11は、全身撮像画像および全身距離情報からそれぞれ顔の部分を抽出して、ユーザxの顔画像および顔距離情報を生成する。顔画像取得部11は、設定情報、生成した顔画像および顔距離情報を顔タイプ判定部12へ出力する。
顔タイプ判定部12は、顔画像取得部11から、設定情報、顔画像および顔距離情報を取得する。顔タイプ判定部12は、顔画像および顔距離情報に基づいて、ユーザxの顔タイプTiを判定する。顔タイプ判定部12は、学習用画像データセットを用いて予め機械学習された推論器を有する。
顔タイプTiは、所定の判定基準に基づいて、顔と顔の各部分を示す顔パーツとのそれぞれの大きさ、位置および形状を評価することによって判定される。表1は、顔タイプTiを説明する表である。表1に示すように、顔タイプTiは、顔タイプT1、T2、T3、T4、T5、T6、T7、T8の8つのタイプに分類される(日本顔タイプ診断協会)。バランス項目の子供顔タイプは、例えば、輪郭が丸顔または横長、顔パーツが輪郭に対して下方寄り等の特徴を有するタイプである。バランス項目の大人顔タイプは、例えば、輪郭が面長、顔パーツが輪郭に対して上方寄り等の特徴を有するタイプである。形状項目の曲線タイプは、輪郭に骨を感じない、目が丸い、鼻筋がなく肉感がある、頬骨が高い等の特徴を有するタイプである。形状項目の直線タイプは、輪郭に骨を感じる、目が細い、鼻筋が通っている、頬骨が低い等の特徴を有するタイプである。顔パーツは、目および鼻を少なくとも含む。
表2は、顔タイプ判定のうち、子供顔タイプか大人顔タイプかの判定に用いられる第一判定基準における各判定番号Niに対応する判定項目および判定内容の一覧である。各顔パーツは、判定番号N1、N2、N3、N4、N5、N6、N7の各判定項目について所定の基準でA判定またはB判定で判定される。ここで、所定の判定基準とは、各判定項目の判定内容に記載された判定基準である。例えば、判定番号N2の判定項目の所定の判定基準は、顎の長さが標準以下であるか否かである。
表3は、顔タイプ判定のうち、顔および顔パーツの形状に関する第二判定基準における各判定番号Niに対応する判定項目および判定内容の一覧である。各顔パーツは、判定番号N8、N9、N10、N11、N12、N13、N14、N15の各判定項目について所定の基準によりC判定またはD判定で判定される。
表4は、顔タイプTiの分類方法を説明する表である。表4に示すように、顔タイプTiは、表2に示す第一判定基準における各判定番号Niに対応する判定項目のA判定の数と、表3に示す第二判定基準における各判定番号Niに対応する判定項目のC判定の数と、目の大きさと、に応じて分類される。
顔タイプ判定部12は、取得した顔画像について、判定番号N1からN7の各判定項目をA判定またはB判定に判定する。顔タイプ判定部12は、取得した顔画像について、判定番号N8からN15の各判定項目をC判定またはD判定に判定する。顔タイプ判定部12は、判定番号N1、N2、N3、N6、N7の各判定項目について、正面から撮像した正面画像を用いて判定する。顔タイプ判定部12は、判定番号N4の判定項目について、真横から撮像した真横画像を用いて判定する。顔タイプ判定部12は、判定番号N5の判定項目について、真上から撮像した真上画像を用いて判定する。顔タイプ判定部12における判定番号N1からN15までの各判定項目の判定は、予め判定項目毎の判定基準に基づいて二者択一で判定されるように機械学習された推論器を用いて行う。学習用画像データセットとして、各判定項目について正解がラベリングされた教師データ画像を、例えば、顔タイプTi毎に100枚程度用意する。推論器の学習方法は、例えば、ディープラーニング等の機械学習である。判定番号N1のように特徴量を定量化することが容易でないものを判定するため、教師データ画像を用意すれば判定が可能であるディープラーニング等の機械学習を用いることが好ましい。本発明は、実施形態に限定されず、例えば、全ての判定項目について二者択一のための閾値を設定し、閾値以上であるか否かを判定基準として判定してもよい。
顔タイプ判定部12は、A判定、B判定、C判定およびD判定の各判定結果の数をカウントし、A判定の数とC判定の数と目の大きさとに基づいて表4に従って顔タイプTiを判定する。例えば、ユーザxの顔画像について、A判定の数が6かつC判定の数が4である場合、ユーザxは、顔タイプT3である。顔タイプ判定部12は、設定情報と、判定した顔タイプTiと、顔タイプTiの判定に用いた判定項目毎の判定結果とを、変形ポリシー設定部13へ出力する。顔タイプ判定部12における判定番号N1からN15までの各判定項目の判定は、予め判定項目毎の判定基準に基づいて二者択一で判定される推論器を用いて行われるとしたが、これに限定されない。例えば、正解となる顔タイプTiをラベリングした画像データを、顔タイプTi毎に100枚程度ずつ準備して学習用データセットとする。この学習用データセットを用いて推論器に機械学習させ、顔画像から直接顔タイプを判定するようにしてもよい。この場合、各判定項目の判定は学習用データセットの生成時に行えばよい。
変形ポリシー設定部13は、顔タイプ判定部12から、設定情報と、顔タイプTiと、顔タイプTiの判定に用いた判定項目毎の判定結果とを取得する。変形ポリシー設定部13は、顔タイプTi、顔タイプTiの判定に用いた判定項目毎の判定結果、および設定情報に基づいて、変形ポリシーを設定する。変形ポリシーは、記憶部104に保存される各グループの平均顔画像のうち、いずれのグループの平均顔画像をアバター生成に利用するかの方針情報である。各グループは、年齢、性別、および顔タイプTi等に基づいて分類される。例えば、ユーザxが20代女性であり、かつ顔タイプT3である場合、変形ポリシー設定部13は、変形ポリシーとして、20代女性の顔タイプT3のグループの平均顔画像を利用することを設定する。変形ポリシー設定部13は、設定情報および設定した変形ポリシーを顔変形部14へ出力する。
顔変形部14は、変形ポリシー設定部13から、変形ポリシーおよび設定情報を取得する。顔変形部14は、変形ポリシーに従って、制御装置110の記憶制御部114を介して記憶部104に保存された所望のグループの平均顔画像を取得する。記憶部104には、年齢、性別、および顔タイプTi等に基づいて分類されたグループ毎の平均顔画像のデータベースが保存される。データベースは、通信ネットワークを介して定期的に更新可能である。グループ毎の平均顔画像は、各々所定数の顔画像を平均した顔画像である。変形ポリシーと各グループの分類とは、人種、住んでいる地域、画像を撮影した季節、画像を撮影した場所、または表情等の状況等による分類を含んでもよい。平均顔画像には、撮像対象までの距離および撮像対象の3次元座標を含む平均顔距離情報が紐付けられているものとする。顔変形部14は、変形ポリシーに基づいて、ユーザxの顔画像および顔距離情報を変形して、変形顔画像および変形顔距離情報を生成する。顔変形部14は、変形ポリシーに基づいて、ユーザxの顔画像を含むユーザxが属するグループの平均顔画像を生成し、変形顔画像とする。より詳しくは、顔変形部14は、ユーザxの顔画像と平均顔画像とを所定の比率で重み付けをして合成して、変形顔画像を生成する。ユーザxの顔画像対平均顔画像の所定の比率は、一例として1対10とするが、これに限らず、例えば0対1でもよい。平均顔画像の重みを大きくすれば、ユーザx本人とは特定し難くなり、平均顔画像の重みを小さくすれば、ユーザx本人と特定し易くなる。例えば、ユーザxとユーザyの取引回数が少ない場合には平均顔画像の重みを大きくし、ユーザxとユーザyの取引回数が多くなるほど平均顔画像の重みを小さくするようにしてもよい。このようにすることで、ユーザxとユーザyの信頼度に応じてユーザx本人と特定し易くなる程度を調整することができる。顔変形部14は、変形ポリシーに基づいて、ユーザxの顔距離情報を含むユーザxが属するグループの平均顔距離情報を生成し、変形顔距離情報とする。より詳しくは、顔変形部14は、ユーザxの顔距離情報と平均顔距離情報とを所定の比率で重み付けをして合成して、変形顔距離情報を生成する。この際、顔変形部14は、平均顔画像の大きさが顔画像の顔の大きさに合うように平均顔画像の大きさを調整(以降、スケーリングともいう)する。顔変形部14は、設定情報、生成した変形顔画像および変形顔距離情報を全身画像合成部15へ出力する。なお、顔画像の顔の大きさに合うように平均顔画像の顔の大きさを調整してもよいし、平均顔画像の顔の大きさに合うように顔画像の顔の大きさを調整してもよい。
全身画像合成部15は、顔変形部14から、設定情報、変形顔画像および変形顔距離情報を取得する。全身画像合成部15は、変形顔画像を全身撮像画像に合成して変形全身画像であるアバター画像を生成する。全身画像合成部15は、変形顔距離情報を全身距離情報に合成して変形全身距離情報であるアバター距離情報を生成する。全身画像合成部15は、設定情報、アバター画像およびアバター距離情報を制御装置110の情報取得部118へ出力する。
図5は、第一実施形態に係るアバター生成装置10の処理の一例を示すフローチャートである。アバター生成装置10は、制御装置110の操作情報取得部113を介して操作部103が所定の開始操作を受け付けたことによって、図5に示すステップST11に移行して処理を開始する。
アバター生成装置10は、撮像画像から顔画像を取得する(ステップST11)。より具体的には、アバター生成装置10は、まず、顔画像取得部11に、撮像部101が撮像したユーザxの全身撮像画像および全身距離情報を取得させる。アバター生成装置10は、次に、顔画像取得部11に、全身撮像画像および全身距離情報からそれぞれ顔の部分を抽出して、ユーザxの顔画像および顔距離情報を生成させる。アバター生成装置10は、ステップST12に移行する。
アバター生成装置10は、顔画像から顔タイプTiを判定する(ステップST12)。より具体的には、アバター生成装置10は、まず、顔タイプ判定部12に、顔画像および顔距離情報に基づいて、判定番号Niに対応する判定項目毎にA判定、B判定、C判定またはD判定のいずれかに判定させる。アバター生成装置10は、次に、顔タイプ判定部12に、判定項目毎の判定結果に基づいて、顔タイプTiを判定させる。アバター生成装置10は、ステップST13に移行する。
アバター生成装置10は、変形ポリシーを設定する(ステップST13)。より具体的には、アバター生成装置10は、変形ポリシー設定部13に、顔タイプTi、顔タイプTiの判定に用いた判定項目毎の判定結果、および設定情報に基づいて、変形ポリシーを設定される。変形ポリシーは、年齢、性別、顔タイプTi等によって区分された所定のグループの平均顔画像のうち、いずれのグループの平均顔画像をアバター生成に利用するかの方針情報である。アバター生成装置10は、ステップST14に移行する。
アバター生成装置10は、ユーザxの顔画像を含む複数の顔画像を平均して平均顔画像を変形顔画像として生成する(ステップST14)。より具体的には、アバター生成装置10は、まず、顔変形部14に、変形ポリシーに基づいて、アバター生成に利用するグループの平均顔画像をデータベースから取得させる。アバター生成装置10は、次に、顔変形部14に、ユーザxの顔画像を含むユーザxが属するグループの平均顔画像を生成し、変形顔画像とさせる。また、アバター生成装置10は、顔変形部14に、ユーザxの顔距離情報を含むユーザxが属するグループの平均顔距離情報を生成し、変形顔距離情報とさせる。アバター生成装置10は、ステップST15に移行する。
アバター生成装置10は、撮像画像に変形顔画像を合成してアバター画像を生成する(ステップST15)。より具体的には、アバター生成装置10は、全身画像合成部15に、変形顔画像を全身撮像画像に合成して変形全身画像であるアバター画像を生成させる。また、アバター生成装置10は、全身画像合成部15に、変形顔距離情報を全身距離情報に合成して変形全身距離情報であるアバター距離情報を生成させる。アバター生成装置10は、図5に示すフローチャートの処理を終了する。
以上のように、第一実施形態のアバター生成装置10は、ユーザxの顔タイプTiに対して、アバター画像の顔タイプが変わらないように、顔と顔の各部分を示す顔パーツとのそれぞれの大きさ、位置および形状を変更することができる。これにより、ユーザxに似ているがユーザx本人とは特定が難しいアバターを生成することができる。顔タイプが同一であれば、似合う衣服、髪型、装飾品等の服飾品は、同じであると想定できる。
第一実施形態のアバター生成装置10で生成したアバター画像を使用した服飾マッチングシステム1は、遠隔ショッピング等において、ユーザxが仮想的に服飾品を試着する際に、ユーザxと同一の顔タイプの平均顔画像を有するアバターに服飾品を試着させることができる。これにより、ユーザyにユーザxの個人情報を特定させることなく、ユーザxに似合う服飾品を推薦してもらうことが可能である。また、ユーザxの個人情報、特に顔画像をユーザyに必要以上に知られることなく、ユーザxに似合うがユーザx自身では選ばないであろう未知の服飾品を、ユーザyに推薦してもらうことができる。
さらに、ユーザxと同一の顔タイプの顔画像を収集する際に、人種、住んでいる地域、画像を撮影した季節、画像を撮影した場所、または表情等の状況等の情報を取得することによって、購入したい服飾品類を着用することが推奨される季節、場所または状況に合う服飾品を高精度に推奨してもらうことができる。また、ユーザxの顔画像の表情に応じて、ユーザxに似合う服飾品を推奨してもらうことができる。
一方で、ユーザxは、ユーザyに推薦された服飾品の服飾画像を、ユーザx自身の全身撮像画像に合成することによって、自分と特定できるアバターに服飾品を試着させることができる。すなわち、ユーザxは、ユーザyが推薦した服飾品を自身が着用している画像で確認することができる。もちろんユーザxは、ユーザyが推薦した服飾品を自身のアバターが着用している画像を確認することもできる。
(第一実施形態の変形例)
第一実施形態では、顔画像の顔全体を平均顔に変形させたが、ユーザxの顔画像を元に、平均顔画像の所定の顔パーツのみを利用して、所定の顔パーツのみ変形させてもよい。ここで、変形させる所定の顔パーツは、変形ポリシーに含まれるとする。表5は、変形させる顔パーツの候補を説明する表である。表5に示すように、変形対象の顔パーツは、目、口、鼻、顔の形状、耳である。優先度は、顔パーツが変更された場合に印象度が変わりやすい顔パーツほど高い。優先度は数が小さいほど高い。変形ポリシー設定部13は、例えば、顔パーツの候補から、優先度上位2つの顔パーツである目および口を変形させる顔パーツとして設定する。変形させる顔パーツは、1つでもよいし、目および口以外の組み合わせでもよく、3つ以上のパーツを任意に組み合わせてもよい。すなわち、変形させる顔パーツは、1以上であればよく、全てのパーツを組み合わせてもよい。
顔変形部14は、変形ポリシーに基づいて平均顔画像を取得し、ユーザxの顔画像の顔パーツを、平均顔画像の顔パーツに置換し、変形顔画像を生成する。この際、顔変形部14は、平均顔画像の大きさが顔画像の顔の大きさに合うようにスケーリングしてから、顔パーツを置換する。
以上のように、第一実施形態の変形例のアバター生成装置10は、顔パーツ毎に変更するかしないかを選択できる。そのため、ユーザxの特徴が一部完全に残るアバターを生成することも可能である。変形例では、優先度の高い顔パーツを自動的に選択したが、ユーザxによってどの顔パーツを変形させるか選択してもよい。ユーザxの特徴に基づいて顔パーツの優先度を動的に変化させて設定してもよく、優先度は所定値に限らない。例えば、顔パーツの優先度を、ユーザxの顔パーツと平均顔画像の顔パーツと相関度が小さいものほど優先度が高くなるように設定してもよい。ここで、相関度はユーザxの顔パーツと平均顔画像の顔パーツの画素値の絶対平均差分和で計算される。このように、平均顔画像と差が大きい顔パーツから優先して変形することで、変形する顔パーツの数が少ない場合でも、ユーザxに似ているがユーザx本人とは特定が難しいアバターを生成することができる。
(第二実施形態)
図6および図7を用いて、第二実施形態に係るアバター生成装置20について説明する。第二実施形態に係るアバター生成装置20は、ユーザxと嗜好が類似する所定数の人物の顔画像を平均した平均顔画像を利用したアバターを生成する。なお、同一人物の顔画像を複数枚用いて平均した平均顔画像を利用してもよい。図6は、第二実施形態に係るアバター生成装置20の構成の一例を示すブロック図である。アバター生成装置20は、顔画像取得部21と、顔タイプ判定部22と、類似嗜好顔画像収集部23と、変形ポリシー設定部24と、顔変形部25と、全身画像合成部26と、を含む。なお、顔画像取得部21および全身画像合成部26の構成および動作は、第一実施形態の全身画像合成部15の構成および動作と同様であるため、説明を省略する。また、顔タイプ判定部22の構成および動作は、判定結果等を変形ポリシー設定部13の代わりに類似嗜好顔画像収集部23へ出力することを除いて、第一実施形態の顔タイプ判定部12の構成および動作と同様であるため、説明を省略する。
類似嗜好顔画像収集部23は、顔タイプ判定部22から、設定情報と、顔画像および顔距離情報と、顔タイプTiと、顔タイプTiの判定に用いた判定項目毎の判定結果とを取得する。類似嗜好顔画像収集部23は、制御装置110の記憶制御部114を介して記憶部104に保存されたユーザxの嗜好情報を取得する。嗜好情報は、服飾品およびインテリア等の好み、の購買履歴、閲覧履歴または投稿履歴等を含む。嗜好情報は、顔画像取得部21が取得する設定情報に予め含まれていてもよいし、制御装置110の操作情報取得部113を介してユーザxに操作部103から入力させてもよいし、ショッピングサイトのデータベース、WEB、SNS等の閲覧履歴等から取得してもよい。類似嗜好顔画像収集部23は、取得したユーザxの嗜好情報から、例えば、所定期間の購買履歴を抽出する。類似嗜好顔画像収集部23は、ユーザxと嗜好が類似する所定数の人物の顔画像である類似嗜好顔画像を収集する。類似嗜好顔画像には、撮像対象までの距離および撮像対象の3次元座標を含む類似嗜好顔距離情報が紐付けられているものとする。嗜好が類似する人物は、例えば、ユーザxの購入履歴と所定数以上が一致するまたは類似する購買履歴を有する人物である。すなわち、ユーザxの購入履歴との相関度が高い人物を嗜好が類似する人物とする。顔画像の収集は、例えば、ショッピングサイトのデータベース、WEB、SNS等から行われる。所定期間の購買履歴および購買履歴の一致数は、ショッピングサイト、WEB、SNS等の閲覧履歴等から取得できるものとする。類似嗜好顔画像収集部23は、設定情報と、顔画像および顔距離情報と、収集した類似嗜好顔画像および類似嗜好顔距離情報とを、変形ポリシー設定部24へ出力する。
変形ポリシー設定部24は、類似嗜好顔画像収集部23から、設定情報と、顔画像および顔距離情報と、収集した類似嗜好顔画像および類似嗜好顔距離情報とを取得する。変形ポリシー設定部24は、変形ポリシーとして、ユーザxの顔画像および収集した類似嗜好顔画像の平均画像をアバター生成に利用することを設定する。変形ポリシー設定部24は、設定情報と、顔画像および顔距離情報と、類似嗜好顔画像および類似嗜好顔距離情報と、設定した変形ポリシーとを、顔変形部25へ出力する。
顔変形部25は、変形ポリシー設定部24から、設定情報と、顔画像および顔距離情報と、類似嗜好顔画像および類似嗜好顔距離情報と、変形ポリシーとを取得する。顔変形部25は、変形ポリシーに基づいて、変形顔画像および変形顔距離情報を生成する。顔変形部25は、変形ポリシーに基づいて、ユーザxの顔画像および収集した複数の類似嗜好顔画像を平均して平均顔画像を生成し、変形顔画像とする。顔変形部25は、変形ポリシーに基づいて、ユーザxの顔距離情報および収集した複数の類似嗜好顔距離情報を平均して平均顔距離情報を生成し、変形顔距離情報とする。顔変形部25は、設定情報、生成した変形顔画像および変形顔距離情報を全身画像合成部26へ出力する。
図7は、第二実施形態に係るアバター生成装置20の処理の一例を示すフローチャートである。アバター生成装置20は、制御装置110の操作情報取得部113を介して操作部103が所定の開始操作を受け付けたことによって、図7に示すステップST21に移行して処理を開始する。
アバター生成装置20は、撮像画像から顔画像を取得する(ステップST21)。より具体的には、アバター生成装置20は、まず、顔画像取得部21に、撮像部101が撮像したユーザxの全身撮像画像および全身距離情報を取得させる。アバター生成装置20は、次に、顔画像取得部21に、全身撮像画像および全身距離情報からそれぞれ顔の部分を抽出して、ユーザxの顔画像および顔距離情報を生成させる。アバター生成装置20は、ステップST22に移行する。
アバター生成装置20は、顔画像から顔タイプTiを判定する(ステップST22)。より具体的には、アバター生成装置20は、まず、顔タイプ判定部22に、顔画像および顔距離情報に基づいて、判定番号Niに対応する判定項目毎にA判定、B判定、C判定またはD判定のいずれかに判定させる。アバター生成装置20は、次に、顔タイプ判定部22に、判定項目毎の判定結果に基づいて、顔タイプTiを判定させる。アバター生成装置20は、ステップST23に移行する。
アバター生成装置20は、購買履歴、閲覧履歴および投稿履歴等に基づいて、嗜好が類似する人物の顔画像である類似嗜好顔画像を収集する(ステップST21)。より具体的には、アバター生成装置20は、まず、類似嗜好顔画像収集部23に、ユーザxの嗜好情報を取得させる。嗜好情報は、服飾品およびインテリア等の購買履歴、閲覧履歴または投稿履歴等の相関度を含む。アバター生成装置20は、次に、類似嗜好顔画像収集部23に、取得した嗜好情報から、例えば、所定期間の購買履歴を抽出させる。アバター生成装置20は、次に、類似嗜好顔画像収集部23に、ユーザxと嗜好が類似する人物の顔画像である類似嗜好顔画像および類似嗜好顔距離情報を収集させる。嗜好が類似する人物は、例えば、ユーザxの購入履歴と所定数一致する購買履歴を有する人物である。アバター生成装置20は、ステップST24に移行する。
アバター生成装置20は、変形ポリシーを設定する(ステップST24)。より具体的には、アバター生成装置20は、変形ポリシー設定部24に、変形ポリシーとして、ユーザxの顔画像および収集した類似嗜好顔画像の平均画像をアバター生成に利用することを設定させる。アバター生成装置20は、ステップST25に移行する。
アバター生成装置20は、顔画像および複数の類似嗜好顔画像を平均して平均顔画像を変形顔画像として生成する(ステップST25)。より具体的には、アバター生成装置20は、顔変形部25に、顔画像および収集した複数の類似嗜好顔画像を平均して、ユーザxとユーザxに嗜好が類似する複数の人物との平均顔画像を生成し、変形顔画像とさせる。また、アバター生成装置20は、顔変形部25に、顔距離情報および収集した複数の類似嗜好顔距離情報を平均して、ユーザxとユーザxに嗜好が類似する複数の人物との平均顔距離情報を生成し、変形顔距離情報とさせる。アバター生成装置20は、ステップST26に移行する。
アバター生成装置20は、撮像画像に変形顔画像を合成してアバター画像を生成する(ステップST26)。より具体的には、アバター生成装置20は、まず、全身画像合成部26に、撮像部101が撮像したユーザxの全身撮像画像および全身距離情報を取得させる。アバター生成装置20は、次に、全身画像合成部26に、変形顔画像を全身撮像画像に合成して変形全身画像であるアバター画像を生成させる。また、アバター生成装置20は、全身画像合成部26に、変形顔距離情報を全身距離情報に合成して変形全身距離情報であるアバター距離情報を生成させる。アバター生成装置20は、図7に示すフローチャートの処理を終了する。
以上のように、第二実施形態のアバター生成装置20は、ユーザxおよびユーザxと類似する傾向の服飾品またはインテリアの購買履歴等を有する所定数の人物の平均顔画像のアバター画像を生成する。一般的に、人は自分に似合う服飾品を購買することから、類似する傾向の購買履歴を有する複数の人物から生成した平均顔は、その購買履歴にある衣服が似合うことが想定できる。
第二実施形態のアバター生成装置20で生成したアバター画像を使用した服飾マッチングシステム1は、遠隔ショッピング等において、ユーザxが仮想的に服飾品を試着する際に、ユーザxおよびユーザxと嗜好が類似する平均顔画像を有するアバターに服飾品を試着させることができる。これにより、ユーザyにユーザxの個人情報を特定させることなく、ユーザxに似合う服飾品を推薦してもらうことが可能である。
第二実施形態では購買履歴の相関度を利用したが、例えば、投稿履歴の相関度を利用する場合、類似嗜好顔画像収集部23は、所定期間の投稿履歴または投稿履歴が一致するまたは類似する数を、ショッピングサイト等からではなく、SNS等にアップロードされた写真画像から服飾品等を抽出することによって取得してもよい。類似嗜好顔画像収集部23は、SNS等にアップロードされた文章から衣服に関連するキーワードを抽出することによって取得してもよい。
(第三実施形態)
図8および図9を用いて、第三実施形態に係るアバター生成装置30について説明する。第三実施形態に係るアバター生成装置20は、好きな有名人等のユーザxの所定数のお気に入り顔の顔画像を平均した平均顔画像を利用したアバターを生成する。ここで、好きな有名人等は、有名人等の顔、ファッション、性格、話術、音楽や絵画、映像等の芸術作品、ライフスタイル等、種々の観点から好きな場合が挙げられるが、ここでは顔またはファッションの観点から好きな有名人等であることが好ましく、特に顔が好きな有名人等であることがより好ましい。図8は、第三実施形態に係るアバター生成装置30の構成の一例を示すブロック図である。アバター生成装置30は、顔画像取得部31と、顔タイプ判定部32と、お気に入り顔画像収集部33と、変形ポリシー設定部34と、顔変形部35と、全身画像合成部36と、を含む。なお、顔画像取得部31および全身画像合成部36の構成および動作は、第一実施形態の顔画像取得部11および全身画像合成部15の構成および動作と同様であるため、説明を省略する。また、顔変形部35の構成および動作は、第二実施形態の顔変形部25の構成および動作と同様であるため、説明を省略する。また、顔タイプ判定部32の構成および動作は、判定結果等を変形ポリシー設定部13の代わりにお気に入り顔画像収集部33へ出力することを除いて、第一実施形態の顔タイプ判定部12の構成および動作と同様であるため、説明を省略する。
お気に入り顔画像収集部33は、顔タイプ判定部32から、設定情報と、顔画像および顔距離情報と、顔タイプTiと、顔タイプTiの判定に用いた判定項目毎の判定結果とを取得する。お気に入り顔画像収集部33は、制御装置110の記憶制御部114を介して記憶部104に保存されたユーザxのお気に入り顔を有する有名人情報を取得する。有名人情報は、顔画像取得部31が取得する設定情報に予め含まれていてもよいし、制御装置110の操作情報取得部113を介してユーザxに操作部103から入力させてもよい。有名人情報は、所定数の有名人の情報を含む。有名人は、例えば、モデル、芸能人、スポーツ選手、政治家または文芸家等である。お気に入り顔画像収集部33は、取得した所定数の有名人の顔画像であるお気に入り顔顔画像を、WEBまたはSNS等から収集する。お気に入り顔画像には、撮像対象までの距離および撮像対象の3次元座標を含むお気に入り顔距離情報が紐付けられているものとする。お気に入り顔画像収集部33は、設定情報と、顔画像および顔距離情報と、収集したお気に入り顔画像およびお気に入り顔距離情報とを、変形ポリシー設定部34へ出力する。
変形ポリシー設定部34は、お気に入り顔画像収集部33から、設定情報と、顔画像および顔距離情報と、収集したお気に入り顔画像およびお気に入り顔距離情報とを取得する。変形ポリシー設定部34は、変形ポリシーとして、ユーザxの顔画像および収集したお気に入り顔画像の平均画像をアバター生成に利用することを設定する。変形ポリシー設定部34は、設定情報と、顔画像および顔距離情報と、お気に入り顔画像およびお気に入り顔距離情報と、設定した変形ポリシーとを、顔変形部35へ出力する。
顔変形部35は、変形ポリシー設定部34から、設定情報と、顔画像および顔距離情報と、お気に入り顔画像およびお気に入り顔距離情報と、変形ポリシーとを取得する。顔変形部35は、変形ポリシーに基づいて、変形顔画像および変形顔距離情報を生成する。顔変形部35は、変形ポリシーに基づいて、ユーザxの顔画像および収集した複数のお気に入り顔画像を平均して平均顔画像を生成し、変形顔画像とする。顔変形部35は、変形ポリシーに基づいて、ユーザxの顔距離情報および収集した複数のお気に入り顔距離情報を平均して平均顔距離情報を生成し、変形顔距離情報とする。顔変形部35は、設定情報、生成した変形顔画像および変形顔距離情報を全身画像合成部36へ出力する。
図9は、第三実施形態に係るアバター生成装置30の処理の一例を示すフローチャートである。アバター生成装置30は、制御装置110の操作情報取得部113を介して操作部103が所定の開始操作を受け付けたことによって、図9に示すステップST31に移行して処理を開始する。
アバター生成装置30は、撮像画像から顔画像を取得する(ステップST31)。より具体的には、アバター生成装置30は、まず、顔画像取得部31に、撮像部101が撮像したユーザxの全身撮像画像および全身距離情報を取得させる。アバター生成装置30は、次に、顔画像取得部31に、全身撮像画像および全身距離情報からそれぞれ顔の部分を抽出して、ユーザxの顔画像および顔距離情報を生成させる。アバター生成装置30は、ステップST32に移行する。
アバター生成装置30は、顔画像から顔タイプTiを判定する(ステップST32)。より具体的には、アバター生成装置30は、まず、顔タイプ判定部32に、顔画像および顔距離情報に基づいて、判定番号Niに対応する判定項目毎にA判定、B判定、C判定またはD判定のいずれかに判定させる。アバター生成装置30は、次に、顔タイプ判定部32に、判定項目毎の判定結果に基づいて、顔タイプTiを判定させる。アバター生成装置30は、ステップST33に移行する。
アバター生成装置30は、お気に入り顔の有名人の顔画像であるお気に入り顔画像を収集する(ステップST33)。より具体的には、アバター生成装置30は、まず、お気に入り顔画像収集部33に、ユーザxのお気に入り顔の有名人情報を取得させる。有名人情報は、所定数の有名人の情報を含む。アバター生成装置30は、次に、お気に入り顔画像収集部33に、取得した所定数の有名人の顔画像であるお気に入り顔画像およびお気に入り顔距離情報を、WEBまたはSNS等から収集させる。アバター生成装置30は、ステップST34に移行する。
アバター生成装置30は、変形ポリシーを設定する(ステップST34)。より具体的には、アバター生成装置30は、変形ポリシー設定部34に、変形ポリシーとして、ユーザxの顔画像および収集したお気に入り顔画像の平均画像をアバター生成に利用することを設定させる。アバター生成装置30は、ステップST35に移行する。
アバター生成装置30は、顔画像および複数のお気に入り顔画像を平均して平均顔画像を変形顔画像として生成する(ステップST35)。より具体的には、アバター生成装置30は、顔変形部35に、顔画像および収集した複数のお気に入り顔画像を平均して、ユーザxとお気に入り顔の複数の有名人との平均顔画像を生成し、変形顔画像とさせる。また、アバター生成装置30は、顔変形部35に、顔距離情報および収集した複数のお気に入り顔距離情報を平均して、ユーザxとお気に入り顔の複数の有名人との平均顔距離情報を生成し、変形顔距離情報とさせる。アバター生成装置30は、ステップST36に移行する。
アバター生成装置30は、撮像画像に変形顔画像を合成してアバター画像を生成する(ステップST36)。より具体的には、アバター生成装置30は、まず、全身画像合成部36に、撮像部101が撮像したユーザxの全身撮像画像および全身距離情報を取得させる。アバター生成装置30は、次に、全身画像合成部36に、変形顔画像を全身撮像画像に合成して変形全身画像であるアバター画像を生成させる。また、アバター生成装置30は、全身画像合成部36に、変形顔距離情報を全身距離情報に合成して変形全身距離情報であるアバター距離情報を生成させる。アバター生成装置30は、図9に示すフローチャートの処理を終了する。
以上のように、第三実施形態のアバター生成装置30は、ユーザxおよびユーザxのお気に入り顔を有する有名人の平均顔画像のアバター画像を生成する。一般的に人は好きな有名人のようになりたいという願望を有していることから、好きな有名人から生成した平均顔画像は、ユーザxの着てみたい服飾品が似合うことが想定できる。
第三実施形態のアバター生成装置30で生成したアバター画像を使用した服飾マッチングシステム1は、遠隔ショッピング等において、ユーザxが仮想的に服飾品を試着する際に、ユーザxおよびユーザxのお気に入り顔を有する有名人の平均顔画像を有するアバターに服飾品を試着させることができる。これにより、ユーザyにユーザxの個人情報を特定させることなく、ユーザxに似合う服飾品を推薦してもらうことが可能である。
(第四実施形態)
図10乃至図15を用いて、第四実施形態に係るアバター生成装置40について説明する。第四実施形態に係るアバター生成装置40は、ユーザx自身の撮像画像を元に、所定の変形方法で選択対象の顔パーツを自動的に変形したアバターを生成する。図10は、第四実施形態に係るアバター生成装置40の構成の一例を示すブロック図である。アバター生成装置40は、顔画像取得部41と、顔タイプ判定部42と、顔パーツ変形設定部43と、顔パーツ変形部44と、全身画像合成部45と、を含む。なお、顔画像取得部41の構成および動作は、第一実施形態の顔画像取得部11の構成および動作と同様であるため、説明を省略する。また、顔タイプ判定部42の構成および動作は、判定結果等を変形ポリシー設定部13の代わりに顔パーツ変形設定部43へ出力することを除いて、第一実施形態の顔タイプ判定部12の構成および動作と同様であるため、説明を省略する。また、全身画像合成部45の構成および動作は、変形顔画像および変形距離情報等を顔変形部14の代わりに顔パーツ変形部44から取得することを除いて、第一実施形態の全身画像合成部15の構成および動作と同様であるため、説明を省略する。
顔パーツ変形設定部43は、顔タイプ判定部42から、設定情報と、顔画像および顔距離情報と、顔タイプTiと、顔タイプTiの判定に用いた判定項目毎の判定結果とを取得する。顔パーツ変形設定部43は、顔タイプTiに基づいて、顔画像から顔タイプTiの判定結果に影響を与えない顔パーツを変形対象の顔パーツとして設定する。変形対象の顔パーツは、判定番号N1、N2、N3、N4、N5、N6、N7に対応して分類される。顔パーツ変形設定部43は、変形対象の顔パーツが含まれる顔パーツリストを生成する。顔パーツ変形設定部43は、ユーザxの顔タイプTiおよび変形対象の顔パーツの判定結果に基づいて、変形方法を設定する。変形方法は、変形対象の顔パーツに対応する上限値Vmaxおよび下限値Vminを含む変形許容範囲を含む。顔パーツ変形設定部43は、設定情報、顔画像、顔距離情報、生成した顔パーツリストおよび変形方法を顔パーツ変形部44へ出力する。
顔パーツ変形部44は、顔パーツ変形設定部43から、設定情報、顔画像、顔距離情報、生成した顔パーツリストおよび変形方法を取得する。顔パーツ変形部44は、変形方法に基づいて、変形設定値を設定する。変形設定値は、各顔パーツに対応する判定番号Ni毎に設定される。変形設定値は、判定項目毎に設定された所定の2箇所の比率の値である。所定の2箇所は、後述の表7に示される。顔パーツ変形部44は、顔画像から顔パーツリストに登録されている変形対象の顔パーツ画像を抽出する。顔パーツ変形部44は、設定された変形方法および変形設定値に基づいて変形対象の顔パーツ画像を変形した変形顔パーツ画像を生成する。顔パーツ変形部44は、顔距離情報から顔パーツリストに登録されている変形対象の顔パーツ距離情報を抽出する。顔パーツ変形部44は、設定された変形方法および変形設定値に基づいて変形対象の顔パーツ距離情報を変形した変形顔パーツ距離情報を生成する。顔パーツ変形部44は、変形顔パーツ画像を顔画像に合成して変形顔画像を生成する。顔パーツ変形部44は、変形顔パーツ距離情報を顔距離情報に合成して変形顔距離情報を生成する。顔パーツ変形部44は、設定情報、生成した変形顔画像および変形顔距離情報を全身画像合成部45へ出力する。
図11は、第四実施形態に係るアバター生成装置40の処理の一例を示すフローチャートである。アバター生成装置40は、制御装置110の操作情報取得部113を介して操作部103が所定の開始操作を受け付けたことによって、図11に示すステップST41に移行して処理を開始する。
アバター生成装置40は、撮像画像から顔画像を取得する(ステップST41)。より具体的には、アバター生成装置40は、まず、顔画像取得部41に、撮像部101が撮像したユーザxの全身撮像画像および全身距離情報を取得させる。アバター生成装置40は、次に、顔画像取得部41に、全身撮像画像および全身距離情報からそれぞれ顔の部分を抽出して、ユーザxの顔画像および顔距離情報を生成させる。アバター生成装置40は、ステップST42に移行する。
アバター生成装置40は、顔画像から顔タイプTiを判定する(ステップST42)。より具体的には、アバター生成装置40は、まず、顔タイプ判定部42に、顔画像および顔距離情報に基づいて、判定番号Niに対応する判定項目毎にA判定、B判定、C判定またはD判定のいずれかに判定させる。アバター生成装置40は、次に、顔タイプ判定部42に、判定項目毎の判定結果に基づいて、顔タイプTiを判定させる。アバター生成装置40は、ステップST43に移行する。
アバター生成装置40は、変形対象の顔パーツおよび変形方法を設定する(ステップST43)。より具体的には、アバター生成装置40は、まず、顔パーツ変形設定部43に、顔タイプTiに基づいて、顔画像から顔タイプTiの判定結果に影響を与えない顔パーツを変形対象の顔パーツとして設定させる。アバター生成装置40は、次に、顔パーツ変形設定部43に、変形対象の顔パーツが含まれる顔パーツリストを生成させる。アバター生成装置40は、次に、顔パーツ変形設定部43に、ユーザxの顔タイプTiおよび変形対象の顔パーツの判定結果に基づいて、変形方法を設定させる。アバター生成装置40は、ステップST44に移行する。
アバター生成装置40は、設定された変形方法に基づいて、変形対象の顔パーツを変形して変形顔画像を生成する(ステップST44)。より具体的には、アバター生成装置40は、まず、顔パーツ変形部44に、変形方法に基づいて、変形設定値を設定させる。アバター生成装置40は、次に、顔パーツ変形部44に、顔画像から顔パーツリストに登録されている変形対象の顔パーツ画像を抽出させる。また、アバター生成装置40は、顔パーツ変形部44に、設定された変形方法および変形設定値に基づいて変形対象の顔パーツ画像を変形した変形顔パーツ画像を生成させる。アバター生成装置40は、次に、顔パーツ変形部44に、顔距離情報から顔パーツリストに登録されている変形対象の顔パーツ距離情報を抽出させる。また、アバター生成装置40は、顔パーツ変形部44に、設定された変形方法および変形設定値に基づいて変形対象の顔パーツ距離情報を変形した変形顔パーツ距離情報を生成させる。アバター生成装置40は、次に、顔パーツ変形部44に、変形顔パーツ画像を顔画像に合成して変形顔画像を生成させる。また、アバター生成装置40は、顔パーツ変形部44に、変形顔パーツ距離情報を顔距離情報に合成して変形顔距離情報を生成させる。アバター生成装置40は、ステップST45に移行する。
アバター生成装置40は、撮像画像に変形顔画像を合成してアバター画像を生成する(ステップST45)。より具体的には、アバター生成装置40は、全身画像合成部45に、変形顔画像を全身撮像画像に合成して変形全身画像であるアバター画像を生成させる。また、アバター生成装置40は、全身画像合成部45に、変形顔距離情報を全身距離情報に合成して変形全身距離情報であるアバター距離情報を生成させる。アバター生成装置40は、図11に示すフローチャートの処理を終了する。
変形対象の顔パーツの変形方法の設定について、詳細に説明する。顔パーツリストは、1つ以上の変形対象の顔パーツを含む。表6は、顔タイプTiに対応した顔パーツリストに含まれる変形対象の顔パーツの制限の一例を示す表である。表6に示す一例において、全ての顔タイプTiで判定番号N5に対応する顔パーツである顔の立体感は、変形対象から除いている。また、表6に示す一例において、顔タイプT2、T6で判定番号N6に対応する顔パーツである目の大きさは、変形対象から除いている。
表7は、判定番号N1、N2、N3、N4、N5、N6、N7に対応する変形対象の顔パーツ毎の比率の、A判定とされる閾値、上限値および下限値を示す表である。ユーザxの顔パーツに対応する判定番号Ni毎の判定結果は、比率によって示される判定値Vが閾値以下であるとA判定となり、判定値Vが閾値より大きいとB判定となる。表7に示す上限値および下限値は、A判定となる値およびB判定となる値を合わせた変形許容範囲を示す。すなわち、表7に示す上限値は、B判定となる範囲の上限値である。表7に示す下限値は、A判定となる範囲の下限値である。B判定となる範囲の下限値は、第四実施形態では閾値と同じであるが、本発明では閾値より大きくてもよい。A判定となる範囲の上限値は、第四実施形態では閾値と同じであるが、本発明では閾値より小さくてもよい。
図12は、第四実施形態に係る顔パーツ変形設定部43の処理の一例を示すフローチャートである。顔パーツ変形設定部43は、例えば、図11のステップST43に示す顔タイプ判定部42の処理が終了したことによって、図12に示すステップST201に移行して処理を開始する。より詳しくは、顔タイプ判定部42の処理は、例えば、設定情報と、顔画像および顔距離情報と、顔タイプTiと、顔タイプTiの判定に用いた判定項目毎の判定結果とを、顔パーツ変形設定部43へ出力することによって終了する。
顔パーツ変形設定部43は、顔タイプ判定部42が判定したユーザxの顔タイプTiを取得する(ステップST201)。第四実施形態において、顔タイプTiは、表1に示す顔タイプT1、T2、T3、T4、T5、T6、T7、T8のいずれかである。顔パーツ変形設定部43は、ステップST202に移行する。
顔パーツ変形設定部43は、取得した顔タイプTiに基づいて、変形対象の顔パーツを設定する(ステップST202)。第四実施形態において、変形対象の顔パーツは、表2に示す判定番号N1、N2、N3、N4、N5、N6、N7に対応して分類される。変形対象の顔パーツは、表6に示すように設定される。顔パーツ変形設定部43は、ステップST203に移行する。
顔パーツ変形設定部43は、変形対象の顔パーツに対応する判定番号Ni毎に判定結果を取得する(ステップST203)。変形対象の顔パーツの判定結果は、表2に示すように、A判定またはB判定である。顔パーツ変形設定部43は、ステップST204に移行する。
顔パーツ変形設定部43は、ステップST201で取得した顔タイプTiが、顔タイプT1、T2、T3、T4のいずれかであるか否かを判定する(ステップST204)。顔タイプT1、T2、T3、T4は、すなわち、A判定の数が多い顔タイプTiである。顔タイプTiが顔タイプT1、T2、T3、T4のいずれかである場合(ステップST204;Yes)、顔パーツ変形設定部43は、ステップST205に移行する。顔タイプTiが顔タイプT1、T2、T3、T4のいずれでもない場合(ステップST204;No)、顔パーツ変形設定部43は、ステップST206に移行する。
顔タイプTiが顔タイプT1、T2、T3、T4のいずれかである場合(ステップST204;Yes)、顔パーツ変形設定部43は、ステップST203で取得した変形対象の顔パーツの判定結果がA判定か否かを判定する(ステップST205)。変形対象の顔パーツの判定結果がA判定である場合(ステップST205;Yes)、顔パーツ変形設定部43は、ステップST207に移行する。変形対象の顔パーツの判定結果がA判定でない場合(ステップST205;No)、顔パーツ変形設定部43は、ステップST208に移行する。
顔タイプTiが顔タイプT1、T2、T3、T4のいずれでもない場合(ステップST204;No)、顔パーツ変形設定部43は、ステップST203で取得した変形対象の顔パーツの判定結果がA判定か否かを判定する(ステップST206)。変形対象の顔パーツの判定結果がA判定である場合(ステップST206;Yes)、顔パーツ変形設定部43は、ステップST208に移行する。変形対象の顔パーツの判定結果がA判定でない場合(ステップST206;No)、顔パーツ変形設定部43は、ステップST209に移行する。
顔タイプTiが顔タイプT1、T2、T3、T4のいずれかである場合(ステップST204;Yes)、かつ変形対象の顔パーツの判定結果がA判定である場合(ステップST205;Yes)、顔パーツ変形設定部43は、変形対象の顔パーツの変形許容範囲を、A判定となる範囲に設定する(ステップST207)。すなわち、顔パーツ変形設定部43は、A判定となる顔パーツの数が変わらないか増えるように変形許容範囲を設定する。顔パーツ変形設定部43は、図12に示すフローチャートの処理を終了する。
顔タイプTiが顔タイプT1、T2、T3、T4のいずれかである場合(ステップST204;Yes)、かつ変形対象の顔パーツの判定結果がA判定でない場合(ステップST205;No)、顔パーツ変形設定部43は、変形対象の顔パーツの変形許容範囲を、A判定またはB判定となる範囲に設定する(ステップST208)。すなわち、顔パーツ変形設定部43は、B判定となる顔パーツの数が変わらないか減るように変形許容範囲を設定する。また、顔タイプTiが顔タイプT1、T2、T3、T4のいずれでもない場合(ステップST204;No)、かつ変形対象の顔パーツの判定結果がA判定である場合(ステップST206;Yes)、顔パーツ変形設定部43は、変形対象の顔パーツの変形許容範囲を、A判定またはB判定となる範囲に設定する(ステップST208)。すなわち、顔パーツ変形設定部43は、A判定となる顔パーツの数が変わらないか減るように変形許容範囲を設定する。顔パーツ変形設定部43は、図12に示すフローチャートの処理を終了する。
顔タイプTiが顔タイプT1、T2、T3、T4のいずれでもない場合(ステップST204;No)、かつ変形対象の顔パーツの判定結果がA判定でない場合(ステップST206;No)、顔パーツ変形設定部43は、変形対象の顔パーツの変形許容範囲を、B判定となる範囲に設定する(ステップST209)。すなわち、顔パーツ変形設定部43は、B判定となる顔パーツの数が変わらないか増えるように変形許容範囲を設定する。顔パーツ変形設定部43は、図12に示すフローチャートの処理を終了する。
図13は、第四実施形態に係る顔パーツ変形部44の処理の一例を示すフローチャートである。顔パーツ変形部44は、例えば、図11のステップST44に示す顔パーツ変形設定部43の処理が終了したことによって、図13に示すステップST251に移行して処理を開始する。より詳しくは、顔パーツ変形設定部43の処理は、設定情報、顔画像、顔距離情報、顔パーツリストおよび変形方法を、顔パーツ変形部44へ出力することによって終了する。
顔パーツ変形部44は、取得した顔パーツリストに基づいて、処理対象の顔パーツに対応する判定番号Niを取得する(ステップST251)。顔パーツ変形部44は、ステップST252に移行する。
顔パーツ変形部44は、判定番号Niに対応する判定値Vを取得する(ステップST252)。判定値Vは、表7の判定項目に示す各々の比率の値である。顔パーツ変形部44は、ステップST253に移行する。
顔パーツ変形部44は、判定番号Niに対応する判定結果を取得する(ステップST253)。変形対象の顔パーツの判定結果は、表7に示すように、A判定またはB判定である。顔パーツ変形部44は、ステップST254に移行する。
顔パーツ変形部44は、図12に示すフローチャートによって設定された変形許容範囲に基づいて、判定番号Niおよび判定結果に対応する上限値Vmaxを取得する(ステップST254)。例えば、変形許容範囲がA判定となる範囲に設定された場合、上限値Vmaxは、A判定となる範囲の上限値である。例えば、変形許容範囲がB判定となる範囲に設定された場合、上限値Vmaxは、表7に示す上限値である。顔パーツ変形部44は、ステップST255に移行する。
顔パーツ変形部44は、図12に示すフローチャートによって設定された変形許容範囲に基づいて、判定番号Niおよび判定結果に対応する下限値Vminを取得する(ステップST255)。例えば、変形許容範囲がA判定となる範囲に設定された場合、上限値Vmaxは、表7に示す下限値である。例えば、変形許容範囲がB判定となる範囲に設定された場合、上限値Vmaxは、B判定となる範囲の下限値である。顔パーツ変形部44は、ステップST256に移行する。
顔パーツ変形部44は、ステップST254で取得した上限値VmaxからステップST255で取得した下限値Vminを減算した値をさらに2で除算した値が判定値V以下か否かを判定する(ステップST256)。より具体的には、(上限値Vmax-下限値Vmin)/2≦判定値Vが成立するか否かを判定する。(上限値Vmax-下限値Vmin)/2の値が判定値V以下である場合(ステップST256;Yes)、顔パーツ変形部44は、ステップST257に移行する。(上限値Vmax-下限値Vmin)/2の値が判定値Vより大きい場合(ステップST256;No)、顔パーツ変形部44は、ステップST258に移行する。
(上限値Vmax-下限値Vmin)/2の値が判定値V以下である場合(ステップST256;Yes)、顔パーツ変形部44は、変形設定値を下限値Vminに設定する(ステップST257)。すなわち、判定値Vが、上限値Vmaxより下限値Vminに近い値である場合、顔パーツ変形部44は、変形設定値を下限値Vminに設定する。顔パーツ変形部44は、ステップST259に移行する。
(上限値Vmax-下限値Vmin)/2の値が判定値Vより大きい場合(ステップST256;No)、顔パーツ変形部44は、変形設定値を上限値Vmaxに設定する(ステップST258)。すなわち、判定値Vが、下限値Vminより上限値Vmaxに近い値である場合、顔パーツ変形部44は、変形設定値を上限値Vmaxに設定する。顔パーツ変形部44は、ステップST259に移行する。
顔パーツ変形部44は、判定番号Niに対応する変形設定値を保存する(ステップST259)。顔パーツ変形部44は、図13に示すフローチャートの処理を終了する。ステップST252からステップST259までは、判定番号Ni毎に実行し、全ての判定番号Niに対応する変形設定値を設定するまで繰り返し実行してもよい。
以上のように、第四実施形態のアバター生成装置40において、図13に示す一例では、顔パーツに対応する判定番号Ni毎に、変形許容範囲で変形量を最大化する。ユーザxの顔画像に対して変形量を大きくすることにより、アバター画像によるユーザxの個人情報等の秘匿性を向上させることができる。
図14は、第四実施形態に係る顔パーツ変形部44の処理の別の一例を示すフローチャートである。顔パーツ変形部44は、例えば、図11のステップST44に示す顔パーツ変形設定部43の処理が終了したことによって、図14に示すステップST301に移行して処理を開始する。より詳しくは、顔パーツ変形設定部43の処理は、設定情報、顔画像、顔距離情報、生成した顔パーツリストおよび変形方法を、顔パーツ変形部44へ出力することによって終了する。
顔パーツ変形部44は、乱数値Rを取得する(ステップST301)。乱数値Rは、例えば、現在時刻に基づいて乱数パターンが初期化される等、実行タイミングによるランダム性が保証された値である。乱数値Rは、0以上かつ1以下の範囲で設定される。顔パーツ変形部44は、ステップST302に移行する。
図14に示すステップST302からステップST303までの処理は、図13に示すステップST251からステップST252までの処理と同様の処理であるため、説明を省略する。顔パーツ変形部44は、ステップST304に移行する。図14に示すステップST304からステップST305までの処理は、図13に示すステップST254からステップST255までの処理と同様の処理であるため、説明を省略する。顔パーツ変形部44は、ステップST306に移行する。
顔パーツ変形部44は、乱数値R、上限値Vmaxおよび下限値Vminに基づいて、変形設定値を算出する(ステップST306)。より具体的には、変形設定値=乱数値R×(上限値Vmax-下限値Vmin)+下限値Vminに示す式を演算する。これにより、変形設定値は、上限値Vmaxと下限値Vminとの値に設定される。顔パーツ変形部44は、ステップST307に移行する。
顔パーツ変形部44は、判定番号Niに対応する変形設定値を保存する(ステップST307)。顔パーツ変形部44は、図14に示すフローチャートの処理を終了する。ステップST303からステップST307までは、判定番号Ni毎に実行し、全ての判定番号Niに対応する変形設定値を設定するまで繰り返し実行してもよい。ステップST301は、ステップST306より前であればいつ実行してもよく、判定番号Ni毎に設定してもよい。
以上のように、第四実施形態のアバター生成装置40において、図14に示す別の一例では、顔パーツに対応する判定番号Ni毎に、変形許容範囲でランダムに変形設定値を設定する。ユーザxの顔画像に対して顔パーツ毎に変形量を変化させることにより、アバター画像によるユーザxの個人情報等の秘匿性を向上させることができる。また、実行タイミングによって変形設定値が変化するため、複数のパターンのアバター画像を生成することができる。
図15は、第四実施形態に係る顔パーツ変形部44の処理のさらに別の一例を示すフローチャートである。顔パーツ変形部44は、例えば、図11のステップST44に示す顔パーツ変形設定部43の処理が終了したことによって、図15に示すステップST351に移行して処理を開始する。より詳しくは、顔パーツ変形設定部43の処理は、設定情報、顔画像、顔距離情報、生成した顔パーツリストおよび変形方法を、顔パーツ変形部44へ出力することによって終了する。
顔パーツ変形部44は、増減割合値Pを取得する(ステップST351)。より具体的には、顔パーツ変形部44は、制御装置110の記憶制御部114を介して、記憶部104に予め保存された増減割合値Pを取得する。増減割合値Pは、-1.0以上かつ1.0以下で予め設定される定数値である。顔パーツ変形部44は、ステップST352に移行する。
図15に示すステップST352からステップST356までの処理は、図13に示すステップST251からステップST255までの処理と同様の処理であるため、説明を省略する。顔パーツ変形部44は、ステップST357に移行する。
顔パーツ変形部44は、判定値V、増減割合値P、上限値Vmaxおよび下限値Vminに基づいて、変形設定値を算出する(ステップST357)。より具体的には、変形設定値=判定値V+増減割合値P×(上限値Vmax-下限値Vmin)に表す式を演算する。顔パーツ変形部44は、ステップST358に移行する。
顔パーツ変形部44は、ステップST357で算出した変形設定値が下限値Vmin以下か否かを判定する(ステップST358)。変形設定値が下限値Vmin以下である場合(ステップST358;Yes)、顔パーツ変形部44は、ステップST359に移行する。変形設定値が下限値Vminより大きい場合(ステップST358;No)、顔パーツ変形部44は、ステップST360に移行する。
変形設定値が下限値Vmin以下である場合(ステップST358;Yes)、顔パーツ変形部44は、変形設定値を下限値Vminに再設定する(ステップST359)。顔パーツ変形部44は、ステップST362に移行する。
変形設定値が下限値Vminより大きい場合(ステップST358;No)、顔パーツ変形部44は、ステップST357で算出した変形設定値が上限値Vmax以上か否かを判定する(ステップST360)。変形設定値が上限値Vmax以上である場合(ステップST360;Yes)、顔パーツ変形部44は、ステップST361に移行する。変形設定値が上限値Vmaxより小さい場合(ステップST360;No)、顔パーツ変形部44は、ステップST362に移行する。
変形設定値が上限値Vmax以上である場合(ステップST360;Yes)、顔パーツ変形部44は、変形設定値を上限値Vmaxに再設定する(ステップST361)。顔パーツ変形部44は、ステップST362に移行する。変形設定値が下限値Vminより大きく上限値Vmaxより小さい場合、変形設定値は、ステップST357で算出された値のままである。
顔パーツ変形部44は、判定番号Niに対応する変形設定値を保存する(ステップST362)。顔パーツ変形部44は、図15に示すフローチャートの処理を終了する。ステップST353からステップST362までは、判定番号Ni毎に実行し、全ての判定番号Niに対応する変形設定値を設定するまで繰り返し実行してもよい。
以上のように、第四実施形態のアバター生成装置40において、図15に示すさらに別の一例では、顔パーツに対応する判定番号Ni毎の判定値Vのバランスに基づいて、全ての顔パーツを所定の増減割合値Pで増減させて変形設定値を設定する。全ての顔パーツに対して同一の増減割合値Pで変形量を変化させることにより、顔のバランスが維持されるので、ユーザxに似たアバター画像を生成することができる。また、増減割合値Pを変化させることによって変形設定値が変化するため、複数のパターンのアバター画像を生成することができる。
図13乃至図15に示す例において、顔パーツ変形部44は、判定番号N1、N2、N3、N4、N5、N6、N7に対応する顔パーツの変形設定値を設定したが、判定番号N8、N9、N10、N11、N12、N13、N14、N15に対応する顔パーツについても同様に設定する。顔パーツ変形部44は、変形設定値に基づいて、変形対象の顔パーツ画像を変形した変形顔パーツ画像と、変形対象の顔パーツ距離情報を変形した変形顔パーツ距離情報とを生成する。顔パーツ変形部44は、変形顔パーツ画像を顔画像に合成して変形顔画像を生成する。顔パーツ変形部44は、変形顔パーツ距離情報を顔距離情報に合成して変形顔距離情報を生成する。顔パーツ変形部44は、設定情報、生成した変形顔画像および変形顔距離情報を全身画像合成部45へ出力する。
(第五実施形態)
図16乃至18を用いて、第五実施形態に係るアバター生成装置50について説明する。第五実施形態に係るアバター生成装置50は、ユーザx自身の撮像画像を元に、所定の変形方法で変形対象の顔パーツを、ユーザxの操作によって入力された変形設定値に基づいて変形したアバターを生成する。図16は、第五実施形態に係るアバター生成装置50の構成の一例を示すブロック図である。アバター生成装置50は、顔画像取得部51と、顔タイプ判定部52と、顔パーツ変形設定部53と、顔パーツ変形調整部54と、全身画像合成部55と、を含む。なお、顔画像取得部51および顔タイプ判定部52の構成および動作は、第四実施形態の顔画像取得部41および顔タイプ判定部42の構成および動作と同様であるため、説明を省略する。また、顔パーツ変形設定部53の構成および動作は、顔パーツリストおよび変形方法等を顔パーツ変形部44の代わりに顔パーツ変形調整部54へ出力することを除いて、第四実施形態の顔パーツ変形設定部43の構成および動作と同様であるため、説明を省略する。また、全身画像合成部55の構成および動作は、変形顔画像および変形距離情報等を顔パーツ変形部44の代わりに顔パーツ変形調整部54から取得することを除いて、第四実施形態の全身画像合成部45の構成および動作と同様であるため、説明を省略する。
顔パーツ変形調整部54は、顔パーツ変形設定部53から、設定情報、顔画像、顔距離情報、生成した顔パーツリストおよび変形方法を取得する。顔パーツ変形調整部54は、顔画像から顔パーツリストに登録されている変形対象の顔パーツ画像を抽出する。顔パーツ変形調整部54は、設定された変形方法およびユーザxの操作によって入力された変形設定値に基づいて、変形対象の顔パーツ画像を変形した変形顔パーツ画像を生成する。顔パーツ変形調整部54は、顔距離情報から顔パーツリストに登録されている変形対象の顔パーツ距離情報を抽出する。顔パーツ変形調整部54は、設定された変形方法およびユーザxの操作によって入力された顔パーツの変形設定値に基づいて、変形対象の顔パーツ距離情報を変形した変形顔パーツ距離情報を生成する。顔パーツ変形調整部54は、変形顔パーツ画像を顔画像に合成して変形顔画像を生成する。顔パーツ変形調整部54は、変形顔パーツ距離情報を顔距離情報に合成して変形顔距離情報を生成する。顔パーツ変形調整部54は、設定情報、生成した変形顔画像および変形顔距離情報を全身画像合成部55へ出力する。
図17は、第五実施形態に係るアバター生成装置50の処理の一例を示すフローチャートである。アバター生成装置50は、制御装置110の操作情報取得部113を介して操作部103が所定の開始操作を受け付けたことによって、図17に示すステップST51に移行して処理を開始する。
アバター生成装置50は、撮像画像から顔画像を取得する(ステップST51)。より具体的には、アバター生成装置50は、まず、顔画像取得部51に、撮像部101が撮像したユーザxの全身撮像画像および全身距離情報を取得させる。アバター生成装置50は、次に、顔画像取得部51に、全身撮像画像および全身距離情報からそれぞれ顔の部分を抽出して、ユーザxの顔画像および顔距離情報を生成させる。アバター生成装置50は、ステップST52に移行する。
アバター生成装置50は、顔画像から顔タイプTiを判定する(ステップST52)。より具体的には、アバター生成装置50は、まず、顔タイプ判定部52に、顔画像および顔距離情報に基づいて、判定番号Niに対応する判定項目毎にA判定、B判定、C判定またはD判定のいずれかに判定させる。アバター生成装置50は、次に、顔タイプ判定部52に、判定項目毎の判定結果に基づいて、顔タイプTiを判定させる。アバター生成装置50は、ステップST53に移行する。
アバター生成装置50は、変形対象の顔パーツおよび変形方法を設定する(ステップST53)。より具体的には、アバター生成装置50は、まず、顔パーツ変形設定部53に、顔タイプTiに基づいて、顔画像から顔タイプTiの判定結果に影響を与えない顔パーツを変形対象の顔パーツとして設定させる。アバター生成装置50は、次に、顔パーツ変形設定部53に、変形対象の顔パーツが含まれる顔パーツリストを生成させる。アバター生成装置50は、次に、顔パーツ変形設定部53に、ユーザxの顔タイプTiおよび変形対象の顔パーツの判定結果に基づいて、変形方法を設定させる。アバター生成装置50は、ステップST54に移行する。
アバター生成装置50は、設定された変形方法に基づく範囲で入力された変形設定値によって変形対象の顔パーツを変形して変形顔画像を生成する(ステップST54)。より具体的には、アバター生成装置50は、まず、顔パーツ変形調整部54に、顔画像から顔パーツリストに登録されている変形対象の顔パーツ画像を抽出させる。また、アバター生成装置50は、顔パーツ変形調整部54に、顔距離情報から顔パーツリストに登録されている変形対象の顔パーツ距離情報を抽出させる。アバター生成装置50は、次に、顔パーツ変形調整部54に、設定された変形方法およびユーザxの操作によって入力された変形設定値に基づいて、変形対象の顔パーツ画像を変形した変形顔パーツ画像を生成させる。また、アバター生成装置50は、顔パーツ変形調整部54に、設定された変形方法およびユーザxの操作によって入力された顔パーツの変形設定値に基づいて、変形対象の顔パーツ距離情報を変形した変形顔パーツ距離情報を生成させる。アバター生成装置50は、次に、顔パーツ変形調整部54に、変形顔パーツ画像を顔画像に合成して変形顔画像を生成させる。また、アバター生成装置50は、顔パーツ変形調整部54に、変形顔パーツ距離情報を顔距離情報に合成して変形顔距離情報を生成させる。アバター生成装置50は、ステップST55に移行する。
アバター生成装置50は、撮像画像に変形顔画像を合成してアバター画像を生成する(ステップST55)。より具体的には、アバター生成装置50は、全身画像合成部55に、変形顔画像を全身撮像画像に合成して変形全身画像であるアバター画像を生成させる。また、アバター生成装置50は、全身画像合成部55に、変形顔距離情報を全身距離情報に合成して変形全身距離情報であるアバター距離情報を生成させる。アバター生成装置50は、図17に示すフローチャートの処理を終了する。
図18は、第五実施形態に係る顔パーツ変形調整部54を操作する操作画面の一例を示す図である。操作画面は、ユーザxの移動体端末100Xの表示部105に表示されるアプリウィンドウ150上に表示される。アプリウィンドウ150は、アバター画像表示領域160と、パラメータ表示領域170と、決定ボタン180と、を含む。アバター画像表示領域160には、ユーザxの顔画像、またはユーザxの操作によって変形した変形顔画像が表示される。
パラメータ表示領域170は、顔パーツ毎に、項目名表示領域171と、パラメータバー172と、上限値表示領域173と、下限値表示領域174と、調整つまみ175と、プラスボタン176と、マイナスボタン177と、変形設定値表示領域178と、を含む。項目名表示領域171には、顔パーツに対応する判定番号Niの判定項目名が表示される。パラメータバー172は、第五実施形態において、横長の長方形状である。パラメータバー172上には、長方形状の長手方向に沿ってスライド操作可能な調整つまみ175が表示される。上限値表示領域173には、顔パーツ毎に顔パーツ変形設定部53が設定した上限値Vmaxが表示される。下限値表示領域174には、顔パーツ毎に顔パーツ変形設定部53が設定した下限値Vminが表示される。
調整つまみ175は、顔パーツ毎にパラメータバー172上を長手方向に沿ってスライド可能である。調整つまみ175は、パラメータバー172上の位置に対応して変形設定値を調整する。例えば、調整つまみ175は、左端部にある場合に変形設定値が下限値Vminとなり、右端部にある場合に変形設定値が上限値Vmaxとなるように調整する。
プラスボタン176は、制御装置110の操作情報取得部113を介して所定操作を受け付けることによって、顔パーツ毎に調整つまみ175を操作画面の右方向に所定量移動させる。マイナスボタン177は、制御装置110の操作情報取得部113を介して所定操作を受け付けることによって、顔パーツ毎に調整つまみ175を操作画面の左方向に所定量移動させる。変形設定値表示領域178には、顔パーツ毎に調整つまみ175の位置に対応した変形設定値が表示される。
顔パーツ変形調整部54は、変形対象ではない顔パーツのパラメータバー172、調整つまみ175、プラスボタン176およびマイナスボタン177は、ユーザxによって調整できないようする。顔パーツ変形調整部54は、例えば、図17に示すように、操作画面において、変形対象ではない顔パーツのパラメータバー172、調整つまみ175、プラスボタン176およびマイナスボタン177を変形不可表示領域179として、グレーアウト表示させてもよい。
以上のように、第五実施形態のアバター生成装置50は、顔タイプ判定によって変形対象となった顔パーツについて予め定められた顔パーツ毎の比率、上限値および下限値を用いて、ユーザxに変形許容範囲内での変形を受け付ける入力方法を提供する。これにより、ユーザxの顔画像を元に、所定の変形方法で変形対象の顔パーツを、ユーザxの手動操作によって入力された変形設定値に基づいて変形したアバター画像を生成することができる。これにより、変形対象の顔のパーツの変形をユーザx自身が行うことで納得性の高いアバター画像を生成できる。
(第六実施形態)
図19乃至22を用いて、第六実施形態に係るアバター生成装置60について説明する。第六実施形態に係るアバター生成装置60は、ユーザx自身の撮像画像を元に、顔パーツ毎に別のアバターの顔パーツと置換したアバターを生成する。図19は、第六実施形態に係るアバター生成装置60の構成の一例を示すブロック図である。アバター生成装置60は、顔画像取得部61と、顔タイプ判定部62と、顔パーツ取得部63と、顔パーツ置換部64と、全身画像合成部65と、を含む。なお、顔画像取得部61の構成および動作は、第一実施形態の顔画像取得部11の構成および動作と同様であるため、説明を省略する。また、顔タイプ判定部62の構成および動作は、判定結果等を変形ポリシー設定部13の代わりに顔パーツ取得部63へ出力することを除いて、第一実施形態の顔タイプ判定部12の構成および動作と同様であるため、説明を省略する。また、全身画像合成部65の構成および動作は、変形顔画像および変形距離情報等を顔変形部14の代わりに顔パーツ置換部64から取得することを除いて、第一実施形態の全身画像合成部15の構成および動作と同様であるため、説明を省略する。
顔パーツ取得部63は、顔タイプ判定部62から、設定情報と、顔画像および顔距離情報と、顔タイプTiと、顔タイプTiの判定に用いた判定項目毎の判定結果とを取得する。顔パーツ取得部63は、置換する顔パーツの分類を選択するようユーザxに報知する報知情報、および選択肢情報等を、制御装置110の表示制御部115を介して表示部105に表示させる。顔パーツ取得部63は、制御装置110の操作情報取得部113を介して操作部103から受け付けた入力情報に基づいて、選択された分類の置換用のアバター顔パーツ画像をランダムに複数取得する。アバター顔パーツ画像には、撮像対象までの距離および撮像対象の3次元座標を含むアバター顔パーツ距離情報が紐付けられているものとする。記憶部104には、顔パーツ毎の置換用のアバター顔パーツ画像のデータベースが保存される。
データベースには、顔パーツ毎の置換用のアバター顔画像およびアバター顔距離情報が保存されている。データベースに保存されているアバター顔画像には、顔タイプTiの判定結果が設定されている。データベースに保存されているアバター顔画像には、判定番号Niごとに判定結果が設定されている。データベースに保存されているアバター顔画像は、個人が特定できないように、顔パーツ毎に分割した状態で保存されている。顔パーツの分類項目は、例えば、顔の形、眉毛、目、鼻、口を含む。顔の形は、判定番号N1、N2、N5、N8、N9に対応する。眉毛は、判定番号N13に対応する。目は、判定番号N3、N6、N10、N11、N12に対応する。鼻は、判定番号N4、N7,N14に対応する。口は、判定番号N15に対応する。データベースは、通信ネットワークを介して定期的に更新可能である。顔パーツ取得部63は、顔画像と、取得したアバター顔パーツ画像の選択肢情報とを、制御装置110の表示制御部115を介して表示部105に表示させる。
顔パーツ置換部64は、制御装置110の操作情報取得部113を介して操作部103から受け付けた入力情報に基づいて、顔画像の顔パーツ画像を、置換用のアバター顔パーツ画像に置換して変形顔パーツ画像を生成する。顔パーツ置換部64は、制御装置110の操作情報取得部113を介して操作部103から受け付けた入力情報に基づいて、顔距離情報の顔パーツ距離情報を、置換用のアバター顔パーツ距離情報に置換して変形顔パーツ距離情報を生成する。置き換える置換用のアバター顔パーツ画像は、ユーザxによって選択される。顔パーツ置換部64は、表示部105に置換作業中の顔画像を表示させながら、ユーザxの入力による置換操作を受け付ける。顔パーツ置換部64は、変形顔パーツ画像を顔画像に合成して変形顔画像を生成する。顔パーツ置換部64は、変形顔パーツ距離情報を顔距離情報に合成して変形顔距離情報を生成する。顔パーツ置換部64は、設定情報、生成した変形顔画像および変形顔距離情報を全身画像合成部65へ出力する。なお、顔パーツ取得部63および顔パーツ置換部64において生成される変形顔画像の顔タイプTiは、ユーザxの顔画像の顔タイプTiと変わらないように制限されるものとする。
図20は、第六実施形態に係るアバター生成装置60の処理の一例を示すフローチャートである。アバター生成装置60は、制御装置110の操作情報取得部113を介して操作部103が所定の開始操作を受け付けたことによって、図20に示すステップST61に移行して処理を開始する。
アバター生成装置60は、撮像画像から顔画像を取得する(ステップST61)。より具体的には、アバター生成装置60は、まず、顔画像取得部61に、撮像部101が撮像したユーザxの全身撮像画像および全身距離情報を取得させる。アバター生成装置60は、次に、顔画像取得部61に、全身撮像画像および全身距離情報からそれぞれ顔の部分を抽出して、ユーザxの顔画像および顔距離情報を生成させる。アバター生成装置60は、ステップST62に移行する。
アバター生成装置60は、顔画像から顔タイプTiを判定する(ステップST62)。より具体的には、アバター生成装置60は、まず、顔タイプ判定部62に、顔画像および顔距離情報に基づいて、判定番号Niに対応する判定項目毎にA判定、B判定、C判定またはD判定のいずれかに判定させる。アバター生成装置60は、次に、顔タイプ判定部62に、判定項目毎の判定結果に基づいて、顔タイプTiを判定させる。アバター生成装置60は、ステップST63に移行する。
アバター生成装置60は、選択された顔パーツの分類のアバター顔パーツ画像を取得する(ステップST63)。より具体的には、アバター生成装置60は、まず、顔パーツ取得部63に、制御装置110の操作情報取得部113を介して、置換する顔パーツの分類を選択するユーザxによる操作部103への入力操作を受け付けさせる。顔パーツ取得部63は、置換する顔パーツの分類を選択するに報知する報知情報、および選択肢情報等を、制御装置110の表示制御部115を介して表示部105に表示させる。アバター生成装置60は、次に、顔パーツ取得部63に、制御装置110の操作情報取得部113を介して操作部103から受け付けた入力情報に基づいて、選択された分類の置換用のアバター顔パーツ画像をランダムに複数取得させる。アバター生成装置60は、ステップST64に移行する。
アバター生成装置60は、選択されたアバター顔パーツ画像に置換する(ステップST64)。より具体的には、アバター生成装置60は、まず、顔パーツ置換部64に、制御装置110の操作情報取得部113を介して、置換するアバター顔パーツ画像を選択するユーザxによる操作部103への入力操作を受け付けさせる。アバター生成装置60は、次に、顔パーツ置換部64に、制御装置110の操作情報取得部113を介して操作部103から受け付けた入力情報に基づいて、顔画像の顔パーツ画像を、置換用のアバター顔パーツ画像に置換して変形顔パーツ画像を生成させる。また、アバター生成装置60は、顔パーツ置換部64に、制御装置110の操作情報取得部113を介して操作部103から受け付けた入力情報に基づいて、顔距離情報の顔パーツ距離情報を、置換用のアバター顔パーツ距離情報に置換して変形顔パーツ距離情報を生成させる。アバター生成装置60は、次に、顔パーツ置換部64に、変形顔パーツ画像を顔画像に合成して変形顔画像を生成させる。また、アバター生成装置60は、顔パーツ置換部64に、変形顔パーツ距離情報を顔距離情報に合成して変形顔距離情報を生成させる。アバター生成装置60は、ステップST65に移行する。
アバター生成装置60は、撮像画像に変形顔画像を合成してアバター画像を生成する(ステップST65)。より具体的には、アバター生成装置60は、全身画像合成部65に、変形顔画像を全身撮像画像に合成して変形全身画像であるアバター画像を生成させる。また、アバター生成装置60は、全身画像合成部65に、変形顔距離情報を全身距離情報に合成して変形全身距離情報であるアバター距離情報を生成させる。アバター生成装置60は、図20に示すフローチャートの処理を終了する。
図21は、第六実施形態に係る顔パーツ置換処理の一例を示すフローチャートである。顔パーツ置換処理において、図21に示すステップST401からステップST404までの処理は、顔パーツ取得部63によって実行される。顔パーツ置換処理において、図21に示すステップST405からステップST411までの処理は、顔パーツ置換部64によって実行される。顔パーツ取得部63は、例えば、図19のステップST62に示す顔タイプ判定部62の処理が終了したことによって、図21に示すステップST401に移行して処理を開始する。より詳しくは、顔タイプ判定部62の処理は、設定情報と、顔画像および顔距離情報と、顔タイプTiと、顔タイプTiの判定に用いた判定項目毎の判定結果とを、顔パーツ取得部63へ出力することによって終了する。
顔パーツ取得部63は、制御装置110の表示制御部115を介して、表示部105にユーザxの顔画像を表示させる(ステップST401)。顔パーツ取得部63は、ステップST402に移行する。
顔パーツ取得部63は、顔タイプ判定部62が判定したユーザxの顔タイプTiを取得する(ステップST402)。第六実施形態において、顔タイプTiは、表1に示す顔タイプT1、T2、T3、T4、T5、T6、T7、T8のいずれかである。顔パーツ取得部63は、ステップST403に移行する。
顔パーツ取得部63は、置換する顔パーツの分類を選択するようユーザxに報知する報知情報、および選択肢情報等を、制御装置110の表示制御部115を介して表示部105に表示させる。顔パーツ取得部63は、置換する顔パーツの分類が選択されたか否かを判定する(ステップST403)。より具体的には、顔パーツ取得部63は、制御装置110の操作情報取得部113を介して操作部103から、置換する顔パーツの分類を選択する操作を受け付けたか否かを判定する。置換する顔パーツの分類が選択されていない場合(ステップST403;No)、顔パーツ取得部63は、置換する顔パーツの分類が選択されるまで、所定の周期毎にステップST403を繰り返し実行する。置換する顔パーツの分類が選択された場合(ステップST403;Yes)、顔パーツ取得部63は、ステップST404に移行する。
顔パーツ取得部63は、制御装置110の記憶制御部114を介して記憶部104から、ステップST403で選択された顔パーツの分類のアバター顔パーツ画像をランダムに複数取得する。顔パーツ取得部63は、制御装置110の表示制御部115を介して、表示部105に取得した複数のアバター顔パーツ画像を表示させる(ステップST404)。表示部105には、顔画像と複数のアバター顔パーツ画像とが表示されている。アバター生成装置60は、ステップST405に移行する。
顔パーツ置換部64は、表示部105に置換作業中の顔画像を表示させながら、ユーザxの入力による置換操作を受け付ける。置き換える置換用のアバター顔パーツ画像は、ユーザxによって選択される。顔パーツ置換部64は、置換するアバター顔パーツ画像が選択されたか否かを判定する(ステップST405)。より具体的には、顔パーツ置換部64は、制御装置110の操作情報取得部113を介して操作部103から、置換するアバター顔パーツ画像を選択する操作を受け付けたか否かを判定する。置換するアバター顔パーツ画像が選択されていない場合(ステップST405;No)、顔パーツ置換部64は、所定の周期毎にステップST405を繰り返し実行する。置換するアバター顔パーツ画像が選択された場合(ステップST405;Yes)、顔パーツ置換部64は、ステップST406に移行する。
顔パーツ置換部64は、顔画像の顔パーツ画像を、置換用のアバター顔パーツ画像に置換して変形顔画像を生成する。顔パーツ置換部64は、顔距離情報の顔パーツ距離情報を、置換用のアバター顔パーツ距離情報に置換して変形顔距離情報を生成する。顔パーツ置換部64は、制御装置110の表示制御部115を介して表示部105に、顔パーツ画像をアバター顔パーツ画像に置換した変形顔画像を表示させる(ステップST406)。なお、ステップST405およびステップST406は、置換させる顔パーツ全てに対してアバター顔パーツ画像が置換されるまで繰り返し実行してもよいし、ステップST405のみを繰り返し、ステップST406で置換させる顔パーツ全てをアバター顔パーツ画像にまとめて置換してもよい。これらの場合、ステップST403に戻り、顔パーツ分類の選択からステップST406におけるアバター顔パーツ画像への置換までを繰り返してもよい。顔パーツ置換部64は、ステップST407に移行する。
顔パーツ置換部64は、置換後の変形顔画像について、顔タイプを判定する(ステップST407)。より具体的には、顔パーツ置換部64は、変形顔画像および変形顔距離情報を顔タイプ判定部62へ出力する。顔タイプ判定部62は、取得した変形顔画像および変形顔距離情報に基づいて、置換後の変形顔画像について、顔タイプを判定する。顔タイプ判定部62は、判定結果を顔パーツ置換部64へ出力する。変形顔画像の顔タイプの判定方法は、ユーザxの顔画像の顔タイプTiの判定方法と同様であるため、説明を省略する。顔パーツ置換部64は、ステップST408に移行する。
顔パーツ置換部64は、置換後の変形顔画像から判定された顔タイプが、ユーザxの顔画像から判定された顔タイプTiと同じか否かを判定する(ステップST408)。変形顔画像の顔タイプが、ユーザxの顔タイプTiと同じである場合(ステップST408;Yes)、顔パーツ置換部64は、ステップST409に移行する。変形顔画像の顔タイプが、ユーザxの顔タイプTiと同じでない場合(ステップST408;No)、顔パーツ置換部64は、ステップST410に移行する。
顔パーツ置換部64は、制御装置110の表示制御部115を介して、表示部105に確定ボタンを表示させる(ステップST409)。確定ボタンは、ユーザxが操作部103に所定操作を行うことによって、置換後の変形顔画像をアバター画像に用いることを確定させるための操作信号を制御装置110の操作情報取得部113に出力させる。顔パーツ置換部64は、ステップST411に移行する。
顔パーツ置換部64は、制御装置110の表示制御部115を介して、表示部105に文字、記号または色等によって表される所定の警告情報を表示させる(ステップST410)。アバター生成装置60は、ステップST403に移行する。
顔パーツ置換部64は、変形顔画像をアバター画像に用いることを確定させるか否かを判定する(ステップST411)。より具体的には、顔パーツ置換部64は、制御装置110の操作情報取得部113を介して操作部103から、置換後の変形顔画像をアバター画像に用いることを確定させる操作を受け付けたか否かを判定する。変形顔画像をアバター画像に用いることを確定させない場合(ステップST411;No)、アバター生成装置60は、ステップST403に移行する。変形顔画像をアバター画像に用いることを確定させる場合(ステップST411;Yes)、顔パーツ置換部64は、図21に示すフローチャートの処理を終了する。
以上のように、第六実施形態のアバター生成装置60は、ユーザxの顔画像を元に、ユーザxの任意の選択によって、顔パーツ毎に別のアバターの顔パーツと置換したアバター画像を生成することができる。これにより、変形対象の顔のパーツの変形をユーザx自身が行うことで納得性の高いアバター画像を生成できる。この際、図21に示す一例では、置換後の変形顔画像の顔タイプがユーザxの顔タイプTiと同じか否かを確認することによって、ユーザxに似たアバター画像を生成することができる。
図22は、第六実施形態に係る顔パーツ置換処理の別の一例を示すフローチャートである。顔パーツ置換処理において、図22に示すステップST451からステップST454までの処理は、顔パーツ取得部63によって実行される。顔パーツ置換処理において、図22に示すステップST455からステップST456までの処理は、顔パーツ置換部64によって実行される。顔パーツ取得部63は、例えば、図19のステップST62に示す顔タイプ判定部62の処理が終了したことによって、図22に示すステップST451に移行して処理を開始する。より詳しくは、顔タイプ判定部62の処理は、設定情報と、顔画像および顔距離情報と、顔タイプTiと、顔タイプTiの判定に用いた判定項目毎の判定結果とを、顔パーツ取得部63へ出力することによって終了する。
図22に示すステップST451からステップST453までの処理は、図21に示すステップST401およびステップST403までの処理と同様の処理であるため、説明を省略する。顔パーツ取得部63は、ステップST454に移行する。
顔パーツ取得部63は、制御装置110の記憶制御部114を介して記憶部104から、ステップST453で選択された顔パーツの分類のアバター顔パーツ画像をランダムに複数取得する。顔パーツ取得部63が取得するアバター顔パーツは、選択された顔パーツに対応する判定項目の判定結果がユーザxと同じ判定結果であるものとする。例えば、選択された顔パーツが「目」である場合、判定番号N3、N6、N10、N11、N12の判定結果がユーザxの判定結果と同じアバター顔パーツ画像のみが取得される。顔パーツ取得部63は、制御装置110の表示制御部115を介して、表示部105に取得した複数のアバター顔パーツ画像を表示させる(ステップST454)。表示部105には、顔画像と複数のアバター顔パーツ画像とが表示されている。アバター生成装置60は、ステップST455に移行する。
図22に示すステップST455の処理は、図21に示すステップST405の処理と同様の処理であるため、説明を省略する。顔パーツ置換部64は、ステップST456に移行する。
顔パーツ置換部64は、顔画像の顔パーツ画像を、置換用のアバター顔パーツ画像に置換して変形顔画像を生成する。顔パーツ置換部64は、顔距離情報の顔パーツ距離情報を、置換用のアバター顔パーツ距離情報に置換して変形顔距離情報する。顔パーツ置換部64は、制御装置110の表示制御部115を介して表示部105に、顔パーツ画像をアバター顔パーツ画像に置換した変形顔画像を表示させる(ステップST456)。なお、ステップST455およびステップST456は、置換させる顔パーツ全てに対してアバター顔パーツ画像が置換されるまで繰り返し実行してもよいし、ステップST455のみを繰り返し、ステップST456で置換させる顔パーツ全てをアバター顔パーツ画像にまとめて置換してもよい。これらの場合、ステップST453に戻り、顔パーツ分類の選択からステップST456におけるアバター顔パーツ画像への置換までを繰り返してもよい。顔パーツ置換部64は、図22に示すフローチャートの処理を終了する。
以上のように、第六実施形態のアバター生成装置60において、図22に示す一例では、置換用のアバター顔パーツ画像を、対応するユーザxの顔パーツの判定結果と同一のものに限定した上で、変形対象の顔のパーツの変形をユーザx自身が行う。これにより、ユーザxに似てかつ納得性の高いアバター画像を生成できる。
(第七実施形態)
図23および25を用いて、第七実施形態に係るアバター生成装置70について説明する。第七実施形態に係るアバター生成装置70は、ユーザx自身の撮像画像を元に、顔パーツ毎に有名人のアバターの顔パーツと置換したアバターを生成する。図23は、第七実施形態に係るアバター生成装置70の構成の一例を示すブロック図である。アバター生成装置70は、顔画像取得部71と、顔タイプ判定部72と、アバター取得部73と、顔パーツ置換部74と、全身画像合成部75と、を含む。なお、顔画像取得部71および全身画像合成部75の構成および動作は、第六実施形態の顔画像取得部61および全身画像合成部65の構成および動作と同様であるため、説明を省略する。また、顔タイプ判定部72の構成および動作は、判定結果等を顔パーツ取得部63の代わりにアバター取得部73へ出力することを除いて、第六実施形態の顔タイプ判定部62の構成および動作と同様であるため、説明を省略する。
アバター取得部73は、顔タイプ判定部72から、設定情報と、顔画像および顔距離情報と、顔タイプTiと、顔タイプTiの判定に用いた判定項目毎の判定結果とを取得する。アバター取得部73は、置換する顔パーツを有する有名人のアバター顔画像を選択するようユーザxに報知する報知情報、および選択肢情報等を、制御装置110の表示制御部115を介して表示部105に表示させる。アバター取得部73は、制御装置110の操作情報取得部113を介して操作部103から受け付けた入力情報に基づいて、選択された置換用のアバター顔画像を取得する。アバター顔画像には、撮像対象までの距離および撮像対象の3次元座標を含むアバター顔距離情報が紐付けられているものとする。記憶部104には、置換用のアバター顔画像のデータベースが保存される。
データベースには、有名人のアバター顔画像およびアバター顔距離情報が保存されている。データベースに保存されているアバター顔画像には、顔タイプTiの判定結果が設定されている。データベースに保存されているアバター顔画像には、判定番号Niごとに判定結果が設定されている。データベースに保存されているアバター顔画像は、顔パーツ毎に分割可能な状態で保存されている。データベースは、通信ネットワークを介して定期的に更新可能である。アバター取得部73は、顔画像と、取得したアバター顔画像の選択肢情報とを、制御装置110の表示制御部115を介して表示部105に表示させる。
顔パーツ置換部74は、制御装置110の操作情報取得部113を介して操作部103から受け付けた入力情報に基づいて、選択された顔パーツについて、顔画像の顔パーツ画像を有名人のアバター顔パーツ画像に置換して変形顔パーツ画像を生成する。顔パーツ置換部74は、制御装置110の操作情報取得部113を介して操作部103から受け付けた入力情報に基づいて、選択された顔パーツについて、顔距離情報の顔パーツ距離情報を有名人のアバター顔パーツ距離情報に置換して変形顔パーツ距離情報を生成する。顔画像とアバター顔画像とで置き換える顔パーツは、ユーザxによって選択される。顔パーツ置換部74は、表示部105に置換作業中の顔画像を表示させながら、ユーザxの入力による置換操作を受け付ける。顔パーツ置換部74は、変形顔パーツ画像を顔画像に合成して変形顔画像を生成する。顔パーツ置換部74は、変形顔パーツ距離情報を顔距離情報に合成して変形顔距離情報を生成する。顔パーツ置換部74は、設定情報、生成した変形顔画像および変形顔距離情報を全身画像合成部75へ出力する。なお、アバター取得部73および顔パーツ置換部74において生成される変形顔画像の顔タイプTiは、ユーザxの顔画像の顔タイプTiと変わらないように制限されるものとする。
図24は、第七実施形態に係るアバター生成装置70の処理の一例を示すフローチャートである。アバター生成装置70は、制御装置110の操作情報取得部113を介して操作部103が所定の開始操作を受け付けたことによって、図24に示すステップST71に移行して処理を開始する。
アバター生成装置70は、撮像画像から顔画像を取得する(ステップST71)。より具体的には、アバター生成装置70は、まず、顔画像取得部71に、撮像部101が撮像したユーザxの全身撮像画像および全身距離情報を取得させる。アバター生成装置70は、次に、顔画像取得部71に、全身撮像画像および全身距離情報からそれぞれ顔の部分を抽出して、ユーザxの顔画像および顔距離情報を生成させる。アバター生成装置70は、ステップST72に移行する。
アバター生成装置70は、顔画像から顔タイプTiを判定する(ステップST72)。より具体的には、アバター生成装置70は、まず、顔タイプ判定部72に、顔画像および顔距離情報に基づいて、判定番号Niに対応する判定項目毎にA判定、B判定、C判定またはD判定のいずれかに判定させる。アバター生成装置70は、次に、顔タイプ判定部72に、判定項目毎の判定結果に基づいて、顔タイプTiを判定させる。アバター生成装置70は、ステップST73に移行する。
アバター生成装置70は、選択されたアバター顔画像を取得する(ステップST73)。より具体的には、アバター生成装置70は、まず、アバター取得部73に、制御装置110の操作情報取得部113を介して、置換する顔パーツを有する有名人のアバター顔画像を選択するユーザxによる操作部103への入力操作を受け付けさせる。アバター取得部73は、置換する顔パーツを有する有名人のアバター顔画像を選択するようユーザxに報知する報知情報、および選択肢情報等を、制御装置110の表示制御部115を介して表示部105に表示させる。アバター生成装置70は、次に、アバター取得部73に、制御装置110の操作情報取得部113を介して操作部103から受け付けた入力情報に基づいて、選択された置換用のアバター顔画像を取得させる。アバター生成装置70は、ステップST74に移行する。
アバター生成装置70は、選択された顔パーツについて、顔画像の顔パーツ画像をアバター顔画像のアバター顔パーツ画像に置換する(ステップST74)。より具体的には、アバター生成装置70は、まず、顔パーツ置換部74に、制御装置110の操作情報取得部113を介して、置換する顔パーツを選択するユーザxによる操作部103への入力操作を受け付けさせる。アバター生成装置70は、次に、顔パーツ置換部74に、制御装置110の操作情報取得部113を介して操作部103から受け付けた入力情報に基づいて、選択された顔パーツについて、顔画像の顔パーツ画像を有名人のアバター顔パーツ画像に置換して変形顔パーツ画像を生成させる。また、アバター生成装置70は、顔パーツ置換部74に、制御装置110の操作情報取得部113を介して操作部103から受け付けた入力情報に基づいて、選択された顔パーツについて、顔距離情報の顔パーツ距離情報を有名人のアバター顔パーツ距離情報に置換して変形顔パーツ距離情報を生成させる。アバター生成装置70は、次に、顔パーツ置換部74に、変形顔パーツ画像を顔画像に合成して変形顔画像を生成させる。また、アバター生成装置70は、顔パーツ置換部74に、変形顔パーツ距離情報を顔距離情報に合成して変形顔距離情報を生成させる。アバター生成装置70は、ステップST75に移行する。
アバター生成装置70は、撮像画像に変形顔画像を合成してアバター画像を生成する(ステップST75)。より具体的には、アバター生成装置70は、全身画像合成部75に、変形顔画像を全身撮像画像に合成して変形全身画像であるアバター画像を生成させる。また、アバター生成装置70は、全身画像合成部75に、変形顔距離情報を全身距離情報に合成して変形全身距離情報であるアバター距離情報を生成させる。アバター生成装置70は、図24に示すフローチャートの処理を終了する。
図25は、第七実施形態に係る顔パーツ置換処理の一例を示すフローチャートである。顔パーツ置換処理において、図25に示すステップST501からステップST504までの処理は、アバター取得部73によって実行される。顔パーツ置換処理において、図22に示すステップST505からステップST511までの処理は、顔パーツ置換部74によって実行される。アバター取得部73は、例えば、図24のステップST72に示す顔タイプ判定部72の処理が終了したことによって、図25に示すステップST501に移行して処理を開始する。より詳しくは、顔タイプ判定部72の処理は、設定情報と、顔画像および顔距離情報と、顔タイプTiと、顔タイプTiの判定に用いた判定項目毎の判定結果とを、アバター取得部73へ出力することによって終了する。
アバター取得部73は、制御装置110の表示制御部115を介して、表示部105にユーザxの顔画像を表示させる(ステップST501)。アバター取得部73は、ステップST502に移行する。
アバター取得部73は、顔タイプ判定部62が判定したユーザxの顔タイプTiを取得する(ステップST502)。第六実施形態において、顔タイプTiは、表1に示す顔タイプT1、T2、T3、T4、T5、T6、T7、T8のいずれかである。アバター取得部73は、ステップST503に移行する。
アバター取得部73は、置換する顔パーツを有する有名人のアバター顔画像を選択するようユーザxに報知する報知情報、および選択肢情報等を、制御装置110の表示制御部115を介して表示部105に表示させる。アバター取得部73は、置換する顔パーツを有する有名人のアバター顔画像が選択されたか否かを判定する(ステップST503)。より具体的には、アバター取得部73は、制御装置110の操作情報取得部113を介して操作部103から、置換する顔パーツを有する有名人のアバター顔画像を選択する操作を受け付けたか否かを判定する。置換する顔パーツを有する有名人のアバター顔画像が選択されていない場合(ステップST503;No)、アバター取得部73は、置換する顔パーツを有する有名人のアバター顔画像が選択されるまで、所定の周期毎にステップST503を繰り返し実行する。置換する顔パーツを有する有名人のアバター顔画像が選択された場合(ステップST503;Yes)、アバター取得部73は、ステップST504に移行する。
アバター取得部73は、制御装置110の表示制御部115を介して、表示部105に選択されたアバター顔画像を表示させる(ステップST504)。表示部105には、顔画像と選択されたアバター顔画像とが表示されている。アバター生成装置70は、ステップST505に移行する。
顔パーツ置換部74は、表示部105に置換作業中の顔画像を表示させながら、ユーザxの入力による置換操作を受け付ける。顔画像とアバター顔画像とで置き換える顔パーツは、ユーザxによって選択される。顔パーツ置換部74は、置換する顔パーツが選択されたか否かを判定する(ステップST505)。より具体的には、顔パーツ置換部74は、制御装置110の操作情報取得部113を介して操作部103から、置換する顔パーツを選択する操作を受け付けたか否かを判定する。置換する顔パーツが選択されていない場合(ステップST505;No)、顔パーツ置換部74は、所定の周期毎にステップST505を繰り返し実行する。置換する顔パーツが選択された場合(ステップST505;Yes)、顔パーツ置換部74は、ステップST506に移行する。
顔パーツ置換部74は、選択された顔パーツについて、顔画像の顔パーツ画像を、アバター顔画像のアバター顔パーツ画像に置換して変形顔画像を生成する。顔パーツ置換部74は、選択された顔パーツについて、顔距離情報の顔パーツ距離情報を、アバター顔画像のアバター顔パーツ距離情報に置換して変形顔距離情報を生成する。顔パーツ置換部74は、制御装置110の表示制御部115を介して表示部105に、顔パーツ画像をアバター顔パーツ画像に置換した変形顔画像を表示させる(ステップST506)。なお、ステップST505およびステップST506は、置換させる顔パーツ全てに対してアバター顔パーツ画像が置換されるまで繰り返し実行してもよいし、ステップST505のみを繰り返し、ステップST506で置換させる顔パーツ全てをアバター顔パーツ画像にまとめて置換してもよい。顔パーツ置換部74は、ステップST507に移行する。
顔パーツ置換部74は、置換後の変形顔画像について、顔タイプを判定する(ステップST507)。より具体的には、顔パーツ置換部74は、変形顔画像および変形顔距離情報を顔タイプ判定部72へ出力する。顔タイプ判定部72は、取得した変形顔画像および変形顔距離情報に基づいて、置換後の変形顔画像について、顔タイプを判定する。顔タイプ判定部72は、判定結果を顔パーツ置換部74へ出力する。変形顔画像の顔タイプの判定方法は、ユーザxの顔画像の顔タイプTiの判定方法と同様であるため、説明を省略する。顔パーツ置換部74は、ステップST508に移行する。
顔パーツ置換部74は、置換後の変形顔画像から判定された顔タイプが、ユーザxの顔画像から判定された顔タイプTiと同じか否かを判定する(ステップST508)。変形顔画像の顔タイプが、ユーザxの顔タイプTiと同じである場合(ステップST508;Yes)、顔パーツ置換部74は、ステップST509に移行する。変形顔画像の顔タイプが、ユーザxの顔タイプTiと同じでない場合(ステップST508;No)、顔パーツ置換部74は、ステップST510に移行する。
顔パーツ置換部74は、制御装置110の表示制御部115を介して、表示部105に確定ボタンを表示させる(ステップST509)。確定ボタンは、ユーザxが操作部103に所定操作を行うことによって、置換後の変形顔画像をアバター画像に用いることを確定させるための操作信号を制御装置110の操作情報取得部113に出力させる。顔パーツ置換部74は、ステップST511に移行する。
顔パーツ置換部74は、制御装置110の表示制御部115を介して、表示部105に文字、記号または色等によって表される所定の警告情報を表示させる(ステップST510)。アバター生成装置60は、ステップST503に移行する。
顔パーツ置換部74は、変形顔画像をアバター画像に用いることを確定させるか否かを判定する(ステップST511)。より具体的には、顔パーツ置換部74は、制御装置110の操作情報取得部113を介して操作部103から、置換後の変形顔画像をアバター画像に用いることを確定させる操作を受け付けたか否かを判定する。変形顔画像をアバター画像に用いることを確定させない場合(ステップST511;No)、アバター生成装置60は、ステップST503に移行する。変形顔画像をアバター画像に用いることを確定させる場合(ステップST511;Yes)、顔パーツ置換部74は、図25に示すフローチャートの処理を終了する。
以上のように、第七実施形態のアバター生成装置70は、ユーザxの顔画像を元に、ユーザxの任意の選択によって、顔パーツ毎に別のアバターの顔パーツと置換したアバター画像を生成することができる。これにより、変形対象の顔のパーツの変形をユーザx自身が行うことで納得性の高いアバター画像を生成できる。この際、図25に示す一例では、置換後の変形顔画像の顔タイプがユーザxの顔タイプTiと同じか否かを確認することによって、ユーザxに似たアバター画像を生成することができる。
(第四実施形態の変形例)
図26を用いて、第四実施形態の変形例に係るアバター生成装置40Aについて説明する。変形例に係るアバター生成装置40Aは、ユーザx自身の撮像画像を元に、所定の変形方法で選択対象の顔パーツおよび身体パーツを自動的に変形したアバターを生成する。図26は、第四実施形態の変形例に係るアバター生成装置40Aの構成の一例を示すブロック図である。アバター生成装置40Aは、第四実施形態のアバター生成装置40と比較して、身体画像取得部46と、骨格タイプ判定部47と、身体パーツ変形設定部48と、身体パーツ変形部49と、をさらに含む点で相違する。また、アバター生成装置40Aは、第四実施形態のアバター生成装置40と比較して、全身画像合成部45の代わりに、全身画像合成部45Aを含む点で相違する。
身体画像取得部46は、制御装置110の記憶制御部114を介して記憶部104に保存されたユーザxの全身撮像画像および全身距離情報を含む設定情報を取得する。以下の説明において、記憶部104から取得した全身撮像画像および全身距離情報は、正面から撮像した撮像画像およびユーザxの全身の正面からの距離情報とする。身体画像取得部46は、全身撮像画像および全身距離情報からそれぞれ身体の部分を抽出して、ユーザxの身体画像および身体距離情報を生成する。身体画像取得部46は、設定情報、生成した身体画像および身体距離情報を骨格タイプ判定部47へ出力する。
骨格タイプ判定部47は、身体画像取得部46から、設定情報、身体画像および身体距離情報を取得する。骨格タイプ判定部47は、身体画像および身体距離情報に基づいて、ユーザxの骨格タイプを判定する。骨格タイプは、身体と身体の各部分を示す身体パーツとのそれぞれの大きさ、位置および形状を評価することによって判定される。骨格タイプ判定部47は、学習用画像データセットとしての複数枚の教師データ画像と、教師データ画像を予め学習した推論器とを有する。教師データ画像は、例えば、骨格タイプ毎に100枚用意される。推論器の学習方法は、例えば、ディープラーニング等の機械学習である。
身体パーツ変形設定部48は、骨格タイプ判定部47から、設定情報と、身体画像および身体距離情報と、骨格タイプと、骨格タイプの判定に用いた判定項目毎の判定結果とを取得する。身体パーツ変形設定部48は、骨格タイプに基づいて、身体画像から骨格タイプの判定結果に影響を与えない身体パーツを変形対象の身体パーツとして設定する。身体パーツ変形設定部48は、変形対象の身体パーツが含まれる身体パーツリストを生成する。身体パーツ変形設定部48は、ユーザxの骨格タイプおよび変形対象の身体パーツの判定結果に基づいて、変形方法を設定する。変形方法は、変形対象の身体パーツに対応する上限値および下限値を含む変形許容範囲を含む。身体パーツ変形設定部48は、設定情報、身体画像、身体距離情報、生成した身体パーツリストおよび変形方法を身体パーツ変形部49へ出力する。
身体パーツ変形部49は、身体パーツ変形設定部48から、設定情報、身体画像、身体距離情報、生成した身体パーツリストおよび変形方法を取得する。身体パーツ変形部49は、身体画像から身体パーツリストに登録されている変形対象の身体パーツ画像を抽出する。身体パーツ変形部49は、設定された変形方法に基づいて変形対象の身体パーツ画像を変形した変形身体パーツ画像を生成する。身体パーツ変形部49は、身体距離情報から身体パーツリストに登録されている変形対象の身体パーツ距離情報を抽出する。身体パーツ変形部49は、設定された変形方法に基づいて変形対象の身体パーツ距離情報を変形した変形身体パーツ距離情報を生成する。身体パーツ変形部49は、変形身体パーツ画像を身体画像に合成して変形身体画像を生成する。身体パーツ変形部49は、変形身体パーツ距離情報を身体距離情報に合成して変形身体距離情報を生成する。身体パーツ変形部49は、設定情報、生成した変形身体画像および変形身体距離情報を全身画像合成部45Aへ出力する。
全身画像合成部45Aは、顔パーツ変形部44から、設定情報、変形顔画像および変形顔距離情報を取得する。全身画像合成部45Aは、身体パーツ変形部49から、設定情報、変形身体画像および変形身体距離情報を取得する。全身画像合成部45Aは、変形顔画像および変形身体画像を全身撮像画像に合成して変形全身画像であるアバター画像を生成する。全身画像合成部45Aは、変形顔距離情報および変形身体距離情報を全身距離情報に合成して変形全身距離情報であるアバター距離情報を生成する。全身画像合成部45Aは、設定情報、アバター画像およびアバター距離情報を制御装置110の情報取得部118へ出力する。
以上のように、第四実施形態の変形例のアバター生成装置40Aは、顔画像のみならず身体画像も変形したアバター画像を生成することができる。身体画像も変形させることにより、さらにアバター画像によるユーザxの個人情報等の秘匿性を向上させることができる。上記では、身体画像も変形したアバター画像を生成する構成例を、第四実施形態の変形例として説明したが、他の実施形態に身体画像も変形したアバター画像を適用してもよい。
なお、本発明は、上記各実施形態に限定されるものではない。即ち、本発明の骨子を逸脱しない範囲で種々変形して実施することができる。例えば、顔タイプは、上記各実施形態では、顔と顔の各部分を示す顔パーツとのそれぞれの大きさ、位置および形状に基づいて8つのタイプに分類されるが、本発明では、これに限定されない。顔タイプは、例えば、肌の色または目の色等に基づいて分類されてもよい。
図示したアバター生成装置10、20、30、40、50、60、70、移動体端末100および服飾マッチングシステム1の構成要素は、機能概念的なものであり、必ずしも物理的に図示の如く構成されていなくてもよい。すなわち、アバター生成装置10、20、30、40、50、60、70、移動体端末100および服飾マッチングシステム1の具体的形態は、図示のものに限られず、処理負担や使用状況等に応じて、その全部または一部を任意の単位で機能的または物理的に分散または統合してもよい。
アバター生成装置10、20、30、40、50、60、70および移動体端末100の構成は、例えば、ソフトウェアとして、メモリにロードされたプログラム等によって実現される。上記実施形態では、これらのハードウェアまたはソフトウェアの連携によって実現される機能ブロックとして説明した。すなわち、これらの機能ブロックについては、ハードウェアのみ、ソフトウェアのみ、または、それらの組み合わせによって種々の形で実現できる。