以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
以下の実施形態では、画像処理装置上で、アルバム作成のためのアプリケーションプログラム(以下、「アルバム作成アプリ」ともいう)を動作させ、自動レイアウトを生成するまでの手順について説明する。以下に説明する画像とは、特に断りが無い限り、静止画、動画、動画中のフレーム画像、また、SNS(ソーシャル・ネットワーキング・サービス)サーバ上の静止画と動画と動画中のフレーム画像を含む。
(第1実施形態)
図22は、本発明に係る画像処理装置100のハードウェアの構成を説明するブロック図である。画像処理装置としては、例えば、PC(パーソナルコンピュータ)、スマートフォン、タブレット端末、カメラ、プリンタ等が挙げられ、本実施形態ではPCとする。
図24において、画像処理装置100は、CPU101と、ROM102と、RAM103と、HDD104と、ディスプレイ105と、キーボード106と、マウス107と、データ通信部108と、を備えている。これらは、データバス109により相互に接続されている。
CPU(中央演算装置/プロセッサ)101は、システム制御部であり、画像処理装置100全体を制御する。また、CPU101は、本実施形態で説明する画像処理方法をプログラムに従って実行する。なお、図中のCPUは1つとしたが、これに限定されず、複数備えられていてもよい。
ROM102には、CPU101により実行されるプログラムやOS(オペレーティングシステム)が記憶されている。RAM103は、CPU101によるプログラムの実行時に、各種情報を一時的に記憶するためのメモリを提供している。HDD(ハードディスク)104は、画像ファイルや画像解析などの処理結果を保持するデータベースなどを記憶するための記憶媒体である。本実施形態では、RAM103は、後述するアルバム作成アプリを記憶する。
ディスプレイ105(表示部)は、本実施形態のUI(ユーザインターフェイス)や画像のレイアウト結果をユーザに提示する装置である。ディスプレイ105は、タッチセンサー機能を備えていても良い。キーボード106は、入力装置の1つであり、例えば、ディスプレイ105に表示されたUI上に所定の情報を入力するのに用いられる。所定の情報とは、例えば、作成したいアルバムの見開き数やページ数等の情報である。マウス107は、入力装置の1つであり、例えば、ディスプレイ105に表示されたUI上のボタンをクリックするのに用いられる。なお、例えばユーザが、ディスプレイ105に表示されている、アルバム作成アプリに対応するアイコンを、マウス107の操作によりダブルクリックすることで、アルバム作成アプリが起動する。
データ通信部108(通信部)は、プリンタやサーバなどの外部装置と通信するための装置である。例えば、アルバム作成アプリによって作成されたデータは、データ通信部108を介して、画像処理装置100に接続された不図示のプリンタやサーバに送信される。また、データ通信部108は、不図示のサーバやSNS(ソーシャルネットワーキングサービス)サーバ上の静止画データを受信する。なお、本実施形態では、データ通信部108は、SNSサーバから静止画データを受信するが、動画データも受信しても良い。
データバス109は、上述した各部(102〜108)とCPU101とを接続する。
図11は、画像処理装置100が有するソフトウェアのモジュール構成の一例を表す図である。図11において、モジュール92は、Ethernetを制御するEthernet制御スタックである。モジュール91は、IP Networkを制御するIP Network制御スタックである。モジュール90は、ネットワーク上のデバイス探索の仕組みを提供するWSD(Web Service on Devices)を制御するWSD制御スタックである。モジュール88は、ネットワークのプラグアンドプレイを制御するPnP−X制御スタックである。尚、PnP−Xとは、ネットワーク接続デバイスに対するサポートを提供する、プラグアンドプレイの一連の拡張機能としてWindows8(商標登録)のOSに標準搭載されている機能であるPlug and Play Extensionsの略称である。モジュール85は、デバイスドライバ群であり、OSに標準で同梱されている標準ドライバ群87と、IndependentHardwareVendor(IHV)から提供されるIHV製ドライバ群86とを含んで構成される。
モジュール84は、アプリケーション/DDIインタフェースであり、ApplicationProgramingInterface(API)、DeviceDriverInterface(DDI)を含んで構成される。モジュール80は例えばフォトアルバム作成アプリケーション、モジュール143は例えばWebブラウザアプリケーションである。モジュール82は、アプリケーション群であり、モジュール80、143等を含んで構成される。
図1は、本実施形態の印刷システムを示す図である。この印刷システムには、画像処理装置100のほかに、画像形成装置200、ネットワーク300、外部サーバ400及び画像形成装置500が含まれるものとする。
画像形成装置200は、画像処理装置100等から受け付ける印刷ジョブに基づいて、記録剤によって記録媒体上に画像を形成する画像形成処理(印刷処理)を実行する。なお、本実施形態では、画像処理装置100が、生成したレイアウト情報を外部サーバに送信(出力)する形態を説明するが、例えば、画像処理装置100が、生成したレイアウト情報を印刷ジョブとして画像形成装置200に送信する形態であっても良い。この場合、レイアウト情報に基づくアルバムは、画像形成装置200によって作成される。
ネットワーク300は、画像処理装置100及び外部サーバ400と接続しており、両者の間における情報の伝達を行うための通信網である。なお、ネットワーク300は、有線ネットワークであっても良いし、無線ネットワークであっても良い。
外部サーバ400は、ネットワーク300を介して画像処理装置100から後述のレイアウト情報を受け付ける。すなわち、外部サーバ400は、アルバムの受注・管理を司るサーバである。外部サーバ400は、画像処理装置100を操作するユーザによってアルバム購入手続きが行われたら、受け付けたレイアウト情報に基づくアルバムを、画像形成装置500に画像形成処理によって作成させる。その後、画像形成装置500によって作成されたアルバムは、アルバム購入手続きを行ったユーザに届けられる。
<アルバムの自動レイアウト>
図2は、本実施形態のアルバム作成用のアプリケーションプログラム(以下、アルバム作成アプリ)のソフトウェアブロック図である。本実施形態では、HDD104に保存されているアルバム作成アプリは、ディスプレイ105に表示されている、アルバム作成アプリに対応するアイコンを、ユーザがマウス107の操作によりダブルクリックすることで起動される。また、アルバム作成アプリは、例えば、データ通信部108を介して外部のサーバからインストールされることで、HDD104に保存される。
アルバム作成アプリは様々な機能を持つが、ここでは、特に自動レイアウト処理部219により提供される自動レイアウト機能に関して説明する。自動レイアウト機能は、静止画や動画をその内容や属性に基づいて分類及び選択することで取得された画像データによって表わされる画像が、予め用意されたテンプレートに配置された画像であるレイアウト画像を作成するための機能である。ひいては、レイアウト画像を表わすためのレイアウト情報を生成するための機能である。このようにして表示されたレイアウト画像は、ユーザがアルバム注文処理を実行することで、アルバムとして出力される。
図2に示すように、アルバム作成アプリは、アルバム作成条件指定部201と、自動レイアウト処理部219と、を含む。
アルバム作成条件指定部201は、例えばマウス107による後述のUI操作に応じたアルバム作成条件の指定を受付け、自動レイアウト処理部219に出力する。指定される条件には、例えば処理の対象となる画像データや主人公のID、アルバムの見開き数、テンプレート情報、画像補正のON/OFF条件、動画使用のON/OFF条件、アルバムのモード等の指定が含まれる。なお、見開きとは、異なるシート(又はページ)に印刷された、互いに隣接する1対のページに相当する。また、本実施形態のアルバム作成アプリでは、一つの表示用ウィンドウで1つの見開きのレイアウトを作成するものとする。なお、アルバム作成条件指定部201は、例えば図3に示すような設定画面を表示し、当該画面に対する入力を受け付けることで、アルバム作成条件の指定を受付ける。
動画取得部202は、アルバム作成条件指定部201により指定された動画群(動画データ群)をHDD104等の記憶領域から取得する。
動画解析部203は、動画取得部202で取得された動画データを解析する。なお、動画解析部203は、動画データから切り出され、時系列順に管理されているフレームを、所定の間隔毎に抽出して解析対象とする。動画解析部203は、オブジェクト検出、サイズ特定、笑顔判定、目瞑り判定、ブレボケ判定、明るさ判定等の解析処理により、動画におけるどのフレームが良い画像かを特定することができる。
フレーム取得部204は、動画解析部203で解析された結果(評価)に基づいて、動画からフレームを切り出し、切り出したフレームを画像データとしてHDD104に保存する。
画像取得部205は、アルバム作成条件指定部201により指定された画像群(画像データ群)をHDD104等の記憶領域から取得する。なお、画像取得部205は、データ通信部108を介してネットワーク上のサーバやSNSサーバ等の記憶領域から画像群を取得しても良い。ここでいう画像群とは、アルバム作成に利用される画像データの候補を指す。例えば、アルバム作成条件指定部201において、レイアウト対象となる画像データが生成された(当該画像データに対応する写真が撮影された)日時(以後、撮影日時という。)に関する条件としてXX年1月1日〜XX年12月31日が指定される場合がある。この場合、画像取得部205は、XX年1月1日〜XX年12月31日に生成された全ての画像データを画像群として取得する。
記憶領域に保存されている画像データは、例えば、静止画像データや、動画データからフレームが切り出されることで取得される切り出し画像データである。静止画像データや切り出し画像データは、撮像デバイスから取得されたものである。撮像デバイスは、画像処理装置100が備えていてもよいし、画像処理装置100の外部の装置である外部装置(PCやスマートホン、デジタルカメラ、タブレット端末等)が備えるものであってもよい。なお、画像処理装置100は、外部装置から画像データを取得する場合は、データ通信部108を介して画像データを取得する。また、画像処理装置100は、静止画像データや切り出し画像データを、データ通信部108を介してネットワークやサーバから取得してもよい。CPU101は、画像データに付随したデータを解析して、各画像データがどこから取得されたのかを判定する。
画像変換部206は、画像取得部205によって取得された画像データの画素数情報や色情報を変換する。なお、画像変換部206によって、どのような画素数情報や色情報の画像データへの変換が行われるかは予め決められており、その情報は、アルバム作成アプリ又はアルバム作成アプリが用いるパラメータファイルに保存されている。本実施形態では、画像取得部205によって取得された画像データを、画素数が短辺420画素、色情報がsRGBである画像データに変換する。
画像解析部207は、画像データの解析処理をする。本実施形態では、画像解析部207は、画像変換部206で変換済みの画像データの解析処理をする。具体的には、変換済みの画像データから特徴量を取得し、変換済みの画像データにおけるオブジェクト検出、顔検出、検出した顔の表情認識、検出した顔の個人認識を実行する。さらに、画像取得部205によって取得された変換前の画像データに付随したデータ(例えば、Exif情報)から、撮影日時情報の取得を行う。撮影日時情報として、Exif情報からの取得に限らず、画像データを作成または更新した日時の情報が用いられてもよい。また、ローカルサーバやSNSサーバに画像データをアップロードまたはローカルサーバやSNSサーバから画像データをダウンロードした日時の情報が用いられてもよい。これらの日時の情報も、以下では撮影日時情報として取り扱う。なお、ローカルサーバとは、HDD104等の、画像処理装置100が備える記憶領域であるものとする。
画像分類部208は、画像データ群に対して、撮影日時情報や枚数、検出した顔情報などのオブジェクト検出結果情報を使って後述のシーン分割、シーン分類を実行する。シーンとは、「旅行」や「日常」、「結婚式」等の撮影シーンのことである。シーンとは、例えば、一時期の撮影機会に生成された画像データの集まりであるともいえる。
主人公情報入力部209は、アルバム作成条件指定部201から指定された主人公のID(識別情報)を画像得点部210に入力する。
画像得点部210は、各画像データに対して、レイアウトに適した画像データが高得点になるように得点付けをする。得点付けは、画像解析部207で得られた情報と、画像分類部208で得られた情報に応じて実行される。また、他の情報が付加的に或いは代替的に用いられてもよい。本実施形態では、画像得点部210は、主人公情報入力部209から入力された主人公IDが含まれる画像データの得点が高得点になるように、各画像データに対して得点付けをする。
見開き入力部211は、アルバム作成条件指定部201から指定されたアルバムの見開き数を見開き割当部212に入力する。
見開き割当部212は、画像群を分割(グルーピング)して各見開きに割り当てる。見開き割当部212は、入力された見開き数に応じて画像群を分割して、各見開きに画像群の一部を割り当てる。
画像選択部213は、見開き割当部212で各見開きに割り当てられた画像群から、画像得点部210で付けた得点に基づいて、画像データを選択する。
テンプレート設定部214は、アルバム作成条件指定部201から指定されたテンプレート情報に応じた複数のテンプレートをHDD104から読み込み、画像レイアウト部215に入力する。なお、本実施形態では、複数のテンプレートは、HDD104に保存されているアルバム作成アプリに保持されているものとする。また、複数のテンプレートには、例えば、テンプレート全体のサイズに関する情報や、テンプレートが備えるスロットの個数、サイズ、位置に関する情報等が含まれる。
画像レイアウト部215は、見開きのレイアウトを決定する。具体的には、テンプレート設定部214により入力された複数のテンプレートから画像選択部213で選択した画像データに適したテンプレートを選択し、各画像の配置位置を決定する。これにより、見開きのレイアウトが決定される。レイアウト情報出力部218から出力される画像データは、例えば図13に示すような形式でディスプレイ105に表示される。
レイアウト情報出力部218は、画像レイアウト部215が決定したレイアウトに従って、ディスプレイ105にレイアウト画像を表示するためのレイアウト情報を出力する。レイアウト画像は、例えば、選択されたテンプレートに画像選択部213により選択された画像データが表わす画像が配置された画像であり、レイアウト情報は、当該画像を表わすビットマップデータである。
画像補正部217は、覆い焼き補正(輝度補正)、赤目補正、コントラスト補正等の各補正処理を実行する。補正条件入力部216は、アルバム作成条件指定部201から指定された画像補正のON/OFF条件を画像補正部217に入力する。
本実施形態に係るアルバム作成アプリが、画像処理装置100にインストールされると画像処理装置100上で動作するOSによりディスプレイ105に表示されるトップ画面(デスクトップ)上に起動アイコンが生成される。そして、ユーザが起動アイコンをマウス107の操作によりダブルクリックすると、HDD104に保存されているアルバム作成アプリのプログラムがRAM103にロードされる。そして、RAM103にロードされたプログラムがCPU101によって実行されて、アルバム作成アプリケーションが起動する。
図3は、起動したアルバム作成アプリが提供するUI構成画面301の一例を示す図である。UI構成画面301は、ディスプレイ105に表示される。ユーザがUI構成画面301を介して、後述するアルバムの作成条件を設定することで、アルバム作成条件指定部201は、ユーザから指定される設定内容を取得する。UI構成画面301上のパスボックス302は、アルバム作成の対象となる画像・動画群のHDD104中の保存場所(パス)を示す。フォルダ選択ボタン303は、ユーザによるマウス107の操作によりクリックされることより、アルバム作成の対象とする画像・動画群を含むフォルダをツリー構成でユーザが選択可能に表示する。そして、ユーザにより選択された画像・動画群を含むフォルダパスがパスボックス302に表示される。
主人公指定アイコン304は、ユーザが主人公を指定するためのアイコンであり、人物の顔画像がアイコンとして表示される。そして、ユーザ操作によって選択されたアイコンに対応する人物が、作成対象のアルバムの主人公として設定される。また、主人公指定アイコン304は、解析対象の画像データが表わす画像に写った人物から中心人物である主人公を特定するために用いられる。主人公指定アイコン304は、例えば顔データベースに登録された人物の顔画像のうち、ユーザによって選択された人物の顔画像や後述の方法で決定された人物の顔画像である。なお、主人公は図4に示す手順で自動設定されることもできる。
見開き数ボックス305は、ユーザからのアルバムの見開き数の設定を受け付ける。ユーザは、キーボード106を介して見開き数ボックス305に直接数字を入力するか、マウス107を用いてリストから見開き数ボックスに数字を入力する。
テンプレート指定アイコン306は、テンプレートのテイスト(ポップ調やシック調等)別にイラスト画像を表示する。そして、ユーザ操作によって選択されたアイコンに対応するテンプレートが、作成対象のアルバムに用いられるテンプレートとして設定される。本実施形態では、テンプレートは、画像データを配置するための画像配置枠(スロット)を有する。そして、テンプレートが有するスロットに、画像データが埋め込まれることで、1つのレイアウト画像が完成する。
モード指定部307は、作成対象のアルバムのモードに対応するアイコンである。なお、アルバムのモードとは、所定のオブジェクトを含む画像を優先してテンプレートにレイアウトするためのモードであり、各モードのアルバムには、各モードに応じたオブジェクトがより多く配置されることになる。本実施形態では、「人物」、「動物」、「料理」の3つのモードがある。なお、アルバムのモードは、例えば、アルバムのテーマと言い換えることができる。例えば、アルバムのモードとして「動物」が選択された場合は、動物を含む画像が優先されてテンプレートにレイアウトされる。なお、上述の3つ以外のオブジェクトが写りこんでいる画像を表わす画像データを優先してテンプレートにレイアウトするためのモードがあっても良い。また、同時に複数のモードが選択されても良い。その場合、選択された複数のモードに対応する複数のオブジェクトの少なくとも1つを含む画像を優先してテンプレートにレイアウトする。そして、選択されたアイコンに対応するモードが、作成対象のアルバムのモードとして設定される。
なお、アルバムのモードは上述の3つに限定されず、例えば、「建物」、「乗り物」、「花」等、他のモードがあっても良い。
チェックボックス308は、ユーザからの画像補正のON/OFFの設定を受け付ける。OKボタン309は、設定が完了したことをユーザから受け付けるためのボタンである。OKボタン309がユーザによって押下されると、アルバム作成条件指定部201は、自動レイアウト処理部219に、画面301上で設定されている各設定情報を、各設定情報に対応する各モジュールに出力する。
リセットボタン310は、UI構成画面301上の各設定情報をリセットするためのボタンである。
なお、UI構成画面301上では、上述した設定以外の設定を実行可能であっても良い。例えば、動画に関する設定や、画像・動画データの取得先の設定等を実行可能であっても良い。
サーバ名ボックスは、アルバム作成に利用される画像群を含むサーバ名やSNS名を示す。ログイン画面を介したユーザの操作により、指定されたサーバやSNSへのログインが完了すると、CPU101は、指定されたサーバやSNSからの画像データの取得が可能となる。
動画使用チェックボックスは、パスボックス302に指定のフォルダや、サーバ名ボックスに指定のサーバやSNS上にある動画をアルバム作成に利用するか否かの設定をユーザから受け付ける。このパスボックス302で指定されたフォルダに保存されている画像データの数が閾値よりも多い場合、フォルダに保存されている画像データの間引き処理が行われ、間引き処理後に残った画像データが図4にて後述する自動レイアウト対象となる。なお、アルバム作成アプリは、各モード用に間引き処理の閾値として2つの閾値を備える。1つ目は、アルバム作成アプリが取り込み可能な画像データの数を示す第1閾値である。2つ目は、画像データの解析処理時間を短縮化するためのクイックモードを実行するか否かをユーザに問い合わせるための第2閾値である。なお、第1閾値の方が第2閾値よりも多い。一例を挙げて説明する。例えば、人物モード用の第1の閾値が5000、第2の閾値が500とする。ユーザがパスボックス302で指定したフォルダに1万個の画像データが保存されていた場合、アルバム作成アプリは、指定されたフォルダに保存されている画像データの数が第1閾値よりも多いので間引き処理を行って5000個の画像データを取得する。そして、残った5000個の画像データが第2閾値の500よりも多いので、アルバム作成アプリは、さらなる間引き処理を実行するか否かをユーザに確認するためにクイックモードを有効化するか否かのクイックモード選択画面を表示する。ここで、ユーザがクイックモードを有効化することを選択した場合、アルバム作成アプリは、1回目の間引き処理で残った5000枚の画像データを更に500枚に減らすための間引き処理を実行する。そして、アルバム作成アプリは、2回目の間引き処理により残った500枚の画像データを使って図4に後述する自動レイアウト処理を実行する。なお、自動レイアウト処理が実行された後、ユーザの手動操作により画像を入れ替えることは可能であるが、1回目の間引き処理で間引かれた画像データは、手動操作の対象とはならない。一方、クイックモードを有効化することで間引かれた画像データ(上記例に当てはめると2回目の間引き処理で間引かれた4500個の画像データ)は、手動操作の対象となる。また、上記例の閾値において、例えば、ユーザがパスボックス302で指定したフォルダに800個の画像データが保存されていた場合ついて説明する。その場合、フォルダに保存されている画像データの数が第1閾値よりも少ないので、アルバム作成アプリは、800個の画像データ全てを取得する。そして、800個の画像データは第2閾値よりも多いので、アルバム作成アプリは、上述したクイックモード選択画面を表示して、間引き処理を実行するか否かをユーザに問い合わせる。また、上記第1の閾値と第2の閾値はモード指定部307において選択されたモードにより異なる。例えば、ペットモードが選択された場合、第1の閾値は人物モードよりも少ない1000枚、第2の閾値は人物モードよりも少ない100枚としても良い。また、間引き処理の方法として、例えば、画像データをデータ名称でソートした後に、所定枚数単位で間引くことで実現しても良い。ここで上述した閾値や間引き処理は一例であり、別の値でも良いし、別の方法で間引き処理が行われても良い。
図3の説明に戻る。対象期間ボックスは、アルバム作成の対象となる画像群や動画群の撮影日時期間の条件の設定をユーザから受け付ける。
なお、図3に示す画面には、例えば、入力されている設定で生成されるレイアウト情報によって表わされるアルバムの完成予想図等を表わす領域が含まれていても良い。この完成予想図は、図3のモード指定部307で選択されたモードが反映されても良い。例えば、「人物」がモード指定部307で選択された場合、「人物」モード用の完成予想図が表示される。この「人物」モード用の完成予想図は、「人物」の画像と図3の画面上での設定内容とに基づいて作成されるアルバムの完成予想画像である。一方、「動物」がモード指定部307で選択された場合、「動物」モード用の完成予想図が表示される。この「動物」モード用の完成予想図は、少なくとも1枚の「動物」の画像と図3の画面上での設定内容とに基づいて作成されるアルバムの完成予想画像である。
また、例えば、自動レイアウト処理の設定入力画面として、図3に示すような画面だけでなく、図12に示すような画面を表示しても良い。図12は、作成するアルバムのデザインを選択するための画面である。
図12に示すデザイン選択画面は、デザイン選択領域1201、カラー選択領域1206、プレビュー領域1211から構成される。
デザイン選択領域1201には、「Basic」タイプを選択するための選択肢1202、「Dynamic」タイプを選択するための選択肢1203、「Elegant」タイプを選択するための選択肢1204の3つの選択肢が表示されている。そして、現在選ばれている選択肢にはチェックマーク1205が付いている。
カラー選択領域1206には、表紙を「白」、本身を「白」にするための選択肢1207、表紙を「黒」にし、本身を「白」にするための選択肢1208、表紙を「テクスチャ」にし、本身を「白」にするための選択肢1209が表示されている。現在選ばれている選択肢にはチェックマーク1210が付いている。ここでは選択肢1207、1208、1209のことをカラーチップと呼ぶことにする。カラーチップは左上部の三角形と右下部の三角形から構成されており、左上部の三角形は表紙の色またはテクスチャを示し、右下部の三角形は本身の色またはテクスチャを示している。このように1つのカラーチップにより、表紙と本身の色またはテクスチャを表現している。
プレビュー領域1211はデザイン選択領域1201とカラー選択領域1206で選択された設定項目が、完成後のアルバムにどのように反映されるかを示している。表紙イメージ1212は表紙の完成予想図であり、本身イメージ1213は本身の完成予想図である。表紙イメージ1212と本身イメージ1213には、画像を配置するためのスロット1217がそれぞれ存在する。
なお、表紙イメージ1212及び本身イメージ1213の完成予想図は、図3のモード指定部307で選択されたモードが反映されても良い。例えば、「人物」がモード指定部307で選択された場合、「人物」モード用の完成予想図が表示される。この「人物」モード用の完成予想図は、「人物」の画像と図3の画面上での設定内容とに基づいて作成されるアルバムの完成予想画像である。一方、「動物」がモード指定部307で選択された場合、「動物」モード用の完成予想図が表示される。この「動物」モード用の完成予想図は、少なくとも1枚の「動物」の画像と図3の画面上での設定内容とに基づいて作成されるアルバムの完成予想画像である。
ここでは、カラー選択領域1206で選択されているカラーチップは、選択肢1209であるため、表紙イメージ1212の背景1214はテクスチャで表現されており、本身イメージ1213の背景1216は白で表現されている。また、表紙イメージ1212には拡大鏡1215が付いており、この拡大鏡1215には表紙イメージ1212の一部が拡大された画像が表示されている。
ここでは、デザイン選択領域1201で選択されているデザインは、選択肢1202であり、カラー選択領域1206で選択されているカラーチップは、選択肢1209である。そのため、本身イメージ1213の背景1216は白で表現され、スロット1217の配置や形状は、「Basic」タイプとなっている。
「Create Album」ボタン1218を選択すると、自動レイアウト機能による画像データの解析が始まり、図3や図12に示す画面において入力された設定でレイアウト情報の生成が開始される。
図4は、本実施形態に係るアルバム作成アプリにより実行される自動レイアウト処理を示すフローチャートである。図4に示すフローチャートは、例えば、CPU101がHDD104に格納されたアルバム作成アプリに対応するプログラムをROM102やRAM103に読み出して実行することにより実現される。図4を参照しながら、自動レイアウトの処理を説明する。以下に示す通り、本実施形態では、アルバムを作成する際に、アルバムを作成するための画像群を撮影時間に応じて分割し、分割して得られた各サブ画像群からページに配置する画像を選択する。また、図4に示すフローチャートは、例えば、「Create Album」ボタン1218が選択された場合に開始される。
まず、S401では、CPU101は、アルバム作成条件を設定する。具体的には例えば、図3や図12に示す画面を介して、ユーザからアルバム作成条件の設定を受け付ける。
S402では、CPU101は、動画取得部202によって、検索対象の記憶領域に含まれる動画データを取得する。
S403では、CPU101は、動画解析部203によって、S402で取得した動画データの解析を行う。
S404では、CPU101は、フレーム取得部204によって、S403で解析した動画データからフレームを切り出して、切り出したフレームを画像データとしてHDD104に保存する。
S405では、CPU101は、検索対象の記憶領域に含まれる動画データ全てに対して、S402〜S404の処理が終了したか否かを判定する。終了していない場合(S405でNo)、S402に戻り、まだ処理の対象となっていない動画データが取得される。終了している場合(S405でYes)はS406に移行する。
S406では、CPU101は、画像取得部205により、検索対象の記憶領域に含まれる画像データを取得する。
S407では、CPU101は、画像変換部206によって画像データの変換を行う。
S408では、CPU101は、画像解析部207によって、S407で変換済みの画像データから特徴量を取得する。特徴量としては、例えば、ピントが挙げられる。
S409では、CPU101は、画像解析部207によって、S407で変換された画像データに対してオブジェクト検出処理を実行する。まず、CPU101は、S407で変換された画像データが表す画像から人物の顔を検出する。また、CPU101は、顔画像を抽出すると共に、検出した顔画像の位置の左上座標値と右下座標値を取得する。この2種類の座標を持つことにより、CPU101は、顔画像の位置と顔画像のサイズを取得することが可能となる。なお、CPU101は、Adaboostを用いて顔検出の処理を実行することで、検出したオブジェクトの信頼度の情報も取得することができる。信頼度の詳細については後述する。また、S409では、CPU101は、なお、顔に限らず、犬や猫等の動物、花、料理、建物、置物、乗り物等のオブジェクトを検出対象としてAdaboostによって強識別器を作成しても良い。これにより、CPU101は、顔以外のオブジェクトも検出することが可能となる。本実施形態では、S409では、CPU101は、顔を検出する処理だけでなく、動物と料理を検出する処理を実行する。
S410では、CPU101は、画像解析部207により個人認識処理を実行する。CPU101は、類似性が閾値以上であり且つ最も類似性が高い代表顔画像に対応する人物を、S409で抽出した顔画像に対応する人物として特定する。なお、CPU101は、S409で抽出した顔画像と、顔辞書データベースに保存されている全ての代表顔画像との類似性が閾値未満の場合は、抽出した顔画像に新規の個人IDを割り振って、新規の人物として顔辞書データベースに登録する。
S408からS410で取得された、各画像データの画像解析情報500は、各画像データを識別するための画像ID501それぞれに紐づけされてRAM103やHDD104等の記憶領域に記憶される。例えば、図5に示すように、S408で取得された撮影日時情報502とピント判別結果504、S409で検出された顔画像の数506と位置情報507がテーブル形式で記憶される。
画像属性503は、各画像データの属性を表す。例えば、ローカルサーバから取得された静止画データである画像データは、「静止画」の属性となる。また、例えば、ローカルサーバから取得された動画データから切り出されて保存された画像データは、「動画」の属性となる。また、例えば、SNSサーバから取得された画像データは、「SNS」の属性となる。
オブジェクト分類505は、各画像データが表す画像に含まれるオブジェクトのカテゴリ(種類)及び、カテゴリの信頼度を示す。
本実施形態では、「人物」、「動物」、「料理」の3カテゴリ(種類)のオブジェクトが検出されるものとし、オブジェクト分類505には、各画像データが表す画像において検出されたオブジェクトのカテゴリを示す情報が格納されている。すなわち、オブジェクト分類505は、各画像データが表す画像が、いずれのカテゴリのオブジェクトを含むのかを示す情報である。なお、当該情報は、例えばフラグによって管理されていても良い。また、上述したように、検出されるオブジェクトは「人物」、「動物」、「料理」の3カテゴリに限定されないため、オブジェクト分類505には例えば、「花」、「建物」、「置物」、「乗り物」等のカテゴリを示す情報が格納されても良い。
カテゴリの信頼度とは、画像データが表す画像に含まれるオブジェクトが、何のカテゴリである可能性が高いかを示す情報であり、信頼度が高いカテゴリほど、画像データが表す画像に含まれるオブジェクトのカテゴリである可能性が高いことになる。
S411では、CPU101は、検索対象の記憶領域に含まれる画像データ全てに対してS407からS410の処理が終了したか否かを判定する。
S412では、CPU101は、画像分類部208によってシーン分割をする。シーン分割とは、S401〜S411にて得られた全画像データを、シーン毎に分割して、複数の画像群として管理することを指す。なお、以下の説明において、全画像データ(メイン画像群)が分割されて得られる各画像群を、サブ画像群と言う。撮像画像データのグループ分けの一例を図6(A)に示す。図6(A)〜(C)において横軸は撮像日時(左側に向かうほど古く、右側に向かうほど新しい)、縦軸は撮像画像データの数を示す。図6(A)では、撮像画像データ群をグループ601〜608の8個のサブ画像群(グループ)に分割している。図6(A)において矢印はグループの境界を示している。
S413では、CPU101は、画像分類部208により、シーン分類をする。具体的には、CPU101は、S412でシーン分割されることで得られたサブ画像群をシーンの種類毎に得点化して、一番得点が高いシーンの種類に、当該サブ画像群を分類する。なお、以下の説明において、S413における得点化をシーン分類得点化という。本実施形態では、シーンの種類として、「旅行」、「日常」、「セレモニー」があるものとし、サブ画像群をこれらのシーンのいずれかに分類する。なお、シーン分類得点化には、シーンの各種類に対応する特徴量の情報が格納されたシーン分類テーブルが利用される。
本実施形態では、シーン分類テーブルとして、図7に示すテーブル700が利用されるものとする。テーブル700では、シーンID701に対応付けて、撮影期間702、撮影枚数703、撮影人数704それぞれの平均値と標準偏差とが登録されている。
S414では、CPU101は、S412で取得された全サブ画像群に対してS413のシーン分類が終了したか否かを判定する。終了していない場合(S414でNo)、S413に戻り、まだシーン分類の対象となっていないサブ画像群に対してシーン分類を行う。
S415では、CPU101は、画像得点部210によって主人公設定をする。主人公設定はユーザが指定した画像群に対して実行され、自動と手動の2種類の設定方法のうちいずれかにより行われる。
S416では、CPU101は、画像得点部210により、画像得点化をする。S416における画像得点化とは、画像データ毎に後述の観点で評価した得点を付与する(スコアリング)ことであり、後述の、テンプレートに配置する画像を表す画像データの選択時に参照される。ここで、図8及び図10を用いて、得点化方法について説明する。
図10は、画像データのレイアウトに使うテンプレート群を示している。テンプレート群に含まれている複数のテンプレートのそれぞれが、各見開きに対応している。テンプレート1001は、1枚のテンプレートであり、メインスロット1002はメインスロットを示し、サブスロット1003と1004とはサブスロットを示す。メインスロット1002とは、テンプレート1001内でメインとなるスロット(画像をレイアウト(配置)する枠)であり、サブスロット1003と1004よりもサイズが大きい。S416では、CPU101は、画像得点化処理として、画像データが属する種類のシーンに対応するメインスロット用の得点とサブスロット用の得点の両方を画像データに付与する処理を行う。
画像得点化においては、メインスロットとサブスロットとに採用されるべき画像の特徴量の情報がシーンの種類毎に格納されたスロット特徴テーブルが利用される。これにより、メインスロット用とサブスロット用の両方に関する得点化が画像データについて実行される。本実施形態では、更に、CPU101は、上述のようにして算出された得点に対して、アルバム作成条件指定部201で指定されたモードに基づいて、点数を加算する。
なお、CPU101は、画像得点化を、ユーザが指定した画像データ群における各画像データについて行う。画像得点化によって付加された得点が後段のS423での画像選択処理における選択基準となる。このようにすることで、CPU101は後述の画像選択処理において、アルバムのモードに対応するカテゴリのオブジェクトが含まれる画像を表わす画像データを、当該オブジェクトが含まれない画像を表わす画像データより優先して選択することができる。
図8(B)は、レイアウト得点化による得点結果の一例を示している。例えば、画像ID1は、メインスロット用として20点が付与され、画像ID2は、メインスロット用として45点が付与されている。これは、つまり、メインスロット用としては、画像ID2の方がユーザの判断基準により近いということを表している。
S417では、CPU101は、画像取得部205により取得された全ての画像データに対してS416の画像得点化が終了したか否かを判定する。終了していない場合(S417でNo)、S416に戻り、まだ処理の対象となっていない画像データに対して画像得点化が実行される。
S418では、CPU101は、S412のシーン分割により得られたシーン数(サブ画像群の数)が見開き数入力部211により入力された見開き数(見開き数ボックス305に入力されている見開き数)と同じか否かを判定する。
S419では、CPU101は、S412のシーン分割により得られたシーン数が見開き数入力部211により入力された見開き数より少ないか否かを、見開き割当部212により判定する。
S420では、CPU101は、見開き割当部212により、サブシーン分割をする。サブシーン分割とは、シーン分割数<見開き数の場合に、シーン分割により得られた各シーンを更に細分割することをいう。
S421では、CPU101は、見開き割当部212によりシーン統合をする。シーン統合とは、シーン分割数>アルバムの見開き数の場合、分割されたシーン(サブ画像群)を統合することを表す。具体的には、CPU101は、シーン数と見開き数が一致するように、シーン統合をする。ここでは、図6(A)のようにシーン分割数が8であり、それに対して指定見開き数が6の場合を例として説明する。図6(C)は図6(A)をシーン統合した結果である。破線の箇所の前後のシーンを統合したことで、分割数を6にしている。
S422では、CPU101は、見開き割当部212により見開き割当をする。S418〜S421によって、サブ画像群の数と指定見開き数は同じになっている。本実施形態では、撮影日時が先頭のサブ画像群から見開きの先頭に割り当てる。すなわち、撮影日時順にサブ画像群をアルバムの各見開きのページに割当てる。これにより、撮影日時順にサブ画像群が並んだアルバムを作成することができる。
S423では、CPU101は、画像選択部213により画像選択を実行する。ここでは、ある見開きに割り当てられた分割画像データ群から画像データを4枚選択する例を、図9を参照しながら説明する。なお、見開きとは、2ページ分の領域であるが、最初の見開き及び最後の見開きは、1ページ分の領域となる。
図9(A)は見開きに割り当てられた分割画像データ群のうち、撮影日時が一番早い画像データと一番遅い画像データとの撮影日時の時間差(分割撮影期間)、言い換えれば、分割画像データ群の撮影期間を示している。なお、ここでは、画像データの選択を、メインスロット、サブスロットの順で行う。ここでは、見開きに対応するテンプレートには1枚のメインスロット1002が含まれるものとする。そのため、1枚目に選択される画像データは、メインスロット用の画像データである。CPU101は、メインスロット用の画像データとして、図9(B)に示す分割撮影期間に対応する画像データのうち、S416で付加したメインスロット用の得点が最高点の画像データ(1)を選択する。
2枚目以降に選択される画像データは、サブスロット用の画像データである。2枚目以降の画像データの選択は分割撮影期間の一部に集中しないように、以下説明するような方法により行われる。まず、CPU101は、図9(C)に示すように、分割撮影期間を2分割する。次にCPU101は、図9(D)に示すように、1枚目の画像データが選ばれていない分割撮影期間(図中、実線で示している期間)に生成された画像データから2枚目の画像データを選択する。なお、2枚目の画像データとしては、1枚目の画像データが選ばれていない分割撮影期間に生成された画像データのうちサブスロット用の得点が最高点の画像データ(2)を選択する。次にCPU101は、図9(E)に示すように図9(D)に示す各分割撮影期間を2分割する。そして、CPU101は、図9(F)に示すように1枚目の画像データと2枚目の画像データがいずれも選ばれていない分割撮影期間(図中、実線で示している期間)に生成された画像データから3枚目の画像データを選択する。なお、3枚目の画像データとしては、1枚目の画像データと2枚目の画像データがいずれも選ばれていない分割撮影期間に生成された画像データのうちサブスロット用の得点が最高点の画像データ(3)を選択する。そして、4枚目の画像データとしては、1枚目、2枚目及び3枚目の画像データがいずれも選ばれていない分割撮影期間に生成された画像データのうちサブスロット用の得点が最高点の画像データを選択する。
次に、1枚目、2枚目及び3枚目の画像データがいずれも選ばれていない分割撮影期間に生成された画像が存在せず、当該分割撮影期間に生成された画像データから4枚目の画像データを選択できない例を説明する。ここで、図9(G)に示すように、まだ画像データが選ばれていない分割撮影期間(図中、斜線で示している期間)に生成された画像データは存在しないものとする。その場合、CPU101は、図9(H)に示すように各分割撮影期間をさらに2分割する。次にCPU101は、図9(I)に示すように、期間内に生成された画像データがないと認識された分割撮影期間以外で、且つ未だ画像データが選ばれていない分割撮影期間(図中、実線で示している期間)に生成された画像から4枚目の画像データを選択する。なお、CPU101は、4枚目の画像データとしては、当該分割撮影期間に生成された画像データのうちサブスロット用の最高点の画像データ(4)を選択する。
図20は、画像選択部213の構成をより詳細に説明する図である。画像選択部213は、処理対象の見開きに割り当てられたサブ画像群から画像データを選択する。
枚数設定部2001は、処理対象の見開きに割り当てられたサブ画像群から選択する画像データの枚数を設定する。いかえれば、処理対象の見開きのレイアウト画像に配置する画像数を設定する。
画像群取得部2002は、画像取得部205が取得した画像群から、処理対象の見開きに割り当てられるサブ画像群を取得する。
ループカウンタ2003は、画像群取得部2002によって取得されたサブ画像群から画像データを選択する処理(画像選択処理)を実行した回数を管理する。本実施形態では、1回のループ毎に、テンプレートに配置される画像が1枚選択されるため、ループカウンタ2003がカウントする回数は、選択済み画像データの枚数に等しい。
得点軸設定部2004は、ループカウンタ2003でカウントされた処理回数に応じて、画像選択処理で利用する得点軸を設定する。「利用する得点軸を設定する」とは、「いずれの得点軸で採点された得点を利用するかを設定する」ことを指し、ここでは、メインスロット用得点軸(メインスロット用評価基準)、サブスロット用得点軸(サブスロット用評価基準)のどちらかを設定する。
分割部2005は、画像群取得部2002によって取得されたサブ画像群の撮影期間を所定の数に分割する。
画像属性設定部2006は、ループカウンタ2003でカウントされた処理回数に応じて、画像選択処理において選択される画像データの属性を設定する。
区間情報設定部2007は、画像群取得部2002によって取得されたサブ画像群に含まれる画像データを、分割部2005で分割された区間ごとにグループ分けして、各区間において生成された画像データの撮影情報、得点等の情報を取得する。
モード設定部2008は、アルバム作成条件指定部201で指定された、アルバムのモード(「人物」、「動物」、「料理」のいずれか)を設定する。モード設定部2008は、設定されたモードに対応するオブジェクトを含む画像がテンプレートに配置されるように制御する。
画像選択部2009は、得点軸設定部2004で設定された得点軸と、モード設定部2008で設定されたモードと、区間情報設定部2007で管理された、各区間における画像データの得点とに基づいて、画像選択処理を実行する。具体的には、画像選択部2009は、各区間における複数の画像データに含まれ、指定オブジェクトを含む画像を表し、且つ指定属性である画像データのうち、得点が一番高い画像データを1枚選択する。指定オブジェクトは、得点だけに依存せずに画像データを選択するために設定され、指定オブジェクトが設定されている場合、以降の画像選択処理では、指定オブジェクトを含む画像を表す画像データが選択されることになる。例えば、指定オブジェクトが「動物」のカテゴリのオブジェクトである場合、以降の画像選択処理では、「動物」のカテゴリのオブジェクトを含む画像を表す画像データが選択される。なお、複数のオブジェクトを指定オブジェクトとして設定可能である。なお、画像選択部2009は、選択済み画像データは新たに選択しない。言いかえれば、画像選択部2009は、選択済み画像データ以外の画像データを新たに選択する。
類似判定部2010は、画像選択部2009によって選択された画像データが表す画像が、テンプレートに配置する画像を表わす画像データとして既に選択されている画像データが表す画像と類似しているか否かの判定を行う。
統合部2011は、類似判定部2010で非類似と判定された画像を表す画像データから、テンプレートに配置される画像を表す画像データを特定する。
画像管理部2012は、統合部2011でテンプレートに配置される画像を表す画像データとして特定された画像データを選択済み画像データとして管理する。また、画像管理部2012は、選択済み画像データの数が、枚数設定部2001で設定された枚数(必要枚数)に達したか否かを判定する。
図12は、S423の画像選択処理の詳細を示すフローチャートである。図12に示すフローチャートは、例えば、CPU101がHDD104に格納されたアルバム作成アプリに対応するプログラムをROM102やRAM103に読み出して実行することにより実現される。図12のフローチャートでは、処理対象の1つの見開きに割り当てられたサブ画像群から画像データが選択される。そのため、アルバムが複数の見開きから構成される場合、図12のフローチャートに示す処理は見開きの数に対応する回数実行されることになる。
S2101では、CPU101は、枚数設定部2001により、処理対象の見開きに割り当てられたサブ画像群から選択する画像データの枚数を設定する。
S2102では、CPU101は、画像群取得部2002により、画像取得部205が取得した画像群から、処理対象の見開きに割り当てられるサブ画像群を取得する。
S2103では、CPU101は、モード設定部2008により、アルバムのモードを設定する。
S2104では、CPU101は、ループカウンタ2003により、S2105の画像選択処理を実行した回数をカウントする。初期状態では、画像選択処理が実行されていないので、ループカウンタ2003によるカウント数は0となる。なお、本実施形態では、ループカウンタ2003によるカウント数が0の場合は、以降の画像選択処理においてメイン画像が選択され、ループカウンタ2003によるカウント数が1以上の場合は、以降の画像選択処理においてサブ画像が選択される。
S2105では、CPU101は、ループカウンタ2003によりカウントしているカウント数に応じて、以降の画像選択処理で利用する得点軸を得点軸設定部2004により設定する。
S2106では、CPU101は、ループカウンタ2003によりカウントしているカウント数に応じて、以降の画像選択処理において選択される画像データの属性を画像属性設定部2006により設定する。
S2107では、CPU101は、画像群取得部2002によって取得されたサブ画像群の撮影期間を分割部2005により所定の数に分割する。
S2108では、CPU101は、区間情報設定部2007により、画像群取得部2002によって取得されたサブ画像群に含まれる画像データを、分割部2005によりサブ画像群の撮影期間が分割されることで管理されている区間ごとにグループ分けする。そして、CPU101は、各区間において生成された画像データの撮影情報、得点等の情報を取得する。
S2109では、CPU101は、分割部2005によりサブ画像群の撮影期間が分割されることで管理されている区間のうち、着目している区間において生成された画像データが選択済みか否かを判定する。
S2110では、CPU101は、指定オブジェクトが設定されているか否かを判定する。
S2111では、CPU101は、着目している区間において生成された画像データのなかに、指定オブジェクトを含む画像を表わし、且つ指定属性である画像データが有るか否かを判定する。
S2112では、CPU101は、着目している区間において生成された画像データから、画像データを1枚選択する。ここでは、指定オブジェクトを含む画像を表わし、指定属性である画像データのうち、得点が一番高い画像データが1枚選択される。そのため、本実施形態では例えば、指定オブジェクトを含まない画像を表し、得点が高い画像データより、指定オブジェクトを含む画像を表し、得点が低い画像データの方が優先されて選択されることになる。また、本実施形態では例えば、指定属性でないが得点が高い画像データより、指定属性であるが得点が低い画像データの方が優先されて選択されることになる。
このように、本実施形態では、単に得点だけを参照して画像データを選択するのではなく、指定オブジェクトや指定属性を参照して画像データを選択する。このような形態とすることで、サブ画像群に条件に合致する画像データがあれば、指定オブジェクトを含む画像を表わす画像データをより確実に選択することができる。
S2113では、CPU101は、着目している区間において生成された画像データから、画像データを1枚選択する。
なお、S2112及びS2113では、条件に合う画像データがない場合は、いずれの画像データも選択されず、次のステップに進む。
S2114では、CPU101は、S2112又はS2113の処理において選択された画像データが表わす画像が、以前のループにおけるS2118の処理において既に選択されている画像データが表わす画像と類似しているか否かの判定を行う。
S2116では、CPU101は、分割部2005によりサブ画像群の撮影期間が分割されることで管理されている全ての区間が着目されて、S2112又はS2113の処理が実行されたかどうかを判定する。CPU101は、全ての区間が着目されて画像選択処理が実行されていない場合、未だ着目されていない区間のうちいずれかを選択して、再度S2109以降の処理を実行する。
S2117では、CPU101は、全ての区間が着目されて画像選択処理が実行されることにより、1枚でも画像データが選択されたか否かを判定する。
S2121では、CPU101は、指定オブジェクトの更新を行う。
S2122では、CPU101は、指定属性の更新を行う。
このように、S2121及びS2122のうち少なくとも1つが実行されれば、検索対象の画像データの条件が変更されるため、CPU101が新たに画像データを選択することが可能となる。なお、CPU101は、S2121やS2122で情報の更新を行った場合は、更新前の情報を用いて既に着目している区間について未だ着目していないものとして扱って、再度S2109以降の処理を行う。
S2118では、CPU101は、統合部2011により、S2112で非類似と判定されて選択が維持されている画像データから、テンプレートに配置する画像を表わす画像データを特定する。
S2119では、CPU101は、画像管理部2012により、S2115で、テンプレートに配置する画像を表わす画像データとして特定された画像データを選択済み画像データとして管理する。
S2120では、CPU101は、画像管理部2012により管理されている選択済み画像データの枚数が、枚数設定部2001で設定された枚数(必要枚数)に達したか否かを判定する。CPU101は、選択済み画像データの枚数が必要枚数に達した場合は画像選択処理を終了し、S424に進む。一方、CPU101は、選択済み画像データの枚数が必要枚数に達していない場合は、再度S2104に進み、ループカウンタ2003によるカウンタをインクリメントして再度画像選択処理を行う。
上述のような形態とすることで、CPU101は、設定されたアルバムのモードに応じて画像データを選択することができる。具体的には、CPU101は、設定されたアルバムのモードに対応する指定オブジェクトを含む画像を表わす画像データを優先的に選択することができる。
図4に戻って、S424では、CPU101は、テンプレート設定部214により、アルバム作成条件指定部201から指定されたテンプレート情報に応じた複数のテンプレートを取得する。
S425では、CPU101は、画像レイアウト部215により、処理対象の見開きの画像レイアウトを決定する。
S426では、CPU101は、画像補正部217により画像補正をする。
S427では、CPU101は、レイアウト情報出力部218によりレイアウト情報を作成する。具体的には、CPU101は、S425で選択されたテンプレートの各スロットに、S426の画像補正が実行された、各スロットに対応する画像データを紐づけて管理する。なお、ここで用いる画像は、S407で生成した解析画像であり、S408〜18で用いた画像とは異なる画像である。そして、CPU101は、テンプレートに画像をレイアウトしたビットマップデータを生成する。このとき、CPU101は、スロットのサイズ情報に合わせてレイアウトする画像を変倍又は等倍してレイアウトする。
S428はS423〜S427の処理が全ての見開きに対して終了したか否かを判定する。終了していない場合(S428でNo)はS423に戻り、未だ処理対象となっていない見開きに対して、S423〜S427の処理を行う。
自動レイアウト処理が終了されると、CPU101は、作成したレイアウト情報に基づき、テンプレートに画像が配置されたレイアウト画像をディスプレイ105に表示する。なお、このとき、CPU101は、1つのアルバムを作成するための複数のレイアウト画像を表示しても良い。また、CPU101は、作成したレイアウト情報を画像形成装置200等のプリンタに送信し、レイアウト画像を印刷しても良い。レイアウト画像が印刷されることにより、アルバムが作成される。
なお、上述の自動レイアウト処理では、アルバム作成アプリによって自動で(ユーザから選択指示を受け付けることなく)テンプレートや画像データが選択されて、レイアウト画像が生成されていた。しかし、レイアウト情報によって表わされる画像は、テンプレート及び画像データによって表わされる画像が含まれるものに限られない。これは、本実施形態ではレイアウト情報は、アルバムを作成するために用いられるものだが、アルバムには例えば、見返しや遊び紙、扉、奥付と呼ばれる、画像データによって表わされる画像が一般に印刷されない領域も含まれるためである。本実施形態ではレイアウト情報は、見返しや遊び紙、扉、奥付に対応する画像をも表わす。これらの画像を表わすためのデータは、上述のような自動レイアウト処理によっては生成されないため、予め見返しや遊び紙、扉、奥付に対応する画像用として作成されたデータが、レイアウト情報にいずれかのタイミングで含まれるものとする。
なお、本実施形態において、自動レイアウト処理の詳細は上述の形態に限定されない。例えば、アルバムに使用されるテンプレートの選択や、テンプレートに配置される画像を表わす画像データの選択の方法は、上述の形態に限定されない。少なくとも、アルバムに使用されるテンプレートの選択や、テンプレートに配置される画像を表わす画像データの選択等をユーザが実行せずに、レイアウト情報が作成される形態であれば良い。
<アルバムの編集>
CPU101は、上述のようにしてレイアウト情報を作成した後、作成したレイアウト情報によって表わされるアルバムの編集を受け付けるための画面を表示する。なお、この画面においては、ユーザは、自動レイアウト処理によって作成されたレイアウト情報によって表わされるアルバムの内容を確認することができる。以後このような画面を編集画面という。本実施形態では、編集画面には、作成したレイアウト情報によって表わされるアルバムが有する複数の見開きのうち1つが表示され、ユーザ操作に応じて、表示される見開きが切り替えられる。なおこのとき、編集画面には、見開き単位でなく、ページ単位でアルバムが表示されても良い。また、自動レイアウト処理が終了した直後に表示される編集画面において表示される見開きは特に限定されず、例えば、複数の見開きのうち一番初めの見開きであっても良いし、後述の重要度が一番高い見開きであっても良い。本実施形態では、自動レイアウト処理が終了した直後に表示される編集画面において表示される見開きは、複数の見開きのうち一番初めの見開き(見開き名が「表紙」である見開き)であるものとする。
図13に編集画面の一例を示す。表示領域1301は、1つの見開きを表わしている。ここで、1つの見開きとは、アルバムにおいてそれぞれ対向する2ページ分の領域を指す。本実施形態では、1つの見開きに1つのテンプレートが対応しているため、表示領域1301には、1つのテンプレートと、それに配置された画像とが表示されることになる。なお、表紙(オモテ表紙)と裏表紙の関係は、上述の見開きの定義に該当しないが、本実施形態では、表示と裏表紙を1つの見開きとみなし、表示領域1301は、表紙と裏表紙とを並行して表示する。また、表示領域1301は、1つの見開きを表わす形態に限定されず、例えば、1ページを表わす形態であっても良い。また、表示領域1301は、1つの見開きを表わす状態と、1ページを表わす状態とを切り替えても良い。この場合例えば、表示領域1301は、表紙や裏表紙については、1ページを表わす状態で表示し、本身については、1つの見開きを表わす状態で表示する。
スロット1309は、表示領域1301に表示されている見開きが有するスロットである。また、テキストボックス1310は、表示領域1301に表示されている見開きが有する領域であり、テキストが入力可能な領域である。
サムネイル領域1302は、アルバムの各見開きに対応するサムネイルを一覧で表示する領域である。ユーザによって、サムネイルが選択された場合、選択されたサムネイルに対応する見開きが、表示領域1301に表示される。すなわち、ユーザは、サムネイルを選択することによって、選択したサムネイルに対応する見開きを閲覧することができる。
また、アイコン1303は、サムネイルに対応する見開きが未閲覧であることを示すアイコンである。なお、図13においては、アイコン1303はチェックマークになっているが、この形態に限定されず、例えば丸のマーク等であっても良い。
見開き送りボタン1304、1305は、表示領域1301に表示されている見開きを切り替えるためのボタンである。見開き送りボタン1304が押下された場合、そのときに表示領域1301に表示されていた見開きの前の見開きが表示される。また、見開き送りボタン1305が押下された場合、そのときに表示領域1301に表示されていた見開きの後ろの見開きが表示される。このように、サムネイル領域1302上のサムネイルを選択する方法でなく、これらのボタンを操作することでも、ユーザは、表示領域1301に表示される見開きを切り替えることが可能である。
アルバム編集ボタン1306は、アルバム全体に関する設定を変更するためのボタンである。なお、アルバム全体とは、アルバムに含まれる全ての見開きやページを指す。すなわち、ユーザは、アルバム編集ボタン1306を押下することでアルバム全体に関する編集・変更を一括で行うことができる。なお、アルバム編集ボタン1306によって必ずしもアルバムに含まれる全ての見開きやページに関する設定変更が行われなくとも良く、少なくとも1以上の見開きやページに関する設定変更が行われれば良い。
また、本実施形態では、アルバム編集ボタン1306が押下された場合、アルバム全体に含まれるオブジェクトの割合を編集・変更するための入力を受け付けるためのアルバム編集画面1400を、編集画面の前面に表示する。アルバム編集画面1400の詳細は後述する。
見開き編集ボタン1307は、表示領域1301に表示されている見開きに関する設定を変更するためのボタンである。具体的にはたとえば、見開き編集ボタン1307は、見開きに対応するテンプレートや、見開きに含まれる画像、見開きの重要度の変更や、テキストを追加・入力するためのボタンである。なお、表示領域1301に表示されている見開きに関する設定変更は、例えば、スロット1309やテキストボックス1310を直接操作することでも実行可能である。
アルバム注文ボタン1308は、アルバムを注文するためのボタンである。アルバム注文ボタン1308が押下された場合、このときの設定のレイアウト情報が外部サーバ400に送信され(アップロード)、当該レイアウト情報に基づいてアルバムが作成されることになる。
<アルバム全体の編集>
上述したように、アルバム編集ボタン1306が押下されると、アルバム編集画面1400が編集画面の前面に表示される。すなわち、ディスプレイ105に表示されている画面は、図14に示すような状態となる。
アルバム編集画面1400は、編集後のアルバム内の各オブジェクトの出現頻度を調整するためのUIである。なお、アルバム編集画面1400は、アルバム作成アプリによって提供される。アルバム編集画面1400には、作成したアルバム(編集前のアルバム)のモードに応じたコンテンツが表示される。具体的には、編集後のアルバムにおける、アルバムのモードに対応するオブジェクトを含む画像の出現頻度(テンプレートに配置される画像として選択される頻度)を調整するための領域が表示される。例えば、作成したアルバムのモードが「動物」である場合、編集後のアルバムにおける、「動物」のオブジェクトを含む画像の出現頻度を調整するための領域1401が表示される。なお、本実施形態では、編集後のアルバムにおける、「人物」のオブジェクトを含む画像の出現頻度を調整するための領域1406については、アルバムのモードがいずれであっても表示されるものとする。なお本実施形態では、「人物」以外のオブジェクトを含む画像の出現頻度を調整するための領域は、アルバムのモードが「人物」以外である場合のみ表示される形態としたが、この形態に限定されない。例えば、アルバムのモードがいずれであっても表示される形態としても良い。また、自動レイアウト処理によって「人物」または「動物」など対象のオブジェクトが検出されなかった場合には、「動物」または「動物」などのスライダーは表示せずに検出されなかったことを示すメッセージや画像を表示しても良い。例えば、「動物」が検出されなかった場合には、「動物」に関するスライダーは表示せずに「動物が検出されませんでした。」などのメッセージを表示しても良い。
以下、アルバム編集画面1400を用いて、アルバムを編集する方法について詳しく説明する。ここでは、作成したアルバムのモードが「動物」である場合を例にして説明する。
ユーザは、掴み1405や掴み1410を移動させるための入力を行うことで、編集後のアルバムにおける、各領域に対応するオブジェクトを含む画像の出現頻度を調整することができる。本実施形態では、「Main」(最大値)、「Sub」(中間値)、「Other」(最小値)の3種類の設定値が用意されているものとする。そして、ユーザの入力に応じた設定値(掴み1405や掴み1410の位置に応じた設定値)に応じて、各画像の出現頻度が調節される。具体的には、出現頻度の大小関係は、「Main」に設定されているオブジェクトを含む画像>「Sub」に設定されているオブジェクトを含む画像>「Other」に設定されているオブジェクトを含む画像、となる。
動物用スライダーのバー1413は、「動物」のオブジェクトを含む画像の出現頻度を調節するためのスライダーである。本実施形態では、動物用スライダーは水平方向に伸びているものとするが、例えば垂直方向に伸びていても良い。バー1413上に配置される掴み1405には、動物を示すビットマップ画像が配置されている。このビットマップ画像は、アルバムに採用された画像から抽出された動物のオブジェクトであっても良いし、一般的な動物の画像であってもよい。また、例えば肉球を模したアイコン等、動物を想起させるアイコンであっても良い。なおここで、アルバムに採用された画像とは、S423において選択された画像データによって表わされる画像である。
人物用スライダーのバー1414は、「人物」のオブジェクトを含む画像の出現頻度を調節するためのスライダーである。人物用スライダーは、動物用スライダーと略平行なスライダーであるものとする。バー1414上に配置される掴み1410には、人物を示すビットマップ画像が配置されている。このビットマップ画像は、アルバムに採用された画像から抽出された人物のオブジェクトであっても良いし、一般的な人物の画像であってもよい。
なお、各スライダーに対応する領域は各バーに対応する領域に限らず、少なくとも各掴みが移動可能な領域が含まれる。
このように、各摘みに対応するオブジェクトを示すビットマップ画像を各摘みに配置することで、各摘みがいずれのオブジェクトに対応しているのかを、ユーザに端的に示せるようになる。
なお、各摘みは、例えば、マウスや指等の操作子によって、各摘みがドラッグされることで移動する。しかし各摘みは、例えば、「Main」1402や「Sub」1403等の、各設定値を設定するための位置を示す領域がクリックされた場合に、当該クリックされた領域に対応する位置まで移動する形態であっても良い。
ユーザによってOKボタン1412が押下されると、入力された設定値に基づいてアルバムが編集される。すなわち、入力された設定値に基づいて、再度自動レイアウト処理が行われる。なお、例えば、再度の自動レイアウト処理では、S423からS428の処理が再度行われても良い。この場合、S423も画像選択処理では、編集前のアルバム作成時のS416で付された得点が参照される。
ユーザによってキャンセルボタン1411が押下されると、出現頻度の調整がキャンセルされ、アルバム編集画面1400が閉じられる。すなわち、ディスプレイ105に表示されている画面は、図13に示すような状態に戻る。
なお、各領域に対応するオブジェクトを含む画像の出現頻度の設定方法は、上述の形態に限定されない。例えば、上述では、摘みを左右に移動させることで設定値を選択する形態を説明したが、スライダーを上下に伸ばし、摘みを上下に移動させることで設定値を選択する形態であっても良い。また、設定値は、「Main」、「Sub」、「Other」ではなく、例えば数字や記号、他の語句等で表現されても良い。例えば、「多め」(最大値)、「標準」(中間値)、「少なめ」(最小値)等で表現されても良い。また、設定値は、最大値と中間値と最小値の3種類に限定されず、2種類であっても良いし、3種類以上に設定値が細かく分類されていても良い。
上述のように、スライダー上で掴みを移動させることで設定値を変更することができる。しかしながら、移動中の掴みの状態が移動方向や掴みの位置に応じない形態や、複数のスライダー上のそれぞれの摘みが同様の状態で動く形態では、ユーザは、掴みを動かすことによる「楽しみ」や「面白さ」などのポジティブな感情を得にくい。また、そのような形態では、摘みを動かすことによって選択される各設定値や、掴みの移動方向がどのような意味を持つのか、ということがユーザに示されにくい。
そこで、本実施形態では、摘みを移動させる操作におけるユーザビリティを向上させる形態について説明する。
まず、図15を用いて、「人物」のオブジェクトに関する設定値を変更する操作について説明する。図15(1)に示すように、初期状態では、摘み1410は、設定値が中間値であることを示す「Sub」1408の位置にて停止しているとする。ユーザは、設定値を最大値に変更したい場合、マウスや指等の操作子により摘み1410を左に移動させる。本実施形態では、「人物」のオブジェクトに関する設定値を変更するための摘みは、従来通りまっすぐ移動するものとする。そのため、摘み1410は、「Sub」1408の位置から、設定値が最大値であることを示す「Main」1407の位置までまっすぐ(直線の軌道で)且つ回転していない状態で移動する。摘み1410が左に移動している過程を、図15(2)に示す。そして摘み1410が「Main」1407の位置までまっすぐ移動した状態を、図15(3)に示す。
次に図16を用いて、「動物」のオブジェクトに関する設定値を、中間値から最大値に変更する操作について説明する。図16(1)に示すように、初期状態では、摘み1405は、設定値が中間値であることを示す「Sub」1403の位置にあるとする。ユーザは、設定値を最大値に変更したい場合、マウスや指等の操作子により摘み1405を左に移動させる。本実施形態では、「動物」のオブジェクトに関する設定値を変更するための摘みは、変化のある動きをしながら移動するものとする。具体的には例えば、摘み1405は、左方向、すなわち、設定値を最大値側に変更するための方向に移動する場合は、まっすぐではなく、弧を描きながら(弧の軌道で)移動する。なお、設定値を最大値側に変更するための方向とは、言い換えれば、摘み1405に対応するオブジェクトを含む画像の採用枚数を増やすための方向である。またこのとき、摘み1405は、移動前の向きに対して移動している方向に応じて回転した状態で、移動しても良い。すなわち、摘み1405は、弧の頂点に向かって移動している最中は、移動前の向きに対して上方向に回転した状態(すなわち、「動物」のオブジェクトに関する画像が上を向いた状態)となる。摘み1405が弧の頂点に向かって移動している過程を、図16(2)に示す。そして、摘み1405は、「Main」1402の位置まで移動した場合は、元の高さ(「Sub」1403の位置にあった時の高さ)に戻る。また、摘み1405は、弧の頂点を過ぎてバー上の着地点に向かって移動している最中は、移動前の向きに対して下方向に回転した状態(すなわち、「動物」のオブジェクトに関する画像が下を向いた状態)となる。摘み1405が弧の頂点から「Main」1402の位置まで移動している過程を、図15(3)に示す。
上述したように、掴み1405には、動物を示すビットマップ画像が配置されている。そのため、掴み1405は、設定値を最大値に変更するための方向に移動する場合は、弧を描くように移動することで、あたかも動物が喜んでジャンプしているかのような動きを表現することができる。なお、このとき動物が喜んでいる様が表現されるのは、設定値が最大値に変更された場合、編集後のアルバムにおける、動物のオブジェクトを含む画像の採用枚数が増えるためである。
なお、ここでは、設定値を最大値側に変更するための方向に摘み1405が移動する際の摘み1405の軌道を弧とすることで、あたかも動物がジャンプしているかのような様を表現した。しかし、摘み1405の軌道は、この形態に限定されない。例えば、掴み1405を小刻みに上下させながら、ジグザグの軌道で移動させることで、動物が元気よく走っていることが表現されても良い。また、例えば、掴み1405を複数個の弧を描くようにして移動させることで、動物が飛び跳ねながら移動していることが表現されても良い。すなわち、移動する方向に応じた軌道で摘み1405が移動すれば、どのような形態であっても良い。
また、「動物」のオブジェクトに関する設定値が、最小値から中間値又は最大値に変更される場合の摘み1405の動きも、上述した動きと同様である。
次に図17を用いて、「動物」のオブジェクトに関する設定値を、中間値から最小値に変更する操作について説明する。図17(1)に示すように、初期状態では、摘み1405は、設定値が中間値であることを示す「Sub」1403の位置にあるとする。ユーザは、設定値を最小値に変更したい場合、マウスや指等の操作子により摘み1405を右に移動させる。摘み1405は、右方向、すなわち、設定値を最小値側に変更するための方向に移動する場合は、摘み1405に配置されている画像が下を向くように、当該画像を回転する。なお、設定値を最小値側に変更するための方向とは、言い換えれば、摘み1405に対応するオブジェクトを含む画像の採用枚数を減らずための方向である。また、このとき摘み1405は、「Sub」1403の位置から「Other」1404の位置までまっすぐ移動する。摘み1405が右に移動している過程を、図17(2)及び図17(3)に示す。掴み1405は、設定値を最小値に変更するための方向に移動する場合は、摘み1405に配置されている画像が下を向くように摘み1405を回転させることで、あたかも動物が悲しんで俯いているかのような動きを表現することができる。なお、このとき動物が悲しんでいる様が表現されるのは、設定値が最小値に変更された場合、編集後のアルバムにおける、動物のオブジェクトを含む画像の採用枚数が減るためである。
また、掴み1405に配置されている画像が表わす動物の向きは、掴み1405の移動方向となるように適宜切り替わるものとする。すなわち、本例では、初期状態においては、掴み1405に配置されている画像が表わす動物の向きは左側であるため、掴み1405が右に移動する場合は、当該動物の向きを右側に反転させる。
なお、ここでは、設定値を最小値側に変更するための方向に摘み1405が移動する際の摘み1405に配置された画像の向きが下向きとなるように、掴み1405を回転させた。しかし、摘み1405の回転量や回転方向はこの形態に限定されず、移動する方向に応じた方向に回転した状態で移動する形態であれば、どのような形態であっても良い。
また、どちらの方向に移動する場合にも、摘み1405の軌道が弧になるように制御しても良い。このとき、例えば、設定値を最大値側に変更するための方向に移動する摘み1405の軌道が大きな弧になるように制御され、設定値を最小値側に変更するための方向に移動する摘み1405の軌道が小さな弧になるように制御される。これにより、掴み1405は、設定値を最大値側に変更するための方向に移動する場合は、あたかも動物が喜んで高くジャンプしているかのような動きを表現することができる。
上述したように、本実施形態では、「人物」のオブジェクトに関する設定値を変更するための摘みはまっすぐ動くように制御され、「動物」のオブジェクトに関する設定値を変更するための摘みは変化のある動きをするように制御される。すなわち、本実施形態では、掴みに対応するオブジェクトの種類に応じて、移動中の掴みの状態が異なるように制御される。
この制御は、言い換えると下記のようになる。動物用スライダー上の停止位置にて停止している時の摘み1405の状態と、停止位置から水平方向において所定の距離Aを移動した時の摘み1405の状態との間の、水平方向における位置以外の要素における変化量を第1の変化量とする。第1の変化量とは具体的には例えば、図16(1)に示す摘み1405の状態と、図16(2)において実線で示す摘み1405の状態との間の変化量である。そして、人物用スライダー上の停止位置にて停止している時の摘み1410の状態と、停止位置から水平方向において所定の距離Aを移動した時の摘み1410の状態との間の、水平方向における位置以外の要素における変化量を第2の変化量とする。第2の変化量とは具体的には例えば、図15(1)に示す摘み1410の状態と、図15(2)において実線で示す摘み1410の状態との間の変化量である。そして、本実施形態では、第1の変化量と第2の変化量とが異なるように制御される。
このように、各スライダー上の摘みが、水平方向において同様の距離移動した場合にそれぞれ違う変化量で動くように制御されることで、ユーザは、各スライダー上の摘みの動きの違いを楽しむことができるようになる。なお、水平方向における位置以外の要素とは、具体的には例えば、垂直方向(水平方向と略直交する方向)における位置である。各摘みの軌道を異ならせることで、結果として、所定の距離移動した時の各摘みの垂直方向における位置が異なることになる。また、水平方向における位置以外の要素は、例えば、摘みの回転量や回転方向、摘みの向き等の要素であっても良い。例えば本実施形態では、設定値を最小値に変更するための方向に移動する場合は、摘み1405に配置されている画像が下を向くように摘み1405を回転させ、摘み1410は回転させない。これにより、掴みの回転量や回転方向の変化量が、それぞれの摘みで異なることになる。なお、この制御において、1つの要素だけでなく、2以上の要素が異なるように制御されて良い。
また、上述のように、本実施形態では、掴みが移動する方向に応じて、移動中の掴みの状態が異なるように制御される。この制御は、言い換えると下記のようになる。動物用スライダー上の停止位置にて停止している時の摘み1405の状態と、動物用スライダー上の停止位置から左方向に所定の距離Aを移動した時の摘み1405の状態との間の、水平方向における位置以外の要素における変化量を第3の変化量とする。第3の変化量とは具体的には例えば、図16(1)に示す摘み1405の状態と、図16(2)において実線で示す摘み1405の状態との間の変化量である。そして、動物用スライダー上の停止位置にて停止している時の摘み1405の状態と、動物用スライダー上の停止位置から右方向に所定の距離Aを移動した時の摘み1405の状態との間の、水平方向における位置以外の要素における変化量を第4の変化量とする。第4の変化量とは具体的には例えば、図17(1)に示す摘み1405の状態と、図17(2)において実線で示す摘み1405の状態との間の変化量である。そして、本実施形態では、第3の変化量と第4の変化量とが異なるように制御される。このような形態によっても、ユーザは、スライダー上の摘みの動きの違いを楽しむことができるようになる。なお、水平方向における位置以外の要素とは、上述した例と同様であり、この制御においても、1つの要素だけでなく、2以上の要素が異なるように制御されて良い。
また、本実施形態では、「動物」のオブジェクトに関する設定値を変更するための摘みが、動物が喜んでいる様や悲しんでいる様を表現しながら移動するように制御される。このように、本実施形態では、移動中の掴みの状態を、掴みに対応するオブジェクトを模した状態とすることで、各スライダーがどのようなオブジェクトに対応するものなのかどうかをユーザに示すことができる。
なお、上述では、「人物」のオブジェクトに関する設定値を変更するための摘みは従来通りの方法で移動するものとしたが、この形態に限定されない。「動物」のオブジェクトに関する設定値を変更するための摘みと異なる移動方法であれば、例えばまっすぐでない軌道で移動したり、回転した状態で移動したり等、上述した方法以外で移動しても良い。
また、上述では、「人物」と「動物」のオブジェクトに関する設定値を変更するための摘みの移動方法について説明した。しかし、例えば「料理」や「建物」、「乗り物」、「花」等のその他のオブジェクトに関する設定値を変更するための摘みの移動方法についても、本発明を適用可能である。上述したように本実施形態では、アルバムのモードに対応したオブジェクトに関する設定値を変更するためのスライダーと、「人物」に関する設定値を変更するためのスライダーとが表示される形態である。そのため、例えば、アルバムのモードが「乗り物」であれば、「乗り物」に関する設定値を変更するための掴みの移動方法と、「人物」に関する設定値を変更するための掴みの移動方法とが異なるように設定される。
図18は、アルバム編集画面1400が表示された場合に画像処理装置100が実行する処理を示すフローチャートである。図18に示すフローチャートは、例えば、CPU101がHDD104に格納されたアルバム作成アプリに対応するプログラムをROM102やRAM103に読み出して実行することにより実現される。また、図18に示すフローチャートは、アルバム編集画面1400が、ディスプレイ105に表示されている状態で開始される。
まず、S1801において、CPU101は、摘み1405を移動させるための操作が受け付けられたか否かを判定する。CPU101は、YES判定の場合は、S1802に進み、NO判定の場合は、S1810に進む。
S1802において、CPU101は、受け付けられた操作に基づいて摘み1405が移動する方向が、摘み1405に配置されている画像が表わすオブジェクトの向きと同じか否かを判定する。CPU101は、YES判定の場合は、S1804に進み、NO判定の場合は、S1803に進む。
S1803において、CPU101は、受け付けられた操作に基づいて摘み1405が移動する方向が、摘み1405に配置されている画像が表わすオブジェクトの向きと同じとなるように制御する。すなわち、CPU101は、摘み1405に配置されている画像が表わすオブジェクトの向きを反転させる。その後、CPU101は、S1804に進む。
S1804において、CPU101は、受け付けられた操作に基づいて摘み1405が移動する方向が、摘み1405に対応するオブジェクトを含む画像の採用枚数を増やすための方向か否かを判定する。本実施形態では、摘み1405に対応するオブジェクトを含む画像の採用枚数を増やすための方向とは、左方向であり、摘み1405に対応するオブジェクトを含む画像の採用枚数を減らすための方向とは、右方向である。CPU101は、YES判定の場合は、S1805に進み、NO判定の場合は、S1806に進む。
S1805では、CPU101は、摘み1405に対応するオブジェクトを含む画像の採用枚数を増やすための方向に応じたアニメーションによって、摘み1405を移動させる。具体的には、CPU101は、摘み1405を、弧を描きながら移動させる。その後、CPU101は、S1807に進む。
S1806では、CPU101は、摘み1405に対応するオブジェクトを含む画像の採用枚数を減らすための方向に応じたアニメーションによって、摘み1405を移動させる。具体的には、CPU101は、摘み1405を、回転させた後に移動させる。その後、CPU101は、S1807に進む。
S1807では、CPU101は、摘み1405が移動している最中に、摘み1405の移動方向を変えるための操作が受け付けられたかを判定する。CPU101は、YES判定の場合は、S1808に進み、NO判定の場合は、S1809に進む。
S1808では、CPU101は、摘み1405の移動方向を反転させ、反転後の移動方向に応じたアニメーションによって掴み1405を移動させる。その後、CPU101は、再びS1807に進む。
S1809では、CPU101は、移動後の摘み1405の位置及び、移動後の摘み1405の位置に応じた設定値を特定し、摘み1405に対応するオブジェクト(ここでは「動物」)の設定値を、特定した設定値に設定する。その後、CPU101は、S1810に進む。
S1810では、CPU101は、アルバムの編集指示が受け付けられたか否かを判定する。具体的にはCPU101は、OKボタン1412が押下されたか否かを判定する。CPU101は、YES判定の場合は、S1811に進み、NO判定の場合は、再びS1801に進む。
S1810では、CPU101は、掴み1405の位置に応じた設定値に基づいて、自動レイアウト処理を再度実行する。具体的には、CPU101は、掴み1405の位置に応じた設定値に基づいて、S416からS428の処理を再度行う。なおこのとき、CPU101は、編集前のアルバム作成時のS401〜S415の処理で取得された各情報を、適宜再利用しても良い。
再度実行される自動レイアウト処理では、例えば、CPU101は、S416における画像得点化において、掴み1405の位置に応じた設定値に基づいて、摘み1405に対応するオブジェクトを含む画像を表わす画像データの得点を増減する。具体的には例えば、CPU101は、掴み1405の位置に応じた設定値が最大値である場合、摘み1405に対応するオブジェクトを含む画像を表わす画像データの得点を増やす。また、例えば、CPU101は、掴み1405の位置に応じた設定値が最小値である場合、摘み1405に対応するオブジェクトを含む画像を表わす画像データの得点を減らす。なお、掴み1405の位置に応じた設定値が中間値である場合、摘み1405に対応するオブジェクトを含む画像を表わす画像データの得点を変更しなくても良い。
なお上述において、摘み1405に対応するオブジェクトを含む画像を表わす画像データの得点を一律で増減させる形態ではなくても良い。例えば、各画像データの得点に対し、摘み1405に対応するオブジェクトに対応する評価軸に基づいて計算されるそれぞれ異なる得点を加減しても良い。また、各画像データを、摘み1405に対応するオブジェクトに対応する評価軸に基づいて再度評価しても良い。これにより、例えば、「人物」のオブジェクトが良く写っている画像を表わすことから評価が高かった画像データの評価が見直されて、「動物」のオブジェクトが良く写っている画像を表わす画像データの評価が高くなる。
そして例えば、上述の画像得点化が実行された後、以下の画像選択処理が実行されても良い。例えば、CPU101は、S423における画像選択処理において、掴み1405の位置に応じた設定値に基づいて、画像データを選択する。具体的には例えば、CPU101は、掴み1405の位置に応じた設定値が最大値である場合、得点の大小にかかわらず、摘み1405に対応するオブジェクトを含む画像を表わす画像データを優先的に選択する。すなわちCPU101は、摘み1405に対応するオブジェクトを含む画像を表わさない画像データの方が、摘み1405に対応するオブジェクトを含む画像を表わす画像データよりも得点が高くても、後者の画像データを選択する。また例えば、CPU101は、掴み1405の位置に応じた設定値が最小値である場合、得点の大小にかかわらず、摘み1405に対応するオブジェクトを含む画像を表わさない画像データを優先的に選択する。すなわちCPU101は、摘み1405に対応するオブジェクトを含む画像を表わす画像データの方が、摘み1405に対応するオブジェクトを含む画像を表わさない画像データよりも得点が高くても、後者の画像データを選択する。
なお、再度実行される自動レイアウト処理として、上述した画像得点化処理と画像選択処理を実行する例を説明したが、以下のように別の処理が行われても良い。例えば、掴み1405の位置に応じた設定値及び掴み1410の位置に応じた設定値の組み合わせに応じて、S423における画像選択処理において選択される画像データが表わす画像に含まれる各オブジェクトの割合を変化させても良い。図19は、このような形態を適用した場合の、各設定値における編集後のアルバムのある1枚の見開きのレイアウト画像を示す図である。
1904は、メインスロットに配置される画像の種類を示し、1905及び1906は、サブスロットに配置される画像の種類を示す。「人物+動物」は人と動物の両方のオブジェクトを含む画像を示している。「人物」は人のオブジェクトを含み、動物のオブジェクトを含まない画像を示している。「動物」は動物のオブジェクトを含み、人のオブジェクトを含まない画像を示している。「モノ」は人と動物の両方のオブジェクトを含まない画像を示している。
表1901に示すように、「人物」の設定値と「動物」の設定値が共に「Main」である場合には、レイアウト画像に含まれるすべての画像が、「人物+動物」の種類となる。また、「人物」の設定値が「Sub」で「動物」の設定値が「Main」である場合には、メインスロットには、「人物+動物」の種類の画像が配置され、サブスロットには、「動物」の種類の画像が配置される。また、「人物」の設定値が「Other」で「動物」の設定値が「Main」である場合には、レイアウト画像に含まれるすべての画像が、「動物」の種類となる。
また、「人物」の設定値が「Main」で「動物」の設定値が「Sub」である場合には、メインスロットには、「人物+動物」の種類の画像が配置され、サブスロットには、「人物」の種類の画像が配置される。また、「人物」の設定値が「Main」で「動物」の設定値が「Other」である場合には、レイアウト画像に含まれるすべての画像が、「人物」の種類となる。
また、「人物」の設定値と「動物」の設定値が共に「Sub」である場合には、メインスロットには、「人物+動物」の種類の画像が配置され、サブスロットには、「人物」の種類の画像と、「動物」の種類の画像が配置される。また、「人物」の設定値が「Sub」で「動物」の設定値が「Other」である場合には、メインスロットには、「人物」の種類の画像が配置され、サブスロットには、「モノ」の種類の画像が配置される。また、「人物」の設定値が「Other」で「動物」の設定値が「Sub」である場合には、メインスロットには、「動物」の種類の画像が配置され、サブスロットには、「モノ」の種類の画像が配置される。また、「人物」の設定値と「動物」の設定値が共に「Other」である場合には、レイアウト画像に含まれるすべての画像が、「モノ」の種類となる。
なお、上述のようにして画像の種類が決定した場合、決定された種類の画像を表わす画像データから、得点が高い順に画像データが選択される。そして、選択された画像データが表わす画像が配置されたレイアウト画像が作成される。
なお、各パターンにおいて配置される画像の種類は上述の形態に限定されず、それぞれのパターンにおいて配置される画像の種類が異なっていればいい。例えば、どの種類の画像が配置されるかが設定されないスロットが含まれていても良い。その場合、当該スロットにはいずれの種類の画像が配置されても良く、例えば、単に、未だ選択されていない画像のうち得点が一番高い画像が配置される。
また、図21には、各パターンにおいてレイアウト画像の生成に利用されるテンプレートの種類が同一であるものとしたが、この形態に限定されない。各パターンにおいて選択される画像データが異なるため、選択された画像データに適したテンプレートが各パターンにおいて適宜選択されて良い。
このように、CPU101は、掴み1405の位置に応じた設定値に基づいて、摘み1405に対応するオブジェクトを含む画像を表わす画像データの得点や、画像選択処理における優先度を調整する。これにより、再度実行される自動レイアウト処理により出力されるレイアウト情報によって表わされるアルバムが、アルバム編集画面1400による設定変更結果に基づくものとなる。
再度自動レイアウト処理が実行された後は、それにより生成されたレイアウト情報により表わされるアルバムが、編集画面に表示される。
このように、本実施形態では、掴みが移動する方向やスライダーの種類に応じて、移動中の掴みの状態を異ならせる。具体的には、摘みの移動方向が、摘みに対応するオブジェクトを含む画像の採用枚数を増やすための方向であれば、弧を描くようにして摘みを移動させる。また、摘みの移動方向が、摘みに対応するオブジェクトを含む画像の採用枚数を減らすための方向であれば、下向きに回転された状態で掴みを移動させる。また、「人物」に関する設定値を変更するためのスライダー上の摘みと、「動物」に関する設定値を変更するためのスライダー上の摘みとで、移動中の状態を異ならせる。このような形態とすることで、掴みを動かすことによる「楽しみ」や「面白さ」などのポジティブな感情をユーザに抱かせることができる。また、摘みを動かすことによって選択される各設定値や、掴みの移動方向がどのような意味を持つのかを、ユーザに示すことができる。
また、本実施形態では、各掴みには、各スライダーに対応するオブジェクトに関する画像が配置されている。このような形態とすることで、摘みが無機質な見た目である形態より、移動中の摘みの状態が示す意味をユーザに感じ取りやすくさせることができる。
(その他の実施形態)
上述した実施形態では、摘みの移動方向やスライダーの種類に応じて、摘みに配置された画像を回転させたり、掴みの移動の軌道を変更したりしていたが、この形態に限定されない。例えば、摘みの移動方向やスライダーの種類に応じて、摘みに配置された画像の内容を変化させる形態であっても良い。この場合例えば、CPU101は、摘みの移動方向が、摘みに対応するオブジェクトを含む画像の採用枚数を増やすための方向であれば、摘みに対応するオブジェクトが喜んでいることを示す画像に変化させる。一方例えば、CPU101は、摘みの移動方向が、摘みに対応するオブジェクトを含む画像の採用枚数を減らすための方向であれば、摘みに対応するオブジェクトが悲しんでいることを示す画像に変化させる。
また、例えば、画像処理装置100が備える出力部(不図示)から、掴みが移動している時に発せられる音を、摘みの移動方向やスライダーの種類に応じて変化させても良い。この場合例えば、CPU101は、摘みの移動方向が、摘みに対応するオブジェクトを含む画像の採用枚数を増やすための方向であれば、摘みに対応するオブジェクトが喜んでいることを示す音を出力部から発生させる。なお、喜んでいることを示す音とは例えば、犬が元気よく吠えている音である。また、摘みに対応するオブジェクトが動物であれば(スライダーの種類が「動物」のオブジェクトの設定値を変更するものであれば)、犬の鳴き声を発生させ、そうでなければ別の音を発生させる。すなわち、「人物」に関する設定値を変更するための摘みが移動している間に発せられる音と、「動物」に関する設定値を変更するための掴みが移動している間に発せられる音とが、異なるように制御されても良い。一方例えば、CPU101は、摘みの移動方向が、摘みに対応するオブジェクトを含む画像の採用枚数を減らすための方向であれば、摘みに対応するオブジェクトが悲しんでいることを示す音を出力部から発生させる。摘みに対応するオブジェクトが動物であれば、悲しんでいることを示す音とは例えば、犬が元気なく吠えている音である。
また、例えば、摘みの移動方向やスライダーの種類だけでなく、例えば、摘みの位置に応じて掴みの状態を変化させても良い。例えば、CPU101は、最小値を設定するための位置と中間値を設定させるための位置との間で、摘みに対応するオブジェクトを含む画像の採用枚数を増やすための方向に掴みが移動している場合は、小さく弧を描くように掴みを移動させる。また、例えば、CPU101は、中間値を設定するための位置と最大値を設定させるための位置との間で、摘みに対応するオブジェクトを含む画像の採用枚数を増やすための方向に掴みが移動している場合は、大きく弧を描くように掴みを移動させる。摘みに対応するオブジェクトを含む画像の採用枚数を増やすための方向に掴みが移動している場合においても、掴みの位置に応じて、掴みの状態変化の程度を変化させる。
また、上述では、本発明を適用したスライダーは、アルバムの編集に係わる設定値を変更するためのスライダーであるものとしたが、この形態に限定されない。例えば、摘みの位置に応じて画像データのプロパティ(輝度や明度、コントラスト、色等)を変更するためのスライダーであっても良いし、出力部から発せられる音の大きさを調節するためのスライダーであっても良い。すなわち、本発明を適用したスライダーの用途は特に限定されない。
また、上述では、複数のスライダーが同一画面において並行して(同時に)表示されるものしたが、この形態に限定されない。例えば、「人物」に関する設定値を変更するためのスライダーと、「動物」に関する設定値を変更するためのスライダーが別々の画面に表示される形態としても良い。また、例えば、編集画面に、アルバムのテーマに応じたスライダーのみが表示される形態としても良い。その場合、編集のために自動レイアウト処理が再度実行される時には、複数のスライダーではなく、1つのスライダーによって設定された設定値に基づいて処理が行われる。
また、上述では、スライダーがアルバムの編集画面において表示されるものとしたが、この形態に限定されない。例えば、図3の設定画面にスライダーが表示され、設定画面に表示されるスライダーによって設定された設定値に基づいて、編集前のレイアウト情報を作成するための自動レイアウト処理が実行されても良い。
上述した実施形態は、以下の処理を実行することによっても実現される。すなわち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPUやMPU等)がプログラムを読み出して実行する処理である。また、プログラムは、1つのコンピュータで実行させても、複数のコンピュータで連動させて実行させるようにしてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、処理の一部または全部をASIC等のハードウェアで実現するようにしてもよい。また、CPUも1つのCPUで全ての処理を行うものに限らず、複数のCPUが適宜連携をしながら処理を行うものとしてもよい。