JP2024077802A - 画像処理装置、画像処理方法およびプログラム - Google Patents

画像処理装置、画像処理方法およびプログラム Download PDF

Info

Publication number
JP2024077802A
JP2024077802A JP2022189967A JP2022189967A JP2024077802A JP 2024077802 A JP2024077802 A JP 2024077802A JP 2022189967 A JP2022189967 A JP 2022189967A JP 2022189967 A JP2022189967 A JP 2022189967A JP 2024077802 A JP2024077802 A JP 2024077802A
Authority
JP
Japan
Prior art keywords
model
image processing
image
unit
processing device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022189967A
Other languages
English (en)
Inventor
和樹 武本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Publication of JP2024077802A publication Critical patent/JP2024077802A/ja
Pending legal-status Critical Current

Links

Images

Abstract

Figure 2024077802000001
【課題】体験者によるCGモデルを用いた作業が可能な位置へのCGモデルの再配置をより効率よく行うことができるようにする。
【解決手段】推奨領域決定部250は、記憶部210が保持するマップデータに格納されている各キーフレームにおいて、それぞれ1枚の撮影画像に映る特徴点の数、分散値およびマーカー数に基づいた信頼度を算出し、最も信頼度の高いキーフレームを特定する。そして、レイアウト補正部260は、CGモデルの形状に基づいてバウンディングボックスを設定し、選択されたキーフレームの画像中心にCGモデルの重心位置が投影されるように配置情報を更新する。
【選択図】図1

Description

本発明は、特に、初期に配置されたCGモデルを適切な場所へ配置するために用いて好適な画像処理装置、画像処理方法およびプログラムに関する。
従来、表示デバイスの動きに応じてCGモデルを描画する仮想現実感や複合現実感を提示するシステムが知られている。このようなシステムでは、CGモデルを作成した際に決定されたCGモデル独自の座標系の設定値のまま、基準座標系上にCGモデルが初期表示される。ただし、CGモデル作成時の独自の座標系(以下、ローカル座標系と呼称する)での配置位置は、CGモデル作成時の都合で決定されるため、仮想現実感または複合現実感で提示するのに適した場所とは異なる場所にCGモデルが配置されることが多い。したがって、CGモデルが初期に配置される位置によっては、CGモデルの再配置に多くの手間がかかってしまう場合がある。
そこで、CGモデルを再配置する手間という課題に対し、従来は、特定の瞬間の表示デバイスの視野内にCGモデル全体が表示されるように、CGモデルの位置姿勢とスケールを調整する機能が提供されている。また、特許文献1には、現実空間を観測して得られた環境マップから平面または曲面を有する物体の位置を決定し、その位置にCGモデルを設定して表示する方法が開示されている。
特開2011-203824号公報
しかしながら、特許文献1に記載の方法では、平面または曲線上の所定の場所にCGモデルを配置することはできるが、その場所がカメラの位置姿勢を推定するのに適した場所ではない場合がある。そのような場合にはCGモデルを配置した後に位置姿勢の推定誤差に起因してCGモデルが揺れるような現象が発生する。この現象が起こると、体験者はCGモデルを用いた作業検証を行うことができないため、CGモデルを再配置するなど、体験者が安定してCGモデルを観察またはCGモデルを用いた作業検証ができるようにするまで多くの手間がかかってしまう。
本発明は前述の問題点に鑑み、体験者によるCGモデルを用いた作業が可能な位置へのCGモデルの再配置をより効率よく行うことができるようにすることを目的としている。
本発明に係る画像処理装置は、撮像手段が撮像する現実空間に配置して表示させるためのCGモデルの配置情報を管理する管理手段と、前記撮像手段の位置姿勢を推定するために用いられる指標が所定の条件を満たす領域を特定する特定手段と、前記特定手段によって特定された領域でCGモデルが表示されるように前記管理手段によって管理されている前記CGモデルの配置情報を補正する補正手段と、を備えることを特徴とする。
本発明によれば、体験者によるCGモデルを用いた作業が可能な位置へのCGモデルの再配置をより効率よく行うことができる。
第1の実施形態の画像処理装置の機能構成例を示すブロック図である。 第1の実施形態における画像処理装置のハードウェア構成例を示すブロック図である。 CGモデルを重畳した画像を表示する処理手順の一例を示すフローチャートである。 CGモデルを配置する位置を補正する詳細な処理手順の一例を示すフローチャートである。 体験者とCGモデルとの関係を示す模式図である。 マーカーおよびパターンが配置された部屋の例を示す図である。 マーカーおよびパターンが配置された部屋から特徴点が抽出された状態を説明するための図である。 カメラを移動させた軌跡を説明するための図である。 信頼度の高いキーフレームの位置を説明するための図である。 キーフレームごとの分散度、特徴点数およびマーカー数を説明するための図である。 CGモデルのレイアウトを補正した結果の例を示す図である。 カメラとCGモデルとの間の距離を算出する様子を説明するための図である。 HMDの表示部に表示される確認画面の一例を示す図である。 第2の実施形態の画像処理装置の機能構成例を示すブロック図である。 接触痕が中心になるようにCGモデルのレイアウトを補正した結果の例を示す図である。 CGモデルが初期に設置される位置を説明するための図である。 第3の実施形態におけるCGモデルの配置の補正方法を説明するための模式図である。
(第1の実施形態)
以下、本発明の第1の実施形態について、図面を参照しながら説明する。本実施形態では、撮像部から入力された画像に基づいて撮像部の位置姿勢を推定し、得られたマップ情報からCGモデルの配置を適正化する画像処理装置について詳細に説明する。
図2は、本実施形態における画像処理装置100のハードウェア構成例を示すブロック図である。
図2において、CPU901は、ROM902に記憶された制御プログラムを読み出して各種処理を実行する。RAM907は、CPU901の主メモリ、ワークエリア等の一時記憶領域として用いられる。外部記憶装置906は、各種データや各種プログラム等を記憶する。また、記憶媒体I/F905は、SDカードなど着脱可能な記憶媒体と接続するためのインターフェースである。操作部908は、ユーザーによる各種操作を受け付ける。
通信I/F903は、有線または無線により外部装置と通信処理を行うためのインターフェースである。HMD(Head Mounted Display)180は、撮影画像とCGモデルとを合成した合成画像を、HMD180に内蔵されている表示部に表示する。撮像部103はHMD180と一体に構成されており、撮影画像を取得する。バス910はこれらの構成を接続するためのバスである。
なお、後述する画像処理装置100の機能や処理は、CPU901がROM902又は外部記憶装置906に格納されているプログラムを読み出し、このプログラムを実行することにより実現されるものである。また、他の例としては、CPU901は、ROM902等に替えて、SDカード等の記憶媒体に格納されているプログラムを読み出してもよい。
図1は、本実施形態の画像処理装置100の機能構成例を示すブロック図である。以下、図5に示すように、体験者590がHMD180に内蔵されている表示部を通して、撮像部103の撮影画像上に投影されたドア部CGモデル500と工具CGモデル510との合成映像を見る例について説明する。
図1(a)において、撮像部103は、例えば、シーンを撮影するカメラであり、カラーカメラでもよく、モノクロカメラでもよい。また、撮像部103には、HMD180にステレオ映像を提示するためのステレオカメラを用いてもよい。撮像部103は、撮像部103で撮影した撮影画像を画像取得部105に出力する。画像取得部105は、撮像部103が撮影した撮影画像を取得し、RAM907に保持するとともに、取得した撮影画像をHMDデータ管理部130に出力する。
HMDデータ管理部130は、HMD180から取得した情報、およびHMD180に提示するべき情報を管理するモジュールである。ここで、HMDデータ管理部130が保持する情報は、撮像部103から取得した撮影画像、撮像部103のカメラ位置姿勢、焦点距離や主点などの撮像部103の内部パラメータが含まれる。また、HMDデータ管理部130は、位置姿勢の推定に必要なマップデータや、シーンに配置されたマーカーの配置情報も管理している。さらにHMDデータ管理部130は、手持ち物体の位置姿勢、CGモデルの幾何情報(3次元ポリゴンの頂点、エッジ情報、テクスチャ画像を含む)、CGモデルの配置情報(基準座標系におけるCGモデルごとの位置姿勢を含む)といった情報も管理している。なお、撮像部103がステレオカメラの場合は、ステレオカメラに関する情報を各カメラ個別の情報として保持すればよい。
ここで、位置姿勢の推定に必要なマップデータについて説明する。マップデータには、例えば、過去の撮影画像に基づくデータ(以下、キーフレームと呼称する)に関する情報が含まれている。具体的には、キーフレームのID、キーフレームに対応付けられたカメラ位置姿勢、およびキーフレームに対応付けられた撮影画像の情報が含まれる。さらに、マップデータには、キーフレームの撮影画像に関する情報として、キーフレームの撮影画像から抽出した特徴点の数およびその座標、キーフレームの撮影画像の特徴点の画像上の分散値といった情報も含まれている。なお、特徴点の画像上の分散値には、例えば、キーフレームの撮影画像を10×10の画像ブロックに分割し、画像ブロック内に特徴点がある領域の数を全体の数で割った値に100を掛けた数値を用いればよい。
また、マップデータには、キーフレームに映るマーカー数や、キーフレームの信頼度といった情報も含まれている。なお、マーカーの検出には、ArUcoなどの識別IDを持つ矩形のマーカー検出処理を利用すればよい。すなわち、画像から矩形領域を検出し、矩形領域内に配置されているビットパターンをホモグラフィ変換して識別してIDと矩形の4頂点の画像座標を出力する方法である。また、キーフレームの信頼度は、特徴点数、分散値、マーカー数から求める位置合わせ誤差の可能性を表す指標として用いられる。キーフレームの信頼度の詳細については後述する。
さらに、マップデータには、抽出した特徴点を複数のキーフレームの撮影画像間で対応付けを行ってユニークに付与した特徴点IDが含まれている。また、対応付けを行った同一のID同士の特徴点を、各キーフレームのカメラ位置姿勢に基づいて三角測量して求めた特徴点の3次元座標(X,Y,Z)、シーンに配置されたマーカーの配置情報もマップデータに含まれている。
HMDデータ管理部130は、撮像部103から連続して出力された撮影画像において、推定した位置情報に基づいて所定の距離間隔で特徴点を抽出して保存し、マップデータとして蓄積する。例えば、図6に示すように、部屋の床にマーカー630、635が配置され、位置合わせに使用するパターン610が壁に配置され、部屋の奥に什器620が配置されるシーンでは、図7に示すような特徴点600が撮影画像から抽出されるものとする。このとき、特徴点の抽出は、例えばShi-Tomasi法を用いる。すなわち、画像の所定のブロック内の縦と横の輝度変分が大きくなる交点を探索して特徴点を抽出する。
また、キーフレームの信頼度は、同じキーフレームの特徴点数、分散値、マーカー数に基づく、後述する位置姿勢推定部140で推定するカメラ位置姿勢の推定値の誤差の小ささを表す指標である。例えば、1枚の撮影画像に映る特徴点の数が200点を適正とすると、キーフレームの特徴点数から200を割った値を特徴点の信頼度とする。同様に分散値も閾値(例えば70)を設定し、キーフレームの分散値から閾値を割った値を分散値の信頼度とする。マーカー数に関しても、同様にキーフレームのマーカー数から閾値(例えば1個)を割った値をマーカーの信頼度とする。そして、キーフレームの信頼度は、特徴点、分散値、マーカー数の個別の信頼度を足し合わせた数値を使用する。
位置姿勢推定部140は、HMDデータ管理部130に格納されたマップデータと、取得した撮影画像、マーカーの配置情報に基づいて、現在の撮像部103のカメラ位置姿勢を推定する。カメラ位置姿勢を推定する方法としては、位置姿勢推定部140は、例えば、自己位置姿勢推定方法の一つであるORBSLAMを用いればよい。具体的には、まず、入力された現在の撮影画像に含まれる画像特徴のブロックの特徴を一番多く含む過去の撮影画像(参照画像)を決定する。続いて、参照画像の特徴点と現在の撮影画像の特徴点との対応付けを行い、参照画像のカメラ位置姿勢の3次元特徴点と現在の撮影画像の特徴点との対応から、現在のカメラ位置姿勢を推定する。
なお、カメラ位置姿勢を推定する方法はORBSLAMに限定するものではなく、マップデータを作成・参照してカメラ位置姿勢を推定する方法であれば、どのような方法を適用してもよい。
ここで、撮影画像内の特徴点が少なかったり、一部のみに特徴点が偏っていたりする状況では、位置姿勢の推定に誤差が生じる、または、カメラの位置姿勢が推定できない状況に陥る可能性がある。カメラ位置姿勢の推定に誤差が生じたり、カメラ位置姿勢自体を推定できなかったりする場合は、CG描画部170でドア部CGモデル500を描画する位置にずれが生じたりドア部CGモデル500を描画できなかったりする状態となる。そのため、体験者590は検証したい作業ができない状況となる。そこで、位置姿勢推定部140は、マーカーを検出する機能を備えている。これにより、特徴点が少ない状況や特徴点に偏りがある場面でも、マーカーから推定したカメラ位置姿勢の推定情報と統合することで、カメラ位置姿勢の誤差を低減することができる。
CG描画部170は、HMDデータ管理部130で管理されている項目に基づいて、撮影画像を背景にCGモデルをレンダリングした画像を生成する。具体的には、撮影画像、カメラ位置姿勢、撮像部103の内部パラメータ、CGモデルの幾何情報、およびCGモデルの配置情報に基づいて撮影画像にCGモデルを合成した画像を生成し、合成した画像をHMD180に出力する表示制御を行う。なお、HMD180の表示部がステレオディスプレイの場合は、左右の画像を個別に生成し、対応するディスプレイに表示すればよい。
HMD180は、CG描画部170で生成した映像を体験者590に提示するディスプレイである。本実施形態では、体験者590の頭部に装着するHMDを例示しているが、HMDに表示することに限定されるものではなく、カメラ付きのスマートフォンや、カメラ付きのタブレット・ノートパソコンなどのディスプレイにも適用可能である。
データ管理部195は、HMDデータ管理部130で管理されているCGモデルの配置情報、CGモデルの幾何情報、手持ち物体の位置姿勢、およびマップデータを参照し、CGモデルに関するレイアウト補正と接触判定を行う。なお、データ管理部195は、CGモデルの変形や表示・消去などの制御など、他の操作を取り扱うようにしてもよい。
続いて、データ管理部195の詳細な構成について説明する。図1(b)は、データ管理部195の詳細な機能構成例を示すブロック図である。
記憶部210は、HMDデータ管理部130が管理するCGモデルの配置情報、CGモデルの幾何情報、手持ち物体の位置姿勢、およびマップデータを保持し、HMDデータ管理部130で更新された情報を逐次同期する。
接触判定部230は、記憶部210が保持するCGモデルの幾何情報、CGモデルの配置情報、手持ち物体の位置姿勢に基づいて、体験者590の持つ工具CGモデル510がドア部CGモデル500に接触するか否かを判定する。そして、接触が起こった場合は、接触判定部230が、体験者590に接触したことを通知するため、図5に示すような接触痕520を新たなCGモデルとして生成し、記憶部210が保持するCGモデルの配置情報、CGモデルの幾何情報を更新する。記憶部210で更新されたデータは、HMDデータ管理部130に逐次送信され、更新された情報に基づいて、HMD180に接触痕520が表示される。なお、本実施形態では、接触判定を行う例について説明したが、体験者590がドア部CGモデル500を視認して検証を行う作業であれば、それ以外の判定を行ってもよい。
レイアウト監査部240は、記憶部210が保持するマップデータ、CGモデルの配置情報、CGモデルの幾何情報を用いて、ドア部CGモデル500が体験者590に対して適正な位置に配置されているか否かを判定する。例えば、図16に示すように、複合現実感を体験するシーンにおいて、体験者590が期待する場所にドア部CGモデル500が表示されず、体験者590が想定していない什器620の近傍に配置されてしまう状況が考えられる。このような場合、まず、ドア部CGモデル500が配置された場所が体験者590の視野に入らず、探すための手間が発生する。続いて、ドア部CGモデル500を視認して作業するために、図16に示す位置に配置されたドア部CGモデル500に近づくと、図10(a)に示すような特徴点が少ない撮影画像が入力される。このため、位置姿勢推定部140で出力されるカメラ位置姿勢の誤差が増加する。さらに、ドア部CGモデル500と体験者590の持つ工具CGモデル510との接触判定を検証しようとしても、什器620に体験者590の手が衝突して正しく検証できない。
これらの課題を解決するために、レイアウト監査部240では、レイアウトを補正する条件を設定し、レイアウト補正が必要か否かを判定する。ここで、ドア部CGモデル500の読み出しが完了した後に1分間、体験者590の視野にドア部CGモデル500が映らない場合は、レイアウトを補正する条件に該当する。また、レイアウト監査部240は、記憶部210が保持するマップデータが持つ過去の画像ごとの位置姿勢と撮像部103の内部パラメータとからドア部CGモデル500が映りこむキーフレームを特定する。そして、キーフレーム信頼度が2.00を超えない場合はレイアウトを補正する条件に該当するものとする。さらに、ドア部CGモデル500が映りこむキーフレームを特定し、ドア部CGモデル500よりもカメラ視点の手前に3次元特徴点が一定数以上存在する場合も、レイアウトを補正する条件に該当する。
なお、レイアウト監査部240は、個別に条件を設定して補正の要否を決定してもよく、上記の3つの判定条件の組み合わせによって補正の要否を決定してもよい。また、上記の3つの判定条件以外に、体験者590の作業を妨げる要因を検知する他の判定方法を適用して補正の要否を決定してもよい。レイアウト監査部240は、レイアウトの補正が必要だと判定した場合は、推奨領域決定部250でドア部CGモデル500を配置するべき場所を特定する。
推奨領域決定部250は、記憶部210が保持するマップデータから、位置合わせの信頼度を計算し、現時点で一番信頼度が高いキーフレームを選択し、レイアウト補正部260にキーフレーム情報を送付する。ここで、図6に示すようなシーンにおいて、図8に示すように、撮像部103を移動させた場合の処理を説明する。図8は、図6のシーンの上面から見た場合の概要を示す模式図である。図8において、軌跡850は、撮像部103の移動の軌跡を示している。また、撮像部103の軌跡850上にある位置811、813、815、817、819はキーフレームの位置を表している。
推奨領域決定部250は、マップデータ内の各キーフレームの信頼度を算出する。ここで、図8の位置815、817、819でのキーフレームの信頼度を算出する例について説明する。図10(a)~図10(c)は、それぞれ位置815、817、819で撮影した画像を示しており、各キーフレームにおける撮影画像の上に特徴点を重ね合わせた図を示している。
前述したように、1枚の撮影画像に映る特徴点の数は200点を適正とし、分散値の閾値を70に設定し、マーカー数に関する閾値を1に設定する。この場合、例えば、位置815におけるキーフレームの場合、分散値の信頼度は30/70=0.42で、特徴点の信頼度は21/200=0.11で、検出マーカー数の信頼度は1/1=1.00となる。したがって、位置815のキーフレームの信頼度は、0.42+0.11+1.00=1.53と算出される。同様の計算方法により、位置817のキーフレームの信頼度は1.59(1.14+0.45+0)、位置819のキーフレームの信頼度は2.33(0.93+0.40+1.00)となる。この場合、図9に示すように、位置819のキーフレームが位置合わせに適正なキーフレームであると判定される。
推奨領域決定部250は、以上の手順によって最も信頼度の高いキーフレームを選択し、レイアウト補正部260に適正なキーフレームの情報を送付する。なお、キーフレームの信頼度の計算方法については特に限定されるものではなく、ドア部CGモデル500の位置合わせの誤差を表す尺度として算出されるものであれば、どのように信頼度を計算してもよい。また、本実施形態では、特徴点の数や分散値が大きいほど信頼度が高くなる傾向にあるため、特徴点が明らかに少ないキーフレームの情報はマップデータから削除するようにしてもよい。
レイアウト補正部260は、ドア部CGモデル500の代表点(例えば、3次元モデルの3次元頂点の平均位置を表す重心位置)が画像の中心と重なるように配置する。例えば、推奨領域決定部250により最も信頼度の高いキーフレームとして位置819のキーフレームが選択された場合、レイアウト補正部260は、図10(c)に示す画像にドア部CGモデル500を配置する。このとき、レイアウト補正部260は、図11に示すように、ドア部CGモデル500の代表点が画像中心1100と重なるように配置する。
ただし、この段階では、画像中心1100はキーフレームに対する距離情報がないため、3次元位置での配置場所は確定できない。そこで、3次元位置を確定するために、レイアウト補正部260は、適正なキーフレームの画像の中心位置とキーフレームのカメラ原点を結ぶベクトルを算出する。図12は、位置819に関するマップ点とドア部CGモデル500の形状情報とからドア部CGモデル500の配置の補正方法を説明するための模式図である。図12(a)は、位置819を上面から見た図を示し、図12(b)は、位置819を左側面から見た図を示す。
レイアウト補正部260は、まず、位置819から30cmの距離を初期値として、ドア部CGモデル500を配置する。そして、30cm離れた位置で、位置819の3次元特徴点とドア部CGモデル500の領域とが交差しないか否かを判定する。ドア部CGモデル500の領域は、例えば図12(a)及び図12(b)に示すようなドア部CGモデル500を囲むバウンディングボックス1220で定義する。交差しない場合は、位置819からの距離を1cm間隔で段階的に遠くに設定し、ドア部CGモデル500の領域が3次元特徴点と交差するか否かの検証を繰り返す。ドア部CGモデル500が3次元特徴点と交差した場合は、そのひとつ前の距離を適正な距離1210として決定し、ドア部CGモデル500の3次元位置の補正後の位置を決定する。レイアウト補正部260は、ドア部CGモデル500の補正後の位置について、記憶部210が保持するドア部CGモデル500の配置情報を更新し、HMDデータ管理部130に同期させる。
次に、図3のフローチャートを参照しながら本実施形態の処理の詳細について説明する。図3は、本実施形態において、CGモデルを重畳した画像を表示する処理手順の一例を示すフローチャートである。以下、図5に示すように、体験者590が撮像部103の撮影画像上に投影されたドア部CGモデル500と工具CGモデル510との合成映像を見る例について説明する。
まず、ステップS300において、HMDデータ管理部130は、記憶部210からドア部CGモデル500および工具CGモデル510の幾何情報を読み出し、HMDデータ管理部130内に保持する。
続いてステップS320において、画像取得部105は、撮像部103から撮影画像を受信し、HMDデータ管理部130は、撮影画像として保持する。
次に、ステップS330において、位置姿勢推定部140は、マップデータと入力された撮影画像とを用いて、撮像部103のカメラ位置姿勢を推定する。
ステップS340において、CG描画部170は、HMDデータ管理部130に保持されているデータに基づいてドア部CGモデル500および工具CGモデル510を描画する。
ステップS350において、CG描画部170は、HMDデータ管理部130に保持されているデータに基づいて、入力された撮影画像とステップS340で描画したドア部CGモデル500および工具CGモデル510とを合成する。そして、CG描画部170は、合成した画像をHMD180に出力する。
ステップS360において、HMDデータ管理部130は、位置姿勢推定部140が推定したカメラ位置がマップデータに格納されたキーフレームのカメラ位置から一定距離以上離れているか否かを判定する。そして、一定距離以上離れている場合に、マップデータに新たなキーフレームとして情報を追加し、記録する。また、データ管理部195は、マップデータの更新に伴い、記憶部210に保持されている情報を更新する。
ステップS365において、データ管理部195の接触判定部230は、記憶部210が保持するデータに基づいて、ドア部CGモデル500と工具CGモデル510との間で接触判定を行う。
ステップS370において、データ管理部195は、記憶部210の情報に基づいてドア部CGモデル500のレイアウト補正の有無を検知し、必要に応じてドア部CGモデル500のレイアウトを補正する処理を行う。処理の詳細は後述する。
ステップS380において、HMDデータ管理部130が、体験者590からの終了指示があるか否かを判定する。終了指示があった場合は処理を終了する。終了指示がなかった場合は、ステップS320に処理を移し、新たな撮影画像を用いて処理を継続する。
図4は、ステップS370の詳細な処理手順の一例を示すフローチャートである。
ステップS410において、レイアウト監査部240は、記憶部210が保持するマップデータから、ドア部CGモデル500が映りこむキーフレームを特定する。
ステップS415では、レイアウト監査部240は、ドア部CGモデル500が体験者590に対して適正な位置に配置されているか否かを判定する。この処理では、前述したように、ドア部CGモデル500が映りこむキーフレームの信頼度が2.00を超えない場合は、ドア部CGモデル500が適正な位置に配置されていないと判定する。また、ドア部CGモデル500よりもカメラ視点の手前に3次元特徴点が一定数以上存在する場合も同様に、ドア部CGモデル500が適正な位置に配置されていないと判定する。この判定の結果、ドア部CGモデル500が適正な位置に配置されている場合は、レイアウトの補正は不要であるため、処理を終了する。一方、ドア部CGモデル500が適正な位置に配置されていない場合は、レイアウトの補正が必要であるため、ステップS420に処理を移す。
ステップS420においては、推奨領域決定部250は、記憶部210が保持するマップデータに格納されている各キーフレームからキーフレームごとの信頼度を算出する。
ステップS430では、推奨領域決定部250は、ステップS420で算出したキーフレームの信頼度が一番高いキーフレームを選択する。
ステップS440では、レイアウト補正部260は、ドア部CGモデル500の形状に基づいてバウンディングボックス1220を設定し、選択されたキーフレームの画像中心1100にドア部CGモデル500の重心位置が投影されるように配置を調整する。
ステップS450では、レイアウト補正部260は、選択されたキーフレームのカメラ位置からドア部CGモデル500までの距離を決定する。そして、レイアウト補正部260は、補正後のドア部CGモデル500の位置で記憶部210が保持するドア部CGモデル500の配置情報を更新し、HMDデータ管理部130に同期させる。
以上のように本実施形態によれば、位置姿勢の推定に適した信頼度の高いキーフレームに基づいて、CGモデルのレイアウトを補正するようにした。このように、位置姿勢の推定に適した場所にCGモデルが配置されるため、従来よりも短時間でCGモデルのレイアウト作業を完了させることができる。これにより、知識の少ない体験者でも、検証作業も位置合わせ精度のよいエリアで実施することができ、システム構築にかかる時間を低減できる。
なお、本実施形態では、レイアウト補正部260は、キーフレームの画像中心にドア部CGモデル500の重心位置が重なるようにドア部CGモデル500配置を補正したが、配置する位置は重心位置に限定されない。体験者590の作業性に応じてドア部CGモデル500を配置する位置を変更してもよい。例えば、接触判定部230で生成される接触痕520が発生する位置は、ドア部CGモデル500の位置姿勢を推定する際に誤差が少ない状態で工具CGモデル510と接触する方が望ましい。また、ドア部CGモデル500よりもサイズの大きいCGモデルを扱う場合も、検証したい位置が重心位置から大きくずれる場合もある。これらの理由により、位置合わせの誤差が少ない場所で体験者が作業できるように、状況に応じてCGモデルの位置を変更してもよい。例えば、図15に示すように、接触判定を実施したときの接触痕520が、キーフレームの画像中心に配置されるようにレイアウトを補正するようにしてもよい。
また、本実施形態では、レイアウト補正部260が補正した結果に基づいて、HMDデータ管理部130は、CGモデルの配置情報を即座に同期し、補正された3次元位置でCG描画部170がドア部CGモデル500を描画するようになる。一方で、体験者590がドア部CGモデル500に対して検証作業を行っている間にドア部CGモデル500の配置が補正されると、作業の中断が余儀なくされる場合がある。そこで、HMDデータ管理部130は、CGモデルの配置情報を即座に同期せず、CG描画部170は、ドア部CGモデル500の配置を補正するタイミングを体験者に提示するようにしてもよい。
図13は、HMD180の表示部に表示される確認画面の一例を示す図である。図13の例では、補正前のドア部CGモデル500の位置と補正後の位置を表す第二のCGモデル1310の位置とが示されている。また、図13の例では、選択されたキーフレームの撮影画像上に補正後のドア部CGモデル500を合成したサムネイル画像1320も提示されている。なお、サムネイル画像1320は、選択されたキーフレームのカメラ位置姿勢を参照して3次元空間に配置する。
さらに、画面下部には、体験者590に対して、補正をするか否かを選択する選択肢を提示するメッセージウィンドウ1330を表示する。メッセージウィンドウ1330には、現在表示されている補正候補の位置で補正するか否かを問い合わせる選択肢を併せて表示する。そして、体験者590により操作部908から「はい」の選択肢が選択された場合に、HMDデータ管理部130はCGモデルの配置情報を同期し、補正された3次元位置でCG描画部170がドア部CGモデル500を描画できるようにする。
また、図13のメッセージウィンドウ1330に示すように、他の補正候補があることを示す選択肢「次の候補を表示」を提示してもよい。この場合、ステップS430で、推奨領域決定部250は、ステップS420で算出したキーフレームの信頼度の高い順に複数のキーフレームを選択する。そして、ステップS440及びS450で、レイアウト補正部260は、それぞれのキーフレームに対し、ドア部CGモデル500の配置を調整し、記憶部210はそれぞれのCGモデルの配置情報を保持するようにする。体験者590により操作部908から「次の候補を表示」の選択肢が選択された場合は、CGモデルの配置位置が異なる画面に切り替えるようにする。
(第2の実施形態)
第1の実施形態では、物理的に1つの画像処理装置100内にデータ管理部195を有する構成としていたが、物理的に1つの装置に集約しなくてもよい。例えば、物理的に異なる2つのシステム上にCGモデルを表示する機能とCGモデルのレイアウトを補正する機能とを分割してもよい。この場合、CGモデルのレイアウトを補正する機能は、体験者が複数人の場合に共有することができ、有効である。
本実施形態では、CGモデルを表示するシステムと、CGモデルのレイアウト補正するための計算を行うシステムとを別々に構築し、ネットワークで接続して、レイアウトの補正計算処理を、複数の表示デバイスで共有する場合の例を示す。図14は、本実施形態における機能構成例を示すブロック図である。なお、図1と番号が同じブロックについては同一の機能を持つものとして説明を省略する。また、図14に示す例では、CGモデル配置処理部197およびクライアント送受信部150はそれぞれ1つであるが、これらが複数存在する場合にも適用できる。
図14において、クライアント送受信部150は、HMDデータ管理部130が管理するデータを統合管理部190に送信したり、統合管理部190からデータをCGモデル配置処理部197に受信したりするためのブロックである。また、クライアント送受信部150には、統合管理部190のIPアドレスおよびポート番号が格納されており、クライアント送受信部150は、逐次更新されたデータを送信するために、接続制御部193と通信する。
接続制御部193は、クライアント送受信部150から送信されたデータを、データ管理部195に反映するデータとして問題ないかどうかを検査する。例えば過去30分以内に接続履歴がある場合は、接続処理を省略してデータ管理部195の記憶部210を更新するが、該当しない場合は、再度接続を確立するための処理を体験者590に指示してもよい。さらにデータ管理部195では、記憶部210内に複数のクライアント送受信部150から送付された異なるデータを同時に処理しないように排他制御し、制御キューに登録された順番に基づいて処理を行うようにしてもよい。
また、図14に示す例では、CGモデル配置処理部197およびクライアント送受信部150は、図5に示す画像処理装置100と同様に体験者590が所持する装置内の構成とするが、クライアント送受信部150は別の装置であってもよい。一方で、統合管理部190は、例えば、一般的なパーソナルコンピュータ(PC)内の構成とすることができる。
このように本実施形態によれば、複数の体験者の接続を制御することにより、統合管理部190では、複数の体験者に提示するCGモデルの配置の補正情報を一元管理することができる。このようにCGモデルの配置の補正情報を一元管理することで、体験者側の装置の処理負荷を低減することができる。すなわち、処理負荷の軽減により、CG描画部170で複雑なCGモデルを描画しても、フレームレートの低下を抑えることができる。
(第3の実施形態)
第1の実施形態では、体験者590が装着するHMD180に固定された撮像部103で撮影された画像からマップデータを生成し、マップデータと空間に配置されたマーカー情報からCGモデルの配置を補正する方法を例示した。一方で、位置姿勢の推定精度が高い領域を特定する方法があれば、他の方法を適用してもよい。そこで本実施形態では、光学式センサーを用いた位置合わせ方法を用いて、CGモデルの配置を補正する方法について説明する。なお、本実施形態における画像処理装置100の構成等は基本的に第1の実施形態と同様であり、以下、第1の実施形態と異なる点について説明する。
図17は、本実施形態におけるCGモデルの配置の補正方法を説明するための模式図である。図17に示すように、部屋1730の壁付近には、光学式センサーを備えた複数のカメラデバイスが固定配置されており、これらのカメラデバイスは、不図示のコントローラー装置に接続されている。そして、これらの複数のカメラデバイスで球マーカー1720を同時に撮影して球マーカー1720の3次元位置を推定することができる。さらに、3個以上の球マーカー1720が固定された物体の位置姿勢を推定することができる。本実施形態では、ドア部CGモデル500を撮影画像上に合成するための撮像部103に球マーカー1720を3個固定し、光学式センサーを用いて撮像部103のカメラ位置姿勢を推定する。
本実施形態では、位置姿勢推定部140は、カメラ位置姿勢を推定する方法として、光学式センサー(複数のカメラデバイス1710)から得られる撮像部103のカメラ位置姿勢の結果を受信する。また、推奨領域決定部250は、図17に示す複数のカメラデバイス1710の視野領域が重なる領域1780を位置姿勢の推定精度が高い領域として設定する。さらに、レイアウト補正部260は、領域1780の重心位置とドア部CGモデル500の重心位置1760とが重なるように、ドア部CGモデル500を配置するようにする。
(その他の実施形態)
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本実施形態の開示は、以下の構成、方法およびプログラムを含む。
(構成1)
撮像手段が撮像する現実空間に配置して表示させるためのCGモデルの配置情報を管理する管理手段と、
前記撮像手段の位置姿勢を推定するために用いられる指標が所定の条件を満たす領域を特定する特定手段と、
前記特定手段によって特定された領域でCGモデルが表示されるように前記管理手段によって管理されている前記CGモデルの配置情報を補正する補正手段と、
を備えることを特徴とする画像処理装置。
(構成2)
前記撮像手段の位置姿勢を推定する推定手段と、
前記推定手段によって推定された位置姿勢で得られた前記現実空間のマップデータを記録する記録手段と、
を備え、
前記特定手段は、前記記録手段によって記録されたマップデータに基づく指標が前記所定の条件を満たす領域を特定することを特徴とする構成1に記載の画像処理装置。
(構成3)
前記マップデータは、前記撮像手段の位置姿勢が異なる2つ以上の撮影画像に基づくデータを含むことを特徴とする構成2に記載の画像処理装置。
(構成4)
前記マップデータは、前記撮像手段の複数の位置姿勢から算出された特徴点の3次元座標を含むことを特徴とする構成2または3に記載の画像処理装置。
(構成5)
前記推定手段は、前記現実空間に配置されたマーカーの情報を組み合わせて位置姿勢を推定することを特徴とする構成2~4の何れかに記載の画像処理装置。
(構成6)
前記指標は、過去に前記撮像手段で撮影された撮影画像における特徴点の数、特徴点の分散値、および前記現実空間に配置されたマーカーの数に基づく指標であることを特徴とする構成1~5の何れかに記載の画像処理装置。
(構成7)
前記特定手段は、過去に前記撮像手段で撮影された撮影画像における特徴点の数、特徴点の分散値、および前記現実空間に配置されたマーカーの数に応じた信頼度が最も高くなる過去の撮影画像に含まれる領域を特定することを特徴とする構成6に記載の画像処理装置。
(構成8)
前記補正手段は、前記信頼度が最も高くなる撮影画像の中心に前記CGモデルの重心が重なるように前記CGモデルの配置情報を補正することを特徴とする構成7に記載の画像処理装置。
(構成9)
前記補正手段は、さらに前記CGモデルの領域と特徴点とが重ならないように前記CGモデルの配置情報を補正することを特徴とする構成1~8の何れかに記載の画像処理装置。
(構成10)
前記補正手段によって配置情報が補正されたCGモデルを前記撮像手段の撮影画像に合成した映像を表示手段に表示させる表示制御手段をさらに備えることを特徴とする構成1~9の何れかに記載の画像処理装置。
(構成11)
前記表示制御手段は、前記補正手段により前記CGモデルの配置情報を変更する旨の確認画面を前記表示手段に表示させることを特徴とする特徴とする構成10に記載の画像処理装置。
(構成12)
前記特定手段は、前記現実空間に固定された複数のカメラの撮影画像の視野領域が重なる領域を前記所定の条件を満たす領域として特定することを特徴とする構成1または2に記載の画像処理装置。
(方法)
撮像手段が撮像する現実空間に配置して表示させるためのCGモデルの配置情報を管理する管理工程と、
前記撮像手段の位置姿勢を推定するために用いられる指標が所定の条件を満たす領域を特定する特定工程と、
前記特定工程において特定された領域でCGモデルが表示されるように前記管理工程において管理されている前記CGモデルの配置情報を補正する補正工程と、
を備えることを特徴とする画像処理方法。
(プログラム)
撮像手段が撮像する現実空間に配置して表示させるためのCGモデルの配置情報を管理する管理工程と、
前記撮像手段の位置姿勢を推定するために用いられる指標が所定の条件を満たす領域を特定する特定工程と、
前記特定工程において特定された領域でCGモデルが表示されるように前記管理工程において管理されている前記CGモデルの配置情報を補正する補正工程と、
をコンピュータに実行させるためのプログラム。
195 データ管理部、250 推奨領域決定部、260 レイアウト補正部

Claims (14)

  1. 撮像手段が撮像する現実空間に配置して表示させるためのCGモデルの配置情報を管理する管理手段と、
    前記撮像手段の位置姿勢を推定するために用いられる指標が所定の条件を満たす領域を特定する特定手段と、
    前記特定手段によって特定された領域でCGモデルが表示されるように前記管理手段によって管理されている前記CGモデルの配置情報を補正する補正手段と、
    を備えることを特徴とする画像処理装置。
  2. 前記撮像手段の位置姿勢を推定する推定手段と、
    前記推定手段によって推定された位置姿勢で得られた前記現実空間のマップデータを記録する記録手段と、
    を備え、
    前記特定手段は、前記記録手段によって記録されたマップデータに基づく指標が前記所定の条件を満たす領域を特定することを特徴とする請求項1に記載の画像処理装置。
  3. 前記マップデータは、前記撮像手段の位置姿勢が異なる2つ以上の撮影画像に基づくデータを含むことを特徴とする請求項2に記載の画像処理装置。
  4. 前記マップデータは、前記撮像手段の複数の位置姿勢から算出された特徴点の3次元座標を含むことを特徴とする請求項2または3に記載の画像処理装置。
  5. 前記推定手段は、前記現実空間に配置されたマーカーの情報を組み合わせて位置姿勢を推定することを特徴とする請求項2に記載の画像処理装置。
  6. 前記指標は、過去に前記撮像手段で撮影された撮影画像における特徴点の数、特徴点の分散値、および前記現実空間に配置されたマーカーの数に基づく指標であることを特徴とする請求項1または2に記載の画像処理装置。
  7. 前記特定手段は、過去に前記撮像手段で撮影された撮影画像における特徴点の数、特徴点の分散値、および前記現実空間に配置されたマーカーの数に応じた信頼度が最も高くなる過去の撮影画像に含まれる領域を特定することを特徴とする請求項6に記載の画像処理装置。
  8. 前記補正手段は、前記信頼度が最も高くなる撮影画像の中心に前記CGモデルの重心が重なるように前記CGモデルの配置情報を補正することを特徴とする請求項7に記載の画像処理装置。
  9. 前記補正手段は、さらに前記CGモデルの領域と特徴点とが重ならないように前記CGモデルの配置情報を補正することを特徴とする請求項1または2に記載の画像処理装置。
  10. 前記補正手段によって配置情報が補正されたCGモデルを前記撮像手段の撮影画像に合成した映像を表示手段に表示させる表示制御手段をさらに備えることを特徴とする請求項1または2に記載の画像処理装置。
  11. 前記表示制御手段は、前記補正手段により前記CGモデルの配置情報を変更する旨の確認画面を前記表示手段に表示させることを特徴とする特徴とする請求項10に記載の画像処理装置。
  12. 前記特定手段は、前記現実空間に固定された複数のカメラの撮影画像の視野領域が重なる領域を前記所定の条件を満たす領域として特定することを特徴とする請求項1に記載の画像処理装置。
  13. 撮像手段が撮像する現実空間に配置して表示させるためのCGモデルの配置情報を管理する管理工程と、
    前記撮像手段の位置姿勢を推定するために用いられる指標が所定の条件を満たす領域を特定する特定工程と、
    前記特定工程において特定された領域でCGモデルが表示されるように前記管理工程において管理されている前記CGモデルの配置情報を補正する補正工程と、
    を備えることを特徴とする画像処理方法。
  14. 撮像手段が撮像する現実空間に配置して表示させるためのCGモデルの配置情報を管理する管理工程と、
    前記撮像手段の位置姿勢を推定するために用いられる指標が所定の条件を満たす領域を特定する特定工程と、
    前記特定工程において特定された領域でCGモデルが表示されるように前記管理工程において管理されている前記CGモデルの配置情報を補正する補正工程と、
    をコンピュータに実行させるためのプログラム。
JP2022189967A 2022-11-29 画像処理装置、画像処理方法およびプログラム Pending JP2024077802A (ja)

Publications (1)

Publication Number Publication Date
JP2024077802A true JP2024077802A (ja) 2024-06-10

Family

ID=

Similar Documents

Publication Publication Date Title
CN109561296B (zh) 图像处理装置、图像处理方法、图像处理系统和存储介质
JP6789624B2 (ja) 情報処理装置、情報処理方法
JP6598617B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP6329343B2 (ja) 画像処理システム、画像処理装置、画像処理プログラム、および画像処理方法
JP5248806B2 (ja) 情報処理装置、情報処理方法
JP7349793B2 (ja) 画像処理装置および画像処理方法、プログラム
JP2004062756A (ja) 情報提示装置および情報処理方法
US20080204453A1 (en) Method and apparatus for generating three-dimensional model information
JP6978701B2 (ja) 情報処理システム、その制御方法、及びプログラム、並びに、情報処理装置、その制御方法、及びプログラム
TW201142745A (en) Information processing apparatus, information processing system, and information processing method
JP2008046687A (ja) 撮影環境校正方法及び情報処理装置
JP4834424B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP7379065B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP2004235934A (ja) キャリブレーション処理装置、およびキャリブレーション処理方法、並びにコンピュータ・プログラム
JP6640294B1 (ja) 複合現実システム、プログラム、携帯端末装置、及び方法
JP7341736B2 (ja) 情報処理装置、情報処理方法及びプログラム
WO2017163648A1 (ja) 頭部装着装置
JP2004030408A (ja) 三次元画像表示装置及び表示方法
JP2024077802A (ja) 画像処理装置、画像処理方法およびプログラム
JP4926598B2 (ja) 情報処理方法、情報処理装置
JP2021009557A (ja) 情報処理装置、情報処理方法、及びプログラム
US10798360B2 (en) Information processing system, method for controlling same, and program
JP2019045997A (ja) 情報処理装置及びその方法、プログラム
JP6683919B2 (ja) 情報処理装置、情報処理システム、その制御方法及びプログラム
JP7029087B2 (ja) 情報処理装置、情報処理システム、その制御方法及びプログラム