(57)【特許請求の範囲】
【請求項１】
時間方向に変化のある光信号によって情報を発信している複数の光源から発信された情報を受信する撮像装置であって、
上記各光源から発信された光信号が投影される複数の画素を有する撮像素子と、
上記各光源から発信された光信号が投影される第１の領域を含み、上記撮像素子の有する全画素のうち一部の画素よりなる第２の領域に存在する画素に蓄積された電荷を複数回読み出す処理を実行する第１の動作モードと、上記第２の領域に存在する画素に蓄積された電荷を読み出す情報読み出し時間とは異なる時間に、上記撮像素子の有する全ての画素に蓄積された電荷を読み出す処理を実行する第２の動作モードとを交互に切り換えて、上記撮像素子の画素から蓄積された電荷を読み出す処理を実行する読み出し制御手段と、
上記撮像素子の第２の領域に存在する画素から上記読み出し制御手段によって複数回読み出すことによって得られた複数枚の第１の画像を取得し、上記各第１の画像同士の時間的変化により、上記各光源によって発信されている情報を求めて出力する処理と、上記読み出し制御手段により読み出された上記撮像素子の全ての画素のデータから上記撮像素子全体に投影されている上記各光源を含む被写体全体の第２の画像を出力する処理とを実行する情報処理手段と
を備える撮像装置。
【請求項２】
上記第２の画像上に上記情報をオーバーレイして出力する請求項１記載の撮像装置。
【請求項３】
上記第１の領域は、時間的に移動しており、
上記読み出し制御手段は、上記撮像素子の移動する上記第２の領域に存在する画素に蓄積された電荷を複数回読み出す制御を行う請求項１記載の撮像装置。
【請求項４】
上記各光源のそれぞれが時間とともにオン／オフすることで、二進数の情報を伝えるものである請求項１記載の撮像装置。
【請求項５】
上記光源は、スリット光が時間とともに照射する位置を変えているものである請求項１記載の撮像装置。
【請求項６】
上記撮像素子の全域に亘って、順次、一部分を切り出し、その切り出した部分に対して有効な情報を検知した位置を記憶しておき、該有効な情報を検知した部分を上記第２の領域とする領域決定処理手段を備える請求項１記載の撮像装置。
【請求項７】
上記第２の領域をユーザーが指定する指定操作手段を備える請求項１記載の撮像装置。
【請求項８】
過去の時刻における上記第２の領域の中での上記第１の領域の位置に依存して、未来の時刻における上記第２の領域の位置を決定する領域決定処理手段を備えることを特徴とする請求項１記載の撮像装置。
【請求項９】
時間方向に変化のある光信号によって情報を発信している複数の光源から発信された情報を受信する撮像装置で実行される撮像制御方法であって、
上記各光源から発信された光信号が投影される第１の領域を含み、上記各光源から発信された光信号が投影される複数の画素を有する撮像素子の有する全画素のうち一部の画素よりなる第２の領域に存在する画素に蓄積された電荷を複数回読み出す処理を実行する第１の動作モードと、上記第２の領域に存在する画素に蓄積された電荷を読み出す情報読み出し時間とは異なる時間に、上記撮像素子の有する全ての画素に蓄積された電荷を読み出す処理を実行する第２の動作モードとを交互に切り換えて、上記撮像素子の画素から蓄積された電荷を読み出す処理を実行する読み出しステップと、
上記撮像素子の第２の領域に存在する画素から上記読み出しステップで複数回読み出すことによって得られた複数枚の第１の画像を取得し、上記各第１の画像同士の時間的変化により、上記各光源によって発信されている情報を求めて出力する処理と、上記読み出し制御ステップで読み出された上記撮像素子の全ての画素のデータから上記撮像素子全体に投影されている上記各光源を含む被写体全体の第２の画像を出力する処理とを実行する情報処理ステップと
を含む撮像制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高速に発せられる光の強弱により情報を伝送する際の、受信側である撮像装置及び撮像制御方法に関し、特に、画像と他の情報を１つの撮像デバイスにより受信する撮像装置及び撮像制御方法に関する。
【背景技術】
【０００２】
従来から、画像を撮影しながら、さらに、撮影されている領域内に発光する光の点滅パターンにより、データを転送したり（例えば、特許文献１参照）、また、スリット光を回転ミラーで反射させることで三角測量の原理を使って画像を撮影しながら、その被写体までの距離を求めることが行われている（例えば、特許文献２、３参照）。
【０００３】
このように、画像と情報を１つの撮像デバイスにより受信する撮像装置では、いずれの場合にも、現実的には高速に連続撮像できるセンサが必要である。例えば、点滅パターンの点滅周期以上に高速に撮影する必要があり、従来の点滅パターンによるデータ転送システムでは、１２ＫＨｚ程度のフレームレートでの高速連続撮影が必要であるとされている。また、スリット光による被写体までの距離情報を求める場合にも、１２ＫＨｚのフレームレートで距離検出を行うとしている。
【０００４】
【特許文献１】特開２００３−３２３２３９号公報
【特許文献２】特開２００３−１６９２５１号公報
【特許文献３】特開２００１−２２４０１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、上述の如く高速連続撮影を可能とするためには、特殊な撮像素子が必要となり、汎用の撮像素子での実現は不可能である。すなわち、画像を撮影できる機能と、各画素に比較器を用いてその画素における時間的変化を１ビットで表現することで、高速に光の強度の時間変化を求めることができる機能の２つを持ち合わせた撮像素子が必要であった。
【０００６】
このように、実際に、上述の装置は、特殊なセンサを用いるために、コストが高くなり、安価なシステムを作ることができないという欠点があった。
【０００７】
なお、通常の撮像素子は、半導体技術の進歩により、特にＣＭＯＳイメージセンサの実用化に伴い、高速連続撮影が可能にはなった。しかしながら、高速と言っても、せいぜい２４０ｆｐｓ（毎秒２４０枚）程度が一般的であり、それ以上の高速化には特殊な技術が必要であり高価になってしまう。
【０００８】
そこで、本発明の目的は、上述の如き従来の問題点に鑑み、汎用の撮像素子を使って、画像と情報を１つの撮像デバイスにより受信することのできる撮像装置及び撮像制御方法を提供することにある。
【０００９】
本発明の更に他の目的、本発明によって得られる具体的な利点は、以下に説明される実施の形態の説明から一層明らかにされる。
【課題を解決するための手段】
【００１０】
上述の光の点滅パターンの取得には、撮像素子が撮影している範囲の中で、実際に点滅パターンが投影されている部分、つまり、ほんの一部分だけの範囲内の撮影情報で十分である。スリット光を回転ミラーで反射させることで三角測量の原理を使った場合において、撮像素子が撮影している範囲の中の一部分だけのデータでも、その部分に関する三角測量はできる。撮像素子からの読み出す部分を制限することで、読み出す総画素数が少なくなり、結果としてフレームレートを上げて撮影できる。すなわち、高速連続撮影ができる。
【００１１】
以上の点に着目して、本発明においては、特殊な撮像素子を用いずに、目的に合った画像と情報を１つの汎用の撮像素子により受信する。
【００１２】
本発明に係る撮像装置は、時間方向に変化のある光信号によって情報を発信している複数の光源から発信された情報を受信する撮像装置であって、上記各光源から発信された光信号が投影される複数の画素を有する撮像素子と、上記各光源から発信された光信号が投影される第１の領域を含み、上記撮像素子の有する全画素のうち一部の画素よりなる第２の領域に存在する画素に蓄積された電荷を複数回読み出す処理を実行する第１の動作モードと、上記第２の領域に存在する画素に蓄積された電荷を読み出す情報読み出し時間とは異なる時間に、上記撮像素子の有する全ての画素に蓄積された電荷を読み出す処理を実行する第２の動作モードとを交互に切り換えて、上記撮像素子の画素から蓄積された電荷を読み出す処理を実行する読み出し制御手段と、上記撮像素子の第２の領域に存在する画素から上記読み出し制御手段によって複数回読み出すことによって得られた複数枚の第１の画像を取得し、上記各第１の画像同士の時間的変化により、上記各光源によって発信されている情報を求めて出力する処理と、上記読み出し制御手段により読み出された上記撮像素子の全ての画素のデータから上記撮像素子全体に投影されている上記各光源を含む被写体全体の第２の画像を出力する処理とを実行する情報処理手段とを備えることを特徴とする。
【００１３】
本発明に係る撮像装置では、例えば、上記第２の画像上に上記第１の情報をオーバーレイして出力する。
【００１４】
本発明に係る撮像制御方法は、時間方向に変化のある光信号によって情報を発信している複数の光源から発信された情報を受信する撮像装置で実行される撮像制御方法であって、上記各光源から発信された光信号が投影される第１の領域を含み、上記各光源から発信された光信号が投影される複数の画素を有する撮像素子の有する全画素のうち一部の画素よりなる第２の領域に存在する画素に蓄積された電荷を複数回読み出す処理を実行する第１の動作モードと、上記第２の領域に存在する画素に蓄積された電荷を読み出す情報読み出し時間とは異なる時間に、上記撮像素子の有する全ての画素に蓄積された電荷を読み出す処理を実行する第２の動作モードとを交互に切り換えて、上記撮像素子の画素から蓄積された電荷を読み出す処理を実行する読み出しステップと、上記撮像素子の第２の領域に存在する画素から上記読み出しステップで複数回読み出すことによって得られた複数枚の第１の画像を取得し、上記各第１の画像同士の時間的変化により、上記各光源によって発信されている情報を求めて出力する処理と、上記読み出し制御ステップで読み出された上記撮像素子の全ての画素のデータから上記撮像素子全体に投影されている上記各光源を含む被写体全体の第２の画像を出力する処理とを実行する情報処理ステップとを含むことを特徴とする。
【発明の効果】
【００１５】
本発明では、汎用の撮像素子を使って、センサの一部分のみを読み出すという操作により、高速連続撮像が可能になり、光の点滅パターンによる情報の受信や、スリット光による距離情報の取得ができる。したがって、安価に撮像システムを構築することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。なお、本発明は以下の例に限定されるものではなく、本発明の要旨を逸脱しない範囲で、任意に変更可能であることは言うまでもない。
【００１７】
本発明は、例えば図１に示すような構成の撮像装置１００に適用される。
【００１８】
図１に示す撮像装置１００は、撮像レンズ１０１、絞り１０２を介して撮像光が入射される撮像素子１０３、この撮像素子１０３により得られる撮像出力信号が供給されるカメラ信号処理回路１０４、画像メモリ１０６Ａ，１０６Ｂ，１０６Ｃ，１０６Ｄ群、及び、画像メモリ１０７Ａ，１０７Ｂ，１０７Ｃ，１０７Ｄ群、上記カメラ信号処理回路１０４の出力信号が供給される画像メモリ１０５、上記画像メモリ１０６Ａ，１０６Ｂ，１０６Ｃ，１０６Ｄ群から読み出された画像データが供給される画像解析回路１０８、上記画像メモリ１０７Ａ，１０７Ｂ，１０７Ｃ，１０７Ｄ群から読み出された画像データが供給される画像解析回路１０９、上記撮像素子１０３による撮像動作を制御するタイミングジェネレータ１１０、このタイミングジェネレータ１１０に付随するレジスタ１１０Ａ、これらを制御する制御回路１１１、この制御回路１１１に制御情報を与えるための操作入力部１１２等を備えてなる。
【００１９】
この撮像装置１００において、撮像素子１０３は、レンズ１０１、絞り１０２を介して入射される撮像光を電気信号に変換する。この撮像素子１０３からの電気信号である撮像出力信号は、カメラ信号処理回路１０４により処理されて、画像メモリ１０５に格納される。また、上記撮像素子１０３からの撮像出力信号は、上記画像メモリ１０５とは別の画像メモリ１０６Ａ，１０６Ｂ，１０６Ｃ，１０６Ｄ群、及び、画像メモリ１０７Ａ，１０７Ｂ，１０７Ｃ，１０７Ｄ群にも格納できるようになっている。上記４つの画像メモリ１０６Ａ〜１０６Ｄから読み出されるデータは、画像解析回路１０８に入力され、この画像解析回路１０８内で後述する適切な処理が行われる。同様に、上記４つの画像メモリ１０７Ａ〜１０７Ｄから読み出されるデータは、画像解析回路１０９に入力され、この画像解析回路１０９内で後述する適切な処理が行われる。また、タイミングジェネレータ１１０は、撮像素子１０３での撮影タイミング、及び、読み出す画素の制御を行う。このタイミングジェネレータ１１０に付随するレジスタ１１０Ａは、後述するブロックの位置に関する情報を保持するためのものである。また、制御回路１１１は、この撮像装置１００全体の制御を行う。
【００２０】
なお、通常、撮像素子の直後には、相関２重サンプリング回路とＡ／Ｄコンバータが付いており、レンズ１０１、絞り１０２を介した入射光は、撮像素子の各受光部に到達し、受光部での光電変換によって電気信号に変換され、相関２重サンプリング回路によってノイズが除去され、Ａ／Ｄコンバータによってデジタル化され、通常８ビットのデータとなる。しかしながら、このような一般的な事柄は本発明の要点に直接関係ないので、図１に示した撮像装置１００では相関２重サンプリング回路とＡ／Ｄコンバータを省略して、撮像素子からは各画素のデジタルデータが直接出力されるとして説明を進めていくことにする。
【００２１】
この撮像装置１００においては、好適には、撮像素子１０３として、例えばＣＭＯＳイメージセンサを使用する。ＣＭＯＳイメージセンサの特徴として、画素のランダムアクセスが可能である点があげられる。例えば、ＭＩＣＲＯＮ社製のＣＭＯＳイメージセンサ（型番：ＭＴ９Ｔ００１）は、その仕様書のＷｉｎｄｏｗ  Ｃｏｎｔｒｏｌという項目にランダムアクセスによる読み出し方が説明されており、また、読み出す領域を限定することで、そのフレームレートを上げることもできることが、記載されている。また、２箇所以上の矩形領域を指定して、その２つの領域内の画素のみを読み出すことができるイメージセンサもある。本発明においては、このランダムアクセスという特徴を利用している。ＣＣＤイメージセンサにおいても、このように一部分だけ高速に読み出すモードを設けたものも存在しているので、そのような撮像素子でも、本発明は適用できる。
【００２２】
そして、この実施の形態における撮像装置１００では、例えば、撮像素子１０３は、４００万（４メガ）画素とし、１画素あたりの読み出し時間を１／９６０マイクロ秒、すなわち、９６０ＭＨｚで、画素を次々と読み出すことができるものとする。従って、通常の画像を撮影（４００万画素全部を使って撮影）する場合は、４００万×１／９６０マイクロ秒で１枚、つまり、２４０ｆｐｓ（毎秒２４０枚）のフレームレートで、動画像として読み出すことができる。また、例えば、２箇所の２００×２００画素の矩形領域を読み出すには、合計で８万画素を読み出すことになるので、８００００／９６０マイクロ秒で読み出すことができ、すなわち、１２ｋＨｚで、２箇所の２００×２００画素の矩形領域を読み出すことができる。
【００２３】
図１において、撮像素子１０３の画素数を４００万としているので、画像メモリ１０５は、その画素数と同じ４００万ワードの領域を持っている。１画素の語長を８ビットとすると、画像メモリ１０５は、４００万ワード×８ビットの容量である。ここでは、本発明の要点とは関係ないので、言及はしないが、もし、カラー画像であれば、１画素は通常２４ビットなので、画像メモリ１０５は、４００万ワード×２４ビットの容量となるが、ここでは、黒白画像、即ち、４００万ワード×８ビットとして話を進めていく。
【００２４】
図１において、読み出す矩形領域は、２００×２００画素としているので、画像メモリ１０６Ａ〜１０６Ｄ及び画像メモリ１０７Ａ〜１０７Ｄは、それぞれ、その画素数と同じ４万ワードの領域を持っている。１画素の語長は８ビットなので、それぞれ、４万ワード×８ビットの容量である。
【００２５】
なお、以下の説明のため、撮像素子１０３は、横２０００画素、縦２０００画素とする。また、各画素の位置は、（Ｘ，Ｙ）で表される。ここで、Ｘは横方向の位置を表し、０以上２０００未満である。Ｙは縦方向の位置を表し、０以上２０００未満である。
【００２６】
ここで、本発明に係る撮像装置の他の構成例を図２に示す。
【００２７】
図２に示す撮像装置２００おいて、図１に示した撮像装置１００と同じ構成要素は、同一符号を付して、その説明を省略する。この撮像装置２００は、上記撮像装置１００における画像メモリ１０６Ａ〜１０６Ｄ，１０７Ａ〜１０７Ｄ群及び画像解析回路１０８，１０９に代わる画像メモリ２０１とＤＳＰ（Digital Signal Processor）２０２を備える。
【００２８】
画像メモリ２０１は、撮像素子１０３からの撮像出力信号が格納される。その容量は、図１に示した撮像装置１００おける８個の画像メモリ１０６Ａ〜１０６Ｄ，１０７Ａ〜１０７Ｄの合計と同じであり、上記図１における８個の画像メモリ１０６Ａ〜１０６Ｄ，１０７Ａ〜１０７Ｄに格納される画像データと全く同じものが画像２０１に格納される。画像メモリ２０１から読み出されたデータは、ＤＳＰ２０２に入力される。ＤＳＰ２０２は、図示しないプログラムコードに則り、所望の計算を行う。その計算内容は、図１の画像解析回路１０８，１０９で行われる処理と等価なものである。画像解析回路１０８，１０９での処理を、ＤＳＰ２０２で行わせることで、より汎用性（拡張性）を持たせることができる。つまり、例えば、プログラムコードを変更することで、矩形領域の大きさを変更したりすることができる。
【００２９】
図１に示した撮像装置１００のように専用の画像解析回路１０８，１０９を用いることで回路規模は最適化されるという利点があり、一方、図２に示す示した撮像装置２００のようなプログラマブルなＤＳＰ２０２を用いることで拡張性を持たせることができるという利点がある。逆に言えば、図１に示すように専用の画像解析回路１０８，１０９を用いることで拡張性は失われる。そして、図２に示すようなプログラマブルなＤＳＰ２０２を用いることで回路規模が大きくなるという欠点がおきる。図１、図２に示す構成は、一長一短があり、実際の製品としては、コストと、その利便性を考えて、それぞれの用途に合ったものを選ぶことになる。
【００３０】
次に、図１に示した撮像装置１００について、詳しく述べる。
【００３１】
図３には、上記撮像装置１００では、図３に示すように、時間の経過に従い、画像読み出しモードと、情報読み出すモードの２つのモードが交互に実行される。図３において、横軸は時間軸である。
【００３２】
この撮像装置１００では、従来と異なり、情報を読み出すモードのときに、撮像素子１０３内の画素をすべて読み出さずに、一部分（ここでは、２箇所の２００×２００画素の部分としている）のみを読み出すようにしている。これにより、より高速な連続撮影が可能となる。
【００３３】
すなわち、図３に示すように、まず、時刻０秒から時刻４／２４０秒の間は、画像読み出しモードとして動作する。次の時刻４／２４０秒から時刻８／２４０秒の間は、情報読み出しモード（情報ＡＢ読み出しモードと名づけている。）として動作する。次の時刻８／２４０秒から時刻１２／２４０秒の間は、画像読み出しモードとして動作する。次の時刻１２／２４０秒から時刻１６／２４０秒の間は、情報読み出しモード（情報ＡＢ読み出しモードと名づけている。）として動作する。以降、同様である。
【００３４】
画像読み出しモード（例えば、時刻０秒から時刻４／２４０秒の間）に関して、図４を用いて詳細に説明する。このモードでは、通常のデジタルスチルカメラやデジタルビデオカメラと同様の動作が行われる。
【００３５】
すなわち、時刻ｔ０秒において、１つ目の画素（通常、位置（０，０）の画素）のリセットが行われ、時刻３／２４０秒まで電荷の蓄積が行われ、時刻３／２４０秒において、その画素の値として電荷に比例した値が１０３の出力端子より出力され、カメラ信号処理回路１０４を介して画像メモリ１０５に格納される。この画素の露光時間は、図４のＴ１である。
【００３６】
時刻（Ｔ０＋１／９６０００００００）秒において、２つ目の画素（通常、位置（１，０）の画素）のリセットが行われ、時刻（３／２４０＋１／９６０００００００）秒まで電荷の蓄積が行われ、時刻（３／２４０＋１／９６０００００００）秒において、その画素の値として電荷に比例した値が１０３の出力端子より出力され、カメラ信号処理回路１０４を介して画像メモリ１０５に格納される。この画素の露光時間は、図４のＴ２である。
【００３７】
時刻（Ｔ０＋２／９６０００００００）秒において、３つ目の画素（通常、位置（２，０）の画素）のリセットが行われ、時刻（３／２４０＋２／９６０００００００）秒まで電荷の蓄積が行われ、時刻（３／２４０＋２／９６０００００００）秒において、その画素の値として電荷に比例した値がイメージセンタ１０３の出力端子より出力され、カメラ信号処理回路１０４を介して画像メモリ１０５に格納される。この画素の露光時間は、図４のＴ３である。
【００３８】
以下、同様に、ラスタスキャン順に画素がリセットされ、露光され、読み出され、カメラ信号処理回路１０４を介して画像メモリ１０５に格納される。
【００３９】
そして、最後の画素であるＮ番目の画素（通常、位置（１９９９，１９９９）の画素）について処理が行われる。すなわち、時刻（ｔ０＋（Ｎ−１）／９６０００００００）秒において、Ｎ番目の画素（通常、位置（１９９９，１９９９）の画素）のリセットが行われ、時刻（３／２４０＋（Ｎ−１）／９６０００００００）秒まで電荷の蓄積が行われ、時刻（３／２４０＋（Ｎ−１）／９６０００００００）秒において、その画素の値として電荷に比例した値が撮像素子１０３の出力端子より出力され、カメラ信号処理回路１０４を介して、画像メモリ１０５に格納される。この画素の露光時間は、図４のＴＮである。
【００４０】
なお、ここでＮは４００万である。また、時刻ｔ０は、制御回路１１１により決定される。具体的には、図示しない露出計からの値が制御回路１１１に入力され、被写体の明るさを検知して、撮像素子１０３で撮影する際に最適な露出時間が決定される。この露出時間に基づいて、ｔ０＝（３／２４０）−（露出時間）と決定される。この露出の決定は、従来からデジタルスチルカメラや、デジタルビデオカメラにおいて行われているので、その詳細を省略する。また、各画素のリセット、露光、読み出しのタイミングの制御は、タイミングジェネレータ１１０にて行われる。
【００４１】
なお、先に述べたように、撮像素子１０３からは、１画素あたりの読み出し時間は１／９６０マイクロ秒であり、全画素（Ｎ個の画素）を読み出すのに、４００万×（１／９６０）マイクロ秒＝１／２４０秒かかるので、時刻４／２４０秒において、画像読み出しモードは終わる。
【００４２】
なお、ここで、カメラ信号処理回路１０４での処理について説明する。カメラ信号処理回路１０４では、通常のデジタルスチルカメラやデジタルビデオカメラにおいて処理される画像処理と同じ処理が行われる。すなわち、γ補正やエッジ強調などによる見栄えの良い画像への変換などであり、さらに、撮像素子がベイヤー配列の場合はデモザイク処理、カラー画像の場合はホワイトバランス調整などが挙げられる。このような処理は、通常のデジタルスチルカメラやデジタルビデオカメラを使用して撮影する場合に、必ずカメラ内で行われている処理であるので、詳細説明を割愛する。
【００４３】
このように、４／２４０秒間に行われる画像読み出しモードが終了するたび、画像メモリ１０５には、撮像素子全体を使って撮影された「鑑賞用の綺麗な画像」が格納されることになる。
【００４４】
次に、情報ＡＢ読み出しモード（例えば、時刻４／２４０秒から時刻８／２４０秒の間）に関して、図５を用いて詳細に説明する。このモードでは、通常のデジタルスチルカメラやデジタルビデオカメラとは違い、撮像素子の一部分の読み出しのみが行われる。
【００４５】
なお、このモードに入る時点よりも前に、レジスタ１１０Ａに、ブロックＡの矩形領域（２００×２００画素）を示すデータと、ブロックＢの矩形領域（２００×２００画素）を示すデータが保持されているとする。具体的には、レジスタ１１０Ａは、ブロックＡの左上の画素の位置を示す（ｉａ，ｉｂ）と、ブロックＢの左上の画素の位置を示す（ｉｂ，ｊｂ）という２つの２次元ベクトルの値を保持している。
【００４６】
タイミングジェネレータ１１０は、レジスタ１１０Ａに格納されている情報を使って、撮像素子内の一部であるブロックＡの部分とブロックＢの部分のみを読み出すように、撮像素子１０３を制御する。
【００４７】
すなわち、時刻４／２４０秒において、ブロックＡ内の１つ目の画素（通常、位置（ｉａ，ｉｂ）の画素）のリセットが行われ、時刻（４／２４０）＋（８００００／９６０００００００）秒まで電荷の蓄積（図５のＴ１１）が行われ、時刻（４／２４０）＋（８００００／９６０００００００）秒において、その画素の値として電荷に比例した値が撮像素子１０３の出力端子より出力され、画像メモリ１０６Ａ〜１０６Ｄのいずれかに格納される。そして、同時に、この画素のリセットが再度行われ、時刻（４／２４０）＋２×（８００００／９６０００００００）秒まで電荷の蓄積（図５のＴ２１）が行われ、時刻（４／２４０）＋２×（８００００／９６０００００００）秒において、その画素の値として電荷に比例した値が撮像素子１０３の出力端子より出力され、画像メモリ１０６Ａ〜１０６Ｄのいずれかに格納される。そして、同時に、この画素のリセットが再度行われ、時刻（４／２４０）＋３×（８００００／９６０００００００）秒まで電荷の蓄積（図５のＴ３１）が行われ、時刻（４／２４０）＋３×（８００００／９６０００００００）秒において、その画素の値として電荷に比例した値が撮像素子１０３の出力端子より出力され、画像メモリ１０６Ａ〜１０６Ｄのいずれかに格納される。以降、同様にして、合計でＳ回、この操作が行われる。ここで、Ｓは１９９である。図５には、最後の操作での電荷の蓄積について、ＴＳ１として記してある。
【００４８】
また、時刻（４／２４０＋１／９６０００００００）秒において、ブロックＡ内の２つ目の画素（通常、位置（ｉａ＋１，ｉｂ）の画素）のリセットが行われ、時刻（４／２４０＋１／９６０００００００）＋（８００００／９６０００００００）秒まで電荷の蓄積（図５のＴ１２）が行われ、時刻（４／２４０＋１／９６０００００００）＋（８００００／９６０００００００）秒において、その画素の値として電荷に比例した値が撮像素子１０３の出力端子より出力され、画像メモリ１０６Ａ〜１０６Ｄのいずれかに格納される。そして、同時に、この画素のリセットが再度行われ、時刻（４／２４０＋１／９６０００００００）＋２×（８００００／９６０００００００）秒まで電荷の蓄積（図５のＴ２２）が行われ、時刻（４／２４０＋１／９６０００００００）＋２×（８００００／９６０００００００）秒において、その画素の値として電荷に比例した値が撮像素子１０３の出力端子より出力され、画像メモリ１０６Ａ〜１０６Ｄのいずれかに格納される。同時に、この画素のリセットが再度行われ、時刻（４／２４０＋１／９６０００００００）＋３×（８００００／９６０００００００）秒まで電荷の蓄積（図５のＴ３２）が行われ、時刻（４／２４０＋１／９６０００００００）＋３×（８００００／９６０００００００）秒において、その画素の値として電荷に比例した値が１０３の出力端子より出力され、画像メモリ１０６Ａ〜１０６Ｄのいずれかに格納される。以降、同様にして、合計でＳ回、この操作が行われる。ここで、Ｓは１９９である。図５には、最後の操作での電荷の蓄積について、ＴＳ２として記してある。
【００４９】
また、時刻（４／２４０＋２／９６０００００００）秒において、ブロックＡ内の３つ目の画素（通常、位置（ｉａ＋２，ｉｂ）の画素）のリセットが行われ、時刻（４／２４０＋２／９６０００００００）＋（８００００／９６０００００００）秒まで電荷の蓄積（図５のＴ１３）が行われ、時刻（４／２４０＋２／９６０００００００）＋（８００００／９６０００００００）秒において、その画素の値として電荷に比例した値が撮像素子１０３の出力端子より出力され、画像メモリ１０６Ａ〜１０６Ｄのいずれかに格納される。そして、同時に、この画素のリセットが再度行われ、時刻（４／２４０＋２／９６０００００００）＋２×（８００００／９６０００００００）秒まで電荷の蓄積（図５のＴ２３）が行われ、時刻（４／２４０＋２／９６０００００００）＋２×（８００００／９６０００００００）秒において、その画素の値として電荷に比例した値が撮像素子１０３の出力端子より出力され、画像メモリ１０６Ａ〜１０６Ｄのいずれかに格納される。そして、同時に、この画素のリセットが再度行われ、時刻（４／２４０＋２／９６０００００００）＋３×（８００００／９６０００００００）秒まで電荷の蓄積（図５のＴ３３）が行われ、時刻（４／２４０＋２／９６０００００００）＋３×（８００００／９６０００００００）秒において、その画素の値として電荷に比例した値が撮像素子１０３の出力端子より出力され、画像メモリ１０６Ａ〜１０６Ｄのいずれかに格納される。以降、同様にして、合計でＳ回、この操作が行われる。ここで、Ｓは１９９である。図５には、最後の操作での電荷の蓄積について、ＴＳ３として記してある。
【００５０】
以下、同様に、ブロックＡ内の４００００個の画素に対して、ラスタスキャン順に、リセットされ、露光され、読み出され、画像メモリ１０６Ａ〜１０６Ｄのいずれかに格納される。
【００５１】
そして、さらに続けて、同様に、ブロックＢ内の４００００個の画素に対して、ラスタスキャン順に、リセットされ、露光され、読み出され、画像メモリ１０７Ａ〜１０７Ｄのいずれかに格納される。
【００５２】
すなわち、ブロックＡ内の画素に対しては、画像メモリ１０６Ａ〜１０６Ｄのいずれかに格納していたが、ブロックＢ内の画素に対しては、画像メモリ１０７Ａ〜１０７Ｄのいずれかに格納される。
【００５３】
そして、ブロックＢ内の最後の画素である４００００番目の画素（通常、位置（ｉｂ＋１９９，ｊｂ＋１９９）の画素）について処理が行われる。なお、この画素は、ブロックＡの最初の画素から数えてＭ番目である。ここで、Ｍは２×２００×２００＝８００００である。時刻（４／２４０＋（Ｍ−１）／９６０００００００）秒において、ブロックＢ内の４００００番目の画素（通常、位置（ｉｂ＋１９９，ｊｂ＋１９９）の画素）のリセットが行われ、時刻（４／２４０＋（Ｍ−１）／９６０００００００）＋（８００００／９６０００００００）秒まで電荷の蓄積（図５のＴ１Ｍ）が行われ、時刻（４／２４０＋（Ｍ−１）／９６０００００００）＋（８００００／９６０００００００）秒において、その画素の値として電荷に比例した値が撮像素子１０３の出力端子より出力され、画像メモリ１０７Ａ〜１０７Ｄのいずれかに格納される。そして、同時に、この画素のリセットが再度行われ、時刻（４／２４０＋（Ｍ−１）／９６０００００００）＋２×（８００００／９６０００００００）秒まで電荷の蓄積（図５のＴ２Ｍ）が行われ、時刻（４／２４０＋（Ｍ−１）／９６０００００００）＋２×（８００００／９６０００００００）秒において、その画素の値として電荷に比例した値が撮像素子１０３の出力端子より出力され、画像メモリ１０７Ａ〜１０７Ｄのいずれかに格納される。そして、同時に、この画素のリセットが再度行われ、時刻（４／２４０＋（Ｍ−１）／９６０００００００）＋３×（８００００／９６０００００００）秒まで電荷の蓄積（図５のＴ３Ｍ）が行われ、時刻（４／２４０＋（Ｍ−１）／９６０００００００）＋３×（８００００／９６０００００００）秒において、その画素の値として電荷に比例した値が撮像素子１０３の出力端子より出力され、画像メモリ１０７Ａ〜１０７Ｄのいずれかに格納される。以降、同様にして、合計でＳ回、この操作が行われる。ここで、Ｓは１９９である。図５には、最後の操作での電荷の蓄積について、ＴＳＭとして記してある。
【００５４】
ここで、ブロックＡ内とブロックＢ内にある画素の個数は合計で８００００個であり、これら画素が時間的に順番に１／９６０マイクロ秒ごとに読み出されており、さらに、各画素について１９９回の読み出しがあるので、最終的には、時刻８／２４０以前にこの全ての処理を終えることができる。つまり、情報ＡＢ読み出しモードは、時刻４／２４０秒から時刻８／２４０秒の間に行うことができる。
【００５５】
なお、ブロックＡ内の各画素について合計で１９９回のメモリへの書き込みが行われるが、画像メモリ１０６Ａ〜１０６Ｄに順番に各画素に対応した番地に書き込むことで、常に、時間的に最新の４つの値が書き込まれていることになる。ブロックＢ内の各画素についても合計で１９９回のメモリへの書き込みが行われるが、画像メモリ１０７Ａ〜１０７Ｄに順番に各画素に対応した番地に書き込むことで、常に、時間的に最新の４つの値が書き込まれていることになる。最新の４つ以外の値は上書きされるので、その値は消される。
【００５６】
なお、画像読み出しモードでは、観賞用の画像の撮影のため適正な露光時間が必要であったが、情報ＡＢ読み出しモードでは、時間的に各画素のデジタルデータの値の増減があったかどうかを知りたいだけなので露光時間が少なくて暗めの画像になっていても問題はない。事実、図４のＴ１〜ＴＮで示した露光時間よりも、図５のＴ１１〜ＴＳＭで示した各露光時間は短くなっている。
【００５７】
時刻４／２４０秒から時刻８／２４０秒の間では、さらに、画像メモリ１０６Ａ〜１０６Ｄ内に格納されているデータを読み出し、画像解析回路１０８で、以下の処理が行われる。
【００５８】
ブロックＡ内のある画素に着目すると、８００００／９６０００００００秒（すなわち、１２ｋＨｚ）ごとに画像メモリ１０６Ａ〜１０６Ｄ内の一番時間的に古い時刻に撮影されたデータが、新しいデータに更新される。各画素について、この８００００／９６０００００００秒ごとの更新の度に、差分ＤＩＦＦ＝Ｆ（ｎ）＋Ｆ（ｎ−１）−Ｆ（ｎ−２）−Ｆ（ｎ−３）を、画像解析回路１０８で計算する。ここで、Ｆ（ｎ）は現在更新されたデータ（つまり、最新のデータ）の値、Ｆ（ｎ−１）は８００００／９６０００００００秒前に更新されたデータ（つまり、古い方から数えて３番目のデータ）の値、Ｆ（ｎ−２）は２×８００００／９６０００００００秒前に更新されたデータ、つまり、古い方から数えて２番目のデータの値、Ｆ（ｎ−３）は３×８００００／９６０００００００秒前に更新されたデータ、つまり、一番古いデータの値である。これら４つのデータは、先に説明したように、画像メモリ１０６Ａ〜１０６Ｄ内にあり、画像解析回路１０８へ読み出されて差分ＤＩＦＦの計算が行われる。
【００５９】
さらに、画像解析回路１０８では、この差分ＤＩＦＦと閾値との大小関係を調べる。そして、ＤＩＦＦの値が、ある閾値以上であれば、その画素に投影された光源からの光が、この時刻において、オフ（消灯）からオン（点灯）に変化したと判断する。また、ＤＩＦＦの値が、別の閾値以下であれば、その画素に投影された光源からの光が、この時刻において、オン（点灯）からオフ（消灯）に変化したと判断する。
【００６０】
最新の２つの時刻に撮られたデータ（Ｆ（ｎ）とデータＦ（ｎ−１））を加算し、古い２つの時刻に撮られたデータ（Ｆ（ｎ−２）とデータＦ（ｎ−３））を加算することで、時間方向のノイズに対してロバスト（安定性）なものとし、これら２つのデータの引き算により、時間的変化の度合いを求めている。この変化の度合いを、閾値と比較することで、その画素の値の変化を検知することができる。もちろん、この他に時間方向の一次微分などで、その画素の値の変化を検知することができるが、それらは公知の方法であり、それら各種「値の変化の検知」方法については、ここで言及はしない。
【００６１】
このように画像解析回路１０８にて、ブロックＡ内の各画素について、８００００／９６０００００００秒（すなわち、１２ｋＨｚ）ごとに、その投影像が点滅しているか、さらに、点滅している場合には、その点滅パターンを検知することができる。
【００６２】
同様に、画像解析回路１０９にて、画像メモリ１０７Ａ〜１０７ＤからブロックＢ内の各画素を読み出すことにより、ブロックＢ内の各画素について、８００００／９６０００００００秒（すなわち、１２ｋＨｚ）ごとに、その投影像が点滅しているか、さらに、点滅している場合には、その点滅パターンを検知することができる。
【００６３】
なお、各画素について、上述したようにＳ（つまり１９９）回の撮影が行われることと、時間的に４回の撮影から差分ＤＩＦＦが計算されることより、Ｓ＋１−４（つまり１９６）回のオン／オフ変化を検知することができる。従って、この長さよりも短い点滅パターン長を発する情報源について検知することができる。また、これ以上に長い点滅パターン長を発する情報源については、情報ＡＢ読み出しモードの時間を長くすれば対処できる。
【００６４】
図３に示したように、画像読み出しモードと情報ＡＢ読み出しモードを交互に行うことで、１０５には１／３０＝８／２４０秒ごとに画像の更新が行われる。つまり、３０ｆｐｓの動画像が、リアルタイムで１０５に格納されていく。そして、１２ｋＨｚでブロックＡおよびブロックＢ内の各画素に投影された投影像の点滅パターンを画像解析回路１０８，１０９で検知することができる。
【００６５】
次に、この撮像装置１００を使用した２つの応用例を説明する。すなわち、１つ目は、画像を撮影しながら、さらに、撮影されている領域内に発光する光の点滅パターンにより、データを転送するシステムにおける撮像装置である。２つ目は、スリット光を回転ミラーで反射させることで三角測量の原理を使った、画像を撮影しながら、その被写体までの距離を求める装置における撮像装置である。
【００６６】
まず、１つ目の応用例についての説明を行う。図６のフローチャートに、その処理の流れを示す。
【００６７】
ここでは、図７に示すように、４ＫＨｚの周波数で点滅駆動することで情報を発信している複数のＬＥＤ１０Ａ〜１０Ｎを含む風景（被写体）Ａを撮像装置１００を使用して撮影しているものとする。
【００６８】
図６に示すフローチャートおいて、まず、ステップＳ１では、ブロックＡの位置を決めるための横軸座標の値（ｉａ）に０をセットする。そして、ステップＳ２に進む。
【００６９】
ステップＳ２では、ブロックＡの位置を決めるための縦軸座標の値（ｊａ）に０をセットする。そして、ステップＳ３に進む。
【００７０】
ステップＳ３では、図４を用いて説明した画像読み出しモードにて、撮影を行い、撮影された画像を画像メモリ１０５に格納する。ステップＳ３に要する時間は、４／２４０秒である。そして、ステップＳ４に進む。
【００７１】
ステップＳ４では、ブロックＡの位置を決定する。すなわち、ブロックＡは、「左上の画素の位置を（ｉａ，ｊａ）とする２００×２００画素のブロック」であるという情報を、レジスタ１１０Ａに格納させる。そして、ステップＳ５に進む。
【００７２】
ステップＳ５では、ブロックＢの位置を決めるための横軸座標の値（ｉｂ）にｉａ＋１５０をセットし、縦軸座標の値（ｊｂ）にｊａの値をセットする。そして、ステップＳ６に進む。
【００７３】
ステップＳ６では、ブロックＢの位置を決定する。すなわち、ブロックＢは、「左上の画素の位置を（ｉｂ，ｊｂ）とする２００×２００画素のブロック」であるという情報を、レジスタ１１０Ａに格納させる。そして、ステップＳ７に進む。
【００７４】
ステップＳ７では、図５を用いて説明した情報ＡＢ読み出しモードにて、撮影を行う。すなわち、画像解析回路１０８でブロックＡ内に投影されているＬＥＤの有無と、もし有れば、ブロックＡ内でのＬＥＤの位置（ｔｍｐＩＡ，ｔｍｐＪＡ）と、その点滅パターンを求める。「ＬＥＤの有無」、「ブロックＡ内でのＬＥＤの位置」、「点滅パターン」は、制御回路１１１に送られる。同時に、画像解析回路１０９でブロックＢ内に投影されているＬＥＤの有無と、もし有れば、ブロックＢ内でのＬＥＤの位置（ｔｍｐＩＢ，ｔｍｐＪＢ）と、その点滅パターンを求める。「ＬＥＤの有無」、「ブロックＢ内でのＬＥＤの位置」、「点滅パターン」は、制御回路１１１に送られる。ステップＳ７に要する時間は、４／２４０秒である。そして、ステップＳ８に進む。
【００７５】
ステップＳ８〜ステップＳ１１では、別のブロックについての処理を行うための操作が行われる。すなわち、ステップＳ８で、ｉａの値が１５００未満であるかを判断し、真であれば、横軸方向に１段ずらすために、ステップＳ９にて、ｉａの値を３００だけインクリメントしてステップＳ３に戻る。偽であれば、縦軸方向に一段ずらすために、ステップＳ１０に進む。ステップＳ１０では、ｊａの値が１８００未満であるかを判断し、真であれば、縦軸方向に１段ずらすために、ステップＳ１１にて、ｊａの値を１５０だけインクリメントしてステップＳ２に戻る。偽であれば、ステップＳ１２に進む。なお、ステップＳ８の判定から分かるように、一番右端の部分にブロックを設定して探索を行ってはいない。これは、ユーザーが明示的に情報を取得しようとしてＬＥＤに向けて撮影を行っているわけであり、一番はじにはＬＥＤの投影像がないと仮定しているからである。
【００７６】
ステップＳ１２では、ステップＳ７において求まった「各ブロックの位置におけるＬＥＤの有無」より、どの位置にブロックを設定したときにＬＥＤが有ったかを判定する。ここでは、ＬＥＤは２つ有ったとして話を進めていく。３つ以上の場合については、後述する。ＬＥＤが有ったと判定された時の２つのブロックの位置の左上を（ｔｍｐＩ１，ｔｍｐＪ１）と（ｔｍｐＩ２，ｔｍｐＪ２）とする。また、「そのブロック内でのＬＥＤの位置（ｔｍｐＩＡ，ｔｍｐＪＡ）あるいは（ｔｍｐＩＢ，ｔｍｐＪＢ）」もステップＳ７において求まっているので、この値を使用して、撮像素子における２つのＬＥＤの位置を求める。つまり、（ｔｍｐＩ１＋ｔｍｐＩ＊，ｔｍｐＪ１＋ｔｍｐＪ＊）あるいは（ｔｍｐＩ２＋ｔｍｐＩ＊，ｔｍｐＪ２＋ｔｍｐＪ＊）を計算する。ここで添え字“＊”は、ＡあるいはＢである。そこで、これら位置を中心とするブロックをブロックＡとブロックＢとする。具体的には、ブロックＡは「左上の画素の位置を（ｔｍｐＩ１＋ｔｍｐＩ＊−１００，ｔｍｐＪ１＋ｔｍｐＪ＊−１００）とする２００×２００画素のブロック」であるという情報をレジスタ１１０Ａに格納させる。そして、ブロックＢは「左上の画素の位置を（ｔｍｐＩ２＋ｔｍｐＩ＊−１００，ｔｍｐＪ２＋ｔｍｐＪ＊−１００）とする２００×２００画素のブロック」であるという情報をレジスタ１１０Ａに格納させる。これらの処理は、制御回路１１１内で行われる。そして、ステップＳ１３に進む。
【００７７】
ここで、ステップＳ１３以降の説明を行う前に、ステップＳ１〜ステップＳ１２までの補足説明をしておく。最初に撮像装置を使って撮影しても、どの方向（即ち、どの画素）に情報を発信しているＬＥＤがあるか不明である。そこで、４００万画素（２０００×２０００画素）のすべての位置にブロックを設定して、そのブロック内で発光パターンを検知できるか調べる必要がある。それが、ステップＳ１〜ステップＳ１１である。そして、求まったＬＥＤの投影像の位置を中心とするようにブロックＡとブロックＢを指定しているのが、ステップＳ１２である。
【００７８】
また、ステップＳ５、ステップＳ９、ステップＳ１１から分かるように、次々と探索していくブロックは５０画素ずつの交わり部分がある（図８参照）。図８において、領域Ａ０は撮像素子全体（２０００×２０００画素）を示している。例えば、ブロックＡとして図８に示す領域Ａ１が設定されているときには、ブロックＢとして領域Ａ２が設定される。さらに、縦方向に一段ずらして計算するときには、ブロックＡとして領域Ａ３が設定され、ブロックＢとして領域Ａ４が設定される。図８に示すように各ブロックには５０画素ずつの重なり部分がある。これは、ＬＥＤの検出をする際に、ブロックの一番はじにＬＥＤが投影されていると判定ミスを起こす可能性があるので、それを避けるためである。つまり、位置Ｐ０にＬＥＤが投影されていたとすると、領域Ａ１のブロック内での判定では、ＬＥＤを検出できない可能性もあるが、この場合、領域Ａ２のブロック内での判定で、見つけることができる。
【００７９】
さて、このようにステップＳ１２までの処理で、２つのＬＥＤの投影像の位置が判明するので、その投影像を中心とする２つのブロックの位置情報がレジスタ１１０Ａに設定される。
【００８０】
ステップＳ１３では、図４を用いて説明した画像読み出しモードにて、撮影を行い、撮影された画像を画像メモリ１０５に格納する。ステップＳ１３に要する時間は、４／２４０秒である。そして、ステップＳ１４に進む。
【００８１】
ステップＳ１４では、図５を用いて説明した情報ＡＢ読み出しモードにて、撮影を行う。即ち、画像解析回路１０８でブロックＡ内に投影されているＬＥＤの有無と、もし有れば、ブロックＡ内でのＬＥＤの位置（ｔｍｐＩＡ，ｔｍｐＪＡ）と、その点滅パターンを求める。「ＬＥＤの有無」、「ブロックＡ内でのＬＥＤの位置」、「点滅パターン」は、制御回路１１１に送られる。同時に、画像解析回路１０９でブロックＢ内に投影されているＬＥＤの有無と、もし有れば、ブロックＢ内でのＬＥＤの位置（ｔｍｐＩＢ，ｔｍｐＪＢ）と、その点滅パターンを求める。「ＬＥＤの有無」、「ブロックＢ内でのＬＥＤの位置」、「点滅パターン」は、制御回路１１１に送られる。ステップＳ７に要する時間は、４／２４０秒である。そして、ステップＳ１５に進む。
【００８２】
ステップＳ１５では、ブロックＡの更新を行う。即ち、（ｔｍｐＩＡ，ｔｍｐＪＡ）の値をチェックして、この値が（１００，１００）であれば、ブロックＡの中心にＬＥＤの投影像が来ているので更新を行わない。しかし、それ以外の値の場合には、ブロックＡの中心にＬＥＤの投影像がないので、このままでは、時間とともに、ＬＥＤの投影像がブロックＡの範囲外に行ってしまうことが考えられる。そこで、ブロックＡは「左上の画素の位置を（ｔｍｐＩ１＋ｔｍｐＩＡ−１００，ｔｍｐＪ１＋ｔｍｐＪＡ−１００）とする２００×２００画素のブロック」であるという情報をレジスタ１１０Ａに格納させ、ブロックＡの位置情報の更新を行う。これにより、次の撮影においては、ＬＥＤの投影像はブロックＡの中心近辺となる。そして、ステップＳ１６に進む。
【００８３】
ステップＳ１６では、同様にブロックＢの更新を行う。すなわち、ブロックＢは「左上の画素の位置を（ｔｍｐＩ２＋ｔｍｐＩＢ−１００，ｔｍｐＪ２＋ｔｍｐＪＢ−１００）とする２００×２００画素のブロック」であるという情報をレジスタ１１０Ａに格納させ、ブロックＢの位置情報の更新を行う。そして、ステップＳ１７に進む。
【００８４】
図９には、２つのＬＥＤの投影像の位置Ｐ１，Ｐ２と、ステップＳ１５、ステップＳ１６で更新されたブロックＡの領域Ａ５とブロックＢの領域Ａ６）が示されている。この図９においてＡ０は撮像素子全体（２０００×２０００画素）を示している。
【００８５】
ステップＳ１７では、ユーザーからの「終了するかどうか」の要求を受付け、終了したければ、この一連の処理を終了し、終了したくなければ、ステップＳ１３に戻り、一連の処理を続行する。
【００８６】
なお、当然、ステップＳ１４において、ＬＥＤの有無を調べたときに、無いと判定されれば、それは、今まで撮影していたＬＥＤの投影像の位置を見失ったか、あるいは、そのＬＥＤ自体が情報の発信を中止してしまったかが考えられるので、図６に示す処理を強制終了させて、再度、ステップＳ１から処理をやり直す必要がある。また、見失った場合には、見失った位置の近傍にブロックを設定して探索すれば、撮像素子すべての位置における探索を行わなくても、短時間で探索できる。
【００８７】
また、以下のようにして見失ったＬＥＤの投影像の位置を迅速に見つけ出すこともできる。見失ったブロックがブロックＡの場合について述べる。見失う直前における画像読み出しモードで撮影した画像から、「左上の画素の位置を（ｔｍｐＩ１＋ｔｍｐＩＡ−１００，ｔｍｐＪ１＋ｔｍｐＪＡ−１００）とする２００×２００画素のブロック」を切り出す。次に、見失った直後における画像読み出しモードで撮影した画像の中で、先に切り出したブロック部分と同じ部分を探し出す。具体的には、ブロック内の対応する画素の差分絶対値和が最小となる位置を求めるというブロックマッチング法を行えばよい。これにより、求まった位置がＬＥＤの投影像を中心とするブロックであるので、この部分をブロックＡとすれば良い。このように、画像間の相関を利用したブロックマッチング法で、撮像素子内のＬＥＤの投影像を含む部分が、どちらに移動したかを求めることができ、見失ったＬＥＤの投影像の位置を求めることができる。ブロックＢを見失った場合も同様である。
【００８８】
さて、このようにして、図３に示したように画像読み出しモードと情報ＡＢ読み出しモードが交互に行われ、画像メモリ１０５には１／３０＝８／２４０秒ごとに画像の更新が行われる。つまり、３０ｆｐｓの動画像が、リアルタイムで画像メモリ１０５に格納されていく。そして、１２ｋＨｚでブロックＡ及びブロックＢ内の各画素に投影された投影像の点滅パターンを画像解析回路１０８，１０９で検知することができる。この結果は、表示を行いながらユーザーに情報を提供することができる。すなわち、画像メモリ１０５の画像（２０００×２０００画素）を３０ｆｐｓで図示しない表示デバイスにて表示して、さらに、その表示画像上の位置（ｔｍｐＩ１＋ｔｍｐＩＡ，ｔｍｐＪ１＋ｔｍｐＪＡ）及び（ｔｍｐＩ２＋ｔｍｐＩＢ，ｔｍｐＪ２＋ｔｍｐＪＢ）にＬＥＤから発信されている情報をオーバーレイすることで、ユーザーに分かりやすい形式で画像と情報を伝えることができる。
【００８９】
なお、ステップＳ１からステップＳ１２までの処理を行っている時は、まだＬＥＤの投影像を確定させていないので、表示デバイスには画像メモリ１０５の画像のみが３０ｆｐｓで表示されるだけである。
【００９０】
ここで、幾つかの変形例について説明する。
【００９１】
１つ目の変形例は、動画像を３０ｆｐｓで表示する必要はないが、その代わりに、頻繁にＬＥＤの発光パターンを検知したい場合である。この場合には、図１０に示すような動作を行えば良い。すなわち、０秒から４／２４０秒の間は、画像読み出しモードにて撮影を行う。そして、４／２４０秒から８／２４０秒の間は、情報ＡＢ読み出しモードにて撮影を行う。さらに、８／２４０秒から１２／２４０秒の間も、情報ＡＢ読み出しモードにて撮影を行う。さらに、１２／２４０秒から１６／２４０秒の間も、情報ＡＢ読み出しモードにて撮影を行う。そして、１６／２４０秒から２０／２４０秒の間は、情画像読み出しモードにて撮影を行う。以降、図１０に示すように、１回の画像読み出しモードと３回の情報ＡＢ読み出しモードの繰り返しを行う。これにより、撮像素子１０３全体を使って撮影された画像は１５ｆｐｓの動画像となり、画像メモリ１０５を介して、図示しない表示デバイスにて１５ｆｐｓで表示される。情報に関しては、図３に示した動作に比べて、時間的に１．５倍密に検知を行うことができる。
【００９２】
２つ目の変形例は、４つのＬＥＤが情報を発信している場合である。この場合、図６のステップＳ１２までの処理で、４つのＬＥＤの投影像が検知される。この場合には、例えば、図１１に示すようにブロックのサイズを１／２に縮小することで、全ブロック内にある総画素数の数を８００００に抑えることができる。この場合、ブロックＡ内の画素についての撮像素子１０３からの読み出しは、領域Ａ５１内と領域Ａ５２内の画素についての読み出しとして、「ブロックＡ内の画素についての発光パターンの検知」の変わりに「領域Ａ５１に示すブロック内の画素についての発光パターンの検知」と「領域Ａ５２に示すブロック内の画素についての発光パターンの検知」を画像解析回路１０８で行えばよい。画像解析回路１０８では、図１１の位置Ｐ１，Ｐ２において２つのＬＥＤの発光パターンを検知する。同様に、ブロックＢ内の画素についての撮像素子１０３からの読み出しは、領域Ａ６１内と領域Ａ６２内の画素についての読み出しとして、「ブロックＢ内の画素についての発光パターンの検知」の変わりに「領域Ａ６１に示すブロック内の画素についての発光パターンの検知」と「領域Ａ６２に示すブロック内の画素についての発光パターンの検知」を画像解析回路１０９で行えばよい。画像解析回路１０９では、図１１の位置Ｐ３，Ｐ４において２つのＬＥＤの発光パターンを検知する。
【００９３】
４つのＬＥＤが情報を発信している場合、あるいは、図１２と図１３に示す動作を行っても良い。すなわち、図１２に示すように、４つのＬＥＤの投影像の位置Ｐ１，Ｐ２，Ｐ３，Ｐ４を中心とするブロックＡの領域Ａ５、ブロックＢの領域Ａ６、ブロックＣの領域Ａ７、ブロックＤの領域Ａ８を設定する。いずれのブロックの大きさも２００×２００画素である。そして、図１３に示すように、画像読み出しモードと、情報ＡＢ読み出しモードと、画像読み出しモードと、情報ＣＤ読み出しモードを繰り返す。ここで、画像読み出しモードは、図４を用いて今までに説明した動作と同じである。そして、情報ＡＢ読み出しモードも、図５を用いて今まで説明したブロックＡとブロックＢ内の検出の動作と同じである。情報ＣＤ読み出しモードは、図５を用いて今まで説明したブロックＡをブロックＣと思い、ブロックＢをブロックＤと思い、その２つのブロック内の検出を行うものである。これにより、ブロックＡ、ブロックＢ、ブロックＣ、および、ブロックＤ内のＬＥＤの発光パターンの検出は、１６／２４０秒に１回、つまり、１５ｆｐｓとなり、発光パターンのアップデートには時間がかかるが、４つのＬＥＤの発光パターンを検出できる。ちなみに、図３の動作では、ブロックＡとブロックＢ内のＬＥＤの発光パターンの検出は、８／２４０秒に１回、つまり、３０ｆｐｓであった。
【００９４】
なお、上述の例では、通常の画像を撮影（４００万画素全部を使って撮影）するモード（画像読み出しモード）と、２箇所の２００×２００画素を使って情報を取得するモード（情報ＡＢ読み出しモード）の２つが、時間的に交互に繰り返されるとして説明した。しかしながら、例えば、画像は、最初の１枚だけ静止画として撮影して、それ以外の画像が不要な場合には、当然、最初の時刻において、４００万画素全部を使って撮影した後は、常に、２箇所の２００×２００画素を使って情報を取得するモード（情報ＡＢ読み出しモード）で、装置を動作させれば良い。また、さらに、画像自体が不要な場合には、最初から最後まで常に２箇所の２００×２００画素を使って情報を取得するモード（情報ＡＢ読み出しモード）で、装置を動作させれば良い。
【００９５】
また、さらに、画像自体が不要な場合には、最初から最後まで常に２箇所の２００×２００画素を使って情報を取得するモード（情報ＡＢ読み出しモード）で装置を動作させておき、ＬＥＤの投影像の位置を見失ったときのみ、画像読み出しモードにして、画像全体を読み出し、画像メモリ１０６Ａ〜１０６Ｄあるいは画像メモリ１０７Ａ〜１０７Ｄ内にある見失う直前の２００×２００画素のブロックとブロックマッチング法により、再度、見失ったＬＥＤの投影像を検出するようにして、見失った後のブロックＡあるいはブロックＢの設定をする際にこのブロックマッチング法で見つけた部分を採用しても良い。
【００９６】
また、ステップＳ１５とステップＳ１６での更新のために、ＬＥＤの投影像をトラッキングしていき、常に２００×２００画素の中心になるように、読み出すべき２００×２００画素を、４００万画素の撮像素子１０３の中からリアルタイムで決定していると述べたが、投影像をトラッキングする代わりに、撮像装置１００内に設けた図示しないジャイロセンサを使って、撮像装置１００の移動量を検出して、それを補正しながら２００×２００画素の位置を決定して、その部分を読み出していけば、常に、点滅パターンは２００×２００画素の中心に来るようになる。つまり、画像処理により、投影像をトラッキングしていかなくても、ジャイロセンサを用いても良い。このようにして、手持ちで撮影している場合の手ブレによるＬＥＤ投影像の画面上でのふらつきを補正することができる。
【００９７】
次に、２つ目の応用例についての説明を行う。図１４のフローチャートに、その処理の流れを示す。
【００９８】
ここで、前提として、例えば図１５に示すように、光源５１から出射されるスリット光を回転ミラー５２で反射させて撮像領域Ａを走査する光学走査装置５０と組み合わせて三角測量の原理を使い、撮像装置１００で画像を撮影しながら、その被写体までの距離を求めるものとする。
【００９９】
図１４において、まず、ステップＳ１０１では、ブロックＡの位置を決めるための横軸座標の値（ｉａ）に０をセットする。そして、ステップＳ１０２に進む。
【０１００】
ステップＳ１０２で、ブロックＡの位置を決めるための縦軸座標の値（ｊａ）に０をセットする。そして、ステップＳ１０３に進む。
【０１０１】
ステップＳ１０３では、図４を用いて説明した画像読み出しモードにて、撮影を行い、画像メモリ１０５に撮影された画像を格納する。ステップＳ１０３に要する時間は、４／２４０秒である。そして、ステップＳ１０４に進む。
【０１０２】
ステップＳ１０４では、ブロックＡの位置を決定する。即ち、ブロックＡは、「左上の画素の位置を（ｉａ，ｊａ）とする２００×２００画素のブロック」であるという情報をレジスタ１１０Ａに格納させる。そして、ステップＳ１０５に進む。
【０１０３】
ステップＳ１０５では、ブロックＢの位置を決めるための横軸座標の値（ｉｂ）にｉａ＋１５０をセットし、縦軸座標の値（ｊｂ）にｊａの値をセットする。そして、ステップＳ１０６に進む。
【０１０４】
ステップＳ１０６では、ブロックＢの位置を決定する。即ち、ブロックＢは、「左上の画素の位置を（ｉｂ，ｊｂ）とする２００×２００画素のブロック」であるという情報をレジスタ１１０Ａに格納させる。そして、ステップＳ１０７に進む。
【０１０５】
ステップＳ１０７では、図５を用いて説明した情報ＡＢ読み出しモードにて、撮影を行う。すなわち、画像解析回路１０８でブロックＡ内の各画素に対して、時間とともに変化する光量を調べ、すなわち、スリット光が通過したタイミング（時刻）を調べ、ブロックＡ内の各画素における距離情報を取得する。同時に、画像解析回路１０９でブロックＢ内の各画素に対して、時間とともに変化する光量を調べ、すなわち、スリット光が通過したタイミング（時刻）を調べ、ブロックＢ内の各画素における距離情報を取得する。なお、スリット光が通過したタイミングから距離情報を計算する方法に関しては、従来から知られている方法を採用することができ、その詳細説明を割愛する。
【０１０６】
ステップＳ１０８〜ステップＳ１１１では、別のブロックについての処理を行うための操作が行われる。即ち、ステップＳ１０８で、ｉａの値が１５００未満であるかを判断し、真であれば、横軸方向に１段ずらすために、ステップＳ１０９にて、ｉａの値を３００だけインクリメントしてステップＳ１０３に戻る。偽であれば、縦軸方向に一段ずらすために、ステップＳ１１０に進む。ステップＳ１１０では、ｊａの値が１８００未満であるかを判断し、真であれば、縦軸方向に１段ずらすために、ステップＳ１１１にて、ｊａの値を１５０だけインクリメントしてステップＳ１０２に戻る。偽であれば、ステップＳ１１２に進む。
【０１０７】
ステップＳ１１２では、ユーザーからの「終了するかどうか」の要求を受付け、終了したければ、この一連の処理を終了し、終了したくなければ、ステップＳ１０１に戻り、一連の処理を続行する。
【０１０８】
このように、画像全体のすべての画素について一度に距離情報を求めるのではなく、ブロックに分割して、各ブロック内の画素について距離情報を求めるようにしている。これにより、各画素に着目すると、画像撮影モードにより更新される画像データは３０ｆｐｓであるが、距離情報の更新は、自分を含んでいるブロックがブロックＡあるいはブロックＢとして処理されるときだけなので、３０ｆｐｓよりかなり遅くなるが、これは仕方のない事である。
【０１０９】
また、上述の例では、自動で２００×２００画素の位置を変更（光点滅パターンの検出時には、その投影像をトラッキングしていき、常に２００×２００画素の中心になるように、読み出すべき２００×２００画素を、４００万画素の撮像素子の中からリアルタイムで決定している。スリット光による３次元計測においては、左上から順番に自動で変更していき、すべての箇所において３次元計測を行う。）しているが、この装置を操作するユーザーが明示的に指定するようにしても良い。例えば、複数の光点滅パターンを撮影しているが、ユーザーが特定の光源（情報源）の情報のみを欲しているときなどは、その情報源（点滅パターン）が投影されている部分のみをユーザーが指定することにする。これにより、その部分についてのみ、２００×２００画素を使って情報を取得するモードで動作させることで、その点滅パターンのみを取得し、他の点滅パターンを取得することがなくなる。つまり、不要な情報源からの情報をシャットアウトすることができる。また、３次元計測を行いたい物体が投影されている部分をユーザーが指定すれば、その部分についてのみ、２００×２００画素を使って情報を取得するモードで動作させることで、その部分のみの３次元計測を行うことができる。
【０１１０】
上記情報源は、１つあるいは複数が密に並べられた点光源とし、該点光源のそれぞれが時間とともにオン／オフすることで、二進数の情報を伝えるものとすることができる。
【０１１１】
また、上述の例では、画像読み出しモードにおいては、４００万画素を全部読み出し、図示しない表示デバイスに表示すると説明したが、解像度が必要のない場合には、４００万画素の画像を縮小して、たとえば６００×６００画素程度の画像にして、表示デバイスに表示しても良い。
【０１１２】
また、上述の例では、特定の画素数、特定の動作周波数について述べていたが、上記以外のスペックの装置でも適用できることは言うまでもない。
【図面の簡単な説明】
【０１１３】
【図１】本発明に係る撮像装置の構成例を示すブロック図である。
【図２】本発明に係る撮像装置の他の構成例を示すブロック図である。
【図３】本発明に係る撮像装置の動作を説明するための図である。
【図４】本発明に係る撮像装置の動作を詳細に説明するための図である。
【図５】本発明に係る撮像装置の動作を詳細に説明するための図である。
【図６】本発明に係る撮像装置により実行される処理の手順を示すフローチャートである。
【図７】本発明に係る撮像装置の使用状態の一例を模式的に示す図である。
【図８】本発明に係る撮像装置の動作を説明するための図である。
【図９】本発明に係る撮像装置の動作を説明するための図である。
【図１０】本発明に係る撮像装置の動作を説明するための図である。
【図１１】本発明に係る撮像装置の動作を説明するための図である。
【図１２】本発明に係る撮像装置の動作を説明するための図である。
【図１３】本発明に係る撮像装置の動作を説明するための図である。
【図１４】本発明に係る撮像装置により実行される処理の手順を示すフローチャートである。
【図１５】本発明に係る撮像装置と組み合わされる光学走査装置の原理的な構成を示す図である。
【符号の説明】
【０１１４】
１０Ａ〜１０Ｎ  ＬＥＤ、１００，２００  撮像装置、１０１  レンズ、１０２  絞り、１０３  撮像素子、１０４  カメラ信号処理回路、１０５，１０６Ａ〜１０６Ｄ，１０７Ａ〜１０７Ｄ，２０１  画像メモリ、１０８，１０９  画像解析回路、１１０  タイミングジェネレータ、１１０Ａ  レジスタ、１１１  制御回路、２０２  ＤＳＰ
【図１】
0004654610.tif 000002
【図２】
0004654610.tif 000003
【図３】
0004654610.tif 000004
【図４】
0004654610.tif 000005
【図５】
0004654610.tif 000006
【図６】
0004654610.tif 000007
【図７】
0004654610.tif 000008
【図８】
0004654610.tif 000009
【図９】
0004654610.tif 000010
【図１０】
0004654610.tif 000011
【図１１】
0004654610.tif 000012
【図１２】
0004654610.tif 000013
【図１３】
0004654610.tif 000014
【図１４】
0004654610.tif 000015
【図１５】
0004654610.tif 000016