JP6431934B2 - モバイル・コンピューティング・デバイスに格納された写真を編成するためのシステム、方法及び装置 - Google Patents

モバイル・コンピューティング・デバイスに格納された写真を編成するためのシステム、方法及び装置 Download PDF

Info

Publication number
JP6431934B2
JP6431934B2 JP2016575531A JP2016575531A JP6431934B2 JP 6431934 B2 JP6431934 B2 JP 6431934B2 JP 2016575531 A JP2016575531 A JP 2016575531A JP 2016575531 A JP2016575531 A JP 2016575531A JP 6431934 B2 JP6431934 B2 JP 6431934B2
Authority
JP
Japan
Prior art keywords
image
software application
database
mobile computing
computing device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016575531A
Other languages
English (en)
Other versions
JP2017530434A (ja
Inventor
ワン メン
ワン メン
チェン ユウシャン
チェン ユウシャン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of JP2017530434A publication Critical patent/JP2017530434A/ja
Application granted granted Critical
Publication of JP6431934B2 publication Critical patent/JP6431934B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/5854Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using shape and object relationship
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/51Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Library & Information Science (AREA)
  • Software Systems (AREA)
  • Image Analysis (AREA)
  • Processing Or Creating Images (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)

Description

関連出願の相互参照
本出願は、「SYSTEM,METHOD AND APPARATUS FOR ORGANIZING PHOTOGRAPHS STORED ON A MOBILE COMPUTING DEVICE」と題する、2014年6月24日に出願され、カリフォルニア州マウンテン・ビューのOrbeus社に譲渡され、その全体を参照により本明細書に援用される、米国特許出願第14/316,905号の利益及び優先権を主張する。本出願は、「SYSTEM,METHOD AND APPARATUS FOR SCENE RECOGNITION」と題する、2013年11月7日に出願され、カリフォルニア州マウンテン・ビューのOrbeus社に譲渡され、その全体を参照により本明細書に援用され、「SYSTEM,METHOD AND APPARATUS FOR SCENE RECOGNITION」と題する、2012年11月9日に出願され、カリフォルニア州マウンテン・ビューのOrbeus社に譲渡され、その全体を本明細書に援用される、米国特許出願第61/724,628号に優先権を主張する、米国特許出願第14/074,594に関する。また本出願は、2013年11月7日に出願され、カリフォルニア州マウンテン・ビューのOrbeus社に譲渡され、その全体を参照により本明細書に援用され、「SYSTEM,METHOD AND APPARATUS FOR FACIAL RECOGNITION」と題する、2013年6月20日に出願され、カリフォルニア州マウンテン・ビューのOrbeus社に譲渡され、その全体を本明細書に援用される、米国特許出願第61/837,210号に優先権を主張する、米国特許出願第14/074,615号に関する。
本開示は、デジタル・カメラを組み込むモバイル・コンピューティング・デバイスに格納された画像の編成及びカテゴリ化に関する。さらに特に、本開示は、デジタル・カメラを組み込むモバイル・コンピューティング・デバイス上で動作するソフトウェア、及びクラウド・サービスを介して動作し画像を自動的にカテゴリ化するソフトウェアを組み込むシステム、方法及び装置に関する。
画像認識は、コンピュータにより実行され、画像(写真またはビデオ・クリップのような)を解析し理解するプロセスである。一般的に画像は、感光性カメラを含む、センサにより生成される。各画像は、多数(数百万のような)の画素を含む。各画素は、画像内の特定の位置に対応する。加えて典型的に、各画素は、1つ以上のスペクトル帯、物理的手段(音波または電磁波の深度、吸収率または反射率のような)などでの光強度に対応する。典型的に画素は、色空間内のカラー・タプルとして表現される。たとえば、周知の赤、緑及び青(RGB)色空間において、一般的に各色は、3つの値をもつタプルとして表現される。RGBタプルの3つの値は、一緒に加えられRGBタプルにより表現された色を生成する赤、緑及び青を表す。
画素を記述するデータ(色のような)に加えて、また画像データは、画像内のオブジェクトを記述する情報を含むことができる。たとえば、画像内の人間の顔は、正面像、30°の左側像または45°の右側像であることができる。追加の実施例として、画像内のオブジェクトは、家屋または飛行機の代わりに、自動車である。画像を理解するには、画像データにより表現されたシンボル情報を解く必要がある。画像内の色、パターン、人間の顔、車両、航空機及び他のオブジェクト、シンボル、形態などを認識する特殊な画像認識技術を開発している。
またシーン理解または認識は、近年進んでいる。シーンとは、1つより多いオブジェクトを含む現実世界の周囲または環境のビューである。シーン画像は、さまざまなタイプの大多数の物理的なオブジェクト(人間、車両のような)を含むことが可能である。加えて、シーン内の個々のオブジェクトは、互いに、またはそれらの環境と相互作用する、またはこれらに関連する。たとえば、ビーチ・リゾートの写真は、3つのオブジェクト、空、海及びビーチを含むことができる。追加の実施例として、一般的に教室のシーンは、机、椅子、生徒及び教師を含む。シーン理解は、交通監視、侵入検知、ロボット開発、ターゲット広告などのような、さまざまな状況で非常に有益であることが可能である。
顔認識は、コンピュータによりデジタル画像(写真のような)またはビデオ・フレーム(複数を含む)内の人を識別または検証するプロセスである。顔検出及び認識技術は、たとえば、空港、通り、建物の入口、スタジアム、ATM(現金自動預け払い機)、ならびに他の公的及び私的環境で広く展開される。通常、顔認識は、画像を解析して理解するコンピュータ上で動作するソフトウェア・プログラムまたはアプリケーションにより実行される。
画像内の顔を認識することは、画像データにより表現されたシンボル情報を解く必要がある。特殊な画像認識技術は、画像内の人間の顔を認識するために展開されている。たとえば、いくつかの顔認識アルゴリズムは、人間の顔に関する画像から特徴を抽出することで顔特徴を認識する。これらのアルゴリズムは、目、鼻、口、顎、耳などの相対的な位置、大きさ及び形状を分析することができる。次に抽出された特徴を使用して、特徴をマッチングすることで画像内の顔を識別する。
一般的に画像認識ならびに特に顔及びシーン認識は、近年進んでいる。たとえば、主成分分析(「PCA」)アルゴリズム、線形判別分析(「LDA」)アルゴリズム、一個抜き交差検証(「LOOCV」)アルゴリズム、K最近傍(「KNN」)アルゴリズム及び粒子フィルタ・アルゴリズムは、顔及びシーン認識のために展開され適用されている。これらの例示的なアルゴリズムの説明は、本明細書とともに提出された資料を参照して本明細書で援用される、「Machine Learning,An Algorithmic Perspective」、第3、8、10、15章、47〜90、167〜192、221〜245、333〜361頁、Marsland、CRCプレス、2009でより詳しく説明される。
近年の開発にもかかわらず、顔認識及びシーン認識は、困難な問題であることがわかっている。この困難の中核となるのは、画像の変化である。たとえば、同じ場所及び時間で、典型的に2つの異なるカメラは、レンズ及びセンサでの変化のような、カメラ自体の差により、異なる光強度及びオブジェクト形状の変化に関する2枚の写真を制作する。加えて、個々のオブジェクト間の空間的な関係及び相互作用は、無限個の変化を有する。さらに、1人の顔は、無限個の異なる画像にキャストされることができる。現在の顔認識技術は、顔画像を正面像から20°超の角度で撮るときにあまり正確ではなくなる。追加の実施例として、現在の顔認識システムは、表情の変化に対処するためには有効ではない。
画像認識への従来のアプローチは、入力画像から画像特徴を導出すること、及び導出された画像特徴を既知の画像の画像特徴と比較することである。たとえば、顔認識への従来のアプローチは、入力画像から顔特徴を導出すること、及び導出された画像特徴を既知の画像の顔特徴と比較することである。これらの比較結果は、入力画像及び既知の画像のうちの1つの間のマッチングに影響する。一般的に顔またはシーンを認識する従来のアプローチは、認識処理効率のためにマッチング精度を犠牲にする、またはその逆である。
人々は、休暇中に特有の滞在、史跡への週末の訪問または家族のイベントについてのフォト・アルバムのような、フォト・アルバムを手作業で作成する。今日のデジタル世界において、手作業のフォト・アルバム作成プロセスは、時間がかかり退屈であることがわかる。スマートフォン及びデジタル・カメラのような、デジタル・デバイスは、通常大きな記憶容量を有する。たとえば、32ギガバイト(「GB」)のストレージ・カードは、ユーザが数千枚の写真を撮ること、及び数時間のビデオを録画することを可能にする。ユーザは、自身の写真及びビデオを共有してどこでもアクセスすることができるようにソーシャル・ウェブサイト上(Facebook、Twitterなど)及びコンテンツ・ホスティング・サイト上(Dropbox及びPicassaなど)に頻繁にアップロードする。デジタル・カメラ・ユーザは、特定の基準に基づきフォト・アルバムを生成する自動システム及び方法を待望する。加えて、ユーザは、自身の写真を認識し、認識結果に基づきフォト・アルバムを自動的に生成するシステム及び方法を切望する。
モバイル・デバイスをより大きく信頼するので、ユーザは、今自身のモバイル・デバイス上でフォト・ライブラリ全体を維持することが多い。モバイル・デバイス上で利用可能なメモリを莫大かつ急速に増加させるにつれ、ユーザは、モバイル・デバイス上に数千、さらに数万枚の写真を格納することが可能である。このように大量の写真があるため、未編成の写真集の中から特定の写真を探すことは、ユーザにとって不可能とは言えないまでも、困難である。
開示されたシステム、方法及び装置の目的
したがって、モバイル・デバイス上で画像を編成するためのシステム、装置及び方法を提供することは、本開示の目的である。
本開示の別の目的は、クラウド・サービスにより決定されたカテゴリに基づきモバイル・デバイスで画像を編成するためのシステム、装置及び方法を提供することである。
本開示の別の目的は、ユーザがモバイル・コンピューティング・デバイスに格納された画像を探すことを可能にするためのシステム、装置及び方法を提供することである。
本開示の別の目的は、ユーザが検索文字列を使用してモバイル・コンピューティング・デバイスに格納された画像を探すことを可能にするためのシステム、装置及び方法を提供することである。
本開示の他の利点は、当業者には明らかであろう。しかしながら、システムまたは方法がすべての列挙された利点を達成することなく本開示を実施することが可能であること、及び保護された本開示が特許請求の範囲により定められることを理解するべきである。
一般的に言えば、さまざまな実施形態に従い、本開示は、モバイル・コンピューティング・デバイス上にある画像リポジトリからの画像を編成して取得するための画像編成システムを提供する。モバイル・コンピューティング・デバイスは、たとえば、スマートフォン、タブレット・コンピュータまたはウェアラブル・コンピュータであることが可能であり、プロセッサ、ストレージ・デバイス、ネットワーク・インタフェース及びディスプレイを含む。モバイル・コンピューティング・デバイスは、1つ以上のサーバ及び1つのデータベースを含むことが可能であるクラウド・コンピューティング・プラットフォームとインタフェースで接続することが可能である。
モバイル・コンピューティング・デバイスは、たとえば、モバイル・コンピューティング・デバイス上でファイル・システムを使用して、実装されることが可能である画像リポジトリを含む。またモバイル・コンピューティング・デバイスは、画像リポジトリ内の画像から小規模モデルを作成するために適合される第一ソフトウェアを含む。この小規模モデルは、たとえば、サムネイルまたは画像シグネチャであることが可能である。一般的に小規模モデルは、小規模モデルを作成した画像のインディシアを含む。次に小規模モデルは、モバイル・コンピューティング・デバイスからクラウド・プラットフォームへ送信される。
クラウド・プラットフォームは、小規模モデルを受信するように適合される第二ソフトウェアを含む。この第二ソフトウェアは、小規模モデルを小規模モデルから構築した画像のインディシアを抽出するように適合される。さらに第二ソフトウェアは、画像内で認識されたシーン・タイプ及び認識される任意の顔に対応する小規模モデルからタグ・リストを作成するように適合される。第二ソフトウェアは、作成されたタグ・リスト及び抽出されたインディシアを含むパケットを構築する。次にこのパケットは、モバイル・コンピューティング・デバイスへ返送される。
次にモバイル・コンピューティング・デバイス上で動作する第一ソフトウェアは、パケットからインディシア及びタグ・リストを抽出し、モバイル・コンピューティング・デバイス上のデータベース内でこのタグ・リストをインディシアと関連付ける。
次にユーザは、モバイル・コンピューティング・デバイス上で動作して画像リポジトリ内に格納された画像を検索する第三ソフトウェアを使用することが可能である。特に、ユーザは、自然言語プロセッサにより構文解析され、モバイル・コンピューティング・デバイス上でデータベースを検索するために使用される、検索文字列を提出することが可能である。この自然言語プロセッサは、順序付けられたタグ・リストを返すため、最も関連性の高いものから最も関連性の低いものへの順序で画像を表示することが可能である。
本開示の特有な特徴が行われ使用されることができる特許請求の範囲、本発明自体及び方式内で特に指摘されるが、本明細書の一部を形成する添付の図面と関連して行われる以下の説明を参照することでより良く理解されることができ、その中でいくつかの図を通して、同様の参照番号は、同様の部品を指す。
本開示に従い構築された顔認識システムの簡略化されたブロック図である。 本開示の教示に従い最終顔特徴を導出するプロセスを描写するフローチャートである。 本開示の教示に従い顔認識モデルを導出するプロセスを描写するフローチャートである。 本開示の教示に従い画像内の顔を認識するプロセスを描写するフローチャートである。 本開示の教示に従い画像内の顔を認識するプロセスを描写するフローチャートである。 本開示の教示に従い顔認識サーバ・コンピュータ及びクライアント・コンピュータが画像内の顔を共同して認識するプロセスを描写するシーケンス図である。 本開示の教示に従い顔認識サーバ・コンピュータ及びクライアント・コンピュータが画像内の顔を共同して認識するプロセスを描写するシーケンス図である。 本開示の教示に従い顔認識クラウド・コンピュータ及びクラウド・コンピュータが画像で顔を共同して認識するプロセスを描写するシーケンス図である。 本開示の教示に従い顔認識サーバ・コンピュータがソーシャル・メディア・ネットワーキング・ウェブ・ページに掲載された写真内の顔を認識するプロセスを描写するシーケンス図である。 本開示の教示に従い顔認識コンピュータが顔認識をリファインする反復プロセスを描写するフローチャートである。 本開示の教示に従い顔認識コンピュータがビデオ・クリップから顔認識モデルを導出するプロセスを描写するフローチャートである。 本開示の教示に従い顔認識コンピュータがビデオ・クリップ内の顔を認識するプロセスを描写するフローチャートである。 本開示の教示に従い顔認識コンピュータが画像内の顔を検出するプロセスを描写するフローチャートである。 本開示の教示に従い顔認識コンピュータが顔画像内の顔特徴位置を判定するプロセスを描写するフローチャートである。 本開示の教示に従い顔認識コンピュータが2つの画像特徴の類似性を判定するプロセスを描写するフローチャートである。 本開示の教示に従うクライアント・コンピュータの斜視図である。 本開示に従い構築された画像処理システムの簡略化されたブロック図である。 本開示の教示に従い画像処理コンピュータが画像を認識するプロセスを描写するフローチャートである。 本開示の教示に従い画像処理コンピュータが画像のシーン・タイプを判定するプロセスを描写するフローチャートである。 本開示の教示に従い画像処理コンピュータが画像のシーン・タイプを判定するプロセスを描写するフローチャートである。 本開示の教示に従い画像処理コンピュータが1セットの既知の画像から画像特徴及び重み付けを抽出するプロセスを描写するフローチャートである。 本開示の教示に従い画像処理コンピュータ及びクライアント・コンピュータがシーン画像を共同して認識するプロセスを描写するシーケンス図である。 本開示の教示に従い画像処理コンピュータ及びクライアント・コンピュータがシーン画像を共同して認識するプロセスを描写するシーケンス図である。 本開示の教示に従い画像処理コンピュータ及びクラウド・コンピュータがシーン画像を共同して認識するプロセスを描写するシーケンス図である。 本開示の教示に従い画像処理コンピュータがソーシャル・メディア・ネットワーキング・ウェブ・ページに掲載された写真内のシーンを認識するプロセスを描写するシーケンス図である。 本開示の教示に従い画像処理コンピュータがウェブ・ビデオ・サーバにホストされたビデオ・クリップ内のシーンを認識するプロセスを描写するシーケンス図である。 本開示の教示に従い画像処理コンピュータがシーン理解をリファインする反復プロセスを描写するフローチャートである。 本開示の教示に従い画像処理コンピュータがシーン理解をリファインする反復プロセスを描写するフローチャートである。 本開示の教示に従い画像処理コンピュータが画像のタグを処理するプロセスを描写するフローチャートである。 本開示の教示に従い画像処理コンピュータがGPS座標に基づき地名を判定するプロセスを描写するフローチャートである。 本開示の教示に従い画像処理コンピュータが画像上でシーン認識及び顔認識を実行するプロセスを描写するフローチャートである。 本開示の教示に従い地図上に表示された写真で地図を示す2つのサンプル・スクリーンショットである。 本開示の教示に従い画像処理コンピュータが写真検索結果に基づきフォト・アルバムを作成するプロセスを描写するフローチャートである。 本開示の教示に従い画像処理コンピュータがフォト・アルバムを自動的に作成するプロセスを描写するフローチャートである。 開示された画像編成システムの1部を実装するモバイル・コンピューティング・デバイスのシステム図である。 開示された画像編成システムの1部を実装するクラウド・コンピューティング・プラットフォームのシステム図である。 開示された画像編成システムの1部を実装するモバイル・コンピューティング・デバイス及びクラウド・コンピューティング・プラットフォーム上で動作するソフトウェア・コンポーネントのシステム図である。 開示された画像編成システムの1部を実装するためにモバイル・コンピューティング・デバイス上で動作するソフトウェア・コンポーネントのシステム図である。 開示された画像編成システムの1部を実装するモバイル・コンピューティング・デバイス上で動作するプロセスのフローチャートである。 開示された画像編成システムの1部を実装するモバイル・コンピューティング・デバイス上で動作するプロセスのフローチャートである。 開示された画像編成システムの1部を実装するクラウド・コンピューティング・プラットフォーム上で動作するプロセスのフローチャートである。 開示された画像編成システムの1部を実装するモバイル・コンピューティング・デバイス及びクラウド・コンピューティング・プラットフォームの動作を描写するシーケンス図である。 開示された画像編成システムの1部を実装するモバイル・コンピューティング・デバイス上で動作するプロセスのフローチャートである。 ユーザからカスタム検索文字列及びエリア・タグを受け取るモバイル・コンピューティング・デバイス上で動作するプロセスのフローチャートである。 データベース内にカスタム検索文字列及びエリア・タグを格納するクラウド・コンピューティング・プラットフォーム上で動作するプロセスのフローチャートである。
図面及び特に図1に移り、1つ以上の画像内の顔を認識または識別するための顔認識システム100を示す。このシステム100は、画像、画像特徴、認識顔モデル(または略してモデル)及びラベルを格納するデータベース104に結合された顔認識サーバ・コンピュータ102を含む。1つのラベル(一意の番号または名前のような)は、人及び/またはこの人の顔を識別する。複数のラベルは、データベース104内でデータ構造により表現されることが可能である。コンピュータ102は、たとえば、プロセッサのインテルXeonファミリの変種のいずれか、またはプロセッサのAMD Opteronファミリの変種のいずれかのような、1つ以上のプロセッサを含む。加えて、コンピュータ102は、たとえば、ハード・ドライブのような、ギガビット・イーサネット・インタフェース、いくらかのメモリ容量、及びいくらかのストレージ容量のような、1つ以上のネットワーク・インタフェースを含む。1つの実装において、データベース104は、たとえば、多数の画像、これらの画像から導出された画像特徴及びモデルを格納する。さらにコンピュータ102は、インターネット110のような、ワイド・エリア・ネットワークに結合される。
本明細書で使用されるように、画像特徴は、一片の画像情報を意味し、典型的に画像に適用された動作(特徴抽出または特徴検出のような)の結果を指す。例示的な画像特徴は、色ヒストグラム特徴、ローカル・バイナリ・パターン(「LBP」)特徴、マルチスケール・ローカル・バイナリ・パターン(「MS-LBP」)特徴、勾配方向ヒストグラム(「HOG」)及びスケール不変特徴量変換(「SIFT」)特徴である。
インターネット110経由で、コンピュータ102は、クライアント(またユーザと本明細書で言われる)120により使用されたクライアントまたは消費者コンピュータ122(図15で描写されたデバイスのうちの1つであることが可能である)のような、さまざまなコンピュータから顔画像を受信する。図15の各デバイスは、ハウジング、プロセッサ、ネットワーキング・インタフェース、ディスプレイ・スクリーン、いくらかのメモリ容量(8GB RAMのような)及びいくらかのストレージ容量を含む。加えて、デバイス1502及び1504は、タッチ・パネルを各々含む。あるいは、コンピュータ102は、高速ユニバーサル・シリアル・バス(USB)・リンクのような、直接リンクを介して顔画像を取得する。コンピュータ102は、受信した画像を解析及び理解し、これらの画像内の顔を認識する。さらに、コンピュータ102は、画像認識モデル(または略してモデル)をトレーニングするために同じ人の顔を含むビデオ・クリップまたは画像バッチを取得または受信する。
さらに、顔認識コンピュータ102は、ウェブ・サーバ112及び114のような、インターネット110経由で他のコンピュータから画像を受信することができる。たとえば、コンピュータ122は、コンピュータ102へ、クライアント120のFacebookのプロフィール写真(また写真及び絵と本明細書で交換可能に言われる)のような、顔画像へURL(ユニフォーム・リソース・ロケータ)を送信する。これに応じて、コンピュータ102は、ウェブ・サーバ112から、URLが指す画像を取得する。追加の実施例として、コンピュータ102は、ウェブ・サーバ114から、1セット(1つ以上を意味する)のフレームまたは静止画像を含む、ビデオ・クリップを要求する。ウェブ・サーバ114は、Dropboxのような、ファイル及びストレージ・ホスティング・サービスにより提供された任意のサーバ(複数を含む)であることが可能である。さらに実施形態において、コンピュータ102は、ウェブ・サーバ112及び114をクロールし、写真及びビデオ・クリップのような、画像を取得する。たとえば、Perl言語で書き込まれたプログラムは、コンピュータ102上で実行され、画像を取得するためにクライアント120のFacebookページをクロールすることが可能である。1つの実装において、クライアント120は、自身のFacebookまたはDropboxアカウントにアクセスするためのパーミッションを提供する。
本教示の1つの実施形態において、画像内の顔を認識するために、顔認識コンピュータ102は、すべての顔認識ステップを実行する。別の実装において、クライアント-サーバ・アプローチを使用して顔認識を実行する。たとえば、クライアント・コンピュータ122がコンピュータ102に顔を認識するように要求するときに、クライアント・コンピュータ122は、画像から特定の画像特徴を生成し、生成された画像特徴をコンピュータ102へアップロードする。このような事例において、コンピュータ102は、画像を受信せずに、またはアップロードされた画像特徴を生成せずに顔認識を実行する。あるいは、コンピュータ122は、データベース104(コンピュータ102を介して直接的、または間接的のいずれか一方で)から所定の画像特徴及び/または他の画像特徴情報をダウンロードする。それに応じて、画像内の顔を認識するために、コンピュータ122は、顔認識を独立して実行する。このような事例において、コンピュータ122は、コンピュータ102に画像または画像特徴をアップロードすることを回避する。
さらに実装において、顔認識をクラウド・コンピューティング環境152内で実行する。クラウド152は、米国の各海岸及び西海岸の州のような、1つより多い地理的領域に分散される、多数の、及び異なるタイプのコンピューティング・デバイスを含むことができる。たとえば、別の顔認識サーバ106は、コンピュータ122によりアクセス可能である。サーバ102及び106は、並列顔認識を提供する。サーバ106は、画像、画像特徴、モデル、ユーザ情報などを格納するデータベース108にアクセスする。これらのデータベース104、108は、データの複製、バックアップ、インデックス作成などを支援する分散されたデータベースであることが可能である。1つの実装において、データベース104は、画像への参照(物理パス及びファイル名のような)を格納するが、物理画像は、データベース104以外に格納されたファイルである。このような事例において、本明細書で使用されるように、データベース104は、依然として画像を格納するとみなされる。追加の実施例として、クラウド152内のサーバ154、ワークステーション・コンピュータ156及びデスクトップ・コンピュータ158は、異なる州または国に物理的に設置され、コンピュータ102と共同して顔画像を認識する。
さらに実装において、サーバ102及び106の両方は、負荷分散デバイス118の基になり、それらの負荷に基づきサーバ102及び106間の顔認識タスク/要求を指示する。顔認識サーバ上の負荷は、たとえば、サーバが取り扱っている、または処理している現在の顔認識タスクの数として定義される。またこの負荷は、サーバのCPU(中央処理装置)負荷として定義されることが可能である。さらに他の実施例として、負荷分散デバイス118は、顔認識要求を取り扱うサーバをランダムに選択する。
図2は、顔認識コンピュータ102が最終的な顔特徴を導出するプロセス200を描写する。202で、コンピュータ102上で動作するソフトウェア・アプリケーションは、たとえば、データベース104、クライアント・コンピュータ122またはウェブ・サーバ112若しくは114から画像を取得する。取得された画像は、プロセス200についての入力画像である。204で、ソフトウェア・アプリケーションは、画像内で人間の顔を検出する。ソフトウェア・アプリケーションは、いくつかの技術を利用して、本明細書とともに提出された資料を参照して本明細書で援用される、「Detecting Faces in Images:A Survey」、Ming-Hsuan Yangら、IEEE Transactions on Pattern Analysis and machine Intelligence、Vol.24、No.1、2002年1月に記述されるような、知識ベースのトップダウン方法、不変な顔特徴に基づくボトムアップ方法、テンプレート・マッチング方法及び外観ベースの方法のような、入力画像内の顔を検出することが可能である。
1つの実装において、ソフトウェア・アプリケーションは、1200で図12に示される、多相アプローチを使用して画像(202で取得された)内で顔を検出する。ここで図12に移り、1202で、ソフトウェア・アプリケーションは、画像上で高速顔検出プロセスを実行し、顔が画像内に存在するかどうかを判定する。1つの実装において、高速顔検出プロセス1200は、特徴のカスケードに基づく。高速顔検出方法の1つの実施例は、本明細書とともに提出された資料を参照して本明細書で援用される、「Rapid Object Detection using a Boosted Cascade of Simple Features」、Paul Violaら、Computer Vision and Pattern Recognition 2001、IEEE Computer Society Conference、Vol.1、2001に記述されるような、カスケード接続検出プロセスである。カスケード接続検出プロセスは、ブーストされた単純な特徴のカスケードを使用する高速顔検出方法である。しかしながら、高速顔検出プロセスは、精度を犠牲にして速度を得る。その結果、例示的な実装は、多相検出方法を用いる。
1204で、ソフトウェア・アプリケーションは、1202で顔を検出するかどうかを判定する。そうではない場合に、1206で、ソフトウェア・アプリケーションは、画像上で顔認識を終了する。あるいは、1208で、ソフトウェア・アプリケーションは、ディープ・ラーニング・プロセスを使用して顔認識の第二フェーズを実行する。ディープ・ラーニング・プロセスまたはアルゴリズム、たとえば、深層信念ネットワークは、入力階層モデルを学習しようとする機械学習方法である。これらの層は、より高レベルの概念をより低レベルの概念から導出する別個のレベルの概念に対応する。さらにさまざまなディープ・ラーニング・アルゴリズムは、本明細書とともに提出された資料を参照して本明細書で援用される、「Learning Deep Architectures for AI」、Yoshua Bengio、Foundations and Trends in Machine Learning、Vol.2、No.1、2009に記述される。
1つの実装において、最初にモデルは、これらのモデルを入力画像に使用または適用して顔が画像内に存在するかどうかを判定する前に、顔を含む1セットの画像からトレーニングされる。1セットの画像からモデルをトレーニングするため、ソフトウェア・アプリケーションは、1セットの画像からLBP特徴を抽出する。代替の実施形態において、異なる寸法の異なる画像特徴またはLBP特徴を1セットの画像から抽出する。次に畳み込み深層信念ネットワークで2層を含むディープ・ラーニング・アルゴリズムを抽出されたLBP特徴に適用し、新規の特徴を学習する。その後SVM方法を使用し、学習された新規の特徴でモデルをトレーニングする。
次にトレーニングされたモデルを画像から学習された新規の特徴に適用し、画像内の顔を検出する。たとえば、深層信念ネットワークを使用して画像の新規の特徴を学習する。1つの実装において、1つまたは2つのモデルをトレーニングする。たとえば、1つのモデル(また「顔である」モデルと本明細書で言われる)を適用し、顔が画像内に存在するかどうかを判定することが可能である。顔であるモデルをマッチングする場合に、画像内で顔を検出する。追加の実施例として、別のモデル(また、「顔ではない」モデルと本明細書で言われる)をトレーニングして使用し、顔が画像内に存在しないかどうかを判定する。
1210で、ソフトウェア・アプリケーションは、1208で顔を検出するかどうかを判定する。そうではない場合に、1206で、ソフトウェア・アプリケーションは、この画像で顔認識を終了する。あるいは、1212で、ソフトウェア・アプリケーションは、画像で顔検出の第三フェーズを実行する。最初にモデルは、1セットのトレーニング画像から抽出されたLBP特徴からトレーニングされる。LBP特徴を画像から抽出した後に、モデルを画像のLBP特徴に適用し、顔が画像内に存在するかどうかを判定する。またモデル及びLBP特徴は、それぞれ第三フェーズ・モデル及び特徴と本明細書で言われる。1214で、ソフトウェア・アプリケーションは、顔を1212で検出したかどうかを確認する。そうではない場合に、1206で、ソフトウェア・アプリケーションは、この画像での顔認識を終了する。あるいは、1216で、ソフトウェア・アプリケーションは、検出された顔を含む画像内の部分を識別し、これにマーク付けする。1つの実装において、顔部分(また顔ウィンドウと本明細書で言われる)は、矩形領域である。さらに実装において、顔ウィンドウは、異なる人々の異なる顔について、100×100画素のような、固定されたサイズを有する。さらに実装において、1216で、ソフトウェア・アプリケーションは、検出された顔の、顔ウィンドウの中点のような、中心点を識別する。1218で、ソフトウェア・アプリケーションは、顔が画像内に検出される、または存在することを示す。
図2に戻り、顔を入力画像内で検出した後、206で、ソフトウェア・アプリケーションは、目、鼻、口、頬、顎などの中点のような、重要な顔特徴点を判定する。さらに、重要な顔特徴点は、たとえば、顔の中点を含むことができる。さらに実装において、206で、ソフトウェア・アプリケーションは、重要な顔特徴の、サイズ及び輪郭のような、寸法を測定する。たとえば、206で、ソフトウェア・アプリケーションは、左目の頂点、底点、左点及び右点を測定する。1つの実装において、各点は、入力画像の、左上角部のような、1つの角部に関する1組の画素番号である。
顔特徴位置(顔特徴点及び/または寸法を意味する)を図13で図示されるようなプロセス1300により測定する。ここで図13に移り、1302で、ソフトウェア・アプリケーションは、1セットのソース画像から1セットの顔特徴(目、鼻、口などのような)内の各顔特徴についての1セットのLBP特徴テンプレートを導出する。1つの実装において、1つ以上のLBP特徴をソース画像から導出する。各1つ以上のLBP特徴は、顔特徴に対応する。たとえば、1つの左目LBP特徴は、ソース画像内の顔の左目を含む、100×100のような、画像領域(またLBP特徴テンプレート画像サイズと本明細書で言われる)から導出される。このような顔特徴について導出されたLBP特徴は、LBP特徴テンプレートと本明細書で集合的に言われる。
1304で、ソフトウェア・アプリケーションは、各LBP特徴テンプレートについて畳み込み値(「p1」)を計算する。この値p1は、たとえば、左目のような、対応する顔特徴がソース画像内の位置(m,n)に出現する確率を示す。1つの実装において、LBP特徴テンプレートFtについて、反復プロセスを使用して対応する値p1を計算する。mt及びnt をLBP特徴テンプレートのLBP特徴テンプレート画像サイズとする。加えて、(u,v)をソース画像内の画素の座標または位置とする。(u,v)をソース画像の左上角部から計測する。各画像領域、(u,v)-(u+mt,v+nt)について、ソース画像内で、LBP特徴Fsを導出する。次にFt及びFsの内積、p(u,v)を計算する。p(u,v)は、対応する顔特徴(左目のような)がソース画像内の位置(u,v)に出現する確率とみなされる。p(u,v)の値を正規化することが可能である。次に(m,n)をargmax(p(u,v))として測定する。argmaxは、最大値点集合を表す。
通常、顔中心点(または別の顔の地点)に対する、口または鼻のような顔特徴の相対位置は、ほとんどの顔について同じである。したがって、各顔特徴は、対応する共通相対位置を有する。1306で、ソフトウェア・アプリケーションは、共通相対位置で、対応する顔特徴が検出された顔に出現する、または存在する顔特徴確率(「p2」)を推定し測定する。一般的に、顔を含む画像内の特定の顔特徴の位置(m,n)は、確率分布p2(m,n)に従う。そこで確率分布p2(m,n)が2次元ガウス分布であり、顔特徴が存在する最も可能性の高い位置は、ガウス分布のピークが位置するところである。このような2次元ガウス分布の平均及び分散は、既知の1セットの顔画像での実証的な顔特徴位置に基づき確立されることが可能である。
1308で、検出された顔内の各顔特徴について、ソフトウェア・アプリケーションは、顔特徴確率及び対応するLBP特徴テンプレートの各畳み込み値を使用して各位置(m,n)についてのマッチング・スコアを計算する。たとえば、マッチング・スコアは、p1(m,n)及びp2(m,n)の積、すなわち、p1×p2である。1310で、検出された顔の各顔特徴について、ソフトウェア・アプリケーションは、顔特徴の最高マッチング・スコアを決定する。1312で、検出された顔の各顔特徴について、ソフトウェア・アプリケーションは、最高マッチング・スコアに対応するLBP特徴テンプレートに対応する顔特徴位置を選択することで顔特徴位置を決定する。上記の実施例の事例において、対応する顔特徴の位置としてargmax(p1(m,n)*p2(m,n))をとる。
図2に戻り、重要な顔特徴の決定された地点及び/または寸法に基づき、208で、ソフトウェア・アプリケーションは、顔を複数の顔特徴部位、たとえば、左目、右目及び鼻に分ける。1つの実装において、各顔の部位は、17×17画素のような、固定されたサイズの長方形または正方形領域である。各顔特徴部位について、210で、ソフトウェア・アプリケーションは、1セットの画像特徴、たとえば、LBPまたはHOG特徴を抽出する。抽出されることが可能な別の画像特徴は、210で、ピラミッド変換ドメイン(「PLBP」)へ拡張されたLBPである。階層的な空間ピラミッドのLBP情報をカスケード接続することで、PLBP記述子は、テクスチャ解像度の変化を考慮に入れる。PLBP記述子は、テクスチャ表現に有効である。
よく単一タイプの画像特徴は、画像から関連情報を得るために、または入力画像内の顔を認識するために十分ではない。代替の2つ以上の異なる画像特徴を画像から抽出する。一般的に2つ以上の異なる画像特徴は、単一の画像特徴ベクトルとして編成される。1つの実装において、多数(10以上のような)の画像特徴は、顔特徴部位から抽出される。たとえば、1×1画素セル及び/または4×4画素セルに基づくLBP特徴は、顔特徴部位から抽出される。
各顔特徴部位について、212で、ソフトウェア・アプリケーションは、1セットの画像特徴をサブパート特徴に結合する。たとえば、1セットの画像特徴をM×1または1×Mベクトルに結合し、Mは、このセット内の画像特徴数である。214で、ソフトウェア・アプリケーションは、すべての顔特徴部位のM×1または1×Mベクトルを顔についての全特徴に結合する。たとえば、N(6のような正の整数)個の顔特徴部位があり、全特徴は、(N*M)×1ベクトルまたは1×(N*M)ベクトルである。本明細書で使用されるように、N*Mは、整数N及びMの乗算積を表す。216で、ソフトウェア・アプリケーションは、全特徴で次元削減を実行し、入力画像内の顔について最終特徴を導出する。最終特徴は、全特徴の1サブセットの画像特徴である。1つの実装において、216で、ソフトウェア・アプリケーションは、全特徴にPCAアルゴリズムを適用し、1サブセットの画像特徴を選択してこの1サブセットの画像特徴内の各画像特徴について画像特徴重み付けを導出する。画像特徴重み付けは、1サブセットの画像特徴に対応し、画像特徴重み付けメトリックを含む。
PCAは、本質的に高次元である1セットのデータをH次元に削減可能である単純な方法であり、Hは、ほとんどのより高次元のデータを含む超平面の次元数の推定値である。データ・セット内の各データ要素は、共分散行列の1セットの固有ベクトルにより表される。本教示に従い、1サブセットの画像特徴を選択し、全特徴の画像特徴を近似的に表す。1サブセットの画像特徴内の画像特徴のいくつかは、顔認識内の他のものより重要である可能性がある。さらにこのようにして、1セットの固有値は、画像特徴重み付けメトリック、すなわち、画像特徴距離メトリックを示す。PCAは、本明細書とともに提出された資料を参照して本明細書で援用される、「Machine Learning and Pattern Recognition Principal Component Analysis」、David Barber、2004で記述される。
数学的に、PCAを大規模な1セットの入力画像に適用し、画像特徴距離メトリックを導出することが可能であるプロセスは、次のように表されることが可能である。
最初に、入力データの平均値(m)及び共分散行列(S)を計算する。
最大固有値を含む共分散行列(S)の固有ベクトルe1,...,eMを配置する。この行列E=[e1,...,eM]は、その列を含む最大固有ベクトルで構成される。
より高次の各データ点yμのより低次元な表現は、次の式で決定されることが可能である。
別の実装において、ソフトウェア・アプリケーションは、LDAを全特徴に適用し、1サブセットの画像特徴を選択して対応する画像特徴重み付けを導出する。さらに実装において、218で、ソフトウェア・アプリケーションは、最終特徴及び対応する画像特徴重み付けをデータベース104内に格納する。加えて、218で、ソフトウェア・アプリケーションは、最終特徴を入力画像内の顔を識別するラベルと関連付けることで最終特徴にラベル付けする。1つの実装において、関連付けは、リレーショナル・データベースを含む表内の記録により表現される。
図3を参照して、サーバ・コンピュータ102で動作するソフトウェア・アプリケーションにより実行されるモデル・トレーニング・プロセス300を図示する。302で、ソフトウェア・アプリケーションは、クライアント120のような、既知の人の顔を含む1セットの異なる画像を取得する。たとえば、クライアント・コンピュータ122は、1セットの画像をサーバ102またはクラウド・コンピュータ154にアップロードする。追加の実施例として、クライアント・コンピュータ122は、サーバ102へ、サーバ112にホストされた1セットの画像を指す、1セットのURLをアップロードする。次に、サーバ102は、サーバ112から1セットの画像を取得する。各取得された画像について、304で、ソフトウェア・アプリケーションは、たとえば、プロセス200の要素を実行することで最終特徴を抽出する。
306で、ソフトウェア・アプリケーションは、1セットの最終特徴に1つ以上のモデル・トレーニング・アルゴリズム(SVMのような)を実行し、顔認識について認識モデルを導出する。認識モデルは、顔をより正確に表現する。308で、認識モデルをデータベース104に格納する。加えて、308で、ソフトウェア・アプリケーションは、データベース104に、認識モデルと関連した顔を識別する、認識モデル及びラベル間の関連付けを格納する。換言すれば、308で、ソフトウェア・アプリケーションは、認識モデルにラベル付けする。1つの実装において、関連付けは、リレーショナル・データベース内の表での記録により表現される。
例示的なモデル・トレーニング・アルゴリズムは、K平均クラスタリング、サポート・ベクタ・マシン(「SVM」)、メトリック・ラーニング、ディープ・ラーニング及びその他のものである。K平均クラスタリングは、観測値(すなわち、本明細書でモデル)を、各観測値が最も近い平均値を有するクラスタに属するk(正の整数)クラスタに分割する。さらにK平均クラスタリングの概念は、次の式により図示される。
1セットの観測値(x1,x2,...,xn)をkセット{S1,S2,...,Sk}にパーティション化する。これらのkセットは、クラスタ内の平方和を最小にするように決定される。通常、K平均クラスタリング方法は、2つのステップ、割り当てステップ及び更新ステップ間の反復方式で実行される。最初の1セットのk平均値m1 (1),...,mk (1)の場合、2つのステップを以下で示す。
このステップ中に、各xpを厳密に1つのS(t)へ割り当てる。次のステップは、新規のクラスタ内の観測値の重心である新規の平均値を計算する。
1つの実装において、K平均クラスタリングを使用して、顔をグループ化し、間違った顔を削除する。たとえば、クライアント120は、顔を含む五十(50)枚の画像をアップロードし、間違って、たとえば、誰かの顔を含む三(3)枚の画像をアップロードしたかもしれない。クライアント120の顔についての認識モデルをトレーニングするために、アップロードされた画像からの認識モデルをトレーニングするときに50枚の画像から3枚の間違った画像を削除したい。追加の実施例として、クライアント120が異なる人々の多数の顔画像をアップロードするときに、K平均クラスタリングを使用して、これらの画像内に含まれた顔に基づき多数の画像をグループ化する。
SVM方法を使用し、SVM分類子をトレーニングする、または導出する。トレーニングされたSVM分類子は、SVM決定関数、トレーニングされた閾値及び他のトレーニングされたパラメータにより識別される。SVM分類子は、モデルのうちの1つと関連付けられ、これに対応する。SVM分類子及び対応するモデルをデータベース104に格納する。
通常、KNNのような機械学習アルゴリズムは、2つの画像特徴が互いにどのくらい近いかを計測する距離メトリックに依存する。換言すれば、ユークリッド距離のような画像特徴距離は、一方の顔画像が他方の所定の顔画像のどのくらい近くにマッチングするかを計測する。学習されたメトリックは、距離メトリック学習プロセスから導出され、顔認識での性能及び精度を大幅に向上させることが可能である。1つのこのような学習された距離メトリックは、既知の画像に対する未知の画像の類似性を測定するマハラノビス距離である。たとえば、マハラノビス距離を使用して、入力顔画像が既知の人の顔画像にどのくらい近くにマッチングされるかを測定することが可能である。1グループの値の平均値のベクトルμ=(μ1,μ2,...,μNT、及び共分散行列Sの場合、マハラノビス距離を次の式で示す。
さらにさまざまなマハラノビス距離及び距離メトリック学習方法は、本明細書とともに提出された資料を参照して本明細書で援用される、「Distance Metric Learning:A Comprehensive Survey」、Liu Yang、2006年5月19日に記述される。1つの実装において、図14で示されるようなディープ・ラーニング・プロセス1400を使用して、マハラノビス距離を学習または導出する。図14に移り、1402で、サーバ102のようなコンピュータにより実行されたソフトウェア・アプリケーションは、入力として2つの画像特徴、X及びYを取得または受信する。たとえば、X及びYは、同じ既知の顔を含む2枚の異なる画像の最終特徴である。1404で、ソフトウェア・アプリケーションは、多層深層信念ネットワークに基づき、入力特徴X及びYから新規の画像特徴を導出する。1つの実装において、1404で、深層信念ネットワークの第一層は、特徴X及びY間の差X-Yを使用する。
第二層で、特徴X及びYの積XYを使用する。第三層で、特徴X及びYの畳み込みを使用する。顔画像をトレーニングすることから、これらの層についての重み付け及び多層深層信念ネットワークのニューロンをトレーニングする。ディープ・ラーニング・プロセスの終わりとして、カーネル関数を導出する。換言すれば、カーネル関数、K(X,Y)は、ディープ・ラーニング・プロセスの出力である。上記のマハラノビス距離の式は、カーネル関数の1つの形式である。
1406で、SVM方法のような、モデル・トレーニング・アルゴリズムを使用して、ディープ・ラーニング・プロセスの出力、K(X,Y)でモデルをトレーニングする。次にトレーニングされたモデルは、2つの入力画像特徴X1及びY1のディープ・ラーニング処理、K(X1,Y1)の特定の出力に適用され、2つの入力画像特徴を同じ顔から導出するかどうか、すなわち、それらが同じ顔を表示するかどうかを判定する。
モデル・トレーニング・プロセスは、1セットの画像で実行され、特定の顔についての最終または認識モデルを導出する。モデルが利用可能であると、それを使用して画像内の顔を認識する。さらに認識プロセスは、図4を参照して図示され、顔認識プロセス400を示す。402で、サーバ102上で動作するソフトウェア・アプリケーションは、顔認識についての画像を取得する。この画像は、クライアント・コンピュータ122から受信される、またはサーバ112及び114から取得されることが可能である。あるいは、画像は、データベース104から取得される。さらに実装において、402で、顔認識についての画像のバッチを取得する。404で、ソフトウェア・アプリケーションは、データベース104から1セットのモデルを取得する。これらのモデルは、たとえば、モデル・トレーニング・プロセス300から生成される。406で、ソフトウェア・アプリケーションは、プロセス200を実行し、またはこれを実行するために別のプロセスまたはソフトウェア・アプリケーションを呼び出し、取得された画像から最終特徴を抽出する。取得された画像は、顔を含まず、プロセス400は、406で終了する。
408で、ソフトウェア・アプリケーションは、各モデルを最終特徴に適用し、1セットの比較スコアを生成する。換言すれば、これらのモデルは、最終特徴で動作し、比較スコアを生成または計算する。410で、ソフトウェア・アプリケーションは、1セットの比較スコアから最高スコアを選択する。次に最高スコアを出力するモデルに対応する顔は、入力画像内の顔として認識される。換言すれば、402で取得された入力画像内の顔は、最高スコアに対応する、またはこれと関連するモデルにより識別されたものとして認識される。各モデルは、自然人の顔と関連する、またはこれでラベル付けされる。入力画像内の顔を認識するときに、次に入力画像は、認識された顔を識別するラベルでラベル付けされ、これと関連する。その結果、顔またはこの顔を含む画像にラベル付けすることは、最高スコアを有するモデルと関連したラベルと画像を関連付ける。この関連付け及び認識された顔を有する人の個人情報をデータベース104に格納する。
412で、ソフトウェア・アプリケーションは、最高スコアを有するモデルと関連したラベルで顔及び取得された画像にラベル付けする。1つの実装において、各ラベル及び関連付けは、リレーショナル・データベース内の表の記録である。410に戻り、選択された最高スコアは、非常に低いスコアである可能性がある。たとえば、顔は、取得されたモデルと関連した顔と異なり、最高スコアは、より低いスコアになりそうである。このような事例において、さらに実装において、最高スコアを所定の閾値と比較する。最高スコアが閾値を下回る場合に、414で、ソフトウェア・アプリケーションは、取得された画像内で顔を認識しないことを示す。
さらに実装において、416で、ソフトウェア・アプリケーションは、顔認識について取得された画像を正しく認識し、これにラベル付けするかどうかを確認する。たとえば、ソフトウェア・アプリケーションは、顔を正しく認識するかどうかについてクライアント120からユーザ確認を取得する。そうであれば、418で、ソフトウェア・アプリケーションは、最終特徴及びラベル(顔及び画像間の関連付け及び基になる人を意味する)をデータベース104内に格納する。そうでなければ、420で、ソフトウェア・アプリケーションは、たとえば、クライアント120から顔を基になる人と関連付ける新規のラベルを取得する。418で、ソフトウェア・アプリケーションは、最終特徴、認識モデル及び新規のラベルをデータベース104内に格納する。
次に格納された最終特徴及びラベルは、モデル・トレーニング・プロセス300により使用され、モデルを改良して更新する。図10を参照して例示的なリファイン及び補正プロセス1000を示す。1002で、ソフトウェア・アプリケーションは、クライアント120のような、既知の人の顔を有する入力画像を取得する。1004で、ソフトウェア・アプリケーションは、プロセス400のような顔認識を入力画像上で実行する。1006で、ソフトウェア・アプリケーションは、たとえば、クライアント120から確認を求めることで、顔を正しく認識するかどうかを判定する。そうではない場合に、1008で、ソフトウェア・アプリケーションは、入力画像にラベル付けし、この入力画像をクライアント120と関連付ける。1010で、ソフトウェア・アプリケーションは、モデル・トレーニング・プロセス300を入力画像上で実行し、導出された認識モデル及びラベルをデータベース104内に格納する。さらに実装において、ソフトウェア・アプリケーションは、クライアント120の顔を含む他の既知の画像に加えて入力画像上でトレーニング・プロセス300を実行する。顔を正しく認識し、またソフトウェア・アプリケーションは、1012で、入力画像にラベル付けすることができ、任意選択でトレーニング・プロセス300を実行し、クライアント120についての認識モデルを強化する。
図4に戻り、顔認識プロセス400は、プロセス300からトレーニングされ生成された、画像特徴モデルに基づく。一般的にモデル・トレーニング・プロセス300は、CPUサイクル及びメモリのような、大量の計算リソースを必要とする。このようにプロセス300は、比較的時間がかかり、リソースの高価なプロセスである。実時間顔認識のような、特定の事例において、それは、より高速の顔認識プロセスにとって望ましい。1つの実装において、最終特徴及び/または全特徴は、それぞれ214及び216で抽出され、データベース104内に格納される。プロセス500は、最終特徴または全特徴を使用して画像内の顔を認識し、図5を参照して示される。1つの実装において、プロセス500は、サーバ102上で動作するソフトウェア・アプリケーションにより実行され、周知のKNNアルゴリズムを利用する。
502で、ソフトウェア・アプリケーションは、たとえば、データベース104、クライアント・コンピュータ122またはサーバ112から顔認識についての顔を含む画像を取得する。さらに実装において、502で、ソフトウェア・アプリケーションは、顔認識についての画像のバッチを取得する。504で、ソフトウェア・アプリケーションは、データベース104から、最終特徴を取得する。あるいは、全特徴を取得し、顔認識のために使用する。各最終特徴は、既知の顔または人に対応する、またはこれを識別する。換言すれば、各最終特徴にラベル付けする。1つの実施形態において、最終特徴のみを顔認識のために使用する。あるいは、全特徴のみを使用する。506で、ソフトウェア・アプリケーションは、KNNアルゴリズムの整数Kについての値を設定する。1つの実装において、Kの値は、一(1)である。このような事例において、最近傍を選択する。換言すれば、502で取得された画像内で認識された顔として、データベース104内の既知の顔の最も近いマッチングを選択する。508で、ソフトウェア・アプリケーションは、画像から最終特徴を抽出する。全特徴を顔認識のために使用し、510で、ソフトウェア・アプリケーションは、画像から全特徴を導出する。
本教示の代替の実施形態において、顔プロセス400及び500をクライアント-サーバまたはクラウド・コンピューティング・フレームワーク内で実行する。ここで図6及び7を参照して、2つのクライアント-サーバ・ベースの顔認識プロセスをそれぞれ600及び700で示す。602で、クライアント・コンピュータ122上で動作するクライアント・ソフトウェア・アプリケーションは、顔認識についての入力画像から1セットの全特徴を抽出する。入力画像は、クライアント・コンピュータ122のストレージ・デバイスからメモリ内にロードされる。さらに実装において、602で、クライアント・ソフトウェア・アプリケーションは、1セットの全特徴から1セットの最終特徴を抽出する。604で、クライアント・ソフトウェア・アプリケーションは、画像特徴をサーバ102にアップロードする。コンピュータ102上で動作するサーバ・ソフトウェア・アプリケーションは、606で、クライアント・コンピュータ122から1セットの画像特徴を受信する。
608で、サーバ・ソフトウェア・アプリケーションは、プロセス400及び/または500の要素を実行し、入力画像内の顔を認識する。たとえば、608で、サーバ・ソフトウェア・アプリケーションは、プロセス500の要素504、506、512、514、516を実行し、顔を認識する。512で、サーバ・ソフトウェア・アプリケーションは、認識結果をクライアント・コンピュータ122に送信する。たとえば、この結果は、入力画像内に人間の顔がないこと、画像内の顔を認識しないこと、または顔を特定の人の顔として認識することを示すことが可能である。
図7で示されるような方法700を参照して図示されるような別の実装において、クライアント・コンピュータ122は、ほとんどの処理を実行し、1つ以上の入力画像内の顔を認識する。702で、クライアント・コンピュータ122上で動作するクライアント・ソフトウェア・アプリケーションは、サーバ・コンピュータ102に既知の顔の最終特徴またはモデルについての要求を送信する。あるいは、クライアント・ソフトウェア・アプリケーションは、1つより多いデータ・カテゴリを要求する。たとえば、クライアント・ソフトウェア・アプリケーションは、既知の顔の最終特徴及びモデルを要求する。さらに、クライアント・ソフトウェア・アプリケーションは、特定の人々のみについてのこのようなデータを要求することが可能である。
704で、サーバ・ソフトウェア・アプリケーションは、この要求を受信し、要求されたデータをデータベース104から取得する。706で、サーバ・ソフトウェア・アプリケーションは、要求されたデータをクライアント・コンピュータ122に送信する。708で、クライアント・ソフトウェア・アプリケーションは、たとえば、最終特徴を顔認識についての入力画像から抽出する。入力画像をクライアント・コンピュータ122のストレージ・デバイスからメモリ内にロードする。710で、クライアント・ソフトウェア・アプリケーションは、プロセス400及び/または500の要素を実行し、入力画像内の顔を認識する。たとえば、710で、クライアント・ソフトウェア・アプリケーションは、プロセス500の要素504、506、512、514、516を実行し、入力画像内の顔を認識する。
また顔認識プロセス400または500は、クラウド・コンピューティング環境152で実行されることが可能である。1つのこのような例示的な実装を図8で示す。802で、顔認識サーバ・コンピュータ102上で動作するサーバ・ソフトウェア・アプリケーションは、入力画像またはこの入力画像へのURLをクラウド・コンピュータ154、156または158上で動作するクラウド・ソフトウェア・アプリケーションに送信する。804で、クラウド・ソフトウェア・アプリケーションは、プロセス400または500の1部の、またはすべての要素を実行し、入力画像内の顔を認識する。806で、クラウド・ソフトウェア・アプリケーションは、認識結果をサーバ・ソフトウェア・アプリケーションに返す。たとえば、この結果は、入力画像内に人間の顔がないこと、画像内の顔を認識しないこと、または顔を特定の人の顔として認識することを示すことが可能である。
あるいは、クライアント・コンピュータ122は、クラウド・コンピュータ154のような、クラウド・コンピュータ154と通信及び共同し、画像またはビデオ・クリップ内の顔を認識するために要素702、704、706、708、710を実行する。さらに実装において、負荷分散機構を展開して使用し、サーバ・コンピュータ及びクラウド・コンピュータ間に顔認識要求を配信する。たとえば、ユーティリティ・ツールは、各サーバ・コンピュータ及びクラウド・コンピュータ上での処理負荷を監視し、サーバ・コンピュータを選択する、またはクラウド・コンピュータは、新規の顔認識要求またはタスクを提供する、より低い処理負荷を有する。さらに実装において、またモデル・トレーニング・プロセス300は、クライアント-サーバまたはクラウド・アーキテクチャ内で実行される。
ここで図9を参照して、顔認識コンピュータ102がサーバ112または114のような、ソーシャル・メディア・ネットワーキング・サーバまたはファイル・ストレージ・サーバによりホストされ提供される写真画像またはビデオ・クリップ内の顔を認識するプロセス900を説明するシーケンス図を示す。902で、クライアント・コンピュータ122上で動作するクライアント・ソフトウェア・アプリケーションは、Facebookのようなソーシャル・メディア・ウェブサイトまたはDropboxのようなファイル・ストレージ・ホスティング・サイト上にホストされた写真またはビデオ・クリップで顔認識についての要求を出す。1つの実装において、さらにクライアント・ソフトウェア・アプリケーションは、アカウント・アクセス情報(ログイン・クレデンシャルのような)をソーシャル・メディア・ウェブサイトまたはファイル・ストレージ・ホスティング・サイトへ提供する。904で、サーバ・コンピュータ102上で動作するサーバ・ソフトウェア・アプリケーションは、サーバ112から写真またはビデオ・クリップを取得する。たとえば、サーバ・ソフトウェア・アプリケーションは、サーバ112上でクライアント122と関連したウェブ・ページをクロールし、写真を取得する。さらに実施例として、サーバ・ソフトウェア・アプリケーションは、HTTP(ハイパーテキスト・トランスファ・プロトコル)要求を介して写真またはビデオ・クリップを要求する。
906で、サーバ112は、サーバ102に写真またはビデオ・クリップを返す。908で、サーバ・ソフトウェア・アプリケーションは、取得された写真またはビデオ・クリップ上で、たとえば、プロセス300、400または500を実行することで、顔認識を実行する。たとえば、プロセス300を実行するとき、クライアント120の顔を記述するモデルまたは画像特徴を導出してデータベース104に格納する。910で、サーバ・ソフトウェア・アプリケーションは、認識結果または通知をクライアント・ソフトウェア・アプリケーションに返す。
ここで図11を参照して、顔認識モデルをビデオ・クリップから導出するプロセス1100Aを示す。1102で、サーバ102上で動作するソフトウェア・アプリケーションは、顔認識について、静止ビデオ・フレームまたは画像のストリームまたはシーケンスを含む、ビデオ・クリップを取得する。1102で、さらにアプリケーションは、ビデオ・クリップから1セットの代表フレームまたは全フレームを選択し、モデルを導出する。1104で、ソフトウェア・アプリケーションは、プロセス200のようなプロセスを実行し、顔を検出し、たとえば、選択されたセットのフレームの第一または第二フレームのような、第一フレームからこの顔の最終特徴を導出する。加えて、1104で、サーバ・アプリケーションは、検出された顔を含む第一フレーム内の顔領域またはウィンドウを識別する。たとえば、顔ウィンドウは、長方形状または正方形状である。
1106で、1セットの選択されたフレーム内の各他のフレームについて、サーバ・アプリケーションは、1104で識別された顔ウィンドウに対応する画像領域から最終特徴を抽出または導出する。たとえば、1104で識別された顔ウィンドウは、画素座標組(101,242)及び(300,435)により示され、1106で、他のフレーム内の各対応する顔ウィンドウは、画素座標組(101,242)及び(300,435)により画定される。さらに実装において、顔ウィンドウは、1104で識別された顔ウィンドウより大きい、または小さい。たとえば、1104で識別された顔ウィンドウは、画素座標組(101,242)及び(300,435)により示され、他のフレーム内の各対応する顔ウィンドウは、画素座標組(91,232)及び(310,445)により画定される。後者の2つの画素座標組は、1104の顔領域より大きい画像領域を画定する。1108で、サーバ・アプリケーションは、最終特徴でモデル・トレーニングを実行し、識別された顔の認識モデルを導出する。1110で、サーバ・アプリケーションは、データベース104内に認識された顔を含む人を示すモデル及びラベルを格納する。
ビデオ・クリップ内で顔を認識するプロセス1100Bは、図11を参照して図示される。1152で、サーバ102上で動作するソフトウェア・アプリケーションは、たとえば、データベース104から1セットの顔認識モデルを取得する。1つの実装において、またアプリケーションは、取得されたモデルと関連したラベルを取得する。1154で、アプリケーションは、顔認識について、静止ビデオ・フレームまたは画像のストリームまたはシーケンスを含む、ビデオ・クリップを取得する。1156で、アプリケーションは、ビデオ・クリップから1セットの代表フレームを選択する。1158で、取得されたモデルを使用して、アプリケーションは、各選択されたフレーム上で顔認識プロセスを実行し、顔を認識する。各認識された顔は、モデルに対応する。さらに、1158で、各認識された顔について、アプリケーションは、認識された顔に対応するモデルの関連したラベルと顔を関連付ける。1160で、アプリケーションは、選択されたフレームと関連したラベル間で最も高い頻度を有するラベルでビデオ・クリップ内の顔にラベル付けする。
図16に移り、シーン画像を理解するための画像処理システム1600を示す。1つの実装において、システム1600は、システム100の機能を実行することが可能であり、その逆も同様である。システム1600は、画像(または画像ファイルへの参照)及び画像特徴を格納するデータベース1604に結合された画像処理コンピュータ1602を含む。1つの実装において、データベース1604は、たとえば、多数の画像及びこれらの画像から導出された画像特徴を格納する。さらに、画像は、ビーチ・リゾートまたは川のような、シーン・タイプによりカテゴリ化される。さらにコンピュータ1602は、インターネット1610のような、ワイド・エリア・ネットワークに結合される。インターネット1610経由で、コンピュータ1602は、クライアント1620により使用されたクライアント(消費者またはユーザ)・コンピュータ1622(図15で示されるデバイスのうちの1つであることが可能である)のような、さまざまなコンピュータからシーン画像を受信する。あるいは、コンピュータ1602は、高速USBリンクのような、直接リンクを介してシーン画像を取得する。コンピュータ1602は、受信したシーン画像を解析及び理解し、これらの画像のシーン・タイプを判定する。
さらに、画像処理コンピュータ1602は、ウェブ・サーバ1606及び1608から画像を受信することができる。たとえば、コンピュータ1622は、シーン画像(ウェブ・サーバ1606上にホストされた製品についての広告写真のような)へのURLをコンピュータ1602に送信する。それに応じて、コンピュータ1602は、ウェブ・サーバ1606から、URLが指す画像を取得する。追加の実施例として、コンピュータ1602は、ウェブ・サーバ1608上にホストされた旅行ウェブサイトからビーチ・リゾートのシーン画像を要求する。本教示の1つの実施形態において、クライアント1620は、自身のコンピュータ1622上にソーシャル・ネットワーキング・ウェブ・ページをロードする。このソーシャル・ネットワーキング・ウェブ・ページは、ソーシャル・メディア・ネットワーキング・サーバ1612上にホストされた1セットの写真を含む。クライアント1620が1セットの写真内のシーンの認識を要求するときに、コンピュータ1602は、ソーシャル・メディア・ネットワーキング・サーバ1612から1セットの写真を取得し、写真上でシーン理解を実行する。追加の実施例として、クライアント1620が自身のコンピュータ1622のウェブ・ビデオ・サーバ1614上にホストされたビデオ・クリップをみるときに、コンピュータ1602にビデオ・クリップ内のシーン・タイプを認識することを要求する。その結果、コンピュータ1602は、ウェブ・ビデオ・サーバ1614から1セットのビデオ・フレームを取得し、ビデオ・フレーム上でシーン理解を実行する。
1つの実装において、シーン画像を理解するために、画像処理コンピュータ1602は、すべてのシーン認識ステップを実行する。別の実装において、クライアント-サーバ・アプローチを使用して、シーン認識を実行する。たとえば、コンピュータ1622がコンピュータ1602にシーン画像を理解するように要求するとき、コンピュータ1622は、シーン画像から特定の画像特徴を生成し、これらの生成された画像特徴をコンピュータ1602にアップロードする。このような事例において、コンピュータ1602は、シーン画像を受信せずに、またはアップロードされた画像特徴を生成せずにシーン理解を実行する。あるいは、コンピュータ1622は、データベース1604(コンピュータ1602を介して直接に、または間接に、のいずれか一方で)から所定の画像特徴及び/または他の画像特徴情報をダウンロードする。その結果、シーン画像を認識するために、コンピュータ1622は、画像認識を独立して実行する。このような事例において、コンピュータ1622は、コンピュータ1602上に画像または画像特徴をアップロードすることを回避する。
さらに実装において、シーン画像認識をクラウド・コンピューティング環境1632内で実行する。クラウド1632は、米国の各海岸及び西海岸の州のような、1つより多い地理的領域に配信される多数かつ異なるタイプのコンピューティング・デバイスを含むことができる。たとえば、クラウド1632内のサーバ1634、ワークステーション・コンピュータ1636及びデスクトップ・コンピュータ1638は、異なる州または国に物理的に設置され、コンピュータ1602と共同してシーン画像を認識する。
図17は、画像処理コンピュータ1602が画像を解析及び理解するプロセス1700を描写する。1702で、コンピュータ1602上で動作するソフトウェア・アプリケーションは、シーン認識についてクライアント・コンピュータ1622からネットワーク(インターネット1610のような)経由でソース・シーン画像を受信する。あるいは、ソフトウェア・アプリケーションは、ウェブ・サーバ1606または1608のような、別のネットワーク化されたデバイスからソース・シーン画像を受信する。よくシーン画像は、異なるオブジェクトの複数の画像を含む。たとえば、夕焼けの画像は、空に輝く太陽の画像及び風景の画像を含むことができる。このような事例において、別々に太陽及び風景にシーン理解を実行することが望ましい場合がある。その結果、1704で、ソフトウェア・アプリケーションは、ソース画像をシーン認識についての複数の画像にセグメント化するかどうかを判定する。そうである場合に、1706で、ソフトウェア・アプリケーションは、ソース・シーン画像を複数の画像にセグメント化する。
さまざまな画像セグメント化アルゴリズム(当業者に既知の正規化カットまたは他のアルゴリズムのような)を利用して、ソース・シーン画像をセグメント化することが可能である。1つのこのようなアルゴリズムは、本明細書とともに提出された資料を参照して本明細書で援用される、「Adaptive Background Mixture Models for Real-Time Tracking」、Chris Stauffer、W.E.L Grimson、The Artificial Intelligence Laboratory、Massachusetts Institute of Technologyに記述される。また正規化カット・アルゴリズムは、本明細書とともに提出された資料を参照して本明細書で援用される、「Normalized Cuts and Image Segmentation」、Jianbo Shi及びJitendra Malik、IEEE Transactions on Pattern Analysis and Machine Intelligence、Vol.22、No.8、2000年8月に記述される。
たとえば、ソース・シーン画像は、ビーチ・リゾート写真であり、ソフトウェア・アプリケーションは、背景差分アルゴリズムを適用し、この写真を3枚の画像、空の画像、海の画像及びビーチの画像に分割することができる。さまざまな背景差分アルゴリズムは、本明細書とともに提出された資料を参照して本明細書で援用される、「Segmenting Foreground Objects from a Dynamic Textured Background via a Robust Kalman Filter」、Jing Zhong及びStan Sclaroff、Proceedings of the Ninth IEEE International Conference on Computer Vision(ICCV 2003)2-Volume Set 0-7695-1950-4/03、「Saliency、Scale and Image Description」、Timor Kadir、Michael Brady、International Journal of Computer Vision45(2)、83〜105、2001、及び「GrabCut-Interactive Foreground Extraction using Iterated Graph Cuts」、Carsten Rother、Vladimir Kolmogorov、Andrew Blake、ACM Transactions on Graphics(TOG)、2004に記述される。
その後、ソフトウェア・アプリケーションは、シーン理解について各3枚の画像を解析する。さらに実装において、空間パラメータ化プロセスを介して各画像セグメントを複数の画像ブロックに分割する。たとえば、複数の画像ブロックは、四(4)、十六(16)または二百五十六(256)個の画像ブロックを含む。次にシーン理解方法を各コンポーネント画像ブロックで実行する。1708で、ソフトウェア・アプリケーションは、シーン理解についての入力画像として複数の画像のうちの1つを選択する。1704に戻り、ソフトウェア・アプリケーションが単一の画像としてソース・シーン画像を解析及び処理するように判定する場合に、1710で、ソフトウェア・アプリケーションは、シーン理解についての入力画像としてソース・シーン画像を選択する。1712で、ソフトウェア・アプリケーションは、データベース1604から距離メトリックを取得する。1つの実施形態において、距離メトリックは、1セット(またはベクトル)の画像特徴を示し、この1セットの画像特徴に対応する1セットの画像特徴重み付けを含む。
1つの実装において、多数(千以上のような)の画像特徴を画像から抽出する。たとえば、1×1画素セル及び/または4×4画素セルに基づくLBP特徴をシーン理解についての画像から抽出する。追加の実施例として、静止画像の推定深度は、画像内のオブジェクト表面及び画像を捕捉したセンサ間の物理的な距離を画定する。三角形分割は、推定深度特徴を抽出する周知の技術である。多くの場合、単一タイプの画像特徴は、画像から関連情報を得るために、または画像を認識するために十分ではない。代替に2つ以上の異なる画像特徴を画像から抽出する。一般的にこれらの2つ以上の異なる画像特徴を単一の画像特徴ベクトルとして編成する。すべての可能な特徴ベクトルのセットは、特徴空間を構成する。
距離メトリックを既知の1セットの画像から抽出する。この1セットの画像を使用して、入力画像についてのシーン・タイプ及び/またはマッチング画像を探す。この1セットの画像は、1つ以上のデータベース(データベース1604のような)内に格納されることが可能である。別の実装において、1セットの画像は、クラウド・コンピューティング環境(クラウド1632のような)に格納されアクセス可能である。加えて、1セットの画像は、たとえば、200万枚の画像のような、多数の画像を含むことが可能である。さらに、1セットの画像は、シーン・タイプによりカテゴリ化される。1つの例示的な実装において、1セットの200万枚の画像を、たとえば、ビーチ、砂漠、花、食べ物、森林、屋内、山、ナイトライフ、海、公園、レストラン、川、ロック・クライミング、雪、郊外、夕焼け、都市及び水のような、数十個のカテゴリまたはタイプに分割する。さらに、シーン画像は、1つより多いシーン・タイプでラベル付けされ、これらと関連することが可能である。たとえば、海-ビーチ・シーン画像は、ビーチ・タイプ及び海岸タイプの両方を含む。画像についての複数のシーン・タイプは、たとえば、人間の視聴者が提供した信頼水準により順序付けられる。
さらに距離メトリックの抽出は、図19で示されるようにトレーニング・プロセス1900を参照して図示される。ここで図19を参照して、1902で、ソフトウェア・アプリケーションは、データベース1604から1セットの画像を取得する。1つの実装において、1セットの画像をシーン・タイプによりカテゴリ化する。1904で、ソフトウェア・アプリケーションは、1セットの画像内の各画像から1セットの未加工の画像特徴(色ヒストグラム及びLBP画像特徴のような)を抽出する。各セットの未加工の画像特徴は、同数の画像特徴を含む。加えて、各セットの未加工の画像特徴のうちの画像特徴は、同じタイプの画像特徴のものである。たとえば、複数セットの未加工の画像特徴のそれぞれの第一画像特徴は、同じタイプの画像特徴のものである。追加の実施例として、複数セットの未加工の画像特徴のそれぞれの最後の画像特徴は、同じタイプの画像特徴のものである。その結果、複数セットの未加工の画像特徴は、対応する複数のセットの画像特徴と本明細書で言われる。
一般的に各セットの未加工の画像特徴は、多数の特徴を含む。加えて、ほとんどの未加工の画像特徴は、高価な計算を招く、及び/またはシーン理解で意味がない。その結果、1906で、ソフトウェア・アプリケーションは、次元削減プロセスを実行し、シーン認識についての1サブセットの画像特徴を選択する。1つの実装において、1906で、ソフトウェア・アプリケーションは、PCAアルゴリズムを複数セットの未加工の画像特徴に適用し、対応する複数サブセットの画像特徴を選択し、これらの複数サブセットの画像特徴内の各画像特徴についての画像特徴重み付けを導出する。画像特徴重み付けは、画像特徴重み付けメトリックを含む。別の実装において、ソフトウェア・アプリケーションは、LDAを複数セットの未加工の画像特徴に適用し、複数サブセットの画像特徴を選択し、対応する画像特徴重み付けを導出する。
画像特徴重み付けメトリックは、選択されたサブセットの画像特徴から導出され、モデルと本明細書で言われる。複数のモデルは、複数セットの未加工の画像特徴から導出されることが可能である。通常異なるモデルは、異なる複数サブセットの複数の画像特徴及び/または1つの画像特徴によりトレーニングされる。したがって、いくつかのモデルは、他のモデルより複数セットの未加工の画像をより正確に表現することができる。その結果、1908で、交差検証プロセスを1セットの画像に適用し、シーン認識についての複数のモデルから1つのモデルを選択する。交差検証は、異なるモデルのシーン理解の結果を評価する技術である。交差検証プロセスは、1セットの画像を相補的なサブセットにパーティション化することを伴う。1サブセットの画像を検証のために使用しながら、この1サブセットの画像からシーン理解モデルを導出する。
たとえば、交差検証プロセスを1セットの画像で実行するときに、第一モデル下でシーン認識精度は、九十パーセント(90%)であるが、第二モデル下でシーン認識精度は、八十パーセント(80%)である。このような事例において、第一モデルは、第二モデルより複数セットの未加工の画像をより正確に表現するため、第二モデルよりも選択される。1つの実施形態において、一つ抜き交差検証アルゴリズムを1908で適用する。
1910で、ソフトウェア・アプリケーションは、データベース1604に、画像特徴メトリック及び複数サブセットの画像特徴を含む、選択されたモデルを格納する。別の実装において、1つのモデルのみをトレーニング・プロセス1900で導出する。このような事例において、ステップ1908をトレーニング・プロセス1900で実行しない。
図17に戻り、1714で、ソフトウェア・アプリケーションは、入力画像から、距離メトリックにより示された1セットの画像特徴に対応する1セットの入力画像特徴を抽出する。本明細書で使用されるように、1セットの入力画像特徴は、距離メトリックに対応すると言われる。1716で、ソフトウェア・アプリケーションは、画像シーン・タイプによりカテゴリ化される1セットの画像内の各画像についての1セットの画像特徴(プロセス1900を使用して生成された)を取得する。各取得された複数セットの画像特徴は、距離メトリックにより示された1セットの画像特徴に対応する。1つの実装において、1セットの画像について取得された複数セットの画像特徴は、データベース1604またはクラウド1632内に格納される。
1718で、距離メトリックを使用して、ソフトウェア・アプリケーションは、1セットの入力画像特徴及び1セットの画像についての各複数セットの画像特徴間の画像特徴距離を計算する。1つの実装において、2セットの画像特徴間の画像特徴距離は、距離メトリックに含まれた重み付けを適用した2つの画像特徴ベクトル間のユークリッド距離である。1720で、計算された画像特徴距離に基づき、ソフトウェア・アプリケーションは、入力画像についてシーン・タイプを判定し、入力画像へのシーン・タイプの割り当てをデータベース1604に書き込む。さらにこのような判定プロセスは、図18A及び18Bを参照して図示される。
図18Aに移り、正確な画像認識について1サブセットの画像を選択するプロセス1800Aを示す。1つの実装において、ソフトウェア・アプリケーションは、KNNアルゴリズムを利用し、1サブセットの画像を選択する。1802で、ソフトウェア・アプリケーションは、整数Kについての値(5または10のような)を設定する。1804で、ソフトウェア・アプリケーションは、1716で計算されるKの最短画像特徴距離及び対応するK画像を選択する。換言すれば、選択されたK画像は、トップKマッチングであり、計算された画像特徴距離に関して入力画像に最も近い。1806で、ソフトウェア・アプリケーションは、K画像のシーン・タイプ(ビーチ・リゾートまたは山のような)を判定する。1808で、ソフトウェア・アプリケーションは、K画像が同じシーン画像タイプを有するかどうかを確認する。そうである場合に、1810で、ソフトウェア・アプリケーションは、K画像のシーン・タイプを入力画像に割り当てる。
別の方法で、1812で、ソフトウェア・アプリケーションは、たとえば、自然言語処理技術を適用し、K画像のシーン・タイプをマージし、より抽象的なシーン・タイプを生成する。たとえば、K画像の半分は、海-ビーチ・タイプであり、もう半分は、湖-岸タイプであり、ソフトウェア・アプリケーションは、1812で岸タイプを生成する。自然言語処理は、本明細書とともに提出された資料を参照して本明細書で援用される、「Artificial Intelligence、a Modern Approach」、第23章、691〜719頁、Russell、Prentice Hall、1995に記述される。1814で、ソフトウェア・アプリケーションは、より抽象的なシーン・タイプを正常に生成したかどうかを確認する。そうである場合に、1816で、ソフトウェア・アプリケーションは、より抽象的なシーン・タイプを入力画像に割り当てる。さらに実装において、ソフトウェア・アプリケーションは、生成されたシーン・タイプで各K画像にラベル付けする。
1814に戻り、より抽象的なシーン・タイプを正常に生成し、1818で、ソフトウェア・アプリケーションは、各判定されたシーン・タイプについてのK画像の画像数を計算する。1820で、ソフトウェア・アプリケーションは、計算された最大数の画像が属するシーン・タイプを識別する。1822で、ソフトウェア・アプリケーションは、識別されたシーン・タイプを入力画像に割り当てる。たとえば、Kは、整数十(10)であり、八(8)枚のK画像はシーン・タイプ森林であり、残りの二(2)枚のK画像は、シーン・タイプ公園であり、計算された最大数の画像を有するシーン・タイプは、シーン・タイプ森林であり、計算された最大数は、八枚である。この事例において、ソフトウェア・アプリケーションは、シーン・タイプ森林を入力画像に割り当てる。さらに実装において、ソフトウェア・アプリケーションは、信頼水準をシーン割り当てに割り当てる。たとえば、上記で説明された実施例において、入力画像をシーン・タイプ森林で正確にラベル付けする信頼水準は、八十パーセント(80%)である。
あるいは、1720で、ソフトウェア・アプリケーションは、図18Bを参照して図示されるように識別分類方法1800Bを実行することで入力画像についてシーン・タイプを判定する。ここで図18Bを参照して、1832で、ソフトウェア・アプリケーションは、データベース1604内に格納された各シーン・タイプについて、複数の画像から画像特徴を抽出する。たとえば、ビーチ・タイプの1万枚の画像を1832で処理する。このような各画像について抽出された画像特徴は、距離メトリックにより示された1セットの画像特徴に対応する。1834で、ソフトウェア・アプリケーションは、シーン・タイプの抽出された画像特徴及び距離メトリックで機械学習を実行し、周知のサポート・ベクタ・マシン(SVM)のような、分類モデルを導出する。別の実装において、1832及び1834を画像トレーニング・プロセス中に別のソフトウェア・アプリケーションで実行する。
別の実装において、1720で、ソフトウェア・アプリケーションは、方法1800A及び方法1800Bの両方の要素を実行することで、入力画像についてのシーン・タイプを判定する。たとえば、ソフトウェア・アプリケーションは、方法1800Aを用い、トップKのマッチング画像を選択する。その後、ソフトウェア・アプリケーションは、マッチングされたトップK画像上で方法1800Bの、要素1836、1838、1840のような、いくつかの要素を実行する。
1836で、導出された分類モデルを入力画像特徴に適用し、マッチング・スコアを生成する。1つの実装において、各スコアは、入力画像及び分類モデルの基になるシーン・タイプ間のマッチングの確率である。1838で、ソフトウェア・アプリケーションは、最高マッチング・スコアを有するシーン・タイプの数(八または十二のような)を選択する。1840で、ソフトウェア・アプリケーションは、選択されたシーン・タイプを整理し、入力画像について1つ以上のシーン・タイプを判定する。1つの実施形態において、ソフトウェア・アプリケーションは、自然言語処理技術を実行し、入力画像についてシーン・タイプを識別する。
さらに実装において、ソース・シーン画像を複数の画像にセグメント化し、シーン理解を各複数の画像で実行し、ソフトウェア・アプリケーションは、各複数の画像について割り当てられたシーン・タイプを分析し、シーン・タイプをソース・シーン画像に割り当てる。たとえば、ソース・シーン画像を2枚の画像にセグメント化し、これら2枚の画像をそれぞれ海の画像及びビーチの画像として認識し、ソフトウェア・アプリケーションは、ソース・シーン画像を海−ビーチ・タイプとしてラベル付けする。
本教示の代替の実施形態において、クライアント-サーバまたはクラウド・コンピューティング・フレームワークを使用してシーン理解プロセス1700を実行する。ここで図20及び21を参照して、2つのクライアント-サーバ・ベースのシーン認識プロセスをそれぞれ2000及び2100で示す。2002で、コンピュータ1622上で動作するクライアント・ソフトウェア・アプリケーションは、入力画像から、1714で抽出された1セットの入力画像特徴に対応する、1セットの画像特徴を抽出する。2004で、クライアント・ソフトウェア・アプリケーションは、1セットの画像特徴をコンピュータ1602上で動作するサーバ・ソフトウェア・アプリケーションにアップロードする。2006で、サーバ・ソフトウェア・アプリケーションは、たとえば、プロセス1700の1712、1716、1718、1720を実行することで入力画像について1つ以上のシーン・タイプを判定する。2008で、サーバ・ソフトウェア・アプリケーションは、1つ以上のシーン・タイプをクライアント・ソフトウェア・アプリケーションに送信する。
図21で示されるように方法2100を参照して説明されるような別の実装において、クライアント・コンピュータ1622は、ほとんどの処理を実行し、シーン画像を認識する。2102で、クライアント・コンピュータ1622上で動作するクライアント・ソフトウェア・アプリケーションは、画像処理コンピュータ1602に、データベース1604内に格納された既知の画像についての距離メトリック及び複数セットの画像特徴についての要求を送信する。各複数セットの画像特徴は、1714で抽出された1セットの入力画像特徴に対応する。2104で、コンピュータ1602上で動作するサーバ・ソフトウェア・アプリケーションは、データベース1604から距離メトリック及び複数セットの画像特徴を取得する。2106で、サーバ・ソフトウェア・アプリケーションは、距離メトリック及び複数セットの画像特徴をクライアント・ソフトウェア・アプリケーションに返す。2108で、クライアント・ソフトウェア・アプリケーションは、入力画像から1セットの入力画像特徴を抽出する。2110で、クライアント・ソフトウェア・アプリケーションは、たとえば、プロセス1700の1718、1720を実行することで、入力画像について1つ以上のシーン・タイプを判定する。
またシーン画像理解プロセス1700をクラウド・コンピューティング環境1632内で実行することが可能である。1つの例示的な実装を図22で示す。2202で、画像処理コンピュータ1602上で動作するサーバ・ソフトウェア・アプリケーションは、入力画像またはこの入力画像へのURLをクラウド・コンピュータ1634上で動作するクラウド・ソフトウェア・アプリケーションに送信する。2204で、クラウド・ソフトウェア・アプリケーションは、プロセス1700の要素を実行し、入力画像を認識する。2206で、クラウド・ソフトウェア・アプリケーションは、入力画像について判定されたシーン・タイプ(複数を含む)をサーバ・ソフトウェア・アプリケーションに返す。
ここで図23を参照して、コンピュータ1602がソーシャル・メディア・ネットワーキング・サーバ1612により提供されたウェブ・ページ内に含まれた写真画像内のシーンを認識するプロセス2300を説明するシーケンス図を示す。2302で、クライアント・コンピュータ1622は、ソーシャル・メディア・ネットワーキング・サーバ1612から1つ以上の写真を含むウェブ・ページについて要求を出す。2304で、サーバ1612は、要求されたウェブ・ページをクライアント・コンピュータ1622に送信する。たとえば、クライアント1620がコンピュータ1622を使用してFacebookページ(ホーム・ページのような)にアクセスするときに、コンピュータ1622は、ページ要求をFacebookサーバに送信する。あるいは、Facebookサーバは、クライアント1620の認証及び承認に成功するとクライアントのホーム・ページを送り返す。クライアント1620がコンピュータ1602にウェブ・ページ内に含まれた写真内のシーンを認識するように要求するとき、クライアント1620は、たとえば、ウェブ・ページ上のURLまたはインターネット・ブラウザ・プラグイン・ボタンをクリックする。
ユーザ要求に応答して、2306で、クライアント・コンピュータ1622は、コンピュータ1602に写真内のシーンを認識するように要求する。1つの実装において、要求2306は、写真へのURLを含む。別の実装において、要求2306は、写真のうちの1枚以上を含む。2308で、コンピュータ1602は、サーバ1612から写真を要求する。2310で、サーバ1612は、要求された写真を返す。2312で、コンピュータ1602は、方法1700を実行し、写真内のシーンを認識する。2314で、コンピュータ1602は、クライアント・コンピュータ1622に各写真についてマッチングされた画像の認識されたシーン・タイプ及び/または識別を送信する。
図24を参照して、コンピュータ1602がウェブ・ビデオ・クリップ内の1つ以上のシーンを認識するプロセス2400を説明するシーケンス図を示す。2402で、コンピュータ1622は、ウェブ・ビデオ・クリップ(YouTube.comサーバ上に投稿されたビデオ・クリップのような)への要求を送信する。2404で、ウェブ・ビデオ・サーバ1614は、ビデオ・クリップのビデオ・フレームまたはビデオ・クリップへのURLをコンピュータ1622に返す。URLをコンピュータ1622に返し、次にコンピュータ1622は、URLが指示するウェブ・ビデオ・サーバ1614または別のウェブ・ビデオ・サーバからビデオ・クリップのビデオ・フレームを要求する。2406で、コンピュータ1622は、コンピュータ1602にウェブ・ビデオ・クリップ内の1つ以上のシーンを認識するように要求する。1つの実装において、要求2406は、URLを含む。
2408で、コンピュータ1602は、ウェブ・ビデオ・サーバ1614から1つ以上のビデオ・フレームを要求する。2410で、ウェブ・ビデオ・サーバ1614は、ビデオ・フレームをコンピュータ1602に返す。2412で、コンピュータ1602は、ビデオ・フレームのうちの1つ以上で方法1700を実行する。1つの実装において、コンピュータ1602は、各ビデオ・フレームを静止画像として扱い、6個のビデオ・フレームのような、複数のビデオ・フレーム上でシーン認識を実行する。コンピュータ1602は、処理されたビデオ・フレームの特定の割合(50%のような)でシーン・タイプを認識し、認識されたシーン・タイプをビデオ・フレームのシーン・タイプと仮定する。さらに、認識されたシーン・タイプをビデオ・フレームのインデックス範囲と関連付ける。2414で、コンピュータ1602は、認識されたシーン・タイプをクライアント・コンピュータ1622に送信する。
さらに実装において、データベース1604は、シーン・タイプでラベル付けまたはカテゴリ化されない1セットの画像を含む。このようなカテゴリ化されない画像を使用して、シーン理解をリファイン及び改良することが可能である。図25は、ソフトウェア・アプリケーションまたは別のアプリケーション・プログラムが1つの例示的な実装において、PCAアルゴリズムを使用して、1712で取得された距離メトリックをリファインする反復プロセス2500を図示する。2502で、ソフトウェア・アプリケーションは、入力画像として、たとえば、データベース1604から、ラベル付けされない、または割り当てられない画像を取得する。2504で、入力画像から、ソフトウェア・アプリケーションは、1712で取得された距離メトリックに対応する、1セットの画像特徴を抽出する。2506で、ソフトウェア・アプリケーションは、2504で抽出された距離メトリック及び1セットの画像特徴を使用して入力画像の画像特徴を再構築する。このような表現は、次のように表されることが可能である。
2508で、ソフトウェア・アプリケーションは、入力画像及び2506で構築された表現間の再構築エラーを計算する。再構築エラーは、次のように表現されることが可能である。
そこでλM+1からλNは、図4のプロセス1900を実行する際に破棄された固有値を表現し、距離メトリックを導出する。
2510で、ソフトウェア・アプリケーションは、再構築エラーが所定の閾値を下回るかどうかを確認する。そうである場合に、ソフトウェア・アプリケーションは、2512で入力画像にシーン理解を実行し、2514で認識されたシーン・タイプを入力画像に割り当てる。さらに実装において、2516で、ソフトウェア・アプリケーションは、ラベル付けされた画像として入力画像に関して再びトレーニング・プロセス1900を実行する。その結果、改良された距離メトリックを生成する。2510に戻り、再構築エラーは、所定の閾値内になく、2518で、ソフトウェア・アプリケーションは、入力画像についてシーン・タイプを取得する。たとえば、ソフトウェア・アプリケーションは、入力デバイスまたはデータ・ソースから入力画像についてのシーン・タイプの表示を受信する。その後、2514で、ソフトウェア・アプリケーションは、取得されたシーン・タイプで入力画像にラベル付けする。
図26を参照して、代替の反復シーン理解プロセス2600を示す。このプロセス2600は、1つまたは複数の画像でソフトウェア・アプリケーションにより実行され、シーン理解を最適化することが可能である。2602で、ソフトウェア・アプリケーションは、既知のシーン・タイプを含む入力画像を取得する。1つの実装において、入力画像についての既知のシーン・タイプは、人間のオペレータにより提供される。たとえば、人間のオペレータは、キーボード及び表示画面のような、入力デバイスを使用して入力画像についての既知のシーン・タイプを入力または設定する。あるいは、入力画像についての既知のシーン・タイプをデータベースのようなデータ・ソースから取得する。2604でソフトウェア・アプリケーションは、シーン理解を入力画像上で実行する。2606で、ソフトウェア・アプリケーションは、既知のシーン・タイプが認識されたシーン・タイプと同じであるかどうかを確認する。そうである場合に、ソフトウェア・アプリケーションは、2602に移行し、次の入力画像を取得する。そうではない場合に、2608で、ソフトウェア・アプリケーションは、既知のシーン・タイプで入力画像にラベル付けする。2610で、ソフトウェア・アプリケーションは、シーン・タイプでラベル付けされた入力画像に関して、再びトレーニング・プロセス1900を実行する。
デジタル写真は、多くの場合に1セットのメタデータ(写真についてのデータを意味する)を含む。たとえば、デジタル写真は、次のメタデータ、題、件名、著作者、取得日、著作権、写真撮影時の時刻及び日付の作成時刻、焦点距離(4mmのような)、35mm焦点距離(33のような)、写真の寸法、水平解像度、垂直解像度、ビット深度(24のような)、色表現(sRGBのような)、カメラ・モデル(iPhone5のような)、Fストップ、露出時間、ISO速度、輝度、サイズ(2.08MBのような)、GPS(全地球測位システム)緯度(42;8;3.00000000000426のような)、GPS経度(87;54;8.999999999912のような)、及びGPS高度(198.36673773987206のような)を含む。
またデジタル写真は、メタデータとして写真内に埋め込まれた1つ以上のタグを含むことが可能である。これらのタグは、写真の特性を記述して示す。たとえば、「家族」タグは、この写真が家族写真であることを示し、「結婚式」タグは、この写真が結婚式の写真であることを示し、「夕焼け」タグは、写真が夕焼けシーン写真であることを示し、「サンタ・モニカ・ビーチ」タグは、この写真がサンタ・モニカ・ビーチで撮られたことなどを示す。またGPS緯度、経度及び高度は、写真撮影時にカメラ及び通常写真内のオブジェクトの地理的位置(または略して地理位置)を識別するジオタグと言われる。ジオタグを含む写真またはビデオは、ジオタグ付きであると言われる。別の実装において、ジオタグは、写真内に埋め込まれたタグのうちの1つである。
サーバ102、106、1602または1604上で動作する、サーバ・ソフトウェア・アプリケーションが写真のアルバム(またスマート・アルバムと本明細書で言われる)を自動的に生成するプロセスを図27の2700で示す。またプロセス2700がクラウド・コンピュータ1634、1636、1638のような、クラウド・コンピュータにより実行されることが可能であることに留意するべきである。ユーザ120が1セットの写真をアップロードするときに、2702で、サーバ・ソフトウェア・アプリケーションは、コンピュータ122(iPhone5のような)から1枚以上の写真を受信する。アップロードすることは、サーバ102により提供されたウェブ・ページ・インタフェース、またはコンピュータ122上で動作するモバイル・ソフトウェア・アプリケーションを使用して、クライアント120により開始されることが可能である。あるいは、ウェブ・ページ・インタフェースまたはモバイル・ソフトウェア・アプリケーションを使用して、ユーザ120は、サーバ112上にホストされた写真を指すURLを提供する。2702で、次にサーバ・ソフトウェア・アプリケーションは、サーバ112から写真を取得する。
2704で、サーバ・ソフトウェア・アプリケーションは、各受信または取得した写真からメタデータ及びタグを抽出または取得する。たとえば、コンピュータ・プログラミング言語C#で書き込まれた一片のソフトウェア・プログラム・コードを使用して、写真からメタデータ及びタグを読み出すことが可能である。任意選択で、2706で、サーバ・ソフトウェア・アプリケーションは、取得した写真のタグを正規化する。たとえば、「夕闇」及び「たそがれ」タグの両方を「夕焼け」に変更する。2708で、サーバ・ソフトウェア・アプリケーションは、各写真について追加のタグを生成する。たとえば、位置タグを写真内のジオタグから生成する。さらにこの位置タグ生成プロセスは、図28を参照して2800で図示される。2802で、サーバ・ソフトウェア・アプリケーションは、ジオタグ内のGPS座標をこのGPS座標に対応する位置を要求するマップ・サービス・サーバ(Google Mapサービスのような)に送信する。たとえば、この位置は、「サンタ・モニカ・ビーチ」または「オヘア空港」である。2804で、サーバ・ソフトウェア・アプリケーションは、マッピングされた位置の名前を受信する。次に位置の名前は、写真についての位置タグとみなされる。
追加の実施例として、2708で、サーバ・ソフトウェア・アプリケーションは、各写真上で実行されるシーン理解及び/または顔認識の結果に基づきタグを生成する。さらにタグ生成プロセスは、図29を参照して2900で図示される。2902で、サーバ・ソフトウェア・アプリケーションは、2702で取得された各写真上でシーン理解を実行する。たとえば、サーバ・ソフトウェア・アプリケーションは、プロセス1700、1800A及び1800Bのステップを実行し、各写真のシーン・タイプ(ビーチ、夕焼けなどのような)を判定する。次にシーン・タイプは、基になる写真についての追加のタグ(すなわち、シーン・タグ)として使用される。さらに実装において、写真作成時刻を使用して、シーン理解を支援する。たとえば、シーン・タイプをビーチであると判定し、写真の作成時刻がPM5:00であるときに、ビーチ及び夕焼けビーチの両方は、写真のシーン・タイプであることが可能である。追加の実施例として、同じ位置または構図の夕闇シーン写真及び夕焼けシーン写真は、非常に類似しているように見える可能性がある。このような事例において、写真作成時刻は、シーン・タイプ、すなわち、夕闇シーンまたは夕焼けシーンを判定することを支援する。
さらに写真作成時刻を使用してシーン・タイプ判定で支援するために、写真の作成時刻の日付及び地理位置は、シーン・タイプを判定する際に検討される。たとえば、太陽は、その年の異なる季節に異なる時間で空の視界から消える。さらに、夕焼けの時間は、異なる位置で異なる。さらに地理位置は、他の方式でシーン理解の際に支援することが可能である。たとえば、大きな湖の写真及び海の写真は、非常に類似してみえる可能性がある。このような事例において、写真の地理位置を使用して、湖の写真を海の写真と区別する。
さらに実装において、2904で、サーバ・ソフトウェア・アプリケーションは、顔認識を実行し、顔を認識して各写真内の個人の表情を判定する。1つの実装において、異なる顔画像(笑顔、怒りなどのような)を異なるタイプのシーンとして見る。サーバ・ソフトウェア・アプリケーションは、各写真でシーン理解を実行し、各写真内の感情を認識する。たとえば、サーバ・ソフトウェア・アプリケーションは、方法1900を特定の表情または感情の1セットのトレーニング画像上で実行し、この感情についてのモデルを導出する。各タイプの感情について、複数のモデルを導出する。次に複数のモデルは、方法1700を実行することでテスト画像に対して適用される。次に最高のマッチングまたは認識結果を有するモデルは、特定の感情で選択され、これと関連する。このようなプロセスは、各感情について実行される。
2904で、さらにサーバ・ソフトウェア・アプリケーションは、感情タグを各写真に追加する。たとえば、写真の表情が笑顔であるとき、サーバ・ソフトウェア・アプリケーションは、「笑顔」タグを写真に追加する。「笑顔」タグは、表情または感情タイプ・タグである。
図27に戻り、さらに他の実施例として、2708で、サーバ・ソフトウェア・アプリケーションは、タイミング・タグを生成する。たとえば、写真の作成時刻が7月4日または12月25日であるとき、次に「7月4日」タグまたは「クリスマス」タグを生成する。1つの実装において、生成されたタグを写真ファイル内に書き込まない。あるいは、写真ファイルを追加のタグと変更する。さらに実装において、2710で、サーバ・ソフトウェア・アプリケーションは、ユーザ120が入力したタグを取得する。たとえば、サーバ・ソフトウェア・アプリケーションは、ユーザ120が新規のタグを入力することで写真にタグ付けすることを可能にするウェブ・ページ・インタフェースを提供する。2712で、サーバ・ソフトウェア・アプリケーションは、各写真についてのメタデータ及びタグをデータベース104内に保存する。サーバ・ソフトウェア・アプリケーションが各写真の各片のメタデータをデータベース104内に書き込むことができないことに留意するべきである。換言すれば、サーバ・ソフトウェア・アプリケーションは、写真メタデータをデータベース104内に選択的に書き込むことができる。
1つの実装において、2712で、サーバ・ソフトウェア・アプリケーションは、各写真への参照をデータベース104内に格納するが、写真は、データベース104と異なるストレージ・デバイス内に格納された物理的ファイルである。このような事例において、データベース104は、各写真について一意の識別子を維持する。一意の識別子を使用して、データベース104内に対応する写真のメタデータ及びタグを配置する。2714で、サーバ・ソフトウェア・アプリケーションは、そのタグ及び/またはメタデータに基づき各写真にインデックスを作成する。1つの実装において、サーバ・ソフトウェア・アプリケーションは、データベース104上で動作するデータベース管理ソフトウェアにより提供されたソフトウェア・ユーティリティを使用して、各写真にインデックスを作成する。
2716で、サーバ・ソフトウェア・アプリケーションは、2702で取得された写真をこの写真のジオタグに基づき地図上に表示する。あるいは、2716で、サーバ・ソフトウェア・アプリケーションは、2702で取得された1サブセットの写真をこの写真のジオタグに基づき地図上に表示する。表示された写真の2枚のスクリーンショットを図30の3002及び3004で示す。ユーザ120は、ズームイン及びズームアウト制御を地図上で使用し、特定の地理的領域内の写真を表示することが可能である。写真をアップロードしてこれらにインデックスを作成した後に、サーバ・ソフトウェア・アプリケーションは、2702でアップロードされた写真を含む写真をユーザ120が検索することを可能にする。その後アルバムを検索結果(すなわち、写真リスト)から生成することが可能である。さらにアルバム生成プロセスは、図31を参照して3100で図示される。3102で、サーバ・ソフトウェア・アプリケーションは、シーン・タイプ、表情、作成時刻、異なるタグなどのような、1セットの検索パラメータを取得する。たとえば、サーバ・ソフトウェア・アプリケーションのウェブ・ページ・インタフェースまたはモバイル・ソフトウェア・アプリケーションを介してこれらのパラメータを入力する。3104で、サーバ・ソフトウェア・アプリケーションは、検索クエリを定式化し、データベース104に検索クエリを実行するように要求する。
応答して、データベース104は、クエリを実行し、1セットの検索結果を返す。3106で、サーバ・ソフトウェア・アプリケーションは、検索結果を受信する。3108で、サーバ・ソフトウェア・アプリケーションは、検索結果を、たとえば、ウェブ・ページ上に表示する。検索結果リスト内の各写真は、特定のメタデータ及び/またはタグ、及び特定のサイズ(元のサイズの半分のような)の写真で表示される。次にユーザ120は、ボタンをクリックし、返された写真でフォト・アルバムを作成する。クリックに応答して、3110で、サーバ・ソフトウェア・アプリケーションは、検索結果を含むアルバムを生成し、このアルバムをデータベース104に格納する。たとえば、データベース104内のアルバムは、アルバム内の各写真の一意の識別子、ならびにアルバムの題及び説明を含むデータ構造である。題及び説明は、ユーザ120により入力される、または写真のメタデータ及びタグに基づき自動的に生成される。
さらに実装において、写真を2702でアップロードした後に、サーバ102上で動作するサーバ・ソフトウェア・アプリケーションまたはバックグラウンド・プロセスは、アップロードされた写真のいくつかを含む1つ以上のアルバムを自動的に生成する。さらに自動生成プロセスは、図32を参照して3200で図示される。3202で、サーバ・ソフトウェア・アプリケーションは、アップロードされた写真のタグを取得する。3204で、サーバ・ソフトウェア・アプリケーションは、異なる組み合わせのタグを判定する。たとえば、1つの組み合わせは、「ビーチ」、「夕焼け」、「家族の休暇」及び「サン・ディエゴ・シー・ワールド」のタグを含む。追加の実施例として、これらの組み合わせは、タイミング・タグ、位置タグなどのような、タグ・タイプに基づく。各組み合わせは、1セットの検索パラメータである。3206で、各タグの組み合わせについて、サーバ・ソフトウェア・アプリケーションは、この組み合わせ内のすべてのタグを各々含む、たとえば、アップロードされた写真、またはアップロードされた写真及び既存の写真から写真を選択する(データベース104にクエリを行うことで等)。別の実装において、写真をメタデータ(作成時刻のような)及びタグに基づき選択する。
3208で、サーバ・ソフトウェア・アプリケーションは、各セットの選択された写真についてアルバムを生成する。各アルバムは、たとえば、アルバム内の写真のメタデータ及びタグに基づき生成されることが可能である題及び/または要約を含む。3210で、サーバ・ソフトウェア・アプリケーションは、アルバムをデータベース104内に格納する。さらに実装において、サーバ・ソフトウェア・アプリケーションは、1冊以上のアルバムをユーザ120に表示する。また各表示されたアルバムについての要約を表示する。加えて、各アルバムは、アルバム内の代表的な写真または写真のサムネイルとともに示される。
画像編成システム
また本開示は、画像編成システムを含む。特に、上記で説明されたシーン認識及び顔認識技術を使用して、自動的に画像集にタグ付けし、これにインデックスを作成することが可能である。たとえば、画像リポジトリ内の各画像について、タグ・リスト及び画像のインディシアは、データベース記録によるように、関連付けられることが可能である。次にデータベース記録は、たとえば、検索文字列を使用して検索されることが可能なデータベース内に格納されることが可能である。
画像編成システムに適用可能な図に移行し、図33は、開示された画像編成システムとともに使用するように構成されたモバイル・コンピューティング・デバイス3300を描写する。モバイル・コンピューティング・デバイス3300は、たとえば、図15で描写されるすべての、スマートフォン1502、タブレット・コンピュータ1504またはウェアラブル・コンピュータ1510であることが可能である。モバイル・コンピューティング・デバイス3300は、例示的な実装において、ディスプレイ3304及び入力デバイス3314に結合されたプロセッサ3302を含むことが可能である。ディスプレイ3304は、たとえば、液晶ディスプレイまたは有機発光ダイオード・ディスプレイであることが可能である。入力デバイス3314は、たとえば、タッチスクリーン、タッチスクリーン及び1つ以上のボタンの組み合わせ、タッチスクリーン及びキーボードの組み合わせ、またはタッチスクリーン、キーボード及び別個のポインティング・デバイスの組み合わせであることが可能である。
またモバイル・コンピューティング・デバイス3300は、フラッシュ・メモリ(他のタイプのメモリを使用可能であるが)のような内部ストレージ・デバイス3310、及びまた一般にフラッシュ・メモリを含むSDカード・スロットのようなリムーバブル・ストレージ・デバイス3312を含むことが可能であるが、回転磁気ドライブのような他のタイプのメモリも含むことが可能である。加えて、またモバイル・コンピューティング・デバイス3300は、カメラ3308及びネットワーク・インタフェース3306を含むことが可能である。ネットワーク・インタフェース3306は、たとえば、802.11の変種またはセルラ式無線インタフェースのうちの1つのような、無線ネットワーキング・インタフェースであることが可能である。
図34は、仮想化サーバ3402及び仮想化データベース3404を含むクラウド・コンピューティング・プラットフォーム3400を描写する。一般的に仮想化サーバ3402は、それらを利用する任意のアプリケーションに単一のサーバとして見える複数の物理的サーバを備える。仮想化データベース3404は、仮想化データベース3404を使用する単一のデータベースとして同様に提供する。
図35Aは、クラウド・ベースの画像編成システムの主要なソフトウェア・コンポーネントを説明するソフトウェア・ブロック図を描写する。モバイル・コンピューティング・デバイス3300は、そのプロセッサ3302上で動作するさまざまなコンポーネント及び他のコンポーネントを含む。カメラ・モジュール3502は、通常デバイス製造元またはオペレーティング・システム製造者により実装され、ユーザの指示で写真を作成し、これらの写真を画像リポジトリ3504に蓄積する。画像リポジトリ3504は、たとえば、モバイル・コンピューティング・デバイス3300の内部ストレージ3310またはリムーバブル・ストレージ3312上に実装されるファイル・システム内のディレクトリとして実装されることが可能である。前処理及びカテゴリ化コンポーネント3506は、画像リポジトリ内の画像の小規模モデルを生成する。
前処理及びカテゴリ化コンポーネント3506は、たとえば、特定の画像のサムネイルを生成することが可能である。たとえば、4000×3000画素画像は、相当な省スペースをもたらす、240×180画素画像に縮小されることが可能である。加えて、画像シグネチャは、小規模モデルとして生成され使用されることが可能である。画像シグネチャは、たとえば、画像についての特徴の集合を含むことが可能である。これらの特徴は、限定されないが、画像の色ヒストグラム、画像のLBP特徴などを含むことが可能である。シーン認識及び顔認識アルゴリズムを記述するときに、これらの特徴のより完全なリスト作成を上記で考察する。加えて、画像と関連した任意のジオタグ情報ならびに日付及び時間情報は、サムネイルまたは画像シグネチャも加えて送信されることが可能である。また、別個の実施形態において、モバイル・デバイスのネットワーク・インタフェースと関連したMAC識別子、またはモバイル・デバイスと関連して生成された汎用一意識別子(UUID)のような、モバイル・デバイスのインディシアは、サムネイルとともに送信される。
前処理及びカテゴリ化コンポーネント3506は、いくつかの異なる方式で起動されることが可能である。第一に、前処理及びカテゴリ化コンポーネント3506は、画像リポジトリ3504内のすべての画像を介して反復することが可能である。通常これは、たとえば、アプリケーションを最初にインストールするときに、またはユーザの指示で、発生する。第二に、前処理及びカテゴリ化コンポーネント3506は、ユーザにより起動されることが可能である。第三に、前処理及びカテゴリ化コンポーネント3506は、画像リポジトリ3504内で新規の画像を検出するときに起動されることが可能である。第四に、前処理及びカテゴリ化コンポーネント3506は、たとえば、1日1回または1時間1回のように、定期的に起動されることが可能である。
前処理及びカテゴリ化コンポーネント3506は、小規模モデルをそれらを作成する場合にネットワーキング・モジュール3508に伝える。またこのネットワーキング・モジュール3508は、カスタム検索用語画面3507とインタフェースで接続する。このカスタム検索用語画面3507は、以下に記述されるように、カスタム検索用語を受け取る。次にネットワーキング・モジュール3508は、単一の小規模モデル(または複数の小規模モデル)をクラウド・プラットフォーム3400へ送信し、クラウド・プラットフォーム3400上で動作するネットワーキング・モジュール3516は、小規模モデルを受信する。ネットワーキング・モジュール3516は、小規模モデルを仮想化サーバ3402上で動作する画像構文解析器及び認識器3518に伝える。
画像構文解析器及び認識器3518は、本開示の前節で考察されたアルゴリズムを使用し、小規模モデルを記述するタグ・リストを生成する。次に画像構文解析器及び認識器3518は、構文解析された小規模モデルに対応する画像のタグ・リスト及びインディシアを伝えて、ネットワーキング・モジュール3516に返す、タグ・リスト及びインディシアを送信して、モバイル・コンピューティング・デバイス3300のネットワーキング・モジュール3508に返す。次にタグ・リスト及びインディシアをネットワーキング・モジュール3508から前処理及びカテゴリ化モジュール3506に伝え、データベース3510内でタグ・リスト及びインディシアを関連付ける記録を作成する。
本開示の画像編成システムの1つの実施形態において、またタグをモバイル・デバイスのインディシアに加えてデータベース3520内に格納する。これは、画像リポジトリを複数のデバイス間で検索することを可能にする。
図35Bに移行し、画像検索機能を実装するソフトウェア・コンポーネントを描写するソフトウェア・ブロック図を説明する。検索画面3512は、検索文字列をユーザから受け取る。検索文字列3512は、データベース・インタフェース3516に提出される格納されたタグ・リストを生成する自然言語プロセッサ3513に提出される。次にデータベース・インタフェース3516は、画像画面3514上に描写される画像リストを返す。
自然言語プロセッサ3513は、たとえば、距離メトリックに基づき、タグ・リストをソートすることが可能である。たとえば、「ビーチの犬」の検索文字列は、「犬」及び「ビーチ」の両方でタグ付けされる画像リストを生成する。しかしながら、ソートされたリストの下位は、「犬」または「ビーチ」またはさらに「猫」でもタグ付けされる画像である。猫は、オペレータがペットのタイプについて検索したために含まれ、複数のタイプのペットの写真、たとえば、猫またはカナリアがモバイル・コンピューティング・デバイスに存在する場合に、それらも返す。
また位置を検索文字列として使用することが可能である。たとえば、「ボストン」の検索文字列は、マサチューセッツ州ボストンの境界内の位置でジオタグ付けされたすべての画像を返す。
図36Aは、クラウド・プラットフォーム3400への小規模モデルの送信前にモバイル・コンピューティング・デバイス3300上で動作するプリプロセッサ及びカテゴライザ3506により実行されたステップを図示するフローチャートを描写する。ステップ3602で、画像リポジトリ内に新規の画像を記録する。ステップ3604で、画像を処理して小規模モデルを生成し、ステップ3606で、小規模モデルをクラウド・プラットフォーム3400へ送信する。
図36Bは、クラウド・プラットフォーム3400からの小規模モデルの受信後にモバイル・コンピューティング・デバイス3300上で動作するプリプロセッサ及びカテゴライザ3506により実行されたステップを図示するフローチャートを描写する。ステップ3612において、画像に対応するタグ・リスト及びインディシアを受信する。ステップ3614において、タグ・リスト及びインディシアを関連付ける記録を作成し、ステップ3616で、この記録をデータベース3510へコミットする。
またステップ3614でデータベース記録を形成するために使用されるタグは、自動的にアルバムを作成するために使用されることが可能である。これらのアルバムは、ユーザが画像リポジトリを閲覧することを可能にする。たとえば、アルバムは、画像に含まれるもののタイプに基づき作成されることが可能である、すなわち「犬」とタイトルを付けられたアルバムは、ユーザの画像リポジトリ内の犬の写真を含むすべての画像を含む。同様に、アルバムは、「夕焼け」または「自然」のような、シーン・タイプに基づき自動的に作成されることが可能である。またアルバムは、「デトロイト」アルバムまたは「サン・フランシスコ」アルバムのような、ジオタグ情報に基づき作成されることが可能である。加えて、アルバムは、「2013年6月21日」または「2012年の大晦日の真夜中」のような、日付及び時間で作成されることが可能である。
図37は、クラウド・コンピューティング・プラットフォーム3400上で動作する画像構文解析器及び認識器3518により実行され、システムにより構文解析された小規模モデルに対応する画像を記述するタグ・リストを生成するステップを説明するフローチャートを描写する。ステップ3702で、小規模モデルを受信する。ステップ3704で、小規模モデルに対応する画像のインディシアを抽出し、ステップ3706で、上記で説明された方法を使用して小規模モデルを構文解析し、画像特徴を認識する。ステップ3708で、小規模モデルについてのタグ・リストを生成する。たとえば、背景にボートを含む1グループの人々のビーチでの写真は、「ビーチ」及び「ボート」と同様に写真内の人々の名前をタグとして生成することができる。最終的に、ステップ3710で、構文解析された小規模モデルに対応する画像のタグ・リスト及びインディシアをクラウド・コンピューティング・プラットフォーム3400からモバイル・コンピューティング・デバイス3300へ送信する。
図38は、モバイル・コンピューティング・デバイス3300及びクラウド・コンピューティング・プラットフォーム3400間の通信のシーケンス図を描写する。ステップ3802で、モバイル・コンピューティング・デバイス3300上の画像リポジトリ内の画像を処理し、この画像に対応する小規模モデルを作成する。ステップ3804で、小規模モデルをモバイル・コンピューティング・デバイス3300からクラウド・プラットフォーム3400へ送信する。ステップ3806で、クラウド・プラットフォーム3400は、小規模モデルを受信する。ステップ3808で、画像インディシアを小規模モデルから抽出し、ステップ3810で、構文解析及び認識プロセスを使用して、この小規模モデルから画像特徴を抽出する。ステップ3812で、これらの画像特徴は、タグ・リスト及びステップ3808で抽出された画像インディシアを含むパケットにまとめられる。
ステップ3814で、タグ・リスト及び画像インディシアを含むパケットをクラウド・プラットフォーム3400からモバイル・コンピューティング・デバイス3300へ送信する。ステップ3816で、タグ・リスト及び画像インディシアを含むパケットを受信する。ステップ3818で、画像インディシア及びタグ・リストを関連付けるデータベース記録を作成し、ステップ3820で、データベース記録をデータベースにコミットする。
図39は、モバイル・コンピューティング・デバイス上の画像リポジトリ内の画像を検索することが可能なプロセスのフローチャートを描写する。ステップ3902で、検索画面を表示する。検索画面は、ユーザがステップ3904で受け取られる、検索文字列を入力することを可能にする。ステップ3906で、検索文字列を自然言語構文解析器3513に提出する。この検索文字列は、「犬」のような単語、または「犬及び猫」のような用語の組み合わせであることが可能である。また検索文字列は、たとえば、「夕焼け」または「自然」のような場面設定を記述する用語、「動物」または「食べ物」のような特定のカテゴリを記述する用語、ならびに特定の位置または日付及び時間帯を記述する用語を含むことが可能である。検索画面は、音声コマンドを介してでも、すなわち、ユーザが語句「犬及び猫」を話すことで、受け取ることが可能であることに留意するべきである。
自然言語構文解析器3513は、検索文字列を受け取り、データベース3510内に存在するタグ・リストを返す。自然言語構文解析器3513をデータベース3510内のタグ用語でトレーニングする。
ステップ3908に移行し、自然言語構文解析器は、ソートされたタグ・リストを返す。ステップ3910で、ソートされたリスト内のすべてのタグを介してループするループをインスタンス化する。ステップ3912で、タグ・リスト内の現在のタグに基づきデータベースを検索する。ステップ3912で、検索されたタグに対応する画像についてデータベースを検索する。
ステップ3914で、検索されたタグにマッチングするルールを先に確立したかどうかを判定する確認を行う。検索されたタグにマッチングするルールを確立した場合に、このルールをステップ3916で有効にする。ステップ3918で、検索されたタグに対応する画像をマッチング・セットに追加する。マッチング画像(またはこれらの画像のインディシア)をソートされたタグ・リストの順序に対応する順序で追加する場合に、またマッチング・セット内の画像をソートされたタグ・リストの順序でソートする。次に実行は、ステップ3920へ移行し、現在のタグがソートされたリスト内の最後のタグであるかどうかを判定する確認を行う。そうではない場合に、実行は、ステップ3921へ転移し、ソートされたリスト内の次のタグを選択する。ステップ3920に戻り、現在のタグがソートされたリスト内の最後のタグである場合に、実行は、ステップ3922に移行し、プロセスを終了する。
上記で、以前に確立されたルールの確認を行うようなステップ3914を記述した。開示された画像編成システムのこの特徴は、システムの検索及び編成システムをユーザのモバイル・デバイス上の他のアプリケーションと共有することを可能にする。これは、検索された画像が特定のカテゴリにマッチングするときに構成されたルールを有効にすることで達成される。たとえば、検索された画像を名刺のような名札としてカテゴリ化する場合に、光学文字認識(OCR)アプリケーションと名刺を共有するルールを有効にすることが可能である。同様に、検索された画像を「犬」または「猫」としてカテゴリ化する場合に、ユーザが画像をペット愛好家の友達と共有したいかどうかを尋ねるルールを有効にすることが可能である。
図40Aに移行し、ステップ4002で、カスタム検索用語画面3507は、画像に適用されるエリア・タグに加えてユーザからカスタム検索文字列を受け取る。エリア・タグは、ユーザにより画定された幾何学的領域であり、画像のいずれかの部分に適用されることが可能である。たとえば、カスタム検索文字列は、たとえば、画像内の特定の猫を意味するために使用されることが可能である、「フラッフィ」であることが可能である。ステップ4004で、カスタム検索文字列及びエリア・タグをネットワーク・モジュール3508によりクラウド・サーバに送信する。
図40Bに移行し、ステップ4012で、ネットワーク・モジュール3516は、カスタム検索文字列及びエリア・タグを受信する。ステップ4014で、画像構文解析器及び認識器3518は、ステップ4016で格納される、データベース記録内のカスタム検索文字列及びエリア・タグを関連付ける。格納されると、エリア・タグでタグ付けされるアイテムを認識するときに画像構文解析器及び認識器3518は、カスタム検索文字列を返す。その結果、「フラッフィ」をエリア・タグ及びカスタム検索文字列で示した後に、フラッフィの写真を提出する場合に、「フラッフィ」のタグを返す。
クラウド構成に実装されるような開示された画像編成システムを記述するが、またそれを完全にモバイル・コンピューティング・デバイス上に実装することが可能である。このような実装において、画像構文解析器及び認識器3518をモバイル・コンピューティング・デバイス3300上に実装する。加えて、ネットワーキング・モジュール3508及び3516を必要としない。また、追加のモバイル・デバイス、ローカル・サーバ、無線ルータまたはさらに関連したデスクトップ若しくはラップトップ・コンピュータのような、単一のヘルパ・デバイス上にクラウド・コンピューティング部分を実装することが可能である。
明らかに、本開示の多くの追加の修正形態及び変形形態は、上記の教示に照らして、可能である。したがって、添付の特許請求の範囲の範囲内で、具体的に上記で説明されたもの以外で本開示を実施することができることを理解するべきである。たとえば、データベース104は、単一の位置で、または複数の位置間で分散された、1つより多い物理的データベースを含むことが可能である。データベース104は、OracleデータベースまたはMicrosoft SQLデータベースのような、リレーショナル・データベースであることが可能である。あるいは、データベース104は、NoSQL(ノット・オンリSQL)データベースまたはGoogleのBigtableデータベースである。このような事例において、サーバ102は、インターネット110経由でデータベース104にアクセスする。追加の実施例として、サーバ102及び106は、インターネット110と異なるワイド・エリア・ネットワークを介してアクセスされることが可能である。さらに他の実施例として、サーバ1602及び1612の機能性は、1つより多い物理的サーバにより実行されることが可能であり、データベース1604は、1つより多い物理的データベースを含むことが可能である。
本開示の前述の説明は、例示及び説明のために提出されているが、本開示を開示された正確な形態に網羅的である、または限定することを意図されない。この説明は、本教示の原則及びこれらの原則の実施上の適用を最も良く説明し、当業者が意図された特定の用途に適しているようなさまざまな実施形態及びさまざまな修正形態に本開示を最も良く利用することを可能にするにために選択された。本開示の範囲が本明細書により限定されるべきではないが、以下に記述される特許請求の範囲により定められるものとすることを意図する。加えて、狭い特許請求の範囲が以下で示されることがあるが、本発明の範囲が請求項(複数を含む)により提出された範囲よりもはるかに広いことを認識するべきである。より広い特許請求の範囲が本出願から優先権の利益を主張する1つ以上の出願で提出されるであろうことを意図する。上記の説明及び添付の図面が以下の単一の請求項または複数の請求項の範囲内にない追加の主題を開示する限り、追加の発明は公衆に献呈されておらず、このような追加の発明を主張する1つ以上の出願を提出する権利は留保される。

Claims (24)

  1. i)プロセッサ、前記プロセッサに結合されたストレージ・デバイス、前記プロセッサに結合されたネットワーク・インタフェース、及び前記プロセッサに結合されたディスプレイを含むモバイル・コンピューティング・デバイス、
    ii)1つ以上のサーバ及び前記1つ以上のサーバに結合されたデータベースを含むクラウド・コンピューティング・プラットフォーム、
    iii)前記ストレージ・デバイスに格納された画像リポジトリを含む前記モバイル・コンピューティング・デバイス、
    iv)複数の画像を格納する前記画像リポジトリ、
    v)前記プロセッサで動作するように適合された第一ソフトウェアを含む前記モバイル・コンピューティング・デバイス、
    vi)特定の画像の小規模モデルを生成するように適合された前記第一ソフトウェア、前記特定の画像のインディシアを含む前記小規模モデル、
    vii)前記ネットワーク・インタフェースを使用して前記クラウド・コンピューティング・プラットフォームへ前記小規模モデルを送信するように適合された前記第一ソフトウェア、
    viii)前記1つ以上のサーバで動作するように適合された第二ソフトウェアを組み込む前記クラウド・コンピューティング・プラットフォーム、
    ix)前記小規模モデルを受信するように適合された前記第二ソフトウェア、
    x)前記小規模モデルから前記インディシアを抽出するように適合された前記第二ソフトウェア、
    xi)前記受信した小規模モデルに対応するタグ・リストを生成するように適合された前記第二ソフトウェア、
    xii)前記インディシア及び前記タグ・リストを含むパケットを形成するように適合された前記第二ソフトウェア、
    xiii)前記クラウド・コンピューティング・プラットフォームから前記モバイル・コンピューティング・デバイスへ前記パケットを送信するように適合された前記第二ソフトウェア、
    xiv)前記パケットを受信するように適合された前記ネットワーク・インタフェース、
    xv)前記ストレージ・デバイスに格納された第二データベースを含む前記モバイル・コンピューティング・デバイス、
    xvi)前記パケットから前記インディシア及び前記タグ・リストを抽出するように適合された前記第一ソフトウェア、
    xvii)前記インディシアに対応する前記画像と前記タグ・リストを関連付ける前記データベース内に記録を作成するように適合された前記第一ソフトウェア、
    xviii)第三ソフトウェアを組み込む前記モバイル・コンピューティング・デバイス、
    xix)前記ディスプレイ上に検索画面を表示するように適合された前記第三ソフトウェア、
    xx)検索文字列を受け取るように適合された前記検索画面、
    xxi)前記検索文字列を自然言語処理モジュールへ提出するように適合された前記第三ソフトウェア、
    xxii)前記検索文字列に基づきカテゴリ・リストを生成するように適合された前記自然言語処理モジュール、
    xxiii)前記カテゴリ・リストに基づき前記データベースにクエリを行い画像リストを受信するように適合された前記第三ソフトウェア、及び
    xxiv)前記ディスプレイ上に前記画像リストを表示するように適合された前記第三ソフトウェア、
    を備える、画像編成システム。
  2. 前記自然言語処理モジュールは、ソートされたカテゴリ・リストを返し、前記カテゴリ・リストは、距離メトリックによりソートされる、請求項1の前記画像編成システム。
  3. 前記モバイル・コンピューティング・デバイスは、スマートフォン、タブレット・コンピュータ、またはウェアラブル・コンピュータである、請求項1の前記画像編成システム。
  4. 前記ストレージ・デバイスは、フラッシュ・メモリである、請求項1の前記画像編成システム。
  5. 前記モバイル・コンピューティング・デバイスは、スマートフォンであり、前記ストレージ・デバイスは、フラッシュ・メモリである、請求項1の前記画像編成システム。
  6. 前記モバイル・コンピューティング・デバイスは、スマートフォンであり、前記ストレージ・デバイスは、SDメモリ・カードである、請求項1の前記画像編成システム。
  7. 前記ネットワーク・インタフェースは、無線ネットワーク・インタフェースである、請求項1の前記画像編成システム。
  8. 前記無線ネットワーク・インタフェースは、802.11無線ネットワーク・インタフェースである、請求項7の前記画像編成システム。
  9. 前記無線ネットワーク・インタフェースは、セルラ式無線インタフェースである、請求項7の前記画像編成システム。
  10. 前記データベースは、リレーショナル・データベース、オブジェクト指向データベース、NOSQLデータベース、またはNewSQLデータベースである、請求項1の前記画像編成システム。
  11. 前記画像リポジトリは、ファイル・システムを使用して実装される、請求項1の前記画像編成システム。
  12. 前記小規模モデルは、画像のサムネイルである、請求項1の前記画像編成システム。
  13. i)プロセッサ、前記プロセッサに結合されたストレージ・デバイス、及び前記プロセッサに結合されたディスプレイを含むモバイル・コンピューティング・デバイス、
    ii)前記ストレージ・デバイスに格納された画像リポジトリを含む前記モバイル・コンピューティング・デバイス、
    iii)複数の画像を格納する前記画像リポジトリ、
    iv)前記プロセッサで動作するように適合された第一ソフトウェアを含む前記モバイル・コンピューティング・デバイス、
    v)特定の画像に対応する小規模モデルを生成するように適合された前記第一ソフトウェア、前記特定の画像のインディシアを含む前記小規模モデル、
    vi)前記プロセッサで動作するように適合された第二ソフトウェアを組み込む前記モバイル・コンピューティング・デバイス、
    vii)前記第一ソフトウェアとネットワーク・インタフェースで接続するように適合され、さらに前記小規模モデルにアクセスするように適合された前記第二ソフトウェア、
    viii)前記アクセスされた小規模モデルに対応するタグ・リストを生成するように適合された前記第二ソフトウェア、
    ix)前記ストレージ・デバイスに格納されたデータベースを含む前記モバイル・コンピューティング・デバイス、
    x)前記インディシアに対応する前記画像と前記タグ・リストを関連付ける前記データベース内に記録を作成するように適合された前記第二ソフトウェア、
    xi)第三ソフトウェアを組み込む前記モバイル・コンピューティング・デバイス、
    xii)検索画面を前記ディスプレイ上に表示するように適合された前記第三ソフトウェア、
    xiii)検索文字列を受け取るように適合された前記検索画面、
    xiv)前記検索文字列を自然言語処理モジュールへ提出するように適合された前記第三ソフトウェア、
    xv)前記検索文字列に基づきカテゴリ・リストを生成するように適合された前記自然言語処理モジュール、
    xvi)前記カテゴリ・リストに基づき前記データベースにクエリを行い、画像リストを受信するように適合された前記第三ソフトウェア、及び
    xvii)前記画像リストを前記ディスプレイ上に表示するように適合された前記第三ソフトウェア、
    を備える、画像編成システム。
  14. 前記自然言語処理モジュールは、ソートされたカテゴリ・リストを返し、前記カテゴリ・リストは、距離メトリックによりソートされる、請求項13の前記画像編成システム。
  15. 前記モバイル・コンピューティング・デバイスは、スマートフォン、タブレット・コンピュータ、またはウェアラブル・コンピュータである、請求項13の前記画像編成システム。
  16. 前記ストレージ・デバイスは、フラッシュ・メモリである、請求項13の前記画像編成システム。
  17. 前記モバイル・コンピューティング・デバイスは、スマートフォンであり、前記ストレージ・デバイスは、フラッシュ・メモリである、請求項13の前記画像編成システム。
  18. 前記モバイル・コンピューティング・デバイスは、スマートフォンであり、前記ストレージ・デバイスは、SDメモリ・カードである、請求項13の前記画像編成システム。
  19. 前記ネットワーク・インタフェースは、無線ネットワーク・インタフェースである、請求項13の前記画像編成システム。
  20. 前記無線ネットワーク・インタフェースは、802.11無線ネットワーク・インタフェースである、請求項19の前記画像編成システム。
  21. 前記無線ネットワーク・インタフェースは、セルラ式無線インタフェースである、請求項19の前記画像編成システム。
  22. 前記データベースは、リレーショナル・データベース、オブジェクト指向データベース、NOSQLデータベース、またはNewSQLデータベースである、請求項13の前記画像編成システム。
  23. 前記画像リポジトリは、ファイル・システムを使用して実装される、請求項13の前記画像編成システム。
  24. 前記小規模モデルは、画像のサムネイルである、請求項13の前記画像編成システム。
JP2016575531A 2014-06-27 2015-06-19 モバイル・コンピューティング・デバイスに格納された写真を編成するためのシステム、方法及び装置 Active JP6431934B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/316,905 2014-06-27
US14/316,905 US20180107660A1 (en) 2014-06-27 2014-06-27 System, method and apparatus for organizing photographs stored on a mobile computing device
PCT/US2015/036637 WO2015200120A1 (en) 2014-06-27 2015-06-19 System, method and apparatus for organizing photographs stored on a mobile computing device

Publications (2)

Publication Number Publication Date
JP2017530434A JP2017530434A (ja) 2017-10-12
JP6431934B2 true JP6431934B2 (ja) 2018-11-28

Family

ID=54938686

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016575531A Active JP6431934B2 (ja) 2014-06-27 2015-06-19 モバイル・コンピューティング・デバイスに格納された写真を編成するためのシステム、方法及び装置

Country Status (9)

Country Link
US (1) US20180107660A1 (ja)
EP (1) EP3161655A4 (ja)
JP (1) JP6431934B2 (ja)
KR (1) KR102004058B1 (ja)
CN (1) CN107003977B (ja)
AU (1) AU2015280393B2 (ja)
CA (1) CA2952974C (ja)
SG (1) SG11201610568RA (ja)
WO (1) WO2015200120A1 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150120224A1 (en) 2013-10-29 2015-04-30 C3 Energy, Inc. Systems and methods for processing data relating to energy usage
KR102230267B1 (ko) * 2014-09-04 2021-03-19 삼성전자주식회사 영상 표시 장치 및 방법
US10185894B2 (en) * 2015-03-26 2019-01-22 Beijing Kuangshi Technology Co., Ltd. Picture management method and device, picture synchronization method and device
EP3278213A4 (en) * 2015-06-05 2019-01-30 C3 IoT, Inc. SYSTEMS, METHODS AND DEVICES FOR AN APPLICATION DEVELOPMENT PLATFORM OF AN INTERNET OF THE THINGS OF A COMPANY
CN106776662B (zh) 2015-11-25 2020-03-03 腾讯科技(深圳)有限公司 一种照片的分类整理方法和装置
US10528799B2 (en) 2016-12-23 2020-01-07 Samsung Electronics Co., Ltd. Electronic apparatus and operation method thereof
CN108959312B (zh) * 2017-05-23 2021-01-29 华为技术有限公司 一种多文档摘要生成的方法、装置和终端
US10839002B2 (en) 2017-06-04 2020-11-17 Apple Inc. Defining a collection of media content items for a relevant interest
US10922354B2 (en) 2017-06-04 2021-02-16 Apple Inc. Reduction of unverified entity identities in a media library
CN109215055A (zh) * 2017-06-30 2019-01-15 杭州海康威视数字技术股份有限公司 一种目标特征提取方法、装置及应用***
CN108230491A (zh) * 2017-07-20 2018-06-29 深圳市商汤科技有限公司 门禁控制方法和装置、***、电子设备、程序和介质
US10572321B2 (en) * 2018-03-12 2020-02-25 Amazon Technologies, Inc. Machine learning repository service
CN108334439B (zh) * 2018-03-14 2021-06-04 百度在线网络技术(北京)有限公司 一种压力测试方法、装置、设备和存储介质
US11169677B1 (en) * 2018-06-08 2021-11-09 Wells Fargo Bank, N.A. Future state graphical visualization generator
US11748418B2 (en) * 2018-07-31 2023-09-05 Marvell Asia Pte, Ltd. Storage aggregator controller with metadata computation control
US11947591B2 (en) 2018-09-18 2024-04-02 Google Llc Methods and systems for processing imagery
US10872232B2 (en) * 2018-11-19 2020-12-22 Adobe Inc. Image filtering for subject and crowd identification
US11061982B2 (en) * 2018-12-06 2021-07-13 International Business Machines Corporation Social media tag suggestion based on product recognition
US10832096B2 (en) * 2019-01-07 2020-11-10 International Business Machines Corporation Representative-based metric learning for classification and few-shot object detection
WO2020168252A1 (en) * 2019-02-15 2020-08-20 Keee, Llc Shared privacy protected databases for person of interest
CN110490910A (zh) * 2019-08-13 2019-11-22 顺丰科技有限公司 目标检测方法、装置、电子设备及存储介质
US11704356B2 (en) 2019-09-06 2023-07-18 Dropbox, Inc. Restoring integrity of a social media thread from a social network export
JP7379059B2 (ja) * 2019-10-02 2023-11-14 キヤノン株式会社 中間サーバ装置、情報処理装置、通信方法
CN111209423B (zh) * 2020-01-07 2023-04-07 腾讯科技(深圳)有限公司 一种基于电子相册的图像管理方法、装置以及存储介质
US20230205812A1 (en) * 2021-12-03 2023-06-29 Awes.Me, Inc. Ai-powered raw file management
CN114611400B (zh) * 2022-03-18 2023-08-29 河北金锁安防工程股份有限公司 一种预警信息筛选方法及***
CN114840700B (zh) * 2022-05-30 2023-01-13 来也科技(北京)有限公司 结合rpa和ai实现ia的图像检索方法、装置及电子设备

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3658761B2 (ja) * 2000-12-12 2005-06-08 日本電気株式会社 画像検索システムとその画像検索方法、及び画像検索プログラムを記録した記憶媒体
WO2002057959A2 (en) * 2001-01-16 2002-07-25 Adobe Systems Incorporated Digital media management apparatus and methods
US7809722B2 (en) * 2005-05-09 2010-10-05 Like.Com System and method for enabling search and retrieval from image files based on recognized information
TWI265715B (en) * 2005-07-21 2006-11-01 Inventec Appliances Corp Method for collecting business card data in mobile communication apparatus
JP2008191936A (ja) * 2007-02-05 2008-08-21 Fujifilm Corp コンテンツ登録・検索システムの構築支援方法、およびコンテンツ登録・検索システムの構築支援装置
US20090280859A1 (en) * 2008-05-12 2009-11-12 Sony Ericsson Mobile Communications Ab Automatic tagging of photos in mobile devices
JP5237724B2 (ja) * 2008-08-19 2013-07-17 オリンパスイメージング株式会社 画像検索システム
US8457366B2 (en) * 2008-12-12 2013-06-04 At&T Intellectual Property I, L.P. System and method for matching faces
WO2010071617A1 (en) * 2008-12-15 2010-06-24 Thomson Licensing Method and apparatus for performing image processing
US8886206B2 (en) * 2009-05-01 2014-11-11 Digimarc Corporation Methods and systems for content processing
EP2402867B1 (en) * 2010-07-02 2018-08-22 Accenture Global Services Limited A computer-implemented method, a computer program product and a computer system for image processing
US20120324002A1 (en) * 2011-02-03 2012-12-20 Afolio Inc. Media Sharing
US9268995B2 (en) * 2011-04-11 2016-02-23 Intel Corporation Smile detection techniques
JP5401695B2 (ja) * 2011-05-23 2014-01-29 株式会社モルフォ 画像識別装置、画像識別方法、画像識別プログラム及び記録媒体
CN108073948A (zh) * 2012-01-17 2018-05-25 华为技术有限公司 一种照片分类管理方法、服务器、装置及***
US9008433B2 (en) * 2012-02-08 2015-04-14 International Business Machines Corporation Object tag metadata and image search
US8824750B2 (en) * 2012-03-19 2014-09-02 Next Level Security Systems, Inc. Distributive facial matching and notification system
JP6184125B2 (ja) * 2012-04-12 2017-08-23 キヤノン株式会社 医療支援システム
US8996305B2 (en) * 2012-06-07 2015-03-31 Yahoo! Inc. System and method for discovering photograph hotspots
WO2013185237A1 (en) * 2012-06-15 2013-12-19 Yang Dr En-Hui Methods and systems for automatically and efficiently categorizing, transmitting, and managing multimedia contents
US20140115099A1 (en) * 2012-07-17 2014-04-24 Nowshade Kabir Method and System for Integrating Information from Mobile Devices to a Semantic Knowledge Repository
US8799829B2 (en) * 2012-09-28 2014-08-05 Interactive Memories, Inc. Methods and systems for background uploading of media files for improved user experience in production of media-based products

Also Published As

Publication number Publication date
CN107003977B (zh) 2021-04-06
EP3161655A1 (en) 2017-05-03
JP2017530434A (ja) 2017-10-12
CA2952974A1 (en) 2015-12-30
EP3161655A4 (en) 2018-03-07
SG11201610568RA (en) 2017-01-27
KR20170023168A (ko) 2017-03-02
CN107003977A (zh) 2017-08-01
KR102004058B1 (ko) 2019-07-25
AU2015280393A1 (en) 2017-01-12
WO2015200120A1 (en) 2015-12-30
US20180107660A1 (en) 2018-04-19
AU2015280393B2 (en) 2018-03-01
CA2952974C (en) 2021-09-14

Similar Documents

Publication Publication Date Title
JP6431934B2 (ja) モバイル・コンピューティング・デバイスに格納された写真を編成するためのシステム、方法及び装置
US10176196B2 (en) System, method and apparatus for scene recognition
US20150317511A1 (en) System, method and apparatus for performing facial recognition
US10515275B2 (en) Intelligent digital image scene detection
US10140515B1 (en) Image recognition and classification techniques for selecting image and audio data
US9430719B2 (en) System and method for providing objectified image renderings using recognition information from images
Gao et al. 3-D object retrieval and recognition with hypergraph analysis
EP3084682B1 (en) System and method for identifying faces in unconstrained media
Li et al. GPS estimation for places of interest from social users' uploaded photos
US8649572B2 (en) System and method for enabling the use of captured images through recognition
US7809192B2 (en) System and method for recognizing objects from images and identifying relevancy amongst images and information
Zhang et al. An effective video summarization framework toward handheld devices
US20060253491A1 (en) System and method for enabling search and retrieval from image files based on recognized information
EP2588974A1 (en) A computer-implemented method, a computer program product and a computer system for image processing
Chen et al. Discriminative BoW framework for mobile landmark recognition
Nie et al. Perceptual attributes optimization for multivideo summarization
WO2006122164A2 (en) System and method for enabling the use of captured images through recognition
Lee et al. A scalable service for photo annotation, sharing, and search
Farhat et al. Captain: Comprehensive composition assistance for photo taking
Doukim et al. State of the art of content-based image classification

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180524

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181009

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181105

R150 Certificate of patent or registration of utility model

Ref document number: 6431934

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250