以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の1つである。
[第1の実施形態]
本実施形態では、画像処理装置の一例について説明する。この画像処理装置は、画像群から、アルバムの表紙にレイアウトする表紙画像を、第1の選択条件に基づいて選択する(第1の選択)。また、この画像処理装置は、画像群から、アルバムの裏表紙にレイアウトする裏表紙画像を、第1の選択条件とは異なる第2の選択条件に基づいて選択する(第2の選択)。そしてこの画像処理装置は、表紙画像を表紙にレイアウトし、裏表紙画像を裏表紙にレイアウトしたアルバムを生成する。
以下では、電子アルバム(フォトアルバム)の表紙及び裏表紙、並びに本身の各ページに画像を自動的にレイアウトするアプリケーションソフトウェアを画像処理装置において実行するケースについて説明する。
先ず、本実施形態に係る画像処理装置100のハードウェア構成例について、図1のブロック図を用いて説明する。CPU101は、ROM102やRAM103に格納されているコンピュータプログラムやデータを用いて処理を実行する。これによりCPU101は、画像処理装置100全体の動作制御を行うと共に、画像処理装置100が行うものとして後述する表示制御を含む各処理を実行若しくは制御する。なお、CPU101は単数であっても良いし複数であっても良い。ROM102には、書き換え不要な本装置の設定データや、書き換え不要の本装置のコンピュータプログラム(ブートプログラムなど)が格納されている。
RAM103は、HDD(ハードディスクドライブ装置)104やROM102からロードされたコンピュータプログラムやデータ、データ通信装置108を介して外部から受信したデータを格納するためのエリアを有する。更にRAM103は、CPU101が各種の処理を実行する際に用いるワークエリアを有する。このようにRAM103は、各種のエリアを適宜提供することができる。
HDD104は、大容量情報記憶装置の一例である。HDD104には、OS(オペレーティングシステム)や、画像処理装置100が行うものとして後述する各処理をCPU101に実行若しくは制御させるためのコンピュータプログラムやデータが保存されている。このコンピュータプログラムには、上記のアプリケーションソフトウェアが含まれている。なお、アプリケーションソフトウェアは、例えば、外部装置からダウンロードして、HDD104等に保存される。また、このデータには、以下の説明において予め作成されているもの(既知の情報)として登場する情報が含まれている。HDD104に保存されているコンピュータプログラムやデータは、CPU101による制御に従ってRAM103にロードされ、CPU101による処理対象となる。
ディスプレイ105は、表示部の一例であり、CPU101による処理結果を画像や文字などでもって表示する。キーボード106及びマウス107は、ユーザインターフェースの一例であり、ユーザが操作することで各種の指示をCPU101に対して入力することができる。なお、ディスプレイ105、キーボード106、マウス107の代わりにタッチパネル画面を用いても構わない。
データ通信装置108は、外部機器とのデータ通信を行うためのものである。例えば、データ通信装置108は、インターネットやLANを介して端末装置、プリンタ、複合機との間のデータ通信を行う。
CPU101、ROM102、RAM103、HDD104、ディスプレイ105、キーボード106、マウス107、データ通信装置108は何れも、バス109に接続されている。なお、上述したような構成の画像処理装置100には、例えば、PC(パーソナルコンピュータ)、タブレット端末装置、スマートフォン等を適用することができる。
次に、上記のアプリケーションソフトウェアにおいて、後述する自動レイアウト機能に係る機能部について、図2のブロック図を用いて説明する。このアプリケーションソフトウェアは様々な機能を持つが、図2では、特に自動レイアウト機能に係る機能部を示している。図2に示す如く、アプリケーションソフトウェアは、指定部201と、自動レイアウト処理部218と、を含む。自動レイアウト機能は、撮像された複数の写真から所定枚数の写真を選択してレイアウトし、ディスプレイ105に表示する、フォトアルバム作成用の機能である。
図2に示す如く、自動レイアウト処理部218は、複数の機能部により構成されており、該複数の機能部によって自動レイアウト処理部218の機能が実現される。なお、図2では、指定部201は自動レイアウト処理部218とは別個の機能部として示しているが、指定部201は自動レイアウト処理部218内に含めても構わない。
このアプリケーションソフトウェアは、例えば、ディスプレイ105に表示されているアプリケーションのアイコンがユーザによりマウス107を使ってダブルクリックされることにより起動する。
なお、以降の説明では、図2に示した機能部を処理の主体として説明する場合があるが、実際には、該機能部に対応するコンピュータプログラムをCPU101が実行することで該機能部の機能が実現される。
また、後述するそれぞれの機能部の機能は、その一部若しくは全部を他の機能部に任せても構わないし、他の機能部と協調動作を行うことで実現させるようにしても構わない。つまり、複数の機能部によって自動レイアウト処理部218の機能が実現されるのであれば、個々の機能部がどのような動作を行うのかについては特定の形態に限らない。
指定部201は、「フォトアルバムの作成条件を構成する様々な情報」を取得し、該取得した情報を自動レイアウト処理部218に供給する。「フォトアルバムの作成条件を構成する様々な情報」は、例えば、ユーザがキーボード106やマウス107を操作して、ディスプレイ105に表示されたGUI(グラフィカルユーザインターフェース)上で設定した情報である。ユーザがGUI上でこれらの情報の設定を行った後で完了指示を入力すると、指定部201は、該GUI上で設定された「フォトアルバムの作成条件を構成する様々な情報」を取得する。もちろん、予めGUI上で作成してHDD104に保存した「フォトアルバムの作成条件を構成する様々な情報」を指定部201がHDD104から取得するようにしても構わない。設定される条件には、たとえば対象となる画像や主人公のID、アルバムの見開き数、テンプレート情報、画像補正のON/OFF条件等の指定が含まれる。画像の指定は、たとえば撮像日時など個別の画像の付随情報や属性情報による指定であってもよいし、デバイスやディレクトリの指定など、画像を含むファイルシステムの構造に基づく指定であってもよい。なお、本実施形態において、「見開き」とは、たとえば表示においてはひとつの表示用ウィンドウに相当し、印刷においては、異なるシートに印刷された、互いに隣接する1対のページに相当する。
画像取得部202は、HDD104から撮像画像データ群(1つのフォトアルバムを作成する際に各ページにレイアウトする候補となる撮像画像データ群)を読み出す。なお、指定部201が取得した情報の中に、画像取得部202が読み出す撮像画像データの条件が含まれているような場合には、画像取得部202は、この条件に従った撮像画像データをHDD104から読み出す。例えば、指定部201が取得した情報の中に「撮像日時がXX年1月1日〜XX年12月31日の撮像画像」という条件が含まれていたとする。この場合、画像取得部202は、XX年1月1日〜XX年12月31日の期間内の撮像日時の撮像画像データ(例えば、この期間内の撮像日時を示す付加情報が添付された撮像画像データ)をHDD104から読み出す。
HDD104に保存されている撮像画像データとしては、静止画像データや、動画から切り出された切り出し画像データが挙げられる。静止画像データや切り出し画像は、デジタルカメラやスマートデバイス等の撮像デバイスから取得したものである。撮像デバイスは、画像処理装置100が備えていてもよいし、外部装置が備えるものであってもよい。なお、撮像デバイスが外部装置である場合は、画像データはデータ通信装置108を介して取得する。また、静止画像データや切り出し画像データは、データ通信装置108を介してネットワークやサーバから取得した画像データであってもよい。ネットワークやサーバから取得した画像データとしては、ソーシャルネットワーキングサービス画像データ(以下、「SNS画像データ」という)が挙げられる。CPU101は、各画像データに対して、該画像データに付随したデータを解析して保存元を判定する。SNS画像データは、アプリケーションソフトウェアを介してSNSから取得され、アプリケーションソフトウェアによる管理の下でその取得先を管理してもよい。画像データは、上述した画像データに限定されるものではなく、他の種類の画像データであってもよい。
画像変換部203は、画像取得部202が取得したそれぞれの撮像画像データについて、該撮像画像データの縮小画像データ(例えば短辺が420画素のサイズを有し、且つ各画素がsRGBの色情報を有する)を、解析画像データとして生成する。
画像解析部204は画像変換部203が生成したそれぞれの解析画像データに対し、特徴量抽出、顔認識、個人認識、表情認識等の解析処理を行う。また、画像解析部204は、該解析画像の生成元である撮像画像データの付帯情報(例えばExif情報)から該撮像画像データの撮像日時を取得する。
画像分類部205は、画像取得部202が取得した撮像画像データ群を、画像解析部204による解析処理の結果及び撮像日時等に基づいて複数のシーンに分割(シーン分類)する。シーンとは、旅行や日常、結婚式等の撮像シーンのことである。シーンとは、例えば、一つの撮像対象について一時期の撮像機会に撮像された画像データの集まりであるということもできる。
入力部206は、指定部201が取得した情報のうち、主人公を特定する情報(例えば、主人公の識別情報)を取得する。
画像得点部207は、画像取得部202が取得したそれぞれの撮像画像データに対して得点を求める。画像得点部207による得点の求め方については後述するとおりであるが、その際に用いる情報は下記の情報に限るものではない。
入力部208は、指定部201が取得した情報のうち、フォトアルバムの見開きの数を取得する。
見開き割当部209は、画像分類部205によって分類されたそれぞれのグループ若しくは該それぞれのグループに基づいて再編成されたそれぞれのグループ、をフォトアルバムのそれぞれの見開きに割り当てる。ここでいう見開きとは、例えば、フォトアルバムを作成した際の見開き2ページである。ここでは見開きで説明するがページでもよい。
選択部210は、見開きごとに、該見開きに割り当てたグループ内のそれぞれの撮像画像データについて画像得点部207が求めた得点に基づいて、該それぞれの撮像画像データのうち該見開きにおける写真スロットに配置するための撮像画像データを選択する。なお、写真スロットに配置される画像は、撮像画像データに基づく撮像画像である。以下、撮像画像データに基づく画像を「撮像画像」という。
入力部211は、指定部201が取得した情報のうち、表紙用のテンプレート群、本身用のテンプレート群、を取得する。表紙用のテンプレート群とは、表紙及び裏表紙のレイアウト(表紙内のそれぞれの写真スロットのレイアウト及び裏表紙内のそれぞれの写真スロットのレイアウト)を表すテンプレート群である。本身用のテンプレート群とは、本身内の各見開きのレイアウト(見開き内のそれぞれの写真スロットのレイアウト)を表すテンプレート群である。ここでいうところのテンプレートとは、表紙の見開きページ(表紙のページ及び裏表紙のページ)のテンプレート、本身の見開きのページのテンプレートである。
レイアウト部212は、入力部211が入力したそれぞれのテンプレートのうち、選択部210が選択した撮像画像データに基づいて1つのテンプレートを選択すると共に撮像画像データのテンプレートにおける配置を決定する。
入力部213は、指定部201が取得した情報のうち、撮像画像に対する画像補正を実施するか否かを示すフラグ値を取得する。画像補正のオンまたはオフは、補正の種類ごとに指定されてもよいし、全ての種類についてまとめて指定されてもよい。
画像補正部214は、入力部213が取得したフラグ値が、画像補正を実施することを示す値である場合には、撮像画像に対して、覆い焼き補正、赤目補正、コントラスト補正等の補正処理を施す。もちろん、画像補正部214は、入力部213が取得したフラグ値が、画像補正を実施しないことを示す値である場合には、補正処理は実行しない。
なお、画像変換部203から画像補正部214に入力する画像データの画素数は、レイアウト部212で決定したレイアウト画像データのサイズに合わせて変えることができる。本実施形態では、レイアウト画像データを生成した後に、各画像に画像補正を行うものとしたが、これに限定されず、レイアウト(配置)する前に、各画像の補正を行うようにしてもよい。
出力部215は、レイアウト部212が選択したテンプレート上のそれぞれの写真スロットに、該写真スロットに割り当てられた撮像画像データを、該写真スロットのサイズにリサイズして配置したレイアウト画像データ(本身の画像データ)を生成する。また、出力部215は、レイアウト部217が選択したテンプレート上のそれぞれの写真スロットに、該写真スロットに割り当てられた撮像画像データを、該写真スロットのサイズにリサイズして配置した画像データ(表紙/裏表紙の画像データ)を生成する。なお、このレイアウト画像データは、テンプレートに画像データを配置することで得られる一体化された画像データであり、例えば、ビットマップデータである。そして出力部215は、生成したレイアウト画像をレイアウト情報として出力する。
選択部216は、画像取得部202が取得したそれぞれの撮像画像データについて画像得点部207が求めた得点に基づいて、該それぞれの撮像画像データのうち表紙、裏表紙における写真スロットに配置する撮像画像データを選択する。
レイアウト部217は、入力部211が入力したそれぞれのテンプレートのうち、選択部216が選択した撮像画像データに基づいて1つの表紙用のテンプレートを選択すると共に撮像画像データのテンプレートにおける配置を決定する。
なお上記の説明では、画像補正や写真スロットに配置する対象となる画像は撮像画像であったが、該撮像画像から生成した解析画像であっても構わない。もちろん、撮像画像から生成した他の画像であっても構わない。これは、撮像画像を取り扱う他の処理であっても同様であり、撮像画像の代わりに解析画像など他の画像を使用しても構わない。
ここで、上記の「フォトアルバムの作成条件を構成する様々な情報」を画像処理装置100に入力するためのGUIの構成例について、図3を用いて説明する。このGUI301は、例えば、ディスプレイ105に表示されているアプリケーションのアイコンがユーザによりマウス107を使ってダブルクリックされることにより起動してディスプレイ105の表示画面に表示される。なお、図3のGUI301を含め、後述する全てのGUIへのユーザ入力に応じて行われる処理は何れも、CPU101によって実行若しくは制御される。
パスボックス302は、フォトアルバムにレイアウトする候補となる撮像画像群が保存されているHDD104内のフォルダのパスを入力するためのもので、例えばユーザがキーボード106を操作してパスを入力することができる。なお、ユーザがキーボード106やマウス107を操作してフォルダ選択ボタン303を指示すると、HDD104内のフォルダ/データのツリー構造が表示されたウィンドウが別途ディスプレイ105に表示される。このウィンドウ上でユーザがキーボード106やマウス107を操作して所望のフォルダを指定すると、そのフォルダのパスがパスボックス302内に表示される。このように、パスボックス302、フォルダ選択ボタン303の何れかにより、フォトアルバムにレイアウトする候補となる撮像画像群を指定することができる。
領域304内には、様々な人の顔画像が一覧表示されており、ユーザはキーボード106やマウス107を操作して何れか1つの顔画像を指定することができる。領域304内に表示されているそれぞれの顔画像は、撮像画像から抽出され、顔画像(人物)ごとに固有の識別情報と関連づけてHDD104に登録されているものである。ユーザがキーボード106やマウス107を操作して何れか1つの顔画像を指定すると、該指定された顔画像に対応する識別情報が、主人公の識別情報(主人公ID)としてHDD104に登録される。なお、主人公の識別情報の指定方法はこのように手動であっても良いし、後述するように、画像の解析結果に応じて指定しても良い。
見開き数ボックス305は、フォトアルバムにおける見開き数を入力するためのもので、例えばユーザがキーボード106やマウス107を操作して見開き数を入力することができる。なお、見開き数の入力方法はこれに限定されず、例えば、数値が並んだリストを表示させてそこから見開き数としての所望の数値をユーザがキーボード106やマウス107を操作して指定しても良い。
領域306内には、テンプレートのテイスト(ポップ調やシック調等)が分かるイラスト画像がアイコンとして一覧表示されており、ユーザはキーボード106やマウス107を操作して任意のアイコンを指定することができる。本実施形態では、各テイストには、それぞれ1又は2以上のテンプレートが割当てられており、1つのテイストが選択されると、そのテイストに割当てられた全てのテンプレートが設定される。そして、後述するように、設定されたテンプレートの中から選択された画像に最も合致したテンプレートを選択する。このように1つのアイコンを指定することで、表紙用のテンプレートと、本身用のテンプレート(見開き数分のテンプレート)と、を選択することができる。なお、ユーザは領域304の複数のアイコンを指定することで、表紙、本身のそれぞれについて複数のテンプレートを候補として指定するようにしてもよい。後述する図4のフローチャートに従った処理では、ユーザが1つのテイストを選択することにより、表紙用のテンプレート群、本身用のテンプレート群が選択されたものとして説明している。本実施形態では、テンプレートとは、画像を配置するための画像配置枠(写真スロット)を1以上有する。
チェックボックス307は、画像補正のON/OFFを指定するためのもので、ユーザがキーボード106やマウス107を操作してチェックボックス307をオン(チェックを入れる)/オフ(チェックを外す)することができる。チェックボックス307をオンにすると、画像補正をONにすることが設定され、オフにすると、画像補正をOFFにすることが設定される。なお、画像補正のON/OFFを設定する方法はこれに限らない。また、画像補正の種類毎にチェックボックスを設けるようにしても構わない。
ラジオボタン310は、作成するフォトアルバムの商材を選択するためのものでる。ユーザがキーボード106やマウス107を操作して、上側のラジオボタンを指定すると、商材としてA4サイズが設定され、下側のラジオボタンを指定すると、商材としてA5サイズが設定される。なお、商材の指定方法についてはこの方法に限るものではなく、例えば、プルダウンなどによる一覧から商材を指定できるようにしても良い。
ユーザがキーボード106やマウス107を操作してOKボタン308を指定すると、図3のGUI301において設定した内容が指定部201を介して自動レイアウト処理部218に入力される。より具体的には、パスボックス302に入力されているパスは画像取得部202に通知され、領域304内で指定された顔画像に対応する識別情報は入力部206に通知される。また、見開き数ボックス305に入力されている見開き数は入力部208に通知され、領域306内で指定されたアイコンに対応するテンプレートの情報(テンプレートを特定可能な情報)は入力部211に通知される。また、チェックボックス307の情報(チェックの有無)は入力部213に通知される。
一方、ユーザがキーボード106やマウス107を操作してリセットボタン309を指定すると、図3のGUI301において設定された内容は破棄され、ディスプレイ105においてGUI301を非表示にする。
次に、CPU101が自動レイアウト処理部218を実行することで行う処理について、図4のフローチャートを用いて説明する。
<ステップS401>
画像変換部203は、画像取得部202が取得した画像データ群に含まれる画像データに順次着目(選択)して、着目画像データから上記の解析画像データを生成する。なお、解析画像データは、指定部201が取得した情報に含まれている「解析画像の縦横の画素数、画素値の色空間などの生成パラメータ」に基づいて生成される。
<ステップS402>
画像解析部204は、ステップS401で生成された解析画像データから特徴量を抽出すると共に、該解析画像データの生成元の撮像画像データの付帯情報(例えばExif情報)から該撮像画像の撮像日時を取得する。抽出する特徴量には、様々なものを用いることができるが、以下では一例として、ピント量を特徴量として抽出する。
画像中のエッジの検出方法として公知のソーベルフィルタを用いることができる。ソーベルフィルタを用いて画像データに基づく画像からエッジを検出し、該検出したエッジの始点と終点の輝度差を始点と終点との間の距離で割ればエッジの傾き(輝度勾配)を算出できる。そして、画像中のエッジの傾きの平均値を算出する。傾きの平均値が大きい画像は、傾きの平均値が小さい画像よりもピントが合っていると考えることが出来る。そこで、この傾きに対してそれぞれ異なる複数の閾値を予め設定し、画像から求めた傾きの平均値がどの閾値以上であるのかを判別することで、該画像におけるピント量を算出することができる。本実施形態では互いに異なる2つの閾値θ1、θ2(θ1<θ2)を設定し、求めた傾きの平均値AがA<θ1であればピント量=×(許容できない)、θ1≦A<θ2であればピント量=△(許容できる)、A≧θ2であれば、ピント量=○(好適)と判別する。ピント量=○とは、フォトアルバムに採用したいピントの傾きを表す。ピント量=△とは、許容できるピントの傾きを表す。ピント量=×とは、許容できない傾きを表す。
<ステップS403>
画像解析部204は、ステップS401で生成された解析画像データに基づく解析画像から人の顔を検出する。画像から顔を検出する方法としては、例えば、公知技術を用いることができる。例えば、複数用意した弱識別器から強識別器を作成するAdaboostが挙げられる。本実施形態では、Adaboostにより作成した強識別器により、画像から人の顔を検出する。この顔検出処理により、画像上における人の顔の領域(顔領域(矩形領域))の座標位置及びサイズを取得する。なお、サイズの代わりに、顔の領域の左上隅の座標位置と右下隅の座標位置とを取得するようにしても良い。なお、顔に限らず、犬や猫等の動物、花、食べ物、建物、置物等のオブジェクトを顔の代わりの検出対象としてAdaboostによって強識別器を作成することができる。これにより、顔以外のオブジェクトを検出することができる。
<ステップS404>
画像解析部204は、ステップS403で検出したそれぞれの顔領域に対し、該顔領域内の顔が誰の顔であるのかを認識する処理である個人認識処理を行う。例えば、HDD104に予め登録されている様々な人の顔の画像について、ステップS403で検出した顔領域内の画像との類似度を求める。そして、HDD104に予め登録されている様々な人の顔の画像のうち、閾値以上であって且つ最大の類似度を求めた画像を特定し、該特定した画像と予め関連づけられている識別情報(該画像内の顔を有する個人の識別情報(個人ID))を取得する。なお、求めた類似度が何れも閾値未満であった場合には、新規の識別情報を発行し、ステップS403で検出した顔領域内の画像を、該発行した識別情報と関連づけてHDD104に登録する。
なお、本ステップでは、ステップS403で検出した顔領域内の顔を有する人の識別情報を取得することができるのであれば、どのような個人認識処理を採用しても構わない。
そして画像解析部204は、ステップS402〜S404にて収集した情報を画像解析情報としてHDD104に登録する。画像解析情報の一例を図5に示す。画像解析情報は、それぞれの撮像画像データについて、該撮像画像データに固有のID(画像ID)、該撮像画像データの撮像日時、ピント量、該撮像画像から検出した人の顔の数、該撮像画像から検出したそれぞれの人の顔の領域の左上隅及び右下隅の座標位置を含む。例えば、画像ID=1の撮像画像については、以下のような情報が登録されている。
撮像日時=「2015年7月1日10時11分12秒」
ピント量=「○」
検出した人の顔の数=「6」
個人ID=1の人の顔の領域の左上隅の座標位置及び右下隅の座標位置
個人ID=2の人の顔の領域の左上隅の座標位置及び右下隅の座標位置
個人ID=3の人の顔の領域の左上隅の座標位置及び右下隅の座標位置
個人ID=4の人の顔の領域の左上隅の座標位置及び右下隅の座標位置
個人ID=5の人の顔の領域の左上隅の座標位置及び右下隅の座標位置
個人ID=6の人の顔の領域の左上隅の座標位置及び右下隅の座標位置
なお、顔画像が検出されなかった撮像画像については、顔画像に係る情報は登録されず、ステップS402で取得した撮像日時及びピント量が保存される。
<ステップS405>
画像取得部202が取得した撮像画像データ群の全てをステップS401で選択した場合には、処理はステップS405を介してステップS406に進む。一方、画像取得部202が取得した撮像画像データ群のうち未選択の撮像画像データが残っている場合には、処理はステップS401に戻る。
<ステップS406>
画像分類部205は、HDD104に登録した画像解析情報から、画像取得部202が取得したそれぞれの撮像画像データの撮像日時を取得する。そして画像分類部205は、該取得したそれぞれの撮像画像データの撮像日時に基づいて、画像取得部202が取得した撮像画像データ群を複数のグループ(サブ画像群)に分割(シーン分割)する。
シーン分割方法の一例としては次のような方法が挙げられる。例えば、画像取得部202が取得したそれぞれの撮像画像データを撮像日時が古い順に見た場合に、N(Nは1以上の整数)番目の撮像画像データの撮像日時と、(N+1)番目の撮像画像データの撮像日時と、の差が2日以上であるとする。このとき、N番目の撮像画像データと(N+1)番目の撮像画像データとの間にグループの境界を設定する。
撮像日時が古い順においてN番目の撮像画像データの撮像日時と(N+1)番目の撮像画像データの撮像日時との差が1日以下であれば、以下の通りである。撮像日時が古い順においてN番目の撮像画像データの撮像日時と(N+1)番目の撮像画像データの撮像日時との差が16時間以上であれば、N番目の撮像画像データと(N+1)番目の撮像画像データとの間にグループの境界を設定する。また、撮像日時が古い順において隣接する撮像画像データ間で撮像日時の差が、どの撮像画像データ間であっても16時間未満であるとする。この場合、1日で撮像した撮像画像データ群において最初に撮像した撮像画像データの撮像日時と最後に撮像した撮像画像データの撮像日時との差が4時間未満であれば、該1日の撮像画像データ群を1つのグループとする。一方、該1日で撮像した撮像画像データ群において最初に撮像した撮像画像データの撮像日時と最後に撮像した撮像画像データの撮像日時との差が4時間以上であったとする。この場合、該1日で撮像した撮像画像の枚数が50枚未満(1日で撮像した撮像画像の数が50未満)であれば、該1日の撮像画像データ群を1つのグループとする。このような撮像画像データのグループ分けの一例を図6(A)に示す。図6(A)〜(C)において横軸は撮像日時(左側に向かうほど古く、右側に向かうほど新しい)、縦軸は撮像画像データの数を示す。図6(A)では、撮像画像データ群をグループ601〜608の8個のグループに分割している。図6(A)において矢印はグループの境界を示している。なお、上記のシーン分割方法の説明において使用した撮像日時の差に対する閾値や撮像画像データの数に対する閾値は一例であり、これらの値に限るものではない。
<ステップS407>
画像分類部205は、ステップS206で分割したそれぞれのグループのうち1つを着目グループとして選択し、該着目グループがどのシーンに分類されるのかを判断する。本実施形態では、グループが、旅行、日常、セレモニーのどのシーンに分類されるのかを判断する。もちろん、シーンの種類はこれらの種類に限るものではない。
本ステップのために、HDD104には予め、グループがどのシーンに分類されるのかを判断するための基準となるデータ(シーン分類基準データ)が登録されている。シーン分類基準データの作成方法の一例を以下に示す。
例えば、旅行の画像として予め判断されている画像データ群(旅行画像データ群)、日常の画像として予め判断されている画像データ群(日常画像データ群)、セレモニーの画像として予め判断されている画像データ群(セレモニー画像データ群)を予め複数用意する。そして、旅行画像データ群、日常画像データ群、セレモニー画像データ群、のそれぞれについて、撮像期間の平均及び標準偏差、撮像数の平均及び標準偏差、撮像人数の平均及び標準偏差、を求める。例えば、旅行画像データ群について、撮像期間の平均及び標準偏差、撮像数の平均及び標準偏差、撮像人数の平均及び標準偏差、を求める場合について説明する。
画像データ群の撮像期間とは、該画像データ群において最も過去に撮像した画像の撮像日時と最近撮像した画像の撮像日時との差分である。然るに、それぞれの旅行画像群について、該旅行画像データ群において最も過去に撮像した画像データの撮像日時と最近撮像した画像データの撮像日時との差分を、該旅行画像データ群の撮像期間として求める。また、該それぞれの旅行画像データ群について求めた撮像期間の平均及び標準偏差を求める。
また、画像データ群の撮像数とは、該画像データ群を構成する画像データの数である。然るに、それぞれの旅行画像データ群について、該旅行画像データ群を構成する撮像画像データの数を求める。また、該それぞれの旅行画像データ群について求めた撮像画像データの数の平均及び標準偏差を求める。
また、画像データ群の撮像人数とは、該画像データ群を構成するそれぞれの画像に写っている顔の数である。然るに、全ての旅行画像データ群について、該旅行画像データ群を構成するそれぞれの撮像画像データに基づく撮像画像に写っている顔の数を公知の顔認識などの技術でもって求める。また、該求めた顔の数の平均及び標準偏差を求める。
日常画像データ群、セレモニー画像データ群についても同様にして、撮像期間の平均及び標準偏差、撮像数の平均及び標準偏差、撮像人数の平均及び標準偏差、を求める。そして、このようにして旅行画像データ群、日常画像データ群、セレモニー画像データ群のそれぞれについて求めた、撮像期間の平均及び標準偏差、撮像数の平均及び標準偏差、撮像人数の平均及び標準偏差、を、シーン分類基準データとしてHDD104に予め登録しておく。シーン分類基準データの一例を図7に示す。
画像分類部205は、着目グループについて、上記と同様にして、撮像期間、撮像数、撮像人数の平均を求める。そして、画像分類部205は、シーン分類基準データを参照し、着目グループについて、旅行(シーン1)についての得点、日常(シーン2)についての得点、セレモニー(シーン3)についての得点を以下のようにして求める。
シーンiの撮像期間の得点=50−|10×(シーンiの撮像期間の平均−選択グループの撮像期間)/シーンiの撮像期間の標準偏差|
シーンiの撮像枚数の得点=50−|10×(シーンiの撮像枚数の平均−選択グループの撮像枚数)/シーンiの撮像枚数の標準偏差|
シーンiの撮像人数の得点=50−|10×(シーンiの撮像人数の平均−選択グループの撮像人数の平均)/シーンiの撮像人数の標準偏差|
シーンiの得点=(シーンiの撮像期間の得点+シーンiの撮像枚数の得点+シーンiの撮像人数の得点)/3
ただし、i=1,2,3
そして画像分類部205は、着目グループについて求めたシーン1の得点、シーン2の得点、シーン3の得点、のうち最も高い得点のシーンを、該着目グループのシーンとして決定(分類)する。最も高い得点のシーンが複数個ある場合には、予め設定された優先順位において最も高いシーンを採用する。例えば、日常>セレモニー>旅行の順を予め設定しておく。なお、この優先順位は一例であり、他の優先順位を採用しても良いし、この優先順位をユーザがキーボード106やマウス107を操作して変更しても構わない。例えば、図6(A)のグループ605の撮像期間が36時間、撮像枚数が300枚、撮像人数の平均が1.7人であるとする。この場合、図7のシーン分類基準データ及び上記の式を用いると、旅行の得点は45.32、日常の得点は18.38、セレモニーの得点は−29.92となり、グループ605のシーンは旅行に分類される。なお、それぞれのグループがどのシーンに分類されたのかについては、例えば、グループ毎に、分類先のシーンに固有の識別情報を対応付けてHDD104で管理する。
<ステップS408>
ステップS406で分割したそれぞれのグループの全てをステップS407で選択した場合には、処理はステップS409に進む。一方、ステップS406で分割したそれぞれのグループのうち未選択のグループが残っている場合には、処理はステップS407に戻る。
<ステップS409>
入力部206は、指定部201が取得した情報のうち、主人公を特定する情報(ここでは主人公IDとする)を取得する。なお、主人公IDとは、画像取得部202が取得した撮像画像データ群に登場する人のうち主人公としての人に固有のID(図5の個人ID)である。この主人公IDは、ユーザが上記のGUIを用いて指定しても良いし、以下の処理によって、ユーザ操作を介さずに決定しても良い。
例えば、上記のステップS404の処理によって、それぞれの撮像画像データにおいてどの個人IDを有する人が登場したのかの情報を取得することができる。そのため、画像取得部202が取得した撮像画像データ群におけるそれぞれの人の登場回数、各シーンにおけるそれぞれの人の登場回数、それぞれの人が登場するシーンの個数、等を求めることが可能となる。この様な情報から、それぞれの人のうちその人を主人公とするのかを決定することができる。例えば、画像取得部202が取得した撮像画像データ群が複数のシーンによって構成されている場合には、最も多くのシーンに登場している人の個人IDを主人公IDとする。また、画像取得部202が取得した撮像画像データ群が単一シーンで構成されている場合には、該単一シーンで最も多く登場している人の個人IDを主人公IDとする。なお、入力部206は、ユーザが図3のGUI301において領域304内で顔画像を指定している場合には、このような主人公IDの決定処理は行わずに、該指定された顔画像に対応する識別情報を主人公IDとして取得する。
<ステップS410>
画像得点部207は、画像取得部202が取得した撮像画像データ群のうちの1つの着目画像データに対して、メイン写真スロット(メインスロット)用の得点及びサブ写真スロット(サブスロット)用の得点を求める。ここで、メイン写真スロット及びサブ写真スロットについて、図10(A)を用いて説明する。図10(A)の(1−1)〜(4−4)は、入力部211が入力するテンプレート群である。なお、図10ではテンプレートにおける写真スロットについて説明するために、写真スロット以外の情報は省略している。例えば表紙用のテンプレートには、写真スロットに加えてタイトルなどのテキスト情報を配置するための領域(文字入力領域)も設けられる。
(1−1)のテンプレート1001において1002〜1004は写真スロットであるが、写真スロット1002は他の写真スロット1003及び1004よりもサイズが大きい。このような場合、写真スロット1002をメイン写真スロット、写真スロット1003及び1004をサブ写真スロットとする。そこで、着目画像データについてメイン写真スロット用の得点及びサブ写真スロット用の得点を求めるために用いる基準データを、例えば以下のようにして予め作成しておく。
メイン写真スロットに配置する画像(画像データに基づく画像)として好ましいもの、サブ写真スロットに配置する画像として好ましいもの、は、その画像のシーンによって異なる。メイン写真スロットに配置する画像として好ましい画像の特徴、サブ写真スロットに配置する画像として好ましい画像の特徴、画像のシーン、の関係の一例を図8(a)に示す。図8(a)の表は、旅行、日常、セレモニーのシーン毎に得点が高くなる画像の特徴をまとめた表である。
図8(a)に示すように、写真スロットの種類に応じて、得点が高くなる特徴が異なる。例えば、シーン「旅行」については、人物と風景が入ったひいた画像は、メイン写真スロット用の得点が高くなり、顔のアップや横顔の画像は、サブ写真スロット用の得点が高くなる。例えば、シーン「日常」については、顔のアップや横顔の画像は、メイン写真スロット用の得点が高くなり、人物と風景が入ったひいた画像は、サブ写真スロット用の得点が高くなる。例えば、シーン「セレモニー」については、2人の距離が近い画像は、メイン写真スロット用の得点が高くなり、大人数の画像は、サブ写真スロット用の得点が高くなる。このように、シーン及び写真スロットの種類に応じて、得点が高くなる特徴、言い換えれば、評価基準が異なる。本実施形態では、シーン及び写真スロットの種類に応じた得点が高くなる特徴、すなわち上記の基準データはHDD104に予め登録しておく。なお、得点が高くなる特徴は、上述したものに限定されるものではない。
なお、上記の基準データについては、例えば次のようにして用意しておく。メイン写真スロットについて図8(a)で規定している条件を満たす旅行の画像データ群、日常の画像データ群、セレモニーの画像データ群、を予め用意する。サブ写真スロットについて図8(a)で規定している条件を満たす旅行の画像データ群、日常の画像データ群、セレモニーの画像データ群、を予め用意する。そして、メイン写真スロット用に用意した各シーンの画像データ群について、該画像データ群に登場する顔の数、顔の登場位置、顔のサイズ、の平均及び標準偏差を求める。同様にして、サブ写真スロット用に用意した各シーンの画像データ群について、該画像データ群に登場する顔の数、顔の登場位置、顔のサイズ、の平均及び標準偏差を求める。このようにしてメイン写真スロット及びサブ写真スロットについて求めた、顔の数、顔の登場位置、顔のサイズ、の平均及び標準偏差を、上記の基準データとしてHDD104に予め登録しておく。
そして画像得点部207は、着目画像データに基づく着目画像Iに対して、メイン写真スロット用の得点(1)及びサブ写真スロット用の得点(2)を、以下のようにして求める。
<メイン写真スロット用の得点>
顔数の得点(1)=50−|10×(着目画像Iのシーンについてメイン写真スロット用に求めた顔数の平均−着目画像Iに登場する主人公の顔の数)/着目画像Iのシーンについてメイン写真スロット用に求めた顔数の標準偏差|
顔登場位置の得点(1)=50−|10×(着目画像Iのシーンについてメイン写真スロット用に求めた顔登場位置の平均−着目画像Iに登場する主人公の顔の登場位置)/着目画像Iのシーンについてメイン写真スロット用に求めた顔登場位置の標準偏差|
顔サイズの得点(1)=50−|10×(着目画像Iのシーンについてメイン写真スロット用に求めた顔サイズの平均−着目画像Iに登場する主人公の顔のサイズ)/着目画像Iのシーンについてメイン写真スロット用に求めた顔サイズの標準偏差|
得点(1)=(顔数の得点(1)+顔登場位置の得点(1)+顔サイズの得点(1))/3
<サブ写真スロット用の得点>
顔数の得点(2)=50−|10×(着目画像Iのシーンについてサブ写真スロット用に求めた顔数の平均−着目画像Iに登場する主人公の顔の数)/着目画像Iのシーンについてサブ写真スロット用に求めた顔数の標準偏差|
顔登場位置の得点(2)=50−|10×(着目画像Iのシーンについてサブ写真スロット用に求めた顔登場位置の平均−着目画像Iに登場する主人公の顔の登場位置)/着目画像Iのシーンについてサブ写真スロット用に求めた顔登場位置の標準偏差|
顔サイズの得点(2)=50−|10×(着目画像Iのシーンについてサブ写真スロット用に求めた顔サイズの平均−着目画像Iに登場する主人公の顔のサイズ)/着目画像Iのシーンについてサブ写真スロット用に求めた顔サイズの標準偏差|
得点(2)=(顔数の得点(2)+顔登場位置の得点(2)+顔サイズの得点(2))/3
「着目画像Iに登場する主人公の顔」の数については、図5の画像解析情報の、着目画像Iに対応する画像IDの行において、主人公IDに対応する個人IDに左上隅の位置及び右下隅の位置が登録されていれば「1」、登録されていなければ「0」となる。また、「着目画像Iに登場する主人公の顔」の登場位置、サイズについては、図5の画像解析情報の、着目画像Iに対応する画像IDの行において、主人公IDに対応する個人IDに登録されている左上隅の位置及び右下隅の位置を参照すれば特定できる。
また、フォトアルバムに使う画像はピントが合っている方が好ましい為、図5に示すピント=「○」である撮像画像に対しては更に得点を加算してもよい。それぞれの画像IDに対応する撮像画像について求めた、メイン写真スロット用の得点(1)及びサブ写真スロット用の得点(2)の一例を図8(b)に示す。
<ステップS411>
画像取得部202が取得した撮像画像データ群の全てをステップS410で処理した場合には、処理はステップS412に進む。一方、画像取得部202が取得した撮像画像データ群のうちステップS410で未処理の撮像画像データが残っている場合には、処理はステップS410に戻る。
<ステップS412>
選択部216は、画像取得部202が取得した撮像画像データ群から、表紙及び裏表紙で1ページとする表紙ページにレイアウトする規定数の撮像画像データを選択する。以下では画像データ選択数(規定数)=3として説明するが、規定数はこの数に限るものではない。例えば、この画像データ選択数は、図3のGUI301においてラジオボタン310によって指定した商材のサイズによって変えてもよい。例えば、A4サイズ、A5サイズのそれぞれに対応する画像データ選択数を予め保持しているテーブルから設定してもよい。また、ユーザが図3のGUI301等において、おもて表紙及び裏表紙に用いる画像データの数を指定できるようにしてもよい。
選択部216による表紙用撮像画像データの選択方法について、図19を用いて説明する。図19においてStartは、画像取得部202が取得した撮像画像データ群において最も過去に撮像された撮像画像データの撮像日時を表している。Endは、画像取得部202が取得した撮像画像データ群において最近撮像された撮像画像データの撮像日時を表している。然るに、(Start−End)が、画像取得部202が取得した撮像画像データ群の撮像期間を表している。すなわち、図19は、アルバム作成に用いる撮影期間(指定された撮影期間)を表している。
先ず、画像取得部202が取得した撮像画像データ群(図19(A))から、表紙に配置する撮像画像データを選択する。本実施形態では、表紙に配置する撮像画像としては、画像取得部202が取得した撮像画像データ群のうち、メイン写真スロット用の得点が最も高かった撮像画像データを選択する。表紙に配置する撮像画像データとして選択された撮像画像データを、図19(B)において(1)として表している。なお、シーンによってメイン写真スロット用として好ましい画像は異なるが、ここでは、ステップS410で求めたメイン写真スロット用の得点をそのまま、ここでいう「メイン写真スロット用の得点」として用いる。
次に、裏表紙に配置する撮像画像データ(2つ)を、画像取得部202が取得した撮像画像データ群から選択する。画像選択は撮像期間の一部に集中しないように、以下に説明するように撮像期間を細分化して、それぞれから画像データを取得する。
先ず、裏表紙に配置する1枚目の撮像画像データを選択する。そのために先ず、図19(C)に示す如く、撮像期間を2つの分割期間に分割する。そして図19(D)に示す如く、2つの分割期間のうち、撮像画像データ(1)が属する分割期間(点線)を省いた残りの分割期間(実線)に属する撮像画像群のうちサブ写真スロット用の得点が最高の撮像画像データを、裏表紙に配置する撮像画像データとして選択する。裏表紙に配置する1つ目の撮像画像データとして選択された撮像画像データを、図19(D)において(2)として示している。
次に、裏表紙に配置する2つ目の撮像画像データを選択する。そのために先ず、図19(E)に示す如く、各分割期間を2つに分割することにより撮像期間を4つの分割期間に分割する。図19(F)に示す如く、4つの分割期間のうち撮像画像(1)及び(2)が属する分割期間(点線)を省いた残りの分割期間(実線)に属する撮像画像データ群のうちサブ写真スロット用の得点が最高の撮像画像データを裏表紙に配置する撮像画像データとして選択する。裏表紙に配置する2枚目の撮像画像として選択された撮像画像データを、図19(F)において(3)として示している。
表紙に配置するものとして選択された撮像画像データは、メイン写真スロット用の得点が最高の撮像画像データであるため、表紙だけでなく、本身において何れかの見開きでも使用されることになる。
なお、上記の説明において表紙に配置するものとして選択した撮像画像データを裏表紙に、裏表紙に配置するものとして選択した撮像画像データを表紙に配置するようにしても構わない。また、表紙、裏表紙のそれぞれに配置する撮像画像データの数は上記の数に限らない(0もあり得る)。
本実施形態では、表紙に配置する画像データの選択基準(メイン写真スロット用の得点を用いる)と、裏表紙に配置する画像データの選択基準(サブ写真スロット用の得点)を異なるものとした。このように、選択基準を異なるものとすることにより、表紙と裏表紙でバリエーションに富んだ画像選択をすることができる。
なお、メイン写真スロット用の得点が所定の閾値以上の画像が複数ある場合は、撮影時間が早い画像を表紙に配置し、サブ写真スロット用の画像が所定の閾値以上の画像が複数ある場合は、撮影時間が遅い画像を裏表紙に配置するようにしてもよい。このように、表紙と裏表紙で、優先する撮影時期を変更してもよい。
また、得点軸の設定は、上述したものに限定されるものではなく、例えば、表紙で用いる得点軸と、裏表紙に用いる得点軸を、作成するアルバムのシーンに応じて変更するようにしてもよい。例えば、アルバムに利用する全ての画像データ群のシーン(ステップS407で特定する全てのシーン)が、旅行の場合、サブ写真スロット用の得点が高い画像を表紙に配置し、メイン写真スロット用の得点が高い画像を裏表紙に配置するようにしてもよい。この場合、風景画像を活かした表紙のレイアウト画像を生成することができる。
なお、表紙と裏表紙の選択基準は、上述したものに限定されるものではない。例えば、表紙に配置する画像のシーンと裏表紙に配置する画像のシーンをそれぞれ設定し、その設定が互いに異なるものとなるようにしてもよい。例えば、ユーザにとって重要なイベントと判定できる画像を表紙に配置し、それ以外の画像を裏表紙に配置してもよい。具体例としては、表紙には、シーンが「旅行」と判定された撮影区間の画像データ群の中からメイン写真スロット用の得点が高い画像を配置し、裏表紙には、シーンが「日常」と判定された撮影区間の画像データ群の中からメイン写真スロット用の得点が高い画像を配置する。
また、例えば、表紙に配置する画像を取得する撮影区間(すなわち、取得する画像データ群)の特徴と、裏表紙に配置する画像を取得する撮影区間(すなわち、取得する画像データ群)の特徴と、をそれぞれ設定し、その設定が互いに異なるものとしてもよい。具体例としては、表紙は、区間あたりのショット数が多い画像データ群を設定し、その中でメイン写真スロット用の得点が高い画像を配置し、裏表紙は、区間あたりのショット数が少ない画像データ群を設定し、その中でメイン写真スロット用の得点が高い画像を配置する。また、他の具体例としては、表紙は、画像のメイン写真スロット用の得点の平均値が高い撮影区間を設定し、その中でメイン写真スロット用の得点が高い画像を配置し、裏表紙は、ショット数が少ない撮影区間を設定し、その中でメイン写真スロット用の得点又はサブ写真スロット用の得点が高い画像を配置する。これにより、ユーザにとって重要なイベントの画像を表紙に配置しつつ、日常などのシーンの画像を裏表紙に配置することができる。
また、例えば、表紙に配置する画像と裏表紙に配置する画像とで、登場する人物の設定を変えてもよい。具体例として、主人公が1人で写った画像又は主人公を含め所定人数(例えば、3人以下)が写った画像のうちメイン写真スロット用の得点が高い画像を表紙に配置し、人数が4人以上の画像を裏表紙に配置する。また、表紙に配置する画像と裏表紙に配置する画像とで、登場する人物の設定を、上記と逆にしてもよい。
また、メイン写真スロット用の得点やサブ写真スロット用の得点を用いずに、顔検出結果を利用して表紙に配置する撮像画像や裏表紙に配置する撮像画像を決定してもよい。例えば、人物を含む撮像画像を表紙に配置し、人物を含まない画像を裏表紙に配置するようにしても構わない。また、ここではメイン写真スロット用の得点、サブ写真スロット用の得点、を用いて表紙及び裏表紙に配置する撮像画像データを選択したが、画像分類部205による分類結果に基づいて、予め設定したシーンの画像データを優先して選択してもよい。例えば、表紙に旅行の画像データを配置する場合は、画像分類結果から旅行と判定された画像データ群の中からメイン写真スロット用の得点が最高の画像データを選択する。そして、その後は図19を用いて上述したように撮像期間を分割してサブ写真スロット用の得点が最高の画像データを順次選択して裏表紙用の画像データとしてもよい。
また、上記の説明では、表紙用画像データを選択した分割期間とは別の分割期間から裏表紙用画像データを選択するように設定したが、表紙用画像を選択した分割期間と同じ分割期間から裏表紙用画像データを選択するように設定してもよい。
また、上記の表紙のテンプレート群において、スロット数の異なるテンプレートを複数用意し、メイン写真スロット用の画像の得点に応じて選択するテンプレートを変えてもよい。具体的には、アルバム作成の対象とする画像群において、所定の閾値以上の得点の画像が多い場合は、スロット数が多い(例えば、スロット数が3)テンプレートを選択し、所定の閾値以上の得点の画像が少ない場合は、スロット数が少ない(例えば、スロット数が1)のテンプレートを選択する。
<ステップS413>
レイアウト部217は、ステップS412で選択した画像データを基にしてテンプレートを選択する。入力部211が入力したテンプレート群のうち、表紙ページに適用するテンプレートを、ステップS412で選択した撮像画像データに基づいて選択する。以下では具体例を挙げてステップS413における処理を説明するために、入力部211は、図20の(1−1)〜(2−4)の8枚のテンプレートを入力したとする。
この8枚のテンプレートの何れも、左側に裏表紙用の撮像画像データのレイアウト、右側に表紙用の撮像画像データのレイアウト、を規定したものである。(1−1)のテンプレート2001では、写真スロット2003,2004が裏表紙用の撮像画像データを配置するためのもので、写真スロット2002は表紙用の撮像画像データを配置するためのものである。本実施形態では、表紙用の写真スロット2002は、裏表紙用の写真スロット2003,2004よりもサイズが大きい。タイトル2008は、フォトアルバムのタイトルなどのテキスト情報を入力するためのテキスト領域である。
なお、ステップS412で表紙用に1つの撮像画像データ、裏表紙用に2つの撮像画像データを選択している場合、図20に示すように写真スロットの数が3のテンプレート群を候補とする。ここで、ステップS412にて選択した3つの撮像画像データに基づく撮像画像は、縦長(縦向き)の画像2005、縦長(縦向き)の画像2006、横長(横向き)の画像2007、であったとする。なお、画像2006及び2007は裏表紙に配置する撮像画像であり、画像2005は表紙に配置する撮像画像である。
先ず、表紙に配置する画像2005が縦長の画像であるから、表紙用の写真スロットも縦長である必要がある。然るに、テンプレート(1−1)〜(2−4)のうち、表紙用の写真スロットが縦長であるテンプレート(1−1)〜(1−4)が候補となる。そして、本実施形態では、裏表紙については、テンプレートの左上に撮像日時のより古い画像、右下に撮像日時のより新しい画像をレイアウトするものとする。撮像日時のより古い画像データに基づく画像は縦長の画像2006、撮像日時のより新しい画像データに基づく画像は横長の画像2007であるから、テンプレート(1−1)〜(1−4)のうちテンプレート(1−2)が最終候補となる。
然るに、この場合は、(1−2)のレイアウトを、表紙ページのテンプレートとして選択する。このようにステップS413では、レイアウトに用いるテンプレートと、テンプレートのいずれのスロットにいずれの画像をレイアウトするかが決定する。なお、決定した情報は、出力部215に入力する。
なお、表紙ページのテンプレートの選択方法は上記の方法に限るものではなく、他の方法を採用しても構わない。また、テンプレートは、図20に示すようなものに限定されるものではない。例えば、裏表紙のページと、画像を配置するスロットの枠を一致させるようにしてもよいし、スロットの一部が他のスロットの一部と重なるようにしてもよい。スロットの一部が重なる場合は、重複部分はいずれか一方の画像を前面に配置するようにすればよく、例えば、得点の高い画像を前面に配置するようにすればよい。
また図20では、3枚の撮像画像をレイアウトするテンプレートの選択方法について説明したが、撮像画像の数が3でなくても、テンプレートの選択方法は同様に適用することができる。なお、表紙用のテンプレートは、配置する画像の数に応じたテンプレートがそれぞれ複数、HDD104に登録されているものとする。また、配置する画像数の異なる複数のテンプレートを用意し、それぞれぞれのテンプレートに画像を配置して得られたレイアウト画像を評価し、評価値の高いものを表紙のレイアウト画像として決定するようにしてもよい。例えば、配置する画像のトリミング量やタイトル領域に重複している顔の個数を評価基準とし、トリミング量が小さいものを高評価、タイトル領域に重複している顔の個数が少ないものを高評価としてもよい。
<ステップS414>
画像補正部214は、入力部213が取得したフラグ値が、画像補正を実施することを示す値である場合には、選択部216が選択した3つの撮像画像データのそれぞれに対して、覆い焼き補正、赤目補正、コントラスト補正等の補正処理を施す。もちろん、画像補正部214は、入力部213が取得したフラグ値が、画像補正を実施しないことを示す値である場合には、補正処理は実行しない。補正する画像の画素数は短辺1200画素で、sRGBの色空間に変換した画像に対して画像補正ON/OFFを実施する。
<ステップS415>
出力部215は、ステップS413で選択したテンプレート上のそれぞれの写真スロットに、該写真スロットに対してステップS412で選択された撮像画像データを、該写真スロットのサイズにリサイズして配置した「表紙/裏表紙ページの画像データ」として生成する。すなわち、レイアウト画像データを1つの画像データとして生成する。そして出力部215は、この生成した「表紙/裏表紙のページの画像データに基づく画像」をレイアウト情報として出力する。出力先はディスプレイ105であっても良いし、HDD104であっても良い。本実施形態では、この「表紙/裏表紙のページの画像」をユーザに確認させると共に、必要であれば編集を可能にするために、「表紙/裏表紙のページの画像」をディスプレイ105に対して出力する。
<ステップS416>
詳しくは後述するが、ステップS416以降の処理は、「表紙/裏表紙のページの画像に基づく画像」を含む編集画面の表示、該編集画面に対する操作入力の受け付け、操作入力に応じた処理の実行を行っているバックグラウンドで動作する。
入力部208は、指定部201が取得した情報のうち、フォトアルバムの見開きの数を取得する。そして見開き割当部209は、ステップS406において分割したグループの数と、入力部208が取得した見開きの数と、が同じであるか否かを判定する。この判定の結果、同じである場合には、処理はステップS420に進み、同じではない場合には、処理はステップS417に進む。例えば、図6(A)の場合は、グループ分割数=8であるから、入力部208が取得した見開きの数=8であれば、処理はステップS420に進むことになる。
<ステップS417>
見開き割当部209は、ステップS406において分割したグループの数X<入力部208が取得した見開きの数Yであるか否かを判断する。この判断の結果、X<Yであれば、処理はステップS418に進み、X≧Yであれば、処理はステップS419に進む。
<ステップS418>
見開き割当部209は、X=Yとなるべく、画像取得部202が取得した撮像画像データ群のグループ再分割(サブシーン分割)を行う。以下では具体的な例を挙げてステップS418の処理を説明するために、図6(A)のように、X=8となっている状態において、Y=10であるケースを例にとる。この場合、図6(B)に示す如く、点線で示す部分で図6(A)のグループ602及び605を分割することで、10個のグループ601〜610を生成する。この点線の位置(分割基準線)の位置は、例えば、以下のようにして求める。
先ず、図6(A)のグループ601〜608のそれぞれのグループのうち、撮像画像データの数が多いグループを特定する。X=8,Y=10の場合、2カ所に分割基準線を設ける必要があるため、グループ601〜608のそれぞれのグループのうち、撮像画像データの数が最も多いグループ及び2番目に多いグループの2つのグループを特定する。図6(A)の場合、撮像画像データの数が最も多いグループはグループ605であり、2番目に多いグループはグループ601及び602である。ここで、グループ601とグループ602とでは撮像画像データの数は同じであるが、撮像期間がグループ602の方がグループ601よりも長い。然るにこの場合には、グループ602を選択する。然るに、結果として、グループ605及びグループ602のそれぞれを2つのグループに分割する。なお、それでも決定できない場合には、たとえば時間的に早いグループを優先的に再分割するなど、適宜決めておけばよい。
先ず、グループ602の分割方法について説明する。図6(A)においてグループ602には、撮像画像データ数のピークが2つ存在するためのその間の位置(撮像日時の境界)を分割基準線の位置とする。次に、グループ605の分割方法について説明する。図6(A)においてグループ605には、撮像画像データの数のピークが3つ存在するが、分割後の2つのグループ間で撮像画像データの数の差がより小さくなるようにする。したがって、ここでは、3つのピークの間の位置(撮像日時の境界)のうち右側の位置を分割基準線の位置とする。なお、ここでは撮像日の違う箇所で分割したが、撮像画像データの数が多い箇所が単一日であった場合は、単一日の中で時間差が最大の箇所で分割する。なお、本ステップにおけるグループ分割方法には様々なグループ分割方法を用いることができ、特定のグループ分割方法に限るものではない。
<ステップS419>
見開き割当部209は、X=Yとなるべく、画像取得部202が取得した撮像画像データ群のグループ再分割(シーン統合)を行う。以下では具体的な例を挙げてステップS419の処理を説明するために、図6(A)のように、X=8となっている状態において、Y=6であるケースを例にとる。この場合、幾つかのグループを統合して1つのグループとすることでグループ数を減らしてX=Yを達成する。図6(C)に示す如く、点線で示す部分で図6(A)のグループ603及び604を統合し、且つ図6(A)のグループ607及び608を統合することで、6個のグループ601〜606を生成する。この点線の位置(統合基準線)の位置は、例えば、以下のようにして求める。
先ず、図6(A)のグループ601〜608のそれぞれのグループのうち、撮像画像データの数が少ないグループを特定する。X=8,Y=6の場合、2カ所に統合基準線を設ける必要があるため、グループ601〜608のそれぞれのグループのうち、撮像画像データの数が最も少ないグループ及び2番目に少ないグループの2つのグループを特定する。図6(A)の場合、撮像画像データの数が最も少ないグループはグループ608であり、2番目に少ないグループはグループ603及び607である。ここで、グループ603とグループ607とでは撮像画像データの数は同じであるが、グループ607は、統合対象となるグループ608と隣接しているため、この場合には、グループ603を選択する。然るに、結果として、グループ603及びグループ608のそれぞれを統合対象とする。
先ず、グループ603の統合方法について説明する。グループ603に属する撮像画像データ群の撮像日時のうち最近の撮像日時と、グループ603に隣接するグループ604に属する撮像画像データ群の撮像日時のうち最も過去の撮像日時との差をDAとする。また、グループ603に隣接するグループ602に属する撮像画像データ群の撮像日時のうち最近の撮像日時と、グループ603に属する撮像画像データ群の撮像日時のうち最も過去の撮像日時との差をDBとする。このとき、DA<DBであるから、グループ603をグループ604と統合することで、図6(C)のグループ603を生成する。
グループ608については隣接しているグループはグループ607のみであるため、グループ608をグループ607と統合することで、図6(C)のグループ606を生成する。
なお、本ステップにおけるグループ統合方法には様々なグループ統合方法を用いることができ、特定のグループ統合方法に限るものではない。例えば、統合対象のグループを撮像データの数が少ないグループに統合するようにしてもよい。
<ステップS420>
見開き割当部209は、入力部208が取得した見開きの数と同数のグループのそれぞれを、何れかの見開きに割り当てる。どの見開きにどのグループを割り当てるのかについては様々な方法があるが、例えば、より先頭の見開きには、撮像日時(グループ中の任意の撮像画像データの撮像日時)がより過去のグループを割り当てる。なお、後述するように、1つの見開きページ内では、画像データは撮像日時に並んでいなくてもよい。
<ステップS421>
選択部210は先ず、それぞれの見開きのうち未選択の見開きを1つ選択し、該選択した見開きに割り当てられたグループに属する撮像画像データ群のうち、該見開きにおいて表示対象となる撮像画像データを選択する。選択した見開きに割り当てられたグループに属する撮像画像データ群のうち、該見開きにおいて表示対象となる4つの撮像画像データを選択する処理について、図9を例にとり説明する。なお、ここでは、見開きとは、2ページを指し、最初の見開き及び最後の見開きは、1ページとする。
図9においてStartは、選択された見開きに割り当てられたグループ(着目グループ)に属する撮像画像データ群において最も過去に撮像された撮像画像データの撮像日時を表している。Endは、着目グループに属する撮像画像データ群において最近撮像された撮像画像データの撮像日時を表している。然るに、(Start−End)が、着目グループの撮像期間を表している。
先ず、着目グループに属する撮像画像データ群(図9(A))から、メイン写真スロットに配置する撮像画像データを選択する。メイン写真スロットに配置する撮像画像データとしては、着目グループに属するそれぞれの撮像画像データのうち、メイン写真スロット用の得点が最も高かった撮像画像データを選択する。メイン写真スロットに配置する撮像画像データとして選択された撮像画像データを、図9(B)において(1)として表している。
次に、サブ写真スロットに配置する撮像画像データ(3つ)を、着目グループに属する撮像画像データ群から選択する。画像選択は撮像期間の一部に集中しないように、以下に説明するように撮像期間を細分化して画像データを選択する。
先ず、サブ写真スロットに配置する1つ目の撮像画像データを選択する。そのために先ず、図9(C)に示す如く、撮像期間を2つの分割期間に分割する。そして図9(D)に示す如く、2つの分割期間のうち、撮像画像データ(1)が属する分割期間(点線)を省いた残りの分割期間(実線)に属する撮像画像データ群のうちサブ写真スロット用の得点が最高の撮像画像データを、サブ写真スロットに配置する撮像画像データとして選択する。サブ写真スロットに配置する1枚目の撮像画像データとして選択された撮像画像データを、図9(D)において(2)として示している。
次に、サブ写真スロットに配置する2つ目の撮像画像データを選択する。そのために先ず、図9(E)に示す如く、各分割期間を2つに分割することにより撮像期間を4つの分割期間に分割する。図9(F)に示す如く、4つの分割期間のうち撮像画像データ(1)及び(2)が属する分割期間(点線)を省いた残りの分割期間(実線)に属する撮像画像データ群のうちサブ写真スロット用の得点が最高の撮像画像データをサブ写真スロットに配置する撮像画像データとして選択する。サブ写真スロットに配置する2つ目の撮像画像データとして選択された撮像画像データを、図9(F)において(3)として示している。
次に、サブ写真スロットに配置する3つ目の撮像画像データを選択する。サブ写真スロットに配置する撮像画像を上記の4分割した分割期間のうち、撮像画像データ(1)〜(3)が属していない分割期間Gから撮像画像データを選択する。ここで、本実施形態では、画像データの数に関わらず、時間に応じて撮像期間を分割しているので、図9(G)に斜線で示す如く、分割期間Gには、何れの撮像画像データも属していない分割期間が発生してしまう。このような場合は、図9(H)に示す如く、撮像画像データ(1)〜(3)が属する分割期間のそれぞれを2つの分割期間に分割して6つの分割期間とする。図9(I)のように6つの分割期間のうち撮像画像データ(1)〜(3)が属する分割期間(点線)及び分割期間Gを省いた残りの分割期間(実線)に属する撮像画像データ群のうちサブ写真スロット用の得点が最高の撮像画像データをサブ写真スロット用の撮像画像データとして選択する。サブ写真スロットに配置する3枚目の撮像画像データとして選択された撮像画像データを、図9(I)において(4)として示している。
このような動作を行う選択部210の機能構成例について、図11のブロック図を用いて説明する。
画像群取得部1102は、画像取得部202が取得した撮像画像データ群のうち、対象とする見開きに割り当てられたグループに属する撮像画像データ群を取得する。更に画像群取得部1102は、該グループに属するそれぞれの撮像画像データの撮像日時、メイン写真スロット用の得点、サブ写真スロット用の得点を取得する。
カウンタ1103は、1つのグループから画像データが選択された回数Cをカウントする。カウンタ1103は、1つのグループについての画像データ選択が完了し、次のグループについて画像データ選択を行う際には、Cの値を0にリセットする。
分割部1105は、撮像期間を上記の如く分割する。分割部1105は先ず、画像群取得部1102が取得したそれぞれの撮像画像データの撮像日時において元も過去の撮像日時と最近の撮像日時との差分、即ち撮像期間を求める。そして分割部1105は、撮像期間を2C個の分割期間に均等に分割する。なお、撮像期間の分割は2C個の分割期間に均等に分割することに限るものではなく、撮像期間を選択したい画像の個数の分割期間となるように均等に分割してもよい。
設定部1106は、グループに属するそれぞれの撮像画像データに係る情報を管理する。
得点軸設定部1104は、画像選択部1108がメイン写真スロット用の撮像画像データを選択する際には、得点軸として、メイン写真スロット用の撮像データを選択するための評価基準(メイン写真スロット用評価基準)を画像選択部1108に供給する。また、得点軸設定部1104は、画像選択部1108がサブ写真スロット用の撮像画像データを選択する際には、得点軸として、サブ写真スロット用の撮像を選択するための評価基準(サブ写真スロット用評価基準)を画像選択部1108に供給する。例えば、得点軸設定部1104は、C=0であればメイン写真スロット用評価基準を画像選択部1108に供給し、C>0であればサブ写真スロット用評価基準を画像選択部1108に供給する。
画像選択部1108は、グループに属する撮像画像データ群からメイン写真スロット用の撮像画像データ、サブ写真スロット用の撮像画像データを選択する。画像選択部1108は、得点軸設定部1104からメイン写真スロット用評価基準を受けた場合には、グループに属する撮像画像データ群からメイン写真スロット用の得点が最高の撮像画像データを選択するための処理を行う。また、画像選択部1108は、得点軸設定部1104からサブ写真スロット用評価基準を受けた場合には、グループに属する撮像画像データ群からサブ写真スロット用の得点が最高の撮像画像データを選択するための処理を行う。このように、画像選択部1108は、得点軸設定部1104から受けた得点軸に対応する得点が最高の撮像画像を、グループに属する撮像画像データ群から選択するための処理を行う。なお、図9を用いて説明したように、画像データが1つもない分割期間からは画像データは選択しない。また、本実施形態では、分割期間から選択する画像データの数を1としたが、2以上でも構わない。
なお、本実施形態では、利用する得点軸として、メイン写真スロット用の得点軸、サブ写真スロット用の得点軸を例に挙げて説明したが、別の得点軸を用いてもよい。例えば、メイン写真スロット用の得点軸、サブ写真スロット用の得点軸に加えて、さらに、人物関連度用の得点軸を用いるようにしてもよい。なお、人物関連度は、例えば、人物の登場回数や一緒に写った回数に基づいて得点化することができる。具体的には、登場回数が多い場合は、人物関連度が高いと判定することができ、一緒に写った回数が多いと人物関連度が高いと判定することができる。また、各得点軸を切り替えるようにしたが、メイン写真スロット用の得点軸、サブ写真スロット用の得点軸、人物関連度用の得点軸などを組み合わせた統合得点軸を用いてもよい。このとき、メイン写真スロット用の得点、サブ写真スロット用の得点、人物関連度の得点、の統合得点を算出する際の各得点の重みを変更してもよい。また、処理する回数によって利用する得点軸をランダムに変更してもよいし、予め用意したテーブルを参照して得点軸を切り替えるようにしてもよい。
類似判定部1109は、グループから選択された撮像画像データと、該グループから前回選択された撮像画像データとの類似度を求める。この類似度が閾値以上であれば類似していると判定し、閾値未満であれば類似していないと判定する。類似していないと判定された場合は、そのグループから選択した撮像画像データを出力し、類似していると判定された場合は、そのグループから選択した撮像画像データを破棄する。類似判定は、パターンマッチングによる判定、SHIFT法を用いた判定などを用いることができる。類似判定に用いる閾値は、比較する画像データの撮像日時の差に応じて変更する。例えば、類似判定結果が0〜100のレンジで出力される場合に100に近いほど似ているとし、閾値以上であれば類似していると判定し、閾値未満であれば類似していないと判定する。連写などにより撮像日時の差が短い場合(例えば15秒以内)は、閾値を低く設定する(例えば、60に設定する)。それ以外は閾値を80に設定する。閾値を低くすることにより、類似していると判断されやすくなり、少しの類似であっても類似画像と判断され、選択画像データが解除されることになる。本実施形態では、このように、撮像日時の差に応じて判定基準を変更する。
統合部1112は、類似判定部1109で非類似と判定された撮像画像データから、最終的に残す撮像画像データを選別する。複数の分割期間から撮像画像データが選択された場合にいずれの分割期間の撮像画像を選別するかを判断する。この判断の際には、画像選択部1108で画像選択の際に用いた得点を用い、最高得点の画像データを選択する。なお、本実施形態では、最高得点の画像を選択するものとしたが、これに限定されるものではない。例えば、画像データが選択された区間のうち、隣接する区間から画像データが選択されていない区間から選択するようにしてもよい。
枚数設定部1101は、1つの見開きにおいて配置される撮像画像データに基づく撮像画像の総数を設定する。画像管理部1113は、統合部1112で選択された撮像画像データを選択画像データとして追加し、枚数設定部1101で設定された必要数を超えていないかを判定する。必要数に到達した場合は画像データ選択処理を終了する。必要枚数に達成していない場合は、カウンタ1103にカウントアップを指示し、上述した画像データ選択処理を再度実行させる。図11に示す構成を有する選択部210が行う画像データ選択処理について、図12のフローチャートに従って説明する。
<ステップS1201>
枚数設定部1101は、処理対象の見開きに割り当てられたグループから選択する撮像画像データの総数を設定する。
<ステップS1202>
画像群取得部1102は、画像取得部202が取得した撮像画像データ群のうち、処理対象の見開きに割り当てられたグループに属する撮像画像データ群を取得する。
<ステップS1203>
カウンタ1103は、画像選択部1108による画像データ選択回数Cをカウントする。初期状態では、画像選択は実行されていないのでC=0である。
<ステップS1204>
得点軸設定部1104は、画像選択回数Cに応じて得点軸を画像選択部1108に供給する。本実施形態では、画像データ選択回数C=0のときは、メイン写真スロット用の得点軸を設定し、画像データ選択回数C=1以上のときは、サブ写真スロット用の得点軸を設定する。
<ステップS1205>
分割部1105は、処理対象の見開きに割り当てられたグループに属する撮像画像において最も過去の撮像日時と最近の撮像日時との差分を撮像期間として求め、該求めた撮像期間を画像選択回数Cに応じた個数の分割期間(区間)に分割する。なお、第1回目のステップS1205では画像選択回数C=0であるため、撮像期間の分割は行われない。
<ステップS1206>
設定部1106は、グループに属するそれぞれの撮像画像データに係る情報を管理する。撮像画像データに係る情報としては、ステップS410で求めた画像の得点、撮影時間情報、いずれの分割期間に属するものであるかの情報、選択済みの画像か否かの情報が挙げられる。
<ステップS1207>
分割部1105により分割されたそれぞれの分割期間のうち未選択があるか判定する。未選択区間がない、すなわち、全ての分割期間から既に撮像画像データが選択されている場合には、処理はステップS1211に進む。一方、分割期間から未だ撮像画像データが選択されていない未選択区間がある場合には、処理はステップS1208に進む。
<ステップS1208>
画像選択部1108は、得点軸設定部1104から供給された得点軸に従って、ステップS1207において未選択とされた分割期間から1つの撮像画像データを選択する。
<ステップS1209>
類似判定部1109は、今回のステップS1208で選択した撮像画像データと前回ステップS1208で選択した撮像画像データとの類似度を求める。そしてこの類似度が閾値以上であれば類似していると判断して、処理はステップS1210に進む。一方、類似度が閾値未満であれば類似していないと判断して、処理はステップS1211に進む。
<ステップS1210>
類似判定部1109は、ステップS1208で選択した撮像画像データを破棄する。
<ステップS1211>
分割部1105により分割されたそれぞれの分割期間のうち未選択の分割期間が残っている場合には、処理はステップS1206に戻り、残っていない場合には、処理はステップS1212に進む。
<ステップS1212>
統合部1112は、類似判定部1109で非類似と判定された各分割期間からの選択画像データから、最終的に残す画像データを選別する。すなわち、ステップS1207〜S1211で2以上の撮像画像データが残った場合、何れか1つを残すための選別を行う。
<ステップS1213>
画像管理部1113は、ステップS1212を経て残った撮像画像データを、処理対象となる見開きに対して使用する画像データ(選択画像データ)として追加する。
<ステップS1214>
画像管理部1113は、ステップS1213による追加の結果として現在の選択画像データの数が枚数設定部1101で設定された必要数を超えていないかを判定する。必要枚数に到達した場合は画像データ選択処理を終了する。一方、必要枚数に達成していない場合は、処理はステップS1203に戻る。この場合、カウンタ1103は画像データ選択回数Cを1つインクリメントし、以降の各ステップの処理が行われる。その結果、前回よりも2倍多い分割期間が設定される。分割期間がより細かく分割されることにより、分割期間内での撮像画像データに対する得点によるランクが変化するので、前回では選択されなかった撮像画像データが選択される。
<ステップS422>
レイアウト部212は、画像レイアウトの決定のために、ステップS421で選択した画像データを基にしてテンプレートを選択する。入力部211が入力したテンプレート群のうち、着目する見開きに適用するテンプレートを、該着目する見開きについて選択した撮像画像データに基づいて選択する。以下では具体例を挙げてステップS422における処理を説明するために、入力部211は、図10(A)の(1−1)〜(4−4)の16枚のテンプレートを入力したとする。なお、ステップS422ではメイン写真スロット用に1枚の撮像画像データ、サブ写真スロット用に2つの撮像画像データを選択しているとする。この場合は、図10(A)に示すように写真スロットの数が3のテンプレート群を候補とする。ここで、ステップS421にて選択した3つの撮像画像データに基づく画像を撮像日時が古いものから順に並べると、図10(B)に示す如く、縦長(縦向き)の画像1006、横長(横向き)の画像1007、縦長(縦向き)の画像1005であったとする。なお、画像1006及び1007はサブ写真スロットに配置する撮像画像であり、画像1005はメイン写真スロットに配置する撮像画像である。
本実施形態では、テンプレートの左上に撮像日時のより古い画像、右下に撮像日時のより新しい画像をレイアウトするものとする。図10(B)に示す如く、メイン写真スロットに配置する縦長の画像1005の撮像日時が最近であるため、右下に最近の撮像日時の縦長のメイン写真スロット用の画像を配置するレイアウト(3−1)〜(3−4)が候補として残る。
また、撮像日時が最も古い画像は縦長のサブ写真スロット用の画像1006であり、左上に最も古い撮像日時の縦長のサブ写真スロット用の画像を配置するレイアウト(3−1)、(3−2)が候補として残る。
また、撮像日時が2番目に古い画像は横長のサブ写真スロット用の画像1007であり、左上及び右下以外に2番目に古い撮像日時の横長のサブ写真スロット用の画像を配置するレイアウトは、(3−2)のみである。
然るに、この場合は、(3−2)のレイアウトを、着目する見開きに適用するテンプレートとして選択する。なお、着目する見開きに適用するテンプレートの選択方法は上記の方法に限るものではなく、他の方法を採用しても構わない。
<ステップS423>
画像補正部214は、入力部213が取得したフラグ値が、画像補正を実施することを示す値である場合には、選択部210が選択した3つの撮像画像データのそれぞれに対して、覆い焼き補正、赤目補正、コントラスト補正等の補正処理を施す。もちろん、画像補正部214は、入力部213が取得したフラグ値が、画像補正を実施しないことを示す値である場合には、補正処理は実行しない。補正する画像の画素数は短辺1200画素で、sRGBの色空間に変換した画像に対して画像補正ON/OFFを実施する。
<ステップS424>
出力部215は、ステップS422で選択したテンプレート上のそれぞれの写真スロットに、該写真スロットに対してステップS421で選択された撮像画像データを、該写真スロットのサイズにリサイズして配置した「見開きのページの画像データ」を生成する。なお、配置する画像は撮像画像の代わりに、該撮像画像から生成した解析画像であっても良い。そして出力部215は、この生成した「見開きのページの画像データ」をレイアウト情報として出力する。出力先はディスプレイ105であっても良いし、HDD104であっても良い。本実施形態では、「見開きのページの画像」をユーザに確認させると共に、必要であれば編集を可能にするために、「見開きのページの画像」をディスプレイ105に対して出力する。
<ステップS425>
ステップS421において全ての見開きを選択した場合には、図4のフローチャートに従った処理は終了する。一方、未選択の見開きが残っている場合には、処理はステップS421に戻る。
次に、自動レイアウト処理部218による上記の処理中にディスプレイ105に表示される画面の推移について、その推移を表す図15のフローチャートを用いて説明する。上記の通り、例えば、ディスプレイ105に表示されているアプリケーションのアイコンがユーザによりマウス107を使ってダブルクリックされることにより図3のGUI301がディスプレイ105に表示される(S1501)。図3のGUI301は、アルバムの作成条件を設定する設定画面である。
図3のGUI301において上記の通り様々な設定を行ってから、ユーザがキーボード106やマウス107を操作してOKボタン308を指定すると、図4のフローチャートに従った処理が開始される。更に、ディスプレイ105には、図21に示すような、処理の進行の度合いを表したウィンドウ2101が表示される(S1502)。
進捗バー2102は、図4のフローチャートに従った処理の開始時には0%を指し、該処理が進むにつれ、その長さは長くなり、ステップS415の処理が完了した時点で100%を指す。すなわち、本実施形態では、「アルバム作成進捗表示」において、解析画像が生成されてから表紙のレイアウト画像データが作成されるまでの処理の進行度を表示する。その間の進捗バー2102の長さは、図4のフローチャートにおいて予め設定した各処理を完了するたびに対応する長さとなるように更新される。また、顔検出や個人認識などの解析処理には処理時間がかかるため、解析実行時には画像の数に応じて表示を更新してもよい。
そして、進捗バー2102が100%を指し示すと、即ち、ステップS415の処理が完了とすると、図16に例示するGUIをディスプレイ105に表示する(S1503)。
領域1601には、撮像画像がレイアウトされた結果のプレビュー画面が表示される。図16では起動直後のGUIを示しており、この時点では、表紙ページ(おもて表紙及び裏表紙の見開きページ)の画像しか生成されていないため、この表紙ページの画像が領域1601内に表示されている。
写真スロット1602は、裏表紙用の写真スロットであり、この写真スロット1602には裏表紙に割り当てられた撮像画像が配置される。写真スロット1603は、表紙用の写真スロットで、この写真スロット1603には表紙に割り当てられた撮像画像が配置される。
タイトル領域1604は、フォトアルバムのタイトルなどのテキスト情報を入力するための領域であり、GUIの起動直後の時点では何も表示されていない。例えば、ユーザがキーボード106やマウス107を操作してタイトル領域1604を指定することでタイトル領域1604に文字入力が可能となり、キーボード106やマウス107等の入力手段を操作してタイトル領域1604に文字を入力する。また、タイトル領域1604は、マウス107によるドラッグ操作などによって、その位置を移動させることができる。
ユーザがキーボード106やマウス107を操作して表紙ページの写真スロットのうち所望の写真スロット(図16では写真スロット1602、1603の何れか)を指定して画像入替えボタン1605を指定する。この指定を受け付けると、ディスプレイ105には図17に例示するGUI1701が表示される。GUI1701は、ユーザが指定した写真スロットに現在配置されている撮像画像を所望の撮像画像に置き換えるための操作を受け付けるGUIである。すなわち、GUI1701は、画像入替画面である。このGUI1701については後述する。
図16に戻って、ユーザがキーボード106やマウス107を操作して表紙ページの写真スロットのうち所望の写真スロット(図16では写真スロット1602、1603の何れか)を指定して画像編集ボタン1606を指定する。この指定を受け付けると、ディスプレイ105には図18に例示するGUIが表示される。図18に例示するGUIは、ユーザが指定した写真スロットに現在配置されている撮像画像をリサイズ、回転、トリミングするための操作を受け付けるGUIである。すなわち、図18のGUIは、画像編集画面である。このGUIについては後述する。
図16に戻って、ユーザがキーボード106やマウス107を操作してボタン1608を指定すると、次のページのレイアウト結果が領域1601に表示される。ユーザがキーボード106やマウス107を操作してボタン1607を指定すると、前のページのレイアウト結果が領域1601に表示される。すなわち、ボタン1607、ボタン1608は、表示するレイアウト画像を切り替える切替部である。
ここで、図16のGUIが表示された時点では、本身のレイアウトは作成途中である。図16のGUIを表示し、このGUIを操作してタイトル入力や画像の調整などをユーザが行っている間に、本身のレイアウト処理をバックグランドで実行する。そのため、本身のレイアウトが作成中の間は、ボタン1607,1608は機能しないように非表示にしてもよいし、またはグレーアウトして押せないようにしてもよい(無効化)。このとき、ボタン1607,1608が押下された場合は、「レイアウト作成中」等の表示をするようにしてもよい。
次に、バックグランドで実行中の本身のレイアウト作成が完了したか(図4のフローチャートに従った処理が完了したか)否かを判定する(S1504)。レイアウト作成が完了した場合には、処理はS1505に進み、未だ完了していない場合には、処理はS1503に戻る。なお、本実施形態では、本身の全てのレイアウトが完了するまで、ステップS1505に進まないものとしたが、これに限定されず、本身の複数の見開きページのうち、処理が完了した見開きページが有る場合は、ステップS1505に進むようにしてもよい。
レイアウト作成が完了すると、ボタン1607、1608を有効化し(指示可能にし)、ユーザが表紙ページ以外のページのレイアウト結果に関してもプレビューによる確認、及び編集できるようにする(S1505)。
図16においてユーザがキーボード106やマウス107を操作して発注ボタン1609を指定すると、フォトアルバムの発注処理を行う。フォトアルバムの発注処理では、この時点で作成されているページの画像データを、フォトアルバムを作成する業者のサーバ装置などに転送する。一般には、表紙・裏表紙、本身の確認と編集作業が終了した時点で発注ボタン1609が指定されるので、これにより、完成したフォトアルバムを発注することができる。
次に、上記の図17のGUI1701について説明する。領域1702には入れ替え候補となるおすすめの撮像画像が表示される。このおすすめの撮像画像は、例えば、次のようにして決める。画像選択時に、ユーザが入換えを希望した希望撮像画像(画像入れ替えボタン1605を指定する前に指定した写真スロットに配置されている撮像画像)と同区間に属していた撮像画像群のうち得点が高い順に2番目以降の撮像画像をおすすめの撮像画像とする。このときの得点とは、希望撮像画像が配置されている写真スロット(若しくは表紙、裏表紙)に設定された得点軸の得点とする。そしてN(2以上の整数)番目までの撮像画像をおすすめの撮像画像とした場合、領域1702にはN枚の撮像画像がおすすめの撮像画像として表示されることになる。これにより、希望撮像画像と類似した特徴を有し且つ得点の高い画像と容易に入れ替えをすることができる。また、これに限定されず、アルバム作成に用いる撮影期間のうち得点が高い順に、すなわち、得点が2番目以降の撮像画像をおすすめの撮像画像としてもよい。
領域1703には、HDD104に保存されている全ての撮像画像が表示される。なお、撮像画像が多い場合は、ユーザのスクロールバーの移動操作に伴い、撮像画像を順に表示させる。なお、所望の条件を満たす撮像画像のみを領域1703に表示させるべく、その条件を指定するようにしても良い。
ユーザはキーボード106やマウス107を操作して領域1702及び領域1703から所望の撮像画像を選択してからOKボタン1704を指定すると、GUI1701は消去される。そして、図16のGUIにおいてユーザが画像入れ替えを希望して指定した写真スロット内の撮像画像は、GUI1701においてユーザが指定した撮像画像に入れ替えられる。一方、ユーザがキーボード106やマウス107を操作してキャンセルボタン1705を指定すると、GUI1701は消去され、画像入れ替えは行われない。
次に、図18のGUIについて説明する。プレビュー領域1801には、画像編集ボタン1606を指定する際に図16のGUIにおいてユーザが指定した写真スロット内の撮像画像(編集対象画像)が、該写真スロットとサイズ比率で同じアスペクト比で表示される。
ユーザがキーボード106やマウス107を操作して拡大ボタン1802を指定するたびに編集対象画像は拡大される。編集対象画像が拡大されると、そのサイズはプレビュー領域1801よりも大きくなりはみ出してしまうが、そのはみ出した部分は表示せず、プレビュー領域1801に収まる部分だけがプレビュー領域1801内に表示される。すなわち、プレビュー領域1801に表示される部分を、撮像画像からトリミングする。拡大ボタン1802を指定するたびに、例えば5%ずつ拡大させる。
ユーザがキーボード106やマウス107を操作して縮小ボタン1803を指定するたびに編集対象画像は縮小される。縮小ボタン1803は編集対象画像がプレビュー領域1801よりも大きいサイズの場合にのみ有効となり、プレビュー領域1801と同サイズとなった場合には無効となる。縮小ボタン1803を指定するたびに、例えば5%ずつ縮小させる。
ユーザがキーボード106やマウス107を操作してボタン1804を指定するたびに、プレビュー領域1801内の画像は左回りに90度回転させられる。ユーザがキーボード106やマウス107を操作してボタン1805を指定するたびに、プレビュー領域1801内の画像は右回りに90度回転させられる。なお、画像を回転する際にプレビュー領域1801に空白領域が生じないように、プレビュー領域1801内の画像を適宜リサイズする。また、プレビュー領域1801上で画像をドラックして任意の方向に移動することにより、プレビュー領域1801に含まれていない他の画像部分をプレビュー領域1801内に表示させることができる。
なお、ここでは、拡大率及び縮小率は何れも5%としたが、この値に限るものではない。また、この拡大率や縮小率はユーザがテキスト入力やバーの長さ調節などによって適宜変更できるようにしても構わない。また、ここでは、画像編集の一例として画像の拡大/縮小、回転、を示したが、色味調整や階調調整などの他の画像編集を可能にするGUI(操作部)を構成しても構わない。
また、ここでは説明のために、画像得点化後に表紙・裏表紙画像の選択及びレイアウトを実行する方法を説明したが、見開き割当後に各見開きごとに高スコアの画像を選択して表紙画像に用いてもよい。その際、採用する画像枚数はページ見開き数を最大数と設定し、それ以下の画像枚数で表紙を作成してもよい。利用する画像枚数は、レイアウト後の最大画像サイズの解像度、レイアウト後の最小画像サイズ内の顔サイズなどによって設定してもよい。
本実施形態では、表紙・裏表紙のレイアウト処理を本身のレイアウト処理よりも先に実行し、表紙・裏表紙のレイアウト(画像をテンプレートに配置したレイアウト画像)が完成した時点でレイアウト結果をプレビューする。これにより、ユーザはタイトル入力などの編集を行うことができる。ユーザが表紙の編集作業を行っている間にバックグランドで本身のレイアウト処理を行い、完成した時点でプレビュー及び編集可能とすることで、アルバム作成を効率的に行うことができる。また、表紙・裏表紙のレイアウトが完成した時点でプレビューすることで、編集開始までのユーザの待機時間を低減することができる。
更に、表紙・裏表紙に利用する画像の選択条件を変更することにより、バリエーションに富んだ画像選択を行うことができ、ユーザ満足度の高いアルバムの表紙を作成することができる。
[第2の実施形態]
以下では第1の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第1の実施形態と同様であるものとする。本実施形態では、タイトル領域に画像に含まれる顔領域が重ならないように、撮像画像をトリミングする。本実施形態では、レイアウト部217は、図22に例示する構成を有する。
取得部2201は、入力部211が入力したテンプレート群のうち、表紙/裏表紙に適用する候補となるテンプレート群を取得する。取得部2201によって取得されるテンプレートには、タイトル領域が設けられている。
取得部2202は、取得部2201が取得したそれぞれのテンプレートにおけるタイトル領域の座標位置(テンプレートに添付された情報に含まれている)を取得する。この座標位置は、タイトル領域の4隅の座標位置であっても良いし、左上隅及び右下隅の座標位置であっても良いし、1隅の座標位置と縦横サイズであっても良い。
取得部2203は、選択部216が選択した撮像画像データ(表紙用の撮像画像データ)を取得する。
取得部2204は、取得部2203が取得した撮像画像データについての画像解析部204による解析結果に含まれている、該撮像画像中の顔の数、該顔の座標位置を取得する。座標位置は、顔領域の4隅若しくは対向する2隅の座標位置、若しくは1隅の座標位置と縦横サイズである。
選定部2205は、取得部2202が取得したタイトル領域の座標位置と、それぞれの顔の座標位置と、を用いて、タイトル領域に最も近い顔の座標位置を特定する。例えば、それぞれの顔の座標位置をテンプレート上の座標位置に変換し、変換後の座標位置のうち、タイトル領域に最も近い座標位置を特定する。
判定部2206は、取得部2202が取得したタイトル領域の座標位置と、それぞれの顔の座標位置と、を用いて、タイトル領域と重複している顔の座標位置を特定する。トリミング部2207は、選択部216が選択した撮像画像から表示対象となる部分画像をトリミングする。判定部2206及びトリミング部2207の動作について、図14を用いて説明する。
図14に示す領域2401は、表紙用の撮像画像をレイアウトする領域(写真スロット)であり、図14では説明上、該撮像画像全体は示しておらず顔(顔領域2402,2403)のみを示し、顔以外は省略している。顔領域2402の左上隅の座標位置は(F1x、F1y)で、顔領域2402の縦サイズ=F1H、横サイズ=F1W、顔領域2403の縦サイズ=F2H(>F1H)、横サイズ=F2W(>F1W)である。領域2404はタイトル領域であり、その左上隅の座標位置は(Tx,Ty)、縦サイズ=TH、横サイズ=TWである。ここでは説明上、表紙用の撮像画像に含まれている顔の数は2つとし、検出された顔は面内回転が0度の状態とし、検出された顔の幅および高さは同じ長さとする。
また、領域2401にレイアウトする撮像画像のサイズは領域2401のサイズよりも十分に大きいものとし、領域2401内には、撮像画像の一部の領域がトリミングされて表示されているものとする。また、図14においてx軸の増加方向を右方向とし、y軸の増加方向を下方向とする。
このような状況において、選定部2205は先ず、それぞれの顔領域の縦サイズのうち最大の縦サイズを特定する。図14の場合、F2H>F1Hであるから、最大の縦サイズとしてF2Hを特定する。そして選定部2205は、領域2404の縦横サイズを最大の縦サイズF2Hだけ広げた領域2405(横サイズ=JW、縦横サイズ=JH)を、以下の重なり判定を行うタイトル領域として設定する。
そして選定部2205は、顔領域2403よりも顔領域2402の方が領域2404に近いと判断するため、判定部2206は、顔領域2402と領域2405とが重複しているか否かを判断する。重複判断には様々な方法が考えられるが、ここでは、顔領域2402の左上隅の座標位置(F1x、F1y)が領域2405に含まれているか否かを判断する。なお、ここでは、顔検出結果で顔と判定された顔領域2402に対し、所定幅のマージンを縦及び横にそれぞれ設けた領域をトリミング対象領域とする。顔検出結果は検出時に顔サイズを誤って判定する可能性があるためである。図14では、実際には、領域2404に顔がかかっていないが、トリミング対象領域が重なっているため、顔領域2402が領域2404に重なっていると判定される。なお、マージンは、固定値としてもよいし、顔領域2403のサイズに応じて適宜設定してもよい。例えば、顔領域2403に対して上下左右に10%のマージンを設定するようにしてもよい。
ここではタイトル領域に顔領域がかかった場合には一律の判定基準で回避する方法を記載したが、かかる顔サイズに応じて判定基準を変更してもよい。例えば、顔が小さい場合は判定基準を緩くし、顔が大きい場合は判定基準を厳しくしてもよい。
判定部2206が重複していると判断した場合、トリミング部2207は、撮像画像において現在領域2401に表示している部分領域を{F1H−(Ty+TH+F2H)}の量だけy方向に移動させた部分領域を特定する。そしてトリミング部2207は、該特定した部分領域内の画像(撮像画像の部分画像)を領域2401内に配置する。
以上説明したレイアウト部217の動作について、図23のフローチャートに従って説明する。ステップS2301では、取得部2201は、入力部211が入力したテンプレート群のうち、表紙/裏表紙に適用する候補となるテンプレート群を取得する。ステップS2302では、取得部2202は、取得部2201が取得したそれぞれのテンプレートにおけるタイトル領域の座標位置を取得する。ステップS2303では、取得部2203は、選択部216が選択した撮像画像(表紙用の撮像画像)を取得する。ステップS2304では、取得部2204は、取得部2203が取得した撮像画像についての画像解析部204による解析結果に含まれている、該撮像画像中の顔の数、該顔の座標位置を取得する。ステップS2305では、選定部2205は、取得部2202が取得したタイトル領域の座標位置と、それぞれの顔の座標位置と、を用いて、タイトル領域に最も近い顔の座標位置を特定する。ステップS2306では、選定部2205は先ず、それぞれの顔領域の縦サイズのうち最大の縦サイズを特定し、該特定した縦サイズ分だけタイトル領域を拡大した拡大領域を設定する。そして判定部2206は、ステップS2305で特定した座標位置によって規定される顔領域と拡大領域とが重複しているか否かを判定する。
この判定の結果、重複している場合には、処理はステップS2307に進み、重複していない場合には、図23のフローチャートに従った処理は完了する。ステップS2307では、トリミング部2207は、撮像画像において現在表示中の部分領域を上記の分だけy方向に移動させた部分領域を特定し、該特定した部分領域内の画像を表紙に配置する。
このように、表紙を作成する際に表紙画像の顔領域がタイトル領域に重ならないように制御することにより、アルバムの表紙の完成度・ユーザの満足度を上げることができる。更に、表示前にタイトル領域に顔領域がかからないように制御しておくことで、ユーザの編集にかかる手間を軽減することができる。なお、拡大領域の代わりに元のテキスト領域との重複判定を行うようにしても構わない。
[第3の実施形態]
以下では第1の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第1の実施形態と同様であるものとする。第1,2の実施形態では、表紙に配置する画像及び裏表紙に配置する画像を補正してからレイアウトした表紙ページの画像を表示していた。本実施形態では、表紙ページの画像をより早く表示するべく、表紙に配置する画像及び裏表紙に配置する画像は補正せずにレイアウトして表紙ページの画像を生成して表示し、該表示後に画像補正を行って表示を更新する。この手順について、図13のフローチャートを用いて説明する。
選択部216が第1の実施形態と同様にして、表紙及び裏表紙で1ページとする表紙ページにレイアウトする規定数の撮像画像データを選択する(S2501)。次に、レイアウト部217が、第1の実施形態と同様にして、表紙/裏表紙に適用するテンプレートを選択する(S2502)。次に、出力部215は、第1の実施形態と同様にしてテンプレート上のそれぞれの写真スロットに撮像画像を配置した「表紙ページの画像データ」を生成し(S2503)、「表紙ページの画像データ」をレイアウト情報として出力する(S2504)。これによりディスプレイ105には、この表紙ページの画像データに基づく「表紙ページの画像」を含むGUIが表示される。ここで、この「表紙ページの画像」は第1の実施形態のように補正されたものではない。そこで次に、画像補正部214は、「表紙ページの画像」にレイアウトされた撮像画像を第1の実施形態と同様にして補正する(S2505)。そして、出力部215はS2503と同様にして、この補正された撮像画像をテンプレート上のそれぞれの写真スロットに配置した「表紙ページの画像データ」を生成し、「表紙ページの画像データ」をレイアウト情報として出力する(S2506)。これによりディスプレイ105に表示中のGUIに含まれている撮像画像は、補正前の撮像画像から補正後の撮像画像に更新される。補正を適用する画像の順番は表紙画像を初めに行い、次に裏表紙画像に対して処理を行う。画像が複数ある場合には表示サイズが小さい画像から補正処理を実行する。
そして、表紙・裏表紙に利用されている全ての画像に対して画像補正を実行した場合には、図13のフローチャートに従った処理は完了し、未だ画像補正を行っていない画像が残っている場合には、S2505,S2506の処理を繰り返す。
ここでは説明のために、画像補正を行う順を表紙と裏表紙で設定したが、選択部216で利用した画像得点の順によって処理順を設定してもよい。また、マルチスレッドで表紙・裏表紙で採用した画像を同時に画像補正を実行して、補正できた画像から順に表示してもよい。
このように表紙・裏表紙のレイアウト結果を表示する際に、はじめは画像補正なしの状態で表示を行う。その後、画像補正が適用された画像から表示を更新することにより、より速く表紙・裏表紙のレイアウト結果を表示することができ、ユーザが編集作業に着手できるまでの時間を短縮することができる。
[第4の実施形態]
上記の実施形態では、表紙ページとして、おもて表紙及び裏表紙のいずれも作成する場合について説明したが、裏表紙を生成せずに、おもて表紙のみを生成するようにしてもよい。
上記の第2の実施形態では、選択した画像に含まれる顔領域がタイトル領域にかからないように、撮像画像をトリミングするものとしたが、これに限定されず、選択した画像の顔領域がタイトル領域に重ならないテンプレートを選択するようにしてもよい。すなわち、タイトル位置及び/又はスロットの位置が異なる複数の表紙テンプレートを予め用意しておき、その中から選択した画像に含まれる顔領域がタイトル領域にかからないテンプレートを選択するようにしてもよい。
上記の実施形態では、フォトアルバムを作成するアプリケーションについて説明したが、作成するものはフォトアルバムに限るものではない。例えば、お勧め画像を自動選択するような画像選択処理を備えるアプリケーションや画像処理装置を対象として上記の実施形態の構成を適用しても構わない。
また、図1では、ローカル環境を想定した画像処理装置を例に挙げて説明したが、画像処理装置はこれに限定されるものではない。例えば、サーバ上の画像処理装置であってもよい。この場合は、サーバ内に保存されている画像データを利用又は画像データをアップロードするようにすればよい。
また、上述した実施形態では、図9に示すように、画像データを選択してから順に期間分割するようにしたが、これに限定されるものではない。例えば、選択する画像データの数に応じて、予めその数に分割してもよい。この場合の画像データ選択方法について、図9を用いて説明する。なお一例として、4つの撮像画像データを選択したい場合について説明する。
まず、図9(E)に示すように撮像期間を4等分する。そして、撮像期間に関わらず、1つ目の撮像画像データを選択する。次に、2つ目の撮像画像データは、1つ目の撮像画像データが選択されていない3つの撮像期間から選択する。次に、3つ目の撮像画像データは、1つ目の撮像画像データも2つ目の撮像画像データも選択されていない2つの撮像期間から選択する。4つ目の撮像画像データは、1つ目の撮像画像データも2つ目の撮像画像データも3つ目の撮像画像データも選択されていない撮像期間から選択する。なお、その撮像期間に撮像画像データが存在しない場合は、図9(H)と同様に、1つ目の撮像画像データを取得した撮像期間、2つ目の撮像画像データを取得した撮像期間、3つ目の撮像画像データを取得した撮像期間を分割して、撮像画像データを選択すればよい。
また、上述した実施形態では、画像が写真であるものとし、撮像日時に基づいてグループ分けをするようにしたが、画像データを作成した日時でグループ分けをするようにしてもよい。また、上記の各実施形態はその一部若しくは全部を適宜組み合わせて使用しても構わない。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。