以下、図面を参照して、本発明の実施の形態について説明する。
図1は、本発明の一実施の形態に係るフォトモザイク画像生成装置の構成例を示すブロック図である。
フォトモザイクは、例えば、多数の写真などの小さい画像をモザイクのように組み合わせて1枚の大きな画像を作成するものとされる。フォトモザイク画像は、例えば、離れて観察した場合、1枚の写真のように見える一方で、近くで観察した場合は、モザイクのタイルとなる個々の画像が1枚1枚見えるように生成される。
同図に示されるように、フォトモザイク画像生成装置10は、制作目標画像処理部20、フォトモザイク画像生成部30により構成されている。
制作目標画像処理部20は、フォトモザイク画像として生成する画像の元となる画像である制作目標画像を入力画像として受け付けるようになされている。制作目標画像は、例えば、人物の画像などとされる。
制作目標画像処理部20は、例えば、入力された制作目標画像から後述するように特徴領域を抽出する。制作目標画像が人物の画像である場合、特徴領域は、例えば、人物の顔の中の目、鼻、口などの部分とされる。
制作目標画像処理部20は、抽出された特徴領域に割り当てるべきブロックの数を決定し、そのブロックの数に対応する大きさの画像となるように、特徴領域の画像を拡大または縮小する。そして、制作目標画像処理部20は、その拡大または縮小の倍率に合わせて、制作目標画像全体を拡大または縮小するようになされている。
制作目標画像処理部20は、このように、拡大または縮小された制作目標画像を、フォトモザイク画像生成部30に供給する。
フォトモザイク画像生成部30は、制作目標画像処理部20の処理結果として得られた制作目標画像全体をブロックに分割する。ブロックは、例えば、同一のサイズの矩形の形状とされ、それぞれのブロックに、モザイクのタイルとなる画像が1枚貼り付けられるようになされている。
そして、フォトモザイク画像生成部30は、それらのブロックに相応しい画像を選択して張り付けるようになされている。
フォトモザイク画像生成部30は、例えば、画像データベース51に蓄積されている画像の中から制作目標画像の各ブロックに相応しい画像を選択する。あるいはまた、フォトモザイク画像生成部30は、例えば、ネットワーク52に接続されたサーバ53に蓄積されている画像の中から制作目標画像の各ブロックに相応しい画像を選択する。
すなわち、画像データベース51に蓄積されている画像、サーバ53に蓄積されている画像は、モザイクのタイルとして利用するための画像であって、いわば、フォトモザイク画像の素材となる画像である。
フォトモザイク画像生成部30は、後述するように、制作目標画像の各ブロックの画素値などに基づいてクラス分類を行うようになされている。これにより、制作目標画像の各ブロックが、例えば、5つのクラスに分類される。また、フォトモザイク画像生成部30は、例えば、画像データベース51に蓄積されている画像を同様の方式により、例えば、5つのクラスに分類する。
そして、フォトモザイク画像生成部30は、制作目標画像の各ブロックの画像と、そのブロックのクラスに分類された画像データベース51の画像との照合を行なって、画像データベース51に蓄積された画像の中から1枚の画像を選択するようになされている。
フォトモザイク画像生成部30は、上述のように選択された画像をモザイクのタイルとして制作目標画像の各ブロックに貼り付ける。これにより、出力画像としてフォトモザイク画像が出力されるようになされている。
図2は、図1の制作目標画像処理部20の詳細な構成例を示すブロック図である。
特徴領域検出部21は、入力された制作目標画像を解析して、特徴領域を抽出するようになされている。例えば、制作目標画像が人物の画像である場合、特徴領域検出部21は、顔画像認識処理などを実行することにより、人物の顔を検出するとともに、顔の中の特徴的部分である目、口などを構成する領域を特定する。そして、目、口などその特徴領域を特定する情報、特定された領域の座標位置、面積などの情報が抽出された特徴領域の情報として取得されることになる。
特徴領域検出部21は、例えば、画像から、肌色画素を抽出し、抽出した肌色画素からなる顔画像を抽出する。そして、特徴領域検出部21は、顔画像における、水平方向に1列の画素に含まれる連続している肌色画素の数に基づいて横枠を決め、横枠の幅に、所定の係数を乗じて縦枠の高さとし、垂直基準点に対して所定の長さだけオフセットした位置を縦枠の中心とする。特徴領域検出部21は、例えば、このようにして得られた横枠と縦枠に基づいて四角の枠の中の顔領域を抽出する。
そして、特徴領域検出部21は、例えば、顔領域の画像と、標準的な顔画像のテンプレートとの一致の度合いを示す値などに基づいて、顔領域とされた画像が実際に顔画像であるか否かを判定し、顔画像であると判定された場合、目や口などを検出する。
特徴領域検出部21は、例えば、顔領域の画素のうち、肌色画素に相当しない非肌色画素にラベリングし、オブジェクトを抽出する。そして、ラベルを参照して、顔領域の非肌色画素からなるオブジェクトのそれぞれの重心を算出し、オブジェクトのそれぞれの重心を示す重心データに基づいて目のオブジェクト、口のオブジェクトなどを検出する。
さらに、検出したオブジェクトの位置を特定するデータ(例えば、目のオブジェクトの重心の位置を示すデータ)に基づいてオブジェクト位置が、予め定めた所定の大きさの方形領域を設定し、その方形領域の画像を特徴領域とする。
なお、上述した特徴領域の抽出の方式は、一例であり、他の方式により特徴領域の抽出が行なわれるようにしても構わない。
特徴領域検出部21は、上述したように抽出された特徴領域の情報を、倍率決定部22に供給する。
図3は、入力された制作目標画像の例を示す図である。この例では、制作目標画像100は人物の画像とされている。
特徴領域検出部21は、例えば、図3において枠101で示される目の領域を特徴領域として抽出する。
倍率決定部22は、抽出した特徴領域のサイズを検出する。ここで、サイズは、例えば、抽出した特徴領域の垂直方向および水平方向の画素数などとされる。
特徴領域データベース24には、特徴領域に応じたブロックの配置方式が記憶されている。例えば、特徴領域データベース24には、目の特徴領域に対応して、「水平方向320×4、垂直方向240×2」という情報が記憶されている。これは、目の特徴領域には、水平方向320画素、垂直方向240画素で構成される矩形のブロックを、水平方向に4個、垂直方向に2個配置することを表している。すなわち、目の特徴領域には76,800(=320×240)画素のブロックが合計8(=4×2)個配置されることになる。
なお、例えば、プリンタやディスプレイなどの解像度やサイズ(用紙サイズ、アスペクト比など)、画像の向き(縦向きか横向きか)などによって、特徴領域に応じたブロックの配置方式がさらに異なるものとなるようにしてもよい。
同様に、特徴領域データベース24には、例えば、口の領域に配置すべき水平方向のブロック数および垂直方向のブロック数からなる配置方式が記憶されている。すなわち、特徴領域データベース24には、例えば、目、口、・・・などその特徴領域の種類に応じたブロックの配置方式がそれぞれ記憶されている。
なお、ブロックの画素数(いまの場合、320×240)は、例えば、画像データベース51に記憶されている画像のサイズなどに基づいて定まるものとされる。
倍率決定部22は、目、口などその特徴領域を特定する情報に基づいて、特徴領域データベース24から、その特徴領域に対応するブロックの配置方式を読み出す。そして、上述したように検出した特徴領域のサイズと、特徴領域データベース24から読み出したブロックの配置方式に基づいて、特徴領域の拡大または縮小倍率を算出する。
例えば、特徴領域として目が抽出された場合、制作目標画像から抽出された特徴領域のサイズを、水平方向の画素数IM_XEYE、垂直方向の画素数IM_YEYEで表すこととする。また、特徴領域データベース24から読み出したブロックの配置方式に基づいて得られる水平方向の画素数をDB_XEYE、垂直方向の画素数をDB_YEYEで表すことにする。
いまの場合、倍率決定部22は、垂直方向の変更率Vaと水平方向の変更率Haを式(1)および式(2)により求めて、特徴領域の拡大または縮小倍率を算出する。
Va=DB_YEYE/IM_YEYE
・・・(1)
Ha=DB_XEYE/IM_XEYE
・・・(2)
倍率決定部22は、上述のように求められた特徴領域の拡大または縮小倍率に基づいて、制作目標画像全体の拡大または縮小倍率を決定する。制作目標画像全体の拡大または縮小倍率は、特徴領域の拡大または縮小倍率と同じでもよい。また、上述した変更率Vaおよび変更率Haを、四捨五入、切り上げ、切り捨てなどしてもよい。さらに、変更率Vaおよび変更率Haが異なる場合、例えば、いずれか一方を選択したり、平均値を算出するなどして垂直方向の変更と水平方向の変更率が同じ値となるように加工されるなどしてもよい。
倍率決定部22は、制作目標画像全体の拡大または縮小倍率を画像生成部23に供給する。
画像生成部23は、倍率決定部22から供給された拡大または縮小倍率で、入力画像である制作目標画像を拡大または縮小するようになされている。
なお、特徴領域検出部21により、特徴領域が複数抽出された場合(例えば、左右の目がそれぞれ抽出された場合)、倍率決定部22は、それぞれのサイズを検出する。そして、例えば、平均値を算出するか、予め設定された基準に従っていずれか1つの特徴領域を選択するなどして、拡大または縮小倍率が算出されるようになされている。
上述した例において、特徴領域検出部21は、入力された制作目標画像を解析して、特徴領域を自動的に抽出することを前提として説明したが、例えば、ユーザがマウスなどを用いて指定した領域が特徴領域として抽出されるようにしてもよい。
この場合、例えば、特徴領域を指定したユーザが、その特徴領域を特定する情報(例えば,目、鼻、口など)をさらに入力するようにする。あるいはまた、ユーザに対して特徴領域の候補リストが提示されるようにし、候補リストに基づいて選択した特徴領域がユーザにより指定されるようにしてもよい。
現実的な処理時間を考慮すると、制作目標画像のブロックの個数をあまり多くすることには無理がある一方で、フォトモザイクとして生成された画像において、例えば、人の顔の目や口などに配置されるべきブロックの個数を適切に調整する必要がある。このような特徴領域を、例えば、1個のブロック(モザイクのタイル)で表現しようとしても、人の顔としては違和感のある画像となってしまうからである。
このため、フォトモザイク画像を作成する場合、モザイクのタイルとなる画像の大きさ(ブロックの大きさ)を考慮しつつ、制作目標画像のサイズを適切に調整する必要があり、このようなサイズの調整は、高いスキルが求められるものであった。
これに対して本発明では、制作目標画像の特徴領域とブロックの大きさに基づいて制作目標画像が自動的に縮小または拡大されるようにすることができる。従って、特別なスキルなどを必要とせずに、短時間で美しいフォトモザイク画像を生成することができる。
図4は、図1のフォトモザイク画像生成部30の詳細な構成例を示すブロック図である。
同図に示されるように、フォトモザイク画像生成部30は、ブロック分割部31、代表値決定部32、クラスセンタ値算出部33、および制作目標画像クラス分類部34を含む構成とされている。また、フォトモザイク画像生成部30はさらに、置換画像決定部35、画像置換部36、画像データベースクラス分類部37、および蓄積メモリ38を含む構成とされている。
ブロック分割部31は、制作目標画像処理部20により上述のように拡大または縮小された制作目標画像をブロックに分割する。上述したように、ブロックは、例えば、同一のサイズの矩形の形状とされ、それぞれのブロックに、モザイクのタイルとなる画像が1枚貼り付けられるようになされている。
ブロック分割部31は制作目標画像を、例えば、水平方向320画素、垂直方向240画素で構成される矩形のブロックに分割するようになされている。
代表値決定部32は、ブロック分割部31により分割された各ブロックの代表値をそれぞれ決定する。ここで代表値は、例えば、そのブロックの画素値の平均値とされるようにしてもよいし、ブロックの中央の座標位置の画素値とされるようにしてもよい。あるいはまた、ブロック内において予め決められた座標位置の画素値の平均値が代表値とされるようにしてもよい。
クラスセンタ値算出部33は、例えば、K-means法などのクラスタリング手法によりクラス分類するために必要となる各クラスのセンタ値を算出する。後述する制作目標画像クラス分類部34、および画像データベースクラス分類部37では、クラスセンタ値算出部33により算出されたセンタ値に基づくクラス分類が行われるようになされている。
制作目標画像クラス分類部34、および画像データベースクラス分類部37で5つのクラスに分類される場合、クラスセンタ値算出部33は、例えば、制作目標画像の端部の5つのブロックの代表値をそれぞれ5つのクラスのセンタ値として仮設定する。その後、クラスセンタ値算出部33は、各クラスのセンタ値と代表値とを比較することにより、各ブロックを5つのクラスに分類する。
クラスセンタ値算出部33は、例えば、上述したように仮設定されたセンタ値に対応する画素値と、各ブロックの代表値に対応する画素値のRGB成分のそれぞれの差分絶対値二乗和を計算して、各クラスのセンタ値とブロックの代表値との距離を求める。そして、クラスセンタ値算出部33は、最も距離の近いクラスにそのブロックを分類する。
このようにして、所定の個数のブロックが分類された後、クラスセンタ値算出部33は、例えば、各クラスの全ブロックの代表値の平均値を算出するなどして、各クラスのセンタ値をあらためて仮設定する。そして、クラスセンタ値算出部33は、上述した場合と同様に、各クラスのセンタ値とブロックの代表値との距離を求めて、ブロックの分類を再度行なう。
クラスセンタ値算出部33は、例えば、このようにブロックの分類の処理を予め決められた回数に達するまで実行する。その後、クラスセンタ値算出部33は、各クラスの全ブロックの代表値の平均値を算出するなどして得られた値を、それぞれのクラスの最終的なセンタ値として、制作目標画像クラス分類部34、および画像データベースクラス分類部37に供給するようになされている。
センタ値は、例えば、クラス毎にRGB成分のそれぞれの値として算出される。例えば、クラス1、クラス2、クラス3、・・・に分類される場合、クラス1のセンタ値は、(235.9444, 147.9211, 71.6848)とされ、クラス2のセンタ値は、(177.6508, 115.0474, 61.7452)とされ、クラス3のセンタ値は、(76.7123, 63.5517, 42.3792)とされ、・・・のように算出される。上述のセンタ値における3つの要素が、それぞれ、R成分、G成分、B成分の値を表している。
なお、上述したセンタ値の算出の方式は、一例であり、他の方式により各クラスのセンタ値が求められるようにしても構わない。
制作目標画像クラス分類部34は、クラスセンタ値算出部33から供給された各クラスのセンタ値に基づいて、ブロック分割部31により分割された各ブロックの画像をクラス分類する。制作目標画像クラス分類部34による分類は、例えば、上述した場合と同様に、各クラスのセンタ値と、各ブロックの代表値との距離を求めることにより行なわれる。
画像データベースクラス分類部37は、クラスセンタ値算出部33から供給された各クラスのセンタ値に基づいて、例えば、画像データベース51の画像をクラス分類するようになされている。
画像データベースクラス分類部37による分類は、例えば、上述した場合と同様に、各クラスのセンタ値と、データベースの各画像の代表値との距離を求めることにより行なわれる。ただし、画像データベースクラス分類部37による分類では、最も近いクラスのセンタ値と、データベースの各画像の代表値との距離が閾値を超えている場合、その画像はいずれのクラスにも分類されないようになされている。
画像データベースクラス分類部37による分類に用いられる閾値は、例えば、分類された画像の数に応じて変更されるようになされている。これにより、例えば、所定のクラスに分類された画像の数が極端に少ない場合などは、閾値を大きくすることで、そのクラスに分類される画像の数を増やすようにすることができる。
このように、画像データベースクラス分類部37は、例えば、一度分類された画像の数をクラス毎にチェックし、所定のクラスに分類された画像の数が基準値に満たないと判定された場合は、閾値を変更して再度クラス分類を行うようにしてもよい。
なお、このように閾値を変更した結果、同一の画像が複数のクラスに属するように分類されてしまっても構わない。
画像データベースクラス分類部37によりクラス分類された画像は、それぞれ分類されたクラスと対応付けられて蓄積メモリ38に記憶されるようになされている。
なお、画像データベース51に記憶されている画像から、ブレやボケを除去するフィルタ処理がさらに施されて、それぞれ分類されたクラスと対応付けられて蓄積メモリ38に記憶されるようにしてもよい。
このようにすることで、出来上がったフォトモザイク画像をさらに美しいものとすることができる。
置換画像決定部35は、制作目標画像クラス分類部34によりクラス分類されたブロックの画像と、蓄積メモリ38に記憶されている画像であって、そのブロックのクラスの画像群とを、例えば、次に示されるような式を用いた計算により照合する処理を実行するようになされている。
画像を照合する処理では、例えば、まず式(3)の演算を行って、△cの算出が行なわれる。
ここで、△R、△G、および△Bは、それぞれブロックの画像の所定の1つの画素と、蓄積メモリ38に記憶されている画像において対応する画素の画素値のRGB成分の値の差分を表している。また、C1RとC2Rは、それぞれブロックの画像の所定の1つの画素のR成分の値と、蓄積メモリ38に記憶されている画像において対応する画素の画素値のR成分の値を表している。
なお、式(3)により△cの算出は、例えば、ブロックの画像を構成する画素の全てについて行なわれる。例えば、ブロック内の座標位置xyで表される画素のそれぞれについて△cが算出される。
そして、画像を照合する処理では、式(4)の演算が行われてCの算出が行なわれる。すなわち、式(3)により算出された△cがブロック内の全画素分合計される。
式(4)により算出されたCの値が、蓄積メモリ38に記憶されている画像と対応付けられて記憶され、置換画像決定部35は、蓄積メモリ38に記憶されている画像のそれぞれについてCの値の大小を比較する。すなわち、Cの値は、その画像が当該ブロックに貼り付ける画像としてどれだけ相応しいか(適正度)を表す値となり、Cの値が小さいほど適正な画像であるといえる。
なお、式(3)と式(4)の演算は、制作目標画像のブロックの画素と画像データベースの画素を間引いてから行なわれるようにしてもよい。このようにすることで、例えば、演算量を低減させることができ、処理時間を短縮することができる。
また、上述した画像を照合する処理は一例であり、他の方式により画像の照合が行なわれるようにしてもよい。要は、代表値によりクラス分類された画像データベースの画像の中で、制作目標画像の各ブロックのテクスチャを表現するのに相応しい画像が当該ブロックに貼り付ける(置換する)画像として決定されるようにすればよい。
置換画像決定部35は、例えば、上述のCの値が最も小さい値となった画像を、当該ブロックに貼り付ける(置換する)画像として決定するようになされている。置換画像決定部35は、このように決定された画像を、画像置換部36に供給する。
画像置換部36は、置換画像決定部35から供給された画像を、当該ブロックの画像と置換する。このように、全てのブロックの画像が置換画像決定部35から供給された画像と置換されることによりモザイク画像が生成されるのである。
なお、置換画像決定部35は、例えば、蓄積メモリ38に記憶されている画像に所定のフラグを設定することにより、同じ画像が重複して使用されないように置換画像を決定するようになされている。例えば、蓄積メモリ38に記憶されている画像のうち、同一クラスに分類された全ての画像にフラグが設定されるまでは、まだフラグの設定されていない画像を置換画像として決定するようになされている。同一クラスに分類された全ての画像にフラグが設定された場合、そのクラスの画像のフラグが全てクリアされるようになされている。
あるいはまた、置換画像決定部35が、フラグが設定された画像を全く使用しないのではなく、N近傍でのみ使用しないという制約を設けるようにしてもよい。ここでN近傍とは、1つのブロックに隣接するN個のブロックを意味している。Nの値としては、例えば、8、24などが想定される。
例えば、Nの値が8である場合、N近傍の制約は、例えば、図5に示されるようになる。図5において、各矩形が制作目標画像の各ブロックを表している。例えば、図5に示されるように、図中中央の黒い矩形で示されるブロックに使用された画像は、図中ハッチングで示される8個のブロックには使用されないようになされている。すなわち、N近傍の制約がある場合、置換画像決定部35が、図中ハッチングで示される8個のブロックに貼り付ける画像を、黒い矩形で示されるブロックに使用された画像以外の画像の中から決定することになる。
このようにすることで、例えば、モザイクのタイルとして使用できる画像の数が限られていても美しいモザイク画像を生成することが可能となる。
従来は、例えば、ブロックに貼り付ける画像データベースの画像を決定するにあたり代表値のみを使用しているため、生成されたフォトモザイク画像において制作目標画像のテクスチャを表現できないことが多かった。また、制作目標画像のテクスチャを表現できるように、ブロックの画像と画像データベースの画像と照合する場合、制作目標画像の各ブロックについて、画像データベースの全画像との照合を行わなければならないので、演算量が多く処理に時間がかかっていた。
これに対して、本発明では、制作目標画像の各ブロックをクラス分類し、同じセンタ値を用いて画像データベースの画像をクラス分類し、同一のクラスの画像のみ照合するようにした。これにより、本発明では、生成されたフォトモザイク画像において制作目標画像のテクスチャを表現でき、かつ演算量を削減し処理時間を短縮できるようになった。
また、従来、例えば、画像データベースの画像が充分に用意されていない場合、多くの重複が発生し、生成されたフォトモザイク画像の品質が劣化するという問題があった。
例えば、モザイクのタイルとして同一の画像が多く用いられたフォトモザイク画像は、離れて観察したときに不自然な模様のある画像のように感じられる。特に、人の顔の画像をフォトモザイクにより生成する場合などは、このような不自然な印象を与えるフォトモザイク画像は、品質が低いと言わざるを得ない。
これに対して、本発明では、画像データベースクラス分類部37による分類に用いられる閾値が、例えば、分類された画像の数に応じて変更されるようになされている。また、本発明では、置換画像決定部35が、フラグを設定することにより、同じ画像が重複して使用されないように置換画像を決定するようにしたり、N近傍の制約が付されたりするようになされている。
これにより、本発明では、例えば、所定のクラスに分類された画像の数が少ない場合などは、閾値を大きくすることで、そのクラスに分類される画像の数を増やすようにすることができる。また、本発明では、所定のクラスに分類された画像の数が少ない場合でも、フラグ、N近傍の制約により、できるだけ同じ画像が重複して使用されることを回避することができる。
次に、図6のフローチャートを参照して、図1のフォトモザイク画像生成装置10によるフォトモザイク画像生成処理について説明する。
ステップS21において、制作目標画像処理部20は、生成準備処理を実行する。これにより、制作目標画像が適切な大きさに拡大または縮小される。
ステップS22において、フォトモザイク画像生成部30は、画像生成処理を実行する。これにより、制作目標画像に対応するフォトモザイク画像が生成されることになる。
次に、図7のフローチャートを参照して、図6のステップS21で実行される生成準備処理の詳細な例について説明する。
ステップS41において、制作目標画像処理部20の特徴領域検出部21は、入力された制作目標画像を解析する。
このとき、例えば、制作目標画像が人物の画像である場合、特徴領域検出部21は、顔画像認識処理などを実行することにより、人物の顔を検出するとともに、顔の中の特徴的部分である目、口などを構成する領域を特定する。
ステップS42において、特徴領域検出部21は、ステップS41の解析結果に基づいて、特徴領域を抽出する。このとき、例えば、目、口などその特徴領域を特定する情報、特定された領域の座標位置、面積などの情報が抽出された特徴領域の情報として取得されることになる。例えば、図3において枠101で示される目の領域が特徴領域として抽出される。
なお、ユーザが特徴領域を指定するようにしてもよい。この場合、ユーザに指定された領域として、例えば、図3において枠101で示される目の領域が特徴領域として抽出されることになる。
特徴領域検出部21は、上述したように抽出された特徴領域の情報を、倍率決定部22に供給する。
ステップS43において、倍率決定部22は、ステップS42の処理で抽出した特徴領域のサイズを検出する。ここで、サイズは、例えば、抽出した特徴領域の垂直方向および水平方向の画素数などとされる。
ステップS44において、倍率決定部22は、特徴領域を特定する情報に基づいて、特徴領域データベース24から、その特徴領域に対応するブロックの配置方式を読み出す。上述したように、特徴領域データベース24には、特徴領域に応じたブロックの配置方式が記憶されている。例えば、特徴領域データベース24には、目の特徴領域に対応して、「水平方向320×4、垂直方向240×2」という情報が記憶されている。
ステップS45において、倍率決定部22は、ステップS43の処理で検出した特徴領域のサイズ、およびステップS44の処理で読み出した情報(ブロックの配置方式)に基づいて、拡大または縮小倍率を決定する。
このとき、倍率決定部22は、例えば、上述したように、垂直方向の変更率Vaと水平方向の変更率Haを式(1)および式(2)により求めて、特徴領域の拡大または縮小倍率を算出する。そして、倍率決定部22は、上述のように求められた特徴領域の拡大または縮小倍率に基づいて、制作目標画像全体の拡大または縮小倍率を決定する。
倍率決定部22は、制作目標画像全体の拡大または縮小倍率を画像生成部23に供給する。
ステップS46において、画像生成部23は、ステップS45の処理で決定された拡大または縮小倍率に従って、制作目標画像を拡大または縮小する。
このようにして、生成準備処理が実行される。
次に、図8のフローチャートを参照して、図6のステップS22で実行される画像生成処理の詳細な例について説明する。
ステップS61において、フォトモザイク画像生成部30のブロック分割部31は、図6のステップS21の処理を経て拡大または縮小された制作目標画像をブロックに分割する。このとき、ブロック分割部31は、制作目標画像を、例えば、水平方向320画素、垂直方向240画素で構成される矩形のブロックに分割する。
ステップS62において、代表値決定部62は、ステップS61の処理で分割された各ブロックの代表値をそれぞれ決定する。ここで代表値は、例えば、そのブロックの画素値の平均値とされるようにしてもよいし、ブロックの中央の座標位置の画素値とされるようにしてもよい。あるいはまた、ブロック内において予め決められた座標位置の画素値の平均値が代表値とされるようにしてもよい。
図9と図10は、ブロック分割および代表値の決定を説明する図である。
例えば、図9に示されるような画像が制作目標画像として入力された場合、ステップS61の処理では、同図に示される画像が水平方向320画素、垂直方向240画素で構成される矩形のブロックに分割される。いまの場合、人物の顔の画像である図9に示されるような画像が制作目標画像とされている。
そして、ステップS62の処理では、各ブロックの代表値が決定される。図10は、ブロックを分かり易くするために、制作目標画像の各ブロックを、それぞれのブロックの代表値を有する画素により塗りつぶした画像の例である。同図に示されるように、図9に示される人物の顔の画像が矩形のブロックに分割されている。
図8に戻って、ステップS63において、制作目標画像クラス分類部34および画像データベースクラス分類部37は、クラス分類処理を実行する。このとき、クラスセンタ値算出部33、制作目標画像クラス分類部34および画像データベースクラス分類部37は、ステップS62の処理で決定された各ブロックの代表値に基づいて各ブロックの画像と画像データベース51の画像をそれぞれクラス分類する。
ここで、図11のフローチャートを参照して、図8のステップS63のクラス分類処理の詳細な例について説明する。
ステップS81において、クラスセンタ値算出部33は、クラスを設定する。このとき、例えば、5つのクラスが設定される。
ステップS82において、クラスセンタ値算出部33は、例えば、K-means法などのクラスタリング手法によりクラス分類するために必要となる各クラスのセンタ値を算出する。
このとき、クラスセンタ値算出部33は、例えば、制作目標画像の端部の5つのブロックの代表値をそれぞれステップS81の処理で設定された5つのクラスのセンタ値として仮設定する。その後、クラスセンタ値算出部33は、各クラスのセンタ値と代表値とを比較することにより、各ブロックを5つのクラスに分類する。
クラスセンタ値算出部33は、例えば、上述したように仮設定されたセンタ値に対応する画素値と、各ブロックの代表値に対応する画素値のRGB成分のそれぞれの差分絶対値二乗和を計算して、各クラスのセンタ値とブロックの代表値との距離を求める。そして、クラスセンタ値算出部33は、最も距離の近いクラスにそのブロックを分類する。
このようにして、所定の個数のブロックが分類された後、クラスセンタ値算出部33は、例えば、各クラスの全ブロックの代表値の平均値を算出するなどして、各クラスのセンタ値をあらためて仮設定する。そして、クラスセンタ値算出部33は、上述した場合と同様に、各クラスのセンタ値とブロックの代表値との距離を求めて、ブロックの分類を再度行なう。
クラスセンタ値算出部33は、例えば、このようにブロックの分類の処理を予め決められた回数に達するまで実行する。その後、クラスセンタ値算出部33は、各クラスの全ブロックの代表値の平均値を算出するなどして得られた値を、それぞれのクラスの最終的なセンタ値として特定する。
ステップS82の処理では、例えば、このようにして各クラスのセンタ値が特定される。
ステップS83において、制作目標画像クラス分類部34は、ステップS82の処理で特定された各クラスのセンタ値に基づいて、ステップS61の処理で分割された各ブロックの画像をクラス分類する。制作目標画像クラス分類部34による分類は、例えば、上述した場合と同様に、各クラスのセンタ値と、各ブロックの代表値との距離を求めることにより行なわれる。
これにより、例えば、図10に示されるように、ブロックに分割された画像の各ブロックが、図12に示されるようにクラス分類される。図12は、図10に示されるブロックのそれぞれがステップS83の処理を経てクラス分類された例を示す画像である。
同図においては、各ブロックのクラスを、図中のハッチングのパターンにより表現している。同図の例では、制作目標画像の各ブロックがクラス1乃至クラス5の5つのクラスに分類されている。
ステップS84において、画像データベースクラス分類部37は、ステップS82の処理で特定された各クラスのセンタ値に基づいて、例えば、画像データベース51の画像をクラス分類する。
このとき、画像データベースクラス分類部37は、例えば、上述した場合と同様に、各クラスのセンタ値と、データベースの各画像の代表値との距離を求めることによりクラス分類する。ただし、ステップS84の処理では、最も近いクラスのセンタ値と、データベースの各画像の代表値との距離が閾値を超えている場合、その画像はいずれのクラスにも分類されないようになされている。
なお、上述したように、画像データベースクラス分類部37による分類に用いられる閾値は、例えば、分類された画像の数に応じて変更されるようになされている。これにより、例えば、所定のクラスに分類された画像の数が極端に少ない場合などは、閾値を大きくすることで、そのクラスに分類される画像の数を増やすようにすることができる。
ステップS84の処理でクラス分類された画像は、それぞれ分類されたクラスと対応付けられて蓄積メモリ38に記憶されるようになされている。
このようにしてクラス分類処理が実行される。
図8に戻って、ステップS63の処理の後、ステップS64において、置換画像決定部35は、置換画像決定処理を実行する。これにより、制作目標画像の各ブロックの画像が、画像データベース51の画像に置き換えられて、フォトモザイク画像が生成されることになる。
ここで、図13のフローチャートを参照して、図8のステップS64の置換画像決定処理の詳細な例について説明する。
ステップS101において、置換画像決定部35は、制作目標画像のブロックのうち、1つのブロックを抽出する。
ステップS102において、置換画像決定部35は、ステップS101で抽出したブロックについて、ステップS63の処理によりクラス分類されたクラスを特定する。
ステップS103において、置換画像決定部35は、当該ブロックの画像と、画像データベース51から読み出され、蓄積メモリ38に記憶されている画像であって、ステップS102の処理で特定されたクラスの画像群とを照合する。
このとき、例えば、次のような計算により照合する処理が実行される。
例えば、上述したように、式(3)の演算を行って、△cの算出が行なわれ、式(4)の演算が行われてCの算出が行なわれる。すなわち、式(3)により算出された△cがブロック内の全画素分合計される。
なお、式(3)と式(4)の演算は、制作目標画像のブロックの画素と画像データベースの画素を間引いてから行なわれるようにしてもよい。このようにすることで、例えば、演算量を低減させることができ、処理時間を短縮することができる。
そして、このような照合がステップS102の処理で特定されたクラスに属する画像のそれぞれについて行われ、式(4)により算出されたCの値が、蓄積メモリ38に記憶されている画像と対応付けられて記憶される。
ステップS104において、置換画像決定部35は、ステップS103の処理結果に基づいて、当該ブロックに貼り付ける画像を選択する。
このとき、例えば、置換画像決定部35は、蓄積メモリ38に記憶されている画像のそれぞれについてCの値の大小を比較する。そして、置換画像決定部35は、例えば、上述のCの値が最も小さい値となった画像を、当該ブロックに貼り付ける(置換する)画像として決定する。
ステップS105において、置換画像決定部35は、ステップS104の処理で選択された画像にフラグを設定する。これにより、以後のステップS103の処理では、フラグが設定された画像は除外されて、照合が行なわれるようになる。
例えば、蓄積メモリ38に記憶されている画像のうち、同一クラスに分類された全ての画像にフラグが設定されるまでは、まだフラグの設定されていない画像を置換画像として決定するようになされている。同一クラスに分類された全ての画像にフラグが設定された場合、そのクラスの画像のフラグが全てクリアされるようになされている。
ステップS106において、置換画像決定部35は、次のブロックがあるか否かを判定する。すなわち、まだ置換画像の決定(選択)がなされていない制作目標画像のブロックがあるか否かを判定する。
ステップS106において、次のブロックがあると判定された場合、処理は、ステップS101に戻り、それ以後の処理が繰り返し実行される。
ステップS106において、次のブロックがないと判定された場合、置換画像決定処理は終了する。
なお、ここでは、フラグが設定されることにより、同じ画像が重複して使用されないように置換画像を決定する例について説明したが、図5を参照して上述したN近傍の制約により同じ画像が重複して使用されないようにしてもよい。
このようにして、置換画像決定処理が実行される。
図8に戻って、ステップS64の処理の後、ステップS65において、画像置換部36は、ステップS104の処理で選択された画像を、当該ブロックの画像と置換する。このように、全てのブロックの画像がステップS104の処理で選択された画像と置換されることによりフォトモザイク画像が生成されるのである。
これにより、例えば、図14に示されるようなフォトモザイク画像が生成される。図14は、図9の制作目標画像に対応するフォトモザイク画像の例を示す図である。
すなわち、図9に示される制作目標画像が、図10に示されるようにブロックに分割され、図12に示されるようにクラス分類される。そして、各ブロックの画像と、分類されたクラスの画像との照合が行われて、各ブロックの画像が、画像データベース51の画像に置き換えられる。このようにして、図9に示される制作目標画像から、図14に示されるようなフォトモザイク画像が生成されるのである。
このようにして、画像生成処理が実行される。
なお、図7を参照して上述した生成準備処理においては、制作目標画像が拡大または縮小されるとしたが、ブロックが拡大または縮小されるようにしても構わない。この場合、画像データベース51に記憶されている画像も、ブロックのサイズに合わせて拡大または縮小されるようにすればよい。
すなわち、倍率決定部22が、例えば、特徴領域の拡大または縮小倍率の逆数に基づいて、ブロックの拡大または縮小倍率を決定する。そして、画像生成部23は、制作目標画像をもとの大きさのまま出力するとともに、上述したブロックの拡大または縮小倍率をフォトモザイク画像生成部30に供給するようにする。フォトモザイク画像生成部30は、供給されたブロックの拡大または縮小倍率によりブロックのサイズを拡大または縮小するとともに、画像データベース51から取得した画像のそれぞれを、ブロックの拡大または縮小倍率により拡大または縮小するようにすればよい。
また、図8のステップS61においては、例えば、水平方向320画素、垂直方向240画素で構成される矩形のブロックに分割されると説明したが、全て同一の矩形のブロックに分割されないようにしてもよい。
例えば、特徴領域検出部21によって検出された特徴領域は、より小さいサイズのブロックに分割されるようにしてもよい。
図15は、図9に示される制作目標画像を、ブロック分割する場合の別の例を示す図である。同図の例の場合、特徴領域である目の画像のみが、その周辺の画像より小さいサイズのブロックに分割されている。すなわち、図15の目の部分の画像は、その周辺の画像のブロックの4分の1のサイズのブロックで分割されている。
このようにすることで、フォトモザイクとして生成された画像において、例えば、人の顔の目などの特徴的部分の画像のテクスチャがより詳細に表現されるようにすることができる。その結果、例えば、観察者が画像から離れてみた場合に、より制作目標画像に近い印象を与えるような、フォトモザイク画像を生成することができる。
さらに、図8のステップS65の処理では、全てのブロックの画像がステップS104の処理で選択された画像と置換されることによりフォトモザイク画像が生成されると説明したが、必ずしも全てのブロックの画像が置換されないようにしてもよい。
例えば、ステップS103の処理の結果算出されたCの値のうち、最小のものが閾値を超えるものであった場合、そのブロックの画像は置換されず、元の制作目標画像のブロックの画像のままとされるようにしてもよい。このようにすることで、例えば、所定のブロックの画像として置換すべき適切な画像が画像データベース51に存在しないことなどにより、フォトモザイク画像の品質が劣化することを抑止することができる。
また、上述した例では、できるだけ同じ画像が重複して使用されないようにされる旨説明したが、例えば、類似する画像が隣接して配置されないようにすることも可能である。
例えば、似たような画像が隣り合うブロックに貼り付けられている場合、同じ画像が重複して使用された場合と同様な視覚的効果を奏する場合がある。似たような画像が隣り合うブロックに貼り付けられることを抑止するために、例えば、置換画像決定部35が隣接するブロックに貼り付ける画像と当該ブロックに貼り付けられる画像との類似度を算出し、類似度が閾値以下の画像のみが置換画像とされるようにしてもよい。なお、画像の類似度は、例えば、ブロックマッチング法などにより求められる値を用いることができる。
さらに、上述した例では、ブロックに貼り付けられる画像が、主に画像データベース51から取得される場合の例について説明したが、例えば、ネットワーク52を介してサーバ53から取得されるようにしてもよい。
あるいはまた、画像データベース51から取得できない画像のみ、サーバ53から取得されるようにしてもよい。
例えば、画像データベースクラス分類部37によるクラス分類の結果、クラス3に分類された画像の枚数が少ない場合、フォトモザイク画像生成装置10から、サーバ53にクラス3の画像のリクエストのパケットが送信される。このとき、例えば、フォトモザイク画像生成装置10から、クラス3のセンタ値と閾値がリクエストのパケットに含まれて送信される。また、必要とする画像の数、画像の種類(例えば、花の画像、山の画像、人の画像・・・などの種類)などを表すタグの情報などもリクエストパケットに含まれるようにしてもよい。
そして、サーバ53は、自身が記憶する画像を、画像データベースクラス分類部37と同様にクラス分類し、クラス3に分類された画像を、ネットワーク52を介してフォトモザイク画像生成装置10に送信するようにすればよい。
このようにすることで、さらに、品質の高いフォトモザイク画像を生成することが可能となる。
以上においては、フォトモザイク画像生成装置10が、制作目標画像処理部20およびフォトモザイク画像生成部30により構成される例について説明したが、他の構成としても構わない。
例えば、制作目標画像処理部20の機能を実現する装置が、従来のフォトモザイク画像生成装置に接続されるようにしても構わない。
上述したように、制作目標画像処理部20により、制作目標画像の特徴領域とブロックの大きさに基づいて制作目標画像が自動的に縮小または拡大されるようにすることができる。従って、制作目標画像処理部20を単体で使用した場合でも、例えば、特別なスキルなどを必要とせずに、短時間で美しいフォトモザイク画像を生成することができるという効果が期待できる。
また、例えば、制作目標画像処理部20を設けずに、フォトモザイク画像生成部30の機能を実現する装置のみを用いてフォトモザイク画像を生成することも可能である。
すなわち、フォトモザイク画像生成部30を単体で使用した場合でも、生成されたフォトモザイク画像において制作目標画像のテクスチャを表現でき、かつ演算量を削減し処理時間を短縮できるという効果が期待できる。また、例えば、できるだけ同じ画像が重複して使用されることを回避するという効果も期待できる。
さらに、フォトモザイク画像生成装置10は、例えば、撮像装置に内蔵される構成とすることも可能である。
また、制作目標画像、画像データベース51に記憶される画像は、例えば、写真だけではなく、絵などをスキャナで取り込んで得られた画像やCG(Computer Graphics)など、どのような画像であってもよい。
さらに、以上においては、画像データベースクラス分類部37によるクラス分類では、素材となる画像が所定の個数のクラスに分類されるものと説明したが、このクラスの個数は適応的に変更されるようにしてもよい。例えば、画像データベース51に記憶される画像の代表値のヒストグラムを生成し、そのヒストグラムの分散値に基づいてクラス数が変更されるようにしてもよい。
このようにすることで、例えば、画像データベース51に記憶される全ての画像において赤色の画素の割合が高い場合などであっても、不自然なクラス分類がなされることなく、適正なフォトモザイク画像の生成を行うことができる。
あるいはまた、例えば、制作目標画像のブロックの代表値のヒストグラムの分散値に基づいてクラスの個数が適応的に変更されるようにしてもよい。
また、図1の制作目標画像処理部20とフォトモザイク画像生成部30は、ネットワークを介して接続される構成とされてもよい。そして、例えば、ユーザが保持する携帯端末から、ネットワークを介してフォトモザイク画像の生成の指令を送信し、ネットワークに接続されたサーバなどによりフォトモザイク画像が生成され、携帯端末に送信されるようにすることも可能である。
すなわち、本発明のフォトモザイク画像生成装置10の各機能ブロックが、例えば、ネットワークを介して接続される任意の数のサーバによって実現されるようにすることも可能である。
ところで、制作目標画像としてそもそも不適切な画像が入力された場合、各ブロックに貼り付ける画像を適切に選んでも、なお生成されたフォトモザイクの品質が劣化するという問題があった。例えば、制作目標画像の中の被写体の画素値と背景の画素値との差分が小さい場合、制作目標画像の中の被写体のサイズが極めて小さい場合などは、各ブロックに十分に適正度の高い画像を貼り付けても、見栄えの良いフォトモザイク画像を生成することができない。
図16は、被写体の画素値と背景の画素値との差分が小さい画像の例を示す図である。同図は、被写体として女性の顔が写った写真の画像であり、主に図中右側において顔の部分の色と背景(壁)の色がほぼ同じ色となっている。すなわち、同図は、被写体の画素値と背景の画素値との差分が小さい画像である。
図17は、図16の画像を制作目標画像として生成されたフォトモザイク画像の例を示す図である。同図に示されるように、生成されたフォトモザイク画像からは、図16に示される女性の顔がほとんど判別できず、特に図中右側の部分において、顔の輪郭が不明瞭となる印象を受ける。
このように、制作目標画像の中の被写体の画素値と背景の画素値との差分が小さい場合、各ブロックに十分に適正度の高い画像を貼り付けても、見栄えの良いフォトモザイク画像を生成することができない。
図18は、被写体のサイズが極めて小さい画像の例を示す図である。同図は、多人数の集合写真の画像であり、個々の人物を被写体として認識できるものの、一人の人物を構成する画素の領域は、画像全体からみて極めて小さい領域といえる。
このような被写体のサイズが極めて小さい画像を制作目標画像として生成されたフォトモザイク画像は、やはり被写体(個々の人物)の輪郭などが不明瞭になりやすい。従って、制作目標画像の中の被写体のサイズが極めて小さい場合、各ブロックに十分に適正度の高い画像を貼り付けても、やはり見栄えの良いフォトモザイク画像を生成することができない。
そこで、本発明においては、入力された画像が制作目標画像として適切な画像であるか否かを予め判定できるようにする。
図19は、入力された画像が制作目標画像として適切な画像であるか否かを予め判定できるようにする場合のフォトモザイク画像生成装置の構成例を示すブロック図である。同図は、図1に対応する図であり、図1に対応する各部には同一の符号がふされている。図19の例では、図1の場合と異なり、制作目標画像判定部110が設けられている。
制作目標画像判定部110は、入力画像が制作目標画像として適切な画像であるか否かを判定し、例えば、適切と判定された入力画像のみを制作目標画像処理部20に出力するようになされている。あるいはまた、入力画像が制作目標画像として適切な画像であるか否かの判定結果がユーザに提示されるようにしてもよい。
図19のそれ以外の構成は、図1の場合と同様なので、詳細な説明は省略する。
図20は、図19の制作目標画像判定部110の詳細な構成例を示すブロック図である。この制作目標画像判定部110は、入力画像が、被写体の画素値と背景の画素値との差分が小さい画像である場合、制作目標画像として不適切な画像と判定するようになされている。
同図の例において、制作目標画像判定部110は、被写体検出部111、エッジ内画素値取得部113、エッジ外画素値取得部114、差分検出部115、および適性判定部116により構成されている。
被写体検出部111は、入力画像の解析を行い、画像中の被写体を検出するようになされている。被写体検出部111は、例えば、画像の中の人物の画像を検出するようになされている。人物の画像の検出は、例えば、画像の特徴量および予め記憶しているモデルデータなどに基づいて行なわれる。
被写体検出部111は、検出した被写体を構成する画素のそれぞれを、例えば、座標値により特定する。これにより、入力画像の中の被写体の画像の画素と、被写体以外(例えば、背景)の画像の画素とを特定することができるようになる。
エッジ内画素値取得部113は、被写体検出部111の検出結果に基づいて、被写体の画像と被写体以外の画像の境界(エッジ)を特定し、被写体以外の画像の画素に隣接する被写体の画像の画素の値を取得する。
エッジ外画素値取得部114は、被写体検出部111の検出結果に基づいて、被写体の画像と被写体以外の画像の境界(エッジ)を特定し、被写体の画像の画素に隣接する被写体以外の画像の画素の値を取得する。
エッジ内画素値取得部113とエッジ外画素値取得部114のそれぞれは、例えば、被写体の輪郭線に沿って、上述のように画素値を取得していく。そして、エッジ内画素値取得部113とエッジ外画素値取得部114によりそれぞれ取得された画素値のペアが、差分検出部115に供給される。
なお、ここでは説明を簡単にするために、被写体の輪郭線上の1点において、被写体のエッジの画素1個の値、その画素に隣接する背景などの画素1個の値からなるペアを取得するものとした。しかし、例えば、被写体の輪郭線上の1点において、エッジ内画素値取得部113とエッジ外画素値取得部114により、それぞれエッジ周辺の予め設定された複数の画素の画素値が取得され、それらの画素値のペアが差分検出部115に供給されるようにしてもよい。また、複数の画素の画素値の平均値をそれぞれ求め、平均値のペアが差分検出部115に供給されるようにしてもよい。
さらに、エッジ周辺の何画素分の値を取得するかは、例えば、予め設定されるようにしてもよいし、都度、ユーザに指定させるようにしてもよい。また、被写体の画像を構成する画素数により定まるようにしてもよい。
また、エッジ内画素値取得部113とエッジ外画素値取得部114のそれぞれは、必ずしも被写体の輪郭線上の全ての点において、上述のペアを取得する必要はなく、例えば、予め設定された部分、ユーザに指定された部分において上述のペアを取得するようにしてもよい。
差分検出部115は、上述したようにエッジ内画素値取得部113とエッジ外画素値取得部114とから供給された画素値のペアの差分の値を、それぞれ算出する。差分検出部115は、例えば、個々に算出された差分値を予め設定された閾値と比較し、供給された画素値のペアのうち閾値以上の差分値を有するペアの数の割合を特定する。
適性判定部116は、例えば、差分検出部により特定された割合を、別の閾値を用いてさらに閾値判定し、閾値以上の割合であると判定された場合、入力画像は、制作目標画像として適切であると判定する。このような画像は、被写体の画素値と背景の画素値との差分が十分大きいと考えられるからである。
一方、閾値未満の割合であると判定された場合、適性判定部116は、入力画像が制作目標画像として不適切であると判定する。このような画像は、被写体の画素値と背景の画素値との差分が小さいと考えられるからである。
あるいはまた、後述するように、入力画像の被写体以外の画像の画素値を変更するようにしてもよい。すなわち、入力画像が、被写体の画素値と背景の画素値との差分が十分大きい画像となるように、画素値を補正するのである。これにより、不適切な制作目標画像を、適切な制作目標画像に変えて出力することも可能となる。
なお、上述した差分検出部115による差分の検出方式と適性判定部116の適性判定方式は一例であり、他の方式が用いられるようにしてもよい。
次に、図21のフローチャートを参照して、図20の制作目標画像判定部110による制作目標画像判定処理の例について説明する。
ステップS201において、被写体検出部111は、入力画像を解析する。
ステップS202において、被写体検出部111は、画像中の被写体を検出する。これにより、入力画像の中の被写体の画像の画素と、被写体以外(例えば、背景)の画像の画素とを特定することができるようになる。
ステップS203において、エッジ内画素値取得部113は、ステップS202での被写体検出部111の検出結果に基づいて、被写体の画像と被写体以外の画像の境界(エッジ)を特定し、被写体以外の画像の画素に隣接する被写体の画像の画素の値を取得する。
ステップS204において、エッジ外画素値取得部114は、ステップS202での被写体検出部111の検出結果に基づいて、被写体の画像と被写体以外の画像の境界(エッジ)を特定し、被写体の画像の画素に隣接する被写体以外の画像の画素の値を取得する。
ステップS205において、差分検出部115は、ステップS203とステップS204の処理の結果、エッジ内画素値取得部113とエッジ外画素値取得部114とにより取得されて供給された画素値のペアの差分の値を算出する。
ステップS206において、差分検出部115は、例えば、個々に算出された差分値を予め設定された閾値と比較し、供給された画素値のペアのうち閾値以上の差分値を有するペアの数の割合を算出する。
ステップS207において、適性判定部116は、ステップS206の処理で算出された割合が閾値以上か否かを判定する。
ステップS207において、閾値以上の割合であると判定された場合、処理は、ステップS209に進み、適性判定部116は、入力画像を適切な制作目標画像として出力する。
一方、ステップS207において、閾値未満の割合であると判定された場合、処理は、ステップS208に進み、適性判定部116は、入力画像を不適切な制作目標画像として出力する。なお、ステップS208では、入力画像を出力せずに破棄するようにしいてもよい。
また、ステップS207とステップS208の処理では、入力画像を、制作目標画像としての適正度を表すスコアとともに出力するようにしてもよい。例えば、複数の入力画像をスコアとともに出力し、そのスコアをもとにユーザが制作目標画像を適宜選択するようにすることもできる。
このようにして、制作目標画像判定処理が実行される。このようにすることで、そもそも制作目標画像として不適切な画像を採用したフォトモザイク画像の生成を抑止することができる。
図22は、図19の制作目標画像判定部110の別の詳細な構成例を示すブロック図である。この制作目標画像判定部110は、入力画像が、被写体のサイズが極めて小さい画像である場合、制作目標画像として不適切な画像と判定するようになされている。
同図の例において、制作目標画像判定部110は、被写体検出部131、被写体サイズ検出部132、および適性判定部133により構成されている。
被写体検出部131は、入力画像の解析を行い、画像中の被写体を検出するようになされている。被写体検出部131は、例えば、画像の中の人物の画像を検出するようになされている。人物の画像の検出は、例えば、画像の特徴量および予め記憶しているモデルデータなどに基づいて行なわれる。
被写体検出部131は、検出した被写体を構成する画素のそれぞれを、例えば、座標値により特定する。これにより、入力画像の中の被写体の画像の画素と、被写体以外(例えば、背景)の画像の画素とを特定することができるようになる。
被写体サイズ検出部132は、被写体検出部131の検出結果に基づいて、被写体のサイズを検出する。ここで、被写体のサイズは、例えば、入力画像の中の被写体の画像を構成する画素の数とされる。
例えば、被写体検出部131により複数の被写体が検出された場合、被写体サイズ検出部132は、個々の被写体のサイズを検出するようにしてもよいし、それらの被写体のサイズの平均値を、被写体のサイズとして検出するようにしてもよい。
適性判定部133は、被写体サイズ検出部132の検出結果に基づいて、入力画像が制作目標画像として適切か否かを判定する。
適性判定部133は、例えば、被写体サイズ検出部132から出力されたサイズ(例えば、画素数)の、入力画像の全画素数に占める割合を算出し、その割合を閾値判定する。そして、閾値以上の割合であると判定された場合、適切な画像と判定し、閾値未満の割合であると判定された場合、不適切な画像と判定する。
あるいはまた、例えば、被写体サイズ検出部132から出力されたサイズ(例えば、画素数)と、入力画像の解像度とに基づいて、被写体のサイズを評価するスコアが算出されるようにし、そのスコアが閾値判定されるようにしてもよい。
なお、上述した被写体サイズ検出部132によるサイズの検出方式と適性判定部133の適性判定方式は一例であり、他の方式が用いられるようにしてもよい。
次に、図23のフローチャートを参照して、図22の制作目標画像判定部110による制作目標画像判定処理の例について説明する。
ステップS221において、被写体検出部131は、入力画像を解析する。
ステップS222において、被写体検出部131は、画像中の被写体を検出する。これにより、入力画像の中の被写体の画像の画素と、被写体以外(例えば、背景)の画像の画素とを特定することができるようになる。
ステップS223において、被写体サイズ検出部132は、ステップS222の処理による検出結果に基づいて、被写体のサイズを検出する。ここで、被写体のサイズは、例えば、入力画像の中の被写体の画像を構成する画素の数とされる。
ステップS224において、適性判定部133は、ステップS223の処理により検出されたサイズ(例えば、画素数)の、入力画像の全画素数に占める割合を算出する。
ステップS225において、適性判定部133は、ステップS224の処理により算出された割合が、予め設定された閾値以上か否かを判定する。
ステップS225において、閾値以上の割合であると判定された場合、処理は、ステップS227に進み、適性判定部133は、入力画像を適切な制作目標画像として出力する。
一方、ステップS225において、閾値未満の割合であると判定された場合、処理は、ステップS226に進み、適性判定部133は、入力画像を不適切な制作目標画像として出力する。なお、ステップS226では、入力画像を出力せずに破棄するようにしいてもよい。
また、ステップS226とステップS227の処理では、入力画像を、制作目標画像としての適正度を表すスコアとともに出力するようにしてもよい。例えば、複数の入力画像をスコアとともに出力し、そのスコアをもとにユーザが制作目標画像を適宜選択するようにすることもできる。
このようにして、制作目標画像判定処理が実行される。このようにすることで、そもそも制作目標画像として不適切な画像を採用したフォトモザイク画像の生成を抑止することができる。
なお、ここでは、制作目標画像判定部110の構成例として、図20に示される例と図22に示される例を説明したが、勿論、図20に示される構成と図22に示される構成とを合わせて適用することも可能である。
すなわち、被写体の画素値と背景の画素値との差分が小さい画像であるか、または被写体のサイズが極めて小さい画像を、制作目標画像として不適切と判定する制作目標画像判定部110を構成することも可能である。さらに、被写体の画素値と背景の画素値との差分が小さい画像であり、かつ、被写体のサイズが極めて小さい画像を、制作目標画像として不適切と判定する制作目標画像判定部110を構成することも可能である。
ところで上述した図20を参照して上述した構成と図21を参照して上述した処理では、差分が大きいペアの割合が閾値未満であると判定された場合、入力画像が制作目標画像として不適切であると判定すると説明した。このような画像は、被写体の画素値と背景の画素値との差分が小さいと考えられるからである。
しかしながら、入力画像が制作目標画像として不適切であると判定された場合は、入力画像の被写体以外の画像の画素値を変更するようにしてもよい。すなわち、入力画像が、被写体の画素値と背景の画素値との差分が十分大きい画像となるように、画素値を補正するのである。これにより、不適切な制作目標画像を、適切な制作目標画像に変えて出力することも可能となる。
図24は、入力画像が制作目標画像として不適切であると判定された場合は、入力画像の被写体以外(例えば、背景)の画像の画素値を変更するようにする制作目標画像判定部110の詳細な構成例を示すブロック図である。
同図は、図20に対応する図であり、図20に対応する各部には同一の符号が付されている。
図24の被写体検出部111乃至適性判定部116は、図20の場合と同様なので詳細な説明は省略する。図24の構成の場合、図20の場合とは異なり、背景色決定部117、および背景色変換部119が設けられている。
図24の適性判定部116により制作目標画像として不適切であると判定された入力画像は、背景色決定部117に供給される。
背景色決定部117は、例えば、エッジ内画素値取得部113により取得された画素値の平均値を算出し、算出された平均値との差分が十分に大きい色(画素値)の候補を複数選択する。ここで、色の候補は、例えば、エッジ内画素値取得部113により取得された画素値の平均値と、候補となる色の画素値とのペアについて、差分検出部115により算出される差分が予め設定された閾値以上となるような色とされる。
例えば、画素値をRGBの3次元ベクトルで表現する場合、エッジ内画素値取得部113により取得された画素値の平均値からのユークリッド距離が所定の値以上となる画素値を、候補となる色の画素値として選択する。例えば、エッジ内画素値取得部113により取得された画素値の平均値の3次元空間内の座標位置から、R,G,Bの各方向に所定の距離だけ離れた座標位置に対応する画素値を候補となる色として選択する。
なお、色の候補を選択する際に、例えば、入力画像に関する情報が参照されるようにしてもよい。例えば、入力画像とともに、入力画像の種類を表すコードなどが入力されるようにし、お祝い事の画像を表すコードが検出された場合、黒色に近い色は候補として選択されないようにしてもよい。このように、色の候補を選択する際に、入力画像に関する情報が参照されて、候補として不適切な色が選択されないように規制したり、または候補として適切な色が積極的に選択されたりするようにしてもよい。
また、背景色決定部117は、画像データベース51にも接続され、画像データベース51の各画像の代表値の平均値と、選択された候補の色とを比較する。そして、背景色決定部117は、例えば、画像データベース51の各画像の代表値の平均値とのユークリッド距離が所定の値未満となる候補の色を、背景の色として決定する。例えば、各候補色と画像データベース内の各画像(全部でもよいし一部でもよい)の代表値を比較して、各候補の色に対して距離が近い(距離が閾値以下)画像データベース内の画像の枚数を算出し、最も枚数が多い候補の色が背景の色として決定される。このようにすることで、背景色を変換した後、その背景のブロックに貼り付ける画像の選択の余地が大きくなる。つまり、選択された背景の色に対応する画像が画像データベース51の中に多く存在することになる。
なお、背景の色を決定する際に、候補の色を選択せずに、例えば、被写体以外(例えば、背景)の画像の画素として特定された画素の値が一律に変換されるように決定されてもよい。例えば、背景の画像の画素値を、RGBの3次元ベクトルで表現する場合、各画素値の3つ要素の値のそれぞれを所定の値だけ増加または減少させることで、背景の色が決定されるようにしてもよい。
背景色変換部119は、被写体検出部111の処理の結果、被写体以外(例えば、背景)の画像の画素として特定された画素の値を、背景色決定部117により決定された背景の色に対応する画素値に変換する。
これにより、入力画像は被写体の画素値と背景の画素値との差分が十分大きい画像となるように画素値が補正されるので、不適切な制作目標画像を、適切な制作目標画像に変えて出力することができるのである。
図25は、図24の構成に対応する制作目標画像判定処理の例を説明するフローチャートである。
図25のステップS251乃至ステップS257の処理は、図21のステップS201乃至ステップS207と同様の処理なので詳細な説明は省略する。
ステップS257において、テップS256の処理で算出された割合が閾値未満であると判定された場合、処理は、ステップS258に進む。一方、ステップS257において、テップS256の処理で算出された割合が閾値以上であると判定された場合、ステップS258の処理はスキップされる。
ステップS258において、背景色決定部117および背景色変換部119は、背景色変換処理を実行する。
ここで、図26のフローチャートを参照して、図25のステップS258の背景色変換処理の詳細な例について説明する。
ステップS271において、背景色決定部117は、例えば、エッジ内画素値取得部113により取得された画素値の平均値を算出し、算出された平均値との差分が十分に大きい色(画素値)の候補を複数選択する。
ステップS272において、背景色決定部117は、画像データベース51をチェックする。このとき、画像データベース51の各画像の代表値の平均値と、選択された候補の色とが比較される。
ステップS273において、背景色決定部117は、例えば、ステップS271の処理で選択された候補のうち、画像データベース51の各画像の代表値の平均値とのユークリッド距離が所定の値未満となる候補の色を、背景の色として決定する。
ステップS274において、背景色変換部119は、図25のステップS252の処理の結果、被写体以外の画像の画素として特定された画素について、それらの画素(被写体以外の画像の画素)の値を、ステップS273の処理で決定された背景の色に対応する画素値に変換する。
このようにして、背景色変換処理が実行される。
図25に戻って、ステップS258の処理の後、または、ステップS257において、テップS256の処理で算出された割合が閾値以上であると判定された場合、処理は、ステップS259に進む。
ステップS259において、入力画像が適切な制作目標画像として制作目標画像判定部110から出力される。
このようにして制作目標画像判定処理が実行される。このようにすることで、不適切な制作目標画像を、適切な制作目標画像に変えて出力することも可能となる。
以上においては、フォトモザイク画像生成装置10が、制作目標画像処理部20、フォトモザイク画像生成部30、および制作目標画像判定部110により構成される例について説明したが、他の構成としても構わない。
例えば、制作目標画像処理部20、およびフォトモザイク画像生成部30の機能を実現する装置が、従来のフォトモザイク画像生成装置に接続されるようにしても構わない。
上述したように、制作目標画像判定部110によりそもそも制作目標画像として不適切な画像を採用したフォトモザイク画像の生成を抑止することができる。従って、制作目標画像判定部110を単体で使用した場合でも、例えば、特別なスキルなどを必要とせずに、短時間で美しいフォトモザイクを生成することができるという効果が期待できる。
なお、上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータにネットワークや記録媒体からインストールされる。また、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば図27に示されるような汎用のパーソナルコンピュータ700などに、ネットワークや記録媒体からインストールされる。
図27において、CPU(Central Processing Unit)701は、ROM(Read Only Memory)702に記憶されているプログラム、または記憶部708からRAM(Random Access Memory)703にロードされたプログラムに従って各種の処理を実行する。RAM703にはまた、CPU701が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU701、ROM702、およびRAM703は、バス704を介して相互に接続されている。このバス704にはまた、入出力インタフェース705も接続されている。
入出力インタフェース705には、キーボード、マウスなどよりなる入力部706、LCD(Liquid Crystal display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部707が接続されている。また、入出力インタフェース705には、ハードディスクなどより構成される記憶部708、モデム、LANカードなどのネットワークインタフェースカードなどより構成される通信部709が接続されている。通信部709は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース705にはまた、必要に応じてドライブ710が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア711が適宜装着されている。そして、それらのリムーバブルメディアから読み出されたコンピュータプログラムが、必要に応じて記憶部708にインストールされる。
上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、インターネットなどのネットワークや、リムーバブルメディア711などからなる記録媒体からインストールされる。
なお、この記録媒体は、図27に示される、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フロッピディスク(登録商標)を含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)(登録商標)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア711により構成されるものだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM702や、記憶部708に含まれるハードディスクなどで構成されるものも含む。
なお、本明細書において上述した一連の処理は、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。