説明

画像処理装置および画像処理方法

【課題】 複数の撮像画像から物体の3次元形状を高速に生成することが可能な画像処理装置を提供する。
【解決手段】 画像処理装置1は、周囲を撮像して画像を取得する第1カメラ10および第2カメラ11と、第1カメラ10および第2カメラ11により取得された画像から物体の3次元形状を復元する画像処理ECU20とを備えている。画像処理ECU20には、物体の3次元モデルを生成する3次元モデル生成部23と、第1カメラ10,第2カメラ11からの奥行き情報を記憶する奥行き情報記憶部26と、奥行き情報に基づいて3次元モデルに画像を貼り付けて3次元形状を復元する3次元形状復元部25が構築されている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の画像から物体の3次元形状を復元する画像処理装置および画像処理方法に関する。
【背景技術】
【0002】
複数の異なる方向から撮像されたステレオ画像から、物体の3次元形状を復元する技術が従来から提案されている(例えば、特許文献1参照)。特許文献1記載の技術では、まず、複数の異なる方向から撮像されたステレオ画像から3次元輪郭線を復元するとともに、該ステレオ画像に基づいて3次元領域を復元する。そして、これら復元された3次元輪郭線および3次元領域の情報を、3次元モデルの3次元輪郭線および3次元領域の情報と位置合わせをして統合し、物体の3次元形状を復元する。
【特許文献1】特開2000−99760号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、上述した技術では、3次元輪郭線および3次元領域の情報の位置合わせを行うときの計算負荷が非常に高く、リアルタイム処理が要求されるアプリケーションに適用することが困難であった。そのため、物体の3次元形状を復元する処理の高速化が望まれていた。
【0004】
本発明は、上記問題点を解消する為になされたものであり、複数の撮像画像から物体の3次元形状を高速に復元することが可能な画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【0005】
本発明に係る画像処理装置は、周囲を撮像して画像を取得する撮像手段と、撮像手段により撮像された物体の3次元モデルを生成する3次元モデル生成手段と、撮像手段からの奥行き情報を記憶する奥行き情報記憶手段と、奥行き情報に基づいて3次元モデルに画像を貼り付けて3次元形状を復元する3次元形状復元手段とを備えることを特徴とする。
【0006】
また、本発明に係る画像処理方法は、撮像手段により周囲を撮像して画像を取得する撮像ステップと、撮像ステップで撮像された物体の3次元モデルを生成する3次元モデル生成ステップと、撮像手段からの奥行き情報を記憶する奥行き情報記憶ステップと、奥行き情報に基づいて3次元モデルに画像を貼り付けて3次元形状を復元する3次元形状復元ステップとを備えることを特徴とする。
【0007】
本発明に係る画像処理装置または画像処理方法によれば、奥行き情報に基づいて、画像中に含まれる複数の被写体間の前後関係を高速に判断し、手前に見えている部分の画像のみを選択して貼り付けることができるため、3次元モデルに対する画像の貼り付けを高速に行うことが可能となる。
【0008】
上記3次元形状復元手段は、3次元モデルに画像を貼り付ける際に、奥行き情報に基づいて画像データを補正することが好ましい。
【0009】
また、上記3次元形状復元ステップでは、3次元モデルに画像を貼り付ける際に、奥行き情報に基づいて画像のデータを補正することが好ましい。
【0010】
この場合、3次元モデルに画像を貼り付ける際に、画像中に含まれる被写体の奥行きを考慮して、画像のデータ、例えばピクセルの輝度値やテクスチャの細かさなどを補正することができるので、より高精度に画像の貼り付けを行うことが可能となる。また、ピクセルごとの奥行き情報がすでに記憶されているので、補正を高速に行うことができる。
【発明の効果】
【0011】
本発明によれば、奥行き情報を記憶する構成としたので、複数の画像から物体の3次元形状を高速に復元することが可能となる。
【発明を実施するための最良の形態】
【0012】
以下、図面を参照して本発明の好適な実施形態について詳細に説明する。図中、同一又は相当部分には同一符号を用いることとする。
【0013】
まず、図1を用いて、実施形態に係る画像処理装置1の全体構成について説明する。図1は、実施形態に係る画像処理装置1の全体構成を示すブロック図である。画像処理装置1は、複数の画像から物体の3次元形状を復元するものである。そのため、周囲の風景を撮像して画像を取得する第1カメラ(撮像手段)10および第2カメラ(撮像手段)11と、第1カメラ10により撮像された画像(以下「第1撮像画像」という)と第2カメラ11により撮像された画像(以下「第2撮像画像」という)とから、物体の3次元形状を復元する画像処理用電子制御装置(以下「画像処理ECU」という)20とを備えている。
【0014】
第1カメラ10および第2カメラ11は、CCDカメラである。両カメラは、水平(左右)方向に所定距離(例えば100mm)離間して設置されている。また、両カメラの光軸は略平行で、かつ撮像面の水平軸が同一線上に揃うように配置されている。第1カメラ10および第2カメラ11は、それぞれ周囲の風景を撮像して画像を取得し、取得した画像を画像処理ECU20に出力する。
【0015】
画像処理ECU20は、データの演算などを行うCPU(Central Processing Unit)、3次元グラフィックスの表示に必要な計算処理を行うGPU(Graphic Processing Unit)、CPUやGPUに各処理を実行させるためのプログラムやデータなどを記憶するROM、演算結果などの各種データを記憶するRAM、およびバッテリによってその記憶内容が保持されるバックアップRAMなどにより構成されている。
【0016】
上記構成により、画像処理ECU20には、第1仮想画像生成部21、第2仮想画像生成部22、3次元モデル生成部23、差分取得部24、3次元形状復元部25、および奥行き情報記憶部26が構築されている。なお、第1仮想画像生成部21、第2仮想画像生成部22、3次元モデル生成部23、3次元形状復元部25、奥行き情報記憶部26、および差分取得部24の一部は、GPU内に構築されている。
【0017】
3次元形状復元部25は、奥行き情報記憶部26に記憶されている奥行き情報に基づいて、3次元モデル生成部23から入力される3次元モデルに第1カメラ10から入力される第1撮像画像を貼り付けて第1の3次元形状を生成する。また、記憶されている奥行き情報に基づいて、3次元モデルに第2カメラ11から入力される第2撮像画像を貼り付けて第2の3次元形状を生成する。
【0018】
さらに、3次元形状復元部25は、3次元モデルに画像を貼り付ける際に、奥行き情報に基づいて画像のデータを補正する。なお、補正内容の詳細については後述する。生成された第1の3次元形状は第1仮想画像生成部21に出力される。また、第2の3次元形状は第1仮想画像生成部22に出力される。3次元形状復元部25は、特許請求の範囲に記載の3次元形状復元手段として機能し、3次元形状復元ステップを実行する。また、奥行き情報記憶部26は、奥行き情報記憶手段として機能する。
【0019】
第1仮想画像生成部21は、3次元形状復元部25から入力される第1の3次元形状を第1カメラ10と第2カメラ11との中間位置に仮想的に設けられた仮想カメラの撮像面に投射して第1仮想画像を生成する。生成された第1仮想画像は、差分取得部24に出力される。
【0020】
第2仮想画像生成部22は、3次元形状復元部25から入力される第2の3次元形状を上記仮想カメラの撮像面に投射して第2仮想画像を生成する。生成された第2仮想画像は、差分取得部24に出力される。
【0021】
差分取得部24は、第1仮想画像生成部21から入力される第1仮想画像と、第2仮想画像生成部22から入力される第2仮想画像との差分を求めるとともに、該差分を小さくする3次元モデルの修正データを取得する。取得された3次元モデルの修正データは3次元モデル生成部23に出力される。
【0022】
3次元モデル生成部23は、物体の3次元モデルを生成するとともに、差分取得部24から入力される3次元モデルの修正データに基づいて、第1仮想画像と第2仮想画像との差異が小さくなるように3次元モデルを修正する。3次元モデル生成部23は、特許請求の範囲に記載の3次元モデル生成手段として機能し、3次元モデル生成ステップを実行する。
【0023】
画像処理装置1は、上記一連の処理(第1仮想画像の生成、第2仮想画像の生成、第1仮想画像と第2仮想画像との差分取得、および3次元モデルの修正など)を繰り返して実行することにより物体の3次元形状を復元し、その3次元形状および/または3次元モデルを外部に出力する。なお、出力としての3次元形状および/または3次元モデルは、例えば、ロボットの制御や車両の自動走行などに利用される。より具体的な例を挙げると、ロボット制御において、物体を避けて移動する経路を演算する際や、物体を越えて物をつかみに行くときなどに、3次元形状の生成結果を用いることができる。
【0024】
次に、図2〜8を併せて参照して、画像処理装置1の動作および画像処理方法について説明する。図2は、画像処理装置1による3次元形状復元処理の処理手順を示すフローチャートである。この処理は、画像処理装置1の電源がオンされてからオフされるまでの間、所定のタイミングで繰り返し実行される。なお、図2に示されるフローチャート中のステップS104〜ステップS114、およびステップS122は、主として画像処理ECU20を構成するGPUにより処理が実行される。一方、ステップS100、ステップS102、およびステップS116〜ステップS120は、主としてCPUにより処理が実行される。
【0025】
ステップS100では、第1カメラ10から第1撮像画像(以下「左画像」ということもある)が読み込まれるとともに、読み込まれた左画像に対して前処理が施される。ここで、左画像に施される前処理は、後の処理を容易にするために行われるものである。前処理としては、例えば、読み込まれた左画像を第1カメラ10が第2カメラ11と平行に取り付けられていると仮定した場合に得られる画像に変換する処理や、レンズの歪みを補正する処理などが挙げられる。
【0026】
続いて、ステップS102では、第2カメラ11から第2撮像画像(以下「右画像」ということもある)が読み込まれるとともに、この右画像に対して前処理が施される。ここで、右画像に施される前処理は、上述した左画像に施される前処理と同一または同様である。
【0027】
続くステップS104では、左画像および右画像を構成する各ピクセルが有する色のRGB値が、次式により重み付きRGB値(R’、G’、B’)に変換される。
R’=0.2989×R ・・・(1)
G’=0.5866×G ・・・(2)
B’=0.1145×B ・・・(3)
ここで、各係数は、CCDカメラを構成するRGBそれぞれの素子数の比率に応じて定められる。
【0028】
次に、ステップS106では、ステップS100で読み込まれ、前処理が施された左画像(以下、画像を「テクスチャ」ということもある)が、物体の3次元モデルに貼り付けられ(以下「テクスチャマッピング」ということもある)第1の3次元形状(テクスチャド3次元モデル)が生成される。ここで、図3および図4を併せて参照して、左画像の貼り付け方法について詳細に説明する。図3は、画像の貼り付け処理の処理手順を示すフローチャートである。図4は、画像の貼り付け方法を説明するための図である。なお、ここでは、撮像画像中の家の屋根Rr部分を3次元モデルの屋根Rm部分に貼り付ける場合を例にして説明する。
【0029】
まず、ステップS200では、屋根Rm部分に含まれる点Pmの奥行き情報zが取得される。次に、ステップS202において、図4の上側に示されるように、点Pmの属する面(屋根Rm部分)の角度φ、すなわち点Pmの属する面の傾きが、各頂点の奥行き情報zを含む3次元座標から求められる。
【0030】
続いて、ステップS204では、奥行き情報zおよび面の角度φに基づいて、撮像画像中の点Pr(3次元モデルの点Pmに対応する点)を含む屋根Rr部分のテクスチャが変換される。より詳細には、奥行き情報zおよび面の角度φに基づいて、カメラから遠い部分はテクスチャの密度が大きくなるように、すなわちテクスチャが細かくなるように変換される。逆に、カメラから近い部分はテクスチャの密度が小さくなるように、すなわちテクスチャが粗くなるように変換される。
【0031】
ステップS206では、図4の下側に示されるように、テクスチャが変換された後の屋根Rr部分の画像が、3次元モデルの屋根Rm部分に貼り付けられる。他の部分も同様にして、奥行き情報zおよび面の角度φに基づいてテクスチャが変換されて3次元モデルに貼り付けられ、テクスチャ付き3次元モデル、すなわち3次元形状が生成される。
【0032】
ここで、3次元モデルにテクスチャが貼り付けられる際には、奥行き情報記憶部25に記憶されている奥行き情報に基づいて複数の物体間の遮蔽関係が判断され、より前面に位置する3次元モデルを構成する部分(以下「メッシュ」ということもある)に対してテクスチャが貼り付けられる。より詳細には、ピクセルごとにRGB値に加えて奥行き情報が付加されており、図5に示される例では、点P1の奥行き情報に基づいて、点P1を含む屋根Rが木Tよりも前面にあると自動的に判断され、点Pを含むメッシュに屋根Rのテクスチャが貼り付けられる。
【0033】
ここで、奥行き情報記憶部25は、奥行き情報が新たに算出された場合、この値と既に記憶されている奥行き情報とを比較し、小さい方の値を奥行き情報として自動的に記憶するデータ構造を有している。したがって、奥行き情報記憶部25には、もっとも値が小さい奥行き情報、すなわちカメラもっとも近い情報が自動的に残される。なお、奥行き情報記憶部25としては、GPUのZバッファを利用することができる。
【0034】
また、メッシュにテクスチャを貼り付ける際に、前記奥行き情報に基づいて、テクスチャの補間(補正)処理を行ってもよい。次に、図6を参照して、奥行き情報に基づくテクスチャの補間処理について説明する。なお、ここでは、屋根Rに貼り付けられるテクスチャの輝度値を補間する場合を例にして説明する。なお、ここでは、例示として輝度値を挙げたが、補間の対象は、輝度値に限られることなく、例えばRGB値などであってもよい。
【0035】
図6において、L1、L2、L3は、奥行きを考慮した場合の点P2から屋根Rの各頂点までの距離である。なお、距離L1、L2、L3は、点P2と屋根Rの各頂点の奥行き情報を含む3次元座標から求められる。また、v1、v2、v3は、屋根Rの各頂点における輝度値である。この場合、点P2の輝度値v0は次式により補間される。
v0={v1×(L2+L3)/L}+{v2×(L3+L1)/L}+{v3×(L1+L2)/L} ・・・(4)
ただし、L=L1+L2+L3である。
【0036】
図6には、2次元平面上で補間する場合も併せて表示した。この場合には、2次元平面上での点P2’から屋根R’の各頂点までの距離L1’、L2’、L3’を用いて、同様に補間することができる。しかしながら、2次元平面上で補間した場合には、距離L1’、L2’、L3’が実際の距離と異なるため、奥行き情報を考慮した場合と比較して、補間処理の精度が低下する。
【0037】
図2のフローチャートに戻って説明を続ける。ステップS108では、ステップS102で読み込まれ、前処理が施された右画像が、物体の3次元モデルに貼り付けられ第2の3次元形状が生成される。ここで、右画像の貼り付け方法は、上述した左画像の場合と同一または同様であるので、ここでは説明を省力する。
【0038】
次に、ステップS110では、図7に示されるように、ステップS106で生成された第1の3次元形状が第1カメラ10と第2カメラ11との中間位置に仮想的に設けられた仮想カメラの撮像面Cvに投射されて、第1仮想画像が生成される。また、ステップS108で生成された第2の3次元形状が仮想カメラの撮像面Cvに投射されて、第2仮想画像が生成される。
【0039】
続いて、ステップS112では、第1仮想画像および第2仮想画像それぞれについて、画像を構成する各ピクセルの輝度値Yが、次式により求められる。
Y=R’+G’+B’ ・・・(5)
【0040】
次に、ステップS114では、ピクセルごとに輝度値Yを比較し、その比較結果をすべて合計することによって、図8に示されるように、第1仮想画像と第2仮想画像との差分が取得される。また、差分の前回値と今回値との差が求められる。また、メッシュの面の滑らかさを考慮するために、隣り合うピクセルの差も求められる。
【0041】
ステップS116では、まず、3次元モデルを構成するメッシュの頂点ごとに、重みが設定される。その際、各頂点から近いピクセルはウエイトが高く、遠いピクセルはウエイトが低くなるように重み付けがなされる。そして、重み付けされたピクセルの輝度値Yが評価関数に入力され、評価関数を最小化する3次元モデルの修正データが取得される(ステップS118)。ここで、重みは、評価関数を最小化する際に、そのピクセルを重視する程度を示すものである。重み付けを行うことによって、評価値を適切に収束させることができる。
【0042】
ステップS120では、評価値が収束したか否かについての判断が行われる。ここで、第1仮想画像と第2仮想画像との差分が小さくなり、例えば、評価値の前回値と今回値との減少幅が所定値以下になった場合に評価値が収束したと判断される。評価値が収束したと判断された場合には、生成された3次元モデルおよび/または3次元形状が出力された後、本処理から抜ける。一方、まだ評価値が充分に収束していないと判断された場合には、ステップS122に処理が移行される。
【0043】
ステップS122では、取得された修正データがGPUに渡され、この修正データに基づいて3次元モデルが更新される。また、修正データには奥行き情報が含まれており、新しく取得された奥行き情報と既に記憶されている奥行き情報とが比較され、小さい方の値が奥行き情報記憶部26に記憶される。なお、3次元モデルの初期値としては、例えば、平面や球などが用いられる。モデル更新後、ステップS106に処理が移行し、評価値が収束したと判断されるまで、上述したステップS106〜ステップS120の処理、すなわち3次元モデルの修正および評価が繰り返し行われることによって、適切な形状の3次元モデルが生成される。
【0044】
本実施形態によれば、奥行き情報に基づいて、画像中に含まれる複数の被写体間の前後関係を高速に判断し、手前に見えている部分のテクスチャのみを選択して貼り付けることができるため、3次元モデルに対するテクスチャの貼り付けを高速に行うことができる。その結果、処理時間が短縮され、物体の3次元形状を高速に復元することが可能となる。
【0045】
また、本実施形態によれば、3次元モデルにテクスチャを貼り付ける際に、画像中に含まれる被写体の奥行きを考慮して、テクスチャのデータ、例えばピクセルの輝度値やテクスチャの細かさなどを補正することができるので、より高精度にテクスチャの貼り付けを行うことが可能となる。また、ピクセルごとの奥行き情報がすでに記憶されているので、補正を高速に行うことができる。
【0046】
以上、本発明の実施の形態について説明したが、本発明は、上記実施形態に限定されるものではなく種々の変形が可能である。例えば、上記実施形態では、3次元モデルの初期値として平面や球などの形状を用いたが、他のセンサを用いておおよその3次元形状を検出し、その3次元形状を初期値として用いることもできる。また、使用するカメラの台数は、2台以上であってもよい。
【0047】
上記実施形態では、3次元モデルに第1撮像画像が貼り付けられ生成された第1の3次元形状が仮想カメラの撮像面Cvに投射されて得られる第1仮想画像と、3次元モデルに第2撮像画像が貼り付けられ生成された第2の3次元形状が仮想カメラの撮像面Cvに投射されて得られる第2仮想画像との差分が小さくなるように3次元モデルを更新したが、3次元モデルに第1撮像画像が貼り付けられ生成された第1の3次元形状が第2カメラ11の撮像面に投射されて得られる画像と、第2撮像画像との差分が小さくなるように3次元モデルを更新するような構成としてもよい。同様に、3次元モデルに第2撮像画像が貼り付けられ生成された第2の3次元形状が第1カメラ10の撮像面に投射されて得られる画像と、第1撮像画像との差分が小さくなるように3次元モデルを更新する構成としてもよい。
【図面の簡単な説明】
【0048】
【図1】実施形態に係る画像処理装置の全体構成を示すブロック図である。
【図2】実施形態に係る画像処理装置による3次元形状復元処理の処理手順を示すフローチャートである。
【図3】3次元形状復元処理におけるテクスチャマッピングの処理手順を示すフローチャートである。
【図4】テクスチャマッピングの処理方法を説明するための模式図である。
【図5】3次元モデルに貼り付けられる画像と奥行き情報との関係を示す図である。
【図6】画像の補間処理を説明するための図である。
【図7】仮想画像の取得方法を説明するための図である。
【図8】差分画像の取得方法を説明するための模式図である。
【符号の説明】
【0049】
1…画像処理装置、10…第1カメラ、11…第2カメラ、20…画像処理ECU、21…第1仮想画像生成部、22…第2仮想画像生成部、23…3次元モデル生成部、24…差分取得部、25…3次元形状復元部、26…奥行き情報記憶部。

【特許請求の範囲】
【請求項1】
周囲を撮像して画像を取得する撮像手段と、
前記撮像手段により撮像された物体の3次元モデルを生成する3次元モデル生成手段と、
前記撮像手段からの奥行き情報を記憶する奥行き情報記憶手段と、
前記奥行き情報に基づいて、前記3次元モデルに前記画像を貼り付けて3次元形状を復元する3次元形状復元手段と、を備ることを特徴とする画像処理装置。
【請求項2】
前記3次元形状復元手段は、前記3次元モデルに前記画像を貼り付ける際に、前記奥行き情報に基づいて前記画像のデータを補正することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
撮像手段により周囲を撮像して画像を取得する撮像ステップと、
前記撮像ステップで撮像された物体の3次元モデルを生成する3次元モデル生成ステップと、
前記撮像手段からの奥行き情報を記憶する奥行き情報記憶ステップと、
前記奥行き情報に基づいて、前記3次元モデルに前記画像を貼り付けて3次元形状を復元する3次元形状復元ステップと、を備えことを特徴とする画像処理方法。
【請求項4】
前記3次元形状復元ステップでは、前記3次元モデルに前記画像を貼り付ける際に、前記奥行き情報に基づいて前記画像のデータを補正することを特徴とする請求項3に記載の画像処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2007−172533(P2007−172533A)
【公開日】平成19年7月5日(2007.7.5)
【国際特許分類】
【出願番号】特願2005−372833(P2005−372833)
【出願日】平成17年12月26日(2005.12.26)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】