(57)【特許請求の範囲】
【請求項１】
同一の被写体を異なる２方向から撮影した１対のステレオペア画像を取得する画像取得手段と、
前記画像取得手段にて取得した前記ステレオペア画像を提示する画像提示手段と、
前記画像提示手段にて提示されたステレオペア画像上で指定された基準点と立体モデルを構成するために使用する構成点を含む点を取得する指定点取得手段と、
前記指定点取得手段にて取得した点のステレオペア画像上での２次元座標値を取得する２次元座標値取得手段と、
前記２次元座標値取得手段にて取得した座標値を用いて、写真測量法により、前記被写体上の点に対する３次元空間での座標値を特定する特定情報を取得する３次元情報取得手段と、
前記３次元情報取得手段によって取得した特定情報を用いて、前記被写体の３次元モデルを構成するための構成点の３次元座標値を取得する３次元座標値取得手段と、
前記３次元座標値取得手段にて３次元座標値を取得した構成点を提示する構成点提示手段と、
前記構成点提示手段にて提示された構成点の組合せを取得する組合せ取得手段と、
前記組合せ取得手段で取得した構成点の組合せから前記被写体の立体モデルの形状データを形成する形成手段と、
前記形成手段にて形成された形状データを３次元コンピュータグラフィックスを記述する所定のコンピュータ言語にて出力する出力手段と、
前記ステレオペア画像から切り取った前記被写体の画像を、前記被写体上の点に対応する３次元空間での座標値を用いて、前記所定のコンピュータ言語にて出力された形状データに貼り付ける貼り付け手段と、
具備したことを特徴とする３次元コンピュータグラフィックス作成支援装置。
【請求項２】
前記３次元情報取得手段は、前記指定点取得手段によって取得した点のうちの少なくとも３点の平面位置の実測値、及び少なくとも３点の高さの実測値、または、これらの実測値間の比率を取得する基準値取得手段と、
当該点から、前記基準値取得手段にて平面位置の実測値が少なくとも３つ、高さの実測値が少なくとも３つ取得した点と、前記構成点を含む第１の組と、前記第１の組に属さない前記点からなる第２の組を構成し、前記第１の組に属する点の総個数との合計が少なくとも６つとなるような、前記第２の組に属する点からなる全ての組合せを作成する組合せ作成手段と、
前記組合せ作成手段によって作成されたそれぞれの組合せに対して、前記第１の組に属する全ての点と、前記組合せに係る点とのステレオペア画像上での２次元座標値を用いて、これらの点の実空間での３次元座標値の計算値、または実空間での３次元座標値を前記比率にて縮尺した相対値の計算値を取得する計算値取得手段と、
前記基準値取得手段にて取得した点の位置と、前記計算値取得手段にて取得した点の位置の計算値から前記計算値の精度を比較評価する比較評価手段と、
前記比較評価手段にて、計算精度が最も高くなる第２の組に属する点の組合せを特定する、組合せ特定手段と、
を具備したことを特徴とする請求項１に記載の３次元コンピュータグラフィックス作成支援装置。
【請求項３】
前記３次元情報取得手段は、前記指定点取得手段にて取得した点のうちの少なくとも３点の平面位置の実測値、及び少なくとも３点の高さの実測値、または、これらの実測値間の比率を取得する基準値取得手段と、
前記基準値取得手段にて、平面位置の実測値が少なくとも３つ、高さの実測値が少なくとも３つ取得された点を含み、少なくとも６点からなる当該点の全ての組合せを作成する、組合せ作成手段と、
前記組合せ作成手段によって作成されたそれぞれの組合せに対して、前記組合せに係る点のステレオペア画像上での２次元座標値から、これらの点の実空間での３次元座標値の計算値、または実空間での３次元座標値を前記比率にて縮尺した相対値の計算値を取得する第１の計算値取得手段と、
前記基準値取得手段にて取得した点の位置の実測値と、前記計算値取得手段にて取得した点の位置の計算値から前記計算値の精度を比較評価する比較評価手段と、
前記比較評価手段にて、計算精度が最も高くなる当該点の組合せを特定する、組合せ特定手段と、
を具備したことを特徴とする請求項１に記載の３次元コンピュータグラフィックス作成支援装置。
【請求項４】
前記３次元情報取得手段は、前記指定点取得手段にて取得した点のうちの少なくとも３点の平面位置の実測値、及び少なくとも３点の高さの実測値、または、これらの実測値間の比率を取得する基準値取得手段と、
当該点は、前記基準値取得手段にて平面位置の実測値が少なくとも３つ、高さの実測値が少なくとも３つ取得された点からなる第１の組と、前記第１の組に属さない点からなる第２の組からなり、前記第１の組に属する全ての点の個数との合計が少なくとも６つとなるような前記第２の組に属する点からなる複数の組合せを作成する組合せ作成手段と、
前記組合せ作成手段によって作成されたそれぞれの組合せに対して、前記第１の組に属する全ての点と、前記組合せに係る点とのステレオペア画像上での２次元座標値を用いて、これらの点の実空間での３次元座標値の計算値を取得する第１の計算値取得手段と、
前記基準値取得手段にて取得した前記第１の組に属する点の位置の実測値、または前記比率による相対値と、前記計算値取得手段にて取得した前記第１の組に属する点の位置の計算値から前記計算値が収束したかどうか判断する収束判断手段と、
前記収束判断手段で前記計算値が収束したと判断されるまで、遺伝的アルゴリズムにおける遺伝的操作によって、前記第２の組から作成された点の組合せを更新する更新手段と、
前記収束判断手段で、前記計算値が収束したと判断されたときは、このときの前記第２の組に属する点の組合せを特定する、特定手段と、
を具備したことを特徴とする請求項１に記載の３次元コンピュータグラフィックス作成支援装置。
【請求項５】
前記形成手段は、前記ステレオペア画像の少なくとも一方を提示する提示手段と、
前記提示手段にて提示された画像上に前記構成点提示手段にて提示された点の位置を明示する明示手段と、
前記明示手段にて明示された点を選択することによりポリラインを生成し、前記被写体をワイヤフレームモデルにて表現するポリライン編集手段か、または、前記明示手段にて明示された点を選択することによりポリゴンを生成し、前記被写体をサーフィスモデルにて表現するポリゴン編集手段のうちの少なくとも一方と、
を具備したことを特徴とする請求項１から請求項４までのうちの何れかの１の請求項に記載の３次元コンピュータグラフィックス作成支援装置。
【請求項６】
前記出力手段は、前記ポリライン編集手段、またはポリゴン編集手段にて生成された前記被写体の立体モデルをＶＲＭＬ言語で記述する記述手段と、
前記記述手段にて記述された内容をファイルとして出力するファイル出力手段と、
を具備したことを特徴とする請求項１から請求項５までのうちの何れかの１の請求項に記載の３次元コンピュータグラフィックス作成支援装置。
【請求項７】
前記出力手段にて出力されたＶＲＭＬファイルを読み込んで、前記被写体の立体モデルを提示するＶＲＭＬビューアを更に具備したことを特徴とする請求項１から請求項６のうちの何れかの１の請求項に記載の３次元コンピュータグラフィックス作成支援装置。
【請求項８】
同一の被写体を異なる２方向から撮影した１対のステレオペア画像を取得する第１のステップと、
前記第１のステップにて取得した前記ステレオペア画像を提示する第２のステップと、
前記第２のステップにて提示されたステレオペア画像上で指定された基準点と立体モデルを構成するために使用する構成点を含む点を取得する第３のステップと、
前記第３のステップにて取得した点のステレオペア画像上での２次元座標値を取得する第４のステップと、
前記第４のステップにて取得した座標値を用いて、写真測量法により、前記被写体上の点に対する３次元空間での座標値を特定する特定情報を取得する第５のステップと、
前記第５のステップによって取得した特定情報を用いて、前記被写体の３次元モデルを構成するための構成点の３次元座標値を取得する第６のステップと、
前記第６のステップにて３次元座標値を取得した構成点を提示する第７のステップと、
前記第７のステップにて提示された構成点の組合せを取得する第８のステップと、
前記第８のステップにて取得した構成点の組合せから前記被写体の立体モデルの形状データを形成する第９のステップと、
前記第９のステップにて形成された形状データを３次元コンピュータグラフィックスを記述する所定のコンピュータ言語にて出力する第１０のステップと、
前記ステレオペア画像から切り取った前記被写体の画像を、前記被写体上の点に対応する３次元空間での座標値を用いて、前記所定のコンピュータ言語にて出力された形状データに貼り付ける第１１のステップと、
を備えたことを特徴とする３次元コンピュータグラフィックス作成支援方法。
【請求項９】
同一の被写体を異なる２方向から撮影した１対のステレオペア画像を取得する画像取得機能と、
前記画像取得機能にて取得した前記ステレオペア画像を提示する画像提示機能と、
前記画像提示機能にて提示されたステレオペア画像上で指定された基準点と立体モデルを構成するために使用する構成点を含む点を取得する指定点取得機能と、
前記指定点取得機能にて取得した点のステレオペア画像上での２次元座標値を取得する２次元座標値取得機能と、
前記２次元座標値取得機能にて取得した座標値を用いて、写真測量法により、前記被写体上の点に対する３次元空間での座標値を特定する特定情報を取得する３次元情報取得機能と、
前記３次元情報取得機能によって取得した特定情報を用いて、前記被写体の３次元モデルを構成するための構成点の３次元座標値を取得する３次元座標値取得機能と、
前記３次元座標値取得機能にて３次元座標値を取得した構成点を提示する構成点提示機能と、
前記構成点提示機能にて提示された構成点の組合せを取得する組合せ取得機能と、
前記組合せ取得機能で取得した構成点の組合せから前記被写体の立体モデルの形状データを形成する形成機能と、
前記形成機能にて形成された形状データを３次元コンピュータグラフィックスを記述する所定のコンピュータ言語にて出力する出力機能と、
前記ステレオペア画像から切り取った前記被写体の画像を、前記被写体上の点に対応する３次元空間での座標値を用いて、前記所定のコンピュータ言語にて出力された形状データに貼り付ける貼り付け機能と、
をコンピュータで実現することを特徴とする３次元コンピュータグラフィックス作成支援プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、３次元コンピュータグラフィックス作成支援装置、３次元コンピュータグラフィックス作成支援方法、及び３次元コンピュータグラフィックス作成支援プログラムに関し、例えば、デジタルカメラで撮影したデジタル画像から被写体の立体モデルを生成するものに関する。
【０００２】
【従来の技術】
高速な演算を大量に必要とするため以前は一部の専門家しか扱うことのできなかった３次元コンピュータグラフィックスが、近年のコンピュータ技術の急激な発展により、今では一般のパーソナルコンピュータのユーザが作成することができるようになってきている。
【０００３】
現在、国内ではＩＴ（Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ）革命と呼ばれるネットワークを媒体とした情報技術の進展が急激に進んでいる。
インターネットでは、従来からＨＴＭＬ（Ｈｙｐｅｒｔｅｘｔ  ＭａｒｋｕｐＬａｎｇｕａｇｅ）を用いて２次元で文字や画像を表示することが広く行われているが、最近は、ＶＲＭＬ（Ｖｉｒｔｕａｌ  Ｒｅａｌｉｔｙ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）という言語使用を用いてインターネット上に仮想的な３次元空間（仮想空間）を創出し、この空間内で立体モデルを表現することが行われつつある。
このような例として例えば、仮想空間に作られた仮想的な博物館であるデジタルミュージアムがある。ユーザは、マウス操作などにより、自由に博物館内を移動することができ、仮想的な展示物を鑑賞することができる。
【０００４】
ところで、写真に写った被写体の３次元情報を写真から取得する研究は古くから行われており、１対のステレオ写真から被写体の３次元座標データを算出する手法が既に写真測量として確立されている。現在写真測量は、例えば航空測量など土木の分野などで利用されている。
【０００５】
【発明が解決しようとする課題】
しかし、コンピュータグラフィックスにおけるオブジェクト（対象物）の作成は熟練したコンピュータグラフィックデザイナにより行われており、一般のユーザが簡単に行えるものではなかった。
例えば、あるオブジェクトを立体モデルで表現する場合、そのオブジェクトの３次元的な形状を専用プログラムに入力したりなどしなければならならない。そこで、写真測量の技術によって自動的に被写体の３次元座標値を計測できれば、被写体のモデルを容易に形成することができると思われる。
そこで、本発明の目的は、一般のユーザが写真測量を用いて容易にオブジェクトの立体モデルを作ることのできる３次元コンピュータグラフィックス作成支援装置、３次元コンピュータグラフィックス作成支援方法、及び３次元コンピュータグラフィックス作成支援プログラムを提供することである。
【０００６】
【課題を解決するための手段】
本発明は、前記目的を達成するために、同一の被写体を異なる２方向から撮影した１対のステレオペア画像を取得する画像取得手段と、前記画像取得手段にて取得した前記ステレオペア画像を提示する画像提示手段と、前記画像提示手段にて提示されたステレオペア画像上で指定された基準点と立体モデルを構成するために使用する構成点を含む点を取得する指定点取得手段と、前記指定点取得手段にて取得した点のステレオペア画像上での２次元座標値を取得する２次元座標値取得手段と、前記２次元座標値取得手段にて取得した座標値を用いて、写真測量法により、前記被写体上の点に対する３次元空間での座標値を特定する特定情報を取得する３次元情報取得手段と、前記３次元情報取得手段によって取得した特定情報を用いて、前記被写体の３次元モデルを構成するための構成点の３次元座標値を取得する３次元座標値取得手段と、前記３次元座標値取得手段にて３次元座標値を取得した構成点を提示する構成点提示手段と、前記構成点提示手段にて提示された構成点の組合せを取得する組合せ取得手段と、前記組合せ取得手段で取得した構成点の組合せから前記被写体の立体モデルの形状データを形成する形成手段と、前記形成手段にて形成された形状データを３次元コンピュータグラフィックスを記述する所定のコンピュータ言語にて出力する出力手段と、前記ステレオペア画像から切り取った前記被写体の画像を、前記被写体上の点に対応する３次元空間での座標値を用いて、前記所定のコンピュータ言語にて出力された形状データに貼り付ける貼り付け手段と、を具備したことを特徴とする３次元コンピュータグラフィックス作成支援装置を提供する（第１の構成）。
ここで、第１の構成の３次元情報取得手段は、以下に述べる第２の構成、第３の構成及び第４の構成及びこれらの構成の変形の基準値取得手段が、基準値の実測値、又はこれらの実測値間の比率を取得することにより、被写体上の点の実空間での座標値を特定するように構成することもできるし、また、被写体上の点の座標値間の比率を保った相対値を特定するように構成することもできる。
また、写真測量法は、ステレオペア画像の撮影に使用したカメラの焦点距離、また、撮影にデジタルカメラを使用した場合は、当該デジタルカメラの画素サイズなどをカメラ情報取得手段にて取得し、これらの情報を用いて行われるように構成することができる。
更に、第１の構成の前記３次元情報取得手段は、前記指定点取得手段によって取得した点のうちの少なくとも３点の平面位置の実測値、及び少なくとも３点の高さの実測値、または、これらの実測値間の比率を取得する基準値取得手段と、当該点から、前記基準値取得手段にて平面位置の実測値が少なくとも３つ、高さの実測値が少なくとも３つ取得した点と、前記構成点を含む第１の組と、前記第１の組に属さない前記点からなる第２の組を構成し、前記第１の組に属する点の総個数との合計が少なくとも６つとなるような、前記第２の組に属する点からなる全ての組合せを作成する組合せ作成手段と、前記組合せ作成手段によって作成されたそれぞれの組合せに対して、前記第１の組に属する全ての点と、前記組合せに係る点とのステレオペア画像上での２次元座標値を用いて、これらの点の実空間での３次元座標値の計算値、または実空間での３次元座標値を前記比率にて縮尺した相対値の計算値を取得する計算値取得手段と、前記基準値取得手段にて取得した点の位置と、前記計算値取得手段にて取得した点の位置の計算値から前記計算値の精度を比較評価する比較評価手段と、前記比較評価手段にて、計算精度が最も高くなる第２の組に属する点の組合せを特定する、組合せ特定手段と、を具備するように構成することができる（第２の構成）。
なお、第２の構成は、次のように構成することも可能である。
第１の構成の前記３次元情報取得手段は、前記指定点取得手段によって取得した点のうちの少なくとも２点の平面位置の実測値、及び少なくとも３点の高さの実測値、または、これらの実測値間の比率を取得する基準値取得手段と、当該点から、前記基準値取得手段にて平面位置の実測値が少なくとも２つ、高さの実測値が少なくとも３つ取得した点と、前記構成点を含む第１の組と、前記第１の組に属さない前記点からなる第２の組を構成し、前記第１の組に属する点の総個数との合計が少なくとも６つとなるような、前記第２の組に属する点からなる全ての組合せを作成する組合せ作成手段と、前記組合せ作成手段によって作成されたそれぞれの組合せに対して、前記第１の組に属する全ての点と、前記組合せに係る点とのステレオペア画像上での２次元座標値を用いて、これらの点の実空間での３次元座標値の計算値、または実空間での３次元座標値を前記比率にて縮尺した相対値の計算値を取得する計算値取得手段と、前記基準値取得手段にて取得した点の位置と、前記計算値取得手段にて取得した点の位置の計算値から前記計算値の精度を比較評価する比較評価手段と、前記比較評価手段にて、計算精度が最も高くなる第２の組に属する点の組合せを特定する、組合せ特定手段と、を具備する（第２の構成の変形）。
また、第１の構成の前記３次元情報取得手段は、前記指定点取得手段にて取得した点のうちの少なくとも３点の平面位置の実測値、及び少なくとも３点の高さの実測値、または、これらの実測値間の比率を取得する基準値取得手段と、前記基準値取得手段にて、平面位置の実測値が少なくとも３つ、高さの実測値が少なくとも３つ取得された点を含み、少なくとも６点からなる当該点の全ての組合せを作成する、組合せ作成手段と、前記組合せ作成手段によって作成されたそれぞれの組合せに対して、前記組合せに係る点のステレオペア画像上での２次元座標値から、これらの点の実空間での３次元座標値の計算値、または実空間での３次元座標値を前記比率にて縮尺した相対値の計算値を取得する第１の計算値取得手段と、前記基準値取得手段にて取得した点の位置の実測値と、前記計算値取得手段にて取得した点の位置の計算値から前記計算値の精度を比較評価する比較評価手段と、前記比較評価手段にて、計算精度が最も高くなる当該点の組合せを特定する、組合せ特定手段と、を具備するように構成することもできる（第３の構成）。
更に、第３の構成は次のように構成することも可能である。
第１の構成の前記３次元情報取得手段は、前記指定点取得手段にて取得した点のうちの少なくとも２点の平面位置の実測値、及び少なくとも３点の高さの実測値、または、これらの実測値間の比率を取得する基準値取得手段と、前記基準値取得手段にて、平面位置の実測値が少なくとも２つ、高さの実測値が少なくとも３つ取得された点を含み、少なくとも６点からなる当該点の全ての組合せを作成する、組合せ作成手段と、前記組合せ作成手段によって作成されたそれぞれの組合せに対して、前記組合せに係る点のステレオペア画像上での２次元座標値から、これらの点の実空間での３次元座標値の計算値、または実空間での３次元座標値を前記比率にて縮尺した相対値の計算値を取得する第１の計算値取得手段と、前記基準値取得手段にて取得した点の位置の実測値と、前記計算値取得手段にて取得した点の位置の計算値から前記計算値の精度を比較評価する比較評価手段と、前記比較評価手段にて、計算精度が最も高くなる当該点の組合せを特定する、組合せ特定手段と、を具備する（第３の構成の変形）。
更に、第１の構成の前記３次元情報取得手段は、前記指定点取得手段にて取得した点のうちの少なくとも３点の平面位置の実測値、及び少なくとも３点の高さの実測値、または、これらの実測値間の比率を取得する基準値取得手段と、当該点は、前記基準値取得手段にて平面位置の実測値が少なくとも３つ、高さの実測値が少なくとも３つ取得された点からなる第１の組と、前記第１の組に属さない点からなる第２の組からなり、前記第１の組に属する全ての点の個数との合計が少なくとも６つとなるような前記第２の組に属する点からなる複数の組合せを作成する組合せ作成手段と、前記組合せ作成手段によって作成されたそれぞれの組合せに対して、前記第１の組に属する全ての点と、前記組合せに係る点とのステレオペア画像上での２次元座標値を用いて、これらの点の実空間での３次元座標値の計算値を取得する第１の計算値取得手段と、前記基準値取得手段にて取得した前記第１の組に属する点の位置の実測値、または前記比率による相対値と、前記計算値取得手段にて取得した前記第１の組に属する点の位置の計算値から前記計算値が収束したかどうか判断する収束判断手段と、前記収束判断手段で前記計算値が収束したと判断されるまで、遺伝的アルゴリズムにおける遺伝的操作によって、前記第２の組から作成された点の組合せを更新する更新手段と、前記収束判断手段で、前記計算値が収束したと判断されたときは、このときの前記第２の組に属する点の組合せを特定する、特定手段と、を具備するように構成することもできる（第４の構成）。
第４の構成は次のように構成することもできる。
第１の構成の前記３次元情報取得手段は、前記指定点取得手段にて取得した点のうちの少なくとも２点の平面位置の実測値、及び少なくとも３点の高さの実測値、または、これらの実測値間の比率を取得する基準値取得手段と、当該点は、前記基準値取得手段にて平面位置の実測値が少なくとも２つ、高さの実測値が少なくとも３つ取得された点からなる第１の組と、前記第１の組に属さない点からなる第２の組からなり、前記第１の組に属する全ての点の個数との合計が少なくとも６つとなるような前記第２の組に属する点からなる複数の組合せを作成する組合せ作成手段と、前記組合せ作成手段によって作成されたそれぞれの組合せに対して、前記第１の組に属する全ての点と、前記組合せに係る点とのステレオペア画像上での２次元座標値を用いて、これらの点の実空間での３次元座標値の計算値を取得する第１の計算値取得手段と、前記基準値取得手段にて取得した前記第１の組に属する点の位置の実測値、または前記比率による相対値と、前記計算値取得手段にて取得した前記第１の組に属する点の位置の計算値から前記計算値が収束したかどうか判断する収束判断手段と、前記収束判断手段で前記計算値が収束したと判断されるまで、遺伝的アルゴリズムにおける遺伝的操作によって、前記第２の組から作成された点の組合せを更新する更新手段と、前記収束判断手段で、前記計算値が収束したと判断されたときは、このときの前記第２の組に属する点の組合せを特定する、特定手段と、を具備する（第４の構成の変形）。
また、第１の構成から第４の構成の何れかの１の構成の前記形成手段は、前記ステレオペア画像の少なくとも一方を提示する提示手段と、前記提示手段にて提示された画像上に前記構成点提示手段にて提示された点の位置を明示する明示手段と、前記明示手段にて明示された点を選択することによりポリラインを生成し、前記被写体をワイヤフレームモデルにて表現するポリライン編集手段か、または、前記明示手段にて明示された点を選択することによりポリゴンを生成し、前記被写体をサーフィスモデルにて表現するポリゴン編集手段のうちの少なくとも一方と、を具備するように構成することができる（第５の構成）。
また、第１の構成から第５の構成の何れかの１の構成の前記出力手段は、前記ポリライン編集手段、またはポリゴン編集手段にて生成された前記被写体の立体モデルをＶＲＭＬ言語で記述する記述手段と、前記記述手段にて記述された内容をファイルとして出力するファイル出力手段と、を具備するように構成することができる（第６の構成）。
更に、第１の構成から第６の構成の何れかの１の構成の前記出力手段にて出力されたＶＲＭＬファイルを読み込んで、前記被写体の立体モデルを提示するＶＲＭＬビューアを更に具備するように構成することができる（第７の構成）。
また、本発明は、前記目的を達成するために同一の被写体を異なる２方向から撮影した１対のステレオペア画像を取得する第１のステップと、前記第１のステップにて取得した前記ステレオペア画像を提示する第２のステップと、前記第２のステップにて提示されたステレオペア画像上で指定された基準点と立体モデルを構成するために使用する構成点を含む点を取得する第３のステップと、前記第３のステップにて取得した点のステレオペア画像上での２次元座標値を取得する第４のステップと、前記第４のステップにて取得した座標値を用いて、写真測量法により、前記被写体上の点に対する３次元空間での座標値を特定する特定情報を取得する第５のステップと、前記第５のステップによって取得した特定情報を用いて、前記被写体の３次元モデルを構成するための構成点の３次元座標値を取得する第６のステップと、前記第６のステップにて３次元座標値を取得した構成点を提示する第７のステップと、前記第７のステップにて提示された構成点の組合せを取得する第８のステップと、前記第８のステップにて取得した構成点の組合せから前記被写体の立体モデルの形状データを形成する第９のステップと、前記第９のステップにて形成された形状データを３次元コンピュータグラフィックスを記述する所定のコンピュータ言語にて出力する第１０のステップと、前記ステレオペア画像から切り取った前記被写体の画像を、前記被写体上の点に対応する３次元空間での座標値を用いて、前記所定のコンピュータ言語にて出力された形状データに貼り付ける第１１のステップと、を備えたことを特徴とする３次元コンピュータグラフィックス作成支援方法を提供する。
更に、本発明は、前記目的を達成するために同一の被写体を異なる２方向から撮影した１対のステレオペア画像を取得する画像取得機能と、前記画像取得機能にて取得した前記ステレオペア画像を提示する画像提示機能と、前記画像提示機能にて提示されたステレオペア画像上で指定された基準点と立体モデルを構成するために使用する構成点を含む点を取得する指定点取得機能と、前記指定点取得機能にて取得した点のステレオペア画像上での２次元座標値を取得する２次元座標値取得機能と、前記２次元座標値取得機能にて取得した座標値を用いて、写真測量法により、前記被写体上の点に対する３次元空間での座標値を特定する特定情報を取得する３次元情報取得機能と、前記３次元情報取得機能によって取得した特定情報を用いて、前記被写体の３次元モデルを構成するための構成点の３次元座標値を取得する３次元座標値取得機能と、前記３次元座標値取得機能にて３次元座標値を取得した構成点を提示する構成点提示機能と、前記構成点提示機能にて提示された構成点の組合せを取得する組合せ取得機能と、前記組合せ取得機能で取得した構成点の組合せから前記被写体の立体モデルの形状データを形成する形成機能と、前記形成機能にて形成された形状データを３次元コンピュータグラフィックスを記述する所定のコンピュータ言語にて出力する出力機能と、前記ステレオペア画像から切り取った前記被写体の画像を、前記被写体上の点に対応する３次元空間での座標値を用いて、前記所定のコンピュータ言語にて出力された形状データに貼り付ける貼り付け機能と、をコンピュータで実現することを特徴とする３次元コンピュータグラフィックス作成支援プログラム又は、該３次元コンピュータグラフィックス作成支援プログラムを記録したコンピュータ読取可能な記憶媒体を提供する。
【０００７】
【発明の実施の形態】
本実施の形態は、汎用のデジタルカメラを用いて撮影したステレオペア画像から写真測量により被写体の３次元座標値を求め、これを利用して被写体の立体モデルをＶＲＭＬで作成するものである。
通常写真測量を行うには、高度な専門知識と熟練が必要であるが、本実施の形態では一般のユーザでも容易に写真測量が行えるようにアルゴリズムとユーザインターフェースを構築した。
また、写真測量に必要な特殊な機材は用いずに、汎用のデジタルカメラを用いて撮影した画像を一般的なパーソナルコンピュータ（以下ＰＣと記す）を用いて処理できるようにした。
【０００８】
被写体の立体モデルを３次元コンピュータグラフィックスに記述するコンピュータ言語には、インターネット上で３次元グラフィックスを記述する際の国際標準となっているＶＲＭＬを採用した。
そのため、本実施の形態を用いて、被写体をＷｅｂ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）上の仮想空間に立体モデルとして表現することができる。
【０００９】
以下、本発明の好適な実施の形態について、図１から図２２を参照して詳細に説明する。
図１は、本実施の形態にかかる３次元コンピュータグラフィックス作成支援装置１０の構成を示した図である。なお、以下で用いる３ＤＣＧという表記は、３次元コンピュータグラフィックスを意味する。
本実施の形態に係る３ＤＣＧ作成支援装置１０は、パーソナルコンピュータを用いて構成されており、中央処理部１、固定ディスク６、記憶部１０、データ入出力部２、キーボード４、表示部３、マウス５などから構成されている。
【００１０】
中央処理部1は、マイクロプロセッサを主体に構成されており、３ＤＣＧ作成支援装置１０全体の動作を制御したり、プログラムにしたがって種々の演算を行ったりなどする。
データ入出力部２は、３ＤＣＧ作成支援装置１０の外部とデータを入出力する部分である。
例えば、データ入出力部２はＲＳ２３２Ｃインターフェースやプリンタポート、フロッピーディスクドライブなどとデータのやり取りを行うことができる。
本実施の形態では、ＲＳ２３２Ｃインターフェースを介してデジタルカメラからステレオ写真の画像データを入力した。
この他に、データ入出力部を介して、スキャナから画像データを読み込んだり、または、ネットワークを経由して画像データを読み込んだり、あるいは、画像データを記憶してあるフロッピーディスクなどから画像データを読み込むこともできる。読み込んだデータは固定ディスク６に画像データ９として記憶される。
【００１１】
固定ディスク６には、データ入出力部２から読み込まれたステレオ写真の画像データ９、３ＤＣＧ作成支援プログラム７及びＶＲＭＬビューア８などが記憶されている。
画像データ９は、立体モデルを生成する被写体を異なる２方向から撮影したステレオペア画像などの画像データである。
【００１２】
３ＤＣＧ作成支援プログラム７は、ステレオペア画像を用いて被写体上の点の３次元座標値（写真測量の分野では絶対座標値と呼ばれる）を写真測量することにより算出する。
そして算出したデータから被写体の立体モデルを作成し、これをＶＲＭＬ言語にて出力するプログラムである。
ＶＲＭＬは、インターネット上で使用する３次元コンピュータグラフィックスを記述するための言語仕様であり、ＶＲＭＬを用いて立体モデル化された被写体をインターネットに構築された仮想空間で表現することができる。
なお、ＶＲＭＬは、オブジェクトを立体的に表現するのみならず、音声や動きなども同時に表現でき、ユーザは仮想空間の中を移動することもできる。
ＶＲＭＬビューア８は、ＶＲＭＬで作成されたファイルを読み込んでオブジェクト（対象物）をディスプレイ上に表示するプログラムである。
【００１３】
記憶部１０は、ＲＯＭ（リード・オンリ・メモリ）とＲＡＭ（ランダム・アクセス・メモリ）などから構成されている。ＲＯＭにはコンピュータを起動するためのプログラムや中央処理部１の動作手順を規定するプログラムなどが記憶されている。
ＲＡＭは、３ＤＣＧ作成支援プログラム７がロードされたり、計算値を一時的に記憶して、中央処理部１にワーキングメモリを提供したりなどする。
【００１４】
表示部３はＣＲＴディスプレイで構成されており、ユーザに対してステレオペア画像を表示したり、作成した３ＤＣＧを表示したり、３ＤＣＧ作成支援プログラム７のメインメニュー画面やサブメニュー画面などの表示を行う。
表示部３に表示される画像は、所定のプログラムに従って中央処理部１によって形成されるものである。このように画像の提示手段は、所定のプログラムによって制御された中央処理装置１が担っている。
表示部３は、液晶ディスプレイやプラズマディスプレイなどで構成されても良い。
キーボード４は、ユーザがコマンドや数値データ、文字データなどを入力するのに使用される。
【００１５】
マウス５は、机やマウスパッドなどの平面上で前後左右に移動すると、その移動量に比例して表示部３に表示されたポインタが移動するようになっている。
ユーザが表示部３に表示された画面上の所定の箇所をポインタ１１で指しながら、クリックボタンをクリックすることにより様々なコマンドを実行したりデータを中央処理部１に入力することができる。
例えば、３ＤＣＧ作成支援プログラム７では、ユーザがポインタを表示部３に表示されたステレオペア画像の任意の点を指しながらクリックすることにより、その点の写真上での２次元座標値を中央処理部１に入力することができるようになっている。
【００１６】
なお、マウス５の他にタブレットやプロッタなどを使用しても良い。
また、このシステム構成では、画像データ９、画像処理プログラム７及び３ＤＣＧ作成支援プログラム７を固定ディスクに記憶したが、これらは、特に固定ディスクに記憶する必然性はなく、分散して配置し、それらをネットワークを介して接続したり、データ入出力部２に接続したデジタルカメラなどから直接画像データを画像処理プログラム７でアクセスしても良い。
【００１７】
以下に図２を用いて３ＤＣＧ作成支援プログラム８の構成の概要について説明する。
３ＤＣＧ作成支援プログラム８は、ユーザにユーザインターフェースを提供したり、ユーザの操作により写真測量部７３やＶＲＭＬファイル作成部７４を呼び出す総合インターフェース部７２、被写体を写したステレオペア画像を解析し、被写体の３次元座標を算出する写真測量部７３、及び算出された３次元座標値を用いて被写体の立体モデルをＶＲＭＬにて記述し出力するＶＲＭＬファイル作成部７４から構成されている。
【００１８】
総合インターフェース部７２は、メインメニュー画面表示部７６、画像データ取得部７５、データ記憶部７７から構成されている。
メインメニュー画面表示部７２は、３ＤＣＧ作成支援プログラム７が起動されると、表示部３にメインメニュー画面を表示し、ユーザは、この画面に表示されたドロップダウンメニューなどをクリックしたりして画像データ取得部７５、写真測量部７３、ＶＲＭＬファイル作成部７４を呼び出すことができるようになっている。
【００１９】
画像表示編集部７５は、被写体が写されたステレオペア画像を用いて、写真測量に必要な画像上の情報をデータ記憶部７７に入力する機能を有している。
より具体的には、ユーザがメインメニュー画面から画像データ取得部７５を呼び出すと、画像データ取得部７５は、メインメニュー画面の中央の左半分に左画像を、右半分に右画像を表示し、ユーザが左右画像上の任意の点をポインタで指してクリックすると、その点の２次元座標値を記憶部１０を介してデータ記憶部７７に出力する。
【００２０】
写真測量では、例えば、測量の基準となる点やその他の点の写真上の２次元座標値を左画像、右画像のそれぞれについて知る必要がある。画像編集部７７は、ユーザが左右のそれぞれの画像上で所定の点をポインタにより指し示してクリックすると、その点の２次元座標値を取得し、データ記憶部７７に出力する。
また、写真測量を行う場合、撮影に使用したカメラのレンズの焦点距離などのカメラに固有のカメラデータを知る必要がある。画像データ取得部７５は、ダイアログボックスを表示部３に表示し、ユーザが入力したカメラデータを記憶部１０を介してデータ記憶部７７に出力する機能も有している。
【００２１】
データ記憶部７７は、画像データ取得部７５から記憶部１０を介して取得したしたステレオペア画像上の点の２次元座標値やカメラデータを記憶し、写真測量部７３が計算をする際にそれらのデータを写真測量部７３に渡すようになっている。
更に、データ記憶部７７は、写真測量部７７が算出したステレオペア画像上の点の３次元座標値を記憶し、ＶＲＭＬファイル作成部７４が被写体の立体モデルを作成する際に、これらのデータをＶＲＭＬファイル作成部７４に渡す機能も有している。
ユーザはメインメニュー画面からデータ記憶部７７に記憶してあるデータを確認することができる。この際には、データ記憶部７７に記憶されてるデータが表示部３にスプレッドシート状に表示されるようになっている。
【００２２】
写真測量部７３は、内部標定部７８、最適解探索部７９からできている。
後に詳細に説明するように、写真測量は一般に、被写体を異なる方向から撮影した一組のステレオペア写真を内部標定、相互標定、絶対標定の順に標定し、被写体の３次元座標値を算出する。
内部標定とは、被写体が感光面に投影される際の歪を修正したりなどして、写真上の２次元座標（機械座標と呼ばれる）を相互標定に使用する写真座標に変換する作業である。
相互標定とは、ステレオペア写真間の相対的な傾きや位置の関係を求める作業である。相互標定により被写体と相似な立体モデルを得ることができる。
絶対標定とは、ステレオペア写真中にあらかじめ測定の目標となる被写体と共に写しこんでおいた基準点を用いて相互標定で求めた被写体と相似な立体モデルの縮尺などを求める作業である。
【００２３】
ユーザは、画像データ取得部７５での処理を終えると、メインメニュー画面から写真測量部７３を呼び出す。
写真測量部７３は、ユーザにより呼び出されると、データ記憶部７７から写真測量に使用するデジタルペア画像上の点の２次元座標値やカメラデータを取得する。
内部標定部７８は、これらのデータからデジタルペア画像を内部標定し、標定結果を最適解探索部７９に出力する。
【００２４】
最適解探索部７９は、観測点選定部８０、相互標定部８１、絶対標定部８２、評価・判断部８３から構成されている。
最適解探索部７９は、内部標定部７８から入力されたデータを用いて、後に詳細に説明するアルゴリズムに従って、デジタルペア画像を相互標定、絶対標定し、被写体上の点の３次元座標値をデータ記憶部７７に出力する。
【００２５】
観測点選定部８０は、ユーザが画像データ取得部７５の機能を用いて取得したステレオペア画像上の複数の点のさまざまな組合せを発生させるようになっている。最適解探索部７９は、それらのおのおの組合せについて、相互標定部８１で相互標定し、絶対標定部８２で絶対標定し、評価・判断部８３で標定の精度を評価する。最適解探索部８３は、最も精度が高い解をデータ記憶部７７に出力する。
また、観測点選定部８０は、全解探索と、ＧＡ（遺伝的アルゴリズム）探索の２種類の方法で観測点の組合せを発生させることができ、ユーザはメインメニュー画面から写真測量部７３を呼び出す際にいずれか一方を選択することができる。
【００２６】
全解探索とは、所定の点の全ての組合せを発生させ、その結果得られる解の中から最も標定精度の高い解を写真測量の結果として採用する手法である。
一方、ＧＡ探索とは、遺伝的アルゴリズムを用いることによって、点の全ての組合せを発生させることはせずに、必要な標定の精度を担保できる点の組合せを求め、その点の組合せから得られる解を写真測量の解として採用するものである。ＧＡ探索は、点の全ての組合せについて標定するわけではないので、コンピュータの計算時間を短縮することができ、被写体が曲面を有して写真測量に必要な点を多くとる必要のある場合などに有効である。
【００２７】
ＶＲＭＬファイル作成部７４は、サブメニュー画面表示部８４、３Ｄモデル構成点取得部８５、ＶＲＭＬファイル生成出力部８６から構成されている。
サブメニュー画面表示部８４は、メインメニュー画面表示部７６から呼び出されると、表示部３にサブメニュー画面を表示する。
サブメニュー画面は、ユーザが被写体のワイヤフレームモデル又はサーフェスモデルを作成したり、３Dモデル構成部８５やＶＲＭＬファイル生成出力部８６を呼び出したりする際のユーザインターフェースを提供する。
【００２８】
より具体的には、サブメニュー画面にはステレオペア画像のうちの左写真を表示することができる。この左画像には、写真測量により、あらかじめ３次元座標値がわかっている点が着色されると共に被写体に重ね合わされて明示され、ユーザは、これらの点のうち適当な点をクリックして選択することができる。
ユーザが選択した点は、被写体の立体モデルを構成する際の構成点として使用され、ユーザは、これらの構成点から被写体のワイヤフレームモデル又はサーフェスモデルの何れかを作成することができるようになっている。
【００２９】
ワイヤフレームモデルとは、線を用いて立体を表現する手法であり、サーフェスモデルとは、三角形などの多角形面（ポリゴン）などを用いて立体を多面体として表現する手法である。
ユーザは、サブメニュー画面から、ワイヤモデルとサーフェスモデルの何れで立体モデルを作成するか選択できるようになっている。
【００３０】
３Ｄモデル構成点取得部８５は、サブメニュー画面でユーザが選択した構成点の座標値と、これらの構成点からワイヤフレームモデルとサーフェスモデルの何れを構成するのかといった被写体の立体モデル情報を取得する。
ＶＲＭＬファイル生成出力部８５は、３Ｄモデル構成点取得部８５から、被写体の立体モデル情報を取得し、ＶＲＭＬファイル８７を生成して、例えば固定ディスク６などに出力する。
【００３１】
ＶＲＭＬファイル８７を生成した後に、ユーザは、ＶＲＭＬビューア８を起動し、このビューアを介してＶＲＭＬファイル８７を表示することにより、表示部３に被写体の立体モデルを表示することができる。
ＶＲＭＬファイル８７には、該被写体の３次元データが記録されているので、ユーザの視点が移動すると、その視点から見える立体モデルの姿態を中央処理部１が計算することができ、ユーザは表示部３で、被写体を様々な角度に回転させたり、移動させたり、或いは拡大縮小することができる。
【００３２】
図３は、被写体のステレオペア画像から、被写体の立体モデルを記述したＶＲＭＬファイルを作成するまでの工程を示したフローチャートである。
まず、３ＤＣＧ作成支援プログラム７を起動する（ステップ１０５）。ここで、被写体を撮影したステレオペア画像は、既に画像データ９として固定ディスク６に記憶してあるものとする。
【００３３】
３ＤＣＧ作成支援プログラム７を起動すると表示部３にメインメニュー画面が表示される。
次に、ステレオペア画像を３ＤＣＧ作成支援プログラム７に読込んで、左右の画像をメインメニュー画面に表示する（ステップ１１０）。
次に、ユーザのマウス５の操作により後に説明する基準点、計測観測点、任意観測点を左右の画像上で設定する。
より具体的には、この操作は、ユーザがマウス５を操作して表示部３に表示されたポインタを画像上の設定しようとする点の上に置き、クリックすることで、これらの点の種類（基準点、計測観測点、任意観測点の別）と画像上でのこれらの点の２次元座標値が記憶部１０に一時的に記憶されることにより行われる。
【００３４】
次に、記憶部１０に一時的に記憶されたこれらの点の座標値などをデータ記憶部７７に記録すると共に、ダイアログボックスを介してユーザからカメラの焦点距離や、画素サイズなどのカメラデータを取得し、これらのデータを記憶部１０に記憶する（ステップ１２０）。
記憶部１０に記憶されたこれらのデータは、メインメニュー画面からのユーザの操作により、データ記憶部７７に出力される。
以上で、写真測量を行う上での必要なデータが揃ったので、メインメニュー画面でのユーザの操作により写真測量部７３を呼び出し、ステレオペア画像の写真測量を行う（ステップ１２５）。
【００３５】
写真測量が終了すると、次に、メインメニュー画面でのユーザの操作により、サブメニュー画面を呼び出す（ステップ１３０）。
次に、サブメニュー画面にステレオペア画像の左画像を表示する。この画像では、被写体上に写真測量により既に３次元座標値がわかっている点が共に表示されている。ユーザがマウス５を操作して、ポインタをこれらの点に置きクリックすることで、３Ｄモデル構成点取得部８５の機能により、これらの点を構成点として、ワイヤフレームモデル又はサーフェスモデルを作成する（ステップ１３５）。
【００３６】
次に、３Ｄモデル構成点取得部８５の機能により生成された被写体の立体モデル（ワイヤフレームモデル、サーフェスモデル又はそれらの混合）は、ＶＲＭＬファイル生成出力部８６でＶＲＭＬファイルに記述され、固定ディスク６に出力される（ステップ１４０）。
そして、３ＤＣＧ作成支援プログラム７を終了する（ステップ１４５）。
生成されたＶＲＭＬファイルに記述された被写体の立体モデルは、ＶＲＭＬビューア８を介して表示部３に表示される。
【００３７】
図４は、メインメニュー画面表示部７６によって表示部３に表示されるメインメニュー画面７１を示した図である。以下にメインメニュー画面７６の構成について説明する。
メインメニュー画面７１の中央付近の左半分には、ステレオペア画像の左画像表示部９２が、右半分には右画像表示部９３があり、それぞれの画像を読込んで表示されるようになっている。
左画像表示部９２に表示された画像は、垂直スクロールバー９４及び水平スクロールバー９６によってそれぞれ、垂直及び水平にスクロールすることができるようになっている。
【００３８】
左画像表示部９２の上には、拡大ボタン１００、縮小ボタン１０１が配置されており、ユーザがマウス５の操作によりこれらのボタンをクリックすることにより、左画像表示部９２を拡大表示又は縮小表示することができる。これらのボタンやスクロールバーにより、画像上の点を拡大表示し、ユーザがこれらの点の指定を容易にすることができる。
また、水平スクロールバー９６の下にある座標表示欄９８には、ポインタ１１が示している点の左画像上での２次元座標値がピクセル単位で表示されるようになっている。
【００３９】
右画像９３も垂直スクロールバー９５、水平スクロールバー９７によって右画像のスクロールを、及び、拡大ボタン１０２、縮小ボタン１０３によって右画像の拡大縮小を行えるようになっている。
また、座標表示欄９９には、ポインタ１１を右画像に持ってきた場合に、ポインタ１１が示している点の右画像上での２次元座標値がピクセル単位で表示される。
【００４０】
メインメニュー画面９１の上段には、各種のドロップダウンメニューなどが表示されている。ユーザはポインタをこれらのメニュー上に置いてクリックすることにより、これらのメニューに設定された機能を作動することができる。
ファイル１０４をクリックすると図５（ａ）に示したように「開く」、「保存」、「読込み」、「閉じる」の各項目が表示される。
ユーザはそれぞれの項目をマウス５によってクリックすることにより、各項目を実行することができる。
以降、例えば、ファイル１０４を開き「読込み」を選択する操作をファイル１０４→「読込み」などと表記することにする。
【００４１】
「開く」は、更に「左画像」と「右画像」の２つの項目から構成されており、ユーザは、ファイル１０４→「開く」→「左画像」と操作すると、図示しないファイル選択ダイアログボックスが開き、このボックスから左画像記憶されているファイルを指定し、左画像を開くことができる。開いた左画像は、左画像表示部９２に表示される。
同様にファイル１０４→「開く」→「右画像」で右画像を右画像表示部９３に表示することができる。
【００４２】
「保存」では、３ＤＣＧ作成支援プログラム７で作業している途中や、作業が終了したときに、作業により作成したデータをテキストファイルとして保存することができる。
これにより、ユーザは、後日作業を途中から再開したり、以前行った作業の状態を呼び出すことができる。
「読込み」では、「保存」で作成されたテキストファイルを読込んで、以前保存した状態を３ＤＣＧ作成支援プログラム７に呼び出すことができる。
「閉じる」では、３ＤＣＧ作成支援プログラム７を終了することができる。
【００４３】
ポイント１０５は、「基準点」、「計測観測点」、「任意観測点」の各項目から構成されている。後に説明するように、ユーザは、左画像表示部９２と右画像表示部９３に表示された画像上で、基準点、計測観測点、任意観測点をマウス５を用いてクリックしていくが、基準点をクリックする場合は、ポイント１０５→「基準点」をクリックしてから左右画像上の基準点を左画像、右画像の順にクリックする。
これにより、画像データ取得部７５は、ユーザがクリックした点が基準点であることを認識することができ、かつのこの点の画像上での２次元座標値を取得する。
同様に、ユーザは、左右画像上の計測観測点、任意観測点をクリックして指定する場合は、あらかじめ、ポイント１０５→「計測観測点」、又はポイント１０５→「任意観測点」をクリックしておき、その後に、左画像、右画像の順で計測観測点又は任意観測点をクリックする。
これらのクリックされた点の画像上での２次元座標値は、記憶部１０に一時的に記憶される。
また、間違った点をクリックしてしまった場合は、誤選択した点をキャンセルできるようになっている。
【００４４】
カメラデータ１０６は、ユーザのクリックにより図６に示したカメラデータ入力画面１１０を表示部３に表示する。ユーザは、この画面からステレオペア画像の撮影に使用したデジタルカメラのレンズの焦点距離及び画素サイズを入力する。ステレオペア画像の縦ピクセル数と横ピクセル数は、画素サイズから画像データ取得部７５により自動的に計算される。
入力後に、ユーザが「ＯＫ」ボタンをクリックすると入力したカメラデータが一時的に記憶部１０に記憶されるとともに、カメラデータ入力画面１１０は消えて、カメラデータ１０６をクリックする前の画面に戻る。
【００４５】
図５のデータ記憶部１０７は、「ポイントデータ・カメラデータ」、「データ確認」の各項目から構成されている。
ユーザが、データ記憶部１０７→「ポイントデータ・カメラデータ」をクリックすると、記憶部１０に記憶されていた、基準点、計測観測点、任意観測点の２次元座標値と、カメラデータがデータ記憶部７７に出力され、記憶される。
また、ユーザがデータ記憶部１０７→「データ確認」をクリックすると、データ記憶部７７に記憶されている内容がスプレッドシート状に表示部３に表示され、ユーザはこれらのデータの確認をすることができる。
【００４６】
写真測量１０８は、「全解探索」、「ＧＡ探索」の各項目から構成されている。
ユーザが、写真測量１０８の何れかの項目をクリックして選択することにより写真測量部７３を呼び出すことができる。
ユーザが、写真測量１０８→「全解探索」を選択した場合は、写真測量部７３は後に説明する全解探索によってステレオペア画像の写真測量を行い、写真測量１０８→「ＧＡ探索」を選択した場合は、写真測量部７３は遺伝的アルゴリズムを用いた解法により写真測量を行う。
全解探索とＧＡ探索の手法については後に詳細に説明する。
【００４７】
以下に３ＤＣＧ作成支援プログラム７の写真測量方法及び立体モデルの作成方法を被写体１３を例にとって説明する。
図４の左画像表示部９２、右画像表示部９３には、被写体１３を異なる２方向から撮影したステレオペア画像が表示されている。
図中には基準点をＴ１〜Ｔ３、計測観測点をＫ１〜Ｋ４、任意観測点Ｐ１〜Ｐ８で示してある。
【００４８】
基準点は平面位置が既知の点が２点以上、高さが既知の点が３点以上必要である。平面位置と高さの両方が既知の点であれば３点あれば良い。
上に述べたように理論上は、平面位置が既知の点が２点、高さが既知の点が３点あればステレオペア画像の標定を行うことができるが、本実施の形態では、平面位置及び高さが既知の点を３点以上入力するように３ＤＣＧ作成支援プログラム７を構成した。
また、３ＤＣＧ作成支援プログラム７を平面位置が既知の点を２点以上、高さが既知の点を３点以上入力するように構成することもできる。
このステレオ画像では出入口の外に突き出たコンクリートの部分で基準点を取った。基準点はこのように地面と平行な直角三角形をなす３点や、窓枠の隅のように地面と平行な辺を有し鉛直面内にある直角三角形をなす３点を選ぶと位置の計測がしやすい。
基準点は、立体モデルの縮尺や傾きを求める際の基準となる点である。
【００４９】
実測によると、Ｔ１Ｔ２間の長さは、１．８メートル、Ｔ１Ｔ３間の長さは０．８メートルであった。辺Ｔ１Ｔ２と辺Ｔ１Ｔ３は直角で、面Ｔ１Ｔ２Ｔ３はほぼ水平なので、Ｔ１を原点とし、Ｔ１Ｔ２方向にＸ軸を、Ｔ１Ｔ３方向にＹ軸を、垂直方向にＺ軸を取ると、Ｔ１、Ｔ２、Ｔ３の座標はそれぞれ、Ｔ１（０、０、０）、Ｔ２（１．８、０、０）、Ｔ３（０、０．８、０）となる。これらの実測による座標値を測地座標値と呼ばれることがある。
このように、基準点を取ることができる被写体を必ず、左右両方の写真に写し込んでおく。基準点を取りにくい場合は、例えば直角三角形の定規を設置するなど、あらかじめ目印になるもの（ターゲットと呼ばれることがある）を設置しておく。また、基準点は写真上で認識が容易な点を選ぶ。
【００５０】
Ｋ１からＫ４までの計測観測点は、写真測量で実空間での３次元座標値を算出したい点である。計測観測点は、後に立体モデルを形成する際の構成点となる。
今の場合、Ｋ１からＫ４までの４点で張られる壁の実空間内での位置を得たいとすると、辺Ｋ１Ｋ２の長さや辺Ｋ１Ｋ４の高さなどが巻き尺などの物理的手段によって実測することが困難であるが、これらの値はステレオペア画像を写真測量することにより計算することができる。
つまり、Ｔ１、Ｔ２、Ｔ３などの実測が容易な基準点とＫ３、Ｋ４などの実測が困難な計測観測点を同一の写真に写し込んでおき、これらの写真上での相対位置と基準点の位置の実測値から計測観測点の位置を計算することができる。計測観測点は左右両方の写真に写し込んでおく。
Ｐ１からＰ９までの任意観測点は、標定の計算精度を向上させるために便宜的に取った点である。任意観測点の適当な組合わせと基準点、計測観測点について写真測量を行うのであるが、最も測量精度が高くなる（全解探索）か、測量所定の精度を満たす（ＧＡ探索）組合わせに係る解を写真測量の解とする。これについては後に述べるが、換言すれば、任意観測点はステレオペア画像の被写界深度の精度を向上させるための点である。
なお、Ｋ２やＰ４などの点は、左右の画像の被写体で対応する点である。
【００５１】
ユーザが、Ｔ１を基準点として指定する際は、ポイント１０５→「基準点」をクリックした後、左画像のＴ１にポインタ１１を合わせてクリックし、次に右画像のＴ１をクリックする。
すると、表示部３に図７に示した基準点座標入力画面１２２が表示される。ユーザは、予め実測してある座標値を入力する。この操作をＴ２、Ｔ３に対しても行う。
これらの操作により、基準点のステレオペア画像上での２次元座標値と、実測値が記憶部１０に記憶される。
【００５２】
Ｋ１からＫ４までの計測観測点は、図４のポイント１０５→「計測観測点」をクリックした後、ステレオペア画像上で左画像、右画像の順でクリックしていく。この操作によって、ステレオペア画像上でのこれらの座標値が記憶部１０に記憶される。
次に、同様にしてポイント１０５→「任意観測点」をクリックした後、Ｐ１からＰ９の任意観測点をステレオペア画像上で左画像、右画像の順でクリックしていく。
【００５３】
任意観測点は以下の要領で取る。（１）写真の４隅付近で取る。ただし、計測観測点が４隅付近にあるときは、採用しない。（２）写真の４隅の中点付近に取る。ただし、計測観測点が４隅の中点付近にあるときは採用しない。（３）１０点程度を画像上全体にバランス良く取得する。
なお、任意観測点は左右の両方の画像の対応する点である。
以上の方針に基づいて、本実施の形態では図４に示した様に、Ｐ１からＰ４までは、建物の角や窓枠、Ｐ５は焼却炉の煙突、Ｐ６は電柱にとった。
Ｐ７からＰ９までは、地面に落ちている石である。このように任意観測点は自然にあるものを利用しても良いし、目印になるものを置いても良い。
【００５４】
以上の作業により、基準点、計測観測点、任意観測点のステレオペア画像上での２次元座標値及び基準点の実測値が記憶部１０に記憶した後、カメラデータ１０６をクリックしてカメラデータ入力画面１１０から、ステレオペア画像の撮影に使用したカメラの焦点距離と画素サイズを入力し、記憶部１０に記憶させる。
本実施例では、カメラの焦点距離は６．５ミリメートル、ＣＣＤの画素サイズは０．００３９ミリメートルであった。
【００５５】
次に、データ記憶部１０７→「ポイントデータ・カメラデータ出力」をクリックし、記憶部１０に記憶されたこれらのデータをデータ記憶部７７に出力し記憶させる。
データ記憶部１０７→「データ確認」をクリックすると、図８に示した入力データ欄３１が表示され、データ記憶部７７に記憶したデータを確認することができる。
入力データ欄３１には、カメラデータ欄２３、基準点・計測観測点欄２６、任意観測点欄２７、平面基準点欄２８、標高座標欄２９から構成されている。
また、入力データ欄３１の下には図示しない水平スクロールバーがあり、これを右側にスクロールすると図９に示した出力データ欄３３がある。出力データ欄３３は、絶対座標値出力欄３６から構成されている。
【００５６】
絶対座標値出力欄３１には、写真測量の結果得られた計測観測点等の絶対座標値が表示される。写真測量が終わるまでは空欄となっている。
絶対座標値とは、標定の結果得られた点の実空間での３次元座標値の計算値のことである。絶対座標値は対地座標値とか地上座標値などとも呼ばれることがある。
絶対座標値出力欄３６の点名の欄には標定に使用された点の点名が表示され、右側の欄には対応する点の絶対座標値がメートル単位で表示される。
【００５７】
絶対座標値出力欄３６の上部に表示されたＸＧ、ＹＧ及びＺＧはそれぞれ絶対座標値のＸ、Ｙ及びＺ成分を表す。
基準点と計測観測点については、全ての点の絶対座標値が表示され、任意観測点については、標定に使用した任意観測点の絶対座標値を表示する。これは、最適解探索部７９が標定精度が一番高くなる任意観測点の組合せを探索するため、この組合せから漏れた任意観測点は計算しないためである。
【００５８】
次に、ユーザは、写真測量１０８→「全解探索」又は、写真測量１０８→「ＧＡ探索」の何れかをクリックし、写真測量部７３を呼び出す。
写真測量部７３は、ユーザが「全解探索」を選択した場合は、全解探索により写真測量（標定）を行い、ユーザが「ＧＡ探索」を選択した場合は、ＧＡ探索により写真測量を行う。このように、写真測量部７３は、全解探索とＧＡ探索の２つのオプションを備えている。以下のこの２つの手法について説明する。
【００５９】
［全解探索の詳細］
メインメニュー画面表示部７６から呼び出されると写真測量部７３は、標定に必要なデータをデータ記憶部７７から読込み内部標定部７８により、内部標定を行う。
内部標定部７８はステレオペア画像における座標系を機械座標系から写真座標系に変換し、点の機械座標値を写真座標値に変換する。写真座標系とは写真の中心を原点とした座標系のことである。通常この変換はアフィン変換やヘルマート変換などにより行う。本実施例では写真の４隅の機械座標値と写真座標値からアフィン変換式の係数を求め、この係数を用いて全ての点の座標値を変換した。
【００６０】
図１０（ｂ）はステレオペア画像の撮影に使用したデジタルカメラのＣＣＤ感光面を示した図である。
本実施例ではＣＣＤ感光面の中心を原点１８として、右方向にＸ軸を、下方向にＹ軸を取り、このＣＣＤ感光面上での点の座標値を写真座標値とする。単位はミリメートルである。
ＣＣＤ感光面の横方向の長さは１６００ピクセル×０．００３９ミリメートル＝６．２４ミリメートルである。同様にして縦方向の長さは２．６８ミリメートルである。よって、写真右上の点４１の写真座標値は（３．１２、−２．３４）である。図１０（ａ）は機械座標系を表しており、写真右上の点４０の機械座標値はピクセル単位で（１６００、０）である。この座標値は２次元ピクセル座標値と呼ばれることもある。
このようにして、写真の４隅の機械座標値と、写真座標値を求めると、アフィン変換式の係数を求めることができる。次に、このアフィン変換式を用いて、全ての点、即ち、Ｔ１からＴ３までの基準点と、Ｋ１からＫ４までの計測観測点と、Ｐ１からＰ９までの任意観測点の機械座標値を写真座標値に変換する。以降の標定作業は内部標定で得られた写真座標値を用いて行う。
【００６１】
観測点選定部８０は任意観測点の全ての組合せを重複なく網羅的に作成する。
例えば任意観測点をＰ１、Ｐ２、Ｐ３の３点のみとすると、組合せの長さが１であるときは、任意観測点の選び方は、Ｐ１、Ｐ２、Ｐ３の３通りであり、組合せの長さが２である組合せは（Ｐ１、Ｐ２）、（Ｐ１、Ｐ３）、（Ｐ２、Ｐ３）の３通りの組合せがあり、組合せの長さが３である組合せは（Ｐ１、Ｐ２、Ｐ３）の１通りがある。このモジュールはこのように全ての組合せの長さに渡って、任意観測点の組合せを漏れなくかつ重複なく作成する。組合せの長さとは、組合せに係る任意観測点の個数のことである。
ただし、絶対標定を行うには６点以上の点が必要なので、計測観測点及び任意観測点の総個数が６個以上になるような組合せの長さについて任意観測点の組合せを生成する。例えば、計測観測点の個数が４個のときは、任意観測点の組合せは、組合せの長さが２以上のものについて作成する。
【００６２】
相互標定部８１では、全ての計測観測点と前記組合せで部で組合された任意観測点を用いて、相互標定を行う。例えば、観測点選定部８０で（Ｐ２、Ｐ４、Ｐ６）が組合されたとすると、（Ｔ１、Ｔ２、Ｔ３、Ｋ１、Ｋ２、Ｋ３、Ｋ４、Ｐ２、Ｐ４、Ｐ６）の組合せに係る点を用いて相互標定を行う。
相互標定とは、左右のステレオペア画像がそれぞれ持っているＸ軸、Ｙ軸及びＺ軸の３つの軸の回りのオイラー角ω１、φ１、κ１及びω２、φ２、κ２などの標定要素を求め、左右の写真の相対的な傾きや位置関係を求めることである。
本実施例では、共面条件式を用い、最小二乗法によって前記標定要素の最確値を求めた。
相互標定によりステレオペア画像を撮ったときの左右の写真の相対的な傾きを求めると、これにより、被写体と相似な立体モデルを作ることができる。そして、前記立体モデル上での全ての計測観測点と前記組合せに係る任意観測点の座標値、即ち、モデル座標値が得られる。共面条件式の代わりに縦視差方程式を用いても良い。
【００６３】
絶対標定部８２は、前記相互標定で求まった点のモデル座標値から、点の実空間での３次元座標値即ち、絶対座標値を求める。
前記相互標定で得られた被写体に相似な立体モデルは、被写体に対して３つの軸の回りにオイラー角Ω、Ф、Кだけ回転しており、また、その立体モデルの被写体に対する縮尺は不明である。
絶対標定とは、被写体と立体モデルの回転角を求め、かつ縮尺を求めることである。これらの標定要素を求めると、被写体と等しい実体モデルを作ることができる。
即ち、絶対標定を終えると、ステレオペア画像から被写体上の点の絶対座標値を求めるためのパラメータ（標定要素）を取得することができ、これらのパラメータを用いて被写体上の任意の点の絶対座標値を求めることができるようになる。
本実施例では、最小二乗法を用いて前記標定要素の最確値を求めた。
【００６４】
評価・判断部８３は基準点の測地座標値と絶対座標値との残差を求める。
本実施例では基準点Ｋ１、Ｋ２及びＫ３の測地座標値と絶対座標値の差絶対値を全て加えたものとする。
例えば、Ｋ１の測地座標値は（０、０、０）であるから、Ｋ１の絶対座標値が（Ｘ１、Ｙ２、Ｚ１）とすると、Ｋ１についての残差は｜０−Ｘ１｜＋｜０−Ｙ１｜＋｜０−Ｚ１｜とな。この計算をＫ２、Ｋ３に対しても行い、これらの値を全て加えたのを残差とする。この残差が小さいものほど標定の精度が高い。
また、評価・判断部８３は前記残差をあらかじめ設定した設定値と比較し、残差が設定値よりも小さい場合は、前記残差で設定値を更新し、このときの任意観測点の組合せと各計測観測点と各任意観測点の絶対座標値を記憶する機能も持っている。
【００６５】
さらに、評価・判断部８３は任意観測点の全ての組合せを尽くしたかどうかについても判断する。評価・判断部８３は前述の通り残差の最小値を更新した後、任意観測点の全ての組合せについて標定がなされたかどうか判断する。
組合せが尽くされている場合は、前記記憶した計測観測点と任意観測点の絶対座標値（標定の結果得られた、実空間の３次元座標値の計算値）をデータ記憶部７７に出力する。また、任意観測点の全ての組合せを尽くしていないと判断したときは、観測点選定部８０に任意観測点の新たな組合せを作るように促す。
【００６６】
なお、本実施例では各基準点の測地座標値と絶対座標値の各成分の差の絶対値を求め、これらを全て加えたものを残差としたが、残差はこれに限るものではなく、他の方法で定義することもできる。例えば、基準点の実際の位置と計算上の位置の距離を全ての基準点について加えたもを残差としても良いし、前記距離を単に全ての基準点について足すのではなく、何らかの方法で重み付けして加えたものを残差としても良い。このようにいろいろな方法で残差を定義することができる。
【００６７】
以上のように構成された写真測量部７３の動作を図１１のフローチャートを参照しながら説明する。
データ記憶部７７から、基準点、計測観測点及び任意観測点の機械座標値やカメラデータを取得する（ステップ２）。
ステレオペア画像を内部標定して計測観測点と任意観測点の機械座標値を写真座標値に変換する（ステップ３）。任意観測点の組合せを作成する（ステップ４）。計測観測点と前記の組合せに係る任意観測点からステレオペア画像を相互標定して、計測観測点と前記組合せに係る任意観測点の写真座標値をモデル座標値に変換する（ステップ５）。ステレオペア画像を絶対標定して前記モデル座標値を絶対座標値に変換する（ステップ６）。
【００６８】
基準点の測地座標値と絶対座標値から残差を求める（ステップ７）。前記残差が設定値より小さいなら（ステップ８：Ｙ）、前記残差をもって新たな設定値とし、このときの任意観測点の組合せと計測観測点と前記組合せに係る任意観測点の絶対座標値を記憶する（ステップ９）。前記残差が設定値より大きい場合（ステップ８：Ｎ）、または、ステップ９を終えた後、全ての任意観測点の組合せについて標定したかどうか判断し（ステップ１０）全ての組合せについて標定を終えた場合は（ステップ１０：Ｙ）残差を最小とする任意観測点の組合せに係る標定結果を出力画面３８に表示して終了する。任意観測点の全ての組合せについては標定をしていない場合は（ステップ１０：Ｎ）、ステップ４に戻り、任意観測点の組合せを更新する。以下、この動作を任意観測点の全ての組合せについて標定するまで繰り返す。
以上の手順で任意観測点の全ての組合せについて標定してそれぞれ設定値と比較することにより、最も精度の高くなるような任意観測点の組合せで標定することができる。
【００６９】
次に、全解探索を行う他の例として再帰的呼び出しを用いることにより、任意観測点の全ての組合せを作成する方法について説明する。
このような動作をする関数としてＣｏｍｂ（ｉ、ｊ）関数を作成した。
以下、Ｃｏｍｂ（ｉ、ｊ）関数について説明する。
Ｃｏｍｂ（ｉ、ｊ）関数は再帰的呼び出しを行って、任意観測点の組合せを作成し、計測観測点と組合せに係る任意観測点から標定を行う。
ｉ、ｊはパラメータで、ｊは自身を再帰呼び出しした回数をカウントする。以下、Ｎは任意観測点の総個数、Ｌは組合せの長さである。Ｌは１からＮまでの値を取る。
Ｃｏｍｂ（ｉ、ｊ）関数は自身を再帰的に呼び出すので、区別のために、Ｃｏｍｂ（ｉ、ｊ）関数から再帰的呼び出しをされたＣｏｍｂ（ｉ、ｊ）関数をＣｏｍｂ２（ｉ、ｊ）とし、Ｃｏｍｂ２（ｉ、ｊ）関数からさらに、再帰的呼び出しをされたＣｏｍｂ（ｉ、ｊ）関数をＣｏｍｂ３（ｉ、ｊ）などと表記することにする。
【００７０】
以下にフローチャートを参照しながら、その動作について説明する。
図１２は、Ｃｏｍｂ（ｉ、ｊ）関数を用いた標定手順を表すフローチャートである。
まず、データ記憶部７７から、基準点、計測観測点及び任意観測点の機械座標値やカメラデータを取得する（ステップ２１）。
本実施の形態では計測観測点をＴ１からＴ３、Ｋ１からＫ４までの７個、任意観測点をＰ１からＰ９までの９個取った。しかし、ここでは、説明を簡単化するためＰ１からＰ４までの４個の任意観測点を用いた場合の標定手順を説明する
【００７１】
次に、内部標定を行いＴ１からＴ３、Ｋ１からＫ４まで全ての計測観測点、及びＰ１からＰ４までの全ての任意観測点の機械座標値をアフィン変換を用いて写真座標値に変換する（ステップ２２）。
【００７２】
次に、Ｌ＝１とおく（ステップ２３）。
次に、パラメータｉとｊの値を０に初期化し（ステップ２４）、Ｃｏｍｂ（ｉ、ｊ）関数を実行する（ステップ２５）。
ステップ２４とステップ２５はループをなす。Ｌの値は１から１回ループを経る毎に１ずつ加算され（ステップ２７）、Ｌの値がＮになるまで（ステップ２６）繰り返される。Ｌは組合せの長さを表し、Ｌが１のときは、ステップ２４のＣｏｍｂ（ｉ、ｊ）関数により組合せの長さが１の任意観測点の全ての組合せについて標定し、Ｌが２のときは、ステップ２４のＣｏｍｂ（ｉ、ｊ）関数により組合せの長さが２の任意観測点の全ての組合せについて標定し、以下同様にして全ての組合せの長さに渡って標定する。
【００７３】
Ｃｏｍｂ（ｉ、ｊ）関数の動作の概要は以下の通りである。
Ｃｏｍｂ（ｉ、ｊ）関数は４個の任意観測点Ｐ１、Ｐ２、Ｐ３、Ｐ４から標定に使用する任意観測点の組合せ（ｐ１、・・・、ｐＬ）を作成し、（Ｔ１、Ｔ２、Ｔ３、Ｋ１、Ｋ２、Ｋ３、Ｋ４、ｐ１、・・・、ｐＬ）からなる計測観測点と任意観測点について標定する。以降Ｔ１、Ｔ２、Ｔ３、Ｋ１、Ｋ２、Ｋ３、Ｋ４は、Ｔ１〜Ｋ４と表記する。組合せの長さが１、即ちＬ＝１の場合、標定は（Ｔ１〜Ｋ４、ｐ１）の組合せで行われ、ｐ１にＰ１からＰ４までの値を代入することにより、組合せの長さが１の場合の全ての任意観測点の組合せについて標定する。組合せの長さが２、即ちＬ＝２のときは、標定は（Ｔ１〜Ｋ４、ｐ１、ｐ２）で行われ、ｐ１、ｐ２にＰ１からＰ４までの値を代入することにより、組合せの長さが２の場合の全ての組合せについて標定する。以降同様に組合せの長さが３のときは、（Ｔ１〜Ｋ４、ｐ１、ｐ２、ｐ３）で標定し、組合せの長さが４のときは（Ｔ１〜Ｋ４、ｐ１、ｐ２、ｐ３、ｐ４）で標定する。
【００７４】
図１３はＣｏｍｂ（ｉ、ｊ）関数の動作を表すフローチャートである。ｋはパラメータである。ｋがｉから１ずつ加算されながら（ステップ３９）、Ｎ−Ｌ＋ｊに達するまで（ステップ３８）、ステップ３１からステップ３７までを繰り返す。
Ｌ＝１即ち、組合せの長さが１のとき、Ｃｏｍｂ（ｉ、ｊ）関数は以下のように動作する。
ｐ１＝Ｐ１となる（ステップ３１）。
次に、ステップ３２の判断でｊ＝０、Ｌ−１＝０であるのでＮｏとなる。ステップ３２はＣｏｍｂ（ｉ、ｊ）関数が自身を組合せの長さと同じ回数だけ、再帰的に呼びだしたかどうかを判断する。組合せの長さと同じ回数だけ再帰的に呼び出した場合はＮｏとなり、再帰的呼び出し回数が、組合せの長さに満たないときは、Ｙｅｓとなる。
【００７５】
ステップ３２でＮｏとなったので、ステップ３３の相互標定へ行く。相互標定は（Ｔ１〜Ｋ４、ｐ１）に対して行われる。ステップ３３からステップ３７まで各ステップの動作内容はは、実施例１に係る図６のステップ３からステップ９までの対応するステップの動作内容と同じである。（Ｔ１〜Ｋ４、ｐ１）を相互標定してこれらの機械座標値をモデル座標値に変換する（ステップ３３）。相互標定で得られたモデル座標値を絶対標定してこれらの絶対座標値に変換する（ステップ３４）。基準点の絶対座標値と測地座標値の残差を求める（ステップ３５）。設定値と残差を比較し、残差の方が小さいならば（ステップ３６：Ｙｅｓ）、設定値を前記残差で更新するとともに、任意観測点の組合せを記憶し（ステップ３７）、ステップ３８へ行く。設定値より残差の方が大きいならば（ステップ３６：Ｎｏ）、ステップ３８へ行き、ｋとＮ−Ｌ＋ｊを比較する。ｋがＮ−Ｌ＋ｊ以下なら（ステップ３８：Ｎｏ）、ｋに１を加え（ステップ３９）、ステップ３１に戻り、ｐ１＝Ｐ２となる。ｋがＮ−Ｌ＋ｊより大きくなったら（ステップ３８：Ｙｅｓ）、Ｃｏｍｂ（ｉ，ｊ）関数は終了し、ステップ２６へ行く。
以下、ｐ１＝Ｐ４となるまで、同じ動作を繰り返す。
Ｌ＝２以降の組合せについては図１４を用いて説明する。
【００７６】
図１４はＣｏｍｂ（ｉ、ｊ）関数の動作を表に表したものである。上述の通り、Ｌ＝１のときは欄６６に示したようにｐ１にＰ１からＰ４までの値が順に代入され、その各々の場合に対して標定が行われる。
Ｌ＝１のときの任意観測点の全ての組合せについて標定を終えると、Ｃｏｍｂ（ｉ、ｊ）は一旦終了する（ステップ２５終了）。次に、ＬとＮの比較が行われ（ステップ２６）、今の場合、ＬがＮ以下なので（ステップ２６：Ｎｏ）、Ｌに１が加算され（ステップ２７）、Ｌ＝２となった後、カウンタｉとｊの値を０に初期化し（ステップ２４）、再度Ｃｏｍｂ（ｉ、ｊ）関数を実行する（ステップ２５）。
ｋ＝０とおき（ステップ３０）、ｐ１＝Ｐ１となる（ステップ３１）。
今回は組合せの長さが２であるのに対し、Ｃｏｍｂ（ｉ、ｊ）関数は１回しか呼び出されていないので（ステップ３２：Ｙｅｓ）、Ｃｏｍｂ（ｉ、ｊ）関数即ち、Ｃｏｍｂ２（ｉ、ｊ）関数を再帰呼び出しする（ステップ４０）。このときＣｏｍｂ（ｉ、ｊ）関数の引数はｉはｋ＋１に、ｊはｊ＋１になる。即ち、Ｃｏｍｂ（ｋ＋１，ｊ＋１）となる。Ｃｏｍｂ２（ｉ、ｊ）関数のステップ３１でｐ２＝Ｐ２となる。次に、組合せの長さが２であるのに対し、Ｃｏｍｂ（ｉ、ｊ）関数を２回呼び出したので（ステップ３２：Ｎｏ）、（Ｔ１〜Ｋ４、ｐ１、ｐ２）の組合せ、即ち、（Ｔ１〜Ｋ４、Ｐ１、Ｐ２）の組合せで以下の標定が行われる（ステップ３３〜ステップ３７）。
標定が終わるとｋとＮ−Ｌ＋ｊを比較し（ステップ３８）、今の場合、ｋがＮ−Ｌ＋ｊより小さいので（ステップ３８：Ｎｏ）、ｋに１を加え（ステップ３９）、ステップ３１へ戻り、ｐ２＝Ｐ３となる（ステップ３１）。次に、（Ｔ１〜Ｋ４、ｐ１、ｐ２）の組合せ、即ち、（Ｔ１〜Ｋ４、Ｐ１、Ｐ３）の組合せで標定が行われる。この要領でｐ２がＰ２からＰ４までの全ての場合について標定が行われると、Ｃｏｍｂ２（ｉ、ｊ）関数が終了し、Ｃｏｍｂ（ｉ、ｊ）関数に戻る。このときパラメータｋの値が１つ増えてｋ＝１となる。
【００７７】
次に、ｐ１＝Ｐ２となる（ステップ３１）。次にステップ３２でＹｅｓとなり、ステップ４０で再びＣｏｍｂ（ｉ、ｊ）関数、即ちＣｏｍｂ２（ｉ、ｊ）関数が呼び出される（ステップ４０）。次に、Ｃｏｍｂ２（ｉ、ｊ）関数のステップ３１でｐ２＝Ｐ３となる。次に、Ｃｏｍｂ２（ｉ、ｊ）関数のステップ３２でＮｏとなり、（Ｔ１〜Ｋ４、ｐ１、ｐ２）の組合せ、即ち、（Ｋ１、・・・、Ｋ７、Ｐ２、Ｐ３）の組合せで標定が行われる。以上の動作を繰り返してｐ２がＰ３からＰ４までの全ての場合について標定すると、Ｃｏｍｂ２（ｉ、ｊ）関数が終了し、Ｃｏｍｂ（ｉ、ｊ）関数に戻る。今ｋ＝１でＮ−Ｌ＋ｊ＝４−２＋０＝２であるので（ステップ３８：Ｎｏ）、パラメータｋの値が１つ増えてｋ＝２となる（ステップ３９）。
【００７８】
次に、ｐ１＝Ｐ３となる（ステップ３１）。次にステップ３２でＹｅｓとなり、ステップ４０で再びＣｏｍｂ（ｉ、ｊ）関数、即ちＣｏｍｂ２（ｉ、ｊ）関数が呼び出される（ステップ４０）。次に、Ｃｏｍｂ２（ｉ、ｊ）関数のステップ３１でｐ２＝Ｐ４となる。次に、Ｃｏｍｂ２（ｉ、ｊ）関数のステップ３２でＮｏとなり、（Ｔ１〜Ｋ４、ｐ１、ｐ２）の組合せ、即ち、（Ｔ１〜Ｋ４、Ｐ３、Ｐ４）の組合せで標定する。以上の動作でＣｏｍｂ２（ｉ、ｊ）関数が終了し、Ｃｏｍｂ（ｉ、ｊ）関数に戻る。ｋ＝Ｎ−Ｌ＋ｊ＝２の場合について標定を行ったので、Ｃｏｍｂ（ｉ、ｊ）関数を終了し、ループを抜ける。このようにＬ＝２即ち組合せの長さが２の場合の任意観測点の全ての組合せについて標定を行う。以下同様に、Ｌ＝３の場合はＣｏｍｂ（ｉ，ｊ）関数を３回呼び出し、Ｌ＝４の場合はＣｏｍｂ（ｉ，ｊ）関数を４回呼び出し、任意観測点の全ての組合せについて標定する。
【００７９】
図１４の表で、上記の動作を確認する。
Ｌ＝２の場合、Ｃｏｍｂ（ｉ、ｊ）関数でｐ１にＰ１を代入する（欄６０）。次に、Ｃｏｍｂ２（ｉ、ｊ）関数を呼び出し、ｐ２にＰ２からＰ４までを代入し（欄６１）、その各々について（Ｔ１〜Ｋ４、ｐ１、ｐ２）を標定する。次に、Ｃｏｍｂ（ｉ、ｊ）関数に戻って、ｐ１にＰ２を代入する（欄６２）。次に、Ｃｏｍｂ２（ｉ、ｊ）関数を呼び出しｐ２にＰ３、Ｐ４を代入し（欄６３）、その各々について（Ｔ１〜Ｋ４、ｐ１、ｐ２）を標定する。次に、Ｃｏｍｂ（ｉ、ｊ）関数に戻ってｐ１にＰ３を代入する（欄６４）。次に、Ｃｏｍｂ２（ｉ、ｊ）関数を呼び出し、ｐ２にＰ４を代入し、（Ｔ１〜Ｋ４、ｐ１、ｐ２）を標定する。以上で組合せの長さが２の場合における任意観測点の全ての組合せについて標定したことになる。
Ｌ＝３及びＬ＝４の場合も、同様の手順で標定を行う。ｐ３はＣｏｍｂ３（ｉ、ｊ）関数で、ｐ４はＣｏｍｂ４（ｉ、ｊ）関数にて代入される。
【００８０】
以上に述べたようなＣｏｍｂ（ｉ、ｊ）関数を用いて、任意観測点の全ての組合せについて標定し、残差が最小となる任意観測点の組合せを特定し、この組合せに係る任意観測点から標定した結果を最適解とする。
標定結果はデータ記憶部７７に出力される。また、その値は、データ記憶部１０７→「データ確認」をクリックすることにより、出力データ欄３３の絶対座標値出力欄３６に表示され、ユーザはこの値を確認することができる。
【００８１】
［ＧＡ探索の詳細］
次に、ＧＡ探索を用いる場合について説明する。
本実施の形態では、遺伝的アルゴリズムを用いて、処理にかかる計算時間を短縮する方法について述べる。被写体が箱のように直線で構成されているものは被写体の再現に必要となる計測観測点の数は少なく、１０点程度の任意観測点を取った場合でも、高速に標定を行うことができる。しかし、被写体がボールや人間の顔のように球面や自由曲面などの滑らかな曲面で構成されている場合は、その曲面を再現するために数多くの計測観測点が必要となる。このような場合、たとえ任意観測点の数が１０点程度でも、計算にかかる時間は大幅に増大する。さらに、任意観測点数が増加した場合は、全解探索に係る組合せ数が指数関数的に増加し、いわゆる組合せの爆発と呼ばれる状態になり、さらなる計算時間の増大を招く結果となる。ここで、全解探索とは任意観測点の全ての組合せについて標定、即ち、解を求め、その解の中で最も優れた解を探索する手法を言う。
【００８２】
多くの計測観測点数を有する場合と、組合せ数が多い場合において、前者は計算量の問題から、後者は全解探索の組合せ数の問題から、処理時間に問題が生じる。そこで、本実施の形態では、基準点以外の計測観測点と任意観測点からなる組合せを複数個任意に作り、残差が一定の範囲に収束するまでこれらに、交叉、突然変異といった遺伝的アルゴリズムにおける遺伝操作を繰り返すことにより残差を収束させる方法を採用する。
この方法を用いれば、計測観測点数が多い場合でも、全ての計測観測点を使用する必要がなくなり、計算時間の軽減を実現することができる。同時に任意観測点数が多くこれらの組合せ数が非常に多い場合でも、同様の理由（任意観測点の全組合せについて標定を行う必要がない）から、解探索時間を大幅に縮小できると共に、必要な精度を満たす標定結果を得ることができる。
【００８３】
遺伝的アルゴリズムは、固体集団において、交叉、淘汰、突然変異といった作用を行いながら、生存競争の末に環境に対する適合度が高い固体が生き残っていくというダーウィニズム進化論に端を発する。これによれば、より環境に適した者が淘汰において生き残る確率が高く、生き残った者同士が交叉することにより、次世代により優れた形質を残すとともに、突然変異によって、新しい形質を獲得する。仮に突然変異によって劣った形質を獲得した場合、その固体は淘汰されてしまうので、結果的に突然変異によってより優れた形質を獲得したものが生き残り、その子孫が増え、固体集団全体の適合度は向上する。
【００８４】
突然変異により、交叉のみでは得られない遺伝子を発生させることができる。数学的な言い方をすれば、突然変異をすることにより、局所解を回避し最適解を得ることができる。このプロセスをアルゴリズム化したのが遺伝的アルゴリズムである。遺伝的アルゴリズムでは対象を何らかの方法で遺伝子（遺伝子コードとも呼ばれる）で表現し、評価関数を用いて遺伝子の適合度を求める。評価関数は自然界で言えば自然環境に当たる。この自然環境に対する適合度が高い遺伝子を持った個体ほど生き延びて子孫を残す確率が高くなり、適合度が低い遺伝子を持った個体は子孫を残す確率が低くなり、その結果、全体として、優れた形質を持った次の世代が形成される。
遺伝的アルゴリズムの工学への適用は盛んに研究されており、ジェットエンジンの設計の最適化や、コジェネーションの最適化、道路整備順位の決定などの、数多くの組合せ最適化問題に適用されている。
【００８５】
図１５は基準点以外の計測観測点及び任意観測点の組合せを表現した図である。本実施の形態では計測観測点及び任意観測点をそれぞれ１０点取った。遺伝子は２０個の遺伝子座５８ａ、５８ｂ、・・・５８ｔからなり、それぞれの遺伝子座には０または１の２つの数値が割り振られている。遺伝子座とは遺伝子の構成単位である。これらの遺伝子座にＫ１からＫ１０、Ｐ１からＰ１０までの計測観測点及び任意観測点を対応させることにより、それぞれの計測観測点、任意観測点に０か１の数値を割り振る。計測観測点または任意観測点に１が対応しているときは、その点は標定を行う点の組に採用され、０が対応しているときは採用されない。例えば、Ｋ１、Ｋ２、Ｋ１０、Ｐ２、Ｐ１０の遺伝子座に１が割り振られ、その他の遺伝子座には０が割り振られた場合、Ｋ１、Ｋ２、Ｋ１０、Ｐ２、Ｐ１０が標定を行う計測観測点と任意観測点からなる組合せとして選択されたことを意味する。
本実施の形態では、これらの遺伝子の適合度は、当該遺伝子の標定から得られる残差の逆数とした。即ち、残差が小さいほど適合度は大きくなる。残差は実施例１と同じ方法で求めた。また、適合度の取り方は、これに限るものではなく、標定の精度が高い遺伝子ほど適合度が大きくなるものであれば良い。
【００８６】
遺伝的操作は交叉と突然変異を行った。
交叉は、適合度の高い遺伝子を２つ選択し、２点交叉を行った。２点交叉とは、例えば図１５の第２の遺伝子座と第３の遺伝子座の間の点５１と、第９の遺伝子座と第１０の遺伝子座の間の点５２に挟まれた領域にある遺伝子のデータを２つの遺伝子の間で交換することである。前記点５１と点５２の選び方は任意の場合もあるし、固定してある場合もある。交叉方法として、この他に１点交叉や３点交叉などを行っても良い。
突然変異は、ある一定の確率で任意の遺伝子中の０と１をいくつか反転させることにより行った。これにより、交叉のみでは、生み出せない新しい遺伝子を形成し、局所最適解に陥らないようにする。
本実施の形態では基準点（実測値を有する点）以外の計測観測点、即ち計測観測点も交叉・突然変異の対象とし、任意観測点と同等に取り扱う。そのため、前記計測観測点が交叉・突然変異の過程で淘汰される場合がある。ところで、本実施の形態のアルゴリズムにより標定が行われ、相互標定における標定要素ω１、φ１、κ１、ω２、φ２、κ２及び、絶対標定における標定要素Ω、Ф、К及びモデルの縮尺などが求まると、これらの標定要素を用いて、淘汰された計測観測点の実空間での３次元座標値を計算することができる。このため、標定作業で計測観測点が淘汰され、その座標値が計算されなかった場合でも、標定結果を用いてそれらの座標値を計算することができる。
【００８７】
図１６は遺伝的操作を繰り返す毎に、遺伝子の適合度が上昇し、ある値に収束するところを示している。点５４は第一世代の各遺伝子の適合度の最大値である。
遺伝的操作を行う毎に、各遺伝子の適合度を計算する。それらの適合度の最大値は、世代を経る毎に上昇する。そして、ある程度世代を経ると、その最大値はほぼ一定の値を示すようになる。このとき、適合度が収束したと判断する。本実施の形態では図１６の点５６に示したように、ある計算時間±ｔ、例えば、±３分間における各遺伝子の適合度の最大値が±１パーセント以内に収まったとき、収束したと判断した。適合度の収束条件はこれに限らず、例えば、所定の世代に渡って、適合度の最大値が所定のパーセント以内に収まったときを収束と判断したり、また、各遺伝子の適合度の最大値ではなく、平均値を用いたりしても良い。
【００８８】
図１７は遺伝的アルゴリズムを用いた標定手順を示したフローチャートである。
まず、データ記憶部７７から、基準点、計測観測点及び任意観測点の機械座標値やカメラデータを取得する（ステップ４２）
次に、任意観測点と基準点以外の計測観測点、即ち計測観測点とからなる組合せを表す第１世代の遺伝子を複数個作成する。（ステップ４３）。
次に、基準点と遺伝子に係る計測観測点及び任意観測点を用いて、内部標定（ステップ４４）し、相互標定（ステップ４５）し、絶対標定（ステップ４６）する。これらの操作は全ての遺伝子に対して行う。次に、各遺伝子の適合度を求める（ステップ４７）。適合度の収束を判断し（ステップ４８）、適合度が収束したならば（ステップ４８：Ｙ）、遺伝的アルゴリズムを終了する。
【００８９】
次に、収束解を得た際、相互標定により算出された各座標軸回りの回転角ω１、φ１、κ１、ω２、φ２、κ２及び、絶対標定により算出された各座標軸回りの回転角Ω、Ф、Кと縮尺を用いて、標定に係る組合せに漏れた計測観測点の実空間での三次元座標値を計算し、全ての計測観測点の絶対座標値を得る（ステップ５１）。そして、標定結果を表示する（ステップ５２）。適合度が収束していないならば（ステップ４８：Ｎ）、交叉を行う（ステップ４９）い、突然変異を行って（ステップ５０）、次の世代の遺伝子を生成する。ステップ４４からステップ５０までを、適合度が収束するまで行う。
写真測量部７３は、以上により得られた計測観測点等の絶対座標値をデータ記憶部７７に出力する。
この方法は、計測観測点数多い場合、また任意観測点が多い場合、あるいは、その両方である場合に、システム全体の処理時間を軽減するのに適している。
【００９０】
以上で写真測量が終了し、次に得られた絶対座標値から立体モデルを生成しＶＲＭＬファイルを作成する。
図４のメインメニュー画面でＶＲＭＬサブメニュー１０９をクリックすると、図１８に示したサブメニュー画面１２５が表示部３に表示される。
サブメニュー画面１２５は、中央に画像表示部１３１を備えている。サブメニュー画面１２５の上部には、３Ｄデータロードボタン１２６があり、ユーザがこのボタンをクリックすると、ステレオペア画像の左画像が表示される。画像表示部１３１に表示された画像には、写真測量で絶対座標値が既に計算されている計測観測点と基準点が画像にオーバーラップされて表示される。計測観測点と基準観測点は、それぞれ別の色で着色された丸型のマーカにより、ユーザに明示される。
【００９１】
なお、本実施の形態では、計測観測点をＫ１〜Ｋ４、基準点をＴ１〜Ｔ３としたが、説明の便宜上計測観測点Ｋ５、Ｋ６、及び基準観測点Ｔ４〜Ｔ６を更に追加して説明する。
画像表示部１３１の上部には、拡大ボタン１２９、縮小ボタン１３０があり、ユーザは、これらのボタンをクリックすることにより、画像の拡大縮小を行うことができる。これによって、例えば、２つの点が近接して識別しにくい場合などのときは、画像を拡大して識別を容易にすることができる。
また、画像表示部１３１は、垂直スクロールバー１３２と、水平スクロールバー１３３を備えており、ユーザは、これらのスクロールバーを用いて画像をスクロールすることができる。
【００９２】
サブメニュー画面１２５は、更にポリラインボタン１３４、ポリゴンボタン１３５、確定ボタン１３６を備えている。
ユーザは、ワイヤフレームモデルを作成したいときは、ポリラインボタンをクリックした後、基準点又は計測観測点（以下まとめて構成点と記す）を２点以上クリックして選択し、確定ボタン１３６をクリックする。選択した構成点は、構成メンバとして構成メンバ表示欄１３７にポリゴンポリラインの別と共に表示される。なお、構成メンバ表示欄１３７は、スクロールバー１３８によってスクロールすることができる。
【００９３】
例えば、ポリラインの構成メンバとしてＴ１、Ｔ２、Ｔ３の順番でクリックしたとすると、立体モデルは、線分Ｔ１Ｔ２と線分Ｔ２Ｔ３であらわされるワイヤフレームモデルとなる。
【００９４】
ユーザは、サーフェスモデルを作成したいときは、ポリゴンボタン１３５をクリックした後、構成点を３点以上クリックして選択した後、確定ボタン１３６をクリックする。選択した構成点は、構成メンバ表示欄１３７に表示される。
例えば、ユーザが、Ｋ１、Ｋ２、Ｋ３、Ｋ４、Ｋ１の順番でクリックしたとすると、この４点で張られる面が作成される。これらの４点が同一平面状にない場合は、２つの三角形、例えば、Ｋ１、Ｋ２、Ｋ３を頂点とする三角形と、Ｋ１、Ｋ３、Ｋ４を頂点とする三角形が生成される。
【００９５】
本実施の形態では、ポリゴンの構成メンバとしてＫ１、Ｋ２、Ｋ３、Ｋ４、Ｋ１とＫ１、Ｋ４、Ｋ５、Ｋ６、Ｋ１を選択し、ポリラインとしてＴ３、Ｔ１、Ｔ２、Ｔ４とＴ１、Ｔ５及びＴ２、Ｔ６を選択した。
また、構成点を選択すると、構成点の色が変化すると共に、選択された構成点同士を着色された線により連結し、ポリライン、ポリゴンが生成される様が表示されるようになっている。このため、ユーザは、目標通りのポリライン、ポリゴンが生成されなかった場合は、その構成メンバを選択し直すなどして、ポリライン、ポリゴンを編集することができるようになっている。
なお、本実施の形態では、立体モデルの一部をワイヤフレームモデルによって形成し、他の部分をサーフェスモデルによって形成するといったように、ワイヤフレームモデルとサーフェスモデルを混合して立体モデルを作成することができる。
【００９６】
構成メンバの選択が終了すると、ユーザはサブメニュー画面１２５の上部にあるＶＲＭＬファイル出力ボタン１２７をクリックする。するとファイル名を設定するダイアログボックスが画面に表示されるので、ユーザは、適当なファイル名を設定する。
すると、サブメニュー画面表示部８４は、これらの構成メンバと、ポリライン、ポリゴンの別の情報は、３Ｄモデル構成点取得部８５によりＶＲＭＬファイル生成出力部８６に送られる。
ＶＲＭＬファイル生成出力部８６は、３Ｄモデル構成点取得部８５から受け取ったデータによって、被写体の立体モデルをＶＲＭＬで記述しＶＲＭＬファイルを出力する。
そして、ユーザは、終了ボタン１２８をクリックしてサブメニュー画面１２５を終了する。するとサブメニュー画面１２５が消え、メインメニュー画面９１に戻るので、ユーザはファイル１０４→「閉じる」をクリックして３ＤＣＧ作成支援プログラム７を終了する。
【００９７】
図１９は、ＶＲＭＬビューア８によってＶＲＭＬファイルに記述された立体モデルを表示部３に表示したものである。Ｋ１、Ｋ２、Ｋ３、Ｋ４、Ｋ１、を構成点とするポリゴン１４１とＫ１、Ｋ４、Ｋ５、Ｋ６、Ｋ１を構成点とするポリゴン１４２で構成されたサーフェスモデルと基準点Ｔ１〜Ｔ６を構成点とするワイヤフレームモデルが表示されている。
図示しないがＶＲＭＬビューア８には、回転ボタン、移動ボタンなどの各種ボタンが備えられており、ユーザはこれらのボタンをクリックすることにより、立体モデルを回転させたり移動させることができる。
なお、本実施の形態では、ＶＲＭＬビューア８は一般に販売されている汎用品を使用した。また、ＶＲＭＬビューア８は、３ＤＣＧプログラム７の一部として構成することも可能である。
【００９８】
図２０〜図２２は、本発明の実施例を示したものである。
図２０は、メインメニュー画面にステレオペア画像が表示されたところを示している。被写体は、パーソナルコンピュータ（以下ＰＣ）のディスプレイとその右隣にあるＰＣ本体及びＰＣ本体の右に置かれた箱などである。
本実施例では、ＰＣ本体を立体モデル化した。箱の上面の長方形の角を基準点とした。
ＰＣ本体の角部を計測観測点とし、その他画面全体にバランスよく任意観測点をとった。
【００９９】
図２１は、サブメニュー画面に表示された左写真上でＰＣ本体の４隅に示された計測観測点をクリックしポリゴンを形成したところである。画面右側に表示されているＸ、Ｙ、Ｚ値は、それぞれの構成点１、２、３・・・（基準点と計測観測点）の絶対座標値を示している。
図２２は、サブメニュー画面で作成した立体モデルを記述したＶＲＭＬファイルをＶＲＭＬビューアを用いて表示したところを示している。本実施例では、ＰＣ本体はポリゴンによりサーフェスモデルとして表現されている。
ユーザは、表示された立体モデルを画面の中で様々な角度及び距離から観察することができる。
【０１００】
図２３は、本実施の形態の写真測量部７３の測量精度をテストした際の実験データである。
本実験では、被写体から７．５ｍの距離から並行撮影によりステレオ写真を撮影し、本実施例に示した方法で解析したものである。
計測観測点Ｋ１からＫ４までの各点間の距離の実測値と標定結果を比較している。Ｋ３とＫ４の間の実際の距離が１．８９メートルであるのに対し、標定結果が約１．９７メートルとなり、実際の距離より約４．４パーセント長くなった他は、誤差が±０．２パーセント程度に収まっている。
【０１０１】
本実施の形態では、ステレオペア画像に撮影された被写体をワイヤフレームモデルまたはサーフェスモデルとして表現したが、このモデルに被写体の画像をテクスチャとして貼り付けることもできる。
このように立体モデルに模様や写真（テクスチャ）を貼り付ける手法はテクスチャマッピングと呼ばれている。立体モデルにテクスチャを貼り付けることで立体モデルを仮想空間中でより本物らしくリアルに表現することができる。
【０１０２】
従来の３次元コンピュータグラフィックスでテクスチャマッピングを行う場合は、立体モデルの正面、側面、上面などから見た場合のテクスチャを用意しておき、それぞれのテクスチャを立体モデルの正面、側面、上面などに貼り付けていた。
しかし、本実施の形態では、立体モデルを作成するのに使用した画像の３次元情報が標定により既に分かっているので、その３次元座標値に対応する２次元座標値（本実施の形態では、２次元ピクセル座標値とした）から画像をテクスチャとして切り取り、その切り取った画像をそのまま立体モデルに貼り付けることも可能である。即ち、ステレオペア画像の被写体から生成した立体モデルをテクスチャマッピングする場合、被写体の正面画像、側面画像などは必要なく、撮影された画像をそのまま立体モデルに貼り付ければよい。
【０１０３】
また、本実施の形態では、計測観測点と任意観測点の全てを一括して内部標定した後、任意観測点の組合せを作成したが、例えば、任意観測点を組合せてから計測観測点と前記組合せに係る任意観測点を内部標定する構成にしても良いし、または、任意観測点の組合せをあらかじめ全て作成しておき、これらの各々の組合せについて標定する構成にするなどのいろいろなバリエーションが考えられる。任意観測点の全ての組合せについて標定し、その中から最適なものを求める標定方法は全て本発明の範疇に入る。
【０１０４】
また、本実施の形態では、３ＤＣＧ作成支援プログラム７は、固定ディスク６に記憶したが、これは、ＲＯＭやメモリカードなど他の記憶媒体に記憶しても良い。
また、中央処理装置１、画像データ９、３ＤＣＧ作成支援プログラム７などはそれぞれ物理的に分散して配置し、これらをネットワークを介して接続する構成にすることもできる。
前記ネットワークとしては、インターネット、ＬＡＮ（ローカル・エリア・ネットワーク）、ＷＡＮ（ワイド・エリア・ネットワーク）や、パソコン通信ネットワークまたは衛星通信を介したネットワークなどがある。
【０１０５】
また、３ＤＣＧ作成支援プログラム７をサーバ装置に置き、ＶＲＭＬビューア８をクライアント装置に置く構成にすることもできる。
この場合、ユーザは、基準点、計測観測点、任意観測点のステレオペア画像上での２次元座標値とカメラデータを取得するユーザインターフェースをクライアント装置に備え、このユーザインターフェースで取得したこれらのデータをネットワークを介してサーバ装置に送信する。
サーバ装置は、これらの点に対して写真測量を行いＶＲＭＬファイルを作成してクライアント装置に送信する。クライアント装置はＶＲＭＬビューアを備えており、ユーザはＶＲＭＬビューアを用いて被写体の立体モデルをディスプレイ上に表示することができる。
【０１０６】
また、本実施の形態では、基準点の実測値を用いて計測観測点の絶対座標値を算出したが、単に被写体の立体モデルを形成し、立体モデルの実空間での大きさを表現する必要がない場合は、適当な縮尺にて拡大縮小した相対値を基準点の座標値として用い、被写体と相似な立体モデルを形成してもよい。
【０１０７】
また、本実施の形態では、立体モデルを記述する言語としてＶＲＭＬを用いたが、これに限定するものではなく、例えば、ＤＸＦ（Ｄｒａｗｉｎｇ  Ｉｎｔｅｒｃｈａｎｇｅ  Ｆｉｌｅ）などの他のファイル形式で記述する構成にしてもよい。なお、ＤＸＦとは、様々な種類のＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）で広く共通に使用されているファイル形式である。
【０１０８】
本実施の形態の効果としては、以下のようなものがある。
従来の写真測量に必要であった、専門知識や熟練を排除し、全解探索またはＧＡ探索及び、メインメニュー画面９１を用いて一般のユーザでも容易に写真測量を行うことができる。
また、従来の写真測量に必要であった高価で精密な機材は必要なく、ユーザは汎用のデジタルカメラとＰＣなどにより写真測量を行うことができる。
更に、ステレオペア画像から被写体上の点（計測観測点）の３次元座標値がわかるので、これらの点を利用して、容易に被写体の立体モデルを形成することができる。
更に、形成された立体モデルを記述するＶＲＭＬファイルを自動生成するので、ユーザはＶＲＭＬに関する知識、熟練がなくても、立体モデルを表示部３に表示することができる。
また、ユーザは、写真測量を行う際に、全解探索とＧＡ探索の何れかを用途にあわせて選択することができ、立体モデルの作成に必要な精度のデータを短時間で計算することができる。
【０１０９】
【発明の効果】
本発明によれば、一般のユーザが容易に被写体の写真測量を行い、当該被写体の立体モデルを作ることのできる３次元コンピュータグラフィックス作成支援装置、３次元コンピュータグラフィックス作成支援方法、及び３次元コンピュータグラフィックス作成支援プログラムを提供することができる。
【図面の簡単な説明】
【図１】本実施の形態にかかる３次元コンピュータグラフィックス作成支援装置の構成を示した図である。
【図２】３ＤＣＧ作成支援プログラム８の構成を示した図である。
【図３】被写体のステレオペア画像から、該被写体の立体モデルを記述したＶＲＭＬファイルを作成するまでの工程を示したフローチャートである。
【図４】メインメニュー画面表示部によって表示部に表示されるメインメニュー画面を示した図である。
【図５】各ドロップダウンメニューの項目を示した図である。
【図６】カメラデータ入力画面を示した図である。
【図７】基準点座標入力画面を示した図である。
【図８】入力データ欄を示した図である。
【図９】出力データ欄を示した図である。
【図１０】機械座標系と写真座標系を説明するための図である。
【図１１】写真測量部の動作を説明するためのフローチャートである。
【図１２】Ｃｏｍｂ（ｉ、ｊ）関数を用いた標定手順を表すフローチャートである。
【図１３】Ｃｏｍｂ（ｉ、ｊ）関数の動作を表すフローチャートである。
【図１４】Ｃｏｍｂ（ｉ、ｊ）関数の動作を表に表したものである。
【図１５】ＧＡ探索における基準点以外の計測観測点及び任意観測点の組合せを表現した図である。
【図１６】遺伝的操作を繰り返す毎に、遺伝子の適合度が上昇し、ある値に収束するところを示した図である。
【図１７】遺伝的アルゴリズムを用いた標定手順を示したフローチャートである。
【図１８】サブメニュー画面表示部によって表示部に表示されるサブメニュー画面を示した図である。
【図１９】ＶＲＭＬビューアによってＶＲＭＬファイルに記述された立体モデルを表示部に表示したところを示した図である。
【図２０】メインメニュー画面にステレオペア画像が表示されたところを示している。
【図２１】サブメニュー画面に表示された左写真上でＰＣ本体の４隅に示された計測観測点をクリックしポリゴンを形成したところを示した図である。
【図２２】サブメニュー画面で作成した立体モデルを記述したＶＲＭＬファイルをＶＲＭＬビューアを用いて表示したところを示した図である。
【図２３】写真測量部の測量精度をテストした際の実験データを示した図である。
【符号の説明】
１  中央処理部
２  データ入出力部
３  表示部
４  キーボード
５  マウス
６  固定ディスク
７  ３ＤＣＧ作成支援プログラム
８  ＶＲＭＬビューア
９  画像データ
１０  記憶部
２３  カメラデータ欄
２６  基準点・計測観測点欄
２７  任意観測点欄
２８  平面基準点欄
２９  標高基準点欄
３１  入力データ欄
３３  出力データ欄
３６  絶対座標値出力欄
４０  機械座標系上での座標値
４１  写真座標系上での座標値
５１  ２点交叉の交叉点
５２  ２点交叉の交叉点
７２  総合インターフェース部
７３  写真測量部
７４  ＶＲＭＬファイル作成部
７５  画像データ取得部
７６  メインメニュー画面表示部７６
７７  データ記憶部
７８  内部標定部
７９  最適解探索部
８０  観測点選定部
８１  相互標定部
８２  絶対標定部
８３  評価・判断部
８４  サブメニュー画面表示部８４
８５  ３Ｄモデル構成点取得部
８６  ＶＲＭＬファイル生成出力部
８７  ＶＲＭＬファイル
９１  メインメニュー画面
９２  左画像表示部
９３  右画像表示部
９４  垂直スクロールバー
９５  垂直スクロールバー
９６  水平スクロールバー
９７  水平スクロールバー
９８  座標表示欄
９９  座標表示欄
１００  拡大ボタン
１０１  縮小ボタン
１０２  拡大ボタン
１０３  縮小ボタン
１０４  ファイルメニュー
１０５  ポイントメニュー
１０６  カメラデータ
１０７  データ記憶部メニュー
１０８  写真測量メニュー
１０９  ＶＲＭＬサブメニュー
１１０  カメラデータ入力画面
１２２  基準点座標入力画面
【図１】
0004688309.tif 000002
【図２】
0004688309.tif 000003
【図３】
0004688309.tif 000004
【図４】
0004688309.tif 000005
【図５】
0004688309.tif 000006
【図６】
0004688309.tif 000007
【図７】
0004688309.tif 000008
【図８】
0004688309.tif 000009
【図９】
0004688309.tif 000010
【図１０】
0004688309.tif 000011
【図１１】
0004688309.tif 000012
【図１２】
0004688309.tif 000013
【図１３】
0004688309.tif 000014
【図１４】
0004688309.tif 000015
【図１５】
0004688309.tif 000016
【図１６】
0004688309.tif 000017
【図１７】
0004688309.tif 000018
【図１８】
0004688309.tif 000019
【図１９】
0004688309.tif 000020
【図２０】
0004688309.tif 000021
【図２１】
0004688309.tif 000022
【図２２】
0004688309.tif 000023
【図２３】
0004688309.tif 000024