(57)【要約】【課題】ＣＣＤカメラによって取得した輝度情報と、ＴＯＦカメラによって取得された距離情報を統合することで高速かつ高精度に環境の情報を計測する撮像装置、オクルージョン領域の探索方法、及びプログラムを提供する。【解決手段】撮像装置１４は、ＴＯＦカメラ１０で得られた距離画像及びＣＣＤカメラ１２で得られた輝度画像とを用いて外部パラメータの推定を行う外部パラメータ推定部２２と、予め記憶されているＴＯＦカメラ１０及びＣＣＤカメラ１２ａ又はＣＣＤカメラ１２ｂの内部パラメータ及び前記外部パラメータを用いて距離画像における画素位置と輝度画像における画素位置との対応関係を決定する対応画素決定部２４と、距離画像における画素位置と輝度画像における画素位置との対応関係を用いて距離画像におけるオクルージョン領域を探索するオクルージョン探索部２８とを備える。【選択図】図１２
2011123071.tif 000002
【特許請求の範囲】
【請求項１】
距離画像センサと輝度画像センサとを有する撮像装置であって、
前記距離画像センサで得られた距離画像及び前記輝度画像センサで得られた輝度画像とを用いて、外部パラメータの推定を行う外部パラメータ推定部と、
予め記憶されている前記距離画像センサ及び前記輝度画像センサの内部パラメータと、前記外部パラメータとを用いて、前記距離画像における画素位置と前記輝度画像における画素位置との対応関係を決定する対応画素決定部と、
前記対応画素決定部が決定した前記距離画像における画素位置と前記輝度画像における画素位置との対応関係を用いて、前記距離画像におけるオクルージョン領域を探索するオクルージョン探索部と、
を備えることを特徴とする撮像装置。
【請求項２】
請求項１に記載の撮像装置であって、
前記オクルージョン探索部は、前記距離画像における画素を一方向に走査し、前記距離画像における該画素に対応する前記輝度画像における画素の移動方向が、前記一方向とは逆方向になったときの前記距離画像における画素の画素位置を、オクルージョンが開始する画素位置とする
ことを特徴とする撮像装置。
【請求項３】
請求項２に記載の撮像装置であって、
前記オクルージョン探索部は、前記距離画像における画素に対応する前記輝度画像における画素の画素位置が、移動方向が変わる直前の前記輝度画像における画素の画素位置より前記一方向側となる直前の前記距離画像における画素の画素位置を、該一方向におけるオクルージョンが終了する画素位置とする
ことを特徴とする撮像装置。
【請求項４】
請求項１〜３の何れか１項に記載の撮像装置であって、
前記距離画像における画素位置と前記輝度画像における画素位置との対応関係を用いて、前記オクルージョン領域以外の前記距離画像における画素の距離情報に、該画素に対応する前記輝度画像の画素の輝度情報をマッピングするマッピング部を備える
ことを特徴とする撮像装置。
【請求項５】
請求項４に記載の撮像装置であって、
少なくとも２つの前記輝度画像センサを備え、
前記マッピング部は、前記オクルージョン探索部により、一方の前記輝度画像センサで撮像された前記輝度画像を用いて探索された前記距離画像におけるオクルージョン領域の画素の距離情報に、該画素に対応する他方の前記輝度画像センサで撮像された前記輝度画像の画素の輝度情報をマッピングする
ことを特徴とする撮像装置。
【請求項６】
距離画像センサと輝度画像センサとを有するコンピュータが実行するオクルージョン領域の探索方法であって、
前記距離画像センサで得られた距離画像及び前記輝度画像センサで得られた輝度画像とを用いて、外部パラメータの推定を行う工程と、
予め記憶されている前記距離画像センサ及び前記輝度画像センサの内部パラメータと、前記外部パラメータとを用いて、前記距離画像における画素位置と前記輝度画像における画素位置との対応関係を決定する工程と、
決定された前記距離画像における画素位置と前記輝度画像における画素位置との対応関係を用いて、前記距離画像におけるオクルージョン領域を探索する工程と、
を備えることを特徴とするオクルージョン領域の探索方法。
【請求項７】
距離画像センサと輝度画像センサとを有するコンピュータを、
前記距離画像センサで得られた距離画像及び前記輝度画像センサで得られた輝度画像とを用いて、外部パラメータの推定を行う外部パラメータ推定部、
予め記憶されている前記距離画像センサ及び前記輝度画像センサの内部パラメータと、前記外部パラメータとを用いて、前記距離画像における画素位置と前記輝度画像における画素位置との対応関係を決定する対応画素決定部、
前記対応画素決定部が決定した前記距離画像における画素位置と前記輝度画像における画素位置との対応関係を用いて、前記距離画像におけるオクルージョン領域を探索するオクルージョン探索部、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＴＯＦカメラとＣＣＤカメラとを有する撮像装置、オクルージョン領域の探索方法、及びプログラムに関する。
【背景技術】
【０００２】
コンピュータビジョン、特にロボットビジョンの分野において、下記非特許文献１に記載されているように、３次元情報の利用は非常に重要である。例えば、実空間で自ら認識、判断して作業を遂行するような自律ロボットは、人間と同じように周囲の物体の形や動きなど、自分の置かれた環境をリアルタイムに３次元で認識する機能が不可欠である。
【０００３】
近年、３次元計測技術の発達は目覚ましく様々な手法が提案されている。これらの手法は、大きく受動型センサを用いた手法と、能動型センサを用いた手法に大別される。前者は、ＣＣＤカメラを複数用いたステレオに代表される多視点計測であり、２台のカメラを平行に用いたベースラインステレオは、現在非常に広く用いられている。しかし、一般に縮退した２次元の情報から３次元を復元することは容易ではない。特に多視点画像からの復元は、画像間の対応点探索の問題であり、誤った対応点による精度の大幅な低下を完全に避けることは難しい。また、テクスチャの少ない対象の距離を計測することは原理的に不可能であり、対応点探索の計算コストの問題もある。
【０００４】
一方、レーザーレンジファインダなどのような能動型センサは照明などの影響を受けにくく、ステレオカメラよりも高速で高精度の距離計測が可能である。しかし、３次元レーザーレンジファインダは装置自体が大きく非常に高価であるため、家庭用ロボットなどの用途には向かない。また、２次元レーザーレンジファインダをモーターによって駆動することで、高精度な３次元情報を得る手法が移動ロボットの環境マッピングなどの場面ではよく用いられる。しかし、２次元レーザーレンジファインダをモーターで動かすために、スキャンの度にロボットは静止する必要がある。近年、こうした問題を解決する能動型センサの一つとして、下記非特許文献２に記載されているように、赤外線ＴＯＦ(Time of flight)カメラが注目されている。赤外線ＴＯＦカメラは、変調した近赤外線を用いたＴＯＦ計測により、３次元情報を３０ｆｐｓ程度の速度で取得することが可能である。その精度は、レーザーレンジファインダに比べ大きく劣るものの、ベースラインステレオに比べれば非常に高く、多くの応用分野で有用であると考えられる。また比較的小さな装置であり、家庭用移動ロボットなどへの搭載が容易である。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】D.A.Forsyth, J.Ponce, Computer Vision: A Modern Approach, Prentice Hall, 2002
【非特許文献２】T.Oggier, F.Lustenberger and N.Blanc, “Miniature 3D TOF Camera for Real-Time Imaging”, in Proc. of Perception and Interactive Technologies 2006, pp. 212-216,June 2006
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、こうした能動型センサの一般的な問題として、取得した座標の色情報が取得できないことが挙げられる。
【０００７】
本発明は、ＣＣＤカメラによって、色、テクスチャ等の情報を、ＴＯＦカメラによって高精度な３次元情報を取得し、それらを統合することで高速かつ高精度に環境の情報を計測する撮像装置、及びその撮像装置を制御するためのプログラムに関する。この場合、ＴＯＦカメラとＣＣＤカメラのキャリブレーションが重要となる。本発明では、ＣＣＤカメラとＴＯＦカメラの内部パラメータの推定、及び、それぞれの輝度画像を用いた外部パラメータの推定を行うことでキャリブレーションを実現する。
【０００８】
もう一つの大きな課題は、オクルージョンである。ＴＯＦカメラとＣＣＤカメラは視点位置が異なるため、場合によってＴＯＦカメラでは観測された点がＣＣＤカメラでは観測されないことが起こり得る。そこで本発明では、さらに、高速にオクルージョン領域を探索するオクルージョン領域の探索方法を提案する。また、本発明によれば、２台のＣＣＤカメラを用いることで、オクルージョンによって欠落した情報をもう一台のカメラの情報によって補う。これにより、色情報と高精度な３次元情報を同時かつリアルタイムで得ることが可能となる。
【０００９】
本発明では、さらに、ＴＯＦカメラとＣＣＤカメラを用いた画像処理システムを実現し、実際にロボットへ実装することでシステムの性能を評価する。具体的には、ロボットによる物体抽出、学習、認識、３次元地図の生成の例を示す。ＴＯＦカメラは、ここ数年注目されており、様々な場面への応用が検討されている。文献（K.Ohno, T.Nomura and S.Tadokoro, “Real-Time Robot Trajectory Estimation and 3D Map Construction using 3D Camera”, in Proc. of IEEE/RSJ Int.Conf. on Intelligent Robots and Systems, pp.5279-5285,Oct. 2006）では、レスキューロボットでの３次元地図生成にＴＯＦカメラを用いている。文献（S.May, D.Droeschel, D.Holz, C.Wiesen and S.Fuchs,“3D Pose Estimation and Mapping with Time-of-Flight Cameras”, in Proc. of IEEE/RSJ Int. Conf. on Intelligent Robots and Systems, Oct. 2008）、及び、文献（C.Beder, I.Schiller and R.Koch, “Real-Time Estimation of the Camera Path from a Sequence of Intrinsically Calibrated PMD Depth Images”, in Proc. of the International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, vol.XXXVII,pp.45-50, July 2008）では、３次元ポーズやカメラパスの推定にＴＯＦカメラを用いている。また、文献（S.B.Gokturk and C.Tomasi, “3D Head Tracking Based on Recognition and Interpolation Using a Time-Of-Flight Depth Sensor”, in Proc. of IEEE Computer Society Conference on Computer Vision and Pattern Recognition, Vol.2, pp.211-217, July 2004）、及び、文献（D.W.Hansen, M.S.Hansen, M.Kirschmeyer, R.Larsen and D.Silvestre, “Cluster tracking with Time-of-Flight cameras”, in Proc. of IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshops, pp.1-6, June 2008）では、頭部や物体のトラッキングに応用することでその有効性を示している。ただし、これらの研究では、ＴＯＦカメラによって得られる３次元情報のみを用いている。一方、ＴＯＦカメラとＣＣＤカメラの組み合わせの応用として、文献（B.Bartczak, I.Schiller, C.Beder and R.Koch, “Integration of a Time-of-Flight Camera into a Mixed Reality System for Handling Dynamic Scenes, Moving Viewpoints and Occlusions in Real-Time”, in Proc. of International Symposium on 3D Data Processing, Visualization and Transmission, June 2008）では、バーチャルリアリティーへの応用を検討している。また、文献（T.Harada, A.Kanezaki, Y.Kuniyoshi, “The Development of Color CHLAC Features for Object Exploration in 3D Map”, Journal of Robotics Society of Japan,vol.27, no.7, pp.749-758, 2009(in Japanese)）では３次元物体認識に適用している。ただし、キャリブレーションやオクルージョンの問題は扱っておらず、３次元物体認識の特徴量の検討が主眼である。現状では、キャリブレーションされたＴＯＦカメラとＣＣＤカメラが家庭用自律移動ロボットに用いられている例はない。
【００１０】
キャリブレーションの問題に対しては、文献（M.Lindner, A.Kolb and K.Hartmann, “Data-Fusion of PMD-Based Distance-Information and High-Resolution RGB-Images”, in Proc. of International Symposium on Signals, Circuits and Systems, vol.1, pp.1-4, July 2007）、文献（S.Fuchs and G.Hirzinger, “Extrinsic and depth calibration of ToF-cameras”, in Proc. of IEEE Conf. on Computer Vision and Pattern Recognition, pp.1-6, June 2008）、文献（Y.Min Kim, D.Chan, C.Theobalt and S.Thrun, “Design and Calibration of a Multi-view TOF Sensor Fusion System”, in Proc. of IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshops, pp.1-7, June 2008）で検討されているが、多くはＴＯＦカメラの距離情報の補正が主眼となっている。また、ＴＯＦカメラとＣＣＤカメラのオクルージョンの問題を扱っているものはない。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明は、距離画像センサと輝度画像センサとを有する撮像装置であって、前記距離画像センサで得られた距離画像及び前記輝度画像センサで得られた輝度画像とを用いて、外部パラメータの推定を行う外部パラメータ推定部と、予め記憶されている前記距離画像センサ及び前記輝度画像センサの内部パラメータと、前記外部パラメータとを用いて、前記距離画像における画素位置と前記輝度画像における画素位置との対応関係を決定する対応画素決定部と、前記対応画素決定部が決定した前記距離画像における画素位置と前記輝度画像における画素位置との対応関係を用いて、前記距離画像におけるオクルージョン領域を探索するオクルージョン探索部と、を備えることを特徴とする。
【００１２】
前記オクルージョン探索部は、前記距離画像における画素を一方向に走査し、前記距離画像における該画素に対応する前記輝度画像における画素の移動方向が、前記一方向とは逆方向になったときの前記距離画像における画素の画素位置を、オクルージョンが開始する画素位置とする。
【００１３】
前記オクルージョン探索部は、前記距離画像における画素に対応する前記輝度画像における画素の画素位置が、移動方向が変わる直前の前記輝度画像における画素の画素位置より前記一方向側となる直前の前記距離画像における画素の画素位置を、該一方向におけるオクルージョンが終了する画素位置とする。
【００１４】
前記距離画像における画素位置と前記輝度画像における画素位置との対応関係を用いて、前記オクルージョン領域以外の前記距離画像における画素の距離情報に、該画素に対応する前記輝度画像の画素の輝度情報をマッピングするマッピング部を備える。
【００１５】
少なくとも２つの前記輝度画像センサを備え、前記マッピング部は、前記オクルージョン探索部により、一方の前記輝度画像センサで撮像された前記輝度画像を用いて探索された前記距離画像におけるオクルージョン領域の画素の距離情報に、該画素に対応する他方の前記輝度画像センサで撮像された前記輝度画像の画素の輝度情報をマッピングする。
【００１６】
上記目的を達成するために、本発明は、距離画像センサと輝度画像センサとを有するコンピュータが実行するオクルージョン領域の探索方法であって、前記距離画像センサで得られた距離画像及び前記輝度画像センサで得られた輝度画像とを用いて、外部パラメータの推定を行う工程と、予め記憶されている前記距離画像センサ及び前記輝度画像センサの内部パラメータと、前記外部パラメータとを用いて、前記距離画像における画素位置と前記輝度画像における画素位置との対応関係を決定する工程と、決定された前記距離画像における画素位置と前記輝度画像における画素位置との対応関係を用いて、前記距離画像におけるオクルージョン領域を探索する工程と、を備えることを特徴とする。
【００１７】
上記目的を達成するために、本発明は、プログラムであって、距離画像センサと輝度画像センサとを有するコンピュータを、前記距離画像センサで得られた距離画像及び前記輝度画像センサで得られた輝度画像とを用いて、外部パラメータの推定を行う外部パラメータ推定部、予め記憶されている前記距離画像センサ及び前記輝度画像センサの内部パラメータと、前記外部パラメータとを用いて、前記距離画像における画素位置と前記輝度画像における画素位置との対応関係を決定する対応画素決定部、前記対応画素決定部が決定した前記距離画像における画素位置と前記輝度画像における画素位置との対応関係を用いて、前記距離画像におけるオクルージョン領域を探索するオクルージョン探索部、として機能させることを特徴とする。
【発明の効果】
【００１８】
本願発明によれば、予め記憶されている距離画像センサ及び輝度画像センサの内部パラメータと、推定した外部パラメータとを用いて、前記距離画像における画素位置と前記輝度画像における画素位置との対応関係を決定し、決定した前記距離画像における画素位置と前記輝度画像における画素位置との対応関係を用いて、前記距離画像におけるオクルージョン領域を探索するので、オクルージョン領域を探索することができ、オクルージョンを除去することが可能となる。距離画像における画素位置と輝度画像における画素位置との対応関係を決定するので、輝度情報がマッピングされた距離画像を得ることが可能となる。
【００１９】
また、前記距離画像における画素を一方向に走査し、前記距離画像における該画素に対応する前記輝度画像における画素の移動方向が、前記一方向とは逆方向になったときの前記距離画像における画素の画素位置を、オクルージョンが開始する画素位置とするので、精度良くオクルージョン領域の開始画素を探索することができる。
【００２０】
前記距離画像における画素に対応する前記輝度画像における画素の画素位置が、移動方向が変わる直前の前記輝度画像における画素の画素位置より前記一方向側となる直前の前記距離画像における画素の画素位置を、該一方向におけるオクルージョンが終了する画素位置とするので、精度よくオクルージョン領域の終了画素を探索することができる。
【００２１】
前記距離画像における画素位置と前記輝度画像における画素位置との対応関係を用いて、前記オクルージョン領域以外の前記距離画像における画素の距離情報に、該画素に対応する前記輝度画像の画素の輝度情報をマッピングするので、輝度情報を有する距離画像を得ることができる。
【００２２】
少なくとも２つの前記輝度画像センサを備え、前記マッピング部は、前記オクルージョン探索部により、一方の前記輝度画像センサで撮像された前記輝度画像を用いて探索された前記距離画像におけるオクルージョン領域の画素の距離情報に、該画素に対応する他方の前記輝度画像センサで撮像された前記輝度画像の画素の輝度情報をマッピングするので、前記他方の輝度画像センサで撮像された輝度情報を用いてオクルージョン領域を補うことができ、オクルージョンが発生していても、綺麗な３次元画像を得ることができる。
【図面の簡単な説明】
【００２３】
【図１】図１は、ロボットに設けられた撮像装置の構成を示す図である。
【図２】ＴＯＦカメラの座標系とＣＣＤカメラの座標系との位置関係を示す図である。
【図３】色情報のマッピングを説明するための図であり、図３Ａは、カラー画像を本出願のためにモノクロ化した図、図３Ｂは、図３Ａに示す画像の奥行き（３次元情報）を示す図、図３Ｃは、キャリブレーションされてマッピングされた画像を示す図である。
【図４】発生するオクルージョン領域を説明する図であり、図４Ａは、ＴＯＦカメラ及びＣＣＤカメラで計測できる領域を示す図、図４Ｂは、ＴＯＦカメラでは計測できているがＣＣＤカメラでは計測できていない領域を示す図、図４Ｃは、ＴＯＦカメラでは計測できているが、あるＣＣＤカメラでは計測できていない領域を他のＣＣＤカメラで補って該領域を計測する場合を示す図である。
【図５】オクルージョン領域の探索を説明するための図であり、図５Ａは、オクルージョン領域を考慮しない場合のキャリブレーションされた画像を示し、図５Ｂは、オクルージョン領域を考慮した場合のキャリブレーションされた画像を示す。
【図６】実験環境とロボットを示す図であり、図６Ａは、実験でロボットが動作するリビングルームを示し、図６Ｂは、実験で使用するロボットを示す。
【図７】図６Ｂに示すロボットの物体教示を示す図である。
【図８】実験に用いた物体を示す図である。
【図９】動きによる物体検出を説明するための図であり、図９Ａは、図６Ｂに示すロボットによって検出された物体領域を示し、図９Ｂは、図６Ｂに示すロボットによって検出された物体を示す。
【図１０】平面検出による物体検出を説明するための図であり、図１０Ａは、平面検出による物体検出の成功結果を示し、図１０Ｂは、平面検出による物体検出の失敗結果を示す。
【図１１】３次元環境地図作製を説明するための図であり、図１１Ａは、距離情報に色情報がマッピングされた画像の例を示し、図１１Ｂは、図１１Ａに示す画像のプロット座標を示し、図１１Ｃは、構築された３次元環境地図を示す。
【図１２】実施の形態にかかる撮像装置の電気的な概略構成図である。
【図１３】輝度画像における画素位置（ｕi，ｖj）を説明するための図である。
【図１４】オクルージョン探索の手法を説明する図であり、ｉ＝ｍ、ｊ＝ｎの場合に、距離画像において選択される画素の画素位置、及び、選択した画素に対応する輝度画像における画素の画素位置を示す図である。
【図１５】オクルージョン探索の手法を説明する図であり、ｉ＝ｍ＋１、ｊ＝ｎの場合に、距離画像において選択される画素の画素位置、及び、選択した画素に対応する輝度画像における画素の画素位置を示す図である。
【図１６】オクルージョン探索の手法を説明する図であり、ｉ＝ｍ＋２、ｊ＝ｎの場合に、距離画像において選択される画素の画素位置、及び、選択した画素に対応する輝度画像における画素の画素位置を示す図である。
【図１７】オクルージョン探索の手法を説明する図であり、ｉ＝ｍ＋３、ｊ＝ｎの場合に、距離画像において選択される画素の画素位置、及び、選択した画素に対応する輝度画像における画素の画素位置を示す図である。
【図１８】オクルージョン探索の手法を説明する図であり、ｉ＝ｍ＋４、ｊ＝ｎの場合に、距離画像において選択される画素の画素位置、及び、選択した画素に対応する輝度画像における画素の画素位置を示す図である。
【図１９】オクルージョン探索の手法を説明する図であり、ｉ＝ｍ＋５、ｊ＝ｎの場合に、距離画像において選択される画素の画素位置、及び、選択した画素に対応する輝度画像における画素の画素位置を示す図である。
【図２０】オクルージョン探索の手法を説明する図であり、ｉ＝ｍ＋６、ｊ＝ｎの場合に、距離画像において選択される画素の画素位置、及び、選択した画素に対応する輝度画像における画素の画素位置を示す図である。
【図２１】距離画像のうち、一方のＣＣＤカメラで撮像されていない領域（オクルージョン領域）を探索する動作を示すフローチャートである。
【図２２】距離画像のうち、他方のＣＣＤカメラで撮像されていない領域（オクルージョン領域）を探索する動作を示すフローチャートである。
【図２３】図２１に示す動作により探索されたオクルージョン領域の輝度情報を、他方のＣＣＤカメラで得られた輝度画像Ｂで補う動作を示すフローチャートである。
【発明を実施するための形態】
【００２４】
本発明に係る撮像装置ついて、それを制御するプログラム及び前記撮像装置によって実行されるオクルージョン領域の探索方法との関係で好適な実施の形態を掲げ、添付の図面を参照しながら以下、詳細に説明する。
【００２５】
Ａ．カメラキャリブレーション
まず、カメラキャリブレーションについて説明する。ＴＯＦカメラ１０は、精度の高い３次元情報を高速に取得することができるが、色の情報を取得することができないという問題点がある。本実施の形態では、図１に示すように、ＴＯＦカメラ（センサ）１０と２台のＣＣＤカメラ（センサ）１２とを用いた３次元センサとして機能する撮像装置１４を提案する。なお、この撮像装置１４は、例えば、自律移動型ロボット「ＤｉＧＯＲＯ」（以下、ロボット１６という）に設けられる。ＴＯＦカメラ１０により得られた３次元情報（距離データ）とＣＣＤカメラ１２により得られたカラー画像情報とのキャリブレーションを行うことで、高速かつ高精度に距離と色情報（輝度画像）を取得することができる３次元センサを実現可能である。ただし、距離情報と色情報とをそれぞれ独立したデータとして扱うのではなく、それらの情報を統合して一つのデータにする必要がある。そこでＴＯＦカメラ１０で得られた各画素における距離情報に対応するＣＣＤカメラ１２の画像座標を求め、距離情報に色情報をマッピングする。
【００２６】
一般的に、ＣＣＤカメラ１２では解像度の高い画像（例えば、１０２４×７６８）を取得するのに対し、ＴＯＦカメラ１０は解像度が低い画像（例えば、１７６×１４４）しか得ることができない。また、ＴＯＦカメラ１０及びＣＣＤカメラ１２は、互いに焦点距離、レンズによる歪みなどといった幾何学的な特性が異なる。異種のセンサ（カメラ）により得られた情報を同一の座標系に統合する際には、これらの問題が生じるため単純な位置合わせだけではキャリブレーションをすることができない。また、ＴＯＦカメラ１０及びＣＣＤカメラ１２の設置位置により、全てのセンサで計測することができない領域が生じてしまう。これらの問題を解決して統合する手法を述べる。
【００２７】
Ａ−１.ＴＯＦカメラ１０
ＴＯＦカメラ１０の距離計測はタイムオブフライトの原理に基づくものである。これは、光源から出た光が視野内の対象物で反射し、ＴＯＦカメラ１０に届くまでの飛行時間から距離を計測する手法である。本実施の形態では、ＳｗｉｓｓＲａｎｇｅｒ社のＳＲ４０００を用いる（MESA Imaging,  HYPERLINK "http://www.mesa-imaging.ch/index.php" http://www.mesa-imaging.ch/index.php  参照）。ＳＲ４０００はＬＥＤ光源を変調させ、ＣＣＤ／ＣＭＯＳイメージセンサで反射してきた変調信号の位相を計測する。計測した変調周波数をｆとすると、光速ｃは与えられているので、距離Ｄは次のように定義される。
【００２８】
【数１】
2011123071.tif 000003
【００２９】
この距離計測がＴＯＦカメラ１０の画素ごとに行われるので、結果として１７６×１４４画素の距離画像を得ることができる。
【００３０】
Ａ−２．パラメータの推定
カメラ（ＴＯＦカメラ１０及びＣＣＤカメラ１２を総称して単にカメラと呼ぶ）により得られたデータのキャリブレーションを行うために、まずカメラのパラメータの推定を行う。カメラは、理想的には光が一点を通って撮像面に投影されるというピンホールカメラでモデル化をすることができる。ピンホールカメラモデルに基づく幾何学的キャリブレーションにおいて、カメラの位置姿勢や特性を表すパラメータは、外部パラメータ（回転、平行移動）と内部パラメータ（焦点距離、レンズ歪み係数、光学中心、画素サイズ）に分類される。外部パラメータはカメラの３次元空間における位置姿勢を表し、内部パラメータは３次元空間を２次元画像平面へ投影するためのパラメータであり、カメラそのものの特性を表している。
【００３１】
これらのパラメータの推定には様々な手法が提案されているが、本システムでは、Ｚｈａｎｇによるキャリブレーション手法を用いる。この手法は、幾何特性が既知の物体を多方向から撮影し、世界座標系と画像座標系の対応関係を求めることでパラメータを推定するものである。
【００３２】
Ａ−３．色情報のマッピング
それぞれのカメラのパラメータを求めた後、それらを用いてＴＯＦカメラ１０とＣＣＤカメラ１２の相対位置を求める。それぞれの座標系が図２に示されるような位置関係にあるとする。ＴＯＦカメラ１０の座標系（Ｘ1，Ｙ1，Ｚ1）を基準として、ＣＣＤカメラ１２の座標系（Ｘ2，Ｙ2，Ｚ2）への回転のパラメータをＲ、平行移動のパラメータをｔとすると、点Ｐの座標について、以下の関係式が成り立つ。
【００３３】
【数２】
2011123071.tif 000004
【００３４】
【数３】
2011123071.tif 000005
【００３５】
【数４】
2011123071.tif 000006
【００３６】
ただし、レンズ歪は補正されているとする。この関係より、ＴＯＦカメラ１０で取得した全ての画素の３次元情報をＣＣＤカメラ１２の座標系に変換する。さらに、以下の式よりＣＣＤカメラ１２の画像座標系に変換し、その画素の色情報を結びつける。なお、ｆ2は、ＣＣＤカメラの焦点距離である。
【００３７】
【数５】
2011123071.tif 000007
【００３８】
【数６】
2011123071.tif 000008
【００３９】
以上の処理によって得られた結果を図３に示す。距離が遠く、データの信頼度の低い画素の情報は使用しないものとする。
【００４０】
Ａ−４．オクルージョン
複数のカメラの情報を統合する際には、全てのカメラによる計測ができない領域、すなわちオクルージョン領域を考慮する必要がある。本システムにおいて考えられる領域は次の４つである。
１．ＴＯＦカメラ１０、ＣＣＤカメラ１２共に計測可能な領域
２．ＴＯＦカメラ１０のみ計測可能な領域
３．ＣＣＤカメラ１２のみ計測可能な領域
４．ＴＯＦカメラ１０、ＣＣＤカメラ１２共に計測不能な領域
【００４１】
ここではＴＯＦカメラ１０で取得した距離情報にＣＣＤカメラ１２で取得した色情報をマッピングするため、この中で考えるべき領域は上記２．のみである。
【００４２】
図４にオクルージョンが発生する例を示す。図４Ｂでは、ＴＯＦカメラ１０では計測できているがＣＣＤカメラ１２では計測できていない。この場合、ＴＯＦカメラ１０で取得した座標をＣＣＤカメラ１２の座標に変換し、画像座標系に射影すると、手前の領域の情報を得てしまうことになる。よってオクルージョン領域を考慮しない場合は、図５Ａのような結果となる。この領域の情報を除去するために、オクルージョン領域の探索をしなければならない。このために、Ｚバッファを用いることも考えられるが、本実施の形態ではより高速に探索する手法を提案する。
【００４３】
注目する点がオクルージョン領域かどうかという判断は、マッピング過程での画像の走査時に行う。基本的な考え方は、ＴＯＦカメラ１０とＣＣＤカメラ１２とが横方向に（地面に対して略水平方向）に設けられている場合は、ＴＯＦカメラ１０の各画素位置に対応するＣＣＤカメラ１２の画素位置を横方向に走査していくと、必ず一方向に移動するが、オクルージョン領域に入ると逆方向に移動するという性質を利用するものである。つまり、ＴＯＦカメラ１０の画素位置を横方向（例えば、左から右への一方向）に走査していくと、ＴＯＦカメラ１０の画素位置に対応するＣＣＤカメラ１２の画素位置も一方向に移動するが、オクルージョン領域では、ＴＯＦカメラ１０の画素位置に対応するＣＣＤカメラ１２の画素位置が逆方向に移動する。オクルージョン領域探索のアルゴリズムを次に示す。なお、ＴＯＦカメラ１０及びＣＣＤカメラ１２の撮像素子は、画素が行列状に配置されているものとする。
【００４４】
（１）ＴＯＦカメラ１０のＮｕ×Ｎｖの全ての画素に対して、対応するＣＣＤカメラ１２の画素を求め、ＴＯＦカメラ１０の画像座標（ｕi，ｖj）に対応するＣＣＤカメラ１２の座標を（Ｕ（ｕi），Ｖ（ｖj））とする。
【００４５】
（２）ｖj行について、Ｕ（ｕi）＜Ｕ（ｕi-1）となる画素をｉの値を増加させながら探索する。見つかれば（３）へ進み、見つからなければ（２）へ戻る。ｉ＝Ｎｕであれば（４）へ進む。
【００４６】
（３）Ｕ（ｕi-1）＜Ｕ（ｕi+k）となる画素をｋの値を増加させながら探索する。見つかればｉ＝ｉ＋ｋとして（２）へ戻り、見つからなければ（ｕi+k，ｖj）の結びつきを削除し（３）へ戻る。ｉ＋ｋ＝Ｎｕであれば（４）へ進む。
【００４７】
（４）ｊの値を増加させ（２）へ戻る。ｊ＝Ｎｖであれば終了する。
【００４８】
実際にこの処理を行った結果を図５Ｂに示す。ただし、これは左ＣＣＤカメラ１２とＴＯＦカメラ１０についてキャリブレーションにおいてのオクルージョン探索であり、右ＣＣＤカメラ１２とのキャリブレーションについてはアルゴリズムが異なり、ｉ＝Ｎｕから減少させる方向に走査することになる。
【００４９】
オクルージョンによって得られなかった領域の情報は、図４Ｃで示すように、もう一台のカメラで取得することができる。左ＣＣＤカメラ１２で計測できない点は右ＣＣＤカメラ１２で補い、逆に右ＣＣＤカメラ１２で計測できない点は左ＣＣＤカメラ１２で補う。最終的にそれらの情報を統合するとで、欠落の少ない情報となる。
【００５０】
Ｂ．画像処理への応用
ロボット１６は、図６Ａのような一般的なリビングルームで動作し、実験は全てここで行うものとする。撮像装置１４における画像処理について、例を以下に示す。
【００５１】
Ｂ−１．未知物体の検出
物体の情報を取得するためには、対象となる物体のみをシーンから抽出しなければならない。しかし、未知物体の抽出に対しては、物体の形状や色などに関する事前知識は使用できない。そのため、複雑な背景下では物体領域と非物体領域の区別ができず、検出が困難である。ＴＯＦカメラ１０及び２台のＣＣＤカメラ１２によって取得された情報を用いて、２つの手法で物体の検出を行う。
【００５２】
Ｂ−１−１．動きによる物体検出
視野内の動くかたまりは物体であるという事前知識を与え、情景中から物体を検出することを可能とする。これは人間の選択的注視過程の概念を画像処理に適用したものである。まず、距離情報に色情報がマッピングされたフレーム間の差分によって得られた画像情報から入力画像中の注目すべき領域（初期領域）を検出する。この初期領域は画像中の動きのある領域を検出するだけであり、物体の輪郭としては正確さに欠ける。しかし、この初期領域には注目物体が含まれる可能性が高く、該初期領域内の情報を利用することが可能であると考えられる。初期領域内の距離のヒストグラムｆ（ｄ）と色相のヒストグラムｇ（ｈ）を取得し、それぞれを確率密度関数として扱い、距離画像Ｄ（ｘ，ｙ）と色相画像Ｈ（ｘ，ｙ）について物体の確率を表すマップを生成する。距離物体確率マップをＰD、色相物体確率マップをＰHとすると、
【００５３】
【数７】
2011123071.tif 000009
【００５４】
【数８】
2011123071.tif 000010
となる。さらに２つの確率マップをそれぞれ重みｗd、ｗhを用いて足し合わせたものを最終的な物体の確率マップＰOとして、物体の検出を行う。ただし重みは、それぞれの情報の分散により自動的に調整される。
【００５５】
【数９】
2011123071.tif 000011
【００５６】
次に、物体検出の精度を評価するために行った実験について述べる。実験では、図７のように、リビングルームでユーザがロボット１６に対して未知の物体を動かしながら見せる。物体は図８に示すような一般的な物、計５０個を用いた。ロボット１６はユーザが物体を見せ始めてから５０フレーム分の画像を取得し、その間注目物体の切り出しを行う。動きによって物体を検出した結果を図９に示す。各フレームにおける切り出し結果を、次の６パターンに分類し、評価を行った。
【００５７】
［１］９０％以上の物体領域が抽出されている。
【００５８】
［２］物体以外の領域を若干含んでいる。
【００５９】
［３］物体の一部が欠けている。
【００６０】
［４］物体以外の領域を大きく含んでいる。
【００６１】
［５］物体領域が大きく欠けている。
【００６２】
［６］物体の領域とは異なるところが抽出されている。
【００６３】
このうち［１］〜［３］は物体の情報を得るために十分であるので切り出し成功とし、それ以外を切り出し失敗とした。実験結果を表１に示す。
【００６４】
【表１】
2011123071.tif 000012
【００６５】
表１中の［１］〜［６］は上記の切り出しの分類に相当している。ステレオカメラを用いた際には、検出領域に背景が大きく含まれている場合や物体が大きく欠けてしまう場合など、物体によって精度のばらつきがあった。一方、提案する３次元センサを用いた新たなシステムでは、成功した割合が９７．５％と安定して抽出ができている。ただし、ＴＯＦカメラ１０は先に述べたように、赤外線を照射して跳ね返りの時間から距離を計測しているため、ペットボトルのラベルのない透明な部分や、物体の色が黒い部分は距離を正確に計測することができない可能性がある。
【００６６】
Ｂ−１−２．平面検出による物体検出
物体は平面に支えられて存在しているという仮定を基に、物体を検出することができる。３次元空間上の平面は、ｘ軸との角度θ，ｙ軸との角度φ，原点からの距離ρの３つのパラメータで表わされ、次の式で与えられる。
【００６７】
【数１０】
2011123071.tif 000013
【００６８】
パラメータθ0、φ0、ρ0をもつ平面上にのる３次元点がいくつか存在するとき、それぞれの点が自身を通る全ての平面をθ−φ−ρ空間上の１つの曲面で表わすことができ、それらの曲面は、（θ0，φ0，ρ0）の１点で交わることになる。そこで、入力データからランダムで点を選び、パラメータの算出、投票を繰り返し行い、頻度の高いパラメータを求める。このパラメータで表わされる平面が、その入力データ中の「最も平面らしい面」となる。
【００６９】
平面が得られた後に、全ての距離情報をその平面上に射影し、ラベリングを行うことで物体を検出することができる。平面検出を用いて物体の検出を行った例を図１０に示す。テーブルや床といった平面はテクスチャが少ないことが多いため、ステレオカメラを用いた場合、視差が計算できず距離が取得できない場合が多かったが、提案する３次元センサを用いることで、精度よく平面を検出できた。また、物体検出については、距離情報をベースに行っているため、図１０Ｂで示すように、グラスなどの距離の計測できない物体は、動きによる物体検出と同様に失敗した。
【００７０】
Ｂ−２．物体の学習・認識
物体を認識する手掛かりとして、色情報、テクスチャ情報、３次元形状情報を用いる。これらの情報は常に用いることができるわけではなく、物体の性質によって使い分ける必要がある。例えば、表面にテクスチャが十分にある場合は、ＰＣＡ−ＳＩＦＴを用いたマッチングを行う。一方で、テクスチャがなくＳＩＦＴ特徴量が十分に抽出されない物体の場合は、形状情報を利用する。色情報はヒストグラムとして利用するが、安定性が低いため、候補物体の絞り込みに利用する。
【００７１】
学習時に物体の特徴として上記の情報を蓄積し、認識時にはそれらの情報と入力画像中の物体の特徴とを比較照合することでマッチングを行う。実験では、検出実験と同様に５０個の物体をロボット１６に見せて学習させ、それらを全て認識させた。物体の学習については、リビングルームのある一ヶ所で行うが、認識を行う場所は、物体を学習した場所を含め、それ以外にも照明条件の異なる場所を選び、計４ヶ所で２回ずつ行った。結果を表２に示す。認識率は平均して約９０％であった。
【００７２】
【表２】
2011123071.tif 000014
【００７３】
Ｂ−３．３次元環境地図作成
距離情報と色情報のキャリブレーションを行ったデータを用いて、未知環境での３次元環境地図を作成する。図１１Ａ、図１１Ｂに示されるように、ＴＯＦカメラ１０は画角が狭く、また解像度が低いので、広域の地図を作成するためには、複数のシーンの情報を重ね合わせなければならない。各シーンの距離情報は、ＩＣＰ（Iterative Closest Point）アルゴリズムによって重ね合わせることが可能であるが、初期状態において距離情報が大まかに位置合わせされていなければならない。そこで、距離情報にマッピングされた色情報を用いて、各シーンごとにＳＩＦＴ特徴点のマッチングを行うことで、初期位置を決定する。このようにして構築された３次元環境地図を図１１Ｃに示す。
【００７４】
このように、本発明は、ＴＯＦカメラ１０とＣＣＤカメラ１２のキャリブレーションによる３次元センサを提案し、さらに、ロボット１６の視覚システムとしての実装を行った。提案する３次元センサを用いることで、ステレオカメラよりも精度よく情報を取得することができ、取得した情報は様々な画像処理への利用が可能である。また、このシステムを実装したロボット１６は、ＲｏｂｏＣｕｐの＠Ｈｏｍｅリーグにおいて好成績を収め、その高い実用性が実証された。
【００７５】
図１２は、本実施の形態の撮像装置１４の電気的な概略構成図である。撮像装置１４は、ＴＯＦカメラ（距離画像センサ）１０、２つのＣＣＤカメラ（輝度画像センサ）１２（一方のＣＣＤカメラ１２をＣＣＤカメラ１２ａと言い、他方のＣＣＤカメラ１２をＣＣＤカメラ１２ｂと言う）、内部パラメータ記憶部２０、外部パラメータ推定部２２、対応画素決定部２４、マッピング部２６、オクルージョン探索部２８、及び画像処理部３０を備える。コンピュータに所定のプログラムを読み込ませることによって、該コンピュータを内部パラメータ記憶部２０、外部パラメータ推定部２２、対応画素決定部２４、マッピング部２６、オクルージョン探索部２８、及び画像処理部３０として機能させることができる。つまり、ＴＯＦカメラ１０及び２台のＣＣＤカメラ１２を備えたコンピュータに所定のプログラムを読み込ませることによって、本発明の撮像装置１４として機能させる。前記コンピュータは、図示しないメモリを有し、前記所定のプログラムは該メモリに記憶されている。また、該メモリが内部パラメータ記憶部２０として機能してもよい。
【００７６】
ＴＯＦカメラ１０は、ＣＣＤ又はＣＭＯＳ等の撮像素子及びレーザ光を照射する照射装置とを有し（図示略）、タイムオブフライト（Time of Flight）の原理により、被写体までの距離を計測することができるカメラである。簡単に説明すると、ＴＯＦカメラ１０の撮像素子が、レーザ光の反射光を受光することで、レーザ光を被写体に照射してから、その反射光がＴＯＦカメラ１０の撮像素子の各画素に入射するまでの時間を計測する。これにより、画素毎に被写体までの距離を計測することができる。距離画像は、各画素における距離情報の集合体である。
【００７７】
ＣＣＤカメラ１２ａ、１２ｂは、ＣＣＤを有し、被写体の輝度画像を取得する。なお、ＣＣＤカメラ１２ａ、１２ｂが、例えば、赤（Ｒ）、緑（Ｇ）、青（Ｂ）の色フィルタを有することで、被写体のカラー画像を取得することができる。本実施の形態において、輝度情報の概念に色情報も含まれる。色情報は、例えば、Ｒ、Ｇ、Ｂの各色の輝度情報から構成されるからである。なお、ＣＣＤカメラ１２ａ、１２ｂは、ＣＭＯＳカメラであってもよい。要は、撮像素子を有し、２次元画像を撮像できるものであればよい。ＣＣＤカメラ１２ａで得られた輝度画像を輝度画像Ａ、ＣＣＤカメラ１２ｂで得られた輝度画像を輝度画像Ｂと呼ぶ。輝度画像は、各画素における輝度情報の集合体である。
【００７８】
ＴＯＦカメラ１０は、ＣＣＤカメラ１２ａ、１２ｂの間に設けられており、ＴＯＦカメラ１０及びＣＣＤカメラ１２ａ、１２ｂは、地面に対して略水平方向に設けられている。
【００７９】
内部パラメータ記憶部２０は、ＴＯＦカメラ１０、ＣＣＤカメラ１２ａ、１２ｂの内部パラメータを記憶する。内部パラメータとは、焦点距離、レンズ歪み係数、光学中心、画素サイズ等であり、３次元空間を２次元画像平面に投影するパラメータであり、カメラそのものの特性を示すパラメータである。なお、撮像装置１４は、ＴＯＦカメラ１０、ＣＣＤカメラ１２ａ、１２ｂの内部パラメータを推定する内部パラメータ推定部を有してよく、内部パラメータ推定部が推定した該内部パラメータを記憶するようにしてもよい。内部パラメータ推定部は、ＴＯＦカメラ１０により得られた距離画像と、ＣＣＤカメラ１２ａ、１２ｂにより得られた輝度画像とを用いて、ＴＯＦカメラ１０と、ＣＣＤカメラ１２ａ、１２ｂとの内部パラメータを推定する。この内部パラメータの推定は、周知技術なので詳しく説明しないが、ＤＬＴ手法、Ｔｓａｉ手法、Ｚｈａｎｇ手法によって推定することができる。
【００８０】
外部パラメータ推定部２２は、ＴＯＦカメラ１０、ＣＣＤカメラ１２ａ、１２ｂの３次元空間における位置、姿勢等を示すパラメータであり、ＤＬＴ手法、Ｔｓａｉ手法、Ｚｈａｎｇ手法によって推定することができる。外部パラメータ推定部２２は、ＴＯＦカメラ１０により得られた距離画像と、ＣＣＤカメラ１２ａ、１２ｂにより得られた輝度画像とを用いて、ＴＯＦカメラ１０と、ＣＣＤカメラ１２ａ、１２ｂとの外部パラメータを推定する。
【００８１】
対応画素決定部２４は、内部パラメータ及び外部パラメータを用いて、ＴＯＦカメラ１０によって得られた距離画像における画素位置と、ＣＣＤカメラ１２ａ、１２ｂによって得られた輝度画像Ａ、Ｂにおける画素位置との対応関係を決定する。つまり、距離画像における画素位置が、それぞれ輝度画像Ａ及び輝度画像
Ｂのどの画素に対応するものであるかを決定する。
【００８２】
上述したように、例えば、ＴＯＦカメラ１０と、ＣＣＤカメラ１２とが図２に示す位置関係にある場合は、ＴＯＦカメラ１０の座標系（Ｘ1，Ｙ1，Ｚ1）を基準として、ＣＣＤカメラ１２の座標系（Ｘ2，Ｙ2，Ｚ2）への回転のパラメータをＲ、平行移動のパラメータをｔとすると、点Ｐの座標は、数２、数３、数４に示す関係式が成り立つ。この関係により、ＴＯＦカメラ１０で取得した全ての画素の３次元情報をＣＣＤカメラ１２の座標系に変換する。そして、ＣＣＤカメラ１２の座標系に変換されたＴＯＦカメラ１０の全ての画素の３次元情報を、数５、数６により、ＣＣＤカメラ１２の画像座標系に変換する。この原理により、距離画像における画素位置と輝度画像Ａ及びＢにおける画素位置との対応関係を決定することができる。
【００８３】
マッピング部２６は、対応画素決定部２４が決定した距離画像における画素位置と輝度画像における画素位置との対応関係を用いて、距離画像における画素の距離情報と、該画素に対応する輝度画像における画素の輝度情報とを関連付ける（結びつける）。つまり、距離画像のオクルージョン領域の各画素における距離情報に、対応する画素の輝度情報をマッピングする。これにより、距離画像と輝度画像とを統合することができる。
【００８４】
詳しくは、マッピング部２６は、距離画像のうち、後述するオクルージョン探索部２８により探索された輝度画像Ａに対するオクルージョン領域以外の画素の距離情報に、該画素に対応する輝度画像Ａの画素の輝度情報をマッピングする。また、マッピング部２６は、距離画像のうち、輝度画像Ａに対するオクルージョン領域の画素の距離情報に、該画素に対応する輝度画像Ｂの画素の輝度情報をマッピングする。
【００８５】
オクルージョン探索部２８は、距離画像における画素位置と輝度画像における画素位置の対応関係を用いて、距離画像におけるオクルージョン領域を探索する。詳しくは、オクルージョン探索部２８は、距離画像のうち、ＣＣＤカメラ１２ａによって撮像されない画像領域（輝度画像Ａに対するオクルージョン領域）と、ＣＣＤカメラ１２ｂによって撮像されない画像領域（輝度画像Ｂに対するオクルージョン領域）を探索する。このオクルージョン領域の探索については後で詳しく述べる。
【００８６】
画像処理部３０は、上述したように、輝度情報が統合された距離画像に対して、物体検出処理、物体の学習・認識処理、及び３次元環境地図作成処理等を行う。なお、画像処理部３０は、輝度情報が統合された距離画像に対して、上述した以外の画像処理を施してもよい。
【００８７】
図１３は、輝度画像における画素位置（ｕi，ｖj）を説明するための図である。ｕiは、行方向の画素位置を示し、ｖjは、列方向の画素位置を示す。但し、ｉ＝１，２，３，・・・，Ｎｕ、ｊ＝１，２，３，・・・，Ｎｖ、とする。
【００８８】
輝度画像のうち、一番左上の画素位置を（ｕ1，ｖ1）とし、画素位置が右になるにつれ、行方向の画素位置の位置を示すｕiのｉは、２、３、４，・・・、Ｎｕというように値が増加する。また、画素位置が下になるにつれ、列方向の画素位置を示す画素位置のｖjのｊは、２、３、４、・・・、Ｎｖというように値が増加する。なお、距離画像はＮｕ×Ｎｖ個の画素によって得られた情報であり、ＴＯＦカメラ１０の撮像素子は、Ｎｕ×Ｎｖ個の画素を有する。
【００８９】
次に、図１４〜図２０を用いてオクルージョン領域の探索手法を説明する。図１４に示す画素５０は、距離画像の中から選択した１の画素であり、該画素５０の画素位置を（ｕm，ｖn）とし（ｉ＝ｍ，ｊ＝ｎ）、選択した該画素５０に対応する輝度画像における画素５２の画素位置を（Ｕ（ｕm），Ｖ（ｖn））とする。ｉをｉ＋１にすると（選択する画素５０を１つ右にずらすと）、図１５に示すように、新たに選択される画素５０の画素位置は（ｕm+1，ｖn）となり、画素位置（ｕm+1，ｖn）に対応する画素５２の画素位置は（Ｕ（ｕm+1），Ｖ（ｖn））となる。
【００９０】
その後、ｉをｉ＋１にすると、図１６に示すように、新たに選択される画素５０の画素位置は（ｕm+2，ｖn）となり、画素位置（ｕm+2，ｖn）に対応する画素５２の画素位置は（Ｕ（ｕm+2），Ｖ（ｖn））となる。さらに、ｉをｉ＋１にすると、図１７に示すように、新たに選択される画素５０の画素位置は（ｕm+3，ｖn）となり、画素位置（ｕm+3，ｖn）に対応する画素５２の画素位置は（Ｕ（ｕm+3），Ｖ（ｖn））となる。
【００９１】
このように、距離画像の画素５０を一方向に走査していくと（選択する画素５０を右方向にずらしていくと）、該距離画像の画素５０に対応する輝度画像の画素５２も前記一方向に移動する。しかしながら、オクルージョン領域が開始する画素は、距離画像の画素５０の移動方向と逆方向に移動する。その性質を利用してオクルージョン領域を探索する。
【００９２】
図１７に示す状態で、さらに、ｉをｉ＋１にすると、図１８に示すように、新たに選択される画素５０の画素位置は（ｕm+4，ｖn）となり、画素位置（ｕm+4，ｖn）に対応する画素５２の画素位置は（Ｕ（ｕm+4），Ｖ（ｖn））となる。しかしながら、図１８に示すように、画素位置（Ｕ（ｕm+4），Ｖ（ｖn））は、前回の画素位置（Ｕ（ｕm+3），Ｖ（ｖn））より左側にあり、移動方向が反対になる。したがって、輝度画像の画素５２の移動方向が、距離画像の画素５０の移動方向と逆方向になったときの距離画像の画素５０が、ｎ列のオクルージョンの開始画素となる。つまり、画素位置（ｕm+4，ｖn）が、ｎ列のオクルージョンが開始する画素位置となる。ここで、輝度画像の画素５２の移動方向が変わる直前の輝度画像の画素を参照符号５４で表す。
【００９３】
その後、ｉをｉ＋１にすると、図１９に示すように、新たに選択される画素５０の画素位置は（ｕm+5，ｖn）となり、画素位置（ｕm+5，ｖn）に対応する画素５２の画素位置は（Ｕ（ｕm+5），Ｖ（ｖn））となる。画素５２の画素位置（Ｕ（ｕm+5），Ｖ（ｖn））は、画素５４の画素位置（Ｕ（ｕm+3），Ｖ（ｖn））より左側（移動方向とは反対側）にあるので、画素位置（ｕm+5，ｖn）はオクルージョン領域の画素位置となる。
【００９４】
図１９に示す状態で、さらに、ｉをｉ＋１にすると、図２０に示すように、新たに選択される画素５０の位置は（ｕm+6，ｖn）となり、画素位置（ｕm+6，ｖn）に対応する画素５２の画素位置は（Ｕ（ｕm+6），Ｖ（ｖn））となる。画素５２の画素位置（Ｕ（ｕm+6），Ｖ（ｖn））は、画素５４の画素位置（Ｕ（ｕm+3），Ｖ（ｖn））より右側（移動方向側）となるので、画素位置（ｕm+6，ｖn）はオクルージョン領域とならない。したがって、画素位置（ｕm+5，ｖn）が、オクルージョン領域が終了する画素位置となる。図２０において、探索されたオクルージョン領域の画素を参照符号５６で表す。つまり、画素５４の画素位置（Ｕ（ｕm+3），Ｖ（ｖn））より左側（移動方向と反対側）であり、且つ、画素位置（Ｕ（ｕm+3），Ｖ（ｖn））に最も近い画素位置（Ｕ（ｕm+5），Ｖ（ｖn））に対応する距離画像における画素位置（ｕm+5，ｖn）が、オクルージョン領域が終了する画素位置となる。
【００９５】
次に、本実施の形態の撮像装置１４の動作を図２１〜図２３のフローチャートにしたがって説明する。
【００９６】
図２１は、距離画像のうち、ＣＣＤカメラ１２ａで撮像されていない領域（輝度画像Ａに対するオクルージョン領域）を探索する動作を示すフローチャートであり、図２２は、距離画像のうち、ＣＣＤカメラ１２ｂで撮像されていない領域（輝度画像Ｂに対するオクルージョン領域）を探索する動作を示すフローチャートであり、図２３は、図２１に示す動作により探索されたオクルージョン領域の輝度情報を、ＣＣＤカメラ１２ｂで得られた輝度画像Ｂで補う動作を示すフローチャートである。なお、距離画像における画素位置を、（ｕi，ｖj）で表し、該画素位置（ｕi，ｖj）に対応する輝度画像Ａ及び輝度画像Ｂにおける画素位置を、それぞれ（ＵＡ（ｕi），ＶＡ（ｖj））、（ＵＢ（ｕi），ＶＢ（ｖj））で表す。ｕ1、ＵＡ（ｕi）、ＵＢ（ｕi）は行方向の画素位置を示し、ｖj、ＵＡ（ｖj）、ＵＢ（ｖj）は列方向の画素位置を示すものとする。また、行方向の画素位置ｕi、ＵＡ（ｕi）、ＵＢ（ｕi）の値は、より右側にある画素位置の方が大きいものとする。
【００９７】
まず、図２１のフローチャートにしたがって、輝度画像Ａに対するオクルージョンの探索動作を説明する。対応画素決定部２４は、距離画像における各画素位置と、輝度画像Ａにおける各画素位置との対応関係を決定する（ステップＳ１）。
【００９８】
次いで、オクルージョン探索部２８は、ｉ＝２，ｊ＝１に設定する（ステップＳ２）。これにより、輝度画像Ａにおける画素位置（ｕ2，ｖ1）の画素が選択されることになる。
【００９９】
次いで、オクルージョン探索部２８は、行方向の画素位置ＵＡ（ｕi）が行方向の画素位置ＵＡ（ｕi-1）より小さいか（ＵＡ（ｕi）＜ＵＡ（ｕi-1）の関係式を満たすか）否かを判断する（ステップＳ３）。つまり、現在選択している距離画像の画素の画素位置（ｕi，ｖj）に対応する輝度画像Ａにおける画素の画素位置（ＵＡ（ｕi），ＶＡ（ｖj））が、前回選択した距離画像の画素の画素位置（ｕi-1，ｖj）に対応する輝度画像Ａにおける画素の画素位置（ＵＡ（ｕi-1），ＶＡ（ｖj））より左側（走査方向側とは反対側）にあるか否かを判断している。図２１のフローチャートにおける走査方向とは、ｉの値を大きくした場合に選択される画素の画素位置（ｕi，ｖj）が移動する方向をいう。つまり、この場合、走査方向は図１３でいうところの右方向となる。
【０１００】
これにより、現在選択している距離画像の画素位置（ｕi，ｖj）がオクルージョン領域の開始画素位置であるかを判断することができる。つまり、行方向の画素位置ＵＡ（ｕi）がＵＡ（ｕi-1）より小さい場合は、選択される画素位置（ＵＡ（ｕi），ＶＡ（ｖj））の移動方向が変わったと判断し、現在選択している画素位置（ｕi，ｖj）を、オクルージョン領域が開始する画素位置と判断する。
【０１０１】
ステップＳ３で、行方向の画素位置ＵＡ（ｕi）が行方向の画素位置ＵＡ（ｕi-1）より小さくないと判断すると、オクルージョン探索部２８は、マッピング部２６に、現在選択している画素の画素位置（ｕi，ｖj）の距離情報と、該画素に対応する輝度画像Ａにおける画素位置（ＵＡ（ｕi），ＶＡ（ｖj））の輝度情報とを関連付けさせる（ステップＳ４）。つまり、マッピング部２６は、現在選択している画素位置（ｕi，ｖj）の距離情報に、画素位置（ＵＡ（ｕi），ＶＡ（ｖj））の輝度情報をマッピングする。
【０１０２】
次いで、オクルージョン探索部２８は、現在設定されているｉがＮｕと同じ値であるか否かを判断する（ステップＳ５）。つまり、現在設定しているｉが、ｉ＝Ｎｕの関係式を満たすか否かを判断する。ステップＳ５で、ｉ＝Ｎｕの関係式を満たさないと判断すると、ステップＳ６に進み、オクルージョン探索部２８は、ｉ＝ｉ＋１にして（ｉをインクリメントして）、ステップＳ３に戻る。これにより、選択する距離画像における画素を走査方向に１つ移動させることできる。
【０１０３】
一方で、ステップＳ３で、行方向の画素位置ＵＡ（ｕi）が行方向の画素位置ＵＡ（ｕi-1）より小さいと判断すると、オクルージョン探索部２８は、現在選択している画素位置（ｕi，ｖj）を、オクルージョン領域が開始する画素位置であると判断して、ｋ＝１に設定する（ステップＳ７）。ステップＳ３で判断されるオクルージョン領域が開始する画素位置は、図１８で示すところの画素５０の画素位置（ｕm+4，ｖn）に相当する。
【０１０４】
次いで、オクルージョン探索部２８は、行方向の画素位置ＵＡ（ｕi-1）が行方向の画素位置ＵＡ（ｕi+k）より小さいか（ＵＡ（ｕi-1）＜ＵＡ（ｕi+k）の関係式を満たすか）否かを判断する（ステップＳ８）。つまり、距離画像の画素の画素位置（ｕi+k，ｖj）に対応する輝度画像Ａにおける画素位置（ＵＡ（ｕi+k），ＶＡ（ｖj））が、移動方向が変わる直前の輝度画像Ａにおける画素の画素位置（ＵＡ（ｕi-1），ＶＡ（ｖj））より右側（走査方向側）にあるか否かを判断する。移動方向が変わる直前の輝度画像Ａにおける画素の画素位置（ＵＡ（ｕi-1），ＶＡ（ｖj））は、図１８〜図２０で示すところの画素５４の画素位置（Ｕ（ｕm+3），Ｖ（ｖn））に相当する。これにより、オクルージョン領域が終了したかを判断することができる。
【０１０５】
ステップＳ８で、行方向の画素位置ＵＡ（ｕi-1）が行方向の画素位置ＵＡ（ｕi+k）より小さくないと判断すると、ステップＳ９に進み、オクルージョン探索部２８は、ｋ＝ｋ＋１にして（ｋをインクリメントして）、ステップＳ８に戻る。
【０１０６】
一方で、ステップＳ８で、行方向の画素位置ＵＡ（ｕi-1）が行方向の画素位置ＵＡ（ｕi+k）より小さいと判断すると、オクルージョン探索部２８は、画素位置（ｕi+k-1，ｖj）を、オクルージョン領域が終了する画素位置であると判断し、輝度画像Ａに対するオクルージョン領域の画素位置（ｕi，ｖj）〜（ｕi+k-1，ｖj）を前記メモリに記憶する（ステップＳ１０）。例えば、現在設定されているｋが２の場合は、画素位置（ｕi，ｖj）と画素位置（ｕi+1，ｖj）とがオクルージョン領域となる。
【０１０７】
ステップＳ８〜ステップＳ１０での画素位置（ｕi，ｖj）は、ステップＳ３で、オクルージョン領域が開始すると判断された画素位置であり、現在選択されている画素位置でもある。また、画素位置（ｕi+k-1，ｖj）は、図１９で示すところの画素５０の画素位置（ｕm+5，ｖn）に相当する。言い換えるならば、画素位置（ｕi+k-1，ｖj）は、輝度画像Ａにおける画素の画素位置の移動方向が変わる直前の画素位置（ＵＡ（ｕi-1），ＶＡ（ｖj））（図１８〜図２０で示すところの画素５４の画素位置（Ｕ（ｕm+3），Ｖ（ｖn）に相当する）より走査方向側になる直前の輝度画像Ａにおける画素位置（ＵＡ（ｕi+k-1），ＶＡ（ｖj））に対応する距離画像における画素位置である。画素位置（ＵＡ（ｕi+k-1），ＶＡ（ｖj））は、図１９で示すところの画素５２の画素位置（Ｕ（ｕm+5），Ｖ（ｖn））に相当する。
【０１０８】
次いで、オクルージョン探索部２８は、ｉ＝ｉ＋ｋに設定して（ステップＳ１１）、ステップＳ４に戻る。これにより、画素位置（ｕi，ｖj）の画素が新たに選択され、ステップＳ４で、新たに選択された画素位置（ｕi，ｖj）の距離情報と、新たに選択された画素（ｕi，ｖj）に対応する輝度画像Ａにおける画素位置（ＵＡ（ｕi），ＶＡ（ｖj））の輝度情報とが関連付けられる。
【０１０９】
ステップＳ５で、ｉ＝Ｎｕの関係式を満たすと判断すると、オクルージョン探索部２８は、現在設定しているｊがＮｖと同じ値であるか否かを判断する（ステップＳ１２）。つまり、現在設定しているｊが、ｊ＝Ｎｖの関係式を満たすか否かを判断する。ステップＳ１２で、ｊ＝Ｎｖの関係式を満たさないと判断すると、オクルージョン探索部２８は、ｉ＝２，ｊ＝ｊ＋１に設定して（ステップＳ１３）、ステップＳ３に戻る。これにより、列単位毎でオクルージョン領域を探索することができる。一方、ステップＳ１２で、ｊ＝Ｎｖの関係式を満たすと判断すると、オクルージョンの探索を終了する。
【０１１０】
このように、距離画像のうち、輝度画像Ａに対するオクルージョン領域の画素位置（ｕi，ｖj）の距離情報に、輝度情報をマッピングしないので、オクルージョンを除去することができる。
【０１１１】
次に、図２２のフローチャートにしたがって、輝度画像Ｂに対するオクルージョンの探索動作を説明する。対応画素決定部２４は、距離画像における各画素位置と、輝度画像Ｂにおける各画素位置との対応関係を決定する（ステップＳ２１）。
【０１１２】
次いで、オクルージョン探索部２８は、ｉ＝Ｎｕ−１，ｊ＝１に設定する（ステップＳ２２）。これにより、輝度画像Ｂにおける画素位置（ｕNu-1，ｖ1）の画素が選択されることになる。
【０１１３】
次いで、オクルージョン探索部２８は、行方向の画素位置ＵＢ（ｕi）が行方向の画素位置ＵＢ（ｕi+1）より大きいか（ＵＢ（ｕi）＞ＵＢ（ｕi+1）の関係式を満たすか）否かを判断する（ステップＳ２３）。つまり、現在選択している距離画像の画素の画素位置（ｕi，ｖj）に対応する輝度画像Ｂにおける画素の画素位置（ＵＢ（ｕi），ＶＢ（ｖj））が、前回選択した距離画像の画素の画素位置（ｕi+1，ｖj）に対応する輝度画像Ｂにおける画素の画素位置（ＵＢ（ｕi+1），ＶＢ（ｖj））より右側（走査方向側とは反対側）にあるか否かを判断している。図２２のフローチャートにおける走査方向とは、ｉの値を小さくした場合に選択される画素位置（ｕi，ｖj）が移動する方向をいう。つまり、この場合、走査方向は図１３でいうところの左方向となる。
【０１１４】
これにより、現在選択している距離画像の画素位置（ｕi，ｖj）がオクルージョン領域の開始画素位置であるかを判断することができる。つまり、行方向の画素位置ＵＢ（ｕi）がＵＢ（ｕi+1）より大きい場合は、選択される画素位置（ＵＢ（ｕi），ＶＢ（ｖj））の移動方向が変わったと判断し、現在選択している画素位置（ｕi，ｖj）を、オクルージョン領域が開始する画素位置と判断する。
【０１１５】
ステップＳ２３で、行方向の画素位置ＵＢ（ｕi）が行方向の画素位置ＵＢ（ｕi+1）より大きくないと判断すると、オクルージョン探索部２８は、マッピング部２６に、現在選択している画素の画素位置（ｕi，ｖj）の距離情報と、該画素に対応する輝度画像Ｂにおける画素位置（ＵＢ（ｕi），ＶＢ（ｖj））の輝度情報とを関連付けさせる（ステップＳ２４）。つまり、マッピング部２６は、現在選択している画素位置（ｕi，ｖj）の距離情報に、画素位置（ＵＢ（ｕi），ＶＢ（ｖj））の輝度情報をマッピングする。
【０１１６】
次いで、オクルージョン探索部２８は、現在設定されているｉが１であるか否かを判断する（ステップＳ２５）。つまり、現在設定しているｉが、ｉ＝１の関係式を満たすか否かを判断する。ステップＳ２５で、ｉ＝１の関係式を満たさないと判断すると、ステップＳ２６に進み、オクルージョン探索部２８は、ｉ＝ｉ−１にして（ｉをデクリメントして）、ステップＳ２３に戻る。これにより、選択する距離画像における画素を走査方向に１つ移動させることできる。
【０１１７】
一方で、ステップＳ２３で、行方向の画素位置ＵＢ（ｕi）が行方向の画素位置ＵＢ（ｕi+1）より大きいと判断すると、オクルージョン探索部２８は、現在選択している画素位置（ｕi，ｖj）を、オクルージョン領域が開始する画素位置であると判断して、ｋ＝１に設定する（ステップＳ２７）。
【０１１８】
次いで、オクルージョン探索部２８は、行方向の画素位置ＵＢ（ｕi+1）が行方向の画素位置ＵＢ（ｕi-k）より大きいか（ＵＢ（ｕi+1）＞ＵＢ（ｕi-k）の関係式を満たすか）否かを判断する（ステップＳ２８）。つまり、距離画像の画素の画素位置（ｕi-k，ｖj）に対応する輝度画像Ｂにおける画素位置（ＵＢ（ｕi+k），ＶＢ（ｖj））が、移動方向が変わる直前の輝度画像Ｂにおける画素の画素位置（ＵＢ（ｕi+1），ＶＢ（ｖj））より左側（走査方向側）にあるか否かを判断する。これにより、オクルージョン領域が終了したかを判断することができる。
【０１１９】
ステップＳ２８で、行方向の画素位置ＵＢ（ｕi+1）が行方向の画素位置ＵＢ（ｕi-k）より大きくないと判断すると、ステップＳ２９に進み、オクルージョン探索部２８は、ｋ＝ｋ＋１にして（ｋをインクリメントして）、ステップＳ２８に戻る。
【０１２０】
一方で、ステップＳ２８で、行方向の画素位置ＵＢ（ｕi+1）が行方向の画素位置ＵＢ（ｕi-k）より大きいと判断すると、オクルージョン探索部２８は、画素位置（ｕi-k+1，ｖj）を、オクルージョン領域が終了する画素位置であると判断し、輝度画像Ｂに対するオクルージョン領域の画素位置（ｕi，ｖj）〜（ｕi-k+1，ｖj）を前記メモリに記憶する（ステップＳ３０）。例えば、現在設定されているｋが２の場合は、画素位置（ｕi，ｖj）と画素位置（ｕi-1，ｖj）とがオクルージョン領域となる。
【０１２１】
ステップＳ２８〜ステップＳ３０での画素位置（ｕi，ｖj）は、ステップＳ２３で、オクルージョン領域が開始すると判断された画素位置であり、現在選択されている画素位置でもある。
【０１２２】
次いで、オクルージョン探索部２８は、ｉ＝ｉ−ｋに設定して（ステップＳ３１）、ステップＳ２４に戻る。これにより、画素位置（ｕi，ｖj）の画素が新たに選択され、ステップＳ２４で、新たに選択された画素位置（ｕi，ｖj）の距離情報と、新たに選択された画素（ｕi，ｖj）に対応する輝度画像Ｂにおける画素位置（ＵＢ（ｕi），ＶＢ（ｖj））の輝度情報とが関連付けられる。
【０１２３】
ステップＳ２５で、ｉ＝１の関係式を満たすと判断すると、オクルージョン探索部２８は、現在設定しているｊがＮｖと同じ値であるか否かを判断する（ステップＳ３２）。つまり、現在設定しているｊが、ｊ＝Ｎｖの関係式を満たすか否かを判断する。ステップＳ３２で、ｊ＝Ｎｖの関係式を満たさないと判断すると、オクルージョン探索部２８は、ｉ＝Ｎｕ−１，ｊ＝ｊ＋１に設定して（ステップＳ３３）、ステップＳ２３に戻る。これにより、列単位毎でオクルージョン領域を探索することができる。一方、ステップＳ３２で、ｊ＝Ｎｖの関係式を満たすと判断すると、オクルージョンの探索を終了する。
【０１２４】
このように、距離画像のうち、輝度画像Ｂに対するオクルージョン領域の画素位置（ｕi，ｖj）の距離情報に、輝度情報をマッピングしないので、オクルージョンを除去することができる。
【０１２５】
なお、輝度画像Ｂに対するオクルージョン領域の探索の走査方向を、輝度画像Ａに対するオクルージョン領域の探索の走査方向と逆にしたが、同じにしてもよい。この場合は、輝度画像Ｂに対するオクルージョン領域の探索は、図２１に示すフローチャートと同様の動作を経ることになる。
【０１２６】
次に、図２３のフローチャートにしたがって、オクルージョン領域の輝度情報を補う動作を説明する。マッピング部２６は、ｉ＝２，ｊ＝１に設定する（ステップＳ５１）。これにより、画素位置（ｕ2，ｖ1）の画素が選択されることになる。
【０１２７】
次いで、マッピング部２６は、選択した該画素位置（ｕi，ｖj）が輝度画像Ａに対してオクルージョン領域であるか否かを判断する（ステップＳ５２）。この判断は、選択した画素位置が、図２１のステップＳ１０で輝度画像Ａに対するオクルージョン領域として前記メモリに記憶されているか否かによって判断する。
【０１２８】
ステップＳ５２で、現在選択している画素位置（ｕi，ｖj）が輝度画像Ａに対してオクルージョン領域でないと判断すると、マッピング部２６は、現在設定されているｉがＮｕと同じ値であるか否かを判断する（ステップＳ５３）。つまり、現在設定されているｉが、ｉ＝Ｎｕの関係式を満たすか否かを判断する。ステップＳ５３で、ｉ＝Ｎｕの関係式を満たさないと判断すると、ステップＳ５４に進み、マッピング部２６は、ｉ＝ｉ＋１にして（ｉをインクリメントして）、ステップＳ５２に戻る。
【０１２９】
一方で、ステップＳ５２で、現在選択している画素位置（ｕi，ｖj）が輝度画像Ａに対してオクルージョン領域であると判断すると、マッピング部２６は、現在選択している画素位置（ｕi，ｖj）が輝度画像Ｂに対してオクルージョン領域であるか否かを判断する（ステップＳ５５）。この判断は、選択した画素位置（ｕi，ｖj）が、輝度画像Ｂに対するオクルージョン領域として前記メモリに記憶されているか否かによって判断する。
【０１３０】
ステップＳ５５で、現在選択している画素位置（ｕi，ｖj）が輝度画像Ｂに対してオクルージョン領域でないと判断すると、マッピング部２６は、画素位置（ｕi，ｖj）の距離情報と、該画素位置（ｕi，ｖj）に対応する輝度画像Ｂにおける画素位置（ＵＢ（ｕi），ＵＢ（ｖj））の輝度情報とを関連付けて（ステップＳ５６）、ステップＳ５３に戻る。つまり、現在選択している画素位置（ｕi，ｖj）の距離情報に、画素位置（ＵＢ（ｕi），ＵＢ（ｖj））の輝度情報をマッピングする。このように、距離画像のうち、輝度画像Ａに対するオクルージョン領域の画素位置（ｕi，ｖj）の距離情報に、輝度画像Ｂの輝度情報をマッピングするので、オクルージョンを除去することができるとともに、オクルージョン領域に正しい色情報がマッピングされた距離画像を得ることができ、綺麗な３次元画像を得ることができる。
【０１３１】
一方で、ステップＳ５５で、現在選択している画素位置（ｕi，ｖj）が輝度画像Ｂに対してオクルージョン領域であると判断すると、マッピング部２６は、現在選択している画素位置（ｕi，ｖj）の距離情報と、予め定められた輝度情報（例えば、黒や白などの予め定められた輝度情報）とを関連付けて（ステップＳ５７）、ステップＳ５３に戻る。つまり、現在選択している画素位置（ｕi，ｖj）の距離情報に予め定められた輝度情報をマッピングする。これにより、オクルージョンを除去することができる。
【０１３２】
ステップＳ５３で、ｉ＝Ｎｕの関係式を満たすと判断すると、マッピング部２６は、現在設定されているｊがＮｖと同じ値であるか否かを判断する（ステップＳ５８）。つまり、現在設定されているｊが、ｊ＝Ｎｖの関係式を満たすか否かを判断する。ステップＳ５８で、ｊ＝Ｎｖの関係式を満たさないと判断すると、ステップＳ５９に進み、マッピング部２６は、ｉ＝２，ｊ＝ｊ＋１に設定して、ステップＳ５２に戻る。ステップＳ５８で、ｊ＝Ｎｖの関係式を満たすと判断されると、オクルージョン領域の輝度情報を補う動作を終了する。
【０１３３】
なお、上記図２１に示すオクルージョンの探索動作では、オクルージョン領域を探索すると共に、オクルージョン領域でない画素位置（ｕi，ｖj）に輝度情報をマッピングするようにしたが、オクルージョン領域であるか否かにかかわらず、距離画像における各画素の画素位置（ｕi，ｖj）の距離情報に、該各画素にそれぞれ対応する輝度画像Ａにおける画素位置（ＵＡ（ｕi），ＵＡ（ｖj））の輝度情報をマッピングしてもよい。この場合は、輝度情報をマッピングした後に、輝度画像Ａに対する距離画像のオクルージョン領域の探索を行う。探索した結果、オクルージョン領域がある場合は、探索されたオクルージョン領域の画素位置（ｕi，ｖj）の距離情報と、該画素位置に対応する輝度画像Ａにおける画素位置（ＵＡ（ｕi），ＵＡ（ｖj））の輝度情報との結びつきを消去し（マッピングを解除し）、オクルージョン領域の画素位置（ｕi，ｖj）の距離情報と、該画素位置に対応する輝度画像Ｂにおける画素位置（ＵＢ（ｕi），ＵＢ（ｖj））の輝度情報をマッピングする。この場合、輝度画像Ａに対するオクルージョン領域と輝度画像Ｂに対するオクルージョン領域とが重複する領域がある場合は、該重複する領域の画素位置（ｕi，ｖj）に所定の輝度情報をマッピングする。
【０１３４】
このように、本実施の形態においては、距離画像における画素位置（ｕi，ｖj）と輝度画像Ａにおける画素位置（ＵＡ（ｕi），ＵＡ（ｖj））との対応関係を決定し、決定した距離画像における画素位置（ｕi，ｖj）と輝度画像Ａにおける画素位置（ＵＡ（ｕi），ＵＡ（ｖj））との対応関係を用いて、距離画像におけるオクルージョン領域を探索するので、オクルージョン領域を探索することができる。
【０１３５】
また、オクルージョン領域の探索では、距離画像における画素を一方向に走査し、距離画像における該画素に対応する輝度画像Ａにおける画素の移動方向が、前記一方向とは逆方向になったときの距離画像における画素の画素位置（ｕm+4，ｖn）を、オクルージョンが開始する画素位置とするので、精度良くオクルージョン領域の開始画素を探索することができる。距離画像における画素に対応する輝度画像Ａにおける画素の画素位置（ＵＡ（ｕi），ＵＡ（ｖj））が、移動方向が変わる直前の輝度画像Ａにおける画素の画素位置（ＵＡ（ｕm+3），ＵＡ（ｖn））より前記一方向側となる直前の距離画像における画素の画素位置（ｕm+5，ｖn）を、該一方向におけるオクルージョンが終了する画素位置とするので、精度よくオクルージョン領域の終了画素を探索することができる。
【０１３６】
距離画像における画素位置（ｕi，ｖj）と輝度画像Ａにおける画素位置（ＵＡ（ｕi），ＵＡ（ｖj））との対応関係を用いて、前記オクルージョン領域以外の前記距離画像における画素の距離情報に、該画素に対応する前記輝度画像Ａの画素の輝度情報をマッピングするので、輝度情報を有する距離画像を得ることができる。
【０１３７】
少なくとも２つのＣＣＤカメラ１２ａ、１２ｂを備え、前記マッピング部２６は、前記オクルージョン探索部２８により、ＣＣＤカメラ１２ａで撮像された輝度画像Ａを用いて探索された距離画像におけるオクルージョン領域の画素の距離情報に、該画素に対応するＣＣＤカメラ１２ｂで撮像された前記輝度画像Ｂの画素の輝度情報をマッピングするので、他方のＣＣＤカメラ１２ｂで撮像された輝度情報を用いて輝度画像Ａに対するオクルージョン領域を補うことができ、オクルージョンが発生していても、綺麗な３次元画像を得ることができる。
【０１３８】
なお、上記実施の形態においては、ＴＯＦカメラ１０、ＣＣＤカメラ１２ａ、及びＣＣＤカメラ１２ｂを地面に対して略水平方向に設けるようにしたが、ＴＯＦカメラ１０、ＣＣＤカメラ１２ａ、及びＣＣＤカメラ１２ｂを地面に対して垂直方向に設けるようにしてもよい。この場合のオクルージョン探索の走査方向は横方向（水平方向）ではなく、縦方向（垂直方向）となる。つまり、オクルージョン探索の走査方向は、ＴＯＦカメラ１０、ＣＣＤカメラ１２ａ、及びＣＣＤカメラ１２ｂが設けられた方向と同じ方向となる。ＴＯＦカメラ１０、ＣＣＤカメラ１２ａ、及びＣＣＤカメラ１２ｂを地面に対して垂直に設ける場合であっても、ＴＯＦカメラ１０は、ＣＣＤカメラ１２ａとＣＣＤカメラ１２ｂの間に設けられる。
【０１３９】
また、上記実施の形態においては、ＣＣＤカメラ１２を２つ設けるようにしたが、ＣＣＤカメラ１２は１つであってもよい。この場合に、ＴＯＦカメラ１０により得られた距離画像の中に、ＣＣＤカメラ１２で撮像することができないオクルージョン領域がある場合は、該領域の画素の距離情報に所定の輝度情報をマッピングし、オクルージョン領域以外の画素の距離情報に、ＣＣＤカメラ１２で得られた輝度画像の輝度情報をマッピングする。また、設けるＣＣＤカメラ１２は２つではなく、３つ以上であってもよい。
【０１４０】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【符号の説明】
【０１４１】
１０…ＴＯＦカメラ                  １２、１２ａ、１２ｂ…ＣＣＤカメラ
１４…撮像装置                      １６…ロボット
２０…内部パラメータ記憶部          ２２…外部パラメータ推定部
２４…対応画素決定部                ２６…マッピング部
２８…オクルージョン探索部          ３０…画像処理部   
【図１】
2011123071.tif 000015
【図２】
2011123071.tif 000016
【図３】
2011123071.tif 000017
【図４】
2011123071.tif 000018
【図５】
2011123071.tif 000019
【図６】
2011123071.tif 000020
【図７】
2011123071.tif 000021
【図８】
2011123071.tif 000022
【図９】
2011123071.tif 000023
【図１０】
2011123071.tif 000024
【図１１】
2011123071.tif 000025
【図１２】
2011123071.tif 000026
【図１３】
2011123071.tif 000027
【図１４】
2011123071.tif 000028
【図１５】
2011123071.tif 000029
【図１６】
2011123071.tif 000030
【図１７】
2011123071.tif 000031
【図１８】
2011123071.tif 000032
【図１９】
2011123071.tif 000033
【図２０】
2011123071.tif 000034
【図２１】
2011123071.tif 000035
【図２２】
2011123071.tif 000036
【図２３】
2011123071.tif 000037