(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0007】
以下に添付図面を参照して、この発明にかかる情報処理装置の好適な実施形態を詳細に説明する。
【0008】
例えば顔領域を合成する場合、高品質な画像を用いることができれば、合成処理も高品質に実行できる。一方、例えば美容院などの撮影場所で撮影した画像(写真)を用いる場合、撮影場所の不安定な光環境(自然光が入る、逆光になる、多様な照明機器)などの影響により高品質な画像を用いることができず、合成品質が低下する場合がある。このような問題を解消するため、前景画像および背景画像の画素値を取得する技術があるが、このような技術では、実行時間が増大する。
【0009】
また、例えば顔領域が高精度にくりぬかれた髪型コンテンツに対して顔(特に細い顔)を合成する際に、髪型コンテンツと顔の輪郭とが適合せず、高品質な合成画像を得られないという問題があった。
【0010】
このような問題に対しては、上述のポアソンイメージエディティングを用いれば、コントラストを重視し、光環境の変化に強く、顔の輪郭のマッチングの自由度が高い合成を実現できる。ポアソンイメージエディティングでは、通常、合成する領域(顔画像を合成する場合は顔領域)を指定するための画像であるマスク画像が用いられる。ポアソンイメージエディティングでは、マスク画像で指定される領域の周辺の画素値から、この領域の内側の画素値を推定するため、より滑らかに画像を合成することができる。
【0011】
一方、画像から顔を検出する手法としては、ディープラーニングなどの機械学習による手法が知られている。しかし、このような手法では、顔検出を行うための教師データが不足しているため、特にメガネをかけた人物画像からの顔の検出の精度が低かった。例えば、黒縁のメガネをかけている場合、目および眉が高精度に検出できず、この結果、顔検出の精度が安定しなかった。また上記手法では顔の回転が検出できず、被写体の画像を水平に撮影しなければ高品質な顔合成が行えなかった。
【0012】
このような問題は、例えば顔全体に相当する矩形情報ではなく、顔に含まれる複数の部位それぞれを、機械学習を利用して検出する手法を適用すれば解決可能である。例えば、顔画像から、目、眉、鼻、口(唇)、および、顎などの部位に対応する合計68点の特徴点を機械学習により得られたモデル(学習モデル)を用いて検出する手法が提案されている。各点は事前に定義されており、点ごとに「右目の目じり」、および、「右唇の口角」などのように、どの部位のどの位置であるかまで検出することができる。
【0013】
しかしこのような検出手法を適用したとしても、画像の合成に例えばポアソンイメージエディティングを適用した場合は、上述のように、合成する領域(例えば顔の部位)の近傍に特徴的な色(例えば前髪、影などの輝度が小さい色)の影響が大きくなり、高品質な合成画像を生成できない場合があった。
【0014】
そこで、本実施形態では、機械学習を利用して検出した合成する部位の情報を参照して、画像を合成する領域を指定するために用いるマスク画像として、複数のマスク画像を生成する。複数のマスク画像は、それぞれ、合成する画像の領域のうち輝度が他の領域より大きい領域を、他のマスク画像と接する領域、または、他のマスク画像と重なる領域に含むように生成される。これにより、合成する領域の近傍に特徴的な色の影響を低減させ、より高品質に画像を合成することが可能となる。
【0015】
なお、以下では、画像合成技術としてポアソンイメージエディティングを用いる場合を主に説明するが、適用可能な画像合成技術はこれに限られるものではない。マスク画像を用いて合成する領域の輪郭部分を滑らかに合成する他の画像合成技術を用いてもよい。例えば、ガンマカーブを用いて画素値を補正して画像を合成する技術(例えば特許文献2)を用いてもよい。
【0016】
図1は、本実施形態の情報処理システム1の模式図である。
【0017】
情報処理システム1は、情報処理装置10と、端末装置12と、外部サーバ14と、を備える。情報処理装置10、端末装置12、および外部サーバ14は、ネットワーク16を介して有線または無線により通信可能に接続されている。
【0018】
なお、本実施形態では、情報処理システム1は、1台の情報処理装置10と、1台の外部サーバ14と、1台の端末装置12と、を備える場合を一例として説明する。しかし、情報処理システム1は、情報処理装置10、端末装置12、および外部サーバ14の少なくとも1つを、複数備えた構成であってもよい。
【0019】
ネットワーク16は、例えばインターネットであるが、その他のどのような形態のネットワークであってもよい。
【0020】
情報処理装置10は、合成画像を生成する装置である。合成画像の詳細は後述する。
【0021】
端末装置12は、ユーザによって操作される端末装置である。端末装置12は、例えば、携帯端末、および、スマートホンなどである。本実施形態では、端末装置12は、第1被写体によって操作される。
【0022】
第1被写体は、他の形態を仮想的に試行するユーザである。
【0023】
他の形態を仮想的に試行する、とは、頭髪の形態、皮膚上に描かれる刺青などの模様、および、アイテム、の少なくとも一つの形態を仮想的に試行することを意味する。アイテムは、ユーザに装着可能な物である。アイテムは、例えば、衣服、アクセサリ、かつら、メガネ、および、マスクなどである。衣服は、例えば、上着、スカート、ズボン、靴、帽子、および、水着などである。
【0024】
ユーザは、生物であってもよいし、非生物であってもよい。生物には、例えば、人物が挙げられる。なお、生物は、人物に限られず、犬および猫等の、人物以外の動物であってもよい。また、非生物には、人体および動物の形状を模したマネキン、並びに、その他の物体等が挙げられるが、これに限られない。本実施形態では、ユーザは、人物である場合を説明する。なお、第1被写体などの人物を総称して説明する場合、単に、ユーザと称して説明する。
【0025】
端末装置12は、撮影部12Aと、入力部12Bと、表示部12Cと、を備える。
【0026】
撮影部12Aは、第1被写体を撮影し、第1被写体の画像である第1被写体画像を得る。第1被写体画像は、被写体画像の一例である。撮影部12Aは、例えばデジタルカメラである。
【0027】
なお、第1被写体画像のデータ形式は限定されない。例えば、第1被写体画像は、画素ごとに色および輝度等を示す画素値の規定された画像である。なお、第1被写体画像は、ビットマップ画像に限定されない。
【0028】
入力部12Bは、ユーザによる操作指示を受付ける。入力部12Bは、キーボード、マウス、および、入力ボタンなどである。
【0029】
表示部12Cは、各種画像を表示する。本実施形態では、表示部12Cは、情報処理装置10で生成された合成画像を表示する。表示部12Cは、LCD(Liquid Crystal Display)、および、有機EL(Electro−Luminescence)ディスプレイなどである。なお、入力部12Bと表示部12Cは、一体的に構成してもよい。この場合、入力部12Bおよび表示部12Cは、例えばタッチパネルとして構成すればよい。
【0030】
外部サーバ14は、合成に用いる第2被写体画像(第2画像)、並びに、頭髪の形態、皮膚上に描かれる刺青などの模様、第2被写体に装着されたアイテム、および、アイテムに関する情報、などの様々な情報を含むビッグデータを処理可能なサーバ装置である。本実施形態では、外部サーバ14は、第2被写体画像、並びに、頭髪の形態、刺青の模様、および、アイテムの各々に関する情報などを記憶する。第2被写体は、第1被写体とは異なる被写体である。第2被写体画像は、第2被写体の被写体画像である。第2被写体画像の詳細は後述する。
【0031】
本実施形態の情報処理システム1では、情報処理装置10は、端末装置12で撮影された第1被写体画像と、外部サーバ14などから取得した第2被写体画像と、を用いて、合成画像を生成し、端末装置12へ提供する。
【0032】
情報処理装置10について、詳細に説明する。
【0033】
図2は、情報処理装置10の機能ブロック図の一例である。なお、
図2には、データの入出力の説明の観点から、端末装置12および外部サーバ14も示されている。
【0034】
情報処理装置10は、制御部20と、通信部22と、記憶部24と、表示部26と、入力部28と、を備える。通信部22、記憶部24、表示部26および入力部28と、制御部20とは、データおよび信号を授受可能に接続されている。
【0035】
通信部22は、ネットワーク16を介して端末装置12および外部サーバ14と通信する通信インターフェースである。
【0036】
記憶部24は、各種データを記憶する。例えば記憶部24は、第1被写体画像、教師データ、学習モデル、および、第2被写体情報、を記憶する。
【0037】
なお、記憶部24は、フラッシュメモリ、メモリカード、RAM(Random Access Memory)、HDD(Hard Disk Drive)、および、光ディスクなどの一般的に利用されているあらゆる記憶媒体により構成することができる。また、記憶部24を情報処理装置10内に備える代わりに、ネットワーク16に接続された記憶装置(クラウドストレージなど)に上記のような各種データを記憶してもよい。
【0038】
教師データは、学習モデルの学習に用いる教師データである。例えば教師データは、第1被写体画像と合成領域との対応を示すデータである。合成領域は、第1被写体画像内の、第2被写体画像に合成する領域である。
【0039】
合成領域は、例えば、第1被写体画像における、顔領域である。顔領域とは、人物の顔を構成する部位である、目、眉、鼻、口、および、顎を含む領域である。これらの部位のうち一部を含む領域を顔領域としてもよい。なお、以下では顔領域を合成領域とする場合、すなわち、顔画像を他の画像に合成する場合を例に説明するが、合成領域は、顔領域に限定されない。
【0040】
学習モデルは、被写体画像から合成領域を検出するためのモデルである。学習モデルは、後述する制御部20の処理によって、教師データを用いて学習される。
【0041】
記憶部24には、第1被写体画像と、第1被写体画像から検出された合成領域と、が対応付けて教師データとして記憶される。また、記憶部24には、複数の教師データが記憶されている。なお、教師データは、既に生成されているデータを用いてもよいし、例えば制御部20が生成して記憶部24に記憶してもよい。
【0042】
例えば、制御部20は、第1被写体画像から画像処理技術および顔認識技術などを用いて、第1被写体画像の顔領域を合成領域として検出すればよい。そして、制御部20は、該第1被写体画像と検出した顔領域との対応を教師データとして記憶部24へ記憶すればよい。なお、制御部20は、後述する処理などにより、適宜、新たな教師データの追加および合成領域の補正を行ってもよい。
【0043】
なお、教師データは、さらに、メタデータを含んでいてもよい。メタデータは、性別、および、顔の角度、などである。
【0044】
第2被写体情報は、第2被写体画像と、対象領域と、を対応付けた情報である。第2被写体情報は、さらに補足情報を含んでもよい。また、第2被写体情報のデータ形式は、例えばデータベース形式であるが、これに限定されない。
【0045】
第2被写体画像は、例えば、第2被写体の顔および衣服を含む画像である。なお、第1被写体と同様に、第2被写体は、生物であってもよいし、マネキン等の非生物であってもよい。本実施形態では、第2被写体は、人物である場合を一例として説明する。
【0046】
本実施形態では、第2被写体画像は、第1被写体の試行対象部位を含む画像である。
【0047】
試行対象部位とは、第1被写体によって仮想的に試行される形態を示す部位である。上述したように、第1被写体は、頭髪の形態、皮膚上に描かれる刺青などの模様、および、アイテム、の少なくとも一つの形態を仮想的に試行する。試行対象部位は、これらの仮想的に試行される形態を示す部位である。具体的には、試行対象部位は、頭髪部位、皮膚部位、および、第2被写体に装着されたアイテム、の少なくとも一つである。アイテムは、上記と同様である。
【0048】
試行対象部位が頭髪部位である場合、第1被写体は、第2被写体画像の頭髪部位に示される髪型を仮想的に試行する。試行対象部位が皮膚上に描かれる模様である場合、第1被写体は、第2被写体画像の皮膚部位に示される模様を仮想的に試行する。試行対象部位がアイテムである場合、第1被写体は、第2被写体画像に示される第2被写体の装着しているアイテムを仮想的に試行する。これらの仮想的な試行は、後述する制御部20による合成画像の提供によって実現される。
【0049】
なお、合成領域は、第1被写体画像における、上記試行対象部位に隣接する領域であればよい。言い換えると、合成領域は、第1被写体画像における、第2被写体画像の試行対象部位に対応する領域に、隣接する領域であればよい。例えば、試行対象部位が頭髪部位である場合、合成領域は、第1被写体画像における顔領域である。顔領域は、第1被写体画像における頭髪部位に隣接する領域である。また、試行対象部位が背中に描かれた模様である場合、合成領域は、第1被写体画像における背中に隣接する腕部、首部、および、臀部などの領域である。また、試行対象部位が衣服などのアイテムである場合、合成領域は、第1被写体画像における、衣服に隣接する腕部および頭部などの領域である。
【0050】
次に、対象領域について説明する。対象領域は、第2被写体画像における、合成領域に対応する領域である。合成領域に対応する領域、とは、第2被写体画像における、第1被写体画像の合成領域と同じ部位を含む領域であることを示す。部位は、例えば、人体の身体を構成する、目、眉、鼻、口、および、顎などを示す。
【0051】
例えば、合成領域が顔領域である場合、対象領域は、第2被写体画像における、第2被写体の顔領域である。以下、顔領域を示す対象領域を、対象領域Aと称して説明する場合がある。なお、対象領域および合成領域の形状は限定されない。合成時の位置合せの容易さの観点から、合成領域および対象領域の形状は、矩形状としてもよい。また、対象領域および合成領域は、同じ形状であることが好ましい。なお、対象領域および合成領域の大きさは、異なっていてもよい。また、対象領域および合成領域の各々の外縁を示すラインの形状の少なくとも一部は異なる形状であってもよい。
【0052】
なお、本実施形態では、第2被写体情報には、少なくとも1人の第2被写体の第2被写体画像が登録されていればよい。また、第2被写体情報には、異なる複数の第2被写体の各々の第2被写体画像が登録されていてもよい。また、第2被写体情報には、1人の第2被写体について、頭髪部位の形態、装着しているアイテム、および皮膚に描かれている模様、の少なくとも1つの異なる複数の第2被写体画像が登録されていてもよい。また、第2被写体情報には、1人の第2被写体について、撮影角度の異なる複数の第2被写体画像が登録されていてもよい。そして、第2被写体情報には、第2被写体画像ごとに、対象領域が対応付けて登録されていればよい。
【0053】
補足情報は、対応する第2被写体画像に関する情報である。例えば、補足情報は、第2被写体画像の第2被写体の識別情報、第2被写体の頭髪部位の髪型を示す言葉、該髪型を提供可能な美容院を示す情報、第2被写体が装着しているアイテムの名称、および、該アイテムを提供可能な店舗を示す情報、などである。第2被写体の識別情報は、例えば、第2被写体のユーザ名である。これらの情報は、これらの情報を記憶したインターネット上の場所(URL:Uniform Resource Locator)を示す情報であってもよい。
【0054】
第2被写体画像、対象領域、および、補足情報の少なくとも1つは、外部サーバ14から収集した情報を制御部20が記憶部24へ記憶することで、第2被写体情報に登録されてもよい。また、対象領域は、制御部20が、第2被写体画像を用いた画像処理により生成し、第2被写体情報へ登録してもよい。この画像処理には、公知の画像処理方法を用いればよい。
【0055】
図2に戻り説明を続ける。表示部26は、各種情報を表示する。表示部26は、例えば、LCD(Liquid Crystal Display)、および、有機EL(Electro−Luminescence)ディスプレイなどである。
【0056】
なお、表示部26および上記通信部22の少なくとも一方は、出力部21として機能する。出力部21は、各種情報を出力する。出力部21は、各種情報を表示することで、表示部26として機能する。また、出力部21は、各種情報を、ネットワーク16を介して端末装置12および外部サーバ14へ送信することで、通信部22として機能する。
【0057】
入力部28は、ユーザによる操作指示を受付ける。入力部28は、キーボード、マウス、および、入力ボタンなどである。なお、表示部26と入力部28とを、一体的に構成してもよい。この場合、表示部26および入力部28は、例えばタッチパネルとして構成すればよい。
【0059】
制御部20は、情報処理装置10を制御する。制御部20は、取得部20Aと、検出部20Bと、修正部20Cと、生成部20Dと、合成部20Eと、出力制御部20Fと、学習部20Gと、を備える。取得部20A、検出部20B、修正部20C、生成部20D、合成部20E、出力制御部20F、および、学習部20Gの一部またはすべては、例えば、CPU(Central Processing Unit)などの処理装置にプログラムを実行させること、すなわち、ソフトウェアにより実現してもよいし、IC(Integrated Circuit)などのハードウェアにより実現してもよいし、ソフトウェアおよびハードウェアを併用して実現してもよい。
【0060】
取得部20Aは、合成対象の第1被写体画像を取得する。例えば、取得部20Aは、端末装置12で撮影された第1被写体画像を、該端末装置12からネットワーク16および通信部22を介して取得する。
【0061】
例えば、第1被写体は、仮想試行時などに入力部12Bを操作することで、撮影部12Aによる撮影実行を指示する。撮影部12Aが撮影によって第1被写体画像を取得すると、端末装置12は、該第1被写体画像を、ネットワーク16を介して情報処理装置10へ送信する。なお、端末装置12は、端末装置12の記憶部に記憶されている第1被写体画像のうち、第1被写体の入力部12Bの操作によって選択された第1被写体画像を、情報処理装置10へ送信してもよい。
【0062】
なお、第1被写体画像の撮影角度が、情報処理装置10に記憶されている第2被写体画像の撮影画像と不一致の場合がある。この場合、端末装置12は、撮影角度の調整後の再撮影を依頼する情報を表示部12Cへ表示してもよい。第1被写体は、端末装置12の角度を調整することで、撮影部12Aの撮影角度を調整し、再度撮影実行を指示すればよい。そして、端末装置12は、再度撮影された第1被写体画像を、情報処理装置10へ送信すればよい。
【0063】
これらの処理により、取得部20Aは、端末装置12から第1被写体画像を取得すればよい。
【0064】
検出部20Bは、学習モデルを用いて、第1被写体の第1被写体画像(第1画像)から合成領域(第1画像領域)を検出する。詳細には、検出部20Bは、取得部20Aで取得した第1被写体画像を、被写体画像から合成領域を検出する学習モデルへ入力することで、第1被写体画像から合成領域を検出する。
【0065】
学習モデルは、第1被写体画像などの被写体画像を入力データとし、合成領域を出力データとする学習モデルである。言い換えると、学習モデルは、第1被写体画像と合成領域との入出力関係をモデル化して算出するためのアプリケーションプログラムである。なお、学習モデルは、関数などの数式で表してもよい。
【0066】
なお、上述したように、合成領域は、第1被写体画像における試行対象部位に隣接する領域であり、試行対象部位に応じて異なる領域を示す。このため、記憶部24は、試行対象部位ごとに、該試行対象部位に隣接する領域である合成領域を検出するための学習モデルを記憶してもよい。
【0067】
この場合、取得部20Aは、第1被写体画像および試行対象部位を示す情報を端末装置12から取得すればよい。第1被写体は、端末装置12を操作することで、試行対象部位(例えば、頭髪部位)を選択すればよい。端末装置12は、選択された試行対象部位を示す情報と第1被写体画像を情報処理装置10へ送信すればよい。そして、検出部20Bは、端末装置12から取得部20Aを介して取得した試行対象部位に対応する学習モデルを記憶部24から読取る。検出部20Bは、読取った該学習モデルと取得した第1被写体画像とを用いて、該第1被写体画像から合成領域を検出すればよい。
【0068】
学習モデルは、学習部20Gによって学習され、予め記憶部24に記憶されていればよい。本実施形態では、学習部20Gは、教師データを用いた機械学習により、学習モデルを学習する。機械学習には、公知の方法を用いればよい。例えば、学習モデルが畳み込みニューラルネットワーク (Convolutional Neural Network: CNN)および再帰型ニューラルネットワーク(Recurrent Neural Network: RNN)などのニューラルネットワークを用いたモデルである場合、学習部20Gは、深層学習(ディープラーニング)により、学習モデルを学習する。
【0069】
なお、試行対象部位ごとに学習モデルを学習する場合には、試行対象部位ごとに、試行対象部位に隣接する合成領域を登録した教師データを用意すればよい。そして、学習部20Gは、試行対象部位の各々に対応する教師データを用いた機械学習により、試行対象部位の各々に対応する学習モデルを生成すればよい。
【0070】
本実施形態では、試行対象部位が頭髪部位であり、合成領域が顔領域である場合を一例として説明する。このため、本実施形態では、記憶部24には、頭髪部位に対応する学習モデル(顔領域を検出する学習モデル)が記憶されているものとする。
【0071】
なお、後述する処理により、教師データが更新される場合がある。学習部20Gは、教師データが更新されるごとに、更新後の教師データを用いた機械学習を行い、学習モデルを更新してもよい。教師データが更新されない場合には、学習部20Gを備えず、例えば予め学習されて記憶部24に記憶された学習モデルを利用するように構成してもよい。
【0072】
検出部20Bは、学習された学習モデルを用いて、第1被写体の第1被写体画像から合成領域を検出すればよい。例えば顔領域を検出する場合、検出部20Bは、上記のように顔を撮影した画像から予め定められた部位(目、眉、鼻、口、および、顎など)に対応する合計68点の特徴点を検出するように学習された学習モデルを用いてもよい。なお検出部20B、このような学習モデルで検出された特徴点のうち特定の特徴点に相当する部位を含む領域を合成領域として検出してもよい。以下では、特定の特徴点に相当する部位、すなわち、合成領域に含まれる部位を特定部位という場合がある。
【0073】
また、検出部20Bは、検出された部位から、顔の角度などのメタデータを検出してもよい。例えば検出部20Bは、検出された両目を結ぶ線分の傾きを顔の角度として検出してもよい。検出された角度などの情報は、例えば修正部20Cが画像を修正するときに参照される。
【0074】
なお、検出部20Bは、第1被写体画像からの合成領域の検出に失敗する場合がある。この場合、検出部20Bは、第1被写体画像を端末装置12から取得部20Aを介して再度取得し、合成領域の検出を実行すればよい。
【0075】
なお、上述したように、教師データは、性別、および、顔の角度などのメタデータを含んでいてもよい。
【0076】
この場合、学習部20Gは、第1被写体画像およびメタデータを入力データとし、合成領域を出力データとする学習モデルを学習してもよい。また、学習部20Gは、第1被写体画像を入力データとし、合成領域およびメタデータを出力データとする学習モデルを学習してもよい。
【0077】
また、この場合、検出部20Bは、学習モデルを用いて、第1被写体画像およびメタデータから、合成領域を検出することができる。また、検出部20Bは、学習モデルを用いて、第1被写体画像から、合成領域およびメタデータを検出することができる。
【0078】
第2被写体画像を修正した画像(後述する服装コンテンツ、髪型コンテンツなど)を生成する場合、検出部20Bは、第2被写体画像に対して、第1被写体画像に対する処理と同様の処理(顔領域の検出など)を実行してもよい。第2被写体画像から検出された領域(第2画像領域)に対して、修正部20Cによる修正が実行される。
【0079】
修正部20Cは、画像の修正を行う。例えば修正部20Cは、第2被写体画像から検出された部位のうち指定された部位の領域(第2画像領域)の画素値を、この領域の周囲の画素の画素値に基づいて修正する。修正部20Cは、例えば目、眉および口の領域それぞれ画素の画素値を、各領域の周囲の画素の画素値に修正する。これにより、各領域が、周囲の領域と同じ色で塗りつぶされるように修正される。修正部20Cがこのように第2被写体画像の画像を修正することにより、画像の合成をより高品質に実行可能となる。
【0080】
また修正部20Cは、第1被写体画像全体をリサイズ(拡大、縮小))してもよい。例えば第1被写体画像を縮小することで、処理量の削減を図ることができる。また、修正部20Cは、合成領域と対象領域との間の特性の差分が減少するように、合成領域および対象領域の少なくとも一方を修正してもよい。特性は、例えば、合成領域(顔領域など)の大きさ、合成領域の傾き、および、合成領域の向きなどである。例えば修正部20Cは、合成領域および対象領域の間で、顔の大きさ、傾き、および、向きが一致するように、合成領域を修正する。
【0081】
例えば修正部20Cは、検出部20Bにより検出された顔の角度が一致するように、合成領域である顔画像を回転させる。合成領域の大きさが異なる場合、修正部20Cは、例えば対象領域の大きさと一致するように、合成領域の大きさを修正(拡大または縮小)する。
【0082】
生成部20Dは、ポアソンイメージエディティングなどによる画像合成時に用いる、合成する領域を指定するための複数のマスク画像を生成する。マスク画像の生成方法の詳細は後述する。
【0083】
合成部20Eは、取得部20Aで取得した第1被写体画像から検出した合成領域を、第2被写体画像の対象領域に合成した合成画像を生成する。このとき、合成部20Eは、生成部20Dにより生成された複数のマスク画像を用いて、例えばポアソンイメージエディティングにより、合成領域を対象領域に合成する。合成処理の詳細は後述する。
【0084】
出力制御部20Fは、合成部20Eで生成された合成画像を出力部21へ出力する。上述したように、出力部21は、通信部22および表示部26を含む。
【0085】
出力制御部20Fは、合成画像を表示部26へ表示することで、合成画像を出力する。また、出力制御部20Fは、ネットワーク16を介して合成画像を端末装置12へ送信することで、端末装置12へ合成画像を出力する。また、出力制御部20Fは、ネットワーク16を介して合成画像を外部サーバ14へ送信することで、外部サーバ14へ合成画像を出力する。
【0086】
なお、出力部21は、ネットワーク16に接続されたデジタルサイネージ(電子看板)であってもよい。この場合、出力制御部20Fは、デジタルサイネージに合成画像を出力する。
【0087】
このとき、出力制御部20Fは、合成画像と、該合成画像の合成に用いた第2被写体画像に関する関連情報と、を出力してもよい。
【0088】
関連情報は、第1被写体の特徴と第2被写体画像の試行対象部位との親和度、合成画像に類似する第1被写体以外のユーザ名、合成画像の特色を示す特色情報、および、第1被写体と第2被写体との差分情報、の少なくとも1つである。
【0089】
親和度とは、合成画像の合成に用いた第1被写体画像の第1被写体の特徴と、該合成画像の合成に用いた第2被写体画像における試行対象部位と、が親和する度合いを示す。
【0090】
第1被写体の特徴は、第1被写体における試行対象部位の特徴であってもよいし、試行対象部位以外の特徴であってもよい。第1被写体の特徴は、例えば、第1被写体の顔の特徴、髪型、および、服装の嗜好などである。髪型は、髪の長さ、カット位置、および、髪質などである。出力制御部20Fは、公知の画像解析方法、および、外部サーバ14で管理されているビックデータを用いた公知のデータ解析方法などを用いて、第1被写体の特徴を特定すればよい。
【0091】
例えば試行対象部位が頭髪部位である場合、親和度は、合成画像に示される第1被写体の特徴と、合成画像に示される頭髪部位によって示される髪型と、が親和する度合いを示す情報である。例えば、親和度は、合成画像に示される被写体を、ファッションセンスなどの予め定めた観点から評価した評価値によって表される。具体的には、親和度は、合成画像に示される被写体を、クール度、キュート度などの評価値で表したものである。
【0092】
親和度の導出方法はどのような方法でもよいが、例えば、親和度を導出するための学習モデルを用いる方法を適用できる。例えば出力制御部20Fは、第1被写体の特徴と第2被写体画像の試行対象部位との組合せから、親和度を導出するための学習モデルを公知の機械学習を用いて予め学習すればよい。そして、出力制御部20Fは、合成画像の合成に用いた第1被写体画像の第1被写体の特徴と、該合成画像の合成に用いた第2被写体画像の試行対象部位と、を該学習モデルへ入力することで、親和度を導出すればよい。
【0093】
出力制御部20Fが、合成画像と親和度を端末装置12出力することで、第1被写体に対して、第1被写体の髪型、嗜好、および、顔などの特徴と、合成画像の合成に用いた第2被写体画像における、頭髪の形態、皮膚上に描かれた模様、および、アイテムなどの試行対象部位と、の親和度を定量的に提供することができる。
【0094】
また、出力制御部20Fが、複数の合成画像と、複数の合成画像の各々の親和度と、を出力することで、これらを視認した第1被写体は、自分の髪型および嗜好などの特徴にあった試行対象部位(頭髪の形態によって示される髪型、模様、および、衣服などのアイテム)を客観的に確認することが可能となる。
【0095】
また、出力制御部20Fは、合成画像および親和度を提供することで、第1被写体の特徴に応じた、様々な髪型、模様、および、衣服などのアイテムを提供することができる。このため、第1被写体は、客観的な視点で、様々な髪型、模様、および、衣服などの試行結果を確認することができる。また、出力制御部20Fは、客観的な視点で実際に試す試行対象部位を選択する機会を、第1被写体に対して提供することができる。
【0096】
なお、出力制御部20Fは、第1被写体の特徴に応じて、第1被写体画像に示される第1被写体の形態の一部を変更することで実現可能な試行対象部位を示す情報を導出し、合成画像と共に出力部21へ出力してもよい。例えば、出力制御部20Fは、第1被写体の髪質に応じて、ヘアセット次第で実現可能な別の髪型を示す情報を出力してもよい。この場合、第1被写体は、ヘアカット前の段階で、ヘアカット後のヘアアレンジの形態を客観的に確認することができる。
【0097】
関連情報は、上述したように、合成画像に類似する第1被写体以外のユーザ名であってもよい。
【0098】
この場合、出力制御部20Fは、合成画像から、合成画像に類似するユーザのユーザ名を導出するための学習モデルを公知の方法で予め学習すればよい。そして、出力制御部20Fは、合成部20Eで生成された合成画像を該学習モデルへ入力することで、該合成画像に類似するユーザ名を導出すればよい。
【0099】
例えば、出力制御部20Fは、合成画像と、合成画像に類似する第1被写体以外のユーザ名と、を端末装置12へ出力する。すると、端末装置12を操作する第1被写体は、合成画像と該ユーザ名とを視認することで、自分の合成領域を他の第2被写体画像に合成した合成画像が、どのようなユーザに類似するかを容易に確認することができる。
【0100】
このため、この場合、情報処理装置10は、第1被写体に対して、客観的に自分のファッションを分析する機会を提供することができる。また、情報処理装置10は、出力したユーザ名によって識別されるユーザのファッションに着目する機会を、第1被写体に提供することができる。
【0101】
また、関連情報は、上述したように、合成画像の特色を示す特色情報であってもよい。特色情報は、合成画像の特色を、予め定めた数以下の単語の組合せにより表現した情報であってもよい。予め定めた数は、例えば、5単語、3単語、2単語などであるが、これらに限定されない。特色情報は、例えば、「涼しげな伊達男」、「ホットなスポーツスタイル」、および、「キュートなコーディネート」などであるが、これらに限定されない。
【0102】
この場合、出力制御部20Fは、合成画像から、合成画像の特色情報を導出するための学習モデルを公知の方法で予め学習すればよい。そして、出力制御部20Fは、合成画像を該学習モデルへ入力することで、該合成画像の特色情報を導出し、出力すればよい。
【0103】
出力制御部20Fが合成画像と共に合成画像の特色情報を出力することで、第1被写体は、合成画像に示されるアイテムなどの試行対象部位を試行した場合のイメージを容易に把握することができる。また、試行対象部位が頭髪部位である場合、第1被写体と、第1被写体の頭髪をカットする美容師と、の双方に、試行後のイメージを共有可能な情報を提供することができる。
【0104】
また、関連情報は、上述したように、第1被写体と第2被写体との差分情報であってもよい。詳細には、関連情報は、合成画像の合成に用いた第1被写体画像の第1被写体と、該合成画像の合成に用いた第2被写体画像の第2被写体と、の差分情報であってもよい。差分情報は、具体的には、第1被写体と第2被写体との間の、体格および年齢などの身体的特徴の差である。体格は、例えば、身長、体重、および、胸囲などの身体計測値によって表される。
【0105】
この場合、出力制御部20Fは、第1被写体の体格および年齢などの身体的特徴を、端末装置12または外部サーバ14から取得する。なお、出力制御部20Fは、第1被写体画像を画像解析することで、第1被写体の身体的特徴を取得してもよい。また、出力制御部20Fは、外部サーバ14から第2被写体の身体的特徴を取得する。なお、出力制御部20Fは、第2被写体画像を画像解析することで、第2被写体の身体的特徴を取得してもよい。
【0106】
そして、出力制御部20Fは、第1被写体の身体的特徴と第2被写体の身体的特徴との差分を算出することで、差分情報を導出すればよい。
【0107】
この場合、出力制御部20Fは、合成画像と共に差分情報を端末装置12へ出力する。
【0108】
端末装置12を操作する第1被写体は、合成画像と差分情報を視認することで、合成画像に示される第2被写体画像の第2被写体と、自分(第1被写体)と、の身体的特徴の差を容易に確認することができる。合成画像が第1被写体の目標とする姿であると想定する。この場合、出力制御部20Fは、体重などの身体的特徴を該合成画像に示される第2被写体画像の第2被写体に近づけることで試行可能な髪型および衣服、並びに、これらを試行した場合のイメージを、容易に提供することができる。また、出力制御部20Fが合成画像および差分情報を端末装置12へ出力することで、第1被写体に対して、ダイエットなどの生活習慣改善へのモチベーション向上を支援する情報を、容易に提供することができる。
【0109】
なお、関連情報は、EC(Electronic Commerce:電子商取引)サイトへの誘導を示す情報を含んでいてもよい。
【0110】
この場合、出力制御部20Fは、合成画像の生成に用いた第2被写体画像に含まれるアイテムなどの試行対象部位を提供可能な、ECサイトへの誘導を示す情報を特定する。例えば、出力制御部20Fは、該第2被写体画像に対応する補足情報を第2被写体情報から読取ることで、ECサイトへの誘導を示す情報を特定する。そして、出力制御部20Fは、合成画像と共にECサイトへの誘導を示す情報を、端末装置12へ出力すればよい。
【0111】
ECサイトへの誘導を示す情報は、例えば、二次元バーコード、および、三次元バーコードなどで表せばよい。
【0112】
出力制御部20Fが、合成画像、および、ECサイトへの誘導を示す情報を出力することで、合成画像から容易に上記ECサイトへ誘導するための情報を提供することができる。また、取得部20Aは、該ECサイトへ誘導するための情報が第1被写体によって選択されたことを示す情報を端末装置12から取得すればよい。該情報を端末装置12から取得することで、制御部20は、該合成画像に対するユーザ満足度アンケート結果、および、ECサイトへのコンバージョン率を特定することができる。
【0113】
なお、合成部20Eは、1つの第1被写体画像から、複数の合成画像を作成してもよい。詳細には、合成部20Eは、第1被写体画像の合成領域を、記憶部24の第2被写体情報に記憶されている複数の第2被写体画像の各々に合成してもよい。この場合、合成部20Eは、1つの第1被写体画像の合成領域を、複数の第2被写体画像の各々に合成することで、複数の合成画像を生成する。
【0114】
この場合、出力制御部20Fは、合成部20Eで生成された複数の合成画像のすべてを出力してもよいし、一部を出力してもよい。
【0115】
例えば、出力制御部20Fは、複数の合成画像の各々について、自然な合成結果であるか否かを示す確信度を算出する。確信度は、合成画像における第2被写体画像と合成領域との合成が自然な合成結果であるか否かを示す値である。確信度が高いほど、より自然な合成結果であることを示す。
【0116】
確信度の導出方法はどのような方法でもよいが、例えば、確信度を導出するための学習モデルを用いる方法を適用できる。例えば出力制御部20Fは、確信度を導出するための学習モデルを予め学習すればよい。この学習モデルの学習には、公知の方法を用いればよい。例えば、この学習モデルの学習には、制御部20で過去に生成した合成画像と、該合成画像に対する確信度と、の対応を示す教師データを用いればよい。
【0117】
該教師データに示される確信度は、対応する合成画像に対する、ユーザ満足度アンケート結果、ECサイトへのコンバージョン率、リピート率、および、合成画像の端末装置12への保存の有無などの複数のパラメータにより規定すればよい。
【0118】
ユーザ満足度アンケート結果は、合成画像に対する第1被写体の満足度を示す情報である。例えば、端末装置12を用いて該合成画像を視認した第1被写体は、入力部12Bを操作することで、該合成画像に対する満足度を入力する。該満足度を示す情報は、ユーザ満足度アンケート結果として、端末装置12から情報処理装置10へ送信されればよい。
【0119】
ECサイトへのコンバージョン率は、端末装置12に合成画像が表示された後に、入力部12Bの第1被写体による操作入力により、該合成画像の合成に用いた第2被写体画像に対応する補足情報へアクセスがなされた確率によって表される。リピート率は、補足情報へのアクセス回数によって表される。
【0120】
コンバージョン率、リピート率、および合成画像の端末装置12への保存の有無を示す情報は、端末装置12から情報処理装置10へ送信されるものとする。
【0121】
情報処理装置10の出力制御部20Fは、これらの確信度と該確信度に対応する合成画像との対応を示す1または複数の教師データを用いて、該学習モデルを学習すればよい。そして、出力制御部20Fは、この学習モデルに、合成部20Eで生成された合成画像を入力することで、合成画像の確信度を導出すればよい。
【0122】
そして、出力制御部20Fは、確信度が閾値以上の合成画像を、出力対象として選択すればよい。この閾値は、予め定めればよい。
【0123】
なお、出力制御部20Fは、出力対象外とした合成画像について、該合成画像の合成に用いた第1被写体画像の第1被写体に対して、第1被写体画像の再撮影および再送信を示す再送信要求を送信してもよい。この場合、出力制御部20Fは、再送信要求を、通信部22およびネットワーク16を介して、第1被写体の操作する端末装置12へ送信すればよい。
【0124】
再送信要求を受付けた端末装置12は、撮影角度を変更した撮影依頼を示す情報を表示部12Cへ表示する。第1被写体は、端末装置12の角度を調整することで、撮影部12Aの撮影角度を調整し、入力部12Bを操作することで、撮影部12Aによる撮影実行を指示する。撮影部12Aが撮影によって新たな第1被写体画像を取得すると、端末装置12は、該第1被写体画像を、ネットワーク16を介して情報処理装置10へ送信すればよい。情報処理装置10の制御部20は、新たに取得した該第1被写体画像を用いて、上記と同様にして、合成画像を生成すればよい。
【0125】
なお、再送信要求を受付けた端末装置12は、出力対象外とされた合成画像の生成に用いた第1被写体画像および合成領域を、表示部12Cへ表示してもよい。この場合、情報処理装置10の出力制御部20Fは、出力対象外とされた合成画像の生成に用いた第1被写体画像および合成領域と、再送信要求と、を端末装置12へ送信すればよい。
【0126】
そして、端末装置12を操作する第1被写体は、端末装置12の入力部12Bを操作することで、表示された合成領域の位置および形状の少なくとも一方を調整する。端末装置12は、調整後の合成領域と第1被写体画像を、情報処理装置10へ送信すればよい。情報処理装置10の合成部20Eは、端末装置12から受信した第1被写体画像および合成領域を用いて、上記と同様にして、合成画像を生成すればよい。
【0127】
このように、合成部20Eが、第1被写体によって位置および形状の少なくとも一方を調整された合成領域を用いて合成画像を生成することで、検出部20Bによる合成領域の検出エラーを補正することができる。
【0128】
また、この場合、合成部20Eは、端末装置12から受付けた第1被写体画像および合成領域を、新たな教師データとして記憶部24へ登録してもよい。そして、学習部20Gは、記憶部24の教師データが更新されるごとに、該教師データを用いて、新たに学習モデルを生成してもよい。この処理により、学習モデルの精度向上を図ることができる。
【0129】
なお、合成部20Eは、出力対象外とされた合成画像について、合成位置の調整、および、色調の調整、を上記と同様にして再度実行し、再度合成画像を生成してもよい。また、出力対象外とされた合成画像について、合成部20Eは、該合成画像の生成に用いた第1被写体画像の形状を、異なる撮影方向から撮影(例えば、より頭部側またはより足部側から撮影)した被写体画像となるように補正してもよい。この補正は、例えば、台形補正などである。そして、合成部20Eは、補正した第1被写体画像を用いて、上記と同様にして、再度、合成画像を生成すればよい。
【0130】
なお、出力制御部20Fは、さらに、合成画像に付与した関連情報に基づいて選択した合成画像を、出力部21へ出力してもよい。
【0131】
例えば、出力制御部20Fは、親和度が所定の値以上、予め設定したユーザ名、予め設定した特色情報、および、予め設定した差分情報、の少なくとも1つを満たす関連情報に対応する合成画像を、出力対象として選択してもよい。そして、合成部20Eは、選択した合成画像を、出力部21へ出力してもよい。
【0132】
なお、上述したように、合成画像の確信度は、合成画像に対する、ユーザ満足度アンケート結果、EC(Electronic Commerce:電子商取引)サイトへのコンバージョン率、リピート率、および、合成画像の端末装置12への保存の有無などの複数のパラメータにより規定される。
【0133】
そして、上述したように、これらのパラメータは、合成画像を表示した端末装置12を操作する第1被写体によって入力される。
【0134】
第1被写体が、表示された合成画像を視認した後に行った入力部12Bの操作は、非常に貴重なデータである。すなわち、上記パラメータによって表される、合成画像に対するユーザ満足度アンケート結果、ECサイトへのコンバージョン率、リピート率、および、合成画像の端末装置12への保存の有無は、提供された合成画像に対する第1被写体の対応を示す情報として利用することができる。
【0135】
このため、例えば、学習部20Gは、第1被写体画像の第1被写体の特徴と、該第1被写体画像を用いて生成された合成画像に対する上記パラメータと、の対応を示す教師データを用意する。そして、学習部20Gは、この教師データが更新されるごとに、第1被写体の特徴から上記パラメータを導出するための学習モデルを公知の機械学習により学習および更新する。そして、学習部20Gは、この学習モデルを、記憶部24へ記憶または外部サーバ14へ送信してもよい。
【0136】
このような学習モデルを提供することで、合成画像の合成に用いた、現在流行中の試行対象部位(頭髪部位、皮膚の模様、アイテム)を容易に導出可能な情報(学習モデル)を提供することが可能となる。
【0137】
また、この学習モデルを解析することで、どのような特徴の第1被写体に、どのような試行対象部位が試行されたかを容易に特定することができる。具体的には、どのような特徴の第1被写体に対して、どのような髪型および衣服が好適に試行されたかを容易に特定することができる。
【0138】
また、出力制御部20Fは、試行対象部位の特徴量を、公知の方法で複数のパラメータで表してもよい。そして、出力制御部20Fは、これらのパラメータ間の差分の時系列の群から、試行対象部位の特徴量の方向性(ベクトル)を推定する。そして、出力制御部20Fは、推定した特徴量の方向性を示す情報を、外部サーバ14などに送信すればよい。これらの処理により、出力制御部20Fは、将来流行する可能性の高いアイテム、髪型、および、模様などを推定可能な情報を、容易に提供することができる。
【0139】
次に、このように構成された本実施形態にかかる情報処理装置10による合成処理について説明する。
図3は、本実施形態における合成処理の全体の流れ一例を示すフローチャートである。
【0140】
まず、情報処理装置10は、合成領域(例えば顔領域)を合成する対象となるコンテンツを準備する(ステップS101)。例えば情報処理装置10は、外部サーバ14から第2被写体画像を取得し、取得した第2被写体画像を加工することにより、コンテンツを生成する。
【0141】
以下では、服装コンテンツおよび髪型コンテンツの2つを用いる場合を例に説明する。服装コンテンツは、ユーザの顔領域を合成する対象となるコンテンツである。服装コンテンツは、試行対象部位を服装(アイテムの一例)とするコンテンツ(第2被写体画像)であると解釈することができる。顔領域を合成するため、服装コンテンツは、顔領域を含む画像とする。
【0142】
髪型コンテンツは、ユーザの顔領域を合成した服装コンテンツに対して、さらに合成することが可能な髪型を含む画像などのコンテンツ(第3画像)である。以下では、服装コンテンツにユーザの顔領域を合成した後、さらに、髪型コンテンツを合成する場合を例に説明する。例えば髪を含む服装コンテンツにユーザの顔画像を合成すると、合成の影響により、髪の少なくとも一部(例えば前髪)の画素値が変更される(例えば薄くなる)場合がある。顔を合成した後に髪型コンテンツをさらに合成することで、このような問題を解消可能となる。なお、髪型コンテンツを合成する処理は実行されなくてもよい。
【0143】
服装コンテンツおよび髪型コンテンツを準備する処理の詳細は後述する。なお、ステップS101のコンテンツ準備処理は、ステップS102以降の処理を開始する前までに実行されていればよい。例えば、ステップS101とステップS102以降の処理は連続して実行されなくてもよい。
【0144】
次に取得部20Aは、ユーザを撮影した画像を取得する(ステップS102)。検出部20Bは、取得された画像からユーザの顔領域を検出する。また修正部20Cは、必要に応じて顔領域を加工する(ステップS103)。合成部20Eは、顔領域を服装コンテンツに合成する(ステップS104)。また合成部20Eは、顔領域を合成した服装コンテンツに、髪型コンテンツを合成する(ステップS105)。合成時には、生成部20Dにより生成されたマスク画像が用いられる。
【0145】
次に、
図3の合成処理の詳細についてさらに説明する。
図4は、服装コンテンツを準備する処理の一例を示すフローチャートである。
図6は、髪型コンテンツを準備する処理の一例を示すフローチャートである。
図4および
図6は、例えば
図3のステップS101に相当する。
【0146】
まず服装コンテンツの準備処理(
図4)について説明する。取得部20Aは、例えば外部サーバ14から、服装コンテンツの画像を取得する(ステップS201)。検出部20Bは、取得された画像から、顔領域を検出する(ステップS202)。検出部20Bは、例えば、学習モデルに対して服装コンテンツの画像を入力し、顔の部位に対応する複数の特徴点を取得する。検出部20Bは、さらに、検出された顔領域の情報から、顔領域の大きさ、および、顔領域の傾きなどを検出してもよい。
【0147】
次に修正部20Cは、服装コンテンツの画像を修正する(ステップS203、ステップS204)。修正部20Cは、例えばInpaintingと呼ばれる技術により画像を修正する。Inpaintingは、ある画像のうち任意の領域を指定したとき、その領域の内部を、その領域の近傍にある画素値の重みつき和により補完して修復する技術である。なお適用可能な技術はInpaintingに限られるものではない。
【0148】
まず修正部20Cは、検出された部位のうち修正対象となる部位(例えば、目、眉、口)を含む領域を、修正対象であることを示す画素値に塗りつぶしたマスク画像を生成する(ステップS203)。Inpaintingでは、マスク画像で修正対象を示す画素値が指定された画素が修正される。修正部20Cは、生成されたマスク画像を用いてInpaintingアルゴリズムにより服装コンテンツの画像を修正する(ステップS204)。これにより、修正対象の部位(目、眉、口)が周囲の画素により補完された画像が得られる。
【0149】
なお、いずれの部位を塗りつぶすかを、例えばユーザが指定可能としてもよい。すなわち、服装コンテンツの画像内の部位と、ユーザの画像の部位とのいずれを優先するかを、ユーザが指定可能としてもよい。修正部20Cは、ユーザの画像を優先することが指定された部位を塗りつぶしたマスク画像を生成する。これにより、ユーザは、自身の顔の部位のうち所望の部位を合成画像に反映させることができる。
【0150】
修正部20Cは、修正した服装コンテンツの画像を、例えば記憶部24に記憶する(ステップS205)。合成時に参照可能とするため、修正部20Cは、顔領域の大きさおよび顔領域の傾きを示す情報を服装コンテンツの画像に対応づけて記憶してもよい。
【0151】
図5は、服装コンテンツの準備処理の具体例を示す図である。画像501は、服装コンテンツの画像と、この画像から検出された複数の特徴点とを含む画像の例である。画像502は、目、眉、および、口を含む領域を修正対象とするマスク画像の例である。画像502内の白い領域が、修正対象を示す画素値が指定された領域(目、眉、および、口を含む領域)を示す。画像503は、画像501と画像502とにInpaintingアルゴリズムを適用して得られる画像の例である。
【0152】
次に髪型コンテンツの準備処理(
図6)について説明する。取得部20Aは、例えば外部サーバ14から、髪型コンテンツの元になる画像を取得する(ステップS301)。この画像は、例えばモデルとなる人物の髪および顔を含む画像であればよい。検出部20Bは、
図4のステップS202と同様の処理により、取得された画像から顔領域を検出する(ステップS302)。
【0153】
次に修正部20Cは、取得された画像から髪の領域のみを抜き出すことにより、髪型コンテンツを生成する(ステップS303)。修正部20Cは、生成した髪型コンテンツの画像を、例えば記憶部24に記憶する(ステップS304)。合成時に参照可能とするため、修正部20Cは、顔領域の大きさおよび顔領域の傾きを示す情報を髪型コンテンツの画像に対応づけて記憶してもよい。
【0154】
図7は、髪型コンテンツの準備処理の具体例を示す図である。画像701は、髪型コンテンツの画像の例である。画像702は、画像701から髪の部分のみを抜き出すことにより得られた髪型コンテンツの画像の例である。
【0155】
なお、
図4および
図6のような処理を実行して作成されたコンテンツが、例えば外部サーバ14に記憶されている場合などであれば、コンテンツ準備処理を実行せず、作成済みのコンテンツを取得して利用するように構成してもよい。
【0156】
次に、
図3の合成処理のうち、ステップS102〜ステップS105までの処理の詳細について
図8〜
図16を用いて説明する。
図8は、ステップS102〜ステップS105までの処理の詳細な手順を示すフローチャートである。
【0157】
取得部20Aは、ユーザを撮影した画像(第1被写体画像)を例えば端末装置12から取得する(ステップS401)。検出部20Bは、取得された画像から顔領域を検出する(ステップS402)。検出部20Bは、例えば、学習モデルに対してユーザの画像を入力し、顔の部位に対応する複数の特徴点を取得する。検出部20Bは、さらに、検出された顔領域の情報から、顔領域の大きさ、および、顔領域の傾きなどを検出してもよい。
【0158】
図9は、検出された顔領域(特徴点)の一例を示す図である。
図9に示すように、検出部20Bは、顔画像から、目、眉、鼻、口、および、顎などの部位に対応する複数の特徴点を、顔領域を示す情報として検出する。
図10は、検出された顔領域の傾きの一例を示す図である。
図10の線分1001は、両目の中心を結ぶ線分である。例えばこの線分の傾きが、顔領域の傾きとして用いられる。なお目の中心は、例えば、検出された複数の特徴点のうち、目の周囲に相当する複数の特徴点の位置の平均を算出することにより求めることができる。
【0159】
図8に戻り、検出部20Bは、画像から顔領域が検出されたか否かを判定する(ステップS403)。顔領域が検出されない場合(ステップS403:No)、ステップS401に戻り、再度ユーザの画像を取得する。顔領域が検出された場合(ステップS403:Yes)、修正部20Cは、ユーザの画像全体をリサイズする(ステップS404)。なお、リサイズが不要な場合、ステップS404は省略されてもよい。
【0160】
合成部20Eは、合成の対象となる服装コンテンツの画像を記憶部24から読み出す(ステップS405)。合成の対象となる服装コンテンツは、例えば、ユーザが入力部28を介して指定することができる。
【0161】
修正部20Cは、対象領域に合成するために、顔領域の画像を修正する(ステップS406)。例えば修正部20Cは、顔領域を拡大または縮小するための縮尺比率、顔領域の合成位置、顔領域の傾き(角度)、および、対象領域の傾きを求める。そして修正部20Cは、求めた縮尺比率で顔領域を拡大または縮小する。また修正部20Cは、合成位置と一致する位置に顔領域を移動する。また修正部20Cは、顔領域の傾きが対象領域の傾きと一致するように、顔領域を回転させる。
【0162】
縮尺比率は、例えば次のように算出される。修正部20Cは、顔領域および対象領域の大きさを比較する。各領域の大きさは、例えば各領域に対して検出された目の位置と、口の位置との間の距離によって決定することができる。修正部20Cは、各領域の大きさを比較し、両者の大きさが一致するように変更するための顔領域の縮尺比率を算出する。修正部20Cは、算出された縮尺比率で顔領域の大きさを変更する。
【0163】
修正部20Cは、縦方向および横方向で領域の縮尺比率をそれぞれ別に算出してもよい。例えば修正部20Cは、横方向の縮尺比率は、各領域に対して検出された両目間の長さに基づいて算出し、縦方向の縮尺比率は、各領域に対して検出された両目の中心と口とを結ぶ線分の長さに基づいて算出してもよい。
【0164】
合成位置は、例えば次のように算出される。修正部20Cは、服装コンテンツから検出された顔領域(対象領域)の中心位置を合成位置として求める。中心位置は、例えば、両目領域の中心を結んだ線分の中点と、口領域の中心とを結んだ線分の中点として求めることができる。修正部20Cは、ユーザの画像から検出された顔領域についても同様にして中心位置を求める。修正部20Cは、各顔領域の中心位置の差分を、ユーザの画像から検出された顔領域の移動量として求め、求めた移動量の分、顔領域を移動させる。
【0165】
顔領域の傾きは、上記のように、例えば両目を結ぶ線分の傾きとして求めることができる。
図11の画像1101は、線分1001が服装コンテンツの顔領域の傾き(この例では水平)と一致するように回転させた画像の例である。
【0166】
図8に戻り、生成部20Dは、ユーザの画像から検出された顔領域(特徴点)を用いて、ポアソンイメージエディティングで用いるマスク画像を生成する(ステップS407)。
【0167】
ここで、ポアソンイメージエディティングを適用する場合の問題点について説明する。上記のように、ポアソンイメージエディティングを適用する場合、合成する領域の近傍に特徴的な色の影響が大きくなり、高品質な合成画像を生成できない場合がある。例えば、合成する顔領域の周辺に、顔領域の色と大きく異なる暗色(メガネ、前髪など)などの色の画素が含まれる場合、顔領域の色に、その色の影響がより大きく表れる場合があった。
【0168】
図12は、顔領域の色への影響が大きくなる可能性が高い画像の例を示す図である。
図12に示すように、黒い前髪が顔領域にかかる場合、および、暗色のメガネを含む場合などは、前髪またはメガネの色の影響が、合成した顔領域の色に大きく表れる。
【0169】
一方、例えば照明の向きなどに応じて生じる顔自体の影は、合成後の顔領域の画像にも反映された方がより自然である。
図13は、このような影を含む服装コンテンツの画像の例を示す図である。領域1301は、顔の影を含む領域を示す。
【0170】
そこで、本実施形態では、顔領域の周辺の色の影響を低減することができ、かつ、顔自体の影などの影響はそのまま維持することができるように、複数のマスク画像を生成し、生成した複数のマスク画像を用いてポアソンイメージエディティングを適用する。
【0171】
生成部20Dは、例えば、顔領域全体に対する1つのマスク画像を生成し、このマスク画像を分割することにより複数のマスク画像を生成する。まず生成部20Dは、ユーザの画像から検出された特徴点から、顔領域の輪郭に相当する特徴点を取得する。例えば生成部20Dは、眉、左右の頬、および、顎として検出された特徴点を、輪郭を示す特徴点として取得する。生成部20Dは、輪郭で囲まれた領域を合成対象であることを示す画素値に塗りつぶした1つのマスク画像を生成する(ステップS407)。なお、特定部位のうち指定された部位(例えば眉)を強調するために、生成部20Dは、この部位に相当する領域を拡大したマスク画像を生成してもよい。
【0172】
図14は、生成されるマスク画像の一例を示す図である。画像1401は、眉領域を強調する前のマスク画像の例である。画像1402は、眉領域を強調したマスク画像の例である。強調する部位、および、強調する程度は、例えばユーザの指定に応じて決定することができる。
【0173】
図8に戻り、生成部20Dは、生成した1つのマスク画像を分割することにより、複数のマスク画像を生成する(ステップS408)。生成部20Dは、例えば、顔領域の中心を通る上下方向の直線および左右方向の直線で分割するように、1つのマスク画像から4つのマスク画像を生成する。顔領域の中心位置は、修正部20Cが画像の修正時に求めた値を用いることができる。
【0174】
マスク画像の生成方法はこれに限られるものではない。合成する画像の領域のうち輝度が他の領域より大きい領域を、他のマスク画像と接する領域、または、他のマスク画像と重なる領域に含むように複数のマスク画像が生成されればよい。輝度が他の領域より大きい領域は、例えば顔領域の中心を含む領域(鼻を含む領域)であるが、これ以外の領域であってもよい。
【0175】
例えば生成部20Dは、ステップS407で生成した1つのマスク画像を、顔領域の中心位置と想定される固定の位置を通る直線(例えば、横方向に5:5、縦方向に上から3:7の比率となるように分割する2つの直線)により、4つのマスク画像に分割してもよい。
【0176】
顔領域の中心を通る直線で分割する方法によれば、輝度が他の領域より大きい領域(顔領域の中心を含む領域)を、他のマスク画像と接する領域(他のマスク画像との境界を含む領域)に含むマスク画像が生成される。
【0177】
生成部20Dは、顔領域から輝度が他の領域より大きい領域を検出し、検出した領域を、他のマスク画像と接する領域に含むように複数のマスク画像を生成してもよい。
【0178】
生成部20Dは、複数のマスク画像が相互に重複する領域を含むように、複数のマスク画像を生成してもよい。これにより、例えば、合成時に前景画像と背景画像の境界部分の色の影響が大きく表れるという現象の発生を抑制可能となる。
【0179】
図15は、一部の領域が重複するように生成された複数のマスク画像の例を示す図である。
図15では、一点鎖線の太線で示す矩形領域(左上)、一点鎖線の細線で示す矩形領域(左下)、破線の太線で示す矩形領域(右上)、および、破線の細線で示す矩形領域(右下)の4つのマスク画像が、それぞれ顔領域の中心を含む部分で重複する例が示されている。このような方法によれば、輝度が他の領域より大きい領域(顔領域の中心を含む領域)を、他のマスク画像と重なる領域に含むマスク画像が生成される。
【0180】
マスク画像を分割して複数のマスク画像を生成する場合、分割数は4に限られないし、左右および上下の両方向で分割する必要はない。例えば、左右方向または上下方向のいずれか一方のみに分割してもよい。分割数は2、3および5以上であってもよい。分割数および分割方向は、合成するコンテンツの特性などに応じて決定すればよい。
【0181】
また、マスク画像の形状は矩形に限られず、どのような形状であってもよい。例えば、三角形、円形、または、楕円形のマスク画像を用いてもよい。
【0182】
図8に戻り、合成部20Eは、複数のマスク画像を用いたポアソンイメージエディティングにより、服装コンテンツにユーザの画像(顔領域)を合成する(ステップS409)。
【0183】
髪型コンテンツを合成する場合は、さらに以下の処理が実行される。すなわち、合成部20Eは、合成する髪型コンテンツの画像を記憶部24から読み出す(ステップS410)。合成する髪型コンテンツは、例えば、ユーザが入力部28を介して指定することができる。
【0184】
修正部20Cは、対象領域に合成するために、髪型コンテンツの画像を修正する(ステップS411)。ステップS411は、ステップS406と同様の手順で実行できる。
【0185】
合成部20Eは、修正した髪型コンテンツの画像を、服装コンテンツの画像に合成する(ステップS412)。合成方法はどのような方法であってもよい。例えば合成部20Eは、服装コンテンツに髪型コンテンツを上書きする方法により、合成画像を生成する。
【0186】
出力制御部20Fは、合成された画像を出力する(ステップS413)。
図16は、髪型コンテンツが合成された画像の一例を示す図である。左の画像は、ステップS409までの処理で顔領域が合成された服装コンテンツの画像の例である。右の画像は、この画像に対して髪型コンテンツの画像を合成した画像の例である。
【0187】
このように、本実施形態の情報処理装置10では、学習モデルを用いて、第1被写体画像から合成領域を検出する。このため、本実施形態の情報処理装置10では、デプスセンサなどを用いて試着者の三次元形状に関する情報を取得することなく、合成時に用いる合成領域を容易に検出することができる。
【0188】
また、本実施形態の情報処理装置10は、様々な形態を試行する対象である第1被写体の第1被写体画像から検出した合成領域を、対象領域に合成する。このため、本実施形態の情報処理装置10は、第1被写体が仮想的に他の形態を試行した状態を示す合成画像を、容易に生成することができる。
【0189】
従って、本実施形態の情報処理装置10は、被写体画像(第1被写体画像、第2被写体画像)の合成画像を容易に生成することができる。
【0190】
また、本実施形態の情報処理装置10は、端末装置12から取得した第1被写体画像から検出した第1被写体画像を合成に用いるため、合成に用いる第1被写体画像に制限を設けることを抑制することができる。すなわち、本実施形態の情報処理装置10は、第1被写体の所望の第1被写体画像を、合成画像の生成に用いることができる。
【0191】
また、本実施形態の情報処理装置10は、第1被写体画像から検出した合成領域を、第2被写体画像の対象領域へ合成することで合成画像を生成する。
【0192】
このため、本実施形態の情報処理装置10は、デプスセンサ等の三次元形状データを用いて合成画像を生成する従来技術に比べて、画像処理量の低減を図ることができる。このため、本実施形態の情報処理装置10は、合成画像の生成時間の短縮を図ることができる。すなわち、情報処理装置10は、リアルタイム試行の可能な環境を第1被写体に提供することができる。
【0193】
また、本実施形態の情報処理装置10は、例えば外部サーバ14から取得したコンテンツを修正することにより、合成に用いるコンテンツ(服装コンテンツ、髪型コンテンツ)を準備することができる。例えばユーザの画像から検出される顔領域が同じであったとしても、合成に利用する領域または部位を指定することで用途が変わる。多くの場合、用途に応じたコンテンツを準備(生成)する負荷が大きくなるが、本実施形態によれば、外部サーバ14などからクローニングなどの手法により容易に入手できるコンテンツの画像を元に、合成するコンテンツを生成することが可能となる。
【0194】
また、顔の角度などを検出して画像を補正することができるため、撮影環境の自由度を高めることができる。また、複数のマスク画像を用いてポアソンイメージエディティングなどの合成手法を実行するため、例えば不安定な光環境でユーザの前髪および影などが合成領域の周辺に存在する場合でも、その特徴を維持したまま画像を合成可能となる。
【0195】
<変形例1>
これまでは、外部サーバ14などから取得した被写体画像(服装コンテンツなど)に対して、ユーザを撮影した画像から検出した合成領域(顔領域など)を合成した。これとは逆に、例えばモデルまたは俳優などの他人の顔画像から抽出した特定部位を、ユーザの顔領域に対して合成するように構成してもよい。例えば情報処理装置10は、ユーザの顔を含む画像を撮影し、撮影した画像から顔領域を検出する。この顔領域を背景画像とし、他人の顔画像から抽出した目、眉、および、口などの部位のうち指定された部位を前景画像として、合成画像を生成する。このような構成により、例えば、好みの俳優のメイクを手本にすること、および、整形手術の前に手術後を予測した顔を確認することなどが可能となる。
【0196】
<変形例2>
なお、上記実施形態の情報処理装置10における、記憶部24に記憶されている情報の少なくとも一部を、外部サーバ14に記憶してもよい。また、情報処理装置10における学習部20Gを、外部サーバ14に備えた構成としてもよい。また、情報処理装置10の機能の少なくとも一部を端末装置12に搭載してもよい。情報処理装置10の機能を端末装置12に搭載する場合、端末装置12には、処理速度向上の観点から、GPU(Graphics Processing Unit)を備えた端末装置を用いることが好ましい。
【0197】
<変形例3>
なお、本実施形態の情報処理装置10が実行する情報処理プログラムは、Webサーバ(ウェブサーバ)およびソーシャルネットワークサービス(SNS)の管理サーバで用いられるアプリケーションとして提供してもよい。この場合、第1被写体などのユーザは、端末装置12を介して該アプリケーションを利用することで、容易に様々な合成画像を視認することが可能となる。また、この場合、合成画像を、第1被写体の分身となるアバター画像として提供することができる。このため、本実施形態の情報処理プログラムは、該合成画像に示されるアイテムなどの広告および各種キャンペーンに利用可能な情報を容易に提供することができる。
【0198】
<適用対象>
本実施形態の情報処理システム1の適用対象は限定されない。例えば、情報処理システム1は、試行対象部位(頭髪部位、皮膚部位、アイテム)に関するサービスを提供するエリアに設置された各種機器に適用可能である。例えば、情報処理システム1は、美容院、アパレル業界、エンターテイメント施設、イベント施設、などに設置されたシステムに適用可能である。
【0199】
<ハードウェア構成>
次に、本実施形態および変形例の情報処理装置10、端末装置12、および外部サーバ14のハードウェア構成について説明する。
図17は、本実施形態および変形例の情報処理装置10、端末装置12、および外部サーバ14のハードウェア構成例を示すブロック図である。
【0200】
本実施形態および変形例の情報処理装置10、端末装置12、および外部サーバ14は、表示部91、通信I/F部93、入力部94、CPU86、ROM(Read Only Memory)88、RAM90、およびHDD92等がバス96により相互に接続されており、通常のコンピュータを利用したハードウェア構成となっている。
【0201】
CPU86は、本実施形態および変形例の情報処理装置10、端末装置12、および外部サーバ14の各々の処理を制御する演算装置である。RAM90は、CPU86による各種処理に必要なデータを記憶する。ROM88は、CPU86による各種処理を実現するプログラム等を記憶する。HDD92は、上述した記憶部24に格納されるデータを記憶する。通信I/F部93は、外部装置および外部端末に通信回線等を介して接続し、接続した外部装置および外部端末との間でデータを送受信するためのインターフェースである。表示部91は、上述した表示部26および表示部12Cの各々に相当する。入力部94は、ユーザからの操作指示を受け付ける。入力部94は、上述した入力部12Bおよび入力部28に相当する。
【0202】
本実施形態および変形例の情報処理装置10、端末装置12、および外部サーバ14で実行される上記各種処理を実行するためのプログラムは、ROM88等に予め組み込んで提供される。該プログラムには、上記情報処理プログラムが含まれる。
【0203】
なお、本実施形態および変形例の情報処理装置10、端末装置12、および外部サーバ14で実行されるプログラムは、これらの装置にインストール可能な形式または実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供するように構成してもよい。
【0204】
また、本実施形態および変形例の情報処理装置10、端末装置12、および外部サーバ14で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態および変形例の情報処理装置10、端末装置12、および外部サーバ14における上記各処理を実行するためのプログラムを、インターネット等のネットワーク経由で提供または配布するように構成してもよい。
【0205】
本実施形態および変形例の情報処理装置10、端末装置12、および外部サーバ14で実行される上記各種処理を実行するためのプログラムは、上述した各部が主記憶装置上に生成されるようになっている。
【0206】
なお、上記HDD92に格納されている各種情報は、外部装置に格納してもよい。この場合には、該外部装置とCPU86と、を、ネットワーク等を介して接続した構成とすればよい。
【0207】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。