以下、本発明によるオブジェクト分類装置について、実施の形態を用いて説明する。なお、以下の実施の形態において、同じ符号を付した構成要素及びステップは同一または相当するものであり、再度の説明を省略することがある。
(実施の形態1)
本発明の実施の形態1によるオブジェクト分類装置について、図面を参照しながら説明する。
図1は、本実施の形態によるオブジェクト分類装置1の構成を示すブロック図である。本実施の形態によるオブジェクト分類装置1は、撮影画像受付部11と、蓄積部12と、オブジェクト検出部13と、変化検出部14と、距離検出部15と、判断部16と、出力部17とを備える。
撮影画像受付部11は、移動体に搭載されたカメラで撮影された画像であり、移動体が移動している際の画像である撮影画像を2以上受け付ける。この撮影画像は、撮影時刻の異なるものである。また、この撮影画像は、有意な処理を行う際には、撮影位置の異なる撮影画像であることが好適である。また、移動体とは、移動するものであれば、どのようなものでもよい。人が乗るものでもよく、そうでなくてもよい。例えば、車、バイク、自転車、船、飛行機、電車等であってもよい。本実施の形態では、移動体が車である場合について主に説明する。カメラは、例えば、CCDカメラや、CMOSカメラ等である。CCDカメラは、比較的暗いところでも適切に撮影することができるため、屋内の駐車場でも撮影するような場合には、好適である。なお、CCDカメラの場合には、非常に明るいところで撮影した場合には、スミア(smear)と呼ばれる現象の発生することもあるため、偏光フィルターを用いることなどによって、そのスミアを除去するようにしてもよい。なお、適切に撮影画像を得ることができるのであれば、カメラは、どのようなものを用いてもよい。カメラは、静止画を撮影するものでもよく、動画を撮影するものでもよい。前者の場合であっても、少なくとも、時間間隔をあけて複数の画像を撮影するものとする。また、そのカメラの光軸は、移動体の移動平面内の前方向に近いことが好ましい。このように、撮影画像受付部11が受け付ける画像は、静止画の画像であってもよく、動画を構成する画像であってもよい。
撮影画像受付部11は、例えば、カメラ等の入力デバイスから入力された情報を受け付けてもよく、有線もしくは無線の通信回線を介して送信された情報を受信してもよく、所定の記録媒体(例えば、光ディスクや磁気ディスク、半導体メモリなど)から読み出された情報を受け付けてもよい。本実施の形態では、前述のように、カメラからの撮影画像を受け付けるものとする。なお、撮影画像受付部11は、受け付けを行うためのデバイス(例えば、モデムやネットワークカードなど)を含んでもよく、あるいは含まなくてもよい。また、撮影画像受付部11は、ハードウェアによって実現されてもよく、あるいは所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
蓄積部12は、撮影画像受付部11が受け付けた撮影画像を所定の記録媒体に蓄積する。この記録媒体は、例えば、半導体メモリや、光ディスク、磁気ディスク等であり、蓄積部12が有していてもよく、あるいは蓄積部12の外部に存在してもよい。また、この記録媒体は、撮影画像を一時的に記憶するものであってもよく、そうでなくてもよい。
オブジェクト検出部13は、蓄積部12が蓄積した、撮影の時間差を有する2以上の撮影画像にそれぞれ含まれるオブジェクトを検出する。オブジェクトとは、例えば、駐車車両、道路に記載された標識(例えば、横断歩道や停止線等)、車の影等である。オブジェクトを検出する方法としては、例えば、輪郭抽出等の方法を用いることができる。その方法は、すでに広く知られているため、その詳細な説明を省略する。オブジェクト検出部13は、撮影画像に2以上のオブジェクトが存在する場合に、その2以上の各オブジェクトを検出してもよい。
また、オブジェクト検出部13は、撮影画像の全体についてオブジェクトの検出処理を行ってもよく、あるいは、撮影画像の一部についてオブジェクトの検出処理を行ってもよい。後者の場合に、例えば、撮影画像の水平線よりも上方にのみ存在するオブジェクトについては、オブジェクト検出部13が検出しなくてもよい。なお、その場合であっても、水平線をまたいで上方と下方の両方に存在するオブジェクトについては、検出するようにしてもよい。なお、水平線とは、撮影画像の地平線付近に位置する線である。例えば、画像処理によって、地平線を検出して、その地平線の位置に水平線を引くようにしてもよく、あるいは、あらかじめ撮影画像の真ん中あたりに地平線の位置することがわかっている場合には、撮影画像の真ん中あたりに水平線を引くようにしてもよい。
また、オブジェクト検出部13は、例えば、撮影画像が動画を構成する画像である場合に、複数の撮影画像にわたってオブジェクトをトラッキングして検出してもよい。なお、オブジェクトトラッキングとは、動画を構成する各隣接する静止画間において、オブジェクトの特徴点のマッチング等を判断することにより、一連の動画において、同一のオブジェクトの移動や変形等をトラッキングする処理のことである。そのような場合には、オブジェクト検出部13は、例えば、検出したオブジェクトにオブジェクトを識別する情報を対応付けておくことにより、複数の撮影画像間での互いに対応するオブジェクトを容易に特定することができるようにしてもよい。
また、一般に撮影画像はパースペクティブを有する画像であるため、移動体に近いオブジェクトは大きく表示され、移動体から遠いオブジェクトは小さく表示されることになる。また一般に、オブジェクトの高さを判断したいのは、移動体に近いオブジェクトであると考えられる。したがって、オブジェクト検出部13は、所定の大きさ以上のオブジェクトのみを検出するようにしてもよい。このようにすることで、オブジェクト分類装置1の処理負荷を軽減することもできうる。なお、図示しない記録媒体において、所定の大きさを示す情報が記憶されており、オブジェクト検出部13は、その情報を読み出し、撮影画像に含まれるオブジェクトの大きさを比較することによって、所定の大きさ以上のオブジェクトのみを検出してもよい。
また、オブジェクト検出部13は、検出したオブジェクトを示す情報を、図示しない記録媒体に蓄積してもよい。検出したオブジェクトを示す情報とは、例えば、オブジェクトの位置や輪郭を示す情報であってもよい。その検出したオブジェクトを示す情報は、例えば、撮影画像を識別する情報(例えば、撮影画像のIDや、タイムコード等)に対応付けられて蓄積されてもよい。
変化検出部14は、2以上の撮影画像間における、オブジェクト検出部13が検出したオブジェクトの変化を検出する。オブジェクトの変化とは、例えば、オブジェクトの位置の変化であってもよく、形状や色、大きさの変化であってもよく、それらの結合であってもよい。変化検出部14は、例えば、2以上の撮影画像において、互いに対応するオブジェクトを検出し、その互いに対応するオブジェクトの変化を検出してもよい。変化検出部14は、例えば、オブジェクトの形状を比較することによって、互いに対応するオブジェクトを検出してもよく、撮影画像が動画を構成する画像である場合には、あるオブジェクトを順次、追うことによって、互いに対応するオブジェクトを検出してもよい。また、前述のように、オブジェクト検出部13によって複数の撮影画像間での互いに対応するオブジェクトに対して同一の識別情報が設定されている場合には、その識別情報を用いて、互いに対応するオブジェクトを検出してもよい。変化の検出は、例えば、オブジェクトの変化を示すベクトル等の特定であってもよく、オブジェクトの変化の差分を示す情報の生成であってもよい。変化検出部14は、例えば、その検出したオブジェクトの変化を示す情報を、図示しない記録媒体に蓄積してもよい。そのオブジェクトの変化を示す情報は、例えば、撮影画像を識別する情報に対応付けられて蓄積されてもよい。
距離検出部15は、変化検出部14の検出した変化が、他のオブジェクトの変化よりも大きいかどうかに応じて、他のオブジェクトよりも移動体に近いオブジェクトを検出する。一般に、移動体が移動する場合に、近くのオブジェクトの位置等の変化は大きいが、遠くのオブジェクトの位置等の変化は小さい。距離検出部15は、例えば、変化検出部14の検出した複数の変化を比較することによって、その変化が他のオブジェクトよりも大きいオブジェクトを、移動体に近いオブジェクトとして検出してもよく、あらかじめ設定されているしきい値と変化検出部14の検出した変化を比較し、そのしきい値よりも大きな変化に対応するオブジェクトを移動体に近いオブジェクトとして検出してもよい。なお、そのしきい値は、図示しない記録媒体で記憶されており、距離検出部15は、その記録媒体からしきい値を読み出して用いてもよい。また、そのしきい値は、移動体のスピード等に応じて変化するように設定しており、距離検出部15は、例えば、後述する移動情報受付部21が受け付けた移動情報の示す移動体のスピード等を用いて、移動体に近いオブジェクトの検出処理を行ってもよい。また、距離検出部15が検出する、移動体に近いオブジェクトの個数は限定されない。距離検出部15は、例えば、移動体に最も近いオブジェクト1個のみを検出してもよく、あるいは、移動体に近い複数個のオブジェクトを検出してもよい。
距離検出部15は、例えば、その検出した移動体に近いオブジェクトを識別する情報を、図示しない記録媒体に蓄積してもよい。そのオブジェクトを識別する情報は、例えば、撮影画像を識別する情報に対応付けられて蓄積されてもよい。あるいは、距離検出部15は、例えば、オブジェクト検出部13等が蓄積したオブジェクトを識別する情報に対応付けて、そのオブジェクトが移動体に近いことを示すフラグ等を設定してもよい。
判断部16は、変化検出部14の検出した変化が、所定の高さよりも高いオブジェクトの変化パターンである第1の変化パターンに対応するのか、あるいは、所定の高さよりも低いオブジェクトの変化パターンである第2の変化パターンに対応するのかを判断する。第1及び第2の変化パターンを示す情報は、あらかじめ所定の記録媒体において記憶されており、判断部16は、その第1及び第2の変化パターンを読み出すことによって、この判断を行ってもよい。第1及び第2の変化パターンを示す情報は、例えば、データとしてプログラムとは別途、記憶されていてもよく、あるいは、プログラムの一部として記憶されていてもよい。その所定の高さは、例えば、カメラの光軸の高さや、カメラによって撮影された撮影画像の水平線の高さ等であってもよい。その所定の高さは、一定の高さに定められていてもよく、撮影状況によって変化するものであってもよい。例えば、上り坂で撮影した場合と、下り坂で撮影した場合とにおいて、その所定の高さは変化してもよい。ここで、第1の変化パターンとは、移動体がオブジェクトに近づいた場合に、そのオブジェクトが上方及び下方の両方に広がるパターンであってもよい。また、第2の変化パターンとは、移動体がオブジェクトに近づいた場合に、そのオブジェクトが下方に移動するパターンであってもよい。例えば、カメラが移動体の移動向きの撮影画像を撮影している際には、「移動体がオブジェクトに近づいた場合」とは、複数の撮影画像において、より時間の経過した撮影画像となるにつれて、ということである。これらのパターンの詳細については後述する。
判断部16は、その判断結果を示す情報を図示しない記録媒体に蓄積してもよい。その際に、オブジェクトを識別する情報に対応付けて蓄積してもよい。判断部16は、例えば、オブジェクト検出部13等が蓄積したオブジェクトを識別する情報に対応付けて、判断結果を示す情報を蓄積してもよい。
出力部17は、判断部16による判断結果を用いて、オブジェクトに関する情報であるオブジェクト情報を出力する。オブジェクト情報は、例えば、移動体にとって障害となりうるオブジェクトである、高さの高いオブジェクトの位置を示す情報であってもよく、移動体にとって障害とならないオブジェクトである、高さの低い、あるいは、高さのないオブジェクト(例えば、道路に記載された標識)の位置を示す情報であってもよい。したがって、オブジェクト情報は、例えば、オブジェクトの高さに関する情報であってもよく、そうでなくてもよい。オブジェクト情報は、例えば、オブジェクトに関する情報を示す画像情報であってもよく、オブジェクトに関する情報を示すテキスト情報であってもよく、オブジェクトに関する情報を示す音声情報であってもよく、高さの高いオブジェクトを識別する情報であってもよく、その他の形式の情報であってもよい。オブジェクト情報が画像情報等である場合には、例えば、出力部17がそのオブジェクト情報を構成して出力してもよい。オブジェクト情報が画像情報である場合には、例えば、高さの高いオブジェクトの位置等が図示されてもよい。また、その画像情報には、撮影画像が含まれていてもよい。例えば、撮影情報において高さの高いオブジェクトをハイライト表示したものがオブジェクト情報であってもよい。また、オブジェクト情報がテキスト情報である場合には、例えば、高さの高いオブジェクトの位置等が「右前方に障害物があります」といったテキストで示されてもよい。また、オブジェクト情報が音声情報である場合には、例えば、高さの高いオブジェクトの位置等が「右前方に障害物があります」といった音声情報で示されてもよい。また、オブジェクト情報が音声情報である場合には、例えば、高さの高いオブジェクトが移動体の近くに存在する場合に、警告音(例えば、ブザー音等)が音声情報で示されてもよい。
なお、出力部17は、距離検出部15が検出した、移動体に近いオブジェクトに関する情報であるオブジェクト情報を出力してもよい。オブジェクト分類装置1の出力するオブジェクト情報を用いるユーザは、一般に、移動体に近いオブジェクトに関する情報を知りたいと考えられるところ、移動体から遠いオブジェクトに関する情報を出力しなくてもよい場合もあると考えられるからである。なお、この場合に、オブジェクト情報が、結果として移動体に近いオブジェクトに関する情報となるのであれば、その過程は問わない。例えば、移動体に近いオブジェクトについてのみ、判断部16による判断が行われ、その移動体に近いオブジェクトに関するオブジェクト情報が出力されてもよく、あるいは、判断部16はすべてのオブジェクトについての判断を行い、出力部17は、その判断の行われたオブジェクトのうち、移動体に近いオブジェクトについてのみ、オブジェクト情報を構成して出力してもよい。
ここで、この出力は、例えば、表示デバイス(例えば、CRTや液晶ディスプレイなど)への表示でもよく、所定の機器への通信回線を介した送信でもよく、プリンタによる印刷でもよく、スピーカによる音声出力でもよく、記録媒体への蓄積でもよく、他の構成要素への引き渡しでもよい。本実施の形態では、この出力が表示デバイス(図1中のディルプレイ)への表示である場合について説明する。なお、出力部17は、出力を行うデバイス(例えば、表示デバイスやプリンタなど)を含んでもよく、あるいは含まなくてもよい。また、出力部17は、ハードウェアによって実現されてもよく、あるいは、それらのデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
次に、本実施の形態によるオブジェクト分類装置の動作について、図2のフローチャートを用いて説明する。
(ステップS101)撮影画像受付部11は、撮影画像を受け付けたかどうか判断する。そして、受け付けた場合には、ステップS102に進み、そうでない場合には、ステップS103に進む。
(ステップS102)蓄積部12は、撮影画像受付部11が受け付けた撮影画像を所定の記録媒体に蓄積する。そして、ステップS101に戻る。
(ステップS103)オブジェクト検出部13は、オブジェクトを分類する処理を開始するかどうか判断する。そして、開始する場合には、ステップS104に進み、そうでない場合には、ステップS101に戻る。オブジェクト検出部13は、例えば、新たな撮影画像が受け付けられた場合に、オブジェクトの分類を開始すると判断してもよく、所定の時間間隔(例えば、5秒ごとなど)でオブジェクトの分類を開始すると判断してもよく、あるいは、その他のタイミングでオブジェクトの分類を開始すると判断してもよい。なお、本実施の形態では、オブジェクト検出部13がステップS103の判断を行う場合について説明するが、他の構成要素がこの判断を行ってもよい。
(ステップS104)オブジェクト検出部13は、撮影の時間差を有する2以上の撮影画像にそれぞれ含まれるオブジェクトを検出する。なお、オブジェクト検出部13が、例えば、2個の撮影画像にそれぞれ含まれるオブジェクトを検出する場合に、その2個の撮影画像のうち、一方の撮影画像については、前回の処理においてオブジェクトの検出が行われているのであれば、ステップS104では、1個の撮影画像についてのみ、オブジェクトの検出を行ってもよい。また、撮影画像に2以上のオブジェクトが含まれる場合には、オブジェクト検出部13は、その各々のオブジェクトを検出してもよい。
(ステップS105)変化検出部14は、オブジェクトの変化を検出する。この処理の詳細については、図3のフローチャートを用いて後述する。
(ステップS106)距離検出部15は、移動体に近いオブジェクトを検出する。この処理の詳細については、図4のフローチャートを用いて後述する。
(ステップS107)判断部16は、変化検出部14の検出した変化が、第1及び第2の変化パターンのいずれに対応するのかについて判断する。この処理の詳細については、図5のフローチャートを用いて後述する。
(ステップS108)出力部17は、判断部16による判断結果を用いて、オブジェクトに関する情報であるオブジェクト情報を出力する。そして、ステップS101に戻る。
なお、図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、図2のフローチャートにおけるオブジェクトの変化を検出する処理(ステップS105)の詳細について、図3のフローチャートを用いて説明する。なお、この図3のフローチャートでは、撮影の時間差を有する2個の撮影画像間のオブジェクトの変化を検出するものとする。その2個の撮影画像のうち、時間的に前の撮影画像を第1の撮影画像と呼び、時間的に後の撮影画像を第2の撮影画像と呼ぶものとする。
(ステップS201)変化検出部14は、カウンタiを1に設定する。
(ステップS202)変化検出部14は、第2の撮影画像にi番目のオブジェクトが存在するかどうか判断する。そして、存在する場合、すなわち、オブジェクト検出部13が第2の撮影画像においてi番目のオブジェクトを検出していた場合には、ステップS203に進み、そうでない場合には、図2のフローチャートに戻る。
(ステップS203)変化検出部14は、第2の撮影画像のi番目のオブジェクトに対応する第1の撮影画像のオブジェクトが存在するかどうか判断する。そして、存在する場合には、ステップS204に進み、そうでない場合には、ステップS206に進む。変化検出部14は、第2の撮影画像のi番目のオブジェクトに対応する第1の撮影画像のオブジェクトが存在するかどうかを、例えば、第2の撮影画像におけるi番目のオブジェクトと、第1の撮影画像において検出された各オブジェクトとを比較し、両者が一致するかどうかによって判断してもよい。一致する場合には、対応するオブジェクトが存在することになる。なお、互いに比較される両オブジェクトの類似度が所定のしきい値以上である場合に、両オブジェクトが一致すると判断してもよい。また、例えば、第2の撮影画像のi番目のオブジェクトが、第1の撮影画像には含まれておらず、第1の撮影画像の撮影後にカメラの画角に入ってきた場合には、このステップS203において、対応するオブジェクトが存在しないと判断されることになる。
(ステップS204)変化検出部14は、i番目のオブジェクトに関する変化を検出する。変化検出部14が検出する変化は、例えば、オブジェクトの位置の変化を示すベクトルであってもよく、オブジェクトの大きさの変化を示す情報であってもよく、単に、第1の撮影画像におけるオブジェクトと、そのオブジェクトに対応する第2の撮影画像におけるi番目のオブジェクトとを示す画像情報であってもよく、オブジェクトの変化を示すものであれば、限定されない。
(ステップS205)変化検出部14は、検出した変化を示す情報を図示しない記録媒体に蓄積し、一時的に記憶しておく。なお、変化検出部14は、オブジェクトを識別する情報に対応付けて、検出した変化を示す情報を蓄積してもよい。
(ステップS206)変化検出部14は、カウンタiを1だけインクリメントする。そして、ステップS202に戻る。
次に、図2のフローチャートにおける、移動体に近いオブジェクトを検出する処理(ステップS106)の詳細について、図4のフローチャートを用いて説明する。
(ステップS301)距離検出部15は、変化検出部14が検出し、一時的に記憶している変化を示す情報を用いて、最大の変化を特定する。例えば、変化がベクトルで示される場合には、そのベクトルの大きさが最も大きい変化を特定してもよい。また、その変化が大きさの変化を示す情報である場合には、大きさの変化の割合が最も大きい変化を特定してもよい。
(ステップS302)距離検出部15は、カウンタiを1に設定する。
(ステップS303)距離検出部15は、変化検出部14が検出した変化のうち、i番目の変化が、ステップS301で特定した最大の変化の半分以上の変化であるかどうか判断する。そして、半分以上の変化である場合には、ステップS304に進み、そうでない場合には、ステップS305に進む。
(ステップS304)距離検出部15は、i番目の変化に対応するオブジェクトを移動体に近いオブジェクトと検出する。なお、距離検出部15は、移動体に近いことを検出したオブジェクトを識別する情報を、図示しない記録媒体において一時的に記憶してもよい。
(ステップS305)距離検出部15は、カウンタiを1だけインクリメントする。
(ステップS306)距離検出部15は、変化検出部14が検出したi番目の変化が存在するかどうか判断する。そして、存在する場合には、ステップS303に戻り、そうでない場合には、図2のフローチャートに戻る。
なお、図4のフローチャートでは、最大の変化の半分以上の変化をするオブジェクトを移動体に近いオブジェクトとして検出する場合について説明したが、前述のように、例えば、所定のしきい値よりも大きい変化をするオブジェクトを移動体に近いオブジェクトとして検出してもよい。
図5は、図2のフローチャートにおける変化のパターンを検出する処理(ステップS107)の詳細を示すフローチャートである。なお、図5のフローチャートでは、判断部16は、距離検出部15が検出した移動体に近いオブジェクトの変化についてのみ、判断の処理を行うものとする。
(ステップS401)判断部16は、カウンタiを1に設定する。
(ステップS402)判断部16は、変化検出部14が検出した変化であって、距離検出部15によって、移動体に近いことが検出されたオブジェクトの変化のうち、i番目のものが、第1の変化パターンに対応するかどうか判断する。そして、第1の変化パターンに対応する場合には、ステップS403に進み、そうでない場合には、ステップS404に進む。
(ステップS403)判断部16は、i番目の変化で変化するオブジェクトが高さの高いオブジェクトであると判断する。判断部16は、例えば、そのオブジェクトを識別する情報に対応付けて、高さが高いことを示す情報を図示しない記録媒体において設定してもよい。
(ステップS404)判断部16は、変化検出部14が検出した変化であって、距離検出部15によって、移動体に近いことが検出されたオブジェクトの変化のうち、i番目のものが、第2の変化パターンに対応するかどうか判断する。そして、第2の変化パターンに対応する場合には、ステップS405に進み、そうでない場合には、ステップS406に進む。
なお、ステップS402,S404において、判断部16は、第1の変化パターンや、第2の変化パターンを、図示しない記録媒体から読み出して、判断を行ってもよい。また、その判断は、例えば、パターンマッチングの技術としてすでに広く知られており、その詳細な説明を省略する。
(ステップS405)判断部16は、i番目の変化で変化するオブジェクトが高さの低いオブジェクトであると判断する。判断部16は、例えば、そのオブジェクトを識別する情報に対応付けて、高さが低いことを示す情報を図示しない記録媒体において設定してもよい。
(ステップS406)判断部16は、カウンタiを1だけインクリメントする。
(ステップS407)判断部16は、変化検出部14が検出した変化であって、距離検出部15によって、移動体に近いことが検出されたオブジェクトの変化に、i番目のものが存在するかどうか判断する。そして、存在する場合には、ステップS402に戻り、そうでない場合には、図2のフローチャートに戻る。
なお、図5のフローチャートでは、判断部16が、距離検出部15が検出した移動体に近いオブジェクトの変化についてのみ、判断の処理を行う場合について説明したが、これは一例であって、すべてのオブジェクトの変化について、判断の処理を行ってもよい。
また、図5のフローチャートでは、第1の変化パターンに対応するかどうかの判断と、第2の変化パターンに対応するかどうかの判断との両方を行う場合について説明したが、一方の判断のみを行ってもよい。例えば、第1の変化パターンに対応するかどうかを判断し、第1の変化パターンに対応しなかった場合には、第2の変化パターンに対応すると決定してもよい。
次に、第1及び第2の変化パターンについて、図6,図7を用いて説明する。図6,図7において、車等の移動体にカメラを搭載し、前方を撮影した場合における、移動体が移動する前に撮影画像に含まれていたオブジェクト(移動前のオブジェクト)と、移動体がそのオブジェクトに向かって移動した後の撮影画像に含まれていたオブジェクト(移動後のオブジェクト)とが示されている。
カメラの光軸は、ほぼ水平であるとする。すると、カメラの光軸の高さよりも高さの高いオブジェクト(例えば、車や人、樹木、道路壁等)は、図6で示されるように、移動体が移動するにしたがって、撮影画像の全体に広がるように拡大していくことになる。すなわち、移動体がオブジェクトに近づいた場合に、そのオブジェクトが上方及び下方の両方に広がることになる。これが第1の変化パターンである。一方、カメラの光軸の高さよりも高さの低いオブジェクト(例えば、道路上に書かれた標識や、マンホール等の蓋、道路に落ちている新聞等のゴミ等)は、図7で示されるように、移動体が移動するにしたがって、撮影画像の端の方に移動していくことになる。すなわち、移動体がオブジェクトに近づいた場合に、そのオブジェクトが下方に移動することになる。これが第2の変化パターンである。
図6,図7でそれぞれ示される、第1及び第2の変化パターンを示す情報が図示しない記録媒体において保持されており、判断部16は、その第1及び第2の変化パターンを示す情報を読み出して、撮影画像に含まれるオブジェクトの変化と比較することによって、各オブジェクトの変化が第1の変化パターンに該当するのか、あるいは、第2の変化パターンに該当するのかを判断する。なお、前述のように、この処理は、パターンマッチングの処理として、すでに広く知られており、その詳細な説明を省略するが、以下、その処理の一例について簡単に説明する。
例えば、図6、図7で示されるように、移動前のオブジェクトから抽出された4個の特徴点の座標をそれぞれ、(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)とする。また、移動後のオブジェクトから抽出された4個の特徴点の座標をそれぞれ、(X1,Y1)、(X2,Y2)、(X3,Y3)、(X4,Y4)とする。(xi,yi)は、(Xi,Yi)に対応しているものとする(ただし、i=1〜4)。
すると、Yi<yiとなるi(図6では、i=1〜4)が存在するのであれば、第1の変化パターンに該当すると判断部16が判断してもよい。したがって、Yi<yiとなるiが存在するという条件が、第1の変化パターンを示す情報であってもよい。同様に、すべてのiに対して、Yi>yiを満たす(図7では、i=1〜4)のであれば、第2の変化パターンに該当すると判断部16が判断してもよい。したがって、すべてのiに対して、Yi>yiを満たすという条件が、第2の変化パターンを示す情報であってもよい。
なお、ここでは、オブジェクトの特徴点の座標値によって該当する変化パターンを判断する場合について説明したが、オブジェクトの特徴点を結ぶベクトルによって該当する変化パターンを判断してもよく、あるいは、他の方法によって、その判断を行ってもよい。
次に、本実施の形態におけるオブジェクト分類装置1の動作について、具体例を用いて説明する。この具体例では、移動体は車であるとする。そして、車に搭載されたカメラが動画を撮影し、その動画に含まれる撮影画像を用いて、障害物となりうる高さの高いオブジェクトを検出して、出力するものとする。
また、この具体例において、オブジェクトの比較は、5フレーム間隔で行うものとする。また、撮影画像自体は30フレーム/秒で行われるものとする。したがって、撮影画像のうち、一部の撮影画像を用いてオブジェクトの比較や変化パターンの判断等を行うものとする。
まず、カメラで撮影された撮影画像が順次、撮影画像受付部11で受け付けられ(ステップS101)、蓄積部12によって所定の記録媒体に蓄積される(ステップS102)。その撮影画像は、1フレームから順次、T1,T2,T3,…というようにタイムコードが付与されているものとする。
次に、タイムコードT6の撮影画像が蓄積された時点で、オブジェクト検出部13は、分類を行うと判断し(ステップS103)、タイムコードT6の撮影画像においてオブジェクトの検出を行う。なお、ここでは、1回目のオブジェクト検出であるため、タイムコードT6の撮影画像よりも5フレーム前の撮影画像、すなわち、タイムコードT1の撮影画像についてもオブジェクトの検出を行う(ステップS104)。図8(a)は、タイムコードT1の撮影画像を示す図である。この撮影画像において、オブジェクト検出部13は、停止線や、横断歩道、看板、車、家等をオブジェクトとして検出する。なお、ここでは、停止線に注目して説明する。オブジェクト検出部13は、検出した停止線のオブジェクトに対してオブジェクト識別情報「1001」を付与したとする。なお、オブジェクト識別情報「1001」で識別されるオブジェクトをオブジェクト1001と呼ぶこともある。他のオブジェクトについても同様である。そして、タイムコードT2,T3,…,T6まで、そのオブジェクトをトラッキングすることにより、図8(b)で示されるタイムコードT6の撮影画像におけるオブジェクト1001を検出する。このようなトラッキングによるオブジェクトの検出を行うことによって、影等のロバストに起因する誤検出を抑制することができ、例えば、あるオブジェクトが出現したり、消滅したりすることを繰り返すようなことを回避することができる。
次に、変化検出部14は、オブジェクトの変化を検出する処理を行う(ステップS105)。変化検出部14は、まず、1番目のオブジェクトであるオブジェクト1001が、第2の撮影画像であるタイムコードT6の撮影画像に含まれるため、1番目のオブジェクトが存在すると判断する(ステップS201,S202)。また、第1の撮影画像であるタイムコードT1の撮影画像にも、そのオブジェクト1001が含まれるため(ステップS203)、変化検出部14は、そのオブジェクト1001の変化を検出する(ステップS204)。具体的には、オブジェクト1001の四隅の位置の変化を示すベクトルを検出する。そして、変化検出部14は、その4個のベクトルを示す情報を、オブジェクト識別情報「1001」に対応付けて一時的に記憶する(ステップS205)。このようにして、タイムコードT6の撮影画像に含まれるすべてのオブジェクトについて、同様の処理を繰り返す(ステップS202〜S206)。
次に、距離検出部15は、移動体に近いオブジェクトを検出する処理を行う(ステップS106)。距離検出部15は、まず、変化検出部14が検出して一時的に記憶しているベクトルの大きさを算出し、オブジェクトごとに平均値を算出する。そして、その算出したベクトルの大きさの平均値も、オブジェクト識別情報に対応付けて一時的に記憶する。そして、その平均値のうち、最大のものを特定する(ステップS301)。ここでは、オブジェクト1001に対応する平均値が、最大であったとする。その後、距離検出部15は、各オブジェクトに対応する平均値が、最大の平均値の半分以上であるかどうか判断し、半分以上であるもののみを移動体の近くのオブジェクトと検出する(ステップS302〜S306)。例えば、1番目のオブジェクト1001については、その平均値が最大の平均値の半分以上であるのは明らかであり(ステップS302,S303)、距離検出部15によって、移動体に近いオブジェクトであると検出され、移動体に近いことを示すフラグがオブジェクト識別情報「1001」に対応付けられて設定される(ステップS304)。このようにして、タイムコードT6の撮影画像に含まれる各オブジェクトのうち、移動体に近いオブジェクトが順次、検出されていくことになる。
次に、判断部16は、各オブジェクトの変化が第1の変化パターンと、第2の変化パターンのいずれに属するのかの判断を行う(ステップS107)。ここで、判断部16がアクセス可能な図示しない記録媒体において、その第1及び第2の変化パターンを示す情報が記憶されているものとする。第1の変化パターンは、変化を示すベクトルに、撮影画像の上方を向いたベクトルと、撮影画像の下方を向いたベクトルとの両方が含まれるパターンであるとする。また、第2の変化パターンは、変化を示すベクトルに、撮影画像の下方を向いたベクトルのみが含まれるパターンであるとする。
判断部16は、まず、移動体に近いことを示すフラグが設定されている1番目のオブジェクトであるオブジェクト1001に対応するベクトルを図示しない記録媒体から読み出し、そのベクトルが第1の変化パターンに対応するかどうか判断する。図8から明らかなように、オブジェクト1001に対応するベクトルはすべて、撮影画像の下方を向いたものであるため、判断部16は、第1の変化パターンに対応しないと判断する(ステップS401,S402)。次に、判断部16は、オブジェクト1001に対応するベクトルが第2の変化パターンに対応するかどうか判断する。この場合には、判断部16は、第2の変化パターンに対応すると判断し(ステップS404)、オブジェクト識別情報「1001」に対応付けて高さの低いオブジェクトであることを示すフラグを設定する(ステップS405)。このようにして、移動体に近いことが検出されている各オブジェクトが、第1及び第2の変化パターンのいずれに対応しているのかについての判断が順次、行われていくことになる(ステップS402〜S407)。
その後、出力部17は、判断部16によって高さの高いオブジェクトであることを示すフラグの設定されたオブジェクトをハイライト表示したタイムコードT6の撮影画像であるオブジェクト情報を作成してディスプレイに出力する(ステップS108)。移動体である車に乗っているユーザは、そのディスプレイの表示を見ることによって、車にとって障害となりうるオブジェクト、すなわち、高さの高いオブジェクトの位置を容易に確認することができる。
ここで、高さの高いオブジェクトの検出等の処理についても、簡単に説明しておく。図9(a)、(b)で示されるように、オブジェクト検出部13は、タイムコードT301の撮影画像と、タイムコードT306の撮影画像とにおいて、車のオブジェクト2001をそれぞれ検出したとする(ステップS104)。すると、変化検出部14は、そのオブジェクト2001の変化を示すベクトルを検出する(ステップS105)。この処理は、前述の処理と同様である。また、距離検出部15は、上記説明と同様にして、そのオブジェクト2001が移動体に近いオブジェクトであると検出したとする(ステップS106)。すると、判断部16は、そのオブジェクト2001の変化が、第1の変化パターンと、第2の変化パターンとのいずれに属するのかを判断する(ステップS107)。ここでは、オブジェクト2001は、撮影画像の上方及び下方の両方に拡大しているため、判断部16は、オブジェクト2001に対応するベクトルが第1の変化パターンに対応すると判断し(ステップS402)、オブジェクト識別情報「2001」に対応付けて高さの高いオブジェクトであることを示すフラグを設定する(ステップS403)。その後、出力部17は、判断部16によって高さの高いオブジェクトであることを示すフラグの設定されたオブジェクト2001を含む1以上のオブジェクトをハイライト表示したタイムコードT306の撮影画像であるオブジェクト情報を作成してディスプレイに出力する(ステップS108)。ハイライト表示は、例えば、赤や黄色等の目立つ色に変更した表示であってもよく、太線の枠で囲った表示であってもよく、点滅させる表示であってもよく、オブジェクトを目立たせるように表示する方法であれば限定されない。移動体である車に乗っているユーザは、そのディスプレイの表示を見ることによって、高さの高いオブジェクト2001の位置を容易に確認することができうる。すなわち、図9(a),(b)の撮影画像は、駐車場の画像であるが、その駐車場において、車の止まっている場所を容易に知ることができる。したがって、ユーザが車を止めることができる場所を、容易に探し出すことができうる。
以上のように、本実施の形態によるオブジェクト分類装置1によれば、ステレオカメラを用いることなく、単眼のカメラによって、オブジェクトの高さを認識することができうる。したがって、例えば、画像に高い精度が要求されたり、高い計算コストに対応するための高いハードウェア性能が要求されたりすることなく、汎用のカメラやハードウェア等を用いて、処理を行うことができうる。ここで、オブジェクトの高さを認識するとは、オブジェクトの高さが高いか低いかを認識できることである。
また、距離検出部15によって、移動体に近いオブジェクトを検出することによって、その移動体に近いオブジェクトについてのみ、その高さに関する情報であるオブジェクト情報を出力することができる。移動体から遠いオブジェクトは、一般に移動体が移動する際の障害物とはならないと考えられ、そのようなオブジェクトに関する情報は必要ないと考えられるところ、そのような出力の必要のないオブジェクトに関する情報を出力しないようにすることができる。また、例えば、距離検出部15によって移動体に近いことが検出されたオブジェクトについてのみ、判断等の処理を行うことによって、オブジェクト分類装置1の負荷を軽減することもできうる。
なお、本実施の形態によるオブジェクト分類装置1は、図10で示されるように、移動情報受付部21をさらに備えてもよい。移動情報受付部21は、移動体の移動に関する情報である移動情報を受け付ける。ここで、移動情報とは、例えば、移動スピードを示す情報であってもよく、進行方向を示す情報であってもよく、あるいは、その両方の情報であってもよい。移動スピードは、例えば、速度であってもよく、タイヤや車輪の単位時間あたりの回転数であってもよい。進行方向は、例えば、ハンドルや舵の切れ角であってもよい。また、移動情報は、移動スピードや、進行方向以外の、移動体の移動に関する情報を含んでいてもよい。
移動情報受付部21は、例えば、有線もしくは無線の通信回線を介して送信された情報を受信してもよい。なお、移動情報受付部21は、例えば、入力デバイス(例えば、キーボードやマウス、タッチパネルなど)から入力された情報を受け付けてもよく、所定の記録媒体(例えば、光ディスクや磁気ディスク、半導体メモリなど)から読み出された情報を受け付けてもよい。また、移動情報受付部21は、受け付けを行うためのデバイス(例えば、モデムやネットワークカードなど)を含んでもよく、あるいは含まなくてもよい。また、移動情報受付部21は、ハードウェアによって実現されてもよく、あるいは所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
変化検出部14は、移動情報受付部21が受け付けた移動情報をも用いて、オブジェクトの検出を行ってもよい。例えば、ハンドルが曲がっていないことが移動情報によって示される場合には、一般に、図6,図7で示されるようにオブジェクトが変化するものと考えられる。一方、ハンドルが曲がっていることが移動情報によって示される場合には、オブジェクトの変化も図6,図7とは異なったものとなる。したがって、ハンドルが曲がっていることが移動情報によって示される場合には、変化検出部14は、変化の検出を行わないようにしてもよく、あるいは、その移動情報の示すハンドルの曲がり具合を考慮して、変化を検出するようにしてもよい。例えば、ハンドルが右に切られている場合には、撮影画像上のオブジェクトは、時間の経過と共に右から左に流れていくことになる。したがって、変化検出部14は、第2の撮影画像のオブジェクトに対応する第1の撮影画像のオブジェクトを特定する際に、第2の撮影画像のオブジェクトの位置よりも右側の領域において、その第2の撮影画像のオブジェクトに対応する第1の撮影画像のオブジェクトを探索するようにしてもよい。また、上記具体例では、5フレーム間隔で変化の検出を行う場合について説明したが、厳密には、移動体のスピードによって、5フレームでも移動体の移動距離が異なることになる。例えば、移動体としての車が信号で止まっている場合には、まったく移動しないため、5フレームごとに変化の検出を行う必要はない。したがって、変化検出部14は、移動情報の示す移動体のスピードを考慮して、一定の移動距離ごとに変化の検出を行うようにしてもよい。例えば、変化検出部14は、移動体が10メートル移動するごとに、変化の検出を行うようにしてもよい。
なお、移動情報受付部21が受け付けた移動情報を、変化検出部14以外の他の構成要素が用いてもよい。例えば、判断部16は、移動体情報の示す移動スピードや、進行方向の情報に応じて、異なる変化パターンを用いてもよく、変化パターンを修正して用いてもよい。また、オブジェクト検出部13や距離検出部15も、例えば、移動情報によって移動体が停止していることが示される場合には、オブジェクトの検出処理や、移動体に近いオブジェクトの検出処理を行わないようにしてもよい。
また、本実施の形態では、オブジェクト分類装置1が距離検出部15を備える構成について説明したが、オブジェクト分類装置1は、距離検出部15を備えていなくてもよい。その場合には、すべてのオブジェクトに関するオブジェクト情報が出力されてもよい。
(実施の形態2)
本発明の実施の形態2によるオブジェクト分類装置について、図面を参照しながら説明する。本実施の形態によるオブジェクト分類装置は、カメラの撮影した撮影画像を上面からの撮影画像に変換し、その変換後の撮影画像を用いてオブジェクトの検出等の処理を行うものである。
図11は、本実施の形態によるオブジェクト分類装置2の構成を示すブロック図である。本実施の形態によるオブジェクト分類装置2は、撮影画像受付部11と、蓄積部12と、オブジェクト検出部13と、変化検出部14と、距離検出部15と、判断部16と、出力部17と、画像変換部31とを備える。なお、撮影画像受付部11と、蓄積部12と、オブジェクト検出部13と、変化検出部14と、距離検出部15と、判断部16と、出力部17との構成及び動作は、実施の形態1と同様であり、その説明を省略する。
画像変換部31は、蓄積部12が蓄積した撮影画像を、上面からの撮影画像に変換する。移動体に搭載されたカメラで撮影され、蓄積部12によって蓄積された撮影画像は、一般に、移動体の前方方向の画像となっている。例えば、移動体が車の場合には、オブジェクトとしての建物や駐車車両等を側面から見た画像となっている。画像変換部31は、その撮影画像を、上面から見た撮影画像に変換する。例えば、移動体が車の場合には、上空から見た撮影画像に変換することになる。例えば、図9(b)の撮影画像を上面からの撮影画像に変換すると、図12で示されるようになる。この撮影画像の変換方法は、すでに広く知られており、その詳細な説明を省略する。
なお、その画像変換では、カメラの撮影した撮影画像における水平線付近に、変換の上限を設定し、その変換の上限よりも下の領域についてのみ、変換を行うようにしてもよい。図12で示される画像も、そのようにして変換された画像である。一般に、カメラの撮影した撮影画像では、遠方のオブジェクトは側面のみが表示されることになり、そのオブジェクトの画像を、上面からの画像に変換することは困難だからである。
蓄積部12は、画像変換部31が変換した、上面からの撮影画像をも所定の記録媒体に蓄積する。なお、蓄積部12が撮影画像受付部11の受け付けた撮影画像を蓄積する所定の記録媒体と、画像変換部31が変換した撮影画像を蓄積する所定の記録媒体とは、同じ記録媒体であってもよく、あるいは、異なる記録媒体であってもよい。
なお、オブジェクト検出部13は、変換後の上面からの撮影画像を用いてオブジェクトの検出を行うものとする。したがって、変化検出部14や距離検出部15、判断部16も、変換後の上面からの撮影画像に対する処理を行うことになる。また、出力部17が撮影画像を含むオブジェクト情報を出力する場合に、その撮影画像は、変換後のものであってもよく、そうでなくてもよい。
また、判断部16が判断で用いる第1の変化パターンは、移動体がオブジェクトに近づいた場合に、そのオブジェクトのカメラに近い部分のみが近づくパターンである。また、第2の変化パターンは、移動体がオブジェクトに近づいた場合に、そのオブジェクトが形状を保ったまま近づくパターンである。なお、「形状を保ったまま」とは、まったく同じ形状でなくてもよく、ほぼ同様の形状であればよい。
その本実施の形態による第1及び第2の変化パターンについて、図13〜図15を用いて説明する。図13〜図15において、車等の移動体にカメラを搭載し、前方を撮影した撮影画像を、上面からの撮影画像に変換した場合における、移動体が移動する前に変換後の撮影画像に含まれていたオブジェクト(移動前のオブジェクト)と、移動体がそのオブジェクトに向かって移動した後の変換後の撮影画像に含まれていたオブジェクト(移動後のオブジェクト)とが示されている。なお、カメラの光軸は、ほぼ水平であるとする。
図13,図14からわかるように、カメラの光軸の高さよりも高さの高いオブジェクトは、移動体が移動するにしたがって、撮影画像の全体に広がるように拡大していくことになる。すなわち、移動体がオブジェクトに近づいた場合に、そのオブジェクトのカメラに近い部分のみが近づき、カメラから遠い部分は、元の位置にとどまることになる。これは、カメラによってオブジェクトの上面を撮影することができないことに起因するものである。これが第1の変化パターンである。
一方、図13,図15からわかるように、カメラの光軸の高さよりも高さの低いオブジェクトは、移動体が移動するにしたがって、撮影画像の端の方に移動していくことになる。すなわち、移動体がオブジェクトに近づいた場合に、そのオブジェクトが形状を保ったまま近づくことになる。これが第2の変化パターンである。
図13,図14で示される第1の変化パターンを示す情報と、図13,図15で示される第2の変化パターンを示す情報とが図示しない記録媒体において保持されており、判断部16は、その第1及び第2の変化パターンを示す情報を読み出して、変換後の撮影画像に含まれるオブジェクトの変化と比較することによって、各オブジェクトの変化が第1の変化パターンに該当するのか、あるいは、第2の変化パターンに該当するのかを判断する。なお、実施の形態1でも述べたように、この処理は、パターンマッチングの処理としてすでに広く知られており、その詳細な説明を省略するが、以下、その処理の一例について簡単に説明する。
例えば、図13〜図15で示されるように、移動前のオブジェクトから抽出された4個の特徴点の座標をそれぞれ、(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)とする。また、移動後のオブジェクトから抽出された4個の特徴点の座標をそれぞれ、(X1,Y1)、(X2,Y2)、(X3,Y3)、(X4,Y4)とする。(xi,yi)は、(Xi,Yi)に対応しているものとする(ただし、i=1〜4)。
すると、Yi=yiとなるi(図13,図14では、i=1〜4)が存在するのであれば、第1の変化パターンに該当すると判断部16が判断してもよい。したがって、Yi=yiとなるiが存在するという条件が、第1の変化パターンを示す情報であってもよい。同様に、すべてのiに対して、Yi>yiを満たす(図13,図15では、i=1〜4)のであれば、第2の変化パターンに該当すると判断部16が判断してもよい。したがって、すべてのiに対して、Yi>yiを満たすという条件が、第2の変化パターンを示す情報であってもよい。
なお、ここでは、オブジェクトの特徴点の座標値によって該当する変化パターンを判断する場合について説明したが、オブジェクトの特徴点を結ぶベクトルによって該当する変化パターンを判断してもよく、オブジェクトの特徴点から構成される図形の面積によって該当する変化パターンを判断してもよく、あるいは、他の方法によって、その判断を行ってもよい。
次に、本実施の形態によるオブジェクト分類装置2の動作について、図16のフローチャートを用いて説明する。なお、図16のフローチャートにおいて、ステップS501,S502以外の処理は、ステップS103〜S108において、変換後の撮影画像についての処理がなされる以外、実施の形態1の図2のフローチャートと同様であり、その説明を省略する。
(ステップS501)画像変換部31は、蓄積部が蓄積した撮影画像を、上面からの撮影画像に変換する。
(ステップS502)蓄積部12は、画像変換部31が変換した撮影画像を所定の記録媒体に蓄積する。そして、ステップS101に戻る。
なお、図16のフローチャートでは、蓄積部12が蓄積したすべての撮影画像について画像変換が行われる場合について示しているが、そうでなくてもよい。例えば、オブジェクト検出等の処理が行われる撮影画像についてのみ画像変換を行うようにしてもよい。その場合には、すべての撮影画像について画像変換を行う場合に比べて、画像変換の処理を軽減することができうる。
また、本実施の形態によるオブジェクト分類装置2の動作の具体例も、変換後の撮影画像が処理対象となり、第1及び第2の変化パターンが異なる以外、実施の形態1とほぼ同様であり、その説明を省略する。
以上のように、本実施の形態によるオブジェクト分類装置2によれば、撮影画像が上面からのものに変換された場合であっても、撮影画像に含まれるオブジェクトの変化を第1及び第2の変化パターンと比較することによって、そのオブジェクトの高さを判断することができうる。
(実施の形態3)
本発明の実施の形態3による駐車スペース検出装置について、図面を参照しながら説明する。本実施の形態による駐車スペース検出装置は、車を駐車可能なスペースを示すオブジェクト情報を出力するものである。
図17は、本実施の形態による駐車スペース検出装置3の構成を示すブロック図である。本実施の形態による駐車スペース検出装置3は、オブジェクト分類装置1と、画像変換部41とを備える。オブジェクト分類装置1は、画像変換部41によって変換された撮影画像を用いてオブジェクトの検出等を行う以外、実施の形態1によるオブジェクト分類装置1と同様のものであり、その詳細な説明を省略する。なお、本実施の形態において、移動体は車であり、オブジェクト情報は、車を駐車可能なスペースを示す画像情報であるとする。
画像変換部41は、蓄積部12が蓄積した撮影画像を、その撮影画像における路肩が水平となり、画像の奥の方が手前の方よりも幅が狭くなるように、路肩水平の撮影画像に変換する。この変換については、後述する。
蓄積部12は、画像変換部41が変換した路肩水平の撮影画像をも蓄積する。なお、蓄積部12が撮影画像受付部11の受け付けた撮影画像を蓄積する所定の記録媒体と、画像変換部41が変換した撮影画像を蓄積する所定の記録媒体とは、同じ記録媒体であってもよく、あるいは、異なる記録媒体であってもよい。
なお、オブジェクト検出部13は、カメラで撮影された撮影画像に代えて、変換後の路肩水平の撮影画像を用いてオブジェクトを検出する。したがって、変化検出部14や距離検出部15、判断部16も、変換後の路肩水平の撮影画像に対する処理を行うことになる。また、出力部17が撮影画像を含むオブジェクト情報を出力する場合には、その撮影画像は、変換後のものであってもよく、そうでなくてもよい。
次に、画像変換部41による画像の変換について説明する。本実施の形態による駐車スペース検出装置3は、駐車場において、車を駐車可能な空きスペースを検出するものである。したがって、例えば、カメラによって撮影され、蓄積部12によって蓄積された撮影画像は、図18で示されるようなものとなる。図18からわかるように、駐車場において空きスペースを探すときには、一般に、進行方向の右側と左側とに駐車スペースが存在することになる。したがって、図18の撮影画像において、まず路肩の線を検出し、その検出した路肩の線に応じて、画像を抽出する四角の枠を設定する。この枠は、あらかじめ図示しない記録媒体において記憶されている四角の枠のパターンを拡大・縮小・移動することによって設定してもよい。そして、その設定した四角の枠の画像を抽出し、図19で示されるように、手前の画像ほど細かくなり、奥の画像ほど荒くなるように縦線を設定する。すなわち、この縦線は、画像の奥に行くに応じて細かくなるように設定されているものとする。次に、その縦線の長さと幅が均等になるように、抽出した画像を変換する。図20は、そのようにして変形された撮影画像の一例を示す図である。図20の撮影画像は、撮影画像における路肩が水平となり、画像の奥の方が手前の方よりも幅が狭くなる、路肩水平の撮影画像である。なお、ここでは、図18で示される撮影画像の右側に関する処理についてのみ説明したが、左側についても、同様に処理を行ってもよい。
次に、判断部16による判断について説明する。路肩水平の撮影画像に変換した場合には、車が移動するにしたがって、オブジェクトは左右に移動することになる。ただし、所定の高さよりも高いオブジェクトは、水平線よりも上の領域を含んで移動することになり、所定の高さよりも低いオブジェクトは、水平線よりも下の領域で移動することになる。したがって、判断部16が判断で用いる第1の変化パターンは、オブジェクトが路肩水平の撮影画像内の水平線よりも上の領域で移動するパターンであり、第2の変化パターンは、オブジェクトが路肩水平の撮影画像内の水平線よりも下の領域で移動するパターンであってもよい。例えば、図21の上側の移動前の撮影画像に含まれる左側の車は、移動体としての車が移動するにしたがって図21の下側の移動後の撮影画像に含まれる車のように右側に移動することになる。その際に、水平線よりも上の領域を含んで移動していることがわかる。したがって、判断部16は、水平線よりも上の領域で移動する第1の変化パターンに対応すると判断し、その車のオブジェクトを高さの高いオブジェクトであると判断することになる。
第1の変化パターンは、例えば、変化検出部14が検出した変化を示す1以上のベクトルに、路肩水平の撮影画像の水平線よりも上側に始点と終点の両方が含まれるベクトルが含まれるパターンであってもよい。また、第2の変化パターンは、例えば、変化検出部14が検出した変化を示す1以上のベクトルのすべてが、路肩水平の撮影画像の水平線よりも下側に始点と終点の両方が含まれるパターンであってもよい。
なお、このように路肩水平の撮影画像に変換してオブジェクトの検出や変化の検出等を行うことによって、画像比較(マッチング)を行う際のエピライン(走査線)が水平になり、計算コストを大幅に下げることができるメリットがある。また、水平方向に対して、距離はピクセル換算で均等となるため、距離の計算も容易になるというメリットもある。
出力部17が出力するオブジェクト情報は、変換後の路肩水平の撮影画像によって、駐車可能なスペースを示す画像情報であってもよく、そうでなくてもよい。後者の場合には、例えば、図22で示されるように、上面からの図によって駐車可能なスペースを示す画像情報であるオブジェクト情報が出力されてもよい。図22において、1〜3の数字の記載されている箇所は、すでに他の車が駐車しているスペースである。したがって、それ以外のスペースが、駐車可能なスペースとなる。図22で示されるような上面からの図を出力する場合には、出力部17は、例えば、次のような処理を行ってもよい。まず、出力部17は、判断部16によって高さが高いと判断されたオブジェクトに対応するオリジナルの撮影画像(カメラで撮影された撮影画像)でのオブジェクトを特定する。例えば、画像変換部41による変換の逆を行うことによって、その特定を行うことができる。そして、実施の形態2による画像変換部31と同様の変換を行うことによって、上面からの撮影画像に変換することができ、その上面からの撮影画像において、高さの高いオブジェクトを、あらかじめ設定されている四角の図形等で表示することにより、図22で示されるオブジェクト情報を得ることができる。なお、図22において、駐車スペースの枠を示す線は、撮影画像から得られたものであってもよく、撮影画像において枠の位置を認識し、その認識した枠の位置に描画した線であってもよく、あるいは、あらかじめ駐車場における枠を示す画像を図示しない記録媒体において記憶しておき、その画像を上面からの撮影画像に重ね合わせたものであってもよい。
また、本実施の形態による駐車スペース検出装置3の動作は、実施の形態2によるオブジェクト分類装置2の図16のフローチャートで示される動作と同様であり、その説明を省略する。ただし、ステップS501では、路肩の抽出と、カメラで撮影され、蓄積部12によって蓄積された撮影画像からの画像の抽出と、その画像の変換とが行われるものとする。なお、前述のように、1個のオリジナルの撮影画像から2個の路肩水平の撮影画像が生成されてもよく、あるいは、1個であってもよい。
また、本実施の形態による駐車スペース検出装置3の動作の具体例も、変換後の撮影画像が処理対象となり、第1及び第2の変化パターンが異なる以外、実施の形態1、2とほぼ同様であり、その説明を省略する。
以上のように、本実施の形態による駐車スペース検出装置3によれば、車を駐車可能なスペースを、例えば、移動体としての車の運転者等に提示することが可能であり、車を駐車可能なスペースを目視によって探す労力を軽減することができうる。また、撮影画像を路肩水平の撮影画像に変換し、その路肩水平の撮影画像を用いた処理を行うことによって、計算コストを下げることができ、また、距離計算をも容易にできるようになる。
なお、本実施の形態では、路肩水平の撮影画像を用いてオブジェクト検出等の処理を行う場合について説明したが、撮影画像を路肩水平の撮影画像に変換しないで、駐車スペースの検出処理を行ってもよいことは言うまでもない。その場合には、駐車スペース検出装置3は、画像変換部41を有していなくてもよく、判断部16による判断の処理も、例えば、実施の形態1で説明したのと同様の処理であってもよい。
また、本実施の形態では、駐車スペース検出装置3がカメラやディスプレイを含まない場合について説明したが、駐車スペース検出装置3は、カメラや、出力部17が出力したオブジェクト情報を表示する表示部を含んでもよい。表示部は、例えば、CRTや液晶等のディスプレイであってもよく、あるいは、スクリーンに映像を表示するプロジェクターであってもよい。
また、上記各実施の形態では、処理の性質上、リアルタイムで順次、オブジェクトの検出処理や、オブジェクト情報の出力処理等が行われていくことが一般的であると考えられるが、リアルタイム処理が必要ない場合には、一連の画像が蓄積された後に、オブジェクトの検出処理や、オブジェクト情報の出力処理等を行うようにしてもよい。
また、上記各実施の形態では、オブジェクト分類装置1,2、駐車スペース検出装置3がスタンドアロンである場合について説明したが、それらの装置は、スタンドアロンの装置であってもよく、サーバ・クライアントシステムにおけるサーバ装置であってもよい。後者の場合には、出力部や受付部は、通信回線を介して入力を受け付けたり、画面を出力したりすることになる。
また、上記各実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよく、あるいは、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。
また、上記各実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。なお、上記各実施の形態におけるオブジェクト分類装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、移動体に搭載されたカメラで撮影された画像であり、前記移動体が移動している際の画像である撮影画像を2以上受け付ける撮影画像受付部と、前記撮影画像受付部が受け付けた撮影画像を蓄積する蓄積部と、前記蓄積部が蓄積した、撮影の時間差を有する2以上の撮影画像にそれぞれ含まれるオブジェクトを検出するオブジェクト検出部と、2以上の撮影画像間における、前記オブジェクト検出部が検出したオブジェクトの変化が、所定の高さよりも高いオブジェクトの変化パターンである第1の変化パターンに対応するのか、あるいは、所定の高さよりも低いオブジェクトの変化パターンである第2の変化パターンに対応するのかを判断する判断部と、前記判断部による判断結果を用いて、前記オブジェクトに関する情報であるオブジェクト情報を出力する出力部として機能させるためのものである。
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を受け付ける受付部や、情報を出力する出力部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には少なくとも含まれない
また、このプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体(例えば、CD−ROMなどの光ディスクや磁気ディスク、半導体メモリなど)に記録されたプログラムが読み出されることによって実行されてもよい。
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
図23は、上記プログラムを実行して、上記各実施の形態によるオブジェクト分類装置、駐車スペース検出装置を実現するコンピュータの外観の一例を示す模式図である。上記各実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現される。
図23において、コンピュータシステム100は、CD−ROM(Compact Disk Read Only Memory)ドライブ105、FD(Flexible Disk)ドライブ106を含むコンピュータ101と、キーボード102と、マウス103と、モニタ104とを備える。
図24は、コンピュータシステムを示す図である。図24において、コンピュータ101は、CD−ROMドライブ105、FDドライブ106に加えて、CPU(Central Processing Unit)111と、ブートアッププログラム等のプログラムを記憶するためのROM(Read Only Memory)112と、CPU111に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するRAM(Random Access Memory)113と、アプリケーションプログラム、システムプログラム、及びデータを記憶するハードディスク114と、CPU111、ROM112等を相互に接続するバス115とを備える。なお、コンピュータ101は、LANへの接続を提供する図示しないネットワークカードを含んでいてもよい。
コンピュータシステム100に、上記各実施の形態によるオブジェクト分類装置、駐車スペース検出装置の機能を実行させるプログラムは、CD−ROM121、またはFD122に記憶されて、CD−ROMドライブ105、またはFDドライブ106に挿入され、ハードディスク114に転送されてもよい。これに代えて、そのプログラムは、図示しないネットワークを介してコンピュータ101に送信され、ハードディスク114に記憶されてもよい。プログラムは実行の際にRAM113にロードされる。なお、プログラムは、CD−ROM121やFD122、またはネットワークから直接、ロードされてもよい。
プログラムは、コンピュータ101に、上記各実施の形態によるオブジェクト分類装置、駐車スペース検出装置の機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム100がどのように動作するのかについては周知であり、詳細な説明は省略する。
また、本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。