(57)【特許請求の範囲】
【請求項１】
コンピュータに、
第一の色領域を複数と該第一の色領域とは異なる色を有する第二の色領域を複数有する冶具を撮影した画像上で該第一の色領域をそれぞれ特定し、
前記特定された複数の第一の色領域と所定の凸形状とをそれぞれ比較して、該所定の凸形状と形状の類似性があると判断されるまで、該複数の第一の色領域をそれぞれ縮退し、
前記縮退の結果、前記複数の第一の色領域について得られる複数の第一縮退領域の前記画像上の位置関係に基づいて、前記画像上の冶具の特徴点を決定する
処理を実行させることを特徴とする画像処理プログラム。
【請求項２】
前記特定は、前記画像上で、前記第一の色領域と、該第一の色領域とは異なる色を有する第二の色領域とをそれぞれ特定し、
前記縮退は、前記特定により特定された複数の第一の色領域および複数の第二の色領域を所定の凸形状とそれぞれ比較して、該所定の凸形状と形状の類似性があると判断されるまで、該複数の第一の色領域および該複数の第二の色領域をそれぞれ縮退し、
前記決定は、前記縮退による縮退の結果、前記複数の第一の色領域について得られる複数の第一縮退領域の前記画像上の位置関係と、前記複数の第二の色領域について得られる複数の第二縮退領域の前記画像上の位置関係とに基づいて、前記画像上の冶具の特徴点を決定することを特徴とする請求項１に記載の画像処理プログラム。
【請求項３】
前記コンピュータに、
前記複数の第一縮退領域内の前記画像上の所定位置間を結ぶ第一の線分と、前記複数の第二縮退領域内の前記画像上の所定位置間を結ぶ第二の線分とが交わるか否かを判定し、該第一の線分と該第二の線分とが交わる場合には、該第一の線分をなす第一縮退領域の対と該第二の線分をなす第二縮退領域の対からなる組合せをそれぞれ取得し、
前記取得された組合せごとに前記冶具らしさを評価する評価値を算出し、該算出した評価値が所定値以上であるか否かを検証する
処理をさらに実行させ、
前記決定は、前記検証により前記評価値が所定値以上であると評価された前記組合せについて前記第一の線分と前記第二の線分との交点を求め、該交点に基づいて前記特徴点を決定することを特徴とする請求項２に記載の画像処理プログラム。
【請求項４】
前記取得は、前記第一の線分と前記第二の線分とが交わる場合に、該第一の線分の中点と該第二の線分の中点との距離が所定値以内であるか否かをさらに判定し、該第一の線分の中点と該第二の線分の中点との距離が所定値以内である場合には、前記第一縮退領域の対と前記第二縮退領域の対からなる組合せをそれぞれ取得することを特徴とする請求項３に記載の画像処理プログラム。
【請求項５】
前記取得は、前記第一の線分の中点と前記第二の線分の中点との距離が所定値以内である場合に、該第一の線分と該第二の線分とのなす角度が所定角度以上であるか否かをさらに判定し、該第一の線分と該第二の線分とのなす角度が所定角度以上である場合には、前記第一縮退領域の対と前記第二縮退領域の対からなる組合せをそれぞれ取得することを特徴とする請求項４に記載の画像処理プログラム。
【請求項６】
前記コンピュータに、
前記検証により前記評価値が所定値以上であると評価された前記組合せについて、前記第一の線分および前記第二の線分に基づいてクロスフィルタを生成する処理をさらに実行させ、
前記決定は、前記交点の座標周辺の前記冶具の入力画像の各座標について、前記クロスフィルタとの畳込積分画像を生成し、該生成した畳込積分画像内の極大値に対応する座標の中から前記交点に最も近い極大値に対応する座標を取得して、該取得した極大値座標を前記特徴点の座標に決定することを特徴とする請求項３〜５のいずれか一つに記載の画像処理プログラム。
【請求項７】
前記コンピュータに、
前記決定された前記特徴点の座標を用いて、冶具を撮影したカメラの取り付け位置および／または角度を計算する処理をさらに実行させることを特徴とする請求項１に記載の画像処理プログラム。
【請求項８】
第一の色領域を複数と該第一の色領域とは異なる色を有する第二の色領域を複数有する冶具を撮影した画像上で第一の色領域をそれぞれ特定する特定部と、
前記特定部により特定された複数の第一の色領域と所定の凸形状とをそれぞれ比較して、該所定の凸形状と形状の類似性があると判断されるまで、該複数の第一の色領域をそれぞれ縮退する縮退部と、
前記縮退部による縮退の結果、前記複数の第一の色領域について得られる複数の第一縮退領域の前記画像上の位置関係に基づいて、前記画像上の冶具の特徴点を決定する決定部と
を有することを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願の開示する技術は、カメラの位置および姿勢を算出するカメラの校正処理、いわゆるキャリブレーション処理に利用されるカメラ画像上での冶具の座標を抽出する技術に関連する。
【背景技術】
【０００２】
自車両の周囲状況を運転者にとって確認し易くし、運転者の安全運転に資することを目的として、車の周囲画像をカメラにより取得し、取得した画像を車の運転手に見せる技術が提案されている。例えば、車の周囲に複数台のカメラを設け、各カメラで取得した画像を合成すれば、さらに、車周囲の広い範囲の画像を運転者に視認させることができるようになる。【０００３】
各カメラ画像を合成した結果として、運転者にとって違和感の無い画像、すなわち、画像間の継ぎ目がずれたり、画像が傾いたりしていない画像を得る為には、各カメラが、所定の位置、所定のカメラ向きで設置されている必要がある。しかし、車に取り付けるカメラであるため、取り付け部の緩みや走行などによる震動などに起因して、カメラの設置位置や角度が変化してしまう可能性がある。そのため、出荷時や車検時、利用開始後の任意のタイミングで、カメラの取り付け位置、角度にズレが生じていないかを確認し、カメラの設置位置や角度の校正処理を行う必要がある。【０００４】
カメラの設置位置や角度の校正処理では、カメラ撮影範囲の規定の位置に設置したマーカー（冶具）を撮影し、撮影された画像上におけるマーカー位置、言い換えれば、画像上におけるマーカーの特徴点の座標を利用する。この校正処理に用いるマーカーとしては、カメラ画像上で特徴点を抽出しやすい模様を有していることが望ましく、例えば、市松模様のマーカーなどが考えられる。市松模様のマーカーでは、例えば、市松模様の中心が特徴点となる。【０００５】
例えば、市松模様のマーカーの特徴点を抽出する従来技術には、画像上の市松模様の色境界線を検出し、検出した線を利用して交点を求めることにより、マーカーの特徴点を抽出する技術などがある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−８７７４３号公報
【特許文献２】特開２００８−１３１２５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、マーカーの特徴点の画像上の座標は、上述した校正処理のパラメータとして利用される。そのため、カメラ画像上でマーカーから特徴点を抽出する際の抽出精度が悪いと、カメラの設置位置や角度の校正処理の精度も悪くなってしまう。従って、カメラ画像上におけるマーカーの特徴点を精度良く抽出する必要がある。【０００８】
例えば、自車両の周囲の状況を撮影するために車両に搭載されるカメラは、なるべく少ない台数で車の周囲をカバーできることが望ましいため、例えば、広角カメラがよく用いられる。そして、広角カメラでは、画面中央から遠のくにつれて画像上の形状が小さくなったり歪んだりするなど、画像に映し出される形状が不鮮明になる傾向がある。【０００９】
上述した校正処理を行う場合、マーカーを設置する規定位置は２台のカメラの撮影範囲が重畳する領域の中にもあるが、そのような領域は、各カメラから見ると、画面の端近傍にあたる。このため、広角カメラの特性により、マーカーの画像が小さくなったり、歪んでしまったりするなど、マーカーの画像が不鮮明になってしまう。また、マーカーに対する照明の状態によっては、画像に映し出されたマーカーの市松模様が市松模様のように見えない場合も生じる。例えば、白と黒との２色からなる市松模様を有するマーカーでは、光が強く明るい場合、画像に映し出されたマーカーの市松模様の白い領域が膨張して見えてしまう。また、光が弱く暗い場合、画像に映し出されたマーカーの市松模様の白い領域が収縮して見えてしまう。このように不鮮明なマーカーの画像から、マーカーの市松模様の色境界線を検出し、マーカーの特徴点を抽出することは難しい。よって、上述した従来技術では、画像が不鮮明な場合に、マーカーの特徴点を精度良く抽出することはできない。【００１０】
なお、広角カメラ以外のカメラでマーカーを撮影したとしても、画面の端近傍では、マーカーの画像が少なからず歪む恐れがあり、照明の影響も受けるので、マーカーの画像が不鮮明になることは十分に考えられる。よって、広角カメラ以外のカメラでマーカーを撮影したとしても、上述した従来技術では、不鮮明なマーカーの画像からマーカーの特徴点を精度良く抽出することはできない。【００１１】
開示の技術は、上記に鑑みてなされたものであって、不鮮明な画像であってもマーカーの特徴点を精度良く抽出することが可能な画像処理プログラムおよび画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本願の開示する技術は、一つの態様において、コンピュータに、第一の色領域を複数と該第一の色領域とは異なる色を有する第二の色領域を複数有する冶具を撮影した画像上で該第一の色領域をそれぞれ特定する処理を実行させる。さらに、本願の開示する技術は、コンピュータに、特定された複数の第一の色領域と所定の凸形状とをそれぞれ比較して、該所定の凸形状と形状の類似性があると判断されるまで、該複数の第一の色領域をそれぞれ縮退する処理を実行させる。さらに、本願の開示する技術は、コンピュータに、縮退の結果、複数の第一の色領域について得られる複数の第一縮退領域の画像上の位置関係に基づいて、画像上の冶具の特徴点を決定する処理を実行させる。
【発明の効果】
【００１３】
本願の開示する技術の一つの態様によれば、不鮮明な画像であってもマーカーの特徴点を精度良く抽出できる。
【図面の簡単な説明】
【００１４】
【図１】図１は、実施例１に係るマーカーの配置状況の一例を示す図である。
【図２】図２は、実施例１に係るマーカーの形状の一例を示す図である。
【図３】図３は、実施例１に係る画像処理装置の構成を示す機能ブロック図である。
【図４】図４は、実施例１に係る変換部１４１Ａの動作を説明するための図である。
【図５】図５は、実施例１に係る白領域の外形の歪具合の評価方法について説明するための図である。
【図６】図６は、実施例１に係る縮退部１４１Ｃの動作を説明するための図である。
【図７】図７は、実施例１に係る領域Ｐ１および領域Ｐ２と、領域Ｎ１および領域Ｎ２とからなるペアのモデルを示す図である。
【図８】図８は、実施例１に係る取得部１４１Ｄから送出されたペアの一例を示す図である。
【図９】図９は、実施例１に係るマーカー３である可能性を評価するための評価値の算出に用いる２値テンプレートの一例を示す図である。
【図１０】図１０は、実施例１に係るマーカー３のグレースケール画像におけるマーカー３の中心と交点Ｘとの位置関係を示す図である。
【図１１】図１１は、実施例１に係る決定部１４１Ｆの動作を説明するための図である。
【図１２】図１２は、実施例１に係るカメラ位置・姿勢算出処理の流れを示す図である。
【図１３】図１３は、実施例１に係る合成画像出力処理の流れを示す図である。
【図１４】図１４は、実施例１に係るマーカー特徴点決定処理の流れを示す図である。
【図１５】図１５は、実施例１に係る縮退処理の流れを示す図である。
【図１６】図１６は、画像処理プログラムを実行する電子機器の一例を示す図である。
【発明を実施するための形態】
【００１５】
以下に、図面を参照しつつ、本願の開示する画像処理プログラムおよび画像処理装置の一実施形態について詳細に説明する。なお、本願の開示する画像処理プログラムおよび画像処理装置の一実施形態として後述する実施例により、本願が開示する技術が限定されるものではない。なお、以下の実施例では、本願の開示する画像処理プログラムおよび画像処理装置の一実施形態として、車両に搭載したカメラで車両の周囲に設置した冶具（以下、マーカーと記載する）を撮影し、画像上のマーカーの座標を決定する場合を説明する。
【実施例１】
【００１６】
図１は、実施例１に係るマーカーの配置状況の一例を示す図である。図１に示す１は、車両に該当する。図１に示す２Ａ〜２Ｄは、車両に搭載されたカメラに該当する。図１に示す３は、マーカーに該当する。図１に示す４Ａ〜４Ｄは、車両１に搭載されたカメラ２Ａ〜２Ｄの撮影範囲に該当する。図１に示すように、カメラ２Ａの撮影範囲４Ａの一部と、カメラ２Ｂの撮影範囲４Ｂの一部およびカメラ２Ｃの撮影範囲４Ｃの一部とが重複している。また、カメラ２Ｄの撮影範囲４Ｄの一部と、カメラ２Ｂの撮影範囲４Ｂの一部およびカメラ２Ｃの撮影範囲４Ｃの一部とが重複している。【００１７】
車両１は、所定の停車位置に停車される。そして、車両１に搭載されたカメラ２Ａ〜２Ｄのそれぞれが最低４つのマーカーを撮影できるように、車両１の周囲にマーカー３を配置する。このとき、あるカメラにより撮影される４つのマーカー３のうちの２つのマーカー３は、隣接するカメラでも撮影されるようにマーカー３を配置する。例えば、カメラ２Ａにより撮影される４つのマーカー３のうちの１つのマーカー３は、カメラ２Ａに隣接するカメラ２Ｂにより撮影されるようにマーカー３を配置する。さらに、カメラ２Ａにより撮影される４つのマーカー３のうちの１つのマーカー３は、カメラ２Ａに隣接するカメラ２Ｃにより撮影されるようにマーカー３を配置する。つまり、上述したカメラの撮影範囲が重複する位置にマーカー３を配置すればよいが、この重複する位置を含め、マーカー３の車両１に対する配置位置は予め計測されているものとする。【００１８】
図２は、実施例１に係るマーカーの形状の一例を示す図である。図２に示すように、マーカー３は、例えば、４０センチメートル程度の正方形の中心部に円形の部分を有する。また、図２に示すように、マーカー３は、例えば、白色の白領域と黒色の黒領域とが互い違いの市松模様となっている。マーカー３の円形の部分は、マーカー３の中心を挟んで対向する白領域の対と、マーカー３の中心を挟んで対向する黒領域の対とを有する。マーカー３を、例えば、白黒の市松模様とするのは、マーカー３の円形部分の中心が特徴点としてマーカー３の画像上で高精度に現れるようにする意図がある。また、マーカー３の円形部分を取り囲む領域も市松模様となっているのは、マーカー３の外側の背景、すなわちマーカを配置する床面に関する画像に影響されず、マーカー３の円形部分の境界がマーカー３の画像上で鮮明に現れるようにする意図がある。【００１９】
［画像処理装置の構成（実施例１）］
図３は、実施例１に係る画像処理装置の構成を示す機能ブロック図である。図３に示すように、実施例１に係る画像処理装置１００は、複数のカメラ１１０およびディスプレイ１２０に接続され、記憶部１３０および制御部１４０を有する。【００２０】
カメラ１１０は、車両１の周囲に設置されたマーカー３の画像を取得する。ディスプレイ１２０は、例えば、各カメラ１１０により取得された各画像を合成した合成画像などを表示する。なお、ディスプレイ１２０は、タッチパネルなどの入力デバイスを有し、ポインティングデバイス機能を実現してもよい。例えば、ディスプレイ１２０のタッチパネルは、作業者から各カメラ１１０の位置・姿勢の計算処理の開始指示や合成画像の出力指示などの入力を受け付ける。【００２１】
記憶部１３０は、図３に示すように、画像記憶部１３１および位置・姿勢記憶部１３２を有する。なお、記憶部１３０は、例えば、ＲＡＭ（Random  Access  Memory）やフラッシュメモリ(flash  memory)などの半導体メモリ素子である。【００２２】
画像記憶部１３１は、各カメラ１１０により取得されたマーカー３の画像を記憶する。位置・姿勢記憶部１３２は、後述する計算部１４２により計算された各カメラ１１０の位置・姿勢に関する情報を記憶する。【００２３】
制御部１４０は、図３に示すように、認識部１４１と、計算部１４２と、生成部１４３とを有する。【００２４】
認識部１４１は、マーカー３の画像上でマーカー３の特徴点を決定する。図３に示すように、認識部１４１は、変換部１４１Ａと、特定部１４１Ｂと、縮退部１４１Ｃと、取得部１４１Ｄと、検証部１４１Ｅと、決定部１４１Ｆとを有する。【００２５】
変換部１４１Ａは、各カメラ１１０により取得されたマーカー３の原画像を画像記憶部１３１から取り込んで、取り込んだ画像の輝度を変えることにより、各カメラ１１０により取得されたマーカー３の原画像をグレースケール画像にそれぞれ変換する。【００２６】
図４は、実施例１に係る変換部１４１Ａの動作を説明するための図である。図４に示す４−１は、カメラ１１０により取得されたマーカー３の原画像に該当する。図４に示す４−２は、マーカー３のグレースケール画像に該当する。変換部１４１Ａは、図４に示すように、以下の式（１）を用いて、カメラ１１０により取得されたマーカー３の原画像４−１の輝度を変えることによりグレースケール画像４−２に変換する。
【数１】
0005472463.tif 000002
【００２７】
特定部１４１Ｂは、各グレースケール画像から２値画像をそれぞれ生成する。例えば、特定部１４１Ｂは、グレースケール画像の画素値を所定の閾値と比較し、所定の閾値よりも大きい値を「１」、所定の閾値よりも小さい値を「０」に２値化することによりグレースケール画像から２値画像を生成する。言い換えれば、特定部１４１Ｂは、グレースケール画像上で白領域および黒領域を特定している。なお、所定の閾値は、固定値でなくともよく、対象画像に基づいて局所的もしくは大局的に動的に決定してもよい。公知の方法としては、大津の判別法やＮｉＢｌａｃｋ法などがある。【００２８】
縮退部１４１Ｃは、特定部１４１Ｂにより生成された各２値画像について、２値画像内の２値化された領域の形状が、所定の凸形状、例えば楕円形状と類似性があると判断されるまで縮退する縮退処理を実行する。【００２９】
例えば、マーカー３の画像が不鮮明な場合、マーカー３の円形部分の白領域とマーカー３の円形外部の白領域とが結合されたような状態に映ってしまう。なお、マーカー３の画像が不鮮明な場合、白領域と同様に、マーカー３の円形部分の黒領域とマーカー３の円形外部の黒領域とが結合されたような状態に映ってしまう。ここで、マーカー３の円形部分の白領域や黒領域は、マーカー３の画像内の他の領域と完全に分離した状態では所定の凸形状、例えば楕円形状に類似することが分かっている。そこで、縮退部１４１Ｃは、２値画像内の各色領域について、楕円形状と類似性を有する判断されるまで繰り返し縮退することにより、マーカー３の円形外部の色領域とを完全に分離させることができる。縮退処理は、マーカー３の円形部分の白領域とマーカー３の円形外部の白領域とを完全に分離させるためのステップ、およびマーカー３の円形部分の黒領域とマーカー３の円形外部の黒領域とを完全に分離させるためのステップを含む。【００３０】
縮退部１４１Ｃは、まず、２値画像で値が「１」である白領域について縮退処理を実行する。縮退部１４１Ｃは、２値画像で値が「１」である白領域にラベリングする。次に、縮退部１４１Ｃは、以下の式（２）に示す公知の慣性モーメントに基づいた算出方法を用いて、ラベリングされた各白領域に当てはまる擬似的な楕円の長軸および短軸をそれぞれ導出する。
【数２】
0005472463.tif 000003
【００３１】
続いて、縮退部１４１Ｃは、各白領域の個々について、白領域の面積と、この白領域に当てはまる擬似的な楕円の面積との比が所定の閾値以下であるか否かを判定し、所定の閾値以下であれば楕円形状性を有する、言い換えれば、楕円形状と類似性ありと判断する。楕円形状との類似性を判断する根拠は以下のとおりである。例えば、マーカー３の円形部分の白領域とマーカー３の円形外部の白領域とが結合されたような状態であれば、白領域の面積と、この白領域に当てはまる擬似的な楕円の面積とは大きく異なる。一方で、マーカー３の円形部分の白領域とマーカー３の円形外部の白領域とが完全に分離された状態であれば、白領域の面積と、この白領域に当てはまる擬似的な楕円の面積とが大きく異なることはない。そこで、マーカー３の円形部分の白領域とマーカー３の円形外部の白領域とが完全に分離された状態を評価するために、白領域の面積と、この白領域に当てはまる擬似的な楕円の面積との比が所定の閾値以下であるか否かを判定する。【００３２】
ここで、判定方法の一例として、以下の評価式Ｅを用いることが考えられる。
Ｅ＝｜白領域面積−楕円面積｜／ｍａｘ（白領域面積，楕円面積）
この評価式は、白領域面積と楕円面積とのうち大きい方の面積に対する、白領域面積と楕円面積との差分面積の比率を評価している。従って、Ｅの値が０に近くなるほど、白領域の形状が楕円形状に近いことを意味する。なお、この評価式に限らず、白領域の形状が、その白領域に当てはまる楕円形状とどの程度に通っているかを評価できる値が求められれば良い。評価式Ｅにより求められる値が所定の閾値以下、例えば、０．３である場合、楕円らしいと判断することができる。なお、所定の閾値については、予備実験として複数枚の評価画像に同処理、すなわち縮退部１４１Ｃによる上述の判定に関する処理を実行し、全てのマーカー領域に関する白領域を適切に分離できる値を、所定の閾値として事前に決定することが考えられる。【００３３】
なお、白領域の面積は、領域内の画素数を形状することにより求めることができる。楕円の面積は、上述の式（２）により導出した楕円の長軸と短軸との積に円周率を掛け合わせることにより求めることができる。【００３４】
また、カメラ１１０のレンズ歪によって、マーカー３が相当歪んで映る場合があり、このような場合には、マーカー３の円形部分の白領域は細長い形状となる。よって、マーカー３の円形部分の白領域が比較的丸い形状となる場合と、マーカー３の円形部分の白領域が細長い形状となる場合とで、白領域の面積と、この白領域に当てはまる擬似的な楕円の面積との比を評価するための所定の閾値を変更してもよい。縮退部１４１Ｃは、例えば、擬似的な楕円の短軸の長軸に対する比が０．４よりも大きい場合、すなわち、より円に近い場合には、上述した評価式Ｅにより求められる値と比較する所定の閾値として０．３を採用することが考えられる。実験では白領域の形状が図２に示す円形部分の４分の１のような形状に近い場合に、長軸に対する短軸の比が０．４よりも大きいことが多かった。また、例えば、擬似的な楕円の短軸の長軸に対する比が０．４以下、すなわち、より細長い場合には、上述した評価式Ｅにより求められる値と比較する所定の閾値として０．２を採用することが考えられる。実験では白領域の形状が細長い形状である場合に、長軸に対する短軸の比が０．４以下であることが多かった。なお、長軸と短軸との比に対する閾値、および上述した評価式Ｅより求められる値と比較する所定の閾値については、予備実験として複数枚の評価画像に縮退部１４１Ｃによる上述の判定に関する処理を実行することにより事前に決定することが考えられる。つまり、予備実験として複数枚の評価画像に縮退部１４１Ｃによる上述の判定に関する処理を実行することにより、全てのマーカー領域に関する白領域を適切に分離できる値を、所定の閾値として事前に決定することが考えられる。【００３５】
また、縮退部１４１Ｃは、各白領域について楕円形状性を有するか否かをより効果的に判断するために他の指標と合わせてもよい。縮退部１４１Ｃは、例えば、白領域内部の穴の数を評価する。ここで、穴の数とは、例えば、２値画像の白領域については、この白領域内に存在する黒領域の数に該当し、２値画像の黒領域については、この黒領域に存在する白領域の数に該当する。評価の結果、縮退部１４１Ｃは、穴のない白領域について、白領域の面積と、この白領域に当てはまる擬似的な楕円の面積との比を判定するようにしてもよい。穴の数を計算する方法としては、例えば公知のオイラー数を算出し、オイラー数が１、つまり穴の数が０であることを評価する方法がある。【００３６】
また、縮退部１４１Ｃは、例えば、白領域の外形の歪具合を評価し、歪具合の小さいものについて、白領域の面積と、この白領域に当てはまる擬似的な楕円の面積との比を判定するようにしてもよい。縮退部１４１Ｃは、白領域の外形の歪具合を評価する場合、公知のチェインコード処理によって白領域の外周のピクセルを取得し、白領域の重心から白領域の外周に位置する各ピクセルへの方位を順次計測する。そして、縮退部１４１Ｃは、計測した方位のグラフに基づいて白領域の歪具合を評価する。【００３７】
図５は、実施例１に係る白領域の外形の歪具合の評価方法について説明するための図である。図５に示す５Ａは外形に歪みのある白領域を表す。５Ａ１は白領域５Ａの重心を表し、５Ａ２や５Ａ３は、重心５Ａ１からの方位を表す。図５に示す５Ａ´は５Ａで表す白領域の外形の歪具合を評価するグラフである。なお、５Ａ´に示すグラフの縦軸は白領域５Ａの重心から白領域５Ａの外周に位置する各ピクセルへの方位に関するグラフ軸であり、５Ａ´に示すグラフの横軸は白領域５Ａの外周点に関するグラフ軸である。図５に示す５Ｂは外形に歪みのない白領域を表す。５Ｂ１は白領域５Ｂの重心を表し、５Ｂ２や５Ｂ３は、重心５Ｂ１からの方位を表す。図５に示す５Ｂ´は５Ｂで表す白領域の外形の歪具合を評価するグラフである。なお、５Ｂ´に示すグラフの縦軸は白領域５Ｂの重心から白領域５Ｂの外周に位置する各ピクセルへの方位に関するグラフ軸であり、５Ｂ´に示すグラフの横軸は白領域５Ｂの外周点に関するグラフ軸である。例えば、縮退部１４１Ｃは、５Ａ´や５Ｂ´に示すグラフに基づいて、白領域５Ａや５Ｂの歪具合を評価する。例えば、外形に歪みのある白領域５Ａでは、歪のある部分に重心からの方位が集中するので５Ａ´に示すような単調増加でない歪んだグラフとなる。一方、外形に歪みのない白領域５Ｂでは、重心からの方位が分散するので５Ｂ´に示すような単調増加のグラフとなる。よって、縮退部１４１Ｃは、例えば、歪のない白領域、つまり５Ｂ´に示すような単調増加のグラフとなる白領域５Ｂについて楕円形状性を有するか否かを評価する。【００３８】
そして、縮退部１４１Ｃは、内部的に有する第１バッファに、楕円形状と類似性ありと判断した白領域をコピーする。一方、縮退部１４１Ｃは、内部的に有する第２バッファに、楕円形状と類似性ありと判断した白領域をコピーする。【００３９】
ある白領域についてバッファへのコピーが完了すると、縮退部１４１Ｃは、ラベリングした白領域の全てについて、上述した楕円形状との類似性の判断を完了しているか否かを判定する。縮退部１４１Ｃは、判定の結果、全ての白領域について楕円形状との類似性の判断を完了していない場合には、残りの白領域について同様に楕円形状との類似性の判断を実行する。一方、縮退部１４１Ｃは、判定の結果、全ての白領域について楕円形状との類似性の判断を完了している場合には、第２バッファにコピーした各白領域について縮退処理を実行する。例えば、縮退部１４１Ｃは、白領域の外周、つまり白領域のエッジ部分の画素を一画素ずつ削る方法や、白領域のエッジ部分の画素を所定のフィルタを用いて削る方法など、縮退処理に関する公知技術であれば、どのような技術を適用してもよい。以上で、縮退部１４１Ｃによる縮退処理の一サイクルが完了する。【００４０】
縮退処理を一サイクル完了後、縮退部１４１Ｃは、縮退した各白領域に改めてラベリングし、各白領域について、再び、上述してきた縮退処理を実行する。なお、縮退部１４１Ｃは、縮退処理を行う白領域が２値画像からなくなるまで、あるいは予め設定する所定の試行回数まで縮退処理を実行する。【００４１】
縮退部１４１Ｃは、２値画像で値が「１」である白領域について縮退処理を完了すると、第１バッファにコピーした白領域を取得部１４１Ｄに送出する。そして、縮退部１４１Ｃは、２値画像で値が「０」である黒領域についても、上述してきた縮退処理を実行する。縮退部１４１Ｃは、２値画像の値を反転させて黒領域を白領域と同様に取り扱うことにより、上述してきたのと同様の手順で縮退処理を実行できる。なお、縮退部１４１Ｃは、２値画像で値が「０」である黒領域について縮退処理を完了すると、第１バッファにコピーした黒領域を取得部１４１Ｄに送出する。【００４２】
図６は、実施例１に係る縮退部１４１Ｃの動作を説明するための図である。図６に示す６−１はグレースケール画像に該当する。図６に示す６−２は２値画像に該当する。図６に示す６−３は２値画像６−２内の色領域を数回縮退した２値画像に該当する。図６に示す６−４は２値画像６−３をさらに縮退した２値画像に該当する。図６に示す６−５は縮退処理完了時の２値画像に該当する。【００４３】
図６の６Ａに示すように、グレースケール画像から２値画像を生成した段階では、本来は別の領域であるマーカー３内の２つの白領域が画像上で結合されたような不鮮明な状態にある。よって、縮退部１４１Ｃは、白領域を分離するために上述した縮退処理を実行する。例えば、縮退部１４１Ｃは、２値画像６−２について、上述した縮退処理を数回試行した結果、例えば、２値画像６−３を得る。ここで、縮退部１４１Ｃは、２値画像６−３内の白領域６Ｂが楕円形状との類似性を有する場合には、白領域６Ｂを第１バッファにコピーする。一方、縮退部１４１Ｃは、２値画像６−３内の各白領域６Ｃが楕円形状との類似性を有しない場合には、各白領域６Ｃを第２バッファにコピーする。次に、縮退部１４１Ｃは、第２バッファにコピーした各白領域６Ｃのそれぞれについて縮退処理を行い、２値画像６−４を得る。そして、縮退部１４１Ｃは、２値画像６−４内の各白領域６Ｄに対して改めてラベリングし、ラベリングされた各白領域６Ｄについて改めて縮退処理を開始する。【００４４】
２値画像６−４から数回の縮退処理を行った結果、縮退部１４１Ｃは、２値画像６−５を得る。ここで、縮退部１４１Ｃは、２値画像６−５内の各白領域６Ｅが楕円形状との類似性を有する場合には、各白領域６Ｅを第１バッファにコピーする。縮退部１４１Ｃは、各白領域６Ｅを第１バッファにコピーした段階で、２値画像６−５内にラベリングする白領域が残されていないので縮退処理を完了する。【００４５】
図３に戻り、取得部１４１Ｄは、縮退部１４１Ｃから送出された複数の白領域および複数の黒領域の中から、マーカーの形状らしさを評価するための所定の条件を満足する白領域の対と黒領域の対とからなるペアを取得する。言い換えれば、取得部１４１Ｄは、マーカー３の円形部分をなす蓋然性の高い白領域の対と黒領域の対とからなるペアを取得する。【００４６】
例えば、取得部１４１Ｄは、縮退部１４１Ｃから送出された複数の白領域の中から二つの領域Ｐ１およびＰ２を取得するとともに、縮退部１４１Ｃから送出された複数の黒領域の中から二つの領域Ｎ１およびＮ２を取得する。次に、取得部１４１Ｄは、領域Ｐ１の重心ＣＰ１、領域Ｐ２の重心ＣＰ２、領域Ｎ１の重心ＣＮ１および領域Ｎ２の重心ＣＮ２を計算する。そして、取得部１４１Ｄは、領域Ｐ１および領域Ｐ２と領域Ｎ１および領域Ｎ２とからなるペアが、以下の（１）〜（３）の条件を満足するか否かを判定する。【００４７】
図７は、実施例１に係る領域Ｐ１および領域Ｐ２と、領域Ｎ１および領域Ｎ２とからなるペアのモデルを示す図である。マーカーの形状らしさを評価するための条件（１）〜（３）は次のとおりである。
（１）図７に示す線分ＣＰ１ＣＰ２と図７に示す線分ＣＮ１ＣＮ２とが交わること
（２）図７に示す線分ＣＰ１ＣＰ２と図７に示す線分ＣＮ１ＣＮ２とのなす角θが所定の角度以上であること
（３）図７に示す線分ＣＰ１線分ＣＰ２の中点ＭＰと図７に示す線分ＣＮ１ＣＮ２の中点ＭＮとの距離が所定値以下であること【００４８】
また、取得部１４１Ｄは、領域Ｐ１および領域Ｐ２と領域Ｎ１および領域Ｎ２とからなるペアが、上述した（１）〜（３）の条件に加えて、さらに、以下の（４）および（５）の条件を満足するか否かを判定することとしてもよい。
（４）図７に示す領域Ｐ１の面積Ａｐ１と図７に示す領域Ｐ２の面積Ａｐ２との比が所定値以上であること
（５）図７に示す領域Ｎ１の面積Ａｎ１と図７に示す領域Ｎ２の面積Ａｎ２との比が所定値以上であること【００４９】
上述した条件に含まれる角θ、中点間の距離、マーカー３の円形内部の白や黒の領域面積については、カメラ画像上で得られるはずのおおまかな予測値を算出する。例えば、マーカー３のサイズ、マーカー３の配置位置および車載カメラ位置の情報が得られるので、これらの情報に基づき、角θ、中点間の距離、マーカー３の円形内部の白や黒の領域面積について、カメラ画像上で得られるはずのおおまかな予測値を算出できる。そして、この予測値との実際の値との誤差および縮退処理の影響を考慮して、上述した条件における所定値を設定できる。例えば、予測値として得られる角θの値が８０度であった場合、縮退処理による影響を考慮して、上述の条件（２）における所定角度を６０度以上と設定しておくことができる。また、例えば、予測値として得られる中点間の距離が１ピクセルであった場合、縮退処理による影響を考慮して、上述の条件（３）における所定値を３ピクセルと設定しておくことができる。また、例えば、予測値として得られるマーカー３の円形内部にある白領域の面積が１００ピクセル、黒領域の面積が１２０ピクセルである場合、縮退処理による影響を考慮して、上述の条件（４）および（５）における所定値を０．５以上としておくことができる。【００５０】
なお、取得部１４１Ｄは、領域Ｐ１および領域Ｐ２と領域Ｎ１および領域Ｎ２とからなるペアが、上述した（１）〜（３）の条件のうち、少なくとも、（１）および（２）の条件を満足するか否かを判定することとしてもよい。また、取得部１４１Ｄは、上述した（１）および（２）の条件以外については、適宜任意の組合せで採用することができる。【００５１】
判定の結果、取得部１４１Ｄは、領域Ｐ１および領域Ｐ２と、領域Ｎ１および領域Ｎ２とのペアが、上述した（１）〜（３）の条件、（１）〜（５）の条件あるいは（１）および（２）の条件を満足する場合には、このペアを取得する。取得部１４１Ｄは、縮退部１４１Ｃから送出された複数の白領域および複数の黒領域から組合可能な白領域の対と黒領域の対とからなる排他的な全てのペアについて上述した条件の判定を行う。そして、取得部１４１Ｄは、取得した全てのペアを検証部１４１Ｅにそれぞれ送出する。【００５２】
検証部１４１Ｅは、取得部１４１Ｄから送出された白領域の対と黒領域の対とからなる複数のペアについて、マーカー３である可能性の高いペアを取捨選択するための検証を行う。【００５３】
図８は、実施例１に係る取得部１４１Ｄから送出されたペアの一例を示す図である。取得部１４１Ｄから、上述した（１）〜（３）の条件を満足する白領域の対と黒領域の対とからなるペアとして、図８に示す８Ａおよび８Ｂが検証部１４１Ｅにそれぞれ送出されたとする。検証部１４１Ｅは、図８に示す８Ａおよび８Ｂのそれぞれについて、マーカー３である可能性を評価するための評価値を算出する。【００５４】
図９は、実施例１に係るマーカー３である可能性を評価するための評価値の算出に用いる２値テンプレートの一例を示す図である。検証部１４１Ｅは、図９に示すように、取得部１４１Ｄから送出されたペアごとに、線分ＣＰ１ＣＰ２と線分ＣＮ１ＣＮ２との交点Ｘを算出し、交点Ｘに基づいて平行四辺形ＡＢＣＤを求める。次に、検証部１４１Ｅは、三角形ＸＡＢおよびＸＣＤを「−１」、三角形ＸＡＤおよびＸＢＤを「１」とする２値テンプレートを生成する。なお、平行四辺形ＡＢＣＤは以下のように定義される。
ＸＡベクトル＝ＸＣＮ１ベクトル＋ＸＣＰ１ベクトル
ＸＢベクトル＝ＸＣＮ１ベクトル＋ＸＣＰ２ベクトル
ＸＣベクトル＝ＸＣＮ２ベクトル＋ＸＣＰ２ベクトル
ＸＤベクトル＝ＸＣＮ２ベクトル＋ＸＣＰ１ベクトル【００５５】
そして、検証部１４１Ｅは、線分ＣＰ１ＣＰ２と線分ＣＮ１ＣＮ２との交点Ｘにおけるグレースケール画像と、２値テンプレートとの類似度を算出し、類似度が所定の閾値以上であるか否かを判定する。例えば、検証部１４１Ｅは、グレースケール画像の交点Ｘと２値テンプレートの中心とを合わせて、対応する座標のピクセル値を乗算し、足し込むことによって、交点Ｘにおけるグレースケール画像と２値テンプレートとの類似度を算出する。交点Ｘにおけるグレースケール画像と２値テンプレートとの類似度をＦとすると、検証部１４１Ｅは、以下の式（３）により類似度Ｆを算出できる。
【数３】
0005472463.tif 000004
【００５６】
検証部１４１Ｅは、判定の結果、類似度が所定の閾値以上であるペアを残して、類似度が所定の閾値以下であるペアを棄却し、類似度が所定の閾値以上であったペアを残す。そして、検証部１４１Ｅは、類似度が所定の閾値以上であったペアについての交点Ｘの座標をマーカー３の仮中心座標として決定部１４１Ｆに送出する。なお、類似度と比較する所定の閾値については、予備実験として複数枚の評価画像について検証部１４１Ｅによる同処理を実行し、全てのマーカー領域を正しく採択する類似度Ｆを、所定の閾値として事前に決定することが考えられる。もしくは、検証部１４１Ｅによる処理を適用する領域に１つのマーカー３が存在するような前提であれば、次のようにしてペアを選択するようにしてもよい。例えば、検証部１４１Ｅは、取得部１４１Ｄから送出された白領域の対と黒領域の対とからなる複数のペアについての類似度Ｆの中から、類似度Ｆが最大値となるペアを選択する。【００５７】
決定部１４１Ｆは、検証部１４１Ｆから送出された交点Ｘの座標である仮中心座標を洗練させる座標洗練処理を実行して、マーカー３の円形部分の中心の座標、つまりマーカー３の特徴点の座標を最終決定する。以下、この座標洗練処理の内容について、図１０および図１１を参照しつつ説明する。【００５８】
図１０は、実施例１に係るマーカー３のグレースケール画像におけるマーカー３の中心と交点Ｘとの位置関係を示す図である。図１０に示す１０Ａはマーカー３のグレースケール画像に該当する。図１０に示す１０Ｂは１０Ａにおいて点線で囲まれた矩形領域を拡大した図に相当する。図１０に示す１０Ｃはグレースケール画像上のマーカーの中心として算出された交点Ｘの位置を表す。検証部１４１Ｅにより算出された線分ＣＰ１ＣＰ２と線分ＣＮ１ＣＮ２との交点Ｘは、白領域Ｐ１，Ｐ２の重心および黒領域Ｎ１，Ｎ２の重心によって求められており、マーカー３のグレースケール画像におけるマーカー３の中心とは無関係に算出されている。よって、図１０の１０Ｂに示すように、マーカー３のグレースケール画像におけるマーカー３の中心位置と、マーカー３の中心位置として算出された交点Ｘとが必ずしも一致するとは限らない。また、白領域Ｐ１，Ｐ２の重心および黒領域Ｎ１，Ｎ２が非対称である場合など、縮退部１４１Ｃによる色領域の縮退の状態によって、検証部１４１Ｅにより算出された交点Ｘの位置精度が良くならないことも考えられる。そこで、決定部１４１Ｆは、検証部１４１Ｅにより算出された交点Ｘ周辺の画像データに基づいて、より高精度にマーカー３の画像上でのマーカーの中心の座標、つまりマーカー３の特徴点の座標を決定する。【００５９】
まず、決定部１４１Ｆは、検証部１４１Ｆが交点Ｘを算出する際に用いたペアの線分ＣＰ１ＣＰ２と線分ＣＮ１ＣＮ２に基づいて、所定のサイズのクロスフィルタを生成する。例えば、決定部１４１Ｆは、ベクトルＣＰ１ＣＰ２の方位θpを算出し、クロスフィルタの中心を原点として、±［Ｔｃｏｓθｐ、Ｔｓｉｎθｐ］の座標を「１」とする。また、決定部１４１Ｆは、ベクトルＣＮ１ＣＮ２の方位θｎを算出し、クロスフィルタの中心を原点として、±［Ｔｃｏｓθｐ、Ｔｓｉｎθｐ］の座標を「−１」とする。なお、±［Ｔｃｏｓθｐ、Ｔｓｉｎθｐ］の座標は整数化する。例えば、Ｈ：クロスフィルタ、Ｔ＝３、θｐ＝０度、θｎ＝９０度の場合、決定部１４１Ｆにより生成されるクロスフィルタは、以下の式（４）のようになる。すなわち、クロスフィルタは、フィルタの中心を原点として、ベクトルＣＰ１ＣＰ２の方位θpの座標を「１」、ベクトルＣＮ１ＣＮ２の方位θｎの座標「−１」とした時に、これらの座標を少なくとも包含する図形によって定義される。
【数４】
0005472463.tif 000005
【００６０】
図１１は、実施例１に係る決定部１４１Ｆの動作を説明するための図である。図１１に示す１１Ａはマーカー３のグレースケール画像に該当する。図１１に示す１１Ｂはクロスフィルタに該当する。図１１に示す１１Ｃは畳込積分画像に該当する。図１１に示す１１ｆ１〜１１ｆ３は畳込積分画像上における極大値の位置を表す。図１１に示す１１Ｅは畳込積分画像上における交点Ｘの位置を表す。【００６１】
図１１に示すように、決定部１４１Ｆは、クロスフィルタを生成後、交点Ｘ周辺のマーカー３のグレースケール画像１１Ａ上の各座標について、クロスフィルタ１１Ｂとの畳込積分画像１０Ｃを生成する。なお、交点Ｘ周辺とは、例えば、１０×１０ピクセル程度の範囲に相当する。続いて、決定部１４１Ｆは、畳込積分画像１１Ｃ上の極大値１１ｆ１〜１１ｆ３の中から、交点Ｘの位置１１Ｅに最も近い極大値１１ｆ３を選択する。そして、決定部１４１Ｆは、極大値１１ｆ３の座標をサブピクセル精度で算出し、最終的なマーカー３の特徴点の座標として計算部１４２に送出する。なお、極大値の座標をサブピクセル精度で算出する方法としては、パラボラフィッティングなどの手法を利用できる。【００６２】
図３に戻り、計算部１４２は、決定部１４１Ｆから送出されたマーカー３の特徴点の座標に基づいて、各カメラ１１０の位置や姿勢を計算する。計算部１４２は、各カメラ１１０の位置や姿勢の計算を完了すると、各カメラ１１０の位置および姿勢の情報を位置・姿勢記憶部１３２に格納する。なお、画像上のマーカーの特徴点の座標に基づいて各カメラの位置や姿勢を計算する技術については、例えば、特開２００１−２８５６８１号公報や特開２００８―１８７５６４号公報などに記載されている技術を利用することが考えられる。【００６３】
生成部１４３は、画像出力指示などに応じて、各カメラ１１０により取得された画像の合成画像を生成し、出力する。例えば、生成部１４３は、ディスプレイ１２０が有するタッチパネルなどを介して画像出力指示を受け付けると、画像記憶部１３１から各カメラ１１０の取得画像を取得するとともに、位置・姿勢記憶部１３２から各カメラ１１０の位置・姿勢を取得する。そして、生成部１４３は、各カメラ１１０の位置・姿勢に基づいて、各カメラ１１０の取得画像を合成することにより合成画像を生成し、生成した合成画像をディスプレイ１２０を介して表示出力する。【００６４】
なお、図３に示す制御部１４０は、例えば、電子回路や集積回路に該当する。電子回路としては、例えば、ＣＰＵ（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)などの半導体メモリ素子を用いることもできる。【００９４】
ハードディスク装置２５０には、画像処理装置１００の機能と同様の機能を発揮する画像処理プログラム２５１および画像処理用データ２５２が記憶されている。なお、この画像処理プログラム２５１を適宜分散させて、ネットワークを介して通信可能に接続された他のコンピュータの記憶部に記憶させておくこともできる。【００９５】
そして、ＣＰＵ２１０が、画像処理プログラム２５１をハードディスク装置２５０から読み出してＲＡＭ２６０に展開することにより、図１６に示すように、画像処理プログラム２５１は画像処理プロセス２６１として機能する。画像処理プロセス２６１は、ハードディスク装置２５０から読み出した画像処理用データ２５２等の各種データを適宜メモリ２６０上の自身に割当てられた領域に展開し、この展開した各種データに基づいて各種処理を実行する。【００９６】
なお、画像処理プロセス２６１は、例えば、図３に示した画像処理装置１００の制御部１４０にて実行される処理、例えば、図１２〜図１５に示す処理を含む。【００９７】
なお、画像処理プログラム２５１については、必ずしも最初からハードディスク装置２５０に記憶させておく必要はない。例えば、電子機器２００が実装されたＥＣＵへ対応ドライブを接続可能なフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、電子機器２００がこれらから各プログラムを読み出して実行するようにしてもよい。【００９８】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介して、電子機器２００が実装されたＥＣＵに接続される「他のコンピュータ（またはサーバ）」などに各プログラムを記憶させておく。そして、電子機器２００がこれらから各プログラムを読み出して実行するようにしてもよい。
【符号の説明】
【００９９】
１  車両
２Ａ〜２Ｄ  カメラ
３  マーカー
４Ａ〜４Ｄ  撮影範囲
１００  画像処理装置
１１０  カメラ
１２０  ディスプレイ
１３０  記憶部
１３１  画像記憶部
１３２  位置・姿勢記憶部
１４０  制御部
１４１  認識部
１４１Ａ  変換部
１４１Ｂ  特定部
１４１Ｃ  縮退部
１４１Ｄ  取得部
１４１Ｅ  検証部
１４１Ｆ  決定部
１４２  計算部
１４３  生成部
２００  電子機器
２１０  ＣＰＵ
２２０  カメラインターフェース
２３０  ディスプレイインターフェース
２４０  グラフィックエンジン
２５０  ハードディスク装置
２５１  画像処理プログラム
２５２  画像処理用データ
２６０  ＲＡＭ
２６１  画像処理プロセス
【図１】
0005472463.tif 000006
【図２】
0005472463.tif 000007
【図３】
0005472463.tif 000008
【図４】
0005472463.tif 000009
【図５】
0005472463.tif 000010
【図６】
0005472463.tif 000011
【図７】
0005472463.tif 000012
【図８】
0005472463.tif 000013
【図９】
0005472463.tif 000014
【図１０】
0005472463.tif 000015
【図１１】
0005472463.tif 000016
【図１２】
0005472463.tif 000017
【図１３】
0005472463.tif 000018
【図１４】
0005472463.tif 000019
【図１５】
0005472463.tif 000020
【図１６】
0005472463.tif 000021