説明

AR処理装置、AR処理方法及びプログラム

【課題】手間がかからずに、カメラの位置姿勢を精度よく推定できるAR処理装置を提供する。
【解決手段】生成部12は、同一被写体について取得されたペア画像に基づいて、被写体の3Dモデルを生成する。抽出部13は、被合成3Dモデルから複数の第1特徴点を抽出すると共に、合成3Dモデルから複数の第2特徴点を抽出する。取得部14は、複数の第1特徴点と複数の第2特徴点とに基づいて、座標変換パラメータを取得する。変換部15は、この座標変換パラメータを用いて、合成3Dモデルの座標を被合成3Dモデルの座標系の座標に変換する。合成部16は、変換された全ての合成3Dモデルを被合成3Dモデルに合成すると共に、特徴点の統合を行う。保存部17は、合成された被写体の3Dモデルと、統合された特徴点に関する情報をメモリカード等に保存する。ここで保存されたデータは、AR処理で使用される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮像画像に対してAR(Augmented Reality:拡張現実)処理を施す技術に関する。
【背景技術】
【0002】
AR技術は、カメラで撮影された現実空間の画像(撮像画像)に、当該被写体に関する情報やCG(コンピュータグラフィックス)画像等を重畳してユーザに提示する等を行う技術であり、近年、その研究・開発が盛んに行われている。
【0003】
このAR技術では、ユーザに対して、撮像画像に重畳する画像等(仮想物体)が、現実空間中に実在するような感覚を与えるため、ユーザの視点(即ち、カメラの位置姿勢)の変化に合わせて、重畳する仮想物体の位置も正確に整合させる必要がある。
【0004】
例えば、非特許文献1では、被写体に所定のマーカを貼り付け、これを追跡することで、カメラの位置姿勢を推定する技術が提案されている。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】加藤博一、外3名、「マーカー追跡に基づく拡張現実感システムとそのキャリブレーション」、日本バーチャルリアリティ学会論文誌、Vol.4、No.4、pp.607-616、1999
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記のマーカを利用する手法では、被写体に予めマーカを貼り付ける作業を要するため、事前の準備に手間がかかる。また、被写体によっては、その形状や希少性等の問題から、マーカの貼り付け自体が困難な場合もあり、被写体として選択できる幅が狭まる。
【0007】
本発明は、上記実状に鑑みてなされたものであり、AR処理において、多種多様な有体物を被写体にすることができる上、マーカを使用することなくカメラの位置姿勢を精度よく推定できるAR処理装置等を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の第1の観点に係るAR処理装置は、
同一被写体について視差のある2以上の画像の組を取得する画像取得手段と、
該画像取得手段により取得された画像の組に基づいて、当該被写体の3Dモデルを生成する生成手段と、
該生成手段により生成された最初の3Dモデルを被合成3Dモデルとして選択し、該被合成3Dモデルから複数の第1特徴点を抽出すると共に、前記生成手段により生成された2回目以降の一の3Dモデルを合成3Dモデルとして選択し、該合成3Dモデルから複数の第2特徴点を抽出する抽出手段と、
該抽出手段により抽出された前記被合成3Dモデルの複数の第1特徴点と、前記合成3Dモデルの複数の第2特徴点と、に基づいて、当該合成3Dモデルの座標を前記被合成3Dモデルの座標系の座標に変換する座標変換パラメータを取得する取得手段と、
該取得手段により取得された前記座標変換パラメータを用いて、当該合成3Dモデルの座標を前記被合成3Dモデルの座標系の座標に変換する変換手段と、
変換された全ての前記合成3Dモデルを前記被合成3Dモデルに合成すると共に、特徴点の統合を行う合成手段と、
該合成手段の前記合成により生成された被写体の3Dモデルと、前記統合された特徴点に関する特徴点情報を所定のメモリに保存する保存手段と、を備えることを特徴とする。
【0009】
上記構成のAR処理装置において、
前記取得手段は、前記抽出された複数の第1特徴点の中から3つの第1特徴点を選択し、前記抽出された複数の第2特徴点の中から、当該選択された3つの第1特徴点を頂点とする三角形に対応する三角形の3つの頂点を構成する3つの第2特徴点を選択し、当該選択された3つの第2特徴点の座標を当該選択された3つの第1特徴点の座標に合わせる座標変換パラメータを取得する、ようにしてもよい。
【0010】
上記の場合、前記取得手段は、前記抽出された複数の第1特徴点の中から3つの第1特徴点をランダムに選択して座標変換パラメータを取得する処理を複数回実行し、当該複数回の処理により得られた複数の座標変換パラメータの中から一の座標変換パラメータを選択してもよい。
【0011】
その際、前記取得手段は、前記複数の座標変換パラメータの中から、前記変換手段による座標変換後の前記複数の第2特徴点の座標が、前記複数の第1特徴点の座標と最も合致する一の座標変換パラメータを選択してもよい。
【0012】
また、前記合成手段は、前記複数の第1特徴点と前記複数の第2特徴点とを、対応する特徴点同士が同じグループに属するように複数のグループにグループ化し、当該複数のグループのそれぞれについて重心を求め、求められた複数の重心を新たな複数の特徴点として、新たな3Dモデルを生成する、ようにしてもよい。
【0013】
本発明の第2の観点に係るAR処理装置は、
予め登録されている、被写体の第1の3Dモデルと、該第1の3Dモデルの生成時に取得された複数の特徴点に関する情報と、からなる3Dオブジェクトデータを取得する登録データ取得手段と、
同一被写体について視差のある2以上の画像の組を取得する画像取得手段と、
該画像取得手段により取得された画像の組に基づいて、当該被写体の第2の3Dモデルを生成する生成手段と、
該生成手段により生成された前記第2の3Dモデルから複数の特徴点を抽出する抽出手段と、
該抽出手段により抽出された前記第2の3Dモデルの複数の特徴点と、前記登録データ取得手段により取得された前記3Dオブジェクトデータに係る複数の特徴点と、に基づいて、前記第1の3Dモデルの座標を前記第2の3Dモデルの座標系の座標に変換する座標変換パラメータを取得する取得手段と、
該取得手段により取得された前記座標変換パラメータと、前記第2の3Dモデルと、に基づいて、ARデータを生成するARデータ生成手段と、
該ARデータ生成手段により生成された前記ARデータに基づく画像を表示するAR画像表示手段と、を備えることを特徴とする。
【0014】
本発明の第3の観点に係るAR処理方法は、
同一被写体について視差のある2以上の画像の組を取得する画像取得ステップと、
該画像取得ステップで取得された画像の組に基づいて、当該被写体の3Dモデルを生成する生成ステップと、
該生成ステップで生成された最初の3Dモデルを被合成3Dモデルとして選択し、該被合成3Dモデルから複数の第1特徴点を抽出すると共に、前記生成ステップで生成された2回目以降の一の3Dモデルを合成3Dモデルとして選択し、該合成3Dモデルから複数の第2特徴点を抽出する抽出ステップと、
該抽出ステップで抽出された前記被合成3Dモデルの複数の第1特徴点と、前記合成3Dモデルの複数の第2特徴点と、に基づいて、当該合成3Dモデルの座標を前記被合成3Dモデルの座標系の座標に変換する座標変換パラメータを取得する取得ステップと、
該取得ステップで取得された前記座標変換パラメータを用いて、当該合成3Dモデルの座標を前記被合成3Dモデルの座標系の座標に変換する変換ステップと、
変換された全ての前記合成3Dモデルを前記被合成3Dモデルに合成すると共に、特徴点の統合を行う合成ステップと、
該合成ステップの前記合成により生成された被写体の3Dモデルと、前記統合された特徴点に関する特徴点情報を所定のメモリに保存する保存ステップと、を有することを特徴とする。
【0015】
本発明の第4の観点に係るAR処理方法は、
予め登録されている、被写体の第1の3Dモデルと、該第1の3Dモデルの生成時に取得された複数の特徴点に関する情報と、からなる3Dオブジェクトデータを取得する登録データ取得ステップと、
同一被写体について視差のある2以上の画像の組を取得する画像取得ステップと、
該画像取得ステップで取得された画像の組に基づいて、当該被写体の第2の3Dモデルを生成する生成ステップと、
該生成ステップで生成された前記第2の3Dモデルから複数の特徴点を抽出する抽出ステップと、
該抽出ステップで抽出された前記第2の3Dモデルの複数の特徴点と、前記登録データ取得ステップで取得された前記3Dオブジェクトデータに係る複数の特徴点と、に基づいて、前記第1の3Dモデルの座標を前記第2の3Dモデルの座標系の座標に変換する座標変換パラメータを取得する取得ステップと、
該取得ステップで取得された前記座標変換パラメータと、前記第2の3Dモデルと、に基づいて、ARデータを生成するARデータ生成ステップと、
該ARデータ生成ステップで生成された前記ARデータに基づく画像を表示するAR画像表示ステップと、を有することを特徴とする。
【0016】
本発明の第5の観点に係るプログラムは、
AR処理装置を制御するコンピュータに、
同一被写体について視差のある2以上の画像の組を取得する画像取得機能と、
該画像取得機能で取得された画像の組に基づいて、当該被写体の3Dモデルを生成する生成機能と、
該生成機能で生成された最初の3Dモデルを被合成3Dモデルとして選択し、該被合成3Dモデルから複数の第1特徴点を抽出すると共に、前記生成機能で生成された2回目以降の一の3Dモデルを合成3Dモデルとして選択し、該合成3Dモデルから複数の第2特徴点を抽出する抽出機能と、
該抽出機能で抽出された前記被合成3Dモデルの複数の第1特徴点と、前記合成3Dモデルの複数の第2特徴点と、に基づいて、当該合成3Dモデルの座標を前記被合成3Dモデルの座標系の座標に変換する座標変換パラメータを取得する取得機能と、
該取得機能で取得された前記座標変換パラメータを用いて、当該合成3Dモデルの座標を前記被合成3Dモデルの座標系の座標に変換する変換機能と、
変換された全ての前記合成3Dモデルを前記被合成3Dモデルに合成すると共に、特徴点の統合を行う合成機能と、
該合成機能の前記合成により生成された被写体の3Dモデルと、前記統合された特徴点に関する特徴点情報を所定のメモリに保存する保存機能と、を実現させることを特徴とする。
【0017】
本発明の第6の観点に係るプログラムは、
AR処理装置を制御するコンピュータに、
予め登録されている、被写体の第1の3Dモデルと、該第1の3Dモデルの生成時に取得された複数の特徴点に関する情報と、からなる3Dオブジェクトデータを取得する登録データ取得機能と、
同一被写体について視差のある2以上の画像の組を取得する画像取得機能と、
該画像取得機能で取得された画像の組に基づいて、当該被写体の第2の3Dモデルを生成する生成機能と、
該生成機能で生成された前記第2の3Dモデルから複数の特徴点を抽出する抽出機能と、
該抽出機能で抽出された前記第2の3Dモデルの複数の特徴点と、前記登録データ取得機能で取得された前記3Dオブジェクトデータに係る複数の特徴点と、に基づいて、前記第1の3Dモデルの座標を前記第2の3Dモデルの座標系の座標に変換する座標変換パラメータを取得する取得機能と、
該取得機能で取得された前記座標変換パラメータと、前記第2の3Dモデルと、に基づいて、ARデータを生成するARデータ生成機能と、
該ARデータ生成機能で生成された前記ARデータに基づく画像を表示するAR画像表示機能と、を実現させることを特徴とする。
【発明の効果】
【0018】
本発明によれば、AR処理において、手間がかからずに多種多様な有体物を被写体にすることができ、カメラの位置姿勢も精度よく推定できる。
【図面の簡単な説明】
【0019】
【図1】本発明の実施形態に係るステレオカメラの外観構成を示す図であり、(a)は、前面側を示し、(b)は背面側を示す。
【図2】本実施形態のステレオカメラの電気的構成を示すブロック図である。
【図3】本実施形態のステレオカメラにおいて、3Dオブジェクト登録モードに係る機能的構成を示すブロック図である。
【図4】本実施形態における3Dオブジェクト登録処理の手順を示すフローチャートである。
【図5】本実施形態における3Dモデル生成処理の手順を示すフローチャートである。
【図6】本実施形態におけるカメラ位置推定処理Aの手順を示すフローチャートである。
【図7】本実施形態における座標変換パラメータ取得処理の手順を示すフローチャートである。
【図8】本実施形態における3Dモデル合成処理の手順を示すフローチャートである。
【図9】本実施形態のステレオカメラにおいて、3Dオブジェクト操作モードに係る機能的構成を示すブロック図である。
【図10】本実施形態におけるAR処理の手順を示すフローチャートである。
【図11】本実施形態におけるカメラ位置推定処理Bの手順を示すフローチャートである。
【発明を実施するための形態】
【0020】
以下、本発明の一実施形態について、図面を参照して説明する。本実施形態では、本発明をデジタル式のステレオカメラに適用した例を示す。
【0021】
図1(a)、(b)は、本実施形態に係るステレオカメラ1の外観図である。図1(a)に示すように、このステレオカメラ1の前面には、レンズ111Aと、レンズ111Bと、ストロボ発光部400と、が設けられ、上面には、シャッタボタン331が設けられている。レンズ111Aとレンズ111Bは、シャッタボタン331が上になる方向で、ステレオカメラ1を水平にした場合に、各々の中心位置が水平方向で同一線上となるように、所定の間隔を隔てて配置されている。ストロボ発光部400は、必要に応じて被写体に向けてストロボ光を照射する。シャッタボタン331は、ユーザからのシャッタ動作指示を受け付けるためのボタンである。
【0022】
ステレオカメラ1の背面には、図1(b)に示すように、表示部310と、操作キー332と、電源ボタン333と、が設けられている。表示部310は、例えば、液晶表示装置等から構成され、ステレオカメラ1を操作するために必要な種々の画面や、撮影時のライブビュー画像、撮像画像等を表示するための電子ビューファインダとして機能する。
【0023】
操作キー332は、十字キーや決定キー等を含み、モード切替や表示切替等、ユーザからの各種の操作を受け付ける。電源ボタン333は、ステレオカメラ1の電源のオン・オフをユーザから受け付けるためのボタンである。
【0024】
図2は、ステレオカメラ1の電気的構成を示すブロック図である。図2に示すように、ステレオカメラ1は、第1撮像部100Aと、第2撮像部100Bと、データ処理部200と、I/F部300と、ストロボ発光部400と、を備える。
【0025】
第1撮像部100A及び第2撮像部100Bは、それぞれ被写体を撮像する機能を担う部分である。ステレオカメラ1は、いわゆる複眼カメラであり、このように2つの撮像部を有する構成であるが、第1撮像部100Aと第2撮像部100Bは同一の構成である。以下、第1撮像部100Aについての構成には参照符号の末尾に「A」を付し、第2撮像部100Bについての構成には参照符号の末尾に「B」を付す。
【0026】
図2に示すように、第1撮像部100A(第2撮像部100B)は、光学装置110A(110B)やイメージセンサ部120A(120B)等から構成されている。光学装置110A(110B)は、例えば、レンズ、絞り機構、シャッタ機構等を含み、撮像に係る光学的動作を行う。即ち、光学装置110A(110B)の動作により、入射光が集光されるとともに、焦点距離、絞り、シャッタスピード等といった、画角やピント、露出等にかかる光学的要素の調整がなされる。
【0027】
なお、光学装置110A(110B)に含まれるシャッタ機構はいわゆるメカニカルシャッタであり、イメージセンサの動作のみでシャッタ動作をおこなう場合には、光学装置110A(110B)にシャッタ機構が含まれていなくてもよい。また、光学装置110A(110B)は、後述する制御部210による制御によって動作する。
【0028】
イメージセンサ部120A(120B)は、光学装置110A(110B)によって集光された入射光に応じた電気信号を生成する。イメージセンサ部120A(120B)は、例えば、CCD(Charge Coupled Device)やCMOS(Complementally Metal Oxide Semiconductor)等のイメージセンサから構成され、光電変換を行うことで、受光した光の強度に応じた電気信号を生成し、生成した電気信号をデータ処理部200に出力する。
【0029】
上述したように、第1撮像部100Aと第2撮像部100Bは同一の構成である。より詳細には、レンズの焦点距離fやF値、絞り機構の絞り範囲、イメージセンサのサイズや画素数、配列、画素面積等の各仕様が全て同一である。第1撮像部100Aと第2撮像部100Bとを同時に動作させた場合、同一被写体について2つの画像(ペア画像)が撮像されるが、光軸位置は横方向で異なっている。
【0030】
データ処理部200は、第1撮像部100A及び第2撮像部100Bによる撮像動作によって生成された電気信号を処理し、撮像画像を示すデジタルデータを生成すると共に、撮像画像に対する画像処理等を行う。データ処理部200は、制御部210、画像処理部220、画像メモリ230、画像出力部240、記憶部250、外部記憶部260等から構成される。
【0031】
制御部210は、例えば、CPU(Central Processing Unit)等のプロセッサや、RAM(Random Access Memory)等の主記憶装置等から構成され、記憶部250等に格納されているプログラムを実行することで、ステレオカメラ1の各部を制御する。また、本実施形態では、所定のプログラムを実行することで、後述する各処理にかかる機能が制御部210によって実現する。
【0032】
画像処理部220は、例えば、ADC(Analog-Digital Converter)、バッファメモリ、画像処理用のプロセッサ(いわゆる、画像処理エンジン)等から構成され、イメージセンサ部120A及び120Bによって生成された電気信号に基づいて、撮像画像を示すデジタルデータを生成する。即ち、イメージセンサ部120A(120B)から出力されたアナログ電気信号をADCがデジタル信号に変換して順次バッファメモリに格納すると、バッファされたデジタルデータに対し、画像処理エンジンが、いわゆる現像処理等を行うことで、画質の調整やデータ圧縮等を行う。
【0033】
画像メモリ230は、例えば、RAMやフラッシュメモリ等の記憶装置から構成され、画像処理部220によって生成された撮像画像データや、制御部210によって処理される画像データ等を一時的に保存する。
【0034】
画像出力部240は、例えば、RGB信号を生成する回路等から構成され、画像メモリ230に格納された画像データをRGB信号等に変換して表示画面(表示部310等)に出力する。
【0035】
記憶部250は、例えば、ROM(Read Only Memory)やフラッシュメモリ等の記憶装置から構成され、ステレオカメラ1の動作に必要なプログラムやデータ等を格納する。本実施形態では、制御部210等が実行する動作プログラムや、その実行時に必要となるパラメータや演算式等のデータが記憶部250に格納されているものとする。
【0036】
外部記憶部260は、例えば、メモリカード等といった、ステレオカメラ1に着脱可能な記憶装置から構成され、ステレオカメラ1で撮像した画像データ、3Dオブジェクトデータ等を格納する。
【0037】
I/F部300は、ステレオカメラ1と、ユーザあるいは外部装置との間のインタフェースに係る機能を担う処理部であり、表示部310、外部I/F部320、操作部330等から構成される。
【0038】
表示部310は、上述したように、例えば、液晶表示装置等から構成され、ユーザがステレオカメラ1を操作するために必要な種々の画面や、撮影時のライブビュー画像、撮像画像等を表示出力する。本実施形態では、画像出力部240からの画像信号(RGB信号)等に基づいて撮像画像等の表示出力が行われる。
【0039】
外部I/F部320は、例えば、USB(Universal Serial Bus)コネクタやビデオ出力端子等から構成され、外部のコンピュータ装置への画像データの出力や外部モニタ装置への撮像画像の表示出力等を行う。
【0040】
操作部330は、ステレオカメラ1の外面上に設けられている各種ボタン等によって構成され、ユーザによる操作に応じた入力信号を生成して制御部210に送出する。操作部330を構成するボタンには、上述したように、シャッタボタン331、操作キー332、電源ボタン333等が含まれる。
【0041】
ストロボ発光部400は、例えば、キセノンランプ(キセノンフラッシュ)により構成される。ストロボ発光部400は、制御部210の制御に従って被写体にストロボ光を照射する。
【0042】
以上、本発明を実現するために必要となるステレオカメラ1の構成について説明したが、ステレオカメラ1は、このほかにも、一般的なステレオカメラの機能を実現するための構成を備えているものとする。
【0043】
以上の構成のステレオカメラ1では、3Dオブジェクト登録モード時の処理(3Dオブジェクト登録処理)により、被写体の3Dモデルと特徴点情報を登録する。そして、3Dオブジェクト操作モード時の処理(AR処理)にて、先に登録した特徴点情報に基づいて、ステレオカメラ1の位置姿勢を推定し、今回取得した撮像画像に対してAR処理を施し、ARデータを生成する。
【0044】
先ず、図3〜図8を参照して、ステレオカメラ1の動作の内、3Dオブジェクト登録モードに係る動作について説明する。
【0045】
図3は、ステレオカメラ1における、3Dオブジェクト登録モードに係る動作を実現するための機能的構成を示すブロック図である。
【0046】
この動作において、図3に示すように、ステレオカメラ1は、画像取得部11、生成部12、抽出部13、取得部14、変換部15、合成部16、保存部17と、を備える。
【0047】
画像取得部11は、同一被写体について視差のある2つの画像(ペア画像)を取得する。生成部12は、画像取得部11により取得されたペア画像に基づいて、被写体の3Dモデルを生成する。
【0048】
抽出部13は、生成部12により生成された最初の3Dモデル(被合成3Dモデル)から複数の第1特徴点を抽出すると共に、生成部12により生成された2回目以降の一の3Dモデル(合成3Dモデル)から複数の第2特徴点を抽出する。
【0049】
取得部14は、抽出部13により抽出された複数の第1特徴点と複数の第2特徴点とに基づいて、当該合成3Dモデルの座標を当該被合成3Dモデルの座標系の座標に変換する座標変換パラメータを取得する。
【0050】
変換部15は、取得部14により取得された座標変換パラメータを用いて、合成3Dモデルの座標を被合成3Dモデルの座標系の座標に変換する。
【0051】
合成部16は、変換された全ての合成3Dモデルを被合成3Dモデルに合成すると共に、特徴点の統合を行う。保存部17は、合成部16により合成された被写体の3Dモデルと、統合された特徴点に関する情報(特徴点情報)を外部記憶部260等に保存する。
【0052】
図4は、上記の3Dオブジェクト登録処理の手順を示すフローチャートである。この3Dオブジェクト登録処理は、ユーザが、操作キー332等の操作部330を操作することで、3Dオブジェクト登録モードが選択されたことを契機に開始される。
【0053】
3Dオブジェクト登録処理では、シャッタボタン331が押圧されている間、被写体の撮像、3Dモデルの生成、生成された3Dモデルの合成、特徴点の統合、合成後の3Dモデルのプレビュー表示、などが、繰り返し実行される。ここで、最初の撮像により得られる3Dモデルであって、合成の基礎となる3Dモデルを被合成3Dモデルという。また、2回目以降の撮像により得られる3Dモデルであって、被合成3Dモデルに合成される3Dモデルを合成3Dモデルという。なお、ユーザは、被写体に対する視点を動かしながら、即ち、ステレオカメラ1の位置姿勢を変えながら、被写体を連写するものとする。
【0054】
ステップS101では、制御部210により、終了イベントの発生有無が判定される。終了イベントは、例えば、ユーザにより、再生モード等へのモード移行操作が行われた場合や、ステレオカメラ1の電源がオフされた場合等に発生する。
【0055】
終了イベントが発生している場合(ステップS101;YES)、本処理は終了する。一方、終了イベントが発生していない場合(ステップS101;NO)、制御部210は、一方の撮像部(例えば、第1撮像部100A)を介して得られた画像データに基づく画像(いわゆる、ライブビュー画像)を表示部310に表示する(ステップS102)。
【0056】
ステップS103では、制御部210は、シャッタボタン331が押下されているか否かを判定する。シャッタボタン331が押下されていない場合(ステップS103;NO)、制御部210は、再度、ステップS101の処理を実行する。一方、シャッタボタン331が押下されている場合(ステップS103;YES)、制御部210は、第1撮像部100A、第2撮像部100B、画像処理部220を制御して、被写体を撮像する(ステップS104)。その結果、2枚の平行同位画像(ペア画像)が得られる。取得されたペア画像は、例えば、画像メモリ230に保存される。なお、以降の説明において、ペア画像の内、第1撮像部100Aによる撮像の結果得られた画像を画像A、第2撮像部100Bによる撮像の結果得られた画像を画像Bとする。
【0057】
制御部210は、画像メモリ230に保存されているペア画像に基づいて、3Dモデル生成処理を実行する(ステップS105)。
【0058】
ここで、図5に示すフローチャートを参照して、3Dモデル生成処理について説明する。なお、3Dモデル生成処理は、一組のペア画像に基づいて3Dモデルを生成する処理である。つまり、3Dモデル生成処理は、一のカメラ位置から見た3Dモデルを生成する処理と考えることができる。
【0059】
まず、制御部210は、特徴点の候補を抽出する(ステップS201)。例えば、制御部210は、画像Aに対してコーナー検出を行う。制御部210は、例えば、ハリスのコーナー検出関数等を用いて特徴点の抽出を行う。この場合、コーナー特徴量が所定閾値以上かつ所定半径内で最大になる点がコーナー点として選択される。これにより、被写体の先端等、他の点に対して特徴のある点が特徴点として抽出される。
【0060】
次に、制御部210は、ステレオマッチングを実行し、画像Aの特徴点に対応する点(対応点)を画像Bから探す(ステップS202)。具体的には、制御部210は、テンプレートマッチングにより、類似度が所定閾値以上かつ最大のもの(あるいは、相違度が所定閾値以下かつ最小のもの)を対応点として検出する。テンプレートマッチングには、例えば、残差絶対値和(SAD)、残差平方和(SSD)、正規化相関(NCCやZNCC)、方向符号相関等、様々な既知の技法が採用可能である。
【0061】
制御部210は、ステップS202において検出した対応点の視差情報、第1撮像部100A及び第2撮像部100Bの画角、基線長などから、特徴点の位置情報を算出する(ステップS203)。算出した特徴点の位置情報は、例えば、記憶部250に保存される。なお、この際、特徴点の付帯的な情報として、色情報等も位置情報と共に保存してもよい。
【0062】
制御部210は、算出した特徴点の位置情報に基づいてドロネー三角形分割を実行し、ポリゴン化処理を実行する(ステップS204)。この処理により生成されたポリゴン情報(3Dモデル)は、例えば、記憶部250に保存される。制御部210は、ポリゴン化処理を完了すると、3Dモデル生成処理を終了する。
【0063】
3Dモデル生成処理が終了すると、制御部210は、当該撮像が最初であるか否かを判定する(図4のステップS106)。最初の撮像である場合(ステップS106;YES)、制御部210は、3Dモデル生成処理において生成された3Dモデルを、被合成3Dモデルに設定する(ステップS107)。
【0064】
一方、最初の撮像でない場合(ステップS106;NO)、制御部210は、カメラ位置推定処理Aを実行する(ステップS108)。カメラ位置推定処理Aについては、図6のフローチャートを参照して説明する。なお、カメラ位置推定処理Aにおいては、最初の撮像時のステレオカメラ1の位置姿勢に対する、今回の撮像時のステレオカメラ1の相対的な位置姿勢が求められる。なお、この相対的な位置姿勢を求めることは、今回の撮像により得られた3Dモデルの座標を、最初の撮像により得られた3Dモデルの座標系の座標に変換する座標変換パラメータを求めることと同様である。
【0065】
まず、制御部210は、被合成3Dモデル及び合成3Dモデルの双方から3D空間上の特徴点(第1特徴点及び第2特徴点)を取得する(ステップS301)。例えば、制御部210は、被合成3Dモデル(もしくは、合成3Dモデル)の特徴点の内、コーナー強度が高く、ステレオマッチングの一致度が高いものを選択する。あるいは、制御部210は、ペア画像間でエピ線拘束を考慮した上で、SURF(Speeded-Up Robust Features)特徴量によるマッチングを実行することで、特徴点を取得するようにしてもよい。
【0066】
制御部210は、ステップS301の処理を完了すると、被合成3Dモデルから3つの特徴点をランダムに選択する(ステップS302)。そして、制御部210は、当該選択が適切であるか否かを判定する(ステップS303)。ここでは、以下に示す(A)及び(B)の条件を何れも満たす場合に、当該3つの特徴点の選択が適切であると判定される。
【0067】
(A)の条件は、3つの特徴点を頂点とする三角形の面積が小さ過ぎないこと、即ち、予め決められた面積以上であることであり、(B)の条件は、3つの特徴点を頂点とする三角形が極端に鋭角な角を持たないこと、即ち、予め決められた角度以上であることである。
【0068】
上記の判定の結果、当該選択が適切でない場合(ステップS303;NO)、制御部210は、再度、ステップS302の処理を行う。一方、当該選択が適切である場合(ステップS303;YES)、制御部210は、合成3Dモデルが有する3つの特徴点を頂点とする三角形の中から、ステップS302において選択した3つの特徴点を頂点とする三角形と合同な三角形(合同三角形)を探索する(ステップS304)。例えば、両者の3辺の長さがほぼ等しい場合、この2つの三角形は合同であると判定される。このステップS304の処理は、ステップS302において被合成3Dモデルから選択された3つの特徴点に対応する3点を、合成3Dモデルの特徴点の内から探索する処理と考えることもできる。
【0069】
なお、制御部210は、特徴点やその周辺の色情報、あるいはSURF特徴量等で三角形の候補を予め絞ることで、この探索処理を高速化することができる。探索された三角形を示す情報(典型的には、当該三角形の頂点を構成する3つの特徴点の3D空間上の座標を示す情報。)は、例えば、記憶部250に保存される。合同三角形が複数ある場合、全ての三角形を示す情報が、記憶部250に保存される。
【0070】
制御部210は、上記の探索により、少なくとも1つの合同三角形が存在するか否かを判定する(ステップS305)。なお、探索された合同三角形の数が所定数以上の場合、制御部210は、合同三角形が存在しない(見つからない)と判定してもよい。
【0071】
合同三角形が存在する場合(ステップS305;YES)、制御部210は、その内の1つを選択する(ステップS306)。一方、合同三角形が存在しない場合(ステップS305;NO)、制御部210は、再度、ステップS302の処理を行う。
【0072】
合同三角形を1つ選択すると、制御部210は、座標変換パラメータ取得処理を実行する(ステップS307)。座標変換パラメータ取得処理は、合成3Dモデルの座標を被合成3Dモデルの座標系の座標に変換するための座標変換パラメータを取得する処理である。なお、座標変換パラメータ取得処理は、ステップS302において選択された3つの特徴点と、ステップS306において選択された合同三角形と、の組み合わせ毎に実行される。ここで、座標変換パラメータは、式(1)及び(2)で与えられる対応点ペア(特徴点ペア、頂点ペア)に対して、式(3)を満たす回転行列Rと移動ベクトルtとを求める処理である。式(1)及び(2)のpとp’とは、各々のカメラ視点に対応する3D空間上の座標を持つ。なお、Nは、対応点ペアのペア数である。
【数1】

【数2】

【数3】

【0073】
図7は、座標変換パラメータ取得処理の手順を示すフローチャートである。まず、制御部210は、式(4)及び(5)に示すように、対応点ペアを設定する(ステップS401)。ここで、c1とc2とは、対応する列ベクトルが対応点の座標になる行列である。この行列から回転行列Rと移動ベクトルtとを直接求めることは難しい。しかしながら、pとp’との分布がほぼ等しいことから、対応点の重心を合わせてから回転すれば、対応点を重ね合わせることができる。このことを利用して、回転行列Rと移動ベクトルtとを求める。
【数4】

【数5】

【0074】
つまり、制御部210は、式(6)及び(7)を用いて、特徴点の重心である重心t1およびt2を求める(ステップS402)。
【数6】

【数7】

【0075】
次に、制御部210は、式(8)及び(9)を用いて、特徴点の分布である分布d1及びd2を求める(ステップS403)。ここで、上述したように、分布d1と分布d2との間には、式(10)の関係がある。
【数8】

【数9】

【数10】

【0076】
次に、制御部210は、式(11)及び(12)を用いて、分布d1及びd2の特異値分解を実行する(ステップS404)。特異値は、降順に並べられているものとする。ここで、記号*は複素共役転置を表す。
【数11】

【数12】

【0077】
次に、制御部210は、分布d1及びd2が2次元以上であるか否かを判定する(ステップS405)。特異値は、分布の広がり具合に対応している。従って、最大の特異値とそれ以外の特異値との比率や、特異値の大きさを用いて判定がなされる。例えば、2番目に大きい特異値が、所定値以上かつ最大の特異値との比率が所定範囲内である場合に、分布が2次元以上と判定される。
【0078】
分布d1及びd2が2次元以上でない場合(ステップS405;NO)、制御部210は、回転行列Rを求めることができないので、エラー処理を実行し(ステップS413)、座標変換パラメータ取得処理を終了する。
【0079】
一方、分布d1及びd2が2次元以上である場合(ステップS405;YES)、制御部210は、関連付けKを求める(ステップS406)。式(10)〜(12)から、回転行列Rは、式(13)のように表すことができる。ここで、関連付けKを、式(14)のように定義すると、回転行列Rは、式(15)のようになる。
【数13】

【数14】

【数15】

【0080】
ここで、固有ベクトルUは、分布d1及びd2の固有ベクトルに相当し、関連付けKにより関連付けられる。関連付けKの要素は、固有ベクトルが対応する場合は1か−1が、そうでない場合は0が与えられる。ところで、分布d1及びd2が等しいことは、特異値も等しく、Sも等しいことを意味する。実際には、分布d1と分布d2とには誤差が含まれているので、誤差を丸める。以上を考慮すると、関連付けKは、式(16)のようになる。つまり、制御部210は、ステップS406において、式(16)を計算する。
【数16】

【0081】
制御部210は、ステップS406の処理を完了すると、回転行列Rを計算する(ステップS407)。具体的には、制御部210は、式(15)と式(16)とに基づいて、回転行列Rを計算する。計算により得られた回転行列Rを示す情報は、例えば、記憶部250に保存される。
【0082】
制御部210は、ステップS407の処理を完了すると、分布d1及びd2が2次元であるか否かを判定する(ステップS408)。例えば、最小の特異値が、所定値以下又は最大の特異値との比率が所定範囲外である場合、分布d1及びd2は2次元であると判定される。
【0083】
分布d1及びd2が2次元でない場合(ステップS408;NO)、制御部210は、移動ベクトルtを計算する(ステップS414)。ここで、分布d1及びd2が2次元ではないことは、分布d1及びd2が3次元(3D)であることを示す。また、pとp’とは、式(17)の関係を満たす。式(17)を変形すると、式(18)のようになる。式(18)と式(3)との対応から、移動ベクトルtは式(19)のようになる。
【数17】

【数18】

【数19】

【0084】
一方、分布d1及びd2が2次元である場合(ステップS408;YES)、制御部210は、回転行列Rを検証し、回転行列Rが正常であるか否かを判定する(ステップS409)。分布が2次元の場合、特異値の1つが0になるので、式(14)から判るように、関連付けが不定になる。つまり、Kの3行3列目の要素が1か−1のどちらかであるが、式(16)では正しい符号を割り当てる保証がない。そこで、回転行列Rの検証が必要になる。検証は、回転行列Rの外積関係の確認や式(10)による検算などで行われる。ここでいう外積関係の確認とは、回転行列Rの列ベクトル(および、行ベクトル)が座標系による制約を満たすことの確認である。右手座標系では、1列目のベクトルと2列目のベクトルの外積は、3列目のベクトルに等しくなる。
【0085】
回転行列Rが正常である場合(ステップS409;YES)、制御部210は、移動ベクトルtを計算し(ステップS414)、座標変換パラメータ取得処理を終了する。
【0086】
一方、回転行列Rが正常ではない場合(ステップS409;NO)、制御部210は、関連付けKを修正する(ステップS410)。ここでは、関連付けKの3行3列目の要素の符号を反転する。
【0087】
ステップS410の処理後、制御部210は、修正された関連付けKを用いて回転行列Rを計算する(ステップS411)。そして、制御部210は、再度、回転行列Rが正常であるか否かを判定する(ステップS412)。
【0088】
回転行列Rが正常である場合(ステップS412;YES)、制御部210は、移動ベクトルtを計算し(ステップS414)、座標変換パラメータ取得処理を終了する。
【0089】
一方、回転行列Rが正常ではない場合(ステップS412;NO)、制御部210は、エラー処理を実行し(ステップS413)、座標変換パラメータ取得処理を終了する。
【0090】
図6のフローに戻り、制御部210は、上記の座標変換パラメータ取得処理を終了すると、取得された座標変換パラメータを用いて、座標系を合わせる処理を行う(ステップS308)。具体的には、上記の式(3)を用いて、合成3Dモデルの特徴点の座標を被合成3Dモデルの座標系の座標に変換する。
【0091】
ステップS308の処理後、制御部210は、特徴点ペアを保存する(ステップS309)。ここで、特徴点ペアは、被合成3Dモデルの特徴点と、座標変換後の合成3Dモデルの特徴点の内、当該被合成3Dモデルの特徴点との距離が所定値以下かつ最近傍である特徴点と、から構成される。ここで、特徴点ペアの数が多いほど、ステップS302における3つの特徴点の選択、ならびに、ステップS306における合同三角形の選択が適切であったと推定される。なお、特徴点ペアは、座標変換パラメータの取得条件(ステップS302における3つの特徴点の選択、ならびに、ステップS306における合同三角形の選択)と共に、記憶部250等に保存される。
【0092】
次に、制御部210は、ステップS304での探索によって見つけた全ての合同三角形が、ステップS306において選択されたか否かを判定する(ステップS310)。選択されていない合同三角形が存在する場合(ステップS310;NO)、制御部210は、再度、ステップS306の処理を行う。
【0093】
一方、全ての合同三角形が選択された場合(ステップS310;YES)、制御部210は、終了条件が成立しているか否かを判定する(ステップS311)。本実施形態では、特徴点ペアの数が所定数以上になった場合や、ステップS302、S304、S307等の処理が所定回数実行された場合等に終了条件が成立するものとする。
【0094】
終了条件が成立していない場合(ステップS311;NO)、制御部210は、再度、ステップS302の処理を行う。
【0095】
一方、終了条件が成立している場合(ステップS311;YES)、制御部210は、最適な座標変換パラメータを特定する(ステップS312)。例えば、特徴点ペアが最も多く取得された座標変換パラメータや、特徴点ペアの平均距離が最も小さくなる座標変換パラメータ等が特定される。言い換えれば、ステップS302における3つの特徴点の選択、ならびに、ステップS306における合同三角形の選択が最適であるものが特定される。なお、座標変換パラメータは、回転行列Rと、移動ベクトルtとから構成される。
【0096】
制御部210は、ステップS312の処理を終了すると、カメラ位置推定処理Aを終了する。
【0097】
図4に戻り、制御部210は、以上のカメラ位置推定処理A(ステップS108)を終了すると、3Dモデル合成処理を実行する(ステップS109)。以下、3Dモデル合成処理について、図8のフローチャートを参照して説明する。
【0098】
まず、制御部210は、座標変換パラメータを用いて、全ての3Dモデルを重ねる(ステップS501)。各3Dモデルは、それぞれ対応する座標変換パラメータで座標変換された後、合成される。例えば、2回目の撮像の場合、1回目に撮像されたペア画像に基づいて生成された被合成3Dモデルに、2回目に撮像されたペア画像に基づいて生成された座標変換後の合成3Dモデルが重ねられる。また、3回目の撮像の場合、1回目に撮像されたペア画像に基づいて生成された被合成3Dモデルに、2回目に撮像されたペア画像に基づいて生成された座標変換後の合成3Dモデルが重ねられ、さらに、3回目に撮像されたペア画像に基づいて生成された座標変換後の合成3Dモデルが重ねられる。
【0099】
次に、制御部210は、各特徴点の重なり具合から信頼性の低い特徴点を除去する(ステップS502)。例えば、ある3Dモデルの注目特徴点に対する他の3Dモデルの最近傍の特徴点の分布から、当該注目特徴点のマハラノビス距離が計算され、このマハラノビス距離が所定値以上の場合は当該注目特徴点の信頼性が低いと判定される。なお、注目特徴点からの距離が所定値以上の特徴点は、最近傍の特徴点に含めないようにしてもよい。また、最近傍の特徴点の数が少ない場合、信頼性が低いものとみなしてもよい。なお、特徴点を実際に除去する処理は、全ての特徴点に対して、除去するか否かが判定された後に、実行されるものとする。
【0100】
次に、制御部210は、同一とみなせる特徴点を統合する(ステップS503)。例えば、所定距離以内の特徴点は、全て同一の特徴点を表すグループに属するものとして扱われ、これらの特徴点の重心が新たな特徴点とされる。
【0101】
ステップS503の処理後、制御部210は、ポリゴンメッシュを再構成する(ステップS504)。つまり、ステップS503において求められた新たな特徴点に基づいて、ポリゴンが生成される。制御部210は、ステップS504の処理後、3Dモデル合成処理を終了する。
【0102】
なお、図5の3Dモデル生成処理において生成された3Dモデルを示す情報(典型的には、特徴点の座標情報)は、シャッタボタン331が押圧されている間は、全撮像分(全視点分)保持され、基本的に変更されない。つまり、上述した3Dモデル合成処理は、全撮像分の3Dモデルに基づいて、表示用もしくは保存用の高精細な3Dモデルを別途作成する処理であるといえる。
【0103】
図4に戻り、制御部210は、ステップS107もしくはステップS109の処理を完了すると、合成後の3Dモデルを表示する(ステップS110)。具体的には、制御部210は、3Dモデル生成処理(ステップS105)もしくは3Dモデル合成処理(ステップS109)において取得された3Dモデルを、表示部310に表示する(ステップS110)。これにより、ユーザは、現在までの撮像に置いて、どの程度正確な3Dモデルが生成されているかを知ることができる。
【0104】
ステップS110の処理後、制御部210は、シャッタボタン331の押下が解除されたか否かを判定する(ステップS111)。シャッタボタン331の押下が解除されていない場合(ステップS111;NO)、制御部210は、再度、ステップS104の処理を行う。
【0105】
一方、シャッタボタン331の押下が解除されている場合(ステップS111;YES)、制御部210は、3Dモデル合成処理で取得した、3Dモデルと、統合した特徴点に関する情報(特徴点情報)と、からなる3Dオブジェクトデータを外部記憶部260等に保存し(ステップS112)、ステップS101の処理に戻る。
【0106】
続いて、3Dオブジェクト操作モードに係る動作について説明する。図9は、ステレオカメラ1における、3Dオブジェクト操作モードに係る動作を実現するための機能的構成を示すブロック図である。
【0107】
上記動作において、図9に示すように、ステレオカメラ1は、登録データ取得部21と、画像取得部22、生成部23、抽出部24、取得部25、ARデータ生成部26、AR画像表示部27と、を備える。
【0108】
登録データ取得部21は、上述した3Dオブジェクト登録処理で生成された、3Dモデル(第1の3Dモデル)と、特徴点情報と、からなる3Dオブジェクトデータを外部記憶部260等から読み出す。
【0109】
画像取得部22は、同一被写体について視差のある2つの画像(ペア画像)を取得する。生成部23は、画像取得部22により取得されたペア画像に基づいて、被写体の3Dモデル(第2の3Dモデル)を生成する。
【0110】
抽出部24は、生成部23により生成された第2の3Dモデルから複数の特徴点を抽出する。取得部25は、抽出部24により抽出された第2の3Dモデルの複数の特徴点と、登録データ取得部21により読み出された3Dオブジェクトデータに係る複数の特徴点と、に基づいて、第1の3Dモデルの座標を第2の3Dモデルの座標系の座標に変換する座標変換パラメータを取得する。
【0111】
ARデータ生成部26は、取得部25により取得された座標変換パラメータと、第2の3Dモデルと、に基づいて、ARデータの生成を行う。AR画像表示部27は、ARデータ生成部26により生成されたARデータに基づく画像(AR画像)を表示部310に表示する。
【0112】
図10は、3Dオブジェクト操作モード時の処理(AR処理)の手順を示すフローチャートである。AR処理は、ユーザが、操作キー332等の操作部330を操作することで、3Dオブジェクト操作モードが選択されたことを契機に開始される。
【0113】
先ず、制御部210は、上述した3Dオブジェクト登録処理により得られた3Dオブジェクトデータを外部記憶部260等から読み出し、画像メモリ230に展開する(ステップS601)。
【0114】
次に、制御部210は、終了イベントの発生有無を判定する(ステップS602)。終了イベントは、例えば、ユーザにより、再生モード等へのモード移行操作が行われた場合や、ステレオカメラ1の電源がオフされた場合等に発生する。
【0115】
終了イベントが発生している場合(ステップS602;YES)、本処理は終了する。一方、終了イベントが発生していない場合(ステップS602;NO)、制御部210は、第1撮像部100A、第2撮像部100B、画像処理部220を制御して、被写体を撮像する(ステップS603)。その結果、ペア画像が取得され、取得されたペア画像は、例えば、画像メモリ230に保存される。
【0116】
制御部210は、画像メモリ230に保存されているペア画像に基づいて、3Dモデル生成処理を実行する(ステップS604)。3Dモデル生成処理の内容については、上述した3Dオブジェクト登録処理における3Dモデル生成処理(図5参照)と同様であるため、説明を省略する。
【0117】
次に、制御部210は、カメラ位置推定処理Bを実行する(ステップS605)。図11は、カメラ位置推定処理Bの手順を示すフローチャートである。まず、制御部210は、今回取得した(即ち、今回の撮像に係る)特徴点から、3点をランダムに選択する(ステップS701)。そして、制御部210は、当該選択が適切であるか否かを判定する(ステップS702)。ここでの判定条件は、上述したカメラ位置推定処理Aの場合と同様である。
【0118】
上記の判定の結果、当該選択が適切でない場合(ステップS702;NO)、制御部210は、再度、ステップS701の処理を行う。一方、当該選択が適切である場合(ステップS702;YES)、制御部210は、読み出した3Dオブジェクトデータが有する3つの特徴点を頂点とする三角形の中から、ステップS701の処理において選択した3つの特徴点を頂点とする三角形と合同な三角形(合同三角形)を探索する(ステップS703)。例えば、両者の3辺の長さがほぼ等しい場合、この2つの三角形は合同であると判定される。
【0119】
なお、上述したカメラ位置推定処理Aと同様、制御部210は、特徴点やその周辺の色情報、あるいはSURF特徴量等で三角形の候補を予め絞ることで、この探索処理を高速化することができる。探索された三角形を示す情報(典型的には、当該三角形の頂点を構成する3つの特徴点の3D空間上の座標を示す情報。)は、例えば、記憶部250に保存される。合同三角形が複数ある場合、全ての三角形を示す情報が、記憶部250に保存される。
【0120】
制御部210は、上記の探索により、少なくとも1つの合同三角形が存在するか否かを判定する(ステップS704)。なお、探索された合同三角形の数が所定数以上の場合、制御部210は、合同三角形が存在しない(見つからない)と判定してもよい。
【0121】
合同三角形が存在する場合(ステップS704;YES)、制御部210は、その内の1つを選択する(ステップS705)。一方、合同三角形が存在しない場合(ステップS704;NO)、制御部210は、再度、ステップS701の処理を行う。
【0122】
合同三角形を1つ選択すると、制御部210は、座標変換パラメータ取得処理を実行する(ステップS706)。座標変換パラメータ取得処理の内容については、上述したカメラ位置推定処理Aにおける座標変換パラメータ取得処理(図7参照)と同様であるため、説明を省略する。
【0123】
制御部210は、座標変換パラメータ取得処理を終了すると、取得された座標変換パラメータを用いて、座標系を合わせる処理を行う(ステップS707)。即ち、式(3)を用いて、3Dオブジェクトデータに係る特徴点(登録特徴点)の座標を、今回取得した特徴点の座標系の座標に変換する。
【0124】
ステップS707の処理後、制御部210は、取得した特徴点ペアを記憶部250等に保存する(ステップS708)。ここで、特徴点ペアは、今回取得した特徴点と、座標変換後の登録特徴点の内、今回取得した特徴点との距離が所定値以下かつ最近傍である特徴点と、から構成される。
【0125】
次に、制御部210は、ステップS703での探索によって見つけた全ての合同三角形が、ステップS705において選択されたか否かを判定する(ステップS709)。選択されていない合同三角形が存在する場合(ステップS709;NO)、制御部210は、再度、ステップS705の処理を行う。
【0126】
一方、全ての合同三角形が選択された場合(ステップS709;YES)、制御部210は、終了条件が成立しているか否かを判定する(ステップS710)。本実施形態では、特徴点ペアの数が所定数以上になった場合や、ステップS701、S703、S706等の処理が所定回数実行された場合等に終了条件が成立するものとする。
【0127】
終了条件が成立していない場合(ステップS710;NO)、制御部210は、再度、ステップS701の処理を行う。
【0128】
一方、終了条件が成立している場合(ステップS710;YES)、制御部210は、最適な座標変換パラメータを特定する(ステップS711)。例えば、特徴点ペアが最も多く取得された座標変換パラメータや、特徴点ペアの平均距離が最も小さくなる座標変換パラメータ等が特定される。言い換えれば、ステップS701における3つの特徴点の選択、ならびに、ステップS705における合同三角形の選択が最適であるものが特定される。なお、座標変換パラメータは、上述したカメラ位置推定処理Aと同様、回転行列Rと、移動ベクトルtとから構成される。
【0129】
制御部210は、ステップS711の処理を終了すると、カメラ位置推定処理Bを終了する。
【0130】
図10のフローに戻り、制御部210は、カメラ位置推定処理Bで取得した座標変換パラメータを用いて、ARデータの生成を行う(ステップS606)。ARデータとしては、例えば、今回の撮像画像において被写体の写り込んでいる部分に関連する情報等を当該撮像画像に重畳した画像データ、被写体の写り込んでいる部分を仮想的な物体の画像に置き換えた画像データ、被写体の写り込んでいる部分の色や模様を変更した、あるいは、拡大した画像データ等が含まれる。
【0131】
そして、制御部210は、生成したARデータに基づく画像(AR画像)を表示部310に表示し(ステップS607)、再度、ステップS602の処理を行う。
【0132】
以上説明したように、本発明の本実施形態に係るステレオカメラ1によれば、ユーザは、3Dオブジェクト登録モードにおける処理(3Dオブジェクト登録処理)を実行させることで、容易に、所望の被写体の多視点(多視線)3Dモデリングにおける3D特徴点を取得することができる。そして、3Dオブジェクト操作モードにおける処理(AR処理)にて、今回取得した3D特徴点と、先に取得した3D特徴点と、に基づいて、ステレオカメラ1の位置姿勢を推定する。これにより、マーカ等を使うことなく、ステレオカメラ1の位置姿勢を精度よく推定することができ、ユーザの視点の変化に、重畳等する仮想物体の位置を正確に追従させることができる。
【0133】
なお、本発明は、上記実施形態に限定されず、本発明の要旨を逸脱しない範囲での種々の変更は勿論可能である。
【0134】
例えば、上記実施形態のステレオカメラ1の如く、3Dオブジェクト登録モードと、3Dオブジェクト操作モードの両機能を必ずしも備える構成でなくてもよい。例えば、3Dオブジェクト登録モード機能のみを備えるステレオカメラ(第1のカメラ)において、所望の被写体の多視点3Dモデリングにおける3D特徴点を取得し、3Dオブジェクト操作モード機能のみを備えるステレオカメラ(第2のカメラ)が、第1のカメラで取得された3D特徴点を使用するようにしてもよい。
【0135】
この場合、上記の第2のカメラは、ステレオカメラに限定されず、単眼カメラであってもよい。単眼カメラの場合、第1のカメラで取得された3D特徴点と、今回の撮像で得られた2D(2次元)特徴点との対応付けを、例えば、RANSACによる射影変換パラメータ推定アルゴリズムを用いて行う。
【0136】
また、3Dオブジェクト操作モードでの動作開始時において、予め、複数の3Dオブジェクトデータが登録されている場合には、ユーザに対して、所望の3Dオブジェクトデータを指定させる仕様にしてもよい。あるいは、登録されている全ての3Dオブジェクトデータを順次使用して、自動的にカメラ位置姿勢の推定処理を行い、その結果が良好な場合に、ARデータを生成するようにしてもよい。
【0137】
さらに、既存のステレオカメラ等を本発明に係るAR処理装置として機能させることも可能である。即ち、上述した制御部210が実行したようなプログラムを既存のステレオカメラ等に適用し、そのステレオカメラ等のCPU等が当該プログラムを実行することで、当該ステレオカメラ等を本発明に係るAR処理装置として機能させることができる。
【0138】
このようなプログラムの配布方法は任意であり、例えば、CD−ROM(Compact Disk Read-Only Memory)、DVD(Digital Versatile Disk)、MO(Magneto Optical Disk)、メモリカードなどのコンピュータ読み取り可能な記録媒体に格納して配布してもよいし、インターネットなどの通信ネットワークを介して配布してもよい。
【0139】
この場合、上述した本発明に係る機能を、OS(オペレーティングシステム)とアプリケーションプログラムの分担、またはOSとアプリケーションプログラムとの協働により実現する場合などでは、アプリケーションプログラム部分のみを記録媒体等に格納してもよい。
【符号の説明】
【0140】
1…ステレオカメラ、11,22…画像取得部、12,23…生成部、13,24…抽出部、14,25…取得部、15…変換部、16…合成部、17…保存部、21…登録データ取得部、26…ARデータ生成部、27…AR画像表示部、100A…第1撮像部、100B…第2撮像部、110A,110B…光学装置、111A,111B…レンズ、120A,120B…イメージセンサ部、200…データ処理部、210…制御部、220…画像処理部、230…画像メモリ、240…画像出力部、250…記憶部、260…外部記憶部、300…I/F部、310…表示部、320…外部I/F部、330…操作部、331…シャッタボタン、332…操作キー、333…電源ボタン、400…ストロボ発光部

【特許請求の範囲】
【請求項1】
同一被写体について視差のある2以上の画像の組を取得する画像取得手段と、
該画像取得手段により取得された画像の組に基づいて、当該被写体の3Dモデルを生成する生成手段と、
該生成手段により生成された最初の3Dモデルを被合成3Dモデルとして選択し、該被合成3Dモデルから複数の第1特徴点を抽出すると共に、前記生成手段により生成された2回目以降の一の3Dモデルを合成3Dモデルとして選択し、該合成3Dモデルから複数の第2特徴点を抽出する抽出手段と、
該抽出手段により抽出された前記被合成3Dモデルの複数の第1特徴点と、前記合成3Dモデルの複数の第2特徴点と、に基づいて、当該合成3Dモデルの座標を前記被合成3Dモデルの座標系の座標に変換する座標変換パラメータを取得する取得手段と、
該取得手段により取得された前記座標変換パラメータを用いて、当該合成3Dモデルの座標を前記被合成3Dモデルの座標系の座標に変換する変換手段と、
変換された全ての前記合成3Dモデルを前記被合成3Dモデルに合成すると共に、特徴点の統合を行う合成手段と、
該合成手段の前記合成により生成された被写体の3Dモデルと、前記統合された特徴点に関する特徴点情報を所定のメモリに保存する保存手段と、を備える、
ことを特徴とするAR処理装置。
【請求項2】
前記取得手段は、前記抽出された複数の第1特徴点の中から3つの第1特徴点を選択し、前記抽出された複数の第2特徴点の中から、当該選択された3つの第1特徴点を頂点とする三角形に対応する三角形の3つの頂点を構成する3つの第2特徴点を選択し、当該選択された3つの第2特徴点の座標を当該選択された3つの第1特徴点の座標に合わせる座標変換パラメータを取得する、
ことを特徴とする請求項1に記載のAR処理装置。
【請求項3】
前記取得手段は、前記抽出された複数の第1特徴点の中から3つの第1特徴点をランダムに選択して座標変換パラメータを取得する処理を複数回実行し、当該複数回の処理により得られた複数の座標変換パラメータの中から一の座標変換パラメータを選択する、
ことを特徴とする請求項2に記載のAR処理装置。
【請求項4】
前記取得手段は、前記複数の座標変換パラメータの中から、前記変換手段による座標変換後の前記複数の第2特徴点の座標が、前記複数の第1特徴点の座標と最も合致する一の座標変換パラメータを選択する、
ことを特徴とする請求項3に記載のAR処理装置。
【請求項5】
前記合成手段は、前記複数の第1特徴点と前記複数の第2特徴点とを、対応する特徴点同士が同じグループに属するように複数のグループにグループ化し、当該複数のグループのそれぞれについて重心を求め、求められた複数の重心を新たな複数の特徴点として、新たな3Dモデルを生成する、
ことを特徴とする請求項1乃至4の何れか1項に記載のAR処理装置。
【請求項6】
予め登録されている、被写体の第1の3Dモデルと、該第1の3Dモデルの生成時に取得された複数の特徴点に関する情報と、からなる3Dオブジェクトデータを取得する登録データ取得手段と、
同一被写体について視差のある2以上の画像の組を取得する画像取得手段と、
該画像取得手段により取得された画像の組に基づいて、当該被写体の第2の3Dモデルを生成する生成手段と、
該生成手段により生成された前記第2の3Dモデルから複数の特徴点を抽出する抽出手段と、
該抽出手段により抽出された前記第2の3Dモデルの複数の特徴点と、前記登録データ取得手段により取得された前記3Dオブジェクトデータに係る複数の特徴点と、に基づいて、前記第1の3Dモデルの座標を前記第2の3Dモデルの座標系の座標に変換する座標変換パラメータを取得する取得手段と、
該取得手段により取得された前記座標変換パラメータと、前記第2の3Dモデルと、に基づいて、ARデータを生成するARデータ生成手段と、
該ARデータ生成手段により生成された前記ARデータに基づく画像を表示するAR画像表示手段と、を備える、
ことを特徴とするAR処理装置。
【請求項7】
同一被写体について視差のある2以上の画像の組を取得する画像取得ステップと、
該画像取得ステップで取得された画像の組に基づいて、当該被写体の3Dモデルを生成する生成ステップと、
該生成ステップで生成された最初の3Dモデルを被合成3Dモデルとして選択し、該被合成3Dモデルから複数の第1特徴点を抽出すると共に、前記生成ステップで生成された2回目以降の一の3Dモデルを合成3Dモデルとして選択し、該合成3Dモデルから複数の第2特徴点を抽出する抽出ステップと、
該抽出ステップで抽出された前記被合成3Dモデルの複数の第1特徴点と、前記合成3Dモデルの複数の第2特徴点と、に基づいて、当該合成3Dモデルの座標を前記被合成3Dモデルの座標系の座標に変換する座標変換パラメータを取得する取得ステップと、
該取得ステップで取得された前記座標変換パラメータを用いて、当該合成3Dモデルの座標を前記被合成3Dモデルの座標系の座標に変換する変換ステップと、
変換された全ての前記合成3Dモデルを前記被合成3Dモデルに合成すると共に、特徴点の統合を行う合成ステップと、
該合成ステップの前記合成により生成された被写体の3Dモデルと、前記統合された特徴点に関する特徴点情報を所定のメモリに保存する保存ステップと、を有する、
ことを特徴とするAR処理方法。
【請求項8】
予め登録されている、被写体の第1の3Dモデルと、該第1の3Dモデルの生成時に取得された複数の特徴点に関する情報と、からなる3Dオブジェクトデータを取得する登録データ取得ステップと、
同一被写体について視差のある2以上の画像の組を取得する画像取得ステップと、
該画像取得ステップで取得された画像の組に基づいて、当該被写体の第2の3Dモデルを生成する生成ステップと、
該生成ステップで生成された前記第2の3Dモデルから複数の特徴点を抽出する抽出ステップと、
該抽出ステップで抽出された前記第2の3Dモデルの複数の特徴点と、前記登録データ取得ステップで取得された前記3Dオブジェクトデータに係る複数の特徴点と、に基づいて、前記第1の3Dモデルの座標を前記第2の3Dモデルの座標系の座標に変換する座標変換パラメータを取得する取得ステップと、
該取得ステップで取得された前記座標変換パラメータと、前記第2の3Dモデルと、に基づいて、ARデータを生成するARデータ生成ステップと、
該ARデータ生成ステップで生成された前記ARデータに基づく画像を表示するAR画像表示ステップと、を有する、
ことを特徴とするAR処理方法。
【請求項9】
AR処理装置を制御するコンピュータに、
同一被写体について視差のある2以上の画像の組を取得する画像取得機能と、
該画像取得機能で取得された画像の組に基づいて、当該被写体の3Dモデルを生成する生成機能と、
該生成機能で生成された最初の3Dモデルを被合成3Dモデルとして選択し、該被合成3Dモデルから複数の第1特徴点を抽出すると共に、前記生成機能で生成された2回目以降の一の3Dモデルを合成3Dモデルとして選択し、該合成3Dモデルから複数の第2特徴点を抽出する抽出機能と、
該抽出機能で抽出された前記被合成3Dモデルの複数の第1特徴点と、前記合成3Dモデルの複数の第2特徴点と、に基づいて、当該合成3Dモデルの座標を前記被合成3Dモデルの座標系の座標に変換する座標変換パラメータを取得する取得機能と、
該取得機能で取得された前記座標変換パラメータを用いて、当該合成3Dモデルの座標を前記被合成3Dモデルの座標系の座標に変換する変換機能と、
変換された全ての前記合成3Dモデルを前記被合成3Dモデルに合成すると共に、特徴点の統合を行う合成機能と、
該合成機能の前記合成により生成された被写体の3Dモデルと、前記統合された特徴点に関する特徴点情報を所定のメモリに保存する保存機能と、を実現させる、
ことを特徴とするプログラム。
【請求項10】
AR処理装置を制御するコンピュータに、
予め登録されている、被写体の第1の3Dモデルと、該第1の3Dモデルの生成時に取得された複数の特徴点に関する情報と、からなる3Dオブジェクトデータを取得する登録データ取得機能と、
同一被写体について視差のある2以上の画像の組を取得する画像取得機能と、
該画像取得機能で取得された画像の組に基づいて、当該被写体の第2の3Dモデルを生成する生成機能と、
該生成機能で生成された前記第2の3Dモデルから複数の特徴点を抽出する抽出機能と、
該抽出機能で抽出された前記第2の3Dモデルの複数の特徴点と、前記登録データ取得機能で取得された前記3Dオブジェクトデータに係る複数の特徴点と、に基づいて、前記第1の3Dモデルの座標を前記第2の3Dモデルの座標系の座標に変換する座標変換パラメータを取得する取得機能と、
該取得機能で取得された前記座標変換パラメータと、前記第2の3Dモデルと、に基づいて、ARデータを生成するARデータ生成機能と、
該ARデータ生成機能で生成された前記ARデータに基づく画像を表示するAR画像表示機能と、を実現させる、
ことを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2012−248206(P2012−248206A)
【公開日】平成24年12月13日(2012.12.13)
【国際特許分類】
【出願番号】特願2012−165801(P2012−165801)
【出願日】平成24年7月26日(2012.7.26)
【分割の表示】特願2010−212633(P2010−212633)の分割
【原出願日】平成22年9月22日(2010.9.22)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】