特許第6290949号(P6290949)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ レノボ・シンガポール・プライベート・リミテッドの特許一覧

<>
  • 特許6290949-フォト・クラスターの検出および圧縮 図000002
  • 特許6290949-フォト・クラスターの検出および圧縮 図000003
  • 特許6290949-フォト・クラスターの検出および圧縮 図000004
  • 特許6290949-フォト・クラスターの検出および圧縮 図000005
  • 特許6290949-フォト・クラスターの検出および圧縮 図000006
  • 特許6290949-フォト・クラスターの検出および圧縮 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6290949
(24)【登録日】2018年2月16日
(45)【発行日】2018年3月7日
(54)【発明の名称】フォト・クラスターの検出および圧縮
(51)【国際特許分類】
   H04N 5/232 20060101AFI20180226BHJP
   H04N 5/91 20060101ALI20180226BHJP
【FI】
   H04N5/232 300
   H04N5/91
【請求項の数】8
【外国語出願】
【全頁数】16
(21)【出願番号】特願2016-36223(P2016-36223)
(22)【出願日】2016年2月26日
(65)【公開番号】特開2016-195383(P2016-195383A)
(43)【公開日】2016年11月17日
【審査請求日】2016年2月26日
(31)【優先権主張番号】14/674,390
(32)【優先日】2015年3月31日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】505205731
【氏名又は名称】レノボ・シンガポール・プライベート・リミテッド
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】スコット ウェンタオ リー
(72)【発明者】
【氏名】マルコ アルベルト ゴンザレス
(72)【発明者】
【氏名】グリゴーリ ザイツェフ
【審査官】 高野 美帆子
(56)【参考文献】
【文献】 特開2010−016847(JP,A)
【文献】 特開2012−182576(JP,A)
【文献】 特開2001−223921(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 5/222−5/257
H04N 5/91
(57)【特許請求の範囲】
【請求項1】
カメラと、
前記カメラを使用して撮影された画像のセットを受け取る手段と、
前記画像のセットの各画像に関連付けられたタイムスタンプに基づいて、前記画像のセットのサブセットを特定する手段と、
前記画像のサブセットは、所定の時間範囲内のタイムスタンプを有する複数の画像であり、
圧縮後の前記画像のサブセットが前記画像のサブセットよりも少ない記憶領域を使用するように、前記画像のサブセットを圧縮する手段と、
を備え
さらに、前記画像のサブセット内の互いに関連する複数の画像を、前記画像のサブセット内の各画像に関連付けられたモーションセンサー・データに基づいて特定する手段を備え、
画像は、そのモーションセンサー・データと別の画像のモーションセンサー・データ間の相関が、相関閾値を超えない場合に、画像のサブセットから除外される装置。
【請求項2】
前記モーションセンサー・データは、画像の撮影時点においてセンサーにより生成されるデータを含む請求項1に記載の装置。
【請求項3】
前記センサーは、加速度計および方位センサーからなるグループから選択される請求項2に記載の装置。
【請求項4】
画像についての前記モーションセンサー・データは、前記画像とともにメタデータとして記憶される請求項1に記載の装置。
【請求項5】
前記相関閾値は約0.7である、請求項1に記載の装置。
【請求項6】
カメラを用いて撮影された画像のセットを受け取るステップと、
前記画像のセットの各画像に関連付けられたタイムスタンプに基づいて、前記画像のセットのサブセットを特定するステップと、
前記画像のサブセットは、所定の時間範囲内のタイムスタンプを有する複数の画像であり、
圧縮後の前記画像のサブセットが前記画像のサブセットよりも少ない記憶領域を使用するように、前記画像のサブセットを圧縮するステップと、
を含み、
さらに、前記画像のサブセット内の互いに関連する複数の画像を、前記画像のサブセット内の各画像に関連付けられたモーションセンサー・データに基づいて特定するステップを含み、
画像は、そのモーションセンサー・データと別の画像のモーションセンサー・データ間の相関が相関閾値を超えない場合に、前記画像のサブセットから除外される方法。
【請求項7】
前記モーションセンサー・データは、画像の撮影時点においてセンサーにより生成されるデータを含み、前記センサーは、加速度計および方位センサーからなるグループから選択される請求項6に記載の方法。
【請求項8】
カメラを使用して撮影された画像のセットを受け取るステップと、
前記画像のセットの各画像に関連付けられたタイムスタンプに基づいて、前記画像のセットのサブセットを特定するステップと、
前記画像のサブセットは、所定の時間範囲内のタイムスタンプを有する複数の画像であり、
圧縮後の前記画像のサブセットが前記画像のサブセットよりも少ない記憶領域を使用するように、前記画像のサブセットを圧縮するステップと、
をコンピュータに実行させ、
さらに、前記画像のサブセット内の互いに関連する複数の画像を、前記画像のサブセット内の各画像に関連付けられたモーションセンサー・データに基づいて特定するステップをコンピュータに実行させ、
画像は、そのモーションセンサー・データと別の画像のモーションセンサー・データ間の相関が相関閾値を超えない場合に、前記画像のサブセットから除外されるコンピュータが読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書で開示する主題はデジタルフォトグラフィーに関し、より詳細には、フォト・クラスターの検出および圧縮に関する。
【背景技術】
【0002】
種々の情報処理装置のなかに、デジタル・カメラ等の撮像装置がある。例えば、スマートフォンまたはタブレット・コンピューターは、一体化された複数個のデジタル・カメラを備えている場合がある。多くのデジタル・カメラにより高解像度(例えば、高ピクセル数)の画像が撮影され、それにより高品質の画像が生成される。しかしながら、画像の解像度が高いほど、使用される記憶領域が大きくなる。一部のカメラは、短時間の間に複数の連続した画像が撮影されるバーストモードを備えている。バーストモードを使用しながら高解像度の画像を撮影すると、情報処理装置において大量の記憶領域が使用される。
【発明の概要】
【課題を解決するための手段】
【0003】
フォト・クラスターの検出および圧縮を行う装置が開示される。方法およびプログラム製品(Program Product)によっても、該装置の機能が実行される。一実施形態において、上記装置は、カメラと、該カメラに動作可能に接続されたプロセッサーを備える。上記装置は、特定の実施形態において、上記プロセッサーによって実行可能なコードを記憶するメモリーを備える。上記装置は、上記カメラを使用して撮影された画像のセットを受け取るコードを備える。追加的な一実施形態において、上記装置は、上記画像のセットのサブセットを、上記画像のセット内の各画像に関連付けられたタイムスタンプに基づいて特定するコードを備える。上記画像のサブセットは、所定の時間範囲にあるタイムスタンプを有する複数の画像から成ってもよい。上記装置は、圧縮後の画像サブセットが上記画像のサブセットよりも少ない記憶領域を使用するように、上記画像のサブセットを圧縮するコードを備える。
【0004】
様々な実施形態において、上記装置は、上記画像のサブセット内の互いに関連する複数の画像を、上記画像のサブセット内の各画像の1つ以上の特徴に基づいて特定するコードを備える。特定の実施形態において、別の画像と実質的に同様の特徴を持たない画像は、上記画像サブセットから除外される。上記装置は、追加的な一実施形態においては、上記画像のサブセット内の互いに関連する複数の画像を、上記画像のサブセット内の各画像に関連付けられたモーションセンサー・データに基づいて特定するコードを備える。一実施形態において、画像は、そのモーションセンサー・データと別の画像のモーションセンサー・データ間の相関が相関閾値を超えない場合に、上記画像のサブセットから除外される。
【0005】
一実施形態において、上記モーションセンサー・データは、画像の撮影時点においてセンサーにより生成されるデータから成る。追加的な一実施形態において、上記センサーは、加速度計および方位センサーから成るグループから選択される。いくつかの実施形態において、ある画像についての上記モーションセンサー・データは、その画像とともにメタデータとして記憶される。様々な実施形態において、上記相関閾値は約0.7である。
【0006】
上記装置は、いくつかの実施形態においては、上記画像のサブセット内の互いに関連する複数の画像を、上記画像のサブセット内の各画像に関連付けられた位置データに基づいて特定するコードを備える。一実施形態において、画像は、その位置と別の画像の位置との間の距離が閾値距離より大きい場合に、上記画像のサブセットから除外される。上記装置は、一実施形態においては、上記圧縮後の画像のサブセット内の画像を、上記画像のセットから削除するコードを備える。追加的な一実施形態において、上記画像のサブセットは、可逆圧縮法を用いて圧縮される。
【0007】
方法は、一実施形態において、カメラを用いて撮影された画像のセットを、処理部によって取得するステップを含む。いくつかの実施形態において、上記方法はさらに、上記画像のセットのサブセットを、上記画像のセットの各画像に関連付けられたタイムスタンプに基づいて特定するステップを含む。追加的な一実施形態において、上記画像サブセットは、所定の時間範囲にあるタイムスタンプを有する複数の画像から成る。特定の実施形態において、上記装置は、上記画像サブセットを圧縮して、当該圧縮後の画像サブセットが上記画像サブセットよりも少ない記憶領域を使用するようにする。
【0008】
一実施形態において、上記方法は、上記画像サブセット内の互いに関連する複数の画像を、上記画像サブセット内の各画像の1つ以上の特徴に基づいて特定するステップを含む。いくつかの実施形態において、別の画像と実質的に同様な特徴を持たない画像は、上記画像のサブセットから除外される。追加的な一実施形態において、上記方法は、上記画像のサブセット内の互いに関連する複数の画像を、上記画像のサブセット内の各画像に関連付けられたモーションセンサー・データに基づいて特定するステップを含む。いくつかの実施形態において、画像は、そのモーションセンサー・データと別の画像のモーションセンサー・データとの間の相関が相関閾値を超えない場合に、上記画像のサブセットから除外される。一実施形態において、上記モーションセンサー・データは、画像の撮影時点においてセンサーにより生成されるデータから成る。上記センサーは、加速度計および方位センサーから成る群から選択されてもよい。
【0009】
いくつかの実施形態において、上記方法は、上記画像のサブセット内の互いに関連する複数の画像を、上記画像のサブセット内の各画像に関連付けられた位置データに基づいて特定するステップを含む。特定の実施形態において、画像は、その位置と別の画像の位置との間の距離が閾値距離より大きい場合に、上記画像のサブセットから除外される。追加的な一実施形態において、上記方法は、上記圧縮後の画像のサブセット内の画像を上記画像のセットから削除するコードを備える。
【0010】
一実施形態において、プログラム製品は、処理部により実行可能なコードを記憶するコンピューター可読記憶媒体を含む。一実施形態において、上記実行可能なコードは、カメラを用いて撮影された画像のセットを取得するステップを実行するコードを含む。追加的な一実施形態において、上記実行可能なコードは、上記画像のセットのサブセットを、上記画像のセット内の各画像に関連付けられたタイムスタンプに基づいて特定するステップを実行するコードを含む。一実施形態において、上記の画像サブセットは、所定の時間範囲にあるタイムスタンプを有する複数の画像から成る。特定の実施形態において、上記実行可能なコードは、圧縮後の上記画像のサブセットが上記画像のサブセットよりも少ない記憶領域を使用するように上記画像のサブセットを圧縮するステップを実行するコードを含む。
【0011】
一実施形態において、上記実行可能なコードは、上記画像サブセット内の互いに関連する複数の画像を、上記画像サブセット内の各画像の1つ以上の特徴に基づいて特定するステップを実行するコードを含む。追加的な一実施形態において、別の画像と実質的に同様の特徴を持たない画像は、上記画像サブセットから除外される。
【0012】
様々な実施形態において、上記実行可能なコードは、上記画像サブセット内の互いに関連する複数の画像を、上記画像サブセット内の各画像に関連付けられたモーションセンサー・データに基づいて特定するステップを実行するコードを含む。一実施形態において、ある画像は、そのモーションセンサー・データと別の画像のモーションセンサー・データとの間の相関度が相関閾値度を超えない場合に、上記画像のサブセットから除外される。
【0013】
一実施形態において、上記実行可能なコードは、上記画像のサブセット内の互いに関連する複数の画像を、上記画像のサブセット内の各画像に関連付けられた位置データに基づいて特定するステップを実行するコードを含む。一実施形態において、画像は、その位置と別の画像の位置との間の距離が閾値距離より大きい場合に、上記画像サブセットから除外される。
【図面の簡単な説明】
【0014】
概略的に前述した実施形態については、添付の図面に示す具体的な実施形態を参照して、より詳細に説明する。図面は一部の実施形態のみを示すため本開示の範囲を限定するものではないことを前提として、添付の図面を用いて、より具体的かつ詳細に実施形態について説明する。
【0015】
図1図1は、フォト・クラスターの検出圧縮用システムの一実施形態を示す概略ブロック図である。
図2図2は、フォト・クラスターの検出圧縮用モジュールの一実施形態を示す概略ブロック図である。
図3図3は、別のフォト・クラスターの検出圧縮用モジュールの一実施形態を示す概略ブロック図である。
図4図4は、フォト・クラスターの検出圧縮処理の一実施形態を示す概略ブロック図である。
図5図5は、フォト・クラスターの検出圧縮方法の一実施形態を示す概略フローチャート図である。
図6図6は、別のフォト・クラスターの検出圧縮方法の一実施形態を示す概略フローチャート図である。
【発明を実施するための形態】
【0016】
当業者には明らかなように、実施形態の態様は、システム、方法、およびプログラム製品として具体化が可能である。それに応じて、実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、または、ソフトウェアとハードウェアの態様を組み合わせた実施形態の形を取ってもよく、本明細書では全体的に、これらのそれぞれを、「回路」、「モジュール」、または「システム」と呼ぶことがある。さらに、実施形態は、機械可読コード、コンピューター可読コード、およびプログラム・コードのうち少なくとも1つ(以降、コードと呼ぶ)を記憶する1つ以上のコンピューター可読ストレージ・デバイスにおいて具体化されるプログラム製品の形を取ってもよい。ストレージ・デバイスは、有形、非一時的、または非送信のものであってもよい。ストレージ・デバイスは、信号を具体化しなくてもよい。特定の実施形態において、ストレージ・デバイスは、コードにアクセスするための信号を使用するのみである。
【0017】
本明細書で説明する機能ユニットの多くはモジュールと名付けられており、そのことにより、それらの実装の独立性がよりいっそうはっきりする。例えば、モジュールは、カスタム超大規模集積(Very-Large-Scale Integrated:VLSI)回路もしくはゲート・アレイ、ロジック・チップやトランジスタ等の既製の半導体、または他の個別部品を備えるハードウェア回路として実装されてもよい。モジュールはまた、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ・ロジック、プログラマブル・ロジック・デバイス等のプログラマブル・ハードウェア・デバイスに実装されてもよい。
【0018】
モジュールはまた、様々な種類のプロセッサーによる実行のために、コードとソフトウェアのうち少なくとも一方に実装されてもよい。コードの特定の1モジュールは、例えば、実行可能なコードの1つ以上の物理ブロックまたは論理ブロックを備えてもよく、それらのブロックは、例えば、オブジェクト、プロシージャ、またはファンクションとして構成されうるものである。ただし、特定の1モジュールの実行ファイルは、物理的に同じ場所にある必要はなく、異なる場所に格納された多種多様な命令を含んでもよく、それらの命令は、論理的に結合された時にモジュールを構成し、モジュールの定められた目的を達成するものである。
【0019】
実際には、コードのモジュールは、単一の命令または多数の命令であってもよく、いくつかの異なるコード・セグメントにわたり、異なるプログラム間で、いくつかのメモリー・デバイスに分散されてもよい。同様に、本明細書においては、オペレーショナル・データは、モジュールの範囲内で識別され例示される場合があり、また、任意の適切な形で具体化され、任意の適切な種類のデータ構造内に構築されている場合もある。オペレーショナル・データは、単一のデータ・セットとして収集されてもよく、または異なるコンピューター可読ストレージ・デバイス全体を含む異なる場所全体にわたり分散されてもよい。モジュールまたはモジュールの部分がソフトウェアに実装される場合、そのソフトウェア部分は、1つ以上のコンピューター可読ストレージ・デバイスに格納される。
【0020】
1つ以上のコンピューター可読媒体の任意の組み合わせを利用してもよい。コンピューター可読媒体は、コンピューター可読記憶媒体であってもよい。コンピューター可読記憶媒体は、コードを記憶するストレージ・デバイスであってもよい。ストレージ・デバイスは、例えば、電子的、磁気的、光学的、電磁気的、赤外線、ホログラフィック、マイクロメカニカル、もしくは半導体のシステム、装置、もしくはデバイス、または前述のいずれかの適切な組み合わせであってもよいが、これらに限定されるわけではない。
【0021】
ストレージ・デバイスのより具体的な例(完全に網羅して列挙するわけではない)には、1本以上の配線を有する電気接続、携帯用コンピューター・ディスケット、ハード・ディスク、ランダム・アクセス・メモリー(Random Access Memory:RAM)、読み取り専用メモリー(Read-Only Memory:ROM)、消去可能プログラマブル読み取り専用メモリー(Erasable Programmable Read-Only Memory:EPROMまたはフラッシュ・メモリー)、携帯用コンパクト・ディスク読み取り専用メモリー(Compact Disc Read-Only Memory:CD−ROM)、光学的ストレージ・デバイス、磁気的ストレージ・デバイス、または前述のいずれかの適切な組み合わせが含まれる。本明細書の文脈では、コンピューター可読記憶媒体は、命令実行システム、装置、もしくはデバイスにより、またはそれと関連して使用されるプログラムを含む、すなわち記憶することのできる任意の有形媒体であってもよい。
【0022】
実施形態のオペレーションを実行するコードは、Python、Ruby、Java(登録商標)、Smalltalk、またはC++等のオブジェクト指向プログラミング言語と、「C」プログラミング言語等の従来の手続き型プログラミング言語およびアセンブリー言語等の機械語の少なくともいずれか一方とを含むプログラミング言語のうち1つ以上の任意の組み合わせで書かれていてもよい。コードは、ユーザーのコンピューター上で完全に、ユーザーのコンピューター上で部分的に、独立型のソフトウェア・パッケージとして、ユーザーのコンピューター上で部分的かつリモート・コンピューター上で部分的に、またはリモート・コンピューターもしくはサーバー上で完全に、実行してもよい。後半のパターンの場合、リモート・コンピューターは、ローカル・エリア・ネットワーク(Local Area Network:LAN)や広域ネットワーク(Wide Area Network:WAN)を含む任意の種類のネットワークを通じてユーザーのコンピューターに接続されていてもよく、または、(例えば、インターネット・サービス・プロバイダーを使用してインターネットを通じて)外部のコンピューターに接続されてもよい。
【0023】
本明細書全体にわたる、「一実施形態」、「実施形態」、または類似する言い回しへの言及は、実施形態に関連して説明される特別な機能、構造、または特徴が少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体にわたる、「一実施形態において」および「実施形態において」という表現、ならびに類似する言い回しの出現は、必ずしもそうとは限らないが、全て同じ実施形態を指してもよく、しかし、別途明記されない限り、「1つ以上だが全てではない実施形態」を意味してもよい。用語「含む」、「備える」、「から成る」、「有する」、またはこれらの用語の変形は、別途明記されない限り、「を含むが、これらに限定されるわけではない」ということを意味する。列挙される記載事項は、別途明記されない限り、任意の、または全ての事項が、相互に排他的であることを意味するものではない。用語「1つの(aおよびan)」および「その(the)」もまた、別途明記されない限り、「1つ以上の」を指す。
【0024】
さらに、実施形態の説明される機能、構造、または特徴は、任意の適切な方法で組み合わされてもよい。以下の説明においては、実施形態が完全に理解されるために、プログラミング、ソフトウェア・モジュール、ユーザー選択、ネットワーク・トランザクション、データベース・クエリー、データベース構造、ハードウェア・モジュール、ハードウェア回路、ハードウェア・チップ等の例といった具体的な詳細が多数提示される。しかし、当業者であれば、1つ以上のそれら具体的な詳細がなくても、または他の方法、構成要素、材料等を用いて、実施形態が実施されうるということを理解できるであろう。その他の例では、実施形態の態様を不明瞭にすることを避けるために、既知の構造、材料、およびオペレーションは図示も詳細な説明もされない。
【0025】
実施形態の態様は、実施形態に係る方法、装置、システム、およびプログラム製品の概略フローチャート図や概略ブロック図を参照して以下に説明する。概略フローチャート図や概略ブロック図の各ブロック、および概略フローチャート図や概略ブロック図におけるブロックの組み合わせは、コードによって実装されることが可能であるということが理解されるであろう。これらのコードは、マシンを製造するために、汎用コンピューター、専用コンピューター、または他のプログラマブル・データ処理装置のプロセッサーに提供されてもよく、その場合、当該コンピューターまたは他のプログラマブル・データ処理装置のプロセッサーを経由して実行される命令は、概略フローチャート図や概略ブロック図の1つまたは複数のブロックに明記された機能や動作を実施する手段を生成するように提供される。
【0026】
また、コードは、コンピューター、他のプログラマブル・データ処理装置、または他のデバイスに、特定の方法で機能するように指示を出すことができるストレージ・デバイスに格納されてもよく、その場合、ストレージ・デバイスに格納された命令は、概略フローチャート図や概略ブロック図の1つまたは複数のブロックに明記された機能や動作を実施する命令を含む製品を生成するように格納される。
【0027】
さらに、コードは、コンピューター、他のプログラマブル装置、または他のデバイス上で実行される一連のオペレーション・ステップを生成し、コンピューターにより実施されるプロセスを生成するために、コンピューター、他のプログラマブル・データ処理装置、または他のデバイスにロードされてもよく、その場合、コンピューターまたは他のプログラマブル・データ処理装置上で実行したコードは、フローチャート図やブロック図の1つまたは複数のブロックに明記された機能や動作を実施するプロセスを提供するようにロードされる。
【0028】
図面の概略フローチャート図や概略ブロック図は、様々な実施形態に係る装置、システム、方法、およびプログラム製品を実現すると考えられるアーキテクチャー、機能性、およびオペレーションを示す。この点において、概略フローチャート図や概略ブロック図における各ブロックは、特定の論理機能を実行するコードの1つ以上の実行可能な命令を備えるモジュール、セグメント、またはコード部分を表してもよい。
【0029】
実施上の選択肢によっては、ブロックに記入されている機能は、図面に記入された順序とは無関係に出てきてもよいということにも留意するべきである。例えば、連続して示される2つのブロックは、実際には、関係した機能性次第で、ほぼ同時に実行されてもよく、またはそれらのブロックは、時には逆の順序で実行されてもよい。他のステップおよび方法は、機能、論理、または効果において、示された図面の1つ以上のブロックまたはブロック部分に相当すると考えられてもよい。
【0030】
フローチャート図やブロック図において、様々な種類の矢印および線が用いられることがあるが、それらは対応する実施形態の範囲を限定しないと理解される。実際に、いくつかの矢印または他の結合子は、示された実施形態の論理の流れのみを表すために使用されてもよい。例えば、矢印は、示された実施形態の列挙されたステップ間の、継続期間が不特定の待機期間またはモニタリング期間を表してもよい。ブロック図やフローチャート図の各ブロック、およびそれらブロック図やフローチャート図におけるブロックの組み合わせが、特定の機能もしくは動作を実行する専用ハードウェアをベースとするシステムまたは専用ハードウェアとコードとの組み合わせにより実施される可能性があるということも留意されるであろう。
【0031】
各図面における要素の説明は、継続する図面の要素を参照してもよい。同じ要素の別の実施形態を含め、全ての図面において同じ番号は同じ要素を参照する。
【0032】
図1は、フォト・クラスター(photo cluster)の検出及び圧縮用のシステム100の一実施形態を示す概略ブロック図である。一実施形態において、システム100は、情報処理装置102、フォトグラフィーモジュール(photography modules)104、およびデータ・ネットワーク(data networks)106を備える。図1には特定の数の情報処理装置102、フォトグラフィーモジュール104、およびデータ・ネットワーク106を示すが、当業者であれば、特定の実施形態において、フォト・クラスターの検出及び圧縮用のシステム100は任意の数の情報処理装置102、フォトグラフィーモジュール104、およびデータ・ネットワーク106により構成されてよいと認識するだろう。
【0033】
一実施形態において、情報処理装置102には、デスクトップ・コンピューター、ラップトップ・コンピューター、携帯情報端末(Personal Digital Assistant:PDA)、タブレット・コンピューター、スマートフォン、スマート・テレビ(例えば、インターネット接続テレビ)、セットトップ・ボックス、ゲーム機器、またはデジタル・カメラ等が含まれる。いくつかの実施形態において、情報処理装置102には、スマート・ウオッチ、フィットネス・バンド、または光学的ヘッドマウント・ディスプレー等のウェアラブル・デバイスが含まれる。
【0034】
特定の実施形態において、情報処理装置102は、サーバー、ブレード・サーバー、仮想サーバー、クラウド・サーバー、またはデータ・センターのサーバー等により構成される。これらのサーバーは、アプリケーション・サーバー、電子メール・サーバー、データベース・サーバー、ファイル・サーバー、ゲーム・サーバー、ホーム・サーバー、メディア・サーバー、およびウェブ・サーバー等の少なくとも1種類のサーバーとして構成される。特定の実施形態において、これらのサーバーは、他の情報処理装置102がフォトグラフィーモジュール104に関連するデータのサーバー上での格納やアクセスができるように、データ・ネットワーク106を介してこの情報処理装置102に通信可能に接続される。
【0035】
情報処理装置102は、デジタル画像を撮影するカメラまたは同様の構成要素を備えて構成されてもよい。情報処理装置102は、様々な実施形態においては、例えば、画像の圧縮、画像の編集、画像の特徴検出(例えば、エッジ、コーナー、関心点(interest points)、ブロブ(blobs)、隆起線(ridges)等の検出)等の少なくともいずれかであるデジタル画像処理を実行するためのソフトウェアやハードウェアを有する。追加的な一実施形態において、情報処理装置102は、モーション・センサー、近接センサー、加速度計、または方位センサー等の1つ以上のセンサーを備える。
【0036】
一実施形態において、各フォトグラフィーモジュール104は、カメラを用いて撮影された画像のセット(set)を取得し、当該画像のセット内の各画像に関連付けられたタイムスタンプに基づき当該画像のセットのサブセット(subset)サブセットを特定するように構成されている。いくつかの実施形態において、当該画像のサブセットは、所定の時間範囲にあるタイムスタンプを有する複数の画像を含んでいる。ある実施形態において、各フォトグラフィーモジュール104は、上記画像のサブセットを圧縮して、当該圧縮後の画像のサブセットが圧縮前の上記画像のサブセットよりも少ない記憶領域を使用するようにする。
【0037】
このようにして、各フォトグラフィーモジュール104は、カメラでの連写モード(burst mode)設定で撮影されていない複数の画像が互いに関連するかどうかを判定する。一般的に、バーストモード(burst mode)設定で撮影された画像はフォト・クラスターを含み、そのようなものとして指定される場合もある。本明細書で用いられる場合、カメラでのバーストモード設定は、シャッター・ボタンを押すか押下げたままにするかのいずれかにより、続けざまに数枚の写真を撮影する撮影モードである。したがって、一実施形態において、撮影モジュール104は、バーストモード設定で撮影されていないものの、フォト・クラスターを含む可能性のある画像を特定する。いくつかの実施形態においては、詳細に後述するように、フォト・クラスターを構成する境界(boundaries)は、ユーザーが定義する。
【0038】
一実施形態において、各データ・ネットワーク106は、デジタル通信を送信するデジタル通信ネットワークを含む。各データ・ネットワーク106は、無線セルラー・ネットワーク等の無線ネットワーク、WiFi(Wireless Fidelity)ネットワーク、Bluetooth(登録商標)ネットワーク、近距離通信(Near-Field Communication:NFC)ネットワークやアドホック・ネットワーク等のローカル無線ネットワークを含んでもよい。各データ・ネットワーク106は、WAN、ストレージ・エリア・ネットワーク(Storage Area Network:SAN)、LAN、光ファイバー・ネットワーク、またはインターネット等のデジタル通信ネットワークを含んでもよい。各データ・ネットワーク106は、2つ以上のネットワークを含んでもよい。各データ・ネットワーク106は、1つ以上のサーバー、1つ以上のルーター、および1つ以上の交換器等のいずれかのネットワーク機器を含んでもよい。また、各データ・ネットワーク106は、ハード・ディスク・ドライブ、光学式ドライブ、不揮発性メモリー、またはRAM等のコンピューター可読記憶媒体を含んでもよい。
【0039】
図2は、フォト・クラスターの検出及び圧縮用のモジュール200の一実施形態を示す概略ブロック図である。一実施形態において、モジュール200は、1つのフォトグラフィーモジュール104の具体例を含む。フォトグラフィーモジュール104は、いくつかの実施形態においては、詳細は後述するように、1又は複数の、画像モジュール(image module)202、サブセットモジュール(subset module)204、圧縮モジュール(compression module)206を備える。
【0040】
画像モジュール202は、一実施形態においては、画像のセットを受け取るように構成される。特定の実施形態において、上記画像のセットは、デジタル・カメラ等を用いて撮影された複数の画像から成る。様々な実施形態において、上記画像のセットは、ラスターまたはベクター形式、圧縮または非圧縮形式等の様々な形式で格納された複数の画像から成る。例えば、上記画像のセットは、JPEG(Joint Photographic Experts Group)形式、エグジフ形式(Exchangeable Image File Format:EXIF)、タグイメージ・ファイル形式(Tagged Image File Format:TIFF)、RAW画像形式(Raw Image Format:RIF)、スケーラブル・ベクター・グラフィックス(Scalable Vector Graphics:SVG)形式等のいずれか1つ以上を用いて圧縮された画像として格納された画像から成る。
【0041】
いくつかの実施形態において、上記画像のセットは、上記画像を撮影したカメラを備える1つの情報処理装置102上に存在する。例えば、上記画像のセットは、デジタル・カメラ、スマートフォン、スマート・ウオッチ、ラップトップ・コンピューター、タブレット・コンピューター、またはデスクトップ・コンピューター等に格納される。さらに一実施形態において、上記画像のセットは、クラウド・サーバーまたはネットワーク・サーバー等に転送、格納されてもよい。
【0042】
画像モジュール202は、上記画像のセットに関連付けられたストレージ・ボリューム(storage volume:例えば、上記画像のセットが記憶されているストレージ・ボリューム)に対する上記画像のセットの要求や、そのストレージ・ボリュームから上記画像のセット合を受け取ってもよい。例えば、画像モジュール202がスマートフォン上にある場合、画像モジュール202は、そのスマートフォン上にあるローカルなストレージ・ボリュームから、または上記画像のセットがクラウド・サーバー上にある場合はクラウドのストレージ・ボリュームから、上記画像のサブセットを取得してもよい。
【0043】
一実施形態において、サブセットモジュール204は、画像モジュール202が受け取った上記画像のセットのサブセットをサブセット圧縮対象候補として特定する。特定の実施形態において、サブセットモジュール204は、上記画像のセットのサブセットを、上記画像のセットの各画像に関連付けられたタイムスタンプに基づいて特定する。各画像は、例えば、その画像が上記カメラで撮影された時間や日付を示すタイムスタンプを有していてもよい。特定の実施形態において、ある画像に関連付けられたタイムスタンプは、その画像に関連付けられたメタデータに格納される。
【0044】
いくつかの実施形態において、上記画像のサブセットは、所定の時間範囲にあるタイムスタンプを有する複数の画像を含んでいる。例えば、サブセットモジュール204は、8月2日の午後3時から午後4時の間に撮影された画像であって、撮影間隔が10ミリ秒以内である画像のサブセットを特定する。他の例では、サブセットモジュール204は、1秒の時間範囲内で撮影された画像からなる画像のサブセットを複数生成してもよい。したがって、あるサブセットはある1秒の時間範囲内で撮影された10個の画像から成るものであって、他のサブセットは別の1秒の時間範囲内で撮影された2個の画像から成るものであってもよい。いくつかの実施形態において、サブセットモジュール204は単一の画像しか含まないサブセットを特定した場合、サブセットモジュール204は、後述するように、そのサブセットをサブセット有効な圧縮対象候補として指定しなくてもよい。
【0045】
様々な実施形態において、上記所定の時間範囲は、ユーザーによって定義されてもよい。例えば、ユーザーは、サブセットに属する画像を特定するために、サブセットモジュール204が受け取る画像についての期間(例えば、8月2日の午後3時から午後4時の間のような、日付範囲および時間範囲の少なくとも一方)および画像間の時間範囲(例えば、撮影間隔が10ミリ秒以内である画像)の少なくともいずれか一方を指定してもよい。
【0046】
一実施形態において、サブセットモジュール204は、スケジュールに従って圧縮対象の画像サブセットを特定する。いくつかの実施形態において、サブセットモジュール204は、1時間、1日、または1週間に1回の頻度で1つ以上のサブセットを特定する。例えば、あるデジタル・カメラまたはスマートフォン上にあるサブセットモジュール204は、画像に使用される記憶領域の量を節約するために1日1回の頻度で圧縮対象のサブセットを特定してもよい。いくつかの実施形態において、サブセットモジュール204は、ユーザーが設定したスケジュールに基づいて画像のサブセットを特定する。ユーザーは、例えば、サブセットモジュールサブセット204が圧縮対象の画像のサブセットを特定する時点および頻度の少なくとも一方を特定してもよい。
【0047】
圧縮モジュール206は、一実施形態においては、上記画像のサブセットを圧縮して、その圧縮後の画像のサブセットが未圧縮の画像のサブセットよりも少ない記憶領域を使用するようにする。いくつかの実施形態において、圧縮モジュール206は、可逆画像圧縮アルゴリズムを使用して上記画像のサブセットを圧縮する。例えば、圧縮モジュール206は、中央重み付け可逆圧縮アルゴリズムを使用してもよい。可逆圧縮アルゴリズムの種類には、JPEG−LS、JPEG2000、JPEG XR、PGF、PNG、またはTIFF等を含んでもよい。
【0048】
特定の実施形態において、圧縮モジュール206が上記画像のサブセットを圧縮すると、画像モジュール202は、元の上記画像のセットから、上記圧縮された画像のサブセットに含まれる画像を削除する。このようにして、フォトグラフィーモジュール104は、フォト・クラスターを含む画像を特定し、フォト・クラスターを含む画像を圧縮し、元の画像を削除することで情報処理装置102上の記憶領域を節約する。このフォト・クラスターは、カメラがバーストモードになっている時に撮影されるフォト・クラスターと類似するものであってもよい。
【0049】
図3は、別のフォト・クラスターの検出及び圧縮用のモジュール300の一実施形態を示す概略ブロック図である。一実施形態において、モジュール300は、1つのフォトグラフィーモジュール104の具体例を含む。フォトグラフィーモジュール104は、1又は複数の、画像モジュール202、サブセットモジュール204、および圧縮モジュール206を備えてもよく、これらは、図2で説明した画像モジュール202、サブセットモジュール204、および圧縮モジュール206と実質的に同様であってよい。さらなる一実施形態において、フォトグラフィーモジュール104は、詳細には後述するように、1又は複数の特徴モジュール(feature module)302、モーションモジュール(motion module)304、および位置モジュール(location module)306を備えている。
【0050】
一実施形態において、特徴モジュール302は、サブセットモジュール204によって特定された画像のサブセット内の画像の1つ以上の特徴に基づいて画像のサブセット内の互いに関連する複数の画像を特定することにより、画像のサブセットをリファイン(refine)サブセットするように構成される。そのような実施形態では、互いに関連しない画像は上記画像のサブセットから除外される。例えば、特徴モジュール302は、実質的に同様の特徴を含まない画像は別の画像として、上記画像のサブセットから除外してもよい。
【0051】
本明細書で用いられる場合、画像の特徴には、画像内のエッジ、隆起線、関心点、またはコーナー等が含まれてもよい。例えば、画像の特徴は、画像内の空を背景とした輪郭、木、物体、または人物等を検出してもよい。特徴モジュール302は、2つの画像が同様のエッジまたは関心点を共有しているか、すなわち、2つの画像が画像内の実質的に同じ位置にエッジまたは関心点を有しているかどうかを判定することで、それらの画像が互いに関連しているかどうかを判定してもよい。特徴モジュール302がそれらの画像の特徴が実質的に同様であると判定した場合、これらの画像は関連していると見なされてサブセットに残される。そうでない場合、特徴モジュール302は、それらの画像の特徴が上記サブセット内のその他の画像の特徴と実質的に同様であるかを判定してもよく、実質的に同様でない場合、それらの画像は上記サブセットから除外される。
【0052】
特徴モジュール302は、一実施形態においては、類似度フィルター(similarity filter)を使用して2つの画像の特徴が実質的に同様かどうかを判定してもよい。特徴の相関閾値(correlation threshold)を使用して、ある画像の特徴のセットが別の画像の特徴のセットとどの程度相関するかを判定してもよい。特徴モジュール302は、得られた上記相関と相関閾値とに基づき、それら2つの画像の特徴のセットが互いに実質的に同様かどうかを判定してもよい。
【0053】
一実施形態において、動きモジュール304は、サブセットモジュール204によって特定された画像サブセット内の各画像に関連付けられたモーションセンサー・データに基づいて画像サブセット内の互いに関連する複数の画像を特定することにより、その画像サブセットを純化するように構成される。上述したように、情報処理装置102は、例えば、加速度計および方位センサー等のセンサーを備える。そのようなセンサーを備える情報処理装置102を使用して画像を撮影する場合、画像撮影時にそれらのセンサーによって生成されるデータは、その画像とともにメタデータとして記憶される。動きモジュール304は、2つの異なる画像のモーションセンサー・データ間の相関が、相関閾値を超えているかその範囲内かを判定してもよく、相関閾値を超えている場合、これらの画像が関連していると見なしてもよい。
【0054】
例えば、動きモジュール304が2つの画像間での加速度計データの相関が相関閾値を超えていると判定した場合、動きモジュール304は、それらの画像が関連していると見なしてもよい。したがって、2つのモーションセンサー・データ間の相関が高い場合は、それらの画像が同じフォト・クラスターの一部である(例えば、それらの画像が実質的に同時に撮影された、または一続きの写真撮影の一部である)としてもよい。その結果、上記相関閾値が高く設定されるほど、上記2つの画像間で検出される動きの量についてこれら画像の関連性は高くなる。つまり、1つの画像が撮影されて次に上記カメラが移動してからもう1つの画像が撮影されると、動きモジュール304は、それらの画像間で検出された動きの量が、画像が互いに関連すると見なせる程度であるかどうかを判定する。
【0055】
ある実施形態では、上記相関閾値は0.9から1.0の間であり、画像間で検出された動きがほとんどない場合としてもよい。さらなる実施形態では、上記相関閾値を約0.7として、画像間で検出された動きはあるが、画像が互いに関連すると見なしてよい場合としてもよい。上記相関閾値は、いくつかの実施形態においては、サブセットにより多くの画像を残すために、約0.5としてもよい。上記相関閾値は、ユーザーによって定義されてもよい。
【0056】
一実施形態において、位置モジュール306は、サブセットモジュール204によって特定された画像のサブセット内の各画像に関連付けられた位置データに基づいて画像のサブセット内の互いに関連する複数の画像を特定することにより、その画像のサブセットをリファインするように構成される。本明細書で用いられる場合、位置データは、全地球測位システム(global positioning system:GPS)データ、グローバル・システム・フォー・モバイル・コミュニケーションズ(Global System for Mobile Communications:GSM(登録商標))データ、制御平面位置決定(control plane localization)データ、または自己申告された位置データ等から成る。いくつかの実施形態において、上記位置データは、各画像と関連付けられたメタデータとして記憶される。上記位置データは、画像が撮影された位置を特定する。
【0057】
一例において、位置モジュール306は、上記画像が撮影された都市を上記画像と関連付けてもよい。他の一例において、位置モジュール306は、上記画像が撮影された住所を上記画像と関連付けてもよい。追加的な一例において、位置モジュール306は、上記画像が撮影されたGPS座標を上記画像と関連付けてもよい。様々な例において、位置モジュール306は、上記画像が撮影された位置を表す画像を、ユーザー定義の位置と関連付けてもよい。
【0058】
上記位置データに基づいて上記サブセット内の複数の画像が互いに関連するかどうかを判定するために、位置モジュール306は、その複数の画像間の距離が閾値距離より大きいか否かを判定する。いくつかの実施形態において、上記閾値距離は、フィート、ヤード、またはマイル等の数から成る。例えば、位置モジュール306が、一対の画像の位置データ間の距離が設定された閾値距離(10フィート)より大きいと判定した場合、位置モジュール306は、画像は互いに関連していないこと、すなわち、それらの画像の少なくとも1つは上記サブセットから除外される可能性があることを判定してもよい。上記閾値距離は、いくつかの実施形態においては、ユーザーにより設定される。
【0059】
特徴モジュール302、動きモジュール304、および位置モジュール306の各例において画像間で比較の対象とするデータは、いくつかの実施形態においては、時系列順(例えば、各画像に関連付けられたタイムスタンプに従った、画像が撮影された順)に比較される。例えば、5個の画像A〜Eから成るサブセットについて、画像Aのメタデータは画像Bのメタデータと比較され、画像Bのメタデータは画像Cのメタデータと比較され、さらに同様に比較されてもよい。したがって、画像のメタデータは、それが特徴データ、モーションセンサー・データ、および位置データのいずれであるかに拘らず、画像Aのメタデータは画像Eのメタデータとは比較されないような順序で比較される。このようにして、リファインの結果であるサブセットは、そのサブセットに含まれるべき画像を除外することなく、フォト・クラスターをより正確に表現するものとなる。
【0060】
図4は、複数の画像403についてのフォト・クラスターの検出及び圧縮処理の一実施形態を示す概略ブロック図である。一実施形態において、画像モジュール202は画像のセット402を受け取り、サブセットモジュール204は画像のセット402のサブセット404を特定する。サブセット404は、所定の時間範囲内に撮影された複数の画像403から成るものであってよく、この場合は、サブセットは500ミリ秒の時間枠内に撮影された画像から成る。
【0061】
画像サブセット404は、特徴データ、モーションセンサー・データ、および位置データのいずれか1つ以上に基づきさらにリファインされ、互いに関連する画像406から成る別のサブセットが特定されてもよい。例えば、画像408は、そのモーションセンサー・データが別の画像のモーションセンサー・データとの間に相関閾値より高い相関を持たない場合に除外されてもよい。他の一例では、画像410は、その特徴データが別の画像の特徴データと実質的に同様でない場合に上記サブセットから除外されてもよい。圧縮モジュール206は、リファインの結果であるサブセット406を圧縮して圧縮後の画像のサブセット412を生成する。画像モジュール202は、一実施形態においては、元の画像のセット402から、圧縮後のサブセット412に含まれる画像406を削除する。
【0062】
図5は、フォト・クラスターの検出及び圧縮の方法500の一実施形態を示す概略フローチャートである。一実施形態において、画像モジュール202は、カメラを用いて撮影された画像のセットを受け取る(502)。追加的な一実施形態において、サブセットモジュール204は、上記画像のセットのサブセットを、上記画像のセット内の各画像に関連付けられたタイムスタンプに基づいて特定する(504)。上記画像サブセットは、所定の時間範囲内のタイムスタンプを有する複数の画像から成ってもよい。圧縮モジュール206は、一実施形態においては、上記画像サブセットを圧縮して(506)、その圧縮後の画像サブセットが上記画像のサブセットよりも少ない記憶領域を使用するようにし、方法500は終了する。
【0063】
図6は、別のフォト・クラスターの検出及び圧縮の方法600の一実施形態を示す概略フローチャートである。一実施形態において、画像モジュール202は、カメラを用いて撮影された画像のセットを受け取る(602)。サブセットモジュール204は、いくつかの実施形態においては、上記画像のセットのサブセットを、上記画像のセット内の各画像に関連付けられたタイムスタンプに基づいて特定する(604)。上記画像サブセットは、所定の時間範囲内のタイムスタンプを有する複数の画像から成ってもよい。
【0064】
一実施形態において、特徴モジュール302は、上記サブセットの画像の1つ以上の特徴に基づいて上記画像サブセットをリファインし(606)、ある別の画像と実質的に同様な特徴を含まない画像が上記画像サブセットから除外されるようにする。追加的な一実施形態において、動きモジュール304は、各画像に関連付けられたモーションセンサー・データに基づいて上記画像サブセットをリファインし(608)、ある画像のモーションセンサー・データと別の画像のモーションセンサー・データとの相関が相関閾値を超える相関でない場合にその画像が上記サブセットから除外されるようにする。いくつかの実施形態において、位置モジュール306は、各画像に関連付けられた位置データに基づいて上記画像サブセットをリファインし(610)、ある画像の位置と別の画像の位置との距離が閾値距離より大きい場合にその画像が上記サブセットから除外されるようにする。
【0065】
圧縮モジュール206は、上記画像サブセットを圧縮して(612)、圧縮後の画像サブセットが上記画像サブセットよりも少ない記憶領域を使用するようにする。画像モジュール202は、上記圧縮後の画像サブセットに含まれる画像を元の上記画像のセットから除外ないし削除して利用可能な記憶スペースを生成して(614)、方法600は終了する。
【0066】
実施形態は他の具体的な形で実施されてもよい。説明した実施形態は、あらゆる点で単なる例示にすぎず、限定的に解釈してはならない。したがって、本発明の範囲は添付の特許請求の範囲によって示されており、明細書本文にはなんら拘束されない。特許請求と均等な意味および範囲にある全ての変更は、本発明の範囲内のものである。
図1
図2
図3
図4
図5
図6