JP2004349766A - Information processing apparatus ad method, recording medium, and program - Google Patents

Information processing apparatus ad method, recording medium, and program Download PDF

Info

Publication number
JP2004349766A
JP2004349766A JP2003141439A JP2003141439A JP2004349766A JP 2004349766 A JP2004349766 A JP 2004349766A JP 2003141439 A JP2003141439 A JP 2003141439A JP 2003141439 A JP2003141439 A JP 2003141439A JP 2004349766 A JP2004349766 A JP 2004349766A
Authority
JP
Japan
Prior art keywords
frame
frames
light
difference
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2003141439A
Other languages
Japanese (ja)
Inventor
Teruyuki Ushiro
輝行 後
Nobuyuki Matsushita
伸行 松下
Shinichi Yoshimura
真一 吉村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2003141439A priority Critical patent/JP2004349766A/en
Publication of JP2004349766A publication Critical patent/JP2004349766A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Detection And Prevention Of Errors In Transmission (AREA)
  • Optical Communication System (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To enhance communication accuracy in data communication utilizing an optical beacon and an ID recognition camera. <P>SOLUTION: A light receiving section 141 receives an optical signal emitted from a transmitter for emitting light in a prescribed blinking pattern on the basis of Manchester-encoded data. A storage section 161 stores the optical signal received by the light receiving section 141 in a frequency being N times the prescribed blinking pattern and in the units of frames. A comparison section 162 calculates the information of the amount of received light for a plurality of frames by each of N frames among the information denoting the amount of received light between the frames stored in the storage section 161 in a prescribed form, and compares the arithmetic result with a prescribed threshold. An ID decode processing section 144 decodes the data subjected to Manchester encoding on the basis of the result of the comparison. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、情報処理装置および方法、記録媒体、並びにプログラムに関し、特に、光ビーコンとID認識カメラを利用したデータの通信における、通信精度を向上できるようにした情報処理装置および方法、記録媒体、並びにプログラムに関する。
【0002】
【従来の技術】
所定の点滅パターンで光を発することにより信号を送信する送信装置と、その送信装置により発せられる光の点滅パターンを撮像し、撮像された点滅パターンに基づいて、データ通信を実現する送受信システムが存在する。
【0003】
例えば、撮像装置として、ID(Identifier)認識カメラが、画像を撮像すると共に、上述したような送信装置として機能する光ビーコンにより発せられる信号に基づいてIDデータを送受信可能なシステムがある(例えば、特許文献1参照)。
【0004】
【特許文献1】
特願2001−325356
【0005】
【発明が解決しようとする課題】
しかしながら、上述のシステムにおいては、外乱光による干渉が生じると、ID認識カメラは、光の点滅パターンを正しく読み取ることができず、正しくデータを受信することができない状態となってしまうため、結果としてエラーが生じてしまうという課題があった。
【0006】
また、上述のシステムにおいては、送信データは点滅パターン、すなわち時間方向の光のパターンで表現されることになるために、各画素毎にデータが受信されてデコードされると、データ受信中に送信装置と受信装置間の相対的な位置関係に変化が生じた場合、データの受信途中で、光が受光される画素が、隣接位置に存在する画素へと移動してしまうので、画素単位で受光されるパターンが変化してしまい、正しくデータを受信できないという課題があった。
【0007】
また、このような現象は、送信データのデータ長が短ければ、その影響は小さいが、データ長が長くなるにしたがって影響が大きくなるため、大きなデータほどエラーが生じやすくなると言う課題があった。
【0008】
さらに、点滅パターンにより表現される信号の受光面積が大きい場合、その影響は小さいが、光ビーコンで光を発光させる部分の面積が小さかったり、また、光ビーコンとID認識カメラとの距離が離れてしまうと、相対的に受光面積が小さくなってしまうため、結果的に、その影響が大きくなり、データの受信途中でデータが途切れやすくなってしまうという課題があった。
【0009】
これらの課題に対応するため、受信したデータの位置の算出は、同じデータを受信した複数の画素の座標から重心を求めたり、外接四角形を求めたりという手法を用いることにより、受光される画素の位置の変化に対応できるようにしてきたが、これらの手法では、データを途中まで受信した画素があったとき、その途中まで信号を受信していた画素の情報は使用できない状態になってしまうため、算出される位置の精度の向上は困難なものであった。
【0010】
本発明はこのような状況に鑑みてなされたものであり、データ伝送効率の高い符号化としてマンチェスタ符号化を採用し、さらに環境光などの外乱により生じてしまうエラーを検出すると共に、受信データのデコードを各画素毎に行うときに、近傍の画素の情報をも用いることで、データ受信中に送信装置と受信装置の間で相対的に位置関係の変化が生じても、通信状態を安定させ、データを一部分でも受信した画素の情報をも用いるようにすることで、より高精度なデータの通信を可能にするものである。
【0011】
【課題を解決するための手段】
本発明の情報処理装置は、マンチェスタ符号化されたデータに基づいて、所定の点滅パターンで発光する送信装置により発光される光の信号を受光する受光手段と、受光手段により受光された光の信号を、所定の点滅パターンのN倍の周波数で、かつ、フレーム単位で取得する取得手段と、取得手段により取得された信号を記憶する記憶手段と、記憶手段に記憶されたフレーム間の受光量の情報のうち、Nフレーム毎の複数のフレームの受光量の情報を演算する第1の演算手段と、第1の演算結果を所定の閾値と比較する第1の比較手段と、第1の比較手段による第1の比較結果に基づいて、マンチェスタ符号化されたデータをデコードするデコード手段とを備えることを特徴とする。
【0012】
前記第1の演算手段には、記憶手段に記憶されたNフレーム毎のそれぞれのフレームについて、各フレームから、フレームより2M個前までのフレームのうち、第1フレーム乃至第Mフレームまでの受光量の和と、第(M+1)フレーム乃至第2Mフレームまでの受光量の和との差分である第1の差分を演算させるようにすることができ、第1の比較手段には、第1の差分を第1の演算結果として、所定の閾値である第1の閾値と比較させるようにすることができる。
【0013】
前記記憶手段に記憶されたフレームの受光量の情報のうち、今のフレーム、Nフレーム前のフレーム、および、2Nフレーム前のフレームのそれぞれの、第1の比較手段による第1の比較結果に基づいて、データの誤りのエラーを検出するエラー検出手段をさらに設けるようにさせることができる。
【0014】
前記第1の演算手段は、記憶手段に記憶されたフレームの受光量の情報のうち、今のフレーム、Nフレーム前のフレーム、および、2Nフレーム前のフレームの、それぞれの2M個前までのフレームのうち、第1フレーム乃至第Mフレームまでの受光量の和と、第(M+1)フレーム乃至第2Mフレームまでの受光量の和との第1の差分を演算させるようにすることができ、第1の比較手段には、今のフレーム、Nフレーム前のフレーム、および、2Nフレーム前のフレームの、それぞれの第1の差分と、所定の閾値である第1の閾値とを比較させるようにすることができ、エラー検出手段には、第1の比較手段による今のフレーム、Nフレーム前のフレーム、および、2Nフレーム前のフレームに対応する、第1の比較結果に基づいて、エラーを検出させるようにすることができる。
【0015】
前記今のフレーム、Nフレーム前のフレーム、および、2Nフレーム前のフレームの第1の差分のいずれかが、第1の閾値よりも大きく、かつ、今のフレーム、および、Nフレーム前のフレーム、の第1の差分のいずれもが第1の閾値よりも大きい場合、または、今のフレーム、Nフレーム前のフレーム、および、2Nフレーム前のフレームの第1の差分のいずれかが、第1の閾値よりも大きく、かつ、Nフレーム前のフレーム、および、2Nフレーム前のフレーム、の第1の差分のいずれもが、第1の閾値よりも大きい場合、エラー検出手段には、第1の比較結果に基づいて、エラーを検出させるようにすることができる。
【0016】
前記記憶手段に記憶されたNフレーム毎のそれぞれのフレームについて、各フレームから、フレームより2M個前までのフレームのうち、第(M+1)フレーム乃至第2Mフレームまでの受光量の和と、第1フレーム乃至第Mフレームまでの受光量の和との差分である第2の差分を演算する第2の演算手段と、第2の演算結果を第2の閾値と比較する第2の比較手段とをさらにもうけるようにさせることができ、今のフレーム、Nフレーム前のフレーム、および、2Nフレーム前のフレームの第1の差分のいずれかが、第1の閾値よりも大きく、かつ、今のフレーム、および、Nフレーム前のフレーム、の第1の差分のいずれもが第1の閾値よりも大きい場合、今のフレーム、Nフレーム前のフレーム、および、2Nフレーム前のフレームの第1の差分のいずれかが、第1の閾値よりも大きく、かつ、Nフレーム前のフレーム、および、2Nフレーム前のフレーム、の第1の差分のいずれもが、第1の閾値よりも大きい場合、今のフレーム、Nフレーム前のフレーム、および、2Nフレーム前のフレームの第2の差分のいずれかが、第2の閾値よりも大きく、かつ、今のフレーム、および、Nフレーム前のフレーム、の第2の差分のいずれもが第2の閾値よりも大きい場合、今のフレーム、Nフレーム前のフレーム、および、2Nフレーム前のフレームの第2の差分のいずれかが、第2の閾値よりも大きく、かつ、Nフレーム前のフレーム、および、2Nフレーム前のフレーム、の第2の差分のいずれもが、第2の閾値よりも大きい場合、または、第1の差分が、第1の閾値よりも大きく、かつ、第2の差分が、第2の閾値よりも大きい場合、エラー検出手段には、第1の比較結果、および、第2の比較結果に基づいて、エラーを検出させるようにすることができる。
【0017】
本発明の情報処理方法は、マンチェスタ符号化されたデータに基づいて、所定の点滅パターンで発光する送信装置により発光される光の信号を受光する受光装置で受光された光の信号を、所定の点滅パターンのN倍の周波数で、かつ、フレーム単位で取得する取得ステップと、取得ステップの処理で取得されたフレーム間の受光量の情報のうち、Nフレーム毎の複数のフレームの受光量の情報を演算する第1の演算ステップと、第1の演算結果を所定の閾値と比較する第1の比較ステップと、第1の比較ステップの処理での第1の比較結果に基づいて、マンチェスタ符号化されたデータをデコードするデコードステップとを含むことを特徴とする。
【0018】
本発明の記録媒体のプログラムは、マンチェスタ符号化されたデータに基づいて、所定の点滅パターンで発光する送信装置により発光される光の信号を受光する受光装置で受光された光の信号を、所定の点滅パターンのN倍の周波数で、かつ、フレーム単位で取得する取得ステップと、取得ステップの処理で取得されたフレーム間の受光量の情報のうち、Nフレーム毎の複数のフレームの受光量の情報を演算する第1の演算ステップと、第1の演算結果を所定の閾値と比較する第1の比較ステップと、第1の比較ステップの処理での第1の比較結果に基づいて、マンチェスタ符号化されたデータをデコードするデコードステップとを含むことを特徴とする。
【0019】
本発明のプログラムは、マンチェスタ符号化されたデータに基づいて、所定の点滅パターンで発光する送信装置により発光される光の信号を受光する受光装置で受光された光の信号を、所定の点滅パターンのN倍の周波数で、かつ、フレーム単位で取得する取得ステップと、取得ステップの処理で取得されたフレーム間の受光量の情報のうち、Nフレーム毎の複数のフレームの受光量の情報を演算する第1の演算ステップと、第1の演算結果を所定の閾値と比較する第1の比較ステップと、第1の比較ステップの処理での第1の比較結果に基づいて、マンチェスタ符号化されたデータをデコードするデコードステップとをコンピュータに実行させることを特徴とする。
【0020】
本発明の情報処理装置および方法、並びにプログラムにおいては、マンチェスタ符号化されたデータに基づいて、所定の点滅パターンで発光する送信装置により発光される光の信号が受光され、受光された光の信号が、所定の点滅パターンのN倍の周波数で、かつ、フレーム単位で取得され、取得された信号が記憶され、記憶されたフレーム間の受光量の情報のうち、Nフレーム毎の複数のフレームの受光量の情報が演算され、演算結果が所定の閾値と比較され、比較結果に基づいて、マンチェスタ符号化されたデータがデコードされる。
【0021】
本発明の情報処理装置は、独立した装置であっても良いし、情報処理を行うブロックであっても良い。
【0022】
【発明の実施の形態】
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【0023】
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
【0024】
即ち、本発明の情報処理装置は、マンチェスタ符号化されたデータに基づいて、所定の点滅パターンで発光する送信装置により発光される光の信号を受光する受光手段例えば、図4の受光部141)と、受光手段により受光された光の信号を、所定の点滅パターンのN倍の周波数で、かつ、フレーム単位で取得する取得手段(例えば、図4の記憶部161)と、取得手段により取得された信号を記憶する記憶手段(例えば、図4の記憶部161)と、記憶手段に記憶されたフレーム間の受光量の情報のうち、Nフレーム毎の複数のフレームの受光量の情報を演算する第1の演算手段と、第1の演算結果を所定の閾値と比較する第1の比較手段(例えば、図4の比較部162)と、第1の比較手段による第1の比較結果に基づいて、マンチェスタ符号化されたデータをデコードするデコード手段(例えば、図6のIDデコード回路211)とを備えることを特徴とする。
【0025】
本発明の情報処理方法は、マンチェスタ符号化されたデータに基づいて、所定の点滅パターンで発光する送信装置により発光される光の信号を受光する受光装置で受光された光の信号を、所定の点滅パターンのN倍の周波数で、かつ、フレーム単位で取得する取得ステップ(例えば、図18のフローチャートのステップS13の処理)と、取得ステップの処理で取得されたフレーム間の受光量の情報のうち、Nフレーム毎の複数のフレームの受光量の情報を演算する第1の演算ステップ(例えば、図19のフローチャートのステップS21,S23の処理)と、第1の演算結果を所定の閾値と比較する第1の比較ステップ(例えば、図19のフローチャートのステップS22,S24の処理)と、第1の比較ステップの処理での第1の比較結果に基づいて、マンチェスタ符号化されたデータをデコードするデコードステップ(例えば、図21のフローチャートのステップS76の処理)とを含むことを特徴とする。
【0026】
図1は、本発明に係る情報通信システムの一実施の形態の構成を示すブロック図である。
【0027】
図1の情報通信システムは、PC(Personal Computer)サーバ1、コントロールユニット2、情報ユニット3−1乃至3−n、および携帯端末4から構成される。
【0028】
PCサーバ1は、コントロールユニット2に対して、情報ユニット3−1乃至3−nのそれぞれに対応する場所での、データを出力させるように指令を出す。
【0029】
コントロールユニット2は、いわゆる切替制御装置のような機能を果たすものであり、PCサーバ1からの指令に基づいて、各情報ユニット3−1乃至3−nのいずれかを制御信号により指定して、所定のデータを出力し、送信させる。情報ユニット3−1乃至3−nは、板状の平面上に2次元、または、1次元に複数の光ビーコン11−1乃至11−6が配列されたものであり、データを送信する各種の地点に設置される。また、情報ユニット3−1乃至3−nは、コントロールユニット2からの制御信号に基づいて、光ビーコン11−1乃至11−6のそれぞれについての点滅パターンを替えて発光することにより、光で携帯端末4にデータを送信する。より詳細には、各光ビーコン11−1乃至11−6は、それぞれの点滅パターンにより、自らを識別するID(Identifier)データを送信しているが、IDデータには様々なデータを含めて送信することができるので、この機能を利用することにより、案内用の音声ファイルを送信している。
【0030】
光ビーコン11−1乃至11−6は、所定の発光パターンで光を発することによりデータを送信する。このデータは、IDデータと呼ばれるものであり、光ビーコン11−1乃至11−6をそれぞれ識別するものであるが、転送可能なデータ量に余裕があるため、その他のデータを含めて送信することも可能である。例えば、IDデータに含められるデータとしては、コンテンツデータ(画像データ、音声データ、または、テキストデータなど)、リンク先データ(URL(Uniform Resource Locator)、アドレス、ホストネームなどのデータ)、および、自らが所属するグループを識別するグループ識別データなどがあるが、これらに限るものではなく、電子データとして管理できるデータであれば含めて送信することが可能である。このように、光ビーコン11−1乃至11−6は、その発光パターンを変化させることによりIDデータのみならず、様々なデータを送信することができる。
【0031】
ここで、自らが所属するグループを識別するグループ識別データについて説明する。例えば、図1においては、情報ユニット3−1乃至3−nのそれぞれを構成する複数の光ビーコン11の群はグループと称され、これらのグループを識別するデータがグループ識別データとなる。したがって、今の場合、光ビーコン11−1乃至11−6は、同一の情報ユニット3−1の同一のグループに属しているので、同一のグループ識別データを発する。
【0032】
尚、情報ユニット3−1乃至3−n、および、光ビーコン11−1乃至11−6は、特に区別する必要がない場合、単に情報ユニット3、および、光ビーコン11と称する。また、今の場合、図1には、情報ユニット3が1個に対して光ビーコン11が6個ある例について示されているが、データの送信に必要な点滅パターンが作り出せる個数であればよく、少なくとも1個以上であれば個数はいくつであっても構わない。
【0033】
携帯端末4は、送信されてくるデータを受けようとするユーザにより所持されるものであり、情報ユニット3より光ビーコン11の点滅パターンにより光で送信されてくるデータをID認識カメラ21で撮像することにより認識して、所定の処理を実行する。
【0034】
尚、ID認識カメラ21、および、光ビーコン11については、詳細を後述する。
【0035】
図2は、PCサーバ1の構成を示すブロック図である。CPU(Central Processing Unit)31は、ROM(Read Only Memory)32、または記憶部38に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)33には、CPU31が実行するプログラムやデータなどが適宜記憶される。これらのCPU31、ROM32、およびRAM33は、バス34により相互に接続されている。
【0036】
CPU31には、バス34を介して入出力インタフェース35が接続されている。入出力インタフェース35には、キーボード、マウス、マイクロホンなどよりなる入力部36、ディスプレイ、スピーカなどよりなる出力部37が接続されている。CPU31は、入力部36から入力される指令に対応して各種の処理を実行する。そして、CPU31は、処理の結果得られた画像や音声等を出力部37に出力する。
【0037】
入出力インタフェース35に接続されている記憶部38は、例えばハードディスクなどで構成され、CPU31が実行するプログラムや各種のデータを記憶する。通信部39は、図示せぬネットワークを介して通信機能を有する装置と音声ファイルなどの各種のデータの授受を行う。
【0038】
入出力インタフェース35に接続されているドライブ40は、磁気ディスク51、光ディスク52、光磁気ディスク53、或いは半導体メモリ54などが装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部38に転送され、記憶される。
【0039】
次に、図3を参照して、携帯端末4の構成について説明する。
【0040】
携帯端末4の構成は、基本的に、図2のPCサーバ1と同様であり、携帯端末4のCPU71、ROM72、RAM73、バス74、入出力インタフェース75、入力部76、出力部77、記憶部78、ドライブ79、磁気ディスク91、光ディスク92、光磁気ディスク93、および、半導体メモリ94は、PCサーバ1のCPU31、ROM32、RAM33、バス34、入出力インタフェース35、入力部36、出力部37、記憶部38、ドライブ40、磁気ディスク51、光ディスク52、光磁気ディスク53、および、半導体メモリ54に対応するものである。但し、携帯端末4は、全てにおいて携帯性を重視した構成となっているため、処理速度や記憶部78の記憶容量などは、PCサーバ1に比べて小さいものである。
【0041】
また、入力部76には、ID(Identifier)認識カメラ21が接続されており、撮像された撮像画像と、光ビーコン11が撮像された際に、その点滅パターンにより取得されるIDデータが入力される。
【0042】
ここで、図4を参照して、ID認識カメラ21の詳細な構成について説明する。受光部141は、撮像される対象となる撮像領域の光を電気信号に光電変換した後、演算部142に出力する。また、受光部141の受光素子151は、CMOS(Complementary Metal−Oxide Semiconductor)素子からなり、従来のCCD(Charge Coupled Device)素子よりも高速に動作することができる。より詳細には、受光素子151が、撮像される対象となる撮像領域の光を光電変換し、増幅器152に出力する。増幅器152は、受光素子151より入力される光電変換された電気信号を増幅して、演算部142、および、画像処理部143に出力する。
【0043】
演算部142の記憶部161は、受光部141より入力された増幅されている電気信号を撮像された画像の各画素値として、フレーム単位で、後述する比較部162における演算処理に必要なフレーム数だけ記憶し、適宜比較部162に出力する。比較部162は、記憶部161に記憶された電気信号の値に基づいて、演算処理を行い、演算結果を所定のリファレンス値(=基準信号レベル)と比較して、比較結果を出力部163に出力する。出力部163は、比較結果に基づいてセンサ出力信号を生成してIDデコード処理部144に出力する。
【0044】
画像処理部143は、受光部141より供給された撮像画像を入力部76(図3)に出力する。
【0045】
IDデコード処理部144は、センサ出力信号をデコード処理し、IDデータと位置データを生成して入力部76(図3)に出力する。
【0046】
次に、図5を参照して、比較部162の構成について説明する。
【0047】
比較部162の正フレーム間差分計算部181、および、負フレーム間差分計算部183は、光の変化を検出するために、今撮像されているフレームを基準として、2Mフレーム前までの、2Mフレーム間の差分値を求め、それぞれコンパレータ182,184に出力する。コンパレータ182,184は、入力された差分値を、それぞれ所定の閾値Ref(+),Ref(−)と比較し、比較結果に対応して1、または、0の値を出力部に供給する。より具体的には、正フレーム間差分計算部181は、差分値が閾値Ref(+)より大きいとき1を、それ以外のとき0を出力し、負フレーム間差分計算部183は、差分値が閾値Ref(−)より小さいとき1を、それ以外のとき0を出力する。尚、Mは、正の整数を示す。また、説明の便宜上、以下の説明においては、Ref(+)=−Ref(−)であるものとするが、これに限るものではない。
【0048】
より詳細には、正フレーム間差分計算部181は正の2Mフレーム間差分を以下の式(1)で示されるように計算して、コンパレータ182の端子182aに出力する。
【0049】
【数1】

Figure 2004349766
Figure 2004349766
【0050】
尚、式(1)におけるf(n)は、第nフレームにおける所定の画素位置の画素値を示しており、式(1)の第1項は、第nフレームから第(n−M−1)フレームの画素値のサメーションを示しており、第2項は、第(n−M)フレームから第(n−2M−1)フレームの画素値のサメーションを示している。すなわち、正フレーム間差分計算部181は、式(1)を演算することにより、時系列的に、今のフレームに近い新しい画素値の和から、今のフレームに遠い古い画素値の和を引いた値を正フレーム間差分YP(M,n)として求める。
【0051】
また、同様にして、負フレーム間差分計算部183は正の2Mフレーム間差分を以下の式(2)で示されるように計算して、コンパレータ184の端子184aに出力する。
【0052】
【数2】
Figure 2004349766
Figure 2004349766
【0053】
尚、式(2)の第1項は、第(n−M)フレームから第(n−2M−1)フレームの画素値のサメーションを、第2項は、第nフレームから第(n−M−1)フレームの画素値のサメーションをそれぞれ示している。すなわち、負フレーム間差分計算部183は、式(2)を演算することにより、時系列的に、今のフレームに遠い古い画素値の和から今のフレームに近い新しい画素値の和を引いた値を負フレーム間差分YM(M,n)として求める。
【0054】
さらに、コンパレータ182は、端子182aに入力されてくる正フレーム間差分値YP(M,n)と、端子182bに入力されるリファレンス値Ref(+)(リファレンス値Ref(+)は、任意に設定される値である)とを比較し、正フレーム間差分値YP(M,n)がリファレンス値Ref(+)よりも大きい場合、第nフレームにおける比較結果としてCP(n)=1を後段に出力し、逆に、正フレーム間差分値YP(M,n)がリファレンス値Ref(+)よりも小さい場合、第nフレームにおける比較結果としてCP(n)=0を後段に出力する。
【0055】
同様に、コンパレータ184は、端子184aに入力されてくる負フレーム間差分値YM(M,n)と、端子184bに入力されるリファレンス値Ref(−)(リファレンス値Ref(−)は、任意に設定される値)とを比較し、負フレーム間差分値YM(M,n)がリファレンス値Ref(−)よりも小さい場合、第nフレームにおける比較結果としてCM(n)=1を後段に出力し、逆に、負フレーム間差分値YM(M,n)がリファレンス値Ref(−)よりも大きい場合、第nフレームにおける比較結果としてCP(n)=0を後段に出力する。
【0056】
演算部142は、以上のような演算により信号を、光ビーコン11の発光により送信されてくる信号を検出する。尚、演算部142による信号の検出方法については、詳細を後述する。
【0057】
次に、図6を参照して、IDデコード処理部144の詳細な構成について説明する。IDデコード部201のIDデコード回路211は、IC(Integrated Circuit)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などのデバイスにより構成されており、イメージセンサ131から入力されるセンサ出力信号より各画素のIDデータを復元する。このIDデコード回路211は、処理能力が十分であれば、マイクロプロセッサやDSP(Digital Signal Processor)によってソフトウェアで構成するようにしても良い。
【0058】
フラグレジスタ212は、IDデータをデコードするために必要なフラグ類を記憶するためのレジスタであり、データレジスタ213は、デコード途中またはデコードを完了したIDを記憶しておくためのレジスタである。
【0059】
尚、図6においては、IDデコード部201は、1個のみが示されているが、処理速度の要求により、例えば、各画素毎に設けるようにしてもよいし、垂直方向、または、水平方向のライン毎に設けるようにしても良い。
【0060】
タイミング制御部202は、IDデコード処理部144の全体の動作に必要なタイミングを制御するタイミング制御信号を出力する。より具体的には、タイミング制御部202は、IDデコード回路211とセンサ出力信号のタイミングの同期をとり、所望のセンサ出力信号に対して、対応するフレームメモリ203のフラグデータをフラグレジスタ212に、IDデータをデータレジスタ213に、それぞれロードして、IDデコード処理を進めるためのタイミング制御信号を生成し、IDデコード部201(のIDデコード回路211、フラグレジスタ212、および、データレジスタ213)に供給する。また、このとき、タイミング制御部202は、フレームメモリ203へのアドレス信号、リードライトなどのタイミング制御信号を生成し供給する。さらに、タイミング制御部202は、重心計算部204のIDレジスタ221、および、ID重心計算回路222、並びに、ID座標格納メモリ205のタイミング制御を行うタイミング制御信号を生成して供給する。
【0061】
IDデコード処理部144における、IDデコード部201のエラー検出部210は、演算部142より供給されてきたセンサ出力信号、すなわち、比較部162のコンパレータ182,184より供給された、正フレーム間差分値YP(M,n)、および、負フレーム間差分値YM(M,n)に基づいて、ID認識カメラ21で撮像されて、取得されたIDデータのエラーの有無を判定し、判定結果をIDデコード回路211に供給する。IDでコード回路211は、エラー検出部210より供給された判定結果に基づいて、エラーが検出されていない場合、入力されたセンサ出力信号をデコードし、エラーが検出された場合、デコードを停止する。
【0062】
フレームメモリ203は、受光素子151、または演算部142毎に演算されたセンサ出力信号がデコードされたIDデータとフラグデータを格納するメモリであり、イメージセンサ131が1画素につき1個の演算部142をもつ場合には、センサの画像サイズであるM画素×N画素と同じサイズとなり、データ幅はフラグレジスタ212とデータレジスタ213のビット幅の和で構成される。図6においては、各画素の位置に対応する座標が、I軸とJ軸により示されており、それぞれの座標位置にIDデータとフラグデータが格納される。
【0063】
重心計算部204は、同一のIDデータを持つ撮像画像上の画素の重心位置の座標を求め、IDデータに、光ビーコン11の検出位置としての位置データ(=光ビーコン11の撮像画像上の位置データ)を付して出力する。より詳細には、重心計算部204のIDレジスタ221は、タイミング制御部202より入力される所定のIDデータがデコード部201よりデコードされたことを示すタイミング制御信号によりフレームメモリ203に今記憶されたIDデータを読出し、ID重心計算回路222に出力する。ID重心計算回路222は、入力されたIDデータ毎に、対応する画素の座標位置のI座標とJ座標、並びにデータの個数を順次加算してID座標格納メモリ205に記憶させる。また、ID重心計算回路222は、フレームメモリ203に1フレーム分のデータが格納されたとき、ID座標格納メモリ205よりID毎にI座標の和とJ座標の和を、データの個数で割ることにより重心位置の座標を求めて、IDデータと共に出力する。
【0064】
次に、図7を参照して、エラー検出部210の構成について説明する。
【0065】
エラー検出部210のメモリ231は、演算部142より供給されたセンサ出力信号を所定のフレーム間隔で、複数のフレームについて各画素毎に記憶する。より詳細には、例えば、後述する光ビーコンの点滅周波数のN倍の周波数で画像を撮像する場合、Nフレーム間隔で、例えば、mフレーム分記憶する場合、時系列的に順次m個ずつセンサ出力信号を記憶し、さらに、新しいセンサ出力信号を記憶するとき、記憶しているm個のセンサ出力信号のうち、最も古いものを削除して新しいセンサ出力信号を記憶する。結果として、メモリ231は、常にm個の最新のセンサ出力信号を記憶する。
【0066】
比較部232は、メモリ231に記憶されているm個のセンサ出力信号を用いて比較処理を実行して、比較結果を判定部233に出力する。
【0067】
判定部233は、比較部232より供給された比較結果に基づいて、エラーの有無を判定し、判定結果を出力する。尚、比較部232の比較方法、並びに、判定部233の判定方法については、詳細を後述する。
【0068】
次に、図8を参照して、光ビーコン11の構成について説明する。図7の光ビーコン11は、図示せぬネットワークを介して他の装置と通信することによりデータを可変とすることが可能である。ここでネットワークとは、有線・無線の通信回線、例えば電話回線、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などの通信手段により他の装置とデータ通信ができる環境をいう。また、データ送受信部251は、この通信手段に対応するデータ通信用IC及びドライバから構成されており、ネットワークを介して受信した光ビーコン11の送信データを、マンチェスタ符号化部252に出力する。マンチェスタ符号化部252は、データ送受信部251より供給された送信データをマンチェスタ符号化して点滅制御部253に出力する。点滅制御部253は、入力されたマンチェスタ符号に変換されている送信データに応じた点滅パターンを発生し、発光部254を発光させる。
【0069】
ここで、マンチェスタ符号化について説明する。マンチェスタ符号化とは、図9で示されるように、デジタル信号化された送信データについて、0の信号を10に、1の信号を01にそれぞれ表現する符号化方法である。ここで、1は発光部254をオンにすることを示し、0は発光部254をオフにすることを示す。
【0070】
マンチェスタ符号化された送信データには、「スタートコード」が変換されたデータの前に付されており、送信データの開始位置を確認することができるようになっている。スタートコードは、図10で示されるように、例えば、「00001」といったものである。尚、図10においては、図中左側がLSB(Least Significant Bit)であり、右側がMSB(Most Significant Bit)を示している。
【0071】
例えば、「10010010」という8ビットの送信データをマンチェスタ符号化する場合、すなわち、送信データとして73を送信したい場合、送信データは、2進数の1/0がそれぞれON/OFFを表しているとき、発光部254は、「OFF−ON→ON−OFF→ON−OFF→OFF−ON→ON−OFF→ON−OFF→OFF−ON→ON−OFF」となるように点滅制御部253により制御されることになる。
【0072】
このようにマンチェスタ符号化することにより、1、または、0をとる信号は3個以上連続することが無く、各送信区間は必ず点滅することになり、長く発光部254がOFFの状態となったままになったり、発光部254がONの状態となったままになるようなことが防止され、環境光との判別も比較的容易となるので、安定した通信が可能となる。
【0073】
さらに、送信データは、ネットワークを介して供給されるものに限らず、例えば、図11で示されるように、データ送受信部251に代えて送信データ保存用メモリ291を設けて、予め送信するコマンドを記憶させるようにしてもよい。
【0074】
次に、ID認識カメラ21の動作について説明する。
【0075】
受光部141の受光素子151は、光を光電変換し、変換した電気信号を増幅部152に出力する。増幅部152は、電気信号を増幅して演算部142、および、画像処理部143に出力する。演算部142の記憶部161は、受光部141より入力された電気信号を順次記憶して、2Mフレーム分の電気信号を記憶し、いっぱいになると、最も古いフレームの電気信号を消去して、最新のフレームの電気信号を記憶する処理を繰り返して、常に最新の2Mフレーム分の電気信号を記憶しており、その2Mフレーム分の電気信号を比較部162に出力する。
【0076】
比較部162は、記憶部161に記憶されている時間的に連続する2Mフレーム分の電気信号を輝度信号として上述した式(1),式(2)のような演算処理を実行し、出力部163は、演算結果をセンサ出力信号としてIDデコード処理部144に出力する。尚、比較部162の動作については、詳細を後述する。
【0077】
画像処理部143は、受光部141より供給された画像信号を処理可能な形式に変換し、画像データとして出力する。
【0078】
次に、IDデコード処理部144の動作について説明する。
【0079】
IDデコード処理部201のエラー検出部210は、演算部142より供給されたセンサ出力信号のエラーの有無を判定し、判定結果をIDデコード回路211に出力する。
【0080】
IDデコード回路211は、エラー検出部210からのエラー判定結果に基づいて、例えば、エラーが検出された場合、以降の処理を実行せず、次のエラー判定結果を待つ。そして、IDデコード回路211は、エラーがないというエラー判定結果が送られた場合、タイミング制御部202からのセンサ出力信号のタイミングの同期を図るためのタイミング制御信号に基づいて、イメージセンサ131から入力されるセンサ出力信号より各画素のIDデータを復元する。この際、IDデコード回路211は、タイミング制御信号に応じて、フラグレジスタ212を制御して、フレームメモリ203にロードされたフラグデータを用いて、センサ出力信号からIDデータをデコードし、デコード途中またはデコードを完了したIDをデータレジスタ213に記憶させる。尚、エラー判定処理については、詳細を後述する。
【0081】
さらに、フレームメモリ203は、これらのデコード処理がなされたフラグデータとIDデータを対応する座標位置に格納する。
【0082】
重心計算部204のIDレジスタ221は、タイミング制御部202より入力される所定のIDデータがデコード部201よりデコードされたことを示すタイミング制御信号により、フレームメモリ203に今記憶されたIDデータの情報をID重心計算回路222に読み出させる。
【0083】
ID重心計算回路222は、読み出したIDデータに対応する画素の座標位置のI座標とJ座標を順次加算して、これに画素の個数の情報を付してID座標格納メモリ205に記憶させ、この処理を繰り返す。
【0084】
そして、フレームメモリ203に1フレーム分のデータが格納されたとき、ID重心計算回路222は、ID座標格納メモリ205よりID毎にI座標の和とJ座標の和を、データの個数で割ることにより重心位置の座標を位置データとして求めて、対応するIDデータと共に出力する。
【0085】
以上の動作により、例えば、図12で示すように、2個の光ビーコン11−1,11−2が、点滅しながら発光してデータを送信する場合、ID認識カメラ21には、図12上部に示すような現実空間上の光ビーコン11−1,11−2の物理的な位置に応じた、撮像画像上の位置の画素で光の信号を受光する。例えば、光ビーコン11−1から発せられた光が座標位置(10,10)の受光素子151で受光されるものとし、光ビーコン11−2から発せられた光が座標位置(90,90)の受光素子151で受光されるものとする。このとき、各受光部141の座標位置(10,10)と(90,90)の受光素子151では、それぞれが光ビーコン11−1と11−2の点滅パターンにより受光強度(明るさ)の時間的変化として信号を受信することができる。今の場合、座標(10,10)の位置データに対応する画素は、IDデータとして「321」が、座標(90,90)の位置データに対応する画素は、IDデータとして105がデコード結果として求められている。
【0086】
結果として、この受光強度の変化を上述の式(1)などにより2値化することにより1/0のビット列からなるIDデータを取得する事ができる。
【0087】
次に、演算部142によるフレーム間差分を用いた信号検出方法について説明する。
【0088】
光ビーコン11が発光することにより送信されてくる信号を検出する最も単純な方法は、受光量をある決められた閾値と比較することで2値化して、受光量を1,0のデジタル信号に変換する方法である。この方法は、最もシンプルで実装も容易であるが、周囲の明るさが変化すると、固定された閾値と比較して2値化する方法では、安定したデータ伝送は望めない。
【0089】
そこで、本発明では、光の変化を検出するのに、受光量を所定のレートで、かつ、フレーム単位で記憶部161が記憶して(サンプリングして)、時間方向に連続する複数のフレーム間の受光量の比較を行うことで、信号を安定して検出できるようにしている。
【0090】
例えば、時間が経過するにしたがって増加するフレーム番号をn、サンプリングされる各フレーム間の各画素毎の受光量をf(n)とすると、1画素の光の変化量は、Y=f(n)−f(n−1)で表され、Y>0のときに光が暗→明に、Y<0のときに光が明→暗になったことを検出したことになる。
【0091】
上述したY=f(n)−f(n−1)を2フレーム間差分と定義して、さらに拡張して2Mフレーム間差分を定義する。ここでMは正の整数である。具体的には、M=1の場合、Y=f(n)−f(n−1)、M=2の場合、Y=f(n)+f(n−1)−f(n−2)−f(n−3)、M=3の場合、Y=f(n)+f(n−1)+f(n−2)−f(n−3)−f(n−4)−f(n−5)となる。すなわち、nフレーム目の2Mフレーム間差分は、上述した式(1)で定義されるYP(M,n)、および、式(2)で定義されるYM(M,n)により求められる。
【0092】
上述の式(1),式(2)を用いてフレーム間差分を求める場合、Mが大きいほど、光の検出感度(式(1),式(2)の演算結果の変化の鋭さ)は高くなる。しかしながら、その一方、Mが大きくなると受光側で、単位時間あたりで記憶するフレーム数、すなわち、サンプリング周波数を固定とすると、光の点滅周波数を落とさなければ、設定されたフレーム数だけ記憶することができず、結果として、データの転送効率が悪くなる。
【0093】
すなわち、図13で示されるように、横軸を時間軸、サンプリング時間(フレーム間の間隔)をΔtとして、光ビーコン11の点滅が実線の波形のようにOFFの状態からON、その後にOFFとなる場合、受光部141が各サンプリング時間に受光する受光量を縦軸に表すと、図13の1点鎖線で示されるような波形となる。ここで、受光量が変化するサンプリング区間(時刻t3乃至t4および時刻t8乃至t9)では、光ビーコン11がONにされるときの受光量に比べて受光量が小さいものの、OFFの状態よりも大きくなる。
【0094】
光ビーコン11がONにされると、受光部141の受光量が図13の実線で示されるように、サンプリング区間が時刻t4乃至t8のとき、受光量は光ビーコン11がONとなる(発光している)ときの受光量に変化し、サンプリング区間が時刻t9乃至t10のとき、受光量は光ビーコン11がOFFとなる(発光していない)ときの受光量に変化する。
【0095】
したがって、正の2フレーム間差分であるYP(1,n)(=(f(n)−f(n−1))で光の変化を検出した場合、2フレーム間差分(正フレーム間差分YP(1,n))は、図13の2点差線で示すように変化し、正の2フレーム間差分YP(1,n)は、光ビーコン11がONの状態のときの1サンプリング区間の受光量に対して、必ず小さい値をとることになる。すなわち、時刻t3乃至t5、および、時刻t8乃至t10において、正の2フレーム間差分YP(1,n)は、光ビーコン11がONの状態のときの1サンプリング区間の受光量に対して、必ず小さい値となっている。
【0096】
これに対して、正の4フレーム間差分YP(2,n)(=f(n)+f(n−1)−f(n−2)−f(n−3))で光の変化を検出した場合、図13の3点差線で示すように、時刻t5乃至t6および時刻t9乃至t10のとき、光の変化が検出され、正の4フレーム間差分YP(2,n)は、最大レベルに達して、光ビーコン11がONの場合の受光量の絶対値よりも大きな値をとることになる。したがって、正の4フレーム間差分YP(2,n) (=f(n)+f(n−1)−f(n−2)−f(n−3))は、正の2フレーム間差分YP(1,n)(=f(n)+f(n−1))にと比較して、より感度の高い信号を検出することができる。
【0097】
もちろん、さらに多くのフレームを用いたフレーム間差分の演算を用いるようにしてもよい(例えば6フレーム間差分など)。しかしながら、差分をとるフレーム数を増やすほど、点滅周波数を遅くする必要が生じる。
【0098】
また、安定して光の変化を検出するためには、受光部141のフレームレートは光ビーコン11の点滅周波数のN倍以上の関係になければならない。ここでNは、光の変化の検出方法によって決まる値である。2フレーム間差分では、N>2であり、4フレーム間差分ではN>3である。すなわち、2Mフレーム間差分(ここでMは正の整数)の場合、N>M+1となる。ここでNは小さい値の方が、同じフレームレートでもデータ転送レートを大きくすることができるので、N=M+1とすることにより最適化されることになる。尚、以降においても、実線、1点鎖線、2点鎖線、および、3点鎖線は、それぞれ発光状態、受光量、2フレーム間差分、4フレーム間差分を示すものとする。
【0099】
ここで、M=1、すなわち、2フレーム間差分の場合にN=2以上でなければならないのは、原信号の周波数の2倍以上の周波数でサンプリングしないと、サンプリング定理からも明らかなように、サンプリング結果から原信号を復元することはできないからである。
【0100】
例えば、図14において実線で示されるように、光ビーコン11のON、または、OFFが変化する場合、図14中の時刻t2乃至t6の区間においては、N=1の関係でサンプリングした場合、時刻t6乃至t13の区間においては、N=2の関係でサンプリングした場合のそれぞれの受光量と正の2フレーム間差分を示している。図14の2点鎖線で示されている変化から分かるように(特に、時刻t3乃至t6(図中の範囲Aで示される部分)において)、N=1の区間では正の2フレーム間差分YP(1,n)(=f(n)−f(n−1))は、受光量(図14中の1点鎖線で示されている変化)と比べて小さくなってしまい(点滅パターンとサンプリング周波数の位相によっては光の変化があってもYP(1,n)が0になる)、安定した検出が困難となっているのがわかる。しかしながら、N=2の区間(図中の範囲Bで示される部分)では、Nフレーム毎(N=2)にYP(1,n)の値が、受光量に比べて大きな値を取り、安定した検出が可能であることがわかる。
【0101】
次に、M=2すなわち4フレーム間差分の場合、N=3が最適であることを説明する。図15は、M=2、N=2の場合の4フレーム間差分の値であるときの信号のレベルの変化を示している。受光部のサンプリングレートの2倍の周波数で光源を点滅させているので、正の4フレーム間差分の値が正負で最大になるときでも、演算する4フレームに光ビーコン11の点滅の立上がりと立下りが含まれてしまうため、受光信号が正負で打ち消してまい、正の4フレーム間差分値は、受光量に比べて大きくならないことが分かる(1サンプリング時間の受光量以下になってしまう)。例えば、時刻t6乃至t7においては、4フレーム間差分(図中の矢印の4フレーム分の範囲)が負の最大値をとる区間の1つであるが、ここで4フレーム間差分は、YP(2,n)=f(t6−t7)+f(t6−t5)−f(t5−t4)−f(t4−t3)となり、f(t4−t3)とf(t6−t5)が共に正の値をとるため、打ち消しあい、YP(2,n)は小さくなってしまう。
【0102】
しかしながら、図16で示されるように、M=4,N=3の場合には、正の4フレーム間差分値が正負でそれぞれ最大値をとるとき(t5−t4,t8−t7,t11−t10,t14−t13)、演算される4フレーム間に光ビーコン11による点滅の立上がりと立下りの両方が含まれることはなく、受光信号が正負で打ち消してしまうことがないので、4フレーム間差分値は、大きな信号を得ることができる。そして、Nサンプリング毎に光ビーコン11の点滅パターンの立上がりエッジ周辺には正の最大値が、立下りエッジ周辺には負の最大値をとることがわかる。したがって、Nフレーム毎の正の4フレーム間差分値YPを用いて、マンチェスタ符号化された原信号を復元できることがわかる。
【0103】
従って、最適なNとMの組み合わせは、Mの値が大きいほど、2Mフレーム間差分値は、高い感度で変化するが、Mを大きくすると(演算に使用するフレーム数を多くすると)N>M+1の関係からNも大きくしなければならず(サンプリング数も多くしなければならず)、同じ点滅周波数で送ることのできるデータ伝送の効率が悪くなるので、演算に使用するフレーム数とサンプリング周波数とのバランスを考慮して決定する必要がある。
【0104】
本実施例では、主に2フレーム間差分、4フレーム間差分を例にあげて、説明することとする。しかしながら、本発明は、2Mフレーム間差分(Mは正の整数)について適用可能であり、Mを2または1に制限するものではない。
【0105】
また、以上においては、正のフレーム間差分についてのみ説明してきたが、負のフレーム間差分(上述の式(2)に対応する)についても同様のことが言える。尚、負のフレーム間差分については、正のフレーム間差分と同様であるので、その説明を省略する。
【0106】
次に、図17のフローチャートを参照して、光ビーコン11による送信データを送信するための発光処理について説明する。
【0107】
ステップS1において、データ送受信部251は、コントロールユニット2より送信されてくる送信データを受信すると共に、マンチェスタ符号化部252に出力する。
【0108】
ステップS2において、マンチェスタ符号化部252は、データ送受信部251より供給された送信データを、図9,図10で説明したように、マンチェスタ符号化して点滅制御部253に供給する。
【0109】
ステップS3において、点滅制御部253は、マンチェスタ符号化部252より供給された、マンチェスタ符号化されている、送信データに基づいて、発光部254の発光を制御し、その処理は、ステップS1に戻り、それ以降の処理が繰り返される。すなわち、このような制御の下で、発光部254は、送信データに対応した発光を繰り返す。また、情報ユニット3は、複数の光ビーコン11−1乃至11−6の点滅パターンを制御して、送信データを送信する。
【0110】
次に、図18のフローチャートを参照して、ID認識カメラ21による光ビーコン11の点滅により送信されてくる送信データ取得処理について説明する。
【0111】
ステップS11において、受光部142の受光素子151は、撮像される対象となる撮像領域の光を光電変換し、増幅器152に出力する。
【0112】
ステップS12において、増幅器152は、受光素子151より入力される光電変換された電気信号を増幅して、フレーム単位で演算部142に出力する。
【0113】
ステップS13において、演算部142の記憶部161は、受光部141より供給された、増幅されている電気信号、すなわち、各画素毎の画素値をフレーム単位で順次記憶する。この際、記憶部161は、2M個の複数のフレーム分の画素値を記憶することができるので、最も古いフレームの画素値を削除して、新しいフレームの画素値を順次記憶する。尚、以下の説明においては、M=2であるものとする。
【0114】
ステップS14において、比較部162は、記憶部161に記憶されている、2Mフレーム分の画素値を読み出して比較処理を実行する。
【0115】
ここで、図19のフローチャートを参照して、比較部162による比較処理を説明する。
【0116】
ステップS21において、比較部162の正フレーム間差分計算部181は、記憶部161に記憶されている、2Mフレームの情報を用いて、各画素毎に、上述した式(1)で示した正フレーム間差分YP(M,n)を計算して、コンパレータ182の端子182aに出力する。
【0117】
ステップS22において、比較部162のコンパレータ182は、端子182aに供給された正フレーム間差分YP(M,n)と、端子182bに供給されるリファレンス値Ref(+)とを比較し、正フレーム間差分YP(M,n)が、リファレンス値Ref(+)よりも大きいとき、比較結果CP(n)=1を、それ以外のとき、比較結果CP(n)=0を出力する。
【0118】
ステップS23において、比較部162の正フレーム間差分計算部183は、記憶部161に記憶されている、2Mフレームの情報を用いて、各画素毎に、上述した式(2)で示した負フレーム間差分YM(M,n)を計算して、コンパレータ184の端子184aに出力する。
【0119】
ステップS24において、比較部162のコンパレータ184は、端子184aに供給された負フレーム間差分YM(M,n)と、端子184bに供給されるリファレンス値Ref(−)とを比較し、負フレーム間差分YM(M,n)が、リファレンス値Ref(−)よりも小さいとき、比較結果CM(n)=1を、それ以外のとき、CM(n)=0を出力する。
【0120】
ステップS25において、出力部163は、コンパレータ182,184より供給された比較結果CM(n),CP(n)をIDデコード処理部144に出力する。
【0121】
ここで、図18のフローチャートの説明に戻る。
【0122】
ステップS14の比較処理が終了すると、その処理は、ステップS11に戻り、それ以降の処理が繰り返される。
【0123】
すなわち、図18のフローチャートを参照して説明した処理により、光ビーコン11が点滅して、発せられる光を受光することにより、送信されてきた、送信データを取得し、IDデコード処理部144に送信データを供給する処理を繰り返す。
【0124】
上述の処理について、さらに詳細に説明すると、図20で示されるように、ステップS11の処理で、受光部141の受光量は、時刻t1乃至t13まで、0であり、時刻t13乃至t14において、時刻t13+α乃至t14の間に受光する受光量を蓄積する。すなわち、時刻t13乃至t14の間に、光ビーコン11が発光し続けていた場合に得られる受光量を1としたとき、時刻t13乃至t14の受光量は、(t14−t(13+α))/(t14−t13)となる。
【0125】
尚、図20においては、最上段が送信データを示しており、今の場合、「スタートコード」、「データ1ビット目」として1、および、「データ2ビット目」として0が示されており、第2段目が、マンチェスタ符号化されたデータを示しており、今の場合、先頭から「000010110」と示されている。実線で示された第3段目は、光ビーコン11による発光状態を示すものであり、Hiの状態が発光している状態を示し、Lowが発光していない状態を示している。一点鎖線で示されている第4段目は、受光素子141により受光される光の受光量を示している第5段目は、正フレーム間差分を示しており、Ref(+)、および、Ref(−)が、それぞれコンパレータ182,184のリファレンス値を示している。尚、負フレーム間差分は、示されていないが、図20の正フレーム間差分を、0点となる直線を中心として反転させた値となる。
【0126】
第6段目、および、第7段目は、それぞれコンパレータ182,184の出力を示しており、今の場合、第6段目は、時刻t1乃至t14、時刻t16乃至t20、時刻t22乃至t28において、0が、時刻t14乃至t16、および、時刻t20乃至t22において、1が出力されたことが示されている。また、第7段目は、時刻t1乃至t17、時刻t19乃至t26において、0が、時刻t17乃至t19、および、時刻t26乃至t28において、1がそれぞれ出力されていることが示されている。また、各フレーム間の時間間隔は、Δtで一定であるものとする。
【0127】
時刻t14乃至t15、および、時刻t15乃至t16においては、実線で示されるように、光ビーコン11が発光し続けているので、1点鎖線で示されるように、受光量は1となる。
【0128】
さらに、時刻t16乃至t17の間においては、実線で示されるように、時刻t16乃至t(16+α)の間のみ発光している状態となるので、受光量は、1点鎖線で示されるように、α/(t17−t16)となる。
【0129】
また、時刻t17乃至t19の間においては、図20の実線で示される光ビーコン11は発光していない状態となっているので、図20の1点鎖線で示されるように、受光される受光量は0となる。
【0130】
さらに、時刻t19乃至t20の間に受光される受光量は、実線で示されるように、実質的に発光していた時刻t(19+α)乃至t20の間に受光された受光量となるので、1点鎖線で示されるように、(t20−t(19+α))/(t20−t19)となる。
【0131】
また、時刻t20乃至t25の間においては、図20の実線で示される光ビーコン11は発光している状態となっているので、図20の1点鎖線で示されるように、受光される受光量は1となる。
【0132】
さらに、時刻t25乃至t26の間においては、実線で示されるように、時刻t25乃至t(25+α)の間のみ発光している状態となるので、受光量は、1点鎖線で示されるように、α/(t26−t25)となる。
【0133】
時刻t26以降においては、実線で示されるように、光ビーコン11が発光していない状態となっているので、受光量は、1点鎖線で示されるように0となる。
【0134】
そして、以上の受光量に応じて、正フレーム間差分計算部181は、上述した式(1)の演算を実行する。より詳細には、時刻t1乃至t13においては、全てのフレームにおいて、受光量f(n)が0であるので、図20の3点鎖線で示されるように、正フレーム間差分は0となる。
【0135】
時刻t13乃至t14に対応するフレームf(t14−t13)における正フレーム間差分YP(2,t14−t13)は、f(t14−t13)+f(t13−t12)−f(t12−t11)−f(t11−t10)となり、図20における、3点鎖線で示される時刻t13乃至t14の正フレーム間差分の値となる。
【0136】
同様に、時刻t14乃至t15に対応するフレームf(t15−t14)における正フレーム間差分YP(2,t15−t14)は、図20における、3点鎖線で示されるようにf(t15−t14)+f(t14−t13)−f(t13−t12)−f(t12−t11)となる。
【0137】
また、時刻t15乃至t16に対応するフレームf(t16−t15)における正フレーム間差分YP(2,t16−t15)は、図20における、3点鎖線で示されるようにf(t16−t15)+f(t15−t14)−f(t14−t13)−f(t13−t12)となる。
【0138】
さらに、時刻t16乃至t17に対応するフレームf(t17−t16)における正フレーム間差分YP(2,t17−t16)は、図20における、3点鎖線で示されるようにf(t17−t16)+f(t16−t15)−f(t15−t14)−f(t14−t13)となる。
【0139】
また、時刻t17乃至t18に対応するフレームf(t18−t17)における正フレーム間差分YP(2,t18−t17)は、図20における、3点鎖線で示されるようにf(t18−t17)+f(t17−t16)−f(t16−t15)−f(t15−t14)となる。
【0140】
以下同様に、時刻t18乃至t19においては、f(t19−t18)+f(t18−t17)−f(t17−t16)−f(t16−t15)、時刻t19乃至t20においては、f(t20−t19)+f(t19−t18)−f(t18−t17)−f(t17−t16)、時刻t20乃至t21においては、f(t21−t20)+f(t20−t19)−f(t19−t18)−f(t18−t17)、時刻t21乃至t22においては、f(t22−t21)+f(t21−t20)−f(t20−t19)−f(t19−t18)、時刻t22乃至t23においては、f(t23−t22)+f(t22−t21)−f(t21−t20)−f(t20−t19)、時刻t24乃至t25においては、f(t25−t24)+f(t24−t23)−f(t23−t22)−f(t22−t21)、時刻t25乃至t26においては、f(t26−t25)+f(t25−t24)−f(t24−t23)−f(t23−t22)、時刻t26乃至t27においては、f(t27−t26)+f(t26−t25)−f(t25−t24)−f(t24−t23)、時刻t27乃至t28においては、f(t28−t27)+f(t27−t26)−f(t26−t25)−f(t25−t24)となる。
【0141】
これに伴い、上述した式(1)が演算されることにより求められる正フレーム間差分と正のリファレンス値Ref(+)との比較結果は、図20の3点鎖線で示されるように、今の場合、時刻t14乃至t16、および、時刻t20乃至t22において、正フレーム間差分が正のリファレンス値Ref(+)よりも大きくなるため、コンパレータ182から出力される比較結果CP(n)は、時刻t14乃至t16、および、時刻t20乃至t22において、1となり、それ以外の時刻においては、0となる。
【0142】
尚、上述した式(2)が演算されることにより求められる負フレーム間差分は、図20における3点鎖線で示される正フレーム間差分と正負が逆転した関係が示されることになるので、図示は省略する。
【0143】
また、負フレーム間差分と負のリファレンス値Ref(−)との比較結果は、正フレーム間差分と、負リファレンス値Ref(−)の正負が逆転された値(−Ref(−))との比較結果と同値となる。従って、今の場合、時刻t17乃至t19、および、時刻t26乃至t28において、負フレーム間差分は、負のリファレンス値Ref(−)よりも大きくなる(図20の3点鎖線で示されるように、正フレーム間差分が、負リファレンス値Ref(−)の正負が逆転された値(−Ref(−))よりも小さくなる)ため、コンパレータ184から出力される比較結果CM(n)は、時刻t17乃至t19、および、時刻t26乃至t28において、1となり、それ以外の時刻においては、0となる。
【0144】
次に、図21のフローチャートを参照して、IDデコード処理部144によるIDデコード処理について説明する。
【0145】
ステップS31において、IDデコード処理部144のIDデコード回路211は、カウンタ(図示せず)をリセットし、初期化する。
【0146】
ステップS32において、IDデコード処理部144のIDデコード回路211は、スタートコード検出処理を実行する。
【0147】
ここで、図22のフローチャートを参照して、IDデコード回路211によるスタートコード検出処理について説明する。
【0148】
ステップS41において、IDデコード処理部144のIDデコード回路211は、演算部142より供給される、比較結果CP(n),CM(n)のいずれもが、12フレーム以上連続して、0であるか否かを判定する。より詳細には、IDデコード処理部144は、比較結果CP(n),CM(n)がいずれも0で、連続して入力される場合、図示せぬカウンタを1ずつインクリメントし、そのカウンタの値が12以上であるか否かを判定する。尚、このカウンタは、比較結果CP(n),CM(n)のいずれかが1で入力された場合、リセットされる。
【0149】
ステップS41において、スタートコードは、例えば、上述したように「00001」であるので、図20で示されるように、光ビーコン11は、実線で示されるように点滅することになる。すなわち、光ビーコン11は、時刻t(1+α)乃至t(13+α)までの間、発光していない状態で、時刻t(13+α)乃至時刻t(t19+α)までの間、発光することにより、このスタートコードを送信データとして送信する。
【0150】
従って、図20で示されるように、時刻t1乃至t12において、12フレーム以上連続して0であると判定されないことになるので、ステップS45に進み、エラー検出部210は、スタートコードを検出していないものと判定し、その処理は、ステップS33(図21のフローチャート)に進む。
【0151】
ここで、図21のフローチャートに戻る。
【0152】
ステップS33において、スタートコードが検出されたか否かが判定され、今の場合、ステップS45において、スタートコードが検出されていないので、スタートコードが検出されていないと判定され、その処理は、ステップS32に戻る。
【0153】
すなわち、12フレーム以上連続して0であると判定されるまで、ステップS32,S33の処理が繰り返される。
【0154】
ここで、図22のフローチャートの説明に戻る。
【0155】
今の場合、例えば、図20で示される時刻t1乃至t13において、ステップS32,S33の処理が、12回繰り返されることになるので、例えば、図20の時刻t12乃至t13に対応するフレームの場合、ステップS41において、12フレーム以上連続して0であると判定されることになり、その処理は、ステップS42に進む。
【0156】
ステップS42において、IDデコード回路211は、コンパレータ182の比較結果CP(n)が1であるか否かを判定する。すなわち、スタートコードの末尾となる1が検出されたか否かが判定される。例えば、図20で示されるように、時刻t12乃至t13に対応するフレームでスタートコードの「0000」が検出された後、時刻t13乃至t14においては、比較結果CP(t14−t13)は、1ではないので、その処理は、ステップS45に進む。従って、この場合、ステップS33,S32の処理が繰り返される。
【0157】
また、例えば、さらにその後のタイミングとなる時刻t13乃至t14の場合、ステップS42において、図20で示すように、比較結果CP(t15−t14)は1であるので、スタートコードの末尾にあたる「1」であると判定され、その処理は、ステップS43に進む。
【0158】
ステップS43において、IDデコード回路211は、コンパレータ182の比較結果CP(n+1)が1であるか否かを判定する。例えば、図20で示されるように、時刻t15乃至t16においては、比較結果CP(t16−t15)が1であると判定され、その処理は、ステップS44に進む。
【0159】
ステップS44において、IDデコード回路211は、スタートコードを検出したことを認識する。
【0160】
すなわち、ステップS42における処理と同様に、ステップS43において、IDデコード回路211がスタートコードの末尾となる1が検出されたか否かを判定することにより、2フレーム連続して1が検出されたか否かを判定する。これは、今の場合、マンチェスタ符号化された信号は、3フレーム間隔で供給されており、この場合、図20で示されているように、マンチェスタ符号化された信号は、正しく受光された場合、2フレーム連続で必ず1を検出することになるので、これを検出することにより、スタートコードの末尾となる1の有無が検出される。
【0161】
ここで、図21フローチャートに戻る。
【0162】
ステップS34において、IDデコード回路211は、エラー検出部210に対して、エラー検出処理を開始させる。尚、エラー検出部210のエラー検出処理については、詳細を後述する。
【0163】
ステップS35において、IDデコード回路211は、エラー検出部210のエラー検出処理によりエラーが検出されたか否かを判定し、エラー検出部210より供給されるエラー検出結果に基づいて、エラーの有無を判定する。
【0164】
例えば、ステップS35において、エラー検出部210よりエラーが検出されていないことを示す通知が入力されてきた場合、IDデコード回路211は、エラーが検出されていないと判定し、その処理は、ステップS36に進む。
【0165】
ステップS36において、IDデコード回路211は、入力されたセンサ出力信号に基づいて、上述したようにIDデータをデコードし、フレームメモリ203に記憶させる。さらに、ID重心計算回路222は、IDレジスタ221を制御して、デコードされたIDデータに対応する座標位置を読出し、ID座標格納メモリ205に、座標位置を積算させながら順次記憶させる。
【0166】
ステップS37において、ID重心計算回路222は、ID座標格納メモリ205に記憶された座標位置をIDデータ毎に読み出して、IDデータに対応する座標位置の重心位置を求めて、すなわち、各座標位置の積算値を加算したIDデータの個数で割ることにより重心位置を求めて、これをそのIDデータの座標情報として求める。
【0167】
ステップS38において、IDデコード回路211は、供給されてくるセンサ出力信号の有無により、データが終了したか否かを判定し、例えば、データが終了していないと判定した場合、その処理は、ステップS35に戻り、それ以降の処理を繰り返す。
【0168】
ステップS38において、入力されてくるセンサ出力信号がなくなって、データが終了したと判定された場合、ステップS39において、エラー検出部210に対してエラー検出処理を停止させるように指令を出し、その処理は、ステップS32に戻り、それ以降の処理が繰り返される。
【0169】
次に、図23のフローチャートを参照して、エラー検出処理について説明する。
【0170】
ステップS51において、エラー検出部210の判定部233は、図示せぬカウンタmを2に設定する。ステップS52において、エラー検出部210の判定部233は、図示せぬカウンタkを2に初期化する。
【0171】
ステップS53において、エラー検出部210のメモリ231は、1フレーム分のセンサ出力信号が入力されたか否かを判定し、1フレーム分のセンサ出力信号が入力されるまで、その処理が繰り返される。
【0172】
ステップS53において、1フレーム分のセンサ出力信号が入力されたと判定された場合、ステップS54において、エラー検出部210の判定部233は、カウンタkを1インクリメントする。
【0173】
ステップS55において、判定部233は、カウンタkが3となったか否かを判定し、3になっていないと判定された場合、その処理は、ステップS53に戻り、それ以降の処理が繰り返される。すなわち、カウンタkが3になるまで、ステップS53乃至S55の処理が繰り返される。
【0174】
ステップS55において、カウンタkが3であると判定された場合、すなわち、1フレーム分のセンサ出力信号が供給されてきたと判定された場合、ステップS56において、メモリ231は、センサ出力信号である、演算部142の比較部162のコンパレータ182,184の比較結果CP(n),CM(n)を記憶する。
【0175】
ステップS57において、比較部232は、記憶した比較結果CP(n),CM(n)が、(CP(n),CM(n))=(0,0),(0,1)、または、(1,0)であるか否かを判定する。より詳細には、比較部232は、(CP(n),CM(n))と、(0,0),(0,1)、および、(1,0)とをそれぞれ比較し、比較結果を判定部233に供給する。判定部233は、この比較結果に基づいて(CP(n),CM(n))=(0,0),(0,1)、または、(1,0)であるか否かを判定する。例えば、ステップS57において、(CP(n),CM(n))=(0,0),(0,1)、または、(1,0)である場合、その処理は、ステップS58に進む。
【0176】
ステップS58において、判定部233は、記憶した比較結果CP(n),CM(n)が、(CP(n),CM(n))≠(CP(n−3),CM(n−3))であるか否かを判定する。より詳細には、比較部232が(CP(n),CM(n))と(CP(n−3),CM(n−3))とを比較し、比較結果を判定部233に出力する。判定部233は、この比較結果に基づいて、(CP(n),CM(n))≠(CP(n−3),CM(n−3))であるか否かを判定する。ステップS58において、例えば、比較結果CP(n),CM(n)が、(CP(n),CM(n))≠(CP(n−3),CM(n−3))であると判定された場合、その処理は、ステップS59に進む。
【0177】
ステップS59において、判定部233は、カウンタmを1インクリメントする。ステップS60において、判定部233は、カウンタmが2となっているか否かを判定し、例えば、カウンタmが2となっていると判定した場合、その処理は、ステップS61に進む。
【0178】
ステップS61において、判定部233は、比較結果CP(n)とCM(n)が、CP(n)=CM(n)=0であるか否かを判定する。より詳細には、比較部232が、CP(n)とCM(n)をそれぞれ0と比較し、比較結果を判定部233に出力する。判定部233は、この比較結果に基づいて、比較結果CP(n)とCM(n)が、CP(n)=CM(n)=0であるか否かを判定する。
【0179】
ステップS61において、比較結果CP(n)とCM(n)が、CP(n)=CM(n)=0ではないと判定された場合、ステップS62において、判定部233は、エラーなしの通知をIDデコード回路211に出力する。
【0180】
ステップS63において、判定部233は、IDデコード回路211より処理の終了が指示されたか否かを判定し、処理の終了が指示されていないと判定された場合、その処理は、ステップS64に進む。
【0181】
ステップS64において、判定部233は、カウンタmを0に初期化し、その処理は、ステップS53に戻る。
【0182】
ステップS57において、(CP(n),CM(n))=(0,0),(0,1)、または、(1,0)ではないと判定された場合、ステップS58において、(CP(n),CM(n))≠(CP(n−3),CM(n−3))ではないと判定された場合、または、ステップS61において、比較結果CP(n)とCM(n)が、CP(n)=CM(n)=0であると判定された場合、その処理は、ステップS66に進み、判定部233は、IDデコード回路211にエラーが検出されたことを通知し、その処理は、ステップS63に進む。
【0183】
ステップS60において、カウンタmが2ではないと判定された場合、ステップS65において、判定部233は、カウンタkを0に初期化し、その処理は、ステップS53に戻り、それ以降の処理が繰り返される。
【0184】
すなわち、ステップS53乃至S55の処理が繰り返されることにより、図24の点線の矢印で示されるように、スタートコードが検出された時刻t14乃至t15のフレームの次のタイミングである時刻t15乃至t16のフレームでステップS57乃至S60の処理が実行され、この処理が3フレーム毎に繰り返される。
【0185】
これは、図24で示されるように、光ビーコン11は、3フレーム連続して、同じマンチェスタ符号化された信号を点滅により送信するので、3フレーム毎に比較結果CP(n),CM(n)を読み出して、所定の値となっているか否かを判定する。
【0186】
より具体的には、まず、ステップS57において、(CP(n),CM(n))が(0,0),(0,1)、または、(1,0)であるか否かが判定される。これは、比較結果CP(n),CM(n)は、相互に正負が反転した値となるものなので、エラーが発生していなければ、(0,0),(0,1)、または、(1,0)のいずれかを取ることになるはずであるからである。
【0187】
次に、ステップS58において、(CP(n),CM(n))≠(CP(n−3),CM(n−3))であるか否かが判定される。これは、マンチェスタ符号化により、送信されてくる信号は、7フレーム以上同じ符号となることがないため、例えば、図24で示される時刻t21乃至t22と、時刻t24乃至t25のフレームに対応する比較結果(CP(n),CM(n))のように、最大でも6フレームの間に、最大値と最小値を必ず取ることになる。結果として、エラーが発生していなければ、送信するデータは、最大でも6フレームの間に、立ち上がりエッジと立ち下がりエッジがどこかに必ず含まれることになるので、3フレーム間隔で同じ信号が検出されないことになる。
【0188】
そして、ステップS60において、カウンタmが2であるかが判定されて、mが2であるとき、ステップS61において、比較結果(CP(n),CM(n))がいずれも1であるか否かが判定される。
【0189】
カウンタmが2となるときにのみ、すなわち、ステップS53乃至S60の処理が2回繰り返される毎に、ステップS61の処理が実行されるため、ステップS61の処理は、実質的には、6フレームに1回実行され、さらに、初期設定の値により、スタートコードが検出されたタイミングから6フレーム毎の信号、すなわち、データビットを構成する01、または、10の信号を構成する、後半の信号に対してなされる。
【0190】
より詳細には、例えば、図24においては、時刻t21乃至t22のフレーム、および、時刻t27乃至t28のフレームに対応する、データビットの後半の信号の比較結果(CP(n),CM(n))が1であるか否かが判定されることにより、エラーの有無が判定される。これは、データビットの後半の信号に対応する比較結果CP(n),CM(n)は、相互に正負が反転した値となるので、エラーが発生していなければ、いずれも1を取ることになるはずであるからである。
【0191】
以上の処理により、エラーが検出されるので、マンチェスタ符号化された送信データのエラーを正確に判定することができ、結果として、エラーのない正しい送信データを選択的に取得することが可能となる。
【0192】
以上の例においては、光ビーコン11が撮像されるとき、撮像された画素に変更がない場合、すなわち、画像内のそれぞれの画素に撮像されている対象となるものの位置が固定された状態であることが前提となる場合について説明してきた。つまり、光ビーコン11は、点滅により送信データを送信しているので、ID認識カメラ21が撮像する範囲が変化してしまうような場合、撮像されている画像内で光ビーコン11の位置が変化することになってしまい、正確にエラーの検出、または、データの取得ができない恐れがある。
【0193】
そこで、以下の例においては、光ビーコン11が撮像されている画素と、その周辺の複数の画素から光ビーコン11の点滅パターンを検出することにより、光ビーコン11の点滅パターンを検出することで、正確な送信データの取得を可能にするようにしてもよい。
【0194】
図25は、注目画素の周辺の複数の画素から光ビーコン11の点滅パターンを検出することにより、光ビーコン11の点滅パターンを検出できるようにしたIDデコード処理部144の構成を示すブロック図である。基本的な構成は、図6のIDデコード処理部144と同様であるが、エラー検出部210に代えてエラー検出部271が、ID重心計算回路222に代えてID重心計算回路282がそれぞれ設けられ、さらに、重み計算部251を新たに設けた点が異なる。
【0195】
エラー検出部271は、基本的に図6のエラー検出部210と同様の処理を実行するが、注目している画素(以下、注目画素と称する)のみならず、その周辺の画素(例えば、水平方向、垂直方向、および、対角方向に隣接する画素)についても同時にエラー検出処理を実行する。尚、詳細については、図26を参照して後述する。
【0196】
また、図25のIDデコード処理回路211は、図6のIDデコード処理回路211と基本的に同様の処理を実行するが、注目画素と、その周辺の画素に基づいて、デコード処理を実行する点で異なる。
【0197】
重み計算部281は、注目画素と、その周辺の画素で受光される光ビーコン11から発せられる光の受光時間に基づいて、注目画素と、その周辺の画素のそれぞれについて重みを計算し、ID重心計算回路282に供給する。
【0198】
ID重心計算回路282は、基本的な機能は、図6のID重心計算回路222と同様の処理を実行するが、さらに、重心計算において、重み計算部281より供給された重みにより、重心位置を計算する。
【0199】
次に、図26を参照して、エラー検出部271の詳細な構成について説明する。基本的には、図7のエラー検出部210と同様の構成であるが、メモリ231、比較部232、および、判定部233に代えて、メモリ291、比較部292、および、判定部293が設けられている。メモリ291、比較部292、および、判定部293は、それぞれメモリ231、比較部232、および、判定部233と同様の機能を有するものであるが、さらに、注目画素のみならず、その周辺の画素を含めた複数の画素の処理も同時に実行する。
【0200】
次に、図27のフローチャートを参照して、IDデコード処理について説明する。尚、ステップS71乃至S75,S78の処理は、図21のフローチャートを参照して説明したステップS31乃至S35,S38の処理と同様であるので、その説明は、省略する。
【0201】
ここで、図28のフローチャートを参照して、ステップS74の処理により開始されるエラー検出処理について説明する。尚、ステップS81乃至S85、および、ステップS89乃至S96の処理は、図23のフローチャートにおけるステップS51乃至S55、および、ステップS59乃至S66の処理と同様であるので、その説明は省略する。
【0202】
ステップS86において、メモリ291は、センサ出力信号である、演算部142の比較部162のコンパレータ182,184の比較結果CP(n),CM(n)、および、その周辺画素に対応する比較結果CPw(n),CMw(n)を記憶する。ここで、比較結果CP(n),CM(n)は、注目画素の比較結果を示し、比較結果CPw(n),CMw(n)は、注目画素周辺の複数の画素の比較結果を示す。
【0203】
すなわち、図29の(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)の合計8画素のそれぞれに対応する、正のフレーム間差分、および、負のフレーム間差分に基づいた比較結果CPw(n),CMw(n)がそれぞれ記憶される。従って、今の場合、実質的に記憶される比較結果は、注目画素と周辺画素のそれぞれについての正負のフレーム間差分に対応する比較結果となるので、1個の注目画素について、合計16個の比較結果が記憶されることになる。尚、この注目画素に対応する周辺画素の配置は、図29で示されるものに限るものではなく、例えば、注目画素を中心とした、5画素×5画素の範囲に存在する、注目画素を除いた24画素を周辺画素としてもよく、一般的には、例えば、(2n+1)画素×(2n+1)画素の範囲に存在する画素としてもよい。
【0204】
ステップS87において、比較部292は、記憶した注目画素の比較結果CP(n),CM(n)、および、注目画素の周辺画素の比較結果CPw(n),CMw(n)が、全て(0,0),(0,1)、または、(1,0)であるか否かを判定する。すなわち、比較部292は、図23のフローチャートにおけるステップS57の処理を、注目画素に対応する比較結果と、その全ての周辺画素に対応する比較結果で実行する。
【0205】
例えば、ステップS87において、注目画素の比較結果CP(n),CM(n)、および、注目画素の周辺画素の比較結果CPw(n),CMw(n)が、全て(0,0),(0,1)、または、(1,0)である場合、その処理は、ステップS88に進む。また、ステップS87において、注目画素の比較結果CP(n),CM(n)、および、注目画素の周辺画素の比較結果CPw(n),CMw(n)が、全て(0,0),(0,1)、または、(1,0)ではない場合、その処理は、ステップS96に進む。
【0206】
ステップS88において、判定部293は、記憶した注目画素の比較結果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))であるか否かを判定する。より詳細には、比較部292が(CP(n),CM(n))と(CP(n−3),CM(n−3))とを比較し、さらに、全ての周辺画素の(CPw(n),CMw(n))と(CPw(n−3),CMw(n−3))とを比較し、比較結果を判定部293に出力する。判定部293は、この比較結果に基づいて、(CP(n),CM(n))≠(CP(n−3),CM(n−3))であって、かつ、(CPw(n),CMw(n))≠(CPw(n−3),CMw(n−3))であるか否かを判定する。
【0207】
ステップS88において、注目画素の比較結果が(CP(n),CM(n))≠(CP(n−3),CM(n−3))であって、かつ、全ての周辺画素の比較結果が(CPw(n),CMw(n))≠(CPw(n−3),CMw(n−3))であると判定された場合、その処理は、ステップS89に進む。一方、ステップS88において、注目画素の比較結果が(CP(n),CM(n))≠(CP(n−3),CM(n−3))ではないか、または、全ての周辺画素の比較結果が(CPw(n),CMw(n))≠(CPw(n−3),CMw(n−3))ではないと判定された場合、その処理は、ステップS96に進む。
【0208】
ステップS91において、判定部293は、注目画素の比較結果CP(n)とCM(n)と、全ての周辺画素の比較結果CPw(n)とCMw(n)が、CP(n)=CM(n)=CPw(n)=CMw(n)=0であるか否かを判定する。より詳細には、比較部292が、CP(n),CM(n),CPw(n),CMw(n)をそれぞれ0と比較し、比較結果を判定部293に出力する。判定部293は、この比較結果に基づいて、比較結果CP(n),CM(n),CPw(n),CMw(n)が、CP(n)=CM(n)=CPw(n)=CMw(n)=0であるか否かを判定する。
【0209】
ステップS91において、注目画素の比較結果CP(n)とCM(n)、および、全ての周辺画素CPw(n)とCMw(n)が、CP(n)=CM(n)=CPw(n)=CMw(n)=0ではないと判定された場合、ステップS92において、判定部293は、エラーなしの通知をIDデコード回路211に出力する。
【0210】
ステップS91において、注目画素の比較結果CP(n)とCM(n)、および、全ての周辺画素CPw(n)とCMw(n)が、CP(n)=CM(n)=CPw(n)=CMw(n)=0ではないと判定された場合、その処理は、ステップS96に進む。
【0211】
以上の処理により、注目画素と、その周辺画素について、同時にエラー検出処理がなされる。
【0212】
ここで、図27のフローチャートの説明に戻る。
【0213】
ステップS76において、図25を参照して説明したIDデコード処理部144のIDデコード回路211は、注目画素と、その周辺画素の比較結果に基づいてIDデータをデコード処理する。
【0214】
すなわち、図25のIDデコード処理部144においては、基本的に、図6のIDデコード処理部144における注目画素のセンサ出力信号を処理したときと同様の処理を行うが、複数の画素に対応するセンサ出力信号を用いることにより、以下のような処理を実行する。
【0215】
すなわち、今、注目画素のコンパレータ182の出力をCP(x,y)とすると、その周辺の画素を含めたコンパレータ182の出力は、例えば、周辺画素を注目画素を中心とした(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)となる。
【0216】
注目画素で測定している光ビーコン11の位置が、全ての信号を送信する時間よりも短い時間間隔で移動すると、この注目画素とその周辺の画素のいずれかのコンパレータ182の出力が、他の画素に移動する事になる。
【0217】
そこで、以下の式(3)で示されるような関数を定義することにより、IDデコード回路211は、注目画素のコンパレータ182の出力を認識する。
【0218】
【数3】
Figure 2004349766
Figure 2004349766
【0219】
ここで「|」はOR演算である。これは、例えば、nが1であった場合、図29で示した注目画素(x,y)を中心としたウィンドウWに含まれた画素のいずれかのコンパレータ182の比較結果において、1が検出されたとき、注目画素において1が検出されたことを示している。従って、このような処理により、データ受信途中で信号となる点滅パターンが、注目画素をはずれて隣の画素に移動しても、続けてデータを受信してデコードすることが可能となる。尚、コンパレータ184の比較結果についても同様に処理する。
【0220】
そして、デコード回路211は、デコード結果をフレームメモリ203に順次供給する。すなわち、上述したように、デコード回路211は、マンチェスタ符号化された信号の、2ビットの信号のうち、後半部分となるビットの信号を読み出して、通常の信号に符号化し、これらを画像上の画素位置に対応するフレームメモリ203に順次記憶させる。
【0221】
さらに、ID重心計算回路282は、IDレジスタ221を介して、フレームメモリ203に記憶されているIDデータの位置情報をID座標格納メモリ205に供給し、記憶させる。
【0222】
なお、ここでは、「注目画素の周辺画素の情報」として(2n+1)×(2n+1)の正方形ウィンドウで説明したが、正方形ウィンドウに限定するものではない。例えば長方形や4隣接画素など、他の形状であっても良い。
【0223】
また、コンパレータ184からの比較結果についても、同様の処理がなされる。
【0224】
ここで、図27のフローチャートの説明に戻る。
【0225】
ステップS77において、重心計算処理が実行される。
【0226】
ここで、図30のフローチャートを参照して、重心計算処理について説明する。
【0227】
ステップS101において、重み計算部251は、各画素の重みを計算する。より詳細には、重み計算部251は、以下の式(4)の演算を各画素について実行して、各画素の重みを計算し、ID重心計算回路282に出力する。
【0228】
【数4】
Figure 2004349766
Figure 2004349766
【0229】
ここで、α(i)は、i番目の注目画素の重みを示し、tsumは、注目画素と、その周辺画素が光を受光した時間、すなわち、コンパレータ182からの比較結果が1となっていた時間、または、コンパレータ184からの比較結果が1となっていた時間の総合計を示し、さらに、t(i)は、注目画素が光を受光した時間である。すなわち、重み計算部251は、図29で示される注目画素(x,y)に対応する周辺画素がウィンドウWで示されている場合、ウィンドウWで示される9画素分の領域で受光する光ビーコン11の総受光時間に対する注目画素の受光する時間の割合を重みとして計算し、ID重心計算回路282に出力する。
【0230】
ステップS102において、ID重心計算回路282は、ID座標格納メモリ205に記憶されているIDデータ毎の座標情報を読み足し、さらに、重み計算部251より供給された重みをそれぞれ乗じる。
【0231】
ステップS103において、ID重心計算回路282は、座標の総和を求めて画素数で割ることにより重心位置を求める。
【0232】
より詳細には、ID重心計算回路282は、ステップS102,S103において、以下の式(5)の計算を実行し、重みを考慮した重心計算を実行する。
【0233】
【数5】
Figure 2004349766
Figure 2004349766
【0234】
ここで、Gpは、注目画素の重心位置を示し、Nは、注目画素とその周辺画素の総合計画素数を示し、iは、注目画素と周辺画素を識別する番号を示し、px(i)とpy(i)は、i番目の注目画素、または、周辺画素のx座標とy座標を示す。
【0235】
すなわち、ID重心計算回路282は、ステップS102において、式(5)におけるα(i)px(i)とα(i)py(i)について、1≦i≦Nの範囲で演算を実行し、ステップS103において、式(5)におけるサメーションの演算を実行することにより重心位置を計算する。
【0236】
このように重心が計算されることにより、各画素の画素位置のみから重心が求められるのではなく、光ビーコン11から受光された時間に対応した重みに基づいて重心が求められることにより、受光された位置がより正確に求められることになる。
【0237】
尚、重みは、上述の式(4)により光ビーコン11の点滅パターンを受光した時間に対応して重みが付加されていたが、時間は連続変量であるため、実際の演算においては、離散変量に変換する必要がある。従って、上述の重みの演算は、以下の式(6)を用いるようにしてもよい。
【0238】
【数6】
Figure 2004349766
Figure 2004349766
【0239】
ここで、c(i)は、注目画素、または、その周辺画素が受信したデータビット数であり、csum(i)は、注目画素、および、その周辺画素が受信したデータビット数の総数である。このように、受信したデータビット数は、光ビーコン11の受光時間に比例することになるので、実質的に、式(4)で求められる重みを連続変量から離散変量へ変換した近似値が得られることになる。
【0240】
以上によれば、重みを考慮した正確な重心位置が求められるので、結果として、光ビーコンとID認識カメラを利用したデータの通信における、通信精度を向上させることが可能となる。
【0241】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行させることが可能な、例えば汎用のパーソナルコンピュータなどに記録媒体からインストールされる。
【0242】
この記録媒体は、図2,図3に示すようにPCサーバ1、および、携帯端末4に予め組み込まれた状態でユーザに提供される、プログラムが記録されている記憶部38,78だけではなく、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク51,91(フレキシブルディスクを含む)、光ディスク52,92(CD−ROM(Compact Disk−Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク53,93(MD(Mini−Disc)(登録商標)を含む)、もしくは半導体メモリ54,94(Memory Stickを含む)などよりなるパッケージメディアにより構成される。
【0243】
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
【0244】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【0245】
【発明の効果】
本発明によれば、光ビーコンとID認識カメラを利用したデータの通信における通信精度を向上させることが可能となる。
【図面の簡単な説明】
【図1】本発明を適用した情報通信システムの一実施の形態の構成を示す図である。
【図2】図1のPCサーバの構成を示すブロック図である。
【図3】図1の携帯端末の構成を示すブロック図である。
【図4】図3のID認識カメラのブロック図である。
【図5】図4の比較部の構成を示すブロック図である。
【図6】図4のIDデコード処理部のブロック図である。
【図7】図6のエラー検出部のブロック図である。
【図8】図1の光ビーコンのブロック図である。
【図9】マンチェスタ符号化を説明する図である。
【図10】マンチェスタ符号化を説明する図である。
【図11】図1の光ビーコンのその他のブロック図である。
【図12】ID認識カメラが点滅パターンをデコードする動作を説明する図である。
【図13】光ビーコンの点滅パターンとデコードされるデータの関係を説明する図である。
【図14】光ビーコンの点滅パターンとデコードされるデータの関係を説明する図である。
【図15】光ビーコンの点滅パターンとデコードされるデータの関係を説明する図である。
【図16】光ビーコンの点滅パターンとデコードされるデータの関係を説明する図である。
【図17】発光処理を説明するフローチャートである。
【図18】送信データ取得処理を説明するフローチャートである。
【図19】比較処理を説明するフローチャートである。
【図20】比較処理を説明する図である。
【図21】IDデコード処理を説明するフローチャートである。
【図22】スタートコード検出処理を説明するフローチャートである。
【図23】エラー検出処理を説明するフローチャートである。
【図24】エラー検出処理を説明する図である。
【図25】IDデコード処理部のその他の構成を示すブロック図である。
【図26】エラー検出部のその他の構成を示すブロック図である。
【図27】IDデコード処理を説明するフローチャートである。
【図28】エラー検出処理を説明するフローチャートである。
【図29】注目画素と周辺画素を説明するフローチャートである。
【図30】重心計算処理を説明するフローチャートである。
【符号の説明】
1 PCサーバ, 4 携帯端末, 3,3−1乃至3−n 情報ユニット, 11,11−1乃至11−6 光ビーコン111 ID認識カメラ, 181 正フレーム間差分計算部, 182 コンパレータ, 183 負フレーム間差分計算部, 184 コンパレータ, 210 エラー検出部, 211 IDデコード回路, 241 エラー検出部, 251 重み計算部281 ID重心計算回路[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an information processing apparatus and method, a recording medium, and a program, and in particular, to an information processing apparatus and method, a recording medium, and a communication method capable of improving communication accuracy in data communication using an optical beacon and an ID recognition camera. And the program.
[0002]
[Prior art]
There is a transmitting device that transmits a signal by emitting light in a predetermined blinking pattern, and a transmitting and receiving system that captures a blinking pattern of light emitted by the transmitting device and realizes data communication based on the captured blinking pattern. I do.
[0003]
For example, as an imaging device, there is a system in which an ID (Identifier) recognition camera captures an image and can transmit and receive ID data based on a signal emitted by an optical beacon functioning as a transmission device as described above (for example, Patent Document 1).
[0004]
[Patent Document 1]
Japanese Patent Application 2001-325356
[0005]
[Problems to be solved by the invention]
However, in the above-described system, when interference due to disturbance light occurs, the ID recognition camera cannot correctly read the blinking pattern of light and cannot correctly receive data. As a result, There is a problem that an error occurs.
[0006]
Further, in the above-described system, the transmission data is represented by a blinking pattern, that is, a light pattern in a time direction. Therefore, when data is received and decoded for each pixel, the transmission is performed during data reception. If a change occurs in the relative positional relationship between the device and the receiving device, pixels receiving light move to pixels located at adjacent positions during data reception. However, there has been a problem that the pattern to be changed changes and data cannot be received correctly.
[0007]
The effect of such a phenomenon is small if the data length of the transmission data is short, but the effect increases as the data length increases, so that there is a problem that an error is more likely to occur with larger data.
[0008]
Furthermore, when the light receiving area of the signal represented by the blinking pattern is large, the effect is small, but the area of the portion that emits light with the optical beacon is small, or the distance between the optical beacon and the ID recognition camera is large. If this happens, the light receiving area becomes relatively small, and as a result, the effect becomes large, and there is a problem that the data is likely to be interrupted during data reception.
[0009]
To cope with these problems, the position of the received data is calculated by using a method of calculating the center of gravity from the coordinates of a plurality of pixels that have received the same data or obtaining a circumscribed rectangle. Although it has been made possible to respond to changes in position, in these methods, when there is a pixel that received data halfway, the information of the pixel that received the signal halfway becomes unusable. It is difficult to improve the accuracy of the calculated position.
[0010]
The present invention has been made in view of such a situation, employs Manchester encoding as encoding with high data transmission efficiency, detects errors caused by disturbances such as ambient light, and detects received data. When decoding is performed for each pixel, information on neighboring pixels is also used to stabilize the communication state even if a relative positional change occurs between the transmitting device and the receiving device during data reception. By using the information of the pixel for which even part of the data has been received, more accurate data communication is enabled.
[0011]
[Means for Solving the Problems]
An information processing apparatus according to the present invention includes: a light receiving unit that receives a signal of light emitted by a transmitting device that emits light in a predetermined blinking pattern based on Manchester-encoded data; and a signal of light received by the light receiving unit. At a frequency N times the predetermined blinking pattern and in frame units, storage means for storing the signal obtained by the acquisition means, and light receiving amount between frames stored in the storage means. First calculating means for calculating information on the amount of received light in a plurality of frames for every N frames of the information, first comparing means for comparing the first calculation result with a predetermined threshold value, and first comparing means And decoding means for decoding Manchester-encoded data based on the first comparison result.
[0012]
The first arithmetic means includes, for each of the N frames stored in the storage means, the amount of received light from the first frame to the Mth frame among the frames up to 2M frames before the frame. And the first difference, which is the difference between the sum of the received light amounts from the (M + 1) th frame to the second Mth frame, can be calculated. May be compared with a first threshold value, which is a predetermined threshold value, as a first calculation result.
[0013]
Based on the first comparison result of the first comparison unit for each of the current frame, the frame before the Nth frame, and the frame before the 2Nth frame among the information on the amount of received light of the frame stored in the storage unit. Thus, an error detecting means for detecting a data error can be further provided.
[0014]
The first calculating means may include, among the information on the amount of received light of the frames stored in the storage means, up to 2M frames before the current frame, N frames before the frame, and 2N frames before the frame. Among them, a first difference between the sum of the light reception amounts of the first to Mth frames and the sum of the light reception amounts of the (M + 1) th frame to the second Mth frame can be calculated. The first comparing means is configured to compare the first difference between the current frame, the frame before the Nth frame, and the frame before the 2Nth frame with the first threshold which is a predetermined threshold. The error detecting means can output the error based on the first comparison result corresponding to the current frame, the frame before the Nth frame, and the frame before the 2Nth frame by the first comparing means. It may be so as to detect over.
[0015]
Any of the first difference between the current frame, the N-frame previous frame, and the 2N-frame previous frame is greater than a first threshold, and the current frame and the N-frame previous frame are: Are larger than the first threshold value, or when any of the first differences between the current frame, the frame before the N frame, and the frame before the 2N frame is the first difference. If the first difference between the frame larger than the threshold value and the frame before the Nth frame and the frame before the 2Nth frame is larger than the first threshold value, the error detection means performs the first comparison. An error can be detected based on the result.
[0016]
For each of the N frames stored in the storage means, the sum of the light reception amounts from the (M + 1) th frame to the 2Mth frame among the frames up to 2M frames before the frame, and A second calculating means for calculating a second difference which is a difference from the sum of the received light amounts from the frame to the M-th frame; and a second comparing means for comparing the second calculation result with a second threshold value. And any of the first difference between the current frame, the frame before the N frame, and the frame before the 2N frame is greater than the first threshold, and the current frame, And if any of the first differences between the Nth frame and the Nth previous frame is greater than the first threshold, the current frame, the Nth previous frame, and the 2Nth previous frame When any one of the differences 1 is larger than the first threshold, and each of the first differences between the frame before the Nth frame and the frame before the 2Nth frame is larger than the first threshold , The current frame, the frame before the N frame, and the second difference between the frame before the 2N frame are larger than the second threshold value and the current frame and the frame before the N frame, Are larger than the second threshold, any of the second differences between the current frame, the frame before the Nth frame, and the frame before the 2Nth frame is larger than the second threshold. Is larger, and both of the second difference between the frame before the Nth frame and the frame before the 2Nth frame are larger than the second threshold, or when the first difference is the first threshold than When the second difference is larger than the second threshold value, the error detecting means may detect an error based on the first comparison result and the second comparison result. Can be.
[0017]
The information processing method according to the present invention, based on Manchester-encoded data, converts a light signal received by a light receiving device that receives a light signal emitted by a transmitting device that emits light in a predetermined blinking pattern into a predetermined signal. Information on the amount of received light of a plurality of frames for every N frames among the information on the amount of received light between frames acquired in the processing of the acquiring step, which is acquired at a frequency N times the blinking pattern and on a frame basis; , A first comparison step of comparing the first calculation result with a predetermined threshold value, and Manchester encoding based on the first comparison result in the processing of the first comparison step. Decoding the decoded data.
[0018]
The program of the recording medium of the present invention, based on Manchester encoded data, converts a light signal received by a light receiving device that receives a light signal emitted by a transmitting device that emits light in a predetermined blinking pattern into a predetermined signal. Of the light receiving amount of a plurality of frames for every N frames among the information of the light receiving amount between the frames obtained in the processing of the obtaining step, which is obtained at the N times frequency of the blinking pattern of and the frame unit, and the processing of the obtaining step. A first calculation step of calculating information, a first comparison step of comparing the first calculation result with a predetermined threshold value, and a Manchester code based on the first comparison result in the processing of the first comparison step Decoding the decoded data.
[0019]
The program according to the present invention, based on Manchester-encoded data, converts a light signal received by a light receiving device that receives a light signal emitted by a transmitting device that emits light in a predetermined blinking pattern into a predetermined blinking pattern. Calculating the information on the amount of received light of a plurality of frames for every N frames among the information on the amount of received light between frames acquired in the processing of the acquiring step, which is acquired at a frequency of N times and in units of frames. A first operation step, a first comparison step of comparing the first operation result with a predetermined threshold value, and Manchester-encoded based on the first comparison result in the processing of the first comparison step. And a decoding step of decoding data.
[0020]
In the information processing apparatus and method, and the program according to the present invention, based on Manchester-encoded data, a signal of light emitted by a transmitting device that emits light in a predetermined blinking pattern is received, and a signal of the received light is received. Is acquired at a frequency of N times the predetermined blinking pattern and in frame units, and the acquired signal is stored. Of the information on the amount of received light between the stored frames, a plurality of N The information on the amount of received light is calculated, the calculation result is compared with a predetermined threshold, and the Manchester encoded data is decoded based on the comparison result.
[0021]
The information processing device of the present invention may be an independent device or a block that performs information processing.
[0022]
BEST MODE FOR CARRYING OUT THE INVENTION
Embodiments of the present invention will be described below. The correspondence between constituent elements described in the claims and specific examples in the embodiments of the present invention is as follows. This description is for confirming that a specific example supporting the invention described in the claims is described in the embodiment of the invention. Therefore, even if there is a specific example which is described in the embodiment of the invention but is not described here as corresponding to the configuration requirement, the fact that the specific example is It does not mean that it does not correspond to the requirement. Conversely, even if a specific example is described here as corresponding to a configuration requirement, this means that the specific example does not correspond to a configuration requirement other than the configuration requirement. not.
[0023]
Furthermore, this description does not mean that the invention corresponding to the specific examples described in the embodiments of the invention is all described in the claims. In other words, this description is an invention corresponding to the specific example described in the embodiment of the invention, and the existence of the invention not described in the claims of this application, that is, It does not deny the existence of the invention added by the amendment.
[0024]
That is, the information processing apparatus of the present invention is a light receiving unit that receives a signal of light emitted by a transmitting device that emits light in a predetermined blinking pattern based on Manchester-encoded data, for example, the light receiving unit 141 in FIG. An acquisition unit (for example, the storage unit 161 in FIG. 4) for acquiring a signal of the light received by the light receiving unit at a frequency N times the predetermined blinking pattern and in frame units; Storage means (for example, the storage unit 161 in FIG. 4) for storing the received signal, and among the information on the amount of received light between frames stored in the storage means, information on the amount of received light of a plurality of frames for every N frames is calculated. A first calculating unit, a first comparing unit that compares the first calculation result with a predetermined threshold (for example, the comparing unit 162 in FIG. 4), and a first comparison result by the first comparing unit. , Manchez Decoding means for decoding the encoded data (e.g., ID decoding circuit 211 of FIG. 6); and a.
[0025]
The information processing method according to the present invention, based on Manchester-encoded data, converts a light signal received by a light receiving device that receives a light signal emitted by a transmitting device that emits light in a predetermined blinking pattern into a predetermined signal. An acquisition step (for example, the processing of step S13 in the flowchart of FIG. 18) of acquiring at a frequency N times the blinking pattern and in frame units, and information on the amount of received light between frames acquired in the processing of the acquisition step , A first calculation step (for example, the processing of steps S21 and S23 in the flowchart of FIG. 19) for calculating the information on the amount of received light of a plurality of frames for every N frames, and comparing the first calculation result with a predetermined threshold value The first comparison step (for example, the processing of steps S22 and S24 in the flowchart of FIG. 19) and the first comparison result in the processing of the first comparison step Based on the decoding step of decoding the Manchester encoded data (e.g., processing in step S76 in the flowchart of FIG. 21), characterized in that it comprises a.
[0026]
FIG. 1 is a block diagram showing a configuration of an embodiment of an information communication system according to the present invention.
[0027]
1 includes a PC (Personal Computer) server 1, a control unit 2, information units 3-1 to 3-n, and a mobile terminal 4.
[0028]
The PC server 1 issues a command to the control unit 2 to output data at a location corresponding to each of the information units 3-1 to 3-n.
[0029]
The control unit 2 performs a function like a so-called switching control device, and specifies one of the information units 3-1 to 3-n by a control signal based on a command from the PC server 1, and Output and transmit predetermined data. Each of the information units 3-1 to 3-n includes a plurality of optical beacons 11-1 to 11-6 arranged two-dimensionally or one-dimensionally on a plate-like plane. Installed at a point. In addition, the information units 3-1 to 3-n change the blinking pattern of each of the optical beacons 11-1 to 11-6 based on a control signal from the control unit 2 and emit light, thereby carrying light. The data is transmitted to the terminal 4. More specifically, each of the optical beacons 11-1 to 11-6 transmits ID (Identifier) data for identifying itself according to each blinking pattern, and the ID data includes various data. The voice file for guidance is transmitted by using this function.
[0030]
The optical beacons 11-1 to 11-6 transmit data by emitting light in a predetermined light emission pattern. This data is called ID data and identifies each of the optical beacons 11-1 to 11-6. However, since there is a sufficient amount of data that can be transferred, it is necessary to transmit the data including other data. Is also possible. For example, the data included in the ID data includes content data (image data, audio data, text data, and the like), link destination data (URL (Uniform Resource Locator), address, host name, and other data), and There is, for example, group identification data for identifying a group to which the user belongs, but the present invention is not limited to this. Any data that can be managed as electronic data can be transmitted. As described above, the optical beacons 11-1 to 11-6 can transmit not only the ID data but also various data by changing the light emission pattern.
[0031]
Here, group identification data for identifying a group to which the user belongs will be described. For example, in FIG. 1, a group of a plurality of optical beacons 11 constituting each of the information units 3-1 to 3-n is called a group, and data for identifying these groups is group identification data. Therefore, in this case, since the optical beacons 11-1 to 11-6 belong to the same group of the same information unit 3-1, they emit the same group identification data.
[0032]
Note that the information units 3-1 to 3-n and the optical beacons 11-1 to 11-6 are simply referred to as the information unit 3 and the optical beacon 11, unless it is necessary to distinguish them. In this case, FIG. 1 shows an example in which one information unit 3 has six optical beacons 11 with respect to one information unit 3. However, any number may be used as long as a blinking pattern necessary for data transmission can be created. The number may be any number as long as it is at least one.
[0033]
The portable terminal 4 is carried by the user who wants to receive the transmitted data, and the ID unit 21 captures an image of the data transmitted from the information unit 3 by light according to the blinking pattern of the optical beacon 11. Thus, a predetermined process is executed.
[0034]
The details of the ID recognition camera 21 and the optical beacon 11 will be described later.
[0035]
FIG. 2 is a block diagram showing a configuration of the PC server 1. A CPU (Central Processing Unit) 31 executes various processes according to a program stored in a ROM (Read Only Memory) 32 or a storage unit 38. In a RAM (Random Access Memory) 33, programs executed by the CPU 31, data, and the like are stored as appropriate. These CPU 31, ROM 32, and RAM 33 are mutually connected by a bus.
[0036]
An input / output interface 35 is connected to the CPU 31 via a bus 34. The input / output interface 35 is connected to an input unit 36 including a keyboard, a mouse, a microphone, and the like, and an output unit 37 including a display, a speaker, and the like. The CPU 31 executes various processes in response to a command input from the input unit 36. Then, the CPU 31 outputs an image, a sound, or the like obtained as a result of the processing to the output unit 37.
[0037]
The storage unit 38 connected to the input / output interface 35 is composed of, for example, a hard disk, and stores programs executed by the CPU 31 and various data. The communication unit 39 exchanges various data such as audio files with a device having a communication function via a network (not shown).
[0038]
The drive 40 connected to the input / output interface 35 drives the magnetic disk 51, the optical disk 52, the magneto-optical disk 53, or the semiconductor memory 54 when they are mounted, and drives the programs and data recorded thereon. Get etc. The acquired programs and data are transferred to and stored in the storage unit 38 as necessary.
[0039]
Next, the configuration of the mobile terminal 4 will be described with reference to FIG.
[0040]
The configuration of the mobile terminal 4 is basically the same as that of the PC server 1 in FIG. 2, and includes the CPU 71, the ROM 72, the RAM 73, the bus 74, the input / output interface 75, the input unit 76, the output unit 77, and the storage unit of the mobile terminal 4. 78, a drive 79, a magnetic disk 91, an optical disk 92, a magneto-optical disk 93, and a semiconductor memory 94 include a CPU 31, a ROM 32, a RAM 33, a bus 34, an input / output interface 35, an input unit 36, an output unit 37 of the PC server 1. It corresponds to the storage unit 38, the drive 40, the magnetic disk 51, the optical disk 52, the magneto-optical disk 53, and the semiconductor memory 54. However, since the portable terminal 4 has a configuration that emphasizes portability in all cases, the processing speed, the storage capacity of the storage unit 78, and the like are smaller than those of the PC server 1.
[0041]
An ID (Identifier) recognizing camera 21 is connected to the input unit 76, and the captured image and the ID data obtained by the blinking pattern when the optical beacon 11 is captured are input. You.
[0042]
Here, a detailed configuration of the ID recognition camera 21 will be described with reference to FIG. The light receiving unit 141 photoelectrically converts light in an imaging region to be imaged into an electric signal, and outputs the electric signal to the calculation unit 142. Further, the light receiving element 151 of the light receiving section 141 is composed of a CMOS (Complementary Metal-Oxide Semiconductor) element, and can operate at a higher speed than a conventional CCD (Charge Coupled Device) element. More specifically, the light receiving element 151 photoelectrically converts light in an imaging region to be imaged and outputs the light to the amplifier 152. The amplifier 152 amplifies the photoelectrically converted electric signal input from the light receiving element 151 and outputs the amplified electric signal to the calculation unit 142 and the image processing unit 143.
[0043]
The storage unit 161 of the calculation unit 142 stores the amplified electric signal input from the light receiving unit 141 as each pixel value of a captured image in units of frames in units of frames, the number of frames required for calculation processing in a comparison unit 162 described below. And outputs it to the comparison unit 162 as appropriate. The comparison unit 162 performs an arithmetic process based on the value of the electric signal stored in the storage unit 161, compares the calculation result with a predetermined reference value (= reference signal level), and outputs the comparison result to the output unit 163. Output. The output unit 163 generates a sensor output signal based on the comparison result and outputs the sensor output signal to the ID decode processing unit 144.
[0044]
The image processing unit 143 outputs the captured image supplied from the light receiving unit 141 to the input unit 76 (FIG. 3).
[0045]
The ID decode processing unit 144 decodes the sensor output signal, generates ID data and position data, and outputs the generated data to the input unit 76 (FIG. 3).
[0046]
Next, the configuration of the comparison unit 162 will be described with reference to FIG.
[0047]
The positive inter-frame difference calculating unit 181 and the negative inter-frame difference calculating unit 183 of the comparing unit 162 detect the 2M frame up to 2M frames before the currently captured frame in order to detect a change in light. The difference value between them is obtained and output to the comparators 182 and 184, respectively. The comparators 182 and 184 compare the input difference value with predetermined threshold values Ref (+) and Ref (−), respectively, and supply a value of 1 or 0 to the output unit according to the comparison result. More specifically, the positive inter-frame difference calculation unit 181 outputs 1 when the difference value is larger than the threshold Ref (+), and outputs 0 otherwise. When the value is smaller than the threshold value Ref (-), 1 is output, and otherwise, 0 is output. M represents a positive integer. Further, for convenience of description, in the following description, Ref (+) = − Ref (−), but is not limited to this.
[0048]
More specifically, the positive inter-frame difference calculator 181 calculates a positive 2M inter-frame difference as shown by the following equation (1), and outputs the result to the terminal 182a of the comparator 182.
[0049]
(Equation 1)
Figure 2004349766
Figure 2004349766
[0050]
Note that f (n) in Expression (1) indicates a pixel value at a predetermined pixel position in the n-th frame, and the first term of Expression (1) is calculated from the n-th frame to the (n−M−1) ) Shows the summation of the pixel values of the frame, and the second term shows the summation of the pixel values of the (n−M) th frame to the (n−2M−1) th frame. That is, the positive inter-frame difference calculation unit 181 subtracts the sum of old pixel values far from the current frame from the sum of new pixel values near the current frame in time series by calculating Expression (1). Is obtained as a positive inter-frame difference YP (M, n).
[0051]
Similarly, the negative inter-frame difference calculator 183 calculates a positive 2M inter-frame difference as shown by the following equation (2) and outputs the difference to the terminal 184a of the comparator 184.
[0052]
(Equation 2)
Figure 2004349766
Figure 2004349766
[0053]
The first term of the equation (2) represents the summation of the pixel values of the (n−M) th frame to the (n−2M−1) th frame, and the second term represents the summation of the pixel value from the nth frame to the (n−m−th) frame. M-1) Summation of pixel values of a frame is shown. That is, the negative inter-frame difference calculation unit 183 subtracts the sum of new pixel values close to the current frame from the sum of old pixel values far from the current frame in time series by calculating Expression (2). The value is obtained as a negative inter-frame difference YM (M, n).
[0054]
Further, the comparator 182 sets the positive inter-frame difference value YP (M, n) input to the terminal 182a and the reference value Ref (+) (reference value Ref (+)) input to the terminal 182b arbitrarily. If the difference YP (M, n) between the positive frames is larger than the reference value Ref (+), CP (n) = 1 is added to the subsequent stage as the comparison result in the n-th frame. Conversely, when the positive inter-frame difference value YP (M, n) is smaller than the reference value Ref (+), CP (n) = 0 is output to the subsequent stage as a comparison result in the n-th frame.
[0055]
Similarly, the comparator 184 arbitrarily sets the negative inter-frame difference value YM (M, n) input to the terminal 184a and the reference value Ref (−) (reference value Ref (−)) input to the terminal 184b. And if the negative inter-frame difference value YM (M, n) is smaller than the reference value Ref (-), CM (n) = 1 is output to the subsequent stage as a comparison result in the n-th frame. Conversely, when the negative inter-frame difference value YM (M, n) is larger than the reference value Ref (-), CP (n) = 0 is output to the subsequent stage as a comparison result in the n-th frame.
[0056]
The calculation unit 142 detects a signal by the above calculation and a signal transmitted by the emission of the optical beacon 11. The signal detection method performed by the arithmetic unit 142 will be described later in detail.
[0057]
Next, a detailed configuration of the ID decode processing unit 144 will be described with reference to FIG. The ID decoding circuit 211 of the ID decoding unit 201 is configured by a device such as an IC (Integrated Circuit), an ASIC (Application Specific Integrated Circuit), or an FPGA (Field Programmable Gate Array), and is input from the image sensor 131. The ID data of each pixel is restored from the signal. The ID decode circuit 211 may be configured by software using a microprocessor or a DSP (Digital Signal Processor) if the processing capability is sufficient.
[0058]
The flag register 212 is a register for storing flags required for decoding ID data, and the data register 213 is a register for storing an ID that is being decoded or has been decoded.
[0059]
In FIG. 6, only one ID decoding unit 201 is shown. However, the ID decoding unit 201 may be provided for each pixel depending on the processing speed, or may be provided in the vertical or horizontal direction. May be provided for each line.
[0060]
Timing control section 202 outputs a timing control signal for controlling the timing required for the entire operation of ID decode processing section 144. More specifically, the timing control unit 202 synchronizes the timing of the ID decode circuit 211 with the timing of the sensor output signal, and stores the flag data of the frame memory 203 corresponding to the desired sensor output signal in the flag register 212. The ID data is loaded into the data register 213 to generate a timing control signal for advancing the ID decoding process, and the timing control signal is supplied to the ID decoding unit 201 (the ID decoding circuit 211, the flag register 212, and the data register 213). I do. At this time, the timing control unit 202 generates and supplies an address signal to the frame memory 203 and a timing control signal such as read / write. Further, the timing control unit 202 generates and supplies a timing control signal for performing timing control of the ID register 221 of the center of gravity calculation unit 204, the ID center of gravity calculation circuit 222, and the ID coordinate storage memory 205.
[0061]
The error detection unit 210 of the ID decoding unit 201 in the ID decoding processing unit 144 determines the sensor output signal supplied from the calculation unit 142, that is, the difference value between the positive frames supplied from the comparators 182 and 184 of the comparison unit 162. Based on YP (M, n) and the negative inter-frame difference value YM (M, n), it is determined whether or not there is an error in the acquired ID data, which is captured by the ID recognition camera 21 and the determination result is determined as ID. It is supplied to the decoding circuit 211. The code circuit 211 decodes the input sensor output signal based on the determination result supplied from the error detection unit 210 when no error is detected, and stops decoding when an error is detected. .
[0062]
The frame memory 203 is a memory for storing ID data and flag data obtained by decoding sensor output signals calculated for each of the light receiving elements 151 or the calculation units 142, and the image sensor 131 uses one calculation unit 142 for one pixel. , The size is the same as the sensor image size of M pixels × N pixels, and the data width is the sum of the bit widths of the flag register 212 and the data register 213. In FIG. 6, coordinates corresponding to the position of each pixel are indicated by an I axis and a J axis, and ID data and flag data are stored at each coordinate position.
[0063]
The center-of-gravity calculating unit 204 obtains the coordinates of the center of gravity of the pixel on the captured image having the same ID data, and adds the position data (= the position of the optical beacon 11 on the captured image) as the detection position of the optical beacon 11 to the ID data. Output). More specifically, the ID register 221 of the center-of-gravity calculation unit 204 stores the predetermined ID data input from the timing control unit 202 in the frame memory 203 by using a timing control signal indicating that the decoding unit 201 has decoded the ID data. The ID data is read and output to the ID gravity center calculation circuit 222. The ID gravity center calculating circuit 222 sequentially adds the I coordinate and the J coordinate of the coordinate position of the corresponding pixel and the number of data for each input ID data, and stores the added data in the ID coordinate storage memory 205. When the data for one frame is stored in the frame memory 203, the ID gravity center calculation circuit 222 divides the sum of the I coordinate and the sum of the J coordinate for each ID by the number of data from the ID coordinate storage memory 205. To obtain the coordinates of the position of the center of gravity, and output it together with the ID data.
[0064]
Next, the configuration of the error detection unit 210 will be described with reference to FIG.
[0065]
The memory 231 of the error detector 210 stores the sensor output signal supplied from the calculator 142 at a predetermined frame interval for each of a plurality of frames. More specifically, for example, when capturing an image at a frequency N times the blinking frequency of an optical beacon described later, when storing, for example, m frames at N frame intervals, sequentially outputting m sensor outputs in chronological order When storing a signal and further storing a new sensor output signal, the oldest one of the stored m sensor output signals is deleted and a new sensor output signal is stored. As a result, the memory 231 always stores the m latest sensor output signals.
[0066]
The comparison unit 232 performs a comparison process using the m sensor output signals stored in the memory 231 and outputs a comparison result to the determination unit 233.
[0067]
The determination unit 233 determines whether there is an error based on the comparison result supplied from the comparison unit 232, and outputs a determination result. The comparison method of the comparison unit 232 and the determination method of the determination unit 233 will be described later in detail.
[0068]
Next, the configuration of the optical beacon 11 will be described with reference to FIG. The optical beacon 11 of FIG. 7 can change data by communicating with another device via a network (not shown). Here, the network means a wired / wireless communication line, for example, a telephone line, ISDN, RS-232C, RS-422, Ethernet (R) (10base-T, 100base-T), USB (Universal Serial Bus), IEEE (IEEE). Refers to an environment in which data communication with other devices can be performed by communication means such as Institute of Electrical and Electronic Engineers (1394), IEEE802.11a, IEEE802.11b, and Bluetooth. The data transmission / reception unit 251 includes a data communication IC and a driver corresponding to the communication unit, and outputs transmission data of the optical beacon 11 received via the network to the Manchester encoding unit 252. The Manchester encoding unit 252 performs Manchester encoding on the transmission data supplied from the data transmission / reception unit 251 and outputs the transmission data to the blink control unit 253. The blinking control unit 253 generates a blinking pattern according to the transmission data converted into the input Manchester code, and causes the light emitting unit 254 to emit light.
[0069]
Here, Manchester encoding will be described. As shown in FIG. 9, Manchester encoding is an encoding method that expresses a signal of 0 as 10 and a signal of 1 as 01 for digitalized transmission data. Here, 1 indicates that the light emitting unit 254 is turned on, and 0 indicates that the light emitting unit 254 is turned off.
[0070]
Manchester-coded transmission data has a “start code” added before the converted data, so that the start position of the transmission data can be confirmed. The start code is, for example, “00001” as shown in FIG. In FIG. 10, the left side in the figure is the LSB (Least Significant Bit), and the right side is the MSB (Most Significant Bit).
[0071]
For example, when Manchester encoding is performed on transmission data of 8 bits “10010010”, that is, when 73 is to be transmitted as transmission data, when transmission data 1/0 of a binary number indicates ON / OFF, The light emitting unit 254 is controlled by the blinking control unit 253 so as to be “OFF-ON → ON-OFF → ON-OFF → OFF-ON → ON-OFF → ON-OFF → OFF-ON → ON-OFF”. Will be.
[0072]
By performing the Manchester encoding in this manner, three or more signals taking the value of 1 or 0 do not continue, and each transmission section always flashes, and the light emitting section 254 is in the OFF state for a long time. It is possible to prevent the light emitting unit 254 from being left ON or the light emitting unit 254 from being kept ON, and it is relatively easy to determine the ambient light, so that stable communication can be performed.
[0073]
Further, the transmission data is not limited to data supplied via a network. For example, as shown in FIG. 11, a transmission data storage memory 291 is provided in place of the data transmission / reception unit 251, and a command to be transmitted in advance is provided. You may make it memorize | store.
[0074]
Next, the operation of the ID recognition camera 21 will be described.
[0075]
The light receiving element 151 of the light receiving unit 141 photoelectrically converts the light, and outputs the converted electric signal to the amplifier 152. The amplification unit 152 amplifies the electric signal and outputs the electric signal to the calculation unit 142 and the image processing unit 143. The storage unit 161 of the arithmetic unit 142 sequentially stores the electric signals input from the light receiving unit 141, stores the electric signals of 2M frames, and when full, deletes the electric signal of the oldest frame, and By repeating the process of storing the electric signals of the current frame, the electric signals of the latest 2M frames are always stored, and the electric signals of the 2M frames are output to the comparing unit 162.
[0076]
The comparing unit 162 performs the arithmetic processing such as the above-described equations (1) and (2) using the electrical signals of 2M frames that are temporally continuous stored in the storage unit 161 as the luminance signal, and outputs the result. 163 outputs the calculation result to the ID decode processing unit 144 as a sensor output signal. The operation of the comparing unit 162 will be described later in detail.
[0077]
The image processing unit 143 converts the image signal supplied from the light receiving unit 141 into a format that can be processed, and outputs it as image data.
[0078]
Next, the operation of the ID decode processing unit 144 will be described.
[0079]
The error detection unit 210 of the ID decode processing unit 201 determines whether there is an error in the sensor output signal supplied from the calculation unit 142, and outputs the determination result to the ID decode circuit 211.
[0080]
For example, when an error is detected based on the error determination result from the error detection unit 210, the ID decode circuit 211 does not execute the subsequent processing and waits for the next error determination result. When an error determination result indicating that there is no error is transmitted, the ID decode circuit 211 receives an input from the image sensor 131 based on a timing control signal for synchronizing the timing of the sensor output signal from the timing control unit 202. The ID data of each pixel is restored from the output signal of the sensor. At this time, the ID decode circuit 211 controls the flag register 212 in accordance with the timing control signal to decode the ID data from the sensor output signal using the flag data loaded in the frame memory 203, The ID for which decoding has been completed is stored in the data register 213. The details of the error determination process will be described later.
[0081]
Further, the frame memory 203 stores the decoded flag data and ID data at the corresponding coordinate positions.
[0082]
The ID register 221 of the center-of-gravity calculation unit 204 stores information of the ID data currently stored in the frame memory 203 by a timing control signal indicating that predetermined ID data input from the timing control unit 202 has been decoded by the decoding unit 201. Is read by the ID gravity center calculation circuit 222.
[0083]
The ID gravity center calculation circuit 222 sequentially adds the I coordinate and the J coordinate of the coordinate position of the pixel corresponding to the read ID data, adds the information to the number of pixels, and stores the information in the ID coordinate storage memory 205. This process is repeated.
[0084]
When one frame of data is stored in the frame memory 203, the ID gravity center calculation circuit 222 divides the sum of I coordinates and the sum of J coordinates by the number of data from the ID coordinate storage memory 205 for each ID. , The coordinates of the position of the center of gravity are obtained as position data, and output together with the corresponding ID data.
[0085]
According to the above operation, for example, as shown in FIG. 12, when the two optical beacons 11-1 and 11-2 emit light while blinking and transmit data, the ID recognition camera 21 includes the upper part of FIG. The light signal is received by the pixel at the position on the captured image corresponding to the physical position of the optical beacon 11-1 or 11-2 in the real space as shown in FIG. For example, it is assumed that the light emitted from the optical beacon 11-1 is received by the light receiving element 151 at the coordinate position (10, 10), and the light emitted from the optical beacon 11-2 is at the coordinate position (90, 90). It is assumed that the light is received by the light receiving element 151. At this time, in the light receiving elements 151 at the coordinate positions (10, 10) and (90, 90) of each light receiving unit 141, the time of the light receiving intensity (brightness) is determined by the blinking pattern of the optical beacons 11-1 and 11-2, respectively. A signal can be received as a target change. In this case, the pixel corresponding to the position data at the coordinates (10, 10) has ID data “321”, and the pixel corresponding to the position data at the coordinates (90, 90) has ID data 105 as the decoding result. It has been demanded.
[0086]
As a result, the change in the received light intensity is binarized by the above equation (1) or the like, so that ID data composed of a 1/0 bit string can be obtained.
[0087]
Next, a signal detection method using the difference between frames by the calculation unit 142 will be described.
[0088]
The simplest method of detecting a signal transmitted when the optical beacon 11 emits light is to binarize the received light amount by comparing it with a predetermined threshold value, and convert the received light amount into a digital signal of 1,0. How to convert. This method is the simplest and the easiest to implement, but stable data transmission cannot be expected with the method of binarizing compared with a fixed threshold when the ambient brightness changes.
[0089]
Therefore, in the present invention, to detect a change in light, the storage unit 161 stores (samples) the amount of received light at a predetermined rate and on a frame-by-frame basis, and stores the received light amount between a plurality of frames continuous in the time direction. By comparing the amount of received light, the signal can be detected stably.
[0090]
For example, assuming that a frame number that increases as time elapses is n and a light receiving amount of each pixel between each sampled frame is f (n), a change amount of light of one pixel is Y = f (n ) -F (n-1), which means that when Y> 0, the light changes from dark to bright, and when Y <0, the light changes from light to dark.
[0091]
The above-mentioned Y = f (n) -f (n-1) is defined as a difference between two frames, and further extended to define a difference between 2M frames. Here, M is a positive integer. Specifically, when M = 1, Y = f (n) −f (n−1), and when M = 2, Y = f (n) + f (n−1) −f (n−2). When −f (n−3) and M = 3, Y = f (n) + f (n−1) + f (n−2) −f (n−3) −f (n−4) −f (n −5). That is, the difference between the 2M-frames of the n-th frame is obtained by YP (M, n) defined by the above equation (1) and YM (M, n) defined by the above equation (2).
[0092]
When the inter-frame difference is obtained using the above-described equations (1) and (2), the light detection sensitivity (the sharpness of the change in the calculation results of the equations (1) and (2)) increases as M increases. Become. However, on the other hand, if M becomes large, the number of frames to be stored per unit time on the light receiving side, that is, if the sampling frequency is fixed, the set number of frames can be stored unless the blinking frequency of light is reduced. As a result, the data transfer efficiency deteriorates.
[0093]
That is, as shown in FIG. 13, with the horizontal axis as the time axis and the sampling time (inter-frame interval) as Δt, the blinking of the optical beacon 11 changes from the OFF state to the ON state as shown by the solid line waveform, and then to the OFF state. In this case, if the amount of light received by the light receiving unit 141 at each sampling time is represented on the vertical axis, the waveform becomes as shown by the one-dot chain line in FIG. Here, in the sampling section in which the amount of received light changes (time t3 to t4 and time t8 to t9), although the amount of received light is smaller than the amount of received light when the optical beacon 11 is turned on, it is larger than the OFF state. Become.
[0094]
When the optical beacon 11 is turned on, as shown by the solid line in FIG. 13, the light receiving amount of the light beacon 11 is turned on (the light beacon 11 emits light when the sampling interval is from time t4 to t8). During the sampling interval from time t9 to time t10, the received light amount changes to the amount of light received when the optical beacon 11 is turned off (not emitting light).
[0095]
Therefore, when a change in light is detected at YP (1, n) (= (f (n) −f (n−1)) which is a positive difference between two frames, the difference between two frames (positive frame difference YP (1, n)) changes as indicated by the two-dot line in FIG. 13, and the positive inter-frame difference YP (1, n) indicates the light reception in one sampling interval when the optical beacon 11 is in the ON state. In other words, the difference YP (1, n) between the two positive frames between the time t3 and the time t5 and the time t8 and the time t10 during the time from the time t3 to the time t10 are always in a state where the optical beacon 11 is ON. Is always smaller than the amount of received light in one sampling section in the case of.
[0096]
On the other hand, a change in light is detected by the positive inter-frame difference YP (2, n) (= f (n) + f (n-1) -f (n-2) -f (n-3)). In this case, as shown by the three-dot line in FIG. 13, a change in light is detected from time t5 to t6 and from time t9 to t10, and the positive inter-frame difference YP (2, n) is at the maximum level. As a result, the light beacon 11 takes a value larger than the absolute value of the amount of received light when it is ON. Therefore, the positive four-frame difference YP (2, n) (= f (n) + f (n−1) −f (n−2) −f (n−3)) is the positive two-frame difference YP A signal with higher sensitivity can be detected as compared with (1, n) (= f (n) + f (n-1)).
[0097]
Of course, the calculation of the difference between frames using a larger number of frames may be used (for example, the difference between six frames). However, as the number of frames for obtaining the difference increases, the blinking frequency needs to be reduced.
[0098]
In addition, in order to stably detect a change in light, the frame rate of the light receiving unit 141 must be at least N times the blinking frequency of the optical beacon 11. Here, N is a value determined by a method of detecting a change in light. N> 2 for the difference between two frames, and N> 3 for the difference between four frames. That is, in the case of a 2M frame difference (M is a positive integer), N> M + 1. Here, a smaller value of N can increase the data transfer rate even at the same frame rate. Therefore, optimization is achieved by setting N = M + 1. Hereinafter, the solid line, the one-dot chain line, the two-dot chain line, and the three-dot chain line indicate the light emission state, the amount of received light, the difference between two frames, and the difference between four frames, respectively.
[0099]
Here, M = 1, that is, N = 2 or more in the case of a difference between two frames, is evident from the sampling theorem unless sampling is performed at a frequency twice or more the frequency of the original signal. This is because the original signal cannot be restored from the sampling result.
[0100]
For example, as shown by a solid line in FIG. 14, when ON or OFF of the optical beacon 11 changes, in the section from time t2 to t6 in FIG. In the section from t6 to t13, the received light amount and the positive difference between two frames when sampling is performed in a relationship of N = 2 are shown. As can be seen from the change indicated by the two-dot chain line in FIG. 14 (particularly, in the period from time t3 to t6 (portion indicated by the range A in the drawing)), in the interval of N = 1, the positive difference YP between the two frames is obtained. (1, n) (= f (n) -f (n-1)) is smaller than the amount of received light (the change indicated by the one-dot chain line in FIG. 14) (blinking pattern and sampling). YP (1, n) becomes 0 even if there is a change in light depending on the phase of the frequency), indicating that stable detection is difficult. However, in the section of N = 2 (portion indicated by the range B in the drawing), the value of YP (1, n) takes a larger value than the received light amount every N frames (N = 2), and is stable. It can be seen that such detection is possible.
[0101]
Next, it will be described that when M = 2, that is, the difference between four frames, N = 3 is optimal. FIG. 15 shows a change in signal level when the value of the difference between four frames is M = 2 and N = 2. Since the light source is blinked at a frequency twice the sampling rate of the light receiving unit, even when the value of the difference between the positive four frames is positive and negative, the blinking of the optical beacon 11 rises and falls in the four frames to be calculated. Since the down stream is included, the received light signal is canceled by positive and negative, and it can be seen that the positive four-frame difference value is not larger than the received light amount (below the received light amount during one sampling time). For example, from time t6 to time t7, the difference between the four frames (the range for the four frames indicated by the arrow in the drawing) is one of the sections where the negative maximum value is obtained. Here, the difference between the four frames is YP ( 2, n) = f (t6-t7) + f (t6-t5) -f (t5-t4) -f (t4-t3), and both f (t4-t3) and f (t6-t5) are positive. Since the value is taken, YP (2, n) becomes small because of cancellation.
[0102]
However, as shown in FIG. 16, when M = 4 and N = 3, when the positive four-frame difference value is positive and negative and takes the maximum value, respectively (t5-t4, t8-t7, t11-t10). , T14-t13), the calculated four frames do not include both the rising and falling of the blinking by the optical beacon 11, and the light receiving signal is not canceled out by the positive or negative. Can obtain a large signal. Then, it can be seen that the positive maximum value is around the rising edge of the blinking pattern of the optical beacon 11 and the negative maximum value is around the falling edge every N samplings. Therefore, it can be seen that the original Manchester-coded signal can be restored using the positive inter-frame difference value YP for every N frames.
[0103]
Therefore, the optimal combination of N and M is such that the larger the value of M, the higher the sensitivity of the 2M inter-frame difference value. However, when M is increased (when the number of frames used for calculation is increased), N> M + 1. Must be increased (the number of samplings must also be increased), and the efficiency of data transmission that can be transmitted at the same blinking frequency becomes inferior. It is necessary to determine in consideration of the balance.
[0104]
In the present embodiment, a description will be mainly given of a difference between two frames and a difference between four frames as an example. However, the present invention is applicable to 2M interframe differences (M is a positive integer) and does not limit M to 2 or 1.
[0105]
Although only the positive inter-frame difference has been described above, the same applies to the negative inter-frame difference (corresponding to equation (2) above). Note that the negative inter-frame difference is the same as the positive inter-frame difference, and a description thereof will be omitted.
[0106]
Next, a light emission process for transmitting transmission data by the optical beacon 11 will be described with reference to a flowchart of FIG.
[0107]
In step S1, the data transmitting / receiving unit 251 receives the transmission data transmitted from the control unit 2 and outputs the data to the Manchester encoding unit 252.
[0108]
In step S2, the Manchester encoding unit 252 performs Manchester encoding on the transmission data supplied from the data transmitting / receiving unit 251 and supplies the transmission data to the blinking control unit 253 as described with reference to FIGS.
[0109]
In step S3, the blink control unit 253 controls the light emission of the light emitting unit 254 based on the Manchester-encoded transmission data supplied from the Manchester encoding unit 252, and the process returns to step S1. , And the subsequent processes are repeated. That is, under such control, the light emitting unit 254 repeats light emission corresponding to the transmission data. Further, the information unit 3 transmits the transmission data by controlling the blinking patterns of the plurality of optical beacons 11-1 to 11-6.
[0110]
Next, with reference to the flowchart of FIG. 18, a description will be given of a transmission data acquisition process transmitted by blinking the optical beacon 11 by the ID recognition camera 21.
[0111]
In step S <b> 11, the light receiving element 151 of the light receiving unit 142 performs photoelectric conversion of light in an imaging region to be imaged, and outputs the light to the amplifier 152.
[0112]
In step S12, the amplifier 152 amplifies the photoelectrically converted electric signal input from the light receiving element 151 and outputs the amplified electric signal to the calculation unit 142 in frame units.
[0113]
In step S13, the storage unit 161 of the calculation unit 142 sequentially stores the amplified electric signal, that is, the pixel value of each pixel, supplied from the light receiving unit 141, in frame units. At this time, since the storage unit 161 can store 2M pixel values for a plurality of frames, the storage unit 161 deletes the pixel value of the oldest frame and sequentially stores the pixel values of the new frame. In the following description, it is assumed that M = 2.
[0114]
In step S14, the comparing unit 162 reads the pixel values of 2M frames stored in the storage unit 161 and performs the comparing process.
[0115]
Here, the comparison processing by the comparison unit 162 will be described with reference to the flowchart in FIG.
[0116]
In step S <b> 21, the positive inter-frame difference calculation unit 181 of the comparison unit 162 uses the information of the 2M frame stored in the storage unit 161 for each pixel to determine the positive frame represented by the above equation (1). Calculate the difference YP (M, n) and output it to the terminal 182a of the comparator 182.
[0117]
In step S22, the comparator 182 of the comparing unit 162 compares the difference YP (M, n) between the positive frames supplied to the terminal 182a with the reference value Ref (+) supplied to the terminal 182b. When the difference YP (M, n) is larger than the reference value Ref (+), the comparison result CP (n) = 1 is output. Otherwise, the comparison result CP (n) = 0 is output.
[0118]
In step S23, the positive inter-frame difference calculation unit 183 of the comparison unit 162 uses the information of the 2M frame stored in the storage unit 161 to calculate, for each pixel, the negative frame represented by the above equation (2). The difference YM (M, n) is calculated and output to the terminal 184a of the comparator 184.
[0119]
In step S24, the comparator 184 of the comparing unit 162 compares the difference YM (M, n) between the negative frames supplied to the terminal 184a with the reference value Ref (-) supplied to the terminal 184b. When the difference YM (M, n) is smaller than the reference value Ref (−), the comparison result CM (n) = 1 is output. Otherwise, CM (n) = 0 is output.
[0120]
In step S25, the output unit 163 outputs the comparison results CM (n) and CP (n) supplied from the comparators 182 and 184 to the ID decode processing unit 144.
[0121]
Here, the description returns to the flowchart of FIG.
[0122]
When the comparison process in step S14 ends, the process returns to step S11, and the subsequent processes are repeated.
[0123]
That is, by the process described with reference to the flowchart of FIG. 18, the optical beacon 11 blinks and receives the emitted light, thereby acquiring the transmitted transmission data and transmitting it to the ID decode processing unit 144. The process of supplying data is repeated.
[0124]
The above process will be described in more detail. As shown in FIG. 20, in the process of step S11, the light receiving amount of the light receiving unit 141 is 0 from time t1 to t13, and at time t13 to t14, The amount of light received from t13 + α to t14 is accumulated. That is, assuming that the amount of received light obtained when the optical beacon 11 continues to emit light between times t13 and t14 is 1, the amount of received light between times t13 and t14 is (t14−t (13 + α)) / ( t14-t13).
[0125]
In FIG. 20, the top row shows the transmission data. In this case, “start code”, “1” as “data first bit”, and “0” as “data second bit” are shown. , The second row shows Manchester encoded data, and in this case, “000010110” is shown from the top. The third row indicated by the solid line indicates the light emission state of the optical beacon 11, in which the Hi state indicates a light emission state and the Low state indicates a light emission state. The fourth row indicated by the dashed line indicates the amount of light received by the light receiving element 141, and the fifth row indicates the difference between positive frames, and Ref (+) and Ref (-) indicates a reference value of the comparators 182 and 184, respectively. The difference between the negative frames is not shown, but is a value obtained by inverting the difference between the positive frames in FIG.
[0126]
The sixth and seventh rows show the outputs of the comparators 182 and 184, respectively. In this case, the sixth row shows the outputs at times t1 to t14, times t16 to t20, and times t22 to t28. , 0 are output at times t14 to t16 and at times t20 to t22, 1 is output. The seventh row shows that 0 is output from time t1 to t17 and from time t19 to t26, and 1 is output from time t17 to t19 and from time t26 to t28. It is assumed that the time interval between each frame is constant at Δt.
[0127]
From time t14 to t15 and from time t15 to t16, the light beacon 11 continues to emit light as shown by the solid line, so that the light reception amount becomes 1 as shown by the dashed line.
[0128]
Further, between the time t16 and the time t17, as shown by the solid line, the light is emitted only between the time t16 and the time t (16 + α). α / (t17−t16).
[0129]
Since the optical beacon 11 shown by the solid line in FIG. 20 is not emitting light between the times t17 and t19, the amount of received light is received as shown by the one-dot chain line in FIG. Becomes 0.
[0130]
Further, the amount of light received between time t19 and time t20 is substantially equal to the amount of light received between time t (19 + α) and time t20, as shown by the solid line. As shown by the dashed line, (t20−t (19 + α)) / (t20−t19).
[0131]
Since the optical beacon 11 shown by a solid line in FIG. 20 is in a light-emitting state from the time t20 to the time t25, as shown by a dashed line in FIG. Becomes 1.
[0132]
Further, during the period from the time t25 to the time t26, as shown by the solid line, the light is emitted only during the period from the time t25 to the time t (25 + α). α / (t26−t25).
[0133]
After the time t26, as shown by the solid line, the light beacon 11 is in a state where it does not emit light, so that the amount of received light becomes 0 as shown by the dashed line.
[0134]
Then, the positive inter-frame difference calculator 181 executes the calculation of the above-described equation (1) according to the above received light amount. More specifically, the light receiving amount f (n) is 0 in all the frames from the time t1 to t13, so that the difference between the positive frames is 0 as shown by the three-dot chain line in FIG.
[0135]
The difference YP (2, t14-t13) between the positive frames in the frame f (t14-t13) corresponding to the times t13 to t14 is f (t14-t13) + f (t13-t12) -f (t12-t11) -f (T11-t10), which is the value of the difference between the positive frames from time t13 to time t14 indicated by the three-dot chain line in FIG.
[0136]
Similarly, the difference YP (2, t15-t14) between the positive frames in the frame f (t15-t14) corresponding to the times t14 to t15 is represented by f (t15-t14) as shown by a three-dot chain line in FIG. + F (t14-t13) -f (t13-t12) -f (t12-t11).
[0137]
In addition, the difference YP (2, t16-t15) between the positive frames in the frame f (t16-t15) corresponding to the times t15 to t16 is f (t16-t15) + f as shown by the three-dot chain line in FIG. (T15-t14) -f (t14-t13) -f (t13-t12).
[0138]
Further, the difference YP (2, t17-t16) between the positive frames in the frame f (t17-t16) corresponding to the times t16 to t17 is represented by f (t17-t16) + f as shown by a three-dot chain line in FIG. (T16-t15) -f (t15-t14) -f (t14-t13).
[0139]
Further, the difference YP (2, t18-t17) between the positive frames in the frame f (t18-t17) corresponding to the times t17 to t18 is represented by f (t18-t17) + f as shown by a three-dot chain line in FIG. (T17-t16) -f (t16-t15) -f (t15-t14).
[0140]
Similarly, f (t19−t18) + f (t18−t17) −f (t17−t16) −f (t16−t15) from time t18 to t19, and f (t20−t19) from time t19 to t20. ) + F (t19−t18) −f (t18−t17) −f (t17−t16), and from time t20 to t21, f (t21−t20) + f (t20−t19) −f (t19−t18) −f (T18-t17), from time t21 to t22, f (t22-t21) + f (t21-t20) -f (t20-t19) -f (t19-t18), and from time t22 to t23, f (t23 −t22) + f (t22−t21) −f (t21−t20) −f (t20−t19), and from time t24 to t25, f (t25−t24) + (T24−t23) −f (t23−t22) −f (t22−t21), and from time t25 to t26, f (t26−t25) + f (t25−t24) −f (t24−t23) −f (t23) −t22), from time t26 to t27, f (t27−t26) + f (t26−t25) −f (t25−t24) −f (t24−t23), and from time t27 to t28, f (t28−t27) ) + F (t27−t26) −f (t26−t25) −f (t25−t24).
[0141]
Along with this, the comparison result between the positive inter-frame difference obtained by calculating the above equation (1) and the positive reference value Ref (+) is, as indicated by the three-dot chain line in FIG. In the case of, the difference between positive frames becomes larger than the positive reference value Ref (+) from time t14 to t16 and from time t20 to t22, so that the comparison result CP (n) output from the comparator 182 becomes It becomes 1 from t14 to t16 and from time t20 to t22, and becomes 0 at other times.
[0142]
It should be noted that the difference between the negative frames obtained by calculating the above equation (2) indicates the relationship between the positive frame difference indicated by the three-dot chain line in FIG. Is omitted.
[0143]
The comparison result between the negative inter-frame difference and the negative reference value Ref (−) is obtained by comparing the positive inter-frame difference with the value (−Ref (−)) obtained by reversing the positive and negative of the negative reference value Ref (−). It has the same value as the comparison result. Therefore, in this case, the difference between the negative frames is larger than the negative reference value Ref (−) from time t17 to t19 and from time t26 to t28 (as indicated by the three-dot chain line in FIG. 20). Since the difference between the positive frames is smaller than the value (−Ref (−)) of the negative reference value Ref (−), the comparison result CM (n) output from the comparator 184 is the time t17. From time t19 to time t26 and from time t26 to time t28, it becomes 1 and at other times, it becomes 0.
[0144]
Next, ID decoding processing by the ID decoding processing unit 144 will be described with reference to the flowchart in FIG.
[0145]
In step S31, the ID decode circuit 211 of the ID decode processing unit 144 resets and initializes a counter (not shown).
[0146]
In step S32, the ID decode circuit 211 of the ID decode processing unit 144 performs a start code detection process.
[0147]
Here, the start code detection processing by the ID decode circuit 211 will be described with reference to the flowchart in FIG.
[0148]
In step S41, in the ID decoding circuit 211 of the ID decoding processing unit 144, all of the comparison results CP (n) and CM (n) supplied from the arithmetic unit 142 are continuously 0 for 12 frames or more. It is determined whether or not. More specifically, when the comparison results CP (n) and CM (n) are both 0 and are continuously input, the ID decode processing unit 144 increments a counter (not shown) by one, and It is determined whether the value is 12 or more. This counter is reset when any one of the comparison results CP (n) and CM (n) is input as 1.
[0149]
In step S41, the start code is, for example, “00001” as described above, so that the optical beacon 11 blinks as shown by a solid line as shown in FIG. That is, the optical beacon 11 emits light from time t (13 + α) to time t (t19 + α) in a state where it does not emit light from time t (1 + α) to t (13 + α). Transmit the code as transmission data.
[0150]
Therefore, as shown in FIG. 20, since it is not determined that the value is 0 continuously for 12 frames or more from time t1 to t12, the process proceeds to step S45, and the error detection unit 210 detects the start code. It is determined that there is not, and the process proceeds to step S33 (the flowchart of FIG. 21).
[0151]
Here, it returns to the flowchart of FIG.
[0152]
In step S33, it is determined whether or not a start code has been detected. In this case, in step S45, since no start code has been detected, it is determined that no start code has been detected, and the process proceeds to step S32. Return to
[0153]
That is, the processing of steps S32 and S33 is repeated until it is determined that the value is 0 continuously for 12 frames or more.
[0154]
Here, the description returns to the flowchart of FIG.
[0155]
In this case, for example, from time t1 to time t13 shown in FIG. 20, the processes of steps S32 and S33 are repeated 12 times. For example, in the case of a frame corresponding to time t12 to time t13 in FIG. In step S41, it is determined that the value is 0 continuously for 12 frames or more, and the process proceeds to step S42.
[0156]
In step S42, the ID decode circuit 211 determines whether or not the comparison result CP (n) of the comparator 182 is 1. That is, it is determined whether 1 at the end of the start code is detected. For example, as shown in FIG. 20, after the start code “0000” is detected in the frame corresponding to time t12 to t13, the comparison result CP (t14−t13) is 1 in time t13 to t14. Since there is no such process, the process proceeds to step S45. Therefore, in this case, the processing of steps S33 and S32 is repeated.
[0157]
In addition, for example, in the case of times t13 to t14, which are later timings, the comparison result CP (t15-t14) is 1 as shown in FIG. 20 in step S42, so that the end of the start code is “1”. Is determined, and the process proceeds to step S43.
[0158]
In step S43, the ID decode circuit 211 determines whether or not the comparison result CP (n + 1) of the comparator 182 is 1. For example, as shown in FIG. 20, from time t15 to t16, it is determined that the comparison result CP (t16-t15) is 1, and the process proceeds to step S44.
[0159]
In step S44, the ID decode circuit 211 recognizes that the start code has been detected.
[0160]
That is, similarly to the processing in step S42, in step S43, the ID decoding circuit 211 determines whether 1 at the end of the start code has been detected, thereby determining whether 1 has been detected for two consecutive frames. Is determined. This is because, in the present case, the Manchester-encoded signal is supplied at three-frame intervals, and in this case, as shown in FIG. Since 1 is always detected for two consecutive frames, the presence or absence of 1 at the end of the start code is detected by detecting this.
[0161]
Here, it returns to the flowchart of FIG.
[0162]
In step S34, the ID decode circuit 211 causes the error detection unit 210 to start an error detection process. The error detection process of the error detection unit 210 will be described later in detail.
[0163]
In step S35, the ID decoding circuit 211 determines whether an error has been detected by the error detection processing of the error detection unit 210, and determines whether there is an error based on the error detection result supplied from the error detection unit 210. I do.
[0164]
For example, in step S35, when a notification indicating that no error has been detected is input from the error detection unit 210, the ID decoding circuit 211 determines that no error has been detected, and the process proceeds to step S36. Proceed to.
[0165]
In step S36, the ID decode circuit 211 decodes the ID data based on the input sensor output signal as described above, and stores the decoded ID data in the frame memory 203. Further, the ID gravity center calculating circuit 222 reads the coordinate position corresponding to the decoded ID data by controlling the ID register 221 and sequentially stores the coordinate position in the ID coordinate storage memory 205 while integrating the coordinate position.
[0166]
In step S37, the ID gravity center calculation circuit 222 reads out the coordinate position stored in the ID coordinate storage memory 205 for each ID data and obtains the gravity center position of the coordinate position corresponding to the ID data, that is, of each coordinate position. The position of the center of gravity is obtained by dividing the integrated value by the number of ID data to which the addition has been made, and this is obtained as coordinate information of the ID data.
[0167]
In step S38, the ID decode circuit 211 determines whether or not the data is completed based on the presence or absence of the supplied sensor output signal. For example, if it is determined that the data is not completed, the process proceeds to step S38. Returning to S35, the subsequent processing is repeated.
[0168]
If it is determined in step S38 that the input sensor output signal has disappeared and the data has been completed, in step S39, an instruction is issued to the error detection unit 210 to stop the error detection processing. Returns to step S32, and the subsequent processing is repeated.
[0169]
Next, the error detection processing will be described with reference to the flowchart in FIG.
[0170]
In step S51, the determination unit 233 of the error detection unit 210 sets a counter m (not shown) to 2. In step S52, the determination unit 233 of the error detection unit 210 initializes a counter k (not shown) to 2.
[0171]
In step S53, the memory 231 of the error detection unit 210 determines whether a sensor output signal for one frame has been input, and the processing is repeated until a sensor output signal for one frame is input.
[0172]
When it is determined in step S53 that the sensor output signal for one frame has been input, in step S54, the determination unit 233 of the error detection unit 210 increments the counter k by one.
[0173]
In step S55, the determination unit 233 determines whether or not the counter k has become 3, and when it is determined that the counter k has not become 3, the process returns to step S53, and the subsequent processes are repeated. That is, the processes of steps S53 to S55 are repeated until the counter k becomes 3.
[0174]
If it is determined in step S55 that the counter k is 3, that is, if it is determined that the sensor output signal for one frame has been supplied, in step S56, the memory 231 stores the calculation The comparison results CP (n) and CM (n) of the comparators 182 and 184 of the comparing unit 162 of the unit 142 are stored.
[0175]
In step S57, the comparing unit 232 determines that the stored comparison results CP (n) and CM (n) are (CP (n), CM (n)) = (0,0), (0,1), or It is determined whether or not (1, 0). More specifically, the comparison unit 232 compares (CP (n), CM (n)) with (0, 0), (0, 1), and (1, 0), respectively, and compares the comparison result. Is supplied to the determination unit 233. The determination unit 233 determines whether (CP (n), CM (n)) = (0, 0), (0, 1), or (1, 0) based on the comparison result. . For example, if (CP (n), CM (n)) = (0,0), (0,1) or (1,0) in step S57, the process proceeds to step S58.
[0176]
In step S58, the determination unit 233 determines that the stored comparison results CP (n) and CM (n) are (CP (n), CM (n)) ≠ (CP (n-3), CM (n-3). ) Is determined. More specifically, the comparing unit 232 compares (CP (n), CM (n)) with (CP (n-3), CM (n-3)), and outputs the comparison result to the determining unit 233. . The determination unit 233 determines whether (CP (n), CM (n)) ≠ (CP (n-3), CM (n-3)) based on the comparison result. In step S58, for example, it is determined that the comparison results CP (n) and CM (n) are (CP (n), CM (n)) ≠ (CP (n-3), CM (n-3)). If so, the process proceeds to step S59.
[0177]
In step S59, the determination unit 233 increments the counter m by one. In step S60, the determination unit 233 determines whether or not the counter m is 2, for example, if it is determined that the counter m is 2, the process proceeds to step S61.
[0178]
In step S61, the determination unit 233 determines whether or not the comparison results CP (n) and CM (n) are CP (n) = CM (n) = 0. More specifically, the comparison unit 232 compares CP (n) and CM (n) with 0, and outputs the comparison result to the determination unit 233. The determination unit 233 determines whether or not the comparison results CP (n) and CM (n) satisfy CP (n) = CM (n) = 0 based on the comparison result.
[0179]
When it is determined in step S61 that the comparison results CP (n) and CM (n) are not CP (n) = CM (n) = 0, in step S62, the determination unit 233 notifies the error-free notification. Output to the ID decode circuit 211.
[0180]
In step S63, the determination unit 233 determines whether or not the end of the process has been instructed by the ID decode circuit 211. If it is determined that the end of the process has not been instructed, the process proceeds to step S64.
[0181]
In step S64, the determination unit 233 initializes the counter m to 0, and the process returns to step S53.
[0182]
If it is determined in step S57 that (CP (n), CM (n)) = (0, 0), (0, 1) or (1, 0), then in step S58, (CP ( n), CM (n)) ≠ (CP (n-3), CM (n-3)), or in step S61, the comparison results CP (n) and CM (n) are , CP (n) = CM (n) = 0, the process proceeds to step S66, and the determination unit 233 notifies the ID decoding circuit 211 that an error has been detected. The process proceeds to step S63.
[0183]
When it is determined in step S60 that the counter m is not 2, in step S65, the determination unit 233 initializes the counter k to 0, the process returns to step S53, and the subsequent processes are repeated.
[0184]
That is, by repeating the processing of steps S53 to S55, as shown by the dotted arrow in FIG. 24, the frame at time t15 to t16 which is the next timing of the frame at time t14 to t15 when the start code is detected. , The processes of steps S57 to S60 are executed, and this process is repeated every three frames.
[0185]
This is because, as shown in FIG. 24, the optical beacon 11 transmits the same Manchester-encoded signal by blinking for three consecutive frames, so that the comparison results CP (n) and CM (n ) Is read and it is determined whether or not the value is a predetermined value.
[0186]
More specifically, first, in step S57, it is determined whether (CP (n), CM (n)) is (0, 0), (0, 1), or (1, 0). Is done. This is because the comparison results CP (n) and CM (n) have mutually inverted positive and negative values. Therefore, if no error has occurred, (0,0), (0,1), or This is because one of (1, 0) should be taken.
[0187]
Next, in step S58, it is determined whether or not (CP (n), CM (n)) ≠ (CP (n-3), CM (n-3)). This is because, because of Manchester encoding, the transmitted signal does not have the same code for more than seven frames, and therefore, for example, the comparison between the time t21 to t22 and the time t24 to t25 shown in FIG. As in the result (CP (n), CM (n)), the maximum value and the minimum value are always taken during a maximum of six frames. As a result, if no error has occurred, the transmitted data always includes a rising edge and a falling edge somewhere in at most six frames, so the same signal is detected at three-frame intervals. Will not be done.
[0188]
Then, it is determined whether or not the counter m is 2 in step S60. When m is 2, in step S61, whether or not the comparison results (CP (n), CM (n)) are all 1 Is determined.
[0189]
Only when the counter m becomes 2, that is, every time the processing of steps S53 to S60 is repeated twice, the processing of step S61 is executed. Therefore, the processing of step S61 is substantially performed for six frames. It is executed once, and furthermore, the signal of every six frames from the timing at which the start code is detected, that is, the signal of 01 or 10 which constitutes a data bit, from the timing at which a start code is detected, Done.
[0190]
More specifically, for example, in FIG. 24, the comparison result (CP (n), CM (n)) of the latter half of the data bits corresponding to the frames from time t21 to t22 and the frame from time t27 to t28 ) Is 1 to determine whether there is an error. This is because the comparison results CP (n) and CM (n) corresponding to the latter half of the data bit have mutually inverted positive and negative values. Because it should be.
[0191]
An error is detected by the above processing, so that an error in Manchester-encoded transmission data can be accurately determined, and as a result, correct transmission data without errors can be selectively obtained. .
[0192]
In the above example, when the optical beacon 11 is imaged, there is no change in the imaged pixel, that is, the position of the object being imaged at each pixel in the image is fixed. Has been described. That is, since the optical beacon 11 transmits transmission data by blinking, when the range in which the ID recognition camera 21 captures an image changes, the position of the optical beacon 11 changes in the captured image. As a result, there is a possibility that an error cannot be accurately detected or data cannot be obtained.
[0193]
Therefore, in the following example, the blinking pattern of the optical beacon 11 is detected by detecting the blinking pattern of the optical beacon 11 from the pixel where the optical beacon 11 is imaged and a plurality of pixels around the pixel. Accurate transmission data may be obtained.
[0194]
FIG. 25 is a block diagram illustrating a configuration of the ID decoding processing unit 144 configured to detect a blinking pattern of the optical beacon 11 by detecting a blinking pattern of the optical beacon 11 from a plurality of pixels around the target pixel. . The basic configuration is the same as that of the ID decode processing unit 144 in FIG. 6, except that an error detection unit 271 is provided instead of the error detection unit 210, and an ID gravity center calculation circuit 282 is provided instead of the ID gravity center calculation circuit 222. The difference is that a weight calculator 251 is newly provided.
[0195]
The error detection unit 271 basically performs the same processing as the error detection unit 210 in FIG. 6, but not only the pixel of interest (hereinafter, referred to as the pixel of interest) but also its surrounding pixels (for example, a horizontal pixel). The error detection process is simultaneously performed on the pixels adjacent in the direction, the vertical direction, and the diagonal direction. The details will be described later with reference to FIG.
[0196]
The ID decode processing circuit 211 in FIG. 25 performs basically the same processing as the ID decode processing circuit 211 in FIG. 6, but performs a decode process based on the pixel of interest and its surrounding pixels. Different.
[0197]
The weight calculation unit 281 calculates the weight of each of the target pixel and the peripheral pixels based on the light receiving time of the light emitted from the optical beacon 11 received by the target pixel and the peripheral pixels, and calculates the ID centroid. It is supplied to the calculation circuit 282.
[0198]
The ID centroid calculation circuit 282 performs basically the same processing as that of the ID centroid calculation circuit 222 in FIG. 6, but further calculates the centroid position by the weight supplied from the weight calculation unit 281 in the centroid calculation. calculate.
[0199]
Next, a detailed configuration of the error detection unit 271 will be described with reference to FIG. Basically, the configuration is the same as that of the error detection unit 210 in FIG. 7, but a memory 291, a comparison unit 292, and a determination unit 293 are provided instead of the memory 231, the comparison unit 232, and the determination unit 233. Have been. The memory 291, the comparison unit 292, and the determination unit 293 have the same functions as the memory 231, the comparison unit 232, and the determination unit 233, respectively. Are simultaneously executed.
[0200]
Next, the ID decoding process will be described with reference to the flowchart in FIG. Note that the processing in steps S71 to S75 and S78 is the same as the processing in steps S31 to S35 and S38 described with reference to the flowchart in FIG. 21, and a description thereof will be omitted.
[0201]
Here, the error detection process started by the process of step S74 will be described with reference to the flowchart of FIG. The processes in steps S81 to S85 and steps S89 to S96 are the same as the processes in steps S51 to S55 and steps S59 to S66 in the flowchart of FIG. 23, and thus description thereof will be omitted.
[0202]
In step S86, the memory 291 stores the comparison results CP (n) and CM (n) of the comparators 182 and 184 of the comparison unit 162 of the calculation unit 142, and the comparison results CPw corresponding to the peripheral pixels, which are sensor output signals. (N) and CMw (n) are stored. Here, the comparison results CP (n) and CM (n) indicate comparison results of the target pixel, and the comparison results CPw (n) and CMw (n) indicate comparison results of a plurality of pixels around the target pixel.
[0203]
That is, when the pixel indicated by (x, y) in FIG. 29 is the pixel of interest, for example, (x-1, y-1), (x, y-1), (x + 1) surrounded by a thick line in the figure. , Y−1), (x−1, y), (x + 1, y), (x−1, y + 1), (x, y + 1), (x + 1, y + 1) corresponding to each of a total of eight pixels. , And comparison results CPw (n) and CMw (n) based on the negative inter-frame difference are stored, respectively. Therefore, in this case, the comparison result substantially stored is the comparison result corresponding to the positive / negative inter-frame difference of each of the target pixel and the peripheral pixels. The comparison result is stored. The arrangement of the peripheral pixels corresponding to the target pixel is not limited to that shown in FIG. 29. For example, except for the target pixel existing in a range of 5 × 5 pixels centered on the target pixel. The other 24 pixels may be peripheral pixels, and generally, for example, may be pixels existing in a range of (2n + 1) pixels × (2n + 1) pixels.
[0204]
In step S87, the comparing unit 292 determines that the stored comparison results CP (n) and CM (n) of the target pixel and the comparison results CPw (n) and CMw (n) of the peripheral pixels of the target pixel are all (0 , 0), (0, 1) or (1, 0). That is, the comparing unit 292 executes the process of step S57 in the flowchart of FIG. 23 on the comparison result corresponding to the target pixel and the comparison results corresponding to all the surrounding pixels.
[0205]
For example, in step S87, the comparison results CP (n) and CM (n) of the target pixel and the comparison results CPw (n) and CMw (n) of peripheral pixels of the target pixel are all (0, 0), ( (0, 1) or (1, 0), the process proceeds to step S88. In step S87, the comparison results CP (n) and CM (n) of the target pixel and the comparison results CPw (n) and CMw (n) of the peripheral pixels of the target pixel are all (0, 0), ( If not (0, 1) or (1, 0), the process proceeds to step S96.
[0206]
In step S88, the determination unit 293 determines that the stored comparison result CP (n) and CM (n) of the target pixel is (CP (n), CM (n)) ≠ (CP (n−3), CM (n). -3)) and the comparison results CPw (n) and CMw (n) corresponding to all peripheral pixels are (CPw (n), CMw (n)) ≠ (CPw (n-3), CMw ( n-3)) is determined. More specifically, the comparing unit 292 compares (CP (n), CM (n)) with (CP (n−3), CM (n−3)), and further compares (CPw) of all peripheral pixels. (N), CMw (n)) is compared with (CPw (n−3), CMw (n−3)), and the comparison result is output to the determination unit 293. Based on the comparison result, the determination unit 293 determines that (CP (n), CM (n)) ≠ (CP (n-3), CM (n-3)) and (CPw (n) , CMw (n)) ≠ (CPw (n−3), CMw (n−3)).
[0207]
In step S88, the comparison result of the target pixel is (CP (n), CM (n)) ≠ (CP (n-3), CM (n-3)), and the comparison results of all the peripheral pixels are Is determined to be (CPw (n), CMw (n)) ≠ (CPw (n−3), CMw (n−3)), the process proceeds to step S89. On the other hand, in step S88, the comparison result of the target pixel is not (CP (n), CM (n)) ≠ (CP (n−3), CM (n−3)), or all of the peripheral pixels If it is determined that the comparison result is not (CPw (n), CMw (n)) ≠ (CPw (n−3), CMw (n−3)), the process proceeds to step S96.
[0208]
In step S91, the determination unit 293 calculates the comparison result CP (n) and CM (n) of the target pixel and the comparison results CPw (n) and CMw (n) of all peripheral pixels as CP (n) = CM ( It is determined whether or not n) = CPw (n) = CMw (n) = 0. More specifically, the comparing unit 292 compares each of CP (n), CM (n), CPw (n), and CMw (n) with 0, and outputs the comparison result to the determining unit 293. Based on the comparison result, the determination unit 293 determines that the comparison results CP (n), CM (n), CPw (n), and CMw (n) are CP (n) = CM (n) = CPw (n) = It is determined whether CMw (n) = 0.
[0209]
In step S91, the comparison result CP (n) and CM (n) of the target pixel, and all the peripheral pixels CPw (n) and CMw (n) are obtained as CP (n) = CM (n) = CPw (n). If it is determined that = CMw (n) = 0, the determination unit 293 outputs a notification of no error to the ID decoding circuit 211 in step S92.
[0210]
In step S91, the comparison result CP (n) and CM (n) of the target pixel, and all the peripheral pixels CPw (n) and CMw (n) are obtained as CP (n) = CM (n) = CPw (n). If it is determined that = CMw (n) = 0, the process proceeds to step S96.
[0211]
Through the above processing, the error detection processing is simultaneously performed on the target pixel and its surrounding pixels.
[0212]
Here, the description returns to the flowchart of FIG.
[0213]
In step S76, the ID decode circuit 211 of the ID decode processing unit 144 described with reference to FIG. 25 decodes the ID data based on the comparison result between the target pixel and its surrounding pixels.
[0214]
That is, the ID decode processing unit 144 in FIG. 25 basically performs the same processing as when the sensor output signal of the target pixel is processed in the ID decode processing unit 144 in FIG. 6, but corresponds to a plurality of pixels. The following processing is executed by using the sensor output signal.
[0215]
That is, assuming that the output of the comparator 182 of the target pixel is CP (x, y), the output of the comparator 182 including its peripheral pixels is, for example, (2n−1) with the peripheral pixels at the center of the target pixel. In the case of a range of pixels × (2n−1) pixels, CPw (xn, yn), CPw (xn + 1, yn + 1), CPw (xn + 2, yn + 2),. CP (x, y)... CPw (x + n-1, y + n-1) and CPw (x + n, y + n).
[0216]
When the position of the optical beacon 11 measured at the pixel of interest moves at a time interval shorter than the time for transmitting all the signals, the output of the comparator 182 of this pixel of interest and one of its surrounding pixels becomes different. It will move to the pixel.
[0219]
Therefore, by defining a function represented by the following equation (3), the ID decoding circuit 211 recognizes the output of the comparator 182 of the target pixel.
[0218]
[Equation 3]
Figure 2004349766
Figure 2004349766
[0219]
Here, “|” is an OR operation. This is because, for example, when n is 1, 1 is detected in the comparison result of one of the pixels included in the window W centered on the target pixel (x, y) shown in FIG. Indicates that 1 has been detected in the target pixel. Therefore, by such processing, even if the blinking pattern which becomes a signal during data reception moves to the next pixel without the pixel of interest, data can be continuously received and decoded. Note that the comparison result of the comparator 184 is similarly processed.
[0220]
Then, the decoding circuit 211 sequentially supplies the decoding result to the frame memory 203. That is, as described above, the decoding circuit 211 reads out the latter half of the two-bit signal of the Manchester-encoded signal, encodes the signal into a normal signal, and encodes these signals on the image. The data is sequentially stored in the frame memory 203 corresponding to the pixel position.
[0221]
Further, the ID gravity center calculation circuit 282 supplies the position information of the ID data stored in the frame memory 203 to the ID coordinate storage memory 205 via the ID register 221 and stores it.
[0222]
Here, the “information on the peripheral pixels of the target pixel” has been described using a square window of (2n + 1) × (2n + 1), but the present invention is not limited to a square window. For example, other shapes such as a rectangle and four adjacent pixels may be used.
[0223]
The same processing is performed on the comparison result from the comparator 184.
[0224]
Here, the description returns to the flowchart of FIG.
[0225]
In step S77, a center-of-gravity calculation process is performed.
[0226]
Here, the center-of-gravity calculation processing will be described with reference to the flowchart in FIG.
[0227]
In step S101, the weight calculator 251 calculates the weight of each pixel. More specifically, the weight calculation unit 251 performs the operation of the following equation (4) for each pixel, calculates the weight of each pixel, and outputs the weight to the ID gravity center calculation circuit 282.
[0228]
(Equation 4)
Figure 2004349766
Figure 2004349766
[0229]
Here, α (i) indicates the weight of the i-th pixel of interest, and t (t) sum Is the total time during which the target pixel and its surrounding pixels receive light, that is, the time during which the comparison result from the comparator 182 was 1, or the time during which the comparison result from the comparator 184 was 1. And t d (I) is the time when the target pixel received light. That is, when the peripheral pixel corresponding to the pixel of interest (x, y) shown in FIG. 29 is indicated by the window W, the weight calculation unit 251 receives the light beacon received in the area of nine pixels indicated by the window W. The ratio of the light receiving time of the pixel of interest to the total light receiving time of No. 11 is calculated as a weight and output to the ID gravity center calculating circuit 282.
[0230]
In step S102, the ID gravity center calculation circuit 282 reads the coordinate information for each ID data stored in the ID coordinate storage memory 205, and further multiplies the weight by the weight supplied from the weight calculation unit 251.
[0231]
In step S103, the ID center-of-gravity calculation circuit 282 obtains the sum of the coordinates and divides by the number of pixels to obtain the center-of-gravity position.
[0232]
More specifically, in steps S102 and S103, the ID centroid calculation circuit 282 executes the calculation of the following equation (5), and executes the centroid calculation in consideration of the weight.
[0233]
(Equation 5)
Figure 2004349766
Figure 2004349766
[0234]
Here, Gp indicates the position of the center of gravity of the target pixel, N indicates the total number of pixels of the target pixel and its peripheral pixels, i indicates a number for identifying the target pixel and the peripheral pixels, and px (i) and py (i) indicates the x-coordinate and y-coordinate of the i-th target pixel or peripheral pixels.
[0235]
That is, in step S102, the ID gravity center calculation circuit 282 performs an operation on α (i) px (i) and α (i) py (i) in equation (5) in the range of 1 ≦ i ≦ N. In step S103, the position of the center of gravity is calculated by executing the summation calculation in equation (5).
[0236]
By calculating the center of gravity in this manner, the center of gravity is not determined only from the pixel position of each pixel, but the center of gravity is determined based on the weight corresponding to the time of light reception from the optical beacon 11, so that the center of gravity is calculated. The determined position will be determined more accurately.
[0237]
Note that the weight is added according to the time when the blinking pattern of the optical beacon 11 is received according to the above equation (4). However, since the time is a continuous variable, in the actual calculation, the discrete variable is used. Need to be converted to Therefore, the above-described calculation of the weight may use the following equation (6).
[0238]
(Equation 6)
Figure 2004349766
Figure 2004349766
[0239]
Here, c (i) is the number of data bits received by the pixel of interest or its surrounding pixels, and c (i) sum (I) is the total number of data bits received by the target pixel and its surrounding pixels. As described above, since the number of received data bits is proportional to the light receiving time of the optical beacon 11, an approximate value obtained by substantially converting the weight obtained by Expression (4) from a continuous variable to a discrete variable is obtained. Will be done.
[0240]
According to the above, since the accurate center of gravity position in consideration of the weight is obtained, as a result, it is possible to improve communication accuracy in data communication using the optical beacon and the ID recognition camera.
[0241]
The series of processes described above can be executed by hardware, but can also be executed by software. When a series of processing is executed by software, a program constituting the software may be executed by a computer built into dedicated hardware or by installing various programs to execute various functions. It is installed from a recording medium into a possible general-purpose personal computer or the like.
[0242]
As shown in FIGS. 2 and 3, this recording medium is provided not only to the PC servers 1 and the storage units 38 and 78 in which programs are recorded and provided to the user in a state where the programs are incorporated in the portable terminal 4 in advance. Magnetic disks 51 and 91 (including flexible disks) and optical disks 52 and 92 (CD-ROMs (Compact Disk-Read Only)) on which programs are recorded and distributed to provide users with programs separately from computers. Memory), DVD (including Digital Versatile Disk), magneto-optical disks 53 and 93 (including MD (Mini-Disc) (registered trademark)), or semiconductor memory 54 and 94 (including Memory Stick), etc. It is composed of media.
[0243]
In this specification, a step of describing a program recorded on a recording medium is performed in a time-series manner in the order described. Alternatively, the processing includes individually executed processing.
[0244]
Also, in this specification, a system represents the entire device including a plurality of devices.
[0245]
【The invention's effect】
According to the present invention, it is possible to improve communication accuracy in data communication using an optical beacon and an ID recognition camera.
[Brief description of the drawings]
FIG. 1 is a diagram showing a configuration of an embodiment of an information communication system to which the present invention is applied.
FIG. 2 is a block diagram illustrating a configuration of a PC server in FIG. 1;
FIG. 3 is a block diagram illustrating a configuration of the mobile terminal of FIG. 1;
FIG. 4 is a block diagram of the ID recognition camera of FIG. 3;
FIG. 5 is a block diagram illustrating a configuration of a comparison unit in FIG. 4;
FIG. 6 is a block diagram of an ID decode processing unit in FIG. 4;
FIG. 7 is a block diagram of an error detection unit in FIG. 6;
FIG. 8 is a block diagram of the optical beacon of FIG. 1;
FIG. 9 is a diagram illustrating Manchester encoding.
FIG. 10 is a diagram illustrating Manchester encoding.
FIG. 11 is another block diagram of the optical beacon of FIG. 1;
FIG. 12 is a diagram illustrating an operation in which an ID recognition camera decodes a blinking pattern.
FIG. 13 is a diagram illustrating a relationship between a blinking pattern of an optical beacon and decoded data.
FIG. 14 is a diagram illustrating a relationship between a blink pattern of an optical beacon and decoded data.
FIG. 15 is a diagram illustrating a relationship between a blinking pattern of an optical beacon and decoded data.
FIG. 16 is a diagram illustrating a relationship between a blinking pattern of an optical beacon and decoded data.
FIG. 17 is a flowchart illustrating a light emission process.
FIG. 18 is a flowchart illustrating transmission data acquisition processing.
FIG. 19 is a flowchart illustrating a comparison process.
FIG. 20 is a diagram illustrating a comparison process.
FIG. 21 is a flowchart illustrating an ID decoding process.
FIG. 22 is a flowchart illustrating a start code detection process.
FIG. 23 is a flowchart illustrating an error detection process.
FIG. 24 is a diagram illustrating an error detection process.
FIG. 25 is a block diagram illustrating another configuration of the ID decode processing unit.
FIG. 26 is a block diagram illustrating another configuration of the error detection unit.
FIG. 27 is a flowchart illustrating an ID decoding process.
FIG. 28 is a flowchart illustrating an error detection process.
FIG. 29 is a flowchart illustrating a target pixel and peripheral pixels.
FIG. 30 is a flowchart illustrating a center-of-gravity calculation process.
[Explanation of symbols]
Reference Signs List 1 PC server, 4 portable terminal, 3, 3-1 to 3-n information unit, 11, 11-1 to 11-6 optical beacon 111 ID recognition camera, 181 positive frame difference calculation unit, 182 comparator, 183 negative frame Difference calculator, 184 comparator, 210 error detector, 211 ID decode circuit, 241 error detector, 251 weight calculator 281 ID centroid calculator

Claims (9)

マンチェスタ符号化されたデータに基づいて、所定の点滅パターンで発光する送信装置により発光される光の信号を受光する受光手段と、
前記受光手段により受光された光の信号を、前記所定の点滅パターンのN倍の周波数で、かつ、フレーム単位で取得する取得手段と、
前記取得手段により取得された前記信号を記憶する記憶手段と、
前記記憶手段に記憶されたフレーム間の受光量の情報のうち、Nフレーム毎の複数のフレームの受光量の情報を演算する第1の演算手段と、
前記第1の演算結果を所定の閾値と比較する第1の比較手段と、
前記第1の比較手段による第1の比較結果に基づいて、前記マンチェスタ符号化されたデータをデコードするデコード手段と
を備えることを特徴とする情報処理装置。
Based on the Manchester-encoded data, a light receiving unit that receives a signal of light emitted by a transmitting device that emits light in a predetermined blinking pattern,
Acquiring means for acquiring a signal of light received by the light receiving means at a frequency N times the predetermined blinking pattern and in frame units;
Storage means for storing the signal acquired by the acquisition means,
First calculating means for calculating information on the amount of received light of a plurality of frames for every N frames among the information on the amount of received light between frames stored in the storage means;
First comparing means for comparing the first calculation result with a predetermined threshold value,
An information processing apparatus, comprising: decoding means for decoding the Manchester-encoded data based on a first comparison result by the first comparing means.
前記第1の演算手段は、前記記憶手段に記憶された前記Nフレーム毎のそれぞれのフレームについて、各フレームから、前記フレームより2M個前までのフレームのうち、第1フレーム乃至第Mフレームまでの受光量の和と、第(M+1)フレーム乃至第2Mフレームまでの受光量の和との差分である第1の差分を演算し、
前記第1の比較手段は、前記第1の差分を前記第1の演算結果として、前記所定の閾値である第1の閾値と比較する
ことを特徴とする請求項1に記載の情報処理装置。
The first calculation means is configured to perform, for each of the N frames stored in the storage means, a first to an M-th frame from among the frames up to 2M frames before the frame. Calculating a first difference which is a difference between the sum of the received light amounts and the sum of the received light amounts from the (M + 1) th frame to the second Mth frame;
2. The information processing apparatus according to claim 1, wherein the first comparing unit compares the first difference as a first calculation result with a first threshold that is the predetermined threshold. 3.
前記記憶手段に記憶されたフレームの受光量の情報のうち、今のフレーム、Nフレーム前のフレーム、および、2Nフレーム前のフレームのそれぞれの、前記第1の比較手段による第1の比較結果に基づいて、前記データの誤りのエラーを検出するエラー検出手段をさらに備える
ことを特徴とする請求項1に記載の情報処理装置。
In the information on the amount of received light of the frame stored in the storage unit, the first comparison result of the first comparison unit of each of the current frame, the frame before the Nth frame, and the frame before the 2Nth frame is included. The information processing apparatus according to claim 1, further comprising an error detection unit that detects an error of the data error based on the error.
前記第1の演算手段は、前記記憶手段に記憶されたフレームの受光量の情報のうち、今のフレーム、Nフレーム前のフレーム、および、2Nフレーム前のフレームの、それぞれの2M個前までのフレームのうち、第1フレーム乃至第Mフレームまでの受光量の和と、第(M+1)フレーム乃至第2Mフレームまでの受光量の和との第1の差分を演算し、
前記第1の比較手段は、前記今のフレーム、Nフレーム前のフレーム、および、2Nフレーム前のフレームの、それぞれの前記第1の差分と、前記所定の閾値である第1の閾値とを比較し、
前記エラー検出手段は、前記第1の比較手段による前記今のフレーム、Nフレーム前のフレーム、および、2Nフレーム前のフレームに対応する、前記第1の比較結果に基づいて、前記エラーを検出する
ことを特徴とする請求項3に記載の情報処理装置。
The first calculating means may include, among the information on the amount of received light of the frame stored in the storage means, up to 2M frames before the current frame, the frame before the N frame, and the frame before the 2N frame. Among the frames, a first difference between the sum of the light reception amounts of the first to Mth frames and the sum of the light reception amounts of the (M + 1) th frame to the second Mth frame is calculated,
The first comparing means compares each of the first difference between the current frame, the frame before the N frame, and the frame before the 2N frame with a first threshold value which is the predetermined threshold value. And
The error detection unit detects the error based on the first comparison result corresponding to the current frame, the frame before the N frame, and the frame before the 2N frame by the first comparison unit. The information processing apparatus according to claim 3, wherein:
前記今のフレーム、前記Nフレーム前のフレーム、および、前記2Nフレーム前のフレームの前記第1の差分のいずれかが、前記第1の閾値よりも大きく、かつ、今のフレーム、および、Nフレーム前のフレーム、の前記第1の差分のいずれもが前記第1の閾値よりも大きい場合、
または、前記今のフレーム、前記Nフレーム前のフレーム、および、前記2Nフレーム前のフレームの前記第1の差分のいずれかが、前記第1の閾値よりも大きく、かつ、Nフレーム前のフレーム、および、2Nフレーム前のフレーム、の前記第1の差分のいずれもが、前記第1の閾値よりも大きい場合、
前記エラー検出手段は、前記第1の比較結果に基づいて、前記エラーを検出する
ことを特徴とする請求項4に記載の情報処理装置。
One of the first difference between the current frame, the N-frame preceding frame, and the 2N-frame preceding frame is greater than the first threshold, and the current frame and the N-frame If any of the first differences of the previous frame is greater than the first threshold,
Alternatively, any of the first difference between the current frame, the N-frame preceding frame, and the 2N-frame preceding frame is larger than the first threshold value, and the N-frame preceding frame, And if any of the first differences between the 2N frame and the previous frame is greater than the first threshold,
The information processing apparatus according to claim 4, wherein the error detection unit detects the error based on the first comparison result.
前記記憶手段に記憶された前記Nフレーム毎のそれぞれのフレームについて、前記各フレームから、前記フレームより2M個前までのフレームのうち、第(M+1)フレーム乃至第2Mフレームまでの受光量の和と、第1フレーム乃至第Mフレームまでの受光量の和との差分である第2の差分を演算する第2の演算手段と、
前記第2の演算結果を第2の閾値と比較する第2の比較手段とをさらに備え、
前記今のフレーム、前記Nフレーム前のフレーム、および、前記2Nフレーム前のフレームの前記第1の差分のいずれかが、前記第1の閾値よりも大きく、かつ、今のフレーム、および、Nフレーム前のフレーム、の前記第1の差分のいずれもが前記第1の閾値よりも大きい場合、
前記今のフレーム、前記Nフレーム前のフレーム、および、前記2Nフレーム前のフレームの前記第1の差分のいずれかが、前記第1の閾値よりも大きく、かつ、Nフレーム前のフレーム、および、2Nフレーム前のフレーム、の前記第1の差分のいずれもが、前記第1の閾値よりも大きい場合、
前記今のフレーム、前記Nフレーム前のフレーム、および、前記2Nフレーム前のフレームの前記第2の差分のいずれかが、前記第2の閾値よりも大きく、かつ、今のフレーム、および、Nフレーム前のフレーム、の前記第2の差分のいずれもが前記第2の閾値よりも大きい場合、
前記今のフレーム、前記Nフレーム前のフレーム、および、前記2Nフレーム前のフレームの前記第2の差分のいずれかが、前記第2の閾値よりも大きく、かつ、Nフレーム前のフレーム、および、2Nフレーム前のフレーム、の前記第2の差分のいずれもが、前記第2の閾値よりも大きい場合、
または、前記第1の差分が、前記第1の閾値よりも大きく、かつ、前記第2の差分が、前記第2の閾値よりも大きい場合、
前記エラー検出手段は、前記第1の比較結果、および、前記第2の比較結果に基づいて、前記エラーを検出する
ことを特徴とする請求項5に記載の情報処理装置。
For each of the N frames stored in the storage means, the sum of the received light amounts from the (M + 1) th frame to the 2Mth frame among the frames up to 2M frames before the frame from each of the N frames. Second calculating means for calculating a second difference that is a difference from the sum of the amounts of received light from the first frame to the M-th frame;
Second comparing means for comparing the second operation result with a second threshold value,
One of the first difference between the current frame, the N-frame preceding frame, and the 2N-frame preceding frame is greater than the first threshold, and the current frame and the N-frame If any of the first differences of the previous frame is greater than the first threshold,
Any of the first difference between the current frame, the N-frame preceding frame, and the 2N-frame preceding frame is greater than the first threshold value, and the N-frame preceding frame, and If any of the first differences of the frame 2N frames before is greater than the first threshold,
Any of the second difference between the current frame, the N-frame preceding frame, and the 2N-frame preceding frame is greater than the second threshold, and the current frame and the N-frame If any of the second differences of the previous frame is greater than the second threshold,
Any of the second difference between the current frame, the N-frame preceding frame, and the 2N-frame preceding frame is greater than the second threshold value, and the N-frame preceding frame, and If any of the second differences between the frames 2N frames before is greater than the second threshold,
Alternatively, when the first difference is larger than the first threshold and the second difference is larger than the second threshold,
The information processing apparatus according to claim 5, wherein the error detection unit detects the error based on the first comparison result and the second comparison result.
マンチェスタ符号化されたデータに基づいて、所定の点滅パターンで発光する送信装置により発光される光の信号を受光する受光装置で受光された光の信号を、前記所定の点滅パターンのN倍の周波数で、かつ、フレーム単位で取得する取得ステップと、
前記取得ステップの処理で取得されたフレーム間の受光量の情報のうち、Nフレーム毎の複数のフレームの受光量の情報を演算する第1の演算ステップと、
前記第1の演算結果を所定の閾値と比較する第1の比較ステップと、
前記第1の比較ステップの処理での第1の比較結果に基づいて、前記マンチェスタ符号化されたデータをデコードするデコードステップと
を含むことを特徴とする情報処理方法。
Based on the Manchester-encoded data, the signal of the light received by the light receiving device that receives the signal of the light emitted by the transmitting device that emits the light in a predetermined blinking pattern is set to a frequency N times the predetermined blinking pattern. And an acquisition step of acquiring in frame units;
A first calculating step of calculating information on the amount of received light of a plurality of frames for every N frames, among information on the amount of received light between frames acquired in the processing of the acquiring step;
A first comparing step of comparing the first calculation result with a predetermined threshold value;
A decoding step of decoding the Manchester-encoded data based on a first comparison result in the processing of the first comparison step.
マンチェスタ符号化されたデータに基づいて、所定の点滅パターンで発光する送信装置により発光される光の信号を受光する受光装置で受光された光の信号を、前記所定の点滅パターンのN倍の周波数で、かつ、フレーム単位で取得する取得ステップと、
前記取得ステップの処理で取得されたフレーム間の受光量の情報のうち、Nフレーム毎の複数のフレームの受光量の情報を演算する第1の演算ステップと、
前記第1の演算結果を所定の閾値と比較する第1の比較ステップと、
前記第1の比較ステップの処理での第1の比較結果に基づいて、前記マンチェスタ符号化されたデータをデコードするデコードステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
Based on the Manchester-encoded data, the signal of the light received by the light receiving device that receives the signal of the light emitted by the transmitting device that emits the light in a predetermined blinking pattern is set to a frequency N times the predetermined blinking pattern. And an acquisition step of acquiring in frame units;
A first calculating step of calculating information on the amount of received light of a plurality of frames for every N frames, among information on the amount of received light between frames acquired in the processing of the acquiring step;
A first comparing step of comparing the first calculation result with a predetermined threshold value;
A decoding step of decoding the Manchester-encoded data based on a first comparison result in the processing of the first comparison step. recoding media.
マンチェスタ符号化されたデータに基づいて、所定の点滅パターンで発光する送信装置により発光される光の信号を受光する受光装置で受光された光の信号を、前記所定の点滅パターンのN倍の周波数で、かつ、フレーム単位で取得する取得ステップと、
前記取得ステップの処理で取得されたフレーム間の受光量の情報のうち、Nフレーム毎の複数のフレームの受光量の情報を演算する第1の演算ステップと、
前記第1の演算結果を所定の閾値と比較する第1の比較ステップと、
前記第1の比較ステップの処理での第1の比較結果に基づいて、前記マンチェスタ符号化されたデータをデコードするデコードステップと
をコンピュータに実行させることを特徴とするプログラム。
Based on the Manchester-encoded data, the signal of the light received by the light receiving device that receives the signal of the light emitted by the transmitting device that emits the light in a predetermined blinking pattern is set to a frequency N times the predetermined blinking pattern. And an acquisition step of acquiring in frame units;
A first calculating step of calculating information on the amount of received light of a plurality of frames for every N frames, among information on the amount of received light between frames acquired in the processing of the acquiring step;
A first comparing step of comparing the first calculation result with a predetermined threshold value;
A decoding step of decoding the Manchester-encoded data based on a first comparison result in the processing of the first comparison step.
JP2003141439A 2003-05-20 2003-05-20 Information processing apparatus ad method, recording medium, and program Withdrawn JP2004349766A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003141439A JP2004349766A (en) 2003-05-20 2003-05-20 Information processing apparatus ad method, recording medium, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003141439A JP2004349766A (en) 2003-05-20 2003-05-20 Information processing apparatus ad method, recording medium, and program

Publications (1)

Publication Number Publication Date
JP2004349766A true JP2004349766A (en) 2004-12-09

Family

ID=33529791

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003141439A Withdrawn JP2004349766A (en) 2003-05-20 2003-05-20 Information processing apparatus ad method, recording medium, and program

Country Status (1)

Country Link
JP (1) JP2004349766A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7728893B2 (en) 2004-11-02 2010-06-01 Japan Science And Technology Agency Imaging device and method for reading signals from such device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7728893B2 (en) 2004-11-02 2010-06-01 Japan Science And Technology Agency Imaging device and method for reading signals from such device

Similar Documents

Publication Publication Date Title
KR102319207B1 (en) Method, apparatus and device for determining camera attitude information, and storage medium
US10395376B2 (en) CMOS image sensor on-die motion detection using inter-pixel mesh relationship
CN111149350B (en) Generating still images using event cameras
US10135530B2 (en) Techniques for optical wireless communication
WO2020128134A1 (en) Data denoising based on machine learning
US10129495B2 (en) Apparatus and method for generating local binary patterns (LBPS)
EP2591460A1 (en) Method, apparatus and computer program product for providing object tracking using template switching and feature adaptation
CN112511821B (en) Video jamming detection method and device and storage medium
US20180005080A1 (en) Computer-readable storage medium storing image processing program and image processing apparatus
JP2010267055A (en) Apparatus and method for detection of moving object, and computer program
CN109389096B (en) Detection method and device
US9398288B2 (en) IR signal capture for images
JP6784130B2 (en) Flicker detection device and method
JP5839796B2 (en) Information processing apparatus, information processing system, information processing method, and program
JP4269220B2 (en) Information processing apparatus and method, recording medium, and program
KR20090111913A (en) Motion detecting method and apparatus
JP2004349766A (en) Information processing apparatus ad method, recording medium, and program
US9923638B1 (en) Clock tracking algorithm for twinkle VPPM in optical camera communication systems
CN107613466B (en) Indoor positioning method based on fingerprint similarity under ultra-dense wireless network
EP2827580B1 (en) Flicker detection method and flicker detection apparatus
US9317770B2 (en) Method, apparatus and terminal for detecting image stability
CN111445499A (en) Method and device for identifying target information
CN104113910B (en) Alignment system in cordless communication network
CN103581567A (en) Method and system for processing visual coding sequence and method and system for playing visual coding sequence
JP2005175872A (en) Motion vector detecting apparatus, motion vector detecting method and computer program

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060801