(57)【要約】【課題】観察対象に取り付けたマーカ群を構成するマーカ数よりも少ないＩＤ付与数下において、マーカの個別識別を可能とする。【解決手段】ｎ個（ｎ≧４の自然数）のマーカから構成されるマーカ群に対して、１個のマーカに第１のＩＤを付与し、ｎ−1個のマーカに第２のＩＤを付与し、第１のＩＤが付与されたマーカを始点とし第２のＩＤが付与されたマーカを終点とするベクトル間の外積値と、撮影画像上における第１のＩＤが付与されたマーカと第２のＩＤが付与されたベクトル間の外積値との比較結果に基づいて、撮影画像における第２のマーカを個別識別する。【選択図】図２
2014228368.tif 000002
【特許請求の範囲】
【請求項１】
ｎ個（ｎ≧４の自然数）のマーカから構成されるマーカ群をカメラで撮影した撮影画像から、前記マーカ群の三次元位置／姿勢を検出する方法であって、
前記マーカ群は、第１のＩＤが付与された第１のマーカと、前記第１のＩＤとは異なる第２のＩＤが付与された第２のマーカから構成されており、
前記第１のマーカは１個であり、
前記第２のマーカはｎ−１個であり、
前記マーカ群は平面上に存在し、
前記撮影画像は、前記マーカ群が存在する平面から立体角２π［ｓｒ］内の任意の場所に位置した前記カメラによって撮影されており、
前記撮影画像において、前記第２のマーカ間を結んだ線分が交点を有する場合、前記交点上に前記第１のマーカが存在せず、
前記方法は、
前記撮影画像において、前記マーカ群を構成する各マーカについて、各マーカ領域を抽出する第１ステップと、
前記撮影画像において、前記各マーカ領域から前記各マーカの画素位置と前記各マーカに付与されたＩＤを識別する第２ステップと、
予め求められた情報と、前記撮影画像における前記第１のマーカの画素位置を始点として前記各第２のマーカの画素位置を終点とするベクトル間の外積値との比較結果に基づいて、前記撮影画像における各前記第２のマーカを個別に識別する第３ステップと、
前記第３ステップでの識別結果を用いて、前記マーカ群の三次元位置／姿勢を検出する第４ステップとを具備し、
前記予め求められた情報は、前記第１のマーカを始点とし各前記第２のマーカを終点とするベクトル間の外積値である。
【請求項２】
請求項１記載の方法であって、
前記第３ステップは、更に、
前記撮影画像において、前記第１のマーカの画素位置を始点として前記各第２のマーカの画素位置を終点とするベクトルを計算する第５ステップと、
前記第５ステップで計算されたベクトル間の外積値を算出する第６ステップと、
前記予め求められた情報と、前記第６ステップで算出された外積値との比較結果に基づいて、前記マーカ群中の各第２のマーカと前記撮影画像における各第２のマーカとの対応付けをする第７ステップとを具備する。
【請求項３】
請求項１記載の方法であって、
前記第３ステップにおいて、更に、前記予め求められた前記第１のマーカを始点とし各前記第２のマーカを終点とする少なくとも１個のベクトル間の内積値と、前記撮影画像における前記第１のマーカの画素位置を始点として前記各第２のマーカの画素位置を終点とする少なくとも１個のベクトル間の内積値との比較結果にも基づいて、前記撮影画像における各前記第２のマーカを個別に識別する。
【請求項４】
ｎ個（ｎ≧５の自然数）のマーカから構成されるマーカ群をカメラで撮影した撮影画像から、前記マーカ群の三次元位置・姿勢を検出する方法であって、
前記マーカ群は、１個の第１のＩＤが付与された第１のマーカと、ｎ―１個の前記第１のＩＤとは異なるＩＤが付与されたマーカから構成されており、
前記ｎ−１個のマーカには、互いに異なる［ｎ−１／２］種類のＩＤが付与されており、
前記ｎ−１個のマーカのうち、同一のＩＤが付与されたマーカを結ぶ線分どうしは交点を有し、
前記ｎ−１個のマーカのうち、２個のマーカには第２のＩＤが付与されており、前記第２のＩＤが付与された２個のマーカと前記第１のマーカを結ぶ２本の線分は、前記第２のＩＤとは異なる同一のＩＤが付与されたマーカどうしを結ぶｎ−３／２本の線分全てと、一方は交点を有し他方は交点を有さず、
前記マーカ群は平面上に存在し、
前記撮影画像は、前記マーカ群が存在する平面から立体角２π［ｓｒ］内の任意の場所に位置した前記カメラによって撮影されており、
前記撮影画像において、前記ｎ−１個のマーカのうち、同じＩＤが付与された任意の２個のマーカと前記任意の２個のマーカとは異なるＩＤが付与された２個のマーカは、互いに異なるＩＤが付与されたマーカの画素位置間を結ぶ２本の線分の距離の大小関係が不変であり、
前記方法は、
前記撮影画像において、前記マーカ群を構成する各マーカについて、各マーカ領域を抽出する第１ステップと、
前記撮影画像において、前記各マーカ領域から前記各マーカの画素位置と前記各マーカに付与されたＩＤを識別する第２ステップと、
前記撮影画像において、前記ｎ個のマーカのうち遮蔽されているマーカがあるかどうかを判定する第３ステップと、
前記第３ステップにおいて遮蔽されているマーカがあると判定された場合は、前記遮蔽されているマーカが前記第１のマーカかどうか判定する第４ステップとを具備し、
前記第４ステップにおいて前記遮蔽されているマーカが前記第１のマーカであると判定された場合は、第１の処理を実行して前記マーカ群の三次元位置／姿勢を検出し、
前記第４ステップにおいて前記遮蔽されているマーカが前記第１のマーカではないと判定された場合は、前記第１の処理とは異なる第２の処理を実行して前記マーカ群の三次元位置／姿勢を検出する。
【請求項５】
請求項４に記載の方法であって、
前記第１の処理は、
前記撮影画像において、同一のＩＤが付与されたマーカの画素位置間を結ぶ線分を全て検出する第５ステップと、
前記撮影画像において、前記第１のマーカの画素位置と前記遮蔽されているマーカと同一のＩＤが付与されたマーカの画素位置とを結ぶ線分を検出する第６ステップと、
予め求められた情報と、前記第５ステップで検出された線分と前記第６ステップで検出された線分の交点の有無を比較する第７ステップと、
前記第７ステップの結果により前記遮蔽されているマーカを識別する第８ステップとを具備し、
前記予め求められた情報は、前記同一のＩＤが付与されたマーカ間を結ぶ［ｎ−１／２］本の線分Ｘと前記第１のマーカと前記第１のマーカ以外の全てのマーカを結ぶｎ−１本の線分Ｙについて、各前記線分Ｘと各前記線分Ｙとの全組み合わせにおける交点の有無の情報である。
【請求項６】
請求項４に記載の方法であって、
前記第２の処理は、
予め求められた情報であって、前記同じＩＤが付与された任意の２個のマーカを始点とし前記任意の２個のマーカとは異なるＩＤが付与された２個のマーカを終点とする４本のベクトルの情報と、前記撮影画像において異なるＩＤが付与されたマーカの画素位置間を結ぶベクトルを比較して、前記同じＩＤが付与された任意の２個のマーカの画素位置を始点とし前記任意の２個のマーカとは異なるＩＤが付与された２個のマーカの画素位置を終点とする４本のベクトルを算出する第９ステップと、
前記第９ステップで算出された４本のベクトル間の外積値を計算し、前記外積値から２本のベクトルを抽出する第１０ステップと、
予め求められた情報であって、前記距離の大小関係が不変である前記同じＩＤが付与された任意の２個のマーカを始点とし前記任意の２個ｎマーカとは異なるＩＤが付与された２個のマーカを終点とする２本のベクトルの大小関係と、前記第１０ステップにおいて抽出された２本のベクトルの距離の大小関係を比較して、前記予め求められた情報における２本のベクトルと、前記第１０ステップにおいて抽出された２本のベクトルの対応付けをする第１１ステップと、
前記第１１ステップの結果に基づいて、前記第１０ステップにおいて抽出された２本のベクトルの始点および終点となるマーカを個別に識別する第１２ステップとを具備する。
【請求項７】
請求項１に記載の方法をコンピュータに実行させるプログラム。
【請求項８】
請求項４に記載の方法をコンピュータに実行させるプログラム。
【請求項９】
ｎ個（ｎ≧４の自然数）のマーカから構成されるマーカ群をカメラで撮影した撮影画像から、前記マーカ群の三次元位置／姿勢を検出する画像処理装置であって、
前記マーカ群は、第１のＩＤが付与された第１のマーカと、前記第１のＩＤとは異なる第２のＩＤが付与された第２のマーカから構成されており、
前記第１のマーカは１個であり、
前記第２のマーカはｎ−１個であり、
前記マーカ群は平面上に存在し、
前記撮影画像は、前記マーカ群が存在する平面から立体角２π［ｓｒ］内の任意の場所に位置した前記カメラによって撮影されており、
前記撮影画像において、前記第２のマーカ間を結んだ線分が交点を有する場合、前記交点上に前記第１のマーカが存在せず、
前記画像処理装置は、
前記撮影画像において、前記マーカ群を構成する各マーカについて、各マーカ領域を抽出するマーカ抽出部と、
前記撮影画像において、前記各マーカ領域から前記各マーカの画素位置と前記各マーカに付与されたＩＤを識別するマーカ画素位置／ＩＤ検出部と、
予め求められた情報を格納するメモリと、
前記予め求められた情報と、前記撮影画像における前記第１のマーカの画素位置を始点として前記各第２のマーカの画素位置を終点とするベクトル間の外積値との比較結果に基づいて、前記撮影画像における各前記第２のマーカを個別に識別する、マーカ識別部と、
前記第３ステップでの識別結果を用いて、前記マーカ群の三次元位置／姿勢を検出するマーカ三次元位置／姿勢検出部を具備し、
前記予め求められた情報は、前記第１のマーカを始点とし各前記第２のマーカを終点とするベクトル間の外積値である。
【請求項１０】
ｎ個（ｎ≧５の自然数）のマーカから構成されるマーカ群をカメラで撮影した撮影画像から、前記マーカ群の三次元位置・姿勢を検出する画像処理装置であって、
前記マーカ群は、１個の第１のＩＤが付与された第１のマーカと、ｎ―１個の前記第１のＩＤとは異なるＩＤが付与されたマーカから構成されており、
前記ｎ−１個のマーカには、互いに異なる［ｎ−１／２］種類のＩＤが付与されており、
前記ｎ−１個のマーカのうち、同一のＩＤが付与されたマーカを結ぶ線分どうしは交点を有し、
前記ｎ−１個のマーカのうち、２個のマーカには第２のＩＤが付与されており、前記第２のＩＤが付与された２個のマーカと前記第１のマーカを結ぶ２本の線分は、前記第２のＩＤとは異なる同一のＩＤが付与されたマーカどうしを結ぶｎ−３／２本の線分全てと、一方は交点を有し他方は交点を有さず、
前記マーカ群は平面上に存在し、
前記撮影画像は、前記マーカ群が存在する平面から立体角２π［ｓｒ］内の任意の場所に位置した前記カメラによって撮影されており、
前記撮影画像において、前記ｎ−１個のマーカのうち、同じＩＤが付与された任意の２個のマーカと前記任意の２個のマーカとは異なるＩＤが付与された２個のマーカは、互いに異なるＩＤが付与されたマーカの画素位置間を結ぶ２本の線分の距離の大小関係が不変であり、
前記画像処理装置は、
前記第撮影画像において、前記マーカ群を構成する各マーカについて、各マーカ領域を抽出するマーカ抽出部と、
前記撮影画像において、前記各マーカ領域から前記各マーカの画素位置と前記各マーカに付与されたＩＤを識別するマーカ画素位置／ＩＤ検出部と、
前記撮影画像において、前記ｎ個のマーカのうち遮蔽されているマーカがあるかどうかを判定し、遮蔽されているマーカがあると判定された場合は、前記遮蔽されているマーカが前記第１のマーカかどうか判定するマーカ識別部と、
前記遮蔽されているマーカが前記第１のマーカであると判定された場合は、第１の処理を実行して前記マーカ群の三次元位置／姿勢を検出し、前記遮蔽されているマーカが前記第１のマーカではないと判定された場合は、前記第１の処理とは異なる第２の処理を実行して前記マーカ群の三次元位置／姿勢を検出するマーカ三次元位置／姿勢検出部を具備する。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、観察対象に取り付けた複数のマーカをカメラによって撮影し、観察対象の三次元位置／姿勢を検出する際の、各マーカを識別する方法に関するものである。
【背景技術】
【０００２】
物体・人体等の観察対象の動作を認識する際に、観察対象に取り付けた複数マーカをカメラで撮影し、撮影画像から観察対象の三次元位置／姿勢を検出する方法がある。
【０００３】
特許文献１は、観察対象に自発光するマーカを取り付け、自発光するマーカの点滅間隔を能動的に制御して、点滅パターンから各マーカに付与されたＩＤを識別して三次元位置／姿勢を検出する方法を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−３５５１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術の構成では、各マーカには各ＩＤを付与するため、一つのマーカに対して必ず一つの自発光パターンを割り当てる必要がある。マーカの自発光にはＬＥＤ回路が用いられるが、マーカ数の増加に伴って必要なＬＥＤ回路も増加することになり、回路面積が増大し回路制御が煩雑になる。
【０００６】
更に、照明環境によっては自発光するマーカが使えない場合がある。
【０００７】
また、マーカが点滅するため、シームレスにマーカの三次元位置／姿勢の検出ができない。
【０００８】
本発明の目的は、自発光するマーカを使わずに、マーカの数よりも付与するＩＤを少ない状況においても、各マーカを識別して観察対象の三次元位置／姿勢を検出する方法を提供することである。
【課題を解決するための手段】
【０００９】
本発明は、ｎ個（ｎ≧４の自然数）のマーカから構成されるマーカ群をカメラで撮影した撮影画像から、前記マーカ群の三次元位置／姿勢を検出する方法であって、
前記マーカ群は、第１のＩＤが付与された第１のマーカと、前記第１のＩＤとは異なる第２のＩＤが付与された第２のマーカから構成されており、
前記第１のマーカは１個であり、
前記第２のマーカはｎ−１個であり、
前記マーカ群は平面上に存在し、
前記撮影画像は、前記マーカ群が存在する平面から立体角２π［ｓｒ］内の任意の場所に位置した前記カメラによって撮影されており、
前記撮影画像において、前記第２のマーカ間を結んだ線分が交点を有する場合、前記交点上に前記第１のマーカが存在せず、
前記方法は、
前記撮影画像において、前記マーカ群を構成する各マーカについて、各マーカ領域を抽出する第１ステップと、
前記撮影画像において、前記各マーカ領域から前記各マーカの画素位置と前記各マーカに付与されたＩＤを識別する第２ステップと、
予め求められた情報と、前記撮影画像における前記第１のマーカの画素位置を始点として前記各第２のマーカの画素位置を終点とするベクトル間の外積値との比較結果に基づいて、前記撮影画像における各前記第２のマーカを個別に識別する第３ステップと、
前記第３ステップでの識別結果を用いて、前記マーカ群の三次元位置／姿勢を検出する第４ステップとを具備し、
前記予め求められた情報は、前記第１のマーカを始点とし各前記第２のマーカを終点とするベクトル間の外積値である。
【００１０】
本発明は、ｎ個（ｎ≧５の自然数）のマーカから構成されるマーカ群をカメラで撮影した撮影画像から、前記マーカ群の三次元位置／姿勢を検出する方法であって、
前記マーカ群は、１個の第１のＩＤが付与された第１のマーカと、ｎ―１個の前記第１のＩＤとは異なるＩＤが付与されたマーカから構成されており、
前記ｎ−１個のマーカには、互いに異なる［ｎ−１／２］種類のＩＤが付与されており、
前記ｎ−１個のマーカのうち、同一のＩＤが付与されたマーカを結ぶ線分どうしは交点を有し、
前記ｎ−１個のマーカのうち、２個のマーカには第２のＩＤが付与されており、前記第２のＩＤが付与された２個のマーカと前記第１のマーカを結ぶ２本の線分は、前記第２のＩＤとは異なる同一のＩＤが付与されたマーカどうしを結ぶｎ−３／２本の線分全てと、一方は交点を有し他方は交点を有さず、
前記マーカ群は平面上に存在し、
前記撮影画像は、前記マーカ群が存在する平面から立体角２π［ｓｒ］内の任意の場所に位置した前記カメラによって撮影されており、
前記撮影画像において、前記ｎ−１個のマーカのうち、同じＩＤが付与された任意の２個のマーカと前記任意の２個のマーカとは異なるＩＤが付与された２個のマーカは、互いに異なるＩＤが付与されたマーカの画素位置間を結ぶ２本の線分の距離の大小関係が不変であり、
前記方法は、
前記第撮影画像において、前記マーカ群を構成する各マーカについて、各マーカ領域を抽出する第１ステップと、
前記撮影画像において、前記各マーカ領域から前記各マーカの画素位置と前記各マーカに付与されたＩＤを識別する第２ステップと、
前記撮影画像において、前記ｎ個のマーカのうち遮蔽されているマーカがあるかどうかを判定する第３ステップと、
前記第３ステップにおいて遮蔽されているマーカがあると判定された場合は、前記遮蔽されているマーカが前記第１のマーカかどうか判定する第４ステップとを具備し、
前記第４ステップにおいて前記遮蔽されているマーカが前記第１のマーカであると判定された場合は、第１の処理を実行して前記マーカ群の三次元位置／姿勢を検出し、
前記第４ステップにおいて前記遮蔽されているマーカが前記第１のマーカではないと判定された場合は、前記第１の処理とは異なる第２の処理を実行して前記マーカ群の三次元位置／姿勢を検出する。
【発明の効果】
【００１１】
三次元位置／姿勢検出用のマーカに付与するＩＤの数を減らすことができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、本発明の概略構成を示す。
【図２】図２は、画像処理装置３での概略処理フローを示す。
【図３】図３は、マーカ群３０のマーカ配置とＩＤ付与状態の一例を示す。
【図４】図４は、実施の形態１での画像処理装置３の概略構成を示す。
【図５】図５は、マーカ群３０の撮影画像を示す。
【図６】図６は、実施の形態１でのステップＳ２３における詳細処理フローを示す。
【図７】図７は、撮影画像５０を示す。
【図８】図８は、マーカ群６０のマーカ配置とＩＤ付与状態の一例を示す。
【図９】図９は、実施の形態２でのステップＳ２３における概要処理フローを示す。
【図１０】図１０は、撮影画像８０を示す。
【図１１】図１１は、実施の形態２でのステップＳ２３６における詳細処理フローを示す。
【図１２】図１２は、マーカ群７０の撮影画像を示す。
【図１３】図１３は、マーカ群７０のマーカ配置とＩＤ付与状態の一例を示す。
【図１４】図１４は、ベクトル７ａとベクトル７ｂの撮影画像上の距離を示す。
【図１５】図１５は、マーカ群７０に対する２π空間を示す。
【図１６】図１６は、実施の形態２でのステップＳ２３７における詳細処理フローを示す。
【図１７】図１７は、マーカ数が５つの場合の条件（Ｃ４）を満たすマーカ配置例を示す。
【図１８】図１８は、マーカ数が５つの場合の条件（Ｃ５）を満たすマーカ配置例を示す。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００１４】
（実施の形態１）
図１は、実施の形態の概略構成を示す。図１において、１は物体・人体に取り付けたマーカ群、２はカメラ、３は画像処理部である。
【００１５】
マーカ群１は複数のマーカから構成される。詳細には、マーカ群１は、基準となるＩＤ（以下、唯一のＩＤという）が付与されたマーカ１ａと、唯一のＩＤとは異なるＩＤが付与された複数のマーカ１ｂ、１ｃ、・・・から構成される。ここで、１ａ以外のマーカに付与されるＩＤは、互いに同一のもの（以下、同一ＩＤという）でも良いし、互いに異なるＩＤを付与してもよい。互いに同一のＩＤを付与することで、マーカ群１全体に付与するＩＤの数を少なくすることができる。
【００１６】
カメラ２はマーカ群１を撮影し、撮影画像を画像処理装置３に送信する。画像処理装置３は、受信した撮影画像から、マーカ群１の三次元位置／姿勢を検出する。
【００１７】
図２は、画像処理装置３における処理フローを示す。
【００１８】
［ステップＳ２１］
最初に、受信した撮影画像上の各マーカ領域を抽出する。
【００１９】
［ステップＳ２２］
Ｓ２１で抽出されたマーカ領域から、各マーカの撮影画像上の画素位置と付与されたＩＤを検出する。
【００２０】
［ステップＳ２３］
Ｓ２２で検出されたマーカの画素位置とＩＤから、同一ＩＤが付与されているとして検出されたマーカがある場合は、それらのマーカをさらに個別のマーカとして識別する。
【００２１】
［ステップＳ２４］
Ｓ２３のマーカ識別結果を基に、各マーカの三次元位置／姿勢を検出する。マーカの位置・姿勢を検出する方法の一例としては特許文献２に記載の方法が挙げられる。これは少なくとも４つのマーカをもつマーカ群の三次元位置／姿勢を計算する方法である。
【特許文献２】米国特許第５３８８０５９号明細書
【００２２】
（実施の形態１）
実施の形態１を説明する。
【００２３】
実施の形態１においては、マーカの遮蔽がないケースを想定している。
【００２４】
図３は、実施の形態１におけるマーカ配置とＩＤ付与状態の一例を示す。図３は、マーカが４つの場合を想定しているが、４つに限らない。
【００２５】
図３において、３０はマーカ群、３１は唯一のＩＤが付与されたマーカ、３２、３３、３４は互いに同一のＩＤが付与されたマーカである。
【００２６】
［事前準備］
先述の図２に示したフローに沿って、各マーカの三次元位置／姿勢検出するためには、マーカへのＩＤ付与以外にも事前準備が必要である。
【００２７】
まず、各マーカの個別識別のために、各マーカに番号を付与しておく。番号付与は任意で構わないが、図３では唯一のＩＤが付与されたマーカを３１とし、そこから反時計回りに３２→３３→３４と順に番号を付与している。
【００２８】
次に、マーカ３１を始点としマーカ３２、３３、３４それぞれを終点とするベクトルを求め、これら全てのベクトル間の外積、より詳細には外積の値を算出しておく。これらの値は、同一のＩＤが付与された３２、３３、３４の相対位置を特定するために用いられる。
【００２９】
図３において、マーカ３１を始点としマーカ３２を終点とするベクトルをベクトル３５、マーカ３１を始点としマーカ３３を終点とするベクトルをベクトル３６、マーカ３１を始点としマーカ３４を終点とするベクトルをベクトル３７とする。例えば、ベクトル３５からベクトル３６の順番で算出した外積値（ベクトル３５×ベクトル３６）は正となる。これは、マーカ３２とマーカ３３の相対位置が、マーカ３１を始点として右ねじの進む方向、即ち反時計回りに３１→３２→３３の順に存在することを示す。
【００３０】
なお、マーカどうしの相対位置によっては、ベクトル間の外積が０となる場合がある。この場合、ベクトルの始点となるマーカ３１と終点となる２つのマーカが一直線上に存在することを示している。この場合は、ベクトル間の内積値を併せて用いることで、ベクトル終点となる２つのマーカ相対位置を区別することができる。即ち、内積値が正の場合は両ベクトルのなす角が０°であり、負の場合は両ベクトルのなす角が１８０°である。
【００３１】
［構成］
次に、実施の形態１における画像処理装置３の構成を説明する。図４は、実施の形態１における画像処理装置３の概略構成を示す。画像処理装置３は、マーカ抽出部３０１、マーカ画素位置・ＩＤ検出部、マーカ識別部３０３、マーカ三次元位置／姿勢検出部３０４、メモリ３０５を備える。
【００３２】
マーカ抽出部３０１は上記ステップＳ２１に対応し、マーカ画素位置／ＩＤ検出部３０２は上記ステップＳ２２に対応し、マーカ識別部３０３は上記ステップＳ２３に対応し、マーカ三次元位置／姿勢検出部３０４は上記ステップＳ２４に対応する。
【００３３】
メモリ３０５は、マーカ群３０に対して事前準備した、各マーカに付与した番号、各マーカに付与したＩＤ、マーカ３１を始点としてその他の各マーカを終点とするベクトルどうしの外積の正負符号値（必要に応じて内積値も追加）を格納しておく。
【００３４】
［処理］
次に、図４の画像処理装置３におけるマーカ三次元位置・姿勢検出フローを説明する。フローの概要は、図２を用いて先述したとおりであるが、ここでは特にステップＳ２３について詳細に説明する。
【００３５】
図５は、図３のマーカ群３０をカメラ２で撮影した撮影画像の一例である。４０は撮影画像、４１〜４４は、各マーカである。
【００３６】
まず、撮影画像４０上の各マーカ領域の画素位置が抽出される。これらの領域は、輪郭抽出などの画像処理によって抽出する（ステップＳ２１）。
【００３７】
次に、ステップＳ２１で抽出された各マーカ領域から、撮影画像４０上の各マーカに対する画素位置とＩＤを検出する。具体的には、各マーカ領域の重心位置などを各マーカの画素位置とする。なお、チェスボードのように抽出した領域の交点位置を、画像処理によって画素位置として検出しても良い。
【００３８】
各マーカのＩＤは、互いに異なる色のマーカを用いることで、撮影画像４０上で検出することができる。その他にも、互いに異なる形状のマーカを用いたり、互いに異なる発光波長のマーカ（例えば、赤外線と可視光線）を用いることで、各マーカＩＤを検出するようにしてもよい（ステップＳ２２）。
【００３９】
次に、ステップＳ２２において検出された各マーカＩＤの中に、同一のものが複数含まれていた場合に、各マーカを個別に識別する（ステップＳ２３）。詳細は後ほど説明する。
【００４０】
最後に、ステップＳ２３での各マーカの識別結果に基づいて、各マーカの三次元位置／姿勢を検出する。
【００４１】
図６は、ステップＳ２３での処理をより詳細に示す。図４の撮影画像４０については、ステップＳ２２において、マーカ４１には唯一のＩＤが、４２、４３、４４には同一のＩＤが付与されていると検出されている。
【００４２】
［ステップＳ２３１］
まず、撮影画像４０上において、マーカ４１の画素位置を始点としてマーカ４２、４３、４４それぞれの画素位置を終点とするベクトルを求める。図４では、マーカ４１の画素位置を始点としてマーカ４２の画素位置を終点とするベクトルがベクトル４５、マーカ４１の画素位置を始点としてマーカ４３の画素位置を終点とするベクトルがベクトル４６、マーカ４１の画素位置を始点としてマーカ４４の画素位置を終点とするベクトルがベクトル４７である。
【００４３】
［ステップＳ２３２］
次に、ステップＳ２３１で求めた各ベクトルどうしの外積値を算出する。なお、外積値が０になる時は、そのベクトルどうしの内積値も算出する。
【００４４】
［ステップＳ２３３］
次に、ステップＳ２３２で算出した各ベクトルどうしの外積値の符号と、メモリ３０５に格納されたマーカ群３０における各ベクトルどうしの外積値の符号を比較する。そして、図３中の実マーカと図５中の撮影画像上マーカとの対応付けをする。以下、具体的に説明する。
【００４５】
マーカ群３０でのベクトル３５からベクトル３６への外積値とベクトル３５からベクトル３７への外積値は共に正となる。一方で、撮影画像４０上のベクトル４７からベクトル４６の外積値とベクトル４７からベクトル４５への外積値も共に正となる。従って、ベクトル３５がベクトル４７に対応付けられる。同様に、ベクトル３６がベクトル４６に対応し、ベクトル３５がベクトル４５に対応付けられる。
【００４６】
このように、実ベクトルと撮像画像上ベクトルとが対応付けられることにより、実マーカと撮像画像上マーカも対応付けられ、各マーカが識別される。図３（実マーカ）と図５（撮像画像マーカ）においては、マーカ３１とマーカ４１、マーカ３２とマーカ４４、マーカ３３とマーカ４４、マーカ３４とマーカ４２が対応付けられ、各マーカを個別に識別することができる。
【００４７】
ステップＳ２３２において内積値も求めている場合は、メモリ３０５に格納された内積値と比較することで、ベクトルどうしのなす角がわかり、マーカを個別に識別することができる。
【００４８】
なお、マーカ群とカメラの配置関係や、マーカどうしの相対位置によっては、これまで説明した方法によって、各マーカを個別に識別できない場合がある。
【００４９】
（Ｃ１）マーカ群とカメラの位置関係によっては、撮影画像４０上のマーカ間ベクトルの外積値の符号が反転する場合がある。このような場合は、マーカの個別識別はできない。例えば、図３の紙面手前側をマーカ群３０の表側として、図５の撮影画像４０にマーカ群３０の裏側が写っている場合は正しく各マーカを個別に識別することはできない。
【００５０】
（Ｃ２）マーカ群３０において各マーカの相対位置が非平面上にある場合は、カメラ２に対してマーカ群３０が表側を向けている場合であっても、実ベクトル間の外積値と撮像画像ベクトル間の外積値の符号が一致しない場合がある。このようなベクトル外積値が算出されるマーカに対しては、互いに別のＩＤを付与する必要がある。
【００５１】
（Ｃ３）上記（Ｃ１）、（Ｃ２）に該当しない場合であっても、各マーカが個別に識別できない場合がある。マーカ群を構成するマーカ数、各マーカの相対位置関係によって、図７に示す撮影画像５０が撮影される場合である。具体的には、マーカ群を構成するマーカ数が奇数であって、同一ＩＤが付与されたマーカどうしを結ぶ線分５２の交点上に、唯一のＩＤが付与されたマーカ５１が位置する画像が撮影される場合は、各マーカを個別に識別することができない。従って、図７に示すような撮影画像５０が写ることがないように、各マーカを配置する必要がある。
【００５２】
（実施の形態２）
実施の形態２を説明する。
【００５３】
実施の形態２は、マーカ群３０のうち少なくとも１つのマーカが遮蔽された状態で撮影され、且つ遮蔽されたマーカを除いた少なくとも４つのマーカが撮影画像に写る場合を想定している。
【００５４】
このような想定下で、後ほど説明する各マーカの三次元位置／姿勢検出方法を適用するために、次のように各マーカへＩＤ付与する。
【００５５】
基準となるマーカに唯一のＩＤを付与し、それ以外のマーカには、一つのＩＤに対して最大２つのマーカを対応付ける。即ち、同一のＩＤが付与されたマーカは、最大２つである。この場合、マーカ群３０を構成するマーカ数をｎ個とすると、これらのマーカを識別するために必要なＩＤの数Ｎは［数１］のように表される。
【００５６】
【数１】
2014228368.tif 000003
【００５７】
図８と図１３は、実施の形態２におけるマーカ配置とＩＤ付与状態の一例を示す。図８は、マーカが５つの場合を想定しているが、上記実施の形態２の想定内においては、５つに限らない。
【００５８】
図８において、６０及び７０はマーカ群、６１及び７１は唯一のＩＤが付与されたマーカ、６２〜６５及び７２〜７５はそれ以外のマーカである。マーカ６２とマーカ６４、マーカ７２と７４には同一のＩＤが付与されている。また、マーカ６３とマーカ６５には、マーカ６２とマーカ６４に付与したＩＤとは異なる同一のＩＤが付与されており、マーカ７３と７５には、マーカ７２とマーカ７４に付与したＩＤとは異なる同一のＩＤが付与されている。
【００５９】
実施の形態２においても先述の図２に沿って、各マーカの三次元位置／姿勢が検出される。ステップＳ２３以外は、実施の形態１と同様の処理がされるので、説明を省略する。また、実施の形態２における画像処理装置３の構成も、実施の形態１と同様のため、説明を省略する。
【００６０】
実施の形態２において各マーカを個別に識別する方法は、撮影画像に写るマーカによって異なり、次の２つに場合分けされる。
【００６１】
（１）撮影画像に、唯一のＩＤが付与されたマーカが写っている場合。
【００６２】
（２）撮影画像に、唯一のＩＤが付与されたマーカが写っていない場合。
【００６３】
以降、（１）の場合の処理を識別処理Ａ、（２）の場合の処理を識別処理Ｂとして、実施の形態２におけるステップ２３での処理を詳細に説明する。
【００６４】
図９は、ステップＳ２３での概要処理フローを示したものである。ステップＳ２３４では、撮影画像に全てのマーカが写っているかどうか判定し、写っている場合は前述のステップＳ２３１以降の処理をし、そうで無い場合はステップＳ２３５に進む。
【００６５】
ステップＳ２３５では、撮影画像に唯一のＩＤが付与されたマーカが写っているか判定し、写っている場合はステップＳ２３６に進み、写っていない場合はステップＳ２３７に進む。
【００６６】
まず、ステップＳ２３６に進んで識別処理Ａを実行する場合を説明する。この場合の実マーカ群は図８として説明する。
【００６７】
図１０は、唯一のＩＤが付与されたマーカが写っている撮影画像を示す。８０は撮影画像、８１は唯一のＩＤが付与されたマーカ、８２、８３は同一のＩＤが付与されたマーカ、８４は８２、８３とは異なるＩＤが付与されたマーカである。ここでは、８４と同一のＩＤが付与されたマーカが遮蔽されて撮影画像８０には写っていない。なお、同一のＩＤが付与されたマーカ８２とマーカ８３の識別処理は、実施の形態１と同様であるため、ここでは説明を省略し、遮蔽されているマーカの識別処理について詳細に説明する。
【００６８】
遮蔽されているマーカは、撮影画像８０上において、マーカどうしを結ぶ線分の交点の有無によって、識別することができる。遮蔽されているマーカの識別処理フローを図１１に示す。以下、各ステップを詳細に説明する。
【００６９】
［ステップＳ２３６１］
撮影画像８０上で同一のＩＤが付与されているマーカの画素位置間を結ぶ線分を検出する。図１０においては、線分８５を検出する。
【００７０】
［ステップＳ２３６２］
撮影画像８０上で、唯一のＩＤを持つマーカと遮蔽されているマーカと同一のＩＤが付与されているマーカの画素位置間を結ぶ線分を検出する。図１０においては、線分８６を検出する。
【００７１】
［ステップＳ２３６３］
ステップＳ２３５１とＳ２３５２において検出された二つの線分の、交点の有無を判定する。図１０においては、線分８５と線分８６は交点８７を有するので、交点有りと判定される。
【００７２】
［ステップＳ２３６４］
マーカ群６０において、遮蔽されているマーカと遮蔽されているマーカを識別をする。図６において、マーカ６３とマーカ６５を結ぶ線分６６と交点を持つのは、マーカ６１とマーカ６４を結ぶ線分６７である。一方、マーカ６１とマーカ６２とを結ぶ線分６８は交点を持たない。
【００７３】
ステップＳ２３５３では、撮影画像８０における線分は交点有りと判定されているため、線分６８の端点であり唯一のＩＤが付与されていないマーカである６２が、遮蔽されているマーカであると識別できる。その結果、マーカ６２と同一のＩＤを付与されているマーカは６４であると識別できる。
【００７４】
なお、撮影画像８０の線分どうしの交点が無いと判定された場合は（図示せず）、図８中のマーカ６４が遮蔽されているマーカであると識別できる。
【００７５】
次に、Ｓ２３７に進んで識別処理Ｂを実行する場合を説明する。この場合の実マーカ群は図１３として説明する。
【００７６】
図１２は、唯一のＩＤが付与されたマーカが写っていない撮影画像を示す。１００は撮影画像、１０１、１０２は同一のＩＤが付与されたマーカ、１０３、１０４は１０１、１０２とは異なる同一のＩＤが付与されたマーカである。
【００７７】
同一のＩＤが付与されたマーカどうしは、実マーカ群中と撮影画像上の互いに異なるＩＤが付与されたマーカを始点・終点とする２つのベクトルの距離を比較することで、識別される。互いに異なるＩＤが付与されたマーカを始点・終点とする２つのベクトルの検出方法については、後ほど詳細に説明する。
【００７８】
［事前準備］
識別処理Ｂを実行する前に、いくつか事前準備が必要である。この処理は、実施の形態１で説明した事前準備処理の中で行えばよい。
【００７９】
図１４は、図１３におけるマーカ７５を始点としマーカ７２を終点とするベクトル７ａと、マーカ７３を始点としマーカ７４を終点とするベクトル７ｂをあらゆる姿勢に変化させた時に、各ベクトルを撮影画像に射影させて各ベクトル間の距離の推移を計測した結果である。射影の仕方としては、図１５に示すようにマーカ群７０に対する２π空間（半空間）１５１の表面にカメラ１５２を置いて撮影することに相当する。
【００８０】
図１４の縦軸は、各ベクトル間の距離である。１４１がベクトル７ａ撮影画像上の距離に、１４２がベクトル７ｂの撮影画像上の距離に対応する。図１４の横軸は、２π空間のカメラ位置を変化させることに対応する。
【００８１】
ここで、撮影画像上での距離１４１と１４２の大小関係が反転することがないことから、識別処理Ｂにおいては、撮影画像上のマーカ７２と７５に対応するマーカ間のベクトル、及びマーカ７３と７４に対応するマーカ間のベクトルの距離を検出し、これらの距離を比較することにより撮影画像上のマーカ（図１２の場合では、１０１と１０２、１０３と１０４）を識別する。
【００８２】
なお、図１３において、マーカ７５を始点としマーカ７５とは別のＩＤが付与されたマーカ７２と７５を終点とする二つのベクトルの外積値が正になる時のかけられる側のベクトル、即ちベクトル７ａが比較対象のベクトルとなる。同様に、マーカ７３を始点としマーカ７３とは別のＩＤが付与されたマーカ７２と７４を終点とする二つのベクトルの外積値が正になる時のかけられる側のベクトル、即ちベクトル７ｂが比較対象のベクトルとなる。
【００８３】
また、ここではマーカ７３と７５を起点とするベクトルを比較対象としたが、マーカ７２とマーカ７４を起点とするベクトルの距離の大小関係が変わらなければ、これらのベクトルを比較対象としてもよい。
【００８４】
また、これらの事前準備した情報は、メモリ３０５に格納しておく。
【００８５】
識別処理Ｂの処理フローを図１６に示す。
【００８６】
［ステップＳ２３７１］
まず撮影画像１００で、互いに異なるＩＤが付与されたマーカの画素位置間のベクトルを求める。前述したように、マーカ群７０中では、比較対象はマーカ７３とマーカ７５を始点とするベクトルである。従って、撮影画像１００上では、マーカ７３とマーカ７５と同一のＩＤが付与されているマーカ１０１の画素位置とマーカ１０２の画素位置を始点とし、それとは異なるＩＤが付与されたマーカ１０３の画素位置とマーカ１０４の画素位置を終点とするベクトルが比較対象候補のベクトルとなる。即ち、マーカ１０２の画素位置を始点としマーカ１０３の画素位置を終点とするベクトル、マーカ１０２の画素位置を始点としマーカ１０４の画素位置を終点とするベクトル、マーカ１０１の画素位置を始点としマーカ１０３の画素位置を終点とするベクトル、マーカ１０１の画素位置を始点としマーカ１０４の画素位置を終点とするベクトルを求める。
【００８７】
［ステップＳ２３７２］
次に、ステップＳ２３６１で求めたベクトルどうしの外積を計算し、撮影画像上のベクトル７ａとベクトル７ｂの比較対象となる候補ベクトル２つを検出する。ここで、マーカ１０２の画素位置を始点とするベクトルどうしの外積値、マーカ１０４の画素位置を始点とするベクトルどうしの外積値を計算して、外積値が正になる時のかけられる側のベクトルを比較対象の候補ベクトルとして検出する。図１２上では、ベクトル１０５（マーカ１０１の画素位置を始点としマーカ１０４の画素位置を終点とするベクトル）、ベクトル１０６（マーカ１０２の画素位置を始点としマーカ１０３の画素位置を終点とするベクトル）を検出する。
【００８８】
［ステップＳ２３７３］
次に、ベクトル１０５とベクトル１０６の距離を比較する。実マーカ群上では、ベクトル７ａの距離がベクトル７ｂの距離より大きいので、距離が大きい方がベクトル７ａに対応し、小さいほうがベクトル７ｂに対応する。図１２の場合は、ベクトル１０５がベクトル７ａに対応し、ベクトル１０６がベクトル７ｂに対応する。
【００８９】
［ステップＳ２３７４］
最後に、個々のマーカを識別する。ベクトル１０５とベクトル７ａ、ベクトル１０６とベクトル７ｂの始点・終点を比較することにより、マーカ１０１がマーカ７５に、マーカ１０４がマーカ７２に、マーカ１０２がマーカ７３に、マーカ１０４がマーカ７４にそれぞれ対応することがわかる。
【００９０】
なお、これまで説明した方法によって各マーカを個別に識別するためには、各マーカ相対位置は以下の条件を満たす必要がある。
【００９１】
（Ｃ４）同一のＩＤが付与されたマーカ間を結ぶ線分どうしは、交点を有する配置であり、且つ唯一のＩＤが付与されたマーカと同一のＩＤが付与された２つのマーカを結ぶ２つの線分は、同一のＩＤが付与された２つのマーカとは異なる同一のＩＤが付与された２つのマーカを結ぶ線分と、一方は交点を有し、他方は交点を有さない配置であること。
【００９２】
（Ｃ５）唯一のＩＤが付与されたマーカを除いて、互いに異なるＩＤが付与されたマーカ間の２つのベクトルが、マーカが存在する平面に対する２π空間上の任意の位置から撮影された撮影画像上で、距離の大小関係が常に反転しない配置であること。
【００９３】
図１７は、マーカが５つの場合の上記（Ｃ４）の配置例を示す。先述の［数１］より、これらのマーカに付与すべきＩＤは３種類である。ここで、同一のＩＤが付与されたマーカどうしを結んだ線分は、線分１７１と線分１７２である。また唯一のＩＤが付与されたマーカと同一のＩＤが付与された２つのマーカを結ぶ２つの線分は、線分１７３と線分１７４、唯一のＩＤが付与されたマーカと同一のＩＤが付与された２つのマーカとは異なる同一のＩＤが付与された２つのマーカを結ぶ線分は、線分１７５と線分１７６である。
【００９４】
この時、線分１７１と線分１７２は交点を有する。また、線分１７３は線分１７２と交点を有するが、線分１７４と線分１７２と交点を有さない。また、線分１７５は線分１７１と交点を有するが、線分１７６は線分１７１と交点を有さない。
【００９５】
図１８は、マーカ数が５つの場合の上記（Ｃ５）の配置例を示す。この場合も、マーカに付与すべきＩＤは３種類である。ここで、唯一のＩＤが付与されたマーカを除いて、互いに異なるＩＤが付与された２つのマーカを結ぶ線分は、線分１８１と線分１８２である。このように線分の端点である２つのマーカ間の相対位置が、近い組み合わせと遠い組み合わせができるようにマーカを配置することを心がけると（Ｃ５）の条件を満たしやすい。但し、本当に（Ｃ５）の条件を満たしているかどうかは、実際にマーカが存在する平面に対する２π空間上から撮影した撮影画像を確認する必要がある。
【産業上の利用可能性】
【００９６】
本発明は、観察対象に取り付けたマーカ群をカメラで撮影し、撮影画像から観察対象の三次元位置／姿勢を検出する際に有用である。
【符号の説明】
【００９７】
１    マーカ群
２    カメラ
３    画像処理装置
３０１    マーカ抽出部
３０２    マーカ画素位置／ＩＤ検出部
３０３    マーカ識別部
３０４    マーカ三次元位置／姿勢検出部
３０５    メモリ
【図１】
2014228368.tif 000004
【図２】
2014228368.tif 000005
【図３】
2014228368.tif 000006
【図４】
2014228368.tif 000007
【図５】
2014228368.tif 000008
【図６】
2014228368.tif 000009
【図７】
2014228368.tif 000010
【図８】
2014228368.tif 000011
【図９】
2014228368.tif 000012
【図１０】
2014228368.tif 000013
【図１１】
2014228368.tif 000014
【図１２】
2014228368.tif 000015
【図１３】
2014228368.tif 000016
【図１５】
2014228368.tif 000017
【図１６】
2014228368.tif 000018
【図１７】
2014228368.tif 000019
【図１８】
2014228368.tif 000020
【図１４】
2014228368.tif 000021