(57)【特許請求の範囲】
【請求項１】
コンピュータに、
第一の色を有する複数の第一の領域と前記第一の色とは異なる第二の色を有する複数の第二の色領域とで形成される模様を有するマーカーを撮影した第一の画像上で、前記複数の第一の色領域と前記複数の第二の色領域とが交差する点のうち、前記マーカーの中心に最も近い第一の点の位置を取得し、
前記第一の画像上で、前記第一の点を始点とする前記第一の色領域と前記第二の色領域との境界線の位置を取得し、
前記第一の点の位置と前記境界線上に存在する第二の点の位置と前記第一の画像に含まれる複数の画素の各位置と該複数の画素の各画素値とを用いて、前記複数の画素を他の各位置に該各画素値で配置した第二の画像に変換し、
前記第二の画像上を走査し、前記第一の点以外で、前記複数の第一の色領域と前記複数の第二の色領域とが交差する交差点が存在する可能性を示す期待値をそれぞれ取得し、
取得した前記期待値のそれぞれに基づいて前記第二の画像上における前記交差点の位置を取得し、
前記第二の画像に含まれる前記複数の画素の前記他の各位置を、前記第一の画像における前記各位置へ逆変換し、
前記第一の画像における前記交差点の位置をそれぞれ取得し、
取得した前記第一の点の位置および前記交差点の位置を前記模様の特徴点の位置として決定する
処理を実行させることを特徴とする画像処理プログラム。 
【請求項２】
前記マーカー上の前記第一の色領域と前記第二の色領域との境界線は、前記第一の点で直交する複数の線分であり、前記第二の点は、該複数の線分上に各々存在する点であって、
前記第二の画像に変換する処理において、
前記第一の点と複数の前記第二の点の各々との距離に基づいて、前記第一の画像を前記第二の画像へ変換する処理の対象とする前記複数の画素を決定し、前記複数の線分のうちの第一の線分と、該第一の線分と隣り合う第二の線分とが、該第一の点で直交する前記第二の画像に、前記第一の画像を射影変換することを特徴とする請求項１に記載の画像処理プログラム。 
【請求項３】
前記交差点の位置を取得する処理は、前記第二の画像における前記第一の点に対応する第三の点と、該第二の画像における前記第二の点に対応する第四の点とを結ぶ線分の近傍に対して、前記交差点の形状に関連するフィルタを走査し、走査の結果得られるフィルタの応答値に基づいて前記第二の画像上における前記交差点の位置を取得することを特徴とする請求項１または２に記載の画像処理プログラム。 
【請求項４】
前記特徴点を用いて、前記マーカーを撮影したカメラの位置および姿勢を算出する処理をさらに実行させることを特徴とする請求項１乃至請求項３のいずれか一項に記載の画像処理プログラム。 
【請求項５】
複数の第一の色領域と前記第一の色領域とは異なる色を有する複数の第二の色領域とで形成される模様を有するマーカーを撮影した第一の画像上で、前記第一の色領域と前記第二の色領域とが交差する点のうち、前記マーカーの中心に最も近い中心点の位置を取得する中心点取得部と、
前記第一の画像上で、前記第一の色領域と前記第二の色領域との境界線の位置を取得する境界線取得部と、
前記中心点取得部により取得された中心点の位置と前記境界線取得部により取得された境界線の位置とを用いて、前記第一の画像を画像の歪みが補正された第二の画像に変換する変換部と、
前記第二の画像上を走査し、前記中心点以外で、前記第一の色領域と前記第二の色領域とが交差する点を含む領域である期待値をそれぞれ取得し、取得した各期待値に基づいて前記第二の画像上における前記交差する点の位置を取得する交差点取得部と、
前記第二の画像を画像の歪みが補正される前の前記第一の画像に逆変換することにより、前記中心点取得部により取得された中心点の位置と前記交差点取得部により取得された交差する点の位置に対応する前記第一の画像上の位置をそれぞれ取得し、取得した各位置に対応する各点を特徴点として決定する決定部と
を有することを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願の開示する技術は、画像処理プログラムおよび画像処理装置に関連する。
【背景技術】
【０００２】
例えば、カメラが搭載された車両やロボットなどに、カメラの取り付け位置や姿勢を確認し、カメラの取り付け位置や姿勢の設計上の値とのズレを校正する、いわゆるキャリブレーション処理が行われる。通常、このキャリブレーション処理は、カメラ撮影範囲内の既定の位置に設置したマーカーをカメラで撮影し、撮影された画像上におけるマーカーの位置、すなわち、画像上に現れるマーカーの特徴点の座標を利用することにより行われる。
【０００３】
上述したマーカーには、マーカーを撮影した画像から特徴点を抽出しやすい模様を有するものが用いられる。例えば、図１２は、マーカーの形状の一例を示す図である。図１２に示すような形状を有するマーカーＭ１から、マーカーが有する模様の中心、つまり、異なる色領域を各々形作る境界線の交点を特徴点として抽出する公知技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−８７７４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したキャリブレーション処理において、例えば、図１２に示すような一つのマーカーを撮影した画像から抽出される特徴点の数は一つとなるが、キャリブレーションを安定して行うためには複数の特徴点が必要となる。このため、上述したキャリブレーション処理では、カメラ撮影範囲内の既定の位置に複数のマーカーを設置し、複数のマーカーをカメラで撮影して、画像に映し出された各マーカーから特徴点をそれぞれ抽出することで対処していた。しかしながら、工場の敷地面積が狭いなど、作業環境によっては複数のマーカーを設置する場所を確保できない場合も考えられる。このような場合には、キャリブレーションを安定して行うことができない。
【０００６】
開示の技術は、上記に鑑みてなされたものであって、一つのマーカーを撮影した画像から複数の特徴点を安定して抽出することが可能な画像処理プログラムおよび画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本願の開示する技術は、一つの態様において、コンピュータに、次の各処理を実行させる。すなわち、コンピュータに、第一の色を有する複数の第一の領域と前記第一の色とは異なる第二の色を有する複数の第二の色領域とで形成される模様を有するマーカーを撮影する処理を実行させる。そして、コンピュータに、撮影した第一の画像上で、前記複数の第一の色領域と前記複数の第二の色領域とが交差する第一の点の位置を取得する処理を実行させる。また、コンピュータに、前記第一の画像上で、前記第一の点を始点とする前記第一の色領域と前記第二の色領域との境界線の位置を取得する処理を実行させる。また、コンピュータに、前記第一の点の位置と前記境界線上に存在する第二の点の位置と前記第一の画像に含まれる複数の画素の各位置と該複数の画素の各画素値とを用いて、前記複数の画素を他の各位置に該各画素値で配置した第二の画像に変換する処理を実行させる。また、コンピュータに、前記第二の画像上を走査し、前記第一の点以外で、前記複数の第一の色領域と前記複数の第二の色領域とが交差する交差点が存在する可能性を示す期待値をそれぞれ取得する処理を実行させる。また、コンピュータに、取得した前記期待値のそれぞれに基づいて前記第二の画像上における前記交差点の位置を取得する処理を実行させる。また、コンピュータに、前記第二の画像に含まれる前記複数の画素の前記他の各位置を、前記第一の画像における前記各位置へ逆変換する処理を実行させる。また、コンピュータに、前記第一の画像における前記第一の点の位置および前記交差点の位置をそれぞれ取得する処理を実行させる。また、コンピュータに、取得した前記第一の点の位置および前記交差点の位置を前記模様の特徴点の位置として決定する処理を実行させる。
【発明の効果】
【０００８】
本願の開示する技術の一つの態様によれば、１つのマーカーを撮影した画像から複数の特徴点を安定して抽出できる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例１に係る画像処理装置の構成を示す機能ブロック図である。
【図２】図２は、実施例１に係る画像処理装置の説明に用いる図である。
【図３】図３は、実施例１に係る抽出部の説明に用いる図である。
【図４】図４は、実施例１に係る抽出部の説明に用いる図である。
【図５】図５は、実施例１に係る変換部の説明に用いる図である。
【図６】図６は、実施例１に係るピーク抽出部の説明に用いる図である。
【図７】図７は、実施例１に係るピーク抽出部の説明に用いる図である。
【図８】図８は、実施例１に係る画像処理装置による処理の全体的な流れを示す図である。
【図９】図９は、実施例１に係る正規化処理の流れを示す図である。
【図１０】図１０は、実施例１に係るピーク抽出処理の流れを示す図である。
【図１１】図１１は、画像処理プログラムを実行する電子機器の一例を示す図である。
【図１２】図１２は、マーカーの形状の一例を示す図である。
【図１３】図１３は、マーカーの形状の一例を示す図である。
【図１４】図１４は、マーカーＭ２の円周上の４点を安定して抽出するための一つの方法論の説明に用いる図である。
【図１５】図１５は、図１４を用いて説明した方法論の問題点の説明に用いる図である。
【図１６】図１６は、図１４を用いて説明した方法論の問題点の説明に用いる図である。
【発明を実施するための形態】
【００１０】
以下に、図面を参照しつつ、本願の開示する画像処理プログラムおよび画像処理装置の一実施形態について詳細に説明する。なお、本願の開示する画像処理プログラムおよび画像処理装置の一実施形態として後述する実施例により、本願が開示する技術が限定されるものではない。以下の実施例では、本願の開示する画像処理プログラムおよび画像処理装置の一実施形態として、既定の位置に配置されたマーカー（冶具）を撮影した画像から、異なる色領域を各々形作る境界線の交点を特徴点として複数抽出する方法を説明する。
【実施例１】
【００１１】
上述した図１２に示すマーカーＭ１は、マーカーＭ１の外延が背景と接した状態で撮影されるので、マーカーＭ１を撮影した画像上で、マーカーＭ１と背景との切り離しが容易な模様が望ましい。そこで、図１２のマーカーＭ１よりも、より背景との切り離しが容易なマーカーの形状として、図１３に示すような形状が考えられる。図１３は、マーカーの形状の一例を示す図である。
【００１２】
図１３に示すような形状を有するマーカーＭ２は、模様の中心、つまり、異なる色領域を各々形作る境界線の交点の内の１点を中心として持つ円形部分と、この円形領域を取り囲む部分とを有する。このように、マーカーＭ２の円形部分を取り囲む領域を設けると、マーカーＭ２の円形部分が背景に依存することがないので、マーカーＭ２の円形部分の境界が鮮明に映った画像を得ることができる。よって、マーカーＭ２を用いてキャリブレーション処理を行えば、マーカーＭ２と背景との切り離しが容易となるので、マーカーＭ２の円形部分の模様の中心、つまり、異なる色領域を各々形作る境界線の交点である特徴点の抽出精度を向上できる。
【００１３】
また、例えば、図１３に示すマーカーＭ２の異なる色領域を各々形作る境界線の交点（以下、交差点と表記する）は、マーカーＭ２の円形部分の模様の中心１点、およびマーカーＭ２の円形部分の円周上に現れる４点の計５点となる。よって、マーカーＭ２の円形部分の模様の中心１点以外で、マーカーＭ２の交差点を全て特徴点として抽出できれば、一つのマーカーＭ２を撮影した画像から計５点の特徴点を抽出できることとなる。したがって、複数のマーカーを設置する場所を確保できない場合であっても、キャリブレーションを安定して行うことができる。
【００１４】
そこで、例えば、上述した公知技術を用いて、図１３に示すマーカーＭ２が有する異なる色の交点を全て特徴点として抽出することを考える。例えば、上述した公知技術は、図１２に示すマーカーＭ１を撮影した画像から、それぞれの色領域の境界線を検出し、２つの境界線の交点を特徴点として抽出する。
【００１５】
よって、上述した公知技術は、図１２に示すマーカーＭ１と同様に、図１３に示すマーカーＭ２を撮影した画像から、円形部分の中心を特徴点として抽出することが可能である。ここで、上述した公知技術は、マーカーＭ２の円形部分の円周上に現れる４点を特徴点として抽出する場合、異なる色の境界線である直線に加えて、円周の部分の曲線を抽出することとなる。
【００１６】
しかし、マーカーＭ２を撮影した画像では、マーカーＭ２の円形部分の円周に対応する曲線が、カメラの設置位置とマーカーＭ２の設置位置との位置関係によって、円弧ではない歪んだ曲線になる恐れがある。このため、上述した公知技術では、マーカーＭ２の円形部分の円周上に現れる４点を特徴点として抽出することができない場合が考えられる。特に、マーカーは、カメラの正面方向から水平方向に離れた位置に設置されることが多いため、カメラの正面から離れた場所の物体ほど、撮影画像において、歪みが生じる。このように歪んだ画像としてマーカー画像が取得された場合は、画像から特徴点を抽出する精度が低下する。例えば、フィルタマッチング等で特徴点抽出を行う場合は、フィルタとマッチングする画像が歪んでいると特徴点を検出できない。
【００１７】
さらに、レンズの影響によりマーカーＭ２の画像が歪んだり、照明の影響によりマーカーＭ２の画像が不鮮明となったりした場合には、画像内の境界線や異なる色の交点が不鮮明になってしまう。このような場合にも、上述した公知技術では、マーカーＭ２の円周上の４点を安定して抽出することができない。
【００１８】
そこで、取得画像の歪みを補正することで、特徴点を安定的に抽出することが考えられる。例えば、図１４を用いて、マーカーＭ２の円周上の４点を安定して抽出するための一つの方法論を説明する。図１４は、マーカーＭ２の円周上の４点を安定して抽出するための一つの方法論の説明に用いる図である。
【００１９】
例えば、図１４のように歪んだマーカーＭ２の画像Ａが得られた場合、図１４に示す画像Ａ´のように歪みが解消された状態に変換することで、特徴点を抽出することが考えられる。まず、上述した公知技術を用いて、図１４に示すマーカーＭ２の交差する境界線である線分Ｐ１Ｐ３および線分Ｐ２Ｐ４を画像Ａから検出する。続いて、図１４に示す四角形Ｐ１Ｐ２Ｐ３Ｐ４が、図１４に示す正方形Ｐ１´Ｐ２´Ｐ３´Ｐ４´となるように変換する。このような変換は射影変換、あるいはホモグラフィとして知られている（佐藤他、「コンピュータビジョン―視覚の幾何学―」、コロナ社、１９９９年等参照）。なお、射影変換においては、元画像において検出した線分の交差角を９０度とするように変換を行う。言い換えると、元画像で検出した線分がそもそも９０度で交差しないような線分を検出してしまった場合は、変換後の画像は歪みを解消した画像とはならない。
【００２０】
図１４に示すように、歪んだマーカーＭ２の画像Ａを画像Ａ´のように歪みが解消された状態に変換できれば、上述した公知技術を応用することで、円周の曲線を検出し、円周の曲線と上述した２つの線分との交点から円周上の４点を抽出できる。ただし、上述してきた方法論を用いても、曲線を抽出すること自体の技術的困難性や、画像が不鮮明である場合の抽出精度の低下などの問題は残り、マーカーＭ２の円周上の４点を安定して抽出することができないという点を解消できない。
【００２１】
また、図１４を用いて説明した方法論には、例えば、図１５および図１６に示すような問題がある。図１５および図１６は、図１４を用いて説明した方法論の問題点の説明に用いる図である。図１４を用いて説明した方法論では、マーカーＭ２の交差する境界線（線分Ｐ１Ｐ３および線分Ｐ２Ｐ４）が直線となることを前提としている。
【００２２】
しかし、図１５に示すマーカーＭ２の画像Ｂように、中心を通る線分を検出したとしても、レンズ歪みが非線形であることや、照明の影響で画像が不鮮明になってしまうことから、線分が各領域の境界線と一致しない場合がある。例えば、元画像において、中心から両方向に伸びる境界線が中心を境に異なる直線として取得された場合は、境界線として抽出した線分は異なる２線分の近似直線の一部となる。また、元画像における歪みによって境界が曲線として取得された場合も、境界線として抽出した線分は、曲線を直線近似したものとなる。このような状況で、四角形Ｐ１Ｐ２Ｐ３Ｐ４を正方形Ｐ１´Ｐ２´Ｐ３´Ｐ４´となるように変換を行うと、例えば、図１５に示す画像Ｂ´のように、マーカーＭ２の交差する境界線が大きく歪んだ画像となってしまう。
【００２３】
また、図１６に示すマーカーＭ２の画像Ｃに映し出されたマーカーＭ２の４隅の点Ｐ１〜Ｐ４を結んでできる四角形Ｐ１Ｐ２Ｐ３Ｐ４を正方形Ｐ１´Ｐ２´Ｐ３´Ｐ４´となるように変換を行ったとしても、図１６に示す画像Ｃ´のように変換されてしまう。つまり、この場合も、上述した図１５に示す画像Ｂ´と同様に歪んだ画像となってしまう。これは、図１５に示す場合と同様の理由から、マーカーＭ２の画像Ｃ上におけるマーカーＭ２の交差する境界線、つまり四角形Ｐ１Ｐ２Ｐ３Ｐ４の対角線が必ずしも直線とはならないことを原因とする。図１５および図１６に示す場合のいずれにしても、正規化変換後のマーカーＭ２の画像は歪んだままであるので、図１４を用いて説明した方法論では、マーカーＭ２の円周上の４点を安定して抽出することはできない。
【００２４】
以下に説明する実施例では、図１５や図１６などを用いて説明した問題点に鑑み、一つのマーカーを撮影した画像から複数の特徴点を安定して抽出するための一実施形態について説明する。
【００２５】
［画像処理装置の構成（実施例１）］
図１は、実施例１に係る画像処理装置の構成を示す機能ブロック図である。図１に示すように、実施例１に係る画像処理装置２００は撮影装置１００と接続する。撮影装置１００は、既定の位置に配置されたマーカーの画像を撮影する。
【００２６】
また、図１に示すように、画像処理装置２００は、取得部２１０と、記憶部２２０と、特徴点抽出ユニット２３０と、位置姿勢推定ユニット２４０とを有する。そして、画像処理装置２００は、撮影装置１００により撮影されたマーカーの画像を取得し、取得した画像から複数の特徴点を抽出する。ここで、図１の説明を行う前に、図２を用いて、画像処置装置２００について説明する。図２は、実施例１に係る画像処理装置の説明に用いる図である。図２には、画像処置装置により実施される処理の経過を示している。
【００２７】
例えば、画像処理装置２００は、特徴点の抽出に採用するマーカーとして、図１３に示すマーカーＭ２を利用する。マーカーＭ２は、例えば、４０センチメートル程度の正方形の中心部に円形の部分を有し、白色の白領域と黒色の黒領域とが互い違いの模様となっている。また、マーカーＭ２の円形の部分は、マーカーＭ２の中心を挟んで対向する白領域の対と、マーカーＭ２の中心を挟んで対向する黒領域の対とを有する。マーカーＭ２を、例えば、白色の白領域と黒色の黒領域とが互い違いの模様とするのは、マーカーＭ２の円形部分の中心が特徴点としてマーカーＭ２の画像上で高精度に現れるようにする意図がある。また、マーカーＭ２の円形部分を取り囲む領域も白領域と黒領域とが互い違いの模様とするのは、マーカーＭ２が配置される床面や背景に関する画像に影響されず、マーカーＭ２の円形部分の境界がマーカーＭ２の画像上で鮮明に現れるようにする意図がある。
【００２８】
なお、画像処理装置２００は、図１３に示すマーカーＭ２を利用する場合に限られるものではない。図１２に示すマーカーＭ１を利用することもできる。例えば、マーカーＭ２の円形部分を図１２に示すマーカーＭ１のような四角形とし、この四角形の領域を取り囲む領域を設け、全体として白領域と黒領域とが互い違いの模様を有する四角形のマーカーを採用することもできる。
【００２９】
図２に戻り、画像処置装置２００は、（１）に示すように、マーカーＭ２を撮影した画像が有する各ピクセルの輝度値を変換したグレースケール画像上で、マーカーＭ２の中心点Ｐ０の位置を取得する。次に、画像処理装置２００は、（２）に示すように、グレースケール画像上で、中心点Ｐ０から放射状に伸びる白領域と黒領域との境界線Ｌ１、Ｌ２、Ｌ３、Ｌ４の位置を取得する。続いて、画像処理装置２００は、（３）に示すように、中心点Ｐ０の位置と、境界線Ｌ１、Ｌ２、Ｌ３、Ｌ４の位置とに基づいてグレースケール画像の歪みが補正されるように正規化変換する。そして、画像処理装置２００は、（４）に示すように、白領域を形作る境界線と黒領域を形作る境界線との交点である交差点が存在する可能性が高いほど大きな応答値が得られるフィルタを用いて、正規化変換した画像を走査してフィルタの応答値を得る。
【００３０】
次に、画像処置装置２００は、図２の（５）に示すように、フィルタの応答値がピークとなる位置を抽出する。続いて、画像処置装置２００は、（６）に示すように、正規化変換した画像上で、フィルタの応答値がピークとなる位置を取得する。次に、画像処置装置２００は、（７）に示すように、正規化変換した画像を逆変換してグレースケール画像に戻し、正規化変換した画像上でフィルタの応答値がピークとなる位置に対応するグレースケール画像上の位置を取得する。そして、画像処理装置２００は、取得したグレースケール画像上の位置を特徴点に決定する。
【００３１】
図１に戻り、取得部２１０は、撮影装置１００により撮影されたマーカーＭ２の画像を取得する。取得部２１０は、取得したマーカーＭ２の画像を記憶部２２０に格納する。
【００３２】
記憶部２２０は、図１に示すように、画像記憶部２２１を有する。なお、記憶部２２０は、例えば、ＲＡＭ（Random  Access  Memory）やフラッシュメモリ(flash  memory)などの半導体メモリ素子である。画像記憶部２２１は、取得部２１０により取得されたマーカーＭ２の画像を記憶する。
【００３３】
特徴点抽出ユニット２３０は、図１に示すように、中心点取得部２３１と、生成部２３２と、抽出部２３３と、変換部２３４と、ピーク抽出部２３５と、逆変換部２３６とを有する。なお、特徴点抽出ユニット２３０は、例えば、電子回路や集積回路に該当する。電子回路としては、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）がある。また、集積回路としては、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array)などがある。
【００３４】
中心点取得部２３１は、画像記憶部２２１からマーカーＭ２の画像（以下、「原画像」と表記する）を取得し、原画像上で、白色の白領域と黒色の黒領域とが交差するマーカーＭ２の中心点の位置を取得する。例えば、中心点取得部２３１は、原画像のエッジを検出し、検出したエッジが交差する点のうち、よりマーカーＭ２の中心に近い点の位置を中心点の位置として取得する。
【００３５】
あるいは、中心点取得部２３１は、原画像におけるマーカーＭ２の白領域および黒領域の各色領域を楕円形状に近づくまで夫々繰り返し縮退し、縮退された各色領域の位置関係に基づいてマーカーＭ２の中心点の位置を取得してもよい。発明者は、マーカーＭ２の円形部分の色領域がマーカーＭ２の画像内の他の領域と完全に分離した状態では楕円形状性を有する点を発見した。そこで、中心点取得部２３１は、まず、マーカーＭ２の円形部分の色領域が楕円形状性を有するまで繰り返し縮退する。縮退により、マーカーＭ２の円形部分の色領域を完全に分離させた後、中心点取得部２３１は、マーカーＭ２の中心を挟んで対向するようにそれぞれ配置される色領域の位置関係に基づいて、マーカーＭ２の中心点の位置を取得する。
【００３６】
生成部２３２は、画像記憶部２２１から原画像を取得し、原画像の輝度値を変換することによりグレースケール画像を生成する。なお、生成部２３２は、原画像がＲＧＢカラー画像である場合には、各ピクセルについて、例えば、以下に示す式（１）を用いて、Ｒ、Ｇ、Ｂの値を輝度値Ｙに変換することにより、グレースケール画像を生成する。
【００３７】
【数１】
0005573618.tif 000002
【００３８】
抽出部２３３は、生成部２３２により生成されたグレースケール画像上で、マーカーＭ２の中心から放射状に延びる白領域と黒領域との境界線の位置を、中心から見た所定位置の仰角として、放射線ごとに取得する。以下、図３および図４を用いて、抽出部２３３について説明する。図３および図４は、実施例１に係る抽出部の説明に用いる図である。
【００３９】
図３に示すＧ１はグレースケール画像を示し、以下に説明する実施例中、「グレースケール画像Ｇ１」と表記するものとする。また、図３に示すＣ（ｘ０，ｙ０）は、グレースケール画像Ｇ１におけるマーカーＭ２の中心点を示し、以下に説明する実施例中、「中心点Ｃ」と表記するものとする。図３に示すＧ２はエッジ画像を示し、以下に説明する実施例中、「エッジ画像Ｇ２」と表記するものとする。
【００４０】
図３に示すように、抽出部２３３は、公知の技術を利用することにより、グレースケール画像Ｇ１のエッジを検出してエッジ画像Ｇ２を取得する。なお、公知技術としては、グレースケール画像Ｇ１をＣａｎｎｙオペレータなどのエッジ検出フィルタで走査することによりエッジを検出したり、グレースケール画像Ｇ１を２値化した後に白領域と黒領域との境界にあるピクセルを検出したりするなど方法がある。次に、抽出部２３３は、エッジ画像Ｇ２に対して任意に０度の方向を設定する。続いて、抽出部２３３は、中心点Ｃを中心として、０度の方向から反時計回りにエッジの角度方向をとっていく。そして、図４に示すように、抽出部２３３は、エッジの角度方向ごとに、エッジとして検出されたピクセル数を計数したヒストグラムを作成する。抽出部２３３は、図４に示すヒストグラムでピクセル数がピークを示す４つの位置を、マーカーＭ２の中心点Ｃから放射状に伸びる白領域と黒領域との４つの境界線の位置としてそれぞれ取得する。
【００４１】
変換部２３４は、中心点Ｃの位置と４つの境界線の位置とを用いて、グレースケール画像Ｇ１の画像の歪みが補正されるように正規化変換する。例えば、変換部２３４は、隣り合う２つの境界線が中心点Ｃの位置で直交するように、グレースケール画像Ｇ１を正規化変換する。つまり、マーカーＭ２では、マーカーの中心で、白領域と黒領域との境界線が直交している点を考慮するものである。以下、図５を用いて、変換部２３４について説明する。
【００４２】
図５は、実施例１に係る変換部の説明に用いる図である。図５に示すＧ３は正規化後の画像を示す。図５に示す(ｘ１，ｙ１)、（ｘ２，ｙ２）、（ｘ３，ｙ３）、（ｘ４，ｙ４）は、中心点Ｃから各境界線の方向に所定の距離だけ離れた４つの点の座標を表す。所定の距離は、マーカーＭ２の端に届く程度が望ましく、例えば、マーカーＭ２のサイズからあらかじめ設定しておいてもよいし、あるいは、マーカーＭ２の白（または黒）領域の重心位置と中心点Ｃとの距離の２倍〜３倍程度としてもよい。マーカーＭ２のサイズとマーカーＭ２が有する円形部分のサイズの比率や、重心位置の抽出精度にもよるが、おおよそ２倍〜３倍程度でマーカーＭ２の端に届くものと考えられる。なお、重心位置の抽出方法は、公知の領域ベースの手法を用いればよい。また、図５の左に示す点線枠に含まれる画素を、変換の対象として、以下説明するが、本発明はこれに限られない。例えば、座標(ｘ１，ｙ１)、（ｘ２，ｙ２）、（ｘ３，ｙ３）、（ｘ４，ｙ４）で囲まれる領域に含まれる画素を、変換の対象とすることで、処理の高速化を図ることもできる。
【００４３】
また、図５に示す「α」、「β」は、グレースケール画像Ｇ１の点（画素）を表し、図５に示す「α´」、「β´」は、「α」および「β」に対応する正規化後の画像Ｇ３上の点（画素）を表す。
【００４４】
まず、変換部２３４は、グレースケール画像Ｇ１を取得し、マーカーＭ２の中心点Ｃの座標（Ｘ０，Ｙ０）と、マーカーＭ２の境界線上の座標(ｘ１，ｙ１)、（ｘ２，ｙ２）、（ｘ３，ｙ３）、（ｘ４，ｙ４）をそれぞれ取得する。次に、変換部２３４は、正規化後の画像サイズ（例えば、２Ａ）を決定し、正規化後の画像Ｇ３上の点（画素）の位置を格納するバッファを確保する。続いて、変換部２３４は、図５に示すように、４つの境界線で区切られるグレースケール画像Ｇ１の領域ごとに、領域内の各画素の画素値を、正規化後の画像Ｇ３上の対応画素に配置することにより、グレースケール画像Ｇ１を正規化後の画像Ｇ３に変換する。例えば、この変換は、グレースケール画像Ｇ１上の点の座標を（ｘ，ｙ）、この点の座標（ｘ，ｙ）に対応する正規化後の画像上の座標を（ｘ´，ｙ´）とすると、行列Ｈを用いて、以下に示す式（２）で表される。
【００４５】
【数２】
0005573618.tif 000003
【００４６】
例えば、変換部２３４は、正規化後の画像を４つの領域に場合分けし、各領域について、座標（ｘ，ｙ）と座標（ｘ´，ｙ´）との対応関係が定式化された行列Ｈを算出する。このとき、変換部２３４は、以下の前提条件を定義する。なお、以下では、グレースケール画像Ｇ１を「画像Ｇ１」と表記し、正規化後の画像Ｇ３を「画像Ｇ３」と表記するものとする。変換部２３４は、画像Ｇ１上の座標（ｘ０，ｙ０）、（ｘ１，ｙ１）、（ｘ２，ｙ２）、（ｘ３，ｙ３）および（ｘ４，ｙ４）が、画像Ｇ３上の点（Ａ，Ａ）、（２Ａ，Ａ）、（Ａ，２Ａ）、（０，Ａ）および（Ａ，０）にそれぞれ対応するものと定義する。このように定義された前提条件の元で正規化された画像Ｇ３は、Ｘ＝Ａの直線とＹ＝Ａの直線とのなす角が９０度になる。ここで、２Ａは正規化後の画像の正方形の一辺の長さであり、言い換えれば、正規化後の画像のサイズに該当し、所定の値（例えば、Ａ＝１００）が与えられる。
【００４７】
例えば、変換部２３４は、正規化後の画像上の座標（ｘ´，ｙ´）が、正規化後の画像の４つの領域のうち「Ａ≦ｘ´≦２Ａ，かつＡ≦ｙ´≦２Ａ」の領域にある場合には、以下に示す式（３）により行列Ｈを算出する。
【００４８】
【数３】
0005573618.tif 000004
【００４９】
また、変換部２３４は、正規化後の画像上の座標（ｘ´，ｙ´）が、正規化後の画像の４つの領域のうち「０≦ｘ´＜Ａ，かつＡ≦ｙ´≦２Ａ」の領域にある場合には、以下に示す式（４）により行列Ｈを算出する。
【００５０】
【数４】
0005573618.tif 000005
【００５１】
また、変換部２３４は、正規化後の画像上の座標（ｘ´，ｙ´）が、正規化後の画像の４つの領域のうち「０≦ｘ´＜Ａ，かつ０≦ｙ´＜Ａ」の領域にある場合には、以下に示す式（５）により行列Ｈを算出する。
【００５２】
【数５】
0005573618.tif 000006
【００５３】
また、変換部２３４は、正規化後の画像上の座標（ｘ´，ｙ´）が、正規化後の画像の４つの領域のうち「Ａ≦ｘ´≦２Ａ，かつ０≦ｙ´＜Ａ」の領域にある場合には、以下に示す式（６）により行列Ｈを算出する。
【００５４】
【数６】
0005573618.tif 000007
【００５５】
続いて、変換部２３４は、上述した式（３）〜（６）のいずれかにより算出された行列Ｈを上述した式（２）に代入し、この式（２）を用いて、画像Ｇ１の座標（ｘ，ｙ）を算出する。そして、変換部２３４は、画像Ｇ１の座標（ｘ，ｙ）の画素値を取得し、取得した値を画像Ｇ１の座標（ｘ，ｙ）に対応する画像Ｇ３の座標（ｘ´，ｙ´）の画素値としてバッファに格納する。以上で、変換部２３４による変換が完了する。
【００５６】
図１に戻り、ピーク抽出部２３５は、白領域と黒領域との交差点が存在する可能性が高いほど大きな応答値を得られるフィルタを用いて、正規化変換した画像を走査してフィルタの応答値を取得し、取得した応答値のピークを取得する。以下、図６および図７を用いてピーク抽出部２３５について説明する。図６および図７は、実施例１に係るピーク抽出部２３５の説明に用いる図である。
【００５７】
図６に示すＦ１は、白領域と黒領域との交差点が存在する可能性が高いほど大きな応答値を得られるフィルタを示し、例えば、「Ｈａａｒ−Ｌｉｋｅ特徴量」をフィルタパターンとして抽出するフィルタなどに該当する。
【００５８】
例えば、ピーク抽出部２３５は、正規化後の画像Ｇ３を取得し、フィルタＦ１のサイズＫを決定する。なお、フィルタＦ１のサイズＫは、例えば、正規化後の画像Ｇ３の１０分の１程度の大きさが適当である。次に、ピーク抽出部２３５は、フィルタ対象領域の幅Ｂを決定する。なお、フィルタ対象領域の幅Ｂは、例えば、フィルタＦ１のサイズＫの２分の１程度の大きさが適当であり、少なくとも、マーカーＭ２の円周上の白領域と黒領域との交差点が含まれるようにフィルタリングできればよい。
【００５９】
続いて、ピーク抽出部２３５は、フィルタ対象領域として領域１、領域２、領域３および領域４を定義する。例えば、幅Ｂでｙ´軸上およびｘ´軸上を走査する場合、ピーク抽出部２３５は、上述した領域１〜４の範囲を以下のように定義する。
領域１：Ａ＜ｘ´＜２Ａ，Ａ−Ｂ＜ｙ´＜Ａ＋Ｂ
領域２：０＜ｘ´＜Ａ，Ａ−Ｂ＜ｙ´＜Ａ＋Ｂ
領域３：Ａ−Ｂ＜ｘ´＜Ａ＋Ｂ，Ａ＜ｙ´＜２Ａ
領域４：Ａ−Ｂ＜ｘ´＜Ａ＋Ｂ，０＜ｙ´＜Ａ
【００６０】
そして、ピーク抽出部２３５は、サイズＫのフィルタＦ１を用いて、各フィルタ対象領域（領域１〜領域４）を走査し、各領域においてフィルタの応答値がピークとなる正規化後の画像Ｇ３上の点の座標（ｘ´，ｙ´）を取得する。例えば、図７に、Ｘ軸上を走査したときのフィルタ応答の一例を示す。図７に示すように、ｘ´の値が０．２Ａ、１．６Ａでフィルタの応答値がピーク（最大値）となっている。なお、ｘ´の値が１．６Ａであるときのフィルタの応答値は、上述した領域１をフィルタ対象領域として処理したときに得られる値である。また、ｘ´の値が０．２Ａであるときのフィルタ応答値は、上述した領域２をフィルタ対象領域として処理したときに得られる値である。そこで、ピーク抽出部２３５は、上述した領域１をフィルタ対象領域として処理した場合には、フィルタの応答値がピークとなる正規化後の画像Ｇ３上の点の座標として、（ｘ´，ｙ´）＝（１．６Ａ，Ａ）を取得する。また、ピーク抽出部２３５は、上述した領域２をフィルタ対象領域として処理した場合には、フィルタの応答値がピークとなる正規化後の画像Ｇ３上の点の座標として、（ｘ´，ｙ´）＝（０．２Ａ，Ａ）を取得する。同様に、ピーク抽出部２３５は、領域３および領域４をフィルタ対象領域として処理した場合にも、フィルタの応答値がピークとなる正規化後の画像Ｇ３上の点の座標を取得する。なお、ピーク抽出部２３５による処理は、変換部２３４により上述したような方法で正規化された画像上であっても、白領域と黒領域との交差点が存在する微小領域では、マーカーＭ２のように白領域と黒領域との境界線が直交している点に着目するものである。
【００６１】
図１に戻り、逆変換部２３６は、上述した式（２）を用いて、フィルタの応答値がピークとなる正規化後の画像Ｇ３上の点の座標を、グレースケール画像Ｇ１上の点の座標に逆変換する。そして、逆変換部２３６は、逆変換の結果得られた座標をマーカーＭ２の原画像上の特徴点の位置に決定し、位置姿勢推定ユニット２４０に送出する。
【００６２】
位置姿勢推定ユニット２４０は、特徴点抽出ユニット２３０から送出された特徴点の位置（座標）に基づいて、マーカーＭ２の画像を撮影した撮影装置１００の位置および姿勢を算出する。なお、位置姿勢推定ユニット２４０は、例えば、電子回路や集積回路に該当する。電子回路としては、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）がある。また、集積回路としては、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array)などがある。
【００６３】
［画像処理装置による処理（実施例１）］
図８〜図１０を用いて、実施例１に係る画像処理装置２００による処理の流れを説明する。図８は、実施例１に係る画像処理装置による処理の全体的な流れを示す図である。図９は、実施例１に係る正規化処理の流れを示す図である。図１０は、実施例１に係るピーク抽出処理の流れを示す図である。実施例１に係る画像処理装置２００は、画像を取得するたびに図８〜１０に示す処理を実行する。なお、以下に記載するマーカー画像とは、マーカーＭ２を撮影した原画像を示すものとする。
【００６４】
まず、図８を用いて、実施例１に係る画像処理装置による処理の全体的な流れを説明する。図８に示すように、中心点取得部２３１は、画像記憶部２２１からマーカーの画像Ｉ（ｘ，ｙ）を取得し（ステップＳ１０１）、白色の白領域と黒色の黒領域とが交差するマーカーの中心点の位置を取得する（ステップＳ１０２）。次に、生成部２３２は、画像記憶部２２１からマーカー画像を取得し、マーカー画像の輝度値を変換することによりグレースケール画像を生成する（ステップＳ１０３）。
【００６５】
続いて、抽出部２３３は、ステップＳ１０２にて生成されたグレースケール画像上で、マーカーの中心から放射状に延びる白領域と黒領域との４つの境界線の位置を抽出する（ステップＳ１０４）。そして、変換部２３４は、ステップＳ１０２にて取得された中心点の位置と、ステップＳ１０４にて抽出された４つの境界線の位置とを用いて、ステップＳ１０３にて生成されたグレースケール画像の歪みを補正する正規化処理を実行する（ステップＳ１０５）。なお、ステップＳ１０５の正規化処理については、図９を用いて後述する。
【００６６】
次に、ピーク抽出部２３５は、白領域と黒領域との交差点が存在する可能性が高いほど大きな応答値を得られるフィルタを用いて、ステップＳ１０５の正規化処理により得られる正規化後の画像を走査するピーク抽出処理を実行する（ステップＳ１０６）。なお、ステップＳ１０６のピーク抽出処理については、図１０を用いて後述する。
【００６７】
続いて、逆変換部２３６は、ステップＳ１０６のピーク抽出処理により得られるフィルタの応答値がピークとなるときの正規化後の画像Ｇ３上の点の座標（ｘ´ｉ，ｙ´ｉ）を、グレースケール画像Ｇ１上の点の座標（ｘｉ，ｙｉ）に逆変換する（ステップＳ１０７）。そして、逆変換部２３６は、ステップＳ１０７の結果をマーカー画像の特徴点の位置に決定し、位置姿勢推定ユニット２４０に送出する（ステップＳ１０８）。
【００６８】
次に、図９を用いて、上述したステップＳ１０５の正規化処理の流れを説明する。図９に示すように、変換部２３４は、グレースケール画像Ｉ（ｘ，ｙ）を取得する（ステップＳ２０１）。次に、変換部２３４は、マーカーの中心点の座標（ｘ０，ｙ０）を取得し（ステップＳ２０２）、マーカーの境界線上の座標(ｘ１，ｙ１)、（ｘ２，ｙ２）、（ｘ３，ｙ３）、（ｘ４，ｙ４）をそれぞれ取得する（ステップＳ２０３）。続いて、変換部２３４は、正規化後の画像サイズを２Ａに決定し（ステップＳ２０４）、正規化後の画像上の各点の画素値を格納するバッファＩ´（ｘ´，ｙ´）を確保する（ステップＳ２０５）。
【００６９】
次に、変換部２３４は、正規化後の画像を４つの領域に場合分けし、ステップＳ２０６〜ステップＳ２１８までの処理を実行する。言い換えれば、変換部２３４は、４つに場合分けされた正規化後の画像の領域ごとに上述した行列Ｈを算出する処理（ステップＳ２０８〜ステップＳ２１６）を、０≦ｘ´≦２Ａおよび０≦ｙ´≦２Ａの範囲内で繰り返し実行する。なお、ステップＳ２０６、Ｓ２０７、Ｓ２１７、Ｓ２１８は、０≦ｘ´≦２Ａおよび０≦ｙ´≦２Ａの範囲内で、ｘ´の値およびｙ´の値を１ずつインクリメントしながらステップＳ２０８〜Ｓ２１６までの処理を繰り返すことを意味する。
【００７０】
まず、変換部２３４は、正規化後の画像上の座標（ｘ´，ｙ´）が、「Ａ≦ｘ´≦２Ａ，かつＡ≦ｙ´≦２Ａ」の領域にあるか否かを判定する（ステップＳ２０８）。判定の結果、正規化後の画像上の座標（ｘ´，ｙ´）が、「Ａ≦ｘ´≦２Ａ，かつＡ≦ｙ´≦２Ａ」の領域にある場合には（ステップＳ２０８，Ｙｅｓ）、変換部２３４は、上述した式（３）により行列Ｈを算出する（ステップＳ２０９）。
【００７１】
一方、判定の結果、正規化後の画像上の座標（ｘ´，ｙ´）が、「Ａ≦ｘ´≦２Ａ，かつＡ≦ｙ´≦２Ａ」の領域にない場合には（ステップＳ２０８，Ｎｏ）、変換部２３４は、次の判定を行う。すなわち、変換部２３４は、正規化後の画像上の座標（ｘ´，ｙ´）が、「０≦ｘ´＜Ａ，かつＡ≦ｙ´≦２Ａ」の領域にあるか否かを判定する（ステップＳ２１０）。判定の結果、正規化後の画像上の座標（ｘ´，ｙ´）が、「０≦ｘ´＜Ａ，かつＡ≦ｙ´≦２Ａ」の領域にある場合には（ステップＳ２１０，Ｙｅｓ）、変換部２３４は、上述した式（４）により行列Ｈを算出する（ステップＳ２１１）。
【００７２】
一方、判定の結果、正規化後の画像上の座標（ｘ´，ｙ´）が、「０≦ｘ´＜Ａ，かつＡ≦ｙ´≦２Ａ」の領域にない場合には（ステップＳ２１０，Ｎｏ）、変換部２３４は、次の判定を行う。すなわち、変換部２３４は、正規化後の画像上の座標（ｘ´，ｙ´）が、「０≦ｘ´＜Ａ，かつ０≦ｙ´＜Ａ」の領域にあるか否かを判定する（ステップＳ２１２）。判定の結果、正規化後の画像上の座標（ｘ´，ｙ´）が、「０≦ｘ´＜Ａ，かつ０≦ｙ´＜Ａ」の領域にある場合には（ステップＳ２１２，Ｙｅｓ）、変換部２３４は、上述した式（５）により行列Ｈを算出する（ステップＳ２１３）。
【００７３】
一方、判定の結果、正規化後の画像上の座標（ｘ´，ｙ´）が、「０≦ｘ´＜Ａ，かつ０≦ｙ´＜Ａ」の領域にない場合には（ステップＳ２１２，Ｎｏ）、変換部２３４は、次のように処理を行う。すなわち、変換部２３４は、正規化後の画像上の座標（ｘ´，ｙ´）が、「Ａ≦ｘ´≦２Ａ，かつ０≦ｙ´＜Ａ」の領域にあるものと判定し、上述した式（６）により行列Ｈを算出する（ステップＳ２１４）。
【００７４】
上述したステップＳ２０９、ステップＳ２１１、ステップＳ２１３、ステップＳ２１４のいずれかで行列Ｈが算出された後、変換部２３４は、上述した式（２）を用いて、次のステップＳ２１５の処理を実行する。すなわち、変換部２３４は、上述した式（２）を用いて、正規化後の画像上の座標（ｘ´，ｙ´）に対応するグレースケール画像Ｉ（ｘ，ｙ）上の座標（ｘ，ｙ）を算出する（ステップＳ２１５）。そして、変換部２３４は、ステップ２１５により算出した座標（ｘ，ｙ）の画素値を取得し、取得した画素値を正規化後の画像上の座標（ｘ´，ｙ´）に対応づけてバッファＩ´（ｘ´，ｙ´）に格納する（ステップＳ２１６）。
【００７５】
ステップＳ２０６〜ステップＳ２１８までの処理を完了すると、変換部２３４は、バッファＩ´（ｘ´，ｙ´）に格納されているデータをピーク抽出部２３５に送出する（ステップＳ２１９）。以上で、変換部２３４は処理を完了する。
【００７６】
続いて、図１０を用いて、上述したステップＳ１０６のピーク抽出処理の流れを説明する。図１０に示すように、ピーク抽出部２３５は、正規化後の画像Ｉ´（ｘ´，ｙ´）を取得し（ステップＳ３０１）、フィルタのサイズＫを決定する（ステップＳ３０２）。次に、ピーク抽出部２３５は、フィルタ対象領域の幅Ｂを決定する（ステップＳ３０３）。続いて、ピーク抽出部２３５は、フィルタ対象領域として領域１、領域２、領域３および領域４を定義する（ステップＳ３０４）。
【００７７】
次に、ピーク抽出部２３５は、ステップＳ３０５〜ステップＳ３０９までの処理を実行する。言い換えれば、変換部２３４は、ステップＳ３０４で定義した領域１、領域２、領域３および領域４の全てについて、ステップＳ３０６〜ステップＳ３０８までの処理が完了するまで繰り返し実行する。なお、ステップＳ３０５、Ｓ３０９は、領域１、領域２、領域３および領域４の全てについて、ステップＳ３０６〜Ｓ３０８までの処理を繰り返すことを意味する。
【００７８】
まず、ピーク抽出部２３５は、領域ｉ（ｉ＝１，２，３，４のいずれか）にフィルタ（サイズＫ）をかけて、フィルタの応答値Ｆ（ｘ´，ｙ´）をそれぞれ取得する（ステップＳ３０６）。次に、ピーク抽出部２３５は、領域ｉ（例えば、ｉ＝１）について得られたフィルタの応答値Ｆ（ｘ´，ｙ´）のうちの最大値Ｆｍａｘを取得する（ステップＳ３０７）。そして、ピーク抽出部２３５は、ステップＳ３０７で取得した最大値Ｆｍａｘに対応する正規化画像Ｉ´（ｘ´，ｙ´）上の座標（ｘｉ´，ｙｉ´）を取得する（ステップＳ３０８）。
【００７９】
ステップＳ３０５〜Ｓ３０９までの処理を完了すると、各領域ｉ（ｉ＝１，２，３，４）のＦｍａｘに対応する座標（ｘｉ´，ｙｉ´）を逆変換部２３６に送出する（ステップＳ３１０）。以上で、ピーク抽出部２３５は処理を完了する。
【００８０】
［実施例１による効果］
上述してきたように、画像処理装置２００は、マーカー画像上の中心点の位置とマーカー画像上の境界線の位置とに基づいて、マーカー画像の歪みが補正されるように正規化変換する。次に、画像処理装置２００は、白領域と黒領域との交差点が存在する可能性が高いほど大きな応答値が得られるフィルタを用いて正規化画像を走査し、フィルタの応答値がピークとなる正規化画像上の位置を取得する。続いて、画像処理装置２００は、正規化画像上でフィルタの応答値がピークとなる位置を取得する。そして、画像処理装置２００は、正規化画像を逆変換することにより、正規化画像上でフィルタの応答値がピークとなる位置に対応するグレースケール画像上の位置を取得し、この位置を特徴点に決定する。このようなことから、実施例１によれば、一つのマーカーから複数の特徴点を安定して抽出できる。
【００８１】
また、実施例１では、マーカー画像上で境界線のなす角度が９０度となるように、グレースケール画像を正規化変換する。このようなことから、実施例１によれば、例えば、境界線が直交するマーカーを撮影した画像の歪みを精度良く補正できる。
【００８２】
また、実施例１では、白領域と黒領域との交差点が存在する可能性が高いほど応答値が大きくなるフィルタを用いて正規化画像を走査し、正規化画像内でフィルタの応答値がピークとなる位置を取得する。このようなことから、実施例１によれば、マーカー画像上で特徴点となり得る白領域と黒領域との交差点を精度良く抽出できる。
【００８３】
また、実施例１では、上述したようにして取得した特徴点を用いて、撮影装置１００の位置や姿勢を算出する。このようなことから、一つのマーカーを撮影した画像であっても、キャリブレーション処理を安定して行うことができる。
【実施例２】
【００８４】
以下、本願の開示する画像処理プログラムおよび画像処理装置の他の実施形態を説明する。
【００８５】
（１）装置構成等
例えば、図１に示した画像処理装置２００の機能ブロックの構成は概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。例えば、図１に示した特徴点抽出ユニット２３０と、位置姿勢推定ユニット２４０とを機能的または物理的に統合してもよい。このように、図１に示した画像処理装置２００の機能ブロックの全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散または統合して構成することができる。
【００８６】
（２）画像処理プログラム
また、上述の実施例１にて説明した画像処理装置２００により実行される各種の処理は、例えば、車両に搭載されるＥＣＵ（Electronic  Control  Unit）に実装されたマイコンなどの電子機器で所定のプログラムを実行することによって実現することもできる。あるいは、上述の実施例１にて説明した画像処理装置２００により実行される各種の処理は、ロボットなどに実装されるマイクロプロセッサなどの電子機器で所定のプログラムを実行することによって実現することもできる。
【００８７】
そこで、以下では、図１１を用いて、上述の実施例１にて説明した画像処理装置２００により実行される処理と同様の機能を実現する画像処理プログラムを実行するコンピュータの一例を説明する。図１１は、画像処理プログラムを実行する電子機器の一例を示す図である。
【００８８】
図１１に示すように、画像処理装置２００により実行される各種処理を実現する電子機器３００は、各種演算処理を実行するＣＰＵ（Central  Processing  Unit）３１０を有する。また、図１１に示すように、電子機器３００は、カメラ画像を取得するためのカメラインターフェース３２０、ディスプレイとの間で各種データのやり取りを行うためのディスプレイインタフェース３３０を有する。また、図１１に示すように、電子機器３００は、カメラ画像から合成画像を生成するハードウェアアクセラレータとして機能するグラフィックエンジン３４０を有する。
【００８９】
また、図１１に示すように、電子機器３００は、ＣＰＵ３１０により各種処理を実現するためのプログラムやデータ等を記憶するハードディスク装置３５０と、各種情報を一時記憶するＲＡＭ（Random  Access  Memory）などのメモリ３６０とを有する。そして、各装置３１０〜３６０は、バス３７０に接続される。
【００９０】
なお、ＣＰＵ３１０の代わりに、例えば、ＭＰＵ（Micro  Processing  Unit）などの電子回路、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ(Field  Programmable  Gate  Array)などの集積回路を用いることもできる。また、メモリ３６０の代わりに、フラッシュメモリ(flash  memory)などの半導体メモリ素子を用いることもできる。
【００９１】
ハードディスク装置３５０には、画像処理装置２００の機能と同様の機能を発揮する画像処理プログラム３５１および画像処理用データ３５２が記憶されている。なお、この画像処理プログラム３５１を適宜分散させて、ネットワークを介して通信可能に接続された他のコンピュータの記憶部に記憶させておくこともできる。
【００９２】
そして、ＣＰＵ３１０が、画像処理プログラム３５１をハードディスク装置３５０から読み出してメモリ３６０に展開することにより、図１１に示すように、画像処理プログラム３５１は画像処理プロセス３６１として機能する。画像処理プロセス３６１は、ハードディスク装置３５０から読み出した画像処理用データ３５２等の各種データを適宜メモリ３６０上の自身に割当てられた領域に展開し、この展開した各種データに基づいて各種処理を実行する。
【００９３】
なお、画像処理プロセス３６１は、例えば、図１に示した画像処理装置２００の特徴点抽出ユニット２３０にて実行される処理、例えば、図８〜図１０に示す処理を含む。
【００９４】
なお、画像処理プログラム３５１については、必ずしも最初からハードディスク装置３５０に記憶させておく必要はない。例えば、電子機器３００が実装されたＥＣＵへ対応ドライブを接続可能なフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、電子機器３００がこれらから各プログラムを読み出して実行するようにしてもよい。
【００９５】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介して、電子機器３００が実装されたＥＣＵに接続される「他のコンピュータ（またはサーバ）」などに各プログラムを記憶させておく。そして、電子機器３００がこれらから各プログラムを読み出して実行するようにしてもよい。
【００９６】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９７】
（付記１）コンピュータに、
第一の色を有する複数の第一の領域と前記第一の色とは異なる第二の色を有する複数の第二の色領域とで形成される模様を有するマーカーを撮影した第一の画像上で、前記複数の第一の色領域と前記複数の第二の色領域とが交差する第一の点の位置を取得し、
前記第一の画像上で、前記第一の点を始点とする前記第一の色領域と前記第二の色領域との境界線の位置を取得し、
前記第一の点の位置と前記境界線上に存在する第二の点の位置と前記第一の画像に含まれる複数の画素の各位置と該複数の画素の各画素値とを用いて、前記複数の画素を他の各位置に該各画素値で配置した第二の画像に変換し、
前記第二の画像上を走査し、前記第一の点以外で、前記複数の第一の色領域と前記複数の第二の色領域とが交差する交差点が存在する可能性を示す期待値をそれぞれ取得し、
取得した前記期待値のそれぞれに基づいて前記第二の画像上における前記交差点の位置を取得し、
前記第二の画像に含まれる前記複数の画素の前記他の各位置を、前記第一の画像における前記各位置へ逆変換し、
前記第一の画像における前記第一の点の位置および前記交差点の位置をそれぞれ取得し、
取得した前記第一の点の位置および前記交差点の位置を前記模様の特徴点の位置として決定する
処理を実行させることを特徴とする画像処理プログラム。
【００９８】
（付記２）前記マーカー上の前記第一の色領域と前記第二の色領域との境界線は、前記第一の点で直交する複数の線分であり、前記第二の点は、該複数の線分上に各々存在する点であって、
前記第二の画像に変換する処理において、
前記第一の点と複数の前記第二の点の各々との距離に基づいて、前記第一の画像を前記第二の画像へ変換する処理の対象とする前記複数の画素を決定し、前記複数の線分のうちの第一の線分と、該第一の線分と隣り合う第二の線分とが、該第一の点で直交する前記第二の画像に、前記第一の画像を射影変換することを特徴とする付記１に記載の画像処理プログラム。
【００９９】
（付記３）前記交差点の位置を取得する処理は、前記第二の画像における前記第一の点に対応する第三の点と、該第二の画像における前記第二の点に対応する第四の点とを結ぶ線分の近傍に対して、前記交差点の形状に関連するフィルタを走査し、走査の結果得られるフィルタの応答値に基づいて前記第二の画像上における前記交差点の位置を取得することを特徴とする付記２に記載の画像処理プログラム。
【０１００】
（付記４）前記特徴点を用いて、前記マーカーを撮影したカメラの位置および姿勢を算出する処理をさらに実行させることを特徴とする付記１乃至付記３のいずれか一つに記載の画像処理プログラム。
【０１０１】
（付記５）複数の第一の色領域と前記第一の色領域とは異なる色を有する複数の第二の色領域とで形成される模様を有するマーカーを撮影した第一の画像上で、前記第一の色領域と前記第二の色領域とが交差する前記模様の中心点の位置を取得する中心点取得部と、
前記第一の画像上で、前記第一の色領域と前記第二の色領域との境界線の位置を取得する境界線取得部と、
前記中心点取得部により取得された中心点の位置と前記境界線取得部により取得された境界線の位置とを用いて、前記第一の画像を画像の歪みが補正された第二の画像に変換する変換部と、
前記第二の画像上を走査し、前記中心点以外で、前記第一の色領域と前記第二の色領域とが交差する点を含む領域である期待値をそれぞれ取得し、取得した各期待値に基づいて前記第二の画像上における前記交差する点の位置を取得する交差点取得部と、
前記第二の画像を画像の歪みが補正される前の前記第一の画像に逆変換することにより、前記中心点取得部により取得された中心点の位置と前記交差点取得部により取得された交差する点の位置に対応する前記第一の画像上の位置をそれぞれ取得し、取得した各位置に対応する各点を特徴点として決定する決定部と
を有することを特徴とする画像処理装置。
【０１０２】
（付記６）前記マーカー上の前記第一の色領域と前記第二の色領域との境界線は、前記第一の点で直交する複数の線分であり、前記第二の点は、該複数の線分上に各々存在する点であって、
前記変換部は、前記第一の点と複数の前記第二の点の各々との距離に基づいて、前記第一の画像を前記第二の画像へ変換する処理の対象とする前記複数の画素を決定し、前記複数の線分のうちの第一の線分と、該第一の線分と隣り合う第二の線分とが、該第一の点で直交する前記第二の画像に、前記第一の画像を射影変換することを特徴とする付記５に記載の画像処理装置。
【０１０３】
（付記７）前記交差点取得部は、前記第二の画像における前記第一の点に対応する第三の点と、該第二の画像における前記第二の点に対応する第四の点とを結ぶ線分の近傍に対して、前記交差点の形状に関連するフィルタを走査し、走査の結果得られるフィルタの応答値に基づいて前記第二の画像上における前記交差点の位置を取得することを特徴とする付記５または６に記載の画像処理装置。
【０１０４】
（付記８）前記特徴点を用いて、前記マーカーを撮影したカメラの位置および姿勢を算出する位置姿勢算出部をさらに有することを特徴とする付記５乃至付記７のいずれか一つに記載の画像処理装置。
【符号の説明】
【０１０５】
Ｍ１，Ｍ２  マーカー
１００  撮像装置
２００  画像処理装置
２１０  取得部
２２０  記憶部
２２１  画像記憶部
２３０  特徴点抽出ユニット
２３１  中心点取得部
２３２  生成部
２３３  抽出部
２３４  変換部
２３５  ピーク抽出部
２３６  逆変換部
２４０  位置姿勢推定ユニット
３００  電子機器
３１０  ＣＰＵ
３２０  カメラインターフェース
３３０  ディスプレイインタフェース
３４０  グラフィックエンジン
３５０  ハードディスク装置
３５１  画像処理プログラム
３５２  画像処理用データ
３６０  メモリ
３６１  画像処理プロセス
３７０  バス
【図１】
0005573618.tif 000008
【図２】
0005573618.tif 000009
【図３】
0005573618.tif 000010
【図４】
0005573618.tif 000011
【図５】
0005573618.tif 000012
【図６】
0005573618.tif 000013
【図７】
0005573618.tif 000014
【図８】
0005573618.tif 000015
【図９】
0005573618.tif 000016
【図１０】
0005573618.tif 000017
【図１１】
0005573618.tif 000018
【図１２】
0005573618.tif 000019
【図１３】
0005573618.tif 000020
【図１４】
0005573618.tif 000021
【図１５】
0005573618.tif 000022
【図１６】
0005573618.tif 000023