【実施例1】
【0031】
実施例1では、カラーコード付き標識(カラーコードターゲット)CTが、グレースケールパターン(グレースケール領域)P5を白色領域P4に隣接して有する例を説明する。
【0032】
[カラーコードターゲット]
図1に本実施例によるコード付き標識としてのカラーコードターゲットCT1の例を示す。カラーコードの単位領域が6個で、輝度スケール領域P5が白色領域(右下隅)P4に隣接して配置されている例である。
図1のカラーコードターゲットCT1は、位置検出用パターンとしてのレトロターゲット部P1、基準色パターンとしての基準色部P2、カラーコードパターンとしてのカラーコード部P3で構成されている。白色領域P4及び輝度ケール領域P5は基準色部P2の一部である。また、輝度スケール領域P5は無彩色のグレースケール領域P5となっている。本実施例では輝度スケール領域P5が白色領域P4に隣接して配置されている。これら、レトロターゲット部P1、基準色部P2(白色領域P4とグレースケール領域P5を含む)、カラーコード部P3はカラーコードターゲットCT1内の所定の位置に配置される。すなわち、基準色パターンP2(白色領域P4とグレースケール領域P5を含む)、カラーコードパターンP3は位置検出用パターンP1に対して予め定められた位置に配置される。
図1の配色は、赤(R)、緑(G)、青(B)、黄(Y)、シアン(C)、マゼンタ(M)を表す。レトロターゲット部P1は黒地の中央に再帰反射材料からなる円形パターンを有している。レトロターゲット部P1に光を照射すると再帰反射材料から再帰反射するので、レトロターゲット部P1を検出し易くなる。このような再帰反射材料を有するターゲットをレトロターゲットという。この円形パターン内部を再帰反射材料に代えて白色にしても良い。白色の場合にはカラーコードターゲットCT1を製作し易く、光源色補正用の白色としても使用できる。
【0033】
レトロターゲット部P1は、位置検出用パターンとして機能し、ターゲット自体の検出用、ターゲットの位置(重心)検出用、ターゲットの傾斜検出用として使用される。3つのレトロターゲット部P1は一直線上にない3以上のパターンとして機能するので、カラーコードターゲットCT1の傾斜を検出できる。また、レトロターゲットの位置を基準にして、基準色パターンP2(白色領域P4及び輝度スケール領域P5を含む)、カラーコードパターンP3の抽出に使用される。
【0034】
基準色部P2は、色彩の基準として用いる色彩の単位領域を有する。本実施例では赤、緑、青の光三原色の色彩が使用される。すなわち、相対比較時の参照用、色
ずれを補正するためのカラーキャリブレーション用として使用される。また、基準色部P2は、カメラ間の色補正に使用される。複数のカメラで同一基準色を撮影し、撮影画像間の色ずれを補正する。さらに、基準色部P2の単位領域の色彩には、光源色補正に用いる色彩が使用される。光源色補正とは、同じ色でも光源(自然光、照明等)によって異なって見えるので、画像の色彩を光源によらない一定の色に統一する補正をいう。すなわち、カラーバランスの調整及び輝度補正(濃淡補正)に使用される。また、RGB色を画面上でほぼ等しい輝度が得られるように定めておくと、RGBそれぞれの輝度をその近傍で調整してカラーバランスを取ることが容易になるので、好ましい。
【0035】
また、基準色部P2は、簡易な方法で作成されたカラーコードターゲットCT1の色彩補正用として使用できる。例えば、色管理がなされていないカラープリンター(インクジェット・レーザー・昇華型等のプリンタ)で印刷したカラーコードターゲットCTを使用する場合は、使用プリンタ等で色彩に個体差が出るが、基準色部P2とカラーコード部P3の色を相対比較し補正することで、個体差の影響を押さえることができる。
さらに、基準色部P2は光源色補正のために白色領域P4と輝度スケール領域(本実施例ではグレースケール領域)P5を有する。これらについては後述する。
【0036】
カラーコード部P3は、その各単位領域への配色の組み合わせによってコードを表現する。コードに使用するコード色の数により表現可能なコード数が変化する。例えば、コード色数がnで単位領域数が3の場合、n×n×n通りのコードを表せる。信頼度を上げるため、他の単位領域に使用されている色を重複して使用しないという条件を課した場合でも、n×(n−1)×(n−2)通りのコードを表せる。n=6の場合には、6×5×4=120通りのコードを表せる。本実施例のようにn=6、単位領域数が6の場合には、6×5×4×3×2×1=720通りのコードを表せる。そして、コード色数を増やせばコード数を増加できる。
【0037】
さらに、カラーコード部P3の単位領域の数とコード色数を等しくするという条件を課すと、全てのコード色がカラーコード部P3に使用されるため、基準色部P2との比較のみでなく、カラーコード部P3の各単位領域間で色を相対比較することにより、各単位領域の色彩を確認して識別コードを決定することができ、信頼性を上げることができる。さらに、各単位領域の面積を全て同じにする条件を追加すると、カラーコードターゲットCTを画像中から検出する際にも使用できる。これは、異なる識別コードをもつカラーコードターゲットCT間でも各色の占有する面積が同じになるため、カラーコード部P3全体からの検出光からはほぼ同様な分散値が得られるからである。また、単位領域間の境界は等間隔に繰り返され、明確な色彩差が検出されるので、このような検出光の繰り返しパターンからもカラーコードターゲットCTを画像中から検出することが可能である。
【0038】
白色領域P4は、基準色として用いるため、また、光源色補正のため白色が施される。すなわち、基準色として色
ずれのキャリブレーションに使用される。また、白色は光源により敏感に変化するので、光源によらない一定の色に統一する光源色補正に好適である。また、カラーコードターゲットCT1の傾斜検出用とカラーコードターゲットCT1の四隅の内、一カ所だけレトロターゲットが配置されない箇所を白色領域P4とすることにより、これをカラーコードターゲットCT1の傾斜検出用に使用できる。この場合、傾斜検出用にはレトロターゲットと異なるパターンであれば良いので、目視でコードを確認するための番号などの文字列を印刷しても良く、また、バーコード等のコード領域を含んでも良い。本実施例では白色領域P4がレトロターゲット部P1より小型化されて右下隅に設けられ、残りにグレースケール領域P5が配置されている。白色領域P4には番号が付記されている。
【0039】
図2にグレースケール領域P5の例を示す。グレースケール領域P5には、光源色補正のため無彩色で輝度の異なる複数の諧調の色が施される。かかる無彩色で諧調の異なる複数の色を配置したパターンをグレートーンパッチという。諧調数を増やす程光源色補正の精度を向上できる。この例では、無彩色として白、黒を含む11階層の色を輝度の高い方を左にして、階調順に横一列に並べて配置している。本実施例(
図1)では、白、黒を除く7階調の横長の無彩色パターンが、輝度の高い方を下にして、階調順に上下に配置されている。グレートーンパッチにより、光源色を算出し、光源色の補正を行なうことができる。また、複数のデジタルカメラで同時にグレートーンパッチを撮影した際に、異なるホワイトバランスや露出を原因とする画像間の明るさや色差を補正することができる。また、単一の撮影画像を用いてグレートーンパッチからデジタルカメラのレスポンス関数を推定することができる。
【0040】
輝度スケール領域P5には、光源色補正のため色相が同一で輝度の異なる複数の諧調の色が施される。この輝度スケール領域P5をカラーコードターゲットの一部に設ける他に、輝度スケール領域P5をシート状のカラーキャリブレーションシートとし、既存のカラーコードターゲットと共にキャリブレーションパネルやキャリブレーションボックスに貼り付けて使用することができる。また、既存のカラーコードターゲットの上又は近傍に貼り付けて使用することもできる。
【0041】
[キャリブレーションボックス]
図3にキャリブレーションボックスの例を示す。画像色彩補正装置1では、測定対象物2の周囲に円周上に配置された、場合によっては半球(上側)の球面上に配置された、ステレオカメラを用いてステレオマッチング法により測定対象物2の3次元モデリングを行なう。単カメラで場所を移動しながら撮影した画像をステレオペアとして用いても良い。しかし、複数台のデジタルカメラで撮影した画像を測定対象物モデルに重ね合わせた場合、光学的に不整合(色ずれ)の発生したテクスチャとなる。この原因は各カメラにより露出やホワイトバランスなどのパラメータが異なることにより発生するものである。カメラパラメータを統一した場合においてもデジタルカメラの個体差があり、色誤差が発生してしまう。画像色彩補正装置1が人体計測システムに使用される場合には人体の表面の色彩が光により微妙に変わることから、特に光源色補正が重要である。撮影画像における測定対象物2の表面の色彩を補正するためには、測定対象物2の表面の各部に近い位置に配置したカラーコードターゲットCT(輝度スケール領域P5を有する)を用いて行なうのが好適である。例えば、人体に近い大きさのキャリブレーションボックスCBを用意し、その表面に複数のカラーコードターゲットCTを配置し、複数のカメラの撮影画像から光源色を算出し、画像間の輝度の誤差を補正する。
【0042】
図3には、直方体の各側面に6個ずつ大きいカラーコードターゲットCTが配置され、大きいカラーコードターゲットCTの間に小さい8個のカラーコードターゲットCTが配置され、上面に小さい9個のカラーコードターゲットCTが配置されたキャリブレーションボックスCBの例を示す。大きい24個のカラーコードターゲットは第1の1組のカラーコードターゲットに属し、小さい41個のカラーコードターゲットは第2の1組のカラーコードターゲットに属する。1組のカラーコードターゲットCTにおいては、基準色パターンP2の配色は全て同一であり、各カラーコードパターンP3の配色は全て異なる。白色領域P4には白色の地に各カラーコードターゲットCTを識別する番号が付与されている。
図3は、グレースケール領域P5がない例であるが、本実施例では、
図1に示すようにグレースケール領域P5が白色領域P4に隣接して配置されているカラーコードターゲットCT1が配置されたキャリブレーションボックスをCB用いるものとする。また、輝度スケール領域P5をシート状にしたカラーキャリブレーションシートを
図3のカラーコードターゲットCTが貼られていない隙間に配置して用いても良い。
【0043】
[画像色彩補正装置]
図4に本実施例における画像色彩補正装置1の構成例を示す。画像色彩補正装置1は、例えば、測定対象物2(キャリブレーションボックスCB等を含む)を撮影する撮影部3、撮影画像や画像処理した画像を表示したり、入出力操作を行う入出力部4、撮影画像から測定対象物2に貼り付けられたカラーコードターゲットCT1を抽出するターゲット抽出部5、撮影パラメータの演算、対象物の三次元座標の演算等の演算処理を行う演算部6、色補正(光源色補正を含む)等、撮影画像に種々の画像処理を行う画像処理部7、撮影画像、モデル画像等の画像、画像処理や演算処理に有用なデータを記憶し、必要に応じて処理中のデータを記憶する記憶部8、画像色彩補正装置1及びその各部を制御して、画像色彩補正装置1として機能させる制御部9により構成される。このうち、ターゲット抽出部5、演算部6、画像処理部7、制御部9はパーソナルコンピュータ(PC)10の機能を用いて実現でき、PC10内に構成される。
【0044】
撮影部3は、測定対象物2を撮影するためのステレオカメラ又は単カメラ等を有し、また、撮影画像を取得する撮影画像取得部31を有する。本実施例では撮影画像取得部31は少なくとも異なる2方向からの撮影画像を取得する。キャリブレーション時には、カラーコードターゲットCT1を撮影し、その撮影画像を取得する。入出力部4は、撮影画像、モデル画像や操作画面を表示する表示部41、プリンタやスピーカ等を有する出力部42、マウスやキーボード等を有する入力部43を有する。
【0045】
ターゲット抽出部5は、撮影画像取得部31で取得された撮影画像から、キャリブレーションボックスCB等に貼り付けられたカラーコードターゲットCT1の位置検出用パターンP1を検出し、位置検出用パターンP1の位置を求める位置検出部51、位置検出部51で検出されたカラーコードターゲットCT1から基準色パターンP2を抽出する基準色パターン抽出部52、位置検出部51で検出されたカラーコードターゲットCT1からカラーコードパターンP3を抽出するカラーコードパターン抽出部53を有する。基準色パターン抽出部52は、位置検出部51で検出されたカラーコードターゲットCT1から、白色領域を抽出する白色領域抽出部521と輝度スケール領域P5を抽出する輝度スケール領域抽出部522を有する。本実施例では位置検出部51は少なくとも異なる2方向から取得された撮影画像から各位置検出用パターンP1を順次検出する。
【0046】
演算部6は、キャリブレーションのために貼り付けられたカラーコードターゲットCT1やキャリブレーションボックスCBに貼り付けられたカラーコードターゲットCT1の撮影画像から位置検出部51で抽出された位置検出用パターンP1の位置に基づいてカメラの撮影パラメータを求める撮影パラメータ演算部61、撮影パラメータ演算部61で求められた撮影パラメータを用いて、測定対象物2の撮影画像から測定対象物2の位置(三次元座標)を演算して求める三次元座標演算部62、標定計算処理を行う標定部63を有する。標定部63は焦点距離fを推定する焦点距離推定部631を有する。
【0047】
画像処理部7は、基準色パターン抽出部52で抽出された各基準色パターンP2の色彩を用いてカメラ及び撮影画像の色補正を行なう色補正部71、位置検出部51で求められた位置検出用パターンP1の位置を用いて、異なる複数方向から撮影された撮影画像のつなぎ合わせを行う画像合成部72、位置検出部51で求められた位置検出用パターンP1の位置を用いて、異なる複数方向から撮影された撮影画像から、測定対象物モデルを作成するモデル形成部73、モデル形成部73で形成された測定対象物モデルに、色補正部71で補正された測定対象物2のテクスチャを貼付するテクスチャ形成部74、基準色パターン抽出部52で抽出された基準色パターンP2の各基準色の色彩とカラーコードパターン抽出部53で抽出されたカラーコードパターンP3の各コード色の色彩を比較して、カラーコードパターンP3の色彩の配置を求め、カラーコードターゲットCT1の白色領域P4に付された番号と対応付けてカラーコード記憶部83に記憶すると共に、求められたカラーコードパターンP3の色彩の配置を、記憶部8に記憶された色彩配置−コード対応表を参照してカラーコードを判別するカラーコード判別部75、撮影パラメータ演算部61で求められた撮影パラメータを用いて、画像データの補正を行なう画像データ補正部76を有する。
【0048】
記憶部8は、撮影画像を記憶する撮影画像記憶部81、基準色パターンP2の色彩データを記憶する基準色記憶部82、各カラーコードパターンP3の色彩配置データを記憶するカラーコード記憶部83、モデルデータを記憶するモデル記憶部84、内部パラメータと焦点距離fの関係を記憶する撮影パラメータ記憶部85を有する。また、各カラーコードパターンの色彩配置データとコード番号との対応関係を記録する色彩配置−コード対応表を有し、カラーコード判別部75では、この色彩配置−コード対応表を参照してカラーコードを判別する。また、使用が予定される複数種類のカラーコードターゲットCTについて、カラーコードターゲットCTの種別を示す種別コード番号を記憶する。色彩配置−コード対応表はカラーコードターゲットCTの種別毎に記憶する。
【0049】
[カラーコードターゲットの検出]
次に、カラーコードターゲットCTの検出について説明する。まず、ターゲット抽出部5の位置検出部51にて撮影画像からカラーコードターゲットCTを抽出する。抽出方法として、(1)カラーコードターゲットCT中の位置検出用パターン(レトロターゲット部)P1を探索する方法、(2)カラーコード部P3の色分散を検出する方法、あるいは(3)彩色された位置検出用パターンを用いる方法など種々の方法がある。
【0050】
(1)カラーコードターゲットCTに再帰反射材料を用いたレトロターゲットが含まれている場合は、明度差が鮮明なパターンを使用するので、カメラの絞りを絞りフラッシュ撮影することにより、レトロターゲットのみが光った画像を取得でき、この像を2値化することにより簡単にレトロターゲットを検出できる。
【0051】
図5はレトロターゲットの重心位置検出を説明するための図である。ただし、レトロターゲットでなく、黒地に白の塗装で形成した白色円形のターゲットでも処理は同様である。
図5の例ではレトロターゲットは2つの同心円で形成されているが、外側が必ずしも円でなくとも良い。
図5(A1)は同心円のうち小円の内側である内円部204の明度が明るく、小円と大円との間に形成された円環状の部分である外円部206の明度が暗いレトロターゲット200、
図5(A2)は(A1)のレトロターゲット200の直径方向の明度分布図、
図5(B1)は内円部204の明度が暗く、外円部206の明度が明るいレトロターゲット200、
図5(B2)は(B1)のレトロターゲット200の直径方向の明度分布図を示している。レトロターゲットが
図5(A1)のように内円部204の明度が明るい場合は、測定対象物2の撮影画像において重心位置での反射光量が多く明るい部分になっているため、画像の光量分布が
図5(A2)のようになり、光量分布の閾値Toからレトロターゲットの内円部204や中心位置を求めることが可能となる。レトロターゲットを使用すると、反射光量が大きく検出し易いという利点がある。白色円形のターゲットでは製作が容易である。
【0052】
レトロターゲットの存在範囲が決定されると、例えばモーメント法によって重心位置を算出する。例えば、
図5(A1)に表記されたレトロターゲット200の平面座標を(x、y)とする。そして、レトロターゲット200の明度が、しきい値To以上のx、y方向の点について、(式1)、(式2)を演算する(*は乗算演算子)。
x
g={Σx*f(x、y)}/Σf(x、y) −−−−(式1)
y
g={Σy*f(x、y)}/Σf(x、y) −−−−(式2)
(x
g、y
g):重心位置の座標、f(x、y):(x、y)座標上の明度値
なお、
図5(B1)に表記されたレトロターゲット200の場合は、明度がしきい値To以下のx、y方向の点について、(式1)、(式2)を演算する。これにより、レトロターゲット200の重心位置が求まる。
【0053】
(2)通常、カラーコードターゲットCTのカラーコード部には多数のコード色が使用され、色の分散値が大であるという特徴がある。このため、分散値の大きい箇所を画像中から見出すことにより、カラーコードターゲットCTを検出できる。
(3)カラーコードターゲットCTに使用している3隅のレトロターゲットに異なる色をもたせ、それぞれのレトロターゲットが反射する色を異なるものにする。3隅のレトロターゲットに異なる色をもたせているため、1つのカラーコードターゲットに属する各レトロターゲットを判別しやすい。
【0054】
[光源色補正アルゴリズムのフロー]
図6に光源色補正(広義の光源色補正)のアルゴリズムのフロー例を示す。まず、カラーコードターゲットCT1を検出する(S010)。前述の(1)〜(3)のいずれかで検出できる。例えば、(1)のレトロターゲット部の検出又は(2)の色分散によるカラーコードターゲット検出を行なう。
【0055】
次に、カラーコードターゲットCT1のコード番号を検出する(S020)。カラーコードターゲットCT1は、カラーコード部P3の配色の差異により識別できる。よって、撮影画像におけるカラーコードターゲットCT1の寸法と傾きを補正した後に、基準色パターン抽出部52にて、基準色部P2を予め定められたコースで順次走査して各基準色(単位領域)の色彩を抽出する。カラーコードパターン抽出部53にて、カラーコード部P3を予め定められたコースで順次走査して各カラーコード色(単位領域)の色彩を抽出する。本実施例では、各単位領域への配色の組み合わせについて、他の単位領域に使用されている色を重複して使用しないという条件、及びカラーコード部P3の単位領域の数とコード色数を等しくするという条件が適用されるので、各単位領域の色彩を各基準色と比較し、また、カラーコード色間で相互に比較しながら確認して識別コードを決定できる。これにより、カラーコード判別部75は、抽出されたカラーコード部P3の色彩配置を、記憶部8に記憶された色彩配置−コード対応表を参照して、カラーコードターゲットCT1のコード番号を判別する。
【0056】
次に、輝度スケール領域P5又は/及び白色領域P4の検出を行なう(S030)。カラーコードターゲットCT1の輝度スケール領域P5又は/及び白色領域P4を自動あるいは手動で指定する。輝度スケール領域P5及び白色領域P4は、カラーコードターゲットCT1の検出に使用される3個のレトロターゲットに対して予め定められた位置関係にあることから、輝度スケール領域抽出部522又は/及び白色領域抽出部521は先に求められた3個のレトロターゲットの位置から対応する位置を自動的に走査し、検出された色彩を確認する。本実施例では、カラーコードターゲットCT1の右下隅の領域を輝度スケール領域P5として検出する。なお、マニュアルで対応する位置を指定することも可能である。
【0057】
[光源色補正の前処理]
次に、光源色補正(狭義の光源色補正)の前処理を行う。この前処理も狭義の光源色補正に含まれる。この前処理は色補正部71にて行われる。
まず、逆レスポンス関数を推定し、輝度スケール領域P5において検出された画素値(M)に逆レスポンス関数を掛ける処理を行う(S040)。一般的なデジタルカメラではシーン(撮影されるべき撮影対象及びその背景)の放射輝度(I)をデジタルカメラの画素値(M)に対応させるためのレスポンス関数が掛かっている。これは、画像をガンマ補正がされたディスプレイ上で確認した時に自然に見えるようにするためでる。ガンマ補正とは、白色領域がディスプレイ上で、有彩色やグレーが入らず白色になるように基準となる光(RGB)にモニタ特性の逆関数を掛ける補正することをいう。ところが、レスポンス関数の補正に関して、画像の輝度値が線形でないので、輝度補正する場合に単純ではない。例えば、2枚の画像の画素値の比を考えた場合、画素値(M)によって画素値の比が異なってしまう。例えば、白色パッチ(輝度スケール領域の白色部分又は白色領域P4)から輝度補正用のパラメータを推定した場合、そのパラメータを白色パッチ以外の領域(輝度スケール領域の白色以外の部分)に補正パラメータとして使うと補正を正しく行なうことができない。そのため、画素値から放射輝度を算出するには画素値にレスポンス関数の逆関数を掛けて、画素値を線形に変換する必要がある。
【0058】
図7にカメラのレスポンス関数推定のフロー例を示す。まず、輝度スケール領域抽出部522にて輝度スケール領域P5としてグレートーンパッチを検出する(S030)。この際、白色領域抽出部521で白色領域P4を、基準色パターン抽出部52で基準色パターンP2のRGB領域を併せて検出しても良い。白色領域P4と基準色パターンP2のRGB領域を併用することにより、カラーバランスの調整精度を向上できる。次に、逆レスポンス関数の推定処理(S040)として、色補正部71にて次の工程を行う。まず、グレートーンパッチの各パッチ(諧調が等しい部分を1つのパッチとする)の画素値(Mn)の抽出を行なう(S041)。次に、各パッチの画素値の平均値(Mn)を取得する。ここで、nはパッチ番号を表す(n=0〜10)。次に、多項式で画素値(Mn)を近似する(S042)。各パッチの既知の諧調値を放射輝度(In)とする。各点Pn(In,Mn)(n=1〜10)を通る関数f(M)を多項式(式3)で近似する。多項式近似は最小二乗法にて行なう。なお、白色パッチの場合には、n=Nで、輝度値=1である。
【数1】
【0059】
図8にレスポンス関数の例を示す。
図9に逆レスポンス関数の例を示す。逆レスポンス関数はレスポンス関数の逆関数である。
【0060】
次に、
図6に戻り、色補正部71にて光源色を算出する(S050)。カラーコードターゲット検出工程(S010)で検出した輝度スケール領域P5がグレートーンパッチである時、又は白色領域P4が白色パッチである時は、領域内の画素値(I)(グレートーンパッチの場合は諧調毎に)の平均を光源色(Ep)(光源のパワーを分光分布で示したもの)とする(式4)(川上玲,R.T.Tan,池内克史:“光源環境の変化を利用した物体色の推定”,画像の認識・理解シンポジウム(MIRU2004)参照)。それ以外のパッチ(カラートーンパッチ)を検出した場合、それぞれの諧調毎にパッチの既知である表面色(S)(表面反射率を分光分布で示したもの)で領域内の画素値(I)を割ることで光源色(Ep)(分光分布)を算出する。そして、算出された光源色(Ep)のRGB成分の二乗和が1となるように正規化する。
【数2】
I:画素値(実測値を分光分布で示したもの)
S:表面色(表面反射率を分光分布で示したもの、白の場合は1)
Ep:推定された光源色(分光分布)
【0061】
[光源色補正]
次に、色補正部71にて光源色補正(狭義の光源色補正)を行なう(S060)。
図10は光源色補正(狭義の光源色補正)のアルゴリズムを説明するための図である。光源を不知の光源に代えて標準の光源を用いるのと等価な補正を行う。撮影した画像に含まれる物が拡散反射物体であり、相互反射や鏡面反射を含まない場合、画像の画素値(I)と表面色(S)と光源色(Ep)の関係は(式4)で表される。ここで、表面色(S)とは物体固有の色であり、光源色(Ep)の変動に対して不変な色である。つまり、光源色補正を行い、光源色(Ep)によらない物体固有の色(S)に基づく画素値を求める。
【0062】
光源色補正(狭義の光源色補正)は、撮影した画像の全画素値を算出された光源色(Ep)で割ることで行なわれる。ここで、(I〜)は補正後の画素値、(I)は補正前の画素値、(Ep)は推定された光源色である。
【数3】
I〜:補正後の画素値
I :補正前の画素値
Ep:(式4)で推定された光源色
【0063】
次に、輝度の補正を行なう(S070)。複数のカメラで同時に画像を撮影した場合について考える。それぞれのカメラで撮影した画像について、光源色の補正(S060)を行なう。この時の各画像は光源色が補正されているが、画像間では画像の明るさを表す輝度が異なる。そこで、各画像について、撮影したグレートーンパッチP5の画素値を基準として輝度を補正する。複数の画像のパッチの画素値の比(R)を計算する。そして、この画素値の比を片方の画像に掛けることにより複数の画像間における輝度の補正を行なう。
【数4】
R:明るさの比
Ep:各カメラにおける光源色
I:各カメラにおける画素値
これにより、画像間の輝度を合わせることができる。なお、ここでは、光源色補正(広義の光源色補正)アルゴリズムについてグレートーンパッチに適用する例を説明したが、カラートーンパッチについても同様に適用できる。
【0064】
[カメラパラメータの調整]
次にパラメータの調整について説明する(特開2007−147457号公報参照)。
【0065】
[相互標定]
本実施の形態において、焦点距離の推定は相互標定時に行われる。ステレオペア選択された撮影画像について、特徴点や基準点と対応点の座標を用いて、標定部63により標定計算処理を行う。標定計算処理により、撮影したカメラの位置、傾き等の外部標定要素、対応点の位置、計測精度(例えば、基準点がある場合には、バンドル調整で算出された三次元座標と基準点との残差の標準偏差、無い場合には、相互標定時の縦視差が用いられる)を求めることができる。標定計算処理は、一対の撮影画像又は一対のモデル画像の対応付けに関しては相互標定で行ない、複数または全画像間の標定に関してはバンドル調整にて行う。相互標定は標定部63で行なわれる。
【0066】
図11は、ステレオ画像におけるモデル画像座標系XYZとカメラ座標系xyzの関係の説明図である。モデル画像座標系の原点を左側の投影中心にとり、右側の投影中心を結ぶ線をX軸にとるようにする。縮尺は、基線長を単位長さにとる。このとき求めるパラメータは、左側のカメラのZ軸の回転角κ1、Y軸の回転角φ1、右側のカメラのZ軸の回転角κ2、Y軸の回転角φ2、X軸の回転角ω2の5つの回転角となる。この場合左側のカメラのX軸の回転角ω
1は0なので、考慮する必要はない。
【0067】
【数5】
【0068】
このような条件にすると、(式7)の共線条件式は(式8)のようになり、この式を解けば各パラメータが求まる。
【数6】
【0069】
ここで、モデル座標系XYZとカメラ座標系xyzの間には、次に示すような座標変換の関係式(式9)、(式10)が成り立つ。
【数7】
【0070】
この式の中の、−cが画面距離で、焦点距離fと同等なものなので、この値を変動させ、最適値を選ぶことになる。なお、左右のカメラの焦点距離が異なる時は、(式9)と(式10)のcの値が異なる。
【0071】
これらの式を用いて、次の手順により、未知パラメータを求める。
(i)パラメータ(κ1、φ1、κ2、2、ω2)の初期近似値は通常0とする。
(ii)共面条件式(式8)を近似値のまわりにテーラー展開し、線形化したときの微分係数の値を式(式9)、(式10)により求め、観測方程式をたてる。
(iii)最小自乗法を適用して、近似値に対する補正量を求める。
(iv)近似値を補正する。
(v)補正された近似値を用いて(ii)〜(iv)までの操作を収束するまで繰り返す。
【0072】
仮に、標定点の配置が悪い等の場合、収束しない場合がありうる。正常に行われなかった場合は、標定結果表示でエラーを出力し、どこの画像が悪いか表示する。この場合、画像上に別の標定点があれば変更して上記計算を繰り返す。だめなら標定点の配置変更を行なう。
【0073】
このように、ステレオペア選択された各画像について、抽出された標定点で標定し、撮影したカメラの位置、傾き、対応点の位置、計測精度を求めることができる。標定計算処理は、一対の撮影画像又は一対のモデル画像の対応付けに関しては相互標定で行ない、複数または全画像間の標定に関しては後述するバンドル調整にて行う。
【0074】
〔モデル形成〕
モデル形成部73は、標定部63によって標定計算処理された外部パラメータ(撮影したカメラの位置、傾き)を用いて、モデル及びモデル画像を形成する。ここで、モデル画像とは、偏位修正画像ともいい、撮影画像の一対である左右画像の対応点を同一エピポーラライン上に再配置したものをいう。
【0075】
図12にモデル画像の例を示す。標定処理の結果を用いてモデル画像を形成すると、このように、左右画像のリファレンスポイントRFは同一エピポーラライン(水平線)EP上に再配列される。TGはターゲット(本実施例ではカラーコードターゲットCT1)である。焦点距離の推定を行なう場合には、焦点距離fを変数として離散値を用いるために、左右画像に僅かな縦視差が生じ得るが、本実施の形態ではこれらの画像もモデル画像として扱う。モデル記憶部84は、モデル形成部73で形成された測定対象物2のモデルデータ及びモデル画像を記憶する。表示部41は、ターゲット抽出部5で行う特徴点抽出、対応点探索、ステレオマッチング等の処理において、撮影画像又はモデル形成部73により形成されたモデル画像を一対の画像として表示する。
【0076】
〔焦点距離推定〕
図13に焦点距離推定の処理フロー例を示す。ここでは、ズーム式カメラにおいて予め、複数焦点の焦点位置にてキャリブレーションを行い、これらのデータより焦点距離fに対するカメラ内部パラメータ(主点位置及びレンズディストーション)の近似曲線を求め、撮影パラメータ記憶部85に記憶しておく(ステップS110:内部パラメータ記憶工程)。画像計測用に任意のズーム位置(焦点位置)にてステレオ撮影した(ステップS120、
図13では第1の撮影工程と表示)場合、相互標定にて最確(縦視差が最も小さい)な焦点距離fを推定する(ステップS135:標定・焦点距離推定工程)。焦点距離fの推定は標定部63の焦点距離推定部631にて行なう。推定された焦点距離fに基づいてカメラ内部パラメータ(ディストーション及び主点位置)を近似曲線より取り出し、外部パラメータ(カメラの位置、傾き)も相互標定にて演算される(ステップS140:撮影パラメータ演算工程)。このようにして求めたカメラ内部パラメータ及び外部パラメータを用いて、撮影対象物2のモデルを形成し(ステップS155:モデル形成工程)、モデル三次元座標演算を行う(ステップS160:三次元座標演算工程)。かかる手法を焦点距離推定法と称する。
【0077】
モデル画像を形成するためには、少なくとも1回の相互標定を行う。この相互標定の際に、焦点距離推定部631において、ターゲット抽出部5で求められた特徴点、基準点及び対応点を用い、焦点距離fを変数として、一対のモデル画像間の残存縦視差を最小にするように、撮影レンズの焦点距離を推定する(ステップS135)。すなわち、焦点距離推定部631では、相互標定を行い最初のモデル画像を形成する過程で焦点距離fを推定する。このとき、焦点距離推定部631は変数としての焦点距離fを標定部63に供給し、標定部63で相互標定の計算を行って外部標定要素を算出し、モデル形成部73ではその外部標定要素を用いてモデル画像を形成し、焦点距離推定部631では、これらの焦点距離fを変化させたときのモデル画像を比較して残存縦視差が最小となる焦点距離f、すなわち、左右エピポーララインの垂直方向の差異を最小になるような焦点距離fを最確値とする。なお、相互標定を繰り返し行うことにより標定精度を向上できるので、2回目以後の相互標定で形成されたモデル画像を比較して焦点距離fを推定しても良い。
【0078】
焦点距離fを変数として比較する際に、例えば、ズーム式カメラ2の焦点距離が7.2mmから50.8mmで調整可能な場合を取り上げる。焦点距離データの測定個数を6個とすると、7.2mmが最広角となり、52.2mmが最望遠となり、中間の測定点として光学的意味での等間隔で測定をする為に、変数として、8.7mm、11.6mm、24.8mm、39.0mmが選択される。また、この焦点距離の最確値を近似的に求める手法として1段階目として変数を2mm間隔とし、2段階目として1段階目で求めた最確値の近傍で変数を0.5mm間隔とするなどにより、段階式に最確値を求め、高速化をはかることも可能である。そして、後述するように、推定した焦点距離fより、主点位置とレンズディストーションのパラメータを近似曲線より算出・取り出し、これをカメラ内部パラメータとする。また、毎回推定された焦点距離fと対応する内部パラメータを用いて相互標定を行うことにより、焦点距離fを高精度に求めることができる。
【0079】
〔バンドル調整〕
標定計算処理は、複数または全画像間の標定に関してはバンドル調整にて行う。バンドル調整は標定部63にて行なう。カメラ内部パラメータを演算処理するに際し、例えば写真測量分野で使用されている「セルフキャリブレーション付きバンドル調整法」を用いることができる。ここで、「バンドル調整」とは、被写体、レンズ、カメラの撮像面を結ぶ光束(バンドル)は同一直線上になければならないという共線条件に基づき、各画像の光束1本毎に観測方程式をたて、最小自乗法により外部標定要素(撮影したカメラの位置と傾き)とリファレンスポイントRFの座標位置を同時調整する方法である。「セルフキャリブレーション付き」とはさらに、キャリブレーション要素、即ちカメラ内部標定要素(主点位置及びレンズディストーション)を求めることができる方法である。セルフキャリブレーション付きバンドル調整法(以下単に「バンドル調整法」という)の共線条件基本式は、次の(式11)と(式12)である。
【0080】
【数8】
この(式11)と(式12)は、共線条件式(式7)を基本式とするものである。即ちバンドル調整法は、(式11)と(式12))を用いて、複数画像から最小自乗近似して、最適解を算出する手法であり、各撮影位置のカメラの外部標定要素を同時に求めることが可能となる。即ち、カメラのキャリブレーション要素を求めることが可能となる。
【0081】
ここで、内部標定要素の補正モデルとして、放射方向レンズ歪を有する場合の一例を次の(式13)に示す。
【数9】
x
0,y
0:画面中心(主点位置)
【0082】
〔内部パラメータ〕
ここで、カメラ内部標定要素(カメラ内部パラメータ)について説明する。
図14は、焦点距離と内部パラメータ関数に用いられる係数の関係を説明する図で、
図14(A)は(式13)の係数k1、
図14(B)は(式13)の係数k2、
図14(C)は画像座標系xでのカメラ主点と画像中心のx軸位置ずれ係数x
0、
図14(D)は画像座標系yでのカメラ主点と画像中心のy軸位置ずれ係数y
0を表している。ここでは、前述の説例のように、ズーム式カメラの焦点距離が7.2mmから50.8mmで調整可能な場合を取り上げる。焦点距離データの測定個数を6個とすると、7.2mmが最広角となり、52.2mmが最望遠となり、中間の測定点として光学的意味での等間隔で測定をする為に、8.7mm、11.6mm、24.8mm、39.0mmが選択される。
【0083】
(式13)の係数k
1、k
2は、最広角側で絶対値が最大となり、最望遠側では小さくなっている。画像座標系xでのカメラ主点と画像中心のx軸位置ずれ係数x
0は、ズーム式カメラの焦点距離が11.6mmで極小値を、52.2mmで最小値4.41をとり、24.8mmで最大値4.55をとる複雑な変化をしているので、焦点距離の五次曲線で近似している。画像座標系yでのカメラ主点と画像中心のy軸位置ずれ係数y
0は、ズーム式カメラの焦点距離に応じて単調に変化している。なお、チャート撮影画像はピントが合った状態で撮影されるので、ズーム式カメラ2の焦点距離fと、投影中心点O
1、O
2から画像座標系までの画面距離cとは、等しくなっている。
【0084】
図14の近似曲線に焦点距離fを入力すると、内部パラメータ関数に用いられる係数k
1、k
2、x
0、y
0が得られる(ステップS135)。ここで、カメラ主点のずれである座標(x
0、y
0)が光軸中心(主点位置)を表す。そして、内部パラメータ関数としての(式11)、(式12)、(式13)にこれらの係数を代入して、それぞれの観測点に関して観測方程式を立てる。そして、観測方程式を連立して解くと共に、最小自乗法を適用することで、最も確からしい内部パラメータが算出できる。これらの内部パラメータと焦点距離fの関係は撮影パラメータ記憶部85に入力されており、撮影パラメータ記憶部85から取得可能である。また、ズームレンズの場合には、内部パラメータは撮影画角に対応した撮影条件による影響を加味して読み出される。
また、内部パラメータの主点位置とレンズディストーションは、パスポイント(対応点)の正確な三次元座標を算出するために使用される。
【0085】
〔撮影画像の補正〕
画像データ補正部76は、これらの内部パラメータ係数k
1、k
2、x
0、y
0を用いて撮影画像又はモデル画像を補正する。モデル形成部73は、標定部63によって標定計算処理された外部パラメータ(撮影したカメラの位置、傾き)から、測定対象物2のモデル及びモデル画像を形成する(ステップS155)。この際に、画像データ補正部76で補正された撮影画像データやモデル画像データがあれば、これを用いて新たなモデル画像を形成する。これにより、レンズ歪みの影響が除去されたモデル画像を形成できる。表示部41は補正されたモデル画像を表示する。
【0086】
モデル形成部73は、カメラで撮影されたステレオ画像について相互標定で得られた外部標定要素を用いて偏位修正画像(モデル画像)を生成する機能を有し、一組のステレオ撮影された画像を偏位修正して、立体視できるように調整する。さらに、偏位修正されたステレオ画像から、いわゆる絶対標定を行って、各画素(ピクセル)の地上座標を計算する。
【0087】
画像データ補正部76は、さらに絶対標定又は相互標定で得られたステレオ画像データをオルソ画像に変換する機能を有する。オルソ画像とは、写真測量技術に基づき、カメラの傾きや比高等による歪みを補正して正射投影とした画像である。撮影画像記憶部81に格納されたステレオ画像データは、中心投影画像とよばれるものである。画像データ補正部76は、ステレオ画像データの画像を中心投影から正射投影(オルソ)画像に作成し直して、測定対象物2の詳細なモデル画像を作成する。
補正された画像データを用いて精密標定、三次元座標演算を行なうことができる。
【0088】
本実施例における焦点距離推定法(5)の他に、次のようなキャリブレーション方法(1)〜(4)も可能である。
【0089】
(1)目盛り合わせ法:焦点距離は一度目盛り中心に合わせてキャリブレーションを行い、再度その焦点距離に目検討で合わせ、前記キャリブレーションデータを使用して精度評価を実施する。
(2)デジタルカメラデータ解析ツール利用法:デジタルカメラの画像ファイルの規格として使用されるExif(イグジフ、Exchangeable Image File Formatの略語)形式の画像ファイルからデジタルカメラのデータ解析ツールにて得られた焦点距離を使用し、ディストーションと主点位置のパラメータは(3)に記すオンサイト法によりデータ取得し、キャリブレーションデータを作成する。
(3)オンサイト法:予め目盛に合わせて例えば6箇所の焦点距離にてキャリブレーションを実施し、これらのデータより焦点距離に対しディストーション及び主点位置に関する関数を作成しておく。任意のズーム位置でステレオ撮影すると仮定し、焦点距離はセルフキャリブレーション付きバンドル調整により取得する。例えば、パスポイント(対応点)10点とし、取得された焦点距離に対応するキャリブレーションデータを近似曲線より算出する。
(4)固定焦点法:焦点距離を固定してキャリブレーションを実施し、その固定した焦点位置のみにて撮影・解析を行う。
(5)焦点距離推定法:本実施例に該当する方法である。相互標定にて縦視差が最も小さくなるような焦点距離を最確値として算出し、ディストーションと主点位置のパラメータは(4)に記すオンサイト法の近似曲線より算出する。
【0090】
[三次元座標演算]
図15に実施例1における三次元座標演算の処理フロー例を示す。
まず、1組のカラーコードターゲットCT1を配置する(標識配置工程:S100)。標識配置工程(S100)では、カラーコードターゲットCT1をキャリブレーションボックスCBの表面上に配置しても良く、測定対象物2が置かれる場所の周囲に配置しても良く、測定対象物2の表面上に配置しても良い。本実施例ではキャリブレーションボックスCBの表面上に配置することとする。また、カラーコードターゲットCT1は撮影パラメータを求めるのに適した位置関係に配置することが好適である。例えば測定対象物2とほぼ同じ大きさのキャリブレーションボックスCB表面に、測定対象物2の色の変化に対応するように配置することが好ましい。すなわち、色の変化が緩やかな位置ではカラーコードターゲットCTの間隔を疎にし、色の変化が急激な位置ではカラーコードターゲットCTの間隔を密にすることが好ましい。また、カメラのレンズ歪が小さい位置ではカラーコードターゲットCTの間隔を疎にし、カメラのレンズ歪が大きい位置ではカラーコードターゲットCTの間隔を密にすることが好ましい。次に焦点距離推定のため、カメラ内部パラメータ(主点位置及びレンズディストーション)の近似曲線を求め、撮影パラメータ記憶部85に記憶する(ステップS110)。
【0091】
次に、撮影部3のカメラで複数のカラーコード付き標識CTを異なる複数方向から撮影する(第1の撮影工程:S120)。本実施例では表面に複数のカラーコードターゲットCT1が配置されたキャリブレーションボックスCBを撮影する。なお、測定対象物2とその周囲に配置したカラーコードターゲットCTを同時に撮影することも可能であり、測定対象物2の表面上にカラーコードターゲットCTを配置して測定対象物2とカラーコードターゲットCTを同時に撮影することも可能である。次に、位置検出部51にて、第1の撮影工程(S120)で撮影された撮影画像から、位置検出用パターンP1の位置を求める(位置検出工程:S121)。次に、求められた位置検出用パターンP1の位置に基づいて、基準色パターン抽出部52にて、撮影画像から基準色パターンP2を抽出し(基準色パターン抽出工程:S122)。さらに、カラーコードパターン抽出部53にて、撮影画像からカラーコードパターンP3を抽出する(カラーコードパターン抽出工程:S123)。基準色パターン抽出工程(S122)では、白色領域抽出部521及び輝度スケール領域抽出部522にて、それぞれ白色領域P4及び輝度スケール領域P5を抽出する。輝度スケール領域P5に白色パッチがある場合には、白色領域P4の抽出を省略できる。
【0092】
次に、抽出された基準色パターンP2のうち、少なくとも光源色補正に用いる色彩を用いて、色補正部71にて撮影画像の光源色補正を行う(色補正工程:S125)。基準色部P2における白色領域P4及び輝度スケール領域P5には光源色補正に用いる色彩があるので、これを用いて光源色補正を行う。輝度スケール領域P5に白色パッチがある場合には、白色領域P4の使用を省略できる。なお、基準色部P2における光三原色(RGB)パターンを光源色補正に使用しても良い。白色領域に併せて光三原色(RGB)パターンを用いるとカラーバランスの調整精度を向上できる。また、本実施例では、輝度スケール領域P5として、グレースケールパッチを使用するが、これに代えて又は併用してカラースケールパッチを使用することも可能である。次に、カラーコード判別部75にて、色補正工程(S125)で補正されたカラーコードパターンP3の色彩配列を、色彩配置−コード対応表を参照して、カラーコードターゲットCT1のコード番号を判別する(カラーコード判別工程:S130)。
【0093】
次に、標定部63にて標定を行なう。各カラーコードターゲットCT1のコード番号が判別されたので、標定がやり易くなる。標定の際に焦点距離推定部631にて焦点距離の推定を行なう(標定・焦点距離推定工程:S135)。次に、位置検出工程(S121)で抽出された位置検出用パターンP1の位置に基づいて、また、(標定・焦点距離推定工程:S135)で推定された焦点距離fを用いて、撮影パラメータ演算部61にて撮影パラメータを求める(撮影パラメータ演算工程:S140)。
【0094】
次に、キャリブレーションボックスBSを測定対象物2と置き換えて、撮影部3のカメラを用いて再度撮影する(第2の撮影工程:S150)。撮影パラメータ演算工程(S140)で求められた撮影パラメータによりカメラをキャリブレーションして再度撮影するので、精度の高い撮影画像を得られる。測定対象物2とカラーコードターゲットCTを同時に撮影した場合は、第2の撮影工程(S150)を省略できるが、撮影パラメータを用いて撮影画像を補正する。この場合でも精度の高い撮影画像を得るため、再度撮影しても良い。次に、再度撮影された撮影画像を用いて標定部63にて標定を行い、モデル形成部73にてモデル及びモデル画像を形成する(モデル形成工程:S155)。ここで、標定とモデル形成を繰り返してモデルの精度を高めても良い。次に、モデル形成工程(S155)で形成されたモデルを用いて、三次元座標演算部62にて測定対象物2の三次元座標を演算して求める(三次元座標演算工程:S160)。次に、三次元座標演算工程(S160)で求められた三次元座標を用い、色補正工程(S125)で補正された色彩を用いて、テクスチャ形成部74にてモデル各部のテクスチャを形成し、モデルにテクスチャを貼り付ける(テクスチャ形成工程:S165)。テクスチャを貼り付けたモデル画像は表示部41に表示される。これにより測定対象物2のモデルをリアルに表現できる。
【0095】
以上説明したように、本実施例によれば、画像の色彩を光源によらない一定の色に統一する補正を可能にするカラーコードターゲットを提供すること、画像の色彩を光源によらない一定の色に統一する補正を行うことができる画像色彩補正装置を提供すること、及び画像の色彩を光源によらない一定の色に統一する補正を行うことができる画像色彩補正方法を提供することができる。