次に、本発明の実施形態について図面を参照して説明する。
なお、各図面は、本発明の実施形態を説明するためのものである。ただし、本発明は、各図面の記載に限られるわけではない。また、各図面の同様の構成には、同じ番号を付し、その繰り返しの説明を、省略する場合がある。また、以下の説明に用いる図面において、本発明の説明に関係しない部分の構成については、記載を省略し、図示しない場合もある。
本発明のおける実施形態の処理対象の画像は、特に制限されない。例えば、各実施形態は、自動車などの乗り物若しくは建物の外観、人の外見の画像、又は、風景の画像を処理してもよい。ここで、外観及び外見は、対象物を外部から見た様子である。ただし、以下の説明は、一例として、人の画像(例えば、ペルソナに対応する画像)を処理対象として用いる。さらに、各実施形態は、人の画像に含まれる要素(人の部位)を制限されない。例えば、各実施形態は、全身画像を対象としてもよく、上半身画像を対象としてもよい。以下の説明では、一例として、各実施形態は、首から上の人の顔の部分の画像を用いるとする。なお、人の顔は、複数の要素(例えば、眉、目、及び、口)を含む。各実施形態は、少なくとも、対象物の画像(以下、「対象画像」と呼ぶ)に含まれる要素の画像(以下、「要素画像」と呼ぶ)を処理対象とする。例えば、対象物が人の顔の場合、各実施形態は、顔の画像(対象画像)に含まれる要素(例えば、眉、目、及び口)の画像(要素画像)を処理する。
また、各実施形態は、処理対象の文字列の処理における処理単位を限定されない。例えば、各実施形態は、単語、句、節、文、複数の文、又は、これらの組合せを処理単位としてもよい。ただし、以下の説明では、一例として、各実施形態は、処理単位として、「単語」を用いる。
なお、以下の説明において、符号を付した項目の中で所定の値を持つ項目を指定する場合、「項目+符号+“値”」の形式を用いる。例えば、符号「yyy」を付した項目「AA」において値「xx」を持つ項目を、「AAyyy“xx”」と表現する。
<第1の実施形態>
次に、発明における第1の実施形態について、図面を参照して詳細に説明する。
[構成の説明]
まず、第1の実施形態に係る情報処理装置10の構成について、図面を参照して説明する。
図1は、第1の実施形態に係る情報処理装置10の構成の一例を表すブロック図である。
図1に示されているように、情報処理装置10は、文字列を取得し、その文字列の対応した画像(合成画像)を作成して、出力する。
そのため、情報処理装置10は、要素画像処理部20と、対象画像処理部30と、画像合成部40と、文字列取得部50と、画像出力部60とを含む。
文字列取得部50は、画像の作成対象(対象物)に関する文字列を取得する。具体的には、文字列取得部50は、要素画像処理部20及び対象画像処理部30が画像を処理するために用いる文字列を取得する。そして、文字列取得部50は、要素画像処理部20及び対象画像処理部30に文字列を送信する。
なお、第1の実施形態において、要素画像処理部20が用いる文字列は、対象画像処理部30が用いる文字列と同じでもよく、異なっていてもよく、一部が同じでもよい。以下、説明の便宜のため、要素画像処理部20が用いる文字列を「第1の文字列」と呼び、対象画像処理部30が用いる文字列を「第2の文字列」と呼ぶ。ただし、上記のとおり、第1の文字列は、第2の文字列と、同じでもよく、異なっていてもよく、一部が同じでもよい。
さらに、要素画像処理部20が処理の対象として処理する語句は、対象画像処理部30が処理の対象とする語句と同じでもよく、異なっていてもよく、一部が同じでもよい。以下、説明の便宜のため、要素画像処理部20が処理する語句を「第1の語句」と呼び、対象画像処理部30が処理する語句を「第2の語句」と呼ぶ。ただし、上記のとおり、第1の語句は、第2の語句と、同じでもよく、異なっていてもよく、一部が同じでもよい。
また、要素画像処理部20が処理対象とする対象物の属性は、対象画像処理部30が対象とする属性と同じでもよく、異なっていてもよく、一部が同じでもよい。以下、説明の便宜のため、要素画像処理部20が用いる属性を「第1の属性」と呼び、対象画像処理部30が処理する属性を「第2の属性」と呼ぶ。ただし、上記のとおり、第1の属性は、第2の属性と、同じでもよく、異なっていてもよく、一部が同じでもよい。
なお、第1の文字列と第2の文字列が異なる場合、文字列取得部50は、同時に第1の文字列と第2の文字列とを取得してもよく、別々に第1の文字列と第2の文字列とを取得してもよい。
あるいは、文字列は、第1の文字列と、第2の文字列とを、区別されていない一連の文字列として含んでもよい。この場合、文字列取得部50が、取得した文字列を、第1の文字列と第2の文字列とに分割し、要素画像処理部20及び対象画像処理部30に送信してもよい。あるいは、文字列取得部50は、取得した文字列を、そのまま、要素画像処理部20及び対象画像処理部30に送信してもよい。この場合、要素画像処理部20及び対象画像処理部30が、受信した文字列から処理に必要な文字列を抽出して、動作すればよい。
また、文字列取得部50は、取得する文字列を提供する提供元を制限されない。例えば、文字列取得部50は、利用者が操作する図示しない装置から文字列を受信してもよい。あるいは、文字列取得部50は、図示しない入力部を含み、その入力部を用いて文字列を取得してもよい。あるいは、文字列取得部50は、図示しない記憶部に記憶されている文字列を取得してもよい。
さらに、文字列取得部50は、提供元の数を制限されない。文字列取得部50は、複数の提供元から文字列を取得してもよい。例えば、文字列取得部50は、第1の文字列と第2の文字列とを別の提供元から取得してもよい。さらに、第1の文字列及び/又は第2の文字列が、複数に分かれている場合、文字列取得部50は、第1の文字列及び/又は第2の文字列を、複数の提供元から取得してもよい。
以下の説明は、一例として、文字列は、第1の文字列と、第2の文字列とに分かれている。ただし、これは説明の便宜のためである。文字列は、上記のとおり、第1の文字列と第2の文字列とに分かれていなくてもよい。
対象画像処理部30は、第2の文字列を基に対象画像を確定する。具体的には、対象画像処理部30は、第2の文字列を基に対象画像を作成する。あるいは、対象画像処理部30は、第2の文字列を基に、画像の集合から対象画像を選択する。あるいは、対象画像処理部30は、第2の文字列を基に、画像の集合から画像を選択し、選択した画像を変形して対象画像を確定してもよい。
対象画像は、対象物を示す画像である。対象画像は、後ほど説明するように、画像合成部40における画像の合成において、合成の元(基本)となる画像である。
要素画像処理部20は、第1の文字列を用いて、要素画像を確定する。具体的には、要素画像処理部20は、第1の文字列を基に要素画像を作成する。あるいは、要素画像処理部20は、第1の文字列を基に、画像の集合から要素画像を選択する。あるいは、要素画像処理部20は、第1の文字列を基に、画像の集合から画像を選択し、選択した画像を変形して要素画像を確定してもよい。
要素画像とは、より詳細に対象物の属性を示す画像である。要素画像は、後ほど説明するように、画像合成部40における画像の合成において、対象画像に追加される画像、及び/又は、対象画像に含まれる画像と置き換えられる画像である。
例えば、対象画像が顔の画像の場合、要素画像は、目の画像、口の画像、眉の画像、髪型、及び/又は、イヤリングなどの装飾品の画像である。あるいは、対象画像が全身の画像の場合、要素画像は、上記に加え、例えば、服装の画像、靴の画像、及び/又は、鞄など携帯物の画像である。あるいは、対象画像が山の画像の場合、要素画像は、例えば、紅葉の画像、新緑の木々の画像、又は、雪景色の画像である。
画像合成部40は、対象画像と要素画像とを合成して、出力用の画像(合成画像)を合成する。具体的には、画像合成部40は、要素画像を、対象画像に追加する。あるいは、画像合成部40は、対象画像に含まれる要素に対応する画像を要素画像で置き換える。
なお、画像合成部40は、画像の合成後、合成画像に対して所定の画像処理を実行してもよい。例えば、画像合成部40は、合成画像をサイズの変更、画像の色合いの調整、又は、平滑化などの画質を操作する動作を実行してもよい。さらに、画像合成部40は、必要に応じて、対象画像を構成する画像の一部を削除してもよい。例えば、要素画像として眼鏡の画像を追加する場合、画像合成部40は、眼鏡の画像を見やすくするため、対象画像における眼鏡と重なる眉の画像を削除してもよい。
画像出力部60は、画像合成部40が合成した合成画像を出力する。なお、画像出力部60の出力先は、特に制限されない。例えば、情報処理装置10が図示しない表示部を含む場合、画像出力部60は、表示部に合成画像を表示してもよい。あるいは、画像出力部60は、図示しない外部の装置に合成画像を出力してもよい。あるいは、情報処理装置10が、他の動作を実行するモジュールを含む場合、画像出力部60は、そのモジュールに合成画像を送信してもよい。
次に、対象画像処理部30の構成について、図面を参照して説明する。
図2は、第1の実施形態に係る対象画像処理部30の構成の一例を示すブロック図である。
図2に示されているように、対象画像処理部30は、組合せ決定部310と、対象画像確定部320と、組合せ記憶部330と、対象画像記憶部340とを含む。
組合せ記憶部330は、第2の文字列に語句(第2の語句)として含まれる属性(第2の属性)の組合せに関する情報(以下、「組情報」と呼ぶ)を記憶する。
図3は、第1の実施形態に係る組合せ記憶部330が記憶する組情報511の一例を示す図である。
図3に示されている各行が、ひとつの組情報511である。図3に示されているように、組情報511は、組521と、一つ又は複数の属性522(第2の属性)とを含む。
組521は、組521を一意に識別するための識別子(ID:Identifier)である。識別子は、具体的には、値又は名称である。以下の説明では、識別子の一例として、図3に示されているように数値を用いる。
属性522は、各組521に含まる属性の値又は範囲を示す。なお、組情報511に含まれる組521は、すべての属性522を含まず、一部の属性522を含んでもよい。例えば、組521“021”は、属性522“性別”として「男性」を、属性522“職業”として「医師」を含む。
このように、組情報511は、組521と属性522(第2の属性)とを対応付ける情報である。
なお、図3は、組情報511の一例である。組情報511が含む属性522の数は、図3に示される数に限られない。属性522の数は、1ないし3、又は、4を超えてもよい。
対象画像記憶部340は、組521と関連付けて対象画像523を記憶する。
図4は、第1の実施形態に係る対象画像記憶部340が記憶する対象画像情報512の一例を示す図である。図4に示されている各列が、一つの対象画像情報512である。図4に示されているように対象画像情報512は、組521と、対象画像523とを含む。
組521は、既に説明した図3の組521、つまり識別子である。
対象画像523は、組521に対応する画像である。
このように、対象画像情報512は、組521と対象画像523とを対応付ける情報である。
組合せ決定部310は、第2の文字列を取得する。そして、組合せ決定部310は、組情報511を基に、第2の文字列に対応する組521を決定する。例えば、組合せ決定部310は、第2の文字列に含まれる属性522を最も多く含む組521を、第2の文字列に相当する組521として決定する。あるいは、組合せ決定部310は、第2の文字列に対応する組521として、所定の手法(例えば、所定の関連度の算出式)を用いて、第2の文字列に含まれる語句に対応する組521を選択してもよい。
なお、組合せ決定部310は、組521の決定において、組情報511に含まれる一部の属性522を基に、組521を決定してもよい。例えば、組合せ決定部310が、第2の文字列として「男性の警察官」を取得した場合、組合せ決定部310は、組521として、図3の2行目の組521“002”を決定する。
対象画像確定部320は、対象画像情報512を基に、決定された組521に対応する対象画像523を確定する。なお、対象画像確定部320は、第2の文字列を用いて、対象画像523を修正してもよい。例えば、対象画像確定部320は、第2の文字列に含まれ年齢を基に、対象画像523を修正してもよい。
次に、要素画像処理部20の構成について、図面を参照して説明する。
図5は、第1の実施形態に係る要素画像処理部20の構成の一例を示すブロック図である。
要素画像処理部20は、図5に示されているように、属性決定部210と、要素決定部220と、要素画像確定部230と、語句記憶部240と、属性記憶部250と、要素画像記憶部260とを含む。
語句記憶部240は、所定の語句(第1の語句)に対応する属性(第1の属性)の値(以下、「属性パラメーター」と呼ぶ)を記憶する。属性パラメーターとは、語句が属性に与える影響の程度を示す値である。属性に与える影響が大きい語句は、その属性パラメーターの値が大きい。ただし、属性パラメーターは、上記と反対に、影響が小さい場合に、その値が大きくなってもよい。
図6は、第1の実施形態に係る語句記憶部240が記憶する語句対応情報531の一例を示す図である。
図6に示されているように語句対応情報531は、語句541(第1の語句)に対応する属性542(第1の属性)の値である属性パラメーター543を含む。
図6に示されている各欄が、語句541に対応する各属性542の属性パラメーター543を示している。例えば、1行目の語句541“家庭”は、属性542“明るい”の属性パラメーター543“0”と、属性542“暖かい”の属性パラメーター543“1”とを持っている。さらに、語句541“家庭”は、属性542“積極的”の属性パラメーター543“0”と、属性542“強い”の属性パラメーター543“−1”とを持っている。
このように、語句対応情報531は、第1の文字列に含まれる語句541(第1の語句)が属性542(第1の属性)に与える影響を示す属性パラメーター543を、語句541に関連付ける情報である。
属性記憶部250は、属性542に対応する要素の係数(以下、「要素系数」と呼ぶ)を記憶する。要素係数とは、属性542が要素に与える影響の程度を示す値である。要素に与える影響が大きい属性542は、その要素係数の値が大きい。ただし、要素係数は、上記と反対に、影響が小さい場合に、その値が大きくなってもよい。
図7は、第1の実施形態に係る属性記憶部250が記憶する属性対応情報532の一例を示す図である。
図7に示されているように属性対応情報532は、属性542(第1の属性)に対応する要素544の係数である要素係数545含む。
図7に示されている各欄が、属性542に対応する要素544の要素係数545を示している。例えば、1行目の属性542“明るい”は、要素544“目の傾き”の要素係数545“0”と、要素544“目の大きさ”の要素係数545“1”と、要素544“口の形”の要素係数545“2”とを持っている。さらに、1行目の属性542“明るい”は、要素544“眉の太さ”の要素係数545“0”と、要素544“眉の傾き”の要素係数545“0”とを持っている。
このように、属性対応情報532は、属性542(第1の属性)が、要素544に与える影響の程度を示す要素係数545を、属性542に関連付ける情報である。
要素画像記憶部260は、要素544の要素パラメーターに対応する要素画像を記憶する。要素パラメーターについては、後ほど詳細に説明する。
図8は、第1の実施形態に係る要素画像記憶部260が記憶する要素画像対応情報533の一例を示す図である。
図8に示されているように、要素画像対応情報533は、各要素544における要素パラメーター546に対応した要素画像547を含む。
図8に示されている各欄が、各要素544における要素パラメーター546の値に対応する要素画像547を示す。例えば、1行目の2つ目の画像は、要素544“眉の傾き”の要素パラメーター546“−1”における要素画像547である。
なお、図8に示されている要素画像対応情報533は、すべての要素544に対応した情報を含んでいる。ただし、これは、説明の便宜のためである。要素画像記憶部260は、要素画像対応情報533として、各要素544に対応した要素画像547を、分割された複数の情報として含んでもよい。例えば、要素画像記憶部260は、複数の情報ファイルとして、各要素544(例えば、眉の画像、目の画像、及び、口)の要素画像547を記憶してもよい。
属性決定部210は、語句記憶部240に記憶されている語句対応情報531を用いて、第1の文字列に含まれる語句541(第1の語句)の全体が各属性542(第1の属性)に与える影響の程度を示す文字列パラメーター548を決定する。より詳細には、属性決定部210は、語句対応情報531を用いて、第1の文字列に含まれる各語句541が、属性542に与える影響の程度である属性パラメーター543を決定する。そして、属性決定部210は、決定した属性パラメーター543を基に文字列パラメーター548を修正する。例えば、第1の文字列が、語句541“家庭”を含む場合、属性決定部210は、属性542“暖かい”の属性パラメーター543“1”を基に、文字列パラメーター548の属性542“暖かい”の値を一つ増やす。さらに、属性決定部210は、属性542“強い”の属性パラメーター543“−1”を基に、文字列パラメーター548の属性542“強い”の値を一つ減らす。
このように、文字列パラメーター548は、第1の文字列に含まれる語句541(第1の語句)に関連する属性542に関する属性パラメーター543の合計に相当する。つまり、文字列パラメーター548は、第1の文字列に含まれる語句541(第1の語句)が対象物に関連する属性542に与える影響の程度を示す。
なお、文字列パラメーター548は、第1の文字列に含まれる属性542に対応するパラメーターを含めばよい。ただし、文字列パラメーター548は、その他の属性542に対応するパラメーターを含んでもよい。
このように、属性決定部210は、語句対応情報531を用いて、第1の文字列に含まれる語句541(第1の語句)が、属性542(第1の属性)に与える影響の程度を示す文字列パラメーター548を決定する。
要素決定部220は、属性記憶部250に記憶されている属性対応情報532を用いて、文字列パラメーター548に含まれる属性542に対応する要素544の要素係数545を抽出する。
そして、要素決定部220は、抽出した要素係数545と、文字列パラメーター548とを基に、要素パラメーター546を決定する。具体的には、要素決定部220は、属性542毎に、文字列パラメーター548と要素係数545とを掛け合わせて、要素パラメーター546を算出する。
ここで、文字列パラメーター548は、第1の文字列が含む語句541が属性542に与える影響の程度を示す。また、要素係数545は、各属性542が要素544に与える影響の程度を示す値である。そのため、要素パラメーター546は、第1の文字列が要素544に与える影響の程度を示す値である。
要素画像確定部230は、要素画像対応情報533を用いて、要素544毎に、算出された要素パラメーター546に対応する要素画像547を確定する。
なお、要素画像確定部230は、第1の文字列、第2の文字列、及び/又は、他の情報などを基に、要素画像547を修正してもよい。例えば、第2の文字列が「20代女性」を含み、要素画像確定部230が目の画像を確定した場合、要素画像確定部230は、目の画像に化粧を追加してもよい。
[動作の説明]
次に図面を参照して第1の実施形態に係る情報処理装置10の動作について説明する。
図9は、第1の実施形態に係る情報処理装置10の動作の一例を示すフローチャートである。
文字列取得部50は、所定の提供元から、文字列(第1の文字列と第2の文字列)を取得する(ステップS110)。既に説明しているが、文字列取得部50は、第1の文字列と第2の文字列とを同時に取得してもよく、別々に取得してもよい。文字列取得部50は、第1の文字列を取得した場合、第1の文字列を要素画像処理部20に送信する。文字列取得部50は、第2の文字列を取得した場合、第2の文字列を対象画像処理部30に送信する。なお、既に説明しているように、第1の文字列と第2の文字列とは、同じ文字列でもよい。その場合、文字列取得部50は、文字列を、要素画像処理部20と対象画像処理部30とに送信する。
対象画像処理部30は、第2の文字列を基に、対象画像523を確定する(ステップS120)。
要素画像処理部20は、第1の文字列を基に、要素画像547を確定する(ステップS130)。
なお、対象画像処理部30と、要素画像処理部20とは、どちらが先に動作してもよい。あるいは、対象画像処理部30と、要素画像処理部20とは、少なくとも一部の動作を平行して実行してもよい。
なお、要素画像処理部20は、一つ又は複数の要素画像547を確定する。そこで、例えば、要素画像処理部20が、複数の要素画像547を確定する場合、要素画像処理部20は、対象画像処理部30が対象画像523を確定する前に一部の要素画像547を確定し、対象画像523の確定後に残りの要素画像547を確定してもよい。
画像合成部40は、確定された対象画像523と要素画像547とを合成して、合成画像を作成する(ステップS140)。
画像出力部60は、所定の出力先に合成画像を出力する(ステップ150)。
次に、図面を参照して、対象画像処理部30の動作について説明する。
図10は、第1の実施形態に係る対象画像処理部30の動作の一例を示すフローチャートである。
組合せ決定部310は、第2の文字列を取得する。そして、組合せ決定部310は、組情報511を用いて、第2の文字列に対応する組521を決定する(ステップS210)。例えば、組合せ決定部310が、第2の文字列として「男性の消防士」を取得した場合、組合せ決定部310は、組521“001”を決定する。
次に、対象画像確定部320は、組521を基に、対象画像523を確定する(ステップS220)。
対象画像確定部320は、対象画像523を画像合成部40に出力する(ステップS230)。
次に、要素画像処理部20の動作について、図面を参照して説明する。
図11は、第1の実施形態に係る属性決定部210の動作の一例を示すフローチャートである。
まず、属性決定部210は、文字列パラメーター548を初期化する(ステップS310)。例えば、属性決定部210は、第1の文字列を取得した場合に、第1の文字列に含まれる属性542に対応する文字列パラメーター548を初期化してもよい。ただし、属性決定部210が、複数の第1の文字列を取得する場合、属性決定部210は、所定の指示又はタイミングを基に、文字列パラメーター548を初期化してもよい。なお、文字列パラメーター548の初期値は、属性542毎に異なっていてもよい。また、属性決定部210は、初期値の設定において、第1の文字列及び/又は第2の文字列を基に、初期値を変更してもよい。
属性決定部210は、第1の文字列から処理対象の語句541(第1の語句)として、一つの語句541を取得する(ステップS320)。
属性決定部210は、語句対応情報531を用いて、選択した語句541に対応する属性542(第1の属性)の属性パラメーター543を決定する(ステップS330)。
そして、属性決定部210は、属性パラメーター543を基に、文字列パラメーター548の値を修正する(ステップS340)。
属性決定部210は、第1の文字列に処理していない語句541が残っているか否かを判定する(ステップS350)。
語句541が残っていない場合(ステップS350でNo)、属性決定部210は、動作を終了する。
語句541が残っている場合(ステップS350でYes)、属性決定部210は、ステップS320に戻り、残りの語句541に対する処理を実行する。
次に図面を参照して、要素決定部220の動作について説明する。
図12は、第1の実施形態に係る要素決定部220の動作の一例を示すフローチャートである。
まず、要素決定部220は、各要素544に対応する要素パラメーター546の値を初期化する(ステップS410)。
次に、要素決定部220は、処理対象として、文字列パラメーター548に含まれる属性542から一つの属性542を選択する(ステップS420)。
要素決定部220は、要素544を一つ選択する(ステップS430)。
そして、要素決定部220は、属性対応情報532を基に、属性542及び要素544に対応する要素係数545を抽出する(ステップS440)。
要素決定部220は、文字列パラメーター548の属性542の値と要素係数545との積を算出する(ステップS450)。
要素決定部220は、算出した積を要素パラメーター546に加算する(ステップS460)。なお、算出した積の値が負の場合、要素パラメーター546の値は、減ることになる。
要素決定部220は、処理対象の属性542において要素パラメーター546を算出していない要素544があるか否かを判定する(ステップS470)。
要素していない要素544がある場合(ステップS470でYes)、要素決定部220は、ステップS430に戻る。
算出していない要素544がない場合(ステップS470でNo)、要素決定部220は、処理していない属性542があるか否かを判定する(ステップS480)。
処理していない属性542がある場合(ステップS480でYes)、要素決定部220は、ステップS420に戻る。
処理していない属性542がない場合(ステップS480でNo)、要素決定部220は、動作を終了する。
次に、要素画像確定部230の動作について、図面を参照して説明する。
図13は、第1の実施形態に係る要素画像確定部230の動作の一例を示すフローチャートである。
要素画像確定部230は、要素544を一つ選択する(ステップS510)。
要素画像確定部230は、要素画像対応情報533を用いて、選択した要素544の要素パラメーター546の値に対応する要素画像547を確定する(ステップS520)。
要素画像確定部230は、要素画像547を確定していない要素544があるか否かを判定する(ステップS530)。
要素544がある場合(ステップS530でYes)、要素画像確定部230は、ステップS510に戻る。
要素544がない場合(ステップS530でNo)、要素画像確定部230は、動作を終了する。
なお、要素画像確定部230は、要素パラメーター546の値が「0」である要素544に関しての処理を省略してもよい。例えば、要素画像確定部230は、ステップS510の動作において、要素パラメーター546の値が「0」の要素544を選択しなくてもよい。
次に、画像合成部40の動作について、図面を参照して説明する。
図14は、第1の実施形態に係る画像合成部40の動作の一例を示すフローチャートである。
画像合成部40は、対象画像処理部30が確定した対象画像523を取得する(ステップS610)。
画像合成部40は、要素画像処理部20が確定した要素画像547を取得する(ステップS620)。
なお、画像合成部40は、既に説明したとおり、ステップS610の動作と、ステップS620の動作との順番を問わない。
画像合成部40は、要素画像547の中から一つの要素画像547を選択する(ステップS630)。
画像合成部40は、対象画像523に要素画像547を追加する(ステップS640)。なお、画像合成部40における追加動作は、次のような動作を含む。
要素画像547が、対象画像523の対応する要素と置き換え可能な場合、画像合成部40は、対象画像523における画像を要素画像547に置き換える。要素画像547が、対象画像523に上書き可能な場合、画像合成部40は、対象画像523に要素画像547を上書きする。要素画像547に対応する要素が対象画像523にない場合、画像合成部40は、対象画像523に要素画像547を追加する。
なお、画像合成部40は、要素画像547を対象画像523に追加する場合、追加後の画像が適切な画像となるように、所定の画像処理を実行してもよい。
画像合成部40は、処理していない要素画像547があるか否かを判定する(ステップS650)。
要素画像547がある場合(ステップS650でYes)、画像合成部40は、ステップS630に戻る。
要素画像547がない場合(ステップS650でNo)、画像合成部40は、動作を終了する。
[詳細例]
次に、図面を参照して、情報処理装置10の詳細動作について説明する。
図15は、以下の説明に用いる対象画像523の一例を示す図である。すなわち、対象画像処理部30は、図15に示す対象画像523を確定したとする。例えば、対象画像処理部30は、第2の文字列として「20代男性」を取得し、第2の文字列を基に図15に示す対象画像523を確定したとする。
次に、要素画像処理部20が、第1の文字列として「仕事熱心」を取得したとする。
属性決定部210は、語句対応情報531を用いて、語句541“仕事熱心”に対応した文字列パラメーター548を決定する。具体的には、属性決定部210は、属性542“積極的”の属性パラメーター543“1”を基に、文字列パラメーター548の属性542“積極的”の値を「1」にする。さらに、属性決定部210は、属性542“強い”の属性パラメーター543“1”を基に、文字列パラメーター548の属性542“強い”の値を「1」にする。なお、その他の属性542は、属性パラメーター543の値が「0」のため、以下の説明において省略する。この時の文字列パラメーター548を集合の形式を用いて表すと、例えば、次のように表すことができる。
文字列パラメーター548={(積極的,1),(強い,1)}
次に、要素決定部220は、属性対応情報532を用いて、属性542“積極的”に対応して、要素544“目の傾き”が要素係数545“1”と、要素544“目の大きさ”の要素係数545“0”とを抽出する。さらに、要素決定部220は、要素544“口の形”の要素係数545“0”と、要素544“眉の太さ”の要素係数545“0”と、要素544“眉の傾き”の要素係数545“1”とを抽出する。属性542“積極的”に対応する要素係数545を集合の形式を用いて表すと、例えば、次のように表すことができる。
属性542“積極的”の要素係数545={(目の傾き,1),(目の大きさ,0),(口の形,0),(眉の太さ,0),(眉の傾き,1)}
同様に、要素決定部220は、属性542“強い”に対応して、要素544“目の傾き”が要素係数545“0”と、要素544“目の大きさ”の要素係数545“1”とを抽出する。さらに、要素決定部220は、要素544“口の形”の要素係数545“−1”と、要素544“眉の太さ”の要素係数545“0”と、要素544“眉の傾き”の要素係数545“1”とを抽出する。属性542“強い”に対応する要素係数545を集合の形式を用いて表すと、例えば、次のように表すことができる。
属性542“強い”の要素係数545={(目の傾き,0),(目の大きさ,1),(口の形,−1),(眉の太さ,0),(眉の傾き,1)}
そして、要素決定部220は、文字列パラメーター548と要素係数545とを用いて、要素パラメーター546を算出する。例えば、要素決定部220は、要素544“目の傾き”の要素パラメーター546として、次のような計算を実行する。
要素544“目の傾き”の要素パラメーター546の値
=1(=属性542“積極的”の文字列パラメーター548)×1(=属性542“積極的”における要素544“目の傾き”の要素係数545)
+1(=属性542“強い”の文字列パラメーター548)×0(=属性542“強い”における要素544“目の傾き”の要素係数545)
=1
同様に、要素決定部220は、各要素544の要素パラメーター546を算出する。算出結果をまとめると、次のとおりである。
要素544“目の傾き”の要素パラメーター546の値=1=1×1+1×0
要素544“目の大きさ”の要素パラメーター546の値=1=1×0+1×1
要素544“口の形”の要素パラメーター546の値=−1=1×0+1×−1
要素544“眉の太さ”の要素パラメーター546の値=0=1×0+1×0
要素544“眉の傾き”の要素パラメーター546の値=2=1×1+1×1
要素画像確定部230は、要素画像対応情報533を基に、要素パラメーター546に対応する要素画像547を確定する。例えば、要素画像確定部230は、図8に示されている要素画像対応情報533において、要素544“眉の傾き”の要素パラメーター546“2”に対応する要素画像547を確定する。
そして、画像合成部40は、対象画像処理部30が確定した対象画像523において、要素画像処理部20が確定した要素画像547を追加又は置き換えを実行する。
図16は、画像合成部40が作成した合成画像の一例を示す図である。図16に示されている合成画像は、図15の画像に比べ、目の傾き、目の大きさ、口の形、及び、眉の傾きが変化している。
[効果の説明]
次に、第1の実施形態の効果について説明する。
第1の実施形態に係る情報処理装置10は、文字列から複数の要素を含む画像を作成するとの効果を奏することができる。
その理由は次のとおりである。
要素画像処理部20の属性決定部210は、第1の文字列に含まれる語句541が属性542に与える影響の程度を示す文字列パラメーター548を決定する。
次に、要素決定部220は、属性542が画像を構成する要素544に与える影響を示す要素係数545を決定する。そして、要素決定部220が、文字列パラメーター548と要素係数545とを基に、第1の文字列が要素544に与える影響の程度を示す要素パラメーター546を決定する。
そして、要素画像確定部230は、要素パラメーター546を用いて要素画像547を確定する。
このように、要素画像処理部20が、第1の文字列に対応する各要素544に対応した要素画像547を確定するためである。
さらに、情報処理装置10は、第2の文字列に対応した対象画像523に含まれる要素画像を、第1の文字列を基に変更した画像(合成画像)を提供するとの効果を奏することができる。
その理由は、次のとおりである。
対象画像処理部30は、第2の文字列に対応した対象画像523を確定する。そして、画像合成部40が、対象画像523における要素の画像を要素画像547に置き換えた合成画像、及び/又は、対象画像523に要素画像547を追加した合成画像を作成するためである。
[変形例1]
以上の説明した情報処理装置10は、次のように構成される。
例えば、情報処理装置10の各構成は、ハードウェア回路で構成されてもよい。
また、情報処理装置10において、各構成は、ネットワークを介して接続した複数の装置を用いて、構成されてもよい。
図17は、第1の実施形態の変形例1に係る情報処理装置11の構成の一例を示すブロック図である。
情報処理装置11は、属性決定部210と、要素決定部220と、要素画像確定部230とを含む。情報処理装置11の各構成は、図示しないネットワークなどを介して、文字列取得部50と、画像合成部40と、語句記憶部240と、属性記憶部250と、要素画像記憶部260とに相当する構成又は装置と接続されている。そして、情報処理装置11は、既に説明した要素画像処理部20と同様に、第1の文字列を基に、各要素544に対応した要素画像547を確定する。
このように構成された情報処理装置11は、情報処理装置10と同様に、第1の文字列を基に複数の要素を含む画像を作成するとの効果を奏することができる。
その理由は、上記のとおり、情報処理装置11の各構成が、情報処理装置10の要素画像処理部20の構成と同様に動作するためである。
なお、情報処理装置11は、本発明の実施形態における最小構成である。
[変形例2]
また、情報処理装置10及び情報処理装置11において、複数の構成は、1つのハードウェアで構成されてもよい。
また、情報処理装置10及び情報処理装置11は、CPU(Central Processing Unit)と、ROM(Read Only Memory)と、RAM(Random Access Memory)とを含むコンピュータ装置として実現されてもよい。情報処理装置10及び情報処理装置11は、上記構成に加え、さらに、入出力接続回路(IOC:Input / Output Circuit)と、ネットワークインターフェース回路(NIC:Network Interface Circuit)とを含むコンピュータ装置として実現されてもよい。
図18は、第1の実施形態の変形例2に係る情報処理装置600の構成の一例を示すブロック図である。
情報処理装置600は、CPU610と、ROM620と、RAM630と、内部記憶装置640と、IOC650と、NIC680とを含み、コンピュータ装置を構成している。
CPU610は、ROM620からプログラムを読み込む。そして、CPU610は、読み込んだプログラムに基づいて、RAM630と、内部記憶装置640と、IOC650と、NIC680とを制御する。そして、CPU610を含むコンピュータは、これらの構成を制御して、図1に示されている、文字列取得部50と、対象画像処理部30と、要素画像処理部20と、画像合成部40と、画像出力部60としての各機能を実現する。あるいは、CPU610を含むコンピュータは、これらの構成を制御して、図17に示されている、属性決定部210と、要素決定部220と、要素画像確定部230としての各機能を実現する。
CPU610は、各機能を実現する際に、RAM630又は内部記憶装置640を、プログラムの一時記憶媒体として使用してもよい。
また、CPU610は、コンピュータで読み取り可能にプログラムを記憶した記憶媒体700が含むプログラムを、図示しない記憶媒体読み取り装置を用いて読み込んでもよい。あるいは、CPU610は、NIC680を介して、図示しない外部の装置からプログラムを受け取り、RAM630に保存して、保存したプログラムを基に動作してもよい。
ROM620は、CPU610が実行するプログラム及び固定的なデータを記憶する。ROM620は、例えば、P−ROM(Programmable-ROM)又はフラッシュROMである。
RAM630は、CPU610が実行するプログラム及びデータを一時的に記憶する。RAM630は、例えば、D−RAM(Dynamic-RAM)である。
内部記憶装置640は、情報処理装置600が長期的に保存するデータ及びプログラムを記憶する。内部記憶装置640は、組合せ記憶部330、対象画像記憶部340、語句記憶部240、属性記憶部250、及び/又は、要素画像記憶部260として動作してもよい。また、内部記憶装置640は、CPU610の一時記憶装置として動作してもよい。内部記憶装置640は、例えば、ハードディスク装置、光磁気ディスク装置、SSD(Solid State Drive)又はディスクアレイ装置である。
ここで、ROM620と内部記憶装置640は、不揮発性(non-transitory)の記憶媒体である。一方、RAM630は、揮発性(transitory)の記憶媒体である。そして、CPU610は、ROM620、内部記憶装置640、又は、RAM630に記憶されているプログラムを基に動作可能である。つまり、CPU610は、不揮発性記憶媒体又は揮発性記憶媒体を用いて動作可能である。
IOC650は、CPU610と、入力機器660及び表示機器670とのデータを仲介する。IOC650は、例えば、IOインターフェースカード又はUSB(Universal Serial Bus)カードである。さらに、IOC650は、USBのような有線に限らず、無線を用いてもよい。
入力機器660は、情報処理装置600の操作者からの入力指示を受け取る機器である。入力機器660は、文字列取得部50として動作してもよい。入力機器660は、例えば、キーボード、マウス又はタッチパネルである。
表示機器670は、情報処理装置600の操作者に情報を表示する機器である。表示機器670は、画像出力部60として動作してもよい。表示機器670は、例えば、液晶ディスプレイである。
NIC680は、ネットワークを介した図示しない外部の装置とのデータのやり取りを中継する。NIC680は、文字列取得部50及び/又は画像出力部60として動作してもよい。NIC680は、例えば、LAN(Local Area Network)カードである。さらに、NIC680は、有線に限らず、無線を用いてもよい。
このように構成された情報処理装置600は、情報処理装置10及び情報処理装置11と同様の効果を得ることができる。
その理由は、情報処理装置600のCPU610が、プログラムに基づいて情報処理装置10及び情報処理装置11と同様の機能を実現できるためである。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成及び詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
[変形例3]
情報処理装置10及び情報処理装置11の構成する各部は、上記のとおり、物理的構成でも機能的構成でもよい。そのため、要素画像処理部20は、要素画像処理手段でもある。対象画像処理部30は、対象画像処理手段でもある。画像合成部40は、画像合成手段でもある。文字列取得部50は、文字列取得手段でもある。画像出力部60は、画像出力手段でもある。属性決定部210は、属性決定手段でもある。要素決定部220は、要素決定手段でもある。要素画像確定部230は、要素画像確定手段でもある。語句記憶部240は、語句記憶手段でもある。属性記憶部250は、属性記憶手段でもある。要素画像記憶部260は、要素画像記憶手段でもある。組合せ決定部310は、組合せ決定手段でもある。対象画像確定部320は、対象画像確定手段でもある。組合せ記憶部330は、組合せ記憶手段でもある。対象画像記憶部340は、対象画像記憶手段でもある。