JP2004349765A - 情報処理装置および方法、記録媒体、並びにプログラム - Google Patents
情報処理装置および方法、記録媒体、並びにプログラム Download PDFInfo
- Publication number
- JP2004349765A JP2004349765A JP2003141438A JP2003141438A JP2004349765A JP 2004349765 A JP2004349765 A JP 2004349765A JP 2003141438 A JP2003141438 A JP 2003141438A JP 2003141438 A JP2003141438 A JP 2003141438A JP 2004349765 A JP2004349765 A JP 2004349765A
- Authority
- JP
- Japan
- Prior art keywords
- pixel
- light
- unit
- data
- signal
- 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.)
- Granted
Links
Images
Landscapes
- Studio Devices (AREA)
Abstract
【解決手段】受光部141は、所定の点滅パターンで発光する送信装置により発光される光の信号を受光する。記憶部161は、受光部141により受光された光の信号のうち、注目画素、および、注目画素の周辺の画素の複数の信号を記憶する。IDデコード処理部144は、記憶部161に記憶された、複数の信号に基づいて、注目画素において受光された信号をデコードする。本発明は、光ビーコンとID認識カメラを利用したデータの通信システムに適応することが可能である。
【選択図】 図4
Description
【発明の属する技術分野】
本発明は、情報処理装置および方法、記録媒体、並びにプログラムに関し、特に、光ビーコンとID認識カメラを利用したデータの通信における、通信精度を向上できるようにした情報処理装置および方法、記録媒体、並びにプログラムに関する。
【0002】
【従来の技術】
所定の点滅パターンで光を発することにより信号を送信する送信装置と、その送信装置により発せられる光の点滅パターンを撮像し、撮像された点滅パターンに基づいて、データ通信を実現する送受信システムが存在する。
【0003】
例えば、撮像装置として、ID(Identifier)認識カメラが、画像を撮像すると共に、上述したような送信装置として機能する光ビーコンにより発せられる信号に基づいてIDデータを送受信可能なシステムがある(例えば、特許文献1参照)。
【0004】
【特許文献1】
特願2001−325356
【0005】
【発明が解決しようとする課題】
しかしながら、上述のシステムにおいては、外乱光による干渉が生じると、ID認識カメラは、光の点滅パターンを正しく読み取ることができず、正しくデータを受信することができない状態となってしまうため、結果としてエラーが生じてしまうという課題があった。
【0006】
また、上述のシステムにおいては、送信データは点滅パターン、すなわち時間方向の光のパターンで表現されることになるために、各画素毎にデータが受信されてデコードされると、データ受信中に送信装置と受信装置間の相対的な位置関係に変化が生じた場合、データの受信途中で、光が受光される画素が、隣接位置に存在する画素へと移動してしまうので、画素単位で受光されるパターンが変化してしまい、正しくデータを受信できないという課題があった。
【0007】
また、このような現象は、送信データのデータ長が短ければ、その影響は小さいが、データ長が長くなるにしたがって影響が大きくなるため、大きなデータほどエラーが生じやすくなると言う課題があった。
【0008】
さらに、点滅パターンにより表現される信号の受光面積が大きい場合、その影響は小さいが、光ビーコンで光を発光させる部分の面積が小さかったり、また、光ビーコンとID認識カメラとの距離が離れてしまうと、相対的に受光面積が小さくなってしまうため、結果的に、その影響が大きくなり、データの受信途中でデータが途切れやすくなってしまうという課題があった。
【0009】
これらの課題に対応するため、受信したデータの位置の算出は、同じデータを受信した複数の画素の座標から重心を求めたり、外接四角形を求めたりという手法を用いることにより、受光される画素の位置の変化に対応できるようにしてきたが、これらの手法では、データを途中まで受信した画素があったとき、その途中まで信号を受信していた画素の情報は使用できない状態になってしまうため、算出される位置の精度の向上は困難なものであった。
【0010】
本発明はこのような状況に鑑みてなされたものであり、データ伝送効率の高い符号化としてマンチェスタ符号化を採用し、さらに環境光などの外乱により生じてしまうエラーを検出すると共に、受信データのデコードを各画素毎に行うときに、周辺の画素の情報をも用いることで、データ受信中に送信装置と受信装置の間で相対的に位置関係の変化が生じても、通信状態を安定させ、データを一部分でも受信した画素の情報をも用いるようにすることで、より高精度なデータの通信を可能にするものである。
【0011】
【課題を解決するための手段】
本発明の情報処理装置は、所定の点滅パターンで発光する送信装置により発光される光の信号を受光する受光手段と、受光手段により受光された光の信号のうち、注目画素、および、注目画素の周辺の画素の複数の信号を記憶する記憶手段と、記憶手段に記憶された、複数の信号に基づいて、注目画素において受光された信号をデコードするデコード手段とを備えることを特徴とする。
【0012】
前記注目画素の周辺の画素の信号は、受光手段により受光した光の受光量、または、受光量の微分値であり、デコード手段には、注目画素、または、注目画素の周辺画素の複数の信号のうちのいずれか1の信号を、注目画素において受光された信号としてデコードさせるようにすることができる。
【0013】
前記注目画素、または、注目画素の周辺の画素の全体で送信装置により発光された光の信号を受光した受光時間に対する、注目画素、または、注目画素の周辺の画素のうちの、送信装置により発光された光の信号を一部でも受光した画素の、信号を受光していた受光時間の重みを算出する重み算出手段と、重み算出手段により算出された重みを用いて、信号を受光したものとみなされた画素の位置を計測する位置計測手段とをさらにもうけるようにさせることができる。
【0014】
前記位置計測手段には、フレーム毎の注目画素、および、注目画素の周辺の画素の、それぞれの画素で受光する受光量の変化した回数をカウントすることによって、信号を受光したものとみなされた画素の位置を計測させるようにすることができる。
【0015】
本発明の情報処理方法は、所定の点滅パターンで発光する送信装置により発光される光の信号のうち、注目画素、および、注目画素の周辺の画素の複数の信号に基づいて、注目画素において受光された信号をデコードするデコードステップを含むことを特徴とする。
【0016】
本発明の記録媒体のプログラムは、所定の点滅パターンで発光する送信装置により発光される光の信号のうち、注目画素、および、注目画素の周辺の画素の複数の信号に基づいて、注目画素において受光された信号をデコードするデコードステップを含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【0017】
本発明のプログラムは、所定の点滅パターンで発光する送信装置により発光される光の信号のうち、注目画素、および、注目画素の周辺の画素の複数の信号に基づいて、注目画素において受光された信号をデコードするデコードステップをコンピュータに実行させることを特徴とするプログラム。
【0018】
本発明の情報処理装置および方法、並びにプログラムにおいては、所定の点滅パターンで発光する送信装置により発光される光の信号が受光され、受光された光の信号のうち、注目画素、および、注目画素の周辺の画素の複数の信号が記憶され、記憶された、複数の信号に基づいて、注目画素において受光された信号がデコードされる。
【0019】
本発明の情報処理装置は、独立した装置であっても良いし、情報処理を行うブロックであっても良い。
【0020】
【発明の実施の形態】
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【0021】
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
【0022】
即ち、本発明の情報処理装置は、所定の点滅パターンで発光する送信装置により発光される光の信号を受光する受光手段(例えば、図4の受光部141)と、受光手段により受光された光の信号のうち、注目画素、および、注目画素の周辺の画素の複数の信号を記憶する記憶手段(例えば、図4の記憶部161)と、記憶手段に記憶された、複数の信号に基づいて、注目画素において受光された信号をデコードするデコード手段(例えば、図25のIDデコード処理回路211)とを備えることを特徴とする。
【0023】
また、本発明の情報処理方法は、所定の点滅パターンで発光する送信装置により発光される光の信号のうち、注目画素、および、注目画素の周辺の画素の複数の信号に基づいて、注目画素において受光された信号をデコードするデコードステップ(例えば、図27のフローチャートのステップS76の処理)を含むことを特徴とする。
【0024】
図1は、本発明に係る情報通信システムの一実施の形態の構成を示すブロック図である。
【0025】
図1の情報通信システムは、PC(Personal Computer)サーバ1、コントロールユニット2、情報ユニット3−1乃至3−n、および携帯端末4から構成される。
【0026】
PCサーバ1は、コントロールユニット2に対して、情報ユニット3−1乃至3−nのそれぞれに対応する場所での、データを出力させるように指令を出す。
【0027】
コントロールユニット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データには様々なデータを含めて送信することができるので、この機能を利用することにより、案内用の音声ファイルを送信している。
【0028】
光ビーコン11−1乃至11−6は、所定の発光パターンで光を発することによりデータを送信する。このデータは、IDデータと呼ばれるものであり、光ビーコン11−1乃至11−6をそれぞれ識別するものであるが、転送可能なデータ量に余裕があるため、その他のデータを含めて送信することも可能である。例えば、IDデータに含められるデータとしては、コンテンツデータ(画像データ、音声データ、または、テキストデータなど)、リンク先データ(URL(Uniform Resource Locator)、アドレス、ホストネームなどのデータ)、および、自らが所属するグループを識別するグループ識別データなどがあるが、これらに限るものではなく、電子データとして管理できるデータであれば含めて送信することが可能である。このように、光ビーコン11−1乃至11−6は、その発光パターンを変化させることによりIDデータのみならず、様々なデータを送信することができる。
【0029】
ここで、自らが所属するグループを識別するグループ識別データについて説明する。例えば、図1においては、情報ユニット3−1乃至3−nのそれぞれを構成する複数の光ビーコン11の群はグループと称され、これらのグループを識別するデータがグループ識別データとなる。したがって、今の場合、光ビーコン11−1乃至11−6は、同一の情報ユニット3−1の同一のグループに属しているので、同一のグループ識別データを発する。
【0030】
尚、情報ユニット3−1乃至3−n、および、光ビーコン11−1乃至11−6は、特に区別する必要がない場合、単に情報ユニット3、および、光ビーコン11と称する。また、今の場合、図1には、情報ユニット3が1個に対して光ビーコン11が6個ある例について示されているが、データの送信に必要な点滅パターンが作り出せる個数であればよく、少なくとも1個以上であれば個数はいくつであっても構わない。
【0031】
携帯端末4は、送信されてくるデータを受けようとするユーザにより所持されるものであり、情報ユニット3より光ビーコン11の点滅パターンにより光で送信されてくるデータをID認識カメラ21で撮像することにより認識して、所定の処理を実行する。
【0032】
尚、ID認識カメラ21、および、光ビーコン11については、詳細を後述する。
【0033】
図2は、PCサーバ1の構成を示すブロック図である。CPU(Central Processing Unit)31は、ROM(Read Only Memory)32、または記憶部38に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)33には、CPU31が実行するプログラムやデータなどが適宜記憶される。これらのCPU31、ROM32、およびRAM33は、バス34により相互に接続されている。
【0034】
CPU31には、バス34を介して入出力インタフェース35が接続されている。入出力インタフェース35には、キーボード、マウス、マイクロホンなどよりなる入力部36、ディスプレイ、スピーカなどよりなる出力部37が接続されている。CPU31は、入力部36から入力される指令に対応して各種の処理を実行する。そして、CPU31は、処理の結果得られた画像や音声等を出力部37に出力する。
【0035】
入出力インタフェース35に接続されている記憶部38は、例えばハードディスクなどで構成され、CPU31が実行するプログラムや各種のデータを記憶する。通信部39は、図示せぬネットワークを介して通信機能を有する装置と音声ファイルなどの各種のデータの授受を行う。
【0036】
入出力インタフェース35に接続されているドライブ40は、磁気ディスク51、光ディスク52、光磁気ディスク53、或いは半導体メモリ54などが装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部38に転送され、記憶される。
【0037】
次に、図3を参照して、携帯端末4の構成について説明する。
【0038】
携帯端末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に比べて小さいものである。
【0039】
また、入力部76には、ID(Identifier)認識カメラ21が接続されており、撮像された撮像画像と、光ビーコン11が撮像された際に、その点滅パターンにより取得されるIDデータが入力される。
【0040】
ここで、図4を参照して、ID認識カメラ21の詳細な構成について説明する。受光部141は、撮像される対象となる撮像領域の光を電気信号に光電変換した後、演算部142に出力する。また、受光部141の受光素子151は、CMOS(Complementary Metal−Oxide Semiconductor)素子からなり、従来のCCD(Charge Coupled Device)素子よりも高速に動作することができる。より詳細には、受光素子151が、撮像される対象となる撮像領域の光を光電変換し、増幅器152に出力する。増幅器152は、受光素子151より入力される光電変換された電気信号を増幅して、演算部142、および、画像処理部143に出力する。
【0041】
演算部142の記憶部161は、受光部141より入力された増幅されている電気信号を撮像された画像の各画素値として、フレーム単位で、後述する比較部162における演算処理に必要なフレーム数だけ記憶し、適宜比較部162に出力する。比較部162は、記憶部161に記憶された電気信号の値に基づいて、演算処理を行い、演算結果を所定のリファレンス値(=基準信号レベル)と比較して、比較結果を出力部163に出力する。出力部163は、比較結果に基づいてセンサ出力信号を生成してIDデコード処理部144に出力する。
【0042】
画像処理部143は、受光部141より供給された撮像画像を入力部76(図3)に出力する。
【0043】
IDデコード処理部144は、センサ出力信号をデコード処理し、IDデータと位置データを生成して入力部76(図3)に出力する。
【0044】
次に、図5を参照して、比較部162の構成について説明する。
【0045】
比較部162の正フレーム間差分計算部181、および、負フレーム間差分計算部183は、光の変化を検出するために、今撮像されているフレームを基準として、2Mフレーム前までの、2Mフレーム間の差分値を求め、それぞれコンパレータ182,184に出力する。コンパレータ182,184は、入力された差分値を、それぞれ所定の閾値Ref(+),Ref(−)と比較し、比較結果に対応して1、または、0の値を出力部に供給する。より具体的には、正フレーム間差分計算部181は、差分値が閾値Ref(+)より大きいとき1を、それ以外のとき0を出力し、負フレーム間差分計算部183は、差分値が閾値Ref(−)より小さいとき1を、それ以外のとき0を出力する。尚、Mは、正の整数を示す。また、説明の便宜上、以下の説明においては、Ref(+)=−Ref(−)であるものとするが、これに限るものではない。
【0046】
より詳細には、正フレーム間差分計算部181は正の2Mフレーム間差分を以下の式(1)で示されるように計算して、コンパレータ182の端子182aに出力する。
【0047】
【数1】
【0048】
尚、式(1)におけるf(n)は、第nフレームにおける所定の画素位置の画素値を示しており、式(1)の第1項は、第nフレームから第(n−M−1)フレームの画素値のサメーションを示しており、第2項は、第(n−M)フレームから第(n−2M−1)フレームの画素値のサメーションを示している。すなわち、正フレーム間差分計算部181は、式(1)を演算することにより、時系列的に、今のフレームに近い新しい画素値の和から、今のフレームに遠い古い画素値の和を引いた値を正フレーム間差分YP(M,n)として求める。
【0049】
また、同様にして、負フレーム間差分計算部183は正の2Mフレーム間差分を以下の式(2)で示されるように計算して、コンパレータ184の端子184aに出力する。
【0050】
【数2】
【0051】
尚、式(2)の第1項は、第(n−M)フレームから第(n−2M−1)フレームの画素値のサメーションを、第2項は、第nフレームから第(n−M−1)フレームの画素値のサメーションをそれぞれ示している。すなわち、負フレーム間差分計算部183は、式(2)を演算することにより、時系列的に、今のフレームに遠い古い画素値の和から今のフレームに近い新しい画素値の和を引いた値を負フレーム間差分YM(M,n)として求める。
【0052】
さらに、コンパレータ182は、端子182aに入力されてくる正フレーム間差分値YP(M,n)と、端子182bに入力されるリファレンス値Ref(+)(リファレンス値Ref(+)は、任意に設定される値である)とを比較し、正フレーム間差分値YP(M,n)がリファレンス値Ref(+)よりも大きい場合、第nフレームにおける比較結果としてCP(n)=1を後段に出力し、逆に、正フレーム間差分値YP(M,n)がリファレンス値Ref(+)よりも小さい場合、第nフレームにおける比較結果としてCP(n)=0を後段に出力する。
【0053】
同様に、コンパレータ184は、端子184aに入力されてくる負フレーム間差分値YM(M,n)と、端子184bに入力されるリファレンス値Ref(−)(リファレンス値Ref(−)は、任意に設定される値)とを比較し、負フレーム間差分値YM(M,n)がリファレンス値Ref(−)よりも小さい場合、第nフレームにおける比較結果としてCM(n)=1を後段に出力し、逆に、負フレーム間差分値YM(M,n)がリファレンス値Ref(−)よりも大きい場合、第nフレームにおける比較結果としてCP(n)=0を後段に出力する。
【0054】
演算部142は、以上のような演算により信号を、光ビーコン11の発光により送信されてくる信号を検出する。尚、演算部142による信号の検出方法については、詳細を後述する。
【0055】
次に、図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)によってソフトウェアで構成するようにしても良い。
【0056】
フラグレジスタ212は、IDデータをデコードするために必要なフラグ類を記憶するためのレジスタであり、データレジスタ213は、デコード途中またはデコードを完了したIDを記憶しておくためのレジスタである。
【0057】
尚、図6においては、IDデコード部201は、1個のみが示されているが、処理速度の要求により、例えば、各画素毎に設けるようにしてもよいし、垂直方向、または、水平方向のライン毎に設けるようにしても良い。
【0058】
タイミング制御部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のタイミング制御を行うタイミング制御信号を生成して供給する。
【0059】
IDデコード処理部144における、IDデコード部201のエラー検出部210は、演算部142より供給されてきたセンサ出力信号、すなわち、比較部162のコンパレータ182,184より供給された、正フレーム間差分値YP(M,n)、および、負フレーム間差分値YM(M,n)に基づいて、ID認識カメラ21で撮像されて、取得されたIDデータのエラーの有無を判定し、判定結果をIDデコード回路211に供給する。IDでコード回路211は、エラー検出部210より供給された判定結果に基づいて、エラーが検出されていない場合、入力されたセンサ出力信号をデコードし、エラーが検出された場合、デコードを停止する。
【0060】
フレームメモリ203は、受光素子151、または演算部142毎に演算されたセンサ出力信号がデコードされたIDデータとフラグデータを格納するメモリであり、イメージセンサ131が1画素につき1個の演算部142をもつ場合には、センサの画像サイズであるM画素×N画素と同じサイズとなり、データ幅はフラグレジスタ212とデータレジスタ213のビット幅の和で構成される。図6においては、各画素の位置に対応する座標が、I軸とJ軸により示されており、それぞれの座標位置にIDデータとフラグデータが格納される。
【0061】
重心計算部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データと共に出力する。
【0062】
次に、図7を参照して、エラー検出部210の構成について説明する。
【0063】
エラー検出部210のメモリ231は、演算部142より供給されたセンサ出力信号を所定のフレーム間隔で、複数のフレームについて各画素毎に記憶する。より詳細には、例えば、後述する光ビーコンの点滅周波数のN倍の周波数で画像を撮像する場合、Nフレーム間隔で、例えば、mフレーム分記憶する場合、時系列的に順次m個ずつセンサ出力信号を記憶し、さらに、新しいセンサ出力信号を記憶するとき、記憶しているm個のセンサ出力信号のうち、最も古いものを削除して新しいセンサ出力信号を記憶する。結果として、メモリ231は、常にm個の最新のセンサ出力信号を記憶する。
【0064】
比較部232は、メモリ231に記憶されているm個のセンサ出力信号を用いて比較処理を実行して、比較結果を判定部233に出力する。
【0065】
判定部233は、比較部232より供給された比較結果に基づいて、エラーの有無を判定し、判定結果を出力する。尚、比較部232の比較方法、並びに、判定部233の判定方法については、詳細を後述する。
【0066】
次に、図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を発光させる。
【0067】
ここで、マンチェスタ符号化について説明する。マンチェスタ符号化とは、図9で示されるように、デジタル信号化された送信データについて、0の信号を10に、1の信号を01にそれぞれ表現する符号化方法である。ここで、1は発光部254をオンにすることを示し、0は発光部254をオフにすることを示す。
【0068】
マンチェスタ符号化された送信データには、「スタートコード」が変換されたデータの前に付されており、送信データの開始位置を確認することができるようになっている。スタートコードは、図10で示されるように、例えば、「00001」といったものである。尚、図10においては、図中左側がLSB(Least Significant Bit)であり、右側がMSB(Most Significant Bit)を示している。
【0069】
例えば、「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により制御されることになる。
【0070】
このようにマンチェスタ符号化することにより、1、または、0をとる信号は3個以上連続することが無く、各送信区間は必ず点滅することになり、長く発光部254がOFFの状態となったままになったり、発光部254がONの状態となったままになるようなことが防止され、環境光との判別も比較的容易となるので、安定した通信が可能となる。
【0071】
さらに、送信データは、ネットワークを介して供給されるものに限らず、例えば、図11で示されるように、データ送受信部251に代えて送信データ保存用メモリ291を設けて、予め送信するコマンドを記憶させるようにしてもよい。
【0072】
次に、ID認識カメラ21の動作について説明する。
【0073】
受光部141の受光素子151は、光を光電変換し、変換した電気信号を増幅部152に出力する。増幅部152は、電気信号を増幅して演算部142、および、画像処理部143に出力する。演算部142の記憶部161は、受光部141より入力された電気信号を順次記憶して、2Mフレーム分の電気信号を記憶し、いっぱいになると、最も古いフレームの電気信号を消去して、最新のフレームの電気信号を記憶する処理を繰り返して、常に最新の2Mフレーム分の電気信号を記憶しており、その2Mフレーム分の電気信号を比較部162に出力する。
【0074】
比較部162は、記憶部161に記憶されている時間的に連続する2Mフレーム分の電気信号を輝度信号として上述した式(1),式(2)のような演算処理を実行し、出力部163は、演算結果をセンサ出力信号としてIDデコード処理部144に出力する。尚、比較部162の動作については、詳細を後述する。
【0075】
画像処理部143は、受光部141より供給された画像信号を処理可能な形式に変換し、画像データとして出力する。
【0076】
次に、IDデコード処理部144の動作について説明する。
【0077】
IDデコード処理部201のエラー検出部210は、演算部142より供給されたセンサ出力信号のエラーの有無を判定し、判定結果をIDデコード回路211に出力する。
【0078】
IDデコード回路211は、エラー検出部210からのエラー判定結果に基づいて、例えば、エラーが検出された場合、以降の処理を実行せず、次のエラー判定結果を待つ。そして、IDデコード回路211は、エラーがないというエラー判定結果が送られた場合、タイミング制御部202からのセンサ出力信号のタイミングの同期を図るためのタイミング制御信号に基づいて、イメージセンサ131から入力されるセンサ出力信号より各画素のIDデータを復元する。この際、IDデコード回路211は、タイミング制御信号に応じて、フラグレジスタ212を制御して、フレームメモリ203にロードされたフラグデータを用いて、センサ出力信号からIDデータをデコードし、デコード途中またはデコードを完了したIDをデータレジスタ213に記憶させる。尚、エラー判定処理については、詳細を後述する。
【0079】
さらに、フレームメモリ203は、これらのデコード処理がなされたフラグデータとIDデータを対応する座標位置に格納する。
【0080】
重心計算部204のIDレジスタ221は、タイミング制御部202より入力される所定のIDデータがデコード部201よりデコードされたことを示すタイミング制御信号により、フレームメモリ203に今記憶されたIDデータの情報をID重心計算回路222に読み出させる。
【0081】
ID重心計算回路222は、読み出したIDデータに対応する画素の座標位置のI座標とJ座標を順次加算して、これに画素の個数の情報を付してID座標格納メモリ205に記憶させ、この処理を繰り返す。
【0082】
そして、フレームメモリ203に1フレーム分のデータが格納されたとき、ID重心計算回路222は、ID座標格納メモリ205よりID毎にI座標の和とJ座標の和を、データの個数で割ることにより重心位置の座標を位置データとして求めて、対応するIDデータと共に出力する。
【0083】
以上の動作により、例えば、図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がデコード結果として求められている。
【0084】
結果として、この受光強度の変化を上述の式(1)などにより2値化することにより1/0のビット列からなるIDデータを取得する事ができる。
【0085】
次に、演算部142によるフレーム間差分を用いた信号検出方法について説明する。
【0086】
光ビーコン11が発光することにより送信されてくる信号を検出する最も単純な方法は、受光量をある決められた閾値と比較することで2値化して、受光量を1,0のデジタル信号に変換する方法である。この方法は、最もシンプルで実装も容易であるが、周囲の明るさが変化すると、固定された閾値と比較して2値化する方法では、安定したデータ伝送は望めない。
【0087】
そこで、本発明では、光の変化を検出するのに、受光量を所定のレートで、かつ、フレーム単位で記憶部161が記憶して(サンプリングして)、時間方向に連続する複数のフレーム間の受光量の比較を行うことで、信号を安定して検出できるようにしている。
【0088】
例えば、時間が経過するにしたがって増加するフレーム番号をn、サンプリングされる各フレーム間の各画素毎の受光量をf(n)とすると、1画素の光の変化量は、Y=f(n)−f(n−1)で表され、Y>0のときに光が暗→明に、Y<0のときに光が明→暗になったことを検出したことになる。
【0089】
上述した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)により求められる。
【0090】
上述の式(1),式(2)を用いてフレーム間差分を求める場合、Mが大きいほど、光の検出感度(式(1),式(2)の演算結果の変化の鋭さ)は高くなる。しかしながら、その一方、Mが大きくなると受光側で、単位時間あたりで記憶するフレーム数、すなわち、サンプリング周波数を固定とすると、光の点滅周波数を落とさなければ、設定されたフレーム数だけ記憶することができず、結果として、データの転送効率が悪くなる。
【0091】
すなわち、図13で示されるように、横軸を時間軸、サンプリング時間(フレーム間の間隔)をΔtとして、光ビーコン11の点滅が実線の波形のようにOFFの状態からON、その後にOFFとなる場合、受光部141が各サンプリング時間に受光する受光量を縦軸に表すと、図13の1点鎖線で示されるような波形となる。ここで、受光量が変化するサンプリング区間(時刻t3乃至t4および時刻t8乃至t9)では、光ビーコン11がONにされるときの受光量に比べて受光量が小さいものの、OFFの状態よりも大きくなる。
【0092】
光ビーコン11がONにされると、受光部141の受光量が図13の実線で示されるように、サンプリング区間が時刻t4乃至t8のとき、受光量は光ビーコン11がONとなる(発光している)ときの受光量に変化し、サンプリング区間が時刻t9乃至t10のとき、受光量は光ビーコン11がOFFとなる(発光していない)ときの受光量に変化する。
【0093】
したがって、正の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サンプリング区間の受光量に対して、必ず小さい値となっている。
【0094】
これに対して、正の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))にと比較して、より感度の高い信号を検出することができる。
【0095】
もちろん、さらに多くのフレームを用いたフレーム間差分の演算を用いるようにしてもよい(例えば6フレーム間差分など)。しかしながら、差分をとるフレーム数を増やすほど、点滅周波数を遅くする必要が生じる。
【0096】
また、安定して光の変化を検出するためには、受光部141のフレームレートは光ビーコン11の点滅周波数のN倍以上の関係になければならない。ここでNは、光の変化の検出方法によって決まる値である。2フレーム間差分では、N>2であり、4フレーム間差分ではN>3である。すなわち、2Mフレーム間差分(ここでMは正の整数)の場合、N>M+1となる。ここでNは小さい値の方が、同じフレームレートでもデータ転送レートを大きくすることができるので、N=M+1とすることにより最適化されることになる。尚、以降においても、実線、1点鎖線、2点鎖線、および、3点鎖線は、それぞれ発光状態、受光量、2フレーム間差分、4フレーム間差分を示すものとする。
【0097】
ここで、M=1、すなわち、2フレーム間差分の場合にN=2以上でなければならないのは、原信号の周波数の2倍以上の周波数でサンプリングしないと、サンプリング定理からも明らかなように、サンプリング結果から原信号を復元することはできないからである。
【0098】
例えば、図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)の値が、受光量に比べて大きな値を取り、安定した検出が可能であることがわかる。
【0099】
次に、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)は小さくなってしまう。
【0100】
しかしながら、図16で示されるように、M=4,N=3の場合には、正の4フレーム間差分値が正負でそれぞれ最大値をとるとき(t5−t4,t8−t7,t11−t10,t14−t13)、演算される4フレーム間に光ビーコン11による点滅の立上がりと立下りの両方が含まれることはなく、受光信号が正負で打ち消してしまうことがないので、4フレーム間差分値は、大きな信号を得ることができる。そして、Nサンプリング毎に光ビーコン11の点滅パターンの立上がりエッジ周辺には正の最大値が、立下りエッジ周辺には負の最大値をとることがわかる。したがって、Nフレーム毎の正の4フレーム間差分値YPを用いて、マンチェスタ符号化された原信号を復元できることがわかる。
【0101】
従って、最適なNとMの組み合わせは、Mの値が大きいほど、2Mフレーム間差分値は、高い感度で変化するが、Mを大きくすると(演算に使用するフレーム数を多くすると)N>M+1の関係からNも大きくしなければならず(サンプリング数も多くしなければならず)、同じ点滅周波数で送ることのできるデータ伝送の効率が悪くなるので、演算に使用するフレーム数とサンプリング周波数とのバランスを考慮して決定する必要がある。
【0102】
本実施例では、主に2フレーム間差分、4フレーム間差分を例にあげて、説明することとする。しかしながら、本発明は、2Mフレーム間差分(Mは正の整数)について適用可能であり、Mを2または1に制限するものではない。
【0103】
また、以上においては、正のフレーム間差分についてのみ説明してきたが、負のフレーム間差分(上述の式(2)に対応する)についても同様のことが言える。尚、負のフレーム間差分については、正のフレーム間差分と同様であるので、その説明を省略する。
【0104】
次に、図17のフローチャートを参照して、光ビーコン11による送信データを送信するための発光処理について説明する。
【0105】
ステップS1において、データ送受信部251は、コントロールユニット2より送信されてくる送信データを受信すると共に、マンチェスタ符号化部252に出力する。
【0106】
ステップS2において、マンチェスタ符号化部252は、データ送受信部251より供給された送信データを、図9,図10で説明したように、マンチェスタ符号化して点滅制御部253に供給する。
【0107】
ステップS3において、点滅制御部253は、マンチェスタ符号化部252より供給された、マンチェスタ符号化されている、送信データに基づいて、発光部254の発光を制御し、その処理は、ステップS1に戻り、それ以降の処理が繰り返される。すなわち、このような制御の下で、発光部254は、送信データに対応した発光を繰り返す。また、情報ユニット3は、複数の光ビーコン11−1乃至11−6の点滅パターンを制御して、送信データを送信する。
【0108】
次に、図18のフローチャートを参照して、ID認識カメラ21による光ビーコン11の点滅により送信されてくる送信データ取得処理について説明する。
【0109】
ステップS11において、受光部142の受光素子151は、撮像される対象となる撮像領域の光を光電変換し、増幅器152に出力する。
【0110】
ステップS12において、増幅器152は、受光素子151より入力される光電変換された電気信号を増幅して、フレーム単位で演算部142に出力する。
【0111】
ステップS13において、演算部142の記憶部161は、受光部141より供給された、増幅されている電気信号、すなわち、各画素毎の画素値をフレーム単位で順次記憶する。この際、記憶部161は、2M個の複数のフレーム分の画素値を記憶することができるので、最も古いフレームの画素値を削除して、新しいフレームの画素値を順次記憶する。尚、以下の説明においては、M=2であるものとする。
【0112】
ステップS14において、比較部162は、記憶部161に記憶されている、2Mフレーム分の画素値を読み出して比較処理を実行する。
【0113】
ここで、図19のフローチャートを参照して、比較部162による比較処理を説明する。
【0114】
ステップS21において、比較部162の正フレーム間差分計算部181は、記憶部161に記憶されている、2Mフレームの情報を用いて、各画素毎に、上述した式(1)で示した正フレーム間差分YP(M,n)を計算して、コンパレータ182の端子182aに出力する。
【0115】
ステップS22において、比較部162のコンパレータ182は、端子182aに供給された正フレーム間差分YP(M,n)と、端子182bに供給されるリファレンス値Ref(+)とを比較し、正フレーム間差分YP(M,n)が、リファレンス値Ref(+)よりも大きいとき、比較結果CP(n)=1を、それ以外のとき、比較結果CP(n)=0を出力する。
【0116】
ステップS23において、比較部162の正フレーム間差分計算部183は、記憶部161に記憶されている、2Mフレームの情報を用いて、各画素毎に、上述した式(2)で示した負フレーム間差分YM(M,n)を計算して、コンパレータ184の端子184aに出力する。
【0117】
ステップS24において、比較部162のコンパレータ184は、端子184aに供給された負フレーム間差分YM(M,n)と、端子184bに供給されるリファレンス値Ref(−)とを比較し、負フレーム間差分YM(M,n)が、リファレンス値Ref(−)よりも小さいとき、比較結果CM(n)=1を、それ以外のとき、CM(n)=0を出力する。
【0118】
ステップS25において、出力部163は、コンパレータ182,184より供給された比較結果CM(n),CP(n)をIDデコード処理部144に出力する。
【0119】
ここで、図18のフローチャートの説明に戻る。
【0120】
ステップS14の比較処理が終了すると、その処理は、ステップS11に戻り、それ以降の処理が繰り返される。
【0121】
すなわち、図18のフローチャートを参照して説明した処理により、光ビーコン11が点滅して、発せられる光を受光することにより、送信されてきた、送信データを取得し、IDデコード処理部144に送信データを供給する処理を繰り返す。
【0122】
上述の処理について、さらに詳細に説明すると、図20で示されるように、ステップS11の処理で、受光部141の受光量は、時刻t1乃至t13まで、0であり、時刻t13乃至t14において、時刻t13+α乃至t14の間に受光する受光量を蓄積する。すなわち、時刻t13乃至t14の間に、光ビーコン11が発光し続けていた場合に得られる受光量を1としたとき、時刻t13乃至t14の受光量は、(t14−t(13+α))/(t14−t13)となる。
【0123】
尚、図20においては、最上段が送信データを示しており、今の場合、「スタートコード」、「データ1ビット目」として1、および、「データ2ビット目」として0が示されており、第2段目が、マンチェスタ符号化されたデータを示しており、今の場合、先頭から「000010110」と示されている。実線で示された第3段目は、光ビーコン11による発光状態を示すものであり、Hiの状態が発光している状態を示し、Lowが発光していない状態を示している。一点鎖線で示されている第4段目は、受光素子141により受光される光の受光量を示している第5段目は、正フレーム間差分を示しており、Ref(+)、および、Ref(−)が、それぞれコンパレータ182,184のリファレンス値を示している。尚、負フレーム間差分は、示されていないが、図20の正フレーム間差分を、0点となる直線を中心として反転させた値となる。
【0124】
第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で一定であるものとする。
【0125】
時刻t14乃至t15、および、時刻t15乃至t16においては、実線で示されるように、光ビーコン11が発光し続けているので、1点鎖線で示されるように、受光量は1となる。
【0126】
さらに、時刻t16乃至t17の間においては、実線で示されるように、時刻t16乃至t(16+α)の間のみ発光している状態となるので、受光量は、1点鎖線で示されるように、α/(t17−t16)となる。
【0127】
また、時刻t17乃至t19の間においては、図20の実線で示される光ビーコン11は発光していない状態となっているので、図20の1点鎖線で示されるように、受光される受光量は0となる。
【0128】
さらに、時刻t19乃至t20の間に受光される受光量は、実線で示されるように、実質的に発光していた時刻t(19+α)乃至t20の間に受光された受光量となるので、1点鎖線で示されるように、(t20−t(19+α))/(t20−t19)となる。
【0129】
また、時刻t20乃至t25の間においては、図20の実線で示される光ビーコン11は発光している状態となっているので、図20の1点鎖線で示されるように、受光される受光量は1となる。
【0130】
さらに、時刻t25乃至t26の間においては、実線で示されるように、時刻t25乃至t(25+α)の間のみ発光している状態となるので、受光量は、1点鎖線で示されるように、α/(t26−t25)となる。
【0131】
時刻t26以降においては、実線で示されるように、光ビーコン11が発光していない状態となっているので、受光量は、1点鎖線で示されるように0となる。
【0132】
そして、以上の受光量に応じて、正フレーム間差分計算部181は、上述した式(1)の演算を実行する。より詳細には、時刻t1乃至t13においては、全てのフレームにおいて、受光量f(n)が0であるので、図20の3点鎖線で示されるように、正フレーム間差分は0となる。
【0133】
時刻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の正フレーム間差分の値となる。
【0134】
同様に、時刻t14乃至t15に対応するフレームf(t15−t14)における正フレーム間差分YP(2,t15−t14)は、図20における、3点鎖線で示されるようにf(t15−t14)+f(t14−t13)−f(t13−t12)−f(t12−t11)となる。
【0135】
また、時刻t15乃至t16に対応するフレームf(t16−t15)における正フレーム間差分YP(2,t16−t15)は、図20における、3点鎖線で示されるようにf(t16−t15)+f(t15−t14)−f(t14−t13)−f(t13−t12)となる。
【0136】
さらに、時刻t16乃至t17に対応するフレームf(t17−t16)における正フレーム間差分YP(2,t17−t16)は、図20における、3点鎖線で示されるようにf(t17−t16)+f(t16−t15)−f(t15−t14)−f(t14−t13)となる。
【0137】
また、時刻t17乃至t18に対応するフレームf(t18−t17)における正フレーム間差分YP(2,t18−t17)は、図20における、3点鎖線で示されるようにf(t18−t17)+f(t17−t16)−f(t16−t15)−f(t15−t14)となる。
【0138】
以下同様に、時刻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)となる。
【0139】
これに伴い、上述した式(1)が演算されることにより求められる正フレーム間差分と正のリファレンス値Ref(+)との比較結果は、図20の3点鎖線で示されるように、今の場合、時刻t14乃至t16、および、時刻t20乃至t22において、正フレーム間差分が正のリファレンス値Ref(+)よりも大きくなるため、コンパレータ182から出力される比較結果CP(n)は、時刻t14乃至t16、および、時刻t20乃至t22において、1となり、それ以外の時刻においては、0となる。
【0140】
尚、上述した式(2)が演算されることにより求められる負フレーム間差分は、図20における3点鎖線で示される正フレーム間差分と正負が逆転した関係が示されることになるので、図示は省略する。
【0141】
また、負フレーム間差分と負のリファレンス値Ref(−)との比較結果は、正フレーム間差分と、負リファレンス値Ref(−)の正負が逆転された値(−Ref(−))との比較結果と同値となる。従って、今の場合、時刻t17乃至t19、および、時刻t26乃至t28において、負フレーム間差分は、負のリファレンス値Ref(−)よりも大きくなる(図20の3点鎖線で示されるように、正フレーム間差分が、負リファレンス値Ref(−)の正負が逆転された値(−Ref(−))よりも小さくなる)ため、コンパレータ184から出力される比較結果CM(n)は、時刻t17乃至t19、および、時刻t26乃至t28において、1となり、それ以外の時刻においては、0となる。
【0142】
次に、図21のフローチャートを参照して、IDデコード処理部144によるIDデコード処理について説明する。
【0143】
ステップS31において、IDデコード処理部144のIDデコード回路211は、カウンタ(図示せず)をリセットし、初期化する。
【0144】
ステップS32において、IDデコード処理部144のIDデコード回路211は、スタートコード検出処理を実行する。
【0145】
ここで、図22のフローチャートを参照して、IDデコード回路211によるスタートコード検出処理について説明する。
【0146】
ステップ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で入力された場合、リセットされる。
【0147】
ステップS41において、スタートコードは、例えば、上述したように「00001」であるので、図20で示されるように、光ビーコン11は、実線で示されるように点滅することになる。すなわち、光ビーコン11は、時刻t(1+α)乃至t(13+α)までの間、発光していない状態で、時刻t(13+α)乃至時刻t(t19+α)までの間、発光することにより、このスタートコードを送信データとして送信する。
【0148】
従って、図20で示されるように、時刻t1乃至t12において、12フレーム以上連続して0であると判定されないことになるので、ステップS45に進み、エラー検出部210は、スタートコードを検出していないものと判定し、その処理は、ステップS33(図21のフローチャート)に進む。
【0149】
ここで、図21のフローチャートに戻る。
【0150】
ステップS33において、スタートコードが検出されたか否かが判定され、今の場合、ステップS45において、スタートコードが検出されていないので、スタートコードが検出されていないと判定され、その処理は、ステップS32に戻る。
【0151】
すなわち、12フレーム以上連続して0であると判定されるまで、ステップS32,S33の処理が繰り返される。
【0152】
ここで、図22のフローチャートの説明に戻る。
【0153】
今の場合、例えば、図20で示される時刻t1乃至t13において、ステップS32,S33の処理が、12回繰り返されることになるので、例えば、図20の時刻t12乃至t13に対応するフレームの場合、ステップS41において、12フレーム以上連続して0であると判定されることになり、その処理は、ステップS42に進む。
【0154】
ステップS42において、IDデコード回路211は、コンパレータ182の比較結果CP(n)が1であるか否かを判定する。すなわち、スタートコードの末尾となる1が検出されたか否かが判定される。例えば、図20で示されるように、時刻t12乃至t13に対応するフレームでスタートコードの「0000」が検出された後、時刻t13乃至t14においては、比較結果CP(t14−t13)は、1ではないので、その処理は、ステップS45に進む。従って、この場合、ステップS33,S32の処理が繰り返される。
【0155】
また、例えば、さらにその後のタイミングとなる時刻t13乃至t14の場合、ステップS42において、図20で示すように、比較結果CP(t15−t14)は1であるので、スタートコードの末尾にあたる「1」であると判定され、その処理は、ステップS43に進む。
【0156】
ステップS43において、IDデコード回路211は、コンパレータ182の比較結果CP(n+1)が1であるか否かを判定する。例えば、図20で示されるように、時刻t15乃至t16においては、比較結果CP(t16−t15)が1であると判定され、その処理は、ステップS44に進む。
【0157】
ステップS44において、IDデコード回路211は、スタートコードを検出したことを認識する。
【0158】
すなわち、ステップS42における処理と同様に、ステップS43において、IDデコード回路211がスタートコードの末尾となる1が検出されたか否かを判定することにより、2フレーム連続して1が検出されたか否かを判定する。これは、今の場合、マンチェスタ符号化された信号は、3フレーム間隔で供給されており、この場合、図20で示されているように、マンチェスタ符号化された信号は、正しく受光された場合、2フレーム連続で必ず1を検出することになるので、これを検出することにより、スタートコードの末尾となる1の有無が検出される。
【0159】
ここで、図21フローチャートに戻る。
【0160】
ステップS34において、IDデコード回路211は、エラー検出部210に対して、エラー検出処理を開始させる。尚、エラー検出部210のエラー検出処理については、詳細を後述する。
【0161】
ステップS35において、IDデコード回路211は、エラー検出部210のエラー検出処理によりエラーが検出されたか否かを判定し、エラー検出部210より供給されるエラー検出結果に基づいて、エラーの有無を判定する。
【0162】
例えば、ステップS35において、エラー検出部210よりエラーが検出されていないことを示す通知が入力されてきた場合、IDデコード回路211は、エラーが検出されていないと判定し、その処理は、ステップS36に進む。
【0163】
ステップS36において、IDデコード回路211は、入力されたセンサ出力信号に基づいて、上述したようにIDデータをデコードし、フレームメモリ203に記憶させる。さらに、ID重心計算回路222は、IDレジスタ221を制御して、デコードされたIDデータに対応する座標位置を読出し、ID座標格納メモリ205に、座標位置を積算させながら順次記憶させる。
【0164】
ステップS37において、ID重心計算回路222は、ID座標格納メモリ205に記憶された座標位置をIDデータ毎に読み出して、IDデータに対応する座標位置の重心位置を求めて、すなわち、各座標位置の積算値を加算したIDデータの個数で割ることにより重心位置を求めて、これをそのIDデータの座標情報として求める。
【0165】
ステップS38において、IDデコード回路211は、供給されてくるセンサ出力信号の有無により、データが終了したか否かを判定し、例えば、データが終了していないと判定した場合、その処理は、ステップS35に戻り、それ以降の処理を繰り返す。
【0166】
ステップS38において、入力されてくるセンサ出力信号がなくなって、データが終了したと判定された場合、ステップS39において、エラー検出部210に対してエラー検出処理を停止させるように指令を出し、その処理は、ステップS32に戻り、それ以降の処理が繰り返される。
【0167】
次に、図23のフローチャートを参照して、エラー検出処理について説明する。
【0168】
ステップS51において、エラー検出部210の判定部233は、図示せぬカウンタmを2に設定する。ステップS52において、エラー検出部210の判定部233は、図示せぬカウンタkを2に初期化する。
【0169】
ステップS53において、エラー検出部210のメモリ231は、1フレーム分のセンサ出力信号が入力されたか否かを判定し、1フレーム分のセンサ出力信号が入力されるまで、その処理が繰り返される。
【0170】
ステップS53において、1フレーム分のセンサ出力信号が入力されたと判定された場合、ステップS54において、エラー検出部210の判定部233は、カウンタkを1インクリメントする。
【0171】
ステップS55において、判定部233は、カウンタkが3となったか否かを判定し、3になっていないと判定された場合、その処理は、ステップS53に戻り、それ以降の処理が繰り返される。すなわち、カウンタkが3になるまで、ステップS53乃至S55の処理が繰り返される。
【0172】
ステップS55において、カウンタkが3であると判定された場合、すなわち、1フレーム分のセンサ出力信号が供給されてきたと判定された場合、ステップS56において、メモリ231は、センサ出力信号である、演算部142の比較部162のコンパレータ182,184の比較結果CP(n),CM(n)を記憶する。
【0173】
ステップ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に進む。
【0174】
ステップ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に進む。
【0175】
ステップS59において、判定部233は、カウンタmを1インクリメントする。ステップS60において、判定部233は、カウンタmが2となっているか否かを判定し、例えば、カウンタmが2となっていると判定した場合、その処理は、ステップS61に進む。
【0176】
ステップ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であるか否かを判定する。
【0177】
ステップS61において、比較結果CP(n)とCM(n)が、CP(n)=CM(n)=0ではないと判定された場合、ステップS62において、判定部233は、エラーなしの通知をIDデコード回路211に出力する。
【0178】
ステップS63において、判定部233は、IDデコード回路211より処理の終了が指示されたか否かを判定し、処理の終了が指示されていないと判定された場合、その処理は、ステップS64に進む。
【0179】
ステップS64において、判定部233は、カウンタmを0に初期化し、その処理は、ステップS53に戻る。
【0180】
ステップ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に進む。
【0181】
ステップS60において、カウンタmが2ではないと判定された場合、ステップS65において、判定部233は、カウンタkを0に初期化し、その処理は、ステップS53に戻り、それ以降の処理が繰り返される。
【0182】
すなわち、ステップS53乃至S55の処理が繰り返されることにより、図24の点線の矢印で示されるように、スタートコードが検出された時刻t14乃至t15のフレームの次のタイミングである時刻t15乃至t16のフレームでステップS57乃至S60の処理が実行され、この処理が3フレーム毎に繰り返される。
【0183】
これは、図24で示されるように、光ビーコン11は、3フレーム連続して、同じマンチェスタ符号化された信号を点滅により送信するので、3フレーム毎に比較結果CP(n),CM(n)を読み出して、所定の値となっているか否かを判定する。
【0184】
より具体的には、まず、ステップS57において、(CP(n),CM(n))が(0,0),(0,1)、または、(1,0)であるか否かが判定される。これは、比較結果CP(n),CM(n)は、相互に正負が反転した値となるものなので、エラーが発生していなければ、(0,0),(0,1)、または、(1,0)のいずれかを取ることになるはずであるからである。
【0185】
次に、ステップS58において、(CP(n),CM(n))≠(CP(n−3),CM(n−3))であるか否かが判定される。これは、マンチェスタ符号化により、送信されてくる信号は、7フレーム以上同じ符号となることがないため、例えば、図24で示される時刻t21乃至t22と、時刻t24乃至t25のフレームに対応する比較結果(CP(n),CM(n))のように、最大でも6フレームの間に、最大値と最小値を必ず取ることになる。結果として、エラーが発生していなければ、送信するデータは、最大でも6フレームの間に、立ち上がりエッジと立ち下がりエッジがどこかに必ず含まれることになるので、3フレーム間隔で同じ信号が検出されないことになる。
【0186】
そして、ステップS60において、カウンタmが2であるかが判定されて、mが2であるとき、ステップS61において、比較結果(CP(n),CM(n))がいずれも1であるか否かが判定される。
【0187】
カウンタmが2となるときにのみ、すなわち、ステップS53乃至S60の処理が2回繰り返される毎に、ステップS61の処理が実行されるため、ステップS61の処理は、実質的には、6フレームに1回実行され、さらに、初期設定の値により、スタートコードが検出されたタイミングから6フレーム毎の信号、すなわち、データビットを構成する01、または、10の信号を構成する、後半の信号に対してなされる。
【0188】
より詳細には、例えば、図24においては、時刻t21乃至t22のフレーム、および、時刻t27乃至t28のフレームに対応する、データビットの後半の信号の比較結果(CP(n),CM(n))が1であるか否かが判定されることにより、エラーの有無が判定される。これは、データビットの後半の信号に対応する比較結果CP(n),CM(n)は、相互に正負が反転した値となるので、エラーが発生していなければ、いずれも1を取ることになるはずであるからである。
【0189】
以上の処理により、エラーが検出されるので、マンチェスタ符号化された送信データのエラーを正確に判定することができ、結果として、エラーのない正しい送信データを選択的に取得することが可能となる。
【0190】
以上の例においては、光ビーコン11が撮像されるとき、撮像された画素に変更がない場合、すなわち、画像内のそれぞれの画素に撮像されている対象となるものの位置が固定された状態であることが前提となる場合について説明してきた。つまり、光ビーコン11は、点滅により送信データを送信しているので、ID認識カメラ21が撮像する範囲が変化してしまうような場合、撮像されている画像内で光ビーコン11の位置が変化することになってしまい、正確にエラーの検出、または、データの取得ができない恐れがある。
【0191】
そこで、以下の例においては、光ビーコン11が撮像されている画素と、その周辺の複数の画素から光ビーコン11の点滅パターンを検出することにより、光ビーコン11の点滅パターンを検出することで、正確な送信データの取得を可能にするようにしてもよい。
【0192】
図25は、注目画素の周辺の複数の画素から光ビーコン11の点滅パターンを検出することにより、光ビーコン11の点滅パターンを検出できるようにしたIDデコード処理部144の構成を示すブロック図である。基本的な構成は、図6のIDデコード処理部144と同様であるが、エラー検出部210に代えてエラー検出部271が、ID重心計算回路222に代えてID重心計算回路282がそれぞれ設けられ、さらに、重み計算部251を新たに設けた点が異なる。
【0193】
エラー検出部271は、基本的に図6のエラー検出部210と同様の処理を実行するが、注目している画素(以下、注目画素と称する)のみならず、その周辺の画素(例えば、水平方向、垂直方向、および、対角方向に隣接する画素)についても同時にエラー検出処理を実行する。尚、詳細については、図26を参照して後述する。
【0194】
また、図25のIDデコード処理回路211は、図6のIDデコード処理回路211と基本的に同様の処理を実行するが、注目画素と、その周辺の画素に基づいて、デコード処理を実行する点で異なる。
【0195】
重み計算部281は、注目画素と、その周辺の画素で受光される光ビーコン11から発せられる光の受光時間に基づいて、注目画素と、その周辺の画素のそれぞれについて重みを計算し、ID重心計算回路282に供給する。
【0196】
ID重心計算回路282は、基本的な機能は、図6のID重心計算回路222と同様の処理を実行するが、さらに、重心計算において、重み計算部281より供給された重みにより、重心位置を計算する。
【0197】
次に、図26を参照して、エラー検出部271の詳細な構成について説明する。基本的には、図7のエラー検出部210と同様の構成であるが、メモリ231、比較部232、および、判定部233に代えて、メモリ291、比較部292、および、判定部293が設けられている。メモリ291、比較部292、および、判定部293は、それぞれメモリ231、比較部232、および、判定部233と同様の機能を有するものであるが、さらに、注目画素のみならず、その周辺の画素を含めた複数の画素の処理も同時に実行する。
【0198】
次に、図27のフローチャートを参照して、IDデコード処理について説明する。尚、ステップS71乃至S75,S78の処理は、図21のフローチャートを参照して説明したステップS31乃至S35,S38の処理と同様であるので、その説明は、省略する。
【0199】
ここで、図28のフローチャートを参照して、ステップS74の処理により開始されるエラー検出処理について説明する。尚、ステップS81乃至S85、および、ステップS89乃至S96の処理は、図23のフローチャートにおけるステップS51乃至S55、および、ステップS59乃至S66の処理と同様であるので、その説明は省略する。
【0200】
ステップS86において、メモリ291は、センサ出力信号である、演算部142の比較部162のコンパレータ182,184の比較結果CP(n),CM(n)、および、その周辺画素に対応する比較結果CPw(n),CMw(n)を記憶する。ここで、比較結果CP(n),CM(n)は、注目画素の比較結果を示し、比較結果CPw(n),CMw(n)は、注目画素周辺の複数の画素の比較結果を示す。
【0201】
すなわち、図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)画素の範囲に存在する画素としてもよい。
【0202】
ステップS87において、比較部292は、記憶した注目画素の比較結果CP(n),CM(n)、および、注目画素の周辺画素の比較結果CPw(n),CMw(n)が、全て(0,0),(0,1)、または、(1,0)であるか否かを判定する。すなわち、比較部292は、図23のフローチャートにおけるステップS57の処理を、注目画素に対応する比較結果と、その全ての周辺画素に対応する比較結果で実行する。
【0203】
例えば、ステップ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に進む。
【0204】
ステップ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))であるか否かを判定する。
【0205】
ステップ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に進む。
【0206】
ステップ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であるか否かを判定する。
【0207】
ステップS91において、注目画素の比較結果CP(n)とCM(n)、および、全ての周辺画素CPw(n)とCMw(n)が、CP(n)=CM(n)=CPw(n)=CMw(n)=0ではないと判定された場合、ステップS92において、判定部293は、エラーなしの通知をIDデコード回路211に出力する。
【0208】
ステップS91において、注目画素の比較結果CP(n)とCM(n)、および、全ての周辺画素CPw(n)とCMw(n)が、CP(n)=CM(n)=CPw(n)=CMw(n)=0ではないと判定された場合、その処理は、ステップS96に進む。
【0209】
以上の処理により、注目画素と、その周辺画素について、同時にエラー検出処理がなされる。
【0210】
ここで、図27のフローチャートの説明に戻る。
【0211】
ステップS76において、図25を参照して説明したIDデコード処理部144のIDデコード回路211は、注目画素と、その周辺画素の比較結果に基づいてIDデータをデコード処理する。
【0212】
すなわち、図25のIDデコード処理部144においては、基本的に、図6のIDデコード処理部144における注目画素のセンサ出力信号を処理したときと同様の処理を行うが、複数の画素に対応するセンサ出力信号を用いることにより、以下のような処理を実行する。
【0213】
すなわち、今、注目画素のコンパレータ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)となる。
【0214】
注目画素で測定している光ビーコン11の位置が、全ての信号を送信する時間よりも短い時間間隔で移動すると、この注目画素とその周辺の画素のいずれかのコンパレータ182の出力が、他の画素に移動する事になる。
【0215】
そこで、以下の式(3)で示されるような関数を定義することにより、IDデコード回路211は、注目画素のコンパレータ182の出力を認識する。
【0216】
【数3】
【0217】
ここで「|」はOR演算である。これは、例えば、nが1であった場合、図29で示した注目画素(x,y)を中心としたウィンドウWに含まれた画素のいずれかのコンパレータ182の比較結果において、1が検出されたとき、注目画素において1が検出されたことを示している。従って、このような処理により、データ受信途中で信号となる点滅パターンが、注目画素をはずれて隣の画素に移動しても、続けてデータを受信してデコードすることが可能となる。尚、コンパレータ184の比較結果についても同様に処理する。
【0218】
そして、デコード回路211は、デコード結果をフレームメモリ203に順次供給する。すなわち、上述したように、デコード回路211は、マンチェスタ符号化された信号の、2ビットの信号のうち、後半部分となるビットの信号を読み出して、通常の信号に符号化し、これらを画像上の画素位置に対応するフレームメモリ203に順次記憶させる。
【0219】
さらに、ID重心計算回路282は、IDレジスタ221を介して、フレームメモリ203に記憶されているIDデータの位置情報をID座標格納メモリ205に供給し、記憶させる。
【0220】
なお、ここでは、「注目画素の周辺画素の情報」として(2n+1)×(2n+1)の正方形ウィンドウで説明したが、正方形ウィンドウに限定するものではない。例えば長方形や4隣接画素など、他の形状であっても良い。
【0221】
また、コンパレータ184からの比較結果についても、同様の処理がなされる。
【0222】
ここで、図27のフローチャートの説明に戻る。
【0223】
ステップS77において、重心計算処理が実行される。
【0224】
ここで、図30のフローチャートを参照して、重心計算処理について説明する。
【0225】
ステップS101において、重み計算部251は、各画素の重みを計算する。より詳細には、重み計算部251は、以下の式(4)の演算を各画素について実行して、各画素の重みを計算し、ID重心計算回路282に出力する。
【0226】
【数4】
【0227】
ここで、α(i)は、i番目の注目画素の重みを示し、tsumは、注目画素と、その周辺画素が光を受光した時間、すなわち、コンパレータ182からの比較結果が1となっていた時間、または、コンパレータ184からの比較結果が1となっていた時間の総合計を示し、さらに、td(i)は、注目画素が光を受光した時間である。すなわち、重み計算部251は、図29で示される注目画素(x,y)に対応する周辺画素がウィンドウWで示されている場合、ウィンドウWで示される9画素分の領域で受光する光ビーコン11の総受光時間に対する注目画素の受光する時間の割合を重みとして計算し、ID重心計算回路282に出力する。
【0228】
ステップS102において、ID重心計算回路282は、ID座標格納メモリ205に記憶されているIDデータ毎の座標情報を読み足し、さらに、重み計算部251より供給された重みをそれぞれ乗じる。
【0229】
ステップS103において、ID重心計算回路282は、座標の総和を求めて画素数で割ることにより重心位置を求める。
【0230】
より詳細には、ID重心計算回路282は、ステップS102,S103において、以下の式(5)の計算を実行し、重みを考慮した重心計算を実行する。
【0231】
【数5】
【0232】
ここで、Gpは、注目画素の重心位置を示し、Nは、注目画素とその周辺画素の総合計画素数を示し、iは、注目画素と周辺画素を識別する番号を示し、px(i)とpy(i)は、i番目の注目画素、または、周辺画素のx座標とy座標を示す。
【0233】
すなわち、ID重心計算回路282は、ステップS102において、式(5)におけるα(i)px(i)とα(i)py(i)について、1≦i≦Nの範囲で演算を実行し、ステップS103において、式(5)におけるサメーションの演算を実行することにより重心位置を計算する。
【0234】
このように重心が計算されることにより、各画素の画素位置のみから重心が求められるのではなく、光ビーコン11から受光された時間に対応した重みに基づいて重心が求められることにより、受光された位置がより正確に求められることになる。
【0235】
尚、重みは、上述の式(4)により光ビーコン11の点滅パターンを受光した時間に対応して重みが付加されていたが、時間は連続変量であるため、実際の演算においては、離散変量に変換する必要がある。従って、上述の重みの演算は、以下の式(6)を用いるようにしてもよい。
【0236】
【数6】
【0237】
ここで、c(i)は、注目画素、または、その周辺画素が受信したデータビット数であり、csum(i)は、注目画素、および、その周辺画素が受信したデータビット数の総数である。このように、受信したデータビット数は、光ビーコン11の受光時間に比例することになるので、実質的に、式(4)で求められる重みを連続変量から離散変量へ変換した近似値が得られることになる。
【0238】
以上によれば、重みを考慮した正確な重心位置が求められるので、結果として、光ビーコンとID認識カメラを利用したデータの通信における、通信精度を向上させることが可能となる。
【0239】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行させることが可能な、例えば汎用のパーソナルコンピュータなどに記録媒体からインストールされる。
【0240】
この記録媒体は、図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を含む)などよりなるパッケージメディアにより構成される。
【0241】
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
【0242】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【0243】
【発明の効果】
本発明によれば、光ビーコンと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重心計算回路
Claims (7)
- 所定の点滅パターンで発光する送信装置により発光される光の信号を受光する受光手段と、
前記受光手段により受光された光の信号のうち、注目画素、および、前記注目画素の周辺の画素の複数の信号を記憶する記憶手段と、
前記記憶手段に記憶された、前記複数の信号に基づいて、前記注目画素において受光された信号をデコードするデコード手段と
を備えることを特徴とする情報処理装置。 - 前記注目画素の周辺の画素の信号は、前記受光手段により受光した光の受光量、または、受光量の微分値であり、前記デコード手段は、前記注目画素、または、前記注目画素の周辺画素の複数の信号のうちのいずれか1の信号を、前記注目画素において受光された信号としてデコードする
ことを特徴とする請求項1に記載の情報処理装置。 - 前記注目画素、または、前記注目画素の周辺の画素の全体で前記送信装置により発光された光の信号を受光した受光時間に対する、前記注目画素、または、前記注目画素の周辺の画素のうちの、前記送信装置により発光された光の信号を一部でも受光した画素の、信号を受光していた受光時間の重みを算出する重み算出手段と、
前記重み算出手段により算出された重みを用いて、前記信号を受光したものとみなされた画素の位置を計測する位置計測手段とをさらに備える
ことを特徴とする請求項2に記載の情報処理装置。 - 前記位置計測手段は、フレーム毎の前記注目画素、および、前記注目画素の周辺の画素の、それぞれの画素で受光する受光量の変化した回数をカウントすることによって、前記信号を受光したものとみなされた画素の位置を計測する
ことを特徴とする請求項3に記載の情報処理装置。 - 所定の点滅パターンで発光する送信装置により発光される光の信号のうち、注目画素、および、前記注目画素の周辺の画素の複数の信号に基づいて、前記注目画素において受光された信号をデコードするデコードステップを含むことを特徴とする情報処理方法。
- 所定の点滅パターンで発光する送信装置により発光される光の信号のうち、注目画素、および、前記注目画素の周辺の画素の複数の信号に基づいて、前記注目画素において受光された信号をデコードするデコードステップを含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
- 所定の点滅パターンで発光する送信装置により発光される光の信号のうち、注目画素、および、前記注目画素の周辺の画素の複数の信号に基づいて、前記注目画素において受光された信号をデコードするデコードステップをコンピュータに実行させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003141438A JP4269220B2 (ja) | 2003-05-20 | 2003-05-20 | 情報処理装置および方法、記録媒体、並びにプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003141438A JP4269220B2 (ja) | 2003-05-20 | 2003-05-20 | 情報処理装置および方法、記録媒体、並びにプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004349765A true JP2004349765A (ja) | 2004-12-09 |
JP4269220B2 JP4269220B2 (ja) | 2009-05-27 |
Family
ID=33529790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003141438A Expired - Lifetime JP4269220B2 (ja) | 2003-05-20 | 2003-05-20 | 情報処理装置および方法、記録媒体、並びにプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4269220B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005318005A (ja) * | 2004-04-26 | 2005-11-10 | Sony Corp | 情報処理装置 |
US7728893B2 (en) | 2004-11-02 | 2010-06-01 | Japan Science And Technology Agency | Imaging device and method for reading signals from such device |
-
2003
- 2003-05-20 JP JP2003141438A patent/JP4269220B2/ja not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005318005A (ja) * | 2004-04-26 | 2005-11-10 | Sony Corp | 情報処理装置 |
US7728893B2 (en) | 2004-11-02 | 2010-06-01 | Japan Science And Technology Agency | Imaging device and method for reading signals from such device |
Also Published As
Publication number | Publication date |
---|---|
JP4269220B2 (ja) | 2009-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10395376B2 (en) | CMOS image sensor on-die motion detection using inter-pixel mesh relationship | |
CN111149350B (zh) | 使用事件相机生成静态图像 | |
US10135530B2 (en) | Techniques for optical wireless communication | |
CN112511821B (zh) | 视频卡顿检测方法、装置和存储介质 | |
US10129495B2 (en) | Apparatus and method for generating local binary patterns (LBPS) | |
US10339418B2 (en) | Computer-readable storage medium storing image processing program and image processing apparatus | |
JP2011118834A (ja) | 情報処理装置、情報処理方法およびプログラム | |
JP2010267055A (ja) | 動体検出装置と動体検出方法およびコンピュータ・プログラム | |
CN109389096B (zh) | 检测方法和装置 | |
JP6784130B2 (ja) | フリッカ検出装置及び方法 | |
JP5839796B2 (ja) | 情報処理装置、情報処理システム、情報処理方法及びプログラム | |
US20140247364A1 (en) | Ir signal capture for images | |
KR20090111913A (ko) | 모션 검출 방법 및 장치 | |
JP4269220B2 (ja) | 情報処理装置および方法、記録媒体、並びにプログラム | |
EP2827580B1 (en) | Flicker detection method and flicker detection apparatus | |
JP2004349766A (ja) | 情報処理装置および方法、記録媒体、並びにプログラム | |
JP2008276613A (ja) | 移動体判定装置、コンピュータプログラム及び移動体判定方法 | |
CN104113910B (zh) | 无线通信网络中的定位系统 | |
CN111445499A (zh) | 用于识别目标信息的方法及装置 | |
CN103581567A (zh) | 可视编码序列处理方法及其系统、可视编码序列播放及其系统 | |
JP2013120412A (ja) | 物体検出装置、監視カメラ、及び物体検出方法 | |
US20130265230A1 (en) | Image positioning method and interactive imaging system using the same | |
US9239261B2 (en) | Ambient light sensing device and method | |
JP2003345376A (ja) | 情報処理装置および方法、送信装置および方法、情報処理システム、記録媒体、並びにプログラム | |
JP5884759B2 (ja) | 画像処理装置、画像処理方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060517 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081030 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081106 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090105 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090129 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090211 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120306 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120306 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120306 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130306 Year of fee payment: 4 |