(57)【特許請求の範囲】
【請求項１】
運動体において時間的に連続して撮像される入力画像から物体を検出する物体検出装置であって、
前記入力画像に設定された所定サイズの複数の局所領域のそれぞれにおいて、所定方向毎にオプティカルフローを求め、大きさが最大となるオプティカルフローの大きさおよびその方向を当該局所領域のフロー情報として算出する、ローカルフロー処理手段と、
前記入力画像の互いに異なる周縁部を占め、それぞれが複数の前記局所領域を含みかつ予め１つのフロー方向が指定されている複数の大領域において、それぞれに含まれる前記局所領域のうち当該大領域の指定フロー方向に一致するフロー情報を有する局所領域を選択し、該選択した局所領域のオプティカルフローの大きさの平均値をその大領域のフロー情報として算出する、グローバルフロー処理手段と、
前記大領域に関するフロー情報に基づいて前記運動体の運動を推測し、該推測された運動と異なるフローを有する局所領域を抽出する図地分離処理を行う、フロー特徴計算手段と、
図として抽出された局所領域に対して、予め取得した物体情報を利用した固有ベクトル法またはパターンマッチング法を用いて物体の有無を検出する、物体有無判定手段と、
を備える物体検出装置。
【請求項２】
前記ローカルフロー処理手段は、前記局所領域毎にガボールフィルタを適用して、各局所領域のフロー情報として所定の方向毎にオプティカルフローの大きさを得る、請求項１に記載の物体検出装置。
【請求項３】
前記フロー特徴計算手段は、第1の学習として大領域に関するフロー情報と前記運動体との関係を予めニューラルネットワークを用いて関連付けておき、前記大領域に関するフロー情報を第１の学習の結果に適用して前記運動体の運動を推測する、請求項１または２に記載の物体検出装置。
【請求項４】
前記ニューラルネットワークはパーセプトロンである、請求項３に記載の物体検出装置。
【請求項５】
前記フロー特徴計算手段において抽出された局所領域が再度前記グローバルフロー処理手段及びフロー特徴計算手段において処理される、請求項１乃至４のいずれかに記載の物体検出装置。
【請求項６】
前記物体有無判定手段は、前記運動体から外部環境を撮像させ、抽出された局所領域と物体の有無とを関連付けさせるため、予め行われる第２の学習に基づいて前記判定を行う、請求項１乃至５のいずれかに記載の物体検出装置。
【請求項７】
運動体において時間的に連続して撮像される入力画像から物体を検出する物体検出プログラムであって、
画像入力部を介して前記入力画像を受け取り、前記入力画像に設定された所定サイズの複数の局所領域のそれぞれにおいて、所定方向毎にオプティカルフローを求め、大きさが最大となるオプティカルフローの大きさおよびその方向を当該局所領域のフロー情報としてメモリに記憶する、ローカルフロー処理ステップと、
前記入力画像の互いに異なる周縁部を占め、それぞれが複数の前記局所領域を含みかつ予め１つのフロー方向が指定されている複数の大領域において、それぞれに含まれる前記局所領域のうち当該大領域の指定フロー方向に一致するフロー情報を有する局所領域を選択し、該選択した局所領域のオプティカルフローの大きさの平均値をその大領域のフロー情報としてメモリに記憶する、グローバルフロー処理ステップと、
前記大領域に関するフロー情報に基づいて前記運動体の運動を推測し、該推測された運動と異なるフローを有する局所領域を抽出する図地分離処理を行う、フロー特徴計算ステップと、
図として抽出された局所領域に対して、予め取得した物体情報を利用した固有ベクトル法またはパターンマッチング法を用いて物体の有無を検出する、物体有無判定ステップと、
をコンピュータに実行させるための物体検出プログラム。
【請求項８】
前記ローカルフロー処理ステップは、前記局所領域毎にガボールフィルタを適用し、各局所領域のフロー情報として所定の方向毎にオプティカルフローの大きさを得ることを含む、請求項７に記載の物体検出プログラム。
【請求項９】
前記フロー特徴計算ステップは、第1の学習として大領域に関するフロー情報と前記運動体との関係を予めニューラルネットワークを用いて関連付けておき、前記大領域に関するフロー情報を第１の学習の結果に適用して前記運動体の運動を推測することを含む、請求項７または８に記載の物体検出プログラム。
【請求項１０】
前記ニューラルネットワークはパーセプトロンである、請求項９に記載の物体検出プログラム。
【請求項１１】
前記フロー特徴計算ステップにおいて抽出された局所領域が再度前記グローバルフロー処理ステップ及びフロー特徴計算ステップにおいて処理される、請求項７乃至１０のいずれかに記載の物体検出プログラム。
【請求項１２】
前記物体有無判定ステップは、前記運動体から外部環境を撮像させ、抽出された局所領域と物体の有無とを関連付けさせるため、予め行われる第２の学習に基づいて前記判定を行うことを含む、請求項７乃至１１のいずれかに記載の物体検出プログラム。
【請求項１３】
運動体において時間的に連続して撮像される入力画像から物体を検出する物体検出方法であって、
前記入力画像に設定された所定サイズの複数の局所領域のそれぞれにおいて、所定方向毎にオプティカルフローを求め、大きさが最大となるオプティカルフローの大きさおよびその方向を当該局所領域のフロー情報として算出し、
前記入力画像の互いに異なる周縁部を占め、それぞれが複数の前記局所領域を含みかつ予め１つのフロー方向が指定されている複数の大領域において、それぞれに含まれる前記局所領域のうち当該大領域の指定フロー方向に一致するフロー情報を有する局所領域を選択し、該選択した局所領域のオプティカルフローの大きさの平均値をその大領域のフロー情報として算出し、
前記大領域に関するフロー情報に基づいて前記運動体の運動を推測し、
前記推測された運動と異なるフローを有する局所領域を抽出する図地分離処理を行い、
図として抽出された局所領域に対して、予め取得した物体情報を利用した固有ベクトル法またはパターンマッチング法を用いて物体の有無を検出する、
ことを含む物体検出方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、入力画像から画像内の物体を検出する物体検出装置に関し、より具体的には、自己運動する物体から撮像された画像内の静止物体と移動物体とを検出できる物体検出装置に関する。
【０００２】
【従来の技術】
従来、取得画像に基づいて画像から物体を検出する方法はいくつか知られているが、中でも取得された時間画像からオプティカルフローを求め、同一運動成分を持つ領域から物体に相当する部分を検出する方法がある。この方法は、画像内で移動する物体を容易に検出できるため、この方法が適用された物体検出装置が多く知られている（例えば、特開平７−２４９１２７号公報）。
【０００３】
しかし、画像を取得するための撮像装置そのものが運動する場合、例えば、自動車等に撮像装置が搭載されている場合、撮像装置自体の運動によってもオプティカルフローが生じるため、上記方法では移動物体を正確に検出するのが困難となる。
【０００４】
このような場合、求めたオプティカルフローから、撮像装置自体の運動による成分を除去できれば、画像内で移動する物体をより正確に検出できるようになる。例えば、特開平２０００−２４２７９７号公報には、グラディエント法によって画像内のオプティカルフローを検出する際に使用する拡散係数を可変にした運動検出方法が開示されている。この方法によると、拡散係数を従来のように一定ではなく所定の条件を付加して変化させることで、耐ノイズ性が向上し、かつ物体境界でのオプティカルフローの差分を強調することができるとしている。
【０００５】
【発明が解決しようとする課題】
しかしながら、上記方法では、検出が容易である移動物体のオプティカルフローは高精度に得ることができても、静止背景中の静止物体は背景とみなされているためオプティカルフローの補正がなされず、静止物体を高精度に検出することはできない。運動体から静止背景中の静止物体を観測すると、実はそれぞれの物体に応じたオプティカルフローを得ることができるのであるが、背景からのオプティカルフローとの分離が困難であり、これを高精度に分離する技術は実現されていない。
【０００６】
従って、本発明は、オプティカルフローを用いて、自己運動する撮像装置により取得される画像から、静止物体及び移動物体の両方を高精度に検出することのできる物体検出装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
本発明の物体検出装置は、運動体に搭載されたＣＣＤカメラ等の撮像手段により撮像された時間的に連続する２枚以上の入力画像に対し、ガボールフィルタを適用して入力画像中の局所領域のオプティカルフローを取得する。次いで、背景画像からのオプティカルフローを予測することによって、運動体の運動により生じるフロー情報をより厳密に排除する処理を行う。すなわち、入力画像から物体の存在しない領域（「地」の部分）を明確化し、この「地」の部分を排除することで結果として入力画像中で物体の存在しそうな領域（「図」の部分）を抽出し、この抽出した「図」の部分のフロー情報を用いて物体の有無を判定する。
【０００８】
より具体的には、本発明の物体検出装置は、前記入力画像における局所領域毎のフロー情報を得るローカルフロー処理手段と、前記各局所領域におけるフロー情報を利用して、前記入力画像中の所定数の大領域に関するフロー情報を得るグローバルフロー処理手段と、前記大領域に関するフロー情報に基づいて前記運動体の運動を推測し、推測された運動に応じた新たなフロー情報を得て、該新たなフロー情報と前記各局所領域におけるフロー情報とを比較して前記推測された運動と異なるフローを有する局所領域を抽出するフロー特徴計算手段と、該抽出された局所領域において物体の有無を判定する物体有無判定手段と、を備える。
【０００９】
この構成によると、入力画像から運動体の運動により生じるフロー情報を排除することができるので、入力画像中の物体を高精度に検出することができる。さらに、物体の有無の判定は、抽出された「図」の部分の画像のみに対して実行されるので、高速に計算を行うことができる。尚、「推測された運動に応じた新たなフロー情報」とは、具体的には詳細な説明に述べる「フィードバック局所フロー」のことを指す。
【００１０】
前記ローカルフロー処理手段は、局所領域のフロー情報を計算する役割を持つ。ここで局所領域とは入力画像を等分した局所領域のことを指し、各局所領域は互いにオーバーラップしていることが好ましい。各局所領域のサイズ及び、オーバーラップの程度は、計算に要する時間と物体検出の精度に応じて選択される。
【００１１】
局所領域のフロー情報とは、例えば各局所領域において支配的なフローの方向とそのフローの大きさとを含む。これらは以下の手順により求められる。すなわち、まず時間的に連続する入力画像中の前記局所領域毎にガボールフィルタを適用して、各局所領域のフロー情報として所定の方向毎にオプティカルフローの大きさを得る。所定の方向は、上下左右の４方向であることが好ましい。続いて各局所領域について各方向のオプティカルフローの大きさを比較し、大きさが最大のフローをその局所領域のフローの大きさとし、対応する方向をその局所領域のフローの方向とする。この処理によって、各局所領域において支配的なフロー方向、つまり各局所領域のオプティカルフローが運動体の運動によるものと画像中の物体の存在によるもののどちらの影響を強く受けているかを計算することができる。
【００１２】
計算した局所領域のフロー情報は、グローバルフロー処理部でも用いられる。グローバルフロー処理部は、前記大領域毎に、その大領域に含まれる全ての局所領域のフロー情報を取得し、取得したフロー情報に基づいて、前記大領域毎に予め設定されているフロー方向を有する局所領域を選択し、選択した局所領域のフローの大きさの平均値をその大領域のフロー情報とする。このグローバルフロー処理は、運動体の運動の種類に応じて大領域には特徴的なフロー情報が生じることから、後に行う運動体の運動の推定に用いるために行われる。
【００１３】
従って大領域は適当な数だけ用意し、また各大領域は、運動体の運動を最も良く反映するように、入力画像の互いに異なる周縁部を占める領域であるのが好ましい。周縁部を占める領域とは、例えば入力画像の各辺から２/５の領域である。より好適には入力画像の上部２/５の領域、下部２/５の領域、左部２/５の領域、右部２/５の領域であり、上部、下部の領域に付いてはそれぞれ上下方向のフロー、左部、右部の領域に付いてはそれぞれ左右方向のフローの局所領域のフローの大きさの平均値を取るのが好ましい。但し、大領域の全入力画像に対する大きさは、運動体の運動が反映されにくい入力画像中央付近の領域を除けば、２/５でなく他の値であっても良い。
【００１４】
フロー特徴計算手段は、前記大領域に関するフロー情報を第１の学習の結果に適用して前記運動体の運動を推測する。この第１の学習は  画面中に物体を余り含まない入力画像を用いて行われ、大領域に関するフロー情報と、センサ等により得られるかあるいは予め教師データとして与えられる運動体の運動との関係をニューラルネットワークを用いて関連付けることによって行われる。この第１の学習により、大領域に関するフロー情報から運動体の運動を推測することが可能になる。また、画面中に物体を余り含まない画像を用いて学習を行うことで、後述するように画像中の動いている物体だけでなく静止物体をも検出することできる。
【００１５】
尚、ニューラルネットワークの例としては、パーセプトロンが挙げられる。この場合、運動体の運動はパーセプトロンの出力セルの値として推測される。
【００１６】
さらに、フロー特徴計算手段は、推測した運動体の運動によって生じるフローと異なるフローを持つ局所領域を抽出する。そして、物体有無判定手段は、抽出された局所領域に対して第２の学習結果に基づいて物体が本当に存在するかを判定する。この第２の学習は、運動体から外部環境を撮像させて、そのとき抽出された局所領域のフロー情報と物体の有無とを関連付けさせることによって行われる。この学習により得られたデータセットに対し主成分分析を施して得られる固有ベクトルを用いて、物体有無判定が行われる。この方法は記憶容量等の面から好ましいが、パターンマッチング等の他の既知の方法で物体有無判定を行っても良い。
【００１７】
尚、ローカルフロー処理手段で得られるフロー情報から直接運動体の運動を推測し、推測した運動体の運動によって生じるフローと異なるフローを持つ局所領域を抽出することも可能である。このようにすれば、本発明による物体検出装置は、グローバルフロー処理手段を備えていなくても物体検出処理を実行することができる。
【００１８】
また、フロー特徴計算手段における局所領域の抽出は、２回繰り返されることが好ましい。すなわち、フロー特徴計算手段において抽出された局所領域は、再度前記グローバルフロー処理手段とフロー特徴計算手段により既に述べたと同様に処理され、再び運動体の運動によって生じるフローと異なるフローを持つ局所領域を抽出するようにすることもできる。この再度抽出された局所領域に対して物体有無判定処理を行うことによって、フロー特徴の抽出精度と物体領域の特徴抽出精度をより向上させることができる。
【００１９】
本発明は別の一面によると、上記構成をプログラムにより実現すると捉えることもできる。すなわち、本発明は、運動体において時間的に連続して撮像される入力画像から物体を検出する物体検出プログラムであって、前記入力画像における局所領域毎のフロー情報を得るローカルフロー処理ステップと、前記各局所領域におけるフロー情報を利用して、前記入力画像中の所定数の大領域に関するフロー情報を得るグローバルフロー処理ステップと、前記大領域に関するフロー情報に基づいて前記運動体の運動を推測し、推測された運動に応じた新たなフロー情報を得て、該新たなフロー情報と前記各局所領域におけるフロー情報とを比較して前記推測された運動と異なるフローを有する局所領域を抽出するフロー特徴計算ステップと、該抽出された局所領域において物体の有無を判定する物体有無判定ステップと、を含むプログラムを含む。
【００２０】
上記プログラムには、上記の他の特徴を実現するステップをさらに含めることが可能である。
【００２１】
【発明の実施の形態】
以下、図を参照して本発明による物体検出装置の実施形態を説明する。
【００２２】
図１は物体検出装置10の全体的な構成を示すブロック図である。物体検出装置10は、自律走行自動車等の運動体に搭載されたＣＣＤカメラ等の撮像装置12により所定時間間隔で撮像された運動体の移動方向の画像を常時受け取り、画像から運動体の移動に障害となる物体があるか否かを判定し、判定結果を出力することができる。出力は、運動体のモータや舵等に送られて、必要に応じて運動体は減速、停止や物体の回避等の動作を行う。また判定結果に基づき、運動体の移動に障害となる物体の有無を自律走行自動車の乗員に通知等を行うようにしてもよい。
【００２３】
物体検出装置10は、例えば、種々の演算を実行するＣＰＵ、演算結果を一時記憶するためのメモリ、学習結果等を記憶するＲＯＭ、データの入出力を行うインタフェース等を備えるマイクロコンピュータにより実現される。また、物体検出装置10は一般に撮像装置12と共に上記運動体に搭載され、物体検出処理を行うが、撮像装置12により撮像された画像を運動体に搭載された任意の無線通信手段を介して別の場所にあるコンピュータへと送信し、そのコンピュータにより物体検出処理を行っても良い。以上のことを踏まえて、図１では物体検出装置10を機能ブロック図で表してある。これら各機能ブロックの一部または全部は、ソフトウェア、ファームウェア、あるいはハードウェアの何れでも実現することができる。
【００２４】
撮像装置12により所定の時間間隔毎に撮像された画像は、画像入力部1を介してローカルフロー処理部2に送られる。ローカルフロー処理部2は、少なくとも２枚の時間的に連続する画像に対し、ガボールフィルタを適用して画像内の複数の局所領域におけるフロー情報（以下、「ローカルフロー」という）を計算する。これらローカルフローは、フロー特徴計算部4に送られると共に、更なる処理を受けるためにグローバルフロー処理部3にも送られる。
【００２５】
グローバルフロー処理部3は、ローカルフローを使用して、局所領域よりも大きい大領域のフロー情報（以下、「グローバルフロー」という）を計算する。
【００２６】
フロー特徴計算部4は、ローカルフロー、グローバルフロー、及び予め学習済みのデータ5に基づいて推定される運動体のフローに整合しないローカルフローを持つ局所領域を上記画像から抽出する。物体有無判定部7は、抽出された局所領域に実際に物体が存在するか否かを予め学習済みのデータ6に基づいて判定し、その判定結果は判定出力部8を介して出力される。
【００２７】
次に、各ブロックについてそれぞれの機能を詳細に説明する。
【００２８】
＜ローカルフロー処理部＞
図２は、ローカルフロー処理部2の物体検出実行時の処理を説明するフローチャートである。
【００２９】
まず、ローカルフロー処理部2は画像入力部1から連続する２枚の画像を受け取る（S2-1）。時刻ｔ、ｔ＋１における連続する２枚の画像をそれぞれImg(x,y,t)、Img(x,y,t+1)と表すことにする。ここで、座標(x,y)は、入力画像の左上を原点とした直交座標であり、Img(x,y,t)は時刻ｔにおける座標（x,y）の画素の輝度値であり、０から２５５の数値で表される。
【００３０】
また、画像のｘ方向、ｙ方向について、それぞれガボールフィルタの基底を次式により計算しておく。
【００３１】
【数１】
0003885999.tif 000002
【００３２】
ここで、Gs(x,y)はガボールフィルタの基底のsin成分であり、Gc(x,y)はガボールフィルタの基底のcos成分である。この二式とそれぞれ軸を９０度回転させたときの二式によって、上下左右４方向のオプティカルフローが検出される。
【００３３】
また上記式(1)中のｘ、ｙは画像の中心を原点とした座標で記述している（式(1)中のｘ、ｙ、ｒには、ｒ＝(ｘ２＋ｙ２)１/２の関係がある）。式(1)中の「ａ」は定数であり、「ａ」を中心にフィルター感度が高くなるように設定されている。また式(1)は、空間周波数の帯域幅が約１オクターブになるように設定されている。
【００３４】
ガボールフィルタは人間の受容野の特性に似せたフィルタである。運動体が運動すると、オプティカルフローは中心部分よりも周辺の方がフローの特徴がはっきりと現れる特性がある。そこで、後述するようにガボールフィルタを局所領域毎にｘ、ｙの正負方向（画像の上下左右の各方向）に対して適用することによって、オプティカルフローがその局所領域でどの方向に動いたのかを明確に捉えることができる。なお、画像の位置(x,y)に応じてガボールフィルタの特性（受容野サイズすなわちフィルターの大きさ(窓)）や空間周波数の最適化を行っても良い。
【００３５】
次に、ローカルフロー処理部2は画像内の１つの局所領域を選択する（S2-2）。局所領域とは画像内の局所的なフローを計算するために設定される所定のサイズの複数の領域であり、例えば、画像全体が３２０×２４０画素である場合、局所領域はそれぞれ４５×４５画素の大きさである。初回には、画像の左上隅に位置する局所領域が選ばれる。
【００３６】
１つの局所領域に対して以下に説明するような処理が終わると、次の局所領域に移動するが、このとき局所領域同士が少しずつオーバーラップするように右方にスライドして行く（図３(a)）。そして画像の最右端まで達すると、今度は下方向にもオーバーラップするようにスライドする。このように局所領域をオーバーラップさせるのは、局所領域の境界付近の画素値を複数回局所領域に含めることによって、より正確な物体検出が可能となるためである。しかし、オーバーラップ量を多くすると処理速度が低下するので、オーバーラップ量はこれらを検討して適切な値に設定される。
【００３７】
図２に戻り、時刻ｔ、ｔ＋１の画像について、ステップS2-2で選択された局所領域に含まれる各画素値 Img(x,y,t)、Img(x,y,t+1)と、上記式(1)のガボール基底との積和演算を行って、当該局所領域の全画素についての積和値ｘｔ、ｘｔ＋１、ｙｔ、ｙｔ＋１を計算する（S2-3）。これは次式で表される。
【００３８】
【数２】
0003885999.tif 000003
【００３９】
続いて、計算した積和値を用いて次式によりコントラスト(ｘ２＋ｙ２)を加重した位相の時間微分値ｄｗを計算する（S2-4）。
【００４０】
【数３】
0003885999.tif 000004
【００４１】
ステップS2-3、S2-4によって、局所フローの上下左右の４方向の成分が算出される。すなわち、選択された局所領域について４方向のｄｗが算出される。
【００４２】
続いてこの各方向のｄｗを比較して最大のものを選出する。そしてそのｄｗを当該局所領域のｄｗ値とし、その方向を当該局所領域のフロー方向とする（S2-5）。局所領域について得られたこれらｄｗ値とフロー方向は、図３(b)に示すように各局所領域の画像内の位置に対応する箇所のｄｗマップ、方向マップにそれぞれ代入される（S2-6）。
【００４３】
１つの局所領域について計算が終了すると、既に説明したように現在の局所領域とオーバーラップする次の局所領域に移り、以後全ての局所領域について上記の計算が行われる（S2-7）。
【００４４】
ローカルフロー処理の具体例を図４、５を参照して説明する。図４の(a)、(b)は、ｄｗマップのうち、上下二方向のｄｗマップを代表して表したものである。ｄｗマップ中の数字は、それぞれの箇所に対応する局所領域のｄｗ値であり、図では一部の局所領域についてのみその値が記載してある。そして、各局所領域について全方向のｄｗ値が比較され、最大のものがその局所領域のｄｗマップの値として選出され、また最大のｄｗ値を有する方向がその局所領域の方向マップのフロー方向として決定される。例えば、図４(a)、(b)の左上隅に位置する局所領域のｄｗ値を比較すると、それぞれ「３」、「１」であるから、この局所領域におけるｄｗマップの値は「３」となり（図５の(a)）、またフロー方向は「３」の値を持つ方向である「上」となるのである（図５の(b)）。実際の物体検出処理では、上下左右の４方向のｄｗ値について同様の比較がなされる。この作業を全ての局所領域に対して順次繰り返していくと、図５(a)、(b)のように画像フレーム全体についてｄｗマップと方向マップとを得ることができる。なお、ｄｗ値が同一であった場合は、前回と同じ値が付与される。
【００４５】
以上説明したローカルフロー処理によって、各局所領域のオプティカルフローが上下左右のうちどの方向の成分を強く持っているかが分かる。
【００４６】
＜グローバルフロー処理部＞
図６はグローバルフロー処理部3の物体検出実行時の処理を説明するフローチャートである。グローバルフロー処理部3は、ローカルフロー処理部2で求められたｄｗマップと方向マップとを受け取る（S3-1）。次に、所定の８つの大領域(a)〜(h)のうち１つの大領域を選択する（S3-2）。
【００４７】
大領域の例を図７に示す。図７において、(a)〜(h)の太線の長方形は画像全体のフレームであり、斜線のかかった領域が大領域である。大領域は、画像全体のフレームの端部から全長の２/５の長さになるように設定されている。さらに、大領域にはそれぞれ上下左右のうち何れか１つのフロー方向が指定されている（図７においては矢印で示されている）。
【００４８】
グローバルフロー処理部3は、ステップS3-2で選択された大領域内に含まれる局所領域のうち、そのフロー方向が図７の大領域(a)〜(h)について予め指定されている方向である局所領域を選ぶ（S3-3）。そして、選ばれた局所領域に対応するｄｗ値の平均値を算出する（S3-4）。より具体的に説明すると、大領域(a)が選択された場合、斜線の領域に含まれる局所領域について、方向マップを検索して上方向のフローを持つ局所領域を選び出す。そして、ｄｗマップを検索して、選び出した局所領域のｄｗ値を得て、それらの平均値を取るのである。例えば、大領域(a)については、図５(a)の上方向のｄｗマップのうち太線で囲まれた部分の値の平均値が算出される。
【００４９】
大領域(a)についてｄｗ値の平均値が算出されると、続いて(b)以下の大領域についても同様の計算が行われる（S3-5）。８つの大領域全てについてｄｗ値の平均値が算出されると、図８に示すようなグローバルフローマップを作成する（S3-6）。このマップには、大領域(a)についてフロー方向が「上」である局所領域のｄｗ値の平均値、大領域(b)についてフロー方向が「下」である局所領域のｄｗ値の平均値、というように上から順に格納される。
【００５０】
このようなグローバルフローマップを作成することで、運動体の運動に応じて出現する画像の特徴をマップで表現することができる。例えば、運動体が前進移動をしている場合は、図７中の大領域(a)、(d)、(e)、(g)のｄｗ値の平均値が大きな値となる。また、右折前進移動をしている場合は、大領域(a)、(d)、(f)、(g)に大きなｄｗ値が現れるし、左折前進移動をしている場合は大領域(a)、(d)、(e)、(h)に大きなｄｗ値が現れる。
【００５１】
本実施形態では８つの大領域を用いているが、より多種の大領域を用いることで運動体の運動に応じた画像をさらに詳細に表現することもできる。
【００５２】
図７の８つの大領域の大きさを全画像フレームの全長の「２/５」とした理由は、既に述べたようにオプティカルフローは画像の中央部分よりも周辺領域により特徴が強調されて出てくるので、この特徴を効果的に捉えるためである。大領域を画像全体フレームの周辺に限定適用することにより、計算負荷を大きく低減させたまま、運動体の運動に応じて現れる画像の特徴を適確に捉えることが可能となる。従って、画像フレームの中心を外れていれば、全画像フレームの全長の１/３、１/４といった他の大きさを大領域の範囲に設定しても良い。
【００５３】
＜フロー特徴計算部＞
フロー特徴計算部4では、運動体の運動により生じるフローと同じフロー方向を持つ局所領域（「地」）と、異なるフローをもつ局所領域（「図」）とに分離するいわゆる図地分離が行われる。
【００５４】
既に述べたように、運動体の運動に応じて出現する画像の特徴は８個のｄｗ値の平均値、すなわち８個の特徴量で表現することができる。そこで、８個の特徴量と運動体の運動を表すパラメータ（以下「自己運動パラメータ」と呼ぶ）との対応関係の教師データを用いてパーセプトロン等により学習を行えば、８個の特徴量から自己運動パラメータへの写像を容易に得ることができる。そして、この学習により、物体検出時にはセンサ等を用いることなく８個の特徴量から自己運動パラメータを推測することが可能となる。
【００５５】
自己運動パラメータの例としては、運動体に付設されたスピードメータから得られる運動体の速度や、ジャイロスコープにより検出される回転角などが挙げられる。採用するべき自己運動パラメータの種類は、物体検出装置10の処理する画像内で排除すべき自己運動の影響を考慮して、運動体の運動の特徴に応じて決定される。例えば回転運動している運動体において物体を検出したい場合は、運動体の回転方向等が自己運動パラメータとして採用される。また、速度が可変の運動体において物体を検出したい場合は、運動体の速度等を自己運動パラメータとして採用することが考えられる。また運動体の運動を示すコードを自己運動パラメータとして用いることもできる。本実施形態では、運動体の進行方向、すなわち前進移動、右折前進移動、左折前進移動の何れかのパラメータがその進行方向に応じてフロー特徴計算部4に与えられる。
【００５６】
図９は、フロー特徴計算部4で予め行われる８個の特徴量と自己運動パラメータの対応関係の学習を行うパーセプトロンの概念図である。左側のセル（入力層）Ｘｉはグローバルフロー処理部3の処理の結果算出される８個の特徴量にそれぞれ対応している。つまり一番上のセルは図７の大領域(a)におけるｄｗ値の平均値であり、２番目のセルは大領域(b)におけるｄｗ値の平均値であり、以下同様である。また右側のセル（出力層）Ｙｊは、各自己運動パラメータに相当する。本実施形態では、上から前進移動、右折前進移動、左折前進移動の各自己運動パラメータに対応して設けられる。入力層、出力層のセルは、それぞれ特徴量、自己運動パラメータの種類に応じて適当な数だけ準備される。
【００５７】
８個の特徴量と自己運動パラメータの対応関係の教師データは、例えば図１０のようなデータ構造で与えられる。自己運動パラメータは、セルＹｊと同数与えられる。フロー特徴計算部4は、以下の手順により学習を行う。
【００５８】
Ｘｉを入力層のｉ番目のセルの値、Ｙｊを出力層のｊ番目のセルの値とすると、Ｙｊは次式により計算される。
【００５９】
【数４】
0003885999.tif 000005
【００６０】
ここで、Ｗijは入力層のセル（入力セル）ｉと出力層のセル（出力セル）ｊの間の重みであり、適当な初期値が与えられている。
【００６１】
式(4)のＸｉに教師データの特徴量（８個）を代入してＹｊが求められると、教師データの自己運動パラメータとの比較が行われる。そして、Ｙｊが教師データの自己運動パラメータと一致したときはＴｉ＝１とし、異なるときはＴｉ＝０をとして、次式により出力セルｊの誤差Ｅｊが求められる。
【００６２】
【数５】
0003885999.tif 000006
【００６３】
続いて重みＷijが更新される。この重みの更新は、誤差逆伝播法により次式に従って行われる。
【００６４】
【数６】
0003885999.tif 000007
【００６５】
こうして、与えられた全ての教師データセットについて同様の処理が行われ、次々に重みＷijが更新されていく。そして学習が終わると、８個の特徴量（ｄｗ値の平均値）から重みＷijを用いて自己運動パラメータ、すなわち、運動体がどのような運動をしているかを推測できるようになる。
【００６６】
なお、この対応関係の学習には、他の任意の学習方法を用いても良い。
【００６７】
また、一般にオプティカルフローにおいては、局所領域のフローの抽出を行うと、静止物体がある領域には異種のフローが生じるという性質があるので、教師データは障害物（静止物体）を余り含まない画像に基づいて準備されるのが好ましい。このような教師データを用いて学習することで、自己運動パラメータと整合する局所領域のフロー方向と異なるフローとして、画像内を移動する物体のみならず静止物体をも検出することができるようになる。
【００６８】
図１１はフロー特徴計算部4の物体検出実行時の処理を説明するフローチャートである。
【００６９】
まず、フロー特徴計算部4は、ローカルフロー処理部2で得られたｄｗマップと方向マップ、グローバルフロー処理部3で得られた８個の特徴量（ｄｗ値の平均値）を受け取る（S4-1）。そして受け取った８個の特徴量と学習済みのパーセプトロンの重みＷｉから、式(4)により出力セルの出力値Ｙｊを算出し、その中から最大値を持つ出力セルを選択する（S4-2）。例えば、図９のパーセプトロンの３つの出力セルの出力値がそれぞれ（0.5, 0.25, 0.25）の場合、「0.5」を出力したセルを勝者として選択する。そして、選択された出力セルの値を「1」、他の出力セルの値を「0」と設定する（つまり、３つの出力セルの出力値を(1, 0, 0)と設定する）。
【００７０】
続いて、正規化された出力値と設定された出力値との誤差を計算する（S4-3）。上記の例では、誤差は(-0.5, 0.25, 0.25)となる。これを「誤差パラメータ」と呼ぶ。
【００７１】
この誤差パラメータに逆にパーセプトロンの重みＷｉをかけることによって、入力セルにそれぞれ対応する新たな８つのパラメータを得ることができる（S4-4）。これを「新８つのパラメータ値」と呼ぶ。この新８つのパラメータ値は、全て０以外の値となり、また負の値になることもある。
【００７２】
新８つのパラメータ値と、対応する図５(a)のｄｗマップの値との掛け算を行う（S4-5）。具体的に説明すると、新８つのパラメータ値が入力セルの上から順に（1,2,3,4,5,6,7,8）と算出された場合、つまり図７の大領域(a)〜(h)にそれぞれ対応して（1,2,3,4,5,6,7,8）と計算された場合、大領域(a)に含まれかつフロー方向が上の局所領域のｄｗ値をｄｗマップと方向マップの検索によって選び出し（図５(a)の太線Ａ内の値）、それぞれ新８つのパラメータ値である「１」と掛け合わされる。また、例えば大領域(g)に含まれかつフロー方向が左の局所領域のｄｗ値を、ｄｗマップと方向マップとを検索して選び出し（図５(a)の太線Ｂ内の値）、それぞれ新８つのパラメータ値である「７」と掛け合わされる。同様の計算を新８つのパラメータ値の全てについて行った結果の例を図１２の(a)に示す（これを「フィードバック局所フロー」と呼ぶ）。なお、図１２(a)中の数値は負の値となることもある。
【００７３】
そして、図１２(a)のマップの各数値について所定のしきい値（図１２の例ではしきい値「1.0」）と比較し、しきい値より小さい部分を「地」の部分（図１２(b)）、しきい値以上の部分を「図」の部分（図１２(c)）として分離する（S4-6）。
【００７４】
さらに、分離された「図」の部分の数値を「0」とした新たな局所フローのｄｗマップを得る（図１２(d)）。この新たな局所フローに対して、上記グローバルフロー処理及び上記ステップS4-1からS4-6の処理を再び実行する（S4-7）。
【００７５】
そして、２回目のステップS4-6において分離された「図」の部分の局所領域（図１０(c)）を含む矩形の領域（図１０(c)の太線で囲われた領域）を、画像の中で物体が存在する可能性のある領域（以下、「物体存在可能性領域」という）と推定する（S4-8）。この矩形の領域は予め定められた一定のサイズであり、２回目のステップS4-6で分離された局所領域が所定の矩形のサイズに対し大きかったりあるいは小さかったりする場合は、「図」の領域が最もよく含まれるように矩形領域を設定する。この矩形の領域、すなわち物体存在可能性領域は、入力画像の中で物体が含まれている可能性が高いと予想される領域であり、この領域に対して物体有無判定部7により物体の有無が判定される。
【００７６】
上記のように誤差パラメータを算出した後さらにフィードバック局所フローを計算するのは、真の自己運動パラメータとの誤差を強調することによって、しきい地による分離を実行し易くするためである。以上の処理によって、より精度良く物体存在可能性領域を切り出すことができるようになる。特に、S4-1〜S4-2の処理を繰り返すことで、物体存在可能性領域の抽出がより精度良く達成されることになる。
【００７７】
＜物体有無判定部＞
物体有無判定部7は、フロー特徴計算部4で分離された物体存在可能性領域に物体が本当に含まれているか否かを判定する。
【００７８】
物体有無判定部7は予め第２の学習を行って、物体有無の判定を行うための固有空間ベクトルを作成しておく。
【００７９】
図１３は、固有空間ベクトルを作成するための学習を示すフローチャートである。
【００８０】
まず、物体検出装置10に「物体有り」と判定させたい種々の物体を含む環境を物体検出装置10の撮像装置12により撮像させ（S6-1）、既に述べたようにローカルフロー処理部2、グローバルフロー処理部3、フロー特徴抽出部4により順に処理し、自己運動と整合しないフローが得られた局所領域を含む矩形の領域（図１２(c)の物体存在可能性領域）を得る（S6-2）。このとき撮像させる物体には、移動している物体と静止している物体の両方が含まれ、また物体が存在しない画像も撮像させる。さらに、運動体の移動時と静止時の両方の場合について画像の撮像を行う。
【００８１】
そして、得られた物体存在可能性領域を人間が見て、実際に物体が存在するか否かの教師信号を物体検出装置10に与える（S6-3）。この教師信号は、例えば物体が存在するときは「1.0」、存在しないときは「0.0」を示すような、物体の有無を表す信号である。
【００８２】
一連の画像の撮像と教師信号の付与を繰り返すことによって（S6-1〜S6-4）、画像（入力画像の全体フレームではなく、物体存在可能性領域の画像）と物体の有無を表す数値化表現とのセットを多数集めたデータセットが得られる（S6-5）。このデータセットは、例えば図１４のようなデータ構造を有している。図１４(a)において、１段目は、現実の画像フレーム内の物体存在可能性領域に含まれる画素の系列であり、所定順序で画素毎の０から２５５の画素濃度が格納される。２段目は、物体存在可能性領域内の各局所領域のフローの系列であり、例えば図１４(b)に示すように、各局所領域のフロー方向とｄｗ値がそれぞれ格納される。３段目には、物体存在可能性領域内の画像フレーム全体の中での位置情報が格納される。ここで、既に述べたように物体存在可能性領域の矩形サイズは一定なので、例えば矩形の左上隅の位置(x，y)を記憶すれば十分である。そして４段目には物体の有無を表す数値化表現（1.0または0.0）が格納される。例えば、１段目から順に２０個、２０個、２個、１個のデータがある場合は、合計４３次元のデータセットが得られることになる。
【００８３】
さらに、事前の学習時には、得られたデータセットについて、主成分分析により固有空間ベクトルPCA1、PCA2、…、PCAnを計算しておく（S6-6）。ここでｎは使用する固有ベクトルの数であり、データセットの特徴をどの程度正確に表現するかによって定められる累積寄与率に応じて決定される。
【００８４】
以上の学習を予め行っておくことによって、物体存在可能性領域内における物体の有無を正確に判定できるようになる。図１５は、この物体有無判定部7における有無判定処理を説明するフローチャートである。
【００８５】
まずフロー特徴計算部4から自己運動と整合しない局所領域（物体存在可能性領域）に関するデータを得る（S7-1）。このデータは、図１１を用いて説明した計算により得られた物体存在可能性領域について図１４と同じデータ構造を有する。そして、図１４(a)の４段目のデータ欄（物体有無の数値化表現）を「0.5」として、既に説明した主成分分析で計算された固有空間ベクトルにより張られた固有空間に、当該物体存在可能性領域に基づくデータを投射する（S7-2）。すなわち、物体存在可能性領域に関するデータに基づいた入力ベクトルに主成分ベクトルを第１次〜第ｎ次までかけていくことによって、投射した固有空間の座標位置が得られる。以上の説明を数式で表現すると、以下のようになる。
【００８６】
【数７】
x1 = X・PCA1
x2 = X・PCA2…   xn = X・PCAn    (7)
上式において、Xが入力ベクトルであり、(x1,x2,…,xn)が固有空間の座標位置である。そして、次式により入力ベクトルを再合成して、再合成された入力ベクトルX’を得る（S7-3）。
【００８７】
【数８】
X’ = x1・PCA1 + x2・PCA2 + … + xn・PCAn   (8)
得られた再合成後の入力ベクトルX’と0.5（物体有無の数値化表現）との大小を比較し（S7-4）、X’が0.5より大きいときは、物体存在可能性領域に「物体有り」と判定し（S7-5）、X’が0.5以下であるときは「物体なし」と判定する（S7-6）。
【００８８】
以上のような処理によって、物体有無判定部7は、フロー特徴計算部の出力する図の部分における物体の有無を正確に判定することができる。
【００８９】
＜物体検出処理の実施例＞
以上で各機能ブロックにおける処理の説明を終わり、続いて、物体検出装置10を運動体に搭載して実際に物体を検出させるときの手順について説明する。
【００９０】
物体検出を実行する前に、まず２種類の学習を行っておく。第１の学習は、上述したようにグローバルフロー処理部3で行われ、グローバルフロー（８個の特徴量）と自己運動パラメータとの対応関係を得る学習である。この学習により、物体検出装置10はグローバルフローから自己運動パラメータを計算することができるようになる。
【００９１】
第２の学習は、上述したように物体有無判定部7で行われ、運動体を運動させながら、認識させたい物体を撮像装置12に撮像させたときの局所領域のフローの系列と物体の有無の関係の学習である。この学習の結果得られる固有空間ベクトルを用いることにより、物体存在可能性領域での物体の有無を判定することができるようになる。
【００９２】
第１、第２の学習結果は、それぞれ学習済みデータ5、6（図１）として物体検出装置10内の図示しないＲＯＭ等に格納される。
【００９３】
図１６は物体検出処理のフローチャートである。まず取得した２枚以上の連続画像（S100）について、ローカルフロー処理部2により局所領域のローカルフローが計算される（S102）。ローカルフローを求めた後、グローバルフロー処理部により大領域のグローバルフローが計算される（S104）。
【００９４】
フロー特徴計算部4は、ローカルフローとグローバルフローから自己運動パラメータを推定し（S106）、自己運動パラメータに整合する領域と整合しない領域（物体存在可能性領域）とに分離する図地分離を行う（S108）。そして、物体存在可能性領域があるか否かを判定する（S110）。ステップS110の答がNO、つまり物体存在可能性領域がない場合は、入力画像内に物体が存在する可能性がないので、新たな連続画像について一連の処理が繰り返される。ステップS110の答がYESであり物体存在可能性領域がある場合は、画像全体から物体存在可能性領域を除いた領域について、さらに上述したのと同様の処理を繰り返す。つまり、ローカルフローの計算（S112）、グローバルフローの計算（S114）、自己運動パラメータの推定（S116）、図地分離（S118）が行われる。
【００９５】
ステップS108で分離した物体存在可能性領域について直ちに物体有無判定を行っても良いが、本実施形態ではステップS112〜S118のように画像全体から物体存在可能性領域を除いた領域について再度同じ処理を繰り返す。これは、１回の図地分離では、ノイズ等により正確な物体存在可能性領域が得られないことがあるので、繰り返し処理することによって図地分離の精度を高めるためである。
【００９６】
ステップS118で再度求められた物体存在可能性領域は、物体有無判定部7に送られ、当該領域に物体が本当にあるか否かが判定される（S120）。「物体有り」と判定された場合は、判定出力部8によりその結果が出力される（S122）。「物体なし」と判定された場合は、ステップS124に進む。ステップS124で物体検出処理を継続するか否かが判定され、継続する場合はステップS100に戻り、さらに連続画像について一連の処理が繰り返される。
【００９７】
ステップS122で出力された判定結果は運動体のモータや舵に送られ、または乗員に通知される。これによって運動体または運動体の乗員は、入力画像中の物体の有無に応じた適切な停止、回避等の動作をとることができる。
【００９８】
以上特定の実施形態について詳細に説明したが、本発明はこれらに限定されるものではない。例えば、物体有無判定部7での判定は上記のような固有ベクトルに基づく方法によらず、周知のパターンマッチングによる方法でも良い。
【００９９】
またグローバルフローとして、上記の方法によらず、例えば画像中央部から左右に寄った領域と中央部より下側に広がる領域の３点、あるいはこの３点に中央部より上側に広がる領域を加えた４点のローカルフローの特徴の組み合わせを用いることも可能である。
【０１００】
さらに、ローカルフロー処理部2で得られるフロー情報から運動体の運動を推測し、推測された運動により生ずると（第１の学習の結果）考えられるフローと異なるフロー部分を物体存在可能性領域として切り出すことが可能である。このようにすれば、物体検出装置10は、グローバルフロー処理部3を備えていなくても物体検出処理を実行することができる。
【０１０１】
以上説明してきたように、本発明は、自己運動に応じて生じるフローを有する部分を最初に明確化し、その他の残りの部分について物体有無の判定を行う点に特徴がある。
【０１０２】
【発明の効果】
本発明によれば、ローカルフロー処理とグローバルフロー処理を共に実行し、自己運動に整合しない領域を分離して、その領域のみに対して物体の有無の判定計算を実行するようにしたので、少ない負荷でかつ高速に物体の有無を検出することができる。
【０１０３】
また、グローバルフロー処理部におけるパーセプトロン学習において、静止物体を余り含まない画像に基づいて学習することで、自己運動パラメータと整合する局所領域のフロー方向と異なるフローとして、画像内を移動する物体のみならず静止物体をも検出することができるようになる。
【図面の簡単な説明】
【図１】本発明の物体検出装置の全体構成を表すブロック図である。
【図２】ローカルフロー処理部のフローチャートである。
【図３】局所領域の位置とマップの対応関係を示す概念図である。
【図４】各方向のｄｗマップを示す概念図である。
【図５】方向マップとｄｗマップを示す概念図である。
【図６】グローバルフロー処理部のフローチャートである。
【図７】大領域の一例を示す図である。
【図８】グローバルフローマップを示す図である。
【図９】フロー特徴計算部における学習を行うパーセプトロンの一例を示す図である。
【図１０】教師データのデータ構造を示す図である。
【図１１】フロー特徴計算部のフローチャートである。
【図１２】図地分離を説明するための概念図である。
【図１３】物体有無判定部における学習のフローチャートである。
【図１４】教師データのデータ構造を示す図である。
【図１５】物体有無判定部のフローチャートである。
【図１６】物体検出装置による物体検出処理の全体のフローチャートである。
【符号の説明】
1        画像入力部
2        ローカルフロー処理部
3        グローバルフロー処理部
4        フロー特徴計算部
5        学習済みデータ
6        学習済みデータ
7        物体有無判定部
8        判定出力部
10         物体検出装置
12        撮像装置
【図１】
0003885999.tif 000008
【図２】
0003885999.tif 000009
【図３】
0003885999.tif 000010
【図４】
0003885999.tif 000011
【図５】
0003885999.tif 000012
【図６】
0003885999.tif 000013
【図７】
0003885999.tif 000014
【図８】
0003885999.tif 000015
【図９】
0003885999.tif 000016
【図１０】
0003885999.tif 000017
【図１１】
0003885999.tif 000018
【図１２】
0003885999.tif 000019
【図１３】
0003885999.tif 000020
【図１４】
0003885999.tif 000021
【図１５】
0003885999.tif 000022
【図１６】
0003885999.tif 000023