説明

画像処理装置、画像処理方法

【課題】カメラが撮像した画像に基づきカメラの位置や姿勢を推定する場合において、事前に必要な作業量を削減する。
【解決手段】本発明に係る画像処理装置は、対象物上の点の位置と色を記述した点群データとカメラが撮像した画像を比較することにより、カメラの位置と姿勢を推定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、カメラの位置と姿勢を、このカメラが撮像した画像を用いて求める技術に関するものである。
【背景技術】
【0002】
拡張現実感(Augmented Reality:AR)とは、現実環境を撮影した画像に、現実環境に対応する画像や文字などの情報を付加する技術である。ユーザは、現実環境の画像と付加画像が合成された画像を見ることにより、あたかも付加画像として表示されている物体または画像が実際に存在しているかのような感覚を得ることができる。
【0003】
ARの応用は、教育、娯楽、広告、ナビゲーション、医療など多岐にわたるが、その応用の一つに設備プラントの保守や建築の支援があげられる。
【0004】
近年、海外で設備プラントの保守や建設の計画が進む一方、熟練者不足のため、経験の浅いユーザの割合が増加すると予測されている。そこで、ARを応用して作業者を支援する技術が期待されている。ARをプラントの保守や建設現場で応用することにより、機器の状態や内部構造を可視化し、状態把握を補助することができる。これにより、効率的に作業を支援することができる。
【0005】
ARにおいて最も重要な課題の1つは、現実空間と仮想空間との位置合わせである。すなわち、撮像に用いるカメラの位置や姿勢をいかに正確かつロバストに求めるかが重要である。この課題に対処するため、様々な方法が開発されている。
【0006】
カメラの位置や姿勢を推定する第1の方法として、GPSおよび電子コンパスを用いた方法がある。下記特許文献1には、GPSと電子コンパスと焦点距離に基づき、カメラの地図情報空間上での位置を取得し、3D−CAD上での視野空間を求め、その視野空間中に存在する構造物の属性情報をカメラで得た画像に重畳表示することが記載されている。
【0007】
カメラの位置や姿勢を推定する第2の方法として、下記非特許文献1、特許文献2、特許文献3に記載されているものがある。これらの文献では、情報提供したい箇所に2次元コードを記述した表示物をあらかじめ設置し、表示物上の2次元コードをカメラで読み取ってその位置を認識し、その位置に情報を提示する。
【0008】
カメラの位置や姿勢を推定する第3の方法として、モデルベースの方法が提案されている。モデルベースの方法では、3次元CADによって設計した物体のように形状が既知である物体に対して仮想カメラを用いて画像を生成する。以下、既知の形状から生成される画像をCG画像と呼ぶ。生成されたCG画像がカメラで撮像されたカメラ画像と類似していれば、そのCG画像を生成するときに用いた仮想カメラの位置や姿勢が、実際のカメラの位置や姿勢に対応していると考えられる。
【0009】
下記非特許文献2、特許文献4、特許文献5には、モデルベース手法の例として、撮像装置からの2次元的な画像情報に基づいて、物体の頂点やエッジなどの3次元的な幾何特徴を抽出し、これを物体の幾何モデルと照合することにより、物体の位置や姿勢を決定する方法が提案されている。さらに下記非特許文献3では、カメラ画像とCG画像との類似度として、照明変化に対してロバストな相互情報量を用いた方法が提案されている。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開平10−267671号公報
【特許文献2】特開2002−228442号公報
【特許文献3】特開2000−041173号公報
【特許文献4】特開平07−146121号公報
【特許文献5】特開平08−005333号公報
【非特許文献】
【0011】
【非特許文献1】X.Zhang, S.Fronz, N.Navab: Visual Marker Detection and Decoding in AR Systems: A Comparative Study, Proc. of International Symposium on Mixed and Augmented Reality (ISMAR’02), 2002.
【非特許文献2】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.
【非特許文献3】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).
【発明の概要】
【発明が解決しようとする課題】
【0012】
特許文献1に記載されている技術では、プラント保守などのように屋内においてARを実現する場合に、作業場所が屋内であるためGPSによる位置把握ができないという課題がある。屋内GPSも実用化されているが、施設の条件によっては設置が困難な場合がある。また、磁場の変化に対して敏感な電子コンパスや磁界センサは、プラント内部で使用できない場合がある。さらに、GPSおよび電子コンパスを使用する方法では、位置合わせの精度が画像ベースの位置合わせを実施できるほど高くない。
【0013】
非特許文献1、特許文献2、特許文献3のように、2次元コードを作業場所にあらかじめ配置する技術では、2次元コードを設置する手間がかかり、場所によっては設置自体が困難なこともある。例えば、プラント内は配管等が複雑に入り組んでいるため2次元コードが隠れて撮影されない場合や、2次元コードを設置した位置にしか情報が提示できないため情報定時が離散的になるという課題がある。また、稼働中の機器に関しては2次元コードを設置することが困難である。
【0014】
非特許文献2、特許文献4、特許文献5に記載されているモデルベースの方法は、CG画像とカメラ画像との照合によってカメラ位置と姿勢を推定することができるので、2次元コードやGPSなどを利用する必要がない。しかし、現実物体の3次元CADデータなどの3次元形状データをあらかじめ準備しておくことが必要となる。実際には、現実物体の3次元CADデータが存在しない場合や、例えば現場作業の仮定で設備を操作した結果として3次元CADデータが実際の形状と適合していない場合がある。このような場合には、3次元形状データを新規に作成する必要があるが、これには膨大な手間がかかる。この理由について以下に説明する。
【0015】
3次元形状データを作成するために、レーザレンジファインダなどによって実際の形状を3次元計測する方法がある。レーザレンジファインダによって現実物体の形状と色を精密に計測することができる。レーザレンジファインダによる計測データは、点群である場合が多い。すなわち、大量の点群の3次元座標と各点における色が計測される。モデルベースの方法において計測データを適用する場合には、点群データなどの3次元計測データからポリゴンなどの面データを生成する必要がある。しかし、点群データから面データへの変換には多大な工数が必要である。
【0016】
本発明は、上記のような課題に鑑みてなされたものであり、カメラが撮像した画像に基づきカメラの位置や姿勢を推定する場合において、事前に必要な作業量を削減することを目的とする。
【課題を解決するための手段】
【0017】
本発明に係る画像処理装置は、対象物上の点の位置と色を記述した点群データとカメラが撮像した画像を比較することにより、カメラの位置と姿勢を推定する。
【発明の効果】
【0018】
本発明に係る画像処理装置によれば、対象物を3次元計測することによって得られる点群データを準備しておくのみでカメラの位置や姿勢を特定できるため、GPSや電子コンパスのようなセンサが不要となり、かつ2次元コードをあらかじめ作業場所に設置する必要がなく、さらには対象物の3次元形状データ(面データ)をあらかじめ作成しておく必要がない。これにより、カメラの位置や姿勢を推定するために必要な事前の作業量を削減することができる。
【図面の簡単な説明】
【0019】
【図1】実施形態1に係る画像ネットワークシステム1000の構成を示す図である。
【図2】カメラ付端末10の機能ブロック図である。
【図3】画像処理サーバ30の機能ブロック図である。
【図4】カメラ画像11のデータフォーマットを示す図である。
【図5】カメラ情報データ13のデータフォーマットを示す図である。
【図6】点群DB31の構成を示す図である。
【図7】メッセージDB32の構成を示す図である。
【図8】画像処理サーバ30がカメラ14の位置と姿勢を推定する方法を示す模式図である。
【図9】カメラ付端末10がカメラ14の位置と姿勢を取得する手順を示すシーケンス図である。
【図10】画像処理サーバ30がカメラ14の位置と姿勢を推定する手法の詳細を示すフローチャートである。
【図11】カメラ付端末10がメッセージを表示部16に画面表示する方法を示した模式図である。
【図12】カメラ付端末10がカメラ14の撮像範囲に付随するメッセージを取得する手順を示すシーケンス図である。
【図13】点群DB31が格納している点群データをカメラ14から見た座標に変換した2次元点群データ1300のデータフォーマットを示す図である。
【図14】実施形態2において画像処理サーバ30がカメラ14の位置と姿勢を推定する手法の詳細を示すフローチャートである。
【図15】実施形態3において画像処理サーバ30がカメラ14の位置と姿勢を推定する手法の詳細を示すフローチャートである。
【図16】実施形態4に係るカメラ付端末10の機能ブロック図である。
【発明を実施するための形態】
【0020】
<実施の形態1:システム構成>
図1は、本発明の実施形態1に係る画像ネットワークシステム1000の構成を示す図である。画像ネットワークシステム1000は、カメラが撮像した画像に基づき当該カメラの位置や姿勢を推定するためのシステムであり、カメラ付端末10、画像処理サーバ30を有する。
【0021】
カメラ付端末10は、ユーザ50が保持する端末であり、例えばプラント内の設備などの対象物を撮像し、撮像した画像を基地局40経由で画像処理サーバ30に送信する。また、撮像した画像をユーザ50が確認するための表示部を備え、対象物と併せて対象物に関連するメッセージを重畳表示することもできる。カメラ付端末10の詳細構成については後述する。
【0022】
画像処理サーバ30は、カメラ付端末10から受け取った画像に基づき、カメラ付端末10が備えているカメラの位置や姿勢を推定し、カメラ付端末10に通知する。画像処理サーバ30は、本実施形態1における「画像処理装置」に相当する。画像処理サーバ30の詳細構成については後述する。
【0023】
図2は、カメラ付端末10の機能ブロック図である。カメラ付端末10は、カメラ14、通信部15、表示部16、制御部17を備える。
【0024】
カメラ14は、周辺に存在する対象物の画像を撮像してカメラ画像11を生成する。通信部15は、カメラ14が撮像した画像を画像処理サーバ30に送信し、画像処理サーバ30からメッセージデータ12とカメラ情報データ13を受け取る。表示部16は、カメラ14が撮像した画像と必要に応じて後述するメッセージを画面表示する。制御部17は、各部の動作を制御する。
【0025】
制御部17は、その機能を実現する回路デバイスのようなハードウェアを用いて構成することもできるし、CPU(Central Processing Unit)のような演算装置とその動作を規定するソフトウェアを用いて構成することもできる。
【0026】
図3は、画像処理サーバ30の機能ブロック図である。画像処理サーバ30は、点群データベース(DB)31、メッセージデータベース(DB)32、データベース管理部33、通信部34、カメラ位置姿勢推定部35、制御部36を備える。
【0027】
点群DB31は、ユーザ50が作業するプラントなどの設備をあらかじめレーザレンジファインダなどによって3次元計測することにより取得した、対象物の点群データを格納するデータベースである。点群DB31の構成については後述する。メッセージDB32は、カメラ付端末10の表示部16が撮像画像とともに表示するメッセージを格納するデータベースである。メッセージDB32の構成については後述する。
【0028】
データベース管理部33は、点群DB31とメッセージDB32に対するデータ入出力を管理する。通信部34は、カメラ付端末10からカメラ画像11を受け取り、メッセージデータ12とカメラ情報データ13をカメラ付端末10に送信する。カメラ位置姿勢推定部35は、後述する手法を用いてカメラ14の位置と姿勢を推定する。制御部36は、各機能部の動作を制御する。本実施形態1における「推定部」「メッセージ位置推定部」は、カメラ位置姿勢推定部35が相当する。
【0029】
点群DB31とメッセージDB32は、データベース内の各レコードを保持するデータファイルをHDD(ハードディスクドライブ)などの記憶装置に格納することによって構成することができる。
【0030】
データベース管理部33、カメラ位置姿勢推定部35、制御部36は、その機能を実現する回路デバイスのようなハードウェアを用いて構成することもできるし、CPUのような演算装置とその動作を規定するソフトウェアを用いて構成することもできる。
【0031】
図4は、カメラ画像11のデータフォーマットを示す図である。カメラ画像11は、カメラ14が対象物を撮像することによって取得する画像データであり、カメラIDフィールド111、取得時刻フィールド112、画像データフィールド113を有する。
【0032】
カメラIDフィールド111は、カメラ付端末10またはカメラ14が複数存在する場合に、画像処理サーバ30が個々のカメラ14を識別するためのIDである。取得時刻フィールド112は、カメラ14が対象物を撮像した日時を保持する。画像データフィールド113は、対象物の撮像データ本体部分である。
【0033】
カメラ14は、対象物を撮像して得た画像データに、自身のID(カメラ14内のレジスタ等に記録しておけばよい)と撮像年月日をそれぞれカメラIDフィールド111、取得時刻フィールド112として付与し、カメラ画像11を生成する。
【0034】
図5は、カメラ情報データ13のデータフォーマットを示す図である。カメラ情報データ13は、カメラ14の位置と姿勢を推定した結果をカメラ付端末10へ通知するためのデータであり、カメラ位置フィールド131、カメラ方向フィールド132を有する。
【0035】
カメラ位置フィールド131は、カメラ14の位置の3次元座標値を保持する。カメラ方向フィールド132は、カメラ14の姿勢を示す値を保持する。カメラ位置フィールド131は、例えばプラント設備内の所定位置を基準とする3次元座標値によって記述することができる。カメラ方向フィールド132は、X軸まわりの回転角度、Y軸まわりの回転角度、Z軸周りの回転角度によって記述することができる。その他の方法、例えば4元数などでカメラ14の姿勢を記述してもよい。
【0036】
図6は、点群DB31の構成を示す図である。点群DB31は、IDフィールド311、位置フィールド312、色フィールド313を有する。IDフィールド311は、点群DB31が保持する個々の点についてのレコードを識別するための識別子である。位置フィールド312は、対象物上の点の3次元座標値を保持する。色フィールド313は、位置フィールド312が指定する座標点の色を示す値を保持する。
【0037】
位置フィールド312は、カメラ位置フィールド131と同様に、例えばプラント設備内の所定位置を基準とする3次元座標値によって記述することができる。色フィールド313は、例えばRGB表色系によって表現することができる。
【0038】
ユーザ50は、作業場所に設置されている設備などをあらかじめレーザレンジファインダなどによって3次元計測することにより、点群DB31が保持する各レコードを作成し、点群DB31にあらかじめ格納しておく。
【0039】
図7は、メッセージDB32の構成を示す図である。メッセージDB32は、メッセージIDフィールド321、メッセージフィールド322、メッセージ位置フィールド323を有する。
【0040】
メッセージIDフィールド321は、メッセージDB32が保持する個々のレコードを識別するための識別子である。メッセージフィールド322は、表示部16上に重畳表示するメッセージであり、例えばテキストデータ、画像、工程表や作業手順などのドキュメントなどをメッセージとすることができる。メッセージ位置フィールド323は、メッセージを重畳表示すべきプラント内の位置を示す3次元座標値を保持する。メッセージ位置フィールド323が指定する位置をカメラ14が撮像しているとき、表示部16がメッセージフィールド322のメッセージを撮像画像と併せて重畳表示することを想定する。
【0041】
<実施の形態1:カメラの位置と姿勢の推定>
図8は、画像処理サーバ30がカメラ14の位置を推定する方法を示す模式図である。以下図8にしたがって、画像処理サーバ30の処理手順を説明する。
【0042】
(図8:ステップS800)
カメラ付端末10のカメラ14は、対象物を撮像して得たカメラ画像11を画像処理サーバ30へ送信する。このときカメラ付端末10は、カメラ14の位置と姿勢を推定するように、画像処理サーバ30へ併せて依頼する。
【0043】
(図8:ステップS801)
画像処理サーバ30は、点群DB31が格納している点群データと、位置および姿勢を仮に設定した仮想カメラとを用いて、仮想カメラから見た点群データのCG画像を生成する。このCG画像は、仮想カメラ情報を変更することで複数生成される。生成されたCG画像のなかには、カメラ画像11と類似する部分を有しているものが存在すると想定される。図8に示す例では、2つ目のCG画像がカメラ画像11と類似している。
【0044】
(図8:ステップS802)
画像処理サーバ30は、ステップS801で生成した各CG画像とカメラ画像11との間の類似度が最大になるような仮想カメラの位置と姿勢を求める。類似度を最大化する方法の詳細については後述する。
【0045】
(図8:ステップS803)
画像処理サーバ30は、カメラ画像11とCG画像との間の類似度を最大化する仮想カメラの位置と姿勢を、カメラ付端末10が備えるカメラ14の位置および姿勢であると推定する。画像処理サーバ30は、推定結果をカメラ付端末10へカメラ情報データ13として送信する。
【0046】
図9は、カメラ付端末10がカメラ14の位置と姿勢を取得する手順を示すシーケンス図である。以下、図9の各ステップについて説明する。
【0047】
(図9:ステップS901〜S902)
カメラ付端末10は、対象物を撮像してカメラ画像11を生成し(S901)、画像処理サーバ30へ送信する(S902)。このときカメラ付端末10は、カメラ14の位置と姿勢を推定して返信するように、画像処理サーバ30へ要求する。これらのステップは、図8のステップS800に相当する。
【0048】
(図9:ステップS903〜S904)
画像処理サーバ30は、カメラ画像11を受信すると、後述する図10の手順にしたがって、カメラ14の位置と姿勢を推定する(S903)。画像処理サーバ30は、推定結果をカメラ情報データ13としてカメラ付端末10へ返信する(S904)。これらのステップは、図8のステップS801〜S803に相当する。
【0049】
図10は、画像処理サーバ30がカメラ14の位置を推定する手法の詳細を示すフローチャートである。以下、図10の各ステップについて説明する。
【0050】
(図10:ステップS1001)
画像処理サーバ30のカメラ位置姿勢推定部35は、仮想カメラの位置と姿勢を設定する。仮想カメラの位置と姿勢は、カメラ情報データ13と同様のデータフォーマットによって設定することができる。仮想カメラの位置と姿勢の初期値は、ユーザが指定することもできるし、ジャイロや電子コンパスを用いてカメラ14の現在位置および姿勢を大まかに推定してこれを初期値とすることもできる。
【0051】
(図10:ステップS1002)
カメラ位置姿勢推定部35は、点群DB31が格納している各レコードに対して、現在の仮想カメラの位置と姿勢から見た座標となるように、座標変換および透視変換を実施する。これは、点群DB31が格納している各点群は、3次元計測を実施したときの計測装置の位置および姿勢に基づいているためである。点群DB31が格納している各点群データとカメラ14が現在撮像している画像とを対応付けるためには、点群データをカメラ14から見た座標に変換する必要がある。
【0052】
(図10:ステップS1003)
カメラ位置姿勢推定部35は、仮想カメラの撮像範囲外の点をクリッピングによって除去する。透視変換された点群データの座標がカメラ14の撮像範囲外となる場合があるため、本ステップが必要になる。
【0053】
(図10:ステップS1004)
カメラ位置姿勢推定部35は、座標変換および透視変換によって得られた点群データをポイントベースレンダリングすることにより、CG画像を生成する。点群データは対象物を撮像した画像そのものではなく、対象物上の複数点の座標と色を示すものであるため、カメラ14が撮像した画像と直接的に比較することはできない。点群データが表すドット集合と2次元画像は異なる種類のデータだからである。そこで本ステップにおいて点群データから公知のポイントベースレンダリングを用いて2次元画像を生成し、カメラ画像11と直接比較できるようにすることとした。
【0054】
(図10:ステップS1005)
カメラ位置姿勢推定部35は、カメラ付端末10から受け取ったカメラ画像11と、ステップS1004で生成したCG画像とを比較し、両者の類似度を求める。類似度は、2つの画像間の誤差の2乗平均(SSD:Sum of Squared Differences)によって求められる他、後述する相互情報量を画像間の類似度とすることができる。また、これらの値に何らかの演算を施して導出した値を類似度としてもよい。
【0055】
(図10:ステップS1006)
カメラ位置姿勢推定部35は、ステップS1005で算出した類似度が極大値に収束したか否かを判定する。類似度が収束していない場合はステップS1007に進み、収束している場合はステップS1008に進む。
【0056】
(図10:ステップS1007)
カメラ位置姿勢推定部35は、より高い類似度を得るために、仮想カメラの位置と姿勢を更新する。具体的には、例えば現在の仮想カメラの位置と姿勢を適当に変化させて新たな位置と姿勢を設定する。本ステップの後はステップS1002に戻り、同様の処理を繰り返すことにより、カメラ画像11とCG画像との間の類似度を最大化する。
【0057】
(図10:ステップS1008)
カメラ位置姿勢推定部35は、通信部34を介して、現在の仮想カメラの位置と姿勢をカメラ情報データ13としてカメラ付端末10に送信する。
【0058】
<実施の形態1:メッセージの表示>
図11は、カメラ付端末10がメッセージを表示部16に画面表示する方法を示した模式図である。以下図11に示す各ステップについて説明する。
【0059】
(図11:ステップS1101)
画像処理サーバ30は、カメラ付端末10が撮影したカメラ画像11を受け取ると、カメラ14の位置と姿勢を推定し、カメラ14の座標とおよび方向を取得する。これらのステップは、図8〜図10で説明したものと同様である。カメラ付端末10は、本ステップにおいてカメラ画像11を画像処理サーバ30に送信する際に、カメラ14の位置および姿勢と併せて、カメラ14の撮像範囲に付随するメッセージを送信するように要求することができる。
【0060】
(図11:ステップS1102)
画像処理サーバ30は、ステップS1101で求めたカメラ14の位置および姿勢に基づき、カメラ14の撮影範囲を算出する。画像処理サーバ30は、カメラ14の撮影範囲内に含まれるメッセージを、メッセージ位置フィールド323にしたがってメッセージDB32から検索する。画像処理サーバ30は、検索によって得られたメッセージの座標をカメラ14から見た座標に変換した上で、カメラ付端末10へ送信する。カメラ情報データ13を併せて送信してもよい。
【0061】
(図11:ステップS1103)
カメラ付端末10の表示部16は、カメラ14が撮像している画像に、画像処理サーバ30から受け取ったメッセージを重畳表示する(図11の画面162)。重畳表示するメッセージはカメラ14の位置座標をキーにして取得するため、物体の影に隠れた箇所に対応付けられているメッセージを重畳表示することもできる。また、カメラ14の位置をユーザ50の作業場所の地図上に画面表示することにより、ユーザ50は自身の位置を把握することができる(図11の画面161)。
【0062】
図12は、カメラ付端末10がカメラ14の撮像範囲に付随するメッセージを取得する手順を示すシーケンス図である。以下、図12の各ステップについて説明する。
【0063】
(図12:ステップS1201〜S1202)
カメラ付端末10は、対象物を撮像してカメラ画像11を生成し(S1201)、画像処理サーバ30へ送信する(S1202)。このときカメラ付端末10は、カメラ14の撮像範囲に付随するメッセージを返信するように、画像処理サーバ30へ要求する。これらのステップは、図11のステップS1101に相当する。図9のシーケンスと本シーケンスを敢えて区別せず、カメラ付端末10がカメラ画像11を画像処理サーバ30に送信するときは必ずカメラ位置とカメラ姿勢に加えて付随メッセージを返信するものとしてもよい。
【0064】
(図12:ステップS1203〜S1204)
画像処理サーバ30は、カメラ画像11を受信すると、図10の手順にしたがってカメラ14の位置と姿勢を推定する(S1203)。画像処理サーバ30は、推定したカメラ14の位置と姿勢に基づきカメラ14の撮像範囲を取得し、その撮像範囲内に含まれるメッセージをメッセージDB32から取得する。これらのステップは、図11のステップS1101後段〜S1102前段に相当する。
【0065】
(図12:ステップS1205)
画像処理サーバ30は、メッセージDB32から取得したメッセージを、ステップS1203で推定したカメラ14の位置および姿勢に基づきカメラ14から見た座標に変換した上で、カメラ付端末10に返信する。カメラ14の位置と姿勢をカメラ情報データ13として併せて送信してもよい。
【0066】
(図12:ステップS1206)
カメラ付端末10は、画像処理サーバ30から取得したメッセージを、カメラ14が撮像している画像と併せて表示部16上に重畳表示する。
【0067】
<実施の形態1:まとめ>
以上のように、本実施形態1に係る画像処理サーバ30は、カメラ14が撮像する対象物上の点の座標と色を記述する点群データを保持しており、カメラ画像11と点群データを比較することによりカメラ画像11と合致する点群データを特定し、これに基づきカメラ14の位置と姿勢を推定する。これにより、対象物を3次元測定することによって得られる点群データから3次元形状データをあらかじめ作成しておく必要がなくなるので、そのための作業負担を削減することができる。
【0068】
また、本実施形態1に係る画像処理サーバ30は、カメラ14の位置および姿勢の推定結果に基づき、カメラ14の撮像範囲に対応付けられているメッセージを特定する。カメラ付端末10は、そのメッセージを表示部16上で撮像画像と併せて重畳表示する。これにより、ユーザ50は作業場所に関連する情報を画面上で容易に把握することができる。
【0069】
<実施の形態2>
実施形態1では、点群データをポイントベースレンダリングによって2次元画像に変換した上で、カメラ画像11と比較する手法を説明した。本発明の実施形態2では、これに代えてカメラ画像11上の点と点群データを比較する手法を説明する。画像ネットワークシステム1000の構成は実施形態1と同様であるため、以下では差異点を中心に説明する。
【0070】
図13は、点群DB31が格納している点群データをカメラ14から見た座標に変換した2次元点群データ1300のデータフォーマットを示す図である。2次元点群データ1300は、点群DB31と同様に、IDフィールド1301、位置フィールド1302、色フィールド1303を有する。
【0071】
位置フィールド1302は、カメラ14から見た座標であるため、位置フィールド312とは異なり2次元座標である。座標変換によってカメラ14の撮像範囲外になったレコードをクリッピング処理によって除去するため、2次元点群データ1300のレコード数は、点群DB31のレコード数よりも少ない。
【0072】
図14は、本実施形態2において画像処理サーバ30がカメラ14の位置を推定する手法の詳細を示すフローチャートである。本フローチャートは、図10のフローチャートのうちステップS1004〜S1005がステップS1401〜S1402に置き換わったものである。以下ではこれら置き換えられたステップについて説明する。
【0073】
(図14:ステップS1401)
カメラ位置姿勢推定部35は、実施形態1のステップS1004で説明したCG画像に代えて、座標変換および透視変換によって得られた2次元点群データ1300を、カメラ画像11と比較する対象とする。
【0074】
(図14:ステップS1402)
カメラ位置姿勢推定部35は、2次元点群データ1300とカメラ画像11を比較して両者の類似度を求める。実施形態1とは異なり、2次元画像同士を比較するのではなく点同士を比較するため、類似度を算出する手法は実施形態1とは異なる。例えば以下のような手法が考えられる。
【0075】
(図14:ステップS1402:類似度の計算例その1)
カメラ位置姿勢推定部35は、2次元点群データ1300の全点を、カメラ画像11の対応する位置における輝度値と比較することにより、両者の類似度を計算する。具体的には、2次元点群データの各点の輝度と、カメラ画像11の対応する位置における輝度との間の誤差の2乗平均に基づき、両者の類似度を求めることができる。
【0076】
(図14:ステップS1402:類似度の計算例その2)
上記計算例その1において、2次元点群データ1300の位置は、必ずしも画素中心に存在していない場合がある。この場合は、公知の双1次補間または双3次補間によってカメラ画像11の輝度値を求めるようにしてもよい。
【0077】
(図14:ステップS1402:類似度の計算例その3)
カメラ位置姿勢推定部35は、2次元点群データ1300の輝度とカメラ画像11の輝度から相互情報量を求め、これを両者の類似度とすることができる。相互情報量を計算するためには、まず2次元点群データ1300の全点の輝度値と、カメラ画像11の対応する位置における画素の輝度値とから、2次元ヒストグラムを計算する。次に、その2次元ヒストグラムを用いて計算される確率密度関数を用いて、相互情報量を計算する。
【0078】
相互情報量とは、2つの事象AとBについて、事象Aが有している事象Bに関する情報量を定量化した尺度である。本発明における類似度を計算するために用いる正規化相互情報量NMI(A,B)は、事象Aと事象Bの2次元結合ヒストグラムHist(A,B)に基づき、下記式1によって求められる。
【0079】
【数1】

【0080】
H(A)は事象Aのエントロピー、H(B)は事象Bのエントロピー、H(A,B)は事象A,Bの結合エントロピーである。p(a)はaの確率密度分布、p(b)はbの確率密度分布である。p(a,b)はa,bの同時確率分布であり、Hist(A,B)から求められる。事象Aと事象Bが完全に独立である場合には、H(A,B)=H(A)+H(B)となる。事象Aと事象Bが完全に従属である場合には、H(A,B)=H(A)=H(B)となる。以上から、NMI(A,B)のとりうる範囲は1以上2以下となる。
【0081】
<実施の形態2:まとめ>
以上のように、本実施形態2に係る画像処理サーバ30は、座標変換および透視変換によって得られた2次元点群データ1300とカメラ画像11を比較する。この方法は点群データをレンダリングしてCG画像を生成する実施形態1と比較すると、点群データの密度が小さいためCG画像を適切にレンダリングできない場合でも適用できるという利点がある。
【0082】
<実施の形態3>
本発明の実施形態3では、カメラ画像11の特徴点/特徴線と点群データの特徴点/特徴線を比較することにより、両者の類似度を求める手法を説明する。画像ネットワークシステム1000の構成は実施形態1〜2と同様であるため、以下では差異点を中心に説明する。
【0083】
図15は、本実施形態3において画像処理サーバ30がカメラ14の位置を推定する手法の詳細を示すフローチャートである。本フローチャートは、図10のフローチャートの前段処理としてステップS1501〜S1502が追加され、ステップS1002、S1004、S1005がステップS1503、S1504、S1505に置き換わったものである。以下ではこれらステップについて説明する。
【0084】
(図15:ステップS1501)
画像処理サーバ30のカメラ位置姿勢推定部35は、カメラ14の位置と姿勢を推定する処理を実施する前に、点群DB31に格納されている点群データから3次元特徴点および3次元特徴線を抽出し、3次元特徴線/特徴点データを作成しておく。この処理は点群データに対する自動的なフィルタ処理によって実施してもよいし、ユーザが対話的に特徴線/特徴点を与えてもよい。特徴点は3次元座標によって表現し、特徴線は3次元空間上の折れ線によって表現することができる。
【0085】
(図15:ステップS1502)
カメラ位置姿勢推定部35は、カメラ画像11をカメラ付端末10から受け取ると、類似度計算を実施する前に、カメラ画像11の2次元特徴点および2次元特徴線を抽出し、カメラ画像特徴線/特徴点データを作成しておく。
【0086】
(図15:ステップS1503)
カメラ位置姿勢推定部35は、3次元特徴線/特徴点データに対して、ステップS1002と同様の座標変換および透視変換を実施する。これにより、3次元特徴線/特徴点データはカメラ14から見た2次元の特徴線/特徴点データとなる。
【0087】
(図15:ステップS1504〜S1505)
カメラ位置姿勢推定部35は、実施形態1のステップS1004で説明したCG画像に代えて、座標変換および透視変換によって得られた2次元特徴線/特徴点データを、カメラ画像11から生成したカメラ画像特徴線/特徴点データと比較する(S1504)。両者の類似度は、特徴点であれば特徴点間の距離、特徴線であれば特徴線間の距離を用いて求められる。カメラ位置姿勢推定部35は、特徴線/特徴点の類似度またはこれらから算出した数値を、カメラ画像11と点群データの類似度とする。
【0088】
<実施の形態3:まとめ>
以上のように、本実施形態3に係る画像処理サーバ30は、カメラ画像11から抽出した特徴線/特徴点と、点群データから抽出した特徴線/特徴点とを比較することにより、カメラ画像11と点群データの類似度を算出する。この方法は、比較対象がすべての点群ではないため、計算時間を短縮できる利点がある。また、特徴線/特徴点を抽出することが容易な対象に対しては、類似度をロバストに計算できる。ただし、類似度を計算する前に対象物の3次元計測データから特徴線/特徴点を事前に求めておく必要がある。また、カメラ画像11から特徴線/特徴点を求める必要がある。
【0089】
<実施の形態4>
図16は、本発明の実施形態4に係るカメラ付端末10の機能ブロック図である。本実施形態4に係るカメラ付端末10は、実施形態1の図2で説明した構成に加えて、画像処理サーバ30が備える点群DB31、メッセージDB32、データベース管理部33、カメラ位置姿勢推定部35を備える。制御部17は、これら各機能部を制御する。本実施形態4に係るカメラ付端末10は、本実施形態4における「画像処理装置」に相当する。
【0090】
本実施形態4に係るカメラ付端末10は、画像処理サーバ30の機能を兼ねており、画像処理サーバ30と通信しなくともカメラ14の位置と姿勢を自身で推定することができる。また、カメラ14の撮像範囲に対応付けられているメッセージDB32内のメッセージを自ら検索することができる。したがって、通信部は必ずしも必要でない。
【0091】
本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。上記実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることもできる。また、ある実施形態の構成に他の実施形態の構成を加えることもできる。また、各実施形態の構成の一部について、他の構成を追加・削除・置換することもできる。
【0092】
上記各構成、機能、処理部、処理手段等は、それらの一部や全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記録装置、ICカード、SDカード、DVD等の記録媒体に格納することができる。
【符号の説明】
【0093】
10:カメラ付端末、11:カメラ画像、12:メッセージデータ、13:カメラ情報データ、14:カメラ、15:通信部、16:表示部、17:制御部、30:画像処理サーバ、31:点群データベース、32:メッセージデータベース、33:データベース管理部、34:通信部、35:カメラ位置姿勢推定部、36:制御部、40:基地局、50:ユーザ、1000:画像ネットワークシステム。

【特許請求の範囲】
【請求項1】
カメラが撮像した対象物の画像を取得する画像取得部と、
前記対象物上の点の位置と色を記述する点群データを格納する点群データベースと、
前記画像と前記点群データを比較して前記画像に合致する前記点群データを特定することにより前記カメラの位置と姿勢を推定する推定部と、
を備えたことを特徴とする画像処理装置。
【請求項2】
前記推定部は、
前記点群データを用いて前記点群データが記述している前記対象物の2次元画像をレンダリングし、
前記レンダリングによって生成した前記2次元画像と前記カメラが撮像した前記画像を比較することにより、前記画像に合致する前記点群データを特定する
ことを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記推定部は、
前記点群データが記述している座標を前記カメラから見た座標に変換し、
前記変換によって得られた変換後の前記点群データと、前記点群データに対応する前記画像上の点とを比較することにより、前記画像に合致する前記点群データを特定する
ことを特徴とする請求項1記載の画像処理装置。
【請求項4】
前記推定部は、
前記点群データから特徴線または特徴点を抽出するとともに、前記画像から特徴線または特徴点を抽出し、
前記点群データから抽出した特徴線または特徴点と、前記画像から抽出した特徴線または特徴点とを比較することにより、前記画像に合致する前記点群データを特定する
ことを特徴とする請求項1記載の画像処理装置。
【請求項5】
前記カメラが撮像している画像に重畳表示すべきメッセージとその表示位置を記述するメッセージデータを格納するメッセージデータベースと、
前記推定部が推定した前記カメラの位置と姿勢に応じて、前記メッセージを前記カメラが撮像している画像に重畳表示すべき位置を特定し、その位置およびその位置に重畳表示すべきメッセージを前記カメラに通知するメッセージ位置推定部と、
を備えたことを特徴とする請求項1記載の画像処理装置。
【請求項6】
前記推定部は、
前記画像と前記点群データとの間の差異の2乗平均、または前記画像と前記点群データとの間の相互情報量に基づき、前記画像と前記点群データとの間の類似度を算出し、前記類似度にしたがって前記画像に合致する前記点群データを特定する
ことを特徴とする請求項1記載の画像処理装置。
【請求項7】
前記推定部は、
前記点群データが記述している座標を、推定した前記カメラの位置と姿勢から見た座標に変換し、前記変換によって得られた変換後の前記点群データと前記画像との間の前記類似度を算出し、
前記類似度が極大値に収束するまで前記変換と前記類似度を算出する処理を繰り返し、前記類似度が収束した時点における前記推定の結果を、前記カメラの位置と姿勢の最終的な推定結果とする
ことを特徴とする請求項6記載の画像処理装置。
【請求項8】
対象物の画像を撮像するカメラと、
前記対象物上の点の位置と色を記述する点群データを格納する点群データベースと、
前記画像と前記点群データを比較して前記画像に合致する前記点群データを特定することにより前記カメラの位置と姿勢を推定する推定部と、
を備えたことを特徴とする画像処理装置。
【請求項9】
前記推定部は、
前記点群データを用いて前記点群データが記述している前記対象物の2次元画像をレンダリングし、
前記レンダリングによって生成した前記2次元画像と前記カメラが撮像した前記画像を比較することにより、前記画像に合致する前記点群データを特定する
ことを特徴とする請求項8記載の画像処理装置。
【請求項10】
前記推定部は、
前記点群データが記述している座標を前記カメラから見た座標に変換し、
前記変換によって得られた変換後の前記点群データと、前記点群データに対応する前記画像上の点とを比較することにより、前記画像に合致する前記点群データを特定する
ことを特徴とする請求項8記載の画像処理装置。
【請求項11】
前記推定部は、
前記点群データから特徴線または特徴点を抽出するとともに、前記画像から特徴線または特徴点を抽出し、
前記点群データから抽出した特徴線または特徴点と、前記画像から抽出した特徴線または特徴点とを比較することにより、前記画像に合致する前記点群データを特定する
ことを特徴とする請求項8記載の画像処理装置。
【請求項12】
前記カメラは、前記カメラが撮像している画像を画面表示する表示部を備え、
前記表示部に重畳表示すべきメッセージとその表示位置を記述するメッセージデータを格納するメッセージデータベースと、
前記推定部が推定した前記カメラの位置と姿勢に応じて、前記メッセージを前記カメラが撮像している画像に重畳表示すべき位置を特定し、その位置およびその位置に表示すべきメッセージを前記表示部に通知するメッセージ位置推定部と、
を備え、
前記表示部は、前記メッセージ位置推定部から受け取った前記メッセージの位置にそのメッセージを前記画像に重ねて表示する
ことを特徴とする請求項8記載の画像処理装置。
【請求項13】
前記推定部は、
前記画像と前記点群データとの間の差異の2乗平均、または前記画像と前記点群データとの間の相互情報量に基づき、前記画像と前記点群データとの間の類似度を算出し、前記類似度にしたがって前記画像に合致する前記点群データを特定する
ことを特徴とする請求項8記載の画像処理装置。
【請求項14】
前記推定部は、
前記点群データが記述している座標を、推定した前記カメラの位置と姿勢から見た座標に変換し、前記変換によって得られた変換後の前記点群データと前記画像との間の前記類似度を算出し、
前記類似度が極大値に収束するまで前記変換と前記類似度を算出する処理を繰り返し、前記類似度が収束した時点における前記推定の結果を、前記カメラの位置と姿勢の最終的な推定結果とする
ことを特徴とする請求項13記載の画像処理装置。
【請求項15】
カメラが撮像した対象物の画像を取得するステップと、
前記対象物上の点の位置と色を記述する点群データを取得するステップと、
前記画像と前記点群データを比較して前記画像に合致する前記点群データを特定することにより前記カメラの位置と姿勢を推定するステップと、
を有することを特徴とする画像処理方法。

【図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

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2013−109624(P2013−109624A)
【公開日】平成25年6月6日(2013.6.6)
【国際特許分類】
【出願番号】特願2011−254927(P2011−254927)
【出願日】平成23年11月22日(2011.11.22)
【出願人】(000005452)株式会社日立プラントテクノロジー (1,767)
【Fターム(参考)】