(58)【調査した分野】(Int.Cl.,DB名)
原画像に対して画像処理を行うことで、原画像に現された対象体の一部の部位に、メイクアップ塗材が塗布された状態を示すメイクアップ画像を生成する画像処理装置であって、
原画像に現された対象体からメイクアップ塗材を塗布すべき部位を指定する指定手段と、
メイクアップ塗材の見本色を代表色とした色レンジをもつ複数の画素から構成される塗材塗布レイヤを生成する生成手段と、
原画像に塗材塗布レイヤを合成する合成手段を備え、
塗材塗布レイヤを構成する複数の画素の色レンジは、メイクアップ塗材が塗布されるべき原画像の部位を構成する複数画素の代表的な値と、メイクアップ塗材の見本色画素の値との比率に応じて、前記対象体の一部の部位を構成する複数画素の色レンジを拡大することで得られ、
塗材塗布レイヤの画素の値は、原画像の画素であって、位置的に対応するものの画素の値を塗材塗布レイヤの色レンジにマッピングすることで得られ、
前記生成手段が、前記塗材塗布レイヤを生成するにあたって、原画像に対応する平面座標系において、画素の値がどのように分布しているかを示す分布マップを取得し、
前記生成手段によるマッピングは、分布マップに示される値であって、位置的に対応するものを重み係数として用いて色レンジを重み付け、重み付け後の値に、オフセットを付与することでなされる
ことを特徴とする画像処理装置。
前記原画像において指定手段により指定される部位は、環境光で照らされることにより生じるハイライト部分の画素と、環境光が遮られることで生じる陰影部分の画素とを含み、
前記原画像部位を構成する複数画素の代表的な値は、ハイライト部分の画素と、陰影部分の画素とを含む複数の画素に対して統計処理を施すことで算出される
ことを特徴とする請求項1記載の画像処理装置。
前記分布マップにより示される各画素位置の値は、塗材が塗布されるべき原画像の部位を構成する複数画素のうち、位置的に対応するものの画素の値と、当該部位を構成する色の下限値との差分を、当該部位における色レンジを用いて正規化したものであり、
前記オフセットは、塗り替え色の色レンジの下限値である
ことを特徴とする請求項1に記載の画像処理装置。
画像処理装置がアクセスし得る記録媒体には、サンプルファイルが記録されており、サンプルファイルは、画素の値が平面的にどのように分布しているかという分布態様のサンプルであり、
生成手段による分布マップの取得は、サンプルファイルを記録媒体から読み出すことでなされる
ことを特徴とする請求項1に記載の画像処理装置。
前記相対値は、塗材が塗布されるべき原画像の部位における代表的な色の画素の値と、当該部位を構成する複数の画素であって、位置的に対応するものの画素の値との差分を、当該部位を構成する画素の色レンジ長を用いて正規化したものであり、前記所定の係数は、当該部位を表す複数画素の色レンジ長であり、前記オフセットは、当該部位を構成する色の色レンジの下限値である
ことを特徴とする請求項5に記載の画像処理装置。
原画像に対して画像処理を行うことで、原画像に現された対象体の一部の部位に、メイクアップ塗材が塗布された状態を示すメイクアップ画像を生成するコンピュータシステムにおける画像処理方法であって、
原画像に現された対象体からメイクアップ塗材を塗布すべき部位の指定と、
メイクアップ塗材の見本色を代表色とした色レンジをもつ複数の画素から構成される塗材塗布レイヤの生成とを含み、
塗材塗布レイヤは、原画像へと合成される画像であり、
塗材塗布レイヤを構成する複数の画素の色レンジは、メイクアップ塗材が塗布されるべき原画像の部位を構成する複数画素の代表的な値と、メイクアップ塗材の見本色画素の値との比率に応じて、前記対象体の一部の部位を構成する複数画素の色レンジを拡大することで得られ、
塗材塗布レイヤの画素の値は、原画像の画素であって、位置的に対応するものの画素の値を塗材塗布レイヤの色レンジにマッピングすることで得られ、
前記塗材塗布レイヤを生成するにあたって、原画像に対応する平面座標系において、画素の値がどのように分布しているかを示す分布マップを取得し、
前記塗材塗布レイヤの色レンジへのマッピングは、分布マップに示される値であって、位置的に対応するものを重み係数として用いて色レンジを重み付け、重み付け後の値に、オフセットを付与することでなされる
ことを特徴とする画像処理方法。
原画像に対して画像処理を行うことで、原画像に現された対象体の一部の部位に、メイクアップ塗材が塗布された状態を示すメイクアップ画像を生成する処理をコンピュータに実行させるプログラムであって、
原画像に現された対象体からメイクアップ塗材を塗布すべき部位の指定と、
メイクアップ塗材の見本色を代表色とした色レンジをもつ複数の画素から構成される塗材塗布レイヤの生成とをコンピュータに行わせるプログラムコードを含み、
塗材塗布レイヤは、原画像へと合成される画像であり、
塗材塗布レイヤを構成する複数の画素の色レンジは、メイクアップ塗材が塗布されるべき原画像の部位を構成する複数画素の代表的な値と、メイクアップ塗材の見本色画素の値との比率に応じて、前記対象体の一部の部位を構成する複数画素の色レンジを拡大することで得られ、
前記塗材塗布レイヤを生成するにあたって、原画像に対応する平面座標系において、画素の値がどのように分布しているかを示す分布マップを取得し、
前記塗材塗布レイヤの色レンジへのマッピングは、分布マップに示される値であって、位置的に対応するものを重み係数として用いて色レンジを重み付け、重み付け後の値に、オフセットを付与することでなされる
ことを特徴とするプログラム。
【発明を実施するための最良の形態】
【0014】
(実施形態の序章)
発明者らは、本発明の実施化にあたって、様々な技術的障壁に直面した。以下、その克服のまでの歩みを述べる。
【0015】
回折顔料を含有した口紅では、環境照明により照らされているハイライト部分がきらめくように映えていて、口紅が塗布された領域が緩やかに広がり、窪みに向けて輝度を落としてゆくというまばゆいようなコントラストで、見る者を魅了する。
【0016】
一方、画像処理技術によるメイクアップが施された表情の再現は、処理の対象となる部位の画素ビット値を、別の画素ビット値に書き換えるという手法が一般的であり、これでは、上記の光学効果により、部位が本来もっていた美しさが引き立たせられるような状態の再現は難しい。かかる実施障壁を克服するため、発明者らは、特許文献1に記載された先行技術を、研究開発の基礎として選んだ。
【0017】
特許文献1に記載された口紅色変換システムは、画像に現された唇に口紅が塗布された塗布後部位画像を生成する。具体的にいうと、元の顔画像を構成する画素から唇領域を抽出して、唇領域を構成する画素の画素値に差分となる塗り替え偏差を加算し、唇に口紅が塗布された画像が得るというものである。この画像処理にあたって、画像処理の対象となる顔画像をRGB色空間からHSV色空間に変換するというRGB→HSV変換と、画素処理が施された顔画像をHSV色空間からRGB色空間に変換するというHSV→RGB変換とを行う。
【0018】
また塗り替え偏差は、唇の色の平均を計算して、計算された平均値を唇の代表色とし、唇の代表色と目標口紅の色との差を計算することで得られる。元の唇画像のハイライト部分や影のできたところに対しては、HSV色空間における彩度(S),輝度(V),チャンネルの塗り替え偏差加算を停止する。色相(H)チャンネルの加算のみ実施することで、元のコントラスト感をさらに表現できる。同様に、色が肌色に近い領域では、口紅と唇の差分の加算を停止する。この特許文献1を元にした画像処理を数式化して表すと、
図1(a)のようになる。
【0019】
図1(a)は、HSVの各画素成分のチャネル画像に加算される差分が、フラットな差分である場合の画像処理を数式化して示す。
図1(a)の数式表現は、以下のルールに従う。
図1における四角形は、被演算子であり、数式による演算の対象となる画像やレイヤを示す。小さな四角形は、固定値であり、数式による演算に用いられる色の画素ビット値を示す。丸記号が数式の演算子であり、画像又はレイヤを構成する個々の画素の画素ビット値に対して実行される演算の種別を示す。ここで“レイヤ”とは、一部又は全部の画素が、全透明又は半透明になっていて、他の画像との合成に供される画像をいう。このルールに従うと、
図1(a)における装置構成は、唇部位の平均値と、口紅の色との減算(1)、唇部位の画像を構成するHチャネル、Sチャネル、Vチャネルと、差分との加算(2)からなる数式による演算を規定していることがわかる。
【0020】
lip1は、唇領域の指定がなされた顔画像の一部を示す。顔画像における輪郭線edg1は、丸マークのアンカーと、アンカー間を結ぶ補間線とによって構成され、顔画像のうち唇のみを囲むものである。図中のHチャネルは、唇を構成するHSVの画素成分のうち、H成分を抜き出すことで得られる画像をいう。同じく、Sチャネル、Vチャネルは、唇を構成するHSVの画素成分のうち、S成分、V成分を抜き出すことで得られる画像をいう。
【0021】
差分演算sub1は、唇領域の平均値と、口紅の色との減算を、Hチャネル、Sチャネル、Vチャネルのそれぞれについて行うものである。
【0022】
加算演算pls1,2,3は、減算で得られたHチャネル、Sチャネル、Vチャネルのそれぞれについての差分であるΔH、ΔS、ΔVと、顔画像における唇のHチャネル、Sチャネル、Vチャネルとの加算を、Hチャネル、Sチャネル、Vチャネルのそれぞれについて実行するものである。
【0023】
この
図1(a)では、画像全体において差分がフラットであり、最大値の画素ビット値をなす画素にも、最小値の画素ビット値をなす画素にも同じ値が加算されるから、画像全体の色の変動幅、いわゆる色レンジは元画像の色レンジと同等になる。これでは、口紅の塗布でコントラスト感が強調されているという雰囲気を演出することができず、メイクアップ塗材を仮想的に塗布するというメイクアップシミュレータの機能としては今一つ不充分である。
【0024】
また、特許文献1に記載された先行技術では、元画像でハイライトが存在する箇所や影のできた箇所に対して、輝度、彩度チャンネルの塗り替え偏差の加算を停止することで、色相、彩度、輝度の3チャンネル加算する部分と色相チャンネルのみ加算する部分の境界に不連続面が発生することによる不自然感が目立つという実施上の障壁を有していた。
【0025】
この実施上の障壁を克服するためのアプローチを説明する。口紅が塗布された状態の唇画像を生成するため、本願で新規に提案した画像処理を数式化すると、
図1(b)のようになる。
【0026】
図1(b)は、各画素成分についてのチャネル画像に加算される差分が、レンジをもつ場合の画像処理を数式化して示す。
図1(b)における数式は、口紅の色と、唇部位の色レンジとの乗算(1)と、唇部位の画像を構成する色相(H)チャネル、彩度(C)チャネル、輝度(L)チャネルと、差分とのαブレンド(2)とからなる演算処理を規定していることがわかる。図中のLチャネルは、唇を構成するHCLの画素成分のうち、L成分を抜き出すことで得られる画像をいう。同じく、Hチャネル、Cチャネルは、唇を構成するHCLの画素成分のうち、H成分、C成分を抜き出すことで得られる画像をいう。画像に包含される複数のチャネル毎に、口紅との差分を算出して、その差分をチャネル毎に足し合わせる点は、
図1(a)の装置構成との共通点である。差異は、以下の通りである。
【0027】
第1に、差分算出が異なる。差分算出の差異とは、
図1(a)の装置において、Hチャネル、Cチャネル、Vチャネルのそれぞれについて足し合わされる差分は、唇の色と、口紅の色との減算で得られるのに対して、
図1(b)の装置において、Hチャネル,Cチャネル,Lチャネルのそれぞれに足し合わされる差分は、唇領域と、唇の平均値とから得られるレンジ付きのレイヤに、口紅の色を乗じることで得られるというものである。図中の乗算演算mul1は、このレンジ付きのレイヤと、口紅の色との乗算を行う。
図1(b)においてΔLのレンジ付きレイヤは、顔や唇をモノトーンで表したものになる。ΔCのレンジ付きレイヤは、顔全体が灰色になり、唇が白色となったネガ画像のような態様で、顔画像が表されることになる。ただしHチャネルのレイヤについては、レイヤがレンジをもつかどうかが任意的であり、差分となるレイヤが“フラット”であってもかまわない。よって、
図1(b)では、Hチャネルのレイヤが、フラットなレイヤであるとしている。
【0028】
第2に、差分の内容が異なる。
図1(a)の装置の差分は、減算により算出されるので、
図1(a)の装置における差分は、画像平面全体で一定となるフラットなものになるのに対して、
図1(b)の装置の差分は、唇領域と、唇の平均値とから得られるレンジ付きのレイヤであり、各画素の値が平面位置に応じて異なり、ある一定の数値範囲をもつという違いである。
【0029】
第3に、レイヤ合成が異なる。合成の差異とは、
図1(a)の装置の合成は、唇部位の画像を構成するHチャネル,Sチャネル,Vチャネルのそれぞれにフラットなレイヤの値を加算するものであるのに対して、
図1(b)における合成は、顔画像のCチャネル及びLチャネルと、Cチャネル及びLチャネルについてレンジをもったレイヤとのαブレンド を始めとする合成演算によりなされるというものである。図中のαブレンドbd1,bd2,bd3は、この合成演算の一例であり、顔画像のCチャネル,Lチャネルにα値を乗じ、一方、Cチャネル,Lチャネルについてのレンジをもつレイヤにαの反転値(1-α)を乗じて加算するという演算を意味する。αブレンドの対象となるHCLのそれぞれの画素成分についてのレイヤは、色レンジをもつから、メイクアップ後の画像は、唇の質感が鮮明に現れたものになる。
【0030】
(第1実施形態)
本実施形態は、HCL空間において、各画素を構成するH成分、C成分、L成分のうち、L成分からなるLチャネルの画像に対して画像処理を行う、メイクアップシミュレータの実施形態を開示している。かかるメイクアップシミュレータは、上記画像処理装置の構成要件を、タブレット端末のハードウェア資源を利用して具現化したものである。
【0031】
図2(a)は、タブレット端末の外観を示す。タブレット端末は、ユーザを望む面にタッチパネルディスプレイ101を有しており、このタッチパネルディスプレイの上側端部に自画撮りカメラ102が存在する。
【0032】
自画撮りとは、タブレット端末本体を操作するユーザを撮影することであり、かかるタブレット端末により、ユーザの自画像が撮影されることになる。メイクアップシミュレータでは、かかる自画像をタッチパネルディスプレイに表示し、かかる自画像に対する操作を受け付けることで仮想的なメイクアップをユーザに実現させる。メイクアップの対象となる自画像は、カメラの静止画モードで撮影された静止画データ、動画像モードで撮影された動画像を構成する複数のフレーム画像データを含む。
【0033】
メイクアップ前後の自画像が自身の前のタッチパネル5に表示されるため、タブレット端末は、メイクアップ機能を有したデジタルミラーとなり、ユーザは鏡に映る自身の顔を見るように、メイクアップシミュレーション後の自身の顔を確認することが可能である。ここで『デジタルミラー』とは、カメラで撮影された人画像に対して画像処理を行うことで、ユーザ及びタブレット端末が置かれている環境に応じたメイクアップを実現する機能である。例えばタブレット端末が、屋外に置かれている場合、自画像に対して、その環境光に応じた画像処理を行うことで、その屋外の環境光に応じたメイクアップをその自画像に施す。これにより、タブレット端末及びユーザが夕暮れの光を浴びているなら、その状態でメイクアップ後の自分がどう見えるか、タブレット端末及びユーザが夜間の街角で街灯の光を浴びているなら、その状態でメイクアップ後の自分がどう見えるかを視覚的に確認することができる。
【0034】
図2(b)は、タッチパネル5に、メイクアップシミュレータとしての処理を発揮する際の初期画面を示す。メイクアップシミュレータの対象となる部位の選択を受け付けるボタンbn1と、カメラ102によるユーザの撮影を開始させるためのボタンbn2とを含む。
【0035】
図3は、タブレット端末100におけるカメラ102を用いてユーザが自画像を撮影しようとしている状況を示す。
図2(b)において、タブレット端末100及びユーザが存在する室内には、室内照明200、スポット照明201が存在していて、室内照明200による照明、及び、スポット照明201による照明が環境光になる。かかる環境光で照らされたユーザの姿態が、メイクアップシミュレータの対象になる。
【0036】
メイクアップシミュレータの起動時において、タッチパネルには、口紅、頬紅等の化粧アイテムやサンプル色が、自画像と、お勧めのメイク情報と共に表示される。タッチパネルに表示された自画像に対するタッチやドラッグにより、化粧アイテムを選択することができる。ここで化粧アイテムとは、メイクアップシミュレータにおいて、仮想的に使用できる化粧品のことであり、単色の見本色画素のRGB値、このRGB値を変換することで得られたHCL値、及び波長パラメータにより規定される。波長パラメータは、波長によってメイクアップ塗材(化粧品)の物理特性、光学特性を特定するものである。波長パラメータを用いる場合、画像処理装置は、元の唇の画素を構成するRGB値又はHCL値と、波長パラメータとを用いて予め定められた演算を行うことで、口紅が塗布された状態の画素を示すRGB値又はHCL値を得る。こうして得たRGB値又はHCL値を対象として以降の処理を行う。
【0037】
本実施形態のメイクアップシミュレータでは、口紅を始めとする化粧アイテムを単一色のカラーサンプルとしてモデル化しており、化粧アイテムに対応する代表色データファイルは、このモデル化された単一色のRGB値、及び、HCL値を格納することで、メイクアップでどのような化粧アイテムが使用できるかを規定している。単色の見本色画素のRGB値、及び、HCL値を規定することで、化粧アイテムに対応する化粧品により、ユーザがどのようにメイクアップされるかを規定する。唇に塗布すべき口紅塗布レイヤの生成にあたって見本色画素のL成分の値は、口紅塗布レイヤがとるべき色レンジの代表的な値となる。化粧アイテムは、自身の見本色画素のL成分値を代表的な値として、ある一定の数値範囲をなす複数の画素で、唇を形作ることにより、口紅塗布レイヤを生成する。
【0038】
図4(a)は、メイクアップ前のユーザの自画像を示し、
図4(b)は、メイクアップ後のユーザの自画像を示す。
図4(a)(b)のGUIは、共通の画面構成になっている。この共通の画面構成とは、上側に、自画像表示のためのウィンドゥが存在し、その右下に、化粧アイテム選択のためのツールが、左下に、カラーリング選択のためのツールボックスが存在するというものである。ツールボックスでは、複数の化粧アイテムとして複数の口紅が一覧表示されており、ユーザは何れかの商品をタッチすることでメイクアップ体験したい化粧アイテムを選択することができる。またタブレット端末では、カラーリングのためのカラーサンプルが一覧表示される。口紅が塗布された後の唇部位において、唇領域による塗布色は、唇領域における色分布の代表的な色となる。よって、口紅の色は、口紅塗布後の唇領域における代表色として扱われる。
【0039】
図4(b)は、口紅を選択し、かつ塗り替え色を選択してメイクアップを実行した後のメイクアップ顔画像を示す。
【0040】
かかるメイクアップ後の自画像は、元の自画像における顔画像から唇部位を領域指定して、この唇部位を選択された口紅アイテムで塗り変えた後、元の顔画像に合成したものである。かかる処理のため、画像処理装置は、口紅の選択時に、自画像である顔画像から唇部位の特徴点を抽出することで、輪郭線を用いて部位を領域指定すると共に、選択された化粧アイテムを用いることで、口紅が塗布された唇部位を示す口紅塗布レイヤを生成して、人画像に合成する。ここで「顔画像」とは、自画像であって、顔部品を特徴付ける顔の特徴点が、ある一定の水準以上、検出されたものをいう。自画像であって、人の手部品を特徴付ける顔の特徴点が、ある一定の水準以上、検出されたものは「手画像」いう。自画像であって、顔部品を特徴付ける顔の特徴点だけではなく、手や足、胴体を特徴付ける特徴点が、ある一定の水準以上、検出されたものを「全身画像」という。
【0041】
画像処理装置は、ユーザの化粧アイテムの選択や塗布すべき部位の選択に合わせたメイクアップ処理を行い、処理結果をタッチパネル5の画面上に表示させる。ユーザによるメイクアップ結果をリアルタイムに反映することが可能なため、ユーザは気軽にメイクアップシミュレーション結果を確認し、化粧品を試す手間を軽減することができる。
【0042】
以上が画像処理装置の外観構成及び使用局面についての説明である。画像処理装置の使用局面について具体例を挙げたところで、画像処理装置の構成に焦点をあてて説明を進める
図5(a)は、画像処理装置によって利用される、タブレット端末のハードウェア資源を示す。タブレット端末のハードウェア構成は、カメラを通じて取得された撮影画像を処理するよう構成されている。
【0043】
具体的にいうとタブレット端末のハードウェアは、カメラ102の撮像光学系により形成された被写体像に光電変換を施して映像信号を出力する撮像素子回路1と、カメラ102の撮像光学系であるフォーカスレンズ、ズームレンズ、シャッタ・絞りによる露出制御を行う撮像制御回路2と、処理対象である自画像データを格納する入力画素メモリ3と、入力画素メモリ3に格納された自画像データに対するメイクアップ処理の処理結果として、画像を格納するプレーンメモリ4と、LCD、PDP、有機EL素子で構成され、元の自画像又はメイクアップ後の自画像を表示するタッチパネル5と、不揮発メモリや組込み型ディスクによって構成されるストレージ6と、プレーンメモリに格納された画像データをストレージ6に書き込み、必要に応じて読み出すための媒体制御回路7と、タッチ操作、フリック操作があった場合に操作に係る座標を検出する座標検出回路8と、座標検出回路8により検出された座標に従いイベントを出力して、GUIの更新を行うGUI制御回路9と、メイクアップのための画像処理を実行する画像処理装置10とから構成される。
【0044】
タブレット端末におけるGUIは、ウィンドゥ、スクロールバー、ラジオボタン、テキストボックス、プルダウンメニューといった様々なウィジェットにより構成される。これらの状態を変化させるため、イベント制御回路9は、ユーザによる画面タッチが発生した場合、そのタッチ座標にかかるイベントを出力して、各ウィジェットの状態を変化させる。かかるウィジェットの状態変化で、GUIを用いた対話的な操作環境をユーザに提供する。
【0045】
図5(b)は、ストレージ6の記録内容を示す。本図に示すように、ストレージ6には、ルートディレクトリの配下に、被写体ディレクトリと、メイクアップ条件ディレクトリとが存在する。この被写体ディレクトリの配下には、個々のユーザに固有となるディレクトリ(ユーザ001ディレクトリ、ユーザ002ディレクトリ、ユーザ003ディレクトリ)が存在する。一方、メイクアップ条件ディレクトリとは、メイクアップの条件を規定するディレクトリであり、メイクアップに用いるべき複数の化粧アイテムに対応した複数のアイテムディレクトリ(アイテム001ディレクトリ、アイテム002ディレクトリ、アイテム003ディレクトリ)を有する。このメイクアップ条件ディレクトリの配下に存在する複数のアイテムディレクトリの何れかを指定することで、メイクアップの条件付けがなされる。
【0046】
図5(c)は、ユーザ001ディレクトリ、アイテム001ディレクトリの構成を示す。ユーザ001ディレクトリは、ユーザディレクトリに存在するユーザ毎の複数のディレクトリのうち、ユーザ001に対応するディレクトリである。この
図5(c)に示すように、ユーザ001ディレクトリには、カメラ102による撮影で得られたオリジナルの自画像データを格納したオリジナル画像ファイルと、自画像に対して画像処理装置によるメイクアップを施すことで得られたメイクアップ画像データを格納したメイクアップ画像ファイルとが格納される。アイテム001ディレクトリは、メイクアップ条件ディレクトリに存在する商品アイテム毎の複数のディレクトリのうち、商品アイテム001に対応するディレクトリである。ここには、化粧アイテムである口紅等の商品写真、CM映像を格納した商品画像ファイルと、商品アイテムで塗布される色のRGB値を示す代表色データファイルと、商品アイテムの取扱いを示すマニュアルファイルとが格納される。
【0047】
図6は、画像処理装置を構成するハードウェア的又はソフトウェア的な構成要素に、構成要素間のデータフローを書き加えた図である。本図に示すように、画像処理装置は、唇領域抽出部11、色空間変換部12a,b、一時的メモリ13、唇色レンジ算出部14、口紅塗布画レイヤ生成部15、合成処理部16、色空間逆変換部17から構成される。画像処理装置の入力はRGB色空間の顔画像と目標の塗布色のRGB値であり、出力は顔画像の唇領域に目標の塗布色を塗布したRGB画像である。
【0048】
メイクアップのための画像処理の対象は、ノーメークの唇、既に口紅が塗布された唇の双方を含む。既に、口紅が塗布された唇を画像処理の対象にする場合、その口紅による光学特性が、メイクアップされた顔画像にも反映されるから、この場合もリアルなメイクアップを実現することができる。
【0049】
以下、主な処理要素と処理の流れについて説明する。
【0050】
唇領域抽出部11は、入力された自画像から顔検出と顔パーツ検出によって顔の特徴点を検出すると共に、唇部位を規定する特徴点を抽出し、特徴点間を結ぶ輪郭線を生成して、かかる輪郭線で唇部位が領域指定された顔画像lip(RGBs)を出力する。唇部位を規定する特徴点の抽出手法としては、例えば、色によるセグメンテーション、エッジ検出や顔モデルによるパーツ検出など様々のものを採用することができる。第1実施形態に係る画像処理装置では、顔パーツ検出による唇領域検出を一例として利用する。唇部位の領域指定にあわせて、唇の特徴点で囲まれる領域を有効領域としてマスクするマスクデータを作成する。
【0051】
色空間変換部12は、唇部位が領域指定された顔画像lip(RGBs)の色空間(RGB、YUVなど)を、処理中間色空間へ変換して、変換結果を一時的メモリ13に格納する。処理中間色空間として色相(H)、彩度(C)、輝度(L)で表現されるHCL色空間が挙げられる。
【0052】
唇色レンジ算出部14は、唇部位が領域指定された顔画像lip(HCLs)から特定の画素成分であるL成分についての変動幅を表す最小値、最大値、平均値を算出して、これらの最小値、最大値、平均値から、L成分における色レンジを特定する。そして、計算された平均値と、Lチャネルにおける各画素との比率を画素位置に対応付けて示すレンジマップを出力する。
【0053】
口紅塗布レイヤ生成部15は、オリジナル自画像において領域指定された部位である唇に、合成されるべきレイヤとして口紅塗布レイヤを生成する。口紅塗布レイヤの生成にあたって口紅塗布レイヤ生成部15は、HCL空間に変換された目標の塗布色である口紅の代表色と、唇色レンジ算出部14が出力した唇の最小値、最大値、平均値とから口紅が塗布された唇の適切な平均値、最小値、最大値を算出する。そして、口紅が塗布された唇の最大値、最小値、平均値と、唇のレンジマップとから、口紅塗布レイヤを得る。
【0054】
合成処理部16は、口紅塗布レイヤ生成部15により生成された口紅塗布レイヤのLチャネルと、一時的メモリに格納され、唇部位が領域指定された顔画像lip(HCLs)のLチャネルとを合成し、口紅が塗布された顔画像maked#face(HCLs)を出力する。合成処理には、例えば、αブレンド、乗算、加算、ソフトライトなどがある。より高精度な塗布を実現するべく、唇領域に対する合成のみを有効とするマスクを用いる。これは合成の対象となる画素を限定するためである。
【0055】
色空間逆変換部17は、口紅塗布後の顔画像maked#face(HCLs)を処理中間色空間から、デバイスの表示できる色空間(RGB、YUVなど)に逆変換して顔画像maked#face(RGBs)を得る。
【0056】
画像処理装置の内部構成を説明したところで、画像処理装置の処理対象になる画像データに焦点をあてて説明を進める。
【0057】
図7(a)は、顔画像face(RGBs)を示す。本図に示すように、顔画像face(RGBs)は、例えば、SD画質(640×480)、1KのFullHD画質(1920×1080)、4K画質(7680×4320)といった解像度の画像であり、FullHD画質の場合、横1920個×縦1080個の画素データから構成される。
【0058】
図中のasg1は、一個の画素ビット値におけるビットアサインを示す。本図に示すように、一個の画素データのビット長は、32ビットであり、8ビットの赤色(R)成分の階調ビット、8ビットの緑色(G)成分の階調ビット、8ビットの青色(B)成分の階調ビット、8ビットの透明度(α)成分の階調ビットから構成される。図中のext1は、領域指定された唇を含む矩形画素群である唇画像の抽出を示す。かかる矩形画素群は、縦N画素×横M画素からなる。このM、Nは、唇を包含する最小の矩形の縦画素数、横画素数であり、可変数である。図中のasg2は、唇の画像(RGBs)を構成する1つの画素の画素ビット値を示す。かかる画素ビット値も、8ビットの赤色(R)成分の階調ビット、8ビットの緑色(G)成分の階調ビット、8ビットの青色(B)成分の階調ビット、8ビットの透明度(α)成分の階調ビットから構成される。
【0059】
図7(b)は、(a)の唇部位の画像(RGBs)の画素ビット値をRGB形式からHCL形式に変換することでえられる唇画像(HCLs)を示す。矢印asg3は、かかる唇画像(HCLs)の一個の画素データにおけるビットアサインを示す。本図に示すように、一個の画素データのビット長は、32ビットであり、8ビットの色相(H)成分のビット、8ビットの彩度(C)成分のビット値、8ビットの輝度(L)成分の階調ビット、8ビットの透明度(α)成分のビット値から構成される。
【0060】
図7(c)は、唇画像(HCLs)に重ね合わせられる口紅塗布レイヤ(HCLs)を示す。矢印asg4は、かかる口紅塗布レイヤ(HCLs)の一個の画素データにおけるビットアサインを示す。本図に示すように、一個の画素データのビット長は、32ビットであり、8ビットの色相(H)成分のビット、8ビットの彩度(C)成分のビット値、8ビットの輝度(L)成分の階調ビット、8ビットの透明度(α)成分のビット値から構成される。
【0061】
図8は、画像処理装置による画像処理の過程を具体的に示す図である。図中のgn1は、顔画像face(HCLs)を対象にしたマスクデータの生成を示す。このマスクデータは、唇部分が白で、それ以外の部分が黒になっている。図中のus1は、口紅塗布レイヤの生成にあたっての顔画像の唇部位の使用を示す。図中のus2は、口紅塗布レイヤの生成にあたっての口紅の使用を示す。矢印oby1は、口紅塗布レイヤと、マスクデータと、唇とを対象にした合成の合成順序を示す。矢印us3は、合成にあたってのマスクデータの引用を示し、us4は、合成にあたっての口紅塗布レイヤの引用を示す。aw3は、かかる合成を経た最終的なメイクアップ画像の完成を示す。
【0062】
生成する口紅の画像が人間の目にオリジナル画像の色と似たような感覚を与えられるように、入力した口紅の代表色aveStickと、口紅の色レンジrangeL’との関係は、なるべくオリジナルの唇の代表色aveLipと唇の色レンジrangeLとの関係を維持する。つまり、唇代表色aveLip−最大値Lmax間の距離aと、唇の代表色aveLip−最小値Lmin間の距離bとの比率a/bは、口紅の代表色aveStick−最大値L’max間の距離a’と、口紅の代表色aveStick−最小値L’min間の距離b’との比率a’/bに対して、a/b=a’/b’という関係を持つ。
【0063】
具体的な計算方法は、下記の数式説明で明確にする。
【0064】
(数1)に示すように、塗り替え色のコントラスト調整、彩度調整のために色レンジ調整係数βを設けている。本実施の形態では、塗り替え色とオリジナルの色の関係を色レンジ調整係数として利用する例を挙げているが、色レンジ調整係数βは装置外部から与えられてこともある。
【0065】
【数1】
(数2)はオリジナル色の色レンジrangeLの計算式である。オリジナル色の最小値Lmin、最大値Lmaxの差を色レンジrangeLとして求める。
【0066】
【数2】
(数3)は、上記の距離a、距離bとrangeLで正規化したka=a/rangeL、kb=b/rangeLの比率の計算式である。
【0067】
【数3】
(数4)は、上記の条件a/b=a’/b’を満たす目標の口紅の色レンジrangeL’及び最小値L’min、最大値L’maxの計算式である。
【0068】
【数4】
画像処理装置では、画像を構成する画素をライン単位に走査して処理してゆく。このライン単位の走査時においてi番目に処理されることになる画素を、画素[i]とし、この画素[i]のH成分、C成分、L成分を、H[i]、C[i]、L[i]と表記する。
【0069】
レンジの正規化を図る場合、口紅塗布画像のi番目の画素値L'[i]は、(数5)が示すように、現画素のレンジマップのデータrmap[i]と口紅の色レンジrangeL’、口紅塗布画像の色の最小値L’minから計算される。
【0070】
【数5】
レンジマップを正規化せずに唇の画像そのままにした場合、(数6)の数式で唇の各画素値を計算できる。
【0071】
【数6】
図9(a)(b)は、対象部位である唇部位のL成分の分布と、口紅塗布レイヤの対象部位である唇部位のL成分の分布とを対比して示す。
図9(a)のX軸、Y軸は、画像の水平方向、垂直方向であり、高さ方向は、各画素のL成分の大きさを示す。図中の分布曲線cv1,cv2は、対象物のz座標であるL成分を、Y-Z平面、X-Z平面に写像することで得られた曲線である。この曲線の最大値はLmin、最大値はLmaxであり、Lmin、Lmaxが塗り替え前の唇部位のL成分の分布範囲を規定する。また図中の(xi,yi)は、唇部位を構成する画素のうち、i番目に位置するもののxy座標を意味する。このxi,yiのZ軸のL成分がL[i]になる。図中の唇部位の立体形状shp1は、唇部位の画素のL成分の値をZ軸上にプロットすることで形成される。L成分の画素の平均値をaveLipとする場合、aveLipを示す直線は、高さ方向において中間部分の位置で、分布曲線を横切ることになる。
【0072】
図9(b)のX軸、Y軸は、画像の水平方向、垂直方向であり、高さ方向は、各画素のL成分の大きさを示す。図中の分布曲線cv3,cv4は、対象物のz座標であるL成分を、Y-Z平面、X-Z平面に写像することで得られた曲線である。この曲線の最小値は、L’min、最大値はL’maxであり、L'min、L’maxが塗り替え後の唇部位の輝度成分の数値範囲を規定する。また図中の(xi,yi)は、唇部位を構成する画素のうち、i番目に位置するもののxy座標を意味する。このxi,yiのZ軸の値であるL成分が、L’(i)になる。図中の唇部位の立体形状shp2は、唇部位の画素のL成分の値をZ軸上にプロットすることで形成される。L成分の画素の平均値をaveStickとする場合、aveStickを示す直線は、高さ方向において何れかの部分で、分布曲線を横切ることになる。
【0073】
図9(b)を
図9(a)と比較すると分布曲線の変動幅が大きくなっているのがわかる。これはより大きな数値範囲のL成分によって唇の質感やコントラストが表現されていることを示す。
【0074】
図10(a)(b)は、画像処理装置による色の色レンジ拡大の概念を模式的に示す図である。
図10(a)のcont1は、ユーザのオリジナルの人画像における、下唇のコントラストである。cont2は、メイクアップ後の顔画像における、下唇の部位のコントラストであるcont1は、引出線pu1に示すように、LminからLmaxまでのrangeLの色レンジをなす。対照的に、cont2は、引出線pu2に示すように、L'minからL'maxまでのrangeL'の色レンジをなす。下唇の同じ部位の色レンジが大きく広がっているから、口紅塗布後の唇は、広い数値範囲のL成分で表現されていることがわかる。拡大前の元の唇部位の色レンジrangeL、拡大後の色レンジrangeL’は、Z軸上に存在する。オリジナルの唇部位と、口紅塗布レイヤとで比較すると、口紅塗布レイヤにおけるaveStickは、唇部位におけるaveLipよりも高い位置に存在する。
【0075】
図10(b)は、
図10(a)に示したオリジナルの顔画像における色レンジと、メイクアップされた顔画像における色レンジとに、数1〜数4の数式の意味合いを書き加えた図である。数1のβは、色レンジの比率を表し、数2は、オリジナルの顔画像における色レンジの長さを、数3−1、3−2は、色レンジにおけるLmaxからLaveまでの距離、LaveからLminまでの距離を示す。数4−1〜4−3は、色レンジの上限、下限、色レンジの長さを示す。
【0076】
図10(b)に示すように、L’maxと、aveStickとの差分は、Lmaxと、aveLipとの差分をβ倍したものである。rangeL’は、rangeLをβ倍したものである。βは、aveStickとaveLipとの比率であるから、rangeL’及びaveStickとL’maxとの差分は、rangeL及びaveLipとLmaxとの差分を、aveStickとaveLipとの比率だけ拡大したものであることがわかる。更にL’minは、このL’maxからrangeL’を差し引いたものであるから、aveStickと、aveLipとの比率に応じたものになっている。
【0077】
続いて、顔画像から、口紅塗布レイヤへの画素のL成分のマッピングについて説明する。rangeLの色レンジに存在する画素から、rangeL'の色レンジへのマッピングにおいて、rangeLの最大値であるLmaxをもつ画素のL[i]は、L'maxになる。rangeLの最小値であるLminをもつ画素のL[i]は、L'minになる。
【0078】
こうすることで、元の唇でハイライトや陰影部分になっている部分は、口紅塗布後においてもハイライトや陰影部分になっている。残りの画素については、原画像において、当該画素がもっていたrangeLに対する割合が、rangeL'においても維持されようにマッピングを行う。
【0079】
図11(a)(b)は、元の唇部位においてi番目に存在する画素を、元の唇部位の色レンジから、口紅塗布後の唇部位の色レンジへとマッピングする処理過程を示す。
【0080】
図11(a)、(b)で共通する画素値決定の指針は、以下の通りである。つまり、L'[i]及びL'maxを通る直線を一辺とし、X軸,Y軸を他の二辺とする直角三角形が、L[i]及びLmaxを通り、Z軸とθ[i]をなす三角形と相似形になるように、L'[i]を定める。
【0081】
図11(a)の手前側は、L[i]と、L’[i]との関係を示す。直線line1は、LmaxとL[i]とを通過する直線である。直線line2は、L'maxとL'[i]とを通過する直線である。
【0082】
line1の傾きであるθは、X軸又はY軸に対するL[i]の変化量を意味する。line2も同じである。L’[i]は、aveStick+(L[i]−aveLip)×βの位置に存在するから、aveStickと、L’[i]とを通過する直線line2の傾きは、aveLipと、L[i]とを通過する直線line1の傾きと同じになる。aveStickは、aveLipにβを乗じたものであり、L’[i]と、aveStickとの差分は、L[i]と、aveLipとの差分にβを乗じたものに等しいからである。
【0083】
L[i]と、L’[i]との違いは、aveLipからの差分がβになっているに過ぎないから、L[i]を、口紅塗布レイヤの色レンジにマッピングしたとしても、口紅色の色レンジにおけるL’[i]の位置付けは、唇部位における色レンジの位置付けと変わらないものになる。
【0084】
以上の決定を繰り返すことで、口紅塗布レイヤを構成する個々の画素について、L'[i]を定める。こうすることで、口紅塗布レイヤは、XY座標に応じてZ座標の値が異なるものになり、Z軸方向がレンジをもつ、“レンジ付きレイヤ”として規定される。かかる口紅塗布レイヤを、オリジナルの顔画像と合成することで、ユーザの自画像における唇の肉付きやコントラストが再現されることになる。
【0085】
line1の傾きと、line2の傾きとが等しくなることで、塗り替え後の個々の画素のL成分が色レンジにおいて占める割合は、塗り替え前の色レンジにおいて個々のL成分が占める割合に等しくなる。この関係は、塗り替え後の唇部位の全ての画素について成立するので、唇部位の個々の画素に現された微妙な皮膚の感触が、メイクアップ後の唇では、豊富なL成分で表現されることになる。
【0086】
図11(b)の奥手側は、rmap(i)の意味合いを示す。本図に示すように、rmap[i]は、L[i]−Lmin間の差分と、Lmaxと−Lmin間の差分との比率を表す。一方、手前側は、数6の意味合いを示す。ここでi番目の画素のL成分であるL'[i]は、rangeL’に、上記比率を示すrmap[i]を乗じて、Lminを足し合わせることで算出される。L’[i]は、元の唇部位の色レンジにおけるL[i]の割合rmap[i]にrangeL’を乗じて、オフセットであるLminを足し合わせたものだから、Xi又はYiに対するL’[i]の変化量は、Xi又はYiに対するL[i]の変化量に等しくなる。(b)においても、Lmaxと、L[i]とを通る直線の傾きは、L’maxと、L’[i]とが通る直線の傾きに等しい。この関係は、唇部位を構成する全ての画素について成立する。この関係は、塗り替え後の唇部位の全ての画素について成立するので、唇部位の個々の画素に現された微妙な皮膚の感触が、メイクアップ後の自画像では、豊富なL成分で表現されることになる。
【0087】
本実施形態におけるrangeL'、L'max、Lmaxの算出について説明したところで本実施形態のこれら算出が、特許文献1に記載された口紅塗布レイヤの算出と比較してどのように優れているかについて説明する。特許文献1に記載された口紅塗布と比較すると、特許文献1では唇に加算すべきレイヤがフラットであり、このレイヤの値を唇のL成分と、口紅のL成分との減算により算出しているから、L成分に加算されるべき差分は、ΔL=aveLip−aveStickになる。唇を構成する個々の画素の値に、かかるΔLを加算してゆくと、口紅塗布レイヤのL'maxは、Lmax+ΔL、L`minは、Lmin+ΔLとなり、口紅塗布レイヤの色レンジのL'max、L`minは、元の唇のLmax、Lminと比較して、ΔLだけ上がったものになる。唇の色レンジの最小値、最大値が一律に高くなるので、オリジナル画像と比較してボリューム感が欠落する。またLminにΔLが加算されるので、唇で陰影になっている部分はΔLだけ明るくなってしまう。
【0088】
特許文献1では、陰影が明るくなることの回避策として、唇の陰影部分、ハイライト部分のL成分書き換えを停止しているが、これでは、実施形態の序章で述べたような色の連続性が損なわれ、白飛びが発生するという問題が生じる。これに対して本実施形態では、L'max−rangeLの計算によりL'maxを算出しているから、色レンジの最小値が高くなることはありえない。メイクアップ画像では、オリジナル画像における唇のコントラストは維持されるか、或は、強調されるものになる。また、唇で陰影になっている部分と、そうでない部分との不整合も発生しない。 更に本実施形態では、数1〜数5による変換を経て原画像のL[i]から、メイクアップ後画像のL'[i]を得ている。この際、原画像のL[i]と、メイクアップ後画像のL'[i]との色空間における距離は、0から255までの範囲に収まるから、L'[i]の色レンジは、白飛びにならないように調整される。尚、口紅については、マットな仕上がり(年長者の化粧のように、見た目に粉っぽい肌に仕上げること)をもたらす化粧品が登場している。マットな仕上がりをもたらす化粧品については、rangeL'がより狭くなるよう、数1〜数5を変更してもよい。
【0089】
これまでに述べた、画像処理装置の構成要素の処理内容は、様々な外部事象や装置の内部パラメータに応じた、ハードウェア資源に対する処理手続きとして一般化することができる。そのような一般化された処理手続きを示すのが、
図12〜
図16のフローチャートである。
【0090】
図12は、第1実施形態における唇部位の特徴点抽出のフローチャートである。
図12のフローチャートは、最上位の処理、つまり、メインルーチンに該当するものであり、本フローチャートの下位のフローチャートとして、
図13〜
図16のフローチャートが存在する。まず、ステップS1において、入力画像に対して顔検出を実行する。ステップS2は、顔が見つかったかどうかの判定である。顔が見つかれば、ステップS3でさらに詳細な顔パーツ検出を行い、顔パーツごとの特徴点を出力する。ステップS4では、処理対象領域を大まかに特定するために、唇の輪郭形状を規定する輪郭線を生成することで唇の領域指定を行う。ステップS5では、マスクデータを作成する。このマスクデータは、唇でない部分、例えば、肌、歯の領域を0でマスクするものである。一方、顔が見つからない場合、ステップS3〜ステップS5をスキップしてステップS6に移行する。
【0091】
ステップS6では、オリジナル自画像における唇の色レンジと、入力した口紅の代表色とから口紅の色レンジを生成する。ステップS7では、生成した口紅の色レンジと、唇の色レンジマップとから口紅塗布レイヤを生成する。ステップS8では、口紅塗布レイヤを、顔画像に合成する。
【0092】
図13(a)は、上記の唇の有効マスク作成処理の詳細を示すフローである。本フローチャートに示される処理手順は、サブルーチン化されたものであり、サブルーチンコール時において、顔画像の指定を引数を受け付けた上で本フローチャートに示される処理を実行し、当該処理の実行後、戻り値としてマスクデータを返す。
図13(a)における変数jは、データ構造に存在した複数の情報要素のうち、処理対象になるものを指示する変数である。従って、以降のフローチャートにおいて、ループのj巡目の処理で処理対象となる画素マスクをmask[j]と表記することにする。
【0093】
本フローチャートでは、ステップS10において処理対象となる画素[j]を1つ選んでステップS11を実行する。ステップS11では、処理対象の画素が唇部位の内側、外側のどちらに属するかをチェックする。ステップS12では、処理対象となる画素が領域内であるかどうかを判定する。領域内である場合(S12でYes)、ステップS13においてマスク値(mask[j])を1.0に設定する。一方、領域外である場合(S12でNo)、ステップS14においてマスク値(mask[j])を0.0に設定する。そして、ステップS15では、領域に未処理の画素が存在するかどうかを判定し、もし存在すれば、ステップS10に戻る。すべての画素に対する処理が完了したら、マスクぼかし処理を実行し(S16)、処理を終了する。
【0094】
この有効マスク作成処理は、唇と、唇でない部分(歯、肌、背景など)を区別し、合成処理部16の処理範囲を限定し、必要な領域だけに合成を行うようにすることが目的である。また、細かく唇の領域を確定することによって、唇の代表色aveLipをより正確に算出できるメリットがある。
【0095】
上記の顔パーツ検出で検出された特徴点で囲まれた領域が唇部位であると仮定する。この場合、唇部位の領域内であれば、現画素のマスク値mask[j]は1.0であり、逆に領域外ならmask[j]は0.0となる。全領域のチェックが終了したら、後処理としてマスクのぼかし処理(ステップS16)を実施する。有効マスクをぼかすことによって、色を塗り替えた部分と塗り替えない部分との境界が目立たず、滑らかに塗り替え色から元の色へ繋がる効果がある。
【0096】
図13(b)は、唇の色レンジ算出手順の上位フローチャートである。入力の唇の画像に対して、ステップS21では、Lチャンネルの最小値、最大値、平均値を計算することで色レンジを得る。ステップS22では、Lチャンネルの分布を表す色レンジマップを計算する。
【0097】
図13(c)は、口紅塗布レイヤの生成手順を示すフローチャートである。ステップS23では、口紅が塗布された唇の色レンジを生成し、ステップS24では、唇の色レンジ、レンジマップから口紅塗布レイヤを生成する。
【0098】
次に、第1実施形態における唇の色レンジ算出手順のフローチャートについて説明する。
【0099】
図14(a)は色レンジ計算を具体化したフローチャートである。
図14(a)(b)における変数iは、データ構造に存在した複数の情報要素のうち、処理対象になるものを指示する変数である。従って、以降のフローチャートにおいて、ループのi巡目の処理で処理対象となる画素のL成分をL[i]、画素マスクをmask[i]と表記することにする。
【0100】
ステップS31では、処理対象となる次の画素をL[i]とする。ステップS32では画素[i]のマスクの値mask[i]が閾値insideTHより大きいかどうかを判定することで、現在の画素が唇の領域内の画素か、唇の領域外(肌、歯など)の画素かをチェックする。ここで閾値insideTHは0.0〜1.0の値である。画素[i]のマスクの値mask[i]が閾値insideTHより大きかったら、ステップS33で領域内の画素数countをインクリメントし、ステップS34でLmax及びLminの更新を行う。Lminの更新は、Lmin=min(L[i],Lmin)の実行でなされる。ここでmin(,)は、2つの引数のうち小さいものを返す関数であり、Lmin=min(L[i],Lmin)の実行により、L[i],Lminのうち、小さいものが、Lminとして設定されることになる。Lmaxの更新は、Lmax=max(L[i],Lmax)の実行でなされる。ここでmax(,)は、2つの引数のうち大きいものを返す関数であり、Lmax=max(L[i],Lmax)の実行により、L[i],Lmaxのうち、大きいものが、Lmaxとして設定されることになる。
【0101】
ステップS35では、sumLにL[i]を加算することでsumLを更新する。ステップS36では、ループにおける全ての画素について処理がなされたかどうかの判定である。未処理の画素が存在すれば、ステップS31に戻る。未処理の画素がなくなれば、ステップS36がNoになり、ステップS37でsumL/countの計算を行うことで、aveLipを得て、Lmax1、Lmin1、aveLipをリターンする。
【0102】
図14(b)は、色レンジマップ計算S42の詳細な処理手順を示すフローチャートである。ステップS41では、処理対象となる次の画素をL[i]とし、ステップS42では、現画素値と最小値の差分L[i]-Lminと、最大値と最小値の差分Lmax-Lminとの比率を算出して、画素L[i]についてのレンジマップrmap[i]とする。ステップS43では、領域に存在する全ての画素について、上記の処理がなされたかどうかの判定であり、もし全ての画素について上記の処理がなされていれば、rmap[i]をリターンする。未処理の画素が残っていれば、ステップS41に移行して、未処理の画素について、レンジマップの算出を行う。
【0103】
図15(a)は、口紅塗布レイヤの輝度成分における色レンジ生成手順を示すフローチャートである。ステップS51において、aveStick/aveLipの計算により比率βを算出し、ステップS52において、LmaxからLminを減じることで、rangeLを得る。ステップS53において、rangeLにβを乗じた値をRangeL'とする。ステップS54では、(Lmax−aveLip)/rangeLの計算から係数kaを求めて、ステップS55では、RangeL'に係数kaを乗じた値を、aveStickに加算することでL'maxを得る。ステップS56では、L'maxからRangeL'を減じた値をL'minとする。以上の処理により、L'max、L'minが得られれば、L'max、L'minをリターンする。
【0104】
図15(b)は、口紅塗布レイヤの輝度成分生成の処理手順を示すフローチャートである。
図15(b)における変数iは、顔画像に存在する複数画素のうち、処理対象になるものを指示する変数である。従って、以降のフローチャートにおいて、ループのi巡目の処理で処理対象となる画素のL成分をL[i]、画素マスクをmask[i]と表記することにする。本フローチャートは、ループlp1から構成される。ループlp1は、唇部位の全ての変数について、ステップS61〜ステップS64を繰り返すループ構造を規定する。ステップS61では、i番目の画素のL成分の値であるL[i]を取得し、ステップS62において、レンジマップを使用するかどうかを判定する。レンジマップを使用するのであれば、ステップS63においてL'min+rmap[i]×RangeL'の計算によりL'[i]を得る。
【0105】
レンジマップを使用するのでなければ、ステップS64においてaveStick+(L[i]-aveLip)×βの計算によりL'[i]を得る。
【0106】
図16は、第1実施形態における合成処理の処理手順を示すフローチャートである。
図16における変数iは、データ構造に存在した複数の情報要素のうち、処理対象になるものを指示する変数である。従って、以降のフローチャートにおいて、ループのi巡目の処理で処理対象となる画素のL成分をL[i]、メイクアップ後の画像の画素であって、ループのi巡目の処理で処理対象となる画素のL成分をL'[i]、画素マスクをmask[i]と表記することにする。ステップS71は、領域を構成する全ての画素の処理が完了したかどうかの判定である。もし終了していれば、本フローチャートの処理を終了して、リターンする。未処理の画素が残っていれば、ステップS72において唇部位を構成する次の画素をL[i]とし、ステップS73において口紅塗布レイヤを構成する次の画素をL'[i]とする。そしてステップS74において、唇領域の各画素L[i]と、対応する口紅の画素値L’[i]とを合成した結果gousei(L[i],L’[i])を計算する。その後、この計算結果であるgousei(L[i],L’[i])に対してマスク処理を施す。図中のgousei(L[i],L’[i])×mask[i]+L[i]×(1-mask[i])は、このマスク処理を数式化したものである。
【0107】
合成処理gouseiは、αブレンド、乗算、加算、ハイライトなどを用いることができる。αブレンドを用いる場合、上記マスク処理は、現画素の有効マスクデータmask[j]をα値として、合成した結果gousei(L[i],L’[i])と塗布前の画素値L[i]とにαブレンドを施し、最終結果outL[i]として出力することで実現される。
【0108】
有効マスクデータmask[i]をαブレンドのパラメータにすることによって、唇でないところ、つまりmask[j]=0.0のところでは、塗布が停止され、唇の領域だけに口紅を塗布することができる。以上の処理が終了すれば、上記の過程で算出されたLmin、Lmax、aveLip,L'min,L'max,aveStickをメタデータファイルに格納して、ユーザ毎のディレクトリのメイクアップ画像ファイルに対応付けて記録する。これは、メイクアップの条件をログとして残すためである。
【0109】
以上のように本実施形態によれば、顔画像の代表色と、口紅の塗布色との比率に応じて、オリジナルの唇の色レンジを拡大することでメイクアップされた顔画像の色レンジを得て、オリジナルの顔画像における各画素のL成分と、色レンジとの比率を維持するように、オリジナルの顔画像の唇の画素のL成分を、メイクアップされた顔画像の色レンジにマッピングするので、撮影環境における環境光の照らされ方を損なわない態様で、唇の色が、口紅の色に塗りかえられる。唇に口紅を塗った状態が、自然な雰囲気で再現されるので、化粧アイテムとしての口紅の魅力を引き立たせることができる。
【0110】
(第2実施形態)
第1実施形態では、唇を構成するH,C,Lチャネルのうち、Lチャネルを色レンジ変換及び画素ビット値マッピングの対象としたが、本実施形態では、Hチャネル、Cチャネルについても色レンジ変換、及び、画素ビット値マッピングを行う実施形態である。かかる改良のための画像処理装置の構成は、
図17の通りになる。
図17では、
図6と同じ構成要素については同じ符号を用い、説明を省略する。
【0111】
図17の画像処理装置を、第1実施形態に示した画像処理装置と比較すると、以下の差異が存在する。
【0112】
第1に、唇色レンジ算出部14による出力が異なる。この唇色レンジ算出部14による出力の差異とは、第1実施形態の唇色レンジ算出部14が、Lmax、Lmin、aveLipを出力しているのに対し、第2実施形態では、Lmax、Lmin、aveLipに加え、HチャネルについてのHmax,Hmin,Have、CチャネルについてのCmax,Cmin,Caveを出力するというものである。
【0113】
第2に、口紅塗布レイヤ生成部15により生成される口紅塗布レイヤのチャネルが異なる。口紅塗布レイヤのチャネルの差異とは、第1実施形態での口紅塗布レイヤ生成部15は、Lmax、Lmin、aveLipを受け付け、L’max、L’min、aveStickを生成していたのに対し、第2実施形態の口紅塗布レイヤ生成部15は、Lmax、Lmin、aveLip以外にもHチャネルについてのHmax,Hmin,Have、CチャネルについてのCmax,Cmin,Caveを受け付けて、L’max、L’min、aveStickのほか、HチャネルについてのH’max,H’min,H’ave、CチャネルについてのC’max,C’min,C’aveを生成するというものである。
【0114】
第3に、顔画像との合成を行う構成要件が異なる。この合成を行う構成要件の差異とは、第1実施形態の合成主体として、第1実施形態実施形態では、口紅塗布レイヤのLチャネルと、顔画像のLチャネルとを合成する合成処理部16のみが存在していたのに対し、第2実施形態では、合成処理部16が、口紅塗布レイヤ及び顔画像のLチャネル同士の合成を行う第1合成処理部61の他、口紅塗布レイヤ及び顔画像のHチャネル同士の合成を行う第2合成処理部62、口紅塗布レイヤ及び顔画像のCチャネル同士の合成を行う第3合成処理部63によって構成されているというものである。
【0115】
色相、彩度、Lチャネルに対して、異なる合成処理部61、62、63を用いることによって、チャンネルごとの独立な調整が可能となり、合成画像に対して特殊なエフェクト、例えば、コントラスト強調、鮮やかさ調整、塗り替え色の色相逆転など、をかけることができる。以上が構成要件の差異である。
【0116】
続いて、処理手順の差異について説明する。
【0117】
処理手順の差異とは、第1実施形態では、色レンジ計算、色レンジマップ計算、色レンジ生成、口紅塗布レイヤ 生成、口紅塗布レイヤと、顔画像との合成をLチャネルについて実行していたのに対し(
図14〜
図16)、第2実施形態では、色レンジ計算、色レンジマップ計算、色レンジ生成、口紅塗布レイヤ生成、口紅塗布レイヤ顔画像の合成をLチャネルだけではなく、Hチャネル、Cチャネルについても実行しているというものである。
図18〜
図20は、Hチャネルについての色レンジ計算手順、色レンジマップ計算手順、色レンジ生成手順、口紅塗布レイヤ生成手順、口紅塗布レイヤ顔画像の合成手順を示すフローチャートである。
図21〜
図23は、Cチャネルについての色レンジ計算手順、色レンジマップ計算手順、色レンジ生成手順、口紅塗布レイヤ生成手順、口紅塗布レイヤ顔画像の合成手順を示すフローチャートである。これらのフローチャートと、第1実施形態のフローチャートとの違いは、第1実施形態では、色レンジ計算、色レンジマップ計算、色レンジ生成、口紅塗布レイヤ生成、口紅塗布レイヤ顔画像の合成の対象をLチャネルとしていたのに対して、第2実施形態では、色レンジ計算、色レンジマップ計算、色レンジ生成、口紅塗布レイヤ生成、口紅塗布レイヤ顔画像の合成の対象を、Hチャネル、Cチャネルにしているという処理対象の違いに過ぎない。これらのフローチャートの違いは、処理対象の違いに過ぎないから、同一の参照符号を付すことで説明を省略する。
【0118】
ここで(実施形態の序章)でも述べたように、ユーザ選択が可能な化粧アイテムの見本色の中には、黄色のようにH成分における色レンジの同一性の範囲が狭く、H成分に何等かの値がH成分に加算されると、色の同一性が失われるものがある。この対策として第2実施形態では、選択可能な化粧アイテムのそれぞれが、どの程度の色レンジの同一性を有しているかを予め記憶しておく。そして、ユーザにより化粧アイテムが選択された際、選択された化粧アイテムの見本色の同一性の広狭を判定し、もし化粧アイテムの色レンジの同一性が広ければ、上述したようなH成分についてのHmin、Hmax、Haveの算出を行い、あわせて、H'min、H'max、H'aveを算出する。
【0119】
黄色のように、化粧アイテムの色レンジの同一性が狭ければ、上述したようなH成分についてのHmin、Hmax、Have、H'min、H'max、H'aveの算出を行わない。こうすることで、H成分については、Hmin、Hmax、Have、H'min、H'max、H'aveの算出が制限付きで実行されることになるから、メイクアップ画像の品位を保つことができる。
【0120】
以上のように本実施形態によれば、オリジナルの顔画像における複数鵜種別の画素成分のチャネル画像であるHチャネル、Cチャネル、Lチャネルのそれぞれについて合成処理を行うので、被験者の唇を、立体感溢れる豊かなものに塗り替えることができる。
【0121】
(第3実施形態)
ユーザが好むようなハイライトや陰影をメイクアップ顔画像に付与するため改良に関する。第1実施形態と比較すると、第3実施形態に係る画像処理装置には以下の差異が存在する。
【0122】
第1にレンジマップの取得の仕方が異なる。これは、第1実施形態におけるレンジマップの取得は、処理対象となる画像からレンジマップを作成するというものであるのに対し、本実施形態におけるレンジマップの取得は、記録媒体をアクセスして、化粧アイテムに対応するレンジマップを格納したサンプルファイルを読み出すことでなされるという違いである。
【0123】
第2に、レンジマップの値が異なる。このレンジマップの差異とは、第1実施形態のレンジマップにおける各画素の値は、各画素の差分(L[i]-Lmin)を色レンジ(Lmax-Lmin)で割ることで得られる値であるのに対して、本実施形態のレンジマップにおける各画素の値は、レンジマップサンプルにおける各画素の値は、0.0から1.0までの重み値により与えられるという違いである。
【0124】
第3にレンジを用いたメイクアップ顔画像の画素ビット値の算出の仕方が異なる。これは、第1実施形態におけるi番目の画素の画素ビット値L[i]は、rmap[i]にメイクアップ顔画像の色レンジrangeL’を乗じて、Lminを足し合わせることで算出されるのに対し、本実施形態におけるi番目の画素の画素ビット値L[i]は、レンジマップサンプルを、ユーザの唇の大きさにあわせてスケーリングして、スケーリング後のレンジマップサンプルにおけるi番目の重み値にメイクアップ顔画像の色レンジrangeL’を乗じて、Lminを足し合わせることで算出されるという違いである。
【0125】
次に、本実施形態に特有となる画像処理装置の構成について説明する。
【0126】
画像処理装置がアクセスし得る記録媒体には、複数の化粧アイテムのそれぞれに対応付けてサンプルファイルが記録されている。これらのサンプルファイルは、画素の値が平面的にどのように分布しているかという分布態様のサンプルであり、選択される化粧アイテムに応じて、適切なサンプルファイルが読み出される。
【0127】
本実施形態におけるストレージにおける改良を説明する。
図24(a)は、第3実施形態におけるストレージ6のディレクトリ構成を示す。ストレージにおける差異とは、第1実施形態では、各アイテムに対応するディレクトリに、商品画像ファイル、代表色データファイル、マニュアルファイルを格納していたのに対し、本実施形態では、これらの構成要件に加えて、レンジマップのサンプルを格納したサンプルファイルが、商品アイテムの一構成要件として格納されているというものである。サンプルファイルに格納されるレンジマップサンプルは、対応する化粧アイテムの光学特性に応じて、輝度分布がカスタマイズされたものになっている。
【0128】
図24(b)は、サンプルファイルに格納されるレンジマップサンプルの一例を示す。本図の画像データは、背景部分が重み0の画素になっていて、前景部分は、重み係数が非零の重みをもつ画素で構成されている。この非零の重みを持つ画素は、唇の形状をなしていて、口角部分である左右の両脇、及び、上下の唇の境界部分が0.1という低い値になっている。一方、下唇、上唇の膨らみの部分や、照明に照らされている部分は、0,9という高い値になっている。これは室内の照明で照らされることによるハイライトを表現するものである。
図24(c)は、サンプルファイルによって実現される唇のハイライト及び陰影を示す。本図におけるハイライトhigh1,high2は、
図24(b)のサンプルファイルにおける値0.9の設定で与えられるものである。また陰影shd1,shd2は、
図24(b)のサンプルファイルにおける値0.1の設定で与えられるものである。
【0129】
サンプルファイルを導入する意義は以下の通りである。近年の化粧アイテム業界のトレンドとして、様々な光学特性をもった商品が登場している。
【0130】
口紅には、着色剤の他、反射顔料、拡散顔料、多層干渉顔料といった組成物を含有したものがある。着色剤は、外部からの刺激に対する感応性をもつ。反射顔料は、金属反射を行う。回折顔料は、光の回折の効果又は真珠光沢効果を生じさせるために、回折顔料を含有している。拡散顔料は、吸光現象によって光を生じさせる。多層干渉顔料は、多層の堆積と、反射指数とにより拡散顔料の色強度よりも大きな色強度を生じさせる。
【0131】
このような光学特性の違いを表現するため、ハイライトの量や位置、影の形状や位置が異なるサンプルファイルを複数用意して、これらのそれぞれを、化粧アイテムのそれぞれの構成要件とする。化粧アイテムの選択に応じてサンプルファイルを読み出し、画素ビット値のマッピングを行うことで、唇の光学特性の違いを表現することができる。
【0132】
図25は、サンプルファイルを用いたメイクアップ顔画像の生成手順を示すフローチャートである。ステップS91において、選択された化粧アイテムに対応するサンプルファイルからレンジマップサンプルを読み出し(ステップS91)、レンジマップサンプルの縦画素数と、唇の縦画素数との比率を算出し(ステップS92)、レンジマップサンプルの横画素数と、唇の横画素数との比率を算出する(ステップS93)。レンジマップサンプルの縦画素数、横画素数を、算出された比率に応じて拡大し(ステップS94)、ステップS95〜ステップS99のループに移行する。このループは、変数iを1で初期化して(ステップS95)、レンジマップサンプルにおいてi番目に位置する重み値value[i]を取得し(ステップS96)、value[i]にrangeL'を乗じてL'minを足し合わせるという演算を行い(ステップS97)、iが最大数Nに達したかどうかを判定する(ステップS98)ものである。最大数に達していなければ、変数iをインクリメントして(ステップS99)、ステップS96に戻る。
【0133】
以上のように本実施形態によれば、画素値が平面的にどのように分布しているかという平面分布のパターンがサンプル化されて、サンプルファイルという形態で記録媒体に記録されているから、画像処理装置は、希望するメイクアップの態様に応じたサンプルファイルを読み出すことで、メイクアップの様々なバリエーションを楽しむことができる。
【0134】
(第4実施形態)
本実施形態は、唇の輪郭形状に応じて、各画素に与える重み値を変化させる実施形態である。
【0135】
第1実施形態と比較すると、重み係数の与え方が異なる。重み係数の与え方の差異とは、第1実施形態では、aveLipからの各画素の画素ビット値の相対値を、aveLipに乗じるべき重み係数としていたのに対して、本実施形態では、唇を構成する画素のうち、口角部分に存在するものに低い重みを与えるというものである。口角とは、上唇と、下唇との接合部、唇の両脇のことである。唇の輪郭は、アンカーポイントと、補完線により形成される。
図26(a)は、アンカーポイントと、補完線により形成される唇部位の輪郭線を示す。
【0136】
図26(a)において、口角の左脇部分は、X座標が一番小さい、左端のアンカーポイントXminを基準にして、このアンカーポイントから右上に向かう補間線left1、及び、アンカーポイントから右下に向かう補間線left2により特定される。
【0137】
口角の右脇部分は、X座標が一番大きい、右端のアンカーポイントXmaxを基準にして、このアンカーポイントから左上に向かう補間線right1、及び、アンカーポイントから左下に向かう補間線right2により特定される。
【0138】
上下の唇の境界は、左脇のアンカーXminから、右脇のアンカーXmaxへと向かう一連の補完線列bord1,2,3,4により特定される。
【0139】
左右両脇及び上下唇の境界を構成する複数の補間線が特定されれば、これらの補間線沿いに存在する画素の重み係数を低くする。こうすることで、唇の両脇や上下の境界部分のシルエットを好適に表現することができる。
図26(b)は、補間線沿いに存在する画素の重み係数を低くすることで生成される唇の陰影を示す。
【0140】
本実施形態では、アンカー間の補間線沿いに画素ビット値を低くするので、唇の形状に応じて口金沿いの影の形状を変化させることができる。
【0141】
図26(c)は、補間線の曲率を変化させる過程を示す。(c)のbarは、アンカーから引き出された操作バーであり、アンカーを軸として反時計回りに回転させることができる。(c)の左側は回転前、右側は回転後を示す。アンカーを基点としてバーを時計回り、反時計回りに回転させることで、補間線をベジェ曲線に変化させ、このベジェ曲線の曲率を変化させて、それに伴い唇の陰影形状を変化させることができる。
【0142】
図27は、口金部分の強調処理の処理手順を示すフローチャートである。一番X座標が大きいアンカーポイントXmaxを特定し(ステップS101) 、アンカーポイントXmaxから左上に向かうほ補完線、及び、左下に向かう補完線を、右脇の口金部分とする(ステップS102)。次に、一番X座標が小さいアンカーポイントXminを特定し(ステップS103) 、アンカーポイントXminから右上に向かう補完線、及び、右下に向かう補完線を、左脇の口金部分とする(ステップS104)。続いてXminからXmaxに向かう補完線の集りを特定し(ステップS105)、特定された補完線の集りを、上下の唇の境界線とする(ステップS106)。右脇口金部分、左脇口金部分、上下唇の境界周辺に存在する画素を、比較的低く重み付けする(ステップS107)。
【0143】
以上のように本実施形態によれば、唇の輪郭形状を規定する特徴点を抽出する際、この唇の輪郭を囲むために用いられたアンカー間の補完線から唇の右脇、左脇、上下唇の境界にあたるものを検出し、これらの部位の周辺に位置する唇領域の画素を低く重み付けるので、唇の輪郭形状を際立たせることができ、メイクアップの見栄えをよくすることができる。
【0144】
(第5実施形態)
本実施形態は、動画像を対象としたメイクアップ操作を実現する改良に関する。
【0145】
本実施形態と、第1実施形態とでは、画素値変換の対象が異なる。これは、第1実施形態の画素値変換は、一枚の静止画を対象としていたのに対して、本実施形態の画素値変換は、動画像を構成する複数のフレーム画像のそれぞれを対象にしてなされるという違いである。
【0146】
第2に、メイクアップの手法が異なる。これは、第1実施形態のメイクアップは、ユーザにより選択された口紅アイテムを用いて、特徴点を用いて領域指定された唇の色を変えるものであったのに対し、本実施形態のメイクアップは、化粧アイテムを用いてユーザが手塗りを行うことで、顔の任意の部位の色を変えるという違いである。
【0147】
第3に、画素値変換の対象が異なる。これは、第1実施形態の画素値変換は、特徴点を通じて領域指定された唇部位を対象としていたのに対して、本実施形態の画素値変換は、手塗り操作を受け付けた範囲を対象にするという違いである。本実施形態では、動画像を構成する複数のフレーム画像を処理対象にしているので、複数のフレーム画像のうち1つを静止画として固定して、メイクアップ操作に供する操作モード、個々のフレーム画像を動画像として再生してメイクアップ後の確認に供する確認モードが存在する。
図28は、モード切り替えに応じた3つのフェーズを示す。
【0148】
左側のフェーズph1は、入力される動画像の個々のフレーム画像を見ながら、操作のベースとなるフレーム画像を選ぶフェーズである。このフェーズでは、第1段目に示すように、モードは操作モードになっていて、タッチパネルには、動画像を構成する個々のフレーム画像が順次表示される。画面へのタッチにより、1つのフレーム画像がキャプチャされ、メイクアップ操作の対象となる静止画が定まる。
【0149】
真ん中のフェーズph2は、フレーム画像のキャプチャで得られた静止画をベースとしたメイクアップ操作を受け付けるフェーズである。ph2の第1段目は、モードが操作モードに設定されていることを示す。第2段目は、メイクアップ操作がなされている状況を示す。この第2段目におけるフレーム画像Fxとは、操作モードの対象として、静止画表示に供されるフレーム画像である。この状況は、静止画としてキャプチャされた自画像であるフレーム画像Fxがディスプレイに表示されていて、このディスプレイの表面を指でなぞるというものである。この指なぞり操作により眉毛の手塗りイメージ、頬紅の手塗りイメージ、口紅の手塗りイメージが静止画に合成されている。
【0150】
右端のフェーズph3は、操作モードでの手塗り操作の実行後、再度、確認モードへの切り替えがなされている状況を示す。ここで、フレーム画像Fx+mは、確認モードで表示される動画像のうち、任意の一枚のフレーム画像を意味する。かかるフェーズでは、後続するフレームのうち、顔の眉、頬、唇に該当する部位に、眉毛の手塗りイメージ、頬紅の手塗りイメージ、口紅の手塗りイメージがマッピングされている。
【0151】
本実施形態において、化粧アイテムの手塗りがなされれば、化粧アイテムの代表色と、手塗りがなされた部位とについて、Lmin、Lmax、aveLipを算出すると共に、手塗りで選択された化粧アイテムについてaveStickを算出する。そして、aveLipと、aveStickとから比率βを求めて、手塗りがなされた化粧アイテムの色レンジに、手塗りがなされた部位の画素ビット値をマッピングしてゆく。
【0152】
後続するフレーム画像に対して、かかる手塗りイメージのマッピングがなされるので、ユーザは、自分がしたメイクアップで、自分が動く姿を視覚的に確認することができる。
【0153】
上記の手塗りイメージのマッピングは、各フレームから各部位の輪郭を規定する特徴点を抽出し、フレーム画像に存在する特徴点の群を、別のフレーム画像の特徴点に変換する変換行列を求めることでなされる。
【0154】
フレーム画像Fx、フレーム画像Fx+mからは、複数の特徴点からなる特徴点群が検出される。これらの特徴点は、対象物における部位の輪郭形状を規定するものである。画像処理装置は、静止画として設定されたフレーム画像Fxと、後続するフレーム画像Fx+mとで対応点探索を行うことで、特徴点の対応付けを行う。ここで、フレーム画像間の対応点探索は、各画素に対して輝度値等に基づく相関値を算出し、その相関値が最も高い画素を検出することでなされる。静止画に表される何れかの部位に対して手塗りによるメイクアップ操作が行われれば、後続するフレーム画像における部位であって、対応点探索により操作に係る部位との対応付けがなされたものに、操作に係る手塗りイメージをマッピングする。
【0155】
図29(a)は、フレーム画像Fxと、フレーム画像Fx+mとにおいて検出された特徴点群を示す。
【0156】
図29(a)における特徴点群gp1,gp2,gp3,gp4は、フレーム画像Fxにおける顔画像の代表的な部位(眉、唇、頬)を取り囲んで、当該部位の輪郭形状を規定している。図中の特徴点群gp11,gp12,gp13,gp14は、フレーム画像Fx+mにおける顔画像の代表的な部位を取り囲んで、当該部位の輪郭形状を規定している。矢印sr1,sr2,sr3,sr4は、フレーム画像Fxにおける特徴点と、フレーム画像Fx+mにおける特徴点とでなされる対応点探索の過程を模式的に示す。この対応点探索により、フレーム画像Fxにおける眉を規定する特徴点群と、フレーム画像Fx+mにおける眉を規定する特徴点群との対応関係が規定される。
【0157】
図29(b)は、フレーム画像Fxと、フレーム画像Fx+mとの間の特徴点の変換を規定する変換行列を示す。
図29(b)におけるH1,H2,H3,H4は、対応する部位間の特徴点変換を規定する変換行列を示す。これらの変換行列を利用して、フレーム画像Fxに対する手塗り操作で得られた手塗りイメージを、フレーム画像Fx+mにマッピングする。これにより手塗りイメージはフレーム画像Fx+mを示す特徴点の現れ方に応じて変形されて表示される。
【0158】
図30(a)は、フレーム画像Fx、フレーム画像Fx+mに存在する複数の特徴点を示す。
【0159】
図30(a)の上段左側に存在する複数の特徴点i1,i2,i3,i4・・・・i8は、フレームFxの顔画像における眉毛の形状を特徴付けるものである。
図30(a)の上段右側に存在する複数の特徴点j1,j2,j3,j4・・・・j8は、フレームFx+mの顔画像における眉毛の形状を特徴付けるものである。
図30(b)は、変換行列の一例を示す。
図30(b)における変換行列Hは、フレーム画像Fxにおける特徴点i1,i2,i3,i4・・・・i8を、フレーム画像Fx+mの特徴点j1,j2,j3,j4・・・・j8に変換する行列であり、8×8の行列成分から構成される。
【0160】
ベースとなる静止画が確定した際、この静止画から、顔の各部位の特徴点を抽出すると共に、後続するフレーム画像のそれぞれが処理画像になる度に、新たな処理画像が特徴点を抽出する。そして、静止画の特徴点と、新たに処理画像になったフレーム画像の特徴点との間で両者の関係を規定する変換行列を求めて、この変換行列により手塗りイメージを各フレーム画像にマッピングする。これにより後続するフレーム画像に対してメイクアップを施す。
【0161】
図30(c)は、静止画に対して手塗りイメージが描画されている状況を示す。図中の軌跡trk1は、タッチパネルに描かれた顔を指でなぞった軌跡であり、この軌跡が手塗りイメージとして特定される。真ん中の矢印cv1は、
図30に示した変換行列Hを用いた手塗りイメージの変換を模式的に示す。図中の手塗りイメージtrk2は、かかる変換行列を用いた変換を経て、フレームFx+mの顔画像に合成された手塗りイメージを示す。以上のように、変換行列を用いた変換を行うことで、静止画中の顔画像を指でなぞることで得られた手塗りイメージは、フレームFx+mのフレーム画像にマッピングされることになる。
【0162】
図31は、動作モードが、確認モードから操作モードに切り替えられた場合において、確認モードのベースとなる静止画が確定するまで経緯を示す。第1段目は、動作モードの設定の遷移を示し、第2段目は、カメラ102からリアルタイムに入力されるフレーム画像、第3段目は、特徴点抽出に従った顔部品検出、第4段目は、画面に対して受け付けが可能となる操作を示す。時点t1は、動作モードが確認モードから操作モードに切り替った時点を示す。
【0163】
フレーム画像Ft1は、その時点でキャプチャされたフレーム画像である。かかるフレーム画像は、GUIを操作する瞬間のユーザを捉えたものなのでユーザの視線が外れていて、顔が正面を向いていない。特徴点検出において、視線方向がおかしいこと判明すれば、第4段目において、顔部品検出はNGであるとの判断結果を下す。
【0164】
フレーム画像Ft5は,ユーザが目を閉じた瞬間を捉えたフレーム画像である。特徴点検出で、ユーザの目が閉じられていることが判明すれば、第3段目に示すように、顔部品検出はNGとなる。
【0165】
フレームFt9は、ユーザがカメラ正面を向いたところを捉えたフレーム画像である。特徴点抽出により、ユーザが正面を向いていて、目が空いていることが判明すれば、顔部品検出はOKとなり、フレームFt7は、操作モードのベースになってユーザによる手塗り操作が受け付けられる。
【0166】
図32は、動画像を対象としたメイクアップの処理手順を示すフローチャートである。カレントモードを操作モードに設定して(ステップS201)、ステップS202〜ステップS203のループに移行する。このループは、入力される動画像を構成する個々のフレーム画像を表示して(S202)、静止画ベースの確認モードへの切り替えが発生したかを判断するものである(ステップS203)。もし、モード切り替えが発生すれば、フレーム画像を静止画としてキャプチャして(ステップS204)、ステップS205〜ステップS206からなるループに移行する。このループは、化粧アイテムへのタッチが発生したか(ステップS205)、静止画における顔へのタッチが発生したか(ステップS206)、確認モードへの切り替えが発生したか(ステップS207)を判断するものである。ステップS205がYesになれば、ステップS208においてタッチされた化粧アイテムを選択する。顔画像へのタッチが発生すれば、タッチされた部位を特定して(ステップS209)、指塗り操作が継続しているかどうかを判定する(ステップS210)。もし継続していれば、操作に追従した手塗りイメージによる描画を継続する(ステップS211)。もし操作が終了すれば、これまでの操作で描画された手塗りイメージを確定して保持する(ステップS212)。
【0167】
操作モードから確認モードへの切り替えが発生すれば、ステップS207がYesになり、ステップS213に移行する。ステップS213は、後続するフレーム画像の入力待ちであり(ステップS213)、入力されれば、後続するフレーム画像から顔の特徴点を抽出し、この特徴点に従い、フレーム画像におけるマッピング部位を特定する(ステップS214)。その後、かかるフレーム画像のマッピング部位に、手塗りイメージをマッピングする(ステップS215)。最後に、手塗りイメージがマッピングされたフレーム画像を再生させ(ステップS216)、ステップS213に戻る。
【0168】
以上のように本実施形態によれば、動画像を構成する複数のフレーム画像の中からメイクアップのベースとなる静止画を選び、かかる静止画に対して、塗材の手塗りによるメイクアップを行うことができ、かかる手塗りにより、後続するフレーム画像には、かかる手塗りで得られた手塗りイメージが合成されることになる。ユーザは、メイクアップ後の自分が動く姿を見ることができるので、メイクアップ塗材を買って使ってみたいと感じるようになり、化粧アイテムの販促につなげることができる。
【0169】
(第6実施形態)
本実施形態は、レンジマップの値やL'[i]の算出に、SIMD(Single Instruction Multi Data)プロセッサを利用する改良を開示する。
【0170】
SIMDプロセッサは、n個のプロセッシングエレメント、n入力-n出力セレクタを含む。各プロセッシングエレメントは算術演算ユニットと、レジスタファイルとを含む。
【0171】
算術演算ユニットは、バレルシフタ、レジスタ、乗算器、加算器からなる積和演算器を具備しており、この積和演算器により、平滑化処理等、デジタル信号処理を高速に行うことができる。
【0172】
n入力-n出力セレクタは、n個の入出力を同時実行する。n入力-n出力セレクタにおける個々の入出力は、何れかのプロセッシングエレメント内のレジスタファイルを入力元とし、何れかのプロセッシングエレメント内の演算ユニットを出力先としたもので、単一の命令にて規定される。n個のプロセッシングエレメント内の算術演算ユニットは、レジスタファイルに格納されている要素をオペランドとした演算を実行するものである。n個のプロセッシングエレメントのそれぞれに算術演算ユニットが存在するため、n個の演算が並列に実行されることになる。
【0173】
各プロセッシングエレメント内のレジスタファイルは、複数のレジスタを含む。かかるレジスタファイルが、n個のプロセッシングエレメントのそれぞれの中に存在するので、Nが16である場合、画像処理装置では、縦16×横16の要素からなる行列が、縦16×横16のレジスタにより保持されることになる。
【0174】
n入力-n出力セレクタは、水平方向に存在するn個の画素の画素ビット値を、n個のプロセッシングエレメントの何れかの算術演算ユニット、レジスタファイルに供給するものである。
【0175】
図14(a)のステップS34におけるmin(,)の関数による動作は、SIMDプロセッサが唇画像における任意の2つの画素を選んで、選ばれた2つの画素のL成分を比較し、小さいものLminとして格納するという動作で実現される。具体的には、セレクタによるプロセッシングエレメントの水平方向の入出力で2つの画素のL成分を1個のプロセッシングエレメントの算術演算ユニットに供給し、この算術演算ユニットが両者の比較を行って、小さいものをLminとしてレジスタに書き戻し、格納されたLminと、他の画素のL成分とについて同様の処理を繰り返すことで実現される。
【0176】
図14(a)のステップS34におけるmax(,)の関数による動作は、SIMDプロセッサが、唇画像における任意の2つの画素を選んで、選ばれた2つの画素のL成分を比較し、大きいものをLmaxとして格納するという動作で実現される。具体的には、このセレクタによるプロセッシングエレメントの水平方向の入出力により2つの画素のL成分を1個のプロセッシングエレメントの算術演算ユニットに供給し、この算術演算ユニットが両者の比較を行って、大きいものをLmaxとしてレジスタに書き戻し、格納されたLmaxと、他の画素のL成分とについて同様の処理を繰り返すことで実現される。
【0177】
n入力-n出力セレクタは、水平方向に存在するn個の画素のL成分を、1個のプロセッシングエレメントに供給することができるから、水平方向に存在するn個の画素のL成分を、一個のプロセッシングエレメントの算術演算ユニットに供給し、当該算術演算ユニットが、供給された各画素のL成分について積和演算を行うという動作を実行すれば、第1実施形態において、
図14(a)のステップS35に示したSUMの算出を高速に行うことができる。これを画素数で割ることにより、唇部位の平均値であるaveLipの算出を高速に行うことができる。
【0178】
図15(b)のフローチャートに示したL'[i]の算出は以下のように行う。SIMDプロセッサに含まれるn個のプロセッシングエレメントは、レンジマップにおいて水平方向に存在するn個の画素の画素ビット値をパラレルに読み出し、n個のプロセッシングエレメントのそれぞれに供給する。各プロセッシングエレメントの算術演算ユニットは、オリジナルの顔画像のi番目の画素の値L[i]と、aveLipとの差分にβを乗じて、aveStickを加算するという乗算・加算処理を行い、演算結果をメイクアップされた顔画像の画素としてメモリに書き込む。これにより、メイクアップされた顔画像が得られる。
【0179】
図14(b)に示したrmap[i]の算出については、メモリに格納されたオリジナルの顔画像において水平方向に存在する横n個の画素のL成分をパラレルに読み出して、各プロセッシングエレメント内のレジスタファイルに格納する。各プロセッシングエレメントの算術演算ユニットは、L[i]からLminを引くという減算と、この減算結果に、1/(Lmax−Lmin)を乗じるという乗算とを実行し、演算結果をレンジマップの各画素の値としてメモリに書き込む。これによりレンジマップが得られる。
【0180】
rmap[i]を用いたL'[i]の算出は以下のように行う。SIMDプロセッサに含まれるn個のプロセッシングエレメントは、レンジマップにおいて水平方向に存在するn個のrmapの値をパラレルに読み出し、n個のプロセッシングエレメントのそれぞれに供給する。
【0181】
プロセッシングエレメントの算術演算ユニットは、レンジマップのi番目の値であるrmap[i]にrangeL'を乗じ、Lminを足し合わせるという乗算・加算処理を行い、演算結果をメイクアップされた顔画像の画素ビット値としてメモリに書き込む。これにより、メイクアップされた顔画像が得られる。
【0182】
<備考>
以上、本願の出願時点において、出願人が知り得る最良の実施形態について説明したが、以下に示す技術的トピックについては、更なる改良や変更実施を加えることができる。各実施形態に示した通り実施するか、これらの改良・変更を施すか否かは、何れも任意的であり、実施する者の主観によることは留意されたい。
【0183】
(メイクアップ塗材のバリエーション)
メイクアップ塗材は、化粧品を仮想化したアイテムに留まらない。カラーコンタクトやイヤリング、耳、鼻のピアスであってもよい。メイクアップの対象部位を含む対象物を人の顔としたが、手としてもよい。また塗材は、マニキュアであってもよい。また、メイクアップの対象物は、人間ではなく愛玩動物でもよい。更に、画像処理装置によるメイクアップは、自動車のドレスアップでもよい。
【0184】
(カラーバリエーションの作成)
メイクアップシミュレーターは、口紅アイテムからカラーバリエーションを作成する機能を具備してもよい。これらのカラーバリエーションは、口紅ツールの選択後、カラーサンプルを選択し、唇アイテムの塗布色のH成分、C成分を、このカラーサンプルのH成分、C成分に置き換えることで作成される。
【0185】
(処理対象の適用範囲)
各実施形態で開示した装置の内部構成、フローチャート、動作例は、『対象体の一部の部位』という用語の下位概念の1つである『人の顔の唇』を処理対象にしていた。同様に、各実施形態で開示した装置の内部構成、フローチャート、動作例は、『メイクアップ塗布材』という用語の下位概念の1つである『口紅』を処理対象にしていた。しかしながら当該用語に包含される他の下位概念を処理対象にしてもよい。処理対象が複数の下位概念の何れであるかは、データ素材の中身の違いに過ぎず、装置の構成や処理内容に変化をもたらすものではないからである。
【0186】
(色空間変換部2、色空間逆変換部7による変換対象)
色空間変換部2、色空間逆変換部7では、変換対象となる色空間はRGB、HCLと説明したが、HCL色空間の代わりに、他の色相、彩度、輝度の3チャンネルの色空間、例えばHSV、HSLなどを使用しても良い。
【0187】
(レンジマップの適用範囲)
レンジマップでは、現画素値と平均値の比率L[i]/Laveを使用したりしても良い。
【0188】
(第5実施形態のバリエーション)
第2実施形態では、動画像を構成する複数のフレーム画像か何れか1つを選んで、手塗りによるメイクアップを行ったが、初期画面においてユーザが選択した部位を各フレーム画像から自動的に抽出して、各フレーム画像における該当部位を化粧アイテムで塗りかえることにより、メイクアップを実現してもよい。
【0189】
(数式1〜5に記載された演算処理の実装)
数1から数5までの数式は、数学的な概念を意味するのではなく、あくまでも、コンピュータ上で実行される数値演算を意味するものなので、当然のことながら、コンピュータに実現させるための、必要な改変が加えられることはいうまでもない。例えば、数値を、整数型、固定少数点型、浮動小数点型で扱うための飽和演算や正値化演算が施されてよいことはいうまでもない。更に、各実施形態に示した、数式に基づく演算処理のうち、定数との乗算は、定数ROMを用いたROM乗算器で実現することができる。定数ROMには、被乗数と定数との積の値はあらかじめ計算されて格納されている。例えば、被乗数が16ビット長である場合、この被乗数は、4ビット毎に四つに区切られ、この4ビット部分と定数との積、つまり、定数の0〜15の倍数が上記の定数ROMに格納されている。上記の一区切りの4ビットと定数16ビットとの積は20ビット長であり、上記の四つの定数が同一のアドレスに格納されるので、20×4=80ビット長が一語のビット長となる。以上述べたように、ROM乗算器での実現が可能であるので、本明細書でいうところの“演算処理”は、純粋な算術演算のみを意味するのではなく、ROM等の記録媒体に格納された演算結果を、被演算子の値に応じて読み出すという、記録媒体の読み出しをも包含する。
【0190】
(ネットワークへの応用)
タブレットと、画像処理装置とはネットワークを介して接続されてもよい。この場合、画像処理装置は、ネットワークを介して表示装置のカメラによる自画像(オリジナルの画像データ)を受け取り、メイクアップ処理を行う。そしてメイクアップ結果となる画像を外部装置に出力して、表示に供する。
【0191】
(複数ユーザ対応)
画像処理装置は、複数ユーザを撮影することで得られた、複数ユーザの人物像に対してメイクアップのための画像処理を施してもよい。この場合、多くの人物像を処理せねばならないから、不特定多数のユーザの顔画像をビッグデータとして処理できるようなクラウドネットワークのサーバ(クラウドサーバ)で画像処理装置を動作させるのが望ましい。クラウドネットワークにおいてメイクアップ開始が命じられれば、ハイパーバイザは、クラウドサーバにおいてゲストオペレーティングシステム(ゲストOS)を起動する。こうしてゲストOSを起動した上で、企業内部に存在するイントラネットワークから画像処理装置の構成要件の処理を行うアプリケーションプログラムを、クラウドサーバにロードする。かかるロードにより、これまでの実施形態までの述べた処理をビッグデータに対し実行する。
【0192】
(プログラムコードによる具体化)
上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【0193】
(集積回路による具体化)
上記の各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。集積回路のアーキテクチャは、プリプログラムされたDMAマスタ回路等から構成され、ストリーム処理全般を実行するフロントエンド処理回路(1)と、SIMDプロセッサ等から構成され、信号処理全般を実行する信号処理回路(2)と、画素処理や画像重畳、リサイズ、画像フォーマット変換AV出力処理全般を行うバックエンド回路(3)と、ドライブ、ネットワークとのインターフェイスであるメディアインターフェイス回路(4)と、メモリアクセスのためのスレーブ回路であり、フロントエンド部、信号処理部、バックエンド部の要求に応じて、パケットやデータの読み書きを実現するメモリコントローラ回路(5)とから構成される。ここでパッケージの種別に着目するとシステムLSIには、QFP(クッド フラッド アレイ)、PGA(ピン グリッド アレイ)という種別がある。QFPは、パッケージの四側面にピンが取り付けられたシステムLSIである。PGAは、底面全体に、多くのピンが取り付けられたシステムLSIである。
【0194】
(単体モジュール化)
上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【0195】
(プログラム化)
本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【0196】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【0197】
更に、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよいし、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【0198】
図12〜
図16の処理、
図17〜
図23の処理をコンピュータに行わせるプログラムコードは、以下のようにして作ることができる。先ず初めに、ソフトウェア開発者は、プログラミング言語を用いて、各フローチャートや、機能的な構成要素を実現するようなソースプログラムを記述する。この記述にあたって、ソフトウェア開発者は、プログラミング言語の構文に従い、クラス構造体や変数、配列変数、外部関数のコールを用いて、各フローチャートや、機能的な構成要素を具現するソースプログラムを記述する。
【0199】
記述されたソースプログラムは、ファイルとしてコンパイラに与えられる。コンパイラは、これらのソースプログラムを翻訳してオブジェクトプログラムを生成する。
【0200】
コンパイラによる翻訳は、構文解析、最適化、資源割付、コード生成といった過程からなる。構文解析では、ソースプログラムの字句解析、構文解析および意味解析を行い、ソースプログラムを中間プログラムに変換する。最適化では、中間プログラムに対して、基本ブロック化、制御フロー解析、データフロー解析という作業を行う。資源割付では、ターゲットとなるプロセッサの命令セットへの適合を図るため、中間プログラム中の変数をターゲットとなるプロセッサのプロセッサが有しているレジスタまたはメモリに割り付ける。コード生成では、中間プログラム内の各中間命令を、プログラムコードに変換し、オブジェクトプログラムを得る。
【0201】
ここで生成されたオブジェクトプログラムは、各実施形態に示したフローチャートの各ステップや、機能的構成要素の個々の手順を、コンピュータに実行させるような1つ以上のプログラムコードから構成される。ここでプログラムコードは、プロセッサのネィティブコード、JAVA(登録商標)バイトコードというように、様々な種類がある。プログラムコードによる各ステップの実現には、様々な態様がある。外部関数を利用して、各ステップを実現することができる場合、この外部関数をコールするコール文が、プログラムコードになる。また、1つのステップを実現するようなプログラムコードが、別々のオブジェクトプログラムに帰属することもある。命令種が制限されているRISCプロセッサでは、算術演算命令や論理演算命令、分岐命令等を組合せることで、フローチャートの各ステップを実現してもよい。オブジェクトプログラムが生成されるとプログラマはこれらに対してリンカを起動する。リンカはこれらのオブジェクトプログラムや、関連するライブラリプログラムをメモリ空間に割り当て、これらを1つに結合して、ロードモジュールを生成する。こうして生成されるロードモジュールは、コンピュータによる読み取りを前提にしたものであり、各フローチャートに示した処理手順や機能的な構成要素の処理手順を、コンピュータに実行させるものである。かかるコンピュータプログラムを非一時的なコンピュータ読取可能な記録媒体に記録してユーザに提供してよい。
【0202】
(組合せ)
上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【0203】
(技術的思想の体系化)
第1実施形態から第6実施形態までに示した画像処理装置の具体的な形態から抽出される技術的思想の創作は、以下の1.、2.、3.、4.・・・・・の体系をなす。この体系において、1.は、上体系の根幹となる基本的態様であり、2.、3.〜は、その派生の形態である。
【0204】
(1.基本的態様)
ここで上記体系の根幹となる画像処理装置は、原画像に現された対象体からメイクアップ塗材を塗布すべき部位を指定する指定手段と、メイクアップ塗材の見本色を代表色とした色レンジをもつ複数の画素から構成される塗材塗布レイヤを生成する生成手段と、原画像に塗材塗布レイヤを合成する合成手段を備え、
塗材塗布レイヤを構成する複数の画素の色レンジは、メイクアップ塗材が塗布されるべき原画像の部位を構成する複数画素の代表的な値と、メイクアップ塗材の見本色画素の値との比率に応じて、前記対象体の一部の部位を構成する複数画素の色レンジを拡大することで得られ、塗材塗布レイヤの画素の値は、原画像の画素であって、位置的に対応するものの画素の値を塗材塗布レイヤの色レンジにマッピングすることで得られることを特徴としている。
【0205】
塗布後の部位画像の色レンジは、オリジナル画像の色レンジを拡大することで得られ、塗材塗布レイヤの画素ビット値は、オリジナル画像の画素であって、位置的に対応するものの画素ビット値を、拡大後の色レンジにマッピングすることで得られるから、塗材塗布レイヤを構成する複数の画素の画素ビット値は、元画像において対象となる部位の形状に沿ったコントラストが強調された態様で塗材塗布レイヤに現れることになる。かかるコントラスト強調により、対象となる部位に光学特性をもったメイクアップ塗材が塗布され、環境光が照らされている状態をリアルに再現することができる。
【0206】
ここで塗布の対象となる部位とは、画像に現された建物、生き物、乗り物、静物、人体の表面領域のうち、一部のことをいう。
【0207】
対象体が人体である場合のメイクアップ塗材には、口紅、ヘアスプレー、マニキュア、アイシャドウ、ワンディタトゥ等がある。対象体が建物、乗り物、静物である場合のメイクアップ塗材には、ペンキ、スプレー塗料、蛍光塗料等がある。これらの下位概念について実施の形態を述べると説明が煩雑になり望ましくない。そこで、塗布の対象を人体の唇とし、口紅がメイクアップ塗材であるとして、実施形態についての説明を行った。
【0208】
(2.塗材が塗布される部位の下位概念化)
また、上記の基本的態様において、ハイライトが存在する箇所や影のできた箇所と、それ以外の箇所との繋ぎめの不自然さを解消するには、部位画像を以下のものとすることはできる。
【0209】
これは、第1実施形態における代表色の選択を一般化したものである。具体的にいうと、前記原画像において指定手段により指定される部位は、環境光で照らされることにより生じるハイライト部分の画素と、環境光が遮られることで生じる陰影部分の画素とを含み、前記原画像部位を構成する複数画素の代表的な値は、ハイライト部分の画素と、陰影部分の画素とを含む複数の画素に対して統計処理を施すことで算出される
特許文献1に記載された先行技術では、ハイライトや影になっている部分の書き換えを停止しているのに対し、上記態様の画像処理装置では、カレーレンジを拡大することでハイライトや影になっている部分も画素ビット値の書き換えの対象にしているから、本発明では、元画像でハイライトが存在する箇所や影のできた箇所と、それ以外の箇所との繋ぎめの部分が不自然になることはない。また代表色を決めるにあたっては、ハイライトや陰影を除外せず、これらを含む複数の画素群に対して統計処理を施すことで代表色を得るので、塗布がなされた塗材塗布レイヤにより自然なコントラスト変化をもたらすことができる。ここで上記統計処理は、平均計算、加重平均計算、分散計算、偏差計算等を広く含む。
【0210】
(3.マッピングの具体化)
生成手段によるマッピングは、より具体的なものに展開することができる。それは、第1実施形態におけるレンジマップを用いた数式(数5)の一般化である。具体的には、画像処理装置は更に、原画像に対応する平面座標系において、画素の値がどのように分布しているかを示す分布マップを取得し、生成手段によるマッピングは、分布マップに示される値であって、位置的に対応するものを重み係数として用いて色レンジを重み付け、重み付け後の値に、オフセットを付与することでなされる
塗布された画像で、画素の分布がどうあるべきかが分布マップに示され、塗材塗布レイヤの画素ビット値の決定は、この分布マップに支配されるので、塗材塗布レイヤにおける明るさの分布はよりリアルに表現される。
【0211】
(4.重み値やオフセットの具体化)
分布マップに示される重み値やオフセットは、より具体的なものに展開することができる。それは、第1実施形態に示したrmap[i]*rangeL',L'minによる限定である。
【0212】
具体的にいうと、前記分布マップにより示される各画素位置の値は、塗材が塗布されるべき原画像の部位を構成する複数画素のうち、位置的に対応するものの画素の値と、当該部位を構成する色の下限値との差分を、当該部位における色レンジを用いて正規化したものであり、前記オフセットは、塗り替え色の色レンジの下限値である。分布マップの値は、画素ビット値と色レンジとの差分を正規化したものなので、これに色レンジ長を乗じることで、塗材塗布レイヤの該当部位は、より本物に近い明るさ分布をもつことになる。これにより、本物と見間違えるようなメイクアップシュレーションが可能になる。
【0213】
(5.分布マップの取得の仕方)
分布マップをどのように取得するかについては、より具体的なものに展開することができる。それは、レンジマップをサンプルファイルとして取得するというものである。
【0214】
具体的にいうと、画像処理装置がアクセスし得る記録媒体には、サンプルファイルが記録されており、サンプルファイルは、画素の値が平面的にどのように分布しているかという分布態様のサンプルであり、生成手段による分布マップの取得は、サンプルファイルを記録媒体から読み出すことでなされるというものである。画素ビット値がどのように分布しているかという平面分布のパターンがサンプル化されて、サンプルファイルという形態で記録媒体に記録されているから、画像処理装置は、希望するメイクアップの態様に応じたサンプルファイルを読み出すことで、メイクアップの様々なバリエーションを楽しむことができる。
【0215】
(6.演算式の具体化)
画素ビット値の変換は、ビット演算を用いた具体的なものに展開することができる。それは、第1実施形態における数6の一般化である。具体的にいうと、前記変換は、塗材が塗布されるべき原画像の部位を構成する複数の画素であって、位置的に対応するものの画素の値が、当該部位を構成する複数画素の色レンジ全体においてどれだけの割合を占めているかを示す相対値に所定の係数を乗じ、オフセットを足し合わせることで得られるというものである。重み係数を乗じ、オフセットを加算するという処理は、シフトレジスタを用いた積和演算回路等によるハードウェア化が可能となる。かかるハードウェア化により、複数の画素に対する処理の並列化、パイプライン化が可能になる。
【0216】
(7.相対値、重み係数、オフセットの具体化)
6.の態様における相対値、重み係数、オフセットは、より下位概念化の内容に展開することができる。それは、数6のL[i]-Lave),β,L'aveによる限定であり、前記相対値は、塗材が塗布されるべき原画像の部位における代表的な色の画素の値と、当該部位を構成する複数の画素であって、位置的に対応するものの画素の値との差分を、当該部位を構成する画素の色レンジ長を用いて正規化したものであり、前記所定の係数は、当該部位を表す複数画素の色レンジ長であり、前記オフセットは、当該部位を構成する色の色レンジの下限値であるというものである。上記の相対値は、対象となる画素の画素ビット値が、オリジナル画像における代表色からどれだけかけ離れているかを示すので、かかる相対値が塗材塗布レイヤの色レンジにマッピングされ、塗材塗布レイヤの色レンジにおける下限値と加算されることで、塗材塗布レイヤにおける部位は、オリジナル画像における照明の照らされ方を損なわないリアルな質感を再現することができる。
【0217】
(8.色レンジの上限、下限の具体化)
ここで塗材塗布レイヤにおける色レンジの上限、下限は、より下位概念化の内容に展開することができる。その下位概念とは、第1実施形態におけるLmin,Lmaxによる限定であり、具体的にいうと、塗材塗布レンジにおける色レンジの上限値は、塗材が塗布されるべき原画像の部位を構成する複数の画素の代表的な値と、当該部位の色レンジの上限値との差分と、当該部位を構成する画素の色レンジのレンジ長との比率に、塗材塗布レイヤの色レンジのレンジ長を乗じて、塗材の見本色の画素の値を足し合わせることで算出され、
塗材塗布レンジの色レンジの下限値は、塗材塗布レンジの色レンジの上限値から、塗材塗布レンジの色レンジのレンジ長を差し引くことで算出されるというものである。塗材塗布レイヤにおける色レンジの上限は、オリジナル画像の代表色からオリジナル画像の上限までの差分と、オリジナル画像の色レンジのレンジ長との比率に、塗材塗布レイヤのレンジ長を乗じることで定められるから、オリジナル画像と、代表色との差分が塗材塗布レイヤの色レンジに好適に反映されることになる。更に、塗材塗布レイヤの色レンジの下限は、こうして定められた上限から、塗材塗布レイヤの色レンジ長を差し引くことで定められるので、暗くなっている部分の暗くなり方も、オリジナル画像の代表色と、塗材塗布レイヤの代表色との比率に応じたものになる。これにより、撮影されたユーザの顔に、メイクアップ塗材が塗布された状態をリアルに再現することができる。
【0218】
(9.画像処理の対象となる画素成分)
色レンジはより下位概念化の内容に展開することができる。その下位概念とは、色レンジがHCLの個別規定であることを一般化したものである。具体的にいうと、前記塗材が塗布されるべき原画像の部位の色レンジは、当該部位を構成する画素に含まれる複数種別の画素成分のうち、特定の種別のものの数値範囲であり、塗材が塗布されるべき原画像の部位は複数のチャネル画像を包含しており、塗材塗布レイヤを構成する画素の値は、特定種別の画素成分により構成されるチャネル画像の個々の画素を、塗材塗布レイヤの色レンジにマッピングすることで得られるというものである。画素を構成する複数種別の画素成分のうち、特定のものについて色レンジが算出されるので、画素を構成する複数の画素成分の中に変換することが望ましくないものがあった場合、かかる画素成分を処理から除外することで、オリジナル画像との同一性を維持することができる。
【0219】
(10.合成の態様)
合成手段による合成の仕方はより下位概念化の内容に展開することができる。その下位概念とは、合成パラメータはHCLの個別規定であることを一般化したものである。具体的にいうと、前記画像処理装置は成分種別毎の合成パラメータを有しており、前記合成手段による合成は、塗材塗布レイヤに含まれる複数チャネル画像のうち特定種別のものの画素成分と、前記複数のチャネル画像のうち特定種別のものの画素成分とを、特定種別に対応する合成パラメータを用いて重み付けて、互いに加算することでなされるというものである。オリジナル画像の画素、塗材塗布レイヤの画素のそれぞれに与えるべき重み係数を、画素成分毎に変化させるから、例えば、色相成分、彩度成分、輝度成分のうち、彩度成分、輝度成分が強調された態様の塗材塗布レイヤを得ることができる。
【0220】
(11.画素成分の具体化)
複数種別の画素成分はより下位概念化の内容に展開することができる。その下位概念とは、前記複数種別の画素成分は、色相、彩度、輝度であり、特定種別の画素成分は、色相、彩度、輝度のうち何れか1つ、又は、2以上のものの組合せであるというものである。色相成分、彩度成分、輝度成分のうち、彩度成分、輝度成分を色レンジ生成の対象とし、マッピング、合成の対象とすることで、色相成分の同一性を維持した自然な態様のメイクアップ画像を得ることができる。
【0221】
(12.構成要件の追加)
画像処理装置には、任意的な構成要件を追加することができる。具体的にいうと、前記画像処理装置は、塗材が塗布されるべき原画像の部位における個々の画素を構成する第1、第2、第3の画素成分を、色相成分、彩度成分、輝度成分に変換する第1変換手段、
塗材塗布レイヤが合成された部位を構成する画素の色相成分、彩度成分、輝度成分を、第1、第2、第3の画素成分に変換する第2変換手段を具備するというものである。RGBの画素成分からなるオリジナルの顔画像、YCrCbの画素成分からなるオリジナル画像をメイクアップの対象とすることができるから、様々なタイプのカメラからの画像入力を、メイクアップの対象として利用することができる。
【0222】
(13.重み付けを低くすべき箇所)
重み付けを低くすべき箇所をより具体的に規定することができる。その下位概念とは、、口金形状の重みを一般化したものである。具体的にいうと、塗材が塗布されるべき部位は唇であり、指定手段は、画像処理の対象となる部位の指定にあたって、指定された部位の輪郭形状を規定する輪郭形状線を生成し、前記生成手段は、塗材塗布レイヤを構成する個々の画素の色レンジを決定するにあたって、唇の輪郭形状を規定する輪郭形状線の中から、唇の口金部分の形状を規定する口金形状線を特定し、唇を構成する複数の画素のうち、特定された口金形状線の周辺に位置するものの画素の重みを低くするというものである。口角となる唇の両脇、及び、上下の唇の境界には重み係数が低く設定されることで陰影が与えられるから、唇の輪郭が際立ち、見栄えがよくなる。
【0223】
(14.画像処理方法としての障壁克服)
方法発明の局面で実施化を図る場合、当該局面における方法は、原画像に対して画像処理を行うことで、原画像に現された対象体の一部の部位に、メイクアップ塗材が塗布された状態を示すメイクアップ画像を生成するコンピュータシステムにおける画像処理方法であって、原画像に現された対象体からメイクアップ塗材を塗布すべき部位の指定と、メイクアップ塗材の見本色を代表色とした色レンジをもつ複数の画素から構成される塗材塗布レイヤの生成と、塗材塗布レイヤは、原画像へと合成される画像であり、
塗材塗布レイヤを構成する複数の画素の色レンジは、メイクアップ塗材が塗布されるべき原画像の部位を構成する複数画素の代表的な値と、メイクアップ塗材の見本色画素の値との比率に応じて、前記対象体の一部の部位を構成する複数画素の色レンジを拡大することで得られ、塗材塗布レイヤの画素の値は、原画像の画素であって、位置的に対応するものの画素の値を塗材塗布レイヤの色レンジにマッピングすることで得られるというものになる。この方法の態様は、上述したような2.から13.までの改良を施すことができる。かかる画像処理方法では、企業内のユーザ、又は、エンドユーザが使用する場所での使用が可能になるから、本願の技術的範囲に属する方法発明の用途を広げることができる。
【0224】
コンピュータシステムは、クライアントコンピュータ、サーバコンピュータにより形成されるコンピュータシステム、クラウドサーバにアプリケーションをロードする形態のクラウドネットワークコンピュータシステム、コンピュータ同士がピアツーピア接続を行うコンピュータシステム、コンピュータがグリッドとして機能し、分散処理を行うグリッドコンピュータシステムを広く含む。『端末装置』は、マウス、キーパッド等のポインティングデバイスで操作するラップトップパソコン、ノートパソコン、タスマートフォン、タブレット端末、レジ機端末を広く含む。これらの全ての下位概念について実施の形態を述べると説明が煩雑になり望ましくない。そこで、第1実施形態では、タブレット端末が端末装置であるとした。
【0225】
(15.プログラムによる障壁克服)
プログラムを実施する局面で実施化を図る場合、当該局面におけるプログラムは、原画像に対して画像処理を行うことで、原画像に現された対象体の一部の部位に、メイクアップ塗材が塗布された状態を示すメイクアップ画像を生成する処理をコンピュータに実行させプログラムであって、原画像に現された対象体からメイクアップ塗材を塗布すべき部位の指定と、メイクアップ塗材の見本色を代表色とした色レンジをもつ複数の画素から構成される塗材塗布レイヤの生成とをコンピュータに行わせるプログラムコードを含み、
塗材塗布レイヤは、原画像へと合成される画像であり、塗材塗布レイヤを構成する複数の画素の色レンジは、メイクアップ塗材が塗布されるべき原画像の部位を構成する複数画素の代表的な値と、メイクアップ塗材の見本色画素の値との比率に応じて、前記対象体の一部の部位を構成する複数画素の色レンジを拡大することで得られ、
塗材塗布レイヤの画素の値は、原画像の画素であって、位置的に対応するものの画素の値を塗材塗布レイヤの色レンジにマッピングすることで得られるというものになる。このプログラムの態様には、上述したような2.から13.までの改良を施すことができる。ネットワークプロバイダサーバや各種記録媒体を通じたプログラムの配布が可能になるから、一般のコンピュータソフトウェアやオンラインサービスの業界まで、本発明の用途を広げることができる。