(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-14
(45)【発行日】2022-11-22
(54)【発明の名称】画像処理装置、画像処理システム、方法、プログラム、移動体及び工場または倉庫
(51)【国際特許分類】
G01C 21/26 20060101AFI20221115BHJP
G06K 7/10 20060101ALI20221115BHJP
G08G 1/00 20060101ALI20221115BHJP
G05D 1/02 20200101ALN20221115BHJP
【FI】
G01C21/26 A
G06K7/10 372
G06K7/10 412
G08G1/00 X
G05D1/02 K
(21)【出願番号】P 2020012660
(22)【出願日】2020-01-29
【審査請求日】2022-02-24
【早期審査対象出願】
(73)【特許権者】
【識別番号】506226175
【氏名又は名称】ビーコア株式会社
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】田中 葉
【審査官】西中村 健一
(56)【参考文献】
【文献】特開2009-080807(JP,A)
【文献】特表2019-534829(JP,A)
【文献】特開2011-134058(JP,A)
【文献】特許第4404224(JP,B2)
【文献】特許第4724801(JP,B1)
【文献】特開2015-170001(JP,A)
【文献】特開2016-181199(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G01C 21/00-21/36
23/00-25/00
G08G 1/00-99/00
G05D 1/02
G06K 7/00- 7/14
JSTPlus(JDreamIII)
Japio-GPG/FX
(57)【特許請求の範囲】
【請求項1】
移動体に設置された撮像装置によって撮像された光学式認識コードを含む画像を取得する第1取得手段と、
前記光学式認識コードに基づいて、前記光学式認識コードの実空間上の位置を取得する第2取得手段と、
前記光学式認識コードの前記画像上の位置及び前記光学式認識コードの実空間上の位置に基づいて、前記移動体の位置を計算する計算手段と
を具備
し、
前記光学式認識コードは、複数の色彩のうちの1の色彩が付されたエレメントが複数配列されたコードを含み、
前記光学式認識コードの実空間上の位置は、前記複数のエレメントのうちの少なくとも2つのエレメントの実空間上の位置を含む
画像処理装置。
【請求項2】
画像処理装置及び当該画像処理装置と通信可能に接続されるサーバ装置とを備える画像処理システムにおいて、
移動体に設置された撮像装置によって撮像された光学式認識コードを含む画像を取得する第1取得手段と、
前記光学式認識コードに基づいて、前記光学式認識コードの実空間上の位置を取得する第2取得手段と、
前記光学式認識コードの前記画像上の位置及び前記光学式認識コードの実空間上の位置に基づいて、前記移動体の位置を計算する計算手段と
を具備
し、
前記光学式認識コードは、複数の色彩のうちの1の色彩が付されたエレメントが複数配列されたコードを含み、
前記光学式認識コードの実空間上の位置は、前記複数のエレメントのうちの少なくとも2つのエレメントの実空間上の位置を含む
画像処理システム。
【請求項3】
画像処理装置が実行する方法であって、
移動体に設置された撮像装置によって撮像された光学式認識コードを含む画像を取得するステップと、
前記光学式認識コードに基づいて、前記光学式認識コードの実空間上の位置を取得するステップと、
前記光学式認識コードの前記画像上の位置及び前記光学式認識コードの実空間上の位置に基づいて、前記移動体の位置を計算するステップと
を具備
し、
前記光学式認識コードは、複数の色彩のうちの1の色彩が付されたエレメントが複数配列されたコードを含み、
前記光学式認識コードの実空間上の位置は、前記複数のエレメントのうちの少なくとも2つのエレメントの実空間上の位置を含む
方法。
【請求項4】
コンピュータによって実行されるプログラムであって、
前記コンピュータに、
移動体に設置された撮像装置によって撮像された光学式認識コードを含む画像を取得するステップと、
前記光学式認識コードに基づいて、前記光学式認識コードの実空間上の位置を取得するステップと、
前記光学式認識コードの前記画像上の位置及び前記光学式認識コードの実空間上の位置に基づいて、前記移動体の位置を計算するステップと
を実行させ
、
前記光学式認識コードは、複数の色彩のうちの1の色彩が付されたエレメントが複数配列されたコードを含み、
前記光学式認識コードの実空間上の位置は、前記複数のエレメントのうちの少なくとも2つのエレメントの実空間上の位置を含む
プログラム。
【請求項5】
撮像装置が設置され、画像処理装置によって位置が計算される移動体であって、
前記画像処理装置は、
前記撮像装置によって撮像された光学式認識コードを含む画像を取得する第1取得手段と、
前記光学式認識コードに基づいて、前記光学式認識コードの実空間上の位置を取得する第2取得手段と、
前記光学式認識コードの前記画像上の位置及び前記光学式認識コードの実空間上の位置に基づいて、前記移動体の位置を計算する計算手段と
を含
み、
前記光学式認識コードは、複数の色彩のうちの1の色彩が付されたエレメントが複数配列されたコードを含み、
前記光学式認識コードの実空間上の位置は、前記複数のエレメントのうちの少なくとも2つのエレメントの実空間上の位置を含む
移動体。
【請求項6】
画像処理装置によって位置が計算される移動体が移動する空間
を形成する工場または倉庫であって、
前記画像処理装置は、
前記移動体に設置された撮像装置によって撮像された光学式認識コードを含む画像を取得する第1取得手段と、
前記光学式認識コードに基づいて、前記光学式認識コードの実空間上の位置を取得する第2取得手段と、
前記光学式認識コードの前記画像上の位置及び前記光学式認識コードの実空間上の位置に基づいて、前記移動体の位置を計算する計算手段と
を有し、
前記光学式認識コードが前記空間内で前記撮像装置によって撮像可能な位置に一以上配置されて
おり、
前記光学式認識コードは、複数の色彩のうちの1の色彩が付されたエレメントが複数配列されたコードを含み、
前記光学式認識コードの実空間上の位置は、前記複数のエレメントのうちの少なくとも2つのエレメントの実空間上の位置を含む
工場または倉庫。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理システム、方法、プログラム、移動体及び工場または倉庫に関する。
【背景技術】
【0002】
近年では、自動搬送車(無人搬送車)のような移動体を工場または倉庫等の屋内空間に配置し、運搬物(荷物)を当該移動体に運搬させることによって、業務の効率化を図ることが行われている。
【0003】
ところで、効率的に移動体に運搬物を運搬させるためには、当該移動体の位置を適切に管理することが有用であるが、上記したように移動体が屋内空間を移動する場合には、例えばGPS(Global Positioning System)機能等では当該移動体の正確な位置を得ることができない場合がある。
【0004】
なお、このような事情を鑑みて、屋内における位置情報を特定するための技術が開示されている(例えば、特許文献1を参照)。しかしながら、この技術によれば、撮影画像と対象画像とのマッチングを行うため、精度の高い位置を得ることができない場合がある。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
そこで、本発明の目的は、移動体の位置を得ることが可能な画像処理装置、画像処理システム、方法、プログラム、移動体及び工場または倉庫を提供することにある。
【課題を解決するための手段】
【0007】
本発明の1つの態様によれば、第1取得手段と、第2取得手段と、計算手段とを具備する画像処理装置が提供される。前記第1取得手段は、移動体に設置された撮像装置によって撮像された光学式認識コードを含む画像を取得する。前記第2取得手段は、前記光学式認識コードに基づいて、前記光学式認識コードの実空間上の位置を取得する。前記計算手段は、前記光学式認識コードの前記画像上の位置及び前記光学式認識コードの実空間上の位置に基づいて、前記移動体の位置を計算する。前記光学式認識コードは、複数の色彩のうちの1の色彩が付されたエレメントが複数配列されたコードを含む。前記光学式認識コードの実空間上の位置は、前記複数のエレメントのうちの少なくとも2つのエレメントの実空間上の位置を含む。
【発明の効果】
【0008】
本発明は、移動体の位置を得ることを可能とする。
【図面の簡単な説明】
【0009】
【
図1】本発明の実施形態に係る画像処理システムの構成の一例を示す図。
【
図3】カラービットコードについて詳細に説明するための図。
【
図4】画像処理装置のハードウェア構成の一例を示す図。
【
図6】コード位置情報のデータ構造の一例を示す図。
【
図7】画像処理装置の処理手順の一例を示すフローチャート。
【発明を実施するための形態】
【0010】
以下、図面を参照して、本発明の実施形態について説明する。
図1は、本実施形態に係る画像処理システム(ネットワークシステム)の構成の一例を示す。
図1に示す画像処理システム1は、画像処理装置10及びサーバ装置20を備える。画像処理装置10及びサーバ装置20は、ネットワーク30を介して互いに通信可能に接続されている。
【0011】
本実施形態に係る画像処理システム1は、例えば工場または倉庫等の屋内空間を移動する自動搬送車のような移動体の位置を得るために使用される。
【0012】
ここで、
図2は、移動体の外観の一例を示す。
図2に示すように、移動体2は、例えば車輪等を備えることによって移動可能に構成されている。また、移動体2には、当該移動体2の外部(例えば、進行方向等)を撮像可能な向きに撮像装置(以下、カメラと表記)2aが設置されている。
【0013】
本実施形態において、移動体2が移動する屋内空間には光学式認識コードが配置(貼付、描画、印刷または表示等)されている。なお、光学式認識コードは、屋内空間を形成する例えば壁面等に配置されるが、上記したカメラ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は作成される。
【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】
以下、本実施形態に係る画像処理装置10の構成について説明する。
図4は、画像処理装置10のハードウェア構成の一例を示す。
図4に示すように、画像処理装置10は、バス11に接続された、不揮発性メモリ12、CPU13、メインメモリ14及び無線通信デバイス15等を備え、例えば全体でエッジコンピュータとして機能する。
【0026】
不揮発性メモリ12は、各種プログラムを格納する。不揮発性メモリ12に格納されている各種プログラムには、画像処理装置10上で動作するソフトウェアが含まれる。
【0027】
CPU13は、例えば不揮発性メモリ12に格納されている各種プログラムを実行する。なお、CPU13は、画像処理装置10全体の制御を司るものである。
【0028】
メインメモリ14は、例えばCPU13が各種プログラムを実行する際に必要とされるワークエリア等として使用される。
【0029】
無線通信デバイス15は、例えば外部のサーバ装置20等との通信を制御する機能を有する。
【0030】
なお、
図2においては、画像処理装置10が不揮発性メモリ12、CPU13、メインメモリ14及び無線通信デバイス15を備えるものとして説明したが、当該画像処理装置10は、更に上記したカメラ2aを備える構成であってもよい。この場合には、カメラ2aを備える画像処理装置10が上記した移動体2に搭載される(組み込まれる)構成であればよい。
【0031】
図5は、画像処理装置10の機能構成の一例を示す。
図5に示すように、画像処理装置10は、格納部101、画像取得部102、デコード処理部103、コード位置取得部104、移動体位置計算部105及び送信処理部106を含む。
【0032】
なお、本実施形態において、格納部101は、例えば
図4に示す不揮発性メモリ12等によって実現される。
【0033】
また、本実施形態において、画像取得部102、デコード処理部103、コード位置取得部104、移動体位置計算部105及び送信処理部106は、例えば
図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】
送信処理部106は、移動体位置計算部105によって計算された移動体2の位置を示す情報(以下、移動体位置情報と表記)を、ネットワーク30を介してサーバ装置20に送信する。
【0040】
図6は、
図5に示す格納部101に格納されているコード位置情報のデータ構造の一例を示す。
【0041】
図6に示すように、コード位置情報には、カラービットコード3を識別するためのコードIDに対応づけて、当該カラービットコード3の実空間上の位置を表すX座標、Y座標及びZ座標が含まれている。本実施形態において、コード位置情報に含まれるカラービットコード3の実空間上の位置は、例えば当該カラービットコード3の中央に対応する位置であってもよいし、当該カラービットコード3の両端のうちのいずれか一方に対応する位置であってもよい。なお、このコード位置情報に含まれるX座標(値)、Y座標(値)及びZ座標(値)は、例えば移動体2が移動する屋内空間の予め定められた点を基準として規定された座標値であるが、当該屋内空間(実空間)上の特定の位置を表すものであれば他の値等であってもよい。
【0042】
ここでは、移動体が移動する屋内空間に複数のカラービットコード3が配置されているものとし、格納部101には、コード位置情報101a~101cを含む複数のコード位置情報が格納されているものとする。
【0043】
図6に示す例では、コード位置情報101aには、コードID「001」に対応づけてX座標「X座標値1」、Y座標「Y座標値1」及びZ座標「Z座標値1」が含まれている。このコード位置情報101aによれば、コードID「001」によって識別されるカラービットコード3がX座標値1、Y座標値1及びZ座標値1によって表される実空間上の位置に配置されていることが示されている。
【0044】
コード位置情報101bには、コードID「002」に対応づけてX座標「X座標値2」、Y座標「Y座標値2」及びZ座標「Z座標値2」が含まれている。このコード位置情報101bによれば、コードID「002」によって識別されるカラービットコード3がX座標値2、Y座標値2及びZ座標値2によって表される実空間上の位置に配置されていることが示されている。
【0045】
コード位置情報101cには、コードID「003」に対応づけてX座標「X座標値3」、Y座標「Y座標値3」及びZ座標「Z座標値3」が含まれている。このコード位置情報101cによれば、コードID「003」によって識別されるカラービットコード3がX座標値3、Y座標値3及びZ座標値3によって表される実空間上の位置に配置されていることが示されている。
【0046】
ここではコード位置情報101a~101cについてのみ説明したが、格納部101には、移動体2が移動する屋内空間に配置されたカラービットコード3毎にコード位置情報が格納されている。また、コード位置情報101a~101c以外のコード位置情報のデータ構造についても当該コード位置情報101a~101cのデータ構造と同様である。
【0047】
更に、
図6に示す例では1つのカラービットコード3(コードID)に対して1つの実空間上の位置を示すコード位置情報が示されているが、当該コード位置情報は、例えばカラービットコード3の両端の実空間上の位置(つまり、1つのカラービットコード3に対して複数の位置)を示すものであっても構わない。
【0048】
以下、
図7のフローチャートを参照して、本実施形態に係る画像処理装置10の処理手順の一例について説明する。なお、
図7に示す処理は、移動体2の位置を取得(管理)する必要があるタイミングで実行されればよいが、例えば画像処理システム1の管理者によって指定されたタイミングまたは予め定められた時間に到達したタイミング等で実行されてもよい。
【0049】
図7に示す処理が実行される場合、例えば移動体2に設置されているカメラ2aの電源がオンされ、当該カメラ2aが起動される。このようにカメラ2aが起動されることによって、当該カメラ2aにおける画像の撮像が可能となる。
【0050】
この場合、画像取得部102は、カメラ2aにおいて撮像された画像を取得する(ステップS1)。
【0051】
ここで、本実施形態において移動体2が移動する屋内空間には、複数のカラービットコード3が配置されているものとする。これによれば、画像取得部102は、複数のカラービットコード3のうち、屋内空間を移動している移動体2の近傍に配置されているカラービットコード3を含む画像を取得することができる。以下の説明においては、ステップS1において取得された画像を便宜的に対象画像と称する。
【0052】
ステップS1の処理が実行されると、デコード処理部103は、対象画像に対する画像解析処理を実行する(ステップS2)。なお、このステップS2において実行される画像解析処理は、対象画像に含まれるカラービットコード3に対するデコード処理(読み取り処理)に相当する。以下、このデコード処理について具体的に説明する。
【0053】
まず、デコード処理部103は、対象画像を各色領域に区分けする処理(以下、色領域区分け処理と表記)を実行する。ここで、一般的に対象画像は背景を含めて様々な色彩(を表示する画素)で構成されており、それらのパターンも様々なである。このため、色領域区分け処理においては、この対象画像中の色彩を色空間の中で赤色、緑色、青色及び無彩色に区分けし、各画素の色彩をいずれかの領域に当てはめる処理(均色化処理)が行われる。すなわち、色領域区分け処理においては、対象画像中の各画素に対するラベリング処理が実行される。
【0054】
なお、上記した赤色、緑色及び青色はカラービットコードを構成する各セルに付される色彩として定義された色彩(以下、構成色と表記)であるが、色領域区分け処理においては、例えば照明、彩色、退色等を考慮して色空間上でこれらの構成色と認定することができる一定の範囲に包含される色彩であれば、当該色彩(の画素)を構成色として区分けするものとする。すなわち、例えば赤色の領域を区分けする場合には、当該赤色を中心とする一定の範囲の色彩を表示する画素の全てを赤色の領域として認定する。緑色及び青色の領域を区分けする場合についても同様である。
【0055】
また、無彩色とは、色領域区分け処理において赤色、緑色及び青色として認定される色彩以外の色彩である。
【0056】
更に、上記したように対象画像に対しては均色化処理が行われるが、一般的に当該対象画像にはノイズ成分が混入している場合が多い。このノイズに相当する微小部位の色彩異変に対しては例えばその周囲の色彩に合わせる、または、平均化する等のノイズ除去処理を行うことによって、当該ノイズを除去することが好ましい。
【0057】
次に、デコード処理部103は、色領域区分け処理によって区分けされた各色領域に基づいて複数の構成色(赤色、緑色及び青色)の領域が配列されてなるカラービットコード3の領域(以下、コード領域と表記)を切り出す処理(以下、コード切り出し処理と表記)を実行する。このコード切り出し処理においては、各色領域の周囲の色彩(例えば、他の構成色の領域及び無彩色の領域の配置等)やカラービットコード3を構成するセル3aの数等に基づいてコード領域が切り出される。コード切り出し処理によって切り出されるコード領域は、例えば画像上における座標値(XY座標値)によって表される。
【0058】
なお、上記した色領域区分け処理及びコード切り出し処理については、例えば特開2008-287414号公報等に開示されているため、ここではその詳細な説明については省略する。
【0059】
次に、デコード処理部103は、コード切り出し処理によって対象画像から切り出されたコード領域において配列されている複数の色領域における色彩の遷移(つまり、当該複数の色領域の順番)に基づいてカラービットコード3をデコードする。これによれば、カラービットコード3における例えば始点セル(カラービットコード3の開始を表す端点セル)から終点セル(カラービットコード3の終了を表す端点セル)までの色の遷移によって表されるコードIDが取得される。
【0060】
なお、移動体2の移動方向または当該移動体2に設置されているカメラ2aの向き等によっては、対象画像にカラービットコード3が含まれていない場合があるが、この場合には、ステップS2の処理が実行されたとしてもコード領域が切り出されない(つまり、コードIDが取得されない)ため、
図6に示す処理は終了される。
【0061】
以下の説明においては、便宜的に、ステップS2の処理が実行されることによって取得されたコードIDを対象コードID、当該対象コードIDによって識別されるカラービットコード3(つまり、対象画像に含まれているカラービットコード3)を対象カラービットコード3と称する。
【0062】
上記したステップS2の処理が実行されると、コード位置取得部104は、対象コードIDに基づいて、対象カラービットコード3の実空間上の位置を取得する(ステップS3)。
【0063】
この場合、コード位置取得部104は、格納部101に格納されているコード位置情報の中から対象コードIDを含むコード位置情報を特定し、当該特定されたコード位置情報に含まれているX座標値、Y座標値及びZ座標値を対象カラービットコード3の実空間上の位置として取得する。
【0064】
ステップS3の処理が実行されると、移動体位置計算部105は、移動体2の位置(移動体2の実空間上の位置)を計算する(ステップS4)。
【0065】
ここで、本実施形態において、移動体2が移動する屋内空間には、当該移動体2に設置されているカメラ2aの画角内に少なくとも2つのカラービットコード3が包含されるように複数のカラービットコード3が配置されているものとする。
【0066】
この場合、ステップS1において取得される画像(対象画像)には2つのカラービットコード(対象カラービットコード)3が含まれており、ステップS2において実行されるコード切り出し処理においては、当該2つの対象カラービットコード3の各々のコード領域が切り出される。これによれば、ステップS2においては、切り出されたコード領域から、2つの対象カラービットコード3の各々の両端セル(始点セル及び終点セル)の対象画像上の位置(XY座標値)を抽出することができるものとする。
【0067】
また、ステップS3においては、2つの対象カラービットコード3の各々の実空間上の位置が取得される。この場合、格納部101にはカラービットコード3の両端セル(始点セル及び終点セル)の実空間上の位置を示すコード位置情報がカラービットコード3毎に格納されているものとし、ステップS3においては、当該2つの対象カラービットコード3の各々の両端セルの実空間上の位置が取得されるものとする。
【0068】
本実施形態においては、上記した2つの対象カラービットコードの各々の両端セルの対象画像上の位置(対象画像上の4点)及び当該2つの対象カラービットコード3の各々の両端セルの実空間上の位置(実空間上の4点)を透視投影モデルに適用することによって、移動体2の位置を計算するものとする。なお、移動体2に設置されているカメラ2aの画角及び当該カメラ2aにおいて撮像される画像の解像度は既知であり、当該画角及び解像度に関する情報は画像処理装置10内において管理されているものとする。上記した移動体2の位置の計算処理においては、この画角及び解像度に関する情報も利用される。
【0069】
すなわち、本実施形態においては、対象画像に含まれる2つの対象カラービットコード3の各々の両端セル(つまり、2つの対象カラービットコード3に基づいて抽出される4点)によって規定される空間を利用して移動体2の位置を計算する。この場合、カメラ2aによって撮像される2つの対象カラービットコード3の各々の両端セルが同一平面状にないことが移動体2の位置を計算するための条件であり、移動体2が移動する屋内空間には、当該カメラ2aとの位置関係において当該条件を満たす画像が撮像されるように複数のカラービットコード3が配置されているものとする。
【0070】
なお、ここで説明した移動体2の位置の計算手法は一例であり、他の手法によって移動体2の位置が計算されても構わない。
【0071】
また、本実施形態においては移動体2の位置として当該位置に対応するX座標値、Y座標値及びZ座標値が計算されればよいが、例えばカメラ2a(が設置されている移動体2)の上下方向の傾き角度、左右方向の傾き角度及び回転角度等が更に計算されても構わない。
【0072】
ステップS4の処理が実行されると、当該ステップS4において計算された移動体2の位置を示す情報(以下、移動体位置情報と表記)は、送信処理部106によってサーバ装置20に送信される。
【0073】
上記したように本実施形態においては、移動体2に設置されたカメラ2a(撮像装置)によって撮像された画像に含まれるカラービットコード3(光学式認識コード)をデコードすることによって、当該カラービットコード3によって表されるコードID(識別情報)を取得し、当該コードIDに基づいて当該カラービットコード3の実空間上の位置を取得する。本実施形態においては、カラービットコード3の画像上の位置及び当該カラービットコード3の実空間上の位置に基づいて移動体2の位置を計算する。
【0074】
本実施形態においては、このような構成により、画像処理装置10において計算することによって得られた移動体2の位置(移動体位置情報)をサーバ装置20において管理することが可能となり、当該サーバ装置20において管理される移動体2の位置を例えば移動体2の追跡(監視)または当該移動体2の位置の補正等に利用することができる。
【0075】
なお、上記した画像処理装置10における移動体2の位置を計算する処理(つまり、
図6に示す処理)は定期的に実行されるものとする。これによれば、移動体2の位置を定期的に得ることができるため、継続的な移動体2の追跡等を実現することができる。
【0076】
また、屋内空間に複数の移動体が存在する場合、画像処理装置10(送信処理部106)は、移動体2の位置を示す移動体位置情報とともに、当該移動体2を識別するための識別情報(以下、移動体IDと表記)をサーバ装置20に送信するものとする。これによれば、サーバ装置20は、移動体2毎に位置を管理することが可能となる。なお、各移動体2を識別するための移動体IDは、当該画像処理装置10内で予め管理されていればよい。
【0077】
ここで、一般的に移動体2の位置を計測(測位)する際にはGPS機能を利用する場合があるが、当該移動体2が工場のような屋内空間を移動する場合には、当該移動体2の位置を正確に計測することができない可能性がある。
【0078】
また、例えば屋内空間に配置された各種送信機から送信されるビーコン、無線、電波または電磁波等を利用して移動体2の位置を計測することが考えられるが、このような構成であっても、電波干渉または金属反響等により位置の計測精度が低下する場合がある。
【0079】
これに対して、本実施形態においては、上記したようにカメラ2aにおいてカラービットコード3を撮像することによって移動体2の位置を計算(計測)する構成であるため、屋内空間を移動する移動体2の位置を高い精度で得ることが可能となる。
【0080】
更に、画像解析(画像認識)によって移動体2の位置を計測する場合、一般的には移動体2側に目印(コード等)を付し、当該移動体2に付された目印を屋内空間に設置された撮像装置で撮像する手法を採用する場合が多いが、このような手法では、当該撮像装置の前を瞬時に通過する目印(移動体2)を撮像する必要があるため、当該目印を撮像する難易度が高く、移動体2の正確な位置を計測することができない場合がある。
【0081】
また、移動体2側に目印を付す場合には、当該目印のサイズを、当該目印を認識することができる程度の大きさにする必要があるが、移動体2に付すことが可能な目印(タグ)の大きさには限界がある。
【0082】
これに対して、本実施形態においては、移動体2に設置されたカメラ2aにおいて屋内の例えば壁面等に配置されたカラービットコード3を撮像する構成を採用しているため、当該カメラ2aがカラービットコード3を撮像する困難性を低減することができる。なお、カラービットコード3を移動体2が移動する向き等を考慮して配置することで、カラービットコード3をより容易に撮像することができるようにしてもよい。
【0083】
更に、本実施形態においては、カラービットコード3が屋内の壁面等に配置されるため、当該カラービットコード3を移動体2側に付す場合と比較して、当該カラービットコード3のサイズ、形状及び配置に関する制限を緩和することができる。
【0084】
また、本実施形態においては、カメラ2aを移動体2毎に設置する構成により、例えば移動体2が移動する空間(以下、移動対象空間と表記)が拡大した場合であっても、当該拡大した空間にカラービットコード3を新たに配置する(貼り付ける)のみで、当該空間を移動する移動体2の位置を得ることが可能となる。すなわち、本実施形態においては、移動対象空間が拡大した場合であっても、コストが高額になりがちなカメラ2aを増設する必要がないため、コストダウンを実現することができる。
【0085】
ここで、本実施形態においては、上記したように少なくとも2つのカラービットコード3が同時にカメラ2aの画角内に含まれるように屋内空間に複数のカラービットコード3が配置される。これによれば、カメラ2aにおいて撮像された画像には2つのカラービットコード3が含まれ、当該画像に対してデコード処理が実行された場合には、当該2つのカラービットコード3の各々の両端セル(つまり、2つのカラービットコード3に基づいて抽出される4点)によって規定される空間を利用して移動体2の位置を計算することができる。
【0086】
なお、このように計算される移動体2の位置の精度は、画像に含まれる2つのカラービットコード3の各々の両端セルによって規定される空間の体積に依存する。換言すれば、画像に含まれる2つのカラービットコード3の各々の両端セル間の距離が長いほど、正確な移動体2の位置を計算することができる。
【0087】
このため、本実施形態において屋内空間に配置されるカラービットコード3は、当該カラービットコード3の両端セル間の距離が長くなるように形成されていることが好ましい。具体的には、カラービットコード3は、例えば直線状に形成されているものとする。なお、1つの画像に含まれる2つのカラービットコード3間の距離(間隔)も長くなるように配置されていることが好ましいが、各カラービットコード3が配置される位置についてはカメラ2aの画角、移動体が配置される屋内空間の大きさまたは当該屋内空間において当該移動体が移動する経路等に基づいて決定されればよい。
【0088】
なお、本実施形態においては光学式認識コードとしてカラービットコード3を利用するものとして説明したが、当該光学式認識コードとしては、例えばバーコードまたは2次元コード等の他の光学式認識コード(自動認識技術)が用いられても構わない。
【0089】
このようにカラービットコード3以外の光学式認識コード(バーコードまたは2次元コード等)を利用する場合には、例えば1つの画像に当該光学式認識コードが4つ包含されるように当該光学式認識コードを配置しておくことにより、当該4つの光学式認識コードに基づいて抽出される4点によって規定される空間を利用して移動体2の位置を計算することができる。
【0090】
また、ここでは光学式認識コードから抽出される4点によって規定される空間を利用して移動体2の位置を計算するものとして説明したが、当該移動体2の位置は、例えば光学式認識コードに基づいて抽出される3点(の画像上及び実空間上の位置)によって規定される平面を利用して計算することも可能である。具体的には、例えばカメラ2aの画角及び当該カメラ2aにおいて撮像される画像の解像度に関する情報、当該カメラ2aの上下方向の傾きに関する情報(例えば、水平を向いているまたは上を向いている等)、当該カメラ2aが設置されている高さに関する情報(例えば、プラス方向の高さにある等)が既知であれば、光学式認識コードに基づいて抽出される3点の画像上の位置及び実空間上の位置を透視投影モデルに適用することによって、移動体2の位置を計算することができる。
【0091】
なお、光学式認識コードに基づいて抽出される3点(の画像上及び実空間上の位置)によって規定される平面を利用して移動体2の位置を計算する場合には、複数の移動体2の位置が計算されるが、上記した既知の情報を利用することによって、当該複数の移動体2の位置の中から最適な位置を絞り込むことができる。
【0092】
更に、移動体2の位置は、例えば光学式認識コードに基づいて抽出される2点(の画像上及び実空間上の位置)によって規定された線を利用して計算することも可能である。具体的には、例えばカメラ2aの画角及び当該カメラ2aにおいて撮像される画像の解像度に関する情報、当該カメラ2aの上下方向の傾きに関する情報、当該カメラ2aが設置されている高さに関する情報が既知であれば、光学式認識コードに基づいて抽出される2点の画像上の位置及び実空間上の位置に基づいて、移動体2の位置を計算することができる。この場合には、光学式認識コードに基づいて抽出される2点が見える角度の交点を移動体2の位置として計算する。
【0093】
なお、上記した光学式認識コードに基づいて抽出される3点によって規定された平面を利用して移動体2の位置を計算する場合には、カメラ2aの上下方向及び当該カメラ2aが設置されている高さはある程度大まかな情報であればよいが、光学式認識コードに基づいて抽出される2点によって規定された線を利用して移動体2の位置を計算する場合には、カメラ2aの上下方向の傾き及び当該カメラ2aが設置されている高さは正確な値であることが好ましい。
【0094】
更に、移動体2の位置は、例えば光学式認識コードに基づいて抽出される1点(の画像上及び実空間上の位置)を利用して計算することも可能である。具体的には、例えばカメラ2aの画角及び当該カメラ2aにおいて撮像される画像の解像度に関する情報、当該カメラ2aの上下方向の傾きに関する情報、当該カメラ2aが設置されている高さに関する情報、当該カメラ2aの向き(方角)に関する情報が既知であれば、三角測量によりカメラ2aから光学式認識コードまでの距離を得ることができるため、当該距離に基づいて移動体2の位置を計算することができる。
【0095】
本実施形態においては、光学式認識コードに基づいて抽出される1点~4点を利用して移動体2の位置を計算する手法について説明したが、当該移動体2の位置の計算に利用する点の数が多いほど当該位置の精度が高くなる一方で、光学式認識コードの配置等に関する制限が厳しくなる。したがって、上記した移動体2の位置を計算する手法(計算アルゴリズム)については、例えば移動体2が配置される屋内空間のレイアウト(つまり、光学式認識コードを適切に配置することができるか否か)等に基づいて適宜選択されればよい。
【0096】
また、移動体2に設置されたカメラ2aにおいて光学式認識コードを撮像し、当該光学式認識コードの画像上の位置及び実空間上の位置に基づいて当該移動体2の位置を計算する構成であれば、当該移動体2の位置を計算する方法としては本実施形態において説明した以外の手法が適用されてもよい。
【0097】
なお、本実施形態においては、移動体2が自動搬送車であるものとして説明したが、当該移動体2は、例えばドローン等の無人航空機、自立型の移動ロボット等の他の移動体であってもよい。更に、移動体2は、人が乗車して運転することができるような車両等であっても構わない。
【0098】
更に、本実施形態においては屋内空間を移動する移動体2の位置を計算するものとして説明したが、上記した移動体2に設置されたカメラ2aにおいて周辺に配置された光学式認識コードを撮像することによって当該移動体2の位置を計算するような構成であれば、本実施形態は、当該屋外を移動する移動体に適用されても構わない。
【0099】
また、本実施形態においては、
図6に示す処理が画像処理装置10によって実行されるものとして説明したが、当該画像処理装置10の処理の一部は例えばサーバ装置20等によって実行されてもよい。すなわち、本実施形態においては、
図6に示す処理を画像処理装置10及びサーバ装置20を備える画像処理システム1全体で実行するようにしてもよい。
【0100】
この場合、例えば
図6に示すステップS1及びS2の処理を画像処理装置10側で実行し、ステップS3及びS4の処理をサーバ装置20側で実行するようにしてもよい。また、例えば
図6に示すステップS1~S3の処理を画像処理装置10側で実行し、ステップS4の処理をサーバ装置20側で実行するようにしてもよい。
【0101】
なお、例えば
図6に示すステップS1の処理を画像処理装置10側で実行し、ステップS2~S4の処理をサーバ装置20側で実行する構成とすることも可能であるが、このような構成の場合には画像処理装置10からサーバ装置20に画像を送信しなければならず、通信容量が増大する。このため、画像処理装置10からサーバ装置20への通信容量を削減する観点からは、画像処理装置10側で少なくともステップS2までの処理を実行することが好ましい。
【0102】
また、上記したように
図6に示す処理を画像処理システム1全体で実行する場合には、
図4に示す各機能部101~106はそれぞれ画像処理装置10またはサーバ装置20に分散して配置されればよいが、例えば格納部101は当該画像処理システム1以外の外部装置に配置されていてもよい。この場合には、
図6に示すステップS3の処理が実行される際に、画像処理システム1がコード位置情報を外部装置から取得(受信)する構成とすればよい。
【0103】
なお、上記した実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD-ROM、DVDなど)光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【0104】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であってもよい。
【0105】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が本実施形態を実現するための各処理の一部を実行してもよい。
【0106】
更に、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【0107】
また、記憶媒体は1つに限らず、複数の媒体から本実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であってもよい。
【0108】
なお、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であってもよい。
【0109】
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【0110】
なお、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。
【符号の説明】
【0111】
1…画像処理システム、2…移動体、2a…カメラ(撮像装置)、3…カラービットコード、3a…セル、10…画像処理装置、11…バス、12…不揮発性メモリ、13…CPU、14…メインメモリ、15…無線通信デバイス、20…サーバ装置、30…ネットワーク、101…格納部、102…画像取得部、103…デコード処理部、104…コード位置取得部、105…移動体位置計算部、106…送信処理部。