(58)【調査した分野】(Int.Cl.,DB名)
前記配置されたエンティティは、前記プライベート・エンティティ内に、その上に、その下に、若しくはこれに近接して位置しているエンティティである、請求項1乃至4のいずれか一項に記載の方法。
前記ビデオストリームを修正することは、前記グラフィカル要素を生成し、これが前記配置されたエンティティの簡略化した3Dモデルを表すようにすることを含む、請求項1乃至5のいずれか一項に記載の方法。
拡張される前記プライベート・エンティティについて記述するユーザ入力を受け取るように適合されたユーザ入力インターフェースをさらに含み、前記情報生成器は、受け取った前記ユーザ入力に基づいて前記プライベート・エンティティ情報を生成するようにさらに適合される、請求項11に記載のシステム。
前記配置されたエンティティは、前記プライベート・エンティティ内に、その上に、その下に、若しくはこれに近接して位置しているエンティティである、請求項11乃至請求項14のいずれか一項に記載のシステム。
前記ビデオ修正ユニットは、前記グラフィカル要素を生成し、これが前記配置されたエンティティの簡略化した3Dモデルを表すように適合される、請求項11乃至請求項15のいずれか一項に記載のシステム。
前記グラフィカル要素は、前記配置されたエンティティの前記部分のマスクした又はぼかしたバージョンを含む、請求項11乃至請求項16のいずれか一項に記載のシステム。
前記修正されたビデオストリームを前記環境から遠隔に位置する人に表示するように適合されたディスプレイ・ユニットをさらに含む、請求項11乃至請求項18のいずれか一項に記載のシステム。
【発明の概要】
【発明が解決しようとする課題】
【0007】
従って、当技術分野において、上述の問題に対処するための必要性が存在する。
【課題を解決するための手段】
【0008】
第1の態様から見ると、本発明は、拡張されるプライベート・エンティティを含む環境のビデオストリームを拡張するコンピュータ実施方法を提供し、この方法は、環境内のエンティティの少なくとも部分の存在を識別するために、エンティティ認識アルゴリズムに従ってビデオストリームを処理することと、識別したエンティティ(identified entity)の少なくとも1つの特性に関する識別エンティティ情報を生成することと、生成された識別エンティティ情報及びプライベート・エンティティに関するプライベート・エンティティ情報に基づいて、識別したエンティティを拡張するかどうかを判断することと、識別したエンティティを拡張すると判断された場合、識別したエンティティの少なくとも部分を、ビデオ内の識別したエンティティの部分を覆い隠す(obscure)ように適合されたグラフィカル要素と置き換えるように、ビデオストリームを修正することと、を含む。
【0009】
更に別の態様から見ると、本発明は、拡張されるプライベート・エンティティを含む環境のビデオストリームを拡張するためのコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、処理回路により読み取り可能であり、本発明のステップを実行する方法を実施するための処理回路により実行される命令を格納する、コンピュータ可読ストレージ媒体を含む。
【0010】
更に別の態様から見ると、本発明は、拡張されるプライベート・エンティティを含む環境のビデオストリームを拡張するための拡張システムを提供し、このシステムは、環境内のエンティティの少なくとも部分の存在を識別するために、エンティティ認識アルゴリズムに従って環境のビデオストリームを処理するように適合されたビデオ処理ユニットと、識別したエンティティの少なくとも1つの特性に関する識別エンティティ情報を生成するように適合された情報生成器と、生成された識別エンティティ情報及びプライベート・エンティティに関するプライベート・エンティティ情報に基づいて、識別したエンティティを拡張するかどうかを判断するように適合された処理ユニットと、識別したエンティティを拡張すると判断された場合、識別したエンティティの少なくとも部分を、ビデオ内の識別したエンティティの部分を覆い隠すように適合されたグラフィカル要素と置き換えるように、ビデオストリームを修正するように適合されたビデオ修正ユニットとを含む。
【0011】
更に別の態様から見ると、本発明は、コンピュータ可読媒体上に格納され、デジタル・コンピュータの内部メモリ内にロード可能なコンピュータ・プログラムであって、プログラムがコンピュータ上で実行されるとき、本発明のステップを実行するためのソフトウェア・コード部分を含む、コンピュータ・プログラムを提供する。
【0012】
提案されるのは、視聴されるビデオ内の情報のプライバシー又は機密性を保持しながら、環境から遠隔に位置する人により、ビデオストリームを視聴することができるように、プライベート又は機密情報を含む環境のビデオストリームを拡張する概念である。環境においてプライベート・エンティティを識別することを可能にすることにより、ビデオが拡張されるエンティティ(プライベート・エンティティ自身、又はプライベート・エンティティと所定の特別な関係を有するエンティティ)を含むかどうかを識別するために、環境のビデオを処理することができる。次に、識別したエンティティが、ビデオの視聴者により視聴されることを防止するように、ビデオを変更することができる。例えば、識別したエンティティは、ぼかすこと、マスクすること、ブロックすること、又は異なる画像に置き換えることができ、ビデオは、関連するプライベート情報、センシティブ情報、又は機密情報を表示しない。
【0013】
特に、識別したエンティティに関する情報及び環境のプライベート・エンティティに関する情報に基づいて、環境のビデオストリームにおいて識別されたエンティティを拡張するかどうかを判断し、次に、識別したエンティティ、及び/又はこれが含み得るセンシティブ/プライベート情報の表示を防止するように、識別したエンティティ(の少なくとも部分)を、識別したエンティティ(の少なくとも部分)を覆い隠すグラフィカル要素と置き換えるように、ビデオストリームを修正することが提案される。例えば、プライベート・エンティティに関する種々のタイプの情報を用いることにより、実施形態は、プライバシー/機密性を依然として保持しながら、環境及び/又はプライベート・エンティティの変化に対応することができる。
【0014】
また、ビデオストリームからの情報と共に、拡張されるプライベート・エンティティについての所定の情報を利用することにより、ビデオストリームをリアルタイムで処理及び修正することができ、ビデオ環境内のプライベート又は機密のコンテンツを危うくする(例えば、露出する、又は可視に/見えるようにする)ことなく、ライブ方式で1又は複数の遠隔視聴者にブロードキャストできることも留意されたい。
【0015】
ビデオストリームの修正は、例えば、視聴者の視聴特権及び/又はセキュリティ証明書によって決まり得る。従って、実施形態は、視聴者の認証特権又は信頼性に応じて、ビデオをキャプチャし、遠隔ユーザにブロードキャストすることを可能にすることができ、視聴されるビデオにおいて、環境内の特定のプライベート情報を選択的に表示すること又は覆い隠すことができる。実施形態はまた、拡張現実システム/方法で用いられる環境内のプライバシー・ゾーン又はエリアの実装も可能にする。
【0016】
さらに、実施形態により、ビデオストリームを処理し、及び/又はビデオストリーム内のエンティティを識別及び追跡するための多くの異なる方法を用いることができ、その幾つかは、仮想現実及び拡張現実システムにおいて広く知られており、用いられている。従って、実施形態の技術的要件は、既に周知であり、広く利用可能であり、従って、実施形態を比較的容易に及び/又は安価に実施することが可能である。
【0017】
実施形態は、拡張されるプライベート・エンティティを記述するユーザ入力を受け取ることと、受け取ったユーザ入力に基づいてプライベート・エンティティ情報を生成することとをさらに含むことができる。従って、こうした実施形態は、ユーザが、プライベート又は機密に保持することを望む環境内のアイテム、オブジェクト、領域、又はエンティティにタグ付けすることを可能にする。次に、ユーザ入力情報を用いて、プライベート/機密のオブジェクト、領域、又はエンティティについての情報及び規則を生成し、それにより、環境のビデオストリームにおけるその識別及び拡張を可能にすることができる。このことは、高度の柔軟性をもたらし、また、環境における変化に対応することもできる。
【0018】
プライベート・エンティティ情報は、プライベート・エンティティの場所を表すプライベート・エンティティ場所情報、プライベート・エンティティの向きを表すプライベート・エンティティ方角情報、プライベート・エンティティの少なくとも1つの幾何学的特性を表すプライベート・エンティティ幾何学情報、プライベート・エンティティの少なくとも1つの色を表すプライベート・エンティティ色情報、及び3D座標空間におけるプライベート・エンティティの位置を表すプライベート・エンティティ3D座標情報のうちの少なくとも1つを含むことができる。従って、様々な情報を用いて、環境内のプライベート・オブジェクト/エンティティについて記述することができ、それにより、環境のビデオストリームにおけるプライベート・オブジェクト/エンティティの存在を判断する際に、高度な柔軟性又は精度が可能になる。
【0019】
識別エンティティ情報は、ビデオストリームをキャプチャするように適合されたビデオ・キャプチャ・デバイスの撮影方向(viewing direction)を表す撮影方向情報、ビデオ・キャプチャ・デバイスの位置を表す撮影位置(viewing position)情報、識別したエンティティの場所を表す識別エンティティ場所情報、識別したエンティティの向きを表す識別エンティティ方角情報、識別したエンティティの少なくとも1つの幾何学的特性を表す識別エンティティ幾何学情報、識別したエンティティの少なくとも1つの色を表す識別エンティティ色情報、及び3D座標空間における識別したエンティティの位置を表す識別エンティティ3D座標情報のうちの少なくとも1つを含むことができる。従って、様々な情報を用いて、環境内のプライベート・オブジェクト/エンティティについて記述することができ、それにより、環境のビデオストリームにおけるプライベート・オブジェクト/エンティティの存在を判断する際に、高度な柔軟性又は精度が可能になる。
【0020】
識別したエンティティを拡張するかどうかを判断するステップは、識別したエンティティが、プライベート・エンティティと実質的に合致するか、又はプライベート・エンティティ内に、その上に、その下に、若しくはこれに近接して位置しているかを判断することを含むことができる。識別したエンティティがプライベート・エンティティと実質的に合致する、又はプライベート・エンティティ内に、その上に、その下に、若しくはこれに近接して位置していると判断された場合、識別したエンティティを拡張すると判断することができる。従って、実施形態は、プライベートであることが予め定められたアイテムを拡張するだけでなく、プライベート・エンティティと所定の関係で配置された(プライベート・オブジェクト/アイテム内に、その上に、その下に、そのすぐ近くに、その隣に、それに隣接して、又はそれに近接して配置された)アイテムを拡張することも可能にする。例えば、テーブルは、プライベート・テーブルとすることができ、テーブルの上面上に置かれたいずれのアイテムも、プライベート/機密のものとして扱うことができ、従って、ビデオストリーム内で拡張される。このように、環境において何がプライベート又は機密であるかの定義を可能にした場合、実施形態は、多くの柔軟性を提供することができる。こうした柔軟性により、例えば、環境内の人が、単に、機密であると考えられるいずれかのアイテムを、所定のプライベート・エンティティの上に置くだけで、それをビデオ内で拡張することが可能になる。従って、環境においてプライベート/機密のアイテム/オブジェクトを指定するための、ビデオストリーム・キャプチャ・システムとの複雑な及び/又は時間を消費する対話を回避することができる。
【0021】
幾つかの実施形態において、ビデオストリームを修正するステップは、識別したエンティティが、プライベート・エンティティと実質的に合致するか、又はプライベート・エンティティ内に、その上に、その下に、若しくはそれに近接して位置しているかを判断することに基づいて、グラフィカル要素を生成することを含むことができる。
【0022】
従って、例えば、異なる色又はグラフィカル効果のグラフィカル要素によってアイテム/オブジェクトを覆い隠すことにより、修正されたビデオストリームにおける異なる拡張されたアイテム/オブジェクトを互いに区別することができる。
【0023】
また、ビデオストリームを修正するステップは、グラフィカル要素を生成し、これが識別したエンティティの簡略化した3Dモデルを表すようにすることを含むことができる。例えば、識別したエンティティを、エンティティの詳細を不明瞭にする、立方体又はボックスのような簡単な3Dモデルに置き換えることができる。こうしたモデルは、拡張される(例えば、ビデオ内のビューから隠される又は覆い隠される)エンティティの詳細をマスクする又は隠すように、単一の不透明色の平坦な表面を有し得る。
【0024】
1つの実施形態において、識別したエンティティを拡張するかどうかを判断するステップは、ビデオストリームのターゲット視聴者の視聴特権又はアクセス権を判断することと、ターゲット視聴者の視聴特権又はアクセス権が所定の要件を満たさない場合、識別したエンティティを拡張すると判断することとを含むことができる。このように、ビデオ環境におけるプライベート・アイテム又は情報の表示を制御することができるので、信頼できるパーティ(例えば、遠隔に位置する視聴者)だけが、環境のビデオ内のプライベート・アイテム/情報を見ることができる。逆に、信頼できないパーティ(例えば、識別されない一般大衆の視聴者又は未知のサード・パーティ)は、修正された(例えば、拡張された)ビデオしか視聴することができず、そこでは、プライベート/機密のアイテムをレンダリングし(例えば、置換用グラフィカル要素又は効果を用いて)、ビューから覆い隠す。
【0025】
実施形態において、グラフィカル要素は、識別したエンティティの部分のマスクした又はぼかしたバージョンを含むことができる。このように、プライベート又は機密であるように識別されたエンティティを、リアルタイムで及び/又は僅かな処理/レンダリング・オーバーヘッドで実施することができる簡単なグラフィック処理/レンダリング技術を用いて、ぼかすこと又はビューからマスクすることが可能である。
【0026】
修正されたビデオストリームを、環境から遠隔に位置する人に表示することができる。例えば、環境は、修正されたビデオを1又は複数のサード・パーティの視聴者に通信又はブロードキャストする前に、修正された(例えば、拡張された)ビデオストリームを生成するように適合することができる。逆に、最初にキャプチャされたビデオを1又は複数のビデオ再生デバイスに通信又はブロードキャストし、そこで、ビデオ再生デバイスは、提案される実施形態に従って受け取ったビデオを修正し、修正された(例えば、拡張された)バージョンのビデオストリームを信頼できない視聴者に表示する。
【0027】
本発明の別の実施形態によると、拡張されるプライベート・エンティティを含む環境のビデオストリームを拡張するためのコンピュータ・プログラム製品が提供され、コンピュータ・プログラム製品は、処理ユニットにより実行可能であり、処理ユニットに方法を実行させるプログラム命令がそこに具体化されたコンピュータ可読ストレージ媒体を含み、方法は、環境内のエンティティの少なくとも部分の存在を識別するために、エンティティ認識アルゴリズムに従って環境のビデオストリームを処理することと、識別したエンティティの少なくとも1つの特性に関する識別エンティティ情報を生成することと、生成された識別エンティティ情報及びプライベート・エンティティに関するプライベート・エンティティ情報に基づいて、識別したエンティティを拡張するかどうかを判断することと、識別したエンティティを拡張すると判断された場合、識別したエンティティの少なくとも部分を、ビデオ内の識別したエンティティの部分を覆い隠すように適合されたグラフィカル要素と置き換えるように、ビデオストリームを修正することとを含む。
【0028】
本発明の別の実施形態によると、拡張されるプライベート・エンティティを含む環境のビデオストリームを拡張するための拡張システムが提供され、このシステムは、環境内のエンティティの少なくとも部分の存在を識別するために、エンティティ認識アルゴリズムに従って環境のビデオストリームを処理するように適合されたビデオ処理ユニットと、識別したエンティティの少なくとも1つの特性に関する識別エンティティ情報を生成するように適合された情報生成器と、生成された識別エンティティ情報及びプライベート・エンティティに関するプライベート・エンティティ情報に基づいて、識別したエンティティを拡張するかどうかを判断するように適合された処理ユニットと、識別したエンティティを拡張すると判断された場合、識別したエンティティの少なくとも部分を、ビデオ内の識別したエンティティの部分を覆い隠すように適合されたグラフィカル要素と置き換えるように、ビデオストリームを修正するように適合されたビデオ修正ユニットとを含む。
【0029】
従って、プライベート/機密情報を含む環境のライブ・ビデオストリームを自動的及び動的に拡張することができるシステムを提案することができる。このシステムは、ビデオストリームを処理し、ビデオストリームをリアルタイムで修正し、修正された(例えば、拡張された)ビデオストリームを提供することができ、ビデオストリーム内に存在する環境の機密のオブジェクト又はエンティティを、グラフィカル要素又は効果に置き換え又はそれらにより覆い隠し、それにより、修正されたビデオストリームの視聴者が、機密情報を視聴することが防止される。例えば、システムは、ビデオストリーム内のプライベート・オブジェクト又はエンティティの位置を追跡し、それらがビデオの表示内にあるときは常に、ぼかされた又はマスクされたままである。従って、提案されるシステムの実施形態は、ビデオストリームをリアルタイムで拡張し、伝送又はブロードキャストされる前のビデオストリームの広範な及び/又は従来の後処理により生じる不要な時間遅延を回避する。
【0030】
実施形態は、拡張されるプライベート・エンティティについて記述するユーザ入力を受け取るように適合されたユーザ入力インターフェースをさらに含むことができる。また、情報生成器は、受け取ったユーザ入力に基づいて、プライベート・エンティティ情報を生成するようにさらに適合することができる。従って、ユーザは、環境のビデオにおいて拡張される環境内のオブジェクト、領域、又はエンティティを定義する(例えば、タグ付けする、記述する、ラベル付けする)ことができる。次に、ユーザからの入力を用いて、こうしたユーザ定義の領域又はエンティティについての情報及び規則を生成し、それにより、環境のビデオストリームにおけるそれらの識別及び拡張が可能になる。
【0031】
このことは、ユーザに対して高度の柔軟性を提供し、また、環境における変化に対応することができる。
【0032】
1つの実施形態において、処理ユニットは、識別したエンティティが、プライベート・エンティティと実質的に合致するか、又はプライベート・エンティティ内に、その上に、その下に、若しくはそれに近接して位置しているかを判断するようにさらに適合することができる。識別したエンティティが、プライベート・エンティティと実質的に合致するか、又はプライベート・エンティティ内に、その上に、その下に、若しくはこれに近接して位置していると判断された場合、識別したエンティティを拡張すると判断することができる。従って、プライベートであることが予め定められたアイテムを拡張するだけでなく、プライベート・オブジェクト/アイテム内に、その上に、その下に、そのすぐ近くに、その隣に、それに隣接して、又はそれに近接して配置されるアイテムも拡張するという概念が提案され得る。このように、環境内でプライベート/機密であるものの定義を可能にするとき、実施形態は、多大な柔軟性を提供できる。こうした柔軟性は、例えば、環境内の人が、単に、機密と考えられるいずれかのアイテムを所定のプライベート・エンティティの上又は中に置くだけで、それをビデオから拡張させることが可能になる。このことは、ビデオ撮影される環境において拡張するアイテム又はオブジェクトを指定するために、ビデオ・キャプチャ・システムとの複雑な及び/又は時間を消費する対話を回避する助けになり得る。
【0033】
また、1つの実施形態において、ビデオ修正ユニットは、処理ユニットが、識別したエンティティが、プライベート・エンティティと実質的に合致するか、又はプライベート・エンティティ内に、その上に、その下に、若しくはそれに近接して位置しているかを判断することに基づいて、グラフィカル要素を生成するように適合することができる。このように、修正されたビデオストリームにおいて、異なる拡張されるアイテム/オブジェクトを互いに区別することができる。例えば、異なるグラフィカル要素又は効果を、ビデオ内の異なる拡張されるアイテムに適用することができる。
【0034】
ビデオ修正ユニットは、グラフィカル要素を生成し、これが識別したエンティティの簡略化した3Dモデルを表すように適合させることができる。識別したエンティティを、エンティティの形状/詳細を不明瞭にする、立方体、角柱又はボックスのような簡単な3Dモデルに置き換えることができる。簡略化したモデルは、平坦な又は滑らかな表面を有することができ、修正されたビデオ内の詳細をマスクする又は隠すように、無光沢又は不透明の色とすることができる。例えば、グラフィカル要素は、マスクした又はぼかしたバージョンを含むことができる。従って、簡単なグラフィック又はビデオ処理及びレンダリング技術を用いて、実施形態による修正されたビデオ内のプライベート・オブジェクト/アイテムを拡張することができる。
【0035】
実施形態は、ビデオ・キャプチャ・システムにおいて使用することができ、Hololens(登録商標)、仮想現実ヘッドセット、ヘッド・マウント・ディスプレイ・システム、Oculus Rift(登録商標)システム等のような仮想現実システム及び/又は拡張現実システムにおける特定の使用に役立ち得る。例えば、こうしたシステムは、プライベート・オブジェクト又はエンティティを含む環境のビデオをキャプチャし、次に、ビデオを視聴者に表示する前に(例えば、他の場合にはプライベート・オブジェクト/エンティティを表示するビデオの部分を覆い隠すことによって)ビデオを拡張するように適合することができる。
【0036】
実施形態は、環境のキャプチャされたビデオを表示するように適合されたビデオ表示システムにおいても使用することができる。こうしたビデオは、従来の画像又はビデオ・キャプチャ・デバイスを用いてキャプチャすることができ、次に、これを実施形態によるシステム又は方法を用いて補完して、キャプチャされたビデオを処理し、これを修正し、視聴者に表示する前にビデオからのプライベート/機密情報を拡張することができる。従って、実施形態は、ビデオ処理システム及び/又は視聴者のビデオ表示システムにおけるような、ビデオ環境とは異なる又はそこから離れた場所で実施することができる。
【0037】
ここで本発明の好ましい実施形態を、以下の図面を参照して単なる例として説明する。
【発明を実施するための形態】
【0039】
図面は単に概略的なものであり、縮尺通りには描かれていないことを理解されたい。同じ又は類似の部品を示すために、図面全体を通して同じ参照番号が使用されることも理解されたい。
【0040】
プライベート又は機密情報を含む環境のビデオストリームにおけるプライベート又は機密情報を隠すための概念が提案される。このように、視聴されるビデオ内の情報のプライバシー又は機密性を保持しながら、信頼できないサード・パーティにより視聴することができるように、環境のビデオストリームを拡張することができる。
【0041】
環境においてプライベート・オブジェクト又はエンティティを定義することを可能にすることにより、次いで、環境のライブ・ビデオストリームを処理し(リアルタイムで)、ライブ・ビデオストリームが、拡張されるオブジェクト/エンティティ(プライベート・オブジェクト自体、又はプライベート・オブジェクトと所定の特別な関係を有するオブジェクトなど)を含むかどうかを判断することができる。従って、実施形態は、プライベート/機密情報が、共有ビデオ(例えば、信頼できないサード・パーティにより視聴することができる)におけるビューから拡張されるので安心して、ユーザが、環境(部屋、閉鎖空間、商業用又は居住用建物、又は個人の住居)のライブ・ビデオストリームをキャプチャし共有することを可能にする。
【0042】
さらに、実施形態は、一般視聴者(public audience)に提供されるライブ・ビデオストリームのリアルタイム拡張も可能にすることができ、そこでは、一般視聴者は、表示されるビデオストリーム内の特定のアイテム(例えば、プライベート/機密アイテム又は文書など)を見ることができない。
【0043】
例えば、提案される概念は、ライブビデオをキャプチャし、遠隔ユーザにブロードキャストすることを可能にし、視聴者の認証特権又は信頼性に応じて、視聴されるビデオにおいて環境内の特定のプライベート情報を選択的に表示する又は覆い隠すことができる。
【0044】
従って、例示的な実施形態は、拡張現実システム/方法で用いられる環境内のプライバシー・ゾーン又はエリアの概念を提供することができる。
【0045】
こうした概念は、拡張されたビデオストリームの生成を自動式に提供することができる。任意のビデオ処理システムを提案される概念と共に用い得るが、そうしたシステムが、次の品質:すなわち、拡張現実処理機能、3D空間追跡機能、エンティティ認識、仮想現実機能、ビデオ・キャプチャ能力、及びビデオ通信能力のうちの少なくとも1つを示すことが好ましい。
【0046】
提案される概念の価値及び有用性を向上させ得る、従来のビデオ・キャプチャ及び伝送システムに対する修正及び付加的なステップも提案される。
【0047】
プライベート・エンティティへの言及は、テキスト、画像、文字数字、ロゴ、名称、文書、ファイル、形状、キー、コード、パスワード、日付、場所等といった、本質的に機密又はセンシティブをもたらし得る情報を含有又は表示し得るあらゆるオブジェクト、エンティティ、エリア、表面、又はアイテムを指すために利用することができる。
【0048】
例示的な実施形態は、多くの異なるタイプのデータ又はビデオ処理環境において用いることができる。例示的な実施形態の要素及び機能の説明の文脈を提供するために、
図1及び
図2が、例示的な実施形態の態様を実施できる例示的な環境として以下に与えられる。
図1及び
図2は、単なる例に過ぎず、本発明の態様又は実施形態を実施できる環境に対する何らかの限定を主張又は暗示することを意図するものではないことを理解されたい。本発明の趣旨及び範囲から逸脱することなく、示される実施形態に対して多くの修正をなすことができる。
【0049】
図1は、例示的な実施形態の態様を実施することができる例示的な分散型システムの図形表現を示す。分散型システム100は、例示的な実施形態の態様を実施することができるコンピュータのネットワークを含むことができる。分散型システム100は、少なくとも1つのネットワーク102を含み、このネットワーク102は、分散型データ処理システム100内で互いに接続される種々のデバイスとコンピュータとの間の通信リンクを与えるために使用される媒体である。ネットワーク102は、有線、無線通信リンク、又は光ファイバ・ケーブルのような接続を含むことができる。
【0050】
示される例において、第1のサーバ104及び第2のサーバ106は、ストレージ・ユニット108と共にネットワーク102に接続される。さらに、クライアント110、112及び114もネットワーク102に接続される。クライアント110、112及び114は、例えば、パーソナル・コンピュータ、ネットワーク・コンピュータ、スマートフォン、ビデオ・キャプチャ・デバイス、デジタル・イメージング・デバイス、携帯型カメラ、Oculus Rift(登録商標)デバイス、VRデバイス等とすることができる。示される例において、第1のサーバ104は、ブート・ファイル、オペレーティング・システム・イメージ及びアプリケーションのようなデータをクライアント110、112及び114に提供する。示される例において、クライアント110、112及び114は、第1のサーバ104に対するクライアントである。分散型予測システム100は、付加的なサーバ、クライアント、及び図示されていない他のデバイスを含むことができる。
【0051】
示される例において、分散型システム100は、互いに通信するためにプロトコルの伝送制御プロトコル/インターネット・プロトコル(Transmission Control Protocol/Internet Protocol、TCP/IP)スイートを使用するネットワーク及びゲートウェイの世界規模の集合体を表す、ネットワーク102を有するインターネットである。インターネットの中心には、データ及びメッセージを送る何千もの商業系、政府系、教育系、及びその他のコンピュータ・システムから成る主要ノード又はホスト・コンピュータ間の高速データ通信回線のバックボーンがある。もちろん、分散型システム100は、例えば、イントラネット、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)等のような、多数の異なるタイプのネットワークを含むように実装することもできる。上述のように、
図1は、本発明の異なる実施形態に対するアーキテクチャ上の限定としてではなく、一例として意図され、従って、
図1に示される特定の要素は、本発明の例示的な実施形態を実施できる環境に対する限定と考えるべきではない。
【0052】
図2は、例示的な実施形態の態様を実施することができる例示的なシステム200のブロック図である。システム200は、
図1のクライアント110のようなポータブル・型コンピューティング・デバイスの一例であり、その中に、本発明の例示的な実施形態のプロセスを実施するコンピュータ使用可能コード又は命令を配置することができる。
【0053】
示される例において、システム200は、ノース・ブリッジ及びメモリ・コントローラ・ハブ(NB/MCH)202と、サウス・ブリッジ及び入力/出力(I/O)コントローラ・ハブ(SB/ICH)204とを使用する。処理ユニット206、メイン・メモリ208、及びグラフィックス・プロセッサ210は、NB/MCH202に接続される。グラフィックス・プロセッサ210は、アクセラレイティッド・グラフィックス・ポート(AGP)を通じて、NB/MCH202に接続することができる。
【0054】
示される例において、ローカル・エリア・ネットワーク(LAN)アダプタ212が、SB/ICH204に接続される。音声アダプタ216、キーボード及びマウス・アダプタ220、モデム222、読み出し専用メモリ(ROM)224、ハードディスク・ドライブ(HDD)226、CD−ROMドライブ230、ユニバーサル・シリアル・バス(USB)ポート及び他の通信ポート232、並びにPCI/PCIeデバイス234が、第1のバス238及び第2のバス240を通じて、SB/ICH204に接続される。PCI/PCIeデバイスは、例えば、イーサネット・アダプタ、アドイン・カード、及びノートブック型コンピュータ用のPCカードを含むことができる。PCIは、カード・バス・コントローラを使用するが、PCIeは使用しない。ROM224は、例えば、フラッシュ基本入力/出力システム(BIOS)とすることができる。
【0055】
HDD226及びCD−ROMドライブ230は、第2のバス240を通じて、SB/ICH204に接続される。HDD226及びCD−ROMドライブ230は、例えば、integrated drive electronics(IDE)又はserial advanced technology attachment(SATA)インターフェースを使用することができる。スーパーI/O(SIO)デバイス236は、SB/ICH204に接続することができる。
【0056】
オペレーティング・システムは、処理ユニット206上で実行される。オペレーティング・システムは、連携して
図2のシステム200内の様々なコンポーネントの制御を提供する。クライアントとして、オペレーティング・システムは、市販のオペレーティング・システムとすることができる。Java(登録商標)プログラミング・システムなどのオブジェクト指向プログラミング・システムは、オペレーティング・システムと共に実行することができ、システム200上で実行されるJavaプログラム又はアプリケーションからのオペレーティング・システムに対する呼び出しを提供する。Java及び全てのJavaベースの商標及びロゴは、Oracle及び/又はその関連会社の商標又は登録商標である。
【0057】
サーバとして、システム200は、例えば、Advanced Interactive Executive(AIX(登録商標))オペレーティング・システム又はLinux(登録商標)オペレーティング・システムを実行するIBM(登録商標) System p5(登録商標)コンピュータ・システムとすることができる。システム200は、処理ユニット206内に複数のプロセッサを含む対称型マルチプロセッサ(SMP)システムとすることができる。代替的に、シングル・プロセッサ・システムを用いることもできる。IBM、eServer、System p5、及びAIXは、世界中の多数の管轄区域において登録されているインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。Linuxは、米国、他の国々、又はその両方におけるLinus Torvaldsの登録商標である。
【0058】
オペレーティング・システム、オブジェクト指向プログラミング・システム及びアプリケーション又はプログラムに対する命令は、HDD226などのストレージ・デバイス上に配置され、メイン・メモリ208内にロードし、処理ユニット206により実行することができる。同様に、実施形態による1つ又は複数のデータ構造は、ストレージ・デバイス及び/又はメイン・メモリ208により格納されるように適合することができる。
【0059】
本発明の例示的な実施形態のプロセスは、コンピュータ使用可能プログラム・コードを用いて処理ユニット206により実行することができ、これは、例えば、メイン・メモリ208、ROM224のようなメモリ内、又は1つ又は複数の周辺デバイス226及び230内に配置することができる。
【0060】
図2に示されるような第1のバス238又は第2のバス240などのバス・システムは、1つ又は複数のバスから成ることができる。もちろん、バス・システムは、ファブリック又はアーキテクチャに取り付けられた異なるコンポーネント又はデバイス間のデータ転送を提供するあらゆるタイプの通信ファブリック又はアーキテクチャを用いて実装することができる。
図2のモデム222又はネットワーク・アダプタ212のような通信ユニットは、データの送受信に用いられる1つ又は複数のデバイスを含むことができる。メモリは、例えば、メイン・メモリ208、ROM224、又は
図2のNB/MCH202に見られるようなキャッシュとすることができる。
【0061】
当業者であれば、
図1及び
図2のハードウェアは、実装によって異なり得ることを認識するであろう。
図1及び
図2に示されるハードウェアに加えて又はその代わりに、他の内部ハードウェア、又は3D空間追跡デバイス、ビデオ・キャプチャ・デバイス、位置決めシステム、加速度計構成、同等の不揮発性メモリ、若しくは光ディスク・ドライブ等のような周辺機器を使用することができる。また、提案される実施形態の趣旨及び範囲から逸脱することなく、例示的な実施形態のプロセスを、前述のシステム以外のマルチプロセッサ・データ又はビデオ処理システムに適用することもできる。
【0062】
さらに、システム200は、クライアント・コンピューティング・デバイス、サーバ・コンピューティング・デバイス、タブレット・コンピュータ、ラップトップ・コンピュータ、スマート(例えば、インターネット対応)テレビジョン若しくはディスプレイ、スマートフォン又は他の通信機器、携帯情報端末(PDA)等を含む多数の異なるデータ又はビデオ処理システムのいずれかの形をとることができる。幾つかの説明に役立つ実例において、システム200は、例えば、オペレーティング・システム・ファイル及び/又はユーザ生成データを格納するための不揮発性メモリを提供するフラッシュ・メモリを有するように構成されたポータブル・コンピューティング・デバイスとすることができる。従って、システム200は、アーキテクチャ上の制限なしに、あらゆる周知の又は後で開発されるデータ処理システムとすることができる。
【0063】
提案される概念は、ビデオストリームの自動的及び動的な拡張を提供することによって、ビデオ・キャプチャ又はディスプレイ・システムを向上させることができる。実施形態は、キャプチャされたビデオ内のビューからビデオ撮影される環境におけるプライベート又は機密情報を拡張することを可能にする。こうした拡張の概念をライブ・ビデオストリームに適用し、従って、ライブ・ビデオ・ブロードキャストのリアルタイムの拡張を可能にすることができ、幾つかの実施形態においては、ビデオストリームの個々の視聴者に応じて、こうした拡張を適合させることができる。
【0064】
図3は、提案される実施形態による、例示的な拡張システム300の簡略化したブロック図である。拡張システム300は、環境のビデオ305の拡張を提供するように適合され、そこで、環境は、ビデオ内のビューから拡張する(例えば、覆い隠す、隠す、見えないようにする)ことを、ユーザが望むプライベート・エンティティ(例えば、機密アイテム又はシークレット・オブジェクト)を含む。
【0065】
システム300は、情報生成器320を有するビデオ処理ユニット310を含む。システム300はまた、データ処理ユニット330、データ・ストア335及びビデオ修正ユニット340も含む。
【0066】
ビデオ処理ユニット310は、環境内のエンティティの少なくとも部分の存在を識別するために、エンティティ認識アルゴリズムに従って環境のビデオストリーム305(例えば、ビデオ・キャプチャ・デバイス350から受け取った)を処理するように適合される。この点で、実施形態により用いることができる、ビデオストリーム内のエンティティを識別し追跡する多くの異なる方法が既に存在し、その一部は、既に広く知られており、ビデオ・キャプチャ、仮想現実、及び拡張現実システムにおいて用いられていることに留意されたい。従って、受け取ったビデオストリーム内のエンティティ(オブジェクト、アイテム、人、エリアのような)を識別し追跡するためのこうした方法の詳細な説明は、この説明から省かれる。しかしながら、純粋に例として、ビデオ処理ユニット310により用い得るエンティティ認識アルゴリズムは、色照合アルゴリズム、相検出アルゴリズム、エッジ検出アルゴリズム、コントラスト検出アルゴリズム、顔認識アルゴリズム、Hololens(商標)生データにより提供されるもののような、3D空間追跡アルゴリズムを含む。Microsoft(商標)Kinect(商標)及びLeap Motion(商標)のような、他の周知の製品及びソフトウェアを用いることもできる。他のこうしたアルゴリズム及び製品は、「Sync 3D」、「Asus Xtion Pro」、エッジ検出におけるアルゴリズム、又は2Dビデオにおける3Dオブジェクト検出のためのアルゴリズムを含む。
【0067】
次に、情報生成器320が、識別したエンティティの少なくとも1つの特性に関する識別エンティティ情報を生成するように適合される。例として、こうした識別エンティティ情報は、以下の情報:すなわち、ビデオ・キャプチャ・デバイス350の撮影方向(viewing direction)を表す撮影方向情報、ビデオ・キャプチャ・デバイス350の位置を表す撮影位置(viewing position)情報、識別したエンティティの場所を表す識別エンティティ場所情報、識別したエンティティの向き(orientation)を表す識別エンティティ向き情報、識別したエンティティの少なくとも1つの幾何学的特性を表す識別エンティティ幾何学情報、識別したエンティティの少なくとも1つの色を表す識別エンティティ色情報、及び3D座標空間における識別したエンティティの位置を表す識別エンティティ3D座標情報を含むことができる。従って、情報生成器320は、様々な情報を用いて、ビデオ処理ユニット310により環境内で識別されるオブジェクト又はエンティティを説明することを可能にし、それにより、所定の制約、尺度、検証パラメータ等に対して識別したエンティティを分析する際の高度の柔軟性又は精度が可能になる。
【0068】
情報生成器320は、生成された識別エンティティ情報をデータ処理ユニット330に提供するように適合される。
【0069】
データ処理ユニット330は、識別したエンティティを、ビデオから拡張するかどうかを判断するように適合される。この判断を行うために、データ処理ユニットは、生成された識別エンティティ情報及びプライベート・エンティティ(データ・ストア335内に格納された)に関するプライベート・エンティティ情報を使用する。
【0070】
例として、プライベート・エンティティ情報は、プライベート・エンティティの場所を表すプライベート・エンティティ場所情報、プライベート・エンティティの向き(orientation)を表すプライベート・エンティティ向き情報、プライベート・エンティティの少なくとも1つの幾何学的特性を表すプライベート・エンティティ幾何学情報、プライベート・エンティティの少なくとも1つの色を表すプライベート・エンティティ色情報、及び3D座標空間におけるプライベート・エンティティの位置を表すプライベート・エンティティ3D座標情報のうちの少なくとも1つを含むことができる。従って、環境内のプライベート・オブジェクト又はエンティティは、様々な情報を用いて、環境内のプライベート・オブジェクト又はエンティティを説明することができ、それにより、環境のビデオストリームにおけるプライベート・オブジェクト/エンティティの存在を判断する際に高度の柔軟性又は精度が可能になる。
【0071】
例として、データ処理ユニット330は、識別したエンティティが、プライベート・エンティティと実質的に合致するか、又はプライベート・エンティティ内に、その上に、その下に、若しくはこれに近接して位置しているかを評価することによって、識別したエンティティを拡張するかどうかを判断するように適合することができる。この評価は、例えば、生成された識別エンティティ情報とプライベート・エンティティ情報を比較して、識別したエンティティ及びプライベート・エンティティのパラメータ値又は特性の合致を識別することを含むことができる。また、値の差を、所定の制約、尺度、閾値、検証パラメータ等と比較することもできる。
【0072】
データ処理ユニット330が、識別したエンティティが、プライベート・エンティティと実質的に合致するか、又はプライベート・エンティティ内に、その上に、その下に、若しくはこれに近接して位置しているかを判断する場合、識別したエンティティを拡張することが、データ処理ユニット330により判断することができる。従って、こうした実施形態において、拡張の概念は、プライベートであるように予め定められたアイテムだけでなく、プライベート・オブジェクト/アイテム内に、その上に、その下に、そのすぐ近くに、その隣に、それに隣接して、又はそれに近接して配置されるアイテムを拡張する概念にも用い得る。例えば、テーブルは、プライベート・テーブルとして定めることができ、次に、テーブルの上面上に配置されるあらゆるアイテムをプライベート/機密として扱い、従って、ビデオストリームから拡張することができる。
【0073】
データ処理ユニット330は、その結論(例えば、識別エンティティ情報及びプライベート・エンティティ情報の分析の結果)についての情報をビデオ修正ユニット340に提供する。
【0074】
ビデオ修正ユニット340は同じく、ビデオ305を受け取るように適合される。
【0075】
識別したエンティティを拡張すると判断した場合、ビデオ修正ユニット340は、識別したエンティティの少なくとも一部を、ビデオストリーム内の識別したエンティティの部分を覆い隠すグラフィカル要素360と置き換えるように、ビデオストリームを修正するように適合される。このように、ビデオ修正ユニット340は、修正された(例えば、拡張された)ビデオ370を提供するように適合される。次に、ビデオ修正ユニット340は、未知の又は信頼できない視聴者に表示するために、(例えば、ディスプレイ・ユニット390を介して)修正されたビデオ370を出力することができる。
【0076】
このように、
図1のシステム300は、プライベート又は機密情報を含む環境のビデオストリームを自動的及び動的に拡張できることが理解されるであろう。ビデオストリームを305から生成された情報と共に拡張されるプライベート・エンティティについての所定の(例えば、格納された)情報を利用することにより、システム300は、ビデオストリーム305をリアルタイムで処理及び修正し、修正された(例えば、拡張された)リアルタイム(例えば、ライブ)のビデオストリーム370を提供することができ、そこで、ビデオストリーム305内に存在する環境の機密オブジェクト又はエンティティを、グラフィカル要素又はグラフィカル効果360により置き換え又は覆い隠し、これにより、修正されたビデオストリーム370の視聴者が、機密情報を視聴することを防止することに留意されたい。ビデオストリーム370の各フレームを処理することにより、システムは、ビデオストリーム内のプライベート・オブジェクト又はエンティティの位置を追跡することができるので、オブジェクト又はエンティティは、ビデオのビュー内にあるときは常にぼかされたまま又はマスクされたままである。
【0077】
従って、ビデオ撮影される環境におけるプライベート又は機密のコンテンツを損なう(例えば、露出する又は可視である/見える)ことなく、修正されたビデオストリーム370を遠隔の視聴者にライブ方式で通信する(例えば、送信する、又はブロードキャストする)ことができる。
【0078】
図3の実施形態は、拡張されるプライベート・エンティティについて記述するユーザ入力を受け取るように適合されたユーザ入力インターフェース380も含むことを留意されたい。こうしたユーザ入力は、例えば、後で格納するためにデータ・ストア335に提供され、プライベート・エンティティ情報として使用することが可能である。データ・ストアに提供する前に、ユーザ入力を情報生成器320に提供し、次に、情報生成器320は、受け取ったユーザ入力に基づいて、プライベート・エンティティ情報を生成する(例えば、格納のための適切な形式で)。従って、ユーザは、環境のビデオにおいて拡張される環境内のオブジェクト、領域、又はエンティティを定義する(例えば、タグ付けする、記述する、ラベル表記する等)ことができる。ユーザは、例えば、ビデオ・キャプチャ・デバイス350の入力インターフェース390を用いてこうした定義を作成することができる。
【0079】
このように、ユーザからの入力を用いて(例えば、情報生成器320により)こうしたユーザ定義の領域又はエンティティについての情報及び規則を生成し、それにより、環境のビデオストリームにおけるそれらの識別及び拡張が可能になる。これにより、ユーザが、特定の又は正確な形式でプライベート・エンティティについての詳細及び/又は複雑な情報を提供することを要するのではなく、例えば、指し示すこと及びクリックすることによって、ユーザが迅速かつ簡単な方法でプライベート・エンティティを識別することが可能になる。従って、提案される実施形態は、ユーザとって高度な柔軟性及び使いやすさを可能にする。
【0080】
図3のシステム300を、ビデオ・キャプチャ・システム内に統合することができ、従って、Hololens(登録商標)、仮想現実ヘッドセット、ヘッドマウント・ディスプレイ・システム、Oculus Rift(登録商標)システム等のような仮想現実システム及び/又は仮想現実システム内で用いることができる。例えば、こうしたシステムを、プライベート・オブジェクト又はエンティティを含む環境のビデオをキャプチャし、次に、ビデオを外部の視聴者に表示する前にビデオを拡張する(例えば、他の場合にはプライベート・オブジェクト/エンティティを表示するビデオの部分を覆い隠すことによって)ように適合させることができる。
【0081】
しかしながら、実施形態は、環境のキャプチャされたビデオを表示するように適合されたビデオ・ディスプレイ・システムで用い得ることを理解されたい。こうしたビデオは、従来の画像又はビデオ・キャプチャ・デバイスを用いてキャプチャし、次に、
図3のもののような提案されるシステムを用いて補足してビデオを処理し、修正し、視聴者に表示される前にビデオからのプライベート/機密情報を拡張することができる。このように、実施形態は、ビデオ撮影される環境とは異なる又はそこから遠隔の場所で実施することができる。
【0082】
実施形態はまた、例えば、ビデオ・キャプチャ端部又はビデオ・ディスプレイ端部に配置されるのではなく、ビデオ・キャプチャ及びディスプレイ・システム全体を通して様々な位置に分散させることもできる。こうした手法をとることにより、要件に従って処理及び/又はハードウェア要件を分散させることが可能になり、従って、必要とされる場合、コスト、複雑性、及び/又はリソースへの影響が潜在的に低減する。
【0083】
ここで
図4を参照すると、提案される実施形態が、プライベート・エンティティだけでなく、プライベート・オブジェクト上に配置された別のエンティティをどのように拡張できるかの例が示される。より具体的には、この例では、部屋(見えない)内の引き出しのセット400が、プライベート・エンティティであるように予め定められ、折り畳まれた紙サイン410が、引き出しのセット上に置かれる。実施形態において、引き出しのセット上に配置されるいずれのオブジェクトもプライベートであると考えられる所定の規則が定義され、従って、拡張されるべきである。
【0084】
図4は、部屋のキャプチャされたビデオからのフレームを示し、そこには、引き出しのセット400及び折り畳まれた紙サイン410だけが示される。
図5に示されるように、引き出しのセット400の境界エッジ420及び折り畳まれた紙サイン410の境界エッジ430は、3Dエッジ検出アルゴリズムにより識別される。
【0085】
識別した境界エッジ420及び430に基づいて、実施形態は、引き出しのセット400の境界エッジ420が、引き出しのセットについて予想されるものと合致し、従って、その場所、向き、サイズ、形状等の値と共に、ビデオフレーム内にプライベート・エンティティ(すなわち、引き出しのセット400)が存在すると判断する。実施形態はまた、折り畳まれた紙サイン410の境界エッジ430とプライベート・オブジェクトとの位置関係も判断する。ここで、実施形態は、折り畳まれた紙サイン410の境界エッジ430がプライベート・オブジェクト上に位置していると判断し、従って、折り畳まれた紙サイン410も拡張される(上で詳述した所定の規則に従って)と判断する。
【0086】
次に、
図6に示されるように、識別した境界エッジ420及び430に基づいて、識別したオブジェクトの簡略化した3Dモデルを表すグラフィカル要素を生成し、これを用いてビデオ内のオブジェクトを置き換える。従って、引き出しのセット400及び折り畳まれた紙サイン410は、ビデオ内の簡単な3Dモデルに置き換えられる。これらの簡略化した3Dモデルは、オブジェクトの形状及び/又は詳細を不明瞭(obfuscate)にする。幾つかの実施形態において、簡略化したモデルは、異なる視覚特性を有し得るので、修正されたビデオストリームにおいてそれらを互いに区別することができる。
【0087】
ここで
図7及び
図8を参照すると、他の実施形態が、他のグラフィカル要素又は効果を用いて、ビデオ内のプライベート・エンティティを覆い隠すことができる。
示される。
【0088】
例えば、
図7は、グラフィカル要素が、プライベート・エンティティ(例えば、引き出しのセット400)の一部分を覆うマスク500をどのように含み得るかを示す。マスクは、例えば、修正されたビデオ内の詳細をマスクする又は隠すように、無光沢の又は不透明色の平坦な又は滑らかな表面を含むことができる。
【0089】
他方、
図8は、グラフィカル要素が、プライベート・エンティティ(例えば、引き出しのセット400)の上に配置されたオブジェクト(例えば、折り畳まれた紙サイン410)をぼかす、ぼかし効果(blur effect)510をどのように含み得るかを示す。
【0090】
ここで
図9を参照すると、実施形態によるコンピュータ実施方法600の例示的な実施が説明される。方法は、プライベート・エンティティを含む環境のライブ・ビデオストリームを拡張することを可能にする。
【0091】
方法は、拡張されるプライベート・エンティティについて記述するユーザ入力を受け取るステップ610、及び受け取ったユーザ入力に基づいてプライベート・エンティティ情報を生成するステップ620の初期ステップを含む。従って、ステップ610及び620は、方法により後で使用するために、プライベート・エンティティに関するプライベート・エンティティ情報をユーザにより定義することを可能にする。これらは、例えば、ビデオにおけるプライベート・エンティティの存在を判断するために、プライベート・エンティティ情報の提供を可能にするので、初期ステップとして説明され、従って、こうしたステップを最初に行われる可能性が高い。それにも関わらず、例えば、これが当てはまらず、代替的に他の時にステップ610及び620が行われ及び/又は繰り返され、新しいプライベート・エンティティ情報を提供することもある。代替的に及び/又は付加的に、(幾つかの実施形態において)プライベート・エンティティ情報は、ユーザ入力を介して提供することができず、代わりに、実施形態による方法/システムの生成時又は初期化時に予め定めることができるので、ステップ610及び620が全く行われないこともある。そのため、
図9のフロー図において、ステップ610及び620は点線で示される。
【0092】
ステップ630において、環境のライブ・ビデオストリームを受け取る。次に、ステップ640において、受け取ったビデオの部分(例えば、フレーム、フレームのセクション、複数の一連のフレーム等)を処理する。
【0093】
より具体的には、環境内のエンティティの少なくとも部分の存在を識別するために、エンティティ認識アルゴリズムに従って受け取ったビデオを処理する。
【0094】
ステップ640における識別の結果に基づいて、次に、ステップ650において、識別したエンティティの少なくとも1つの特性に関する識別エンティティ情報を生成する。
【0095】
次に、ステップ660において、生成された識別エンティティ情報及びプライベート・エンティティに関するプライベート・エンティティ情報に基づいて、識別したエンティティを拡張するかどうかを判断する。例として、識別したエンティティを拡張するかどうかを判断するステップ660は、識別したエンティティが、プライベート・エンティティと実質的に合致するか、又はプライベート・エンティティ内に、その上に、その下に、若しくはこれに近接して位置しているかを判断することを含むことができる。識別したエンティティが、プライベート・エンティティと実質的に合致する、又はプライベート・エンティティ内に、その上に、その下に、若しくはこれに近接して位置していると判断された場合、ステップ660の結果は、識別したエンティティを拡張するように判断することである。
【0096】
次に、判断の結果を分析して(ステップ670において)、ステップ680に進むかどうかを判断する。ステップ660において、識別したエンティティを拡張しないと判断した場合、方法はステップ640に戻り、そこでビデオの次の部分を処理する。
【0097】
他方、ステップ660において、識別したエンティティを拡張すると判断された場合、方法はステップ680に進み、そこで、ビデオストリームを修正し、識別したエンティティの少なくとも部分を、ビデオ内の識別したエンティティの部分を覆い隠すように適合されたグラフィカル要素に置き換える。しかしながら、ステップ660における判断の結果、使用されるグラフィカル要素は、例えば、識別したエンティティが、プライベート・エンティティと実質的に合致する、又はプライベート・エンティティ内に、その上に、その下に、若しくはこれに近接して位置していると判断されたことによって決まり得る。このように、例えば、異なるグラフィカル要素を用いて、ビデオストリーム内の異なるエンティティを覆い隠す、隠す、又は覆うことができる。
【0098】
ビデオの拡張に用いられる実施形態の実際の例は、複数の視聴場所にブロードキャストされるオフィスのライブ・ビデオストリームを含むことができ、そこで、実施形態は、機密ファイル、又はオフィスの机の上に置かれたあらゆるものについてライブ・ビデオストリームを連続的に走査する。次に、実施形態は、ぼかし及び/又はマスクをリアルタイムで適用する(他の拡張現実システムと類似した方法で)。
【0099】
別の実際的な例において、ユーザは、提案される実施形態によるシステムを用いながら環境を見て回り、権限のない視聴者が視聴することを望まない、3D空間内のオブジェクト又はエリアをマーク付け/タグ付けすることができる。次に、システムは、そうしたユーザ入力からプライベート・エンティティ情報及び規則を生成し、次に、同じ環境のライブ・ブロードキャストの間、それらの情報及び規則を使用することができる。ライブ・ブロードキャストの間、ビデオのビュー内のアイテムを識別し、追跡し、プライベート・エンティティ情報と比較する。例えば、アイテムのいずれかがプライベートであると判断される場合、簡略化した3Dモデル(着色した立方体のような)をレンダリングしてビデオ内のアイテムを覆い、次に、アイテムをビューから覆い隠す。例えば、ビデオを走査し追跡するために用いられる情報は、全地球測位システム、局所測位情報、部屋/環境プラン、環境及び/又はオブジェクトの3Dマップ/モデル等に関連し得る。
【0100】
図10は、実施形態の1つ又は複数の部分を利用することができる、コンピュータ700の一例を示す。上述した種々の動作は、コンピュータ700の機能を利用することができる。例えば、ビデオを拡張するためのシステムの1つ又は複数の部分を、本明細書で検討される任意の要素、モジュール、アプリケーション、及び/又はコンポーネント内に統合することができる。
【0101】
コンピュータ700は、これらに限定されるものではないが、PC、ワークステーション、ラップトップ、PDA、パーム・デバイス(Palm device)、スマートフォン、画像キャプチャ・デバイス、ビデオ・キャプチャ・デバイス、インターネット対応ディスプレイ、サーバ、ストレージ等を含む。一般的に、ハードウェア・アーキテクチャの観点から、コンピュータ700は、1つ又は複数のプロセッサ710、メモリ720、及びローカル・インターフェース(図示せず)を介して通信可能に結合される1つ又は複数のI/Oデバイス770を含むことができる。ローカル・インターフェースは、例えば、これらに限定されるものではないが、当技術分野において周知なような、1つ又は複数のバス又は他の有線若しくは無線接続とすることができる。ローカル・インターフェースは、通信を可能にするために、コントローラ、バッファ(キャッシュ)、ドライバ、中継器、及び受信機のような付加的な要素を有することができる。さらに、ローカル・インターフェースは、上述のコンポーネントの間の適切な通信を可能にするために、アドレス、制御部、及び/又はデータ接続を含むことができる。
【0102】
プロセッサ710は、メモリ720内に格納することができるソフトウェアを実行するためのハードウェア・デバイスである。プロセッサ710は、事実上、あらゆる特注の又は市販のプロセッサ、中央処理ユニット(CPU)、デジタル信号プロセッサ(DSP)、又はコンピュータ700と関連した幾つかのプロセッサの間の補助プロセッサとすることができ、また、プロセッサ710は、半導体ベースのマイクロプロセッサ(マイクロチップの形態の)又はマイクロプロセッサとすることができる。
【0103】
メモリ720は、揮発性メモリ要素(例えば、ダイナミック・ランダム・アクセス・メモリ(DRAM)、スタティック・ランダム・アクセス・メモリ(SRAM)等のようなランダム・アクセス・メモリ(RAM))、及び不揮発性メモリ要素(例えば、ROM、消去可能プログラム可能読み出し専用メモリ(EPROM)、電気消去可能プログラム可能読み出し専用メモリ(EEPROM)、プログラム可能読み出し専用メモリ(PROM)、テープ、コンパクト・ディスク読み出し専用メモリ(CD−ROM)、ディスク、ディスケット、カートリッジ、カセット、又はその種の他のもの等)のうちのいずれか1つ又はその組み合わせを含むことができる。さらに、メモリ720は、電子、磁気、光学、及び/又は他のタイプのストレージ媒体を組み込むことができる。メモリ720は、分散型アーキテクチャを有することができ、そこで、種々のコンポーネントが互いから離れて位置しているが、プロセッサ710によりアクセスできることに留意されたい。
【0104】
メモリ720内のソフトウェアは、1つ又は複数の別個のプログラムを含むことができ、その各々が論理機能を実施するための実行可能命令の順序付きリストを含むことができる。例示的な実施形態によると、メモリ720内のソフトウェアは、適切なオペレーティング・システム(O/S)750、コンパイラ740、ソース・コード730、及び1つ又は複数のアプリケーション760を含む。示されるように、アプリケーション760は、例示的な実施形態の特徴及び動作を実施するための多数の機能コンポーネントを含む。例示的な実施形態によると、コンピュータ700のアプリケーション760は、種々のアプリケーション、計算ユニット、論理、機能ユニット、プロセス、動作、仮想エンティティ及び/又はモジュールを表すことができるが、アプリケーション760は、限定することを意味するものではない。
【0105】
オペレーティング・システム750は、他のコンピュータ・プログラムの実行を制御し、スケジューリング、入力・出力制御、ファイル及びデータ管理、メモリ管理、並びに通信制御及び関連サービスを提供する。例示的な実施形態を実施するためのアプリケーション760は、全ての市販のオペレーティング・システム上で適用可能であり得ることが、発明者により考慮される。
【0106】
アプリケーション760は、ソース・プログラム、実行可能プログラム(オブジェクト・コード)、スクリプト、又は実行される命令のセットを含む他のいずれかのエンティティとすることができる。ソース・プログラムの場合、プログラムは、通常、O/S750と関連して適切に動作するように、メモリ720内に含まれることも含まれないこともある、コンパイラ(コンパイラ740のような)、アセンブラ、インタープリタ等を介して翻訳される。I/Oデバイス770は、例えば、これらに限定されるものではないが、マウス、キーボード、スキャナ、マイクロフォン、カメラ等のような入力デバイスを含むことができる。さらに、I/Oデバイス770はまた、例えば、これらに限定されるものではないが、プリンタ、ディスプレイ等などの出力デバイスを含むこともできる。最終的に、I/Oデバイス770は、例えば、これらに限定されるものではないが、NIC又は変調器/復調器(遠隔デバイス、他のファイル、デバイス、システム、又はネットワークにアクセスするための)、無線周波数(RF)又は他の送受信機、電話インターフェース、ブリッジ、ルータ等など、入力及び出力の両方と通信するデバイスをさらに含むことができる。I/Oデバイス770はまた、インターネット又はイントラネットのような種々のネットワーク上で通信するためのコンポーネントも含む。
【0107】
コンピュータ700がPC、ワークステーション、インテリジェント・デバイス等である場合、メモリ720内のソフトウェアは、基本入力出力システム(BIOS)(簡単にするために省略される)をさらに含むことができる。BIOSは、起動時にハードウェアを初期化及びテストし、O/S750を起動し、ハードウェア・デバイス間のデータの転送をサポートする不可欠のソフトウェア・ルーチンのセットである。BIOSは、ROM、PROM、EPROM、EEPROM等のような何らかのタイプの読み出し専用メモリ内に格納されるので、コンピュータ700が作動されたときにBIOSを実行することができる。
【0108】
コンピュータ700が動作中のとき、プロセッサ710は、メモリ720内に格納されたソフトウェアを実行し、メモリ720との間でデータを通信し、ソフトウェアに従ってコンピュータ700の動作を全体的に制御するように構成される。アプリケーション760及びO/S750は、プロセッサ710により、全体的に又は部分的に読み出され、恐らくプロセッサ710内にバッファされ、次に実行される。
【0109】
アプリケーション760がソフトウェア内に実装されるとき、アプリケーション760は、いずれかのコンピュータ関連システム若しくは方法により又はそれと関連して使用されるいずれかのコンピュータ可読媒体上に事実上格納することができることに留意されたい。本文書の文脈において、コンピュータ可読媒体は、電子、磁気、光学、又は他の物理デバイス、又はいずれかのコンピュータ関連システム若しくは方法により又はこれと共に使用されるコンピュータ・プログラムを収容又は格納することができる手段とすることができる。
【0110】
アプリケーション760は、命令実行システム、装置、若しくはデバイス、例えば、コンピュータ・ベースのシステム、プロセッサ含有システム、又は命令実行システム、装置、若しくはデバイスから命令をフェッチして、その命令を実行することができる他のシステムによって又はこれに関連して使用されるいずれかのコンピュータ可読媒体の形で具体化することができる。本文書の文脈において、「コンピュータ可読媒体」とは、命令実行システム、装置、若しくはデバイスによって又はこれと関連して使用するためのプログラムを格納、通信、伝搬、又は伝送することができるいずれかの手段とすることができる。コンピュータ可読媒体は、例えば、これらに限定されるものではないが、電子、磁気、光学、電磁気、赤外線又は半導体のシステム、装置、デバイス、若しくは伝搬媒体とすることができる。
【0111】
本発明の実施形態が方法を構成する本出願の文脈において、こうした方法は、コンピュータにより実行するためのプロセスである、すなわちコンピュータ実施可能方法である。従って、方法の種々のステップは、例えば、1つ又は複数のアルゴリズムの種々の部分など、コンピュータ・プログラムの種々の部分を示す。
【0112】
本発明は、システム、方法、及び/又はコンピュータ・プログラム製品とすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体(単数又は複数)を含むことができる。
【0113】
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持及び格納できる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子記憶装置、磁気記憶装置、光学記憶装置、電磁気記憶装置、半導体記憶装置、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの:すなわち、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、パンチカード若しくは命令がそこに記録された溝内の隆起構造のような機械的にエンコードされたデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波、又は他の自由に伝搬する電磁波、導波管若しくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通る光パルス)、又はワイヤを通って送られる電気信号などの、一時的信号自体として解釈されない。
【0114】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、及び/又は無線ネットワークなどのネットワークを介して外部コンピュータ又は外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、及び/又はエッジ・サーバを含むことができる。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体内に格納する。
【0115】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Smalltalk、C++などのオブジェクト指向プログラミング言語、又は、「C」プログラミング言語若しくは類似のプログラミング言語などの通常の手続き型プログラミング言語を含む1つ又は複数のプログラミング言語の任意の組み合わせで記述することができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。最後のシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)若しくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある(例えば、インターネットサービスプロバイダを用いたインターネットを通じて)。幾つかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、又はプログラム可能論理アレイ(PLA)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を用いて、電子回路を個人化することによりコンピュータ可読プログラム命令を実行し、本発明の態様を実施することができる。
【0116】
本発明の態様は、本発明の実施形態による方法、装置(システム)及びコンピュータ・プログラム製品のフローチャート図及び/又はブロック図を参照して説明される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【0117】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロック内で指定された機能/動作を実施するための手段を作り出すようにすることができる。これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実施する命令を含む製品を製造するようにすることもできる。
【0118】
コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実行するためのプロセスを提供するようにすることもできる。
【0119】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート内の各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含む、モジュール、セグメント、又はコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で生じることがある。例えば、連続して示される2つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図及び/又はフローチャート図の各ブロック、及びブロック図及び/又はフローチャート図内のブロックの組み合わせは、指定された機能又は動作を実行する、又は専用のハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェア・ベースのシステムによって実装できることにも留意されたい。
【0120】
本発明の種々の実施形態の説明が例証の目的のために提示されたが、これらは、網羅的であること、又は本発明を開示された形態に制限することを意図するものではない。当業者には、説明される実施形態の範囲から逸脱することなく、多くの修正及び変形が明らかであろう。本明細書で用いられる用語は、実施形態の原理、実際の適用、又は市場に見られる技術に優る技術的改善を最もよく説明するため、又は、当業者が、本明細書に開示される実施形態を理解するのを可能にするために選択された。