(57)【特許請求の範囲】
【請求項１】
投影ターゲットを、前記ターゲットに関連付けられた情報に基づいて、1つまたは複数のフレーム内のオブジェクトを認識するためのオブジェクト認識を使用することによって決定するステップと、
前記投影ターゲットの1つまたは複数の範囲を決定するステップと、
1つまたは複数のプロセッサによって、コンテンツが投影されることになるコンテンツエリアと、コンテンツが投影されないことになる空きエリアとを決定するステップであって、前記コンテンツエリアおよび前記空きエリアは、前記1つまたは複数の範囲に基づいて決定され、前記コンテンツエリアはさらに、前記オブジェクトに関連付けられた指定コンテンツエリアに基づいて決定されるステップと、
前記1つまたは複数のプロセッサによって、前記投影ターゲット上に投影されたコンテンツが前記投影ターゲットの範囲に基づく最大解像度で投影されるように、前記投影ターゲットまでの距離に基づいてスケーリングファクタを決定するステップと、
前記スケーリングファクタに基づいて、前記コンテンツエリア内に投影するためのコンテンツを生成するステップと、
前記空きエリアを生成するステップと
を含む方法。
【請求項２】
前記投影ターゲットの1つまたは複数の範囲を決定するステップが、
前記投影ターゲットの1つまたは複数の画像を受信するステップと、
前記1つまたは複数の画像から、前記投影ターゲットの形状を決定するステップと
を含む、請求項1に記載の方法。
【請求項３】
前記投影ターゲットの前記決定された形状に基づいて、前記投影ターゲットのアウトラインを決定するステップをさらに含む、請求項2に記載の方法。
【請求項４】
前記1つまたは複数の画像に基づいて、前記投影ターゲットを含むエリアの深度マップを決定するステップをさらに含む、請求項2に記載の方法。
【請求項５】
スケーリングファクタを決定するステップが、前記決定された深度マップに基づいて、前記投影ターゲットまでの距離を決定するステップを含む、請求項4に記載の方法。
【請求項６】
前記投影ターゲットの形状を決定するステップが、前記決定された深度マップ内の背景から前記投影ターゲットをセグメント化するステップを含む、請求項4に記載の方法。
【請求項７】
前記空きエリアを生成するステップが、前記投影ターゲットの前記決定された形状に基づいて、仮想マスクを作成するステップを含む、請求項2に記載の方法。
【請求項８】
プロジェクタによって、前記決定されたコンテンツエリア内で前記投影ターゲット上で前記生成されたコンテンツを投影するステップをさらに含む、請求項1に記載の方法。
【請求項９】
プロジェクタによって、前記生成された空きエリアを投影するステップをさらに含む、請求項1に記載の方法。
【請求項１０】
前記生成された空きエリアを投影するステップが、暗いピクセルを投影するステップを含む、請求項9に記載の方法。
【請求項１１】
前記投影ターゲットを追跡するステップと、
前記追跡するステップに基づいて、前記決定されたコンテンツエリアと前記決定された空きエリアとを調整するステップと
をさらに含む、請求項1に記載の方法。
【請求項１２】
ジェスチャを検出するステップと、
前記検出されたジェスチャに基づいて、前記空きエリアがエリアを有していないと決定するステップと
をさらに含む、請求項1に記載の方法。
【請求項１３】
ジェスチャを検出するステップと、
前記検出されたジェスチャに基づいて、第2の投影ターゲットを決定するステップと、
前記第2の投影ターゲットの1つまたは複数の範囲を決定するステップと、
前記第2の投影ターゲットの前記決定された1つまたは複数の範囲に基づいて、第2のコンテンツエリアと第2の空きエリアとを決定するステップと、
前記第2の投影ターゲットまでの距離に基づいて、第2のスケーリングファクタを決定するステップと、
投影デバイスによって、前記決定されたコンテンツエリア内で前記第2の投影ターゲット上にコンテンツを投影するステップと
をさらに含む、請求項1に記載の方法。
【請求項１４】
投影ターゲットの1つまたは複数の投影パラメータに基づいて、コンテンツエリアと空きエリアとを投影するように構成されたプロジェクタであって、前記投影ターゲットは、前記ターゲットに関連付けられた情報に基づいて、1つまたは複数のフレーム内のオブジェクトを認識するためのオブジェクト認識を使用することによって決定され、前記コンテンツエリアはさらに、前記オブジェクトに関連付けられた指定コンテンツエリアに基づいて決定される、プロジェクタと、
前記投影ターゲットを含む視野の1つまたは複数の画像をキャプチャするように構成されたカメラと、
前記プロジェクタおよび前記カメラに結合された、1つまたは複数のプロセッサであって、前記1つまたは複数の投影パラメータを決定するように構成された、1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに結合されたメモリと
を備え、
前記1つまたは複数のプロセッサはさらに、前記投影ターゲット上に投影されたコンテンツが前記投影ターゲットの範囲に基づく最大解像度で投影されるように、前記投影ターゲットまでの距離に基づいてスケーリングファクタを決定するように構成される、
装置。
【請求項１５】
前記1つまたは複数のプロセッサが、前記1つまたは複数の画像を処理すること、および、前記投影ターゲットまでの距離と、前記投影ターゲットの形状と、前記投影ターゲットのアウトラインとを決定することによって、前記1つまたは複数の投影パラメータを決定するように構成される、請求項14に記載の装置。
【請求項１６】
前記空きエリアが、前記コンテンツエリアの決定されたアウトラインの外側に投影された暗いピクセルを備える、請求項14に記載の装置。
【請求項１７】
前記カメラが、デジタルライトプロセッシング(DLP)プロジェクタ、レーザービームステアリング(LBS)プロジェクタ、リキッドクリスタルオンシリコン(LCoS)プロジェクタのうちの少なくとも1つを備える、請求項14に記載の装置。
【請求項１８】
前記カメラが、ユーザによって行われたジェスチャをキャプチャするようにさらに構成される、請求項14に記載の装置。
【請求項１９】
前記ジェスチャが、プライベートモードとパブリックモードとの間で切り替えるためのジェスチャを含む、請求項18に記載の装置。
【請求項２０】
投影ターゲットを、前記ターゲットに関連付けられた情報に基づいて、1つまたは複数のフレーム内のオブジェクトを認識するためのオブジェクト認識を使用することによって決定するための手段と、
前記投影ターゲットの1つまたは複数の範囲を決定するための手段と、
前記決定された1つまたは複数の範囲に基づいて、コンテンツが投影されることになるコンテンツエリアと、コンテンツが投影されないことになる空きエリアとを決定するための手段であって、前記コンテンツエリアはさらに、前記オブジェクトに関連付けられた指定コンテンツエリアに基づいて決定される、手段と、
前記投影ターゲット上に投影されたコンテンツが前記投影ターゲットの範囲に基づく最大解像度で投影されるように、前記投影ターゲットまでの距離に基づいてスケーリングファクタを決定するための手段と、
前記スケーリングファクタに基づいて、前記コンテンツエリア内に投影するためのコンテンツを生成するための手段と、
前記空きエリアを生成するための手段と
を備えるシステム。
【請求項２１】
前記投影ターゲットの1つまたは複数の範囲を決定するための前記手段が、
前記投影ターゲットの1つまたは複数の画像を受信するための手段と、
前記1つまたは複数の画像から、前記投影ターゲットの形状を決定するための手段と
を備える、請求項20に記載のシステム。
【請求項２２】
前記1つまたは複数の画像に基づいて、前記投影ターゲットを含むエリアの深度マップを決定するための手段をさらに備える、請求項21に記載のシステム。
【請求項２３】
前記決定されたコンテンツエリア内で前記投影ターゲット上で前記生成されたコンテンツを投影するための手段をさらに備える、請求項20に記載のシステム。
【請求項２４】
前記生成された空きエリアを投影するための手段をさらに備える、請求項20に記載のシステム。
【請求項２５】
前記投影ターゲットを追跡するための手段と、
前記追跡に基づいて、前記決定されたコンテンツエリアと前記決定された空きエリアとを調整するための手段と
をさらに備える、請求項20に記載のシステム。
【請求項２６】
ジェスチャを検出するための手段と、
前記検出されたジェスチャに基づいて、前記空きエリアがエリアを有していないと決定するための手段と
をさらに備える、請求項20に記載のシステム。
【請求項２７】
ジェスチャを検出するための手段と、
前記検出されたジェスチャに基づいて、第2の投影ターゲットを決定するための手段と、
前記第2の投影ターゲットの1つまたは複数の範囲を決定するための手段と、
前記第2の投影ターゲットの前記決定された1つまたは複数の範囲に基づいて、第2のコンテンツエリアと第2の空きエリアとを決定するための手段と、
前記第2の投影ターゲットまでの距離に基づいて、第2のスケーリングファクタを決定するための手段と、
投影デバイスによって、前記決定されたコンテンツエリア内で前記第2の投影ターゲット上にコンテンツを投影するための手段と
をさらに備える、請求項20に記載のシステム。
【請求項２８】
1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサを含むシステムに、
投影ターゲットを、前記ターゲットに関連付けられた情報に基づいて、1つまたは複数のフレーム内のオブジェクトを認識するためのオブジェクト認識を使用することによって決定するステップと、
前記投影ターゲットの1つまたは複数の範囲を決定するステップと、
1つまたは複数のプロセッサによって、前記決定された1つまたは複数の範囲に基づいて、コンテンツが投影されることになるコンテンツエリアと、コンテンツが投影されないことになる空きエリアとを決定するステップであって、前記コンテンツエリアはさらに、前記オブジェクトに関連付けられた指定コンテンツエリアに基づいて決定される、ステップと、
前記1つまたは複数のプロセッサによって、前記投影ターゲット上に投影されたコンテンツが前記投影ターゲットの範囲に基づく最大解像度で投影されるように、前記投影ターゲットまでの距離に基づいてスケーリングファクタを決定するステップと、
前記スケーリングファクタに基づいて、前記コンテンツエリア内に投影するためのコンテンツを生成するステップと、
前記空きエリアを生成するステップと
を含む方法を実行させる命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項２９】
前記ターゲットに関連付けられた前記情報が、ユーザによって提供された情報、コンテンツプロバイダによって提供された情報、小売業者によって提供された情報、または製造業者によって提供された情報のうちの少なくとも1つを備える、請求項1に記載の方法。
【請求項３０】
前記ターゲットに関連付けられた前記情報が、ユーザによって提供された情報、コンテンツプロバイダによって提供された情報、小売業者によって提供された情報、または製造業者によって提供された情報のうちの少なくとも1つを備える、請求項14に記載の装置。
【請求項３１】
前記ターゲットに関連付けられた前記情報が、ユーザによって提供された情報、コンテンツプロバイダによって提供された情報、小売業者によって提供された情報、または製造業者によって提供された情報のうちの少なくとも1つを備える、請求項20に記載のシステム。
【請求項３２】
前記ターゲットに関連付けられた前記情報が、ユーザによって提供された情報、コンテンツプロバイダによって提供された情報、小売業者によって提供された情報、または製造業者によって提供された情報のうちの少なくとも1つを備える、請求項28に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示する実施形態は、一般に、投影ターゲットに投影を適合させることを対象とする。詳細には、本明細書で開示する実施形態は、ターゲットの境界内に投影するためにコンテンツをトリミングすることができる。
【背景技術】
【０００２】
パーソナルプロジェクタ、モバイルプロジェクタ、またはピコプロジェクタは、モバイルデバイスからの画像またはコンテンツをターゲットオブジェクト上に投影するために、モバイルデバイスとともに使用され得る。投影された画像またはコンテンツは、ユーザに、自分のモバイルデバイス上で現在利用可能であるものよりも大きいビューを提供することができ、または、ユーザが自分のモバイルデバイスからの画像またはコンテンツを共有することを可能にすることができる。モバイルプロジェクタはまた、拡張現実(AR)アプリケーションを向上させるためにも使用され得る。ARは、ユーザが世界と対話する方法を変更することを可能にする新しい技術である。ARは、物理的な現実世界環境の、生の直接的または間接的なビューであり、要素は、音、ビデオ、グラフィックス、またはGPSデータなど、コンピュータが生成したセンサ入力によって拡張される。いくつかの用途では、ARは、ユーザの周りの環境の画像をキャプチャして、次いで、拡張のために、キャプチャされた画像内のオブジェクトを認識するためのオブジェクト認識アルゴリズムを使用する、画像キャプチャデバイスを有するデバイスによって有効にされる。次いで、ユーザは、たとえば認識されたオブジェクトに基づいてビューの一部が拡張されたユーザの周りの環境のビューを、デバイスのディスプレイ上で提供され得る。モバイルプロジェクタは、画面上に拡張環境のビューを表示する代わりに、またはそれに加えて、オブジェクトを認識し、コンテンツを実際のオブジェクト上に投影することを可能にすることができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国出願第14/038,480号
【発明の概要】
【課題を解決するための手段】
【０００４】
いくつかの実施形態に従って、投影ターゲットを決定するステップと、投影ターゲットの1つまたは複数の範囲を決定するステップと、決定された1つまたは複数の範囲に基づいて、コンテンツエリアと空きエリアとを決定するステップと、スケーリングファクタを決定するステップと、スケーリングファクタに基づいて、コンテンツエリア内に投影するためのコンテンツを生成するステップと、空きエリアを生成するステップとを含む方法を提供する。この方法はまた、有形の非一時的コンピュータ可読媒体においても具現化され得る。
【０００５】
いくつかの実施形態に従って、投影ターゲットの1つまたは複数の投影パラメータに基づいて、コンテンツエリアと空きエリアとを投影するように構成されたプロジェクタを含む、装置も提供する。この装置はまた、投影ターゲットを含む視野の1つまたは複数の画像をキャプチャするように構成されたカメラと、プロジェクタおよびカメラに結合された、1つまたは複数のプロセッサであって、1つまたは複数の投影パラメータを決定するように構成された、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合されたメモリとを含む。
【０００６】
いくつかの実施形態に従って、投影ターゲットを決定するための手段を含むシステムをさらに提供する。このシステムはまた、投影ターゲットの1つまたは複数の範囲を決定するための手段と、決定された1つまたは複数の範囲に基づいて、コンテンツエリアと空きエリアとを決定するための手段と、スケーリングファクタを決定するための手段とを含む。このシステムは、スケーリングファクタに基づいて、コンテンツエリア内に投影するためのコンテンツを生成するための手段と、空きエリアを生成するための手段とをさらに含む。
【図面の簡単な説明】
【０００７】
【図１】いくつかの実施形態に一致する、処理システムを示す図である。
【図２Ａ】いくつかの実施形態に一致する、ターゲットオブジェクト上のエリアの範囲内に適合するように、コンテンツをトリミングする一例を示す図である。
【図２Ｂ】いくつかの実施形態に一致する、ターゲットオブジェクト上のエリアの範囲内に適合するように、コンテンツをトリミングする一例を示す図である。
【図２Ｃ】いくつかの実施形態に一致する、ターゲットオブジェクト上のエリアの範囲内に適合するように、コンテンツをトリミングする一例を示す図である。
【図２Ｄ】いくつかの実施形態に一致する、ターゲットオブジェクト上のエリアの範囲内に適合するように、コンテンツをトリミングする一例を示す図である。
【図３Ａ】いくつかの実施形態に一致する、オブジェクト上に適合するようにコンテンツをトリミングする一例を示す図である。
【図３Ｂ】いくつかの実施形態に一致する、オブジェクト上に適合するようにコンテンツをトリミングする一例を示す図である。
【図４Ａ】いくつかの実施形態に一致する、オブジェクトの範囲外に適合するようにコンテンツをトリミングする一例を示す図である。
【図４Ｂ】いくつかの実施形態に一致する、オブジェクトの範囲外に適合するようにコンテンツをトリミングする一例を示す図である。
【図５Ａ】いくつかの実施形態に一致する、コンテンツをトリミングする一例を示す図である。
【図５Ｂ】いくつかの実施形態に一致する、コンテンツをトリミングする一例を示す図である。
【図６Ａ】手の範囲内に適合するようにコンテンツをトリミングする一例を示す図である。
【図６Ｂ】手の範囲内に適合するようにコンテンツをトリミングする一例を示す図である。
【図７Ａ】いくつかの実施形態に一致する、検出されたジェスチャに基づいてコンテンツをトリミングする一例を示す図である。
【図７Ｂ】いくつかの実施形態に一致する、検出されたジェスチャに基づいてコンテンツをトリミングする一例を示す図である。
【図７Ｃ】いくつかの実施形態に一致する、検出されたジェスチャに基づいてコンテンツをトリミングする一例を示す図である。
【図７Ｄ】いくつかの実施形態に一致する、検出されたジェスチャに基づいてコンテンツをトリミングする一例を示す図である。
【図８Ａ】いくつかの実施形態に一致する、複数のオブジェクト上に適合するようにコンテンツをトリミングする一例を示す図である。
【図８Ｂ】いくつかの実施形態に一致する、複数のオブジェクト上に適合するようにコンテンツをトリミングする一例を示す図である。
【図９Ａ】いくつかの実施形態に一致する、オブジェクトの複数の部分上に適合するようにコンテンツをトリミングする一例を示す図である。
【図９Ｂ】いくつかの実施形態に一致する、オブジェクトの複数の部分上に適合するようにコンテンツをトリミングする一例を示す図である。
【図１０Ａ】いくつかの実施形態に一致する、複数のオブジェクト上に適合するように、複数の画像を有するコンテンツをトリミングする一例を示す図である。
【図１０Ｂ】いくつかの実施形態に一致する、複数のオブジェクト上に適合するように、複数の画像を有するコンテンツをトリミングする一例を示す図である。
【図１１】いくつかの実施形態に一致する、コンテンツをトリミングするための方法を示すフローチャートである。
【図１２】いくつかの実施形態に一致する、オブジェクト上でマスクされた画像を投影するための方法を示すフローチャートである。
【図１３】いくつかの実施形態に一致する、ターゲット上でマスクされたアラートを投影するための方法を示すフローチャートである。
【図１４】いくつかの実施形態に一致する、検出されたジェスチャに基づいて、ターゲット上でマスクされたコンテンツを投影するための方法を示すフローチャートである。
【発明を実施するための形態】
【０００８】
図面において、同じ記号を有する要素は、同じまたは同様の機能を有する。
【０００９】
以下の説明では、具体的な詳細を記載して、いくつかの実施形態について説明する。しかしながら、開示される実施形態は、これらの具体的な詳細の一部または全部を伴わずに実施され得ることが、当業者には明らかであろう。提示される具体的な実施形態は、例示的であることが意図されており、限定的であることは意図されていない。当業者は、本明細書で具体的に説明してはいないが、本開示の趣旨および範囲内にある他の物を実現し得る。
【００１０】
上述のように、モバイル投影デバイスは、ユーザに、自分のモバイルデバイス上で現在利用可能であるものよりも大きいビューを提供するために、または、ターゲットオブジェクトを拡張して拡張現実を作成するために、モバイルデバイスからの画像またはコンテンツをターゲットオブジェクト上に投影するために、モバイルデバイスとともに使用され得る。しかしながら、投影がユーザにとって、およびユーザの近くの他者にとっても不都合であり得る状況がある。たとえば、公共の場における投影は、他者の気を散らすものであり得、または、投影中に含まれるプライベートなコンテンツを他者が見ることを可能にし得る。ユーザのみがそこから投影を見ることが可能であり得る投影ターゲットを、ユーザが指定することを試みる場合でも、投影は、ユーザが投影を容易に見えるようにするためには小さすぎるようにスケーリングされることがあり、または、投影が適切にスケーリングされる場合、投影は依然として、投影がターゲットを超えたエリア上にあふれるように、ターゲットに重なることがある。
【００１１】
したがって、必要なものは、特定のターゲットの境界内に適合するように、投影画像内のコンテンツをトリミングするためのシステムおよび方法である。
【００１２】
図1は、いくつかの実施形態に一致する、処理システム100を示す図である。処理システム100は、スマートフォン、タブレットコンピュータ、パーソナルコンピュータ、ラップトップもしくはネットブック、ケーブルもしくは衛星コンテンツプロバイダによって提供されるようなセットトップボックス(STB)、またはビデオゲームシステムコンソールなどのモバイルデバイスであり得る。処理システム100はまた、ヘッドマウントディスプレイ(HMD)でもよく、または他のウェアラブルコンピューティングデバイスでもよい。いくつかの実施形態では、処理システム100は、自動車内に、たとえば、自動車のエンターテインメントセンタもしくはコンソール内に実装されるか、または、スマートインスリンポンプもしくはスマートインスリンメータなどのヘルスケアデバイス内に含まれるか、もしくは実装される。いくつかの実施形態によれば、処理システム100は、画像をキャプチャしてコンテンツを投影するために構成されたハードウェアおよび/またはソフトウェアの任意の適切な組合せを使用して実装され得る。具体的には、処理システム100は、1つまたは複数のプロセッサを有し、画像をキャプチャしてコンテンツを投影するために1つまたは複数のプロセッサによって実行するために非一時的機械可読媒体に記憶された命令を読み取ることが可能な、ハードウェアおよび/またはソフトウェアの任意の適切な組合せを含み得る。いくつかの一般的な形態の機械可読媒体としては、たとえば、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、CD-ROM、任意の他の光媒体、パンチカード、紙テープ、穴のパターンを有する任意の他の物理媒体、RAM、PROM、EPROM、FLASH-EPROM、任意の他のメモリチップもしくはカートリッジ、および/または1つもしくは複数のプロセッサもしくはコンピュータが読み取るように適合された任意の他の媒体が挙げられる。
【００１３】
処理システム100は、ネットワークと通信するために構成されたネットワークインターフェース構成要素102を含み得る。いくつかの実施形態に従って、ネットワークインターフェース構成要素102は、同軸ケーブル、光ファイバケーブル、デジタル加入者回線(DSL)モデム、公衆交換電話網(PSTN)モデム、イーサネット（登録商標）デバイス、および/または様々な他のタイプの有線ネットワーク通信デバイスとインターフェースをとるように構成され得る。ネットワークインターフェース構成要素102は、1つまたは複数のワイヤレストランシーバを含むこともでき、各ワイヤレストランシーバは、分離可能型または一体型の、Wi-Fi(商標)、3G、4G、HSDPA、LTE、RF、NFCなどの異なるワイヤレスネットワーキングプロトコルに従って情報を送信および受信することが可能なアンテナを含むことができる。
【００１４】
いくつかの実施形態に従って、処理システム100は、処理システム100内の様々な構成要素を相互接続し、様々な構成要素間で情報を通信するためのシステムバス104を含む。いくつかの実施形態では、バス104は、システムオンチップ(SoC)において実装され、チップおよび/または1つもしくは複数のプロセッサのコアにある様々な要素または構成要素を接続する。構成要素は、1つまたは複数のプロセッサ、中央処理ユニット(CPU)、画像信号プロセッサ(ISP)、マイクロコントローラ、またはデジタル信号プロセッサ(DSP)、グラフィックス処理ユニット(GPU)、ならびにアナログおよび/またはデジタル音響信号プロセッサを含み得る音響信号プロセッサであり得る処理構成要素106を含み得る。構成要素はまた、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、光学式、磁気、固体、または上述のような他のメモリに対応し得る、メモリ構成要素108を含み得る。
【００１５】
いくつかの実施形態に従って、処理システム100はまた、情報をユーザに表示するためのディスプレイ構成要素110を含み得る。ディスプレイ構成要素110は、液晶ディスプレイ(LCD)画面、有機発光ダイオード(OLED)画面(アクティブマトリックスAMOLED画面を含む)、LED画面、プラズマディスプレイ、またはブラウン管(CRT)ディスプレイであり得る。ディスプレイ構成要素110は、処理システム100に統合されてもよく、または、処理システム100から分離されて処理システム100に結合されてもよい。処理システム100はまた、入力およびナビゲーション構成要素112を含み得、ユーザが情報を入力して、ディスプレイ構成要素110に沿ってナビゲートすることを可能にする。入力およびナビゲーション構成要素112は、たとえば、キーボードもしくはキーパッド(物理的なものであるか仮想のものであるかを問わない)、マウス、トラックボール、または他のそのようなデバイス、あるいは容量性もしくは他のセンサベースのタッチスクリーンを含み得る。
【００１６】
処理システム100はまた、システム100および/またはその周囲に関連付けられるデータをキャプチャするセンサ114を含み得る。センサ114は、限定はしないが、マイクロフォンまたは音響センサ、カメラ、光センサ、近接センサ、周辺光センサ、圧力センサ、慣性センサ(たとえば、加速度計および/またはジャイロスコープ)、磁力計などを含み得る。センサ114は、個別に、もしくはセンサアレイなどの組合せで、または任意の他の組合せで使用され得る。センサ114は、互いに依存して、または互いに独立して動作することが可能であり得る。センサ114は、たとえば、メモリ構成要素108および他のモジュールに記憶された命令に従って、センサ114によってキャプチャされたデータを処理するために、ならびに、キャプチャされたデータに関連付けられるメタデータを生成またはさもなければ取得するために、システムバス104を通じて処理構成要素106と通信することができる。
【００１７】
処理システム100はまた、カメラ116を含み得る。いくつかの実施形態では、カメラ116は、Microsoft(登録商標)Xbox(商標)Kinect(商標)カメラなど、可視光カメラまたは深度感知カメラであり得る。カメラ116はまた、赤外線(IR)光または紫外線(UV)光を検出するように構成され得る。カメラ116はまた、ステレオカメラ、飛行時間(ToF)カメラ、または画像を検出してキャプチャすることが可能な他のカメラであり得る。いくつかの実施形態では、カメラ116は、処理するために、カメラ116の視野内のオブジェクトの1つまたは複数の画像をキャプチャするように構成され得る。その上、カメラ116は、ジェスチャ検出、追跡、オブジェクト認識、および他の目的のために、画像をキャプチャするために使用され得る。カメラはまた、ビデオなど、一連の画像をキャプチャすることも可能であり得る。
【００１８】
処理システム100はまた、プロジェクタ118を含み得る。プロジェクタ118は、1つまたは複数の画像を形成するために光を投影することが可能であり得る。1つまたは複数の画像は、フレームの集合として投影される静止画または動画などのコンテンツを含み得る。いくつかの実施形態では、プロジェクタ118は、投影画像に動きまたはアニメーションのアピアランス(appearance)を与えるために、投影光の配置を変更することができる。プロジェクタ118は、デジタルライトプロセッシング(DLP)プロジェクタ、レーザービームステアリング(LBS)プロジェクタ、リキッドクリスタルオンシリコン(LCoS)プロジェクタ、または他のプロジェクタであり得る。いくつかの実施形態では、プロジェクタ118はまた、モバイルプロジェクタまたはポータブルプロジェクタであり得る。いくつかの実施形態では、プロジェクタ118は、ウェアラブルプロジェクタであり得る。
【００１９】
処理システム100はまた、投影生成120、オブジェクト認識122、追跡124、トリミング126、およびジェスチャ検出128が可能であり得る。これらの機能は、処理構成要素106によって実行されると機能を実行する、1つまたは複数のソフトウェアモジュールによって実行され得る。他の実施形態では、機能は、メモリと、機能を実行するために命令を実行するための少なくとも1つのプロセッサとを有する、特定用途向け集積回路(ASIC)または他の回路を含む、ソフトウェアモジュールを指すことがある。いくつかの実施形態では、投影生成120は、プロジェクタ118によって投影するための1つまたは複数の画像を生成することを含み得る。生成された1つまたは複数の画像は、ターゲットオブジェクトまたはエリア上に投影するためのコンテンツであり得る。いくつかの実施形態では、コンテンツは、ターゲットオブジェクトまたはエリアを拡張するためのコンテンツであり得る。コンテンツはまた、画像、または、ビデオもしくはアニメーションなどの一連の画像であり得る。いくつかの実施形態では、投影コンテンツは、2次元(2D)または3次元(3D)データから生成されたコンテンツの投影を含み得る。コンテンツはまた、アラート、メッセージ、ユーザインターフェース(UI)要素、ソーシャルネットワーキングコンテンツなどであり得る。コンテンツはまた、いくつかの実施形態では、ターゲットオブジェクト上で表示するための最大解像度であり得る、あらかじめ決定された解像度で、ターゲットオブジェクト上に投影されるようにトリミングされ得る。
【００２０】
オブジェクト認識122は、カメラ116によってキャプチャされた画像において、1つまたは複数のオブジェクト認識アルゴリズムを実行することを含み得る。オブジェクト認識122において実行されるオブジェクト認識アルゴリズムは、特徴検出、パターン認識、アピアランスマッチング、画像マッチングなどを使用して、1つまたは複数の画像フレーム内のオブジェクトを認識することが可能であり得る。いくつかの実施形態では、オブジェクト認識122において認識されるオブジェクトは、追跡124のために使用されるオブジェクト、投影のターゲットとして指定されるオブジェクト、および拡張のためのオブジェクトであり得る。いくつかの実施形態では、オブジェクト認識122は、自動的に認識すること、ならびに、認識されたオブジェクトを投影および/または拡張のためのターゲットとして指定することを含み得る。
【００２１】
いくつかの実施形態では、処理システム100のユーザは、オブジェクトが、たとえば、ディスプレイ構成要素110によって処理システム100上に表示されるとき、オブジェクトを選択すること、またはさもなければオブジェクトと対話することによって、視野内のオブジェクトを投影のためのターゲットまたは拡張のためのオブジェクトとして指定することが可能であり得る。ユーザが拡張のためのオブジェクトを選択する場合、オブジェクト認識122は、選択されたオブジェクトを認識し、サードパーティによって提供された情報に基づくコンテンツを用いて、またはオブジェクトに関係する情報によって、認識されたオブジェクトを拡張することを試みることを含み得る。いくつかの実施形態では、オブジェクト認識122は、オブジェクト認識122を実行するために、およびオブジェクトに関係するコンテンツを見つけるために、ネットワークインターフェース構成要素102を使用してネットワークと通信することを含み得る。
【００２２】
追跡124は、ターゲットエリア内のオブジェクトのロケーションを経時的に関連付けることを含み得る。いくつかの実施形態では、追跡124は、プロジェクタが動くか、またはターゲットオブジェクトが動くときでも、投影コンテンツが1つまたは複数の指定されたターゲットオブジェクト上で投影されたままであるように、ある時間期間にわたってターゲットエリア内のオブジェクトの決定されたロケーションおよび向きに基づいて投影を制御するように構成され得る。追跡124は、カメラ116によってキャプチャされた画像、および、いくつかの実施形態では、センサ114からの情報に基づいて、プロジェクタ118の投影を制御し得る。いくつかの実施形態では、追跡124は、カメラ116によってキャプチャされた画像、および/または加速度計もしくはジャイロスコープなどのセンサ114によって取得された情報を使用して、ターゲットオブジェクトについてのポーズ、向き、および深度情報を推定することを含み得る。追跡124は、拡張現実コンテンツを生成することを含む、プロジェクタ118による投影を制御するために後に投影生成120において使用され得る、1つまたは複数のマトリックスを生成することをさらに含み得る。追跡124は、カメラ116からのキャプチャされた画像、および/またはセンサ114からの情報に基づいて、投影生成120のためのコンテンツをスケーリングすること、回転させること、および変換することを含み得る。追跡124は、キャプチャされた画像に基づいて、6つの自由度(degree-of-freedom)を決定すること、および、決定された6つの自由度に基づいて、投影するためのコンテンツを追跡することを含み得る。カメラ116が深度感知カメラであるか、またはそれを含む場合の実施形態では、1つまたは複数の画像は、視野の深度マップを展開するために処理され得る。深度マップは、投影の適切な焦点を維持することを含む、投影を追跡して制御するために、追跡124において使用され得る。
【００２３】
トリミング126は、投影生成によって生成され、投影デバイスによって投影されるコンテンツを、ターゲットオブジェクトの境界内に投影されるようにトリミングするために、1つまたは複数のアクションを実行することを含み得る。概して、トリミング126は、コンテンツエリアと呼ばれることがある、コンテンツを有することになる投影のエリアと、コンテンツを有することにならない投影のエリアである空きエリアとを決定することを含み得る。いくつかの実施形態では、空きエリアは、黒または暗いピクセルが投影されるエリアであり得る。暗いピクセルは、黒ピクセルを含み得るが、投影コンテンツの平均強度または投影コンテンツのエッジの平均強度よりも暗いピクセルをも含み得る。いくつかの実施形態では、暗いピクセルは、RGBカラースケールにおいて80%以上暗い色を有するピクセルを含み得る。いくつかの実施形態では、暗いピクセルは、プロジェクタ118によって投影されている光の色に対して暗い色を有するピクセルを含み得る。いくつかの実施形態では、空きエリアは、黒または暗い走査線が投影されるエリアであり得る。さらに、いくつかの実施形態では、暗いピクセルは、プロジェクタ118によって光が投影されないエリアであり得る。たとえば、ピクセルを制御するミラー、レーザー、または他の構成要素が、空きエリア内に暗いピクセルを発生させるためにオフにされ得る。
【００２４】
概して、トリミング126は、ターゲットオブジェクトの形状またはアウトラインに基づいて、投影画像をマスクするために、空きエリアを生成することを含み得る。たとえば、トリミング126は、ターゲットオブジェクトの形状を決定すること、決定された形状に基づいて空きエリアを作成すること、ならびに、決定された形状内にコンテンツが投影されるように、および、決定された形状の外側にコンテンツが実質的に投影されないが、決定された形状の外側に暗いピクセルが投影されるように、投影をマスクすることを含み得る。いくつかの実施形態では、形状は、カメラ116によってキャプチャされたターゲットオブジェクトの画像から、ターゲットオブジェクトのアウトラインを決定することによって、決定され得る。他の実施形態では、形状は、メモリ構成要素108内に記憶されているか、またはシステム100と通信している別のデバイスから受信されていることがある、ターゲットオブジェクトの画像から、ターゲットオブジェクトのアウトラインを決定することによって、決定され得る。いくつかの実施形態では、空きエリアは、決定されたアウトラインよりもわずかに大きいかまたはわずかに小さい、たとえば、1ピクセル大きいかまたは小さいように、自動的に設定され得る。いくつかの実施形態では、形状は、オブジェクト認識122によって決定され得、ここにおいて、ターゲットオブジェクトは、あらかじめ決定された形状およびアウトラインを有する既知の形状として認識される。いくつかの実施形態では、形状、およびしたがって空きエリアは、製造業者、小売業者、またはコンテンツプロバイダなどのサードパーティによって、ターゲットオブジェクト上に特定のマスクされたコンテンツを投影する目的で設定され得る。
【００２５】
トリミング126はまた、ターゲットオブジェクトまでの距離に基づいて、投影をスケーリングすることを含み得る。前に説明したように、カメラ116は、あらかじめ決定されたロケーションにおいて、および適切な焦点において投影を維持するために、追跡124によって使用され得る深度マップを作成することが可能であり得る、深度カメラであり得るか、またはそれを含み得る。トリミング126はまた、ターゲットオブジェクト上で所望のサイズまたは解像度を有するように、投影をスケーリングするためのスケーリングファクタを決定するための深度マップを使用することができる。さらに、トリミング126は、深度マップ内の背景から投影ターゲットをセグメント化することによって、深度マップを使用して、投影ターゲットの形状を決定することができる。いくつかの実施形態では、トリミング126は、ユーザが最大解像度で投影を見ることを可能にするために、ターゲットオブジェクト上で、最大解像度などの解像度を有するように、投影をスケーリングする。トリミング126は、コンテンツエリア内で最大解像度を有するように、すなわち、投影コンテンツが空きエリア内に著しくあふれないように、投影をさらにスケーリングすることができる。したがって、いくつかの実施形態では、トリミング126は、投影ターゲットの形状を決定すること、決定された形状に基づいて、投影するためのコンテンツエリアと空きエリアとを決定すること、投影ターゲットまでの距離を決定すること、および、決定された距離と決定されたコンテンツエリアとに基づいて、スケーリングファクタを決定することを含み得る。コンテンツの決定されたコンテンツエリア、および空きエリア、ならびに決定されたスケーリングファクタが、次いで投影生成120によって、スケーリングファクタによって決定された解像度で投影ターゲットの範囲内に投影するためのトリミングされたコンテンツを生成するために使用され得る。いくつかの実施形態では、スケーリングファクタは、ユーザ選好または設定に基づいて調整され得る。たとえば、ユーザは、設定されたスケーリングファクタによって決定される、あらかじめ決定された解像度で投影するためのトリミングされたコンテンツを生成するために、投影生成120によって使用されることになる、特定のスケーリングファクタを設定することができる。
【００２６】
いくつかの実施形態では、オブジェクト認識122、追跡124、およびトリミング126は、プロジェクタ118によって投影されるコンテンツを精緻化するために、処理システム100内で使用され得る。たとえば、カメラ116は、プロジェクタ118によって投影されるコンテンツならびに投影ターゲットの1つまたは複数の画像をキャプチャすることが可能であり得る。オブジェクト認識122、追跡124、およびトリミング126は、投影コンテンツのスケールと、投影コンテンツの焦点と、決定されたコンテンツエリアおよび空きエリアの境界とを決定して、投影コンテンツのこれらの特徴を精緻化するために、キャプチャされた1つまたは複数の画像において実行され得る。精緻化された特徴に関係する情報は、これらの精緻化された特徴を有するコンテンツがプロジェクタ118によって投影され得るように、投影生成120に提供され得る。この精緻化決定は、投影コンテンツのフレームレートに関係するあらかじめ決定されたレートで実行され得るか、または可変レートで実行され得る。たとえば、処理システム100は、各精緻化決定後の精緻化の程度を決定することができ、その程度がより小さくなるにつれて、精緻化の頻度が低減され得る。別の例として、オブジェクト認識122および/または追跡124が、投影ターゲットのサイズもしくはロケーションにおける著しい変化、または、システム100の位置における著しい変化を決定するとき、精緻化の頻度が増加され得る。
【００２７】
ジェスチャ検出128は、カメラ116および/またはセンサ114によってキャプチャされた一連の画像または他の情報を処理して、カメラ116および/またはセンサ114によってキャプチャされたデータの統計量における急激な変化を検出することによって、ジェスチャを検出することを含み得る。統計量は、ヒストグラム、平均輝度、輝度の分散などであり得、ジェスチャ検出128は、現在の統計量を従来の統計量と比較することを含み得、ここにおいて、従来の統計量は、現在キャプチャされた、センサ114からのデータまたはカメラ116からの画像の直前の時間に獲得された、1つまたは複数のキャプチャされたデータのセットの統計量の組合せとして計算され得る。いくつかの実施形態では、ジェスチャ検出128は、絶対差、統計量のセットの各々の絶対差の和、またはヒストグラムの各ビンの絶対差の和を計算することによって、統計量を比較することを含み得、その結果は、周辺照明またはデバイスの動きから生じた差を除外するために、しきい値と比較され得る。しきい値よりも大きい差は、ジェスチャを示す、統計量における急激な変化として分類され得る。ジェスチャ検出128はまた、超音波を使用して、経時的に動きを検出することもできる。
【００２８】
いくつかの実施形態では、ジェスチャ検出128は、プロジェクタ118によって投影を開始するためのジェスチャを検出することを含み得る。ジェスチャ検出128は、ターゲットオブジェクトの範囲内に投影されるようにコンテンツをトリミング126するためのジェスチャを検出することを含み得る。いくつかの実施形態では、ターゲットオブジェクトの範囲内に投影されるようにコンテンツをトリミング126することは、システム100に関連付けられたプライベートモードの一部として実施され得る。ジェスチャ検出128は、プライベートモードに入り、プライベートモードから出るための、1つまたは複数のジェスチャを検出することができる。ジェスチャ検出によって検出される例示的なジェスチャは、カバージェスチャを含み得、カバージェスチャは、システム100の上の位置において検出される手または他の制御オブジェクトであり得る。検出され得る別のジェスチャは、開いた手または閉じた手である。別のジェスチャは、閉じた手が離れ、次いで開く、「スローイングモーション」のジェスチャであり得る。検出され得る他のジェスチャは、手を傾けること、またはシステム100の上から手を外すことを含み得る。ジェスチャの各々が検出され得、ジェスチャ検出128は、特定のコマンドを検出されたジェスチャの各々に関連付けることができる。たとえば、カバージェスチャは、投影を開始することができ、開いた手は、プライベートモードに入るか、またはさもなければ、投影コンテンツをトリミング126するための指示を提供することができ、スローイングモーションは、プライベートモードから離れるか、またはさもなければ、投影コンテンツがもはやターゲットオブジェクトの境界に制限されないことを示すことができる。これらのジェスチャおよびそれらの関連付けられたアクションは、単なる例である。実際には、ジェスチャ検出128は、キャプチャされたデータに基づいてジェスチャを検出し、コマンドまたはアクションを検出されたジェスチャに関連付けることが可能であり得る。
【００２９】
処理システム100は、いくつかの実施形態によれば、図1に示すよりも多くの、または少ない構成要素を含み得る。その上、図1に示す構成要素は、図1における1つまたは複数の他の構成要素に直接結合される場合があり、システムバス104の必要がなくなる。さらに、図1に示す構成要素は、単一システム100の一部であるものとして示され得るが、構成要素が分離しているが、結合されて通信しているシステムの一部でもあり得る。一般に、図1に示す構成要素は、本明細書で開示する実施形態を実行することが可能な処理システム100における構成要素の例として示されている。ただし、処理システム100は、より多くの、またはより少ない構成要素を有してもなお、本明細書で開示するいくつかの実施形態を実行することが可能であり得る。
【００３０】
図2A〜図2Dは、いくつかの実施形態に一致する、ターゲットオブジェクト上のエリアの範囲内に適合するように、コンテンツをトリミングする一例を示す。例示の目的で、図2A〜図2Dには処理システム100の一部分のみを示すが、図1に示す処理システム100の他の構成要素への参照が行われ得る。図2Aに示すように、ターゲットオブジェクト200は、ターゲットオブジェクト200上にエリア202を含む。カメラ116は、オブジェクト200およびエリア202の1つまたは複数の画像をキャプチャすることができ、それらの画像は、投影生成120、オブジェクト認識122、追跡124、およびトリミング126のために処理され得る。いくつかの実施形態では、その内容全体が参照により本明細書に組み込まれる、2013年9月26日に出願された同時係属の米国出願第14/038,480号、Qualcomm Ref. No. 131009において開示されているように、キャプチャフレームが画像キャプチャの時間にオブジェクト200上に投影され得る。
【００３１】
1つまたは複数のキャプチャされた画像におけるオブジェクト認識122は、オブジェクト200および/またはエリア202を認識することを試みることを含み得る。いくつかの実施形態では、オブジェクト認識122は、認識されたオブジェクトに基づいて、投影するためのコンテンツを取り出し、および/または生成することを含み得る。いくつかの実施形態では、オブジェクト認識122はまた、認識されたオブジェクトに関連付けられた情報に基づいて、オブジェクト200上のエリア202をコンテンツエリアとして指定することを含み得る。たとえば、オブジェクト200の製造業者、小売業者、または製作者は、オブジェクト認識を通して決定され得る、エリア202内に投影するためのコンテンツを具体的に指定することができる。
【００３２】
追跡124は、オブジェクト200およびエリア202についてのポーズ、位置、6つの自由度(DOF)、および他の情報を決定することを含み得る。いくつかの実施形態では、カメラ116は、オブジェクト200までの距離d1と、エリア202までの距離d2とを含む、オブジェクト200を含む視野の深度マップを決定するために使用され得る、深度カメラであり得るか、またはそれを含み得る。深度マップ、ならびに距離d1およびd2は、オブジェクト200およびエリア202の追跡124、トリミング126のために、ならびに、オブジェクト200および/またはエリア202上に投影されたコンテンツの焦点を合わせるために使用され得る。
【００３３】
いくつかの実施形態では、エリア202など、オブジェクト200の一部分が、コンテンツエリアとして指定され得る。エリア202は、サードパーティによってコンテンツエリアとして指定され得、オブジェクト認識122がオブジェクト200を認識し、前に説明したように、エリア202をコンテンツエリアとして指定することを含む、オブジェクト200についての情報を決定するようになる。いくつかの実施形態では、システム100のユーザは、エリア202など、オブジェクト200の一部分をコンテンツエリアとして手動で指定することが可能であり得る。いくつかの実施形態では、この指定は、入力およびナビゲーション構成要素112を使用して、ディスプレイ構成要素110上に表示されたエリアを選択することによって行われ得る。次いで、トリミング126は、エリア202の範囲内になるように投影されるように、コンテンツをトリミングすることを含み得る。
【００３４】
たとえば、トリミング126は、決定された形状の範囲内にコンテンツが投影され得るが、決定された形状の範囲の外側にコンテンツが投影されないように、1つまたは複数の画像に基づいて、エリア202の形状を決定すること、ならびに、決定された形状およびアウトラインに基づいて、コンテンツエリアと空きエリアとを決定することを含み得る。いくつかの実施形態では、形状を決定することは、オブジェクト200およびエリア202の1つまたは複数の画像から、エリア202のアウトラインを決定することを含み得る。いくつかの実施形態では、形状およびアウトラインは、オブジェクト認識122に基づいて決定され得、ここにおいて、ターゲットオブジェクトは、あらかじめ決定された形状およびアウトラインを有する既知の形状として認識される。トリミング126はまた、オブジェクト200およびエリア202までの距離d1およびd2に基づいて、スケーリングファクタを決定することを含み得る。
【００３５】
決定されたコンテンツエリアおよび空きエリア、ならびに決定されたスケーリングファクタが、次いで投影生成120によって、スケーリングファクタによって決定された解像度でエリア202の範囲内に投影するためのトリミングされたコンテンツを生成するために使用され得る。図2Bは、エリア202の範囲外の空きエリア204を示す。いくつかの実施形態では、空きエリア204は仮想マスクエリアであり得、そこで、黒または暗いピクセルが、エリア202の範囲外でオブジェクト200上に、およびその周りに投影される。いくつかの実施形態では、空きエリア204は、走査投影中に投影される黒または暗い走査線であり得る。他の実施形態では、空きエリア204は、プロジェクタが、たとえば、空きエリア204内のピクセルをオフにすることによって、いかなるピクセルをも投影しないように構成される、エリアであり得る。
【００３６】
図2Cは、プロジェクタ118が画像206を投影することを示す。いくつかの実施形態に従って、画像206は、スケーリングファクタによって決定された解像度で、エリア202の範囲内に適合するように設計された寸法を有し得る。図2Dは、プロジェクタ118がオブジェクト200のエリア202上に画像206を投影し、空きエリア204がエリア202を囲むことを示す。例示のために、図2Dにおけるプロジェクタ118は、オブジェクト200と同じ寸法を有するエリアを投影すると仮定される。しかしながら、プロジェクタ118が、オブジェクト200の範囲を超えるエリアを投影する場合、空きエリア204は、エリア202の外側のエリアの範囲を満たすことができる。いくつかの実施形態では、カメラ116は、投影画像206と空きエリア204とを含む、1つまたは複数の画像をキャプチャし続けることができる。追跡124は、カメラ116によってキャプチャされたか、またはさもなければシステム100に提供された、オブジェクト200、投影画像206、および空きエリア204の画像に基づいて、投影画像206と空きエリア204とを調整することを含み得る。
【００３７】
図2A〜図2Dに示すように、ユーザは、エリア202などのあらかじめ決定されたエリア内に、画像206などのコンテンツを投影することが可能であり得る。たとえば、システム100のディスプレイ構成要素110上で利用可能であるよりも大きい表面エリア上で画像206を見ることを望むユーザは、見るためにオブジェクト200上のエリア202上に画像206を投影することが可能であり得る。ユーザは、エリア202をコンテンツエリアとして指定することができ、トリミング126は、最大解像度であり得るあらかじめ決定された解像度でエリア202上に画像206が投影され得るように、画像206および空きエリア204のエリア、ならびにスケーリングファクタを決定することが可能であり、したがって、ユーザがより大きいエリア202上で画像206を見ることを可能にすることができる。その上、ユーザは、投影画像206がエリア202の範囲を超えて拡張すること、または、オブジェクト200の後ろまたはその周りの表面上にあふれ出すことについて心配する必要がなくなり、その理由は、トリミング126がそれらのエリアをターゲットエリア202の外側であるとして決定し、したがって、コンテンツが投影されない空きエリア204を生成することになるからである。
【００３８】
いくつかの実施形態では、画像206は、オブジェクト200を拡張して、拡張現実を作成するための画像であり得る。たとえば、オブジェクト認識122は、オブジェクト200を認識し、オブジェクト200の製造業者、小売業者、または製作者から画像206を取り出すことができる。トリミング126は、取り出された画像206がオブジェクト200のエリア202上で投影されるように、空きエリア204を決定することができる。いくつかの実施形態では、空きエリア204および画像206のためのエリアは、画像206とともに取り出され得、それらのエリアが、オブジェクト200の製造業者、小売業者、または製作者によってあらかじめ決定されるようになる。
【００３９】
図3Aおよび図3Bは、いくつかの実施形態に一致する、オブジェクト上に適合するようにコンテンツをトリミングする一例を示す。具体的には、図3Aおよび図3Bに示す例は、オブジェクト300の範囲内に適合するようにコンテンツをトリミングする一例を示す。図3Aに示すように、カメラ116は、オブジェクト300の1つまたは複数の画像をキャプチャすることができる。次いで、1つまたは複数のキャプチャされた画像は、投影生成120、オブジェクト認識122、追跡124、およびトリミング126のために使用され得る。いくつかの実施形態では、オブジェクト300の画像は、システム100に提供され得るか、または、システム100のメモリ構成要素108内に記憶されていることがある。オブジェクト認識122は、オブジェクト300上に投影するための、画像302などのコンテンツを決定することができる。いくつかの実施形態では、システム100のユーザは、オブジェクト300上に投影するための画像302を指定することができる。その上、オブジェクト認識122は、オブジェクト300をコンテンツエリアとして指定することができる。たとえば、画像302が平面上に表示するために設計される場合、オブジェクト認識122は、システム100に最も近い平面を決定し、その表面をコンテンツエリアとして指定することを試みることができる。別の例として、画像302が、投影するためのビデオ内の多数の画像のうちの1つである場合、オブジェクト認識122は、ビデオを表示するために好適な表面を決定することを試みることができる。たとえば、オブジェクト認識122は、ビデオを表示するために、平らな矩形の表面、および/または静止した表面の位置を特定すること、ならびに、視野内のそのような表面をコンテンツエリアとして指定することを試みることができる。
【００４０】
トリミング126は、オブジェクト300の形状と、オブジェクト300の形状および/またはアウトラインと、オブジェクトまでの距離とを決定し、空きエリア304と、画像302を投影するためのコンテンツエリアとを決定することができる。図3Bに示すように、プロジェクタ118は、画像302がオブジェクト300の範囲内に投影され、空きエリア304がオブジェクト300の範囲外に投影されるように、画像302と空きエリア304とをオブジェクト300上に投影することができる。いくつかの実施形態では、空きエリア304は、投影された黒もしくは暗いピクセル、または、それらのピクセルにおいてプロジェクタ118によってコンテンツが投影されないように、プロジェクタ118によってオフにされたピクセルを含む、仮想光マスクに対応し得る。いくつかの実施形態では、画像302は、オブジェクト300を拡張して、拡張現実を作成するための画像であり得る。他の実施形態では、画像302は、システム100のユーザが、たとえば、システム100のディスプレイ構成要素上ではなく、オブジェクト300上で見るために、オブジェクト300上で投影することを望む画像または他のコンテンツであり得る。
【００４１】
図4Aおよび図4Bは、いくつかの実施形態に一致する、オブジェクト402の範囲外に適合するようにコンテンツをトリミングする一例を示す。図4Aおよび図4Bに示す例は、「逆トリミング」であると呼ばれることがあり、ここにおいて、コンテンツはオブジェクト402の外側に投影され、オブジェクト402は、空きエリア406をオブジェクト402上に投影することによってマスクされる。図4Aに示すように、カメラ116は、オブジェクト402の周囲のエリア400を有するオブジェクト402の1つまたは複数の画像をキャプチャすることができる。次いで、1つまたは複数のキャプチャされた画像は、投影生成120、オブジェクト認識122、追跡124、およびトリミング126のために使用され得る。いくつかの実施形態では、エリア400およびオブジェクト402の画像は、システム100によって受信され得るか、またはメモリ構成要素108内に記憶され得る。オブジェクト認識122は、オブジェクト402の周りのエリア400上に投影するための、画像404などのコンテンツを決定することができる。いくつかの実施形態では、システム100のユーザは、オブジェクト402の周りのエリア400上に投影するための画像404を指定することができる。トリミング126は、オブジェクト402の形状と、オブジェクト402のアウトラインと、オブジェクト402およびエリア400までの距離とを決定し、空きエリア406と、画像404をオブジェクト402の周りのエリア400上に投影するためのコンテンツエリアとを決定することができる。図4Bに示すように、プロジェクタ118は、画像404がオブジェクト402の範囲外に投影され、空きエリア406がオブジェクト402上に生成されるように、画像404をエリア400上に投影することができ、空きエリア406がオブジェクト402上に生成され得る。
【００４２】
図4Aおよび図4Bに示すように、空きエリア406を生成して、オブジェクト402をマスクし、画像404などのコンテンツをオブジェクト402の周りに投影することは、オブジェクト402を覆い隠すことなく、またはオブジェクト402と対話するように見えるコンテンツを投影することなく、オブジェクト402についての情報をオブジェクト402の周りに投影するために有用であり得る。たとえば、画像404は、オブジェクト402を使用、操作、または維持するための命令を含み得、オブジェクト402の周りに投影され得るが、空きエリア406は、オブジェクト402をマスクして、オブジェクト402が画像404によって覆い隠されることを防止する。別の例では、画像404は、オブジェクト402を参照すること、またはオブジェクト402の吹き出しを示すことなど、オブジェクト402と対話することができるが、空きエリア406は、オブジェクト402をマスクして、オブジェクト402が画像404によって覆い隠されることを防止する。
【００４３】
図5Aおよび図5Bは、いくつかの実施形態に一致する、コンテンツをトリミングする一例を示す。具体的には、図5Aおよび図5Bに示す例は、オブジェクト502上のエリア500の範囲内に適合するように、コンテンツをトリミングする一例を示す。図5Aに示すように、カメラ116は、エリア500を有するオブジェクト502の1つまたは複数の画像をキャプチャすることができる。次いで、1つまたは複数のキャプチャされた画像は、投影生成120、オブジェクト認識122、追跡124、およびトリミング126のために使用され得る。いくつかの実施形態では、エリア500およびオブジェクト502の画像は、システム100によって受信され得るか、またはメモリ構成要素108内に記憶され得る。いくつかの実施形態では、オブジェクト認識122は、オブジェクト502のエリア500上に投影するための、画像504などのコンテンツを決定することができる。いくつかの実施形態では、システム100のユーザは、オブジェクト502のエリア500上に投影するための画像504を指定することができる。たとえば、オブジェクト認識122は、オブジェクト502を、空の空間のエリア500を有するとして認識し、エリア500を、その上に画像504が投影され得るコンテンツエリアとして指定することができる。代替的に、オブジェクト認識122は、オブジェクト502を認識し、オブジェクト502に関連付けられたあらかじめ決定された命令に基づいて、エリア500を、その上に画像504が投影され得るコンテンツエリアとして指定することができる。たとえば、画像504は、使用するための命令、またはエリア500上に投影するために合わせられるオブジェクト502についての情報など、オブジェクト502に関連付けられたコンテンツであり得る。
【００４４】
次いで、トリミング126は、エリア500の形状と、エリア500のアウトラインと、オブジェクト502およびエリア500までの距離とを決定し、空きエリア506を決定することができる。図5Bに示すように、プロジェクタ118は、画像504をオブジェクト502のエリア500上に投影し、画像504がエリア500上のみに投影されるように、空きエリア506を生成することができる。
【００４５】
いくつかの実施形態では、図5Aおよび図5Bに示す例は、オブジェクト502の一部分が空きエリア506によってマスクされるように、画像がオブジェクト502上およびオブジェクト502の外側のエリア上に投影され得るように、図4Aおよび図4Bに示す例と組み合わせられ得る。たとえば、ユーザまたはARコンテンツプロバイダが、オブジェクト502を拡張することを望まないか、または、オブジェクト502の一部分のみを拡張することを望むが、オブジェクト502の周りのエリアを拡張することを望む場合、画像404および/または504は、オブジェクト502の周りおよびオブジェクト502上にそれぞれ投影され得る。いくつかの実施形態では、システム100は、複数の画像を投影すること、ならびに、その各々が追跡124によって別個に追跡され得る、オブジェクト上およびオブジェクトの周りの複数の空きエリアを生成することが可能であり得る。いくつかの実施形態では、複数の画像および空きエリアは、プロジェクタ118によって交互に投影され得る。
【００４６】
図6Aおよび図6Bは、手600の範囲内に適合するようにコンテンツをトリミングする一例を示す。いくつかの実施形態では、システム100の処理構成要素106は、1つまたは複数のアラート、メッセージ、または他のコンテンツを生成することができる。システム100のユーザは、生成された1つまたは複数のアラート、メッセージ、または他のコンテンツに関連付けられたコンテンツを投影することを望むことがあるが、コンテンツをプライベートに保つことを望むことがある。たとえば、システム100のユーザが、電子メール、インスタントメッセージ、またはショートメッセージングサービス(SMS)を介して、個人情報を含むメッセージを受信する場合、ユーザは、個人情報が他者に見られることを望まないことがある。したがって、ユーザは、投影コンテンツがオブジェクトを超えた表面上にあふれることなく、ユーザが好適な解像度でコンテンツを投影することを可能にするオブジェクト上に投影されるように、コンテンツをトリミングすることを望むことがある。したがって、本明細書に示すような実施形態は、ユーザが自分の手などのオブジェクト上にコンテンツを投影することを可能にすることができるが、投影コンテンツをプライベートに、およびユーザの周りの他者の邪魔にならないように保つために、空きエリアがオブジェクトの外側に生成される。
【００４７】
図6Aに示すように、カメラ116は、手600の1つまたは複数の画像をキャプチャすることができる。次いで、1つまたは複数のキャプチャされた画像は、投影生成120、オブジェクト認識122、追跡124、およびトリミング126のために使用され得る。いくつかの実施形態では、手600の画像は、システム100によって受信され得るか、またはメモリ構成要素108内に記憶され得る。トリミング126は、手600の形状と、手600のアウトラインと、手600までの距離とを決定し、空きエリアと、手600上に投影するためのコンテンツエリアとを決定することができる。図6Bに示すように、プロジェクタ118は、メッセージ602が手600の範囲内に投影され、空きエリア604が生成され、いくつかの実施形態では、手600の範囲外に投影されるように、メッセージ602を手600上に投影することができる。結果として、図6Bに示すように個人的なメッセージ602である投影コンテンツは、手600上のみに投影されることになり、メッセージ602内のいかなる情報も、他者が個人的なメッセージ602内の情報を見ることができる、手600を超えた表面上にあふれないことになる。
【００４８】
図7A〜図7Dは、いくつかの実施形態に一致する、検出されたジェスチャに基づいてコンテンツをトリミングする一例を示す。前に説明したように、ジェスチャ検出128は、カメラ116および/もしくはセンサ114によってキャプチャされた一連の画像もしくは他の情報を処理して、カメラ116および/もしくはセンサ114によってキャプチャされたデータの統計量における急激な変化を検出すること、または、超音波を使用して経時的に動きを検出することによって、ジェスチャを検出することを含み得る。次いで、検出されたジェスチャは、たとえば、ジェスチャ検出128内に含まれているか、またはメモリ構成要素108内に記憶されているジェスチャライブラリを使用して、アクションまたはコマンドに相関され得る。
【００４９】
図7Aに示すように、システム100のユーザは、第1のオブジェクト700と第2のオブジェクト702とを有するエリア内であり得る。図示のように、第1のオブジェクト700は、第2のオブジェクト702よりもシステムに近く、より小さいものであり得るが、本開示に一致する実施形態は、そのように限定しないことがある。プロジェクタ118は、画像704を第2のオブジェクト702上に投影中であり得る。いくつかの実施形態では、画像704は、投影生成120によって生成され、オブジェクト認識122によって決定されたコンテンツの一部であり得、追跡124によって決定された第2のオブジェクト702上のロケーションにおいて投影され得る。システム100のユーザが、画像704を第1のオブジェクト700上に投影することを望むとき、ユーザは、ジェスチャを行うことができ、そのジェスチャは、カメラ116および/またはセンサ114によって検出され得、ジェスチャ検出128によって、画像704を第1のオブジェクト700上に投影するなどのアクションにそのジェスチャを相関させるために処理され得る。検出されたジェスチャは、閉モードまたはプライベートモードを示す、閉じた手などのジェスチャであり得る。ジェスチャ検出128は、このジェスチャを、異なるターゲット上に投影するか、もしくはプライベートモードに切り替えるためのコマンド、または、投影ターゲットを切り替えることを示す他のアクションに相関させることができる。
【００５０】
図7Bに示すように、カメラ116は、トリミング126によって、画像704をスケーリングするためにスケーリングファクタを決定するため、および、コンテンツエリアと空きエリアとを決定するために使用され得る、第1のオブジェクト700の画像をキャプチャすることができる。図7Cに示すように、スケーリングファクタ、決定されたコンテンツエリアおよび空きエリアは、投影生成120によって、決定されたコンテンツエリア内に、スケーリングファクタによって決定された解像度で画像704を投影するために使用され得、空きエリア706は、コンテンツエリアの外側のエリアをマスクするために生成される。いくつかの実施形態では、第1のオブジェクト700は、システム100のユーザにより近いものであり得、したがって、ユーザにとって、画像704を見るためにより好都合であり得る。第1のオブジェクト700はまた、システム100のユーザにより多くのプライバシーを提供し、ユーザの周りの他者が、画像704がオブジェクト700上に投影されるときに画像704を見ることができないようにすることもできる。
【００５１】
いくつかの実施形態では、第1のオブジェクト700はまた、オブジェクト認識122に基づいて、その上に画像704を投影するために好適であるとして決定され得る。たとえば、投影ターゲットを切り替えるためのジェスチャに応答して、オブジェクト認識122は、カメラ116によってキャプチャされた1つまたは複数の画像を処理して、システム100までの距離、サイズ、寸法などのファクタに基づいて、投影ターゲットのための好適なオブジェクトを見つけることができる。次いで、トリミング126は、オブジェクト認識122によって認識された第1のオブジェクト700に基づいて、スケーリングファクタと、コンテンツエリアと、空きエリア706とを決定することができる。
【００５２】
システム100のユーザが、投影ターゲットを第1のオブジェクト700から切り替えることを望むとき、ユーザは、別のジェスチャを行うことができる。たとえば、ユーザは、自分の手を開いてパブリックモードもしくは開モードを示す、または、第2のオブジェクト702(もしくは、他の所望のターゲットオブジェクト)に向かってスローイングモーションを行う、ジェスチャを行うことができる。カメラ116および/またはセンサ114は、ジェスチャ検出128によって、投影ターゲットを切り替えるなどのアクションに相関され得る、このジェスチャを検出することができる。図7Dに示すように、次いで、プロジェクタ118は、画像704を第2のオブジェクト702上に再度投影することができる。いくつかの実施形態では、画像704が、プロジェクタ118の仕様、および、第2のオブジェクト702とプロジェクタ118との間の距離に基づいて投影されるように、画像704は、トリミング126なしに、すなわち、空きエリアなしまたはマスクなしに、第2のオブジェクト702上に投影され得る。いくつかの実施形態では、トリミング126は、第2のオブジェクト702を含む1つまたは複数の画像に基づいて、スケーリングファクタと、コンテンツエリアと、空きエリア706とを決定することができる。いくつかの実施形態では、以前に画像704を第2のオブジェクト702上に投影するために決定されたいかなるスケーリングファクタ、コンテンツエリア、および空きエリアも、投影生成120によって、画像704を第2のオブジェクト702上に投影するために保存され、取り出され得る。
【００５３】
図8Aおよび図8Bは、いくつかの実施形態に一致する、複数のオブジェクト上に適合するようにコンテンツをトリミングする一例を示す。具体的には、図8Aおよび図8Bに示す例は、第1のオブジェクト800および第2のオブジェクト802上に表示されるように、単一の画像をトリミングする一例を示す。図8Aに示すように、カメラ116は、第1のオブジェクト800および第2のオブジェクト802の1つまたは複数の画像をキャプチャすることができる。次いで、1つまたは複数のキャプチャされた画像は、投影生成120、オブジェクト認識122、追跡124、およびトリミング126のために使用され得る。いくつかの実施形態では、第1のオブジェクト800および第2のオブジェクト802の画像は、システム100に提供され得るか、または、システム100のメモリ構成要素108内に記憶されていることがある。オブジェクト認識122は、第1のオブジェクト800および第2のオブジェクト802上にそれぞれ投影するための、第1の画像部分804と第2の画像部分806とを有する画像などのコンテンツを決定することができる。いくつかの実施形態では、システム100のユーザは、第1のオブジェクト800および第2のオブジェクト802上に投影するための画像を指定し、どの画像部分を各オブジェクト上に表示するかを指定することもできる。その上、オブジェクト認識122は、第1のオブジェクト800および第2のオブジェクト802を、それぞれ、第1の画像部分804および第2の画像部分806のためのコンテンツエリアとして認識および決定することができる。たとえば、第1の画像部分804および第2の画像部分806によって形成される画像が、第1のオブジェクト800または第2のオブジェクト802のうちの1つのみにおいて適切に表示するためには大きすぎる場合、オブジェクト認識122は、第1のオブジェクト800または第2のオブジェクト802のうちの第2のオブジェクトを決定し、第1のオブジェクト800および第2のオブジェクト802上にそれぞれ投影された第1の画像部分804および第2の画像部分806として、画像がよりよく表示されると決定し、第1のオブジェクト800および第2のオブジェクト802の面または側面を、コンテンツエリアとして指定することを試みることができる。
【００５４】
トリミング126は、第1のオブジェクト800および第2のオブジェクト802の形状と、第1のオブジェクト800および第2のオブジェクト802の形状および/またはアウトラインと、第1のオブジェクト800および第2のオブジェクト802までの距離とを決定し、空きエリア808と、第1の画像部分804および第2の画像部分806を投影するためのコンテンツエリアとを決定することができる。図8Bに示すように、プロジェクタ118は、第1の画像部分804を第1のオブジェクト800上に、第2の画像部分806を第2のオブジェクト802上に投影することができる。プロジェクタ118はまた、第1の画像部分804および第2の画像部分806によって形成された画像が、第1のオブジェクト800および第2のオブジェクト802上のみに投影されるように、空きエリア808を、第1のオブジェクト800および第2のオブジェクト802の周りに、ならびに第1のオブジェクト800と第2のオブジェクト802との間に投影することもできる。いくつかの実施形態では、空きエリア808は、投影された黒もしくは暗いピクセル、または、それらのピクセルにおいてプロジェクタ118によってコンテンツもしくは光が投影されないように、プロジェクタ118によってオフにされたピクセルを含む、仮想光マスクに対応し得る。
【００５５】
図9Aおよび図9Bは、いくつかの実施形態に一致する、オブジェクトの複数の部分上に適合するようにコンテンツをトリミングする一例を示す。具体的には、図9Aおよび図9Bに示す例は、第1のエリア900および第2のエリア902上に表示されるように、単一の画像をトリミングする一例を示す。図9Aに示すように、カメラ116は、第1のエリア900および第2のエリア902の1つまたは複数の画像をキャプチャすることができる。次いで、1つまたは複数のキャプチャされた画像は、投影生成120、オブジェクト認識122、追跡124、およびトリミング126のために使用され得る。いくつかの実施形態では、第1のエリア900および第2のエリア902の画像は、システム100に提供され得るか、または、システム100のメモリ構成要素108内に記憶されていることがある。オブジェクト認識122は、第1のエリア900および第2のエリア902上にそれぞれ投影するための、第1の画像部分904と第2の画像部分906とを有する画像などのコンテンツを決定することができる。いくつかの実施形態では、システム100のユーザは、第1のエリア900および第2のエリア902上に投影するための画像を指定し、どの画像部分を各エリア上に表示するかを指定することもできる。その上、オブジェクト認識122は、第1のエリア900と第2のエリア902とを有するオブジェクトが、複数のエリアから構成されることを認識および決定し、第1のエリア900および第2のエリア902を、それぞれ、第1の画像部分904および第2の画像部分906のためのコンテンツエリアとして決定することができる。
【００５６】
トリミング126は、第1のエリア900および第2のエリア902の形状と、第1のエリア900および第2のエリア902の形状および/またはアウトラインと、第1のエリア900および第2のエリア902までの距離とを決定し、空きエリア908と、第1の画像部分904および第2の画像部分906を投影するためのコンテンツエリアとを決定することができる。図9Bに示すように、プロジェクタ118は、第1の画像部分904を第1のエリア900上に、第2の画像部分906を第2のエリア902上に投影することができる。プロジェクタ118はまた、第1の画像部分904および第2の画像部分906によって形成された画像が、第1のエリア900および第2のエリア902上のみに投影されるように、空きエリア908を、第1のエリア900および第2のエリア902の周りに投影することもできる。いくつかの実施形態では、空きエリア908は、投影された黒もしくは暗いピクセル、または、それらのピクセルにおいてプロジェクタ118によってコンテンツもしくは光が投影されないように、プロジェクタ118によってオフにされたピクセルを含む、仮想光マスクに対応し得る。
【００５７】
図10Aおよび図10Bは、いくつかの実施形態に一致する、複数のオブジェクト上に適合するように、複数の画像を有するコンテンツをトリミングする一例を示す。具体的には、図10Aおよび図10Bに示す例は、第1のオブジェクト1000上に表示されるように第1の画像1004をトリミングし、第2のオブジェクト1002上に表示されるように第2の画像1006をトリミングする一例を示す。図10Aに示すように、カメラ116は、第1のオブジェクト1000および第2のオブジェクト1002の1つまたは複数の画像をキャプチャすることができる。次いで、1つまたは複数のキャプチャされた画像は、投影生成120、オブジェクト認識122、追跡124、およびトリミング126のために使用され得る。いくつかの実施形態では、第1のオブジェクト1000および第2のオブジェクト1002の画像は、システム100に提供され得るか、または、システム100のメモリ構成要素108内に記憶されていることがある。オブジェクト認識122は、第1のオブジェクト1000および第2のオブジェクト1002上にそれぞれ投影するための、第1の画像1004および第2の画像1006などのコンテンツを決定することができる。いくつかの実施形態では、システム100のユーザは、第1のオブジェクト1000または第2のオブジェクト1002上に投影するための、第1の画像1004および第2の画像1006を指定することができる。その上、オブジェクト認識122は、第1のオブジェクト1000および第2のオブジェクト1002を、それぞれ、第1の画像1004および第2の画像1006のためのコンテンツエリアとして認識および決定することができる。
【００５８】
トリミング126は、第1のオブジェクト1000および第2のオブジェクト1002の形状と、第1のオブジェクト1000および第2のオブジェクト1002の形状および/またはアウトラインと、第1のオブジェクト1000および第2のオブジェクト1002までの距離とを決定し、空きエリア1008と、第1の画像1004および第2の画像1006を投影するためのコンテンツエリアとを決定することができる。図10Bに示すように、プロジェクタ118は、第1の画像1004を第1のオブジェクト1000上に、第2の画像1006を第2のオブジェクト1002上に投影することができる。プロジェクタ118はまた、第1の画像1004および第2の画像1006が、第1のオブジェクト1000および第2のオブジェクト1002上のみにそれぞれ投影されるように、空きエリア1008を、第1のオブジェクト1000および第2のオブジェクト1002の周りに、ならびに第1のオブジェクト1000と第2のオブジェクト1002との間に投影することもできる。いくつかの実施形態では、空きエリア1008は、投影された黒もしくは暗いピクセル、または、それらのピクセルにおいてプロジェクタ118によってコンテンツもしくは光が投影されないように、プロジェクタ118によってオフにされたピクセルを含む、仮想光マスクに対応し得る。したがって、トリミング126は、投影生成120が、ユーザにとって2つのオブジェクト上の2つの個別の画像として見える、プロジェクタ118によって投影するための第1の画像1004と、第2の画像1006と、空きエリア1008とを含む、単一の投影を生成することを可能にすることができる。
【００５９】
いくつかの実施形態では、追跡124が、第1のオブジェクト1000上の第1の画像1004の投影と、第2のオブジェクト1002上の第2の画像1006の投影とを維持することができるように、経時的な第1のオブジェクト1000および第2のオブジェクト1002の動きが、カメラ116またはエリアの他の場所から、第1のオブジェクト1000と第2のオブジェクト1002とを含む画像を受信することによって決定され得る。追跡124はまた、第1の画像1004および第2の画像1006が第1のオブジェクト1000および第2のオブジェクト1002上のみで投影されるように、空きエリア1008の生成を維持することもできる。
【００６０】
図11は、いくつかの実施形態に一致する、コンテンツをトリミングするための方法を示すフローチャートである。例示の目的で、図11について、図1、図2A〜図2D、図3A〜図3B、図4A〜図4B、図5A〜図5B、および図6A〜図6Bのいずれかを参照しながら説明する。図11に示すプロセス1100は、1つまたは複数のプロセッサによって実行するためのコンピュータ可読命令において具現化され得、いくつかの実施形態では、システム100のオペレーティングシステムによって実施され得、オペレーティングシステムにおいてバックグラウンドサービスとして実施され得る。図11に示すように、プロセス1100は、投影ターゲットを決定すること(1102)によって開始する。いくつかの実施形態では、投影ターゲットは、ユーザ入力に基づいて決定され得る。たとえば、ユーザは、入力およびナビゲーション構成要素112を使用して、ターゲットを選択することによって、ディスプレイ構成要素110上に表示されたターゲットを指定することができる。いくつかの実施形態では、投影ターゲットは、オブジェクト認識122を使用して決定され得る。たとえば、オブジェクト認識122は、ターゲットの形状もしくはサイズ、またはターゲットの表面のタイプに基づいて、好適な投影ターゲットを決定することを含み得る。オブジェクト認識122はまた、コンテンツプロバイダ、小売業者、または製造業者によって設定されるような、ターゲットに関連付けられた、あらかじめ決定された情報に基づいて、投影ターゲットを決定することを含み得る。
【００６１】
投影ターゲットが決定されると、投影ターゲットの1つまたは複数の範囲が決定され得る(1104)。いくつかの実施形態では、投影ターゲットの1つまたは複数の範囲は、カメラ116によって投影ターゲットの1つまたは複数の画像をキャプチャすること、投影ターゲットの画像を受信すること、またはメモリ構成要素108から投影ターゲットの画像を取り出すことによって決定され得る。次いで、投影ターゲットの1つまたは複数の特性が、キャプチャされた1つまたは複数の画像に基づいて決定され得る。たとえば、トリミング126は、投影ターゲットの形状およびアウトラインを1つまたは複数の画像から、ならびに、投影ターゲットまでの距離を決定することができる。いくつかの実施形態では、カメラ116は、深度カメラであり得るか、またはそれを含み得、投影ターゲットまでの距離を決定するために使用され得る深度マップを決定することができる。その上、深度マップは、深度マップ内の背景から投影ターゲットをセグメント化することによって、投影ターゲットの形状を決定するために使用され得る。
【００６２】
投影ターゲットの1つまたは複数の範囲に基づいて、プロセス1100は、コンテンツエリアと空きエリアとを決定すること(1106)ができる。いくつかの実施形態では、コンテンツエリアは、投影ターゲット内のエリアを含み得、空きエリアは、投影ターゲットの外側のエリアを含み得る。たとえば、投影ターゲットの1つまたは複数の範囲を決定することが、投影ターゲットのアウトラインを決定することを含むとき、コンテンツエリアと空きエリアとを決定することは、投影ターゲットのアウトライン内のエリアをコンテンツエリアとして、および、投影ターゲットの外側のエリアを空きエリアとして決定することを含み得る。
【００６３】
次いで、プロセス1100は、スケーリングファクタを決定すること(1108)ができる。いくつかの実施形態では、スケーリングファクタを決定することは、投影ターゲット上に投影されたコンテンツが、投影ターゲットの範囲に基づく最大解像度であり得る、あらかじめ決定された解像度で投影されるように、投影ターゲットまでの距離に基づいて、スケーリングファクタを決定することを含み得る。次いで、投影生成120は、決定されたスケーリングファクタに基づいて、決定されたコンテンツエリアの範囲内に投影するためのコンテンツを生成すること(1110)、および、空きエリアを生成すること(1112)ができる。いくつかの実施形態では、次いで、プロジェクタ118は、生成されたコンテンツと生成された空きエリアとを投影することができる。いくつかの実施形態では、投影された空きエリアは、投影された暗いピクセルであり得る。いくつかの実施形態では、空きエリアは投影されなくてよいが、代わりに、プロジェクタ118は、空きエリア内のピクセルをオフにすることができる。結果として、プロセス1100は、投影ターゲットを超える表面またはエリア上にあふれない、投影ターゲット上に投影するためのコンテンツをトリミングすることができる。プロセス1100は、図2A〜図2D、図3A〜図3B、図4A〜図4B、および図5A〜図5Bに示すように、オブジェクト上に画像などのコンテンツを投影するために使用され得る。その上、プロセス1100は、図6Aおよび図6Bに示すように、手の上にメッセージを投影するために使用され得る。
【００６４】
図12は、いくつかの実施形態に一致する、オブジェクト上でマスクされた画像を投影するための方法を示すフローチャートである。例示の目的で、図12について、図3A〜図3Bを参照しながら説明する。図12に示すプロセス1200は、1つまたは複数のプロセッサによって実行するためのコンピュータ可読命令において具現化され得、いくつかの実施形態では、システム100のオペレーティングシステムによって実施され得、オペレーティングシステムにおいてバックグラウンドサービスとして実施され得る。図12に示すように、プロセス1200は、視野内のオブジェクトを認識すること(1202)によって開始する。たとえば、図3Aに示すように、カメラ116は、オブジェクト300の1つまたは複数の画像をキャプチャすることができる。いくつかの実施形態では、オブジェクトの画像は、システム100によって受信され得るか、またはさもなければ、メモリ構成要素108内に記憶され得る。次いで、オブジェクト認識122は、画像内のオブジェクト300の特徴に基づいて、オブジェクト300を認識することを含み得る。次いで、認識されたオブジェクト上に投影するための画像が、決定され得る(1204)。いくつかの実施形態では、オブジェクト認識122は、認識されたオブジェクトに関連付けられた情報に基づいて、そのオブジェクト上に投影するための、画像などのコンテンツを決定することを含み得る。再び図3Aを参照すると、オブジェクト300は、その上の画像302の投影から利益を得ることができる、いくつかの特徴または特性を有し得る。たとえば、オブジェクト300は製品であり得、画像302は、その製品に関連付けられた画像、またはその製品についての情報であり得る。オブジェクト認識122は、システム内でローカルに記憶された情報、またはネットワークを介して決定された情報に基づいて、画像302を決定することを含み得る。情報は、ユーザによって提供され得るか、または、小売業者、製造業者、もしくはコンテンツプロバイダなどのサードパーティによって提供され得る。
【００６５】
次いで、プロセス1200は、オブジェクトまでの距離と、オブジェクトの形状とを決定すること(1206)によって継続することができる。たとえば、トリミング126は、オブジェクト300の形状およびアウトラインを1つまたは複数のキャプチャされた画像から、ならびにオブジェクト300までの距離を決定することができる。いくつかの実施形態では、カメラ116は、深度カメラであり得るか、またはそれを含み得、オブジェクト300までの距離を決定するために使用され得る深度マップを決定することができる。その上、深度マップは、深度マップ内の背景から投影ターゲットをセグメント化することによって、オブジェクト300の形状を決定するために使用され得る。
【００６６】
決定された形状およびオブジェクト300までの距離に基づいて、トリミング126は、空きエリアを作成すること(1208)ができる。いくつかの実施形態では、空きエリアは、空きエリア304など、オブジェクトの決定された形状の外側のエリア上に投影されることになる、暗いピクセルを含み得る。空きエリアはまた、プロジェクタ118によってオフにされるか、またはさもなければ投影されないピクセルに対応し得る。次いで、プロセス1200は、決定された画像302と空きエリア304とをオブジェクト300上に投影すること(1210)によって継続することができる。次いで、追跡124は、オブジェクト300を追跡し、追跡に基づいて、空きエリア304を調整すること(1212)ができる。いくつかの実施形態では、追跡124は、センサ114からの情報、および/または、システム100によって受信されたか、メモリ構成要素108内に記憶されたか、もしくはカメラ116によってキャプチャされた画像に基づいて、6つの自由度におけるオブジェクト300の位置または向きにおける変化を検出することを含む。プロセス1200は、投影画像がオブジェクトを超えた表面またはエリア上に投影されないように、オブジェクト上に投影するための画像をトリミングすることができる。プロセス1200について、図3Aおよび図3Bに関して説明したが、プロセス1200は、図2A〜図2D、図3A〜図3B、図4A〜図4B、および図5A〜図5Bに示すように、オブジェクト内の投影ターゲットを指定することをさらに含み得る。その上、図6Aおよび図6Bに示すように、オブジェクトは手であり得、画像はメッセージであり得る。いくつかの実施形態では、オブジェクトは、ノートブック、コンピューティングデバイス、画面、紙、箱、カード、または他のそのようなオブジェクトなど、他のオブジェクトであり得る。その上、画像はまた、写真、ビデオ、ソーシャルネットワーキングポスト、カレンダアラート、ユーザインターフェース要素などを含む、他のコンテンツでもあり得る。
【００６７】
図13は、いくつかの実施形態に一致する、ターゲット上でマスクされたアラートを投影するための方法を示すフローチャートである。例示の目的で、図13について、図6A〜図6Bを参照しながら説明する。図13に示すプロセス1300は、1つまたは複数のプロセッサによって実行するためのコンピュータ可読命令において具現化され得、いくつかの実施形態では、システム100のオペレーティングシステムによって実施され得、オペレーティングシステムにおいてバックグラウンドサービスとして実施され得る。図13に示すように、プロセス1300は、システム100がシステムアラートを生成する(1302)ときに開始する。いくつかの実施形態では、システムアラートは、アラーム、通知、カレンダアラート、および電子メール、インスタントメッセージ、またはショートメッセージングサービスメッセージ(SMS)などの受信メッセージなどを含み得る。たとえば、図6Bに示すように、システムアラートはメッセージ602を含み得る。次いで、プロセス1300は、視野内のターゲットを認識すること(1304)によって継続することができる。たとえば、図6Aに示すように、カメラ116は、手600の1つまたは複数の画像をキャプチャすることができる。次いで、オブジェクト認識122は、1つまたは複数のキャプチャされた画像内で、または、システム100によって受信されたか、もしくはメモリ構成要素108内に記憶された画像内で、キャプチャされた手600の特徴に基づいて、手600を認識することを含み得る。
【００６８】
次いで、プロセス1300は、ターゲットの距離および形状を決定すること(1306)によって継続することができる。たとえば、トリミング126は、手600の形状およびアウトラインを1つまたは複数の画像から、ならびに手600までの距離を決定することを含み得る。いくつかの実施形態では、カメラ116は、深度カメラであり得るか、またはそれを含み得、手600までの距離を決定するために使用され得る深度マップを決定することができる。その上、深度マップは、深度マップ内の背景から投影ターゲットをセグメント化することによって、手600の形状を決定するために使用され得る。
【００６９】
決定された形状および手600までの距離に基づいて、トリミング126は、空きエリアを作成すること(1308)ができる。いくつかの実施形態では、空きエリアは、空きエリア604など、オブジェクトの決定された形状の外側のエリア上に投影されることになる、暗いピクセルを含み得る。いくつかの実施形態では、空きエリアは、プロジェクタ118によって投影されないか、またはさもなければ投影するときにオフにされるピクセルであり得る。次いで、プロセス1300は、空きエリアによってマスクされたターゲット上にアラートを投影すること(1310)によって継続することができる。図6Bに示すように、たとえば、メッセージ602および空きエリア604は、メッセージ602が手600上のみに投影されるように、手600上に投影され得る。次いで、追跡124は、手600などのターゲットを追跡し、追跡に基づいて、空きエリア604を調整すること(1312)ができる。いくつかの実施形態では、追跡124は、センサ114からの情報、および/または、システム100によって受信されたか、メモリ構成要素108内に記憶されたか、もしくはカメラ116によってキャプチャされた画像に基づいて、6つの自由度における手600の位置または向きにおける変化を検出することを含む。プロセス1300は、投影アラートがターゲットを超えた表面またはエリア上に投影されないように、ターゲット上に投影するためのアラートをトリミングすることができる。
【００７０】
図14は、いくつかの実施形態に一致する、検出されたジェスチャに基づいて、ターゲット上でマスクされたコンテンツを投影するための方法を示すフローチャートである。例示の目的で、図14について、図7A〜図7Dを参照しながら説明する。図14に示すプロセス1400は、1つまたは複数のプロセッサによって実行するためのコンピュータ可読命令において具現化され得、いくつかの実施形態では、システム100のオペレーティングシステムによって実施され得、オペレーティングシステムにおいてバックグラウンドサービスとして実施され得る。図14に示すように、プロセス1400は、ジェスチャ検出128が、プライベートモードに入るためのジェスチャを検出する(1402)とき、開始する。いくつかの実施形態では、プライベートモードに入るためのジェスチャは、閉じた手、または、ジェスチャライブラリ内のジェスチャに相関されるとき、プライベートモードに入るためのアクションに対応する他のジェスチャであり得る。次いで、プロセス1400は、視野内のターゲットを認識すること(1404)によって継続することができる。たとえば、図7Bに示すように、カメラ116は、第1のオブジェクト700の1つまたは複数の画像をキャプチャすることができる。いくつかの実施形態では、システム100は、第1のオブジェクト700の画像を受信することができ、またはさもなければ、メモリ構成要素108内に記憶された第1のオブジェクトの1つまたは複数の画像を有することができる。オブジェクト認識122は、第1のオブジェクト700の画像からの第1のオブジェクト700の特徴に基づいて、第1のオブジェクト700を認識することを含み得る。
【００７１】
次いで、プロセス1400は、ターゲットの距離および形状を決定すること(1406)によって継続することができる。たとえば、トリミング126は、第1のオブジェクト700の形状およびアウトラインを画像から、ならびに第1のオブジェクト700までの距離を決定することを含み得る。いくつかの実施形態では、カメラ116は、深度カメラであり得るか、またはそれを含み得、第1のオブジェクト700までの距離を決定するために使用され得る深度マップを決定することができる。その上、深度マップは、深度マップ内の背景から投影ターゲットをセグメント化することによって、第1のオブジェクト700の形状を決定するために使用され得る。
【００７２】
決定された形状および第1のオブジェクト700までの距離に基づいて、トリミング126は、空きエリアを作成すること(1408)ができる。いくつかの実施形態では、空きエリアは、空きエリア706など、第1のオブジェクト700の決定された形状の外側のエリア上に投影されることになる、暗いピクセルを含み得る。いくつかの実施形態では、空きエリアは、プロジェクタ118によって投影されないか、またはさもなければ投影するときにオフにされるピクセルであり得る。次いで、プロセス1400は、空きエリアによってマスクされたターゲット上にコンテンツを投影すること(1410)によって継続することができる。図7Cに示すように、たとえば、画像704および空きエリア706は、画像704が第1のオブジェクト700上のみに投影され、空きエリア706によってマスクされるように、投影され得る。次いで、ジェスチャ検出は、パブリックモードに入るためのジェスチャを検出すること(1412)ができる。いくつかの実施形態では、パブリックモードに入るためのジェスチャは、開いた手、スローイングモーション、または、検出されるとき、パブリックモードに入るためのアクションに対応するジェスチャライブラリ内のジェスチャに相関される他のジェスチャであり得る。次いで、プロジェクタ118は、空きエリアによってマスクされていないコンテンツを投影すること(1414)ができる。たとえば、トリミング126は、空きエリアを決定しないこと、エリアを有していないか、もしくはゼロのエリアを有する空きエリアを決定することができ、または、第2のオブジェクト702など、より大きいターゲットオブジェクトに基づいて、空きエリアを決定することができる。
【００７３】
本開示によれば、プログラムコードおよび/またはデータなどのソフトウェアは、非一時的機械可読媒体を含む1つまたは複数の機械可読媒体に記憶され得る。本明細書で識別されるソフトウェアが、1つまたは複数の汎用または特定目的のコンピュータおよび/またはコンピュータシステム、ネットワーク化されること、および/またはその他の方式などを使用して実装され得ることも企図されている。適用可能な場合に、本明細書で説明する様々なステップの順序が変更され、合成ステップに結合され、かつ/またはサブステップに分割されて、本明細書で説明する機能を提供することがある。
【００７４】
したがって、本明細書で説明するような実施形態は、投影ターゲットの1つまたは複数の範囲を決定すること、および、決定された1つまたは複数の範囲に基づいて、投影ターゲット上に投影するためのコンテンツをトリミングすることによって、投影を投影ターゲットに適合させるためのシステムおよび方法を提供することができる。さらに、投影ターゲット上で見るためのコンテンツの解像度を最大にするために、本明細書で説明する実施形態は、投影コンテンツが投影ターゲットを超えた表面およびエリア上にあふれることなく、投影ターゲット上に投影するためのあらかじめ決定された解像度に、コンテンツがスケーリングされ得るように、投影ターゲットの外側であるコンテンツのないエリアを決定し、これらのエリア内に、マスクされたピクセルなど、コンテンツのないエリアを投影することができる。上記で提供される例は、例にすぎず、限定的であることは意図されていない。当業者は、本開示の範囲内であることが意図されている、開示された実施形態に一致する他のシステムを容易に考案することができる。したがって、適用形態は以下の特許請求の範囲によってのみ限定される。
【符号の説明】
【００７５】
100  処理システム、システム
102  ネットワークインターフェース構成要素
104  システムバス、バス
106  処理構成要素
108  メモリ構成要素
110  ディスプレイ構成要素
112  入力およびナビゲーション構成要素
114  センサ
116  カメラ
118  プロジェクタ
120  投影生成
122  オブジェクト認識
124  追跡
126  トリミング
128  ジェスチャ検出
200  ターゲットオブジェクト、オブジェクト
202  エリア、ターゲットエリア
204、304、406、506、604、706、808、908、1008  空きエリア
206  画像、投影画像
300、402、502  オブジェクト
302、404、504、704  画像
400、500  エリア
600  手
602  メッセージ、個人的なメッセージ
700、800、1000  第1のオブジェクト
702、802、1002  第2のオブジェクト
804、904  第1の画像部分
806、906  第2の画像部分
900  第1のエリア
902  第2のエリア
1004  第1の画像
1006  第2の画像
【図１】
0006317452.tif 000002
【図２Ａ】
0006317452.tif 000003
【図２Ｂ】
0006317452.tif 000004
【図２Ｃ】
0006317452.tif 000005
【図２Ｄ】
0006317452.tif 000006
【図３Ａ】
0006317452.tif 000007
【図３Ｂ】
0006317452.tif 000008
【図４Ａ】
0006317452.tif 000009
【図４Ｂ】
0006317452.tif 000010
【図５Ａ】
0006317452.tif 000011
【図５Ｂ】
0006317452.tif 000012
【図６Ａ】
0006317452.tif 000013
【図６Ｂ】
0006317452.tif 000014
【図７Ａ】
0006317452.tif 000015
【図７Ｂ】
0006317452.tif 000016
【図７Ｃ】
0006317452.tif 000017
【図７Ｄ】
0006317452.tif 000018
【図８Ａ】
0006317452.tif 000019
【図８Ｂ】
0006317452.tif 000020
【図９Ａ】
0006317452.tif 000021
【図９Ｂ】
0006317452.tif 000022
【図１０Ａ】
0006317452.tif 000023
【図１０Ｂ】
0006317452.tif 000024
【図１１】
0006317452.tif 000025
【図１２】
0006317452.tif 000026
【図１３】
0006317452.tif 000027
【図１４】
0006317452.tif 000028