(第1実施形態)
以下、本発明の実施形態について図面を用いて詳細に説明する。
以下の実施形態では、画像処理装置上で、アルバム作成のためのアプリケーションプログラム(以下、「アルバム作成アプリ」ともいう)を動作させ、自動レイアウトを生成するまでの手順について説明する。以下に説明する画像とは、特に断りが無い限り、静止画、動画、動画中のフレーム画像、また、SNS(ソーシャル・ネットワーキング・サービス)サーバ上の静止画と動画と動画中のフレーム画像を含む。
図1は、本発明に係る画像処理装置のハードウェアの構成を説明するブロック図である。画像処理装置としては、例えば、PC(パーソナルコンピュータ)、スマートフォン、タブレット端末、カメラ、プリンタ等が挙げられ、本実施形態ではPCとする。
図1において、画像処理装置100は、CPU101と、ROM102、RAM103、HDD104、ディスプレイ105、キーボード106、マウス107、データ通信部108等を備えている。これらは、データバス109により相互に接続されている。CPU101と、ROM102、RAM103等によって、画像処理装置100のコンピュータが形成される。
CPU(中央演算装置/プロセッサ)101は、システム制御部であり、画像処理装置100全体を制御する。また、CPU101は、本実施形態で説明する画像処理方法をプログラムに従って実行する。なお、図中のCPUは1つとしたが、これに限定されず、複数備えられていても良い。
ROM102には、CPU101により実行されるプログラムやOS(オペレーティングシステム)が記憶されている。RAM103は、CPU101によるプログラムの実行時に、各種情報を一時的に記憶するためのメモリを提供している。HDD(ハードディスク)104は、画像ファイルや画像解析などの処理結果を保持するデータベースなどを記憶するための記憶媒体である。本実施形態では、RAM103は、後述するアルバム作成アプリを記憶する。
ディスプレイ105(表示部)は、本実施形態のUI(ユーザインターフェイス)や画像のレイアウト結果をユーザに提示する装置である。ディスプレイ105は、タッチセンサー機能を備えていても良い。キーボード106は、入力装置の1つであり、例えば、ディスプレイ105に表示されたUI上に所定の情報を入力するのに用いられる。所定の情報とは、例えば、作成したいアルバムの見開き数やページ数等の情報である。マウス107は、入力装置の1つであり、例えば、ディスプレイ105に表示されたUI上のボタンをクリックするのに用いられる。なお、例えばユーザが、ディスプレイ105に表示されている、アルバム作成アプリに対応するアイコンを、マウス107の操作によりダブルクリックすることで、アルバム作成アプリが起動する。
データ通信部108(通信部)は、プリンタやサーバなどの外部装置と通信するための装置である。例えば、アルバム作成アプリによって作成されたデータは、データ通信部108を介して、画像処理装置100に接続された不図示のプリンタやサーバに送信される。また、データ通信部108は、不図示のサーバやSNS(ソーシャルネットワーキングサービス)サーバ上の静止画データを受信する。なお、本実施形態では、データ通信部108は、SNSサーバから静止画データを受信するが、動画データも受信しても良い。
データバス109は、上述した各部(102〜108)とCPU101とを接続する。
本実施形態では、アルバム作成アプリは、共通ページと個別ページとを含む複数のアルバムデータを、一度に生成する機能を有するものとする。共通ページとは、アルバム作成アプリによって一度に生成される全てのアルバムデータに共通して含まれるページである。個別ページとは、アルバム作成アプリによって一度に生成されるアルバムデータのいずれかに含まれるページであり、アルバム作成アプリによって一度に生成される全てのアルバムデータに共通しては含まれないページである。個別ページは、それぞれのアルバムデータに対応した内容となるため、アルバムデータ毎に、個別ページの内容が異なる。そして本実施形態では、共通ページに含まれる画像データを選択するための要素(基準)と、個別ページに含まれる画像データを選択するための要素がそれぞれ異なる。そして、個別ページに含まれる画像データを選択するための要素は、アルバムデータ毎にそれぞれ異なる。
例えば、複数のユーザが、それぞれ画像データを持ち寄って、アルバムデータを生成するユースケースがあるとする。このケースにおいて、複数のユーザそれぞれに対して出力される複数のアルバムデータには、複数のアルバムデータに共通するページである共通ページと、複数のアルバムデータに共通せずアルバム毎に異なるページである個別ページとが含まれることが要望される。共通ページと個別ページの両方を含むアルバムデータを生成する方法として例えば、共通ページのみによって構成されるアルバムデータを生成した後、当該アルバムデータをユーザが手動で編集する方法がある。しかしながらこの方法は、ユーザにとって手間がかかるため、ユーザビリティが低い。本実施形態のように、それぞれ異なる基準によって、共通ページに含まれる画像データと個別ページに含まれる画像データとを選択し、複数のアルバムデータを生成することで、適切な内容のアルバムデータを、簡便に生成することが可能となる。
本実施形態に係るアルバム作成アプリが、画像処理装置100にインストールされると画像処理装置100上で動作するOSによりディスプレイ105に表示されるトップ画面(デスクトップ)上に起動アイコンが生成される。そして、ユーザが起動アイコンをマウス107の操作によりダブルクリックすると、HDD104に保存されているアルバム作成アプリのプログラムがRAM103にロードされる。そして、RAM103にロードされたプログラムがCPU101によって実行されて、アルバム作成アプリケーションが起動する。
図3は、起動したアルバム作成アプリが提供する設定画面301の一例を示す図である。設定画面301は、ディスプレイ105に表示される。ユーザが設定画面301を介して、アルバムの作成条件を設定することで、アルバム作成アプリは、ユーザから指定される設定内容を取得する。
本実施形態では、アルバムの作成条件として、アルバムに使用される画像データ群、総見開きデータ数、アルバムの作成に利用される商材、一度に作成するアルバムデータ数及びアルバム毎の主被写体を設定可能である。なお本実施形態においてページとは、見開きページ(以下、見開き)と、個別ページを含む。そして本実施形態において見開きとは、異なるシートに印刷された、互いに隣接する1対の個別ページに相当し、見開きデータとは、見開きのレイアウトを決定し、決定されたレイアウトによって見開きを印刷するためのデータである。なお本実施形態では、見開きデータ毎に処理を行う形態としているが、1ページ(1つの個別ページ)に対応するページデータ毎に処理を行う形態であっても良い。また、主被写体とは、アルバム中で優先的にレイアウトされる被写体のことである。主被写体として例えば、特定の個人や、犬や猫、花、料理といった物体のカテゴリ、オブジェクト等を設定可能である。
設定画面301上のパスボックス302は、アルバム作成の対象となる画像データ群のHDD104中の保存場所(パス)を示す。フォルダ選択ボタン303は、ユーザによるマウス107の操作によりクリックされることより、アルバム作成の対象とする画像データ群を含むフォルダをツリー構成でユーザが選択可能に表示する。そして、ユーザにより選択された画像データ群を含むフォルダパスがパスボックス302に表示される。ここで指定された画像データ群が取得されて、アルバムデータが生成される。なお、データ通信部108を介してネットワーク上のサーバやSNSサーバ等の記憶領域から画像データ群が取得されても良い。ここでいう画像データ群とは、アルバム作成に利用される画像データの候補を指す。また、アルバム作成の対象となる画像データ群の指定に当たり、アルバム作成の対象となる画像データ群の保存場所以外の情報が入力されても良い。例えば、アルバム作成の対象となる画像データ群が生成された(当該画像データに対応する写真が撮影された)日時(以後、撮影日時という。)が指定されても良い。
アルバム作成の対象となる画像データは、例えば、静止画像データや、動画データからフレームが切り出されることで取得される切り出し画像データである。静止画像データや切り出し画像データは、撮像デバイスから取得されたものである。撮像デバイスは、画像処理装置100が備えていても良いし、画像処理装置100の外部の装置である外部装置(PCやスマートフォン、デジタルカメラ、タブレット端末等)が備えるものであっても良い。なお、画像処理装置100は、外部装置から画像データを取得する場合は、データ通信部108を介して画像データを取得する。また、画像処理装置100は、静止画像データや切り出し画像データを、データ通信部108を介してネットワークやサーバから取得しても良い。CPU101は、画像データに付随したデータを解析して、各画像データがどこから取得されたのかを判定する。なお、CPU101は、アルバム作成アプリを介してSNSサーバから画像データを取得した場合は、アルバム作成アプリによって、当該画像データがどこから取得されたのかを管理しても良い。なお、アルバム作成アプリによって利用される画像データは、上述した種類の画像データに限定されるものではなく、他の種類の画像データであっても良い。
見開き数ボックス304は、1冊のアルバムにおける総見開き数の指定をユーザから受け付けるためのボックスである。ユーザは、キーボード106を使って見開き数ボックス304に直接数字を入力したり、マウス107を使ってリストから見開き数ボックス304に数字を入力したりすることで、総見開き数を指定できる。なお、ここで指定された見開き数は、アルバム数ボックス310で指定される数に対応する全てのアルバムに適用されるが、例えば、各アルバムに総見開き数が指定される構成としても良い。
アルバム数ボックス310は、アルバム作成アプリによって一度に作成するアルバムの数の指定をユーザから受け付けるためのボックスである。ユーザは、キーボード106を使ってアルバム数ボックス310に直接数字を入力したり、マウス107を使ってリストからアルバム数ボックス310に数字を入力したりすることで、アルバム作成アプリによって作成するアルバムの数を指定できる。
アルバム作成アプリによって作成されるアルバムに含まれる見開きの例を、図2を用いて説明する。上述したように、本実施形態では、アルバム数ボックス310によって指定された数の各アルバムには、共通ページと個別ページとが含まれるため、各アルバムは、それぞれ少なくとも一部の内容が異なる。
ここでは、アルバム数ボックス310に対する指定により、一度に3冊のアルバム(アルバム1〜3)が作成されるものとする。画像301はアルバム1の見開きに配置された画像の例であり、画像301中の文字は画像中に写っている主被写体を表している。見開き302は、共通ページによって構成される見開きであり、アルバム1〜3全てに含まれている。そして、このように共通ページは、全てのアルバムに含まれるため、各アルバムに指定されたそれぞれの主被写体が写っている画像を中心にレイアウトされている。一方、見開き303、304、305は、個別ページによって構成される見開きである。そのため、それぞれの見開きは、1つのアルバムにしか含まれていない。そして例えば、アルバム1に含まれる見開き303は、アルバム1に指定された主被写体である主被写体Aが写っている画像を中心にレイアウトされている。また、アルバム2に含まれる見開き304は、アルバム2に指定された主被写体である主被写体Bが写っている画像を中心にレイアウトされている。このように、本実施形態では、それぞれ異なる基準で作成される2種類の見開きで構成される複数のアルバムを作成する。
主被写体指定部305は、アルバム数ボックス310に入力された数に対応する各アルバムに対する主被写体の指定をユーザから受け付けるための領域である。ユーザは例えば、主被写体が写っている画像データをマウス107によって、主被写体指定部305中の各アルバムに対応する領域にドラッグ&ドロップすることで、アルバムごとに主被写体を指定することができる。
見開き写真枚数306は、作成するアルバムの各見開きに配置される画像データの枚数の多寡の指定をユーザから受け付けるための領域である。ユーザは、スライダーバーを「多」側に設定すると、各見開きに配置される画像データの枚数を増やすことができる。なお、各見開きに配置される画像データの枚数が増やされることで、結果的に、各アルバムに配置される画像データの枚数が増やされる。また、ユーザは、スライダーバーを「少」側に設定すると、各見開きに配置される画像データの枚数を減らすことができる。なお、各見開きに配置される画像データの枚数が減らされることで、結果的に、各アルバムに配置される画像データの枚数が減らされる。なお、ここで指定された画像データの枚数の多寡は、アルバム数ボックス310で指定される数に対応する全てのアルバムに適用されるが、例えば、各アルバムごとに画像データの枚数の多寡が指定される構成としても良い。
商材指定部307は、作成するアルバムに用いられる商材の指定をユーザから受け付けるための領域である。ユーザは、商材指定部307に対する入力により、アルバムのサイズ、アルバムの用紙の種類、アルバムの表紙の種類、アルバムの綴じ部の種類等を設定することができる。
OKボタン308は、作成するアルバムに関する設定が完了したことの入力をユーザから受け付けるためのボタンである。ユーザによりOKボタン308がマウス107でクリックされると、アルバム作成アプリは、設定画面301上で設定されている内容を取得し、取得した内容を、以下で説明するアルバムデータ作成処理に利用する。
リセットボタン309は、設定画面301上の各設定情報をリセットするためのボタンである。
なお、設定画面301上では、上述した設定以外の設定を実行可能であっても良い。例えば、動画に関する設定や、画像・動画データの取得先の設定等を実行可能であっても良いし、作成対象のアルバムのモードを指定可能であっても良い。なお、アルバムのモードとは、所定のオブジェクトを含む画像を優先してテンプレートにレイアウトするためのモードであり、例えば、「人物」、「動物」、「料理」の3つのモードである。なお、アルバムのモードは、例えば、アルバムのテーマと言い換えることができる。例えば、「人物」が選択された場合は、人物を含む画像を優先してテンプレートにレイアウトする。また、例えば、「動物」が選択された場合は、動物を含む画像を優先してテンプレートにレイアウトする。また、例えば、「料理」が選択された場合は、料理を含む画像を優先してテンプレートにレイアウトする。なお、上述の3つ以外のオブジェクトが写りこんでいる画像を表わす画像データを優先してテンプレートにレイアウトするためのモードがあっても良い。また、同時に複数のモードが選択されても良い。その場合、選択された複数のモードに対応する複数のオブジェクトの少なくとも1つを含む画像を優先してテンプレートにレイアウトする。ユーザがマウス107によってクリックすることで、ユーザは、各モードに対応する複数のアイコンのなかのいずれかのアイコンを選択可能である。そして、選択されたアイコンに対応するモードが、作成対象のアルバムのモードとして設定される。なお、アルバムのモードは上述の3つに限定されず、例えば、「建物」、「乗り物」、「花」等、他のモードがあっても良い。
図5は、本実施形態に係るアルバム作成アプリにより実行される自動レイアウト処理を示すフローチャートである。図5に示すフローチャートは、例えば、CPU101がHDD104に格納されたアルバム作成アプリに対応するプログラムをROM102やRAM103に読み出して実行することにより実現される。なお本実施形態では、HDD104に保存されたアルバム作成アプリは、ディスプレイ105に表示されているアルバム作成アプリに対応するアイコンがユーザによりマウス107を使って操作されることにより起動して、以下の処理を実行する。
S401では、CPU101は、アルバム作成条件を設定する。具体的には例えば、図3に示す画面を介して、ユーザからアルバム作成条件の設定を受け付ける。アルバム作成条件の設定の詳細は、図3を用いた説明にて上述したとおりである。
S402では、CPU101は、パスボックス302において指定されている画像データ群に含まれる画像データを取得する。具体的には、CPU101は、パスボックス302において指定されている画像データ群を、HDD104から読み込み、RAM103に展開する。
S403では、CPU101は、S402にてRAM103に展開された画像データを解析する画像解析処理を実行する。図5(B)は、本実施形態に係るアルバム作成アプリにより実行される画像解析処理を示すフローチャートである。
S40301では、CPU101は、S402で取得した画像データに付随する情報(Exif情報等)から撮影日時に関する情報を取得する。
S40302では、CPU101は、S402で取得した画像データから、画像データの特徴量に関する情報を取得する。特徴量としては、例えば、ピントが挙げられる。ピントの特徴量を取得するためのエッジの検出方法としては、例えば、一般的なソーベルフィルタが用いられる。ソーベルフィルタでエッジ検出して、エッジの始点と終点の輝度差を始点と終点の距離で割ればエッジの傾き、すなわち輝度勾配が算出可能である。画像中のエッジの平均傾きを算出した結果から、平均傾きが大きい画像は、平均傾きが小さい画像よりもピントが合っているとみなすことができる。そして、傾きに対して異なる値の複数の閾値を設定すれば、どの閾値以上かを判定することにより、ピント量の評価値を出力可能である。本実施形態では、異なる2つの閾値を予め設定しておき、○△×の3段階により、ピント量を判定する。閾値については、アルバムに採用したいピントの傾きが「○」、許容できるピントの傾きが「△」、許容できない傾きが「×」となるようにして、実験等により予め設定される。なお、閾値の設定は、例えば、アルバム作成アプリの作成元等により提供されても良いし、ユーザインタフェース上で設定可能としても良い。
S40303では、CPU101は、S402で取得した各画像データに対してオブジェクト検出処理を実行する。まず、CPU101は、S402で取得した各画像データが表す画像から人物の顔を検出する。顔検出の処理には、公知の方法を用いることができ、例えば、複数用意した弱識別器から強識別器を作成するAdaboostが用いられる。本実施形態では、Adaboostにより作成した強識別器により人物(オブジェクト)の顔画像が検出される。また、CPU101は、顔画像を抽出すると共に、検出した顔画像の位置の左上座標値と右下座標値を取得する。この2種類の座標を持つことにより、CPU101は、顔画像の位置と顔画像のサイズを取得することが可能となる。また、S40303では、CPU101は、なお、顔に限らず、犬や猫等の動物、花、料理、建物、置物、乗り物等のオブジェクトを検出対象としてAdaboostによって強識別器を作成しても良い。これにより、CPU101は、顔以外のオブジェクトも検出することが可能となる。また、Adaboostではなく、ディープニュートラルネットワーク等によってオブジェクトが検索されても良い。
S40304では、CPU101は、個人認識処理を実行する。具体的には、CPU101は、S40303で抽出した顔画像と、顔辞書データベースに個人ID毎に保存されている代表顔画像との類似性を比較することで、個人認識を実施する。CPU101は、S40303で抽出した顔画像と各代表顔画像との類似性を判定し、類似性が閾値以上であり且つ最も類似性が高い代表顔画像のIDを、S40304で抽出した顔画像のIDとする。すなわち、類似性が閾値以上であり且つ最も類似性が高い代表顔画像に対応する人物が、S40304で抽出した顔画像に対応する人物として特定する。なお、CPU101は、S40304で抽出した顔画像と、顔辞書データベースに保存されている全ての代表顔画像との類似性が閾値未満の場合は、抽出した顔画像に新規の個人IDを割り振って、新規の人物として顔辞書データベースに登録する。なお顔辞書データベースは例えば、HDD104に格納されている。
S404では、CPU101は、パスボックス302において指定されている画像データ群に含まれる画像データ全てに対して画像解析処理が終了したか否かを判定する。終了していない場合(S404でNo)、S402に戻り、まだ処理の対象となっていない画像データが取得される。終了している場合(S404でYes)はS405に進む。
S405では、CPU101は、シーン分割をする。シーン分割とは、S401〜S404にて得られた全画像データを、シーン毎に分割して、複数の画像群として管理することを指す。具体的には、CPU101は、S403で取得済みの撮影日時情報から算出した、各画像データの撮影日時の時間差に基づいて、全画像データを複数の画像群に分割する。なお、以下の説明において、全画像データ(メイン画像群)が分割されて得られる各画像群を、サブ画像群と言う。本実施形態では、例えば、以下に示す方法によって、シーン分割を行う。まず、撮像日時が古い順においてN番目の撮像画像データの撮像日時と(N+1)番目の撮像画像データの撮像日時との差が1日以下であれば、以下の通りである。撮像日時が古い順においてN番目の撮像画像データの撮像日時と(N+1)番目の撮像画像データの撮像日時との差が16時間以上であれば、N番目の撮像画像データと(N+1)番目の撮像画像データとの間にグループの境界を設定する。また、撮像日時が古い順において隣接する撮像画像データ間で撮像日時の差が、どの撮像画像データ間であっても16時間未満であるとする。この場合、1日で撮像した撮像画像データ群において最初に撮像した撮像画像データの撮像日時と最後に撮像した撮像画像データの撮像日時との差が4時間未満であれば、該1日の撮像画像データ群を1つのサブ画像群(グループ)とする。一方、該1日で撮像した撮像画像データ群において最初に撮像した撮像画像データの撮像日時と最後に撮像した撮像画像データの撮像日時との差が4時間以上であったとする。この場合、該1日で撮像した撮像画像データの数が50枚未満(1日で撮像した撮像画像の数が50未満)であれば、該1日の撮像画像データ群を1つのサブ画像群(グループ)とする。このような撮像画像データのグループ分けの一例を図5(A)に示す。図5(A)〜(C)において横軸は撮像日時(左側に向かうほど古く、右側に向かうほど新しい)、縦軸は撮像画像データの数を示す。図5(A)では、撮像画像データ群をグループ601〜608の8個のサブ画像群(グループ)に分割している。図5(A)において矢印はグループの境界を示している。なお、上記のシーン分割方法の説明において使用した撮像日時の差に対する閾値や撮像画像データの数に対する閾値は一例であり、これらの値に限るものではない。なお、分割後の画像群を分割画像群と呼び、1つのシーン毎に1つの分割画像群が設定される。
また、本実施形態では、シーン分割に撮影日時情報を用いるが、これに限らない。例えば撮影位置情報を用いて、撮影位置が近い画像データ同士を、1つの分割画像群として設定しても良い。また例えば、個人認識結果を用いても良い。例えば、あるグループ(クラスや部活等)に所属する生徒の画像データを事前にアルバム作成アプリ登録しておく。そして、当該画像データによって認識される個人認識結果を用いることで、グループに所属する生徒が写っている画像データ同士を、1つの分割画像群として設定しても良い。また例えば、画像が保存されているフォルダ名やソーシャルネットワーキングサービス等で付けたタグ情報を用いても良い。具体的には例えば「運動会」や「修学旅行」などの検索ワードを含むタグ情報を持つ画像データ同士を、1つの分割画像群として設定しても良い。検索ワードは例えば、設定画面301を介してユーザから入力される。
S406では、CPU101は、シーン分類をする。具体的には、CPU101は、S407でシーン分割されることで得られたサブ画像群をシーンの種類毎に得点化して、一番得点が高いシーンの種類に、当該サブ画像群を分類する。なお、以下の説明において、S406における得点化をシーン分類得点化という。本実施形態では、シーンの種類として、「旅行」、「日常」、「セレモニー」があるものとし、サブ画像群をこれらのシーンのいずれかに分類する例を説明する。なお、シーン分類得点化には、シーンの各種類に対応する特徴量の情報が格納されたシーン分類テーブルが利用される。
ここで、プログラムに予め格納される、シーン分類テーブルの作成方法について説明する。まず、「旅行」、「日常」、「セレモニー」のシーンに分類されると予め判定された複数の画像データ群がプログラムの設計者によって集められ、集められた画像データ群について、特徴量が取得される。ここで取得される特徴量の例は、例えば撮影期間、撮影枚数、撮影人数である。撮影期間は、各画像データ群において最初に生成された画像データと最後に生成された画像データとの撮影時間差である。撮影枚数は、各画像データ群の枚数である。撮影人数は、各画像データ群が表す各画像に含まれる顔の平均数である。その結果、例えば、旅行シーンであると予め判定された複数の画像データから成る1画像データ群について、撮影期間、撮影枚数、撮影人数の特徴量が取得される。なお、特徴量は撮影期間、撮影枚数、撮影人数に限定されず、他の特徴量が用いられても良いし、その中のいずれかのみが用いられても良い。
そして、上記のような撮影期間、撮影枚数、撮影人数の特徴量の取得が、予め集められた他の画像データ群についても行われる。次に、シーン毎に集められた複数の画像データ群から取得された特徴量に基づいて、撮影期間の平均値と標準偏差、撮影枚数の平均値と標準偏差、1画像あたりの撮影人数の平均値と標準偏差とが求められる。このようにして求められた値と、シーンの各種類とが対応付けられることで、シーンの種類ごとの各平均値と標準偏差を示すシーン分類テーブルが作成される。
本実施形態では、シーン分類テーブルとして、図6に示すテーブル600が利用されるものとする。テーブル600では、シーンID601に対応付けて、撮影期間602、撮影枚数603、撮影人数604それぞれの平均値と標準偏差とが登録されている。CPU101は、テーブル600をROM102やHDD104等の記憶領域にシーン分類処理前に予め記憶しておく。なお、テーブル600は、アルバム作成アプリケーションのプログラムに予め組み込まれていても良いし、アルバム作成アプリケーション外のプログラムに組み込まれていても良い。
ここで、シーン分類得点化について説明する。アルバム作成アプリが起動された後、ユーザがパスボックス302で指定した画像データ群がS405でシーン分割されることで得られた各サブ画像群に対して、CPU101は、撮影期間、撮影枚数、撮影人数の各特徴量の得点を算出する。CPU101は、各分割分の撮影期間、撮影枚数、撮影人数の得点、及びそれらの平均得点を、図6に示すシーン毎の平均値と標準偏差を用いて式(1)及び(2)より算出する。なお、下式における、所定の種類のシーンに対応する所定の特徴量の平均値および所定の種類のシーンに対応する所定の特徴量の標準偏差は、テーブル600に登録されている。また、特徴量は、撮影期間と撮影枚数、撮影人数の3つの特徴項目について取得される。そのため、特徴項目数は本例では3となる。
まず、CPU101は、式(1)により、サブ画像群の、シーンの各種類および各特徴量毎の得点を取得する。
サブ画像群の、所定の種類のシーンに対応する所定の特徴量の得点=50−|10×(所定の種類のシーンに対応する所定の特徴量の平均値−サブ画像群の所定の特徴量)/所定の種類のシーンに対応する所定の特徴量の標準偏差|・・・式(1)
これにより、例えば、サブ画像群において、「旅行」シーンに対応する撮影期間、撮影枚数、撮影人数それぞれの得点が取得される。なお、CPU101は、「旅行」シーンだけでなく、他の各種類のシーンについても得点を取得する。
次に、CPU101は、式(1)により求めた各得点を式(2)により平均化して、サブ画像群の、各種類のシーンに関する得点を取得する。
サブ画像群の、所定の種類のシーンに関する得点=(サブ画像群の、所定の種類のシーンに対応する撮影期間の得点+撮影枚数の得点+撮影人数の得点)/特徴項目数・・・式(2)
これにより、例えば、サブ画像群において、「旅行」、「日常」、「セレモニー」の各種類のシーンに関する得点が取得される。なお、CPU101は、シーン分類得点化を、各サブ画像群について行う。
以上によって、各サブ画像群について「旅行」、「日常」、「セレモニー」毎の得点が算出される。そして、CPU101は、得点が1位であるシーンをそのサブ画像群のシーンであると分類する。例えば、図5(A)のシーン分割された後のシーン5に対応するサブ画像群5は、撮影期間が36時間、撮影枚数が300枚、撮影人数が1.7人であったとする。すると、サブ画像群5において、「旅行」に関する得点は45.32、「日常」に関する得点は18.38、「セレモニー」に関する得点は−29.92となり、サブ画像群5は最高得点のシーンである「旅行」に分類される。なお、いずれのサブ画像群がいずれのシーンに分類されているかは識別ができるようにシーンIDで管理される。また、各シーンに関する得点のうち、同点の得点がある場合は、CPU101は、予め定められた優先度に従って、サブ画像群を、同点のシーンのうちいずれかのシーンに分類する。具体的には、CPU101は、サブ画像群を、同点のシーンのうち、優先度の大きいシーンに分類する。なお、例えば、本実施形態では、優先度の大きさは、日常>セレモニー>旅行の順であるものとする。優先度の大きさの順番はこれに限定されるものではなく、例えばユーザが優先度の順番を設定できるようにしても良い。
なお、シーン分類得点化に用いられる特徴量は、撮影期間と撮影枚数、撮影人数の3つであるものとしたが、この形態に限定されない。例えば、各シーンに対応する所定のオブジェクトが画像データに含まれるか否か、といったフラグを特徴量としても良い。例えば、「旅行」に対応する所定のオブジェクトが「空」である場合、「空」が含まれている画像データが多いサブ画像群の、「旅行」に関する得点が高くなるように設定される。また、個人識別情報を特徴量としても良い。例えば、「セレモニー」がさらに細かく分類された「結婚式」、「披露宴」というシーンがあるとする。そして、CPU101は、メイン画像群の中で最も多く画像データに含まれている二人を新郎新婦として識別する。そして、新郎新婦のみが含まれているか、新郎新婦以外の人が含まれているか、といったフラグを特徴量とする。この場合例えば、新郎新婦のみが含まれている画像データが多いサブ画像群の、「結婚式」に関する得点が高くなるように設定され、新郎新婦以外の人が含まれている画像データが多いサブ画像群の、「披露宴」に関する得点が高くなるように設定される。なお、シーン分類は例えば、Convolution Neural Network(CNN)を用いた機械学習による出力等によって行われても良い。
S407では、CPU101は、CPU101は、主被写体指定部305に対するユーザの入力に従って、アルバム数ボックス310に入力された数に対応する各アルバムについて主被写体を設定する。ここでは説明のため、アルバム1に主被写体1、アルバム2に主被写体2を設定したとする。
S408では、CPU101は、画像得点化を実行する。S418における画像得点化とは、画像データ毎に後述の観点で評価した得点を付与する(スコアリング)ことであり、後述の、テンプレートに配置される画像データの選択時に参照される。本実施形態において画像得点化は、S40302で取得された各画像データの特徴量に基づいて、複数の観点において行われる。すなわち、本実施形態において画像得点化により、各画像データに対して、複数の点数が付与される。具体的には、本実施形態では、画質に基づく得点、主被写体1に基づく得点、主被写体2に基づく得点の3つの観点における得点が、各画像データに対して付与される。
まず、画質に基づく画像得点化について説明する。本実施形態では例えば、画質に基づく画像得点化において、ピントや画素数等の特徴量が用いられる。具体的には例えば、S40302で取得されたピントの特徴量が「○」である画像データに対して付加される得点が、ピントの特徴量が「△」や「×」である画像データに対して付加される得点より高くなるように、画質に基づく得点が付加される。また例えば、画素数が高い画像を表す画像データに対して付加される得点が、画素数が低い画像を表す画像データに対して付加される得点より高くなるように、画質に基づく得点が画像データに対して付加される。なお、画質に基づく画像得点化に用いられる特徴量は、撮影時に使用されたレンズ情報などの撮影情報であっても良いし、アプリケーションに入力される画像の圧縮フォーマットであっても良い。
次に、主被写体1に基づく画像得点化、主被写体2に基づく画像得点化について説明する。これらの画像得点化は、S40303およびS40304で解析された顔のサイズおよび個人認識が用いられて特定される、主被写体が含まれているか否かに関する情報に基づいて行われる。例えば、主被写体1が含まれている画像データに対して付加される得点が、主被写体1が含まれていない画像データに対して付加される得点より高くなるように、主被写体1に基づく得点が画像データに対して付加される。また例えば、主被写体1が占める面積(サイズ)が大きい画像データに対して付加される得点が、主被写体1が占める面積が小さい画像データに対して付加される得点より高くなるように、主被写体1に基づく得点が画像データに対して付加される。また例えば、笑顔の主被写体1が含まれる画像データに対して付加される得点が、笑顔でない主被写体1が含まれる画像データに対して付加される得点より高くなるように、主被写体1に基づく得点が画像データに対して付加される。主被写体2についても、同様の観点で得点化が行われる。
S409では、CPU101は、パスボックス302において指定されている画像データ群全てに対して画像得点化が終了したか否かを判定する。終了していない場合(S409でNo)、S408に戻り、まだ処理の対象となっていない画像データに対して画像得点化が実行される。終了している場合(S409でYes)、S410に移行する。
S410では、CPU101は、S409において実行された画像得点化の結果を踏まえ、S402で取得された全画像データに関して、共通ページ用の得点と、個別ページ用の得点とを特定する。共通ページとは、設定画面301によって作成を指示された全てのアルバムに共通して含まれるページである。一方、個別ページとは、設定画面301によって作成を指示されたアルバムの内、1つのアルバムにのみ含まれるページである。個別ページ用の得点は、設定画面301によって作成を指示されたそれぞれのアルバム毎に特定される。
画像データIの共通ページ用の得点Iscoresを以下の式(3)で表す。
Iscores=Σiwi・Iscorei 式(3)
ここで、Iscoreiは画像データIに付与されたそれぞれの得点(画質に基づく得点、主被写体1に基づく得点、主被写体2に基づく得点)のうちi番目の得点を表し、wiは各得点に対する重みを表す。本実施形態では、wi=1/3に設定することで、画質に基づく得点、主被写体1に基づく得点、主被写体2に基づく得点を均等に評価する。これにより、画質が良く、且つそれぞれの主被写体が多く(あるいは大きく)写っている画像の得点が高くなるように、共通ページ用の得点が特定される。つまり、作成が指示された全てのアルバムデータの個々に対応するそれぞれの主被写体が考慮されて、共通ページ用の得点が特定される。
画像データIの、アルバムデータOに対応する個別ページ用の得点IscoreIOを以下の式(4)で表す。なお、Oは、ユーザによって作成を指示された複数のアルバムデータにそれぞれ割り当てられたアルバム番号である。すなわち、本実施形態では、画像データIに対し、アルバムデータの数分、個別ページ用の得点が付加されることとなる。
ここで、Iscoreqは画像データIに付与された画質に基づく得点を表し、Iscoreoは画像Iに付与された、アルバムデータOに対応する主被写体sOに基づく得点を表し、wqは画質に基づく得点に対する重みを表し、woは主被写体sOに基づく得点に対する重みを表す。本実施形態では、wq=wo=1に設定することで、画質が良く、且つと主被写体sOが多く(あるいは大きく)写っている画像の得点が高くなるように、個別ページ用の得点が特定される。言い換えれば、主被写体sO以外の主被写体(アルバムデータOに対応していない主被写体)は考慮されずに、個別ページ用の得点が特定される。個別ページ用の得点の特定は、各アルバムデータについて行われる。すなわち結果としてS410では、個別用ページの得点が、設定画面301によって作成を指示されたアルバムデータの数だけ特定され、共通用ページの得点が1つ特定されることとなる。なお本実施形態では、Iscoreoが0点の場合は、Iscoreqの点数にかかわらず、IscoreIOは0点となる。
このように、本実施形態では、共通ページ用の評価と、個別ページ用の評価とが、それぞれ異なる要素に基づいて行われる。具体的には、共通ページ用の評価は、複数のアルバムデータのそれぞれに対応する複数の主被写体に関する要素に基づいて行われる。一方で、アルバムOに対応する個別ページ用の評価は、アルバムOに対応する主被写体に関する要素に基づいて行われ、他のアルバムに対応する主被写体に関する要素に基づいて行われない。これにより、共通ページ用の評価と、個別ページ用の評価を適切に行うことができる。
なお、共通ページ用の得点の特定と、個別ページ用の得点の特定とが、画質及び主被写体に基づいて行われたが、この形態に限定されない。例えば、主被写体が含まれていない画像データ(例えば「風景」にシーン分類される画像データ)は、画像データに紐付けられている他の画像情報から得点が特定されても良い。また例えば、得点が高い画像データとの撮影時間の差が小さい画像データは、得点が高くなるように制御されても良い。これにより例えば、主被写体が含まれている画像データと関連性がある可能性が高い画像データにも高得点を付けることができる。
S411では、CPU101は、S410で特定された得点を用いて、アルバムに含まれる見開きを表す見開きデータを作成する。図5(C)は、本実施形態に係るアルバム作成アプリにより実行される見開きデータ生成処理を示すフローチャートである。
S41101では、CPU101は、S402で取得された全画像データに関して、S410で特定された得点のうち1つを読み込む。本実施形態では、ユーザによって作成を指定されたアルバムの数が2つであるものとする。そしてCPU101は、アルバム1に関する個別ページ用の得点、アルバム2に関する個別ページ用の得点、共通ページ用の得点の順に各画像データの得点を読み込むものとする。しかし、これに限定されず、CPU101は、どの得点を先に読み込んでも良い。なお、S41101で個別ページ用の得点が読み込まれた場合、以下の処理では、個別ページ用の見開きデータを作成し、S41101で共通ページ用の得点が読み込まれた場合、以下の処理では、共通ページ用の見開きデータを作成することとなる。
S41102では、CPU101は、S41101で読み込まれた得点に基づいて、S402で取得された全画像データから、見開きに配置される画像データの候補となる候補画像データを取得する。なお、S41101で読み込まれた得点が個別ページ用の得点である場合、ここでは、個別ページ用のテンプレートに配置される画像データの候補となる候補画像データが取得される。また、S41101で読み込まれた得点が共通ページ用の得点である場合、ここでは、共通ページ用のテンプレートに配置される画像データの候補となる候補画像データが取得される。本実施形態では、CPU101は、S41101で読み込まれた得点として閾値以上の得点を有する画像データを、候補画像データとして取得する。閾値以上の得点を有する画像データがない場合は、最も高い得点を有する画像データを候補画像とする。なお、ここでは全画像群から候補画像を取得したが、これに限らない。後述する画像選択処理で既に選ばれた画像は取得対象から除外しても良い。
S41103では、CPU101は、S405で行ったシーン分割の結果と、S41102で取得した候補画像データとを基に見開き数を設定する。まずCPU101は、各シーンにいずれの枚数の候補画像データが属するかを特定する。本実施形態では、シーン毎に見開きデータが作成される。そのため、CPU101は、各シーンに対応する見開きデータの数を式(5)により特定する。なお、1見開きあたりの最大画像データ数は、見開き写真枚数306に対する入力に応じて定められる。
以下ではまず、S41101で読み込まれた得点が個別ページ用の得点である場合について説明する。各シーンに対応する見開きデータの集合によって、個別ページに対応する見開きデータが生成されるため、CPU101は、個別ページに対応する見開きデータの数を式(6)により特定する。Sは、各シーンに割り振られたシーン番号である。
シーンSの見開きデータ数=ceil(シーンSに属する候補画像データ数
÷1見開きあたりの最大画像データ数) 式(5)
個別ページに対応する見開きデータ数=ΣSシーンSの見開きデータ数 式(6)
なお、式(6)により特定された個別ページに対応する見開きデータの数が、見開き数ボックス304でユーザにより指定された数(総見開きデータ数)以上になる場合、以下の式にて個別ページに対応する見開きデータの数を再特定する。
個別ページに対応する見開きデータ数=総見開きデータ数−1 式(7)
上述したように本実施形態では、アルバムに、共通ページと個別ページとを混在させる。少なくとも1つは、共通ページにより構成される見開きをアルバムに含ませるために、上述のような特定が行われる。なお、個別ページに対応する見開きデータの数は上限値、下限値が設定されても良い。なお、S41101で読み込まれた得点がアルバム1に関する個別ページ用の得点である場合、本処理によりアルバム1内に含まれる個別ページに対応する見開きデータ数が特定される。そして、S41101で読み込まれた得点がアルバム2に関する個別ページ用の得点である場合、本処理によりアルバム2内に含まれる個別ページに対応する見開きデータ数が特定される。
次に、S41101で読み込まれた得点が共通ページ用の得点である場合について説明する。アルバムを構成する見開きのうち、個別ページに対応する見開き以外が、共通ページに対応する見開きとなる。そのため、CPU101は、共通ページに対応する見開きデータの数を式(8)により特定する。
共通ページに対応する見開きデータ数=総見開きデータ数−MIN
(個別ページに対応する見開きデータ数) 式(8)
すなわち、本実施形態では、総見開きデータ数から個別ページに対応する見開きデータの数を引いた値が、共通ページに対応する見開きデータの数となる。
なお、本実施形態では、各シーンに含まれる候補画像数に応じて、個別ページに対応する見開きデータと共通ページに対応する見開きデータの各見開きデータ数を設定したが、これに限らない。例えば、各見開きデータ数は、アルバム作成アプリに予め設定されている数であっても良いし、ユーザによって指定された数であっても良い。
S41104では、CPU101は、S41102で取得した候補画像データを、各見開きデータに割り当てる。ここではまずCPU101は、S41102で取得した候補画像データを、S41103で特定した見開きデータ数分の画像データ群に分割する。なお、S41102で取得された候補画像データが、個別ページ用の候補画像データであれば、それらが、個別ページに対応する見開き数分の画像データ群に分割される。また、S41102で取得された候補画像データが、共通ページ用の候補画像データであれば、それらが、共通ページに対応する見開き数分の画像データ群に分割される。具体的にはCPU101は、S41102で取得した候補画像データを、S40301で取得した情報に基づいて撮影時間順に並べる。そしてCPU101は、隣り合う画像データとの間で撮影時間の差が閾値より大きい場合、当該隣り合う画像データ間で、候補画像データを分割する。S41103で特定した見開き数分の画像データ群が形成されるまで、この方法による分割が繰り返される。その後、分割により形成された各画像データ群を、それぞれ、撮影日時が先頭の画像データ群から順に、アルバムの見開きの先頭に割り当てる。すなわち、撮影日時順に画像データ群をアルバムの各見開きに割り当てる。これにより、撮影日時順に画像データが並んだアルバムを作成することができる。なお、1つの見開きページ内では、画像は撮影日時に並んでいなくても良い。
S41105では、CPU101は、見開きに配置される画像データを選択する画像選択処理を実行する。ここでは、ある見開きに割り当てられた分割画像データ群から画像データを4枚選択する例を、図7を参照しながら説明する。なお、見開きとは、2ページ分の領域であるが、最初の見開き(表紙)及び最後の見開き(裏表紙)は、1ページ分の領域となる。また、いずれの見開きデータにおいて、いずれの枚数の画像データが選択されるかは、例えば、見開き写真枚数306に対するユーザ入力等に応じて定められる。例えば、見開き写真枚数306に対するユーザ入力に基づく枚数が4である場合、アルバム内の各見開きデータに含まれる画像データの平均が4となるように、S41105で選択される画像の枚数が決定される。そのため、アルバム内の各見開きデータに含まれる画像データの枚数は、それぞれ異なっていても良い。また、個別ページ用の分割画像データ群から画像データが選択されるのであれば、個別ページ用の得点に基づいて本処理が実行される。個別ページ用の分割画像データ群から個別ページ用の得点に基づいて選択された画像データが、個別画像データである。また、共通ページ用の分割画像データ群から画像データが選択されるのであれば、共通ページ用の得点に基づいて本処理が実行される。共通ページ用の分割画像データ群から共通ページ用の得点に基づいて選択された画像データが、共通画像データである。
図7(A)は見開きに割り当てられた分割画像データ群のうち、撮影日時が一番早い画像データと一番遅い画像データとの撮影日時の時間差(分割撮影期間)、言い換えれば、分割画像データ群の撮影期間を示している。なお、ここでは、画像データの選択を、メインスロット、サブスロットの順で行う。ここでは、見開きに対応するテンプレートには1枚のメインスロットが含まれるものとする。そのため、1枚目に選択される画像データは、メインスロット用の画像データである。CPU101は、メインスロット用の画像データとして、図7(B)に示す分割撮影期間に対応する画像データのうち、S410で特定された得点が最高点の画像データ(1)を選択する。
2枚目以降に選択される画像データは、サブスロット用の画像データである。2枚目以降の画像データの選択は分割撮影期間の一部に集中しないように、以下説明するような方法により行われる。まず、CPU101は、図7(C)に示すように、分割撮影期間を2分割する。次にCPU101は、図7(D)に示すように、1枚目の画像データが選ばれていない分割撮影期間(図中、実線で示している期間)に生成された画像データから2枚目の画像データを選択する。なお、2枚目の画像データとしては、1枚目の画像データが選ばれていない分割撮影期間に生成された画像データのうちS410で特定された得点が最高点の画像データ(2)を選択する。次にCPU101は、図7(E)に示すように図7(D)に示す各分割撮影期間を2分割する。そして、CPU101は、図7(F)に示すように1枚目の画像データと2枚目の画像データがいずれも選ばれていない分割撮影期間(図中、実線で示している期間)に生成された画像データから3枚目の画像データを選択する。なお、3枚目の画像データとしては、1枚目の画像データと2枚目の画像データがいずれも選ばれていない分割撮影期間に生成された画像データのうちS410で特定された得点が最高点の画像データ(3)を選択する。そして、4枚目の画像データとしては、1枚目、2枚目及び3枚目の画像データがいずれも選ばれていない分割撮影期間に生成された画像データのうちS410で特定された得点が最高点の画像データを選択する。
次に、1枚目、2枚目及び3枚目の画像データがいずれも選ばれていない分割撮影期間に生成された画像が存在せず、当該分割撮影期間に生成された画像データから4枚目の画像データを選択できない例を説明する。ここで、図9(G)に示すように、まだ画像データが選ばれていない分割撮影期間(図中、斜線で示している期間)に生成された画像データは存在しないものとする。その場合、CPU101は、図9(H)に示すように各分割撮影期間をさらに2分割する。次にCPU101は、図9(I)に示すように、期間内に生成された画像データがないと認識された分割撮影期間以外で、且つ未だ画像データが選ばれていない分割撮影期間(図中、実線で示している期間)に生成された画像から4枚目の画像データを選択する。なお、CPU101は、4枚目の画像データとしては、当該分割撮影期間に生成された画像データのうちサブスロット用の最高点の画像データ(4)を選択する。
S41106では、CPU101は、設定画面301に対する入力に応じた複数のテンプレートを取得する。具体的には、CPU101は、商材指定部307に対応するデザインの複数のテンプレートを取得する。なお、設定画面301には例えば、各見開きに生じさせる余白の大きさ等の入力が受け付けられても良く、ここで取得されるテンプレートは、入力された余白等に応じて決定されても良い。このように本実施形態では、テンプレートに配置される画像データが、ユーザによる画像データの選択操作を画像処理装置100が受け付けることなく自動で選択される。
S41107では、CPU101は、処理対象の見開きの画像レイアウトを決定し、見開きデータを生成する。具体的にはまず、CPU101は、S41106で取得された複数のテンプレートの中から、S41105で選択された画像データをレイアウトするのに適したテンプレートを決定する。図8は、本実施形態における、レイアウト画像の作成に利用するテンプレートを決定する処理を示すフローチャートである。
S801では、CPU101は、S41105で選択された画像データの枚数と、当該画像データに関する情報を取得する。画像データに関する情報とは、例えば、当該画像データによって表わされる画像の幅と高さ、当該画像データの撮影日時情報、当該画像データの得点である。なお、ここでは、S424で選択された画像データの枚数は3であるものとする。
S802では、CPU101は、S41105で選択された画像データの枚数とスロット数が一致するテンプレートを選択する。なお、ここでは、S41105で選択された画像データの枚数が3であるものとして説明するため、スロット数が3のテンプレートが選択される。ここでは、スロット数が3のテンプレートとして、図9の(1−1)〜(4−4)が選択されたものとする。
S803では、CPU101は、S41105で選択された画像データを撮影日時順にソートする。なお、ここでは、3枚の各画像データが表わす各画像の撮影日時は図9(A)に示すような順番であったとする。また、ここでは、画像905がメインスロット用の画像(メイン画像)であり、画像906と画像907がサブスロット用の画像(サブ画像)とする。
S804では、CPU101は、S802で選択されたテンプレートのうち、メイン画像に適したテンプレートを選択する。本実施形態では、テンプレートのより左上のスロットに撮影日時がより古い画像データ、より右下のスロットに撮影日時がより新しい画像データをレイアウトするものとする。そのため、まずCPU101は、S802で選択されたテンプレートのうち、メインスロットの位置が、メイン画像を表わす画像データの撮影日時の順番に対応するテンプレートを選択する。すなわち、例えば、メイン画像を表わす画像データの撮影日時順が1番古い場合には、メインスロットが、全スロットのうち左から1番目のスロットであるテンプレートが選択される。なお、画像データが撮影日時順にソートされているため、CPU101は、メイン画像を表わす画像データの撮影日時の順番を把握することができる。また、CPU101は、このようにして選択したテンプレートのうち、メイン画像が配置されるスロットのアスペクト比が、メイン画像のアスペクト比と一致する(又は近い)テンプレートを最終的に選択する。そしてここでは、メイン画像である画像905は、撮影日時が一番新しく、且つ縦長の画像であるため、ここでは図9(3−1)〜(3−4)のテンプレートが選択される。
S805では、CPU101は、S802で選択されたテンプレートのうち、サブ画像に適したテンプレートを選択する。具体的にはまず、CPU101は、サブスロットの位置が、サブ画像を表わす画像データの撮影日時の順番に対応するテンプレートを選択する。また、CPU101は、このようにして選択したテンプレートのうち、サブスロットのアスペクト比が、サブ画像のアスペクト比と一致する(又は近い)テンプレートを最終的に選択する。ここでは、サブ画像である画像906は、撮影日時が一番古く、且つ縦長の画像である。また、サブ画像である画像907は、撮影日時が2番目に新しく、且つ横長の画像である。そのため、図9(3−2)のテンプレートが選択される。なお、このとき、どのサブスロットにどのサブ画像が配置されるかも特定される。
このようにして、CPU101は、見開きに対応するレイアウト画像の作成に用いるテンプレートと、テンプレートのいずれのスロットにいずれの画像をレイアウトするかを決定することで、見開きデータを生成する。具体的には、CPU101は、選択したテンプレートに含まれる各スロットの情報と、各スロットにレイアウトされる画像に対応する画像データとを紐づけて管理する。すなわち、見開きデータには、見開きに使用されるテンプレートと、当該テンプレートに配置された各画像データとが含まれる。このように本実施形態では、各ページに利用されるテンプレートが、ユーザによる画像データの選択操作を画像処理装置100が受け付けることなく自動で選択される。また本実施形態では、テンプレートに画像データが、ユーザによる画像データの配置操作を画像処理装置100が受け付けることなく自動で配置される。なお、本処理によって、個別ページに対応する見開きデータ(個別ページデータ)と、共通ページに対応する見開きデータ(共通ページデータ)が生成される。なお上述では、見開き単位でデータを生成していたが、ページ単位でデータを生成しても良い。
S41108では、CPU101は、S41105からS41107の処理が、全ての見開きデータに対して終了したか否かを判定する。なお、S41101で個別ページ用の得点が読み込まれていた場合、S41108における全ての見開きデータとは、個別ページに対応する全ての見開きデータである。また、S41101で共通ページ用の得点が読み込まれていた場合、S41108における全ての見開きデータとは、共通ページに対応する全ての見開きデータである。CPU101は、終了していない場合、S41105に戻り、未だ処理対象となっていない見開きに対して、S41105からS41107の処理を行う。一方、CPU101は、終了している場合、S41109に移行する。
S41109では、CPU101は、S410で特定された全ての得点(ここでは、アルバム1に関する個別ページ用の得点、アルバム2に関する個別ページ用の得点、共通ページ用の得点)がS41101で読み込まれたか否かを判定する。言い換えれば、ユーザによって作成を指示された複数のアルバムを構成するそれぞれの個別ページと、共通ページとに関して、テンプレートの特定を行ったか否かを判定する。CPU101は、終了していない場合、S41101に戻り、未だ取得されていない得点を読み込んで、S41102からS41108の処理を行う。一方、CPU101は、終了している場合、S412に移行する。
S412では、CPU101は、生成された各見開きデータを結合して、アルバムデータを生成する見開き結合処理を実行する。ここでは、CPU101は、アルバム内でのページ番号に対応するページ番号情報を各見開きデータに付加することで、アルバム全体のレイアウトを作成する。またこのとき、CPU101は、見開きデータ内のテンプレートに配置された画像データの撮影時間に基づき、撮影時間が早い画像データが配置されているページのページ番号がより小さくなるように、見開きデータを並べたうえで、各見開きデータを結合する。図10は、本実施形態に係るアルバム作成アプリにより実行される見開き結合処理を示すフローチャートである。
S1001では、CPU101は、S411で生成された見開きデータのうち、1つのアルバムに関する見開きデータを取得する。本実施形態では、例えばアルバム1に関する見開きデータとは、「共通ページ用の見開きデータ+アルバム1に関する個別ページ用の見開きデータ」になる。
S1002では、CPU101は、S1001で取得した各見開きデータに関する、ソートの基準となる値(ソート基準値)を特定する。本実施形態では、ソート基準値を、見開きデータに配置された画像データの平均撮影時間とする。なお、ソート基準値は平均撮影時間に限らない。例えばソート基準値は、見開きデータに配置された画像データの平均撮影位置(緯度経度)であっても良いし、見開きデータに配置された画像データの枚数であっても良い。また例えば、見開きデータに配置された画像データの画像解析情報(色ヒストグラム等)であっても良い。
S1003では、CPU101は、S1001で取得した見開きデータを、S1002で特定したソート基準値を基にソートする。上述したように本実施形態ではソート基準値は平均撮影時間であるため、CPU101は、平均撮影時間が早い見開きデータのページ番号がより小さくなるように、見開きデータを並べる。
S1004では、CPU101は、S1001で取得されたアルバムの見開きデータ数が総見開きデータ数と同じか否かを判定する。S1001で取得されたアルバムの見開きデータ数が総見開きデータ数と同じでない場合(S1004でNo)は、S1005に移行する。そして、S1001で取得されたアルバムの見開きデータ数が総見開きデータ数と同じである場合(S1004でYes)はS1006に移行する。
S1005では、CPU101は、S1001で取得された見開きデータのうち、不要な見開きデータを削除し、処理対象のアルバムの見開きデータ数が総見開きデータ数になるように調整する。本実施形態では、CPU101は、共通ページ用の見開きデータからを削除対象の見開きデータを選択することで、見開きデータ数を調整する。具体的には、共通ページ用の見開きデータのうち、平均撮影時間が、いずれかの個別ページ用の見開きデータの平均撮影時間に最も近い見開きデータを削除する。CPU101は、この削除処理を繰り返すことで、見開きデータ数を調整する。なお平均撮影時間とは、見開きデータ内に含まれる複数の画像データの撮影時間の平均である。その後、CPU101は、S1004に移行する。なお、本実施形態では共通ページ用の見開きデータから削除対象の見開きデータを選択し、個別ページ用の見開きデータから削除対象の見開きデータを選択しなかったがこれに限らない。例えば、個別ページ用の見開きデータから削除対象の見開きデータを選択し、共通ページ用の見開きデータから削除対象の見開きデータを選択しなくても良い。また例えば、個別ページ用の見開きデータと共通ページ用の見開きデータの両方から削除対象の見開きデータを選択しても良い。このようにして、見開きデータ数が確定した場合、CPU101は、削除されずに残った各見開きデータを、S1003でソートされた順番に従って結合することで、アルバムデータを作成する。
S1006では、CPU101は、設定画面301によって作成を指示された全てのアルバムに関する見開きデータに関して、S1001からS1005の処理が行われたか否かを判定する。言い換えれば、CPU101は、設定画面301によって作成を指示された全てのアルバムに関するアルバムデータを作成したか否かを判定する。全てのアルバムに関する見開きデータに関して、S1001からS1005の処理が行われていない場合、CPU101は、S1001に移行し、まだ取得されていないアルバムに関する見開きデータを取得し、当該見開きデータに対して処理を行う。全てのアルバムに関する見開きデータに関して、S1001からS1005の処理が行われた場合、CPU101は、自動レイアウト処理を終了し、S413に進む。
S413では、CPU101は、CPU101は、作成したアルバムデータを出力する。アルバムデータの出力として、CPU101は、例えば、アルバムデータのディスプレイ105への表示や、アルバムデータの送信、アルバムデータに基づくアルバムの印刷等を実行可能である。例えばCPU101は、作成したアルバムデータをプリンタに送信することで、作成したアルバムデータに基づくアルバムをプリンタに印刷させることができる。
本実施形態では、ユーザは、完成した見開きデータを任意に編集可能であるものとする。例えば、ユーザは、各スロットに配置された画像データのうち、変更したい画像データがある場合は、マウス107により変更したい画像データをクリックする。その後、ユーザは、変更したい画像データの代わりに配置したい画像データを選択することで、ユーザが任意に選択した画像データを、クリックされた画像データの代わりに新たに配置することができる。なお、CPU101は、ユーザが変更したい画像データがクリックされた場合、変更後の画像データの候補を表示しても良い。また例えば、CPU101は、ユーザが変更したい画像データが個別ページ内の画像データである場合、個別ページ用の得点が高い画像データを、変更後の画像データの候補として表示しても良い。同様に、CPU101は、ユーザが変更したい画像データが共通ページ内の画像データである場合、共通ページ用の得点が高い画像データを、変更後の画像データの候補として表示しても良い。
このように本実施形態では、アルバム作成アプリによって、共通ページと個別ページとを含むアルバムを作成するためのアルバムデータを生成することができる。また、共通ページに配置される画像データの選択基準と、個別ページに配置される画像データの選択基準が異なるように制御される。このような制御により、共通ページに適した画像データを、共通ページに配置される画像データとして選択し、個別ページに適した画像データを、個別ページに配置される画像データとして選択することができる。また、共通ページに配置される画像データと、個別ページに配置される画像データと同じになってしまうことを抑制する。
(第2実施形態)
上述の実施形態では、同一のシーンに属する画像データを、共通ページ用の見開きデータにも、個別ページ用の見開きデータにも使用していた。本実施形態では、同一のシーンに属する画像データを、共通ページ用の見開きデータと個別ページ用の見開きデータのうちいずれかのみに使用する。これにより、共通ページ用の見開きデータと個別ページ用の見開きデータのどちらにも、同じシーンに属する画像データが含まれてしまうことを抑制する。
なお、特記しない限り、本実施形態の構成は、第1実施形態の構成と同様であるものとする。
図11は、本実施形態に係るアルバム作成アプリにより実行される自動レイアウト処理を示すフローチャートである。図11に示すフローチャートは、例えば、CPU101がHDD104に格納されたアルバム作成アプリに対応するプログラムをROM102やRAM103に読み出して実行することにより実現される。
S401〜S410までの処理は、第1実施形態にて説明した処理と同様である。
S1101では、CPU101は、共通ページと個別ページのどちらに適しているのかを、シーン毎に特定する。言い換えれば、CPU101は、共通ページ用の得点と個別ページ用の得点のどちらを適用するのかをシーン毎に特定する。共通ページに適しているシーンに含まれる画像データ群が、共通画像データ群であり、個別ページに適しているシーンに含まれる画像データ群が、個別画像データ群である。本実施形態では、各シーンに、共通ページ用の得点と個別ページ用の得点のどちらを適用するのかを下記の式により特定する。
SQP=ΣI∈S ITP 式(9)
IscorePは画像データIに付加された得点Pの値を表し、Sは判定対象のシーンに割り振られたシーン番号を表し、THRは閾値を表す。SQPは得点Pに対応するページが判定対象のシーンにどれだけ適しているかの指標である。なお、得点Pとは、個別ページ用の得点Pdと共通ページ用の得点Pcのいずれかである。
CPU101は、得点Pが個別ページ用の得点である場合、画像データIが個別ページに適しているか否かを示す値ITPdを式(10)によって算出する。そしてCPU101は、得点Pが共通ページ用の得点である場合、画像データIが共通ページに適しているか否かを示す値ITPcを式(10)によって算出する。結果として、個別ページ用の得点が閾値より高い画像データに対しては、式(10)によって、個別ページに適していることを示す値が算出される。そして、共通ページ用の得点が閾値より高い画像データに対しては、式(10)によって、共通ページに適していることを示す値が算出される。
その後、CPU101は、得点Pが個別ページ用の得点である場合、判定対象のシーンに個別ページに適している画像データがどれだけ多く含まれているかを示す値SQPdを式(9)によって算出する。またCPU101は、得点Pが共通ページ用の得点である場合、判定対象のシーンに共通ページに適している画像データがどれだけ多く含まれているかを示す値SQPcを式(9)によって算出する。
そして、式(9)及び式(10)によって特定される、共通ページ用の得点Pcに関する指標SQPcと個別ページ用の得点Pdに関する指標SQPdによって、判定対象のシーンが、共通ページと個別ページのどちらに適しているのかを特定する。具体的には、共通ページ用の得点Pcに関する指標SQPcと個別ページ用の得点Pdに関する指標SQPdのうち値が大きい方に対応する得点を用いて、判定対象のシーンに属する画像データが配置される見開きデータを作成することを特定する。全てのシーンを対象として、本処理を繰り返すことにより、CPU101は、いずれのシーンが、個別ページと共通ページのうちいずれに適しているのかを特定することができる。これにより、共通ページと個別ページのうち、シーンに適しているページにのみ、当該シーンに属する画像データが用いられることとなる。本処理により例えば、図5(B)におけるシーン(1)〜(6)には共通ページ用の得点を適用し、シーン(7)〜(10)には個別ページ用の得点を適用することが特定される。
なお、本実施形態では、共通ページと個別ページのどちらに適しているのかをシーン毎に特定するための指標として、各シーンに含まれる画像データの、個別ページ用の得点と共通ページ用の得点とが用いられたが、これに限らない。例えば、主被写体が写っている画像データの多寡や、写っている顔の数が多い画像データの多寡、シーン内の画像データの枚数等の指標が用いられても良い。また、S406におけるシーン分類結果によって決定されたシーンの種類に基づいて、各シーンが共通ページと個別ページのどちらに適しているのかが決定されても良い。例えば、「結婚式」として分類されたシーンは、新郎新婦を主被写体とした共通ページが適しているものとして特定され、「披露宴」として分類されたシーンは、親族あるいは友人をそれぞれ主被写体とした個別ページが適しているものとして特定される。このように、いずれの種類のシーンが、いずれのページに適しているものとして特定されるかに関する情報が、予めアルバム作成アプリに組み込まれていても良い。
なお上述では、いずれのシーンが個別ページと共通ページのうちいずれに適しているのかを特定するための方法として、式(9)や式(10)を用いる方法を説明したが、この形態に限定されない。例えば、以下に示す方法によって、いずれのシーンが個別ページと共通ページのうちいずれに適しているのかを特定しても良い。
例えば、CPU101は、判定対象のシーンに含まれる(内包される)各画像データの、共通ページ用の得点の平均値と、個別ページ用の得点の平均値とを算出する。そしてCPU101は、共通ページ用の得点の平均値が個別ページ用の得点の平均値より大きい場合、判定対象のシーンが共通ページ用の得点に適していると判定する。またCPU101は、個別ページ用の得点の平均値が共通ページ用の得点の平均値より大きい場合、判定対象のシーンが個別ページ用の得点に適していると判定する。
また例えば、CPU101は、判定対象のシーンに含まれる各画像データの共通ページ用の得点のうち最大値と、判定対象のシーンに含まれる各画像データの個別ページ用の得点のうち最大値とを算出する。そしてCPU101は、共通ページ用の得点の最大値が個別ページ用の得点の最大値より大きい場合、判定対象のシーンが共通ページ用の得点に適していると判定する。またCPU101は、個別ページ用の得点の最大値が共通ページ用の得点の最大値より大きい場合、判定対象のシーンが個別ページ用の得点に適していると判定する。
S1102では、CPU101は、S410で特定された得点を用いて、アルバムに含まれる見開きを表す見開きデータを作成する。図11(C)は、本実施形態に係るアルバム作成アプリにより実行される見開きデータ生成処理を示すフローチャートである。
S41101の処理は、第1実施形態にて説明した処理と同様である。
S110201では、CPU101は、S41101で読み込まれた得点に対応するシーンに属する画像データから、テンプレートに配置される画像データの候補となる候補画像データを、S41101で読み込まれた得点に基づいて取得する。S41101で読み込まれた得点が、個別ページ用の得点である場合、S41101で読み込まれた得点に対応するシーンとは、個別ページに適しているとS1101で特定されたシーンである。また、S41101で読み込まれた得点が、共通ページ用の得点である場合、S41101で読み込まれた得点に対応するシーンとは、共通ページに適しているとS1101で特定されたシーンである。なお、S41101で読み込まれた得点が個別ページ用の得点である場合、ここでは、個別ページ用のテンプレートに配置される画像データの候補となる候補画像データが取得される。また、S41101で読み込まれた得点が共通ページ用の得点である場合、ここでは、共通ページ用のテンプレートに配置される画像データの候補となる候補画像データが取得される。本実施形態では、CPU101は、S41101で読み込まれた得点として閾値以上の得点を有する画像データを、候補画像データとして取得する。閾値以上の得点を有する画像データがない場合は、最も高い得点を有する画像データを候補画像とする。なお、後述する画像選択処理で既に選ばれた画像は、取得対象から除外しても良い。
S110202では、CPU101は、S405で行ったシーン分割の結果と、S110201で取得した候補画像データとを基に見開き数を設定する。本処理の詳細は、第1実施形態のS41103で説明したものと同様であるが、第1実施形態との違いについて以下に説明する。第1実施形態では、S41101で読み込まれた得点が個別ページ用の得点であったとしても共通ページ用の得点であったとしても、全てのシーンに関して、式(5)を適用して、見開きデータ数を特定した。しかし、本実施形態では、S41101で読み込まれた得点が個別ページ用の得点であった場合は、個別ページに適しているとS1101で特定されたシーンに関してのみ、見開きデータ数を特定する。また、S41101で読み込まれた得点が共通ページ用の得点であった場合は、共通ページに適しているとS1101で特定されたシーンに関してのみ、見開きデータ数を特定する。
S110203では、CPU101は、S110201で取得した候補画像データを、S110202で特定した見開き数分の画像データ群に分割する。本処理の詳細は、第1実施形態のS41104で説明したものと同様である。その後、CPU101は、S41105に移行する。
以降の処理は、第1実施形態で説明した処理と同様である。
このような制御を実行することで、本実施形態では、同一のシーンに属する画像データを、共通ページ用の見開きデータと個別ページ用の見開きデータのうちいずれかのみに使用するように制御する。これにより、共通ページ用の見開きデータと個別ページ用の見開きデータのどちらにも、同じシーンに属する画像データが含まれてしまうことを抑制することができる。
(第3実施形態)
上述したように、各シーンにはそれぞれ1又は複数の画像データが含まれている。1つのシーンに含まれている1つの画像データ群を、シーン画像データ群というものとする。第1実施形態では、共通ページ用の見開きデータに使用する画像データも、個別ページ用の見開きデータに使用する画像データも、全てのシーン画像データ群からそれぞれ取得していた。本実施形態では、共通ページ用の見開きデータに使用する画像データは、全てのシーン画像データ群からそれぞれ取得する。そして、個別ページ用の見開きデータに使用する画像データは、全てのシーン画像データ群からは取得せず、一部のシーン画像データ群からのみ取得する。
なお、特記しない限り、本実施形態の構成は、第1実施形態の構成と同様であるものとする。
図12は、本実施形態に係るアルバム作成アプリにより実行される自動レイアウト処理を示すフローチャートである。図12に示すフローチャートは、例えば、CPU101がHDD104に格納されたアルバム作成アプリに対応するプログラムをROM102やRAM103に読み出して実行することにより実現される。
S401〜S410までの処理は、第1実施形態にて説明した処理と同様である。
S1201では、CPU101は、個別ページに適しているのか否かを、シーン毎に特定する。言い換えれば、CPU101は、共通ページ用の得点と個別ページ用の得点のどちらを適用するのかをシーン毎に特定する。例えば、図5(A)におけるシーン(1)〜(8)には共通ページ用の得点を適用し、シーン(2)及び(5)には個別ページ用の得点を適用することを特定する。本実施形態では、全てのシーンに、共通ページ用の得点を適用することを特定する。そして、いずれのシーンに、個別ページ用の得点を適用するのかは、第2実施形態にて説明した式(9)及び式(10)と同じ式(11)及び式(12)により特定する。
SQP=ΣI∈S ITP 式(11)
CPU101は、式(9)及び式(10)の説明にて上述したようにして、個別ページ用の得点Pdに関する指標SQPdを算出する。そして、CPU101は、個別ページ用の得点Pdに関する指標SQPdが閾値THR2以上である場合、判定対象のシーンが個別ページに適していると判定する。またCPU101は、個別ページ用の得点Pdに関する指標SQPdが閾値THR2未満である場合、判定対象のシーンが個別ページに適していないと判定する。全てのシーンを対象として、本処理を繰り返すことにより、CPU101は、いずれのシーンが、個別ページに適しているのかを特定することができる。
なお、本実施形態では、個別ページに適しているのかをシーン毎に特定するための指標として、各シーンに含まれる画像データの、個別ページ用の得点が用いられたが、これに限らない。例えば、主被写体が写っている画像データの多寡や、写っている顔の数が多い画像データの多寡、シーン内の画像データの枚数等の指標が用いられても良い。また、S406におけるシーン分類結果によって決定されたシーンの種類に基づいて、各シーンが個別ページに適しているのかが決定されても良い。例えば、「披露宴」として分類されたシーンは、親族あるいは友人をそれぞれ主被写体とした個別ページが適しているものとして特定される。このように、いずれの種類のシーンが、個別ページに適しているものとして特定されるかに関する情報が、予めアルバム作成アプリに組み込まれていても良い。
S1202では、CPU101は、S410で特定された得点を用いて、アルバムに含まれる見開きを表す見開きデータを作成する。図11(C)は、本実施形態に係るアルバム作成アプリにより実行される見開きデータ生成処理を示すフローチャートである。
S41101の処理は、第1実施形態にて説明した処理と同様である。
S120201では、CPU101は、S41101で読み込まれた得点に対応するシーンに属する画像データから、テンプレートに配置される画像データの候補となる候補画像データを、S41101で読み込まれた得点に基づいて取得する。S41101で読み込まれた得点が、個別ページ用の得点である場合、S41101で読み込まれた得点に対応するシーンとは、個別ページに適しているとS1101で特定されたシーンである。また、S41101で読み込まれた得点が、共通ページ用の得点である場合、S41101で読み込まれた得点に対応するシーンとは、全てのシーンである。なお、S41101で読み込まれた得点が個別ページ用の得点である場合、ここでは、個別ページ用のテンプレートに配置される画像データの候補となる候補画像データが取得される。また、S41101で読み込まれた得点が共通ページ用の得点である場合、ここでは、共通ページ用のテンプレートに配置される画像データの候補となる候補画像データが取得される。本実施形態では、CPU101は、S41101で読み込まれた得点として閾値以上の得点を有する画像データを、候補画像データとして取得する。閾値以上の得点を有する画像データがない場合は、最も高い得点を有する画像データを候補画像とする。なお、後述する画像選択処理で既に選ばれた画像は、取得対象から除外しても良い。
また、本実施形態では、以下の式に従って候補画像データを選択する。
ICPは、S41101で読み込まれた得点が、個別ページ用の得点P1と共通ページ用の得点P2のうちいずれかの得点Pである場合に、画像データIが候補画像データとして選択されるか否かを表す値である。SIは得点Pに対応するシーンSに属する画像データの集合である。Iscorep=P1、Iscorep≠P1は画像データIの個別ページ用の得点P1と、画像データIの個別ページ用の得点P1でない得点(すなわち、共通ページ用の得点P2)をそれぞれ表す。THRは閾値を表す。ICPが1である場合、ICPは、画像データIが候補画像データして選択されることを表し、ICPが0である場合、ICPは、画像データIが候補画像データして選択されないことを表す。
これにより、個別ページ用のテンプレートに配置される画像データの候補となる候補画像データとして、個別ページ用の点数が共通ページ用の点数より高い画像データが選択される。また、共通ページ用のテンプレートに配置される画像データの候補となる候補画像データとして、共通ページ用の点数が個別ページ用の点数より高い画像データが選択される。このような形態とすることで、個別ページと共通ページとで、同じ画像データが使用されてしまうことを抑制できる。なお、上述の式による画像データの選択方法は、例えば、第1実施形態や第2実施形態において適用されても良い。
S120202では、CPU101は、S405で行ったシーン分割の結果と、S110201で取得した候補画像データとを基に見開き数を設定する。本処理の詳細は、第1実施形態のS41103で説明したものと同様であるが、第1実施形態との違いについて以下に説明する。第1実施形態では、S41101で読み込まれた得点が個別ページ用の得点であったとしても共通ページ用の得点であったとしても、全てのシーンに関して、式(5)を適用して、見開きデータ数を特定した。しかし、本実施形態では、S41101で読み込まれた得点が個別ページ用の得点であった場合は、個別ページに適しているとS1101で特定されたシーンに関してのみ、見開きデータ数を特定する。一方、S41101で読み込まれた得点が共通ページ用の得点であった場合は、全てのシーンに関して、見開きデータ数を特定する。
S120203では、CPU101は、S120201で取得した候補画像データを、S120202で特定した見開き数分の画像データ群に分割する。本処理の詳細は、第1実施形態のS41104で説明したものと同様である。その後、CPU101は、S41105に移行する。
以降の処理は、第1実施形態で説明した処理と同様である。
このように本実施形態では、全てのシーンが共通ページ用の画像を選択するための候補となることで、一部のシーンのみが共通ページ用の画像を選択するための候補となっている形態と比較し、共通ページ用の画像としてより良い画像が選択される可能性が向上する。また、一部のシーンのみが個別ページ用の画像を選択するための候補となることで、共通ページ用の画像として選択される画像と個別ページ用の画像として選択される画像が同一となってしまうことを抑制できる。
なお、本実施形態では、共通ページ用の見開きデータに使用する画像データは、全てのシーン画像データ群からそれぞれ取得し、個別ページ用の見開きデータに使用する画像データは、全てのシーン画像データ群からは取得せず、一部のシーン画像データ群からのみ取得していた。しかしながらこの形態に限定されない。例えば、個別ページ用の見開きデータに適した画像データの数が少ないケースがある。そのようなケースでは例えば、個別ページ用の見開きデータに使用する画像データを、全てのシーン画像データ群からそれぞれ取得しても良い。また、共通ページ用の見開きデータに使用する画像データを、全てのシーン画像データ群からは取得せず、一部のシーン画像データ群からのみ取得しても良い。これにより、個別ページ用の見開きデータに使用する画像データを十分な枚数確保しつつ、共通ページ用の画像として選択される画像と個別ページ用の画像として選択される画像が同一となってしまうことを抑制できる。
(第4実施形態)
上述の実施形態では、表紙に対応するページとそれ以外のページが区別されることなく、アルバムデータが生成されていた。本実施形態では、表紙に対応するページとそれ以外のページを区別してアルバムデータを生成する。さらに本実施形態では、表紙に対応するページが共通ページとなるように制御する形態と、表紙に対応するページが個別ページとなるように制御する形態について説明する。
なお、特記しない限り、本実施形態の構成は、第1実施形態の構成と同様であるものとする。
本実施形態では、アルバム作成アプリは、図14(A)に示すような表紙のモードの設定を受け付けるための表紙モード設定領域1400を設定画面301上にさらに表示する。領域1401は、表紙のモードとして個別モードを選択するための領域であり、領域1402は、表紙のモードとして共通モードを選択するための領域である。個別モードとは、表紙に対応するページが個別ページとなるように制御するモードであり、共通モードとは、表紙に対応するページが共通ページとなるように制御するモードである。なお、ここで選択された表紙のモードは、設定画面301によって作成を指示された全てのアルバムに適用されるが、この形態に限定されず、アルバム毎に表紙のモードが選択されても良い。
図13は、本実施形態に係るアルバム作成アプリにより実行される自動レイアウト処理を示すフローチャートである。図13に示すフローチャートは、例えば、CPU101がHDD104に格納されたアルバム作成アプリに対応するプログラムをROM102やRAM103に読み出して実行することにより実現される。
S401〜S411までの処理は、第1実施形態にて説明した処理と同様である。
S1301では、CPU101は、表紙のレイアウトを決定し、決定されたレイアウトによって表紙を印刷するための表紙データを生成する表紙データ生成処理を実行する。なお本実施形態では、表紙データは、表表紙と裏表紙のそれぞれに対応するページを印刷するためのデータであるものとする。しかしながらこの形態に限定されず、例えば表紙データは、表表紙のみに対応するページを印刷するためのデータであっても良い。図13(D)は、本実施形態に係るアルバム作成アプリにより実行される表紙データ生成処理を示すフローチャートである。
S130101では、CPU101は、設定画面301によって作成を指示された複数のアルバムの内、いずれのアルバムの表紙データを生成するかを特定する。
S130102では、CPU101は、表紙モード設定領域1400に対するユーザ入力に基づき、S13101で特定されたアルバムの表紙のモードを特定する。
S130103では、CPU101は、S130101で特定されたアルバムの表紙に配置される画像データの候補となる表紙候補画像データを取得する。具体的には、CPU101は、S130101で特定されたアルバムの表紙のモードが個別モードである場合、S411で生成された見開きデータのうち個別ページに対応する見開きデータに含まれる画像データを、表紙候補画像データとして取得する。そしてCPU101は、S130101で特定されたアルバムの表紙のモードが共通モードである場合、S411で生成された見開きデータのうち共通ページに対応する見開きデータに含まれる画像データを、表紙候補画像データとして取得する。
S130104では、CPU101は、CPU101は、表紙候補画像データから、表紙に配置される画像データを選択する。本実施形態では、表紙に配置される画像データは1つであることから、CPU101は、1つのみ画像データを選択する。具体的には、CPU101は、S130101で特定されたアルバムの表紙のモードが個別モードである場合、表紙候補画像データから、個別ページ用の得点が高い画像データを選択する。なお、このとき参照される個別ページ用の得点は、S130101で特定されたアルバムに設定された主被写体に基づいて評価された個別ページ用の得点である。また、CPU101は、S130101で特定されたアルバムの表紙のモードが共通モードである場合、表紙候補画像データから、共通ページ用の得点が高い画像データを選択する。なお表紙に配置される画像データが複数であれば、このとき複数の画像データが選択されても良い。
なお上述では、S411で生成された見開きデータに含まれる画像データから、表紙に配置される画像データが選択されていたが、この形態に限定されない。表紙のモードに対応する(すなわち、表紙のモードに対応する得点が高い)画像データであれば、S411で生成された見開きデータに含まれない画像データが選択されても良い。
また、表紙のモードに対応する得点以外の要素に基づいて、画像データが選択されても良い。例えば、主被写体以外の人物が写っている画像データより、主被写体のみが写っている画像データが優先的に選択されても良い。また、表紙用のテンプレートに配置されているスロットのデザインやアスペクト比に対応する画像データが、それらに対応していない画像データより優先的に選択されても良い。また、スロットに配置された場合の画像データの解像度が所定値以上となる画像データが優先的に選択されても良い。
S130105では、CPU101は、表紙用のテンプレートを取得する。本実施形態では、表紙用のテンプレートは、1つのみ用意されているものとする。このとき取得される表紙用テンプレートの一例を図15(A)に示す。図15に示す各表紙用テンプレートにおいて、中心線に対して右側の領域が表表紙に対応する領域であり、中心線に対して左側の領域が裏表紙に対応する領域である。例えば、表紙用テンプレート1501の表表紙に対応する領域には、スロット1502が配置されており、表紙用テンプレート1501の裏表紙に対応する領域には、いずれのスロットも配置されていない。なお、S130105では、それぞれ異なる種類の複数の表紙用のテンプレートが取得されても良い。また、裏表紙に対応する領域にも、スロットが配置されていても良い。なお、図15に示すような表紙用テンプレートと、図9に示すような表紙以外のページ用のテンプレートは、それぞれスロットの大きさや数等のレイアウトが異なるものとする。また、表紙用テンプレートには、アルバム名等のテキストが配置されるための領域が設けられていても良い。
S130106では、CPU101は、表紙データを生成する。具体的にはCPU101は、S130105で取得されたテンプレートのスロットに対して、S130104で選択された画像データを配置することで、表紙データを生成する。なお、S130105で複数の表紙用のテンプレートが取得されていた場合、CPU101は、複数の表紙用のテンプレートのうちいずれを用いるかについてや、いずれのスロットにいずれの画像データを配置するかについてを、図8に示した処理と同様にして決定しても良い。なお、裏表紙に対応する領域にもスロットが配置されている場合は、S130104で選択された画像データを、裏表紙に対応する領域に配置されているスロットにも配置する。なお例えば、表紙モードが共通モードである場合であっても、裏表紙に対応する領域に配置されているスロットには、個別ページ用の画像データ(個別ページ用の得点が高い画像データ)を配置しても良い。
S130107では設定画面301によって作成を指示されたすべてのアルバムの表紙データの生成が終了したか否かを判定する。終了していない場合、S130101に戻り、まだ表紙データを生成していないアルバムの表紙データを生成することを特定する。一方、終了している場合、S1302に移行する。
S1302では、CPU101は、生成された表紙データ及び各見開きデータを結合して、アルバムデータを生成する見開き結合処理を実行する。本処理は、第1実施形態で説明したS412と同様だが、表表紙に対応するページのページ番号が一番小さく、裏表紙に対応するページのページ番号が一番大きくなるように、表紙データ及び各見開きデータを並べたうえで、それらを結合する。このとき、表紙データ以外の見開きデータはソート基準値に基づいて並べられるが、表紙データはソート基準値に関係なく並べられる。また、見開きデータ数の調整において、表紙データは、削除対象とならないように制御する。その後、CPU101は、S413に移行する。
以降の処理は、第1実施形態で説明した処理と同様である。
このような形態とすることで、表紙に対応するページとそれ以外のページを区別してアルバムデータを生成することができる。また、表紙に含まれる画像として、表紙に適した画像を、表紙用テンプレートに配置することができる。
なお上述では、個別モードと共通モードをユーザが選択可能な形態を説明したが、この形態に限定されない。例えば、個別モードと共通モードのうちあらかじめ決められた一方でしか、表紙データを作成しない形態であっても良い。その場合、表紙モード設定領域を表示して、ユーザから表紙モードの選択を受け付ける必要はない。
(第5実施形態)
本実施形態では、表紙のモードの設定をより詳細に受け付ける形態について説明する。
なお、特記しない限り、本実施形態の構成は、第1実施形態の構成と同様であるものとする。
本実施形態では、アルバム作成アプリは、図14(B)に示すような表紙のモードの設定を受け付けるための表紙モード設定領域1410を設定画面301上にさらに表示する。本実施形態では、表紙のモードとして個別モードを選択するための領域には、3つの領域(領域1411〜1413)が含まれるものとする。領域1411は、領域1402と同様である。領域1412は、他のアルバムに設定された主被写体を含む画像を、裏表紙に配置する個別モードを選択するための領域である。領域1413は、他のアルバムに設定された主被写体を含む画像を、表表紙に配置する個別モードを選択するための領域である。領域1413は、領域1403と同様である。なお、ここで選択された表紙のモードは、設定画面301によって作成を指示された全てのアルバムに適用されるが、この形態に限定されず、アルバム毎に表紙のモードが選択されても良い。
領域1411が選択された場合のアルバムデータ生成処理は、領域1402が選択された場合のアルバムデータ生成処理と同様である。また、領域1413が選択された場合のアルバムデータ生成処理は、領域1403が選択された場合のアルバムデータ生成処理と同様である。
領域1412が選択された場合の処理について説明する。S130104では、CPU101は、S130101で特定されたアルバムに設定された主被写体に基づいて評価された個別ページ用が高い画像データを、第3実施形態と同様に選択する。そしてさらに、CPU101は、S130101で特定されたアルバム以外のアルバムに設定された主被写体に基づいて評価された個別ページ用が高い画像データを選択する。
S130105では、CPU101は、領域1412に対応する表紙用テンプレート1503(図15(B))を取得する。
S130106では、CPU101は、S130101で特定されたアルバムに設定された主被写体に基づいて評価された個別ページ用の得点が高い画像データを、表紙内のスロット1504に配置する。そして、CPU101は、S130101で特定されたアルバム以外のアルバムに設定された主被写体に基づいて評価された個別ページ用の得点が高い画像データを、裏表紙内のスロット1505及びスロット1506に配置する。これにより、S130101で特定されたアルバムに設定された主被写体を目立たせつつ、アルバムの裏表紙のレイアウトのバリエーションを増やすことができる。
以降の処理は、第3実施形態で説明した処理と同様である。
領域1413が選択された場合の処理について説明する。S130104では、CPU101は、S130101で特定されたアルバムに設定された主被写体に基づいて評価された個別ページ用が高い画像データを、第3実施形態と同様に選択する。そしてさらに、CPU101は、S130101で特定されたアルバム以外のアルバムに設定された主被写体に基づいて評価された個別ページ用が高い画像データを選択する。
S130105では、CPU101は、領域1413に対応する表紙用テンプレート1507(図15(C))を取得する。
S130106では、CPU101は、S130101で特定されたアルバムに設定された主被写体に基づいて評価された個別ページ用の得点が高い画像データを、表紙内のスロット1508に配置する。そして、CPU101は、S130101で特定されたアルバム以外のアルバムに設定された主被写体に基づいて評価された個別ページ用の得点が高い画像データを、裏表紙内のスロット1509及びスロット1510に配置する。スロット1508は、スロット1509やスロット1510に比べて大きい。これにより、S130101で特定されたアルバムに設定された主被写体を目立たせつつ、アルバムの表表紙のレイアウトのバリエーションを増やすことができる。
以降の処理は、第1実施形態で説明した処理と同様である。
(第6実施形態)
本実施形態では、表紙のモードとして共通モードが選択された場合の処理として、上述の実施形態における処理と異なる処理を実行する形態について説明する。
上述の実施形態では、CPU101は、表紙のモードが共通モードである場合、表紙候補画像データから、共通ページ用の得点が高い画像データを選択していた。しかしながら本実施形態では、表紙のモードが共通モードである場合、表紙候補画像データから、個別ページ用の得点が高い画像データを複数選択する。具体的には例えば、主被写体Aが設定されたアルバム、主被写体Bが設定されたアルバム、主被写体Cが設定されたアルバムの3つのアルバムの作成が指示されていたとする。その場合、S130104では、CPU101は、主被写体Aに基づく個別ページ用の得点が高い画像データと、主被写体Bに基づく個別ページ用の得点が高い画像データと、主被写体Cに基づく個別ページ用の得点が高い画像データをそれぞれ選択する。なお、選択される画像データの数は、3つに限らない。少なくとも、作成が指示されたアルバムの数以上の数の画像データが選択されれば良い。
S130105では、CPU101は、共通モード用の表紙用テンプレート1511(図15(D))を取得する。
S130106では、CPU101は、S130104で選択された各画像データを、スロット1512〜スロット1514にそれぞれ配置する。スロット1512〜スロット1514の大きさは、同じであるものとする。また、いずれのスロットにいずれの画像データが配置されるかは特に限定されない。例えば、S130101で特定されたアルバムの主被写体に基づいて評価された個別ページ用の得点が高い画像データを、表紙領域の中心に位置するスロット1513に配置しても良い。
このように本実施形態では、表紙にそれぞれの主被写体に対応する複数の画像データを配置することで、共通モードの表紙を構成する。なお表紙のモードとして個別モードが選択された場合は、第4実施形態や第5実施形態にて説明したようにして、表紙には、1つの主被写体に対応する少なくとも1つの画像データを配置する。
(その他の実施形態)
上述の実施形態では、個別ページに対応する見開きデータの数が、アルバムによって異なる形態を説明した。しかしながら、この形態に限定されず、ユーザによって作成を指示された複数のアルバム全てにおいて、個別ページに対応する見開きデータの数が同一になるように制御されても良い。
上述の実施形態では、共通ページに対応する見開きデータの数が、アルバムによって異なる形態を説明した。しかしながら、この形態に限定されず、ユーザによって作成を指示された複数のアルバム全てにおいて、共通ページに対応する見開きデータの数が同一になるように制御されても良い。
上述の実施形態では、共通ページ用の見開きデータと個別ページ用の見開きデータの集合が、ソート基準値によってソートされて、アルバムデータが生成されていた。すなわち、アルバムデータにおいて共通ページ用の見開きデータや個別ページ用の見開きデータがいずれの位置(ページ番号)となるかは、アルバムデータ毎に異なっていた。しかしながらこの形態に限定されず、例えば、共通ページ用の見開きデータの位置及び、共通ページ用の見開きデータの位置が、それぞれのアルバムデータ内で固定されていても良い。例えば、共通ページ用の見開きデータの後に、個別ページ用の見開きデータが位置するように、それぞれの見開きデータが並べられても良い。より詳細には例えば、ソート基準値によってソートされた共通ページ用の見開きデータの後に、ソート基準値によってソートされた個別ページ用の見開きデータが位置するように、それぞれの見開きデータが並べられても良い。もちろん、個別ページ用の見開きデータの後に、共通ページ用の見開きデータが位置するように、それぞれの見開きデータが並べられても良い。
上述した各実施形態は、以下の処理を実行することによっても実現される。すなわち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPUやMPU等)がプログラムを読み出して実行する処理である。また、プログラムは、1つのコンピュータで実行させても、複数のコンピュータで連動させて実行させるようにしても良い。また、上記した処理の全てをソフトウェアで実現する必要はなく、処理の一部または全部をASIC等のハードウェアで実現するようにしても良い。また、CPUも1つのCPUで全ての処理を行うものに限らず、複数のCPUが適宜連携をしながら処理を行うものとしても良い。