以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
[第1実施形態]
本実施形態では、情報処理装置上で、アルバム作成アプリケーションを動作させ、自動レイアウトを生成するまでの手順について説明する。以下に説明する画像とは、特に断りが無い限り、静止画、動画、動画中のフレーム画像、また、SNS(ソーシャル・ネットワーキング・サービス)上の静止画と動画と動画中のフレーム画像を含む。
<ハードウェア構成>
図1は、本実施形態における情報処理装置100のハードウェア構成を説明するブロック図である。なお、情報処理装置としては、例えば、PC、スマートフォン、タブレット端末、カメラ、プリンタ等が挙げられ、本実施形態ではPCとする。
図1において、CPU(中央演算装置/プロセッサー)101は、本実施形態で説明する制御方法をプログラムに従って実行する処理部である。図中のCPUは1つであるが、複数ある場合も本実施形態ではCPUの一部として表す。ROM102は、汎用的なROMであり、例えば、CPU101により実行されるプログラムが記憶されている。RAM103は、汎用的なRAMであり、例えば、CPU101によるプログラムの実行時に、各種情報を一時的に記憶するためのメモリを提供している。HDD(ハードディスク)104は、静止画ファイルや動画ファイルや画像解析などの処理結果を保持するデータベースなどを記憶するための記憶媒体である。ROM102、RAM103、HDD104は記憶部を構成する。
ディスプレイ105は、本実施形態のUI(ユーザインタフェース)や画像のレイアウト結果をユーザーに提示する装置であり、表示部を構成する。ディスプレイ105はタッチセンサー機能を備えても良い。キーボード106は、ディスプレイ105に表示されたUI上に、作成したいアルバムの見開き数等の入力をユーザーから受け付ける。ポインティングデバイス107はディスプレイ105上の座標を指示するためのデバイスであり、例えば、ディスプレイ105に表示されたUI上のボタンをクリックするために使用される。キーボード106、ポインティングデバイス107は入力部であり、ディスプレイ105とあわせてユーザインタフェースを構成する。
データ通信部108は、自動レイアウトの対象となるデータをPCに接続された不図示のプリンタやサーバーに送信する。また、データ通信部108は、不図示のサーバーやSNS上の静止画や動画を受信する。データバス109は上記の各部とCPU101とを相互に通信可能に接続する。本実施形態におけるアルバム作成アプリケーションはHDD104に保存され、後述するようにユーザーがディスプレイ105に表示されているアプリケーションのアイコンをポインティングデバイス107によりダブルクリックして起動する。
<自動レイアウト処理部>
図2は、アルバム作成アプリケーションの自動レイアウト処理部216に関するソフトウェアブロック図である。アルバム作成アプリケーションは様々な機能を持つが、本実施形態では、自動レイアウト処理部216により提供される自動レイアウト機能に関して説明する。自動レイアウト機能は、撮影された静止画や動画をその内容や属性に基づいて分類及び選択した画像データを予め用意されたテンプレートにレイアウトし、ディスプレイ105に表示するための機能である。
図2において、条件指定部201は、入力部、例えばポインティングデバイス107による後述のUI操作に応じたアルバム作成条件の指定を受付け、自動レイアウト処理部216に出力する。指定される条件には、例えば処理の対象となる画像データや主人公のID、アルバムの見開き数、テンプレート情報、画像補正のON/OFF条件、動画使用のON/OFF条件等の指定が含まれる。画像データの指定は、例えば、撮影日時など個別の画像データの付随情報や属性情報による指定であってもよいし、デバイスやディレクトリ(フォルダ)の指定など、画像データを含むファイルシステムの構造に基づく指定であってもよい。なお、見開きとは、例えば表示においては一つの表示用ウィンドウに相当し、印刷においては、異なるシート(又はページ)に印刷された、互いに隣接する1対のページに相当する。
画像取得部202は、条件指定部201から指定された画像データ群をHDD104またはデータ通信部108を介してネットワーク上のサーバーやSNSから取得する。画像変換部203は、以降の処理に使う画像データを所望の画素数や色情報に変換する。本実施形態では、短辺の画素数として420画素を持ち、sRGBの色情報の解析画像データ(以下、解析画像データと呼ぶ)に変換する。画像解析部204は、解析画像データから後述の特徴量取得、顔検出、表情認識、個人認識等の処理を実行する。また、画像解析部204は、HDD104またはデータ通信部108を介してサーバーから取得した画像データに付随したデータ、例えばExif情報から撮影日時を取得する。撮影日時として、Exif情報からの取得に限らず、画像データを作成または更新した日時が用いられてもよい。また、サーバーやSNSに画像データをアップロードまたはサーバーやSNSから画像データをダウンロードした日時が用いられてもよい。これらの日時も、以下では撮影日時情報として取り扱う。
画像分類部205は、画像データ群に対して、撮影日時情報や枚数、検出した顔情報を使って後述のシーン分割、シーン分類を実行する。シーンとは、「旅行」や「日常」、「結婚式」等の撮影シーンのことである。シーンとは、例えば、一時期の撮影機会に撮影された画像データの集まりであるともいえる。画像得点部207は、各画像データに対して、レイアウトに適した画像データが高得点になるように得点付けをする。後述するが、得点付けの際は、画像解析部204からの情報と、画像分類部205からの情報とが用いられる。また、他の情報を付加的に或いは代替的に用いるようにしてもよい。
主人公情報入力部206は、条件指定部201から入力された主人公のID(識別情報)を画像得点部207に入力する。画像得点部207は、主人公情報入力部206から入力された主人公IDが含まれる画像データについてより高い得点を付加するように構成されている。
見開き割当部209は、画像データ群を分割(グルーピング)して各見開きに割り当てる。見開き数入力部208は、条件指定部201から入力されたアルバムの見開き数を見開き割当部209に入力する。見開き割当部209は、入力された見開き数に応じて画像データ群を分割して、各見開きに画像データ群の一部(分割分)を割り当てる。画像選択部210は、見開き割当部209で各見開きに割り当てられた画像データ群の一部から、画像得点部207で付与された得点に基づいて選択する。
画像レイアウト部212は、画像データのレイアウトを決定する。テンプレート入力部211は、条件指定部201から入力されたテンプレート情報に応じた複数のテンプレートを画像レイアウト部212に入力する。画像レイアウト部212は、画像選択部210で選択された画像データに適したテンプレートを、テンプレート入力部211から入力された複数のテンプレートから選択し、画像データのレイアウトを決定する。レイアウト情報出力部215は、画像レイアウト部212が決定した画像データのレイアウトに従って、ディスプレイ105に表示する為のレイアウト情報を出力する。レイアウト情報は、例えば、選択されたテンプレートに画像選択部210により選択された画像データをレイアウトしたビットマップデータである。
画像補正部214は、覆い焼き補正(輝度補正)、赤目補正、コントラスト補正等の各補正処理を実行する。補正条件入力部213は、条件指定部201から入力された画像補正のON/OFF条件を画像補正部214に入力する。画像補正のON/OFFは、補正処理の種類ごとに指定されてもよいし、全ての種類についてまとめて指定されてもよい。画像補正部214は、画像補正条件がONの場合は、画像データに対して補正処理を実行し、画像補正条件がOFFの場合は、補正処理を実行しない。尚、画像補正部214は、画像変換部203から入力された画像データに対して、画像補正のON/OFFに従って補正処理を実行する。画像変換部203から画像補正部214に入力する画像データの画素数は、画像レイアウト部212で決定したレイアウトのサイズに合わせて変更可能である。レイアウト情報出力部215から出力される画像データは、例えば図3に示すような形式でディスプレイ105に表示される設定画面により設定される。
<ユーザー操作>
本実施形態のアルバム作成アプリケーションが情報処理装置100にインストールされると、情報処理装置100上で動作するOS(オペレーティングシステム)のトップ画面(デスクトップ)上に起動アイコンが表示される。ユーザーがディスプレイ105に表示されているデスクトップ上の起動アイコンをポインティングデバイス107でダブルクリックすると、HDD104に保存されているアルバム作成アプリケーションのプログラムがRAM103にロードされる。そして、RAM103のプログラムがCPU101によって実行されて、アルバム作成アプリケーションが起動する。なお、プログラムは、ROM102に記憶されていてもよい。
<表示例>
図3は、起動したアルバム作成アプリケーションが提供するUI構成画面301の一例を示す図である。UI構成画面301は、ディスプレイ105に表示される。ユーザーがUI構成画面301を介して、後述するアルバムの作成条件を設定することで、条件指定部201は、ユーザからの設定内容を取得する。UI構成画面301上のパスボックス302は、アルバム作成の対象となる画像データ群のHDD104中の保存場所(パス)を示す。フォルダ選択ボタン303は、ユーザーからのポインティングデバイス107でのクリックにより、アルバム作成の対象とする画像データ群を含むフォルダをツリー構成でユーザーが選択可能に表示する。そして、ユーザーにより選択された画像データ群を含むフォルダパスがパスボックス302に表示される。
主人公指定アイコン304は、ユーザーが主人公を指定するためのアイコンであり、人物の顔画像がアイコンとして表示される。主人公指定アイコン304には、複数の異なる顔画像のアイコンが並んで表示され、ユーザーがポインティングデバイス107によりクリックして選択可能である。なお、それぞれの顔画像は個人IDと関連付けられている。また、主人公指定アイコン304は、解析対象の画像データが表わす画像に写った人物から中心人物である主人公を特定するために用いられる。顔画像は、例えば、予め画像データから検出され、個人IDと関連付けて顔データベースに登録されている。主人公指定アイコン304は、例えば顔データベースに登録された人物の顔画像のうち、ユーザーによって選択された人物の顔画像や後述の方法で決定された人物の顔画像である。なお、主人公は図4に示す手順で自動設定されることもできる。
見開き数ボックス305は、ユーザーからのアルバムの見開き数の設定を受け付ける。ユーザーは、キーボード106を介して見開き数ボックス305に直接数字を入力するか、ポインティングデバイス107を用いてリストから見開き数ボックスに数字を入力する。テンプレート指定アイコン306は、テンプレートのテイスト(ポップ調やシック調等)別にイラスト画像を表示する。テンプレート指定アイコン306には、複数のテンプレートアイコンが並んで表示され、ユーザーがポインティングデバイス107によってクリックして選択可能である。画像補正チェックボックス307は、ユーザーからの画像補正のON/OFFの設定を受け付ける。画像補正チェックボックス307にチェックが入った状態は画像補正ONが指定された状態であり、チェックが入っていない状態は画像補正OFFが指定された状態である。なお、UI構成画面301は全ての補正処理についてまとめてON/OFFが設定される構成であるが、個別の補正処理ごとにON/OFFを設定可能とするようにしても良い。
ユーザーによりOKボタン308がポインティングデバイス107でクリックされると、条件指定部201は、UI構成画面301上で設定されている内容を取得する。そして、条件指定部201は、自動レイアウト処理部216に取得した設定情報を出力する。その際、パスボックス302に入力されているパスは、画像取得部202に伝えられる。また、主人公指定アイコン304で選択されている主人公の個人IDは、主人公情報入力部206に伝えられる。また、見開き数ボックス305に入力されている見開き数は、見開き数入力部208に伝えられる。また、テンプレート指定アイコン306で選択されているテンプレート情報は、テンプレート入力部211に伝えられる。また、画像補正チェックボックス307の画像補正のON/OFF設定は、補正条件入力部213に伝えられる。リセットボタン309は、UI構成画面301上の各設定情報をリセットするためのボタンである。
次に、動画と、サーバーやSNS上の画像の指定について詳細に説明する。UI構成画面301のサーバー名ボックス310は、アルバム作成の対象となる画像データ群を含むサーバー名やSNS名を示す。また、サーバー選択ボタン311は、アルバム作成の対象となる画像群を含むサーバー名やSNS名を、リスト構成でユーザーが選択可能に表示する。そして、ユーザーにより選択されたサーバー名やSNS名がサーバー名ボックス310に表示される。サーバー名ボックス310にサーバー名やSNS名が表示された状態で、OKボタン308がポインティングデバイス107でクリックされると、指定されたサーバーやSNSへのログイン画面が表示される。表示されたログイン画面を介したユーザーの操作により、指定されたサーバーやSNSへのログインが完了すると、CPU101は、指定されたサーバーやSNSからの画像データの取得が可能となる。
動画使用チェックボックス312は、パスボックス302に指定のフォルダや、サーバー名ボックス310に指定のサーバーやSNS上にある動画をアルバム作成の対象にするか否かの設定をユーザーから受け付ける。動画使用チェックボックス312にチェックが入った状態はアルバム作成の対象にすることが指定された状態であり、チェックが入っていない状態はアルバム作成の対象にしないことが指定された状態である。
対象期間ボックス313は、アルバム作成の対象となる画像の撮影日時期間の設定をユーザーから受け付ける。また、対象期間ボックス313は、指定された撮影日時期間を表示する。対象期間ボックス313に撮影日時期間が表示された状態で、OKボタン308がポインティングデバイス107でクリックされると、指定された撮影日時期間に対応する画像データ群がアルバム作成対象となって抽出される。
<自動レイアウト処理>
図4は、本実施形態におけるアルバム作成アプリケーションの自動レイアウト処理部216における処理の手順を示すフローチャートである。図4に示すフローチャートは、例えば、CPU101がHDD104やROM102に格納されたプログラムをRAM103に読み出して実行することにより実現される。図4を参照しながら、自動レイアウトの処理を以下説明する。
S401では、CPU101は、画像取得部202によって取得された画像データを画像変換部203により順次変換し、解析画像データを生成する。ここで、画像取得部202における画像の取得について図12を参照しながら説明する。
図12は、CPU101が、画像取得部202により、パスボックス302とサーバー名ボックス310に指定されたフォルダやサーバーやSNSから静止画と動画を取得する処理の手順を示すフローチャートである。図12に示すフローチャートは、例えば、CPU101がHDD104やROM102に格納されたプログラムをRAM103に読み出して実行することにより実現される。
ユーザーによりOKボタン308がポインティングデバイス107でクリックされると、CPU101は、画像データの取得を開始する。尚、以下では、サーバーやSNSへのログインが完了されており、CPU101が画像データを取得することが可能となった状態からの処理を説明する。
S1201では、CPU101は、パスボックス302に設定されたフォルダを参照する。ここで、パスボックス302にフォルダの設定が行われていない場合にはS1206に進む。S1202では、CPU101は、指定フォルダ内の全ての選択対象静止画データを取得しているかを判定する。ここでは、選択対象静止画データとは、指定フォルダ内の全ての静止画データである。なお、対象期間ボックス313が撮影日時期間の設定を受け付けている場合は、設定された期間に生成された静止画データを選択対象静止画データとする。CPU101は、全ての選択対象静止画データを取得していないと判定された場合は、S1203に移行し、全ての選択対象静止画データを取得していると判定された場合は、S1204に移行する。S1203では、CPU101は、指定フォルダ内の未取得の選択対象静止画データを1つ取得する。S1203の後、CPU101は、図12に示す画像取得処理を終了し、図4の処理に戻る。
S1204では、CPU101は、指定フォルダ内の全ての選択対象動画データを取得しているかを判定する。ここでは、選択対象動画データとは、指定フォルダ内の全ての動画データである。なお、対象期間ボックス313が撮影日時期間の設定を受け付けている場合は、設定された期間に生成された動画データを選択対象動画データとする。CPU101は、全ての選択対象動画データを取得していないと判定された場合は、S1205に移行し、全ての選択対象動画データを取得していると判定された場合は、S1206に移行する。S1205では、CPU101は、指定フォルダ内の未取得の選択対象動画データを1つ取得する。なお、CPU101は、動画使用チェックボックス312にチェックが入っていない場合は、動画の選択を行わない。S1205の後、CPU101は、図12に示す画像取得処理を終了し、図4の処理に戻る。
S1206では、CPU101は、サーバー名ボックス310に指定されたサーバーまたはSNSを参照する。ここで、サーバー名ボックス310がサーバーまたはSNSの設定を受け付けていない場合には、CPU101は、図12の画像取得処理を終了し、図4の処理に戻る。
S1207では、CPU101は、指定サーバーやSNS内の全ての選択対象静止画データを取得しているか否かを判定する。ここで、選択対象静止画データとは、指定サーバーやSNS内の全ての静止画データである。なお、対象期間ボックス313が撮影日時期間の設定を受け付けている場合は、設定された期間に生成された静止画データを選択対象静止画データとする。CPU101は、全ての選択対象静止画データを取得していないと判定された場合は、S1208に移行し、全ての選択対象静止画データを取得していると判定された場合は、S1209に移行する。S1208では、CPU101は、指定サーバーやSNS内の未取得の対象静止画データを1つ取得する。S1208の後、CPU101は、図12に示す画像取得処理を終了し、図4の処理に戻る。
S1209では、CPU101は、指定サーバーやSNS内の全ての選択対象動画データを取得しているか否かを判定する。ここで、選択対象動画データとは、指定サーバーやSNS内の全ての動画データである。また、対象期間ボックス313が撮影日時期間の設定を受け付けている場合は、設定された期間に生成された動画データを選択対象動画データとする。CPU101は、全ての選択対象動画データを取得していないと判定された場合は、S1210に移行し、全ての選択対象動画データを取得していると判定された場合は、図12に示す画像取得処理を終了し、図4の処理に戻る。S1210では、CPU101は、指定サーバーやSNS内の未取得の選択対象動画データを1つ取得する。S1210の後、CPU101は、図12に示す画像取得処理を終了し、図4の処理に戻る。
次に、画像変換部203における画像データの解析処理について説明する。まず、CPU101は、取得された静止画データの画素数と色情報を所望の画素数と色情報に変換して解析画像データを生成する。本実施形態では、CPU101は、短辺420画素のサイズとsRGBの色情報とを持つ解析画像データを生成する。取得された動画データについては、動画データ内からフレームを抽出し、当該フレームに対応する画像データを上記の解析画像データに変換する。ここで、動画データからのフレーム抽出について図11を参照しながら説明する。図11は、動画データからのフレーム抽出処理の手順を示すフローチャートである。図11に示すフローチャートは、例えば、CPU101がHDD104やROM102に格納されたプログラムをRAM103に読み出して実行することにより実現される。
S1101では、CPU101は、取得した動画データからフレームを抽出するタイミングを設定する。例えばCPU101は、1秒や5秒等の所定の秒毎にフレームを抽出するようにタイミングを設定する。なお、固定の枚数のフレームを抽出するためのタイミングが設定されても良い。例えば、1分の動画から30枚のフレームを抽出する場合は、2秒毎がフレームを抽出するタイミングとして設定される。なお、動画の撮影時間に対して抽出タイミングが指定されたテーブルによってタイミングが設定され、動画の撮影時間に応じて抽出フレーム枚数が変わるようにしてもよい。
S1102では、CPU101は、設定したタイミングで動画データから複数のフレームを抽出する。
S1103では、CPU101は、抽出したフレームに識別情報を付加する。識別情報とは、例えば、指定フォルダや指定サーバー、SNS等、いずれの記憶部から動画データを取得したかの情報である。また、識別情報は、動画の撮影日時情報や抽出したフレームのサイズ、動画の撮影時間等でも良い。S1103の後、CPU101は、図11に示す動画からのフレーム抽出処理を終了する。なお、抽出されたフレームは、順次、画像変換部203により上記の解析画像データに変換される。
再び、図4を参照する。S402では、CPU101は、画像解析部204により解析画像データ(S401で取得・解析した画像データ)の画像情報を取得する。例えば、CPU101は、各解析画像データに付随するExif情報から撮影日時を取得する。解析画像データに撮影日時情報が付随していない場合は、前述したように、解析前の画像データの作成日時や更新日時、解析前の画像データのアップロードやダウンロードの日時が用いられても良い。また、CPU101は、解析画像データから特徴量を取得する。特徴量としては、例えば、ピントが挙げられる。ピントの特徴量を取得するためのエッジの検出方法としては、例えば、一般的なソーベルフィルタが用いられる。
ソーベルフィルタでエッジ検出して、エッジの始点と終点の輝度差を始点と終点の距離で割ればエッジの傾き、すなわち輝度勾配が算出可能である。画像中のエッジの平均傾きを算出した結果から、平均傾きが大きい画像は、平均傾きが小さい画像よりもピントが合っているとみなすことができる。そして、傾きに対して異なる値の複数の閾値を設定すれば、どの閾値以上かを判定することにより、ピント量の評価値を出力可能である。
本実施形態では、異なる2つの閾値を予め設定しておき、○△×の3段階により、ピント量を判定する。閾値については、アルバムに採用したいピントの傾きが「○」、許容できるピントの傾きが「△」、許容できない傾きが「×」となるようにして、実験等により予め設定される。なお、閾値の設定は、例えば、アルバム作成アプリケーションの作成元等により提供されても良いし、ユーザインタフェース上で設定可能としても良い。
また、ピント量の別の算出方法として、ソーベルフィルタで検出したエッジに対して周辺画素を参照し、ピークとなる輝度の最大値と最小値の画素を特定し、この2つの画素間幅をピント量としてもよい。その場合、画素間幅が狭いとピントが合っていると考えることができる。また、画素間幅に対して、複数の閾値を設定し、「○」「△」「×」の3段階としてピント量を判別してもよい。
S403では、CPU101は、画像解析部204により顔検出を実施する。ここでは、S401で生成された解析画像データから顔検出が行われる。顔検出の処理には、公知の方法を用いることができ、例えば、複数用意した弱識別器から強識別器を作成するAdaboostが用いられる。本実施形態では、Adaboostにより作成した強識別器により人物(オブジェクト)の顔画像が検出される。CPU101は、顔画像を抽出すると共に、検出した顔画像の位置の左上座標値と右下座標値を取得する。この2種類の座標を持つことにより、CPU101は、顔画像の位置と顔画像のサイズを取得することが可能となる。なお、顔に限らず、犬や猫等の動物、花、食べ物、建物、置物等のオブジェクトを顔の代わりの検出対象としてAdaboostによって強識別器を作成しても良い。これにより、CPU101は、顔以外のオブジェクトを検出することが可能となる。
S404では、CPU101は、画像解析部204により個人認識を実施する。具体的には、CPU101は、S403で抽出した顔画像と、顔辞書データベースに個人ID毎に保存されている代表顔画像との類似性を比較することで個人認識を実施する。CPU101は、各代表顔画像と抽出した顔画像との類似性を判定し、類似性が閾値以上で最も類似性が高い代表顔画像のIDを、抽出した顔画像のIDとする。尚、顔辞書データベースに頬損されている全ての代表顔画像との類似性が閾値未満の場合は、CPU101は、抽出した顔画像を新規の個人IDとして顔辞書データベースに登録する。
S402からS404で取得された画像解析情報500は、各画像を識別するID501毎に区別されてRAM103やHDD104等の記憶領域に記憶される。例えば、図5に示すように、S402で取得された撮影日時情報502とピント判別結果503、S403で検出された顔画像の数504と位置情報505がテーブル形式で記憶される。尚、顔画像の位置情報は、S404で取得された個人ID毎に区別して記憶される。
S405では、CPU101は、条件指定部201で指定された画像データ群の全画像データに対してS401からS404の処理が終了したか否かを判定する。ここで、CPU101は、終了していないと判定された場合(No)は、S401〜S404の処理を施していない画像データについてS401からの処理を繰り返す。また、CPU101は、終了していると判定された場合(Yes)は、S406に移行する。
S406では、CPU101は、画像分類部205によりシーン分割を実施する。シーン分割とは、条件指定部201で指定された画像群の全画像を、シーン毎に分割して、複数の画像群として管理することを指す。具体的には、CPU101は、S402で取得済みの撮影日時情報から算出した画像と画像との時間差に基づいて、画像データ群を複数のシーンに分割する。本実施形態では、例えば、以下に示す方法によって、シーン分割を行う。まず、撮像日時が古い順においてN番目の撮像画像データの撮像日時と(N+1)番目の撮像画像データの撮像日時との差が1日以下であれば、以下の通りである。撮像日時が古い順においてN番目の撮像画像データの撮像日時と(N+1)番目の撮像画像データの撮像日時との差が16時間以上であれば、N番目の撮像画像データと(N+1)番目の撮像画像データとの間にグループの境界を設定する。また、撮像日時が古い順において隣接する撮像画像データ間で撮像日時の差が、どの撮像画像データ間であっても16時間未満であるとする。この場合、1日で撮像した撮像画像データ群において最初に撮像した撮像画像データの撮像日時と最後に撮像した撮像画像データの撮像日時との差が4時間未満であれば、該1日の撮像画像データ群を1つのグループとする。一方、該1日で撮像した撮像画像データ群において最初に撮像した撮像画像データの撮像日時と最後に撮像した撮像画像データの撮像日時との差が4時間以上であったとする。この場合、該1日で撮像した撮像画像データの数が50枚未満(1日で撮像した撮像画像の数が50未満)であれば、該1日の撮像画像データ群を1つのグループとする。このような撮像画像データのグループ分けの一例を図6(A)に示す。図6(A)〜(C)において横軸は撮像日時(左側に向かうほど古く、右側に向かうほど新しい)、縦軸は撮像画像データの数を示す。図6(A)では、撮像画像データ群をグループ601〜608の8個のグループに分割している。図6(A)において矢印はグループの境界を示している。なお、上記のシーン分割方法の説明において使用した撮像日時の差に対する閾値や撮像画像データの数に対する閾値は一例であり、これらの値に限るものではない。なお、分割後の画像群を分割画像群と呼び、1つのシーン毎に1つの分割画像群が設定される。
S407では、CPU101は、画像分類部205によりシーン分類を実施する。具体的には、CPU101は、S406でシーン分割された分割画像群をシーンの種類毎に得点化して、後述するシーン分類の信頼性が低い場合を除いて、一番得点が高いシーンに、当該分割画像群を分類する。なお、以下の説明において、S407における得点化をシーン分類得点化という。本実施形態では、シーンの種類として、「旅行」、「日常」、「セレモニー」があるものとし、分割画像群をこれらのシーンのいずれかに分類する例を説明する。なお、シーン分類得点化には、シーンの各種類に対応する特徴量の情報が格納されたシーン分類テーブルが利用される。
ここで、プログラムに予め格納される、シーン分類テーブルの作成方法について説明する。まず、「旅行」、「日常」、「セレモニー」のシーンに分類されると予め判定された複数の画像データ群が集められ、集められた画像データ群について、特徴量が取得される。ここで取得される特徴量の例は、例えば撮影期間、撮影枚数、撮影人数である。撮影期間は、各画像データ群において最初に撮影された画像から最後に撮影された画像までの撮影時間差である。撮影枚数は、各画像データ群の枚数である。撮影人数は、各画像データ群のうち、顔が写っている画像データにおける顔の平均数である。その結果、例えば、旅行シーンであると予め判定された複数の画像データから成る1画像データ群について、撮影期間、撮影枚数、撮影人数の特徴量が取得される。なお、特徴量は撮影期間、撮影枚数、撮影人数に限定されず、他の特徴量が用いられても良いし、その中のいずれかのみが用いられても良い。
そして、上記のような撮影期間、撮影枚数、撮影人数の特徴量の取得が、予め集められた他の画像データ群についても行われる。次に、シーン毎に集められた複数の画像データ群から取得された特徴量に基づいて、撮影期間の平均値と標準偏差、撮影枚数の平均値と標準偏差、1画像あたりの撮影人数の平均値と標準偏差とが求められる。このようにして求められた値と、シーンの各種類とが対応付けられることで、シーンの種類ごとの各平均値と標準偏差を示すシーン分類テーブルが作成される。
本実施形態では、シーン分類テーブルとして、図7に示すテーブル700が利用されるものとする。テーブル700では、シーンID701に対応付けて、撮影期間702、撮影枚数703、撮影人数704それぞれの平均値と標準偏差とが登録されている。CPU101は、テーブル700をROM102やHDD104等の記憶領域にシーン分類処理前に予め記憶しておく。なお、テーブル700は、アルバム作成アプリケーションのプログラムに予め組み込まれていても良いし、アルバム作成アプリケーション外のプログラムに組み込まれていても良い。
ここで、シーン分類得点化について説明する。アルバム作成アプリケーションが起動された後、ユーザーがパスボックス302やサーバー名ボックス310で指定した画像データ群がS406でシーン分割された各分割分に対して、CPU101は、撮影期間、撮影枚数、撮影人数の各特徴量の得点を算出する。CPU101は、各分割分の撮影期間、撮影枚数、撮影人数の得点、及びそれらの平均得点を、図7に示すシーン毎の平均値と標準偏差を用いて式(1)及び(2)より算出する。なお、下式における、所定の種類のシーンに対応する所定の特徴量の平均値および所定の種類のシーンに対応する所定の特徴量の標準偏差は、テーブル700に登録されている。また、特徴量は、撮影期間と撮影枚数、撮影人数の3つの特徴項目について取得される。そのため、特徴項目数は本例では3となる。
まず、CPU101は、式(1)により、分割画像データ群の、シーンの各種類および各特徴量毎の得点を取得する。
分割画像データ群の、所定の種類のシーンに対応する所定の特徴量の得点=50−|10×(所定の種類のシーンに対応する所定の特徴量の平均値−分割画像データ群の所定の特徴量)/所定の種類のシーンに対応する所定の特徴量の標準偏差| ・・・(1)
これにより、例えば、分割画像データ群において、「旅行」シーンに対応する撮影期間、撮影枚数、撮影人数それぞれの得点が取得される。なお、CPU101は、「旅行」シーンだけでなく、他の各種類のシーンについても得点を取得する。
次に、CPU101は、式(1)により求めた各得点を式(2)により平均化して、分割画像データ群の、各種類のシーンに関する得点を取得する。
分割画像データ群の、所定の種類のシーンに関する得点=(分割画像データ群の、所定の種類のシーンに対応する撮影期間の得点+撮影枚数の得点+撮影人数の得点)/特徴項目数 ・・・(2)
これにより、例えば、分割画像データ群において、「旅行」、「日常」、「セレモニー」の各種類のシーンに関する得点が取得される。なお、CPU101は、シーン分類得点化を、各分割画像データ群について行う。
以上によって、各分割画像データ群について「旅行」、「日常」、「セレモニー」毎の得点が算出される。そして、CPU101は、後述する例外を除いて、得点が1位であるシーンをその分割画像データ群のシーンであると分類する。例えば、図6(A)のシーン分割された後のシーン5に対応する分割画像データ群5は、撮影期間が36時間、撮影枚数が300枚、撮影人数が1.7人であったとする。すると、分割画像データ群5において、「旅行」に関する得点は45.32、「日常」に関する得点は18.38、「セレモニー」に関する得点は−29.92となり、分割画像データ群5は最高得点のシーンである「旅行」に分類される。なお、いずれの分割画像データ群がいずれのシーンに分類されているか、は識別ができるようにシーンIDで管理される。
尚、シーン分類する為の特徴量として、ここでは撮影期間、撮影枚数、撮影人数に着目したが、これに限るものではない。画像の明るさや人物・画像枚数等の特徴量を加えて分類精度を上げてもよい。また、シーンの種類はここで説明した「旅行」、「日常」、「セレモニー」に限らず、パーティーやスポーツ等の他のシーンであってもよい。他のシーンを含めたシーン分類を行う場合は、テーブル700の作成において、上記説明したのと同様にして、当該他のシーンの画像データ群を複数集めて、シーン分類の為の特徴量について、平均値と標準偏差を求めればよい。
S408では、CPU101は、S406で分割された全分割画像データ群(本説明においては、図6(A)の分割されたそれぞれのシーンに対応した分割画像データ群)に対してS407のシーン分類が終了したか否かを判定する。CPU101は、終了していないと判定された場合(No)は、処理が済んでいない新たな分割画像データ群に着目してS407に戻る。また、CPU101は、終了していると判定された場合(Yes)は、S409に移行する。
S409では、CPU101は、画像得点部207により主人公設定を実行する。主人公設定はユーザーが指定した画像群に対して実行され、自動と手動の2種類の設定方法のいずれかにより行われる。CPU101は、S404で実行された個人認識の結果と、S406で実行されたシーン分割の結果とから、画像データ群に登場する各個人IDの回数、各シーンに登場する各個人IDの回数、各個人IDが登場するシーンの回数等を取得可能である。CPU101は、これらの情報に基づいて、ユーザー指定によらず自動で主人公を設定する。本実施形態では、CPU101は、ユーザーが指定した画像データ群がシーン毎に複数の分割画像データ群に分割されている場合は、複数のシーンでの登場回数が多い個人IDを主人公IDと設定する。また、CPU101は、画像データ群が単一シーンである場合は、単一シーンでの登場回数が多い個人IDを主人公IDと設定する。また、CPU101は、主人公指定アイコン304がユーザーによって指定されている場合は、主人公情報入力部206を介して指定されている個人IDを画像得点部207に伝える。ユーザーにより個人IDが指定されている場合は、上記のようにして自動設定された主人公IDは無視され、ユーザーにより指定された個人IDを主人公IDとして設定する。なお、この設定を手動設定と呼ぶ。
S410では、CPU101は、画像得点部207により画像得点化を実施する。S410における画像得点化とは、画像データ毎に後述の観点で評価した得点を付与する(スコアリング)ことであり、後述の、レイアウトに用いられる画像データの選択時に参照される。図10は、画像データのレイアウトに使うテンプレート群を示している。テンプレート群に含まれている複数のテンプレートのそれぞれが、各見開きに対応している。テンプレート1001は、1枚のテンプレートであり、メインスロット1002はメインスロットを示し、サブスロット1003と1004とはサブスロットを示す。メインスロット1002とは、テンプレート1001内でメインとなるスロット(画像をレイアウト(配置)する枠)であり、サブスロット1003と1004よりもサイズが大きい。なお、1枚のテンプレートには、それぞれ同一の種類のシーンに分類された画像データがレイアウトされても良いし、それぞれ異なる種類のシーンに分類された画像データがレイアウトされても良い。S410では、CPU101は、画像データが属する種類のシーンに対応するメインスロット用の得点とサブスロット用の得点の両方を画像データに付与する処理である、画像得点化を行う。
画像得点化においては、メインスロットとサブスロットとに採用されるべき画像の特徴量の情報がシーンの種類毎に格納されたスロット特徴テーブルが利用される。
ここで、スロット特徴テーブルの作成方法について説明する。図8(A)は、メインスロットとサブスロットとに採用される画像データの特徴が、「旅行」、「日常」、「セレモニー」の各種類のシーン毎に纏められたテーブルである。まず、各種類のシーンに分類された画像データにおいて、メインスロットに採用されるべき画像特徴に適合すると判定された複数の画像データが集められる。また、サブスロットに採用されるべき画像特徴に適合すると判定された複数の画像データが集められる。すなわち、図8(A)に示す特徴に適合する画像データが集められる。そして、画像解析部204により、集められた各画像データにおける顔画像の数、顔画像の位置、顔画像のサイズ等の特徴量が抽出される。そして、抽出された特徴量の平均値と標準偏差とを、各シーン種類および各スロット種類(メインスロットとサブスロット)に対して求めることで、スロット特徴テーブルが作成される。なお、スロット特徴テーブルは、ROM102やHDD104等の記憶領域に、画像得点化前に予め記憶される。なお、スロット特徴テーブルは、アルバム作成アプリケーションのプログラムに予め組み込まれていても良いし、アルバム作成アプリケーション外のプログラムに組み込まれていても良い。
画像得点化においては、CPU101は、画像データを、下式を用いて、当該画像データが属する種類のシーンに対応するテンプレートのスロット毎に得点化する。なお、ユーザーが指定した画像データ群の各画像データがどの種類のシーンに属すかはS407のシーン分類の結果から知ることができる。また、下式における、所定の種類のシーン及び所定のスロットに対応する所定の特徴量の平均値および所定の種類のシーン及び所定のスロットに対応する所定の特徴量の標準偏差は、スロット特徴テーブルに登録されている。また、特徴量は、主人公IDの顔画像数、顔画像の位置、顔画像のサイズの3つの特徴項目について取得される。そのため、特徴項目数は本例では3となる。
画像データの、所定のスロットに対応する所定の特徴量に関する得点=50−|10×(画像データが属する種類のシーン及び所定のスロットに対応する所定の特徴量の平均値−画像データの所定の特徴量)/画像データが属する種類のシーン及び所定のスロットに対応する所定の特徴量の標準偏差| ・・・(3)
これにより、例えば、「旅行」シーンに分類される画像データの、メインスロットに対応する「主人公IDの顔数」の得点が取得される。なお、CPU101は、メインスロットだけでなく、サブスロットに対応する特徴量についても得点を取得する。また、CPU101は、「主人公IDの顔画像数」だけでなく、「顔画像の位置」、「顔画像のサイズ」に対応する特徴量についても得点を取得する。
次に、CPU101は、式(1)により求めた各得点を式(2)により平均化して、画像データの、所定のスロットに関する得点を取得する。
画像データの所定のスロットに関する得点=(画像データが属する種類のシーン及び所定のスロットに対応する顔数の得点+顔位置の得点+顔サイズの得点)/特徴項目数・・・(4)
これにより、メインスロット用とサブスロット用の両方に関する得点化が画像データについて実行される。なお、CPU101は、画像得点化を、ユーザーが指定した画像データ群における各画像データについて行う。画像得点化によって付加された得点が後段のS417での画像選択処理における選択基準となる。上述のように、同じ画像データであっても、分類されるシーンによって選択基準は異なることになる。なお、アルバムに使う画像はピントが合っている方が好ましいので、図5に示すテーブルにおいてピントの特徴量が「○」である画像IDの画像に対しては所定の得点を加えるようにしてもよい。また、画素数が高い画像は、アルバムにレイアウトした際にジャギーが少ないので、画素数が高い画像に対しては所定の得点を加えるようにしてもよい。なお、図8(B)は、レイアウト得点化による得点結果の一例を示している。表800は、各画像ID801の画像に対して、メインスロットとサブスロットのそれぞれについて得点化がされた結果を示しており、各画像ID801の画像に対して得点802が登録されている。例えば、図8(B)では、画像ID1は、メインスロット用として20点が付与され、画像ID2は、メインスロット用として45点が付与されている。これは、つまり、メインスロット用としては、画像ID2の方がユーザーの判断基準により近いということを表している。
S411では、CPU101は、画像得点部207によりユーザー指定の画像データ群の全画像データに対してレイアウト得点化が終了したか否かを判定する。CPU101は、終了していないと判定された場合(No)は、未処理の次の画像について着目し、S410に戻る。CPU101は、終了していると判定された場合(Yes)は、S412に移行する。
本実施形態では、CPU101は、画像レイアウト部212により、複数のシーンのそれぞれに含まれる画像データを、複数のテンプレート(複数の見開き)のそれぞれにレイアウトする。そのため、複数のシーンの数と、複数のテンプレートの数(所定数の見開き数)が一致する必要がある。
そこで、S412では、CPU101は、見開き割当部209により、画像分類部205によるS406でのシーン分割の分割数が、見開き数入力部208から入力されるアルバムの見開き数と同じか否かを判定する。CPU101は、同じでないと判定された場合(No)は、S413に移行し、同じであると判定された場合(Yes)は、S416に移行する。例えば、CPU101は、図6(A)に示すようにシーン分割数が8であり、見開き数入力部208の入力数が8であればS416に移行する。
S413では、CPU101は、見開き割当部209により、画像分類部205によるS406でのシーン分割の分割数が、見開き数入力部208から入力されるアルバムの見開き数より少ないか否かを判定する。CPU101は、少なくない(多い)と判定された場合(No)は、S415に移行し、少ないと判定された場合(Yes)は、S414に移行する。例えば、CPU101は、図6(A)に示すようにシーン分割数が8であり、見開き数入力部208の入力数が10であればS414に移行する。
S414では、CPU101は、見開き割当部209によりサブシーン分割を実行する。サブシーン分割とは、シーン分割数<アルバムの見開き数の場合に、分割されたシーンを更に細分化することをいう。ここでは、図6(A)のようにシーン分割数が8であり、それに対して指定見開き数が10である場合について説明する。図6(B)は、図6(A)をサブシーン分割した結果である。ここでは、分割の間隔をより細かく設定し、分割画像群番号が2と3の間の矢印と、6と7の間の矢印の箇所で分割したことで、分割数を10にしている。
分割の基準について説明する。図6(A)の分割の中で画像データ数が多い分割箇所を探す。ここでは、分割数を8から10に2箇所増やす為、画像データ数が多い2箇所を決める。即ち、再分割すべきシーンを、最も多くの画像データを含む分割画像データ群に対応するシーンから順に指定する。画像データ数が同数の分割画像データ群に対応するシーンについては、対応する分割画像データ群に含まれる画像データ間の撮影日時の差の最大値が大きい方のシーンを選択する。それでも選択できない場合には、例えばより早い時間に生成された画像データを含む分割画像データ群に対応するシーンを優先的に再分割してもよい。
図6(A)では、対応する分割画像データ群に含まれる画像データの数が多いシーンは、多い方から順にシーン5、シーン1、シーン2である。シーン1と2は同じデータ数だが、シーン2の方が、対応する分割画像データ群において最初に生成された画像データから最後に生成された画像データの時間差が大きい為、シーン2を分割対象とする。即ち、図6(A)では、シーン5とシーン2をそれぞれ分割する。
まずシーン2の分割を説明する。シーン2には画像データ数の山が2つあり、この2つの山に含まれる画像データは、山ごとに撮影日が違う。そこで撮影日が切り替わる部分に対応する図6(B)の分割画像群番号2と3の間の太矢印の箇所で分割する。次にシーン5の分割を説明する。シーン5には画像データ数の山が3つあり、シーン2と同様に、この3つの山に含まれる画像データは、山ごとに撮影日が違う。シーン5では、撮影日が変わる箇所が2箇所あるが、この場合、分割後のデータ数差が小さくなるように、撮影日単位で分割する。即ち、ここでは図6(B)の分割画像群番号6と7の間の太矢印の箇所で分割する。
以上により分割数すなわちシーン数を8から10にする。具体的にいえば、シーンの再分割では、選択したシーンに撮影日の異なる画像データが含まれていれば、撮影日の相違するそれぞれの画像データ群を新たなシーンとするよう分割される。そして、撮影日が3日以上にわたるならば、分割された各シーンに含まれる画像データの数の差が最小になり、且つ同一撮影日の画像が同一シーンに含まれるよう分割される。なお、ここでは撮影日の違う箇所で分割する例を説明したが、分割対象のシーンにおける画像データの撮影日が単一日であった場合は、単一日の中で撮影時刻の時間差が最大となる箇所で分割する。以上の手順によって見開き数にシーン数を一致させる。なお、分割により生成されたシーンについては、改めて分類してもよいし、分割前のシーンの分類を引き継いでもよい。
S415では、CPU101は、シーン統合を行う。シーン統合とは、シーン分割数>アルバムの見開き数の場合、分割されたシーンを統合することを表す。ここでは、図6(A)のようにシーン分割数が8であり、それに対して指定見開き数が6の場合を例として説明する。図6(C)は図6(A)をシーン統合した結果である。図6(c)の破線矢印の箇所の前後のシーンを統合したことで、分割数を6にしている。
統合の基準について説明する。まず、CPU101は、分割された各シーンの中で画像データ数が少ないシーンを検出する。ここでは、シーン数を8から6に減らす為、画像データ数が少ない2つのシーンを検出する。図6(A)では、対応する分割画像データ群に含まれる画像データの数が多いシーンは、少ない方から順にシーン8、3、7である。なお、シーン3と7は同じデータ数である。
次に、CPU101は、対応する分割画像データ群に含まれる画像データ数が最も少ないシーン8を統合対象とする。次に、シーン3とシーン7は、対応する分割画像データ群に含まれる画像データ数は同じであるので、いずれを統合対象とするか選択する。ここでは、シーン7に隣接するシーン8が統合対象であるので(シーン7とシーン8は統合されるため)、シーン3を統合対象とする。
次に、CPU101は、統合対象のサブ画像データ群を、対応する分割画像データ群に含まれる画像データの撮影日時が前のシーンに統合するか、撮影日時が後のシーンに統合するかを決定する。このとき、CPU101は、統合対象のシーンと隣接する2つのシーンのうち、対応する分割画像データ群に含まれる画像データの撮影日時の時間差が小さい方のシーンを統合の相手とする。そのため、図6(A)では、シーン3について、それに隣接するシーン2、4のいずれかを統合の相手とする。ここで、シーン3とその前後のシーン2と4それぞれとの、対応する分割画像データ群に含まれる画像の撮影日時の時間差を比較すると、シーン3とシーン4との時間差の方が小さい。そのため、CPU101は、シーン3をシーン4に統合すると決定する。即ち、ここでは図6(C)の分割画像群番号3の破線矢印の箇所で統合する。
CPU101は、シーン8のように隣接するシーンが1つしかない場合には、唯一の隣接シーンを統合の相手とする。
こうして図6(C)の破線矢印の箇所の前後のシーンでシーン統合する。なお、シーン統合は、例えばシーンに含まれる画像ファイルを示す情報を、統合後のシーンに応じて更新することを含む。
S416では、CPU101は、見開き割当部209により見開き割当を実行する。S412〜S415によって、シーン分割数と指定見開き数は同じになっている。CPU101は、撮影日時的に先頭の分割画像データ群から、見開きの先頭に順に割り当てる。
S417では、CPU101は、画像選択部210により画像選択を実行する。ここでは、ある見開きに割り当てられた分割画像データ群から画像データを4枚選択する例を、図9を参照しながら説明する。
図9(A)は見開きに割り当てられた分割画像データ群のうち、撮影日時が一番早い画像データと一番遅い画像データとの撮影日時の時間差(分割撮影期間)を示している。なお、ここでは、画像データの選択を、メインスロット、サブスロットの順で行う。ここでは、見開きに対応するテンプレートには1枚のメインスロット1002が含まれるものとする。そのため、1枚目に選択される画像データは、メインスロット用の画像データである。CPU101は、メインスロット用の画像データとして、図9(B)に示す分割撮影期間に対応する画像データのうち、S410で付加したメインスロット用の得点が最高点の画像データ(1)を選択する。
2枚目以降に選択される画像データは、サブスロット用の画像データである。2枚目以降の画像データの選択は分割撮影期間の一部に集中しないように、以下説明するような方法により行われる。まず、CPU101は、図9(C)に示すように、分割撮影期間を2分割する。次にCPU101は、図9(D)に示すように、1枚目の画像データが選ばれていない分割撮影期間(図中、実線で示している期間)に生成された画像データから2枚目の画像データを選択する。なお、2枚目の画像データとしては、1枚目の画像データが選ばれていない分割撮影期間に生成された画像データのうちサブスロット用の得点が最高点の画像データ(2)を選択する。次にCPU101は、図9(E)に示すように図9(D)に示す各分割撮影期間を2分割する。そして、CPU101は、図9(F)に示すように1枚目の画像データと2枚目の画像データがいずれも選ばれていない分割撮影期間(図中、実線で示している期間)に生成された画像データから3枚目の画像データを選択する。なお、3枚目の画像データとしては、1枚目の画像データと2枚目の画像データがいずれも選ばれていない分割撮影期間に生成された画像データのうちサブスロット用の得点が最高点の画像データ(3)を選択する。
次に、画像データの選択対象の分割撮影期間に生成された画像が存在せず、当該分割撮影期間に生成された画像データからデータを選択できない例を4枚目の画像データの選択を例に説明する。ここで、図9(G)に示すように、まだ画像データが選ばれていない分割撮影期間(図中、斜線で示している期間)に生成された画像データは存在しないものとする。その場合、CPU101は、図9(H)に示すように各分割撮影期間を2分割する。次にCPU101は、図9(I)に示すように、期間内に生成された画像データがないと認識された分割撮影期間以外で、且つ未だ画像データが選ばれていない分割撮影期間(図中、実線で示している期間)に生成された画像から4枚目の画像データを選択する。なお、CPU101は、4枚目の画像データとしては、当該分割撮影期間に生成された画像データのうちサブスロット用の最高点の画像データ(4)を選択する。
S418では、CPU101は、画像レイアウト部212により画像レイアウトを決定する。画像レイアウトの決定のために、選択した画像を基にしてテンプレートを選択する。
画像レイアウトの方法について説明する。まず、CPU101は、テンプレート入力部211に入力されたテンプレート群を、選択の候補として取得する。次に、CPU101は、その候補から、テンプレート内のメインスロットの位置が、S417で選択された画像データ群におけるメインスロット用画像データの位置に対応しているテンプレートを選択する。この判定は、例えば、テンプレート内のスロットの位置が、左上から右下へと時系列に沿って配置されることを前提として行われる。しかしながら、各スロットの位置と画像とを個別に対応付けるのは煩雑なので、例えば、テンプレートをメインスロットとサブスロットの位置に応じてグループ分けしておく。このとき、さらに画像の向きの方向(縦長、横長)に応じてさらにグループ分けしておいてもよい。そしてメインスロット用画像の時系列上の位置及び方向に応じてテンプレートを絞り込み、さらにサブスロットについても同様に絞り込む。このようにして、テンプレートの候補を絞り込み、最終的に採用するテンプレートを決定する。
画像レイアウトの方法について詳しく説明する。ここでは、テンプレート入力部211に、指定のテンプレート情報に従って、ある見開きに対して図10の(A)〜(P)が入力された例を説明する。ここでは、入力されたテンプレートのスロット数は3と指定されているものとする。画像は、例えば図9の説明で選択した4枚の画像データのうち、最初に選択された3枚を用いる。選択されている画像データ3枚の画像の向きが縦方向か横方向かを撮影日時に対して並べると図9(J)のようであったとする。ここでは、画像データ1005がメインスロット用であり、画像データ1006と画像データ1007がサブスロット用である。すなわち、メインスロット用の画像データ1005は、撮影日時が一番新しく、且つ向きが縦方向である。本実施形態では、テンプレートの左上に撮影日時のより古い画像データがレイアウトされ、右下に撮影日時のより新しい画像データがレイアウトされる。そのため、選択されている画像データが図9(J)に示すような形態であった場合は、向きが縦方向であるスロットが一番右に位置するテンプレート、すなわち図10の(I)〜(L)のテンプレートが候補となる。そして、サブスロット用の古い方の画像データ1006の向きが縦方向で、新しい方の画像データ1007の向きが横方向であるので、テンプレート(J)が、選択された画像に最も適したテンプレートとして決定され、レイアウトが決まる。このように、S418では、どの画像をどのテンプレートのどのスロットにレイアウトするかが決定される。
S419では、CPU101は、画像補正部214により画像補正を実行する。なお、CPU101は、補正条件入力部213から画像補正がONであることの設定が入力された場合に、画像補正を実行する。画像補正として、例えば、輝度補正、赤目補正、コントラスト補正が実行される。また、CPU101は、補正条件入力部213から画像補正がOFFであることの設定が入力された場合は、画像補正を実行しない。画像補正は、例えば、短辺1200画素で、sRGBの色空間に変換された画像データに対しても実行可能である。
S420では、CPU101は、レイアウト情報出力部215によりレイアウト情報を作成する。CPU101は、S418で決定されたテンプレートの各スロットに、S419の画像補正が実行された、各スロットに対応する画像データをレイアウトする。このとき、CPU101は、スロットのサイズ情報に合わせてレイアウトする画像を変倍又は等倍してレイアウトする。そして、CPU101は、テンプレートに画像をレイアウトしたビットマップデータを生成する。
S421では、CPU101は、S417〜S420が全ての見開きに対して終了したか否かを判定する。CPU101は、終了していないと判定された場合(No)は、S417に戻り、終了していると判定された場合(Yes)は、図4の自動レイアウト処理を終了する。
上述のようにすることで、各シーンの画像データ群から自動で画像データを選択し、選択した画像データを見開きにレイアウトしてアルバムを自動作成することができる。
また、以上の手順では、1枚目の画像データの選択をメインスロット用の得点を使って行い、2枚目以降の画像データの選択をサブスロット用の得点を使って行う例で説明したが、これに限るものではない。メインスロットを複数持つテンプレートが予め用意されている場合は、メインスロット用の得点を使って複数枚の画像データの選択を行うようにしてもよい。
また、選択する画像データの枚数が4枚である形態を説明したが、これに限るものではない。異なるスロット数を持つ複数のテンプレートが予め用意されている場合には、4枚以外の枚数の画像データを選択してもよい。なお、S417で説明した分割撮影期間の分割数は、選択される画像データの枚数に応じて増減すればよい。
また、テンプレートにレイアウトする画像データが3枚である形態を説明したが、これに限るものではない。異なるスロット数を持つ複数のテンプレートが予め用意されている場合には、3枚以外の枚数の画像データをレイアウトしてもよい。
上述では、シーン分類において、分割画像データ群毎に各種類のシーンに関する得点を算出し、得点が1番高いシーンに分割画像データ群を分類する形態を説明した。ここでは、シーン分類の例外処理について説明する。
本実施形態では、シーン分類後、分類されたシーン毎に異なる採点基準(図8(A))で画像データに得点を付与し、付与された得点に応じて画像データをメインスロットやサブスロットにレイアウトする。しかしながら、シーン分類において、分割画像データ群が、ユーザーの意図と異なるシーンに分類されることがある。その場合、上述したように画像データの採点基準はシーン毎に異なるため、分割画像データ群が適切なシーンに分類された場合のレイアウト結果と異なるレイアウト結果が出力される。結果として、ユーザーの満足度が低いレイアウト結果が出力される。そこで、本実施形態では、ユーザーの満足度が低いレイアウト結果が出力されることを抑制するための制御を実行する。なお、以下の説明において、分割画像データ群が適切なシーンに分類された場合のレイアウトと、分割画像データ群が上述の方法によるシーン分類により分類された場合のレイアウトとのユーザー満足度の近さを、レイアウト相性(親和性)と呼ぶ。
図13は、レイアウト相性を示すテーブル(以下、レイアウト相性テーブル)である。レイアウト相性テーブルにおいて、分割画像データ群が適切なシーンに分類された場合は、当然ユーザーの満足度が高いレイアウト結果が得られる為、レイアウト相性を「○」で示す。分割画像データ群が適切なシーンでないシーンに分類された(誤判定が生じた)場合、ユーザーの満足度が高いレイアウト結果が得られない。そのため、誤判定が生じた場合で且つ誤判定が生じた場合に得られるレイアウト結果のユーザー満足度が大きく落ちる場合は、レイアウト相性テーブルにおいて、レイアウト相性を「×」で示す。誤判定が生じてもユーザー満足度が大きく落ちない場合は、レイアウト相性を「△」で示す。
例えば、実際のシーンは「旅行」である分割画像データ群が、シーン分類において「日常」と誤判定された場合を考える。実際のシーンが「旅行」の場合、人物と風景が一緒に写った画像データがメインスロットにレイアウトされるとユーザーの満足度が高くなる。しかしながら、上述のような誤判定が生じた場合は、図8(A)から分かるようにメインスロットとサブスロットの採点基準が逆になり、顔がアップで映っている画像データに高得点が付されてしまう。つまり、シーン分類の誤判定によって、実際のシーンは「旅行」であるのにかかわらず、風景があまり映っていない画像データがメインスロットにレイアウトされる可能性が高くなる。このような場合、ユーザーの満足度は大きく落ちることになる。そのため、レイアウト相性テーブルにおいて、実際のシーンが「旅行」である分割画像データ群のシーン分類結果が「日常」である場合のレイアウト相性は「×」で示されている。
次に、実際のシーンは「日常」である分割画像データ群が、シーン分類において「旅行」と誤判定された場合を考える。実際のシーンが「日常」の場合、子供のアップや人の何気ない横顔が写っている画像データがメインスロットにレイアウトされるとユーザーの満足度が高くなる。しかしながら、上述のような誤判定が生じた場合も図8(A)から分かるようにメインスロットとサブスロットの採点基準が逆になり、人が小さく映っている画像データに高得点が付されてしまう。つまり、シーン分類の誤判定によって、実際のシーンは「日常」であるのにかかわらず、「日常」のシーンにおけるメインスロットの条件を満たさない画像データがメインスロットにレイアウトされる可能性が高くなる。このような場合、ユーザーの満足度は落ちることになる。しかしながら、「日常」のシーンで生成された画像データの中には、「日常」シーンでなく、「旅行」シーンにおけるメインスロットの条件を満たしているにもかかわらず、メインスロットにレイアウトされてもユーザーの満足度があまり低くならないものがある。例えば、公園や家の中の風景と共に子供が何気なく遊んでいる画像データがメインスロットにレイアウトされても、ユーザーの満足度が大きく低下するとは限らない。このようなことから、レイアウト相性テーブルにおいて、実際のシーンが「日常」である分割画像データ群のシーン分類結果が「旅行」である場合のレイアウト相性は「△」で示されている。
次にシーン分類結果の例を説明する。図14(A)は、実際のシーンが「旅行」であり、特徴量が、撮影期間が20時間、撮影枚数が75枚、撮影人数が1.7人である分割画像データ群の各種類のシーンに関する得点を示している。上述のような特徴量を持つ画像データ群のシーン種類別の得点は、「旅行」が36.13点、「日常」が36.69点、「セレモニー」が6.97点となる。よって、得点差は0.56点と小さいが、「日常」の得点が1位、「旅行」の得点が2位となってしまうため、最高点のシーンに分割画像データ群を分類すると、誤判定が生じることになる。
また、図14(B)は、実際のシーンが「旅行」であり、特徴量が、撮影期間が20時間、撮影枚数が120枚、撮影人数が1.7人である分割画像データ群の各種類のシーンに関する得点を示している。上述のような特徴量を持つ画像データ群のシーン種類別の得点は、「旅行」が36.77点、「日常」が34.39点、「セレモニー」が10.48点となる。よって、「旅行」の得点が1位、「日常」の得点が2位となり、最高点のシーンに分割画像データ群を分類すると、正確にシーン分類が行われる。ただし、本例では1位と2位の得点差は2.38であり、本例のように正確にシーン分類が行われる場合であっても、得点差が小さくなる場合もある。
なお、分割画像データ群において、それぞれの特徴量が、実際のシーンに対応する数値と大きく乖離することは少ないため、誤判定が生じている場合でも、実際のシーン(誤判定が生じている場合の得点が2位のシーン)の得点はある程度高くなる。すなわち、得点が1位のシーンと得点が2位のシーンの得点差が大きい場合に誤判定が起こることは少ない。そこで、本実施形態では、CPU101は、得点が1位のシーンと得点が2位のシーンの得点差が大きい場合には、シーン分類が適切に行われていると判定し、得点が1位のシーンに分割画像データ群を分類する。
なお、上述とは逆に、得点が1位のシーンと2位のシーンとの得点差が小さい場合、誤判定の可能性が高くなる。つまり、シーン分類得点化の結果の信頼性が低くなる。また、得点が2位のシーンに対して1位のシーンのレイアウト相性が「×」である場合は、誤判定が生じているならば、ユーザーの満足度が大きく低下してしまう。そのため、シーン分類得点化の結果の信頼性が低く、且つ得点が2位のシーンに対して1位のシーンのレイアウト相性が「×」である場合は、ユーザーの満足度が大きく低下してしまう可能性が高いと言える。
そのため、本実施形態では、CPU101は、シーン分類得点化の結果の信頼性が低い場合は、得点が1位のシーンと2位のシーンとのレイアウト相性をそれぞれ判定する。そして、得点が2位のシーンに対して1位のシーンのレイアウト相性が「×」であり、得点が1位のシーンに対して2位のシーンのレイアウト相性が「△」である場合は、得点が2位のシーンに分割画像データ群を分類する。これにより、画像データの評価が間違っている可能性が高い場合に、レイアウト相性が「×」となることを回避することができるシーンに画像データを分類することができる。
なお、得点が1位のシーンと得点が2位のシーンの得点差が大きいか否かの判定は、具体的には、例えば、得点が1位のシーンと得点が2位のシーンの得点差を閾値と比較することで行われる。なお、この閾値は、レイアウト結果に対するユーザーの満足度が高くなるように設定すればよく、任意に設定可能である。また、閾値を固定とするのではなく、例えば、得点が1位のシーンと得点が2位のシーンの組み合わせに応じて、閾値を変えてもよい。
図15は、各ケースにおけるシーン分類結果を示すテーブルである。シーン分類結果を示すテーブルでは、各ケースにおける、シーン分類結果が設定されている。本実施形態では、CPU101は、シーン分類結果を示すテーブルに基づいて、シーン分類を行う。具体的には、まず、CPU101は、得点が1位のシーンと得点が2位のシーンの組み合わせとレイアウト得点化の信頼性から、分類対象の分割画像データ群がいずれのケースであるかを判定する。そして、CPU101は、当該判定したケースに対応するテーブル列に示されるシーン分類結果を参照して、分割画像データ群をシーン分類する。なお、各ケースにおけるシーン分類結果を示すテーブルは、CPU101は、テーブル700をROM102等の記憶領域にシーン分類処理前に予め記憶しておく。なお、テーブル700は、アルバム作成アプリケーションのプログラムに予め組み込まれていても良いし、アルバム作成アプリケーション外のプログラムに組み込まれていても良い。
CPU101は、得点が1位のシーンと2位のシーンとの得点差が大きい場合には、「得点差の評価結果」において「○」が設定されている列におけるシーン分類結果を参照する。また、CPU101は、得点が1位のシーンと2位のシーンとの得点差が小さい場合には、「得点差の評価結果」において「×」が設定されている列におけるシーン分類結果を参照する。
得点が1位のシーンとは異なるシーンに分割画像データ群を分類するケースを、ケースNo.4を例にして説明する。
ケースNo.4は、得点が1位のシーンが「旅行」であり、得点が2位のシーンが「セレモニー」であり、得点が1位のシーンと得点が2位のシーンとの得点差が小さいと評価されているケースである。また、分割画像データ群の実際のシーンが得点2位の「セレモニー」である場合、得点1位の「旅行」にシーン分類されると、レイアウト相性は「×」となる。よって、誤判定が生じていたことによりレイアウト相性が「×」となることを回避するために、ケースNo.4では、得点が1位のシーンとは別のシーンに分割画像データ群を分類することが望ましい。ここで、図13を参照すると、実際のシーンが「セレモニー」である場合に「セレモニー」に分類するとレイアウト相性は「○」であり、実際のシーンが「旅行」である場合に「セレモニー」に分類するとレイアウト相性は「△」である。すなわち、「セレモニー」に分類すれば、実際のシーンが「日常」でない限り、誤判定が生じていても、レイアウト相性が「×」となることを回避することができる。なお、ケースNo.4では、「日常」のシーンの得点が一番低いため、実際のシーンが「日常」である可能性は低い。よって、CPU101は、ケースNo.4では分割画像データ群を「セレモニー」に分類する。その結果、仮に誤判定が生じた場合でも、レイアウト相性「○」若しくは「△」となる可能性(レイアウト相性「×」となることを避けることができる可能性)が高くなり、最低限のユーザー満足度を確保することができる。
ケースNo.6もケースNo.4と同様に、得点2位のシーンに分類すれば、誤判定した場合でもレイアウト相性は「○」若しくは「△」となる。よって、ケースNo.6も、得点2位のシーンに分類する。
次に、得点が1位のシーンに分割画像データ群を分類するケースを、ケースNo.2を用いて説明する。
ケースNo.2は、得点が1位のシーンは「旅行」であり、得点が2位のシーンは「日常」であり、得点が1位のシーンと得点が2位のシーンとの得点差が小さいと評価されているケースである。また、分割画像データ群の実際のシーンが「旅行」である場合、得点1位の「旅行」にシーン分類されると、レイアウト相性は「○」となる。実際のシーンが得点2位の「日常」である場合に得点1位の「旅行」にシーン分類すると、レイアウト相性テーブルが示すようにレイアウト相性は「△」である。すなわち、「旅行」に分類すれば、実際のシーンが「セレモニー」でない限り、誤判定が生じていても、レイアウト相性が「×」となることを回避することができる。なお、ケースNo.2では、「セレモニー」のシーンの得点が一番低いため、実際のシーンが「セレモニー」である可能性は低い。よって、CPU101は、ケースNo.2では分割画像データ群を「旅行」に分類する。その結果、仮に誤判定が生じた場合でも、レイアウト相性「○」若しくは「△」となる可能性(レイアウト相性「×」となることを避けることができる可能性)が高くなり、最低限のユーザー満足度を確保することができる。
ケースNo.8、10、12もケースNo.2と同様に、得点1位のシーンに分類すれば、誤判定した場合でもレイアウト相性は「○」若しくは「△」となる。よって、ケースNo.8、10、12も、得点1位のシーンに分類する。
なお、図13に示すように、実際のシーンが何れであっても「セレモニー」に分類した場合、レイアウト相性は「△」または「○」である。そこで、「得点差の評価結果」が「×」(シーン分類得点化の結果の信頼性が低い)のケースであるケースNo.2、4、6、8、10、12に対して、シーン分類結果を全て「セレモニー」にしてもよい。
図16は、本実施形態におけるシーン分類処理の手順を示すフローチャートである。図16に示すフローチャートは、例えば、CPU101がHDD104やROM102に格納されたプログラムをRAM103に読み出して実行することにより実現される。なお、このフローチャートが示す処理は、図4のS407に対応する。
S1601では、CPU101は、S406でシーン分割された画像データ群(分割画像データ群)のうち、シーン分類が完了していない画像データ群を取得する。
S1602では、CPU101は、シーン分類に用いる特徴項目を決定する。特徴項目とは、例えば、撮影期間、撮影枚数、撮影人数である。
S1603では、CPU101は、S1601で取得した画像データから、まだ取得していない特徴量を取得する。
S1604では、CPU101は、S1601で取得した画像データ群から、S1602で決定した全ての特徴量を取得したか否かを判定する。取得したと判定された場合は、S1605に移行し、取得していないと判定された場合は、S1603に戻ってまだ取得していない特徴量の取得を行う。S1605では、CPU101は、分類するシーンの種類を決定する。シーンの種類とは、例えば、「旅行」、「日常」、「セレモニー」である。
S1606では、CPU101は、S1601で取得した画像データ群について、S1604で取得した特徴量に基づき、まだ得点化を行っていない特徴項目の得点化を行う。
S1607では、CPU101は、S1601で取得した画像データ群について、1つの種類のシーンに対してS1602で決定した全ての特徴項目の得点化が終了したか否かを判定する。ここでは、例えば、撮影期間の得点、撮影枚数の得点、撮影人数の得点化が終了したか否かが判定される。終了したと判定された場合は、S1608に移行し、終了していないと判定された場合は、S1606に戻って、まだ得点化を行っていない特徴量に関して得点化を行う。
S1608では、CPU101は、1つの種類のシーンに対して算出した特徴量の得点の平均得点を算出する。
S1609では、CPU101は、S1605で決定した全ての種類のシーンに対して、特徴量の得点の平均得点の算出が終了したか否かを判定する。ここでは、例えば、「旅行」、「日常」、「セレモニー」の全種類のシーンに対して特徴量の得点の平均得点の算出が終了したか否かが判定される。CPU101は、終了したと判定された場合は、S1610に移行し、終了していないと判定された場合は、S1606に戻って、まだ得点化を行っていないシーンにおける得点化を行う。
なお、CPU101は、上記の得点化を、S407の説明で示した方法と同様にして、シーン分類テーブルを用いて行う。
S1610では、CPU101は、得点が1位と2位のシーンの種類(シーン分類の候補)を取得する。
S1611では、CPU101は、得点が1位と2位のシーンの種類の得点差と比較する閾値を設定する。ここで取得される閾値は、ROM102等に予め保存されている。なお、CPU101は、得点が1位と2位のシーンの種類に応じて取得する閾値を変えるようにしても良い。
S1612では、CPU101は、得点が1位と2位のシーンの種類の得点差を算出する。
S1613では、CPU101は、得点が1位と2位のシーンの種類の得点差とS1611で取得した閾値とを比較する。CPU101は、比較の結果、得点差が閾値以上であると判定された場合、S1614に移行し、得点差が閾値未満と判定された場合、S1615に移行する。
S1614では、CPU101は、S1601で取得した分割画像データ群を得点が1位のシーンに分類する。S1614の後、CPU101は、S408に移行する。
S1615では、CPU101は、レイアウト相性テーブルを参照して、得点が1位と2位のシーンのレイアウト相性を判定する。CPU101は、実際のシーンが得点2位のシーンである分割画像データ群のシーン分類結果が得点1位のシーンである場合のレイアウト相性が「○」若しくは「△」となる場合は、S1614に移行する。一方、CPU101は、実際のシーンが得点2位のシーンである分割画像データ群のシーン分類結果が得点1位のシーンである場合のレイアウト相性が「×」となる場合は、S1616に移行する。
S1616では、CPU101は、S1601で取得した分割画像データ群を、得点が1位のシーンと異なるシーンの種類に分類する。このとき、分割画像データ群がどのシーンの種類に分類されるかは、分割画像データ群がいずれのケースに該当するかが判定されて、各ケースにおけるシーン分類結果を示すテーブルが参照されることにより決定される。
以上のように、本実施形態によれば、シーン分類処理において、ユーザー満足度が低いレイアウト結果が出力されるようにシーン分類されてしまうことを抑制することができる。
[第2の実施形態]
第1の実施形態では、シーン分類得点化の結果の信頼性が低い場合に、得点1位のシーンと得点2位のシーンの組み合わせに応じて決定されるシーンに分割画像データ群を分類する例を説明した。本実施形態では、シーン分類得点化の結果の信頼性が低い場合に、「共通」のシーンに分割画像データ群を分類する例を説明する。なお、第1実施形態と同様の構成については、説明を省略する。
図17(A)は、本実施形態において利用される、各種類のシーンに対応したテンプレートのメインスロットとサブスロットとに採用される画像データの特徴を纏めたテーブルである。「旅行」、「日常」、「セレモニー」の何れのシーンにおいても、複数の人が一緒にいる状態が記念に撮影されるケースは多い。こうして撮影された画像データ(記念撮影画像データ)は、記念として残したいというユーザーの意図のもと撮影されることが多いため、何れのシーンに対応したテンプレートのメインスロットにレイアウトされてもユーザーの満足度が大きく低下することはない。また、記念撮影画像データは、周辺の状況も含めて撮影されることが多い為、人がアップとなる画像データであるケースは少ない。そこで、本実施形態では、シーンの種類として「共通」シーンを追加する。そして、複数の人が含まれ、且つ人がアップではないことを、「共通」シーンのメインスロットに採用される画像データの特徴とする。また、「旅行」、「日常」、「セレモニー」の何れのシーンにおいても人がアップとなる画像データや人の横顔の画像データが撮影されるケースがある。このとき、1つのテンプレートに記念撮影データの画像特徴を有する画像データばかりをレイアウトすると、変化のない単調なレイアウト結果となってしまう。そこで、「共通」シーンのサブスロットに採用される画像データの特徴を、人がアップとなっていることや人の横顔が映っていることとする。なお、「共通」のメインスロットとサブスロットとに採用される画像データの特徴は上述の例に限られず、何れのシーンにおいてもユーザーの満足度が大きく低下することがない任意の特徴を設定しても良い。
本実施形態では、各ケースにおけるシーン分類結果を示すテーブルとして、図17(B)に示すテーブルが利用される。CPU101は、図17(B)に示すテーブルをROM102等の記憶領域にシーン分類処理前に予め記憶しておく。なお、図17(B)に示すテーブルは、アルバム作成アプリケーションのプログラムに予め組み込まれていても良いし、アルバム作成アプリケーション外のプログラムに組み込まれていても良い。
次に、本実施形態において実行されるシーン分類処理について説明する。本実施形態においては、図18に示すフローチャートが実行される。また、図18に示すフローチャートは、例えば、CPU101がHDD104やROM102に格納されたプログラムをRAM103に読み出して実行することにより実現される。なお、このフローチャートが示す処理は、図4のS407に対応する。図4のS407以前の処理は、第1実施形態と同様である。また、S1801〜S1815の処理については、S1601〜S1615の処理と同様のため説明を省略する。また、S1806における、分割画像データ群の得点化は、第1の実施形態と同様に、「旅行」、「日常」、「セレモニー」に対して行われる。但し、「共通」のシーンに対する得点は算出されない。
S1813では、CPU101は、得点が1位と2位のシーンの種類の得点差とS1811で取得した閾値とを比較する。CPU101は、比較の結果、得点差が閾値以上であると判定された場合、S1814に移行し、S1801で取得した分割画像データ群を得点が1位のシーンに分類する。また、CPU101は、得点差が閾値未満と判定された場合、S1815に移行する。
S1815では、CPU101は、S1801で取得した分割画像データ群を、「共通」シーンに分類する。シーン分類結果が「共通」となったシーンに対しては、図4のS410において、図17(A)に示す画像特徴の画像の得点が高くなるように得点化する。なお、スロット特徴テーブルに設定される、「共通」シーンに対応するテンプレートの各スロットの特徴量の平均値と標準偏差は、「旅行」、「日常」、「セレモニー」と同様にして行われる。すなわち、まず、各種類のシーンに分類された画像データのうち、メインスロットに採用されるべき画像データの特徴に適合すると判定された複数の画像データが集められる。また、サブスロットに採用されるべき画像特徴に適合すると判定された複数の画像データが集められる。すなわち、図17(A)に示す特徴に適合する画像データが集められる。そして、画像解析部204により、集められた各画像データにおける顔画像の数、顔画像の位置、顔画像のサイズの特徴量が抽出される。そして、それらの特徴量の平均値と標準偏差とが、「共通」シーンおよび各スロット種類(メインスロットとサブスロット)に対して求められ、アルバム作成アプリケーションのプログラムと共に記憶される。
図4のS408以降は、第1の実施形態における説明と同じである。以上のように、本実施形態によれば、シーン分類処理において、ユーザー満足度が低いレイアウト結果が出力されるように、シーン分類されてしまうことを抑制することができる。
[その他の実施形態]
上述の各実施形態では、シーン分類得点化の結果の信頼性が低い場合に、得点1位のシーンとは異なるシーンに分類する形態ついて説明したが、この形態に限定されない。すなわち、シーン分類得点化の結果の信頼性が低い場合に、分類するシーンを変更するのではなく、画像データの得点化において利用するスロット特徴テーブルの設定値を変更する形態としても良い。このとき、画像の得点化において利用される特徴量の平均値と標準偏差は、ユーザーの満足度が大きく下がらない画像特徴を有する画像データに基づいて算出されればよい。この平均値と標準偏差は、例えば、図15と図17に示すシーン分類結果のシーン毎にそれぞれ設定される。このようにすれば、ユーザーの満足度が大きく下がらない画像特徴を持つ画像データの得点が高くなるため、ユーザーの満足度が低いレイアウト結果が出力されることを抑制できる。
また、シーン分類得点化の結果の信頼性が低い場合には、誤判定が生じていてもユーザーの満足度が大きく下がらない(レイアウト相性が「×」とならない)シーンの得点を参照してS417の画像選択を行う形態であってもよい。この場合、CPU101は、画像データに対し、分類されたシーンに対応する得点だけでなく、各シーンに対応する得点を算出しておく。
また、上述の各実施形態では、レイアウト相性を、各シーンに対応するメインスロットにレイアウトされる画像データを比較することで評価する例で説明したが、サブスロットにレイアウトされる画像データを比較することで評価してもよい。若しくは、その両方によって評価してもよい。
また、シーン分類得点化の信頼性を、得点が1位のシーンと2位のシーンとの得点差を参照することで判定する例を上述したが、これに限るものではない。例えば、得点が1位のシーンの得点の絶対値を参照することで判定しても良い。この場合、CPU101は、例えば、1位のシーンの得点と、予めプログラム等に設定されている閾値とを比較する。そして、CPU101は、1位の得点が閾値以上であれば、シーン分類得点化の信頼性が高いと判定し、閾値未満であれば、シーン分類得点化の信頼性が低いと判定する。これは、得点が1位のシーンと2位のシーンとの得点差がいずれであっても、得点が1位のシーンの得点が著しく低い場合には、誤判定が生じている可能性が高いためである。この方法によって、シーン分類得点化の信頼性が低いと判定された場合には、上述の実施形態と同様に、得点が上位のシーンの間のレイアウト相性によって、分類するシーンを決めても良いし、「共通」シーンに分類してもよい。なお、得点が1位のシーンと2位のシーンとの得点差を参照する判定方法と、得点が1位のシーンの得点の絶対値を参照する判定方法とを組み合わせて利用しても良い。
上述の実施形態では、本発明にかかるシーン分類処理を、分割画像データ群毎に行う例を示したが、この形態に限定されず、例えば、1つの画像データ毎に行う形態であっても良い。この場合、シーン分類された個々の画像データがシーン毎に集められた後、レイアウトが実行される。
上述の実施形態では、本発明にかかるシーン分類処理を、自動レイアウト機能に適用する例を示したが、この形態に限定されない。例えば、本発明にかかるシーン分類処理を、シーン分類された画像データを各シーンに対応したフォルダに自動で振り分ける機能等に適用しても良い。
上述の実施形態では、シーン分類得点化や画像得点化等の評価において、点数を付すことで評価を行っていたが、この形態に限定されない。すなわち、得点を用いずに評価を行っても良く、例えば、評価が高い順に「◎」、「○」、「△」、「×」の評価を付し、付された評価によってシーン分類や画像選択、等が行われるような形態であっても良い。
上述の実施形態では、自動レイアウトによってアルバムを作成する例について説明したが、単葉の印刷物を作成する形態に対しても本発明を適用することができる。この場合、CPU101は、例えば、上述の実施形態における1つの見開きを1枚の単葉の印刷物とみなして、処理を行えばよい。また、単葉の印刷物には、一般に、1枚の画像データしかレイアウトされないため、単葉の印刷物用のテンプレートには、スロットが1つのみあるものとする。このスロットは、メインスロットとみなしてもサブスロットとみなしても良い。なお、シーン毎の印刷物の枚数を設定可能な構成であれば、CPU101は、上述の実施形態における1つの見開きを設定された枚数の単葉の印刷物とみなして、処理を行っても良い。この場合、例えば1枚目の単葉の印刷物のテンプレートにあるスロットをメインスロット、2枚目以降の単葉の印刷物のテンプレートにあるスロットをサブスロットとしてみなしても良い。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。