【課題を解決するための手段】
【0009】
本発明の第1の態様では、モバイルシステムは、光源によって放出された可視光を介して通信されているデータを検出するようにコンフィギュレーションされており、モバイルシステムは、カメラと、カメラを使用して画像を取り込み、取り込まれた画像内に、特定のオブジェクト、例えば、光源を含む特定のオブジェクトが認識されるか否かを決定し、特定のオブジェクトが認識された後にのみ、データを検出(及び/又は復号)することを開始するようにコンフィギュレーションされている、少なくとも1つのプロセッサとを備える。モバイルシステムは、単一のデバイス、例えば、カメラ付きスマートフォン、又は複数のデバイス、例えば、短距離通信を使用してスマートフォンと通信するスマートグラスを含んでもよい。例えば、特定のオブジェクトは、光源であってもよく、光源がその部分のうちの1つであるオブジェクトであってもよく、又は、1つ以上の基準マーカを含んでもよい。
【0010】
本発明者らは、取り込まれた画像内に、特定のオブジェクト、例えば、可視光を介してデータを送信し得るオブジェクトが認識される場合にのみ、VLC信号を検出及び/又は復号することによって、当該タスクが、検出及び/又は復号が継続的に実行される場合よりも、少ない電力を消費することを認識している。更には、この場合カメラは、他の用途、例えば、拡張現実、及び/又は、他人と共有される写真を撮影するために使用可能であってもよく、VLC信号を受信するために更なるセンサが使用される場合には、更なるセンサは、常時オンに切り替えられている必要はない。いずれにせよ、カメラが(殆ど)継続的に、例えば、拡張現実の用途に関して使用されている場合、VLC信号の検出及び復号は、著しい追加的リソースを使用することなく実施されてもよい。
【0011】
VLC信号の検出が、継続的に実行される場合であっても、取り込まれた画像内に特定のオブジェクトが認識される場合にのみ、VLC信号を復号することによって、タスクはまた、復号が継続的に実行される場合よりも、少ない電力を消費する。例えば、アクセス制御により、VLC信号を復号するために必要とされるプロトコル情報及び/又は解読キーを、モバイルシステムが取得することを禁止してもよい。この場合には、モバイルシステムは、VLC信号を(完全には)復号することができず、それゆえ、少なくとも1つのプロセッサは、より少ないリソースを消費することになる。
【0012】
少なくとも1つのプロセッサは、特定のオブジェクトが認識されることを決定すると、可視光を介してデータが通信されているか否かを検出することを開始するために、更なるセンサを作動させるようにコンフィギュレーションされてもよい。VLC信号を受信するための更なるセンサ、例えば、第2のカメラ又はフォトダイオードを使用すること、並びに、他の用途、例えば、拡張現実、及び/又は他人と共有される写真を撮影することのために画像を取り込んだカメラを(継続して)使用することが、有利であり得る。更なるセンサが、継続的に作動されている必要がない場合には、電力消費が低減される。
【0013】
少なくとも1つのプロセッサは、更なるセンサから受信された信号が、可視光を介して通信されるデータを含むか否かを監視するように、及び、信号が可視光を介して通信されるデータを含まないことを決定すると、更なるセンサを作動停止させるようにコンフィギュレーションされてもよい。電力消費を低減するためには、更なるセンサが、もはや必要とされない可能性が高い場合に、更なるセンサを作動停止させることが有益である。信号が、可視光を介して通信されるデータを含まない場合、更なるセンサは、その時点でもはや必要とされないと想定されてもよい。あるいは、更なるセンサは、認識されたオブジェクトを含む画像をカメラがもはや取り込まない場合に、作動停止されてもよいが、このことは、更なるセンサがカメラよりも広い視野を有する場合には、さほど有益ではない。カメラよりも広い視野を有する更なるセンサの使用は、取り込まれた単一の画像が、関連するVLC信号の全体を含まない場合に有益である。VLC信号が、特定の(その後にVLC信号が繰り返される)時間にわたって受信される必要がある場合、より広い視野を有する更なるセンサは、VLC信号を受信することをより容易にする。
【0014】
少なくとも1つのプロセッサは、特定のオブジェクトが認識されることを決定すると、可視光を介してデータが通信されているか否かを検出することを開始するために、カメラの設定を変更するようにコンフィギュレーションされてもよい。Luxapose論文で開示されているように、従来のスマートフォンカメラ(CMOSイメージャが、典型的には、VLCデータを検出及び復号するために使用され得るローリングシャッター効果を提供するもの)の使用は、より低いコストを結果としてもたらしてもよく、及び/又は、カメラが他の用途に関しても使用可能であり得ることを確実にしてもよい。しかしながら、カメラの設定は、VLC信号の周波数を考慮して、通常とは異ならざるを得ない場合がある。もはやVLC信号が受信される可能性がない場合に、以前のカメラの設定に戻ることによって、カメラは、他の用途に関して、それらの他の用途に最適な設定で使用されてもよい。
【0015】
少なくとも1つのプロセッサは、取り込まれた画像から、カメラによって取り込まれた別の画像から、及び/又は、更なるセンサから受信された信号から、可視光を介してデータが通信されているか否かを検出するようにコンフィギュレーションされてもよい。例えば、オブジェクトが認識され得る画像であって、かつVLC信号も同様に検出され得る画像を取り込む、カメラ及びカメラ設定が使用されてもよい。取り込まれた画像内に特定のオブジェクトが認識される場合にのみ、取り込まれた画像は、VLC信号の存在に関して分析されることになる。オブジェクトが認識可能であるが、VLC信号が検出可能ではない、取り込まれた画像を結果的にもたらす、カメラ設定が使用される場合には、VLC信号を検出及び復号するために、異なるカメラ設定で別の画像が取り込まれることが必要であり得る。カメラが、いずれの設定でもVLC信号を検出するために好適ではない場合、又は、カメラが、別の用途のために特定の設定を維持する必要がある場合には、更なるセンサが使用されてもよい。
【0016】
少なくとも1つのプロセッサは、取り込まれた画像内に特定のオブジェクトが認識されるか否かを決定するために、リモートデータベースに問い合わせるようにコンフィギュレーションされてもよい。VLC信号に関連付けられている、例えば、VLC信号を送信する、1つ以上のオブジェクトの特性を、モバイルシステム自体に記憶させることも可能であり得るが、オブジェクトの集合が膨大であり、及び/又は(比較的)動的である場合には、リモートデータベースを使用することが有益である。更には、リモートデータベースは、例えば、モバイルシステムがVLC信号を復号することを許可されるか否か、又は、モバイルシステムのユーザが、復号されたVLC信号を見ることを許可されるか否かの、アクセス制御を実施することを、より容易にする。この場合には、モバイルシステムが信頼できるものであることは必須ではない。
【0017】
少なくとも1つのプロセッサは、取り込まれた画像内で認識された特定のオブジェクトに関連して、いずれの情報をモバイルシステムに提供するべきかを、リモートデータベースが決定することを可能にする情報を、リモートデータベースに提供するようにコンフィギュレーションされてもよい。少なくとも1つのプロセッサは、例えば、リモートデータベースに、ユーザ識別子、グループ識別子、及び/又はパスコードを提供するようにコンフィギュレーションされてもよい。リモートデータベースによってモバイルシステムに提供される情報は、モバイルシステムから受信された情報に依存し得る。例えば、ユーザ識別子及び/又はグループ識別子が、それぞれ、取り込まれた画像内で認識された特定のオブジェクトに関連付けられている、ユーザ識別子のリスト及び/又はグループ識別子のリスト内にある場合にのみ、プロトコル情報及び/又は解読キーが、モバイルシステムに提供されてもよい。プロトコル情報及び/又は解読キーは、例えば、モバイルシステムが正しいパスキーを提供する場合にのみ、モバイルシステムに提供されてもよい。
【0018】
少なくとも1つのプロセッサは、取り込まれた画像内で認識された特定のオブジェクトに関連付けられているプロトコル情報を取得するように、及び、取得されたプロトコル情報を使用して、可視光を介して通信されるデータの少なくとも一部を復号するようにコンフィギュレーションされてもよい。プロトコル情報は、例えば、VLC信号のビットが、どのようにして使用可能な情報に復号されるべきかを、定義してもよい。例えば、マンチェスタ符号化VLC信号が復号された場合、これは、多数のビットを結果的にもたらすが、それらのビットの意味は、種々のやり方で解釈可能であってもよい(例えば、それらのビットは、テキストメッセージ又はURLを形成してもよく、又は、それらのビットは、GPSの位置を形成してもよい)。全ての光源/ビーコンに関して、すなわち、全ての受信VLC信号に対して、同じプロトコル情報を使用しないことによって、モバイルシステムは、多くの異なる種類の光源/ビーコンと共に機能することが可能であり得る。
【0019】
少なくとも1つのプロセッサは、取り込まれた画像内で認識された特定のオブジェクトに関連付けられている解読キーを取得するように、及び、取得された解読キーを使用して、可視光を介して通信されるデータの少なくとも一部を復号するようにコンフィギュレーションされてもよい。例えば、マンチェスタ符号化VLC信号が復号された場合には、多数のビットを結果的にもたらすが、それらのビットは、解読キーを所有している認可されたモバイルシステム/ユーザのみが、復号/閲覧することを可能にする、暗号化されたメッセージを形成してもよい。
【0020】
少なくとも1つのプロセッサは、取り込まれた画像内で認識された特定のオブジェクトに関連付けられている領域情報であって、認識されたオブジェクトの領域を識別する、領域情報を取得するように、及び、可視光を介して通信されているデータを検出及び/又は復号するために、取り込まれた画像内の認識されたオブジェクトの領域のみを分析するようにコンフィギュレーションされてもよい。このことにより、VLC信号の検出及び/又は復号を単純化して、少なくとも1つのプロセッサの電力消費を低減してもよい。
【0021】
少なくとも1つのプロセッサは、カメラを使用して更なる画像を取り込み、取り込まれた更なる画像内に特定のオブジェクトが認識されるか否かを決定し、取り込まれた更なる画像内に特定のオブジェクトが認識されないことを決定すると、可視光を介して通信されているデータを検出することを停止するようにコンフィギュレーションされてもよい。VLC信号を送信しているとして認識されるオブジェクトが、カメラの視野内に存在している限り、可視光を介して通信されているデータの復号及び/又は検出は、継続されてもよい。異なる情報(例えば、異なるプロトコル又は異なる領域情報)が、異なるオブジェクトに関連付けられてもよく、そのため、第2の取り込まれた画像内で、第1の取り込まれた画像内とは異なるオブジェクトが認識される場合には、その時点で、異なる情報が取得されることが必要であり得る。
【0022】
少なくとも1つのプロセッサは、取り込まれた画像内の特定のオブジェクトに関連付けられている、特定の形状又は特定のパターンを認識することによって、取り込まれた画像内の特定のオブジェクトを認識するようにコンフィギュレーションされてもよい。オブジェクトは、エッジ検出の後に続く形状検出を含めた、従来のオブジェクト認識技術を使用することによって認識されてもよい。新たなVLC信号発信光ビーコンは、VLC信号発信光ビーコンのデータベースの既に一部である(例えば、照明器具又は光源の)特別な形状を有して製造されてもよい。VLC信号発信光ビーコンのデータベースはまた、既存のVLC信号発信光ビーコンに関連付けられている形状、例えば、特定の既存のモデルの光源及び/又は照明器具の形状を含んでもよい。あるいは、又は更に、容易に識別可能な特定のパターン(例えば、色、ドット、及び/又は線の配列)により、オブジェクトが(容易に)認識されることを可能にしてもよい。当該パターンは、新たなVLC信号発信光ビーコンに適用又は取り付けられる特別なパターンであってもよく、又は、既存のVLC信号発信光ビーコン上で識別可能なパターンであってもよい。
【0023】
本発明の第2の態様では、可視光通信の検出(及び/又は復号)の方法は、カメラを使用して画像を取り込むステップと、取り込まれた画像内に特定のオブジェクトが認識されるか否かを決定するステップと、特定のオブジェクトが認識された後にのみ、光源によって放出された可視光を介して通信されているデータを検出(及び/又は復号)することを開始するステップとを含む。この方法は、ハードウェア及び/又はソフトウェアとして実装されてもよい。
【0024】
更には、本明細書で説明される方法を実践するためのコンピュータプログラム、並びに、コンピュータプログラムを記憶している非一時的コンピュータ可読記憶媒体が提供される。コンピュータプログラムは、例えば、既存のデバイスによってダウンロードされるか、又は、既存のデバイスにアップロードされてもよく、あるいは、これらのシステムの製造時に記憶されてもよい。
【0025】
非一時的コンピュータ可読記憶媒体は、少なくとも1つのソフトウェアコード部分を記憶し、ソフトウェアコード部分は、コンピュータによって実行又は処理されると、カメラを使用して画像を取り込むステップと、取り込まれた画像内に特定のオブジェクトが認識されるか否かを決定するステップと、特定のオブジェクトが認識された後にのみ、光源によって放出された可視光を介して通信されているデータを検出(及び/又は復号)することを開始するステップとを含む、実行可能動作を実行するようにコンフィギュレーションされている。
【0026】
当業者には理解されるように、本発明の諸態様は、デバイス、方法、又はコンピュータプログラム製品として具現化されてもよい。したがって、本発明の諸態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、あるいは、ソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態の形態を取ってもよく、それらは全て、本明細書では「回路」、「モジュール」、又は「システム」と総称されてもよい。本開示で説明される機能は、コンピュータのプロセッサ/マイクロプロセッサによって実行される、アルゴリズムとして実装されてもよい。更には、本発明の諸態様は、1つ以上のコンピュータ可読媒体として具現化されている、コンピュータプログラム製品の形態を取ってもよく、1つ以上のコンピュータ可読媒体は、その上に具現化されている、例えば記憶されている、コンピュータ可読プログラムコードを有する。
【0027】
1つ以上のコンピュータ可読媒体の任意の組み合わせが、利用されてもよい。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読記憶媒体であってもよい。コンピュータ可読記憶媒体は、例えば、限定するものではないが、電子、磁気、光学、電磁気、赤外線、又は半導体の、システム、装置、若しくはデバイス、あるいは、上述の任意の好適な組み合わせであってもよい。より具体的なコンピュータ可読記憶媒体の例としては、限定するものではないが、1つ以上のワイヤを有する電気的接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(random access memory;RAM)、読み出し専用メモリ(read-only memory;ROM)、消去可能プログラマブル読み出し専用メモリ(erasable programmable read-only memory;EPROM又はフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読み出し専用メモリ(portable compact disc read-only memory;CD−ROM)、光学記憶デバイス、磁気記憶デバイス、又は上述の任意の好適な組み合わせを挙げることができる。本発明の文脈では、コンピュータ可読記憶媒体は、命令実行システム、装置、若しくはデバイスによって、又はそれらに関連して使用するためのプログラムを含むか、又は記憶することが可能な、任意の有形媒体であってもよい。
【0028】
コンピュータ可読信号媒体としては、例えばベースバンド内又は搬送波の一部として、内部に具現化されているコンピュータ可読プログラムコードを有する、伝搬データ信号を挙げることができる。そのような伝搬信号は、限定するものではないが、電磁気、光学、又はこれらの任意の好適な組み合わせを含めた、様々な形態のうちのいずれを取ってもよい。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなく、命令実行システム、装置、若しくはデバイスによって、又はそれらに関連して使用するためのプログラムを、通信、伝搬、又は伝送することが可能な、任意のコンピュータ可読媒体であってもよい。
【0029】
コンピュータ可読媒体上に具現化されているプログラムコードは、限定するものではないが、無線、有線、光ファイバ、ケーブル、RFなど、又は上述の任意の好適な組み合わせを含めた、任意の適切な媒体を使用して送信されてもよい。本発明の諸態様に関する動作を実施するためのコンピュータプログラムコードは、Java(商標)、Smalltalk、C++などのオブジェクト指向プログラミング言語、及び、「C」プログラミング言語又は同様のプログラミング言語などの従来の手続き型プログラミング言語を含めた、1つ以上のプログラミング言語の任意の組み合わせで書き込まれてもよい。プログラムコードは、スタンドアロン型ソフトウェアパッケージとして、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で実行されてもよく、部分的にユーザのコンピュータ上かつ部分的にリモートコンピュータ上で、又は完全にリモートコンピュータ若しくはサーバ上で実行されてもよい。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(local area network;LAN)若しくは広域ネットワーク(wide area network;WAN)を含めた任意のタイプのネットワークを通じて、ユーザのコンピュータに接続されてもよく、又は、接続は、外部コンピュータに対して(例えば、インターネットサービスプロバイダを使用してインターネットを通じて)実施されてもよい。
【0030】
本発明の実施形態による方法、装置(システム)、及びコンピュータプログラム製品の、フローチャート図及び/又はブロック図を参照して、本発明の諸態様が以下で説明される。フローチャート図及び/又はブロック図の各ブロック、並びに、フローチャート図及び/又はブロック図内のブロックの組み合わせは、コンピュータプログラム命令によって実装されることができる点が理解されるであろう。コンピュータプログラム命令は、マシンを作り出すために、汎用コンピュータ、専用コンピュータ、又は他のプログラマブルデータ処理装置の、プロセッサ、特にマイクロプロセッサ又は中央処理ユニット(central processing unit;CPU)に提供されてもよく、それにより、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイスのプロセッサを介して実行される命令が、フローチャート及び/又はブロック図のブロック内で指定されている機能/行為を実施するための手段を作り出す。
【0031】
コンピュータプログラム命令はまた、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイスに、特定の方式で機能するように指示することが可能な、コンピュータ可読媒体内に記憶されてもよく、それにより、コンピュータ可読媒体内に記憶されている命令が、フローチャート及び/又はブロック図のブロック内で指定されている機能/行為を実施する命令を含む、製品を作り出す。
【0032】
コンピュータプログラム命令はまた、コンピュータ実施プロセスを作り出すために、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイス上にロードされて、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイス上で一連の動作ステップを実行させてもよく、それにより、コンピュータ又は他のプログラマブル装置上で実行される命令が、フローチャート及び/又はブロック図のブロック内で指定されている機能/行為を実施するためのプロセスを提供する。
【0033】
図におけるフローチャート及びブロック図は、本発明の様々な実施形態によるデバイス、方法、及びコンピュータプログラム製品の可能な実装の、アーキテクチャ、機能性、及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定されている論理関数を実施するための1つ以上の実行可能命令を含む、コードのモジュール、セグメント、又は部分を表してもよい。また、一部の代替的実装形態では、ブロック内に記されている機能は、図に記されている順序と異なる順序で行われてもよい点にも留意されたい。例えば、連続して示されている2つのブロックは、実際には、実質的に同時に実行されてもよく、又は、それらのブロックは、関与している機能性に応じて、逆の順序で実行される場合があってもよい。また、ブロック図及び/又はフローチャート図の各ブロック、並びに、ブロック図及び/又はフローチャート図内のブロックの組み合わせは、指定されている機能若しくは行為を実行する専用ハードウェアベースのシステム、又は、専用ハードウェアとコンピュータ命令との組み合わせによって実施されることができる点にも留意されたい。