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