特許第6045232号(P6045232)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特許6045232画像処理装置、画像処理方法、及びプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6045232
(24)【登録日】2016年11月25日
(45)【発行日】2016年12月14日
(54)【発明の名称】画像処理装置、画像処理方法、及びプログラム
(51)【国際特許分類】
   G06T 11/60 20060101AFI20161206BHJP
   H04N 1/387 20060101ALI20161206BHJP
【FI】
   G06T11/60 100D
   H04N1/387
【請求項の数】17
【全頁数】30
(21)【出願番号】特願2012-153781(P2012-153781)
(22)【出願日】2012年7月9日
(65)【公開番号】特開2014-16800(P2014-16800A)
(43)【公開日】2014年1月30日
【審査請求日】2015年7月9日
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【弁理士】
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100124442
【弁理士】
【氏名又は名称】黒岩 創吾
(72)【発明者】
【氏名】橋井 雄介
(72)【発明者】
【氏名】梅田 清
(72)【発明者】
【氏名】國枝 寛康
(72)【発明者】
【氏名】酒井 洋行
(72)【発明者】
【氏名】鷲見 尚紀
【審査官】 千葉 久博
(56)【参考文献】
【文献】 特開2011−188393(JP,A)
【文献】 特開2011−141843(JP,A)
【文献】 特開2007−143093(JP,A)
【文献】 特開2005−333655(JP,A)
【文献】 特開2004−280597(JP,A)
【文献】 特開2003−30673(JP,A)
【文献】 特表2010−532042(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 11/60
H04N 1/387
(57)【特許請求の範囲】
【請求項1】
複数の画像データを含む画像データ群を取得する取得手段と、
取得した画像データ群から所定数の画像データを選択して配置するための処理を実行することにより、複数のレイアウト候補を自動で作成する作成手段と、
レイアウト候補内に配置するための処理が実行された各画像データの個別評価及びレイアウト候補の全体評価に基づいて、前記作成手段により作成された各レイアウト候補の評価を行う評価手段と、
前記評価手段による評価結果に基づいて、複数のレイアウト候補の中から出力するレイアウトを選択して決定する決定手段と、
を備え、
前記作成手段は、前記取得した画像データ群から選択する画像データを変えることにより複数のレイアウト候補を作成することを特徴とする画像処理装置。
【請求項2】
前記レイアウト候補の全体評価は、前記レイアウト候補内に配置される画像データのバランス評価であることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記バランス評価は、画像類似性、画像値分布のばらつき、及びオブジェクトのばらつきのうち少なくとも1つに基づく評価であることを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記評価手段は、前記個別評価、前記全体評価、及びレイアウト候補におけるスロットに対する画像の適合度の評価に基づいて、前記作成手段により作成された各レイアウト候補の評価を行うことを特徴とする請求項1〜3のいずれか1項に記載の画像処理装置。
【請求項5】
前記評価手段は、出力するレイアウトのテーマに応じて、各評価の重み付けを変更することを特徴とする請求項1〜4のいずれか1項に記載の画像処理装置。
【請求項6】
各画像データの特徴量を算出する算出手段を備え、
前記取得手段は、前記算出手段により算出される前記特徴量に基づいて各画像データを評価し、所定の基準に満たない画像データは取得をしないフィルタリング手段を備えることを特徴とする請求項1〜5のいずれか1項に記載の画像処理装置。
【請求項7】
前記評価手段は、レイアウト候補内に配置するための処理が実行された画像データ間の画像の類似性、画素値分布のバラつき、又は/及びオブジェクトのバラつきが大きいほど前記全体評価を高くすることを特徴とする請求項1〜6のいずれか1項に記載の画像処理装置。
【請求項8】
複数の画像配置領域を有するテンプレートを取得する第2取得手段をさらに備え、
前記作成手段は、前記テンプレートに複数の画像データを配置するための処理を実行することによりレイアウト候補を作成することを特徴とする請求項1〜7のいずれか1項に記載の画像処理装置。
【請求項9】
前記作成手段は、第n(nは自然数)次のレイアウト候補を作成した際の前記評価手段による各レイアウト候補の評価結果に応じて、第(n+1)次のレイアウト候補を作成する際のレイアウト候補を変化させることを特徴とする請求項1〜8のいずれか1項に記載の画像処理装置。
【請求項10】
前記作成手段は、さらに、画像データの配置を変えるための処理を実行することにより複数のレイアウト候補を自動で作成することを特徴とする請求項1〜9のいずれか1項に記載の画像処理装置。
【請求項11】
前記作成手段は、さらに、画像データに実行するトリミング率を変更するための処理を実行することにより複数のレイアウト候補を自動で作成することを特徴とする請求項1〜10のいずれか1項に記載の画像処理装置。
【請求項12】
複数の画像データを含む画像データ群を取得する取得手段と、
取得した画像データ群から所定数の画像データを選択して配置するための処理を実行することにより、複数のレイアウト候補を作成する作成手段と、
レイアウト候補内に配置するための処理が実行された各画像データの個別評価、及びレイアウト候補の全体評価に基づいて、前記作成手段により作成された各レイアウト候補の評価を行う評価手段と、
前記評価手段による評価結果に基づいて、複数のレイアウト候補の中から出力するレイアウトを選択して決定する決定手段と、
を備え、
前記評価手段は、出力するレイアウトのテーマに応じて、各評価の重み付けを変更することを特徴とする画像処理装置。
【請求項13】
複数の画像データを含む画像データ群を取得する取得手段と、
各画像データの特徴量を算出する算出手段と、
取得した画像データ群から所定数の画像データを選択して配置するための処理を実行することにより、複数のレイアウト候補を作成する作成手段と、
レイアウト候補内に配置するための処理が実行された各画像データの個別評価、及びレイアウト候補の全体評価に基づいて、前記作成手段により作成された各レイアウト候補の評価を行う評価手段と、
前記評価手段による評価結果に基づいて、複数のレイアウト候補の中から出力するレイアウトを選択して決定する決定手段と、
を備え、
前記取得手段は、前記算出手段において算出される画像データの特徴量に基づいて各画像データを評価し、所定の基準に満たない画像データは取得をしないフィルタリング手段を備えることを特徴とする画像処理装置。
【請求項14】
複数の画像データを含む画像データ群を取得する取得工程と、
取得した画像データ群から所定数の画像データを選択して配置するための処理を実行することにより、複数のレイアウト候補を自動で作成する作成工程と、
レイアウト候補内に配置するための処理が実行された各画像データの画像評価及びレイアウト候補の全体評価に基づいて、前記作成工程において作成された各レイアウト候補の評価を行う評価工程と、
前記評価工程における評価結果に基づいて、複数のレイアウト候補の中から出力するレイアウトを選択して決定する決定工程と、
を備え、
前記作成工程では、前記取得した画像データ群から選択する画像データを変えることにより複数のレイアウト候補を作成することを特徴とする画像処理方法。
【請求項15】
複数の画像データを含む画像データ群を取得する取得工程と、
取得した画像データ群から所定数の画像データを選択して配置するための処理を実行することにより、複数のレイアウト候補を作成する作成工程と、
レイアウト候補内に配置するための処理が実行された各画像データの個別評価、及びレイアウト候補の全体評価に基づいて、前記作成工程により作成された各レイアウト候補の評価を行う評価工程と、
前記評価工程による評価結果に基づいて、複数のレイアウト候補の中から出力するレイアウトを選択して決定する決定工程と、
を備え、
前記評価工程では、出力するレイアウトのテーマに応じて、各評価の重み付けを変更することを特徴とする画像処理方法。
【請求項16】
複数の画像データを含む画像データ群を取得する取得工程と、
各画像データの特徴量を算出する算出工程と、
取得した画像データ群から所定数の画像データを選択して配置するための処理が実行することにより、複数のレイアウト候補を作成する作成工程と、
レイアウト候補内に配置するための処理が実行された各画像データの個別評価、及びレイアウト候補の全体評価に基づいて、前記作成工程により作成された各レイアウト候補の評価を行う評価工程と、
前記評価工程による評価結果に基づいて、複数のレイアウト候補の中から出力するレイアウトを選択して決定する決定工程と、
を備え、
前記取得工程では、前記算出工程において算出される画像データの特徴量に基づいて各画像データを評価し、所定の基準に満たない画像データは取得をしないフィルタリング工程を備えることを特徴とする画像処理方法。
【請求項17】
請求項1乃至13に記載の画像処理装置の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、レイアウト画像を出力するための画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【0002】
従来、デジタルカメラで撮影した写真を活用し、コラージュやアルバムなどの様々な成果物を作成する方法が知られている。特許文献1では、画像に含まれるオブジェクトの向きを特定し、特定されたオブジェクトの向きに基づいて画像を出力領域内にレイアウトし、レイアウトした画像を出力する画像出力方法が提案されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−287917号
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載の方法では、作成されるレイアウトはあくまでテンプレートの指示に基づいたものとなる。このように、テンプレートに合致する画像群を抽出する方法では、画像群の特徴を生かした好適なレイアウトを作成することができないという問題があった。
【0005】
本発明は、上述した事情に鑑み、画像群に応じて全体整合のとれた良質なレイアウト結果を得ることができる画像処理装置、画像処理方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記の課題を解決するための本発明の画像処理装置は、複数の画像データを含む画像データ群を取得する取得手段と、取得した画像データ群から所定数の画像データを選択して配置するための処理を実行することにより、複数のレイアウト候補を自動で作成する作成手段と、レイアウト候補内に配置するための処理が実行された各画像データの個別評価及びレイアウト候補の全体評価に基づいて、前記作成手段により作成された各レイアウト候補の評価を行う評価手段と、前記評価手段による評価結果に基づいて、複数のレイアウト候補の中から出力するレイアウトを選択して決定する決定手段と、を備え、前記作成手段は、前記取得した画像データ群から選択する画像データを変えることにより複数のレイアウト候補を作成する。本発明の他の画像処理装置は、複数の画像データを含む画像データ群を取得する取得手段と、取得した画像データ群から所定数の画像データを選択して配置するための処理を実行することにより、複数のレイアウト候補を作成する作成手段と、レイアウト候補内に配置するための処理が実行された各画像データの個別評価、及びレイアウト候補の全体評価に基づいて、前記作成手段により作成された各レイアウト候補の評価を行う評価手段と、前記評価手段による評価結果に基づいて、複数のレイアウト候補の中から出力するレイアウトを選択して決定する決定手段と、を備え、前記評価手段は、出力するレイアウトのテーマに応じて、各評価の重み付けを変更する。また、本発明の他の画像処理装置は、複数の画像データを含む画像データ群を取得する取得手段と、各画像データの特徴量を算出する算出手段と、取得した画像データ群から所定数の画像データを選択して配置するための処理を実行することにより、複数のレイアウト候補を作成する作成手段と、レイアウト候補内に配置するための処理が実行された各画像データの個別評価、及びレイアウト候補の全体評価に基づいて、前記作成手段により作成された各レイアウト候補の評価を行う評価手段と、前記評価手段による評価結果に基づいて、複数のレイアウト候補の中から出力するレイアウトを選択して決定する決定手段と、を備え、前記取得手段は、前記算出手段において算出される画像データの特徴量に基づいて各画像データを評価し、所定の基準に満たない画像データは取得をしないフィルタリング手段を備える。
【発明の効果】
【0007】
本発明によれば、画像群の特徴を生かしつつ、レイアウト成果物として全体整合のとれた良質なレイアウト結果を得ることができる。また、本発明によれば、従来の方法と比較してより好ましいレイアウト結果を得られる可能性が向上する。
【図面の簡単な説明】
【0008】
図1】実施形態1に係る画像処理装置ハードウェア構成図である。
図2】実施形態1に係るソフトウェアブロック図である。
図3】実施形態1に係る画像解析処理のフローチャートである。
図4】実施形態1に係る画像解析処理のフローチャートである。
図5】実施形態1に係る人物グループ生成処理のフローチャートである。
図6】実施形態1に係る自動レイアウト提案処理のフローチャートである。
図7】実施形態1の人物グループの表示例を示す図である。
図8】実施形態1の画像群の表示例を示す図である。
図9】画像解析結果の保存形式の例を示す図である。
図10】手動でお気に入り度を入力するためのUIの例及び手動でイベント情報を入力するためのUI例を示す図である。
図11】手動で人物属性情報を入力するためのUI例を示す図である。
図12】人物属性情報の保存形式の例を示す図である。
図13】レイアウトテンプレートの一例を示す図である。
図14図13のレイアウトテンプレートの保持形式の例を示す図である。
図15】レイアウトテンプレートの一例を示す図である。
図16図15のレイアウトテンプレートの保持形式の例を示す図である。
図17】実施形態1における自動レイアウト生成処理のフローチャートである。
図18】実施形態1における不要画像フィルタリング処理のフローチャートである。
図19】自動トリミング処理の説明図、明るさ適正度の算出方法の説明図、及び彩度適正度の算出方法の説明図である。
図20】トリミング欠け判定処理の説明図である。
図21】実施形態1に係る自動レイアウト生成結果の表示例を示す図である。
図22】決定されたテーマと主人公情報の保持例を示す図である。
図23】決定されたテーマと主人公情報の保持例を示す図である。
図24】生成したレイアウト情報の保持例を示す図である。
【発明を実施するための形態】
【0009】
(実施形態1)
以下では、入力画像群を用いて自動でレイアウト出力物を生成するために、本発明における実施形態1について説明する。これはあくまで実施の1つの形態を例として示したものであり、本発明は以下の実施形態に限定されるものではない。
【0010】
図1は実施形態1の画像処理装置のハードウェア構成例を示すブロック図である。
【0011】
図1において、情報処理装置115は、CPU100と、ROM101と、RAM102と、2次記憶装置103と、表示装置104と、入力装置105と、IF107と、IF108と、無線LAN109を備えている。さらに、内部撮像デバイス106を備えている。これらは、制御バス/データバス110により相互に接続されている。本実施形態の情報処理装置115は、画像処理装置として機能する。
【0012】
情報処理装置115は、例えば、コンピュータである。CPU100(中央演算装置)は、実施形態1で説明する情報処理をプログラムに従って実行する。ROM101は、CPU100により実行される以下に示すアプリケーション等のプログラムが記憶されている。RAM102は、CPU100によるプログラムの実行時に、各種情報を一時的に記憶するためのメモリを提供している。2次記憶装置103は、ハードディスク等であり、画像ファイルや画像解析結果を保存するデータベース等を保存するための記憶媒体である。表示装置104は、例えば、ディスプレイであり、実施形態1の処理結果や以下に示すUI(User Interface)等をユーザに提示する装置である。表示装置104は、タッチパネル機能を備えても良い。入力装置105は、ユーザが画像補正の処理の指示等を入力するためのマウスやキーボード等である。
【0013】
また、内部撮像デバイス106で撮像された画像は、所定の画像処理を経た後、2次記憶装置103に記憶される。また、情報処理装置115は、インターフェース(IF109)を介して接続された外部撮像デバイス111から画像データを読み込むこともできる。さらに、無線LAN(Local Area Network)108はインターネット113に接続されている。情報処理装置115は、インターネット113に接続された外部サーバー114より画像データを取得することもできる。
【0014】
画像等を出力するためのプリンタ112は、IF107を介して情報処理装置115に接続されている。尚、プリンタ112はさらにインターネット上に接続されており、無線LAN109経由でプリントデータのやり取りをすることもできる。
【0015】
図2は本実施形態における上記アプリケーション等ソフトウェア構成のブロック図になっている。
【0016】
まず情報処理装置115が取得した画像データは、通常JPEG(Joint Photography Expert Group)等の圧縮形式になっている。そのため、画像コーデック部200は、該圧縮形式を解凍していわゆるRGB点順次のビットマップデータ形式に変換する。変換されたビットマップデータは、表示・UI制御部201に伝達され、ディスプレイ等の表示装置104上に表示される。
【0017】
上記ビットマップデータは、さらに画像センシング部203(アプリケーション)に入力され、同部において、詳細は後述するが、画像の様々な解析処理が行われる。上記解析処理の結果得られた画像の様々な属性情報は、所定の形式に従ってデータベース部202において、上述した2次記憶装置103に保存される。なお、以降においては、画像解析処理とセンシング処理は同義で扱う。
【0018】
シナリオ生成部204(アプリケーション)では、ユーザが入力した様々な条件に応じて、自動で生成すべきレイアウトの条件を生成し、レイアウト生成部205(アプリケーション)では上記シナリオに従って、自動でレイアウトを生成する処理を行う。
【0019】
生成したレイアウトは、レンダリング部206で表示用のビットマップデータを生成し、該ビットマップデータは表示・UI制御部201に送られ、結果がディスプレイ等の表示装置104に表示される。一方で、レンダリング結果はさらにプリントデータ生成部207に送られ、同部でプリンタ用コマンドデータに変換され、プリンタに送出される。
【0020】
図3〜6は、本実施形態のアプリケーションの基本的な画像処理のフローチャートである。具体的には、図3及び4は、画像センシング部203のフローを示しており、複数の画像データ群を取得して、それぞれについて解析処理を施し、その結果をデータベースに格納するまでの処理の流れを示している。図5は、検出した顔位置情報に基づいて、同じ人物と思われる顔情報をグループ化するための処理の流れを示している。図6は、画像の解析情報およびユーザが入力した様々な情報に基づいて、レイアウト作成のためのシナリオを決定し、該シナリオに基づいて、自動でレイアウトを生成するための処理の流れを示している。
【0021】
図3のS301では、画像データ群の取得を行う。画像データ群は、例えば、ユーザが、撮影画像が格納された撮像装置やメモリカードを情報処理装置115に接続して、これらから撮像画像を読み込むことで取得する。また、内部撮像装置で撮影され、2次記憶装置に保存されていた画像データ群を取得してもよい。あるいは、無線LANを介して、インターネット上に接続された外部サーバー114等、情報処理装置115以外の場所から画像データ群を取得をしてもよい。
【0022】
画像データ群を取得すると、そのサムネイル群が図8(a)や図8(b)に示すようにUIに表示される。図8(a)の801に示すように2次記憶装置103内のフォルダ単位で画像のサムネイル802を表示してもよいし、図8(b)に示すようにカレンダーのようなUI901で日付ごとに画像データが管理されていてもよい。日付の部分902をクリックすることにより、同日に撮影された画像を、図8(a)のようなサムネイル一覧で表示する。
【0023】
次に、S302において、各画像のデコードを行う。具体的には、アプリケーションが、新規で保存され未だセンシング処理が行われていない画像をサーチし、抽出された各画像について、画像コーデック部200が圧縮データからビットマップデータに変換する。
【0024】
次に、S303において、上記ビットマップデータに対して、各種センシング処理を実行する。ここでいうセンシング処理には、次の表1に示すような様々な処理が含まれる。本実施形態では、センシング処理の例として、顔検出、画像の特徴量解析、シーン解析を挙げており、それぞれ表1に示すようなデータ型の結果を算出する。
【0025】
【表1】
【0026】
以下、それぞれのセンシング処理について説明する。
【0027】
画像の基本的な特徴量である全体の平均輝度、平均彩度は、公知の方法で求めればよいため、詳細な説明は省略する。平均彩度は、画像の各画素について、RGB成分を公知の輝度色差成分(例えばYCbCr成分)に変換し(変換式省略)、Y成分の平均値を求めればよい。また、平均彩度は、上記CbCr成分について画素毎に以下を算出し、下記Sの平均値を求めればよい。
【0028】
【数1】
【0029】
また、画像内の平均色相(AveH)は、画像の色合いを評価するための特徴量である。各画素毎の色相は、公知のHIS変換式を用いて求めることができ、それらを画像全体で平均化することにより、AveHを求めることができる。
【0030】
また、これらの特徴量は、上述したように画像全体で算出してもよいし、例えば、画像を所定サイズの領域に分割し、各領域毎に算出してもよい。
【0031】
次に、人物の顔検出処理について説明する。本実施形態で使用する人物の顔検出手法としては、公知の方法を用いることができる。
【0032】
特開2002−183731号に記載されている方法では、入力画像から目領域を検出し、目領域周辺を顔候補領域とする。この顔候補領域に対して、画素毎の輝度勾配、および輝度勾配の重みを算出し、これらの値を、あらかじめ設定されている理想的な顔基準画像の勾配、および勾配の重みと比較する。そのときに、各勾配間の平均角度が所定の閾値以下であった場合、入力画像は顔領域を有すると判定する。
【0033】
また、特開2003−30667号に記載されている方法では、まず画像中から肌色領域を検出し、同領域内において、人間の虹彩色画素を検出することにより、目の位置を検出することができる。
【0034】
特開平8−63597号に記載されている方法では、まず、複数の顔の形状をしたテンプレートと画像とのマッチング度を計算する。そのマッチング度が最も高いテンプレートを選択し、最も高かったマッチング度があらかじめ定められた閾値以上であれば、選択されたテンプレート内の領域を顔候補領域とする。同テンプレートを用いるこことで、目の位置を検出することができる。
【0035】
さらに、特開2000−105829号に記載されている方法では、まず、鼻画像パターンをテンプレートとし、画像全体、あるいは画像中の指定された領域を走査し最もマッチする位置を鼻の位置として出力する。次に、画像の鼻の位置よりも上の領域を目が存在する領域と考え、目画像パターンをテンプレートとして目存在領域を走査してマッチングをとり、ある閾値よりもマッチ度が度置きい画素の集合である目存在候補位置集合を求める。そして、目存在候補位置集合に含まれる連続した領域をクラスタとして分割し、各クラスタと鼻位置との距離を算出する。その距離が最も短くなるクラスタを目が存在するクラスタと決定することで、器官位置の検出することができる。
【0036】
その他の人物の顔検出方法としては、特開平8−77334、特開2001−216515、特開平5−197793、特開平11−53525、特開2000−132688、特開2000−235648、特開平11−250267に記載されるような顔および器官位置を検出する方法が挙げられる。また、人物の顔検出処理は、特許第2541688号に記載された方法でもよく、方法は特に限定されるものではない。
【0037】
人物の顔検出処理により、各入力画像について、人物顔の個数と各顔毎の座標位置を取得することができる。また、画像中の顔座標位置が分かることにより、顔領域の特徴量を解析することができる。例えば、顔領域毎に顔領域内に含まれる画素値の平均YCbCr値を求めることにより、顔領域の平均輝度および平均色差を得ることができる。
【0038】
また、画像の特徴量を用いてシーン解析処理を行うことができる。シーン解析処理は、例えば、出願人が開示している特開2010−251999号や特開2010−273144号等で開示されている方法により行うことができる。シーン解析処理により、風景(Landscape)、夜景(Nightscape)、人物(Portrait)、露出不足(Underexposure)、その他(Others)、という撮影シーンを区別するためのIDを取得することができる。
【0039】
なお、本実施形態では、上記のセンシング処理によりセンシング情報を取得したが、その他のセンシング情報を利用してもよい。
【0040】
上記のようにして取得したセンシング情報は、データベース202に保存する。データベース202への保存形式については、例えば、図9に示すような汎用的なフォーマット(例えば、XML:eXtensible Markup Language)で記述し、格納すればよい。
【0041】
図9においては、各画像毎の属性情報を、3つのカテゴリに分けて記述する例を示している。
【0042】
1番目のBaseInfoタグは、画像サイズや撮影時情報として、あらかじめ取得した画像ファイルに付加されている情報を格納するためのタグである。ここには、画像毎の識別子ID、画像ファイルが格納されている保存場所、画像サイズ、撮影日時などが含まれる。
【0043】
2番目のSensInfoタグは、上述した画像解析処理の結果を格納するためのタグである。画像全体の平均輝度、平均彩度、平均色相やシーン解析結果が格納され、さらに、画像中に存在する人物の顔位置や顔色に関する情報が格納される。
【0044】
3番目のUserInfoタグは、ユーザが画像毎に入力した情報を格納することができるタグであるが、詳細については後述する。
【0045】
なお、画像属性情報のデータベース格納方法については、上記に限定されるものではない。その他公知のどのような形式で格納してもよい。
【0046】
図3のS305では、上述したS302及びS303の処理を行った画像が最後の画像か否かを判定する。最後の画像である場合は、S306へ進み、最後の画像ではない場合は、S302へ戻る。
【0047】
S306において、S303で検出された顔位置情報を用いて、人物毎のグループを生成する処理を行う。あらかじめ人物の顔を自動でグループ化しておくことにより、その後ユーザが各人物に対して名前を付ける作業を効率化することができる。
【0048】
ここでの人物グループ形成は、公知の個人認識方法を用いて、図5の処理フローにより実行する。
【0049】
なお、個人認識処理は、主に、顔の中に存在する眼や口といった器官の特徴量抽出と、それらの関係性の類似度を比較することにより実行される。個人認識処理は、例えば、特許第3469031号等に開示されているので、ここでの詳細な説明は省略する。
【0050】
図5は人物グループ生成処理S306の基本的なフローチャートである。
【0051】
まず、S501で、2次記憶装置に保存されている画像を順次読みだしてデコード処理を行う。さらにS502でデータベース部202にアクセスし、該画像中に含まれる顔の個数と顔の位置情報を取得する。次に、S504において、個人認識処理を行うための正規化顔画像を生成する。
【0052】
ここで正規化顔画像とは、画像内に様々な大きさ、向き、解像度で存在する顔を切り出して、すべて所定の大きさと向きになるよう、変換して切り出した顔画像のことである。個人認識を行うためには、眼や口といった器官の位置が重要となるため、正規化顔画像のサイズは、上記器官が確実に認識できる程度であることが望ましい。このように正規化顔画像を生成することにより、特徴量検出処理において、様々な解像度の顔に対応する必要がなくなる。
【0053】
次に、S505で、正規化顔画像から顔特徴量を算出する。ここでの顔特徴量とは眼や口、鼻といった器官の位置、大きさや、さらには顔の輪郭などを含むことを特徴とする。
【0054】
さらに、S506で、あらかじめ人物の識別子(辞書ID)毎に顔特徴量が格納されているデータベース(以降、顔辞書と呼ぶ)の顔特徴量と類似しているか否かの判定を行う。類似度は、例えば、辞書ID内部で管理されている特徴量と、新たに入力された特徴量を比較して算出する。ここで用いる特徴量は、保持されている目、鼻、口といった器官の位置や、器官間の距離等の情報である。類似度は、上記の特徴量が類似しているほど高く、類似してない場合には低い値を取るものとし、例えば0〜100の値を取り得るものとする。そして、類似しているか否かの判定は、算出した類似度を予め保持されている閾値と比較し、類似度が閾値よりも高い場合には辞書IDと同一人物であると判断する。一方、類似度が閾値よりも低い場合には、同一人物ではないものとして判定する。このような類似度判定のための閾値は、全ての辞書IDに対して固定の値を一つだけ保持するようにいてもよいし、各辞書ID毎に異なった閾値を保持するようにしてもよい。
【0055】
S506の判定がYesの場合S509に進み、同じ人物として同じ人物の辞書IDに該顔の特徴量を追加する。
【0056】
S506の判定がNoの場合S508に進み、現在評価対象となっている顔は、これまで顔辞書に登録された人物とは異なる人物であると判断して、新規辞書IDを発行して顔辞書に追加する。S502〜S509までの処理を、入力画像群の中から検出した顔領域全てに適用して、登場した人物のグループ化を行う。
【0057】
人物グループ生成処理の結果は、図12のXMLフォーマットで示すように、各顔毎にIDタグを用いて記述し、上述したデータベースに保存する。
【0058】
なお、上記実施形態においては、図3に示すように、全ての画像のセンシング処理が終了した後に人物グループ生成処理を実行したが、これ以外の方法としてもよい。例えば、図4に示すように、1つの画像に対してS403でセンシング処理を実行した後に、顔検出位置情報を利用してグループ化処理S405を行うという作業を繰り返したとしても、同様の結果を生成することができる。
【0059】
また、人物グループ生成処理によって得られた各人物グループは、図7のようなUI701にて表示されることになる。同7において、702は人物グループの代表顔画像を表しており、その横には、該人物グループの名前を表示する領域703が存在する。自動の人物グループ化処理を終了した直後は、同図に示すように人物名は「No name1」「No name2」などと表示されている。これらの人物名を以下「人物ID」とする。また、704は該人物グループに含まれる複数の顔画像である。後述するが、図7のUI701においては、「No name X」の領域703を指定して人物名を入力したり、人物毎に誕生日や続柄等の情報を入力することができる。
【0060】
また、上記センシング処理は、オペレーティングシステムのバックグラウンドタスクを利用して実行してもよい。この場合、ユーザはコンピュータ上で別の作業を行っていたとしても、画像群のセンシング処理を継続させることができる。
【0061】
本実施形態においては、ユーザが手動で画像に関する様々な属性情報を入力することもできる。
【0062】
その属性情報(以降、手動登録情報)の例の一覧を、表2に記載する。手動登録情報は大きく、画像単位に設定するものと、上記処理によりグループ処理した人物に設定する情報に分かれる。
【0063】
【表2】
【0064】
まず、画像毎に設定する属性情報として、ユーザのお気に入り度がある。お気に入り度は、その画像を気に入っているかどうかを、ユーザが手動で段階的に入力するものである。例えば、図10(a)に示すように、UI1301上で、所望のサムネイル画像1302をマウスポインタ1303で選択し、右クリックをすることでお気に入り度を入力できるダイアログを表示する。ユーザはメニューの中で自分の好みに応じて、★の数を選択することができる。本実施形態では、お気に入り度が高いほど★の数が多くなるよう設定する。
【0065】
また、上記お気に入り度については、ユーザが手動で設定せずに、自動で設定するようにしてもよい。例えば、ユーザが図8(a)に示す画像サムネイル一覧表示の状態から、所望の画像ファイルをクリックし、1画像表示画面に遷移したとする。その遷移した回数を計測して、回数に応じてお気に入り度を設定してもよい。例えば、閲覧した回数が多いほど、ユーザが該画像を気に入っていると判断する。
【0066】
また、他の例として、プリント回数をお気に入り度に設定してもよい。例えば、プリント行為を行った場合、当然その画像を気に入っていると判断してお気に入り度が高いと設定すればよい。この場合は、プリント回数を計測して、プリント回数に応じてよりお気に入り度を設定する。
【0067】
以上説明したように、お気に入り度については、ユーザが手動で設定してもよく、閲覧回数に応じてお気に入り度を設定してもよく、プリント回数に応じてお気に入り度を設定してもよい。これらの設定及び計測した情報は、それぞれ個別に、図9で示すようなXMLフォーマットで、データベース202のUserInfoタグ内に格納される。例えば、お気に入り度はFavoriteRateタグで、閲覧回数はViewingTimesタグで、プリント回数はPrintingTimesタグにそれぞれ格納される。
【0068】
また、画像毎に設定する別の情報として、イベント情報が挙げられる。イベント情報は、例えば、家族旅行“travel”、卒業式“graduation”、結婚式“wedding”が挙げられる。
【0069】
イベントの指定は、図10(b)に示すように、カレンダー上で所望の日付をマウスポインタ1402などで指定して、その日のイベント名を入力することにより行うことができるようにすればよい。指定されたイベント名は、画像の属性情報の一部として、図9に示すXMLフォーマットに含まれることになる。図9のフォーマットでは、UserInfoタグ内のEventタグを使って、イベント名と画像を紐付けている。なお、以下、「紐づけ」とは、関連付けることを指す。
【0070】
次に、人物の属性情報について説明する。
【0071】
図11は、人物の属性情報を入力するためのUIを示している。図11において、1502は所定人物(この場合は“father”)の代表顔画像を示している。1503は、所定人物の人物名(人物ID)の表示領域である。また、1504は、他の画像の中から検出し、S506で顔特徴量が類似していると判断された画像(サムネイル)である。このように、図11では、人物ID1503の下に、S506で顔特徴量が類似していると判断された画像1504の一覧が表示される。
【0072】
センシング処理が終了した直後は、図7に示すように各人物グループには名前が入力されていないが、「No name」の部分703をマウスポインタで指示することにより、任意の人物名を入力することができる。
【0073】
また、人物毎の属性情報として、それぞれの人物の誕生日やアプリを操作しているユーザから見た続柄を設定することもできる。図11の人物の代表顔1502をクリックすると、画面下部に図示するように、第1の入力部1505ではクリックした人物の誕生日を入力することができる。また、第2の入力部1506では、クリックした人物の続柄情報を入力することができる。
【0074】
以上、入力された人物属性情報は、これまでの画像に関連付けられた属性情報とは異なり、図12のようなXMLフォーマットによって、画像属性情報とは別にデータベース202内で管理される。
【0075】
本実施形態では、あらかじめ用意した様々なレイアウトテンプレートを用いてレイアウト生成処理を行う。レイアウトテンプレートとは図13図15に示すようなものであり、レイアウトする用紙サイズ上に、複数の画像配置領域、言い換えれば、複数の画像配置枠1702,1902,1903(以降、スロットと同義)を備えている。
【0076】
このようなテンプレートは多数用意されており、あらかじめ本実施例を実行するためのソフトウェアが情報処理装置115にインストールされた時点で、2次記憶装置103に保存しておけばよい。また、その他の方法として、IF 107や無線LAN109を介して接続されたインターネット上に存在する外部サーバー114から、任意のテンプレート群を取得してもよい。
【0077】
これらのテンプレートは汎用性の高い構造化言語、例えば上述したセンシング結果の格納と同様にXMLで記載されているものとする。XMLデータの例を図14及び図16に示す。
【0078】
これらの例では、まずBASICタグに、レイアウトページの基本的な情報を記述する。基本的な情報とは、例えば該レイアウトのテーマやページサイズ、およびページの解像度(dpi)等が考えられる。同例Xにおいて、テンプレートの初期状態では、レイアウトテーマであるThemeタグはブランクとなっている。また、基本情報として、ページサイズはA4、解像度は300dpiを設定している。
【0079】
また、ImageSlotタグは、上述した画像配置枠の情報を記述している。ImageSlotタグの中にはIDタグとPOSITIONタグの2つを保持し、画像配置枠のIDと位置を記述している。該位置情報については、図14図16で図示するように、例えば左上を原点とするX−Y座標系において定義される。
【0080】
また、上記ImageSlotは、その他にそれぞれのスロットに対して、スロットの形状および配置すべき推奨人物グループ名を設定する。例えば、図13のテンプレートにおいては、図14のShapeタグで示すように、すべてのスロットは矩形“rectangle”形状で、人物グループ名はPersonGroupタグによって“MainGroup”を配置することを推奨している。
【0081】
また、図15のテンプレートにおいては、図34に示すように、中央に配置しているID=0のスロットは矩形形状であることが記載されている。また、人物グループは“SubGroup”を配置し、その他のID=1,2と続くスロットは楕円“ellipse”形状で、人物グループは“MainGroup”を配置することを推奨している。
【0082】
本実施形態においては、上述したようなテンプレートを多数保持する。
【0083】
本実施形態に係るアプリケーションは、入力された画像群に対して解析処理を実行し、人物を自動的にグループ化してUIで表示することができる。また、ユーザはその結果を見て、人物グループ毎に名前や誕生日などの属性情報を入力したり、画像毎にお気に入り度などを設定することができる。さらに、テーマごとに分類された多数のレイアウトテンプレートを保持することができる。
【0084】
以上の条件を満たす本実施形態のアプリケーションは、ある所定のタイミングで、自動的にユーザに好まれそうなコラージュレイアウトを生成し、ユーザに提示する処理を行う(以下、レイアウトの提案処理という)。
【0085】
以上の条件を満たすと、本実施例のアプリケーションは、ある所定のタイミングに、自動的にユーザに好まれそうなコラージュレイアウトを生成し、ユーザに提示する処理を行う。これを、レイアウトの提案処理と呼ぶこととする。
【0086】
図6は、レイアウトの提案処理を行うための基本的なフローチャートを示している。
【0087】
まず、S601において、レイアウトの提案処理のシナリオを決定する。シナリオには、提案するレイアウトのテーマ及びテンプレートの決定、レイアウト内で重視する人物(主人公)の設定、レイアウト生成に用いる画像群の選定情報などが含まれる。
【0088】
以下では、2つのシナリオを例示して、シナリオの決定方法について説明する。
【0089】
例えば、2週間前に自動的に各人物に関する誕生日のレイアウトの提案処理を行う設定がされていたとする。図11で自動グループ化されている人物“son”の1歳の誕生日が近いとする。この場合には、提案するレイアウトのテーマは成長記録“growth”と決定する。次にテンプレートの選択を行うが、この場合には成長記録に適した図15のようなものを選択し、図22に示すように、XMLのThemeタグの部分に“growth”と記載する。次にレイアウトを行う際に注目する主人公“MainGroup”として、“son”を設定する。また、レイアウトを行う際に副次的に注目する“SubGroup”として“son”と“father”を設定する。次に、レイアウトに利用するための画像群を選定する。この例の場合には、データベースを参照し、上記人物“son”の誕生日からこれまでに撮影した画像群のうち、“son”を含む画像群を大量に抽出してリスト化する。以上が、成長記録レイアウトのためのシナリオ決定である。
【0090】
上記とは異なる例として、1カ月以内に所定のイベント情報が登録されていた場合、レイアウトの提案処理を実行する設定がされているとする。図10(b)で登録したイベント情報から、例えば数日前に家族旅行に行きその画像が大量に2次記憶装置に保存されていることがわかると、シナリオ決定部は、家族旅行のレイアウトを提案するためのシナリオを決定する。この場合には、提案するレイアウトのテーマは旅行“travel”と決定する。次にテンプレートの選択を行うが、この場合には図13のようなレイアウトを選択し、図36に示すように、XMLのThemeタグの部分に“travel”と記載する。次にレイアウトを行う際に注目する主人公“MainGroup”として、“son”、“mother”、“father”を設定する。このように、XMLの特性を活かせば、“MainGroup”として複数の人物を設定することができる。次に、レイアウトに利用するための画像群を選定する。この例の場合には、データベースを参照し、上記旅行イベントに紐付けられた画像群を大量に抽出してリスト化する。以上が、家族旅行レイアウトのためのシナリオ決定である。
【0091】
次に、図6のS603において、上述したシナリオに基づくレイアウトの自動生成処理を実行する。図17はレイアウト処理部の詳細な処理フローを示している。以降は、同図に沿って、各処理ステップの説明を行う。
【0092】
まず、S2101で、上述したシナリオ生成処理で決定され、テーマと人物グループ情報が設定された後のテンプレート情報を取得する。
【0093】
次に、S2103においては、上記シナリオで決定した画像リストに基づいて、各画像毎に該画像の特徴量をデータベースから取得し、画像群属性情報リストを生成する。ここでいう画像群情報リストとは、図9に示したIMAGEINFOタグが画像リスト分だけ並んだ構成となっている。
【0094】
このように、本実施形態の自動レイアウト生成処理では、このように画像データそのものを直接扱うのではなく、あらかじめ画像毎にセンシング処理を行ってデータベース保存しておいた属性情報を利用する。レイアウト生成処理を行う際に、画像データそのものを対象としてしまうと、画像群を記憶するために非常に巨大なメモリ領域を必要としてしまうことを避けるためである。すなわち、これにより、レイアウト生成処理で必要なメモリ量を低減させることができる。
【0095】
具体的には、まず、S2105において、入力された画像群の属性情報を用いて、入力された画像群の中から不要画像のフィルタリングを行う。フィルタリング処理は、図18のフローにて行う。図18では、各画像毎に、まずS2201で全体の平均輝度がある閾値(ThY_LowとThY_Hight)内に含まれているかの判定を行う。否の場合にはS2206に進み、注目画像はレイアウト対象から除去する。
【0096】
同様に、S2202〜S2205では、注目画像に含まれる顔領域それぞれについて、平均輝度、平均色差成分が、良好な肌色領域を示す所定閾値に含まれているかの判定を行う。S2202〜S2205のすべての判定がYesとなる画像のみ、以降のレイアウト生成処理に適用される。具体的には、S2202では、ID=Nである顔領域のAveYが所定閾値(ThfY_LowとThfY_Hight)の範囲に含まれているか否かの判定を行う。S2203では、ID=Nである顔領域のAveChが所定閾値(ThfY_LowとThfY_Hight)の範囲に含まれているか否かの判定を行う。S2204では、ID=Nである顔領域のAveCrが所定閾値(ThfY_LowとThfY_Hight)の範囲に含まれているか否かの判定を行う。S2205では、最後の顔であるか否かを判定する。最後の顔ではない場合は、S2202へ戻り、最後の顔である場合は、処理を終了する。
【0097】
なお、このフィルタリング処理では、以降の一時レイアウト作成処理に明らかに不要と判断できる画像の除去を目的としているため、上記閾値は比較的湯緩やかに設定することが望ましい。例えばS2201の画像全体輝度の判定において、ThY_HighとThY_Lowの差が画像ダイナミックレンジに比して極端に小さいと、それだけYesと判定される画像が少なくなってしまう。本実施形態のフィルタリング処理ではそうならないよう、両者の差をできる限り広く設定し、かつ明らかに異常画像と判断されるものは除去できるような閾値に設定する。
【0098】
次に図17のS2107において、上記処理でレイアウト対象となった画像群を用いて、大量(L個)の一時レイアウトを生成する。一時レイアウトの生成は、取得したテンプレートの画像配置枠に対して、入力画像を任意に当てはめる処理を繰り返す。このときに、例えば、以下のパラメータ(画像選択・配置・トリミング)をランダムで決定する。
【0099】
画像選択基準としては、例えば、レイアウト中の画像配置枠がN個の時、画像群の中からどの画像を選択するかが挙げられる。配置基準としては、例えば、選択した複数の画像を、どの配置枠に配置するかが挙げられる。トリミング基準としては、配置した際に、どの程度のトリミング処理を行うかというトリミング率が挙げられる。トリミング率は例えば0〜100%で表わされ、トリミングは、図19(a)に示すように、画像の中心を基準として所定のトリミング率で行われる。図19(a)では、2301は画像全体を示し、2302はトリミング率50%でトリミングした際の切り取り枠を示している。
【0100】
上述したような画像選択・配置・トリミング基準に基づいて、可能な限り数多くの一時レイアウトを生成する。生成した各一時レイアウトは、図37のXMLのように表わすことができる。各スロットに対して、選択され配置された画像のIDがImageIDタグに記述され、トリミング率がTrimingRatioタグに記述される。
【0101】
なお、ここで生成する一時レイアウトの数Lは、後述するレイアウト評価ステップでの評価処理の処理量と、それを処理する情報処理装置115の性能に応じて決定されるが、例えば、数十万通り以上の一時レイアウトを生成するのが好ましい。
【0102】
レイアウト評価ステップでの評価処理の処理量は、作成するレイアウトテンプレートの複雑度合いに応じて増減する。例えば、テンプレート内で取り扱うスロット数が多いほど評価処理量は増加し、また、各スロットに指定されたレイアウト条件が複雑であるほど評価処理量は増加する。したがって、生成しようとしているテンプレートの複雑度合をあらかじめ見積もって、それにより動的にLを決定してもよい。
【0103】
以上述べたように適切にLを設定することで、自動レイアウト作成時のレスポンスとレイアウト結果の品質を最適にコントロールできる。
【0104】
生成したレイアウトは、それぞれIDを付加して図24のXML形式で2次記憶装置103にファイル保存してもよいし、構造体など別のデータ構造を用いてRAM102上に記憶してもよい。
【0105】
次に、図17のS2108において、大量に生成した一時レイアウトの定量評価を行う。具体的には、作成したL個の一時レイアウトに対して、それぞれ所定のレイアウト評価量を用いて評価を行う。本実施形態におけるレイアウト評価量の一覧を、表3に示す。表3に示すように、本実施形態で用いるレイアウト評価量は、主に3つのカテゴリに分けることができる。
【0106】
【表3】
【0107】
一つ目は、画像個別の評価量である。これは画像の明るさや彩度、ブレぼけ量等の状態を判断し、スコア化するものである。以下、本実施形態のスコア化の一例について説明する。明るさの適正度は、図19(b)に示すように、平均輝度がある所定レンジ範囲内においてはスコア値100とし、所定レンジ範囲から外れるとスコア値を下げるよう設定する。彩度の適正度は、図19(c)に示すように、画像全体の平均彩度がある所定の彩度値より大きい場合にはスコア値100とし、所定値より小さい場合にはスコア値を除々に下げるように設定する。
【0108】
二つ目は、画像とスロットの適合度の評価である。画像とスロットの適合度の評価としては、例えば、人物適合度、トリミング欠け判定が挙げられる。人物適合度は、スロットに指定されている人物と、実際に該スロットに配置された画像内に存在する人物の適合率を表したものである。例を挙げると、あるスロットが、XMLで指定されているPersonGroupで、“father”、“son”が指定されているものとする。この時、該スロットに割り当てられた画像に該2人の人物が写っていたとすると、該スロットの人物適合度はスコア値100とする。片方の人物しか写っていなかったとすると、適合度はスコア値50とし、両者とも写っていなかった場合は、スコア値0とする。ページ内の適合度は、各スロット毎に算出した適合度の平均値とする。トリミング領域2702の欠け判定は、例えば、図20に示すように、画像中に存在する顔の位置2703が判明している場合、欠けた部分の面積に応じて、0から100までのスコア値を算出する。欠けた面積が0の場合、スコアは100とし、逆にすべての顔領域が欠けた場合、スコア値は0とする。
【0109】
三つめは、レイアウトページ内のバランスを評価である。バランスを評価するための評価値としては、例えば、画像類似性、画素値分布のばらつき、オブジェクトのばらつきが挙げられる。
【0110】
レイアウト頁内のバランスを評価するための評価量として、画像類似性について説明する。画像の類似性は、大量に生成した一時レイアウト毎に算出されるレイアウト頁内のそれぞれの画像の類似性である。例えば、旅行テーマのレイアウトを作成したい場合、あまりに似通った類似度の高い画像ばかりが並んでいたとすると、それは良いレイアウトとは言えない場合がある。したがって、例えば、類似性は、撮影日時によって評価することができる。撮影日時が近い画像は、同じような場所で撮影された可能性が高いが、撮影日時が離れていれば、その分、場所もシーンも異なる可能性が高いからである。撮影日時は、図9で示したように、画像属性情報として、予めデータベース202に保存されている、画像毎の属性情報から取得することができる。撮影日時から類似度を求めるには以下のような計算を行う。例えば、今注目している一時レイアウトに表4で示すような4つの画像がレイアウトされているものとする。
【0111】
なお、画像IDで特定される画像には、それぞれ撮影日時情報が付加されている。具体的には、撮影日時として、年月日及び時間(西暦:YYYY、月:MM、日:DD、時:HH、分:MM、秒:SS)が付加されている。このとき、この4つの画像間で、撮影時間間隔が最も短くなる値を算出する。
【0112】
【表4】
【0113】
この場合は、画像ID102と108間の30分が最も短い間隔である。この間隔をMinIntervalとし、秒単位で格納する。すわなち30分=1800秒である。このMinIntervalをL個の各一時レイアウト毎に算出して配列stMinInterval[l]に格納する。次に、該stMinInterval[l]の中で最大値MaxMinInterval値を求める。すると、l番目の一時レイアウトの類似度評価値Similarity[l]は以下のようにして求めることができる。
Similarity[l]=100×stMinInterval[l]/MaxMinInterval
すなわち、上記Similarity[l]は、最小撮影時間間隔が大きいほど100に近づき、小さいほど0に近づく値となっているため、画像類似度評価値として有効である。
【0114】
レイアウト頁内のバランスを評価するための評価量として、画素値分布のばらつきについて説明する。ここでは、画素値分布のばらつきとして、色合いのバラつきを例に挙げて説明する。例えば旅行テーマのレイアウトを作成したい場合、あまりに似通った色(例えば、青空の青、山の緑)の画像ばかりが並んでいたとすると、それは良いレイアウトとは言えない場合がある。この場合は、色のばらつきの大きいものを高い評価とする。注目しているl番目の一時レイアウト内に存在する画像の平均色相AveHの分散を算出して、それを色合いのバラつき度tmpColorVariance[l]として格納する。次に、tmpColorVariance[l]の中での最大値MaxColorVariance値を求める。すると、l番目の一時レイアウトの色合いバラつき度の評価値ColorVariance[l]は以下のようにして求めることができる。
ColorVariance[l]=100×tmpColorVariance[l]/MaxColorVariance
上記ColorVariance[l]は、ページ内に配置された画像の平均色相のバラつきが大きいほど100に近づき、小さいほど0に近づく値となる。したがって、色合いのばらつき度評価値として用いることができる。
【0115】
画素値分布のばらつきは、上述したものに限定されるものではない。
【0116】
レイアウト頁内のバランスを評価するための評価量として、オブジェクトのバラつきについて説明する。ここでは、オブジェクトのバラつきとして、顔の大きさのバラつきを例に挙げて説明する。例えば、旅行テーマのレイアウトを作成したい場合、レイアウト結果を見て、あまりに似通った顔のサイズの画像ばかりが並んでいたとすると、それは良いレイアウトとは言えない場合がある。レイアウト後の紙面上における顔の大きさが、小さいものもあれば大きいものもあり、それらがバランスよく配置されていることが、良いレイアウトと考える。この場合は、顔のサイズのばらつきの大きいものを高い評価とする。注目しているl番目の一時レイアウト内に配置された後の顔の大きさ(顔位置の左上から右下までの対角線の距離)の分散値を、tmpFaceVariance[l]として格納する。次に、該tmpFaceVariance[l]の中での最大値MaxFaceVariance値を求める。すると、l番目の一時レイアウトの顔サイズバラつき度の評価値FaceVariance[l]は、以下のようにして求めることができる。
FaceVariance[l]=100×tmpFaceVariance[l]/MaxFaceVariance
上記FaceVariance[l]は、紙面上に配置された顔サイズのバラつきが大きいほど100に近づき、小さいほど0に近づく値となる。したがって、顔サイズのバラつき度評価値として用いることができる。
【0117】
オブジェクトのバラつきは、上述したものに限定されるものではない。
【0118】
またその他カテゴリとして、ユーザーの嗜好性評価が挙げられる。
【0119】
例えば、上記に述べた各種の評価量による評価値が低いレイアウトであっても、ユーザが個人的に気に入った写真が含まれるレイアウトであれば、そのユーザにとっては良いレイアウトとなる場合もある。そのようなレイアウトの選択を阻害しないよう、ユーザ嗜好性を元にした評価量を用いて評価するのが好ましい。
【0120】
上述したように、ユーザは各画像に対して事前にお気に入り度を設定することができるため、これに基づいて嗜好性を評価することができる。また、例えば、自動で閲覧回数や閲覧時間に基づいて嗜好性を評価することもできる。これらの評価に用いる情報は、FavorteRateタグ、ViewingTimesタグ、PrintingTimesタグで管理されている情報をもとにして算出できる。
【0121】
1番目の一時レイアウトについて、各スロットに配置された画像のタグ情報の各々の数値について全ての画像の平均値FavorteRateAve[l]、ViewingTimesAve[l]、PrintingTimesAve[l]を求める。
【0122】
次に、これらの総和を取ることで、ユーザの嗜好性評価値UserFavor[l]は、以下のようにして求めることができる。
UserFavor[l]=FavorteRateAve[l]+ViewingTimesAve[l]+PrintingTimesAve[l]
上記UserFavor[l]は、ユーザのお気に入り度が高い画像、閲覧回数が多い画像、印刷回数の多い画像を用いたレイアウトほど高い値を示す。したがって、本実施形態では、UserFavor[l]の値が高いほどレイアウトに対するユーザ嗜好性が高いと判断する。
【0123】
以上説明したような、各一時レイアウト毎に算出した複数の評価値を、以下では統合化して、各一時レイアウト毎のレイアウト評価値とする。1番目の一時レイアウトの統合評価値を、EvalLayout[l]とし、上記で算出したN個の評価値(表3の評価値それぞれを含む)の値を、EvalValue[n]とする。このとき、統合評価値は以下で求めることができる。
【0124】
【数2】
【0125】
上式において、W[n]は、表3で示したシーン毎の各評価値の重みである。この重みはレイアウトのテーマ毎に異なる重みを設定する。例えば、表3に示すようにテーマを成長記録“growth”と旅行“travel”で比較した場合、旅行テーマの方は、できるだけ良質の写真をいろいろな場面で数多くレイアウトすることが望ましい場合が多い。このため、画像の個別評価値やページ内のバランス評価値を重視する傾向に設定する。一方、成長記録“growth”の場合、画像のバリエーションよりは、成長記録の対象となる主人公が確実にスロットに適合しているか否かが重要である場合が多い。このため、ページ内バランスや画像個別評価よりも、画像・スロット適合度評価を重視する傾向に設定する。なお、本実施形態におけるテーマ毎の重要度は表3に示すように設定した。
【0126】
このようにして算出したEvalLayout[l]を用いて、S2109では、レイアウト結果表示のためのレイアウトリストLayoutList[k]を生成する。レイアウトリストは、予め定められた個数(例えば5個)に対して、EvalLayout[l]のうち、評価値が高いもの順に識別子lを記憶しておく。例えば最も良いスコアを出したものが、l=50番目に作成した一時レイアウトであった場合、LayoutList[0]=50となる。同様に、LayoutList[1]以降は、スコア値が2番目以降の識別子lを記憶しておく。
【0127】
図6に戻って、上記処理によって得られたレイアウト結果を、図6のS605でレンダリングした結果を図21のように表示する。S605では、まずLayoutList[0]に格納されているレイアウト識別子を読み出し、識別子に相当する一時レイアウト結果を、2次記憶装置103あるいはRAM102上から読み出す。レイアウト結果には、上述したようにテンプレート情報とテンプレート内に存在するスロット毎に、割り当てられた画像名が設定されている。したがって、これらの情報に基づいて、情報処理装置115上で動作するOSの描画関数を用いて、該レイアウト結果をレンダリングし、図21の2902のように表示することになる。
【0128】
図21では、Nextボタン2904を押下することにより、次点スコアであるLayoutList[1]の識別子を読み出し、上記と同様にレンダリング後、表示を行う。これにより、ユーザは様々なバリエーションの提案レイアウトを閲覧することができる。また、Previousボタン2903を押下することにより、前に表示したレイアウトを再表示することができる。さらに、表示されたレイアウトが気に入った場合には、プリントボタン2905を押下することで、情報処理装置115に接続されたプリンタ112からレイアウト結果2902をプリントアウトすることができる。
【0129】
本実施形態では、ユーザが用意した画像群を用いて、画像群のから選択する画像をさまざまに変化させたレイアウト候補(一時レイアウト)を大量に作成している。これらのレイアウト候補の作成においては、事前に選択条件を細かく制限しないため、画像群のもつ特徴を生かしたレイアウト配置結果を得ることができる。例えば、風景が多めの旅行の画像群であれば、作成されるレイアウト候補も風景が多めの選択となり、また、特定の人物が頻繁に登場するイベントの画像群であれば、それらの人物がレイアウト候補に登場しやすくなる。
【0130】
さらに、本実施形態では、上述したように作成されたレイアウト候補に対して、配置された画像それぞれの特徴量や、配置された画像間のバランスなどを総合的に評価して、所定数のレイアウトリスト(最終レイアウト)を選択する。言い換えれば、本実施形態では、作成されたレイアウト候補について、画像の個別評価と、ページ内全体の評価とを総合的に評価を行い、レイアウト候補の中から好適なレイアウトリストを選択している。したがって、レイアウト成果物として全体整合のとれた良質なレイアウトを選択することができる。
【0131】
以下、本実施形態の効果についてより詳細に説明する。本実施形態では、単一の観点やレイアウト指示に縛られて生成したレイアウトと比較して、レイアウト全体のバランスや整合のとれたものが選択されやすい。単一の観点やレイアウト指示に縛られてレイアウトを生成した場合、単一の観点やレイアウト指示から外れるレイアウトについては一切生成できないためである。
【0132】
通常、撮影者によって撮影後の画像群のとりうる特徴は大きく異なる。例えば、同じ「家族旅行」の画像群をとっても、祖父母を含む8人の比較的大人数の家族によるものと、4人家族によるものでは、撮影枚数、被写体の人数分布などは異なってくる。テンプレートを用いてレイアウトを生成する場合、4人家族をターゲットに据えて作成したテンプレートに対しては、8人家族による画像群を与えても、良好なレイアウト結果が得られない可能性がある。詳細に説明すると、テンプレートに「ここに集合写真を配置せよ」という旨の指示があったとする。これは、4人の集合写真の配置箇所としては適切な位置/大きさだが、8人の集合写真を配置すると各々の顔が小さく配置されて識別できなくなる可能性がある。
【0133】
また、テンプレートを用いてレイアウトを生成する場合、テンプレート作成時には、テンプレートの指示条件を満たす画像群が十分に存在しているものと想定しているが、実際に入力される画像群がそれを満たしているとは限らない。テンプレートの想定から大きく外れた画像群が入力された場合であっても、何らかの画像配置を決定する必要があり、例えば、画像群から無作為に画像選別して配置することがある。この場合、安定して満足いく仕上がりのレイアウトを得ることができない。
【0134】
これに対し、本実施形態では、予め定められたテンプレートに合致する画像群を抽出してレイアウトを作成する方法とは異なり、画像群の選択時に細かい条件を設定していない。このため、画像群の特徴に応じて、レイアウトを作成することができる。そして、様々なパターンのレイアウトを作成した後に、画像の個別評価とページ内全体の評価とを総合的に評価を行い、レイアウト候補の中から好適なレイアウトリストを選択している。したがって、レイアウト成果物として全体整合のとれた良質なレイアウトを選択することができる。
【0135】
また、本実施形態によれば、あらゆる画像群に合わせてテンプレートを大量に用意する必要がないため、レイアウトの生成の負荷やテンプレートを保持するコストを低減することができる。
【0136】
以上より、本実施形態によれば、画像群の特徴を生かしつつ、レイアウト成果物として全体整合のとれた良質なレイアウト結果を得ることができる。そして、公知のレイアウトの生成方法では、作成することができないような、好適なレイアウト結果を得られる可能性が向上する。
【0137】
(実施形態2)
本実施形態では、レイアウト候補の作成方法以外は実施形態1と同様であるので、重複する説明は省略する。
【0138】
なお、実施形態1では、一度に数多くの一時レイアウトを作り、それぞれの評価値を求めて最適なレイアウト候補を選択した。すなわち、実施形態1では、ランダムにレイアウト候補を出して評価を行ったが、本実施形態では、はじめにいくつかのレイアウト候補を作成し、その評価結果をフィードバックしてよりよいレイアウト候補を作成する。
【0139】
本実施形態では、例えば、いくつかのレイアウト候補から評価の良いものの特性を掛け合わせて新たなレイアウト候補とする「遺伝的アルゴリズム」を用いて、組み合わせの最適化を行う。
【0140】
具体的には、まず1000種類のレイアウトを「第一世代」として作成し、レイアウト結果を評価する。次に、その評価結果を元に、成績の良いレイアウト同士の特徴を掛け合わせて「第二世代」のレイアウトを作成する。レイアウト同士の特徴を掛け合わせる方法は、特に限定されないが、例えば、単純に、成績の良いレイアウトで選択されている画像群を優先的に再選択してレイアウトを作成する方法が挙げられる。具体的には、「第一世代」のレイアウトにおいて「A,B,C,D,E」の5画像を選択したレイアウトXと、「G,H,I,J,k」の5画像を選択したレイアウトYが好成績だったとする。この場合、「第二世代」としてはレイアウトXとYで選択されている画像群を用いて、たとえば「A,B,C,G,H」を選択したレイアウトを作成する。
【0141】
また、かけ合わせの際には一定の確率で、成績の良いレイアウトに無関係の要素を入れることで、「突然変異」を起こさせてもよい。これによって、次世代以降のレイアウトが局所解に陥ることを防止できる。例えば、前述と同様に「第一世代」のうちレイアウトXとYから「第二世代」を作成する場合について説明する。この場合、XとYのかけ合わせの際に、レイアウトXとYのどちらにも含まれない画像Nを混ぜ合わせ、「A,B,G,H,N」を選択したレイアウトを作成する。
【0142】
「第三世代」以降のレイアウトも同様に作成することで、世代交代を進めることで、よりよいレイアウトが得られるようになる。
【0143】
上述した方法によれば、ランダムに10万種類のレイアウトを作成するのと同程度のレイアウト評価回数によって、100世代の世代交代を進めることができる。本実施形態では、100世代目のレイアウト結果から好成績なレイアウトを選出して、最終的なレイアウト候補とした。
【0144】
上述した方法によりレイアウト作成を行うと、ランダムに10万種類のレイアウトを作成するよりも、素性の良いレイアウトを数多く作成できる可能性が高くなり、結果として最適レイアウトに近いレイアウト結果に到達できる可能性も高まる。
【0145】
なお、本実施例では1000種類のレイアウトを100世代に渡って進化させることを例示したが、一つの世代としてどの程度のバリエーションのレイアウトを作成するのが最も効率がよいかは、レイアウトの取りうる組み合わせの自由度に依存する。
【0146】
ここで、組み合わせの自由度について説目見する。組み合わせの自由度は、大別してテンプレートの特性と配置候補画像群の特性から決まる。
【0147】
テンプレートの特性としては、例えば、スロット数、配置条件等が挙げられる。テンプレートの持つスロット数が多い場合には、同じ画像群の配置であっても配置スロットの組み合わせ分のバリエーションが発生する。例えば、3スロットのテンプレートに対して、「A、B,C」の3枚の画像を配置する組み合わせは3!(3の階乗)=6通りである。また、4スロットのテンプレートに対して、「A、B、C,D,E」の4枚の画像を配置する組み合わせは、4!(4の階乗)=24通りである。同様に、nスロットのテンプレートに対してはn!(nの階乗)通りのバリエーションが考えられる。このように、スロット数が多くなればなるほど組み合わせの自由度は増大する。また、テンプレートの持つスロット数が同じであっても、各スロットに指定されている配置条件の自由度が高ければ高いほど、テンプレート自体に合致する画像の自由度は増大する。
【0148】
配置候補画像群の特性としては、例えば、画像数、各画像のセンシング結果の取り得る値が挙げられる。画像数は、多ければ多いほど選び得る画像の組み合わせが増大する。また、画像数が同じであっても、各々の画像のセンシング結果の取る値がばらついていればいるほど、選んだ画像の組み合わせによって算出されるレイアウト評価量の変化幅が大きくなることが期待される。つまり、配置候補画像群における画像間のバリエーションの幅が、そのままレイアウトバリエーションのとり得る自由度に影響する。
【0149】
したがって、スロット数とレイアウト配置候補画像数が多い場合には、例えば、最初の世代ではある程度大規模にレイアウト候補を試作して、好ましいレイアウトの傾向を探った上で、徐々にレイアウト候補数を減らすようにすればよい。
【0150】
任意の自由度をもった組み合わせを最適化するために、遺伝的アルゴリズムを適用する場合、各世代の作成数をどのように設定すれば効率がよいかについては、公知の手法を適宜組み合わせて用いることができる。
【0151】
また、本実施形態では、組み合わせを最適化するために遺伝的アルゴリズムを用いたが、これに限定されるものではない。組み合わせ最適化に有効とされる公知の方法を適用することにより、限られた試行回数でより好適なレイアウト結果を生成することができる。なお、レイアウトの良し悪しを評価する際の評価関数としては実施形態1で説明したものと同様のものを用いることができる。すなわち、様々な観点からの評価結果を総合評価するものを用いるのが好ましい。これにより、実施形態1と同様に好適なレイアウトを選別できる。
【0152】
このようなフィードバック評価を繰り返すことで、効率よく適正なレイアウトを生成できる。
【0153】
(他の実施形態)
以上説明した実施例は本発明の効果を得るための一手段であり、類似の別手法を用いたり、異なるパラメータを用いたとしても、本発明と同等の効果が得られる場合は、本発明の範疇に含まれる。
【0154】
また、上述した実施形態では、オブジェクトとして人物を例に挙げて説明したが、オブジェクトは人物とは限らない。犬や猫などのペットの認識処理を行ってこれらを認識することにより、オブジェクトとしてペットを設定することができる。また、エッジ検出などの形を認識処理によれば、建物や小物なども認識できるため、オブジェクトとして、建物や小物などを設定することができる。これらの場合、オブジェクトの特徴量を抽出して、辞書登録すれば、上述した実施形態と同様の方法により、画像処理を行うことができる。
【0155】
上述した実施形態では、画像間の適合度を数値により求めて画像間の適合性を評価したが、画像間の適合性の評価はこれに限定されるものではない。
【0156】
上述した実施形態では、レイアウト出力物として、1ページに複数の画像を配置した出力物を生成する例を挙げて説明したが、本発明は、複数ページのアルバム出力にも適用することができる。
【0157】
上述した実施形態は、以下の処理を実行することによっても実現される。すなわち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPUやMPU等)がプログラムを読み出して実行する処理である。また、プログラムは、1つのコンピュータで実行させても、複数のコンピュータを連動させて実行させるようにしてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、一部又は全部をハードウェアによって実現するようにしてもよい。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24