位置検出装置、それにおける位置の検出をコンピュータに実行させるためのプログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体
【課題】GPSの使用が困難な場所でも位置および方位・傾きを検出可能な位置検出装置を提供する。
【解決手段】位置検出手段2は、カメラ1が撮影した2次元バーコードの画像Gを2次元バーコードを正面から正対して見たときの画像に補正して2次元バーコードに対するカメラ1の配置方向に関する方向情報を検出する。また、位置検出手段2は、補正した画像に基づいて、2次元バーコードに記録された2次元バーコードの位置情報および実際のサイズを読み出すとともに、画像のサイズを検出する。そして、位置検出手段2は、実際のサイズと画像のサイズとのサイズ比を演算し、記憶手段4からサイズ比と距離との対応関係を示す対応表を読み出し、その読み出した対応表を参照して、演算したサイズ比に対応する距離を検出する。その後、位置検出手段2は、位置情報、方向情報および距離に基づいて、カメラ1の位置を検出する。
【解決手段】位置検出手段2は、カメラ1が撮影した2次元バーコードの画像Gを2次元バーコードを正面から正対して見たときの画像に補正して2次元バーコードに対するカメラ1の配置方向に関する方向情報を検出する。また、位置検出手段2は、補正した画像に基づいて、2次元バーコードに記録された2次元バーコードの位置情報および実際のサイズを読み出すとともに、画像のサイズを検出する。そして、位置検出手段2は、実際のサイズと画像のサイズとのサイズ比を演算し、記憶手段4からサイズ比と距離との対応関係を示す対応表を読み出し、その読み出した対応表を参照して、演算したサイズ比に対応する距離を検出する。その後、位置検出手段2は、位置情報、方向情報および距離に基づいて、カメラ1の位置を検出する。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、位置検出装置、それにおける位置の検出をコンピュータに実行させるためのプログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体に関し、特に、マークの画像データを用いて位置を検出する位置検出装置、それにおける位置の検出をコンピュータに実行させるためのプログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体に関するものである。
【背景技術】
【0002】
従来、GPS(Global Positioning System)を搭載した携帯電話機が知られている(特許文献1)。この携帯電話機は、GPSによって自己の位置を検出し、その検出した位置を管理サーバへ送信する。このように、従来、GPSによって自己の位置を検出して管理サーバへ知らせる携帯電話機が知られている。
【0003】
また、街頭の各所に設置された2次元バーコードをカメラによって撮影して自己の位置を検出する携帯電話機が知られている(特許文献2)。この2次元バーコードは、設置場所の正確な位置を示す情報として住所の情報および経緯度の情報を含む。そして、携帯電話機は、撮影した2次元バーコードに記録された設置場所の正確な位置情報を読み取り、その読み取った設置場所の正確な位置情報を自己の位置情報とする。
【特許文献1】特開2006−236160号公報
【特許文献2】特開2005−341369号公報
【非特許文献1】出口浩一郎著「画像と空間」,p.48−p.53.
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかし、GPSで測位を行なう従来の携帯電話機は、GPSによって自己の位置を検出するため、地下街およびビルの谷間等の電波が伝搬し難い場所では自己の位置を検出し難いという問題がある。また、GPSだけでは、方位・傾きを検出できない。
【0005】
一方、2次元バーコードで測位を行なう従来の携帯電話機は、2次元バーコードの位置を自己の位置とするため、検出した自己の位置の精度が低下するという問題がある。すなわち、2次元バーコードと携帯電話機との距離を考慮せずに2次元バーコードの位置を携帯電話機の位置とするため、携帯電話機が2次元バーコードから遠い位置で2次元バーコードを撮影する程、携帯電話機の位置の精度が低下する。
【0006】
そこで、この発明は、かかる問題を解決するためになされたものであり、その目的は、GPSの使用が困難な場所でも位置および方位・傾きを検出可能な位置検出装置を提供することである。
【0007】
また、この発明の別の目的は、位置および方位・傾きを精度良く検出可能な位置検出装置を提供することである。
【課題を解決するための手段】
【0008】
この発明によれば、位置検出装置は、撮影器と、画像処理手段と、距離決定手段と、検出手段とを備える。撮影器は、マークを撮影する。画像処理手段は、撮影器によって撮影されたマークの画像をマークを正面から正対して見たときの画像に補正し、その補正結果に基づいてマークに対して当該位置検出装置が存在する向き・傾きに関する方向情報を検出するとともに、補正された画像に基づいてマークに記録されたマークの実際のサイズ、補正された画像のサイズおよびマークに記録されたマークの位置および方位・傾き情報を検出する画像処理を行なう。距離決定手段は、マークの実際のサイズと画像のサイズとのサイズ比を演算し、その演算したサイズ比と距離との対応関係に基づいて、マークと当該位置検出装置との距離を決定する距離決定処理を行なう。検出手段は、マークの位置情報、方向情報および距離に基づいて、当該位置検出装置の位置および方位・傾きを検出する。
【0009】
好ましくは、距離決定手段は、サイズ比と距離との対応関係を示す対応表を保持しており、サイズ比を演算すると、対応表を参照して、演算したサイズ比に対応する距離をマークと当該位置検出装置との距離として検出する。
【0010】
好ましくは、マークは、第1および第2のマークを含む。第1のマークは、実際のサイズおよび位置情報が記録される。第2のマークは、方位・傾き情報が記録される。画像処理手段は、第1および第2のマークの各々に対して画像処理を行ない、方向情報、実際のサイズ、画像のサイズおよび位置情報に加え、方位・傾き情報を検出する。距離決定手段は、画像処理手段による画像処理の結果に基づいて、距離決定処理を行なう。検出手段は、位置情報、方向情報、距離および方位・傾き情報に基づいて、当該位置検出装置の位置および方位・傾きを検出する。
【0011】
好ましくは、撮影器は、複数のマークを撮影する。画像処理手段は、撮影器によって撮影された複数のマークの複数の画像の各々に対して画像処理を行なう。距離決定手段は、画像処理手段による画像処理の結果に基づいて、距離決定処理を行ない、複数のマークと当該位置検出装置との複数の距離を検出する。検出手段は、複数のマークの複数の位置情報、複数のマークに対して当該位置検出装置が存在する向き・傾きに関する複数の方向情報、および複数の距離に基づいて、当該位置検出装置の位置および方位・傾きを検出する。
【0012】
好ましくは、検出手段は、複数の位置および方位・傾き情報、複数の方向情報および複数の距離に基づいて当該位置検出装置の複数の位置および方位・傾きを検出し、その検出した複数の位置および方位・傾きを複数のマークの実際のサイズによって重み付け平均し、当該位置検出装置の位置および方位・傾きを検出する。
【0013】
好ましくは、検出手段は、方位・傾きを取得または推定できるとき、実際のサイズおよび位置情報が記録されたマークから当該位置検出装置の位置および方位・傾きを検出する。
【0014】
好ましくは、検出手段は、位置情報を取得または推定できるとき、実際のサイズおよび方位・傾き情報が記録されたマークから当該位置検出装置の位置および方位・傾きを検出する。
【0015】
好ましくは、マークの位置情報は、絶対位置情報からなる。
【0016】
好ましくは、位置検出装置は、表示手段をさらに備える。表示手段は、検出された当該位置検出装置の位置および方位・傾きを表示する。
【0017】
好ましくは、撮影器、画像処理手段、距離決定手段、検出手段および表示手段は、携帯情報端末に搭載される。そして、画像処理手段、距離決定手段、および検出手段は、携帯情報端末の使用開始に応じて、起動される。
【0018】
好ましくは、位置検出装置は、GPS受信機をさらに備える。GPS受信機は、GPS信号を受信する。そして、画像処理手段、距離決定手段、および検出手段は、GPS受信機がGPS信号を受信できなくなると、起動される。
【0019】
好ましくは、撮影器は、当該位置検出装置が最も安定しているときにマークを撮影する。
【0020】
また、この発明によれば、コンピュータに実行させるためのプログラムは、位置検出装置における位置の検出をコンピュータに実行させるためのプログラムであって、画像処理手段が、撮影器によって撮影されたマークの画像をマークを正面から正対して見たときの画像に補正する補正処理を実行する第1のステップと、画像処理手段が、第1のステップにおける補正結果に基づいてマークに対して位置検出装置が存在する向き・傾きに関する方向情報を検出するとともに、補正された画像に基づいてマークに記録されたマークの実際のサイズ、補正された画像のサイズおよびマークに記録されたマークの位置および方位・傾き情報を検出する画像処理を実行する第2のステップと、距離決定手段が、マークの実際のサイズと画像のサイズとのサイズ比を演算し、その演算したサイズ比と距離との対応関係に基づいて、マークと位置検出装置との距離を決定する距離決定処理を実行する第3のステップと、検出手段が、マークの位置情報、方向情報および距離に基づいて、位置検出装置の位置および方位・傾きを検出する第4のステップとをコンピュータに実行させるためのプログラムである。
【0021】
好ましくは、画像処理手段は、第2のステップにおいて、マークの絶対位置情報を検出し、検出手段は、第4のステップにおいて、マークの絶対位置情報を用いて位置検出装置の位置および方位・傾きを検出する。
【0022】
好ましくは、画像処理手段は、第1のステップにおいて、撮影器によって撮影された複数のマークの複数の画像の各々に対して補正処理を実行するとともに、第2のステップにおいて、補正処理の結果に基づいて、画像処理を実行し、距離決定手段は、第3のステップにおいて、画像処理の結果に基づいて、距離決定処理を行ない、複数のマークと位置検出装置との複数の距離を検出し、検出手段は、第4のステップにおいて、複数のマークの複数の位置情報、複数のマークに対して位置検出装置が存在する向き・傾きに関する複数の方向情報、および複数の距離に基づいて、位置検出装置の位置および方位・傾きを検出する。
【0023】
好ましくは、検出手段は、第4のステップにおいて、複数の位置情報、複数の方向情報および複数の距離に基づいて当該位置検出装置の複数の位置および方位・傾きを検出し、その検出した複数の位置および方位・傾きを複数のマークの実際のサイズによって重み付け平均し、位置検出装置の位置および方位・傾きを検出する。
【0024】
好ましくは、表示手段が、検出された位置検出装置の位置および方位・傾きを表示する第5のステップをさらにコンピュータに実行させる。
【0025】
好ましくは、当該プログラムは、携帯情報端末に搭載され、第1のステップから第5のステップは、携帯情報端末の使用開始に応じて実行される。
【0026】
好ましくは、当該プログラムは、携帯情報端末に搭載され、第1のステップから第5のステップは、携帯情報端末がGPS信号を受信できなくなると、実行される。
【0027】
好ましくは、当該プログラムは、携帯情報端末に搭載され、第1のステップから第5のステップは、携帯情報端末において位置情報を必要とするアプリケーションソフトウェアが起動されると、実行される。
【0028】
さらに、この発明によれば、プログラムを記録したコンピュータ読み取り可能な記録媒体は、請求項11から請求項18のいずれか1項に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【0029】
この発明においては、位置検出装置は、マークを撮影し、その撮影したマークの画像に基づいて、マークと位置検出装置との距離、マークの配置位置およびマークに対する位置検出装置の配置方向を検出するとともに、その検出した距離、配置方向およびマークの位置情報に基づいて位置検出装置の位置を検出する。つまり、位置検出装置は、マークを基準として自己の位置を検出する。
【0030】
したがって、この発明によれば、GPSが使用できない場所においても位置を検出できる。
【0031】
また、この発明によれば、マークを基準として位置検出装置の位置が検出されるので、2次元バーコードの位置をそれを撮影したカメラ(携帯電話機)の位置とする場合に比べ、位置を精度良く検出できる。
【発明を実施するための最良の形態】
【0032】
本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。
【0033】
図1は、この発明の実施の形態による位置検出装置の構成を示す概略ブロック図である。図1を参照して、この発明の実施の形態による位置検出装置10は、カメラ1と、位置検出手段2と、受付手段3と、記憶手段4と、ディスプレイ5と、GPS受信機6と、加速度センサ7とを備える。なお、位置検出装置10は、たとえば、携帯電話機に搭載される。
【0034】
カメラ1は、位置検出手段2から撮影指示PHGを受けると、後述する2次元バーコードを撮影し、その撮影した2次元バーコードの画像Gを位置検出手段2へ出力する。
【0035】
位置検出手段2は、位置検出装置10が搭載された携帯電話機の位置情報PSFGをGPS受信機6から受け、位置検出装置10が搭載された携帯電話機の加速度ACCを加速度センサ7から受け、携帯電話機が使用状態であることを示す信号USEまたは携帯電話機において位置情報を必要とするアプリケーションソフトウェアが起動されたことを示す信号ONを携帯電話機の処理部(図示せず)から受ける。
【0036】
そして、位置検出手段2は、加速度センサ7から受けた加速度ACCに基づいて、携帯電話機のユーザの歩行リズムを検知し、携帯電話機のユーザの歩行周期から携帯電話機が最も安定しているタイミングを検出する。より具体的には、位置検出手段2は、加速度ACCがしきい値ACC_TH以下である期間を内蔵したタイマーによって計測し、その計測した期間が一定期間Tに達したタイミングを携帯電話機が最も安定しているタイミングとして検出する。なお、しきい値ACC_THは、位置検出手段2に予め設定されている。
【0037】
そうすると、位置検出手段2は、位置検出装置10の位置の検出を開始する開始条件を満足したか否かを判定する。そして、位置検出手段2は、開始条件を満足し、携帯電話機が最も安定しているタイミングを検出すると、撮影指示PHGを生成してカメラ1へ出力する。この場合、位置検出手段2は、GPS受信機6から位置情報PSFGを受信しなくなり、その後、一定時間が経過したときに開始条件を満足したと判定する。また、位置検出手段2は、携帯電話機の処理部(図示せず)から信号USEを受けると、開始条件を満足したと判定する。さらに、位置検出手段2は、携帯電話機の処理部(図示せず)から信号ONを受けると、開始条件を満足したと判定する。
【0038】
また、位置検出手段2は、カメラ1から画像Gを受け、2次元バーコードの実際のサイズACSn、画像GのサイズGSnおよび距離Lnからなる数値列[ACSn,GSn,Ln](nは2以上の整数)および表示指示DSPを受付手段3から受ける。
【0039】
そして、位置検出手段2は、受付手段3から受けた数値列[ACSn,GSn,Ln]の実際のサイズACSnおよび画像GのサイズGSnに基づいて、実際のサイズACSnと画像GのサイズGSnとのサイズ比RSn(=GSn/ACSn)を演算し、その演算したサイズ比RSnに距離Lnを対応付ける。位置検出手段2は、この処理をn回実行し、サイズ比RSnと距離Lnとの対応表TBLを作成するとともに、その作成した対応表TBLを記憶手段4に記憶する。
【0040】
さらに、位置検出手段2は、後述する方法によって、画像Gが2次元バーコードの画像であるか否かを判定する。そして、位置検出手段2は、画像Gが2次元バーコードの画像であると判定すると、画像Gを正面から正対して見たときの画像に補正し、その補正した画像GHのサイズGSSを後述する方法によって計測する。なお、位置検出手段2は、画像Gが2次元バーコードの画像でないと判定したとき、位置検出動作を停止する。
【0041】
位置検出手段2は、画像Gを補正すると、その補正結果に基づいて、2次元バーコードに対して携帯電話機が存在する向き・傾きに関する方向情報IFHKを後述する方法によって検出する。また、位置検出手段2は、画像GH(=補正した画像G)に基づいて、2次元バーコードに記録された2次元バーコードの実際のサイズACSRおよび位置情報PSBCを読み出す。
【0042】
そうすると、位置検出手段2は、読み出した2次元バーコードの実際のサイズACSRと計測した画像GHのサイズGSSとのサイズ比RSS(=GSS/ACSR)を演算する。そして、位置検出手段2は、記憶手段4から対応表TBLを読み出し、その読み出した対応表TBLを参照して、サイズ比RSSに対応する距離Lを検出する。その後、位置検出手段2は、位置情報PSBC、方向情報IFHKおよび距離Lに基づいて、後述する方法によって、位置検出装置10(=携帯電話機)の位置PSおよび方位・傾きを検出する。なお、位置検出手段2は、2次元バーコードが配置された方位および2次元バーコードの設置面の傾きに関する方位・傾き情報を予め保持しているので、その保持している方位・傾き情報および方向情報IFHKを用いて位置検出装置10(=携帯電話機)の方位・傾きも検出できる。
【0043】
位置検出手段2は、位置PSを検出した後に受付手段3から表示指示DSPを受けると、記憶手段4から地図データMAPを読み出し、その読み出した地図データMAPに検出した位置PSを記載してディスプレイ5へ出力する。
【0044】
受付手段3は、たとえば、携帯電話機の数字および文字等のボタンからなり、2次元バーコードの実際のサイズACSn、画像GのサイズGSnおよび距離Lnを受付け、その受付けた実際のサイズACSn、画像GのサイズGSnおよび距離Lnを位置検出手段2へ出力する。これは、携帯電話機のユーザが2次元バーコードが配置された地下街を始めて訪れたときに、その地下街に表示された実際のサイズACSn、画像GのサイズGSnおよび距離Lnを位置検出装置10に入力する場合を想定したものである。しかし、実際のサイズACSn、画像GのサイズGSnおよび距離Lnの入力は、煩雑であるので、この発明においては、実際のサイズACSn、画像GのサイズGSnおよび距離Lnを格納したデータベースを地下街に設置しておき、携帯電話機のユーザは、携帯電話機を用いてそのデータベースから実際のサイズACSn、画像GのサイズGSnおよび距離Lnを受信して位置検出装置10へ入力するようにしてもよい。
【0045】
また、受付手段3は、表示指示DSPを受付け、その受付けた表示指示DSPを位置検出手段2へ出力する。
【0046】
記憶手段4は、対応表TBLおよび地図データMAPを記憶する。ディスプレイ5は、位置検出手段2から受けた地図を表示する。
【0047】
GPS受信機6は、GPS衛星から位置検出装置10が搭載された携帯電話機の経緯度を受信し、その受信した経緯度に基づいて、公知の方法によって携帯電話機の位置情報PSFGを演算し、その演算した位置情報PSFGを位置検出手段2へ出力する。
【0048】
加速度センサ7は、位置検出装置10が搭載された携帯電話機の加速度ACCを計測し、その計測した加速度ACCを位置検出手段2へ出力する。
【0049】
図2は、図1に示す位置検出手段2の構成を示す機能ブロック図である。図2を参照して、位置検出手段2は、制御手段21と、画像処理手段22と、距離決定手段23と、検出手段24とを含む。
【0050】
制御手段21は、数値列[ACSn,GSn,Ln]および表示指示DSPを受付手段3から受け、携帯電話機の処理部から信号ON,USEを受け、GPS受信機6から位置情報PSFGを受け、加速度センサ7から加速度ACCを受け、検出手段24から位置PSを受ける。
【0051】
そして、制御手段21は、数値列[ACSn,GSn,Ln]の2次元バーコードの実際のサイズACSnおよび画像GのサイズGSnに基づいて、サイズ比RSnを演算し、演算したサイズ比RSnに距離Lnを対応付ける。制御手段21は、この処理をn回実行し、対応表TBLを作成する。そして、制御手段21は、その作成した対応表TBLを記憶手段4に記憶する。
【0052】
また、制御手段21は、加速度センサ7から受けた加速度ACCに基づいて、上述した方法によって、携帯電話機が最も安定しているタイミングを検出する。そして、制御手段21は、上述した方法によって、位置検出装置10(=携帯電話機)の位置の検出を解しする開始条件を満たしたと判定し、かつ、携帯電話機が最も安定しているタイミングを検出すると、撮影指示PHGを生成してカメラ1へ出力する。
【0053】
さらに、制御手段21は、検出手段24から位置PSを受け、受付手段3から表示指示DSPを受けると、地図データMAPを記憶手段4から読み出し、その読み出した地図データMAPに位置PSを記載する。そして、制御手段21は、位置PSを記載した地図をディスプレイ5へ出力する。
【0054】
画像処理手段22は、カメラ1から画像Gを受け、その受けた画像Gに基づいて、後述する方法によって、画像Gが2次元バーコードの画像であるか否かを判定する。そして、画像処理手段22は、画像Gが2次元バーコードの画像であると判定すると、画像Gを正面から正対して見たときの画像に補正し、その補正した画像GHのサイズGSSを後述する方法によって計測する。なお、画像処理手段22は、画像Gが2次元バーコードの画像でないと判定したとき、画像処理の動作を停止する。
【0055】
画像処理手段22は、画像Gを補正すると、その補正結果に基づいて、2次元バーコードに対して携帯電話機が存在する向き・傾きに関する方向情報IFHKを後述する方法によって検出する。また、画像処理手段22は、画像GHに基づいて、2次元バーコードに記録された2次元バーコードの実際のサイズACSRおよび位置情報PSBCを読み出す。
【0056】
そうすると、画像処理手段22は、計測した画像GHのサイズGSSと読み出した実際のサイズACSRとを距離決定手段23へ出力し、検出した方向情報IFHKと読み出した位置情報PSBCとを検出手段24へ出力する。
【0057】
距離決定手段23は、画像GHのサイズGSSおよび2次元バーコードの実際のサイズACSRを画像処理手段22から受けると、サイズGSSと実際のサイズACSRとのサイズ比RSS(=GSS/ACSR)を演算する。そして、距離決定手段23は、記憶手段4から対応表TBLを読み出し、その読み出した対応表TBLを参照して、サイズ比RSSに対応する距離Lを検出する。そうすると、距離決定手段23は、その検出した距離Lを2次元バーコードと携帯電話機との距離として検出手段24へ出力する。
【0058】
検出手段24は、位置情報PSBCおよび方向情報IFHKを画像処理手段22から受け、距離Lを距離決定手段23から受ける。そして、検出手段24は、位置情報PSBC、方向情報IFHKおよび距離Lに基づいて、後述する方法によって、位置検出装置10(=携帯電話機)の位置PSおよび方位・傾きを検出し、その検出した位置PSおよび方位・傾きを制御手段21へ出力する。なお、検出手段24は、2次元バーコードが配置された方位および2次元バーコードの設置面の傾きに関する方位・傾き情報を予め保持しているので、その保持している方位・傾き情報および方向情報IFHKを用いて位置検出装置10(=携帯電話機)の方位・傾きも検出できる。
【0059】
図3は、画像処理の方法を説明するための図である。図3を参照して、画像処理手段22は、画像Gをカメラ1から受け、その受けた画像Gに対してグレースケール変換を施し、そのグレースケール変換を施した画像を適応型閾値処理によって2値化し、画像G1を取得する。この場合、適応型閾値処理は、グレースケール変換を施した画像G内のドット模様が識別可能なように閾値を決定して画像Gを処理するものである。
【0060】
そして、画像処理手段22は、2値化した画像G1に対して連結成分処理を施し、画像G1を構成する複数の連結成分にラベリングを行なう。より具体的には、画像処理手段22は、同じ値を持つ画素が互いに連結して1つの塊を形成している領域REG1〜REG12を複数の連結成分として抽出し、その抽出した複数の連結成分にそれぞれラベルLB1〜LB12を振り分ける(図3の(a)参照)。これによって、複数の連結成分REG1〜REG12の各々が2次元バーコードの候補領域として抽出される。
【0061】
画像処理手段22は、エッジ抽出フィルタを内蔵しており、連結成分処理した画像G1からエッジ抽出フィルタを用いて複数の連結成分REG1〜REG12の複数の輪郭PRF1〜PRF12を抽出する。より具体的には、画像処理手段22は、エッジ抽出フィルタを用いて、隣り合う画素の濃度値を引き算して複数の連結成分REG1〜REG12の複数の輪郭PRF1〜PRF12を抽出する(図3の(b)参照)。なお、図3の(b)においては、各輪郭PRF1〜PRF12を見易くするために、各連結成分REG1〜REG12の内部における濃度値の引き算の結果を省略している。
【0062】
そして、画像処理手段22は、輪郭PRF1〜PRF12を抽出すると、各輪郭PRF1〜PRF12の四辺を構成する直線のフィッティングを試み、フィッティングが成功した場合、各輪郭PRF1〜PRF12によって囲まれた領域を2次元バーコードの画像であると判定する。一方、画像処理手段22は、フィッティングが失敗した場合、各輪郭PRF1〜PRF12によって囲まれた領域を2次元バーコードの画像ではないと判定する。
【0063】
なお、画像処理手段22は、4個の直線を各輪郭PRF1〜PRF12に沿って配置できるか否かによってフィッティングが成功したか失敗したかを判定する。2次元バーコードは、四角形からなるので、画像Gが2次元バーコードを撮影した画像である場合、4個の直線を各輪郭PRF1〜PRF12に沿って配置できるはずである。したがって、4個の直線を各輪郭PRF1〜PRF12に沿って配置できるか否かによってフィッティングが成功したか否かを判定することにしたものである。
【0064】
次に、画像を補正する方法について説明する。図4は、画像の補正方法を説明するための図である。図4を参照して、画像g1は、たとえば、図3の(b)に示す輪郭PRF2を有するものとする。また、平面PLNは、補正前の画像g1が配置された平面である。さらに、直線SL1は、画像g1に垂直な直線である。さらに、以下に説明する画像g1の補正は、xyz直交座標によって表された空間において実行される。
【0065】
画像処理手段22は、画像g1の輪郭PRF2を構成する直線を移動させ、画像g1を平面PLNに垂直な画像g2に補正する。より具体的には、画像処理手段22は、画像g1の輪郭PRF2を構成する横の直線sl1を保持し、かつ、縦の2本の直線sl2,sl3の一方端を直線sl1の両端に接続させた状態を保持しながら、2本の直線sl2,sl3が平面PLNと略垂直になるように2本の直線sl2,sl3を移動させる。その後、画像処理手段22は、横の直線sl4の両端が、それぞれ、移動させた2本の直線sl2,sl3の他方端に接続されるように直線sl4を移動させる。なお、直線SL2は、画像g2に垂直な直線である。
【0066】
そうすると、画像g2が画像g1と成す角度ψは、直線SL2が直線SL1と成す角度に等しくなる。したがって、画像処理手段22は、角度ψをカメラ1から2次元バーコードを見たときの仰角として検出する。なお、画像処理手段22は、直線SL1,SL2の交点から直線SL1の方向に長さが“1”である直線を引き、その引いた直線の他方端かた直線SL2へ下ろした垂線と直線SL2との交点の座標を検出し、直線SL1,SL2の交点から垂線と直線SL2との交点までの直線の長さを演算し、長さが“1”である直線と、その長さを演算した直線とを用いて角度ψを演算する。
【0067】
その後、画像処理手段22は、画像g2の輪郭を構成する四辺の直線の長さが等しくなるように、画像g2を画像g3に補正する。より具体的には、画像処理手段22は、画像g2の輪郭を構成する直線sl5を保持し、かつ、直線sl6,sl7の一方端を直線sl5の両端に接続させた状態を保持しながら、直線sl6,sl7の長さが直線sl5の長さに等しくなるように直線sl6,sl7を移動させる。画像g2は、xyz座標からなる空間に配置されているので、画像処理手段22は、直線sl5,sl6,sl7の両端の座標を用いて直線sl5,sl6,sl7の長さを容易に演算できる。したがって、画像処理手段22は、直線sl6,sl7を移動させて直線sl6,sl7の長さを演算し、その演算した直線sl6,sl7の長さが直線sl5の長さに等しくなければ、再度、直線sl6,sl7を移動させる。画像処理手段22は、直線sl6,sl7の長さが直線sl5の長さに等しくなるまで、この動作を繰り返し行なう。そして、画像処理手段22は、直線sl6,sl7の長さが直線sl5の長さに等しくなるまで直線sl6,sl7を移動させると、直線sl8の両端が、それぞれ、移動させた直線sl6,sl7の他方端に接続されるように、直線sl8を移動させる。これによって、正方形からなる画像g3が得られる。
【0068】
画像g1は、正方形からなる2次元バーコードを撮影したときの画像であるので、画像g1が正方形からなる画像g3に補正されたことは、画像g1を正面から見た画像g3に補正したことになる。なお、直線SL3は、画像g3に垂直な直線である。
【0069】
そうすると、画像g3が画像g2と成す角度θは、直線SL3が直線SL2と成す角度に等しくなる。したがって、画像処理手段22は、角度θをカメラ1から2次元バーコードを見たときの方位角として検出する。なお、画像処理手段22は、角度ψの演算方法と同じ演算方法によって角度θを演算する。
【0070】
このように、画像処理手段22は、画像g1を正面から見た画像g3に補正し、カメラ1から2次元バーコードを見たときの仰角ψおよび方位角θを検出する。そして、仰角ψおよび方位角θは、2次元バーコードに対してカメラ1(=位置検出装置10)が存在する方向を示すので、画像処理手段22は、角度ψ,θを方向情報IFHKとして検出する。
【0071】
なお、図4においては、画像g1,g2が移動しながら補正されるように記載されているが、実際には、画像g1は、最初に配置された位置において、画像g2およぶ画像g3へ順次補正される。
【0072】
また、画像処理手段22は、輪郭PRF1,PRF3〜PRF12を有する画像を上述した方法によって補正し、方向情報IFHKを検出する。
【0073】
図5は、2次元バーコードの例を示す平面図である。図5を参照して、2次元バーコード20は、自己の実際のサイズACSRおよび自己が配置された位置情報PSBCをドットパターンによって記録する。そして、位置情報PSBCは、座標[x,y,z]からなる。
【0074】
画像処理手段22は、上述した方法によって画像g1を画像g3へ補正すると、その補正した画像g3のドットパターンを検出して2次元バーコードに記録された実際のサイズACSRおよび位置情報PSBCを読み出す。
【0075】
図6は、2次元バーコードおよび画像のサイズを説明するための図である。図6を参照して、図形30は、実際の2次元バーコードを表し、図形40は、2次元バーコードをカメラ1によって撮影した画像を表す。
【0076】
図形30は、1辺の長さが“A”からなる正方形からなり、図形40は、1辺の長さが“a”からなる正方形からなる。
【0077】
たとえば、図形30の4辺の長さの総和(=4A)は、2次元バーコードの実際のサイズACSRになり、図形40の4辺の長さの総和(=4a)は、画像GのサイズGSSになる。したがって、画像処理手段22は、上述した方法によって補正した画像g3の輪郭を構成する正方形の1辺の長さaを計測し、その計測した長さaを4倍することによって画像GのサイズGSSを検出する。なお、画像処理手段22は、画像g3がxyz直交座標からなる空間に配置されているので、画像g3の輪郭を構成する正方形の1辺の両端のxyz座標を検出し、その検出した両端のxyz座標を用いて長さaを検出する。
【0078】
図7は、サイズ比と距離との対応関係を示す対応表TBLの概念図である。図7を参照して、対応表TBLは、サイズ比と距離とからなる。そして、サイズ比RS1〜RSnは、それぞれ、距離L1〜Lnに対応付けられる。
【0079】
したがって、距離決定手段23は、演算したサイズ比RSS(=GSS/ACSR)がサイズ比RS1〜RSnのいずれかに一致するとき、サイズ比RSSに対応する距離(距離L1〜Lnのいずれか)を対応表TBLから抽出することによって距離Lを決定する。
【0080】
また、距離決定手段23は、演算したサイズ比RSS(=GSS/ACSR)がサイズ比RS1〜RSnのいずれかに一致しないとき、すなわち、サイズ比RSSが2つのサイズ比RSn−1,RSn間に存在するとき、次の方法によって距離Lを決定する。距離決定手段23は、サイズ比RSSとサイズ比RSn−1との差ΔRS1と、サイズ比RSnとサイズ比RSSとの差ΔRS2とを演算し、その演算した2つの差ΔRS1,ΔRS2の比によって距離Ln−1,Lnを案分して距離Lを検出する。この場合、距離Ln−1,Lnは、それぞれ、サイズ比RSn−1,Rnに対応する距離である。
【0081】
サイズ比RS1〜RSnの各々は、2次元バーコードの画像のサイズGSSを2次元バーコードの実際のサイズACSRで除算した値からなり、n個のサイズ比RS1〜RSnは、大きい順または小さい順に配置される。n個のサイズ比RS1〜RSnが大きい順に配置された場合、距離Lは、サイズ比RSSがサイズ比RS1からサイズ比RSnに近づくに従って長くなり、n個のサイズ比RS1〜RSnが小さい順に配置された場合、距離Lは、サイズ比RSSがサイズ比RS1からサイズ比RSnに近づくに従って短くなる。
【0082】
なお、この発明においては、サイズ比RS1〜RSnの各々は、2次元バーコードの実際のサイズACSRを2次元バーコードの画像のサイズGSSで除算した値からなっていてもよい。そして、n個のサイズ比RS1〜RSnが大きい順に配置された場合、距離Lは、サイズ比RSSがサイズ比RS1からサイズ比RSnに近づくに従って短くなり、n個のサイズ比RS1〜RSnが小さい順に配置された場合、距離Lは、サイズ比RSSがサイズ比RS1からサイズ比RSnに近づくに従って長くなる。
【0083】
上述した説明からも明らかなように、サイズ比RSn−1,RSn間の間隔によって、距離Lの精度が異なる。すなわち、距離Lは、サイズ比RSn−1,RSn間の間隔を小さくする程、精度が高くなり、サイズ比RSn−1,RSn間の間隔を大きくする程、精度が低下する。この発明においては、要求される距離Lの精度に応じて、サイズ比RSn−1,RSn間の間隔を設定する。
【0084】
なお、この発明においては、サイズ比RSn−1,RSn間の間隔は、全ての隣接する2つのサイズ比間で、同じあってもよく、異なっていてもよい。
【0085】
図8は、2次元バーコードに対するカメラ1(=携帯電話機)の位置PSを検出する方法を説明するための図である。なお、2次元バーコードに対するカメラ1(=携帯電話機)の位置PSの検出は、xyz直交座標からなる空間において実行される。
【0086】
図8を参照して、検出手段24は、画像処理手段22から画像g1、位置情報PSBCおよび方向情報IFHKを受け、距離決定手段23から距離Lを受けると、画像g1の中心がxyz直交座標の原点Oに一致するように画像g1を平面PLN上に配置する。すなわち、検出手段24は、画像g1の元になる2次元バーコードの位置[x0,y0,z0]を原点Oに移動して画像g1を平面PLN上に配置する。
【0087】
そして、検出手段24は、一方端が原点Oに一致し、長さが距離Lに一致し、さらに、画像g1に垂直になるように直線SL4を引く。その後、検出手段24は、方向情報IFHKを構成する角度[ψ,θ]を検出し、画像g1の中心を原点Oに保持し、かつ、直線SL4と画像g1との垂直性を保持したまま、画像g1が平面PLNに垂直になるように画像g1および直線SL4を角度ψだけ回転させる。これによって、直線SL4は、直線SL5になる。
【0088】
引き続いて、検出手段24は、直線SL5の他方端TP1の座標[x1,y1,z1]を検出する。そして、検出手段24は、直線SL5の一方端を原点Oに一致させ、かつ、他方端TP1のz座標(=z1)を保持したまま、直線SL5をy軸方向へ角度θだけ回転させる。これによって、直線SL5は、直線SL6になる。
【0089】
そうすると、検出手段24は、直線SL6の他方端TP2の座標[x2,y2,z1]を検出する。直線SL6の一方端は、xyz直交座標の原点Oに配置されているが、本来、2次元バーコードの位置を示す座標[x0,y0,z0]を有するので、検出手段24は、検出した座標[x2,y2,z1]に座標[x0,y0,z0]を加算して座標[x0+x2,y0+y2,z0+z1]を演算する。そして、検出手段24は、その演算した座標[x0+x2,y0+y2,z0+z1]をカメラ1(=携帯電話機)の位置PSとして検出する。
【0090】
なお、座標[x0,y0,z0]が2次元バーコードの絶対位置からなる場合、座標[x0+x2,y0+y2,z0+z1]は、カメラ1(=携帯電話機)の絶対位置を示し、座標[x0,y0,z0]が2次元バーコードの相対位置からなる場合、座標[x0+x2,y0+y2,z0+z1]は、カメラ1(=携帯電話機)の相対位置を示す。
【0091】
したがって、検出手段24は、位置情報PSBC、方向情報IFHKおよび距離Lに基づいて、カメラ1(=携帯電話機)の相対位置PSまたは絶対位置PSを検出する。
【0092】
図9は、2次元バーコードに対するカメラ1(=携帯電話機)の位置を検出する他の方法を説明するための図である。
【0093】
図9を参照して、画像処理手段22は、2次元バーコードBC1の画像g4を上述した方法によって処理し、2次元バーコードBC1の実際のサイズACSR1、画像g4のサイズGSS1、位置情報PSBC1および方向情報IFHK1を検出するとともに、実際のサイズACSR1および画像g4のサイズGSS1を距離決定手段23へ出力し、位置情報PSBC1および方向情報IFHK1を検出手段24へ出力する。
【0094】
また、画像処理手段22は、2次元バーコードBC2の画像g5を上述した方法によって処理し、2次元バーコードBC2の実際のサイズACSR2、画像g5のサイズGSS2、位置情報PSBC2および方向情報IFHK2を検出するとともに、実際のサイズACSR2および画像g5のサイズGSS2を距離決定手段23へ出力し、位置情報PSBC2および方向情報IFHK2を検出手段24へ出力する。
【0095】
さらに、検出手段24は、2次元バーコードBC3の画像g6を上述した方法によって処理し、2次元バーコードBC3の実際のサイズACSR3、画像g6のサイズGSS3、位置情報PSBC3および方向情報IFHK3を検出するとともに、実際のサイズACSR3および画像g6のサイズGSS3を距離決定手段23へ出力し、位置情報PSBC3および方向情報IFHK3を検出手段24へ出力する。
【0096】
距離決定手段23は、実際のサイズACSR1、画像g4のサイズGSS1および対応表TBLに基づいて、上述した方法によって、2次元バーコードBC1とカメラ1(=携帯電話機)との距離LBC1を検出する。同様にして、距離決定手段23は、実際のサイズACSR2、画像g5のサイズGSS2および対応表TBLに基づいて2次元バーコードBC2とカメラ1(=携帯電話機)との距離LBC2を検出し、実際のサイズACSR3、画像g6のサイズGSS3および対応表TBLに基づいて2次元バーコードBC3とカメラ1(=携帯電話機)との距離LBC3を検出する。そして、距離決定手段23は、距離LBC1,LBC2,LBC3を検出手段24へ出力する。
【0097】
そうすると、検出手段24は、位置情報PSBC1、方向情報IFHK1および距離LBC1に基づいて、上述した方法によって、距離LBC1を有する直線SL7を取得し、直線SL7の他方端TP3の座標[x3,y3,z3]を検出し、その検出した座標[x3,y3,z3]に2次元バーコードBC1の位置を示す座標[x01,y01,z01]を加算して座標[x01+x3,y01+y3,z01+z3]を演算する。
【0098】
また、検出手段24は、位置情報PSBC2、方向情報IFHK2および距離LBC2に基づいて、上述した方法によって、距離LBC2を有する直線SL8を取得し、直線SL8の他方端TP4の座標[x4,y4,z4]を検出し、その検出した座標[x4,y4,z4]に2次元バーコードBC2の位置を示す座標[x02,y02,z02]を加算して座標[x02+x4,y02+y4,z02+z4]を演算する。
【0099】
さらに、検出手段24は、位置情報PSBC3、方向情報IFHK3および距離LBC3に基づいて、上述した方法によって、距離LBC3を有する直線SL9を取得し、直線SL9の他方端TP5の座標[x5,y5,z5]を検出し、その検出した座標[x5,y5,z5]に2次元バーコードBC3の位置を示す座標[x03,y03,z03]を加算して座標[x03+x5,y03+y5,z03+z5]を演算する。
【0100】
そして、検出手段24は、座標[x01+x3,y01+y3,z01+z3]、座標[x02+x4,y02+y4,z02+z4]および座標[x03+x5,y03+y5,z03+z5]が相互に一致する場合、これらの3個の座標をカメラ1(=携帯電話機)の位置PSとして検出する。
【0101】
一方、座標[x01+x3,y01+y3,z01+z3]、座標[x02+x4,y02+y4,z02+z4]および座標[x03+x5,y03+y5,z03+z5]が相互に一致しない場合、検出手段24は、画像g4〜g6のサイズGSS1〜GSS3による座標[x01+x3,y01+y3,z01+z3]、座標[x02+x4,y02+y4,z02+z4]および座標[x03+x5,y03+y5,z03+z5]の重み付け平均を演算してカメラ1(=携帯電話機)の位置PSを検出する。
【0102】
より具体的には、3個のサイズGSS1,GSS2,GSS3の比をα:β:γ(α,β,γは、α+β+γ=1を満たす実数)とすると、検出手段24は、α(x01+x3)+β(x02+x4)+γ(x03+x5)、α(y01+y3)+β(y02+y4)+γ(y03+y5)およびα(z01+z3)+β(z02+z4)+γ(z03+z5)を演算して座標[x6,y6,z6]を得る。そして、検出手段24は、座標[x6,y6,z6]をカメラ1(=携帯電話機)の位置PSとして検出する。
【0103】
このように、この発明においては、位置検出手段2は、3個の2次元バーコードBC1〜BC3の画像を撮影してカメラ1(=携帯電話機)の位置PSを検出してもよく、一般的には、複数の2次元バーコードの画像を撮影してカメラ1(=携帯電話機)の位置PSを検出してもよい。
【0104】
図10は、この発明による位置検出の方法を説明するためのフローチャートである。図10を参照して、一連の動作が開始されると、位置検出手段2の制御手段21は、上述した方法によって、位置検出を開始する開始条件を満足したか否かを判定し(ステップS1)、開始条件を満足したと判定すると、さらに、上述した方法によって携帯電話機が安定しているか否かを判定する(ステップS2)。そして、制御手段21は、携帯電話機が安定していると判定すると、撮影指示PHGを生成してカメラ1へ出力する(ステップS3)。
【0105】
カメラ1は、制御手段21からの撮影指示PHGに応じて、2次元バーコードを撮影し(ステップS4)、その撮影した2次元バーコードの画像を位置検出手段2へ出力する。
【0106】
位置検出手段2の画像処理手段22は、カメラ1から2次元バーコードの画像を受け、その受けた画像を補正する(ステップS5)。その後、画像処理手段22は、補正された画像のサイズGSSを上述した方法によって検出するとともに(ステップS6)、補正された画像のドットパターンを解析して2次元バーコードの位置情報PSBCおよび実際のサイズACSRを検出する(ステップS7)。そして、画像処理手段22は、画像のサイズGSSおよび実際のサイズACSRを距離決定手段23へ出力し、位置情報PSBCおよびステップS5に示す画像の補正によって得られた方向情報IFHKを検出手段24へ出力する。
【0107】
その後、距離決定手段23は、画像のサイズGSSおよび実際のサイズACSRに基づいて、上述した方法によって、2次元バーコードとカメラ1との距離Lを決定し(ステップS8)、その決定した距離Lを検出手段24へ出力する。
【0108】
そして、検出手段24は、位置情報PSBC、方向情報IFHKおよび距離Lに基づいて、上述した方法によって、カメラ1の位置および方位・傾きPSを検出し(ステップS9)、その検出した位置および方位・傾きPSを制御手段21へ出力する。
【0109】
制御手段21は、受付手段3から表示指示DSPを受けると、記憶手段4から地図データMAPを読み出し、その読み出した地図データMAPに検出手段24から受けた位置および方位・傾きPSを記載してディスプレイ5へ出力する。そして、ディスプレイ5は、制御手段21から受けた地図データMAPに基づいて、位置および方位・傾きPSが記載された地図を表示する(ステップS10)。これによって、携帯電話機のユーザは、自分の位置を知ることができる。そして、一連の動作が終了する。
【0110】
なお、ステップS7において、2次元バーコードの位置情報として絶対位置情報が検出された場合、ステップS9において検出されたカメラ1の位置および方位・傾きPSは、絶対位置からなる。また、ステップS7において、2次元バーコードの位置情報として相対位置情報が検出された場合、ステップS9において検出されたカメラ1の位置および方位・傾きPSは、相対位置からなる。
【0111】
図11は、図10に示すステップS5の詳細な動作を説明するためのフローチャートである。図11を参照して、図10に示すステップS4の後、画像処理手段22は、カメラ1から受けた画像に対してグレースケール変換を施し、適応型閾値処理によって画像を2値化する(ステップS51)。
【0112】
そして、画像処理手段22は、上述したラベリングおよび連結成分処理によって2次元バーコードの候補領域を抽出するとともに(ステップS52)、その抽出した2次元バーコードの候補領域の輪郭を上述した方法によって抽出し、2次元バーコードの黒枠を検出する(ステップS53)。
【0113】
引き続いて、画像処理手段22は、2次元バーコードの黒枠画像に基づいて、黒枠画像の四辺を構成する直線のフィッティングを試行する(ステップS54)。そして、画像処理手段22は、フィッティングが成功したか否かを判定する(ステップS55)。この場合、画像処理手段22は、黒枠画像の縦の2本の直線に平行な2本の直線SL1vtc,SL2vtcと、黒枠画像の横の2本の直線に平行な2本の直線SL1hzt,SL2hztとを用意し、2本の直線SL1vtc,SL2vtcをそれぞれ黒枠画像の縦の2本の直線上へ配置でき、2本の直線SL1hzt,SL2hztをそれぞれ黒枠画像の横の2本の直線上へ配置できたか否かを判定することによってフィッティングが成功したか否かを判定する。
【0114】
そして、ステップS55において、フィッティングが成功しなかったと判定されたとき、画像処理手段22は、画像が2次元バーコードの画像ではないと判断し(ステップS56)、画像処理を停止する。その後、一連の動作は、図10に示す“終了”へ移行する。
【0115】
一方、ステップS55において、フィッティングが成功したと判定されたとき、画像処理手段22は、サブピクセルレベルでのフィッティングを行ない、直線フィッティングを高精度化する(ステップS57)。
【0116】
その後、画像処理手段22は、4直線の情報を用い、上述した方法によって2次元バーコードの画像を補正し、方向情報IFHKを検出する(ステップS58)。そして、画像処理手段22は、予め内蔵している2次元バーコードの画像のリストを用いて、抽出された画像とリストの画像とのマッチングを行ない(ステップS59)、確信度を演算する。
【0117】
その後、画像処理手段22は、2次元バーコードの番号と確信度とを出力する(ステップS60)。そして、一連の動作は、図10のステップS6へ移行する。
【0118】
図12は、この発明による位置検出の他の方法を説明するためのフローチャートである。図12に示すフローチャートは、図10に示すフローチャートのステップS4〜ステップS9をステップS21〜ステップS24に代えたものであり、その他は、図10に示すフローチャートと同じである。
【0119】
図12を参照して、上述したステップS1〜ステップS3が順次実行された後、カメラ1は、撮影指示PHGに応じて、複数の2次元バーコードを撮影し(ステップS21)、その撮影した複数の2次元バーコードの画像を位置検出手段2へ出力する。
【0120】
位置検出手段2の画像処理手段22は、複数の2次元バーコードの複数の画像をカメラ1から受け、その受けた複数の画像の各々を処理する(ステップS22)。この場合、画像処理手段22は、図10に示すステップS5〜S7を各画像に繰り返し実行することによって複数の画像の各々を処理する。これによって、複数の2次元バーコードの複数の実際のサイズACSR、複数の画像の複数のサイズGSSおよび複数の2次元バーコードに対してカメラ1が存在する向き・傾きに関する複数の方向情報IFHKが検出される。
【0121】
その後、距離決定手段23は、画像処理の結果に基づいて、複数の2次元バーコードとカメラ1との複数の距離を決定する(ステップS23)。この場合、距離決定手段23は、図10に示すステップS8を繰り返し実行することによって複数の距離を決定する。
【0122】
そして、検出手段24は、複数の方向情報IFHK、複数の位置情報PSBCおよび複数の距離に基づいて、カメラ1の位置および方位・傾きPSを検出する(ステップS24)。この場合、検出手段24は、図10に示すステップS9を繰り返し実行することによって、複数の2次元バーコードに基づいて検出したカメラ1の複数の座標を取得し、その取得した複数の座標に基づいて、カメラ1の位置および方位・傾きPSを検出する。
【0123】
その後、上述したステップS10が実行される。
【0124】
図13は、図12に示すステップS24の詳細な動作を説明するためのフローチャートである。図13を参照して、図12に示すステップS23の後、検出手段24は、複数の2次元バーコードに基づいて検出したカメラ1の複数の座標が相互に一致するか否かを判定する(ステップS241)。
【0125】
そして、検出手段24は、複数の座標が相互に一致すると判定したとき、その一致した複数の座標をカメラ1の位置および方位・傾きPSとして検出する(ステップS242)。
【0126】
一方、検出手段24は、複数の座標が相互に一致しないと判定したとき、複数の2次元バーコードを撮影して得られた複数の画像の複数のサイズの比を演算し(ステップS243)、その演算した比による複数の座標の重み付け平均を演算する(ステップS244)。
【0127】
その後、検出手段24は、演算して得られた座標をカメラ1の位置および方位・傾きPSとして検出する(ステップS245)。
【0128】
そして、ステップS242またはステップS245の後、一連の動作は、図12に示すステップS10へ移行する。
【0129】
上述したように、この発明においては、カメラ1によって撮影した2次元バーコードの画像に基づいて、2次元バーコードの位置、2次元バーコードに対してカメラ1が存在する方向、および2次元バーコードとカメラ1との距離を取得し、その取得した2次元バーコードの位置、2次元バーコードに対してカメラ1が存在する方向、および2次元バーコードとカメラ1との距離に基づいて、2次元バーコードを基準にしてカメラ1の位置および方位・傾きを検出する。
【0130】
したがって、この発明によれば、GPSの使用が困難な場所でもカメラ1の位置および方位・傾きを検出できる。また、2次元バーコードとカメラ1との距離を取得し、2次元バーコードの位置を基準としてカメラ1の位置および方位・傾きを検出するので、カメラ1の位置および方位・傾きを精度良く検出できる。
【0131】
図14は、図1に示す位置検出装置10を実現するためのハード構成を示す図である。図14を参照して、ハード構成100は、カメラ1と、ディスプレイ5と、GPS受信機6と、加速度センサ7と、キーパッド101と、CPU(Central Processing Unit)102と、ROM(Read Only Memory)103と、RAM(Random Access Memory)104と、バスBSとを備える。なお、ハード構成100は、携帯電話機に搭載される。
【0132】
カメラ1、ディスプレイ5、GPS受信機6、加速度センサ7、キーパッド101、CPU102、ROM103およびRAM104は、バスBSを介して相互に連結される。
【0133】
キーパッド101は、図1に示す受付手段3の機能を果たし、CPU102は、図1に示す位置検出手段2の機能を果たし、ROM103は、図1に示す記憶手段4の機能を果たすとともに、図10および図11に示すフローチャートまたは図12および図13に示すフローチャートをこの発明によるプログラムとして格納する。また、RAM104は、ワークメモリとして機能する。
【0134】
CPU102は、キーパッド101を介して数値列[ACSn,GSn,Ln]を受けると、その受けた数値列[ACSn,GSn,Ln]に基づいて、上述した方法によって対応表TBLを作成してROM103に格納する。
【0135】
また、CPU102は、携帯電話機の処理部から携帯電話機の電源がオンされたことを示す信号PWONを受けると、ROM103に格納されたプログラムを読み出して実行し、カメラ1から受けた画像に基づいて、上述した方法によって、カメラ1(=携帯電話機)の位置および方位・傾きPSを検出する。
【0136】
そして、CPU102は、キーパッド101から表示指示DSPを受けると、ROM103から地図データMAPを読み出し、その読み出した地図データMAPに位置および方位・傾きPSを記載してディスプレイ5へ出力する。ディスプレイ5は、CPU102から受けた地図データMAPに基づいて、位置および方位・傾きPSを記載した地図を表示する。
【0137】
なお、カメラ1から受けた画像を図10のステップ4〜ステップS7または図12のステップS22に従って処理するCPU102は、「画像処理手段」を構成する。
【0138】
また、図10に示すステップS8または図12のステップS23に従って距離を決定するCPU102は、「距離決定手段」を構成する。
【0139】
さらに、図10のステップS9または図12のステップS24に従ってカメラ1の位置および方位・傾きPSを検出するCPU102は、「検出手段」を構成する。
【0140】
さらに、プログラム(図10および図11に示すフローチャートまたは図12および図13に示すフローチャートからなる)を格納するROM103は、「コンピュータ(CPU102)読み取り可能な記録媒体」を構成する。
【0141】
図15は、図1に示す位置検出装置10を搭載した携帯電話機の斜視図である。図15を参照して、携帯電話機200は、本体部210と、蓋部220とを備える。蓋部220は、一方端が本体部210と連結され、矢印201で示す方向へ開閉可能である。したがって、携帯電話機200は、折り畳み式の携帯電話機である。
【0142】
本体部210は、キーパッド101、および処理部230,240を含む。処理部230は、図14に示すCPU102、ROM103およびRAM104からなる。
【0143】
処理部240は、携帯電話機200の電源がオンされると、信号PWONを生成して処理部230へ出力し、携帯電話機200が使用状態であるとき、信号USEを生成して処理部230へ出力し、携帯電話機200において位置情報を必要とするアプリケーションソフトウェアが起動されると、信号ONを生成して処理部230へ出力する。なお、処理部240は、蓋部220が開いたことを検知して信号USEを生成する。
【0144】
また、処理部240は、電話機能およびメール機能等の携帯電話機の本来の機能に関する処理を実行する。
【0145】
蓋部220は、カメラ1、ディスプレイ5、GPS受信機6および加速度センサ7を含む。
【0146】
携帯電話機200のユーザは、キーパッド101を介して数値列[ACSn,GSn,Ln]および検出された位置および方位・傾きPSの表示指示DSPを入力する。
【0147】
携帯電話機200の電源がオンされると、処理部240は、信号PWONを生成して処理部230へ出力する。そして、処理部230のCPU102は、信号PWONの受信に応じて、上述した図10および図11に示すフローチャート(または図12および図13に示すフローチャート)からなるプログラムをROM103から読み出して実行する。
【0148】
その後、携帯電話機200の蓋部220が開くと、処理部240は、携帯電話機200が使用状態になったことを検知し、信号USEを生成して処理部230へ出力する。そして、処理部230のCPU102は、上述した方法によって、位置検出を開始する開始条件を満足したと判定し、かつ、加速度センサ7から受けた加速度ACCに基づいて携帯電話機200が安定しているタイミングを検出すると、上述した方法によってカメラ1の位置および方位・傾きPSを検出し、ユーザからの表示指示DSPに応じて、検出した位置および方位・傾きPSをディスプレイ5に表示するので、携帯電話機200が使用状態であるとき、またはGPS信号を受信できなくなったとき、または携帯電話機200において位置情報が必要なアプリケーションソフトウェアが起動されたとき、常時、カメラ1の位置および方位・傾きを検出する動作が実行される。
【0149】
したがって、ユーザは、携帯電話機200の電話機能およびメール機能等の位置検出に係る機能以外の機能を通常通り使用しながら、自己の位置を知ることができる。
【0150】
図16は、図1に示す位置検出装置10を用いて位置を検出する場合の具体例を示す図である。また、図17は、ディスプレイ5の表示例を示す図である。図16を参照して、2次元バーコードBC1〜BC5が地下街の通路50に配置されている。そして、2次元バーコードBC1〜BC5の各々は、図5に示す2次元バーコード20からなり、配置位置の位置情報PSBCおよび実際のサイズACSRがドットパターンによって記録されている。そして、地下街には、たとえば、書店70が通路50に面して配置されている。
【0151】
位置情報PSBCが相対位置からなる場合、位置情報PSBCは、たとえば、書店70の出入口71の点71Aを原点としたxyz座標からなる。
【0152】
携帯電話機200のユーザは、携帯電話機200のディスプレイ5を見ながら通路50を歩行している。CPU102は、携帯電話機200が地下街に存在しているので、GPSが使用不可であると判定し、携帯電話機200が使用されているので、処理部240から信号USEを受ける。そして、CPU102は、加速度ACCに基づいて携帯電話機200が最も安定しているタイミングを検出すると、カメラ1に撮影指示PHGを出力し、カメラ1は、2次元バーコードBC3を撮影し、その撮影した2次元バーコードBC3の画像をCPU102へ出力する。
【0153】
そうすると、CPU102は、カメラ1から受けた画像に基づいて、上述した方法によってカメラ1の位置および方位・傾きPSを検出する。そして、携帯電話機200のユーザは、表示指示DSPをキーパッド101を介して入力すると、カメラ1の位置および方位・傾き(=自己の位置)PSがディプレイ5に表示される(図17の(a)の星印参照)。これによって、携帯電話機200のユーザは、携帯電話機200を普通に使用しながら自己の位置を知ることができる。
【0154】
なお、CPU102は、カメラ1の位置(=ユーザの位置)に追加してカメラ1の位置に関連する情報をディスプレイ5に表示してもよい。カメラ1の位置に関連する情報としては、たとえば、書店70におけるベストセラーのランキングが想定される(図17の(b)参照)。この場合、CPU102は、地下街における各店舗の情報を各店舗のホームページにアクセスして取得し、RAM104に記憶しておき、検出された位置および方位・傾きPSを地図に記載するときに、関連情報をRAM104から読み出してディスプレイ5に表示する。
【0155】
CPU102は、携帯電話機200のユーザが通路50を進行するに従って、異なる2次元バーコードBC4,BC5の画像に基づいてカメラ1の位置(=ユーザの位置)PSを検出してディスプレイ5に表示する。これによって、携帯電話機200のユーザは、通路50を目的地に向かって歩行していることを認識できる。
【0156】
図18は、図1に示す位置検出装置10を用いて位置を検出する場合の他の具体例を示す図である。図18を参照して、2次元バーコードBC11〜BC16,BC21〜BC26,BC31〜BC36,BC41〜BC46,BC51〜BC56が碁盤目状に地下街の通路50に配置されている。
【0157】
2次元バーコードBC11〜BC16,BC21〜BC26,BC31〜BC36,BC41〜BC46,BC51〜BC56の各々は、図5に示す2次元バーコード20からなり、配置位置の位置情報PSBCおよび実際のサイズACSRがドットパターンによって記録されている。
【0158】
図18に示す場合も、CPU102は、ユーザが携帯電話機200を通常通り使用している状態でカメラ1によって複数の2次元バーコードBC22,BC23,BC32,BC33の複数の画像を取得し、その取得した複数の画像に基づいて、上述した方法によって、カメラ1の位置および方位・傾きPSを検出する。そして、携帯電話機200のユーザは、表示指示DSPをキーパッド101を介して入力すると、カメラ1の位置(=自己の位置)PSがディプレイ5に表示される(図17の(a),(b)参照)。これによって、携帯電話機200のユーザは、携帯電話機200を普通に使用しながら自己の位置を知ることができる。
【0159】
図19は、2次元バーコードの他の例を示す平面図である。図19を参照して、2次元バーコード60は、上側の両端に配置された2つの黒領域61,62を含み、自己が配置された位置の方位情報ORBCをドットパターンによって記録する。すなわち、2次元バーコード60は、必ず、2つの黒領域61,62を含む2次元バーコードからなる。
【0160】
方位情報ORBCは、2次元バーコード60が携帯電話機200のユーザが歩行する通路50または道路等に配置される場合、東、西、南、北、北東、東南(または南東)、北西(または西北)、南西(または西南)、東北東、東南東、北北東、西北西、北北西、西南西、南南西および南南東のいずれかからなる。
【0161】
そして、2次元バーコード60に記録された方位は、黒領域61,62が上側に配置されるように2次元バーコード60を見たときの方位を示す。たとえば、“東”という方位が2次元バーコード60に記録されていた場合、黒領域61,62が上側に配置されるように2次元バーコード60を見たならば、携帯電話機200のユーザは、“東”を向いているのであり、黒領域61,62が下側に配置されるように2次元バーコード60を見たならば、携帯電話機200のユーザは、“西”を向いているのであり、黒領域61,62が左側に配置されるように2次元バーコード60を見たならば、携帯電話機200のユーザは、“南”を向いているのであり、黒領域61,62が右側に配置されるように2次元バーコード60を見たならば、携帯電話機200のユーザは、“北”を向いている。
【0162】
また、画像処理手段22は、上述した画像補正によって得られた方向情報IFHK=[ψ,θ]の角度θを用いれば、北東、東南(または南東)、北西(または西北)、南西(または西南)、東北東、東南東、北北東、西北西、北北西、西南西、南南西および南南東の方位も検出可能である。
【0163】
したがって、画像処理手段22は、2次元バーコード60の画像を処理して方位情報ORBCを読み取るとともに、黒領域61,62がどちら側に見えるかによってユーザの進行方向DIRを検出できる。
【0164】
2次元バーコード60は、2次元バーコード20(図5参照)とともに、地下街の通路50およびビルの壁面等に配置される。そして、2次元バーコード20,60が一緒に用いられた場合、位置検出手段2の画像処理手段22は、2次元バーコード60の画像から方位情報ORBCを読み出し、その読み出した方位情報ORBCと2次元バーコード60の画像とに基づいてユーザの進行方向DIRを検出して検出手段24へ出力する。
【0165】
検出手段24は、位置情報PSBC、方向情報IFHKおよび距離Lに基づいて、上述した方法によって、カメラ1(=携帯電話機200)の位置および方位・傾きPSを検出するとともに、その検出した位置および方位・傾きPSと画像処理手段22から受けた進行方向DIRとを制御手段21へ出力する。
【0166】
制御手段21は、検出手段24から受けた位置PSを地図に記載してディスプレイ5へ出力するとともに、検出手段24から受けた進行方向DIRをディスプレイ5へ出力する。そして、ディスプレイ5は、ユーザの位置PSを記載した地図およびユーザの進行方向DIRを表示する。
【0167】
なお、位置および方位・傾きPSおよび進行方向DIRの検出は、図10および図11に示すフローチャート(または図12および図13に示すフローチャート)に従って実行される。この場合、図10および図12に示すステップS10において、進行方向DIRも表示される。
【0168】
また、方位情報ORBCは、ビルの壁面に配置される場合、東面、西面、南面、北面、北東面、東南面(または南東面)、北西面(または西北面)、南西面(または西南面)、東北東面、東南東面、北北東面、西北西面、北北西面、西南西面、南南西面および南南東面のいずれかからなる。
【0169】
この場合、画像処理手段22は、2次元バーコード60の画像に基づいて方位情報ORBCを読み取り、その読み取った方位情報ORBCを検出手段24へ出力する。そして、検出手段24は、位置情報PSBC、方向情報IFHKおよび距離Lに基づいて、カメラ1(=携帯電話機200)の位置および方位・傾きPSを検出するとともに、その検出した位置および方位・傾きPSと画像処理手段22から受けた方位情報ORBCとを制御手段21へ出力する。
【0170】
制御手段21は、検出手段24から受けた位置および方位・傾きPSを地図に記載してディスプレイ5へ出力するとともに、検出手段24から受けた方位情報ORBCに基づいて、たとえば、「ユーザが○○ビルの南側を歩行している」という情報を作成してディスプレイ5へ出力する。そして、ディスプレイ5は、ユーザの位置PSを記載した地図および「ユーザが○○ビルの南側を歩行している」という情報を表示する。
【0171】
図18においては、複数の2次元バーコードBC11〜BC16,BC21〜BC26,BC31〜BC36,BC41〜BC46,BC51〜BC56の各々は、位置情報PSBCおよび実際のサイズACSRを記録した2次元バーコード20(図5参照)からなると説明したが、この発明においては、これに限らず、2次元バーコードBC11,BC13,BC15,BC22,BC24,BC26,BC31,BC33,BC35,BC42,BC44,BC46,BC51,BC53,BC55の各々は、2次元バーコード20からなり、2次元バーコードBC12,BC14,BC16,BC21,BC23,BC25,BC32,BC34,BC36,BC41,BC43,BC45,BC52,BC54,BC56の各々は、2次元バーコード60からなっていてもよい。つまり、複数の2次元バーコードBC11〜BC16,BC21〜BC26,BC31〜BC36,BC41〜BC46,BC51〜BC56は、位置情報PSBCおよび実際のサイズACSRが記録された2次元バーコード20と、方位情報ORBCが記録された2次元バーコード60とが市松模様を形成するように配置されていてもよい。
【0172】
これによって、カメラ1は、位置情報PSBCおよび実際のサイズACSRが記録された2次元バーコード20と、方位情報ORBCが記録された2次元バーコード60とを同時に撮影することができ、ユーザの位置PSおよび進行方向DIRを正確に取得できる。
【0173】
また、位置情報PSBCおよび実際のサイズACSRが記録された2次元バーコード20と、方位情報ORBCが記録された2次元バーコード60とを用いることによって、各2次元バーコード20,60に記録される情報を少なくでき、2次元バーコードを構成するドット密度を低くできる。その結果、2次元バーコード20,60の認識率を高くできる。
【0174】
図20は、2次元バーコードの他の設置方法を説明するための図である。図20を参照して、2次元バーコード80は、通路50を挟んで書店70の向かい側の壁面90に配置される。
【0175】
2次元バーコード80は、2次元バーコード20(図5参照)または2次元バーコード60(図19参照)からなり、表面が赤外線インクによって印刷されている。この場合、位置検出装置10のカメラ1は、赤外線カメラからなる。
【0176】
赤外線インクは、人間の目には見えないので、携帯電話機200のユーザは、2次元バーコード80を認識しないが、カメラ1は、2次元バーコード80を撮影し、位置検出手段2は、カメラ1によって撮影された2次元バーコードの画像に基づいて、上述した方法によってカメラ1(=携帯電話機200)の位置および方位・傾きPSおよび/または進行方向DIRを検出し、ディスプレイ5は、位置および方位・傾きPSおよび/または進行方向DIRを表示する。
【0177】
したがって、携帯電話機200のユーザは、壁面90に配置された2次元バーコード80を認識せず、位置および方位・傾きPSの検出動作が行なわれていることも認識せずに、自己の位置および方位・傾きPSおよび/または進行方向DIRを知りたいと思ったときに表示指示DSPをキーパッド101を介して入力するだけで、自己の位置および方位・傾きPSおよび/または進行方向DIRを知ることができる。
【0178】
2次元バーコード80は、壁面90に貼付された広告の一部に配置されてもよい。これによって、地下街の景観を損なうことなく、携帯電話機200のユーザの位置および方位・傾きPSおよび/または進行方向DIRを検知できる。
【0179】
この発明においては、次の方法によって、距離Lおよび方向情報IFHKが決定されてもよい。図21は、四角形の図形を撮影したときの画像を示す図である。図21を参照して、四角形の図形を撮影すると、画像g1が得られる。
【0180】
画像g1の4頂点の画像平面上での座標を(x1,y1),(x2,y2),(x3,y3),(x4,y4)とすると、2つの点(x1,y1),(x2,y2)を通る直線は、a1x+b1y=c1によって表され、a1,b1,c1は、次式によって表される。
【0181】
【数1】
【0182】
また、2つの点(x3,y3),(x4,y4)を通る直線は、a2x+b2y=c2によって表され、a2,b2,c2は、次式によって表される。
【0183】
【数2】
【0184】
この場合、この2つの直線の交点が一組の平行な対辺の延長線が作る消失点であるので、その点を(U1,V1)とすれば、U1,V1は、次式によって表される。
【0185】
【数3】
【0186】
同じようにして、もう一組の平行な対辺から、もう1つの消失点(U2,V2)は、次式によって表される。
【0187】
【数4】
【0188】
そして、2つの消失点(U1,V1),(U2,V2)の座標を用いて消失線を求める。その後、画像g1の2つの対角線を引くことによって画像g1の重心Gの座標を求める。以下、重心Gは、画像g1の中心IOに一致しているものとする。
【0189】
引き続いて、画像g1の中心IOから消失線に下ろした垂線の足VLの座標を求め、中心IO(=G)および点VLを通る直線を求める。そして、線分IOVLの長さを求める。
【0190】
画像g1をデコードして画像g1の元になった図形の実際のサイズを検出し、その検出した実際のサイズを画像g1の元になった図形の面積Srとする。この発明においては、実際のサイズは、画像g1の元になった図形の面積として図形に書き込まれている。
【0191】
また、画像g1が存在する領域のピクセル数を数えることによって画像g1の面積Siを取得する。
【0192】
図22は、カメラ1から2次元バーコードまでの距離を求める方法を説明するための図である。図22に示す図は、図21において、重心Gおよび点VLを通り、かつ、図21の紙面に垂直に切ったときの断面図である。そして、図22において、点Oは、カメラ1の視点である。
【0193】
図22を参照して、カメラ1の焦点距離をfとし、画像面が対象面と成す角をσとすると、次式が成立する。
【0194】
【数5】
【0195】
また、画像g1の元になった図形から画像g1への面積の縮小率s(α)は、次式によって表される(非特許文献1)。
【0196】
【数6】
【0197】
なお、式(6)において、dは、視点Oから対象面までの距離であり、αは、線分OPがz軸と成す角度である。
【0198】
焦点距離fは、既知であり、画像の中心IOと点VLとの距離は、中心IOおよび点VLの座標から求めることができるので、式(5)によって角度σを求めることができる。
【0199】
画像の中心IOにおいては、α=0であり、式(6)の左辺は、Si/Srに等しいので、その求めた角度σ、焦点距離f、α=0およびs(α)=Si/Srを式(6)に代入することによって距離dを求めることができる。
【0200】
その結果、視点Oから対象面上の図形の重心までの距離は、d/cosσによって求めることができる。このように、この発明においては、図形の実際のサイズ(=面積)と画像のサイズ(=面積)とのサイズ比(=面積比)が実際の図形から画像g1への縮小率に一致することを用いてカメラ1の視点Oから図形までの距離を決定する。
【0201】
再び、図21を参照して、画像g1の1つの頂点、たとえば、点(x2,y2)から、重心Gおよび点VLを通る直線へ垂線を下ろした場合の重心Gから垂線の足までの長さをsとし、重心Gから点(x2,y2)までの長さをtとすると、s,tは、対象面上では、それぞれ、式(7),(8)によって表される。
【0202】
【数7】
【0203】
【数8】
【0204】
α=0を代入して式(8)を式(7)によって除算し、その除算結果(=t/(s・cosσ))を用いると、カメラ1から見た図形の対象面上での方位角方向の回転角をθとして、次式が成立する。
【0205】
【数9】
【0206】
その結果、方位角θは、次式によって表される。
【0207】
【数10】
【0208】
角度σは、上述したように画像面と対象面との成す角度であるので、視点Oから対象面上の図形を見たときの仰角に相当する。したがって、上述した方法によって仰角σおよび方位角θを求めることによって、カメラ1に対して図形が存在する向き・傾きに関する方向情報IFHK(=[σ,θ])を取得できる。
【0209】
位置決定手段2の距離決定手段23は、2次元バーコードの画像に基づいて、上述した方法によって、カメラ1から2次元バーコードまでの距離L(=d/cosσ)を決定し、カメラ1に対して2次元バーコードが存在する向き・傾きに関する方向情報IFHK(=[σ,θ])を取得する。
【0210】
距離決定手段23は、距離Lおよび方向情報IFHKを取得すると、その取得した距離Lおよび方向情報IFHKを検出手段24へ出力する。
【0211】
検出手段24は、画像処理手段22から位置情報PSBCを受け、距離決定手段23から距離Lおよび方向情報IFHKを受けると、その受けた位置情報PSBC、距離Lおよび方向情報IFHKに基づいて、カメラ1の位置および方位・傾きを検出する。
【0212】
図23は、カメラ1の位置を検出する方法を説明するための図である。図23を参照して、検出手段24は、位置情報PSBCによって示される1点Aをxyz空間に取り、その1点Aからx軸の正の方向へ長さLを有する直線SL10を引く。そして、検出手段24は、その引いた直線SL10の1点Aの座標を保持しながら直線SL10をx−z平面において角度σだけ回転させ、直線SL11を得る。その後、検出手段24は、直線SL11の1点Aの座標を保持しながら直線SL11をx−y平面において角度θだけ回転させ、直線SL12を得る。そして、検出手段24は、直線SL12の他方端の点Bの座標をカメラ1の位置として検出する。
【0213】
なお、上記においては、2次元バーコード20,60,80は、正方形からなると説明したが、この発明においては、これに限らず、2次元バーコード20,60,80は、平行四辺形、台形、三角形、五角形および六角形等の多角形からなっていてもよい。2次元バーコード20,60,80がこれらの形状からなっていても、直線フィッティングは、上述した方法によって行なわれる。
【0214】
また、上記においては、2次元バーコード20は、座標[x,y,z]からなる位置情報PSBCが記録されると説明したが、この発明においては、これに限らず、2次元バーコード20は、[x,y,z,経緯度]からなる位置情報PSBCが記録されていてもよい。この場合、カメラ1(=携帯電話機)の位置PSも、[x,y,z,経緯度]からなる。
【0215】
さらに、この発明においては、位置検出装置10は、一般的には、GPS信号を受信できない場所において、上述した方法によって自己の位置を検出するものであればよい。
【0216】
さらに、上記においては、位置検出手段2は、数値列[ACSn,GSn,Ln]に基づいて、対応表TBLを作成して記憶手段4に格納すると説明したが、この発明においては、これに限らず、位置検出手段2は、携帯電話機200が受信した対応表TBLを記憶手段4に格納するようにしてもよい。この場合、携帯電話機200は、地下街の通路50に近づくと、地下街に設置されたデータベースにアクセスし、そのデータベースから対応表TBLを受信し、その受信した対応表TBLを位置検出手段2へ出力する。
【0217】
さらに、この発明においては、2次元バーコード20は、「マーク」または「第1のマーク」を構成し、2次元バーコード60は、「第2のマーク」を構成し、カメラ1は、「撮影器」を構成する。
【0218】
さらに、この発明においては、図10に示すステップS5からステップS7の処理または図12に示すステップS22の処理は、「画像処理」を構成する。
【0219】
さらに、この発明においては、図10に示すステップS8の処理または図12に示すステップS23の処理は、「距離決定処理」を構成する。
【0220】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【0221】
この発明は、GPSの使用が困難な場所でも位置および方位・傾きを検出可能な位置検出装置に適用される。また、この発明は、位置および方位・傾きを精度良く検出可能な位置検出装置に適用される。
【図面の簡単な説明】
【0222】
【図1】この発明の実施の形態による位置検出装置の構成を示す概略ブロック図である。
【図2】図1に示す位置検出手段の構成を示す機能ブロック図である。
【図3】画像処理の方法を説明するための図である。
【図4】画像の補正方法を説明するための図である。
【図5】2次元バーコードの例を示す平面図である。
【図6】2次元バーコードおよび画像のサイズを説明するための図である。
【図7】サイズ比と距離との対応関係を示す対応表の概念図である。
【図8】2次元バーコードに対するカメラ(=携帯電話機)の位置を検出する方法を説明するための図である。
【図9】2次元バーコードに対するカメラ(=携帯電話機)の位置を検出する他の方法を説明するための図である。
【図10】この発明による位置検出の方法を説明するためのフローチャートである。
【図11】図10に示すステップS5の詳細な動作を説明するためのフローチャートである。
【図12】この発明による位置検出の他の方法を説明するためのフローチャートである。
【図13】図12に示すステップS24の詳細な動作を説明するためのフローチャートである。
【図14】図1に示す位置検出装置を実現するためのハード構成を示す図である。
【図15】図1に示す位置検出装置を搭載した携帯電話機の斜視図である。
【図16】図1に示す位置検出装置を用いて位置を検出する場合の具体例を示す図である。
【図17】ディスプレイの表示例を示す図である。
【図18】図1に示す位置検出装置を用いて位置を検出する場合の他の具体例を示す図である。
【図19】2次元バーコードの他の例を示す平面図である。
【図20】2次元バーコードの他の設置方法を説明するための図である。
【図21】四角形の図形を撮影したときの画像を示す図である。
【図22】カメラから2次元バーコードまでの距離を求める方法を説明するための図である。
【図23】カメラの位置を検出する方法を説明するための図である。
【符号の説明】
【0223】
1 カメラ、2 位置検出手段、3 受付手段、4 記憶手段、5 ディスプレイ、6 GPS受信機、7 加速度センサ、10 位置検出装置、20,60,80 2次元バーコード、21 制御手段、22 画像処理手段、23 距離決定手段、24 検出手段、30,40 図形、50 通路、61,62 黒領域、70 書店、71 出入口、90 壁面、100 ハード構成、101 キーパッド、102 CPU、103 ROM、104 RAM、200 携帯電話機、201 矢印、210 本体部、220 蓋部、230,240 処理部。
【技術分野】
【0001】
この発明は、位置検出装置、それにおける位置の検出をコンピュータに実行させるためのプログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体に関し、特に、マークの画像データを用いて位置を検出する位置検出装置、それにおける位置の検出をコンピュータに実行させるためのプログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体に関するものである。
【背景技術】
【0002】
従来、GPS(Global Positioning System)を搭載した携帯電話機が知られている(特許文献1)。この携帯電話機は、GPSによって自己の位置を検出し、その検出した位置を管理サーバへ送信する。このように、従来、GPSによって自己の位置を検出して管理サーバへ知らせる携帯電話機が知られている。
【0003】
また、街頭の各所に設置された2次元バーコードをカメラによって撮影して自己の位置を検出する携帯電話機が知られている(特許文献2)。この2次元バーコードは、設置場所の正確な位置を示す情報として住所の情報および経緯度の情報を含む。そして、携帯電話機は、撮影した2次元バーコードに記録された設置場所の正確な位置情報を読み取り、その読み取った設置場所の正確な位置情報を自己の位置情報とする。
【特許文献1】特開2006−236160号公報
【特許文献2】特開2005−341369号公報
【非特許文献1】出口浩一郎著「画像と空間」,p.48−p.53.
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかし、GPSで測位を行なう従来の携帯電話機は、GPSによって自己の位置を検出するため、地下街およびビルの谷間等の電波が伝搬し難い場所では自己の位置を検出し難いという問題がある。また、GPSだけでは、方位・傾きを検出できない。
【0005】
一方、2次元バーコードで測位を行なう従来の携帯電話機は、2次元バーコードの位置を自己の位置とするため、検出した自己の位置の精度が低下するという問題がある。すなわち、2次元バーコードと携帯電話機との距離を考慮せずに2次元バーコードの位置を携帯電話機の位置とするため、携帯電話機が2次元バーコードから遠い位置で2次元バーコードを撮影する程、携帯電話機の位置の精度が低下する。
【0006】
そこで、この発明は、かかる問題を解決するためになされたものであり、その目的は、GPSの使用が困難な場所でも位置および方位・傾きを検出可能な位置検出装置を提供することである。
【0007】
また、この発明の別の目的は、位置および方位・傾きを精度良く検出可能な位置検出装置を提供することである。
【課題を解決するための手段】
【0008】
この発明によれば、位置検出装置は、撮影器と、画像処理手段と、距離決定手段と、検出手段とを備える。撮影器は、マークを撮影する。画像処理手段は、撮影器によって撮影されたマークの画像をマークを正面から正対して見たときの画像に補正し、その補正結果に基づいてマークに対して当該位置検出装置が存在する向き・傾きに関する方向情報を検出するとともに、補正された画像に基づいてマークに記録されたマークの実際のサイズ、補正された画像のサイズおよびマークに記録されたマークの位置および方位・傾き情報を検出する画像処理を行なう。距離決定手段は、マークの実際のサイズと画像のサイズとのサイズ比を演算し、その演算したサイズ比と距離との対応関係に基づいて、マークと当該位置検出装置との距離を決定する距離決定処理を行なう。検出手段は、マークの位置情報、方向情報および距離に基づいて、当該位置検出装置の位置および方位・傾きを検出する。
【0009】
好ましくは、距離決定手段は、サイズ比と距離との対応関係を示す対応表を保持しており、サイズ比を演算すると、対応表を参照して、演算したサイズ比に対応する距離をマークと当該位置検出装置との距離として検出する。
【0010】
好ましくは、マークは、第1および第2のマークを含む。第1のマークは、実際のサイズおよび位置情報が記録される。第2のマークは、方位・傾き情報が記録される。画像処理手段は、第1および第2のマークの各々に対して画像処理を行ない、方向情報、実際のサイズ、画像のサイズおよび位置情報に加え、方位・傾き情報を検出する。距離決定手段は、画像処理手段による画像処理の結果に基づいて、距離決定処理を行なう。検出手段は、位置情報、方向情報、距離および方位・傾き情報に基づいて、当該位置検出装置の位置および方位・傾きを検出する。
【0011】
好ましくは、撮影器は、複数のマークを撮影する。画像処理手段は、撮影器によって撮影された複数のマークの複数の画像の各々に対して画像処理を行なう。距離決定手段は、画像処理手段による画像処理の結果に基づいて、距離決定処理を行ない、複数のマークと当該位置検出装置との複数の距離を検出する。検出手段は、複数のマークの複数の位置情報、複数のマークに対して当該位置検出装置が存在する向き・傾きに関する複数の方向情報、および複数の距離に基づいて、当該位置検出装置の位置および方位・傾きを検出する。
【0012】
好ましくは、検出手段は、複数の位置および方位・傾き情報、複数の方向情報および複数の距離に基づいて当該位置検出装置の複数の位置および方位・傾きを検出し、その検出した複数の位置および方位・傾きを複数のマークの実際のサイズによって重み付け平均し、当該位置検出装置の位置および方位・傾きを検出する。
【0013】
好ましくは、検出手段は、方位・傾きを取得または推定できるとき、実際のサイズおよび位置情報が記録されたマークから当該位置検出装置の位置および方位・傾きを検出する。
【0014】
好ましくは、検出手段は、位置情報を取得または推定できるとき、実際のサイズおよび方位・傾き情報が記録されたマークから当該位置検出装置の位置および方位・傾きを検出する。
【0015】
好ましくは、マークの位置情報は、絶対位置情報からなる。
【0016】
好ましくは、位置検出装置は、表示手段をさらに備える。表示手段は、検出された当該位置検出装置の位置および方位・傾きを表示する。
【0017】
好ましくは、撮影器、画像処理手段、距離決定手段、検出手段および表示手段は、携帯情報端末に搭載される。そして、画像処理手段、距離決定手段、および検出手段は、携帯情報端末の使用開始に応じて、起動される。
【0018】
好ましくは、位置検出装置は、GPS受信機をさらに備える。GPS受信機は、GPS信号を受信する。そして、画像処理手段、距離決定手段、および検出手段は、GPS受信機がGPS信号を受信できなくなると、起動される。
【0019】
好ましくは、撮影器は、当該位置検出装置が最も安定しているときにマークを撮影する。
【0020】
また、この発明によれば、コンピュータに実行させるためのプログラムは、位置検出装置における位置の検出をコンピュータに実行させるためのプログラムであって、画像処理手段が、撮影器によって撮影されたマークの画像をマークを正面から正対して見たときの画像に補正する補正処理を実行する第1のステップと、画像処理手段が、第1のステップにおける補正結果に基づいてマークに対して位置検出装置が存在する向き・傾きに関する方向情報を検出するとともに、補正された画像に基づいてマークに記録されたマークの実際のサイズ、補正された画像のサイズおよびマークに記録されたマークの位置および方位・傾き情報を検出する画像処理を実行する第2のステップと、距離決定手段が、マークの実際のサイズと画像のサイズとのサイズ比を演算し、その演算したサイズ比と距離との対応関係に基づいて、マークと位置検出装置との距離を決定する距離決定処理を実行する第3のステップと、検出手段が、マークの位置情報、方向情報および距離に基づいて、位置検出装置の位置および方位・傾きを検出する第4のステップとをコンピュータに実行させるためのプログラムである。
【0021】
好ましくは、画像処理手段は、第2のステップにおいて、マークの絶対位置情報を検出し、検出手段は、第4のステップにおいて、マークの絶対位置情報を用いて位置検出装置の位置および方位・傾きを検出する。
【0022】
好ましくは、画像処理手段は、第1のステップにおいて、撮影器によって撮影された複数のマークの複数の画像の各々に対して補正処理を実行するとともに、第2のステップにおいて、補正処理の結果に基づいて、画像処理を実行し、距離決定手段は、第3のステップにおいて、画像処理の結果に基づいて、距離決定処理を行ない、複数のマークと位置検出装置との複数の距離を検出し、検出手段は、第4のステップにおいて、複数のマークの複数の位置情報、複数のマークに対して位置検出装置が存在する向き・傾きに関する複数の方向情報、および複数の距離に基づいて、位置検出装置の位置および方位・傾きを検出する。
【0023】
好ましくは、検出手段は、第4のステップにおいて、複数の位置情報、複数の方向情報および複数の距離に基づいて当該位置検出装置の複数の位置および方位・傾きを検出し、その検出した複数の位置および方位・傾きを複数のマークの実際のサイズによって重み付け平均し、位置検出装置の位置および方位・傾きを検出する。
【0024】
好ましくは、表示手段が、検出された位置検出装置の位置および方位・傾きを表示する第5のステップをさらにコンピュータに実行させる。
【0025】
好ましくは、当該プログラムは、携帯情報端末に搭載され、第1のステップから第5のステップは、携帯情報端末の使用開始に応じて実行される。
【0026】
好ましくは、当該プログラムは、携帯情報端末に搭載され、第1のステップから第5のステップは、携帯情報端末がGPS信号を受信できなくなると、実行される。
【0027】
好ましくは、当該プログラムは、携帯情報端末に搭載され、第1のステップから第5のステップは、携帯情報端末において位置情報を必要とするアプリケーションソフトウェアが起動されると、実行される。
【0028】
さらに、この発明によれば、プログラムを記録したコンピュータ読み取り可能な記録媒体は、請求項11から請求項18のいずれか1項に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【0029】
この発明においては、位置検出装置は、マークを撮影し、その撮影したマークの画像に基づいて、マークと位置検出装置との距離、マークの配置位置およびマークに対する位置検出装置の配置方向を検出するとともに、その検出した距離、配置方向およびマークの位置情報に基づいて位置検出装置の位置を検出する。つまり、位置検出装置は、マークを基準として自己の位置を検出する。
【0030】
したがって、この発明によれば、GPSが使用できない場所においても位置を検出できる。
【0031】
また、この発明によれば、マークを基準として位置検出装置の位置が検出されるので、2次元バーコードの位置をそれを撮影したカメラ(携帯電話機)の位置とする場合に比べ、位置を精度良く検出できる。
【発明を実施するための最良の形態】
【0032】
本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。
【0033】
図1は、この発明の実施の形態による位置検出装置の構成を示す概略ブロック図である。図1を参照して、この発明の実施の形態による位置検出装置10は、カメラ1と、位置検出手段2と、受付手段3と、記憶手段4と、ディスプレイ5と、GPS受信機6と、加速度センサ7とを備える。なお、位置検出装置10は、たとえば、携帯電話機に搭載される。
【0034】
カメラ1は、位置検出手段2から撮影指示PHGを受けると、後述する2次元バーコードを撮影し、その撮影した2次元バーコードの画像Gを位置検出手段2へ出力する。
【0035】
位置検出手段2は、位置検出装置10が搭載された携帯電話機の位置情報PSFGをGPS受信機6から受け、位置検出装置10が搭載された携帯電話機の加速度ACCを加速度センサ7から受け、携帯電話機が使用状態であることを示す信号USEまたは携帯電話機において位置情報を必要とするアプリケーションソフトウェアが起動されたことを示す信号ONを携帯電話機の処理部(図示せず)から受ける。
【0036】
そして、位置検出手段2は、加速度センサ7から受けた加速度ACCに基づいて、携帯電話機のユーザの歩行リズムを検知し、携帯電話機のユーザの歩行周期から携帯電話機が最も安定しているタイミングを検出する。より具体的には、位置検出手段2は、加速度ACCがしきい値ACC_TH以下である期間を内蔵したタイマーによって計測し、その計測した期間が一定期間Tに達したタイミングを携帯電話機が最も安定しているタイミングとして検出する。なお、しきい値ACC_THは、位置検出手段2に予め設定されている。
【0037】
そうすると、位置検出手段2は、位置検出装置10の位置の検出を開始する開始条件を満足したか否かを判定する。そして、位置検出手段2は、開始条件を満足し、携帯電話機が最も安定しているタイミングを検出すると、撮影指示PHGを生成してカメラ1へ出力する。この場合、位置検出手段2は、GPS受信機6から位置情報PSFGを受信しなくなり、その後、一定時間が経過したときに開始条件を満足したと判定する。また、位置検出手段2は、携帯電話機の処理部(図示せず)から信号USEを受けると、開始条件を満足したと判定する。さらに、位置検出手段2は、携帯電話機の処理部(図示せず)から信号ONを受けると、開始条件を満足したと判定する。
【0038】
また、位置検出手段2は、カメラ1から画像Gを受け、2次元バーコードの実際のサイズACSn、画像GのサイズGSnおよび距離Lnからなる数値列[ACSn,GSn,Ln](nは2以上の整数)および表示指示DSPを受付手段3から受ける。
【0039】
そして、位置検出手段2は、受付手段3から受けた数値列[ACSn,GSn,Ln]の実際のサイズACSnおよび画像GのサイズGSnに基づいて、実際のサイズACSnと画像GのサイズGSnとのサイズ比RSn(=GSn/ACSn)を演算し、その演算したサイズ比RSnに距離Lnを対応付ける。位置検出手段2は、この処理をn回実行し、サイズ比RSnと距離Lnとの対応表TBLを作成するとともに、その作成した対応表TBLを記憶手段4に記憶する。
【0040】
さらに、位置検出手段2は、後述する方法によって、画像Gが2次元バーコードの画像であるか否かを判定する。そして、位置検出手段2は、画像Gが2次元バーコードの画像であると判定すると、画像Gを正面から正対して見たときの画像に補正し、その補正した画像GHのサイズGSSを後述する方法によって計測する。なお、位置検出手段2は、画像Gが2次元バーコードの画像でないと判定したとき、位置検出動作を停止する。
【0041】
位置検出手段2は、画像Gを補正すると、その補正結果に基づいて、2次元バーコードに対して携帯電話機が存在する向き・傾きに関する方向情報IFHKを後述する方法によって検出する。また、位置検出手段2は、画像GH(=補正した画像G)に基づいて、2次元バーコードに記録された2次元バーコードの実際のサイズACSRおよび位置情報PSBCを読み出す。
【0042】
そうすると、位置検出手段2は、読み出した2次元バーコードの実際のサイズACSRと計測した画像GHのサイズGSSとのサイズ比RSS(=GSS/ACSR)を演算する。そして、位置検出手段2は、記憶手段4から対応表TBLを読み出し、その読み出した対応表TBLを参照して、サイズ比RSSに対応する距離Lを検出する。その後、位置検出手段2は、位置情報PSBC、方向情報IFHKおよび距離Lに基づいて、後述する方法によって、位置検出装置10(=携帯電話機)の位置PSおよび方位・傾きを検出する。なお、位置検出手段2は、2次元バーコードが配置された方位および2次元バーコードの設置面の傾きに関する方位・傾き情報を予め保持しているので、その保持している方位・傾き情報および方向情報IFHKを用いて位置検出装置10(=携帯電話機)の方位・傾きも検出できる。
【0043】
位置検出手段2は、位置PSを検出した後に受付手段3から表示指示DSPを受けると、記憶手段4から地図データMAPを読み出し、その読み出した地図データMAPに検出した位置PSを記載してディスプレイ5へ出力する。
【0044】
受付手段3は、たとえば、携帯電話機の数字および文字等のボタンからなり、2次元バーコードの実際のサイズACSn、画像GのサイズGSnおよび距離Lnを受付け、その受付けた実際のサイズACSn、画像GのサイズGSnおよび距離Lnを位置検出手段2へ出力する。これは、携帯電話機のユーザが2次元バーコードが配置された地下街を始めて訪れたときに、その地下街に表示された実際のサイズACSn、画像GのサイズGSnおよび距離Lnを位置検出装置10に入力する場合を想定したものである。しかし、実際のサイズACSn、画像GのサイズGSnおよび距離Lnの入力は、煩雑であるので、この発明においては、実際のサイズACSn、画像GのサイズGSnおよび距離Lnを格納したデータベースを地下街に設置しておき、携帯電話機のユーザは、携帯電話機を用いてそのデータベースから実際のサイズACSn、画像GのサイズGSnおよび距離Lnを受信して位置検出装置10へ入力するようにしてもよい。
【0045】
また、受付手段3は、表示指示DSPを受付け、その受付けた表示指示DSPを位置検出手段2へ出力する。
【0046】
記憶手段4は、対応表TBLおよび地図データMAPを記憶する。ディスプレイ5は、位置検出手段2から受けた地図を表示する。
【0047】
GPS受信機6は、GPS衛星から位置検出装置10が搭載された携帯電話機の経緯度を受信し、その受信した経緯度に基づいて、公知の方法によって携帯電話機の位置情報PSFGを演算し、その演算した位置情報PSFGを位置検出手段2へ出力する。
【0048】
加速度センサ7は、位置検出装置10が搭載された携帯電話機の加速度ACCを計測し、その計測した加速度ACCを位置検出手段2へ出力する。
【0049】
図2は、図1に示す位置検出手段2の構成を示す機能ブロック図である。図2を参照して、位置検出手段2は、制御手段21と、画像処理手段22と、距離決定手段23と、検出手段24とを含む。
【0050】
制御手段21は、数値列[ACSn,GSn,Ln]および表示指示DSPを受付手段3から受け、携帯電話機の処理部から信号ON,USEを受け、GPS受信機6から位置情報PSFGを受け、加速度センサ7から加速度ACCを受け、検出手段24から位置PSを受ける。
【0051】
そして、制御手段21は、数値列[ACSn,GSn,Ln]の2次元バーコードの実際のサイズACSnおよび画像GのサイズGSnに基づいて、サイズ比RSnを演算し、演算したサイズ比RSnに距離Lnを対応付ける。制御手段21は、この処理をn回実行し、対応表TBLを作成する。そして、制御手段21は、その作成した対応表TBLを記憶手段4に記憶する。
【0052】
また、制御手段21は、加速度センサ7から受けた加速度ACCに基づいて、上述した方法によって、携帯電話機が最も安定しているタイミングを検出する。そして、制御手段21は、上述した方法によって、位置検出装置10(=携帯電話機)の位置の検出を解しする開始条件を満たしたと判定し、かつ、携帯電話機が最も安定しているタイミングを検出すると、撮影指示PHGを生成してカメラ1へ出力する。
【0053】
さらに、制御手段21は、検出手段24から位置PSを受け、受付手段3から表示指示DSPを受けると、地図データMAPを記憶手段4から読み出し、その読み出した地図データMAPに位置PSを記載する。そして、制御手段21は、位置PSを記載した地図をディスプレイ5へ出力する。
【0054】
画像処理手段22は、カメラ1から画像Gを受け、その受けた画像Gに基づいて、後述する方法によって、画像Gが2次元バーコードの画像であるか否かを判定する。そして、画像処理手段22は、画像Gが2次元バーコードの画像であると判定すると、画像Gを正面から正対して見たときの画像に補正し、その補正した画像GHのサイズGSSを後述する方法によって計測する。なお、画像処理手段22は、画像Gが2次元バーコードの画像でないと判定したとき、画像処理の動作を停止する。
【0055】
画像処理手段22は、画像Gを補正すると、その補正結果に基づいて、2次元バーコードに対して携帯電話機が存在する向き・傾きに関する方向情報IFHKを後述する方法によって検出する。また、画像処理手段22は、画像GHに基づいて、2次元バーコードに記録された2次元バーコードの実際のサイズACSRおよび位置情報PSBCを読み出す。
【0056】
そうすると、画像処理手段22は、計測した画像GHのサイズGSSと読み出した実際のサイズACSRとを距離決定手段23へ出力し、検出した方向情報IFHKと読み出した位置情報PSBCとを検出手段24へ出力する。
【0057】
距離決定手段23は、画像GHのサイズGSSおよび2次元バーコードの実際のサイズACSRを画像処理手段22から受けると、サイズGSSと実際のサイズACSRとのサイズ比RSS(=GSS/ACSR)を演算する。そして、距離決定手段23は、記憶手段4から対応表TBLを読み出し、その読み出した対応表TBLを参照して、サイズ比RSSに対応する距離Lを検出する。そうすると、距離決定手段23は、その検出した距離Lを2次元バーコードと携帯電話機との距離として検出手段24へ出力する。
【0058】
検出手段24は、位置情報PSBCおよび方向情報IFHKを画像処理手段22から受け、距離Lを距離決定手段23から受ける。そして、検出手段24は、位置情報PSBC、方向情報IFHKおよび距離Lに基づいて、後述する方法によって、位置検出装置10(=携帯電話機)の位置PSおよび方位・傾きを検出し、その検出した位置PSおよび方位・傾きを制御手段21へ出力する。なお、検出手段24は、2次元バーコードが配置された方位および2次元バーコードの設置面の傾きに関する方位・傾き情報を予め保持しているので、その保持している方位・傾き情報および方向情報IFHKを用いて位置検出装置10(=携帯電話機)の方位・傾きも検出できる。
【0059】
図3は、画像処理の方法を説明するための図である。図3を参照して、画像処理手段22は、画像Gをカメラ1から受け、その受けた画像Gに対してグレースケール変換を施し、そのグレースケール変換を施した画像を適応型閾値処理によって2値化し、画像G1を取得する。この場合、適応型閾値処理は、グレースケール変換を施した画像G内のドット模様が識別可能なように閾値を決定して画像Gを処理するものである。
【0060】
そして、画像処理手段22は、2値化した画像G1に対して連結成分処理を施し、画像G1を構成する複数の連結成分にラベリングを行なう。より具体的には、画像処理手段22は、同じ値を持つ画素が互いに連結して1つの塊を形成している領域REG1〜REG12を複数の連結成分として抽出し、その抽出した複数の連結成分にそれぞれラベルLB1〜LB12を振り分ける(図3の(a)参照)。これによって、複数の連結成分REG1〜REG12の各々が2次元バーコードの候補領域として抽出される。
【0061】
画像処理手段22は、エッジ抽出フィルタを内蔵しており、連結成分処理した画像G1からエッジ抽出フィルタを用いて複数の連結成分REG1〜REG12の複数の輪郭PRF1〜PRF12を抽出する。より具体的には、画像処理手段22は、エッジ抽出フィルタを用いて、隣り合う画素の濃度値を引き算して複数の連結成分REG1〜REG12の複数の輪郭PRF1〜PRF12を抽出する(図3の(b)参照)。なお、図3の(b)においては、各輪郭PRF1〜PRF12を見易くするために、各連結成分REG1〜REG12の内部における濃度値の引き算の結果を省略している。
【0062】
そして、画像処理手段22は、輪郭PRF1〜PRF12を抽出すると、各輪郭PRF1〜PRF12の四辺を構成する直線のフィッティングを試み、フィッティングが成功した場合、各輪郭PRF1〜PRF12によって囲まれた領域を2次元バーコードの画像であると判定する。一方、画像処理手段22は、フィッティングが失敗した場合、各輪郭PRF1〜PRF12によって囲まれた領域を2次元バーコードの画像ではないと判定する。
【0063】
なお、画像処理手段22は、4個の直線を各輪郭PRF1〜PRF12に沿って配置できるか否かによってフィッティングが成功したか失敗したかを判定する。2次元バーコードは、四角形からなるので、画像Gが2次元バーコードを撮影した画像である場合、4個の直線を各輪郭PRF1〜PRF12に沿って配置できるはずである。したがって、4個の直線を各輪郭PRF1〜PRF12に沿って配置できるか否かによってフィッティングが成功したか否かを判定することにしたものである。
【0064】
次に、画像を補正する方法について説明する。図4は、画像の補正方法を説明するための図である。図4を参照して、画像g1は、たとえば、図3の(b)に示す輪郭PRF2を有するものとする。また、平面PLNは、補正前の画像g1が配置された平面である。さらに、直線SL1は、画像g1に垂直な直線である。さらに、以下に説明する画像g1の補正は、xyz直交座標によって表された空間において実行される。
【0065】
画像処理手段22は、画像g1の輪郭PRF2を構成する直線を移動させ、画像g1を平面PLNに垂直な画像g2に補正する。より具体的には、画像処理手段22は、画像g1の輪郭PRF2を構成する横の直線sl1を保持し、かつ、縦の2本の直線sl2,sl3の一方端を直線sl1の両端に接続させた状態を保持しながら、2本の直線sl2,sl3が平面PLNと略垂直になるように2本の直線sl2,sl3を移動させる。その後、画像処理手段22は、横の直線sl4の両端が、それぞれ、移動させた2本の直線sl2,sl3の他方端に接続されるように直線sl4を移動させる。なお、直線SL2は、画像g2に垂直な直線である。
【0066】
そうすると、画像g2が画像g1と成す角度ψは、直線SL2が直線SL1と成す角度に等しくなる。したがって、画像処理手段22は、角度ψをカメラ1から2次元バーコードを見たときの仰角として検出する。なお、画像処理手段22は、直線SL1,SL2の交点から直線SL1の方向に長さが“1”である直線を引き、その引いた直線の他方端かた直線SL2へ下ろした垂線と直線SL2との交点の座標を検出し、直線SL1,SL2の交点から垂線と直線SL2との交点までの直線の長さを演算し、長さが“1”である直線と、その長さを演算した直線とを用いて角度ψを演算する。
【0067】
その後、画像処理手段22は、画像g2の輪郭を構成する四辺の直線の長さが等しくなるように、画像g2を画像g3に補正する。より具体的には、画像処理手段22は、画像g2の輪郭を構成する直線sl5を保持し、かつ、直線sl6,sl7の一方端を直線sl5の両端に接続させた状態を保持しながら、直線sl6,sl7の長さが直線sl5の長さに等しくなるように直線sl6,sl7を移動させる。画像g2は、xyz座標からなる空間に配置されているので、画像処理手段22は、直線sl5,sl6,sl7の両端の座標を用いて直線sl5,sl6,sl7の長さを容易に演算できる。したがって、画像処理手段22は、直線sl6,sl7を移動させて直線sl6,sl7の長さを演算し、その演算した直線sl6,sl7の長さが直線sl5の長さに等しくなければ、再度、直線sl6,sl7を移動させる。画像処理手段22は、直線sl6,sl7の長さが直線sl5の長さに等しくなるまで、この動作を繰り返し行なう。そして、画像処理手段22は、直線sl6,sl7の長さが直線sl5の長さに等しくなるまで直線sl6,sl7を移動させると、直線sl8の両端が、それぞれ、移動させた直線sl6,sl7の他方端に接続されるように、直線sl8を移動させる。これによって、正方形からなる画像g3が得られる。
【0068】
画像g1は、正方形からなる2次元バーコードを撮影したときの画像であるので、画像g1が正方形からなる画像g3に補正されたことは、画像g1を正面から見た画像g3に補正したことになる。なお、直線SL3は、画像g3に垂直な直線である。
【0069】
そうすると、画像g3が画像g2と成す角度θは、直線SL3が直線SL2と成す角度に等しくなる。したがって、画像処理手段22は、角度θをカメラ1から2次元バーコードを見たときの方位角として検出する。なお、画像処理手段22は、角度ψの演算方法と同じ演算方法によって角度θを演算する。
【0070】
このように、画像処理手段22は、画像g1を正面から見た画像g3に補正し、カメラ1から2次元バーコードを見たときの仰角ψおよび方位角θを検出する。そして、仰角ψおよび方位角θは、2次元バーコードに対してカメラ1(=位置検出装置10)が存在する方向を示すので、画像処理手段22は、角度ψ,θを方向情報IFHKとして検出する。
【0071】
なお、図4においては、画像g1,g2が移動しながら補正されるように記載されているが、実際には、画像g1は、最初に配置された位置において、画像g2およぶ画像g3へ順次補正される。
【0072】
また、画像処理手段22は、輪郭PRF1,PRF3〜PRF12を有する画像を上述した方法によって補正し、方向情報IFHKを検出する。
【0073】
図5は、2次元バーコードの例を示す平面図である。図5を参照して、2次元バーコード20は、自己の実際のサイズACSRおよび自己が配置された位置情報PSBCをドットパターンによって記録する。そして、位置情報PSBCは、座標[x,y,z]からなる。
【0074】
画像処理手段22は、上述した方法によって画像g1を画像g3へ補正すると、その補正した画像g3のドットパターンを検出して2次元バーコードに記録された実際のサイズACSRおよび位置情報PSBCを読み出す。
【0075】
図6は、2次元バーコードおよび画像のサイズを説明するための図である。図6を参照して、図形30は、実際の2次元バーコードを表し、図形40は、2次元バーコードをカメラ1によって撮影した画像を表す。
【0076】
図形30は、1辺の長さが“A”からなる正方形からなり、図形40は、1辺の長さが“a”からなる正方形からなる。
【0077】
たとえば、図形30の4辺の長さの総和(=4A)は、2次元バーコードの実際のサイズACSRになり、図形40の4辺の長さの総和(=4a)は、画像GのサイズGSSになる。したがって、画像処理手段22は、上述した方法によって補正した画像g3の輪郭を構成する正方形の1辺の長さaを計測し、その計測した長さaを4倍することによって画像GのサイズGSSを検出する。なお、画像処理手段22は、画像g3がxyz直交座標からなる空間に配置されているので、画像g3の輪郭を構成する正方形の1辺の両端のxyz座標を検出し、その検出した両端のxyz座標を用いて長さaを検出する。
【0078】
図7は、サイズ比と距離との対応関係を示す対応表TBLの概念図である。図7を参照して、対応表TBLは、サイズ比と距離とからなる。そして、サイズ比RS1〜RSnは、それぞれ、距離L1〜Lnに対応付けられる。
【0079】
したがって、距離決定手段23は、演算したサイズ比RSS(=GSS/ACSR)がサイズ比RS1〜RSnのいずれかに一致するとき、サイズ比RSSに対応する距離(距離L1〜Lnのいずれか)を対応表TBLから抽出することによって距離Lを決定する。
【0080】
また、距離決定手段23は、演算したサイズ比RSS(=GSS/ACSR)がサイズ比RS1〜RSnのいずれかに一致しないとき、すなわち、サイズ比RSSが2つのサイズ比RSn−1,RSn間に存在するとき、次の方法によって距離Lを決定する。距離決定手段23は、サイズ比RSSとサイズ比RSn−1との差ΔRS1と、サイズ比RSnとサイズ比RSSとの差ΔRS2とを演算し、その演算した2つの差ΔRS1,ΔRS2の比によって距離Ln−1,Lnを案分して距離Lを検出する。この場合、距離Ln−1,Lnは、それぞれ、サイズ比RSn−1,Rnに対応する距離である。
【0081】
サイズ比RS1〜RSnの各々は、2次元バーコードの画像のサイズGSSを2次元バーコードの実際のサイズACSRで除算した値からなり、n個のサイズ比RS1〜RSnは、大きい順または小さい順に配置される。n個のサイズ比RS1〜RSnが大きい順に配置された場合、距離Lは、サイズ比RSSがサイズ比RS1からサイズ比RSnに近づくに従って長くなり、n個のサイズ比RS1〜RSnが小さい順に配置された場合、距離Lは、サイズ比RSSがサイズ比RS1からサイズ比RSnに近づくに従って短くなる。
【0082】
なお、この発明においては、サイズ比RS1〜RSnの各々は、2次元バーコードの実際のサイズACSRを2次元バーコードの画像のサイズGSSで除算した値からなっていてもよい。そして、n個のサイズ比RS1〜RSnが大きい順に配置された場合、距離Lは、サイズ比RSSがサイズ比RS1からサイズ比RSnに近づくに従って短くなり、n個のサイズ比RS1〜RSnが小さい順に配置された場合、距離Lは、サイズ比RSSがサイズ比RS1からサイズ比RSnに近づくに従って長くなる。
【0083】
上述した説明からも明らかなように、サイズ比RSn−1,RSn間の間隔によって、距離Lの精度が異なる。すなわち、距離Lは、サイズ比RSn−1,RSn間の間隔を小さくする程、精度が高くなり、サイズ比RSn−1,RSn間の間隔を大きくする程、精度が低下する。この発明においては、要求される距離Lの精度に応じて、サイズ比RSn−1,RSn間の間隔を設定する。
【0084】
なお、この発明においては、サイズ比RSn−1,RSn間の間隔は、全ての隣接する2つのサイズ比間で、同じあってもよく、異なっていてもよい。
【0085】
図8は、2次元バーコードに対するカメラ1(=携帯電話機)の位置PSを検出する方法を説明するための図である。なお、2次元バーコードに対するカメラ1(=携帯電話機)の位置PSの検出は、xyz直交座標からなる空間において実行される。
【0086】
図8を参照して、検出手段24は、画像処理手段22から画像g1、位置情報PSBCおよび方向情報IFHKを受け、距離決定手段23から距離Lを受けると、画像g1の中心がxyz直交座標の原点Oに一致するように画像g1を平面PLN上に配置する。すなわち、検出手段24は、画像g1の元になる2次元バーコードの位置[x0,y0,z0]を原点Oに移動して画像g1を平面PLN上に配置する。
【0087】
そして、検出手段24は、一方端が原点Oに一致し、長さが距離Lに一致し、さらに、画像g1に垂直になるように直線SL4を引く。その後、検出手段24は、方向情報IFHKを構成する角度[ψ,θ]を検出し、画像g1の中心を原点Oに保持し、かつ、直線SL4と画像g1との垂直性を保持したまま、画像g1が平面PLNに垂直になるように画像g1および直線SL4を角度ψだけ回転させる。これによって、直線SL4は、直線SL5になる。
【0088】
引き続いて、検出手段24は、直線SL5の他方端TP1の座標[x1,y1,z1]を検出する。そして、検出手段24は、直線SL5の一方端を原点Oに一致させ、かつ、他方端TP1のz座標(=z1)を保持したまま、直線SL5をy軸方向へ角度θだけ回転させる。これによって、直線SL5は、直線SL6になる。
【0089】
そうすると、検出手段24は、直線SL6の他方端TP2の座標[x2,y2,z1]を検出する。直線SL6の一方端は、xyz直交座標の原点Oに配置されているが、本来、2次元バーコードの位置を示す座標[x0,y0,z0]を有するので、検出手段24は、検出した座標[x2,y2,z1]に座標[x0,y0,z0]を加算して座標[x0+x2,y0+y2,z0+z1]を演算する。そして、検出手段24は、その演算した座標[x0+x2,y0+y2,z0+z1]をカメラ1(=携帯電話機)の位置PSとして検出する。
【0090】
なお、座標[x0,y0,z0]が2次元バーコードの絶対位置からなる場合、座標[x0+x2,y0+y2,z0+z1]は、カメラ1(=携帯電話機)の絶対位置を示し、座標[x0,y0,z0]が2次元バーコードの相対位置からなる場合、座標[x0+x2,y0+y2,z0+z1]は、カメラ1(=携帯電話機)の相対位置を示す。
【0091】
したがって、検出手段24は、位置情報PSBC、方向情報IFHKおよび距離Lに基づいて、カメラ1(=携帯電話機)の相対位置PSまたは絶対位置PSを検出する。
【0092】
図9は、2次元バーコードに対するカメラ1(=携帯電話機)の位置を検出する他の方法を説明するための図である。
【0093】
図9を参照して、画像処理手段22は、2次元バーコードBC1の画像g4を上述した方法によって処理し、2次元バーコードBC1の実際のサイズACSR1、画像g4のサイズGSS1、位置情報PSBC1および方向情報IFHK1を検出するとともに、実際のサイズACSR1および画像g4のサイズGSS1を距離決定手段23へ出力し、位置情報PSBC1および方向情報IFHK1を検出手段24へ出力する。
【0094】
また、画像処理手段22は、2次元バーコードBC2の画像g5を上述した方法によって処理し、2次元バーコードBC2の実際のサイズACSR2、画像g5のサイズGSS2、位置情報PSBC2および方向情報IFHK2を検出するとともに、実際のサイズACSR2および画像g5のサイズGSS2を距離決定手段23へ出力し、位置情報PSBC2および方向情報IFHK2を検出手段24へ出力する。
【0095】
さらに、検出手段24は、2次元バーコードBC3の画像g6を上述した方法によって処理し、2次元バーコードBC3の実際のサイズACSR3、画像g6のサイズGSS3、位置情報PSBC3および方向情報IFHK3を検出するとともに、実際のサイズACSR3および画像g6のサイズGSS3を距離決定手段23へ出力し、位置情報PSBC3および方向情報IFHK3を検出手段24へ出力する。
【0096】
距離決定手段23は、実際のサイズACSR1、画像g4のサイズGSS1および対応表TBLに基づいて、上述した方法によって、2次元バーコードBC1とカメラ1(=携帯電話機)との距離LBC1を検出する。同様にして、距離決定手段23は、実際のサイズACSR2、画像g5のサイズGSS2および対応表TBLに基づいて2次元バーコードBC2とカメラ1(=携帯電話機)との距離LBC2を検出し、実際のサイズACSR3、画像g6のサイズGSS3および対応表TBLに基づいて2次元バーコードBC3とカメラ1(=携帯電話機)との距離LBC3を検出する。そして、距離決定手段23は、距離LBC1,LBC2,LBC3を検出手段24へ出力する。
【0097】
そうすると、検出手段24は、位置情報PSBC1、方向情報IFHK1および距離LBC1に基づいて、上述した方法によって、距離LBC1を有する直線SL7を取得し、直線SL7の他方端TP3の座標[x3,y3,z3]を検出し、その検出した座標[x3,y3,z3]に2次元バーコードBC1の位置を示す座標[x01,y01,z01]を加算して座標[x01+x3,y01+y3,z01+z3]を演算する。
【0098】
また、検出手段24は、位置情報PSBC2、方向情報IFHK2および距離LBC2に基づいて、上述した方法によって、距離LBC2を有する直線SL8を取得し、直線SL8の他方端TP4の座標[x4,y4,z4]を検出し、その検出した座標[x4,y4,z4]に2次元バーコードBC2の位置を示す座標[x02,y02,z02]を加算して座標[x02+x4,y02+y4,z02+z4]を演算する。
【0099】
さらに、検出手段24は、位置情報PSBC3、方向情報IFHK3および距離LBC3に基づいて、上述した方法によって、距離LBC3を有する直線SL9を取得し、直線SL9の他方端TP5の座標[x5,y5,z5]を検出し、その検出した座標[x5,y5,z5]に2次元バーコードBC3の位置を示す座標[x03,y03,z03]を加算して座標[x03+x5,y03+y5,z03+z5]を演算する。
【0100】
そして、検出手段24は、座標[x01+x3,y01+y3,z01+z3]、座標[x02+x4,y02+y4,z02+z4]および座標[x03+x5,y03+y5,z03+z5]が相互に一致する場合、これらの3個の座標をカメラ1(=携帯電話機)の位置PSとして検出する。
【0101】
一方、座標[x01+x3,y01+y3,z01+z3]、座標[x02+x4,y02+y4,z02+z4]および座標[x03+x5,y03+y5,z03+z5]が相互に一致しない場合、検出手段24は、画像g4〜g6のサイズGSS1〜GSS3による座標[x01+x3,y01+y3,z01+z3]、座標[x02+x4,y02+y4,z02+z4]および座標[x03+x5,y03+y5,z03+z5]の重み付け平均を演算してカメラ1(=携帯電話機)の位置PSを検出する。
【0102】
より具体的には、3個のサイズGSS1,GSS2,GSS3の比をα:β:γ(α,β,γは、α+β+γ=1を満たす実数)とすると、検出手段24は、α(x01+x3)+β(x02+x4)+γ(x03+x5)、α(y01+y3)+β(y02+y4)+γ(y03+y5)およびα(z01+z3)+β(z02+z4)+γ(z03+z5)を演算して座標[x6,y6,z6]を得る。そして、検出手段24は、座標[x6,y6,z6]をカメラ1(=携帯電話機)の位置PSとして検出する。
【0103】
このように、この発明においては、位置検出手段2は、3個の2次元バーコードBC1〜BC3の画像を撮影してカメラ1(=携帯電話機)の位置PSを検出してもよく、一般的には、複数の2次元バーコードの画像を撮影してカメラ1(=携帯電話機)の位置PSを検出してもよい。
【0104】
図10は、この発明による位置検出の方法を説明するためのフローチャートである。図10を参照して、一連の動作が開始されると、位置検出手段2の制御手段21は、上述した方法によって、位置検出を開始する開始条件を満足したか否かを判定し(ステップS1)、開始条件を満足したと判定すると、さらに、上述した方法によって携帯電話機が安定しているか否かを判定する(ステップS2)。そして、制御手段21は、携帯電話機が安定していると判定すると、撮影指示PHGを生成してカメラ1へ出力する(ステップS3)。
【0105】
カメラ1は、制御手段21からの撮影指示PHGに応じて、2次元バーコードを撮影し(ステップS4)、その撮影した2次元バーコードの画像を位置検出手段2へ出力する。
【0106】
位置検出手段2の画像処理手段22は、カメラ1から2次元バーコードの画像を受け、その受けた画像を補正する(ステップS5)。その後、画像処理手段22は、補正された画像のサイズGSSを上述した方法によって検出するとともに(ステップS6)、補正された画像のドットパターンを解析して2次元バーコードの位置情報PSBCおよび実際のサイズACSRを検出する(ステップS7)。そして、画像処理手段22は、画像のサイズGSSおよび実際のサイズACSRを距離決定手段23へ出力し、位置情報PSBCおよびステップS5に示す画像の補正によって得られた方向情報IFHKを検出手段24へ出力する。
【0107】
その後、距離決定手段23は、画像のサイズGSSおよび実際のサイズACSRに基づいて、上述した方法によって、2次元バーコードとカメラ1との距離Lを決定し(ステップS8)、その決定した距離Lを検出手段24へ出力する。
【0108】
そして、検出手段24は、位置情報PSBC、方向情報IFHKおよび距離Lに基づいて、上述した方法によって、カメラ1の位置および方位・傾きPSを検出し(ステップS9)、その検出した位置および方位・傾きPSを制御手段21へ出力する。
【0109】
制御手段21は、受付手段3から表示指示DSPを受けると、記憶手段4から地図データMAPを読み出し、その読み出した地図データMAPに検出手段24から受けた位置および方位・傾きPSを記載してディスプレイ5へ出力する。そして、ディスプレイ5は、制御手段21から受けた地図データMAPに基づいて、位置および方位・傾きPSが記載された地図を表示する(ステップS10)。これによって、携帯電話機のユーザは、自分の位置を知ることができる。そして、一連の動作が終了する。
【0110】
なお、ステップS7において、2次元バーコードの位置情報として絶対位置情報が検出された場合、ステップS9において検出されたカメラ1の位置および方位・傾きPSは、絶対位置からなる。また、ステップS7において、2次元バーコードの位置情報として相対位置情報が検出された場合、ステップS9において検出されたカメラ1の位置および方位・傾きPSは、相対位置からなる。
【0111】
図11は、図10に示すステップS5の詳細な動作を説明するためのフローチャートである。図11を参照して、図10に示すステップS4の後、画像処理手段22は、カメラ1から受けた画像に対してグレースケール変換を施し、適応型閾値処理によって画像を2値化する(ステップS51)。
【0112】
そして、画像処理手段22は、上述したラベリングおよび連結成分処理によって2次元バーコードの候補領域を抽出するとともに(ステップS52)、その抽出した2次元バーコードの候補領域の輪郭を上述した方法によって抽出し、2次元バーコードの黒枠を検出する(ステップS53)。
【0113】
引き続いて、画像処理手段22は、2次元バーコードの黒枠画像に基づいて、黒枠画像の四辺を構成する直線のフィッティングを試行する(ステップS54)。そして、画像処理手段22は、フィッティングが成功したか否かを判定する(ステップS55)。この場合、画像処理手段22は、黒枠画像の縦の2本の直線に平行な2本の直線SL1vtc,SL2vtcと、黒枠画像の横の2本の直線に平行な2本の直線SL1hzt,SL2hztとを用意し、2本の直線SL1vtc,SL2vtcをそれぞれ黒枠画像の縦の2本の直線上へ配置でき、2本の直線SL1hzt,SL2hztをそれぞれ黒枠画像の横の2本の直線上へ配置できたか否かを判定することによってフィッティングが成功したか否かを判定する。
【0114】
そして、ステップS55において、フィッティングが成功しなかったと判定されたとき、画像処理手段22は、画像が2次元バーコードの画像ではないと判断し(ステップS56)、画像処理を停止する。その後、一連の動作は、図10に示す“終了”へ移行する。
【0115】
一方、ステップS55において、フィッティングが成功したと判定されたとき、画像処理手段22は、サブピクセルレベルでのフィッティングを行ない、直線フィッティングを高精度化する(ステップS57)。
【0116】
その後、画像処理手段22は、4直線の情報を用い、上述した方法によって2次元バーコードの画像を補正し、方向情報IFHKを検出する(ステップS58)。そして、画像処理手段22は、予め内蔵している2次元バーコードの画像のリストを用いて、抽出された画像とリストの画像とのマッチングを行ない(ステップS59)、確信度を演算する。
【0117】
その後、画像処理手段22は、2次元バーコードの番号と確信度とを出力する(ステップS60)。そして、一連の動作は、図10のステップS6へ移行する。
【0118】
図12は、この発明による位置検出の他の方法を説明するためのフローチャートである。図12に示すフローチャートは、図10に示すフローチャートのステップS4〜ステップS9をステップS21〜ステップS24に代えたものであり、その他は、図10に示すフローチャートと同じである。
【0119】
図12を参照して、上述したステップS1〜ステップS3が順次実行された後、カメラ1は、撮影指示PHGに応じて、複数の2次元バーコードを撮影し(ステップS21)、その撮影した複数の2次元バーコードの画像を位置検出手段2へ出力する。
【0120】
位置検出手段2の画像処理手段22は、複数の2次元バーコードの複数の画像をカメラ1から受け、その受けた複数の画像の各々を処理する(ステップS22)。この場合、画像処理手段22は、図10に示すステップS5〜S7を各画像に繰り返し実行することによって複数の画像の各々を処理する。これによって、複数の2次元バーコードの複数の実際のサイズACSR、複数の画像の複数のサイズGSSおよび複数の2次元バーコードに対してカメラ1が存在する向き・傾きに関する複数の方向情報IFHKが検出される。
【0121】
その後、距離決定手段23は、画像処理の結果に基づいて、複数の2次元バーコードとカメラ1との複数の距離を決定する(ステップS23)。この場合、距離決定手段23は、図10に示すステップS8を繰り返し実行することによって複数の距離を決定する。
【0122】
そして、検出手段24は、複数の方向情報IFHK、複数の位置情報PSBCおよび複数の距離に基づいて、カメラ1の位置および方位・傾きPSを検出する(ステップS24)。この場合、検出手段24は、図10に示すステップS9を繰り返し実行することによって、複数の2次元バーコードに基づいて検出したカメラ1の複数の座標を取得し、その取得した複数の座標に基づいて、カメラ1の位置および方位・傾きPSを検出する。
【0123】
その後、上述したステップS10が実行される。
【0124】
図13は、図12に示すステップS24の詳細な動作を説明するためのフローチャートである。図13を参照して、図12に示すステップS23の後、検出手段24は、複数の2次元バーコードに基づいて検出したカメラ1の複数の座標が相互に一致するか否かを判定する(ステップS241)。
【0125】
そして、検出手段24は、複数の座標が相互に一致すると判定したとき、その一致した複数の座標をカメラ1の位置および方位・傾きPSとして検出する(ステップS242)。
【0126】
一方、検出手段24は、複数の座標が相互に一致しないと判定したとき、複数の2次元バーコードを撮影して得られた複数の画像の複数のサイズの比を演算し(ステップS243)、その演算した比による複数の座標の重み付け平均を演算する(ステップS244)。
【0127】
その後、検出手段24は、演算して得られた座標をカメラ1の位置および方位・傾きPSとして検出する(ステップS245)。
【0128】
そして、ステップS242またはステップS245の後、一連の動作は、図12に示すステップS10へ移行する。
【0129】
上述したように、この発明においては、カメラ1によって撮影した2次元バーコードの画像に基づいて、2次元バーコードの位置、2次元バーコードに対してカメラ1が存在する方向、および2次元バーコードとカメラ1との距離を取得し、その取得した2次元バーコードの位置、2次元バーコードに対してカメラ1が存在する方向、および2次元バーコードとカメラ1との距離に基づいて、2次元バーコードを基準にしてカメラ1の位置および方位・傾きを検出する。
【0130】
したがって、この発明によれば、GPSの使用が困難な場所でもカメラ1の位置および方位・傾きを検出できる。また、2次元バーコードとカメラ1との距離を取得し、2次元バーコードの位置を基準としてカメラ1の位置および方位・傾きを検出するので、カメラ1の位置および方位・傾きを精度良く検出できる。
【0131】
図14は、図1に示す位置検出装置10を実現するためのハード構成を示す図である。図14を参照して、ハード構成100は、カメラ1と、ディスプレイ5と、GPS受信機6と、加速度センサ7と、キーパッド101と、CPU(Central Processing Unit)102と、ROM(Read Only Memory)103と、RAM(Random Access Memory)104と、バスBSとを備える。なお、ハード構成100は、携帯電話機に搭載される。
【0132】
カメラ1、ディスプレイ5、GPS受信機6、加速度センサ7、キーパッド101、CPU102、ROM103およびRAM104は、バスBSを介して相互に連結される。
【0133】
キーパッド101は、図1に示す受付手段3の機能を果たし、CPU102は、図1に示す位置検出手段2の機能を果たし、ROM103は、図1に示す記憶手段4の機能を果たすとともに、図10および図11に示すフローチャートまたは図12および図13に示すフローチャートをこの発明によるプログラムとして格納する。また、RAM104は、ワークメモリとして機能する。
【0134】
CPU102は、キーパッド101を介して数値列[ACSn,GSn,Ln]を受けると、その受けた数値列[ACSn,GSn,Ln]に基づいて、上述した方法によって対応表TBLを作成してROM103に格納する。
【0135】
また、CPU102は、携帯電話機の処理部から携帯電話機の電源がオンされたことを示す信号PWONを受けると、ROM103に格納されたプログラムを読み出して実行し、カメラ1から受けた画像に基づいて、上述した方法によって、カメラ1(=携帯電話機)の位置および方位・傾きPSを検出する。
【0136】
そして、CPU102は、キーパッド101から表示指示DSPを受けると、ROM103から地図データMAPを読み出し、その読み出した地図データMAPに位置および方位・傾きPSを記載してディスプレイ5へ出力する。ディスプレイ5は、CPU102から受けた地図データMAPに基づいて、位置および方位・傾きPSを記載した地図を表示する。
【0137】
なお、カメラ1から受けた画像を図10のステップ4〜ステップS7または図12のステップS22に従って処理するCPU102は、「画像処理手段」を構成する。
【0138】
また、図10に示すステップS8または図12のステップS23に従って距離を決定するCPU102は、「距離決定手段」を構成する。
【0139】
さらに、図10のステップS9または図12のステップS24に従ってカメラ1の位置および方位・傾きPSを検出するCPU102は、「検出手段」を構成する。
【0140】
さらに、プログラム(図10および図11に示すフローチャートまたは図12および図13に示すフローチャートからなる)を格納するROM103は、「コンピュータ(CPU102)読み取り可能な記録媒体」を構成する。
【0141】
図15は、図1に示す位置検出装置10を搭載した携帯電話機の斜視図である。図15を参照して、携帯電話機200は、本体部210と、蓋部220とを備える。蓋部220は、一方端が本体部210と連結され、矢印201で示す方向へ開閉可能である。したがって、携帯電話機200は、折り畳み式の携帯電話機である。
【0142】
本体部210は、キーパッド101、および処理部230,240を含む。処理部230は、図14に示すCPU102、ROM103およびRAM104からなる。
【0143】
処理部240は、携帯電話機200の電源がオンされると、信号PWONを生成して処理部230へ出力し、携帯電話機200が使用状態であるとき、信号USEを生成して処理部230へ出力し、携帯電話機200において位置情報を必要とするアプリケーションソフトウェアが起動されると、信号ONを生成して処理部230へ出力する。なお、処理部240は、蓋部220が開いたことを検知して信号USEを生成する。
【0144】
また、処理部240は、電話機能およびメール機能等の携帯電話機の本来の機能に関する処理を実行する。
【0145】
蓋部220は、カメラ1、ディスプレイ5、GPS受信機6および加速度センサ7を含む。
【0146】
携帯電話機200のユーザは、キーパッド101を介して数値列[ACSn,GSn,Ln]および検出された位置および方位・傾きPSの表示指示DSPを入力する。
【0147】
携帯電話機200の電源がオンされると、処理部240は、信号PWONを生成して処理部230へ出力する。そして、処理部230のCPU102は、信号PWONの受信に応じて、上述した図10および図11に示すフローチャート(または図12および図13に示すフローチャート)からなるプログラムをROM103から読み出して実行する。
【0148】
その後、携帯電話機200の蓋部220が開くと、処理部240は、携帯電話機200が使用状態になったことを検知し、信号USEを生成して処理部230へ出力する。そして、処理部230のCPU102は、上述した方法によって、位置検出を開始する開始条件を満足したと判定し、かつ、加速度センサ7から受けた加速度ACCに基づいて携帯電話機200が安定しているタイミングを検出すると、上述した方法によってカメラ1の位置および方位・傾きPSを検出し、ユーザからの表示指示DSPに応じて、検出した位置および方位・傾きPSをディスプレイ5に表示するので、携帯電話機200が使用状態であるとき、またはGPS信号を受信できなくなったとき、または携帯電話機200において位置情報が必要なアプリケーションソフトウェアが起動されたとき、常時、カメラ1の位置および方位・傾きを検出する動作が実行される。
【0149】
したがって、ユーザは、携帯電話機200の電話機能およびメール機能等の位置検出に係る機能以外の機能を通常通り使用しながら、自己の位置を知ることができる。
【0150】
図16は、図1に示す位置検出装置10を用いて位置を検出する場合の具体例を示す図である。また、図17は、ディスプレイ5の表示例を示す図である。図16を参照して、2次元バーコードBC1〜BC5が地下街の通路50に配置されている。そして、2次元バーコードBC1〜BC5の各々は、図5に示す2次元バーコード20からなり、配置位置の位置情報PSBCおよび実際のサイズACSRがドットパターンによって記録されている。そして、地下街には、たとえば、書店70が通路50に面して配置されている。
【0151】
位置情報PSBCが相対位置からなる場合、位置情報PSBCは、たとえば、書店70の出入口71の点71Aを原点としたxyz座標からなる。
【0152】
携帯電話機200のユーザは、携帯電話機200のディスプレイ5を見ながら通路50を歩行している。CPU102は、携帯電話機200が地下街に存在しているので、GPSが使用不可であると判定し、携帯電話機200が使用されているので、処理部240から信号USEを受ける。そして、CPU102は、加速度ACCに基づいて携帯電話機200が最も安定しているタイミングを検出すると、カメラ1に撮影指示PHGを出力し、カメラ1は、2次元バーコードBC3を撮影し、その撮影した2次元バーコードBC3の画像をCPU102へ出力する。
【0153】
そうすると、CPU102は、カメラ1から受けた画像に基づいて、上述した方法によってカメラ1の位置および方位・傾きPSを検出する。そして、携帯電話機200のユーザは、表示指示DSPをキーパッド101を介して入力すると、カメラ1の位置および方位・傾き(=自己の位置)PSがディプレイ5に表示される(図17の(a)の星印参照)。これによって、携帯電話機200のユーザは、携帯電話機200を普通に使用しながら自己の位置を知ることができる。
【0154】
なお、CPU102は、カメラ1の位置(=ユーザの位置)に追加してカメラ1の位置に関連する情報をディスプレイ5に表示してもよい。カメラ1の位置に関連する情報としては、たとえば、書店70におけるベストセラーのランキングが想定される(図17の(b)参照)。この場合、CPU102は、地下街における各店舗の情報を各店舗のホームページにアクセスして取得し、RAM104に記憶しておき、検出された位置および方位・傾きPSを地図に記載するときに、関連情報をRAM104から読み出してディスプレイ5に表示する。
【0155】
CPU102は、携帯電話機200のユーザが通路50を進行するに従って、異なる2次元バーコードBC4,BC5の画像に基づいてカメラ1の位置(=ユーザの位置)PSを検出してディスプレイ5に表示する。これによって、携帯電話機200のユーザは、通路50を目的地に向かって歩行していることを認識できる。
【0156】
図18は、図1に示す位置検出装置10を用いて位置を検出する場合の他の具体例を示す図である。図18を参照して、2次元バーコードBC11〜BC16,BC21〜BC26,BC31〜BC36,BC41〜BC46,BC51〜BC56が碁盤目状に地下街の通路50に配置されている。
【0157】
2次元バーコードBC11〜BC16,BC21〜BC26,BC31〜BC36,BC41〜BC46,BC51〜BC56の各々は、図5に示す2次元バーコード20からなり、配置位置の位置情報PSBCおよび実際のサイズACSRがドットパターンによって記録されている。
【0158】
図18に示す場合も、CPU102は、ユーザが携帯電話機200を通常通り使用している状態でカメラ1によって複数の2次元バーコードBC22,BC23,BC32,BC33の複数の画像を取得し、その取得した複数の画像に基づいて、上述した方法によって、カメラ1の位置および方位・傾きPSを検出する。そして、携帯電話機200のユーザは、表示指示DSPをキーパッド101を介して入力すると、カメラ1の位置(=自己の位置)PSがディプレイ5に表示される(図17の(a),(b)参照)。これによって、携帯電話機200のユーザは、携帯電話機200を普通に使用しながら自己の位置を知ることができる。
【0159】
図19は、2次元バーコードの他の例を示す平面図である。図19を参照して、2次元バーコード60は、上側の両端に配置された2つの黒領域61,62を含み、自己が配置された位置の方位情報ORBCをドットパターンによって記録する。すなわち、2次元バーコード60は、必ず、2つの黒領域61,62を含む2次元バーコードからなる。
【0160】
方位情報ORBCは、2次元バーコード60が携帯電話機200のユーザが歩行する通路50または道路等に配置される場合、東、西、南、北、北東、東南(または南東)、北西(または西北)、南西(または西南)、東北東、東南東、北北東、西北西、北北西、西南西、南南西および南南東のいずれかからなる。
【0161】
そして、2次元バーコード60に記録された方位は、黒領域61,62が上側に配置されるように2次元バーコード60を見たときの方位を示す。たとえば、“東”という方位が2次元バーコード60に記録されていた場合、黒領域61,62が上側に配置されるように2次元バーコード60を見たならば、携帯電話機200のユーザは、“東”を向いているのであり、黒領域61,62が下側に配置されるように2次元バーコード60を見たならば、携帯電話機200のユーザは、“西”を向いているのであり、黒領域61,62が左側に配置されるように2次元バーコード60を見たならば、携帯電話機200のユーザは、“南”を向いているのであり、黒領域61,62が右側に配置されるように2次元バーコード60を見たならば、携帯電話機200のユーザは、“北”を向いている。
【0162】
また、画像処理手段22は、上述した画像補正によって得られた方向情報IFHK=[ψ,θ]の角度θを用いれば、北東、東南(または南東)、北西(または西北)、南西(または西南)、東北東、東南東、北北東、西北西、北北西、西南西、南南西および南南東の方位も検出可能である。
【0163】
したがって、画像処理手段22は、2次元バーコード60の画像を処理して方位情報ORBCを読み取るとともに、黒領域61,62がどちら側に見えるかによってユーザの進行方向DIRを検出できる。
【0164】
2次元バーコード60は、2次元バーコード20(図5参照)とともに、地下街の通路50およびビルの壁面等に配置される。そして、2次元バーコード20,60が一緒に用いられた場合、位置検出手段2の画像処理手段22は、2次元バーコード60の画像から方位情報ORBCを読み出し、その読み出した方位情報ORBCと2次元バーコード60の画像とに基づいてユーザの進行方向DIRを検出して検出手段24へ出力する。
【0165】
検出手段24は、位置情報PSBC、方向情報IFHKおよび距離Lに基づいて、上述した方法によって、カメラ1(=携帯電話機200)の位置および方位・傾きPSを検出するとともに、その検出した位置および方位・傾きPSと画像処理手段22から受けた進行方向DIRとを制御手段21へ出力する。
【0166】
制御手段21は、検出手段24から受けた位置PSを地図に記載してディスプレイ5へ出力するとともに、検出手段24から受けた進行方向DIRをディスプレイ5へ出力する。そして、ディスプレイ5は、ユーザの位置PSを記載した地図およびユーザの進行方向DIRを表示する。
【0167】
なお、位置および方位・傾きPSおよび進行方向DIRの検出は、図10および図11に示すフローチャート(または図12および図13に示すフローチャート)に従って実行される。この場合、図10および図12に示すステップS10において、進行方向DIRも表示される。
【0168】
また、方位情報ORBCは、ビルの壁面に配置される場合、東面、西面、南面、北面、北東面、東南面(または南東面)、北西面(または西北面)、南西面(または西南面)、東北東面、東南東面、北北東面、西北西面、北北西面、西南西面、南南西面および南南東面のいずれかからなる。
【0169】
この場合、画像処理手段22は、2次元バーコード60の画像に基づいて方位情報ORBCを読み取り、その読み取った方位情報ORBCを検出手段24へ出力する。そして、検出手段24は、位置情報PSBC、方向情報IFHKおよび距離Lに基づいて、カメラ1(=携帯電話機200)の位置および方位・傾きPSを検出するとともに、その検出した位置および方位・傾きPSと画像処理手段22から受けた方位情報ORBCとを制御手段21へ出力する。
【0170】
制御手段21は、検出手段24から受けた位置および方位・傾きPSを地図に記載してディスプレイ5へ出力するとともに、検出手段24から受けた方位情報ORBCに基づいて、たとえば、「ユーザが○○ビルの南側を歩行している」という情報を作成してディスプレイ5へ出力する。そして、ディスプレイ5は、ユーザの位置PSを記載した地図および「ユーザが○○ビルの南側を歩行している」という情報を表示する。
【0171】
図18においては、複数の2次元バーコードBC11〜BC16,BC21〜BC26,BC31〜BC36,BC41〜BC46,BC51〜BC56の各々は、位置情報PSBCおよび実際のサイズACSRを記録した2次元バーコード20(図5参照)からなると説明したが、この発明においては、これに限らず、2次元バーコードBC11,BC13,BC15,BC22,BC24,BC26,BC31,BC33,BC35,BC42,BC44,BC46,BC51,BC53,BC55の各々は、2次元バーコード20からなり、2次元バーコードBC12,BC14,BC16,BC21,BC23,BC25,BC32,BC34,BC36,BC41,BC43,BC45,BC52,BC54,BC56の各々は、2次元バーコード60からなっていてもよい。つまり、複数の2次元バーコードBC11〜BC16,BC21〜BC26,BC31〜BC36,BC41〜BC46,BC51〜BC56は、位置情報PSBCおよび実際のサイズACSRが記録された2次元バーコード20と、方位情報ORBCが記録された2次元バーコード60とが市松模様を形成するように配置されていてもよい。
【0172】
これによって、カメラ1は、位置情報PSBCおよび実際のサイズACSRが記録された2次元バーコード20と、方位情報ORBCが記録された2次元バーコード60とを同時に撮影することができ、ユーザの位置PSおよび進行方向DIRを正確に取得できる。
【0173】
また、位置情報PSBCおよび実際のサイズACSRが記録された2次元バーコード20と、方位情報ORBCが記録された2次元バーコード60とを用いることによって、各2次元バーコード20,60に記録される情報を少なくでき、2次元バーコードを構成するドット密度を低くできる。その結果、2次元バーコード20,60の認識率を高くできる。
【0174】
図20は、2次元バーコードの他の設置方法を説明するための図である。図20を参照して、2次元バーコード80は、通路50を挟んで書店70の向かい側の壁面90に配置される。
【0175】
2次元バーコード80は、2次元バーコード20(図5参照)または2次元バーコード60(図19参照)からなり、表面が赤外線インクによって印刷されている。この場合、位置検出装置10のカメラ1は、赤外線カメラからなる。
【0176】
赤外線インクは、人間の目には見えないので、携帯電話機200のユーザは、2次元バーコード80を認識しないが、カメラ1は、2次元バーコード80を撮影し、位置検出手段2は、カメラ1によって撮影された2次元バーコードの画像に基づいて、上述した方法によってカメラ1(=携帯電話機200)の位置および方位・傾きPSおよび/または進行方向DIRを検出し、ディスプレイ5は、位置および方位・傾きPSおよび/または進行方向DIRを表示する。
【0177】
したがって、携帯電話機200のユーザは、壁面90に配置された2次元バーコード80を認識せず、位置および方位・傾きPSの検出動作が行なわれていることも認識せずに、自己の位置および方位・傾きPSおよび/または進行方向DIRを知りたいと思ったときに表示指示DSPをキーパッド101を介して入力するだけで、自己の位置および方位・傾きPSおよび/または進行方向DIRを知ることができる。
【0178】
2次元バーコード80は、壁面90に貼付された広告の一部に配置されてもよい。これによって、地下街の景観を損なうことなく、携帯電話機200のユーザの位置および方位・傾きPSおよび/または進行方向DIRを検知できる。
【0179】
この発明においては、次の方法によって、距離Lおよび方向情報IFHKが決定されてもよい。図21は、四角形の図形を撮影したときの画像を示す図である。図21を参照して、四角形の図形を撮影すると、画像g1が得られる。
【0180】
画像g1の4頂点の画像平面上での座標を(x1,y1),(x2,y2),(x3,y3),(x4,y4)とすると、2つの点(x1,y1),(x2,y2)を通る直線は、a1x+b1y=c1によって表され、a1,b1,c1は、次式によって表される。
【0181】
【数1】
【0182】
また、2つの点(x3,y3),(x4,y4)を通る直線は、a2x+b2y=c2によって表され、a2,b2,c2は、次式によって表される。
【0183】
【数2】
【0184】
この場合、この2つの直線の交点が一組の平行な対辺の延長線が作る消失点であるので、その点を(U1,V1)とすれば、U1,V1は、次式によって表される。
【0185】
【数3】
【0186】
同じようにして、もう一組の平行な対辺から、もう1つの消失点(U2,V2)は、次式によって表される。
【0187】
【数4】
【0188】
そして、2つの消失点(U1,V1),(U2,V2)の座標を用いて消失線を求める。その後、画像g1の2つの対角線を引くことによって画像g1の重心Gの座標を求める。以下、重心Gは、画像g1の中心IOに一致しているものとする。
【0189】
引き続いて、画像g1の中心IOから消失線に下ろした垂線の足VLの座標を求め、中心IO(=G)および点VLを通る直線を求める。そして、線分IOVLの長さを求める。
【0190】
画像g1をデコードして画像g1の元になった図形の実際のサイズを検出し、その検出した実際のサイズを画像g1の元になった図形の面積Srとする。この発明においては、実際のサイズは、画像g1の元になった図形の面積として図形に書き込まれている。
【0191】
また、画像g1が存在する領域のピクセル数を数えることによって画像g1の面積Siを取得する。
【0192】
図22は、カメラ1から2次元バーコードまでの距離を求める方法を説明するための図である。図22に示す図は、図21において、重心Gおよび点VLを通り、かつ、図21の紙面に垂直に切ったときの断面図である。そして、図22において、点Oは、カメラ1の視点である。
【0193】
図22を参照して、カメラ1の焦点距離をfとし、画像面が対象面と成す角をσとすると、次式が成立する。
【0194】
【数5】
【0195】
また、画像g1の元になった図形から画像g1への面積の縮小率s(α)は、次式によって表される(非特許文献1)。
【0196】
【数6】
【0197】
なお、式(6)において、dは、視点Oから対象面までの距離であり、αは、線分OPがz軸と成す角度である。
【0198】
焦点距離fは、既知であり、画像の中心IOと点VLとの距離は、中心IOおよび点VLの座標から求めることができるので、式(5)によって角度σを求めることができる。
【0199】
画像の中心IOにおいては、α=0であり、式(6)の左辺は、Si/Srに等しいので、その求めた角度σ、焦点距離f、α=0およびs(α)=Si/Srを式(6)に代入することによって距離dを求めることができる。
【0200】
その結果、視点Oから対象面上の図形の重心までの距離は、d/cosσによって求めることができる。このように、この発明においては、図形の実際のサイズ(=面積)と画像のサイズ(=面積)とのサイズ比(=面積比)が実際の図形から画像g1への縮小率に一致することを用いてカメラ1の視点Oから図形までの距離を決定する。
【0201】
再び、図21を参照して、画像g1の1つの頂点、たとえば、点(x2,y2)から、重心Gおよび点VLを通る直線へ垂線を下ろした場合の重心Gから垂線の足までの長さをsとし、重心Gから点(x2,y2)までの長さをtとすると、s,tは、対象面上では、それぞれ、式(7),(8)によって表される。
【0202】
【数7】
【0203】
【数8】
【0204】
α=0を代入して式(8)を式(7)によって除算し、その除算結果(=t/(s・cosσ))を用いると、カメラ1から見た図形の対象面上での方位角方向の回転角をθとして、次式が成立する。
【0205】
【数9】
【0206】
その結果、方位角θは、次式によって表される。
【0207】
【数10】
【0208】
角度σは、上述したように画像面と対象面との成す角度であるので、視点Oから対象面上の図形を見たときの仰角に相当する。したがって、上述した方法によって仰角σおよび方位角θを求めることによって、カメラ1に対して図形が存在する向き・傾きに関する方向情報IFHK(=[σ,θ])を取得できる。
【0209】
位置決定手段2の距離決定手段23は、2次元バーコードの画像に基づいて、上述した方法によって、カメラ1から2次元バーコードまでの距離L(=d/cosσ)を決定し、カメラ1に対して2次元バーコードが存在する向き・傾きに関する方向情報IFHK(=[σ,θ])を取得する。
【0210】
距離決定手段23は、距離Lおよび方向情報IFHKを取得すると、その取得した距離Lおよび方向情報IFHKを検出手段24へ出力する。
【0211】
検出手段24は、画像処理手段22から位置情報PSBCを受け、距離決定手段23から距離Lおよび方向情報IFHKを受けると、その受けた位置情報PSBC、距離Lおよび方向情報IFHKに基づいて、カメラ1の位置および方位・傾きを検出する。
【0212】
図23は、カメラ1の位置を検出する方法を説明するための図である。図23を参照して、検出手段24は、位置情報PSBCによって示される1点Aをxyz空間に取り、その1点Aからx軸の正の方向へ長さLを有する直線SL10を引く。そして、検出手段24は、その引いた直線SL10の1点Aの座標を保持しながら直線SL10をx−z平面において角度σだけ回転させ、直線SL11を得る。その後、検出手段24は、直線SL11の1点Aの座標を保持しながら直線SL11をx−y平面において角度θだけ回転させ、直線SL12を得る。そして、検出手段24は、直線SL12の他方端の点Bの座標をカメラ1の位置として検出する。
【0213】
なお、上記においては、2次元バーコード20,60,80は、正方形からなると説明したが、この発明においては、これに限らず、2次元バーコード20,60,80は、平行四辺形、台形、三角形、五角形および六角形等の多角形からなっていてもよい。2次元バーコード20,60,80がこれらの形状からなっていても、直線フィッティングは、上述した方法によって行なわれる。
【0214】
また、上記においては、2次元バーコード20は、座標[x,y,z]からなる位置情報PSBCが記録されると説明したが、この発明においては、これに限らず、2次元バーコード20は、[x,y,z,経緯度]からなる位置情報PSBCが記録されていてもよい。この場合、カメラ1(=携帯電話機)の位置PSも、[x,y,z,経緯度]からなる。
【0215】
さらに、この発明においては、位置検出装置10は、一般的には、GPS信号を受信できない場所において、上述した方法によって自己の位置を検出するものであればよい。
【0216】
さらに、上記においては、位置検出手段2は、数値列[ACSn,GSn,Ln]に基づいて、対応表TBLを作成して記憶手段4に格納すると説明したが、この発明においては、これに限らず、位置検出手段2は、携帯電話機200が受信した対応表TBLを記憶手段4に格納するようにしてもよい。この場合、携帯電話機200は、地下街の通路50に近づくと、地下街に設置されたデータベースにアクセスし、そのデータベースから対応表TBLを受信し、その受信した対応表TBLを位置検出手段2へ出力する。
【0217】
さらに、この発明においては、2次元バーコード20は、「マーク」または「第1のマーク」を構成し、2次元バーコード60は、「第2のマーク」を構成し、カメラ1は、「撮影器」を構成する。
【0218】
さらに、この発明においては、図10に示すステップS5からステップS7の処理または図12に示すステップS22の処理は、「画像処理」を構成する。
【0219】
さらに、この発明においては、図10に示すステップS8の処理または図12に示すステップS23の処理は、「距離決定処理」を構成する。
【0220】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【0221】
この発明は、GPSの使用が困難な場所でも位置および方位・傾きを検出可能な位置検出装置に適用される。また、この発明は、位置および方位・傾きを精度良く検出可能な位置検出装置に適用される。
【図面の簡単な説明】
【0222】
【図1】この発明の実施の形態による位置検出装置の構成を示す概略ブロック図である。
【図2】図1に示す位置検出手段の構成を示す機能ブロック図である。
【図3】画像処理の方法を説明するための図である。
【図4】画像の補正方法を説明するための図である。
【図5】2次元バーコードの例を示す平面図である。
【図6】2次元バーコードおよび画像のサイズを説明するための図である。
【図7】サイズ比と距離との対応関係を示す対応表の概念図である。
【図8】2次元バーコードに対するカメラ(=携帯電話機)の位置を検出する方法を説明するための図である。
【図9】2次元バーコードに対するカメラ(=携帯電話機)の位置を検出する他の方法を説明するための図である。
【図10】この発明による位置検出の方法を説明するためのフローチャートである。
【図11】図10に示すステップS5の詳細な動作を説明するためのフローチャートである。
【図12】この発明による位置検出の他の方法を説明するためのフローチャートである。
【図13】図12に示すステップS24の詳細な動作を説明するためのフローチャートである。
【図14】図1に示す位置検出装置を実現するためのハード構成を示す図である。
【図15】図1に示す位置検出装置を搭載した携帯電話機の斜視図である。
【図16】図1に示す位置検出装置を用いて位置を検出する場合の具体例を示す図である。
【図17】ディスプレイの表示例を示す図である。
【図18】図1に示す位置検出装置を用いて位置を検出する場合の他の具体例を示す図である。
【図19】2次元バーコードの他の例を示す平面図である。
【図20】2次元バーコードの他の設置方法を説明するための図である。
【図21】四角形の図形を撮影したときの画像を示す図である。
【図22】カメラから2次元バーコードまでの距離を求める方法を説明するための図である。
【図23】カメラの位置を検出する方法を説明するための図である。
【符号の説明】
【0223】
1 カメラ、2 位置検出手段、3 受付手段、4 記憶手段、5 ディスプレイ、6 GPS受信機、7 加速度センサ、10 位置検出装置、20,60,80 2次元バーコード、21 制御手段、22 画像処理手段、23 距離決定手段、24 検出手段、30,40 図形、50 通路、61,62 黒領域、70 書店、71 出入口、90 壁面、100 ハード構成、101 キーパッド、102 CPU、103 ROM、104 RAM、200 携帯電話機、201 矢印、210 本体部、220 蓋部、230,240 処理部。
【特許請求の範囲】
【請求項1】
マークを撮影する撮影器と、
前記撮影器によって撮影された前記マークの画像を前記マークを正面から正対して見たときの画像に補正し、その補正結果に基づいて前記マークに対して当該位置検出装置が存在する向き・傾きに関する方向情報を検出するとともに、前記補正された画像に基づいて前記マークに記録された前記マークの実際のサイズ、前記補正された画像のサイズおよび前記マークに記録された前記マークの位置および方位・傾き情報を検出する画像処理を行なう画像処理手段と、
前記マークの実際のサイズと前記画像のサイズとのサイズ比を演算し、その演算したサイズ比と距離との対応関係に基づいて、前記マークと当該位置検出装置との距離を決定する距離決定処理を行なう距離決定手段と、
前記マークの位置情報、前記方向情報および前記距離に基づいて、当該位置検出装置の位置および方位・傾きを検出する検出手段とを備える位置検出装置。
【請求項2】
前記距離決定手段は、前記サイズ比と前記距離との対応関係を示す対応表を保持しており、前記サイズ比を演算すると、前記対応表を参照して、前記演算したサイズ比に対応する距離を前記マークと当該位置検出装置との距離として検出する、請求項1に記載の位置検出装置。
【請求項3】
前記マークは、
前記実際のサイズおよび前記位置情報が記録された第1のマークと、
方位・傾き情報が記録された第2のマークとを含み、
前記画像処理手段は、前記第1および第2のマークの各々に対して前記画像処理を行ない、前記方向情報、前記実際のサイズ、前記画像のサイズおよび前記位置情報に加え、前記方位・傾き情報を検出し、
前記距離決定手段は、前記画像処理手段による前記画像処理の結果に基づいて、前記距離決定処理を行ない、
前記検出手段は、前記位置情報、前記方向情報、前記距離および前記方位・傾き情報に基づいて、当該位置検出装置の位置および方位・傾きを検出する、請求項1に記載の位置検出装置。
【請求項4】
前記撮影器は、複数のマークを撮影し、
前記画像処理手段は、前記撮影器によって撮影された前記複数のマークの複数の画像の各々に対して前記画像処理を行ない、
前記距離決定手段は、前記画像処理手段による前記画像処理の結果に基づいて、前記距離決定処理を行ない、前記複数のマークと当該位置検出装置との複数の距離を検出し、
前記検出手段は、前記複数のマークの複数の位置情報、前記複数のマークに対して当該位置検出装置が存在する向き・傾きに関する複数の方向情報、および前記複数の距離に基づいて、当該位置検出装置の位置および方位・傾きを検出する、請求項1に記載の位置検出装置。
【請求項5】
前記検出手段は、前記複数の位置および方位・傾き情報、前記複数の方向情報および前記複数の距離に基づいて当該位置検出装置の複数の位置および方位・傾きを検出し、その検出した複数の位置および方位・傾きを前記複数のマークの実際のサイズによって重み付け平均し、当該位置検出装置の位置および方位・傾きを検出する、請求項3に記載の位置検出装置。
【請求項6】
前記検出手段は、前記方位・傾きを取得または推定できるとき、前記実際のサイズおよび前記位置情報が記録されたマークから当該位置検出装置の位置および方位・傾きを検出する、請求項1に記載の位置検出装置。
【請求項7】
前記検出手段は、前記位置情報を取得または推定できるとき、前記実際のサイズおよび前記方位・傾き情報が記録されたマークから当該位置検出装置の位置および方位・傾きを検出する、請求項1に記載の位置検出装置。
【請求項8】
前記マークの位置情報は、絶対位置情報からなる、請求項1から請求項7のいずれか1項に記載の位置検出装置。
【請求項9】
前記検出された当該位置検出装置の位置および方位・傾きを表示する表示手段をさらに備える、請求項1から請求項8のいずれか1項に記載の位置検出装置。
【請求項10】
前記撮影器、前記画像処理手段、前記距離決定手段、前記検出手段および前記表示手段は、携帯情報端末に搭載され、
前記画像処理手段、前記距離決定手段、および前記検出手段は、前記携帯情報端末の使用開始に応じて、起動される、請求項9に記載の位置検出装置。
【請求項11】
GPS信号を受信するGPS受信機をさらに備え、
前記画像処理手段、前記距離決定手段、および前記検出手段は、前記GPS受信機が前記GPS信号を受信できなくなると、起動される、請求項9に記載の位置検出装置。
【請求項12】
前記撮影器は、当該位置検出装置が最も安定しているときに前記マークを撮影する、請求項1から請求項11のいずれか1項に記載の位置検出装置。
【請求項13】
位置検出装置における位置の検出をコンピュータに実行させるためのプログラムであって、
画像処理手段が、撮影器によって撮影されたマークの画像を前記マークを正面から正対して見たときの画像に補正する補正処理を実行する第1のステップと、
前記画像処理手段が、前記第1のステップにおける補正結果に基づいて前記マークに対して前記位置検出装置が存在する向き・傾きに関する方向情報を検出するとともに、前記補正された画像に基づいて前記マークに記録された前記マークの実際のサイズ、前記補正された画像のサイズおよび前記マークに記録された前記マークの位置および方位・傾き情報を検出する画像処理を実行する第2のステップと、
距離決定手段が、前記マークの実際のサイズと前記画像のサイズとのサイズ比を演算し、その演算したサイズ比と距離との対応関係に基づいて、前記マークと前記位置検出装置との距離を決定する距離決定処理を実行する第3のステップと、
検出手段が、前記マークの位置情報、前記方向情報および前記距離に基づいて、前記位置検出装置の位置および方位・傾きを検出する第4のステップとをコンピュータに実行させるためのプログラム。
【請求項14】
前記画像処理手段は、前記第2のステップにおいて、前記マークの絶対位置情報を検出し、
前記検出手段は、前記第4のステップにおいて、前記マークの絶対位置情報を用いて前記位置検出装置の位置および方位・傾きを検出する、請求項13に記載のコンピュータに実行させるためのプログラム。
【請求項15】
前記画像処理手段は、前記第1のステップにおいて、前記撮影器によって撮影された複数のマークの複数の画像の各々に対して前記補正処理を実行するとともに、前記第2のステップにおいて、前記補正処理の結果に基づいて、前記画像処理を実行し、
前記距離決定手段は、前記第3のステップにおいて、前記画像処理の結果に基づいて、前記距離決定処理を行ない、前記複数のマークと前記位置検出装置との複数の距離を検出し、
前記検出手段は、前記第4のステップにおいて、前記複数のマークの複数の位置情報、前記複数のマークに対して前記位置検出装置が存在する向き・傾きに関する複数の方向情報、および前記複数の距離に基づいて、前記位置検出装置の位置および方位・傾きを検出する、請求項13または請求項14に記載のコンピュータに実行させるためのプログラム。
【請求項16】
前記検出手段は、前記第4のステップにおいて、前記複数の位置情報、前記複数の方向情報および前記複数の距離に基づいて当該位置検出装置の複数の位置および方位・傾きを検出し、その検出した複数の位置および方位・傾きを前記複数のマークの実際のサイズによって重み付け平均し、前記位置検出装置の位置および方位・傾きを検出する、請求項15に記載のコンピュータに実行させるためのプログラム。
【請求項17】
表示手段が、前記検出された位置検出装置の位置および方位・傾きを表示する第5のステップをさらにコンピュータに実行させる、請求項13から請求項16のいずれか1項に記載のコンピュータに実行させるためのプログラム。
【請求項18】
当該プログラムは、携帯情報端末に搭載され、
前記第1のステップから前記第5のステップは、前記携帯情報端末の使用開始に応じて実行される、請求項17に記載のコンピュータに実行させるためのプログラム。
【請求項19】
当該プログラムは、携帯情報端末に搭載され、
前記第1のステップから前記第5のステップは、前記携帯情報端末がGPS信号を受信できなくなると、実行される、請求項17に記載のコンピュータに実行させるためのプログラム。
【請求項20】
当該プログラムは、携帯情報端末に搭載され、
前記第1のステップから前記第5のステップは、前記携帯情報端末において位置情報を必要とするアプリケーションソフトウェアが起動されると、実行される、請求項17に記載のコンピュータに実行させるためのプログラム。
【請求項21】
請求項13から請求項20のいずれか1項に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項1】
マークを撮影する撮影器と、
前記撮影器によって撮影された前記マークの画像を前記マークを正面から正対して見たときの画像に補正し、その補正結果に基づいて前記マークに対して当該位置検出装置が存在する向き・傾きに関する方向情報を検出するとともに、前記補正された画像に基づいて前記マークに記録された前記マークの実際のサイズ、前記補正された画像のサイズおよび前記マークに記録された前記マークの位置および方位・傾き情報を検出する画像処理を行なう画像処理手段と、
前記マークの実際のサイズと前記画像のサイズとのサイズ比を演算し、その演算したサイズ比と距離との対応関係に基づいて、前記マークと当該位置検出装置との距離を決定する距離決定処理を行なう距離決定手段と、
前記マークの位置情報、前記方向情報および前記距離に基づいて、当該位置検出装置の位置および方位・傾きを検出する検出手段とを備える位置検出装置。
【請求項2】
前記距離決定手段は、前記サイズ比と前記距離との対応関係を示す対応表を保持しており、前記サイズ比を演算すると、前記対応表を参照して、前記演算したサイズ比に対応する距離を前記マークと当該位置検出装置との距離として検出する、請求項1に記載の位置検出装置。
【請求項3】
前記マークは、
前記実際のサイズおよび前記位置情報が記録された第1のマークと、
方位・傾き情報が記録された第2のマークとを含み、
前記画像処理手段は、前記第1および第2のマークの各々に対して前記画像処理を行ない、前記方向情報、前記実際のサイズ、前記画像のサイズおよび前記位置情報に加え、前記方位・傾き情報を検出し、
前記距離決定手段は、前記画像処理手段による前記画像処理の結果に基づいて、前記距離決定処理を行ない、
前記検出手段は、前記位置情報、前記方向情報、前記距離および前記方位・傾き情報に基づいて、当該位置検出装置の位置および方位・傾きを検出する、請求項1に記載の位置検出装置。
【請求項4】
前記撮影器は、複数のマークを撮影し、
前記画像処理手段は、前記撮影器によって撮影された前記複数のマークの複数の画像の各々に対して前記画像処理を行ない、
前記距離決定手段は、前記画像処理手段による前記画像処理の結果に基づいて、前記距離決定処理を行ない、前記複数のマークと当該位置検出装置との複数の距離を検出し、
前記検出手段は、前記複数のマークの複数の位置情報、前記複数のマークに対して当該位置検出装置が存在する向き・傾きに関する複数の方向情報、および前記複数の距離に基づいて、当該位置検出装置の位置および方位・傾きを検出する、請求項1に記載の位置検出装置。
【請求項5】
前記検出手段は、前記複数の位置および方位・傾き情報、前記複数の方向情報および前記複数の距離に基づいて当該位置検出装置の複数の位置および方位・傾きを検出し、その検出した複数の位置および方位・傾きを前記複数のマークの実際のサイズによって重み付け平均し、当該位置検出装置の位置および方位・傾きを検出する、請求項3に記載の位置検出装置。
【請求項6】
前記検出手段は、前記方位・傾きを取得または推定できるとき、前記実際のサイズおよび前記位置情報が記録されたマークから当該位置検出装置の位置および方位・傾きを検出する、請求項1に記載の位置検出装置。
【請求項7】
前記検出手段は、前記位置情報を取得または推定できるとき、前記実際のサイズおよび前記方位・傾き情報が記録されたマークから当該位置検出装置の位置および方位・傾きを検出する、請求項1に記載の位置検出装置。
【請求項8】
前記マークの位置情報は、絶対位置情報からなる、請求項1から請求項7のいずれか1項に記載の位置検出装置。
【請求項9】
前記検出された当該位置検出装置の位置および方位・傾きを表示する表示手段をさらに備える、請求項1から請求項8のいずれか1項に記載の位置検出装置。
【請求項10】
前記撮影器、前記画像処理手段、前記距離決定手段、前記検出手段および前記表示手段は、携帯情報端末に搭載され、
前記画像処理手段、前記距離決定手段、および前記検出手段は、前記携帯情報端末の使用開始に応じて、起動される、請求項9に記載の位置検出装置。
【請求項11】
GPS信号を受信するGPS受信機をさらに備え、
前記画像処理手段、前記距離決定手段、および前記検出手段は、前記GPS受信機が前記GPS信号を受信できなくなると、起動される、請求項9に記載の位置検出装置。
【請求項12】
前記撮影器は、当該位置検出装置が最も安定しているときに前記マークを撮影する、請求項1から請求項11のいずれか1項に記載の位置検出装置。
【請求項13】
位置検出装置における位置の検出をコンピュータに実行させるためのプログラムであって、
画像処理手段が、撮影器によって撮影されたマークの画像を前記マークを正面から正対して見たときの画像に補正する補正処理を実行する第1のステップと、
前記画像処理手段が、前記第1のステップにおける補正結果に基づいて前記マークに対して前記位置検出装置が存在する向き・傾きに関する方向情報を検出するとともに、前記補正された画像に基づいて前記マークに記録された前記マークの実際のサイズ、前記補正された画像のサイズおよび前記マークに記録された前記マークの位置および方位・傾き情報を検出する画像処理を実行する第2のステップと、
距離決定手段が、前記マークの実際のサイズと前記画像のサイズとのサイズ比を演算し、その演算したサイズ比と距離との対応関係に基づいて、前記マークと前記位置検出装置との距離を決定する距離決定処理を実行する第3のステップと、
検出手段が、前記マークの位置情報、前記方向情報および前記距離に基づいて、前記位置検出装置の位置および方位・傾きを検出する第4のステップとをコンピュータに実行させるためのプログラム。
【請求項14】
前記画像処理手段は、前記第2のステップにおいて、前記マークの絶対位置情報を検出し、
前記検出手段は、前記第4のステップにおいて、前記マークの絶対位置情報を用いて前記位置検出装置の位置および方位・傾きを検出する、請求項13に記載のコンピュータに実行させるためのプログラム。
【請求項15】
前記画像処理手段は、前記第1のステップにおいて、前記撮影器によって撮影された複数のマークの複数の画像の各々に対して前記補正処理を実行するとともに、前記第2のステップにおいて、前記補正処理の結果に基づいて、前記画像処理を実行し、
前記距離決定手段は、前記第3のステップにおいて、前記画像処理の結果に基づいて、前記距離決定処理を行ない、前記複数のマークと前記位置検出装置との複数の距離を検出し、
前記検出手段は、前記第4のステップにおいて、前記複数のマークの複数の位置情報、前記複数のマークに対して前記位置検出装置が存在する向き・傾きに関する複数の方向情報、および前記複数の距離に基づいて、前記位置検出装置の位置および方位・傾きを検出する、請求項13または請求項14に記載のコンピュータに実行させるためのプログラム。
【請求項16】
前記検出手段は、前記第4のステップにおいて、前記複数の位置情報、前記複数の方向情報および前記複数の距離に基づいて当該位置検出装置の複数の位置および方位・傾きを検出し、その検出した複数の位置および方位・傾きを前記複数のマークの実際のサイズによって重み付け平均し、前記位置検出装置の位置および方位・傾きを検出する、請求項15に記載のコンピュータに実行させるためのプログラム。
【請求項17】
表示手段が、前記検出された位置検出装置の位置および方位・傾きを表示する第5のステップをさらにコンピュータに実行させる、請求項13から請求項16のいずれか1項に記載のコンピュータに実行させるためのプログラム。
【請求項18】
当該プログラムは、携帯情報端末に搭載され、
前記第1のステップから前記第5のステップは、前記携帯情報端末の使用開始に応じて実行される、請求項17に記載のコンピュータに実行させるためのプログラム。
【請求項19】
当該プログラムは、携帯情報端末に搭載され、
前記第1のステップから前記第5のステップは、前記携帯情報端末がGPS信号を受信できなくなると、実行される、請求項17に記載のコンピュータに実行させるためのプログラム。
【請求項20】
当該プログラムは、携帯情報端末に搭載され、
前記第1のステップから前記第5のステップは、前記携帯情報端末において位置情報を必要とするアプリケーションソフトウェアが起動されると、実行される、請求項17に記載のコンピュータに実行させるためのプログラム。
【請求項21】
請求項13から請求項20のいずれか1項に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【公開番号】特開2008−309530(P2008−309530A)
【公開日】平成20年12月25日(2008.12.25)
【国際特許分類】
【出願番号】特願2007−155681(P2007−155681)
【出願日】平成19年6月12日(2007.6.12)
【出願人】(301022471)独立行政法人情報通信研究機構 (1,071)
【Fターム(参考)】
【公開日】平成20年12月25日(2008.12.25)
【国際特許分類】
【出願日】平成19年6月12日(2007.6.12)
【出願人】(301022471)独立行政法人情報通信研究機構 (1,071)
【Fターム(参考)】
[ Back to top ]