(57)【特許請求の範囲】
【請求項１】
カメラと、
前記カメラを使用して撮影された画像のセットを受け取る手段と、
前記画像のセットの各画像に関連付けられたタイムスタンプに基づいて、前記画像のセットのサブセットを特定する手段と、
前記画像のサブセットは、所定の時間範囲内のタイムスタンプを有する複数の画像であり、
圧縮後の前記画像のサブセットが前記画像のサブセットよりも少ない記憶領域を使用するように、前記画像のサブセットを圧縮する手段と、
を備え、
さらに、前記画像のサブセット内の互いに関連する複数の画像を、前記画像のサブセット内の各画像に関連付けられたモーションセンサー・データに基づいて特定する手段を備え、
画像は、そのモーションセンサー・データと別の画像のモーションセンサー・データ間の相関が、相関閾値を超えない場合に、画像のサブセットから除外される装置。
【請求項２】
前記モーションセンサー・データは、画像の撮影時点においてセンサーにより生成されるデータを含む請求項１に記載の装置。    
【請求項３】
前記センサーは、加速度計および方位センサーからなるグループから選択される請求項２に記載の装置。
【請求項４】
画像についての前記モーションセンサー・データは、前記画像とともにメタデータとして記憶される請求項１に記載の装置。    
【請求項５】
前記相関閾値は約０．７である、請求項１に記載の装置。    
【請求項６】
カメラを用いて撮影された画像のセットを受け取るステップと、
前記画像のセットの各画像に関連付けられたタイムスタンプに基づいて、前記画像のセットのサブセットを特定するステップと、
前記画像のサブセットは、所定の時間範囲内のタイムスタンプを有する複数の画像であり、
圧縮後の前記画像のサブセットが前記画像のサブセットよりも少ない記憶領域を使用するように、前記画像のサブセットを圧縮するステップと、
を含み、
さらに、前記画像のサブセット内の互いに関連する複数の画像を、前記画像のサブセット内の各画像に関連付けられたモーションセンサー・データに基づいて特定するステップを含み、
画像は、そのモーションセンサー・データと別の画像のモーションセンサー・データ間の相関が相関閾値を超えない場合に、前記画像のサブセットから除外される方法。
【請求項７】
前記モーションセンサー・データは、画像の撮影時点においてセンサーにより生成されるデータを含み、前記センサーは、加速度計および方位センサーからなるグループから選択される請求項６に記載の方法。
【請求項８】
カメラを使用して撮影された画像のセットを受け取るステップと、
前記画像のセットの各画像に関連付けられたタイムスタンプに基づいて、前記画像のセットのサブセットを特定するステップと、
前記画像のサブセットは、所定の時間範囲内のタイムスタンプを有する複数の画像であり、
圧縮後の前記画像のサブセットが前記画像のサブセットよりも少ない記憶領域を使用するように、前記画像のサブセットを圧縮するステップと、
をコンピュータに実行させ、
さらに、前記画像のサブセット内の互いに関連する複数の画像を、前記画像のサブセット内の各画像に関連付けられたモーションセンサー・データに基づいて特定するステップをコンピュータに実行させ、
画像は、そのモーションセンサー・データと別の画像のモーションセンサー・データ間の相関が相関閾値を超えない場合に、前記画像のサブセットから除外されるコンピュータが読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示する主題はデジタルフォトグラフィーに関し、より詳細には、フォト・クラスターの検出および圧縮に関する。
【背景技術】
【０００２】
種々の情報処理装置のなかに、デジタル・カメラ等の撮像装置がある。例えば、スマートフォンまたはタブレット・コンピューターは、一体化された複数個のデジタル・カメラを備えている場合がある。多くのデジタル・カメラにより高解像度（例えば、高ピクセル数）の画像が撮影され、それにより高品質の画像が生成される。しかしながら、画像の解像度が高いほど、使用される記憶領域が大きくなる。一部のカメラは、短時間の間に複数の連続した画像が撮影されるバーストモードを備えている。バーストモードを使用しながら高解像度の画像を撮影すると、情報処理装置において大量の記憶領域が使用される。
【発明の概要】
【課題を解決するための手段】
【０００３】
フォト・クラスターの検出および圧縮を行う装置が開示される。方法およびプログラム製品（Program  Product）によっても、該装置の機能が実行される。一実施形態において、上記装置は、カメラと、該カメラに動作可能に接続されたプロセッサーを備える。上記装置は、特定の実施形態において、上記プロセッサーによって実行可能なコードを記憶するメモリーを備える。上記装置は、上記カメラを使用して撮影された画像のセットを受け取るコードを備える。追加的な一実施形態において、上記装置は、上記画像のセットのサブセットを、上記画像のセット内の各画像に関連付けられたタイムスタンプに基づいて特定するコードを備える。上記画像のサブセットは、所定の時間範囲にあるタイムスタンプを有する複数の画像から成ってもよい。上記装置は、圧縮後の画像サブセットが上記画像のサブセットよりも少ない記憶領域を使用するように、上記画像のサブセットを圧縮するコードを備える。
【０００４】
様々な実施形態において、上記装置は、上記画像のサブセット内の互いに関連する複数の画像を、上記画像のサブセット内の各画像の１つ以上の特徴に基づいて特定するコードを備える。特定の実施形態において、別の画像と実質的に同様の特徴を持たない画像は、上記画像サブセットから除外される。上記装置は、追加的な一実施形態においては、上記画像のサブセット内の互いに関連する複数の画像を、上記画像のサブセット内の各画像に関連付けられたモーションセンサー・データに基づいて特定するコードを備える。一実施形態において、画像は、そのモーションセンサー・データと別の画像のモーションセンサー・データ間の相関が相関閾値を超えない場合に、上記画像のサブセットから除外される。
【０００５】
一実施形態において、上記モーションセンサー・データは、画像の撮影時点においてセンサーにより生成されるデータから成る。追加的な一実施形態において、上記センサーは、加速度計および方位センサーから成るグループから選択される。いくつかの実施形態において、ある画像についての上記モーションセンサー・データは、その画像とともにメタデータとして記憶される。様々な実施形態において、上記相関閾値は約０．７である。
【０００６】
上記装置は、いくつかの実施形態においては、上記画像のサブセット内の互いに関連する複数の画像を、上記画像のサブセット内の各画像に関連付けられた位置データに基づいて特定するコードを備える。一実施形態において、画像は、その位置と別の画像の位置との間の距離が閾値距離より大きい場合に、上記画像のサブセットから除外される。上記装置は、一実施形態においては、上記圧縮後の画像のサブセット内の画像を、上記画像のセットから削除するコードを備える。追加的な一実施形態において、上記画像のサブセットは、可逆圧縮法を用いて圧縮される。
【０００７】
方法は、一実施形態において、カメラを用いて撮影された画像のセットを、処理部によって取得するステップを含む。いくつかの実施形態において、上記方法はさらに、上記画像のセットのサブセットを、上記画像のセットの各画像に関連付けられたタイムスタンプに基づいて特定するステップを含む。追加的な一実施形態において、上記画像サブセットは、所定の時間範囲にあるタイムスタンプを有する複数の画像から成る。特定の実施形態において、上記装置は、上記画像サブセットを圧縮して、当該圧縮後の画像サブセットが上記画像サブセットよりも少ない記憶領域を使用するようにする。
【０００８】
一実施形態において、上記方法は、上記画像サブセット内の互いに関連する複数の画像を、上記画像サブセット内の各画像の１つ以上の特徴に基づいて特定するステップを含む。いくつかの実施形態において、別の画像と実質的に同様な特徴を持たない画像は、上記画像のサブセットから除外される。追加的な一実施形態において、上記方法は、上記画像のサブセット内の互いに関連する複数の画像を、上記画像のサブセット内の各画像に関連付けられたモーションセンサー・データに基づいて特定するステップを含む。いくつかの実施形態において、画像は、そのモーションセンサー・データと別の画像のモーションセンサー・データとの間の相関が相関閾値を超えない場合に、上記画像のサブセットから除外される。一実施形態において、上記モーションセンサー・データは、画像の撮影時点においてセンサーにより生成されるデータから成る。上記センサーは、加速度計および方位センサーから成る群から選択されてもよい。
【０００９】
いくつかの実施形態において、上記方法は、上記画像のサブセット内の互いに関連する複数の画像を、上記画像のサブセット内の各画像に関連付けられた位置データに基づいて特定するステップを含む。特定の実施形態において、画像は、その位置と別の画像の位置との間の距離が閾値距離より大きい場合に、上記画像のサブセットから除外される。追加的な一実施形態において、上記方法は、上記圧縮後の画像のサブセット内の画像を上記画像のセットから削除するコードを備える。
【００１０】
一実施形態において、プログラム製品は、処理部により実行可能なコードを記憶するコンピューター可読記憶媒体を含む。一実施形態において、上記実行可能なコードは、カメラを用いて撮影された画像のセットを取得するステップを実行するコードを含む。追加的な一実施形態において、上記実行可能なコードは、上記画像のセットのサブセットを、上記画像のセット内の各画像に関連付けられたタイムスタンプに基づいて特定するステップを実行するコードを含む。一実施形態において、上記の画像サブセットは、所定の時間範囲にあるタイムスタンプを有する複数の画像から成る。特定の実施形態において、上記実行可能なコードは、圧縮後の上記画像のサブセットが上記画像のサブセットよりも少ない記憶領域を使用するように上記画像のサブセットを圧縮するステップを実行するコードを含む。
【００１１】
一実施形態において、上記実行可能なコードは、上記画像サブセット内の互いに関連する複数の画像を、上記画像サブセット内の各画像の１つ以上の特徴に基づいて特定するステップを実行するコードを含む。追加的な一実施形態において、別の画像と実質的に同様の特徴を持たない画像は、上記画像サブセットから除外される。
【００１２】
様々な実施形態において、上記実行可能なコードは、上記画像サブセット内の互いに関連する複数の画像を、上記画像サブセット内の各画像に関連付けられたモーションセンサー・データに基づいて特定するステップを実行するコードを含む。一実施形態において、ある画像は、そのモーションセンサー・データと別の画像のモーションセンサー・データとの間の相関度が相関閾値度を超えない場合に、上記画像のサブセットから除外される。
【００１３】
一実施形態において、上記実行可能なコードは、上記画像のサブセット内の互いに関連する複数の画像を、上記画像のサブセット内の各画像に関連付けられた位置データに基づいて特定するステップを実行するコードを含む。一実施形態において、画像は、その位置と別の画像の位置との間の距離が閾値距離より大きい場合に、上記画像サブセットから除外される。
【図面の簡単な説明】
【００１４】
概略的に前述した実施形態については、添付の図面に示す具体的な実施形態を参照して、より詳細に説明する。図面は一部の実施形態のみを示すため本開示の範囲を限定するものではないことを前提として、添付の図面を用いて、より具体的かつ詳細に実施形態について説明する。
【００１５】
【図１】図１は、フォト・クラスターの検出圧縮用システムの一実施形態を示す概略ブロック図である。
【図２】図２は、フォト・クラスターの検出圧縮用モジュールの一実施形態を示す概略ブロック図である。
【図３】図３は、別のフォト・クラスターの検出圧縮用モジュールの一実施形態を示す概略ブロック図である。
【図４】図４は、フォト・クラスターの検出圧縮処理の一実施形態を示す概略ブロック図である。
【図５】図５は、フォト・クラスターの検出圧縮方法の一実施形態を示す概略フローチャート図である。
【図６】図６は、別のフォト・クラスターの検出圧縮方法の一実施形態を示す概略フローチャート図である。
【発明を実施するための形態】
【００１６】
当業者には明らかなように、実施形態の態様は、システム、方法、およびプログラム製品として具体化が可能である。それに応じて、実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）、または、ソフトウェアとハードウェアの態様を組み合わせた実施形態の形を取ってもよく、本明細書では全体的に、これらのそれぞれを、「回路」、「モジュール」、または「システム」と呼ぶことがある。さらに、実施形態は、機械可読コード、コンピューター可読コード、およびプログラム・コードのうち少なくとも１つ（以降、コードと呼ぶ）を記憶する１つ以上のコンピューター可読ストレージ・デバイスにおいて具体化されるプログラム製品の形を取ってもよい。ストレージ・デバイスは、有形、非一時的、または非送信のものであってもよい。ストレージ・デバイスは、信号を具体化しなくてもよい。特定の実施形態において、ストレージ・デバイスは、コードにアクセスするための信号を使用するのみである。
【００１７】
本明細書で説明する機能ユニットの多くはモジュールと名付けられており、そのことにより、それらの実装の独立性がよりいっそうはっきりする。例えば、モジュールは、カスタム超大規模集積（Very-Large-Scale  Integrated：ＶＬＳＩ）回路もしくはゲート・アレイ、ロジック・チップやトランジスタ等の既製の半導体、または他の個別部品を備えるハードウェア回路として実装されてもよい。モジュールはまた、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ・ロジック、プログラマブル・ロジック・デバイス等のプログラマブル・ハードウェア・デバイスに実装されてもよい。
【００１８】
モジュールはまた、様々な種類のプロセッサーによる実行のために、コードとソフトウェアのうち少なくとも一方に実装されてもよい。コードの特定の１モジュールは、例えば、実行可能なコードの１つ以上の物理ブロックまたは論理ブロックを備えてもよく、それらのブロックは、例えば、オブジェクト、プロシージャ、またはファンクションとして構成されうるものである。ただし、特定の１モジュールの実行ファイルは、物理的に同じ場所にある必要はなく、異なる場所に格納された多種多様な命令を含んでもよく、それらの命令は、論理的に結合された時にモジュールを構成し、モジュールの定められた目的を達成するものである。
【００１９】
実際には、コードのモジュールは、単一の命令または多数の命令であってもよく、いくつかの異なるコード・セグメントにわたり、異なるプログラム間で、いくつかのメモリー・デバイスに分散されてもよい。同様に、本明細書においては、オペレーショナル・データは、モジュールの範囲内で識別され例示される場合があり、また、任意の適切な形で具体化され、任意の適切な種類のデータ構造内に構築されている場合もある。オペレーショナル・データは、単一のデータ・セットとして収集されてもよく、または異なるコンピューター可読ストレージ・デバイス全体を含む異なる場所全体にわたり分散されてもよい。モジュールまたはモジュールの部分がソフトウェアに実装される場合、そのソフトウェア部分は、１つ以上のコンピューター可読ストレージ・デバイスに格納される。
【００２０】
１つ以上のコンピューター可読媒体の任意の組み合わせを利用してもよい。コンピューター可読媒体は、コンピューター可読記憶媒体であってもよい。コンピューター可読記憶媒体は、コードを記憶するストレージ・デバイスであってもよい。ストレージ・デバイスは、例えば、電子的、磁気的、光学的、電磁気的、赤外線、ホログラフィック、マイクロメカニカル、もしくは半導体のシステム、装置、もしくはデバイス、または前述のいずれかの適切な組み合わせであってもよいが、これらに限定されるわけではない。
【００２１】
ストレージ・デバイスのより具体的な例（完全に網羅して列挙するわけではない）には、１本以上の配線を有する電気接続、携帯用コンピューター・ディスケット、ハード・ディスク、ランダム・アクセス・メモリー（Random  Access  Memory：ＲＡＭ）、読み取り専用メモリー（Read-Only  Memory：ＲＯＭ）、消去可能プログラマブル読み取り専用メモリー（Erasable  Programmable  Read-Only  Memory：ＥＰＲＯＭまたはフラッシュ・メモリー）、携帯用コンパクト・ディスク読み取り専用メモリー（Compact  Disc  Read-Only  Memory：ＣＤ−ＲＯＭ）、光学的ストレージ・デバイス、磁気的ストレージ・デバイス、または前述のいずれかの適切な組み合わせが含まれる。本明細書の文脈では、コンピューター可読記憶媒体は、命令実行システム、装置、もしくはデバイスにより、またはそれと関連して使用されるプログラムを含む、すなわち記憶することのできる任意の有形媒体であってもよい。
【００２２】
実施形態のオペレーションを実行するコードは、Ｐｙｔｈｏｎ、Ｒｕｂｙ、Ｊａｖａ（登録商標）、Ｓｍａｌｌｔａｌｋ、またはＣ＋＋等のオブジェクト指向プログラミング言語と、「Ｃ」プログラミング言語等の従来の手続き型プログラミング言語およびアセンブリー言語等の機械語の少なくともいずれか一方とを含むプログラミング言語のうち１つ以上の任意の組み合わせで書かれていてもよい。コードは、ユーザーのコンピューター上で完全に、ユーザーのコンピューター上で部分的に、独立型のソフトウェア・パッケージとして、ユーザーのコンピューター上で部分的かつリモート・コンピューター上で部分的に、またはリモート・コンピューターもしくはサーバー上で完全に、実行してもよい。後半のパターンの場合、リモート・コンピューターは、ローカル・エリア・ネットワーク（Local  Area  Network：ＬＡＮ）や広域ネットワーク（Wide  Area  Network：ＷＡＮ）を含む任意の種類のネットワークを通じてユーザーのコンピューターに接続されていてもよく、または、（例えば、インターネット・サービス・プロバイダーを使用してインターネットを通じて）外部のコンピューターに接続されてもよい。
【００２３】
本明細書全体にわたる、「一実施形態」、「実施形態」、または類似する言い回しへの言及は、実施形態に関連して説明される特別な機能、構造、または特徴が少なくとも１つの実施形態に含まれることを意味する。したがって、本明細書全体にわたる、「一実施形態において」および「実施形態において」という表現、ならびに類似する言い回しの出現は、必ずしもそうとは限らないが、全て同じ実施形態を指してもよく、しかし、別途明記されない限り、「１つ以上だが全てではない実施形態」を意味してもよい。用語「含む」、「備える」、「から成る」、「有する」、またはこれらの用語の変形は、別途明記されない限り、「を含むが、これらに限定されるわけではない」ということを意味する。列挙される記載事項は、別途明記されない限り、任意の、または全ての事項が、相互に排他的であることを意味するものではない。用語「１つの（ａおよびａｎ）」および「その（ｔｈｅ）」もまた、別途明記されない限り、「１つ以上の」を指す。
【００２４】
さらに、実施形態の説明される機能、構造、または特徴は、任意の適切な方法で組み合わされてもよい。以下の説明においては、実施形態が完全に理解されるために、プログラミング、ソフトウェア・モジュール、ユーザー選択、ネットワーク・トランザクション、データベース・クエリー、データベース構造、ハードウェア・モジュール、ハードウェア回路、ハードウェア・チップ等の例といった具体的な詳細が多数提示される。しかし、当業者であれば、１つ以上のそれら具体的な詳細がなくても、または他の方法、構成要素、材料等を用いて、実施形態が実施されうるということを理解できるであろう。その他の例では、実施形態の態様を不明瞭にすることを避けるために、既知の構造、材料、およびオペレーションは図示も詳細な説明もされない。
【００２５】
実施形態の態様は、実施形態に係る方法、装置、システム、およびプログラム製品の概略フローチャート図や概略ブロック図を参照して以下に説明する。概略フローチャート図や概略ブロック図の各ブロック、および概略フローチャート図や概略ブロック図におけるブロックの組み合わせは、コードによって実装されることが可能であるということが理解されるであろう。これらのコードは、マシンを製造するために、汎用コンピューター、専用コンピューター、または他のプログラマブル・データ処理装置のプロセッサーに提供されてもよく、その場合、当該コンピューターまたは他のプログラマブル・データ処理装置のプロセッサーを経由して実行される命令は、概略フローチャート図や概略ブロック図の１つまたは複数のブロックに明記された機能や動作を実施する手段を生成するように提供される。
【００２６】
また、コードは、コンピューター、他のプログラマブル・データ処理装置、または他のデバイスに、特定の方法で機能するように指示を出すことができるストレージ・デバイスに格納されてもよく、その場合、ストレージ・デバイスに格納された命令は、概略フローチャート図や概略ブロック図の１つまたは複数のブロックに明記された機能や動作を実施する命令を含む製品を生成するように格納される。
【００２７】
さらに、コードは、コンピューター、他のプログラマブル装置、または他のデバイス上で実行される一連のオペレーション・ステップを生成し、コンピューターにより実施されるプロセスを生成するために、コンピューター、他のプログラマブル・データ処理装置、または他のデバイスにロードされてもよく、その場合、コンピューターまたは他のプログラマブル・データ処理装置上で実行したコードは、フローチャート図やブロック図の１つまたは複数のブロックに明記された機能や動作を実施するプロセスを提供するようにロードされる。
【００２８】
図面の概略フローチャート図や概略ブロック図は、様々な実施形態に係る装置、システム、方法、およびプログラム製品を実現すると考えられるアーキテクチャー、機能性、およびオペレーションを示す。この点において、概略フローチャート図や概略ブロック図における各ブロックは、特定の論理機能を実行するコードの１つ以上の実行可能な命令を備えるモジュール、セグメント、またはコード部分を表してもよい。
【００２９】
実施上の選択肢によっては、ブロックに記入されている機能は、図面に記入された順序とは無関係に出てきてもよいということにも留意するべきである。例えば、連続して示される２つのブロックは、実際には、関係した機能性次第で、ほぼ同時に実行されてもよく、またはそれらのブロックは、時には逆の順序で実行されてもよい。他のステップおよび方法は、機能、論理、または効果において、示された図面の１つ以上のブロックまたはブロック部分に相当すると考えられてもよい。
【００３０】
フローチャート図やブロック図において、様々な種類の矢印および線が用いられることがあるが、それらは対応する実施形態の範囲を限定しないと理解される。実際に、いくつかの矢印または他の結合子は、示された実施形態の論理の流れのみを表すために使用されてもよい。例えば、矢印は、示された実施形態の列挙されたステップ間の、継続期間が不特定の待機期間またはモニタリング期間を表してもよい。ブロック図やフローチャート図の各ブロック、およびそれらブロック図やフローチャート図におけるブロックの組み合わせが、特定の機能もしくは動作を実行する専用ハードウェアをベースとするシステムまたは専用ハードウェアとコードとの組み合わせにより実施される可能性があるということも留意されるであろう。
【００３１】
各図面における要素の説明は、継続する図面の要素を参照してもよい。同じ要素の別の実施形態を含め、全ての図面において同じ番号は同じ要素を参照する。
【００３２】
図１は、フォト・クラスター（photo  cluster）の検出及び圧縮用のシステム１００の一実施形態を示す概略ブロック図である。一実施形態において、システム１００は、情報処理装置１０２、フォトグラフィーモジュール（photography  modules）１０４、およびデータ・ネットワーク（data  networks）１０６を備える。図１には特定の数の情報処理装置１０２、フォトグラフィーモジュール１０４、およびデータ・ネットワーク１０６を示すが、当業者であれば、特定の実施形態において、フォト・クラスターの検出及び圧縮用のシステム１００は任意の数の情報処理装置１０２、フォトグラフィーモジュール１０４、およびデータ・ネットワーク１０６により構成されてよいと認識するだろう。
【００３３】
一実施形態において、情報処理装置１０２には、デスクトップ・コンピューター、ラップトップ・コンピューター、携帯情報端末（Personal  Digital  Assistant：ＰＤＡ）、タブレット・コンピューター、スマートフォン、スマート・テレビ（例えば、インターネット接続テレビ）、セットトップ・ボックス、ゲーム機器、またはデジタル・カメラ等が含まれる。いくつかの実施形態において、情報処理装置１０２には、スマート・ウオッチ、フィットネス・バンド、または光学的ヘッドマウント・ディスプレー等のウェアラブル・デバイスが含まれる。
【００３４】
特定の実施形態において、情報処理装置１０２は、サーバー、ブレード・サーバー、仮想サーバー、クラウド・サーバー、またはデータ・センターのサーバー等により構成される。これらのサーバーは、アプリケーション・サーバー、電子メール・サーバー、データベース・サーバー、ファイル・サーバー、ゲーム・サーバー、ホーム・サーバー、メディア・サーバー、およびウェブ・サーバー等の少なくとも１種類のサーバーとして構成される。特定の実施形態において、これらのサーバーは、他の情報処理装置１０２がフォトグラフィーモジュール１０４に関連するデータのサーバー上での格納やアクセスができるように、データ・ネットワーク１０６を介してこの情報処理装置１０２に通信可能に接続される。
【００３５】
情報処理装置１０２は、デジタル画像を撮影するカメラまたは同様の構成要素を備えて構成されてもよい。情報処理装置１０２は、様々な実施形態においては、例えば、画像の圧縮、画像の編集、画像の特徴検出（例えば、エッジ、コーナー、関心点（interest  points）、ブロブ（blobs）、隆起線（ridges）等の検出）等の少なくともいずれかであるデジタル画像処理を実行するためのソフトウェアやハードウェアを有する。追加的な一実施形態において、情報処理装置１０２は、モーション・センサー、近接センサー、加速度計、または方位センサー等の１つ以上のセンサーを備える。
【００３６】
一実施形態において、各フォトグラフィーモジュール１０４は、カメラを用いて撮影された画像のセット（set）を取得し、当該画像のセット内の各画像に関連付けられたタイムスタンプに基づき当該画像のセットのサブセット（subset）サブセットを特定するように構成されている。いくつかの実施形態において、当該画像のサブセットは、所定の時間範囲にあるタイムスタンプを有する複数の画像を含んでいる。ある実施形態において、各フォトグラフィーモジュール１０４は、上記画像のサブセットを圧縮して、当該圧縮後の画像のサブセットが圧縮前の上記画像のサブセットよりも少ない記憶領域を使用するようにする。
【００３７】
このようにして、各フォトグラフィーモジュール１０４は、カメラでの連写モード（burst  mode）設定で撮影されていない複数の画像が互いに関連するかどうかを判定する。一般的に、バーストモード（burst  mode）設定で撮影された画像はフォト・クラスターを含み、そのようなものとして指定される場合もある。本明細書で用いられる場合、カメラでのバーストモード設定は、シャッター・ボタンを押すか押下げたままにするかのいずれかにより、続けざまに数枚の写真を撮影する撮影モードである。したがって、一実施形態において、撮影モジュール１０４は、バーストモード設定で撮影されていないものの、フォト・クラスターを含む可能性のある画像を特定する。いくつかの実施形態においては、詳細に後述するように、フォト・クラスターを構成する境界（boundaries）は、ユーザーが定義する。
【００３８】
一実施形態において、各データ・ネットワーク１０６は、デジタル通信を送信するデジタル通信ネットワークを含む。各データ・ネットワーク１０６は、無線セルラー・ネットワーク等の無線ネットワーク、ＷｉＦｉ（Wireless  Fidelity）ネットワーク、Ｂｌｕｅｔｏｏｔｈ（登録商標）ネットワーク、近距離通信（Near-Field  Communication：ＮＦＣ）ネットワークやアドホック・ネットワーク等のローカル無線ネットワークを含んでもよい。各データ・ネットワーク１０６は、ＷＡＮ、ストレージ・エリア・ネットワーク（Storage  Area  Network：ＳＡＮ）、ＬＡＮ、光ファイバー・ネットワーク、またはインターネット等のデジタル通信ネットワークを含んでもよい。各データ・ネットワーク１０６は、２つ以上のネットワークを含んでもよい。各データ・ネットワーク１０６は、１つ以上のサーバー、１つ以上のルーター、および１つ以上の交換器等のいずれかのネットワーク機器を含んでもよい。また、各データ・ネットワーク１０６は、ハード・ディスク・ドライブ、光学式ドライブ、不揮発性メモリー、またはＲＡＭ等のコンピューター可読記憶媒体を含んでもよい。
【００３９】
図２は、フォト・クラスターの検出及び圧縮用のモジュール２００の一実施形態を示す概略ブロック図である。一実施形態において、モジュール２００は、１つのフォトグラフィーモジュール１０４の具体例を含む。フォトグラフィーモジュール１０４は、いくつかの実施形態においては、詳細は後述するように、１又は複数の、画像モジュール（image  module）２０２、サブセットモジュール（subset  module）２０４、圧縮モジュール（compression  module）２０６を備える。
【００４０】
画像モジュール２０２は、一実施形態においては、画像のセットを受け取るように構成される。特定の実施形態において、上記画像のセットは、デジタル・カメラ等を用いて撮影された複数の画像から成る。様々な実施形態において、上記画像のセットは、ラスターまたはベクター形式、圧縮または非圧縮形式等の様々な形式で格納された複数の画像から成る。例えば、上記画像のセットは、ＪＰＥＧ（Joint  Photographic  Experts  Group）形式、エグジフ形式（Exchangeable  Image  File  Format：ＥＸＩＦ）、タグイメージ・ファイル形式（Tagged  Image  File  Format：ＴＩＦＦ）、ＲＡＷ画像形式（Raw  Image  Format：ＲＩＦ）、スケーラブル・ベクター・グラフィックス（Scalable  Vector  Graphics：ＳＶＧ）形式等のいずれか１つ以上を用いて圧縮された画像として格納された画像から成る。
【００４１】
いくつかの実施形態において、上記画像のセットは、上記画像を撮影したカメラを備える１つの情報処理装置１０２上に存在する。例えば、上記画像のセットは、デジタル・カメラ、スマートフォン、スマート・ウオッチ、ラップトップ・コンピューター、タブレット・コンピューター、またはデスクトップ・コンピューター等に格納される。さらに一実施形態において、上記画像のセットは、クラウド・サーバーまたはネットワーク・サーバー等に転送、格納されてもよい。
【００４２】
画像モジュール２０２は、上記画像のセットに関連付けられたストレージ・ボリューム（storage  volume：例えば、上記画像のセットが記憶されているストレージ・ボリューム）に対する上記画像のセットの要求や、そのストレージ・ボリュームから上記画像のセット合を受け取ってもよい。例えば、画像モジュール２０２がスマートフォン上にある場合、画像モジュール２０２は、そのスマートフォン上にあるローカルなストレージ・ボリュームから、または上記画像のセットがクラウド・サーバー上にある場合はクラウドのストレージ・ボリュームから、上記画像のサブセットを取得してもよい。
【００４３】
一実施形態において、サブセットモジュール２０４は、画像モジュール２０２が受け取った上記画像のセットのサブセットをサブセット圧縮対象候補として特定する。特定の実施形態において、サブセットモジュール２０４は、上記画像のセットのサブセットを、上記画像のセットの各画像に関連付けられたタイムスタンプに基づいて特定する。各画像は、例えば、その画像が上記カメラで撮影された時間や日付を示すタイムスタンプを有していてもよい。特定の実施形態において、ある画像に関連付けられたタイムスタンプは、その画像に関連付けられたメタデータに格納される。
【００４４】
いくつかの実施形態において、上記画像のサブセットは、所定の時間範囲にあるタイムスタンプを有する複数の画像を含んでいる。例えば、サブセットモジュール２０４は、８月２日の午後３時から午後４時の間に撮影された画像であって、撮影間隔が１０ミリ秒以内である画像のサブセットを特定する。他の例では、サブセットモジュール２０４は、１秒の時間範囲内で撮影された画像からなる画像のサブセットを複数生成してもよい。したがって、あるサブセットはある１秒の時間範囲内で撮影された１０個の画像から成るものであって、他のサブセットは別の１秒の時間範囲内で撮影された２個の画像から成るものであってもよい。いくつかの実施形態において、サブセットモジュール２０４は単一の画像しか含まないサブセットを特定した場合、サブセットモジュール２０４は、後述するように、そのサブセットをサブセット有効な圧縮対象候補として指定しなくてもよい。
【００４５】
様々な実施形態において、上記所定の時間範囲は、ユーザーによって定義されてもよい。例えば、ユーザーは、サブセットに属する画像を特定するために、サブセットモジュール２０４が受け取る画像についての期間（例えば、８月２日の午後３時から午後４時の間のような、日付範囲および時間範囲の少なくとも一方）および画像間の時間範囲（例えば、撮影間隔が１０ミリ秒以内である画像）の少なくともいずれか一方を指定してもよい。
【００４６】
一実施形態において、サブセットモジュール２０４は、スケジュールに従って圧縮対象の画像サブセットを特定する。いくつかの実施形態において、サブセットモジュール２０４は、１時間、１日、または１週間に１回の頻度で１つ以上のサブセットを特定する。例えば、あるデジタル・カメラまたはスマートフォン上にあるサブセットモジュール２０４は、画像に使用される記憶領域の量を節約するために１日１回の頻度で圧縮対象のサブセットを特定してもよい。いくつかの実施形態において、サブセットモジュール２０４は、ユーザーが設定したスケジュールに基づいて画像のサブセットを特定する。ユーザーは、例えば、サブセットモジュールサブセット２０４が圧縮対象の画像のサブセットを特定する時点および頻度の少なくとも一方を特定してもよい。
【００４７】
圧縮モジュール２０６は、一実施形態においては、上記画像のサブセットを圧縮して、その圧縮後の画像のサブセットが未圧縮の画像のサブセットよりも少ない記憶領域を使用するようにする。いくつかの実施形態において、圧縮モジュール２０６は、可逆画像圧縮アルゴリズムを使用して上記画像のサブセットを圧縮する。例えば、圧縮モジュール２０６は、中央重み付け可逆圧縮アルゴリズムを使用してもよい。可逆圧縮アルゴリズムの種類には、ＪＰＥＧ−ＬＳ、ＪＰＥＧ２０００、ＪＰＥＧ  ＸＲ、ＰＧＦ、ＰＮＧ、またはＴＩＦＦ等を含んでもよい。
【００４８】
特定の実施形態において、圧縮モジュール２０６が上記画像のサブセットを圧縮すると、画像モジュール２０２は、元の上記画像のセットから、上記圧縮された画像のサブセットに含まれる画像を削除する。このようにして、フォトグラフィーモジュール１０４は、フォト・クラスターを含む画像を特定し、フォト・クラスターを含む画像を圧縮し、元の画像を削除することで情報処理装置１０２上の記憶領域を節約する。このフォト・クラスターは、カメラがバーストモードになっている時に撮影されるフォト・クラスターと類似するものであってもよい。
【００４９】
図３は、別のフォト・クラスターの検出及び圧縮用のモジュール３００の一実施形態を示す概略ブロック図である。一実施形態において、モジュール３００は、１つのフォトグラフィーモジュール１０４の具体例を含む。フォトグラフィーモジュール１０４は、１又は複数の、画像モジュール２０２、サブセットモジュール２０４、および圧縮モジュール２０６を備えてもよく、これらは、図２で説明した画像モジュール２０２、サブセットモジュール２０４、および圧縮モジュール２０６と実質的に同様であってよい。さらなる一実施形態において、フォトグラフィーモジュール１０４は、詳細には後述するように、１又は複数の特徴モジュール（feature  module）３０２、モーションモジュール（motion  module）３０４、および位置モジュール（location  module）３０６を備えている。
【００５０】
一実施形態において、特徴モジュール３０２は、サブセットモジュール２０４によって特定された画像のサブセット内の画像の１つ以上の特徴に基づいて画像のサブセット内の互いに関連する複数の画像を特定することにより、画像のサブセットをリファイン（refine）サブセットするように構成される。そのような実施形態では、互いに関連しない画像は上記画像のサブセットから除外される。例えば、特徴モジュール３０２は、実質的に同様の特徴を含まない画像は別の画像として、上記画像のサブセットから除外してもよい。
【００５１】
本明細書で用いられる場合、画像の特徴には、画像内のエッジ、隆起線、関心点、またはコーナー等が含まれてもよい。例えば、画像の特徴は、画像内の空を背景とした輪郭、木、物体、または人物等を検出してもよい。特徴モジュール３０２は、２つの画像が同様のエッジまたは関心点を共有しているか、すなわち、２つの画像が画像内の実質的に同じ位置にエッジまたは関心点を有しているかどうかを判定することで、それらの画像が互いに関連しているかどうかを判定してもよい。特徴モジュール３０２がそれらの画像の特徴が実質的に同様であると判定した場合、これらの画像は関連していると見なされてサブセットに残される。そうでない場合、特徴モジュール３０２は、それらの画像の特徴が上記サブセット内のその他の画像の特徴と実質的に同様であるかを判定してもよく、実質的に同様でない場合、それらの画像は上記サブセットから除外される。
【００５２】
特徴モジュール３０２は、一実施形態においては、類似度フィルター（similarity  filter）を使用して２つの画像の特徴が実質的に同様かどうかを判定してもよい。特徴の相関閾値（correlation  threshold）を使用して、ある画像の特徴のセットが別の画像の特徴のセットとどの程度相関するかを判定してもよい。特徴モジュール３０２は、得られた上記相関と相関閾値とに基づき、それら２つの画像の特徴のセットが互いに実質的に同様かどうかを判定してもよい。
【００５３】
一実施形態において、動きモジュール３０４は、サブセットモジュール２０４によって特定された画像サブセット内の各画像に関連付けられたモーションセンサー・データに基づいて画像サブセット内の互いに関連する複数の画像を特定することにより、その画像サブセットを純化するように構成される。上述したように、情報処理装置１０２は、例えば、加速度計および方位センサー等のセンサーを備える。そのようなセンサーを備える情報処理装置１０２を使用して画像を撮影する場合、画像撮影時にそれらのセンサーによって生成されるデータは、その画像とともにメタデータとして記憶される。動きモジュール３０４は、２つの異なる画像のモーションセンサー・データ間の相関が、相関閾値を超えているかその範囲内かを判定してもよく、相関閾値を超えている場合、これらの画像が関連していると見なしてもよい。
【００５４】
例えば、動きモジュール３０４が２つの画像間での加速度計データの相関が相関閾値を超えていると判定した場合、動きモジュール３０４は、それらの画像が関連していると見なしてもよい。したがって、２つのモーションセンサー・データ間の相関が高い場合は、それらの画像が同じフォト・クラスターの一部である（例えば、それらの画像が実質的に同時に撮影された、または一続きの写真撮影の一部である）としてもよい。その結果、上記相関閾値が高く設定されるほど、上記２つの画像間で検出される動きの量についてこれら画像の関連性は高くなる。つまり、１つの画像が撮影されて次に上記カメラが移動してからもう１つの画像が撮影されると、動きモジュール３０４は、それらの画像間で検出された動きの量が、画像が互いに関連すると見なせる程度であるかどうかを判定する。
【００５５】
ある実施形態では、上記相関閾値は０．９から１．０の間であり、画像間で検出された動きがほとんどない場合としてもよい。さらなる実施形態では、上記相関閾値を約０．７として、画像間で検出された動きはあるが、画像が互いに関連すると見なしてよい場合としてもよい。上記相関閾値は、いくつかの実施形態においては、サブセットにより多くの画像を残すために、約０．５としてもよい。上記相関閾値は、ユーザーによって定義されてもよい。
【００５６】
一実施形態において、位置モジュール３０６は、サブセットモジュール２０４によって特定された画像のサブセット内の各画像に関連付けられた位置データに基づいて画像のサブセット内の互いに関連する複数の画像を特定することにより、その画像のサブセットをリファインするように構成される。本明細書で用いられる場合、位置データは、全地球測位システム（global  positioning  system：ＧＰＳ）データ、グローバル・システム・フォー・モバイル・コミュニケーションズ（Global  System  for  Mobile  Communications：ＧＳＭ（登録商標））データ、制御平面位置決定（control  plane  localization）データ、または自己申告された位置データ等から成る。いくつかの実施形態において、上記位置データは、各画像と関連付けられたメタデータとして記憶される。上記位置データは、画像が撮影された位置を特定する。
【００５７】
一例において、位置モジュール３０６は、上記画像が撮影された都市を上記画像と関連付けてもよい。他の一例において、位置モジュール３０６は、上記画像が撮影された住所を上記画像と関連付けてもよい。追加的な一例において、位置モジュール３０６は、上記画像が撮影されたＧＰＳ座標を上記画像と関連付けてもよい。様々な例において、位置モジュール３０６は、上記画像が撮影された位置を表す画像を、ユーザー定義の位置と関連付けてもよい。
【００５８】
上記位置データに基づいて上記サブセット内の複数の画像が互いに関連するかどうかを判定するために、位置モジュール３０６は、その複数の画像間の距離が閾値距離より大きいか否かを判定する。いくつかの実施形態において、上記閾値距離は、フィート、ヤード、またはマイル等の数から成る。例えば、位置モジュール３０６が、一対の画像の位置データ間の距離が設定された閾値距離（１０フィート）より大きいと判定した場合、位置モジュール３０６は、画像は互いに関連していないこと、すなわち、それらの画像の少なくとも１つは上記サブセットから除外される可能性があることを判定してもよい。上記閾値距離は、いくつかの実施形態においては、ユーザーにより設定される。
【００５９】
特徴モジュール３０２、動きモジュール３０４、および位置モジュール３０６の各例において画像間で比較の対象とするデータは、いくつかの実施形態においては、時系列順（例えば、各画像に関連付けられたタイムスタンプに従った、画像が撮影された順）に比較される。例えば、５個の画像Ａ〜Ｅから成るサブセットについて、画像Ａのメタデータは画像Ｂのメタデータと比較され、画像Ｂのメタデータは画像Ｃのメタデータと比較され、さらに同様に比較されてもよい。したがって、画像のメタデータは、それが特徴データ、モーションセンサー・データ、および位置データのいずれであるかに拘らず、画像Ａのメタデータは画像Ｅのメタデータとは比較されないような順序で比較される。このようにして、リファインの結果であるサブセットは、そのサブセットに含まれるべき画像を除外することなく、フォト・クラスターをより正確に表現するものとなる。
【００６０】
図４は、複数の画像４０３についてのフォト・クラスターの検出及び圧縮処理の一実施形態を示す概略ブロック図である。一実施形態において、画像モジュール２０２は画像のセット４０２を受け取り、サブセットモジュール２０４は画像のセット４０２のサブセット４０４を特定する。サブセット４０４は、所定の時間範囲内に撮影された複数の画像４０３から成るものであってよく、この場合は、サブセットは５００ミリ秒の時間枠内に撮影された画像から成る。
【００６１】
画像サブセット４０４は、特徴データ、モーションセンサー・データ、および位置データのいずれか１つ以上に基づきさらにリファインされ、互いに関連する画像４０６から成る別のサブセットが特定されてもよい。例えば、画像４０８は、そのモーションセンサー・データが別の画像のモーションセンサー・データとの間に相関閾値より高い相関を持たない場合に除外されてもよい。他の一例では、画像４１０は、その特徴データが別の画像の特徴データと実質的に同様でない場合に上記サブセットから除外されてもよい。圧縮モジュール２０６は、リファインの結果であるサブセット４０６を圧縮して圧縮後の画像のサブセット４１２を生成する。画像モジュール２０２は、一実施形態においては、元の画像のセット４０２から、圧縮後のサブセット４１２に含まれる画像４０６を削除する。
【００６２】
図５は、フォト・クラスターの検出及び圧縮の方法５００の一実施形態を示す概略フローチャートである。一実施形態において、画像モジュール２０２は、カメラを用いて撮影された画像のセットを受け取る（５０２）。追加的な一実施形態において、サブセットモジュール２０４は、上記画像のセットのサブセットを、上記画像のセット内の各画像に関連付けられたタイムスタンプに基づいて特定する（５０４）。上記画像サブセットは、所定の時間範囲内のタイムスタンプを有する複数の画像から成ってもよい。圧縮モジュール２０６は、一実施形態においては、上記画像サブセットを圧縮して（５０６）、その圧縮後の画像サブセットが上記画像のサブセットよりも少ない記憶領域を使用するようにし、方法５００は終了する。
【００６３】
図６は、別のフォト・クラスターの検出及び圧縮の方法６００の一実施形態を示す概略フローチャートである。一実施形態において、画像モジュール２０２は、カメラを用いて撮影された画像のセットを受け取る（６０２）。サブセットモジュール２０４は、いくつかの実施形態においては、上記画像のセットのサブセットを、上記画像のセット内の各画像に関連付けられたタイムスタンプに基づいて特定する（６０４）。上記画像サブセットは、所定の時間範囲内のタイムスタンプを有する複数の画像から成ってもよい。
【００６４】
一実施形態において、特徴モジュール３０２は、上記サブセットの画像の１つ以上の特徴に基づいて上記画像サブセットをリファインし（６０６）、ある別の画像と実質的に同様な特徴を含まない画像が上記画像サブセットから除外されるようにする。追加的な一実施形態において、動きモジュール３０４は、各画像に関連付けられたモーションセンサー・データに基づいて上記画像サブセットをリファインし（６０８）、ある画像のモーションセンサー・データと別の画像のモーションセンサー・データとの相関が相関閾値を超える相関でない場合にその画像が上記サブセットから除外されるようにする。いくつかの実施形態において、位置モジュール３０６は、各画像に関連付けられた位置データに基づいて上記画像サブセットをリファインし（６１０）、ある画像の位置と別の画像の位置との距離が閾値距離より大きい場合にその画像が上記サブセットから除外されるようにする。
【００６５】
圧縮モジュール２０６は、上記画像サブセットを圧縮して（６１２）、圧縮後の画像サブセットが上記画像サブセットよりも少ない記憶領域を使用するようにする。画像モジュール２０２は、上記圧縮後の画像サブセットに含まれる画像を元の上記画像のセットから除外ないし削除して利用可能な記憶スペースを生成して（６１４）、方法６００は終了する。
【００６６】
実施形態は他の具体的な形で実施されてもよい。説明した実施形態は、あらゆる点で単なる例示にすぎず、限定的に解釈してはならない。したがって、本発明の範囲は添付の特許請求の範囲によって示されており、明細書本文にはなんら拘束されない。特許請求と均等な意味および範囲にある全ての変更は、本発明の範囲内のものである。
【図１】
0006290949.tif 000002
【図２】
0006290949.tif 000003
【図３】
0006290949.tif 000004
【図４】
0006290949.tif 000005
【図５】
0006290949.tif 000006
【図６】
0006290949.tif 000007