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