(57)【要約】【課題】  複数の撮像画像から物体の３次元形状を高速に生成することが可能な画像処理装置を提供する。【解決手段】  画像処理装置１は、周囲を撮像して画像を取得する第１カメラ１０および第２カメラ１１と、第１カメラ１０および第２カメラ１１により取得された画像から物体の３次元形状を復元する画像処理ＥＣＵ２０とを備えている。画像処理ＥＣＵ２０には、物体の３次元モデルを生成する３次元モデル生成部２３と、第１カメラ１０，第２カメラ１１からの奥行き情報を記憶する奥行き情報記憶部２６と、奥行き情報に基づいて３次元モデルに画像を貼り付けて３次元形状を復元する３次元形状復元部２５が構築されている。【選択図】  図１
2007172533.tif 000002
【特許請求の範囲】
【請求項１】
周囲を撮像して画像を取得する撮像手段と、
前記撮像手段により撮像された物体の３次元モデルを生成する３次元モデル生成手段と、
前記撮像手段からの奥行き情報を記憶する奥行き情報記憶手段と、
前記奥行き情報に基づいて、前記３次元モデルに前記画像を貼り付けて３次元形状を復元する３次元形状復元手段と、を備ることを特徴とする画像処理装置。
【請求項２】
前記３次元形状復元手段は、前記３次元モデルに前記画像を貼り付ける際に、前記奥行き情報に基づいて前記画像のデータを補正することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
撮像手段により周囲を撮像して画像を取得する撮像ステップと、
前記撮像ステップで撮像された物体の３次元モデルを生成する３次元モデル生成ステップと、
前記撮像手段からの奥行き情報を記憶する奥行き情報記憶ステップと、
前記奥行き情報に基づいて、前記３次元モデルに前記画像を貼り付けて３次元形状を復元する３次元形状復元ステップと、を備えことを特徴とする画像処理方法。
【請求項４】
前記３次元形状復元ステップでは、前記３次元モデルに前記画像を貼り付ける際に、前記奥行き情報に基づいて前記画像のデータを補正することを特徴とする請求項３に記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の画像から物体の３次元形状を復元する画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
複数の異なる方向から撮像されたステレオ画像から、物体の３次元形状を復元する技術が従来から提案されている（例えば、特許文献１参照）。特許文献１記載の技術では、まず、複数の異なる方向から撮像されたステレオ画像から３次元輪郭線を復元するとともに、該ステレオ画像に基づいて３次元領域を復元する。そして、これら復元された３次元輪郭線および３次元領域の情報を、３次元モデルの３次元輪郭線および３次元領域の情報と位置合わせをして統合し、物体の３次元形状を復元する。
【特許文献１】特開２０００−９９７６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述した技術では、３次元輪郭線および３次元領域の情報の位置合わせを行うときの計算負荷が非常に高く、リアルタイム処理が要求されるアプリケーションに適用することが困難であった。そのため、物体の３次元形状を復元する処理の高速化が望まれていた。
【０００４】
本発明は、上記問題点を解消する為になされたものであり、複数の撮像画像から物体の３次元形状を高速に復元することが可能な画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明に係る画像処理装置は、周囲を撮像して画像を取得する撮像手段と、撮像手段により撮像された物体の３次元モデルを生成する３次元モデル生成手段と、撮像手段からの奥行き情報を記憶する奥行き情報記憶手段と、奥行き情報に基づいて３次元モデルに画像を貼り付けて３次元形状を復元する３次元形状復元手段とを備えることを特徴とする。
【０００６】
また、本発明に係る画像処理方法は、撮像手段により周囲を撮像して画像を取得する撮像ステップと、撮像ステップで撮像された物体の３次元モデルを生成する３次元モデル生成ステップと、撮像手段からの奥行き情報を記憶する奥行き情報記憶ステップと、奥行き情報に基づいて３次元モデルに画像を貼り付けて３次元形状を復元する３次元形状復元ステップとを備えることを特徴とする。
【０００７】
本発明に係る画像処理装置または画像処理方法によれば、奥行き情報に基づいて、画像中に含まれる複数の被写体間の前後関係を高速に判断し、手前に見えている部分の画像のみを選択して貼り付けることができるため、３次元モデルに対する画像の貼り付けを高速に行うことが可能となる。
【０００８】
上記３次元形状復元手段は、３次元モデルに画像を貼り付ける際に、奥行き情報に基づいて画像データを補正することが好ましい。
【０００９】
また、上記３次元形状復元ステップでは、３次元モデルに画像を貼り付ける際に、奥行き情報に基づいて画像のデータを補正することが好ましい。
【００１０】
この場合、３次元モデルに画像を貼り付ける際に、画像中に含まれる被写体の奥行きを考慮して、画像のデータ、例えばピクセルの輝度値やテクスチャの細かさなどを補正することができるので、より高精度に画像の貼り付けを行うことが可能となる。また、ピクセルごとの奥行き情報がすでに記憶されているので、補正を高速に行うことができる。
【発明の効果】
【００１１】
本発明によれば、奥行き情報を記憶する構成としたので、複数の画像から物体の３次元形状を高速に復元することが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して本発明の好適な実施形態について詳細に説明する。図中、同一又は相当部分には同一符号を用いることとする。
【００１３】
まず、図１を用いて、実施形態に係る画像処理装置１の全体構成について説明する。図１は、実施形態に係る画像処理装置１の全体構成を示すブロック図である。画像処理装置１は、複数の画像から物体の３次元形状を復元するものである。そのため、周囲の風景を撮像して画像を取得する第１カメラ（撮像手段）１０および第２カメラ（撮像手段）１１と、第１カメラ１０により撮像された画像（以下「第１撮像画像」という）と第２カメラ１１により撮像された画像（以下「第２撮像画像」という）とから、物体の３次元形状を復元する画像処理用電子制御装置（以下「画像処理ＥＣＵ」という）２０とを備えている。
【００１４】
第１カメラ１０および第２カメラ１１は、ＣＣＤカメラである。両カメラは、水平（左右）方向に所定距離（例えば１００ｍｍ）離間して設置されている。また、両カメラの光軸は略平行で、かつ撮像面の水平軸が同一線上に揃うように配置されている。第１カメラ１０および第２カメラ１１は、それぞれ周囲の風景を撮像して画像を取得し、取得した画像を画像処理ＥＣＵ２０に出力する。
【００１５】
画像処理ＥＣＵ２０は、データの演算などを行うＣＰＵ（Central Processing Unit）、３次元グラフィックスの表示に必要な計算処理を行うＧＰＵ（Graphic Processing Unit）、ＣＰＵやＧＰＵに各処理を実行させるためのプログラムやデータなどを記憶するＲＯＭ、演算結果などの各種データを記憶するＲＡＭ、およびバッテリによってその記憶内容が保持されるバックアップＲＡＭなどにより構成されている。
【００１６】
上記構成により、画像処理ＥＣＵ２０には、第１仮想画像生成部２１、第２仮想画像生成部２２、３次元モデル生成部２３、差分取得部２４、３次元形状復元部２５、および奥行き情報記憶部２６が構築されている。なお、第１仮想画像生成部２１、第２仮想画像生成部２２、３次元モデル生成部２３、３次元形状復元部２５、奥行き情報記憶部２６、および差分取得部２４の一部は、ＧＰＵ内に構築されている。
【００１７】
３次元形状復元部２５は、奥行き情報記憶部２６に記憶されている奥行き情報に基づいて、３次元モデル生成部２３から入力される３次元モデルに第１カメラ１０から入力される第１撮像画像を貼り付けて第１の３次元形状を生成する。また、記憶されている奥行き情報に基づいて、３次元モデルに第２カメラ１１から入力される第２撮像画像を貼り付けて第２の３次元形状を生成する。
【００１８】
さらに、３次元形状復元部２５は、３次元モデルに画像を貼り付ける際に、奥行き情報に基づいて画像のデータを補正する。なお、補正内容の詳細については後述する。生成された第１の３次元形状は第１仮想画像生成部２１に出力される。また、第２の３次元形状は第１仮想画像生成部２２に出力される。３次元形状復元部２５は、特許請求の範囲に記載の３次元形状復元手段として機能し、３次元形状復元ステップを実行する。また、奥行き情報記憶部２６は、奥行き情報記憶手段として機能する。
【００１９】
第１仮想画像生成部２１は、３次元形状復元部２５から入力される第１の３次元形状を第１カメラ１０と第２カメラ１１との中間位置に仮想的に設けられた仮想カメラの撮像面に投射して第１仮想画像を生成する。生成された第１仮想画像は、差分取得部２４に出力される。
【００２０】
第２仮想画像生成部２２は、３次元形状復元部２５から入力される第２の３次元形状を上記仮想カメラの撮像面に投射して第２仮想画像を生成する。生成された第２仮想画像は、差分取得部２４に出力される。
【００２１】
差分取得部２４は、第１仮想画像生成部２１から入力される第１仮想画像と、第２仮想画像生成部２２から入力される第２仮想画像との差分を求めるとともに、該差分を小さくする３次元モデルの修正データを取得する。取得された３次元モデルの修正データは３次元モデル生成部２３に出力される。
【００２２】
３次元モデル生成部２３は、物体の３次元モデルを生成するとともに、差分取得部２４から入力される３次元モデルの修正データに基づいて、第１仮想画像と第２仮想画像との差異が小さくなるように３次元モデルを修正する。３次元モデル生成部２３は、特許請求の範囲に記載の３次元モデル生成手段として機能し、３次元モデル生成ステップを実行する。
【００２３】
画像処理装置１は、上記一連の処理（第１仮想画像の生成、第２仮想画像の生成、第１仮想画像と第２仮想画像との差分取得、および３次元モデルの修正など）を繰り返して実行することにより物体の３次元形状を復元し、その３次元形状および／または３次元モデルを外部に出力する。なお、出力としての３次元形状および／または３次元モデルは、例えば、ロボットの制御や車両の自動走行などに利用される。より具体的な例を挙げると、ロボット制御において、物体を避けて移動する経路を演算する際や、物体を越えて物をつかみに行くときなどに、３次元形状の生成結果を用いることができる。
【００２４】
次に、図２〜８を併せて参照して、画像処理装置１の動作および画像処理方法について説明する。図２は、画像処理装置１による３次元形状復元処理の処理手順を示すフローチャートである。この処理は、画像処理装置１の電源がオンされてからオフされるまでの間、所定のタイミングで繰り返し実行される。なお、図２に示されるフローチャート中のステップＳ１０４〜ステップＳ１１４、およびステップＳ１２２は、主として画像処理ＥＣＵ２０を構成するＧＰＵにより処理が実行される。一方、ステップＳ１００、ステップＳ１０２、およびステップＳ１１６〜ステップＳ１２０は、主としてＣＰＵにより処理が実行される。
【００２５】
ステップＳ１００では、第１カメラ１０から第１撮像画像（以下「左画像」ということもある）が読み込まれるとともに、読み込まれた左画像に対して前処理が施される。ここで、左画像に施される前処理は、後の処理を容易にするために行われるものである。前処理としては、例えば、読み込まれた左画像を第１カメラ１０が第２カメラ１１と平行に取り付けられていると仮定した場合に得られる画像に変換する処理や、レンズの歪みを補正する処理などが挙げられる。
【００２６】
続いて、ステップＳ１０２では、第２カメラ１１から第２撮像画像（以下「右画像」ということもある）が読み込まれるとともに、この右画像に対して前処理が施される。ここで、右画像に施される前処理は、上述した左画像に施される前処理と同一または同様である。
【００２７】
続くステップＳ１０４では、左画像および右画像を構成する各ピクセルが有する色のＲＧＢ値が、次式により重み付きＲＧＢ値（Ｒ’、Ｇ’、Ｂ’）に変換される。
Ｒ’＝０．２９８９×Ｒ  ・・・（１）
Ｇ’＝０．５８６６×Ｇ  ・・・（２）
Ｂ’＝０．１１４５×Ｂ  ・・・（３）
ここで、各係数は、ＣＣＤカメラを構成するＲＧＢそれぞれの素子数の比率に応じて定められる。
【００２８】
次に、ステップＳ１０６では、ステップＳ１００で読み込まれ、前処理が施された左画像（以下、画像を「テクスチャ」ということもある）が、物体の３次元モデルに貼り付けられ（以下「テクスチャマッピング」ということもある）第１の３次元形状（テクスチャド３次元モデル）が生成される。ここで、図３および図４を併せて参照して、左画像の貼り付け方法について詳細に説明する。図３は、画像の貼り付け処理の処理手順を示すフローチャートである。図４は、画像の貼り付け方法を説明するための図である。なお、ここでは、撮像画像中の家の屋根Ｒｒ部分を３次元モデルの屋根Ｒｍ部分に貼り付ける場合を例にして説明する。
【００２９】
まず、ステップＳ２００では、屋根Ｒｍ部分に含まれる点Ｐｍの奥行き情報ｚが取得される。次に、ステップＳ２０２において、図４の上側に示されるように、点Ｐｍの属する面（屋根Ｒｍ部分）の角度φ、すなわち点Ｐｍの属する面の傾きが、各頂点の奥行き情報ｚを含む３次元座標から求められる。
【００３０】
続いて、ステップＳ２０４では、奥行き情報ｚおよび面の角度φに基づいて、撮像画像中の点Ｐｒ（３次元モデルの点Ｐｍに対応する点）を含む屋根Ｒｒ部分のテクスチャが変換される。より詳細には、奥行き情報ｚおよび面の角度φに基づいて、カメラから遠い部分はテクスチャの密度が大きくなるように、すなわちテクスチャが細かくなるように変換される。逆に、カメラから近い部分はテクスチャの密度が小さくなるように、すなわちテクスチャが粗くなるように変換される。
【００３１】
ステップＳ２０６では、図４の下側に示されるように、テクスチャが変換された後の屋根Ｒｒ部分の画像が、３次元モデルの屋根Ｒｍ部分に貼り付けられる。他の部分も同様にして、奥行き情報ｚおよび面の角度φに基づいてテクスチャが変換されて３次元モデルに貼り付けられ、テクスチャ付き３次元モデル、すなわち３次元形状が生成される。
【００３２】
ここで、３次元モデルにテクスチャが貼り付けられる際には、奥行き情報記憶部２５に記憶されている奥行き情報に基づいて複数の物体間の遮蔽関係が判断され、より前面に位置する３次元モデルを構成する部分（以下「メッシュ」ということもある）に対してテクスチャが貼り付けられる。より詳細には、ピクセルごとにＲＧＢ値に加えて奥行き情報が付加されており、図５に示される例では、点Ｐ１の奥行き情報に基づいて、点Ｐ１を含む屋根Ｒが木Ｔよりも前面にあると自動的に判断され、点Ｐを含むメッシュに屋根Ｒのテクスチャが貼り付けられる。
【００３３】
ここで、奥行き情報記憶部２５は、奥行き情報が新たに算出された場合、この値と既に記憶されている奥行き情報とを比較し、小さい方の値を奥行き情報として自動的に記憶するデータ構造を有している。したがって、奥行き情報記憶部２５には、もっとも値が小さい奥行き情報、すなわちカメラもっとも近い情報が自動的に残される。なお、奥行き情報記憶部２５としては、ＧＰＵのＺバッファを利用することができる。
【００３４】
また、メッシュにテクスチャを貼り付ける際に、前記奥行き情報に基づいて、テクスチャの補間（補正）処理を行ってもよい。次に、図６を参照して、奥行き情報に基づくテクスチャの補間処理について説明する。なお、ここでは、屋根Ｒに貼り付けられるテクスチャの輝度値を補間する場合を例にして説明する。なお、ここでは、例示として輝度値を挙げたが、補間の対象は、輝度値に限られることなく、例えばＲＧＢ値などであってもよい。
【００３５】
図６において、Ｌ１、Ｌ２、Ｌ３は、奥行きを考慮した場合の点Ｐ２から屋根Ｒの各頂点までの距離である。なお、距離Ｌ１、Ｌ２、Ｌ３は、点Ｐ２と屋根Ｒの各頂点の奥行き情報を含む３次元座標から求められる。また、ｖ１、ｖ２、ｖ３は、屋根Ｒの各頂点における輝度値である。この場合、点Ｐ２の輝度値ｖ０は次式により補間される。
ｖ０＝｛ｖ１×（Ｌ２＋Ｌ３）／Ｌ｝＋｛ｖ２×（Ｌ３＋Ｌ１）／Ｌ｝＋｛ｖ３×（Ｌ１＋Ｌ２）／Ｌ｝  ・・・（４）
ただし、Ｌ＝Ｌ１＋Ｌ２＋Ｌ３である。
【００３６】
図６には、２次元平面上で補間する場合も併せて表示した。この場合には、２次元平面上での点Ｐ２’から屋根Ｒ’の各頂点までの距離Ｌ１’、Ｌ２’、Ｌ３’を用いて、同様に補間することができる。しかしながら、２次元平面上で補間した場合には、距離Ｌ１’、Ｌ２’、Ｌ３’が実際の距離と異なるため、奥行き情報を考慮した場合と比較して、補間処理の精度が低下する。
【００３７】
図２のフローチャートに戻って説明を続ける。ステップＳ１０８では、ステップＳ１０２で読み込まれ、前処理が施された右画像が、物体の３次元モデルに貼り付けられ第２の３次元形状が生成される。ここで、右画像の貼り付け方法は、上述した左画像の場合と同一または同様であるので、ここでは説明を省力する。
【００３８】
次に、ステップＳ１１０では、図７に示されるように、ステップＳ１０６で生成された第１の３次元形状が第１カメラ１０と第２カメラ１１との中間位置に仮想的に設けられた仮想カメラの撮像面Ｃｖに投射されて、第１仮想画像が生成される。また、ステップＳ１０８で生成された第２の３次元形状が仮想カメラの撮像面Ｃｖに投射されて、第２仮想画像が生成される。
【００３９】
続いて、ステップＳ１１２では、第１仮想画像および第２仮想画像それぞれについて、画像を構成する各ピクセルの輝度値Ｙが、次式により求められる。
Ｙ＝Ｒ’＋Ｇ’＋Ｂ’  ・・・（５）
【００４０】
次に、ステップＳ１１４では、ピクセルごとに輝度値Ｙを比較し、その比較結果をすべて合計することによって、図８に示されるように、第１仮想画像と第２仮想画像との差分が取得される。また、差分の前回値と今回値との差が求められる。また、メッシュの面の滑らかさを考慮するために、隣り合うピクセルの差も求められる。
【００４１】
ステップＳ１１６では、まず、３次元モデルを構成するメッシュの頂点ごとに、重みが設定される。その際、各頂点から近いピクセルはウエイトが高く、遠いピクセルはウエイトが低くなるように重み付けがなされる。そして、重み付けされたピクセルの輝度値Ｙが評価関数に入力され、評価関数を最小化する３次元モデルの修正データが取得される（ステップＳ１１８）。ここで、重みは、評価関数を最小化する際に、そのピクセルを重視する程度を示すものである。重み付けを行うことによって、評価値を適切に収束させることができる。
【００４２】
ステップＳ１２０では、評価値が収束したか否かについての判断が行われる。ここで、第１仮想画像と第２仮想画像との差分が小さくなり、例えば、評価値の前回値と今回値との減少幅が所定値以下になった場合に評価値が収束したと判断される。評価値が収束したと判断された場合には、生成された３次元モデルおよび／または３次元形状が出力された後、本処理から抜ける。一方、まだ評価値が充分に収束していないと判断された場合には、ステップＳ１２２に処理が移行される。
【００４３】
ステップＳ１２２では、取得された修正データがＧＰＵに渡され、この修正データに基づいて３次元モデルが更新される。また、修正データには奥行き情報が含まれており、新しく取得された奥行き情報と既に記憶されている奥行き情報とが比較され、小さい方の値が奥行き情報記憶部２６に記憶される。なお、３次元モデルの初期値としては、例えば、平面や球などが用いられる。モデル更新後、ステップＳ１０６に処理が移行し、評価値が収束したと判断されるまで、上述したステップＳ１０６〜ステップＳ１２０の処理、すなわち３次元モデルの修正および評価が繰り返し行われることによって、適切な形状の３次元モデルが生成される。
【００４４】
本実施形態によれば、奥行き情報に基づいて、画像中に含まれる複数の被写体間の前後関係を高速に判断し、手前に見えている部分のテクスチャのみを選択して貼り付けることができるため、３次元モデルに対するテクスチャの貼り付けを高速に行うことができる。その結果、処理時間が短縮され、物体の３次元形状を高速に復元することが可能となる。
【００４５】
また、本実施形態によれば、３次元モデルにテクスチャを貼り付ける際に、画像中に含まれる被写体の奥行きを考慮して、テクスチャのデータ、例えばピクセルの輝度値やテクスチャの細かさなどを補正することができるので、より高精度にテクスチャの貼り付けを行うことが可能となる。また、ピクセルごとの奥行き情報がすでに記憶されているので、補正を高速に行うことができる。
【００４６】
以上、本発明の実施の形態について説明したが、本発明は、上記実施形態に限定されるものではなく種々の変形が可能である。例えば、上記実施形態では、３次元モデルの初期値として平面や球などの形状を用いたが、他のセンサを用いておおよその３次元形状を検出し、その３次元形状を初期値として用いることもできる。また、使用するカメラの台数は、２台以上であってもよい。
【００４７】
上記実施形態では、３次元モデルに第１撮像画像が貼り付けられ生成された第１の３次元形状が仮想カメラの撮像面Ｃｖに投射されて得られる第１仮想画像と、３次元モデルに第２撮像画像が貼り付けられ生成された第２の３次元形状が仮想カメラの撮像面Ｃｖに投射されて得られる第２仮想画像との差分が小さくなるように３次元モデルを更新したが、３次元モデルに第１撮像画像が貼り付けられ生成された第１の３次元形状が第２カメラ１１の撮像面に投射されて得られる画像と、第２撮像画像との差分が小さくなるように３次元モデルを更新するような構成としてもよい。同様に、３次元モデルに第２撮像画像が貼り付けられ生成された第２の３次元形状が第１カメラ１０の撮像面に投射されて得られる画像と、第１撮像画像との差分が小さくなるように３次元モデルを更新する構成としてもよい。
【図面の簡単な説明】
【００４８】
【図１】実施形態に係る画像処理装置の全体構成を示すブロック図である。
【図２】実施形態に係る画像処理装置による３次元形状復元処理の処理手順を示すフローチャートである。
【図３】３次元形状復元処理におけるテクスチャマッピングの処理手順を示すフローチャートである。
【図４】テクスチャマッピングの処理方法を説明するための模式図である。
【図５】３次元モデルに貼り付けられる画像と奥行き情報との関係を示す図である。
【図６】画像の補間処理を説明するための図である。
【図７】仮想画像の取得方法を説明するための図である。
【図８】差分画像の取得方法を説明するための模式図である。
【符号の説明】
【００４９】
１…画像処理装置、１０…第１カメラ、１１…第２カメラ、２０…画像処理ＥＣＵ、２１…第１仮想画像生成部、２２…第２仮想画像生成部、２３…３次元モデル生成部、２４…差分取得部、２５…３次元形状復元部、２６…奥行き情報記憶部。
【図１】
2007172533.tif 000003
【図２】
2007172533.tif 000004
【図３】
2007172533.tif 000005
【図４】
2007172533.tif 000006
【図５】
2007172533.tif 000007
【図６】
2007172533.tif 000008
【図７】
2007172533.tif 000009
【図８】
2007172533.tif 000010