以下、添付図面を参照して本発明の実施形態について詳細に説明する。なお、以下の実施形態は、特許請求の範囲に係る本発明を限定するものでなく、また、実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
(実施形態1)
図1は、フォトアルバム作成/注文のための情報処理システムの構成の一例を示す図である。図1に示すように、情報処理システムは、ユーザが使用する情報処理装置100と、フォトアルバムを作成する会社の情報処理装置200とを有し、情報処理装置100と情報処理装置200は、インターネット300を介して接続されている。情報処理装置100は、例えば、パーソナルコンピュータが挙げられる。情報処理装置200は、例えば、サーバPCである。情報処理装置100、情報処理装置200は、例えばOperating System(以下、OSと略す場合がある)として、Windows(登録商標)8又はWindows(登録商標) Server 2012と同等のOSがインストールされている。情報処理装置100、情報処理装置2は、それぞれEthernet(登録商標)で構成されるネットワーク40及び80に接続されている。
情報処理装置100には、フォトアルバム作成のためのアプリケーション180(以下、アルバムアプリともいう)がインストールされている。アプリは、例えば、Windows(登録商標)用の実行可能形式のファイル(*.EXE)で構成される。また、情報所入り装置100には、Webブラウザアプリケーション190(以下、Webブラウザともいう)がインストールされている。Webブラウザ190は、WWW(WorldWideWeb)を利用する際に用いられるブラウザである。ネットワーク40は、情報処理装置100を使用するユーザのためのネットワークであり、例えば、一般家庭用のホームネットワークが挙げられる。
情報処理装置200は、Webサーバの機能を備えるWebサーバ250を含み、例えば、インターネット300を介してABC社のWebサイトを提供する。ショッピングサイト251は、ABC社がユーザ向けにサービスを提供しているショッピングサイトであり、ユーザはショッピングサイト251を利用してフォトアルバムを注文することができる。
図2は、情報処理装置100のハードウェア構成の一例を表す図である。なお、情報処理装置200も同様の構成を有するものとする。ただし、情報処理装置100と情報処理装置200は、同一の構成からなる必要はない。図2に示すように、情報処理装置は、CPU101、RAM102、ROM103、HDD104、表示部105、入力部106、通信制御部107を有し、それぞれがシステムバス108により接続されている。
CPU(中央演算装置/プロセッサ)101は、システム制御部であり、情報処理装置100全体を制御する。また、CPU101は、本実施形態で説明する表示制御方法をプログラムに従って実行する。
RAM102は、ランダムアクセスメモリであり、CPU101によるプログラムの実行時に、各種情報を一時的に記憶するためのメモリを提供している。ROM103は、CPU101により実行されるプログラムが記憶されている。
HDD(ハードディスク)104は、画像ファイルや画像解析などの処理結果を保持するデータベースなどを記憶するための記憶媒体である。HDD104は、アルバムアプリ180、Webブラウザ190等のアプリケーションや、図3で説明する各モジュール(ソフトウェア)を記憶し、必要に応じてRAM102に読み出されてCPU101により実行される。これにより、CPU101が、アプリケーション180、Webブラウザ190等のアプリケーションや、図3に示す各モジュール(ソフトウェア)の機能を実現する。
表示部105は、本実施形態のUI(ユーザーインターフェイス)や画像のレイアウト結果をユーザに表示する。表示部105は、タッチセンサー機能を備えてもよい。入力部106は、ユーザが各種操作をする際に用いられ、例えば、表示部105に表示されたUI上に所定の情報を入力するのに用いられる。
通信制御部107は、プリンタやサーバなどの外部装置と通信するための装置である。例えば、自動レイアウトをして生成したアルバムデータは、通信制御部107を介してサーバ200に送信される。
図3は、本発明に係るアルバム作成アプリケーションのソフトウェアブロック図である。アルバム作成アプリケーションは様々な機能を持つが、本実施形態では、特に自動レイアウト処理部216により提供される自動レイアウト機能に関して説明する。自動レイアウト機能は、撮影された写真をその内容や属性に基づいて分類し、あるいは選択して写真をレイアウトし、ディスプレイ105に表示するアルバム画像を生成するための機能である。
本実施形態では、HDD104に保存されたアルバム作成アプリケーションは、表示部105に表示されているアプリケーションのアイコンがユーザにより押下されることにより起動する。図2に示すように、アプリケーションは、アルバム作成条件指定部201と、自動レイアウト処理部216と、を含む。
アルバム作成条件指定部201は、マウス107によるUI操作に応じてアルバム作成条件を自動レイアウト処理部216に指定する。本実施形態では、アルバム作成条件として、主人公、見開き数、テンプレートの種類、画像補正をするか否かを指定する。なお見開きとは、たとえば表示においてはひとつの表示用ウィンドウに相当し、印刷においては、異なるシートに印刷された、互いに隣接する1対のページに相当する。
画像取得部202は、アルバム作成条件指定部201により指定された画像群をHDD104から取得する。ここでいう画像群とは、1つのアルバム作成の際にレイアウトする候補画像群を指す。例えば、アルバム作成条件指定部201において、XX年1月1日〜XX年12月31日が指定された場合は、XX年1月1日〜XX年12月31日に撮影された画像全てが指定された画像群に該当する。
HDD104に保存されている画像としては、静止画像や、動画から切り出された切り出し画像が挙げられる。静止画像や切り出し画像は、デジタルカメラやスマートデバイス等の撮像デバイスから取得したものである。撮像デバイスは、画像処理装置100が備えていてもよいし、外部装置が備えるものであってもよい。なお、撮像デバイスが外部装置である場合は、画像はデータ通信装置108を介して取得する。また、静止画像や切り出し画像は、データ通信装置108を介してネットワークやサーバから取得した画像であってもよい。ネットワークやサーバから取得した画像としては、ソーシャルネットワーキングサービス画像(以下、「SNS画像」という)が挙げられる。各画像に対して、画像に付随したデータを解析して保存元を判定する。SNS画像は、アプリケーションを介してSNSから画像を取得することで、アプリケーション内で取得先を管理してもよい。画像は、上述した画像に限定されるものではなく、他の種類の画像であってもよい。
画像変換部203は、画像データの画素数や色情報を変換する。本実施形態では、画像データを画素数が短辺420画素とし、色情報がsRGBの画像データに変換する。
画像解析部204は、画像データの解析処理をする。本実施形態では、画像変換部203で変換済みの画像データの解析処理をする。具体的には、画像データから特徴量を取得し、画像データにおける顔検出、検出した顔の表情認識、検出した顔の個人認識を実行する。さらに、HDD104から取得した画像に付随したデータ(例えば、Exif情報)から、撮影日時の取得を行う。
画像分類部205は、取得した画像群、すなわち、アルバム作成条件指定部201により指定された画像群をシーン分割する。シーン分割は、撮影日時情報、枚数情報、検出した顔情報を使って実施する。シーンとは、旅行、日常、結婚式等の撮影シーンのことである。シーンとは、例えば、一つの撮影対象について一時期の撮影機会に撮影された画像の集まりであるということもできる。
主人公情報入力部206は、アルバム作成条件指定部201から指定された主人公のID(識別情報)を画像得点部207に入力する。
画像得点部207は、各画像に対して得点付けをする。本実施形態では、レイアウトに適した画像が高得点になるように各画像に対して得点付けをする。レイアウトに提起した画像が高得点になるように得点付けする際は、本実施形態では、画像解析部204で得られた情報と、画像分類部205で得られた情報とを用いる。他の情報を付加的に或いは代替的に用いてもよい。また、本実施形態では、画像得点部207は、主人公情報入力部206から入力された主人公IDが含まれる画像の得点が高得点になるように、各画像に対して得点付けをする。
見開き入力部208は、アルバム作成条件指定部201から指定されたアルバムの見開き数を見開き割当部209に入力する。
見開き割当部209は、画像群を分割して各見開きに割り当てる。ここでいう見開きとは、例えば、アルバムを作成した際の見開き2ページである。見開き割当部209は、入力された見開き数に応じて画像群を分割して各見開きに画像群の一部を割り当てる。例えば、見開き数が5である場合、取得した画像群を5つに分割して小画像群を生成し、各見開きに1つの画像群を割当てる。
画像選択部210は、見開き割当部209で各見開きに割り当てられた画像群から画像得点部207で付けた得点に基づいて、画像を選択する。
テンプレート入力部211は、アルバム作成条件指定部201から指定されたテンプレート情報に応じた複数のテンプレートを画像レイアウト部212に入力する。
画像レイアウト部212は、画像のレイアウトを決定する。具体的には、テンプレート入力部211により入力された複数のテンプレートから画像選択部210で選択した画像に適したテンプレートを選択し、各画像のレイアウト(配置位置)を決定する。
レイアウト情報出力部215は、画像レイアウト部212が決定した画像レイアウトに従って、表示部105に表示するためのレイアウト情報を出力する。レイアウト情報は、例えば、選択したテンプレートに選択した画像をレイアウト(配置)したビットマップデータである。
画像補正部214は、覆い焼き補正、赤目補正、コントラスト補正をする。画像補正条件入力部213は、アルバム作成条件指定部201から指定された画像補正のON/OFF条件を画像補正部214に入力する。画像補正部214は、画像補正条件がONの場合は、画像に対して補正を実施する。画像補正条件がOFFの場合は、補正を実施しない。画像補正のオンまたはオフは、補正の種類ごとに指定されてもよいし、全ての種類についてまとめて指定されてもよい。画像変換部203から画像補正部214に入力する画像の画素数は、画像レイアウト部212で決定したレイアウト画像のサイズに合わせて変えることができる。本実施形態では、レイアウト画像を生成した後に、各画像に画像補正を行うものとしたが、これに限定されず、見開きにページにレイアウト(配置)する前に、各画像の補正を行うようにしてもよい。レイアウト情報出力部215から出力される画像データは、例えば図3に示すような形式でディスプレイ105に表示される。
本実施形態に係るアルバム作成アプリケーションを情報処理装置100にインストールすると、情報処理装置100上で動作するOS(オペレーティングシステム)のトップ画面(デスクトップ)上に起動アイコンが表示される。ユーザが表示部105に表示されているトップ画面の起動アイコンを押下すると、HDD104に保存されているアルバム作成アプリケーションのプログラムがRAM103にロードされる。RAM103のプログラムがCPU101によって実行されて、アルバム作成アプリケーションが起動する。
図4は、フォトアルバムアプリケーションでフォトアルバムを編集するための編集画面の一例である。編集画面401は、フォトアルバムアプリケーションが提供する。表示領域402は、フォトアルバムの各ページのサムネイルを表示する領域であり、表示領域403は、表示領域402で選択されたページのプレビュー画像を表示する領域であり、レイアウト画像の編集をする領域である。
表示領域402において、ユーザが各ページのサムネイルの中から所望のサムネイルを選択することで、そのページが選択状態の表示404になる。図4では、3〜4ページが選択状態であり、このページのレイアウト画像が表示領域403に表示される。表示領域403では、フォトアルバムの編集操作が可能となる。レイアウト画像において表示されるテンプレートは、1以上のスロットを有する。図3では、3ページ目(図中左ページ)に3つのスロット(405、406、407)を有し、4ページ目(図中右ページ)に1つのスロット408を有する。スロットは、写真スロットであり、各スロットには写真が割り当てられる。なお、本実施形態では、各スロット405には、自動で写真が割当てられている。
ボタン409は、アプリケーションにより作成した(編集した)フォトアルバムをカートに入れるためのボタンである。このボタン409を押すことにより、編集したフォトアルバムがインターネット300経由でPC200のショッピングカート251にアップロードされる。
上述した各スロットには、画像枠に応じた適切な画像が自動でレイアウトされる。本実施形態では、画像入替の対象画像として、対象スロットの近傍の画像、または、スロットの特性に適合した画像を候補画像として表示する。
図9は、本実施形態に係るアルバム作成アプリケーションの自動レイアウト処理部216が実行する処理フロー図である。図9に示すフローチャートは、例えば、CPU101がHDD104に格納されたプログラムをRAM103に読み出して実行することにより実現される。図4を使って、自動レイアウトの処理フローを以下説明する。以下に示す通り、本実施形態では、アルバムを作成する際に、アルバムを作成するための画像群を撮影時間に応じて分割し、分割した各サブ画像群からページに配置する画像を選択する。
Step01では、画像変換部203で解析画像を生成する。アルバム作成条件指定部201で指定され、HDD104から取得した画像群の各画像を所望の画素数と色情報に変換する。なお、ここで変換する画素数及び色情報は、予め決められており、保存されている。本実施形態では、入力された画像データを短辺420画素とsRGBの色情報の解析画像データに変換する。
Step02では、画像解析部204で画像データの画像特徴量を取得する。HDD104から取得した画像群に含まれる各画像データに付随する情報から撮影日時を取得する。本実施形態では、各画像データに付随するExif情報から撮影日時を取得する。また、Step01で生成された解析画像データから特徴量を取得する。特徴量としては、例えば、ピントが挙げられる。エッジの検出方法として、公知のソーベルフィルタを用いることができる。ソーベルフィルタで画像のエッジを検出し、エッジの始点と終点の輝度差を、始点と終点の距離で割ることによりエッジの傾きを算出する。画像中のエッジの平均傾きを算出して、平均傾きが大きい画像は、平均傾きが小さい画像よりもピントが合っていると判定することができる。本実施形態では、複数の傾き閾値を設定し、いずれの傾き閾値以上かを判別することでピント量が許容できるか判定する。本実施形態では、異なる2つの傾き閾値を設定し、○△×の3段階でピント量を判別する。画像中のエッジの平均傾きが第1の閾値以上であれば、ピントの傾きを○(好適)、第1の閾値よりも低い第2の閾値以上であれば、ピントの傾きを△(許容できる)、第2の閾値未満であればピントの傾きを×(許容できない)とする。
Step03では、画像解析部204で各画像データにおいて顔検出をする。Step01で生成された画像データから顔を検出する。顔の検出は、公知の方法を用いることができる。公知の方法としては、例えば、複数用意した弱識別器から強識別器を作成するAdaboostが挙げられる。本実施形態では、Adaboostにより作成した強識別器により人物(オブジェクト)の顔を検出する。Step03では、顔画像を検出(抽出)すると共に、画像における検出した顔画像の位置の左上座標値と右下座標値を取得する。なお、ここでいう「画像」とはStep01で生成された画像データにより表される画像である。この2種の座標を特定することにより、人物の顔の位置と顔のサイズを特定することができる。なお、ここでは、人物の顔を検出するものとしたが、人物の顔に限らず、犬や猫等の動物、花、食べ物、建物、置物等のオブジェクトを顔の代わりの検出対象としてAdaboostによって強識別器を作成することができる。すなわち、顔以外のオブジェクトを検出するようにしてもよい。
Step04では、画像解析部204で個人認識をする。まず、Step03で抽出した顔画像と、顔辞書データベースに個人ID毎に保存されている代表顔画像との類似性を比較する。そして、類似性が閾値以上であり且つ最も類似性が高い個人IDを、抽出した顔画像のIDに決定する。すなわち、類似性が閾値以上であり且つ最も類似性が高い個人IDに対応する人物が、抽出した顔画像の人物として特定する。なお、類似性が閾値未満の場合は、抽出した顔画像に新規の人物として新規の個人IDを割り振って、顔辞書データベースに登録する。
Step02からStep04で取得した各画像データの画像解析情報は、図10に示すように、画像を識別するID毎に区別してHDD104に記憶する。Step02で取得した撮影日時情報及びピント判別結果、Step03で検出した顔の数と位置情報を各画像データの画像解析情報として保存する。なお、1つの画像データに基づく画像には、複数の顔画像が含まれる場合があるが、顔の位置情報は、Step04で取得した個人ID毎に区別して記憶する。なお、画像データにおいて顔が検出されない場合は、Step02で取得した撮影日時情報及びピント判別結果が保存される。
Step05では、アルバム作成条件指定部201で指定されたHDD104の画像群の全画像に対してStep01からStep04が終了したか否かを判定する。終了していない場合(Step05でNo)、Step01に戻る。終了している場合(Step05でYes)はStep06に移行する。
Step06では、画像分類部205でシーン分割をする。シーン分割とは、取得した画像群をシーンに応じて複数のサブ画像群に分割することを指す。具体的には、Step02で取得済みの撮影日時情報に基づいて、画像と画像との時間差を頼りに画像群を複数に分割する。画像と画像の撮影日が連続していない場合、すなわち、画像間に撮影していない日が存在する場合は、分割する。次に、撮影日が連続する場合について説明する。本実施形態では、画像と画像の撮影時間の差が16時間以上空いている場合は分割する。画像と画像の撮影時間の差が16時間未満の場合は、連続する各日の最初の撮影から最後の撮影までの時間差が4時間未満なら分割する。本実施形態では、4時間以上の場合は、連続する各日の撮影枚数が50枚未満なら分割し、50枚以上であれば分割しないものとする。なお、分割の際の時間差の閾値や枚数の閾値は、これに限定されるものではない。図11(A)は、上述したシーン分割方法で分割した結果を示している。
Step07では、画像分類部205でシーン分類をする。本実施形態では、各サブ画像群(各シーン)を旅行、日常、セレモニーの3つに分類する場合を例に挙げて説明するが、分類はこれに限定されるものではない。まず、旅行、日常、セレモニーのうちいずれに分類されるかを予め判定したサブ画像群を複数取得する。各画像群について、撮影の特徴量を取得する。本実施形態で取得する特徴量は、例えば、撮影期間、撮影枚数、撮影人数である。撮影期間は、画像群の最初の撮影から最後の撮影までの時間差である。撮影枚数は、サブ画像群に含まれる画像の数(写真の枚数)である。撮影人数は、顔が写っている画像における顔の数である。すなわち、1つの画像に含まれる顔の数である。そして、複数のサブ画像群に対して、撮影期間の平均値と標準偏差、撮影枚数の平均値と標準偏差、1画像あたりの人数の平均値と標準偏差を求める。なお、本実施形態では、1画像あたりの顔の数が、1画像あたりの人数とする。図12は、撮影期間(時間)、撮影枚数(枚)、撮影人数(人)各平均値と標準偏差の一例を示す。これらの求めた値は、アルバム作成アプリケーションのプログラムに予め組み込んでおく。アルバム作成アプリケーションが起動された後、ユーザがパスボックス302で指定した画像群に対して、Step06で分割されたサブ画像群毎に、撮影期間、撮影枚数、及び撮影人数のそれぞれの平均値を算出する。そして、シーン毎に、前記各サブ画像群の撮影期間、撮影枚数、撮影人数の特徴量についてそれぞれの平均値と標準偏差に基づいて、以下の式により得点化する。
得点=50−|10×(平均値−特徴量)/標準偏差| (式1)
平均得点=(撮影期間の得点+撮影枚数の得点+人数の得点)/特徴量項目数 (式2)
以上により、旅行、日常、セレモニー毎の平均得点が算出される。サブ画像群毎に最高点のシーンをそのサブ画像群のシーンとして分類する。2以上のシーンが同点の場合は、優先シーンに応じてシーンを分類する。例えば、本実施形態では、日常>セレモニー>旅行の順に優先することが予め決められており、日常の優先度を最も高くする。なお、優先度の順番はこれに限定されるものではなく、また、ユーザが優先度の順番を設定できるようにしてもよい。
図11(A)のシーン分割された後のサブ画像群(5)は、撮影期間が36時間、撮影枚数が300枚、撮影人数が1.7人であった。旅行の平均得点は45.32、日常の平均得点は18.38、セレモニーの平均得点は−29.92となり、サブ画像群のシーンは旅行に分類される。サブ画像群は、シーン識別ができるようにシーンIDを関連付けて管理する。
Step08では、Step06で分割された全サブ群に対してStep07のシーン分類が終了したか否かを判定する。終了していない場合(Step08でNo)、Step07に戻る。終了している場合(Step08でYes)、Step09に移行する。
Step09では、画像得点化部207で主人公設定をする。主人公設定はユーザーが指定した画像群に対して実施され、自動と手動の2種類がある。自動で主人公を設定する場合、Step04の個人認識の結果と、Step06のシーン分割の結果に基づいて設定をする。Step04で取得した結果から、サブ画像群に登場する各個人IDの回数、各シーンに登場する各個人IDの回数、各個人IDが登場するシーンの回数等を特定し、これらの情報から自動で主人公を設定する。本実施形態では、サブ画像群に複数シーンがある場合は複数のシーンに登場する個人IDを主人公IDと設定し、サブ画像群が単一シーンである場合は、単一シーンの登場回数が多い個人IDを主人公IDと設定する。主人公設定部304でユーザが特定のアイコンを指定している場合は、主人公情報入力部206を介して選択されたアイコンに対応する個人IDが画像得点部207に伝えられる。ユーザ指定の個人IDがある場合は、上述した自動設定の主人公IDは無視して、ユーザ指定の個人IDを主人公IDと設定する。このように、主人公設定部304の指定に基づく設定を手動設定とする。
Step10では、画像得点化部207で得点化をする。得点化とは、後述する画像選択時に参照する値であり、画像データ毎に後述する観点で評価した得点を付ける。ここで、図13及び図15を用いて、得点化方法について説明する。
図15は、3枚の画像をレイアウトする際に用いるテンプレート群を示している。図15の(1−1)に示すテンプレート1001は、1つのテンプレートであり、メインスロット1002と、サブスロット1003と、サブスロット1004を有する。メインスロット1002とは、テンプレート1001でメインとなるスロット(画像をレイアウトする枠)であり、サブスロット1003やサブスロット1004よりもサイズが大きい。すなわち、メインスロットとは、各テンプレートにおいて、最もサイズが大きいスロットである。また、サブスロットとは、各テンプレートにおいて、メインスロット以外のスロットである。メインスロット用の得点とサブスロット用の得点の両方を各画像データに付ける。
次に、図13(A)に画像データの得点化の基準を示す。より具体的には、図13(A)は、旅行、日常、セレモニーの各シーン毎に得点が高くなる画像の特徴をまとめた表である。なお、図13(A)に示すように、スロットの種類に応じて、得点が高くなる特徴が異なる。例えば、サブ画像群のシーン分類が旅行である場合、人物と風景が入ったひいた画像は、メインスロットとしての得点が高くなり、顔のアップや横顔の画像は、サブスロットとしての得点が高くなる。例えば、サブ画像群のシーン分類が日常である場合、顔のアップや横顔の画像は、メインスロットとしての得点が高くなり、人物と風景が入ったひいた画像は、サブスロットとしての得点が高くなる。例えば、サブ画像群のシーン分類がセレモニーである場合、2人の距離が近い画像は、メインスロットとしての得点が高くなり、大人数の画像は、サブスロットとしての得点が高くなる。このように、シーン及びスロットの種類に応じて、得点が高くなる特徴、言い換えれば、評価基準が異なる。本実施形態では、シーン及びスロットの種類に応じた得点が高くなる特徴は、アプリケーションにおいて予め設定しておき、プログラムに含むものとする。なお、得点が高くなる特徴は、上述したものに限定されるものではない。図13(A)に示す各シーンのメインスロットとサブスロットのそれぞれの特徴に基づいて、各サブ画像群に含まれる各画像データに得点を付ける。各画像における顔の数、各画像における顔の位置、各画像における顔のサイズを取得し、平均値と標準偏差を各シーン各スロット種類(メインスロットとサブスロット)に対して求めて、アルバム作成アプリケーションのプログラムに記憶しておく。ユーザーが指定した画像群の各画像データが表す画像がいずれのシーンに属するか(分類されるか)は、Step07のシーン分類の結果から特定する。そして、注目画像のシーンに対応する予め求めた前記平均値と標準偏差、注目画像における主人公IDの顔の数、顔の位置、顔サイズの各特徴量に基づいて以下の式を使って得点と平均得点を出す。
得点=50−|10×(平均値−特徴量)/標準偏差|
平均得点=(顔数の得点+顔位置の得点+顔サイズの得点)/特徴量項目数
なお、得点化は、メインスロット用とサブスロット用の両方を実施する。またアルバムに使う画像は、図10に示すピントの特徴量が○である画像IDの画像に対しては得点を加算してもよい。これにより、ピントが合っている画像の得点を高くすることができる。図13(B)は、各画像の得点結果の一例を示しており、各画像IDに対して、メインスロットとサブスロットの得点が付けられている。
Step11では、画像得点部207がユーザ指定の画像群の全画像に対してStep10の画像得点化が終了したか否かを判定する。終了していない場合(Step11でNo)、Step10に戻る。終了している場合(Step11でYes)、Step12に移行する。
Step12では、見開き割当部209が、画像分類部205のシーン分割により得られたシーン数(サブ画像群の数)が見開き数入力部208により入力される見開き数と同じか否かを判定する。同じでない場合(Step12でNo)、Step13に移行する。同じ場合(Step12でYes)、Step16に移行する。例えば、図13(A)のシーン分割数が8であり、見開き数入力部208の入力数が8であればStep16に移行する。
Step13では、見開き割当部209が画像分類部205のシーン分割により得られたシーン数が見開き数入力部208により入力される見開き数より少ないか否かを判定する。シーン数が見開き数より少なくない場合(Step13でNo)、Step15に移行する。シーン数が見開き数より少ない場合(Step13でYes)はStep14に移行する。例えば、図11(A)のシーン分割数が8であり、見開き数入力部208の入力数が10であれば、シーン数が見開き数より少なくないため、Step14に移行する。
Step14では、見開き割当部209がサブシーン分割をする。サブシーン分割とは、シーン分割数<見開き数の場合に分割されたシーンを更に細分割することを指す。図11(A)のシーン分割数8に対して指定見開き数が10である場合を例に挙げて説明する。図11(B)では、図11(A)をサブシーン分割した結果である。破線矢印の箇所でサブ画像群をさらに分割したことで、分割数を10にしている。サブシーン分割する基準は、画像枚数および撮影日時である。図11(A)の分割の中で画像枚数が多いサブ画像群を特定する。ここでは、シーン数を8から10に2つ増やしたいため、画像枚数が多い2つのサブ画像群を特定する。多い方からサブ画像群(5)、次にサブ画像群(1)とサブ画像群(2)である。本実施形態では、サブ画像群に含まれる枚数が同じである場合は、サブ画像群に含まれる最初の画像と最後の画像の時間差が大きい方のサブ画像群を分割する。サブ画像群(1)とサブ画像群(2)は、含まれる画像の同じ枚数だが、サブ画像群(2)の方が最初の画像から最後の画像の時間差が大きいため、サブ画像群(2)を分割対象とする。すなわち、図11(B)では、サブ画像群(5)とサブ画像群(2)をそれぞれさらに分割する。まず、サブ画像群(2)の分割方法について説明する。サブ画像群(2)には、画像枚数の山が2つあり、この2つは撮影日が違う。この場合は、撮影日が変わる箇所(図11(B)の破線矢印の箇所)で分割する。次に、サブ画像群(5)の分割を説明する。サブ画像群(5)には画像枚数の山が3つあり、この3つは撮影日が違う。この場合も、撮影日が変わる箇所で分割する。このとき、撮影日が変わる箇所が2箇所あるが、分割後の各画像群の枚数差が小さくなるように分割する。図11(B)では、サブ画像群(5)では、2日目と3日目の境目で分割した方が、1日目と2日目の境目で分割するよりも分割後の各画像群の枚数差が小さくなるので、2日目と3日目の境目で分割する。すなわち、図11(B)の破線矢印の箇所で分割する。以上により分割数を8から10にする。ここでは撮影日の違う箇所で分割したが、画像枚数が多いサブ画像群が単一日で撮影されたものである場合は、単一日の中で時間差が最大の箇所で分割する。
Step15では、見開き割当部209がシーン統合をする。シーン統合とは、シーン数が見開き数よりも多い場合、分割されたシーン(サブ画像群)を統合する。具体的には、シーン数と見開き数が一致するように、シーン統合をする。図11(C)は、見開き数が6の場合、図11(A)をシーン統合してシーン数を6とした結果である。破線の箇所を統合、言い換えれば、破線の箇所での分割をしないことで、シーン数(サブ画像群の数)を6にする。シーン統合では、画像枚数が少ないサブ画像群を特定する。ここでは、分割数を8から6に2つ減らしたいため、画像の枚数が少ないサブ画像群を特定する。画像枚数が少ないサブ画像群は、少ない方からサブ画像群(8)、サブ画像群(3)、サブ画像群(7)である。したがって、まず、サブ画像群(8)を統合対象とする。次に、サブ画像群(3)とサブ画像群(7)は、画像の枚数は同じである。ただし、サブ画像群(7)に隣接するサブ画像群(8)が統合対象であるため、サブ画像群(3)を統合対象とする。次に、統合対象のサブ画像群を、撮影日時が前のサブ画像群に統合するか、撮影日時が後のサブ画像群に統合するかを決定する。まず、サブ画像群(3)の統合を説明する。サブ画像群(3)の前後のサブ画像群(2)とサブ画像群(4)との時間差を比較すると、サブ画像群(3)の最後の画像とサブ画像群(4)の最初の画像との撮影時間の差の方がサブ画像群(3)の最初の画像とサブ画像群(2)の最後の画像との撮影時間の差よりも小さい。したがって、サブ画像群(3)は、サブ画像群(4)に統合すると決定する。すなわち、図11(C)の破線の箇所を統合する。次に、サブ画像群(8)の統合を説明する。サブ画像群(8)は、後のサブ画像群がない為、前のサブ画像群(7)と統合する。すなわち、図11(C)の破線箇所で統合する。なお、本実施形態では、撮影時間の差が小さいサブ画像群同士を統合することにしたが、これに限定されるものではない。例えば、統合対象のサブ画像群を撮影枚数が少ないサブ画像群に統合するようにしてもよい。
Step16では、見開き割当部209が見開き割当をする。Step12〜Step15によって、サブ画像群の数と指定見開き数は同じになっている。本実施形態では、撮影日時が先頭のサブ画像群から見開きの先頭に割り当てる。すなわち、撮影日時順にサブ画像群をアルバムの各見開きのページに割当てる。これにより、撮影日時順にサブ画像群が並んだアルバムを作成することができる。なお、後述する通り、1つの見開きページ内では、画像は撮影日時に並んでいなくてもよい。
Step17では、画像選択部210が各サブ画像群から所定枚数の画像を選択する。図14を用いて、ある見開きに割り当てられたサブ画像群から画像を4枚選択する場合を例に挙げて説明する。なお、ここでは、見開きとは、2ページを指し、最初の見開き及び最後の見開きは、1ページとする。図14(A)は、見開きに割り当てられたサブ画像群に含まれる最初の画像から最後の画像のまでの撮影日時の時間差、言い換えれば、サブ画像群の撮影期間を示す。図14(B)を使って、4枚選択する際の1枚目を選択する方法を説明する。テンプレートには、1つのメインスロット1002がある。1枚目は、メインスロット用の画像を選択する。図14(B)に示すサブ画像群の撮影期間に撮影された全ての画像のうちStep10で付けたメインスロット用の得点が最高点の画像を選択する。そして、2枚目以降はサブスロット用の画像を選択する。本実施形態では、サブ画像群の撮影期間を細分化して画像を選択することにより、サブ画像群の撮影期間の一部に集中しないようにする。まず、図14(C)のようにサブ画像群の撮影期間を2分割して、2つの撮影期間とする。すなわち、サブ分割撮影期間を2等分して2つの撮影期間にする(グループ分けする)。次に、図14(D)のように1枚目が選ばれていない撮影期間(実線の区間)からサブスロット用の得点が最高点の画像を2枚目として選択する。次に、図14(E)のように、図14(D)の各撮影期間をそれぞれ2等分する。図14(F)の実線区間、すなわち、1枚目と2枚目が選ばれていない2つの撮影期間に撮影された画像(2つの撮影期間に対応する画像)のうちサブスロット用の得点が最高点の画像を3枚目として選択する。次に、画像を選択する撮影期間に画像が存在せず、画像選択できない例を4枚目の選択を例に挙げて説明する。本実施形態では、画像の枚数に関わらず、時間に応じて撮影期間を分割している。したがって、分割して得られた撮影期間に画像が存在しない場合がある。例えば、図14(G)のように、まだ画像が選ばれていない撮影期間(斜線の区間)から4枚目を選択したいが、この斜線区間には画像が存在しないとする。この場合は、図14(H)のように、画像を選択済みの各撮影期間をそれぞれ2分割する。次に、図14(I)のように、1〜3枚目が選ばれていない実線の撮影期間に撮影された画像のうちサブスロット用の最高点の画像を4枚目として選択する。
Step18では、画像レイアウト部212が処理対象の見開きの画像レイアウトを決定する。テンプレート入力部211は、指定のテンプレート情報に従ってある見開きに対して図15の(1−1)〜(4−4)を入力した場合を例に挙げて説明する。入力されたテンプレートのスロット数は3である。選択されている画像3枚の画像の向きが縦方向か横方向かを撮影日時の順に並べると図15(A)であったとする。ここでは、画像1605がメインスロット用として選択された画像であり、画像1606と画像1607がサブスロット用として選択された画像とする。本実施形態では、テンプレートの左上に撮影日時のより古い画像、右下に撮影日時のより新しい画像をレイアウトするものとする。画像1605は、撮影日時が一番新しく且つメインスロット用の画像であるため、図15(3−1)〜(3−4)のテンプレートが候補となる。そして、サブスロット用の古い方の画像1606、すなわち、左上に配置したい画像が縦画像で、新しい方の画像1607が横画像である。したがって、(3−2)が、選択された画像に最も適したテンプレートとしてレイアウトが決まる。このようにStep18では、レイアウトに用いるテンプレートと、テンプレートのいずれのスロットにいずれの画像をレイアウトするかを識別できる情報が決定する。図15では、スロット数が3の場合を例に挙げて説明を行ったが、STEP17で、必要枚数が4枚となった場合には、スロット数4のテンプレートセットを用意して、それらに対して同様に、スロット状態と画像の状態の合致具合を判定する。これにより、どのテンプレートに画像をレイアウトするかを決めればよい。
Step19では、画像補正部214が画像補正をする。画像補正の条件入力部がONを入力した場合は、画像補正を実施する。本実施形態では、画像補正として、覆い焼き補正、赤目補正、コントラスト補正を自動で実施する。画像補正の条件入力部がOFFを入力した場合は、画像補正を実施しない。補正する画像の画素数は短辺1200画素で、sRGBの色空間に変換した画像に対して画像補正ON/OFFを実施する。
Step20では、レイアウト情報出力部215がレイアウト情報を作成する。Step18で決まった通りに各画像をレイアウトする。このとき、テンプレートが有する各スロットのサイズ情報に合わせてレイアウトする画像を変倍してレイアウトする。そして、テンプレートに画像をレイアウトしたビットマップデータを生成する。
Step21はStep17〜Step20が全ての見開きに対して終了したか否かを判定する。終了していない場合(Step21でNo)はStep17に戻る。終了している場合(Step21でYes)は自動レイアウト処理を終了する。図5は、表示処理のフローチャートを示した図である。なお、図5に示す表示処理は、HDD104に保存されているアルバム作成アプリケーションのプログラムがRAM103にロードされ、CPU101によって実行されることにより実現される。
まず、ユーザが画像を入れ替えたい画像スロット(以降、入替対象スロットと呼ぶ)を選択すると、CPU101が画像スロットの選択を受け付ける(S101)。そして、選択された画像スロットに現在割当てられている画像を起点の画像(以下、候補起点画像とする)に設定する(S102)。候補起点画像は、入れ替える画像を探す際の起点となる画像である。
次に、候補起点画像の近傍から候補画像をリストアップし(S103)、表示部105の編集画面に、リストアップした画像を画像入れ替えの候補画像として表示する(S104)。本実施形態では、候補画像は、候補起点画像の近傍からリストアップされたものであり且つ他のスロットに配置されていないものとする。候補起点画像の近傍から候補画像をリストアップする方法について、詳細は後述する。S104で表示する編集画面(ユーザインターフェース)には、入替対象スロットよりも前に位置するスロットに割り当てられた撮影された候補画像を表示するボタン(以降、前候補ボタンと呼ぶ)が設けられている。また、入替対象スロットに現在割当てられている画像よりも後に位置するスロットに割り当てられた候補画像を表示するボタン(以降、後候補ボタンと呼ぶ)が設けられている。すなわち、前候補ボタンと後候補ボタンは、いずれも候補画像を切り替えるための切替ボタンである。
S105において、前候補ボタンが押されたか判定する。前候補ボタンが押された場合は(S105でYes)、入替対象スロットの前に位置するスロットに割り当てられた画像を候補起点画像とする(S106)。すなわち、候補起点画像を変更する。そして、S103に戻って再び候補画像をリストアップして、候補画像の表示を行う(S104)。ここでは、テンプレートにおいて、左のスロットは右のスロットよりも前のスロットであり、上のスロットは下のスロットよりも前のスロットとする。すなわち、テンプレートにおいて、左上のスロットが最も前に位置するスロットとなる。例えば、スロット408のスロットの前に位置するスロットは、スロット407であり、スロット407の前に位置するスロットは、スロット406であり、スロット406の前に位置するスロットは、スロット405である。また、入替対象スロットを有するテンプレートにおいて前に位置するスロットが無い場合は、1つ前のページのスロットが、前に位置するスロットに該当する。すなわち、スロット405の前に位置するスロットとは、2ページ目のスロットとなる。
次に、S107において、後候補ボタン押されたか判定する。後候補ボタン押された場合は(S105でYES)、入替対象スロットの後に位置するスロットに割り当てられた画像を候補起点画像とする(S108)。すなわち、候補起点画像を変更する。そして、S103に戻って再び候補画像をリストアップして、候補画像の表示を行う(S104)。ここでは、テンプレートにおいて、右のスロットは左のスロットよりも後のスロットであり、下のスロットは上のスロットよりも後のスロットとする。すなわち、テンプレートにおいて、右下のスロットが最も後に位置するスロットとなる。例えば、スロット405のスロットの後に位置するスロットは、スロット406であり、スロット406の後に位置するスロットは、スロット407であり、スロット407の後に位置するスロットは、スロット408である。また、入替対象スロットを有するテンプレートにおいて後に位置するスロットが無い場合は、1つ後のページのスロットが、後に位置するスロットに該当する。すなわち、スロット408の後に位置するスロットとは、5ページ目のスロットとなる。
最後に、S109において、ユーザが候補画像を選択したかを判定する(S109)。ユーザが候補画像を選択し、CPU101が候補画像の選択を受け付けた場合(S109でYes)、選択された候補画像を入替対象スロットの画像に割り当てる(S110)。すなわち、入替対象スロットに現在割当てられている画像と、選択された候補画像とを入れ替える。
図6は、候補起点画像に基づき候補画像をリストアップする際のフローチャートである。すなわち、S103の詳細フローである。まず、候補起点画像と時系列が近い画像を選別する(S201)。ここで、スロットAの隣にスロットBが配置されている場合、スロットAに配置された写真と時系列が近い候補画像のリストと、スロットBに配置された写真と時系列が近い候補画像のリストが重ならないように選別を行う。すなわち、スロットAと候補画像とスロットBの候補画像で同じ画像が出ないように制御する。これにより、スロットAの候補画像表示中に次候補ボタンを押してスロットBの候補画像を表示した際に、同じ候補画像が表示されるのを防ぐことができる。
次に、S201で選別された画像の中から入替対象スロットの特性を有する又はその特性に近い画像を選別する(S202)。すなわち、入替対象スロットの特性に近い画像をフィルタリングする。ここで、入替対象スロットの特性とは、例えば、入替対象スロットのサイズや形状、入替対象スロットに設定されている割当てる画像の特性を指す。入替対象スロットに設定されている画像の特性としては、例えば、カラーモードが挙げられる。グレースケールの画像を割り当てることを推奨する画像スロットの場合、画像候補としてグレースケールの画像を選別するようにする。また、入替対象スロットが人物を含む画像を割当てることが推奨されている場合、人物の写った画像を選別したりする。また、入替対象のスロットの形状としては、例えば、縦長か横長かといったアスペクト比の特性が挙げられる。例えば、入替対象スロットが縦長のスロットの場合、縦長の画像を選別するようにし、入替対象のスロットが横長のスロットの場合、横長の画像を選別するようにする。また、入替対象スロットが大きいサイズの場合、大きいサイズの画像を選別する。なお、このスロットの特性によって選別する方法は、上述したものに限定されるものではない。上述した選別は、スコアの得点軸を入替対象スロットに割当てられた得点軸とすることにより実現することができる。これにより、入替対象スロットにより適合した画像を選択することができる。 ここで、図16を用いて、本実施形態に係る入れ替え候補画像の決定方法について詳細に説明する。図16の(A)は、図14における(I)と同じで状態であり、ページ内にレイアウトしている画像(1)〜(4)と、各画像の画像群の中の撮影時間との関係を示したものである。なお、図中において、右にいくほど撮影時間が古く、左にいくほど撮影時間が新しいものとする。ここで、図中の画像(3)、すなわち、3枚目の画像が、図5のS101におけるユーザが選択した入れ替え対象画像である場合について説明する。このとき、画像(3)が図5のS102の起点画像となる。図中の撮影期間(a)は、図5のS103のおける「起点候補画像の近傍」の範囲を示している。撮影期間(a)の中には、スロットに配置されている画像(3)以外にも複数の画像が存在するものとする。撮影期間(a)に存在する画像(5)、画像(6)は、画像(3)に次いで、得点の高い画像である。この場合、これらを入れ替え候補画像として、図5のS104では表示する。このように、S104では、得点の高い画像を選定して表示する。
本実施形態では、候補画像を、対象スロットと同一の撮影期間から選定して表示することにより、ページ内の時系列を崩すことなくユーザは簡単に画像を入れ替えることができる。
さらに、単に入れ替え候補画像の時間的に近い画像を選ぶのではなく、同一撮影期間に対応する画像群の中からスコアを高いものを選定して表示する。これにより、ページ内の時系列を崩すことなく、単に時間的に近い画像を選定して表示する場合よりも質の高いレイアウト画像を容易に生成することができる。また、図16(A)では、同一撮影期間に対応する画像群の中から他の基準に基づいて、画像を選択して提示するようにしてもよい。例えば、スロットに配置されている画像(3)と構図の異なる画像を選定して表示するようにしてもよいし、人物が写っている写真を選定して表示するようにしてもよい。これにより、ページ内の時系列を崩すことなく、簡単にページの趣を変えることができる。
なお、図16(A)では、候補画像を2つ表示する場合を例に挙げて示したが、これに限定されものではない。
次に、図16(B)を用いて、図5の入れ替え候補画像の次の候補の決定方法について説明する。具体的には、前候補ボタンが押下された場合(S105〜S106)、後候補ボタンを押された場合(S107〜108)の説明である。まず、前候補ボタンが押された場合について説明をする。前候補ボタンが押される前は、撮影期間(a)の中から図16(A)で説明した通り、画像(5)、(6)の2枚が候補画像としてUI上に表示がされている。前候補ボタンが押された場合(S105でYes)、表示中の候補画像に対応する撮影期間(a)から、時間的に前となる撮影期間(b)の画像(2)に候補起点画像を移動する(S106)。そして、画像(2)の近傍である撮影期間(b)から候補画像(7)、(8)をリストアップする(S103)。このとき、撮影期間(a)よりも時間的に前の撮影期間(b)から候補画像を選定して表示しているので、ユーザは簡単にページ内の時系列を大きく崩すことなく画像を入れ替えることができる。撮影期間(b)の画像群の中から、候補画像(7)、候補画像(8)をリストアップする方法は、図16(A)と同様に、スコアの高い画像を選んでもよいし、それ以外の方法で選んでもよい。一方、後候補ボタンが押された場合(S107でYes)、表示中の候補画像に対応する撮影期間(a)から、時間的に後となる撮影期間(c)の画像(1)に候補起点画像を移動する(S108)。そして、画像(1)の近傍である撮影期間(c)から候補画像(9)、(10)をリストアップする(S103)。このとき、撮影期間(a)よりも時間的に前の撮影期間(b)から候補画像を選定して表示しているので、ユーザは簡単にページ内の時系列を大きく崩すことなく画像を入れ替えることができる。撮影期間(c)の画像群の中から候補画像を選択する方法は、撮影期間(b)の画像群の中から候補画像を選択する方法と同様である。
なお、ここでは候補撮像画像として2枚の撮像画像を選択する例を示したが、候補撮像画像として選択する撮像画像の枚数は2に限らず、任意の数でも構わない。ここで、図7(d)に示すように4つの候補撮像画像を表示する場合について説明する。本実施形態では、上の2つの候補撮像画像を第1の評価方法でスコアの高いものとし、下の2つの候補撮像画像を第2の評価方法でスコアの高いものとする。これにより、本実施形態では、異なる趣でスコアの高い画像を候補画像として表示することができる。
上述したように、本実施形態では、図16に示すように、候補画像は、候補起点画像の近傍からリストアップされたものであり且つ他のスロットに配置されていないものとする。図7は、ユーザが画像を入れ替えるときに候補画像を表示するユーザインターフェースの例である。図7(a)は、フォトアルバムの1〜2ページのレイアウト画像(プレビュー画像)である。図7(b)は、フォトアルバムの3〜4ページのレイアウト画像(プレビュー画像)である。図7(c)はフォトアルバムの5〜6ページのレイアウト画像(プレビュー画像)である。図7(a)の写真スロット500、501、502には、写真が配置されている。図7(b)の写真スロット503、504、505には、写真が配置されている。図7(c)の写真スロット506、507には、写真が配置されている。図7(b)では、写真スロット503の写真上に写真スロット504の写真、505の写真が重なって表示されている。このように、本実施形態では、写真スロットの上に写真が配置される場合もある。この例では、各スロットには自動レイアウトにより予め写真が割り当てられているもとする。ここで、ユーザが写真スロット503の写真を入れ替える場合について説明する。まず、ユーザが写真スロット503を押下すると(選択すると)、図7(d)に示すような編集画面に変わる。編集画面には、写真スロット503に対する候補画像641〜644が表示される。本実施形態では、4つの候補画像を表示するものとしたが、編集画面に表示する候補画像の数はこれに限定されるものでない。ユーザは、これらの候補画像(641〜644)の中から写真スロット503に入れたい写真を選択することができる。例えば、ユーザが写真641を選択すると、写真スロット503には写真641が割り当てられる。このように、候補画像を選択することで、ユーザは対象の写真スロットに対する写真の入れ替えを行う。対象スロットが503の場合、前候補ボタン510を押すことにより写真スロット502の候補画像が表示され、後候補ボタン511を押すことにより写真スロット504の候補画像が表示される。前候補ボタン510又は後候補ボタン511を押したときのユーザインターフェースについては図8を用いて後述する。ボタン520は、その他の画像を表示ボタンするボタンであり、このボタン520を押すことにより候補画像には表示されない画像を表示することができる。本実施形態では、ボタン520を押すことにより画像の一覧、例えば、フォトアルバムを作成する際に最初にユーザが選んだ画像の一覧を表示する。
図8は、図7の前候補ボタン510又は後候補ボタン511を押した場合の動作を説明するである。図8は、それぞれ、各スロットに対する候補画像を表示する候補画像表示画面である。各スロットに対する候補画像は、スロットに配置された画像に基づいて選択される候補画像である。より具体的には、スロットに配置された画像を起点としてリストアップされる画像候補である。図8(a)は、写真スロット500に対する候補画像600〜603を表示し、図8(b)は写真スロット501に対する候補画像610〜613を表示し、図8(c)は写真スロット502に対する候補画像620〜623を表示する。また、図8(d)は写真スロット503に対する候補画像630〜633を表示し、図8(e)は写真スロット504に対する候補画像640〜643を表示し、図8(f)は写真スロット505に対する候補画像650〜653を表示する。図8(g)は写真スロット506に対する候補画像660〜663を表示し、図8(h)は写真スロット507に対する候補画像670〜673を表示する。なお、本実施形態では、図8に示す各候補画像表示画面は、図7(d)に示すように、レイアウト画像の編集画面上に表示される。また、各候補画像表示画面には、前候補ボタン510と、後候補ボタン511とを有する。なお、そのスロットよりも前のスロットがない場合は、図8(a)に示すように、前候補ボタン510が表示されず、そのスロットよりも後のスロットがない場合は、図8(h)に示すように、後候補ボタン511が表示されない。
ここで、写真スロット503の写真の入れ替えについて説明する。まず、図7の写真スロット503が選択されると、スロット503を含むレイアウト画像の編集画面上に、図8(d)が候補画像表示画面として表示される。このとき、図8(d)において、前候補ボタン510が選択されると、図8(c)のように写真スロット503の前の位置に相当する写真スロット502の候補画像を表示する。すなわち、候補画像表示画面の候補画像が入れ変わる。図7に示すように、写真スロット502は入れ替え対象スロット503の前ページにあるスロットである。このように本実施形態では、ページをまたいだスロットの候補画像を表示することができる。ここで、図8(c)の候補画像620が選択されると、写真スロット503に候補画像620が割り当てられる。図8(d)において、後候補ボタン511が選択されると、図8(e)のように写真スロット503の後に位置する写真スロット504の候補画像を表示する。さらに、図8(e)で後候補ボタン511を押すと写真スロット505に対する候補画像を表示する。ここで、図8(e)の候補画像640を選択すると、写真スロット503に候補画像640が割り当てられる。このように後候補表示ボタン511を押していくことにより、入替対象スロットの後に位置するスロットの候補画像が表示される。
本実施形態では、上述したように前候補ボタン510や後候補ボタン511をユーザが押すことにより、入替対象スロットの前後のスロットの候補画像を表示することができる。そして、表示された候補画像を選択することにより対象スロットに対する画像の入れ替えが可能である。また、前候補ボタン510又は後候補ボタン511を押すことにより、入替対象スロットの候補画像として、入れ替え対象のスロットを有するテンプレート(ページ)以外のテンプレート(ページ)のスロットに割り当てられた候補画像も表示することができる。これにより、入替対象スロットに割り当てられた画像とは全く異なる画像に入れ替えることができる。
図19は、図7や図8で示したその他の画像を表示するためのボタン520をユーザが押したときに表示されるユーザインターフェースの一例である。ボタン520が選択されると、図19に示すように、ユーザがフォトアルバムを作成するときに最初に選んだ写真の一覧を表示する。なお、写真の一覧は、ユーザが選んだ写真の全てを表示しても良いし、その一部を表示しても良い。
サムネイル2001は、フォトアルバム作成時にユーザが選んだ写真のサムネイル、ファイル名2002は、サムネイル2001に対応する写真のファイル名である。OKボタン2003は、選択を確定するためのボタンであり、スクロールバー2004は、写真の一覧が多い場合に表示される。
識別マーク2005は、入替対象スロットに現在割り当てられている写真であることを示すマークであり、識別マーク2006は、入替対象スロット以外のスロットに現在割り当てられている写真であることを示すマークである。識別マーク2007は、動画から切り出された画像を示すマークである。本実施形態では、フォトアルバム作成時に、静止画だけでなく動画も選択することができ、動画から写真を切り出して写真スロットに配置したり、写真スロットの候補画像として表示したりすることができる。図19のように、識別マーク2007を付けることにより、その画像が動画から切りだされた画像であることをユーザが認識しやすくなる。
ここで、写真の一覧におけるサムネイルの並び順は、写真の撮影日順やファイル名順などの予め設定した並び順としてもよいし、並び順を選択できるユーザインターフェースを設けてユーザが並び順を選択できるようにしてもよい。また、ファイル名2002の代わりに、サムネイルと共に写真の撮影日など写真に関するその他の情報を表示しても良い。
本実施形態では、入替対象スロットで現在割り当てられている写真であることを示す識別マーク2005を表示する。これにより、サムネイル2001の並び順が写真の撮影日時順で並んでいる場合は、ユーザは識別マーク2005が付与された写真を基準として、入替対象スロットに割り当てられている画像と撮影日時の近い画像を見つけやすくなる。
なお、その他の画像を表示するためのボタン520を選択して最初に図19のユーザインターフェースを表示する場合に、識別マーク2005が付いている画像が見える位置にスクロールバー2004を自動的にスクロールして表示してもよい。
また、写真の一覧では、さらに他の種類の画像を識別するマークを付与するようにしてもよい。例えば、メモリカードから切り出されたものにマークを付けたり、SNSサイトから取得したものにマークを付けてもよい。
さらに、本実施形態において、さらに、識別マーク2005、2006、2007やその他の識別マークを、図8で示す候補画像表示画面において表示してもよい。図20は、候補画像を表示するユーザインターフェースの一例である。写真スロット2101、2102、2103を有するレイアウト画像(レイアウト画面)上に、写真スロット2102に対する候補画像2111〜2114を有する候補画像表示画面を表示する。図20に示すように、入替対象の写真スロット2102は、その写真スロットの枠線を太線2121とすることで、識別可能に表示する。また、候補起点画像が割り当てられている写真のスロットの枠線を点線2120とすることで、識別可能に表示する。このように、入替対象の写真スロットや候補起点画像のスロットを識別可能に表示することで、ユーザはどの写真対象が入替対象なのか、どの画像を起点に候補画像を表示しているのかを容易に把握することができる。前候補ボタン510や後候補ボタン511を押していくことにより候補起点画像のスロットが遷移するため、候補起点画像を示す点線2120も同様に別のスロットに遷移する。ここで、候補起点画像のスロットは、ページを超えて遷移することがある。この場合は、表示しているページは切り替えずに点線2120が表示されないようにしてもよいし、表示しているページを切り替えて候補起点画像のスロットをユーザに示すようにしてもよい。表示しているページを切り替える場合は、入替対象スロットが表示されなくなってしまうため、図21(b)に示すように、入替対象スロットに割り当てられた写真2130を候補画像表示画面内に表示しても良い。
本実施形態では、画像スロットで現在割り当てられている画像の近傍の画像を候補画像として表示する。これにより、画像をレイアウトする際にスロットに適した画像をユーザが容易に選択することができる。本実施形態では、入替対象スロットの近傍の画像を候補画像として表示する。具体的には、入替対象スロットと同一撮影期間から候補画像を選定して表示する。これにより、ユーザはページ内の時系列を崩すことなく簡単に画像を入れ替えることができる。また、単に入れ替え候補画像の時間的に近い画像を選ぶのではなく、同一撮影期間という範囲を持った画像群の中からスコアを高いものを提示することにより、単に時間的に近い画像を提示する場合よりも、アルバムにとって好ましい画像を選択することができる。また、対象スロットの特性に適した画像を候補画像として表示することができる。
また、本実施形態では、入替対象スロットの候補画像として、対象スロットの近傍の画像、または、スロットの特性に適合した画像を所定の数表示することにより、候補画像が多すぎる場合のようにユーザが画像を選び難くなるということがない。
さらに、入れ替え候補画像の次の候補を選定して表示する際にも、時間的に前のスロットの近傍の時間帯から候補画像を選択することにより、ユーザは容易にページ内の時系列を大きく崩すことなく画像を入れ替えることができる。
(実施形態2)
図17及び図18を用いて、本実施形態について説明をする。なお、実施形態1と同様の構成については、説明を省略する。
図17は、入れ替え候補画像の次の候補の提示方法の一例を示すものである。本実施形態では、図17に示すように、前候補ボタンを押された場合の入れ替え候補画像の選択方法が実施形態1とは異なる。前候補ボタンを押された場合、候補画像の選択範囲を撮影期間(b’)とする。撮影期間(b’)は、スロットに配置されている画像(2)が属している撮影期間(b)と入替対象スロットに配置されている画像(3)が属している撮影期間(c)との間の撮影時間帯である。この撮影期間(b’)より、候補画像(7’)及び候補画像(8’)を選定する。すなわち、本実施形態では、入替対象スロットに配置されている画像が属する撮影期間よりも1つ前の撮影期間から、候補画像を選定して表示する。一方、後候補ボタンを押された場合、実施形態1と同様に、候補画像の選択範囲を撮影期間(d)とする。これは、撮影期間(c)に画像がないためであり、撮影期間(c)に画像がある場合は、撮影期間(c)から画像を選定する。すなわち、本実施形態では、入替対象スロットに配置されている画像が属する撮影期間よりも1つ後の撮影期間から、候補画像を選定して表示する。撮影期間からの候補画像の選定方法は、実施形態1と同様であるため、説明を省略する。
図18は、本実施形態に係る候補画像の表示処理のフローを示したものである。
S1901は、S101と同様であるため説明を省略する。
S1902では、ユーザが選択したスロットの画像が属している撮影区分(時間帯)を、「候補画像の抽出時間範囲」として設定し、S1903では、設定された「候補画像の抽出時間範囲」から、候補画像を所定数リストアップする。
S1904ではリストアップされた候補画像を候補画像表示画面に表示する。S1905では、ユーザが前候補ボタンを押したか判定する。
ユーザが前候補ボタンを押したと判定された場合(S1905でYes)、S1906において、「候補画像の抽出時間範囲」の入れ替えを行う。S1906では、「候補画像の抽出時間範囲」は、その時点で設定されている「候補画像の抽出時間範囲」よりも1つ前の撮影区分(時間帯)とする。そして、S1903に戻って、新たな候補画像をリストアップし、候補画像の表示を行う(S1904)。
ユーザが前候補ボタンを押していないと判定された場合(S1905でNo)、S1907へ進む。S1907では、ユーザが後候補ボタンを押したか判定する。ユーザが後候補ボタンを押したと判定された場合(S1907でYes)、S1908において、「候補画像抽出時間範囲」の入れ替えを行う。S1908では、その時点で設定されている「候補画像の抽出時間範囲」より、後の撮影区分(時間帯)を「候補画像の抽出時間範囲」として更新する。そして、S1903に戻って、新たな候補画像をリストアップし、候補画像の表示を行う(S1904)。
S1906で、ユーザが後候補のボタンを押していないと判定された場合(S1907でNo)、S1909に進む。
S1909では、ユーザが候補画像を選択したか判定する。候補画像を選択していないと判定された場合(S1909でNO)、S1904へ戻る。候補画像を選択したと判定された場合(S1909でYes)、対象スロットに配置する画像を選択した画像に更新し(S1910)、処理を終了する。
本実施形態では、画像スロットで現在割り当てられている画像の近傍の画像を候補画像として表示する。これにより、画像をレイアウトする際にスロットに適した画像をユーザが容易に選択することができる。本実施形態では、入替対象スロットの近傍の画像を候補画像として表示する。具体的には、入替対象スロットと同一撮影期間から候補画像を選定して表示する。これにより、ユーザはページ内の時系列を崩すことなく簡単に画像を入れ替えることができる。また、単に入れ替え候補画像の時間的に近い画像を選ぶのではなく、同一撮影期間という範囲を持った画像群の中からスコアを高いものを提示することにより、単に時間的に近い画像を提示する場合よりも、アルバムにとって好ましい画像を選択することができる。また、対象スロットの特性に適した画像を候補画像として表示することができる。
また、本実施形態では、入替対象スロットの候補画像として、対象スロットの近傍の画像、または、スロットの特性に適合した画像を所定の数表示することにより、候補画像が多すぎる場合のようにユーザが画像を選び難くなるということがない。
(他の実施形態)
本発明は上述した実施形態に限定されるものではない。例えば、上述した実施形態では、アルバム作成アプリケーションを例に挙げて説明したが、お勧め画像を自動選択するような画像選択処理を備えるアプリケーションや画像処理装置であってもよい。
上述した実施形態では、写真スロットの位置の順番をページの左上から順番に付け、次に右上のスロット、その次に左下に位置するスロット、最後に右下に位置するスロットというように順序付けした。また、写真スロット503のようにページ全体に割り当てられた写真スロットは、そのページの最初に順序付けした。なお、写真スロットのテンプレートにおける順番は、これに限定されるものではなく、例えば最初に左上、次に左下、その次に右上、最後に右下のように他の順番にしてもよい。
上述した実施形態では、前候補ボタン510と後候補ボタン511により、入替対象スロットの直前や直後に位置するスロットの候補画像を表示するものとしたが、これに限定されるものではなく、入替対象スロットとは異なるスロットであればよい。例えば、入替対象スロットが配置されているページの2ページ前にあるスロットの候補画像や、入替対象スロットが配置されているページの3ページ後にあるスロットの候補画像などを表示するようにしてもよい。上述した実施形態は、以下の処理を実行することによっても実現される。すなわち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPUやMPU等)がプログラムを読み出して実行する処理である。また、プログラムは、1つのコンピュータで実行させても、複数のコンピュータで連動させて実行させるようにしてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、処理の一部または全部をASIC等のハードウェアで実現するようにしてもよい。また、CPUも1つのCPUで全ての処理を行うものに限らず、複数のCPUが適宜連携をしながら処理を行うものとしてもよい。