(実施形態1)
以下、本発明の実施形態について図面を用いて詳細に説明する。
本実施形態では、画像処理装置において、アルバム作成のためのアプリケーション(以下、「アプリ」ともいう)を動作させ、自動レイアウトを生成する方法を例に挙げて説明する。
図1は、本発明に係る画像処理装置100のハードウェアの構成を説明するブロック図である。画像処理装置100としては、例えば、PC、スマートフォン等が挙げられ、本実施形態ではPCを採用するものとする。
図1において、画像処理装置100は、CPU101と、ROM102と、RAM103と、HDD104と、ディスプレイ105と、キーボード106と、マウス107と、データ通信装置108と、を備えている。これらは、データバス109により相互に接続されている。
CPU(中央演算装置/プロセッサ)101は、システム制御部であり、画像処理装置100全体を制御する。また、CPU101は、本実施形態で説明する画像処理方法をプログラムに従って実行する。なお、図中のCPUは1つとしたが、これに限定されず、複数備えていてもよい。
ROM102は、CPU101により実行されるプログラムやパラメータが記憶されている。RAM103は、CPU101によるプログラムの実行時に、各種情報を一時的に記憶したり処理したりするためのワークメモリとして使用される。HDD(ハードディスク)104は、画像ファイルや画像解析などの処理結果を保持するデータベースなどを記憶するための記憶媒体である。本実施形態において、後述するアルバム作成のためのアプリケーションプログラムは、HDD104に記憶されている。
ディスプレイ105は、本実施形態のUI(ユーザインターフェイス)や画像のレイアウト結果をユーザに提示する装置である。ディスプレイ105は、タッチセンサー機能を備えても良い。キーボード106は、入力装置の1つであり、例えば、ディスプレイ105に表示されたUI上に所定の情報を入力するのに用いられる。マウス107は、入力装置の1つであり、例えば、ディスプレイ105に表示されたUI上のボタンをクリックするのに用いられる。
データ通信装置108は、プリンタやサーバなどの外部装置と通信するための装置である。例えば、CPU101が作成した自動レイアウトのデータは、データ通信装置108を介して外部に接続されたプリンタやサーバに送信することができる。
データバス109は、上述した各部(102~108)とCPU101とを接続する。
図2は、本発明に係るアルバム作成アプリケーションのソフトウェアブロック図である。本実施形態において、当該アプリケーションはHDD104に保存されており、ユーザがディスプレイ105に表示されているアイコンをクリックすることによって起動される。
アルバム作成アプリケーションは様々な機能を持つが、本実施形態では、特に自動レイアウト処理部219により提供される自動レイアウト機能に関して説明する。図2に示すように、アプリケーションは、アルバム作成条件指定部201と、自動レイアウト処理部219と、を含む。自動レイアウト機能は、撮影された写真をその内容や属性に基づいて分類し、あるいは選択して写真をレイアウトし、ディスプレイ105に表示するアルバム画像を生成するための機能である。
アルバム作成条件指定部201は、マウス107によるUI操作に応じてアルバム作成条件を自動レイアウト処理部219に指定する。本実施形態では、アルバム作成条件として、主人公、見開き数、テンプレートの種類、アルバム作成のモード、画像補正をするか否か、アルバムの見開きあたりに配置する枚数を調整する見開き写真枚数、アルバムを作成する商材を指定可能である。アルバムにレイアウトする画像や切り出し元の動画は、例えば撮影日時など個別の画像データの付随情報や属性情報によって指定されても良いし、デバイスやディレクトリなど、画像・動画データを含むファイルシステムの構造に基づいて指定されてもよい。なお、本明細書において、「見開き」とは、表示においてはひとつの表示用ウィンドウに相当し、印刷においては典型的には2ページ分に対応する領域であり、シートに印刷された互いに隣接する、ユーザが一目で観賞できる1対のページを示す。
動画取得部202は、アルバム作成条件指定部201により指定された動画群(動画データ群)をHDD104から取得する。ここでいう動画群とは、1つのアルバム作成の際に動画から切り出された画像をレイアウトに利用する候補動画群を指す。取得された動画データは解析できるようにOSに標準搭載されている動画のデコーダを使って圧縮された状態から展開しておく。
動画解析部203は、動画取得部202で取得された動画データを解析する。解析は動画から連続するフレームを切り出し、前後のフレームとの差分量を算出する。差分量が多い場合は、前後のフレームが類似していないので動きが多いフレームと判断される。差分量が少ない場合は、似ているフレームと判断される。動き量に関しては、前述したフレーム間の差分以外にも動画フォーマットで利用している動きベクトルを利用してもよい。
動画解析部203は、判定された動き量から解析対象とするフレームを選定する。動き量の多さに基づいて、動いている区間と止まっている区間に分けることができる。動き量が多いと判定された区間は解析対象とするフレーム間隔を短くし、動き量が少ないと判定された区間は解析対象とするフレーム間隔を長くする。例えば、動き量が多い区間は5フレーム間隔で解析対象とし、動き量が少ない区間は区間の最初と最後及び中間のフレームを解析対象とする。
その後動画解析部203は、解析対象となったフレームに解析処理を行い得点化する。解析の項目としては、顔や動物などのレイアウトに利用するオブジェクト検出、オブジェクトのサイズ判定、顔に関しては笑顔判定、目瞑り判定、ブレボケ判定、画像全体の明るさ判定が挙げられ、各判定項目の結果に応じて得点を算出する。
オブジェクト検出は検出された場合がフレーム内に含まれる場合は高得点とする。オブジェクトのサイズ判定は検出されたオブジェクトのサイズが大きければ高得点とする。笑顔判定で笑顔と判定された顔の数、及び目瞑り判定で目瞑りしていないと判定された顔の数が多い方が高得点とする。ブレボケ判定では画像のエッジ量をラプラシアンフィルタにより算出してエッジ量が多いほどぼけていないので高得点とする。画像全体の明るさに関しては画像の平均輝度が所定値以上であれば高得点とする。最終的には項目ごとの得点の総和となる総合得点を算出する。
他にも、判定した動き量に応じてブレボケを判定する領域を変更してもよい。例えば、動画撮影時に動いている被写体を追尾した場合、被写体はくっきり写るが背景はぼけるため、画像全体としてはぼけてしまう。そのため、動き量が多い場合は顔などの被写体領域のみでボケ量を判定する方法も考えられる。動いている/止まっている各区間から算出した総合得点が所定値以上のフレームをベストショットと判断する。
フレーム取得部204は、動画解析部203で解析された結果に基づいて、動画からフレームを切り出して画像データとしてHDD104に保存する。その際、切り出された画像データと関連付けて、動画解析部で判定された動き量、カメラワーク、得点などの情報を保存する。保存する際に、判定された得点からアルバムに利用する画像、アルバム作成後にユーザが差し替え利用するための候補画像というように用途も関連付けて保存してもよい。
画像取得部205は、アルバム作成条件指定部201により指定された画像群(画像データ群)をHDD104から取得する。ここでいう画像群とは、1つのアルバム作成の際にレイアウトする候補となる画像群を指す。例えば、アルバム作成条件指定部201において、XX年1月1日~XX年12月31日が指定された場合は、XX年1月1日~XX年12月31日に撮影された画像の全てが指定された画像群に該当する。画像取得部205は、該当する画像群における各画像の幅及び高さ情報も取得する。
HDD104に保存されている画像としては、静止画像や、動画から切り出された切り出し画像が挙げられる。静止画像や切り出し画像は、デジタルカメラやスマートデバイス等の撮像デバイスから取得したものである。撮像デバイスは、画像処理装置100が備えていてもよいし、外部装置が備えるものであってもよい。なお、撮像デバイスが外部装置である場合は、画像はデータ通信装置108を介して取得する。また、静止画像や切り出し画像は、データ通信装置108を介してネットワークやサーバから取得した画像であってもよい。ネットワークやサーバから取得した画像としては、ソーシャルネットワーキングサービス画像(以下、「SNS画像」という)が挙げられる。CPU101によって実行されるプログラムは、各画像に対して、画像に付随したデータを解析して保存元を判定する。SNS画像は、アプリケーションを介してSNSから画像を取得することで、アプリケーション内で取得先を管理してもよい。画像は、上述した画像に限定されるものではなく、他の種類の画像であってもよい。
画像変換部206は、画像データの画素数や色情報を変換する。本実施形態では、画像データを、短編の画素数が420画素となるように解像度変換し、個々の画素がsRGB規格の色情報で表現されるように色変換する。
画像解析部207は、画像変換部206で変換済みの画像データに対し解析処理を行う。具体的には、画像データから特徴を検出し、オブジェクト判定、顔検出、検出した顔の表情認識、検出した顔の個人認識などを実行する。さらに、HDD104から取得した画像に付随したデータ(例えば、Exif情報)から、撮影日時も取得する。
画像分類部208は、取得した画像群、すなわち、アルバム作成条件指定部201により指定された画像群をシーン分割する。シーン分割は、撮影日時情報、枚数情報、検出した顔情報を使って実施する。シーンとは、旅行、日常、結婚式等の撮影シーンのことであってもよいし、一つの撮影対象について一時期の撮影機会に撮影された画像の集まりであってもよい。
主人公情報入力部209は、アルバム作成条件指定部201から指定された主人公のID(識別情報)を画像得点部210に入力する。
画像得点部210は、画像解析部207および画像分類部208から得られる情報に基づいて、アルバムにレイアウトするのに好適な画像が高得点となるように、各画像に対する得点付けを行う。
見開き数入力部211は、アルバム作成条件指定部201から指定されたアルバムの見開き数を見開き割当部212に入力する。
見開き割当部212は、画像群を分割して各見開きに割り当てる。ここでは見開きで説明するがページでもよい。見開き割当部212は、入力された見開き数に応じて画像群を分割して各見開きに画像群の一部を割り当てる。例えば、見開き数が「5」である場合、取得した画像群を5つに分割してサブ画像群を生成し、各見開きに1つのサブ画像群を割当てる。
画像選択部213は、見開き割当部212で各見開きに割り当てられたサブ画像群から画像得点部210で付けた得点に基づいて、実際に見開きにレイアウトする画像を選択する。
テンプレート設定部214は、アルバム作成条件指定部201から指定されたテンプレート情報に応じた複数のテンプレートをHDD104から読み込み、画像レイアウト部215に提供する。
画像レイアウト部215は、個々の見開きについて画像のレイアウト処理を行う。具体的には、処理対象の見開きについて、テンプレート設定部214により入力された複数のテンプレートから画像選択部213で選択した画像に適したテンプレートを決定し、各画像のレイアウトを決定する。後に詳しく説明する背景スロットを有するテンプレートに対する画像のレイアウト処理も、画像レイアウト部215が行うものである。
レイアウト情報出力部218は、画像レイアウト部215が決定した画像レイアウトに従って、ディスプレイ105に表示するためのレイアウト情報を出力する。レイアウト情報は、例えば、決定したテンプレートに選択した画像をレイアウトしたビットマップデータである。
画像補正条件入力部216は、画像補正条件入力部216よりアルバム作成条件指定部201から指定された画像補正のON/OFF情報を画像補正部217に提供する。補正の種類としては、例えば、覆い焼き補正、赤目補正、コントラスト補正などが挙げられる。画像補正のONまたはOFFは、補正の種類ごとに指定されてもよいし、全ての種類についてまとめて指定されてもよい。
画像補正部217は、画像補正条件入力部216より受信した、画像補正条件に基づいて、レイアウト情報出力部218が保持するレイアウト情報に対して補正を実施する。
なお、画像変換部206から画像補正部217で処理する画像の画素数は、画像レイアウト部215で決定したレイアウト画像のサイズに合わせて変えることができる。本実施形態では、レイアウト画像を生成した後に、各画像に画像補正を行うものとしたが、これに限定されず、見開きにページにレイアウトする前に、各画像の補正を行うようにしてもよい。
本実施形態に係るアルバム作成アプリケーションは、画像処理装置100にインストールすると画像処理装置100上で動作するOS(オペレーティングシステム)のトップ画面(デスクトップ)上に起動アイコンが表示される。ユーザがディスプレイ105に表示されているデスクトップ上の起動アイコンをマウス107でダブルクリックすると、HDD104に保存されているアルバム作成アプリケーションのプログラムがRAM103にロードされる。RAM103のプログラムがCPU101によって実行されて、アルバム作成アプリケーションが起動する。
図3は、起動したアルバム作成アプリケーションが提供する表示画面301であり、アルバム作成アプリケーションが起動された際に、ディスプレイ105に表示される。ユーザは、表示画面301を介して、アルバムの作成条件を設定することができる。
表示画面301において、パスボックス302及びフォルダ選択ボタン303は、アルバムに載せる画像や動画群を指定するために使用される。パスボックス302は、アルバム作成の対象となる画像・動画群のHDD104中の保存場所(パス)を表示する。フォルダ選択ボタン303は、アルバム作成の対象とする画像・動画群を含むフォルダを表示されるツリー構成から選択するためのボタンである。ユーザがフォルダ選択ボタン303をマウス107でクリックして、アルバム作成の対象とする画像・動画群を含むフォルダを表示されるツリー構成から選択すると、選択した画像・動画群を含むフォルダパスがパスボックス302に表示される。
主人公指定部304には、人物の顔画像がアイコンとして複数表示されている。ユーザは、アイコンをクリック(選択)することにより主人公を指定することができる。アイコンは、1人に対して1つの顔画像が用意され、それぞれの顔画像は個人IDと関連付けられて管理されている。主人公指定部304は、解析対象の画像すなわち写真に写った人物から中心人物である主人公を特定するために用いられる。顔画像は、たとえば予め画像から検出され、個人IDと関連付けて顔データベースに登録されている。
見開き数ボックス305は、アルバムにおける見開き数を指定するためのボックスである。ユーザは、キーボード106を使って見開き数ボックス305に直接数字を入力したり、マウス107を使ってリストから見開き数ボックス305に数字を入力したりすることができる。
テンプレート指定部306は、テンプレートのテイスト(ポップ調やシック調等)を指定するためのもボックスである。本実施形態において、テンプレートとは、アルバムにおいて画像をレイアウトするための配置枠(スロット)を有し、様々なテイストでデザインされた素材である。テンプレート指定部306には、テイストが分かるイラスト画像がアイコンとして複数表示され、ユーザは、好みのアイコンをマウス107によってクリックすることにより、テンプレートを選択することができる。
モード指定部307は、アルバムを作成する際に考慮するオブジェクトを指定するためのボックスである。オブジェクトとはアルバムを作成するに当たり、テーマとなるものである。ここでは、「人」「動物」「料理」の3つをオブジェクトから、選択できるものとする。ユーザは、目的のオブジェクトのアイコンをマウス107によってクリックすることにより、モードを選択することができる。
なお、オブジェクトの種類はこれら3つに限定されるものではない。これ以外の3つ以上のオブジェクトから選択してもよいし、同時に複数のオブジェクトを指定できるようにしても良い。
チェックボックス308は、画像補正のON/OFFを指定するためのボックスである。マウス107でチェックを入れると上述した画像補正がONとなり、チェックを入れないと画像補正がOFFとなる。本実施形態では、全ての画像補正が1つのボタンでON/OFFされるものとしたが、これに限定されず、画像補正の種類毎にチェックボックスを備えるようにしてもよい。
見開き写真枚数309は、アルバムの各見開きに配置する画像枚数をスライダーバーで設定するためのものである。ユーザは、スライダーバーを左右に移動させることにより、各見開きに配置する画像枚数を調整することができる。
商材指定部310は、作成するアルバムの商材を設定する。商材は、アルバムのサイズ、アルバムの用紙種類を設定することができる。個別に表紙種類や綴じ部の種類を設定してもよい。
OKボタン311は、表示画面301上で選択された条件をアルバム作成条件として決定するボタンである。ユーザがOKボタン311をマウス107でクリックすると(選択すると)、アルバム作成条件が確定し、アルバム作成条件指定部201を介して、自動レイアウト処理部219にアルバム作成条件が伝えられる。一方、リセットボタン312は、表示画面上の各設定情報をリセットするためのボタンである。
図3に示す表示画面301で設定した個々の情報は、図2の自動レイアウト処理部に提供される。具体的には、パスボックス302に入力されたパス情報は、画像取得部205に提供される。主人公指定部304で指定された主人公の個人IDは、主人公情報入力部209に提供される。見開き数ボックス305に指定された見開き数は見開き数入力部211に提供される。テンプレート指定部306で選択されたテンプレート情報はテンプレート設定部214に提供される。画像補正チェックボックスの画像補正のON/OFFの情報は画像補正条件入力部216に提供される。
図4は、本実施形態に係るアルバム作成アプリケーションにおける自動レイアウト方法を説明するためのフローチャートである。本フローチャートは、例えば、CPU101がHDD104に格納されたプログラムをROM102やRAM103に読み出して実行することにより実現される。ソフトウェア的には、CPU101が図2の各ブロックを介して実行する処理となる。以下、図2を参照しながら図4のフローチャートの各工程を順番に説明する。
本処理が開始されると、まずS401において、アルバム作成条件指定部201がアルバム作成条件を設定する。具体的には、アルバムを作成するために用いる動画や画像群の画像データ、主人公、見開き数、テンプレート、モード、画像補正に関して設定された情報を設定する。
S402において、動画取得部202は、動画データを取得する。
S403において、動画解析部203はS402で取得した動画データを解析し、動き量、カメラワーク、ブレボケや表情などの結果を組み合わせたスコアを算出する。そして、算出スコア値が所定閾値以上の動画データをレイアウト候補用に設定する。この際、算出スコア値が所定閾値未満の動画データについては、ユーザが編集作業時にレイアウト候補用の動画データと差し替え可能な編集候補用に設定してもよい。
S404において、フレーム取得部204は、解析した動画からフレームを切り出して画像データとしてHDD104に保存する。また、保存されたフレームに対応する解析結果(動き量、カメラワーク、スコア)を関連付けてHDD104に保存する。
S405では、アルバム作成条件指定部201で指定されたHDD104の動画群の全動画に対して、S402からS404の処理が終了したか否かが判定される。終了していない場合(S405でNo)はS402に戻る。終了している場合(S405でYes)はS406に移行する。
S406において、画像取得部205は、S401で指定された画像群に含まれる画像をHDD104から読み込み、RAM領域103に展開する。
S407において、画像変換部206は、S406で取得された画像を、画像解析部207で解析可能な形態に変換する。具体的にはS406で取得された画像群の各画像データを、短編の画素数が420画素となるように解像度変換し、個々の画素がsRGB規格の色情報で表現されるように色変換する。
S408において、画像解析部207は、S407で変換された画像を解析し特徴量を取得する。画像の特徴量としては、例えば、ピントが挙げられる。ピントは、画像中のエッジの平均傾きより判断することができる。公知のソーベルフィルタで画像のエッジを検出し、エッジの始点と終点の輝度差を、始点と終点の距離で割ることによりエッジの傾きすなわち、輝度勾配が算出される。そして、画像中のエッジの平均傾きを算出して、平均傾きが大きい画像は、平均傾きが小さい画像よりもピントが合っていると判定することができる。本実施形態では、複数の傾き閾値を設定し、いずれの傾き閾値以上かを判別することでピント量が許容できるか判定する。本実施形態では、異なる2つの傾き閾値を設定し、○△×の3段階でピント量を判別する。画像中のエッジの平均傾きが第1の閾値以上であれば、ピントの傾きを○(好適)、第1の閾値よりも低い第2の閾値以上であれば、ピントの傾きを△(許容できる)、第2の閾値未満であればピントの傾きを×(許容できない)とする。なお、画像解析部207は、各画像データに付随する情報から撮影日時も取得する。本実施形態では、各画像データに付随するExif情報から撮影日時を取得する。
S409において、画像解析部207は、各画像データにおけるオブジェクト検出と認識を実行する。具体的には、例えばS407で生成された画像データから顔を検出する。顔の検出は、例えば、複数用意した弱識別器から強識別器を作成するAdaboostを利用するなど、公知の方法を用いることができる。
S409において、画像解析部207は、顔画像を検出(抽出)すると共に、画像における検出した顔画像の位置の左上座標値と右下座標値を取得する。なお、ここでいう「画像」とはS407で生成された画像データにより表される画像である。この2種の座標を特定することにより、人物の顔の位置と顔のサイズを特定することができる。更に、顔同様に犬や猫等の動物と、料理をそれぞれ検出するAdaBoostも併せて実行することで、人物、動物、料理のオブジェクトを検出すると同時にオブジェクトが何かを分類することができる。なお、上記に限らず、花、建物、置物等であってもよい。ここでは、AdaBoostを用いたオブジェクト分類で説明したが、ディープニューラルネットワークによる画像認識を用いてもよい。
S410において、画像解析部207は個人認識を行う。まず、S409で抽出した顔画像と、顔辞書データベースに個人ID毎に保存されている代表顔画像との類似性を比較する。そして、類似性が閾値以上であり且つ最も類似性が高い個人IDを、抽出した顔画像のIDに決定する。すなわち、類似性が閾値以上であり且つ最も類似性が高い個人IDに対応する人物を、抽出した顔画像の人物として特定する。なお、類似性が閾値未満の場合は、抽出した顔画像に新規の人物として新規の個人IDを割り振って、顔辞書データベースに登録する。
なお、画像解析部207は、S408からS410のそれぞれの工程で取得した各画像データの画像解析情報を、画像を識別するID毎に区別してHDD104に記憶している。
図5は、HDD104に記憶される各画像データの画像解析情報の一例を示す図である。S408で取得した撮影日時情報及びピント判別結果、S409で検出した顔の数と位置情報を各画像データの画像解析情報として、画像IDに対応づけて保存する。1つの画像データには、複数の顔が含まれる場合があるが、顔の位置情報は、S410で取得した個人ID毎に区別して記憶する。また、画像データに顔が検出されない場合は、S408で取得した撮影日時情報及びピント判別結果のみが保存され、顔の位置情報は保存されない。
オブジェクト分類においては、画像内に含まれる主要オブジェクトをAdaboost実行時の信頼度が高いものから、TOP1、TOP2、TOP3・・・の順に保存する。顔以外のオブジェクトに関しても、同様である。AdaBoostはパターンを判別する弱判別器を連続で接続し、1つの強判別器を形成する。そのため、信頼度はAdaboostで予め学習したパターンと一致する弱判別器が多いほど高くなる。ここでは、AdaBoostを例にオブジェクト判定を説明したが、DeepNeuralNetworkをはじめとするConvolutionalNeuralNetworkを用いた判別器であってもよい。
図4に戻る。S411では、アルバム作成条件指定部201で指定されたHDD104の画像群の全画像に対してS407からS410が終了したか否かを判定する。終了していない場合(S411でNo)、S406に戻る。終了している場合(S411でYes)はS412に移行する。
S412において、画像分類部208はシーン分割を行う。シーン分割とは、取得した画像群をシーンに応じて複数のサブ画像群に分割することを指す。具体的には、S408で取得済みの撮影日時情報に基づいて、画像と画像との時間差に基づいて画像群を複数に分割する。分割の基準の例を以下に説明する。
画像群のうち、たとえば最も撮影日時が古い(或いは新しい)画像に最初に着目し、その次に古い(新しい)画像との時間差を参照する。これを、着目画像を順次撮影日時が新しい(或いは古い)ものに置き換えつつ以下のいずれの条件に該当するか判定を行う。なお以下の説明で分割するとは、2つの画像間を境に撮影日時の新しい方と古い方とに画像群をグループ分けするという意味である。
画像と画像の撮影日が連続していない場合、すなわち、画像間に撮影していない日が存在する場合は、分割する。撮影日が連続する場合、本実施形態では、画像と画像の撮影時間の差が16時間以上空いている場合は分割する。画像と画像の撮影時間の差が16時間未満の場合は、連続する各日の最初の撮影から最後の撮影までの時間差が4時間未満なら分割する。本実施形態では、4時間以上の場合は、連続する各日の撮影枚数が50枚未満なら分割し、50枚以上であれば分割しないものとする。なお、分割の際の時間差の閾値や枚数の閾値は、これに限定されるものではない。
図6(a)は、上述したシーン分割方法で分割した結果を示している。横軸は日時(撮影時間)、縦軸は個々の日時に対応する画像枚数を示している。矢印で示した箇所が上記方法で分割された位置を示し、矢印と矢印の間に含まれる画像群が、同じシーンに属するサブ画像群となる。ここでは(1)~(8)の8つのサブ画像群が生成されている。
図4に戻る。S413において、画像分類部208はシーン分類を行う。本実施形態において、シーン分類とは、各サブ画像群を「旅行」、「日常」、「セレモニー」のような、シーンの種類に分類する作業を意味する。以下では、簡単のため、「旅行」、「日常」、「セレモニー」の3つに分類する場合を例に説明するが、シーンの種類はこれに限定されない。
画像分類部208は、まず、旅行、日常、セレモニーのうちいずれに分類されるかが予め判定されているサブ画像群を、複数取得する。次に、サブ画像群について、撮影の特徴量を取得する。ここで特徴量とは、例えば、撮影期間、撮影枚数、撮影人数のような量に基づいて取得される数値である。撮影期間は、画像群の最初の撮影から最後の撮影までの時間差である。撮影枚数は、サブ画像群に含まれる画像の数(写真の枚数)である。撮影人数は、顔が写っている画像における顔の数である。すなわち、1つの画像に含まれる顔の数である。そして、複数のサブ画像群に対して、撮影期間の平均値と標準偏差、撮影枚数の平均値と標準偏差、1画像あたりの人数の平均値と標準偏差を求める。なお、本実施形態において、1画像あたりの人数とは1画像あたりの顔の数とする。
このような、撮影期間(時間)、撮影枚数(枚)、撮影人数(人)の各平均値と標準偏差の取得作業については、アルバム作成アプリケーションのプログラムに予め含まれている。すなわち、アルバム作成アプリケーションが起動されると、CPU101は、ユーザがパスボックス302で指定した画像群をシーン分割してサブ画像群を生成し、個々のサブ画像群について、撮影期間、撮影枚数、及び撮影人数のそれぞれの平均値を算出する。
図7は、撮影期間(時間)、撮影枚数(枚)、撮影人数(人)の各平均値と標準偏差の一例を示す。
次に、CPU101は、各特徴量の平均値と標準偏差に基づいて、それぞれのサブ画像群についての得点化作業を行う。具体的には、以下の式を用いて、得点を算出する。
シーン及び特徴量毎の得点=50-|10×(シーン及び特徴量毎の平均値-サブ画像群毎の特徴量)/シーン及び特徴量毎の標準偏差| (式1)
シーン毎の平均得点=(シーン毎の撮影期間の得点+シーン毎の撮影枚数の得点+シーン毎の人数の得点)/特徴量項目数 (式2)
式(1)により、着目サブ画像群の、各シーンおよび各特徴量についての得点が求められる。例えば、「旅行」シーンの撮影期間、撮影枚数、撮影人数それぞれの得点が求められる。これら得点を式(2)により平均化して、「旅行」シーンに関する得点とする。同様に、「日常」、「セレモニー」という他のシーンについても得点が得られる。以上により、旅行、日常、セレモニー毎の平均得点が算出される。サブ画像群毎に最高点のシーンをそのサブ画像群のシーンとして分類する。2以上のシーンが同点の場合は、優先シーンに応じてシーンを分類する。例えば、本実施形態では、日常>セレモニー>旅行の順に優先することが予め決められており、日常の優先度を最も高くする。なお、優先度の順番はこれに限定されるものではなく、また、ユーザが優先度の順番を設定できるようにしてもよい。
例えば、図6(a)のシーン分割された後のサブ画像群(5)は、撮影期間が36時間、撮影枚数が300枚、撮影人数が1.7人であった。「旅行」の平均得点は45.32、「日常」の平均得点は18.38、「セレモニー」の平均得点は-29.92となり、サブ画像群(5)のシーンは「旅行」に分類される。サブ画像群は、シーン識別ができるようにシーンIDを関連付けて管理する。
再度図4に戻る。S414において、画像分類部208は、S412で分割された全てのサブ画像群に対してシーン分類が終了したか否かを判定する。終了していない場合(S414でNo)はS413に戻る。終了している場合(S414でYes)はS415に進む。
S415において、主人公情報入力部209は、主人公設定を行う。主人公設定はユーザが指定した画像群に対して行われ、自動と手動の2種類がある。自動で主人公を設定する場合、主人公入力部209はS410の個人認識の結果と、S412のシーン分割の結果に基づいて主人公を設定する。具体的には、S410で取得した結果から、サブ画像群に登場する各個人IDの回数、各シーンに登場する各個人IDの回数、各個人IDが登場するシーンの回数等を特定し、これらの情報に基づいて主人公を設定する。本実施形態では、サブ画像群に複数シーンがある場合は複数のシーンに登場する個人IDを主人公IDと設定し、サブ画像群が単一シーンである場合は、単一シーンの登場回数が多い個人IDを主人公IDと設定する。ユーザが特定のアイコンを指定している場合、CPU101は、主人公情報入力部209を介して選択されたアイコンに対応する個人IDを画像得点部210に伝える。ユーザ指定の個人IDがある場合は、上述した自動設定の主人公IDは無視して、ユーザ指定の個人IDを主人公IDと設定する。このように、主人公指定部304の指定に基づく設定を手動設定とする。
S416において、画像得点部210は、画像の得点化を実行する。ここで言う得点とは、後述する画像選択時に参照され数値であり、画像データ毎に取得される。動画から切り出された画像に対しては、動画解析部203で解析された結果も加味して得点付けを行う。以下、図8及び図10を用いて、得点化方法について説明する。
図10は、3枚の画像をレイアウトする際に用いるテンプレート群を示している。図10の(1-1)に示すテンプレート1001は、1つのテンプレートであり、メインスロット1002と、サブスロット1003と、サブスロット1004を有する。メインスロット1002とは、テンプレート1001でメインとなるスロット(画像をレイアウトする枠)であり、サブスロット1003やサブスロット1004よりもサイズが大きい。すなわち、メインスロットとは、各テンプレートにおいて、最もサイズが大きいスロットである。また、サブスロットとは、各テンプレートにおいて、メインスロット以外のスロットである。メインスロット用の得点とサブスロット用の得点の両方を各画像データに付ける。
図8(a)は、画像データの得点化の基準を、メインスロットとサブスロットについて示す図である。より具体的には、図8(a)は、旅行、日常、セレモニーのシーン毎に得点が高くなる画像の特徴をまとめた表である。スロットの種類に応じて、得点が高くなるための特徴は異なる。例えば、サブ画像群のシーン分類が「旅行」である場合、人物と風景が入ったひいた画像は、メインスロットとしての得点が高くなり、顔のアップや横顔の画像は、サブスロットとしての得点が高くなる。また、サブ画像群のシーン分類が「日常」である場合、顔のアップや横顔の画像は、メインスロットとしての得点が高くなり、人物と風景が入ったひいた画像は、サブスロットとしての得点が高くなる。更に、サブ画像群のシーン分類が「セレモニー」である場合、2人の距離が近い画像は、メインスロットとしての得点が高くなり、大人数の画像は、サブスロットとしての得点が高くなる。このように、シーン及びスロットの種類に応じて、得点が高くなる特徴、言い換えれば、評価基準が異なる。本実施形態では、シーン及びスロットの種類に応じた得点が高くなる特徴は、アプリケーションにおいて予め設定しておき、プログラムに含むものとする。なお、得点が高くなる特徴は、上述したものに限定されるものではない。
画像得点部210は、図8(a)に示す各シーンのメインスロットとサブスロットのそれぞれの特徴に基づいて、各サブ画像群に含まれる各画像データに得点を付ける。各画像における顔の数、各画像における顔の位置、各画像における顔のサイズを取得し、平均値と標準偏差を各シーン各スロット種類(メインスロットとサブスロット)に対して求めて、アルバム作成アプリケーションのプログラムに記憶しておく。ユーザが指定した画像群の各画像データが表す画像がいずれのシーンに属するか(分類されるか)は、S413のシーン分類の結果から特定する。そして、注目画像のシーンに対応する予め求めた前記平均値と標準偏差、注目画像における主人公IDの顔の数、顔の位置、顔サイズの各特徴量に基づいて以下の式を使って得点と平均得点を出す。下式において得点、平均値、標準偏差は、シーン分類、スロット種類及び特徴量ごとに求められる。
得点=50-|10×(平均値-特徴量)/標準偏差|
平均得点=(顔数の得点+顔位置の得点+顔サイズの得点)/特徴量項目数
更に、CPU101は、上記算出された得点に対して、アルバム作成条件指定部201で指定されたモードに基づいて、得点に加算する。モードで人物と設定された場合には、図5の画像解析情報に格納されたオブジェクト分類でTOP1からTOP3の中でカテゴリが人の画像が含まれていれば得点を加算する。オブジェクト分類結果の信頼度が高いほど加算する得点を高くする。他にも、加算する得点はオブジェクト分類結果の順位に応じて変更してもよい。ここでは説明のために、モードで人物が選択された場合を説明したが、動物や料理など他のモードであってもよい。また、選択する個数は1つだけでなく、2つ以上を選択してもよい。その場合は、選択されたオブジェクトが含まれている分だけスコアに加算する。
なお、得点化は、メインスロット用とサブスロット用の両方を実施する。またアルバムに使う画像は、図5に示すピントの特徴量が○である画像IDの画像に対しては得点を加算してもよい。これにより、ピントが合っている画像の得点を高くすることができる。図8(b)は、各画像の得点結果の一例を示しており、各画像IDに対して、メインスロットとサブスロットの得点が付けられている。
画像に対して、メイン・サブスロット両得点が設定された後、図5に示す画像の種類が動画の場合は、動画解析部203で解析され算出されたスコア値をメイン・サブスロット両得点に加算する。ここでは、動画解析部で算出されたスコア値を利用する方法を記載したが、動き量の多さに応じて加算するスコア値を多くしてもよい。または、カメラワークでズームした後のフレームやパンした後のフレームに所定のスコア値を加算してもよい。そうすることで、動画撮影時のユーザの意図を反映させることができる。但し、動画撮影時のスコアを加算するだけでは、動画から切り出された画像が静止画よりも有利になる場合がある。その場合は、動画解析部203で算出された各切り出し画像のスコア値の平均値を算出し、それを全静止画像のスコアに加算する、もしくは切り出し画像のスコアから減算してもよい。
再び図4に戻る。S417において、CPU101は画像得点部210がユーザ指定の画像群の全画像に対してS416の画像得点化が終了したか否かを判定する。終了していない場合(S417でNo)はS416に戻る。終了している場合(S417でYes)、S418に進む。
S418において、見開き割当部212は、S412のシーン分割により得られたサブ画像群の数がS401で指定された見開き数と同じか否かを判定する。同じでない場合(S418でNo)S419に移行する。同じ場合(S418でYes)はS422に進む。例えば、図6(a)のシーン分割数が8であり、見開き数入力部211の入力数が8である場合は、S422に移行する。
S419において、見開き割当部212は、画像分類部208のシーン分割により得られたシーン数が見開き数入力部211により入力される見開き数より少ないか否かを判定する。シーン数が見開き数より少なくない場合(S419でNo)はS421に移行する。シーン数が見開き数より少ない場合(S419でYes)はS420に移行する。例えば、図6(a)のように、シーン分割数(サブ画像群数)が8であり、見開き数入力部211の入力数が10であれば、シーン数が見開き数より少なくないため、S421に移行する。
S420において、見開き割当部212は、サブシーン分割を行う。サブシーン分割とは、サブ画像群数<見開き数の場合に1つ以上のサブ画像群数を更に細分割することを指す。図6(a)のように、シーン分割数8に対して指定見開き数が10である場合、見開き割当部212は、例えばサブ画像群(2)とサブ画像群(5)のそれぞれを2つに分割し、図6(b)に示すような10個のサブ画像群(1)~(10)を再生成する。図6(b)において、破線矢印は、サブ画像群をさらに分割した箇所(日時)を示す。
このように、サブ画像群をさらに分割する箇所は、画像枚数および撮影日時で決定すればよい。図6(a)の場合は、サブ画像群(2)とサブ画像群(5)に含まれる画像枚数が他のサブ画像群よりも多いため、これら2つのサブ画像群を、更に分割するサブ画像群に設定している。画像枚数が多い同数のサブ画像群が存在する場合は、画像間の撮影日時の差の最大値が大きい方のシーンを選択する。図6(a)の場合、サブ画像群(1)とサブ画像群(2)の画像枚数は同数であるが、サブ画像群(2)の方が最初の画像から最後の画像の時間差が大きいため、サブ画像群(2)が分割されている。画像枚数も画像間の撮影日時の差の最大値も同等である場合は、たとえば時間的に早いシーンを優先的に再分割するなど、適宜決めておけばよい。
次に、個々のサブ画像群における分割箇所について説明する。サブ画像群(2)については、画像枚数の山が2つあり、この2つは撮影日が違う。よってサブ画像群(2)は、撮影日が変わる箇所(図6(b)の破線矢印の箇所)で分割する。サブ画像群(5)については画像枚数の山が3つあり、この3つは撮影日が違う。この場合は、分割後の各画像群の枚数差が小さくなるように分割箇所を決定する。すなわち、2日目と3日目の境目で分割した方が、1日目と2日目の境目で分割するよりも分割後の各画像群の枚数差が小さくなるので、2日目と3日目の境目(破線矢印の箇所)で分割する。以上のように、サブ画像群(2)とサブ画像群(5)のそれぞれを2つに分割することにより、図6(b)に示すような10個のサブ画像群(1)~(10)が生成される。なお、ここでは撮影日の違う箇所で分割したが、画像枚数が多いサブ画像群が単一日で撮影されたものである場合は、単一日の中で時間差が最大の箇所で分割することになる。
再び、図4に戻る。S421において、見開き割当部212はシーン統合を行う。シーン統合とは、シーン数(サブ画像群の数)が見開き数よりも多い場合に、シーン数と見開き数が一致するように、分割されたシーン(サブ画像群)を統合する作業である。
図6(a)のようにシーン分割数8に対して指定見開き数が6である場合、見開き割当部212は、例えばサブ画像群(3)とサブ画像群(4)を統合し、更にサブ画像群(7)とサブ画像群(8)を統合する。これにより、図6(c)に示すような6個のサブ画像群(1)~(6)が再生成される。図6(c)において、破線はサブ画像群を統合した箇所(日時)を示す。
シーン統合では、画像枚数がより少ないサブ画像群を特定し、これを隣接するサブ画像群に統合する。図6(a)の場合、サブ画像群(8)、サブ画像群(3)、サブ画像群(7)の画像枚数が、この順に少ないため、まず、サブ画像群(8)とこれに隣接するサブ画像群(7)を統合する。次に、サブ画像群(3)を、撮影日時が前のサブ画像群に統合するか、撮影日時が後のサブ画像群に統合するかを決定する。具体的には、サブ画像群(3)とサブ画像群(2)の時間差と、サブ画像群(3)とサブ画像群(4)の時間差を比較し、時間差がより小さいほうの組み合わせで統合する。本例の場合、サブ画像群(3)とサブ画像群(4)の時間差のほうが、サブ画像群(3)とサブ画像群(2)の時間差よりも小さい。したがって、サブ画像群(3)はサブ画像群(4)と統合する。以上のように、サブ画像群(7)とサブ画像群(8)を統合し、サブ画像群(3)とサブ画像群(4)を統合することにより、図6(c)に示すような6個のサブ画像群(1)~(6)が生成される。なお、本実施形態では、撮影時間の差が小さいサブ画像群同士を統合することにしたが、これに限定されるものではない。例えば、統合対象のサブ画像群を撮影枚数が少ないサブ画像群に統合するようにしてもよい。
再び図4に戻る。S422において、見開き割当部212は、見開き割当を実行する。S418~S421によって、サブ画像群の数と指定見開き数は同じになっている。本実施形態では、撮影日時が先頭のサブ画像群から見開きの先頭に割り当てる。すなわち、撮影日時順にサブ画像群をアルバムの各見開きのページに割当てる。これにより、撮影日時順にサブ画像群が並んだアルバムを作成することができる。なお、1つの見開きページ内では、画像は撮影日時に並んでいなくてもよい。
S423において、画像選択部213は、各サブ画像群から所定枚数の画像を選択する。
図9(a)~(f)は、S423において、ある見開きに割り当てられたサブ画像群から画像を4枚選択する例を示す図である。いずれの図も、見開きに割り当てられたサブ画像群に含まれる最初の画像から最後の画像のまでの撮影日時の時間差、言い換えれば、サブ画像群の撮影期間を横軸に示している。
本実施形態では、まず、S416で取得された得点が最も高い画像を、メインスロット用の画像として設定する。図9(b)は、メインスロット用に選択された画像の撮影日時を時間軸に対し矢印1で示している。
ここで、本実施形態では、同じ見開きに表示される画像の撮影日時を期間内(StartからEnd)でなるべく分散させるようにする。このため、次に選択するサブスロット用の画像は、図9(c)のように全期間を2等分し、矢印1とは異なる期間に含まれる複数の画像の中から、得点が最も高いものを選択する。図9(d)は、サブスロット用として1番目に選択された画像の撮影日時を、矢印2として図9(c)に追加した状態を示している。
図9(e)は、等分割された2つの期間のそれぞれを更に2等分、すなわち全区間を4等分した状態を示している。そして、サブスロット用の2つ目の画像は、これら4つの区間のうち、メインスロットもサブスロットも設定されていない区間の中から選択するようにする。すなわち、4つの区間のうち、メインスロットもサブスロットも設定されていない2つの区間の中で、得点が最も高い画像を選択しこれをサブスロット用の2番目の画像に設定する。図9(f)は、2番目に選択されたサブスロット用の画像の撮影日時を、矢印3として図9(e)に追加した状態を示している。
サブスロット用の3番目の画像についても、4つの区間のうち、メインスロットもサブスロットも設定されていない残りの区間の中で得点が最も高い画像を選択すれば良い。但し、この残りの区間、すなわち図9(g)で斜線で示した区間に必ずしも画像が存在するとは限らない。この場合は、それぞれの区間を図9(h)のように更に2等分し、8等分された区間の中から、メインスロットもサブスロットも設定されていない残りの区間の中で得点が最も高い画像を選択する。図9(i)は、このようにして選択されたサブスロット用の3番目の画像の撮影日時を、矢印4として追加した状態を示している。
図11は、S423において、上記のような選択を実現するためのソフトウェアブロック図である。このブロック図は、既に説明した図2に示す画像選択部213を更に詳細に示したものとなる。
枚数設定部1101は、処理対象の見開きに割り当てられたサブ画像群から、実際に見開きに載せる総画像枚数を設定する。
画像群取得部1102は、図2の画像取得部205が取得した画像群から見開きに割り当てられたサブ画像群を取得する。この際、個々の画像に対応づけて撮影日時情報、画像種類、オブジェクト情報、メインスロット用得点、及びサブスロット用得点も取得する。本実施形態において、画像種類は、静止画像、動画切り出し画像、SNS画像の3つに分類しているが、これに限定されるものではない。上記3つ以外の画像種類を区別するものとしてもよいし、デジタルカメラで撮影した静止画像と、スマートデバイスで撮影した静止画像などのように静止画像をさらに詳細に区別してもよい。
ループカウンタ1103は、図9で説明したような画像を選択した回数を管理する。管理された回数は、後述する得点軸を判定したり、処理対象の見開きに割り当てられたサブ画像群の撮影期間をいくつの撮影区間に分割するかなどを設定する際に利用される。
得点軸設定部1104は、ループカウンタ1103でカウントされた処理回数に応じて、利用する得点軸を設定する。本実施形態において、個々の画像は評価基準ごとに得点化されるものであり、「得点軸を設定する」とは「どの評価基準の得点を参照するかを設定する」ことを意味する。ここでは、S416で算出したメインスロット用得点軸(メインスロット用評価基準)とサブスロット用得点軸(サブスロット用評価基準)が用意されており、得点軸設定部1104はこれらのうちの一方を、切替え可能に設定可能とする。
例えば、ループカウンタ1103で管理されている回数が1回目のときは、メインスロット用得点軸を設定して、メイン画像を選択する処理を実行するように設定する。ループカウンタ1103で管理されている回数が2回目以降のときは、サブスロット用得点を設定して、サブ画像を選択する処理を実行するように設定する。
本実施形態では、利用する得点軸として、メインスロット用得点軸、サブスロット用得点軸を例に挙げて説明したが、別の得点軸を用いてもよい。例えば、メインスロット用得点軸、サブスロット用得点軸に加えて、さらに、人物の登場回数や一緒に写った回数に基づいて得点化する人物用関連度得点軸を用いるようにしてもよい。このようにすれば、登場回数や一緒に写った回数が多い人物が含まれる画像が高得点になり、人物用関連度得点軸が設定された場合に、そのような画像を優先的に選択することができる。
また、以上では、各得点軸を択一的に切り替えるようにしたが、メインスロット用得点、サブスロット用得点、人物関連度用得点軸などを組み合わせた統合得点軸を用意してもよい。この場合、個々の得点軸について重み付け係数を用意することもできる。また、処理する回数によって得点軸をランダムに変更してもよいし、予め用意したテーブルを参照して得点軸を切り替えるようにしてもよい。
分割部1105は、図9で説明したような、撮影期間の区間管理を行う。分割部1105は、処理対象の見開きに割り当てられたサブ画像群の撮影開始時間と撮影終了時間を特定し、撮影期間(図9のStartからEnd)を算出する。そして、ループカウンタ1103で管理されている選択回数に基づいて、算出された撮影期間を均等に分割して複数の撮影区間を生成し、分割された各区間の開始時刻および終了撮影時刻を出力する。本実施形態の場合、撮影区間の分割数は、2分割、4分割・・のように選択回数に基づいた2のべき乗に相当する。但し、本発明はこれに限定されるものではない。例えば、撮影期間をカウント数で均等に分割してもよい。
画像種類設定部1106は、ループカウンタ1103により設定された選択回数に応じて、次の画像選択で選択すべき画像の種類を設定する。例えば、1回目はSNS画像から選択し、2回目は動画切り出し画像から選択し、3回目以降は静止画から選択するように画像種類を順次設定する。
区間情報設定部1107は、画像群取得部1102で取得したサブ画像群に含まれる画像を、分割部1105で分割された区間ごとにグループ分けして、各区間の情報を、画像の撮影情報や各画像の得点情報等とともに格納する。
モード設定部1108は、図2のアルバム作成条件指定部201で指定されたモード情報を受け、画像選択部1109に提供する。
画像選択部1109は、得点軸設定部1104で設定された得点軸と、モード設定部で設定されたモードと、区間情報設定部1107で設定された画像の得点とに基づいて各区間から、画像を1枚選択する。より詳しくは、各区間に含まれる1以上の画像の中から、設定されたモードに対応するオブジェクトを含む画像のうち、最も得点の高い画像を1枚選択する。この際、個々の画像が設定されたモードに対応するオブジェクトを含む画像であるか否かの判定には、図5で説明したオブジェクト分類を利用することができる。例えば、オブジェクト分類のTOP3までに所望のオブジェクトが含まれている画像を、当該オブジェクトを含む画像であると判定することができる。
なお、図9(g)の斜線で示した領域のように、画像を1枚も含まない区間が存在する場合は、画像選択部1109は当該区間からの選択は行わない。また、以上では、各区間から画像を1枚ずつ選択するものとしたが、各区間から複数枚ずつ選択するようにしてもよい。
類似判定部1110は、区間ごとに選択された画像に対して、既に選択された画像との類似判定を行う。例えば、公知のパターンマッチングやSHIFT法を利用して類似度を取得し、類似度が判定閾値以上であれば、類似していると判定してその区間の選択画像を破棄する。一方、類似度が判定閾値未満の場合は、選択された画像を保持する。
判定閾値については、比較する画像の撮影時間差に応じて変更することが好ましい。例えば、類似判定結果が0~100のレンジで出力され100に近いほど類似度が高い場合、連写などにより撮影時間差が短い場合(例えば15秒以内)は判定閾値を60に設定し、それ以外は判定閾値を80に設定する。
統合部1111は、類似判定部1110で非類似と判定された各区間の画像から、最終的に残す画像を選別する。この際、統合部1111は、画像選択部1109で判定したのと同じ得点を用い、得点の高い画像を最終的に残す画像として選択する。但し本発明は、これに限定されるものではない。例えば、隣接する区間からは連続して画像が選択されないように、撮影日時のばらつきを重視して最終画像を選択するようにしてもよい。
画像管理部1112は、統合部1111で新たな画像が選択されるたびに、選択済みの画像の数をカウントし、枚数設定部1101で設定された必要枚数を超えていないかを判定する。必要枚数に到達した場合は画像選択処理を終了する。必要枚数に達成していない場合は、ループカウンタ1103をカウントアップし、上述した画像選択処理を再度実行する。
以上では説明のために、メインスロットとサブスロットで同じオブジェクトを含む画像を選択する例で説明したが、メイン画像とサブ画像で異なるオブジェクトを設定するようにしてもよい。この場合、例えば、ループカウントが1の時はメインスロット用の画像が選択されるため、ループカウントが1の時とそれ以外の時でオブジェクトを切り替えるようにすればよい。
図12は、図11で説明したソフトウェアブロック図で実行される、画像選択の工程を説明するためのフローチャートである。本フローチャートは、図4のS423において、CPU101が実行する画像選択のサブルーチンに相当する。本フローチャートにおいても、図4と同様、ハードウェア的にはCPU101がHDD104に格納されたプログラムをROM102やRAM103に読み出して実行することにより実現される。ソフトウェア的には、CPU101が図11の各ブロックを介して実行する処理となる。
S1201において、枚数設定部1101は、処理対象の見開きに割り当てられたサブ画像群に対し、選択する総画像枚数を設定する。
S1202において、画像群取得部1102は、画像取得部205が取得した画像データ群の画像データから、処理対象の見開きに割り当てられたサブ画像群(サブ画像データ群)に対応する画像データを取得する。
S1203において、モード設定部1108は、モードを設定する。
S1204において、ループカウンタ1103は、画像を選択する処理を実行した回数をカウントする。なお、ループカウンタ1103の初期値は0である。
S1205において、得点軸設定部1104は、利用する得点軸を設定する。本実施形態では、ループカウンタで管理されるカウンタ値に応じて、利用する得点軸を設定する。
S1206において、画像種類設定部1106は、選択する画像種類を設定する。ループカウントが0の場合、すなわち、選択回数が1回目の場合、画像種類設定部1106はSNS画像を選択する。ループカウントが1の場合、すなわち選択回数が2回目の場合、画像種類設定部1106は動画切り出し画像を選択する。
S1207において、分割部1105は、処理対象の見開きに割り当てられたサブ画像群の開始および終了撮影時間からサブ画像群の撮影期間を求め、ループカウンタ1103でカウントされた選択回数に基づいてサブ画像群の撮影期間を分割する。
S1208において、区間情報設定部1107は、取得したサブ画像群の画像データを、分割された区間ごとにグループ分けして、区間毎に各画像の撮影情報、各画像の得点を取得する。
S1209において、画像選択部1109は、分割部1105により分割された着目区間の画像が選択済みか否かを判定する。着目区間が選択済みの区間であれば、S1214へ進む。未選択の区間であれば、S1210に進む。なお、1回目のループでは、区間が分割されていないため、着目区間は1つである。
S1210において、画像選択部1109は、設定されたモードのオブジェクトを含む画像が着目区間内に含まれるか否かを判定する。設定されたモードのオブジェクトを含まない場合、S1214へ進む。設定されたモードのオブジェクトを含む場合は、S1211に進む。
S1211において、画像選択部1109は、得点軸設定部1104で設定された得点軸と、モード設定部で設定されたモードと、区間情報設定部1107で設定された画像の得点とに基づいて、着目区間から画像を1枚選択する。
S1212において、類似判定部1110は、画像選択部1109が選択した画像に対して、前カウンタで選択された選択画像との類似判定を行う。類似していないと判定した場合は、選択した画像を保持しS1214へ進む。類似していると判定した場合は、選択した画像の選択設定を解除し(S1213)、S1214へ進む。
S1214では、全ての区間について画像選択処理が実行されたかが判定される。そして、全区間に対して実行された場合は、S1215へ進む。まだ、選択処理を行う区間が残っている場合はS1208へ戻り、次の未選択区間に対してS1208~S1212の選択処理を実施する。
S1215において、統合部1111は、類似判定部1110で非類似と判定された各区間の画像から、最終的に残す画像を選別する。すなわち、S1209~S1214で2以上の画像が残った場合、残す画像を選別する。
S1216において、画像管理部1112は、選択済みの画像のカウント数を更新する。
S1217において、画像管理部1112は、現在選択済みの画像のカウント数のカウント数が、S1201で枚数設定部1101によって設定された必要枚数と一致しているかを判定する。必要枚数と総選択枚数が一致した場合は本処理を終了し、図4のS424に進む。一報、総選択枚数が必要枚数に及ばない場合は、S1218に進む。
S1218において、画像管理部1112は、S1203で設定されたモードについて、サブ画像群の全画像を判定したか否かを判定する。全画像を判定していない場合はS1204へ戻り、次の画像を選択するための処理を続行する。その際、ループカウンタ1103により管理されているカウンタを1アップする。このため、次にS1207に進むとき、サブ画像群は更に多くの(前回の2倍の)区間に分割される。結果、区間内における個々の画像の得点順位が変化するので、S1211において前回は選択されなかった画像が選択されるようになる。
一方、S1218において、全画像の判定が完了したと判断された場合は、S1219に進む。
S1219は、全画像の判定が完了しても、総選択枚数が必要枚数に満たない場合に進む工程である。よってこの場合、モード設定部1108は、アルバム作成条件指定部201で指定されたモードから別のモードへの切替えを行う。切替え先の新たなモードは、予め定めた優先順位に従って定めてもよいし、サブ画像群に含まれるオブジェクトに基づいて設定してもよい。
S1219にて切替え先の新たなモードが決定すると、S1203に戻り、モード設定部1108は、切替え先のモード設定を行う。以後、S1207で総選択枚数が必要枚数に達したと判定されるまで、S1204~S1219の処理を繰り返す。
再び図4に戻る。S424において、テンプレート設定部214は、S401で設定されたアルバム設定条件201に基づいて、HDD104より読み出された複数のテンプレートの中から、選択された画像をレイアウトするのに適したテンプレートを決定する。
図13は、S425における画像レイアウト決定工程を実現するためのソフトウェアブロック図である。このブロック図は、既に説明したソフトウェアブロックである図2の、画像レイアウト部215を更に詳細に示したものである。
選択画像情報取得部1301は、画像選択部213で選択された画像の枚数とそれら画像に関する情報を取得する。取得する画像情報は、画像の幅と高さ、撮影日時情報、画像得点部210により算出された得点である。
図13において、テンプレート選定部(スロット数)1302は、HDD104より読み出された複数のテンプレートの中から、選択した画像と同数のスロットを持つテンプレートを選定する。
選択画像ソート部1303は、選択された画像を撮影日時順にソートする。本実施形態では、一例として、左上から右下に向かって撮影日時が新しくなるように画像をレイアウトするためにこの情報を利用する。
テンプレート選定部(メイン画像位置)1304は、テンプレート選定部(スロット数)1302で選定されたテンプレート(例えば図10に示すような複数のテンプレート)の中から、テンプレートを選定する。より詳しくは、テンプレート選定部(メイン画像位置)1304は、選択画像ソート部1303がソートした日時順で画像を並べたときに、メインとなる画像がメインスロットの位置に該当するようなテンプレートを1つ以上選定する。この際、日時順に加え、メイン画像とメインスロットのアスペクト比も類似することも選定条件の1つとする。
テンプレート選定部(サブ画像位置)1305は、テンプレート選定部(メイン画像位置)1304で選定された1以上のテンプレートの内、撮影日時順に並べた場合にサブ画像とサブスロットのアスペクト比が類似するようなテンプレートを選定する。
図14は、図13で説明したソフトウェアブロック図で実行される、画像レイアウトの工程を説明するためのフローチャートである。本フローチャートは、図4のS425において、CPU101が実行する画像レイアウトのサブルーチンに相当する。本フローチャートにおいても、図4と同様、ハードウェア的にはCPU101がHDD104に格納されたプログラムをROM102やRAM103に読み出して実行することにより実現される。ソフトウェア的には、CPU101が図13の各ブロックを介して実行する処理となる。以下、図13を参照しながら図14のフローチャートの各工程を順番に説明する。
本処理が開始されると、まずS1401において、選択画像情報取得部1301は画像選択部213より選択された画像情報を取得する。一例として、ここでは選択された画像数が3であったとする。
S1402において、テンプレート選定部(スロット数)1302は、S1401で取得された選択画像数と同数のスロットを持つテンプレートを選定する。すなわち、スロット数が3のテンプレートが選択される。ここでは、例えば図10の(1-1)~(4-4)をが選択されたとする。
S1403において、選択画像ソート部1303は、選択画像を撮影時間順に並べる。ここでは、図10の下部に示すように、メイン画像1005、サブ画像1006、サブ画像1007の3つの画像が日時順にソートされたとする。
S1404において、テンプレート選定部(メイン画像位置)1304は、S1402で選定されたテンプレートと、S1403でソートされた選択画像を比較する。そして、メイン画像がメインスロットの位置に該当するようなテンプレートであって、メイン画像とメインスロットのアスペクト比が類似する1つ以上のテンプレートを選定する。3つの画像1005、1006、1007の場合、撮影日時が最も新しい画像1005がメイン画像であるため、図10(4-1)~(4-4)のテンプレートが選定される。
S1405において、テンプレート選定部(サブ画像位置)1305は、S1404で選定したテンプレートの中から、サブ画像について、サブスロットの位置とアスペクト比が一致するテンプレートを選択する。3つの画像1005、1006、1007の場合、、最も古い撮影日時を有するサブ画像1006が縦画像であり、次に古い撮影日時を有するサブ画像1007が横画像であるため、図10(4-1)~(4-4)のテンプレートの中から、(4-2)が選定される。
以上で、選択された画像のレイアウト処理は完了し、処理は図4に戻る。すなわち、図4のS425では、レイアウトに用いるテンプレートと、テンプレートのいずれのスロットにいずれの画像をレイアウトするかを識別できる情報が決定する。
図4の説明を続ける。S426において、画像補正部217は画像補正を実行する。本工程は、図3のチェックボックス308で画像補正がONに設定された場合のみ実行され、画像補正がOFFの場合はスルーされる。画像補正の種類としては、例えば、覆い焼き補正、赤目補正、コントラスト補正が挙げられる。これら補正は、sRGBのフォーマットの状態で行われる。
S427において、レイアウト情報出力部218は、レイアウト情報を作成する。すなわち、S423で選択された画像をS424で選定されたテンプレートに対し、S425で決定された情報に従って、レイアウトする。詳しくは、個々の画像を、対応するスロットに適合するように変倍し、当該スロットにレイアウトしたのち、ビットマップデータに変換する。なお、ここで用いる画像は、S407で生成した解析画像に対しS426で補正処理を施した後の画像である。
S428では、S423~S427の処理が全ての見開きについて完了したか否かを判定する。まだ処理すべき見開きが残っている場合(S428でNo)はS423に戻り、次の見開きについての処理を続行する。S423~S427の処理が全ての見開きについて完了した場合(S428でYes)は、自動レイアウト処理を終了する。以上説明した一連の処理により、アルバム作成アプリケーションの自動レイアウトが完了する。完了したレイアウト結果に基づき、用紙に印刷が行われ、アルバム(フォトブック)が生成される。
なお、以上ではユーザが表示画面301を用いて指定したモードに基づいて、画像の選択やグループ分けを行ったが、ユーザより提供された複数の画像を解析することによって、自動的にモードを設定するようにしてもよい。
<背景スロットを有するテンプレートに対するレイアウト処理>
本実施形態の自動レイアウト処理においては、個々のスロット(前景スロット)の後ろに背景スロットが設けられているテンプレートがある場合、この背景スロットにも選択画像を配置することができる。この際、選択画像を背景スロットに配置するか否かについては、ユーザが指定しても良いし、サブ画像群に基づいて見開きごとに自動的に判断しても良い。以下、選択画像を背景スロットに配置する場合の処理について詳しく説明する。
図15は、選択画像を背景スロットに配置する場合のソフトウェアブロック図である。本ブロック図は、図2の画像選択部213と画像レイアウト部215を合わせたものに相当する。
図15において、見開き画像取得部1501は、見開き割当部212で各見開きに割り当てられたサブ画像群を取得する。画像選択部1502は、見開きに割り当てられたサブ画像群より実際に見開きに表示する画像を選択する。選択方法は、図2において画像選択部213について説明した方法を採用しても良いし、別の方法を採用してもよい。
テンプレート取得部1503は、テンプレート設定部214で設定された1つ以上のテンプレートを取得する。テンプレートは、アルバムの見開き単位で管理され、画像を配置するスロットについて、数、幅、高さ、見開きにおける位置、スロット間の重なり順を示すレイヤー情報、テンプレート内でスロットを識別するためのスロット番号を保有している。
本実施形態においては、選択画像を背景として用いるための背景スロットを、テンプレートごとに用意する。この際、テンプレートのレイヤー情報が最下層を示すスロットを背景スロットとしてもよいし、特定のレイヤー情報が設定された場合に背景スロットが用意されてもよい。
前景画像配置部1504は、画像選択部1502で選択された画像を、テンプレート取得部1503で取得したテンプレートのスロットに基づいて前景画像として配置する。背景画像選択部1505は、画像選択部1502で選択された画像の一つを背景画像として選択する。すなわち、画像選択部1502で選択された画像の一つは、背景画像と前景画像の両方に選択される。
背景画像配置部1506は、背景画像選択部1505で選択された背景画像をテンプレート取得部1503で取得したテンプレートの背景スロット情報に基づいてレイアウトする。
レイアウト評価部1507は、前景画像配置部1504と背景画像配置部1506によって指定された見開きのレイアウト状態を評価する。前景画像配置部1504と背景画像配置部1506によって指定される見開きのレイアウトはテンプレートごとに異なるが、レイアウト評価部1507は、これらテンプレートのそれぞれに対応して評価値を算出する。評価値の算出方法は、後に詳しく説明する。
レイアウト判定部1508は、レイアウト評価部1507で算出された個々のテンプレートに対応する評価値を比較し、最終的に採用するレイアウトを決定する。
図16は、図15で説明したソフトウェアブロック図で実行される、選択画像の一つを背景画像としてレイアウトする場合のレイアウトの決定工程を説明するためのフローチャートである。本フローチャートは、図4のS425において、CPU101が実行する画像レイアウトのサブルーチンに相当する。本フローチャートにおいても、図4と同様、ハードウェア的にはCPU101がHDD104に格納されたプログラムをROM102やRAM103に読み出して実行することにより実現される。ソフトウェア的には、CPU101が図13の各ブロックを介して実行する処理となる。以下、図15を参照しながら図16のフローチャートの各工程を順番に説明する。
本処理が開始されると、まずS1601において、見開き画像取得部1501が、見開き割当部212で見開きに割り当てられたサブ画像群を取得する。S1602において、画像選択部1502は、S1601で取得されたサブ画像群より実際に見開きに表示する画像を選択する。選択方法は、図2の画像選択部213及び図9を用いて説明した方法を採用しても良いし、別の方法を採用してもよい。例えば、画像選択部1502は、1つの見開きに割り当てられた1つのサブ画像群に含まれるすべての画像を選択してもよい。これは、複数の画像の中から画像の得点に基づきレイアウトに使われる画像をアプリが自動で選択する方式ではなく、手動で画像選択する方式の場合に有効である。つまり、ユーザがレイアウトしてほしい画像を手動で選択し、その選択された画像を用いてアプリがレイアウトする方式の場合は、画像選択部1502は、1つのサブ画像群に含まれるすべての画像を選択するとよい。
S1603において、テンプレート取得部1503は、S424で設定されたテンプレートを取得する。S1604において、前景画像配置部1504は、S1602で選択された画像を、S1603で設定されたテンプレートの1つにレイアウトする。すなわち、処理対象のテンプレートが有する前景スロットに、S1602で選択された画像をレイアウトする。
S1605において、背景画像選択部1505は、現在処理対象となっているテンプレートに背景スロットが用意されているか否かを判定し、用意されていない場合はS1608に進む。一方、S1605において、背景スロットが用意されていると判定した場合、背景画像選択部1505は、S1606において、S1602で選択された画像の中の一つを背景画像として選択する。
図17は、S1606で背景画像選択部1505が実行する選択処理を説明するためのフローチャートである。S1701において、背景画像選択部1505は、S1602で選択された画像の中の一つを背景候補画像として取り出し、当該画像について画像スコアを評価する。具体的には、例えば、S416で取得した得点を画像スコアとし、これを所定の閾値と比較して0または100の画像スコア評価値Esを得る。
S1702において、背景画像選択部1505は、アスペクト比評価を行う。具体的には、背景候補画像のアスペクト比と背景スロットすなわちアルバム見開き面のアスペクト比を比較し、アスペクト評価値Eaを算出する。アスペクト評価値Eaは、アスペクト比の類似度が高いほど高得点になる値であり、完全に一致している場合は100となる。本実施形態では、アスペクト比が背景スロットと一致していない画像であっても、画像の一部をトリミングして背景スロットに適合可能になっている。但し、アスペクト比の差が大きいほど背景スロットに適合させる際の拡大率も大きくなり、結果として表示画像の解像度が低くなってしまう。よって、本実施形態ではアスペクト比の類似度が高いほど高得点になるようにしている。
S1703において、背景画像選択部1505は、画像サイズ評価を行う。具体的には、幅方向および高さ方向において所定以上の大きさを有しているかについてのサイズ評価値Elを求める。本実施形態では、幅もしくは高さのうち短い方の大きさが所定値以上であればサイズ評価値Elを100、所定サイズ未満の場合はサイズ評価値Elを0とする。背景候補画像のサイズがあまりにも小さいと、背景スロットに適合させた際の拡大率も大きくなり、結果として表示画像の解像度が低くなってしまうため、本実施形態では、このようなサイズ評価値Elを用意している。
S1704において、背景画像選択部1505は、S1701で求めた画像スコア評価値Es、S1702で求めたアスペクト比評価値Ea、およびS1703で求めたサイズ評価値Elを用いて、総合的な評価値となる背景背景画像評価値Ebを算出する。本実施形態では、画像スコア評価値Esについての重み付け係数Ws、アスペクト比評価値Eaについての重み付け係数Wa、サイズ評価値Elについての重み付け係数Wlを用意し、下式に従って背景画像評価値Ebを算出する。
Eb= Ws×Es + Wa×Ea + Wl×El
この際、重み付け係数Ws、Wa、Wlは、個々の評価値の優先度に応じて適切に調整されればよい。例えば、アルバムの用紙が写真光沢紙のように、解像度の粗さが目立ち易い媒体の場合は、トリミングおよび拡大処理による解像度低下を抑えるために、WaやWlをWsよりも大きくしても良い。
S1705において、背景画像選択部1505は、S1602で選択された画像の全てについて、背景画像評価値Ebが得られたか否かを判定する。得られている場合はS1706に進む。一方、背景画像評価値Ebが求められていない背景候補画像がまだ残っている場合は、次の背景候補画像についての評価処理を行うためにS1701に戻る。
S1706において、背景画像選択部1505は、全ての背景候補画像の背景画像評価値Ebを比較し、最大の背景画像評価値Ebを有する背景候補画像を、背景スロットに対応させるべき背景画像として決定する。以上で本処理は終了する。
なお、以上では画像スコア評価値Es、アスペクト比評価値Ea、およびサイズ評価値Elの3つを背景画像評価値Ebを求めるための評価値として採用したが、評価値の種類すなわち評価項目はこれらに限定されるものではない。例えば、人物の顔など主要被写体が含まれている画像よりも、主要被写体が含まれていない風景画像などが優先的に選定されるようにしてもよい。更に、主要被写体が含まれている同じような画像であっても、主人公が含まれない画像が優先的に選定されるようにしてもよい。
図16のフローチャートに戻る。S1606で背景画像が選択されると、背景画像配置部1506は、S1606で選択された背景画像を処理対象テンプレートの背景スロット情報に基づいて配置する。
S1608において、レイアウト評価部1507は、処理対象テンプレートで作成したレイアウトに対してレイアウト評価値を算出する。レイアウト評価値を算出するための評価要素としては、処理対象テンプレートに含まれる全スロットにおける画像とスロットのアスペクト比の類似度、画像が配列する順番と撮影日時の整合性、などが挙げられる。また、主被写体が他のスロットに重複されているか否かや、主被写体が見開きの製本時の綴じ部に位置していないかなども、評価要素として採用可能である。
S1609では、S1603で取得された全てのテンプレートについてレイアウト評価値が得られたか否かを判定する。全てのテンプレートについてレイアウト評価値が得られている場合はS1610に進む。一方、レイアウト評価値が求められていないテンプレートがまだ残っている場合は、次のテンプレートについての評価処理を行うためにS1604に戻る。
S1610において、レイアウト判定部1508は、S1603で取得された全てのテンプレートのレイアウト評価値を比較し、最大の評価値を有するテンプレートを、S1601で取得された見開き画像のテンプレート(レイアウト)として決定する。以上で本処理は終了する。
図21(a)および(b)は、以上説明したレイアウト決定処理の具体例を示す図である。図21(a)は、画像選択部1502によって選択された第1の画像2104および第2の画像2105を示し、図21(b)は処理対象となっているテンプレートを示している。
図21(a)において、第1の画像2106は横画像であり第2の画像2107は縦画像である。また、本例において第1の画像の方が撮影日時が早く、S416で算出される得点も高いものとする。
図21(b)に示す本例のテンプレートにおいては、レイアウト領域2101のほぼ一面に背景スロット2103が配され、背景スロット2103の一部の前面に、第1の前面スロット2104と第2の前面スロット2105が配されている。背景スロット2103の一部は、第1の前面スロット2104および第2の前面スロット2105によって覆われ、領域の一部が見えなくなっている。また、第2の前景スロット2105の一部も、第1の前景スロット2104によって覆われ、領域の一部が見えなくなっている。なお、レイアウト領域2101の中央には、アルバムの綴じ部2102が位置している。
このような状況のもと、背景画像選択部1505は、図17で示したフローチャートに従って、第1の画像2106と第2の画像2107より背景画像を選択する。本例において、画像スコア評価値Esとサイズ評価値Elについては、第1の画像2106と第2の画像2107で同等とする。一方、アスペクト評価値Eaについては、横画像である第1の画像2106のほうが、縦画像である第2の画像2107よりも高い。このため、S1704で算出される背景画像評価値Ebについては、第1の画像2106のほうが第2の画像2107よりも高くなる。結果、背景画像選択部1505は第1の画像を背景画像として選択し、背景画像配置部1506は、第1の画像2106の形状とサイズを調整し、背景スロットにレイアウトする。
前景画像配置部1504は、第1の画像2106と第1の画像2107を、テンプレートの第1の前景スロット2104と第2の前景スロット2105のそれぞれに配置する。詳細は省略するが、前景スロットと画像の対応づけはアスペクト比や撮影時間の順番に基づいて決定され、本例においては第1の前景スロット2104に第1の画像2106がレイアウトされ、第2の前景スロット2105に第2の画像2107がレイアウトされる。
上記レイアウトによれば、第1の画像2106は、背景スロット2103と前景スロット2104の両方にレイアウトされる。すなわち、背景スロット2103において、第1の前面スロット2104および第2の前面スロット2105によって覆われてしまう領域の画像情報も、第1の前面スロット2104において表示される。このため、出来上がったアルバムを観賞したときに、ユーザが背景スロット2103における画像の欠落を感じることがない。よって、ユーザの満足度が向上し、且つ違和感を覚えることがなく、個性的なデザインとして認識することができるようになる。
また、本実施形態のように、前景スロット2104と同じ画像が背景スロット2103に表示されている状況においては、背景スロット2103に対し、更に様々なエフェクト処理を施すことができる。例えば図21(b)に示すように、左右方向にグラデーションをかけることができる。また、カラー画像をモノクロームやセピア色に変換したり、ぼかしフィルタやモザイク処理などを施したりすることもできる。どのようなエフェクト処理を施したとしても、背景画像が有する画像情報は前景画像によって明確に表示されるので、ユーザは違和感を覚えることがなく、デザインを楽しむことが出来る。言い換えると、前景画像として表示されている画像の一つを背景画像として表示することにより、背景画像のデザインの幅を更に広げることができる。
このようなエフェクト処理の有無や種類に関しては、ユーザが指定しても良いし選択された画像から自動的に判断されてもよい。例えば、背景画像の輝度レンジが広ければ背景画像をモノクロ化して、前景画像を引き立てるようにしてもよい。また、背景画像として選択された画像のサイズが小さく、背景スロットのサイズに拡大した場合に解像度の低下に伴う画像の乱れが懸念される場合は、画像全体にぼかし処理を施すことも有効である。また、背景画像に主要被写体が含まれる場合は、グラデーション処理の開始位置が主要被写体から外れるようにすることが好ましい。
以上説明したように、本実施形態によれば、ユーザより提供された画像を用いてアルバムを作成する場合に、ユーザに違和感を与えることなく背景画像と前景画像をレイアウトすることができる。
(第2の実施形態)
第1の実施形態においては、見開きのほぼ全域が背景スロットが占める領域であった。つまり、見開きのページをまたがって背景スロットが設けられていた。しかしながら、例えば、見開きの中央に位置する綴じ部を避けて、背景スロットも前景スロットも見開きの左右、すなわち異なるページにレイアウトされる場合もある。このような場合、複数の前景スロットにおいては、背景スロットに重複してレイアウトされるものもあれば、背景スロットに重複することなくレイアウトされるものもある。本実施形態では、このような背景スロットと前景スロットの重複の関係に基づいて、複数の画像から背景画像を選択する。
図18は、本実施形態において、選択画像の一つを背景画像としてレイアウトする場合のソフトウェアブロック図である。第1の実施形態で説明した図15のブロック図に対し、重複領域設定部1801が更に追加されている。また、背景画像選択部1802の処理内容が変更されている。
重複領域設定部1801は、テンプレート取得部1503で取得されたテンプレート情報を解析することにより、見開き平面における背景スロットと前景スロットの重複領域情報を設定する。背景画像選択部1802の処理内容については、後に詳しく説明する。重複領域設定部1801および背景画像選択部1802以外の構成は図15で説明したものと同等であるため、ここでの説明は省略する。
図19は、図18で説明した本実施形態のソフトウェアブロック図で実行される、レイアウトの決定工程を説明するためのフローチャートである。第1の実施形態で説明した図16のフローチャートに対し、S1901が追加され、S1902の背景画像選択工程が変更されている。重複領域設定部1801が更に追加されている。以下、本実施形態の特徴的な工程についてのみ図18のブロック図を参照しながら説明する。
S1901において、重複領域設定部1801は、テンプレート取得部1503で取得されたテンプレートの情報を解析することにより、見開き平面における背景スロットと前景スロットの重複領域情報を設定する。具体的には、テンプレート情報より個々のスロットの位置、幅、高さの情報を取得し、背景スロットに重なる前景スロットを特定する。この際、テンプレート情報に前景スロットの中心座標が含まれている場合は、背景スロットに重なるか否かをその座標に基づいて判断することもできる。テンプレート情報に前景スロットの中心座標が含まれていない場合は、前景スロットの幅や高さから背景スロットに重なるか否かを判断すればよい。
S1902において、背景画像選択部1802は、S1502で選択された画像の中の一つを背景画像として選択する。
図20は、図19のS1902で背景画像選択部1802が実行する選択処理を説明するためのフローチャートである。本処理が開始されると、背景画像選択部1802は、まず、S2001において、S1901で重複領域設定部1801が設定した重複領域情報を取得する。
S2002において、背景画像選択部1802は、S1604で前景スロットに配置されている画像の中の一つを背景候補画像として取り出す。そして、S2001で取得した重複領域情報を参照しながら、当該画像がレイアウトされている前景スロットが、背景スロットと重複するか否かを判定する。重複すると判定した場合、当該画像に対して背景画像としての更なる評価を行うために、S1701に進む。
一方、S2002において、現在の背景候補画像がレイアウトされている前景スロットは背景スロットと重複しないと判定した場合、背景画像選択部1802は、当該画像を背景の候補から外してS1705に進み、次の背景候補画像についての評価に移る。なお、S1701以降の工程については、既に第1の実施形態において図17を用いて説明した工程と同様であるため、ここでの説明は省略する。
また、図19のフローチャートにおいて、S1902で背景画像が選択された後の工程は、既に第1の実施形態において図16を用いて説明した工程と同様であるため、ここでの説明は省略する。
このように、本実施形態によれば、選択された複数の画像のうち、背景スロットの前面に重複してレイアウトされる前景スロットにレイアウトされる画像のみが、背景スロットにレイアウト可能な画像の候補になる。
図22(a)および(b)は、本実施形態におけるレイアウト決定処理の具体例を示す図である。図22(a)は、画像選択部1502によって選択された第1の画像2207、第2の画像2208、および第3の画像2209を示し、図22(b)は処理対象となっているテンプレートを示している。
図22(a)において、第1の画像2207は縦画像であり第2の画像2208は縦画像であり、第3の画像2209は横画像である。また、本例において第1の画像2207、第2の画像2208、第3の画像2209の順に撮影日時が早く、S416で算出される得点も高いものとする。
図22(b)に示す本例のテンプレートにおいては、レイアウト領域2101の綴じ部2202を挟んだ片面のほぼ全域に背景スロット2203が配され、もう片面の全域に第1の前景スロット2204が配されている。また、背景スロット2203の前面には、第2の前面スロット2205と第3の前面スロット2206が配されている。このため、背景スロット2203の一部は、第2の前面スロット2205および第3の前面スロット2206によって覆われ、その領域の画像が見えなくなっている。
このような状況のもと、図19のS1604において、前景画像配置部1504は、処理対象のテンプレートが有する前景スロットにS1602で選択された画像(2207、2208、2209)をレイアウトする。詳細は省略するが、前景スロットと画像の対応づけはアスペクト比や撮影時間の順番に基づいて決定される。本例においては、第1の前景スロット2204に第1の画像2207が、第2の前景スロット2205に第2の画像2208が、第3の前景スロット2206に第3の画像2209がレイアウトされたとする。
また、図19のS1901において、重複領域設定部1801は、個々のテンプレートについて、見開きにおける背景スロットと前景スロットの重複領域情報を設定する。図22(b)に示すテンプレートについては、第1の前景スロット2204は背景スロット2203に重複しておらず、第2の前景スロット2205と第3の前景スロット2206が背景スロット2203に重複しているという情報が設定される。
一方、図20のS2001において、背景画像選択部1802は、重複領域設定部1801が設定した重複領域情報を取得する。そして、背景画像選択部1802は、この情報を参照しながらS2002~S1705の工程を個々の背景候補画像について繰り替えす。
図22(b)に示すテンプレートの場合、第1の画像2207がレイアウトされた第1の前景スロット2204は背景スロット2203と重複しないため、S2002において背景候補画像から外される。一方、第2の画像2207がレイアウトされた第2の前景スロット2205と、第3の画像2209がレイアウトされた第3の前景スロット2206は背景スロット2203と重複している。このため、これら画像については背景候補画像として、S1701~S1704の背景画像評価値が算出される。
S1706において、背景画像選択部1802は、第2の画像2208と第3の画像2209の背景画像評価値Ebを比較してどちらか一方の画像を背景画像に決定する。
本例において、画像スコア評価値Esとサイズ評価値Elについては、第2の画像2208と第3の画像2209で同等とする。一方、アスペクト評価値Eaについては、縦画像である第2の画像2208の方が、横画像である第3の画像2209よりも高い。このため、S1704で算出される背景画像評価値Ebについては、第2の画像2208の方が第3の画像2209よりも高くなる。結果、本実施形態の背景画像選択部1802は第2の画像を背景画像として選択し、背景画像配置部1506は、第2の画像2208の形状とサイズを調整し、背景スロット2203にレイアウトする。
上記レイアウトによれば、第2の画像2208は、背景スロット2203と前景スロット2205の両方にレイアウトされる。すなわち、背景スロット2203において、第2の前面スロット2205および第3の前面スロット2206によって覆われてしまう領域の画像情報も、その前面に配置される第2の前面スロット2205において表示される。このため、出来上がったアルバムを観賞したときに、ユーザが背景スロット2203における画像の欠落に違和感を覚えることがなく、個性的なデザインとして認識することができるようになる。なお、本実施形態においても背景スロット2203に対し、様々なエフェクト処理を施すことができる。
ところで、以上では、S1604で個々の前景スロットにレイアウトする画像を決定した後に、その結果に基づいて、S1902で背景スロットにレイアウトする画像を決定した。しかしながら、このような工程の順番は逆転させることもできる。すなわち、背景画像に最も適した画像を複数の画像の中から選択した後、その画像を、複数の前景スロットのうち、背景スロットに重複する前景スロットにレイアウトすればよい。このような順番であっても、背景スロットとこれに重複する前景スロットに同一の画像をレイアウトすることができ、ユーザが観察した際に違和感の無いアルバムを提供することができる。
(他の実施形態)
以上の実施形態では、背景スロットも前景スロットも、ユーザが提供した画像の中から自動的にレイアウトされる内容で説明したが、本発明はこれに限定されない。背景スロットにレイアウトする画像や、前景スロットの一部にレイアウトする画像をユーザが選択した場合であっても、背景スロットとこれに重複する前景スロットで同一の画像が自動的にレイアウトされれば本発明の範疇である。また、1つの背景スロットに重複する前景スロットの数は1つであっても構わない。いずれにせよ、背景スロットとこれに重複する前景スロットで同一の画像が自動的にレイアウトされれば、上記実施形態と同様の効果を得ることができる。
レイアウトする画像は、撮影された写真画像に限定されず、例えば、ユーザがアプリケーション上で作成したイラストや画像であっても良い。この際、S412のシーン分割や、サブ画像群を生成するためのグループ化は、画像データの作成日時を基準に行うことができる。
また、上記実施形態では、アルバム作成アプリケーションをインストールした画像処理装置を例に説明したが、本発明はこのような形態に限定されるものでもない。お勧め画像を自動選択するような画像選択処理を備えるアプリケーションや画像処理装置であってもよい。
また、図1では、ローカル環境を想定した画像処理装置を例に挙げて説明したが、画像処理装置はこれに限定されるものではない。本発明の画像処理装置は、例えば、ネットワークで接続され、クライアントから提供された画像データに基づいてアルバム作成サービスを提供するサーバとすることもできる。
更に、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。また、プログラムは、1つのコンピュータで実行させても、複数のコンピュータを連動させて実行させるようにしてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、一部または全部をハードウェアによって実現するようにしてもよい。