(57)【要約】【課題】  膨大なデータベース等を必要とすることなく、簡単な処理で立体物の識別を精度よく行うことのできる立体物認識装置を提供する。【解決手段】  立体物認識装置１を、ステレオカメラ５で撮像した画像対を用いて距離画像を生成する距離画像生成部６と、上記距離画像上で同一立体物を示す上記距離データをグループ化するグルーピング処理部１０と、グループ化した立体物の距離データ群を包含する最小の領域を距離画像上に設定し、当該領域を設定分割数で分割する小領域毎に代表的な距離データを要素ｘiとする入力値Ｘinを設定する入力値設定部１１と、少なくとも入力値Ｘinを入力層への入力とするニューラルネットワークを用いて予め設定した立体物の種類毎に異なるパターンの出力値Ｙoutを演算する演算部１２と、出力値Ｙoutのパターンに基づいて立体物の種類を識別する識別部１３とを備えて構成する。【選択図】  図１
2005346297.tif 000002
【特許請求の範囲】
【請求項１】
撮像手段で撮像した画像を用いて撮像対象の３次元的な距離データの分布からなる距離画像を生成する距離画像生成手段と、
上記距離画像上で同一立体物を示す上記距離データをグループ化するグルーピング処理手段と、
予め設定された所定形状の領域であって上記グループ化した立体物の距離データ群を包含する領域を上記距離画像上に設定し、当該領域を設定分割数で分割する小領域毎に代表的な距離データを要素とする入力値を設定する入力値設定手段と、
少なくとも上記入力値を入力層への入力とするニューラルネットワークを用いて予め設定した立体物に対応したパターンの出力値を演算する演算手段と、
上記演算手段で演算した出力値のパターンに基づいて立体物を識別する識別手段とを備えたことを特徴とする立体物認識装置。
【請求項２】
上記入力値設定手段は、上記距離データ群を囲繞する矩形領域を距離画像上に設定し、当該矩形領域を１ライン毎に縮小することで、各辺が上記距離データ群の何れかの画素に外接する上記領域を設定することを特徴とする請求項１記載の立体物認識装置。
【請求項３】
上記入力値設定手段は、上記小領域毎の距離データの平均値を上記入力値の要素として設定することを特徴とする請求項１または請求項２記載の立体物認識装置。
【請求項４】
上記入力値設定手段は、上記量領域毎の距離データの平均値をサブピクセルレベルで算出することを特徴とする請求項３記載の立体物認識装置。
【請求項５】
上記演算手段で用いるニューラルネットワークに設定される各荷重係数は、予め用意した複数の距離画像を学習画像として用いた遺伝的アルゴリズムにより設定されることを特徴とする請求項１乃至請求項４の何れかに記載の立体物認識装置。
【請求項６】
上記立体物に対応したパターンは立体物の種類毎に異なるパターンとして設定されており、上記識別手段は、上記パターンに基づいて立体物の種類を特定することを特徴とする請求項１記載の立体物認識装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元的な距離情報の分布で構成される距離画像を用いて立体物の種類を識別する立体物認識装置に関する。
【背景技術】
【０００２】
従来より、画像による３次元計測技術として、２台のカメラからなるステレオカメラで対象物を異なる位置から撮像した一対の画像の相関を求め、同一物体に対する視差からステレオカメラの取り付け位置や焦点距離等のカメラパラメータを用いて三角測量の原理により対象物までの３次元画像情報（距離画像）を求める、いわゆるステレオ法による画像処理が知られている。近年、この種の画像処理を用いた立体物認識装置が実用化されており、例えば、車載の立体物認識装置においては、距離画像上のデータにグルーピング処理を施し、グループ化した距離情報の分布を、予め記憶しておいた３次元的な進路形状データ、側壁データ、立体物データ等と比較することで画像上の白線、道路に沿って存在するガードレールや縁石等の側壁、車両等の立体物を認識する技術が確立されている。
【０００３】
さらに、距離画像を用いて立体物をより詳細に認識するため（立体物の種類を識別するため）、例えば、特許文献１には、距離画像から背景を除去し物体に関する距離画像のみを切り出す背景切り出し装置と、切り出された対象物体領域のシルエット中心と奥行き平均とを求めるシルエット／奥行き平均計算装置と、シルエット中心が画像中心となるように平行移動する対象物体領域平行移動装置と、距離画像投影面と平行で奥行き平均だけ離れた平面上に一定の間隔を有するメッシュを定義したときの各格子点から見て平行移動を行った距離画像により定義される曲線までの高さを補間演算により求めて新たに距離画像を再合成する距離画像再合成装置と、それぞれの物体モデルが平面上で安定姿勢にあるときに平面の法線ベクトル回りの回転角と３次元形状計測装置の光軸に対する平面法線ベクトルの角度とをパラメータにして得られる距離画像を入力として、背景切り出し装置とシルエット中心／奥行き平均計算装置と対象物体領域平行移動装置と距離画像再合成装置とを通じて生成される距離画像からなる辞書データベースと、対象物体距離画像を入力として距離画像再合成装置からの出力と辞書データベース情報とを照合することにより対象物体を識別する照合・判別装置とから構成される物体形状識別装置（立体物認識装置）が開示されている。
【特許文献１】特開２００１−１４３０７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述の特許文献１に開示された技術では、立体物の種類の識別に、対象物体の平行移動や距離画像の再合成、距離画像と辞書データベースとの照合等の煩雑な処理を行う必要がある。
【０００５】
また、上述の技術において、立体物を精度良く識別するためには識別対象となる対象物体についての辞書データベースを詳細に作成する必要があるが、このような辞書データベースの作成は膨大な時間と労力を必要とするため現実的ではない。
【０００６】
さらに、撮像環境等によっては撮像画像にノイズ等が発生する場合があり、このようなノイズ等が発生すると、距離画像の生成時に画素間のミスマッチングや距離データの抜け等が発生する等して、立体物の識別精度が低下する虞がある。
【０００７】
本発明は上記事情に鑑みてなされたもので、膨大なデータベース等を必要とすることなく、簡単な処理で立体物の識別を精度よく行うことのできる立体物認識装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、撮像手段で撮像した画像を用いて撮像対象の３次元的な距離データの分布からなる距離画像を生成する距離画像生成手段と、上記距離画像上で同一立体物を示す上記距離データをグループ化するグルーピング処理手段と、予め設定された所定形状の領域であって上記グループ化した立体物の距離データ群を包含する領域を上記距離画像上に設定し、当該領域を設定分割数で分割する小領域毎に代表的な距離データを要素とする入力値を設定する入力値設定手段と、少なくとも上記入力値を入力層への入力とするニューラルネットワークを用いて予め設定した立体物に対応したパターンの出力値を演算する演算手段と、上記演算手段で演算した出力値のパターンに基づいて立体物を識別する識別手段とを備えたことを特徴とする。
【発明の効果】
【０００９】
本発明の立体物認識装置によれば、膨大なデータベース等を必要とすることなく、簡単な処理で立体物の識別を精度よく行うことができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して本発明の形態を説明する。図面は本発明の一形態に係わり、図１は立体物認識装置の概略構成図、図２は立体物認識ルーチンを示すフローチャート、図３は立体物の種類を識別するニューラルネットワークの説明図、図４は距離画像の一例を示す説明図、図５は距離画像上で距離データ群を包含する領域の一例を示す説明図、図６は制御パラメータ学習装置の概略構成図、図７は各学習画像を示す説明図、図８は制御パラメータ学習処理のメインルーチンを示すフローチャート、図９は学習画像処理サブルーチンを示すフローチャート、図１０は識別率評価サブルーチンを示すフローチャート、図１１は制御パラメータの進化計算サブルーチンを示すフローチャート、図１２は学習画像の追加サブルーチンを示すフローチャートである。
【００１１】
図１において符号１は、立体物の種類を識別する機能を備えた立体物認識装置を示す。この立体物認識装置１は、ＣＰＵ、ＲＯＭ、ＲＡＭ、入出力インターフェース等を備えたコンピュータ２を有し、コンピュータ２の入出力インターフェースに、距離画像生成部（距離画像生成手段）６を介してステレオカメラ（撮像手段）５が接続されて要部が構成されている。
【００１２】
ステレオカメラ５は、例えば、互いに同期が取られた高精度（例えば、１３００×１０３０画素）な２台のＣＣＤカメラ５ａ，５ｂで構成され、各ＣＣＤカメラ５ａ，５ｂは、一方のＣＣＤカメラ５ａをメインカメラ、他方のＣＣＤカメラ５ｂをサブカメラとして、所定の基線長で互いの撮像面垂直軸が平行となるよう配置されている。
【００１３】
距離画像生成部６は、各ＣＣＤカメラ５ａ，５ｂからの各アナログ信号に対応して、ゲインコントロールアンプを有するアナログインターフェース、アナログ画像データをデジタル画像データに変換するＡ／Ｄコンバータを有し、また、例えば高集積度ＦＰＧＡによって構成された、画像の明暗部に対して対数変換を行うためのＬＯＧ変換テーブル等の各機能部を有する。そして、距離画像生成部６は、各ＣＣＤカメラ５ａ，５ｂからの撮像信号に対し、それぞれのゲイン調整により信号バランスを揃えた後、ＬＯＧ変換により低輝度部分のコントラストを改善する等の画像補正を行い、所定の輝度階調のデジタル画像データに変換してメモリにストアする。さらに、距離画像生成部６は、例えば、高集積度ＦＰＧＡ等によって構成されたシティブロック距離計算回路、最小値・画素ズレ検出回路等を有し、ストアしたメイン画像及びサブ画像の２枚の画像に対し、各画像の小領域毎にシティブロック距離を算出して互いの相関を求めることで対応する領域を特定するステレオマッチング処理を行い、対象物までの距離に応じて生じる画素のズレ（＝視差）から得られる対象物までの遠近情報を距離データとして数値化した３次元画像情報（距離画像）を生成する。
【００１４】
コンピュータ２は、これを機能的に捉えると、グルーピング処理手段としてのグルーピング処理部１０と、入力値設定手段としての入力値設定部１１と、演算手段としての演算部１２と、識別手段としての識別部１３を有する。ここで、説明を簡略化するため、本形態では、距離画像中の立体物を、２面立体物（ステレオカメラ５で２面のみが撮像された立体物）、３面立体物（ステレオカメラ５で３面が撮像された立体物）、円錐、或いは、球体の何れかに識別する場合の一例について説明する。すなわち、図１に示す立体物認識装置１は、各種撮像条件下においてステレオカメラ５で撮像した立体物（立方体、円錐、或いは、球体）を、コンピュータ２の処理によって、２面立方体、３面立方体、円錐、或いは、球体の何れかに識別する。
【００１５】
グルーピング処理部１０は、距離画像生成部６から入力された距離画像（例えば、図４参照）上で同一立体物を示す距離データをグループ化する。具体的に説明すると、グルーピング処理部１０は、先ず、認識対象となるオブジェクトが載置された平面を求める。すなわち、グルーピング処理部１０は、距離画像上の距離データを、１ライン毎に最小二乗法によって直線式で近似し、近似直線から規定の範囲に入っている距離データのみを平面を求めるためのデータとして抽出し、規定の範囲外のデータを除去する。この処理は、画像の上下方向に走査して順次行われ、これにより、距離画像から平面を構成していない距離データが特異点として除去される。そして、グルーピング処理部１０は、特異点除去後の距離画像上に設定した各サンプル領域の座標及び距離データをステレオカメラ５を原点とする実空間の座標に変換し、変換後のデータを、以下の（１）式で示す平面の方程式に最小二乗法を用いて当てはめるべく、マトリクスを作成して三元連立方程式を解き、各係数ａ，ｂ，ｃを決定する。  
ａｘ＋ｂｙ＋ｃｚ＝１  …（１）
なお、以上の平面式算出処理は、例えば、本出願人による特開平１１−２３０７４５号公報に詳述されている。
【００１６】
さらに、グルーピング処理部１０は、距離画像上の距離データのうち、算出した平面式に基づく平面よりも上方に存在するもの（ｚ座標が大きいもの）を立体物の距離データとして抽出するとともに、平面以下に存在する距離データに”０”を代入してこれを削除する。そして、グルーピング処理部１０は、抽出した各距離データのうち、上下左右で互いに連続して分布する距離データに同一番号を付与し、これらを同一立体物を示す距離データ群としてグループ化する。その際、グルーピング処理部１０は、グループ化された各距離データ群のうち、距離データ数が例えば２０以下のものを削除する。
【００１７】
入力値設定部１１は、予め設定された所定形状の領域であって、グルーピング処理部１０でグループ化された各距離データ群をそれぞれ包含する最小の領域を上記距離画像上に設定し、当該領域を設定分割数で分割する小領域毎に代表的な距離データを算出する。そして、演算部１２への入力値として、各小領域に代表的な距離データを要素xiとする入力値Ｘinを設定する。具体的に説明すると、例えば図５に示すように、本形態において、入力値設定部１１は、距離データ群に対し、例えば矩形形状の領域を設定するようになっている。この場合、入力値設定部１１は、先ず、距離データ群を囲繞する矩形領域を距離画像上に設定し、当該領域を１ライン毎に縮小することで、各辺が距離データ群の何れかの画素（距離データ）に外接する領域を得る。
【００１８】
さらに、入力値設定部１１は、設定した領域を、予め設定された分割数の小領域（例えば、５×５の２５小領域）に分割して各小領域毎に代表的な距離データ（例えば、小領域内の距離データの平均値）を求め、これらを要素とする演算部１２への入力値Ｘin（＝（ｘ1，…ｘi，…，ｘ25）を設定する。ここで、入力値設定部１１は、設定した領域の縦横の画素数が５の倍数でない場合でも、グループ化した全距離データを用いて入力値Ｘinを設定する。すなわち、各小領域における距離データの平均値（要素ｘi）の算出はサブピクセルレベルで行われ、例えば、設定した領域の縦方向の画素数が６×５画素である場合、各小領域では、１．２×１画素の距離データの平均値が算出される。
【００１９】
演算部１２は、少なくとも入力値設定部１１で設定した入力値Ｘinの各要素ｘiを入力層への入力とするニューラルネットワークを用いて予め設定した立体物の種類毎に異なるパターンの出力値Ｙoutを演算する。本形態において、ニューラルネットワークは、入力層、中間層及び出力層からなる階層型ニューラルネットワークであり、各層は、それぞれが複数のノードＮin，Ｎmid，Ｎout（以下、これらを総称してノードＮともいう）を有する。
【００２０】
このニューラルネットワークの各層を構成するノードＮの数は、システムの設計者によって適宜設定される。図３に示すように、本形態において、入力層は、例えば２６個のノードＮin、すなわち、入力値設定部１１で設定された入力値Ｘinの各要素ｘi（ｉ＝１〜２５）がそれぞれ入力される２５個のノードＮinに加え、補数として常に出力値ｙi（ｉ＝２６）＝１．０を出力するノードＮinを有する。補数を出力するノードＮinを除く各ノードＮinでは、入力される各要素ｘi（ｉ＝１〜２５）に対して（２）式に示す計算を行い、その演算結果ｙiを出力する。  
ｙi＝１／（１＋ｅｘｐ（−ｘi））  …（２）
これにより、入力層からは、全体として、出力値Ｙin＝（ｙ1，…，ｙi，…，ｙ25）が中間層に出力される。
【００２１】
また、中間層は、例えば２１個のノード、すなわち、入力層の各ノードＮinからの出力値Ｙinがそれぞれ入力される設定個数（２０個）のノードＮmidに加え、補数として常に出力値ｙj（ｊ＝２１）＝１．０を出力する１個のノードＮmidを有する。補数を出力するノードＮmidを除く各ノードＮmidでは、入力層からの出力値Ｙinに対して（３），（４）式に示す計算を行い、その演算結果ｙjを出力する。  
ｘj＝Σ（Ｋij・ｙi）              …（３）
ｙj＝１／（１＋ｅｘｐ（−ｘj））  …（４）
これにより、中間層からは、全体として、Ｙmid＝（ｙ1，…，ｙj，…，ｙ21）が出力層に出力される。
【００２２】
また、出力層は、例えば、後述する識別部１３で識別すべき立体物の種類（例えば、２面立方体、３面立方体、円錐、及び球体）に対応する設定個数（４個）のノードＮoutを有する。これらのノードＮmidには、中間層の各ノードＮmidからの出力値Ｙmidがそれぞれ入力され、各ノードＮoutでは、中間層からの出力値Ｙmidに対して（５），（６）式に示す計算を行い、その演算結果Ｙk（ｋ＝１〜４）を出力する。  
ｘk＝Σ（Ｋjk・ｙj）              …（５）
ｙk＝１／（１＋ｅｘｐ（−ｘk））  …（６）
これにより、出力層からは、全体として、出力値Ｙout＝（ｙ1，…，yk，…，ｙ4）が出力される。
【００２３】
ここで、（２），（４），（６）式は、シグモイド関数と呼ばれ、ニューラルネットワークのノードへの入力を正規化するための関数として一般に用いられる。
【００２４】
また、Ｋijは入力層と中間層との各ノード間の荷重係数であり、Ｋjkは中間層と出力層との各ノード間の荷重係数である。図３に示すニューラルネットワークは都合６０４個の荷重係数を有し、これらは、後述する制御パラメータ学習装置２０によって、遺伝的アルゴリズムを用いた学習により予め設定される。これら各荷重係数が適切に設定されることにより、ニューラルネットワークでは、認識すべき立体物の種類毎に異なるパターンの出力値Ｙoutを出力層から出力する。
【００２５】
識別部１３は、演算部１２で演算された出力値Ｙoutのパターンに基づいて立体物の種類を識別する。具体的には、識別部１３は、例えば、ニューラルネットワークの出力層からの出力値Ｙoutのパターンが、ｙ1＞ｙ2、ｙ1＞ｙ3、且つ、ｙ1＞ｙ4である場合、立体物が２面立方体であると判定する。また、識別部１３は、例えば、ｙ2＞ｙ1、ｙ2＞ｙ3、且つ、ｙ2＞ｙ4である場合、立体物が３面立方体であると判定する。また、識別部１３は、例えば、ｙ3＞ｙ1、ｙ3＞ｙ2、且つ、ｙ3＞ｙ４である場合、立体物が円錐であると判定する。また、識別部１３は、例えば、ｙ4＞ｙ1、ｙ4＞ｙ2、且つ、ｙ4＞ｙ3である場合、立体物が球体であると判定する。
【００２６】
次に、上述のコンピュータ２で実行される立体物認識処理（立体物識別処理）について、図２に示す立体物認識ルーチンのフローチャートに従って説明する。このルーチンがスタートすると、コンピュータ２は、先ず、ステップＳ１０１において、距離画像生成部６で生成された距離画像を入力する。
【００２７】
続く、ステップＳ１０２において、コンピュータ２は、入力した距離画像から、立体物が載置された平面式を求め、当該平面式で規定される平面よりも上方で同一立体物を示す距離データをそれぞれグループ化する。
【００２８】
ステップＳ１０２からステップＳ１０３に進むと、コンピュータ２は、グループ化した距離データ群を包含する最小の矩形領域を距離画像上に設定し、当該領域を２５分割する領域毎に距離データの平均値を求め、これらを各要素ｘiとする入力値Ｘinを設定する。
【００２９】
ステップＳ１０４〜ステップＳ１０６の処理は、上述のニューラルネットワークを用いて行われるもので、コンピュータ２は、ステップＳ１０４において、入力層の処理を行う。すなわち、コンピュータ２は、ステップＳ１０３で設定した入力値Ｘinの各要素ｘiに対応する２５個の各ノードＮinにおいて、上述の（２）式を用いた演算処理を行い、その演算結果ｙiを出力するとともに、残り１個のノードＮinから補数（出力値ｙ26＝１）を出力する。
【００３０】
続くステップＳ１０５において、コンピュータ２は、中間層の処理を行う。すなわち、コンピュータ２は、入力層からの出力値Ｙinに対応する２０個の各ノードＮmidにおいて、上述の（３），（４）式を用いた演算処置を行い、その演算結果ｙjを出力するとともに、残り１個のノードＮmidから補数（出力値ｙ21＝１）を出力する。
【００３１】
続くステップＳ１０６において、コンピュータ２は、出力層の処理を行う。すなわち、コンピュータ２は、中間層からの出力値Ｙmidに対応する４個の各ノードＮoutにおいて、上述の（５），（６）式を用いた演算処理を行い、その演算結果ｙkを出力する。
【００３２】
そしてステップＳ１０７に進み、コンピュータ２は、出力層の各ノードＮoutからの出力値Ｙout（＝（ｙ1，ｙ2，ｙ3，ｙ4））のパターンに基づいて、立体物の種類を２面立方体、３面立方体、円錐、或いは球体の何れかに識別した後、ルーチンを抜ける。
【００３３】
次に、上述の立体物認識装置１で適用されるニューラルネットワークの各制御パラメータ（各荷重係数Ｋij，Ｋjk）を、遺伝的アルゴリズムを用いて学習する制御パラメータ学習装置２０の構成について説明する。
【００３４】
図６に示すように、この制御パラメータ学習装置２０は、ＣＰＵ、ＲＯＭ、ＲＡＭ、入出力インターフェース等を備えたコンピュータ２１を中心として構成されている。コンピュータ２１は、これを機能的に捉えると、学習画像記憶部２２と、学習画像処理部２３と、識別率評価部２４と、進化計算部２５とを有する。
【００３５】
学習画像記憶部２２には予め用意された複数（例えば、２１１）の学習画像が記憶されており、学習画像記憶部２２は、学習画像処理部２３に対し、各学習画像を適宜選択的に出力する。ここで、学習画像記憶部２２に記憶される各学習画像は、立体物（立方体、円錐、或いは球体）を各種撮像条件でステレオ撮像した画像対に基づく距離画像で構成されている。本形態において、各学習画像はそれぞれ異なる識別番号ＩＤ（ＩＤ＝１〜２１１）で管理されており、この識別番号ＩＤを参照することで、学習画像中の立体物を特定することが可能となっている。例えば、識別番号ＩＤ＝１〜４６の学習画像は立方体（２面立方体）を撮像した画像対に基づいて生成されたものであり、識別番号ＩＤ＝４７〜１０６の学習画像は立方体（３面立方体）を撮像した画像対に基づいて生成されたものである。また、識別番号ＩＤ＝１０７〜１６６の学習画像は円錐を撮像した画像対に基づいて生成されたものであり、識別番号ＩＤ＝１６７〜２１１の学習画像は球体を撮像した画像対に基づいて生成されたものである。
【００３６】
学習画像処理部２３は、グルーピング処理部２３ａ、入力値設定部２３ｂ、及び演算部２３ｃを有して構成され、学習画像記憶部２２から入力された学習画像の処理を行う。ここで、学習画像処理部２３を構成する各部は、上述のグルーピング処理部１０、入力値設定部１１、演算部１２と略同様の構成となっている。但し、演算部２３ｃで用いられるニューラルネットワークは、上述の図３に示したニューラルネットワークと同一形態の階層構造であるが、各ノード間に設定される荷重係数Ｋij，Ｋjkが、後述する進化計算部２５からの入力に応じて適宜変更可能となっている。すなわち、本形態において、学習画像処理部２３は、例えば、進化計算部２５からの入力に応じて、荷重係数Ｋij，Ｋjkの異なる４００通りのニューラルネットワークを構築し、構築したニューラルネットワーク毎に入力値Ｘinに対する演算処理を行う。
【００３７】
識別率評価部２４は、学習画像処理部２３での処理結果に基づき、立体物の識別率をニューラルネットワーク毎に評価する。すなわち、識別率評価部２４では、各ニューラルネットワークの出力層からの出力値Ｙoutのパターンに基づいて学習画像中の立体物を識別するとともに、該当する学習画像の識別番号ＩＤを参照して出力層からの出力パターンが適正であるか否かを調べる。そして、このような処理を学習画像処理部２３に入力された全ての学習画像に対して行うことで、ニューラルネットワーク毎の立体物の識別率を算出する。
【００３８】
進化計算部２５は、ニューラルネットワークの各ノード間に設定される例えば６０４個の制御パラメータ（各荷重係数Ｋij，Ｋjk）に対応する要素を遺伝子型で表現した個体を複数設定し、これらを遺伝的アルゴリズムにより変異させて引き継ぐことで、最適な各荷重係数Ｋij，Ｋjkを設定する。具体的には、進化計算部２５は、１世代目の個体として、例えば、６０４個の要素を備えた個体を４００個体生成する。１世代目の各個体を構成する要素の数値は開発言語の乱数生成によりランダムに生成され、進化計算部２５は、これらの個体に対し、選択・淘汰、さらには、突然変異及び交差等の遺伝的アルゴリズムによる進化演算を行うことで、最適な各荷重係数Ｋij，Ｋjkを設定する。
【００３９】
次に、上述のコンピュータ２１で実行される制御パラメータ（荷重係数）の学習処理について、図８に示す制御パラメータ学習処理のメインルーチンのフローチャートに従って説明する。このルーチンがスタートすると、コンピュータ２１は、先ず、ステップＳ２０１において、所定に選択した学習画像に対し、各個体の要素に基づいて構築される各ニューラルネットワークを用いた演算処理を行う。
【００４０】
この処理は、具体的には、学習画像処理部２３において、例えば図９に示すサブルーチンに従って実行される。すなわち、サブルーチンがスタートすると、学習画像処理部２３は、先ず、ステップＳ３０１において、学習画像記憶部２２に記憶された各学習画像の中から、所定に選択されたＭ個の学習画像を入力する。ここで、学習画像処理部２３に入力される学習画像の数Ｍは、初期値がＭ＝４に設定されている。この場合、学習画像処理部２３には、２面立体物を含む学習画像、３面立体物を含む学習画像、円錐を含む学習画像、及び球体を含む学習画像がそれぞれ入力される。また、制御パラメータ学習ルーチンの処理が進むと、学習画像処理部２３には、上述の４個の学習画像に加え、後述するステップＳ２０８の処理において選択された学習画像が追加して入力される。なお、学習画像記憶部２２から入力された各学習画像には、それぞれ異なる識別番号ｍ（ｍ＝１〜Ｍ（Ｍ≧４））が付される。
【００４１】
ステップＳ３０２において、学習画像処理部２３は、ステップＳ３０１で入力した各学習画像に対し、同一立体物を示す距離データをグループ化するグルーピング処理を行った後、ステップＳ３０３に進む。そして、学習画像処理部２３は、各学習画像上でグループ化された距離データ群に対し、当該距離データ群を包含する最小の矩形領域を設定し、当該領域を等分割する小領域毎に距離データの平均値を求め、これらを各要素ｘiとする入力値Ｘinを設定する。なお、これら、ステップＳ３０２，Ｓ３０３の処理は、上述の立体物認識装置１で実行されるステップＳ１０２，Ｓ１０３の処理と略同様である。
【００４２】
ステップＳ３０３からステップＳ３０４に進むと、学習画像処理部２３は、今回の処理が１世代目の個体を用いた処理であるか否か、すなわち、現在、進化計算部２５に１世代目の個体（初期個体）のみが設定されているか否かを調べる。
【００４３】
そして、ステップＳ３０４において、進化計算部２５に１世代目の固体のみが設定されており、今回の処理が１世代目の個体を用いた処理であると判定すると、学習画像処理部２３は、ステップＳ３０５に進み、進化計算部２５から１世代目の個体を読み込み、読み込んだ各個体の要素をそれぞれ荷重係数Ｋij，Ｋjkとする４００通りのニューラルネットワークを構築する。
【００４４】
一方、ステップＳ３０４において、進化計算部２５に２世代目以降の個体が設定されており、今回の処理が１世代目の個体を用いた処理ではないと判定すると、学習画像処理部２３は、ステップＳ３０６に進み、進化計算部２５から最新世代の個体を読み込み、読み込んだ各個体の要素をそれぞれ荷重係数Ｋij，Ｋjkとする４００通りのニューラルネットワークを構築する。
【００４５】
ここで、ステップＳ３０５或いはステップＳ３０６で構築される各ニューラルネットワークには、それぞれ異なる識別番号ｌ（ｌ＝１〜４００）が付される。そして、以降の処理において、学習画像処理部２３は、入力したＭ個の各学習画像中の立体物に対し、構築した４００通りのニューラルネットワークを用いた識別処理を行う。
【００４６】
ステップＳ３０５或いはステップＳ３０６からステップＳ３０７に進むと、学習画像処理部２３は、識別番号ｌ＝１のニューラルネットワークを選択し、続くステップＳ３０８において、識別願号ｍ＝１の学習画像を選択する。
【００４７】
続くステップＳ３０９〜ステップＳ３１１において、学習画像処理部２３は、上述の立体物認識装置１で実行されるステップＳ１０４〜ステップＳ１０６の処理と同様の処理によって、選択した学習画像上の距離データ群に対し、選択したニューラルネットワークを用いた処理を行った後、ステップＳ３１３に進む。
【００４８】
ステップＳ３１１からステップＳ３１２に進むと、学習画像処理部２３は、現在選択している学習画像の識別番号がｍ＝Ｍであるか否かを調べることにより、現在選択しているニューラルネットワークを用いた処理を入力した全ての学習画像に対して行ったか否かを調べる。
【００４９】
そして、ステップＳ３１２において、現在選択している学習画像の識別番号がｍ＜Ｍであると判定すると、学習画像処理部２３は、ステップＳ３１３に進み、識別願号ｍをインクリメント（ｍ←ｍ＋１）して次の学習画像を選択した後、ステップＳ３０９に戻る。
【００５０】
一方、ステップＳ３１２において、現在選択している学習画像の識別番号がｍ＝Ｍであると判定すると、学習画像処理部２３は、ステップＳ３１４に進む。ステップＳ３１４において、学習画像処理部２３は、現在選択しているニューラルネットワークの識別番号がｌ＝４００であるか否かを調べることにより、入力した全ての学習画像に対し、全てのニューラルネットワークを用いた処理を行ったか否かを調べる。
【００５１】
そして、ステップＳ３１４において、現在選択しているニューラルネットワークの識別番号がｌ＜４００であると判定すると、学習画像処理部２３は、ステップＳ３１５に進み、識別番号ｌをインクリメント（ｌ←ｌ＋１）して次のニューラルネットワークを選択した後、ステップＳ３０８に戻る。
【００５２】
一方、ステップＳ３１４において、現在選択しているニューラルネットワークの識別番号がｌ＝４００であると判定すると、学習画像処理部２３は、ステップＳ３０１で入力した全ての学習画像に対して、ステップＳ３０５或いはステップＳ３０６で構築した全てのニューラルネットワークを用いた処理を完了したと判定して、ルーチンを抜ける。
【００５３】
次に、メインルーチンのステップＳ２０２において、コンピュータ２１は、ステップＳ２０１での各学習画像の処理結果に基づいて、各ニューラルネットワークによる立体物の識別率を算出する。この処理は、ステップＳ２０１で構築されたニューラルネットワーク毎に行われるもので、具体的には、各ニューラルネットワークに対する評価は識別率評価部２４において、例えば、図１０に示すサブルーチンに従ってそれぞれ実行される。すなわち、サブルーチンがスタートすると、識別率評価部２４は、先ず、ステップＳ４０１において、識別番号がｍ＝１の学習画像を選択する。
【００５４】
そして、ステップＳ４０２において、識別率評価部２４は、選択した学習画像の識別番号ＩＤ（学習画像記憶部２２における識別番号）が２面立方体を示すものであるか否かを調べ、２面立方体を示すものであると判定した場合にはステップＳ４０５に進む。
【００５５】
ステップＳ４０２からステップＳ４０５に進むと、識別率評価部２４は、選択した学習画像に対応するニューラルネットワークからの出力パターンを調べ（すなわち、出力層の各ノードＮoutからの各要素ｙkを比較し）、当該出力パターンに基づいて学習画像中の立体物を識別する。そして、この識別結果が２面立体物である場合、識別率評価部２４は、学習画像中の立体物が正しく識別されたと判定する。
【００５６】
一方、ステップＳ４０２において、選択した学習画像の識別番号ＩＤが２面立方体を示すものではないと判定してステップＳ４０３に進むと、識別率評価部２４は、当該識別番号ＩＤが３面立方体を示すものであるか否かを調べる。
【００５７】
そして、ステップＳ４０３において、識別番号ＩＤが３面立方体を示すものであると判定した場合、識別率評価部２４は、ステップＳ４０６に進み、ニューラルネットワークの出力パターンに基づいて学習画像中の立体物を識別する。そして、この識別結果が３面立方体である場合、識別率評価部２４は、学習画像中の立体物が正しく識別されたと判定する。
【００５８】
一方、ステップＳ４０３において、選択した学習画像の識別番号ＩＤが３面立方体を示すものではないと判定してステップＳ４０４に進むと、識別率評価部２４は、当該識別番号ＩＤが円錐を示すものであるか否かを調べる。
【００５９】
そして、ステップＳ４０４において、識別番号ＩＤが円錐を示すものであると判定した場合、識別率評価部２４は、ステップＳ４０７に進み、ニューラルネットワークの出力パターンに基づいて学習画像中の立体物を識別する。そして、この識別結果が円錐である場合、識別率評価部２４は、学習画像中の立体物が正しく識別されたと判定する。
【００６０】
一方、ステップＳ０４において、選択した学習画像の識別番号ＩＤが円錐を示すものではないと判定した場合（すなわち、球体であると判定した場合）、識別率評価部２４は、ステップＳ４０８に進み、ニューラルネットワークの出力パターンに基づいて学習画像中の立体物を識別する、そして、この識別結果が球体である場合、識別率評価部２４は、学習画像中の立体物が正しく識別されたと判定する。
【００６１】
ステップＳ４０５、ステップＳ４０６、ステップＳ４０７、或いは、ステップＳ４０８からステップＳ４０９に進むと、識別率評価部２４は、上述のステップＳ４０５〜ステップＳ４０８の判定結果に基づいてニューラルネットワークによる識別率の累計を行う。
【００６２】
ステップＳ４０９からステップＳ４１０に進むと、識別率評価部２４は、現在選択している学習画像の識別番号がｍ＝Ｍであるか否かを調べる。そして、ステップＳ４１０において、現在選択している学習画像の識別番号がｍ＜Ｍであると判定すると、識別率評価部２４は、ステップ４１１に進み、識別番号ｍをインクリメント（ｍ←ｍ＋１）して次の学習画像を選択した後、ステップＳ４０２に戻る。
【００６３】
一方、ステップＳ４１０において、現在選択している学習画像の識別番号がｍ＝Ｍであると判定すると、識別率評価部２４は、ステップＳ４０９で直前に算出された識別率を最終的な識別率として登録した後、ルーチンを抜ける。
【００６４】
次に、メインルーチンのステップＳ２０３において、コンピュータ２１は、ステップＳ２０２でニューラルネットワーク毎に算出した各識別率の中に、識別率が１００％のニューラルネットワークが存在するか否かを調べる。そして、ステップＳ２０３において、識別率が１００％のニューラルネットワークが存在しないと判定すると、コンピュータ２１は、ステップＳ２０４に進み、遺伝的アルゴリズムを用いて各個体の進化計算を行った後、ステップＳ２０１に戻る。
【００６５】
このステップＳ２０４の進化計算は、具体的には、進化計算部２５において、例えば、図１１に示すサブルーチンに従って実行され、進化計算部２５では、ステップＳ２０１で各ニューラルネットワークの構築に用いた４００個体を基に、新たな４００個体を次世代の個体として設定する。
【００６６】
サブルーチンがスタートすると、進化計算部２５は、先ず、ステップＳ５０１において、各個体の評価値Ｆ（Ｘ）を算出する。具体的には、各個体の評価値Ｆ（Ｘ）は、対応するニューラルネットワークで計算した任意の学習画像の出力値Ｙoutに対する評価値に基づき、以下の（７）式〜（１１）式を用いて算出される。ここで、（７）式は、識別番号ＩＤ＝１〜４６の学習画像の出力値Ｙoutに対する評価値ｆ（Ｘ1）の算出式であり、（８）式は、識別番号ＩＤ＝４７〜１０６の学習画像の出力値Ｙoutに対する評価値の算出式である。また、（９）式は、識別番号ＩＤ＝４７〜１０６の学習画像の出力値Ｙoutに対する評価値ｆ（Ｘ3）の算出式であり、（１０）式は、識別番号ＩＤ＝１０７〜１６６の学習画像の出力値Ｙoutに対する評価値ｆ（Ｘ4）の算出式である。  
ｆ（Ｘ1）＝（ｙ1・ｙ1）・（１−ｙ2）・（１−ｙ3）・（１−ｙ4）  …（７）
ｆ（Ｘ2）＝（１−ｙ1）・（ｙ2・ｙ2）・（１−ｙ3）・（１−ｙ4）  …（８）
ｆ（Ｘ2）＝（１−ｙ1）・（１−ｙ2）・（ｙ3・ｙ3）・（１−ｙ4）  …（９）
ｆ（Ｘ2）＝（１−ｙ1）・（１−ｙ2）・（１−ｙ3）・（ｙ4・ｙ4）  …（１０）
Ｆ（Ｘ）＝ｆ（Ｘ1）・ｆ（Ｘ2）・ｆ（Ｘ3）・ｆ（Ｘ4）            …（１１）
ここで、各個体の評価値Ｆ（Ｘ）は、”０”〜”１”までの範囲の値をとり、”１”に近い値であるほど評価が高くなる。
【００６７】
ステップＳ５０１からステップＳ５０２に進むと、進化計算部２５は、算出した各個体の評価値Ｆ（Ｘ）に基づき、ニューラルネットワークで使用した４００個体を評価の高いものから順に並べ替え、続くステップＳ５０３において、最も評価の高い個体をエリートとして決定し、当該エリート個体を次世代に繰り越す。
【００６８】
続くステップＳ５０４において、進化計算部２５は、エリート個体の６０４要素中１要素を１％の揺らぎで変化させた個体を、例えば、４００個体の５％にあたる２０個体生成し、これらを次世代の個体として設定する。
【００６９】
続くステップＳ５０５において、進化計算部２５は、開発言語の乱数ジェネレータを用いて、エリート個体を除く３９９個体の中から任意の２個体を抽出し、抽出した２個体間で任意の要素を交換（１点交叉）することによって新たな２個体を生成する。この２個体間での交叉を用いた個体の生成は、新たな個体が３７９個体が生成されるまで繰り返し行われる。ここで、本形態において、２個体の要素間での交叉は、例えば、８０％の確率で行われる。すなわち、進化計算部２５は、開発言語の乱数ジェネレータを用いて”０”〜”１００”までの数値を生成し、生成した数値が”８０”以下である場合に、２個体間で任意の要素を１点交叉させる。なお、生成した数値が”８０”よりも大きい場合、抽出されたそのままの個体が新たな個体として設定される。
【００７０】
続くステップＳ５０６において、進化計算部２５は、ステップＳ５０５で生成した３７９個体の全ての要素に対して突然変異の判定を行い、突然変異を判定した要素を、当該要素に対して±１０．０の範囲で設定される新値に置き換えた後、ルーチンを抜ける。ここで、本形態において、各要素に対する突然変異の判定は、例えば、１０％の確立で行われる。すなわち、進化計算部２５は、開発言語の乱数ジェネレータを用いて”０”〜”１００”までの数値を各要素に対応付けて生成し、生成した数値が”１０”以下である場合に、対応する要素を突然変異させる。
【００７１】
一方、メインルーチンのステップＳ２０３において、識別率が１００％のニューラルネットワークが存在すると判定すると、コンピュータ２１は、ステップＳ２０５に進み、全学習画像に対し、上述のステップＳ２０２で識別率１００％を判定したニューラルネットワークを用いた処理を行い、続くステップＳ２０６において、ステップＳ２０５での全学習画像の処理結果に基づいて、上述のステップＳ２０２で識別率１００％を判定したニューラルネットワークによる立体物の識別率を算出した後、ステップＳ２０７に進む。
【００７２】
ここで、ステップＳ２０５の処理は、具体的には、上述のステップＳ２０１の処理と同様、学習画像処理部２３において、例えば図９に示すサブルーチンに従って実行される。但し、ここでは、学習画像記憶部２２に記憶された全ての学習画像が用いられるため、学習画像数Ｍは”２１１”となり、また、識別率１００％を判定したニューラルネットワークのみが用いられるため、ニューラルネットワークの数は”１”となる。
【００７３】
また、ステップＳ２０６の処理は、具体的には、上述のステップＳ２０２の処理と同様、識別率評価部２４において、例えば図１０に示すサブルーチンに従って実行される。但し、ここでも、全ての学習画像についての処理結果に基づいて識別率の算出が行われるため、学習画像数Ｍは”２１１”となる。
【００７４】
メインルーチンにおいて、ステップＳ２０７に進むと、コンピュータ２１は、上述のステップＳ２０６で算出した識別率が１００％であるか否かを調べ、当該識別率が１００％でない場合には、ステップＳ２０８に進む。そして、ステップＳ２０８において、コンピュータ２１は、上述のステップＳ２０１〜２０４の処理を、再度、新たな学習画像を追加して行うべく、追加すべき学習画像の選定を行った後、ステップＳ２０１に戻る。
【００７５】
ステップＳ２０８の処理は、具体的には、学習画像記憶部２２において、例えば図１２に示すサブルーチンに従って実行されるもので、学習画像記憶部２２は、上述のステップＳ２０５における各学習画像の出力値Ｙoutに基づき、記憶している２１１枚の学習画像の中から、新たに追加すべき学習画像を選定する。すなわち、サブルーチンがスタートすると、学習画像記憶部２２は、先ず、ステップＳ６０１において、記憶している学習画像の中から識別番号ＩＤ＝１の学習画像を選択する。
【００７６】
そして、ステップＳ６０２において、学習画像記憶部２２は、選択した学習画像の識別番号ＩＤが２面立方体を示すものであるか否かを調べ、２面立方体を示すものであると判定した場合にはステップＳ６０５に進む。ステップＳ６０２からステップＳ６０５に進むと、学習画像記憶部２２は、選択した学習画像に対応するステップＳ２０５での処理結果（出力値Ｙout（＝（ｙ1，ｙ2，ｙ3，ｙ4））を用いて、以下の（１２）式により評価値Ｇ（Ｘ1）を算出し、これを保持する。  
Ｇ（Ｘ1）＝（ｙ1＋（１−ｙ2）＋（１−ｙ3）＋（１−ｙ4））／４    …（１２）
一方、ステップＳ６０２において、選択した学習画像の識別番号ＩＤが２面立方体を示すものではないと判定してステップＳ６０３に進むと、学習画像記憶部２２は、当該識別番号ＩＤが３面立方体を示すものであるか否かを調べる。
【００７７】
そして、ステップＳ６０３において、識別番号ＩＤが３面立方体を示すものであると判定すると、学習画像記憶部２２は、ステップＳ６０６に進み、選択した学習画像に対応するステップＳ２０５での処理結果（出力値Ｙout（＝（ｙ1，ｙ2，ｙ3，ｙ4））を用いて、以下の（１３）式により評価値Ｇ（Ｘ2）を算出し、これを保持する。  
Ｇ（Ｘ2）＝（（１−ｙ1）＋ｙ2＋（１−ｙ3）＋（１−ｙ4））／４    …（１３）
一方、ステップＳ６０３において、選択した学習画像の識別番号ＩＤが３面立方体を示すものではないと判定してステップＳ６０４に進むと、学習画像記憶部２２は、当該識別番号ＩＤが円錐を示すものであるか否かを調べる。
【００７８】
そして、ステップＳ６０４において、識別番号ＩＤが円錐を示すものであると判定すると、学習画像記憶部２２は、ステップＳ６０７に進み、選択した学習画像に対応するステップＳ２０５での処理結果（出力値Ｙout（＝（ｙ1，ｙ2，ｙ3，ｙ4））を用いて、以下の（１４）式により評価値Ｇ（Ｘ3）を算出し、これを保持する。  
Ｇ（Ｘ3）＝（（１−ｙ1）＋（１−ｙ2）＋ｙ3＋（１−ｙ4））／４    …（１４）
一方、ステップＳ６０４において、識別番号ＩＤが円錐を示すものではないと判定すると（すなわち、球体であると判定すると）、学習画像記憶部２２は、ステップＳ６０８に進み、選択した学習画像に対応するステップＳ２０５での処理結果（出力値Ｙout（＝（ｙ1，ｙ2，ｙ3，ｙ4））を用いて、以下の（１５）式により評価値Ｇ（Ｘ4）を算出し、これを保持する。  
Ｇ（Ｘ4）＝（（１−ｙ1）＋（１−ｙ2）＋（１−ｙ3）＋ｙ4）／４    …（１５）
ステップＳ６０５、ステップＳ６０６、ステップＳ６０７、或いは、ステップＳ６０８からステップＳ６０９に進むと、学習画像記憶部２２は、現在選択している学習画像の識別番号がＩＤ＝２１１であるか否かを調べる。そして、ステップＳ６０９において、現在選択している学習画像の識別番号がＩＤ＜２１１であると判定すると、学習画像記憶部２２は、ステップＳ６１０に進み、識別番号ＩＤをインクリメント（ＩＤ←ＩＤ＋１）して次の学習画像を選択した後、ステップＳ６０２に戻る。
【００７９】
一方、ステップＳ６０９において、現在選択している学習画像の識別番号がＩＤ＝２１１であると判定してステップＳ６１１に進むと、学習画像記憶部２２は、学習画像の種類毎に評価値Ｇ（Ｘ）が最も低い学習画像を検索する。すなわち、ステップＳ６１１において、学習画像記憶部２２は、２面立方体の学習画像の中で評価値Ｇ（Ｘ1）が最も低い学習画像を検索し、当該学習画像を画像Ｇ１として設定するとともに、３面立方体の学習画像の中で評価値Ｇ（Ｘ2）が最も低い学習画像を検索し、当該学習画像を画像Ｇ２として設定する。また、円錐の学習画像の中で評価値Ｇ（Ｘ3）が最も低い学習画像を検索し、当該学習画像を画像Ｇ３として設定するとともに、球体の学習画像の中で評価値Ｇ（Ｘ4）が最も低い学習画像を検索し、当該学習画像を画像Ｇ４として設定する。
【００８０】
続くステップＳ６１２において、学習画像記憶部２２は、各画像Ｇ１〜Ｇ４に対応する４つの評価値Ｇ（Ｘ1）〜Ｇ（Ｘ4）の中で、Ｇ（Ｘ1）が最小値であるか否かを調べる。そして、ステップＳ６１２において、Ｇ（Ｘ1）が最小値であると判定すると、学習画像記憶部２２は、ステップＳ６１５に進み、画像Ｇ１として設定した学習画像を追加すべき学習画像として保持した後、ルーチンを抜ける。
【００８１】
一方、ステップＳ６１２でＧ（Ｘ1）が最小値ではないと判定してステップＳ６１３に進むと、学習画像記憶部２２は、各画像Ｇ１〜Ｇ４に対応する４つの評価値Ｇ（Ｘ1）〜Ｇ（Ｘ4）の中で、Ｇ（Ｘ2）が最小値であるか否かを調べる。
【００８２】
そして、ステップＳ６１３において、Ｇ（Ｘ2）が最小値であると判定すると、学習画像記憶部２２は、ステップＳ６１６に進み、画像Ｇ２として設定した学習画像を追加すべき学習画像として保持した後、ルーチンを抜ける。
【００８３】
一方、ステップＳ６１３でＧ（Ｘ2）が最小値ではないと判定してステップＳ６１４に進むと、学習画像記憶部２２は、各画像Ｇ１〜Ｇ４に対応する４つの評価値Ｇ（Ｘ1）〜Ｇ（Ｘ4）の中で、Ｇ（Ｘ3）が最小値であるか否かを調べる。
【００８４】
そして、ステップＳ６１４において、Ｇ（Ｘ3）が最小値であると判定すると、学習画像記憶部２２は、ステップＳ６１７に進み、画像Ｇ３として設定した学習画像を追加すべき学習画像として保持した後、ルーチンを抜ける。
【００８５】
一方、ステップＳ６１４において、Ｇ（Ｘ3）が最小値ではないと判定すると（すなわち、Ｇ（Ｘ4）が最小値であると判定すると）、学習画像記憶部２２は、ステップＳ６１８に進み、画像Ｇ４として設定した学習画像を追加すべき学習画像として保持した後、ルーチンを抜ける。
【００８６】
このような形態によれば、距離画像上で同一立体物を示す距離データ群に基づいて所定要素数の入力値Ｘinを設定し、少なくともこの入力値を入力層への入力とするニューラルネットワークを用いて予め設定した立体物の種類毎に異なるパターンの出力値Ｙoutを演算し、演算した出力パターンに基づいて立体物の種類を識別するので、膨大なデータベース等を必要とすることなく、簡単な処理で立体物の識別を精度よく行うことができる。
【００８７】
すなわち、立体物の距離データ群に基づいて設定した入力値Ｘinを入力層への入力とするニューラルネットワークの出力パターンに基づいて立体物の識別を行うので、膨大なデータベース等を必要とすることなく、簡単な処理で立体物の識別を行うことができる。
【００８８】
また、入力値Ｘinを構成する各要素ｘiとして、距離データ群を包含する最小の領域を設定分割数で分割する小領域毎に代表的な距離データを用いることにより、距離データ群の大きさ等に左右されることなく、一律な要素数の入力値Ｘinを設定することができる。この場合、特に、小領域毎の距離データの平均値を入力値Ｘinの各要素ｘiとして設定することにより、距離画像の生成時に画素間のミスマッチングや距離データの抜け等が発生した場合にも、立体物の識別精度を維持することができる。
【００８９】
また、ニューラルネットワークの各荷重係数Ｋij，Ｋjkを、予め用意した複数の距離画像を学習画像として用いた遺伝的アルゴリズムにより設定することにより、精度の良い立体物の識別を実現可能なニューラルネットワークを、短時間で容易に構築することができる。
【００９０】
ここで、上述の立体物認識装置１は、例えば、ステレオカメラで自車前方を撮像した画像対から距離画像を生成して車外の立体物認識を行い、認識した立体物に基づいて警報制御や車両挙動制御等の各種運転支援制御を行う車両用運転支援装置に好適に適用することが可能である。この場合、識別する立体物の種類として、例えば、乗用車、トラック、自転車、及び歩行者等を設定することが可能であり、これら立体物の種類に応じて異なる出力パターンを出力するニューラルネットワークを適切に設定することにより、有効な各種運転支援制御を実現することができる。
【００９１】
なお、上述の立体物認識装置１の適用は、上述の車両用運転支援装置に限定されるものではなく、例えば、各種作業ロボットや監視装置等の立体物認識装置にも適用が可能であることは勿論である。
【００９２】
また、上述の立体物認識装置１において、識別すべき立体物の種類や形状等の各種要件に応じて、ニューラルネットワークの構造やノード数等を適宜変更してもよく、また、入力値Ｘinや出力値Ｙoutの要素数等を適宜変更してもよいことは勿論である。
【図面の簡単な説明】
【００９３】
【図１】立体物認識装置の概略構成図
【図２】立体物認識ルーチンを示すフローチャート
【図３】立体物の種類を識別するニューラルネットワークの説明図
【図４】距離画像の一例を示す説明図
【図５】距離画像上で距離データ群を包含する領域の一例を示す説明図
【図６】制御パラメータ学習装置の概略構成図
【図７】各学習画像を示す説明図
【図８】制御パラメータ学習処理のメインルーチンを示すフローチャート
【図９】学習画像処理サブルーチンを示すフローチャート
【図１０】識別率評価サブルーチンを示すフローチャート
【図１１】制御パラメータの進化計算サブルーチンを示すフローチャート
【図１２】学習画像の追加サブルーチンを示すフローチャート
【符号の説明】
【００９４】
１  …  立体物認識装置
２  …  コンピュータ
５  …  ステレオカメラ（撮像手段）
６  …  距離画像生成部（距離画像生成手段）
１０  …  グルーピング処理部（グルーピング処理手段）
１１  …  入力値設定部（入力値設定手段）
１２  …  演算部（演算手段）
１３  …  識別部（識別手段）
２０  …  制御パラメータ学習装置
２１  …  コンピュータ
２２  …  学習画像記憶部
２３  …  学習画像処理部
２３ａ  …  グルーピング処理部
２３ｂ  …  入力値設定部
２３ｃ  …  演算部
２４  …  識別率評価部
２５  …  進化計算部
Ｋij，Ｋjk  …  荷重係数
Ｘin  …  入力値
ｘi  …  要素
Ｙout  …  出力値
代理人    弁理士      伊    藤      進
【図１】
2005346297.tif 000003
【図２】
2005346297.tif 000004
【図３】
2005346297.tif 000005
【図４】
2005346297.tif 000006
【図５】
2005346297.tif 000007
【図６】
2005346297.tif 000008
【図７】
2005346297.tif 000009
【図８】
2005346297.tif 000010
【図９】
2005346297.tif 000011
【図１０】
2005346297.tif 000012
【図１１】
2005346297.tif 000013
【図１２】
2005346297.tif 000014