IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社シーエーシーの特許一覧

特許7269312複数のマーカーから関連するマーカーを識別するためのプログラム、方法及び装置
<>
  • 特許-複数のマーカーから関連するマーカーを識別するためのプログラム、方法及び装置 図1
  • 特許-複数のマーカーから関連するマーカーを識別するためのプログラム、方法及び装置 図2
  • 特許-複数のマーカーから関連するマーカーを識別するためのプログラム、方法及び装置 図3
  • 特許-複数のマーカーから関連するマーカーを識別するためのプログラム、方法及び装置 図4
  • 特許-複数のマーカーから関連するマーカーを識別するためのプログラム、方法及び装置 図5
  • 特許-複数のマーカーから関連するマーカーを識別するためのプログラム、方法及び装置 図6
  • 特許-複数のマーカーから関連するマーカーを識別するためのプログラム、方法及び装置 図7
  • 特許-複数のマーカーから関連するマーカーを識別するためのプログラム、方法及び装置 図8
  • 特許-複数のマーカーから関連するマーカーを識別するためのプログラム、方法及び装置 図9
  • 特許-複数のマーカーから関連するマーカーを識別するためのプログラム、方法及び装置 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2023-04-25
(45)【発行日】2023-05-08
(54)【発明の名称】複数のマーカーから関連するマーカーを識別するためのプログラム、方法及び装置
(51)【国際特許分類】
   G06T 7/70 20170101AFI20230426BHJP
   G06K 7/14 20060101ALI20230426BHJP
【FI】
G06T7/70 Z
G06K7/14 017
G06K7/14 034
【請求項の数】 13
(21)【出願番号】P 2021203973
(22)【出願日】2021-12-16
【審査請求日】2021-12-16
(73)【特許権者】
【識別番号】515082623
【氏名又は名称】株式会社シーエーシー
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【弁理士】
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100196508
【弁理士】
【氏名又は名称】松尾 淳一
(72)【発明者】
【氏名】高橋 滉一
(72)【発明者】
【氏名】吉野 瑠
(72)【発明者】
【氏名】久米 好規
(72)【発明者】
【氏名】鈴木 貴博
【審査官】小池 正彦
(56)【参考文献】
【文献】特開2021-047475(JP,A)
【文献】特開2021-170272(JP,A)
【文献】特開2004-240874(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/70
G06K 7/14
(57)【特許請求の範囲】
【請求項1】
画像に含まれる複数のマーカーのうちの第1マーカーを識別するステップと、
前記画像上のマーカーの傾きに少なくとも基づき、前記複数のマーカーのうちの前記第1マーカーに関連する第2マーカーを識別するステップと
をコンピュータに実行させるプログラム。
【請求項2】
請求項1に記載のプログラムであって、
前記複数のマーカーの各々には情報が符号化され、
前記複数のマーカーのうちの第1マーカーを識別する前記ステップは、マーカーに符号化された情報に基づき、前記複数のマーカーのうちの第1マーカーを識別するステップを含む、
プログラム。
【請求項3】
請求項2に記載のプログラムであって、
前記複数のマーカーのうちの第1マーカーを識別する前記ステップは、符号化された情報が所定情報セットに含まれるマーカーを前記第1マーカーとして識別するステップを含む、
プログラム。
【請求項4】
請求項2又は3に記載のプログラムであって、
複数の対象のうちの各々が、少なくとも2つのマーカーに関連付けられ、
前記プログラムは、前記第1マーカー及び該第1マーカーに関連する前記第2マーカーに符号化されている情報に少なくとも基づき、前記第1マーカー及び該第1マーカーに関連する前記第2マーカーに関連付けられた1つの対象を識別するステップをコンピュータに更に実行させる、
プログラム。
【請求項5】
請求項2から4のうちの何れか一項に記載のプログラムであって、
前記第1マーカーに符号化された情報に基づき、前記第1マーカーに関連する第3マーカーが存在するかを判定するステップと、
前記第1マーカーに関連する前記第3マーカーが存在すると判定した場合に、前記複数のマーカーのうちの前記第1マーカーに関連する第3マーカーを識別するステップと
をコンピュータに更に実行させるプログラム。
【請求項6】
請求項1から5のうちの何れか一項に記載のプログラムであって、
前記複数のマーカーのうちの前記第1マーカーに関連する第2マーカーを識別する前記ステップは、前記画像上のマーカー間距離にも少なくとも基づき、前記複数のマーカーのうちの前記第1マーカーに関連する第2マーカーを識別するステップを含む、
プログラム。
【請求項7】
請求項6に記載のプログラムであって、
前記複数のマーカーのうちの前記第1マーカーに関連する第2マーカーを識別する前記ステップは、前記第1マーカーの前記画像上の傾きとの間で所定の傾き条件を満たし、且つ、前記第1マーカーとの間の前記画像上のマーカー間距離が所定の距離条件を満たすマーカーを、前記第2マーカーとして識別するステップを含む、
プログラム。
【請求項8】
請求項6又は7に記載のプログラムであって、
前記複数のマーカーのうちの前記第1マーカーに関連する第2マーカーを識別する前記ステップは、前記画像上のマーカー間距離として、前記第1マーカー上の第1位置と、前記複数のマーカーのうちの他のマーカー上の第2位置との間の前記画像上の距離を計算するステップを含む、
プログラム。
【請求項9】
請求項6から8のうちの何れか一項に記載のプログラムであって、前記画像上のマーカー間距離は、前記第1マーカーと画像上のマーカーの中心間の距離が等しいマーカーであっても、当該マーカーが画像上で位置する前記第1マーカーを基準とした方向に応じて異なるように定義された、プログラム。
【請求項10】
コンピュータが、画像に含まれる複数のマーカーのうちの第1マーカーを識別するステップと、
コンピュータが、前記画像上のマーカーの傾きに少なくとも基づき、前記複数のマーカーのうちの前記第1マーカーに関連する第2マーカーを識別するステップと
を含む方法。
【請求項11】
画像に含まれる複数のマーカーのうちの第1マーカーを識別するよう構成された第1マーカー識別部と、
前記画像上のマーカーの傾きに少なくとも基づき、前記複数のマーカーのうちの前記第1マーカーに関連する第2マーカーを識別するよう構成された第2マーカー識別部と
を含む装置。
【請求項12】
請求項11に記載の装置であって、
前記複数のマーカーの各々には情報が符号化され、
複数の対象のうちの各々が、少なくとも2つのマーカーに関連付けられ、
前記装置は、前記第1マーカー及び該第1マーカーに関連する前記第2マーカーに符号化されている情報に基づき、前記第1マーカー及び該第1マーカーに関連する前記第2マーカーに関連付けられている1つの対象を識別するよう構成された対象識別部を更に含む、
装置。
【請求項13】
請求項12に記載の装置であって、
前記画像を取得するためのデジタル・カメラと、
識別された前記1つの対象について表示するためのディスプレイと
を更に含む装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マーカーに基づき対象(人や物体等)を識別することに関する。
【背景技術】
【0002】
従来、物体に付されたマーカーをデジタル・カメラ等により画像として取得して当該マーカーに符号化されている情報を読み取り、当該情報により物体を識別する技術が存在する。また、符号化されている情報を読み取る精度や速度等に優れている一方で、符号化できる情報量が少ないマーカー(例えば、ArUcoマーカー)が存在する。そのようなマーカーを用いて多くの物体を識別できるようにするためには、1つの物体に複数のマーカーを付す必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0003】
デジタル・カメラ等により取得された画像には、異なる物体の各々に付されたマーカーが同時に含まれてしまうことがある。1つの物体に複数のマーカーが付される場合にこのような画像から各物体を識別しようとすると、画像に含まれる各マーカーについて関連するマーカーを識別しなければならない。
【0004】
本発明は以上に鑑みてなされたものであり、その課題は、複数のマーカーから関連するマーカーを識別可能なプログラム等を提供することである。
【課題を解決するための手段】
【0005】
上記課題を解決するため、本発明の実施形態によれば、画像に含まれる複数のマーカーのうちの第1マーカーを識別するステップと、前記画像上のマーカーの傾きに少なくとも基づき、前記複数のマーカーのうちの前記第1マーカーに関連する第2マーカーを識別するステップとをコンピュータに実行させるプログラムが提供される。
【0006】
一実施形態において、前記複数のマーカーの各々には情報が符号化され、前記複数のマーカーのうちの第1マーカーを識別する前記ステップは、マーカーに符号化された情報に基づき、前記複数のマーカーのうちの第1マーカーを識別するステップを含むことができる。
【0007】
一実施形態において、前記複数のマーカーのうちの第1マーカーを識別する前記ステップは、符号化された情報が所定情報セットに含まれるマーカーを前記第1マーカーとして識別するステップを含むことができる。
【0008】
一実施形態において、複数の対象のうちの各々が、少なくとも2つのマーカーに関連付けられ、一実施形態であるプログラムは、前記第1マーカー及び該第1マーカーに関連する前記第2マーカーに符号化されている情報に少なくとも基づき、前記第1マーカー及び該第1マーカーに関連する前記第2マーカーに関連付けられた1つの対象を識別するステップをコンピュータに更に実行させてよい。
【0009】
一実施形態であるプログラムは、前記第1マーカーに符号化された情報に基づき、前記第1マーカーに関連する第3マーカーが存在するかを判定するステップと、前記第1マーカーに関連する前記第3マーカーが存在すると判定した場合に、前記複数のマーカーのうちの前記第1マーカーに関連する第3マーカーを識別するステップとをコンピュータに更に実行させてよい。
【0010】
一実施形態において、前記複数のマーカーのうちの前記第1マーカーに関連する第2マーカーを識別する前記ステップは、前記画像上のマーカー間距離にも少なくとも基づき、前記複数のマーカーのうちの前記第1マーカーに関連する第2マーカーを識別するステップを含むことができる。
【0011】
一実施形態において、前記複数のマーカーのうちの前記第1マーカーに関連する第2マーカーを識別する前記ステップは、前記第1マーカーの前記画像上の傾きとの間で所定の傾き条件を満たし、且つ、前記第1マーカーとの間の前記画像上のマーカー間距離が所定の距離条件を満たすマーカーを、前記第2マーカーとして識別するステップを含むことができる。
【0012】
一実施形態において、前記複数のマーカーのうちの前記第1マーカーに関連する第2マーカーを識別する前記ステップは、前記画像上のマーカー間距離として、前記第1マーカー上の第1位置と、前記複数のマーカーのうちの他のマーカー上の第2位置との間の前記画像上の距離を計算するステップを含むことができる。
【0013】
一実施形態において、前記画像上のマーカー間距離は、前記第1マーカーと画像上のマーカーの中心間の距離が等しいマーカーであっても、当該マーカーが画像上で位置する前記第1マーカーを基準とした方向に応じて異なるように定義されてよい。
【0014】
上記課題を解決するため、本発明の別の実施形態によれば、コンピュータが、画像に含まれる複数のマーカーのうちの第1マーカーを識別するステップと、コンピュータが、前記画像上のマーカーの傾きに少なくとも基づき、前記複数のマーカーのうちの前記第1マーカーに関連する第2マーカーを識別するステップとを含む方法が提供される。
【0015】
上記課題を解決するため、本発明のまた別の実施形態によれば、画像に含まれる前記複数のマーカーのうちの第1マーカーを識別するよう構成された第1マーカー識別部と、前記画像上のマーカーの傾きに少なくとも基づき、前記複数のマーカーのうちの前記第1マーカーに関連する第2マーカーを識別するよう構成された第2マーカー識別部とを含む装置が提供される。
【0016】
一実施形態において、前記複数のマーカーの各々には情報が符号化され、複数の対象のうちの各々が、少なくとも2つのマーカーに関連付けられ、一実施形態である装置は、前記第1マーカー及び該第1マーカーに関連する前記第2マーカーに符号化されている情報に基づき、前記第1マーカー及び該第1マーカーに関連する前記第2マーカーに関連付けられている1つの対象を識別するよう構成された対象識別部を更に含んでいてよい。
【0017】
一実施形態である装置は、前記画像を取得するためのデジタル・カメラと、識別された前記1つの対象について表示するためのディスプレイとを更に含んでいてよい。
【発明の効果】
【0018】
本発明の実施形態によれば、符号化できる情報量が少ないマーカーを用いて、多くの対象を識別することができる。また、本発明の実施形態によれば、1度に多くのマーカーが画像に含まれてしまう場合であっても、関連するマーカーを精度よく識別することができる。
【図面の簡単な説明】
【0019】
図1】画像に含まれるマーカーを用いて、関連する対象を識別するための例示方法のフローチャートである。
図2】画像に含まれる複数のマーカーのうちの第1マーカーを識別するためのより詳細な例示処理のフローチャートである。
図3】第1マーカーに関連するマーカーを識別するためのより詳細な例示処理のフローチャートである。
図4】選択された第1マーカーに関連する第2マーカーを識別するためのより詳細な例示処理のフローチャートである。
図5】選択された第1マーカーに関連する第3マーカーを識別するためのより詳細な例示処理のフローチャートである。
図6】第1マーカー間距離を説明するための図である。
図7】第2マーカー間距離を説明するための図である。
図8】画像に含まれるマーカーを用いて、関連する対象を識別するための例示装置のブロック図である。
図9】マーカーに符号化される情報と、関連する対象との関係を表す例示テーブルである。
図10】コンピュータについて説明するための図である。
【発明を実施するための形態】
【0020】
1 本発明の実施形態
本発明の実施形態は、画像に含まれるマーカーを用いて、関連する対象を識別するための方法である。なお、本願における「マーカー」とは何らかの情報が符号化された図形のことであり、例えば、一次元コード(例えば、バーコード)や二次元コード(例えば、QRコード(登録商標)やArUcoマーカー)であってよいが、これらに限定されるわけではない。但し、本実施形態において用いるマーカーは、少なくとも、画像上でその傾きを比較できるという性質(例えば、画像上のマーカーの傾きの程度や角度を取得できるという性質)を有する必要がある。なお、規格上傾きに係る情報が得られない1次元コードや二次元コードであっても、原理的に傾きの程度や角度を取得できるのであれば、本願における「マーカーに」含まれる。例えば、バーコードやQRコード(以下、「バーコード等」という。)は、規格上傾きに係る情報が得られるものではないが、バーコード等を規定する矩形領域の傾きの程度又は角度を取得してバーコード等の傾きとみなすことが可能であるから、本願における「マーカー」に含まれ得ることに留意されたい。あるいは、本願における『マーカー』として用いるために、情報が符号化された図形には、上下、左右又は上下左右が非対称となるような任意の加工を加えたり、上下、左右、又は上下左右が明らかとなるような任意の文字や図形を加えたり、傾きの基準となるような任意の文字や図形を加えたりしてもよい。また、上述したように「対象」の例は人や物体であるが、これらに限定されるわけではない。
【0021】
図1は、画像に含まれるマーカーを用いて、関連する対象を識別するための例示方法100のフローチャートである。なお、例示方法100はコンピュータが実行するものである。このコンピュータは例えばスマートフォンやタブレットであってよいが、これらに限定されるわけではない。
【0022】
110は、画像に含まれる複数のマーカーのうちの第1マーカーを識別するステップを示している。なお、ステップ110において用いられる画像は任意に取得されたものであってよく、例えば、コンピュータが備えるか又はコンピュータとは別個のデジタル・カメラによって撮像されたものであってよいが、これに限定されるわけではない。また、ステップ110は、識別された1以上の第1マーカーを表すデータ構造、例えば各要素が各第1マーカーに対応するデータ構造(例えばListやSet、配列であってよいが、これらに限定されるわけではない。)をメモリに記憶するステップを含むことができる。
【0023】
120は、画像に含まれる複数のマーカーのうち、ステップ110において識別された第1マーカーに関連するマーカーを識別するステップを示している。1つの第1マーカーには1以上のマーカーが関連することがある。従って、「第1マーカーに関連するマーカー」は第1マーカーに関連する第2マーカーを含む。また、「第1マーカーに関連するマーカー」は、第1マーカーに関連する第3マーカー(及び更には第4マーカー、第5マーカー、…)も含むことができる。本実施形態において、第1マーカーに関連する少なくとも1つのマーカーの識別は、画像上のマーカーの傾きに少なくとも基づくものである。なお、「画像上のマーカーの傾き」は、画像上の傾きをマーカー同士で比較することができるのであれば、任意に定義されてよい。従って、「画像上のマーカーの傾き」は、例えば、矩形マーカーを用いる場合に、当該マーカーの特定の頂点の画像上の座標から別の特定の頂点の画像上の座標に向かうベクトルを、画像上の所定の座標(例えば(0,0))から別の所定の座標(例えば(100,0))に向かうベクトル(この例では画像のX軸に平行なベクトル)と向きが一致するまで時計回りに回転させたときの回転の角度θ(0°≦θ<360°(マーカーの種類によっては、0°≦θ<180°や0°≦θ<90°となる場合があることに留意されたい。))として定義されてよいが、これに限定されるわけではない。なお、このように「画像上のマーカーの傾き」を定義する場合には、マーカーは、定義域の範囲内で当該マーカーをどのように回転させようとも当該特定の頂点及び当該別の特定の頂点を識別できるという性質を有する必要があることが理解されよう。ちなみに、上に例示したArUcoマーカーはこのような性質を有するマーカーである。また、ステップ120は、識別された1以上のマーカーの各々に関連するマーカーを表す情報を各第1マーカーに関連付けてメモリに記憶するステップを含むことができる。
【0024】
130は、第1マーカー及び該第1マーカーに関連するマーカーに関連する対象を識別するステップを示している。ステップ130は、第1マーカー及び該第1マーカーに関連するマーカーに符号化されている情報と、図9に表すような例示テーブル900の対応する列とを比較することにより、関連する対象を決定するステップを含んでいてよい。例示テーブル900によれば、例えば、第1マーカー及び該第1マーカーに関連する第2マーカーに符号化されている情報がそれぞれ「0」及び「100」である場合、関連する対象として『高橋(作業者)』を識別することができる。
【0025】
1-1 ステップ110について
図2は、ステップ110が含むことのできる例示処理200のフローチャートである。
210は、画像に含まれる複数のマーカーを抽出するステップを示している。このステップは、画像に含まれる複数のマーカーを画像認識し、当該複数のマーカーの各々についての情報をメモリに記憶するステップを含むことができる。ステップ210は任意の手法によって実現されてよく、例えば公知のライブラリであるOpenCVを利用して実現されてよいが、これに限定されるわけではない。また、記憶されるマーカーについての情報は、例えば、マーカーに符号化された情報と、マーカーの画像上の位置(例えば矩形マーカーの場合にはマーカー上の所定位置例えば四隅の画像上の座標)と、マーカーの画像上の大きさ例えば幅や高さと、マーカーの画像上の傾きとを含んでいてよいが、これらに限定されるわけではない。
【0026】
220は、ステップ210において抽出された複数のマーカーのうちの1つを選択するステップを示している。
230は、ステップ220において選択されたマーカーに符号化された情報を取得するステップを示している。ステップ230は、ステップ210においてメモリに記憶された情報のうちの対応する情報をメモリから読み取るステップを含むことができる。
【0027】
240は、ステップ230において取得された情報は所定情報セットに含まれるかを判定するステップを示している。本実施形態においては、第1マーカーとして用いられるマーカーに符号化され得る情報のセットと、第1マーカーとして用いられないマーカーに符号化され得る情報のセットとが異なるように構成されている。図9の例示テーブル900を用いてより具体的に説明すると、例えば、第1マーカーとして用いられるマーカーには0又は1が符号化され、第1マーカーとして用いられないマーカーには0も1も符号化されないように構成されているということである。従って、この例によれば、ステップ230において取得された情報が所定情報セット{0,1}に含まれる、即ち0又は1であるならば、ステップ220において選択されたマーカーは第1マーカーとして用いられるものと判定することができる。逆に、この例によれば、ステップ230において取得された情報が所定情報セット{0,1}に含まれない、即ち0でも1でもないならば、ステップ220において選択されたマーカーは第1マーカーとして用いられないものと判定することができる。情報が所定情報セットに含まれると判定した場合、処理はステップ250に進み、そうでない場合、処理はステップ260に進む。なお、以下、後述する第2所定情報セットと区別するため、ステップ240における「所定情報セット」を「第1所定情報セット」ともいう。なお、例示テーブル900はメモリに予め記憶されていてよい。
【0028】
250は、ステップ220において選択されたマーカーを第1マーカーとして識別するステップを示している。
260は、ステップ220において選択されたマーカーを第1マーカー以外のマーカー(以下、「その他マーカー」という。)として識別するステップを示している。
【0029】
270は、ステップ210において抽出された複数のマーカーにおいて、マーカーは全て選択されたかを判定するステップを示している。マーカーが全て選択されたと判定した場合、例示処理200は終了し、そうでない場合、処理はステップ220に戻る。
【0030】
1-2 ステップ120について
図3は、ステップ120が含むことのできる例示処理300のフローチャートである。
310は、ステップ110において識別された1以上の第1マーカーのうちの1つを選択するステップを示している。
【0031】
320は、選択された第1マーカーに関連する第2マーカーを識別するステップを示している。本実施形態において、第1マーカーに関連する第2マーカーの識別は、画像上のマーカーの傾きに少なくとも基づくものである。
【0032】
330は、選択された第1マーカーに関連する第3マーカーは存在するかを判定するステップを示している。選択された第1マーカーに関連する第3マーカーが存在するかの判定手法は任意であるが、例えば、選択された第1マーカーに符号化された情報に基づき、第3マーカーは存在するかを判定することができる。即ち、関連する第3マーカーが存在する第1マーカーに符号化され得る情報のセットと、関連する第3マーカーが存在しない第1マーカーに符号化され得る情報のセットとが異なるように構成することができる。図9の例示テーブル900を用いてより具体的に説明すると、例えば、関連する第3マーカーが存在する第1マーカーには1が符号化され、関連する第3マーカーが存在しない第1マーカーには1が符号化されないように構成することができるということである。従って、この例によれば、選択された第1マーカーに符号化されている情報が第2所定情報セット{1}に含まれる、即ち1であるならば、選択された第1マーカーに関連する第3マーカーは存在すると判定することができる。逆に、この例によれば、選択された第1マーカーに符号化されている情報が第2所定情報セット{1}に含まれない、即ち1でないならば、選択された第1マーカーに関連する第3マーカーは存在しないと判定することができる。このような判定手法を用いる場合、第2所定情報セットは上述した第1所定情報セットのサブセットであることに留意されたい。関連する第3マーカーが存在すると判定した場合、処理はステップ340に進み、そうでない場合、処理はステップ350に進む。
【0033】
340は、選択された第1マーカーに関連する第3マーカーを識別するステップを示している。
350は、ステップ110において識別された1以上の第1マーカーにおいて、第1マーカーは全て選択されたかを判定するステップを示している。第1マーカーが全て選択されたと判定した場合、例示処理300は終了し、そうでない場合、処理はステップ310に戻る。
【0034】
1-3 ステップ320について
図4は、ステップ320が含むことのできる例示処理400のフローチャートである。
410は、1以上のその他マーカーのうちの1つを選択するステップを示している。なお、『1以上のその他マーカー』とは、画像に含まれる複数のマーカーのうちの、ステップ110において識別された第1マーカー以外の1以上のマーカーである。
【0035】
420は、ステップ310において選択された第1マーカーと、ステップ410において選択されたその他マーカーの画像上の傾きを取得するステップを示している。ステップ420は、ステップ210において記憶された情報のうちの対応する情報をメモリから読み取るステップを含むことができる。
【0036】
430は、選択された第1マーカーの画像上の傾きと、選択されたその他マーカーの画像上の傾きとは、所定傾き条件を満たすかを判定するステップを示している。所定傾き条件は任意であり、例えば、前者の画像上の角度と後者の画像上の角度とが一致するという条件や、前者の画像上の角度と後者の画像上の角度の差が所定範囲内であるという条件であってよいが、これらに限定されるわけではない。所定傾き条件を満たすと判定した場合、処理はステップ440に進み、そうでない場合、処理はステップ470に進む。なお、以下、後述する第2所定傾き条件と区別するため、ステップ430における「所定傾き条件」を「第1所定傾き条件」という。
【0037】
440は、選択された第1マーカーと、選択されたその他マーカーの画像上の距離(以下、『第1マーカー間距離』ともいう。)を取得するステップを示している。
第1マーカー間距離は任意に定義してよく、以下、矩形マーカーの場合を例示するが、これに限定されるわけではない。図6は、2つの矩形マーカーの画像である。図6において、2つのマーカーの傾きは一致しており、610及び620はそれぞれ選択された第1マーカー及び選択されたその他マーカーに相当するものとする。図6によれば、第1マーカー間距離は、選択された第1マーカー610の「1」で示すマーカー上の位置(隅)と、選択されたその他マーカー620の「0」で示すマーカー上の位置(隅)の画像上の距離630として定義することができる。
【0038】
即ち、第1マーカー間距離は、選択された第1マーカー上の第1位置と、選択されたその他マーカー上の第2位置との間の画像上の距離として定義されてよい。ここで、第1位置及び第2位置は「連結点」と呼んでよい。また、第1位置と第2位置とはマーカー上の任意の位置であってよい(矩形マーカーの場合であっても4隅のうちの何れか2つである必要はない)が、第1位置及び第2位置は、マーカーの中心でないことが好ましい。第1位置及び第2位置を中心としないことにより、選択された第1マーカーと画像上のマーカーの中心間の距離は等しいが当該第1マーカーを基準として画像上で異なる方向に位置する2つのその他マーカー(例えば、一方のその他マーカーは当該第1マーカーの上方にあり、他方のその他マーカーは当該第1マーカーの右方にある。)を、第1マーカー間距離により区別することができる。
【0039】
なお、ステップ440は、ステップ430の後ではなく、ステップ420の直前若しくは直後に又はステップ420と同時に実行されてもよい。
450は、第1マーカー間距離が所定距離条件を満たすかを判定するステップを示している。所定距離条件は任意であり、例えば、第1マーカー間距離を正規化したものが所定範囲内であるという条件であってよいが、これに限定されるわけではない。第1マーカー間距離の正規化は、事物の縮尺が画像によって相違することに対処するためのものであり、例えば、第1マーカー間距離を画像上の選択された第1マーカーの大きさ例えば幅や高さで除算することであってよいが、これに限定されるわけではない。所定距離条件を満たすと判定した場合、処理はステップ460に進み、そうでない場合、処理はステップ470に進む。なお、以下、後述する第2所定距離条件と区別するため、ステップ450における「所定距離条件」を「第1所定距離条件」という。
【0040】
460は、選択されたその他マーカーを、選択された第1マーカーに関連する第2マーカーとして識別するステップを示している。
470は、1以上のその他マーカーは全て選択されたかを判定するステップを示している。全て選択されたと判定した場合、例示処理400は終了し、そうでない場合、処理はステップ410に戻る。なお、例示処理400を終了する前に、選択された第1マーカーに関連する第2マーカーが見つからなかったことに対処するための任意のエラー処理を実行してもよい。
【0041】
なお、ステップ430とステップ450とは入れ替えてもよい。即ち、まず所定距離条件を満たすかを判定し、所定距離条件を満たすと判定した場合に、第1所定傾き条件を満たすかを判定するようにしてもよい。ステップ430とステップ450とを入れ替えた場合、ステップ420及び440の実行タイミングも適宜変更され得ることは当業者には明らかであろう。
【0042】
所定距離条件の判定と第1所定傾き条件の判定とのどちらを先に実行するかは、想定される画像に含まれるマーカーの傾向に応じて定めてよい。即ち、画像において所定距離条件を満たすマーカーの数が第1所定傾き条件を満たすマーカーの数よりも多い傾向があることが事前のテスト等により明らかになったのであれば、例示処理400のように、第1所定傾き条件の判定を先に実行することにより、所定距離条件を満たすかの判定に進む可能性を低くすることができる。逆に、画像において所定距離条件を満たすマーカーの数が第1所定傾き条件を満たすマーカーの数よりも多い傾向があることが事前のテスト等により明らかになったのであれば、例示処理400とは異なり、所定距離条件の判定を先に実行することにより、第1所定傾き条件の判定に進む可能性を低くすることができる。このようにすることで、計算量の削減が期待される。
【0043】
1-4 340について
図5は、ステップ340が含むことのできる例示処理500のフローチャートである。例示処理500は、例示処理400に類似したものである。
【0044】
510は、1以上のその他マーカーのうちの1つを選択するステップを示している。
520は、ステップ310において選択された第1マーカーに関連する第2マーカーと、ステップ510において選択されたその他マーカーとの画像上の傾きを取得するステップを示している。ステップ520は、ステップ210において記憶された情報のうちの対応する情報をメモリから読み取るステップを含むことができる。
【0045】
530は、関連する第2マーカーの画像上の傾きと、選択されたその他マーカーの画像上の傾きとは、第2所定傾き条件を満たすかを判定するステップを示している。第2所定傾き条件は任意であり、例えば、前者の画像上の角度と後者の画像上の角度とが一致するという条件や、前者の画像上の角度と後者の画像上の角度の差が所定範囲内であるという条件であってよいが、これらに限定されるわけではない。第2所定角度条件を満たすと判定した場合、処理はステップ540に進み、そうでない場合、処理はステップ570に進む。
【0046】
540は、関連する第2マーカーと、選択されたその他マーカーの画像上の距離(以下、『第2マーカー間距離』ともいう。)を取得するステップを示している。第2マーカー間距離は任意に定義してよく、以下、矩形マーカーの場合を例示するが、これに限定されるわけではない。図7は、3つの矩形マーカーの画像である。図7において、3つのマーカーの傾きは一致しており、710、720及び730はそれぞれ選択された第1マーカー、関連する第2マーカー及び選択されたその他マーカーに相当するものとする。図7によれば、第2マーカー間距離は、関連する第2マーカー720の「3」で示すマーカー上の位置(隅)と、選択されたその他マーカー730の「0」で示すマーカー上の位置(隅)の画像上の距離740として定義することができる。
【0047】
即ち、第2マーカー間距離は、関連する第2マーカー上の第3位置と、選択されたその他マーカー上の第4位置との間の画像上の距離として定義されてよい。第3位置及び第4位置については、上述した第1位置及び第2位置と同様であってよい。
【0048】
なお、ステップ540は、ステップ530の後ではなく、ステップ520の直前若しくは直後に又はステップ520と同時に実行されてもよい。
550は、第2マーカー間距離が第2所定距離条件を満たすかを判定するステップを示している。第2所定距離条件は任意であり、例えば、第2マーカー間距離を正規化したものが所定範囲内であるという条件であってよいが、これに限定されるわけではない。第2マーカー間距離の正規化は、第1マーカー間距離の正規化と同様のものであってよい。第2所定距離条件を満たすと判定した場合、処理はステップ560に進み、そうでない場合、処理はステップ570に進む。
【0049】
560は、選択されたその他マーカーを、選択された第1マーカーに関連する第3マーカーとして識別するステップを示している。
570は、1以上のその他マーカーは全て選択されたかを判定するステップを示している。全て選択されたと判定した場合、例示処理500は終了し、そうでない場合、処理はステップ510に戻る。なお、例示処理500を終了する前に、選択された第1マーカーに関連する第3マーカーが見つからなかったことに対処するための任意のエラー処理を実行してもよい。
【0050】
なお、ステップ530とステップ550とは入れ替えてもよい。これについては、テップ430とステップ450との入れ替えについて上述したのと同様である。
2 本発明の別実施形態
本発明の別の実施形態は、画像に含まれるマーカーを用いて、関連する対象を識別するため上述したような方法を、コンピュータに実行させるプログラムである。
【0051】
本発明のまた別の実施形態は、画像に含まれるマーカーを用いて、関連する対象を識別するための装置である。
図8は、画像に含まれるマーカーを用いて、関連する対象を識別するための例示装置800のブロック図である。例示装置800は一種のコンピュータであり、例えばスマートフォンやタブレットにより構成されてよいが、これらに限定されるわけではない。
【0052】
820は、画像に含まれる複数のマーカーのうちの第1マーカーを識別するように構成された第1マーカー識別部を示している。第1マーカー識別部820は、ソフトウエアとプロセッサやメモリ等のハードウエア資源との協働により、上述したステップ110を実行するように構成されたものであってよい。
【0053】
830は、画像に含まれる複数のマーカーのうち、第1マーカー識別部820により識別された第1マーカーに関連するマーカーを識別するように構成された関連マーカー識別部を示している。関連マーカー識別部830は、第1マーカーに関連する第2マーカーを識別するように構成された第2マーカー識別部を含む。関連マーカー識別部830は、ソフトウエアとプロセッサやメモリ等のハードウエア資源との協働により、上述したステップ120を実行するように構成されたものであってよい。
【0054】
840は、第1マーカー及び該第1マーカーに関連するマーカーに関連する対象を識別するように構成された対象識別部を示している。対象識別部840は、フトウエアとプロセッサやメモリ等のハードウエア資源との協働により、上述したステップ130を実行するように構成されたものであってよい。
【0055】
810は、例示装置800が用いる上記画像を撮像するためのデジタル・カメラを示している。
850は、対象識別部840により識別した対象についての情報を表示するためのディスプレイを示している。情報の表示態様は任意であり、ディスプレイ850には、例えば、デジタル・カメラ810により撮像された画像において、当該画像に含まれる第1マーカーの付近に、当該第1マーカー関連する対象を示す文字列(例えば、図9の例示テーブル900の「関連する対象」の列の文字列(「高橋(作業者)」等))をオーバーレイしたものを表示してよいが、これに限定されるわけではない。
【0056】
3 コンピュータ
以下、本発明の一実施形態を実施するために用いることができるコンピュータのハードウエア構成の一例について説明する。なお、本発明の一実施形態を実施するために用いることができるコンピュータは任意のものであってよく、例えば、パーソナル・コンピュータやクラウド上のコンピュータ等である。
【0057】
図10は、コンピュータのハードウエア構成の一例を表している。同図に示すように、コンピュータ1000は、ハードウエア資源として、主に、プロセッサ1010と、主記憶装置1020と、補助記憶装置1030と、入出力インターフェース1040と、通信インターフェース1050とを備えており、これらはアドレスバス、データバス、コントロールバス等を含むバスライン1060を介して相互に接続されている。なお、バスライン1060と各ハードウエア資源との間には適宜インターフェース回路(図示せず)が介在している場合もある。
【0058】
プロセッサ1010は、CPUやマイクロプロセッサ等のコンピュータ全体又は少なくとも一部の制御を行うものである。なお、1つのコンピュータは複数のプロセッサ1010を含む場合がある。このような場合、以上の説明における「プロセッサ」は、複数のプロセッサ1010の総称であってもよい。
【0059】
主記憶装置1020は、プロセッサ1010に対して作業領域を提供する、SRAM(Static Random Access Memory)やDRAM(Dynamic Random Access Memory)等の揮発性メモリである。
【0060】
補助記憶装置1030は、ソフトウエアであるプログラム等やデータ等を格納する、HDDやSSD、フラッシュメモリ等の不揮発性メモリである。当該プログラムやデータ等は、任意の時点で補助記憶装置1030からバスライン1060を介して主記憶装置1020へとロードされる。補助記憶装置1030は、コンピュータ可読記憶媒体、非一時的コンピュータ可読記憶媒体、又は、コンピュータ判読可能な貯蔵媒体と呼ばれることがある。なお、プログラムは、プロセッサに所望の処理を実行させる命令を含むものである。
【0061】
入出力インターフェース1040は、情報を提示すること及び情報の入力を受けることの一方又は双方を行うものであり、デジタル・カメラ、キーボード、マウス、ディスプレイ、タッチパネル・ディスプレイ、マイク、スピーカ、各種センサ等である。
【0062】
通信インターフェース1050は、インターネットやローカル・エリア・ネットワーク(LAN)の等うちの1以上から構成されたネットワーク1055と接続されるものであり、ネットワーク1055を介してデータを送受する。通信インターフェース1050とネットワーク1055とは、有線又は無線で接続されうる。通信インターフェース1050は、ネットワークに係る情報、例えば、Wi-Fiのアクセスポイントに係る情報、通信キャリアの基地局に関する情報等も取得することがある。
【0063】
上に例示したハードウエア資源とソフトウエアとの協働により、コンピュータ1000は、所望の手段として機能し、所望のステップを実行し、所望の機能を実現させることできることは、当業者には明らかであろう。
【0064】
4 むすび
以上、本発明の実施形態の幾つかの例を説明してきたが、これらは例示にすぎず、本発明の技術的範囲を限定するものではないことが理解されるべきである。説明した実施形態についても、本開示の趣旨及び範囲から逸脱することなく、変更、追加、改良などを適宜行うことができることが理解されるべきである。本発明の技術的範囲は、上述した実施形態のいずれによっても限定されるべきではなく、特許請求の範囲及びその均等物によってのみ規定されるべきである。
【符号の説明】
【0065】
610、710…第1マーカー
620…その他マーカー(第2マーカー候補)
630…第1マーカー間距離
720…第2マーカー
730…その他マーカー(第3マーカー候補)
740…第2マーカー間距離
900…マーカーに符号化される情報と、関連する対象との関係を表すテーブル
1055…ネットワーク
1060…バスライン
【要約】
【課題】複数のマーカーから関連するマーカーを識別可能なプログラム等を提供すること。
【解決手段】画像に含まれる複数のマーカーのうちの第1マーカーを識別するステップ(110)と、前記画像上のマーカーの傾きに少なくとも基づき、前記複数のマーカーのうちの前記第1マーカーに関連する第2マーカーを識別するステップ(120)とをコンピュータに実行させるプログラム。
【選択図】図1
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10