(57)【要約】【課題】効率的で精度の高いプレーンスイーピング処理を実現する構成を実現する。【解決手段】画像から抽出した複数の特徴点各々の３次元位置情報を利用して、複数の特徴点の含まれるプレーン（平面）を検出し、検出したプレーンを利用したプレースイーピング処理を実行して、画像に含まれる画素の３次元位置を算出する。本構成により、オブジェクトの存在するプレーンを利用したプレーンスイーピングを行うことが可能となり、オブジェクトの存在しない可能性の高い領域についてのプレーンスイーピング処理の省略により処理の効率化、高速化が実現される。さらに、実平面を想定した射影変換によるウィンドウマッチングの実行がなされるので、より正確なウィンドウマッチングが実現され、３次元位置データの精度が向上する。【選択図】図１３
2009237847.tif 000002
【特許請求の範囲】
【請求項１】
画像に含まれる画素の３次元位置を算出する情報処理装置であり、
画像から抽出した複数の特徴点各々の３次元位置を取得する特徴点位置算出部と、
前記特徴点位置算出部の算出した特徴点位置情報を利用して、複数の特徴点の含まれるプレーン（平面）を検出するプレーン検出部と、
前記プレーン検出部において検出したプレーンを利用したプレースイーピング処理を実行するプレーンスイーピング処理実行部を有することを特徴とする情報処理装置。
【請求項２】
前記プレーン検出部は、
前記特徴点位置算出部の算出した特徴点位置情報を利用したハフ変換により、複数の特徴点の含まれるプレーンを検出する処理を実行することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記プレーン検出部は、
前記特徴点位置算出部の算出した特徴点位置情報を利用したランサック（ＲＡＮＳＡＣ）アルゴリズムの実行により、複数の特徴点の含まれるプレーンを検出する処理を実行することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記プレーン検出部は、
前記特徴点が複数含まれる平面に属さない遊離した特徴点については、該特徴点を含む独自の平面を、前記プレーンスイーピング処理実行部において利用するプレーンとして設定することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記プレーン検出部は、
前記プレーンスイーピング処理実行部において画素位置の算出対象とする画像を撮影した参照画像の平面と平行な平面とならないプレーンを、前記プレーンスイーピング処理実行部において利用するプレーンとして設定し、
前記プレーンスイーピング処理実行部は、
前記プレーン検出部において設定したプレーンに応じた射影変換を実行してウィンドウマッチングによる画素の３次元位置算出を実行することを特徴とする請求項１に記載の情報処理装置。
【請求項６】
情報処理装置において、画像に含まれる画素の３次元位置を算出する情報処理方法であり、
特徴点位置算出部が、画像から抽出した複数の特徴点各々の３次元位置を取得する特徴点位置算出ステップと、
プレーン検出部が、前記特徴点位置算出部の算出した特徴点位置情報を利用して、複数の特徴点の含まれるプレーン（平面）を検出するプレーン検出ステップと、
プレーンスイーピング処理実行が、前記プレーン検出部において検出したプレーンを利用したプレースイーピング処理を実行するプレーンスイーピング処理実行ステップと、
を有することを特徴とする情報処理方法。
【請求項７】
前記プレーン検出ステップは、
前記特徴点位置算出部の算出した特徴点位置情報を利用したハフ変換により、複数の特徴点の含まれるプレーンを検出する処理を実行することを特徴とする請求項６に記載の情報処理方法。
【請求項８】
前記プレーン検出ステップは、
前記特徴点位置算出部の算出した特徴点位置情報を利用したランサック（ＲＡＮＳＡＣ）アルゴリズムの実行により、複数の特徴点の含まれるプレーンを検出する処理を実行することを特徴とする請求項６に記載の情報処理方法。
【請求項９】
前記プレーン検出ステップは、
前記特徴点が複数含まれる平面に属さない遊離した特徴点については、該特徴点を含む独自の平面を、前記プレーンスイーピング処理実行部において利用するプレーンとして設定することを特徴とする請求項６に記載の情報処理方法。
【請求項１０】
前記プレーン検出ステップは、
前記プレーンスイーピング処理実行部において画素位置の算出対象とする画像を撮影した参照画像の平面と平行な平面とならないプレーンを、前記プレーンスイーピング処理実行部において利用するプレーンとして設定し、
前記プレーンスイーピング処理実行ステップは、
前記プレーン検出部において設定したプレーンに応じた射影変換を実行してウィンドウマッチングによる画素の３次元位置算出を実行することを特徴とする請求項６に記載の情報処理方法。
【請求項１１】
情報処理装置において、画像に含まれる画素の３次元位置を算出させるコンピュータ・プログラムであり、
特徴点位置算出部に、画像から抽出した複数の特徴点各々の３次元位置を取得させる特徴点位置算出ステップと、
プレーン検出部に、前記特徴点位置算出部の算出した特徴点位置情報を利用して、複数の特徴点の含まれるプレーン（平面）を検出させるプレーン検出ステップと、
プレーンスイーピング処理実行に、前記プレーン検出部において検出したプレーンを利用したプレースイーピング処理を実行させるプレーンスイーピング処理実行ステップと、
を有することを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、および情報処理方法、並びにコンピュータ・プログラムに関する。さらに詳細には、画像に含まれる画素の３次元位置の算出処理を行う情報処理装置、および情報処理方法、並びにコンピュータ・プログラムに関する。
【背景技術】
【０００２】
カメラの撮影画像を解析して撮影画像に含まれるオブジェクトの３次元位置を求める処理が様々な分野で利用されている。例えばカメラを備えたロボットなどのエージェント(移動体)が、カメラの撮影画像を解析して移動環境を観測し、観測状況に応じてエージェント周囲の環境を把握しながら移動を行う処理や、撮影画像に基づいて周囲環境の地図（環境地図）を作成する環境マップ構築処理に利用される。非特許文献１には、特徴点位置の追跡を全フレームで行い、全フレームのデータが得られた後、バッチ処理により特徴点の位置とカメラ位置を算出する方法を開示している。
【０００３】
３次元マップ（３Ｄ  ｍａｐ）の生成処理シーケンスの一例について図１を参照して説明する。まず、ステップ１１においてカメラによって画像を撮影する。例えばカメラを保持したユーザやロボットなどが移動しながら周りの画像を連続的に撮影する。
【０００４】
ステップＳ１２において取得画像の解析によって、画像に含まれる特徴点の位置情報などが含まれる疎な３次元情報を構築する。この処理においては、ＳＬＡＭ（ｓｉｍｕｌｔａｎｅｏｕｓ  ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  ｍａｐｐｉｎｇ）やＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）などの処理が適用される。ＳＬＡＭは、カメラから入力する画像内の特徴点の位置と、カメラの位置姿勢を併せて検出する処理である。ＳＦＭは、例えば複数の異なる位置から撮影した画像を利用して画像内に含まれる特徴点（Ｌａｎｄｍａｒｋ）の対応を解析する処理などである。
【０００５】
さらに、ステップＳ１３では、ステップＳ１２において求めたカメラの軌跡情報や画像内の特徴点情報などを利用して、詳細な３次元情報である３次元マップを生成する。
【０００６】
ステップＳ１３における３次元マップ生成処理に際しては、ステップＳ１２において求めた特徴点の位置やカメラ位置姿勢情報を利用して、画像フレームに含まれる各画素（ピクセル）についての３次元位置を決定する処理が行われる。この処理は、例えば図２に示すフローに従って実行される。まず、ステップＳ２１において、複数の近接する画像フレームを単位とした所定領域の３次元画像データ（Ｄｅｐｔｈ  ｍａｐ）の生成処理を実行する。次に、ステップＳ２２において、ステップＳ２１で生成した所定領域単位の３次元画像データをマージする処理が行われる。これらの処理により、カメラによって撮影された画像領域全体の３次元画像データが生成される。
【０００７】
この図２に示すステップ中、ステップＳ２１の処理、すなわち複数の近接する画像フレームを単位とした所定領域の３次元画像データ（Ｄｅｐｔｈ  ｍａｐ）を生成する処理はプレーンスイーピング（Ｐｌａｎｅ  ｓｗｅｅｐｉｎｇ）と呼ばれる。このプレーンスイーピング（Ｐｌａｎｅ  ｓｗｅｅｐｉｎｇ）は、例えば３次元位置情報が取得されている特徴点の位置情報を利用して初期値（画像フレームからの奥行・物体面の姿勢等）を求め、その初期値を元に各画素の３次元位置を決定する処理である。
【０００８】
また、ステップＳ２２の処理、すなわち、ステップＳ２１で生成した所定領域単位の３次元画像データをマージする処理は、複数の３Ｄマップから１つの３Ｄマップを生成する処理であり、メディアンヒュージョン（Ｍｅｄｉａｎ  ｆｕｓｉｏｎ）と呼ばれる。
【０００９】
３次元画像データ（Ｄｅｐｔｈ  ｍａｐ）の生成処理の1方法である、プレーンスイーピング処理の一例について図３を参照して説明する。例えば図３に示すように重複する領域を撮影した複数の近接する画像フレーム（Ｆ１〜Ｆ５）を選択し、その対応する特徴点を選択する。この特徴点は１つのオブジェクトであり、その３次元空間での位置は１つに定まるはずである。図に示す例では、壁面のポスターが被写体であり、そのポスター内の１つの点が特徴点として設定されている。なお、ｘｙｚの各方向は、
ｙ：高さ方向、
ｘ：参照画像の画像（本例では画像フレームＦ３）平面に平行な水平方向、
ｚ：参照画像の画像（本例では画像フレームＦ３）平面に垂直な奥行方向、
である。
【００１０】
各画像フレーム（Ｆ１〜Ｆ５）を撮影したカメラの位置姿勢情報は、図１に示すフローのステップＳ１２の処理において取得済みであり、また、各画像フレームに対応する解析データとして、特徴点１１の３次元位置も算出済みである。なお各画像フレームに対応して算出されたカメラの位置姿勢情報や、特徴点位置情報には多少の誤差が含まれるが、１つの対応する特徴点１１の位置を収束させる処理、すなわち、バンドル調整処理（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）によってカメラの位置姿勢情報や、特徴点位置情報を修正して１つの特徴点の３次元位置を１つに収束させる処理が実行され、この処理によって特徴点１１の最終的な３次元位置が決定される。
【００１１】
例えば、図３に示すように、５つの異なる位置からの撮影画像Ｆ１〜Ｆ５から検出した対応特徴点１１を利用する。画像フレームに含まれる特徴点１１の３次元位置は図３に示すように、各画像の撮影ポイントから特徴点の３次元位置１１を結ぶ線（Ｂｕｎｄｌｅ）が１つの特徴点１１の位置において交わるはずである。各画像フレームに対応して算出されたカメラの位置姿勢情報や、特徴点位置情報を修正するバンドル調整処理（Ｂｕｎｄｌｅ  ａｄｊｕｓｔｍｅｎｔ）によって特徴点１１の位置を収束させて正確な特徴点位置情報を算出する。
【００１２】
特徴点周囲の画素データについても、例えば各画像フレームＦ１〜Ｆ５のウィンドウマッチングによって、各画像フレームの対応画像領域を選択して、それぞれの画素が図３に示すＺ（奥行き方向）のいずれの面（プレーン）に属するかを決定していく。この処理をプレーンスイーピング（Ｐｌａｎｅ  ｓｗｅｅｐｉｎｇ）と呼び、この処理によって、画像フレームに含まれる全ての画素の３次元位置を算出する。
【００１３】
一般的なプレーンスイーピングの処理シーケンスについて図４を参照して説明する。まず、ステップＳ５１において、参照画像フレームの面に平行な面として仮想的に設定した複数のプレーン（図３に示す平面Ｚａ，Ｚｂ，Ｚｃ・・）から１つのプレーンを選択する。次にステップＳ５２において、参照画像フレームに設定したウィンドウの画像を各近接画像フレームの対応位置にワープさせる。これは、選択したプレーンにウィンドウ画像が位置すると仮定して、参照画像フレームに設定したウィンドウ画像を、近接画像フレームの撮影ポイントから撮影した場合に想定される画像を射影変換によって取得する処理である。なお、複数の近接画像フレームに対応ウィンドウが設定されている場合は、それぞれに対して同様の処理を行う。
【００１４】
次にステップＳ５３において、参照画像のウィンドウ画像の射影変換データと、近接画像フレームの対応ウィンドウの画像データとのマッチング（比較）を実行して、ステップＳ５４においてマッチングスコアを算出し記憶部に記録する。類似度が高いほど高いスコアとなる設定としたスコアとする。なお、複数の近接画像フレームに対応ウィンドウが設定されている場合は、それぞれに対して同様の処理を行う。
【００１５】
次にステップＳ５５において未処理プレーンの有無を確認し、未処理プレーンがある場合は、ステップＳ５１に戻り、新たなプレーンを選択して同様の処理を繰り返す。ステップＳ５５において未処理プレーンが無くなったことが確認されると、ステップＳ５６に進み、各ウィンドウについてスコアの高いデータを選択してそのハイスコアが算出されたプレーンをそのウィンドウの設定されるプレーンとする。なお、複数の近接画像フレームに対応ウィンドウが設定され、１つのウィンドウに複数のスコアが算出されている場合は、スコア平均値を算出して比較する。
【００１６】
このように、従来のプレーンスイーピング処理では、参照画像フレームの面に平行な面、すなわち、例えば図３に示すプレーンＺａ，Ｚｂ，Ｚｃ・・・の奥行範囲・プレーン毎の間隔をユーザが設定して対応プレーンを決定するという煩雑な手数が必要となっていただけでなく、プレーンＺａ，Ｚｂ，Ｚｃ・・・の姿勢が物体面の姿勢を考慮していないために、三次元画像データ（Ｄｅｐｔｈ  ｍａｐ）精度が悪くなるという問題があった。
【非特許文献１】"Ｓｈａｐｅ  ａｎｄ  ｍｏｔｉｏｎ  ｆｒｏｍ  ｉｍａｇｅ  ｓｔｒｅａｍｓ  ｕｎｄｅｒ  ｏｒｔｈｏｇｒａｐｈｙ：  ａ  ｆａｃｔｏｒｉｚａｔｉｏｎ  ｍｅｔｈｏｄ"，Ｃ．Ｔｏｍａｓｉ  ａｎｄ  Ｔ．Ｋａｎａｄｅ，Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｊｏｕｒｎａｌ  ｏｆ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ，  Ｖｏｌｕｍｅ  ９，  Ｎｕｍｂｅｒ  ２，  ｐｐ．１３７−１５４，（１９９２）．
【発明の開示】
【発明が解決しようとする課題】
【００１７】
本発明は、特徴点の位置情報を利用して、実際の３次元空間に設定される平面であるプレーン（Ｐｌａｎｅ）を推定し、この推定したプレーンを利用してプレーンスイーピング（Ｐｌａｎｅ  ｓｗｅｅｐｉｎｇ）を実行することで、効率的かつ正確なプレーンスイーピングを実現する情報処理装置、および情報処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
【００１８】
具体的には、本発明はＳＬＡＭ（ｓｉｍｕｌｔａｎｅｏｕｓ  ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  ｍａｐｐｉｎｇ）やＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）などの処理によって算出されている画像内の特徴点の位置情報を利用して、実際の３次元空間に設定される平面であるプレーン（Ｐｌａｎｅ）を推定し、この推定したプレーンを利用してプレーンスイーピング（Ｐｌａｎｅ  ｓｗｅｅｐｉｎｇ）を実行することで、効率的かつ正確なプレーンスイーピングを実現する情報処理装置、および情報処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１９】
本発明の第１の側面は、
画像に含まれる画素の３次元位置を算出する情報処理装置であり、
画像から抽出した複数の特徴点各々の３次元位置を取得する特徴点位置算出部と、
前記特徴点位置算出部の算出した特徴点位置情報を利用して、複数の特徴点の含まれるプレーン（平面）を検出するプレーン検出部と、
前記プレーン検出部において検出したプレーンを利用したプレースイーピング処理を実行するプレーンスイーピング処理実行部を有することを特徴とする情報処理装置にある。
【００２０】
さらに、本発明の情報処理装置の一実施態様において、前記プレーン検出部は、前記特徴点位置算出部の算出した特徴点位置情報を利用したハフ変換により、複数の特徴点の含まれるプレーンを検出する処理を実行することを特徴とする。
【００２１】
さらに、本発明の情報処理装置の一実施態様において、前記プレーン検出部は、前記特徴点位置算出部の算出した特徴点位置情報を利用したランサック（ＲＡＮＳＡＣ）アルゴリズムの実行により、複数の特徴点の含まれるプレーンを検出する処理を実行することを特徴とする。
【００２２】
さらに、本発明の情報処理装置の一実施態様において、前記プレーン検出部は、前記特徴点が複数含まれる平面に属さない遊離した特徴点については、該特徴点を含む独自の平面を、前記プレーンスイーピング処理実行部において利用するプレーンとして設定することを特徴とする。
【００２３】
さらに、本発明の情報処理装置の一実施態様において、前記プレーン検出部は、前記プレーンスイーピング処理実行部において画素位置の算出対象とする画像を撮影した参照画像の平面と平行な平面とならないプレーンを、前記プレーンスイーピング処理実行部において利用するプレーンとして設定し、前記プレーンスイーピング処理実行部は、前記プレーン検出部において設定したプレーンに応じた射影変換を実行してウィンドウマッチングによる画素の３次元位置算出を実行することを特徴とする。
【００２４】
さらに、本発明の第２の側面は、
情報処理装置において、画像に含まれる画素の３次元位置を算出する情報処理方法であり、
特徴点位置算出部が、画像から抽出した複数の特徴点各々の３次元位置を取得する特徴点位置算出ステップと、
プレーン検出部が、前記特徴点位置算出部の算出した特徴点位置情報を利用して、複数の特徴点の含まれるプレーン（平面）を検出するプレーン検出ステップと、
プレーンスイーピング処理実行が、前記プレーン検出部において検出したプレーンを利用したプレースイーピング処理を実行するプレーンスイーピング処理実行ステップと、
を有することを特徴とする情報処理方法にある。
【００２５】
さらに、本発明の情報処理方法の一実施態様において、前記プレーン検出ステップは、前記特徴点位置算出部の算出した特徴点位置情報を利用したハフ変換により、複数の特徴点の含まれるプレーンを検出する処理を実行することを特徴とする。
【００２６】
さらに、本発明の情報処理方法の一実施態様において、前記プレーン検出ステップは、前記特徴点位置算出部の算出した特徴点位置情報を利用したランサック（ＲＡＮＳＡＣ）アルゴリズムの実行により、複数の特徴点の含まれるプレーンを検出する処理を実行することを特徴とする。
【００２７】
さらに、本発明の情報処理方法の一実施態様において、前記プレーン検出ステップは、前記特徴点が複数含まれる平面に属さない遊離した特徴点については、該特徴点を含む独自の平面を、前記プレーンスイーピング処理実行部において利用するプレーンとして設定することを特徴とする。
【００２８】
さらに、本発明の情報処理方法の一実施態様において、前記プレーン検出ステップは、前記プレーンスイーピング処理実行部において画素位置の算出対象とする画像を撮影した参照画像の平面と平行な平面とならないプレーンを、前記プレーンスイーピング処理実行部において利用するプレーンとして設定し、前記プレーンスイーピング処理実行ステップは、前記プレーン検出部において設定したプレーンに応じた射影変換を実行してウィンドウマッチングによる画素の３次元位置算出を実行することを特徴とする。
【００２９】
さらに、本発明の第３の側面は、
情報処理装置において、画像に含まれる画素の３次元位置を算出させるコンピュータ・プログラムであり、
特徴点位置算出部に、画像から抽出した複数の特徴点各々の３次元位置を取得させる特徴点位置算出ステップと、
プレーン検出部に、前記特徴点位置算出部の算出した特徴点位置情報を利用して、複数の特徴点の含まれるプレーン（平面）を検出させるプレーン検出ステップと、
プレーンスイーピング処理実行に、前記プレーン検出部において検出したプレーンを利用したプレースイーピング処理を実行させるプレーンスイーピング処理実行ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【００３０】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【００３１】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【００３２】
本発明の一実施例の構成によれば、画像から抽出した複数の特徴点各々の３次元位置情報を利用して、複数の特徴点の含まれるプレーン（平面）を検出し、検出したプレーンを利用したプレースイーピング処理を実行して、画像に含まれる画素の３次元位置を算出する構成とした。本構成により、ユーザによるプレーン位置姿勢のマニュアル設定の手数がなくなるだけでなく、オブジェクトが存在することがほぼ確実なプレーンを検出し、検出プレーンを利用したプレーンスイーピングを行うことが可能となり、オブジェクトの存在しない可能性の高い領域についてのプレーンスイーピング処理の省略が可能となり処理の効率化、高速化が実現される。さらに、実平面を想定した射影変換によるウィンドウマッチングの実行がなされるので、より正確なウィンドウマッチングが実現され、３次元位置データの精度が向上する。
【発明を実施するための最良の形態】
【００３３】
以下、図面を参照しながら本発明の実施形態に係る情報処理装置、および情報処理方法、並びにコンピュータ・プログラムの詳細について説明する。
【００３４】
本発明の概要について、図５を参照して説明する。本発明の情報処理装置１２０は、例えば移動するユーザ１０１の保持するカメラ１０２の撮影画像、例えば動画像を構成する画像を入力し、その入力画像の解析を実行して撮影画像に含まれる様々なオブジェクトからなる３次元画像情報１０３を生成する。
【００３５】
情報処理装置１２０は、先に図１を参照して説明した処理と同様、取得画像の解析によって、画像に含まれる特徴点の位置情報などが含まれる疎な３次元マップ１３１を、ＳＬＡＭ（ｓｉｍｕｌｔａｎｅｏｕｓ  ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  ｍａｐｐｉｎｇ）やＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）などの処理を適用して生成し、さらに、カメラの軌跡情報や画像内の特徴点情報などを利用して詳細な３次元情報である密な３次元マップ１３２を生成する。
【００３６】
先に説明したように、ＳＬＡＭは、カメラから入力する画像内の特徴点の位置と、カメラの位置姿勢を併せて検出する処理である。ＳＦＭは、例えば複数の異なる位置から撮影した画像を利用して画像内に含まれる特徴点（Ｌａｎｄｍａｒｋ）の対応を解析する処理などである。
【００３７】
ＳＬＡＭ（ｓｉｍｕｌｔａｎｅｏｕｓ  ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  ｍａｐｐｉｎｇ）やＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）などの処理を適用して各画像フレームに対応する特徴点位置情報とカメラ位置姿勢情報が取得される。その後、これらの情報を適用して密な３次元マップ１３２を生成する。
【００３８】
密な３次元マップは、特徴点の３次元位置のみならず、画像に含まれる全ての画素の３次元位置の算出が必要であり、この処理のために、先に図２を参照して説明した処理、すなわち、
複数の近接する画像フレームを単位とした所定領域の３次元画像データ（Ｄｅｐｔｈ  ｍａｐ）を生成するプレーンスイーピング（Ｐｌａｎｅ  ｓｗｅｅｐｉｎｇ）処理、
所定領域単位の３次元画像データをマージするメディアンヒュージョン（Ｍｅｄｉａｎ  ｆｕｓｉｏｎ）処理、
これらの処理を実行して、３次元画像データが完成する。
本発明の情報処理装置１２０は、このプレーンスイーピング処理の改良に関する。
【００３９】
まず、本発明に係る情報処理装置１２０は、特徴点の位置情報を利用して、実際の３次元空間に設定される平面であるプレーン（Ｐｌａｎｅ）を推定し、この推定したプレーンを利用してプレーンスイーピング（Ｐｌａｎｅ  ｓｗｅｅｐｉｎｇ）を実行する。
【００４０】
すなわち、ＳＬＡＭ（ｓｉｍｕｌｔａｎｅｏｕｓ  ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  ｍａｐｐｉｎｇ）やＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）などの処理によって算出されている画像内の特徴点の位置情報を利用して、実際の３次元空間に設定される平面であるプレーン（Ｐｌａｎｅ）を推定し、この推定したプレーンを利用してプレーンスイーピング（Ｐｌａｎｅ  ｓｗｅｅｐｉｎｇ）を実行する。本発明に従ったプレーンスイーピング処理と、従来のプレーンスイーピング処理との差異について図６〜図８を参照して説明する。
【００４１】
図６は、従来の一般的なプレーンスイーピング処理例を示す図である。図６は、ｙ方向を高さ方向として、ｘｚの水平面を上から見た図である。ｚ方向が参照画像フレーム撮影カメラ２０１からの距離（奥行き）になる。先に図３を参照して説明したと同様、参照画像フレーム撮影カメラ２０１の撮影画像に含まれる画素の３次元位置を算出する場合を想定する。この場合、参照画像フレーム撮影カメラ２０１と異なる位置から画像の撮影を行った近接画像撮影カメラ２０２ａ〜２０２ｄの撮影画像（近接画像フレーム）を用いる。
【００４２】
参照画像フレーム撮影カメラ２０１の撮影画像平面（ｘｙ平面）に水平な面（プレーン）：Ｚａ，Ｚｂ，Ｚｃ，Ｚｄ・・・Ｚｎを設定して、先に図４を参照して説明したフローチャートに従った処理を実行する。すなわち、プレーンを１つずつ選択して、参照画像フレーム撮影カメラ２０１の撮影画像内に設定した所定単位の画素領域であるウィンドウ画像が、選択プレーンの位置に存在すると仮定して、参照画像フレームのウィンドウ画像を射影変換して近接画像撮影カメラの撮影ポイントから撮影した画像を生成し、生成画像と、実際の近接画像撮影カメラ２０２ａ〜２０２ｄの撮影画像（近接画像フレーム）と比較する。すなわちウィンドウマッチングを実行して類似度を判定し、類似度の高いものほど高い値としたマッチングスコアを算出し、マッチングスコアの最大となるプレーンをそのウィンドウの奥行き（Ｚ）とする。
【００４３】
このように、従来のプレーンスイーピング処理では、参照画像フレームの面に平行な平面であるプレーン：Ｚａ，Ｚｂ，Ｚｃ・・・を仮想的に設定して、各設定プレーンを１つずつ選択して、選択プレーンにウィンドウ内の画像が位置すると仮定してウィンドウ画像を射影変換して実際の近接撮影画像と比較するという処理を実行していた。
【００４４】
しかし、撮影された対象となる空間に配置されたオブジェクトが、例えば図７に示すようなオブジェクトであるとする。図７に示すように、壁面オブジェクト２５１と、壁面オブジェクト２５１の前方に位置する平面でないオブジェクト２５２が撮影対象であった場合を想定する。
【００４５】
このような空間を撮影した場合、従来のプレーンスイーピング処理、すなわち、参照画像フレームの面に平行な平面であるプレーン：Ｚａ，Ｚｂ，Ｚｃ・・・を仮想的に設定して、各設定プレーンを１つずつ選択して、選択プレーンにウィンドウ内の画像が位置すると仮定してウィンドウ画像を射影変換して実際の近接撮影画像と比較するという処理を実行しても、オブジェクトの存在しない部分の処理を実行することになり意味のない処理を実行してしまうことになり、３次元画像生成プロセスを無為に遅延させてしまうことになる。
【００４６】
そこで、本発明は、図８に示すように、特徴点の位置情報を利用して、実際の３次元空間に設定される平面であるプレーン（Ｐｌａｎｅ）を設定し、この設定したプレーンを利用してプレーンスイーピング（Ｐｌａｎｅ  ｓｗｅｅｐｉｎｇ）を実行することで、効率的かつ正確なプレーンスイーピングを実現する。
【００４７】
図８に示す特徴点３０１は、プレーンスイーピングを実行する前に行われる処理、すなわち、先に図１を参照して説明した処理フローのステップＳ１２におけるＳＬＡＭ（ｓｉｍｕｌｔａｎｅｏｕｓ  ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  ｍａｐｐｉｎｇ）やＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）などの処理によって算出されている画像内の特徴点である。これらの特徴点３０１は、ＳＬＡＭ（ｓｉｍｕｌｔａｎｅｏｕｓ  ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  ｍａｐｐｉｎｇ）やＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）などの処理によってその３次元位置が算出済みである。
【００４８】
本発明は、これらの特徴点３０１の位置情報を利用して３次元空間の平面であるプレーン（Ｐｌａｎｅ）を設定して、設定したプレーンを利用してプレーンスイーピング（Ｐｌａｎｅ  ｓｗｅｅｐｉｎｇ）を実行する。本発明において設定するプレーンは、参照画像フレームの面に平行な平面であるとは限らない。
【００４９】
図８に示す例では、プレーンとしてＰ１，Ｐ２，Ｐ３，Ｐ４，Ｐ５が設定されている。これらのプレーンは、特徴点３０１の３次元位置情報を利用して算出する。具体的には、例えばハフ変換やランサック（ＲＡＮＳＡＣ）アルゴリズムを用いて設定すべきプレーン（平面）を求める。
【００５０】
特徴点の位置情報を利用したプレーン算出処理例について、以下の２つの処理例について順次、説明する。
（１）ハフ変換による処理例
（２）ランサック（ＲＡＮＳＡＣ）アルゴリズムを用いた処理例
【００５１】
（１）ハフ変換による処理例
まず、図９を参照して、既知の３次元位置情報を持つ特徴点の位置情報を利用して特徴点によって構成される平面（プレーン）を、ハフ変換によって算出する処理例について説明する。ハフ変換は、既知の位置情報を持つ複数の点に基づいて想定される面や線を求める手法として知られている。
【００５２】
例えば図９（１）に示すように、ｘｙ平面上に座標（ｘａ，ｙａ）が既知の点３５１が複数、存在するとする。これらの点３５１は、図に示す特徴店３０１に相当する。
【００５３】
最終的に求めようとする線は、これらの複数の点３５１を通る線３５２となる。線３５２は未知でありパラメータａ，ｂを用いた任意の直線：ｙ＝ａｘ＋ｂとして設定する。
【００５４】
次に、図９（２）に示すように、直線定義式：ｙ＝ａｘ＋ｂに用いたパラメータａ，ｂによってａｂ平面を設定する。ここに、既知の複数の点３５１（ｘａ，ｙａ），（ｘｂ，ｙｂ）・・・（ｘｎ，ｙｎ）を当てはめた直線３５３を描くと、これらの線はある１点において交わる線となる。この交点３６０が、直線定義式：ｙ＝ａｘ＋ｂに用いたパラメータａ，ｂの値となる。
【００５５】
この交点３６０の座標点である（ａ，ｂ）の値を適用した直線定義式：ｙ＝ａｘ＋ｂが図９（１）において求めようとする直線３５２となる。このように既知の点３５１を用いて、既知の点によって構成される線を算出する。なお、図９では、直線の算出処理例として説明したが、平面の算出も同様の手順で算出可能である。このようにして特徴点の３次元位置情報を利用して特徴点を含む平面を算出する。
【００５６】
（２）ランサック（ＲＡＮＳＡＣ）アルゴリズムを用いた処理例
次に、図１０に示すフローチャートを参照して、既知の３次元位置情報を持つ特徴点の位置情報を利用して特徴点によって構成される平面を決定するランサック（ＲＡＮＳＡＣ）アルゴリズムを用いた処理例について説明する。ランサック（ＲＡＮＳＡＣ）アルゴリズムは、３次元位置の取得されている点に基づいて、点のセットをランダムに抽出して、予め設定した誤差範囲を満足する直線や面を検出する方法として知られている。
【００５７】
図１０に示すフローチャートの各ステップの処理について説明する。まず、ステップＳ２００において処理の繰り返し回数のカウント値＝Ｘを初期値、Ｘ＝１に設定する。次にステップＳ２０１において、３次元位置の取得されている点からランダムにＭ個（例えばＭ＝２）の特徴点を取得する。Ｍはユーザがモデル式に応じて予め設定する。これらの点は、図８に示す特徴点３０１の中から選択される。
【００５８】
ステップＳ２０２において、ランダムにＭ個取得された特徴点から直線モデル式：ｙ＝ａｘ＋ｂを求める。次に、ステップＳ２０３において、Ｎ個の特徴点から、モデル式にフィットする点を選択して選択された点の数をカウントする。なお、予め設定した誤差範囲であればフィットすると判定する。
【００５９】
次に、ステップＳ２０５において最大繰り返し回数Ｘｍａｘ（例えばＸｍａｘ＝１００）に達するまで処理し、Ｘ＜Ｘｍａｘである場合は、ステップＳ２０６に進みカウンタを１増加し、ステップＳ２０１以下の処理を繰り返す。ただし、Ｘｍａｘはユーザが予め設定する。
【００６０】
ステップＳ２０５においてとＸ≧Ｘｍａｘ判定されると、ステップＳ２０７に進み、カウント値の高いモデル式によって定義される直線を順次出力する。このように位置が既知の点を用いて、既知の点によって構成される線を算出する。なお、図１０のフローでは、直線の算出処理例として説明したが、平面の算出も同様の手順で算出可能である。このようにして特徴点の３次元位置情報を利用して特徴点を含む平面を算出する。
【００６１】
このように、本発明の装置では、ハフ変換やランサック（ＲＡＮＳＡＣ）アルゴリズムを用いて特徴点３０１の３次元位置情報を利用して特徴点を含む平面（プレーン）を算出する。この処理によって、図８に示すプレーンＰ１，Ｐ２が求められる。
【００６２】
図８に示すプレーンＰ３，Ｐ４，Ｐ５は、ハフ変換やランサック（ＲＡＮＳＡＣ）アルゴリズムを用いて求めることが出来ない特徴点の遊離点であり、これらの遊離点については、その特徴点を含む限定領域のみに従来と同様の参照カメラによって撮影される画像平面に平行な平面をプレーンとして設定する。
【００６３】
このような処理によって、図８に示すプレーンＰ１〜Ｐ５が設定され、設定したプレーンＰ１〜Ｐ５を利用してプレーンスイーピング（Ｐｌａｎｅ  ｓｗｅｅｐｉｎｇ）を実行する。
【００６４】
本発明の一実施例に従ったプレーンスイーピング処理シーケンスについて、図１１に示すフローチャートを参照して説明する。
【００６５】
まず、ステップＳ３０１において、プレーンスイーピングに適用するプレーンを決定する。この処理は、上述したように特徴点の３次元位置情報を利用して算出する処理である。
【００６６】
前述したように、プレーンスイーピングを実行する前にＳＬＡＭ（ｓｉｍｕｌｔａｎｅｏｕｓ  ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  ｍａｐｐｉｎｇ）やＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）などの処理によって特徴点の３次元位置情報は取得済みであり、これらの位置情報を利用して、先に図９、図１０を参照して説明したハフ変換やランサック（ＲＡＮＳＡＣ）アルゴリズムを用いて複数の特徴点が含まれる平面を算出する。なお、これらの処理によって算出された平面に含まれない遊離した特徴点については、その遊離特徴点を含む予め設定した面積の平面を従来と同様の参照カメラによって撮影される画像平面に平行に設定してプレーンとする。このようにして、例えば図８に示す例における複数のプレーンＰ１〜Ｐ５が設定される。
【００６７】
次に、ステップＳ３０２において、ステップＳ３０１で設定した複数のプレーン（例えば図８に示すプレーンＰ１，Ｐ２，Ｐ３・・）から１つのプレーンを選択する。次にステップＳ３０３において、参照画像フレームに設定したウィンドウの画像を各近接画像フレームの対応位置にワープさせる。これは、選択したプレーンにウィンドウ画像が位置すると仮定して、参照画像フレームに設定したウィンドウ画像を、近接画像フレームの撮影ポイントから撮影した場合に想定される画像を射影変換によって取得する処理である。なお、複数の近接画像フレームに対応ウィンドウが設定されている場合は、それぞれに対して同様の処理を行う。
【００６８】
なお、例えば図８に示すプレーンＰ１を利用した処理を実行する場合、実際のオブジェクト面に沿った平面を利用することになり、この平面を想定した射影変換を実行する。
【００６９】
次にステップＳ３０４において、参照画像のウィンドウ画像の射影変換データと、近接画像フレームの対応ウィンドウの画像データとのマッチング（比較）を実行して、ステップＳ３０５においてマッチングスコアを算出し記憶部に記録する。類似度が高いほど高いスコアとなる設定としたスコアとする。なお、複数の近接画像フレームに対応ウィンドウが設定されている場合は、それぞれに対して同様の処理を行う。
【００７０】
本発明に従った処理では、実際のオブジェクト面に沿った平面を想定した射影変換によるウィンドウマッチングを実行するので、より正確なウィンドウマッチングが実現される。
【００７１】
次にステップＳ３０６において未処理プレーンの有無を確認し、未処理プレーンがある場合は、ステップＳ３０２に戻り、新たなプレーンを選択して同様の処理を繰り返す。ステップＳ３０６において未処理プレーンが無くなったことが確認されると、ステップＳ３０７に進み、各ウィンドウについてスコアの高いデータを選択してそのハイスコアが算出されたプレーンをそのウィンドウの設定されるプレーンとする。なお、複数の近接画像フレームに対応ウィンドウが設定され、１つのウィンドウに複数のスコアが算出されている場合は、スコア平均値を算出して比較する。
【００７２】
このように、本発明に従った処理では、３次元位置を算出しようとするオブジェクトが存在することがほぼ確実なプレーンを予め算出し、これらの算出プレーンを利用してプレーンスイーピングを実行する構成としたので、オブジェクトの存在しない可能性の高い領域についてのプレーンスイーピング処理を省略することが可能となり処理の効率化、高速化が実現される。
【００７３】
また、本発明において設定されるプレーンは、参照画像フレームの面に平行な面、すなわち、例えば図３に示す平面Ｚａ，Ｚｂ，Ｚｃ・・・に限らず、実際のオブジェクト面に沿った平面を利用する構成であり、前述したようにこの実平面を想定した射影変換によるウィンドウマッチングの実行により正確なウィンドウマッチングが実現され、３次元位置データの精度についても向上させることが可能となる。
【００７４】
すなわち、図１２（１）に示すように従来型のプレーンスイーピング処理では、設定される平面Ｚａ，Ｚｂ，Ｚｃ・・・のいずれかの位置に離散的に３次元位置が決定されることになり、実際はこれらの設定プレーンの間に位置するデータであっても、各プレーン上に３次元位置が決定されてしまう。
【００７５】
しかし、本発明の処理では、実際のオブジェクトによって規定される面、すなわち、図１２（２）に示すプレーンＰ１を想定して射影変換およびウィンドウマッチングを実行する構成であり、画像データは、実際のオブジェクトに対応するプレーンＰ１上に３次元位置を設定することができる。
【００７６】
図１３に本発明の情報処理装置の構成例を示す。情報処理装置１２０は、先に図５を参照して説明したように例えば移動するユーザ１０１の保持するカメラ１０２の撮影画像、例えば動画像を構成する画像を入力し、その入力画像の解析を実行して撮影画像に含まれるオブジェクトについての３次元画像情報１０３を生成する。
【００７７】
情報処理装置１２０は、図１３に示すように、画像入力部５０１、特徴点位置＆カメラ位置姿勢算出部（ＳＦＭ／ＳＬＡＭ）５０２、プレーン検出部５０３、プレーンスイーピング処理実行部５０４、マージ処理部５０５、記憶部５０６を有する。
【００７８】
画像入力部５０１は、図５を参照して説明したように例えば移動するユーザ１０１の保持するカメラ１０２の撮影画像を入力して、特徴点位置＆カメラ位置姿勢算出部（ＳＦＭ／ＳＬＡＭ）５０２に入力する。特徴点位置＆カメラ位置姿勢算出部（ＳＦＭ／ＳＬＡＭ）５０２では、ＳＬＡＭ（ｓｉｍｕｌｔａｎｅｏｕｓ  ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  ｍａｐｐｉｎｇ）やＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）などの処理を適用して画像内の特徴点の位置と、カメラの位置姿勢を検出する。
【００７９】
撮影画像フレームデータと、特徴点位置情報およびカメラ位置姿勢情報は、プレーン検出部５０３に入力される。プレーン検出部５０３はプレーンスイーピング処理実行部５０４におけるプレーンスイーピング処理に適用するプレーン（平面）を特徴点位置情報を利用して検出する。
【００８０】
具体的には、先に図９、図１０を参照して説明したハフ変換やランサック（ＲＡＮＳＡＣ）アルゴリズムを実行して、複数の特徴点の含まれる平面を検出して、検出平面をプレーンスイーピング処理に適用するプレーン（平面）とする。
【００８１】
プレーンスイーピング処理実行部５０４は、プレーン検出部５０３において検出されたプレーンを利用したプレースイーピング処理を実行する。さらに、マージ処理部５０５は、プレーンスイーピング処理実行部５０４において生成したデータをマージして、カメラによって撮影された画像全体の３次元画像データを生成する。なお、記憶部５０６には画像フレームの他、各処理部において算出されたデータが記録される。
【００８２】
このような処理を行うことで、オブジェクトが存在することがほぼ確実なプレーンを検出し、検出プレーンを利用したプレーンスイーピングを実行する構成としたので、ユーザによるプレーン位置姿勢のマニュアル設定の手数がなくなるだけでなく、オブジェクトの存在しない可能性の高い領域についてのプレーンスイーピング処理を省略することが可能となり処理の効率化、高速化が実現され、また、先に図１２を参照して説明したように実平面を想定した射影変換によるウィンドウマッチングの実行がなされるので、より正確なウィンドウマッチングが実現され、３次元位置データの精度が向上する。
【００８３】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
【００８４】
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【００８５】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【００８６】
以上、説明したように、本発明の一実施例の構成によれば、画像から抽出した複数の特徴点各々の３次元位置情報を利用して、複数の特徴点の含まれるプレーン（平面）を検出し、検出したプレーンを利用したプレースイーピング処理を実行して、画像に含まれる画素の３次元位置を算出する構成とした。本構成により、オブジェクトが存在することがほぼ確実なプレーンを検出し、検出プレーンを利用したプレーンスイーピングを行うことが可能となり、オブジェクトの存在しない可能性の高い領域についてのプレーンスイーピング処理の省略が可能となり処理の効率化、高速化が実現される。さらに、実平面を想定した射影変換によるウィンドウマッチングの実行がなされるので、より正確なウィンドウマッチングが実現され、３次元位置データの精度が向上する。
【図面の簡単な説明】
【００８７】
【図１】３次元マップ（３Ｄ  ｍａｐ）の生成処理シーケンスの一例について説明するフローチャートを示す図である。
【図２】画像フレームに含まれる各画素（ピクセル）についての３次元位置を決定する処理シーケンスの一例について説明するフローチャートを示す図である。
【図３】プレーンスイーピング処理の一例について説明する図である。
【図４】プレーンスイーピング処理のシーケンスの例について説明するフローチャートを示す図である。
【図５】本発明の処理の概要について説明する図である。
【図６】プレーンスイーピング処理において利用するプレーンの従来の一般的な設定例について説明する図である。
【図７】プレーンスイーピング処理において利用する従来のプレーン設定における問題点について説明する図である。
【図８】本発明に従ったプレーンスイーピング処理において利用するプレーンの設定例について説明する図である。
【図９】本発明に従ったプレーンスイーピング処理において利用するプレーン検出処理として実行するハフ変換について説明する図である。
【図１０】本発明に従ったプレーンスイーピング処理において利用するプレーン検出処理として実行するランサック（ＲＡＮＳＡＣ）アルゴリズムについて説明するフローチャートを示す図である。
【図１１】本発明の情報処理装置において実行するプレーンスイーピング処理のシーケンスの例について説明するフローチャートを示す図である。
【図１２】本発明の情報処理装置において実行するプレーンスイーピング処理の特徴について説明する図である。
【図１３】本発明の一実施例に係る情報処理装置の構成例について説明する図である。
【符号の説明】
【００８８】
１１  特徴点
１０１  ユーザ
１０２  カメラ
１０３  ３次元画像情報
１２０  情報処理装置
１３１  疎な３次元マップ
１３２  密な３次元マップ
２０１  参照画像フレーム撮影カメラ
２０２  近接画像フレーム撮影カメラ
２５１，２５２  オブジェクト
３０１  特徴点
５０１  画像入力部
５０２  特徴点位置＆カメラ位置姿勢算出部（ＳＦＭ／ＳＬＡＭ）
５０３  プレーン検出部
５０４  プレーンスイーピング処理実行部
５０５  マージ処理部
５０６  記憶部
【図１】
2009237847.tif 000003
【図２】
2009237847.tif 000004
【図４】
2009237847.tif 000005
【図６】
2009237847.tif 000006
【図７】
2009237847.tif 000007
【図８】
2009237847.tif 000008
【図９】
2009237847.tif 000009
【図１０】
2009237847.tif 000010
【図１１】
2009237847.tif 000011
【図１２】
2009237847.tif 000012
【図１３】
2009237847.tif 000013
【図３】
2009237847.tif 000014
【図５】
2009237847.tif 000015