しかしながら、カメラの限界により、特に低価格のタブレット又は携帯電話カメラが使用されている場合は、埋め込みデータを取得された画像から取り出すことが常に可能なわけではない。その理由の1つは、埋め込みデータの検出に関連する画素(すなわちカメラのフォトセンサ)(すなわち埋め込みデータが取り出される画素)が過飽和又は露光不足状態で画像が取得されるためである。このようなことが起こると、過飽和又は露光不足のフォトセンサは、埋め込まれたCLデータを決定するのに必要な受信光強度差を検出できないため、CL検出を行うことが不可能になる。
1つ以上のこのような問題を軽減又は除去するCL検出を可能にする解決策が当技術分野において必要である。
当業者には理解されるように、本発明の態様は、装置、方法又はコンピュータプログラムプロダクトとして具体化され得る。従って、本発明の態様は、全面的にハードウェア実施形態、全面的にソフトウェア実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)又は本明細書において全て一般的に「回路」、「モジュール」若しくは「システム」と称され得るソフトウェア及びハードウェア態様を組み合わせた実施形態の形態をとり得る。更に、本発明の態様は、それ上で具体化されたコンピュータ実行可能コードを有する1つ又は複数のコンピュータ可読媒体において具体化されたコンピュータプログラムプロダクトの形態をとり得る。
1つ又は複数のコンピュータ可読媒体の任意の組み合わせが利用されてもよい。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読ストレージ媒体でもよい。コンピュータ可読ストレージ媒体は、例えば、限定はされないが、電子、磁気、光学、電磁気、赤外線若しくは半導体のシステム、装置、又はデバイスか、又はこれらの任意の適当な組み合わせでもよい。コンピュータ可読ストレージ媒体のより特別な例(包括的でないリスト)は、以下:一つ以上のワイヤを持つ電気接続、携帯型コンピュータディスケット、ハードディスク、RAM、ROM、EPROM若しくはフラッシュメモリ、光ファイバ、携帯型CD−ROM、光ストレージデバイス、磁気ストレージデバイス、又はこれらの任意の適当な組み合わせを含むだろう。本明細書のコンテキストでは、コンピュータ可読ストレージ媒体は、命令実行システム、装置若しくはデバイスによる又は関連する使用のためプログラムを含むか記憶できる任意の有形の媒体である。
コンピュータ可読信号媒体は、例えばベースバンドにおいて又は搬送波の一部として内部で具体化されたコンピュータ実行可能コードを備えた伝搬データ信号を含んでもよい。このような伝搬信号は、限定されることはないが電磁気、光学的、又はそれらの任意の適切な組み合わせを含む様々な形態の何れかをとり得る。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではない及び命令実行システム、装置、又はデバイスによって又はそれと関連して使用するためのプログラムを通信、伝搬、又は輸送できる任意のコンピュータ可読媒体でもよい。
コンピュータ可読媒体上で具現化されるプログラムコードは、限定されるわけではないが、無線、有線ライン、光ファイバ、ケーブル、RF等又はこれらの任意の適当な組み合わせを使用して、伝送されてもよい。本発明の態様に関する動作を実施するためのコンピュータプログラムコードは、Java(登録商標)、Smalltalk、又はC++等のオブジェクト指向プログラミング言語及び「C」プログラミング言語又は類似のプログラミング言語等の従来の手続きプログラミング言語を含む1つ又は複数のプログラミング言語の任意の組み合わせで書かれてもよい。プログラムコードは、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアローンソフトウェアパッケージとして、部分的にユーザのコンピュータ上で及び部分的にリモートコンピュータ上で、又は完全にリモートコンピュータ若しくはサーバ上で実行することができる。後者の場合、リモートコンピュータは、ローカルエリアネットワーク(LAN)若しくは広域ネットワーク(WAN)を含む任意の種類のネットワークを通してユーザのコンピュータに接続されてもよい、又はこの接続は外部コンピュータに対して(例えば、インターネットサービスプロバイダを使用したインターネットを通して)行われてもよい。
本発明の態様は、本発明の実施形態による方法、装置(システム)及びコンピュータプログラムプロダクトのフローチャート、図及び/又はブロック図を参照して説明される。フローチャート、図、及び/又はブロック図の各ブロック又は複数のブロックの一部は、適用できる場合、コンピュータ実行可能コードの形態のコンピュータプログラム命令によって実施され得ることが理解されよう。これらのコンピュータプログラム命令は、コンピュータのプロセッサ、他のプログラム可能データ処理装置のプロセッサ、又は他のデバイスを介して実行する命令が、フローチャート及び/若しくはブロック図の1つ又は複数のブロックにおいて指定された機能/行為を実施するための手段を生じさせるようにマシンを作るために、汎用コンピュータ、特定用途コンピュータ、又は他のプログラム可能データ処理装置のプロセッサ、特にマイクロコンピュータ又はCPUへと提供されてもよい。
これらのコンピュータプログラム命令はまた、コンピュータ可読媒体に保存された命令がフローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/行為を実施する命令を含む製品を作るように、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスにある特定の方法で機能するように命令することができるコンピュータ可読媒体に保存されてもよい。
コンピュータプログラム命令はまた、コンピュータ又は他のプログラム可能装置上で実行する命令がフローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/行為を実施するためのプロセスを提供するように、一連の動作ステップがコンピュータ、他のプログラム可能装置又は他のデバイス上で行われるようにすることにより、コンピュータ実施プロセスを生じさせるために、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードされてもよい。
各図における流れ図及びブロック図は、本発明の様々な実施形態によるシステム、方法及びコンピュータプログラム製品によって実行可能なアーキテクチャ、機能及び動作を示す。この点に関して、流れ図又はブロック図における各ブロックは、1つ以上の指定された論理機能を行うための1つ以上の実行可能命令を含むモジュール、セグメント、又はコードの一部を表す。幾つかの代替的な実施態様において、ブロックに示される機能は、図に示される順番とは異なる順番で発生することに留意されたい。例えば、連続的に示される2つのブロックは、関連する機能に応じて、実際にはほぼ同時に実行される、又は逆順に実行されることがある。また、ブロック図及び/又は流れ図における各ブロック、並びにそれらの組み合わせは、指定された機能又は動作を行う専用のハードウェアを主体とするシステムによって、又は専用のハードウェアとコンピュータ命令の組み合わせによって実施可能であることに留意されたい。
以上で考察された問題の少なくとも幾つかを軽減又は除去するために、本発明の実施形態の一態様によると、コンピュータによって実施される、光源の光出力に埋め込まれたデータを決定する方法が開示される。データは、光出力の1つ以上の特性の変調、好ましくは光出力の強度変調として光出力に埋め込まれる。方法は、第1の波長範囲の光を検出するように構成された複数の第1の画素を含む第1の色チャネル、及び第1の波長範囲と異なる第2の波長範囲の光を検出するように構成された複数の第2の画素を含む第2の色チャネルを少なくとも有する、カメラ等の画像取得デバイスの使用に依存する。方法は、第1の色チャネルの初期ゲイン及び第2の色チャネルの初期ゲインを、1つ以上の分布の評価基準に従って、第1の色チャネルの画素値のヒストグラムの分布が第2の色チャネルの画素値のヒストグラムの分布と大幅に異なるように調整するステップを含む。したがって、このステップでは、色チャネルの少なくとも1つ、場合によりそれぞれのゲイン設定が調整される。方法はまた、第1及び第2の色チャネルの調整されたゲインが設定された画像取得デバイスにより取得された光源の光出力を含むシーンの1つ以上の画像を取得するステップを含む。すなわち、調整されたゲイン設定で取得されたシーンの1つ以上の画像が得られる。方法はさらに、1つ以上の取得された画像内の複数の第1の画素及び複数の第2の画素の少なくとも幾つかの画素の画素値を処理し、光出力に埋め込まれているデータを決定するステップを含む。
第1及び第2の色チャネルの調整されたゲインが設定された画像取得デバイスにより取得されたシーンの1つ以上の画像は、以下「修正された画像」と呼ばれ、一方、第1及び第2の色チャネルの初期ゲインが設定された画像取得デバイスにより取得されたシーンの画像は、以下「原画像」と呼ばれる。
本明細書で使用されているように、「画素」という用語は、感光体に衝突する光に応答して、電気信号、通常は電圧信号を生成するのに使用される、カメラ等の画像取得デバイスのフォトセンサを指す。画素により生成される電気信号の大きさは、画素に衝突する光の強度に直接関係する、例えば比例する。画素が画素に衝突する光の結果として生成する/含む値は、本明細書では「画素値」と呼ばれる。したがって、画素値は、画素に衝突する光の強度を示す。
カラーカメラは、それぞれが特定のスペクトルの(すなわち特定の波長範囲の)光を検出するように構成された複数の画素を有する。従来のカメラは、一般的に電磁エネルギーのそれぞれのスペクトル領域の光を検出するように構成された赤色、緑色、及び青色画素(RGB)を有する。本明細書で使用されているように、「色チャネル」という用語は、特定の波長範囲の光を検出するように構成された複数の画素を指す。
当業者は、本明細書で説明される画像取得デバイスは少なくとも2つの異なる色チャネルを有するため、本願で説明される各画像、及び、特に本願請求項で言及される各画像は、実際に各色チャネルを介して取得される2つの画像を含むことを理解するだろう。つまり、本明細書で説明される1つ以上の取得される画像のそれぞれは、第1の色チャネルを形成する画素により生成される/含まれる画素値の一群(すなわち第1の色チャネルを介して取得される画像)及び第2の色チャネルを形成する画素により生成される/含まれる画素値の一群(すなわち第2の色チャネルを介して取得される画像)を含む。「1つ以上の取得される画像」に2つ以上の画像がある場合には、それらの画像は、幾つかのCL検出方法に必要な、連続的に取得されるシーンの画像を指す。
本明細書で使用されているように、「調整されたゲイン」という表現は、画像取得デバイスの少なくとも1つの、場合により複数の色チャネルの初期ゲインを調整するステップの後の特定の色チャネルのゲインを説明するのに使用される。したがって、特定のチャネルのゲインが調整ステップにおいて初期ゲインから変化されなかったとしても、このチャネルのゲインはやはり「調整されたゲイン」と呼ばれる。ここで、そのような場合の調整はゼロ調整であり、調整されたゲインは初期ゲインに等しいことが理解される。「ゲイン設定」という表現は、画像取得デバイスの各色チャネルのゲイン値の一群を説明するのに使用される。
本明細書で使用されているように、「ヒストグラム」という用語は、データ、ここでは画素値の度数分布のグラフ表示という通常の意味を有する。したがって、本出願の文脈では、ヒストグラムのx軸は画素値を示し、y軸は特定の画素値が発生する又は発生し得る発生頻度又は発生回数を示す。
一般にカメラには、仮定「グレーワールド」に適切な色レンダリングを生成するために、自動ホワイトバランスアルゴリズムが採用され、その結果、あらゆる照明条件下(例えば直射日光、白熱灯又は蛍光灯)で自然なホワイトバランスが達成される。このようなアルゴリズムは、概して個々の色チャネル(通常は赤色、緑色、及び青色チャネル)のゲインを、それらの各画素値のヒストグラムが重なるまで調整する傾向がある。本発明の実施形態は、ほとんどの場合、機能的照明は、カメラが光に向けられた時に全ての色チャネルが同じ画素値を採用しやすいように白色になる傾向がある、すなわち異なる色チャネルの全てが、色チャネルの全てに対してCL変調が同時になくなるように同じ露光過多又は露光不足領域でクリップする傾向があるという理解に基づいている。
本発明の実施形態はさらに、画像取得デバイスの異なる色チャネルのゲインを、異なる色チャネルの画素値のヒストグラムの分布が第2の色チャネルの画素値のヒストグラムの分布と大幅に異なるように調整することは、本質的にチャネルごとに別のISOを設定する機能を果たすことができるという理解に基づいている。したがって、審美的理由で異なる色チャネルのゲインを最適化する(例えば特定の画質又は審美的影響を得るための最適化)のではなく、本発明の実施形態によると、異なる色チャネルのゲインはCL検出用に最適化される。異なる色チャネルのゲイン値を、各ヒストグラムが画素値範囲の別の領域を占めるように意図的に設定することにより、各色チャネルは光強度のダイナミックレンジの異なる部分を捕捉するように適合され、これによって、同じ画素値のクリッピングが全ての色チャネルで同時に発生する状況を最小限にする、ひいては解消する。このように、本発明の実施形態により、現在の技術水準で行われているよりも強度(画素値)の高いダイナミックレンジにわたってCL検出を行うことができる。
ある実施形態において、方法は、修正された画像を取得することに加えて、シーンの1つ以上の原画像(すなわち第1及び第2の色チャネルの初期ゲインが設定された画像取得デバイスにより取得された画像)を得ることを含む。このような実施形態は、修正された画像からCL光を検出することを可能にすると同時に、例えばユーザに表示する目的で、原画像が取得されることも保証する。原画像が取得されることは、これにより修正された画像の後処理を実行して原画像を作り直す必要性がなくなるため有利である。
ある実施形態において、1つ以上の分布の評価基準は、分布のばらつきを含み得、第1の色チャネルの初期ゲイン及び/又は第2の色チャネルの初期ゲインは、1つ以上のばらつきの評価基準に従って、第1の色チャネルの画素値のヒストグラムのばらつきが第2の色チャネルの画素値のヒストグラムのばらつきと大幅に異なるように調整される。様々な他の実施形態において、1つ以上のばらつきの評価基準は、分散、標準偏差、及び四分位範囲の群から選択され得る。
ある実施形態において、画素値を処理して光出力に埋め込まれたデータを決定するステップは、光源の光出力に埋め込まれたデータを検出するのに使用される1つ以上の取得された画像内の1つ以上の領域を特定することと、特定された1つ以上の領域に対応する、複数の第1の画素及び複数の第2の画素から、それぞれ第1の画素及び第2の画素を選択すること(すなわち、第1の色チャネルを形成する画素を選択すること、及び第2の色チャネルを形成する画素を選択すること)とを含み得る。選択された第1の画素のそれぞれは、異なる位置又は特定された1つ以上の領域内の点に対応し、選択された第2の画素のそれぞれは、異なる位置又は特定された1つ以上の領域内の点に対応する。方法はさらに、以下のステップのセットの1つ又は両方を含む。一方のステップのセットにおいて、方法は、1つ以上の取得された画像内で、光源の光出力に埋め込まれたデータの検出に適していない画素値を含む、選択された第1の画素内の第1の画素を特定することと、特定された第1の画素のそれぞれについて、特定された1つ以上の領域内の特定された第1の画素とほぼ同じ位置に対応する、複数の第2の画素内の1つの第2の画素を特定することと、好ましくは光源の光出力に埋め込まれたデータの決定に特定された第1の画素の画素値を使用せずに、特定された第2の画素の画素値を使用することとを含む。(第1のステップのセットに追加的又は代替的な)他方のステップのセットにおいて、方法は、1つ以上の取得された画像内で、光源の光出力に埋め込まれたデータの検出に適していない画素値を含む、選択された第2の画素内の第2の画素を特定することと、特定された第2の画素のそれぞれについて、特定された1つ以上の領域内の特定された第1の画素とほぼ同じ特定の位置に対応する、複数の第1の画素内の1つの第1の画素を特定することと、好ましくは光源の光出力に埋め込まれたデータの決定に特定された第2の画素の画素値を使用せずに、特定された第1の画素の画素値を使用することとを含む。
別の実施形態において、画素値を処理して光出力に埋め込まれたデータを決定するステップは、複数の第1の画素及び複数の第2の画素から、光源の光出力に埋め込まれたデータを検出するのに使用される画素を選択すること(すなわち、第1の色チャネルを形成する画素を選択すること、及び第2の色チャネルを形成する画素を選択すること)と、光源の光出力に埋め込まれたデータの検出に適していない選択された画素があるかどうかを決定することと、検出に適していないと決定されなかった選択された画素の1つ以上の取得された画像内の画素値のみを処理することにより、光出力に埋め込まれたデータを決定することとを含む。画像取得デバイスの特定の画素を選択することは、光源の光出力に埋め込まれたデータを検出するのに適している、取得された画像内のサブ領域を特定することに対応する。例えば、画像内で特定の光源の光フットプリント又はハローが位置するであろう場所は知られている。CL検出方法には、特に光源の光フットプリント又はハローからCLデータを決定することに適合されたものがあるため、これらの検出方法を実行するために、1つ以上の取得された画像のこれらの領域に対応する画素が選択されてCL検出に使用される。その後、例えば露光過多又は露光不足のためにCL検出に適していない選択された画素があるかどうかを決定することにより、これらの画素値を破棄し、適している画素値のみを処理することができる。
ある実施形態において、方法はさらに、第1及び第2の色チャネルの初期ゲインが設定された画像取得デバイスにより取得されたシーンの1つ以上の画像(すなわち原画像)を得ることと、複数の第1の画素及び複数の第2の画素から、光源の光出力に埋め込まれたデータを原画像内で検出するのに使用される画素の画素値を決定することとを含み、第1の色チャネルの初期ゲイン及び/又は第2の色チャネルの初期ゲインは、決定された画素値に基づいて調整される。この実施形態において、CLの検出に使用される画素は、例えば「選択画素」と記述されるように特定される。この実施形態により、初期ゲイン設定が、特定の環境において関連する画素により検出された(すなわち、特定の照明条件、及び、例えばシャッタ/絞り設定に関して、特定のやり方で設定された画像取得デバイスを用いて)測定された光強度を考慮して調整されるという利点がもたらされる。別の実施形態において、方法は、原画像内の画素値を処理する又は処理しようと試み、光出力に埋め込まれたデータを決定することを含むことができる。原画像からのCL光の検出が、検出に必要な画素の一部が露光過多又は露光不足であるために準最適、ひいては不可能に思われる場合、これに応じて(すなわち画素値の全範囲にわたって露光過多/露光不足を最小にするために)第1及び/又は第2の色チャネルの初期ゲインを調整することができる。
一実施形態において、第1の色チャネルの初期ゲイン及び/又は第2の色チャネルの初期ゲインを調整するステップは、第1の色チャネル又は第2の色チャネルの初期ゲインのゲイン値を、ゲイン値が減少されている色チャネルについて、初期ゲイン下で取得された少なくとも1つの画像内の露光過多の画素(すなわち最大画素値にクリップされた画素値を含む画素)の数が、調整されたゲイン下で取得された少なくとも1つの画像内の所定のいわゆる「露光過多閾値」以下に減少するように、何らかの非ゼロ値に減少させることを含む。後者の画像は、光出力に埋め込まれたデータが実際に決定された修正された画像の1つであり得るが、そうでなくてもよい。つまり、1つのチャネルのゲインは、そのチャネルの初期ゲインが設定された画像取得デバイスにより取得されたシーンの画像内の露光過多の画素の数が、そのチャネルの調整されたゲインが設定された画像取得デバイスにより取得されたシーンの画像内の所定の露光過多閾値以下に減少されるように減少される。このように、画素値範囲の最大画素値、例えば画素値範囲が0〜255の場合の値255に以前はクリップされていた画素値の少なくとも幾つかがもはやクリップされず、これらの画素の少なくとも幾つかからCLを検出することができる。
上記のようにゲインを減少させる実施形態と代替的なある実施形態において、第1の色チャネルの初期ゲイン及び/又は第2の色チャネルの初期ゲインを調整するステップは、第1の色チャネル又は第2の色チャネルの初期ゲインのゲイン値を、ゲイン値が減少されている色チャネルについて、調整されたゲイン下で取得された少なくとも1つの画像(この場合も画像はCLデータが実際に決定された修正された画像の1つであり得るが、そうでなくてもよい)内に所定の最大値より大きい画素値を含む画素がなくなるように、何らかの非ゼロ値に減少させることを含み得る。つまり、1つのチャネルのゲインは、画像がそのチャネルの調整されたゲインが設定された画像取得デバイスにより取得される時、例えばそのチャネルの画素値のヒストグラムから分かるように、所定の最大画素値より大きい画素値を含む画素がなくなるように減少される。このような実施形態により、CLの強度変調の全範囲が特定できるようになる。
ある実施形態において、第1の色チャネルの初期ゲイン及び/又は第2の色チャネルの初期ゲインを調整するステップは、第1の色チャネル又は第2の色チャネルの初期ゲインのゲイン値を、ゲイン値が増加されている色チャネルについて、初期ゲイン下で取得された少なくとも1つの画像内の露光不足の画素(すなわち最小画素値にクリップされた画素値を含む画素)の数が、調整されたゲイン下で取得された少なくとも1つの画像内の所定のいわゆる「露光不足閾値」以下に減少するように増加させることを含み得る。この場合もまた、後者の画像は光出力に埋め込まれたデータが実際に決定された修正された画像の1つであり得るが、そうでなくてもよい。つまり、1つのチャネルのゲインは、そのチャネルの初期ゲインが設定された画像取得デバイスにより取得されたシーンの画像内の露光不足の画素の数が、そのチャネルの増加されたゲインが設定された画像取得デバイスにより取得されたシーンの画像内の所定の露光不足閾値以下に減少されるように増加される。このように、画素値範囲の最小画素値、例えば画素値範囲が0〜255の場合の値0に以前はクリップされていた画素値の少なくとも幾つかがもはやクリップされず、これらの画素の少なくとも幾つかからCLを検出することができる。
上記のようにゲインを増加させる実施形態と代替的なある実施形態において、第1の色チャネルの初期ゲイン及び/又は第2の色チャネルの初期ゲインを調整するステップは、第1の色チャネル又は第2の色チャネルの初期ゲインのゲイン値を、ゲイン値が増加されている色チャネルについて、調整されたゲイン下で取得された少なくとも1つの画像(この場合も画像はCLデータが実際に決定された修正された画像の1つであり得るが、そうでなくてもよい)内に所定の最小値より小さい画素値を含む画素がなくなるように増加させることを含み得る。つまり、1つのチャネルのゲインは、画像がそのチャネルの調整されたゲインが設定された画像取得デバイスにより取得される時、例えばそのチャネルの画素値のヒストグラムから分かるように、所定の最小画素値より小さい画素値を含む画素がなくなるように増加される。
ある実施形態において、第1の色チャネルの初期ゲイン及び/又は第2の色チャネルの初期ゲインを調整するステップは、画像取得デバイスの色温度設定を調整することを含み得る。画像取得デバイスの色温度設定を、例えば標準の「昼光」色温度設定から「タングステン」色温度設定に調整することで、少なくとも1つの色チャネルは、他のチャネルとは異なる強度値範囲をカバーする。別の一実施形態において、色温度設定を調整するステップは、複数の所定の色温度設定から1つの色温度設定を選択することを含み得る。このような画像取得デバイスの所定の色温度設定は、例えばタングステン、昼光、又は曇天及び日陰色温度設定のような従来のカメラの標準設定を含み得る。
ある実施形態において、方法はさらに、第1の逆調整関数を複数の第1の画素の1つ以上の取得された画像の画素値に適用し、第2の逆調整関数を複数の第2の画素の1つ以上の取得された画像の画素値に適用して、第1及び第2の色チャネルの初期ゲインに対応する1つ以上の取得された画像の画素値を得ることを含む。このように、後処理において、CL検出用に最適化されたゲインで取得された画像は補正され、異なる色チャネルの初期ゲインが設定された画像取得デバイスにより取得されていたであろう画像の近似値を少なくとも得ることができる。
ある実施形態において、方法はさらに、第1の色チャネル及び第2の色チャネルの調整されたゲインに、第1及び第2の色チャネルのゲインが初期ゲインとなるように逆調整を適用することを含む。この実施形態は、有利なことに画像取得デバイスの設定をCL検出用に最適化されたものから、例えばホワイトバランス用に最適化された標準設定に戻すことができる。
様々な実施形態において、取得された画像は、静止画像(すなわち画像取得デバイスは静止カメラの一部である)である、又はビデオストリームを形成する画像(すなわち画像取得デバイスはビデオカメラの一部である)である。当然のことながら、画像取得デバイスは、静止カメラとしてもビデオカメラとしても機能することができるカメラの一部であり得る。
本明細書の別の態様によると、本明細書に説明される方法を実行するように構成されたプロセッサを少なくとも含むデータ処理システムが開示される。
本発明のさらに別の態様によると、光出力の1つ以上の特性の変調、好ましくは光出力の強度変調として光源の光出力に埋め込まれたデータを決定するCL検出システムが開示される。システムは、少なくとも画像取得デバイス及び処理ユニットを含む。画像取得デバイス、例えばカメラは、処理ユニットにより処理される1つ以上の画像を取得するように構成される。画像取得デバイスは、画像の取得時に第1の波長範囲の光を検出するように構成された複数の第1の画素を含む第1の色チャネル、及び画像の取得時に第1の波長範囲と異なる第2の波長範囲の光を検出するように構成された複数の第2の画素を含む第2の色チャネルを少なくとも含む。処理ユニットは、本明細書に説明される方法を実行するように構成される。特に、処理ユニットは、第1の色チャネルの初期ゲイン及び/又は第2の色チャネルの初期ゲインを、1つ以上の分布の評価基準に従って、第1の色チャネルの画素値のヒストグラムの分布が第2の色チャネルの画素値のヒストグラムの分布と大幅に異なるように調整し、第1及び第2の色チャネルの調整されたゲインが設定された画像取得デバイスにより取得された光源の光出力を含むシーンの1つ以上の画像を取得し、1つ以上の取得された画像内の複数の第1の画素及び複数の第2の画素の少なくとも幾つかの画素の画素値を処理し、光出力に埋め込まれているデータを決定するように構成される。このようなCL検出システムは、例えば照明システムを制御する遠隔制御器に実装されるか、カメラ、タブレットコンピュータ、スマートフォン、スイッチ、又はセンサデバイスのような別のユニットに含められ、例えば照明システムの個々のCL源を制御するのに使用される。
さらに、本明細書に説明される方法を実行するためのコンピュータプログラム、及び、当該コンピュータプログラムを記憶した非一時的コンピュータ可読記憶媒体も提供される。コンピュータプログラムは、例えば既存の制御システム(例えば既存の光学受信器、遠隔制御器、スマートフォン又はタブレットコンピュータ)にダウンロード(アップデート)される、又はこれらのシステムの製造時に記憶される。
以下に、本発明の実施形態がさらに詳細に説明される。しかし、当然のことながら、この実施形態は本発明の保護範囲を限定すると解釈されるべきではない。
以下の説明において、本発明のより完全な理解を提供するために、多数の特定の詳細が記載される。しかし、当業者には明らかであるように、本発明は、これらの特定の詳細のうちの1つ以上がなくても実施される。その他の点として、良く知られた特徴は、本発明を分かりにくくするのを避けるために説明されていない。
図1は、ここでは部屋である例示的な構造体100を示し、その中に照明システム110が設置されている。図1に示される例示的な実施形態では、照明システム110は、2つの光源121及び122を含む。光源は、例えば高/低圧力ガス放電源、レーザダイオード、無機/有機発光ダイオード、白熱源、又は蛍光源といった任意の適切な光源を含む。動作時、光源121によって提供される光出力及び/又は光源122によって提供される光出力は、構造体100の少なくとも一部分を照らす照明システム110によって提供される全照明に寄与する。光源121及び122からの構造体への照明寄与は、それぞれ、図1において、フットプリント131及び132として示される(この例示的な図におけるフットプリントは、構造体100の透視図の読者から最も遠い壁上にあることが意図される)。光源からのフットプリントは重なる。
好ましくは、光源121、122の光出力は、第1の色チャネルの波長範囲及び第2の色チャネルの波長範囲の両方に寄与を有する。さらに、光源121、122の少なくとも一方の光出力は、光出力が埋め込まれたデータ、例えば個別の識別子コードID#1、2をそれぞれ含むようにコード化される。個別の識別子コードは、通常、光源から放射された光の特性における変調の時間的シーケンスとして放射される埋め込みコードである。本明細書において使用されるように、「識別子」又は「IDコード」との用語は、照明システム内の個々のCL源の十分な特定を可能にする任意のコードを指す。CL源によって生成されるコード化光はさらに、例えば現在の光設定のような光源に関する他の情報及び/又は光源に関連する又は関連しない他の情報を含む。
データは、特定のコード信号に応答して光源に印加される駆動信号をCL源ごとに変調することによって、CL源の光出力に埋め込まれる。データを光源の光出力に埋め込む技術(例えばパルス幅変調、振幅変調等)、及び埋め込みデータを受ける側で(すなわち画像取得デバイスにより検出された光から)復元する技術は様々あり、それらの全ては当業者に知られているので、本明細書では詳細には説明しない。
照明システム110はさらに、光源の光出力に埋め込まれたデータの検出を可能にする、すなわちCLの検出を可能にする検出システム140を有する。図2は、本発明の一実施形態によるCL検出システム140の概略図である。図2に示されるように、CL検出システム140は、例えばカメラの形態をとる、シーンの1つ以上の画像を取得するように構成された画像取得デバイス210と、本明細書に説明される方法に従い取得された画像を処理するように構成された処理ユニット220とを少なくとも含む。任意で、CL検出システム140は、例えば光出力に埋め込まれたデータが検出された時に、CLを生成する光源を制御する、例えばRF/WiFi通信可能な素子等の、特に指定された制御素子230を含み得る。
図2に示されるように、画像取得デバイス210は、複数の第1の画素212及び複数の第2の画素214を有する。画素212及び214の各画素は、感光体に衝突する光に応答して電気信号、通常は電圧信号を生成するのに使用されるフォトセンサであるか、又はこれを有する。画素のフォトセンサは、通常、画像取得デバイスの最小のアドレス可能素子であり、画像取得デバイスの画素は、通常、1つ以上の行列に配列される。
画素により生成される電気信号の大きさは、通常、画素が感知するように設定された波長範囲における、画素に衝突する光の強度に比例し、この強度は、シーン内の特定の物理的位置における照明システムの全光出力を表す。つまり、画素が生成し、画素に衝突する光の結果として含む画素値は、画素が画素に衝突する際の光を検出するように構成された波長範囲における全光の強度を示す。好ましくは、画素はデジタル値を含み、例えば各画素値は8ビット値でもよく、0から255までの256個の異なる画素値の解像度をもたらす。
複数の画素212のそれぞれは、第1の波長範囲の光を検出するように構成され、複数の画素214のそれぞれは、第2の波長範囲の光を検出するように構成される。したがって、画素212は多色チャネルの画像取得デバイス210の第1の色チャネルを形成し、一方、画素214は第2の色チャネルを形成する。画像取得デバイス210は、大幅に異なる波長範囲(しかし、異なる色チャネルの波長範囲は重なる)の光を検出するように構成される複数の画素をそれぞれ含む別の色チャネルを含んでもよい。例えば従来のカメラは、通常、電磁エネルギーの赤色、緑色、及び青色スペクトル領域の光をそれぞれ検出するように構成された赤色、緑色、及び青色画素(RGB)を有する。例えば、当技術分野で使用されているように、「赤色チャネル」という用語は、通常、約680nmを中心とする(例えば620nm〜740nm)の波長範囲を指し、「緑色チャネル」という用語は、通常、約530nmを中心とする(例えば490nm〜570nm)の波長範囲を指し、「青色チャネル」という用語は、通常、約470nmを中心とする(例えば450nm〜490nm)の波長範囲を指す。
以下でより詳細に説明されるように、処理ユニット220は、例えば画像取得デバイス210の異なる色チャネルのゲインを調整すること、及びデバイス210にシーンの画像取得を指示することのような、画像取得デバイス210の機能の少なくとも一部を制御するように構成される。
CL検出システム140は、図2に単一ユニットとして示されているが、当業者は、システム140内にある図2に示される個々の要素の機能が他の幾つかのユニットに分散され得ることを理解するだろう。特に、画像取得デバイス210及び処理ユニット220は、同一デバイスの一部を構成する必要はない。しかし、例えばCL検出システム140がカメラ、スマートフォン、タブレット、又は携帯電子デバイスである場合には、同一デバイスの一部を構成することが多い。
図3は、本開示の一実施形態による、例えば図2に示される処理ユニット220として使用される例示的なデータ処理システム300の概略図である。
データ処理システム300は、メモリ素子304にシステムバス310を介して結合された少なくとも1つのプロセッサ302を含む。したがって、データ処理システム300は、メモリ素子304内にプログラムコードを格納する。さらに、プロセッサ302は、メモリ素子304からシステムバス310を介してアクセスされるプログラムコードを実行する。一態様において、データ処理システム300は、プログラムコードを格納する及び/又は実行するのに適したコンピュータとして実装される。しかし、システム300は、本明細書内で説明される機能を実行可能なプロセッサ及びメモリを含む任意のシステムの形態で実装されることが理解されるべきである。
様々な実施形態において、メモリ素子304は、例えば、ローカルメモリ306及び1つ以上の大容量ストレージデバイス308のような、1つ以上の物理メモリデバイスを含む。ローカルメモリは、ランダムアクセスメモリ、又は一般的にプログラムコードの実際の実行中に使用される他の(1つ以上の)非永続型メモリデバイスを指す。大容量ストレージデバイスは、ハードドライブ又は他の永続型データストレージデバイスとして実装される。処理システム300はまた、実行中に大容量ストレージデバイス308からプログラムコードを検索しなければならない回数を減らすために、少なくとも一部のプログラムコードを一時記憶する1つ以上のキャッシュメモリ(図示せず)を含む。
入力デバイス312及び出力デバイス314として示された入出力(I/O)デバイスは、任意にデータ処理システム300に結合することができる。入力デバイスの例には、例えばキーボード、マウス等のポインティングデバイスが含まれるがこれらに限定されない。出力デバイスの例には、例えばモニタ若しくはディスプレイ、スピーカ等が含まれるがこれらに限定されない。入力デバイス312及び/又は出力デバイス314は、データ処理システム300に直接に又は介在I/Oコントローラ(図3に図示せず)を介して結合される。また、ネットワークアダプタ316が任意にデータ処理システム300に結合され、データ処理システムが介在プライベートネットワーク又は公衆ネットワークを介して他のシステム、コンピュータシステム、遠隔ネットワークデバイス、及び/又は遠隔ストレージデバイスに結合可能になる。ある実施形態において、ネットワークアダプタ316は、特に前述のシステム、デバイス及び/又はネットワークにより前述のデータに送信されるデータを受信するデータ受信器318、及び、データを前述のシステム、デバイス及び/又はネットワークに送信するデータ送信器320を含む。モデム、ケーブルモデム、及びイーサネット(登録商標)カードは、データ処理システム300と共に使用される異なるタイプのネットワークアダプタの例である。
メモリ素子304は、アプリケーション(図示せず)を格納する。データ処理システム300は、アプリケーションの実行を促進することができるオペレーティングシステム(図3に図示せず)をさらに実行することが理解されるべきである。アプリケーションは、実行可能なプログラムコードの形式で実装され、データ処理システム300、例えばプロセッサ302により実行することができる。アプリケーションの実行に応答して、データ処理システムは、本明細書でさらに詳細に説明される1つ以上の動作を実行するように構成される。
図4A及び図4Bは、本発明の一実施形態による、初期ゲイン設定及び調整されたゲイン設定にそれぞれ従う2つの異なる色チャネルに関連するヒストグラムの概略図を提供する。図4A及び図4Bにおいて、横軸は、取り得る画素値の範囲を示す。この例示的な図において、この範囲は値0及び255によって境される(すなわち画素値は8ビット値である)。当業者なら理解するように、所定の上限閾値(この場合には255)より大きい画素値を有する画素は、画素の露光過多、又は飽和(すなわち画素データを提供するセンサの飽和)を示し、一方、所定の下限閾値(この場合には0)より小さい画素値を有する画素は、画素の露光不足(すなわち画素データを提供するセンサの露光不足)を示す。
図4A及び図4Bの縦軸は、各画素値の発生頻度を示す。図4A及び図4Bにおいて、一方の色チャネル、例えば第1の色チャネルのヒストグラムは実線で表され、他方の色チャネル、例えば第2の色チャネルのヒストグラムは破線で表される。
図4Aは、初期ゲイン設定の結果としての第1及び第2の色チャネルのヒストグラムの例を概略的に示す。このような初期ゲイン設定は、例えば一般に世界が灰色であるとの仮定に基づいて各チャネルのゲインを調整するカメラの自動ホワイトバランス制御に起因することができる。結果的に、図4Aに見られるように、それぞれの色チャネルのヒストグラムは、大部分が一致する傾向がある。また結果的に、検出された画素値の一部は、最小画素値(この場合は0)及び最大画素値(この場合は255)にクリップされる。これは、画素値0及び画素値255における両チャネルのヒストグラムのスパイク(すなわち垂直線)で示されるように、両チャネルで同時に起こる。したがって、図4Aは、通常のゲイン設定下では、全ての色チャネルが、カメラが光に向けられた時にほぼ同じ画素値を採用する傾向があり、同じ露光過多又は露光不足の領域でクリップする傾向があることを示す。そして、CL変調は全ての色チャネルに対して同時に失われる。
図4Bは、調整されたゲイン設定の結果としての第1及び第2の色チャネルのヒストグラムの例を概略的に示す。図4Bから分かるように、第1の色チャネルのゲインは、クリップされた画素値を当初含んでいた取得された画像の明領域(すなわち図4Aのヒストグラムの画素値255における第1の色チャネルの垂直スパイク)が利用可能な画素値範囲内に量子化されるように、図4Aの初期値から減少されている。結果的に、図4Bには、画素値255における第1の色チャネルの垂直スパイクはなく、画素212内に露光過多の画素はないことを示す。しかし、これは、画素値の下限境界でクリップされる値の増加(すなわち画素値0におけるクリッピングの増加)を犠牲にして発生する。
また、図4Bから分かるように、第2の色チャネルのゲインは、クリップされた画素値を当初含んでいた取得された画像の暗領域(すなわち図4Aのヒストグラムの画素値0における第2の色チャネルの垂直スパイク)が複数の画素値に分散されるように、しかし、明領域における追加のクリッピング(すなわち画素値255におけるクリッピングの増加)を犠牲にして、図4Aの初期値から増加されている。
図5は、本発明の一実施形態による、図4Aの初期ゲイン設定下でそれぞれ第1及び第2の色チャネルを介して取得された第1の画像512及び第2の画像514の概略図である。したがって、第1の画像512は、画素212により生成された画素値を表し、一方第2の画像514は、画素214により生成された画素値を表し、画像取得デバイス210の利用可能な画素値範囲に従う最小及び最大画素値へのクリッピングが考慮されている。
図5に見られるように、自動ホワイトバランス調整下において、画像512及び514は、特にシーン内に強く飽和した色がない場合は類似してくる傾向がある。両画像は、頭部の彫刻520及びランプ530のような白色又は灰色の物体をほぼ同じように描写する。図5の線540は、明領域550と暗領域560のいずれをも含む例示的な列の場所を示す。明領域550は、対応する画素が露光過多となり、その画素値が画像取得デバイスの画素値範囲の最大画素値にクリップされる結果となり、一方、暗領域560は、対応する画素が露光不足となり、その画素値が画像取得デバイスの画素値範囲の最小画素値にクリップされる結果となる傾向がある。
図6は、本発明の一実施形態による、図5の例示的な線540に沿った画素値の概略図である。図6において、横軸は、垂直位置の例示的な範囲を示し、値0は図5の画像の最上行と関連付けられ、一方、値480は最下行と関連付けられる。縦軸は、取り得る画素値の範囲(すなわち0〜255の範囲)を示す。
図5の明領域550と関連付けられた画素値は、図6のクリップされた画素値650を含む。図5の暗領域560と関連付けられた画素値は、図6のクリップされた画素値660を含む。クリップされた画素値650及び660からCL検出が実行できないことは明らかである。
図6は、第2の色チャネルのみの結果(すなわち画像)における例示的な線についての図を提供する。図4Aに示されるような初期ゲイン設定下では、両チャネルはほぼ同じ画素値を採用するため、第1の色チャネルの出力における例示的な線についての図6のような図は、図6のものとほぼ同じに見えるため提供されない。
図7は、本発明の一実施形態による、図4Bの調整されたゲイン設定下でそれぞれ第1及び第2の色チャネルを介して取得された第1の画像712及び第2の画像714の概略図である。したがって、第1の画像712は、画素212により生成された画素値を表し、一方第2の画像714は、画素214により生成された画素値を表し、画像取得デバイス210の利用可能な画素値範囲に従う最小及び最大画素値へのクリッピングが考慮されている。
画像714から分かるように、第2の色チャネルのゲインを増加させることは、暗領域760(図5の領域560に対応)のような暗領域におけるクリッピングを減少させるが、明領域750(図5の領域550に対応)のような明領域におけるクリッピングを増加させる。図7の線740は、第2の色チャネルを介して取得された画像714内の例示的な列の場所を示し、図5の線540に対応する。
画像712から分かるように、第1の色チャネルのゲインを減少させることは、明領域770(図5の第1の色チャネルの画像で特定されていた場合の図5の領域550に対応)のような明領域におけるクリッピングを減少させるが、暗領域780(図5の第1の色チャネルの画像で特定されていた場合の図5の領域560に対応)のような暗領域におけるクリッピングを増加させる。図7の線790は、第1の色チャネルを介して取得された画像712内の例示的な列の場所を示し、図5の線540に類似しているが、第1の色チャネルの出力のために引かれたものである。
図8は、本発明の一実施形態による、図7に示された第1の色チャネルの画像712内の例示的な線790に沿った画素値の概略図である。図8は、2つの図を提供する。上図は、縦軸上の画素値の全範囲(すなわち0〜255の範囲)についての線790に沿った画素値の曲線を示し、下図は、上図と同じであるが、縦方向に拡大された曲線を示す(すなわち縦軸は画素値の全範囲ではなく、上図の曲線の最大画素値を含む部分範囲を示す)。図8の2つの縦の点線は、図8の上図及び下図における対応する曲線部分を示す。
図7の明領域770の画素は、図8の上図の画素値870で表される。図7の暗領域780の画素は、図8の上図の画素値880で表される。図8の上図から分かるように、第1の色チャネルのゲインが減少される時、露光過多のために以前はクリップされていた画素(図6の画素値650参照)の少なくとも一部は、もはやクリップされていない(図8の画素値870参照)。しかし、画像のより暗い領域では、図8において図6の画素値660と比較して最小画素値0にクリップされる画素値880がより多いという事実から分かるように、クリップされる画素の数は増加する。
画素値870の拡大版が画素値875として図8の下図に示される。画素値875は、光が時間変調の形式の埋め込み情報を含んでいると仮定すると、露光過多によるクリッピングがない場合には、画素値875により示される変調は、取り得る画素値の範囲内で捕捉されていることを示す。
図9は、本発明の一実施形態による、図7に示された第2の色チャネルの画像714内の例示的な線740に沿った画素値の概略図である。図8と同様に、図9は2つの図を提供する。上図は、縦軸上の画素値の全範囲(すなわち0〜255の範囲)についての線740に沿った画素値の曲線を示し、下図は、上図と同じであるが、縦方向に拡大された曲線を示す(すなわち縦軸は画素値の全範囲ではなく、上図の曲線の最小画素値を含む部分範囲を示す)。図9の2つの縦の点線は、図9の上図及び下図における対応する曲線部分を示す。
図7の明領域750の画素は、図9の上図の画素値950で表される。図7の暗領域760の画素は、図9の上図の画素値960で表される。図9の上図から分かるように、第2の色チャネルのゲインが増加される時、露光不足のために以前はクリップされていた画素(図6の画素値660参照)の少なくとも一部は、もはやクリップされていない(図9の画素値960参照)。しかし、画像のより明るい領域では、図9において図6の画素値650と比較して最大画素値255にクリップされる画素値950がより多いという事実から分かるように、クリップされる画素の数は増加する。
画素値960の拡大版が画素値965として図9の下図に示される。画素値965は、光が時間変調の形式の埋め込み情報を含んでいると仮定すると、露光不足によるクリッピングがない場合には、画素値965により示される変調は、取り得る画素値の範囲内で捕捉されていることを示す。
その結果、CLの検出は、上記の図に示された第1及び第2の色チャネルのうちのどちらかから修正された画像の画素値に基づいて、又はどちらの画素値がクリップされていないかにより第1の色チャネルの画素から修正された画像の画素値及び第2の色チャネルの画素から修正された画像の画素値に部分的に基づいて実行され得る。例えば、CL変調が縦線790及び740に沿った取得された画像712及び714の明るい領域(例えば領域770及び750)に存在すると予想される場合には、CLの検出は、第1の色チャネル(すなわち初期ゲイン値と比較してゲインが減少されているチャネル)の画素値870/875に基づいて実行されるべきである。なぜなら、これらの画素はクリップされていないが、ゲイン調整された第2の色チャネルの対応画素の画素値950及び初期ゲイン設定下の第1及び第2の色チャネル両方の画素値650は、露光過多のためにクリップされているためである。一方、CL変調が縦線790及び740に沿った取得された画像712及び714の暗い領域(例えば領域780及び760)に存在すると予想される場合には、CLの検出は、第2の色チャネル(すなわち初期ゲイン値と比較してゲインが増加されているチャネル)の画素値960/965に基づいて実行されるべきである。なぜなら、これらの画素はクリップされていないが、ゲイン調整された第1の色チャネルの対応画素の画素値950及び初期ゲイン設定下の第1及び第2の色チャネル両方の画素値660は、露光不足のためにクリップされているためである。したがって、CLの検出が不可能な露光過多及び露光不足の領域又は画素値と、CLの検出が可能な領域又は画素値を区別することにより、画像取得デバイスが、色チャネルの幾つかの少なくとも幾つかの画素が露光過多又は露光不足となるように1つ以上の画像を取得しているとしても、CLの検出が可能になる。当業者は、特定の展開シナリオに従って、様々な光源の光出力に埋め込まれたデータの検出のために1つ以上の色チャネルからクリップされていない画素値を選択及び使用する様々なやり方を認識するだろう。
図10A及び図10Bは、本発明の様々な実施形態による、光源の光出力に埋め込まれたデータを決定する方法ステップの流れ図である。図10A及び図10Bの方法ステップは、例えば図1に示される光源121又は122のような、シーンに光寄与を提供するいずれのCL源にも適用可能である。方法ステップは、図1及び図2に示される素子と関連して説明されるが、方法ステップを任意の順序で実行するように構成されたいかなるシステムも本発明の範囲内にあることを認識するだろう。
ある実施形態において、図10Aの方法は、任意の(すなわち、全ての実施形態に必要なわけではない)2つのステップ、ステップ1010及び1020から始まる。
ステップ1010において、初期ゲイン設定に設定された画像取得デバイス210は、例えば処理ユニット220からその旨の指示を受けると、シーンの1つ以上の画像を取得する。シーンは、シーンの少なくとも一部が埋め込みCLデータの決定が実行されるCL源の光出力の少なくとも一部を含むように選択される。これは、例えば光源121及び122のうち、光源121だけがCL源で、光源121の光出力に埋め込まれたデータを決定しようとする場合には、シーンは光源121のフットプリント131の少なくとも一部を含むように選択されなければならないことを意味する。当業者が認識するように、一部のCL検出方法では、シーンは光源121自体をも含まなければならない。光源121及び122がいずれもCL源である場合には、シーンはフットプリント131及び132(また、場合により光源121、122自体)の両方の少なくとも一部を含むように選択される。
初期ゲイン設定下でシーンの1つ以上の画像を取得する目的の1つは、ゲイン設定がCL検出用に最適化されるためにどのように調整されるべきかを後で決定することである。ステップ1010のもう1つの目的は、修正された画像に加えて、初期ゲイン設定下で取得される原画像を、CL検出に用いられるのは(ステップ1040において取得される)修正された画像であるが、例えばユーザに(審美的理由で最適化された)原画像を表示するために、処理ユニットが利用できるようにすることであり得る。そして、ステップ1010において画像を取得することは、修正された画像の後処理を実行して、ユーザに表示するために原画像を作り直す必要性をなくすため有利である。
ステップ1020において、処理ユニット220がステップ1010で取得された1つ以上の画像を得ると、処理ユニット220は、ステップ1010において初期ゲイン設定下で取得された画像から、第1及び第2の色チャネルをそれぞれ形成する画素212及び画素214から、CLを検出するのに使用される画素の画素値を決定する。
CL検出に使用すべき画像取得デバイス210の特定の画素を特定又は選択することは、光源の光出力に埋め込まれたデータを検出するのに適した、画像が取得されたシーン内のサブ領域に対応する取得された画像内のサブ領域を特定することに相当する。例えば、特定の光源の光フットプリント又はハローが画像内のどこに位置付けられるかは知られている。CL検出方法には、特に光源の光フットプリント又はハローからCLデータを決定することに適合されるものがあるため、これらの検出方法を実行するために、1つ以上の取得された画像のこれらの領域に対応する画素が選択されてCL検出に使用される。
別の任意の実施形態において、図10Aの方法はさらに、原画像内の画素値を処理して、又は処理しようと試み、光出力に埋め込まれたデータを決定するステップ(このステップは図10Aに示されていない)を含む。そして、処理ユニット220が、ステップ1010で取得された原画像に基づくCL検出が、例えば検出に必要な画素の一部が露光過多又は露光不足であるために準最適である、又は全く不可能であると判断した場合、そのような情報は、これに応じて第1及び/又は第2の色チャネルの初期ゲインを調整するために(すなわち画素値の全範囲にわたって露光過多/露光不足を最小にするために)ステップ1030において使用され得る。
ステップ1030において、処理ユニット220は、第1の色チャネルの初期ゲイン及び/又は第2の色チャネルの初期ゲインを、CL検出用に最適化されるように調整する。これは、1つ以上の分布の評価基準に従って、第1の色チャネルの画素値のヒストグラムの分布が第2の色チャネルの画素値のヒストグラムの分布と大幅に異なるようにゲインが調整されることを意味する。したがって、第1及び第2の色チャネルの初期ゲインが、例えば図4Aに示されるようなヒストグラムをもたらすような場合には、調整後、ヒストグラムは、例えば上記の図4Bに示されるようなものとなる。
ある実施形態において、分布の評価基準はばらつきであり得る。よく知られているように、統計上、ばらつき(変動性、散乱、又は発散とも呼ばれる)は、理論分布、又は統計サンプルの基礎になる分布がどれくらい伸びている又は圧縮されているかを示す。統計的ばらつきの評価基準の一般的な例には、分散、標準偏差、及び四分位範囲がある。
本明細書で使用されているように、上の段落の「大幅に異なる」という表現は、第1及び第2の色チャネルのヒストグラム間の重複がヒストグラム下の積分面の50%未満、好ましくは30%未満、より好ましくは10%未満に減らされることを説明するために使用される。
ある実施形態において、ステップ1030は、図10Aの方法の第1のステップであり得る(すなわちステップ1010及び1020は行われない)。このような場合、処理ユニット220は、第1及び/又は第2の色チャネルのゲインを、例えばCL検出は既知の色温度を有する環境(例えばオフィスビル)で行われるという仮定に基づいて調整する。この色温度、又はCL検出用の最適ゲイン値は、二次通信チャネルを介して(例えば、そのオフィスビル内の無線接続を使用して)、又は異なる場所ごとの既知の光源特性が記録されたデータベースを介して提供され得る。
一方、好ましい実施形態において、処理ユニット220は、初期ゲイン設定下で取得された画像を処理した結果に基づいて(すなわちステップ1020の結果に基づいて)、ステップ1030においてゲインを調整する。
例えば、ある実施形態において、処理ユニット220は、上記の図5に示される線に沿って、両チャネルの画素値を分析し得る、また、画素値650はCL検出に使用すべき値であるが、初期ゲイン設定下で露出過多であるために全ての色チャネルについてクリップされていると思われるため、少なくとも1つのチャネルの(例えば第1のチャネルの)ゲインは、CL検出が図8に示される画素値875に基づいて実行され得るように減少されなければならないと判断し得る。
一実施形態において、第1の色チャネルのゲインは、初期ゲイン下で取得された、第1の色チャネルの画像512内の露光過多の画素の数が、調整されたゲイン下で取得された少なくとも1つの画像内の所定の露光過多閾値以下に減少するまで減少され得る。このように、利用可能な画素値範囲の最大画素値に以前はクリップされていた画素値の少なくとも幾つか、好ましくは全てがもはやクリップされておらず、これらの画素の少なくとも幾つかからCLを検出可能になる。露光過多閾値がどのように設定又は規定され得るかは、以下でより詳細に説明される。
代替的な実施形態において、第1の色チャネルのゲインは、第1の色チャネルの調整されたゲイン下で取得された少なくとも1つの画像内に、所定の最大値よりも大きい画素値を含む画素がなくなるように減少され得る。例えば、画像取得デバイス210の利用可能な画素値範囲が0〜255と規定される場合、所定の最大画素値は、例えば250に設定され得、これはチャネルのゲインが調整されたゲイン下で250よりも高い値を含む画素がなくなるまで調整されなければならないことを示す。
上記の1つの色チャネルのゲインを減少させる実施例の代替的又は付加的な実施例において、処理ユニット220はまた、上記の図5に示される線に沿って画素値を分析し得る、また、画素値660はCL検出に使用すべき値であるが、初期ゲイン設定下で露出不足であるために全ての色チャネルについてクリップされていると思われるため、少なくとも1つのチャネルの(例えば第2のチャネルの)ゲインは、CL検出が図9に示される画素値965に基づいて実行され得るように増加されなければならないと判断し得る。
一実施形態において、第2の色チャネルのゲインは、初期ゲイン下で取得された、第2の色チャネルの画像514内の露光不足の画素の数が、調整されたゲイン下で取得された少なくとも1つの画像内の所定の露光不足閾値以下に減少するまで増加され得る。このように、利用可能な画素値範囲の最小画素値に以前はクリップされていた画素値の少なくとも幾つか、好ましくは全てがもはやクリップされておらず、これらの画素の少なくとも幾つかからCLを検出可能になる。
代替的な実施形態において、第2の色チャネルのゲインは、第2の色チャネルの調整されたゲイン下で取得された少なくとも1つの画像内に、所定の最小値よりも小さい画素値を含む画素がなくなるように増加され得る。例えば、画像取得デバイスの画素値範囲が0〜255と規定される場合、所定の最小画素値は、例えば5に設定され得、これはチャネルのゲインが調整されたゲイン下で5よりも低い値を含む画素がなくなるまで調整されなければならないことを示す。
前述の記載は、CL検出が画素値650で示されるような画素値のみ、又は画素値660で示されるような画素値のみに基づいて実行され得る場合、上記のように2つの色チャネルのうちの一方のゲインを調整することで十分である(すなわち、CL検出に使用されるべきものが画素値650である場合は1つのチャネルのゲインを減少させる、又は使用されるべきものが画素値660である場合は1つのチャネルのゲインを増加させる)ことを説明する。CL検出に使用されるべきものが画素値650及び660の両方である場合、ステップ1030において処理ユニット220は、図8及び図9、並びにこれらの図が参照する前の図に関連して説明したように、両設定の初期ゲインを調整する。
露光過多閾値を設定する幾つかの例示的なやり方が、本発明の様々な実施形態に従ってこれから説明される。
一例示的実施形態において、露光過多閾値は、初期ゲイン下で露光過多であった色チャネルの画素数のパーセント値として設定され得る。このような実施形態において、N%の露光過多閾値(Nは0から100までの数字である)は、調整されたゲイン下で露出過多の画素の数が初期ゲイン下で露出過多の画素の数のN%よりも小さくなければならないことを意味する。それから、露光過多閾値は、例えば20%、好ましくは10%、さらに好ましくは0%(0%は調整されたゲイン下で露光過多の画素がないことを意味する)に設定され得る。
別の例示的実施形態において、露光過多閾値は絶対値として設定され得る。このような実施形態において、例えばMという露光過多閾値(Mはゲインが減少されている色チャネルの画素の総数Kよりも小さな整数である)は、調整されたゲイン下で露出過多の画素の数がM画素よりも小さくなければならないことを意味する。それから、露光過多閾値は、例えば0.2*K(すなわちM=0.2*K)、好ましくは0.1*K(すなわちM=0.1*K)、さらに好ましくは0(0は調整されたゲイン下で露光過多の画素がないことを意味する)に設定され得る。
露光過多閾値についての上記の考察と同様、様々な実施形態において、露光不足閾値は様々なやり方で設定され得る。
一例示的実施形態において、露光不足閾値は、初期ゲイン下で露光不足であった色チャネルの画素数のパーセント値として設定され得る。このような実施形態において、P%の露光不足閾値(Pは0から100までの数字であり、上記の数Nと同じか又は異なる)は、調整されたゲイン下で露出不足の画素の数が初期ゲイン下で露出不足の画素の数のP%よりも小さくなければならないことを意味する。それから、露光不足閾値は、例えば20%、好ましくは10%、さらに好ましくは0%(0%は調整されたゲイン下で取得された画像内に露光不足の画素がないことを意味する)に設定され得る。
別の例示的実施形態において、露光不足閾値は絶対値として設定され得る。このような実施形態において、例えばQという露光不足閾値(Qはゲインが増加されている色チャネルの画素の総数Rよりも小さな整数である)は、調整されたゲイン下で露出不足の画素の数がQ画素よりも小さくなければならないことを意味する。それから、露光不足閾値は、例えば0.2*R(すなわちQ=0.2*R)、好ましくは0.1*R(すなわちQ=0.1*R)、さらに好ましくは0(調整されたゲイン下で露光不足の画素がないことを意味する)に設定され得る。
様々な実施形態において、露光過多閾値及び/又は露光不足閾値は、例えば上記のように処理ユニット220により決定及び設定され得る、又は処理ユニット220がアクセスするメモリに予め定義され、格納され得る。
ある実施形態において、ステップ1030において第1及び/又は第2の色チャネルの初期ゲインを調整することは、画像取得デバイス210の色温度設定を調整することを含み得る。例えば、標準の「昼光」色温度設定から「タングステン」色温度設定に調整することで、少なくとも1つの色チャネルは、1つ以上の他のチャネルと異なる強度値の範囲をカバーする。おそらく、色温度設定を調整するステップは、例えばタングステン、昼光、又は曇天及び日陰色温度設定のような、複数の所定の色温度設定から1つの色温度設定を選択することを含み得る。
それから、方法は、画像取得デバイス210が、例えばその旨の指示を処理ユニット220から受けると、調整されたゲイン設定下での、すなわちステップ1030において調整された第1及び第2の色チャネルのゲイン値を有する、シーンの1つ以上の画像を取得するステップ1040に進む。ステップ1010について上記に示したシーンの選択に関する考察はここで適用できるため、繰り返されない。実際、ステップ1040において取得される画像のシーンは、必ずというわけではないが、ステップ1010において取得された画像のものと同じシーンであることが好ましい。
ある実施形態において、ステップ1040において取得される画像(及びステップ1010において取得される画像)は、光出力の1つ以上の特性の変調が適切なガボールフィルタを用いて畳み込み処理された取得された画像に、画像における交互ストライプとして観察できるように、様々な画素(又は様々なグループの画素)が異なる時点で露光される、ロールシャッタカメラである画像取得デバイス210により取得される。CLを検出する目的でロールシャッタ画像取得デバイスを使用することは、参照によってその開示全体が本明細書に組み込まれている国際特許公開WO2012/127439A1に詳細に説明されている。ロールシャッタ画像取得デバイスを使用する利点の1つは、そのような画像取得デバイスは、グローバルシャッタを使用する画像取得デバイスよりも設計が単純であるため、(例えば画素あたりのチップ面積が小さくて済むため)安価であることである。もう1つの利点は、そのような画像取得デバイスは、現在タブレット及びスマートフォンで採用されているデバイスであり、これらのありふれたデバイスが本発明の実施形態を実施するのに特に適したものになることである。
ステップ1040においてシーンの1つ以上の画像を取得する目的の1つは、光源の光出力に埋め込まれたデータが決定されるCL検出である。したがって、取得される画像の最小数は、取得される画像がそのような検出を可能にするような数であるべきである。様々な検出技術がよく知られているため、当業者は、所与の設定において検出を行うのに十分な画像数を認識するだろう。画像の最小数は、例えば光源のタイプ及び数、コードを光源の光出力に埋め込むために使用される技術、使用される画像取得デバイスの技術特性、及び画像処理に使用される検出技術のうちの1つ以上に依存する。例えばカメラの1つ以上の画像センサの様々な部分が異なる時点で露光される上記のロールシャッタカメラが使用される場合、例えば米国特許第8,248,467B1号、国際特許公開WO2012/127439A1及び米国特許出願公開第61/698,761号に説明されるように、埋め込まれたコードは、画像における交互ストライプとして観察されるので、たった1つの画像で十分である。他方では、カメラの1つ以上の画像センサの全ての部分が1フレームの間に同じ時間インスタンスで露光されるグローバルシャッタカメラが使用され、国際特許公開WO2011/086501A1に説明されるように、埋め込まれたデータコードが、S個のシンボルからなる反復シーケンスを含む場合、少なくともS個の異なる画像が取得されるべきである。各画像は、S個のシンボルからなる反復シーケンス内の様々な時間的位置における1回以上の露光を含む総露光時間で取得される。当然ながら、例えば様々な光源の光出力に埋め込まれたデータの正しい決定の確率を向上させるために、又は、様々な光源の光寄与における経時変化を追跡するために、ステップ1040においてより多くの画像が取得される。同じ考察は、ステップ1010において取得された画像を使用してCL検出を行う、又は行おうとする時、それらの画像数に適用される。
一実施形態において、図10Aの方法は、処理ユニット220がステップ1040において取得された1つ以上の画像を得ると、処理ユニット220が、ステップ1040の画像内の、画素212(第1の色チャネル)及び画素214(第2の色チャネル)の少なくとも幾つかの画素の画素値を処理して、特定のCL源の光出力に埋め込まれたデータを決定することができるステップ1050で終了する。
図10Bは、本発明の一実施形態による、図10Aのステップ1050において画素値を処理する方法ステップの流れ図を示す。
図10Bに示されるように、画素値の処理は、ステップ1052において、光源の光出力に埋め込まれたデータを検出するのに使用されるべき画素を、第1の画素212及び第2の画素214から選択することから始まり得る。これらの画素は、ステップ1010において取得された画像内のCL検出に使用され得る画素の特定/選択について、上記で説明したのと類似のやり方で選択できるため、その説明はここでは繰り返されない。
それから、図10Bの方法は、ステップ1052において選択された画素について、処理ユニット220が、色チャネルの1つを形成する選択された画素、例えば第1の色チャネルを形成する画素の中に、CL検出に適していない画素値を含むものがあるかどうかを決定するステップ1054に進み得る。画素値は、例えば利用可能な画素値範囲の最小又は最大値においてクリップされている場合、又は利用可能な画素値範囲の最小又は最大値に近すぎて、CLの強度変調の全範囲の検出ができない場合にはCL検出に適していない。「近すぎる」かどうかは、CLデータを光源の光出力に埋め込む特定の方法に依存する。例えばデータが、CLの強度変調の範囲が、例えば10画素値となるように埋め込まれる場合、画素値の利用可能範囲が0から255である時の画素値253は適していない。なぜなら、その画素値がたまたまCL変調の範囲の下限にある場合には、CL変調の範囲の上限にある強度を捕捉すべき画素値が253+10=263となり、利用可能な画素値範囲の最大値、すなわち値255にクリップされるからである。処理ユニット220は、例えばこれらの画素値のそれぞれが所定の画素値の間隔内にあるかどうかを決定することにより、「利用可能な画素値範囲の最小又は最大値に近すぎる」として、どの画素値が適していないかを決定し得る。したがって、強度変調の範囲が10画素値で、画素値の利用可能範囲が0〜255であった上記の例において、処理ユニット220は、9〜245の範囲外にある画素値、すなわち9より小さい画素値及び245より大きい画素値のいずれもがCL検出に適していないと決定し得る。
ステップ1054において肯定的な決定が行われると、処理ユニット220は、ステップ1056において、他の色チャネルを形成する選択された画素の1つ以上の取得された画像内の画素値を処理し、光出力に埋め込まれたデータを決定し得る。このように、他方の色チャネルを形成する選択された画素が、埋め込まれたデータの検出に適していない画素値を含まないという条件で、一方の色チャネルにおいて露光過多又は露光不足の画素の画素値は破棄され、他方のチャネルの対応する画素値はCL検出に使用され得る。
例えば、CL検出に使用されるべき画素が、画素値650で示されるように取得された画像内に(すなわち初期ゲイン設定下で取得された露光過多の画像の領域に)ある場合、かつ、第1及び第2の色チャネルのゲインが図8及び図9並びにこれらの図が参照する前の図に関連して説明されたように調整される場合、ステップ1054において、処理ユニット220は、第2の色チャネルの画素値950は露光過多であるためCL検出に適していないと決定する。処理ユニット220はまた、一方、第1の色チャネルの画素値870はCL検出に適していると決定し、次にこれらの画素値を処理してCLデータを検出する。
上記の実施例の代替的又は付加的な別の実施例において、CL検出に使用されるべき画素が、画素値660で示されるように取得された画像内に(すなわち初期ゲイン設定下で取得された露光不足の画像の領域に)ある場合、かつ、第1及び第2の色チャネルのゲインが図8及び図9並びにこれらの図が参照する前の図に関連して説明されたように調整される場合、ステップ1054において、処理ユニット220は、第1の色チャネルの画素値880は露光不足であるためCL検出に適していないと決定する。処理ユニット220はまた、一方、第2の色チャネルの画素値960はCL検出に適していると決定し、次にこれらの画素値を処理してCLデータを検出する。
上記で説明したある実施形態において、CLの検出はまた、どの画素値がクリップされていないかに応じて、第1の色チャネルの画素から修正された画像の画素値に部分的に基づいて、及び第2の色チャネルの画素から修正された画像の画素値に部分的に基づいて実行され得る。したがって、上記の実施例において、ステップ1056におけるCLの検出は、画素値870に対応するシーンの取得された画像の領域の(すなわち明領域の)第1の色チャネルの画素値870に基づいて実行され、画素値960に対応するシーンの取得された画像の領域の(すなわち暗領域の)第2の色チャネルの画素値960に基づいて実行され得る。
図10Aに示される方法に戻ると、ある実施形態において、方法はさらに、取得された修正された画像の画素値に適切な関数を適用し、初期ゲイン設定下で取得されたであろう第1及び第2の色チャネルの画素値の近似値に達する(図10Aに示されていない)任意のステップをさらに含む。このような実施形態は、図10Aの方法が初期ゲイン設定下で画像が取得されるステップ1010を含まない場合、又はそのような画像がユーザに表示するためにシステム内でもはや利用できない場合に特に有利である。このように、後処理において、CL検出用に最適化されたゲインで取得された画像を補正し、画像取得デバイスを用いて異なる色チャネルの初期ゲインで取得されたであろう画像の近似値を得ることができ、例えば審美的理由で望ましい。例えば、調整されたゲイン設定の「不正確な」ホワイトバランス下で撮影された画像は、正確なホワイトバランスの外観が少なくとも近似的に再び得られるように、相補的な後処理演算により補正され得る。ここでの目的は、修復された「正確な」ホワイトバランスで画像又はビデオストリームをレンダリングすることである。当業者であれば認識するように、このことは一般に逆ガンマ補正、補正係数による異なる色チャネルの画像の増倍、及びガンマ補正を実行することを意味する。一般に、このようなやり方により、色アーチファクトが発生し、人間はこれを1つ以上の色チャネルがクリップされた修復された原画像の領域に見ることができる。このようなアーチファクトは、その色を露光過多のためにクリップされた画素の白色及び露光不足のためにクリップされた画素の黒色と置き換えることにより修復することができる。
別の実施形態において、図10Aの方法はさらに、第1及び第2の色チャネルのゲインが再び初期値となるように、第1及び第2の色チャネルの調整されたゲインに逆調整を適用することを含む(このステップは図10Aに示されていない)。この実施形態は、CL検出が行われた後に、画像取得デバイス210を(すなわちCL検出のためではなく)従来のカメラとして使用したい場合に特に有利である。
図11は、実際のカメラの調整されたゲイン設定下における3つの異なる色チャネル(赤、緑、及び青)に関連するヒストグラムを示す。図11は、ヒストグラムの理想的な理論図である上記で説明された図4bと比較可能であるが、図11は、実際の実験データに基づいたヒストグラムを示す。
図12は、1つの取得された画像の例示的な線に沿った、図11に示された調整されたゲイン設定下における3つの色チャネルの画素値を示す。図12は、特定の線に沿った画素値の理想的な理論図である上記で説明された図8及び図9の上図の組み合わせと比較可能であるが、図12は、実際の実験データに基づいた画素値を示す。
本発明の様々な実施形態は、コンピュータシステムと共に使用されるプログラム製品として実施される。プログラム製品の1つ以上のプログラムが、(本明細書において説明された方法を含む)実施形態の機能を規定する。一実施形態において、1つ以上のプログラムは、様々な非一時的コンピュータ可読記憶媒体に含まれ得る。本明細書において使用されるように、「非一時的コンピュータ可読記憶媒体」との表現は、一時的な伝播信号だけを除いて、あらゆるコンピュータ可読媒体を含む。別の実施形態において、1つ以上のプログラムは、様々な一時的コンピュータ可読媒体に含まれ得る。例示的なコンピュータ可読記憶媒体は、次に限定されないが、(i)情報が永久的に記憶される書込み不可記憶媒体(例えばCD−ROMドライブによって読出し可能なCD−ROMディスクといったコンピュータ内の読み取り専用メモリデバイス、ROMチップ、又は、任意のタイプの固体不揮発性半導体メモリ)及び(ii)変更可能な情報が記憶される書込み可能記憶媒体(例えばフラッシュメモリ、ディスケットドライブ又はハードディスクドライブ内のフロッピーディスク、又は、任意のタイプの固体ランダムアクセス半導体メモリ)を含む。コンピュータプログラムは、本明細書において説明される処理ユニット220上で実行される。
上記説明は、本発明の実施形態に関するが、本発明の他の及びさらなる実施形態も、本発明の基本範囲から逸脱することなく考案される。例えば本発明の態様は、ハードウェア、ソフトウェア又はハードウェア及びソフトウェアの組み合わせにおいて実施される。したがって、本発明の範囲は、以下の請求項によって決定される。