(57)【特許請求の範囲】
【請求項１】
距離センサの前方視野内の物体表面の各点の距離を測定して得られた物体表面の各点の３次元座標値に応じた距離情報を示す距離画像を得る距離画像取得手段と、
前記距離画像から得られる前記物体表面の３次元座標値から平面を検出する平面検出手段と、
前記距離画像によって示される前記物体表面との距離の変化量が、所定の値より大きな箇所を示す線分を示すエッジ情報を検出するエッジ検出手段と、
前記エッジ情報によって示される線分が、前記平面検出手段によって検出された平面に含まれるか否かを判定する特異箇所判定手段と、
前記特異箇所判定手段の結果に基づいて特異箇所を記憶する特異箇所マップ記憶手段と、
を備えたことを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置を備えた車両走行制御装置であって、
前記車両走行制御装置は、
車両の走行の際に前記特異箇所マップを参照して、走行の制御を行う移動制御手段を備えたことを特徴とする車両走行制御装置。
【請求項３】
請求項１に記載の画像処理装置を備えた自律走行ロボットであって、
前記自律走行ロボットは、
ロボットの移動の際に前記特異箇所マップを参照して、走行の制御を行う移動制御手段を備えたことを特徴とする自律走行ロボット。
【請求項４】
距離センサの前方視野内の物体表面の各点の距離を測定して得られた物体表面の各点の３次元座標値に応じた距離情報を示す距離画像を得る距離画像取得処理と、
前記距離画像から得られる前記物体表面の３次元座標値から平面を検出する平面検出処理と、
前記距離画像によって示される前記物体表面との距離の変化量が、所定の値より大きな箇所を示す線分を示すエッジ情報を検出するエッジ検出処理と、
前記エッジ情報によって示される線分が、前記平面検出手段によって検出された平面に含まれるか否かを判定する特異箇所判定処理と、
を有することを特徴とする特異箇所検出方法。
【請求項５】
前方視野内の特異箇所を検出する特異箇所検出プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記特異箇所検出プログラムは、
距離センサの前方視野内の物体表面の各点の距離を測定して得られた物体表面の各点の３次元座標値に応じた距離情報を示す距離画像を得る距離画像取得処理と、
前記距離画像から得られる前記物体表面の３次元座標値から平面を検出する平面検出処理と、
前記距離画像によって示される前記物体表面との距離の変化量が、所定の値より大きな箇所を示す線分を示すエッジ情報を検出するエッジ検出処理と、
前記エッジ情報によって示される線分が、前記平面検出手段によって検出された平面に含まれるか否かを判定する特異箇所判定処理と、
をコンピュータに行わせることを特徴とする特異箇所検出プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、距離画像を用いてロボットや自動車が移動する際に必要な特異箇所の検出を行う画像処理装置、特異箇所検出方法、及び特異箇所検出プログラムを記録した記録媒体に関する。
【０００２】
【従来の技術及び発明が解決しようとする課題】
自律ロボットや自動走行の自動車が安全に移動するには、交差点や下り階段等の特別な環境構造を検出する必要がある。そのため、ロボットや自動車にレーダ等を備え付けこのレーダによって得られる周囲環境の情報から行動の制御が行われることが多い。ところで、検出された情報から自己の行動の制御を行う場合には、検出される情報は正確であり、また、不要な情報が含まれないようにする必要がある。
しかしながら、ロボットや自動車が移動する際の周囲環境は複雑であるため、正確にかつ的確な情報のみを抽出するには、処理がたいへん複雑になったり、周囲環境を検出する手段を複数備えなければならないという問題がある。
【０００３】
本発明は、このような事情に鑑みてなされたもので、ロボットや自動車が自律的に移動する際に、行動の制御を必要とする特異箇所の検出を行うことができる画像処理装置、特異箇所検出方法、及び特異箇所検出プログラムを記録した記録媒体を提供することを目的とする。
【０００４】
【課題を解決するための手段】
請求項１に記載の発明は、距離センサの前方視野内の物体表面の各点の距離を測定して得られた物体表面の各点の３次元座標値に応じた距離情報を示す距離画像を得る距離画像取得手段（例えば、実施形態における距離画像取得部１）と、前記距離画像から得られる前記物体表面の３次元座標値から平面を検出する平面検出手段（例えば、実施形態における平面検出部３）と、前記距離画像によって示される前記物体表面との距離の変化量が、所定の値より大きな箇所を示す線分を示すエッジ情報を検出するエッジ検出手段（例えば、実施形態におけるエッジ検出部４）と、前記エッジ情報によって示される線分が、前記平面検出手段によって検出された平面に含まれる否かを判定する特異箇所判定手段（例えば、実施形態における特異箇所判定部５）と、前記特異箇所判定手段の結果に基づいて特異箇所を記憶する特異箇所マップ記憶手段（特異箇所マップ記憶部７）とを備えたことを特徴とする。
【０００５】
請求項１に記載の発明によれば、距離画像に対してエッジ検出処理を施し、距離の急激変化を検出するようにしたため、交差点や下り階段などの特異箇所を高速で検出することが可能となる。また、エッジ検出によって検出されたエッジと、平面検出によって検出された平面とが所定の条件を満たしたときのみ、このエッジの箇所を特異箇所としたため、特異箇所の検出精度を向上させることができる。さらに、エッジ検出と平面検出を並行して処理するようにしたため、特異箇所の検出処理速度を向上することができるという効果が得られる。
【０００６】
請求項２に記載の発明は、請求項１に記載の画像処理装置を備えた車両走行制御装置であって、前記車両走行制御装置は、車両の走行の際に前記特異箇所マップを参照して、走行の制御を行う移動制御手段（例えば、実施形態における移動制御部８）を備えたことを特徴とする。
【０００７】
請求項２に記載の発明によれば、特異箇所マップを参照しながら自動車の移動を制御するようにしたため、精度よく自動車の位置の制御を行うことができるとともに、特異箇所への接近に伴い必要な行動を起こす制御をすることが可能になるという効果が得られる。
【０００８】
請求項３に記載の発明は、請求項１に記載の画像処理装置を備えた自律走行ロボットであって、前記自律走行ロボットは、ロボットの移動の際に前記特異箇所マップを参照して、走行の制御を行う移動制御手段（例えば、実施形態における移動制御部８）を備えたことを特徴とする。
【０００９】
請求項３に記載の発明によれば、特異箇所マップを参照しながらロボットの移動を制御するようにしたため、精度よくロボットの位置の制御を行うことができるとともに、特異箇所への接近に伴い必要な行動を起こす制御をすることが可能になるという効果が得られる。
【００１０】
請求項４に記載の発明は、距離センサの前方視野内の物体表面の各点の距離を測定して得られた物体表面の各点の３次元座標値応じた距離情報を示す距離画像を得る距離画像取得処理と、前記距離画像から得られる前記物体表面の３次元座標値から平面を検出する平面検出処理（例えば、実施形態におけるステップＳ１）と、前記距離画像によって示される前記物体表面との距離の変化量が、所定の値より大きな箇所を示す線分を示すエッジ情報を検出するエッジ検出処理（例えば、実施形態におけるステップＳ２）と、前記エッジ情報によって示される線分が、前記平面検出手段によって検出された平面に含まれるか否かを判定する特異箇所判定処理（例えば、実施形態におけるステップＳ５）とを有することを特徴とする。
【００１１】
請求項４に記載の発明によれば、距離画像に対してエッジ検出処理を施し、距離の急激変化を検出するようにしたため、交差点や下り階段などの特異箇所を高速で検出することが可能となる。また、エッジ検出によって検出されたエッジと、平面検出によって検出された平面とが所定の条件を満たしたときのみ、このエッジの箇所を特異箇所としたため、特異箇所の検出精度を向上させることができる。さらに、エッジ検出と平面検出を並行して処理するようにしたため、特異箇所の検出処理速度を向上することができるという効果が得られる。
【００１２】
請求項５に記載の発明は、前方視野内の特異箇所を検出する特異箇所検出プログラムを記録したコンピュータ読み取り可能な記録媒体であって、前記特異箇所検出プログラムは、距離センサの前方視野内の物体表面の各点の距離を測定して得られた物体表面の各点の３次元座標値応じた距離情報を示す距離画像を得る距離画像取得処理と、前記距離画像から得られる前記物体表面の３次元座標値から平面を検出する平面検出処理（例えば、実施形態におけるステップＳ１）と、前記距離画像によって示される前記物体表面との距離の変化量が、所定の値より大きな箇所を示す線分を示すエッジ情報を検出するエッジ検出処理（例えば、実施形態におけるステップＳ２）と、前記エッジ情報によって示される線分が、前記平面検出手段によって検出された平面に含まれるか否かを判定する特異箇所判定処理（例えば、実施形態におけるステップＳ５）とをコンピュータに行わせることを特徴とする。
【００１３】
請求項５に記載の発明によれば、距離画像に対してエッジ検出処理を施し、距離の急激変化を検出するようにしたため、交差点や下り階段などの特異箇所を高速で検出することが可能となる。また、エッジ検出によって検出されたエッジと、平面検出によって検出された平面とが所定の条件を満たしたときのみ、このエッジの箇所を特異箇所としたため、特異箇所の検出精度を向上させることができる。さらに、エッジ検出と平面検出を並行して処理するようにしたため、特異箇所の検出処理速度を向上することができるという効果が得られる。
【００１４】
【発明の実施の形態】
以下、本発明の一実施形態による画像処理装置を図面を参照して説明する。  図１は同実施形態の構成を示すブロック図である。この図において、符号１は、ロボットや自動車が移動する際の移動方向の視野内に存在する物体の距離画像を取得する距離画像取得部である。この距離画像取得部１の距離センサは、２台のＣＣＤカメラや電磁波を用いたレーダ等で構成される。符号２は、距離画像取得部１において得られた距離画像の１フレーム分を記憶する距離画像記憶部である。符号３は、距離画像記憶部２に記憶された距離画像を処理して平面を検出する平面検出部である。
【００１５】
符号４は、距離画像記憶部２に記憶された距離画像を処理してエッジ検出を行うエッジ検出部である。符号５は、平面検出部３及びエッジ検出部４の検出結果に基づいて特異箇所を判定する特異箇所判定部である。符号６は、平面検出結果を参照して、距離画像から特異箇所マップに使用する平面図へ変換する距離画像変換部である。符号７は、距離画像変換部６によって作成された平面図と特異箇所判定部５の判定結果に基づいて作成される特異箇所マップを記憶する特異箇所マップ記憶部である。符号８は、特異箇所マップを参照してロボットや自動車等の移動を制御する移動制御部である。
ここでは、図１に示す画像処理装置は屋内を移動する自律走行のロボットに備えられているものとして説明する。
【００１６】
ここで、以下の説明において用いる座標系を定義する。ロボットの前方の距離方向をＸ軸、ロボットの左右方向をＹ軸、鉛直方向をＺ軸とし、これらの３軸は互いに直交している。また、以下でいう距離とは、距離画像取得部１から各物体までの直線距離である。したがって、距離画像データは、距離画像取得部１の測定視野における物体表面の測定点の３次元座標値の集合である。
【００１７】
次に、図面を参照して、図１に示す画像処理装置の動作を説明する。図２は、図１に示す画像処理装置の動作を示すフローチャートである。
まず、距離画像取得部１は、距離画像を取得し、そのデータをＡ／Ｄ変換して各測定点毎に距離画像記憶部２へ格納する。ここでは、一例として各測定点の距離を８ビット（２５６階調）で表現するものとする。通常の画像の画素は、センサの視野内における物体表面の輝度を表現したものであるが、距離画像の画素は、センサの視野内における物体表面までの距離を２５６階調で表現したものである。
【００１８】
したがって、距離画像中の画素の位置によって、ＹＺ平面上の１点を特定することができ、さらにこの画素がもつ距離の情報によってＸ軸方向の位置を特定することができるため、３次元空間に存在する物体の表面上の１点を特定することができる。なお、より精度が必要な場合には、レーダを併用するなどして精度を向上させることもできる。さらに、距離データを２５６階調で表現せずに、距離センサの出力値をそのまま使用するようにしてもよい。ここで、現時点におけるロボットの位置関係を定義するために、ロボットの前方視野の情景の一例を図３に示す。図３に示すように、ロボットは、廊下がＴ字になるように交差している位置へ接近しているものとする。
【００１９】
次に、距離画像記憶部２に距離画像が格納された後に、平面検出部３は、距離画像記憶部２に記憶されている距離画像を読み取り、この距離画像を処理して平面の検出を行う（ステップＳ１）。この平面検出処理の詳細な説明は、後述するが、後述する検出処理に限らず周知の処理方法が利用できる。この平面検出処理によって、平面検出部３内には、図４に示す平面検出結果の画像が得られる。この処理によって検出された平面は式（１）によって表される。
ａkｘ＋ｂkｙ＋ｃkｚ＝ｄk・・・・・・・（１）
ただし、ｋは面毎に区別するためのインデックスである。
【００２０】
一方、平面検出部３の処理と並行して、エッジ検出部４は、平面検出部３が読み込んだ距離画像と同一の距離画像を読み取り、この距離画像を処理してエッジの検出を行う（ステップＳ２）。通常の輝度画像に対する画像処理においては、輝度変化が急激な箇所をエッジとして抽出する処理を行うが、距離画像に対するエッジ検出は、距離の変化が急激な箇所をエッジと抽出するものである。このエッジ検出処理には、輝度画像に対する周知の画像処理技術を用いることができ、例えば、距離画像に対して、Ｓｏｂｅｌフィルタを用いてエッジ検出のための２値画像を生成し、この２値画像に対して、さらにＨｏｕｇｈ変換を用いて線分を抽出すればよい。このエッジ検出処理によって、エッジ検出部４内には、図５に示すエッジ検出結果の画像が得られる。また、この処理によって、抽出線分の方向ベクトルｎ＝（ｘj，ｙj，ｚj）と抽出線分上の任意の点Ｐj0＝（ｘ0，ｙ0，ｚ0）が得られる。
【００２１】
次に、距離画像変換部６は、距離画像記憶部２に記憶されている距離画像と、平面検出部３における平面検出結果から平面図を生成する（ステップＳ３）。ここでいう平面図とは、ロボットの上方から見た位置関係を示す画像であり、ＸＹ平面に測定点を投影して生成される。この処理によって得られる平面図の画像の一例を図６に示す。この図に示すように、平面図画像は、廊下の配置関係と自己の位置を把握することができる画像となっている。
【００２２】
次に、特異箇所判定部５は、エッジ検出部４に保持されているエッジ情報を１つずつ読み出す（ステップＳ４）。そして、特異箇所判定部５は、この読み出したエッジに対応する平面が、平面検出部３内に保持されているか否かを判定する（ステップＳ５）。この判定は、式（２）、（３）を満たすか否かによって判定される。
｜ａkｘj＋ｂkｙj＋ｃkｚj｜≦εv・・・・・・・（２）
｜ａkｘ0＋ｂkｙ0＋ｃkｚ0−ｄk｜≦εp・・・・・（３）
ただし、εv，εpはしきい値であり、０に近い値である。
式（２）が満たされれば、抽出された線分の方向ベクトルと平面の法線ベクトルが９０度で直交していることを意味する。また、式（３）が満たされれば、抽出された線分上の各点が式（１）によって定義される面上に存在することを意味する。
【００２３】
この判定の結果、対応する平面が存在しない場合、ステップＳ７へ進む。一方、対応する平面が存在した場合、特異箇所判定部５は、対応する平面とエッジの情報からその位置を求め、この求められた位置を特異箇所として距離画像変換部６が生成した特異箇所マップ上にマーキングすることによって特異箇所マップを更新する（ステップＳ６）。図６に特異箇所をマーキングした状態の特異箇所マップを示す。
【００２４】
次に、特異箇所判定部５は、エッジ検出部４において検出されたエッジの全てについて処理を行ったか否かを判定し、行っていなければステップＳ４へ戻り処理を繰り返す。一方、全てのエッジについて処理を行った場合は特異箇所検出処理を終了する。距離画像取得部１は、１回の特異箇所検出処理が終了したのを受けて、新たな距離画像を取得して、その結果を距離画像記憶部２へ格納する。そして、前述したステップＳ１〜Ｓ７の処理を再度実行する。これによって、ロボットの移動に伴い特異箇所マップが更新される。
【００２５】
このように、距離画像に対してエッジ検出処理を施し、距離の急激変化を検出するようにしたため、交差点や下り階段などの特異箇所を高速で検出することが可能となる。また、エッジ検出によって検出されたエッジと、平面検出によって検出された平面とが所定の条件を満たしたときのみ、このエッジの箇所を特異箇所としたため、特異箇所の検出精度を向上させることができる。さらに、エッジ検出と平面検出を並行して処理するようにしたため、特異箇所の検出処理速度を向上することができる。
【００２６】
一方、移動制御部８は、時々刻々更新される特異箇所マップ記憶部７の内容を参照しながら、特異箇所を認識することによって移動経路の設定を行うとともに、特異箇所に接近した時点で走行速度を小さくするなどのロボットの移動制御を行う。これによって交差点に接近したときに走行速度を小さくして出会い頭の衝突を回避する等の行動が起こしやすくなり、周囲の環境構造に応じて車速等を制御することができる。
【００２７】
次に、平面検出部３が平面を検出する動作を説明する。図７は、平面検出部３３が距離画像から壁に相当する垂直平面を抽出する動作を示すフローチャートである。
平面検出部３は、１フレーム分の距離データを読み出し、予め設定されているマスクによって画像上の着目画素（ここでは、Ｐ１と称する）と他の１点の画素（ここでは、Ｐ２と称する）を選択する（ステップＳ１２）。図９（ａ）にステップＳ１において用いられるマスクの一例を示す。この図に示すように、垂直平面用マスクは５×５画素のものであり、中心の点がＰ１であり、４隅の点がＰ２となる。
【００２８】
次に、平面検出部３は、このマスクによって選択された２点Ｐ１（ｘ1，ｙ1，ｚ1）、Ｐ２（ｘ2，ｙ2，ｚ2）から式（４）、（５）によって、Ｈｏｕｇｈ空間上のパラメータθ、ρを求める（ステップＳ１２）。
θ＝−ｔａｎ-1［（ｘ1−ｘ2）／（ｙ1−ｙ2）］・・・・（４）
ρ＝ｘ1ｃｏｓθ＋ｙ2ｓｉｎθ・・・・・・・・・・・（５）
式（４）、（５）に示すように、パラメータθ、ρは、Ｚ成分を用いずにＸ成分及びＹ成分のみによって算出される。図７に示す処理は、壁等の垂直平面を抽出する処理であるため、Ｚ成分を無視することができる。特に屋内においては、垂直平面がほとんどであるため、Ｚ成分を無視しても平面抽出の処理結果に及ぼす影響は小さくすることができる。したがって、３次元座標値を有する物体表面上の測定点をＸＹ平面に投影し、その投影された点からＸＹ平面上の直線を抽出すれば３次元空間上の垂直平面を抽出することができる。ここで、式（４）、（５）によって算出されるパラメータθは、抽出しようとする直線が鉛直軸周りになす回転角度であり、パラメータρは、この直線と原点との距離を表している。
【００２９】
次に、平面検出部３は、ステップＳ１２において求めたパラメータθ、ρを３次元ヒストグラムへ投票する（ステップＳ１３）。続いて、平面検出部３は、同一のＰ１に対して、他の３つのＰ２（図９（ａ）における斜線の位置）についてステップＳ１１〜Ｓ１３の処理を行う（ステップＳ１４）。さらに、平面検出部３は、図９（ａ）に示すマスクを使用して、図１０に示すように、距離画像の左上の位置から右下の位置まで距離画像全体に対してＰ１の位置を１画素分ずつ移し、ステップＳ１１〜Ｓ１３の処理を繰り返す（ステップＳ１５）。この処理によって、３次元ヒストグラムが生成される。
【００３０】
次に、平面検出部３は、３次元ヒストグラムを参照して、度数のすべての極大値を抽出する（ステップＳ１６）。そして、抽出した極大値を持つパラメータθ、ρを求め、このθ、ρによって、ＸＹ平面上の直線を特定する。したがって、ここで特定される直線の数は、極大値の数と同数となる。
なお、極大値の抽出において、ある大きさ以上の極大値のみを抽出するようにしてもよい。
【００３１】
次に、平面検出部３は、３次元座標値を持つ測定点をＸＹ平面に投影した点が、先に特定された直線上の点となるか否かによってこの測定点が平面上の点であるか否かを判定する。そして、この判定を特定された直線毎に行うことによって、距離画像上の垂直平面を抽出し、この結果から平面抽出画像を生成する（ステップＳ１７）。この平面抽出画像は、同一の直線上に存在する測定点を、特定された直線毎に色分けするなどして生成すればよい。この処理によって、垂直平面のみが色付けされて抽出され、垂直平面でない部分は色付けがされていない状態の平面抽出画像が得られる。
【００３２】
次に、図８を参照して、平面検出部３が床等に相当する水平平面を抽出する動作を説明する。図８は、平面検出部３が水平平面を抽出する動作を示すフローチャートである。ここでいう水平平面とは、床面や道路面のことであり、現実的なスロープの角度（例えば最大で１０度）を有する床面や道路面が含まれる。
まず、距離画像記憶部２に距離画像が格納された後に平面検出部３は、１フレーム分の距離データを読み出し、予め設定されているマスクによって画像上の着目画素（ここでは、Ｐ１と称する）と他の２点の画素（ここでは、Ｐ２、Ｐ３と称する）を選択する（ステップＳ２１）。図９（ｂ）にステップＳ２１において用いられるマスクの一例を示す。この図に示すように、水平平面用マスクは９×９画素のものであり、中心の５×５画素の部分は、図９（ａ）に示す垂直平面用マスクと同等であり、さらにこのマスクは、９×９画素の４隅がＰ３となっている。
【００３３】
次に、平面検出部３は、このマスクによって選択された３点Ｐ１（ｘ1，ｙ1，ｚ1）、Ｐ２（ｘ2，ｙ2，ｚ2）、Ｐ３（ｘ3，ｙ3，ｚ3）から式（６）、（７）によって、単位外積ベクトルｎを求める（ステップＳ２２）。以下の式の説明において、ベクトルの表現を「ベクトルｎ」という表現を用いる。
【００３４】
単位外積ベクトルｎは、式（６）によって、まず外積ベクトルｎtmpを求め、さらにこれを式（７）によって正規化することによって求められる。
外積ベクトルｎtmp＝（（ｙ2−ｙ1）（ｚ3−ｚ1）−（ｚ2−ｚ1）（ｙ3−ｙ1），
（ｚ2−ｚ1）（ｘ3−ｘ1）−（ｘ2−ｘ1）（ｚ3−ｚ1），
（ｙ2−ｙ1）（ｚ3−ｚ1）−（ｚ2−ｚ1）（ｙ3−ｙ1））・・・（６）
単位外積ベクトルｎ＝ベクトルｎtmp／｜ベクトルｎtmp｜・・・・・・・・・・・・（７）
式（７）によって正規化された大きさ１の単位外積ベクトルｎは、
単位外積ベクトルｎ＝（ｎx，ｎy，ｎz）となり、このベクトルが先に選択した３点で張る面の垂直ベクトルとなる。
【００３５】
次に、平面検出部３は、求めた単位外積ベクトルｎから式（８）、（９）、（１０）、（１１）によって、パラメータρ、θx、θy、θzを求める（ステップＳ２３）。
ρ＝ｎxｘ1＋ｎyｙ1＋ｎzｚ1・・・・・・（８）
θx＝ｃｏｓ-1ｎx・・・・・・・・・・・（９）
θy＝ｃｏｓ-1ｎy・・・・・・・・・・・（１０）
θz＝ｃｏｓ-1ｎz・・・・・・・・・・・（１１）
ここで、パラメータρは、抽出しようとする平面に原点からの距離を表し、パラメータθx、θy、θzは、それぞれ垂直ベクトルの各成分に対する方向余弦に対する角度を表している。
【００３６】
次に、平面検出部３は、垂直ベクトルのＺ成分の方向余弦に対する角度  θzが、｜θz｜≦Ｔｈを満たすか否かを判定する（ステップＳ２４）。ここで、Ｔｈはしきい値であり、床面や道路面のスロープの最大角度である。通常、屋内における床面はスロープを考慮しても最大で１０度程度であるので、このＴｈは１０度を設定することが望ましい。
【００３７】
次に、平面検出部３は、ステップＳ２４において、｜θz｜≦Ｔｈを満たしていれば、ステップＳ２３において求めたパラメータρ、θx、θy、θzを４次元ヒストグラムへ投票する（ステップＳ２５）。一方、｜θz｜≦Ｔｈを満たしていなければ、ステップＳ２６へ進む。
【００３８】
続いて、平面検出部３は、同一のＰ１に対して、他の３つのＰ２及び他の３つのＰ３（図９（ｂ）における斜線の位置）についてステップＳ２１〜Ｓ２５の処理を行う（ステップＳ２６）。さらに、平面検出部３は、図９（ｂ）に示すマスクを使用して、図１０に示すように、距離画像の左上の位置から右下の位置まで距離画像全体に対してＰ１の位置を１画素分ずつ移し、ステップＳ２１〜Ｓ２５の処理を繰り返す（ステップＳ２７）。この処理によって、４次元ヒストグラムが生成される。
ただし、投票されるのは、｜θz｜≦Ｔｈが満たされたときのみである。
【００３９】
次に、平面検出部３は、４次元ヒストグラムを参照して、度数のすべての極大値を抽出する（ステップＳ２８）。そして、抽出した極大値を持つパラメータρ、θx、θy、θzを求め、このρ、θx、θy、θzによって、３次元空間上の平面を特定する。したがって、ここで特定される平面の数は、極大値の数と同数となる。
なお、極大値の抽出において、ある大きさ以上の極大値のみを抽出するようにしてもよい。
【００４０】
次に、平面検出部３は、特定された水平平面から平面抽出画像を生成する（ステップＳ２９）。この平面抽出画像は、特定された平面上に存在する測定点を、特定された平面毎に色分けするなどして生成すればよい。この処理によって、水平平面のみが色付けされて抽出され、水平平面でない部分は色付けがされていない状態の平面抽出画像が得られる。
【００４１】
なお、図７に示す垂直平面抽出処理と図８に示す水平平面抽出処理は、同時に動作し、その結果を合成して、垂直平面と水平平面とが色分けされた平面抽出画像を生成するようにしてもよい。また、距離画像取得部１は、平面検出部３および平面検出部３が、距離画像記憶部２に記憶されている距離データの読み出しが終了した時点で、新たな距離画像を取得し、距離画像記憶部２を更新するようにする。そして、前述した処理を繰り返すことによって、平面検出画像を更新する。図１１に平面検出画像の一例を示す。
【００４２】
このように、垂直平面の検出の際にＺ成分を用いずにＸ、Ｙ成分のみによって演算を行い、３次元のヒストグラムを使用してＸＹ平面の直線を特定することによって壁に相当する垂直平面を抽出するようにしたため、使用するメモリ量を削減することができ、さらに処理時間も短縮することができる。また、床面や道路面に相当する水平平面の検出の際に、検出しようとする平面の候補に対して、垂直ベクトルの角度が所定の範囲内である候補のみを使用して４次元ヒストグラムの投票を行うようにしたため、使用するメモリ量を削減することができ、さらに処理時間も短縮することができる。また、垂直平面と水平平面の検出処理を分けて、並行して同時に動作するようにしたため、さらに処理効率を向上させることが可能となる。さらに平面検出画像と距離画像を参照しながらロボットの移動を制御するようにしたため、精度よくロボットの位置の制御を行うことができるとともに、処理時間を短縮することが可能となるためにロボット内における経路選定処理の負荷を低減することが可能となる。また、マスクを用いて投票範囲を制限したので、処理時間を短縮できるととに平面の検出精度が向上する。
【００４３】
なお、図２、７、８における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより特箇所検出処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フロッピーディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００４４】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００４５】
【発明の効果】
以上説明したように、請求項１、４、５に記載の発明によれば、距離画像に対してエッジ検出処理を施し、距離の急激変化を検出するようにしたため、交差点や下り階段などの特異箇所を高速で検出することが可能となる。また、エッジ検出によって検出されたエッジと、平面検出によって検出された平面とが所定の条件を満たしたときのみ、このエッジの箇所を特異箇所としたため、特異箇所の検出精度を向上させることができる。さらに、エッジ検出と平面検出を並行して処理するようにしたため、特異箇所の検出処理速度を向上することができるという効果が得られる。
【００４６】
また、請求項２に記載の発明によれば、特異箇所マップを参照しながら自動車の移動を制御するようにしたため、精度よく自動車の位置の制御を行うことができるとともに、特異箇所への接近に伴い必要な行動を起こす制御をすることが可能になるという効果が得られる。
【００４７】
また、請求項３に記載の発明によれば、特異箇所マップを参照しながらロボットの移動を制御するようにしたため、精度よくロボットの位置の制御を行うことができるとともに、特異箇所への接近に伴い必要な行動を起こす制御をすることが可能になるという効果が得られる。
【図面の簡単な説明】
【図１】  本発明の一実施形態の構成を示すブロック図である。
【図２】  図１に示す画像処理装置の動作を示すフローチャートである。
【図３】  ロボットの前方視野の情景の一例を示す説明図である。
【図４】  図１に示す平面検出部３によって生成された平面検出画像の一例を示す説明図である。
【図５】  図１に示すエッジ検出部４によって生成されたエッジ検出画像の一例を示す説明図である。
【図６】  図１に示す特異箇所マップ記憶部７に記憶される特異箇所マップの一例を示す説明図である。
【図７】  図１に示す平面検出部３の動作を示すフローチャートである。
【図８】  図１に示す平面検出部３の動作を示すフローチャートである。
【図９】  図１に示す平面検出部３において用いられるマスクの一例を示す説明図である。
【図１０】  図１に示す平面検出部３の処理において、距離画像の走査方向の一例を示す説明図である。
【図１１】  図１に示す平面検出部３によって生成された平面検出画像の一例を示す説明図である。
【符号の説明】
１・・・距離画像取得部、
２・・・距離画像記憶部、
３・・・平面検出部、
４・・・エッジ検出部、
５・・・特異箇所判定部、
６・・・距離画像変換部、
７・・・特異箇所マップ記憶部、
８・・・移動制御部。
【図１】
0004409035.tif 000002
【図２】
0004409035.tif 000003
【図３】
0004409035.tif 000004
【図４】
0004409035.tif 000005
【図５】
0004409035.tif 000006
【図６】
0004409035.tif 000007
【図７】
0004409035.tif 000008
【図８】
0004409035.tif 000009
【図９】
0004409035.tif 000010
【図１０】
0004409035.tif 000011
【図１１】
0004409035.tif 000012