説明

画像処理プログラムおよび画像処理装置

【課題】一つのマーカーから複数の特徴点を安定して抽出することを課題とする。
【解決手段】画像処理装置200は、マーカー画像上の中心点の位置とマーカー画像上の境界線の位置とに基づいて、マーカー画像の歪みが補正されるように正規化変換する。次に、画像処理装置200は、白領域と黒領域との交差点が存在する可能性が高いほど大きな応答値が得られるフィルタを用いて正規化画像を走査し、フィルタの応答値がピークとなる正規化画像上の位置を取得する。そして、画像処理装置200は、正規化画像を逆変換することにより、正規化画像上でフィルタの応答値がピークとなる位置に対応するグレースケール画像上の位置を取得し、この位置を特徴点に決定する。

【発明の詳細な説明】
【技術分野】
【0001】
本願の開示する技術は、画像処理プログラムおよび画像処理装置に関連する。
【背景技術】
【0002】
例えば、カメラが搭載された車両やロボットなどに、カメラの取り付け位置や姿勢を確認し、カメラの取り付け位置や姿勢の設計上の値とのズレを校正する、いわゆるキャリブレーション処理が行われる。通常、このキャリブレーション処理は、カメラ撮影範囲内の既定の位置に設置したマーカーをカメラで撮影し、撮影された画像上におけるマーカーの位置、すなわち、画像上に現れるマーカーの特徴点の座標を利用することにより行われる。
【0003】
上述したマーカーには、マーカーを撮影した画像から特徴点を抽出しやすい模様を有するものが用いられる。例えば、図12は、マーカーの形状の一例を示す図である。図12に示すような形状を有するマーカーM1から、マーカーが有する模様の中心、つまり、異なる色領域を各々形作る境界線の交点を特徴点として抽出する公知技術がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2010−87743号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述したキャリブレーション処理において、例えば、図12に示すような一つのマーカーを撮影した画像から抽出される特徴点の数は一つとなるが、キャリブレーションを安定して行うためには複数の特徴点が必要となる。このため、上述したキャリブレーション処理では、カメラ撮影範囲内の既定の位置に複数のマーカーを設置し、複数のマーカーをカメラで撮影して、画像に映し出された各マーカーから特徴点をそれぞれ抽出することで対処していた。しかしながら、工場の敷地面積が狭いなど、作業環境によっては複数のマーカーを設置する場所を確保できない場合も考えられる。このような場合には、キャリブレーションを安定して行うことができない。
【0006】
開示の技術は、上記に鑑みてなされたものであって、一つのマーカーを撮影した画像から複数の特徴点を安定して抽出することが可能な画像処理プログラムおよび画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
本願の開示する技術は、一つの態様において、コンピュータに、次の各処理を実行させる。すなわち、コンピュータに、第一の色を有する複数の第一の領域と前記第一の色とは異なる第二の色を有する複数の第二の色領域とで形成される模様を有するマーカーを撮影する処理を実行させる。そして、コンピュータに、撮影した第一の画像上で、前記複数の第一の色領域と前記複数の第二の色領域とが交差する第一の点の位置を取得する処理を実行させる。また、コンピュータに、前記第一の画像上で、前記第一の点を始点とする前記第一の色領域と前記第二の色領域との境界線の位置を取得する処理を実行させる。また、コンピュータに、前記第一の点の位置と前記境界線上に存在する第二の点の位置と前記第一の画像に含まれる複数の画素の各位置と該複数の画素の各画素値とを用いて、前記複数の画素を他の各位置に該各画素値で配置した第二の画像に変換する処理を実行させる。また、コンピュータに、前記第二の画像上を走査し、前記第一の点以外で、前記複数の第一の色領域と前記複数の第二の色領域とが交差する交差点が存在する可能性を示す期待値をそれぞれ取得する処理を実行させる。また、コンピュータに、取得した前記期待値のそれぞれに基づいて前記第二の画像上における前記交差点の位置を取得する処理を実行させる。また、コンピュータに、前記第二の画像に含まれる前記複数の画素の前記他の各位置を、前記第一の画像における前記各位置へ逆変換する処理を実行させる。また、コンピュータに、前記第一の画像における前記第一の点の位置および前記交差点の位置をそれぞれ取得する処理を実行させる。また、コンピュータに、取得した前記第一の点の位置および前記交差点の位置を前記模様の特徴点の位置として決定する処理を実行させる。
【発明の効果】
【0008】
本願の開示する技術の一つの態様によれば、1つのマーカーを撮影した画像から複数の特徴点を安定して抽出できる。
【図面の簡単な説明】
【0009】
【図1】図1は、実施例1に係る画像処理装置の構成を示す機能ブロック図である。
【図2】図2は、実施例1に係る画像処理装置の説明に用いる図である。
【図3】図3は、実施例1に係る抽出部の説明に用いる図である。
【図4】図4は、実施例1に係る抽出部の説明に用いる図である。
【図5】図5は、実施例1に係る変換部の説明に用いる図である。
【図6】図6は、実施例1に係るピーク抽出部の説明に用いる図である。
【図7】図7は、実施例1に係るピーク抽出部の説明に用いる図である。
【図8】図8は、実施例1に係る画像処理装置による処理の全体的な流れを示す図である。
【図9】図9は、実施例1に係る正規化処理の流れを示す図である。
【図10】図10は、実施例1に係るピーク抽出処理の流れを示す図である。
【図11】図11は、画像処理プログラムを実行する電子機器の一例を示す図である。
【図12】図12は、マーカーの形状の一例を示す図である。
【図13】図13は、マーカーの形状の一例を示す図である。
【図14】図14は、マーカーM2の円周上の4点を安定して抽出するための一つの方法論の説明に用いる図である。
【図15】図15は、図14を用いて説明した方法論の問題点の説明に用いる図である。
【図16】図16は、図14を用いて説明した方法論の問題点の説明に用いる図である。
【発明を実施するための形態】
【0010】
以下に、図面を参照しつつ、本願の開示する画像処理プログラムおよび画像処理装置の一実施形態について詳細に説明する。なお、本願の開示する画像処理プログラムおよび画像処理装置の一実施形態として後述する実施例により、本願が開示する技術が限定されるものではない。以下の実施例では、本願の開示する画像処理プログラムおよび画像処理装置の一実施形態として、既定の位置に配置されたマーカー(冶具)を撮影した画像から、異なる色領域を各々形作る境界線の交点を特徴点として複数抽出する方法を説明する。
【実施例1】
【0011】
上述した図12に示すマーカーM1は、マーカーM1の外延が背景と接した状態で撮影されるので、マーカーM1を撮影した画像上で、マーカーM1と背景との切り離しが容易な模様が望ましい。そこで、図12のマーカーM1よりも、より背景との切り離しが容易なマーカーの形状として、図13に示すような形状が考えられる。図13は、マーカーの形状の一例を示す図である。
【0012】
図13に示すような形状を有するマーカーM2は、模様の中心、つまり、異なる色領域を各々形作る境界線の交点の内の1点を中心として持つ円形部分と、この円形領域を取り囲む部分とを有する。このように、マーカーM2の円形部分を取り囲む領域を設けると、マーカーM2の円形部分が背景に依存することがないので、マーカーM2の円形部分の境界が鮮明に映った画像を得ることができる。よって、マーカーM2を用いてキャリブレーション処理を行えば、マーカーM2と背景との切り離しが容易となるので、マーカーM2の円形部分の模様の中心、つまり、異なる色領域を各々形作る境界線の交点である特徴点の抽出精度を向上できる。
【0013】
また、例えば、図13に示すマーカーM2の異なる色領域を各々形作る境界線の交点(以下、交差点と表記する)は、マーカーM2の円形部分の模様の中心1点、およびマーカーM2の円形部分の円周上に現れる4点の計5点となる。よって、マーカーM2の円形部分の模様の中心1点以外で、マーカーM2の交差点を全て特徴点として抽出できれば、一つのマーカーM2を撮影した画像から計5点の特徴点を抽出できることとなる。したがって、複数のマーカーを設置する場所を確保できない場合であっても、キャリブレーションを安定して行うことができる。
【0014】
そこで、例えば、上述した公知技術を用いて、図13に示すマーカーM2が有する異なる色の交点を全て特徴点として抽出することを考える。例えば、上述した公知技術は、図12に示すマーカーM1を撮影した画像から、それぞれの色領域の境界線を検出し、2つの境界線の交点を特徴点として抽出する。
【0015】
よって、上述した公知技術は、図12に示すマーカーM1と同様に、図13に示すマーカーM2を撮影した画像から、円形部分の中心を特徴点として抽出することが可能である。ここで、上述した公知技術は、マーカーM2の円形部分の円周上に現れる4点を特徴点として抽出する場合、異なる色の境界線である直線に加えて、円周の部分の曲線を抽出することとなる。
【0016】
しかし、マーカーM2を撮影した画像では、マーカーM2の円形部分の円周に対応する曲線が、カメラの設置位置とマーカーM2の設置位置との位置関係によって、円弧ではない歪んだ曲線になる恐れがある。このため、上述した公知技術では、マーカーM2の円形部分の円周上に現れる4点を特徴点として抽出することができない場合が考えられる。特に、マーカーは、カメラの正面方向から水平方向に離れた位置に設置されることが多いため、カメラの正面から離れた場所の物体ほど、撮影画像において、歪みが生じる。このように歪んだ画像としてマーカー画像が取得された場合は、画像から特徴点を抽出する精度が低下する。例えば、フィルタマッチング等で特徴点抽出を行う場合は、フィルタとマッチングする画像が歪んでいると特徴点を検出できない。
【0017】
さらに、レンズの影響によりマーカーM2の画像が歪んだり、照明の影響によりマーカーM2の画像が不鮮明となったりした場合には、画像内の境界線や異なる色の交点が不鮮明になってしまう。このような場合にも、上述した公知技術では、マーカーM2の円周上の4点を安定して抽出することができない。
【0018】
そこで、取得画像の歪みを補正することで、特徴点を安定的に抽出することが考えられる。例えば、図14を用いて、マーカーM2の円周上の4点を安定して抽出するための一つの方法論を説明する。図14は、マーカーM2の円周上の4点を安定して抽出するための一つの方法論の説明に用いる図である。
【0019】
例えば、図14のように歪んだマーカーM2の画像Aが得られた場合、図14に示す画像A´のように歪みが解消された状態に変換することで、特徴点を抽出することが考えられる。まず、上述した公知技術を用いて、図14に示すマーカーM2の交差する境界線である線分P1P3および線分P2P4を画像Aから検出する。続いて、図14に示す四角形P1P2P3P4が、図14に示す正方形P1´P2´P3´P4´となるように変換する。このような変換は射影変換、あるいはホモグラフィとして知られている(佐藤他、「コンピュータビジョン―視覚の幾何学―」、コロナ社、1999年等参照)。なお、射影変換においては、元画像において検出した線分の交差角を90度とするように変換を行う。言い換えると、元画像で検出した線分がそもそも90度で交差しないような線分を検出してしまった場合は、変換後の画像は歪みを解消した画像とはならない。
【0020】
図14に示すように、歪んだマーカーM2の画像Aを画像A´のように歪みが解消された状態に変換できれば、上述した公知技術を応用することで、円周の曲線を検出し、円周の曲線と上述した2つの線分との交点から円周上の4点を抽出できる。ただし、上述してきた方法論を用いても、曲線を抽出すること自体の技術的困難性や、画像が不鮮明である場合の抽出精度の低下などの問題は残り、マーカーM2の円周上の4点を安定して抽出することができないという点を解消できない。
【0021】
また、図14を用いて説明した方法論には、例えば、図15および図16に示すような問題がある。図15および図16は、図14を用いて説明した方法論の問題点の説明に用いる図である。図14を用いて説明した方法論では、マーカーM2の交差する境界線(線分P1P3および線分P2P4)が直線となることを前提としている。
【0022】
しかし、図15に示すマーカーM2の画像Bように、中心を通る線分を検出したとしても、レンズ歪みが非線形であることや、照明の影響で画像が不鮮明になってしまうことから、線分が各領域の境界線と一致しない場合がある。例えば、元画像において、中心から両方向に伸びる境界線が中心を境に異なる直線として取得された場合は、境界線として抽出した線分は異なる2線分の近似直線の一部となる。また、元画像における歪みによって境界が曲線として取得された場合も、境界線として抽出した線分は、曲線を直線近似したものとなる。このような状況で、四角形P1P2P3P4を正方形P1´P2´P3´P4´となるように変換を行うと、例えば、図15に示す画像B´のように、マーカーM2の交差する境界線が大きく歪んだ画像となってしまう。
【0023】
また、図16に示すマーカーM2の画像Cに映し出されたマーカーM2の4隅の点P1〜P4を結んでできる四角形P1P2P3P4を正方形P1´P2´P3´P4´となるように変換を行ったとしても、図16に示す画像C´のように変換されてしまう。つまり、この場合も、上述した図15に示す画像B´と同様に歪んだ画像となってしまう。これは、図15に示す場合と同様の理由から、マーカーM2の画像C上におけるマーカーM2の交差する境界線、つまり四角形P1P2P3P4の対角線が必ずしも直線とはならないことを原因とする。図15および図16に示す場合のいずれにしても、正規化変換後のマーカーM2の画像は歪んだままであるので、図14を用いて説明した方法論では、マーカーM2の円周上の4点を安定して抽出することはできない。
【0024】
以下に説明する実施例では、図15や図16などを用いて説明した問題点に鑑み、一つのマーカーを撮影した画像から複数の特徴点を安定して抽出するための一実施形態について説明する。
【0025】
[画像処理装置の構成(実施例1)]
図1は、実施例1に係る画像処理装置の構成を示す機能ブロック図である。図1に示すように、実施例1に係る画像処理装置200は撮影装置100と接続する。撮影装置100は、既定の位置に配置されたマーカーの画像を撮影する。
【0026】
また、図1に示すように、画像処理装置200は、取得部210と、記憶部220と、特徴点抽出ユニット230と、位置姿勢推定ユニット240とを有する。そして、画像処理装置200は、撮影装置100により撮影されたマーカーの画像を取得し、取得した画像から複数の特徴点を抽出する。ここで、図1の説明を行う前に、図2を用いて、画像処置装置200について説明する。図2は、実施例1に係る画像処理装置の説明に用いる図である。図2には、画像処置装置により実施される処理の経過を示している。
【0027】
例えば、画像処理装置200は、特徴点の抽出に採用するマーカーとして、図13に示すマーカーM2を利用する。マーカーM2は、例えば、40センチメートル程度の正方形の中心部に円形の部分を有し、白色の白領域と黒色の黒領域とが互い違いの模様となっている。また、マーカーM2の円形の部分は、マーカーM2の中心を挟んで対向する白領域の対と、マーカーM2の中心を挟んで対向する黒領域の対とを有する。マーカーM2を、例えば、白色の白領域と黒色の黒領域とが互い違いの模様とするのは、マーカーM2の円形部分の中心が特徴点としてマーカーM2の画像上で高精度に現れるようにする意図がある。また、マーカーM2の円形部分を取り囲む領域も白領域と黒領域とが互い違いの模様とするのは、マーカーM2が配置される床面や背景に関する画像に影響されず、マーカーM2の円形部分の境界がマーカーM2の画像上で鮮明に現れるようにする意図がある。
【0028】
なお、画像処理装置200は、図13に示すマーカーM2を利用する場合に限られるものではない。図12に示すマーカーM1を利用することもできる。例えば、マーカーM2の円形部分を図12に示すマーカーM1のような四角形とし、この四角形の領域を取り囲む領域を設け、全体として白領域と黒領域とが互い違いの模様を有する四角形のマーカーを採用することもできる。
【0029】
図2に戻り、画像処置装置200は、(1)に示すように、マーカーM2を撮影した画像が有する各ピクセルの輝度値を変換したグレースケール画像上で、マーカーM2の中心点P0の位置を取得する。次に、画像処理装置200は、(2)に示すように、グレースケール画像上で、中心点P0から放射状に伸びる白領域と黒領域との境界線L1、L2、L3、L4の位置を取得する。続いて、画像処理装置200は、(3)に示すように、中心点P0の位置と、境界線L1、L2、L3、L4の位置とに基づいてグレースケール画像の歪みが補正されるように正規化変換する。そして、画像処理装置200は、(4)に示すように、白領域を形作る境界線と黒領域を形作る境界線との交点である交差点が存在する可能性が高いほど大きな応答値が得られるフィルタを用いて、正規化変換した画像を走査してフィルタの応答値を得る。
【0030】
次に、画像処置装置200は、図2の(5)に示すように、フィルタの応答値がピークとなる位置を抽出する。続いて、画像処置装置200は、(6)に示すように、正規化変換した画像上で、フィルタの応答値がピークとなる位置を取得する。次に、画像処置装置200は、(7)に示すように、正規化変換した画像を逆変換してグレースケール画像に戻し、正規化変換した画像上でフィルタの応答値がピークとなる位置に対応するグレースケール画像上の位置を取得する。そして、画像処理装置200は、取得したグレースケール画像上の位置を特徴点に決定する。
【0031】
図1に戻り、取得部210は、撮影装置100により撮影されたマーカーM2の画像を取得する。取得部210は、取得したマーカーM2の画像を記憶部220に格納する。
【0032】
記憶部220は、図1に示すように、画像記憶部221を有する。なお、記憶部220は、例えば、RAM(Random Access Memory)やフラッシュメモリ(flash memory)などの半導体メモリ素子である。画像記憶部221は、取得部210により取得されたマーカーM2の画像を記憶する。
【0033】
特徴点抽出ユニット230は、図1に示すように、中心点取得部231と、生成部232と、抽出部233と、変換部234と、ピーク抽出部235と、逆変換部236とを有する。なお、特徴点抽出ユニット230は、例えば、電子回路や集積回路に該当する。電子回路としては、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)がある。また、集積回路としては、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などがある。
【0034】
中心点取得部231は、画像記憶部221からマーカーM2の画像(以下、「原画像」と表記する)を取得し、原画像上で、白色の白領域と黒色の黒領域とが交差するマーカーM2の中心点の位置を取得する。例えば、中心点取得部231は、原画像のエッジを検出し、検出したエッジが交差する点のうち、よりマーカーM2の中心に近い点の位置を中心点の位置として取得する。
【0035】
あるいは、中心点取得部231は、原画像におけるマーカーM2の白領域および黒領域の各色領域を楕円形状に近づくまで夫々繰り返し縮退し、縮退された各色領域の位置関係に基づいてマーカーM2の中心点の位置を取得してもよい。発明者は、マーカーM2の円形部分の色領域がマーカーM2の画像内の他の領域と完全に分離した状態では楕円形状性を有する点を発見した。そこで、中心点取得部231は、まず、マーカーM2の円形部分の色領域が楕円形状性を有するまで繰り返し縮退する。縮退により、マーカーM2の円形部分の色領域を完全に分離させた後、中心点取得部231は、マーカーM2の中心を挟んで対向するようにそれぞれ配置される色領域の位置関係に基づいて、マーカーM2の中心点の位置を取得する。
【0036】
生成部232は、画像記憶部221から原画像を取得し、原画像の輝度値を変換することによりグレースケール画像を生成する。なお、生成部232は、原画像がRGBカラー画像である場合には、各ピクセルについて、例えば、以下に示す式(1)を用いて、R、G、Bの値を輝度値Yに変換することにより、グレースケール画像を生成する。
【0037】
【数1】

【0038】
抽出部233は、生成部232により生成されたグレースケール画像上で、マーカーM2の中心から放射状に延びる白領域と黒領域との境界線の位置を、中心から見た所定位置の仰角として、放射線ごとに取得する。以下、図3および図4を用いて、抽出部233について説明する。図3および図4は、実施例1に係る抽出部の説明に用いる図である。
【0039】
図3に示すG1はグレースケール画像を示し、以下に説明する実施例中、「グレースケール画像G1」と表記するものとする。また、図3に示すC(x0,y0)は、グレースケール画像G1におけるマーカーM2の中心点を示し、以下に説明する実施例中、「中心点C」と表記するものとする。図3に示すG2はエッジ画像を示し、以下に説明する実施例中、「エッジ画像G2」と表記するものとする。
【0040】
図3に示すように、抽出部233は、公知の技術を利用することにより、グレースケール画像G1のエッジを検出してエッジ画像G2を取得する。なお、公知技術としては、グレースケール画像G1をCannyオペレータなどのエッジ検出フィルタで走査することによりエッジを検出したり、グレースケール画像G1を2値化した後に白領域と黒領域との境界にあるピクセルを検出したりするなど方法がある。次に、抽出部233は、エッジ画像G2に対して任意に0度の方向を設定する。続いて、抽出部233は、中心点Cを中心として、0度の方向から反時計回りにエッジの角度方向をとっていく。そして、図4に示すように、抽出部233は、エッジの角度方向ごとに、エッジとして検出されたピクセル数を計数したヒストグラムを作成する。抽出部233は、図4に示すヒストグラムでピクセル数がピークを示す4つの位置を、マーカーM2の中心点Cから放射状に伸びる白領域と黒領域との4つの境界線の位置としてそれぞれ取得する。
【0041】
変換部234は、中心点Cの位置と4つの境界線の位置とを用いて、グレースケール画像G1の画像の歪みが補正されるように正規化変換する。例えば、変換部234は、隣り合う2つの境界線が中心点Cの位置で直交するように、グレースケール画像G1を正規化変換する。つまり、マーカーM2では、マーカーの中心で、白領域と黒領域との境界線が直交している点を考慮するものである。以下、図5を用いて、変換部234について説明する。
【0042】
図5は、実施例1に係る変換部の説明に用いる図である。図5に示すG3は正規化後の画像を示す。図5に示す(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)は、中心点Cから各境界線の方向に所定の距離だけ離れた4つの点の座標を表す。所定の距離は、マーカーM2の端に届く程度が望ましく、例えば、マーカーM2のサイズからあらかじめ設定しておいてもよいし、あるいは、マーカーM2の白(または黒)領域の重心位置と中心点Cとの距離の2倍〜3倍程度としてもよい。マーカーM2のサイズとマーカーM2が有する円形部分のサイズの比率や、重心位置の抽出精度にもよるが、おおよそ2倍〜3倍程度でマーカーM2の端に届くものと考えられる。なお、重心位置の抽出方法は、公知の領域ベースの手法を用いればよい。また、図5の左に示す点線枠に含まれる画素を、変換の対象として、以下説明するが、本発明はこれに限られない。例えば、座標(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)で囲まれる領域に含まれる画素を、変換の対象とすることで、処理の高速化を図ることもできる。
【0043】
また、図5に示す「α」、「β」は、グレースケール画像G1の点(画素)を表し、図5に示す「α´」、「β´」は、「α」および「β」に対応する正規化後の画像G3上の点(画素)を表す。
【0044】
まず、変換部234は、グレースケール画像G1を取得し、マーカーM2の中心点Cの座標(X0,Y0)と、マーカーM2の境界線上の座標(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)をそれぞれ取得する。次に、変換部234は、正規化後の画像サイズ(例えば、2A)を決定し、正規化後の画像G3上の点(画素)の位置を格納するバッファを確保する。続いて、変換部234は、図5に示すように、4つの境界線で区切られるグレースケール画像G1の領域ごとに、領域内の各画素の画素値を、正規化後の画像G3上の対応画素に配置することにより、グレースケール画像G1を正規化後の画像G3に変換する。例えば、この変換は、グレースケール画像G1上の点の座標を(x,y)、この点の座標(x,y)に対応する正規化後の画像上の座標を(x´,y´)とすると、行列Hを用いて、以下に示す式(2)で表される。
【0045】
【数2】

【0046】
例えば、変換部234は、正規化後の画像を4つの領域に場合分けし、各領域について、座標(x,y)と座標(x´,y´)との対応関係が定式化された行列Hを算出する。このとき、変換部234は、以下の前提条件を定義する。なお、以下では、グレースケール画像G1を「画像G1」と表記し、正規化後の画像G3を「画像G3」と表記するものとする。変換部234は、画像G1上の座標(x0,y0)、(x1,y1)、(x2,y2)、(x3,y3)および(x4,y4)が、画像G3上の点(A,A)、(2A,A)、(A,2A)、(0,A)および(A,0)にそれぞれ対応するものと定義する。このように定義された前提条件の元で正規化された画像G3は、X=Aの直線とY=Aの直線とのなす角が90度になる。ここで、2Aは正規化後の画像の正方形の一辺の長さであり、言い換えれば、正規化後の画像のサイズに該当し、所定の値(例えば、A=100)が与えられる。
【0047】
例えば、変換部234は、正規化後の画像上の座標(x´,y´)が、正規化後の画像の4つの領域のうち「A≦x´≦2A,かつA≦y´≦2A」の領域にある場合には、以下に示す式(3)により行列Hを算出する。
【0048】
【数3】

【0049】
また、変換部234は、正規化後の画像上の座標(x´,y´)が、正規化後の画像の4つの領域のうち「0≦x´<A,かつA≦y´≦2A」の領域にある場合には、以下に示す式(4)により行列Hを算出する。
【0050】
【数4】

【0051】
また、変換部234は、正規化後の画像上の座標(x´,y´)が、正規化後の画像の4つの領域のうち「0≦x´<A,かつ0≦y´<A」の領域にある場合には、以下に示す式(5)により行列Hを算出する。
【0052】
【数5】

【0053】
また、変換部234は、正規化後の画像上の座標(x´,y´)が、正規化後の画像の4つの領域のうち「A≦x´≦2A,かつ0≦y´<A」の領域にある場合には、以下に示す式(6)により行列Hを算出する。
【0054】
【数6】

【0055】
続いて、変換部234は、上述した式(3)〜(6)のいずれかにより算出された行列Hを上述した式(2)に代入し、この式(2)を用いて、画像G1の座標(x,y)を算出する。そして、変換部234は、画像G1の座標(x,y)の画素値を取得し、取得した値を画像G1の座標(x,y)に対応する画像G3の座標(x´,y´)の画素値としてバッファに格納する。以上で、変換部234による変換が完了する。
【0056】
図1に戻り、ピーク抽出部235は、白領域と黒領域との交差点が存在する可能性が高いほど大きな応答値を得られるフィルタを用いて、正規化変換した画像を走査してフィルタの応答値を取得し、取得した応答値のピークを取得する。以下、図6および図7を用いてピーク抽出部235について説明する。図6および図7は、実施例1に係るピーク抽出部235の説明に用いる図である。
【0057】
図6に示すF1は、白領域と黒領域との交差点が存在する可能性が高いほど大きな応答値を得られるフィルタを示し、例えば、「Haar−Like特徴量」をフィルタパターンとして抽出するフィルタなどに該当する。
【0058】
例えば、ピーク抽出部235は、正規化後の画像G3を取得し、フィルタF1のサイズKを決定する。なお、フィルタF1のサイズKは、例えば、正規化後の画像G3の10分の1程度の大きさが適当である。次に、ピーク抽出部235は、フィルタ対象領域の幅Bを決定する。なお、フィルタ対象領域の幅Bは、例えば、フィルタF1のサイズKの2分の1程度の大きさが適当であり、少なくとも、マーカーM2の円周上の白領域と黒領域との交差点が含まれるようにフィルタリングできればよい。
【0059】
続いて、ピーク抽出部235は、フィルタ対象領域として領域1、領域2、領域3および領域4を定義する。例えば、幅Bでy´軸上およびx´軸上を走査する場合、ピーク抽出部235は、上述した領域1〜4の範囲を以下のように定義する。
領域1:A<x´<2A,A−B<y´<A+B
領域2:0<x´<A,A−B<y´<A+B
領域3:A−B<x´<A+B,A<y´<2A
領域4:A−B<x´<A+B,0<y´<A
【0060】
そして、ピーク抽出部235は、サイズKのフィルタF1を用いて、各フィルタ対象領域(領域1〜領域4)を走査し、各領域においてフィルタの応答値がピークとなる正規化後の画像G3上の点の座標(x´,y´)を取得する。例えば、図7に、X軸上を走査したときのフィルタ応答の一例を示す。図7に示すように、x´の値が0.2A、1.6Aでフィルタの応答値がピーク(最大値)となっている。なお、x´の値が1.6Aであるときのフィルタの応答値は、上述した領域1をフィルタ対象領域として処理したときに得られる値である。また、x´の値が0.2Aであるときのフィルタ応答値は、上述した領域2をフィルタ対象領域として処理したときに得られる値である。そこで、ピーク抽出部235は、上述した領域1をフィルタ対象領域として処理した場合には、フィルタの応答値がピークとなる正規化後の画像G3上の点の座標として、(x´,y´)=(1.6A,A)を取得する。また、ピーク抽出部235は、上述した領域2をフィルタ対象領域として処理した場合には、フィルタの応答値がピークとなる正規化後の画像G3上の点の座標として、(x´,y´)=(0.2A,A)を取得する。同様に、ピーク抽出部235は、領域3および領域4をフィルタ対象領域として処理した場合にも、フィルタの応答値がピークとなる正規化後の画像G3上の点の座標を取得する。なお、ピーク抽出部235による処理は、変換部234により上述したような方法で正規化された画像上であっても、白領域と黒領域との交差点が存在する微小領域では、マーカーM2のように白領域と黒領域との境界線が直交している点に着目するものである。
【0061】
図1に戻り、逆変換部236は、上述した式(2)を用いて、フィルタの応答値がピークとなる正規化後の画像G3上の点の座標を、グレースケール画像G1上の点の座標に逆変換する。そして、逆変換部236は、逆変換の結果得られた座標をマーカーM2の原画像上の特徴点の位置に決定し、位置姿勢推定ユニット240に送出する。
【0062】
位置姿勢推定ユニット240は、特徴点抽出ユニット230から送出された特徴点の位置(座標)に基づいて、マーカーM2の画像を撮影した撮影装置100の位置および姿勢を算出する。なお、位置姿勢推定ユニット240は、例えば、電子回路や集積回路に該当する。電子回路としては、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)がある。また、集積回路としては、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などがある。
【0063】
[画像処理装置による処理(実施例1)]
図8〜図10を用いて、実施例1に係る画像処理装置200による処理の流れを説明する。図8は、実施例1に係る画像処理装置による処理の全体的な流れを示す図である。図9は、実施例1に係る正規化処理の流れを示す図である。図10は、実施例1に係るピーク抽出処理の流れを示す図である。実施例1に係る画像処理装置200は、画像を取得するたびに図8〜10に示す処理を実行する。なお、以下に記載するマーカー画像とは、マーカーM2を撮影した原画像を示すものとする。
【0064】
まず、図8を用いて、実施例1に係る画像処理装置による処理の全体的な流れを説明する。図8に示すように、中心点取得部231は、画像記憶部221からマーカーの画像I(x,y)を取得し(ステップS101)、白色の白領域と黒色の黒領域とが交差するマーカーの中心点の位置を取得する(ステップS102)。次に、生成部232は、画像記憶部221からマーカー画像を取得し、マーカー画像の輝度値を変換することによりグレースケール画像を生成する(ステップS103)。
【0065】
続いて、抽出部233は、ステップS102にて生成されたグレースケール画像上で、マーカーの中心から放射状に延びる白領域と黒領域との4つの境界線の位置を抽出する(ステップS104)。そして、変換部234は、ステップS102にて取得された中心点の位置と、ステップS104にて抽出された4つの境界線の位置とを用いて、ステップS103にて生成されたグレースケール画像の歪みを補正する正規化処理を実行する(ステップS105)。なお、ステップS105の正規化処理については、図9を用いて後述する。
【0066】
次に、ピーク抽出部235は、白領域と黒領域との交差点が存在する可能性が高いほど大きな応答値を得られるフィルタを用いて、ステップS105の正規化処理により得られる正規化後の画像を走査するピーク抽出処理を実行する(ステップS106)。なお、ステップS106のピーク抽出処理については、図10を用いて後述する。
【0067】
続いて、逆変換部236は、ステップS106のピーク抽出処理により得られるフィルタの応答値がピークとなるときの正規化後の画像G3上の点の座標(x´,y´)を、グレースケール画像G1上の点の座標(x,y)に逆変換する(ステップS107)。そして、逆変換部236は、ステップS107の結果をマーカー画像の特徴点の位置に決定し、位置姿勢推定ユニット240に送出する(ステップS108)。
【0068】
次に、図9を用いて、上述したステップS105の正規化処理の流れを説明する。図9に示すように、変換部234は、グレースケール画像I(x,y)を取得する(ステップS201)。次に、変換部234は、マーカーの中心点の座標(x0,y0)を取得し(ステップS202)、マーカーの境界線上の座標(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)をそれぞれ取得する(ステップS203)。続いて、変換部234は、正規化後の画像サイズを2Aに決定し(ステップS204)、正規化後の画像上の各点の画素値を格納するバッファI´(x´,y´)を確保する(ステップS205)。
【0069】
次に、変換部234は、正規化後の画像を4つの領域に場合分けし、ステップS206〜ステップS218までの処理を実行する。言い換えれば、変換部234は、4つに場合分けされた正規化後の画像の領域ごとに上述した行列Hを算出する処理(ステップS208〜ステップS216)を、0≦x´≦2Aおよび0≦y´≦2Aの範囲内で繰り返し実行する。なお、ステップS206、S207、S217、S218は、0≦x´≦2Aおよび0≦y´≦2Aの範囲内で、x´の値およびy´の値を1ずつインクリメントしながらステップS208〜S216までの処理を繰り返すことを意味する。
【0070】
まず、変換部234は、正規化後の画像上の座標(x´,y´)が、「A≦x´≦2A,かつA≦y´≦2A」の領域にあるか否かを判定する(ステップS208)。判定の結果、正規化後の画像上の座標(x´,y´)が、「A≦x´≦2A,かつA≦y´≦2A」の領域にある場合には(ステップS208,Yes)、変換部234は、上述した式(3)により行列Hを算出する(ステップS209)。
【0071】
一方、判定の結果、正規化後の画像上の座標(x´,y´)が、「A≦x´≦2A,かつA≦y´≦2A」の領域にない場合には(ステップS208,No)、変換部234は、次の判定を行う。すなわち、変換部234は、正規化後の画像上の座標(x´,y´)が、「0≦x´<A,かつA≦y´≦2A」の領域にあるか否かを判定する(ステップS210)。判定の結果、正規化後の画像上の座標(x´,y´)が、「0≦x´<A,かつA≦y´≦2A」の領域にある場合には(ステップS210,Yes)、変換部234は、上述した式(4)により行列Hを算出する(ステップS211)。
【0072】
一方、判定の結果、正規化後の画像上の座標(x´,y´)が、「0≦x´<A,かつA≦y´≦2A」の領域にない場合には(ステップS210,No)、変換部234は、次の判定を行う。すなわち、変換部234は、正規化後の画像上の座標(x´,y´)が、「0≦x´<A,かつ0≦y´<A」の領域にあるか否かを判定する(ステップS212)。判定の結果、正規化後の画像上の座標(x´,y´)が、「0≦x´<A,かつ0≦y´<A」の領域にある場合には(ステップS212,Yes)、変換部234は、上述した式(5)により行列Hを算出する(ステップS213)。
【0073】
一方、判定の結果、正規化後の画像上の座標(x´,y´)が、「0≦x´<A,かつ0≦y´<A」の領域にない場合には(ステップS212,No)、変換部234は、次のように処理を行う。すなわち、変換部234は、正規化後の画像上の座標(x´,y´)が、「A≦x´≦2A,かつ0≦y´<A」の領域にあるものと判定し、上述した式(6)により行列Hを算出する(ステップS214)。
【0074】
上述したステップS209、ステップS211、ステップS213、ステップS214のいずれかで行列Hが算出された後、変換部234は、上述した式(2)を用いて、次のステップS215の処理を実行する。すなわち、変換部234は、上述した式(2)を用いて、正規化後の画像上の座標(x´,y´)に対応するグレースケール画像I(x,y)上の座標(x,y)を算出する(ステップS215)。そして、変換部234は、ステップ215により算出した座標(x,y)の画素値を取得し、取得した画素値を正規化後の画像上の座標(x´,y´)に対応づけてバッファI´(x´,y´)に格納する(ステップS216)。
【0075】
ステップS206〜ステップS218までの処理を完了すると、変換部234は、バッファI´(x´,y´)に格納されているデータをピーク抽出部235に送出する(ステップS219)。以上で、変換部234は処理を完了する。
【0076】
続いて、図10を用いて、上述したステップS106のピーク抽出処理の流れを説明する。図10に示すように、ピーク抽出部235は、正規化後の画像I´(x´,y´)を取得し(ステップS301)、フィルタのサイズKを決定する(ステップS302)。次に、ピーク抽出部235は、フィルタ対象領域の幅Bを決定する(ステップS303)。続いて、ピーク抽出部235は、フィルタ対象領域として領域1、領域2、領域3および領域4を定義する(ステップS304)。
【0077】
次に、ピーク抽出部235は、ステップS305〜ステップS309までの処理を実行する。言い換えれば、変換部234は、ステップS304で定義した領域1、領域2、領域3および領域4の全てについて、ステップS306〜ステップS308までの処理が完了するまで繰り返し実行する。なお、ステップS305、S309は、領域1、領域2、領域3および領域4の全てについて、ステップS306〜S308までの処理を繰り返すことを意味する。
【0078】
まず、ピーク抽出部235は、領域i(i=1,2,3,4のいずれか)にフィルタ(サイズK)をかけて、フィルタの応答値F(x´,y´)をそれぞれ取得する(ステップS306)。次に、ピーク抽出部235は、領域i(例えば、i=1)について得られたフィルタの応答値F(x´,y´)のうちの最大値Fmaxを取得する(ステップS307)。そして、ピーク抽出部235は、ステップS307で取得した最大値Fmaxに対応する正規化画像I´(x´,y´)上の座標(x´,y´)を取得する(ステップS308)。
【0079】
ステップS305〜S309までの処理を完了すると、各領域i(i=1,2,3,4)のFmaxに対応する座標(x´,y´)を逆変換部236に送出する(ステップS310)。以上で、ピーク抽出部235は処理を完了する。
【0080】
[実施例1による効果]
上述してきたように、画像処理装置200は、マーカー画像上の中心点の位置とマーカー画像上の境界線の位置とに基づいて、マーカー画像の歪みが補正されるように正規化変換する。次に、画像処理装置200は、白領域と黒領域との交差点が存在する可能性が高いほど大きな応答値が得られるフィルタを用いて正規化画像を走査し、フィルタの応答値がピークとなる正規化画像上の位置を取得する。続いて、画像処理装置200は、正規化画像上でフィルタの応答値がピークとなる位置を取得する。そして、画像処理装置200は、正規化画像を逆変換することにより、正規化画像上でフィルタの応答値がピークとなる位置に対応するグレースケール画像上の位置を取得し、この位置を特徴点に決定する。このようなことから、実施例1によれば、一つのマーカーから複数の特徴点を安定して抽出できる。
【0081】
また、実施例1では、マーカー画像上で境界線のなす角度が90度となるように、グレースケール画像を正規化変換する。このようなことから、実施例1によれば、例えば、境界線が直交するマーカーを撮影した画像の歪みを精度良く補正できる。
【0082】
また、実施例1では、白領域と黒領域との交差点が存在する可能性が高いほど応答値が大きくなるフィルタを用いて正規化画像を走査し、正規化画像内でフィルタの応答値がピークとなる位置を取得する。このようなことから、実施例1によれば、マーカー画像上で特徴点となり得る白領域と黒領域との交差点を精度良く抽出できる。
【0083】
また、実施例1では、上述したようにして取得した特徴点を用いて、撮影装置100の位置や姿勢を算出する。このようなことから、一つのマーカーを撮影した画像であっても、キャリブレーション処理を安定して行うことができる。
【実施例2】
【0084】
以下、本願の開示する画像処理プログラムおよび画像処理装置の他の実施形態を説明する。
【0085】
(1)装置構成等
例えば、図1に示した画像処理装置200の機能ブロックの構成は概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。例えば、図1に示した特徴点抽出ユニット230と、位置姿勢推定ユニット240とを機能的または物理的に統合してもよい。このように、図1に示した画像処理装置200の機能ブロックの全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散または統合して構成することができる。
【0086】
(2)画像処理プログラム
また、上述の実施例1にて説明した画像処理装置200により実行される各種の処理は、例えば、車両に搭載されるECU(Electronic Control Unit)に実装されたマイコンなどの電子機器で所定のプログラムを実行することによって実現することもできる。あるいは、上述の実施例1にて説明した画像処理装置200により実行される各種の処理は、ロボットなどに実装されるマイクロプロセッサなどの電子機器で所定のプログラムを実行することによって実現することもできる。
【0087】
そこで、以下では、図11を用いて、上述の実施例1にて説明した画像処理装置200により実行される処理と同様の機能を実現する画像処理プログラムを実行するコンピュータの一例を説明する。図11は、画像処理プログラムを実行する電子機器の一例を示す図である。
【0088】
図11に示すように、画像処理装置200により実行される各種処理を実現する電子機器300は、各種演算処理を実行するCPU(Central Processing Unit)310を有する。また、図11に示すように、電子機器300は、カメラ画像を取得するためのカメラインターフェース320、ディスプレイとの間で各種データのやり取りを行うためのディスプレイインタフェース330を有する。また、図11に示すように、電子機器300は、カメラ画像から合成画像を生成するハードウェアアクセラレータとして機能するグラフィックエンジン340を有する。
【0089】
また、図11に示すように、電子機器300は、CPU310により各種処理を実現するためのプログラムやデータ等を記憶するハードディスク装置350と、各種情報を一時記憶するRAM(Random Access Memory)などのメモリ360とを有する。そして、各装置310〜360は、バス370に接続される。
【0090】
なお、CPU310の代わりに、例えば、MPU(Micro Processing Unit)などの電子回路、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路を用いることもできる。また、メモリ360の代わりに、フラッシュメモリ(flash memory)などの半導体メモリ素子を用いることもできる。
【0091】
ハードディスク装置350には、画像処理装置200の機能と同様の機能を発揮する画像処理プログラム351および画像処理用データ352が記憶されている。なお、この画像処理プログラム351を適宜分散させて、ネットワークを介して通信可能に接続された他のコンピュータの記憶部に記憶させておくこともできる。
【0092】
そして、CPU310が、画像処理プログラム351をハードディスク装置350から読み出してメモリ360に展開することにより、図11に示すように、画像処理プログラム351は画像処理プロセス361として機能する。画像処理プロセス361は、ハードディスク装置350から読み出した画像処理用データ352等の各種データを適宜メモリ360上の自身に割当てられた領域に展開し、この展開した各種データに基づいて各種処理を実行する。
【0093】
なお、画像処理プロセス361は、例えば、図1に示した画像処理装置200の特徴点抽出ユニット230にて実行される処理、例えば、図8〜図10に示す処理を含む。
【0094】
なお、画像処理プログラム351については、必ずしも最初からハードディスク装置350に記憶させておく必要はない。例えば、電子機器300が実装されたECUへ対応ドライブを接続可能なフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、電子機器300がこれらから各プログラムを読み出して実行するようにしてもよい。
【0095】
さらには、公衆回線、インターネット、LAN、WANなどを介して、電子機器300が実装されたECUに接続される「他のコンピュータ(またはサーバ)」などに各プログラムを記憶させておく。そして、電子機器300がこれらから各プログラムを読み出して実行するようにしてもよい。
【0096】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0097】
(付記1)コンピュータに、
第一の色を有する複数の第一の領域と前記第一の色とは異なる第二の色を有する複数の第二の色領域とで形成される模様を有するマーカーを撮影した第一の画像上で、前記複数の第一の色領域と前記複数の第二の色領域とが交差する第一の点の位置を取得し、
前記第一の画像上で、前記第一の点を始点とする前記第一の色領域と前記第二の色領域との境界線の位置を取得し、
前記第一の点の位置と前記境界線上に存在する第二の点の位置と前記第一の画像に含まれる複数の画素の各位置と該複数の画素の各画素値とを用いて、前記複数の画素を他の各位置に該各画素値で配置した第二の画像に変換し、
前記第二の画像上を走査し、前記第一の点以外で、前記複数の第一の色領域と前記複数の第二の色領域とが交差する交差点が存在する可能性を示す期待値をそれぞれ取得し、
取得した前記期待値のそれぞれに基づいて前記第二の画像上における前記交差点の位置を取得し、
前記第二の画像に含まれる前記複数の画素の前記他の各位置を、前記第一の画像における前記各位置へ逆変換し、
前記第一の画像における前記第一の点の位置および前記交差点の位置をそれぞれ取得し、
取得した前記第一の点の位置および前記交差点の位置を前記模様の特徴点の位置として決定する
処理を実行させることを特徴とする画像処理プログラム。
【0098】
(付記2)前記マーカー上の前記第一の色領域と前記第二の色領域との境界線は、前記第一の点で直交する複数の線分であり、前記第二の点は、該複数の線分上に各々存在する点であって、
前記第二の画像に変換する処理において、
前記第一の点と複数の前記第二の点の各々との距離に基づいて、前記第一の画像を前記第二の画像へ変換する処理の対象とする前記複数の画素を決定し、前記複数の線分のうちの第一の線分と、該第一の線分と隣り合う第二の線分とが、該第一の点で直交する前記第二の画像に、前記第一の画像を射影変換することを特徴とする付記1に記載の画像処理プログラム。
【0099】
(付記3)前記交差点の位置を取得する処理は、前記第二の画像における前記第一の点に対応する第三の点と、該第二の画像における前記第二の点に対応する第四の点とを結ぶ線分の近傍に対して、前記交差点の形状に関連するフィルタを走査し、走査の結果得られるフィルタの応答値に基づいて前記第二の画像上における前記交差点の位置を取得することを特徴とする付記2に記載の画像処理プログラム。
【0100】
(付記4)前記特徴点を用いて、前記マーカーを撮影したカメラの位置および姿勢を算出する処理をさらに実行させることを特徴とする付記1乃至付記3のいずれか一つに記載の画像処理プログラム。
【0101】
(付記5)複数の第一の色領域と前記第一の色領域とは異なる色を有する複数の第二の色領域とで形成される模様を有するマーカーを撮影した第一の画像上で、前記第一の色領域と前記第二の色領域とが交差する前記模様の中心点の位置を取得する中心点取得部と、
前記第一の画像上で、前記第一の色領域と前記第二の色領域との境界線の位置を取得する境界線取得部と、
前記中心点取得部により取得された中心点の位置と前記境界線取得部により取得された境界線の位置とを用いて、前記第一の画像を画像の歪みが補正された第二の画像に変換する変換部と、
前記第二の画像上を走査し、前記中心点以外で、前記第一の色領域と前記第二の色領域とが交差する点を含む領域である期待値をそれぞれ取得し、取得した各期待値に基づいて前記第二の画像上における前記交差する点の位置を取得する交差点取得部と、
前記第二の画像を画像の歪みが補正される前の前記第一の画像に逆変換することにより、前記中心点取得部により取得された中心点の位置と前記交差点取得部により取得された交差する点の位置に対応する前記第一の画像上の位置をそれぞれ取得し、取得した各位置に対応する各点を特徴点として決定する決定部と
を有することを特徴とする画像処理装置。
【0102】
(付記6)前記マーカー上の前記第一の色領域と前記第二の色領域との境界線は、前記第一の点で直交する複数の線分であり、前記第二の点は、該複数の線分上に各々存在する点であって、
前記変換部は、前記第一の点と複数の前記第二の点の各々との距離に基づいて、前記第一の画像を前記第二の画像へ変換する処理の対象とする前記複数の画素を決定し、前記複数の線分のうちの第一の線分と、該第一の線分と隣り合う第二の線分とが、該第一の点で直交する前記第二の画像に、前記第一の画像を射影変換することを特徴とする付記5に記載の画像処理装置。
【0103】
(付記7)前記交差点取得部は、前記第二の画像における前記第一の点に対応する第三の点と、該第二の画像における前記第二の点に対応する第四の点とを結ぶ線分の近傍に対して、前記交差点の形状に関連するフィルタを走査し、走査の結果得られるフィルタの応答値に基づいて前記第二の画像上における前記交差点の位置を取得することを特徴とする付記5または6に記載の画像処理装置。
【0104】
(付記8)前記特徴点を用いて、前記マーカーを撮影したカメラの位置および姿勢を算出する位置姿勢算出部をさらに有することを特徴とする付記5乃至付記7のいずれか一つに記載の画像処理装置。
【符号の説明】
【0105】
M1,M2 マーカー
100 撮像装置
200 画像処理装置
210 取得部
220 記憶部
221 画像記憶部
230 特徴点抽出ユニット
231 中心点取得部
232 生成部
233 抽出部
234 変換部
235 ピーク抽出部
236 逆変換部
240 位置姿勢推定ユニット
300 電子機器
310 CPU
320 カメラインターフェース
330 ディスプレイインタフェース
340 グラフィックエンジン
350 ハードディスク装置
351 画像処理プログラム
352 画像処理用データ
360 メモリ
361 画像処理プロセス
370 バス

【特許請求の範囲】
【請求項1】
コンピュータに、
第一の色を有する複数の第一の領域と前記第一の色とは異なる第二の色を有する複数の第二の色領域とで形成される模様を有するマーカーを撮影した第一の画像上で、前記複数の第一の色領域と前記複数の第二の色領域とが交差する第一の点の位置を取得し、
前記第一の画像上で、前記第一の点を始点とする前記第一の色領域と前記第二の色領域との境界線の位置を取得し、
前記第一の点の位置と前記境界線上に存在する第二の点の位置と前記第一の画像に含まれる複数の画素の各位置と該複数の画素の各画素値とを用いて、前記複数の画素を他の各位置に該各画素値で配置した第二の画像に変換し、
前記第二の画像上を走査し、前記第一の点以外で、前記複数の第一の色領域と前記複数の第二の色領域とが交差する交差点が存在する可能性を示す期待値をそれぞれ取得し、
取得した前記期待値のそれぞれに基づいて前記第二の画像上における前記交差点の位置を取得し
前記第二の画像に含まれる前記複数の画素の前記他の各位置を、前記第一の画像における前記各位置へ逆変換し、
前記第一の画像における前記第一の点の位置および前記交差点の位置をそれぞれ取得し、
取得した前記第一の点の位置および前記交差点の位置を前記模様の特徴点の位置として決定する
処理を実行させることを特徴とする画像処理プログラム。
【請求項2】
前記マーカー上の前記第一の色領域と前記第二の色領域との境界線は、前記第一の点で直交する複数の線分であり、前記第二の点は、該複数の線分上に各々存在する点であって、
前記第二の画像に変換する処理において、
前記第一の点と複数の前記第二の点の各々との距離に基づいて、前記第一の画像を前記第二の画像へ変換する処理の対象とする前記複数の画素を決定し、前記複数の線分のうちの第一の線分と、該第一の線分と隣り合う第二の線分とが、該第一の点で直交する前記第二の画像に、前記第一の画像を射影変換することを特徴とする請求項1に記載の画像処理プログラム。
【請求項3】
前記交差点の位置を取得する処理は、前記第二の画像における前記第一の点に対応する第三の点と、該第二の画像における前記第二の点に対応する第四の点とを結ぶ線分の近傍に対して、前記交差点の形状に関連するフィルタを走査し、走査の結果得られるフィルタの応答値に基づいて前記第二の画像上における前記交差点の位置を取得することを特徴とする請求項1または2に記載の画像処理プログラム。
【請求項4】
前記特徴点を用いて、前記マーカーを撮影したカメラの位置および姿勢を算出する処理をさらに実行させることを特徴とする請求項1乃至請求項3のいずれか一項に記載の画像処理プログラム。
【請求項5】
複数の第一の色領域と前記第一の色領域とは異なる色を有する複数の第二の色領域とで形成される模様を有するマーカーを撮影した第一の画像上で、前記第一の色領域と前記第二の色領域とが交差する前記模様の中心点の位置を取得する中心点取得部と、
前記第一の画像上で、前記第一の色領域と前記第二の色領域との境界線の位置を取得する境界線取得部と、
前記中心点取得部により取得された中心点の位置と前記境界線取得部により取得された境界線の位置とを用いて、前記第一の画像を画像の歪みが補正された第二の画像に変換する変換部と、
前記第二の画像上を走査し、前記中心点以外で、前記第一の色領域と前記第二の色領域とが交差する点を含む領域である期待値をそれぞれ取得し、取得した各期待値に基づいて前記第二の画像上における前記交差する点の位置を取得する交差点取得部と、
前記第二の画像を画像の歪みが補正される前の前記第一の画像に逆変換することにより、前記中心点取得部により取得された中心点の位置と前記交差点取得部により取得された交差する点の位置に対応する前記第一の画像上の位置をそれぞれ取得し、取得した各位置に対応する各点を特徴点として決定する決定部と
を有することを特徴とする画像処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate