(57)【特許請求の範囲】
【請求項１】
複数の画像のそれぞれの撮像位置を算出する処理装置であって、
前記複数の画像の中から選択されて撮像位置が算出された画像を含む選択画像セットを記憶する記憶部と、
前記選択画像セットに含まれる画像との間における画像中の対応点に基づいて、前記複数の画像のうち未選択画像についての撮像位置候補を複数算出する算出部と、
前記未選択画像についての複数の撮像位置候補のうち、対応点の適合度が最大である最適撮像位置を選択する選択部と、
前記最適撮像位置の前記適合度と他の撮像位置候補の前記適合度とに基づいて、前記未選択画像を前記選択画像セットに追加するか否かを決定する決定部と、
を備える処理装置。
【請求項２】
前記決定部は、前記最適撮像位置の前記適合度と、前記複数の撮像位置候補のうち次善の撮像位置候補の前記適合度との相違が予め定められた基準以上であることを必要条件として、前記未選択画像を前記選択画像セットに追加することを決定する請求項１に記載の処理装置。
【請求項３】
前記決定部は、前記最適撮像位置の前記適合度と、前記複数の撮像位置候補のうち次善の撮像位置候補の前記適合度との相違が予め定められた基準以上であり、かつ、前記最適撮像位置の前記適合度が予め定められた閾値以上であることを必要条件として、前記未選択画像を前記選択画像セットに追加することを決定する請求項２に記載の処理装置。
【請求項４】
前記複数の画像の中から画像中の対応点に基づいて２以上の画像を選択して初期の前記選択画像セットを生成する生成部を更に備える請求項１から３のいずれか一項に記載の処理装置。
【請求項５】
前記算出部は、
前記未選択画像についての撮像位置候補の初期値を複数算出する初期値算出部と、
複数の前記撮像位置候補の各初期値から局所解へと撮像位置を収束させる収束部と、
を有する請求項１から４のいずれか一項に記載の処理装置。
【請求項６】
前記収束部は、予め定められた誤差の範囲で他の候補と同一の撮像位置に収束した重複する撮像位置候補を削除する請求項５に記載の処理装置。
【請求項７】
前記初期値算出部は、前記選択画像セットに含まれる画像との間における画像中の対応点に基づいて、前記未選択画像について撮像位置の近似解を算出して撮像位置の候補の初期値とする請求項５または６に記載の処理装置。
【請求項８】
前記初期値算出部は、前記複数の撮像位置候補の各初期値のうち前記適合度が最大となる初期値の前記適合度と、一の前記撮像位置候補における初期値の前記適合度との相違が予め定められた基準以上である場合に、前記一の撮像位置候補を削除する請求項５から７のいずれか一項に記載の処理装置。
【請求項９】
前記複数の画像のうち前記選択画像セットに含まれない画像の中から前記未選択画像を順次選択して前記算出部へと提供する提供部を更に備え、
前記提供部は、前記選択画像セットに追加しないことが決定された画像を、他の画像が前記選択画像セットに追加された後に再び前記未選択画像として選択する
請求項１から８のいずれか一項に記載の処理装置。
【請求項１０】
前記提供部は、前記複数の画像のうち前記選択画像セットに含まれない全ての画像について、前記選択画像セットに追加しないことが決定された後に他のいずれの画像も前記選択画像セットに追加されなかったことに応じて、前記未選択画像の選択処理を終了する請求項９に記載の処理装置。
【請求項１１】
前記未選択画像が新たに前記選択画像セットに追加されたことに応じて、前記選択画像セットに含まれる各画像の撮像位置を調整する調整部を更に備える請求項１から１０のいずれか一項に記載の処理装置。
【請求項１２】
前記選択画像セットに含まれるそれぞれの画像および撮像位置に基づいて、撮像対象の３次元形状を復元する復元部を更に備える請求項１から１０のいずれか一項に記載の処理装置。
【請求項１３】
複数の画像のそれぞれの撮像位置を算出する処理装置であって、
前記複数の画像の中から選択されて撮像位置が算出された画像を含む選択画像セットを記憶する記憶部と、
前記選択画像セットに含まれる画像との間における画像中の対応点に基づいて、前記複数の画像のうち未選択画像についての撮像位置候補の初期値を複数算出する初期値算出部と、
複数の前記撮像位置候補の各初期値から局所解へと撮像位置を収束させる収束部と、
局所解へと収束させた複数の撮像位置候補の中から対応点の適合度が最大の最適撮像位置を選択する選択部と、
前記最適撮像位置における対応点の適合度に基づいて、前記未選択画像を前記選択画像セットに追加するか否かを決定する決定部と、
を備える処理装置。
【請求項１４】
複数の画像のそれぞれの撮像位置を算出する処理方法であって、
前記複数の画像の中から選択されて撮像位置が算出された画像を含む選択画像セットを記憶する記憶段階と、
前記選択画像セットに含まれる画像との間における画像中の対応点に基づいて、前記複数の画像のうち未選択画像についての撮像位置候補を複数算出する算出段階と、
前記未選択画像についての複数の撮像位置候補のうち、対応点の適合度が最大である最適撮像位置を選択する選択段階と、
前記最適撮像位置の前記適合度と他の撮像位置候補の前記適合度とに基づいて、前記未選択画像を前記選択画像セットに追加するか否かを決定する決定段階と、
を備える処理方法。
【請求項１５】
複数の画像のそれぞれの撮像位置を算出する処理方法であって、
前記複数の画像の中から選択されて撮像位置が算出された画像を含む選択画像セットを記憶する記憶段階と、
前記選択画像セットに含まれる画像との間における画像中の対応点に基づいて、前記複数の画像のうち未選択画像についての撮像位置候補の初期値を複数算出する初期値算出段階と、
複数の前記撮像位置候補の各初期値から局所解へと撮像位置を収束させる収束段階と、
局所解へと収束させた複数の撮像位置候補の中から対応点の適合度が最大の最適撮像位置を選択する選択段階と、
前記最適撮像位置における対応点の適合度に基づいて、前記未選択画像を前記選択画像セットに追加するか否かを決定する決定段階と、
を備える処理方法。
【請求項１６】
コンピュータに、請求項１から１３のいずれか一項に記載の処理装置として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理装置、処理方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、異なる位置および向きから被写体を撮像した複数の２次元画像に基づき、当該２次元画像を撮像した撮像装置の当該位置および向きを算出し、被写体の３次元形状を復元する技術（ＳｆＭ：Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）およびその関連技術が知られている（例えば、特許文献１〜４、非特許文献１〜３等参照）。
［特許文献１］  特開２０１３−２１８３９６号公報
［特許文献２］  特開２０１１−８５０７号公報
［特許文献３］  特開２０１０−１０２５０１号公報
［特許文献４］  国際公開第２０１２／０３２７４７号
［非特許文献１］  「Bundler: Structure from Motion (SfM) for Unordered Image Collections」、［２０１４年１２月８日検索］、インターネット＜URL : http://www.cs.cornell.edu/~snavely/bundler/＞
［非特許文献２］  「Bundler Structure from Motion Toolkit」、［２０１４年１２月８日検索］、インターネット＜URL : https://github.com/snavely/bundler_sfm＞
［非特許文献３］  Batra, D. ; Nabbe, B. ; Hebert, M. ; 「An Alternative Formulation for Five Point Relative Pose Problem」、Motion and Video Computing, 2007. WMVC '07. IEEE Workshop、２００７年２月
【発明の概要】
【発明が解決しようとする課題】
【０００３】
このような技術は、大規模かつ局所解の多い非線形最適化問題に帰着されるので、矛盾した３次元画像を形成してしまうことが多かった。また、矛盾した撮像位置を採用すると、当該矛盾した撮像位置に基づいて他の画像の撮像位置を算出することになり、矛盾が連鎖してしまって安定に動作させることが困難であった。また、複数の２次元画像において対応の取れる複数の対応点が広範囲で検出されることが望ましいので、広角レンズおよび魚眼レンズ等の特殊なカメラを用いて当該複数の２次元画像を取得していた。したがって、画角の狭いレンズを有する一般的なカメラおよび携帯端末等で撮像された２次元画像を用い、頑健でかつ現実的な計算時間で処理できる方法および装置が望まれていた。
【課題を解決するための手段】
【０００４】
本発明の第１の態様においては、複数の画像のそれぞれの撮像位置を算出する処理装置であって、複数の画像の中から選択されて撮像位置が算出された画像を含む選択画像セットを記憶する記憶部と、選択画像セットに含まれる画像との間における画像中の対応点に基づいて、複数の画像のうち未選択画像についての撮像位置候補を複数算出する算出部と、未選択画像についての複数の撮像位置候補のうち、対応点の適合度が最大である最適撮像位置を選択する選択部と、最適撮像位置の適合度と他の撮像位置候補の適合度とに基づいて、未選択画像を選択画像セットに追加するか否かを決定する決定部と、を備える処理装置、当該処理装置による処理方法、および当該処理装置として動作させるプログラムを提供する。
【０００５】
本発明の第２の態様においては、複数の画像のそれぞれの撮像位置を算出する処理装置であって、複数の画像の中から選択されて撮像位置が算出された画像を含む選択画像セットを記憶する記憶部と、選択画像セットに含まれる画像との間における画像中の対応点に基づいて、複数の画像のうち未選択画像についての撮像位置候補の初期値を複数算出する初期値算出部と、複数の撮像位置候補の各初期値から局所解へと撮像位置を収束させる収束部と、局所解へと収束させた複数の撮像位置候補の中から対応点の適合度が最大の最適撮像位置を選択する選択部と、最適撮像位置における対応点の適合度に基づいて、未選択画像を選択画像セットに追加するか否かを決定する決定部と、を備える処理装置、当該処理装置による処理方法、および当該処理装置として動作させるプログラムを提供する。
【０００６】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【０００７】
【図１】本実施形態に係る処理装置１００の構成例を示す。
【図２】本実施形態に係る処理装置１００の動作フローを示す。
【図３】多くの対応点が存在する画像を取得する例を示す。
【図４】図３の例と比較して対応点が少ない画像を取得する例を示す。
【図５】本実施形態に係る撮像装置１０が被写体２０を撮像する場合の空間的配置の一例を示す。
【図６】本実施形態に係るデータ処理装置１００として機能するコンピュータ１９００のハードウェア構成の一例を示す。
【発明を実施するための形態】
【０００８】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【０００９】
図１は、本実施形態に係る処理装置１００の構成例を示す。処理装置１００は、異なる位置および向きから被写体を撮像した複数の画像に基づき、当該複数の画像のそれぞれの撮像位置を算出する。処理装置１００は、画像毎に当該画像を撮像した撮像装置の撮像位置および向きの候補を複数算出し、算出結果に応じて被写体の３次元形状の復元に用いるか否かを判断する。処理装置１００は、取得部１１０と、記憶部１２０と、生成部１３０と、算出部１４０と、選択部１５０と、決定部１６０と、調整部１７０と、提供部１８０と、復元部１９０とを備える。
【００１０】
取得部１１０は、複数の画像を取得する。取得部１１０は、異なる撮像位置および向きから被写体を撮像した２次元画像を取得する。取得部１１０は、予め定められた形式でデータベース等の外部の記憶装置に記憶された複数の画像のデータを読み出して取得してよい。また、取得部１１０は、ネットワーク等に接続され、当該ネットワークを介して複数の画像を取得してもよい。また、取得部１１０は、撮像装置に接続され、当該撮像装置が撮像した２次元画像を取得してよく、これに代えて、撮像装置の内部に組み込まれて２次元画像を取得してもよい。取得部１１０は、取得した複数の画像を記憶部１２０に記憶する。
【００１１】
記憶部１２０は、取得部１１０に接続され、受けとった複数の画像を記憶する。また、記憶部１２０は、複数の画像の中から選択されて撮像位置が算出された画像を含む選択画像セットを記憶する。また、記憶部１２０は、処理装置１００が複数の画像を処理する過程で生成する（または利用する）中間データ、算出結果、およびパラメータ等をそれぞれ記憶してもよい。また、記憶部１２０は、処理装置１００内の各部の要求に応じて、記憶したデータを要求元に供給してよい。例えば、記憶部１２０は、生成部１３０の要求に応じて記憶した複数の画像を当該生成部１３０に供給する。
【００１２】
生成部１３０は、複数の画像の中から画像中の対応点に基づいて２以上の画像を選択して初期の選択画像セットを生成する。例えば、生成部１３０は、記憶部１２０に接続され、記憶部１２０から読み出した複数の画像のそれぞれにおける画像中の対応点を取得し、当該対応点の数に応じて２以上の画像を選択する。また、生成部１３０は、生成した初期の選択画像セットに含まれる画像の相対位置と、対応点の３次元空間上の座標を算出する。生成部１３０は、生成した初期の選択画像セットの情報を記憶部１２０に記憶する。
【００１３】
算出部１４０は、記憶部１２０に接続され、読み出した選択画像セットに含まれる画像との間における画像中の対応点に基づいて、複数の画像のうち未選択画像についての撮像位置候補を複数算出する。算出部１４０は、生成部１３０に接続され、生成部１３０が初期の選択画像セットを生成した通知を受けとったことに応じて、撮像位置候補の算出を開始してよい。これに代えて、算出部１４０は、記憶部１２０に初期の選択画像セットが記憶されたことに応じて、撮像位置候補の算出を開始してもよい。算出部１４０は、初期値算出部１４２と、収束部１４４とを有する。
【００１４】
初期値算出部１４２は、未選択画像についての撮像位置候補の初期値を複数算出する。初期値算出部１４２は、選択画像セットに含まれる画像との間における画像中の対応点に基づいて、複数の画像のうち未選択画像についての撮像位置候補の初期値を複数算出する。初期値算出部１４２は、未選択画像の画像中に含まれる複数の対応点のうち予め定められた数の対応点の組毎に、撮像位置候補の初期値をそれぞれ算出する。初期値算出部１４２は、予め定められた線形代数式を用いて、初期値を算出する。初期値算出部１４２は、算出した複数の初期値を収束部１４４に供給する。
【００１５】
収束部１４４は、初期値算出部１４２に接続され、受けとった複数の撮像位置候補の各初期値から局所解へと撮像位置を収束させる。収束部１４４は、求根アルゴリズム等の数値解析により、複数の初期値から複数の局所解に収束させ、当該複数の局所解を複数の撮像位置候補とする。収束部１４４は、収束させた複数の撮像位置候補を、選択部１５０に供給する。
【００１６】
選択部１５０は、算出部１４０に接続され、受けとった未選択画像についての複数の撮像位置候補のうち、対応点の適合度が最大である最適撮像位置を選択する。選択部１５０は、未選択画像の画像中に含まれる複数の対応点を用い、撮像位置候補毎に当該複数の対応点の適合度を算出してよい。選択部１５０は、選択した最適撮像位置と他の撮像位置の情報を、算出した対応点の適合度に対応付けて決定部１６０に供給する。
【００１７】
決定部１６０は、選択部１５０に接続され、受けとった最適撮像位置の適合度と他の撮像位置候補の適合度とに基づいて、未選択画像を選択画像セットに追加するか否かを決定する。決定部１６０は、最適撮像位置の適合度が他の撮像位置の適合度と比較して予め定められた基準以上であることに応じて、未選択画像を選択画像セットに追加することを決定する。決定部１６０は、未選択画像の追加を決定した場合、記憶部１２０に記憶された選択画像セットに当該未選択画像を追加する。また、決定部１６０は、未選択画像を追加しないことを決定した場合、提供部１８０に当該決定結果を通知する。
【００１８】
調整部１７０は、未選択画像が新たに選択画像セットに追加されたことに応じて、選択画像セットに含まれる各画像の撮像位置を調整する。調整部１７０は、決定部１６０に接続され、記憶部１２０に記憶された選択画像セットと、追加が決定された未選択画像との新たな選択画像セット内で、それぞれの画像の撮像位置を調整する。調整部１７０は、調整後の新たな選択画像セットを記憶部１２０に記憶し、選択画像セットを更新する。
【００１９】
提供部１８０は、決定部１６０に接続され、未選択画像が選択画像セットに追加されなかった結果を取得する。提供部１８０は、当該結果を未選択画像に対応付けて記憶部１２０に記憶してもよい。これに代えて、提供部１８０は、記憶装置を有し、当該結果および未選択画像の情報を記憶してもよい。
【００２０】
また、提供部１８０は、複数の画像のうち選択画像セットに含まれない画像の中から未選択画像を順次選択して算出部１４０へと提供する。提供部１８０は、選択画像セットに追加しないことが決定された画像を、他の画像が選択画像セットに追加された後に再び未選択画像として選択してよい。即ち、提供部１８０は、一旦、選択画像セットに追加しないことが決定された画像を、他の画像を選択画像セットに追加するか否かを決定した後に、未選択画像として算出部１４０へ提供して当該選択画像セットに追加するか否かを再び判断させる。
【００２１】
復元部１９０は、記憶部１２０に接続され、選択画像セットに含まれるそれぞれの画像および撮像位置に基づいて、撮像対象の３次元形状を復元する。復元部１９０は、撮像対象である被写体の３次元座標を算出してよい。復元部１９０は、選択画像セットの画像の追加および更新が終了した後に、最後に更新された選択画像セットを用いて撮像対象の３次元形状を復元する。復元部１９０は、算出部１４０に接続され、選択画像セットの画像の追加および更新が終了した通知を算出部１４０から受けとってよい。
【００２２】
以上の本実施形態に係る処理装置１００は、撮像対象である被写体の３次元形状の復元に用いると判断した選択画像セットを用いて、当該被写体の３次元形状を復元する。処理装置１００の選択画像セットの更新および３次元形状の復元の動作について、図２を用いて説明する。
【００２３】
図２は、本実施形態に係る処理装置１００の動作フローを示す。本実施形態において、処理装置１００は、Ｓ２００からＳ３５０の処理を実行することにより、取得した複数の画像に基づき、当該複数の画像に撮像された被写体の３次元形状を復元する例を説明する。
【００２４】
まず、取得部１１０は、複数の画像を取得する（Ｓ２００）。取得部１１０は、画角が１００°未満の略数十度程度の撮像装置で撮像された複数の画像を取得してよい。特に、取得部１１０は、画角が略５０°程度以下の標準レンズ、望遠レンズ、およびズームレンズ等で撮像された複数の画像を取得してもよい。記憶部１２０は、取得部１１０が取得した複数の画像を記憶する。
【００２５】
次に、生成部１３０は、記憶部１２０から複数の画像を読み出し、当該複数の画像のそれぞれに含まれる特徴点を取得する（Ｓ２１０）。ここで、特徴点は、複数の画像に撮像された被写体の特徴となる点、線、および形状等である。生成部１３０は、例えば、被写体の直線状の部分、角部、頂点、凸部、凹部、曲線状の形状、エッジ、輪郭、線の交点、交線の角度、色の変化点、輝度の変化点等を特徴点としてよい。生成部１３０は、画像毎に特徴点を取得する。
【００２６】
次に、生成部１３０は、画像毎に取得した特徴点に基づき、画像間の対応点を取得する（Ｓ２２０）。ここで、一の画像と他の画像の対応点は、被写体の同一部分から取得した特徴点であり、互いに対応づけられる特徴点である。生成部１３０は、エッジ検出、領域分割、画像修復、輝度値変換、局所的な相関、マッチング、線形探索、およびユーザの手入力等を用いて、特徴点および対応点を取得してよい。
【００２７】
また、生成部１３０は、ＳＩＦＴ（Ｓｃａｌｅ−Ｉｎｖａｒｉａｎｔ  Ｆｅａｔｕｒｅ  Ｔｒａｎｓｆｏｒｍ）、ＳＵＲＦ（Ｓｐｅｅｄｅｄ  Ｕｐ  Ｒｏｂｕｓｔ  Ｆｅａｔｏｒｓ）、Ｈａｒｒｉｓ、ＦＡＳＴ（Ｆｅａｔｕｒｅｓ  ｆｒｏｍ  Ａｃｃｅｌｅｒａｔｅｄ  Ｓｅｇｍｅｎｔ  Ｔｅｓｔ）、Ｈｅｓｓｉａｎ−Ａｆｆｉｎｅ、ＭＳＥＲ（Ｍａｘｉｍａｌｌｙ  Ｓｔａｂｌｅ  Ｅｘｔｒｅｍａｌ  Ｒｅｇｉｏｎｓ）、ＫＡＺＥ、ＯＲＢ等の、既知のアルゴリズム等を用いて、特徴点および対応点を取得してよい。生成部１３０は、取得した対応点の情報を、取得した複数の画像のそれぞれと対応付けて記憶部１２０に記憶してよい。
【００２８】
次に、生成部１３０は、初期の選択画像セットを生成する（Ｓ２３０）。生成部１３０は、複数の画像の組み合わせのうち、最も対応点の多い画像ペアを選択して、初期の選択画像セットとしてよい。また、生成部１３０は、最も対応点の多い画像が３以上ある場合、より特徴点が多い２つの画像を、初期の選択画像セットとしてよい。これに代えて、生成部１３０は、対応点の多い３以上の画像の組み合わせを、初期の選択画像セットとしてもよい。
【００２９】
次に、生成部１３０は、生成した初期の選択画像セットにおける対応点の３次元空間上の座標を算出する（Ｓ２４０）。生成部１３０は、対応点の相対位置を算出してから、３次元空間上の座標を算出してよい。ここで、生成部１３０は、例えば、５点法（非特許文献３等を参照）および８点法等の、既知のアルゴリズム等を用いて、対応点の相対位置を算出する。即ち、生成部１３０は、初期の選択画像セットに対応点が５点または８点以上あることに基づいて、対応点の相対位置を算出する。ここで、初期の選択画像セットには、対応点が数十以上存在することが好ましく、また、百点以上あることがより好ましい。
【００３０】
生成部１３０は、算出した対応点の相対位置に基づき、対応点の３次元空間上の座標を算出する。生成部１３０は、複数の対応点の相対位置が判明しているので、初期の選択画像セットに含まれる（一例として２枚の）画像を撮像した撮像装置の位置ｔおよび向きＲを算出することができ、即ち、対応点の３次元空間上の座標を算出できる。生成部１３０は、このような初期の選択画像セットの情報を、記憶部１２０に記憶すると共に、算出部１４０に初期の選択画像セットを生成したことを通知してよい。
【００３１】
このように、画像中の対応点の数が多い場合、既知のアルゴリズム等を用いて対応点の３次元空間上の座標を算出することができる。しかしながら、対応点の数が少なくなると、算出すべき撮像装置の配置（位置ｔおよび向きＲ）に複数の局所解が存在し、対応点の相対位置を正確に算出することが困難になる。局所解が存在する例を、図３および図４を用いて説明する。
【００３２】
図３は、画角の広い撮像装置で画像を取得する例を示す。図３は、異なる撮像装置１０の位置および向きで撮像する例を示し、撮像された２つの画像には、７点の特徴点がそれぞれ含まれ、当該７点の特徴点が同一点を撮像した対応点として取得される。このように、より広範囲にわたって多くの対応点を含む画像を用いると、撮像装置１０の配置ＡおよびＢは局所解を有さず、一意に算出することができる。このような画像は、例えば、広角レンズおよび魚眼レンズ等の画角が１００°以上のレンズを用いることで撮像できる場合がある。
【００３３】
図４は、図３の例と比較して画角が狭い撮像装置で画像を取得する例を示す。即ち、図４は、異なる撮像装置１０の位置および向きで撮像する例を示し、撮像された２つの画像には、３点の特徴点がそれぞれ含まれ、当該３点の特徴点が同一点を撮像した対応点として取得される。このように、限定された領域を撮像した画像を用いると、撮像装置１０の位置および向きは、配置ＡおよびＢの他に、配置ＣおよびＤ等の異なる局所解が存在することがわかる。
【００３４】
このような画像は、例えば、標準レンズ、望遠レンズ、およびズームレンズ等で撮像された画像に多く、既知のアルゴリズム等では複数の局所解から正しい解を取得することが困難である。そこで、本実施形態に係る処理装置１００は、複数の局所解が発生するような画角の狭い撮像装置で撮像した画像を用いても、当該画像のそれぞれの撮像位置を算出する。
【００３５】
次に、算出部１４０は、記憶部１２０に記憶された複数の画像のうち未選択画像を１つ選択する（Ｓ２５０）。算出部１４０は、選択画像セットに含まれない複数の画像のうち、選択画像セットに含まれる画像との間において、最も対応点の多い画像を未選択画像として選択する。
【００３６】
次に、初期値算出部１４２は、選択した未選択画像についての撮像位置候補の初期値を算出する（Ｓ２６０）。初期値算出部１４２は、選択画像セットに含まれる画像との間における画像中の対応点に基づいて、未選択画像について撮像位置の近似解を算出して撮像位置の候補の初期値とする。初期値算出部１４２は、次に説明するように、非線形制約付きの多次元関数となる目的関数を、制約無しの二次計画問題で近似した目的関数を用い、ＲＡＮＳＡＣ（ＲＡＮｄｏｍ  ＳＡｍｐｌｅ  Ｃｏｎｓｅｎｓｕｓ）として既知のアルゴリズムを用いて複数の近似解を算出する。
【００３７】
図５は、本実施形態に係る撮像装置１０が被写体２０を撮像する場合の空間的配置の一例を示す。図５において、撮像装置１０は、Ａ点およびＢ点において被写体２０を撮像し、対応点ｑ（ｑｘ，ｑｙ，ｑｚ）Ｔを含む画像をそれぞれ撮像する例を示す。ここで、Ｔは転置を意味し、グローバル座標上の対応点ｑを列ベクトルで示す。撮像装置１０は、Ａ点において、位置ｔＡおよび向きＲＡで被写体２０を撮像し、Ｂ点において、位置ｔＢおよび向きＲＢで被写体２０を撮像する。
【００３８】
なお、位置ｔはグローバル座標上の１点であり、対応点ｑと同様に列ベクトルで示される。また、向きＲは、ｘ、ｙ、ｚ方向の向き（ベクトル）の合成で示され、例えば、次式のように行列式で示される。
【数１】
0006399518.tif 000002
【００３９】
Ａ点において、撮像装置１０の画角で撮像される対応点ｑは、撮像装置１０の座標において、ｑ'＝（ｑｘ'，ｑｙ'，１）Ｔと表すことができる。即ち、Ａ点から距離１の面上の、座標（ｘ'，ｙ'）にｑ'が位置することを意味し、Ａ点からｑ'までの線分の延長線上に、対応点ｑが位置する。ここで、撮像装置１０の座標における対応点ｑ'は、位置ｔＡおよび向きＲＡでグローバル座標の対応点ｑを撮像した結果なので、次式が成立する。
【数２】
0006399518.tif 000003
【００４０】
（数２）式を変形することで、画像上の対応点ｑ'は、次式のように示される。
【数３】
0006399518.tif 000004
【００４１】
なお、ｑ'は、ｚ成分が１になるので、（数３）式は次式のように表すことができる。
【数４】
0006399518.tif 000005
【００４２】
したがって、未選択画像の対応点の座標をｐ＝（ｐｘ，ｐｙ，１）Ｔとすると、ＲＡおよびｔＡは、ｐと（数４）式で示されたｑ'との二乗誤差を最小にする。即ち、ＲＡおよびｔＡは、次式を満たす。
【数５】
0006399518.tif 000006
【００４３】
なお、未選択画像が画角の狭い撮像装置で撮像され、限定された領域での対応点を用いると、（数５）式は、図４でも説明したように、複数の局所解を有する多次元関数となる。また、当該多次元関数は、撮像装置の向きＲについて、ＲＴＲ＝１という非線形制約が付随するので、局所解を１つ得るとしても、膨大な計算量を必要とし、現実的な時間で正しい解を得ることは極めて困難である。
【００４４】
そこで、本実施形態の算出部１４０は、当該目的関数を二次計画問題に近似して、複数の局所解を撮像位置の候補として列挙し、最も確からしい解を選択して撮像位置とする。（数５）式に示す目的関数の局所解は、多くても数十個程度であることから、近似式によって局所解を高速に算出することができれば、現実的な時間で撮像位置を算出することができる。特徴点ｑおよび撮像装置１０の間の距離が、複数の画像間で大きく変化しないことに基づき、算出部１４０は、（数５）式の目的関数にｑｚ２を掛けて次式のように得られる、線形の近似式を用いる。
【数６】
0006399518.tif 000007
【００４５】
即ち、（数６）式を微分して零に等しくするＲＡおよびｔＡが、（数６）式を満たす解である。また、算出部１４０は、複数の局所解を撮像位置の候補として列挙すべく、まずは（数６）式を満たす撮像位置候補の複数の初期値を初期値算出部１４２に算出させる。初期値算出部１４２は、一例として、ＲＡＮＳＡＣアルゴリズムを用いて複数の近似解を算出する。
【００４６】
初期値算出部１４２は、複数の対応点のうち、予め定められた個数の対応点をランダムに抽出し、抽出した対応点が（数６）式に当てはまるようにＲおよびｔを算出する。初期値算出部１４２は、算出したＲおよびｔを用いて、抽出されなかった残りの対応点のうち（数６）式を満たす対応点の個数を計数し、当該計数結果に応じて算出したＲおよびｔを撮像位置候補の初期値とするか否かを判別する（ＲＡＮＳＡＣ）。
【００４７】
ここで、未選択画像に１００点の対応点が含まれている例を説明すると、初期値算出部１４２は、一例として、当該１００点の対応点から乱数等を用いて（一例として）１０点の対応点を抽出し、当該１０点の対応点を用いて（数６）式の微分が零となるＲおよびｔを算出する。そして、初期値算出部１４２は、算出したＲおよびｔを（数６）式に代入し、残りの９０点の対応点を順次代入し、算出結果が予め定められた閾値の範囲であるか否かを判定する。
【００４８】
ここで、未選択画像に含まれている１００点の対応点は、全て正しい特徴点（被写体の特徴を正しく抽出した点）である保証はなく、ノイズ成分等が偶然抽出され、対応点と判断された場合も含まれる。このように、本来は対応点として算出されない外れ値となる対応点が抽出した１０点に多く含まれると、初期値算出部１４２は、目的関数の解とはかけ離れたＲおよびｔを算出してしまう。そこで、初期値算出部１４２は、残りの９０点の対応点を（数６）式に順次代入して、算出したＲおよびｔが解の候補として妥当であるか否かを判定する。
【００４９】
なお、残りの９０点の対応点にも外れ値となる対応点が含まれている場合もあるので、初期値算出部１４２は、外れ値が少ない１０点の対応点に応じて算出されたＲおよびｔを用いても、残りの９０点のうち外れ値の対応点を（数６）式に代入すると、二乗誤差として算出される予め想定される（常識的な）値と比較して著しく大きな値が算出される場合がある。初期値算出部１４２は、このような予め定められた閾値の範囲外の算出結果をアウトライア（Ｏｕｔｌｉｅｒ）とする一方、当該閾値の範囲内の算出結果をインライア（Ｉｎｌｉｅｒ）とし、当該インライアの数を計数する。
【００５０】
ここで、初期値算出部１４２は、外れ値が多い１０点の対応点に応じて算出されたＲおよびｔを用いると、残りの９０点のうち外れ値ではない対応点を（数６）式に代入しても、アウトライアを算出する。この場合、外れ値を代入してもアウトライアとなり、計数されるインライアの数は、外れ値が少ない１０点の対応点に応じて算出されたＲおよびｔを用いた場合と比較して、より少なくなる。即ち、初期値算出部１４２は、インライアの計数結果が予め定められた数未満の場合、算出したＲおよびｔが解の候補として妥当ではないとして撮像位置候補の初期値にはしない。また、初期値算出部１４２は、インライアの計数結果が予め定められた数以上の場合に、算出したＲおよびｔを撮像位置候補の初期値とする。
【００５１】
初期値算出部１４２は、Ｒおよびｔの算出および判定（ＲＡＮＳＡＣ）を繰り返し、複数の撮像位置候補の初期値を算出する。初期値算出部１４２は、予め定められた数の撮像位置候補の初期値が得られるまで、当該算出および判定を繰り返してよく、これに代えて、予め定められた回数だけ当該算出および判定を繰り返してもよい。なお、初期値算出部１４２は、（数６）式で示す近似式を用いるので、線形代数で容易に複数の初期値を算出することができるので、高速に複数の撮像位置候補の初期値を算出することができる。また、特徴点ｑおよび撮像装置１０の間の距離が大きく変動しない限り、当該近似の精度を高く保つことができるので、初期値算出部１４２が算出する複数の初期値は、複数の局所解の近傍の値にすることができる。
【００５２】
次に、収束部１４４は、複数の撮像位置候補の初期値を開始点として、（数５）式の局所解へと撮像位置を収束させる（Ｓ２７０）。即ち、初期値算出部１４２が算出した初期値は、近似式（数６）式を満たす解であり、目的関数（数５）式の局所解の近傍に存在する近似解である。したがって、収束部１４４は、当該初期値を開始点とし、ニュートン法等の既知の数値解析を用いることで、当該開始点を局所解に収束させることができる。また、初期値算出部１４２が初期値を複数算出するので、収束部１４４は、当該複数の初期値をそれぞれ開始点とすることで、目的関数（数５）式の複数の局所解へと収束させることができ、当該複数の局所解を列挙することができる。
【００５３】
目的関数は、撮像装置の位置ｔおよび向きＲによって定まる多次元関数であるから、複数の局所解を有し、仮に、（数５）式を満足する点ｇを複雑な数値計算を施して算出しても、当該点ｇに基づいて１つの局所解に収束させることは困難である。さらに、当該点ｇに基づいて１つの局所解に収束させても、当該局所解が撮像装置の位置ｔおよび向きＲとして適切な解であるか否かを判別することは困難である。
【００５４】
これに対し、本実施形態に係る初期値算出部１４２は、複数の局所解の近傍に位置する複数の初期値を算出するので、収束部１４４は、それぞれの局所解に容易に収束させることができる。即ち、収束部１４４は、複数の局所解を取得することができ、当該複数の局所解をそれぞれ未選択画像の撮像位置候補とすることができる。
【００５５】
ここで、収束部１４４は、予め定められた誤差の範囲で他の候補と同一の撮像位置に収束した重複する撮像位置候補を、削除してよい。用いる数値処理の精度等によって、収束部１４４は、同一の局所解に対して異なる２以上の値に収束させる場合がある。そこで、収束部１４４は、予め定められた値の範囲に収束した２以上の値について、１つの値を選択して１つの撮像位置候補とする。これに代えて、収束部１４４は、収束した２以上の値の平均値を撮像位置候補としてもよい。これにより、収束部１４４は、数値計算によって見かけ上の存在しない局所解が増大することを防止してよい。
【００５６】
なお、収束部１４４は、（数５）式を用いて局所的な最適解に収束させる例を説明したが、これに代えて、（数５）式とは異なる式を用いて局所解に収束させてもよい。（数５）式は、正規分布に基づく２乗誤差を算出したものであるが、収束部１４４は、スチューデント（ｓｔｕｄｅｎｔ）のｔ分布に基づく目的関数を用いてもよい。収束部１４４は、次式で示される目的関数を用いてよい。
【数７】
0006399518.tif 000008
【００５７】
ここで、φ（ｑｉ｜Ｒ，ｔ）は、グローバル座標系の３次元空間上の点の座標ｑｉを、撮像装置１０の座標系に変換し、撮像される画像（ｚ＝１の平面）上に射影した点ｐｉを示す。即ち、φおよびｑは、次式で関係づけられる。
【数８】
0006399518.tif 000009
【００５８】
また、（数７）式のＴは、スチューデントのｔ分布として次式で示されるような既知の分布である。
【数９】
0006399518.tif 000010
【００５９】
次に、選択部１５０は、局所解へと収束させた複数の撮像位置候補の中から対応点の適合度が最大の最適撮像位置を選択する（Ｓ２８０）。選択部１５０は、撮像位置候補を目的関数に代入し、未選択画像に含まれる複数の対応点を当該目的関数に適用した場合のインライアの個数を計数する。選択部１５０は、撮像位置候補毎にインライアの個数を計数し、最もインライアの個数が多く計数された撮像位置候補を最適撮像位置として選択する。即ち、選択部１５０は、複数の対応点のうち、目的関数に適合させる対応点の数をより多くさせる撮像位置候補を、最適撮像位置とする。また、選択部１５０は、次にインライアの個数が多く計数された撮像位置候補を次善の撮像位置とする。
【００６０】
次に、決定部１６０は、最適撮像位置における対応点の適合度に基づいて、未選択画像を選択画像セットに追加するか否かを決定する。決定部１６０は、最適撮像位置の適合度と他の（例えば次善の）撮像位置の適合度を比較して、選択画像を選択画像セットに追加するか否かを決定する（Ｓ２９０）。決定部１６０は、最適撮像位置の適合度と、複数の撮像位置候補のうち次善の撮像位置候補の適合度との相違が予め定められた基準以上であることを必要条件として、未選択画像を選択画像セットに追加することを決定してよい。決定部１６０は、一例として、最適撮像位置のインライアの数Ｉ１ｓｔと、次善の撮像位置のインライアの数Ｉ２ｎｄの差が、予め定められた数以上であることに応じて、未選択画像を選択画像セットに追加することを決定する。
【００６１】
また、決定部１６０は、最適撮像位置の適合度と、複数の撮像位置候補のうち次善の撮像位置候補の適合度との相違が予め定められた基準以上であり、かつ、最適撮像位置の適合度が予め定められた閾値以上であることを必要条件として、未選択画像を選択画像セットに追加することを決定してよい。決定部１６０は、一例として、Ｉ１ｓｔが予め定められた第１の閾値以上で、かつ、（Ｉ１ｓｔ−Ｉ２ｎｄ）／Ｉ１ｓｔが予め定められた第２の閾値以上であることに応じて、未選択画像を選択画像セットに追加することを決定する。
【００６２】
このように、決定部１６０は、最適撮像位置の適合度が、次善の撮像位置の適合度と比較して、差が明らかな場合に、当該最適撮像位置を採用して、未選択画像を選択画像セットに追加する。これによって、決定部１６０は、複数の適合度が拮抗して、最適撮像位置を適切に判断できない未選択画像が選択画像セットに含まれることを防止して、撮像位置に矛盾を生じさせない（または矛盾が生じる可能性を低減させた）画像を追加することができる。これにより、決定部１６０は、次の未選択画像を追加する場合においても、矛盾が生じる確率を低減させた選択画像セットを用いて、未選択画像の追加を判断することができる。したがって、当該選択画像セットは、３次元画像の復元において破綻の発生を低減させることができる。
【００６３】
決定部１６０が、未選択画像を選択画像セットに追加することを決定した場合（Ｓ２９０：Ｙｅｓ）、調整部１７０は、選択画像セットに追加が決定された未選択画像を追加して、新たな選択画像セットとし、当該新たな選択画像セットを記憶部１２０に記憶して更新する（Ｓ３００）。ここで、調整部１７０は、当該新たな選択画像セット内の撮像位置を調整してから記憶部１２０に記憶してよい。調整部１７０は、例えば、非特許文献１および２に記載されたＢｕｎｄｌｅｒ  Ａｊｄｕｓｔ等の既知の調整方法により、選択画像セット内の複数の画像を撮像した撮像装置の位置および向きを更新させる。
【００６４】
選択画像セット内の複数の画像は、決定部１６０が撮像位置に矛盾のない画像を追加したセットなので、調整部１７０は、既知の画像処理技術を用いて、複数の画像間でより適切な撮像位置に微調整することができる。また、調整部１７０は、選択画像セットが更新される毎に当該微調整を実行してよく、これに代えて、予め定められた２以上の数の未選択画像が選択画像セットに追加されたことに応じて、当該微調整を実行してもよい。
【００６５】
また、決定部１６０が、未選択画像を選択画像セットに追加しないことを決定した場合（Ｓ２９０：Ｎｏ）、決定部１６０は、当該決定を提供部１８０に通知する。提供部１８０は、未選択画像が選択画像セットに追加されなかったことを、当該未選択画像に対応づけて記憶部１２０に記憶してよい。
【００６６】
次に、記憶部１２０に記憶された未選択画像がまだ存在する場合（Ｓ３１０：Ｙｅｓ）、処理装置１００は、Ｓ２５０の動作段階に戻り、算出部１４０に次の未選択画像を取得させ、当該次の未選択画像を選択画像セットに追加するか否かを決定部１６０に決定させる。処理装置１００は、記憶部１２０に記憶された未選択画像がなくなるまで、Ｓ２５０からＳ３１０までの動作を繰り返す。
【００６７】
記憶部１２０に記憶された未選択画像がなくなった場合（Ｓ３１０：Ｎｏ）でかつ、選択画像セットに追加した未選択画像が無かった場合、当該処理を終了する（Ｓ３２０：Ｙｅｓ）。即ち、複数の画像のうち選択画像セットに含まれない全ての画像について、選択画像セットに追加しないことが決定された後に他のいずれの画像も選択画像セットに追加されなかったことに応じて、処理装置１００は、未選択画像の選択処理を終了する。このように、未選択画像の全てについて選択画像のセットの追加に失敗した場合、処理装置１００は、取得部１１０が取得した複数の画像に基づく３次元画像の復元処理を中止する。この場合、処理装置１００は、取得部１１０が取得した複数の画像に異常があることをユーザに通知してもよい。
【００６８】
また、選択画像セットに追加した未選択画像がある場合（Ｓ３２０：Ｎｏ）でかつ、決定部１６０が選択画像セットに追加しなかった未選択画像が存在する場合（Ｓ３３０：Ｙｅｓ）、提供部１８０は、選択画像セットに追加しなかった未選択画像を算出部１４０に再び未選択画像として選択して提供する（Ｓ３４０）。処理装置１００は、Ｓ２６０の動作段階に戻り、追加しなかった未選択画像がなくなるまで、Ｓ２６０からＳ３４０までの動作を繰り返す。なお、提供部１８０は、選択画像セットに追加しなかった未選択画像が複数存在する場合、決定部１６０が追加しないことを決定した順に、当該追加しなかった未選択画像を算出部１４０に提供してよい。
【００６９】
当初は複数の撮像位置が拮抗すると判断された画像であっても、選択画像セット内の画像が増加するにつれて、対応点等の情報は変化する。そこで、提供部１８０は、当該追加されなかった未選択画像を再び未選択画像として算出部１４０に提供することによって、当該未選択画像を再び選択画像セットに追加するか否かを判断させる。これにより、提供部１８０は、取得部１１０が取得した複数の画像を無駄なく判別し、より多くの画像を含む選択画像セットを生成することができる。
【００７０】
決定部１６０が選択画像セットに追加しなかった未選択画像が存在しない場合（Ｓ３３０：Ｎｏ）、または、提供部１８０の提供が終了した場合、算出部１４０は、未選択画像の取得を終了させ、復元部１９０に通知する。復元部１９０は、生成した選択画像セットを記憶部１２０から読み出し、当該選択画像セットに応じた３次元画像を復元させる（Ｓ３５０）。決定部１６０が、最適撮像位置を適切に判断できない未選択画像を選択画像セットに追加されることを防止して、撮像位置に矛盾のない画像を追加するので、復元部１９０は、破綻の少ない３次元画像を復元させることができる。
【００７１】
以上の本実施形態に係る処理装置１００は、複数の画像のそれぞれに含まれる対応点の数に応じて選択画像セットを選択し、当該選択画像セットに残りの画像を１つずつ追加するか否かを判断する。処理装置１００は、目的関数を用い、当該目的関数の複数の局所解を取得して、未選択画像に最も適合する局所解に基づいて選択画像セットに追加するか否かを判断するので、より確からしい撮像位置を解とした未選択画像を選択画像セットに追加することができる。また、処理装置１００は、目的関数の近似式を用いて、高速に複数の初期値を算出し、ニュートン法等の簡便な手法で複数の局所解を取得するので、高速に処理を完了することができる。
【００７２】
ここで、本実施形態に係る初期値算出部１４２は、複数の撮像位置候補の初期値を算出し、収束部１４４に供給することを説明した。ここで、決定部１６０が、最適撮像位置および次善の撮像位置の適合度を比較して、選択画像を選択画像セットに追加するか否かを決定する場合、初期値算出部１４２が算出する複数の初期値のうち、最適撮像位置および次善の撮像位置に対応する初期値以外の初期値は、決定部１６０では用いないことになる。
【００７３】
そこで、初期値算出部１４２は、複数の撮像位置候補の各初期値のうち適合度が最大となる初期値の適合度と、一の撮像位置候補における初期値の適合度との相違が予め定められた基準以上である場合に、一の撮像位置候補を削除してよい。これにより、初期値算出部１４２は、決定部１６０が用いないと判断できる撮像位置候補の初期値を削除することができ、処理速度を向上させることができる。
【００７４】
また、本実施形態の決定部１６０は、撮像位置の適合度の例として、インライアの数を計数することを説明した。これに代えて、決定部１６０は、当該撮像位置を代入した目的関数に、対応点を適用させた場合の目的関数の値を当該適合度としてもよい。この場合、決定部１６０は、目的関数に、複数の対応点を適用させた場合の目的関数の値の平均値を当該適合度としてよい。
【００７５】
また、以上の本実施形態の初期値算出部１４２は、（数６）式の微分が零となるＲおよびｔを算出し、当該算出したＲおよびｔが解の候補として妥当であるか否かを判定することを説明した。これに代えて、初期値算出部１４２は、Ｒおよびｔの妥当性を順次判定してもよい。
【００７６】
例えば、初期値算出部１４２は、１００点の対応点から１０点の対応点をランダムに抽出し、当該１０点の対応点を用いて（数６）式の微分が零となるＲおよびｔを算出する。そして、初期値算出部１４２は、算出したＲおよびｔを（数６）式に代入し、残りの９０点の対応点を順次代入し、インライアの計数結果が予め定められた数以上の場合に、算出したＲを採用する（ＲＡＮＳＡＣ）。なお、当該Ｒは、（数５）式の解ではないので、より正確には非直交姿勢行列Ｇとなる。そこで、初期値算出部１４２は、既知の手法で当該Ｇを直交化して、より正確なＲを算出する。
【００７７】
初期値算出部１４２は、１０点の対応点の抽出からＲの算出までの処理を繰り返し、複数のＲを算出する。なお、複数のＲのうち、予め定められた値の範囲で略同一とみなされる複数のＲが存在する場合、初期値算出部１４２は、当該複数のＲのうち解の候補として１つのＲを残して、他を除去してよい。次に、初期値算出部１４２は、複数のＲのうち１つのＲを抽出し、当該Ｒを用いて（数６）式の微分が零となるｔを算出する。初期値算出部１４２は、抽出したＲと算出したｔを（数６）式に代入し、対応点を順次代入してインライアの計数結果が予め定められた数以上の場合に、当該Ｒおよびｔを採用する（ＲＡＮＳＡＣ）。
【００７８】
初期値算出部１４２は、複数のＲから次のＲを抽出し、同様の動作を繰り返して、インライアの計数結果に応じてＲおよびｔの組み合わせを採用するか否かを判定する。初期値算出部１４２は、複数のＲの全てについて、それぞれ判定を繰り返し、採用したＲおよびｔの組み合わせを解の候補として妥当であるとする。このように、初期値算出部１４２は、２段階のＲＡＮＳＡＣ処理によりＲおよびｔを順次妥当であるか否かを判定するので、撮像位置候補の初期値として、より正確な判定を実行することができる。
【００７９】
図６は、本実施形態に係るデータ処理装置１００として機能するコンピュータ１９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続されるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、および表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される通信インターフェイス２０３０、ハードディスクドライブ２０４０、およびＤＶＤドライブ２０６０を有する入出力部と、入出力コントローラ２０８４に接続されるＲＯＭ２０１０、フレキシブルディスク・ドライブ２０５０、および入出力チップ２０７０を有するレガシー入出力部と、を備える。
【００８０】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００およびグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０およびＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【００８１】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、比較的高速な入出力装置である通信インターフェイス２０３０、ハードディスクドライブ２０４０、ＤＶＤドライブ２０６０を接続する。通信インターフェイス２０３０は、ネットワークを介して他の装置と通信する。ハードディスクドライブ２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラムおよびデータを格納する。ＤＶＤドライブ２０６０は、ＤＶＤ−ＲＯＭ２０９５からプログラムまたはデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。
【００８２】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、フレキシブルディスク・ドライブ２０５０、および入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラム、および／または、コンピュータ１９００のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ２０５０は、フレキシブルディスク２０９０からプログラムまたはデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。入出力チップ２０７０は、フレキシブルディスク・ドライブ２０５０を入出力コントローラ２０８４へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ２０８４へと接続する。
【００８３】
ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供されるプログラムは、フレキシブルディスク２０９０、ＤＶＤ−ＲＯＭ２０９５、またはＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内のハードディスクドライブ２０４０にインストールされ、ＣＰＵ２０００において実行される。
【００８４】
プログラムは、コンピュータ１９００にインストールされ、コンピュータ１９００を取得部１１０、記憶部１２０、生成部１３０、算出部１４０、初期値算出部１４２、収束部１４４、選択部１５０、決定部１６０、調整部１７０、提供部１８０、および復元部１９０として機能させる。
【００８５】
プログラムに記述された情報処理は、コンピュータ１９００に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である取得部１１０、記憶部１２０、生成部１３０、算出部１４０、初期値算出部１４２、収束部１４４、選択部１５０、決定部１６０、調整部１７０、提供部１８０、および復元部１９０として機能する。そして、この具体的手段によって、本実施形態におけるコンピュータ１９００の使用目的に応じた情報の演算または加工を実現することにより、使用目的に応じた特有の処理装置１００が構築される。
【００８６】
一例として、コンピュータ１９００と外部の装置等との間で通信を行う場合には、ＣＰＵ２０００は、ＲＡＭ２０２０上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス２０３０に対して通信処理を指示する。通信インターフェイス２０３０は、ＣＰＵ２０００の制御を受けて、ＲＡＭ２０２０、ハードディスクドライブ２０４０、フレキシブルディスク２０９０、またはＤＶＤ−ＲＯＭ２０９５等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス２０３０は、ＤＭＡ（ダイレクト・メモリ・アクセス）方式により記憶装置との間で送受信データを転送してもよく、これに代えて、ＣＰＵ２０００が転送元の記憶装置または通信インターフェイス２０３０からデータを読み出し、転送先の通信インターフェイス２０３０または記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【００８７】
また、ＣＰＵ２０００は、ハードディスクドライブ２０４０、ＤＶＤドライブ２０６０（ＤＶＤ−ＲＯＭ２０９５）、フレキシブルディスク・ドライブ２０５０（フレキシブルディスク２０９０）等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をＤＭＡ転送等によりＲＡＭ２０２０へと読み込ませ、ＲＡＭ２０２０上のデータに対して各種の処理を行う。そして、ＣＰＵ２０００は、処理を終えたデータを、ＤＭＡ転送等により外部記憶装置へと書き戻す。このような処理において、ＲＡＭ２０２０は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはＲＡＭ２０２０および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、ＣＰＵ２０００は、ＲＡＭ２０２０の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはＲＡＭ２０２０の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもＲＡＭ２０２０、メモリ、および／または記憶装置に含まれるものとする。
【００８８】
また、ＣＰＵ２０００は、ＲＡＭ２０２０から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、ＲＡＭ２０２０へと書き戻す。例えば、ＣＰＵ２０００は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合（または不成立であった場合）に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【００８９】
また、ＣＰＵ２０００は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第１属性の属性値に対し第２属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、ＣＰＵ２０００は、記憶装置に格納されている複数のエントリの中から第１属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第２属性の属性値を読み出すことにより、所定の条件を満たす第１属性に対応付けられた第２属性の属性値を得ることができる。
【００９０】
以上に示したプログラムまたはモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク２０９０、ＤＶＤ−ＲＯＭ２０９５の他に、ＤＶＤ、Ｂｌｕ−ｒａｙ（登録商標）、またはＣＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークまたはインターネットに接続されたサーバシステムに設けたハードディスクまたはＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１９００に提供してもよい。
【００９１】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００９２】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【００９３】
１０  撮像装置、２０  被写体、１００  処理装置、１１０  取得部、１２０  記憶部、１３０  生成部、１４０  算出部、１４２  初期値算出部、１４４  収束部、１５０  選択部、１６０  決定部、１７０  調整部、１８０  提供部、１９０  復元部、１９００  コンピュータ、２０００  ＣＰＵ、２０１０  ＲＯＭ、２０２０  ＲＡＭ、２０３０  通信インターフェイス、２０４０  ハードディスクドライブ、２０５０  フレキシブルディスク・ドライブ、２０６０  ＤＶＤドライブ、２０７０  入出力チップ、２０７５  グラフィック・コントローラ、２０８０  表示装置、２０８２  ホスト・コントローラ、２０８４  入出力コントローラ、２０９０  フレキシブルディスク、２０９５  ＤＶＤ−ＲＯＭ
【図１】
0006399518.tif 000011
【図２】
0006399518.tif 000012
【図３】
0006399518.tif 000013
【図４】
0006399518.tif 000014
【図５】
0006399518.tif 000015
【図６】
0006399518.tif 000016