三次元画像処理装置、三次元画像処理方法および三次元画像処理プログラムを記録した媒体
【課題】 ソフトウェアプログラムにより、自動で二次元画像から三次元オブジェクトをモデル化するという技術はいまだ成熟しておらず、十分に信頼できるものではなかった。
【解決手段】 二次元画像を読み込み、二次元画像を表示した上で、操作入力を受け付けて同画像上に三次元の基準となる位置を指定し、変換関係取得手段が三次元の実空間と二次元の像空間との間の変換関係を取得する。次に、表示画像上で、操作入力を受け付けて対象物の表面の境界の形状を、各セグメントごとに各セグメントの形状に対応した数の離散的な点位置で指定するとともに、操作入力を受け付けて高さの値を取得する。そして、各セグメントごとに指定された離散的な点位置とその数に基づいて、当該区分全体の三次元での位置情報を算出して上記境界を特定し、高さの値と、算出された各セグメントの境界の位置情報と、上記変換関係とに基づいて対象物の三次元モデルを算出する。
【解決手段】 二次元画像を読み込み、二次元画像を表示した上で、操作入力を受け付けて同画像上に三次元の基準となる位置を指定し、変換関係取得手段が三次元の実空間と二次元の像空間との間の変換関係を取得する。次に、表示画像上で、操作入力を受け付けて対象物の表面の境界の形状を、各セグメントごとに各セグメントの形状に対応した数の離散的な点位置で指定するとともに、操作入力を受け付けて高さの値を取得する。そして、各セグメントごとに指定された離散的な点位置とその数に基づいて、当該区分全体の三次元での位置情報を算出して上記境界を特定し、高さの値と、算出された各セグメントの境界の位置情報と、上記変換関係とに基づいて対象物の三次元モデルを算出する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、三次元画像処理装置、三次元画像処理方法および三次元画像処理プログラムを記録した媒体に関する。
【背景技術】
【0002】
多くのロボット工学またはコンピューターによる視覚化アプリケーションでは、特定の種類のオブジェクト(例えば、ロボット工学アプリケーションの中の製造中の製品)を非常に高速にモデル化するということは重要である。
1つ目の方法は映像からオブジェクトをモデル化する試みである。そこでは、ユーザーは直観的にオブジェクトの表面の境界線をトレースすることができ、ソフトウェアは自動的にモデルを再構築する。なお、本明細書では特に断りの無い限り、カメラで撮影された画像イメージを映像と称する。
特許文献1として、「三次元モデリングのためのシステムと方法」が知られている。
【0003】
この特許は、予め定められた二次元領域からユーザーが立体(ボリューム)をつくることができるプッシュ/プル技術を記述する。
この特許は、ユーザーがインタラクティブに二次元の形状から3次元立体(ボリューム)を造る方法を記述する。
また、特許文献2として、「一つの映像から三次元オブジェクトをモデル化するシステムと方法」が知られている。
この特許は、モデル化されるオブジェクトについて、その先行モデルがすでに利用できる状態になっている方法(例えば顔モデル)を記述する。
【0004】
これは自動的に映像から特徴を見つけ、見つかった特徴が最も適切と説明できるように、同特徴をモデルに合致させる。
さらに、特許文献3として、「複数の映像を使ったインタラクティブなモデル生成装置および方法」が知られている。
この特許は、複数の映像からオブジェクトの三次元モデルを生成するためにユーザーがソフトウェアプログラムとインタラクティブに作業できるようにするためのアーキテクチャを記述するに過ぎない。この場合、原始関数を生み出すための実装方法は提供されていない。
【0005】
その他、非特許文献1として、Journal of Mathematical Imaging and Vision(2009/11)において「ラジアルディストーション(歪曲)の中心の算定とラジアルディストーション修正の簡単な方法」という技術が開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】米国特許US6,628,279号公報
【特許文献2】米国公開2007/0127810号公報
【特許文献3】米国公開2002/0080139号公報
【非特許文献】
【0007】
【非特許文献1】Journal of Mathematical Imaging and Vision(2009/11)、ラジアルディストーション(歪曲)の中心の算定とラジアルディストーション修正の簡単な方法
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献1に示す技術では、二次元の領域を特定するためには、あらかじめ定義された原始関数のセットを使うことを基礎としている。そのため、モデリング対象の物体がより複雑であるほど、モデリング操作がより直感的でなくなる。
特許文献2に示す技術では、特定の種類のオブジェクトをモデル化することができるだけであり、一般的な種類のオブジェクトはモデル化されることができない。
特許文献3に示す技術では、単純な形状の原始関数からなる小さなセットでモデルを作り上げることに限定されており、単純なオブジェクトをモデル化させられるだけである。また、複数の映像間での回転行列を算定するために使用される所定の原始関数は、それ自身がシステムに対するエラーの元となり得るので、先の算定を信頼性の薄いものにする。
【0009】
非特許文献1に示す技術では、ラジアルディストーションの中心と、実空間においては直線であるべき線に基づく第一次ラジアルディストーションパラメータの算定方法を記載するに過ぎない。
【課題を解決するための手段】
【0010】
本発明では、二次元画像から三次元画像を算出する三次元画像処理装置であって、二次元画像を読み込む画像読込手段と、読み込んだ二次元画像を表示した上で、操作入力を受け付けて同画像上に三次元の基準となる位置を指定する基準位置指定手段と、三次元の実空間と二次元の像空間との間の変換関係を取得する変換関係取得手段と、表示画像上で、操作入力を受け付けて対象物の表面の境界の形状を、各セグメントごとに各セグメントの形状に対応した数の離散的な点位置で指定するトレース手段と、操作入力を受け付けて高さの値を取得する高さ値取得手段と、各セグメントごとに指定された離散的な点位置とその数に基づいて、当該区分全体の三次元での位置情報を算出して上記境界を特定する境界特定手段と、高さの値と、算出された各セグメントの境界の位置情報と、上記変換関係とに基づいて対象物の三次元モデルを算出する三次元モデル再構築手段とを具備する構成としてある。
【0011】
上記構成において、画像読込手段が、二次元画像を読み込むと、基準位置指定手段は読み込んだ二次元画像を表示した上で、操作入力を受け付けて同画像上に三次元の基準となる位置を指定し、変換関係取得手段が三次元の実空間と二次元の像空間との間の変換関係を取得する。次に、トレース手段が、表示画像上で、操作入力を受け付けて対象物の表面の境界の形状を、各セグメントごとに各セグメントの形状に対応した数の離散的な点位置で指定するとともに、高さ値取得手段は、操作入力を受け付けて高さの値を取得する。この結果、境界特定手段が各セグメントごとに指定された離散的な点位置とその数に基づいて、当該区分全体の三次元での位置情報を算出して上記境界を特定すると、三次元モデル再構築手段が、高さの値と、算出された各セグメントの境界の位置情報と、上記変換関係とに基づいて対象物の三次元モデルを算出する。
【0012】
このように、対象物の三次元モデルを算出する手法は必ずしも実体のある装置に限られる必要はなく、その方法としても機能することは容易に理解でき、その方法としても有効であることに相違はない。
ところで、このような三次元画像処理装置は単独で存在する場合もあるし、ある機器に組み込まれた状態で利用されることもあるなど、発明の思想としてはこれに限らず、各種の態様を含むものである。従って、ソフトウェアであったりハードウェアであったりするなど、適宜、変更可能である。
【0013】
発明の思想の具現化例として三次元画像処理装置のソフトウェアとなる場合には、かかるソフトウェアを記録した記録媒体上においても当然に存在し、利用されるといわざるをえない。
むろん、その記録媒体は、磁気記録媒体であってもよいし光磁気記録媒体であってもよいし、今後開発されるいかなる記録媒体においても全く同様に考えることができる。また、一次複製品、二次複製品などの複製段階については全く問う余地無く同等である。その他、供給方法として通信回線を利用して行なう場合でも本発明が利用されていることにはかわりない。
【0014】
さらに、一部がソフトウェアであって、一部がハードウェアで実現されている場合においても発明の思想において全く異なるものではなく、一部を記録媒体上に記憶しておいて必要に応じて適宜読み込まれるような形態のものとしてあってもよい。
本発明をソフトウェアで実現する場合、ハードウェアやオペレーティングシステムを利用する構成とすることも可能であるし、これらと切り離して実現することもできる。例えば、各種の演算処理といっても、その実現方法はオペレーティングシステムにおける所定の関数を呼び出して処理することも可能であれば、このような関数を呼び出すことなくハードウェアから入力することも可能である。そして、実際にはオペレーティングシステムの介在のもとで実現するとしても、プログラムが媒体に記録されて流通される過程においては、このプログラムだけで本発明を実施できるものと理解することができる。
【0015】
また、本発明をソフトウェアで実施する場合、発明がプログラムを記録した媒体として実現されるのみならず、本発明がプログラム自体として実現されるのは当然であり、プログラム自体も本発明に含まれる。
【発明の効果】
【0016】
本発明は、非傾斜の天面と底面からなる多種多様なオブジェクトの詳細なモデルを得るため、ユーザーが迅速かつ容易に映像の中の境界線をトレースする新規な方法を提供することができ、この技術では、曲がっていたり中空とされた部品を有するオブジェクトもモデル化することができる。
また、本発明によれば、二次元化された画像情報から三次元下において互いに直交する平行線の交差点と、三次元像の起点と高さと外縁点を用いて二次元画像から三次元画像を算出することができる。
【図面の簡単な説明】
【0017】
【図1】システムの構成要素図である。
【図2】プロセッシングソフトウェアのフローチャートである。
【図3】二次元画像上に三次元の基準となる位置を指定する図である。
【図4】ユニークな一つの円を決定する図である。
【図5】補間状況を示す図である。
【図6】フィッティングプロセスが実行される図である。
【図7】フィッティングプロセスが実行される図である。
【図8】ネガティブトレースが使われる例を示す図である。
【図9】ネガティブトレースが使われる例を示す図である。
【図10】ネガティブトレースが使用されるもう一つの例を示す図である。
【図11】ネガティブトレースが使用されるもう一つの例を示す図である。
【図12】ラジアルディストーションの影響を示す図である。
【図13】ラジアルディストーションのためにカーブされる状況を示す図である。
【図14】正しい方向のエッジピクセルだけが残る状況を示す図である。
【図15】セグメント内領域と指示された領域を示す図である。
【図16】セグメント内領域と指示された領域を示す図である。
【発明を実施するための形態】
【0018】
以下、下記の順序に従って添付図面にもとづいて本発明の実施形態を説明する。
図1は、システムの構成要素図である。
三次元オブジェクト再構築ステップは、処理装置(例えばコンピューター)にあるプロセッシングソフトウェアプログラムによって実行される。
ユーザーは、一つの映像と、その映像の外周(適用しえるならば、同オブジェクトにおける天面の内側)の境界をトレースすることとなる一セットの点を供給する。その一セットの点がトレースされる様子は、後で更に詳述する。
【0019】
プロセッシングソフトウェアは対象物(オブジェクト)の再構築された三次元モデルを作り出す。それは、各種のロボット工学、モデリングまたはエンターテイメント・アプリケーションででも使われることができる。
プロセッシングソフトウェア1は、トレースアンドポイントマネージャ2と、三次元モデルジェネレータ3と、テクスチャマネージャ4とを備える。トレースアンドポイントマネージャ2は、ユーザーによって入力されるトレースと点を管理する。三次元モデルジェネレータ3は、与えられたトレースと点と高さから三次元モデルを作り上げる。テクスチャマネージャ4は、三次元モデルの各々の表面のために記録されているテクスチャを管理する。
【0020】
図2は、プロセッシングソフトウェアの中に存在するアルゴリズムのフローチャートを表す。
各々のステップについて詳述する前に、オブジェクトモデルプロセスの一般的な概略を説明する。
最初に、映像はプロセッシングソフトウェアプログラム(イメージロード)に取り込まれる(ステップ1)。次に、ユーザーは、キャリブレーションのために、同映像に関して空間座標を定義する必要がある(ステップ2)。
それから、オプションとして、ラジアルディストーション修正を行ってもよい(オプションとしてのラジアルディストーション修正)(ステップ3)。空間座標の情報によって、ユーザーが映像位置と実空間における高さの値を特定したときに、実空間における絶対的な三次元位置が計算できるようになる。
【0021】
次に、ユーザーは、その映像であるオブジェクトの内部あるいは外周の境界線をトレースする(表面の境界をトレース)(ステップ4)。また、トレースの位置はオプションとして画像情報に基づいて自動的に調整されるようにしてもよい(オプションとしての自動ポイント調整)(ステップ5)。トレースに基づき、プロセッシングソフトウェアは、高さ値を使用しつつ、その境界線の三次元モデルを自動的に再構築する(三次元モデルの構築)(ステップ6)。ユーザーがより多くの境界をトレースしたい(より多くのトレースが必要か?)ならば、追跡ステップは繰り返される(ステップ7)。
【0022】
一旦、すべての境界がトレースできたら、視認可能な各面のテクスチャを映像から取得する(ステップ8)。
それから、モデルをリファインするため、あるいは以前は見えていなかったオブジェクトの部品の外観を得るため、任意的にユーザーは異なる視野からのオブジェクトのより多くの映像を取り込む(ステップ9)。追加の各映像のため、ユーザーは再びキャリブレーションを行う必要がある(ステップ10)。
【0023】
また、オプション的にラジアルディストーションを修正し(オプションとしてのラジアルディストーション修正)(ステップ11)、画像情報に基づいて自動的にトレースポジションを調整し(オプションとしての自動ポイント調整)(ステップ12)してもよい。
そして、既存のモデルは現在の視野(追加のモデル修正)(ステップ13)から修正され、現在の映像で視認できる各面のテクスチャを取得する(ステップ14)。なお、追加のモデル修正では、先の映像で視認できる境界に加えて、新たな視野に対応する映像から新たな境界を加えることも可能である。このようにして新たな境界が生じてくるときには、ステップ6の三次元モデルの構築を実行しても良い。
【0024】
以下、各々のステップの詳細を説明する。
まず、(表1)に、本明細書にて使用されるパラメータのリストを示す。
【表1】
【0025】
ステップ1にて、映像を取り込んだ後、ステップ2で、カメラキャリブレーションが行われる。ここで、ステップ1は画像読込手段に相当し、ステップ2は基準位置指定手段に相当する。
これは映像の中で二つのセットからなる平行な線分(実空間においては、各セットの線分はもう一方のセットの線分に対して垂直)を特定することによって行われる。これは映像に反映される空間での原点と同様である。すなわち、各々の線分が2つの終点から成るので、4本の線と原点の位置を定めることであり、合計9ポイントに対して二次元位置座標を提供することになる。このように、二対の互いに平行な線分であって各対は互いに直交する線分の指定と、原点とで、三次元の基準となる位置を指定している。
【0026】
これらの値に基づき、縮尺に依存しつつ、プロセッシングソフトウェアは実空間から像空間に対する射影行列を計算する。
図3は、映像上に三次元の基準となる位置を指定するプロセスを示す図である。
波線Rと波線Gの四角いタグは2セットの線分(合計4本の線分)の終点を表す。そして、実線の丸いタグは像空間に反映されるときの原点の位置を表す。それからプロセッシングソフトウェアは像空間(それぞれ実線G、実線B、実線Rで示す)に反映されるときのX、Y、Z軸を自動的に計算する。
【0027】
本実施例における、ステップ2のキャリブレーションの数学的フレームワークは以下のようになっている。なお、以下において三次元の実空間と二次元の像空間との間の変換関係を求めており、これは変換関係取得手段に相当する。
ピンホールカメラモデルにおいては、三次元空間の点は式(1)に示す3x4要素のカメラ射影行列Pを介して映像である二次元の点に(共に同次座標表現で)マップ(取得され貼り付け)される。ここで、Pは自由度が11度からなる射影行列であり、式(2)に示す内部カメラ行列(Kの部分)と外部カメラ行列([R T]の部分)とに分解されることができる。
【0028】
RとTは、それぞれ3x3要素の回転行列と3x1要素の並進ベクトルである。Kは式(3)で示すように3x3要素のカメラ固有行列である。そして、αu、αvは焦点距離とピクセルの正方性に関連し、sはスキューパラメータである、そして、x0 =(u0、v0)は映像の原則点である。
ここでは、映像のピクセルは四角いと仮定している。つまり、αu =αv =αが成立する。さらに、映像の中にはゆがみがないためs = 0とし、原則点x0は映像の中央に位置する。
【0029】
【数1】
【数2】
【数3】
このフレームワークでは、ユーザーが映像中に原点と2つのセットの二対の線分を供給することで、カメラパラメータ(K、R、T)は縮尺に依存して解くことができる。ここで、各々のセットの2本の線分は互いに平行であり、2つのセットの線分は相互に垂直である。各々の線分は2点で表されるので、合計9ポイントがユーザーによって供給される必要がある。2セットの平行線から、各々のセットの消点を計算することができる。
【0030】
各々のセットの消点は、それぞれのセットの2本の線分の交差点である。これらの2つの消点をx1 =(u1、v1)とx2 =(u2、v2)と定義する。これらの2ポイントと映像主点x0 =(u0、v0)とから、第3の消点x3 =(u3、v3)が決定される。なぜなら、映像主点x0は、x1、x2とx3によってつくられる三角形の垂心に位置するからである。
まず、映像主点は、x1、x2とx3によってつくられる三角形の垂心であることが証明されている。3つの直角方向の各々における無限遠の点を考慮すると、式(1)に示す式は式(4)に示すものとなる。そこから、回転行列は式(5)に示すように推論されることができる。
【0031】
【数4】
【数5】
回転行列の列要素は相互に直角であり、λi≠0(i = 1,2,3)なので、式(6)に示す式のとおりとなり、また、これらの式でαを消去すると式(7)に示す式となる。
【数6】
【数7】
この式のセットから、映像主点x0は、x1、x2とx3によってつくられる三角形の垂心であるということが証明される。第3の消点x3の位置を見つけるため、式(7)の中の最初の2つの式が使われる。
いくつかの単純な代数操作で、式(8)に示される式は演繹され、それから(u3、v3)の値が決められる。
【0032】
【数8】
固有行列に残された最後のパラメータは焦点距離である。式(6)に示す3つの式のいずれかを使い、焦点距離を解くことができる。
たとえば最初の式を用いて、式(9)で示すように焦点距離を解くことができる。
【数9】
つぎに、外部カメラ行列を解くことができる。回転行列の直行性と正規性を適用して、式(5)に示す制約は式(10)に示すように表すことができる。そして、それは式(11)に示すように解くことができる。以上で、回転行列は解かれる。
【0033】
【数10】
【数11】
外部カメラ行列の並進ベクトルを発見するために、映像における原点が使用される。
原点の射影は、式(12)で示すように表すことができる。
【数12】
ここにおいて、これはλ0における自由度の一つである。このパラメータは原点から離れたカメラの並進に直接関連するものであるから、それは映像におけるピクセル対メーターの縮尺としての働きをする。事実、λ0の値が大きなものであるほど、カメラはより原点から離れ、その場面におけるオブジェクトはその映像上により小さく射影されることになる。この縮尺要素は、ある一つの線分(2つの終点を指定する)を映像に引き、実空間におけるその線分の実際の長さを特定することによって得ることができる。この縮尺値により、射影行列は1つのみとなる。
【0034】
ステップ3のラジアルディストーション修正については後述する。
次のステップ4では、オブジェクトの天面の外側あるいは内部の境界線に沿ってユーザーがトレースすることである。このトレースは、トレース手段に相当する。一つのトレースは、天面の境界線を定めるという一つの閉ループと定義される。すなわち、表示画像上で、ユーザーが行う操作入力を受け付け、対象物の表面の境界の形状を、各セグメントごとに各セグメントの形状に対応した数の離散的な点位置で指定することになる。
【0035】
このモデルにおいては、一つのトレースは同一形状で異なるxz平面に存在する天面と底面との高さを有する所定の立体となる。そして、ユーザーは、各々のトレースに対して天面と底面の間の高さ値を指定することができる。むろん、このようにしてユーザーによる高さの値を入力する操作を受け付けることで、高さ値取得手段を構成する。この高さ値の入力もステップ4にて行っている。
オブジェクトの再構築された三次元モデルは、複数のトレースから構成されることができ、さらには、それらのトレースは異なる天面と底面の高さ値から成ることができる。
【0036】
一つのトレースは後に一つ以上のセグメントから成り、そして、各々のセグメントはユーザーによって提供される2つ以上の点から成り立つ。
ここで、ユーザーによって提供されることが可能な2種類の点があり、それらは、セグメント構成点、またはセグメント分割点である。なお、本明細書においては特に断りの無い限り、セグメントとセグメントとの境界に位置する点をセグメント分割点と称し、それ以外の各セグメントを構成する点をセグメント構成点と称する。
各々のセグメントは、1つか2つのセグメント分割点(トレースの最初の点は、自動的にセグメント分割点とされる)を含んでいる。1つのセグメント分割点しか含んでいなセグメントとしては、少なくとも1つのセグメント構成点がなければならない。2つのセグメント分割点を含んでいるセグメントとしては、それは0かそれ以上セグメント構成点を含んでいてもよい。言い換えると、各々のセグメントは少なくとも2点を含んでいる。
【0037】
セグメントの点の数に応じて、(表2)に示すように、そのセグメントのカーブ(オブジェクトの上面に沿う)は、自動的に異なる方法で区分毎に補間される。
2点を含んでいるセグメントに対しては、そのセグメントは直線によって表現される。3点を含んでいるセグメントに対しては、その3点を通過する円がフィットされる。そして、その円に沿うさらなる点は2つのセグメント分割点の間に自動的に補間される。同様に、4点を含んでいるセグメントに対しては、軸平行楕円がフィットされる。5点を含んでいるセグメントに対しては、一般楕円がフィットされる。セグメントの点の数が5点を超えるケースでは、このフィッティングシステムは過剰決定体系となる。つまり条件が未知数よりも多い。この場合、線形最小二乗法が一般楕円をフィットさせるのに使用される。
【0038】
【表2】
特に、同一直線上にない3つの点があれば、(表3)に示すように使われているパラメータを使い、図4で示すようにユニークな一つの円が決定されることができる。その3点から、点P1と点P2、点P2と点P3とを結ぶことによって2本の線(laとlb)が引かれることができる。続いて、laとlbに直角で、それぞれの中間を通過する線(la'とlb')ができる。la'とlb'の方程式を、式(13)に示している。
【0039】
円の中心は、la'とlb'との交点であり、式(14)に示されるαとβの方程式を解くことになり、式(13)に示す方程式へとその値を置き換えることになる。
円の半径は、中心からP1、P2またはP3の3点のいずれかまでの距離である。
【表3】
【数13】
【数14】
4つの点は式(14)に示される形の軸平行楕円の方程式を一義的に定める。その楕円は中心(x0、y0)とし、それぞれxとy軸に沿った半径aとbとなっている。
【0040】
楕円のパラメータを解くには、4つの方程式(Fの値は、恣意的に-1とする)の4つの未知数により、式(16)に示される分析フォームを解くことになる。幾何学的な解析により、楕円の特性は、式(17)で示すように得られることができる。
【数15】
【数16】
【数17】
5点あるいはそれ以上の点については、式(18)で示すように分析的フォームによって記述される一般楕円が適合する。ちょうど5点の場合は、楕円の方程式が一義的に決定される。5点以上の場合は、このシステムは過剰決定体系となり、少なくとも最小二乗法で近似的に楕円を決めることができる。
【0041】
幾何学的な解析によれば、楕円の中心(x0、y0)は、式(19)で示すように計算される。
この場合、長軸と短軸の長さと楕円の傾きは計算されない。中心(x0、y0)からの特定の角度での楕円上の点の位置を得るため、方程式の分析的フォームが使用される。一般楕円、軸平行楕円と円のケースにとって、少なくとも3点が一つの直線上にあるようなときには、一義的な解が存在しないかもしれない。その場合、一般楕円、軸平行楕円、円、直線の順番により、このようなカーブの算定が成功するまで次の形へと続けられる(始点から終点までの直線としての当てはめは、常に成功するはずである)。
【0042】
【数18】
【数19】
カーブを直線として表すのであれば、補間法は必要とされない。そのセグメントは、単に2つのセグメント分割点によって表現される。円、軸平行楕円、一般楕円の場合では、補間法は必要とされる。
図5で示すように、補間点の数nはまず式(20)に示される方程式によって計算される。そこでは、始点角度θsと終点角度θeは適切な角度(2πを加えるか、引くことによって)となっている。それから、n個の点が、始点角度θsと終点角度θeとの間で等間隔となるようにして補間される。2つの終点がデフォルトで存在するので、そのセグメントは結局、(n+2)点を持っていることになる。
【0043】
【数20】
図6と図7は、このフィッティングプロセスが実行される例を示している。なお、このフィッティングプロセスは、各セグメントごとに指定された離散的な点位置とその数に基づいて、当該区分全体の三次元での位置情報を算出して上記境界を特定する処理に相当し、境界特定手段を構成する。図6において、セグメント構成点、またはセグメント分割点は、それぞれ一点鎖線の十字と二点鎖線の十字で示されている。
セグメント1、3と5は、各々5点から成る。その結果、一般楕円が適合され、中間点は自動的に補間される。これらの補間された点は、天面から底面まで引かれている垂直の破線で示されている。
【0044】
他方、セグメント2は、4点だけを含むので、軸平行楕円が適合され、いくつかの点が補間される。
最後に、セグメント4は3点から成るので、これらの点を通る円が適合される。
このように、各セグメントの形状と離散的な点位置の数との対応として、直線は2点、円は3点、軸平行楕円は4点、一般楕円は5点以上としている。
トレースは、2つのタイプのうちの1つであり、それらは、ポジティブかネガティブである。ポジティブトレースは三次元モデルにボリューム加えるものであり、これに対してネガティブトレースは三次元モデルからボリュームを引くものである(たとえば、空洞を形成するときのように)。すなわち、対象物の表面の境界の指定は、中実形状の境界の指定と、中空形状の境界の指定とを含んでいる。そして、ステップ6で、中実形状の算出処理と、中空形状の算出処理とを実行し、両者の合体結果で三次元モデルを再構築する。ステップ6は、三次元モデル再構築手段に相当する。なお、ステップ13の追加のモデル修正によって三次元モデルを再構築する必要が生じたときに行う場合も三次元モデル再構築手段に相当する。
【0045】
ユーザーの操作としては、ポジティブトレースは反時計回りの方法で点を捜し出すことによって達成され、そして、ネガティブトレースは時計回りの方法で点を捜し出すことによって達成される。
図8と図9は、ネガティブトレースが使われる例を示している。
図8において、一点鎖線のトレースは、ポジティブトレースであり、それはオブジェクトの外側の境界線に沿ってたどっている。他方、二点鎖線のトレースは、ネガティブトレースであり、それはオブジェクトの内部の境界線に沿ってトレースされている。2、3、4または5点を含んでいるセグメントは、2つのトレースのどちらででも見つけられることができる。
【0046】
図10と図11は、ネガティブトレースが使用されるもう一つの例を示す。
図10において、ここでは、4つのトレースがある。外側の上のポジティブトレースと内部の上の3つのネガティブトレースである。
ネガティブトレースのうちの2つは1つのセグメント分割点を持っているだけである、しかし、それは2つの他のセグメント構成点を持っている。合計3点があるので、円がフィットされる。
現実の世界では多種多様なオブジェクトが左右対称であるので、ユーザーによって指定された時点で、ユーザーによって指定された点は特定の軸に沿って裏返すことにより自動的に発生することができる。このように、再構築された三次元モデルは、ユーザーによってマニュアルで点の位置を修正させることなく、その左右対称性を維持することが保証される。
【0047】
このように、ユーザーによる操作入力を受け付けると、指定された点位置を特定の軸に沿って裏返すことにより、左右対称性を維持した点位置を自動的に発生している。
上に示す3つの例では、オブジェクト全体が対称形であるか、少なくともオブジェクトの一部は対称形である。この特徴は、ユーザーが慎重に対称な位置に映像の点を置いていなければならないという単調で退屈な作業をシンプル化させる。
次に、このプロセスソフトウェアプログラムは、トレースを加えたり、取り除くだけでなく、ユーザーが点を加えたり、修正したり、取り除くことができる。ユーザーは後の時点で天面と底面の高さ値を変えることもできる、そして、すべての点の位置が再評価される。
【0048】
ステップ7で繰り返しの判断を行い、すべてのトレースが加えられたあと、ステップ6でオブジェクトの三次元モデルの再構築をして完了する。すなわち、高さの値と、算出された各セグメントの境界の位置情報と、上記変換関係とに基づいて対象物の立体モデルを算出する。
次のステップ8は、モデルのテクスチャを取得することである。映像の中の視認できる面のため、各面のテクスチャが映像からマップされる。この過程が、三次元モデルを算出する際の各面の位置情報に基づいて、二次元画像からテクスチャを取得し、上記三次元モデルの各面に貼り付けるテクスチャ貼り付け手段に相当する。なお、ステップ11(ラジアルディストーション修正)、ステップ12(自動ポイント調整)、ステップ13(追加のモデル修正)を実行することにより、境界の位置情報が修正されることになる。従って、修正された境界情報に対応したテクスチャを取得して所定の面に貼り付ける必要がある。この意味で、境界の位置情報が修正されたときに、再度、テクスチャを取得して貼り付けるステップ14もテクスチャ貼り付け手段に相当する。
【0049】
もし、ステップ9にて利用できる映像がさらにあるならば(異なる視野からの同じオブジェクトにおいて)、その映像の9つの点(それぞれ互いに直交する二組の二本の線の両端と、原点)の位置を与えるキャリブレーションステップが、その新しい映像のために繰り返される(ステップ10)。また、ステップ11(およびステップ3)とステップ12(および、ステップ5)においてラジアルディストーション修正と自動ポイント調整とを行なうが、これらについては後述する。
【0050】
そのモデルはすでに再構築されているので、ステップ14にてテクスチャを取得して貼り付けると、自動的にその映像上に正しく投影されるはずである。
この場合、ユーザーは既存のモデルを修正するかもしれないし、以前は邪魔されていたモデルの一部についてのトレースを加えるかもしれないし、あるいは、このフレームで見える面のテクスチャを取得することができる。十分な視野があれば、そのモデル全体の各面のテクスチャを取得させることができる。
【0051】
図7、図9と、図11は、その映像で見える(視野)面にテクスチャをマッピングした三次元再構築の結果を示している。
このように、同一対象物に対する複数の異なる視野からの二次元画像を読み込み、各画像ごとに上記操作入力を受け付け、上記三次元モデルの対応する各面に貼り付けている。 ユーザーに表面の境界線をトレースさせる以外に、オブジェクトは予め定義された形(一般的な箱、一般的な錐形、および回転楕円体を含む)の組み合わせを使ってモデル化することもできる。すなわち、オブジェクトを、予め定義された形、一般的な箱、一般的な錐形、および回転楕円体との組み合わせを使ってモデル化する。
【0052】
(表4)は、これらの形の各々の修正可能なプロパティを示す。
トレースによる柔軟性と同様に、これらの形のすべてが多種多様なオブジェクトをモデル化可能とする。
【表4】
【0053】
ところで、多くの状況では、レンズのいろいろな影響のために、歪曲が映像中に導入される。そして、最も目立つ影響のうちの1つは放射歪曲(ラジアルディストーション)であり、実空間(映像主点を通過するものでないもの)での直線を映像中ではカーブするように表示させる。オブジェクトの三次元モデルを再構築する上述した方法は直線または他の原始関数(再構築段階と同様にキャリブレーション段階において)に基づいているため、ラジアルディストーションによって導入される副作用を減らすことにより、結果は改善される。
【0054】
以下、ステップ3やステップ11で行っているように、この二次元画像の位置情報に含まれる放射歪曲を除去して位置情報を変換する方法である放射歪曲除去手段について説明する。
ラジアルディストーションの影響を、図12に示す。
以下の説明において使われるパラメータを、(表5)に示す。
【表5】
【0055】
なお、ラジアルディストーションは、非特許文献1のような技術に基づいて算定することができる。
【0056】
ここでは、歪曲の中心とラジアルディストーションの一項を算定する。特に、まず、歪曲の中心が映像の中央に位置するものと仮定する。それから、ラジアルディストーションは式(21)で示すように分割モデルを使用して記述できる。
【数21】
歪められていない映像ポジション(x-u, yu)がゆがめられた映像ポジション(xd, yd)に対応する場合、rd{=(xd**2+yd**2)**(1/2)}はゆがめられた点の原点までの距離であり、λはラジアルディストーションパラメータである。
【0057】
歪曲されていない画像の中での直線は、式(22)のように表されることができる。
【数22】
ここで、kは傾きで、bがy切片である。あるいは、水平よりも垂直に近い線にとっては、yに関してxを表している方程式が得られる。式(22)に示される式は式(23)として書き直すことができる、そして、いくつかの代数操作で、式(24)に示す式が得られる。この式は、このモデルのもとで、ゆがめられた直線が円になることを示している。
【0058】
【数23】
【数24】
歪曲の中心が中央にないならば、歪曲(x0, y0)のセンターはそれぞれxdとydをxd - x0とyd - y0と入れ替えることによって式(24)に示される式に取り込むことができる。いくつかの代数操作で、式(25)に示される式が得られる。あるいは、式(26)に示される式を記述できる。
【数25】
【数26】
3本の線を使って、(Ai, Bi, Ci), i=1,2,3の値は式(25)から計算されることができ、それから、歪曲(x0, y0)の中心は式(27)で示すように計算することができる。最後に、ラジアルディストーションの値は、式(28)で示すように解ける。あるいは、4本の線を用いた最小二乗法を使用できる。
【0059】
【数27】
【数28】
以上のようにして、二次元画像の位置情報に含まれる放射歪曲を除去して位置情報を変換することができるようになる。
次の問題は、円をエッジピクセルに対して安定してフィットさせることである。円の方程式が式(29)で示すように解析的な形に書かれると仮定する。
【数29】
エッジ点(xi, yi)から円までの距離は、式(30)で示すように表すことができる。
【数30】
さらに、式(31)で示すように角座標を使ってa2とa3を書くことにより、式(32)で示す目的の機能は、標準的なLevenberg-Marquardtアルゴリズムを使用することで、三次元空間(a1, a4, θ)で解くことができる。
【0060】
【数31】
【数32】
最後に、エッジピクセルを見つける処理を行う必要がある。すなわち、二次元画像からエッジ画素を検出し、同エッジ画素の位置情報から上記境界の位置情報を修正するものであり、ステップ5やステップ12で行なっているポイント調整手段に相当する。
4本の線の各々ごとに、各線を囲んでいるピクセルからなる長方形の一片の中で、キャニーエッジディテクション(canny edge detection)を最初に実行する。エッジピクセルの強さと法線方向も記録される、そして、法線の向きからの角度差異が設定された閾値を超えるエッジピクセルは排除される。
【0061】
残りのエッジピクセルは、現在の線に帰属するものとみなす。エッジとして十分なピクセル(閾値を上回っているもの)が4本の線のうちの少なくとも3本において見つかるなら、ラジアルディストーション修正プロセスを進めることができる。
たとえば、図13で示すように、ラジアルディストーションのためにカーブされることになった一点鎖線を含む映像を仮定する。キャリブレーション段階のときにユーザーが二点鎖線を入力したと仮定する。破線の箱は、領域(その中でエッジピクセルがラジアルディストーションパラメータの算定のために使われる)を示す。
【0062】
エッジ検出を実行すると、即座に、入力された線に関して45度を超える標準偏差を持つすべてのエッジピクセルは、分離物として捨てられる。
残りのエッジピクセルの方向は、1つか2つの互いに反対の一般的な方向(互いの近くに現れている二重のエッジの場合)を示すかもしれない。エッジピクセルのこれらの2つのグループのうち、より多数の数のグループだけが保持される。すなわち、図14に示されるように、正しい方向のエッジピクセルだけが残る。
【0063】
ラジアルディストーションがない場合と、ユーザー入力エラーがない場合、すべてのエッジピクセルは正確に直線上に乗ることになる。ラジアルディストーションがあることで、すべてのエッジピクセルが直線上に乗ることにはならない。しかし、映像がラジアルディストーションパラメータの正しい値で正しく歪められていない(歪曲の他のいかなる形も取らない)ならば、エッジピクセルは直線に乗ることになる。
この点で、歪曲の中心(x0、y0)とラジアルディストーションパラメータλは算定される。そして、ラジアルディストーションを修正するために画像を反らすことができる。同時に、ユーザーによって入力された点(原点と、4本の線分の端点)の位置も同様に調節される、そのため、それらは映像上の歪められていない位置に一致する。ラジアルディストーションを修正することにより、画像情報(例えばエッジ)をより信頼性あるものとして利用することができる。
【0064】
前景と背景が殆ど乱れていない映像については、エッジ情報を用いてトレース(および各セグメント)の正確さを改善することができる。たとえば、実空間の直線は、映像の中でも直線として現れる。
最初に、キャニーエッジディテクションが映像に適用される、その一方で、各々のエッジピクセルの法線方向を記録する。それから、各セグメントは、属しているエッジピクセルを収集する。
以下の2つの条件が満たされるならば、エッジピクセルはある一定の可能性(どのようにしてその可能性を計算するかは、後述する)を持ってそのセグメントに属している:
【0065】
・エッジピクセルは、そのセグメントから一定の距離(しきい値)内に入る。
・エッジピクセルの標準の方向は、そのエッジピクセルに最も近いセグメントの点上で、セグメントのタンジェントに対して(あるしきい値を持って)垂直である。
エッジピクセルからセグメントまでの距離を計算するには、「セグメント内」という概念が最初に導入される。
【0066】
もしそのセグメントが直線であるならば、セグメント内領域とは始点と終点の間の領域であると定義され、その線と直角をなす外側に広がる。さもなければ、セグメント内領域はカーブの始点と終点の間の領域であり、中心から外方に広がる。
図15と図16は、視覚的に、セグメント内領域と指示された一点鎖線で囲まれた領域として、示している。エッジピクセルjがセグメントiのセグメント内領域内にあるならば、エッジピクセルのセグメントdijまでの距離がそのセグメントまでの最も近い距離である。そのセグメントの既知の方程式に基づいて、この距離は計算される。
【0067】
もしエッジピクセルがセグメント内領域の外にあるならば、セグメントdijまでの距離は2つのエンドポイントまでの距離の短い方である。
各々のセグメントは、それが収集するすべてのエッジピクセルに対して重みを割り当てる。セグメントiとエッジピクセルjに対して、式(33)で示すように、重みwijが与えられる。ここで、σは標準偏差の値で、4に等しい。
【数33】
これから、エッジピクセルjがセグメントiに属しているという可能性は式(34)で示すように計算される。
【0068】
【数34】
今、各々のセグメントの方程式は、ある特定のピクセルがそのセグメントに属する可能性を計算したのと同様に、そのセグメントが集めたエッジピクセルの位置に基づいて再計算される。
セグメントが直線、円、軸平行楕円または一般楕円であるかどうかにかかわらず、セグメントの複雑さは変わらない。それから、その複雑さ(そのセグメントを定める変数の数)より多くのエッジピクセルがそのセグメントに属し得るということもある。これらの場合、最小二乗法によって求められる。
【0069】
最小二乗法は、通常、式(35)で示すように形式をとる。
n個の点が現在のセグメントにあるとする。それから、Wは、斜めに存在している現在のセグメントに属している各々のエッジピクセルの可能性を備えたnxnマトリックスである。Xは解かれるべき変数のリストである、そして、Sとbはそれらの変数に関連を有するエッジ-ピクセルに特有の値である。
【数35】
【0070】
たとえば、式(36)に示される分析的なフォームから、円はA=Cで、かつ、B = 0という制約を持つ。
この場合、SとXとbは、式(37)で示すように書くことができる。
他の形状のためにも類似した式を書くことができる。
【数36】
【数37】
それから、更新された各セグメントの方程式に基づき、クリックされた点の位置を修正する。セグメント構成点については、新しい候補位置は、その点に最も近いセグメント上(新しい方程式に従って)の点である。オリジナル位置と新しい候補位置の間の距離が閾値以下にあるならば、その点の位置は候補位置に修正される。
【0071】
セグメント分割点については、その新しい候補位置はセグメントの先頭及び末尾の点に依存する。2つのセグメントは、0か、1か、2点、4点で交差するかもしれない。その候補位置は、以下にケース1〜ケース3として示すように、各々のケースごとに違う方法で計算される。
【0072】
ケース1:
2つのセグメントが交差していない場合
この場合は、各セグメント上で、その2つのセグメントの間の最も近い点の中間が候補位置になる
ケース2:
2つのセグメントが1点で交差する場合:
この場合は、その交差点が候補位置になる
ケース3:
2つのセグメントが2点で交差する場合:
その2つの交点を結ぶ線分上でクリックされた点の位置と最も近い点が、新しい候補位置になる
ケース4:
2つのセグメントが4点で交差する場合:
4点の交点のうち、クリックされた点に最も近い2点を選択する。選択した2点に基づきケース3の方法で計算し、新しい候補位置を決める。
【0073】
また、候補位置と新しい位置の間の距離がしきい値を越えているならば、クリックされた点の位置は修正されない。
そうでなければ、クリックされた点の位置は候補位置の方へ移動される。このプロセスは、再構築されたモデルの正確さを改善するために、任意に繰り返されることができる(エッジピクセル可能性を計算して、方程式をセグメントに割り当て、クリックされた点位置を移動させる)。
以上のようにして二次元画像からエッジ画素を検出し、同エッジ画素の位置情報から上記境界の位置情報を修正する。すなわち、画像情報(エッジ)に基づいて各々のクリック点の位置を自動的に調節する。
【0074】
ところで、多くのロボット工学、モデリングと娯楽アプリケーションにおいて、実空間のオブジェクトの三次元モデルを高速に再構築できることは、非常に有益である。
この結果を成し遂げる1つの方法は、ソフトウェアプログラムの助けを借りて、一つ以上の二次元画像から三次元オブジェクトをモデル化しようとすることである。従来技術においても完全に自動的な三次元オブジェクトの再構築手法は、まだまだ成熟しておらず、十分に信頼できるものではない。その結果、簡単で直観的な半自動式の技術は、前述のアプリケーションに対して非常に有益なものである。
【0075】
本技術は、多種多様なオブジェクトの三次元モデルの再構築に対して迅速かつ容易に解決策を提供する。
ユーザーは、マウスのわずか数クリックで、かなり複雑なオブジェクトの再構築でも直観的にできる。ユーザーは、再構築プロセスの速度をさらに上げるために、オブジェクトの左右対称性を利用することもできる。
映像を利用するので、各面のテクスチャはすぐに利用できる。このように、再構築されたモデルにテクスチャを適用することには、さらなる労力を必要としない。
【0076】
したがって、この技術は、三次元オブジェクトのモデル再構築の効率を大幅に改善することができる。
さらに、ラジアルディストーションは映像に不要な誤差を取り込んでしまう。ラジアルディストーションによって引き起こされる大きな人工的な不要物の1つは、実空間の直線が映像の中でカーブして現れるということである。
ユーザーによってすでに提供される情報(ユーザーからの新しい入力を必要としない)に基づいてラジアルディストーションを修正することにより、映像はすぐさま修正することができ、より正確に実空間を表す映像とすることができる。その結果、その映像に基づいてより精密なモデルを再構築することができる。
【0077】
さらに、画像情報(エッジ)に基づいて各々のクリック点の位置を自動的に調節することにより、人為ミスはさらに減らすことができる。このステップはラジアルディストーション修正ステップと相並んで進行する。なぜなら、ラジアルディストーション修正効果が、この自動調整ステップの品質を改善するからである。その結果、より精密なモデルを再構築することができる。
本発明では、ユーザによって境界をトレースして得られた複数のポイントからなる形状とされた非傾斜の天面と底面とを有するオブジェクトの三次元モデルを生成する。
【0078】
以下、本実施形態における特徴について要約して説明する。
本実施形態では、多くの人工物は、直線、円または楕円の各区分でモデル化可能なエッジによって構成されているというメリットを活かすことにより、一つ以上の映像から半自動的に三次元オブジェクトをモデル化するための方法を開示している。
また、映像の1つに基づいて、ソフトウェアが実空間から像空間への射影行列を計算するのを許可するアトリビュートをユーザーが定める。本キャリブレーションステップは、ユーザーに柔軟性を提供し、射影行列の正しさに対するユーザーの完全な支配を確実にさせる。
【0079】
本実施形態では、独立してオブジェクト形の異なる区分をモデル化する方法を開示している。
全体的な形がトレースと区分を通してモジュール化され、カーブの特定の部分と独立して表すことができるように各々の区分が別々に補間されることで成し遂げられる。かなり複雑な形の対象もモデル化されることができる。
本実施形態では、キャリブレーション目的でユーザーによって与えられるデータに基づくラジアルディストーションの修正方法を開示している。
【0080】
ラジアルディストーションは、再構築されるモデルの正確さを減少させることになる不要物(ゴミ)を映像中に作り出す。
本実施形態では、再構築された形からボリュームを増減する方法を開示している。
複数の部品はポジティブトレースで結合され、また、中空部品はネガティブトレースで結合されることにより、成し遂げられる。
本実施形態では、あらかじめ定義された原始関数に基づく単純な形で、オブジェクトまたはオブジェクトの部分を描写する方法を開示している。
【0081】
一般的な形によるオブジェクトまたはオブジェクトの部分は、一般的な箱形と、一般的な錐形と、回転楕円体を使ってモデル化されることができる。
本実施形態では、再構築されたモデルに左右対称性を導入することによってモデリングを単純化する方法を開示している。
実空間の多種多様なオブジェクトに起きている左右対称性の特質を利用して、特定の軸に沿ったトレース点のいくつかをユーザーが裏返すことで、成し遂げられる。
本実施形態では、画像情報を使用したトレースポイントの正確さを向上する方法を開示している。
【0082】
エッジのような画像情報を使用することで、トレースポイントの正確さを向上できる。特にラジアルディストーション修正において有用である。
本実施形態では、再構築されたモデルをリファインする方法を開示している。
ユーザーが、いつでも自由に、ポイントを追加、削除、修正し、トレースすることができることにより、成し遂げられる。天面と底面との高さ値は、いつでも自由に修正することができる。
本実施形態では、現実的な見かけでオブジェクトを再構築する方法を開示している。
【0083】
テクスチャは、映像から再構築されたモデルにマップされることができる。
本実施形態では、再構築されたモデルをより多くの映像で洗練する方法を開示している。
先に、特定の視点からオブジェクトを見ることによって視界を遮られていた構成要素も、モデル化されることができる。特定の視点からオブジェクトを見ることにより、テクスチャがマップ化できなかったが、不十分にマップ化された表面も、マップ化でき、再マップ化もできる。
【0084】
最後に、本発明を適用分野と、それぞれの場合のメリットについて説明する。
(1)ロボット工学において
ピックアンドプレースアプリケーションのためのオブジェクトのモデリング
ピックアンドプレースアプリケーションのロボット工学シミュレーションのためのオブジェクトの現実的なモデルの再構築
三次元化のためのオブジェクトのモデリング
ロボット工学シミュレーションアプリケーションでの三次元化のための実空間におけるオブジェクトの現実的なモデルの再構築
【0085】
メリット:
ロボットシミュレーションを現実的にするため、ピックアンドプレースに使われるオブジェクトや、実空間のオブジェクトは、三次元化が実空間で目に見えるのと近いものとなるように、モデリングされなければならない。
ピックアンドプレースシミュレーションのため、ユーザーはロボットがどのようにオブジェクトと相互作用するか、あるいは、オブジェクトのどれほどの特性がその相互作用に影響を及ぼすか試験したいと思うかもしれない。その結果、オブジェクトの精密なモデルが必要となる。
【0086】
本技術は、広範囲にわたるオブジェクトを簡単かつ正確にモデル化させることができる。
(2)コンピュータービジョンにおいて
オブジェクトおよびポーズ認知ルーチンのトレーニングのためのオブジェクトのモデリング対象となるオブジェクトの再構築されたモデルがあれば、異なる視点、異なる照明下、異なる量の障害物の状況をシミュレーションすることができる。これらの映像から、そのオブジェクトの特別な特徴を学習するため、マシンラーニングアルゴリズムを適用させることができる。例えば、新しい映像のために新しい映像オブジェクトのタスクやポーズ認知が実行されることができる。
【0087】
メリット:
オブジェクトの様子は、異なる視点、異なる照明、異なる量の障害物の状況の下で大幅に変化する。このため、オブジェクトの映像セットを作り出し、認知アプリケーションを適用することは通常非常に退屈で時間がかかる。
しかし、本方法により、一旦オブジェクトのモデルが再構築されるならば、ユーザーが望むどんな方法ででもその見かけをシミュレートすることができ、指定されたどのような状況下でも映像を作り出すことができる。これは、マシンラーニングによるデータ収集の作業を非常に簡単化する。
【0088】
(3)ゲーム、エンターテイメント、仮想現実において
ゲーム、エンターテイメント(例えば映画)または仮想現実環境の中でのディスプレイのためのオブジェクトのモデリング
再構築されたオブジェクトはゲームや映画や仮想現実プログラムのような仮想環境の中に置かれることができる。例えば、そのオブジェクトがそのシーンで現実的に三次元化されるように。
ゲームや仮想現実アプリケーションにおいては、ユーザーは各シーンでそのオブジェクトのモデルとかかわり合うことが可能となる。
【0089】
メリット:
仮想アプリケーションでオブジェクトをより現実的に表すためにはそのオブジェクトの良いモデルが必要となり、それを構築するには非常に時間がかかる。
しかし、この方法により、良いモデル(幾何学的にも表面的にも)が迅速かつ容易に作成することができる。それにより、ユーザーによる努力を殆ど要することなく仮想環境において使えるようになる。
なお、自動的にトレースの精度を向上させるために、プログラムは映像の手掛かりとなるエッジや角などの情報を扱えるようになっているべきである。
なお、本実施形態では、三次元オブジェクト再構築ステップを、処理装置(例えばコンピューター)にあるプロセッシングソフトウェアプログラムによって実行している。この意味で、本発明は、実体のある三次元画像処理装置としても実現されているし、同プログラムを記憶する媒体も実現可能であり、同様に、三次元画像処理プログラムを記録した媒体としても実現されている。さらに、コンピューターにて実行される過程としての三次元画像処理としても実現されている。また、個々において明示的に説明していないが、コンピューターにて実施される各処理は、コンピューターに対して同処理を行う機能を実現させている。
【符号の説明】
【0090】
1…プロセッシングソフトウェア、2…トレースアンドポイントマネージャ、3…三次元モデルジェネレータ、4…テクスチャマネージャ。
【技術分野】
【0001】
本発明は、三次元画像処理装置、三次元画像処理方法および三次元画像処理プログラムを記録した媒体に関する。
【背景技術】
【0002】
多くのロボット工学またはコンピューターによる視覚化アプリケーションでは、特定の種類のオブジェクト(例えば、ロボット工学アプリケーションの中の製造中の製品)を非常に高速にモデル化するということは重要である。
1つ目の方法は映像からオブジェクトをモデル化する試みである。そこでは、ユーザーは直観的にオブジェクトの表面の境界線をトレースすることができ、ソフトウェアは自動的にモデルを再構築する。なお、本明細書では特に断りの無い限り、カメラで撮影された画像イメージを映像と称する。
特許文献1として、「三次元モデリングのためのシステムと方法」が知られている。
【0003】
この特許は、予め定められた二次元領域からユーザーが立体(ボリューム)をつくることができるプッシュ/プル技術を記述する。
この特許は、ユーザーがインタラクティブに二次元の形状から3次元立体(ボリューム)を造る方法を記述する。
また、特許文献2として、「一つの映像から三次元オブジェクトをモデル化するシステムと方法」が知られている。
この特許は、モデル化されるオブジェクトについて、その先行モデルがすでに利用できる状態になっている方法(例えば顔モデル)を記述する。
【0004】
これは自動的に映像から特徴を見つけ、見つかった特徴が最も適切と説明できるように、同特徴をモデルに合致させる。
さらに、特許文献3として、「複数の映像を使ったインタラクティブなモデル生成装置および方法」が知られている。
この特許は、複数の映像からオブジェクトの三次元モデルを生成するためにユーザーがソフトウェアプログラムとインタラクティブに作業できるようにするためのアーキテクチャを記述するに過ぎない。この場合、原始関数を生み出すための実装方法は提供されていない。
【0005】
その他、非特許文献1として、Journal of Mathematical Imaging and Vision(2009/11)において「ラジアルディストーション(歪曲)の中心の算定とラジアルディストーション修正の簡単な方法」という技術が開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】米国特許US6,628,279号公報
【特許文献2】米国公開2007/0127810号公報
【特許文献3】米国公開2002/0080139号公報
【非特許文献】
【0007】
【非特許文献1】Journal of Mathematical Imaging and Vision(2009/11)、ラジアルディストーション(歪曲)の中心の算定とラジアルディストーション修正の簡単な方法
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献1に示す技術では、二次元の領域を特定するためには、あらかじめ定義された原始関数のセットを使うことを基礎としている。そのため、モデリング対象の物体がより複雑であるほど、モデリング操作がより直感的でなくなる。
特許文献2に示す技術では、特定の種類のオブジェクトをモデル化することができるだけであり、一般的な種類のオブジェクトはモデル化されることができない。
特許文献3に示す技術では、単純な形状の原始関数からなる小さなセットでモデルを作り上げることに限定されており、単純なオブジェクトをモデル化させられるだけである。また、複数の映像間での回転行列を算定するために使用される所定の原始関数は、それ自身がシステムに対するエラーの元となり得るので、先の算定を信頼性の薄いものにする。
【0009】
非特許文献1に示す技術では、ラジアルディストーションの中心と、実空間においては直線であるべき線に基づく第一次ラジアルディストーションパラメータの算定方法を記載するに過ぎない。
【課題を解決するための手段】
【0010】
本発明では、二次元画像から三次元画像を算出する三次元画像処理装置であって、二次元画像を読み込む画像読込手段と、読み込んだ二次元画像を表示した上で、操作入力を受け付けて同画像上に三次元の基準となる位置を指定する基準位置指定手段と、三次元の実空間と二次元の像空間との間の変換関係を取得する変換関係取得手段と、表示画像上で、操作入力を受け付けて対象物の表面の境界の形状を、各セグメントごとに各セグメントの形状に対応した数の離散的な点位置で指定するトレース手段と、操作入力を受け付けて高さの値を取得する高さ値取得手段と、各セグメントごとに指定された離散的な点位置とその数に基づいて、当該区分全体の三次元での位置情報を算出して上記境界を特定する境界特定手段と、高さの値と、算出された各セグメントの境界の位置情報と、上記変換関係とに基づいて対象物の三次元モデルを算出する三次元モデル再構築手段とを具備する構成としてある。
【0011】
上記構成において、画像読込手段が、二次元画像を読み込むと、基準位置指定手段は読み込んだ二次元画像を表示した上で、操作入力を受け付けて同画像上に三次元の基準となる位置を指定し、変換関係取得手段が三次元の実空間と二次元の像空間との間の変換関係を取得する。次に、トレース手段が、表示画像上で、操作入力を受け付けて対象物の表面の境界の形状を、各セグメントごとに各セグメントの形状に対応した数の離散的な点位置で指定するとともに、高さ値取得手段は、操作入力を受け付けて高さの値を取得する。この結果、境界特定手段が各セグメントごとに指定された離散的な点位置とその数に基づいて、当該区分全体の三次元での位置情報を算出して上記境界を特定すると、三次元モデル再構築手段が、高さの値と、算出された各セグメントの境界の位置情報と、上記変換関係とに基づいて対象物の三次元モデルを算出する。
【0012】
このように、対象物の三次元モデルを算出する手法は必ずしも実体のある装置に限られる必要はなく、その方法としても機能することは容易に理解でき、その方法としても有効であることに相違はない。
ところで、このような三次元画像処理装置は単独で存在する場合もあるし、ある機器に組み込まれた状態で利用されることもあるなど、発明の思想としてはこれに限らず、各種の態様を含むものである。従って、ソフトウェアであったりハードウェアであったりするなど、適宜、変更可能である。
【0013】
発明の思想の具現化例として三次元画像処理装置のソフトウェアとなる場合には、かかるソフトウェアを記録した記録媒体上においても当然に存在し、利用されるといわざるをえない。
むろん、その記録媒体は、磁気記録媒体であってもよいし光磁気記録媒体であってもよいし、今後開発されるいかなる記録媒体においても全く同様に考えることができる。また、一次複製品、二次複製品などの複製段階については全く問う余地無く同等である。その他、供給方法として通信回線を利用して行なう場合でも本発明が利用されていることにはかわりない。
【0014】
さらに、一部がソフトウェアであって、一部がハードウェアで実現されている場合においても発明の思想において全く異なるものではなく、一部を記録媒体上に記憶しておいて必要に応じて適宜読み込まれるような形態のものとしてあってもよい。
本発明をソフトウェアで実現する場合、ハードウェアやオペレーティングシステムを利用する構成とすることも可能であるし、これらと切り離して実現することもできる。例えば、各種の演算処理といっても、その実現方法はオペレーティングシステムにおける所定の関数を呼び出して処理することも可能であれば、このような関数を呼び出すことなくハードウェアから入力することも可能である。そして、実際にはオペレーティングシステムの介在のもとで実現するとしても、プログラムが媒体に記録されて流通される過程においては、このプログラムだけで本発明を実施できるものと理解することができる。
【0015】
また、本発明をソフトウェアで実施する場合、発明がプログラムを記録した媒体として実現されるのみならず、本発明がプログラム自体として実現されるのは当然であり、プログラム自体も本発明に含まれる。
【発明の効果】
【0016】
本発明は、非傾斜の天面と底面からなる多種多様なオブジェクトの詳細なモデルを得るため、ユーザーが迅速かつ容易に映像の中の境界線をトレースする新規な方法を提供することができ、この技術では、曲がっていたり中空とされた部品を有するオブジェクトもモデル化することができる。
また、本発明によれば、二次元化された画像情報から三次元下において互いに直交する平行線の交差点と、三次元像の起点と高さと外縁点を用いて二次元画像から三次元画像を算出することができる。
【図面の簡単な説明】
【0017】
【図1】システムの構成要素図である。
【図2】プロセッシングソフトウェアのフローチャートである。
【図3】二次元画像上に三次元の基準となる位置を指定する図である。
【図4】ユニークな一つの円を決定する図である。
【図5】補間状況を示す図である。
【図6】フィッティングプロセスが実行される図である。
【図7】フィッティングプロセスが実行される図である。
【図8】ネガティブトレースが使われる例を示す図である。
【図9】ネガティブトレースが使われる例を示す図である。
【図10】ネガティブトレースが使用されるもう一つの例を示す図である。
【図11】ネガティブトレースが使用されるもう一つの例を示す図である。
【図12】ラジアルディストーションの影響を示す図である。
【図13】ラジアルディストーションのためにカーブされる状況を示す図である。
【図14】正しい方向のエッジピクセルだけが残る状況を示す図である。
【図15】セグメント内領域と指示された領域を示す図である。
【図16】セグメント内領域と指示された領域を示す図である。
【発明を実施するための形態】
【0018】
以下、下記の順序に従って添付図面にもとづいて本発明の実施形態を説明する。
図1は、システムの構成要素図である。
三次元オブジェクト再構築ステップは、処理装置(例えばコンピューター)にあるプロセッシングソフトウェアプログラムによって実行される。
ユーザーは、一つの映像と、その映像の外周(適用しえるならば、同オブジェクトにおける天面の内側)の境界をトレースすることとなる一セットの点を供給する。その一セットの点がトレースされる様子は、後で更に詳述する。
【0019】
プロセッシングソフトウェアは対象物(オブジェクト)の再構築された三次元モデルを作り出す。それは、各種のロボット工学、モデリングまたはエンターテイメント・アプリケーションででも使われることができる。
プロセッシングソフトウェア1は、トレースアンドポイントマネージャ2と、三次元モデルジェネレータ3と、テクスチャマネージャ4とを備える。トレースアンドポイントマネージャ2は、ユーザーによって入力されるトレースと点を管理する。三次元モデルジェネレータ3は、与えられたトレースと点と高さから三次元モデルを作り上げる。テクスチャマネージャ4は、三次元モデルの各々の表面のために記録されているテクスチャを管理する。
【0020】
図2は、プロセッシングソフトウェアの中に存在するアルゴリズムのフローチャートを表す。
各々のステップについて詳述する前に、オブジェクトモデルプロセスの一般的な概略を説明する。
最初に、映像はプロセッシングソフトウェアプログラム(イメージロード)に取り込まれる(ステップ1)。次に、ユーザーは、キャリブレーションのために、同映像に関して空間座標を定義する必要がある(ステップ2)。
それから、オプションとして、ラジアルディストーション修正を行ってもよい(オプションとしてのラジアルディストーション修正)(ステップ3)。空間座標の情報によって、ユーザーが映像位置と実空間における高さの値を特定したときに、実空間における絶対的な三次元位置が計算できるようになる。
【0021】
次に、ユーザーは、その映像であるオブジェクトの内部あるいは外周の境界線をトレースする(表面の境界をトレース)(ステップ4)。また、トレースの位置はオプションとして画像情報に基づいて自動的に調整されるようにしてもよい(オプションとしての自動ポイント調整)(ステップ5)。トレースに基づき、プロセッシングソフトウェアは、高さ値を使用しつつ、その境界線の三次元モデルを自動的に再構築する(三次元モデルの構築)(ステップ6)。ユーザーがより多くの境界をトレースしたい(より多くのトレースが必要か?)ならば、追跡ステップは繰り返される(ステップ7)。
【0022】
一旦、すべての境界がトレースできたら、視認可能な各面のテクスチャを映像から取得する(ステップ8)。
それから、モデルをリファインするため、あるいは以前は見えていなかったオブジェクトの部品の外観を得るため、任意的にユーザーは異なる視野からのオブジェクトのより多くの映像を取り込む(ステップ9)。追加の各映像のため、ユーザーは再びキャリブレーションを行う必要がある(ステップ10)。
【0023】
また、オプション的にラジアルディストーションを修正し(オプションとしてのラジアルディストーション修正)(ステップ11)、画像情報に基づいて自動的にトレースポジションを調整し(オプションとしての自動ポイント調整)(ステップ12)してもよい。
そして、既存のモデルは現在の視野(追加のモデル修正)(ステップ13)から修正され、現在の映像で視認できる各面のテクスチャを取得する(ステップ14)。なお、追加のモデル修正では、先の映像で視認できる境界に加えて、新たな視野に対応する映像から新たな境界を加えることも可能である。このようにして新たな境界が生じてくるときには、ステップ6の三次元モデルの構築を実行しても良い。
【0024】
以下、各々のステップの詳細を説明する。
まず、(表1)に、本明細書にて使用されるパラメータのリストを示す。
【表1】
【0025】
ステップ1にて、映像を取り込んだ後、ステップ2で、カメラキャリブレーションが行われる。ここで、ステップ1は画像読込手段に相当し、ステップ2は基準位置指定手段に相当する。
これは映像の中で二つのセットからなる平行な線分(実空間においては、各セットの線分はもう一方のセットの線分に対して垂直)を特定することによって行われる。これは映像に反映される空間での原点と同様である。すなわち、各々の線分が2つの終点から成るので、4本の線と原点の位置を定めることであり、合計9ポイントに対して二次元位置座標を提供することになる。このように、二対の互いに平行な線分であって各対は互いに直交する線分の指定と、原点とで、三次元の基準となる位置を指定している。
【0026】
これらの値に基づき、縮尺に依存しつつ、プロセッシングソフトウェアは実空間から像空間に対する射影行列を計算する。
図3は、映像上に三次元の基準となる位置を指定するプロセスを示す図である。
波線Rと波線Gの四角いタグは2セットの線分(合計4本の線分)の終点を表す。そして、実線の丸いタグは像空間に反映されるときの原点の位置を表す。それからプロセッシングソフトウェアは像空間(それぞれ実線G、実線B、実線Rで示す)に反映されるときのX、Y、Z軸を自動的に計算する。
【0027】
本実施例における、ステップ2のキャリブレーションの数学的フレームワークは以下のようになっている。なお、以下において三次元の実空間と二次元の像空間との間の変換関係を求めており、これは変換関係取得手段に相当する。
ピンホールカメラモデルにおいては、三次元空間の点は式(1)に示す3x4要素のカメラ射影行列Pを介して映像である二次元の点に(共に同次座標表現で)マップ(取得され貼り付け)される。ここで、Pは自由度が11度からなる射影行列であり、式(2)に示す内部カメラ行列(Kの部分)と外部カメラ行列([R T]の部分)とに分解されることができる。
【0028】
RとTは、それぞれ3x3要素の回転行列と3x1要素の並進ベクトルである。Kは式(3)で示すように3x3要素のカメラ固有行列である。そして、αu、αvは焦点距離とピクセルの正方性に関連し、sはスキューパラメータである、そして、x0 =(u0、v0)は映像の原則点である。
ここでは、映像のピクセルは四角いと仮定している。つまり、αu =αv =αが成立する。さらに、映像の中にはゆがみがないためs = 0とし、原則点x0は映像の中央に位置する。
【0029】
【数1】
【数2】
【数3】
このフレームワークでは、ユーザーが映像中に原点と2つのセットの二対の線分を供給することで、カメラパラメータ(K、R、T)は縮尺に依存して解くことができる。ここで、各々のセットの2本の線分は互いに平行であり、2つのセットの線分は相互に垂直である。各々の線分は2点で表されるので、合計9ポイントがユーザーによって供給される必要がある。2セットの平行線から、各々のセットの消点を計算することができる。
【0030】
各々のセットの消点は、それぞれのセットの2本の線分の交差点である。これらの2つの消点をx1 =(u1、v1)とx2 =(u2、v2)と定義する。これらの2ポイントと映像主点x0 =(u0、v0)とから、第3の消点x3 =(u3、v3)が決定される。なぜなら、映像主点x0は、x1、x2とx3によってつくられる三角形の垂心に位置するからである。
まず、映像主点は、x1、x2とx3によってつくられる三角形の垂心であることが証明されている。3つの直角方向の各々における無限遠の点を考慮すると、式(1)に示す式は式(4)に示すものとなる。そこから、回転行列は式(5)に示すように推論されることができる。
【0031】
【数4】
【数5】
回転行列の列要素は相互に直角であり、λi≠0(i = 1,2,3)なので、式(6)に示す式のとおりとなり、また、これらの式でαを消去すると式(7)に示す式となる。
【数6】
【数7】
この式のセットから、映像主点x0は、x1、x2とx3によってつくられる三角形の垂心であるということが証明される。第3の消点x3の位置を見つけるため、式(7)の中の最初の2つの式が使われる。
いくつかの単純な代数操作で、式(8)に示される式は演繹され、それから(u3、v3)の値が決められる。
【0032】
【数8】
固有行列に残された最後のパラメータは焦点距離である。式(6)に示す3つの式のいずれかを使い、焦点距離を解くことができる。
たとえば最初の式を用いて、式(9)で示すように焦点距離を解くことができる。
【数9】
つぎに、外部カメラ行列を解くことができる。回転行列の直行性と正規性を適用して、式(5)に示す制約は式(10)に示すように表すことができる。そして、それは式(11)に示すように解くことができる。以上で、回転行列は解かれる。
【0033】
【数10】
【数11】
外部カメラ行列の並進ベクトルを発見するために、映像における原点が使用される。
原点の射影は、式(12)で示すように表すことができる。
【数12】
ここにおいて、これはλ0における自由度の一つである。このパラメータは原点から離れたカメラの並進に直接関連するものであるから、それは映像におけるピクセル対メーターの縮尺としての働きをする。事実、λ0の値が大きなものであるほど、カメラはより原点から離れ、その場面におけるオブジェクトはその映像上により小さく射影されることになる。この縮尺要素は、ある一つの線分(2つの終点を指定する)を映像に引き、実空間におけるその線分の実際の長さを特定することによって得ることができる。この縮尺値により、射影行列は1つのみとなる。
【0034】
ステップ3のラジアルディストーション修正については後述する。
次のステップ4では、オブジェクトの天面の外側あるいは内部の境界線に沿ってユーザーがトレースすることである。このトレースは、トレース手段に相当する。一つのトレースは、天面の境界線を定めるという一つの閉ループと定義される。すなわち、表示画像上で、ユーザーが行う操作入力を受け付け、対象物の表面の境界の形状を、各セグメントごとに各セグメントの形状に対応した数の離散的な点位置で指定することになる。
【0035】
このモデルにおいては、一つのトレースは同一形状で異なるxz平面に存在する天面と底面との高さを有する所定の立体となる。そして、ユーザーは、各々のトレースに対して天面と底面の間の高さ値を指定することができる。むろん、このようにしてユーザーによる高さの値を入力する操作を受け付けることで、高さ値取得手段を構成する。この高さ値の入力もステップ4にて行っている。
オブジェクトの再構築された三次元モデルは、複数のトレースから構成されることができ、さらには、それらのトレースは異なる天面と底面の高さ値から成ることができる。
【0036】
一つのトレースは後に一つ以上のセグメントから成り、そして、各々のセグメントはユーザーによって提供される2つ以上の点から成り立つ。
ここで、ユーザーによって提供されることが可能な2種類の点があり、それらは、セグメント構成点、またはセグメント分割点である。なお、本明細書においては特に断りの無い限り、セグメントとセグメントとの境界に位置する点をセグメント分割点と称し、それ以外の各セグメントを構成する点をセグメント構成点と称する。
各々のセグメントは、1つか2つのセグメント分割点(トレースの最初の点は、自動的にセグメント分割点とされる)を含んでいる。1つのセグメント分割点しか含んでいなセグメントとしては、少なくとも1つのセグメント構成点がなければならない。2つのセグメント分割点を含んでいるセグメントとしては、それは0かそれ以上セグメント構成点を含んでいてもよい。言い換えると、各々のセグメントは少なくとも2点を含んでいる。
【0037】
セグメントの点の数に応じて、(表2)に示すように、そのセグメントのカーブ(オブジェクトの上面に沿う)は、自動的に異なる方法で区分毎に補間される。
2点を含んでいるセグメントに対しては、そのセグメントは直線によって表現される。3点を含んでいるセグメントに対しては、その3点を通過する円がフィットされる。そして、その円に沿うさらなる点は2つのセグメント分割点の間に自動的に補間される。同様に、4点を含んでいるセグメントに対しては、軸平行楕円がフィットされる。5点を含んでいるセグメントに対しては、一般楕円がフィットされる。セグメントの点の数が5点を超えるケースでは、このフィッティングシステムは過剰決定体系となる。つまり条件が未知数よりも多い。この場合、線形最小二乗法が一般楕円をフィットさせるのに使用される。
【0038】
【表2】
特に、同一直線上にない3つの点があれば、(表3)に示すように使われているパラメータを使い、図4で示すようにユニークな一つの円が決定されることができる。その3点から、点P1と点P2、点P2と点P3とを結ぶことによって2本の線(laとlb)が引かれることができる。続いて、laとlbに直角で、それぞれの中間を通過する線(la'とlb')ができる。la'とlb'の方程式を、式(13)に示している。
【0039】
円の中心は、la'とlb'との交点であり、式(14)に示されるαとβの方程式を解くことになり、式(13)に示す方程式へとその値を置き換えることになる。
円の半径は、中心からP1、P2またはP3の3点のいずれかまでの距離である。
【表3】
【数13】
【数14】
4つの点は式(14)に示される形の軸平行楕円の方程式を一義的に定める。その楕円は中心(x0、y0)とし、それぞれxとy軸に沿った半径aとbとなっている。
【0040】
楕円のパラメータを解くには、4つの方程式(Fの値は、恣意的に-1とする)の4つの未知数により、式(16)に示される分析フォームを解くことになる。幾何学的な解析により、楕円の特性は、式(17)で示すように得られることができる。
【数15】
【数16】
【数17】
5点あるいはそれ以上の点については、式(18)で示すように分析的フォームによって記述される一般楕円が適合する。ちょうど5点の場合は、楕円の方程式が一義的に決定される。5点以上の場合は、このシステムは過剰決定体系となり、少なくとも最小二乗法で近似的に楕円を決めることができる。
【0041】
幾何学的な解析によれば、楕円の中心(x0、y0)は、式(19)で示すように計算される。
この場合、長軸と短軸の長さと楕円の傾きは計算されない。中心(x0、y0)からの特定の角度での楕円上の点の位置を得るため、方程式の分析的フォームが使用される。一般楕円、軸平行楕円と円のケースにとって、少なくとも3点が一つの直線上にあるようなときには、一義的な解が存在しないかもしれない。その場合、一般楕円、軸平行楕円、円、直線の順番により、このようなカーブの算定が成功するまで次の形へと続けられる(始点から終点までの直線としての当てはめは、常に成功するはずである)。
【0042】
【数18】
【数19】
カーブを直線として表すのであれば、補間法は必要とされない。そのセグメントは、単に2つのセグメント分割点によって表現される。円、軸平行楕円、一般楕円の場合では、補間法は必要とされる。
図5で示すように、補間点の数nはまず式(20)に示される方程式によって計算される。そこでは、始点角度θsと終点角度θeは適切な角度(2πを加えるか、引くことによって)となっている。それから、n個の点が、始点角度θsと終点角度θeとの間で等間隔となるようにして補間される。2つの終点がデフォルトで存在するので、そのセグメントは結局、(n+2)点を持っていることになる。
【0043】
【数20】
図6と図7は、このフィッティングプロセスが実行される例を示している。なお、このフィッティングプロセスは、各セグメントごとに指定された離散的な点位置とその数に基づいて、当該区分全体の三次元での位置情報を算出して上記境界を特定する処理に相当し、境界特定手段を構成する。図6において、セグメント構成点、またはセグメント分割点は、それぞれ一点鎖線の十字と二点鎖線の十字で示されている。
セグメント1、3と5は、各々5点から成る。その結果、一般楕円が適合され、中間点は自動的に補間される。これらの補間された点は、天面から底面まで引かれている垂直の破線で示されている。
【0044】
他方、セグメント2は、4点だけを含むので、軸平行楕円が適合され、いくつかの点が補間される。
最後に、セグメント4は3点から成るので、これらの点を通る円が適合される。
このように、各セグメントの形状と離散的な点位置の数との対応として、直線は2点、円は3点、軸平行楕円は4点、一般楕円は5点以上としている。
トレースは、2つのタイプのうちの1つであり、それらは、ポジティブかネガティブである。ポジティブトレースは三次元モデルにボリューム加えるものであり、これに対してネガティブトレースは三次元モデルからボリュームを引くものである(たとえば、空洞を形成するときのように)。すなわち、対象物の表面の境界の指定は、中実形状の境界の指定と、中空形状の境界の指定とを含んでいる。そして、ステップ6で、中実形状の算出処理と、中空形状の算出処理とを実行し、両者の合体結果で三次元モデルを再構築する。ステップ6は、三次元モデル再構築手段に相当する。なお、ステップ13の追加のモデル修正によって三次元モデルを再構築する必要が生じたときに行う場合も三次元モデル再構築手段に相当する。
【0045】
ユーザーの操作としては、ポジティブトレースは反時計回りの方法で点を捜し出すことによって達成され、そして、ネガティブトレースは時計回りの方法で点を捜し出すことによって達成される。
図8と図9は、ネガティブトレースが使われる例を示している。
図8において、一点鎖線のトレースは、ポジティブトレースであり、それはオブジェクトの外側の境界線に沿ってたどっている。他方、二点鎖線のトレースは、ネガティブトレースであり、それはオブジェクトの内部の境界線に沿ってトレースされている。2、3、4または5点を含んでいるセグメントは、2つのトレースのどちらででも見つけられることができる。
【0046】
図10と図11は、ネガティブトレースが使用されるもう一つの例を示す。
図10において、ここでは、4つのトレースがある。外側の上のポジティブトレースと内部の上の3つのネガティブトレースである。
ネガティブトレースのうちの2つは1つのセグメント分割点を持っているだけである、しかし、それは2つの他のセグメント構成点を持っている。合計3点があるので、円がフィットされる。
現実の世界では多種多様なオブジェクトが左右対称であるので、ユーザーによって指定された時点で、ユーザーによって指定された点は特定の軸に沿って裏返すことにより自動的に発生することができる。このように、再構築された三次元モデルは、ユーザーによってマニュアルで点の位置を修正させることなく、その左右対称性を維持することが保証される。
【0047】
このように、ユーザーによる操作入力を受け付けると、指定された点位置を特定の軸に沿って裏返すことにより、左右対称性を維持した点位置を自動的に発生している。
上に示す3つの例では、オブジェクト全体が対称形であるか、少なくともオブジェクトの一部は対称形である。この特徴は、ユーザーが慎重に対称な位置に映像の点を置いていなければならないという単調で退屈な作業をシンプル化させる。
次に、このプロセスソフトウェアプログラムは、トレースを加えたり、取り除くだけでなく、ユーザーが点を加えたり、修正したり、取り除くことができる。ユーザーは後の時点で天面と底面の高さ値を変えることもできる、そして、すべての点の位置が再評価される。
【0048】
ステップ7で繰り返しの判断を行い、すべてのトレースが加えられたあと、ステップ6でオブジェクトの三次元モデルの再構築をして完了する。すなわち、高さの値と、算出された各セグメントの境界の位置情報と、上記変換関係とに基づいて対象物の立体モデルを算出する。
次のステップ8は、モデルのテクスチャを取得することである。映像の中の視認できる面のため、各面のテクスチャが映像からマップされる。この過程が、三次元モデルを算出する際の各面の位置情報に基づいて、二次元画像からテクスチャを取得し、上記三次元モデルの各面に貼り付けるテクスチャ貼り付け手段に相当する。なお、ステップ11(ラジアルディストーション修正)、ステップ12(自動ポイント調整)、ステップ13(追加のモデル修正)を実行することにより、境界の位置情報が修正されることになる。従って、修正された境界情報に対応したテクスチャを取得して所定の面に貼り付ける必要がある。この意味で、境界の位置情報が修正されたときに、再度、テクスチャを取得して貼り付けるステップ14もテクスチャ貼り付け手段に相当する。
【0049】
もし、ステップ9にて利用できる映像がさらにあるならば(異なる視野からの同じオブジェクトにおいて)、その映像の9つの点(それぞれ互いに直交する二組の二本の線の両端と、原点)の位置を与えるキャリブレーションステップが、その新しい映像のために繰り返される(ステップ10)。また、ステップ11(およびステップ3)とステップ12(および、ステップ5)においてラジアルディストーション修正と自動ポイント調整とを行なうが、これらについては後述する。
【0050】
そのモデルはすでに再構築されているので、ステップ14にてテクスチャを取得して貼り付けると、自動的にその映像上に正しく投影されるはずである。
この場合、ユーザーは既存のモデルを修正するかもしれないし、以前は邪魔されていたモデルの一部についてのトレースを加えるかもしれないし、あるいは、このフレームで見える面のテクスチャを取得することができる。十分な視野があれば、そのモデル全体の各面のテクスチャを取得させることができる。
【0051】
図7、図9と、図11は、その映像で見える(視野)面にテクスチャをマッピングした三次元再構築の結果を示している。
このように、同一対象物に対する複数の異なる視野からの二次元画像を読み込み、各画像ごとに上記操作入力を受け付け、上記三次元モデルの対応する各面に貼り付けている。 ユーザーに表面の境界線をトレースさせる以外に、オブジェクトは予め定義された形(一般的な箱、一般的な錐形、および回転楕円体を含む)の組み合わせを使ってモデル化することもできる。すなわち、オブジェクトを、予め定義された形、一般的な箱、一般的な錐形、および回転楕円体との組み合わせを使ってモデル化する。
【0052】
(表4)は、これらの形の各々の修正可能なプロパティを示す。
トレースによる柔軟性と同様に、これらの形のすべてが多種多様なオブジェクトをモデル化可能とする。
【表4】
【0053】
ところで、多くの状況では、レンズのいろいろな影響のために、歪曲が映像中に導入される。そして、最も目立つ影響のうちの1つは放射歪曲(ラジアルディストーション)であり、実空間(映像主点を通過するものでないもの)での直線を映像中ではカーブするように表示させる。オブジェクトの三次元モデルを再構築する上述した方法は直線または他の原始関数(再構築段階と同様にキャリブレーション段階において)に基づいているため、ラジアルディストーションによって導入される副作用を減らすことにより、結果は改善される。
【0054】
以下、ステップ3やステップ11で行っているように、この二次元画像の位置情報に含まれる放射歪曲を除去して位置情報を変換する方法である放射歪曲除去手段について説明する。
ラジアルディストーションの影響を、図12に示す。
以下の説明において使われるパラメータを、(表5)に示す。
【表5】
【0055】
なお、ラジアルディストーションは、非特許文献1のような技術に基づいて算定することができる。
【0056】
ここでは、歪曲の中心とラジアルディストーションの一項を算定する。特に、まず、歪曲の中心が映像の中央に位置するものと仮定する。それから、ラジアルディストーションは式(21)で示すように分割モデルを使用して記述できる。
【数21】
歪められていない映像ポジション(x-u, yu)がゆがめられた映像ポジション(xd, yd)に対応する場合、rd{=(xd**2+yd**2)**(1/2)}はゆがめられた点の原点までの距離であり、λはラジアルディストーションパラメータである。
【0057】
歪曲されていない画像の中での直線は、式(22)のように表されることができる。
【数22】
ここで、kは傾きで、bがy切片である。あるいは、水平よりも垂直に近い線にとっては、yに関してxを表している方程式が得られる。式(22)に示される式は式(23)として書き直すことができる、そして、いくつかの代数操作で、式(24)に示す式が得られる。この式は、このモデルのもとで、ゆがめられた直線が円になることを示している。
【0058】
【数23】
【数24】
歪曲の中心が中央にないならば、歪曲(x0, y0)のセンターはそれぞれxdとydをxd - x0とyd - y0と入れ替えることによって式(24)に示される式に取り込むことができる。いくつかの代数操作で、式(25)に示される式が得られる。あるいは、式(26)に示される式を記述できる。
【数25】
【数26】
3本の線を使って、(Ai, Bi, Ci), i=1,2,3の値は式(25)から計算されることができ、それから、歪曲(x0, y0)の中心は式(27)で示すように計算することができる。最後に、ラジアルディストーションの値は、式(28)で示すように解ける。あるいは、4本の線を用いた最小二乗法を使用できる。
【0059】
【数27】
【数28】
以上のようにして、二次元画像の位置情報に含まれる放射歪曲を除去して位置情報を変換することができるようになる。
次の問題は、円をエッジピクセルに対して安定してフィットさせることである。円の方程式が式(29)で示すように解析的な形に書かれると仮定する。
【数29】
エッジ点(xi, yi)から円までの距離は、式(30)で示すように表すことができる。
【数30】
さらに、式(31)で示すように角座標を使ってa2とa3を書くことにより、式(32)で示す目的の機能は、標準的なLevenberg-Marquardtアルゴリズムを使用することで、三次元空間(a1, a4, θ)で解くことができる。
【0060】
【数31】
【数32】
最後に、エッジピクセルを見つける処理を行う必要がある。すなわち、二次元画像からエッジ画素を検出し、同エッジ画素の位置情報から上記境界の位置情報を修正するものであり、ステップ5やステップ12で行なっているポイント調整手段に相当する。
4本の線の各々ごとに、各線を囲んでいるピクセルからなる長方形の一片の中で、キャニーエッジディテクション(canny edge detection)を最初に実行する。エッジピクセルの強さと法線方向も記録される、そして、法線の向きからの角度差異が設定された閾値を超えるエッジピクセルは排除される。
【0061】
残りのエッジピクセルは、現在の線に帰属するものとみなす。エッジとして十分なピクセル(閾値を上回っているもの)が4本の線のうちの少なくとも3本において見つかるなら、ラジアルディストーション修正プロセスを進めることができる。
たとえば、図13で示すように、ラジアルディストーションのためにカーブされることになった一点鎖線を含む映像を仮定する。キャリブレーション段階のときにユーザーが二点鎖線を入力したと仮定する。破線の箱は、領域(その中でエッジピクセルがラジアルディストーションパラメータの算定のために使われる)を示す。
【0062】
エッジ検出を実行すると、即座に、入力された線に関して45度を超える標準偏差を持つすべてのエッジピクセルは、分離物として捨てられる。
残りのエッジピクセルの方向は、1つか2つの互いに反対の一般的な方向(互いの近くに現れている二重のエッジの場合)を示すかもしれない。エッジピクセルのこれらの2つのグループのうち、より多数の数のグループだけが保持される。すなわち、図14に示されるように、正しい方向のエッジピクセルだけが残る。
【0063】
ラジアルディストーションがない場合と、ユーザー入力エラーがない場合、すべてのエッジピクセルは正確に直線上に乗ることになる。ラジアルディストーションがあることで、すべてのエッジピクセルが直線上に乗ることにはならない。しかし、映像がラジアルディストーションパラメータの正しい値で正しく歪められていない(歪曲の他のいかなる形も取らない)ならば、エッジピクセルは直線に乗ることになる。
この点で、歪曲の中心(x0、y0)とラジアルディストーションパラメータλは算定される。そして、ラジアルディストーションを修正するために画像を反らすことができる。同時に、ユーザーによって入力された点(原点と、4本の線分の端点)の位置も同様に調節される、そのため、それらは映像上の歪められていない位置に一致する。ラジアルディストーションを修正することにより、画像情報(例えばエッジ)をより信頼性あるものとして利用することができる。
【0064】
前景と背景が殆ど乱れていない映像については、エッジ情報を用いてトレース(および各セグメント)の正確さを改善することができる。たとえば、実空間の直線は、映像の中でも直線として現れる。
最初に、キャニーエッジディテクションが映像に適用される、その一方で、各々のエッジピクセルの法線方向を記録する。それから、各セグメントは、属しているエッジピクセルを収集する。
以下の2つの条件が満たされるならば、エッジピクセルはある一定の可能性(どのようにしてその可能性を計算するかは、後述する)を持ってそのセグメントに属している:
【0065】
・エッジピクセルは、そのセグメントから一定の距離(しきい値)内に入る。
・エッジピクセルの標準の方向は、そのエッジピクセルに最も近いセグメントの点上で、セグメントのタンジェントに対して(あるしきい値を持って)垂直である。
エッジピクセルからセグメントまでの距離を計算するには、「セグメント内」という概念が最初に導入される。
【0066】
もしそのセグメントが直線であるならば、セグメント内領域とは始点と終点の間の領域であると定義され、その線と直角をなす外側に広がる。さもなければ、セグメント内領域はカーブの始点と終点の間の領域であり、中心から外方に広がる。
図15と図16は、視覚的に、セグメント内領域と指示された一点鎖線で囲まれた領域として、示している。エッジピクセルjがセグメントiのセグメント内領域内にあるならば、エッジピクセルのセグメントdijまでの距離がそのセグメントまでの最も近い距離である。そのセグメントの既知の方程式に基づいて、この距離は計算される。
【0067】
もしエッジピクセルがセグメント内領域の外にあるならば、セグメントdijまでの距離は2つのエンドポイントまでの距離の短い方である。
各々のセグメントは、それが収集するすべてのエッジピクセルに対して重みを割り当てる。セグメントiとエッジピクセルjに対して、式(33)で示すように、重みwijが与えられる。ここで、σは標準偏差の値で、4に等しい。
【数33】
これから、エッジピクセルjがセグメントiに属しているという可能性は式(34)で示すように計算される。
【0068】
【数34】
今、各々のセグメントの方程式は、ある特定のピクセルがそのセグメントに属する可能性を計算したのと同様に、そのセグメントが集めたエッジピクセルの位置に基づいて再計算される。
セグメントが直線、円、軸平行楕円または一般楕円であるかどうかにかかわらず、セグメントの複雑さは変わらない。それから、その複雑さ(そのセグメントを定める変数の数)より多くのエッジピクセルがそのセグメントに属し得るということもある。これらの場合、最小二乗法によって求められる。
【0069】
最小二乗法は、通常、式(35)で示すように形式をとる。
n個の点が現在のセグメントにあるとする。それから、Wは、斜めに存在している現在のセグメントに属している各々のエッジピクセルの可能性を備えたnxnマトリックスである。Xは解かれるべき変数のリストである、そして、Sとbはそれらの変数に関連を有するエッジ-ピクセルに特有の値である。
【数35】
【0070】
たとえば、式(36)に示される分析的なフォームから、円はA=Cで、かつ、B = 0という制約を持つ。
この場合、SとXとbは、式(37)で示すように書くことができる。
他の形状のためにも類似した式を書くことができる。
【数36】
【数37】
それから、更新された各セグメントの方程式に基づき、クリックされた点の位置を修正する。セグメント構成点については、新しい候補位置は、その点に最も近いセグメント上(新しい方程式に従って)の点である。オリジナル位置と新しい候補位置の間の距離が閾値以下にあるならば、その点の位置は候補位置に修正される。
【0071】
セグメント分割点については、その新しい候補位置はセグメントの先頭及び末尾の点に依存する。2つのセグメントは、0か、1か、2点、4点で交差するかもしれない。その候補位置は、以下にケース1〜ケース3として示すように、各々のケースごとに違う方法で計算される。
【0072】
ケース1:
2つのセグメントが交差していない場合
この場合は、各セグメント上で、その2つのセグメントの間の最も近い点の中間が候補位置になる
ケース2:
2つのセグメントが1点で交差する場合:
この場合は、その交差点が候補位置になる
ケース3:
2つのセグメントが2点で交差する場合:
その2つの交点を結ぶ線分上でクリックされた点の位置と最も近い点が、新しい候補位置になる
ケース4:
2つのセグメントが4点で交差する場合:
4点の交点のうち、クリックされた点に最も近い2点を選択する。選択した2点に基づきケース3の方法で計算し、新しい候補位置を決める。
【0073】
また、候補位置と新しい位置の間の距離がしきい値を越えているならば、クリックされた点の位置は修正されない。
そうでなければ、クリックされた点の位置は候補位置の方へ移動される。このプロセスは、再構築されたモデルの正確さを改善するために、任意に繰り返されることができる(エッジピクセル可能性を計算して、方程式をセグメントに割り当て、クリックされた点位置を移動させる)。
以上のようにして二次元画像からエッジ画素を検出し、同エッジ画素の位置情報から上記境界の位置情報を修正する。すなわち、画像情報(エッジ)に基づいて各々のクリック点の位置を自動的に調節する。
【0074】
ところで、多くのロボット工学、モデリングと娯楽アプリケーションにおいて、実空間のオブジェクトの三次元モデルを高速に再構築できることは、非常に有益である。
この結果を成し遂げる1つの方法は、ソフトウェアプログラムの助けを借りて、一つ以上の二次元画像から三次元オブジェクトをモデル化しようとすることである。従来技術においても完全に自動的な三次元オブジェクトの再構築手法は、まだまだ成熟しておらず、十分に信頼できるものではない。その結果、簡単で直観的な半自動式の技術は、前述のアプリケーションに対して非常に有益なものである。
【0075】
本技術は、多種多様なオブジェクトの三次元モデルの再構築に対して迅速かつ容易に解決策を提供する。
ユーザーは、マウスのわずか数クリックで、かなり複雑なオブジェクトの再構築でも直観的にできる。ユーザーは、再構築プロセスの速度をさらに上げるために、オブジェクトの左右対称性を利用することもできる。
映像を利用するので、各面のテクスチャはすぐに利用できる。このように、再構築されたモデルにテクスチャを適用することには、さらなる労力を必要としない。
【0076】
したがって、この技術は、三次元オブジェクトのモデル再構築の効率を大幅に改善することができる。
さらに、ラジアルディストーションは映像に不要な誤差を取り込んでしまう。ラジアルディストーションによって引き起こされる大きな人工的な不要物の1つは、実空間の直線が映像の中でカーブして現れるということである。
ユーザーによってすでに提供される情報(ユーザーからの新しい入力を必要としない)に基づいてラジアルディストーションを修正することにより、映像はすぐさま修正することができ、より正確に実空間を表す映像とすることができる。その結果、その映像に基づいてより精密なモデルを再構築することができる。
【0077】
さらに、画像情報(エッジ)に基づいて各々のクリック点の位置を自動的に調節することにより、人為ミスはさらに減らすことができる。このステップはラジアルディストーション修正ステップと相並んで進行する。なぜなら、ラジアルディストーション修正効果が、この自動調整ステップの品質を改善するからである。その結果、より精密なモデルを再構築することができる。
本発明では、ユーザによって境界をトレースして得られた複数のポイントからなる形状とされた非傾斜の天面と底面とを有するオブジェクトの三次元モデルを生成する。
【0078】
以下、本実施形態における特徴について要約して説明する。
本実施形態では、多くの人工物は、直線、円または楕円の各区分でモデル化可能なエッジによって構成されているというメリットを活かすことにより、一つ以上の映像から半自動的に三次元オブジェクトをモデル化するための方法を開示している。
また、映像の1つに基づいて、ソフトウェアが実空間から像空間への射影行列を計算するのを許可するアトリビュートをユーザーが定める。本キャリブレーションステップは、ユーザーに柔軟性を提供し、射影行列の正しさに対するユーザーの完全な支配を確実にさせる。
【0079】
本実施形態では、独立してオブジェクト形の異なる区分をモデル化する方法を開示している。
全体的な形がトレースと区分を通してモジュール化され、カーブの特定の部分と独立して表すことができるように各々の区分が別々に補間されることで成し遂げられる。かなり複雑な形の対象もモデル化されることができる。
本実施形態では、キャリブレーション目的でユーザーによって与えられるデータに基づくラジアルディストーションの修正方法を開示している。
【0080】
ラジアルディストーションは、再構築されるモデルの正確さを減少させることになる不要物(ゴミ)を映像中に作り出す。
本実施形態では、再構築された形からボリュームを増減する方法を開示している。
複数の部品はポジティブトレースで結合され、また、中空部品はネガティブトレースで結合されることにより、成し遂げられる。
本実施形態では、あらかじめ定義された原始関数に基づく単純な形で、オブジェクトまたはオブジェクトの部分を描写する方法を開示している。
【0081】
一般的な形によるオブジェクトまたはオブジェクトの部分は、一般的な箱形と、一般的な錐形と、回転楕円体を使ってモデル化されることができる。
本実施形態では、再構築されたモデルに左右対称性を導入することによってモデリングを単純化する方法を開示している。
実空間の多種多様なオブジェクトに起きている左右対称性の特質を利用して、特定の軸に沿ったトレース点のいくつかをユーザーが裏返すことで、成し遂げられる。
本実施形態では、画像情報を使用したトレースポイントの正確さを向上する方法を開示している。
【0082】
エッジのような画像情報を使用することで、トレースポイントの正確さを向上できる。特にラジアルディストーション修正において有用である。
本実施形態では、再構築されたモデルをリファインする方法を開示している。
ユーザーが、いつでも自由に、ポイントを追加、削除、修正し、トレースすることができることにより、成し遂げられる。天面と底面との高さ値は、いつでも自由に修正することができる。
本実施形態では、現実的な見かけでオブジェクトを再構築する方法を開示している。
【0083】
テクスチャは、映像から再構築されたモデルにマップされることができる。
本実施形態では、再構築されたモデルをより多くの映像で洗練する方法を開示している。
先に、特定の視点からオブジェクトを見ることによって視界を遮られていた構成要素も、モデル化されることができる。特定の視点からオブジェクトを見ることにより、テクスチャがマップ化できなかったが、不十分にマップ化された表面も、マップ化でき、再マップ化もできる。
【0084】
最後に、本発明を適用分野と、それぞれの場合のメリットについて説明する。
(1)ロボット工学において
ピックアンドプレースアプリケーションのためのオブジェクトのモデリング
ピックアンドプレースアプリケーションのロボット工学シミュレーションのためのオブジェクトの現実的なモデルの再構築
三次元化のためのオブジェクトのモデリング
ロボット工学シミュレーションアプリケーションでの三次元化のための実空間におけるオブジェクトの現実的なモデルの再構築
【0085】
メリット:
ロボットシミュレーションを現実的にするため、ピックアンドプレースに使われるオブジェクトや、実空間のオブジェクトは、三次元化が実空間で目に見えるのと近いものとなるように、モデリングされなければならない。
ピックアンドプレースシミュレーションのため、ユーザーはロボットがどのようにオブジェクトと相互作用するか、あるいは、オブジェクトのどれほどの特性がその相互作用に影響を及ぼすか試験したいと思うかもしれない。その結果、オブジェクトの精密なモデルが必要となる。
【0086】
本技術は、広範囲にわたるオブジェクトを簡単かつ正確にモデル化させることができる。
(2)コンピュータービジョンにおいて
オブジェクトおよびポーズ認知ルーチンのトレーニングのためのオブジェクトのモデリング対象となるオブジェクトの再構築されたモデルがあれば、異なる視点、異なる照明下、異なる量の障害物の状況をシミュレーションすることができる。これらの映像から、そのオブジェクトの特別な特徴を学習するため、マシンラーニングアルゴリズムを適用させることができる。例えば、新しい映像のために新しい映像オブジェクトのタスクやポーズ認知が実行されることができる。
【0087】
メリット:
オブジェクトの様子は、異なる視点、異なる照明、異なる量の障害物の状況の下で大幅に変化する。このため、オブジェクトの映像セットを作り出し、認知アプリケーションを適用することは通常非常に退屈で時間がかかる。
しかし、本方法により、一旦オブジェクトのモデルが再構築されるならば、ユーザーが望むどんな方法ででもその見かけをシミュレートすることができ、指定されたどのような状況下でも映像を作り出すことができる。これは、マシンラーニングによるデータ収集の作業を非常に簡単化する。
【0088】
(3)ゲーム、エンターテイメント、仮想現実において
ゲーム、エンターテイメント(例えば映画)または仮想現実環境の中でのディスプレイのためのオブジェクトのモデリング
再構築されたオブジェクトはゲームや映画や仮想現実プログラムのような仮想環境の中に置かれることができる。例えば、そのオブジェクトがそのシーンで現実的に三次元化されるように。
ゲームや仮想現実アプリケーションにおいては、ユーザーは各シーンでそのオブジェクトのモデルとかかわり合うことが可能となる。
【0089】
メリット:
仮想アプリケーションでオブジェクトをより現実的に表すためにはそのオブジェクトの良いモデルが必要となり、それを構築するには非常に時間がかかる。
しかし、この方法により、良いモデル(幾何学的にも表面的にも)が迅速かつ容易に作成することができる。それにより、ユーザーによる努力を殆ど要することなく仮想環境において使えるようになる。
なお、自動的にトレースの精度を向上させるために、プログラムは映像の手掛かりとなるエッジや角などの情報を扱えるようになっているべきである。
なお、本実施形態では、三次元オブジェクト再構築ステップを、処理装置(例えばコンピューター)にあるプロセッシングソフトウェアプログラムによって実行している。この意味で、本発明は、実体のある三次元画像処理装置としても実現されているし、同プログラムを記憶する媒体も実現可能であり、同様に、三次元画像処理プログラムを記録した媒体としても実現されている。さらに、コンピューターにて実行される過程としての三次元画像処理としても実現されている。また、個々において明示的に説明していないが、コンピューターにて実施される各処理は、コンピューターに対して同処理を行う機能を実現させている。
【符号の説明】
【0090】
1…プロセッシングソフトウェア、2…トレースアンドポイントマネージャ、3…三次元モデルジェネレータ、4…テクスチャマネージャ。
【特許請求の範囲】
【請求項1】
二次元画像から三次元画像を算出する三次元画像処理装置であって、
二次元画像を読み込む画像読込手段と、
読み込んだ二次元画像を表示した上で、操作入力を受け付けて同画像上に三次元の基準となる位置を指定する基準位置指定手段と、
三次元の実空間と二次元の像空間との間の変換関係を取得する変換関係取得手段と、
表示画像上で、操作入力を受け付けて対象物の表面の境界の形状を、各セグメントごとに各セグメントの形状に対応した数の離散的な点位置で指定するトレース手段と、
操作入力を受け付けて高さの値を取得する高さ値取得手段と、
各セグメントごとに指定された離散的な点位置とその数に基づいて、当該区分全体の三次元での位置情報を算出して上記境界を特定する境界特定手段と、
高さの値と、算出された各セグメントの境界の位置情報と、上記変換関係とに基づいて対象物の立体モデルを算出する三次元モデル再構築手段とを具備することを特徴とする三次元画像処理装置。
【請求項2】
上記基準位置指定手段では、上記二次元画像の中で、二対の互いに平行な線分であって各対は互いに直交する線分の指定と、原点とで、三次元の基準となる位置を指定することを特徴とする請求項1に記載の三次元画像処理装置。
【請求項3】
上記トレース手段は、各セグメントの形状と離散的な点位置の数との対応として、直線は2点、円は3点、軸平行楕円は4点、一般楕円は5点以上とすることを特徴とする請求項1または請求項2に記載の三次元画像処理装置。
【請求項4】
上記トレース手段での対象物の表面の境界の指定は、中実形状の境界の指定と、中空形状の境界の指定とを含み、上記三次元モデル再構築手段は、中実形状の算出処理と、中空形状の算出処理とを実行し、両者の合体結果で三次元モデルを再構築することを特徴とする請求項1〜請求項3のいずれかに記載の三次元画像処理装置。
【請求項5】
三次元モデルを算出する際の各面の位置情報に基づいて、二次元画像からテクスチャを取得し、上記三次元モデルの各面に貼り付けるテクスチャ貼り付け手段を有することを特徴とする請求項1〜請求項4のいずれかに記載の三次元画像処理装置。
【請求項6】
上記テクスチャ貼り付け手段は、同一対象物に対する複数の異なる視野からの二次元画像を読み込み、各画像ごとに上記操作入力を受け付け、上記三次元モデルの対応する各面に貼り付けることを特徴とする請求項1〜請求項5のいずれかに記載の三次元画像処理装置。
【請求項7】
上記テクスチャ貼り付け手段は、上記境界の位置情報が修正されたときに、修正された境界情報に対応して上記テクスチャを取得して所定の面に貼り付けることを特徴とする請求項1〜請求項6のいずれかに記載の三次元画像処理装置。
【請求項8】
上記境界の形状を特定する過程で、上記二次元画像の位置情報に含まれる放射歪曲を除去して位置情報を変換する放射歪曲除去手段を有することを特徴とする請求項1〜請求項7のいずれかに記載の三次元画像処理装置。
【請求項9】
上記境界の形状を特定する過程で、上記二次元画像からエッジ画素を検出し、同エッジ画素の位置情報から上記境界の位置情報を修正するポイント調整手段を有することを特徴とする請求項1〜請求項8のいずれかに記載の三次元画像処理装置。
【請求項10】
上記トレース手段は、操作入力を受け付け、指定された点位置を特定の軸に沿って裏返すことにより、左右対称性を維持した点位置を自動的に発生することを特徴とする請求項1〜請求項9のいずれかに記載の三次元画像処理装置。
【請求項11】
上記対象物を、予め定義された形、一般的な箱、一般的な錐形、および回転楕円体との組み合わせを使ってモデル化することを特徴とする請求項1〜請求項10のいずれかに記載の三次元画像処理装置。
【請求項12】
上記トレース手段は、各セグメントにおける点位置の追加、削除、修正が可能であることを特徴とする請求項1〜請求項11のいずれかに記載の三次元画像処理装置。
【請求項13】
二次元画像から三次元画像を算出する三次元画像処理方法であって、
二次元画像を読み込み、
読み込んだ二次元画像を表示した上で、操作入力を受け付けて同画像上に三次元の基準となる位置を指定し、
三次元の実空間と二次元の像空間との間の変換関係を取得し、
表示画像上で、操作入力を受け付けて対象物の表面の境界の形状を、各セグメントごとに各セグメントの形状に対応した数の離散的な点位置で指定し、
操作入力を受け付けて高さの値を取得し、
各セグメントごとに指定された離散的な点位置とその数に基づいて、当該区分全体の三次元での位置情報を算出して上記境界を特定し、
高さの値と、算出された各セグメントの境界の位置情報と、上記変換関係とに基づいて対象物の立体モデルを算出することを特徴とする三次元画像処理方法。
【請求項14】
二次元画像から三次元画像を算出する三次元画像処理プログラムを記録した媒体であって、
二次元画像を読み込む画像読込と、
読み込んだ二次元画像を表示した上で、操作入力を受け付けて同画像上に三次元の基準となる位置を指定する基準位置指定機能と、
三次元の実空間と二次元の像空間との間の変換関係を取得する変換関係取得機能と、
表示画像上で、操作入力を受け付けて対象物の表面の境界の形状を、各セグメントごとに各セグメントの形状に対応した数の離散的な点位置で指定するトレース機能と、
操作入力を受け付けて高さの値を取得する高さ値取得機能と、
各セグメントごとに指定された離散的な点位置とその数に基づいて、当該区分全体の三次元での位置情報を算出して上記境界を特定する境界特定機能と、
高さの値と、算出された各セグメントの境界の位置情報と、上記変換関係とに基づいて対象物の立体モデルを算出する三次元モデル再構築機能とをコンピューターに実現させることを特徴とする三次元画像処理プログラムを記録した媒体。
【請求項1】
二次元画像から三次元画像を算出する三次元画像処理装置であって、
二次元画像を読み込む画像読込手段と、
読み込んだ二次元画像を表示した上で、操作入力を受け付けて同画像上に三次元の基準となる位置を指定する基準位置指定手段と、
三次元の実空間と二次元の像空間との間の変換関係を取得する変換関係取得手段と、
表示画像上で、操作入力を受け付けて対象物の表面の境界の形状を、各セグメントごとに各セグメントの形状に対応した数の離散的な点位置で指定するトレース手段と、
操作入力を受け付けて高さの値を取得する高さ値取得手段と、
各セグメントごとに指定された離散的な点位置とその数に基づいて、当該区分全体の三次元での位置情報を算出して上記境界を特定する境界特定手段と、
高さの値と、算出された各セグメントの境界の位置情報と、上記変換関係とに基づいて対象物の立体モデルを算出する三次元モデル再構築手段とを具備することを特徴とする三次元画像処理装置。
【請求項2】
上記基準位置指定手段では、上記二次元画像の中で、二対の互いに平行な線分であって各対は互いに直交する線分の指定と、原点とで、三次元の基準となる位置を指定することを特徴とする請求項1に記載の三次元画像処理装置。
【請求項3】
上記トレース手段は、各セグメントの形状と離散的な点位置の数との対応として、直線は2点、円は3点、軸平行楕円は4点、一般楕円は5点以上とすることを特徴とする請求項1または請求項2に記載の三次元画像処理装置。
【請求項4】
上記トレース手段での対象物の表面の境界の指定は、中実形状の境界の指定と、中空形状の境界の指定とを含み、上記三次元モデル再構築手段は、中実形状の算出処理と、中空形状の算出処理とを実行し、両者の合体結果で三次元モデルを再構築することを特徴とする請求項1〜請求項3のいずれかに記載の三次元画像処理装置。
【請求項5】
三次元モデルを算出する際の各面の位置情報に基づいて、二次元画像からテクスチャを取得し、上記三次元モデルの各面に貼り付けるテクスチャ貼り付け手段を有することを特徴とする請求項1〜請求項4のいずれかに記載の三次元画像処理装置。
【請求項6】
上記テクスチャ貼り付け手段は、同一対象物に対する複数の異なる視野からの二次元画像を読み込み、各画像ごとに上記操作入力を受け付け、上記三次元モデルの対応する各面に貼り付けることを特徴とする請求項1〜請求項5のいずれかに記載の三次元画像処理装置。
【請求項7】
上記テクスチャ貼り付け手段は、上記境界の位置情報が修正されたときに、修正された境界情報に対応して上記テクスチャを取得して所定の面に貼り付けることを特徴とする請求項1〜請求項6のいずれかに記載の三次元画像処理装置。
【請求項8】
上記境界の形状を特定する過程で、上記二次元画像の位置情報に含まれる放射歪曲を除去して位置情報を変換する放射歪曲除去手段を有することを特徴とする請求項1〜請求項7のいずれかに記載の三次元画像処理装置。
【請求項9】
上記境界の形状を特定する過程で、上記二次元画像からエッジ画素を検出し、同エッジ画素の位置情報から上記境界の位置情報を修正するポイント調整手段を有することを特徴とする請求項1〜請求項8のいずれかに記載の三次元画像処理装置。
【請求項10】
上記トレース手段は、操作入力を受け付け、指定された点位置を特定の軸に沿って裏返すことにより、左右対称性を維持した点位置を自動的に発生することを特徴とする請求項1〜請求項9のいずれかに記載の三次元画像処理装置。
【請求項11】
上記対象物を、予め定義された形、一般的な箱、一般的な錐形、および回転楕円体との組み合わせを使ってモデル化することを特徴とする請求項1〜請求項10のいずれかに記載の三次元画像処理装置。
【請求項12】
上記トレース手段は、各セグメントにおける点位置の追加、削除、修正が可能であることを特徴とする請求項1〜請求項11のいずれかに記載の三次元画像処理装置。
【請求項13】
二次元画像から三次元画像を算出する三次元画像処理方法であって、
二次元画像を読み込み、
読み込んだ二次元画像を表示した上で、操作入力を受け付けて同画像上に三次元の基準となる位置を指定し、
三次元の実空間と二次元の像空間との間の変換関係を取得し、
表示画像上で、操作入力を受け付けて対象物の表面の境界の形状を、各セグメントごとに各セグメントの形状に対応した数の離散的な点位置で指定し、
操作入力を受け付けて高さの値を取得し、
各セグメントごとに指定された離散的な点位置とその数に基づいて、当該区分全体の三次元での位置情報を算出して上記境界を特定し、
高さの値と、算出された各セグメントの境界の位置情報と、上記変換関係とに基づいて対象物の立体モデルを算出することを特徴とする三次元画像処理方法。
【請求項14】
二次元画像から三次元画像を算出する三次元画像処理プログラムを記録した媒体であって、
二次元画像を読み込む画像読込と、
読み込んだ二次元画像を表示した上で、操作入力を受け付けて同画像上に三次元の基準となる位置を指定する基準位置指定機能と、
三次元の実空間と二次元の像空間との間の変換関係を取得する変換関係取得機能と、
表示画像上で、操作入力を受け付けて対象物の表面の境界の形状を、各セグメントごとに各セグメントの形状に対応した数の離散的な点位置で指定するトレース機能と、
操作入力を受け付けて高さの値を取得する高さ値取得機能と、
各セグメントごとに指定された離散的な点位置とその数に基づいて、当該区分全体の三次元での位置情報を算出して上記境界を特定する境界特定機能と、
高さの値と、算出された各セグメントの境界の位置情報と、上記変換関係とに基づいて対象物の立体モデルを算出する三次元モデル再構築機能とをコンピューターに実現させることを特徴とする三次元画像処理プログラムを記録した媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2011−138267(P2011−138267A)
【公開日】平成23年7月14日(2011.7.14)
【国際特許分類】
【出願番号】特願2009−297088(P2009−297088)
【出願日】平成21年12月28日(2009.12.28)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
【公開日】平成23年7月14日(2011.7.14)
【国際特許分類】
【出願日】平成21年12月28日(2009.12.28)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
[ Back to top ]