(57)【要約】【課題】光ビーコンとＩＤ認識カメラを利用したデータの通信における通信精度を向上させる。【解決手段】受光部１４１は、マンチェスタ符号化されたデータに基づいて、所定の点滅パターンで発光する送信装置により発光される光の信号を受光する。記憶部１６１は、受光部１４１により受光された光の信号を、所定の点滅パターンのＮ倍の周波数で、かつ、フレーム単位で記憶する。比較部１６２は、記憶部１６１に記憶されたフレーム間の受光量の情報のうち、Ｎフレーム毎の複数のフレームの受光量の情報を所定の形式で演算し、演算結果を所定の閾値と比較する。ＩＤデコード処理部１４４は、比較結果に基づいて、マンチェスタ符号化されたデータをデコードする。【選択図】      図４
2004349766.tif 000002
【特許請求の範囲】
【請求項１】
マンチェスタ符号化されたデータに基づいて、所定の点滅パターンで発光する送信装置により発光される光の信号を受光する受光手段と、
前記受光手段により受光された光の信号を、前記所定の点滅パターンのＮ倍の周波数で、かつ、フレーム単位で取得する取得手段と、
前記取得手段により取得された前記信号を記憶する記憶手段と、
前記記憶手段に記憶されたフレーム間の受光量の情報のうち、Ｎフレーム毎の複数のフレームの受光量の情報を演算する第１の演算手段と、
前記第１の演算結果を所定の閾値と比較する第１の比較手段と、
前記第１の比較手段による第１の比較結果に基づいて、前記マンチェスタ符号化されたデータをデコードするデコード手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記第１の演算手段は、前記記憶手段に記憶された前記Ｎフレーム毎のそれぞれのフレームについて、各フレームから、前記フレームより２Ｍ個前までのフレームのうち、第１フレーム乃至第Ｍフレームまでの受光量の和と、第（Ｍ＋１）フレーム乃至第２Ｍフレームまでの受光量の和との差分である第１の差分を演算し、
前記第１の比較手段は、前記第１の差分を前記第１の演算結果として、前記所定の閾値である第１の閾値と比較する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記記憶手段に記憶されたフレームの受光量の情報のうち、今のフレーム、Ｎフレーム前のフレーム、および、２Ｎフレーム前のフレームのそれぞれの、前記第１の比較手段による第１の比較結果に基づいて、前記データの誤りのエラーを検出するエラー検出手段をさらに備える
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記第１の演算手段は、前記記憶手段に記憶されたフレームの受光量の情報のうち、今のフレーム、Ｎフレーム前のフレーム、および、２Ｎフレーム前のフレームの、それぞれの２Ｍ個前までのフレームのうち、第１フレーム乃至第Ｍフレームまでの受光量の和と、第（Ｍ＋１）フレーム乃至第２Ｍフレームまでの受光量の和との第１の差分を演算し、
前記第１の比較手段は、前記今のフレーム、Ｎフレーム前のフレーム、および、２Ｎフレーム前のフレームの、それぞれの前記第１の差分と、前記所定の閾値である第１の閾値とを比較し、
前記エラー検出手段は、前記第１の比較手段による前記今のフレーム、Ｎフレーム前のフレーム、および、２Ｎフレーム前のフレームに対応する、前記第１の比較結果に基づいて、前記エラーを検出する
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記今のフレーム、前記Ｎフレーム前のフレーム、および、前記２Ｎフレーム前のフレームの前記第１の差分のいずれかが、前記第１の閾値よりも大きく、かつ、今のフレーム、および、Ｎフレーム前のフレーム、の前記第１の差分のいずれもが前記第１の閾値よりも大きい場合、
または、前記今のフレーム、前記Ｎフレーム前のフレーム、および、前記２Ｎフレーム前のフレームの前記第１の差分のいずれかが、前記第１の閾値よりも大きく、かつ、Ｎフレーム前のフレーム、および、２Ｎフレーム前のフレーム、の前記第１の差分のいずれもが、前記第１の閾値よりも大きい場合、
前記エラー検出手段は、前記第１の比較結果に基づいて、前記エラーを検出する
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記記憶手段に記憶された前記Ｎフレーム毎のそれぞれのフレームについて、前記各フレームから、前記フレームより２Ｍ個前までのフレームのうち、第（Ｍ＋１）フレーム乃至第２Ｍフレームまでの受光量の和と、第１フレーム乃至第Ｍフレームまでの受光量の和との差分である第２の差分を演算する第２の演算手段と、
前記第２の演算結果を第２の閾値と比較する第２の比較手段とをさらに備え、
前記今のフレーム、前記Ｎフレーム前のフレーム、および、前記２Ｎフレーム前のフレームの前記第１の差分のいずれかが、前記第１の閾値よりも大きく、かつ、今のフレーム、および、Ｎフレーム前のフレーム、の前記第１の差分のいずれもが前記第１の閾値よりも大きい場合、
前記今のフレーム、前記Ｎフレーム前のフレーム、および、前記２Ｎフレーム前のフレームの前記第１の差分のいずれかが、前記第１の閾値よりも大きく、かつ、Ｎフレーム前のフレーム、および、２Ｎフレーム前のフレーム、の前記第１の差分のいずれもが、前記第１の閾値よりも大きい場合、
前記今のフレーム、前記Ｎフレーム前のフレーム、および、前記２Ｎフレーム前のフレームの前記第２の差分のいずれかが、前記第２の閾値よりも大きく、かつ、今のフレーム、および、Ｎフレーム前のフレーム、の前記第２の差分のいずれもが前記第２の閾値よりも大きい場合、
前記今のフレーム、前記Ｎフレーム前のフレーム、および、前記２Ｎフレーム前のフレームの前記第２の差分のいずれかが、前記第２の閾値よりも大きく、かつ、Ｎフレーム前のフレーム、および、２Ｎフレーム前のフレーム、の前記第２の差分のいずれもが、前記第２の閾値よりも大きい場合、
または、前記第１の差分が、前記第１の閾値よりも大きく、かつ、前記第２の差分が、前記第２の閾値よりも大きい場合、
前記エラー検出手段は、前記第１の比較結果、および、前記第２の比較結果に基づいて、前記エラーを検出する
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
マンチェスタ符号化されたデータに基づいて、所定の点滅パターンで発光する送信装置により発光される光の信号を受光する受光装置で受光された光の信号を、前記所定の点滅パターンのＮ倍の周波数で、かつ、フレーム単位で取得する取得ステップと、
前記取得ステップの処理で取得されたフレーム間の受光量の情報のうち、Ｎフレーム毎の複数のフレームの受光量の情報を演算する第１の演算ステップと、
前記第１の演算結果を所定の閾値と比較する第１の比較ステップと、
前記第１の比較ステップの処理での第１の比較結果に基づいて、前記マンチェスタ符号化されたデータをデコードするデコードステップと
を含むことを特徴とする情報処理方法。
【請求項８】
マンチェスタ符号化されたデータに基づいて、所定の点滅パターンで発光する送信装置により発光される光の信号を受光する受光装置で受光された光の信号を、前記所定の点滅パターンのＮ倍の周波数で、かつ、フレーム単位で取得する取得ステップと、
前記取得ステップの処理で取得されたフレーム間の受光量の情報のうち、Ｎフレーム毎の複数のフレームの受光量の情報を演算する第１の演算ステップと、
前記第１の演算結果を所定の閾値と比較する第１の比較ステップと、
前記第１の比較ステップの処理での第１の比較結果に基づいて、前記マンチェスタ符号化されたデータをデコードするデコードステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項９】
マンチェスタ符号化されたデータに基づいて、所定の点滅パターンで発光する送信装置により発光される光の信号を受光する受光装置で受光された光の信号を、前記所定の点滅パターンのＮ倍の周波数で、かつ、フレーム単位で取得する取得ステップと、
前記取得ステップの処理で取得されたフレーム間の受光量の情報のうち、Ｎフレーム毎の複数のフレームの受光量の情報を演算する第１の演算ステップと、
前記第１の演算結果を所定の閾値と比較する第１の比較ステップと、
前記第１の比較ステップの処理での第１の比較結果に基づいて、前記マンチェスタ符号化されたデータをデコードするデコードステップと
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置および方法、記録媒体、並びにプログラムに関し、特に、光ビーコンとＩＤ認識カメラを利用したデータの通信における、通信精度を向上できるようにした情報処理装置および方法、記録媒体、並びにプログラムに関する。
【０００２】
【従来の技術】
所定の点滅パターンで光を発することにより信号を送信する送信装置と、その送信装置により発せられる光の点滅パターンを撮像し、撮像された点滅パターンに基づいて、データ通信を実現する送受信システムが存在する。
【０００３】
例えば、撮像装置として、ＩＤ（Ｉｄｅｎｔｉｆｉｅｒ）認識カメラが、画像を撮像すると共に、上述したような送信装置として機能する光ビーコンにより発せられる信号に基づいてＩＤデータを送受信可能なシステムがある（例えば、特許文献１参照）。
【０００４】
【特許文献１】
特願２００１−３２５３５６
【０００５】
【発明が解決しようとする課題】
しかしながら、上述のシステムにおいては、外乱光による干渉が生じると、ＩＤ認識カメラは、光の点滅パターンを正しく読み取ることができず、正しくデータを受信することができない状態となってしまうため、結果としてエラーが生じてしまうという課題があった。
【０００６】
また、上述のシステムにおいては、送信データは点滅パターン、すなわち時間方向の光のパターンで表現されることになるために、各画素毎にデータが受信されてデコードされると、データ受信中に送信装置と受信装置間の相対的な位置関係に変化が生じた場合、データの受信途中で、光が受光される画素が、隣接位置に存在する画素へと移動してしまうので、画素単位で受光されるパターンが変化してしまい、正しくデータを受信できないという課題があった。
【０００７】
また、このような現象は、送信データのデータ長が短ければ、その影響は小さいが、データ長が長くなるにしたがって影響が大きくなるため、大きなデータほどエラーが生じやすくなると言う課題があった。
【０００８】
さらに、点滅パターンにより表現される信号の受光面積が大きい場合、その影響は小さいが、光ビーコンで光を発光させる部分の面積が小さかったり、また、光ビーコンとＩＤ認識カメラとの距離が離れてしまうと、相対的に受光面積が小さくなってしまうため、結果的に、その影響が大きくなり、データの受信途中でデータが途切れやすくなってしまうという課題があった。
【０００９】
これらの課題に対応するため、受信したデータの位置の算出は、同じデータを受信した複数の画素の座標から重心を求めたり、外接四角形を求めたりという手法を用いることにより、受光される画素の位置の変化に対応できるようにしてきたが、これらの手法では、データを途中まで受信した画素があったとき、その途中まで信号を受信していた画素の情報は使用できない状態になってしまうため、算出される位置の精度の向上は困難なものであった。
【００１０】
本発明はこのような状況に鑑みてなされたものであり、データ伝送効率の高い符号化としてマンチェスタ符号化を採用し、さらに環境光などの外乱により生じてしまうエラーを検出すると共に、受信データのデコードを各画素毎に行うときに、近傍の画素の情報をも用いることで、データ受信中に送信装置と受信装置の間で相対的に位置関係の変化が生じても、通信状態を安定させ、データを一部分でも受信した画素の情報をも用いるようにすることで、より高精度なデータの通信を可能にするものである。
【００１１】
【課題を解決するための手段】
本発明の情報処理装置は、マンチェスタ符号化されたデータに基づいて、所定の点滅パターンで発光する送信装置により発光される光の信号を受光する受光手段と、受光手段により受光された光の信号を、所定の点滅パターンのＮ倍の周波数で、かつ、フレーム単位で取得する取得手段と、取得手段により取得された信号を記憶する記憶手段と、記憶手段に記憶されたフレーム間の受光量の情報のうち、Ｎフレーム毎の複数のフレームの受光量の情報を演算する第１の演算手段と、第１の演算結果を所定の閾値と比較する第１の比較手段と、第１の比較手段による第１の比較結果に基づいて、マンチェスタ符号化されたデータをデコードするデコード手段とを備えることを特徴とする。
【００１２】
前記第１の演算手段には、記憶手段に記憶されたＮフレーム毎のそれぞれのフレームについて、各フレームから、フレームより２Ｍ個前までのフレームのうち、第１フレーム乃至第Ｍフレームまでの受光量の和と、第（Ｍ＋１）フレーム乃至第２Ｍフレームまでの受光量の和との差分である第１の差分を演算させるようにすることができ、第１の比較手段には、第１の差分を第１の演算結果として、所定の閾値である第１の閾値と比較させるようにすることができる。
【００１３】
前記記憶手段に記憶されたフレームの受光量の情報のうち、今のフレーム、Ｎフレーム前のフレーム、および、２Ｎフレーム前のフレームのそれぞれの、第１の比較手段による第１の比較結果に基づいて、データの誤りのエラーを検出するエラー検出手段をさらに設けるようにさせることができる。
【００１４】
前記第１の演算手段は、記憶手段に記憶されたフレームの受光量の情報のうち、今のフレーム、Ｎフレーム前のフレーム、および、２Ｎフレーム前のフレームの、それぞれの２Ｍ個前までのフレームのうち、第１フレーム乃至第Ｍフレームまでの受光量の和と、第（Ｍ＋１）フレーム乃至第２Ｍフレームまでの受光量の和との第１の差分を演算させるようにすることができ、第１の比較手段には、今のフレーム、Ｎフレーム前のフレーム、および、２Ｎフレーム前のフレームの、それぞれの第１の差分と、所定の閾値である第１の閾値とを比較させるようにすることができ、エラー検出手段には、第１の比較手段による今のフレーム、Ｎフレーム前のフレーム、および、２Ｎフレーム前のフレームに対応する、第１の比較結果に基づいて、エラーを検出させるようにすることができる。
【００１５】
前記今のフレーム、Ｎフレーム前のフレーム、および、２Ｎフレーム前のフレームの第１の差分のいずれかが、第１の閾値よりも大きく、かつ、今のフレーム、および、Ｎフレーム前のフレーム、の第１の差分のいずれもが第１の閾値よりも大きい場合、または、今のフレーム、Ｎフレーム前のフレーム、および、２Ｎフレーム前のフレームの第１の差分のいずれかが、第１の閾値よりも大きく、かつ、Ｎフレーム前のフレーム、および、２Ｎフレーム前のフレーム、の第１の差分のいずれもが、第１の閾値よりも大きい場合、エラー検出手段には、第１の比較結果に基づいて、エラーを検出させるようにすることができる。
【００１６】
前記記憶手段に記憶されたＮフレーム毎のそれぞれのフレームについて、各フレームから、フレームより２Ｍ個前までのフレームのうち、第（Ｍ＋１）フレーム乃至第２Ｍフレームまでの受光量の和と、第１フレーム乃至第Ｍフレームまでの受光量の和との差分である第２の差分を演算する第２の演算手段と、第２の演算結果を第２の閾値と比較する第２の比較手段とをさらにもうけるようにさせることができ、今のフレーム、Ｎフレーム前のフレーム、および、２Ｎフレーム前のフレームの第１の差分のいずれかが、第１の閾値よりも大きく、かつ、今のフレーム、および、Ｎフレーム前のフレーム、の第１の差分のいずれもが第１の閾値よりも大きい場合、今のフレーム、Ｎフレーム前のフレーム、および、２Ｎフレーム前のフレームの第１の差分のいずれかが、第１の閾値よりも大きく、かつ、Ｎフレーム前のフレーム、および、２Ｎフレーム前のフレーム、の第１の差分のいずれもが、第１の閾値よりも大きい場合、今のフレーム、Ｎフレーム前のフレーム、および、２Ｎフレーム前のフレームの第２の差分のいずれかが、第２の閾値よりも大きく、かつ、今のフレーム、および、Ｎフレーム前のフレーム、の第２の差分のいずれもが第２の閾値よりも大きい場合、今のフレーム、Ｎフレーム前のフレーム、および、２Ｎフレーム前のフレームの第２の差分のいずれかが、第２の閾値よりも大きく、かつ、Ｎフレーム前のフレーム、および、２Ｎフレーム前のフレーム、の第２の差分のいずれもが、第２の閾値よりも大きい場合、または、第１の差分が、第１の閾値よりも大きく、かつ、第２の差分が、第２の閾値よりも大きい場合、エラー検出手段には、第１の比較結果、および、第２の比較結果に基づいて、エラーを検出させるようにすることができる。
【００１７】
本発明の情報処理方法は、マンチェスタ符号化されたデータに基づいて、所定の点滅パターンで発光する送信装置により発光される光の信号を受光する受光装置で受光された光の信号を、所定の点滅パターンのＮ倍の周波数で、かつ、フレーム単位で取得する取得ステップと、取得ステップの処理で取得されたフレーム間の受光量の情報のうち、Ｎフレーム毎の複数のフレームの受光量の情報を演算する第１の演算ステップと、第１の演算結果を所定の閾値と比較する第１の比較ステップと、第１の比較ステップの処理での第１の比較結果に基づいて、マンチェスタ符号化されたデータをデコードするデコードステップとを含むことを特徴とする。
【００１８】
本発明の記録媒体のプログラムは、マンチェスタ符号化されたデータに基づいて、所定の点滅パターンで発光する送信装置により発光される光の信号を受光する受光装置で受光された光の信号を、所定の点滅パターンのＮ倍の周波数で、かつ、フレーム単位で取得する取得ステップと、取得ステップの処理で取得されたフレーム間の受光量の情報のうち、Ｎフレーム毎の複数のフレームの受光量の情報を演算する第１の演算ステップと、第１の演算結果を所定の閾値と比較する第１の比較ステップと、第１の比較ステップの処理での第１の比較結果に基づいて、マンチェスタ符号化されたデータをデコードするデコードステップとを含むことを特徴とする。
【００１９】
本発明のプログラムは、マンチェスタ符号化されたデータに基づいて、所定の点滅パターンで発光する送信装置により発光される光の信号を受光する受光装置で受光された光の信号を、所定の点滅パターンのＮ倍の周波数で、かつ、フレーム単位で取得する取得ステップと、取得ステップの処理で取得されたフレーム間の受光量の情報のうち、Ｎフレーム毎の複数のフレームの受光量の情報を演算する第１の演算ステップと、第１の演算結果を所定の閾値と比較する第１の比較ステップと、第１の比較ステップの処理での第１の比較結果に基づいて、マンチェスタ符号化されたデータをデコードするデコードステップとをコンピュータに実行させることを特徴とする。
【００２０】
本発明の情報処理装置および方法、並びにプログラムにおいては、マンチェスタ符号化されたデータに基づいて、所定の点滅パターンで発光する送信装置により発光される光の信号が受光され、受光された光の信号が、所定の点滅パターンのＮ倍の周波数で、かつ、フレーム単位で取得され、取得された信号が記憶され、記憶されたフレーム間の受光量の情報のうち、Ｎフレーム毎の複数のフレームの受光量の情報が演算され、演算結果が所定の閾値と比較され、比較結果に基づいて、マンチェスタ符号化されたデータがデコードされる。
【００２１】
本発明の情報処理装置は、独立した装置であっても良いし、情報処理を行うブロックであっても良い。
【００２２】
【発明の実施の形態】
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００２３】
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
【００２４】
即ち、本発明の情報処理装置は、マンチェスタ符号化されたデータに基づいて、所定の点滅パターンで発光する送信装置により発光される光の信号を受光する受光手段例えば、図４の受光部１４１）と、受光手段により受光された光の信号を、所定の点滅パターンのＮ倍の周波数で、かつ、フレーム単位で取得する取得手段（例えば、図４の記憶部１６１）と、取得手段により取得された信号を記憶する記憶手段（例えば、図４の記憶部１６１）と、記憶手段に記憶されたフレーム間の受光量の情報のうち、Ｎフレーム毎の複数のフレームの受光量の情報を演算する第１の演算手段と、第１の演算結果を所定の閾値と比較する第１の比較手段（例えば、図４の比較部１６２）と、第１の比較手段による第１の比較結果に基づいて、マンチェスタ符号化されたデータをデコードするデコード手段（例えば、図６のＩＤデコード回路２１１）とを備えることを特徴とする。
【００２５】
本発明の情報処理方法は、マンチェスタ符号化されたデータに基づいて、所定の点滅パターンで発光する送信装置により発光される光の信号を受光する受光装置で受光された光の信号を、所定の点滅パターンのＮ倍の周波数で、かつ、フレーム単位で取得する取得ステップ（例えば、図１８のフローチャートのステップＳ１３の処理）と、取得ステップの処理で取得されたフレーム間の受光量の情報のうち、Ｎフレーム毎の複数のフレームの受光量の情報を演算する第１の演算ステップ（例えば、図１９のフローチャートのステップＳ２１，Ｓ２３の処理）と、第１の演算結果を所定の閾値と比較する第１の比較ステップ（例えば、図１９のフローチャートのステップＳ２２，Ｓ２４の処理）と、第１の比較ステップの処理での第１の比較結果に基づいて、マンチェスタ符号化されたデータをデコードするデコードステップ（例えば、図２１のフローチャートのステップＳ７６の処理）とを含むことを特徴とする。
【００２６】
図１は、本発明に係る情報通信システムの一実施の形態の構成を示すブロック図である。
【００２７】
図１の情報通信システムは、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）サーバ１、コントロールユニット２、情報ユニット３−１乃至３−ｎ、および携帯端末４から構成される。
【００２８】
ＰＣサーバ１は、コントロールユニット２に対して、情報ユニット３−１乃至３−ｎのそれぞれに対応する場所での、データを出力させるように指令を出す。
【００２９】
コントロールユニット２は、いわゆる切替制御装置のような機能を果たすものであり、ＰＣサーバ１からの指令に基づいて、各情報ユニット３−１乃至３−ｎのいずれかを制御信号により指定して、所定のデータを出力し、送信させる。情報ユニット３−１乃至３−ｎは、板状の平面上に２次元、または、１次元に複数の光ビーコン１１−１乃至１１−６が配列されたものであり、データを送信する各種の地点に設置される。また、情報ユニット３−１乃至３−ｎは、コントロールユニット２からの制御信号に基づいて、光ビーコン１１−１乃至１１−６のそれぞれについての点滅パターンを替えて発光することにより、光で携帯端末４にデータを送信する。より詳細には、各光ビーコン１１−１乃至１１−６は、それぞれの点滅パターンにより、自らを識別するＩＤ（Ｉｄｅｎｔｉｆｉｅｒ）データを送信しているが、ＩＤデータには様々なデータを含めて送信することができるので、この機能を利用することにより、案内用の音声ファイルを送信している。
【００３０】
光ビーコン１１−１乃至１１−６は、所定の発光パターンで光を発することによりデータを送信する。このデータは、ＩＤデータと呼ばれるものであり、光ビーコン１１−１乃至１１−６をそれぞれ識別するものであるが、転送可能なデータ量に余裕があるため、その他のデータを含めて送信することも可能である。例えば、ＩＤデータに含められるデータとしては、コンテンツデータ（画像データ、音声データ、または、テキストデータなど）、リンク先データ（ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）、アドレス、ホストネームなどのデータ）、および、自らが所属するグループを識別するグループ識別データなどがあるが、これらに限るものではなく、電子データとして管理できるデータであれば含めて送信することが可能である。このように、光ビーコン１１−１乃至１１−６は、その発光パターンを変化させることによりＩＤデータのみならず、様々なデータを送信することができる。
【００３１】
ここで、自らが所属するグループを識別するグループ識別データについて説明する。例えば、図１においては、情報ユニット３−１乃至３−ｎのそれぞれを構成する複数の光ビーコン１１の群はグループと称され、これらのグループを識別するデータがグループ識別データとなる。したがって、今の場合、光ビーコン１１−１乃至１１−６は、同一の情報ユニット３−１の同一のグループに属しているので、同一のグループ識別データを発する。
【００３２】
尚、情報ユニット３−１乃至３−ｎ、および、光ビーコン１１−１乃至１１−６は、特に区別する必要がない場合、単に情報ユニット３、および、光ビーコン１１と称する。また、今の場合、図１には、情報ユニット３が１個に対して光ビーコン１１が６個ある例について示されているが、データの送信に必要な点滅パターンが作り出せる個数であればよく、少なくとも１個以上であれば個数はいくつであっても構わない。
【００３３】
携帯端末４は、送信されてくるデータを受けようとするユーザにより所持されるものであり、情報ユニット３より光ビーコン１１の点滅パターンにより光で送信されてくるデータをＩＤ認識カメラ２１で撮像することにより認識して、所定の処理を実行する。
【００３４】
尚、ＩＤ認識カメラ２１、および、光ビーコン１１については、詳細を後述する。
【００３５】
図２は、ＰＣサーバ１の構成を示すブロック図である。ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３２、または記憶部３８に記憶されているプログラムに従って各種の処理を実行する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３３には、ＣＰＵ３１が実行するプログラムやデータなどが適宜記憶される。これらのＣＰＵ３１、ＲＯＭ３２、およびＲＡＭ３３は、バス３４により相互に接続されている。
【００３６】
ＣＰＵ３１には、バス３４を介して入出力インタフェース３５が接続されている。入出力インタフェース３５には、キーボード、マウス、マイクロホンなどよりなる入力部３６、ディスプレイ、スピーカなどよりなる出力部３７が接続されている。ＣＰＵ３１は、入力部３６から入力される指令に対応して各種の処理を実行する。そして、ＣＰＵ３１は、処理の結果得られた画像や音声等を出力部３７に出力する。
【００３７】
入出力インタフェース３５に接続されている記憶部３８は、例えばハードディスクなどで構成され、ＣＰＵ３１が実行するプログラムや各種のデータを記憶する。通信部３９は、図示せぬネットワークを介して通信機能を有する装置と音声ファイルなどの各種のデータの授受を行う。
【００３８】
入出力インタフェース３５に接続されているドライブ４０は、磁気ディスク５１、光ディスク５２、光磁気ディスク５３、或いは半導体メモリ５４などが装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部３８に転送され、記憶される。
【００３９】
次に、図３を参照して、携帯端末４の構成について説明する。
【００４０】
携帯端末４の構成は、基本的に、図２のＰＣサーバ１と同様であり、携帯端末４のＣＰＵ７１、ＲＯＭ７２、ＲＡＭ７３、バス７４、入出力インタフェース７５、入力部７６、出力部７７、記憶部７８、ドライブ７９、磁気ディスク９１、光ディスク９２、光磁気ディスク９３、および、半導体メモリ９４は、ＰＣサーバ１のＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３、バス３４、入出力インタフェース３５、入力部３６、出力部３７、記憶部３８、ドライブ４０、磁気ディスク５１、光ディスク５２、光磁気ディスク５３、および、半導体メモリ５４に対応するものである。但し、携帯端末４は、全てにおいて携帯性を重視した構成となっているため、処理速度や記憶部７８の記憶容量などは、ＰＣサーバ１に比べて小さいものである。
【００４１】
また、入力部７６には、ＩＤ（Ｉｄｅｎｔｉｆｉｅｒ）認識カメラ２１が接続されており、撮像された撮像画像と、光ビーコン１１が撮像された際に、その点滅パターンにより取得されるＩＤデータが入力される。
【００４２】
ここで、図４を参照して、ＩＤ認識カメラ２１の詳細な構成について説明する。受光部１４１は、撮像される対象となる撮像領域の光を電気信号に光電変換した後、演算部１４２に出力する。また、受光部１４１の受光素子１５１は、ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ−Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）素子からなり、従来のＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）素子よりも高速に動作することができる。より詳細には、受光素子１５１が、撮像される対象となる撮像領域の光を光電変換し、増幅器１５２に出力する。増幅器１５２は、受光素子１５１より入力される光電変換された電気信号を増幅して、演算部１４２、および、画像処理部１４３に出力する。
【００４３】
演算部１４２の記憶部１６１は、受光部１４１より入力された増幅されている電気信号を撮像された画像の各画素値として、フレーム単位で、後述する比較部１６２における演算処理に必要なフレーム数だけ記憶し、適宜比較部１６２に出力する。比較部１６２は、記憶部１６１に記憶された電気信号の値に基づいて、演算処理を行い、演算結果を所定のリファレンス値（＝基準信号レベル）と比較して、比較結果を出力部１６３に出力する。出力部１６３は、比較結果に基づいてセンサ出力信号を生成してＩＤデコード処理部１４４に出力する。
【００４４】
画像処理部１４３は、受光部１４１より供給された撮像画像を入力部７６（図３）に出力する。
【００４５】
ＩＤデコード処理部１４４は、センサ出力信号をデコード処理し、ＩＤデータと位置データを生成して入力部７６（図３）に出力する。
【００４６】
次に、図５を参照して、比較部１６２の構成について説明する。
【００４７】
比較部１６２の正フレーム間差分計算部１８１、および、負フレーム間差分計算部１８３は、光の変化を検出するために、今撮像されているフレームを基準として、２Ｍフレーム前までの、２Ｍフレーム間の差分値を求め、それぞれコンパレータ１８２，１８４に出力する。コンパレータ１８２，１８４は、入力された差分値を、それぞれ所定の閾値Ｒｅｆ（＋），Ｒｅｆ（−）と比較し、比較結果に対応して１、または、０の値を出力部に供給する。より具体的には、正フレーム間差分計算部１８１は、差分値が閾値Ｒｅｆ（＋）より大きいとき１を、それ以外のとき０を出力し、負フレーム間差分計算部１８３は、差分値が閾値Ｒｅｆ（−）より小さいとき１を、それ以外のとき０を出力する。尚、Ｍは、正の整数を示す。また、説明の便宜上、以下の説明においては、Ｒｅｆ（＋）＝−Ｒｅｆ（−）であるものとするが、これに限るものではない。
【００４８】
より詳細には、正フレーム間差分計算部１８１は正の２Ｍフレーム間差分を以下の式（１）で示されるように計算して、コンパレータ１８２の端子１８２ａに出力する。
【００４９】
【数１】
2004349766.tif 000003
2004349766.tif 000004
【００５０】
尚、式（１）におけるｆ（ｎ）は、第ｎフレームにおける所定の画素位置の画素値を示しており、式（１）の第１項は、第ｎフレームから第（ｎ−Ｍ−１）フレームの画素値のサメーションを示しており、第２項は、第（ｎ−Ｍ）フレームから第（ｎ−２Ｍ−１）フレームの画素値のサメーションを示している。すなわち、正フレーム間差分計算部１８１は、式（１）を演算することにより、時系列的に、今のフレームに近い新しい画素値の和から、今のフレームに遠い古い画素値の和を引いた値を正フレーム間差分ＹＰ（Ｍ，ｎ）として求める。
【００５１】
また、同様にして、負フレーム間差分計算部１８３は正の２Ｍフレーム間差分を以下の式（２）で示されるように計算して、コンパレータ１８４の端子１８４ａに出力する。
【００５２】
【数２】
2004349766.tif 000005
2004349766.tif 000006
【００５３】
尚、式（２）の第１項は、第（ｎ−Ｍ）フレームから第（ｎ−２Ｍ−１）フレームの画素値のサメーションを、第２項は、第ｎフレームから第（ｎ−Ｍ−１）フレームの画素値のサメーションをそれぞれ示している。すなわち、負フレーム間差分計算部１８３は、式（２）を演算することにより、時系列的に、今のフレームに遠い古い画素値の和から今のフレームに近い新しい画素値の和を引いた値を負フレーム間差分ＹＭ（Ｍ，ｎ）として求める。
【００５４】
さらに、コンパレータ１８２は、端子１８２ａに入力されてくる正フレーム間差分値ＹＰ（Ｍ，ｎ）と、端子１８２ｂに入力されるリファレンス値Ｒｅｆ（＋）（リファレンス値Ｒｅｆ（＋）は、任意に設定される値である）とを比較し、正フレーム間差分値ＹＰ（Ｍ，ｎ）がリファレンス値Ｒｅｆ（＋）よりも大きい場合、第ｎフレームにおける比較結果としてＣＰ（ｎ）＝１を後段に出力し、逆に、正フレーム間差分値ＹＰ（Ｍ，ｎ）がリファレンス値Ｒｅｆ（＋）よりも小さい場合、第ｎフレームにおける比較結果としてＣＰ（ｎ）＝０を後段に出力する。
【００５５】
同様に、コンパレータ１８４は、端子１８４ａに入力されてくる負フレーム間差分値ＹＭ（Ｍ，ｎ）と、端子１８４ｂに入力されるリファレンス値Ｒｅｆ（−）（リファレンス値Ｒｅｆ（−）は、任意に設定される値）とを比較し、負フレーム間差分値ＹＭ（Ｍ，ｎ）がリファレンス値Ｒｅｆ（−）よりも小さい場合、第ｎフレームにおける比較結果としてＣＭ（ｎ）＝１を後段に出力し、逆に、負フレーム間差分値ＹＭ（Ｍ，ｎ）がリファレンス値Ｒｅｆ（−）よりも大きい場合、第ｎフレームにおける比較結果としてＣＰ（ｎ）＝０を後段に出力する。
【００５６】
演算部１４２は、以上のような演算により信号を、光ビーコン１１の発光により送信されてくる信号を検出する。尚、演算部１４２による信号の検出方法については、詳細を後述する。
【００５７】
次に、図６を参照して、ＩＤデコード処理部１４４の詳細な構成について説明する。ＩＤデコード部２０１のＩＤデコード回路２１１は、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などのデバイスにより構成されており、イメージセンサ１３１から入力されるセンサ出力信号より各画素のＩＤデータを復元する。このＩＤデコード回路２１１は、処理能力が十分であれば、マイクロプロセッサやＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）によってソフトウェアで構成するようにしても良い。
【００５８】
フラグレジスタ２１２は、ＩＤデータをデコードするために必要なフラグ類を記憶するためのレジスタであり、データレジスタ２１３は、デコード途中またはデコードを完了したＩＤを記憶しておくためのレジスタである。
【００５９】
尚、図６においては、ＩＤデコード部２０１は、１個のみが示されているが、処理速度の要求により、例えば、各画素毎に設けるようにしてもよいし、垂直方向、または、水平方向のライン毎に設けるようにしても良い。
【００６０】
タイミング制御部２０２は、ＩＤデコード処理部１４４の全体の動作に必要なタイミングを制御するタイミング制御信号を出力する。より具体的には、タイミング制御部２０２は、ＩＤデコード回路２１１とセンサ出力信号のタイミングの同期をとり、所望のセンサ出力信号に対して、対応するフレームメモリ２０３のフラグデータをフラグレジスタ２１２に、ＩＤデータをデータレジスタ２１３に、それぞれロードして、ＩＤデコード処理を進めるためのタイミング制御信号を生成し、ＩＤデコード部２０１（のＩＤデコード回路２１１、フラグレジスタ２１２、および、データレジスタ２１３）に供給する。また、このとき、タイミング制御部２０２は、フレームメモリ２０３へのアドレス信号、リードライトなどのタイミング制御信号を生成し供給する。さらに、タイミング制御部２０２は、重心計算部２０４のＩＤレジスタ２２１、および、ＩＤ重心計算回路２２２、並びに、ＩＤ座標格納メモリ２０５のタイミング制御を行うタイミング制御信号を生成して供給する。
【００６１】
ＩＤデコード処理部１４４における、ＩＤデコード部２０１のエラー検出部２１０は、演算部１４２より供給されてきたセンサ出力信号、すなわち、比較部１６２のコンパレータ１８２，１８４より供給された、正フレーム間差分値ＹＰ（Ｍ，ｎ）、および、負フレーム間差分値ＹＭ（Ｍ，ｎ）に基づいて、ＩＤ認識カメラ２１で撮像されて、取得されたＩＤデータのエラーの有無を判定し、判定結果をＩＤデコード回路２１１に供給する。ＩＤでコード回路２１１は、エラー検出部２１０より供給された判定結果に基づいて、エラーが検出されていない場合、入力されたセンサ出力信号をデコードし、エラーが検出された場合、デコードを停止する。
【００６２】
フレームメモリ２０３は、受光素子１５１、または演算部１４２毎に演算されたセンサ出力信号がデコードされたＩＤデータとフラグデータを格納するメモリであり、イメージセンサ１３１が１画素につき１個の演算部１４２をもつ場合には、センサの画像サイズであるＭ画素×Ｎ画素と同じサイズとなり、データ幅はフラグレジスタ２１２とデータレジスタ２１３のビット幅の和で構成される。図６においては、各画素の位置に対応する座標が、Ｉ軸とＪ軸により示されており、それぞれの座標位置にＩＤデータとフラグデータが格納される。
【００６３】
重心計算部２０４は、同一のＩＤデータを持つ撮像画像上の画素の重心位置の座標を求め、ＩＤデータに、光ビーコン１１の検出位置としての位置データ（＝光ビーコン１１の撮像画像上の位置データ）を付して出力する。より詳細には、重心計算部２０４のＩＤレジスタ２２１は、タイミング制御部２０２より入力される所定のＩＤデータがデコード部２０１よりデコードされたことを示すタイミング制御信号によりフレームメモリ２０３に今記憶されたＩＤデータを読出し、ＩＤ重心計算回路２２２に出力する。ＩＤ重心計算回路２２２は、入力されたＩＤデータ毎に、対応する画素の座標位置のＩ座標とＪ座標、並びにデータの個数を順次加算してＩＤ座標格納メモリ２０５に記憶させる。また、ＩＤ重心計算回路２２２は、フレームメモリ２０３に１フレーム分のデータが格納されたとき、ＩＤ座標格納メモリ２０５よりＩＤ毎にＩ座標の和とＪ座標の和を、データの個数で割ることにより重心位置の座標を求めて、ＩＤデータと共に出力する。
【００６４】
次に、図７を参照して、エラー検出部２１０の構成について説明する。
【００６５】
エラー検出部２１０のメモリ２３１は、演算部１４２より供給されたセンサ出力信号を所定のフレーム間隔で、複数のフレームについて各画素毎に記憶する。より詳細には、例えば、後述する光ビーコンの点滅周波数のＮ倍の周波数で画像を撮像する場合、Ｎフレーム間隔で、例えば、ｍフレーム分記憶する場合、時系列的に順次ｍ個ずつセンサ出力信号を記憶し、さらに、新しいセンサ出力信号を記憶するとき、記憶しているｍ個のセンサ出力信号のうち、最も古いものを削除して新しいセンサ出力信号を記憶する。結果として、メモリ２３１は、常にｍ個の最新のセンサ出力信号を記憶する。
【００６６】
比較部２３２は、メモリ２３１に記憶されているｍ個のセンサ出力信号を用いて比較処理を実行して、比較結果を判定部２３３に出力する。
【００６７】
判定部２３３は、比較部２３２より供給された比較結果に基づいて、エラーの有無を判定し、判定結果を出力する。尚、比較部２３２の比較方法、並びに、判定部２３３の判定方法については、詳細を後述する。
【００６８】
次に、図８を参照して、光ビーコン１１の構成について説明する。図７の光ビーコン１１は、図示せぬネットワークを介して他の装置と通信することによりデータを可変とすることが可能である。ここでネットワークとは、有線・無線の通信回線、例えば電話回線、ＩＳＤＮ、ＲＳ−２３２Ｃ、ＲＳ−４２２、Ｅｔｈｅｒｎｅｔ（Ｒ）（１０ｂａｓｅ−Ｔ，１００ｂａｓｅ−Ｔ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃ  Ｅｎｇｉｎｅｅｒｓ）１３９４、ＩＥＥＥ８０２．１１ａ、ＩＥＥＥ８０２．１１ｂ、ＢｌｕｅＴｏｏｔｈなどの通信手段により他の装置とデータ通信ができる環境をいう。また、データ送受信部２５１は、この通信手段に対応するデータ通信用ＩＣ及びドライバから構成されており、ネットワークを介して受信した光ビーコン１１の送信データを、マンチェスタ符号化部２５２に出力する。マンチェスタ符号化部２５２は、データ送受信部２５１より供給された送信データをマンチェスタ符号化して点滅制御部２５３に出力する。点滅制御部２５３は、入力されたマンチェスタ符号に変換されている送信データに応じた点滅パターンを発生し、発光部２５４を発光させる。
【００６９】
ここで、マンチェスタ符号化について説明する。マンチェスタ符号化とは、図９で示されるように、デジタル信号化された送信データについて、０の信号を１０に、１の信号を０１にそれぞれ表現する符号化方法である。ここで、１は発光部２５４をオンにすることを示し、０は発光部２５４をオフにすることを示す。
【００７０】
マンチェスタ符号化された送信データには、「スタートコード」が変換されたデータの前に付されており、送信データの開始位置を確認することができるようになっている。スタートコードは、図１０で示されるように、例えば、「００００１」といったものである。尚、図１０においては、図中左側がＬＳＢ（Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）であり、右側がＭＳＢ（Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）を示している。
【００７１】
例えば、「１００１００１０」という８ビットの送信データをマンチェスタ符号化する場合、すなわち、送信データとして７３を送信したい場合、送信データは、２進数の１／０がそれぞれＯＮ／ＯＦＦを表しているとき、発光部２５４は、「ＯＦＦ−ＯＮ→ＯＮ−ＯＦＦ→ＯＮ−ＯＦＦ→ＯＦＦ−ＯＮ→ＯＮ−ＯＦＦ→ＯＮ−ＯＦＦ→ＯＦＦ−ＯＮ→ＯＮ−ＯＦＦ」となるように点滅制御部２５３により制御されることになる。
【００７２】
このようにマンチェスタ符号化することにより、１、または、０をとる信号は３個以上連続することが無く、各送信区間は必ず点滅することになり、長く発光部２５４がＯＦＦの状態となったままになったり、発光部２５４がＯＮの状態となったままになるようなことが防止され、環境光との判別も比較的容易となるので、安定した通信が可能となる。
【００７３】
さらに、送信データは、ネットワークを介して供給されるものに限らず、例えば、図１１で示されるように、データ送受信部２５１に代えて送信データ保存用メモリ２９１を設けて、予め送信するコマンドを記憶させるようにしてもよい。
【００７４】
次に、ＩＤ認識カメラ２１の動作について説明する。
【００７５】
受光部１４１の受光素子１５１は、光を光電変換し、変換した電気信号を増幅部１５２に出力する。増幅部１５２は、電気信号を増幅して演算部１４２、および、画像処理部１４３に出力する。演算部１４２の記憶部１６１は、受光部１４１より入力された電気信号を順次記憶して、２Ｍフレーム分の電気信号を記憶し、いっぱいになると、最も古いフレームの電気信号を消去して、最新のフレームの電気信号を記憶する処理を繰り返して、常に最新の２Ｍフレーム分の電気信号を記憶しており、その２Ｍフレーム分の電気信号を比較部１６２に出力する。
【００７６】
比較部１６２は、記憶部１６１に記憶されている時間的に連続する２Ｍフレーム分の電気信号を輝度信号として上述した式（１），式（２）のような演算処理を実行し、出力部１６３は、演算結果をセンサ出力信号としてＩＤデコード処理部１４４に出力する。尚、比較部１６２の動作については、詳細を後述する。
【００７７】
画像処理部１４３は、受光部１４１より供給された画像信号を処理可能な形式に変換し、画像データとして出力する。
【００７８】
次に、ＩＤデコード処理部１４４の動作について説明する。
【００７９】
ＩＤデコード処理部２０１のエラー検出部２１０は、演算部１４２より供給されたセンサ出力信号のエラーの有無を判定し、判定結果をＩＤデコード回路２１１に出力する。
【００８０】
ＩＤデコード回路２１１は、エラー検出部２１０からのエラー判定結果に基づいて、例えば、エラーが検出された場合、以降の処理を実行せず、次のエラー判定結果を待つ。そして、ＩＤデコード回路２１１は、エラーがないというエラー判定結果が送られた場合、タイミング制御部２０２からのセンサ出力信号のタイミングの同期を図るためのタイミング制御信号に基づいて、イメージセンサ１３１から入力されるセンサ出力信号より各画素のＩＤデータを復元する。この際、ＩＤデコード回路２１１は、タイミング制御信号に応じて、フラグレジスタ２１２を制御して、フレームメモリ２０３にロードされたフラグデータを用いて、センサ出力信号からＩＤデータをデコードし、デコード途中またはデコードを完了したＩＤをデータレジスタ２１３に記憶させる。尚、エラー判定処理については、詳細を後述する。
【００８１】
さらに、フレームメモリ２０３は、これらのデコード処理がなされたフラグデータとＩＤデータを対応する座標位置に格納する。
【００８２】
重心計算部２０４のＩＤレジスタ２２１は、タイミング制御部２０２より入力される所定のＩＤデータがデコード部２０１よりデコードされたことを示すタイミング制御信号により、フレームメモリ２０３に今記憶されたＩＤデータの情報をＩＤ重心計算回路２２２に読み出させる。
【００８３】
ＩＤ重心計算回路２２２は、読み出したＩＤデータに対応する画素の座標位置のＩ座標とＪ座標を順次加算して、これに画素の個数の情報を付してＩＤ座標格納メモリ２０５に記憶させ、この処理を繰り返す。
【００８４】
そして、フレームメモリ２０３に１フレーム分のデータが格納されたとき、ＩＤ重心計算回路２２２は、ＩＤ座標格納メモリ２０５よりＩＤ毎にＩ座標の和とＪ座標の和を、データの個数で割ることにより重心位置の座標を位置データとして求めて、対応するＩＤデータと共に出力する。
【００８５】
以上の動作により、例えば、図１２で示すように、２個の光ビーコン１１−１，１１−２が、点滅しながら発光してデータを送信する場合、ＩＤ認識カメラ２１には、図１２上部に示すような現実空間上の光ビーコン１１−１，１１−２の物理的な位置に応じた、撮像画像上の位置の画素で光の信号を受光する。例えば、光ビーコン１１−１から発せられた光が座標位置（１０，１０）の受光素子１５１で受光されるものとし、光ビーコン１１−２から発せられた光が座標位置（９０，９０）の受光素子１５１で受光されるものとする。このとき、各受光部１４１の座標位置（１０，１０）と（９０，９０）の受光素子１５１では、それぞれが光ビーコン１１−１と１１−２の点滅パターンにより受光強度（明るさ）の時間的変化として信号を受信することができる。今の場合、座標（１０，１０）の位置データに対応する画素は、ＩＤデータとして「３２１」が、座標（９０，９０）の位置データに対応する画素は、ＩＤデータとして１０５がデコード結果として求められている。
【００８６】
結果として、この受光強度の変化を上述の式（１）などにより２値化することにより１／０のビット列からなるＩＤデータを取得する事ができる。
【００８７】
次に、演算部１４２によるフレーム間差分を用いた信号検出方法について説明する。
【００８８】
光ビーコン１１が発光することにより送信されてくる信号を検出する最も単純な方法は、受光量をある決められた閾値と比較することで２値化して、受光量を１，０のデジタル信号に変換する方法である。この方法は、最もシンプルで実装も容易であるが、周囲の明るさが変化すると、固定された閾値と比較して２値化する方法では、安定したデータ伝送は望めない。
【００８９】
そこで、本発明では、光の変化を検出するのに、受光量を所定のレートで、かつ、フレーム単位で記憶部１６１が記憶して（サンプリングして）、時間方向に連続する複数のフレーム間の受光量の比較を行うことで、信号を安定して検出できるようにしている。
【００９０】
例えば、時間が経過するにしたがって増加するフレーム番号をｎ、サンプリングされる各フレーム間の各画素毎の受光量をｆ（ｎ）とすると、１画素の光の変化量は、Ｙ＝ｆ（ｎ）−ｆ（ｎ−１）で表され、Ｙ＞０のときに光が暗→明に、Ｙ＜０のときに光が明→暗になったことを検出したことになる。
【００９１】
上述したＹ＝ｆ（ｎ）−ｆ（ｎ−１）を２フレーム間差分と定義して、さらに拡張して２Ｍフレーム間差分を定義する。ここでＭは正の整数である。具体的には、Ｍ＝１の場合、Ｙ＝ｆ（ｎ）−ｆ（ｎ−１）、Ｍ＝２の場合、Ｙ＝ｆ（ｎ）＋ｆ（ｎ−１）−ｆ（ｎ−２）−ｆ（ｎ−３）、Ｍ＝３の場合、Ｙ＝ｆ（ｎ）＋ｆ（ｎ−１）＋ｆ（ｎ−２）−ｆ（ｎ−３）−ｆ（ｎ−４）−ｆ（ｎ−５）となる。すなわち、ｎフレーム目の２Ｍフレーム間差分は、上述した式（１）で定義されるＹＰ（Ｍ，ｎ）、および、式（２）で定義されるＹＭ（Ｍ，ｎ）により求められる。
【００９２】
上述の式（１），式（２）を用いてフレーム間差分を求める場合、Ｍが大きいほど、光の検出感度（式（１），式（２）の演算結果の変化の鋭さ）は高くなる。しかしながら、その一方、Ｍが大きくなると受光側で、単位時間あたりで記憶するフレーム数、すなわち、サンプリング周波数を固定とすると、光の点滅周波数を落とさなければ、設定されたフレーム数だけ記憶することができず、結果として、データの転送効率が悪くなる。
【００９３】
すなわち、図１３で示されるように、横軸を時間軸、サンプリング時間（フレーム間の間隔）をΔｔとして、光ビーコン１１の点滅が実線の波形のようにＯＦＦの状態からＯＮ、その後にＯＦＦとなる場合、受光部１４１が各サンプリング時間に受光する受光量を縦軸に表すと、図１３の１点鎖線で示されるような波形となる。ここで、受光量が変化するサンプリング区間（時刻ｔ３乃至ｔ４および時刻ｔ８乃至ｔ９）では、光ビーコン１１がＯＮにされるときの受光量に比べて受光量が小さいものの、ＯＦＦの状態よりも大きくなる。
【００９４】
光ビーコン１１がＯＮにされると、受光部１４１の受光量が図１３の実線で示されるように、サンプリング区間が時刻ｔ４乃至ｔ８のとき、受光量は光ビーコン１１がＯＮとなる（発光している）ときの受光量に変化し、サンプリング区間が時刻ｔ９乃至ｔ１０のとき、受光量は光ビーコン１１がＯＦＦとなる（発光していない）ときの受光量に変化する。
【００９５】
したがって、正の２フレーム間差分であるＹＰ（１，ｎ）（＝（ｆ（ｎ）−ｆ（ｎ−１））で光の変化を検出した場合、２フレーム間差分（正フレーム間差分ＹＰ（１，ｎ））は、図１３の２点差線で示すように変化し、正の２フレーム間差分ＹＰ（１，ｎ）は、光ビーコン１１がＯＮの状態のときの１サンプリング区間の受光量に対して、必ず小さい値をとることになる。すなわち、時刻ｔ３乃至ｔ５、および、時刻ｔ８乃至ｔ１０において、正の２フレーム間差分ＹＰ（１，ｎ）は、光ビーコン１１がＯＮの状態のときの１サンプリング区間の受光量に対して、必ず小さい値となっている。
【００９６】
これに対して、正の４フレーム間差分ＹＰ（２，ｎ）（＝ｆ（ｎ）＋ｆ（ｎ−１）−ｆ（ｎ−２）−ｆ（ｎ−３））で光の変化を検出した場合、図１３の３点差線で示すように、時刻ｔ５乃至ｔ６および時刻ｔ９乃至ｔ１０のとき、光の変化が検出され、正の４フレーム間差分ＹＰ（２，ｎ）は、最大レベルに達して、光ビーコン１１がＯＮの場合の受光量の絶対値よりも大きな値をとることになる。したがって、正の４フレーム間差分ＹＰ（２，ｎ）  （＝ｆ（ｎ）＋ｆ（ｎ−１）−ｆ（ｎ−２）−ｆ（ｎ−３））は、正の２フレーム間差分ＹＰ（１，ｎ）（＝ｆ（ｎ）＋ｆ（ｎ−１））にと比較して、より感度の高い信号を検出することができる。
【００９７】
もちろん、さらに多くのフレームを用いたフレーム間差分の演算を用いるようにしてもよい（例えば６フレーム間差分など）。しかしながら、差分をとるフレーム数を増やすほど、点滅周波数を遅くする必要が生じる。
【００９８】
また、安定して光の変化を検出するためには、受光部１４１のフレームレートは光ビーコン１１の点滅周波数のＮ倍以上の関係になければならない。ここでＮは、光の変化の検出方法によって決まる値である。２フレーム間差分では、Ｎ＞２であり、４フレーム間差分ではＮ＞３である。すなわち、２Ｍフレーム間差分（ここでＭは正の整数）の場合、Ｎ＞Ｍ＋１となる。ここでＮは小さい値の方が、同じフレームレートでもデータ転送レートを大きくすることができるので、Ｎ＝Ｍ＋１とすることにより最適化されることになる。尚、以降においても、実線、１点鎖線、２点鎖線、および、３点鎖線は、それぞれ発光状態、受光量、２フレーム間差分、４フレーム間差分を示すものとする。
【００９９】
ここで、Ｍ＝１、すなわち、２フレーム間差分の場合にＮ＝２以上でなければならないのは、原信号の周波数の２倍以上の周波数でサンプリングしないと、サンプリング定理からも明らかなように、サンプリング結果から原信号を復元することはできないからである。
【０１００】
例えば、図１４において実線で示されるように、光ビーコン１１のＯＮ、または、ＯＦＦが変化する場合、図１４中の時刻ｔ２乃至ｔ６の区間においては、Ｎ＝１の関係でサンプリングした場合、時刻ｔ６乃至ｔ１３の区間においては、Ｎ＝２の関係でサンプリングした場合のそれぞれの受光量と正の２フレーム間差分を示している。図１４の２点鎖線で示されている変化から分かるように（特に、時刻ｔ３乃至ｔ６（図中の範囲Ａで示される部分）において）、Ｎ＝１の区間では正の２フレーム間差分ＹＰ（１，ｎ）（＝ｆ（ｎ）−ｆ（ｎ−１））は、受光量（図１４中の１点鎖線で示されている変化）と比べて小さくなってしまい（点滅パターンとサンプリング周波数の位相によっては光の変化があってもＹＰ（１，ｎ）が０になる）、安定した検出が困難となっているのがわかる。しかしながら、Ｎ＝２の区間（図中の範囲Ｂで示される部分）では、Ｎフレーム毎（Ｎ＝２）にＹＰ（１，ｎ）の値が、受光量に比べて大きな値を取り、安定した検出が可能であることがわかる。
【０１０１】
次に、Ｍ＝２すなわち４フレーム間差分の場合、Ｎ＝３が最適であることを説明する。図１５は、Ｍ＝２、Ｎ＝２の場合の４フレーム間差分の値であるときの信号のレベルの変化を示している。受光部のサンプリングレートの２倍の周波数で光源を点滅させているので、正の４フレーム間差分の値が正負で最大になるときでも、演算する４フレームに光ビーコン１１の点滅の立上がりと立下りが含まれてしまうため、受光信号が正負で打ち消してまい、正の４フレーム間差分値は、受光量に比べて大きくならないことが分かる（１サンプリング時間の受光量以下になってしまう）。例えば、時刻ｔ６乃至ｔ７においては、４フレーム間差分（図中の矢印の４フレーム分の範囲）が負の最大値をとる区間の１つであるが、ここで４フレーム間差分は、ＹＰ（２，ｎ）＝ｆ（ｔ６−ｔ７）＋ｆ（ｔ６−ｔ５）−ｆ（ｔ５−ｔ４）−ｆ（ｔ４−ｔ３）となり、ｆ（ｔ４−ｔ３）とｆ（ｔ６−ｔ５）が共に正の値をとるため、打ち消しあい、ＹＰ（２，ｎ）は小さくなってしまう。
【０１０２】
しかしながら、図１６で示されるように、Ｍ＝４，Ｎ＝３の場合には、正の４フレーム間差分値が正負でそれぞれ最大値をとるとき（ｔ５−ｔ４，ｔ８−ｔ７，ｔ１１−ｔ１０，ｔ１４−ｔ１３）、演算される４フレーム間に光ビーコン１１による点滅の立上がりと立下りの両方が含まれることはなく、受光信号が正負で打ち消してしまうことがないので、４フレーム間差分値は、大きな信号を得ることができる。そして、Ｎサンプリング毎に光ビーコン１１の点滅パターンの立上がりエッジ周辺には正の最大値が、立下りエッジ周辺には負の最大値をとることがわかる。したがって、Ｎフレーム毎の正の４フレーム間差分値ＹＰを用いて、マンチェスタ符号化された原信号を復元できることがわかる。
【０１０３】
従って、最適なＮとＭの組み合わせは、Ｍの値が大きいほど、２Ｍフレーム間差分値は、高い感度で変化するが、Ｍを大きくすると（演算に使用するフレーム数を多くすると）Ｎ＞Ｍ＋１の関係からＮも大きくしなければならず（サンプリング数も多くしなければならず）、同じ点滅周波数で送ることのできるデータ伝送の効率が悪くなるので、演算に使用するフレーム数とサンプリング周波数とのバランスを考慮して決定する必要がある。
【０１０４】
本実施例では、主に２フレーム間差分、４フレーム間差分を例にあげて、説明することとする。しかしながら、本発明は、２Ｍフレーム間差分（Ｍは正の整数）について適用可能であり、Ｍを２または１に制限するものではない。
【０１０５】
また、以上においては、正のフレーム間差分についてのみ説明してきたが、負のフレーム間差分（上述の式（２）に対応する）についても同様のことが言える。尚、負のフレーム間差分については、正のフレーム間差分と同様であるので、その説明を省略する。
【０１０６】
次に、図１７のフローチャートを参照して、光ビーコン１１による送信データを送信するための発光処理について説明する。
【０１０７】
ステップＳ１において、データ送受信部２５１は、コントロールユニット２より送信されてくる送信データを受信すると共に、マンチェスタ符号化部２５２に出力する。
【０１０８】
ステップＳ２において、マンチェスタ符号化部２５２は、データ送受信部２５１より供給された送信データを、図９，図１０で説明したように、マンチェスタ符号化して点滅制御部２５３に供給する。
【０１０９】
ステップＳ３において、点滅制御部２５３は、マンチェスタ符号化部２５２より供給された、マンチェスタ符号化されている、送信データに基づいて、発光部２５４の発光を制御し、その処理は、ステップＳ１に戻り、それ以降の処理が繰り返される。すなわち、このような制御の下で、発光部２５４は、送信データに対応した発光を繰り返す。また、情報ユニット３は、複数の光ビーコン１１−１乃至１１−６の点滅パターンを制御して、送信データを送信する。
【０１１０】
次に、図１８のフローチャートを参照して、ＩＤ認識カメラ２１による光ビーコン１１の点滅により送信されてくる送信データ取得処理について説明する。
【０１１１】
ステップＳ１１において、受光部１４２の受光素子１５１は、撮像される対象となる撮像領域の光を光電変換し、増幅器１５２に出力する。
【０１１２】
ステップＳ１２において、増幅器１５２は、受光素子１５１より入力される光電変換された電気信号を増幅して、フレーム単位で演算部１４２に出力する。
【０１１３】
ステップＳ１３において、演算部１４２の記憶部１６１は、受光部１４１より供給された、増幅されている電気信号、すなわち、各画素毎の画素値をフレーム単位で順次記憶する。この際、記憶部１６１は、２Ｍ個の複数のフレーム分の画素値を記憶することができるので、最も古いフレームの画素値を削除して、新しいフレームの画素値を順次記憶する。尚、以下の説明においては、Ｍ＝２であるものとする。
【０１１４】
ステップＳ１４において、比較部１６２は、記憶部１６１に記憶されている、２Ｍフレーム分の画素値を読み出して比較処理を実行する。
【０１１５】
ここで、図１９のフローチャートを参照して、比較部１６２による比較処理を説明する。
【０１１６】
ステップＳ２１において、比較部１６２の正フレーム間差分計算部１８１は、記憶部１６１に記憶されている、２Ｍフレームの情報を用いて、各画素毎に、上述した式（１）で示した正フレーム間差分ＹＰ（Ｍ，ｎ）を計算して、コンパレータ１８２の端子１８２ａに出力する。
【０１１７】
ステップＳ２２において、比較部１６２のコンパレータ１８２は、端子１８２ａに供給された正フレーム間差分ＹＰ（Ｍ，ｎ）と、端子１８２ｂに供給されるリファレンス値Ｒｅｆ（＋）とを比較し、正フレーム間差分ＹＰ（Ｍ，ｎ）が、リファレンス値Ｒｅｆ（＋）よりも大きいとき、比較結果ＣＰ（ｎ）＝１を、それ以外のとき、比較結果ＣＰ（ｎ）＝０を出力する。
【０１１８】
ステップＳ２３において、比較部１６２の正フレーム間差分計算部１８３は、記憶部１６１に記憶されている、２Ｍフレームの情報を用いて、各画素毎に、上述した式（２）で示した負フレーム間差分ＹＭ（Ｍ，ｎ）を計算して、コンパレータ１８４の端子１８４ａに出力する。
【０１１９】
ステップＳ２４において、比較部１６２のコンパレータ１８４は、端子１８４ａに供給された負フレーム間差分ＹＭ（Ｍ，ｎ）と、端子１８４ｂに供給されるリファレンス値Ｒｅｆ（−）とを比較し、負フレーム間差分ＹＭ（Ｍ，ｎ）が、リファレンス値Ｒｅｆ（−）よりも小さいとき、比較結果ＣＭ（ｎ）＝１を、それ以外のとき、ＣＭ（ｎ）＝０を出力する。
【０１２０】
ステップＳ２５において、出力部１６３は、コンパレータ１８２，１８４より供給された比較結果ＣＭ（ｎ），ＣＰ（ｎ）をＩＤデコード処理部１４４に出力する。
【０１２１】
ここで、図１８のフローチャートの説明に戻る。
【０１２２】
ステップＳ１４の比較処理が終了すると、その処理は、ステップＳ１１に戻り、それ以降の処理が繰り返される。
【０１２３】
すなわち、図１８のフローチャートを参照して説明した処理により、光ビーコン１１が点滅して、発せられる光を受光することにより、送信されてきた、送信データを取得し、ＩＤデコード処理部１４４に送信データを供給する処理を繰り返す。
【０１２４】
上述の処理について、さらに詳細に説明すると、図２０で示されるように、ステップＳ１１の処理で、受光部１４１の受光量は、時刻ｔ１乃至ｔ１３まで、０であり、時刻ｔ１３乃至ｔ１４において、時刻ｔ１３＋α乃至ｔ１４の間に受光する受光量を蓄積する。すなわち、時刻ｔ１３乃至ｔ１４の間に、光ビーコン１１が発光し続けていた場合に得られる受光量を１としたとき、時刻ｔ１３乃至ｔ１４の受光量は、（ｔ１４−ｔ（１３＋α））／（ｔ１４−ｔ１３）となる。
【０１２５】
尚、図２０においては、最上段が送信データを示しており、今の場合、「スタートコード」、「データ１ビット目」として１、および、「データ２ビット目」として０が示されており、第２段目が、マンチェスタ符号化されたデータを示しており、今の場合、先頭から「００００１０１１０」と示されている。実線で示された第３段目は、光ビーコン１１による発光状態を示すものであり、Ｈｉの状態が発光している状態を示し、Ｌｏｗが発光していない状態を示している。一点鎖線で示されている第４段目は、受光素子１４１により受光される光の受光量を示している第５段目は、正フレーム間差分を示しており、Ｒｅｆ（＋）、および、Ｒｅｆ（−）が、それぞれコンパレータ１８２，１８４のリファレンス値を示している。尚、負フレーム間差分は、示されていないが、図２０の正フレーム間差分を、０点となる直線を中心として反転させた値となる。
【０１２６】
第６段目、および、第７段目は、それぞれコンパレータ１８２，１８４の出力を示しており、今の場合、第６段目は、時刻ｔ１乃至ｔ１４、時刻ｔ１６乃至ｔ２０、時刻ｔ２２乃至ｔ２８において、０が、時刻ｔ１４乃至ｔ１６、および、時刻ｔ２０乃至ｔ２２において、１が出力されたことが示されている。また、第７段目は、時刻ｔ１乃至ｔ１７、時刻ｔ１９乃至ｔ２６において、０が、時刻ｔ１７乃至ｔ１９、および、時刻ｔ２６乃至ｔ２８において、１がそれぞれ出力されていることが示されている。また、各フレーム間の時間間隔は、Δｔで一定であるものとする。
【０１２７】
時刻ｔ１４乃至ｔ１５、および、時刻ｔ１５乃至ｔ１６においては、実線で示されるように、光ビーコン１１が発光し続けているので、１点鎖線で示されるように、受光量は１となる。
【０１２８】
さらに、時刻ｔ１６乃至ｔ１７の間においては、実線で示されるように、時刻ｔ１６乃至ｔ（１６＋α）の間のみ発光している状態となるので、受光量は、１点鎖線で示されるように、α／（ｔ１７−ｔ１６）となる。
【０１２９】
また、時刻ｔ１７乃至ｔ１９の間においては、図２０の実線で示される光ビーコン１１は発光していない状態となっているので、図２０の１点鎖線で示されるように、受光される受光量は０となる。
【０１３０】
さらに、時刻ｔ１９乃至ｔ２０の間に受光される受光量は、実線で示されるように、実質的に発光していた時刻ｔ（１９＋α）乃至ｔ２０の間に受光された受光量となるので、１点鎖線で示されるように、（ｔ２０−ｔ（１９＋α））／（ｔ２０−ｔ１９）となる。
【０１３１】
また、時刻ｔ２０乃至ｔ２５の間においては、図２０の実線で示される光ビーコン１１は発光している状態となっているので、図２０の１点鎖線で示されるように、受光される受光量は１となる。
【０１３２】
さらに、時刻ｔ２５乃至ｔ２６の間においては、実線で示されるように、時刻ｔ２５乃至ｔ（２５＋α）の間のみ発光している状態となるので、受光量は、１点鎖線で示されるように、α／（ｔ２６−ｔ２５）となる。
【０１３３】
時刻ｔ２６以降においては、実線で示されるように、光ビーコン１１が発光していない状態となっているので、受光量は、１点鎖線で示されるように０となる。
【０１３４】
そして、以上の受光量に応じて、正フレーム間差分計算部１８１は、上述した式（１）の演算を実行する。より詳細には、時刻ｔ１乃至ｔ１３においては、全てのフレームにおいて、受光量ｆ（ｎ）が０であるので、図２０の３点鎖線で示されるように、正フレーム間差分は０となる。
【０１３５】
時刻ｔ１３乃至ｔ１４に対応するフレームｆ（ｔ１４−ｔ１３）における正フレーム間差分ＹＰ（２，ｔ１４−ｔ１３）は、ｆ（ｔ１４−ｔ１３）＋ｆ（ｔ１３−ｔ１２）−ｆ（ｔ１２−ｔ１１）−ｆ（ｔ１１−ｔ１０）となり、図２０における、３点鎖線で示される時刻ｔ１３乃至ｔ１４の正フレーム間差分の値となる。
【０１３６】
同様に、時刻ｔ１４乃至ｔ１５に対応するフレームｆ（ｔ１５−ｔ１４）における正フレーム間差分ＹＰ（２，ｔ１５−ｔ１４）は、図２０における、３点鎖線で示されるようにｆ（ｔ１５−ｔ１４）＋ｆ（ｔ１４−ｔ１３）−ｆ（ｔ１３−ｔ１２）−ｆ（ｔ１２−ｔ１１）となる。
【０１３７】
また、時刻ｔ１５乃至ｔ１６に対応するフレームｆ（ｔ１６−ｔ１５）における正フレーム間差分ＹＰ（２，ｔ１６−ｔ１５）は、図２０における、３点鎖線で示されるようにｆ（ｔ１６−ｔ１５）＋ｆ（ｔ１５−ｔ１４）−ｆ（ｔ１４−ｔ１３）−ｆ（ｔ１３−ｔ１２）となる。
【０１３８】
さらに、時刻ｔ１６乃至ｔ１７に対応するフレームｆ（ｔ１７−ｔ１６）における正フレーム間差分ＹＰ（２，ｔ１７−ｔ１６）は、図２０における、３点鎖線で示されるようにｆ（ｔ１７−ｔ１６）＋ｆ（ｔ１６−ｔ１５）−ｆ（ｔ１５−ｔ１４）−ｆ（ｔ１４−ｔ１３）となる。
【０１３９】
また、時刻ｔ１７乃至ｔ１８に対応するフレームｆ（ｔ１８−ｔ１７）における正フレーム間差分ＹＰ（２，ｔ１８−ｔ１７）は、図２０における、３点鎖線で示されるようにｆ（ｔ１８−ｔ１７）＋ｆ（ｔ１７−ｔ１６）−ｆ（ｔ１６−ｔ１５）−ｆ（ｔ１５−ｔ１４）となる。
【０１４０】
以下同様に、時刻ｔ１８乃至ｔ１９においては、ｆ（ｔ１９−ｔ１８）＋ｆ（ｔ１８−ｔ１７）−ｆ（ｔ１７−ｔ１６）−ｆ（ｔ１６−ｔ１５）、時刻ｔ１９乃至ｔ２０においては、ｆ（ｔ２０−ｔ１９）＋ｆ（ｔ１９−ｔ１８）−ｆ（ｔ１８−ｔ１７）−ｆ（ｔ１７−ｔ１６）、時刻ｔ２０乃至ｔ２１においては、ｆ（ｔ２１−ｔ２０）＋ｆ（ｔ２０−ｔ１９）−ｆ（ｔ１９−ｔ１８）−ｆ（ｔ１８−ｔ１７）、時刻ｔ２１乃至ｔ２２においては、ｆ（ｔ２２−ｔ２１）＋ｆ（ｔ２１−ｔ２０）−ｆ（ｔ２０−ｔ１９）−ｆ（ｔ１９−ｔ１８）、時刻ｔ２２乃至ｔ２３においては、ｆ（ｔ２３−ｔ２２）＋ｆ（ｔ２２−ｔ２１）−ｆ（ｔ２１−ｔ２０）−ｆ（ｔ２０−ｔ１９）、時刻ｔ２４乃至ｔ２５においては、ｆ（ｔ２５−ｔ２４）＋ｆ（ｔ２４−ｔ２３）−ｆ（ｔ２３−ｔ２２）−ｆ（ｔ２２−ｔ２１）、時刻ｔ２５乃至ｔ２６においては、ｆ（ｔ２６−ｔ２５）＋ｆ（ｔ２５−ｔ２４）−ｆ（ｔ２４−ｔ２３）−ｆ（ｔ２３−ｔ２２）、時刻ｔ２６乃至ｔ２７においては、ｆ（ｔ２７−ｔ２６）＋ｆ（ｔ２６−ｔ２５）−ｆ（ｔ２５−ｔ２４）−ｆ（ｔ２４−ｔ２３）、時刻ｔ２７乃至ｔ２８においては、ｆ（ｔ２８−ｔ２７）＋ｆ（ｔ２７−ｔ２６）−ｆ（ｔ２６−ｔ２５）−ｆ（ｔ２５−ｔ２４）となる。
【０１４１】
これに伴い、上述した式（１）が演算されることにより求められる正フレーム間差分と正のリファレンス値Ｒｅｆ（＋）との比較結果は、図２０の３点鎖線で示されるように、今の場合、時刻ｔ１４乃至ｔ１６、および、時刻ｔ２０乃至ｔ２２において、正フレーム間差分が正のリファレンス値Ｒｅｆ（＋）よりも大きくなるため、コンパレータ１８２から出力される比較結果ＣＰ（ｎ）は、時刻ｔ１４乃至ｔ１６、および、時刻ｔ２０乃至ｔ２２において、１となり、それ以外の時刻においては、０となる。
【０１４２】
尚、上述した式（２）が演算されることにより求められる負フレーム間差分は、図２０における３点鎖線で示される正フレーム間差分と正負が逆転した関係が示されることになるので、図示は省略する。
【０１４３】
また、負フレーム間差分と負のリファレンス値Ｒｅｆ（−）との比較結果は、正フレーム間差分と、負リファレンス値Ｒｅｆ（−）の正負が逆転された値（−Ｒｅｆ（−））との比較結果と同値となる。従って、今の場合、時刻ｔ１７乃至ｔ１９、および、時刻ｔ２６乃至ｔ２８において、負フレーム間差分は、負のリファレンス値Ｒｅｆ（−）よりも大きくなる（図２０の３点鎖線で示されるように、正フレーム間差分が、負リファレンス値Ｒｅｆ（−）の正負が逆転された値（−Ｒｅｆ（−））よりも小さくなる）ため、コンパレータ１８４から出力される比較結果ＣＭ（ｎ）は、時刻ｔ１７乃至ｔ１９、および、時刻ｔ２６乃至ｔ２８において、１となり、それ以外の時刻においては、０となる。
【０１４４】
次に、図２１のフローチャートを参照して、ＩＤデコード処理部１４４によるＩＤデコード処理について説明する。
【０１４５】
ステップＳ３１において、ＩＤデコード処理部１４４のＩＤデコード回路２１１は、カウンタ（図示せず）をリセットし、初期化する。
【０１４６】
ステップＳ３２において、ＩＤデコード処理部１４４のＩＤデコード回路２１１は、スタートコード検出処理を実行する。
【０１４７】
ここで、図２２のフローチャートを参照して、ＩＤデコード回路２１１によるスタートコード検出処理について説明する。
【０１４８】
ステップＳ４１において、ＩＤデコード処理部１４４のＩＤデコード回路２１１は、演算部１４２より供給される、比較結果ＣＰ（ｎ），ＣＭ（ｎ）のいずれもが、１２フレーム以上連続して、０であるか否かを判定する。より詳細には、ＩＤデコード処理部１４４は、比較結果ＣＰ（ｎ），ＣＭ（ｎ）がいずれも０で、連続して入力される場合、図示せぬカウンタを１ずつインクリメントし、そのカウンタの値が１２以上であるか否かを判定する。尚、このカウンタは、比較結果ＣＰ（ｎ），ＣＭ（ｎ）のいずれかが１で入力された場合、リセットされる。
【０１４９】
ステップＳ４１において、スタートコードは、例えば、上述したように「００００１」であるので、図２０で示されるように、光ビーコン１１は、実線で示されるように点滅することになる。すなわち、光ビーコン１１は、時刻ｔ（１＋α）乃至ｔ（１３＋α）までの間、発光していない状態で、時刻ｔ（１３＋α）乃至時刻ｔ（ｔ１９＋α）までの間、発光することにより、このスタートコードを送信データとして送信する。
【０１５０】
従って、図２０で示されるように、時刻ｔ１乃至ｔ１２において、１２フレーム以上連続して０であると判定されないことになるので、ステップＳ４５に進み、エラー検出部２１０は、スタートコードを検出していないものと判定し、その処理は、ステップＳ３３（図２１のフローチャート）に進む。
【０１５１】
ここで、図２１のフローチャートに戻る。
【０１５２】
ステップＳ３３において、スタートコードが検出されたか否かが判定され、今の場合、ステップＳ４５において、スタートコードが検出されていないので、スタートコードが検出されていないと判定され、その処理は、ステップＳ３２に戻る。
【０１５３】
すなわち、１２フレーム以上連続して０であると判定されるまで、ステップＳ３２，Ｓ３３の処理が繰り返される。
【０１５４】
ここで、図２２のフローチャートの説明に戻る。
【０１５５】
今の場合、例えば、図２０で示される時刻ｔ１乃至ｔ１３において、ステップＳ３２，Ｓ３３の処理が、１２回繰り返されることになるので、例えば、図２０の時刻ｔ１２乃至ｔ１３に対応するフレームの場合、ステップＳ４１において、１２フレーム以上連続して０であると判定されることになり、その処理は、ステップＳ４２に進む。
【０１５６】
ステップＳ４２において、ＩＤデコード回路２１１は、コンパレータ１８２の比較結果ＣＰ（ｎ）が１であるか否かを判定する。すなわち、スタートコードの末尾となる１が検出されたか否かが判定される。例えば、図２０で示されるように、時刻ｔ１２乃至ｔ１３に対応するフレームでスタートコードの「００００」が検出された後、時刻ｔ１３乃至ｔ１４においては、比較結果ＣＰ（ｔ１４−ｔ１３）は、１ではないので、その処理は、ステップＳ４５に進む。従って、この場合、ステップＳ３３，Ｓ３２の処理が繰り返される。
【０１５７】
また、例えば、さらにその後のタイミングとなる時刻ｔ１３乃至ｔ１４の場合、ステップＳ４２において、図２０で示すように、比較結果ＣＰ（ｔ１５−ｔ１４）は１であるので、スタートコードの末尾にあたる「１」であると判定され、その処理は、ステップＳ４３に進む。
【０１５８】
ステップＳ４３において、ＩＤデコード回路２１１は、コンパレータ１８２の比較結果ＣＰ（ｎ＋１）が１であるか否かを判定する。例えば、図２０で示されるように、時刻ｔ１５乃至ｔ１６においては、比較結果ＣＰ（ｔ１６−ｔ１５）が１であると判定され、その処理は、ステップＳ４４に進む。
【０１５９】
ステップＳ４４において、ＩＤデコード回路２１１は、スタートコードを検出したことを認識する。
【０１６０】
すなわち、ステップＳ４２における処理と同様に、ステップＳ４３において、ＩＤデコード回路２１１がスタートコードの末尾となる１が検出されたか否かを判定することにより、２フレーム連続して１が検出されたか否かを判定する。これは、今の場合、マンチェスタ符号化された信号は、３フレーム間隔で供給されており、この場合、図２０で示されているように、マンチェスタ符号化された信号は、正しく受光された場合、２フレーム連続で必ず１を検出することになるので、これを検出することにより、スタートコードの末尾となる１の有無が検出される。
【０１６１】
ここで、図２１フローチャートに戻る。
【０１６２】
ステップＳ３４において、ＩＤデコード回路２１１は、エラー検出部２１０に対して、エラー検出処理を開始させる。尚、エラー検出部２１０のエラー検出処理については、詳細を後述する。
【０１６３】
ステップＳ３５において、ＩＤデコード回路２１１は、エラー検出部２１０のエラー検出処理によりエラーが検出されたか否かを判定し、エラー検出部２１０より供給されるエラー検出結果に基づいて、エラーの有無を判定する。
【０１６４】
例えば、ステップＳ３５において、エラー検出部２１０よりエラーが検出されていないことを示す通知が入力されてきた場合、ＩＤデコード回路２１１は、エラーが検出されていないと判定し、その処理は、ステップＳ３６に進む。
【０１６５】
ステップＳ３６において、ＩＤデコード回路２１１は、入力されたセンサ出力信号に基づいて、上述したようにＩＤデータをデコードし、フレームメモリ２０３に記憶させる。さらに、ＩＤ重心計算回路２２２は、ＩＤレジスタ２２１を制御して、デコードされたＩＤデータに対応する座標位置を読出し、ＩＤ座標格納メモリ２０５に、座標位置を積算させながら順次記憶させる。
【０１６６】
ステップＳ３７において、ＩＤ重心計算回路２２２は、ＩＤ座標格納メモリ２０５に記憶された座標位置をＩＤデータ毎に読み出して、ＩＤデータに対応する座標位置の重心位置を求めて、すなわち、各座標位置の積算値を加算したＩＤデータの個数で割ることにより重心位置を求めて、これをそのＩＤデータの座標情報として求める。
【０１６７】
ステップＳ３８において、ＩＤデコード回路２１１は、供給されてくるセンサ出力信号の有無により、データが終了したか否かを判定し、例えば、データが終了していないと判定した場合、その処理は、ステップＳ３５に戻り、それ以降の処理を繰り返す。
【０１６８】
ステップＳ３８において、入力されてくるセンサ出力信号がなくなって、データが終了したと判定された場合、ステップＳ３９において、エラー検出部２１０に対してエラー検出処理を停止させるように指令を出し、その処理は、ステップＳ３２に戻り、それ以降の処理が繰り返される。
【０１６９】
次に、図２３のフローチャートを参照して、エラー検出処理について説明する。
【０１７０】
ステップＳ５１において、エラー検出部２１０の判定部２３３は、図示せぬカウンタｍを２に設定する。ステップＳ５２において、エラー検出部２１０の判定部２３３は、図示せぬカウンタｋを２に初期化する。
【０１７１】
ステップＳ５３において、エラー検出部２１０のメモリ２３１は、１フレーム分のセンサ出力信号が入力されたか否かを判定し、１フレーム分のセンサ出力信号が入力されるまで、その処理が繰り返される。
【０１７２】
ステップＳ５３において、１フレーム分のセンサ出力信号が入力されたと判定された場合、ステップＳ５４において、エラー検出部２１０の判定部２３３は、カウンタｋを１インクリメントする。
【０１７３】
ステップＳ５５において、判定部２３３は、カウンタｋが３となったか否かを判定し、３になっていないと判定された場合、その処理は、ステップＳ５３に戻り、それ以降の処理が繰り返される。すなわち、カウンタｋが３になるまで、ステップＳ５３乃至Ｓ５５の処理が繰り返される。
【０１７４】
ステップＳ５５において、カウンタｋが３であると判定された場合、すなわち、１フレーム分のセンサ出力信号が供給されてきたと判定された場合、ステップＳ５６において、メモリ２３１は、センサ出力信号である、演算部１４２の比較部１６２のコンパレータ１８２，１８４の比較結果ＣＰ（ｎ），ＣＭ（ｎ）を記憶する。
【０１７５】
ステップＳ５７において、比較部２３２は、記憶した比較結果ＣＰ（ｎ），ＣＭ（ｎ）が、（ＣＰ（ｎ），ＣＭ（ｎ））＝（０，０），（０，１）、または、（１，０）であるか否かを判定する。より詳細には、比較部２３２は、（ＣＰ（ｎ），ＣＭ（ｎ））と、（０，０），（０，１）、および、（１，０）とをそれぞれ比較し、比較結果を判定部２３３に供給する。判定部２３３は、この比較結果に基づいて（ＣＰ（ｎ），ＣＭ（ｎ））＝（０，０），（０，１）、または、（１，０）であるか否かを判定する。例えば、ステップＳ５７において、（ＣＰ（ｎ），ＣＭ（ｎ））＝（０，０），（０，１）、または、（１，０）である場合、その処理は、ステップＳ５８に進む。
【０１７６】
ステップＳ５８において、判定部２３３は、記憶した比較結果ＣＰ（ｎ），ＣＭ（ｎ）が、（ＣＰ（ｎ），ＣＭ（ｎ））≠（ＣＰ（ｎ−３），ＣＭ（ｎ−３））であるか否かを判定する。より詳細には、比較部２３２が（ＣＰ（ｎ），ＣＭ（ｎ））と（ＣＰ（ｎ−３），ＣＭ（ｎ−３））とを比較し、比較結果を判定部２３３に出力する。判定部２３３は、この比較結果に基づいて、（ＣＰ（ｎ），ＣＭ（ｎ））≠（ＣＰ（ｎ−３），ＣＭ（ｎ−３））であるか否かを判定する。ステップＳ５８において、例えば、比較結果ＣＰ（ｎ），ＣＭ（ｎ）が、（ＣＰ（ｎ），ＣＭ（ｎ））≠（ＣＰ（ｎ−３），ＣＭ（ｎ−３））であると判定された場合、その処理は、ステップＳ５９に進む。
【０１７７】
ステップＳ５９において、判定部２３３は、カウンタｍを１インクリメントする。ステップＳ６０において、判定部２３３は、カウンタｍが２となっているか否かを判定し、例えば、カウンタｍが２となっていると判定した場合、その処理は、ステップＳ６１に進む。
【０１７８】
ステップＳ６１において、判定部２３３は、比較結果ＣＰ（ｎ）とＣＭ（ｎ）が、ＣＰ（ｎ）＝ＣＭ（ｎ）＝０であるか否かを判定する。より詳細には、比較部２３２が、ＣＰ（ｎ）とＣＭ（ｎ）をそれぞれ０と比較し、比較結果を判定部２３３に出力する。判定部２３３は、この比較結果に基づいて、比較結果ＣＰ（ｎ）とＣＭ（ｎ）が、ＣＰ（ｎ）＝ＣＭ（ｎ）＝０であるか否かを判定する。
【０１７９】
ステップＳ６１において、比較結果ＣＰ（ｎ）とＣＭ（ｎ）が、ＣＰ（ｎ）＝ＣＭ（ｎ）＝０ではないと判定された場合、ステップＳ６２において、判定部２３３は、エラーなしの通知をＩＤデコード回路２１１に出力する。
【０１８０】
ステップＳ６３において、判定部２３３は、ＩＤデコード回路２１１より処理の終了が指示されたか否かを判定し、処理の終了が指示されていないと判定された場合、その処理は、ステップＳ６４に進む。
【０１８１】
ステップＳ６４において、判定部２３３は、カウンタｍを０に初期化し、その処理は、ステップＳ５３に戻る。
【０１８２】
ステップＳ５７において、（ＣＰ（ｎ），ＣＭ（ｎ））＝（０，０），（０，１）、または、（１，０）ではないと判定された場合、ステップＳ５８において、（ＣＰ（ｎ），ＣＭ（ｎ））≠（ＣＰ（ｎ−３），ＣＭ（ｎ−３））ではないと判定された場合、または、ステップＳ６１において、比較結果ＣＰ（ｎ）とＣＭ（ｎ）が、ＣＰ（ｎ）＝ＣＭ（ｎ）＝０であると判定された場合、その処理は、ステップＳ６６に進み、判定部２３３は、ＩＤデコード回路２１１にエラーが検出されたことを通知し、その処理は、ステップＳ６３に進む。
【０１８３】
ステップＳ６０において、カウンタｍが２ではないと判定された場合、ステップＳ６５において、判定部２３３は、カウンタｋを０に初期化し、その処理は、ステップＳ５３に戻り、それ以降の処理が繰り返される。
【０１８４】
すなわち、ステップＳ５３乃至Ｓ５５の処理が繰り返されることにより、図２４の点線の矢印で示されるように、スタートコードが検出された時刻ｔ１４乃至ｔ１５のフレームの次のタイミングである時刻ｔ１５乃至ｔ１６のフレームでステップＳ５７乃至Ｓ６０の処理が実行され、この処理が３フレーム毎に繰り返される。
【０１８５】
これは、図２４で示されるように、光ビーコン１１は、３フレーム連続して、同じマンチェスタ符号化された信号を点滅により送信するので、３フレーム毎に比較結果ＣＰ（ｎ），ＣＭ（ｎ）を読み出して、所定の値となっているか否かを判定する。
【０１８６】
より具体的には、まず、ステップＳ５７において、（ＣＰ（ｎ），ＣＭ（ｎ））が（０，０），（０，１）、または、（１，０）であるか否かが判定される。これは、比較結果ＣＰ（ｎ），ＣＭ（ｎ）は、相互に正負が反転した値となるものなので、エラーが発生していなければ、（０，０），（０，１）、または、（１，０）のいずれかを取ることになるはずであるからである。
【０１８７】
次に、ステップＳ５８において、（ＣＰ（ｎ），ＣＭ（ｎ））≠（ＣＰ（ｎ−３），ＣＭ（ｎ−３））であるか否かが判定される。これは、マンチェスタ符号化により、送信されてくる信号は、７フレーム以上同じ符号となることがないため、例えば、図２４で示される時刻ｔ２１乃至ｔ２２と、時刻ｔ２４乃至ｔ２５のフレームに対応する比較結果（ＣＰ（ｎ），ＣＭ（ｎ））のように、最大でも６フレームの間に、最大値と最小値を必ず取ることになる。結果として、エラーが発生していなければ、送信するデータは、最大でも６フレームの間に、立ち上がりエッジと立ち下がりエッジがどこかに必ず含まれることになるので、３フレーム間隔で同じ信号が検出されないことになる。
【０１８８】
そして、ステップＳ６０において、カウンタｍが２であるかが判定されて、ｍが２であるとき、ステップＳ６１において、比較結果（ＣＰ（ｎ），ＣＭ（ｎ））がいずれも１であるか否かが判定される。
【０１８９】
カウンタｍが２となるときにのみ、すなわち、ステップＳ５３乃至Ｓ６０の処理が２回繰り返される毎に、ステップＳ６１の処理が実行されるため、ステップＳ６１の処理は、実質的には、６フレームに１回実行され、さらに、初期設定の値により、スタートコードが検出されたタイミングから６フレーム毎の信号、すなわち、データビットを構成する０１、または、１０の信号を構成する、後半の信号に対してなされる。
【０１９０】
より詳細には、例えば、図２４においては、時刻ｔ２１乃至ｔ２２のフレーム、および、時刻ｔ２７乃至ｔ２８のフレームに対応する、データビットの後半の信号の比較結果（ＣＰ（ｎ），ＣＭ（ｎ））が１であるか否かが判定されることにより、エラーの有無が判定される。これは、データビットの後半の信号に対応する比較結果ＣＰ（ｎ），ＣＭ（ｎ）は、相互に正負が反転した値となるので、エラーが発生していなければ、いずれも１を取ることになるはずであるからである。
【０１９１】
以上の処理により、エラーが検出されるので、マンチェスタ符号化された送信データのエラーを正確に判定することができ、結果として、エラーのない正しい送信データを選択的に取得することが可能となる。
【０１９２】
以上の例においては、光ビーコン１１が撮像されるとき、撮像された画素に変更がない場合、すなわち、画像内のそれぞれの画素に撮像されている対象となるものの位置が固定された状態であることが前提となる場合について説明してきた。つまり、光ビーコン１１は、点滅により送信データを送信しているので、ＩＤ認識カメラ２１が撮像する範囲が変化してしまうような場合、撮像されている画像内で光ビーコン１１の位置が変化することになってしまい、正確にエラーの検出、または、データの取得ができない恐れがある。
【０１９３】
そこで、以下の例においては、光ビーコン１１が撮像されている画素と、その周辺の複数の画素から光ビーコン１１の点滅パターンを検出することにより、光ビーコン１１の点滅パターンを検出することで、正確な送信データの取得を可能にするようにしてもよい。
【０１９４】
図２５は、注目画素の周辺の複数の画素から光ビーコン１１の点滅パターンを検出することにより、光ビーコン１１の点滅パターンを検出できるようにしたＩＤデコード処理部１４４の構成を示すブロック図である。基本的な構成は、図６のＩＤデコード処理部１４４と同様であるが、エラー検出部２１０に代えてエラー検出部２７１が、ＩＤ重心計算回路２２２に代えてＩＤ重心計算回路２８２がそれぞれ設けられ、さらに、重み計算部２５１を新たに設けた点が異なる。
【０１９５】
エラー検出部２７１は、基本的に図６のエラー検出部２１０と同様の処理を実行するが、注目している画素（以下、注目画素と称する）のみならず、その周辺の画素（例えば、水平方向、垂直方向、および、対角方向に隣接する画素）についても同時にエラー検出処理を実行する。尚、詳細については、図２６を参照して後述する。
【０１９６】
また、図２５のＩＤデコード処理回路２１１は、図６のＩＤデコード処理回路２１１と基本的に同様の処理を実行するが、注目画素と、その周辺の画素に基づいて、デコード処理を実行する点で異なる。
【０１９７】
重み計算部２８１は、注目画素と、その周辺の画素で受光される光ビーコン１１から発せられる光の受光時間に基づいて、注目画素と、その周辺の画素のそれぞれについて重みを計算し、ＩＤ重心計算回路２８２に供給する。
【０１９８】
ＩＤ重心計算回路２８２は、基本的な機能は、図６のＩＤ重心計算回路２２２と同様の処理を実行するが、さらに、重心計算において、重み計算部２８１より供給された重みにより、重心位置を計算する。
【０１９９】
次に、図２６を参照して、エラー検出部２７１の詳細な構成について説明する。基本的には、図７のエラー検出部２１０と同様の構成であるが、メモリ２３１、比較部２３２、および、判定部２３３に代えて、メモリ２９１、比較部２９２、および、判定部２９３が設けられている。メモリ２９１、比較部２９２、および、判定部２９３は、それぞれメモリ２３１、比較部２３２、および、判定部２３３と同様の機能を有するものであるが、さらに、注目画素のみならず、その周辺の画素を含めた複数の画素の処理も同時に実行する。
【０２００】
次に、図２７のフローチャートを参照して、ＩＤデコード処理について説明する。尚、ステップＳ７１乃至Ｓ７５，Ｓ７８の処理は、図２１のフローチャートを参照して説明したステップＳ３１乃至Ｓ３５，Ｓ３８の処理と同様であるので、その説明は、省略する。
【０２０１】
ここで、図２８のフローチャートを参照して、ステップＳ７４の処理により開始されるエラー検出処理について説明する。尚、ステップＳ８１乃至Ｓ８５、および、ステップＳ８９乃至Ｓ９６の処理は、図２３のフローチャートにおけるステップＳ５１乃至Ｓ５５、および、ステップＳ５９乃至Ｓ６６の処理と同様であるので、その説明は省略する。
【０２０２】
ステップＳ８６において、メモリ２９１は、センサ出力信号である、演算部１４２の比較部１６２のコンパレータ１８２，１８４の比較結果ＣＰ（ｎ），ＣＭ（ｎ）、および、その周辺画素に対応する比較結果ＣＰｗ（ｎ），ＣＭｗ（ｎ）を記憶する。ここで、比較結果ＣＰ（ｎ），ＣＭ（ｎ）は、注目画素の比較結果を示し、比較結果ＣＰｗ（ｎ），ＣＭｗ（ｎ）は、注目画素周辺の複数の画素の比較結果を示す。
【０２０３】
すなわち、図２９の（ｘ，ｙ）で示される画素が注目画素である場合、例えば、図中の太線で囲まれる（ｘ−１，ｙ−１），（ｘ，ｙ−１），（ｘ＋１，ｙ−１），（ｘ−１，ｙ），（ｘ＋１，ｙ），（ｘ−１，ｙ＋１），（ｘ，ｙ＋１），（ｘ＋１，ｙ＋１）の合計８画素のそれぞれに対応する、正のフレーム間差分、および、負のフレーム間差分に基づいた比較結果ＣＰｗ（ｎ），ＣＭｗ（ｎ）がそれぞれ記憶される。従って、今の場合、実質的に記憶される比較結果は、注目画素と周辺画素のそれぞれについての正負のフレーム間差分に対応する比較結果となるので、１個の注目画素について、合計１６個の比較結果が記憶されることになる。尚、この注目画素に対応する周辺画素の配置は、図２９で示されるものに限るものではなく、例えば、注目画素を中心とした、５画素×５画素の範囲に存在する、注目画素を除いた２４画素を周辺画素としてもよく、一般的には、例えば、（２ｎ＋１）画素×（２ｎ＋１）画素の範囲に存在する画素としてもよい。
【０２０４】
ステップＳ８７において、比較部２９２は、記憶した注目画素の比較結果ＣＰ（ｎ），ＣＭ（ｎ）、および、注目画素の周辺画素の比較結果ＣＰｗ（ｎ），ＣＭｗ（ｎ）が、全て（０，０），（０，１）、または、（１，０）であるか否かを判定する。すなわち、比較部２９２は、図２３のフローチャートにおけるステップＳ５７の処理を、注目画素に対応する比較結果と、その全ての周辺画素に対応する比較結果で実行する。
【０２０５】
例えば、ステップＳ８７において、注目画素の比較結果ＣＰ（ｎ），ＣＭ（ｎ）、および、注目画素の周辺画素の比較結果ＣＰｗ（ｎ），ＣＭｗ（ｎ）が、全て（０，０），（０，１）、または、（１，０）である場合、その処理は、ステップＳ８８に進む。また、ステップＳ８７において、注目画素の比較結果ＣＰ（ｎ），ＣＭ（ｎ）、および、注目画素の周辺画素の比較結果ＣＰｗ（ｎ），ＣＭｗ（ｎ）が、全て（０，０），（０，１）、または、（１，０）ではない場合、その処理は、ステップＳ９６に進む。
【０２０６】
ステップＳ８８において、判定部２９３は、記憶した注目画素の比較結果ＣＰ（ｎ），ＣＭ（ｎ）が、（ＣＰ（ｎ），ＣＭ（ｎ））≠（ＣＰ（ｎ−３），ＣＭ（ｎ−３））で、かつ、全ての周辺画素に対応する比較結果ＣＰｗ（ｎ），ＣＭｗ（ｎ）が、（ＣＰｗ（ｎ），ＣＭｗ（ｎ））≠（ＣＰｗ（ｎ−３），ＣＭｗ（ｎ−３））であるか否かを判定する。より詳細には、比較部２９２が（ＣＰ（ｎ），ＣＭ（ｎ））と（ＣＰ（ｎ−３），ＣＭ（ｎ−３））とを比較し、さらに、全ての周辺画素の（ＣＰｗ（ｎ），ＣＭｗ（ｎ））と（ＣＰｗ（ｎ−３），ＣＭｗ（ｎ−３））とを比較し、比較結果を判定部２９３に出力する。判定部２９３は、この比較結果に基づいて、（ＣＰ（ｎ），ＣＭ（ｎ））≠（ＣＰ（ｎ−３），ＣＭ（ｎ−３））であって、かつ、（ＣＰｗ（ｎ），ＣＭｗ（ｎ））≠（ＣＰｗ（ｎ−３），ＣＭｗ（ｎ−３））であるか否かを判定する。
【０２０７】
ステップＳ８８において、注目画素の比較結果が（ＣＰ（ｎ），ＣＭ（ｎ））≠（ＣＰ（ｎ−３），ＣＭ（ｎ−３））であって、かつ、全ての周辺画素の比較結果が（ＣＰｗ（ｎ），ＣＭｗ（ｎ））≠（ＣＰｗ（ｎ−３），ＣＭｗ（ｎ−３））であると判定された場合、その処理は、ステップＳ８９に進む。一方、ステップＳ８８において、注目画素の比較結果が（ＣＰ（ｎ），ＣＭ（ｎ））≠（ＣＰ（ｎ−３），ＣＭ（ｎ−３））ではないか、または、全ての周辺画素の比較結果が（ＣＰｗ（ｎ），ＣＭｗ（ｎ））≠（ＣＰｗ（ｎ−３），ＣＭｗ（ｎ−３））ではないと判定された場合、その処理は、ステップＳ９６に進む。
【０２０８】
ステップＳ９１において、判定部２９３は、注目画素の比較結果ＣＰ（ｎ）とＣＭ（ｎ）と、全ての周辺画素の比較結果ＣＰｗ（ｎ）とＣＭｗ（ｎ）が、ＣＰ（ｎ）＝ＣＭ（ｎ）＝ＣＰｗ（ｎ）＝ＣＭｗ（ｎ）＝０であるか否かを判定する。より詳細には、比較部２９２が、ＣＰ（ｎ），ＣＭ（ｎ），ＣＰｗ（ｎ），ＣＭｗ（ｎ）をそれぞれ０と比較し、比較結果を判定部２９３に出力する。判定部２９３は、この比較結果に基づいて、比較結果ＣＰ（ｎ），ＣＭ（ｎ），ＣＰｗ（ｎ），ＣＭｗ（ｎ）が、ＣＰ（ｎ）＝ＣＭ（ｎ）＝ＣＰｗ（ｎ）＝ＣＭｗ（ｎ）＝０であるか否かを判定する。
【０２０９】
ステップＳ９１において、注目画素の比較結果ＣＰ（ｎ）とＣＭ（ｎ）、および、全ての周辺画素ＣＰｗ（ｎ）とＣＭｗ（ｎ）が、ＣＰ（ｎ）＝ＣＭ（ｎ）＝ＣＰｗ（ｎ）＝ＣＭｗ（ｎ）＝０ではないと判定された場合、ステップＳ９２において、判定部２９３は、エラーなしの通知をＩＤデコード回路２１１に出力する。
【０２１０】
ステップＳ９１において、注目画素の比較結果ＣＰ（ｎ）とＣＭ（ｎ）、および、全ての周辺画素ＣＰｗ（ｎ）とＣＭｗ（ｎ）が、ＣＰ（ｎ）＝ＣＭ（ｎ）＝ＣＰｗ（ｎ）＝ＣＭｗ（ｎ）＝０ではないと判定された場合、その処理は、ステップＳ９６に進む。
【０２１１】
以上の処理により、注目画素と、その周辺画素について、同時にエラー検出処理がなされる。
【０２１２】
ここで、図２７のフローチャートの説明に戻る。
【０２１３】
ステップＳ７６において、図２５を参照して説明したＩＤデコード処理部１４４のＩＤデコード回路２１１は、注目画素と、その周辺画素の比較結果に基づいてＩＤデータをデコード処理する。
【０２１４】
すなわち、図２５のＩＤデコード処理部１４４においては、基本的に、図６のＩＤデコード処理部１４４における注目画素のセンサ出力信号を処理したときと同様の処理を行うが、複数の画素に対応するセンサ出力信号を用いることにより、以下のような処理を実行する。
【０２１５】
すなわち、今、注目画素のコンパレータ１８２の出力をＣＰ（ｘ，ｙ）とすると、その周辺の画素を含めたコンパレータ１８２の出力は、例えば、周辺画素を注目画素を中心とした（２ｎ−１）画素×（２ｎ−１）画素の範囲である場合、ＣＰｗ（ｘ−ｎ，ｙ−ｎ），ＣＰｗ（ｘ−ｎ＋１，ｙ−ｎ＋１），ＣＰｗ（ｘ−ｎ＋２，ｙ−ｎ＋２），・・・ＣＰ（ｘ，ｙ）・・・ＣＰｗ（ｘ＋ｎ−１，ｙ＋ｎ−１），ＣＰｗ（ｘ＋ｎ，ｙ＋ｎ）となる。
【０２１６】
注目画素で測定している光ビーコン１１の位置が、全ての信号を送信する時間よりも短い時間間隔で移動すると、この注目画素とその周辺の画素のいずれかのコンパレータ１８２の出力が、他の画素に移動する事になる。
【０２１７】
そこで、以下の式（３）で示されるような関数を定義することにより、ＩＤデコード回路２１１は、注目画素のコンパレータ１８２の出力を認識する。
【０２１８】
【数３】
2004349766.tif 000007
2004349766.tif 000008
【０２１９】
ここで「｜」はＯＲ演算である。これは、例えば、ｎが１であった場合、図２９で示した注目画素（ｘ，ｙ）を中心としたウィンドウＷに含まれた画素のいずれかのコンパレータ１８２の比較結果において、１が検出されたとき、注目画素において１が検出されたことを示している。従って、このような処理により、データ受信途中で信号となる点滅パターンが、注目画素をはずれて隣の画素に移動しても、続けてデータを受信してデコードすることが可能となる。尚、コンパレータ１８４の比較結果についても同様に処理する。
【０２２０】
そして、デコード回路２１１は、デコード結果をフレームメモリ２０３に順次供給する。すなわち、上述したように、デコード回路２１１は、マンチェスタ符号化された信号の、２ビットの信号のうち、後半部分となるビットの信号を読み出して、通常の信号に符号化し、これらを画像上の画素位置に対応するフレームメモリ２０３に順次記憶させる。
【０２２１】
さらに、ＩＤ重心計算回路２８２は、ＩＤレジスタ２２１を介して、フレームメモリ２０３に記憶されているＩＤデータの位置情報をＩＤ座標格納メモリ２０５に供給し、記憶させる。
【０２２２】
なお、ここでは、「注目画素の周辺画素の情報」として（２ｎ＋１）×（２ｎ＋１）の正方形ウィンドウで説明したが、正方形ウィンドウに限定するものではない。例えば長方形や４隣接画素など、他の形状であっても良い。
【０２２３】
また、コンパレータ１８４からの比較結果についても、同様の処理がなされる。
【０２２４】
ここで、図２７のフローチャートの説明に戻る。
【０２２５】
ステップＳ７７において、重心計算処理が実行される。
【０２２６】
ここで、図３０のフローチャートを参照して、重心計算処理について説明する。
【０２２７】
ステップＳ１０１において、重み計算部２５１は、各画素の重みを計算する。より詳細には、重み計算部２５１は、以下の式（４）の演算を各画素について実行して、各画素の重みを計算し、ＩＤ重心計算回路２８２に出力する。
【０２２８】
【数４】
2004349766.tif 000009
2004349766.tif 000010
【０２２９】
ここで、α（ｉ）は、ｉ番目の注目画素の重みを示し、ｔｓｕｍは、注目画素と、その周辺画素が光を受光した時間、すなわち、コンパレータ１８２からの比較結果が１となっていた時間、または、コンパレータ１８４からの比較結果が１となっていた時間の総合計を示し、さらに、ｔｄ（ｉ）は、注目画素が光を受光した時間である。すなわち、重み計算部２５１は、図２９で示される注目画素（ｘ，ｙ）に対応する周辺画素がウィンドウＷで示されている場合、ウィンドウＷで示される９画素分の領域で受光する光ビーコン１１の総受光時間に対する注目画素の受光する時間の割合を重みとして計算し、ＩＤ重心計算回路２８２に出力する。
【０２３０】
ステップＳ１０２において、ＩＤ重心計算回路２８２は、ＩＤ座標格納メモリ２０５に記憶されているＩＤデータ毎の座標情報を読み足し、さらに、重み計算部２５１より供給された重みをそれぞれ乗じる。
【０２３１】
ステップＳ１０３において、ＩＤ重心計算回路２８２は、座標の総和を求めて画素数で割ることにより重心位置を求める。
【０２３２】
より詳細には、ＩＤ重心計算回路２８２は、ステップＳ１０２，Ｓ１０３において、以下の式（５）の計算を実行し、重みを考慮した重心計算を実行する。
【０２３３】
【数５】
2004349766.tif 000011
2004349766.tif 000012
【０２３４】
ここで、Ｇｐは、注目画素の重心位置を示し、Ｎは、注目画素とその周辺画素の総合計画素数を示し、ｉは、注目画素と周辺画素を識別する番号を示し、ｐｘ（ｉ）とｐｙ（ｉ）は、ｉ番目の注目画素、または、周辺画素のｘ座標とｙ座標を示す。
【０２３５】
すなわち、ＩＤ重心計算回路２８２は、ステップＳ１０２において、式（５）におけるα（ｉ）ｐｘ（ｉ）とα（ｉ）ｐｙ（ｉ）について、１≦ｉ≦Ｎの範囲で演算を実行し、ステップＳ１０３において、式（５）におけるサメーションの演算を実行することにより重心位置を計算する。
【０２３６】
このように重心が計算されることにより、各画素の画素位置のみから重心が求められるのではなく、光ビーコン１１から受光された時間に対応した重みに基づいて重心が求められることにより、受光された位置がより正確に求められることになる。
【０２３７】
尚、重みは、上述の式（４）により光ビーコン１１の点滅パターンを受光した時間に対応して重みが付加されていたが、時間は連続変量であるため、実際の演算においては、離散変量に変換する必要がある。従って、上述の重みの演算は、以下の式（６）を用いるようにしてもよい。
【０２３８】
【数６】
2004349766.tif 000013
2004349766.tif 000014
【０２３９】
ここで、ｃ（ｉ）は、注目画素、または、その周辺画素が受信したデータビット数であり、ｃｓｕｍ（ｉ）は、注目画素、および、その周辺画素が受信したデータビット数の総数である。このように、受信したデータビット数は、光ビーコン１１の受光時間に比例することになるので、実質的に、式（４）で求められる重みを連続変量から離散変量へ変換した近似値が得られることになる。
【０２４０】
以上によれば、重みを考慮した正確な重心位置が求められるので、結果として、光ビーコンとＩＤ認識カメラを利用したデータの通信における、通信精度を向上させることが可能となる。
【０２４１】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行させることが可能な、例えば汎用のパーソナルコンピュータなどに記録媒体からインストールされる。
【０２４２】
この記録媒体は、図２，図３に示すようにＰＣサーバ１、および、携帯端末４に予め組み込まれた状態でユーザに提供される、プログラムが記録されている記憶部３８，７８だけではなく、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク５１，９１（フレキシブルディスクを含む）、光ディスク５２，９２（ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ），ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）を含む）、光磁気ディスク５３，９３（ＭＤ（Ｍｉｎｉ−Ｄｉｓｃ）（登録商標）を含む）、もしくは半導体メモリ５４，９４（Ｍｅｍｏｒｙ  Ｓｔｉｃｋを含む）などよりなるパッケージメディアにより構成される。
【０２４３】
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
【０２４４】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０２４５】
【発明の効果】
本発明によれば、光ビーコンとＩＤ認識カメラを利用したデータの通信における通信精度を向上させることが可能となる。
【図面の簡単な説明】
【図１】本発明を適用した情報通信システムの一実施の形態の構成を示す図である。
【図２】図１のＰＣサーバの構成を示すブロック図である。
【図３】図１の携帯端末の構成を示すブロック図である。
【図４】図３のＩＤ認識カメラのブロック図である。
【図５】図４の比較部の構成を示すブロック図である。
【図６】図４のＩＤデコード処理部のブロック図である。
【図７】図６のエラー検出部のブロック図である。
【図８】図１の光ビーコンのブロック図である。
【図９】マンチェスタ符号化を説明する図である。
【図１０】マンチェスタ符号化を説明する図である。
【図１１】図１の光ビーコンのその他のブロック図である。
【図１２】ＩＤ認識カメラが点滅パターンをデコードする動作を説明する図である。
【図１３】光ビーコンの点滅パターンとデコードされるデータの関係を説明する図である。
【図１４】光ビーコンの点滅パターンとデコードされるデータの関係を説明する図である。
【図１５】光ビーコンの点滅パターンとデコードされるデータの関係を説明する図である。
【図１６】光ビーコンの点滅パターンとデコードされるデータの関係を説明する図である。
【図１７】発光処理を説明するフローチャートである。
【図１８】送信データ取得処理を説明するフローチャートである。
【図１９】比較処理を説明するフローチャートである。
【図２０】比較処理を説明する図である。
【図２１】ＩＤデコード処理を説明するフローチャートである。
【図２２】スタートコード検出処理を説明するフローチャートである。
【図２３】エラー検出処理を説明するフローチャートである。
【図２４】エラー検出処理を説明する図である。
【図２５】ＩＤデコード処理部のその他の構成を示すブロック図である。
【図２６】エラー検出部のその他の構成を示すブロック図である。
【図２７】ＩＤデコード処理を説明するフローチャートである。
【図２８】エラー検出処理を説明するフローチャートである。
【図２９】注目画素と周辺画素を説明するフローチャートである。
【図３０】重心計算処理を説明するフローチャートである。
【符号の説明】
１  ＰＣサーバ，  ４  携帯端末，  ３，３−１乃至３−ｎ  情報ユニット，  １１，１１−１乃至１１−６  光ビーコン１１１  ＩＤ認識カメラ，  １８１  正フレーム間差分計算部，  １８２  コンパレータ，  １８３  負フレーム間差分計算部，  １８４  コンパレータ，  ２１０  エラー検出部，  ２１１  ＩＤデコード回路，  ２４１  エラー検出部，  ２５１  重み計算部２８１  ＩＤ重心計算回路
【図１】
2004349766.tif 000015
【図２】
2004349766.tif 000016
【図３】
2004349766.tif 000017
【図４】
2004349766.tif 000018
【図５】
2004349766.tif 000019
【図６】
2004349766.tif 000020
【図７】
2004349766.tif 000021
【図８】
2004349766.tif 000022
【図９】
2004349766.tif 000023
【図１０】
2004349766.tif 000024
【図１１】
2004349766.tif 000025
【図１２】
2004349766.tif 000026
【図１３】
2004349766.tif 000027
【図１４】
2004349766.tif 000028
【図１５】
2004349766.tif 000029
【図１６】
2004349766.tif 000030
【図１７】
2004349766.tif 000031
【図１８】
2004349766.tif 000032
【図１９】
2004349766.tif 000033
【図２０】
2004349766.tif 000034
【図２１】
2004349766.tif 000035
【図２２】
2004349766.tif 000036
【図２３】
2004349766.tif 000037
【図２４】
2004349766.tif 000038
【図２５】
2004349766.tif 000039
【図２６】
2004349766.tif 000040
【図２７】
2004349766.tif 000041
【図２８】
2004349766.tif 000042
【図２９】
2004349766.tif 000043
【図３０】
2004349766.tif 000044