(57)【特許請求の範囲】
【請求項１】
所定の点滅パターンで発光する送信装置により発光される光の信号を受光する受光手段と、
前記受光手段により受光された光の受光量、または、受光量の微分値からなる信号のうち、注目画素、および、前記注目画素の周辺の画素の複数の信号を記憶する記憶手段と、
前記記憶手段に記憶された、前記複数の信号のうちのいずれか１の信号を、前記注目画素において受光された信号としてデコードするデコード手段と、
前記注目画素、または、前記注目画素の周辺の画素の全体で前記送信装置により発光された光の信号を受光した受光時間に対する、前記注目画素、または、前記注目画素の周辺の画素のうちの、前記送信装置により発光された光の信号を一部でも受光した画素の、信号を受光していた受光時間の重みを算出する重み算出手段と、
前記重み算出手段により算出された重みを用いて、前記信号を受光したものとみなされた画素の位置を計測する位置計測手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記位置計測手段は、フレーム毎の前記注目画素、および、前記注目画素の周辺の画素の、それぞれの画素で受光する受光量の変化した回数をカウントすることによって、前記信号を受光したものとみなされた画素の位置を計測する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
所定の点滅パターンで発光する送信装置により発光される光の受光量、または、受光量の微分値からなる信号のうち、注目画素、および、前記注目画素の周辺の画素の複数の信号のうちのいずれか１の信号を、前記注目画素において受光された信号としてデコードするデコードステップと、
前記注目画素、または、前記注目画素の周辺の画素の全体で前記送信装置により発光された光の信号を受光した受光時間に対する、前記注目画素、または、前記注目画素の周辺の画素のうちの、前記送信装置により発光された光の信号を一部でも受光した画素の、信号を受光していた受光時間の重みを算出する重み算出ステップと、
前記重み算出ステップの処理により算出された重みを用いて、前記信号を受光したものとみなされた画素の位置を計測する位置計測ステップと
を含むことを特徴とする情報処理方法。
【請求項４】
所定の点滅パターンで発光する送信装置により発光される光の受光量、または、受光量の微分値からなる信号のうち、注目画素、および、前記注目画素の周辺の画素の複数の信号のうちのいずれか１の信号を、前記注目画素において受光された信号としてデコードするデコードステップと、
前記注目画素、または、前記注目画素の周辺の画素の全体で前記送信装置により発光された光の信号を受光した受光時間に対する、前記注目画素、または、前記注目画素の周辺の画素のうちの、前記送信装置により発光された光の信号を一部でも受光した画素の、信号を受光していた受光時間の重みを算出する重み算出ステップと、
前記重み算出ステップの処理により算出された重みを用いて、前記信号を受光したものとみなされた画素の位置を計測する位置計測ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項５】
所定の点滅パターンで発光する送信装置により発光される光の受光量、または、受光量の微分値からなる信号のうち、注目画素、および、前記注目画素の周辺の画素の複数の信号のうちのいずれか１の信号を、前記注目画素において受光された信号としてデコードするデコードステップと、
前記注目画素、または、前記注目画素の周辺の画素の全体で前記送信装置により発光された光の信号を受光した受光時間に対する、前記注目画素、または、前記注目画素の周辺の画素のうちの、前記送信装置により発光された光の信号を一部でも受光した画素の、信号を受光していた受光時間の重みを算出する重み算出ステップと、
前記重み算出ステップの処理により算出された重みを用いて、前記信号を受光したものとみなされた画素の位置を計測する位置計測ステップと
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置および方法、記録媒体、並びにプログラムに関し、特に、光ビーコンとID認識カメラを利用したデータの通信における、通信精度を向上できるようにした情報処理装置および方法、記録媒体、並びにプログラムに関する。
【０００２】
【従来の技術】
所定の点滅パターンで光を発することにより信号を送信する送信装置と、その送信装置により発せられる光の点滅パターンを撮像し、撮像された点滅パターンに基づいて、データ通信を実現する送受信システムが存在する。
【０００３】
例えば、撮像装置として、ID（Identifier）認識カメラが、画像を撮像すると共に、上述したような送信装置として機能する光ビーコンにより発せられる信号に基づいてIDデータを送受信可能なシステムがある（例えば、特許文献１参照）。
【０００４】
【特許文献１】
特願２００１−３２５３５６
【０００５】
【発明が解決しようとする課題】
しかしながら、上述のシステムにおいては、外乱光による干渉が生じると、ID認識カメラは、光の点滅パターンを正しく読み取ることができず、正しくデータを受信することができない状態となってしまうため、結果としてエラーが生じてしまうという課題があった。
【０００６】
また、上述のシステムにおいては、送信データは点滅パターン、すなわち時間方向の光のパターンで表現されることになるために、各画素毎にデータが受信されてデコードされると、データ受信中に送信装置と受信装置間の相対的な位置関係に変化が生じた場合、データの受信途中で、光が受光される画素が、隣接位置に存在する画素へと移動してしまうので、画素単位で受光されるパターンが変化してしまい、正しくデータを受信できないという課題があった。
【０００７】
また、このような現象は、送信データのデータ長が短ければ、その影響は小さいが、データ長が長くなるにしたがって影響が大きくなるため、大きなデータほどエラーが生じやすくなると言う課題があった。
【０００８】
さらに、点滅パターンにより表現される信号の受光面積が大きい場合、その影響は小さいが、光ビーコンで光を発光させる部分の面積が小さかったり、また、光ビーコンとID認識カメラとの距離が離れてしまうと、相対的に受光面積が小さくなってしまうため、結果的に、その影響が大きくなり、データの受信途中でデータが途切れやすくなってしまうという課題があった。
【０００９】
これらの課題に対応するため、受信したデータの位置の算出は、同じデータを受信した複数の画素の座標から重心を求めたり、外接四角形を求めたりという手法を用いることにより、受光される画素の位置の変化に対応できるようにしてきたが、これらの手法では、データを途中まで受信した画素があったとき、その途中まで信号を受信していた画素の情報は使用できない状態になってしまうため、算出される位置の精度の向上は困難なものであった。
【００１０】
本発明はこのような状況に鑑みてなされたものであり、データ伝送効率の高い符号化としてマンチェスタ符号化を採用し、さらに環境光などの外乱により生じてしまうエラーを検出すると共に、受信データのデコードを各画素毎に行うときに、周辺の画素の情報をも用いることで、データ受信中に送信装置と受信装置の間で相対的に位置関係の変化が生じても、通信状態を安定させ、データを一部分でも受信した画素の情報をも用いるようにすることで、より高精度なデータの通信を可能にするものである。
【００１１】
【課題を解決するための手段】
本発明の情報処理装置は、所定の点滅パターンで発光する送信装置により発光される光の受光量、または、受光量の微分値からなる信号を受光する受光手段と、受光手段により受光された光の信号のうち、注目画素、および、注目画素の周辺の画素の複数の信号を記憶する記憶手段と、記憶手段に記憶された、複数の信号のうちのいずれか１の信号を、注目画素において受光された信号としてデコードするデコード手段と、注目画素、または、注目画素の周辺の画素の全体で送信装置により発光された光の信号を受光した受光時間に対する、注目画素、または、注目画素の周辺の画素のうちの、送信装置により発光された光の信号を一部でも受光した画素の、信号を受光していた受光時間の重みを算出する重み算出手段と、重み算出手段により算出された重みを用いて、信号を受光したものとみなされた画素の位置を計測する位置計測手段とを備えることを特徴とする。
【００１４】
前記位置計測手段には、フレーム毎の注目画素、および、注目画素の周辺の画素の、それぞれの画素で受光する受光量の変化した回数をカウントすることによって、信号を受光したものとみなされた画素の位置を計測させるようにすることができる。
【００１５】
本発明の情報処理方法は、所定の点滅パターンで発光する送信装置により発光される光の受光量、または、受光量の微分値からなる信号のうち、注目画素、および、注目画素の周辺の画素の複数の信号のうちのいずれか１の信号を、注目画素において受光された信号としてデコードするデコードステップと、注目画素、または、注目画素の周辺の画素の全体で送信装置により発光された光の信号を受光した受光時間に対する、注目画素、または、注目画素の周辺の画素のうちの、送信装置により発光された光の信号を一部でも受光した画素の、信号を受光していた受光時間の重みを算出する重み算出ステップと、重み算出ステップの処理により算出された重みを用いて、信号を受光したものとみなされた画素の位置を計測する位置計測ステップとを含むことを特徴とする。
【００１６】
本発明の記録媒体のプログラムは、所定の点滅パターンで発光する送信装置により発光される光の受光量、または、受光量の微分値からなる信号のうち、注目画素、および、注目画素の周辺の画素の複数の信号のうちのいずれか１の信号を、注目画素において受光された信号としてデコードするデコードステップと、注目画素、または、注目画素の周辺の画素の全体で送信装置により発光された光の信号を受光した受光時間に対する、注目画素、または、注目画素の周辺の画素のうちの、送信装置により発光された光の信号を一部でも受光した画素の、信号を受光していた受光時間の重みを算出する重み算出ステップと、重み算出ステップの処理により算出された重みを用いて、信号を受光したものとみなされた画素の位置を計測する位置計測ステップとを含むことを特徴とする。
【００１７】
本発明のプログラムは、所定の点滅パターンで発光する送信装置により発光される光の受光量、または、受光量の微分値からなる信号のうち、注目画素、および、注目画素の周辺の画素の複数の信号のうちのいずれか１の信号を、注目画素において受光された信号としてデコードするデコードステップと、注目画素、または、注目画素の周辺の画素の全体で送信装置により発光された光の信号を受光した受光時間に対する、注目画素、または、注目画素の周辺の画素のうちの、送信装置により発光された光の信号を一部でも受光した画素の、信号を受光していた受光時間の重みを算出する重み算出ステップと、重み算出ステップの処理により算出された重みを用いて、信号を受光したものとみなされた画素の位置を計測する位置計測ステップとをコンピュータに実行させることを特徴とするプログラム。
【００１８】
本発明の情報処理装置および方法、並びにプログラムにおいては、所定の点滅パターンで発光する送信装置により発光される光の受光量、または、受光量の微分値からなる信号が受光され、受光された光の信号のうち、注目画素、および、注目画素の周辺の画素の複数の信号が記憶され、記憶された、複数の信号のうちのいずれか１の信号が、注目画素において受光された信号としてデコードされ、注目画素、または、注目画素の周辺の画素の全体で送信装置により発光された光の信号を受光した受光時間に対する、注目画素、または、注目画素の周辺の画素のうちの、送信装置により発光された光の信号を一部でも受光した画素の、信号を受光していた受光時間の重みが算出され、算出された重みを用いて、信号を受光したものとみなされた画素の位置が計測される。
【００１９】
本発明の情報処理装置は、独立した装置であっても良いし、情報処理を行うブロックであっても良い。
【００２０】
【発明の実施の形態】
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００２１】
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
【００２２】
即ち、本発明の情報処理装置は、所定の点滅パターンで発光する送信装置により発光される光の受光量、または、受光量の微分値からなる信号を受光する受光手段（例えば、図４の受光部１４１）と、受光手段により受光された光の信号のうち、注目画素、および、注目画素の周辺の画素の複数の信号を記憶する記憶手段（例えば、図４の記憶部１６１）と、記憶手段に記憶された、複数の信号のうちのいずれか１の信号を、注目画素において受光された信号としてデコードするデコード手段（例えば、図２５のIDデコード処理回路２１１）と、注目画素、または、注目画素の周辺の画素の全体で送信装置により発光された光の信号を受光した受光時間に対する、注目画素、または、注目画素の周辺の画素のうちの、送信装置により発光された光の信号を一部でも受光した画素の、信号を受光していた受光時間の重みを算出する重み算出ステップ（例えば、図２５の重み計算部２８１）と、重み算出ステップの処理により算出された重みを用いて、信号を受光したものとみなされた画素の位置を計測する位置計測ステップ（例えば、図２５のID重心計算回路２８２）とを備えることを特徴とする。
【００２３】
また、本発明の情報処理方法は、所定の点滅パターンで発光する送信装置により発光される光の受光量、または、受光量の微分値からなる信号のうち、注目画素、および、注目画素の周辺の画素の複数の信号のうちのいずれか１の信号を、注目画素において受光された信号としてデコードするデコードステップ（例えば、図２７のフローチャートのステップＳ７６の処理）と、注目画素、または、注目画素の周辺の画素の全体で送信装置により発光された光の信号を受光した受光時間に対する、注目画素、または、注目画素の周辺の画素のうちの、送信装置により発光された光の信号を一部でも受光した画素の、信号を受光していた受光時間の重みを算出する重み算出ステップ（例えば、図３０のフローチャートのステップＳ１０１の処理）と、重み算出ステップの処理により算出された重みを用いて、信号を受光したものとみなされた画素の位置を計測する位置計測ステップ（例えば、図３０のフローチャートのステップＳ１０３の処理）とを含むことを特徴とする。
【００２４】
図１は、本発明に係る情報通信システムの一実施の形態の構成を示すブロック図である。
【００２５】
図１の情報通信システムは、PC（Personal Computer）サーバ１、コントロールユニット２、情報ユニット３−１乃至３−ｎ、および携帯端末４から構成される。
【００２６】
PCサーバ１は、コントロールユニット２に対して、情報ユニット３−１乃至３−ｎのそれぞれに対応する場所での、データを出力させるように指令を出す。
【００２７】
コントロールユニット２は、いわゆる切替制御装置のような機能を果たすものであり、PCサーバ１からの指令に基づいて、各情報ユニット３−１乃至３−ｎのいずれかを制御信号により指定して、所定のデータを出力し、送信させる。情報ユニット３−１乃至３−ｎは、板状の平面上に２次元、または、１次元に複数の光ビーコン１１−１乃至１１−６が配列されたものであり、データを送信する各種の地点に設置される。また、情報ユニット３−１乃至３−ｎは、コントロールユニット２からの制御信号に基づいて、光ビーコン１１−１乃至１１−６のそれぞれについての点滅パターンを替えて発光することにより、光で携帯端末４にデータを送信する。より詳細には、各光ビーコン１１−１乃至１１−６は、それぞれの点滅パターンにより、自らを識別するID（Identifier）データを送信しているが、IDデータには様々なデータを含めて送信することができるので、この機能を利用することにより、案内用の音声ファイルを送信している。
【００２８】
光ビーコン１１−１乃至１１−６は、所定の発光パターンで光を発することによりデータを送信する。このデータは、IDデータと呼ばれるものであり、光ビーコン１１−１乃至１１−６をそれぞれ識別するものであるが、転送可能なデータ量に余裕があるため、その他のデータを含めて送信することも可能である。例えば、IDデータに含められるデータとしては、コンテンツデータ（画像データ、音声データ、または、テキストデータなど）、リンク先データ（URL（Uniform Resource Locator）、アドレス、ホストネームなどのデータ）、および、自らが所属するグループを識別するグループ識別データなどがあるが、これらに限るものではなく、電子データとして管理できるデータであれば含めて送信することが可能である。このように、光ビーコン１１−１乃至１１−６は、その発光パターンを変化させることによりIDデータのみならず、様々なデータを送信することができる。
【００２９】
ここで、自らが所属するグループを識別するグループ識別データについて説明する。例えば、図１においては、情報ユニット３−１乃至３−ｎのそれぞれを構成する複数の光ビーコン１１の群はグループと称され、これらのグループを識別するデータがグループ識別データとなる。したがって、今の場合、光ビーコン１１−１乃至１１−６は、同一の情報ユニット３−１の同一のグループに属しているので、同一のグループ識別データを発する。
【００３０】
尚、情報ユニット３−１乃至３−ｎ、および、光ビーコン１１−１乃至１１−６は、特に区別する必要がない場合、単に情報ユニット３、および、光ビーコン１１と称する。また、今の場合、図１には、情報ユニット３が１個に対して光ビーコン１１が６個ある例について示されているが、データの送信に必要な点滅パターンが作り出せる個数であればよく、少なくとも１個以上であれば個数はいくつであっても構わない。
【００３１】
携帯端末４は、送信されてくるデータを受けようとするユーザにより所持されるものであり、情報ユニット３より光ビーコン１１の点滅パターンにより光で送信されてくるデータをID認識カメラ２１で撮像することにより認識して、所定の処理を実行する。
【００３２】
尚、ID認識カメラ２１、および、光ビーコン１１については、詳細を後述する。
【００３３】
図２は、PCサーバ１の構成を示すブロック図である。CPU（Central Processing Unit）３１は、ROM（Read Only Memory）３２、または記憶部３８に記憶されているプログラムに従って各種の処理を実行する。RAM（Random Access Memory）３３には、CPU３１が実行するプログラムやデータなどが適宜記憶される。これらのCPU３１、ROM３２、およびRAM３３は、バス３４により相互に接続されている。
【００３４】
CPU３１には、バス３４を介して入出力インタフェース３５が接続されている。入出力インタフェース３５には、キーボード、マウス、マイクロホンなどよりなる入力部３６、ディスプレイ、スピーカなどよりなる出力部３７が接続されている。CPU３１は、入力部３６から入力される指令に対応して各種の処理を実行する。そして、CPU３１は、処理の結果得られた画像や音声等を出力部３７に出力する。
【００３５】
入出力インタフェース３５に接続されている記憶部３８は、例えばハードディスクなどで構成され、CPU３１が実行するプログラムや各種のデータを記憶する。通信部３９は、図示せぬネットワークを介して通信機能を有する装置と音声ファイルなどの各種のデータの授受を行う。
【００３６】
入出力インタフェース３５に接続されているドライブ４０は、磁気ディスク５１、光ディスク５２、光磁気ディスク５３、或いは半導体メモリ５４などが装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部３８に転送され、記憶される。
【００３７】
次に、図３を参照して、携帯端末４の構成について説明する。
【００３８】
携帯端末４の構成は、基本的に、図２のPCサーバ１と同様であり、携帯端末４のCPU７１、ROM７２、RAM７３、バス７４、入出力インタフェース７５、入力部７６、出力部７７、記憶部７８、ドライブ７９、磁気ディスク９１、光ディスク９２、光磁気ディスク９３、および、半導体メモリ９４は、PCサーバ１のCPU３１、ROM３２、RAM３３、バス３４、入出力インタフェース３５、入力部３６、出力部３７、記憶部３８、ドライブ４０、磁気ディスク５１、光ディスク５２、光磁気ディスク５３、および、半導体メモリ５４に対応するものである。但し、携帯端末４は、全てにおいて携帯性を重視した構成となっているため、処理速度や記憶部７８の記憶容量などは、PCサーバ１に比べて小さいものである。
【００３９】
また、入力部７６には、ID（Identifier）認識カメラ２１が接続されており、撮像された撮像画像と、光ビーコン１１が撮像された際に、その点滅パターンにより取得されるIDデータが入力される。
【００４０】
ここで、図４を参照して、ID認識カメラ２１の詳細な構成について説明する。受光部１４１は、撮像される対象となる撮像領域の光を電気信号に光電変換した後、演算部１４２に出力する。また、受光部１４１の受光素子１５１は、CMOS（Complementary Metal-Oxide Semiconductor）素子からなり、従来のCCD（Charge Coupled Device）素子よりも高速に動作することができる。より詳細には、受光素子１５１が、撮像される対象となる撮像領域の光を光電変換し、増幅器１５２に出力する。増幅器１５２は、受光素子１５１より入力される光電変換された電気信号を増幅して、演算部１４２、および、画像処理部１４３に出力する。
【００４１】
演算部１４２の記憶部１６１は、受光部１４１より入力された増幅されている電気信号を撮像された画像の各画素値として、フレーム単位で、後述する比較部１６２における演算処理に必要なフレーム数だけ記憶し、適宜比較部１６２に出力する。比較部１６２は、記憶部１６１に記憶された電気信号の値に基づいて、演算処理を行い、演算結果を所定のリファレンス値（＝基準信号レベル）と比較して、比較結果を出力部１６３に出力する。出力部１６３は、比較結果に基づいてセンサ出力信号を生成してIDデコード処理部１４４に出力する。
【００４２】
画像処理部１４３は、受光部１４１より供給された撮像画像を入力部７６（図３）に出力する。
【００４３】
IDデコード処理部１４４は、センサ出力信号をデコード処理し、IDデータと位置データを生成して入力部７６（図３）に出力する。
【００４４】
次に、図５を参照して、比較部１６２の構成について説明する。
【００４５】
比較部１６２の正フレーム間差分計算部１８１、および、負フレーム間差分計算部１８３は、光の変化を検出するために、今撮像されているフレームを基準として、２Mフレーム前までの、２Ｍフレーム間の差分値を求め、それぞれコンパレータ１８２，１８４に出力する。コンパレータ１８２，１８４は、入力された差分値を、それぞれ所定の閾値Ref(+)，Ref(-)と比較し、比較結果に対応して１、または、０の値を出力部に供給する。より具体的には、正フレーム間差分計算部１８１は、差分値が閾値Ref(+)より大きいとき１を、それ以外のとき０を出力し、負フレーム間差分計算部１８３は、差分値が閾値Ref(-)より小さいとき１を、それ以外のとき０を出力する。尚、Ｍは、正の整数を示す。また、説明の便宜上、以下の説明においては、Ref(+)＝−Ref(-)であるものとするが、これに限るものではない。
【００４６】
より詳細には、正フレーム間差分計算部１８１は正の２Ｍフレーム間差分を以下の式（１）で示されるように計算して、コンパレータ１８２の端子１８２ａに出力する。
【００４７】
【数１】
0004269220.tif 000002
0004269220.tif 000003
【００４８】
尚、式（１）におけるｆ(n)は、第ｎフレームにおける所定の画素位置の画素値を示しており、式（１）の第１項は、第ｎフレームから第（ｎ−M−１）フレームの画素値のサメーションを示しており、第２項は、第（ｎ−Ｍ）フレームから第（ｎ−２M−１）フレームの画素値のサメーションを示している。すなわち、正フレーム間差分計算部１８１は、式（１）を演算することにより、時系列的に、今のフレームに近い新しい画素値の和から、今のフレームに遠い古い画素値の和を引いた値を正フレーム間差分YP（M,n）として求める。
【００４９】
また、同様にして、負フレーム間差分計算部１８３は正の２Ｍフレーム間差分を以下の式（２）で示されるように計算して、コンパレータ１８４の端子１８４ａに出力する。
【００５０】
【数２】
0004269220.tif 000004
0004269220.tif 000005
【００５１】
尚、式（２）の第１項は、第（ｎ−Ｍ）フレームから第（ｎ−２M−１）フレームの画素値のサメーションを、第２項は、第ｎフレームから第（ｎ−M−１）フレームの画素値のサメーションをそれぞれ示している。すなわち、負フレーム間差分計算部１８３は、式（２）を演算することにより、時系列的に、今のフレームに遠い古い画素値の和から今のフレームに近い新しい画素値の和を引いた値を負フレーム間差分YM（M,n）として求める。
【００５２】
さらに、コンパレータ１８２は、端子１８２ａに入力されてくる正フレーム間差分値YP(M,n)と、端子１８２ｂに入力されるリファレンス値Ref(+)（リファレンス値Ref(+)は、任意に設定される値である）とを比較し、正フレーム間差分値YP(M,n)がリファレンス値Ref(+)よりも大きい場合、第ｎフレームにおける比較結果としてCP(n)＝１を後段に出力し、逆に、正フレーム間差分値YP(M,n)がリファレンス値Ref(+)よりも小さい場合、第ｎフレームにおける比較結果としてCP(n)＝０を後段に出力する。
【００５３】
同様に、コンパレータ１８４は、端子１８４ａに入力されてくる負フレーム間差分値YM(M,n)と、端子１８４ｂに入力されるリファレンス値Ref(-)（リファレンス値Ref(-)は、任意に設定される値）とを比較し、負フレーム間差分値YM(M,n)がリファレンス値Ref(-)よりも小さい場合、第ｎフレームにおける比較結果としてCM(n)＝１を後段に出力し、逆に、負フレーム間差分値YM(M,n)がリファレンス値Ref(-)よりも大きい場合、第ｎフレームにおける比較結果としてCP(n)＝０を後段に出力する。
【００５４】
演算部１４２は、以上のような演算により信号を、光ビーコン１１の発光により送信されてくる信号を検出する。尚、演算部１４２による信号の検出方法については、詳細を後述する。
【００５５】
次に、図６を参照して、IDデコード処理部１４４の詳細な構成について説明する。IDデコード部２０１のIDデコード回路２１１は、IC（Integrated Circuit）、ASIC（Application Specific Integrated Circuit）、FPGA(Field Programmable Gate Array)などのデバイスにより構成されており、イメージセンサ１３１から入力されるセンサ出力信号より各画素のIDデータを復元する。このIDデコード回路２１１は、処理能力が十分であれば、マイクロプロセッサやDSP（Digital Signal Processor）によってソフトウェアで構成するようにしても良い。
【００５６】
フラグレジスタ２１２は、IDデータをデコードするために必要なフラグ類を記憶するためのレジスタであり、データレジスタ２１３は、デコード途中またはデコードを完了したIDを記憶しておくためのレジスタである。
【００５７】
尚、図６においては、IDデコード部２０１は、１個のみが示されているが、処理速度の要求により、例えば、各画素毎に設けるようにしてもよいし、垂直方向、または、水平方向のライン毎に設けるようにしても良い。
【００５８】
タイミング制御部２０２は、IDデコード処理部１４４の全体の動作に必要なタイミングを制御するタイミング制御信号を出力する。より具体的には、タイミング制御部２０２は、IDデコード回路２１１とセンサ出力信号のタイミングの同期をとり、所望のセンサ出力信号に対して、対応するフレームメモリ２０３のフラグデータをフラグレジスタ２１２に、IDデータをデータレジスタ２１３に、それぞれロードして、IDデコード処理を進めるためのタイミング制御信号を生成し、IDデコード部２０１（のIDデコード回路２１１、フラグレジスタ２１２、および、データレジスタ２１３）に供給する。また、このとき、タイミング制御部２０２は、フレームメモリ２０３へのアドレス信号、リードライトなどのタイミング制御信号を生成し供給する。さらに、タイミング制御部２０２は、重心計算部２０４のIDレジスタ２２１、および、ID重心計算回路２２２、並びに、ID座標格納メモリ２０５のタイミング制御を行うタイミング制御信号を生成して供給する。
【００５９】
IDデコード処理部１４４における、IDデコード部２０１のエラー検出部２１０は、演算部１４２より供給されてきたセンサ出力信号、すなわち、比較部１６２のコンパレータ１８２，１８４より供給された、正フレーム間差分値YP(M,n)、および、負フレーム間差分値YM(M,n)に基づいて、ID認識カメラ２１で撮像されて、取得されたIDデータのエラーの有無を判定し、判定結果をIDデコード回路２１１に供給する。IDでコード回路２１１は、エラー検出部２１０より供給された判定結果に基づいて、エラーが検出されていない場合、入力されたセンサ出力信号をデコードし、エラーが検出された場合、デコードを停止する。
【００６０】
フレームメモリ２０３は、受光素子１５１、または演算部１４２毎に演算されたセンサ出力信号がデコードされたIDデータとフラグデータを格納するメモリであり、イメージセンサ１３１が１画素につき１個の演算部１４２をもつ場合には、センサの画像サイズであるＭ画素×Ｎ画素と同じサイズとなり、データ幅はフラグレジスタ２１２とデータレジスタ２１３のビット幅の和で構成される。図６においては、各画素の位置に対応する座標が、I軸とJ軸により示されており、それぞれの座標位置にIDデータとフラグデータが格納される。
【００６１】
重心計算部２０４は、同一のIDデータを持つ撮像画像上の画素の重心位置の座標を求め、IDデータに、光ビーコン１１の検出位置としての位置データ（＝光ビーコン１１の撮像画像上の位置データ）を付して出力する。より詳細には、重心計算部２０４のIDレジスタ２２１は、タイミング制御部２０２より入力される所定のIDデータがデコード部２０１よりデコードされたことを示すタイミング制御信号によりフレームメモリ２０３に今記憶されたIDデータを読出し、ID重心計算回路２２２に出力する。ID重心計算回路２２２は、入力されたIDデータ毎に、対応する画素の座標位置のI座標とJ座標、並びにデータの個数を順次加算してID座標格納メモリ２０５に記憶させる。また、ID重心計算回路２２２は、フレームメモリ２０３に１フレーム分のデータが格納されたとき、ID座標格納メモリ２０５よりID毎にI座標の和とJ座標の和を、データの個数で割ることにより重心位置の座標を求めて、IDデータと共に出力する。
【００６２】
次に、図７を参照して、エラー検出部２１０の構成について説明する。
【００６３】
エラー検出部２１０のメモリ２３１は、演算部１４２より供給されたセンサ出力信号を所定のフレーム間隔で、複数のフレームについて各画素毎に記憶する。より詳細には、例えば、後述する光ビーコンの点滅周波数のN倍の周波数で画像を撮像する場合、Nフレーム間隔で、例えば、ｍフレーム分記憶する場合、時系列的に順次ｍ個ずつセンサ出力信号を記憶し、さらに、新しいセンサ出力信号を記憶するとき、記憶しているｍ個のセンサ出力信号のうち、最も古いものを削除して新しいセンサ出力信号を記憶する。結果として、メモリ２３１は、常にｍ個の最新のセンサ出力信号を記憶する。
【００６４】
比較部２３２は、メモリ２３１に記憶されているｍ個のセンサ出力信号を用いて比較処理を実行して、比較結果を判定部２３３に出力する。
【００６５】
判定部２３３は、比較部２３２より供給された比較結果に基づいて、エラーの有無を判定し、判定結果を出力する。尚、比較部２３２の比較方法、並びに、判定部２３３の判定方法については、詳細を後述する。
【００６６】
次に、図８を参照して、光ビーコン１１の構成について説明する。図７の光ビーコン１１は、図示せぬネットワークを介して他の装置と通信することによりデータを可変とすることが可能である。ここでネットワークとは、有線・無線の通信回線、例えば電話回線、ISDN、RS-232C、RS-422、Ethernet(R)(10base-T,100base-T)、USB（Universal Serial Bus）、IEEE（Institute of Electrical and Electronic Engineers）1394、IEEE802.11a、IEEE802.11b、BlueToothなどの通信手段により他の装置とデータ通信ができる環境をいう。また、データ送受信部２５１は、この通信手段に対応するデータ通信用IC及びドライバから構成されており、ネットワークを介して受信した光ビーコン１１の送信データを、マンチェスタ符号化部２５２に出力する。マンチェスタ符号化部２５２は、データ送受信部２５１より供給された送信データをマンチェスタ符号化して点滅制御部２５３に出力する。点滅制御部２５３は、入力されたマンチェスタ符号に変換されている送信データに応じた点滅パターンを発生し、発光部２５４を発光させる。
【００６７】
ここで、マンチェスタ符号化について説明する。マンチェスタ符号化とは、図９で示されるように、デジタル信号化された送信データについて、０の信号を１０に、１の信号を０１にそれぞれ表現する符号化方法である。ここで、１は発光部２５４をオンにすることを示し、０は発光部２５４をオフにすることを示す。
【００６８】
マンチェスタ符号化された送信データには、「スタートコード」が変換されたデータの前に付されており、送信データの開始位置を確認することができるようになっている。スタートコードは、図１０で示されるように、例えば、「００００１」といったものである。尚、図１０においては、図中左側がLSB（Least Significant Bit）であり、右側がMSB（Most Significant Bit）を示している。
【００６９】
例えば、「１００１００１０」という８ビットの送信データをマンチェスタ符号化する場合、すなわち、送信データとして７３を送信したい場合、送信データは、２進数の１／０がそれぞれＯＮ／ＯＦＦを表しているとき、発光部２５４は、「OFF-ON→ON-OFF→ON-OFF→OFF-ON→ON-OFF→ON-OFF→OFF-ON→ON-OFF」となるように点滅制御部２５３により制御されることになる。
【００７０】
このようにマンチェスタ符号化することにより、１、または、０をとる信号は３個以上連続することが無く、各送信区間は必ず点滅することになり、長く発光部２５４がOFFの状態となったままになったり、発光部２５４がONの状態となったままになるようなことが防止され、環境光との判別も比較的容易となるので、安定した通信が可能となる。
【００７１】
さらに、送信データは、ネットワークを介して供給されるものに限らず、例えば、図１１で示されるように、データ送受信部２５１に代えて送信データ保存用メモリ２９１を設けて、予め送信するコマンドを記憶させるようにしてもよい。
【００７２】
次に、ID認識カメラ２１の動作について説明する。
【００７３】
受光部１４１の受光素子１５１は、光を光電変換し、変換した電気信号を増幅部１５２に出力する。増幅部１５２は、電気信号を増幅して演算部１４２、および、画像処理部１４３に出力する。演算部１４２の記憶部１６１は、受光部１４１より入力された電気信号を順次記憶して、２Mフレーム分の電気信号を記憶し、いっぱいになると、最も古いフレームの電気信号を消去して、最新のフレームの電気信号を記憶する処理を繰り返して、常に最新の２Mフレーム分の電気信号を記憶しており、その２Mフレーム分の電気信号を比較部１６２に出力する。
【００７４】
比較部１６２は、記憶部１６１に記憶されている時間的に連続する２Mフレーム分の電気信号を輝度信号として上述した式（１），式（２）のような演算処理を実行し、出力部１６３は、演算結果をセンサ出力信号としてIDデコード処理部１４４に出力する。尚、比較部１６２の動作については、詳細を後述する。
【００７５】
画像処理部１４３は、受光部１４１より供給された画像信号を処理可能な形式に変換し、画像データとして出力する。
【００７６】
次に、IDデコード処理部１４４の動作について説明する。
【００７７】
IDデコード処理部２０１のエラー検出部２１０は、演算部１４２より供給されたセンサ出力信号のエラーの有無を判定し、判定結果をIDデコード回路２１１に出力する。
【００７８】
IDデコード回路２１１は、エラー検出部２１０からのエラー判定結果に基づいて、例えば、エラーが検出された場合、以降の処理を実行せず、次のエラー判定結果を待つ。そして、IDデコード回路２１１は、エラーがないというエラー判定結果が送られた場合、タイミング制御部２０２からのセンサ出力信号のタイミングの同期を図るためのタイミング制御信号に基づいて、イメージセンサ１３１から入力されるセンサ出力信号より各画素のIDデータを復元する。この際、IDデコード回路２１１は、タイミング制御信号に応じて、フラグレジスタ２１２を制御して、フレームメモリ２０３にロードされたフラグデータを用いて、センサ出力信号からIDデータをデコードし、デコード途中またはデコードを完了したIDをデータレジスタ２１３に記憶させる。尚、エラー判定処理については、詳細を後述する。
【００７９】
さらに、フレームメモリ２０３は、これらのデコード処理がなされたフラグデータとIDデータを対応する座標位置に格納する。
【００８０】
重心計算部２０４のIDレジスタ２２１は、タイミング制御部２０２より入力される所定のIDデータがデコード部２０１よりデコードされたことを示すタイミング制御信号により、フレームメモリ２０３に今記憶されたIDデータの情報をID重心計算回路２２２に読み出させる。
【００８１】
ID重心計算回路２２２は、読み出したIDデータに対応する画素の座標位置のI座標とJ座標を順次加算して、これに画素の個数の情報を付してID座標格納メモリ２０５に記憶させ、この処理を繰り返す。
【００８２】
そして、フレームメモリ２０３に１フレーム分のデータが格納されたとき、ID重心計算回路２２２は、ID座標格納メモリ２０５よりID毎にI座標の和とJ座標の和を、データの個数で割ることにより重心位置の座標を位置データとして求めて、対応するIDデータと共に出力する。
【００８３】
以上の動作により、例えば、図１２で示すように、２個の光ビーコン１１−１，１１−２が、点滅しながら発光してデータを送信する場合、ID認識カメラ２１には、図１２上部に示すような現実空間上の光ビーコン１１−１，１１−２の物理的な位置に応じた、撮像画像上の位置の画素で光の信号を受光する。例えば、光ビーコン１１−１から発せられた光が座標位置（１０，１０）の受光素子１５１で受光されるものとし、光ビーコン１１−２から発せられた光が座標位置（９０，９０）の受光素子１５１で受光されるものとする。このとき、各受光部１４１の座標位置（１０，１０）と（９０，９０）の受光素子１５１では、それぞれが光ビーコン１１−１と１１−２の点滅パターンにより受光強度（明るさ）の時間的変化として信号を受信することができる。今の場合、座標（１０，１０）の位置データに対応する画素は、IDデータとして「３２１」が、座標（９０，９０）の位置データに対応する画素は、IDデータとして１０５がデコード結果として求められている。
【００８４】
結果として、この受光強度の変化を上述の式（１）などにより２値化することにより１／０のビット列からなるIDデータを取得する事ができる。
【００８５】
次に、演算部１４２によるフレーム間差分を用いた信号検出方法について説明する。
【００８６】
光ビーコン１１が発光することにより送信されてくる信号を検出する最も単純な方法は、受光量をある決められた閾値と比較することで２値化して、受光量を１，０のデジタル信号に変換する方法である。この方法は、最もシンプルで実装も容易であるが、周囲の明るさが変化すると、固定された閾値と比較して２値化する方法では、安定したデータ伝送は望めない。
【００８７】
そこで、本発明では、光の変化を検出するのに、受光量を所定のレートで、かつ、フレーム単位で記憶部１６１が記憶して（サンプリングして）、時間方向に連続する複数のフレーム間の受光量の比較を行うことで、信号を安定して検出できるようにしている。
【００８８】
例えば、時間が経過するにしたがって増加するフレーム番号をn、サンプリングされる各フレーム間の各画素毎の受光量をf(n)とすると、１画素の光の変化量は、Y=f(n)-f(n-1)で表され、Y>0のときに光が暗→明に、Y<0のときに光が明→暗になったことを検出したことになる。
【００８９】
上述したY＝f(n)-f(n-1)を２フレーム間差分と定義して、さらに拡張して２Ｍフレーム間差分を定義する。ここでＭは正の整数である。具体的には、Ｍ＝１の場合、Y=f(n)-f(n-1)、Ｍ＝２の場合、Y=f(n)+f(n-1)-f(n-2)-f(n-3)、Ｍ＝３の場合、Y=f(n)+f(n-1)+f(n-2)-f(n-3)-f(n-4)-f(n-5)となる。すなわち、ｎフレーム目の２Ｍフレーム間差分は、上述した式（１）で定義されるYP（M,n）、および、式（２）で定義されるYM（M,n）により求められる。
【００９０】
上述の式（１），式（２）を用いてフレーム間差分を求める場合、Ｍが大きいほど、光の検出感度（式（１），式（２）の演算結果の変化の鋭さ）は高くなる。しかしながら、その一方、Ｍが大きくなると受光側で、単位時間あたりで記憶するフレーム数、すなわち、サンプリング周波数を固定とすると、光の点滅周波数を落とさなければ、設定されたフレーム数だけ記憶することができず、結果として、データの転送効率が悪くなる。
【００９１】
すなわち、図１３で示されるように、横軸を時間軸、サンプリング時間（フレーム間の間隔）をΔtとして、光ビーコン１１の点滅が実線の波形のようにOFFの状態からON、その後にOFFとなる場合、受光部１４１が各サンプリング時間に受光する受光量を縦軸に表すと、図１３の１点鎖線で示されるような波形となる。ここで、受光量が変化するサンプリング区間（時刻ｔ３乃至ｔ４および時刻ｔ８乃至ｔ９）では、光ビーコン１１がONにされるときの受光量に比べて受光量が小さいものの、ＯＦＦの状態よりも大きくなる。
【００９２】
光ビーコン１１がONにされると、受光部１４１の受光量が図１３の実線で示されるように、サンプリング区間が時刻ｔ４乃至ｔ８のとき、受光量は光ビーコン１１がONとなる（発光している）ときの受光量に変化し、サンプリング区間が時刻ｔ９乃至ｔ１０のとき、受光量は光ビーコン１１がOFFとなる（発光していない）ときの受光量に変化する。
【００９３】
したがって、正の２フレーム間差分であるYP（1,n）（＝(f(n)-f(n-1))で光の変化を検出した場合、２フレーム間差分（正フレーム間差分YP（1,n））は、図１３の２点差線で示すように変化し、正の２フレーム間差分YP（1,n）は、光ビーコン１１がONの状態のときの１サンプリング区間の受光量に対して、必ず小さい値をとることになる。すなわち、時刻ｔ３乃至ｔ５、および、時刻ｔ８乃至ｔ１０において、正の２フレーム間差分YP(1,n)は、光ビーコン１１がONの状態のときの１サンプリング区間の受光量に対して、必ず小さい値となっている。
【００９４】
これに対して、正の４フレーム間差分YP(2,n)（＝f(n)+f(n-1)-f(n-2)-f(n-3)）で光の変化を検出した場合、図１３の３点差線で示すように、時刻ｔ５乃至ｔ６および時刻ｔ９乃至ｔ１０のとき、光の変化が検出され、正の４フレーム間差分YP(2,n)は、最大レベルに達して、光ビーコン１１がONの場合の受光量の絶対値よりも大きな値をとることになる。したがって、正の４フレーム間差分YP(2,n) (＝f(n)+f(n-1)-f(n-2)-f(n-3))は、正の２フレーム間差分YP(1,n)（＝f(n)+f(n-1)）にと比較して、より感度の高い信号を検出することができる。
【００９５】
もちろん、さらに多くのフレームを用いたフレーム間差分の演算を用いるようにしてもよい（例えば６フレーム間差分など）。しかしながら、差分をとるフレーム数を増やすほど、点滅周波数を遅くする必要が生じる。
【００９６】
また、安定して光の変化を検出するためには、受光部１４１のフレームレートは光ビーコン１１の点滅周波数のＮ倍以上の関係になければならない。ここでＮは、光の変化の検出方法によって決まる値である。２フレーム間差分では、Ｎ＞２であり、４フレーム間差分ではＮ＞３である。すなわち、２Ｍフレーム間差分（ここでＭは正の整数）の場合、Ｎ＞Ｍ＋１となる。ここでＮは小さい値の方が、同じフレームレートでもデータ転送レートを大きくすることができるので、Ｎ＝Ｍ＋１とすることにより最適化されることになる。尚、以降においても、実線、１点鎖線、２点鎖線、および、３点鎖線は、それぞれ発光状態、受光量、２フレーム間差分、４フレーム間差分を示すものとする。
【００９７】
ここで、Ｍ＝１、すなわち、２フレーム間差分の場合にＮ＝２以上でなければならないのは、原信号の周波数の２倍以上の周波数でサンプリングしないと、サンプリング定理からも明らかなように、サンプリング結果から原信号を復元することはできないからである。
【００９８】
例えば、図１４において実線で示されるように、光ビーコン１１のON、または、OFFが変化する場合、図１４中の時刻ｔ２乃至ｔ６の区間においては、Ｎ＝１の関係でサンプリングした場合、時刻ｔ６乃至ｔ１３の区間においては、Ｎ＝２の関係でサンプリングした場合のそれぞれの受光量と正の２フレーム間差分を示している。図１４の２点鎖線で示されている変化から分かるように（特に、時刻ｔ３乃至ｔ６（図中の範囲Ａで示される部分）において）、Ｎ＝１の区間では正の２フレーム間差分YP（1,n）（＝f(n)-f(n-1)）は、受光量（図１４中の１点鎖線で示されている変化）と比べて小さくなってしまい（点滅パターンとサンプリング周波数の位相によっては光の変化があってもYP（1,n）が０になる）、安定した検出が困難となっているのがわかる。しかしながら、Ｎ＝２の区間（図中の範囲Ｂで示される部分）では、Ｎフレーム毎（Ｎ＝２）にYP（1,n）の値が、受光量に比べて大きな値を取り、安定した検出が可能であることがわかる。
【００９９】
次に、Ｍ＝２すなわち４フレーム間差分の場合、Ｎ＝３が最適であることを説明する。図１５は、Ｍ＝２、Ｎ＝２の場合の４フレーム間差分の値であるときの信号のレベルの変化を示している。受光部のサンプリングレートの２倍の周波数で光源を点滅させているので、正の４フレーム間差分の値が正負で最大になるときでも、演算する４フレームに光ビーコン１１の点滅の立上がりと立下りが含まれてしまうため、受光信号が正負で打ち消してまい、正の４フレーム間差分値は、受光量に比べて大きくならないことが分かる（１サンプリング時間の受光量以下になってしまう）。例えば、時刻ｔ６乃至ｔ７においては、４フレーム間差分（図中の矢印の４フレーム分の範囲）が負の最大値をとる区間の１つであるが、ここで４フレーム間差分は、YP(2,n)=f(t6-t7)+f(t6-t5)-f(t5-t4)-f(t4-t3)となり、f(t4-t3)とf(t6-t5)が共に正の値をとるため、打ち消しあい、YP(2,n)は小さくなってしまう。
【０１００】
しかしながら、図１６で示されるように、Ｍ＝４，Ｎ＝３の場合には、正の４フレーム間差分値が正負でそれぞれ最大値をとるとき(t5-t4,t8-t7,t11-t10,t14-t13)、演算される４フレーム間に光ビーコン１１による点滅の立上がりと立下りの両方が含まれることはなく、受光信号が正負で打ち消してしまうことがないので、４フレーム間差分値は、大きな信号を得ることができる。そして、Ｎサンプリング毎に光ビーコン１１の点滅パターンの立上がりエッジ周辺には正の最大値が、立下りエッジ周辺には負の最大値をとることがわかる。したがって、Ｎフレーム毎の正の４フレーム間差分値YPを用いて、マンチェスタ符号化された原信号を復元できることがわかる。
【０１０１】
従って、最適なＮとＭの組み合わせは、Ｍの値が大きいほど、２Mフレーム間差分値は、高い感度で変化するが、Ｍを大きくすると（演算に使用するフレーム数を多くすると）Ｎ＞Ｍ＋１の関係からＮも大きくしなければならず（サンプリング数も多くしなければならず）、同じ点滅周波数で送ることのできるデータ伝送の効率が悪くなるので、演算に使用するフレーム数とサンプリング周波数とのバランスを考慮して決定する必要がある。
【０１０２】
本実施例では、主に２フレーム間差分、４フレーム間差分を例にあげて、説明することとする。しかしながら、本発明は、２Ｍフレーム間差分（Ｍは正の整数）について適用可能であり、Ｍを２または１に制限するものではない。
【０１０３】
また、以上においては、正のフレーム間差分についてのみ説明してきたが、負のフレーム間差分（上述の式（２）に対応する）についても同様のことが言える。尚、負のフレーム間差分については、正のフレーム間差分と同様であるので、その説明を省略する。
【０１０４】
次に、図１７のフローチャートを参照して、光ビーコン１１による送信データを送信するための発光処理について説明する。
【０１０５】
ステップＳ１において、データ送受信部２５１は、コントロールユニット２より送信されてくる送信データを受信すると共に、マンチェスタ符号化部２５２に出力する。
【０１０６】
ステップＳ２において、マンチェスタ符号化部２５２は、データ送受信部２５１より供給された送信データを、図９，図１０で説明したように、マンチェスタ符号化して点滅制御部２５３に供給する。
【０１０７】
ステップＳ３において、点滅制御部２５３は、マンチェスタ符号化部２５２より供給された、マンチェスタ符号化されている、送信データに基づいて、発光部２５４の発光を制御し、その処理は、ステップＳ１に戻り、それ以降の処理が繰り返される。すなわち、このような制御の下で、発光部２５４は、送信データに対応した発光を繰り返す。また、情報ユニット３は、複数の光ビーコン１１−１乃至１１−６の点滅パターンを制御して、送信データを送信する。
【０１０８】
次に、図１８のフローチャートを参照して、ID認識カメラ２１による光ビーコン１１の点滅により送信されてくる送信データ取得処理について説明する。
【０１０９】
ステップＳ１１において、受光部１４２の受光素子１５１は、撮像される対象となる撮像領域の光を光電変換し、増幅器１５２に出力する。
【０１１０】
ステップＳ１２において、増幅器１５２は、受光素子１５１より入力される光電変換された電気信号を増幅して、フレーム単位で演算部１４２に出力する。
【０１１１】
ステップＳ１３において、演算部１４２の記憶部１６１は、受光部１４１より供給された、増幅されている電気信号、すなわち、各画素毎の画素値をフレーム単位で順次記憶する。この際、記憶部１６１は、２Ｍ個の複数のフレーム分の画素値を記憶することができるので、最も古いフレームの画素値を削除して、新しいフレームの画素値を順次記憶する。尚、以下の説明においては、M＝２であるものとする。
【０１１２】
ステップＳ１４において、比較部１６２は、記憶部１６１に記憶されている、２Ｍフレーム分の画素値を読み出して比較処理を実行する。
【０１１３】
ここで、図１９のフローチャートを参照して、比較部１６２による比較処理を説明する。
【０１１４】
ステップＳ２１において、比較部１６２の正フレーム間差分計算部１８１は、記憶部１６１に記憶されている、２Ｍフレームの情報を用いて、各画素毎に、上述した式（１）で示した正フレーム間差分YP(M,n)を計算して、コンパレータ１８２の端子１８２ａに出力する。
【０１１５】
ステップＳ２２において、比較部１６２のコンパレータ１８２は、端子１８２ａに供給された正フレーム間差分YP(M,n)と、端子１８２ｂに供給されるリファレンス値Ref(+)とを比較し、正フレーム間差分YP(M,n)が、リファレンス値Ref(+)よりも大きいとき、比較結果CP(n)＝１を、それ以外のとき、比較結果CP(n)＝０を出力する。
【０１１６】
ステップＳ２３において、比較部１６２の正フレーム間差分計算部１８３は、記憶部１６１に記憶されている、２Ｍフレームの情報を用いて、各画素毎に、上述した式（２）で示した負フレーム間差分YM(M,n)を計算して、コンパレータ１８４の端子１８４ａに出力する。
【０１１７】
ステップＳ２４において、比較部１６２のコンパレータ１８４は、端子１８４ａに供給された負フレーム間差分YM(M,n)と、端子１８４ｂに供給されるリファレンス値Ref(-)とを比較し、負フレーム間差分YM(M,n)が、リファレンス値Ref(-)よりも小さいとき、比較結果CM(n)＝１を、それ以外のとき、CM(n)＝０を出力する。
【０１１８】
ステップＳ２５において、出力部１６３は、コンパレータ１８２，１８４より供給された比較結果CM(n)，CP(n)をIDデコード処理部１４４に出力する。
【０１１９】
ここで、図１８のフローチャートの説明に戻る。
【０１２０】
ステップＳ１４の比較処理が終了すると、その処理は、ステップＳ１１に戻り、それ以降の処理が繰り返される。
【０１２１】
すなわち、図１８のフローチャートを参照して説明した処理により、光ビーコン１１が点滅して、発せられる光を受光することにより、送信されてきた、送信データを取得し、IDデコード処理部１４４に送信データを供給する処理を繰り返す。
【０１２２】
上述の処理について、さらに詳細に説明すると、図２０で示されるように、ステップＳ１１の処理で、受光部１４１の受光量は、時刻ｔ１乃至ｔ１３まで、０であり、時刻ｔ１３乃至ｔ１４において、時刻ｔ１３＋α乃至ｔ１４の間に受光する受光量を蓄積する。すなわち、時刻ｔ１３乃至ｔ１４の間に、光ビーコン１１が発光し続けていた場合に得られる受光量を１としたとき、時刻ｔ１３乃至ｔ１４の受光量は、（ｔ１４−ｔ（１３＋α））／（ｔ１４−ｔ１３）となる。
【０１２３】
尚、図２０においては、最上段が送信データを示しており、今の場合、「スタートコード」、「データ1ビット目」として１、および、「データ2ビット目」として０が示されており、第２段目が、マンチェスタ符号化されたデータを示しており、今の場合、先頭から「００００１０１１０」と示されている。実線で示された第３段目は、光ビーコン１１による発光状態を示すものであり、Hiの状態が発光している状態を示し、Lowが発光していない状態を示している。一点鎖線で示されている第４段目は、受光素子１４１により受光される光の受光量を示している第５段目は、正フレーム間差分を示しており、Ref(+)、および、Ref(-)が、それぞれコンパレータ１８２，１８４のリファレンス値を示している。尚、負フレーム間差分は、示されていないが、図２０の正フレーム間差分を、０点となる直線を中心として反転させた値となる。
【０１２４】
第６段目、および、第７段目は、それぞれコンパレータ１８２，１８４の出力を示しており、今の場合、第６段目は、時刻ｔ１乃至ｔ１４、時刻ｔ１６乃至ｔ２０、時刻ｔ２２乃至ｔ２８において、０が、時刻ｔ１４乃至ｔ１６、および、時刻ｔ２０乃至ｔ２２において、１が出力されたことが示されている。また、第７段目は、時刻ｔ１乃至ｔ１７、時刻ｔ１９乃至ｔ２６において、０が、時刻ｔ１７乃至ｔ１９、および、時刻ｔ２６乃至ｔ２８において、１がそれぞれ出力されていることが示されている。また、各フレーム間の時間間隔は、Δｔで一定であるものとする。
【０１２５】
時刻ｔ１４乃至ｔ１５、および、時刻ｔ１５乃至ｔ１６においては、実線で示されるように、光ビーコン１１が発光し続けているので、１点鎖線で示されるように、受光量は１となる。
【０１２６】
さらに、時刻ｔ１６乃至ｔ１７の間においては、実線で示されるように、時刻ｔ１６乃至ｔ（１６＋α）の間のみ発光している状態となるので、受光量は、１点鎖線で示されるように、α／（ｔ１７−ｔ１６）となる。
【０１２７】
また、時刻ｔ１７乃至ｔ１９の間においては、図２０の実線で示される光ビーコン１１は発光していない状態となっているので、図２０の１点鎖線で示されるように、受光される受光量は０となる。
【０１２８】
さらに、時刻ｔ１９乃至ｔ２０の間に受光される受光量は、実線で示されるように、実質的に発光していた時刻ｔ（１９＋α）乃至ｔ２０の間に受光された受光量となるので、１点鎖線で示されるように、（ｔ２０−ｔ（１９＋α））／（ｔ２０−ｔ１９）となる。
【０１２９】
また、時刻ｔ２０乃至ｔ２５の間においては、図２０の実線で示される光ビーコン１１は発光している状態となっているので、図２０の１点鎖線で示されるように、受光される受光量は１となる。
【０１３０】
さらに、時刻ｔ２５乃至ｔ２６の間においては、実線で示されるように、時刻ｔ２５乃至ｔ（２５＋α）の間のみ発光している状態となるので、受光量は、１点鎖線で示されるように、α／（ｔ２６−ｔ２５）となる。
【０１３１】
時刻ｔ２６以降においては、実線で示されるように、光ビーコン１１が発光していない状態となっているので、受光量は、１点鎖線で示されるように０となる。
【０１３２】
そして、以上の受光量に応じて、正フレーム間差分計算部１８１は、上述した式（１）の演算を実行する。より詳細には、時刻ｔ１乃至ｔ１３においては、全てのフレームにおいて、受光量f(n)が０であるので、図２０の３点鎖線で示されるように、正フレーム間差分は０となる。
【０１３３】
時刻ｔ１３乃至ｔ１４に対応するフレームｆ（ｔ１４−ｔ１３）における正フレーム間差分YP(2,t14-t13)は、ｆ（ｔ１４−ｔ１３）＋ｆ（ｔ１３−ｔ１２）−ｆ（ｔ１２−ｔ１１）−ｆ（ｔ１１−ｔ１０）となり、図２０における、３点鎖線で示される時刻ｔ１３乃至ｔ１４の正フレーム間差分の値となる。
【０１３４】
同様に、時刻ｔ１４乃至ｔ１５に対応するフレームｆ（ｔ１５−ｔ１４）における正フレーム間差分YP(2,t15-t14)は、図２０における、３点鎖線で示されるようにｆ（ｔ１５−ｔ１４）＋ｆ（ｔ１４−ｔ１３）−ｆ（ｔ１３−ｔ１２）−ｆ（ｔ１２−ｔ１１）となる。
【０１３５】
また、時刻ｔ１５乃至ｔ１６に対応するフレームｆ（ｔ１６−ｔ１５）における正フレーム間差分YP(2,t16-t15)は、図２０における、３点鎖線で示されるようにｆ（ｔ１６−ｔ１５）＋ｆ（ｔ１５−ｔ１４）−ｆ（ｔ１４−ｔ１３）−ｆ（ｔ１３−ｔ１２）となる。
【０１３６】
さらに、時刻ｔ１６乃至ｔ１７に対応するフレームｆ（ｔ１７−ｔ１６）における正フレーム間差分YP(2,t17-t16)は、図２０における、３点鎖線で示されるようにｆ（ｔ１７−ｔ１６）＋ｆ（ｔ１６−ｔ１５）−ｆ（ｔ１５−ｔ１４）−ｆ（ｔ１４−ｔ１３）となる。
【０１３７】
また、時刻ｔ１７乃至ｔ１８に対応するフレームｆ（ｔ１８−ｔ１７）における正フレーム間差分YP(2,t18-t17)は、図２０における、３点鎖線で示されるようにｆ（ｔ１８−ｔ１７）＋ｆ（ｔ１７−ｔ１６）−ｆ（ｔ１６−ｔ１５）−ｆ（ｔ１５−ｔ１４）となる。
【０１３８】
以下同様に、時刻ｔ１８乃至ｔ１９においては、ｆ（ｔ１９−ｔ１８）＋ｆ（ｔ１８−ｔ１７）−ｆ（ｔ１７−ｔ１６）−ｆ（ｔ１６−ｔ１５）、時刻ｔ１９乃至ｔ２０においては、ｆ（ｔ２０−ｔ１９）＋ｆ（ｔ１９−ｔ１８）−ｆ（ｔ１８−ｔ１７）−ｆ（ｔ１７−ｔ１６）、時刻ｔ２０乃至ｔ２１においては、ｆ（ｔ２１−ｔ２０）＋ｆ（ｔ２０−ｔ１９）−ｆ（ｔ１９−ｔ１８）−ｆ（ｔ１８−ｔ１７）、時刻ｔ２１乃至ｔ２２においては、ｆ（ｔ２２−ｔ２１）＋ｆ（ｔ２１−ｔ２０）−ｆ（ｔ２０−ｔ１９）−ｆ（ｔ１９−ｔ１８）、時刻ｔ２２乃至ｔ２３においては、ｆ（ｔ２３−ｔ２２）＋ｆ（ｔ２２−ｔ２１）−ｆ（ｔ２１−ｔ２０）−ｆ（ｔ２０−ｔ１９）、時刻ｔ２４乃至ｔ２５においては、ｆ（ｔ２５−ｔ２４）＋ｆ（ｔ２４−ｔ２３）−ｆ（ｔ２３−ｔ２２）−ｆ（ｔ２２−ｔ２１）、時刻ｔ２５乃至ｔ２６においては、ｆ（ｔ２６−ｔ２５）＋ｆ（ｔ２５−ｔ２４）−ｆ（ｔ２４−ｔ２３）−ｆ（ｔ２３−ｔ２２）、時刻ｔ２６乃至ｔ２７においては、ｆ（ｔ２７−ｔ２６）＋ｆ（ｔ２６−ｔ２５）−ｆ（ｔ２５−ｔ２４）−ｆ（ｔ２４−ｔ２３）、時刻ｔ２７乃至ｔ２８においては、ｆ（ｔ２８−ｔ２７）＋ｆ（ｔ２７−ｔ２６）−ｆ（ｔ２６−ｔ２５）−ｆ（ｔ２５−ｔ２４）となる。
【０１３９】
これに伴い、上述した式（１）が演算されることにより求められる正フレーム間差分と正のリファレンス値Ref(+)との比較結果は、図２０の３点鎖線で示されるように、今の場合、時刻ｔ１４乃至ｔ１６、および、時刻ｔ２０乃至ｔ２２において、正フレーム間差分が正のリファレンス値Ref(+)よりも大きくなるため、コンパレータ１８２から出力される比較結果CP(n)は、時刻ｔ１４乃至ｔ１６、および、時刻ｔ２０乃至ｔ２２において、１となり、それ以外の時刻においては、０となる。
【０１４０】
尚、上述した式（２）が演算されることにより求められる負フレーム間差分は、図２０における３点鎖線で示される正フレーム間差分と正負が逆転した関係が示されることになるので、図示は省略する。
【０１４１】
また、負フレーム間差分と負のリファレンス値Ref(-)との比較結果は、正フレーム間差分と、負リファレンス値Ref(-)の正負が逆転された値（−Ref(-)）との比較結果と同値となる。従って、今の場合、時刻ｔ１７乃至ｔ１９、および、時刻ｔ２６乃至ｔ２８において、負フレーム間差分は、負のリファレンス値Ref(-)よりも大きくなる（図２０の３点鎖線で示されるように、正フレーム間差分が、負リファレンス値Ref(-)の正負が逆転された値（−Ref(-)）よりも小さくなる）ため、コンパレータ１８４から出力される比較結果CM(n)は、時刻ｔ１７乃至ｔ１９、および、時刻ｔ２６乃至ｔ２８において、１となり、それ以外の時刻においては、０となる。
【０１４２】
次に、図２１のフローチャートを参照して、IDデコード処理部１４４によるIDデコード処理について説明する。
【０１４３】
ステップＳ３１において、IDデコード処理部１４４のIDデコード回路２１１は、カウンタ（図示せず）をリセットし、初期化する。
【０１４４】
ステップＳ３２において、IDデコード処理部１４４のIDデコード回路２１１は、スタートコード検出処理を実行する。
【０１４５】
ここで、図２２のフローチャートを参照して、IDデコード回路２１１によるスタートコード検出処理について説明する。
【０１４６】
ステップＳ４１において、IDデコード処理部１４４のIDデコード回路２１１は、演算部１４２より供給される、比較結果CP(n)，CM(n)のいずれもが、１２フレーム以上連続して、０であるか否かを判定する。より詳細には、IDデコード処理部１４４は、比較結果CP(n)，CM(n)がいずれも０で、連続して入力される場合、図示せぬカウンタを１ずつインクリメントし、そのカウンタの値が１２以上であるか否かを判定する。尚、このカウンタは、比較結果CP(n)，CM(n)のいずれかが１で入力された場合、リセットされる。
【０１４７】
ステップＳ４１において、スタートコードは、例えば、上述したように「００００１」であるので、図２０で示されるように、光ビーコン１１は、実線で示されるように点滅することになる。すなわち、光ビーコン１１は、時刻ｔ（１＋α）乃至ｔ（１３＋α）までの間、発光していない状態で、時刻ｔ（１３＋α）乃至時刻ｔ（ｔ１９＋α）までの間、発光することにより、このスタートコードを送信データとして送信する。
【０１４８】
従って、図２０で示されるように、時刻ｔ１乃至ｔ１２において、１２フレーム以上連続して０であると判定されないことになるので、ステップＳ４５に進み、エラー検出部２１０は、スタートコードを検出していないものと判定し、その処理は、ステップＳ３３（図２１のフローチャート）に進む。
【０１４９】
ここで、図２１のフローチャートに戻る。
【０１５０】
ステップＳ３３において、スタートコードが検出されたか否かが判定され、今の場合、ステップＳ４５において、スタートコードが検出されていないので、スタートコードが検出されていないと判定され、その処理は、ステップＳ３２に戻る。
【０１５１】
すなわち、１２フレーム以上連続して０であると判定されるまで、ステップＳ３２，Ｓ３３の処理が繰り返される。
【０１５２】
ここで、図２２のフローチャートの説明に戻る。
【０１５３】
今の場合、例えば、図２０で示される時刻ｔ１乃至ｔ１３において、ステップＳ３２，Ｓ３３の処理が、１２回繰り返されることになるので、例えば、図２０の時刻ｔ１２乃至ｔ１３に対応するフレームの場合、ステップＳ４１において、１２フレーム以上連続して０であると判定されることになり、その処理は、ステップＳ４２に進む。
【０１５４】
ステップＳ４２において、IDデコード回路２１１は、コンパレータ１８２の比較結果CP(n)が１であるか否かを判定する。すなわち、スタートコードの末尾となる１が検出されたか否かが判定される。例えば、図２０で示されるように、時刻ｔ１２乃至ｔ１３に対応するフレームでスタートコードの「００００」が検出された後、時刻ｔ１３乃至ｔ１４においては、比較結果CP(t14-t13)は、１ではないので、その処理は、ステップＳ４５に進む。従って、この場合、ステップＳ３３，Ｓ３２の処理が繰り返される。
【０１５５】
また、例えば、さらにその後のタイミングとなる時刻ｔ１３乃至ｔ１４の場合、ステップＳ４２において、図２０で示すように、比較結果CP(t15-t14)は１であるので、スタートコードの末尾にあたる「１」であると判定され、その処理は、ステップＳ４３に進む。
【０１５６】
ステップＳ４３において、IDデコード回路２１１は、コンパレータ１８２の比較結果CP(n+1)が１であるか否かを判定する。例えば、図２０で示されるように、時刻ｔ１５乃至ｔ１６においては、比較結果CP(t16-t15)が１であると判定され、その処理は、ステップＳ４４に進む。
【０１５７】
ステップＳ４４において、IDデコード回路２１１は、スタートコードを検出したことを認識する。
【０１５８】
すなわち、ステップＳ４２における処理と同様に、ステップＳ４３において、IDデコード回路２１１がスタートコードの末尾となる１が検出されたか否かを判定することにより、２フレーム連続して１が検出されたか否かを判定する。これは、今の場合、マンチェスタ符号化された信号は、３フレーム間隔で供給されており、この場合、図２０で示されているように、マンチェスタ符号化された信号は、正しく受光された場合、２フレーム連続で必ず１を検出することになるので、これを検出することにより、スタートコードの末尾となる１の有無が検出される。
【０１５９】
ここで、図２１フローチャートに戻る。
【０１６０】
ステップＳ３４において、IDデコード回路２１１は、エラー検出部２１０に対して、エラー検出処理を開始させる。尚、エラー検出部２１０のエラー検出処理については、詳細を後述する。
【０１６１】
ステップＳ３５において、IDデコード回路２１１は、エラー検出部２１０のエラー検出処理によりエラーが検出されたか否かを判定し、エラー検出部２１０より供給されるエラー検出結果に基づいて、エラーの有無を判定する。
【０１６２】
例えば、ステップＳ３５において、エラー検出部２１０よりエラーが検出されていないことを示す通知が入力されてきた場合、IDデコード回路２１１は、エラーが検出されていないと判定し、その処理は、ステップＳ３６に進む。
【０１６３】
ステップＳ３６において、IDデコード回路２１１は、入力されたセンサ出力信号に基づいて、上述したようにIDデータをデコードし、フレームメモリ２０３に記憶させる。さらに、ID重心計算回路２２２は、IDレジスタ２２１を制御して、デコードされたIDデータに対応する座標位置を読出し、ID座標格納メモリ２０５に、座標位置を積算させながら順次記憶させる。
【０１６４】
ステップＳ３７において、ID重心計算回路２２２は、ID座標格納メモリ２０５に記憶された座標位置をIDデータ毎に読み出して、IDデータに対応する座標位置の重心位置を求めて、すなわち、各座標位置の積算値を加算したIDデータの個数で割ることにより重心位置を求めて、これをそのIDデータの座標情報として求める。
【０１６５】
ステップＳ３８において、IDデコード回路２１１は、供給されてくるセンサ出力信号の有無により、データが終了したか否かを判定し、例えば、データが終了していないと判定した場合、その処理は、ステップＳ３５に戻り、それ以降の処理を繰り返す。
【０１６６】
ステップＳ３８において、入力されてくるセンサ出力信号がなくなって、データが終了したと判定された場合、ステップＳ３９において、エラー検出部２１０に対してエラー検出処理を停止させるように指令を出し、その処理は、ステップＳ３２に戻り、それ以降の処理が繰り返される。
【０１６７】
次に、図２３のフローチャートを参照して、エラー検出処理について説明する。
【０１６８】
ステップＳ５１において、エラー検出部２１０の判定部２３３は、図示せぬカウンタｍを２に設定する。ステップＳ５２において、エラー検出部２１０の判定部２３３は、図示せぬカウンタｋを２に初期化する。
【０１６９】
ステップＳ５３において、エラー検出部２１０のメモリ２３１は、１フレーム分のセンサ出力信号が入力されたか否かを判定し、１フレーム分のセンサ出力信号が入力されるまで、その処理が繰り返される。
【０１７０】
ステップＳ５３において、１フレーム分のセンサ出力信号が入力されたと判定された場合、ステップＳ５４において、エラー検出部２１０の判定部２３３は、カウンタｋを１インクリメントする。
【０１７１】
ステップＳ５５において、判定部２３３は、カウンタｋが３となったか否かを判定し、３になっていないと判定された場合、その処理は、ステップＳ５３に戻り、それ以降の処理が繰り返される。すなわち、カウンタｋが３になるまで、ステップＳ５３乃至Ｓ５５の処理が繰り返される。
【０１７２】
ステップＳ５５において、カウンタｋが３であると判定された場合、すなわち、１フレーム分のセンサ出力信号が供給されてきたと判定された場合、ステップＳ５６において、メモリ２３１は、センサ出力信号である、演算部１４２の比較部１６２のコンパレータ１８２，１８４の比較結果CP(n)，CM(n)を記憶する。
【０１７３】
ステップＳ５７において、比較部２３２は、記憶した比較結果CP(n)，CM(n)が、（CP(n)，CM(n)）＝（０，０），（０，１）、または、（１，０）であるか否かを判定する。より詳細には、比較部２３２は、（CP(n)，CM(n)）と、（０，０），（０，１）、および、（１，０）とをそれぞれ比較し、比較結果を判定部２３３に供給する。判定部２３３は、この比較結果に基づいて（CP(n)，CM(n)）＝（０，０），（０，１）、または、（１，０）であるか否かを判定する。例えば、ステップＳ５７において、（CP(n)，CM(n)）＝（０，０），（０，１）、または、（１，０）である場合、その処理は、ステップＳ５８に進む。
【０１７４】
ステップＳ５８において、判定部２３３は、記憶した比較結果CP(n)，CM(n)が、（CP(n)，CM(n)）≠（CP(n-3)，CM(n-3)）であるか否かを判定する。より詳細には、比較部２３２が（CP(n)，CM(n)）と（CP(n-3)，CM(n-3)）とを比較し、比較結果を判定部２３３に出力する。判定部２３３は、この比較結果に基づいて、（CP(n)，CM(n)）≠（CP(n-3)，CM(n-3)）であるか否かを判定する。ステップＳ５８において、例えば、比較結果CP(n)，CM(n)が、（CP(n)，CM(n)）≠（CP(n-3)，CM(n-3)）であると判定された場合、その処理は、ステップＳ５９に進む。
【０１７５】
ステップＳ５９において、判定部２３３は、カウンタｍを１インクリメントする。ステップＳ６０において、判定部２３３は、カウンタｍが２となっているか否かを判定し、例えば、カウンタｍが２となっていると判定した場合、その処理は、ステップＳ６１に進む。
【０１７６】
ステップＳ６１において、判定部２３３は、比較結果CP(n)とCM(n)が、CP(n)＝CM(n)＝０であるか否かを判定する。より詳細には、比較部２３２が、CP(n)とCM(n)をそれぞれ０と比較し、比較結果を判定部２３３に出力する。判定部２３３は、この比較結果に基づいて、比較結果CP(n)とCM(n)が、CP(n)＝CM(n)＝０であるか否かを判定する。
【０１７７】
ステップＳ６１において、比較結果CP(n)とCM(n)が、CP(n)＝CM(n)＝０ではないと判定された場合、ステップＳ６２において、判定部２３３は、エラーなしの通知をIDデコード回路２１１に出力する。
【０１７８】
ステップＳ６３において、判定部２３３は、IDデコード回路２１１より処理の終了が指示されたか否かを判定し、処理の終了が指示されていないと判定された場合、その処理は、ステップＳ６４に進む。
【０１７９】
ステップＳ６４において、判定部２３３は、カウンタｍを０に初期化し、その処理は、ステップＳ５３に戻る。
【０１８０】
ステップＳ５７において、（CP(n)，CM(n)）＝（０，０），（０，１）、または、（１，０）ではないと判定された場合、ステップＳ５８において、（CP(n)，CM(n)）≠（CP(n-3)，CM(n-3)）ではないと判定された場合、または、ステップＳ６１において、比較結果CP(n)とCM(n)が、CP(n)＝CM(n)＝０であると判定された場合、その処理は、ステップＳ６６に進み、判定部２３３は、IDデコード回路２１１にエラーが検出されたことを通知し、その処理は、ステップＳ６３に進む。
【０１８１】
ステップＳ６０において、カウンタｍが２ではないと判定された場合、ステップＳ６５において、判定部２３３は、カウンタｋを０に初期化し、その処理は、ステップＳ５３に戻り、それ以降の処理が繰り返される。
【０１８２】
すなわち、ステップＳ５３乃至Ｓ５５の処理が繰り返されることにより、図２４の点線の矢印で示されるように、スタートコードが検出された時刻ｔ１４乃至ｔ１５のフレームの次のタイミングである時刻ｔ１５乃至ｔ１６のフレームでステップＳ５７乃至Ｓ６０の処理が実行され、この処理が３フレーム毎に繰り返される。
【０１８３】
これは、図２４で示されるように、光ビーコン１１は、３フレーム連続して、同じマンチェスタ符号化された信号を点滅により送信するので、３フレーム毎に比較結果CP(n)，CM(n)を読み出して、所定の値となっているか否かを判定する。
【０１８４】
より具体的には、まず、ステップＳ５７において、（CP(n)，CM(n)）が（０，０），（０，１）、または、（１，０）であるか否かが判定される。これは、比較結果CP(n)，CM(n)は、相互に正負が反転した値となるものなので、エラーが発生していなければ、（０，０），（０，１）、または、（１，０）のいずれかを取ることになるはずであるからである。
【０１８５】
次に、ステップＳ５８において、（CP(n)，CM(n)）≠（CP(n-3)，CM(n-3)）であるか否かが判定される。これは、マンチェスタ符号化により、送信されてくる信号は、７フレーム以上同じ符号となることがないため、例えば、図２４で示される時刻ｔ２１乃至ｔ２２と、時刻ｔ２４乃至ｔ２５のフレームに対応する比較結果（CP(n)，CM(n)）のように、最大でも６フレームの間に、最大値と最小値を必ず取ることになる。結果として、エラーが発生していなければ、送信するデータは、最大でも６フレームの間に、立ち上がりエッジと立ち下がりエッジがどこかに必ず含まれることになるので、３フレーム間隔で同じ信号が検出されないことになる。
【０１８６】
そして、ステップＳ６０において、カウンタｍが２であるかが判定されて、ｍが２であるとき、ステップＳ６１において、比較結果（CP(n)，CM(n)）がいずれも１であるか否かが判定される。
【０１８７】
カウンタｍが２となるときにのみ、すなわち、ステップＳ５３乃至Ｓ６０の処理が２回繰り返される毎に、ステップＳ６１の処理が実行されるため、ステップＳ６１の処理は、実質的には、６フレームに１回実行され、さらに、初期設定の値により、スタートコードが検出されたタイミングから６フレーム毎の信号、すなわち、データビットを構成する０１、または、１０の信号を構成する、後半の信号に対してなされる。
【０１８８】
より詳細には、例えば、図２４においては、時刻ｔ２１乃至ｔ２２のフレーム、および、時刻ｔ２７乃至ｔ２８のフレームに対応する、データビットの後半の信号の比較結果（CP(n)，CM(n)）が１であるか否かが判定されることにより、エラーの有無が判定される。これは、データビットの後半の信号に対応する比較結果CP(n)，CM(n)は、相互に正負が反転した値となるので、エラーが発生していなければ、いずれも１を取ることになるはずであるからである。
【０１８９】
以上の処理により、エラーが検出されるので、マンチェスタ符号化された送信データのエラーを正確に判定することができ、結果として、エラーのない正しい送信データを選択的に取得することが可能となる。
【０１９０】
以上の例においては、光ビーコン１１が撮像されるとき、撮像された画素に変更がない場合、すなわち、画像内のそれぞれの画素に撮像されている対象となるものの位置が固定された状態であることが前提となる場合について説明してきた。つまり、光ビーコン１１は、点滅により送信データを送信しているので、ID認識カメラ２１が撮像する範囲が変化してしまうような場合、撮像されている画像内で光ビーコン１１の位置が変化することになってしまい、正確にエラーの検出、または、データの取得ができない恐れがある。
【０１９１】
そこで、以下の例においては、光ビーコン１１が撮像されている画素と、その周辺の複数の画素から光ビーコン１１の点滅パターンを検出することにより、光ビーコン１１の点滅パターンを検出することで、正確な送信データの取得を可能にするようにしてもよい。
【０１９２】
図２５は、注目画素の周辺の複数の画素から光ビーコン１１の点滅パターンを検出することにより、光ビーコン１１の点滅パターンを検出できるようにしたIDデコード処理部１４４の構成を示すブロック図である。基本的な構成は、図６のIDデコード処理部１４４と同様であるが、エラー検出部２１０に代えてエラー検出部２７１が、ID重心計算回路２２２に代えてID重心計算回路２８２がそれぞれ設けられ、さらに、重み計算部２５１を新たに設けた点が異なる。
【０１９３】
エラー検出部２７１は、基本的に図６のエラー検出部２１０と同様の処理を実行するが、注目している画素（以下、注目画素と称する）のみならず、その周辺の画素（例えば、水平方向、垂直方向、および、対角方向に隣接する画素）についても同時にエラー検出処理を実行する。尚、詳細については、図２６を参照して後述する。
【０１９４】
また、図２５のIDデコード処理回路２１１は、図６のIDデコード処理回路２１１と基本的に同様の処理を実行するが、注目画素と、その周辺の画素に基づいて、デコード処理を実行する点で異なる。
【０１９５】
重み計算部２８１は、注目画素と、その周辺の画素で受光される光ビーコン１１から発せられる光の受光時間に基づいて、注目画素と、その周辺の画素のそれぞれについて重みを計算し、ID重心計算回路２８２に供給する。
【０１９６】
ID重心計算回路２８２は、基本的な機能は、図６のID重心計算回路２２２と同様の処理を実行するが、さらに、重心計算において、重み計算部２８１より供給された重みにより、重心位置を計算する。
【０１９７】
次に、図２６を参照して、エラー検出部２７１の詳細な構成について説明する。基本的には、図７のエラー検出部２１０と同様の構成であるが、メモリ２３１、比較部２３２、および、判定部２３３に代えて、メモリ２９１、比較部２９２、および、判定部２９３が設けられている。メモリ２９１、比較部２９２、および、判定部２９３は、それぞれメモリ２３１、比較部２３２、および、判定部２３３と同様の機能を有するものであるが、さらに、注目画素のみならず、その周辺の画素を含めた複数の画素の処理も同時に実行する。
【０１９８】
次に、図２７のフローチャートを参照して、IDデコード処理について説明する。尚、ステップＳ７１乃至Ｓ７５，Ｓ７８の処理は、図２１のフローチャートを参照して説明したステップＳ３１乃至Ｓ３５，Ｓ３８の処理と同様であるので、その説明は、省略する。
【０１９９】
ここで、図２８のフローチャートを参照して、ステップＳ７４の処理により開始されるエラー検出処理について説明する。尚、ステップＳ８１乃至Ｓ８５、および、ステップＳ８９乃至Ｓ９６の処理は、図２３のフローチャートにおけるステップＳ５１乃至Ｓ５５、および、ステップＳ５９乃至Ｓ６６の処理と同様であるので、その説明は省略する。
【０２００】
ステップＳ８６において、メモリ２９１は、センサ出力信号である、演算部１４２の比較部１６２のコンパレータ１８２，１８４の比較結果CP(n)，CM(n)、および、その周辺画素に対応する比較結果CPw(n)，CMw(n)を記憶する。ここで、比較結果CP(n)，CM(n)は、注目画素の比較結果を示し、比較結果CPw(n)，CMw(n)は、注目画素周辺の複数の画素の比較結果を示す。
【０２０１】
すなわち、図２９の(x,y)で示される画素が注目画素である場合、例えば、図中の太線で囲まれる(x-1,y-1)，(x,y-1)，(x+1,y-1)，(x-1,y)，(x+1,y)，(x-1,y+1)，(x,y+1)，(x+1,y+1)の合計８画素のそれぞれに対応する、正のフレーム間差分、および、負のフレーム間差分に基づいた比較結果CPw(n)，CMw(n)がそれぞれ記憶される。従って、今の場合、実質的に記憶される比較結果は、注目画素と周辺画素のそれぞれについての正負のフレーム間差分に対応する比較結果となるので、１個の注目画素について、合計１６個の比較結果が記憶されることになる。尚、この注目画素に対応する周辺画素の配置は、図２９で示されるものに限るものではなく、例えば、注目画素を中心とした、５画素×５画素の範囲に存在する、注目画素を除いた２４画素を周辺画素としてもよく、一般的には、例えば、（２ｎ＋１）画素×（２ｎ＋１）画素の範囲に存在する画素としてもよい。
【０２０２】
ステップＳ８７において、比較部２９２は、記憶した注目画素の比較結果CP(n)，CM(n)、および、注目画素の周辺画素の比較結果CPw(n)，CMw(n)が、全て（０，０），（０，１）、または、（１，０）であるか否かを判定する。すなわち、比較部２９２は、図２３のフローチャートにおけるステップＳ５７の処理を、注目画素に対応する比較結果と、その全ての周辺画素に対応する比較結果で実行する。
【０２０３】
例えば、ステップＳ８７において、注目画素の比較結果CP(n)，CM(n)、および、注目画素の周辺画素の比較結果CPw(n)，CMw(n)が、全て（０，０），（０，１）、または、（１，０）である場合、その処理は、ステップＳ８８に進む。また、ステップＳ８７において、注目画素の比較結果CP(n)，CM(n)、および、注目画素の周辺画素の比較結果CPw(n)，CMw(n)が、全て（０，０），（０，１）、または、（１，０）ではない場合、その処理は、ステップＳ９６に進む。
【０２０４】
ステップＳ８８において、判定部２９３は、記憶した注目画素の比較結果CP(n)，CM(n)が、（CP(n)，CM(n)）≠（CP(n-3)，CM(n-3)）で、かつ、全ての周辺画素に対応する比較結果CPw(n)，CMw(n)が、（CPw(n)，CMw(n)）≠（CPw(n-3)，CMw(n-3)）であるか否かを判定する。より詳細には、比較部２９２が（CP(n)，CM(n)）と（CP(n-3)，CM(n-3)）とを比較し、さらに、全ての周辺画素の（CPw(n)，CMw(n)）と（CPw(n-3)，CMw(n-3)）とを比較し、比較結果を判定部２９３に出力する。判定部２９３は、この比較結果に基づいて、（CP(n)，CM(n)）≠（CP(n-3)，CM(n-3)）であって、かつ、（CPw(n)，CMw(n)）≠（CPw(n-3)，CMw(n-3)）であるか否かを判定する。
【０２０５】
ステップＳ８８において、注目画素の比較結果が（CP(n)，CM(n)）≠（CP(n-3)，CM(n-3)）であって、かつ、全ての周辺画素の比較結果が（CPw(n)，CMw(n)）≠（CPw(n-3)，CMw(n-3)）であると判定された場合、その処理は、ステップＳ８９に進む。一方、ステップＳ８８において、注目画素の比較結果が（CP(n)，CM(n)）≠（CP(n-3)，CM(n-3)）ではないか、または、全ての周辺画素の比較結果が（CPw(n)，CMw(n)）≠（CPw(n-3)，CMw(n-3)）ではないと判定された場合、その処理は、ステップＳ９６に進む。
【０２０６】
ステップＳ９１において、判定部２９３は、注目画素の比較結果CP(n)とCM(n)と、全ての周辺画素の比較結果CPw(n)とCMw(n)が、CP(n)＝CM(n)＝CPw(n)＝CMw(n)＝０であるか否かを判定する。より詳細には、比較部２９２が、CP(n)，CM(n)，CPw(n)，CMw(n)をそれぞれ０と比較し、比較結果を判定部２９３に出力する。判定部２９３は、この比較結果に基づいて、比較結果CP(n)，CM(n)，CPw(n)，CMw(n)が、CP(n)＝CM(n)＝CPw(n)＝CMw(n)＝０であるか否かを判定する。
【０２０７】
ステップＳ９１において、注目画素の比較結果CP(n)とCM(n)、および、全ての周辺画素CPw(n)とCMw(n)が、CP(n)＝CM(n)＝CPw(n)＝CMw(n)＝０ではないと判定された場合、ステップＳ９２において、判定部２９３は、エラーなしの通知をIDデコード回路２１１に出力する。
【０２０８】
ステップＳ９１において、注目画素の比較結果CP(n)とCM(n)、および、全ての周辺画素CPw(n)とCMw(n)が、CP(n)＝CM(n)＝CPw(n)＝CMw(n)＝０ではないと判定された場合、その処理は、ステップＳ９６に進む。
【０２０９】
以上の処理により、注目画素と、その周辺画素について、同時にエラー検出処理がなされる。
【０２１０】
ここで、図２７のフローチャートの説明に戻る。
【０２１１】
ステップＳ７６において、図２５を参照して説明したIDデコード処理部１４４のIDデコード回路２１１は、注目画素と、その周辺画素の比較結果に基づいてIDデータをデコード処理する。
【０２１２】
すなわち、図２５のIDデコード処理部１４４においては、基本的に、図６のIDデコード処理部１４４における注目画素のセンサ出力信号を処理したときと同様の処理を行うが、複数の画素に対応するセンサ出力信号を用いることにより、以下のような処理を実行する。
【０２１３】
すなわち、今、注目画素のコンパレータ１８２の出力をCP(x,y)とすると、その周辺の画素を含めたコンパレータ１８２の出力は、例えば、周辺画素を注目画素を中心とした(2n-1)画素×(2n-1)画素の範囲である場合、CPw(x-n,y-n)，CPw(x-n+1,y-n+1)，CPw(x-n+2,y-n+2)，・・・CP(x,y)・・・CPw(x+n-1,y+n-1)，CPw(x+n,y+n)となる。
【０２１４】
注目画素で測定している光ビーコン１１の位置が、全ての信号を送信する時間よりも短い時間間隔で移動すると、この注目画素とその周辺の画素のいずれかのコンパレータ１８２の出力が、他の画素に移動する事になる。
【０２１５】
そこで、以下の式（３）で示されるような関数を定義することにより、IDデコード回路２１１は、注目画素のコンパレータ１８２の出力を認識する。
【０２１６】
【数３】
0004269220.tif 000006
0004269220.tif 000007
【０２１７】
ここで「｜」はＯＲ演算である。これは、例えば、ｎが１であった場合、図２９で示した注目画素(x,y)を中心としたウィンドウWに含まれた画素のいずれかのコンパレータ１８２の比較結果において、１が検出されたとき、注目画素において１が検出されたことを示している。従って、このような処理により、データ受信途中で信号となる点滅パターンが、注目画素をはずれて隣の画素に移動しても、続けてデータを受信してデコードすることが可能となる。尚、コンパレータ１８４の比較結果についても同様に処理する。
【０２１８】
そして、デコード回路２１１は、デコード結果をフレームメモリ２０３に順次供給する。すなわち、上述したように、デコード回路２１１は、マンチェスタ符号化された信号の、２ビットの信号のうち、後半部分となるビットの信号を読み出して、通常の信号に符号化し、これらを画像上の画素位置に対応するフレームメモリ２０３に順次記憶させる。
【０２１９】
さらに、ID重心計算回路２８２は、IDレジスタ２２１を介して、フレームメモリ２０３に記憶されているIDデータの位置情報をID座標格納メモリ２０５に供給し、記憶させる。
【０２２０】
なお、ここでは、「注目画素の周辺画素の情報」として(2n+1)×(2n+1)の正方形ウィンドウで説明したが、正方形ウィンドウに限定するものではない。例えば長方形や４隣接画素など、他の形状であっても良い。
【０２２１】
また、コンパレータ１８４からの比較結果についても、同様の処理がなされる。
【０２２２】
ここで、図２７のフローチャートの説明に戻る。
【０２２３】
ステップＳ７７において、重心計算処理が実行される。
【０２２４】
ここで、図３０のフローチャートを参照して、重心計算処理について説明する。
【０２２５】
ステップＳ１０１において、重み計算部２５１は、各画素の重みを計算する。より詳細には、重み計算部２５１は、以下の式（４）の演算を各画素について実行して、各画素の重みを計算し、ID重心計算回路２８２に出力する。
【０２２６】
【数４】
0004269220.tif 000008
0004269220.tif 000009
【０２２７】
ここで、α(i)は、ｉ番目の注目画素の重みを示し、tsumは、注目画素と、その周辺画素が光を受光した時間、すなわち、コンパレータ１８２からの比較結果が１となっていた時間、または、コンパレータ１８４からの比較結果が１となっていた時間の総合計を示し、さらに、td(i)は、注目画素が光を受光した時間である。すなわち、重み計算部２５１は、図２９で示される注目画素(x,y)に対応する周辺画素がウィンドウWで示されている場合、ウィンドウWで示される９画素分の領域で受光する光ビーコン１１の総受光時間に対する注目画素の受光する時間の割合を重みとして計算し、ID重心計算回路２８２に出力する。
【０２２８】
ステップＳ１０２において、ID重心計算回路２８２は、ID座標格納メモリ２０５に記憶されているIDデータ毎の座標情報を読み足し、さらに、重み計算部２５１より供給された重みをそれぞれ乗じる。
【０２２９】
ステップＳ１０３において、ID重心計算回路２８２は、座標の総和を求めて画素数で割ることにより重心位置を求める。
【０２３０】
より詳細には、ID重心計算回路２８２は、ステップＳ１０２，Ｓ１０３において、以下の式（５）の計算を実行し、重みを考慮した重心計算を実行する。
【０２３１】
【数５】
0004269220.tif 000010
0004269220.tif 000011
【０２３２】
ここで、Gpは、注目画素の重心位置を示し、Nは、注目画素とその周辺画素の総合計画素数を示し、ｉは、注目画素と周辺画素を識別する番号を示し、px(i)とpy(i)は、ｉ番目の注目画素、または、周辺画素のｘ座標とｙ座標を示す。
【０２３３】
すなわち、ID重心計算回路２８２は、ステップＳ１０２において、式（５）におけるα(i)px(i)とα(i)py(i)について、１≦i≦Nの範囲で演算を実行し、ステップＳ１０３において、式（５）におけるサメーションの演算を実行することにより重心位置を計算する。
【０２３４】
このように重心が計算されることにより、各画素の画素位置のみから重心が求められるのではなく、光ビーコン１１から受光された時間に対応した重みに基づいて重心が求められることにより、受光された位置がより正確に求められることになる。
【０２３５】
尚、重みは、上述の式（４）により光ビーコン１１の点滅パターンを受光した時間に対応して重みが付加されていたが、時間は連続変量であるため、実際の演算においては、離散変量に変換する必要がある。従って、上述の重みの演算は、以下の式（６）を用いるようにしてもよい。
【０２３６】
【数６】
0004269220.tif 000012
0004269220.tif 000013
【０２３７】
ここで、c(i)は、注目画素、または、その周辺画素が受信したデータビット数であり、csum(i)は、注目画素、および、その周辺画素が受信したデータビット数の総数である。このように、受信したデータビット数は、光ビーコン１１の受光時間に比例することになるので、実質的に、式（４）で求められる重みを連続変量から離散変量へ変換した近似値が得られることになる。
【０２３８】
以上によれば、重みを考慮した正確な重心位置が求められるので、結果として、光ビーコンとID認識カメラを利用したデータの通信における、通信精度を向上させることが可能となる。
【０２３９】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行させることが可能な、例えば汎用のパーソナルコンピュータなどに記録媒体からインストールされる。
【０２４０】
この記録媒体は、図２，図３に示すようにPCサーバ１、および、携帯端末４に予め組み込まれた状態でユーザに提供される、プログラムが記録されている記憶部３８，７８だけではなく、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク５１，９１（フレキシブルディスクを含む）、光ディスク５２，９２（CD-ROM(Compact Disk-Read Only Memory)，DVD（Digital Versatile Disk）を含む）、光磁気ディスク５３，９３（MD（Mini-Disc）（登録商標）を含む）、もしくは半導体メモリ５４，９４（Memory Stickを含む）などよりなるパッケージメディアにより構成される。
【０２４１】
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
【０２４２】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０２４３】
【発明の効果】
本発明によれば、光ビーコンとID認識カメラを利用したデータの通信における通信精度を向上させることが可能となる。
【図面の簡単な説明】
【図１】本発明を適用した情報通信システムの一実施の形態の構成を示す図である。
【図２】図１のPCサーバの構成を示すブロック図である。
【図３】図１の携帯端末の構成を示すブロック図である。
【図４】図３のID認識カメラのブロック図である。
【図５】図４の比較部の構成を示すブロック図である。
【図６】図４のIDデコード処理部のブロック図である。
【図７】図６のエラー検出部のブロック図である。
【図８】図１の光ビーコンのブロック図である。
【図９】マンチェスタ符号化を説明する図である。
【図１０】マンチェスタ符号化を説明する図である。
【図１１】図１の光ビーコンのその他のブロック図である。
【図１２】  ID認識カメラが点滅パターンをデコードする動作を説明する図である。
【図１３】光ビーコンの点滅パターンとデコードされるデータの関係を説明する図である。
【図１４】光ビーコンの点滅パターンとデコードされるデータの関係を説明する図である。
【図１５】光ビーコンの点滅パターンとデコードされるデータの関係を説明する図である。
【図１６】光ビーコンの点滅パターンとデコードされるデータの関係を説明する図である。
【図１７】発光処理を説明するフローチャートである。
【図１８】送信データ取得処理を説明するフローチャートである。
【図１９】比較処理を説明するフローチャートである。
【図２０】比較処理を説明する図である。
【図２１】  IDデコード処理を説明するフローチャートである。
【図２２】スタートコード検出処理を説明するフローチャートである。
【図２３】エラー検出処理を説明するフローチャートである。
【図２４】エラー検出処理を説明する図である。
【図２５】  IDデコード処理部のその他の構成を示すブロック図である。
【図２６】エラー検出部のその他の構成を示すブロック図である。
【図２７】  IDデコード処理を説明するフローチャートである。
【図２８】エラー検出処理を説明するフローチャートである。
【図２９】注目画素と周辺画素を説明するフローチャートである。
【図３０】重心計算処理を説明するフローチャートである。
【符号の説明】
１  PCサーバ，  ４  携帯端末，  ３，３−１乃至３−ｎ  情報ユニット，  １１，１１−１乃至１１−６  光ビーコン１１１  ID認識カメラ，  １８１  正フレーム間差分計算部，  １８２  コンパレータ，  １８３  負フレーム間差分計算部，  １８４  コンパレータ，  ２１０  エラー検出部，  ２１１  IDデコード回路，  ２４１  エラー検出部，  ２５１  重み計算部２８１  ID重心計算回路
【図１】
0004269220.tif 000014
【図２】
0004269220.tif 000015
【図３】
0004269220.tif 000016
【図４】
0004269220.tif 000017
【図５】
0004269220.tif 000018
【図６】
0004269220.tif 000019
【図７】
0004269220.tif 000020
【図８】
0004269220.tif 000021
【図９】
0004269220.tif 000022
【図１０】
0004269220.tif 000023
【図１１】
0004269220.tif 000024
【図１２】
0004269220.tif 000025
【図１３】
0004269220.tif 000026
【図１４】
0004269220.tif 000027
【図１５】
0004269220.tif 000028
【図１６】
0004269220.tif 000029
【図１７】
0004269220.tif 000030
【図１８】
0004269220.tif 000031
【図１９】
0004269220.tif 000032
【図２０】
0004269220.tif 000033
【図２１】
0004269220.tif 000034
【図２２】
0004269220.tif 000035
【図２３】
0004269220.tif 000036
【図２４】
0004269220.tif 000037
【図２５】
0004269220.tif 000038
【図２６】
0004269220.tif 000039
【図２７】
0004269220.tif 000040
【図２８】
0004269220.tif 000041
【図２９】
0004269220.tif 000042
【図３０】
0004269220.tif 000043