(57)【要約】      （修正有）【課題】画像データの送信を効率的に行うことで、ユーザーの利便性をより高めることができる情報処理システム、情報処理装置、プログラム、及び情報処理方法を提供する。【解決手段】ユーザーが選択した画像に基づいて解析用画像データを生成し、解析用画像データをサーバーシステムに送信し、ユーザーが選択した画像に対応し、かつ、解析用画像データよりもデータサイズが大きい印刷用画像データを、解析用画像データの送信が完了した後に、サーバーシステムに送信する。【選択図】図１３
2020036237.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置とサーバーシステムにより構成される情報処理システムにおいて、
前記情報処理装置は、
ユーザーが選択した画像に基づいて解析用画像データを生成する第１生成手段と、
前記第１生成手段により生成された解析用画像データを前記サーバーシステムに送信する第１送信手段と、
前記ユーザーが選択した画像に対応し、かつ、前記解析用画像データよりもデータサイズが大きい印刷用画像データを、前記解析用画像データの送信が完了した後に、前記サーバーシステムに送信する第２送信手段を有し、
前記サーバーシステムは、
前記第１送信手段により送信された前記解析用画像データに基づいてレイアウト処理を実行するレイアウト手段と、
前記レイアウト手段によるレイアウト結果を前記情報処理装置に送信する送信手段と、
前記レイアウト結果と前記第２送信手段により送信された前記印刷用画像データに基づいて印刷指示を発行する指示手段を備えることを特徴とする情報処理システム。
【請求項２】
ユーザーが選択した画像に基づいて解析用画像データを生成する第１生成手段と、
前記第１生成手段により生成された解析用画像データをサーバーシステムに送信する第１送信手段と、
前記ユーザーが選択した画像に対応し、かつ、前記解析用画像データよりもデータサイズが大きい印刷用画像データを、前記解析用画像データの送信が完了した後に、前記サーバーシステムに送信する第２送信手段を有し、
前記サーバーシステムにおいて、前記解析用画像データに基づくレイアウト処理が実行され、かつ、前記レイアウト処理によるレイアウト結果と前記印刷用画像データに基づいて印刷指示が発行されることを特徴とする情報処理装置。
【請求項３】
前記解析用画像データは、ユーザーにより選択された画像に対応する元画像データを縮小することで生成されることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記印刷用画像データは、ユーザーが選択した画像に対応する元画像データであることを特徴とする請求項２または３に記載の情報処理装置。
【請求項５】
前記印刷用画像データは、ユーザーにより選択された画像に対応する元画像データを縮小することで生成されることを特徴とする請求項２または３に記載の情報処理装置。
【請求項６】
ユーザーが選択した画像の中でレイアウト処理に使用される画像を特定する特定手段と、
前記特定された画像に対応する印刷用画像データが前記サーバーシステムに送信され、前記特定された画像とは異なる画像に対応する印刷用画像データは前記サーバーシステムに送信されないことを特徴とする請求項２乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記レイアウト処理により画像が配置されたスロットのサイズに基づいて前記印刷用画像データが生成されることを特徴とする請求項２乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
コンピュータを、
ユーザーが選択した画像に基づいて解析用画像データを生成する第１生成手段と、
前記第１生成手段により生成された解析用画像データをサーバーシステムに送信する第１送信手段と、
前記ユーザーが選択した画像に対応し、かつ、前記解析用画像データよりもデータサイズが大きい印刷用画像データを、前記解析用画像データの送信が完了した後に、前記サーバーシステムに送信する第２送信手段して機能させ、
前記サーバーシステムにおいて、前記解析用画像データに基づくレイアウト処理が実行され、かつ、前記レイアウト処理によるレイアウト結果と前記印刷用画像データに基づいて印刷指示が発行されることを特徴とする前記コンピュータが読み取り可能なプログラム。
【請求項９】
前記解析用画像データは、ユーザーにより選択された画像に対応する元画像データを縮小することで生成されることを特徴とする請求項８に記載のプログラム。
【請求項１０】
前記印刷用画像データは、ユーザーが選択した画像に対応する元画像データであることを特徴とする請求項８または９に記載のプログラム。
【請求項１１】
前記印刷用画像データは、ユーザーにより選択された画像に対応する元画像データを縮小することで生成されることを特徴とする請求項８または９に記載のプログラム。
【請求項１２】
前記コンピュータを、
さらにユーザーが選択した画像の中でレイアウト処理に使用される画像を特定する特定手段として機能させ、
前記特定された画像に対応する印刷用画像データが前記サーバーシステムに送信され、前記特定された画像とは異なる画像に対応する印刷用画像データは前記サーバーシステムに送信されないことを特徴とする請求項８乃至１１のいずれか１項に記載のプログラム。
【請求項１３】
前記レイアウト処理により画像が配置されたスロットのサイズに基づいて前記印刷用画像データが生成されることを特徴とする請求項８乃至１２のいずれか１項に記載のプログラム。
【請求項１４】
ユーザーが選択した画像に基づいて解析用画像データを生成する第１生成工程と、
前記第１生成工程により生成された解析用画像データをサーバーシステムに送信する第１送信工程と、
前記ユーザーが選択した画像に対応し、かつ、前記解析用画像データよりもデータサイズが大きい印刷用画像データを、前記解析用画像データの送信が完了した後に、前記サーバーシステムに送信する第２送信工程を有し、
前記サーバーシステムにおいて、前記解析用画像データに基づくレイアウト処理が実行され、かつ、前記レイアウト処理によるレイアウト結果と前記印刷用画像データに基づいて印刷指示が発行されることを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、プログラム、及び情報処理方法に関する。
【背景技術】
【０００２】
ユーザーが撮りためた写真に対応する画像データをレイアウトしてフォトアルバムを作成する技術が特許文献１に開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１８−１２４７８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、写真に対応する画像データを保持する装置と、画像データを解析する装置が異なる場合、写真に対応する画像データを保持する装置は解析処理を実行する装置に画像データを送信する必要がある。この場合、効率よく画像データを送信することでユーザーの利便性の向上を図ることが求められる。
【０００５】
本発明は、上記課題に鑑み、画像データの送信を効率的に行うことでユーザーの利便性をより高めることを目的とする。
【課題を解決するための手段】
【０００６】
ユーザーが選択した画像をクライアントで縮小して解析用画像を生成する解析用画像生成手段、前記解析用画像生成手段で生成した解析用画像をクライアントからサーバーにアップロードする解析用画像アップロード手段、前記解析用画像アップロード手段で解析用画像のアップロードが完了したら印刷用画像をサーバーにアップロードする印刷用画像アップロード手段を有することを特徴とする情報処理装置。
【発明の効果】
【０００７】
本発明により、ユーザーの利便性をより高めることが可能となる。
【図面の簡単な説明】
【０００８】
【図１】情報処理システムの構成を示す図である。
【図２】情報処理装置のハードウェア構成を示す図である。
【図３】クライアントサイドＷｅｂアプリケーションの構成を示す図である。
【図４】ユーザーインターフェースを示す図である。
【図５】自動レイアウトエンジンを示す図である。
【図６】自動レイアウト処理の流れを示すフローチャートである。
【図７】自動レイアウト処理における画像解析情報を説明する図である。
【図８】自動レイアウト処理における画像群分割を説明する図である。
【図９】自動レイアウト処理におけるシーン分類を説明する図である。
【図１０】自動レイアウト処理における画像得点を説明する図である。
【図１１】自動レイアウト処理における画像選択を説明する図である。
【図１２】自動レイアウト処理における画像レイアウトを説明する図である。
【図１３】本実施形態のシーケンス図である。
【図１４】本実施形態のシーケンス図である。
【図１５】本実施形態のシーケンス図である。
【図１６】本実施形態のシーケンス図である。
【図１７】本実施形態のシーケンス図である。
【図１８】本実施形態のシーケンス図である。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１０】
＜実施形態１＞
図１は、フォトアルバム作成／注文のための情報処理システムの構成の一例を示す図である。図１に示すように、情報処理システムは、クライアント１と、サーバーサイド２とを有し、クライアント１とサーバーサイド２は、各々のネットワーク７を経由してインターネット３で接続されている。クライアント１の例としては、パーソナルコンピュータやスマートフォンが挙げられる。サーバーサイド２の例としては、サーバーサイド２で動作する物理サーバーや仮想サーバーが挙げられる。なお、サーバーサイド２は、複数のサーバー群で構成されても良いし、１台のサーバーで構成されても良い。なお、サーバーサイド２全体をサーバーシステムと呼ぶこともある。ネットワーク７の例としては、一般家庭用のホームネットワークが挙げられる。
【００１１】
クライアント１にはＷｅｂブラウザ４があり、Ｗｅｂブラウザ４でフォトアルバムを作成するためのクライアントサイドＷｅｂアプリケーション８が動作する。クライアントサイドＷｅｂアプリケーション８はＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）、ＣＳＳ（Ｃａｓｃａｄｉｎｇ  Ｓｔｙｌｅ  Ｓｈｅｅｔｓ）、ＪａｖａＳｃｒｉｐｔ（登録商標）などで構成される。Ｗｅｂブラウザ４は、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）を利用する際に用いられるブラウザである。
【００１２】
サーバーサイド２には、管理システム５、ショッピングサイト６がある。管理システム５は、静的Ｗｅｂサーバー９、自動レイアウトエンジン１０、ストレージ１１、データベース１２、管理サーバー１３を備える。なお、管理システム５も、１台のサーバーで構成されても良いし、複数のサーバー群で構成されても良い。そのため管理システム５を、単にサーバーシステム（またはレイアウトシステム）と呼ぶこともある。
【００１３】
静的Ｗｅｂサーバー９はクライアントサイドＷｅｂアプリケーション８を構成するＨＴＭＬ、ＣＳＳ、ＪａｖａＳｃｒｉｐｔなどのデータを保有している。Ｗｅｂブラウザ４が、それらのデータを取得することでクライアントサイドＷｅｂアプリケーション８がＷｅｂブラウザ４で動作する。
【００１４】
ショッピングサイト６はユーザーがフォトアルバムを注文する際に利用され、ユーザーが作成したフォトアルバムの決済などを行う。
【００１５】
自動レイアウトエンジン１０とは、フォトアルバムの自動レイアウト機能を実装したプログラムがインストールされている物理サーバーや仮想サーバー、または、サーバーのアプリケーション実行環境であるコンテナで動作するプログラムのことである。
【００１６】
ストレージ１１は、パブリッククラウドなどが提供するストレージサービスや、物理サーバーまたは仮想サーバーが保有するストレージなどのことである。ストレージ１１はユーザーがＷｅｂブラウザ４上で選択した画像などのデータを保存しておくために使われる。
【００１７】
データベース１２は、パブリッククラウドなどが提供するデータベースサービスや、物理サーバーまたは仮想サーバーが保有するデータベースなどのことである。データベース１２には、ストレージ１１にアップロードされた画像に関する情報や、自動レイアウトエンジン１０が行なった画像解析結果やレイアウト結果などが保持される。
【００１８】
管理サーバー１３はユーザーが最終的に注文するフォトアルバムのデータを生成したり、フォトアルバムのデータをショッピングサイト６に転送したりする。
【００１９】
図２は、クライアント１のハードウェア構成の一例を表す図である。なお、サーバーサイド２における各物理サーバーも同様の構成を有するものとする。ただし、クライアント１とサーバーサイド２の各物理サーバーは、同一の構成からなる必要はない。図２に示すように、クライアント１は、ＣＰＵ２０４、ＲＡＭ２０１、ＲＯＭ２０３、ＨＤＤ２０２、表示部２０５、入力部２０８、通信制御部２０７を有し、それぞれがシステムバス２０６により接続されている。また、通信制御部２０７がネットワーク７に接続する。ＣＰＵ（中央演算装置／プロセッサ）２０４は、システム制御部であり、クライアント１全体を制御する。また、ＣＰＵ２０４は、本実施形態で説明する表示制御方法をプログラムに従って実行する。ＲＡＭ２０１は、ランダムアクセスメモリであり、ＣＰＵ２０４によるプログラムの実行時に、各種情報を一時的に記憶するためのメモリを提供している。ＲＯＭ２０３は、ＣＰＵ２０４により実行されるプログラムが記憶されている。ＨＤＤ（ハードディスク）２０２は、画像ファイルや画像解析などの処理結果を保持するデータベースなどを記憶するための記憶媒体である。
【００２０】
図３はクライアントサイドＷｅｂアプリケーション８の構成図である。クライアントサイドＷｅｂアプリケーション８は、画像選択部３１、解析用画像生成部３２、解析用画像アップロード部３３、印刷用画像アップロード部３４、フォトアルバム編集部３５から構成される。ユーザーがフォトアルバムに配置したい所望の写真を選択すると、画像選択部３１は、ユーザーの指示に従って写真に対応する画像データを選択する。解析用画像生成部３２では、自動レイアウト機能が処理できるサイズに元画像を縮小した解析用画像データを生成する。解析用画像アップロード部３３では、解析用画像生成部３２で生成された解析用画像データを管理システム５にアップロードする。印刷用画像アップロード部３４では、ユーザーが選択した写真に対応する元画像データをアップロードする。なお、印刷用画像アップロード部３４は、元画像データを印刷品位が保てるサイズに縮小することで印刷用画像データを生成し、管理システム５にアップロードしても良い。フォトアルバム編集部３５では、自動レイアウト機能によって作られたフォトアルバムをユーザーが編集する機能を提供する。
【００２１】
図４は、クライアントサイドＷｅｂアプリケーション８の実行によりＣＰＵ２０４によって提供される表示画面であり、ユーザーがフォトアルバムを編集するための編集画面の一例である。編集画面４０１は、クライアントサイドＷｅｂアプリケーション８により提供される。表示領域４０２は、フォトアルバムの各ページのサムネイルを一覧表示する領域である。表示領域４０３は、表示領域４０２で選択されたページのプレビュー画像を表示する領域であり、レイアウト画像の編集を行うことができる。
【００２２】
表示領域４０２において、ユーザーが各ページのサムネイルの中から所望のサムネイルを選択することで、そのページが選択状態の表示４０４になる。図４では、３〜４ページの２ページ分（見開き１つ分）が選択状態であり、このページのレイアウト画像が表示領域４０３に表示される。なお見開きとは、たとえば表示においてはひとつの表示用ウィンドウに相当し、印刷においては印刷された互いに隣接する１対のページに相当する。
【００２３】
表示領域４０３では、フォトアルバムの編集操作が可能となる。レイアウト画像において表示されるテンプレートは、１以上のスロットを有する。図４では、３ページ目（図中左ページ）に３つのスロット４０５を有し、４ページ目（図中右ページ）に１つのスロット４０５を有する。スロット４０５には、写真に対応する画像データが割り当てられる。なお、本実施形態では、各スロット４０５には、上述した処理によりアップロードされた解析用画像データが後述の処理により自動的に割当てられている。テキストボックス４０６にはユーザーにより任意のテキストが入力される。
【００２４】
ボタン４０７は、アプリケーションにより作成した（編集した）フォトアルバムをカートに入れるためのボタンである。このボタン４０７を押すことにより、編集したフォトアルバムのレイアウト情報がインターネット３経由でサーバーサイド２のショッピングサイト６にアップロードされる。
【００２５】
（自動レイアウト処理部の構成）
図５は、自動レイアウトエンジン１０の一部の機能のソフトウェアブロック図である。自動レイアウトエンジン１０は様々な機能を持つが、図５では、特に自動レイアウト処理部９１６により提供される自動レイアウト機能に関して説明する。自動レイアウト機能は、解析用画像データをその内容や属性に基づいて分類し、あるいは選択して各スロットにレイアウトし、表示部２０５に表示するアルバム画像を生成する。
【００２６】
本実施形態では、自動レイアウトエンジン１０は、クライアントサイドＷｅｂアプリケーション８が管理システム５において提供されるＷｅｂＡＰＩを呼ぶことにより起動される。図５に示すように、自動レイアウトエンジン１０は、アルバム作成条件指定部９０１と、自動レイアウト処理部９１６と、を含む。マウス等の入力部２０８を介したＵＩ操作に応じてアルバム作成条件を自動レイアウト処理部９１６に指定する。
【００２７】
画像取得部９０２は、アルバム作成指定部から指定された画像群をＨＤＤ２０２から取得する。ここでいう画像群とは、１つのアルバム作成の際にレイアウトする候補画像群を指し、アップロードされた解析用画像データ群に対応する。
【００２８】
画像変換部９０３は、解析用画像データを所望の画素数や色情報に変換する。本実施形態では、予め決められた短辺画素の画素数、短辺画素の画素数と解析用画像データのアスペクト比から算出される長辺画素の画素数およびｓＲＧＢの色情報の解析画像に変換する。
【００２９】
画像解析部９０４は、解析画像から後述の特徴量取得、顔検出、表情認識、個人認識を実施する処理である。また、解析用画像データに付随したデータ、例えばＥｘｉｆ情報から撮影日時を取得する処理も画像解析部９０４が実施する。
【００３０】
画像分類部９０５は、画像群に対して撮影日時情報や枚数、検出した顔情報を使って後述のシーン分割、シーン分類を実施する。シーンとは、旅行や日常、結婚式等の撮影シーンのことである。シーンとは、例えば、一つの撮影対象について一時期の撮影機会に撮影された画像の集まりであるということもできる。
【００３１】
主人公情報入力部９０６は、アルバム作成条件指定部９０１から指示された主人公のＩＤ（識別情報）を画像得点部９０７に入力する。
【００３２】
画像得点部９０７は、解析画像に対して得点を付与する。本実施形態では、レイアウトに適した画像が高得点になるように得点が付与される。レイアウトに適した解析画像が高得点になるように得点が付与される場合、画像解析部９０４で得られた情報、画像分類部９０５で得られた情報が使用される。画像得点部９０７は、主人公情報入力部９０６から入力された主人公ＩＤに対応するオブジェクトが含まれる解析画像の得点が高得点になるように、各解析画像に対して得点を付与する。
【００３３】
見開き割当部９０９は、画像群を分割して各見開きに割り当てる。ここでいう見開きとは、例えばアルバムを作成した際の見開きであり２ページ分に相当する。
【００３４】
見開き入力部９０８は、アルバム作成条件指定部９０１から指定されたアルバムの見開き数を見開き割当部９０９に入力する。
【００３５】
見開き割当部９０９は、入力された見開き数に応じて画像群を分割して各見開きに画像群の一部を割り当てる。例えば、見開き数が５である場合、取得した画像群を分割して５つのサブ画像群を生成し、各見開きに１つのサブ画像群を割り当てる。
【００３６】
画像選択部９１０は、見開き割当部９０９で各見開きに割り当てられたサブ画像群から画像得点部９０７で付けた得点に基づいて画像を選択する。
【００３７】
テンプレート入力部９１１は、アルバム作成条件指定部９０１から指定されたテンプレート情報に応じた複数のテンプレートを画像レイアウト部９１２に入力する。
【００３８】
画像レイアウト部９１２は、画像のレイアウトを決定する。具体的には、テンプレート入力部９１１が入力した複数のテンプレートのうち、画像選択部９１０が選択した画像に適したテンプレートを選択し、各画像のレイアウト（配置位置）を決定する。
【００３９】
画像補正条件入力部９１３は、アルバム作成条件指定部９０１から指定された画像補正のＯＮ／ＯＦＦ条件を画像補正部９１４に入力する。
【００４０】
画像補正部９１４は、覆い焼き補正、赤目補正、コントラスト補正をする。画像補正部９１４は画像補正条件ＯＮの場合は、画像に対して補正を実施する。画像補正条件ＯＦＦの場合は、補正を実施しない。尚、画像補正部９１４には、画像変換部９０３から入力された画像に対して補正のＯＮ／ＯＦＦを実施する。画像変換部９０３から画像補正部９１４に入力する画像の画素数は、画像レイアウト部９１２で決定したレイアウトのサイズに合わせて変えられる構成となっている。
【００４１】
レイアウト情報出力部９１５は、画像レイアウト部９１２が決定した画像レイアウトに従って、ディスプレイに表示する為のレイアウト情報を出力する。レイアウト情報は例えば、選択したテンプレートに選択した画像をレイアウトしたビットマップデータである。
【００４２】
（自動レイアウト処理のフロー）
図６は本実施形態に係る自動レイアウト処理部９１６において実行される処理を示すフローチャートである。図６に示すフローチャートは、例えば、サーバーサイド２側の自動レイアウトエンジン１０が搭載された物理サーバーのＣＰＵ２０４がＨＤＤ２０２に格納されたプログラムをＲＯＭやＲＡＭ２０１に読み出して実行することにより実現される。なお、以下の説明では、Ｓｔｅｐを単にＳと記載する。
【００４３】
Ｓ０１において、ＣＰＵ２０４は、解析用画像生成部３２を用いて解析画像を生成する。上述したようにクライアント１から解析用画像データがアップロードされるため、この解析用画像データに基づいて解析画像が生成される。具体的には、画像取得部９０２により取得された解析用画像データを所望の画素数と色情報に変換する。なお、ここで変換する画素数及び色情報は、予め決められている。本実施形態では、短辺画素とｓＲＧＢの色情報の解析画像に変換する。
【００４４】
Ｓ０２において、ＣＰＵ２０４は、画像解析部９０４を用いて画像特徴量を取得する。アップロードされた解析用画像データに付随する例えばＥｘｉｆ情報から画像特徴量として撮影日時が取得される。また、Ｓ０１で生成された解析画像から特徴量としてピントに関する情報が取得される。ここでピントに関する情報の取得方法について説明する。エッジの検出方法として一般的にソーベルフィルタが知られている。ソーベルフィルタでエッジ検出して、エッジの始点と終点の輝度差を始点と終点の距離で割ればエッジの傾きを算出できる。画像中のエッジの平均傾きを算出して、平均傾き大の画像は平均傾き小の画像よりもピントが合っていると考えることが出来る。傾きに対して異なる値の複数の閾値を設定し、どの閾値以上かを判別することでピント量を出せる。本実施形態では異なる２つの閾値を設定し、○△×の３段階でピント量を判別する。アルバムに採用したいピントの傾きを○、許容できるピントの傾きを△、許容できない傾きを×として、実験を通して閾値を設定する。
【００４５】
Ｓ０３においてＣＰＵ２０４は、画像解析部９０４を用いて顔検出を実施する。Ｓ０１で生成された解析画像から顔オブジェクトを検出する。顔の検出は、公知の方法を用いることができ、例えば、複数用意した弱識別器から強識別器を作成するＡｄａｂｏｏｓｔが挙げられる。本実施形態では、ＣＰＵ２０４は、Ａｄａｂｏｏｓｔにより作成した強識別器により人物（オブジェクト）の顔オブジェクトを検出する。ＣＰＵ２０４は、顔オブジェクトを検出すると共に、検出した顔オブジェクトの左上座標値と右下座標値を取得する。この２種の座標を特定することにより、人物の顔の位置と顔のサイズを特定することができる。なお、ここでは、人物の顔オブジェクトを検出するものとしたが、人物の顔に限らず、犬や猫等の動物、花、食べ物、建物、置物等の顔以外のオブジェクトが検出されるようにしてもよい。
【００４６】
Ｓ０４においてＣＰＵ２０４は、画像解析部９０４を用いて個人認識をする。具体的には、ＣＰＵ２０４は、まずＳ０３で抽出した顔オブジェクトと顔辞書データベースに個人ＩＤ毎に保存されている代表顔オブジェクトとの類似性を比較する。そして、ＣＰＵ２０４は、類似性が閾値以上で最も類似性が高いＩＤを抽出した顔オブジェクトのＩＤとして設定する。なお、ＣＰＵ２０４は、類似性が閾値未満の場合は新規の顔と判断して、顔辞書データベースに検出した顔オブジェクトを登録する。
【００４７】
Ｓ０２からＳ０４で取得した画像解析情報は、図７に示すように各画像を識別するＩＤ毎に区別して記憶される。なお、図７に示すように、Ｓ０２で取得した撮影日時情報、ピント判別結果、Ｓ０３で検出した顔オブジェクトの数と位置情報が保存される。顔の位置情報はＳ０４で取得した個人ＩＤ毎に区別して記憶される。解析画像において顔オブジェクトが検出されない場合、Ｓ０２で取得した撮影日時情報及びピント判別結果が保存され、顔に関わる情報は保存されない。
【００４８】
Ｓ０５においてＣＰＵ２０４は、アップロードされた全ての解析用画像データに対してＳ０１からＳ０４が終了したか否かを判定する。終了していない場合（Ｓ０５でＮｏ）、Ｓ０１に戻る。終了している場合（Ｓ０５でＹｅｓ）はＳ０６に移行する。
【００４９】
Ｓ０６においてＣＰＵ２０４は、画像分類部９０５を用いてシーン分割を実行する。シーン分割とは、取得した画像群をシーンに応じて複数のサブ画像群に分割することを指す。具体的には、ＣＰＵ２０４は、Ｓ０２で取得済みの撮影日時情報により示される解析画像間の時間差に基づいて画像群を複数のサブ画像群に分割する。解析画像と解析画像の撮影日が連続していない場合、すなわち、解析画像間に撮影していない日が存在する場合、ＣＰＵ２０４は、その撮影していない日の前後で画像群を分割する。次に、撮影日が連続する場合について説明する。本実施形態では、解析画像間の撮影時間の差が１６時間以上空いている場合、ＣＰＵ２０４は、その１６時間の空き時間の前後で画像群を分割する。解析画像間の撮影時間の差が１６時間未満の場合、ＣＰＵ２０４は、連続する各日の最初の撮影から最後の撮影までの時間差が４時間未満なら、日にち単位で画像群を分割する。なお、４時間以上の場合は、連続する各日の撮影枚数が５０枚未満である場合、ＣＰＵ２０４は、日にち単位で画像群を分割し、５０枚以上であれば分割しない。なお、分割の際の時間差の閾値や枚数の閾値は、これに限定されるものではない。図８（Ａ）は、上述したシーン分割方法で分割した結果を示し、画像群が８個のサブ画像群に分割された結果を示す。
【００５０】
Ｓ０７においてＣＰＵ２０４は、画像分類部９０５を用いてシーン分類を実行する。本実施形態では、各サブ画像群を旅行、日常、セレモニーの３つに分類する場合を例に挙げて説明するが、分類はこれに限定されるものではない。まず、ＣＰＵ２０４は、旅行に分類されたサンプル画像群、日常に分類されたサンプル画像群、セレモニーに分類されたサンプル画像群を取得する。そして、各サンプル画像群について、ＣＰＵ２０４は、撮影の特徴量を取得する。本実施形態で取得する特徴量は、例えば、撮影期間、撮影枚数、撮影人数である。撮影期間は、画像群の最初の撮影から最後の撮影までの時間差である。撮影枚数は、サブ画像群に含まれる画像の数（写真の枚数）である。撮影人数は、顔が写っている画像における顔の数である。すなわち、１つの画像に含まれる顔オブジェクトの数である。そして、複数のサンプル画像群に対して、撮影期間の平均値と標準偏差、撮影枚数の平均値と標準偏差、１画像あたりの人数の平均値と標準偏差を求める。図９は、撮影期間（時間）、撮影枚数（枚）、撮影人数（人）の各平均値と標準偏差を示す。これらの求めた値は、自動レイアウトエンジン１０のプログラムに予め組み込まれている。自動レイアウトエンジン１０が起動された後、Ｓ０６のシーン分割により生成された各サブ画像群に対して、ＣＰＵ２０４は、撮影期間と撮影枚数、撮影人数の平均値を算出する。そして、シーン毎に、前記各サブ画像群の撮影期間、撮影枚数、撮影人数の特徴量について、それぞれの平均値と標準偏差に基づいて、以下の式により得点化を実施する。
【００５１】
得点＝５０−｜１０×（平均値−特徴量）／標準偏差｜    （式１）
平均得点＝（撮影期間の得点＋撮影枚数の得点＋人数の得点）／特徴量項目数    （式２）
以上によって、１つのサブ画像群に対して、旅行、日常、セレモニー毎の平均得点が算出される。サブ画像群毎に最高点のシーンをそのサブ画像群のシーンとして分類する。２以上のシーンが同点の場合は、優先シーンに分類する。例えば本実施形態では、日常＞セレモニー＞旅行の順であり、日常の優先度を最も高くしている。
【００５２】
例えば、図８（Ａ）のシーン分割された後のサブ画像群（５）の撮影期間が３６時間、撮影枚数が３００枚、撮影人数が１．７人であったとする。この場合、サブ画像群（５）における旅行の平均得点は４５．３２、日常の平均得点は１８．３８、セレモニーの平均得点は−２９．９２となる。その結果、サブ画像群（５）のシーンは旅行に分類される。分類したシーンは識別ができるようにシーンＩＤで管理する。
【００５３】
Ｓ０８においてＣＰＵ２０２は、Ｓ０６で生成された全サブ画像群に対してＳ０７のシーン分類が終了したか否かを判定する。終了していない場合（Ｓ０８でＮｏ）、Ｓ０７に戻る。終了している場合（Ｓ０８でＹｅｓ）、Ｓ０９に移行する。
【００５４】
Ｓ０９においてＣＰＵ２０４は、画像得点部９０７を用いて主人公設定を実行する。主人公設定はユーザーが指定した画像群に対して実施され、自動と手動の２種類がある。自動で主人公を設定する場合、Ｓ０４の個人認識の結果と、Ｓ０６のシーン分割の結果に基づいて設定が実行される。Ｓ０４で取得した結果から、ＣＰＵ２０４は、サブ画像群に登場する各個人ＩＤの回数、各シーンに登場する各個人ＩＤの回数、各個人ＩＤが登場するシーンの回数等を特定し、これらの情報から自動で主人公を設定する。本実施形態では、サブ画像群に複数シーンがある場合は複数のシーンに登場する個人ＩＤが主人公ＩＤとして設定され、サブ画像群が単一シーンである場合は、単一シーンの登場回数が多い個人ＩＤが主人公ＩＤとして設定される。主人公設定部３０４でユーザーが特定のアイコンを指定している場合は、選択されたアイコンに対応する個人ＩＤが主人公情報入力部９０６を介して画像得点部９０７に伝えられる。ユーザー指定に対応する個人ＩＤがある場合は、上述した自動設定の主人公ＩＤは無視して、ユーザー指定に対応する個人ＩＤが主人公ＩＤとして設定される。このように、主人公設定部３０４の指定に基づく設定を手動設定とする。
【００５５】
Ｓ１０においてＣＰＵ２０４は、画像得点部９０７を用いて得点化処理を実行する。得点化処理とは、後述する観点で評価した得点を各解析画像に付与する。なお、付与された得点は、後述するＳ１７の画像選択時に参照される。
【００５６】
図１２は、３枚の画像をレイアウトする際に用いるテンプレート群を示している。図１２の（１−１）に示すテンプレート１６０１は１枚のテンプレートであり、メインスロット１６０２と、サブスロット１６０３、サブスロット１６０４を有する。メインスロット１６０２とは、テンプレート１６０１でメインとなるスロット（画像をレイアウトする枠）であり、サブスロット１６０３とサブスロット１６０４よりもサイズが大きい。また、サブスロットとは、各テンプレートにおいて、メインスロット以外のスロットである。メインスロット用の得点とサブスロット用の得点の両方が各解析画像に付与される。
【００５７】
次に、図１０（Ａ）に得点化の基準を示す。図１０（Ａ）は旅行、日常、セレモニーのシーン毎に得点が高くなる画像の特徴を、メインスロットとサブスロットに分けてまとめた表である。なお、図１０（Ａ）に示すように、スロットの種類に応じて、得点が高くなる特徴が異なる。例えば、サブ画像群のシーン分類が旅行である場合、人物と風景が入ったひいた画像は、メインスロットとしての得点が高くなり、顔のアップや横顔の画像は、サブスロットとしての得点が高くなる。なお、他のシーンについては図１０（Ａ）に記載した通りである。このように、シーン及びスロットの種類に応じて、得点が高くなる特徴、言い換えれば、評価基準が異なる。本実施形態では、シーン及びスロットの種類に応じた得点が高くなる特徴は、自動レイアウトエンジン１０に予め設定されており、プログラムに含まれるものとする。なお、得点が高くなる特徴は、上述したものに限定されるものではない。図１０（Ａ）に示す各シーンのメインスロットとサブスロットのそれぞれの特徴に基づいて、各サブ画像群に含まれる各解析画像に得点が付与される。ＣＰＵ２０４は、各解析画像における顔オブジェクトの数、各解析画像における顔オブジェクトの位置、各解析画像における顔オブジェクトのサイズを取得する。そして、ＣＰＵ２０４は、各解析画像について、平均値と標準偏差を各シーンおよび各スロット種類（メインスロットとサブスロット）に対して算出して、記憶する。ユーザーが指定した画像群の各解析画像がいずれのシーンに属するか（分類されるか）は、Ｓ０７のシーン分類の結果から特定される。そして、注目解析画像のシーンに対応する予め求めた前記平均値と標準偏差および注目解析画像における主人公ＩＤの顔オブジェクトの数、顔オブジェクトの位置、顔オブジェクトのサイズの各特徴量に基づいて以下の式を使って得点と平均得点を出す。
【００５８】
得点＝５０−｜１０×（平均値−特徴量）／標準偏差｜
平均得点＝（顔数の得点＋顔位置の得点＋顔サイズの得点）／特徴量項目数
なお、得点化処理は、メインスロット用とサブスロット用の両方に対して実施される。また、図７に示すピントの特徴量が○である解析画像に対しては得点を加算してもよい。これにより、ピントが合っている解析画像の得点を高くすることができる。図１０（Ｂ）は、各解析画像の得点結果の一例を示しており、各解析画像のＩＤに対して、メインスロットとサブスロットの得点が付与されている。
【００５９】
Ｓ１１においてＣＰＵ２０４は、画像得点部９０７を用いてユーザー指定の画像群の全解析画像に対してＳ１０の得点化処理が終了したか否かを判定する。終了していない場合（Ｓ１１でＮｏ）、Ｓ１０に戻る。終了している場合（Ｓ１１でＹｅｓ）、Ｓ１２に移行する。
【００６０】
Ｓ１２においてＣＰＵ２０４は、見開き割当部９０９を用いて、画像分類部９０５のシーン分割により得られたシーン数（サブ画像群の数）が見開き数入力部９０８により入力される見開き数と同じか否かを判定する。同じでない場合（Ｓ１２でＮｏ）、Ｓ１３に移行する。同じ場合（Ｓ１２でＹｅｓ）、Ｓ１６に移行する。例えば、図８（Ａ）のサブ画像群の数が８であり、見開き数入力部９０８の入力数が８であればＳ１６に移行する。
【００６１】
Ｓ１３においてＣＰＵ２０４は、見開き割当部９０９を用いて画像分類部９０５のシーン分割により得られたサブ画像群の数が見開き数入力部９０８により入力される見開き数より少ないか否かを判定する。サブ画像群の数が見開き数より少なくない場合（Ｓ１３でＮｏ）、Ｓ１５に移行する。サブ画像群の数が見開き数より少ない場合（Ｓｔｅｐ１３でＹｅｓ）はＳｔｅｐ１４に移行する。例えば、図８（Ａ）のサブ画像群の数が８であり、見開き数入力部９０８の入力数が１０であれば、サブ画像群の数が見開き数より少ないため、Ｓ１４に移行する。
【００６２】
Ｓ１４においてＣＰＵ２０４は、見開き割当部９０９を用いてサブシーン分割を実行する。サブシーン分割とは、シーン分割数＜見開き数の場合に分割されたサブ画像群を更に分割することを指す。図８（Ａ）のサブ画像群の数８に対して指定見開き数が１０である場合を例に挙げて説明する。図８（Ｂ）では、図８（Ａ）をサブシーン分割した結果である。破線矢印の箇所でサブ画像群をさらに分割したことで、サブ画像群の数を１０に増やしている。サブシーン分割する基準は、画像枚数および撮影日時である。ＣＰＵ２０４は、図８（Ａ）のサブ画像群の中で画像枚数が多いサブ画像群を特定する。ここでは、シーン数を８から１０に２つ増やしたいため、画像枚数が多い２つのサブ画像群を特定する。多い方からサブ画像群（５）、次にサブ画像群（１）とサブ画像群（２）が特定される。
【００６３】
本実施形態では、サブ画像群に含まれる枚数が同じである場合は、サブ画像群に含まれる最初の画像と最後の画像の時間差が大きい方のサブ画像群を分割する。サブ画像群（１）とサブ画像群（２）は、含まれる画像の同じ枚数だが、サブ画像群（２）の方が最初の画像から最後の画像の時間差が大きいため、サブ画像群（２）を分割対象とする。すなわち、図８（Ｂ）では、サブ画像群（５）とサブ画像群（２）をそれぞれさらに分割する。
【００６４】
まず、図８（Ａ）におけるサブ画像群（２）の分割方法について説明する。サブ画像群（２）には、画像枚数の山が２つあり、この２つは撮影日が違う。この場合は、撮影日が変わる箇所（図８（Ｂ）の破線矢印の箇所）で分割する。
【００６５】
次に、図８（Ａ）におけるサブ画像群（５）の分割を説明する。サブ画像群（５）には画像枚数の山が３つあり、この３つは撮影日が違う。この場合も、撮影日が変わる箇所で分割する。このとき、撮影日が変わる箇所が２箇所あるが、分割後の各画像群の枚数差が小さくなるように分割する。図８（Ａ）のサブ画像群（５）は、２日目と３日目の境目で分割した方が、１日目と２日目の境目で分割するよりも分割後の各サブ画像群の枚数差が小さくなるので、２日目と３日目の境目で分割する。すなわち、図８（Ｂ）の破線矢印の箇所で分割する。以上により分割数を８から１０にする。ここでは撮影日の違う箇所で分割したが、画像枚数が多いサブ画像群が単一日で撮影されたものである場合は、単一日の中で時間差が最大の箇所で分割する。
【００６６】
Ｓ１５においてＣＰＵ２０４は、見開き割当部９０９を用いてシーン統合を実行する。シーン統合とは、シーン数が見開き数よりも多い場合、分割されたシーン（サブ画像群）を統合する。具体的には、サブ画像群の数と見開き数が一致するように、シーン統合をする。図８（Ｃ）は、見開き数が６の場合、図８（Ａ）をシーン統合してサブ画像群の数を６に減らした結果である。破線の箇所を統合、言い換えれば、破線の箇所での分割をしないことで、シーン数（サブ画像群の数）を６にする。シーン統合では、画像枚数が少ないサブ画像群を特定する。ここでは、分割数を８から６に２つ減らしたいため、画像の枚数が少ないサブ画像群を特定する。
【００６７】
図８（Ａ）において画像枚数が少ないサブ画像群は、少ない方からサブ画像群（８）、サブ画像群（３）、サブ画像群（７）である。したがって、ＣＰＵ２０４は、まず、サブ画像群（８）を統合対象とする。次に、サブ画像群（３）とサブ画像群（７）は、画像の枚数は同じである。ただし、サブ画像群（７）に隣接するサブ画像群（８）が統合対象であるため、サブ画像群（３）を統合対象とする。次に、ＣＰＵ２０４は、統合対象のサブ画像群を、撮影日時が前のサブ画像群に統合するか、撮影日時が後のサブ画像群に統合するかを決定する。まず、サブ画像群（３）の統合を説明する。ＣＰＵ２０４は、図８（Ａ）におけるサブ画像群（３）の前後のサブ画像群（２）とサブ画像群（４）との時間差を比較する。その結果、サブ画像群（３）の最後の解析画像とサブ画像群（４）の最初の解析画像との撮影時間の差の方がサブ画像群（３）の最初の解析画像とサブ画像群（２）の最後の解析画像との撮影時間の差よりも小さい。したがって、図８（Ａ）のサブ画像群（３）は、サブ画像群（４）に統合すると決定される。すなわち、図８（Ｃ）の破線の箇所を統合する。次に、サブ画像群（８）の統合を説明する。図８（Ａ）におけるサブ画像群（８）は、後のサブ画像群がない為、前のサブ画像群（７）と統合する。すなわち、図８（Ｃ）の破線箇所で統合する。なお、本実施形態では、撮影時間の差が小さいサブ画像群同士を統合することにしたが、これに限定されるものではない。例えば、統合対象のサブ画像群を撮影枚数が少ないサブ画像群に統合するようにしてもよい。
【００６８】
Ｓ１６においてＣＰＵ２０４は、見開き割当部９０９を用いて見開き割当を実行する。Ｓ１２〜Ｓ１５によって、サブ画像群の数と指定見開き数は同じになっている。本実施形態では、ＣＰＵ２０４は、撮影日時の順序に従いサブ画像群を見開きに割り当てる。すなわち、ＣＰＵ２０４は、撮影日時が先頭のサブ画像群を先頭の見開きに割り当て、撮影日時が２番目のサブ画像群を２番目の見開きに割り当てる。すなわち、撮影日時順にサブ画像群をアルバムの各見開きのページに割当てる。これにより、撮影日時順にサブ画像群が並んだアルバムを作成することができる。なお、後述する通り、１つの見開きページ内では、解析画像は撮影日時に並んでいなくてもよい。
【００６９】
Ｓ１７においてＣＰＵ２０４は、画像選択部９１０を用いて各サブ画像群から所定枚数の解析画像を選択する。図１１を用いて、ある見開きに割り当てられたサブ画像群から解析画像を４枚選択する場合を例に挙げて説明する。なお、ここでは、見開きとは、２ページを指し、最初の見開き及び最後の見開きは、１ページとする。図１１（Ａ）は、見開きに割り当てられたサブ画像群に含まれる最初の解析画像から最後の解析画像までの撮影日時の時間差、言い換えれば、サブ画像群の撮影期間を示す。図１１（Ｂ）を使って、ＣＰＵ２０４が、１枚目の解析画像を選択する方法を説明する。テンプレートには、１つのメインスロット１００２がある。ＣＰＵ２０４は、１枚目として、メインスロット用の解析画像を選択する。ＣＰＵ２０４は、図１１（Ｂ）に示すサブ画像群の撮影期間に撮影された全ての解析画像のうちＳ１０で付与されたメインスロット用の得点が最高点の解析画像を選択する。そして、ＣＰＵ２０４は、２枚目以降についてサブスロット用の解析画像を選択する。本実施形態では、サブ画像群の撮影期間を細分化して画像を選択することにより、アルバムに使用される解析画像の撮影期間の分散化を図る。まず、図１１（Ｃ）のように、ＣＰＵ２０４は、サブ画像群の撮影期間を２分割して、２つの撮影期間とする。すなわち、サブ分割撮影期間を２等分して２つの撮影期間にする（グループ分けする）。次に、ＣＰＵ２０４は、図１１（Ｄ）のように１枚目が選ばれていない撮影期間（実線の区間）からサブスロット用の得点が最高点の画像を２枚目として選択する。次に、図１１（Ｅ）のように、ＣＰＵ２０４は、図１１（Ｄ）の各撮影期間をそれぞれ２等分する。ＣＰＵ２０４は、図１１（Ｆ）の実線区間、すなわち、１枚目と２枚目が選ばれていない２つの撮影期間に撮影された解析画像（２つの撮影期間に対応する画像）のうちサブスロット用の得点が最高点の解析画像を３枚目として選択する。次に、画像を選択する撮影期間に画像が存在せず、画像選択できない例を４枚目の選択を例に挙げて説明する。本実施形態では、画像の枚数に関わらず、時間に応じて撮影期間を分割している。したがって、分割して得られた撮影期間に画像が存在しない場合がある。例えば、図１１（Ｇ）のように、ＣＰＵ２０４は、まだ画像が選ばれていない撮影期間（斜線の区間）から４枚目を選択したいが、この斜線区間には画像が存在しないとする。この場合は、ＣＰＵ２０４は、図１１（Ｈ）のように、画像を選択済みの各撮影期間をそれぞれ２分割する。次に、ＣＰＵ２０４は、図１１（Ｉ）のように、１〜３枚目が選ばれていない実線の撮影期間に撮影された解析画像のうちサブスロット用の最高点の解析画像を４枚目として選択する。
【００７０】
Ｓ１８においてＣＰＵ２０４は、画像レイアウト部９１２を用いて処理対象の見開きの画像レイアウトを決定する。テンプレート入力部９１１が、指定のテンプレート情報に従ってある見開きに対して図１２（Ａ）の（１−１）〜（４−４）のテンプレートを入力した場合を例に挙げて説明する。入力されたテンプレートのスロット数は３である。また、Ｓ１７により選択された画像３枚の画像の向きが縦方向か横方向かを撮影日時の順に並べた結果が図１２（Ｂ）であったとする。ここでは、画像１６０５がメインスロット用として選択された解析画像であり、画像１６０６と画像１６０７がサブスロット用として選択された解析画像とする。本実施形態では、テンプレートの左上に撮影日時のより古い画像、右下に撮影日時のより新しい画像をレイアウトするものとする。画像１６０５は、縦画像であり、撮影日時が一番新しく且つメインスロット用の画像であるため、図１２（３−１）〜（３−４）のテンプレートが候補となる。そして、サブスロット用の古い方の画像１６０６、すなわち、左上に配置したい画像が縦画像で、新しい方の画像１６０７が横画像である。したがって、（３−２）が、選択された解析画像に最も適したテンプレートとして決定される。そして決定されたテンプレートの各スロットに配置される解析画像が決定される。このようにＳ１８では、レイアウトに用いるテンプレートと、テンプレートのいずれのスロットにいずれの画像をレイアウトするかを識別できる情報が決定される。図１２では、スロット数が３の場合を例に挙げて説明を行ったが、Ｓ１７で、必要枚数が４枚となった場合には、スロット数４のテンプレートセットを用意して、それらに対して同様に、スロット状態と画像の状態の合致具合を判定する。
【００７１】
Ｓ１９においてＣＰＵ２０４は、画像補正部９１４を用いて画像補正を実行する。画像補正の条件入力部がＯＮを入力した場合は、画像補正を実施する。本実施形態では、画像補正として、覆い焼き補正、赤目補正、コントラスト補正を自動で実施する。画像補正の条件入力部がＯＦＦを入力した場合は、画像補正を実施しない。補正する画像の画素数は短辺１２００画素で、ｓＲＧＢの色空間に変換した画像に対して画像補正ＯＮ／ＯＦＦを実施する。
【００７２】
Ｓ２０においてＣＰＵ２０４は、レイアウト情報出力部９１５を用いてレイアウト情報を作成する。ＣＰＵ２０４は、Ｓ１８で決まった通りに各解析画像をレイアウトする。このとき、テンプレートが有する各スロットのサイズ情報に合わせてレイアウトする解析画像を変倍してレイアウトする。そして、テンプレートのスロットに解析画像をレイアウトしたビットマップデータが生成される。
【００７３】
Ｓ２１はＳ１７〜Ｓ２０が全ての見開きに対して終了したか否かを判定する。終了していない場合（Ｓ２１でＮｏ）はＳ１７に戻る。終了している場合（Ｓ２１でＹｅｓ）は自動レイアウト処理を終了する。
【００７４】
以上の処理結果が管理システム５からクライアントサイドＷｅｂアプリケーション８に送信されることで、図４のような画面がクライアント側に表示される。
【００７５】
（本発明全体のシーケンス）
図１３〜１４では、ユーザーが指定した写真に対応する元画像データを縮小した解析用画像データを全てアップロードした後に、元画像データをアップロードする例について説明する。図１３〜１４はクライアント１、ストレージ１１、データベース１２、自動レイアウトエンジン１０におけるデータのやり取りをシーケンス図で示している。クライアント１の例としては、クライアントサイドＷｅｂアプリケーション８が挙げられるが、本発明はそれに限定されるものではなくパーソナルコンピュータやスマートフォンで動作するネィティブアプリなどであっても良い。ストレージ１１とはサーバー上に構築されたストレージ、データベース１２とはサーバー上に構築されたストレージ、自動レイアウトエンジン１０とは自動レイアウト機能をサーバー上で実装したものである。
【００７６】
Ｓ６０１では、クライアント１がユーザーの選択した写真に対応する元画像データを縮小して解析用画像データを生成する。解析用画像データのサイズは、例えば、自動レイアウトエンジン１０が処理できるサイズである。
【００７７】
Ｓ６０２では、クライアント１がＳ６０１で生成した解析用画像データをストレージ１１にアップロードする。
【００７８】
Ｓ６０３では、クライアント１がＳ６０１で生成した解析用画像データに関する情報をデータベース１２に書き込む。データベース１２に書き込む情報の例としては、解析用画像データを識別するためのＩＤや、解析用画像データのステータス情報が挙げられる。解析用画像データを識別するためのＩＤの値の例としては、解析用画像データを入力値としたハッシュ値が挙げられる。このハッシュ値は、例えば、ＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  Ａｌｇｏｒｉｔｈｍ  ５）などのハッシュ関数で計算されるものである。このように、解析用画像データのハッシュ値をＩＤとしてデータベース１２に書き込むことにより、既にアップロードした解析用画像データと同じ画像データを再アップロードしないように制御することができる。例えば、Ｓ６０２で解析用画像データをアップロードする際に、クライアント１は、データベース１２の情報を取得する。そして、クライアント１は、アップロードしようとしている解析用画像データと同じハッシュ値のデータがアップされていないか確認し、アップロードされている場合は再アップロードしないように制御する。解析用画像のステータス情報が取り得る値としては、「解析用画像をアップロード済み」、「解析用画像に関する画像解析済み」などが考えらえる。ここでは、解析用画像をアップロードしただけでまだ画像解析は行っていないため、画像のステータスは「解析用画像をアップロード済み」になる。なお、クライアント１がデータベース１２に書き込むステータス情報は、「解析用画像をアップロード済み」である。一方、自動レイアウトエンジン１０は、「解析用画像に関する画像解析済み」を書き込む。
【００７９】
Ｓ６０４では、クライアント１がユーザーの選択した写真の元画像データ（または印刷用画像データ）をストレージ１１にアップロードする。ここで、印刷用画像データとは、クライアント１が元画像を印刷品位が保てるサイズまで縮小した画像データである。例えば、フォトアルバムを印刷する印刷装置において印刷品位を保てる解像度が１００ｄｐｉ、フォトアルバムのテンプレートに含まれる写真スロットの最大サイズが縦１０インチ、横１０インチであるとする。この場合、画像データが、縦１０００ピクセル（１００ｄｐｉｘ１０インチ）以上、横１０００ピクセル（１００ｄｐｉｘ１０インチ）以上であれば印刷品位を保つことができる。そのため、この例では、ユーザーが選択した写真に対応する元画像データを、縦１０００ピクセル以上、横１０００ピクセル以上のサイズに縮小することで印刷用画像データが得られる。なお、データサイズの大きさ順にならべると、元画像データのサイズが一番大きく、次が印刷用画像データであり、解析用画像データのサイズが一番小さい。なお、以降では、説明の簡略化のために解析用画像データがアップロードされた後に印刷用画像データがアップロードされるものとして説明するが、図にも記載される通り元画像データがアップロードされても良い。
【００８０】
Ｓ６０５では、クライアント１がＳ６０４でアップロードした印刷用画像データに関する情報をデータベース１２に書き込む。この情報の例としては、印刷用画像データを識別するためのＩＤや、印刷用画像データのステータス情報が挙げられる。印刷用画像データを識別するためのＩＤの値の例としては、ユーザーが選択した写真に対応する印刷用画像データを入力値としたハッシュ値が挙げられ、基本的には解析用画像データにおいて説明した通りである。このように、印刷用画像のハッシュ値をＩＤとしてデータベース１２に書き込むことの効果も解析用画像データにおいて説明した通りである。印刷用画像データのステータス情報が取り得る値としては、「印刷用画像をアップロード済み」などが考えらえる。
【００８１】
図１３では、全ての解析用画像データに対してＳ６０１〜Ｓ６０３の処理が終わった後にＳ６０４〜Ｓ６０５が実行されるにように記載されている。このような順序で処理することで、クライアント１は図６で上述したレイアウト処理に使用される解析用画像データを早期に管理システムにアップロードすることができる。特に、解析用画像データが送信されている最中に印刷用画像データのアップロードが行われないことにより、Ｓ６０１〜Ｓ６０３におけるネットワークの負荷が増大しないため、解析用画像データを早期にアップロードすることが可能となる。
【００８２】
また図１３のように全ての解析用画像データのアップロードが完了した後に印刷用画像データを管理システム５にアップロードすると、印刷用画像データのアップロードが完了する前に自動レイアウトエンジン１０が解析処理やレイアウト処理を開始できる。そのため、ユーザーは、早期に自動レイアウトされた結果（例えば、図４）を確認することが可能となる。自動レイアウトされた結果を見たユーザーはそれを基に編集作業を開始するが、編集作業中も元画像または印刷用画像のアップロード処理はバックグラウンドで非同期処理される。バックグランドで非同期処理されることにより、元画像または印刷用画像のアップロード処理によってフォトアルバムの編集操作が出来なくなるというような弊害を防ぐことができる。
【００８３】
図１４は、解析用画像データを管理システム５にアップロードした後の管理システム５上のやりとりを主に記載したシーケンス図である。Ｓ６０２およびＳ６０３は、図１３で説明したため説明は割愛する。
【００８４】
Ｓ６１１では、ストレージ１１が自動レイアウトエンジン１０に解析用画像データのアップロード完了を通知する（Ｓ６１１）。ストレージ１１は、「解析用画像をアップロード済み」が書き込まれた場合にＳ６１１を実行する。図１４の例では、ストレージ１１が自動レイアウトエンジン１０に通知を行っているが、本発明はそれに限定されるものではない。自動レイアウトエンジン１０がストレージ１１やデータベース１２をポーリングし、自動レイアウトエンジン１０が解析用画像データのアップロードを検知しても良い。
【００８５】
Ｓ６１２では、自動レイアウトエンジン１０が解析用画像データに基づく解析画像を使って画像解析を行う。画像解析はＳ６１１の解析用画像データのアップロード完了通知を受けて開始される。画像解析は、図６で説明した画像の得点化や、画像の人物検出などの処理が行われる。
【００８６】
Ｓ６１３では、自動レイアウトエンジン１０がＳ６１２で行った画像解析結果に関する情報をデータベース１２に書き込む。画像解析結果に関する情報の例としては、画像解析によって算出された得点や検出された人物情報などが挙げられる。
【００８７】
Ｓ６１４では、自動レイアウトエンジン１０がＳ６１２の画像解析によって得られた人物検出の結果を基に人物識別を行う。具体的には複数の解析画像の人物検出結果からどのような人物が解析画像に含まれているかを判定し、登場回数の多い人物は主人公と判断するなどの人物に関する識別処理を行う。このシーケンス図では全ての画像の解析を終了した後に人物検出を行っているが、本特許はそれに限定されるものではなく画像解析が終わったものから人物検出を行ってもよい。
【００８８】
Ｓ６１５では、自動レイアウトエンジン１０がＳ６１４で行った人物識別の結果をデータベース１２に書き込む。例えば、主人公に設定された人物に関する情報などが書き込まれる。
【００８９】
Ｓ６１６では、自動レイアウトエンジン１０が、Ｓ６１２の画像解析の結果、及び、Ｓ６１４の人物識別の結果に基づいて、フォトアルバムのテンプレートに画像をレイアウトする。
【００９０】
Ｓ６１７では、自動レイアウトエンジン１０がＳ６１６で行ったフォトアルバムのレイアウト結果をデータベース１２に書き込む。例えば、採用されたテンプレートの情報や、テンプレートの画像スロットに採用された画像などの情報がデータベース１２に書き込まれる。
【００９１】
Ｓ６１８では、自動レイアウトエンジン１０がフォトアルバムのレイアウト結果をクライアント１に通知する。クライアント１はこの通知を受け、データベース１２からレイアウト結果を取得する。これにより、自動レイアウトエンジンによるレイアウト結果をユーザーに提示することができる。例えば、図４に示したような画面がユーザーに提示される。ユーザーはこの画面上でフォトアルバムの編集操作を行う。
【００９２】
図１５〜１６では、図１３〜１４のようにユーザーが選択した全ての写真に対応する印刷用画像データをアップロードするのではなく、レイアウトされた解析画像に対応する印刷用画像データだけをアップロードする例について説明する。
【００９３】
図１５について説明する。なお、Ｓ７０１〜Ｓ７０３、Ｓ７１１〜Ｓ７１８については、それぞれＳ６０１〜Ｓ６０３、Ｓ６１１〜Ｓ６１８と同様であるため説明は割愛する。
【００９４】
Ｓ７２１では、クライアント１はデータベース１２の情報を参照し、レイアウトされた解析画像の情報を取得する。これにより、クライアント１は、ユーザーが選択した写真の中で自動レイアウトエンジン１０によってどの写真がフォトアルバムに採用されたかを特定することができる。
【００９５】
Ｓ７２２では、クライアント１はストレージ１１にレイアウトされた解析画像に対応する写真の元画像データから印刷用画像データを作成してアップロードする。尚、印刷用画像データとは図１３で説明した印刷用画像データである。
【００９６】
Ｓ７２３では、クライアント１はＳ７２２でアップロードした画像データに関する情報をデータベース１２に書き込む。アップロードした画像に関する情報の例としては、画像のハッシュ値などが挙げられる。
【００９７】
図１６について説明する。図１６は自動レイアウトが完了した後に、例えば図４の画面を用いてユーザーが所望の画像に入れ替える編集操作をした場合のシーケンスを示している。
【００９８】
Ｓ７３１では、クライアント１はユーザーの指示によって画像の入れ替えを行う。例えば、ユーザーが入れ替えたい画像の入った対象スロットを指定し、そのスロットの画像をユーザーが所望する新たな画像に入れ替える。なお、この新たな画像とは、アップロード済みの解析用画像データに対応する画像から選択されても良いし、解析用画像データとは異なる新規の画像でも良い。
【００９９】
Ｓ７３２では、クラアント１は入れ替えた画像に関する情報をデータベース１２から取得する。
【０１００】
Ｓ７３３では、クライアント１はユーザーが入れ替えた画像の印刷用画像データが管理システム５にアップロードされているか否かをＳ７３２で取得した情報を基に判断する。例えば、Ｓ７３２で取得した情報に、入れ替えた画像に対応するハッシュ値が無い場合、クライアント１は入れ替えた画像に対応する印刷用画像データはアップロードされていないと判断する。アップロードされていなければ、クライアント１は、入れ替えた画像の元画像データから印刷用画像データを作成してストレージ１１にアップロードし（Ｓ７２２）、アップロードした画像に関する情報をデータベース１２に書き込む（Ｓ７２３）。
【０１０１】
図１５〜１６のように、実際にフォトアルバムにレイアウトされた画像に対応する印刷用画像データだけをアップロードすることで、フォトアルバムにレイアウトされていない画像に対応する印刷用画像データを管理システム５にアップロードすることがなくなる。そのため、ネットワークトトラフィックの軽減に繋がる。また、ネットワークトラフィックの軽減だけでなく、ストレージ１１の容量削減を削減することも可能となる。
【０１０２】
図１７〜１８は、クライアント１が対象スロットで印刷品位を保てるサイズまで縮小した印刷用画像データをアップロードする例を示している。
【０１０３】
図１７について説明する。なお、Ｓ８０１〜Ｓ８０３、Ｓ８１１〜Ｓ８１８については、それぞれＳ６０１〜Ｓ６０３、Ｓ６１１〜Ｓ６１８と同様であるため説明は割愛する。
【０１０４】
Ｓ８２１では、クライアント１はデータベース１２の情報を参照し、レイアウトされた解析画像の情報、及び、レイアウトされた画像スロットの情報を取得する。レイアウトされた解析画像の情報とは、例えば画像のハッシュ値などが挙げられる。クライアント１はこのハッシュ値を取得することにより、自動レイアウトエンジン１０によってどの写真がフォトアルバムに採用されたかを特定することができる。レイアウトされた画像スロットの情報とは、例えば画像スロットの縦と横のサイズなどである。
【０１０５】
Ｓ８２２では、クライアント１は、Ｓ８２１で取得した画像スロットのサイズ情報に基づいて、画像スロットに対応する印刷用画像データを生成する。画像スロットに対応する印刷用画像データについて例を挙げて説明する。フォトアルバムを印刷する装置には、印刷品位を保てる解像度が決められていることが多く、その解像度以下の画像は印刷されたときに画像がボケたりして印刷品位が保てない。例えば、フォトアルバムを印刷する装置の印刷品位を保てる解像度が１００ｄｐｉ、対象の画像スロットのサイズが縦１インチ、横２インチ、元画像データのサイズが縦１０００ピクセル、横２０００ピクセルの場合について説明する。この画像スロットに対して、印刷品位が保てる画像のサイズは、縦１００ピクセル（１インチｘ１００ｄｐｉ）、横２００ピクセル（１インチｘ２００ｄｐｉ）となる。そのため、縦１０００ピクセル、横２０００ピクセルの元画像データを、縦１００ピクセル以上、横２００ピクセル以上に縮小したものが印刷品位を保てる印刷用画像データとなる。このように、画像スロットのサイズ情報を基に作成した画像を「画像スロットに対応する印刷用画像データ」と呼ぶことにする。
【０１０６】
Ｓ８２３では、クライアント１はＳ８２２で生成した画像スロットに対応する印刷用画像データをストレージ１１にアップロードする。
【０１０７】
Ｓ８２４では、クライアント１がＳ８２３でアップロードした画像に関する情報をデータベース１２に書き込む。なお、ここで書き込まれる情報とは、画像のサイズに関する情報であり、例えば縦、横のピクセル数である。
【０１０８】
ここでＳ８２４が行われた後に、Ｓ８３１において、クライアント１はユーザーの指示によって画像の入れ替えを行う。例えば、ユーザーが入れ替えたい画像の入った対象スロットを指定し、そのスロットの画像をユーザーが所望する任意の画像に入れ替える。
【０１０９】
Ｓ８３２では、クラアント１は入れ替えた画像に関する情報をデータベース１２から取得する。
【０１１０】
Ｓ８３３では、クライアント１は画像スロットに対応する印刷用画像データが管理システム５にアップロードされているか否かをＳ８３２で取得した情報を基に判断する。もし、画像スロットに対応する印刷用画像データに関する情報がなければアップロードされていないと判断する。
【０１１１】
ここでクライアント１は画像スロットに対応する印刷用画像データが管理システム５にアップロードされていると判断した場合はＳ８３４を実行する。つまり、クライアント１は、Ｓ８３２で取得した画像スロットに対応する印刷用画像データに関する情報から、その印刷用画像データが入れ替え先の画像スロットに対しても印刷品位を満たすかを判断する。例えば、縦１００ピクセル、横２００ピクセルの印刷用画像データがアップロードされているとする。また、フォトアルバムを印刷する装置の印刷品位を保てる解像度が１００ｄｐｉ、入れ替え先の画像スロットのサイズが縦２インチ、横４インチだとする。この場合、印刷品位が保てる画像のサイズは、縦２００ピクセル（２インチｘ１００ｄｐｉ）、横４００ピクセル（４インチｘ２００ｄｐｉ）となる。そのため、既にアップロードされている印刷用画像データのサイズ（縦１００ピクセル、横２００ピクセル）では印刷品位を保つことができないと判断される。
【０１１２】
もし、印刷品位を満たさない場合、クライアント１は、入れ替え先の画像スロットで印刷品位を保てるサイズで画像スロットに対応する印刷用画像データを再作成し（Ｓ８２２）、再生成された印刷用画像データをストレージ１１にアップロードする（Ｓ８２３）。印刷用画像データをアップロードしたら、クライアント１はその画像に関する情報をデータベース１２に書き込む（Ｓ８２４）。
【０１１３】
なお、Ｓ８２２〜Ｓ８２４の詳細については、図１７で説明したため、詳細の説明は割愛する。
【０１１４】
図１７〜１８では画像スロットに対応する印刷用画像データを作成し、それを管理システム５にアップロードした。このように画像スロットに対応する印刷用画像をアップロードすることで、最小限のサイズまで画像サイズを小さくしてストレージ１１にアップロードすることができる。そのため、元画像データをアップロードする場合などに比べて、ネットワークトラフィックを軽減させることができる。また、ネットワークトラフィックの軽減だけでなく、ストレージ１１の容量削減を削減することも可能となる。
【０１１５】
図１３〜１８では、元画像または印刷用画像をアップロードしたが、通信環境が悪い場合や、通信会社の契約で通信速度の制限などを受けている場合などで、印刷用画像がアップロードできない場合がある。このような場合は解析用画像でフォトアルバムのデータを作ってもよい。
【０１１６】
図１３〜１８では、自動レイアウトエンジン１０でのレイアウトが完了したら元画像データまたは印刷用画像データをアップロードしていた。しかし、ユーザーの編集操作が終了して注文を行うタイミングで元画像データまたは印刷用画像データのアップロードを行ってもよい。こうすると、注文を行うタイミングで元画像データまたは印刷用画像データをアップロードすることになるが、レイアウトされていない写真の元画像データや印刷用画像データをアップロードすることがなくなる。その結果、全体でのネットワークトラフィックが抑えられる。また、ネットワークトラフィックの軽減だけでなく、ストレージ１１の容量削減を削減することも可能となる。
【０１１７】
図１３〜１８では、ストレージ１１やデータベース１２は、自動レイアウトエンジン１０とは異なる構成にしたが、本発明はそれに限定されるものではなく、自動レイアウトエンジン１０内にストレージやデータベースを構築して、それらを利用してもよい。ただし、ストレージ１１やデータベース１２は、自動レイアウトエンジン１０とは異なる構成にした場合、パブリッククラウドに代表されるようなストレージサービスやデータベースサービスを利用することができるため可用性が高くなる。
【０１１８】
なお、最後に実際にフォトアルバムを印刷するための管理システム５の処理について説明する。管理システム５は、図４をクライアント１に提供した後、クライアント１での編集結果に対応するレイアウト情報を受信する。その後、例えば、ユーザーが、「Ａｄｄ  ｔｏ  Ｃａｒｔ」を操作することで表示される画面において決済処理を実行した場合、管理システム５は、レイアウト情報に基づいて、実際にアルバムに使用される写真に対応する印刷用画像データを特定する。そして、管理システム５は、ネットワーク７を介して不図示の印刷システム（例えば、情報処理装置と印刷装置を含む印刷システム）に、レイアウト情報とアルバムに使用される写真に対応する印刷用画像データを送信することで印刷指示を発行する。その結果、印刷システムでは、レイアウト情報と印刷用画像データに基づいて印刷処理を実行することでアルバムを印刷することが可能となる。
【０１１９】
＜他の実施形態＞
上述した実施形態では、解析用画像データのアップロードが全て完了した後に印刷用画像データのアップロードを開始するものとして説明したが他の形態でも構わない。例えば、複数の解析用画像データのうち一部のアップロードが終わったら印刷用画像データのアップロードが開始されてもよい。このような形態であっても、印刷用画像データの送信よりも前に解析用画像データが送信されるためユーザーに早期に図４の結果を提示することが可能である。
【０１２０】
上述した実施形態では、ユーザー選択した静止画からフォトアルバムを生成する例について説明したが、本発明はそれに限定されるものではない。例えば、ユーザーが動画を選択し、その動画からクライアントが任意の枚数の静止画を切り出し、切り出された静止画をユーザーが選択した画像として本発明を適用しても良い。
【０１２１】
上述した実施形態では、自動レイアウトエンジン１０を使って自動レイアウト処理を実行する例を説明したが、例えば、オペレータによる手動操作に従って管理システム５がレイアウト処理を行っても構わない。
【０１２２】
上述した実施形態では、自動レイアウトエンジン１０を使って自動レイアウト処理を実行する例を説明したが、例えば、サーバーサイド２では、画像の解析だけを行い得点化などを行い、その情報をクライアント１に返す。クライアント１においてユーザーが、これらの情報をもとに手動でレイアウトするような構成であってもよい。  上述した実施形態では、フォトアルバムのテンプレートに画像を設定する例について説明したが、本発明はそれに限定されるものではない。例えば、ハガキのテンプレートに画像を設定するようなものであっても良く、最終的に印刷される商品はフォトアルバムに限定されない。
【０１２３】
上述した各実施形態は、以下の処理を実行することによっても実現される。すなわち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。また、プログラムは、１つのコンピュータで実行させても、複数のコンピュータで連動させて実行させるようにしてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、処理の一部または全部をＡＳＩＣ等のハードウェアで実現するようにしてもよい。また、ＣＰＵも１つのＣＰＵで全ての処理を行うものに限らず、複数のＣＰＵが適宜連携をしながら処理を行うものとしてもよい。
【符号の説明】
【０１２４】
８０  アプリケーション
２０４  ＣＰＵ
２０１  ＲＡＭ
２０２  ＨＤＤ
【図１】
2020036237.tif 000003
【図２】
2020036237.tif 000004
【図３】
2020036237.tif 000005
【図４】
2020036237.tif 000006
【図５】
2020036237.tif 000007
【図６】
2020036237.tif 000008
【図７】
2020036237.tif 000009
【図８】
2020036237.tif 000010
【図９】
2020036237.tif 000011
【図１０】
2020036237.tif 000012
【図１１】
2020036237.tif 000013
【図１２】
2020036237.tif 000014
【図１３】
2020036237.tif 000015
【図１４】
2020036237.tif 000016
【図１５】
2020036237.tif 000017
【図１６】
2020036237.tif 000018
【図１７】
2020036237.tif 000019
【図１８】
2020036237.tif 000020