三次元モデリング装置、三次元モデリング方法、ならびに、プログラム
【課題】精度良く三次元モデルを作成する。
【解決手段】画像受付部11は、被写体を異なる角度から複数回撮像することにより得られる複数の画像の組の入力を受け付ける。三次元モデル生成部12は、受け付けられた複数の画像の組のそれぞれに基づいて、被写体の三次元モデルを複数生成する。三次元モデル選択部13は、被合成三次元モデルと合成三次元モデルとを選択する。特徴点抽出部14は、被合成三次元モデルと合成三次元モデルから、複数の第1特徴点と第2特徴点を抽出する。特徴点選択部15は、抽出された複数の第1特徴点と第2特徴点の中から、ステレオカメラ1との距離が近い特徴点を優先的に選択する。座標変換パラメータ取得部16は、座標変換パラメータを取得する。座標変換部17は、合成三次元モデルの座標を被合成三次元モデルの座標系の座標に変換する。三次元モデル合成部18は、合成三次元モデルを被合成三次元モデルに合成する。
【解決手段】画像受付部11は、被写体を異なる角度から複数回撮像することにより得られる複数の画像の組の入力を受け付ける。三次元モデル生成部12は、受け付けられた複数の画像の組のそれぞれに基づいて、被写体の三次元モデルを複数生成する。三次元モデル選択部13は、被合成三次元モデルと合成三次元モデルとを選択する。特徴点抽出部14は、被合成三次元モデルと合成三次元モデルから、複数の第1特徴点と第2特徴点を抽出する。特徴点選択部15は、抽出された複数の第1特徴点と第2特徴点の中から、ステレオカメラ1との距離が近い特徴点を優先的に選択する。座標変換パラメータ取得部16は、座標変換パラメータを取得する。座標変換部17は、合成三次元モデルの座標を被合成三次元モデルの座標系の座標に変換する。三次元モデル合成部18は、合成三次元モデルを被合成三次元モデルに合成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、被写体を適切に三次元モデリングするための三次元モデリング装置、三次元モデリング方法、ならびに、プログラムに関する。
【背景技術】
【0002】
人間、動物、あるいは、美術品などの被写体を、右眼用撮像部と左目用撮像部とを備えるステレオカメラを用いて撮像し、撮像により得られた右眼用画像と左眼用画像(ステレオ画像)に基づいて、被写体の三次元モデルを作成する技術が知られている。このような技術は、例えば、特許文献1や非特許文献1に開示されている。
【0003】
また、撮像位置を変えて複数回撮像したステレオ画像から複数の三次元モデルを作成し、作成した複数の三次元モデルを合成することで、より精度の高い三次元モデルを作成する技術が知られている。
【0004】
また、単眼カメラを移動前後で平行ステレオになるように移動させると共に、移動の前後に単眼カメラで撮像した2つの画像を用いて、撮像された対象物の三次元画像を生成する技術が知られている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第2953154号公報
【非特許文献】
【0006】
【非特許文献1】佐藤 洋一 著、「デジタル画像処理」、CG−ARTS協会出版
【発明の概要】
【発明が解決しようとする課題】
【0007】
複数の三次元モデルを精度良く合成するためには、各三次元モデルから抽出した複数の特徴点の三次元位置情報に基づいて、各三次元モデル間で撮像時のカメラ位置を推定する必要がある。同様に、単眼カメラで撮像した各画像から精度の良い三次元モデルを作成するためには、各画像から抽出した複数の特徴点の三次元位置情報に基づいて、各画像間で撮像時のカメラ位置を推定する必要がある。
【0008】
しかしながら、特徴点の三次元位置情報には比較的ノイズが多く含まれている。従って、このようなノイズの多く含まれている特徴点の三次元位置情報に基づいて求めたカメラ位置も不正確になりがちであり、作成される三次元モデルは精度の面で問題があった。
【0009】
本発明は、上記実情に鑑みてなされたものであり、精度良く三次元モデル作成をすることを特徴とする三次元モデリング装置、三次元モデリング方法、ならびに、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するため本発明の三次元モデリング装置は、
一度の撮像により一組の画像を取得するステレオカメラを用いて、被写体を異なる角度から複数回撮像することにより得られる複数の画像の組の入力を受け付ける画像受付手段と、
前記受け付けられた複数の画像の組のそれぞれに基づいて、前記被写体の三次元モデルを複数生成する三次元モデル生成手段と、
前記生成された複数の三次元モデルの中から、被合成三次元モデルと当該被合成三次元モデルに合成する合成三次元モデルとを選択する三次元モデル選択手段と、
前記選択された被合成三次元モデルから複数の第1特徴点を抽出するとともに、前記選択された合成三次元モデルから複数の第2特徴点を抽出する特徴点抽出手段と、
前記抽出された複数の第1特徴点と第2特徴点のうち前記ステレオカメラとの距離が近い特徴点を優先的に選択する特徴点選択手段と、
前記選択された複数の第1特徴点と第2特徴点とに基づいて、当該合成三次元モデルの座標を当該被合成三次元モデルの座標系の座標に変換する座標変換パラメータを取得する座標変換パラメータ取得手段と、
前記取得された座標変換パラメータを用いて、前記合成三次元モデルの座標を前記被合成三次元モデルの座標系の座標に変換する座標変換手段と、
前記座標変換後の合成三次元モデルを前記被合成三次元モデルに合成する合成手段と、を備える、
ことを特徴とする。
【発明の効果】
【0011】
本発明によれば、カメラとの距離が近い特徴点を優先的に用いて三次元モデルを作成する。従って、精度良く三次元モデルを作成することが可能となる。
【図面の簡単な説明】
【0012】
【図1】(A)は、本発明の第1の実施形態に係るステレオカメラの前面の様子を表す外観図である。(B)は、本発明の第1の実施形態に係るステレオカメラの背面の様子を表す外観図である。
【図2】本発明の第1の実施形態に係るステレオカメラの構成を示すブロック図である。
【図3】本発明の第1の実施形態に係るステレオカメラの主要部の構成を示すブロック図である。
【図4】本発明の第1の実施形態に係るステレオカメラが実行する三次元モデリング処理を示すフローチャートである。
【図5】図4に示す三次元モデル生成処理を示すフローチャートである。
【図6】図4に示すカメラ位置推定処理を示すフローチャートである。
【図7】図6に示す特徴点選択処理を示すフローチャートである。
【図8】第1撮像部と第2撮像部とにおける透視投影モデルを示した図である。
【図9】図6に示す座標変換パラメータ取得処理を示すフローチャートである。
【図10】図4に示す三次元モデル合成処理を示すフローチャートである。
【図11】本発明の第2の実施形態に係るステレオカメラの構成を示すブロック図である。
【図12】本発明の第2の実施形態に係るステレオカメラが実行する三次元モデリング処理を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、本発明の各実施形態について、図面を参照しながら詳細に説明する。本実施形態では、本発明をデジタル式のステレオカメラに適用した例を示す。なお、本発明は下記の実施形態及び図面によって限定されるものではない。また、本発明の要旨を変更しない範囲で下記の各実施形態及び図面に変更を加えることが出来る。また、図中同一または相当部分には同一符号を付す。
【0014】
(第1の実施形態)
始めに、第1の実施形態について説明する。図1(A)、(B)は、第1の実施形態に係るステレオカメラ1の外観図である。図1(A)に示すように、このステレオカメラ1の前面には、レンズ111Aと、レンズ111Bと、ストロボ発光部400と、が設けられ、上面には、シャッターボタン331が設けられている。レンズ111Aとレンズ111Bは、シャッターボタン331が上になる方向で、ステレオカメラ1を水平にした場合に、各々の中心位置が水平方向で同一線上となるように、所定の間隔を隔てて配置されている。ストロボ発光部400は、必要に応じて被写体に向けてストロボ光を照射する。ストロボ発光部400の構成については、後述する。シャッターボタン331は、ユーザからのシャッタ動作指示を受け付けるためのボタンである。
【0015】
ステレオカメラ1の背面には、図1(B)に示すように、表示部310と、操作キー332と、電源キー333と、が設けられている。表示部310は、例えば、液晶表示装置等から構成され、ステレオカメラ1を操作するために必要な種々の画面や、撮影時のライブビュー画像、撮像画像等を表示するための電子ビューファインダとして機能する。
【0016】
操作キー332は、十字キーや決定キー等を含み、モード切替や表示切替等、ユーザからの各種の操作を受け付ける。電源キー333は、ステレオカメラ1の電源のオン・オフをユーザから受け付けるためのボタンである。
【0017】
図2は、ステレオカメラ1の電気的構成を示すブロック図である。図2に示すように、ステレオカメラ1は、第1撮像部100Aと、第2撮像部100Bと、データ処理部200と、インターフェース部300と、ストロボ発光部400と、を備える。なお、図面において、適宜、インターフェース部のことをI/F部と表記する。
【0018】
第1撮像部100A及び第2撮像部100Bは、それぞれ被写体を撮像する機能を担う部分である。ステレオカメラ1は、いわゆる複眼カメラであり、このように2つの撮像部を有する構成であるが、第1撮像部100Aと第2撮像部100Bは同一の構成である。以下、第1撮像部100Aについての構成には参照符号の末尾に「A」を付し、第2撮像部100Bについての構成には参照符号の末尾に「B」を付す。
【0019】
図2に示すように、第1撮像部100A(第2撮像部100B)は、光学装置110A(110B)、及び、イメージセンサ部120A(120B)等から構成されている。光学装置110A(110B)は、例えば、レンズ、絞り機構、シャッタ機構、等を含み、撮像に係る光学的動作を行う。即ち、光学装置110A(110B)の動作により、入射光が集光されるとともに、焦点距離、絞り、シャッタスピード等といった、画角やピント、露出等にかかる光学的要素の調整がなされる。
【0020】
なお、光学装置110A(110B)に含まれるシャッタ機構はいわゆるメカニカルシャッタであり、イメージセンサの動作のみでシャッタ動作をおこなう場合には、光学装置110A(110B)にシャッタ機構が含まれていなくてもよい。また、光学装置110A(110B)は、後述する制御部210による制御によって動作する。
【0021】
イメージセンサ部120A(120B)は、光学装置110A(110B)によって集光された入射光に応じた電気信号を生成する。イメージセンサ部120A(120B)は、例えば、CCD(Charge Coupled Device)やCMOS(Complementally Metal Oxide Semiconductor)等のイメージセンサから構成され、光電変換を行うことで、受光した光の強度に応じた電気信号を生成し、生成した電気信号をデータ処理部200に出力する。
【0022】
なお、上述したように、第1撮像部100Aと第2撮像部100Bとは同一の構成である。より詳細には、レンズの焦点距離fやF値、絞り機構の絞り範囲、イメージセンサのサイズや画素数、配列、画素面積等の各仕様が全て同一である。第1撮像部100Aと第2撮像部100Bとを同時に動作させた場合、同一被写体について2つの画像(ペア画像)が撮像されるが、光軸位置は横方向で異なっている。
【0023】
データ処理部200は、第1撮像部100A及び第2撮像部100Bによる撮像動作によって生成された電気信号を処理し、撮像画像を示すデジタルデータを生成すると共に、撮像画像に対する画像処理等を行う。データ処理部200は、制御部210、画像処理部220、画像メモリ230、画像出力部240、記憶部250、外部記憶部260、等から構成される。
【0024】
制御部210は、例えば、CPU(Central Processing Unit)等のプロセッサや、RAM(Random Access Memory)等の主記憶装置等から構成され、記憶部250等に格納されているプログラムを実行することで、ステレオカメラ1の各部を制御する。また、本実施形態では、所定のプログラムを実行することで、後述する三次元モデリング処理等にかかる機能が制御部210によって実現する。
【0025】
画像処理部220は、例えば、ADC(Analog-Digital Converter)、バッファメモリ、画像処理用のプロセッサ(いわゆる、画像処理エンジン)等から構成され、イメージセンサ部120A及び120Bによって生成された電気信号に基づいて、撮像画像を示すデジタルデータを生成する。即ち、イメージセンサ部120A(120B)から出力されたアナログ電気信号をADCがデジタル信号に変換して順次バッファメモリに格納すると、バッファされたデジタルデータに対し、画像処理エンジンが、いわゆる現像処理等を行うことで、画質の調整やデータ圧縮等を行う。
【0026】
画像メモリ230は、例えば、RAMやフラッシュメモリ等の記憶装置から構成され、画像処理部220によって生成された撮像画像データや、制御部210によって処理される画像データ等を一時的に保存する。
【0027】
画像出力部240は、例えば、RGB信号を生成する回路等から構成され、画像メモリ230に格納された画像データをRGB信号等に変換して表示画面(表示部310等)に出力する。
【0028】
記憶部250は、例えば、ROM(Read Only Memory)やフラッシュメモリ等の記憶装置から構成され、ステレオカメラ1の動作に必要なプログラムやデータやカウンタ等を格納する。本実施形態では、制御部210等が実行する動作プログラムや、その実行時に必要となるパラメータや演算式等のデータが記憶部250に格納されているものとする。
【0029】
外部記憶部260は、例えば、メモリカード等といった、ステレオカメラ1に着脱可能な記憶装置から構成され、ステレオカメラ1で撮像した画像データ、三次元モデルデータ等を格納する。
【0030】
インターフェース部300は、ステレオカメラ1と、ユーザあるいは外部装置との間のインターフェースに係る機能を担う処理部であり、表示部310、外部インターフェース部320、操作部330等から構成される。
【0031】
表示部310は、上述したように、例えば、液晶表示装置等から構成され、ユーザがステレオカメラ1を操作するために必要な種々の画面や、撮影時のライブビュー画像、撮像画像等を表示出力する。本実施形態では、画像出力部240からの画像信号(RGB信号)等に基づいて撮像画像等の表示出力が行われる。
【0032】
外部インターフェース部320は、例えば、USB(Universal Serial Bus)コネクタやビデオ出力端子等から構成され、外部のコンピュータ装置への画像データの出力や外部モニタ装置への撮像画像の表示出力等を行う。
【0033】
操作部330は、ステレオカメラ1の外面上に設けられている各種ボタン等によって構成され、ユーザによる操作に応じた入力信号を生成して制御部210に送出する。操作部330を構成するボタンには、上述したように、シャッターボタン331、操作キー332、電源キー333等が含まれる。
【0034】
ストロボ発光部400は、例えば、キセノンランプ(キセノンフラッシュ)により構成される。ストロボ発光部400は、制御部210の制御に従って被写体にストロボ光を照射する。
【0035】
以上、本発明を実現するために必要となるステレオカメラ1の構成について説明したが、ステレオカメラ1は、このほかにも、一般的なステレオカメラの機能を実現するための構成を備えているものとする。
【0036】
ここで、図3を参照して、ステレオカメラ1の動作のうち、三次元モデリングに係る動作について説明する。
【0037】
図3は、ステレオカメラ1の主要部の構成、つまり、三次元モデリングに係る動作を実現するための構成を示すブロック図である。
【0038】
図3に示すように、ステレオカメラ1は、画像受付部11、三次元モデル生成部12、三次元モデル選択部13、特徴点抽出部14、特徴点選択部15、座標変換パラメータ取得部16、座標変換部17、三次元モデル合成部18を備える。これらの要素は、例えば、制御部210により構成される。
【0039】
画像受付部11は、一度の撮像により一組の画像を取得するステレオカメラ1を用いて、被写体を異なる角度から複数回撮像することにより得られる複数の画像の組の入力を受け付ける。
【0040】
三次元モデル生成部12は、受け付けられた複数の画像の組のそれぞれに基づいて、被写体の三次元モデルを複数生成する。
【0041】
三次元モデル選択部13は、生成された複数の三次元モデルの中から、被合成三次元モデルと当該被合成三次元モデルに合成する合成三次元モデルとを選択する。
【0042】
特徴点抽出部14は、選択された被合成三次元モデルから複数の第1特徴点を抽出するとともに、選択された合成三次元モデルから複数の第2特徴点を抽出する。
【0043】
特徴点選択部15は、抽出された複数の第1特徴点と第2特徴点の中から、ステレオカメラ1との距離が近い特徴点を優先的に選択する。
【0044】
座標変換パラメータ取得部16は、選択された複数の第1特徴点と複数の第2特徴点とに基づいて、当該合成三次元モデルの座標を当該被合成三次元モデルの座標系の座標に変換するための座標変換パラメータを取得する。
【0045】
座標変換部17は、取得された座標変換パラメータを用いて、合成三次元モデルの座標を被合成三次元モデルの座標系の座標に変換する。
【0046】
三次元モデル合成部18は、変換後の合成三次元モデルを当該被合成三次元モデルに合成する。
【0047】
続いて、図4に示すフローチャートを用いて、ステレオカメラ1が実行する三次元モデリング処理について説明する。ステレオカメラ1は、操作キー332などの操作により、動作モードが三次元モデリングモードに設定されると、図4に示す三次元モデリング処理を実行する。
【0048】
本実施形態においては、シャッターボタン331が押圧されている間、被写体の撮像、三次元モデルの生成、生成された三次元モデルの合成、合成後の三次元モデルのプレビュー表示、などが繰り返して実行される。ここで、最初の撮像により得られる三次元モデルであって、合成の基礎となる三次元モデルを、被合成三次元モデルという。また、2回目以降の撮像により得られる三次元モデルであって、被合成三次元モデルに合成される三次元モデルを、合成三次元モデルという。そして、三次元モデリング処理においては、撮像回数分の三次元モデルを合成して得られる三次元モデルが順次生成される。なお、被写体は、撮像毎に異なる角度から撮像されるものとする。
【0049】
まず、制御部210は、シャッターボタン331が押圧されたか否かを判別する(ステップS101)。制御部210は、シャッターボタン331が押圧されていないと判別すると(ステップS101:NO)、再度、ステップS101の処理を実行する。一方、制御部210は、シャッターボタン331が押圧されたと判別すると(ステップS101:YES)、撮像回数カウンタNを1に初期化する(ステップS102)。なお、撮像回数カウンタNは、例えば、記憶部250に記憶されている。
【0050】
続いて、制御部210は、第1撮像部100A、第2撮像部100B、及び、画像処理部220等を制御して、被写体を撮像する(ステップS103)。制御部210により被写体が撮像されると、2枚の平行同位画像(ペア画像)が得られる。取得されたペア画像は、例えば、画像メモリ230に記憶される。なお、ペア画像のうち、第1撮像部100Aによる撮像により得られた画像を画像A、第2撮像部100Bによる撮像により得られた画像を画像Bとする。
【0051】
続いて、制御部210は、画像メモリ230に記憶されているペア画像に基づいて、三次元モデル生成処理を実行する(ステップS104)。
【0052】
ここで、図5に示すフローチャートを参照して、三次元モデル生成処理について説明する。なお、三次元モデル生成処理は、一組のペア画像に基づいて三次元モデルを生成する処理である。つまり、三次元モデル生成処理は、一つのカメラ位置から見た三次元モデルを生成する処理と考えることができる。
【0053】
まず、制御部210は、特徴点の候補を抽出する(ステップS201)。例えば、制御部210は、画像Aに対してコーナー検出を行う。コーナー検出においては、ハリスなどのコーナー特徴量が、所定閾値以上かつ所定半径内で最大になる点がコーナー点として選択される。従って、被写体の先端など、他の点に対して特徴のある点が特徴点として抽出される。
【0054】
続いて、制御部210は、ステレオマッチングを実行し、画像Aの特徴点に対応する点(対応点)を画像Bから探す(ステップS202)。具体的には、制御部210は、テンプレートマッチングにより類似度が所定閾値以上かつ最大のもの(相違度が所定閾値以下かつ最小のもの)を対応点とする。テンプレートマッチングには、例えば、残差絶対値和(SAD)、残差平方和(SSD)、正規化相関(NCCやZNCC)、方向符号相関など、様々な既知の技法が利用可能である。
【0055】
続いて、制御部210は、ステップS202において見つけられた対応点の視差情報、第1撮像部100Aおよび第2撮像部100Bの画角、基線長などから、特徴点の三次元位置情報を算出する(ステップS203)。算出された特徴点の三次元位置情報は、例えば、記憶部250に記憶される。
【0056】
続いて、制御部210は、ステップS203において算出された特徴点の三次元位置情報をもとにドロネー三角形分割を実行し、ポリゴン化を実行する(ステップS204)。生成されたポリゴン情報(三次元モデル)は、例えば、記憶部250に記憶される。制御部210は、ステップS204の処理を完了すると、三次元モデル生成処理を終了する。
【0057】
なお、特徴点の数が少ないと、被写体の形状情報が欠損し、被写体の忠実な三次元モデルが得られない。一方、より多くの特徴点が得られるように、特徴点の候補を抽出する条件やステレオマッチングの条件を緩くすると、不適切な点が特徴点の候補に含まれたり、ステレオマッチングで誤対応が発生したりして、位置精度が低下、つまり、モデリング精度が悪化する。このため、モデリング精度の悪化を防ぎつつ、被写体の忠実な三次元モデルを得ることができるように、適切な数の特徴点を抽出する必要がある。
【0058】
また、三次元モデル(三次元情報)は、例えば、以下の3つの式を用いて、ペア画像から求められる。ペア画像から三次元情報を取得する方法の詳細については、例えば、非特許文献1、デジタル画像処理、2006年3月1日発行、CG−ARTS協会、に開示されている。
X=(b*u)/(u−u’)
Y=(b*v)/(u−u’)
Z=(b*f)/(u−u’)
ここで、bは、光学装置110Aと110Bとの間の距離で、基線長と呼ばれる。(u,v)は、光学装置110Aにより撮像された被写体の画像上の座標を示し、(u’,v’)は光学装置110Bにより撮像された被写体の画像上の座標を示す。上記3つの式における(u−u’)は、光学装置110Aと光学装置110Bとから、同じ被写体を撮像したときに得られる2つの画像上における被写体の座標の差であり、視差と呼ばれる。fは、光学装置110Aの焦点距離を示す。既に説明したとおり、光学装置110Aと110Bとは同じ構成であり、焦点距離fも等しい。
【0059】
図4に戻り、三次元モデル生成処理(ステップS104)が終了すると、制御部210は、撮像回数カウンタNが1であるか否かを判別する(ステップS105)。ここで、撮像回数カウンタNが1であることは、最初の撮像の直後であることを示す。制御部210は、撮像回数カウンタNが1であると判別すると(ステップS105:YES)、ステップS104の処理により生成された三次元モデルを、被合成三次元モデルに設定する(ステップS106)。
【0060】
一方、制御部210は、撮像回数カウンタNが1ではない、つまり、最初の撮像の直後ではないと判別すると(ステップS105:NO)、カメラ位置推定処理を実行する(ステップS107)。ここで、カメラ位置推定処理の詳細について、図6のフローチャートを参照して説明する。なお、カメラ位置推定処理においては、最初の撮像時のステレオカメラ1の位置に対する、今回の撮像時のステレオカメラ1の相対的な位置が求められる。なお、この相対的な位置が求められることは、今回の撮像により得られた三次元モデルの座標を、最初の撮像により得られた三次元モデルの座標系の座標に変換する座標変換パラメータが求められることと同様である。
【0061】
まず、制御部210は、被合成三次元モデルおよび合成三次元モデルの双方から、カメラ位置(座標変換パラメータ)算出に用いる三次元空間上の特徴点を選択する特徴点選択処理を実行する。(ステップS301)。ここで、特徴点選択処理について、図7のフローチャートを参照して説明する。
【0062】
まず、制御部210は、被合成三次元モデルおよび合成三次元モデルの双方から三次元空間上の特徴点を取得する(ステップS401)。例えば、制御部210は、被合成三次元モデル(もしくは、合成三次元モデル)の特徴点のうち、コーナー強度が高く、ステレオマッチングの一致度が高いものを取得する。または、制御部210は、ペア画像間でエピ線拘束を考慮した上で、SURF(Speeded−Up Robust Features)特徴量によるマッチングを実行することで、特徴点を取得するようにしてもよい。または、前述した三次元モデル作成処理(図5)で被合成三次元モデル(もしくは、合成三次元モデル)を作成した際に、ステップS201で抽出した特徴点の候補を、被合成三次元モデル(もしくは、合成三次元モデル)から取得してもよい。
【0063】
続いて、制御部210は、被合成三次元モデルから取得した各特徴点を、ステレオカメラ1との距離に基づいて、2つの集合(クラスタ)に分類(クラスタリング)する(ステップS402)。第1撮像部100Aと第2撮像部100Bとにおける透視投影モデルを図8に示す。この図において、特徴点とステレオカメラ1との距離は、第1撮像部100Aのレンズ主点であるC1を原点とする座標としたときのZ軸方向の座標値として表せる。なお、クラスタリングの手法としては、例えば、判別分析法を用いればよい。判別分析法は、2つのクラスタ間の分散が最大になるようにクラスタリングする手法である。このようにステレオカメラ1との距離(Z座標)に基づいてクラスタリングすることで、ステレオカメラ1に近い被写体に対応する特徴点から構成されるクラスタと、ステレオカメラ1から遠い背景に対応する特徴点から構成されるクラスタとが作成されることとなる。なお、最短距離法、最長距離法、群平均法などの他の手法を用いてクラスタリングしてもよい。
【0064】
図7に戻り、続いて、制御部210は、合成三次元モデルに対しても、同様に、取得した各特徴点候補を、ステレオカメラ1との距離(図8でのZ座標)に基づいて、2つの集合(クラスタ)に分類(クラスタリング)する(ステップS403)。
【0065】
続いて、制御部210は、ステップS402とステップS403との処理でそれぞれクラスタリングした2つのクラスタのうち、ステレオカメラとの距離が近い方のクラスタに属する特徴点のみを、後述するカメラ位置(座標変換パラメータ)を算出するために用いる特徴点として選択する(ステップS404)。以上で、特徴点選択処理は終了する。特徴点選択処理により、カメラから近い特徴点が優先的に選択される。
【0066】
図6に戻り、制御部210は、特徴点選択処理(ステップS301)が終了すると、該特徴点選択処理で選択された被合成三次元モデルの特徴点のうちから、3つの特徴点を選択する(ステップS302)。ここで、選択される3つの特徴点は、以下に示す(A)および(B)の条件を満たすものが選択される。(A)の条件は、3つの特徴点を頂点とする三角形の面積が小さすぎないことであり、(B)の条件は、3つの特徴点を頂点とする三角形が極端に鋭角な角を持たないことである。例えば、制御部210は、上記(A)および(B)の条件を満たす3つの特徴点が選択されるまで、ランダムに3つの特徴点を選択する。なお、(A)および(B)の条件を満たすか否かの判別は、三角形の面積や角度を所定の閾値と比較することで行えばよい。
【0067】
続いて、制御部210は、特徴点選択処理(ステップS301)で選択された合成三次元モデルの特徴点を3つの頂点とする三角形の中から、ステップS302において選択された3つの特徴点を頂点とする三角形と合同な三角形を探索する(ステップS303)。例えば、3辺の長さがほぼ等しい場合、2つの三角形は合同であると判別される。ステップS303の処理は、合成三次元モデルの特徴点のうち、ステップS302において被合成三次元モデルから選択された3つの特徴点に対応すると考えられる3つの特徴点を探索する処理と考えることもできる。なお、制御部210は、特徴点やその周辺の色情報、またはSURF特徴量などで三角形の候補をあらかじめ絞ることで、探索を高速化してもよい。探索された三角形を示す情報(典型的には、当該三角形の頂点を構成する3つの特徴点の三次元空間上の座標を示す情報)は、例えば、記憶部250に記憶される。合同な三角形が複数ある場合、全ての三角形を示す情報が、記憶部250に記憶される。
【0068】
続いて、制御部210は、ステップS303の探索において、少なくとも1つの合同な三角形が探索されたか否かを判別する(ステップS304)。なお、探索された合同な三角形が多すぎる場合、合同な三角形が探索されなかったものとみなしてもよい。
【0069】
制御部210は、少なくとも1つの合同な三角形が探索されたと判別すると(ステップS304:YES)、合同な三角形を一つ選択する(ステップS305)。一方、制御部210は、合同な三角形が1つも探索されなかったと判別すると(ステップS304:NO)、ステップS302に処理を戻す。
【0070】
ステップS305の処理を完了すると、制御部210は、座標変換パラメータ取得処理を実行する(ステップS306)。座標変換パラメータ取得処理については、図9に示すフローチャートを参照して、詳細に説明する。なお、座標変換パラメータ取得処理は、合成三次元モデルの座標を被合成三次元モデルの座標系の座標に変換するための、座標変換パラメータを取得する処理である。なお、座標変換パラメータ取得処理は、ステップS302において選択された3つの特徴点と、ステップS303において選択された合同な三角形と、の組み合わせ毎に実行される。ここで、座標変換パラメータは、式(1)および(2)で与えられる対応点ペア(特徴点ペア、頂点ペア)に対して、式(3)を満たす回転行列Rと移動ベクトルtとを求める処理である。式(1)および(2)のpとp’とは、各々のカメラ視線から見た三次元空間上の座標を持つ。なお、Nは、対応点ペアのペア数である。
【数1】
【数2】
【数3】
【0071】
まず、制御部210は、式(4)および(5)に示すように、対応点ペアを設定する(ステップS501)。ここで、c1とc2とは、対応する列ベクトルが対応点の座標になる行列である。この行列から回転行列Rと移動ベクトルtとを直接求めることは難しい。しかしながら、pとp’との分布がほぼ等しいことから、対応点の重心を合わせてから回転すれば、対応点を重ね合わせることができる。このことを利用して、回転行列Rと移動ベクトルtとを求める。
【数4】
【数5】
【0072】
つまり、制御部210は、式(6)および(7)を用いて、特徴点の重心である重心t1およびt2を求める(ステップS502)。
【数6】
【数7】
【0073】
次に、制御部210は、式(8)および(9)を用いて、特徴点の分布である分布d1およびd2を求める(ステップS503)。ここで、上述したように、分布d1と分布d2との間には、式(10)の関係がある。
【数8】
【数9】
【数10】
【0074】
次に、制御部210は、式(11)および(12)を用いて、分布d1およびd2の特異値分解を実行する(ステップS504)。特異値は、降順に並べられているものとする。ここで、記号*は複素共役転置を表す。
【数11】
【数12】
【0075】
なお、制御部210は、ステップS504で特異値分解した分布d1およびd2が二次元以上(即ち、立体である)か否かを判別し、二次元以上でなければ、回転行列Rを求めることができないので、エラーとして処理は終了する。特異値は、分布の広がり具合に対応している。従って、最大の特異値とそれ以外の特異値との比率や、特異値の大きさを用いて分布が二次元以上であるか否かを判定すればよい。例えば、2番目に大きい特異値が、所定値以上かつ最大の特異値との比率が所定範囲内である場合に、分布が二次元以上と判定される。
【0076】
続いて、制御部210は、関連付けKを求める(ステップS505)。式(10)〜(12)から、回転行列Rは、式(13)のように表すことができる。ここで、関連付けKを、式(14)のように定義すると、回転行列Rは、式(15)のようになる。
【数13】
【数14】
【数15】
【0077】
ここで、固有ベクトルUは、分布d1およびd2の固有ベクトルに相当し、関連付けKにより関連付けられる。関連付けKの要素は、固有ベクトルが対応する場合は1か−1が、そうでない場合は0が与えられる。ところで、分布d1およびd2が等しいことから、特異値も等しい。つまり、Sも等しい。実際には、分布d1と分布d2とには誤差が含まれているので、誤差を丸める。以上を考慮すると、関連付けKは、式(16)のようになる。つまり、制御部210は、ステップS505において、式(16)を計算する。
【数16】
【0078】
続いて、制御部210は、回転行列Rを計算する(ステップS506)。具体的には、制御部210は、式(15)と式(16)とに基づいて、回転行列Rを計算する。計算により得られた回転行列Rを示す情報は、例えば、記憶部250に記憶される。
【0079】
続いて、制御部210は、移動ベクトルtを計算し(ステップS507)、座標変換パラメータ取得処理は終了する。分布d1およびd2が二次元ではない場合(即ち、三次元である場合)、pとp’とは、式(17)の関係を満たす。式(17)を変形すると、式(18)のようになる。式(18)と式(3)との対応から、移動ベクトルtは式(19)のようになる。
【数17】
【数18】
【数19】
【0080】
なお、分布d1およびd2が二次元である場合(即ち、分布が平面である場合)、関連付けKの一部が破壊されている可能性がある。従って、この場合、制御部210は、外積関係を確認する。なお、ここでいう外積関係の確認とは、回転行列Rの列ベクトル(および、行ベクトル)が座標系による制約を満たすことの確認である。そして、外積関係を検証した結果、問題があれば、制御部210は、関連付けKを修正し、修正したKを用いて回転行列Rを再計算してから、移動ベクトルtを計算する。
【0081】
図6に戻り、座標変換パラメータ取得処理(ステップS306)が終了すると、制御部210は、取得された座標変換パラメータを用いて、座標系を合わせる(ステップS307)。具体的には、式(3)を用いて、合成三次元モデルの特徴点の座標を、被合成三次元モデルの座標系の座標に変換する。
【0082】
続いて、制御部210は、特徴点ペアを記憶する(ステップS308)。ここで、特徴点ペアは、被合成三次元モデルの特徴点と、座標変換後の合成三次元モデルの特徴点のうち、当該被合成三次元モデルの特徴点との距離が所定値以下かつ最近傍である特徴点と、から構成される。ここで、特徴点ペアの数が多いほど、ステップS302における3つの特徴点の選択、ならびに、ステップS305における合同な三角形の選択が適切であったと推定される。なお、特徴点ペアは、座標変換パラメータの取得条件(ステップS302における3つの特徴点の選択、ならびに、ステップS305における合同な三角形の選択)とともに、記憶部250などに記憶すればよい。
【0083】
続いて、制御部210は、ステップS303において探索された全ての合同な三角形が、ステップS305において選択されたか否かを判別する(ステップS309)。
【0084】
制御部210は、いずれかの合同な三角形が選択されていないと判別すると(ステップS309:NO)、ステップS305に処理を戻す。
【0085】
一方、制御部210は、全ての合同な三角形が選択されたと判別すると(ステップS309:YES)、終了条件を満たすか否かを判別する(ステップS310)。本実施形態では、終了条件は、所定個数以上の条件について座標変換パラメータを取得したこととする。
【0086】
制御部210は、終了条件を満たしていないと判別すると(ステップS310:NO)、ステップS302に処理を戻す。
【0087】
一方、制御部210は、終了条件を満たしていると判別すると(ステップS310:YES)、最適な座標変換パラメータを特定し(ステップS311)、カメラ位置推定処理を終了する。具体的には、特徴点ペアが最も多く取得された座標変換パラメータが特定される。言い換えれば、ステップS302における3つの特徴点の選択、ならびに、ステップS305における合同な三角形の選択が最適であるものが特定される。なお、座標変換パラメータは、回転行列Rと移動ベクトルtとである。なお、ステップS311では、特徴点ペアの平均距離が最も小さくなる座標変換パラメータが特定されてもよい。
【0088】
図4に戻り、カメラ位置推定処理(ステップS107)が終了すると、制御部210は、三次元モデル合成処理を実行する(ステップS108)。三次元モデル合成処理については、図10のフローチャートを参照して説明する。
【0089】
まず、制御部210は、カメラ位置推定処理(ステップS107)で特定した座標変換パラメータを用いて、全ての三次元モデルを重ねる(ステップS601)。例えば、2回目の撮像の場合、1回目に撮像されたペア画像に基づいて生成された被合成三次元モデルに、2回目に撮像されたペア画像に基づいて生成された座標変換後の合成三次元モデルが重ねられる。また、3回目の撮像の場合、1回目に撮像されたペア画像に基づいて生成された被合成三次元モデルに、2回目に撮像されたペア画像に基づいて生成された座標変換後の合成三次元モデルが重ねられ、さらに、3回目に撮像されたペア画像に基づいて生成された座標変換後の合成三次元モデルが重ねられる。
【0090】
続いて、制御部210は、各特徴点の重なり具合から信頼性の低い特徴点を除去する(ステップS602)。例えば、ある三次元モデルの注目特徴点に対する、他の三次元モデルの最近傍の特徴点の分布から、当該注目特徴点のマハラノビス距離が計算され、このマハラノビス距離が所定値以上の場合は当該注目特徴点の信頼性が低いと判別される。なお、注目特徴点からの距離が所定値以上の特徴点は、最近傍の特徴点に含めないようにしても良い。また、最近傍の特徴点の数が少ない場合、信頼性が低いものと見なされてもよい。なお、特徴点を実際に除去する処理は、全ての特徴点に対して、除去するか否かが判別された後に、実行されるものとする。
【0091】
続いて、制御部210は、同一と見なせる特徴点を統合する(ステップS603)。例えば、所定距離以内の特徴点は、全て同一の特徴点を表すグループに属するものとして扱われ、これらの特徴点の重心が新たな特徴点とされる。
【0092】
続いて、制御部210は、ポリゴンメッシュを再構成する(ステップS604)。つまりステップS603において求められた新たな特徴点に基づいて、ポリゴン(三次元モデル)が生成される。以上で、三次元モデル合成処理は終了する。
【0093】
なお、三次元モデル生成処理(ステップS104)において生成された三次元モデルを示す情報(典型的には、特徴点の座標情報)は、シャッターボタン331が押圧されている間は、全撮像分(全視線分)保持され、基本的に変更されない。つまり、三次元モデル合成処理(ステップS108)においては、全撮像分の三次元モデルに基づいて、表示用もしくは保存用の高精細な三次元モデルを別途作成する処理である。
【0094】
図4に戻り、三次元モデル合成処理(ステップS108)が終了すると、制御部210は、撮像回数カウンタNの値を1つ増加させる(ステップS109)。
【0095】
続いて、制御部210は、合成後の三次元モデルを表示する(ステップS110)。具体的には、制御部210は、三次元モデル合成処理(ステップS108)において取得された三次元モデルを、表示部310に表示する。これにより、ユーザは、現在までの撮像において、どの程度正確な三次元モデルが生成されているかを知ることができる。
【0096】
続いて、制御部210は、シャッターボタン331が離されたか否かを判別する(ステップS111)。制御部210は、シャッターボタン331が離されたと判別すると(ステップS111:YES)、合成後の三次元モデルを外部記憶部260などに保存した後(ステップS112)、三次元モデリング処理を完了する。一方、制御部210は、シャッターボタン331が離されていないと判別すると(ステップS111:NO)、ステップS103に処理を戻す。
【0097】
このように、第1の実施形態に係るステレオカメラ1によれば、複数の三次元モデルが合成されるので、形状情報の欠損を抑えつつ、高精度な三次元モデリングが可能になる。また、第1の実施形態に係るステレオカメラ1によれば、信頼性が低いと考えられる特徴点が除去され、さらに、同一と見なせる特徴点が統合されて、三次元モデリングがなされるため、適切な三次元モデリングが可能となる。さらに、本実施形態に係るステレオカメラ1は、同時に様々な角度から被写体を撮像する構成ではないため、小型化が可能である。また、ユーザは、表示部310に表示されたポリゴンを見ることで、どの程度正確な三次元モデルが生成されているかを知ることができる。従って、ユーザは、十分に三次元モデリングがなされたか、あるいは、十分な三次元モデリングのために、どのような角度から撮像する必要があるかなどを判断することができる。
【0098】
さらに、本実施形態に係るステレオカメラ1によれば、各三次元モデルの特徴点からカメラ位置(座標変換パラメータ)を算出する際に、ステレオカメラ1に近い特徴点を優先的に用いて計算を行う。一般的に、三次元モデルの特徴点は、ステレオカメラ1に近い点ほど被写体上の点に対応し、位置精度が高い。従って、このようにすることで、より正確なカメラ位置を算出できるため、より高精度な三次元モデリングが可能となる。
【0099】
(第2の実施形態)
第1の実施形態では、撮像部が2つあるステレオカメラ1を用いて三次元モデルを作成した。しかしながら、本発明は、撮像部が1つしか無い単眼カメラ2にも適用することが可能である。単眼カメラ2を用いて三次元モデルを作成する三次元モデリング処理について、図11、図12を参照して説明する。
【0100】
図11は、単眼カメラ2の電気的構成を示すブロック図である。前述したステレオカメラ1では第1撮像部100Aと第2撮像部100Bとの2つの撮像部を備えるのに対し、単眼カメラ2は、1つの撮像部100のみを備える。撮像部100は、光学装置110とイメージサンサ部120とを備える。なお、単眼カメラ2のその他の構成は、ステレオカメラ1と同様であるため、同一の符号を付し、説明は省略する。
【0101】
続いて、図12に示すフローチャートを用いて、単眼カメラ2が実行する三次元モデリング処理について説明する。単眼カメラ2は、操作キー332などの操作により、動作モードが三次元モデリングモードに設定されると、図12に示す三次元モデリング処理を実行する。
【0102】
三次元モデリング処理が開始されると、まず、制御部210は、撮像部100を制御して、被写体を撮像した画像(以下、第1画像という)を取得(撮像)する(ステップS701)。取得された画像は、例えば、画像メモリ230に記憶される。
【0103】
ステップS701の処理が完了した後、ユーザによって、単眼カメラ2は、第1画像を撮影した撮影位置と異なる撮影位置へ移動させられる。そして、所定時間が経過した後、又は、ユーザからの所定の指示操作に応答して、単眼カメラ2の制御部210は、ステップS701と同様に、撮像部100を制御して、被写体を撮像した画像(以下、第2画像という)を取得(撮像)する(ステップS702)。取得された画像は、例えば、画像メモリ230に記憶される。
【0104】
続いて、制御部210は、対象物上の同じ点を表した第1画像上の特徴点と、第2画像上の特徴点とを対応させた点(対応点)を取得する(ステップS703)。具体的には、制御部210は、第1画像及び第2画像に対してハリスのコーナー検出法を用いることで、第1画像上の特徴点(以下、第1特徴点という)と、第2画像上の特徴点(以下、第2特徴点という)とを取得する。次に、第1特徴点と第2特徴点との間で、特徴点から所定の距離にある画像領域(特徴点近傍画像)に対するテンプレート照合を行うと共に、テンプレート照合で算出した照合度が所定の閾値以上であり、かつ最も高い値となる第1特徴点と第2特徴点とを対応させて、それぞれを対応点とする。或いは、SURF特徴量によるマッチングを実行することで、対応点をとっても良い。
【0105】
続いて、制御部210は、取得した特徴点の対応から、下記式(20)で表せる基礎行列Eを取得する(ステップS704)。なお、tは移動ベクトル、Rは回転行列であり、第2画像の画像座標系を第1画像の画像座標系に変換するための座標変換パラメータである。また、記号×は外積を表す。
【数20】
【0106】
具体的には、制御部210は、第1画像の撮像時における撮像部100の主点と焦点との間の焦点距離を、撮像部100のレンズ駆動状態から算出する。そして、制御部210は、各特徴点の画像位置と焦点距離と用いて、基礎行列Eを算出すればよい。
【0107】
続いて、制御部210は、基礎行列Eを分解して、移動ベクトルtと回転行列Rとを取得する(ステップS705)。具体的には、制御部210は、行列「trans(E)・E」の最小固有値の固有ベクトルを移動ベクトルtとして算出する。なお、transは、行列の転置を示す記号である。続いて、制御部210は、以下の式(21)を用いて、算出対象とする回転行列R及び既に算出した移動ベクトルtとの外積と、既に算出した基礎行列Eとの誤差が最小になるように、最小二乗法等を用いて回転行列Rを算出する。なお、式(21)において、記号Σは行列の全要素の和を表し、記号⇒minは左辺の値を最小化することを表す。
【数21】
【0108】
続いて、制御部210は、第1画像、第2画像各々の、カメラ座標系への射影行列(カメラ射影パラメータ)を取得する(ステップS706)。第1画像のカメラ座標系への射影行列(カメラ射影パラメータ)をPとすると、Pは、カメラ内部の状態を示すカメラ内部パラメータAと、カメラの位置を示すカメラ外部パラメータ[R|t]との内積として式(22)のように表せる。また、カメラ内部パラメータAは、カメラの焦点距離fや、光軸位置(u0,v0)等により、式(23)のように表せる。
【数22】
【数23】
【0109】
ここでは、第1画像の撮像位置を基準としたカメラ射影パラメータを求めるため、移動ベクトルtと回転行列Rとは座標変換しないことを示すベクトル及び行列となる。従って、式(22)は、式(24)のように表せ、これを計算することで、第1画像のカメラ座標系への射影行列(カメラ射影パラメータ)Pを求めることができる。
【数24】
【0110】
また、第2画像のカメラ座標系への射影行列(カメラ射影パラメータ)P’は、ステップS705で取得した移動ベクトルtと回転行列Rとを用いて、式(25)のように求めることができる。なお、記号|は行列の連結を示す記号である。
【数25】
【0111】
続いて、制御部210は、ステップS705で取得した移動ベクトルtと回転行列R、及び、ステップS706で取得したカメラ射影パラメータP,P’とを用いて、各特徴点の三次元情報を取得する(ステップS707)。言い換えれば、この処理は、第1画像撮像時の単眼カメラ2の撮像位置を原点とする各特徴点の世界座標(X,Y,Z)を取得する処理である。
【0112】
例えば、第1画像上の特徴点の位置を(u,v)、この特徴点に対応する第2画像上の特徴点の位置を(u’,v’)とする。この場合、各特徴点の三次元情報(世界座標(X,Y,Z))は式(26)を満たす。従って、最小2乗法等の手法を用いて、式(26)から、世界座標(X,Y,Z)を、求めることが可能となる。そして、この計算を、ステップS703で特定した全ての対応する特徴点の組に対して行えばよい。
【数26】
なお、記号〜は両辺が定数倍の違いを許して等しいことを表す。
【0113】
続いて、制御部210は、このようにして三次元情報を取得した各特徴点を、単眼カメラ2との距離(世界座標系におけるZ座標)に基づいて、2つの集合(クラスタ)に分類(クラスタリング)する(ステップS708)。クラスタリングの手法としては、例えば、判別分析法を用いればよい。
【0114】
続いて、制御部210は、クラスタリングした2つのクラスタのうち、単眼カメラ2との距離が近い方のクラスタを構成する特徴点を選択する(ステップS709)。
【0115】
続いて、制御部210は、ステップS709で選択した特徴点のみを用いて、再度、基礎行列Eを求め(ステップS710)、移動ベクトルtと回転行列Rとを求め(ステップS711)、射影行列(カメラ射影パラメータ)を求める(ステップS712)。なお、ステップS710〜ステップS712の処理は、用いる特徴点が異なる(選別されている)以外は、ステップS704〜ステップS706の処理と実質的に同じである。
【0116】
続いて、制御部210は、ステップS711で取得した移動ベクトルtと回転行列R、及び、ステップS712で取得したカメラ射影パラメータP,P’とを用いて、各特徴点の三次元情報を取得する(ステップS713)。なお、ここでは、ステップS709で選択した特徴点では無く、ステップS703で取得した全ての特徴点に対して、三次元情報を取得する。
【0117】
続いて、制御部210は、ステップS713で取得した各特徴点の三次元情報をもとにドロネー三角形分割を実行し、ポリゴン化を実行する(ステップS714)。生成されたポリゴン情報は、例えば、記憶部250に記憶される。以上で、単眼カメラ2による三次元モデル生成処理を終了する。
【0118】
このように、第2の実施形態に係る単眼カメラ2によれば、異なる位置で撮像された各画像から複数の特徴点を取得し、所得した特徴点からカメラ位置を推定し、推定したカメラ位置から特徴点の三次元情報を算出する。そして、取得した特徴点のうち、単眼カメラ2に近い特徴点を優先的に用いて、再度カメラ位置を推定し、再推定したカメラ位置から特徴点の三次元情報を再計算し、再計算された特徴点の三次元情報から三次元モデルを作成する。一般的に、撮像画像の特徴点は、単眼カメラ2に近い特徴点ほど被写体上の点に対応し、位置精度が高い。従って、このようにすることで、より正確なカメラ位置を算出できるため、より高精度な三次元モデリングが可能となる。
【0119】
(変形例)
なお、本発明は、上記各実施形態に限定されず、本発明の要旨を逸脱しない範囲での種々の変更は勿論可能である。
【0120】
例えば、第1の実施形態では、図7に示す特徴点選択処理において、ステップS401で特徴点を取得し、ステップS402及びステップS403で取得した特徴点をステレオカメラ1との距離に基づいて2つのクラスタにクラスタリングした。そして、ステップS404でステレオカメラ1に近い方のクラスタに属する特徴点を選択した。しかしながら、クラスタリングをせず、ステレオカメラ1との距離が所定の閾値以内の特徴点を選択してもよい。また、ステレオカメラ1との距離が所定の閾値以内の各特徴点に対してRANSAC(RANdom SAmple Consensus)法等のロバスト手法を適用して、選択する特徴点を決定してもよい。また、ステップS401で取得した特徴点のうち、ステレオカメラ1との距離が近いものから上位所定割合の特徴点を選択してもよい。また、ステップS401で取得した特徴点に対して、ステレオカメラ1との距離が近いほど高い評価値を示す所定の評価式を用いたRANSAC法等のロバスト推定法を適用して推定された特徴点を選択してもよい。要するに、ステレオカメラ1との距離が近い特徴点から優先的に特徴点を選択できればよい。
【0121】
また、第2実施形態の実施形態では、図12に示す三次元モデリング処理において、ステップS708で特徴点をクラスタリングした。そして、ステップS709で単眼カメラ2に近い方のクラスタの特徴点を選択した。しかしながら、クラスタリングをせず、単眼カメラ2との距離が所定の閾値以内の特徴点を選択してもよい。また、単眼カメラ2との距離が所定の閾値以内の各特徴点に対してRANSAC法等のロバスト手法を適用して、選択する特徴点を決定してもよい。また、ステップS703で取得した特徴点のうち、単眼カメラ2との距離が近いものから上位所定割合の特徴点を選択してもよい。また、ステップS703で取得した特徴点に対して、単眼カメラ2との距離が近いほど高い評価値を示す所定の評価式を用いたRANSAC法等のロバスト手法を適用して、特徴点を選択してもよい。要するに、単眼カメラ2との距離が近い特徴点から優先的に特徴点を選択できればよい。
【0122】
また、既存のステレオカメラや単眼カメラ等を本発明に係る三次元モデリング装置として機能させることも可能である。即ち、上述した制御部210が実行したようなプログラムを既存のステレオカメラや単眼カメラ等に適用し、そのステレオカメラや単眼カメラ等のCPU等が当該プログラムを実行することで、当該ステレオカメラや単眼カメラ等を本発明に係る三次元モデリング装置として機能させることができる。
【0123】
このようなプログラムの配布方法は任意であり、例えば、CD−ROM(Compact Disk Read-Only Memory)、DVD(Digital Versatile Disk)、MO(Magneto Optical Disk)、メモリカードなどのコンピュータ読み取り可能な記録媒体に格納して配布してもよいし、インターネットなどの通信ネットワークを介して配布してもよい。
【0124】
この場合、上述した本発明に係る機能を、OS(オペレーティングシステム)とアプリケーションプログラムの分担、またはOSとアプリケーションプログラムとの協働により実現する場合などでは、アプリケーションプログラム部分のみを記録媒体等に格納してもよい。
【0125】
これまで、本発明のいくつかの実施形態を説明したが、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【0126】
(付記1)
一度の撮像により一組の画像を取得するステレオカメラを用いて、被写体を異なる角度から複数回撮像することにより得られる複数の画像の組の入力を受け付ける画像受付手段と、
前記受け付けられた複数の画像の組のそれぞれに基づいて、前記被写体の三次元モデルを複数生成する三次元モデル生成手段と、
前記生成された複数の三次元モデルの中から、被合成三次元モデルと当該被合成三次元モデルに合成する合成三次元モデルとを選択する三次元モデル選択手段と、
前記選択された被合成三次元モデルから複数の第1特徴点を抽出するとともに、前記選択された合成三次元モデルから複数の第2特徴点を抽出する特徴点抽出手段と、
前記抽出された複数の第1特徴点と第2特徴点のうち前記ステレオカメラとの距離が近い特徴点を優先的に選択する特徴点選択手段と、
前記選択された複数の第1特徴点と第2特徴点とに基づいて、当該合成三次元モデルの座標を当該被合成三次元モデルの座標系の座標に変換する座標変換パラメータを取得する座標変換パラメータ取得手段と、
前記取得された座標変換パラメータを用いて、前記合成三次元モデルの座標を前記被合成三次元モデルの座標系の座標に変換する座標変換手段と、
前記座標変換後の合成三次元モデルを前記被合成三次元モデルに合成する合成手段と、を備える、
ことを特徴とする三次元モデリング装置。
【0127】
(付記2)
前記特徴点選択手段は、前記ステレオカメラとの距離に基づいて、前記抽出された複数の第1特徴点と第2特徴点とを2つのクラスタにクラスタリングし、前記ステレオカメラとの距離が近い方のクラスタに属する第1特徴点と第2特徴点を選択する、
ことを特徴とする付記1に記載の三次元モデリング装置。
【0128】
(付記3)
前記特徴点選択手段は、前記抽出された複数の第1特徴点と第2特徴点とに、前記ステレオカメラとの距離が近いほど高い評価値を示す所定の評価式によるロバスト推定法を適用して推定された特徴点を選択する、
ことを特徴とする付記1又は2に記載の三次元モデリング装置。
【0129】
(付記4)
カメラを移動させて異なる位置で被写体を撮像することにより得られる第1画像と第2画像とを取得する画像取得手段と、
前記第1画像上から複数の第1特徴点を抽出するとともに、抽出した複数の第1特徴点に対応する前記第2画像上の複数の第2特徴点を抽出する特徴点抽出手段と、
前記抽出された第1特徴点と第2特徴点のうち、撮像時における前記カメラとの距離が近い第1特徴点と第2特徴点とを優先的に選択する特徴点選択手段と、
前記選択された第1特徴点と第2特徴点とに基づいて、前記第1画像撮像時と前記第2画像撮像時とにおける前記カメラの位置関係を示す座標変換パラメータを取得する座標変換パラメータ取得手段と、
前記取得された座標変換パラメータに基づいて、前記特徴点抽出手段が抽出した複数の第1特徴点及び第2特徴点の三次元情報を取得する三次元情報取得手段と、
前記取得された複数の第1特徴点及び第2特徴点の三次元情報に基づいて、三次元モデルを作成する三次元モデル作成手段と、
を備えることを特徴とする三次元モデリング装置。
【0130】
(付記5)
三次元モデリング方法であって、
一度の撮像により一組の画像を取得するステレオカメラを用いて、被写体を異なる角度から複数回撮像することにより得られる複数の画像の組の入力を受け付ける画像受付ステップと、
前記受け付けられた複数の画像の組のそれぞれに基づいて、前記被写体の三次元モデルを複数生成する三次元モデル生成ステップと、
前記生成された複数の三次元モデルの中から、被合成三次元モデルと当該被合成三次元モデルに合成する合成三次元モデルとを選択する三次元モデル選択ステップと、
前記選択された被合成三次元モデルから複数の第1特徴点を抽出するとともに、前記選択された合成三次元モデルから複数の第2特徴点を抽出する特徴点抽出ステップと、
前記抽出された複数の第1特徴点と第2特徴点のうち前記ステレオカメラとの距離が近い特徴点を優先的に選択する特徴点選択ステップと、
前記選択された複数の第1特徴点と第2特徴点とに基づいて、当該合成三次元モデルの座標を当該被合成三次元モデルの座標系の座標に変換する座標変換パラメータを取得する座標変換パラメータ取得ステップと、
前記取得された座標変換パラメータを用いて、前記合成三次元モデルの座標を前記被合成三次元モデルの座標系の座標に変換する座標変換ステップと、
前記座標変換後の合成三次元モデルを前記被合成三次元モデルに合成する合成ステップと、を含む、
ことを特徴とする三次元モデリング方法。
【0131】
(付記6)
三次元モデリング方法であって、
カメラを移動させて異なる位置で被写体を撮像することにより得られる第1画像と第2画像とを取得する画像取得ステップと、
前記第1画像上から複数の第1特徴点を抽出するとともに、抽出した複数の第1特徴点に対応する前記第2画像上の複数の第2特徴点を抽出する特徴点抽出ステップと、
前記抽出された第1特徴点と第2特徴点のうち、撮像時における前記カメラとの距離が近い第1特徴点と第2特徴点とを優先的に選択する特徴点選択ステップと、
前記選択された第1特徴点と第2特徴点とに基づいて、前記第1画像撮像時と前記第2画像撮像時とにおける前記カメラの位置関係を示す座標変換パラメータを取得する座標変換パラメータ取得ステップと、
前記取得された座標変換パラメータに基づいて、前記特徴点抽出ステップで抽出した複数の第1特徴点及び第2特徴点の三次元情報を取得する三次元情報取得ステップと、
前記取得された複数の第1特徴点及び第2特徴点の三次元情報に基づいて、三次元モデルを作成する三次元モデル作成ステップと、を含む、
ことを特徴とする三次元モデリング方法。
【0132】
(付記7)
コンピュータに、
一度の撮像により一組の画像を取得するステレオカメラを用いて、被写体を異なる角度から複数回撮像することにより得られる複数の画像の組の入力を受け付ける画像受付機能、
前記受け付けられた複数の画像の組のそれぞれに基づいて、前記被写体の三次元モデルを複数生成する三次元モデル生成機能、
前記生成された複数の三次元モデルの中から、被合成三次元モデルと当該被合成三次元モデルに合成する合成三次元モデルとを選択する三次元モデル選択機能、
前記選択された被合成三次元モデルから複数の第1特徴点を抽出するとともに、前記選択された合成三次元モデルから複数の第2特徴点を抽出する特徴点抽出機能、
前記抽出された複数の第1特徴点と第2特徴点のうち前記ステレオカメラとの距離が近い特徴点を優先的に選択する特徴点選択機能、
前記選択された複数の第1特徴点と第2特徴点とに基づいて、当該合成三次元モデルの座標を当該被合成三次元モデルの座標系の座標に変換する座標変換パラメータを取得する座標変換パラメータ取得機能、
前記取得された座標変換パラメータを用いて、前記合成三次元モデルの座標を前記被合成三次元モデルの座標系の座標に変換する座標変換機能、
前記座標変換後の合成三次元モデルを前記被合成三次元モデルに合成する合成機能、を実現させる、
ことを特徴とするプログラム。
【0133】
(付記8)
コンピュータに、
カメラを移動させて異なる位置で被写体を撮像することにより得られる第1画像と第2画像とを取得する画像取得機能、
前記第1画像上から複数の第1特徴点を抽出するとともに、抽出した複数の第1特徴点に対応する前記第2画像上の複数の第2特徴点を抽出する特徴点抽出機能、
前記抽出された第1特徴点と第2特徴点のうち、撮像時における前記カメラとの距離が近い第1特徴点と第2特徴点とを優先的に選択する特徴点選択機能、
前記選択された第1特徴点と第2特徴点とに基づいて、前記第1画像撮像時と前記第2画像撮像時とにおける前記カメラの位置関係を示す座標変換パラメータを取得する座標変換パラメータ取得機能、
前記取得された座標変換パラメータに基づいて、前記特徴点抽出機能が抽出した複数の第1特徴点及び第2特徴点の三次元情報を取得する三次元情報取得機能、
前記取得された複数の第1特徴点及び第2特徴点の三次元情報に基づいて、三次元モデルを作成する三次元モデル作成機能、を実現させる、
ことを特徴とするプログラム。
【符号の説明】
【0134】
11・・・画像受付部、12・・・三次元モデル生成部、13・・・三次元モデル選択部、14・・・特徴点抽出部、15・・・特徴点選択部、16・・・座標変換パラメータ取得部、17・・・座標変換部、18・・・三次元モデル合成部、100A・・・第1撮像部、100B・・・第2撮像部、110A,110B・・・光学装置、111A,111B・・・レンズ、120A,120B・・・イメージセンサ部、200・・・データ処理部、210・・・制御部、220・・・画像処理部、230・・・画像メモリ、240・・・画像出力部、250・・・記憶部、260・・・外部記憶部、300・・・インターフェース部、310・・・表示部、320・・・外部インターフェース部、330・・・操作部、331・・・シャッターボタン、332・・・操作キー、333・・・電源キー、400・・・ストロボ発光部、1・・・ステレオカメラ
【技術分野】
【0001】
本発明は、被写体を適切に三次元モデリングするための三次元モデリング装置、三次元モデリング方法、ならびに、プログラムに関する。
【背景技術】
【0002】
人間、動物、あるいは、美術品などの被写体を、右眼用撮像部と左目用撮像部とを備えるステレオカメラを用いて撮像し、撮像により得られた右眼用画像と左眼用画像(ステレオ画像)に基づいて、被写体の三次元モデルを作成する技術が知られている。このような技術は、例えば、特許文献1や非特許文献1に開示されている。
【0003】
また、撮像位置を変えて複数回撮像したステレオ画像から複数の三次元モデルを作成し、作成した複数の三次元モデルを合成することで、より精度の高い三次元モデルを作成する技術が知られている。
【0004】
また、単眼カメラを移動前後で平行ステレオになるように移動させると共に、移動の前後に単眼カメラで撮像した2つの画像を用いて、撮像された対象物の三次元画像を生成する技術が知られている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第2953154号公報
【非特許文献】
【0006】
【非特許文献1】佐藤 洋一 著、「デジタル画像処理」、CG−ARTS協会出版
【発明の概要】
【発明が解決しようとする課題】
【0007】
複数の三次元モデルを精度良く合成するためには、各三次元モデルから抽出した複数の特徴点の三次元位置情報に基づいて、各三次元モデル間で撮像時のカメラ位置を推定する必要がある。同様に、単眼カメラで撮像した各画像から精度の良い三次元モデルを作成するためには、各画像から抽出した複数の特徴点の三次元位置情報に基づいて、各画像間で撮像時のカメラ位置を推定する必要がある。
【0008】
しかしながら、特徴点の三次元位置情報には比較的ノイズが多く含まれている。従って、このようなノイズの多く含まれている特徴点の三次元位置情報に基づいて求めたカメラ位置も不正確になりがちであり、作成される三次元モデルは精度の面で問題があった。
【0009】
本発明は、上記実情に鑑みてなされたものであり、精度良く三次元モデル作成をすることを特徴とする三次元モデリング装置、三次元モデリング方法、ならびに、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するため本発明の三次元モデリング装置は、
一度の撮像により一組の画像を取得するステレオカメラを用いて、被写体を異なる角度から複数回撮像することにより得られる複数の画像の組の入力を受け付ける画像受付手段と、
前記受け付けられた複数の画像の組のそれぞれに基づいて、前記被写体の三次元モデルを複数生成する三次元モデル生成手段と、
前記生成された複数の三次元モデルの中から、被合成三次元モデルと当該被合成三次元モデルに合成する合成三次元モデルとを選択する三次元モデル選択手段と、
前記選択された被合成三次元モデルから複数の第1特徴点を抽出するとともに、前記選択された合成三次元モデルから複数の第2特徴点を抽出する特徴点抽出手段と、
前記抽出された複数の第1特徴点と第2特徴点のうち前記ステレオカメラとの距離が近い特徴点を優先的に選択する特徴点選択手段と、
前記選択された複数の第1特徴点と第2特徴点とに基づいて、当該合成三次元モデルの座標を当該被合成三次元モデルの座標系の座標に変換する座標変換パラメータを取得する座標変換パラメータ取得手段と、
前記取得された座標変換パラメータを用いて、前記合成三次元モデルの座標を前記被合成三次元モデルの座標系の座標に変換する座標変換手段と、
前記座標変換後の合成三次元モデルを前記被合成三次元モデルに合成する合成手段と、を備える、
ことを特徴とする。
【発明の効果】
【0011】
本発明によれば、カメラとの距離が近い特徴点を優先的に用いて三次元モデルを作成する。従って、精度良く三次元モデルを作成することが可能となる。
【図面の簡単な説明】
【0012】
【図1】(A)は、本発明の第1の実施形態に係るステレオカメラの前面の様子を表す外観図である。(B)は、本発明の第1の実施形態に係るステレオカメラの背面の様子を表す外観図である。
【図2】本発明の第1の実施形態に係るステレオカメラの構成を示すブロック図である。
【図3】本発明の第1の実施形態に係るステレオカメラの主要部の構成を示すブロック図である。
【図4】本発明の第1の実施形態に係るステレオカメラが実行する三次元モデリング処理を示すフローチャートである。
【図5】図4に示す三次元モデル生成処理を示すフローチャートである。
【図6】図4に示すカメラ位置推定処理を示すフローチャートである。
【図7】図6に示す特徴点選択処理を示すフローチャートである。
【図8】第1撮像部と第2撮像部とにおける透視投影モデルを示した図である。
【図9】図6に示す座標変換パラメータ取得処理を示すフローチャートである。
【図10】図4に示す三次元モデル合成処理を示すフローチャートである。
【図11】本発明の第2の実施形態に係るステレオカメラの構成を示すブロック図である。
【図12】本発明の第2の実施形態に係るステレオカメラが実行する三次元モデリング処理を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、本発明の各実施形態について、図面を参照しながら詳細に説明する。本実施形態では、本発明をデジタル式のステレオカメラに適用した例を示す。なお、本発明は下記の実施形態及び図面によって限定されるものではない。また、本発明の要旨を変更しない範囲で下記の各実施形態及び図面に変更を加えることが出来る。また、図中同一または相当部分には同一符号を付す。
【0014】
(第1の実施形態)
始めに、第1の実施形態について説明する。図1(A)、(B)は、第1の実施形態に係るステレオカメラ1の外観図である。図1(A)に示すように、このステレオカメラ1の前面には、レンズ111Aと、レンズ111Bと、ストロボ発光部400と、が設けられ、上面には、シャッターボタン331が設けられている。レンズ111Aとレンズ111Bは、シャッターボタン331が上になる方向で、ステレオカメラ1を水平にした場合に、各々の中心位置が水平方向で同一線上となるように、所定の間隔を隔てて配置されている。ストロボ発光部400は、必要に応じて被写体に向けてストロボ光を照射する。ストロボ発光部400の構成については、後述する。シャッターボタン331は、ユーザからのシャッタ動作指示を受け付けるためのボタンである。
【0015】
ステレオカメラ1の背面には、図1(B)に示すように、表示部310と、操作キー332と、電源キー333と、が設けられている。表示部310は、例えば、液晶表示装置等から構成され、ステレオカメラ1を操作するために必要な種々の画面や、撮影時のライブビュー画像、撮像画像等を表示するための電子ビューファインダとして機能する。
【0016】
操作キー332は、十字キーや決定キー等を含み、モード切替や表示切替等、ユーザからの各種の操作を受け付ける。電源キー333は、ステレオカメラ1の電源のオン・オフをユーザから受け付けるためのボタンである。
【0017】
図2は、ステレオカメラ1の電気的構成を示すブロック図である。図2に示すように、ステレオカメラ1は、第1撮像部100Aと、第2撮像部100Bと、データ処理部200と、インターフェース部300と、ストロボ発光部400と、を備える。なお、図面において、適宜、インターフェース部のことをI/F部と表記する。
【0018】
第1撮像部100A及び第2撮像部100Bは、それぞれ被写体を撮像する機能を担う部分である。ステレオカメラ1は、いわゆる複眼カメラであり、このように2つの撮像部を有する構成であるが、第1撮像部100Aと第2撮像部100Bは同一の構成である。以下、第1撮像部100Aについての構成には参照符号の末尾に「A」を付し、第2撮像部100Bについての構成には参照符号の末尾に「B」を付す。
【0019】
図2に示すように、第1撮像部100A(第2撮像部100B)は、光学装置110A(110B)、及び、イメージセンサ部120A(120B)等から構成されている。光学装置110A(110B)は、例えば、レンズ、絞り機構、シャッタ機構、等を含み、撮像に係る光学的動作を行う。即ち、光学装置110A(110B)の動作により、入射光が集光されるとともに、焦点距離、絞り、シャッタスピード等といった、画角やピント、露出等にかかる光学的要素の調整がなされる。
【0020】
なお、光学装置110A(110B)に含まれるシャッタ機構はいわゆるメカニカルシャッタであり、イメージセンサの動作のみでシャッタ動作をおこなう場合には、光学装置110A(110B)にシャッタ機構が含まれていなくてもよい。また、光学装置110A(110B)は、後述する制御部210による制御によって動作する。
【0021】
イメージセンサ部120A(120B)は、光学装置110A(110B)によって集光された入射光に応じた電気信号を生成する。イメージセンサ部120A(120B)は、例えば、CCD(Charge Coupled Device)やCMOS(Complementally Metal Oxide Semiconductor)等のイメージセンサから構成され、光電変換を行うことで、受光した光の強度に応じた電気信号を生成し、生成した電気信号をデータ処理部200に出力する。
【0022】
なお、上述したように、第1撮像部100Aと第2撮像部100Bとは同一の構成である。より詳細には、レンズの焦点距離fやF値、絞り機構の絞り範囲、イメージセンサのサイズや画素数、配列、画素面積等の各仕様が全て同一である。第1撮像部100Aと第2撮像部100Bとを同時に動作させた場合、同一被写体について2つの画像(ペア画像)が撮像されるが、光軸位置は横方向で異なっている。
【0023】
データ処理部200は、第1撮像部100A及び第2撮像部100Bによる撮像動作によって生成された電気信号を処理し、撮像画像を示すデジタルデータを生成すると共に、撮像画像に対する画像処理等を行う。データ処理部200は、制御部210、画像処理部220、画像メモリ230、画像出力部240、記憶部250、外部記憶部260、等から構成される。
【0024】
制御部210は、例えば、CPU(Central Processing Unit)等のプロセッサや、RAM(Random Access Memory)等の主記憶装置等から構成され、記憶部250等に格納されているプログラムを実行することで、ステレオカメラ1の各部を制御する。また、本実施形態では、所定のプログラムを実行することで、後述する三次元モデリング処理等にかかる機能が制御部210によって実現する。
【0025】
画像処理部220は、例えば、ADC(Analog-Digital Converter)、バッファメモリ、画像処理用のプロセッサ(いわゆる、画像処理エンジン)等から構成され、イメージセンサ部120A及び120Bによって生成された電気信号に基づいて、撮像画像を示すデジタルデータを生成する。即ち、イメージセンサ部120A(120B)から出力されたアナログ電気信号をADCがデジタル信号に変換して順次バッファメモリに格納すると、バッファされたデジタルデータに対し、画像処理エンジンが、いわゆる現像処理等を行うことで、画質の調整やデータ圧縮等を行う。
【0026】
画像メモリ230は、例えば、RAMやフラッシュメモリ等の記憶装置から構成され、画像処理部220によって生成された撮像画像データや、制御部210によって処理される画像データ等を一時的に保存する。
【0027】
画像出力部240は、例えば、RGB信号を生成する回路等から構成され、画像メモリ230に格納された画像データをRGB信号等に変換して表示画面(表示部310等)に出力する。
【0028】
記憶部250は、例えば、ROM(Read Only Memory)やフラッシュメモリ等の記憶装置から構成され、ステレオカメラ1の動作に必要なプログラムやデータやカウンタ等を格納する。本実施形態では、制御部210等が実行する動作プログラムや、その実行時に必要となるパラメータや演算式等のデータが記憶部250に格納されているものとする。
【0029】
外部記憶部260は、例えば、メモリカード等といった、ステレオカメラ1に着脱可能な記憶装置から構成され、ステレオカメラ1で撮像した画像データ、三次元モデルデータ等を格納する。
【0030】
インターフェース部300は、ステレオカメラ1と、ユーザあるいは外部装置との間のインターフェースに係る機能を担う処理部であり、表示部310、外部インターフェース部320、操作部330等から構成される。
【0031】
表示部310は、上述したように、例えば、液晶表示装置等から構成され、ユーザがステレオカメラ1を操作するために必要な種々の画面や、撮影時のライブビュー画像、撮像画像等を表示出力する。本実施形態では、画像出力部240からの画像信号(RGB信号)等に基づいて撮像画像等の表示出力が行われる。
【0032】
外部インターフェース部320は、例えば、USB(Universal Serial Bus)コネクタやビデオ出力端子等から構成され、外部のコンピュータ装置への画像データの出力や外部モニタ装置への撮像画像の表示出力等を行う。
【0033】
操作部330は、ステレオカメラ1の外面上に設けられている各種ボタン等によって構成され、ユーザによる操作に応じた入力信号を生成して制御部210に送出する。操作部330を構成するボタンには、上述したように、シャッターボタン331、操作キー332、電源キー333等が含まれる。
【0034】
ストロボ発光部400は、例えば、キセノンランプ(キセノンフラッシュ)により構成される。ストロボ発光部400は、制御部210の制御に従って被写体にストロボ光を照射する。
【0035】
以上、本発明を実現するために必要となるステレオカメラ1の構成について説明したが、ステレオカメラ1は、このほかにも、一般的なステレオカメラの機能を実現するための構成を備えているものとする。
【0036】
ここで、図3を参照して、ステレオカメラ1の動作のうち、三次元モデリングに係る動作について説明する。
【0037】
図3は、ステレオカメラ1の主要部の構成、つまり、三次元モデリングに係る動作を実現するための構成を示すブロック図である。
【0038】
図3に示すように、ステレオカメラ1は、画像受付部11、三次元モデル生成部12、三次元モデル選択部13、特徴点抽出部14、特徴点選択部15、座標変換パラメータ取得部16、座標変換部17、三次元モデル合成部18を備える。これらの要素は、例えば、制御部210により構成される。
【0039】
画像受付部11は、一度の撮像により一組の画像を取得するステレオカメラ1を用いて、被写体を異なる角度から複数回撮像することにより得られる複数の画像の組の入力を受け付ける。
【0040】
三次元モデル生成部12は、受け付けられた複数の画像の組のそれぞれに基づいて、被写体の三次元モデルを複数生成する。
【0041】
三次元モデル選択部13は、生成された複数の三次元モデルの中から、被合成三次元モデルと当該被合成三次元モデルに合成する合成三次元モデルとを選択する。
【0042】
特徴点抽出部14は、選択された被合成三次元モデルから複数の第1特徴点を抽出するとともに、選択された合成三次元モデルから複数の第2特徴点を抽出する。
【0043】
特徴点選択部15は、抽出された複数の第1特徴点と第2特徴点の中から、ステレオカメラ1との距離が近い特徴点を優先的に選択する。
【0044】
座標変換パラメータ取得部16は、選択された複数の第1特徴点と複数の第2特徴点とに基づいて、当該合成三次元モデルの座標を当該被合成三次元モデルの座標系の座標に変換するための座標変換パラメータを取得する。
【0045】
座標変換部17は、取得された座標変換パラメータを用いて、合成三次元モデルの座標を被合成三次元モデルの座標系の座標に変換する。
【0046】
三次元モデル合成部18は、変換後の合成三次元モデルを当該被合成三次元モデルに合成する。
【0047】
続いて、図4に示すフローチャートを用いて、ステレオカメラ1が実行する三次元モデリング処理について説明する。ステレオカメラ1は、操作キー332などの操作により、動作モードが三次元モデリングモードに設定されると、図4に示す三次元モデリング処理を実行する。
【0048】
本実施形態においては、シャッターボタン331が押圧されている間、被写体の撮像、三次元モデルの生成、生成された三次元モデルの合成、合成後の三次元モデルのプレビュー表示、などが繰り返して実行される。ここで、最初の撮像により得られる三次元モデルであって、合成の基礎となる三次元モデルを、被合成三次元モデルという。また、2回目以降の撮像により得られる三次元モデルであって、被合成三次元モデルに合成される三次元モデルを、合成三次元モデルという。そして、三次元モデリング処理においては、撮像回数分の三次元モデルを合成して得られる三次元モデルが順次生成される。なお、被写体は、撮像毎に異なる角度から撮像されるものとする。
【0049】
まず、制御部210は、シャッターボタン331が押圧されたか否かを判別する(ステップS101)。制御部210は、シャッターボタン331が押圧されていないと判別すると(ステップS101:NO)、再度、ステップS101の処理を実行する。一方、制御部210は、シャッターボタン331が押圧されたと判別すると(ステップS101:YES)、撮像回数カウンタNを1に初期化する(ステップS102)。なお、撮像回数カウンタNは、例えば、記憶部250に記憶されている。
【0050】
続いて、制御部210は、第1撮像部100A、第2撮像部100B、及び、画像処理部220等を制御して、被写体を撮像する(ステップS103)。制御部210により被写体が撮像されると、2枚の平行同位画像(ペア画像)が得られる。取得されたペア画像は、例えば、画像メモリ230に記憶される。なお、ペア画像のうち、第1撮像部100Aによる撮像により得られた画像を画像A、第2撮像部100Bによる撮像により得られた画像を画像Bとする。
【0051】
続いて、制御部210は、画像メモリ230に記憶されているペア画像に基づいて、三次元モデル生成処理を実行する(ステップS104)。
【0052】
ここで、図5に示すフローチャートを参照して、三次元モデル生成処理について説明する。なお、三次元モデル生成処理は、一組のペア画像に基づいて三次元モデルを生成する処理である。つまり、三次元モデル生成処理は、一つのカメラ位置から見た三次元モデルを生成する処理と考えることができる。
【0053】
まず、制御部210は、特徴点の候補を抽出する(ステップS201)。例えば、制御部210は、画像Aに対してコーナー検出を行う。コーナー検出においては、ハリスなどのコーナー特徴量が、所定閾値以上かつ所定半径内で最大になる点がコーナー点として選択される。従って、被写体の先端など、他の点に対して特徴のある点が特徴点として抽出される。
【0054】
続いて、制御部210は、ステレオマッチングを実行し、画像Aの特徴点に対応する点(対応点)を画像Bから探す(ステップS202)。具体的には、制御部210は、テンプレートマッチングにより類似度が所定閾値以上かつ最大のもの(相違度が所定閾値以下かつ最小のもの)を対応点とする。テンプレートマッチングには、例えば、残差絶対値和(SAD)、残差平方和(SSD)、正規化相関(NCCやZNCC)、方向符号相関など、様々な既知の技法が利用可能である。
【0055】
続いて、制御部210は、ステップS202において見つけられた対応点の視差情報、第1撮像部100Aおよび第2撮像部100Bの画角、基線長などから、特徴点の三次元位置情報を算出する(ステップS203)。算出された特徴点の三次元位置情報は、例えば、記憶部250に記憶される。
【0056】
続いて、制御部210は、ステップS203において算出された特徴点の三次元位置情報をもとにドロネー三角形分割を実行し、ポリゴン化を実行する(ステップS204)。生成されたポリゴン情報(三次元モデル)は、例えば、記憶部250に記憶される。制御部210は、ステップS204の処理を完了すると、三次元モデル生成処理を終了する。
【0057】
なお、特徴点の数が少ないと、被写体の形状情報が欠損し、被写体の忠実な三次元モデルが得られない。一方、より多くの特徴点が得られるように、特徴点の候補を抽出する条件やステレオマッチングの条件を緩くすると、不適切な点が特徴点の候補に含まれたり、ステレオマッチングで誤対応が発生したりして、位置精度が低下、つまり、モデリング精度が悪化する。このため、モデリング精度の悪化を防ぎつつ、被写体の忠実な三次元モデルを得ることができるように、適切な数の特徴点を抽出する必要がある。
【0058】
また、三次元モデル(三次元情報)は、例えば、以下の3つの式を用いて、ペア画像から求められる。ペア画像から三次元情報を取得する方法の詳細については、例えば、非特許文献1、デジタル画像処理、2006年3月1日発行、CG−ARTS協会、に開示されている。
X=(b*u)/(u−u’)
Y=(b*v)/(u−u’)
Z=(b*f)/(u−u’)
ここで、bは、光学装置110Aと110Bとの間の距離で、基線長と呼ばれる。(u,v)は、光学装置110Aにより撮像された被写体の画像上の座標を示し、(u’,v’)は光学装置110Bにより撮像された被写体の画像上の座標を示す。上記3つの式における(u−u’)は、光学装置110Aと光学装置110Bとから、同じ被写体を撮像したときに得られる2つの画像上における被写体の座標の差であり、視差と呼ばれる。fは、光学装置110Aの焦点距離を示す。既に説明したとおり、光学装置110Aと110Bとは同じ構成であり、焦点距離fも等しい。
【0059】
図4に戻り、三次元モデル生成処理(ステップS104)が終了すると、制御部210は、撮像回数カウンタNが1であるか否かを判別する(ステップS105)。ここで、撮像回数カウンタNが1であることは、最初の撮像の直後であることを示す。制御部210は、撮像回数カウンタNが1であると判別すると(ステップS105:YES)、ステップS104の処理により生成された三次元モデルを、被合成三次元モデルに設定する(ステップS106)。
【0060】
一方、制御部210は、撮像回数カウンタNが1ではない、つまり、最初の撮像の直後ではないと判別すると(ステップS105:NO)、カメラ位置推定処理を実行する(ステップS107)。ここで、カメラ位置推定処理の詳細について、図6のフローチャートを参照して説明する。なお、カメラ位置推定処理においては、最初の撮像時のステレオカメラ1の位置に対する、今回の撮像時のステレオカメラ1の相対的な位置が求められる。なお、この相対的な位置が求められることは、今回の撮像により得られた三次元モデルの座標を、最初の撮像により得られた三次元モデルの座標系の座標に変換する座標変換パラメータが求められることと同様である。
【0061】
まず、制御部210は、被合成三次元モデルおよび合成三次元モデルの双方から、カメラ位置(座標変換パラメータ)算出に用いる三次元空間上の特徴点を選択する特徴点選択処理を実行する。(ステップS301)。ここで、特徴点選択処理について、図7のフローチャートを参照して説明する。
【0062】
まず、制御部210は、被合成三次元モデルおよび合成三次元モデルの双方から三次元空間上の特徴点を取得する(ステップS401)。例えば、制御部210は、被合成三次元モデル(もしくは、合成三次元モデル)の特徴点のうち、コーナー強度が高く、ステレオマッチングの一致度が高いものを取得する。または、制御部210は、ペア画像間でエピ線拘束を考慮した上で、SURF(Speeded−Up Robust Features)特徴量によるマッチングを実行することで、特徴点を取得するようにしてもよい。または、前述した三次元モデル作成処理(図5)で被合成三次元モデル(もしくは、合成三次元モデル)を作成した際に、ステップS201で抽出した特徴点の候補を、被合成三次元モデル(もしくは、合成三次元モデル)から取得してもよい。
【0063】
続いて、制御部210は、被合成三次元モデルから取得した各特徴点を、ステレオカメラ1との距離に基づいて、2つの集合(クラスタ)に分類(クラスタリング)する(ステップS402)。第1撮像部100Aと第2撮像部100Bとにおける透視投影モデルを図8に示す。この図において、特徴点とステレオカメラ1との距離は、第1撮像部100Aのレンズ主点であるC1を原点とする座標としたときのZ軸方向の座標値として表せる。なお、クラスタリングの手法としては、例えば、判別分析法を用いればよい。判別分析法は、2つのクラスタ間の分散が最大になるようにクラスタリングする手法である。このようにステレオカメラ1との距離(Z座標)に基づいてクラスタリングすることで、ステレオカメラ1に近い被写体に対応する特徴点から構成されるクラスタと、ステレオカメラ1から遠い背景に対応する特徴点から構成されるクラスタとが作成されることとなる。なお、最短距離法、最長距離法、群平均法などの他の手法を用いてクラスタリングしてもよい。
【0064】
図7に戻り、続いて、制御部210は、合成三次元モデルに対しても、同様に、取得した各特徴点候補を、ステレオカメラ1との距離(図8でのZ座標)に基づいて、2つの集合(クラスタ)に分類(クラスタリング)する(ステップS403)。
【0065】
続いて、制御部210は、ステップS402とステップS403との処理でそれぞれクラスタリングした2つのクラスタのうち、ステレオカメラとの距離が近い方のクラスタに属する特徴点のみを、後述するカメラ位置(座標変換パラメータ)を算出するために用いる特徴点として選択する(ステップS404)。以上で、特徴点選択処理は終了する。特徴点選択処理により、カメラから近い特徴点が優先的に選択される。
【0066】
図6に戻り、制御部210は、特徴点選択処理(ステップS301)が終了すると、該特徴点選択処理で選択された被合成三次元モデルの特徴点のうちから、3つの特徴点を選択する(ステップS302)。ここで、選択される3つの特徴点は、以下に示す(A)および(B)の条件を満たすものが選択される。(A)の条件は、3つの特徴点を頂点とする三角形の面積が小さすぎないことであり、(B)の条件は、3つの特徴点を頂点とする三角形が極端に鋭角な角を持たないことである。例えば、制御部210は、上記(A)および(B)の条件を満たす3つの特徴点が選択されるまで、ランダムに3つの特徴点を選択する。なお、(A)および(B)の条件を満たすか否かの判別は、三角形の面積や角度を所定の閾値と比較することで行えばよい。
【0067】
続いて、制御部210は、特徴点選択処理(ステップS301)で選択された合成三次元モデルの特徴点を3つの頂点とする三角形の中から、ステップS302において選択された3つの特徴点を頂点とする三角形と合同な三角形を探索する(ステップS303)。例えば、3辺の長さがほぼ等しい場合、2つの三角形は合同であると判別される。ステップS303の処理は、合成三次元モデルの特徴点のうち、ステップS302において被合成三次元モデルから選択された3つの特徴点に対応すると考えられる3つの特徴点を探索する処理と考えることもできる。なお、制御部210は、特徴点やその周辺の色情報、またはSURF特徴量などで三角形の候補をあらかじめ絞ることで、探索を高速化してもよい。探索された三角形を示す情報(典型的には、当該三角形の頂点を構成する3つの特徴点の三次元空間上の座標を示す情報)は、例えば、記憶部250に記憶される。合同な三角形が複数ある場合、全ての三角形を示す情報が、記憶部250に記憶される。
【0068】
続いて、制御部210は、ステップS303の探索において、少なくとも1つの合同な三角形が探索されたか否かを判別する(ステップS304)。なお、探索された合同な三角形が多すぎる場合、合同な三角形が探索されなかったものとみなしてもよい。
【0069】
制御部210は、少なくとも1つの合同な三角形が探索されたと判別すると(ステップS304:YES)、合同な三角形を一つ選択する(ステップS305)。一方、制御部210は、合同な三角形が1つも探索されなかったと判別すると(ステップS304:NO)、ステップS302に処理を戻す。
【0070】
ステップS305の処理を完了すると、制御部210は、座標変換パラメータ取得処理を実行する(ステップS306)。座標変換パラメータ取得処理については、図9に示すフローチャートを参照して、詳細に説明する。なお、座標変換パラメータ取得処理は、合成三次元モデルの座標を被合成三次元モデルの座標系の座標に変換するための、座標変換パラメータを取得する処理である。なお、座標変換パラメータ取得処理は、ステップS302において選択された3つの特徴点と、ステップS303において選択された合同な三角形と、の組み合わせ毎に実行される。ここで、座標変換パラメータは、式(1)および(2)で与えられる対応点ペア(特徴点ペア、頂点ペア)に対して、式(3)を満たす回転行列Rと移動ベクトルtとを求める処理である。式(1)および(2)のpとp’とは、各々のカメラ視線から見た三次元空間上の座標を持つ。なお、Nは、対応点ペアのペア数である。
【数1】
【数2】
【数3】
【0071】
まず、制御部210は、式(4)および(5)に示すように、対応点ペアを設定する(ステップS501)。ここで、c1とc2とは、対応する列ベクトルが対応点の座標になる行列である。この行列から回転行列Rと移動ベクトルtとを直接求めることは難しい。しかしながら、pとp’との分布がほぼ等しいことから、対応点の重心を合わせてから回転すれば、対応点を重ね合わせることができる。このことを利用して、回転行列Rと移動ベクトルtとを求める。
【数4】
【数5】
【0072】
つまり、制御部210は、式(6)および(7)を用いて、特徴点の重心である重心t1およびt2を求める(ステップS502)。
【数6】
【数7】
【0073】
次に、制御部210は、式(8)および(9)を用いて、特徴点の分布である分布d1およびd2を求める(ステップS503)。ここで、上述したように、分布d1と分布d2との間には、式(10)の関係がある。
【数8】
【数9】
【数10】
【0074】
次に、制御部210は、式(11)および(12)を用いて、分布d1およびd2の特異値分解を実行する(ステップS504)。特異値は、降順に並べられているものとする。ここで、記号*は複素共役転置を表す。
【数11】
【数12】
【0075】
なお、制御部210は、ステップS504で特異値分解した分布d1およびd2が二次元以上(即ち、立体である)か否かを判別し、二次元以上でなければ、回転行列Rを求めることができないので、エラーとして処理は終了する。特異値は、分布の広がり具合に対応している。従って、最大の特異値とそれ以外の特異値との比率や、特異値の大きさを用いて分布が二次元以上であるか否かを判定すればよい。例えば、2番目に大きい特異値が、所定値以上かつ最大の特異値との比率が所定範囲内である場合に、分布が二次元以上と判定される。
【0076】
続いて、制御部210は、関連付けKを求める(ステップS505)。式(10)〜(12)から、回転行列Rは、式(13)のように表すことができる。ここで、関連付けKを、式(14)のように定義すると、回転行列Rは、式(15)のようになる。
【数13】
【数14】
【数15】
【0077】
ここで、固有ベクトルUは、分布d1およびd2の固有ベクトルに相当し、関連付けKにより関連付けられる。関連付けKの要素は、固有ベクトルが対応する場合は1か−1が、そうでない場合は0が与えられる。ところで、分布d1およびd2が等しいことから、特異値も等しい。つまり、Sも等しい。実際には、分布d1と分布d2とには誤差が含まれているので、誤差を丸める。以上を考慮すると、関連付けKは、式(16)のようになる。つまり、制御部210は、ステップS505において、式(16)を計算する。
【数16】
【0078】
続いて、制御部210は、回転行列Rを計算する(ステップS506)。具体的には、制御部210は、式(15)と式(16)とに基づいて、回転行列Rを計算する。計算により得られた回転行列Rを示す情報は、例えば、記憶部250に記憶される。
【0079】
続いて、制御部210は、移動ベクトルtを計算し(ステップS507)、座標変換パラメータ取得処理は終了する。分布d1およびd2が二次元ではない場合(即ち、三次元である場合)、pとp’とは、式(17)の関係を満たす。式(17)を変形すると、式(18)のようになる。式(18)と式(3)との対応から、移動ベクトルtは式(19)のようになる。
【数17】
【数18】
【数19】
【0080】
なお、分布d1およびd2が二次元である場合(即ち、分布が平面である場合)、関連付けKの一部が破壊されている可能性がある。従って、この場合、制御部210は、外積関係を確認する。なお、ここでいう外積関係の確認とは、回転行列Rの列ベクトル(および、行ベクトル)が座標系による制約を満たすことの確認である。そして、外積関係を検証した結果、問題があれば、制御部210は、関連付けKを修正し、修正したKを用いて回転行列Rを再計算してから、移動ベクトルtを計算する。
【0081】
図6に戻り、座標変換パラメータ取得処理(ステップS306)が終了すると、制御部210は、取得された座標変換パラメータを用いて、座標系を合わせる(ステップS307)。具体的には、式(3)を用いて、合成三次元モデルの特徴点の座標を、被合成三次元モデルの座標系の座標に変換する。
【0082】
続いて、制御部210は、特徴点ペアを記憶する(ステップS308)。ここで、特徴点ペアは、被合成三次元モデルの特徴点と、座標変換後の合成三次元モデルの特徴点のうち、当該被合成三次元モデルの特徴点との距離が所定値以下かつ最近傍である特徴点と、から構成される。ここで、特徴点ペアの数が多いほど、ステップS302における3つの特徴点の選択、ならびに、ステップS305における合同な三角形の選択が適切であったと推定される。なお、特徴点ペアは、座標変換パラメータの取得条件(ステップS302における3つの特徴点の選択、ならびに、ステップS305における合同な三角形の選択)とともに、記憶部250などに記憶すればよい。
【0083】
続いて、制御部210は、ステップS303において探索された全ての合同な三角形が、ステップS305において選択されたか否かを判別する(ステップS309)。
【0084】
制御部210は、いずれかの合同な三角形が選択されていないと判別すると(ステップS309:NO)、ステップS305に処理を戻す。
【0085】
一方、制御部210は、全ての合同な三角形が選択されたと判別すると(ステップS309:YES)、終了条件を満たすか否かを判別する(ステップS310)。本実施形態では、終了条件は、所定個数以上の条件について座標変換パラメータを取得したこととする。
【0086】
制御部210は、終了条件を満たしていないと判別すると(ステップS310:NO)、ステップS302に処理を戻す。
【0087】
一方、制御部210は、終了条件を満たしていると判別すると(ステップS310:YES)、最適な座標変換パラメータを特定し(ステップS311)、カメラ位置推定処理を終了する。具体的には、特徴点ペアが最も多く取得された座標変換パラメータが特定される。言い換えれば、ステップS302における3つの特徴点の選択、ならびに、ステップS305における合同な三角形の選択が最適であるものが特定される。なお、座標変換パラメータは、回転行列Rと移動ベクトルtとである。なお、ステップS311では、特徴点ペアの平均距離が最も小さくなる座標変換パラメータが特定されてもよい。
【0088】
図4に戻り、カメラ位置推定処理(ステップS107)が終了すると、制御部210は、三次元モデル合成処理を実行する(ステップS108)。三次元モデル合成処理については、図10のフローチャートを参照して説明する。
【0089】
まず、制御部210は、カメラ位置推定処理(ステップS107)で特定した座標変換パラメータを用いて、全ての三次元モデルを重ねる(ステップS601)。例えば、2回目の撮像の場合、1回目に撮像されたペア画像に基づいて生成された被合成三次元モデルに、2回目に撮像されたペア画像に基づいて生成された座標変換後の合成三次元モデルが重ねられる。また、3回目の撮像の場合、1回目に撮像されたペア画像に基づいて生成された被合成三次元モデルに、2回目に撮像されたペア画像に基づいて生成された座標変換後の合成三次元モデルが重ねられ、さらに、3回目に撮像されたペア画像に基づいて生成された座標変換後の合成三次元モデルが重ねられる。
【0090】
続いて、制御部210は、各特徴点の重なり具合から信頼性の低い特徴点を除去する(ステップS602)。例えば、ある三次元モデルの注目特徴点に対する、他の三次元モデルの最近傍の特徴点の分布から、当該注目特徴点のマハラノビス距離が計算され、このマハラノビス距離が所定値以上の場合は当該注目特徴点の信頼性が低いと判別される。なお、注目特徴点からの距離が所定値以上の特徴点は、最近傍の特徴点に含めないようにしても良い。また、最近傍の特徴点の数が少ない場合、信頼性が低いものと見なされてもよい。なお、特徴点を実際に除去する処理は、全ての特徴点に対して、除去するか否かが判別された後に、実行されるものとする。
【0091】
続いて、制御部210は、同一と見なせる特徴点を統合する(ステップS603)。例えば、所定距離以内の特徴点は、全て同一の特徴点を表すグループに属するものとして扱われ、これらの特徴点の重心が新たな特徴点とされる。
【0092】
続いて、制御部210は、ポリゴンメッシュを再構成する(ステップS604)。つまりステップS603において求められた新たな特徴点に基づいて、ポリゴン(三次元モデル)が生成される。以上で、三次元モデル合成処理は終了する。
【0093】
なお、三次元モデル生成処理(ステップS104)において生成された三次元モデルを示す情報(典型的には、特徴点の座標情報)は、シャッターボタン331が押圧されている間は、全撮像分(全視線分)保持され、基本的に変更されない。つまり、三次元モデル合成処理(ステップS108)においては、全撮像分の三次元モデルに基づいて、表示用もしくは保存用の高精細な三次元モデルを別途作成する処理である。
【0094】
図4に戻り、三次元モデル合成処理(ステップS108)が終了すると、制御部210は、撮像回数カウンタNの値を1つ増加させる(ステップS109)。
【0095】
続いて、制御部210は、合成後の三次元モデルを表示する(ステップS110)。具体的には、制御部210は、三次元モデル合成処理(ステップS108)において取得された三次元モデルを、表示部310に表示する。これにより、ユーザは、現在までの撮像において、どの程度正確な三次元モデルが生成されているかを知ることができる。
【0096】
続いて、制御部210は、シャッターボタン331が離されたか否かを判別する(ステップS111)。制御部210は、シャッターボタン331が離されたと判別すると(ステップS111:YES)、合成後の三次元モデルを外部記憶部260などに保存した後(ステップS112)、三次元モデリング処理を完了する。一方、制御部210は、シャッターボタン331が離されていないと判別すると(ステップS111:NO)、ステップS103に処理を戻す。
【0097】
このように、第1の実施形態に係るステレオカメラ1によれば、複数の三次元モデルが合成されるので、形状情報の欠損を抑えつつ、高精度な三次元モデリングが可能になる。また、第1の実施形態に係るステレオカメラ1によれば、信頼性が低いと考えられる特徴点が除去され、さらに、同一と見なせる特徴点が統合されて、三次元モデリングがなされるため、適切な三次元モデリングが可能となる。さらに、本実施形態に係るステレオカメラ1は、同時に様々な角度から被写体を撮像する構成ではないため、小型化が可能である。また、ユーザは、表示部310に表示されたポリゴンを見ることで、どの程度正確な三次元モデルが生成されているかを知ることができる。従って、ユーザは、十分に三次元モデリングがなされたか、あるいは、十分な三次元モデリングのために、どのような角度から撮像する必要があるかなどを判断することができる。
【0098】
さらに、本実施形態に係るステレオカメラ1によれば、各三次元モデルの特徴点からカメラ位置(座標変換パラメータ)を算出する際に、ステレオカメラ1に近い特徴点を優先的に用いて計算を行う。一般的に、三次元モデルの特徴点は、ステレオカメラ1に近い点ほど被写体上の点に対応し、位置精度が高い。従って、このようにすることで、より正確なカメラ位置を算出できるため、より高精度な三次元モデリングが可能となる。
【0099】
(第2の実施形態)
第1の実施形態では、撮像部が2つあるステレオカメラ1を用いて三次元モデルを作成した。しかしながら、本発明は、撮像部が1つしか無い単眼カメラ2にも適用することが可能である。単眼カメラ2を用いて三次元モデルを作成する三次元モデリング処理について、図11、図12を参照して説明する。
【0100】
図11は、単眼カメラ2の電気的構成を示すブロック図である。前述したステレオカメラ1では第1撮像部100Aと第2撮像部100Bとの2つの撮像部を備えるのに対し、単眼カメラ2は、1つの撮像部100のみを備える。撮像部100は、光学装置110とイメージサンサ部120とを備える。なお、単眼カメラ2のその他の構成は、ステレオカメラ1と同様であるため、同一の符号を付し、説明は省略する。
【0101】
続いて、図12に示すフローチャートを用いて、単眼カメラ2が実行する三次元モデリング処理について説明する。単眼カメラ2は、操作キー332などの操作により、動作モードが三次元モデリングモードに設定されると、図12に示す三次元モデリング処理を実行する。
【0102】
三次元モデリング処理が開始されると、まず、制御部210は、撮像部100を制御して、被写体を撮像した画像(以下、第1画像という)を取得(撮像)する(ステップS701)。取得された画像は、例えば、画像メモリ230に記憶される。
【0103】
ステップS701の処理が完了した後、ユーザによって、単眼カメラ2は、第1画像を撮影した撮影位置と異なる撮影位置へ移動させられる。そして、所定時間が経過した後、又は、ユーザからの所定の指示操作に応答して、単眼カメラ2の制御部210は、ステップS701と同様に、撮像部100を制御して、被写体を撮像した画像(以下、第2画像という)を取得(撮像)する(ステップS702)。取得された画像は、例えば、画像メモリ230に記憶される。
【0104】
続いて、制御部210は、対象物上の同じ点を表した第1画像上の特徴点と、第2画像上の特徴点とを対応させた点(対応点)を取得する(ステップS703)。具体的には、制御部210は、第1画像及び第2画像に対してハリスのコーナー検出法を用いることで、第1画像上の特徴点(以下、第1特徴点という)と、第2画像上の特徴点(以下、第2特徴点という)とを取得する。次に、第1特徴点と第2特徴点との間で、特徴点から所定の距離にある画像領域(特徴点近傍画像)に対するテンプレート照合を行うと共に、テンプレート照合で算出した照合度が所定の閾値以上であり、かつ最も高い値となる第1特徴点と第2特徴点とを対応させて、それぞれを対応点とする。或いは、SURF特徴量によるマッチングを実行することで、対応点をとっても良い。
【0105】
続いて、制御部210は、取得した特徴点の対応から、下記式(20)で表せる基礎行列Eを取得する(ステップS704)。なお、tは移動ベクトル、Rは回転行列であり、第2画像の画像座標系を第1画像の画像座標系に変換するための座標変換パラメータである。また、記号×は外積を表す。
【数20】
【0106】
具体的には、制御部210は、第1画像の撮像時における撮像部100の主点と焦点との間の焦点距離を、撮像部100のレンズ駆動状態から算出する。そして、制御部210は、各特徴点の画像位置と焦点距離と用いて、基礎行列Eを算出すればよい。
【0107】
続いて、制御部210は、基礎行列Eを分解して、移動ベクトルtと回転行列Rとを取得する(ステップS705)。具体的には、制御部210は、行列「trans(E)・E」の最小固有値の固有ベクトルを移動ベクトルtとして算出する。なお、transは、行列の転置を示す記号である。続いて、制御部210は、以下の式(21)を用いて、算出対象とする回転行列R及び既に算出した移動ベクトルtとの外積と、既に算出した基礎行列Eとの誤差が最小になるように、最小二乗法等を用いて回転行列Rを算出する。なお、式(21)において、記号Σは行列の全要素の和を表し、記号⇒minは左辺の値を最小化することを表す。
【数21】
【0108】
続いて、制御部210は、第1画像、第2画像各々の、カメラ座標系への射影行列(カメラ射影パラメータ)を取得する(ステップS706)。第1画像のカメラ座標系への射影行列(カメラ射影パラメータ)をPとすると、Pは、カメラ内部の状態を示すカメラ内部パラメータAと、カメラの位置を示すカメラ外部パラメータ[R|t]との内積として式(22)のように表せる。また、カメラ内部パラメータAは、カメラの焦点距離fや、光軸位置(u0,v0)等により、式(23)のように表せる。
【数22】
【数23】
【0109】
ここでは、第1画像の撮像位置を基準としたカメラ射影パラメータを求めるため、移動ベクトルtと回転行列Rとは座標変換しないことを示すベクトル及び行列となる。従って、式(22)は、式(24)のように表せ、これを計算することで、第1画像のカメラ座標系への射影行列(カメラ射影パラメータ)Pを求めることができる。
【数24】
【0110】
また、第2画像のカメラ座標系への射影行列(カメラ射影パラメータ)P’は、ステップS705で取得した移動ベクトルtと回転行列Rとを用いて、式(25)のように求めることができる。なお、記号|は行列の連結を示す記号である。
【数25】
【0111】
続いて、制御部210は、ステップS705で取得した移動ベクトルtと回転行列R、及び、ステップS706で取得したカメラ射影パラメータP,P’とを用いて、各特徴点の三次元情報を取得する(ステップS707)。言い換えれば、この処理は、第1画像撮像時の単眼カメラ2の撮像位置を原点とする各特徴点の世界座標(X,Y,Z)を取得する処理である。
【0112】
例えば、第1画像上の特徴点の位置を(u,v)、この特徴点に対応する第2画像上の特徴点の位置を(u’,v’)とする。この場合、各特徴点の三次元情報(世界座標(X,Y,Z))は式(26)を満たす。従って、最小2乗法等の手法を用いて、式(26)から、世界座標(X,Y,Z)を、求めることが可能となる。そして、この計算を、ステップS703で特定した全ての対応する特徴点の組に対して行えばよい。
【数26】
なお、記号〜は両辺が定数倍の違いを許して等しいことを表す。
【0113】
続いて、制御部210は、このようにして三次元情報を取得した各特徴点を、単眼カメラ2との距離(世界座標系におけるZ座標)に基づいて、2つの集合(クラスタ)に分類(クラスタリング)する(ステップS708)。クラスタリングの手法としては、例えば、判別分析法を用いればよい。
【0114】
続いて、制御部210は、クラスタリングした2つのクラスタのうち、単眼カメラ2との距離が近い方のクラスタを構成する特徴点を選択する(ステップS709)。
【0115】
続いて、制御部210は、ステップS709で選択した特徴点のみを用いて、再度、基礎行列Eを求め(ステップS710)、移動ベクトルtと回転行列Rとを求め(ステップS711)、射影行列(カメラ射影パラメータ)を求める(ステップS712)。なお、ステップS710〜ステップS712の処理は、用いる特徴点が異なる(選別されている)以外は、ステップS704〜ステップS706の処理と実質的に同じである。
【0116】
続いて、制御部210は、ステップS711で取得した移動ベクトルtと回転行列R、及び、ステップS712で取得したカメラ射影パラメータP,P’とを用いて、各特徴点の三次元情報を取得する(ステップS713)。なお、ここでは、ステップS709で選択した特徴点では無く、ステップS703で取得した全ての特徴点に対して、三次元情報を取得する。
【0117】
続いて、制御部210は、ステップS713で取得した各特徴点の三次元情報をもとにドロネー三角形分割を実行し、ポリゴン化を実行する(ステップS714)。生成されたポリゴン情報は、例えば、記憶部250に記憶される。以上で、単眼カメラ2による三次元モデル生成処理を終了する。
【0118】
このように、第2の実施形態に係る単眼カメラ2によれば、異なる位置で撮像された各画像から複数の特徴点を取得し、所得した特徴点からカメラ位置を推定し、推定したカメラ位置から特徴点の三次元情報を算出する。そして、取得した特徴点のうち、単眼カメラ2に近い特徴点を優先的に用いて、再度カメラ位置を推定し、再推定したカメラ位置から特徴点の三次元情報を再計算し、再計算された特徴点の三次元情報から三次元モデルを作成する。一般的に、撮像画像の特徴点は、単眼カメラ2に近い特徴点ほど被写体上の点に対応し、位置精度が高い。従って、このようにすることで、より正確なカメラ位置を算出できるため、より高精度な三次元モデリングが可能となる。
【0119】
(変形例)
なお、本発明は、上記各実施形態に限定されず、本発明の要旨を逸脱しない範囲での種々の変更は勿論可能である。
【0120】
例えば、第1の実施形態では、図7に示す特徴点選択処理において、ステップS401で特徴点を取得し、ステップS402及びステップS403で取得した特徴点をステレオカメラ1との距離に基づいて2つのクラスタにクラスタリングした。そして、ステップS404でステレオカメラ1に近い方のクラスタに属する特徴点を選択した。しかしながら、クラスタリングをせず、ステレオカメラ1との距離が所定の閾値以内の特徴点を選択してもよい。また、ステレオカメラ1との距離が所定の閾値以内の各特徴点に対してRANSAC(RANdom SAmple Consensus)法等のロバスト手法を適用して、選択する特徴点を決定してもよい。また、ステップS401で取得した特徴点のうち、ステレオカメラ1との距離が近いものから上位所定割合の特徴点を選択してもよい。また、ステップS401で取得した特徴点に対して、ステレオカメラ1との距離が近いほど高い評価値を示す所定の評価式を用いたRANSAC法等のロバスト推定法を適用して推定された特徴点を選択してもよい。要するに、ステレオカメラ1との距離が近い特徴点から優先的に特徴点を選択できればよい。
【0121】
また、第2実施形態の実施形態では、図12に示す三次元モデリング処理において、ステップS708で特徴点をクラスタリングした。そして、ステップS709で単眼カメラ2に近い方のクラスタの特徴点を選択した。しかしながら、クラスタリングをせず、単眼カメラ2との距離が所定の閾値以内の特徴点を選択してもよい。また、単眼カメラ2との距離が所定の閾値以内の各特徴点に対してRANSAC法等のロバスト手法を適用して、選択する特徴点を決定してもよい。また、ステップS703で取得した特徴点のうち、単眼カメラ2との距離が近いものから上位所定割合の特徴点を選択してもよい。また、ステップS703で取得した特徴点に対して、単眼カメラ2との距離が近いほど高い評価値を示す所定の評価式を用いたRANSAC法等のロバスト手法を適用して、特徴点を選択してもよい。要するに、単眼カメラ2との距離が近い特徴点から優先的に特徴点を選択できればよい。
【0122】
また、既存のステレオカメラや単眼カメラ等を本発明に係る三次元モデリング装置として機能させることも可能である。即ち、上述した制御部210が実行したようなプログラムを既存のステレオカメラや単眼カメラ等に適用し、そのステレオカメラや単眼カメラ等のCPU等が当該プログラムを実行することで、当該ステレオカメラや単眼カメラ等を本発明に係る三次元モデリング装置として機能させることができる。
【0123】
このようなプログラムの配布方法は任意であり、例えば、CD−ROM(Compact Disk Read-Only Memory)、DVD(Digital Versatile Disk)、MO(Magneto Optical Disk)、メモリカードなどのコンピュータ読み取り可能な記録媒体に格納して配布してもよいし、インターネットなどの通信ネットワークを介して配布してもよい。
【0124】
この場合、上述した本発明に係る機能を、OS(オペレーティングシステム)とアプリケーションプログラムの分担、またはOSとアプリケーションプログラムとの協働により実現する場合などでは、アプリケーションプログラム部分のみを記録媒体等に格納してもよい。
【0125】
これまで、本発明のいくつかの実施形態を説明したが、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【0126】
(付記1)
一度の撮像により一組の画像を取得するステレオカメラを用いて、被写体を異なる角度から複数回撮像することにより得られる複数の画像の組の入力を受け付ける画像受付手段と、
前記受け付けられた複数の画像の組のそれぞれに基づいて、前記被写体の三次元モデルを複数生成する三次元モデル生成手段と、
前記生成された複数の三次元モデルの中から、被合成三次元モデルと当該被合成三次元モデルに合成する合成三次元モデルとを選択する三次元モデル選択手段と、
前記選択された被合成三次元モデルから複数の第1特徴点を抽出するとともに、前記選択された合成三次元モデルから複数の第2特徴点を抽出する特徴点抽出手段と、
前記抽出された複数の第1特徴点と第2特徴点のうち前記ステレオカメラとの距離が近い特徴点を優先的に選択する特徴点選択手段と、
前記選択された複数の第1特徴点と第2特徴点とに基づいて、当該合成三次元モデルの座標を当該被合成三次元モデルの座標系の座標に変換する座標変換パラメータを取得する座標変換パラメータ取得手段と、
前記取得された座標変換パラメータを用いて、前記合成三次元モデルの座標を前記被合成三次元モデルの座標系の座標に変換する座標変換手段と、
前記座標変換後の合成三次元モデルを前記被合成三次元モデルに合成する合成手段と、を備える、
ことを特徴とする三次元モデリング装置。
【0127】
(付記2)
前記特徴点選択手段は、前記ステレオカメラとの距離に基づいて、前記抽出された複数の第1特徴点と第2特徴点とを2つのクラスタにクラスタリングし、前記ステレオカメラとの距離が近い方のクラスタに属する第1特徴点と第2特徴点を選択する、
ことを特徴とする付記1に記載の三次元モデリング装置。
【0128】
(付記3)
前記特徴点選択手段は、前記抽出された複数の第1特徴点と第2特徴点とに、前記ステレオカメラとの距離が近いほど高い評価値を示す所定の評価式によるロバスト推定法を適用して推定された特徴点を選択する、
ことを特徴とする付記1又は2に記載の三次元モデリング装置。
【0129】
(付記4)
カメラを移動させて異なる位置で被写体を撮像することにより得られる第1画像と第2画像とを取得する画像取得手段と、
前記第1画像上から複数の第1特徴点を抽出するとともに、抽出した複数の第1特徴点に対応する前記第2画像上の複数の第2特徴点を抽出する特徴点抽出手段と、
前記抽出された第1特徴点と第2特徴点のうち、撮像時における前記カメラとの距離が近い第1特徴点と第2特徴点とを優先的に選択する特徴点選択手段と、
前記選択された第1特徴点と第2特徴点とに基づいて、前記第1画像撮像時と前記第2画像撮像時とにおける前記カメラの位置関係を示す座標変換パラメータを取得する座標変換パラメータ取得手段と、
前記取得された座標変換パラメータに基づいて、前記特徴点抽出手段が抽出した複数の第1特徴点及び第2特徴点の三次元情報を取得する三次元情報取得手段と、
前記取得された複数の第1特徴点及び第2特徴点の三次元情報に基づいて、三次元モデルを作成する三次元モデル作成手段と、
を備えることを特徴とする三次元モデリング装置。
【0130】
(付記5)
三次元モデリング方法であって、
一度の撮像により一組の画像を取得するステレオカメラを用いて、被写体を異なる角度から複数回撮像することにより得られる複数の画像の組の入力を受け付ける画像受付ステップと、
前記受け付けられた複数の画像の組のそれぞれに基づいて、前記被写体の三次元モデルを複数生成する三次元モデル生成ステップと、
前記生成された複数の三次元モデルの中から、被合成三次元モデルと当該被合成三次元モデルに合成する合成三次元モデルとを選択する三次元モデル選択ステップと、
前記選択された被合成三次元モデルから複数の第1特徴点を抽出するとともに、前記選択された合成三次元モデルから複数の第2特徴点を抽出する特徴点抽出ステップと、
前記抽出された複数の第1特徴点と第2特徴点のうち前記ステレオカメラとの距離が近い特徴点を優先的に選択する特徴点選択ステップと、
前記選択された複数の第1特徴点と第2特徴点とに基づいて、当該合成三次元モデルの座標を当該被合成三次元モデルの座標系の座標に変換する座標変換パラメータを取得する座標変換パラメータ取得ステップと、
前記取得された座標変換パラメータを用いて、前記合成三次元モデルの座標を前記被合成三次元モデルの座標系の座標に変換する座標変換ステップと、
前記座標変換後の合成三次元モデルを前記被合成三次元モデルに合成する合成ステップと、を含む、
ことを特徴とする三次元モデリング方法。
【0131】
(付記6)
三次元モデリング方法であって、
カメラを移動させて異なる位置で被写体を撮像することにより得られる第1画像と第2画像とを取得する画像取得ステップと、
前記第1画像上から複数の第1特徴点を抽出するとともに、抽出した複数の第1特徴点に対応する前記第2画像上の複数の第2特徴点を抽出する特徴点抽出ステップと、
前記抽出された第1特徴点と第2特徴点のうち、撮像時における前記カメラとの距離が近い第1特徴点と第2特徴点とを優先的に選択する特徴点選択ステップと、
前記選択された第1特徴点と第2特徴点とに基づいて、前記第1画像撮像時と前記第2画像撮像時とにおける前記カメラの位置関係を示す座標変換パラメータを取得する座標変換パラメータ取得ステップと、
前記取得された座標変換パラメータに基づいて、前記特徴点抽出ステップで抽出した複数の第1特徴点及び第2特徴点の三次元情報を取得する三次元情報取得ステップと、
前記取得された複数の第1特徴点及び第2特徴点の三次元情報に基づいて、三次元モデルを作成する三次元モデル作成ステップと、を含む、
ことを特徴とする三次元モデリング方法。
【0132】
(付記7)
コンピュータに、
一度の撮像により一組の画像を取得するステレオカメラを用いて、被写体を異なる角度から複数回撮像することにより得られる複数の画像の組の入力を受け付ける画像受付機能、
前記受け付けられた複数の画像の組のそれぞれに基づいて、前記被写体の三次元モデルを複数生成する三次元モデル生成機能、
前記生成された複数の三次元モデルの中から、被合成三次元モデルと当該被合成三次元モデルに合成する合成三次元モデルとを選択する三次元モデル選択機能、
前記選択された被合成三次元モデルから複数の第1特徴点を抽出するとともに、前記選択された合成三次元モデルから複数の第2特徴点を抽出する特徴点抽出機能、
前記抽出された複数の第1特徴点と第2特徴点のうち前記ステレオカメラとの距離が近い特徴点を優先的に選択する特徴点選択機能、
前記選択された複数の第1特徴点と第2特徴点とに基づいて、当該合成三次元モデルの座標を当該被合成三次元モデルの座標系の座標に変換する座標変換パラメータを取得する座標変換パラメータ取得機能、
前記取得された座標変換パラメータを用いて、前記合成三次元モデルの座標を前記被合成三次元モデルの座標系の座標に変換する座標変換機能、
前記座標変換後の合成三次元モデルを前記被合成三次元モデルに合成する合成機能、を実現させる、
ことを特徴とするプログラム。
【0133】
(付記8)
コンピュータに、
カメラを移動させて異なる位置で被写体を撮像することにより得られる第1画像と第2画像とを取得する画像取得機能、
前記第1画像上から複数の第1特徴点を抽出するとともに、抽出した複数の第1特徴点に対応する前記第2画像上の複数の第2特徴点を抽出する特徴点抽出機能、
前記抽出された第1特徴点と第2特徴点のうち、撮像時における前記カメラとの距離が近い第1特徴点と第2特徴点とを優先的に選択する特徴点選択機能、
前記選択された第1特徴点と第2特徴点とに基づいて、前記第1画像撮像時と前記第2画像撮像時とにおける前記カメラの位置関係を示す座標変換パラメータを取得する座標変換パラメータ取得機能、
前記取得された座標変換パラメータに基づいて、前記特徴点抽出機能が抽出した複数の第1特徴点及び第2特徴点の三次元情報を取得する三次元情報取得機能、
前記取得された複数の第1特徴点及び第2特徴点の三次元情報に基づいて、三次元モデルを作成する三次元モデル作成機能、を実現させる、
ことを特徴とするプログラム。
【符号の説明】
【0134】
11・・・画像受付部、12・・・三次元モデル生成部、13・・・三次元モデル選択部、14・・・特徴点抽出部、15・・・特徴点選択部、16・・・座標変換パラメータ取得部、17・・・座標変換部、18・・・三次元モデル合成部、100A・・・第1撮像部、100B・・・第2撮像部、110A,110B・・・光学装置、111A,111B・・・レンズ、120A,120B・・・イメージセンサ部、200・・・データ処理部、210・・・制御部、220・・・画像処理部、230・・・画像メモリ、240・・・画像出力部、250・・・記憶部、260・・・外部記憶部、300・・・インターフェース部、310・・・表示部、320・・・外部インターフェース部、330・・・操作部、331・・・シャッターボタン、332・・・操作キー、333・・・電源キー、400・・・ストロボ発光部、1・・・ステレオカメラ
【特許請求の範囲】
【請求項1】
一度の撮像により一組の画像を取得するステレオカメラを用いて、被写体を異なる角度から複数回撮像することにより得られる複数の画像の組の入力を受け付ける画像受付手段と、
前記受け付けられた複数の画像の組のそれぞれに基づいて、前記被写体の三次元モデルを複数生成する三次元モデル生成手段と、
前記生成された複数の三次元モデルの中から、被合成三次元モデルと当該被合成三次元モデルに合成する合成三次元モデルとを選択する三次元モデル選択手段と、
前記選択された被合成三次元モデルから複数の第1特徴点を抽出するとともに、前記選択された合成三次元モデルから複数の第2特徴点を抽出する特徴点抽出手段と、
前記抽出された複数の第1特徴点と第2特徴点のうち前記ステレオカメラとの距離が近い特徴点を優先的に選択する特徴点選択手段と、
前記選択された複数の第1特徴点と第2特徴点とに基づいて、当該合成三次元モデルの座標を当該被合成三次元モデルの座標系の座標に変換する座標変換パラメータを取得する座標変換パラメータ取得手段と、
前記取得された座標変換パラメータを用いて、前記合成三次元モデルの座標を前記被合成三次元モデルの座標系の座標に変換する座標変換手段と、
前記座標変換後の合成三次元モデルを前記被合成三次元モデルに合成する合成手段と、を備える、
ことを特徴とする三次元モデリング装置。
【請求項2】
前記特徴点選択手段は、前記ステレオカメラとの距離に基づいて、前記抽出された複数の第1特徴点と第2特徴点とを2つのクラスタにクラスタリングし、前記ステレオカメラとの距離が近い方のクラスタに属する第1特徴点と第2特徴点を選択する、
ことを特徴とする請求項1に記載の三次元モデリング装置。
【請求項3】
前記特徴点選択手段は、前記抽出された複数の第1特徴点と第2特徴点とに、前記ステレオカメラとの距離が近いほど高い評価値を示す所定の評価式によるロバスト推定法を適用して推定された特徴点を選択する、
ことを特徴とする請求項1又は2に記載の三次元モデリング装置。
【請求項4】
カメラを移動させて異なる位置で被写体を撮像することにより得られる第1画像と第2画像とを取得する画像取得手段と、
前記第1画像上から複数の第1特徴点を抽出するとともに、抽出した複数の第1特徴点に対応する前記第2画像上の複数の第2特徴点を抽出する特徴点抽出手段と、
前記抽出された第1特徴点と第2特徴点のうち、撮像時における前記カメラとの距離が近い第1特徴点と第2特徴点とを優先的に選択する特徴点選択手段と、
前記選択された第1特徴点と第2特徴点とに基づいて、前記第1画像撮像時と前記第2画像撮像時とにおける前記カメラの位置関係を示す座標変換パラメータを取得する座標変換パラメータ取得手段と、
前記取得された座標変換パラメータに基づいて、前記特徴点抽出手段が抽出した複数の第1特徴点及び第2特徴点の三次元情報を取得する三次元情報取得手段と、
前記取得された複数の第1特徴点及び第2特徴点の三次元情報に基づいて、三次元モデルを作成する三次元モデル作成手段と、
を備えることを特徴とする三次元モデリング装置。
【請求項5】
三次元モデリング方法であって、
一度の撮像により一組の画像を取得するステレオカメラを用いて、被写体を異なる角度から複数回撮像することにより得られる複数の画像の組の入力を受け付ける画像受付ステップと、
前記受け付けられた複数の画像の組のそれぞれに基づいて、前記被写体の三次元モデルを複数生成する三次元モデル生成ステップと、
前記生成された複数の三次元モデルの中から、被合成三次元モデルと当該被合成三次元モデルに合成する合成三次元モデルとを選択する三次元モデル選択ステップと、
前記選択された被合成三次元モデルから複数の第1特徴点を抽出するとともに、前記選択された合成三次元モデルから複数の第2特徴点を抽出する特徴点抽出ステップと、
前記抽出された複数の第1特徴点と第2特徴点のうち前記ステレオカメラとの距離が近い特徴点を優先的に選択する特徴点選択ステップと、
前記選択された複数の第1特徴点と第2特徴点とに基づいて、当該合成三次元モデルの座標を当該被合成三次元モデルの座標系の座標に変換する座標変換パラメータを取得する座標変換パラメータ取得ステップと、
前記取得された座標変換パラメータを用いて、前記合成三次元モデルの座標を前記被合成三次元モデルの座標系の座標に変換する座標変換ステップと、
前記座標変換後の合成三次元モデルを前記被合成三次元モデルに合成する合成ステップと、を含む、
ことを特徴とする三次元モデリング方法。
【請求項6】
三次元モデリング方法であって、
カメラを移動させて異なる位置で被写体を撮像することにより得られる第1画像と第2画像とを取得する画像取得ステップと、
前記第1画像上から複数の第1特徴点を抽出するとともに、抽出した複数の第1特徴点に対応する前記第2画像上の複数の第2特徴点を抽出する特徴点抽出ステップと、
前記抽出された第1特徴点と第2特徴点のうち、撮像時における前記カメラとの距離が近い第1特徴点と第2特徴点とを優先的に選択する特徴点選択ステップと、
前記選択された第1特徴点と第2特徴点とに基づいて、前記第1画像撮像時と前記第2画像撮像時とにおける前記カメラの位置関係を示す座標変換パラメータを取得する座標変換パラメータ取得ステップと、
前記取得された座標変換パラメータに基づいて、前記特徴点抽出ステップで抽出した複数の第1特徴点及び第2特徴点の三次元情報を取得する三次元情報取得ステップと、
前記取得された複数の第1特徴点及び第2特徴点の三次元情報に基づいて、三次元モデルを作成する三次元モデル作成ステップと、を含む、
ことを特徴とする三次元モデリング方法。
【請求項7】
コンピュータに、
一度の撮像により一組の画像を取得するステレオカメラを用いて、被写体を異なる角度から複数回撮像することにより得られる複数の画像の組の入力を受け付ける画像受付機能、
前記受け付けられた複数の画像の組のそれぞれに基づいて、前記被写体の三次元モデルを複数生成する三次元モデル生成機能、
前記生成された複数の三次元モデルの中から、被合成三次元モデルと当該被合成三次元モデルに合成する合成三次元モデルとを選択する三次元モデル選択機能、
前記選択された被合成三次元モデルから複数の第1特徴点を抽出するとともに、前記選択された合成三次元モデルから複数の第2特徴点を抽出する特徴点抽出機能、
前記抽出された複数の第1特徴点と第2特徴点のうち前記ステレオカメラとの距離が近い特徴点を優先的に選択する特徴点選択機能、
前記選択された複数の第1特徴点と第2特徴点とに基づいて、当該合成三次元モデルの座標を当該被合成三次元モデルの座標系の座標に変換する座標変換パラメータを取得する座標変換パラメータ取得機能、
前記取得された座標変換パラメータを用いて、前記合成三次元モデルの座標を前記被合成三次元モデルの座標系の座標に変換する座標変換機能、
前記座標変換後の合成三次元モデルを前記被合成三次元モデルに合成する合成機能、を実現させる、
ことを特徴とするプログラム。
【請求項8】
コンピュータに、
カメラを移動させて異なる位置で被写体を撮像することにより得られる第1画像と第2画像とを取得する画像取得機能、
前記第1画像上から複数の第1特徴点を抽出するとともに、抽出した複数の第1特徴点に対応する前記第2画像上の複数の第2特徴点を抽出する特徴点抽出機能、
前記抽出された第1特徴点と第2特徴点のうち、撮像時における前記カメラとの距離が近い第1特徴点と第2特徴点とを優先的に選択する特徴点選択機能、
前記選択された第1特徴点と第2特徴点とに基づいて、前記第1画像撮像時と前記第2画像撮像時とにおける前記カメラの位置関係を示す座標変換パラメータを取得する座標変換パラメータ取得機能、
前記取得された座標変換パラメータに基づいて、前記特徴点抽出機能が抽出した複数の第1特徴点及び第2特徴点の三次元情報を取得する三次元情報取得機能、
前記取得された複数の第1特徴点及び第2特徴点の三次元情報に基づいて、三次元モデルを作成する三次元モデル作成機能、を実現させる、
ことを特徴とするプログラム。
【請求項1】
一度の撮像により一組の画像を取得するステレオカメラを用いて、被写体を異なる角度から複数回撮像することにより得られる複数の画像の組の入力を受け付ける画像受付手段と、
前記受け付けられた複数の画像の組のそれぞれに基づいて、前記被写体の三次元モデルを複数生成する三次元モデル生成手段と、
前記生成された複数の三次元モデルの中から、被合成三次元モデルと当該被合成三次元モデルに合成する合成三次元モデルとを選択する三次元モデル選択手段と、
前記選択された被合成三次元モデルから複数の第1特徴点を抽出するとともに、前記選択された合成三次元モデルから複数の第2特徴点を抽出する特徴点抽出手段と、
前記抽出された複数の第1特徴点と第2特徴点のうち前記ステレオカメラとの距離が近い特徴点を優先的に選択する特徴点選択手段と、
前記選択された複数の第1特徴点と第2特徴点とに基づいて、当該合成三次元モデルの座標を当該被合成三次元モデルの座標系の座標に変換する座標変換パラメータを取得する座標変換パラメータ取得手段と、
前記取得された座標変換パラメータを用いて、前記合成三次元モデルの座標を前記被合成三次元モデルの座標系の座標に変換する座標変換手段と、
前記座標変換後の合成三次元モデルを前記被合成三次元モデルに合成する合成手段と、を備える、
ことを特徴とする三次元モデリング装置。
【請求項2】
前記特徴点選択手段は、前記ステレオカメラとの距離に基づいて、前記抽出された複数の第1特徴点と第2特徴点とを2つのクラスタにクラスタリングし、前記ステレオカメラとの距離が近い方のクラスタに属する第1特徴点と第2特徴点を選択する、
ことを特徴とする請求項1に記載の三次元モデリング装置。
【請求項3】
前記特徴点選択手段は、前記抽出された複数の第1特徴点と第2特徴点とに、前記ステレオカメラとの距離が近いほど高い評価値を示す所定の評価式によるロバスト推定法を適用して推定された特徴点を選択する、
ことを特徴とする請求項1又は2に記載の三次元モデリング装置。
【請求項4】
カメラを移動させて異なる位置で被写体を撮像することにより得られる第1画像と第2画像とを取得する画像取得手段と、
前記第1画像上から複数の第1特徴点を抽出するとともに、抽出した複数の第1特徴点に対応する前記第2画像上の複数の第2特徴点を抽出する特徴点抽出手段と、
前記抽出された第1特徴点と第2特徴点のうち、撮像時における前記カメラとの距離が近い第1特徴点と第2特徴点とを優先的に選択する特徴点選択手段と、
前記選択された第1特徴点と第2特徴点とに基づいて、前記第1画像撮像時と前記第2画像撮像時とにおける前記カメラの位置関係を示す座標変換パラメータを取得する座標変換パラメータ取得手段と、
前記取得された座標変換パラメータに基づいて、前記特徴点抽出手段が抽出した複数の第1特徴点及び第2特徴点の三次元情報を取得する三次元情報取得手段と、
前記取得された複数の第1特徴点及び第2特徴点の三次元情報に基づいて、三次元モデルを作成する三次元モデル作成手段と、
を備えることを特徴とする三次元モデリング装置。
【請求項5】
三次元モデリング方法であって、
一度の撮像により一組の画像を取得するステレオカメラを用いて、被写体を異なる角度から複数回撮像することにより得られる複数の画像の組の入力を受け付ける画像受付ステップと、
前記受け付けられた複数の画像の組のそれぞれに基づいて、前記被写体の三次元モデルを複数生成する三次元モデル生成ステップと、
前記生成された複数の三次元モデルの中から、被合成三次元モデルと当該被合成三次元モデルに合成する合成三次元モデルとを選択する三次元モデル選択ステップと、
前記選択された被合成三次元モデルから複数の第1特徴点を抽出するとともに、前記選択された合成三次元モデルから複数の第2特徴点を抽出する特徴点抽出ステップと、
前記抽出された複数の第1特徴点と第2特徴点のうち前記ステレオカメラとの距離が近い特徴点を優先的に選択する特徴点選択ステップと、
前記選択された複数の第1特徴点と第2特徴点とに基づいて、当該合成三次元モデルの座標を当該被合成三次元モデルの座標系の座標に変換する座標変換パラメータを取得する座標変換パラメータ取得ステップと、
前記取得された座標変換パラメータを用いて、前記合成三次元モデルの座標を前記被合成三次元モデルの座標系の座標に変換する座標変換ステップと、
前記座標変換後の合成三次元モデルを前記被合成三次元モデルに合成する合成ステップと、を含む、
ことを特徴とする三次元モデリング方法。
【請求項6】
三次元モデリング方法であって、
カメラを移動させて異なる位置で被写体を撮像することにより得られる第1画像と第2画像とを取得する画像取得ステップと、
前記第1画像上から複数の第1特徴点を抽出するとともに、抽出した複数の第1特徴点に対応する前記第2画像上の複数の第2特徴点を抽出する特徴点抽出ステップと、
前記抽出された第1特徴点と第2特徴点のうち、撮像時における前記カメラとの距離が近い第1特徴点と第2特徴点とを優先的に選択する特徴点選択ステップと、
前記選択された第1特徴点と第2特徴点とに基づいて、前記第1画像撮像時と前記第2画像撮像時とにおける前記カメラの位置関係を示す座標変換パラメータを取得する座標変換パラメータ取得ステップと、
前記取得された座標変換パラメータに基づいて、前記特徴点抽出ステップで抽出した複数の第1特徴点及び第2特徴点の三次元情報を取得する三次元情報取得ステップと、
前記取得された複数の第1特徴点及び第2特徴点の三次元情報に基づいて、三次元モデルを作成する三次元モデル作成ステップと、を含む、
ことを特徴とする三次元モデリング方法。
【請求項7】
コンピュータに、
一度の撮像により一組の画像を取得するステレオカメラを用いて、被写体を異なる角度から複数回撮像することにより得られる複数の画像の組の入力を受け付ける画像受付機能、
前記受け付けられた複数の画像の組のそれぞれに基づいて、前記被写体の三次元モデルを複数生成する三次元モデル生成機能、
前記生成された複数の三次元モデルの中から、被合成三次元モデルと当該被合成三次元モデルに合成する合成三次元モデルとを選択する三次元モデル選択機能、
前記選択された被合成三次元モデルから複数の第1特徴点を抽出するとともに、前記選択された合成三次元モデルから複数の第2特徴点を抽出する特徴点抽出機能、
前記抽出された複数の第1特徴点と第2特徴点のうち前記ステレオカメラとの距離が近い特徴点を優先的に選択する特徴点選択機能、
前記選択された複数の第1特徴点と第2特徴点とに基づいて、当該合成三次元モデルの座標を当該被合成三次元モデルの座標系の座標に変換する座標変換パラメータを取得する座標変換パラメータ取得機能、
前記取得された座標変換パラメータを用いて、前記合成三次元モデルの座標を前記被合成三次元モデルの座標系の座標に変換する座標変換機能、
前記座標変換後の合成三次元モデルを前記被合成三次元モデルに合成する合成機能、を実現させる、
ことを特徴とするプログラム。
【請求項8】
コンピュータに、
カメラを移動させて異なる位置で被写体を撮像することにより得られる第1画像と第2画像とを取得する画像取得機能、
前記第1画像上から複数の第1特徴点を抽出するとともに、抽出した複数の第1特徴点に対応する前記第2画像上の複数の第2特徴点を抽出する特徴点抽出機能、
前記抽出された第1特徴点と第2特徴点のうち、撮像時における前記カメラとの距離が近い第1特徴点と第2特徴点とを優先的に選択する特徴点選択機能、
前記選択された第1特徴点と第2特徴点とに基づいて、前記第1画像撮像時と前記第2画像撮像時とにおける前記カメラの位置関係を示す座標変換パラメータを取得する座標変換パラメータ取得機能、
前記取得された座標変換パラメータに基づいて、前記特徴点抽出機能が抽出した複数の第1特徴点及び第2特徴点の三次元情報を取得する三次元情報取得機能、
前記取得された複数の第1特徴点及び第2特徴点の三次元情報に基づいて、三次元モデルを作成する三次元モデル作成機能、を実現させる、
ことを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2012−248221(P2012−248221A)
【公開日】平成24年12月13日(2012.12.13)
【国際特許分類】
【出願番号】特願2012−197575(P2012−197575)
【出願日】平成24年9月7日(2012.9.7)
【分割の表示】特願2011−84881(P2011−84881)の分割
【原出願日】平成23年4月6日(2011.4.6)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】
【公開日】平成24年12月13日(2012.12.13)
【国際特許分類】
【出願日】平成24年9月7日(2012.9.7)
【分割の表示】特願2011−84881(P2011−84881)の分割
【原出願日】平成23年4月6日(2011.4.6)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】
[ Back to top ]