以下、添付の図面を参照して、本発明の好適な実施の形態に関して、詳細に説明する。なお、以下の実施の形態は、特許請求の範囲に係る本発明を限定するものでなく、また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
図1は、フォトアルバム作成/注文システムの構成を示す図である。フォトアルバム作成/注文システムは、情報処理装置1及び2がインターネット等の所定のネットワークで接続されることで構成される。情報処理装置1及び2は、例えば、一般的なパーソナルコンピュータ又はサーバ(以下、PCと略す場合がある)等で構成される。また、PC1及び2には、OS(Operating System)として、Windows8(登録商標)又はWindows Server 2012(登録商標)と同等のOSがインストールされている。
PC1は、主にユーザ(例えば、顧客等)の自宅に設置され、その自宅に構築された一般家庭用のホームネットワーク(図1に示される、Ethernet(登録商標)で構成されるネットワーク4)に接続される。PC1は、フォトアルバム作成アプリケーション80とWebブラウザアプリケーション143を備える。
フォトアルバム作成アプリケーション80は、フォトアルバムを作成するためのアプリケーションであり、例えば、Windows用の実行可能形式のファイル(即ち、拡張子が「.exe」で示されるファイル)で構成される。Webブラウザアプリケーション143は、WWW(World Wide Web)を利用する際に用いられるブラウザである。
PC2は、社内(図1では、ABC社の社内)に設置され、その社内に構築されたオフィスネットワーク(図1に示される、Ethernet(登録商標)で構成されるネットワーク8)に接続される。PC2は、Webサーバの機能を備えるWebサーバ9を含み、インターネットを介してABC社のWebサイト(即ち、ショッピングサイト11)を提供している。ショッピングサイト11は、ABC社がユーザ向けにサービスを提供しているショッピングサイトであり、ユーザはショッピングサイト11を利用してフォトアルバムを注文することができる。
図2は、PC1のハードウェア構成を示す図である。PC1は、RAM201、HDD202、KBD203、CPU204、LCD205、NB206を備える。RAM(Random Access Memory)201は、CPU204のメインメモリであり、ワークエリア等として機能する。HDD(Hard Disk Drive)202は、各種データ等を記憶する記憶装置(内部記憶手段)である。なお、各種データ等は、可搬性CD−ROM又は内部据付のROM等に記憶することもできる。KBD(keyboard)203は、各種設定を入力するための入力装置である。
CPU(Central Processing Unit)204は、PC1全体を制御する中央演算装置であり、OSやアプリケーションプログラム等の各種プログラムを実行する。具体的には、CPU204は、HDD202に記憶されたフォトアルバム作成アプリケーション80、Webブラウザアプリケーション143、図3に示す各モジュール(ソフトウェア)を必要に応じてRAM201に読み出して実行する。また、これにより、CPU204は、フォトアルバム作成アプリケーション80、Webブラウザアプリケーション143、図3に示す各モジュール(ソフトウェア)の機能を実現する。
LCD(Liquid Crystal Display)205は、表示用のディスプレイ装置(表示部)である。NB(Network Board)206は、ネットワークに接続するための拡張ボードである。なお、PC1において、PC1の各部201から206は、バス207で相互に接続される。
図3は、PC1のソフトウェアのモジュール構成を示す図である。即ち、PC1は、図3に示すように、モジュール301から309を含む。モジュール301は、アプリケーションモジュールであり、例えば、フォトアルバム作成アプリケーション80、Webブラウザアプリケーション143等を含んで構成される。
モジュール302は、API/DDIインタフェースであり、Application Programing Interface(API)及びDevice Driver Interface(DDI)を含んで構成される。モジュール303は、デバイスドライバとしてのモジュールであり、OSに標準で同梱されている標準ドライバ304及びIndependentHardwareVendor(IHV)から提供されるIHV製ドライバ305を含んで構成される。
モジュール306は、ネットワークのプラグアンドプレイを制御するPnP−X制御モジュールである。なお、PnP−Xとは、ネットワーク接続デバイスに対するサポートを提供する、プラグアンドプレイの一連の拡張機能としてWindows8 OSに標準搭載されている機能である「Plug and Play Extensions」の略称である。
モジュール307は、ネットワーク上のデバイス検索の仕組みを提供するWSD(Web Service on Devices)を制御するWSD制御モジュールである。モジュール308は、IP Networkを制御するIP Network制御モジュールである。モジュール309は、Ethernetを制御するEthernet制御モジュールである。
図4は、フォトアルバム作成アプリケーション80でフォトアルバムを作成/編集する画面の例である。図4において、表示領域401はフォトアルバム作成アプリケーション80の表示領域、表示領域402はフォトアルバムの各ページのサムネイル表示領域、表示領域403はフォトアルバムの表示領域である。
また、図4において、ユーザが、表示領域402において、所望のサムネイルを選択すると、その選択されたサムネイル(即ち、該当するページ)が選択状態404になる。図4では、3〜4ページが選択状態404である例を示しており、ユーザにより3〜4ページが選択されると、3〜4ページの写真のレイアウト結果(つまり、フォトアルバムの見開きページ)が表示領域403に表示される。ユーザは、表示領域403上で編集操作を行うことができる。
写真スロット405は、本発明の画像スロットに対応し、写真を割り当てるためのスロットである。テキストボックス406は、テキストを入力するための領域である。ボタン407は、作成/編集したフォトアルバムをカートに入れるためのボタンである。ユーザがボタン407を選択すると、作成/編集したフォトアルバムがインターネット経由でショッピングカートにアップロードされる。なお、本実施形態では、スロット405に写真がレイアウトされたレイアウト結果として図4のような画面が表示される。
図5は、フォトアルバム作成アプリケーションの機能ブロック図である。なお、図5において、図5(a)はフォトアルバム作成アプリケーション80全体の機能ブロック図として、また、図5(b)はフォトアルバム作成アプリケーション80を構成する自動レイアウト処理部900の機能ブロック図として示される。
先ず、図5(a)のフォトアルバム作成アプリケーション80全体の機能ブロック図について説明する。アルバムデータ生成部800は、ユーザにより選択された画像(写真)に従って、フォトアルバムをデータとして生成する。アルバムデータ生成部800は、ユーザにより選択された画像がフォトアルバムを生成する上で適切な画像であるか否かを判定する画像判定部811と、ユーザにより選択された画像を所定のテンプレートにレイアウトするレイアウト処理部812を有する。なお、レイアウト処理部812には、自動で画像をレイアウトする自動レイアウト処理部900がある。
デバイス制御部820は、前述の図3に示すモジュールと一部、連携することで、各種インタフェースを介して接続される、メモリ、又はハードディスク装置等の外部記憶装置、画像読み取り装置等との間で、データの入出力等の通信を制御する。例えば、デバイス制御部820は、画像読み取り装置における読み取り設定等を調整するように制御する。ネットワーク制御部830は、デバイス制御部820と同様に前述の図3に示すモジュールと一部、連携することで、ネットワークに接続された他の機器との通信制御処理を実行する。
カメラ制御部840は、PC1に内蔵又は接続されているカメラを制御し、撮影モードを調整した上で撮影処理等を実行する。記憶制御部850は、PC1のHDD202に各種データを記憶するように制御する(例えば、外部記憶装置に記憶された画像データを複製して、記憶するように制御する)。表示制御部860は、PC1のディスプレイ装置における表示制御を行う。
次に、図5(b)のフォトアルバム作成アプリケーション80の自動レイアウト処理部900の機能ブロック図について説明する。図5(b)において、アルバム作成条件指定部901は、後述のUI操作に応じたアルバム作成条件を自動レイアウト処理部900に指定する。画像取得部902は、アルバム作成条件指定部901から指定された画像群を、例えば、HDD202等から取得する。画像変換部903は、以降の処理に用いられる画像データを所望の画素数や色情報に変換する。なお、本実施形態において、画像変換部903は、短辺画素の画素数とsRGBの色情報の解析画像に変換する。
画像解析部904は、解析画像から後述の画像特徴量の取得、顔検出、表情認識、個人認識等を実行する。また、画像解析部904は、HDD202から取得した画像に付随するデータ、例えば、Exif等の情報から撮影日時を取得する。画像分類部905は、画像群に対して撮影日時情報や枚数、検出した顔情報を用いて後述のシーン分割、シーン分類を実行する。なお、シーンとは、例えば、旅行や日常、結婚式等の撮影シーンのことである。
主人公情報入力部906は、アルバム作成条件指定部901から指定された主人公のID(識別情報)を画像得点化部907に入力する。画像得点化部907は、取得された各画像に対して、レイアウトに適した画像が高得点になるように得点付けを実行する。なお、画像得点化部907は、得点付けを実行する上で、画像解析部904からの情報、画像分類部905からの情報を用いる。また、画像得点化部907は、主人公情報入力部906から入力された主人公IDが含まれる画像に関して、その画像の得点を加点できる構成となっている。
見開き数入力部908は、アルバム作成条件指定部901から指定されたアルバムの見開き数を見開き割当部909に入力する。見開き割当部909は、画像群を分割して各見開きに割り当てる。見開き割当部909は、見開き数入力部908より入力された見開き数に応じて画像群を分割し、各見開きに画像群の一部を割り当てる。画像選択部910は、見開き割当部909により各見開きに割り当てられた画像群の一部から、画像得点化部907で得点付けした得点を参考にして、アルバムへの掲載を予定する画像を選択する。例えば、画像選択部910は、得点の高い画像を優先的に選択する。テンプレート入力部911は、アルバム作成条件指定部901から指定されたテンプレート情報に応じた複数のテンプレートを画像レイアウト部912に入力する。画像レイアウト部912は、画像選択部910により選択された画像に適したテンプレートをテンプレート入力部911から入力された複数のテンプレートから選択し、画像のレイアウトを決定する。
画像補正条件入力部913は、アルバム作成条件指定部901により指定された画像補正のON/OFF条件を画像補正部914に入力する。画像補正部914は、画像補正条件入力部913より入力された画像補正条件がONである場合、画像変換部903から入力された画像に対して、例えば、覆い焼き補正、赤目補正、コントラスト補正等の画像補正を実行する。また、画像補正部914は、画像補正条件入力部913より入力された画像補正条件がOFFである場合、画像変換部903から入力された画像に対して、画像補正を実行しない。なお、画像変換部903から画像補正部914に入力される画像の画素数は、画像レイアウト部912で決定されたレイアウトのサイズに合わせて変更される構成となっている。レイアウト情報出力部915は、画像レイアウト部912により決定された画像レイアウトに従って、ディスプレイに表示するためのレイアウト情報を出力する。レイアウト情報は、例えば、選択したテンプレートに、選択した画像をレイアウトしたビットマップデータ等のアルバムを作成するために必要なデータを含む。
図6は、フォトアルバム作成アプリケーション80の自動レイアウト処理部900における自動レイアウトの処理の流れを示すフローチャートである。なお、図6に示すフローチャートは、例えば、CPU204がHDD202に格納されたプログラムをRAM201に読み出して実行することにより実現される。
なお、ユーザは、図6の処理を開始する前にアルバムに配置したい画像データ群を選択する。そして、フォトアルバム作成アプリケーション80は、選択された画像データ群の中で、図6にて後述する自動レイアウトに適した画像データを特定する。具体的には、画像データ群の中で、条件1に対応する画像データは自動レイアウトに適さない画像データとして除外される。なお、条件1に対応する画像データは、フォーマットが非対応の画像データ、サイズが既定のサイズよりも大きい画像データ、サイズが既定のサイズよりも小さい画像データ、アスペクト比が所定の比率に適合しない画像データである。また、画像データ群の中で、条件1には対応しないが条件2に対応する画像データも自動レイアウトに適さない画像データとして除外される。なお、条件2に対応する画像データとは、Exif等の情報を含まない画像データである。フォトアルバム作成アプリケーション80は、図6の処理を開始する前に選択された画像データ群から条件1に対応する画像データと条件2に対応する画像データを除外し、残った画像データを使って、以降の図6の処理を実行する。つまり、上述した処理が実行されない場合、自動レイアウトに適さない画像データについても解析処理等が実行されるため、効率の良い自動レイアウト処理を実行できないおそれがあった。本実施形態は、更なる目的として、効率の良い自動レイアウト処理を実行することを目的とする。
画像変換部903は、アルバム作成条件指定部901で指定されたHDD202の画像群の各画像を、所望の画素数と色情報の解析画像に変換する(S01)。なお、本実施形態では、前述のように、短辺画素とsRGBの色情報の解析画像に変換する。
画像解析部904は、画像変換部903により変換された解析画像から画像特徴量を取得する(S02)。また、画像解析部904は、前述のように、HDD202から取得した各画像データに付随する、例えば、Exif等の情報から撮影日時を取得する。なお、画像特徴量としては、例えば、ピントを挙げることができ、また、ピントが合っているか否かに関しては、画像中のエッジの平均傾きを算出することで判別することができる。ここで、エッジの検出に関して一般的にソーベルフィルタを用いることが知られており、画像中のエッジの平均傾きは、ソーベルフィルタでエッジを検出して、エッジの始点と終点の輝度差を始点と終点の距離で割ることで、算出することができる。そして、画像中のエッジの平均傾きが大きい画像は、画像中のエッジの平均傾きが小さい画像よりもピントが合っているものと考えることができる。さらに、画像中のエッジの平均傾きに対して異なる値の複数の閾値を設定し、どの閾値以上かを判別することでピント量を判別することができる。本実施形態では、異なる2つの閾値を設定し、○△×の3段階でピント量を判別する。なお、アルバムに採用したいピントの傾きを○、許容できるピントの傾きを△、許容できない傾きを×とする。
画像解析部904は、画像特徴量の一つとして、画像変換部903により変換された解析画像から顔検出を実行する(S03)。顔の検出に関して、公知の方法を用いることができ、例えば、複数用意した弱識別器から強識別器を作成するAdaboost等が挙げられる。本実施形態では、Adaboostにより作成した強識別器により人物(オブジェクト)の顔を検出し、画像として抽出すると共に、検出した顔位置の左上座標値と右下座標値を取得する。このように、顔位置の左上座標値と右下座標値を取得するため、顔の位置と顔のサイズを知ることができる。なお、Adaboostにより作成した強識別器では、顔に限らず、犬や猫等の動物、花、食べ物、建物、置物等のオブジェクトを、顔の代わりに検出することもできる。即ち、顔以外のオブジェクトも検出することができる。
画像解析部904は、画像変換部903により変換された解析画像から個人認識を実行する(S04)。具体的には、画像解析部904は、ステップS03で抽出した顔画像と、顔辞書データベースに個人ID毎に保存されている代表顔画像を比較することで、その類似性を評価する。そして、顔辞書データベースに個人ID毎に保存されている代表顔画像のうち、その類似性が閾値以上であって、かつ最も類似性が高い代表顔画像から、個人を認識する。なお、類似性が閾値未満の場合は、ステップS03で抽出した顔画像を新規の個人IDに関連付けて、顔辞書データベースに登録する。また、ステップS04における個人認識に関する処理は、ステップS03で抽出された顔の数に応じて実行される。
ステップS02からS04で取得した画像解析情報は、図7に示すように、各画像を識別する画像ID毎に区別して記憶される。詳細には、ステップS02で取得した撮影日時に関する情報とピント量の判別結果、ステップS03で検出した顔の数と、その検出した顔の位置情報を保存する。なお、顔の位置情報は、ステップS04で取得した個人ID毎に区別して記憶される。
自動レイアウト処理部900は、アルバム作成条件指定部901で指定されたHDD202の画像群の全画像に対して、ステップS01からS04の処理が終了したか否かを判定する(S05)。自動レイアウト処理部900は、ステップS01からS04の処理が終了していない場合(S05 No)、ステップS01に処理を返し、ステップS01からS04の処理が終了している場合(S05 Yes)、ステップS06に処理を移行する。
ステップS06において、画像分類部905は、シーン分割を実行する(S06)。画像分類部905は、ステップS02で取得した撮影日時情報を用いることで、画像群を複数のシーンに分割する。例えば、画像間に撮影していない日が存在する場合、画像分類部905は、その画像と画像の間でシーンが変更されたものとして、分割処理を実行する。また、撮影日が連続する場合には、画像分類部905は、例えば、次のように分割処理を実行する。画像分類部905は、画像間における時間差が16時間以上空いている場合、その画像と画像の間でシーンが変更されたものとして、分割処理を実行する。画像間における時間差が16時間未満の場合、連続する各日の最初の撮影から最後の撮影までの時間差が4時間未満であれば、各日の最初の撮影から最後の撮影までの画像を同一のシーンとして分割する。連続する各日の最初の撮影から最後の撮影までの時間差が4時間以上の場合、連続する各日の撮影枚数が50枚未満なら、各日の画像群を1つのシーンとして分割する。50枚以上なら分割しない。図8(a)は、上記説明したシーン分割方法により分割した結果を示している。
画像分類部905は、シーン分割を実行すると、次に、シーン分類を実行する(S07)。以下、シーン(即ち、場面)として、旅行、日常、セレモニーに分類する例で、シーン分類に関する処理を説明する。なお、シーン分類に関する処理は、図9のシーン分類テーブルを用いて実行される。ここで、シーン分類テーブルについて説明する。フォトアルバム作成アプリケーション80の作成者は、フォトアルバム作成アプリケーション80を作成する事前に又はその過程で、旅行、日常、セレモニーと判定される画像をシーン画像群として収集する。そして、フォトアルバム作成アプリケーション80の作成者は、その収集した各シーン画像群について、画像特徴量を取得する。また、ここで、取得する画像特徴量とは、例えば、撮影期間、撮影枚数、撮影人数等である。撮影期間はそのシーン画像群の最初の画像の撮影日時から最後の画像の撮影日時までの時間差として、撮影枚数はシーン画像群の撮影枚数として、また、撮影人数は1画像あたりに撮影された顔の数(即ち、人数)として定義される。
フォトアルバム作成アプリケーション80の作成者は、さらに、各々のシーン画像群に対して、撮影期間の平均値と標準偏差値、撮影枚数の平均値と標準偏差値、1画像あたりの撮影人数の平均値と標準偏差を算出する。その算出結果を用いて図9のシーン分類テーブルが作成される。図9は、各々のシーンにおける、撮影期間の平均値と標準偏差値、撮影枚数の平均値と標準偏差値、1画像あたりの撮影人数の平均値と標準偏差値を示している。フォトアルバム作成アプリケーション80の作成者は、これらの算出した値(シーン分類テーブル)をフォトアルバム作成アプリケーション80のプログラムに予め組み込んでおく。
その状態で、ステップS01からS06までの処理が実行されると、フォトアルバム作成アプリケーション80は、分割した各シーン画像群に対して、撮影期間、撮影枚数、撮影人数の平均値を画像特徴量として算出する。フォトアルバム作成アプリケーション80は、分割した各シーン画像群の撮影期間、撮影枚数、撮影人数の画像特徴量に関して、図9の平均値及び標準偏差値(即ち、予め算出した平均値及び標準偏差値)を用いることで、以下に示す得点化を実行する。
得点=50−|10×(平均値−画像特徴量)/標準偏差値| (数式1)
平均得点=(撮影期間の得点+撮影枚数の得点+人数の得点)
/特徴量項目数 (数式2)
上記(数式1)及び(数式2)より、分割された各シーン画像群に関して、旅行、日常、セレモニー毎の平均得点が算出される。そして、その分割されたシーン画像群に関して、旅行、日常、セレモニーのうち、平均得点が最も高いシーンを、適合するシーンとして分類する。例えば、図8(a)において、分割されたシーン画像群(5)の画像特徴量に関して、撮影期間が36時間、撮影枚数が300枚、撮影人数が1.7人であるものとする。この場合、旅行の平均得点は45.32、日常の平均得点は18.38、セレモニーの平均得点は−29.92と計算され、分割されたシーン画像群(5)は、シーンとして旅行に分類される。また、分類されたシーン画像群は、識別が可能なようにシーンIDにより管理される。なお、平均得点が同じになる場合は、優先度の高いシーンに分類する。ここで、本実施形態では、優先度は日常>セレモニー>旅行の順であり、日常の優先度を最も高くしている。
自動レイアウト処理部900は、ステップS06で分割したシーン画像群の全てに対して、ステップS07においてシーンの分類が終了したか否かを判定する(S08)。自動レイアウト処理部900は、シーンの分類が終了していないと判定した場合(S08 No)、ステップS07に処理を返し、シーンの分類が終了していると判定した場合(S08 Yes)、ステップS09に処理を移行する。
ステップS09において、画像得点化部907は、主人公の設定に関する処理を実行する(S09)。画像得点化部907は、ステップS04における個人認識の結果及びステップS06におけるシーン分割の結果から、画像群に登場する各個人の登場回数、各シーンに登場する各個人の登場回数、各個人が登場するシーンの数等をカウントし、主人公を設定する。なお、主人公の設定には、自動設定と手動設定の2種類の設定がある。
自動設定では、アルバム作成条件指定部901で指定された画像群に複数のシーンがある場合には複数のシーンに登場する個人を主人公に設定し、画像群が単一シーンである場合には単一シーンにおいて登場回数が最も多い個人を主人公に設定する。また、手動設定では、ユーザにより主人公設定アイコンが指定されていることを前提とし、画像得点化部907は、主人公情報入力部906から入力された主人公の設定(即ち、個人ID)に基づいて、画像からその個人を特定し、主人公に設定する。この場合、自動設定は、無効にされる。
画像得点化部907は、主人公を設定すると(S09)、得点化に関する処理を実行する(S10)。なお、得点化とは画像毎に評価した得点を付することであり、得点とは、後述するように、画像選択部910が画像の選択時に参照する値のことである。画像得点化部907は、得点化として、画像毎に、メインスロット用の得点とサブスロット用の得点を付する。また、ここで、図12を用いて、メインスロットとスロットについて、簡単に触れておく。
図12は、画像のレイアウトに用いるテンプレート群を示している。テンプレート群は複数のテンプレート1601により構成され、テンプレート1601には、メインスロット1602と、サブスロット1603、1604がある。図12に示すように、メインスロット1602は、テンプレート1601においてメインとなるスロット(画像をレイアウトする枠)であり、サブスロット1603及び1604よりもサイズが大きいという特徴を有する。
次に、図10を用いて、画像得点化部907における得点化に関する具体的な処理を説明する。図10(a)は、旅行、日常、セレモニーの各シーンにおける、アルバムに採用する画像の特徴をメインスロットとサブスロットに分けて纏めた表である。フォトアルバム作成アプリケーション80の作成者は、図10(a)に示す、旅行、日常、セレモニーの各シーンにおけるメインスロットの画像特徴とサブスロットの画像特徴の各々に適合する、複数の画像を予め収集する。そして、フォトアルバム作成アプリケーション80の作成者は、収集した画像の各々に関して、顔の数、顔の位置、顔のサイズ等の画像特徴を集計する。フォトアルバム作成アプリケーション80の作成者は、さらに、各々のスロットにおける、顔の数、顔の位置、顔のサイズ等の画像特徴の平均値と標準偏差値を算出し、アルバム作成アプリケーションのプログラムに記憶しておく。
その状態で、ステップS01からS09までの処理が実行されると(即ち、ステップS09の主人公の設定処理が完了すると)、フォトアルバム作成アプリケーション80は、画像得点化部907により得点化に関する処理を実行する(S10)。なお、この得点化に関する処理の実行時において、処理対象とする画像に関して、既に、シーンが分類され、さらに主人公が設定されているものとする。画像得点化部907は、得点化の処理対象とする画像のシーンに対応する、予め算出した平均値と標準偏差値、及び得点化の処理対象とする画像における主人公の顔の数、顔位置、顔サイズ等の各特徴量に関して、以下の数式を用いて得点と平均得点を算出する。
得点=50−|10×(平均値−画像特徴量)/標準偏差| (数式3)
平均得点=(顔数の得点+顔位置の得点+顔サイズの得点)
/特徴量項目数 (数式4)
図10(b)は、得点化の処理対象とする各画像に関して、(数式3)及び(数式4)により得点を算出した結果を、その一例として示すものであり、図10(b)に示すように、画像IDに関連付けて、メインスロットとサブスロットに得点が付される。例えば、図10(b)が旅行シーンの得点の算出結果とすると、画像ID2の画像がメインスロットに適した画像として特定される。なお、アルバムに用いる画像は、ピントが合っている画像の方が好ましいことから、図7に示す画像解析情報において、ピントの特徴量が○で示される画像IDの画像に対しては得点を別途、加算してもよい。
自動レイアウト処理部900は、アルバム作成条件指定部901で指定されたHDD202の画像群の全画像に対して、ステップS10の処理が終了したか否かを判定する(S11)。自動レイアウト処理部900は、ステップS10の処理が終了していない場合(S11 No)、ステップS10に処理を返し、ステップS10の処理が終了している場合(S11 Yes)、ステップS12に処理を移行する。
ステップS12において、見開き割当部909は、画像分類部905によりシーン分割された分割数と、見開き数入力部908から入力された見開き数が同じであるか否かを判定する。自動レイアウト処理部900は、見開き割当部909により、分割数と見開き数が同じであると判定された場合(S12 Yes)、ステップS16に処理を移行させる。具体的には、図8(a)において、分割されたシーン画像群の数は8つであり、この場合、見開き数入力部908に入力された見開き数が8つであれば、自動レイアウト処理部900は、ステップS16に処理を移行させる。また、自動レイアウト処理部900は、見開き割当部909により、分割数と見開き数が同じでないと判定された場合(S12 No)、ステップS13に処理を移行させる。
ステップS13において、見開き割当部909は、画像分類部905によりシーン分割された分割数が見開き数入力部908から入力された見開き数より少ないか否かを判定する(S13)。自動レイアウト処理部900は、見開き割当部909により、分割数が見開き数より少ないと判定すると(S13 Yes)、ステップS14に処理を移行させる。具体的には、図8(a)において、分割されたシーン画像群の数は8つであり、この場合、見開き数入力部908に入力された見開き数が10であれば、自動レイアウト処理部900は、ステップS14に処理を移行させる。また、自動レイアウト処理部900は、見開き割当部909により、分割数が見開き数より多いと判定すると(S13 No)、ステップS15に処理を移行させる。
見開き割当部909は、分割数が見開き数より少ないと判定すると(S13 Yes)、画像分類部905によりシーン分割されたシーン画像群に関して、さらに、サブシーンに分割する(S14)。即ち、見開き割当部909は、シーン分割数<見開き数の場合に、シーン分割数と見開き数が同じになるように、画像分類部905により分割されたシーン画像群に対して、細分割処理を施す。
ここで、ステップS14における、サブシーンに分割する処理を、図8を用いて例示する。なお、図8(a)に示されるように、S06の処理結果であるシーン分割数は8つであり、また、見開き数入力部908から入力された見開き数は10であるものとする。図8(b)は、図8(a)をサブシーンに分割した結果であり、破線矢印の箇所(図8(b)の(2)と(3)、(6)と(7))でサブシーンに分割したことで、シーンの分割数を10に調整している。
以下、サブシーンに分割する場合の分割の基準を示す。見開き割当部909は、先ず、図8(a)の分割されたシーン画像群のうち、シーン画像群を構成する画像枚数が多い分割箇所を探す。ここでは、分割数を8から10に増やし、見開き数と同じ数に調整するために、見開き割当部909は、画像枚数が多いシーン画像群を順に2つ選択する。図8(a)に示す例では、見開き割当部909は、画像枚数の多い順に、シーン画像群(5)、次に、画像枚数が同数であるシーン画像群(1)と(2)を選択対象とする。
また、見開き割当部909は、シーン画像群を選択する上で、シーン画像群の画像枚数が同じである場合、シーン画像群を構成する最初の画像の撮影日時から最後の画像の撮影日時までの時間差がより大きいシーン画像群を、分割対象として選択する。即ち、図8(a)に示す例では、画像枚数が同数であるシーン画像群(1)と(2)に対して、シーン画像群を構成する最初の画像の撮影日時から最後の画像の撮影日時までの時間差がより大きいシーン画像群(2)を分割対象として選択する。
そして、見開き割当部909は、選択したシーン画像群(5)及び(2)に関して、細分割処理を実行する。ここで、シーン画像群(5)は、3日にかけて撮影された画像群であり、図8(a)に示すように画像枚数が3箇所に分布している。この場合、見開き割当部909は、撮影日が変わる箇所であって、さらに分割後の枚数差が小さくなるように分割処理を実行する。即ち、図8(b)の破線矢印の箇所((6)と(7)の間、シーン画像群(5)の中の2日目と3日目の間)で分割処理を実行する。また、シーン画像群(2)は、2日にかけて撮影された画像群であることから、撮影日が変わる箇所で分割するという前提に従って、見開き割当部909により図8(b)の破線矢印の箇所((2)と(3)の間)で分割される。なお、図8では撮影日が変わる箇所で分割する例を示したが、分割対象として選択されたシーン画像群を構成する画像のすべてが1日で撮影されていた場合には、シーン画像群を構成する画像のうち、撮影日時の時間差が最大となる箇所で、分割処理が実行される。
また、見開き割当部909は、分割数が見開き数以上であると判定すると(S13 No)、画像分類部905によりシーン分割されたシーン画像群に関して、シーンの統合処理を実行する(S15)。ここで、ステップS15における、シーンの統合処理を、同様に図8を用いて例示する。前述のように、図8(a)において、S06の処理結果であるシーン分割数は8つであり、また、ここでは、見開き数入力部908から入力された見開き数は6であるものとする。この場合、例えば、図8(c)の破線の箇所に示されるように、シーン分割されたシーン画像群のうち、2箇所を統合する。
以下、シーンを統合する基準を示す。なお、ここでは、分割数を8から6に調整するため、図8(a)において、画像枚数の少ないシーン分割されたシーン画像群を2箇所、決定する。図8(a)において、シーン画像群のうち、画像枚数の少ない方から、シーン画像群(8)、(3)、(7)であり、シーン画像群(3)と(7)は、同じ画像枚数である。この場合、シーン画像群(8)は、最も画像枚数の少ないシーン画像群であることから、優先的に統合対象として決定され、また、シーン画像群(7)は、シーン画像群(8)に隣接することから、シーン画像群(8)と統合される。そのため、見開き割当部909は、2箇所目のシーン画像群として、シーン画像群(3)を統合対象として決定する。
次に、具体的なシーン画像群の統合処理について、シーン画像群(3)、シーン画像群(8)の順に説明する。シーン画像群(3)に関して、その前後のシーン画像群(2)と(4)との時間差を比較すると、シーン画像群(4)との時間差の方が小さいことから、この場合、シーン画像群(4)と統合処理を実行する。また、シーン画像群(8)に関して、画像群のうち、時間的に最後に位置するシーン画像群であることから、シーン画像群(7)と統合処理を実行する。
見開き割当部909は、シーンの分割数と見開き数が同じ数(S12)、又は同じ数に調整されると(S14、S15)、見開き割当に関する処理を実行する(S16)。なお、見開き割当に関する処理に関して、時間的に最初に位置するシーン画像群から、見開きに順に割り当てられる。
画像選択部910は、見開きに割り当てられたシーン画像群から、見開きにレイアウトする画像を選択する(S17)。図11は、見開きに割り当てられたシーン画像群からレイアウトする画像を4枚選択する例を示す図である。図11(a)は、撮影日時に従って、見開きに割り当てられたシーン画像群の画像を示した図である。換言すると、見開きに割り当てられたシーン画像群の画像として、時間的に最初に撮像された画像から最後に撮像された画像までの時間差(分割撮影期間)を示している。
図11(b)は、見開きに割り当てられたシーン画像群から、見開きにレイアウトする1枚目の画像を選択する方法を説明する図である。前述の図12で例示したように、テンプレートには、1つのメインスロットがあり、画像選択部910は、1枚目の画像として、メインスロット用の画像を選択する。画像選択部910は、図11(b)に示す分割撮影期間にある画像のうち、ステップS10で得点化したメインスロット用の得点が最も高い画像を選択する。
画像選択部910は、2枚目の画像として、サブスロット用の画像を選択する。なお、サブスロット用の画像を選択するに際して、分割撮影期間の一時期に集中しないように、分割撮影期間を細分化する。以下、図11(c)−(f)を用いて説明する。先ず、図11(c)に示すように、分割撮影期間を2分割する。次に、図11(d)に示すように、1枚目の画像が選択されていない分割撮影期間(図中、実線)から2枚目の画像を選択する。なお、2枚目の画像を選択するに際して、実線の分割撮影期間に対応する画像のうち、サブスロット用の得点が最も高い画像を選択する。
画像選択部910は、2枚目の画像を選択すると、さらに、図11(e)に示されるように、図11(d)に示す各分割撮影期間を2分割する。そして、画像選択部910は、図11(f)に示すように、1枚目と2枚目の画像が選択されていない実線の分割撮影期間に対応する画像のうち、サブスロット用の得点が最も高い画像を3枚目の画像として選択する。
また、補足として、細分化した分割撮影期間に選択対象とする画像が存在しない場合の画像の選択例(ここでは、4枚目の画像の選択例)を、図11(g)−(i)を用いて説明する。上述の画像の選択規則に従うと、図11(f)までで3枚目の画像を選択した後、図11(g)の斜線に示される、画像が選択されていない分割撮影期間にある画像が、選択されて然るべきである。しかしながら、図11(g)の斜線に示される分割撮影期間に、画像が存在しないケースも考えられる。そこで、画像選択部910は、図11(h)に示すように、各分割撮影期間をさらに2分割する。次に、図11(i)に示すように、1〜3枚目が選択されていない実線の分割撮影期間に対応する画像のうち、サブスロット用の得点が最も高い画像を4枚目として選択する。
画像レイアウト部912は、画像選択部910により画像が選択されると、画像のレイアウトを決定する(S18)。図12は、画像レイアウト部912におけるレイアウト処理を説明する図である。なお、図12では、テンプレート入力部911により、ある見開きに対して、指定のテンプレート情報に従って、テンプレート(1−1)〜(4−4)が入力された例を用いて説明する。また、入力されたテンプレート(1−1)〜(4−4)のスロット数は、3つとしている。さらに、図中、下部において、画像選択部910において選択された3枚の画像に関して、その向きが縦方向、又は横方向にあるかを撮影日時に対応させて示している。
図12に示す例では、画像1605がメインスロット用の画像であり、画像1606と画像1607がサブスロット用の画像である。なお、本実施形態では、テンプレートの左上に撮影日時のより古い画像、右下に撮影日時のより新しい画像がレイアウトされるようにする。前述のように、画像1605は、メインスロット用の画像であり、また撮影日時が時間的に最後の画像(即ち、最も新しい画像)であることから、図12の(3−1)〜(3−4)がテンプレートの候補として選択される。また、サブスロット用の画像に関して、撮影日時の古い画像が画像1606(即ち、縦画像)で、撮影日時の新しい画像が画像1607(即ち、横画像)であるため、テンプレート(3−2)がレイアウトする画像に最も適したテンプレートとして選択される。
このように、画像レイアウト部912は、画像選択部910により選択された画像を、そのテンプレートのどのスロットにレイアウトするかを情報として決定する。なお、図12では、スロット数が3つの場合を例示したが、スロット数が4つの場合も、同様に、スロット数が4つのテンプレートセットを用意して、スロットと画像の適合性を判定した上で、どのテンプレートにどの画像をレイアウトするかを決定すればよい。
画像補正部914は、画像補正条件入力部913から入力された画像補正条件がONである場合、画像変換部903から入力された画像に対して画像補正を実行する(S19)。画像補正部914は、画像補正として、例えば、覆い焼き補正、赤目補正、コントラスト補正等を自動で実行する。なお、画像補正部914は、短辺画素の画素数が1900画素で、sRGBの色空間に変換した画像に対して、画像補正を実行する。また、画像補正部914は、画像補正条件入力部913から入力された画像補正条件がOFFである場合、画像変換部903から入力された画像に対して画像補正を実行しない。
レイアウト情報出力部915は、レイアウト情報を作成する(S20)。具体的には、フォトアルバム作成アプリケーション80は、ステップS19で画像補正がされた場合にその補正された画像を、ステップS18で決定されたテンプレートの対応する各スロットにレイアウトし、ビットマップデータを生成する。このビットマップデータ等を含むレイアウト情報がS20において作成される。なお、レイアウト情報出力部915は、写真スロットのサイズ情報に合わせて、レイアウトする画像を変倍してレイアウトする。レイアウト情報に含まれるデータの別の形態として、ビットマップデータの代わりに各スロットと画像データの関連付けを示すデータがレイアウト情報に含まれても良い。自動レイアウト処理部900は、ステップS17〜ステップS20の処理が全ての見開きに対して終了したか否かを判定する(S21)。自動レイアウト処理部900は、ステップS17〜ステップS20の処理が全ての見開きに対して終了していないと判定した場合(S21 No)、ステップS17に処理を返し、終了していると判定した場合(S21 Yes)、自動レイアウト処理を終了する。
以上、フォトアルバム作成アプリケーション80における自動レイアウトの処理に関して説明したが、以降、図13から図21を用いて、自動レイアウトにより写真スロットに設定された写真を、別の写真に入れ替える処理に関して説明する。
図13は、自動レイアウト処理により写真スロットにレイアウトされた写真を、ユーザにより事前に選択された写真のうちの1つの写真に入れ替える例を示した図である。フォトアルバム作成アプリケーション80において、図13(a)の状態から、ユーザが写真を入れ替えたい写真スロットA1を選択すると、図13(b)の状態になる。即ち、フォトアルバム作成アプリケーション80は、ユーザにより選択された写真スロットA1の枠を太く表示したり、色を変えて表示したり、強調して表示することで、写真スロットA1が選択されたことを示す。また、フォトアルバム作成アプリケーション80は、図13(b)に示すように、同時に、写真スロットA1で編集可能な処理を表示する。ここでは、図13(b)に示すように、編集可能な処理として、「写真の入れ替え1301」、「写真の編集1302」、「自動写真補正1303」、「赤目補正1304」の処理を実行するためのボタンを写真スロットA1付近に表示する。
ユーザが、「写真の入れ替え1301」を選択すると、対象の写真スロット(ここでは、写真スロットA1)の写真を手動で入れ替えることができる。また、ユーザが、「写真の編集1302」を選択すると、写真のトリミングや回転等を行うことができる。その他において、ユーザが、「自動写真補正1303」を選択すると、写真の内容に応じて自動的に補正を行うことができ、また、「赤目補正1304」を選択すると、人物の赤目を補正することができる。
ここでは、ユーザが、写真を入れ替えることを目的として、「写真の入れ替え1301」を選択した場合を説明する。フォトアルバム作成アプリケーション80は、ユーザにより「写真の入れ替え1301」が選択されると、図13(c)に示すように、おすすめの写真ダイアログ1305を表示する。なお、図13の写真スロットA1の画像a1を入れ替え対象として選択された画像(または入れ替え対象画像)と呼ぶ。フォトアルバム作成アプリケーション80は、おすすめの写真ダイアログ1305において、対象の写真スロットA1に適したおすすめ写真を表示する。ここでは、おすすめの写真としてR1〜R4を表示している。ここで、おすすめの写真の表示方法について説明する。フォトアルバム作成アプリケーション80は、図6の自動レイアウト処理が実行される前にユーザにより選択された写真の中から、アルバムに適さない画像(例えば、解像度の低すぎる画像等)を除外する。そして、除外されなかった写真について上述した図6の処理が実行される。その後、フォトアルバム作成アプリケーション80は、おすすめの写真を表示するために、編集対象となっている見開きに対応づけられている画像群(つまり、図8の(1)〜(8)のいずれか)の中からスロットに配置されていない画像を特定する。そして特定された画像の中で得点の高い画像がおすすめの写真として表示される。なお、選択されたスロットがメインスロットであればメインスロット用に算出された得点を基準におすすめの写真が選択され、選択されたスロットがサブスロットであればサブスロット用に算出された得点を基準におすすめの写真が選択される。ユーザは、おすすめの写真ダイアログ1305の中に写真スロットA1の写真a1と入れ替えたい写真があれば、その入れ替えたい写真を選択することで、写真スロットA1の写真a1と入れ替えることができる。このおすすめの写真ダイアログ1305には、アルバムを作成する事前にユーザにより選択された写真であって、かつ、自動レイアウト処理部900により写真スロットA1に相応しい写真が提示される。即ち、おすすめの写真ダイアログ1305では、解像度の低い写真等、レイアウトに適さない画像は提示されない。
但し、おすすめの写真ダイアログ1305を表示しても、なお、おすすめの写真ダイアログ1305に表示された写真の中に、ユーザの選択したい写真がない場合がある。その場合、ユーザは、「他の写真」ボタン1306を選択することで、図13(d)に示すように、おすすめ写真ダイアログ1305に表示された写真とは異なる写真(即ち、写真L1〜L18の18枚の写真)を表示させることができる。なお、図13(d)の中に、おすすめの写真であるR1〜R4が含まれていても良い。
この図13(d)に示す写真に関して、アルバムを作成する事前にユーザが選択した写真の中から、自動レイアウト処理部900によりアルバムに適さない画像(例えば、解像度の低すぎる画像等)が除外されている。ユーザは、これらの写真L1〜L18の中から所望の写真を1枚選択することにより、写真スロットA1にその選択した写真を設定することができる。
なお、図13(d)において、ユーザが「Back」ボタン1307を選択すると、フォトアルバム作成アプリケーション80は、写真入れ替えに関する処理をキャンセルし、図13(a)の画面に戻す。また、フォトアルバム作成アプリケーション80は、ユーザにより「Add Photo」ボタン1308が選択されると、ユーザが事前に選択した写真以外の、任意の写真を選択できるように処理を移行させる。任意の写真を選択する処理は、図15を用いて後述する。
図14は、図13(d)で表示されている写真L18を仮選択した例を示した図である。なお、ここで、仮選択とは、写真の入れ替えを確定するまでの未確定の段階の選択のことである。フォトアルバム作成アプリケーション80は、図14(a)においてユーザにより写真L18が仮選択されると、図14(b)に示すように、写真L18を拡大表示する。ユーザは、この拡大表示された写真L18を確認して、写真スロットA1に写真を入れ替えるか否かを決定する。ここで、ユーザが「Cancel」ボタン1401を選択すると、フォトアルバム作成アプリケーション80は、写真入れ替えに関する処理をキャンセルし、図14(a)の画面に戻す。また、ユーザが「OK」ボタン1402を選択すると、写真スロットA1の写真a1を写真L18に入れ替える。
なお、図14(b)では、拡大表示した写真L18を強調して表示させ、その写真L18の背面に表示される写真L1〜L18を目立たないようにするため、写真L18の表示領域以外の領域に関して、グレーのマスク1403を掛けている。これにより、ユーザによる写真の指定を補助している。また、図14(b)において、「<」ボタン1404を選択すると写真L17が拡大表示され、「>」ボタン1405を選択すると、図14(c)に示すように、写真L19が拡大表示される。さらに、この場合、拡大表示されている写真L19の背面の表示も切り替わる。即ち、フォトアルバム作成アプリケーション80は、拡大表示させた写真に連動させて、拡大表示させた写真の表示領域以外の領域に関しても、表示内容を切り替える。具体的には、グレーのマスク1403を掛けた背面に着目すると、図14(b)では写真L19を表示していないが、図14(c)では写真L19を表示するように、表示内容を切り替えている。フォトアルバム作成アプリケーション80は、図14(c)において、ユーザにより「OK」ボタン1402が選択されると、写真スロットA1の写真a1を写真L19に入れ替える(図14(d))。なお、入れ替え対象として選択された画像の代わりに配置される画像を新規画像と呼ぶ。つまり、図14の例では、写真a1が入れ替え対象として選択された画像であり、写真L19が新規画像である。
図15は、自動レイアウト処理により写真スロットにレイアウトされた写真を、ユーザにより事前に選択された写真以外(画像以外)の写真から選択された他の写真に入れ替える例を示した図である。図15(a)(即ち、前述の図13(d))において、ユーザが表示領域401の右上の「Add Photo」ボタン1308を選択すると、図15(b)に示すように、ファイルエクスプローラ1501が表示される。この図15(b)に示すファイルエクスプローラ1501は、OS標準のファイルエクスプローラでも、また、フォトアルバム作成アプリケーション80により独自に作成されるファイルエクスプローラでもよい。
なお、図15に示す例では、このフォトアルバム作成アプリケーション80に対応する写真のフォーマットをJPEGのみとしているため、図15(b)のファイルエクスプローラ1501にはJPEG画像だけが表示される。また、図15(b)において、ユーザにより写真P2が仮選択されると、フォトアルバム作成アプリケーション80は、写真P2を拡大表示する(図15(c))。さらに、図15(c)において、ユーザにより「OK」ボタン1402が選択されると、フォトアルバム作成アプリケーション80は、図15(d)に示すように、対象の写真スロットA1の写真a1を写真P2に入れ替える。
図16は、自動レイアウト処理により写真スロットにレイアウトされた写真を、ドラッグ&ドロップにより、他の写真に入れ替える例を示した図である。なお、ここでは、図16(b)の写真スロットA1に設定されている写真a1を別の写真に入れ替える例を示す。図16(a)は、ファイルを表示するためのファイルエクスプローラ1501を示しており、ファイルエクスプローラ1501は一般にOSに付属されている。図16(a)では、ファイルエクスプローラ1501に、JPEG画像としてP1〜P8の8枚の写真が表示されている。
次に、ユーザは、図16(a)にファイルエクスプローラ1501において表示された写真P8を、図16(b)に示すように写真スロットA1にドラッグ&ドロップする。そうすると、図16(c)に示されるように、写真スロットA1の写真a1が写真P8に入れ替わる。図16に示すように、ユーザは、ドラッグ&ドロップにより、ファイルエクスプローラ1501から任意の写真を入れ替え対象として選択することができる。フォトアルバム作成アプリケーション80は、ユーザによりドラッグ&ドロップの操作がなされると、ユーザが入れ替えようとしている写真がアルバムにレイアウトする上で相応しいか写真であるか否かを判定し、相応しいと判定すると写真を入れ替える。図16に示す例では、フォトアルバム作成アプリケーション80が、写真P8に関して、アルバムにレイアウトする上で相応しい写真と判定したことから、写真スロットA1の写真をP8に入れ替えている。次に、ユーザが入れ替えようとした写真がアルバムにレイアウトする上で、解像度が低すぎる等の理由により、相応しくないと判定される場合に関して、図17を用いて説明する。
図17は、自動レイアウト処理により写真スロットにレイアウトされた写真を、ドラッグ&ドロップにより、他の写真に入れ替えることができない例を示した図である。図17では、図17(a)の状態から図17(b)の状態として示すように、写真P7をドラッグ&ドロップすることで、写真スロットA1の写真a1を写真P7に入れ替えようとしている。しかしながら、ユーザが入れ替えようとしている写真P7は解像度が低い画像であるために、フォトアルバム作成アプリケーション80は、図17(c)に示すようにエラー(即ち、写真スロットA1には写真P7を入れ替えることができないこと)を表示する。即ち、フォトアルバム作成アプリケーション80は、ユーザによりドラッグ&ドロップされた写真のサイズが大きすぎること、又は小さすぎることが原因で、写真を入れ替えることができないことを、エラーダイアログ1701で表示する。エラーダイアログ1701を表示する処理をエラー表示制御と呼ぶこともある。なお、この表示されたエラーダイアログ1701において、ユーザが「OK」ボタンを選択すると、このエラーダイアログ1701は閉じられて、写真スロットA1には、引き続き、写真a1が設定されたままの状態となる。また、スロットに設定可能なアスペクト比とユーザにより入替対象とされた写真のアスペクト比が異なる場合、スロットに設定可能な画像フォーマットとユーザにより入替対象とされた写真のフォーマットが異なる場合等に、エラーダイアログが表示される。
図18は、自動でフォトアルバムにレイアウトされた写真に関して、写真を入れ替える処理をフローチャートとして示した図である。フォトアルバム作成アプリケーション80は、ユーザにより選択されたフォトアルバムの種類を取得する(S101)。ここで、フォトアルバムの種類とは、例えば、フォトアルバムのサイズ、ページ数、綴じ方、紙の種類等のことである。フォトアルバム作成アプリケーション80は、次に、ユーザにより選択された、アルバムに使用する写真を取得する(S102)。フォトアルバム作成アプリケーション80は、ユーザがピクチャーフォルダに写真を保存している場合において、ユーザにより選択されたピクチャーフォルダに保存されている写真を取得する。
そして、フォトアルバム作成アプリケーション80は、フォトアルバムの作成に関する要求を受信すると、フォトアルバムの作成を開始する(S103)。フォトアルバム作成アプリケーション80は、フォトアルバムの作成を開始すると、自動レイアウト処理部900によりステップS102で選択された写真を解析し、自動でフォトアルバムにレイアウトする。つまり、図6等を用いて説明した処理が実行される。フォトアルバム作成アプリケーション80は、レイアウトが完了すると、編集画面を表示する(S104)。
ユーザは、この編集画面において、写真の入れ替え等の編集作業を行う。そして、ユーザが、ある写真スロットに設定されている写真を入れ替えようと、その写真スロットを選択すると、その選択に応じて、フォトアルバム作成アプリケーション80は、「Change Photo」ボタン1301を表示する(S105)。さらに、フォトアルバム作成アプリケーション80は、ユーザにより「Change Photo」ボタン1301が選択されると、おすすめの写真ダイアログ1305を表示する(S106)。
ユーザは、おすすめの写真ダイアログ1305に、選択した写真スロットにある写真と入れ替えたい写真がない場合には、「Other Photo」ボタン1506を選択する。フォトアルバム作成アプリケーション80は、その選択に応じて、ステップS102でユーザが選択した写真の一覧を表示する(S107)。なお、S107として表示される画像は、上述した図6において選択された画像データ群から条件1に対応する画像データと条件2に対応する画像データを除外し、残った画像データと、条件2に対応する画像データである。これは、条件2に対応する画像データは、Exif等の情報を含まないため自動レイアウトには適さないが、ユーザが手動で配置する場合にはレイアウト可能であるからである。一方、条件1に対応する画像データは、ユーザが手動で配置する場合であってもレイアウトできないため(つまり、アルバムに適さないため)、S107においても非表示である。以上の処理を実行することに、結果としてアルバムに適さない条件1に対応する画像データが選択肢から除外されるため、例えば、ユーザが誤ってアルバムに適さない条件1に対応する画像データを選択することを防止できる。また、効率の良い自動レイアウト処理を実行しつつ、ユーザにおける画像データの選択操作の操作性を向上できる。
ユーザは、ステップS107において表示された写真の一覧に、選択した写真スロットにある写真と入れ替えたい写真があるかどうかを検討し、入れ替えたい写真がない場合には、「Add Photo」ボタン1508を選択する。フォトアルバム作成アプリケーション80は、その選択に応じて、ファイルエクスプローラ1501を表示する(S108)。そして、そのファイルエクスプローラ1501にある写真がユーザにより入れ替えたい写真として選択されると、フォトアルバム作成アプリケーション80は、後述の図19の処理を実行した上で、その選択された写真を対象スロットに設定する(S109)。即ち、フォトアルバム作成アプリケーション80は、後述の図19の処理で設定可能と判定すると、対象スロットにある写真を、ユーザにより選択された写真に入れ替える。
図19は、ファイルエクスプローラ1501を用いて、写真を入れ替える場合のフォトアルバム作成アプリケーション80の内部処理の流れを示したフローチャートである。フォトアルバム作成アプリケーション80は、ユーザによりファイルエクスプローラ1501において写真が選択されると、その選択に応じて、その選択された写真がフォトアルバムにレイアウトする上で相応しい写真であるか否かを判定する(S201)。フォトアルバム作成アプリケーション80は、例えば、解像度が低すぎる場合や、アスペクト比が写真スロットには合わない場合等には、その選択された写真に入れ替えず、表示領域401にエラーダイアログ1701を表示する(S202)。なお、エラーダイアログに続行ボタンを用意することも可能である。この続行ボタンが押下された場合、フォトアルバム作成アプリケーション80は、対象の写真スロットにある写真をS201においてNoと判定された写真に入れ替えても良い。
他方、フォトアルバム作成アプリケーション80は、ステップS201において選択された写真がフォトアルバムにレイアウトする上で相応しい写真であると判定すると、その選択された写真が外部メモリに保存されているか否かを判定する(S203)。ここで、外部メモリとは、例えば、USBメモリ等である。但し、外部メモリは、ユーザの所望するタイミングで接続を解除することができる。そのため、フォトアルバム作成アプリケーション80は、選択された写真が外部メモリに保存されていると判定すると(S203 Yes)、アルバム編集中に接続が解除されても問題がないように、写真をPC等のローカル環境にコピーしておく(S204)。このようにコピー(複製)しておくことで、フォトアルバムの作成中に外部メモリの接続が解除された場合であっても、アルバムの作成や編集に影響が及ばないようにする。なお、外部メモリに記憶された写真としては、必ずしもUSBメモリに記憶された写真に限定されず、SNS等のWebサイト上にアップロードされた写真等のように、本処理を実行する端末とは異なる端末に記憶された写真も、本処理の対象とすることができる。その後、選択された写真が、外部メモリに記憶された写真ではない場合、又は、外部メモリに記憶された写真である場合であって、写真がローカル環境にコピーされると、対象の写真スロットにある写真を選択された写真に入れ替える(S205)。
図20は、写真スロットに設定する対象として、PCやメモリカード等に既に存在する写真ではなく、PCやスマートフォン、タブレット等に内蔵又は接続されているカメラで撮影した写真を対象に設定する場合を例示したものである。表示領域401において、ユーザが「Camera」ボタン2001を押すと、フォトアルバム作成アプリケーション80は、カメラを撮影するためのユーザインターフェース2002を表示する。そして、ユーザが「撮影」ボタン2003を押すと、ユーザインターフェース2002に表示されている画像が、写真として撮影される。
フォトアルバム作成アプリケーション80は、撮影された写真を、拡大表示する等してユーザに提示し、ユーザがその写真を選択すると、フォトアルバム作成アプリケーション80は、写真スロットの写真に設定する。図20(a)は、縦長の写真スロットが選択された後に、「Camera」ボタン2001が選択された場合のユーザインターフェースである。つまり、撮影領域として縦長の領域が表示される。一方、横長の写真スロットが選択された後に「Camera」ボタン2001が選択された場合は撮影領域として横長の領域が表示される。その他、スロットの形状に合わせてカメラを縦向きまたは横向きに配置するようにメッセージが表示されても良い。一方、図20(b)は、正方形の写真スロットが選択された後に、「Camera」ボタン2001が選択された場合のユーザインターフェースである。即ち、図20(a)と図20(b)では撮影モードが異なり、図20(a)は通常の縦長または横長の撮影モードであり、図20(b)はスクエアの撮影モードである。このように、フォトアルバム作成アプリケーション80は、対象の写真スロットの形状に応じて、カメラの撮影モードを設定する。具体例として、フォトアルバム作成アプリケーション80が、カメラを制御するカメラアプリケーションに撮影モードを指示することでカメラの撮影モードを設定することができる。
図21は、写真スロットに設定する対象として、PCやメモリカード等に既に存在する写真ではなく、PC、スマートフォン、タブレットに接続されたスキャナ等の画像読み取り装置で画像を読み取り、その画像を対象にする場合を例示したものである。フォトアルバム作成アプリケーション80は、ユーザにより「Scan」ボタン2101が選択されると、画像読取装置において画像を読み取るためのユーザインターフェース2102を表示する。ユーザインターフェース2102には、「Preview」ボタン2103、「Scan」ボタン2104、プレビュー画像表示領域2105が設定される。フォトアルバム作成アプリケーション80は、ユーザにより「Preview」ボタン2103が選択されると、画像読み取り装置にプレスキャン処理を実行させることで得られた画像をプレビュー画像表示領域2105にプレビュー画像として表示する。
フォトアルバム作成アプリケーション80は、ユーザにより、プレビュー画像表示領域2105においてスキャン対象領域2106が設定され、「Scan」ボタン2104が選択されると、スキャン対象領域2106に対してスキャン処理を実行する。図21(a)は、スキャン対象として縦長の写真スロットが選択された後に、「Scan」ボタン2101が選択された場合のユーザインターフェースである。また、図21(b)は、ユーザによりスキャン対象として正方形の写真スロットが選択された後に、「Scan」ボタン2101が選択された場合のユーザインターフェースである。即ち、図21(a)と図21(b)では、スキャン対象領域2106の矩形が異なっている。図21(a)では実際にスキャンする領域は縦長の領域であり、図21(b)では正方形の領域である。このように、フォトアルバム作成アプリケーション80は、対象の写真スロットの形状に応じて、スキャン対象領域を最適なものに合わせる。
なお、図21では、写真スロットの形状に応じて読取設定を変更したが、読取設定の変更は必ずしも形状に限定されず、例えば、写真スロットに適した解像度や写真スロットに設定されているエフェクト機能等に応じて読取設定を変更してもよい。したがって、例えば、大きいサイズの写真スロットの場合には、印刷品位を維持するために高い解像度の写真をセットした方がよいため、画像読取装置の解像度設定を高解像にした上で、画像を読み取るようにしてもよい。
また、写真スロットには、エフェクトが掛けられているものがある。例えば、グレーのエフェクトが掛けられた写真スロットに写真をセットすると、カラーの写真もグレーのエフェクトが適用されて写真スロットに設定される。このようなエフェクト機能を有する写真スロットに対して画像を設定する場合、画像読取装置でエフェクト機能の設定を掛けた上で画像を読み取ってもよい。したがって、例えば、グレーのエフェクトが掛かる写真スロットでは、グレーモードで写真を読み取るようにしてもよい。
加えて、本実施形態では、画像として写真(即ち、静止画像)を一例に挙げて説明したが、例えば、動画撮影された動画像に含まれるフレーム画像を用いることもできる。フォトアルバム作成アプリケーション80は、先ず、動画データから連続するフレームを抽出し、前後のフレーム間の特徴量の差を特定し、動き量を判定する。
特徴量の差の特定方法として、例えば、フォトアルバム作成アプリケーション80は、抽出した各フレームの領域を複数の領域に分割し、その分割した複数の領域に対してRGB値に関するヒストグラムを作成する。フォトアルバム作成アプリケーション80は、分割した複数の領域に対して、前後のフレーム間における、RGB値に関するヒストグラムの差分を算出し、その差分が所定の閾値より大きいと判定されたヒストグラムに対応する領域の個数を計算する。
そして、フォトアルバム作成アプリケーション80は、特徴量の差分が所定の閾値より大きいと判定されたヒストグラムに対応する領域の個数が閾値以上である場合、前後のフレーム間における特徴量の差が大きいと判定する。また、フォトアルバム作成アプリケーション80は、特徴量の差分が所定の閾値より大きいと判定されたヒストグラムに対応する領域の個数が閾値未満である場合、前後のフレーム間における特徴量の差が小さいと判定する。
前後のフレーム間における特徴量の差が大きいと判定した場合、それらのフレームは類似していないものと見做され、フォトアルバム作成アプリケーション80は、それらのフレームに関して、被写体の動きが多いフレーム(動き量が多いフレーム)と判定する。即ち、フォトアルバム作成アプリケーション80は、運動量が大きい撮影対象を撮影することで得られた動画データであると判定する。また、前後のフレーム間における特徴量の差が小さいと判定した場合、それらのフレームは類似しているものと見做され、フォトアルバム作成アプリケーション80は、それらのフレームは、被写体の動きが少ないフレーム(動き量が少ないフレーム)と判定する。即ち、フォトアルバム作成アプリケーション80は、運動量が小さい撮影対象を撮影することで得られた動画データであると判定する。
なお、動き量の判定に関しては、フレーム間の特徴量の差分を利用する以外に、動画フォーマットで利用される動きベクトルを用いることもできる。また、上例では、フレーム間の特徴量の差分として、RGB値の差分を算出する仕様としたが、例えば、輝度値に関する差分を算出する仕様としてもよい。このようにして、1つの動画データから抽出される複数のフレームが、時系列順に、動き量に従って、動き量が多いフレーム群と動き量が少ないフレーム群とにフレーム群として分類され、管理される。
フォトアルバム作成アプリケーション80は、次に、動画データから抽出され、時系列順に管理されたフレーム群から、所定の間隔毎にフレームを抽出して解析対象とする。なお、動き量が多いと判定されたフレーム群と動き量が少ないと判定されたフレーム群において、解析対象として抽出するフレームの間隔は異なる。例えば、動き量が多いと判定されたフレーム群からは5フレーム間隔で解析対象のフレームを抽出し、動き量が少ないと判定されたフレーム群からは3フレーム間隔で解析対象のフレームを抽出する。
フォトアルバム作成アプリケーション80は、所定の間隔で解析対象とするフレームを抽出すると、さらに、その抽出したフレームに対して解析処理を実行する。具体的には、フォトアルバム作成アプリケーション80は、オブジェクト検出、サイズ特定、笑顔判定、目瞑り判定、ブレボケ判定、明るさ判定等の処理を実行する。ここで、オブジェクト検出とは、解析対象とするフレームから、人物の顔や動物、料理等のオブジェクトを検出する処理である。また、サイズ特定とは、オブジェクト検出によって検出されたオブジェクトのサイズを特定する処理である。また、笑顔判定とは、オブジェクト検出によって検出されたオブジェクトが人物の顔である場合、検出された人物の顔が笑顔であるか否かを判定する処理である。また、目瞑り判定とは、オブジェクト検出によって検出されたオブジェクトが人物の顔である場合、検出された人物の顔が目を瞑っているか否かを判定する処理である。また、ブレボケ判定とは、解析したフレームのブレやボケの多寡を判定する処理である。また、明るさ判定とは、解析したフレームの明るさ(平均輝度値)の多寡を判定する処理である。
最後に、フォトアルバム作成アプリケーション80は、解析処理を実行すると、その解析処理の結果に応じて、解析したフレームに得点を付加する得点化処理を行う。具体的には、例えば、人物の顔や動物、料理等のオブジェクトを含むフレームの方が、これらのオブジェクトを含まないフレームより得点が高く付加されるように、得点化処理が行われる。また、例えば、大きいオブジェクトを含むフレームの方が、小さいオブジェクトを含むフレームより得点が高く付加されるように、得点化処理が実行されてもよい。なお、得点化の方法は、これに限定されない。したがって、例えば、動き量が多いフレームの方が、動き量が小さいフレームより得点が高く付加されるように、得点化処理が実行されてもよい。フォトアルバム作成アプリケーション80は、これらの解析処理により、動画データを構成する複数フレームから、より良いフレーム(画像)を特定することができる。そして、この動画データから特定されたフレーム(画像)を、本実施形態において用いることもできる。
また、上述の実施形態では、本発明をフォトアルバムに適用した場合で説明したが、本発明は必ずしもこれに限定されない。したがって、フォトアルバム以外に、例えば、フォトブック、カレンダー等のフォトコンテンツにおいても同様に適用することができる。
加えて、上述した実施形態は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPUやMPU等)がプログラムを読み出して実行する処理である。また、プログラムは、1つのコンピュータで実行させても、複数のコンピュータで連動させて実行させるようにしてもよい。また、上述の処理の全てをソフトウェアで実現する必要はなく、処理の一部または全部をASIC等のハードウェアで実現するようにしてもよい。また、CPUも1つのCPUで全ての処理を行うものに限らず、複数のCPUが適宜連携をしながら処理を行うものとしてもよい。