説明

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

【課題】差分を正確に検出できるようにする。
【解決手段】基軸22が設定されている。三次元形状11と三次元形状12の差分が測量されるとき、この基軸22方向での差分が測量される。例えば、三次元形状11上の所定の点として点15が選択されたとする。点15に対して、基軸22方向にあり、三次元形状12上の点は、点21となる。よってこの場合、点15と21の差分が差分値として算出される。異なる視点13や視点14であっても、三次元形状11と三次元形状12の差分は、点15と点21との差分となるため、異なる視点で異なる差分値になるといったことを防ぐことが可能となり、正確な差分を検出することができる。本発明は、形状差分を検出する装置に適用できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像処理装置および方法、並びにプログラムに関し、特に、3次元形状の物体の差異を検出し、その差異を表示できるようにした画像処理装置および方法、並びにプログラムに関する。
【背景技術】
【0002】
近年、3次元形状データの利用者層が拡大するとともに、アセンブリモデル、サブアセンブリや部品など部分モデルの干渉(重なり、ぶつかり)を検出するシミュレーションや組み立て性の検証など様々な局面で3次元形状データを有効活用する機会が増えている。CADシステムなどにより生成された3次元形状データを製造工程へ移行する前に、コンピュータ上で解析/検証することが行われている。複数の部分モデル(サブアセンブリや部品に相当)から構成されるアセンブリモデルについて、その個々の部分モデル間の干渉を検出する機能は、CADシステムにおいて設計ミスや入力ミスをチェックする形状評価などに有用な機能とされている。
【0003】
ところで、干渉部が検出された場合、干渉している部分と干渉していない部分がわかるように利用者に示す必要がある。しかしながら、干渉状態にある複数の3次元形状モデルを示すだけで干渉している部分と干渉していない部分を区別して表示することはなされてなかった。そこで、特許文献1では、視点からの距離を基準に3次元形状モデル間の差分をとり、3次元形状モデル間の干渉状態をわかりやすく表示することが提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第4082582号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載の方法では、同一領域をみているにもかかわらず、視点位置が異なると差分結果が異なってしまう。また、視点位置が異なると、差分方向も異なってしまう。このことについて、図1を参照して説明する。三次元形状11は、図示していない物体の一部分(輪郭)を表す。同様に、三次元形状12は、図示していない物体の一部分を表す。ここで、三次元形状11と三次元形状12のそれぞれの物体の画像は、同一の物体の画像であり、一方が、現時点での物体の画像であり、他方が、その物体の過去の状態の物体の画像である。例えば、それらの2つの画像を比較することにより、その物体の経年劣化により差分を測量したいときを考える。
【0006】
視点が視点13の位置にある場合、視点13と三次元形状11上の点15を結ぶ直線上にあり、かつ、三次元形状12上にある点は、点16となる。このような場合、三次元形状11と三次元形状12の差分は、点15と点16との差分L1となる。
【0007】
視点が視点14の位置にある場合、視点14と三次元形状11上の点15を結ぶ直線上にあり、かつ、三次元形状12上にある点は、点17となる。このような場合、三次元形状11と三次元形状12の差分は、点15と点17との差分L2となる。
【0008】
三次元形状11上の点15に注目したとき、異なる視点13と視点14とでは、三次元形状12との差分も、差分L1と差分L2となり、異なる値となる。換言すれば、同一の点15との差分を求めているのにも係わらず、視点が異なると差分が異なる。
【0009】
これでは、どの領域同士の差分が検出されているのか判断するのが困難になってしまう。特許文献1のように、形状モデル間の干渉状態を見る目的だけであれば、このような異なる視点で、異なる差分値が得られるということでも問題ないかもしれない。しかしながら、差分結果自体の評価、例えば、経年劣化によりどれだけ削れてしまったかといったことの評価を行いたい場合、例えば、所定の物体の経年劣化による差分を検出したいといったような場合、視点が異なると差分値も異なるということでは、正確な検出、評価を行うのは困難である。
【0010】
本発明は、このような状況に鑑みてなされたものであり、三次元形状の物体の差分を、視点の位置に係わらず、正確に検出することができるようにするものである。
【課題を解決するための手段】
【0011】
本発明の一側面の画像処理方法は、第1の画像データに基づく第1の画像と第2の画像データに基づく第2の画像の位置合わせを行う位置合わせ手段と、前記位置合わせ手段により位置合わせが行われた前記第1の画像と前記第2の画像との差分を検出する検出手段と、前記検出手段が前記差分を検出する方向を設定する設定手段とを備え、前記検出手段は、前記第1の画像を構成する所定の点と、前記第2の画像を構成するポリゴンとの差分であり、前記設定手段により設定された方向での差分を検出する。
【0012】
前記第1の画像データと前記第2の画像データは、三次元形状の物体の画像データであるようにすることができる。
【0013】
前記設定手段は、設定された視点に対して同一の方向、または前記視点と垂直に交わる方向に、前記差分を検出する方向を設定するようにすることができる。
【0014】
前記検出手段により検出された前記差分の表示を制御する表示制御手段をさらに備え、前記表示制御手段は、前記第1の画像データまたは前記第2の画像データの各点の色情報に、前記差分の大きさに基づく色を反映させて表示させるための制御を行うようにすることができる。
【0015】
前記検出手段により検出された前記差分の表示を制御する表示制御手段をさらに備え、前記表示制御手段は、グリッド領域内で最も大きい値の前記差分を抽出し、その抽出された差分の値に基づくメッシュ状での表示を制御するようにすることができる。
【0016】
撮像手段により撮像された第3の画像であり、前記第1の画像と前記第2の画像に撮像されている物体と同一の物体の画像である第3の画像に、前記差分を重畳させた画像の表示を制御する表示制御手段と、前記第1の画像または前記第2の画像における局所特徴量と、前記第3の画像の局所特徴量を用いて、前記撮像手段の位置姿勢を取得する取得手段と、をさらに備え、前記設定手段は、前記取得手段により取得された前記位置姿勢に基づき前記方向を設定し、前記表示制御手段は、前記設定手段で設定された前記位置姿勢に対する前記差分が重畳された画像の表示を制御するようにすることができる。
【0017】
本発明の一側面の画像処理方法は、位置合わせ手段、検出手段、および設定手段を備える画像処理装置の画像処理方法において、前記位置合わせ手段は、第1の画像データに基づく第1の画像と第2の画像データに基づく第2の画像の位置合わせを行い、前記検出手段は、前記位置合わせ手段により位置合わせが行われた前記第1の画像と前記第2の画像との差分を検出し、前記設定手段は、前記検出手段が前記差分を検出する方向を設定するステップを含み、前記第1の画像を構成する所定の点と、前記第2の画像を構成するポリゴンとの差分であり、前記設定手段により設定された方向での差分を検出する。
【0018】
本発明の一側面のプログラムは、位置合わせ手段、検出手段、および設定手段を備える画像処理装置に、前記位置合わせ手段は、第1の画像データに基づく第1の画像と第2の画像データに基づく第2の画像の位置合わせを行い、前記検出手段は、前記位置合わせ手段により位置合わせが行われた前記第1の画像と前記第2の画像との差分を検出し、前記設定手段は、前記検出手段が前記差分を検出する方向を設定するステップを含み、前記第1の画像を構成する所定の点と、前記第2の画像を構成するポリゴンとの差分であり、前記設定手段により設定された方向での差分を検出する処理をコンピュータに実行させる。
【0019】
本発明の一側面の画像処理装置および方法、並びにプログラムにおいては、第1の画像と第2の画像が位置合わせされた後、第1の画像と第2の画像の差分が検出される。その差分は、設定された所定の方向における差分とされる。
【発明の効果】
【0020】
本発明の一側面によれば、三次元形状の物体の差分を、視点の位置に係わらず、正確に検出することができる。
【図面の簡単な説明】
【0021】
【図1】異なる視点で、異なる差分値が得られることを説明するための図である。
【図2】異なる視点でも、同一の差分値が得られることを説明するための図である。
【図3】差分値について説明するための図である。
【図4】本発明を適用した画像処理装置の一実施の形態の構成を示す図である。
【図5】ポリゴンについて説明するための図である。
【図6】ピンホールカメラモデルについて説明するための図である。
【図7】ピンホールカメラモデルについて説明するための図である。
【図8】基軸の設定の仕方について説明するための図である。
【図9】サンプリング軸について説明するための図である。
【図10】差分値の算出について説明するための図である。
【図11】点とポリゴンを比較する理由について説明するための図である。
【図12】点とポリゴンを比較する理由について説明するための図である。
【図13】点とポリゴンを比較する理由について説明するための図である。
【図14】差分データの生成の処理について説明するフローチャートである。
【図15】表示の仕方について説明するための図である。
【図16】表示の一例を示す図である。
【図17】実物体の画像に差分を重畳することを説明するための図である。
【図18】実物体の画像に差分を重畳することを説明するための図である。
【図19】本発明を適用した画像処理装置の他の実施の形態の構成を示す図である。
【図20】表示の処理について説明するためのフローチャートである。
【図21】記録媒体について説明するための図である。
【発明を実施するための形態】
【0022】
以下に、本発明の実施の形態について図面を参照して説明する。
【0023】
図2は、本発明を適用した画像処理装置で行われる処理の概念について説明するための図である。本発明は、以下に説明するように、三次元形状の物体の差異を検出することができる。また、検出した差異を表示することができる。この三次元形状の物体の差異を検出するとき、その検出される差異は、図2に示すように基軸22の方向での差異とされる。
【0024】
三次元形状11は、図示していない物体の一部分(輪郭)を表す。同様に、三次元形状12は、図示していない物体の一部分を表す。ここで、三次元形状11と三次元形状12のそれぞれの物体は、同一の物体の画像であり、一方が、現時点での物体の画像であり、他方が、その物体の過去の状態の物体の画像である。例えば、それらの2つの画像を比較することにより、その物体の経年劣化により差分を測量したいときを考える。
【0025】
まず、基軸22が設定される。この基軸22は、例えば、測量の対象とされている物体の縦方向(高さ方向)に設定される。三次元形状11と三次元形状12の差分が測量されるとき、この基軸22方向での差分が測量される。例えば、三次元形状11上の所定の点として点15が選択されたとする。点15に対して、基軸22方向にあり、三次元形状12上の点は、点21となる。よってこの場合、点15と点21の差分が差分値として算出される。
【0026】
このように測量が行われることで、視点が視点13のときの差分と、視点が視点15のときの差分はともに、点15と点21との差分となるため、視点が異なっても同じ差分値が得られることになる。
【0027】
したがって、図1を参照して説明した従来の場合と異なり、どの領域同士の差分が検出されているのか判断することが可能となる。また、差分結果自体の評価を行いたいといったような場合、例えば、所定の物体の経年劣化による差分を検出したいといったような場合に、視点が異なっても、差分値が同じであるようにすることが可能となり、正確な検出、評価を行うことが可能となる。
【0028】
なお、この基軸22には、方向も設定されており、プラス方向の差分であるか、マイナス方向の差分であるかを算出できるように構成されている。例えば、点15を基準として、プラス方向に点21が位置していれば、プラスの値の差分値として扱われ、マイナス方向に点21が位置していれば、マイナスの値の差分値として扱われる。
【0029】
より具体的に、図3を参照して説明を続ける。ここでは、所定の物体の経年劣化により差分を検出する例を例にあげて説明する。三次元形状データ51は、物体61の三次元形状データである。図3では、三次元形状データ51に基づく画像を示してある。同様に、三次元形状データ52は、物体62の三次元形状データであり、図3では、三次元形状データ52に基づく画像を示してある。物体61と物体62は同一の物体であるが、物体62は、物体61が経年劣化したものである。
【0030】
物体62は、経年劣化で部分63が欠損している。物体61と物体62との差分をとると、部分63が差分として検出される。この場合、物体61から物体62を減算することで、差分が検出されるとする。そして、この差分は、所定の方向を基準とする基軸22が設定され、その基軸22の方向での差分である。
【0031】
三次元形状データ51と三次元形状データ52との差分が検出されることで、三次元形状データ53が取得される。三次元形状データ53は、物体64の三次元形状データである。この物体64の画像には、欠損している部分を表す部分65も表示される。この部分65は、部分63である。また、この部分65は、物体61と物体62の差分であることが明確に表すための表示がされる。
【0032】
以下の説明においては、例えば、三次元形状データ51のような経年劣化前の物体61のデータを基準三次元形状データ51と記述し、三次元形状データ52のような経年劣化後の物体62のデータを参照三次元形状データ52と記述する。また、基準三次元形状データ51に基づく物体61の画像を基準三次元形状画像61と記述し、参照三次元形状データ52に基づく物体62の画像を参照三次元形状画像62と記述する。
【0033】
[画像処理装置の構成について]
図4は、本発明を適用した画像処理装置の一実施の形態の構成を示す図である。図4に示した画像処理装置100は、データベース101−1、データベース101−2、位置合わせ処理部102、差分処理部103、表示処理部104、基軸設定部105、および視点計算部106を含む構成とされている。
【0034】
データベース101−1には、基準三次元形状データ51が記憶され、データベース101−2には、参照三次元形状データ52が記憶される。ここでは、2つのデータベースを示したが、1つのデータベース(記憶部)に、基準三次元形状データ51と参照三次元形状データ52が記憶されるようにしても良い。また、基準三次元形状データ51と参照三次元形状データ52のうちのどちらか一方、または両方のデータは、ネットワークを介して取得されるようにしても良い。ネットワークを介して取得されるようにした場合、ネットワークを介してデータの授受を行えるインタフェースを備える構成に、画像処理装置100はされる。
【0035】
例えば、基準三次元形状データ51は、ネットワーク経由で取得され、参照三次元形状データ52は、データベース101−2に記憶されているようにしても良い。このようにした場合、例えば、基準三次元形状データ51が複数のユーザと共有され、その共有されている基準三次元形状データ51がネットワーク経由で取得され、所定のユーザが管理している参照三次元形状データ52と比較されるといったことができる。
【0036】
また例えば、基準三次元形状データ51は、データベース101−1に記憶し、参照三次元形状データ52は、ネットワーク経由で取得されるようにしても良い。このようにした場合、例えば、数年前に撮影された基準三次元形状画像の基準三次元形状データ51を、データベース101−1に記憶しておき、ネットワーク経由で、現状の参照三次元形状画像の参照三次元形状データ52を取得し、比較するといったことができる。例えば、現状の参照三次元形状画像は、遠方に備え付けられたカメラであり、そのカメラから取得される画像とすることができる。
【0037】
さらには、例えば、基準三次元形状データ51と参照三次元形状データ52の両方を、ネットワーク経由で取得されるようにしても良い。このようにした場合、画像処理装置100を、データベース101−1とデータベース101−2を削除した構成とすることができる。このようにした場合、異なる地点に存在する三次元形状データ同士を比較することができる。
【0038】
ここでは、図4に示したように、画像処理装置100は、2つのデータベース101−1とデータベース101−2を備える構成であり、それぞれのデータベースには、基準三次元形状データ51と参照三次元形状データ52がそれぞれ記憶されているとして説明を続ける。
【0039】
基準三次元形状データ51と参照三次元形状データ52は、それぞれ、図5に示すようなデータである。三次元形状画像は、複数のポリゴン131から構成されている。すなわち、三角形状のポリゴン131が、連続的に接続されることで三次元形状画像が生成される。1つのポリゴンは,3点から構成される。例えば、図5に示したポリゴン131は、点132、点133、および点134から構成されている。
【0040】
なお、ここでは、ポリゴンは、3点で構成されているとして説明を続けるが、3点以外で構成されているポリゴンであっても、本発明を適用することはでき、3点で構成されるポリゴンに、本発明の適用範囲が限定されることを示しているのはない。
【0041】
ポリゴン131を構成する点132、点133、および点134は、それぞれ3次元空間における位置の情報と、色の情報を有する。三次元空間における位置の情報とは、x軸、y軸、およびz軸上における座標である。基準三次元形状データ51と参照三次元形状データ52は、それぞれ、複数のポリゴンを構成する点のデータを含むデータであり、それぞれの点のデータは、位置の情報と色の情報から構成されているデータである。
【0042】
ここでは、色の情報は、RGB(Red・Green・Blue)チャネルで構成されているとする。このような色の情報を各点が有するのは、後述するように、差分結果を色で表現するためである。よって、例えば、白と黒の2値で差分結果を表示するように構成した場合、色情報としてRGBチャネルでの情報とする必要はない。
【0043】
後述するように、基準三次元形状データ51に基づく基準三次元形状画像61を構成する所定の点と、参照三次元形状データ52に基づく参照三次元形状画像62を構成する所定のポリゴンとの差分が算出される。
【0044】
よって、基準三次元形状データ51は、複数の点の情報で構成されていれば良く、ポリゴンの情報は必ずしも必要はない。例えば、基準三次元形状データ51は、ワイヤーフレームなどの手法で得られた三次元形状画像のデータであっても良い。しかしながら、参照三次元形状データ52は、ポリゴンの情報も必要である。
【0045】
すなわち、2つの三次元形状データのうち、一方のデータは、三次元形状画像の点の情報(点の集合の情報)で構成され、他方のデータは、三次元形状画像のポリゴンの情報で構成されている。
【0046】
これらの三次元形状データは、例えば、レーザレンジセンサを用いて計測する方法や、ステレオカメラで計測する方法などが適用されて得られるデータである。
【0047】
図4に示した画像処理装置100の構成に関する説明に戻り、位置合わせ処理部102は、データベース101−1から供給される基準三次元形状データ51に基づく基準三次元形状画像61と、データベース102−2から供給される参照三次元形状データ52に基づく参照三次元形状画像62との位置合わせを行う。位置合わせは、基準三次元形状画像61と参照三次元形状画像62を重ね合わせる作業である。
【0048】
位置合わせ処理部102で行う形状同士の位置合わせは Iterative Closest Point アルゴリズムを用いた、例えば、”Iterative Point Matching for Registration of Free-form Curves", Zhengyou Zhang, INRIA (1992)や、テクスチャ情報同士ベースの位置合わせを用いた、例えば、特開2002-175521号公報に記載がある手法を適用することができる。また、意図的にユーザが合わせたい位置がある場合などには、ユーザが手動で位置合わせをしても、勿論良い。ここでの位置合わせは、三次元形状データに基づく画像同士の位置合わせであり、画像処理装置100内で処理される。
【0049】
例えば、撮像されている実際の三次元形状の物体の画像が取得され、その画像が参照三次元形状画像62として用いられるような場合、ユーザにより、実際の三次元形状の物体が移動されることで、基準三次元形状画像61との位置合わせが行われるようにしても良い。
【0050】
差分処理部103は、位置合わせが行われた基準三次元形状画像61と参照三次元形状画像62との差分を算出する。すなわち、図3を参照して説明した処理が実行される。差分処理部103は、基軸設定部105で設定された基軸の方向に対する差分を算出する。この基軸は、図2を参照して説明した基軸22のことである。
【0051】
視点計算部106は、CG(computer graphics)内の基準三次元形状画像に対する視点(ウィンドウ)の相対的な位置姿勢を計算する。この視点計算部106が行う計算は、公知の技術を用いることができる。ここで、視点と基軸の設定に関する説明を行う。
【0052】
視線の姿勢は、ピンホールカメラに従うとする。ピンホールカメラモデルは,OpenGL の 透視法(遠近法)の射影変換と同じで、透視法で作成される CGの視点モデルは、ピンホールカメラモデルと同一とすることができる。ピンホールカメラモデルについて、図6、図7を参照して説明する。ピンホールカメラモデルにおいて、特徴点の画像フレーム中の位置は下式(1)によって計算することができる。
【数1】

【0053】
式(1)の意味について、図6、図7を参照して説明する。式(1)は、カメラの撮影画像210に含まれるオブジェクト211の点(m)のカメラ像平面の画素位置212、すなわち、カメラ座標系によって表現されている位置と、世界座標系におけるオブジェクト200の3次元位置(M)201との対応関係を示す式である。
【0054】
カメラ像平面の画素位置212はカメラ座標系によって表現されている。カメラ座標系は、カメラの焦点を原点Cとして、像平面がXc,Ycの二次元平面、奥行きをZcとした座標系であり、カメラの動きによって原点Cは移動する。
【0055】
一方、オブジェクト200の3次元位置(M)201は、カメラの動きによって移動しない原点Oを有するXYZ三軸からなる世界座標系によって示される。この異なる座標系でのオブジェクトの位置の対応関係を示す式が上述のピンホールカメラモデルとして定義される。
【0056】
この式に含まれる値は、図7に示すように、
λ:正規化パラメータ
A:カメラ内部パラメータ、
Cw:カメラ位置、
Rw:カメラ回転行列、
をそれぞれ意味している。
【0057】
さらに、
【数2】

は、同次座標系で表現されたカメラの像平面上の位置である。
λは、正規化パラメータであり、
【数3】

の第3項を満足させるための値である。
【0058】
なお、カメラ内部パラメータAには、以下の値が含まれる。
f:焦点距離
θ:画像軸の直交性(理想値は90°)
ku:縦軸のスケール(3次元位置のスケールから二次元画像のスケールへの変換)
kv:横軸のスケール(3次元位置のスケールから二次元画像のスケールへの変換)
(u0,v0):画像中心位置
【0059】
このように、世界座標系にある特徴点は位置[M]で表現される。また、カメラは位置[Cw]と姿勢(回転行列)Rwで表現される。カメラの焦点位置・画像中心等はカメラ内部パラメータ[A]で表現される。これらのパラメータから、「世界座標系にある特徴点」から「カメラの像平面上」に射影されるそれぞれの位置の関係式が、上述した式(1)によって表現することができる。
【0060】
また、カメラの位置・姿勢を回転行列Rwと並進ベクトルで表現した場合は、以下に示す式(4)のようになる。但し、並進ベクトルとカメラ位置との関係は式(5)で表される。
【数4】

【数5】

【0061】
視線は、ピンホールカメラモデルの座標系を表す図6に従って述べると、Zc 軸に相当する。視点は、点Cに相当する。カメラ撮像平面(像平面)の u軸は、Xc軸とほぼ平行であり、v軸は Yc 軸とほぼ平行である。
【0062】
このように視点や視線が求められるとき、基軸の設定は、以下のように行うことが可能である。ここでは、方法1、および方法2として、2つの設定方法について説明する。方法1においては、視線方向と同じ方向に基軸の方向が設定される。方法2においては、視点からみて垂直方向に基軸の方向が設定される。
【0063】
図8Aは、方法1に基づいて基軸の方向が設定されるときについて説明するための図である。視点301からの視線は、軸Zc方向であり、その軸Zc方向と基軸302の方向が同一方向として設定される。図8Aに示した例では、基準三次元形状画像61の高さ方向が、基軸302の方向に設定され、その方向が、視線の方向と一致している。ただし、基軸302の方向自体は、視線の方向と一致または逆向きに設定され、図8Aにおいては、その方向は図示していない。
【0064】
図8Bは、方法2に基づいて基軸の方向が設定されるときについて説明するための図である。視点311からの視線は、軸Zc方向であり、その軸Zc方向と垂直方向に基軸302の方向が設定される。図8Bに示した例では、基準三次元形状画像61の高さ方向と斜めに交わる方向に、基軸312の方向が設定され、その方向が、視線の方向に対して垂直の方向と一致している。よって、視線の方向(Zc方向)との関係では、基軸312の方向は、Yc軸の方向となる。ただし、基軸312の方向自体は、視線の方向と垂直に交わる方向の一方の方向がプラス方向とされて設定されるが、図8Bにおいては、その方向は図示していない。
【0065】
このように、視点計算部106では、視点の位置や視線の方向を計算し、基軸設定部105は基軸の方向を設定する。差分処理部103は基軸設定部105で設定された基軸の方向での差分を算出する。表示処理部104は、差分処理部103が算出した差分を、視点計算部106で計算された視点方向からの画像として、ユーザに提示するための処理を行う。
【0066】
ここで、図9と図10を参照し、差分処理部103が行う差分の算出の仕方について説明を加える。図9に示すように、基準三次元形状画像61(参照三次元形状画像62でも良い)の高さ方向に、基軸351が設定されている。この基軸351と平行な直線を、サンプリング軸352とする。このサンプリング軸352上の点とポリゴンが処理対象とされる。具体的には、図10に示したような関係となる。
【0067】
図10において、太線は、基準三次元形状画像61の一部分を表し、細線は、参照三次元形状画像62の一部分を表す。基準三次元形状画像61とサンプリング軸352が交わる点を点372とする。参照三次元形状画像62とサンプリング軸352が交わる点を点371、点373とする。点372は、基準三次元形状画像61を構成する所定の点である。基準三次元形状画像61は、ポリゴンで構成されている必要がないため、この点372は、ポリゴン上の点である必要はない。点371と点373は、それぞれ、参照三次元形状画像62を構成するポリゴン上の点である(ただし、ポリゴンの頂点である必要はない)。
【0068】
基準三次元形状画像61のサンプリング軸352上の点372と、参照三次元形状画像62のサンプリング軸352上の点371、点373との差分が求められる。点372と点371との差分が、差分値381と求められ、点372と点373との差分が、差分値382と求められる。この場合、参照三次元形状画像62とサンプリング軸352が交わる点が、2点あるため、2つの差分値が求められる。このように、参照三次元形状画像62とサンプリング軸352が交わる点が複数ある場合、複数の差分値が求められる。
【0069】
複数の差分値が求められた場合、最も小さい値の差分値が、その時点で処理対象とされている基準三次元形状画像61の所定の点と参照三次元形状画像62の所定のポリゴンとの差分値として設定される。図10に示した状態のときには、差分値382の方が差分値381よりも小さい値なので、差分値382が、基準三次元形状画像61の所定の点372と参照三次元形状画像62の所定のポリゴンとの差分値として設定される。
【0070】
このような処理についてまとめると、本実施の形態における2つの物体の差分値は、まず、基準三次元形状データ51の所定の点が処理対象とされ、その所定の点に対して基軸351方向に直線(サンプリング軸352)が引かれる。そして、そのサンプリング軸352に交差する参照三次元形状データ52(参照三次元形状データ52のポリゴン)が全て求められ、最近傍のポリゴンとの距離が求められる。その最近傍のポリゴンとの距離が、基準三次元形状データ51の所定の点との差分として検出される。
【0071】
なお、差分値は、プラスまたはマイナスの値とする。点372から最近傍のポリゴンへ引いたベクトルの方向と基軸方向から正負の判定を行う。高さ方向と差分のベクトルとの向きが同一の場合、正とし、逆の場合、負とする。基軸の方向と同一の方向での差分であるのか、基軸の方向とは逆側の方向の差分であるのかを、形状差分データとすることで、どの方向への差分であるのかが明確になり、後述する差分の表示のときに、適切な表示ができるようになる。
【0072】
このような処理が、基準三次元形状データ61を構成する全点に対して行われることで、基準三次元形状画像61と参照三次元形状画像62との差分が検出され、差分データが生成される。表示処理部104(図4)は、この差分データを用いて、表示の制御を行う。どのような表示の制御が行われるかについては、いくつかの例をあげて後述する。
【0073】
本実施の形態においては、上記したように、基準三次元形状画像61を構成する点と、参照三次元形状画像62を構成するポリゴンとの差分が求められるとして説明した。図10を再度参照するに、例えば、所定の点372とポリゴン上の所定の点371との差分が求められるので、基準三次元形状画像61を構成する点と、参照三次元形状画像62を構成する点同士を比較し、差分を算出することも可能であると考えられる。しかしながら、上記したように、点とポリゴンとの差分が求められるようにした方が好ましい実施の形態であることを、以下に明らかにする。
【0074】
図11は、基準三次元形状データ51に基づく基準三次元形状画像61の所定の1点に着目し、その点と参照三次元形状データ52に基づく参照三次元形状画像62との位置関係を表している。図11においては、基準三次元形状画像61を構成する他の点の図示は省略している。
【0075】
図11において、基準三次元形状画像61の処理対象とされた点を点372とする。そして、基軸351は、図11に示すように設定されているとする。このようなときに、基軸351の方向で、点372を通る直線(図示はしていないが、サンプリング軸352に相当する線)を引いたときに、その直線が、参照三次元形状画像62を構成するポリゴン401と交差する。このポリゴン401は、点402、点403、点404をそれぞれ頂点とする三角形状とされている。
【0076】
ポリゴン401と直線が交差する点を点371とする。このような場合、点371と点372との差分が、差分値381として算出される。すなわち、基準三次元形状画像61の点372における参照三次元形状画像62との距離は、差分値381として算出される。
【0077】
図12も、図11と同様に、基準三次元形状画像61と参照三次元形状画像62との位置関係を表す図である。図12に示した参照三次元形状画像62は、図11に示した参照三次元形状画像62と同じ点の数、点の位置である。しかしながら、図12に示した参照三次元形状画像62には、点402、点403、および点432をそれぞれ頂点とするポリゴン431が表示されている。
【0078】
図11に示した参照三次元形状画像62と図12に示した参照三次元形状画像62は、同じ参照三次元形状データ52から生成されるが、そのポリゴンの情報が異なるため、異なる画像となる。このように、同じ点の配置、点の数であっても、異なる形状の三次元形状画像が生成される可能性がある。図12に示した参照三次元形状画像62の場合、基準三次元形状画像61の点372と参照三次元形状画像62との差分は、参照三次元形状画像62のポリゴン431上の点373との差分となるため、差分値382となる。
【0079】
このように、同じ点の数であり、点の配列であっても、物体面を表現しているポリゴンが異なると、異なる差分値が得られることになる。このため、物体面を表すポリゴンが定義されていないと正確な差分値を算出することができない。よって、本実施の形態では、点とポリゴンを処理対象とし、差分が算出されるようにする。
【0080】
また、仮に、点と点を処理対象とし、差分が算出されるようにした場合、図13に示したような状況が発生し、差分が算出できないことも考えられる。すなわち図13を参照して説明するに、まず。基軸351が、図13に示すような方向に設定され、その基軸351に平行にサンプリング軸352が設定される(図9を参照して説明した)。
【0081】
このとき、サンプリング軸352には、基準三次元形状画像61を構成する点372が交わっている。図13中、黒点は、参照三次元形状画像62を構成する点を示す。サンプリング軸352の近傍には、参照三次元形状画像62を構成する複数の点451乃至455が位置しているが、サンプリング軸352と交わる点はない。よって、このような状況の場合、点372との差分を算出するためのもう一方の点が存在しないことになる。
【0082】
このように、サンプリング軸352には、基準三次元形状画像61を構成する点372が存在していても、その点372と差分を算出する対象となる参照三次元形状画像62を構成する点が存在しなければ、差分値が算出できない。このことは、点372に対する差分が検出できないことを意味する。このように、サンプリング軸352上に、処理対象とされる2点が必ずしも存在しない場合もあり、その結果として差分が検出できないことは好ましくない。よって、このような好ましくない状況が発生しないように、本実施の形態においては、点と点を処理対象とするのではなく、点とポリゴンを処理対象とする。
【0083】
点とポリゴンを処理対象とすることで、例えば、図13に示したような状況であっても、点451乃至453で1つのポリゴンが形成されていれば、そのポリゴンと、点372との差分を算出することができるため、差分を検出できることになる。
【0084】
[画像処理装置の動作]
図14のフローチャートを参照し、図4に示した画像処理装置100における処理について説明する。図14のフローチャートは、主に差分処理部103で実行される処理である。よって、図14のフローチャートが開始される時点で、データベース101−1には、基準三次元形状データ51が記憶され、データベース101−2には、参照三次元形状データ52が記憶されている状態である。また、位置合わせ処理部102には、処理対象とされる基準三次元形状データ51が、データベース101−1から供給され、その供給されている基準三次元形状データ51に対応する参照三次元形状データ52が、データベース101−2から供給されている。
【0085】
さらに、位置合わせ処理部102により、基準三次元形状データ51に基づく基準三次元形状画像61と参照三次元形状データ52に基づく参照三次元形状画像62との位置合わせが行われ、その位置合わせが行われたデータが、差分処理部103に供給されている状態である。
【0086】
ステップS101において、基軸設定部105により基軸が設定される。基軸設定部105は、図8を参照して説明したように基軸を設定する。すなわち、視線方向と同一の方向に基軸を設定するか、または、視線方向と垂直に交わる方向に基軸を設定する。同一の方向に設定するか、または、垂直に交わる方向に設定するかは、ユーザにより常に選択されるようにしても良いし、デフォルトでどちらかに設定されるようにしても良い。また、ユーザが、所望の方向に基軸を設定できるような構成としても良い。
【0087】
ステップS102において、差分処理部103は、基準三次元形状データ51に基づく基準三次元形状画像61を構成する点のうちの1つの点を処理対象の点として設定する。基準三次元形状データ51は、基準三次元形状画像61を構成する点のデータから構成されているため、差分処理部103は、基準三次元形状データ51のうちの1つの点のデータを選択し、処理対象の点のデータとして設定する。
【0088】
ステップS103において、処理対象とされた点を通り、基軸に対して平行なサンプリング軸が設定される。この処理は、図9、図10を参照して説明したように行われる。ここでは、図10に示したように、処理対象とされた点は、点372であり、その点372を通り基軸に対して平行なサンプリング軸は、サンプリング軸352であるとして説明を続ける。
【0089】
ステップS104において、サンプリング軸352と交わるポリゴンが探索される。例えば、図10を参照して説明したように、サンプリング軸352に対して、交わっているポリゴンが探索され、そのポリゴンとサンプリング軸352が交わる点が探索される。探索の結果、サンプリング軸352と交わるポリゴンが存在したか否かが、ステップS105において判断される。
【0090】
ステップS105において、サンプリング軸32と交わるポリゴンが存在すると判断された場合、ステップS106に処理が進められる。ステップS106において、差分値(距離)が最小のポリゴンが探索される。図10を参照して説明したように、例えば、サンプリング軸352と交わるポリゴン上の点が、点371と点373と探索された場合、点372と点371の差分値381と点372と点373の差分値382がそれぞれ算出される。そして、算出された差分値のうち、絶対値の値で比較したときに、一番小さな値となる差分値382が算出された点373が存在するポリゴンが、処理対象とされている点との距離が最小のポリゴンとされ、そのポリゴンが、探索結果とされる。
【0091】
ステップS107において、最短距離が形状差分として設定される。すなわち、一番小さな値となる差分値が、処理対象とされている基準三次元形状画像61を構成する点の形状差分として、設定される。このような差分値のデータが、基準三次元形状画像61を構成する全ての点で算出され、蓄積されることで、形状差分データが生成される。
【0092】
なお、形状差分データとされる差分値は、プラスまたはマイナスの値である。基軸の方向と同一の方向での差分であるのか、基軸の方向とは逆側の方向の差分であるのかを、形状差分データとすることで、どの方向への差分であるのかが明確になり、後述する差分の表示のときに、適切な表示ができるようになる。
【0093】
ステップS108において、基準三次元形状画像62を構成する全ての点に対して、処理が終了したか否か(全ての点が処理対象とされたか否か)が判断され、まだ全ての点に対しての処理は終了していないと判断された場合、ステップS102に処理が戻される。ステップS102に処理が戻されることにより、まだ処理対象とされていない点が、新たな処理対象の点に設定され、新たに設定された点に対して、上述したステップS102以降の処理が繰り返し行われる。
【0094】
一方、ステップS105において、サンプリング軸と交わるポリゴンは存在しないと判断された場合、ステップS109に処理が進められる。ステップS109に処理が進められるときには、処理対象とされた基準三次元形状画像61を構成する所定の点に対する、参照三次元形状画像62を構成するポリゴンは存在しないため、差分値を算出できない状態である。よって、このような場合、差分データが取得できないため、形状差分データが生成できないことになる。そこで、NaNと設定する。
【0095】
このNaNは、ここでは、 Not a Numberの略とし、非数を表す。NaNは、「基準三次元形状データのある注目している点に対し、対象となる参照形状データのポリゴンが見当たらないために、差分結果が得られなかった」ことを示す。このようなNaN(非数)を、形状差分データとする。ステップS109における処理が終了すると、ステップS108に処理が進められる。ステップS108以降の処理については、既に説明したので、その説明は省略する。
【0096】
このように、基軸が設定され、その基軸の方向での差分が算出されることで、視点の位置に係わらず、常に同一の差分形状データを取得することができる。基軸は、自由に容易に設定することができるため、ユーザの使い勝手を低下させることなく、三次元形状の物体の差分を検出させることが可能となる。また、視点を変えても、図1を参照して説明したようなことがおきないため、すなわち、異なる視点だと異なる差分が検出されるということがないため、ユーザが所望とする任意の視点での差分結果をユーザが見ることができ、かつ、その差分結果は、視点により異なるといったことがないものとすることができる。
【0097】
さらに、上述した実施の形態においては、基準三次元形状画像61を構成する所望の点と、参照三次元形状画像62を構成するポリゴンとが比較されるため、基準三次元形状画像61の基準三次元形状データ51は、どのようなデータであっても良い。すなわち、基準三次元形状データ51は、モデルに限定されず、三次元点情報でよく、また、ポリゴン化されたものでなくて良い。よって、基準三次元形状データ51として用いることができるデータの範囲を限定することなく、幅広いデータを用いることができる。例えば、古い形式の基準三次元形状データ51であっても、新しい形式の参照三次元形状データ61と比較することが可能となり、古い画像の物体と現在の画像の物体とを比較、検討することが可能となる。
【0098】
さらに、基準三次元形状画像61は、二次元形状の画像であっても良い。基準三次元形状画像61が二次元形状の画像である場合、比較できるのは(差分が検出できるのは)、物体の所定の側面における差分だけであるが、三次元形状の画像である参照三次元画像62と比較することはできる。これは、基準三次元形状画像61の点と参照三次元画像62のポリゴンとが比較されるため、基準三次元形状画像61からは、点のデータが取得できればよいからである。よって、例えば、古い写真に撮像されている物体と、近年撮像された物体とを比較し、その差分を算出することができる。
【0099】
[形状差分データを用いた表示について]
次に、生成された形状差分データに基づく表示について説明する。ここでは、2つの表示の仕方について説明する。1つめの表示は、基準三次元形状画像データ61の各点の色情報に、形状差分データを反映させて表示させる仕方である。2つめの表示は、高さ(基軸)方向の形状差分データに応じた表示の仕方である。
【0100】
基準三次元形状画像データ61の各点の色情報に、形状差分データを反映させて表示させることについて説明する。基準三次元形状画像データ61の各点のデータには、例えば、図5を参照して説明したように、色情報が含まれ、その色情報は、RGBチャネルで構成されている。各チャネルの最大値を、Rmax、Gmax、Bmaxとする。例えば、Rmaxは、255(2の8乗)の値をとる。このように設定したとき、形状差分データに基づき、以下のようにRGBチャネルの値が設定されるようにする。ただし、以下に示すのは一例であり、他の設定方法で各点の色が設定されても、勿論良い。
【0101】
以下の式において、diffは、形状差分データの値を示し、r、g、bは、それぞれ、Rチャネル、Gチャネル、Bチャネルに設定される値を示す。またdmaxは、形状差分データの絶対値の最大値を表す。ただし、最大値dmaxが求められるときには、NaN(非数)は無視される。
【0102】
diff=NaN(非数)の場合
r=0.0
g=0.0
b=0.0
diff=NaN(非数)でなく、且つ diff が正の場合
r=(0.9×(diff/dmax)+0.1)×Rmax
g=(0.1)×Gmax
b=(0.1)×Bmax
diff=NaN(非数)でなく、且つ diff が負の場合
r=(0.1)×Rmax
g=(0.1)×Gmax
b=(0.9×(−diff/dmax)+0.1)×Bmax
【0103】
上式に基づき、表示が制御される場合、diff=NaN(非数)のときには、R、G、Bの各チャネルの値は0に設定される。そして、diff=NaN(非数)でなく且つ diffが正の場合、Rチャネルの値は、その点における形状差分データの値(diff)が、絶対値の最大値(dmax)で除算され、その除算された値に0.9が乗算され、その乗算された値に0.1が加算され、その加算された値に、Rチャネルの最大値(Rmax)が乗算された値とされる。Gチャネルの値と、Bチャネルの値は、それぞれのチャネルの最大値(Gmax、Bmax)、に、0.1が乗算された値とされる。
【0104】
diff=NaN(非数)でなく且つ diffが負の場合、Rチャネルの値と、Gチャネルの値は、それぞれのチャネルの最大値(Rmax、Gmax)、に、0.1が乗算された値とされる。Bチャネルの値は、その点における形状差分データの値(diff)が、絶対値の最大値(dmax)で除算され、その除算された値に0.9が乗算され、その乗算された値に0.1が加算され、その加算された値に、Bチャネルの最大値(Bmax)が乗算された値とされる。
【0105】
このような設定に基づき、各点が表示されると、赤い領域が、基軸方向に正の方向の差が大きい領域であることを示し、青い領域が、基軸方向と逆の方向の差が大きい領域であることを示す表示となる。
【0106】
このような設定に基づき、各点が表示されると、明るく色で表示されればされるほど、その点における差分値が大きいことを示す(差分が大きな領域であることを示す)表示となる。
【0107】
また、事前に基準三次元形状データ51の色情報に、物体表面の色情報がある場合、以下のようにR、G、Bの各チャネルの値が設定されるようにしても良い。rc、gc、bcは、それぞれ物体表面の色情報を示す。
【0108】
diff=NaN(非数)の場合
r=0.0
g=0.0
b=0.0
diff=NaN(非数)でなく、且つdiff が正の場合
r=rc×0.1+0.9×Rmax×diff/dmax
g=gc×0.1
b=bc×0.1
diff=NaN(非数)でなく、且つdiff が負の場合
r=rc×0.1
g=gc×0.1
b=bc×0.1+0.9×Bmax×(−diff)/dmax
【0109】
上式に基づき、表示が制御される場合、diff=NaN(非数)のときには、R、G、Bの各チャネルの値は0に設定される。そして、diff=NaN(非数)でなく、且つdiffが正の場合、Rチャネルの値は、その点における色情報(rc)に0.1を乗算し、その値に、0.9、最大値(Rmax)、および形状差分データの値(diff)を乗算し、最大値(dmax)で除算した値が加算された値とされる。Gチャネルの値と、Bチャネルの値は、それぞれ、その点における色情報(gc、bc)に、0.1が乗算された値とされる。
【0110】
diff=NaN(非数)でなく、且つdiffが負の場合、Rチャネルの値と、Gチャネルの値は、それぞれ、その点における色情報(rc、gc)に、0.1が乗算された値とされる。Bチャネルの値は、その点における色情報(bc)に0.1を乗算し、その値に、0.9、最大値(Bmax)、および形状差分データの値(diff)を乗算し、最大値(dmax)で除算した値が加算された値とされる。
【0111】
このような設定に基づき、各点が表示されると、赤い領域が、基軸方向に正の方向の差が大きい領域であることを示し、青い領域が、基軸方向と逆の方向の差が大きい領域であることを示す表示となる。
【0112】
なお、ここでは、基準三次元形状画像データ61の各点の色情報に、形状差分データを反映させて表示させるとして説明したが、参照三次元形状データ62の各点の色情報に、形状差分データを反映させて表示させるようにしても良い。参照三次元形状データ62の各点の色情報に、形状差分データを反映させて表示させる場合、上記した基準三次元形状データ61の各点の色情報に、形状差分データを反映させて表示させる場合と同様の処理で実行することが可能であるため、ここでは、その説明を省略する。
【0113】
次に、2つめの表示の仕方である、高さ(基軸)方向の形状差分データに応じた表示について説明する。この表示の場合、図15を参照して説明するに、基軸(例えば、物体に対する高さ方向)に垂直な所定の面を設定する。設定された所定の面には、グリッド間隔とグリッドの主軸が設定される。グリッド間隔は、ユーザが設定することができるように構成されている。これは、ユーザが、所望する差分値の細かさを設定できるようにするためである。勿論、デフォルトのグリッド間隔が設定されており、そのデフォルトのグリッド間隔でよければ、ユーザは変更しなくても良いように構成されている。
【0114】
グリッドの主軸は任意に設定される。例えば、グリッド主軸のY軸が、高さ方向と視線方向Zc(図6乃至図8を参照して説明したピンホールカメラの説明参照)と垂直な姿勢関係になるようにし、グリッド主軸のX軸が、グリッド主軸のY軸と高さ方向と垂直な姿勢関係になるように設定される。各グリッドには、基軸方向でスキャンされ、グリッドに属する基準三次元形状データ51の三次元点が選択され、選択された基準三次元形状データ51の三次元点群がもつ差分値の最大値が求められる。
【0115】
グリッド毎に差分値の最大値が求められる。ただし、最大値が求められるとき、NaN (非数)の差分値をもつ三次元点は無視する。また、基軸方向にスキャンしても、属する基準三次元形状データ51の三次元点がないグリッドには、NaN (非数)を差分値とする。求められた差分値の最大値が表示される。グリッド毎に得られた差分値の最大値を表示する方法として、例えば、差分値の最大値を高さにしてメッシュで表示することが考えられる。
【0116】
また、グリッド毎に色をつけて等高線表示する方法もある。色の設定に関しては、例えば、下式に基づき設定する方法がある。
diff=NaN(非数)の場合
r=0.0
g=0.0
b=0.0
diff=NaN(非数)でなく、且つ diff が正の場合
r=(0.9×(diff/dmax)+0.1)×Rmax
g=(0.1)×Gmax
b=(0.1)×Bmax
diff=NaN(非数)でなく、且つ diff が負の場合
r=(0.1)×Rmax
g=(0.1)×Gmax
b=(0.9×(−diff/dmax)+0.1)×Bmax
【0117】
図16に、このような設定に基づき表示が行われた例を示す。この設定は、上記した例と同様の設定である。すなわち、設定は同じであっても、グリッド線などを設定して表示するか、または、基準三次元形状画像61に重ねて表示するかなどにより、異なる表示となる。
【0118】
このように、形状差分データに基づく表示は、ユーザが所望とする表示にすることができる。
【0119】
[他の実施の形態について]
上述した実施の形態においては、形状差分データが生成された後、基準三次元形状画像61に、形状差分データに基づく表示を重畳して表示したり、または、グリッド毎に表示したりする例を示した。以下に、参照三次元形状画像62に形状差分データに基づく表示を重畳する実施の形態について説明する。また、この参照三次元形状画像62は、実際にカメラで撮像されている画像である場合を例にあげて説明する。
【0120】
すなわち、この実施の形態においては、実際に撮像されている三次元形状の物体(実物体)との差分が、その実物体の画像に重畳されて表示される例である。図17を参照して説明する。画像501は、物体511の修理後の画像である。この画像501は、図3を参照して説明した基準三次元形状画像61に相当する。画像502は、物体511の修理前の画像である。この画像502は、図3を参照して説明した参照三次元形状画像62に相当する。
【0121】
修理後の物体511と修理前の物体512とでは、修理した箇所513があるため、その箇所513が差分として検出される。画像503は、カメラなどで撮像されている画像であり、物体511(物体512)と同一の物体514の画像である。画像503には、さらに物体514の画像に対して、修正した箇所513の差分画像515が重畳されて表示される。
【0122】
図18に一例を示す。カメラ551により、実物体514’が撮影されている。カメラ551からの実物体514’の画像は、画像503としてユーザに提供される。画像503には、カメラ551からの実物体514’の画像が、物体514として表示され、さらに、その画像514に図示されていない他の装置から供給された差分画像515が重畳されて表示されている。
【0123】
例えば、実物体514’がユーザにより90度回転された場合、カメラ551は、90度回転された実物体514’を撮像する。画像503の物体514の画像も、90度回転された実物体514’の画像に切り換えられる。そして、差分画像515も、切り換えられた物体514の画像に対応する画像に切り換えられる。よって、ユーザは、実際の実物体514’の位置を変えることで、所望の箇所の差分を、閲覧することが可能となる。
【0124】
このように、差分状態を実画像(実際に撮像されている物体の画像)に合わせて可視化するときには、以下の条件を整えることで実現できる。まず実物体(実物体514’)があり、その実物体を撮像できる状態にある。これは、差分画像515を重畳するための画像が取得できることが条件とされるからである。
【0125】
予め、実物体の三次元形状データを計測し、その三次元形状データが取得されている。この取得されている三次元形状データは、図17や図18を参照して説明した例では、修理後の物体511の三次元形状データ(基準三次元形状データ51に相当)と、修理前の物体512の三次元形状データ(参照三次元形状データ52に相当)である。
【0126】
表示する時点で、必要とされる三次元形状データは、基準三次元形状データ51である。この基準三次元形状データ51は、実物体の画像と位置合わせを実行するときに必要とされる。実物体の画像と位置合わせするために、基準三次元形状データ51の幾つかの三次元点には、局所特徴量情報がある。局所特徴量情報とは、例えば 回転にロバストな特徴量を持つ特徴点である。このような特徴点については、本出願人が先に出願した特開2006-190201号公報に記載があり、その記載に基づく特徴点を本発明に適用することができる。
【0127】
また、表示する時点で、差分画像515を表示するためのデータ、すなわち、形状差分データが必要である。よって予め、基準三次元形状データ51と参照三次元形状データ52との位置合わせの処理は行われている。その位置合わせの処理が終了済みのデータから、表示が実行される時点で、必要に応じ、形状差分データが生成される。
【0128】
実物体を撮像するカメラは、ピンホールカメラモデル(図6、図7を参照して説明したピンホールカメラモデル)に従うとし、カメラの内部パラメータは既知であることを条件とする。これは、カメラの位置を、ユーザの視点の位置として用いる必要があるからである。
【0129】
図19に、このような処理を行うときの画像処理装置600の構成例を示す。図4に示した画像処理装置100と同様の機能を有する部分には、同様の符号を付し、その説明は適宜省略する。図19に示した画像処理装置600は、データベース101−1、データベース101−2、位置合わせ処理部102、差分処理部103、表示処理部611、基軸設定部612、記憶部613、スイッチ614、カメラ位置姿勢取得処理部615、およびカメラ616を含む構成とされている。
【0130】
データベース101−1、データベース101−2、位置合わせ処理部102は、画像処理装置600に含まれていない構成とすることも可能である。これは、上記したように、データベース101−1に記憶される基準三次元形状データ51と、データベース101−2に記憶される参照三次元形状データ52が用いられ、位置合わせ処理部102により、位置合わせが行われているからである。よって、この位置合わせ処理部102にからのデータが、例えばネットワーク経由で差分処理部103に供給されるように、画像処理装置600が構成されるようにしても良い。
【0131】
また、位置合わせ後のデータが記憶され、その記憶されているデータが読み出される(供給される)構成とすることも可能である。
【0132】
差分処理部103は、上述したような処理(例えば、図14のフローチャートを参照して説明した処理)を実行し、形状差分データを生成する。基軸設定部612は、基軸を設定するが、その設定を行うとき、記憶部613に記憶されている情報を用いて基軸を設定する。記憶部613には、基軸方向の設定用のカメラ616の位置姿勢が記憶される。記憶部613に記憶されるカメラ616の位置姿勢の情報は、スイッチ614を介して、カメラ位置姿勢取得処理部615から供給される。
【0133】
カメラ位置姿勢取得処理部615は、図4に示した画像処理装置100の視点計算部106に相当する部分である。カメラ位置姿勢取得処理部615は、撮像されている実物体の画像と、三次元形状データ(基準三次元形状データ51)上の局所特徴量情報とのマッチングを行い、所定の方法で、カメラの位置姿勢を求める。この所定の方法としては、以下の文献に記載されているRANSAC based 3 point algorithm を適用して求めることができる。
Martin A. Fischler and Robert C. Bolles (June 1981). "Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography". Comm. of the ACM 24: 381395.
【0134】
上記文献に記載されているRANSAC based 3 point algorithm を適用した場合、撮像されている実物体の画像と、三次元形状データ(基準三次元形状データ51)の局所特徴量情報とのマッチングは、本出願人が先に出願した、特開2006-190191号公報や、特開2006-190192号公報に記載されている方法を適用して行うことができる。
【0135】
また、カメラ位置姿勢取得処理部615は、センサを備える構成としても良い。カメラ616の姿勢や位置を測量できるセンサ、または、姿勢や位置の変化を測量できるセンサにより、姿勢位置情報が取得されるようにしても良い。
【0136】
記憶部613は、視点方向を常に保持するために、画像処理装置600に設けられている。記憶部613に記憶されている情報は、スイッチ614が、記憶部613側に接続されているときである。スイッチ614は、ユーザにより切り換えられる。このスイッチ614は、ユーザが基軸の方向を変更したいときに操作される。
【0137】
スイッチ614が記憶部613側に接続されているとき、カメラ位置姿勢取得処理部615で取得された位置姿勢の情報が、記憶部613に供給され、記憶部613に既に記憶されている情報に上書きされる。ユーザは、カメラ616を変更したい基軸方向に位置させ、スイッチ614を操作することで、所望の基軸の方向を設定できるように、画像処理装置600は構成されている。基軸が変更されないときには、スイッチ614は、記憶部613側とは接続されないように構成されている。
【0138】
表示処理部611には、カメラ616で撮像された画像と、カメラ位置姿勢取得処理部615で取得されたカメラ616の位置姿勢の情報が供給される。表示制御部611は、カメラ位置姿勢取得処理部615からの位置姿勢の情報により、カメラ位置を認識し、その認識に基づき、カメラ616からの画像に差分処理部103からの形状差分データに基づく差分画像を重畳させた画像の表示の制御を行う。
【0139】
三次元形状データ同士の差分結果をカメラ画像に射影(重畳)する方法について説明する。この場合、三次元形状データ同士の差分結果とは、基準三次元形状データ51と参照三次元形状データ52との形状差分データのことである。
【0140】
図6、図7を参照して説明したピンホールカメラモデルの説明において、射影変換の式である式(4)(図7に示した式)を利用することができる。カメラ内部パラメータAと、カメラ(画像)の位置・姿勢 Rw tw は既知である。実物体の三次元形状データ(基準三次元形状データ51)の三次元点の位置をMに入力し、実物体の三次元形状データの三次元点に対応するカメラ画像内の位置を求める。
【0141】
その位置の画素の色と、三次元形状データ(基準三次元形状データ51)の三次元点の色情報をアルファブレンディングする。実物体の三次元形状データ(基準三次元形状データ51)の全点に対して以上の処理をすれば、三次元形状データ同士の差分結果をカメラ画像に射影することができる。
【0142】
このように構成される画像処理装置600において、カメラ616は、視点として扱われる。すなわち、カメラ616が、ユーザの視点とされ、そのカメラ616で撮像されている画像に、差分画像が重畳される。
【0143】
このような構成を有する画像処理装置600においては、実物体の基準三次元形状データ51と参照三次元形状データ52の差分結果を、実物体の画像に重畳して表示することができる。実物体に対するカメラ位置姿勢を計測し、視点位置姿勢として処理することで、図18に示したような画像をリアルタイムに作成し、ユーザに提供することが可能となる。
【0144】
図20のフローチャートを参照し、画像処理装置600の動作について説明する。ステップS201において、カメラ616により、実物体の撮像が行われる。その撮像された実物体の画像の画像データは、カメラ位置姿勢取得処理部615と表示処理部611に供給される。ステップS202において、カメラ位置姿勢取得処理部615は、カメラ616の位置姿勢に関する情報を取得(算出)する。この取得は、上記したように、例えば、ピンホールカメラモデルに基づき算出された値が取得されることで行われる。
【0145】
ステップS203において、カメラ位置姿勢取得処理部615は、位置姿勢に関する情報を取得できたか否かを判断する。位置姿勢に関する情報が取得できないのは、例えば、カメラ616で撮像されている画像内に、実物体の画像がない場合などである。ステップS203において、位置姿勢に関する情報が取得できたと判断された場合、ステップS204に処理が進められる。
【0146】
ステップS204において、位置姿勢に関する情報が、カメラ位置姿勢取得処理部615から、スイッチ614に転送される。スイッチ614が、記憶部613側に接続されていた場合、転送されてきた情報に、記憶部613に記憶されている情報が上書きされる。また、図20に示したフローチャートの処理としては図示していないが、位置姿勢に関する情報が取得されなかった場合には、カメラ位置姿勢取得処理部615は、位置姿勢に関する情報をスイッチ614には転送しない。
【0147】
ステップS205において、差分処理部103は、形状差分データを取得する。差分処理部103は、位置合わせ処理部102からの位置合わせが行われた基準三次元形状データ51と参照三次元形状データ52を用い、基軸設定部612により設定された基軸方向における差分値を算出し、形状差分データを生成する。生成された形状差分データは、表示処理部611に転送される。
【0148】
ステップS206において、表示処理部611は、差分処理部103からの形状差分データに基づく形状差分画像を生成し、カメラ616からの実物体の画像の対応する部分に重畳した画像を生成する。そして、その画像を、カメラ位置姿勢取得処理部615からの位置姿勢に基づく視点から見える画像に変換し、その変換後の画像の表示を、図示していないディスプレイなどを制御して行う。このようにして、実画像に差分が重畳された画像がユーザに提供される。
【0149】
一方、ステップS203において、カメラ位置姿勢取得処理部615により位置姿勢に関する情報は取得できなかったと判断された場合、ステップS207に処理が進められる。この場合、カメラ位置姿勢取得処理部615から位置姿勢に関する情報は転送されないため、表示処理部611には、カメラ616からの画像データのみが供給される。表示処理部611は、ステップS207において、カメラ616からの画像データに基づく画像の表示を制御する。
【0150】
このような処理が繰り返し行われることで、実物体の実画像に差分結果を重畳してユーザに提供することが可能となる。また、このような重畳によれば、ユーザは、見たい方向にカメラ616を移動させることで、自由に差分画像を表示させることができ、例えば、製品チェックや補正(完成品モデルとの比較)、経年劣化調査(例えば家・道具の痛み具合)などに広く適用することができる。
【0151】
このような重畳された画像を提供することで、ユーザが、直感的に差分を認識できる、見たい場所に直接視点を移動できるといった効果を期待できる。また、オンラインで、三次元形状データが取得できる構成とすることで、形状の修正が直感的にできるようになる。
【0152】
上記した実施の形態は、例えば、以下のような応用製品、サービスに適用できる。例えば、工場で、完成品とモデルとの比較を行うことで、製品の詳細なチェックを行うことができる。この場合、差分がある場合には、修正するといったことが可能となり、出荷する商品の完成精度を向上させることが可能となる。
【0153】
また、詳細な経年劣化の調査を行うことが可能となる。例えば、家といった大きな物体であっても、本発明を適用すれば、経年劣化による差分を検出することができる。また、家具、道具などの傷み具合を差分として検出することができる。
【0154】
また、人の体型の変化などを検査することも可能となる。例えば、1年に1回程度行われる定期健診のとき、前年度の体型と、今年度の体型を簡単に比較することができる。このようなことを利用することで、メタボリックシンドロームのチェックを行うことも可能となる。
【0155】
また、堤防やダムの周辺などの形状変化の調査にも本発明を適用できる。例えば、上記した家の場合と同じく、経年劣化を調査することができる。また、土木工事の記録としてデータを残すことも可能となる。例えば、土木工事により、削られた部分や、増設された部分など、差分として検出することができるので、工事記録として残すことも可能となる。
【0156】
[記録媒体について]
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【0157】
図21は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。コンピュータにおいて、CPU(Central Processing Unit)1001、ROM(Read Only Memory)1002、RAM(Random Access Memory)1003は、バス1004により相互に接続されている。バス1004には、さらに、入出力インタフェース1005が接続されている。入出力インタフェース1005には、入力部1006、出力部1007、記憶部1008、通信部1009、及びドライブ1010が接続されている。
【0158】
入力部1006は、キーボード、マウス、マイクロフォンなどよりなる。出力部1007は、ディスプレイ、スピーカなどよりなる。記憶部1008は、ハードディスクや不揮発性のメモリなどよりなる。通信部1009は、ネットワークインタフェースなどよりなる。ドライブ1010は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア1011を駆動する。
【0159】
以上のように構成されるコンピュータでは、CPU1001が、例えば、記憶部1008に記憶されているプログラムを、入出力インタフェース1005及びバス1004を介して、RAM1003にロードして実行することにより、上述した一連の処理が行われる。
【0160】
コンピュータ(CPU1001)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア1011に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【0161】
コンピュータでは、プログラムは、リムーバブルメディア1011をドライブ1010に装着することにより、入出力インタフェース1005を介して、記憶部1008にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部1009で受信し、記憶部1008にインストールすることができる。その他、プログラムは、ROM1002や記憶部1008に、予めインストールしておくことができる。
【0162】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0163】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【0164】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【0165】
100 画像処理装置, 101−1,101−2 データベース, 102 位置合わせ処理部, 103 差分処理部, 104 表示処理部, 105 基軸設定部, 106 視点計算部, 600 画像処理装置, 611 表示処理部, 612 基軸設定部, 613 記憶部, 614 スイッチ, 615 カメラ位置姿勢取得処理部, 616 カメラ

【特許請求の範囲】
【請求項1】
第1の画像データに基づく第1の画像と第2の画像データに基づく第2の画像の位置合わせを行う位置合わせ手段と、
前記位置合わせ手段により位置合わせが行われた前記第1の画像と前記第2の画像との差分を検出する検出手段と、
前記検出手段が前記差分を検出する方向を設定する設定手段と
を備え、
前記検出手段は、前記第1の画像を構成する所定の点と、前記第2の画像を構成するポリゴンとの差分であり、前記設定手段により設定された方向での差分を検出する
画像処理装置。
【請求項2】
前記第1の画像データと前記第2の画像データは、三次元形状の物体の画像データである
請求項1に記載の画像処理装置。
【請求項3】
前記設定手段は、設定された視点に対して同一の方向、または前記視点と垂直に交わる方向に、前記差分を検出する方向を設定する
請求項1に記載の画像処理装置。
【請求項4】
前記検出手段により検出された前記差分の表示を制御する表示制御手段をさらに備え、
前記表示制御手段は、前記第1の画像データまたは前記第2の画像データの各点の色情報に、前記差分の大きさに基づく色を反映させて表示させるための制御を行う
請求項1に記載の画像処理装置。
【請求項5】
前記検出手段により検出された前記差分の表示を制御する表示制御手段をさらに備え、
前記表示制御手段は、グリッド領域内で最も大きい値の前記差分を抽出し、その抽出された差分の値に基づくメッシュ状での表示を制御する
請求項1に記載の画像処理装置。
【請求項6】
撮像手段により撮像された第3の画像であり、前記第1の画像と前記第2の画像に撮像されている物体と同一の物体の画像である第3の画像に、前記差分を重畳させた画像の表示を制御する表示制御手段と、
前記第1の画像または前記第2の画像における局所特徴量と、前記第3の画像の局所特徴量を用いて、前記撮像手段の位置姿勢を取得する取得手段と、
をさらに備え、
前記設定手段は、前記取得手段により取得された前記位置姿勢に基づき前記方向を設定し、
前記表示制御手段は、前記設定手段で設定された前記位置姿勢に対する前記差分が重畳された画像の表示を制御する
請求項1に記載の画像処理装置。
【請求項7】
位置合わせ手段、検出手段、および設定手段を備える画像処理装置の画像処理方法において、
前記位置合わせ手段は、第1の画像データに基づく第1の画像と第2の画像データに基づく第2の画像の位置合わせを行い、
前記検出手段は、前記位置合わせ手段により位置合わせが行われた前記第1の画像と前記第2の画像との差分を検出し、
前記設定手段は、前記検出手段が前記差分を検出する方向を設定する
ステップを含み、
前記第1の画像を構成する所定の点と、前記第2の画像を構成するポリゴンとの差分であり、前記設定手段により設定された方向での差分を検出する
画像処理方法。
【請求項8】
位置合わせ手段、検出手段、および設定手段を備える画像処理装置に、
前記位置合わせ手段は、第1の画像データに基づく第1の画像と第2の画像データに基づく第2の画像の位置合わせを行い、
前記検出手段は、前記位置合わせ手段により位置合わせが行われた前記第1の画像と前記第2の画像との差分を検出し、
前記設定手段は、前記検出手段が前記差分を検出する方向を設定する
ステップを含み、
前記第1の画像を構成する所定の点と、前記第2の画像を構成するポリゴンとの差分であり、前記設定手段により設定された方向での差分を検出する
処理をコンピュータに実行させるプログラム。

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

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate


【公開番号】特開2011−39646(P2011−39646A)
【公開日】平成23年2月24日(2011.2.24)
【国際特許分類】
【出願番号】特願2009−184415(P2009−184415)
【出願日】平成21年8月7日(2009.8.7)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】