(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023144812
(43)【公開日】2023-10-11
(54)【発明の名称】画像処理装置
(51)【国際特許分類】
G01B 11/00 20060101AFI20231003BHJP
G05D 1/02 20200101ALI20231003BHJP
【FI】
G01B11/00 H
G05D1/02 K
【審査請求】未請求
【請求項の数】1
【出願形態】OL
(21)【出願番号】P 2022051964
(22)【出願日】2022-03-28
(71)【出願人】
【識別番号】506226175
【氏名又は名称】ビーコア株式会社
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】田中 葉
【テーマコード(参考)】
2F065
5H301
【Fターム(参考)】
2F065AA04
2F065AA09
2F065BB15
2F065BB27
2F065DD03
2F065FF04
2F065FF67
2F065JJ03
2F065MM06
2F065MM26
2F065QQ03
2F065QQ24
2F065QQ28
2F065QQ31
2F065UU09
5H301AA01
5H301AA06
5H301BB05
5H301CC03
5H301CC06
5H301CC10
5H301GG08
5H301GG09
(57)【要約】
【課題】移動体の位置を得ることを可能とする。
【解決手段】格納部101は、光学式認識コードを認識可能な撮像装置を有する移動体の当該撮像装置によって撮像された第1画像及び当該第1画像が撮像された時点での前記移動体の第1位置を格納する。画像取得部102は、第1位置から移動体が移動した後の第2位置で撮像装置によって撮像された第2画像を取得する。コード位置取得部104は、第2画像中に光学式認識コードが認識される場合に作動し、当該光学式認識コードに基づいて光学式認識コードの実空間上の位置を取得する。移動体位置計算部105は、第2画像中に光学式認識コードが認識されない場合に作動し、第1画像、第2画像及び第1位置に基づいて、移動体の第2位置を計算する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
光学式認識コードを認識可能な撮像装置を有する移動体の当該撮像装置によって撮像された第1画像及び当該第1画像が撮像された時点での前記移動体の第1位置を格納する格納手段と、
前記第1位置から前記移動体が移動した後の第2位置で前記撮像装置によって撮像された第2画像を取得する第1取得手段と、
前記第2画像中に前記光学式認識コードが認識される場合に作動する、当該光学式認識コードに基づいて前記光学式認識コードの実空間上の位置を取得する第2取得手段と、
前記第2画像中に前記光学式認識コードが認識されない場合に作動する、前記第1画像、前記第2画像及び前記第1位置に基づいて、前記移動体の第2位置を計算する計算手段と
を具備する画像処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置に関する。
【背景技術】
【0002】
近年では、自動搬送車(無人搬送車)のような移動体を工場または倉庫等の屋内空間に配置し、運搬物(荷物)を当該移動体に運搬させることによって、業務の効率化を図ることが行われている。
【0003】
ところで、効率的に移動体に運搬物を運搬させるためには、当該移動体の位置を適切に管理することが有用であるが、上記したように移動体が屋内空間を移動する場合には、例えばGPS(Global Positioning System)機能等では当該移動体の正確な位置を得ることができない場合がある。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
そこで、本発明の目的は、移動体の位置を得ることが可能な画像処理装置を提供することにある。
【課題を解決するための手段】
【0006】
本発明の1つの態様によれば、格納手段と、第1取得手段と、第2取得手段と、計算手段とを具備する画像処理装置が提供される。前記格納手段は、光学式認識コードを認識可能な撮像装置を有する移動体の当該撮像装置によって撮像された第1画像及び当該第1画像が撮像された時点での前記移動体の第1位置を格納する。前記第1取得手段は、前記第1位置から前記移動体が移動した後の第2位置で前記撮像装置によって撮像された第2画像を取得する。前記第2取得手段は、前記第2画像中に前記光学式認識コードが認識される場合に作動し、当該光学式認識コードに基づいて前記光学式認識コードの実空間上の位置を取得する。前記計算手段は、前記第2画像中に前記光学式認識コードが認識されない場合に作動し、前記第1画像、前記第2画像及び前記第1位置に基づいて、前記移動体の第2位置を計算する。
【発明の効果】
【0007】
本発明は、移動体の位置を得ることを可能とする。
【図面の簡単な説明】
【0008】
【
図1】本発明の実施形態における画像処理システムの構成の一例を示す図。
【
図3】カラービットコードについて詳細に説明するための図。
【
図4】画像処理装置のハードウェア構成の一例を示す図。
【
図6】カラービットコードを含む画像がカメラによって撮像される場合について説明するための図。
【
図7】カラービットコードを含まない画像がカメラによって撮像される場合について説明するための図。
【
図8】コード位置情報のデータ構造の一例を示す図。
【
図9】画像処理装置の処理手順の一例を示すフローチャート。
【発明を実施するための形態】
【0009】
本発明は、移動体に設置された撮影装置により光学式認識コードが認識できる場合には、その光学式認識コードの実空間上の位置を利用して移動体の位置を計算し、光学式認識コードしか認識できない場合には、移動体の移動距離に基づき移動体の位置を計算することを一つの特徴とする。
【0010】
以下、図面を参照して、本発明の実施形態について説明する。
図1は、本実施形態における画像処理システム(ネットワークシステム)の構成の一例を示す。
図1に示す画像処理システム1は、画像処理装置10及びサーバ装置20を備える。画像処理装置10及びサーバ装置20は、ネットワーク30を介して互いに通信可能に接続されている。
【0011】
本実施形態における画像処理システム1は、例えば工場または倉庫等の屋内空間(以下、対象空間と表記)を移動する自動搬送車のような移動体の位置を得るために使用される。
【0012】
ここで、
図2は、移動体の外観の一例を示す。
図2に示すように、移動体2は、例えば車輪等を備えることによって移動可能に構成されている。また、移動体2には、当該移動体2の外部(例えば、進行方向等)を撮像可能な向きに撮像装置(以下、カメラと表記)2aが設置されている。本実施形態において、カメラ2aは、移動体2が対象空間を移動している間に連続的に画像を撮像するように動作する。
【0013】
なお、本実施形態における対象空間には光学式認識コードが配置されており、当該光学式認識コードは、当該対象空間を移動する移動体2に設置されているカメラ2aによって撮像される。本実施形態においては例えば光学式認識コードが貼付、描画、印刷または表示された物体が対象空間に配置されるような場合を想定しているが、当該光学式認識コードは、対象空間を形成する例えば壁面等に配置(貼付、描画、印刷または表示等)されていてもよい。すなわち、光学式認識コードは、カメラ2aが撮像可能な態様で対象空間に配置されていればよい。
【0014】
図1に示す画像処理装置10は、例えば上記した移動体2に設置されるカメラ2aと接続されており、当該カメラ2aによって撮像された画像に含まれる光学式認識コードを利用して当該移動体2の位置を計算(取得)する機能を有する。なお、本実施形態において「画像に含まれる」とは、「画像上認識される」のような概念をも含むものとする。
【0015】
なお、画像処理装置10によって計算された移動体2の位置は、ネットワーク30を介して画像処理装置10からサーバ装置20に送信され、当該サーバ装置20において管理される。サーバ装置20において管理される移動体2の位置は、例えば当該移動体2の追跡(監視)または当該移動体2の位置の補正等に用いられる。
【0016】
以下、本実施形態において移動体2の位置を計算するために利用される光学式認識コードについて具体的に説明する。
【0017】
本実施形態における光学式認識コードは、例えば複数のエレメントが線状(棒状)に形成されたコード(以下、カラービットコードと表記)を含む。このカラービットコードは、例えば3色以上の色彩のうちの1の色彩が付されたセル(エレメント)が複数配列された構成を有する。このカラービットコードによれば、複数配列された各セルに付されている色彩の遷移によって識別情報(例えば、ID等)のような特定のデータを表すことができる。
【0018】
以下の説明においては、本実施形態において用いられる光学式認識コードがカラービットコードであるものとして説明する。
【0019】
図3を参照して、上記したカラービットコードについて詳細に説明する。なお、
図3においては、便宜的にカラービットコードの一部分のみが示されている。
【0020】
図3に示すように、カラービットコード3は、例えば赤色、緑色及び青色のうちの1の色彩が付されたセル3aが複数配列されて構成されている。
図3において、赤色はR、緑色はG、青色はBとして示されている。なお、
図3においては、説明の便宜上、カラービットコード3に3色の色彩(赤色、緑色及び青色)が用いられている例が示されているが、各セル3aには、赤色、緑色及び青色以外の色彩が付されていてもよい。また、各セル3aに付されている色彩の遷移を判別することができるのであれば、4色以上の色彩を用いてカラービットコード3が作成されていてもよい。
【0021】
カラービットコード3を構成するセル3aは、1つの色彩が付される範囲または領域であり、種々の形状を有することができる。
図3に示す例では、複数のセル3aの各々は四角形状であるが、例えば丸形状または三角形状等であっても構わない。このような複数のセル3aを線状(直線状または曲線状)に配列することによってカラービットコード3は作成される。カラービットコード3は、線状に作成することで、幅を取らない形状にできるため、空間内の限られたスペースに配置することが可能である。
【0022】
なお、カラービットコード3は上記したように色彩の遷移によって特定のデータを表すものであるから、当該カラービットコード3において、隣接するセル3a同士には同色は付されず、異なる色彩が付される。カラービットコード3は、このような条件等に従って作成される。
【0023】
また、カラービットコード3を構成する複数のセル3aには、端点セルが含まれる。端点セルは、線状に連なったセル3a群から構成されるカラービットコード3の端点(両端)に位置するセル3aである。カラービットコード3内にあるセル3aは、2つのセル3aと隣接するが、端点セルは1つのセル3aとしか隣接しない。このような端点セルはカラービットコード3内に2つ存在する。また、このような2つの端点セルに付される色彩は異なるものとする。これにより、端点セルの各々に付されている色彩によって、当該端点セルが始点となるセル3a(以下、始点セルと表記)であるか終点となるセル3a(以下、終点セルと表記)であるかを判定することが可能である。
【0024】
上記したようなカラービットコード3によれば例えば3色の色彩の遷移(配列)によって特定のデータを表すことができるため、当該カラービットコード3における各色彩の占める領域の大きさ及び形状の制限は緩く、当該カラービットコード3が例えば凹凸のある表面や柔軟性のある素材上に付されている場合やデジタルサイネージ等の表示装置に表示されている場合であっても、高い読み取り精度を実現することができる。
【0025】
色彩(の配列)は、文字や図形、QRコード(登録商標)と比して、高精度にカメラ2a(撮像装置)のピントが合っていなくとも認識されやすいところ、カラービットコード3は色彩が付されたセルで構成されており、その色彩の配列により認識される。したがって、撮像装置が移動しているため、周囲の各対象物に対して高精度にカメラ2aのピントを合わせることが困難な環境において、カラービットコード3は認識容易性という点で特に適している。
【0026】
以下、本実施形態に係る画像処理装置10の構成について説明する。
図4は、画像処理装置10のハードウェア構成の一例を示す。
図4に示すように、画像処理装置10は、バス11に接続された、不揮発性メモリ12、CPU13、メインメモリ14及び無線通信デバイス15等を備え、例えば全体でエッジコンピュータとして機能する。
【0027】
不揮発性メモリ12は、各種プログラムを格納する。不揮発性メモリ12に格納されている各種プログラムには、画像処理装置10上で動作するソフトウェアが含まれる。
【0028】
CPU13は、例えば不揮発性メモリ12に格納されている各種プログラムを実行する。なお、CPU13は、画像処理装置10全体の制御を司るものである。
【0029】
メインメモリ14は、例えばCPU13が各種プログラムを実行する際に必要とされるワークエリア等として使用される。
【0030】
無線通信デバイス15は、例えば外部のサーバ装置20等との通信を制御する機能を有する。
【0031】
なお、
図2においては、画像処理装置10が不揮発性メモリ12、CPU13、メインメモリ14及び無線通信デバイス15を備えるものとして説明したが、当該画像処理装置10は、更に上記したカメラ2aを備える構成であってもよい。この場合には、カメラ2aを備える画像処理装置10が上記した移動体2に搭載される(組み込まれる)構成であればよい。
【0032】
図5は、画像処理装置10の機能構成の一例を示す。
図5に示すように、画像処理装置10は、格納部101、画像取得部102、デコード処理部103、コード位置取得部104、移動体位置計算部105、移動距離計算部106及び送信処理部107を含む。
【0033】
なお、本実施形態において、画像取得部102、デコード処理部103、コード位置取得部104、移動体位置計算部105、移動距離計算部106及び送信処理部107は、例えば
図4に示すCPU13(つまり、画像処理装置10のコンピュータ)が不揮発性メモリ12に格納されている所定のプログラムを実行すること、つまり、ソフトウェアによって実現されるものとする。なお、このCPU13によって実行されるプログラムは、コンピュータ読み取り可能な記憶媒体に予め格納して頒布されてもよいし、ネットワーク30を介して画像処理装置10にダウンロードされても構わない。
【0034】
格納部101には、対象空間に配置されているカラービットコード3の実空間上の位置を示す情報(以下、コード位置情報と表記)が予め格納されている。なお、コード位置情報においては、カラービットコード3によって表されるID等の識別情報と当該カラービットコード3の実空間上の位置とが対応づけられている。すなわち、本実施形態において、カラービットコード3によって表される識別情報(以下、コードIDと表記)は、当該カラービットコード3を識別するための識別子として用いられる。
【0035】
画像取得部102は、移動体2に設置されているカメラ2aによって撮像されたカラービットコード3を含む画像を当該カメラ2aから取得する。画像取得部102によって取得された画像は、色情報の最小単位である複数の画素(ピクセル)から構成される。
【0036】
デコード処理部103は、画像取得部102によって取得された画像に含まれるカラービットコード3を読み取る(デコードする)処理を実行する。なお、デコード処理部103によるデコードは、カラービットコード3における色彩の遷移(つまり、当該カラービットコード3を構成する複数のセル3aの各々に付されている色彩の遷移)に基づいて行われる。これにより、デコード処理部103は、画像取得部102によって取得された画像に含まれるカラービットコード3によって表されるコードIDを取得する。
【0037】
コード位置取得部104は、デコード処理部103によって取得されたコードIDに基づいて、格納部101に格納されているコード位置情報から、当該コードIDによって識別されるカラービットコード3(つまり、デコード処理部103によって読み取られたカラービットコード3)の実空間上の位置を取得する。
【0038】
移動体位置計算部105は、画像取得部102によって取得された画像上におけるカラービットコード3の位置及びコード位置取得部104によって取得されたカラービットコード3の実空間上の位置に基づいて、移動体2の位置を計算する。
【0039】
ここで、本実施形態における対象空間にはカラービットコード3が配置されているところ、例えば
図6に示すようにカメラ2aの画角2bにカラービットコード3が含まれた状態でカメラ2aによって画像が撮像された(つまり、画像取得部102によってカラービットコード3を含む画像が取得された)場合には、上記したように当該カラービットコード3を利用して移動体2の位置を計算することができる。
【0040】
しかしながら、
図7に示すように、対象空間(例えば、工場または倉庫のレイアウト等)によっては、移動体2の進行方向(移動経路)に常にカラービットコード3が配置されている(つまり、カメラ2aの画角2bにカラービットコード3が含まれるとは限らない。カラービットコード3がカメラ2aによって撮像されない場合には、当該カラービットコード3を利用して移動体2の位置を計算することができない。なお、本実施形態において「カラービットコード3が含まれる」とは、「カラービットコード3が認識される」のような概念をも含むものとする。更に、本実施形態において「カラービットコード3がカメラ2aによって撮像されない」とは、例えば形式に撮像することができたがカメラ2aのセンサ等でカラービットコード3を認識することができないような場合を含むものとする。以下の説明においても同様である。
【0041】
そこで、本実施形態においてカラービットコード3がカメラ2aによって撮像されない(つまり、画像取得部102によって取得された画像にカラービットコードが含まれない)場合には、移動距離計算部106は、当該画像取得部102によって取得された画像と、当該画像よりも前にカメラ2aによって撮像された画像(つまり、移動体2が現在の位置に移動する前に撮像された画像)とに基づいて、当該2つの画像が撮像される間に当該移動体2が移動した距離(以下、移動体2の移動距離と表記)を計算する。
【0042】
このように移動距離計算部106によって移動体2の移動距離が計算された場合には、移動体位置計算部105は、上記した画像取得部102によって取得された画像よりも前にカメラ2aによって撮像された画像が撮像された時点の移動体2の位置及び当該計算された移動体2の移動距離に基づいて、当該移動体2の位置を計算することができる。
【0043】
なお、上記した画像取得部102によって取得された画像よりも前にカメラ2aによって撮像された画像及び当該画像が撮像された時点での移動体2の位置を示す情報(以下、移動体位置情報と表記)は、例えば格納部101に格納されているものとする。
【0044】
図8は、
図5に示す格納部101に格納されているコード位置情報のデータ構造の一例を示す。
【0045】
図8に示すように、コード位置情報には、カラービットコード3を識別するためのコードIDに対応づけて、当該カラービットコード3の実空間上の位置を表すX座標(値)、Y座標(値)及びZ座標(値)が含まれている。本実施形態において、コード位置情報に含まれるカラービットコード3の実空間上の位置は、例えば当該カラービットコード3の中央に対応する位置であってもよいし、当該カラービットコード3の両端のうちのいずれか一方に対応する位置であってもよい。なお、このコード位置情報に含まれるX座標、Y座標及びZ座標は、例えば対象空間の予め定められた点を基準として規定されたXYZ座標空間における座標値であるが、当該対象空間(実空間)上の特定の位置を表すものであれば、他の形式の値であってもよい。
【0046】
ここでは、対象空間に複数のカラービットコード3が配置されているものとし、格納部101には、コード位置情報101a~101cを含む複数のコード位置情報が格納されているものとする。
【0047】
図8に示す例では、コード位置情報101aには、コードID「001」に対応づけてX座標「X座標値1」、Y座標「Y座標値1」及びZ座標「Z座標値1」が含まれている。このコード位置情報101aによれば、コードID「001」によって識別されるカラービットコード3がX座標値1、Y座標値1及びZ座標値1によって表される実空間上の位置に配置されていることが示されている。
【0048】
コード位置情報101bには、コードID「002」に対応づけてX座標「X座標値2」、Y座標「Y座標値2」及びZ座標「Z座標値2」が含まれている。このコード位置情報101bによれば、コードID「002」によって識別されるカラービットコード3がX座標値2、Y座標値2及びZ座標値2によって表される実空間上の位置に配置されていることが示されている。
【0049】
コード位置情報101cには、コードID「003」に対応づけてX座標「X座標値3」、Y座標「Y座標値3」及びZ座標「Z座標値3」が含まれている。このコード位置情報101cによれば、コードID「003」によって識別されるカラービットコード3がX座標値3、Y座標値3及びZ座標値3によって表される実空間上の位置に配置されていることが示されている。
【0050】
ここではコード位置情報101a~101cについてのみ説明したが、格納部101には、移動体2が移動する対象空間に配置されたカラービットコード3毎にコード位置情報が格納されている。また、コード位置情報101a~101c以外のコード位置情報のデータ構造についても当該コード位置情報101a~101cのデータ構造と同様である。
【0051】
更に、
図8に示す例では1つのカラービットコード3(コードID)に対して1つの実空間上の位置を示すコード位置情報が示されているが、当該コード位置情報は、例えばカラービットコード3の両端の実空間上の位置(つまり、1つのカラービットコード3に対して複数の位置)を示すものであっても構わない。
【0052】
以下、
図9のフローチャートを参照して、本実施形態に係る画像処理装置10の処理手順の一例について説明する。
【0053】
なお、本実施形態においては、移動体2が対象空間を移動している間に当該移動体2に設置されているカメラ2aによって画像が連続的に撮像され、当該画像が撮像される度に
図9に示す処理が繰り返し実行されるものとする。
【0054】
また、ここでは、
図9に示す処理が実行されるよりも前に移動体2に設置されたカメラ2aによって撮像された画像(以下、第1画像と表記)及び当該第1画像が撮像された時点での当該移動体2の実空間上の位置(以下、第1位置と表記)を示す移動体位置情報が格納部101に格納されているものとする。なお、移動体位置情報は、上記したコード位置情報と同様に、X座標(値)、Y座標(値)及びZ座標(値)を含む。
【0055】
まず、上記したように移動体2に設置されているカメラ2aによって連続的に画像が撮像されているところ、第1位置から移動体2が移動し、当該移動後の位置(以下、第2位置と表記)において当該カメラ2aによって画像(以下、第2画像と表記)が撮像されたものとする。この場合、画像取得部102は、カメラ2aにおいて撮像された第2画像を取得する(ステップS1)。
【0056】
ここで、本実施形態における対象空間には、複数のカラービットコード3が配置されている。これによれば、画像取得部102によって取得された第2画像には、複数のカラービットコード3のうち、対象空間を移動している移動体2の近傍(進行方向)に配置されているカラービットコード3が含まれている場合がある。
【0057】
ステップS1の処理が実行されると、デコード処理部103は、第2画像に対する画像解析処理を実行する(ステップS2)。なお、このステップS2において実行される画像解析処理は、第2画像に含まれるカラービットコード3に対するデコード処理(読み取り処理)に相当する。以下、このデコード処理について具体的に説明する。
【0058】
まず、デコード処理部103は、第2画像を各色領域に区分けする処理(以下、色領域区分け処理と表記)を実行する。ここで、一般的に第2画像は背景を含めて様々な色彩(を表示する画素)で構成されており、それらのパターンも様々である。このため、色領域区分け処理においては、この第2画像中の色彩を色空間の中で赤色、緑色、青色及び無彩色に区分けし、各画素の色彩をいずれかの領域に当てはめる処理(均色化処理)が行われる。すなわち、色領域区分け処理においては、第2画像中の各画素に対するラベリング処理が実行される。
【0059】
なお、上記した赤色、緑色及び青色はカラービットコード3を構成する各セルに付される色彩として定義された色彩(以下、構成色と表記)であるが、色領域区分け処理においては、例えば照明、彩色、退色等を考慮して色空間上でこれらの構成色と認定することができる一定の範囲に包含される色彩であれば、当該色彩(の画素)を構成色として区分けするものとする。すなわち、例えば赤色の領域を区分けする場合には、当該赤色を中心とする一定の範囲の色彩を表示する画素の全てを赤色の領域として認定する。緑色及び青色の領域を区分けする場合についても同様である。
【0060】
また、無彩色とは、色領域区分け処理において赤色、緑色及び青色として認定される色彩以外の色彩である。
【0061】
更に、上記したように第2画像に対しては均色化処理が行われるが、一般的に当該第2画像にはノイズ成分が混入している場合が多い。このノイズに相当する微小部位の色彩異変に対しては例えばその周囲の色彩に合わせる、または、平均化する等のノイズ除去処理を行うことによって、当該ノイズを除去することが好ましい。
【0062】
次に、デコード処理部103は、色領域区分け処理によって区分けされた各色領域に基づいて複数の構成色(赤色、緑色及び青色)の領域が配列されてなるカラービットコード3の領域(以下、コード領域と表記)を切り出す処理(以下、コード切り出し処理と表記)を実行する。このコード切り出し処理においては、各色領域の周囲の色彩(例えば、他の構成色の領域及び無彩色の領域の配置等)やカラービットコード3を構成するセル3aの数等に基づいてコード領域が切り出される。コード切り出し処理によって切り出されるコード領域は、例えば第2画像上における座標値(XY座標値)によって表される。
【0063】
なお、上記した色領域区分け処理及びコード切り出し処理については、例えば特開2008-287414号公報等に開示されているため、ここではその詳細な説明については省略する。
【0064】
次に、デコード処理部103は、コード切り出し処理によって第2画像から切り出されたコード領域において配列されている複数の色領域における色彩の遷移(つまり、当該複数の色領域の順番)に基づいてカラービットコード3をデコードする。これによれば、カラービットコード3における例えば始点セル(カラービットコード3の開始を表す端点セル)から終点セル(カラービットコード3の終了を表す端点セル)までの色の遷移によって表されるコードIDが取得される。
【0065】
なお、ここでは第2画像にカラービットコード3が含まれている場合における画像解析処理について説明したが、移動体2の進行方向または当該移動体2に設置されているカメラ2aの向き等によっては、第2画像にカラービットコード3が含まれていない場合がある。この場合には、ステップS2における画像解析処理が実行されたとしても、コード領域は切り出されず、コードIDは取得されない。
【0066】
ステップS2の処理が実行された場合、デコード処理部103は、当該ステップS2の処理が実行されることによってコードIDが取得されたか否かに基づいて、第2画像にカラービットコード3が含まれているか否かを判定する(ステップS3)。
【0067】
第2画像にカラービットコード3が含まれている(つまり、コードIDが取得された)と判定された場合(ステップS3のYES)、コード位置取得部l04が作動し、当該コード位置取得部104は、当該コードID(以下、対象コードIDと表記)によって識別されるカラービットコード3(以下、対象カラービットコード3と表記)の実空間上の位置を取得する(ステップS4)。
【0068】
この場合、コード位置取得部104は、格納部101に格納されているコード位置情報の中から対象コードIDを含むコード位置情報を特定し、当該特定されたコード位置情報に含まれているX座標値、Y座標値及びZ座標値を対象カラービットコード3の実空間上の位置として取得する。
【0069】
ステップS4の処理が実行されると、移動体位置計算部105は、上記した第2画像が撮像された時点での移動体2の実空間上の位置(つまり、第1位置から移動した後の移動体2の第2位置)を計算する(ステップS5)。
【0070】
ここで、上記した第2画像に1つの対象カラービットコード3が含まれている場合であっても第2位置を計算することは可能であるが、より高い精度の移動体2の第2位置を計算するためには、当該第2画像に少なくとも2つの対象カラービットコード3が含まれていることが好ましい。以下、第2画像に2つの対象カラービットコード3が含まれているものとして、ステップS5の処理について説明する。
【0071】
この場合、上記したステップS2の処理(コード切り出し処理)においては、2つの対象カラービットコード3の各々に対応する2つのコード領域が切り出される。これによれば、ステップS2においては、切り出された2つのコード領域から、2つの対象カラービットコード3の各々の両端セル(始点セル及び終点セル)の第2画像上の位置(XY座標値)を抽出することができる。
【0072】
また、ステップS4においては2つの対象カラービットコード3の各々の実空間上の位置が取得されるが、格納部101には、カラービットコード3の両端セル(始点セル及び終点セル)の実空間上の位置を示すコード位置情報がカラービットコード3毎に格納されているものとする。これによれば、ステップS4においては、第2画像に含まれる2つの対象カラービットコード3の各々の両端セルの実空間上の位置が取得される。
【0073】
この場合、移動体位置計算部105は、上記した2つの対象カラービットコード3の各々の両端セルの第2画像上の位置(第2画像上の4点)及び当該2つの対象カラービットコード3の各々の両端セルの実空間上の位置(実空間上の4点)を透視投影モデルに適用することによって、移動体2の第2位置を計算する。なお、移動体2に設置されているカメラ2aの画角及び当該カメラ2aにおいて撮像される画像の解像度は既知であり、当該画角及び解像度に関する情報は画像処理装置10内において管理されているものとする。上記した移動体2の第2位置の計算処理においては、この画角及び解像度に関する情報も利用される。
【0074】
すなわち、本実施形態においては、第2画像に含まれる2つの対象カラービットコードの各々の両端セル(つまり、2つの対象カラービットコード3に基づいて抽出される4点)によって規定される空間を利用して移動体2の第2位置を計算する。この場合、カメラ2aによって撮像される2つの対象カラービットコード3の各々の両端セルが同一平面上にないことが移動体2の位置を計算するための条件であり、対象空間には、当該カメラ2aとの位置関係において当該条件を満たす画像が撮像されるように複数のカラービットコード3が配置されていることが好ましい。
【0075】
なお、ここで説明した移動体2の第2位置を計算する手法は一例であり、上記した対象カラービットコード3の画像上の位置及び当該対象カラービットコード3の実空間上の位置に基づいて移動体2の第2位置が計算されるのであれば、他の手法が採用されても構わない。
【0076】
また、本実施形態においては移動体2の第2位置として当該第2位置に対応するX座標値、Y座標値及びZ座標値が計算されればよいが、例えばカメラ2a(が設置されている移動体2)の上下方向の傾き角度、左右方向の傾き角度及び回転角度等が更に計算されても構わない。
【0077】
一方、ステップS3において第2画像にカラービットコード3が含まれていないまたは認識できないと判定された場合(ステップS3のNO)、当該カラービットコード3を利用して移動体2の第2位置を計算することができない。
【0078】
そこで、第2画像にカラービットコード3が含まれていないまたは認識できない場合には移動距離計算部106が作動し、当該移動距離計算部106は、格納部101から第1画像を当該格納部101から取得し、当該格納部101から取得された第1画像及びステップS1において取得された第2画像に基づいて、上記した第1位置からの移動体2の移動距離を計算する(ステップS6)。
【0079】
以下、ステップS6の処理について簡単に説明する。ステップS6において、移動距離計算部106は、例えば第1及び第2画像から複数の特徴点を抽出する。なお、第1及び第2画像から抽出される複数の特徴点は、当該第1及び第2画像に含まれる被写体(例えば、工場または倉庫に配置される荷物等)のエッジ部分等に相当する。移動距離計算部106は、このように抽出された複数の特徴点の各々を第1及び第2画像間で対応づけ、当該対応づけられた特徴点の移動量(変位)に基づいて第1画像が撮像された時点から第2画像が撮像された時点までにおける移動体2の移動距離を計算する。なお、ステップS6において計算される移動距離は、移動方向を含む概念を有する情報であり、例えばX座標軸方向、Y座標軸方向及びZ座標軸方向の成分によって表される。
【0080】
ステップS6の処理が実行されると、移動体位置計算部105が作動し、当該移動体位置計算部105は、上記した格納部101に格納されている移動体位置情報を当該格納部101から取得し、当該移動体位置情報によって示される第1位置及び当該ステップS6において計算された移動距離に基づいて、移動体2の第2位置を計算する(ステップS5)。具体的には、移動体位置計算部105は、格納部101から取得された移動体位置情報によって示される第1位置(つまり、当該移動体位置情報に含まれるX座標値、Y座標値及びZ座標値)に対してステップS6において計算された移動距離(X座標軸方向、Y座標軸方向及びZ座標軸方向の成分)を加算することによって、移動体2の第2位置(X座標値、Y座標値及びZ座標値)を計算することができる。
【0081】
上記したステップS5の処理が実行されると、当該ステップS5において計算された移動体2の第2位置を示す移動体位置情報が送信処理部107によってサーバ装置20に送信される。
【0082】
なお、
図9に示す処理は移動体2が対象空間を移動している間に繰り返し実行されるが、ステップS1において取得された第2画像は、次に
図9に示す処理が実行される場合に第1画像として利用するために格納部101に格納される。同様に、ステップS5において計算された移動体の第2位置(を示す移動体位置情報)は、次に
図9に示す処理が実行される場合に第1位置(を示す移動体位置情報)として利用するために格納部101に格納される。これにより、
図9に示す処理が実行される度に、格納部101は、常に、第1位置を示す移動体値情報及び当該第1位置において撮像された第1画像が格納された状態となる。
【0083】
ここで、上記した
図6及び
図7を参照して、本実施形態に係る画像処理装置10の動作の概要について説明する。例えば
図6に示す位置に移動体2がいるときに
図9に示す処理が実行される場合には、移動体2に設置されたカメラ2aによってカラービットコード3を含む第2画像が撮像されるため、当該カラービットコード3を利用して移動体2の位置(第2位置)が計算される。また、
図6に示す移動体2の位置においてカメラ2aによって撮像された第2画像が第1画像として格納部101に格納されるとともに、当該カラービットコード3を利用して計算された移動体2の位置(を示す移動体位置情報)が第1位置(を示す移動体位置情報)として格納部101に格納される。
【0084】
次に、
図6に示す位置から
図7に示す位置に移動体2が移動したときに
図9の処理が実行される場合には、移動体2に設置されたカメラ2aによってカラービットコード3を含まない第2画像が撮像されるため、格納部101に格納された移動体位置情報(つまり、
図6に示す移動体2の位置)と、当該格納部101に格納された第1画像(つまり、
図6に示す移動体2の位置においてカメラ2aによって撮像された画像)及び当該第2画像(つまり、
図7に示す移動体2の位置においてカメラ2aによって撮像された画像)に基づいて計算された移動体2の移動距離とを用いて移動体2の位置(第2位置)が計算される。
【0085】
上記したように本実施形態においては、カラービットコード3(光学式認識コード)が配置された対象空間内を移動する移動体に設置されたカメラ2a(撮像装置)によって撮像された第1画像及び当該第1画像が撮像された時点での移動体2の第1位置(を示す移動体位置情報)を格納部101に格納しておき、当該第1位置から移動体2が移動した後にカメラ2aによって撮像された第2画像を取得する。本実施形態においては、このように取得された第2画像にカラービットコード3が含まれる場合、当該カラービットコード3をデコードすることによって当該カラービットコード3によって表されるコードID(識別情報)を取得し、当該取得されたコードIDに基づいて当該カラービットコード3の実空間上の位置を取得し、当該カラービットコード3の第2画像上の位置及び当該カラービットコード3の実空間上の位置に基づいて移動体2の第2位置(つまり、移動体2が第1位置から移動した後の位置)を計算する。一方、第2画像にカラービットコード3が含まれない場合、格納部101に格納されている第1画像及び当該第2画像(つまり、移動の前後に撮像された2つの画像)に基づいて第1位置からの移動体2の移動距離を計算し、格納部101に格納されている第1位置及び当該計算された移動距離に基づいて移動体2の第2位置を計算する。
【0086】
本実施形態においては、このような構成により、画像処理装置10において計算することによって得られた移動体2の位置(移動体位置情報)をサーバ装置20において管理することが可能となり、当該サーバ装置20において管理される移動体2の位置を例えば当該移動体2の追跡(監視)または当該移動体2の位置の補正等に利用することができる。
【0087】
なお、上記した画像処理装置10における移動体2の位置を計算する処理(つまり、
図9に示す処理)は移動体2が移動している間に繰り返し(つまり、定期的に)実行されるため、本実施形態においては、移動体2の位置を定期的に得ることによって、継続的な移動体2の追跡等を実現することができる。
【0088】
また、対象空間に複数の移動体2が存在する場合、画像処理装置10(送信処理部107)は、移動体2の位置を示す移動体位置情報とともに、当該移動体2を識別するための識別情報(以下、移動体IDと表記)をサーバ装置20に送信するものとする。これによれば、サーバ装置20は、移動体2毎に位置を管理することが可能となる。なお、各移動体2を識別するための移動体IDは、画像処理装置10内で予め管理されていればよい。
【0089】
ここで、一般的に移動体2の位置を計測(測位)する際にはGPS機能を利用する場合があるが、当該移動体2が工場または倉庫のような屋内空間を移動する場合には、当該移動体2の位置を正確に計測することができない可能性がある。
【0090】
また、例えば屋内空間に配置された各種送信機から送信されるビーコン、無線、電波または電磁波等を利用して移動体2の位置を計測することが考えられるが、このような構成であっても、電波干渉または金属反響等により位置の計測精度が低下する場合がある。
【0091】
これに対して、本実施形態においては、上記したようにカメラ2aにおいてカラービットコード3を撮像することによって移動体2の位置を計算(計測)する構成であるため、対象空間(屋内空間)を移動する移動体2の位置を高い精度で得ることが可能となる。
【0092】
なお、本実施形態において説明したカメラ2aにおいてカラービットコード3を撮像することによって移動体2の位置を計算する手法は、上記したGPS機能や、ビーコン、無線、電波または電磁波等を利用して計測された移動体2の位置の精度が低いような場合に、更に高い精度の移動体2の位置を得るために補完的(補助的)に利用されてもよい。
【0093】
更に、画像解析(画像認識)によって移動体2の位置を計算する場合、一般的には移動体2側に目印(コード等)を付し、当該移動体2に付された目印を対象空間に配置されたカメラで撮像する手法を採用する場合が多いが、このような手法では、当該カメラの前を瞬時に通過する目印(移動体2)を撮像する必要があるため、当該目印を撮像する難易度が高く、移動体2の正確な位置を計測することができない場合がある。
【0094】
また、移動体2側に目印を付す場合には、当該目印のサイズを、当該目印を認識することができる程度の大きさにする必要があるが、移動体2に付すことが可能な目印(タグ)の大きさには限界がある。
【0095】
これに対して、本実施形態においては、移動体2に設置されたカメラ2aにおいて対象空間に配置されたカラービットコード3を撮像する構成を採用しているため、当該カメラ2aがカラービットコード3を撮像する困難性を低減することができる。なお、移動体2が移動する方向(向き)等を考慮してカラービットコード3を配置することで、カラービットコード3をより容易に撮像することができるようにしてもよい。
【0096】
更に、本実施形態においては、カラービットコード3を対象空間(例えば、壁面等)に配置することが可能であるため、当該カラービットコード3を移動体2側に付す場合と比較して、当該カラービットコード3のサイズ、形状及び配置に関する制限を緩和する(つまり、自由度を向上させる)ことができる。
【0097】
また、本実施形態においては、カメラ2aを移動体2毎に設置する構成により、例えば移動体2が移動する対象空間が拡大したような場合であっても、当該拡大した空間にカラービットコード3を新たに配置するのみで、当該対象空間を移動する移動体2の位置を得ることが可能となる。すなわち、本実施形態においては、コストが高額になりがちなカメラ2aを増設することなく対象空間の拡大等に対応可能であり、画像処理システム1の構築に関するコストダウンを実現することができる。
【0098】
また、高い精度での移動体2の位置の計算(測位)を実現するためには、対象空間を移動する移動体2に設置されているカメラ2aによって撮像される画像に必ずカラービットコード3が含まれるように多数のカラービットコード3を対象空間に配置しておくことが好ましい。
【0099】
しかしながら、上記したようにカラービットコード3を利用して移動体2の位置を計算するためには、当該カラービットコード3の実空間上の位置を計測して当該位置を示すコード位置情報を予め格納部101に登録(格納)しておく必要があり、対象空間に多数のカラービットコードを配置する場合には、当該コード位置情報の登録を含む初期設定に膨大な時間を要する。更に、カラービットコード3が配置される対象空間(工場または倉庫等)には多数の運搬物等が配置されることが想定されるとともに、当該対象空間(工場または倉庫等)のレイアウト(構造)には様々なものがあることを鑑みると、対象空間の全ての位置から任意のカラービットコード3が撮像されるという条件を満たすようにカラービットコード3を配置することは現実的に困難である。
【0100】
このため、本実施形態においては、カメラ2aによって撮像される画像にカラービットコード3が含まれる場合には当該カラービットコード3を利用して移動体2の位置を計算し、カメラ2aによって撮像される画像にカラービットコード3が含まれない場合には移動の前後に撮像された2つの画像(から抽出された複数の特徴点)に基づいて計算された移動体2の移動距離を用いて当該移動体2の位置を計算する。これによれば、カラービットコード3を撮像することができない位置に移動体2(カメラ2a)がいる場合であっても、当該移動体2の位置を得ることができる。
【0101】
すなわち、本実施形態においては、移動体2の位置を計算するために最低限の数のカラービットコード3を対象空間に配置すればよく、カラービットコード3を対象空間に配置することによる初期設定コスト(つまり、コード位置情報の登録を含む初期設定にかかる工数)を削減することができる。
【0102】
なお、本実施形態においては画像にカラービットコード3が含まれない場合には移動の前後に撮像された2つの画像から抽出された複数の特徴点の当該画像間における変位に基づいて移動体2の移動距離を計算することによって当該移動距離を用いて移動体2の位置を計算することができるが、当該移動距離を用いて計算される移動体2の位置には実際の移動体2の位置と誤差が生じていることが考えられる。
図9に示す処理は上記したように移動体2が対象空間を移動している間にカメラ2aによって画像が撮像される度に繰り返し実行されるが、例えばカラービットコード3が含まれない画像が連続して撮像された場合には、
図9に示すステップS6において計算された移動距離を順次反映(加算)しながら移動体2の位置が計算(更新)されるため、結果的に誤差が蓄積された移動体2の位置(つまり、実際の移動体2の位置から乖離した位置)が得られる可能性がある。
【0103】
しかしながら、本実施形態においては、カラービットコード3が含まれる画像が撮像された場合には、上記した移動距離ではなく、当該カラービットコード3の実空間上の位置を用いて移動体2の位置が計算されるため、カラービットコード3が含まれない画像が撮像された際に計算された移動体2の位置に蓄積された誤差をリセットすることができる。これによれば、移動体2の位置の精度が低下することを抑制することができる。
【0104】
なお、本実施形態においては移動の前後に撮像された2つの画像から抽出された特徴点の変位に基づいて計算される移動体2の移動距離を用いて当該移動体2の第2位置が計算されるものとして説明したしたが、当該移動距離は、例えば移動体2の加速度を検知する加速度センサ、当該移動体2が備える車輪(タイヤ)の回転数を検知する回転センサ及び移動体2と他の物体との間の距離を計測する距離センサ(例えば、Lidar等)のような他のセンサを備える別のシステム(以下、外部システムと表記)を利用して取得されてもよい。
【0105】
しかしながら、本実施形態に係る画像処理装置10を外部システムと組み合わせて動作させる場合には、当該画像処理装置10及び外部システム間での連携の部分で遅延が生じるため、リアルタイム性に欠ける。一方、本実施形態において説明したように移動体2の移動距離を計算する構成によれば、他のセンサを用意する(つまり、外部システムと連携する)ことなく、一定のリアルタイム性を実現することができる点で利点がある。
【0106】
すなわち、本実施形態においては、移動体2に設置されているカメラ2a(つまり、単一の装置)を利用して画像から2種類の情報(移動体2の位置)を取得することができるため、他のセンサ等を組み込むことなく、移動体2の仕組みを簡素化する(シンプルにする)ことができる。
【0107】
なお、本実施形態においては、例えばカメラ2aによって撮像された画像に含まれる2つのカラービットコード3の各々の両端セル(つまり、2つのカラービットコード3に基づいて抽出される4点)によって規定される空間を利用して移動体2の位置を計算することができるが、当該移動体2の位置の精度は、当該画像に含まれるカラービットコード3の各々の両端セルによって規定される空間の体積に依存する。換言すれば、画像に含まれる2つのカラービットコード3の各々の両端セル間の距離が長いほど、正確な移動体2の位置を計算することができる。
【0108】
このため、本実施形態において対象空間に配置されるカラービットコード3は、当該カラービットコード3の両端セル間の距離が長くなるように形成されていることが好ましい。具体的には、カラービットコード3は、例えば直線状に形成されているものとする。なお、1つの画像に含まれる2つのカラービットコード3間の距離(間隔)も長くなるように配置されていることが好ましいが、各カラービットコード3が配置される位置についてはカメラ2aの画角、移動体2が移動する対象空間の大きさまたは当該対象空間において当該移動体2が移動する経路等に基づいて決定されればよい。
【0109】
なお、本実施形態においては光学式認識コードとしてカラービットコード3を利用するものとして説明したが、当該光学式認識コードとしては、例えばバーコードまたは2次元コード等の他の光学式認識コード(自動認識技術)が用いられても構わない。
【0110】
このようにカラービットコード3以外の光学式認識コード(バーコードまたは2次元コード等)を利用する場合には、例えば1つの画像に当該光学式認識コードが4つ包含されるように当該光学式認識コードを配置しておくことにより、当該4つの光学式認識コードに基づいて抽出される4点によって規定される空間を利用して移動体2の位置を計算することができる。
【0111】
また、ここでは光学式認識コードから抽出される4点によって規定される空間を利用して移動体2の位置を計算するものとして説明したが、当該移動体2の位置は、例えば光学式認識コードに基づいて抽出される3点(の画像上及び実空間上の位置)によって規定される平面を利用して計算することも可能である。具体的には、例えばカメラ2aの画角及び当該カメラ2aにおいて撮像される画像の解像度に関する情報、当該カメラ2aの上下方向の傾きに関する情報(例えば、水平を向いているまたは上を向いている等)、当該カメラ2aが設置されている高さに関する情報(例えば、プラス方向の高さにある等)が既知であれば、光学式認識コードに基づいて抽出される3点の画像上の位置及び実空間上の位置を透視投影モデルに適用することによって、移動体2の位置を計算することができる。
【0112】
なお、光学式認識コードに基づいて抽出される3点(の画像上及び実空間上の位置)によって規定される平面を利用して移動体2の位置を計算する場合には複数の移動体2の位置が計算されるが、上記した既知の情報を利用することによって、当該複数の移動体2の位置の中から最適な位置を絞り込むことができる。
【0113】
更に、移動体2の位置は、例えば光学式認識コードに基づいて抽出される2点(の画像上及び実空間上の位置)によって規定された線を利用して計算することも可能である。具体的には、例えばカメラ2aの画角及び当該カメラ2aにおいて撮像される画像の解像度に関する情報、当該カメラ2aの上下方向の傾きに関する情報、当該カメラ2aが設置されている高さに関する情報が既知であれば、光学式認識コードに基づいて抽出される2点の画像上の位置及び実空間上の位置に基づいて、移動体2の位置を計算することができる。この場合には、光学式認識コードに基づいて抽出される2点が見える角度の交点を移動体2の位置として計算する。
【0114】
なお、上記した光学式認識コードに基づいて抽出される3点によって規定された平面を利用して移動体2の位置を計算する場合には、カメラ2aの上下方向及び当該カメラ2aが設置されている高さはある程度大まかな情報であればよいが、光学式認識コードに基づいて抽出される2点によって規定された線を利用して移動体2の位置を計算する場合には、カメラ2aの上下方向の傾き及び当該カメラ2aが設置されている高さは正確な値であることが好ましい。
【0115】
更に、移動体2の位置は、例えば光学式認識コードに基づいて抽出される1点(の画像上及び実空間上の位置)を利用して計算することも可能である。具体的には、例えばカメラ2aの画角及び当該カメラ2aにおいて撮像される画像の解像度に関する情報、当該カメラ2aの上下方向の傾きに関する情報、当該カメラ2aが設置されている高さに関する情報、当該カメラ2aの向き(方角)に関する情報が既知であれば、三角測量によりカメラ2aから光学式認識コードまでの距離を得ることができるため、当該距離に基づいて移動体2の位置を計算することができる。
【0116】
本実施形態においては、光学式認識コードに基づいて抽出される1点~4点を利用して移動体2の位置を計算する手法について説明したが、当該移動体2の位置の計算に利用する点の数が多いほど当該位置の精度が高くなる一方で、光学式認識コードの配置等に関する制限が厳しくなる。したがって、上記した移動体2の位置を計算する手法(計算アルゴリズム)については、例えば移動体2が移動する対象空間のレイアウト(つまり、光学式認識コードを適切に配置することができるか否か)等に基づいて適宜選択されればよい。
【0117】
また、移動体2に設置されたカメラ2aにおいて光学式認識コードを撮像し、当該光学式認識コードの画像上の位置及び実空間上の位置に基づいて当該移動体2の位置を計算する構成であれば、当該移動体2の位置を計算する方法としては本実施形態において説明した以外の手法が適用されてもよい。
【0118】
ここで、本実施形態においては、画像にカラービットコード3(光学式認識コード)が含まれる場合に当該カラービットコード3を利用して移動体2の位置が計算され、画像にカラービットコード3(光学式認識コード)が含まれない場合に移動の前後に撮像された2つの画像に基づいて計算される移動距離を用いて移動体2の位置が計算されるものとして説明したが、上記したようにカラービットコード3を利用して精度が高い移動体2の位置を計算するためには、少なくとも2つのカラービットコード3が第2画像に含まれていることが好ましい。換言すれば、例えば画像に1つのカラービットコード3のみが含まれている場合には、当該カラービットコード3を利用したとしても精度が十分でない移動体2の位置が計算される可能性がある。
【0119】
このため、本実施形態においては、画像に2つ以上のカラービットコード3が含まれる場合には当該カラービットコード3を利用して移動体2の位置が計算され、画像に2つ以上のカラービットコード3が含まれない場合には、移動の前後に撮像された2つの画像に基づいて計算される移動距離を用いて移動体2の位置が計算される構成(以下、第1変形例と表記)としてもよい。
【0120】
なお、上記したように移動距離を用いて移動体2の位置を計算する場合には当該移動体2の位置に誤差が生じる(つまり、当該第2位置の精度が低い)可能性があるため、第1変形例において画像に1つのカラービットコード3のみが含まれる場合には、当該移動距離を用いて計算される移動体2の位置を、当該カラービットコード3(の実空間上の位置)を利用して補正してもよい。具体的には、1つのカラービットコード3の両端セルを光学式認識コードに基づいて抽出される2点とすると、上記したように当該2点によって規定された線を利用して移動体2の位置を計算することが可能であるため、移動距離を用いて計算される移動体2の位置を、当該2点によって規定された線を利用して計算された移動体2の位置に基づいて補正する(つまり、移動体2の位置の精度を向上させる)ことが考えられる。なお、ここで説明した計算処理又は補正処理は一例であり、移動距離を用いて計算される移動体2の位置を、移動体2の第1位置、移動の前後に撮像された2つの画像及び画像に含まれる1つのカラービットコード3(光学式認識コード)を利用して計算または補正するような構成であれば、他の処理が実行されてもよい。
【0121】
このような第1変形例の構成によれば、画像に2つ以上のカラービットコード3が含まれている場合には当該カラービットコード3(に基づいて抽出される4点)を利用して高い精度の移動体2の第2位置を計算することができ、画像に1つのカラービットコード3が含まれている場合には移動距離を用いて計算される移動体2の第2位置の精度の低下を当該カラービットコード3を利用して抑制することができる。
【0122】
上記した第1変形例では、画像中に認識されるカラービットコード3の数が1つである場合に、当該カラービットコード3の実空間上の位置に加え、移動の前後に撮像された2つの画像(第1及び第2画像)及び移動体位置情報(第1位置)に基づいて移動体の位置(第2位置)を計算することを想定しているが、例えばカラービットコード3の数が2つ以上である場合であっても、当該カラービットコード3の実空間上の位置、移動の前後に撮像された2つの画像(第1及び第2画像)及び移動体位置情報(第1位置)に基づいて移動体の位置(第2位置)を計算するような構成としてもよい。このような構成によれば、例えばカラービットコード3の数が予め定められた値(閾値)未満である場合に、当該カラービットコード3の実空間上の位置、移動の前後に撮像された2つの画像(第1及び第2画像)及び移動体位置情報(第1位置)に基づいて移動体の位置(第2位置)を計算するような動作を実現することも可能である。なお、「カラービットコード3の数が閾値未満である」とは、予め定められた数(つまり、閾値)以上のカラービットコード3が画像中に含まれている(認識されている)ものの、デコードすることができるカラービットコードの数が閾値未満であるような場合を含むものとする。
【0123】
ここでは便宜的に光学式認識コードがカラービットコード3であるものとして説明したが、上記した第1変形例は、当該光学式認識コードがカラービットコード3以外である場合であっても適用可能である。具体的には、例えば4点を抽出することが可能な光学式認識コード(例えば、4つの光学式認識コード等)が画像に含まれている場合には当該光学式認コードを利用して移動体2の位置が計算され、3点以下を抽出することが可能な光学式認識コードが画像に含まれている場合には移動距離を用いて計算された当該移動体2の位置を当該光学式認識コードを利用して補正するような構成とすることができる。
【0124】
なお、本実施形態においては、移動体2が自動搬送車であるものとして説明したが、当該移動体2は、例えばドローン等の無人航空機、自立型の移動ロボット等の他の移動体であってもよい。更に、移動体2は、人が乗車して運転することができるような車両等であっても構わない。
【0125】
更に、本実施形態においては主に対象空間が屋内空間であるものとして説明したが、本実施形態における対象空間は、屋外空間であっても構わない(つまり、本実施形態は、屋外を移動する移動体に適用されても構わない)。
【0126】
また、本実施形態においては、
図9に示す処理が画像処理装置10によって実行されるものとして説明したが、当該画像処理装置10の処理の一部は例えばサーバ装置20等によって実行されてもよい。すなわち、本実施形態においては、
図9に示す処理を画像処理装置10及びサーバ装置20を備える画像処理システム1全体で実行するようにしてもよい。
【0127】
なお、例えば
図9に示すステップS1の処理を画像処理装置10側で実行し、ステップS2以降の処理をサーバ装置20側で実行する構成とすることも可能であるが、このような構成の場合には画像処理装置10からサーバ装置20画像を送信しなければならず、画像処理装置10及びサーバ装置20間の通信量が増大する。このため、画像処理装置10からサーバ装置20への通信量を削減する観点からは、画像処理装置10側で少なくともステップS2までの処理を実行することが好ましい。
【0128】
また、上記したように
図9に示す処理を画像処理システム1全体で実行する場合には、
図5に示す各機能部101~107はそれぞれ画像処理装置10またはサーバ装置20に分散して配置されればよいが、例えば格納部101は当該画像処理システム1以外の外部装置に配置されていてもよい。この場合には、
図9に示すステップS4の処理が実行される際に、画像処理システム1がコード位置情報を外部装置から取得(受信)する構成とすればよい。
【0129】
更に、本実施形態においては画像処理装置10とサーバ装置20とが別個の装置であるものとして説明したが、当該画像処理装置10及びサーバ装置20は、一体として構成されていても構わない。
【0130】
なお、上記した実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスク等)、光ディスク(CD-ROM、DVD等)、光磁気ディスク(MO)、半導体メモリ等の記憶媒体に格納して頒布することもできる。
【0131】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であってもよい。
【0132】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が本実施形態を実現するための各処理の一部を実行してもよい。
【0133】
更に、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【0134】
また、記憶媒体は1つに限らず、複数の媒体から本実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であってもよい。
【0135】
なお、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であってもよい。
【0136】
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【0137】
なお、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。
【0138】
以下、本実施形態に係る発明を付記する。
[1]
光学式認識コードを認識可能な撮像装置を有する移動体の当該撮像装置によって撮像された第1画像及び当該第1画像が撮像された時点での前記移動体の第1位置を格納する格納手段と、
前記第1位置から前記移動体が移動した後の第2位置で前記撮像装置によって撮像された第2画像を取得する第1取得手段と、
前記第2画像中に前記光学式認識コードが認識される場合に作動する、当該光学式認識コードに基づいて前記光学式認識コードの実空間上の位置を取得する第2取得手段と、
前記第2画像中に前記光学式認識コードが認識されない場合に作動する、前記第1画像、前記第2画像及び前記第1位置に基づいて、前記移動体の第2位置を計算する計算手段と
を具備する画像処理装置。
[2]
前記第2画像中に認識される前記光学式認識コードの数が1つである場合、前記光学式認識コードの実空間上の位置に加え、前記第1画像、前記第2画像及び前記第1位置に基づいて、前記移動体の前記第2位置を計算することを特徴とする、[1]に記載の画像処理装置。
[3]
光学式認識コードを認識可能な撮像装置を有する移動体であって、
前記撮像装置によって撮像された第1画像及び当該第1画像が撮像された時点での前記移動体の第1位置を格納する格納手段と、
前記第1位置から前記移動体が移動した後の第2位置で前記撮像装置によって撮像された第2画像を取得する第1取得手段と、
前記取得された第2画像中に前記光学式認識コードが認識される場合に作動する、当該光学式認識コードに基づいて前記光学式認識コードの実空間上の位置を取得する第2取得手段と、
前記取得された第2画像中に前記光学式認識コードが認識されない場合に作動する、第1画像、第2画像及び第1位置に基づいて、前記移動体の第2位置を計算する第2計算手段と、
を具備する移動体。
[4]
[1]~[3]のいずれか一項に記載の移動体が移動する空間であって、前記光学式認識コードが一以上配置された空間。
【符号の説明】
【0139】
1…画像処理システム、2…移動体、2a…カメラ(撮像装置)、3…カラービットコード、3a…セル、10…画像処理装置、11…バス、12…不揮発性メモリ、13…CPU、14…メインメモリ、15…無線通信デバイス、20…サーバ装置、30…ネットワーク、101…格納部、102…画像取得部、103…デコード処理部、104…コード位置取得部、105…移動体位置計算部、106…移動距離計算部、107…送信処理部。