以下、本発明を図示する実施形態に基づいて説明する。上述したとおり、本発明の特徴は、1枚の二次元画像のみに基づいて、もとの物体についての三次元情報を復元する点にある。そのため、発明では、その適用対象を、回転体からなる物体に限定している。これは、そもそも二次元画像には、奥行きを示す直接的な情報が含まれていないので、1枚の二次元画像のみに基づいて、任意の立体形状をもった物体の三次元情報を復元することが非常に困難なためである。もとの物体を回転体に限定すれば、この回転体に固有の特性(すなわち、三次元形状のいたるところに円が現れるという特性)を利用して、三次元形状を推定するための手がかりが得られることになる。
本発明によって三次元情報を復元するプロセスは、投影条件を決定する前半段階と、三次元情報を作成する後半段階とに大別される。そこで、以下、§1において前半段階を説明し、§2において後半段階を説明することにする。また、§3では、本発明の全体手順を述べ、§4では、本発明に係る復元装置の基本構成を述べることにする。
<<< §1.前半段階:投影条件の決定 >>>
前半段階の目的は投影条件を決定することにある。その基本原理を説明するために、まず、三次元物体を所定方向から撮影することによって二次元画像が得られた場合に、この二次元画像と三次元物体との幾何学的な関係を述べておく。
図1は、このような幾何学的な関係を示す斜視図である。図の左側には、XYZ三次元座標系の座標軸が示されているが、ここでは、回転体からなる三次元物体10が、XY平面上に置かれており、しかも、この回転体の中心軸がZ軸に一致するものとして、以下の説明を行うことにする。図には、説明の便宜上、陶器の壺が三次元物体10として描かれている。この壺は回転体であるので、底面および上面は、いずれもZ軸に垂直な平面に含まれ、Z軸上に中心点をもつ円を形成することになる。特に底面は、XY平面に含まれ、座標系の原点Oを中心点とする円になる。
一方、投影面S上には、この三次元物体10を所定方向から撮影することによって得られた二次元画像(2点U1,U2を対角点とする矩形状の画像)が形成されており、この二次元画像内には物体像20が含まれている。ここで、右側に描かれた点Eは視点を示しており、投影面S上の物体像20は、三次元物体10を、視点Eを基準として投影面Sへ透視投影することにより得られた投影像ということになる。ここで、視点Eから投影面Sに下した垂線(一点鎖線で示す)を光軸Lと呼び、この垂線の足を点Gと呼ぶことにする。また、投影面S上には、図示のとおり、αβ二次元座標系が定義されているものとし、投影面S上の任意の点は、座標値(α,β)で示されるものとする。
図2は、図1に示す投影面Sの平面図である。投影面S上に得られる二次元画像は、2点U1,U2を対角点とする矩形状の画像となっており、背景上に、壺の形をした物体像20が配置されている。ここで述べる実施形態の場合、この二次元画像の輪郭を構成する矩形の上下両辺は、XY平面に平行となっている。点Gは、この矩形状の二次元画像の中心点であるが、必ずしも壺の中心に位置する点になるわけではない(もっとも、通常、カメラによる撮影時には、被写体が画面の中央に配置されるような配慮がなされるので、二次元画像の中心点Gは、壺の中心近傍に位置することが多いと思われる)。この二次元画像上の任意の点Mは、座標値M(αm,βm)で表されることになる。
実は、カメラで三次元物体10を所定方向から撮影したときに得られる像は、基本的に、図1に示されている投影面S上へ、三次元物体10を透視投影することによって得られる二次元画像ということになる。ここで、光軸Lは、撮影に用いたカメラの光学系の光軸に一致し、点Gは、撮影によって得られた二次元画像の中心点になる。また、視点Eと点G間の距離fは、撮影に用いたカメラの焦点距離と一致する。したがって、写真撮影によって得られた二次元画像は、理論的には、図1に示すような所定の投影条件の下で、投影面S上に得られた投影像と等価になる。
本発明の目的は、図2に示すような物体像20(たとえば、写真画像)に基づいて、もとの三次元物体10の三次元情報を復元することにある。もちろん、図2に示す物体像20は、単なる二次元画像であり、奥行きに関する直接的な情報は全く含まれていない。ただ、物体像20のもとになった三次元物体10が回転体であるという条件に着目すると、物体像20の中には、奥行きに関する間接的な情報が含まれていることになる。本発明は、この間接的な情報を手がかりに、もとの三次元物体10の三次元情報を復元しようとするものである。
この§1で述べる前半段階の目的は、図1に示す投影条件を決定することにある。ここで決定する投影条件は、三次元物体10の位置を基準としたときの投影面Sの位置(向きも含めた広義の位置)と、視点Eの位置である。図1に示す投影系の場合、投影面Sおよび視点EのXYZ三次元座標系上での位置が一意に決定できれば、原点O上に配置されている三次元物体10を投影して得られる物体像20の形状および大きさは、一意に定まることになる。逆に言えば、投影面Sの位置が変われば、得られる物体像20の形状および大きさは変化することになる。また、投影面Sの位置だけが定まっても、視点Eの位置が変われば、やはり得られる物体像20の形状および大きさは変化することになる。したがって、原点O上に配置されている三次元物体10に基づいて、ある特定の物体像20が得られるための投影条件は、投影面Sおよび視点Eの位置ということになる。
そこで、この前半段階では、図2に示すような物体像20の撮影時の投影条件(投影面Sおよび視点Eの位置)を、当該物体像20に含まれている情報に基づいて決定する処理を行う。この処理は、別言すれば、撮影時のカメラの位置や向きを推定する処理ということができる。
図3は、図1に示す投影系の正面図である。ここで、床面XYは、XYZ三次元座標系におけるXY平面であり、図の右方向がY軸の方向となっている。回転体からなる三次元物体10は、その中心軸がZ軸位置にくるように、床面XY上に配置されている。この例の場合、投影面Sは、図の紙面に直交する面となっているため、図面上は1本の線で示されている。投影面S上に描かれた太線部分は、物体像20の形成位置を示している。この物体像20は、三次元物体10を、視点Eを基準として投影面Sへ透視投影することにより得られた投影像になる。
一点鎖線で示す光軸Lは、視点Eから投影面Sへ下ろした垂線に一致し、撮影時のカメラの光軸に相当する。逆に言えば、投影面Sは、常に、光軸Lに直交する平面として定義されることになる。上述したとおり、光軸Lと投影面Sとの交点Gは、撮影により得られた矩形状二次元画像の中心点になる。ここでは、説明の便宜上、光軸Lを更に伸ばし、XY平面との交点をξとし、XY平面となす角を仰角θと呼ぶ。なお、本願において、投影面Sや光軸Lについての「位置」とは、その向きも含めた広義の意味に用いており、たとえば、交点ξの位置が同じでも、仰角θが変化すれば、光軸Lの位置も変化することになる。
この図3から明らかなように、投影面S上に形成される物体像20の形状や大きさは、投影面Sの位置(別言すれば、光軸Lの位置)および視点Eの位置に依存する。たとえば、図示のような壺の場合、光軸Lの仰角θを大きくとれば、壺を上から覗き込むような撮影像が得られることになり、物体像20の縦方向の寸法は縮むことになる。視点Eの位置を投影面Sに近づけても、同様に物体像20の縦方向の寸法は縮む。もっとも、三次元物体10が任意形状の物体であった場合、物体像20の情報のみから、投影面Sおよび視点Eの位置を推定することは極めて困難である。
そこで、本願発明者は、三次元物体10が回転体である、との前提をおけば、物体像20の情報のみから、投影面Sおよび視点Eの位置を推定することが可能になるのではないか、との着想を得た。前述したとおり、回転体には、三次元形状のいたるところに円が現れるという固有の特性がある。たとえば、図4は、Z軸を回転軸とした壺の形をもった三次元物体10の斜視図であるが、この壺の下端面の輪郭には円Cbottomが現れており、上端面の輪郭には円Ctopが現れている。このような固有の特性は、投影面S上の物体像20上にも表れる。もちろん、物体像20は投影像であるため、円Cbottomや円Ctopは、楕円状の投影像として現れることになるが、この楕円状の投影像の位置や形状は、投影面Sおよび視点Eの位置を推定する貴重な情報を与えてくれる。
ここで、三次元物体10上の円Cを、投影面S上に投影した場合に、どのような幾何学図形が得られるかを考察してみる。図5は、XYZ三次元座標系上の円Cを、投影面S上に平行投影して得られる投影像C′(円を投影して得られる像なので、円投影像と呼ぶ)を示す斜視図であり、図6は、同じくXYZ三次元座標系上の円Cを、投影面S上に透視投影して得られる投影像CC(こちらも円投影像と呼ぶ)を示す斜視図である。いずれも、投影面S上に、二次元の円投影像が得られる点は同じであるが、両者では投影方法が異なるため、得られる円投影像の形状は互いに異なるものになる。
まず、図5に示す平行投影では、投影方向を示すベクトルVが定められ、このベクトルVに平行な方向に投影が行われることになる。図に破線で示す投影線は、いずれもベクトルVに平行な直線になる。たとえば、太陽光線のような平行光線によって地面の上に物体の影が形成されるような場合、地面に形成された影は、物体の平行投影像ということになる。円Cの平行投影像は幾何学的な楕円になるので、図示の例においても、円投影像C′は幾何学的な楕円ということになる。
これに対して、図6に示す透視投影では、基準となる視点Eが定められ、この視点Eから物体を透視する方向に投影が行われることになる。図に破線で示す投影線は、いずれも視点Eを通る直線になる。人間の肉眼観察によって網膜上に形成される像や、カメラによる撮影像は、物体の透視投影像ということになる。円Cの透視投影像は必ずしも幾何学的な楕円にはならず、多くの場合、歪んだ楕円となる。図示の例においても、円投影像CCは幾何学的な楕円ではなく、歪みを生じた楕円となる。
本発明によって取り扱われる二次元画像は、カメラによって撮影された画像であり、図6に示すように、物体を透視投影することにより得られる画像である。したがって、図4に示す円Cbottomや円Ctopについての円投影像は、幾何学的な楕円ではなく、歪んだ楕円となる。逆に言えば、この円投影像の歪みの中にも、投影条件に関する何らかの情報が含まれていることになる。本発明では、この円投影像の形状、大きさ、位置、そして歪みの程度などの情報を利用して、投影面Sおよび視点Eの位置を推定する処理を行う。その原理を、図7を参照しながら説明しよう。
図7は、本発明により投影面Sおよび視点Eの位置を決定する手法の基本原理を示すための投影系の正面図である。この図における主たる構成要素は、図3に示す各構成要素と同じである。すなわち、床面XYは、XYZ三次元座標系におけるXY平面であり、図の右方向がY軸の方向となっている。1本の直線で示されている投影面Sは、図の紙面に直交する平面である。一点鎖線で示す光軸Lは、視点Eから投影面Sへ下ろした垂線に一致し(点Gは垂線の足)、撮影時のカメラの光軸に相当する。投影面Sは、この光軸Lに直交する平面となる。また、点ξは、光軸LとXY平面との交点であり、仰角θは、光軸LとXY平面とのなす角である。
この図7には、三次元物体10は示されていない。これは、本発明を実施する初期段階では、まだ三次元物体10に関する具体的な形状情報が何ら得られていないためである。ただ、本発明の適用対象は、回転体からなる物体に限定されるため、ここに示す例の場合、三次元物体10は、XYZ三次元座標系におけるZ軸を中心軸とする回転体であり、床面XY上に配置されている、という最小限の情報は得られている。また、図7には、投影面Sおよび視点Eが所定位置に描かれているが、この段階では、まだ投影面Sおよび視点Eの位置は定まっておらず、図示した投影面Sおよび視点Eは仮のものである。
さて、この図7に示すような仮想空間上で、2つの参照円を定義してみる。第1の参照円Cbottomは、図4に示す三次元物体10の下端面の輪郭円Cbottomに相当するものであり、第2の参照円Ctopは、同じく図4に示す三次元物体10の上端面の輪郭円Ctopに相当するものである。もちろん、実際の三次元物体10の具体的な三次元情報は、この段階では何ら得られていないので、第1の参照円Cbottomの半径Rbottomの値、第2の参照円Ctopの半径Rtopの値、両参照円の距離Dの値は、この時点ではデタラメなものであってかまわない。ただ、三次元物体10は、XYZ三次元座標系におけるZ軸を中心軸とする回転体であり、床面XY上に配置されている、という最小限の情報に基づいて、両参照円Cbottom,Ctopは、いずれもZ軸に直交する平面に含まれ、Z軸上に中心点をもつ円となるようにしておく。ここで、第1の参照円Cbottomは、三次元物体10の下端面の輪郭円に相当するものであるから、床面XY上の円となるようにしておき、第2の参照円Ctopは、「Z=D」なる式で定義される平面(以下、「Z=D」平面という)上の円となるようにしておく。
ここで、図7に示すとおり、第1の参照円Cbottomおよび第2の参照円Ctopについて、視点Eを基準とした投影面Sへの透視投影を行うと、投影面S上には、第1の円投影像CCbottomおよび第2の円投影像CCtopが得られる。図では、これら円投影像を、投影面Sを示す直線上に太線として描いてある。これら円投影像が、歪んだ楕円になることは、既に述べたとおりである。
ここで、与えられた二次元画像(三次元物体10の撮影画像)を投影面S上に貼り付ける。このとき、この二次元画像の中心点が、視点Eから投影面Sに下した垂線の足Gに一致するように位置合わせを行うようにする。そして、この貼り付けた二次元画像上に、第1の円投影像CCbottomおよび第2の円投影像CCtopを重ねて配置すると、たとえば、図8に示すような結果が得られる。点Gは、この二次元画像の中心点となっており、光軸Lは、点Gを通り投影面Sに直交する直線になる。
この二次元画像上には、三次元物体10に対応する物体像20が含まれているが、現時点では、この物体像20と、各円投影像CCbottom ,CCtopとの間には、何ら相関関係は見られない。前述したとおり、第1の参照円Cbottomが、図4に示す三次元物体10の下端面の輪郭円Cbottomに相当するものであり、第2の参照円Ctopが、同じく図4に示す三次元物体10の上端面の輪郭円Ctopに相当するものであるとすれば、本来であれば、第1の円投影像CCbottomは、物体像20に含まれる「物体の下端面に対応する部分21(第1の円弧状特徴部と呼ぶ)に一致し、第2の円投影像CCtopは、物体像20に含まれる「物体の上端面に対応する部分22(第2の円弧状特徴部と呼ぶ)」に一致しなければならない。
ところが、図8に示すように、何ら一致が見られない結果が得られたのは、図7に示す投影系において、投影面Sおよび視点Eの位置、第1の参照円Cbottomの半径Rbottomの値、第2の参照円Ctopの半径Rtopの値、両参照円の距離Dの値がデタラメなものであったからに他ならない。もちろん、本発明を実施する初期段階では、これらの位置や値に関する情報はほとんど得られていないので(投影像20を観察することにより、大まかな情報は得ることができるかもしれないが)、この初期段階では、これらの位置や値として、デタラメなものを設定せざるを得ない。しかしながら、図8に示すような重畳表示の結果を検討すれば、当初はデタラメな設定を行っていたこれらの情報に対して、最終的な一致が得られる方向への修正を施すことが可能になる。
たとえば、図8に示す具体例の場合、両円投影像CCbottom,CCtopの形状に着目すると、いずれも各円弧状特徴部21,22に比べ、上下方向に細った形状をしていることがわかる。これは、現時点で設定されている投影条件における仰角θが、実際の撮影条件における仰角よりも小さすぎることを意味している。すなわち、図8に示す物体像20は、実際には、図7に示す光軸Lの方向よりも更に上方から見下ろすような急な仰角で撮影された像であることが認識できる。したがって、この場合は、仰角θを増加させる方向への修正を施せばよい。
また、図8に示す具体例の場合、第1の円投影像CCbottomのサイズ(横幅)は、ほぼ第1の円弧状特徴部21のサイズに一致するが、第2の円投影像CCtopのサイズは、第2の円弧状特徴部22のサイズに比べて大きすぎることがわかる。これは、半径Rbottomの設定値はほぼ適正値であるが、半径Rtopの設定値は大きすぎることを意味している。したがって、この場合は、半径Rtopの設定値を減少させる方向への修正を施せばよい。
一方、位置に関するずれに着目すると、図8に示す具体例の場合、両円投影像CCbottom,CCtopの位置は、各円弧状特徴部21,22の位置に対して右側にずれている。これは、現時点で設定されている投影条件における光軸Lの位置(図8に示す点Gの位置)が、実際の撮影時の位置よりも左側にずれていることを意味している。したがって、この場合は、図7に示す交点ξの位置を紙面垂直方向にずらす修正を施せばよい。
また、図8に示す具体例の場合、第1の円投影像CCbottomと第2の円投影像CCtopとが接近しすぎていることがわかる。これは、図7に示すDの設定値が小さすぎることを意味している。したがって、この場合は、Dの設定値を増加させる方向への修正を施せばよい。
ここで、投影面Sおよび視点Eの決定に関与するパラメータが、投影面S上に得られる円投影像にどのような影響を与えるかを検討してみる。まず、光軸Lの仰角θは、上述の例で述べたとおり、ほぼ楕円形となる円投影像の太り具合(真円度)を支配するパラメータということができる。すなわち、仰角θを大きく設定すればするほど、参照円を真上近くから見下ろす状態となるため、円投影像は円に近くなる。逆に、仰角θを小さく設定すればするほど、円投影像は潰れた状態になる。このように、光軸Lの仰角θは、直観的に円投影像の形状に結びついたパラメータということができる。
一方、光軸LとXY平面との交点ξの位置は、上述の例で述べたとおり、円投影像の位置を支配するパラメータということができる。すなわち、投影面S上で円投影像を上下左右に移動させたい場合には、交点ξの位置をXY平面上で移動させればよい。
次に、光軸Lの回転角φなるものを考えてみよう。図9は、図7に示す投影系の上面図であり、Z軸は原点Oにおいて紙面に垂直な軸になる。2組の参照円Cbottom,Ctopは、この図9においては、いずれも完全な円として描かれる。図には、この2組の参照円Cbottom,Ctopを、Y軸に沿った光軸Lyに基づいて投影面Sy上に透視投影した場合と、W軸に沿った光軸Lwに基づいて投影面Sw上に透視投影した場合とが描かれている。ここで、点Gy,Gwは、各光軸と各投影面との交点であり、W軸はXY平面上でY軸を原点Oを基準として回転角φだけ回転させた軸である。図から容易に想像できるとおり、投影面Sy上に得られる円投影像と、投影面Sw上に得られる円投影像とは、全く同じものになる。これは、参照円Cbottom,Ctopの代わりに、回転体からなる三次元物体を、中心軸がZ軸上にくるように配置した場合も同様である。すなわち、回転体を投影する限り、光軸Lの回転角φというパラメータは、投影像に何ら影響を与えないパラメータということになり、本発明では考慮する必要のないパラメータである。
続いて、光軸L上における投影面Sの位置というパラメータを考えてみる。図10は、この光軸L上における投影面Sの位置が投影像に与える影響を説明する投影系の正面図であり、図3に示す投影系における投影面Sを投影面S′の位置まで移動させた状態を示している。投影面は常に光軸に直交する平面であるので、投影面S′は投影面Sに平行な平面となり、光軸Lに対する交点が点Gから点G′へと移動したことになる。この場合、各投影面SおよびS′上に得られる三次元物体10の投影像を比較すると、両者は相似形になることがわかる。別言すれば、このパラメータは、投影面上に得られる投影像全体の倍率を左右するパラメータということになる。
結局、本発明を実施する上では、この光軸L上における投影面Sの位置というパラメータも考慮する必要はない。なぜなら、実用上、本発明の適用対象として与えられる二次元画像は、任意の倍率で拡大もしくは縮小された画像であり、撮影時の透視投影像のサイズそのままではないからである。与えられた二次元画像が、撮影時の透視投影像に対して、どの程度の倍率をもった画像であるかは、通常、不明であるので、光軸L上における投影面Sの位置というパラメータを正確に定めることは意味のないことである。したがって、このパラメータは、任意に設定してかまわない。たとえば、交点ξから所定のデフォルト距離だけ離れた位置に点Gがくるように、投影面Sの定義を行うように予め決めておけば足りる。実際の演算処理上、投影像全体の倍率のファクターは、各参照円の半径Rbottom,Rtopおよび両参照円の距離Dの値に組み込まれるファクターということになる。
最後に、投影面Sと視点Eとの距離fなるパラメータを考えてみる。この距離fは、前述したとおり、撮影時に用いたカメラの焦点距離に対応するものであり、望遠レンズを用いた撮影を行えば焦点距離fは大きくなり、広角レンズを用いた撮影を行えば焦点距離fは小さくなる。カメラの焦点距離fは、カメラの画角(撮影範囲に入る角度)と同義のファクターであり、焦点距離fが大きくなればなるほど画角は狭くなり、焦点距離fが小さくなればなるほど画角は広くなる。たとえば、図7において、距離fが大きくなると、視点Eは投影面Sから離れた位置にくることになり、破線で示されている2本の投影線のなす角度はより小さくなる。逆に、距離fが小さくなると、視点Eは投影面Sに近づいた位置にくることになり、破線で示されている2本の投影線のなす角度はより大きくなる。
実は、この距離fなるパラメータは、投影面S上に得られる投影像の位置、大きさ、形状を支配する複雑なパラメータとなる。したがって、図7において、距離fの値を変化させると、投影面S上に得られる各円投影像CCbottom,CCtopの位置、大きさ、形状がともに変化することになる。このように、投影面Sと視点Eとの距離fなるパラメータは、かなり取り扱いにくいパラメータである。そこで、本発明では、この距離fを可変のパラメータとして取り扱わず、撮影条件の1つとして与えられる既知量として取り扱うことにした。前述したとおり、三次元物体10の撮影を一般的なカメラで行った場合、投影面Sと視点Eとの距離fは、このカメラの焦点距離に対応する値となる。したがって、撮影時に用いたカメラの焦点距離のデータが残っていれば、距離fを既知量として与えることができる。
また、上述したとおり、カメラの焦点距離fは、カメラの画角と同義のファクターであり、撮影時に用いたカメラの画角の情報が残されていれば、距離fを算出することが可能である。すなわち、カメラの画角は、通常、図1に示すような投影面S上に得られる二次元画像の対角点U1,U2を視点Eから見たときの視差角として与えられるので、2点U1,U2間の実寸に基づいて、距離fを算出することが可能になる。
以上、投影面Sおよび視点Eの決定に関与するいくつかのパラメータについて検討したが、結局、図7に示す投影系において、幾何学的な条件を決定するために考慮すべきパラメータは、「光軸Lの位置」であることがわかる。ここで、光軸Lについての「位置」とは、前述したとおり、その向きも含めた広義の意味であり、具体的には、交点ξのXY平面上での位置と、仰角θによって決定される。光軸Lの回転角φについては、図9の上面図で説明したとおり、考慮する必要はない。また、光軸L上における投影面Sの位置というパラメータも、図10を用いて説明したとおり、単に、投影像全体の倍率を左右するパラメータであるので考慮する必要はない(任意の値に設定してかまわない)。一方、距離fは、撮影条件の1つとして与えられる既知量として取り扱うことができる。かくして、「光軸Lの位置」(仰角θと交点ξ)が決定できれば、図7に示す投影系における投影面Sおよび視点Eを決定することができる。
すなわち、まず、交点ξを通り、仰角θをなす光軸Lを定め(回転角φは考慮する必要がないので、たとえば、YZ平面に含まれる直線として光軸Lを定義すればよい)、この光軸L上の任意の位置に点Gを定め(たとえば、予め所定距離dを定めておき、交点ξからdだけ隔たった位置に点Gを定義すればよい)、この点Gにおいて光軸Lに直交する平面として投影面Sを一意に定めることができる。更に、既知量として与えられた距離fを利用して、点Gから距離fだけ隔たった光軸L上の点として、視点Eを一意に定めることができる。
一方、図7に示す第1の参照円Cbottomは、原点Oを中心としたXY平面上の円であるから、その半径Rbottomを定義するだけで一意に定まる。また、第2の参照円Ctopは、Z軸上の点を中心とした「Z=D」平面上の円であるから、その半径Rtopと距離Dを定義するだけで一意に定まる。かくして、2つの参照円を決定するファクターは、Rbottom,Rtop,Dという3つの値ということになる。
以上のことから、図7に示す投影系において、2つの参照円Cbottom,Ctopについての円投影像を投影面S上に得る際に設定すべきパラメータは、交点ξの位置,仰角θ,半径Rbottom,半径Rtop,距離Dなる5つのパラメータということになる。この5つのパラメータの設定を変えることにより、図8に例示したような投影面S上に得られる円投影像CCbottom,CCtopの形状、大きさ、位置を変化させることができる。
図11は、これら5つのパラメータが、円投影像CCbottom,CCtopに与える影響を整理して示した図である。まず、第1のパラメータである「光軸Lの仰角θ」は、既に述べたとおり、両方の円投影像CCbottom,CCtopの形状(真円度)を支配する因子となる。また、第2のパラメータである「交点ξの位置」は、両方の円投影像CCbottom,CCtopの投影面S上での位置を支配する因子となる。更に、第3および第4のパラメータである「半径Rbottom,Rtop」は、円投影像CCbottom,CCtopの大きさを支配する因子となり、第5のパラメータである「距離D」は、円投影像CCbottom,CCtopの相互位置関係(上下方向に関する両者の距離)を支配する因子となる。
これら5つのパラメータが、それぞれ上述のような特徴をもった因子であることを考慮すれば、初期段階(上記各パラメータをデタラメに設定した段階)では、たとえば、図8に示すような重畳表示が得られたとしても、第1の円投影像CCbottomを第1の円弧状特徴部21に一致させ、第2の円投影像CCtopを第2の円弧状特徴部22に一致させる方向へ、各パラメータの設定値を修正することが可能である。
図12は、このような一致が得られた状態を示す平面図である。このように、一致が得られた状態になったということは、その時点における5つのパラメータの設定値によって定まる投影系が、物体像20を得るための撮影時の投影系に一致したことを意味する。たとえば、重畳表示が一致した時点の5つのパラメータの設定値によって、図7に示すような投影系が決定されたとすると、この図7に示す投影系は、図3に示すような実際の撮影時の投影系に一致していることになる。
もっとも、本発明では、光軸L上における投影面Sの位置というパラメータ(投影像全体の倍率を左右するパラメータ)を任意の値に設定しているため、厳密に言えば、投影面Sの位置は撮影時の位置とは異なっている。したがって、図7の投影系を前提として、投影面S上の物体像20に基づいてもとの物体10の三次元情報を復元すると、復元された三次元画像の大きさは、もとの三次元物体10の大きさとは一致しない。しかしながら、これは単なる像の倍率の問題であり、そもそも与えられた二次元画像自体の倍率が、通常は、撮影時における投影像の正しい倍率にはなっていないので(たとえば、写真として二次元画像が与えられた場合、この写真の引き伸ばし倍率によって、物体像20の大きさは変わってしまう)、実用上の問題は全く生じない。
なお、図8に示す例からもわかるとおり、投影面S上に重畳表示される円投影像CCbottom,CCtopは、楕円状の閉曲線になるが、物体像20上の円弧状特徴部21,22は、必ずしも閉曲線にはならない。たとえば、図8に示す例の場合、物体の上端面に対応する円弧状特徴部22は、いわゆる壺の口の部分であるため、閉曲線として認識することができ、円投影像CCtopの全体に対しての一致確認を行うことができる。ところが、物体の下端面に対応する円弧状特徴部21は、裏側部分が隠れてしまっているため、円投影像CCbottomに対する一致確認は、手前側の一部分についてのみ行うことになる。
また、実用上、両者の一致確認は、所定精度で行えば十分である。壺などの回転体陶器の場合、ロクロを用いて制作されるのが一般的であるので、上端面や下端面は、かなり真円に近いものになる。しかし、三次元物体10が、工芸作品である以上、上端面や下端面は完全な真円にはならない。また、与えられた二次元画像の解像度が低い場合、物体像20上の円弧状特徴部を目視できる精度も限られてくる。したがって、実用上は、これらの点を考慮して、オペレータが許容範囲内の精度で両者が重なったと判断した時点で、一致の判定を下してかまわない。
<<< §2.後半段階:三次元情報の作成 >>>
続いて、本発明の後半段階の基本原理を説明する。上述した前半段階の目的は、図7に示すような投影条件、すなわち、投影面Sおよび視点Eを決定することにあり、図12に示すような画面上での一致判定が得られた時点で、この目的は達成させられたことになる。この時点で、投影面S上には、与えられた二次元画像が配置されており、この二次元画像の中心点は、点G(光軸の位置)に一致している。また、図7に示されている参照円CbottomおよびCtopは、それぞれ復元しようとしている三次元物体10の下端面および上端面の輪郭に一致している。逆に言えば、§1で述べた前半段階が終了した段階では、復元対象となる三次元物体10の上下両端面に関する情報しか得られていないことになる。§2で述べる後半段階の目的は、この上下両端面の間に存在する三次元情報を作成することである。
この後半段階の最初に行うプロセスは、投影面S上に配置されている物体像20の片側側面の輪郭線を抽出するプロセスである。具体的には、図12に示す図において、物体像20として示されている壺の上面と下面とを結ぶ右側面の輪郭線もしくは左側面の輪郭線を抽出する処理を行うことになる。図13は、この壺の右側面の輪郭線CCside(太線で示す)を抽出した状態を示す図である。この輪郭線CCsideは、円投影像CCtop,CCbottom間を連結する線ということになる。物体像20は、基本的に回転体の投影像であるため、原理的には、右側面の輪郭線と左側面の輪郭線とは鏡像の関係になるので、いずれか一方のみを抽出すれば十分である。もちろん、精度を高めるため、両方の輪郭線を抽出した上で、両者の鏡像関係を考慮した平均輪郭線を求めるようなことも可能である。
輪郭線CCsideを抽出する最も直接的な方法は、二次元画像上で行われたオペレータによるトレース操作の軌跡に基づいて、輪郭線を抽出する方法である。たとえば、図12に示すように、投影面S上に物体像20を配置した状態をディスプレイ画面上に表示し(円投影像CCtop,CCbottomの重畳表示は必ずしも必要ではない)、何らかの入力デバイスを利用して、オペレータに物体像20の片側側面の輪郭線をトレースする操作を行わせ、その軌跡の座標値を逐次記録してゆけばよい。このとき、トレースが完了した部分を太線で表示するなどの方法をとれば、オペレータにトレース操作の経過をリアルタイムで提示することができ、トレース操作完了時には、ディスプレイ画面上に図13に示すような画像が表示されることになる。図示の例では、投影面S上に、αβ二次元座標系が定義されており、抽出された輪郭線CCsideは、(α,β)の形式の座標値をもった点の集合からなるデータとして定義される。
一方、輪郭線CCsideの抽出作業を、コンピュータによって自動的に実行させることも可能である。図12に示すような二次元画像は、αβ二次元座標系上の画素配列によって構成されており、物体像20は、個々の画素の画素値によって表現されていることになる。そこで、この二次元画像を構成する個々の画素の画素値の差(背景部分と壺部分の差)に基づいて、コンピュータに輪郭線CCsideを自動抽出する処理を実行させることができる。このような輪郭線の自動抽出の技術は既に公知の技術であるため、ここでは詳しい説明は省略する。
さて、こうして、投影面S上に配置された物体像20の片側側面の輪郭線CCsideが抽出できたら、この二次元の輪郭線CCsideの情報を利用して、三次元情報の復元を行う。すなわち、図7に示すように、既に前半段階のプロセスにより投影面Sおよび視点Eが定まっているので、視点Eを基準として投影面Sへの透視投影を行うことにより、投影面S上に二次元の輪郭線CCsideが得られるような回転体の三次元情報を、XYZ三次元座標系上のZ軸を中心とする位置に作成するのである。
たとえば、図14に示すように、XYZ三次元座標系上に、三次元の輪郭線Csideを求めることができたとしよう。この図14に示す三次元の輪郭線Csideは、図13に示す二次元の輪郭線CCsideに対応するものであり、三次元の輪郭線Csideを、視点Eを基準として投影面Sへ透視投影すると、投影面S上に二次元の輪郭線CCsideが得られる、という幾何学的な関係にある。この図14に示す三次元の輪郭線Csideは、視点Eから壺を観察したときに輪郭線として把握できる線であり、三次元の形状をもった壺にとっては、その側面上に描かれた1本の線にすぎない。このような三次元の輪郭線Csideを定義することができれば、この輪郭線Csideに接する円C1〜Cnを図示のように定義することにより、この壺の三次元形状を示すワイヤーフレームが形成され、このワイヤーフレームに基づいて三次元情報を作成することが可能になる。
このワイヤーフレームを構成する個々の円C1〜Cnは、復元する物体の三次元構造を定める円になるため、ここでは「構造円」と呼ぶことにする。図14には、参照円Cbottomと参照円Ctopとの間に、n個の構造円C1,C2,C3,…,Ci,…,Cnが定義された状態が示されている。これらの構造円C1〜Cnは、いずれもZ軸に直交する所定平面に含まれ、Z軸上に中心点をもった円である。なお、実用上は、参照円Cbottom,Ctopも、構造円の一部として取り扱い、合計(n+2)個の構造円によって、復元対象となる物体の三次元情報を定義するのが好ましい。ここで、参照円Cbottom,Ctopの半径Rbottom,Rtopの値は、§1で述べた前半段階のプロセスで既に定まっているが、n個の構造円C1,C2,C3,…,Ci,…,Cnについての半径R1,R2,R3,…,Ri,…,Rnは、それぞれ各構造円が輪郭線Csideに接するという条件によって定められることになる。
ところで、図13に示す二次元の輪郭線CCsideから、図14に示す三次元の輪郭線Csideを直接的に求めることはできない。なぜなら、XYZ三次元座標系上に輪郭線Csideを定義するためには三次元の情報が必要であるのに対して、投影面S上で求めた輪郭線CCsideには二次元の情報しか含まれていないからである。別言すれば、XYZ三次元座標系上に既知の三次元図形が存在する場合、投影面Sと視点Eさえ定めれば、この三次元図形に対して透視投影を行うことにより、投影面S上に当該三次元図形の二次元投影像を求めることは可能である。しかしながら、逆に、投影面S上に既知の二次元図形が存在する場合、視点Eを定めたとしても、当該視点Eを基準とした透視投影によって当該二次元図形が得られるような三次元図形を、XYZ三次元座標系上に一義的に求めることはできないのである。
ただ、本発明の場合、復元対象となる元の物体が回転体である、という大前提があるため、この大前提を条件に組み入れることにより、図13に示す二次元の輪郭線CCsideから、図14に示す三次元の輪郭線Csideを求めることが可能になる。以下、その原理と具体的な手順を説明する。
いま、図15の斜視図に示されているように、XYZ三次元座標系上に回転体からなる三次元物体10(壺)が配置されているものとしよう。ここで、この壺の中心軸はZ軸に一致し、下端面がXY平面に一致するものとしよう。別言すれば、図示の壺は、原点Oを中心として、床面XY上に置かれていることになる。そして、図のように視点Eおよび光軸Lを定め、この壺を所定の投影面Sに透視投影したとすると、投影面S上には、たとえば、図16に示すような物体像20が得られることになる。ここで、投影面Sは、光軸Lに直交する任意の平面である。
前述の輪郭線抽出のプロセスでは、図16に示されている物体像20の右側側面について、二次元の輪郭線CCsideが抽出される。図15に破線で示す三次元の輪郭線Csideは、この二次元の輪郭線CCsideに対応した輪郭線であり、視点Eから眺めたときに、この壺の最も右側として観察される位置を示す線ということができる。上述したとおり、投影面Sと視点Eさえ定めれば、三次元の輪郭線Csideから二次元の輪郭線CCsideを求めることはできるが、その逆はできない。
そこで、図15に示すように、この壺10の任意の高さhの位置に構造円Cを定義する。この構造円Cは、「Z=h」平面に含まれ、Z軸上に中心点をもった円であり、その半径Rは、この壺10の高さhの位置における半径に等しい。この構造円Cと三次元の輪郭線Csideとの交点位置に点Pを定義する。この点PのX座標値をxp、Y座標値をypとすれば、点Pは、(xp,yp,h)なる三次元座標値で示される点ということになる。一方、この点Pに対応する投影面S上での投影点を点PPとすれば、図16に示されているとおり、点PPは二次元の輪郭線CCside上の1点ということになる。ここで、投影面S上に、図示のように、αβ二次元座標系を定義し、点PPのα座標値をαpp、β座標値をβppとすれば、点PPは、(αpp,βpp)なる二次元座標値で示される点ということになる。
ここでも、やはり、点P(xp,yp,h)から点PP(αpp,βpp)を求めることはできるが、逆に、点PP(αpp,βpp)から点P(xp,yp,h)を一義的に求めることはできない。点PPと点Pとの間には、「視点Eと点PPとを結ぶ直線上に点Pが位置する」という関係が成り立つが、投影面S上の物体像20では、奥行きの情報が失われているので、点Pがこの直線上のどこに存在する点であるかを特定することができないのである。換言すれば、失われた奥行きの情報をカバーすることができる何らかの情報があれば、点Pの位置を特定することが可能になる。
そこで前述したように、図15に示す壺10が回転体である、という大前提となる条件を考慮してみる。本願発明者は、この「元の三次元物体が回転体である」という条件を付加することによって、失われた奥行きの情報をカバーできることを見出したのである。
そのために、まず、図15に示すように、構造円Cについて、点Pにおける接線ベクトルTなるものを定義する。このような接線ベクトルTを定義するには、図示のように先端点Qを定めてやればよい。接線ベクトルTは、構造円Cの接線であるから、当然、「Z=h」平面に含まれるベクトルとなり、線分P/Qは「Z=h」平面に含まれることになる。したがって、先端点Qは、(xq,yq,h)なる三次元座標値で示される点になる。一方、視点Eを基準として、この接線ベクトルTに対応する投影面S上での投影ベクトルを求めれば、図16に示すように、投影ベクトルTTが得られる。このような投影ベクトルTTを定義するには、やはり先端点QQを定めてやればよい。この先端点QQは、先端点Qを投影面S上に投影した投影点となり、(αqq,βqq)なる二次元座標値で示される点になる。
結局、図15に示す接線ベクトルTが、XYZ三次元座標系上で定義される三次元ベクトルであるのに対して、図16に示す投影ベクトルTTは、αβ二次元座標系上で定義される二次元ベクトルということになり、線分PP/QQは、投影面Sに含まれることになる。ここで留意すべき点は、図16に示す投影ベクトルTTは、点PPにおける輪郭線CCsideの接線になる、という点である。
その理由は、図15の斜視図において、点Pにおける壺10の接面を考えてみれば容易に理解できる。すなわち、1枚の平面を点Pの位置において、壺10に接触させたとすれば、接線ベクトルTは、当然、この接面上に含まれる。ここで、図16に示す投影図上で、この接面がどのように見えるかを考えてみる。図15に破線で示す輪郭線Csideが、図16の投影図上では輪郭線CCsideに対応することになるので、図15に示す点Pにおいて壺10に接触する接面は、図16の投影図上では点PPにおいて輪郭線CCsideに接する接線に対応することになる。接線ベクトルTは、接面に含まれるベクトルであるから、その投影像である投影ベクトルTTは、この接面に対応する直線に含まれるベクトルということになり、結局、点PPにおける輪郭線CCsideの接線ということになる。したがって、投影ベクトルTTも、接線ベクトルTTと呼ぶことができる。
図17は、図15に示す三次元の接線ベクトルTと図16に示す二次元の接線ベクトルTTとの位置関係を示す斜視図である。ここで、接線ベクトルTは、構造円Cに点Pにおいて接触する三次元の接線ベクトルであり、接線ベクトルTTは、輪郭線CCsideに点PPにおいて接触する二次元の接線ベクトルということになる。
前述したとおり、図17において、「点Pを、視点Eを基準として投影面S上へ投影すると、点PPが得られる」という投影条件のみを用いたとすると、二次元座標しかもたない点PP(αpp,βpp)に基づいて、三次元座標をもつ対応点P(xp,yp,h)を求めることはできない。しかしながら、「壺10が回転体である」という前提下で成り立つ「投影ベクトルTとTTとの関係」を条件として加えることにより、点PP(αpp,βpp)に対応する対応点P(xp,yp,h)を求めることが可能になる。
すなわち、点PPに対応する対応点Pは、「XYZ三次元座標系上において、Z軸に直交する所定平面に含まれ、Z軸上に中心点をもち、対応点Pを通る構造円Cを定義し、この構造円Cについての対応点Pにおける接線ベクトルTを求め、この接線ベクトルTを視点Eを基準として投影面Sへ透視投影することにより投影面S上に得られる二次元ベクトルTTが、点PPにおける輪郭線CCsideの接線となる」という条件を付加することにより求めることができるようになる。ここで、点PPにおける輪郭線CCsideの接線ベクトルTTを、その先端点QQを定めることにより、2点PP/QQを結ぶ投影面S上の線分として定義し、対応点Pにおける構造円Cの接線ベクトルTを、その先端点Qを定めることにより、2点P/Qを結ぶXYZ三次元座標系上の線分として定義すれば、上記付加条件は、「対応点Pおよび先端点Qを、視点Eを基準として投影面Sへ透視投影することにより得られる点が、それぞれ点PPおよび点QQに一致する」という条件に言い換えることができる。
続いて、上述した原理により、二次元座標しかもたない点PP(αpp,βpp)に基づいて、三次元座標をもつ対応点P(xp,yp,h)を演算により求めることができることを、図18〜図20に掲載された式を用いて説明する。
まず、XYZ三次元座標系における構造円Cの方程式は、図18(a) に示すように、式(1) および式(2) で表される。ここで、Rは、構造円Cの半径であり、hは、図17に示すように、構造円Cの配置位置(高さ)を示す値である。次に、式(1) をYについて解いた後、両辺をXで微分すると、図18(b) に示す式(3) が得られる。ここで、微分値dY/dXは、構造円C上の座標値(X,Y,h)なる点における構造円Cの接線の「Z=h」平面内での向きを示す値ということになる。したがって、接線ベクトルTの「Z=h」平面内での向きは、対応点P(xp,yp,h)のXY座標値を式(3) に代入し、更に、対応点Pが構造円C上の1点である条件を示す式「xp2+yp2=R2」を適用することにより、図18(c) に示すような式(4) として与えられる。一方、接線ベクトルTが、2点P(xp,yp,h),Q(xq,yq,h)を両端点とする線分によって表されることを考慮すると、この接線ベクトルTの「Z=h」平面内での向きは、式(5) のように表現することも可能である。そこで、式(4) の右辺と式(5) の右辺とを等しいとおくことにより、図18(c) の最下行に示されているように、
−xp/yp=(yq−yp)/(xq−xp) なる式(6) が得られる。
この式(6) は、接線ベクトルTが構造円C上の点Pにおける接線であることを示す条件式ということになる。
続いて、図17に破線で示す投影線Lp,Lqの方程式を考える。その前に、投影面S上の点PP(αpp,βpp)および点QQ(αqq,βqq)の座標値は、αβ二次元座標系上の座標値なので、これをXYZ三次元座標系上の座標値に変換しておくようにする。投影面SのXYZ三次元座標系上での位置は、既に§1で述べた前半段階において決定されており、投影面SをXYZを用いた方程式で表すことができる。したがって、この投影面S上に定義されたαβ二次元座標系上の座標値を、XYZ三次元座標系上の座標値に変換する処理は、単純な座標変換演算として行うことができ、2点PP(αpp,βpp)およびQQ(αqq,βqq)は、2点PP(xpp,ypp,zpp)およびQQ(xqq,yqq,zqq)に変換できる。
さて、図17に示す投影線Lpは、3点E(xe,ye,ze)、PP(xpp,ypp,zpp)、P(xp,yp,h)を通る直線であるが、これを2点E(xe,ye,ze)およびPP(xpp,ypp,zpp)を通る直線として捉え、三次元空間上の2点を通る直線の方程式を適用すると、図19(d) に示す3本の式(7-1) ,(7-2) ,(7-3) で表すことができる。ここで、tは媒介変数である。一方、図17に示す投影線Lqは、3点E(xe,ye,ze)、QQ(xqq,yqq,zqq)、Q(xq,yq,h)を通る直線であるが、これを2点E(xe,ye,ze)およびQQ(xqq,yqq,zqq)を通る直線として捉え、三次元空間上の2点を通る直線の方程式を適用すると、図19(d) に示す3本の式(8-1) ,(8-2) ,(8-3) で表すことができる。ここで、sは媒介変数である。
また、点P(xp,yp,h)は、「Z=h」平面と投影線Lpとの交点であるから、式(7-3) にZ=hを代入して、tについて解くと、図19(e) に示すように、
t=(h−ze)/(zpp−ze)
なる式(9) が得られ、同様に、点Q(xq,yq,h)は、「Z=h」平面と投影線Lqとの交点であるから、式(8-3) にZ=hを代入して、sについて解くと、図19(e) に示すように、
s=(h−ze)/(zqq−ze)
なる式(10)が得られる。そこで、式(7-1) ,(7-2) に、X=xp,Y=yp,式(9) で求めたtをそれぞれ代入し、式(8-1) ,(8-2) に、X=xq,Y=yq,式(10)で求めたsをそれぞれ代入すると、図19(e) の下段に示す4本の式(11-1),(11-2),(11-3),(11-4)が得られることになる。これらの式は、点P(xp,yp,h)および点Q(xq,yq,h)を、視点E(xe,ye,ze)を基準として投影面S上に投影すると、それぞれ点PP(xpp,ypp,zpp)およびQQ(xqq,yqq,zqq)が得られることを示す式である。
これら4本の式(11-1),(11-2),(11-3),(11-4)を、接線ベクトルTが構造円C上の点Pにおける接線であることを示す条件式(6) に代入すると、図20(f) に示す式(12)が得られる。この式(12)に含まれている変数のうち、xpp,ypp,zppは、点PPの座標値として既知量であり、xqq,yqq,zqqは、点QQの座標値として既知量であり、xe,ye,zeは視点Eの座標値として既知量であるので、未知数hを求めることができる。こうして既知となったhを、式(11-1),(11-2)に代入すれば、未知数であったxp,ypを求めることができる。かくして、二次元座標しかもたない点PP(αpp,βpp)に基づいて、三次元座標をもつ対応点P(xp,yp,h)を演算により求めることができる。また、構造円Cの半径Rは、図20(g) に示すように、R=(xp2+yp2)1/2なる式を用いて算出することができる。
結局、図17に示す投影面S上において、輪郭線CCside上に任意の参照点PPを定義すれば、上述した演算により、これに対応する対応点Pが求まることになり、この対応点Pを通る構造円Cを定めることができる。そこで、輪郭線CCside上に所定間隔で複数n個の参照点PPを定義し、各参照点PPについて、それぞれ対応点Pを求め、各対応点Pについてそれぞれ構造円Cを定義するようにすれば、図14の斜視図に示すように、XYZ三次元座標系に複数n個の構造円C1〜Cnを定義することができる。更に、§1の前半段階で求めた参照円Cbottom,Ctopを構造円として付加すれば、合計(n+2)個の構造円を定義することができる。これら構造円の集合に基づいて、回転体からなる物体の表面データを作成し、これを三次元情報として出力するようにすれば、目的とする三次元物体が復元できたことになる。
多数の構造円Cの集合に基づいて、物体の表面データを作成するには、たとえば、図21に示すように、上下に隣接する構造円間に微小な四角形を定義し、多数の四角形の集合によりポリゴン構造体を定義すればよい。図21には、第i番目の構造円Ciと、第(i+1)番目の構造円Ci+1との間に多数の四角形を定義した例が示されている。具体的には、各構造円Ci,Ci+1の円周をそれぞれK等分して、円周上にそれぞれK個の分割点(図では黒点で示す。裏側は省略した。)を定義し、隣接する分割点同士を図示のように連結して多数の四角形を定義すればよい。実際には、隣接する2つの構造円の距離や、隣接する2つの分割点の距離は、微小な値に設定されるので、こうして得られた多数の四角形は、いずれも微小な四角形になり、復元すべき三次元物体は、これら微小な四角形の集合体として表現されることになる。
<<< §3.本発明の全体手順 >>>
これまで、本発明に係る三次元情報復元の基本原理を、前半段階(§1)と後半段階(§2)とに分けて説明した。ここでは、この基本原理に基づく復元処理の全体手順を通して説明する。
図22は、本発明に係る三次元情報復元処理の全体手順を示す流れ図である。なお、本発明はコンピュータを利用して実施することを前提としたものであり、この手順の各ステップはいずれもコンピュータを利用して行われることになる。
はじめに、ステップS1において、処理対象となる二次元画像の入力が行われる。この二次元画像は、回転体からなる物体を所定の撮影条件で撮影することによって得られた画像であり、たとえば、図2に示すような物体像20が含まれた二次元画像が写真として与えられた場合、スキャナなどの画像入力装置を用いて、この写真上の二次元画像をデジタルデータとしてコンピュータの記憶装置に取り込む処理が行われる。もちろん、既にデジタル化されている二次元画像が与えられた場合は、これをそのままコンピュータの記憶装置に取り込む処理を行えばよい。たとえば、デジタルカメラで撮影された画像や、製版用に既にデジタル化されている画像などが与えられた場合は、与えられたデジタルデータをそのままコンピュータに取り込めばよい。二次元画像の取り込み倍率は任意でかまわない。これは、図10を参照しながら§1で述べたとおり、投影面Sの光軸L上の位置を任意に設定することになるため、倍率のファクターを考慮する必要がないからである。
なお、前述した基本原理は、与えられた二次元画像が、図1に示すような透視投影によって三次元画像10を所定の投影面S上に投影して得られた投影像であることを前提としており、視点Eから投影面Sに下した垂線の足G(別言すれば、光軸Lと投影面Sとの交点G)の位置が、二次元画像の中心点になっている必要がある。一般的なカメラを用いて物体の撮影を行った場合、光軸Lは撮影視野の中心点になるように調整されているため、撮影された二次元画像はこの条件を満たすことになる。
ただ、デジタルカメラでは、手ぶれ補正などを行うために、撮像面に配置されたCCDの一部の画素のみを用いて画像形成を行う機能をもったものがあり、このような機能をもったカメラで撮影された二次元画像に対しては、光軸Lが二次元画像の中心点となるような補正を施すのが好ましい。また、撮影後にトリミングを施して切り出された二次元画像の場合も、撮影時の光軸Lが中心点から外れてしまうので、トリミング前の状態に戻す補正を施すのが好ましい。もっとも、実用上は、点Gが二次元画像の中心点から多少ずれていたとしても、それほど大きな誤差は生じないので、このような補正を行わなくても、大きな支障は生じない。
また、図1に示す実施形態では、二次元画像の輪郭を構成する矩形の上下両辺は、XY平面に平行となっていたため、図2に示す画像上、壺の物体像20は正しい向きに配置されている。通常、床に置かれた物体を撮影する場合、カメラを横もしくは縦に構えて撮影するのが一般的であり、この一般的な方法で撮影された二次元画像であれば、その輪郭を構成する矩形の上下両辺は、XY平面に平行となり、壺の物体像20は正しい向きになる。しかしながら、カメラを斜め45°に構えて撮影したような二次元画像の場合、壺の物体像20は、傾いた状態で写っていることになるので、予め回転補正を行っておくのが好ましい。もっとも、実用上は、二次元画像を肉眼で観察したときに違和感が生じない向きに物体像20が配置されていれば、撮影時のカメラの位置が多少傾いていたとしても、大きな支障は生じない。
次のステップS2において、距離fの入力が行われる。この距離fとは、「視点と投影面との距離」を示すパラメータであり、図1に示す投影系では、視点Eと点Gとの間の距離になる。§1で述べたとおり、この距離fは、投影面S上の物体像の形状、大きさ、位置を支配するパラメータになるため、本発明では可変パラメータとせず、予め固定パラメータとして入力することにしている。この距離fは、物体の撮影時における撮影条件の1つとして与えられるパラメータであり、撮影条件を示すデータとして既知情報である必要がある。別言すれば、本発明によって二次元の物体像から当該物体の三次元情報を復元するためには、当該物体の撮影環境における距離fを示す情報を何らかの形で取得する必要がある。
既に述べたとおり、物体の撮影を一般的なカメラで行った場合、投影面Sと視点Eとの距離fは、このカメラの焦点距離に対応する値となるので、撮影時に用いたカメラの焦点距離のデータが残っていれば、距離fを示す情報が残っていることになる。また、ステップS2で入力する値は、必ずしも距離fそのものを示すデータである必要はなく、距離fを何らかの形で示すことができるデータであればよい。たとえば、撮影時に用いたカメラの画角の情報が残されていれば、距離fを算出することが可能であるので、ステップS2では、この画角の情報を入力するようにしてもかまわない。なお、撮影時の情報が全く残されていない場合であっても、ステップS1で入力した二次元画像を解析することによって、撮影時の焦点距離fの推定値を求めることができるのであれば、この推定値を距離fとして利用することも可能である。
一般に、プロのカメラマンは、写真撮影を行う際に、個々の写真ごとに撮影条件をメモしておくことが多い。メモ対象となる撮影条件には、通常、日付、照明環境、露出値、シャッター速度などの値とともに、用いたカメラの機種やレンズの型番などを示す情報、すなわち、撮影時に用いたカメラの焦点距離を示す情報が含まれている。したがって、雑誌やカタログに掲載された陶器などの商用写真には、焦点距離を示す情報が残っていることが多い。もちろん、本発明の実施を前提として写真撮影を行うのであれば、撮影に用いたカメラの焦点距離や画角の情報を意図的に残しておけばよい。また、最近のデジタルカメラでは、これらのデータを撮影画像データとともに自動的に記録する機能を備えたものもある。このようなデジタルカメラから撮影画像を読み出すと、画像データとともに撮影条件を示すデータが付加された状態で読み出されることになるので、ステップS1の手順とステップS2の手順とが、同時に実行されることになる。
続いて、ステップS3において、投影面Sと視点Eとを決定する処理が行われる。これは、§1で述べた前半段階のプロセスの最終的な目的というべき処理であり、§2で述べた後半段階のプロセスを行う上で必要な投影系を定義する意味をもつ。オペレータにとっては、ステップS1,S2の処理がコンピュータへの単なるデータ入力処理であるのに対して、このステップS3の処理は、ディスプレイ上に表示された画像を見ながら、試行錯誤を繰り返す処理ということになる。すなわち、§1で詳述したとおり、オペレータは、図8に示すような重畳表示(物体像20と2組の円投影像CCbottom,CCtopとを重ねた表示)を画面上で見ながら、図11に示す各パラメータの設定を調整する操作を行い、円投影像CCbottom,CCtopを、物体像20の各円弧状特徴部21,22に一致させるよう作業する。
この作業は試行錯誤による作業ということになるが、本発明では、距離fというパラメータを既知の固定パラメータとして入力することにしたため、オペレータの調整対象となるパラメータは、図11に示されているとおり、光軸Lの仰角θ,交点ξの位置,半径Rbottom,半径Rtop,距離Dという5つのパラメータに集約される。しかもこれらの各パラメータを変化させたときに、重畳表示されている画面上でどのような変化が生じるかが予測できるので、オペレータによるパラメータの修正作業は、行き当たりばったりの作業ではなく、目標に着実に近づくような系統だった作業ということになる。
なお、円投影像CCbottom,CCtopと、円弧状特徴部21,22との一致は、必ずしも完全一致が必要とされるものではなく、オペレータが所定精度での一致が得られたと判定できれば、それで十分である。オペレータは、ステップS1で入力された二次元画像の解像度や、復元対象となる三次元情報に必要な精度などを考慮した上で、どの程度の精度で一致が見られたときに、一致指示を与えるべきかを判断すればよい。
また、前述の実施形態では、オペレータが自己の判断で一致指示を与えることになっているが、一致判定をコンピュータに委ねることも可能である。具体的には、何らかのパターン認識プログラムにより、コンピュータ自身に円弧状特徴部21,22をパターン認識する機能をもたせておき、円投影像CCbottom,CCtopと、円弧状特徴部21,22との形状、大きさ、位置の誤差を定量的に判断させ、この誤差が所定の許容範囲内に収まった時点で、一致判定がなされるようにしておけばよい。この場合、オペレータは、コンピュータによる一致判定がなされるまで、パラメータを修正する作業を行えばよい。
なお、§1で述べた例では、物体の下端面に対応する部分を第1の円弧状特徴部21とし、物体の上端面に対応する部分を第2の円弧状特徴部22とし、図12に示すように、壺の上下両端面位置に、円投影像CCbottom,CCtopを一致させる作業を行っていたが、物体像20の円弧状特徴部は、必ずしも上端面や下端面に限定されるものではない。前述の実施形態で例示した図に示されている壺の場合、上端面や下端面に円弧状特徴部が顕著に現れているが、もとの三次元物体10が回転体であるため、実際には、種々の位置に円弧状特徴部が現れる可能性がある。たとえば、壺のくびれたネックの部分などにも円弧状特徴部は現れるであろうし、物体表面に環状の模様が施されていた場合には、この模様部分を円弧状特徴部として把握することも可能である。
したがって、本発明を実施する上で、円投影像を一致させる相手方となる円弧状特徴部は、必ずしも上端面や下端面に限定されるものではない。また、上述の実施形態では、2組の円投影像を2組の円弧状特徴部に一致させる例を示したが、3組以上の円投影像を3組以上の円弧状特徴部に一致させるようにしてもかまわない。すなわち、一致照合の対象が1組だけでは、投影面Sおよび視点Eを一義的に定めることはできないが、一致照合の対象が2組以上あれば、投影面Sおよび視点Eを一義的に定めることができるのである。結局、このステップS3では、ステップS1で入力した二次元画像上の物体像に含まれる少なくとも2組の円弧状特徴部の位置および形状と、ステップS2で入力した距離fと、に基づいて、物体撮影時の撮影条件の1つである光軸Lの位置を決定し、この光軸Lに直交する所定の投影面Sと、この投影面Sから光軸Lに沿って距離fだけ離れた場所に位置する視点Eと、を投影条件として決定する処理が行われればよい。
もっとも、実用上は、§1の実施形態で例示したとおり、物体の上端面および下端面を円弧状特徴部として、2組の一致照合を行うのが最も好ましい。3組以上の一致照合を行うと、オペレータの作業が煩雑になり、2組の一致照合で十分である。また、多くの物体は、その上端面および下端面に円弧状特徴部が現れやすい。もちろん、円錐形や球のような特殊な形状をもった物体の場合、上端面や下端面が円にはならないこともあるが、陶器の壺や花器などの一般的な物体の場合、上端面および下端面に円弧状特徴部が現れる。また、上端面と下端面とは、最も距離が離れた照合対象であり、投影条件を決定する精度を高める上でも、上端面および下端面を用いた一致照合を行うのが好ましい。
以上述べたステップS1〜S3の手順が、§1で述べた前半段階のプロセスに相当する。続いて行われるステップS4,S5の手順が、§2で述べた後半段階のプロセスということになる。
まず、ステップS4において、輪郭線CCsideの抽出が行われる。これは、図13に示すように、投影面S上に配置された二次元画像に含まれる物体像20の片側側面の輪郭線CCsideを抽出する処理である。この手順での処理対象となる二次元画像は、もちろん、ステップS1で入力した二次元画像であり、画像の中心点が点Gにくるように配置されている。ここで、点Gは、ステップS3で決定された視点Eから投影面Sに下した垂線の足Gであり、物体像20の撮影時の光軸Lの位置に相当する。輪郭線抽出を、投影面S上で行うのは、抽出された輪郭線CCsideが、投影面S上に定義されたαβ二次元座標系上に定義された曲線となるようにするためである。したがって、抽出された輪郭線CCsideは、(α,β)なる座標値をもった点の集合として表現される。
§2で述べたとおり、この輪郭線抽出は、図12に示すような画像をディスプレイ上に表示した状態で、オペレータに輪郭線をなぞるトレース操作を行わせ、このトレース操作の軌跡を輪郭線CCsideとして抽出する処理によって行うことができるし、二次元画像を構成する個々の画素の画素値の差に基づいて、コンピュータに輪郭線を自動抽出する処理によって行うこともできる。
なお、コンピュータによる自動抽出を行う際には、必要に応じて、自動抽出された輪郭線に対して、オペレータによるトレース操作の軌跡に基づく補正を施し、補正後の輪郭線を正式な輪郭線として抽出するようにするのが好ましい。たとえば、図23に示すような正面形状をもった三次元物体10を、斜め上方から撮影したため、図の一点鎖線で囲った部分についての物体像20の輪郭が、右上に示した図の実線部分のようになってしまった場合を考えよう。この場合、画素値の差に基づいて、コンピュータが輪郭線抽出を行うと、背景部分の画素と壺部分の画素との境界線が輪郭線として抽出されることになるため、得られた輪郭線CCsideは、右上図に示す実線のようになる。すなわち、本来は、この壺のベース部分にくびれが生じているのであるが、撮影時の仰角θが大きいと、自動抽出された輪郭線CCsideには、このくびれ部分の情報が失われてしまう。
そこで、このような場合には、、オペレータによるトレース操作の軌跡に基づく補正を施すようにする。物体像20上には、壺表面の陰影や絵柄の情報も含まれているので、オペレータは、これらの情報から、本来はベース部分にくびれが生じていることを認識することができ、本来の側面部の輪郭線の位置、すなわち、図に破線で示す位置を把握することができる。そこで、自動抽出された輪郭線CCsideの該当区間を、この破線で示す位置に修正することができるように、破線に沿ったトレース操作を行うようにすればよい。コンピュータは、オペレータから与えられた修正入力に基づいて、輪郭線CCsideを修正する処理を行うことができる。
最後のステップS5において、三次元情報の作成処理が行われる。この処理は、ステップS3で決定された投影面Sおよび視点E、ならびにステップS4で抽出された輪郭線CCsideの位置を示す情報に基づいて、元の物体の三次元情報を作成する処理ということができる。この処理の基本概念は、視点Eを基準として投影面Sへ透視投影することにより、輪郭線CCsideが得られるような物体の三次元情報を、当該物体が回転体であるという条件を考慮した演算により求める、ということになる。具体的には、ステップS4で抽出された輪郭線CCside上に所定間隔で複数個の参照点PPを定義し、個々の参照点PPに対応する対応点Pを求め、この対応点Pを通る構造円Cを定義し、この構造円Cの集合に基づいて、回転体からなる物体の表面データを作成し、これを三次元情報として出力する処理が行われる。
ここで、1つの参照点PPと、これに対応する対応点Pおよび構造円Cとの関係は、「XYZ三次元座標系上において、Z軸に直交する所定平面に含まれ、Z軸上に中心点をもち、対応点Pを通る構造円Cを定義し、この構造円Cについての対応点Pにおける接線ベクトルTを求め、この接線ベクトルTを視点Eを基準として投影面Sへ透視投影することにより投影面S上に得られる二次元ベクトルTTが、参照点PPにおける輪郭線CCsideの接線となる」という条件を満足する関係であり、参照点PPから対応点Pおよび構造円Cを求める演算は、上記条件に基づく演算ということになる。この演算の具体的な手法は、既に§2で述べたとおりである。
§2で述べた実施形態では、図21に示すように、各構造円の間に多数の微小四角形を定義し、多数の微小四角形によって物体の表面情報を表現しているが、もちろん、最終的に復元対象となる物体情報として出力する三次元情報の表現形式は、このような微小四角形の集合に限定されるものではなく、たとえば、微小三角形の集合でもよいし、その他のポリゴン表現でもかまわない。また、図14に示すように、多数の構造円の集合体は、それ自身が三次元物体のワイヤーフレーム表示となっているので、構造円の集合体自身を、復元対象となる物体の三次元情報として出力してもかまわない。もちろん、この構造円に、更に縦方向のワイヤーを加えたワイヤーフレーム表示を作成して出力することも可能である。
<<< §4.本発明に係る復元装置の基本構成 >>>
最後に、本発明に係る回転体の三次元情報復元装置の基本構成を、図24のブロック図を参照しながら説明する。なお、ここでは、本発明に係る復元装置の構成要素を、個々の機能ブロックとして捉えた説明を行うが、実際には、図24に示されている復元装置は、コンピュータに専用のプログラムを組み込むことにより実現される装置であり、個々のブロックとして示されている構成要素は、プログラムの個々の機能によって実現される要素ということになる。
図示のとおり、この復元装置は、二次元画像入力手段100,撮影条件入力手段200,投影条件決定手段300,輪郭線抽出手段400,三次元情報作成手段500によって構成され、回転体からなる物体を所定方向から撮影することによって得られた二次元画像に基づいて、もとの物体の三次元情報を復元する装置である。ここで、各手段100〜500は、それぞれ図22に示す流れ図におけるステップS1〜S5を実行するための構成要素になっている。
まず、二次元画像入力手段100は、回転体からなる物体を所定の撮影条件で撮影することにより得られた物体像を含む二次元画像を入力する機能を有する。具体的には、二次元画像が写真などの物理的な媒体として与えられる場合には、スキャナ装置などによって入力手段100を構成することができる。また、二次元画像がデジタルデータとして与えられる場合には、このようなデジタルデータをコンピュータに取り込む機能をもった一般的なデータ入力装置によって入力手段100を構成することができる。もちろん、デジタルデータは、通信回線を経由したオンラインで取り込むこともできる。
一方、撮影条件入力手段200は、撮影条件の1つとして与えられる「視点と投影面との距離f」を示す情報を入力する機能を有する。一般に、撮影条件と呼ばれる情報には、照明環境、露出値、シャッター速度、カメラの焦点距離や画角など、種々の情報が含まれるが、入力手段200によって入力する必要がある撮影条件は、「視点と投影面との距離f」を示す情報のみである。前述したとおり、この距離fを示す情報としては、撮影に用いたカメラの焦点距離や画角を示す情報を用いることができる。これらの情報をオペレータに手作業で入力させる場合には、たとえば、マウスやキーボードなどの一般的な入力機器によって入力手段200を構成することができる。また、これらの情報をデジタルカメラなどから取り込むのであれば、デジタルデータをコンピュータに取り込む機能をもった一般的なデータ入力装置によって入力手段200を構成することができる。もちろん、この距離fを示す情報を、通信回線を経由したオンラインで取り込んでもよい。
実際、デジタルカメラから二次元画像と距離fを示す情報との双方を取り込む場合、入力手段100,200は、同一のデータ取込装置(デジタルカメラからの情報をコンピュータに取り込む装置)によって構成することができる。なお、§3で述べたとおり、距離fとしては、必ずしも撮影時の正確な値を入力する必要はなく、二次元画像入力手段100に与える二次元画像を解析することによって得られた推定値を用いてもかまわない。この場合、撮影条件入力手段200は、オペレータやデジタルカメラなどから与えられる距離fの値を入力する代わりに、二次元画像を解析して距離fを推定する機能をもった解析装置から与えられる推定値を距離fとして入力すればよい。
こうして、入力手段100で入力された二次元画像と、入力手段200で入力された距離fを示す情報は、投影条件決定手段300へと与えられる。投影条件決定手段300は、図22のステップS3の処理を実行する機能をもった構成要素であり、その目的は、所定の投影面Sと視点Eとを決定することにある。ここで決定された投影面Sおよび視点Eの位置は、倍率のファクターを考慮していないため、必ずしも撮影時のものと完全に一致するわけではないが、倍率のファクターを除けば、撮影時の投影条件に合致したものとなる。
この投影条件決定手段300で行われる処理の基本原理は、§1で詳述したとおりであり、その骨子は、図8に示すような画面をオペレータに提示し、オペレータにパラメータの修正操作を行わせ、照合対象の一致確認がなされた時点で設定されていたパラメータに基づいて、投影面Sと視点Eとを決定することにある。具体的には、投影条件決定手段300は、二次元画像入力手段100から与えられた二次元画像上の物体像に含まれる2組の円弧状特徴部の位置および形状と、撮影条件入力手段200から与えられた距離fと、に基づいて、撮影条件の1つである光軸Lの位置を決定し、この光軸Lに直交する所定の投影面Sと、この投影面Sから光軸Lに沿って距離fだけ離れた場所に位置する視点Eと、を投影条件として決定する処理を行うことになる。
このような基本原理に基づく処理を実行するため、この投影条件決定手段300は、図示のように、重畳表示部310,透視投影演算部320,パラメータ設定部330,条件決定部340なる4つの構成要素を備えている。これら各構成要素の個々の機能については後述する。
輪郭線抽出手段400は、こうして投影条件決定手段300により決定された投影面Sと視点Eとを用いて、二次元画像入力手段100から与えられた二次元画像を、投影面S上に配置し、この二次元画像に含まれる物体像20の片側側面の輪郭線CCsideを抽出する処理を行う構成要素である。このとき、二次元画像は、その中心点が視点Eから投影面Sに下した垂線の足G(別言すれば、光軸Lと投影面Sとの交点)に一致するように配置される。
この輪郭線抽出手段400において実施される処理は、既に述べたとおり、二次元画像上で行われたオペレータによるトレース操作の軌跡に基づいて輪郭線を抽出する処理として行うことも可能であるし、二次元画像を構成する個々の画素の画素値の差に基づいて輪郭線を自動抽出する処理として行うことも可能である。また、§3で述べたように、自動抽出された輪郭線に対して、二次元画像上で行われたオペレータによるトレース操作の軌跡に基づく補正を施し、補正後の輪郭線を抽出する処理として行うことも可能である。実際には、このような処理を行うための専用プログラムが用意されることになる。この処理の結果、輪郭線抽出手段400からは、たとえば、図13に太線で示すような輪郭線CCsideの情報が出力される。
なお、§1で述べた実施形態のように、物体像20に含まれる「物体の下端面に対応する部分」を第1の円弧状特徴部21とし、「物体の上端面に対応する部分」を第2の円弧状特徴部22とする場合には、第1の円投影像CCbottom上の1点と第2の円投影像CCtop上の1点とを両端点とする輪郭線CCsideを抽出するようにすればよい。
三次元情報作成手段500は、投影条件決定手段300によって決定された投影面Sおよび視点Eと、輪郭線抽出手段400によって抽出された輪郭線CCsideと、に基づいて、もとの物体の三次元情報を作成する機能をもった構成要素である。すなわち、三次元座標系上において、視点Eを基準として投影面Sへ透視投影することにより、輪郭線CCsideが得られるような物体の三次元情報を演算によって求める処理が行われる。このとき、もとの物体が回転体であるという条件設定を行うことにより、二次元画像上で失われていた奥行きの情報をカバーすることになる。
このような基本原理に基づく処理を実行するため、この三次元情報作成手段500は、図示のように、参照点定義部510,構造円定義部520,表面データ作成部530なる3つの構成要素を備えている。これら各構成要素の個々の機能については後述する。
続いて、投影条件決定手段300内に示された個々の構成要素について説明する。まず、パラメータ設定部330は、XYZ三次元座標系において、光軸Lの位置を定義するパラメータと、Z軸に直交する第1の平面に含まれZ軸上に中心点をもつ第1の参照円を定義するパラメータと、Z軸に直交する第2の平面に含まれZ軸上に中心点をもつ第2の参照円を定義するパラメータと、をオペレータの指示に基づいて設定する機能をもった構成要素である。もちろん、オペレータは随時、これらのパラメータの設定値を修正する入力を行うことになるので、パラメータ設定部330は、このようなパラメータの設定値を修正する入力を受け付け、設定値を修正する機能を有している。
§1で述べた例では、光軸Lの位置を定義するパラメータとして、光軸LとXY平面とのなす角度θ、および光軸LとXY平面との交点ξの位置を用いている。また、第1の参照円Cbottomを常にXY平面上の円とし、第2の参照円Ctopを平面「Z=D」上の円としているので、各参照円を定義するパラメータとしては、第1の参照円の半径Rbottomおよび第2の参照円の半径Rtop、ならびにDの値を用いている。結局、図11に示すように、θ,ξの位置,Rbottom,Rtop,Dなる5つのパラメータの設定が行われることになり、オペレータは、パラメータ設定部330に対して、これら5つのパラメータを設定するための指示を入力することになる。
実用上は、これら5つのパラメータにそれぞれデフォルトとなる初期設定値を定めておき、最初の段階では、パラメータ設定部330内には、この初期設定値が自動的に設定され、オペレータの指示に基づいて、各パラメータの値が修正されるようにしておけばよい。オペレータには、たとえば、図8に示すような重畳表示が提示され、オペレータは、このような表示画面上で、照合対象となる円投影像と円弧状特徴部とが一致するように、各パラメータを修正する指示を入力する操作を行うことになる。
ここで、個々のパラメータには、図11に示すとおり、円投影像の形状、大きさ、位置に対して特定の影響を与える役割が与えられている。そこで、実用上は、オペレータに対して、各パラメータの役割を提示するようにするのが好ましい。たとえば、角度θを増減させる設定操作については、「円投影像の形状補正」を行うための操作である旨の提示を行い、交点ξの位置を変動させる設定操作については、「円投影像の位置補正」を行うための操作である旨の提示を行えばよい。同様に、第1の参照円の半径Rbottomおよび第2の参照円の半径Rtopを増減させる設定操作については、「各円投影像のサイズ補正」を行うための操作である旨の提示を行い、値Dを増減させる設定操作について「2つの円投影像の相対位置補正」を行うための操作である旨の提示を行えばよい。
実用上、個々のパラメータを修正する操作は、ディスプレイ画面上に各パラメータを修正するための操作ツマミやダイアルを表示し、オペレータにこれらを動かす操作入力を行わせることになる。そこで、たとえば、円投影像の形状を補正するための操作ツマミには、「円投影像の形状補正」なる提示を行い、オペレータがこの操作ツマミを操作することにより、パラメータθの値を増減するような設定修正が行われるようにしておけばよい。同様に、円投影像の大きさを補正するための操作ツマミ(円投影像CCbottom用と、円投影像CCtop用との2組を設けておく)には、「円投影像のサイズ補正」なる提示を行い、オペレータがこの操作ツマミを操作することにより、パラメータRbottomおよびRtopの値を増減するような設定修正が行われるようにしておけばよい。交点ξの位置を変動させるための操作ツマミや、値Dを増減させるための操作ツマミについても同様である。オペレータは、これらの操作ツマミを用いることにより、直観的な操作で、各パラメータ値の修正を行い、円投影像と円弧状特徴部とを一致させる作業を行うことができる。
透視投影演算部320は、現時点でパラメータ設定部330に設定されている各パラメータの値に基づいて、円投影像CCbottom,CCtopを演算する機能を果たす構成要素であり、実際には、所定のアルゴリズムに基づいて、そのような演算を実行するプログラムによって実現される構成要素である。上述の実施形態の場合、パラメータ設定部330に設定されるθ,ξの位置,Rbottom,Rtop,Dなる5つのパラメータは、結局、光軸Lの位置、第1の参照円Cbottomの位置、第2の参照円Ctopの位置を示す情報ということになる。
そこで、透視投影演算部320は、XYZ三次元座標系上に、まず、光軸Lに直交する所定の投影面Sを定義する。既に述べたとおり、本発明では倍率のファクターを考慮しなくてよいので、投影面Sは光軸Lに対して直交する平面であればどの位置に定義してもかまわない。したがって、たとえば、所定の距離dを予め定めておき、交点ξから距離dだけ隔たった位置に投影面Sを定義する処理を行えばよい。また、撮影条件入力手段200からは、距離fの値が与えられるので、この投影面Sから光軸Lに沿って距離fだけ離れた場所に、視点Eを一義的に定義することができる。
また、透視投影演算部320には、第1の参照円Cbottomの位置および第2の参照円Ctopの位置を示す情報が与えられるので、第1の参照円Cbottomおよび第2の参照円Ctopを、視点Eを基準として投影面Sへ透視投影し、投影面S上に第1の円投影像CCbottomおよび第2の円投影像CCtopを求める演算を行うことができる。
こうして、透視投影演算部320において求められた投影面Sおよび視点Eの位置を示す情報と、第1の円投影像CCbottomおよび第2の円投影像CCtopの形状および位置を示す情報は、重畳表示部310へ与えられる。この重畳表示部310は、二次元画像入力手段100から与えられた二次元画像を投影面S上に配置し、この二次元画像上に第1の円投影像Cbottomおよび第2の円投影像Ctopを重畳した状態をディスプレイ画面上に表示する機能をもった構成要素である。このとき、二次元画像は、その中心点が視点Eから投影面Sに下した垂線の足Gに一致するような位置にくるように配置される。
もちろん、オペレータが、パラメータ設定部330に対して、パラメータ値を修正する指示を与えれば、パラメータ設定部330内のパラメータ設定値は変化することになり、透視投影演算部320による演算結果も変化することになり、重畳表示部310による表示内容も変化することになる。オペレータは、ディスプレイ画面上に出力された重畳表示部310による表示結果(たとえば、図8に示すような表示結果)を見ながら、第1の円投影像CCbottomと第1の円弧状特徴部21とが一致し、第2の円投影像CCbottomと第2の円弧状特徴部21とが一致するように、パラメータ設定部330に対してパラメータの修正指示を与える作業を行い、その作業結果が、逐次、ディスプレイ画面上に反映されることになる。
条件決定部340は、この重畳表示部310による表示において、物体像の第1の円弧状特徴部21と第1の円投影像CCbottomの全部もしくは一部とが所定精度で一致し、物体像の第2の円弧状特徴部22と第2の円投影像CCtopの全部もしくは一部とが所定精度で一致したことを示す一致指示がオペレータから与えられたときに、その時点で透視投影演算部320が定義している投影面Sおよび視点Eを、最終的な投影条件となる投影面Sおよび視点Eとして決定する機能を果たす。たとえば、ディスプレイ画面上に、図12に示すような一致状態が得られた場合に、オペレータは、条件決定部340に対して一致指示を与える操作を行えばよい。
かくして、オペレータからの一致指示が与えられると、条件決定部340から、投影面Sおよび視点Eを示す情報(たとえば、XYZ三次元座標系上において、投影面Sを示す平面の式と視点Eの座標値)が、投影条件決定手段300の出力として与えられることになる。なお、§3で述べたとおり、物体像の第1の円弧状特徴部および第2の円弧状特徴部としては、必ずしも「物体の下端面に対応する部分」および「物体の上端面に対応する部分」を用いる必要はなく、どの部分を一致対象となる円弧状特徴部とするかは、オペレータの判断に委ねられる。また、§4で述べたように、一致判定をオペレータに委ねる代わりに、所定のアルゴリズムで一致判定を自動的に行うようにしてもよい。この場合、条件決定部340は、自らの判断で一致判定を行うことになるので、オペレータからの一致指示を入力する必要はない。
最後に、三次元情報作成手段500内に示された個々の構成要素について説明する。まず、参照点定義部510は、輪郭線抽出手段400によって抽出された輪郭線CCside上に所定間隔で複数n個の参照点PPを定義する機能を果たす構成要素である。ここでnの値は、最終的に得られる三次元復元画像の解像度を左右する値になるので、解像度の高い復元画像を得たい場合には、nの値を大きく設定すればよい。参照点PPの間隔は任意に設定すればよいが、たとえば、輪郭線CCsideの全長を(n+1)等分し、個々の等分点を参照点PPとすれば、合計n個の参照点PP1〜PPnを得ることができる。§2で述べた実施形態の場合、各参照点PPは、αβ二次元座標系上の点として定義されるので、(αpp,βpp)なる二次元の座標値をもった点となるが、前述したとおり、XYZ三次元座標系上に定義された投影面Sの位置を考慮した座標変換を行うことにより、(xpp,ypp,zpp)なる三次元の座標値をもった点に変換される。
構造円定義部520は、図17に示すように、参照点PPに対応する対応点Pを求め、この対応点Pを通る構造円Cを定義する演算を行う構成要素である。上述したとおり、参照点定義部510では、複数n個の参照点PP1〜PPnが定義されるので、この構造円定義部520では、複数n個の構造円C1〜Cnが定義されることになる。参照点PPから構造円Cを求める演算は、「XYZ三次元座標系上において、Z軸に直交する所定平面に含まれ、Z軸上に中心点をもち、対応点Pを通る構造円Cを定義し、この構造円Cについての対応点Pにおける接線ベクトルTを求め、この接線ベクトルTを視点Eを基準として投影面Sへ透視投影することにより投影面S上に得られる二次元ベクトルTTが、参照点PPにおける輪郭線CCsideの接線となる」という条件を示す式を用いることにより行うことができる。
具体的な演算式は、図18〜図20に示したとおりである。この演算は、結局、次のように集約される。まず、図17に示すように、XYZ三次元座標系上における対応点Pの座標値(xp,yp,h)および先端点Qの座標値(xq,yq,h)をそれぞれ未知数として定義する。
一方、投影面S上には、参照点PP(αpp,βpp)が定義されている。この参照点PPの座標値(αpp,βpp)は、参照点定義部510から与えられた座標値であり、既知の値ということになる。また、この参照点PPにおいて輪郭線CCsideの接線を定義することができるので、この接線上に接線ベクトルTTを定義する。接線ベクトルTTは、その先端点QQの位置を投影面S上に定めることにより定義できる。ここで、ベクトルTTの長さは任意でかまわないので、先端点QQは、参照点PPにおける輪郭線CCsideの接線上の任意の1点として定義することができ、定義を行った時点で、その座標値(αqq,βqq)は既知の値となる。
次に、投影面S上に定義されたαβ二次元座標系上における参照点PPの既知座標値(αpp,βpp)および先端点QQの既知座標値(αqq,βqq)を、XYZ三次元座標系上における投影面Sの位置情報を利用することにより、それぞれXYZ三次元座標系上の座標値(xpp,ypp,zpp)および(xqq,yqq,zqq)に変換する演算を行う。当然、座標値xpp,ypp,zpp,xqq,yqq,zqqは既知の値となる。
続いて、接線ベクトルTが構造円Cの対応点Pにおける接線であることを示す条件式を求めると、図18に示すように、以下のような式(6) が得られる。
−xp/yp=(yq−yp)/(xq−xp) (6)
一方、参照点PPおよび先端点QQが、対応点Pおよび先端点Qを、既知座標値(xe,ye,ze)によってその位置が定義されている視点Eを基準として投影面Sへ透視投影することにより得られる点であることを示す条件式を求めると、図19に示すように、以下のような4本の式が得られる。
xp=((h−ze)・(xpp−xe))/(zpp−ze)+xe (11-1)
yp=((h−ze)・(ypp−ye))/(zpp−ze)+ye (11-2)
xq=((h−ze)・(xqq−xe))/(zqq−ze)+xe (11-3)
yq=((h−ze)・(yqq−ye))/(zqq−ze)+ye (11-4)
そこで、この4本の式を式(6) に代入すると、図20に示すように、未知数としてhのみを含んだ方程式(12)が得られるので、この方程式を解くことにより、未知数hの値を算出することができる。そして、算出したhの値を上記式(11-1)および(11-2)に代入することにより、未知数であった座標値xp,ypを求めることができ、「Z=h」平面上に、半径R=(xp2+yp2)1/2をもった構造円Cを定義することができる。
なお、構造円定義部520は、上述の手順で定義された複数n個の構造円C1〜Cnに加えて、オペレータから一致指示が与えられた時点でパラメータ設定部330に設定されているパラメータによって定義される第1の参照円Cbottomおよび第2の参照円Ctopを、構造円の一部として定義し、合計(n+2)個の構造円を定義することも可能である。この場合は、図14に示すように、構造円C1〜Cnに加えて、参照円Cbottomおよび参照円Ctopによって復元物体が表現されることになる。
最後の表面データ作成部530は、こうして得られた構造円Cの集合に基づいて、回転体からなる物体の表面データを作成し、これを三次元情報として出力する機能をもった構成要素である。具体的には、たとえば、図21に示すような手法により、復元対象となる三次元物体の表面データを多数のポリゴンで表現すればよい。もちろん、§3で述べたように、ワイヤーフレームのデータとして三次元情報の出力を行うことも可能である。