(57)【特許請求の範囲】
【請求項１】
カメラが撮像した対象物の画像を取得する画像取得部と、
前記対象物を３次元計測することにより取得された、前記対象物上の点の位置と色を記述する点群データを格納する点群データベースと、
前記点群データを用いて、ポイントベースレンダリングによって前記対象物の２次元画像を生成し、生成した前記２次元画像と前記画像とを比較して前記画像に合致する前記点群データを特定することにより前記カメラの位置と姿勢を推定する推定部と、
を備えたことを特徴とする画像処理装置。
【請求項２】
前記２次元画像は、
前記点群データが記述している前記対象物の２次元画像である
ことを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記推定部は、
前記点群データが記述している座標を前記カメラから見た座標に変換し、
前記変換によって得られた変換後の前記点群データを用いて前記２次元画像を生成し、生成した前記２次元画像と、前記２次元画像に対応する前記画像上の点とを比較することにより、前記画像に合致する前記点群データを特定する
ことを特徴とする請求項１記載の画像処理装置。
【請求項４】
前記カメラが撮像している画像に重畳表示すべきメッセージとその表示位置を記述するメッセージデータを格納するメッセージデータベースと、
前記推定部が推定した前記カメラの位置と姿勢に応じて、前記メッセージを前記カメラが撮像している画像に重畳表示すべき位置を特定し、その位置およびその位置に重畳表示すべきメッセージを前記カメラに通知するメッセージ位置推定部と、
を備えたことを特徴とする請求項１記載の画像処理装置。
【請求項５】
前記推定部は、
前記画像と前記２次元画像との間の差異の２乗平均、または前記画像と前記２次元画像との間の相互情報量に基づき、前記画像と前記２次元画像との間の類似度を算出し、前記類似度にしたがって前記画像に合致する前記点群データを特定する
ことを特徴とする請求項１記載の画像処理装置。
【請求項６】
前記推定部は、
前記点群データが記述している座標を、推定した前記カメラの位置と姿勢から見た座標に変換し、前記変換によって得られた変換後の前記点群データを用いて前記２次元画像を生成し、生成した前記２次元画像と前記画像との間の前記類似度を算出し、
前記類似度が極大値に収束するまで前記変換と前記類似度を算出する処理を繰り返し、前記類似度が収束した時点における前記推定の結果を、前記カメラの位置と姿勢の最終的な推定結果とする
ことを特徴とする請求項５記載の画像処理装置。
【請求項７】
対象物の画像を撮像するカメラと、
前記対象物を３次元計測することにより取得された、前記対象物上の点の位置と色を記述する点群データを格納する点群データベースと、
前記点群データを用いて、ポイントベースレンダリングによって前記対象物の２次元画像を生成し、生成した前記２次元画像と前記画像とを比較して前記画像に合致する前記点群データを特定することにより前記カメラの位置と姿勢を推定する推定部と、
を備えたことを特徴とする画像処理装置。
【請求項８】
前記２次元画像は、
前記点群データが記述している前記対象物の２次元画像である
ことを特徴とする請求項７記載の画像処理装置。
【請求項９】
前記推定部は、
前記点群データが記述している座標を前記カメラから見た座標に変換し、
前記変換によって得られた変換後の前記点群データを用いて前記２次元画像を生成し、生成した前記２次元画像と、前記２次元画像に対応する前記画像上の点とを比較することにより、前記画像に合致する前記点群データを特定する
ことを特徴とする請求項７記載の画像処理装置。
【請求項１０】
前記カメラは、前記カメラが撮像している画像を画面表示する表示部を備え、
前記表示部に重畳表示すべきメッセージとその表示位置を記述するメッセージデータを格納するメッセージデータベースと、
前記推定部が推定した前記カメラの位置と姿勢に応じて、前記メッセージを前記カメラが撮像している画像に重畳表示すべき位置を特定し、その位置およびその位置に表示すべきメッセージを前記表示部に通知するメッセージ位置推定部と、
を備え、
前記表示部は、前記メッセージ位置推定部から受け取った前記メッセージの位置にそのメッセージを前記画像に重ねて表示する
ことを特徴とする請求項７記載の画像処理装置。
【請求項１１】
前記推定部は、
前記画像と前記２次元画像との間の差異の２乗平均、または前記画像と前記２次元画像との間の相互情報量に基づき、前記画像と前記２次元画像との間の類似度を算出し、前記類似度にしたがって前記画像に合致する前記点群データを特定する
ことを特徴とする請求項７記載の画像処理装置。
【請求項１２】
前記推定部は、
前記点群データが記述している座標を、推定した前記カメラの位置と姿勢から見た座標に変換し、前記変換によって得られた変換後の前記点群データを用いて前記２次元画像を生成し、生成した前記２次元画像と前記画像との間の前記類似度を算出し、
前記類似度が極大値に収束するまで前記変換と前記類似度を算出する処理を繰り返し、前記類似度が収束した時点における前記推定の結果を、前記カメラの位置と姿勢の最終的な推定結果とする
ことを特徴とする請求項１１記載の画像処理装置。
【請求項１３】
カメラが撮像した対象物の画像を取得するステップと、
所定の機器が３次元計測した前記対象物上の点の位置と色を記述する点群データを取得するステップと、
前記点群データを用いて、ポイントベースレンダリングによって前記対象物の２次元画像を生成するステップと、
前記画像と前記２次元画像を比較して前記画像に合致する前記点群データを特定することにより前記カメラの位置と姿勢を推定するステップと、
を有することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラの位置と姿勢を、このカメラが撮像した画像を用いて求める技術に関するものである。
【背景技術】
【０００２】
拡張現実感（Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ：ＡＲ）とは、現実環境を撮影した画像に、現実環境に対応する画像や文字などの情報を付加する技術である。ユーザは、現実環境の画像と付加画像が合成された画像を見ることにより、あたかも付加画像として表示されている物体または画像が実際に存在しているかのような感覚を得ることができる。
【０００３】
ＡＲの応用は、教育、娯楽、広告、ナビゲーション、医療など多岐にわたるが、その応用の一つに設備プラントの保守や建築の支援があげられる。
【０００４】
近年、海外で設備プラントの保守や建設の計画が進む一方、熟練者不足のため、経験の浅いユーザの割合が増加すると予測されている。そこで、ＡＲを応用して作業者を支援する技術が期待されている。ＡＲをプラントの保守や建設現場で応用することにより、機器の状態や内部構造を可視化し、状態把握を補助することができる。これにより、効率的に作業を支援することができる。
【０００５】
ＡＲにおいて最も重要な課題の１つは、現実空間と仮想空間との位置合わせである。すなわち、撮像に用いるカメラの位置や姿勢をいかに正確かつロバストに求めるかが重要である。この課題に対処するため、様々な方法が開発されている。
【０００６】
カメラの位置や姿勢を推定する第１の方法として、ＧＰＳおよび電子コンパスを用いた方法がある。下記特許文献１には、ＧＰＳと電子コンパスと焦点距離に基づき、カメラの地図情報空間上での位置を取得し、３Ｄ−ＣＡＤ上での視野空間を求め、その視野空間中に存在する構造物の属性情報をカメラで得た画像に重畳表示することが記載されている。
【０００７】
カメラの位置や姿勢を推定する第２の方法として、下記非特許文献１、特許文献２、特許文献３に記載されているものがある。これらの文献では、情報提供したい箇所に２次元コードを記述した表示物をあらかじめ設置し、表示物上の２次元コードをカメラで読み取ってその位置を認識し、その位置に情報を提示する。
【０００８】
カメラの位置や姿勢を推定する第３の方法として、モデルベースの方法が提案されている。モデルベースの方法では、３次元ＣＡＤによって設計した物体のように形状が既知である物体に対して仮想カメラを用いて画像を生成する。以下、既知の形状から生成される画像をＣＧ画像と呼ぶ。生成されたＣＧ画像がカメラで撮像されたカメラ画像と類似していれば、そのＣＧ画像を生成するときに用いた仮想カメラの位置や姿勢が、実際のカメラの位置や姿勢に対応していると考えられる。
【０００９】
下記非特許文献２、特許文献４、特許文献５には、モデルベース手法の例として、撮像装置からの２次元的な画像情報に基づいて、物体の頂点やエッジなどの３次元的な幾何特徴を抽出し、これを物体の幾何モデルと照合することにより、物体の位置や姿勢を決定する方法が提案されている。さらに下記非特許文献３では、カメラ画像とＣＧ画像との類似度として、照明変化に対してロバストな相互情報量を用いた方法が提案されている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開平１０−２６７６７１号公報
【特許文献２】特開２００２−２２８４４２号公報
【特許文献３】特開２０００−０４１１７３号公報
【特許文献４】特開平０７−１４６１２１号公報
【特許文献５】特開平０８−００５３３３号公報
【非特許文献】
【００１１】
【非特許文献１】X.Zhang, S.Fronz, N.Navab: Visual Marker Detection and Decoding in ＡＲ Systems: A Comparative Study, Proc. of International Symposium on Mixed and Augmented Reality （ISMAR’02）, 2002.
【非特許文献２】V. Lepetit, L. Vacchetti, D. Thalmann, and P. Fua: Fully Automated and Stable Registration for Augmented Reality Applications, proc. of International Symposium on Mixed and Augmented Reality （ISMAR’03）, 2003.
【非特許文献３】A. Dame, E. Marchand: Accurate real-time tracking using mutual information, proc. of International Symposium on Mixed and Augmented Reality （ISMAR’10）, 2010, pp. 47-56 （2010）.
【発明の概要】
【発明が解決しようとする課題】
【００１２】
特許文献１に記載されている技術では、プラント保守などのように屋内においてＡＲを実現する場合に、作業場所が屋内であるためＧＰＳによる位置把握ができないという課題がある。屋内ＧＰＳも実用化されているが、施設の条件によっては設置が困難な場合がある。また、磁場の変化に対して敏感な電子コンパスや磁界センサは、プラント内部で使用できない場合がある。さらに、ＧＰＳおよび電子コンパスを使用する方法では、位置合わせの精度が画像ベースの位置合わせを実施できるほど高くない。
【００１３】
非特許文献１、特許文献２、特許文献３のように、２次元コードを作業場所にあらかじめ配置する技術では、２次元コードを設置する手間がかかり、場所によっては設置自体が困難なこともある。例えば、プラント内は配管等が複雑に入り組んでいるため２次元コードが隠れて撮影されない場合や、２次元コードを設置した位置にしか情報が提示できないため情報定時が離散的になるという課題がある。また、稼働中の機器に関しては２次元コードを設置することが困難である。
【００１４】
非特許文献２、特許文献４、特許文献５に記載されているモデルベースの方法は、ＣＧ画像とカメラ画像との照合によってカメラ位置と姿勢を推定することができるので、２次元コードやＧＰＳなどを利用する必要がない。しかし、現実物体の３次元ＣＡＤデータなどの３次元形状データをあらかじめ準備しておくことが必要となる。実際には、現実物体の３次元ＣＡＤデータが存在しない場合や、例えば現場作業の仮定で設備を操作した結果として３次元ＣＡＤデータが実際の形状と適合していない場合がある。このような場合には、３次元形状データを新規に作成する必要があるが、これには膨大な手間がかかる。この理由について以下に説明する。
【００１５】
３次元形状データを作成するために、レーザレンジファインダなどによって実際の形状を３次元計測する方法がある。レーザレンジファインダによって現実物体の形状と色を精密に計測することができる。レーザレンジファインダによる計測データは、点群である場合が多い。すなわち、大量の点群の３次元座標と各点における色が計測される。モデルベースの方法において計測データを適用する場合には、点群データなどの３次元計測データからポリゴンなどの面データを生成する必要がある。しかし、点群データから面データへの変換には多大な工数が必要である。
【００１６】
本発明は、上記のような課題に鑑みてなされたものであり、カメラが撮像した画像に基づきカメラの位置や姿勢を推定する場合において、事前に必要な作業量を削減することを目的とする。
【課題を解決するための手段】
【００１７】
本発明に係る画像処理装置は、対象物上の点の位置と色を記述した点群データとカメラが撮像した画像を比較することにより、カメラの位置と姿勢を推定する。
【発明の効果】
【００１８】
本発明に係る画像処理装置によれば、対象物を３次元計測することによって得られる点群データを準備しておくのみでカメラの位置や姿勢を特定できるため、ＧＰＳや電子コンパスのようなセンサが不要となり、かつ２次元コードをあらかじめ作業場所に設置する必要がなく、さらには対象物の３次元形状データ（面データ）をあらかじめ作成しておく必要がない。これにより、カメラの位置や姿勢を推定するために必要な事前の作業量を削減することができる。
【図面の簡単な説明】
【００１９】
【図１】実施形態１に係る画像ネットワークシステム１０００の構成を示す図である。
【図２】カメラ付端末１０の機能ブロック図である。
【図３】画像処理サーバ３０の機能ブロック図である。
【図４】カメラ画像１１のデータフォーマットを示す図である。
【図５】カメラ情報データ１３のデータフォーマットを示す図である。
【図６】点群ＤＢ３１の構成を示す図である。
【図７】メッセージＤＢ３２の構成を示す図である。
【図８】画像処理サーバ３０がカメラ１４の位置と姿勢を推定する方法を示す模式図である。
【図９】カメラ付端末１０がカメラ１４の位置と姿勢を取得する手順を示すシーケンス図である。
【図１０】画像処理サーバ３０がカメラ１４の位置と姿勢を推定する手法の詳細を示すフローチャートである。
【図１１】カメラ付端末１０がメッセージを表示部１６に画面表示する方法を示した模式図である。
【図１２】カメラ付端末１０がカメラ１４の撮像範囲に付随するメッセージを取得する手順を示すシーケンス図である。
【図１３】点群ＤＢ３１が格納している点群データをカメラ１４から見た座標に変換した２次元点群データ１３００のデータフォーマットを示す図である。
【図１４】実施形態２において画像処理サーバ３０がカメラ１４の位置と姿勢を推定する手法の詳細を示すフローチャートである。
【図１５】実施形態３において画像処理サーバ３０がカメラ１４の位置と姿勢を推定する手法の詳細を示すフローチャートである。
【図１６】実施形態４に係るカメラ付端末１０の機能ブロック図である。
【発明を実施するための形態】
【００２０】
＜実施の形態１：システム構成＞
図１は、本発明の実施形態１に係る画像ネットワークシステム１０００の構成を示す図である。画像ネットワークシステム１０００は、カメラが撮像した画像に基づき当該カメラの位置や姿勢を推定するためのシステムであり、カメラ付端末１０、画像処理サーバ３０を有する。
【００２１】
カメラ付端末１０は、ユーザ５０が保持する端末であり、例えばプラント内の設備などの対象物を撮像し、撮像した画像を基地局４０経由で画像処理サーバ３０に送信する。また、撮像した画像をユーザ５０が確認するための表示部を備え、対象物と併せて対象物に関連するメッセージを重畳表示することもできる。カメラ付端末１０の詳細構成については後述する。
【００２２】
画像処理サーバ３０は、カメラ付端末１０から受け取った画像に基づき、カメラ付端末１０が備えているカメラの位置や姿勢を推定し、カメラ付端末１０に通知する。画像処理サーバ３０は、本実施形態１における「画像処理装置」に相当する。画像処理サーバ３０の詳細構成については後述する。
【００２３】
図２は、カメラ付端末１０の機能ブロック図である。カメラ付端末１０は、カメラ１４、通信部１５、表示部１６、制御部１７を備える。
【００２４】
カメラ１４は、周辺に存在する対象物の画像を撮像してカメラ画像１１を生成する。通信部１５は、カメラ１４が撮像した画像を画像処理サーバ３０に送信し、画像処理サーバ３０からメッセージデータ１２とカメラ情報データ１３を受け取る。表示部１６は、カメラ１４が撮像した画像と必要に応じて後述するメッセージを画面表示する。制御部１７は、各部の動作を制御する。
【００２５】
制御部１７は、その機能を実現する回路デバイスのようなハードウェアを用いて構成することもできるし、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）のような演算装置とその動作を規定するソフトウェアを用いて構成することもできる。
【００２６】
図３は、画像処理サーバ３０の機能ブロック図である。画像処理サーバ３０は、点群データベース（ＤＢ）３１、メッセージデータベース（ＤＢ）３２、データベース管理部３３、通信部３４、カメラ位置姿勢推定部３５、制御部３６を備える。
【００２７】
点群ＤＢ３１は、ユーザ５０が作業するプラントなどの設備をあらかじめレーザレンジファインダなどによって３次元計測することにより取得した、対象物の点群データを格納するデータベースである。点群ＤＢ３１の構成については後述する。メッセージＤＢ３２は、カメラ付端末１０の表示部１６が撮像画像とともに表示するメッセージを格納するデータベースである。メッセージＤＢ３２の構成については後述する。
【００２８】
データベース管理部３３は、点群ＤＢ３１とメッセージＤＢ３２に対するデータ入出力を管理する。通信部３４は、カメラ付端末１０からカメラ画像１１を受け取り、メッセージデータ１２とカメラ情報データ１３をカメラ付端末１０に送信する。カメラ位置姿勢推定部３５は、後述する手法を用いてカメラ１４の位置と姿勢を推定する。制御部３６は、各機能部の動作を制御する。本実施形態１における「推定部」「メッセージ位置推定部」は、カメラ位置姿勢推定部３５が相当する。
【００２９】
点群ＤＢ３１とメッセージＤＢ３２は、データベース内の各レコードを保持するデータファイルをＨＤＤ（ハードディスクドライブ）などの記憶装置に格納することによって構成することができる。
【００３０】
データベース管理部３３、カメラ位置姿勢推定部３５、制御部３６は、その機能を実現する回路デバイスのようなハードウェアを用いて構成することもできるし、ＣＰＵのような演算装置とその動作を規定するソフトウェアを用いて構成することもできる。
【００３１】
図４は、カメラ画像１１のデータフォーマットを示す図である。カメラ画像１１は、カメラ１４が対象物を撮像することによって取得する画像データであり、カメラＩＤフィールド１１１、取得時刻フィールド１１２、画像データフィールド１１３を有する。
【００３２】
カメラＩＤフィールド１１１は、カメラ付端末１０またはカメラ１４が複数存在する場合に、画像処理サーバ３０が個々のカメラ１４を識別するためのＩＤである。取得時刻フィールド１１２は、カメラ１４が対象物を撮像した日時を保持する。画像データフィールド１１３は、対象物の撮像データ本体部分である。
【００３３】
カメラ１４は、対象物を撮像して得た画像データに、自身のＩＤ（カメラ１４内のレジスタ等に記録しておけばよい）と撮像年月日をそれぞれカメラＩＤフィールド１１１、取得時刻フィールド１１２として付与し、カメラ画像１１を生成する。
【００３４】
図５は、カメラ情報データ１３のデータフォーマットを示す図である。カメラ情報データ１３は、カメラ１４の位置と姿勢を推定した結果をカメラ付端末１０へ通知するためのデータであり、カメラ位置フィールド１３１、カメラ方向フィールド１３２を有する。
【００３５】
カメラ位置フィールド１３１は、カメラ１４の位置の３次元座標値を保持する。カメラ方向フィールド１３２は、カメラ１４の姿勢を示す値を保持する。カメラ位置フィールド１３１は、例えばプラント設備内の所定位置を基準とする３次元座標値によって記述することができる。カメラ方向フィールド１３２は、Ｘ軸まわりの回転角度、Ｙ軸まわりの回転角度、Ｚ軸周りの回転角度によって記述することができる。その他の方法、例えば４元数などでカメラ１４の姿勢を記述してもよい。
【００３６】
図６は、点群ＤＢ３１の構成を示す図である。点群ＤＢ３１は、ＩＤフィールド３１１、位置フィールド３１２、色フィールド３１３を有する。ＩＤフィールド３１１は、点群ＤＢ３１が保持する個々の点についてのレコードを識別するための識別子である。位置フィールド３１２は、対象物上の点の３次元座標値を保持する。色フィールド３１３は、位置フィールド３１２が指定する座標点の色を示す値を保持する。
【００３７】
位置フィールド３１２は、カメラ位置フィールド１３１と同様に、例えばプラント設備内の所定位置を基準とする３次元座標値によって記述することができる。色フィールド３１３は、例えばＲＧＢ表色系によって表現することができる。
【００３８】
ユーザ５０は、作業場所に設置されている設備などをあらかじめレーザレンジファインダなどによって３次元計測することにより、点群ＤＢ３１が保持する各レコードを作成し、点群ＤＢ３１にあらかじめ格納しておく。
【００３９】
図７は、メッセージＤＢ３２の構成を示す図である。メッセージＤＢ３２は、メッセージＩＤフィールド３２１、メッセージフィールド３２２、メッセージ位置フィールド３２３を有する。
【００４０】
メッセージＩＤフィールド３２１は、メッセージＤＢ３２が保持する個々のレコードを識別するための識別子である。メッセージフィールド３２２は、表示部１６上に重畳表示するメッセージであり、例えばテキストデータ、画像、工程表や作業手順などのドキュメントなどをメッセージとすることができる。メッセージ位置フィールド３２３は、メッセージを重畳表示すべきプラント内の位置を示す３次元座標値を保持する。メッセージ位置フィールド３２３が指定する位置をカメラ１４が撮像しているとき、表示部１６がメッセージフィールド３２２のメッセージを撮像画像と併せて重畳表示することを想定する。
【００４１】
＜実施の形態１：カメラの位置と姿勢の推定＞
図８は、画像処理サーバ３０がカメラ１４の位置を推定する方法を示す模式図である。以下図８にしたがって、画像処理サーバ３０の処理手順を説明する。
【００４２】
（図８：ステップＳ８００）
カメラ付端末１０のカメラ１４は、対象物を撮像して得たカメラ画像１１を画像処理サーバ３０へ送信する。このときカメラ付端末１０は、カメラ１４の位置と姿勢を推定するように、画像処理サーバ３０へ併せて依頼する。
【００４３】
（図８：ステップＳ８０１）
画像処理サーバ３０は、点群ＤＢ３１が格納している点群データと、位置および姿勢を仮に設定した仮想カメラとを用いて、仮想カメラから見た点群データのＣＧ画像を生成する。このＣＧ画像は、仮想カメラ情報を変更することで複数生成される。生成されたＣＧ画像のなかには、カメラ画像１１と類似する部分を有しているものが存在すると想定される。図８に示す例では、２つ目のＣＧ画像がカメラ画像１１と類似している。
【００４４】
（図８：ステップＳ８０２）
画像処理サーバ３０は、ステップＳ８０１で生成した各ＣＧ画像とカメラ画像１１との間の類似度が最大になるような仮想カメラの位置と姿勢を求める。類似度を最大化する方法の詳細については後述する。
【００４５】
（図８：ステップＳ８０３）
画像処理サーバ３０は、カメラ画像１１とＣＧ画像との間の類似度を最大化する仮想カメラの位置と姿勢を、カメラ付端末１０が備えるカメラ１４の位置および姿勢であると推定する。画像処理サーバ３０は、推定結果をカメラ付端末１０へカメラ情報データ１３として送信する。
【００４６】
図９は、カメラ付端末１０がカメラ１４の位置と姿勢を取得する手順を示すシーケンス図である。以下、図９の各ステップについて説明する。
【００４７】
（図９：ステップＳ９０１〜Ｓ９０２）
カメラ付端末１０は、対象物を撮像してカメラ画像１１を生成し（Ｓ９０１）、画像処理サーバ３０へ送信する（Ｓ９０２）。このときカメラ付端末１０は、カメラ１４の位置と姿勢を推定して返信するように、画像処理サーバ３０へ要求する。これらのステップは、図８のステップＳ８００に相当する。
【００４８】
（図９：ステップＳ９０３〜Ｓ９０４）
画像処理サーバ３０は、カメラ画像１１を受信すると、後述する図１０の手順にしたがって、カメラ１４の位置と姿勢を推定する（Ｓ９０３）。画像処理サーバ３０は、推定結果をカメラ情報データ１３としてカメラ付端末１０へ返信する（Ｓ９０４）。これらのステップは、図８のステップＳ８０１〜Ｓ８０３に相当する。
【００４９】
図１０は、画像処理サーバ３０がカメラ１４の位置を推定する手法の詳細を示すフローチャートである。以下、図１０の各ステップについて説明する。
【００５０】
（図１０：ステップＳ１００１）
画像処理サーバ３０のカメラ位置姿勢推定部３５は、仮想カメラの位置と姿勢を設定する。仮想カメラの位置と姿勢は、カメラ情報データ１３と同様のデータフォーマットによって設定することができる。仮想カメラの位置と姿勢の初期値は、ユーザが指定することもできるし、ジャイロや電子コンパスを用いてカメラ１４の現在位置および姿勢を大まかに推定してこれを初期値とすることもできる。
【００５１】
（図１０：ステップＳ１００２）
カメラ位置姿勢推定部３５は、点群ＤＢ３１が格納している各レコードに対して、現在の仮想カメラの位置と姿勢から見た座標となるように、座標変換および透視変換を実施する。これは、点群ＤＢ３１が格納している各点群は、３次元計測を実施したときの計測装置の位置および姿勢に基づいているためである。点群ＤＢ３１が格納している各点群データとカメラ１４が現在撮像している画像とを対応付けるためには、点群データをカメラ１４から見た座標に変換する必要がある。
【００５２】
（図１０：ステップＳ１００３）
カメラ位置姿勢推定部３５は、仮想カメラの撮像範囲外の点をクリッピングによって除去する。透視変換された点群データの座標がカメラ１４の撮像範囲外となる場合があるため、本ステップが必要になる。
【００５３】
（図１０：ステップＳ１００４）
カメラ位置姿勢推定部３５は、座標変換および透視変換によって得られた点群データをポイントベースレンダリングすることにより、ＣＧ画像を生成する。点群データは対象物を撮像した画像そのものではなく、対象物上の複数点の座標と色を示すものであるため、カメラ１４が撮像した画像と直接的に比較することはできない。点群データが表すドット集合と２次元画像は異なる種類のデータだからである。そこで本ステップにおいて点群データから公知のポイントベースレンダリングを用いて２次元画像を生成し、カメラ画像１１と直接比較できるようにすることとした。
【００５４】
（図１０：ステップＳ１００５）
カメラ位置姿勢推定部３５は、カメラ付端末１０から受け取ったカメラ画像１１と、ステップＳ１００４で生成したＣＧ画像とを比較し、両者の類似度を求める。類似度は、２つの画像間の誤差の２乗平均（ＳＳＤ：Ｓｕｍ  ｏｆ  Ｓｑｕａｒｅｄ  Ｄｉｆｆｅｒｅｎｃｅｓ）によって求められる他、後述する相互情報量を画像間の類似度とすることができる。また、これらの値に何らかの演算を施して導出した値を類似度としてもよい。
【００５５】
（図１０：ステップＳ１００６）
カメラ位置姿勢推定部３５は、ステップＳ１００５で算出した類似度が極大値に収束したか否かを判定する。類似度が収束していない場合はステップＳ１００７に進み、収束している場合はステップＳ１００８に進む。
【００５６】
（図１０：ステップＳ１００７）
カメラ位置姿勢推定部３５は、より高い類似度を得るために、仮想カメラの位置と姿勢を更新する。具体的には、例えば現在の仮想カメラの位置と姿勢を適当に変化させて新たな位置と姿勢を設定する。本ステップの後はステップＳ１００２に戻り、同様の処理を繰り返すことにより、カメラ画像１１とＣＧ画像との間の類似度を最大化する。
【００５７】
（図１０：ステップＳ１００８）
カメラ位置姿勢推定部３５は、通信部３４を介して、現在の仮想カメラの位置と姿勢をカメラ情報データ１３としてカメラ付端末１０に送信する。
【００５８】
＜実施の形態１：メッセージの表示＞
図１１は、カメラ付端末１０がメッセージを表示部１６に画面表示する方法を示した模式図である。以下図１１に示す各ステップについて説明する。
【００５９】
（図１１：ステップＳ１１０１）
画像処理サーバ３０は、カメラ付端末１０が撮影したカメラ画像１１を受け取ると、カメラ１４の位置と姿勢を推定し、カメラ１４の座標とおよび方向を取得する。これらのステップは、図８〜図１０で説明したものと同様である。カメラ付端末１０は、本ステップにおいてカメラ画像１１を画像処理サーバ３０に送信する際に、カメラ１４の位置および姿勢と併せて、カメラ１４の撮像範囲に付随するメッセージを送信するように要求することができる。
【００６０】
（図１１：ステップＳ１１０２）
画像処理サーバ３０は、ステップＳ１１０１で求めたカメラ１４の位置および姿勢に基づき、カメラ１４の撮影範囲を算出する。画像処理サーバ３０は、カメラ１４の撮影範囲内に含まれるメッセージを、メッセージ位置フィールド３２３にしたがってメッセージＤＢ３２から検索する。画像処理サーバ３０は、検索によって得られたメッセージの座標をカメラ１４から見た座標に変換した上で、カメラ付端末１０へ送信する。カメラ情報データ１３を併せて送信してもよい。
【００６１】
（図１１：ステップＳ１１０３）
カメラ付端末１０の表示部１６は、カメラ１４が撮像している画像に、画像処理サーバ３０から受け取ったメッセージを重畳表示する（図１１の画面１６２）。重畳表示するメッセージはカメラ１４の位置座標をキーにして取得するため、物体の影に隠れた箇所に対応付けられているメッセージを重畳表示することもできる。また、カメラ１４の位置をユーザ５０の作業場所の地図上に画面表示することにより、ユーザ５０は自身の位置を把握することができる（図１１の画面１６１）。
【００６２】
図１２は、カメラ付端末１０がカメラ１４の撮像範囲に付随するメッセージを取得する手順を示すシーケンス図である。以下、図１２の各ステップについて説明する。
【００６３】
（図１２：ステップＳ１２０１〜Ｓ１２０２）
カメラ付端末１０は、対象物を撮像してカメラ画像１１を生成し（Ｓ１２０１）、画像処理サーバ３０へ送信する（Ｓ１２０２）。このときカメラ付端末１０は、カメラ１４の撮像範囲に付随するメッセージを返信するように、画像処理サーバ３０へ要求する。これらのステップは、図１１のステップＳ１１０１に相当する。図９のシーケンスと本シーケンスを敢えて区別せず、カメラ付端末１０がカメラ画像１１を画像処理サーバ３０に送信するときは必ずカメラ位置とカメラ姿勢に加えて付随メッセージを返信するものとしてもよい。
【００６４】
（図１２：ステップＳ１２０３〜Ｓ１２０４）
画像処理サーバ３０は、カメラ画像１１を受信すると、図１０の手順にしたがってカメラ１４の位置と姿勢を推定する（Ｓ１２０３）。画像処理サーバ３０は、推定したカメラ１４の位置と姿勢に基づきカメラ１４の撮像範囲を取得し、その撮像範囲内に含まれるメッセージをメッセージＤＢ３２から取得する。これらのステップは、図１１のステップＳ１１０１後段〜Ｓ１１０２前段に相当する。
【００６５】
（図１２：ステップＳ１２０５）
画像処理サーバ３０は、メッセージＤＢ３２から取得したメッセージを、ステップＳ１２０３で推定したカメラ１４の位置および姿勢に基づきカメラ１４から見た座標に変換した上で、カメラ付端末１０に返信する。カメラ１４の位置と姿勢をカメラ情報データ１３として併せて送信してもよい。
【００６６】
（図１２：ステップＳ１２０６）
カメラ付端末１０は、画像処理サーバ３０から取得したメッセージを、カメラ１４が撮像している画像と併せて表示部１６上に重畳表示する。
【００６７】
＜実施の形態１：まとめ＞
以上のように、本実施形態１に係る画像処理サーバ３０は、カメラ１４が撮像する対象物上の点の座標と色を記述する点群データを保持しており、カメラ画像１１と点群データを比較することによりカメラ画像１１と合致する点群データを特定し、これに基づきカメラ１４の位置と姿勢を推定する。これにより、対象物を３次元測定することによって得られる点群データから３次元形状データをあらかじめ作成しておく必要がなくなるので、そのための作業負担を削減することができる。
【００６８】
また、本実施形態１に係る画像処理サーバ３０は、カメラ１４の位置および姿勢の推定結果に基づき、カメラ１４の撮像範囲に対応付けられているメッセージを特定する。カメラ付端末１０は、そのメッセージを表示部１６上で撮像画像と併せて重畳表示する。これにより、ユーザ５０は作業場所に関連する情報を画面上で容易に把握することができる。
【００６９】
＜実施の形態２＞
実施形態１では、点群データをポイントベースレンダリングによって２次元画像に変換した上で、カメラ画像１１と比較する手法を説明した。本発明の実施形態２では、これに代えてカメラ画像１１上の点と点群データを比較する手法を説明する。画像ネットワークシステム１０００の構成は実施形態１と同様であるため、以下では差異点を中心に説明する。
【００７０】
図１３は、点群ＤＢ３１が格納している点群データをカメラ１４から見た座標に変換した２次元点群データ１３００のデータフォーマットを示す図である。２次元点群データ１３００は、点群ＤＢ３１と同様に、ＩＤフィールド１３０１、位置フィールド１３０２、色フィールド１３０３を有する。
【００７１】
位置フィールド１３０２は、カメラ１４から見た座標であるため、位置フィールド３１２とは異なり２次元座標である。座標変換によってカメラ１４の撮像範囲外になったレコードをクリッピング処理によって除去するため、２次元点群データ１３００のレコード数は、点群ＤＢ３１のレコード数よりも少ない。
【００７２】
図１４は、本実施形態２において画像処理サーバ３０がカメラ１４の位置を推定する手法の詳細を示すフローチャートである。本フローチャートは、図１０のフローチャートのうちステップＳ１００４〜Ｓ１００５がステップＳ１４０１〜Ｓ１４０２に置き換わったものである。以下ではこれら置き換えられたステップについて説明する。
【００７３】
（図１４：ステップＳ１４０１）
カメラ位置姿勢推定部３５は、実施形態１のステップＳ１００４で説明したＣＧ画像に代えて、座標変換および透視変換によって得られた２次元点群データ１３００を、カメラ画像１１と比較する対象とする。
【００７４】
（図１４：ステップＳ１４０２）
カメラ位置姿勢推定部３５は、２次元点群データ１３００とカメラ画像１１を比較して両者の類似度を求める。実施形態１とは異なり、２次元画像同士を比較するのではなく点同士を比較するため、類似度を算出する手法は実施形態１とは異なる。例えば以下のような手法が考えられる。
【００７５】
（図１４：ステップＳ１４０２：類似度の計算例その１）
カメラ位置姿勢推定部３５は、２次元点群データ１３００の全点を、カメラ画像１１の対応する位置における輝度値と比較することにより、両者の類似度を計算する。具体的には、２次元点群データの各点の輝度と、カメラ画像１１の対応する位置における輝度との間の誤差の２乗平均に基づき、両者の類似度を求めることができる。
【００７６】
（図１４：ステップＳ１４０２：類似度の計算例その２）
上記計算例その１において、２次元点群データ１３００の位置は、必ずしも画素中心に存在していない場合がある。この場合は、公知の双１次補間または双３次補間によってカメラ画像１１の輝度値を求めるようにしてもよい。
【００７７】
（図１４：ステップＳ１４０２：類似度の計算例その３）
カメラ位置姿勢推定部３５は、２次元点群データ１３００の輝度とカメラ画像１１の輝度から相互情報量を求め、これを両者の類似度とすることができる。相互情報量を計算するためには、まず２次元点群データ１３００の全点の輝度値と、カメラ画像１１の対応する位置における画素の輝度値とから、２次元ヒストグラムを計算する。次に、その２次元ヒストグラムを用いて計算される確率密度関数を用いて、相互情報量を計算する。
【００７８】
相互情報量とは、２つの事象ＡとＢについて、事象Ａが有している事象Ｂに関する情報量を定量化した尺度である。本発明における類似度を計算するために用いる正規化相互情報量ＮＭＩ（Ａ，Ｂ）は、事象Ａと事象Ｂの２次元結合ヒストグラムＨｉｓｔ（Ａ，Ｂ）に基づき、下記式１によって求められる。
【００７９】
【数１】
0005837404.tif 000002
【００８０】
Ｈ（Ａ）は事象Ａのエントロピー、Ｈ（Ｂ）は事象Ｂのエントロピー、Ｈ（Ａ，Ｂ）は事象Ａ，Ｂの結合エントロピーである。ｐ（ａ）はａの確率密度分布、ｐ（ｂ）はｂの確率密度分布である。ｐ（ａ，ｂ）はａ，ｂの同時確率分布であり、Ｈｉｓｔ（Ａ，Ｂ）から求められる。事象Ａと事象Ｂが完全に独立である場合には、Ｈ（Ａ，Ｂ）＝Ｈ（Ａ）＋Ｈ（Ｂ）となる。事象Ａと事象Ｂが完全に従属である場合には、Ｈ（Ａ，Ｂ）＝Ｈ（Ａ）＝Ｈ（Ｂ）となる。以上から、ＮＭＩ（Ａ，Ｂ）のとりうる範囲は１以上２以下となる。
【００８１】
＜実施の形態２：まとめ＞
以上のように、本実施形態２に係る画像処理サーバ３０は、座標変換および透視変換によって得られた２次元点群データ１３００とカメラ画像１１を比較する。この方法は点群データをレンダリングしてＣＧ画像を生成する実施形態１と比較すると、点群データの密度が小さいためＣＧ画像を適切にレンダリングできない場合でも適用できるという利点がある。
【００８２】
＜実施の形態３＞
本発明の実施形態３では、カメラ画像１１の特徴点／特徴線と点群データの特徴点／特徴線を比較することにより、両者の類似度を求める手法を説明する。画像ネットワークシステム１０００の構成は実施形態１〜２と同様であるため、以下では差異点を中心に説明する。
【００８３】
図１５は、本実施形態３において画像処理サーバ３０がカメラ１４の位置を推定する手法の詳細を示すフローチャートである。本フローチャートは、図１０のフローチャートの前段処理としてステップＳ１５０１〜Ｓ１５０２が追加され、ステップＳ１００２、Ｓ１００４、Ｓ１００５がステップＳ１５０３、Ｓ１５０４、Ｓ１５０５に置き換わったものである。以下ではこれらステップについて説明する。
【００８４】
（図１５：ステップＳ１５０１）
画像処理サーバ３０のカメラ位置姿勢推定部３５は、カメラ１４の位置と姿勢を推定する処理を実施する前に、点群ＤＢ３１に格納されている点群データから３次元特徴点および３次元特徴線を抽出し、３次元特徴線／特徴点データを作成しておく。この処理は点群データに対する自動的なフィルタ処理によって実施してもよいし、ユーザが対話的に特徴線／特徴点を与えてもよい。特徴点は３次元座標によって表現し、特徴線は３次元空間上の折れ線によって表現することができる。
【００８５】
（図１５：ステップＳ１５０２）
カメラ位置姿勢推定部３５は、カメラ画像１１をカメラ付端末１０から受け取ると、類似度計算を実施する前に、カメラ画像１１の２次元特徴点および２次元特徴線を抽出し、カメラ画像特徴線／特徴点データを作成しておく。
【００８６】
（図１５：ステップＳ１５０３）
カメラ位置姿勢推定部３５は、３次元特徴線／特徴点データに対して、ステップＳ１００２と同様の座標変換および透視変換を実施する。これにより、３次元特徴線／特徴点データはカメラ１４から見た２次元の特徴線／特徴点データとなる。
【００８７】
（図１５：ステップＳ１５０４〜Ｓ１５０５）
カメラ位置姿勢推定部３５は、実施形態１のステップＳ１００４で説明したＣＧ画像に代えて、座標変換および透視変換によって得られた２次元特徴線／特徴点データを、カメラ画像１１から生成したカメラ画像特徴線／特徴点データと比較する（Ｓ１５０４）。両者の類似度は、特徴点であれば特徴点間の距離、特徴線であれば特徴線間の距離を用いて求められる。カメラ位置姿勢推定部３５は、特徴線／特徴点の類似度またはこれらから算出した数値を、カメラ画像１１と点群データの類似度とする。
【００８８】
＜実施の形態３：まとめ＞
以上のように、本実施形態３に係る画像処理サーバ３０は、カメラ画像１１から抽出した特徴線／特徴点と、点群データから抽出した特徴線／特徴点とを比較することにより、カメラ画像１１と点群データの類似度を算出する。この方法は、比較対象がすべての点群ではないため、計算時間を短縮できる利点がある。また、特徴線／特徴点を抽出することが容易な対象に対しては、類似度をロバストに計算できる。ただし、類似度を計算する前に対象物の３次元計測データから特徴線／特徴点を事前に求めておく必要がある。また、カメラ画像１１から特徴線／特徴点を求める必要がある。
【００８９】
＜実施の形態４＞
図１６は、本発明の実施形態４に係るカメラ付端末１０の機能ブロック図である。本実施形態４に係るカメラ付端末１０は、実施形態１の図２で説明した構成に加えて、画像処理サーバ３０が備える点群ＤＢ３１、メッセージＤＢ３２、データベース管理部３３、カメラ位置姿勢推定部３５を備える。制御部１７は、これら各機能部を制御する。本実施形態４に係るカメラ付端末１０は、本実施形態４における「画像処理装置」に相当する。
【００９０】
本実施形態４に係るカメラ付端末１０は、画像処理サーバ３０の機能を兼ねており、画像処理サーバ３０と通信しなくともカメラ１４の位置と姿勢を自身で推定することができる。また、カメラ１４の撮像範囲に対応付けられているメッセージＤＢ３２内のメッセージを自ら検索することができる。したがって、通信部は必ずしも必要でない。
【００９１】
本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。上記実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることもできる。また、ある実施形態の構成に他の実施形態の構成を加えることもできる。また、各実施形態の構成の一部について、他の構成を追加・削除・置換することもできる。
【００９２】
上記各構成、機能、処理部、処理手段等は、それらの一部や全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に格納することができる。
【符号の説明】
【００９３】
１０：カメラ付端末、１１：カメラ画像、１２：メッセージデータ、１３：カメラ情報データ、１４：カメラ、１５：通信部、１６：表示部、１７：制御部、３０：画像処理サーバ、３１：点群データベース、３２：メッセージデータベース、３３：データベース管理部、３４：通信部、３５：カメラ位置姿勢推定部、３６：制御部、４０：基地局、５０：ユーザ、１０００：画像ネットワークシステム。
【図１】
0005837404.tif 000003
【図２】
0005837404.tif 000004
【図３】
0005837404.tif 000005
【図４】
0005837404.tif 000006
【図５】
0005837404.tif 000007
【図６】
0005837404.tif 000008
【図７】
0005837404.tif 000009
【図８】
0005837404.tif 000010
【図９】
0005837404.tif 000011
【図１０】
0005837404.tif 000012
【図１１】
0005837404.tif 000013
【図１２】
0005837404.tif 000014
【図１３】
0005837404.tif 000015
【図１４】
0005837404.tif 000016
【図１５】
0005837404.tif 000017
【図１６】
0005837404.tif 000018