以下、本発明を実施の形態を示す図面に基づいて説明する。図1は本実施の形態に係る移動体識別装置100の構成の一例を示すブロック図である。移動体識別装置100は、車両又は歩行者などの移動体の有無、移動体の位置、速度、種別などを識別することができる。移動体識別装置100は、装置全体を制御するための制御部10、ビデオカメラなどの撮像装置1で撮像して得られた撮像画像を取得するためのインタフェース部11、撮像画像周辺差分符号を算出する周辺差分符号算出手段としての周辺増分符号算出部12、撮像画像周辺差分符号を背景画像周辺差分符号でマスク処理するマスク処理部13、移動体候補領域を構成する画素を抽出する抽出手段としての候補領域抽出部14、移動体を識別する識別手段としての移動体識別部15、背景画像周辺差分符号を生成する生成手段としてのマスク符号生成部16、画素(注目画素)が移動したか否かを判定する判定手段としての画素判定部17、背景画像周辺差分符号などを記憶する記憶部18などを備えている。なお、撮像装置1は、移動体識別装置100とは別個の装置であってもよく、あるいは、両者が一体をなす構成であってもよい。
撮像装置1は、道路を視野として、所定の高さ、レンズの光軸方向(例えば、俯角及び回転角)などの撮像条件が設定された状態で道路付近の所要の地点に設置してある。撮像装置1は、撮像して得られた撮像データを映像信号(アナログ信号)としてインタフェース部11へ送出する。
インタフェース部11は、入力された映像信号をデジタル信号に変換し、変換したデジタル信号を撮像画像(入力画像データ)として記憶部18に記憶する。インタフェース部11を介して撮像装置1から入力された撮像画像は、撮像装置1のフレームレート(撮像時点の間隔、例えば、1秒間に30フレーム)と同期して、1フレーム単位の画像データとして記憶部18に記憶される。
図2は撮像画像の一例を示す説明図である。図2の例では、撮像装置1を交差点付近の所要の高さに設けてあり、交差点に向かって走行する車両を撮像することができる。また、撮像画像上には、車両(移動体)の識別用領域(感知領域)としての感知ループSが設けられている。感知ループS内の路面には、車両の進行方向を示す図柄が描かれている。撮像画像の大きさは、例えば、240×320画素であるが、撮像画像の大きさはこれに限定されるものではない。また、撮像装置1の設置場所は、図2の例に限定されない。
周辺増分符号算出部12は、周辺差分符号算出手段としての機能を備える。周辺増分符号算出部12は、撮像画像の注目画素毎に、注目画素とその注目画素の周辺にある複数の周辺画素との画素値の差分(例えば、増分)を符号化した撮像画像周辺差分符号(例えば、周辺増分符号)を算出する。以下、周辺増分符号の算出方法について説明する。
図3は撮像画像の一部を示す説明図であり、図4は注目画素を含む周辺画素の輝度値の一例を示す説明図であり、図5は注目画素の周辺増分符号の算出例を示す説明図であり、図6は注目画素の周辺増分符号を模式的に表した説明図である。図3は、図2に示す感知ループS内の撮像画像の一部を取り出したものである。図中、斜線部は路面であり、白抜きの部分は路面に描かれた図柄の一部である。また、図3中の中央の画素を注目画素とする。
図4は、注目画素とその周辺画素の輝度値を示す。図4の例では、周辺画素は、注目画素に隣接する8画素(注目画素を中心とする3×3画素から注目画素を除いた画素)である。輝度値は、例えば、0から255までの数値で表すことができ、数値が大きいほど輝度が高い。図4の例では、注目画素の輝度値が140であり、その周辺画素の輝度値は、右隣接画素から反時計周りの順に、217、89、110、134、129、130、119、221である。なお、輝度値は一例であって、これに限定されるものではない。
周辺増分符号の算出は、注目画素の輝度値と、注目画素の8近傍の周辺画素の輝度値とを比較し、それぞれの周辺画素の輝度値aが、注目画素の輝度値wとの間で、w+α<aであれば、その周辺画素の位置に対応する符号成分を1(有効)とする。また、w+α≧aであれば、その周辺画素の位置に対応する符号成分を0(無効)とする。ここで、αは差分閾値であって適宜設定することができ、例えば、α=20とすることができる。
上述の算出方法に従った場合、図4の例で示す注目画素の周辺増分符号は、図5に示すようになる。すなわち、注目画素の8近傍の周辺画素を右隣接画素から反時計周りの順に、A1、A2、…A8とする。図4及び図5から、周辺画素A1の輝度値aは217であり、注目画素wの輝度値は140であるから、w+α<aの関係を満たす。従って、周辺画素A1に対応する符号成分は1(有効)となる。同様にして他の周辺画素の符号成分を求めると、注目画素の周辺増分符号(A8 A7 …A1)は、(10000001)となり、8ビットの情報を用いて符号化したものとなる。8ビットの二進符号を10進符号に変換することで、周辺増分符号は、129として表すこともできる。
図5に示すように、8近傍の周辺画素のうち、右隣の周辺画素A1と、右下の周辺画素A8の符号成分が1(有効)であるので、これを模式的に表すと、図6のようになる。すなわち、周辺増分符号を、注目画素を中心として、符号成分が有効である周辺画素の方向に放射状に伸びた線分で表すこともできる。このようにして、撮像画像上の注目画素を順番に走査することで、撮像画像上のすべての画素を符号化することができる。
上述のように、撮像画像差分符号としての周辺増分符号は、注目画素とその周辺の各周辺画素との差分(輝度値の差分)の大小に応じた有効又は無効を示す符号成分を有する。そして、差分の符号化は、周辺画素のそれぞれに対応させて、差分(a−w)が所定の差分閾値αより大きい場合には、有効(例えば、1)、差分(a−w)が差分閾値α以下の場合には、無効(例えば、0)というようにすることができる。なお、上述の例では、差分(a−w)を増分として符号化したものであるが、これに限定されるものではなく、差分(w−a)を減分として符号化することもできる。
記憶部18は、背景画像差分符号としてのマスク符号を記憶している。マスク符号は、周辺増分符号と同様の方法で生成することができる。すなわち、マスク符号は、車両が存在しないときに撮像された背景画像の任意の画素毎に、当該任意の画素とその周辺の周辺画素との画素値の差分を符号化したものである。そして、マスク符号は、周辺増分符号と同様に、任意の画素と各周辺画素との差分の大小に応じた有効又は無効を示す符号成分を有する。
マスク処理部13は、注目画素の周辺増分符号(撮像画像周辺差分符号)を、当該注目画素に対応する背景画像上の画素のマスク符号(背景画像周辺差分符号)でマスク処理するマスク処理手段としての機能を有する。以下、マスク処理の方法について説明する。
図7はマスク処理の一例を示す説明図である。図7(a)は入力画像の周辺増分符号の一例を示し、図7(b)は背景画像(マスク符号画像)のマスク符号の一例を示し、図7(c)はマスク処理後画像の周辺増分符号を示す。また、図中、各画素に記載された放射状の線分は、図6で例示した周辺増分符号を模式化したものである。図7の例では、入力画像(撮像画像)の注目画素の周辺増分符号と、当該注目画素に対応する背景画像上の画素のマスク符号との共通する有効成分を除去して(部分一致に相当する)、入力画像の各注目画素の周辺増分符号をマスク処理する。例えば、8個の符号成分を(A8、A7、…A1)とした場合に、周辺増分符号の有効成分をA4、A3、A2、A1とし、マスク符号の有効成分をA4、A3、A2としたときには、共通する有効成分であるA4、A3、A2が除去されるので、マスク処理を行った後のマスク処理後撮像画像周辺差分符号の有効成分は、A1となる。これにより、背景と考えられる符号を除去することができ、環境変化に影響されることなく、車両などの移動体を高精度で識別することが可能となる。
図8はマスク処理の他の例を示す説明図である。図8(a)は入力画像の周辺増分符号の一例を示し、図8(b)は背景画像(マスク符号画像)のマスク符号の一例を示し、図8(c)はマスク処理後画像の周辺増分符号を示す。また、図中、各画素に記載された放射状の線分は、図6で例示した周辺増分符号を模式化したものである。図8の例では、入力画像(撮像画像)注目画素の周辺増分符号の有効成分と、当該注目画素に対応する背景画像上の画素のマスク符号の有効成分とがすべて同一である場合(完全一致に相当する)、当該有効成分をすべて除去して、入力画像の各注目画素の周辺増分符号をマスク処理する。例えば、8個の符号成分を(A8、A7、…A1)とした場合に、周辺増分符号の有効成分をA4、A3、A2、A1とし、マスク符号の有効成分をA4、A3、A2としたときには、両者の有効成分がすべて一致しないので、周辺増分符号は除去されず、マスク処理を行った後のマスク処理後撮像画像周辺差分符号の有効成分は、A4、A3、A2、A1すべてが残る。これにより、撮像画像の特徴量である周辺増分符号が除去されにくくなり、マスク処理後の移動体の特徴量を残すことができ、一層精度良く移動体を識別することができる。
このように、本実施の形態のマスク処理は、入力画像中に、背景と考えられる周辺増分符号が存在する場合に、当該周辺増分符号を除外(無効、又は有効でないものと)する。背景画像そのものではなく背景画像のマスク符号を用いることにより、従来の差分処理に比べて、車両などの移動体の識別の精度が向上する。また、背景画像が誤って更新された場合、あるいは本来使用すべき背景画像と異なる背景画像を使用した場合であっても、背景画像そのものではなく背景画像のマスク符号を用いるので、そのマスク符号と一致(部分一致又は完全一致)する周辺増分符号だけが無視されるだけであり、移動体の検出結果に影響を及ぼすことも少ない。
次に、撮像装置1が風などで揺れた場合でも、車両などの移動体の誤検出を防止する方法について説明する。本実施の形態では、撮像装置1の揺れに対して、背景画像のマスク符号を、例えば、撮像装置1の撮像レンズの光軸の揺れ幅に相当する画素数だけ膨張(拡張)させたマスク画素を用いる。
図9はマスク画素の一例を示す説明図である。図9(a)は、注目画素に対応する背景画像の画素のマスク符号が、56(00111000)であることを示す。図9(b)に示すように、マスク画素は、背景画像の任意の画素のマスク符号と同じマスク符号を対応付けた、当該画素の周囲の7×7画素である。マスク画素で構成されるマスク領域の大きさは、設置された撮像装置1の撮像レンズの光軸の揺れ幅に関連付けてある。例えば、揺れ幅が大きい場合には、マスク画素の画素数も多くすればよい。また、最大の揺れ幅に相当する画素数でマスク領域の縦又は横の画素数を設定することができる。これにより、撮像装置1の揺れによる影響を排除して移動体を精度良く識別することができる。
また、背景画像の任意の画素に対応する道路上の地点が遠距離になるに応じて、当該任意の画素のマスク領域を小さくする。撮像装置1が揺れた場合、道路上の地点が遠方になるほど、撮像画像上での注目画素の位置の変動は小さくなるので、マスク領域を小さくする。また、道路上の地点が近くになるほど、撮像画像上での注目画素の位置の変動は大きくなるので、マスク領域を大きくする。これにより、撮像画像上の広い範囲で撮像装置1の揺れによる移動体の誤検出を防止することができる。
図10はマスク画素の他の例を示す説明図である。図10(a)は、注目画素に対応する背景画像の画素のマスク符号が、56(00111000)であり、マスク符号が3つある場合を示す。図10(b)に示すように、マスク画素は、背景画像の任意の画素のマスク符号と同じマスク符号を対応付けた、当該画素の周囲の7×7画素である。図10(b)の例では、3つのマスク符号が存在しているので、マスク画素は、それぞれのマスク符号に対応して7×7画素で構成される。この場合も、図9の例と同様に、マスク画素で構成されるマスク領域の大きさは、設置された撮像装置1の撮像レンズの光軸の揺れ幅に関連付けてある。例えば、揺れ幅が大きい場合には、マスク画素の画素数も多くすればよい。また、最大の揺れ幅に相当する画素数でマスク領域の縦又は横の画素数を設定することができる。これにより、撮像装置1の揺れによる影響を排除して移動体を精度良く識別することができる。
図11は背景画像上の複数のマスク符号に対応するマスク画素の一例を示す説明図である。図11に示すように、背景画像上で、例えば、マスク符号が50、60、70の画素が存在する場合(図11では連続して隣接しているが、離隔して存在してもよい)、マスク符号が50、60、70の画素のマスク画素M1、M2、M3は、各画素の位置に対応して横方向にずれるが、部分的に重複する。例えば、図11中の矩形で示す画素は、マスク画素M1、M2、M3の中に存在するので、当該画素のマスク符号は、50、60及び70となる。
図12は揺れ対策用のマスク符号画像の一例を示す模式図である。マスク符号画像は、模式的に背景画像にマスク符号を付したものである。揺れ対策を行わない場合には、背景画像の各画素にマスク符号が一対一に対応して割り当てられるので、マスク符号画像は1つで足りる。しかし、揺れ対策を施す場合には、背景画像上の各画素のマスク符号を周囲のマスク画素にも割り当てる(対応付ける)。マスク符号は、周辺増分符号と同様に、1から255までの値を取り得るので、マスク符号毎にマスク符号画像を別々に準備する。
図12の例では、マスク符号が1、2、255のマスク符号画像を示す。図12において、マスク符号画像は、簡略化のためにマスク符号の画素が3×3画素で構成されているが、図9、図10の例のように、7×7画素であってもよい。マスク符号が1のマスク符号画像は、3×3画素が1つである場合を示す。また、マスク符号が2、255のマスク符号画像は、3×3画素が複数(図12の例では2つ)である場合を示す。複数のマスク符号が存在する画素では、それぞれのマスク符号がマスク処理に用いられる。
また、背景画像の任意の画素の周辺画素の組み合わせ数に応じた複数の組のマスク符号画像(マスク符号)を記憶部18に記憶する。このように、マスク符号画像は、複数のパターン(組)を用いることにより、撮像装置1が揺れた場合でも、マスク処理を確実に行うことができ、移動体の識別精度を向上させることができる。
図13は揺れ対策を施した場合のマスク処理の一例を示す説明図である。この場合、マスク処理部13は、撮像画像上の注目画素の周辺増分符号を当該注目画素に対応する背景画像上の画素又は当該画素の周囲のマスク画素のマスク符号でマスク処理する。なお、マスク処理の具体的方法は、図7及び図8と同様である。相違点は、注目画素の対応する画素のマスク符号だけを用いるか、マスク画素のマスク符号も加味するかである。
このように、設置された撮像装置1が風などで揺れた場合に、注目画素に対応する背景画像上の画素の座標が変動したときでも、注目画素に対応する画素のマスク符号でマスク処理することができるので、路面の図柄などの移動体でないものを誤って移動体として検出することを防止することができ、高精度で移動体を識別することができる。
候補領域抽出部14は、マスク処理したマスク処理後撮像画像周辺差分符号(入力画像の残存した周辺増分符号)に基づいて、移動体候補領域を構成する画素を抽出する抽出手段としての機能を有する。すなわち、候補領域抽出部14は、マスク処理後撮像画像周辺差分符号が残存している画素を、移動体候補領域を構成する画素として抽出する。
また、候補領域抽出部14は、注目画素のマスク処理後撮像画像周辺差分符号の有効成分の残存数が閾値以上である場合、当該注目画素を、移動体候補領域を構成する画素として抽出する。閾値は、適宜設定することができ、例えば、2とすることができる。例えば、マスク処理した後の入力画像の画素の周辺増加符号の有効成分の数が1である場合、当該画素はノイズとして除外する。これにより、ノイズ等の影響により、注目画素の周辺画素の1つの画素値が大きく変化した場合でも、このようなノイズの影響を抑制することができ、移動体の誤検出を防止することができる。
移動体識別部15は、候補領域抽出部14で抽出した候補領域を構成する画素に基づいて、移動体を識別する。以下、移動体の識別方法について説明する。
図14は感知ループS内での車両の識別方法の一例を示す説明図である。図14は、感知ループS内の画像を示し、升目の1つは画素を示す。また、横線が付された画素は、周辺増分符号が除去されずに残存している画素を示す。移動体識別部15は、感知ループS内の画素のうち、周辺増分符号が除去されずに残存する画素の数に応じて、車両の有無を識別する。例えば、図14(a)に示すように、周辺増分符号が残っている画素の数が所定の画素閾値以下である場合には、車両は存在しないとする。また、図14(b)に示すように、周辺増分符号が残っている画素の数が所定の画素閾値を超える場合には、感知ループSに車両が進入したと判定することができ、車両が存在するとする。これにより、感知ループSに図柄等が描かれている場合でも、移動体の有無を確実に行うことができる。
移動体を識別する場合、感知ループSを使用することなく、撮像画像全体から移動体を識別することもできる。図15は車両の識別方法の他の例を示す説明図である。図15に示す例は、マスク符号によるマスク処理の後に、周辺増分符号が残っている画素のうち、隣接する画素を同じ番号(ラベル)でラベリングし、同じラベルが付与された連結領域を車両候補領域として抽出する。抽出した車両候補領域に外接する矩形領域を車両として識別する。この場合、矩形領域の撮像画像上の座標、異なる撮像時点間での座標の変位、矩形領域の大きさなどにより、車両の位置、速度、種別などを判定することができる。図14の例では、車両が1台識別されているが、複数台同時に識別される場合もある。
上述のように、移動体の識別方法は、図14の例、あるいは図15の例のいずれを採用してもよい。特に、車両の有無を感知する感知器として使用する場合には、図14の例を用いることができ、交通量などを計測する場合には、図15の例を用いることができる。
マスク符号生成部16は、背景画像のマスク符号を生成し、生成したマスク符号を記憶部18に記憶する。また、マスク符号生成部16は、背景画像の任意の画素のマスク符号を、当該任意の画素及び当該画素のマスク画素のマスク符号として生成し、生成したマスク符号を記憶部18に記憶する。マスク画素の数(マスク領域の大きさ)を適宜設定することにより、撮像装置1の揺れの度合いが異なる場合でも、揺れ度合いに応じたマスク符号を用いることができる。
次に、路面上に影が発生した場合でも、車両などの移動体の誤検出を防止する方法について説明する。路面上の影は、例えば、昼間の時間帯、天候や季節などにより、車両の前あるいは横の路面上に車両の影が発生し、車両の移動に伴って影も移動する場合がある。また、道路付近に存在する支柱、木、看板、建物などの影が時間帯に応じて路面上で変化する場合もある。影の部分と影でない部分との輝度差もあるので、差分画像に基づいて車両を検出する場合、影の部分を車両として誤って検出する事態が生じる。
図16は車両の影が発生した状態の撮像画像の一例を示す説明図であり、図17は路面上の影の境界部分の周辺増分符号の一例を示す説明図である。なお、図16の例では、車両の横に発生した影が同じ車線上にある状態を示しているが、車線を走行する車両の影が隣の車線上に発生する場合もある。図17において、斜線部分は影の部分を示し、白抜きの部分は影のない路面を示す。
図17に示すように、車両の影が感知ループS内を通過する場合、撮像画像の周辺増分符号は、影の境界線付近に顕著に現われる。すなわち、路面上の影の部分と影でない部分との境界線では、輝度値の大きい領域と輝度値の小さい領域が境界線で隣接しているため、境界線に接する画素の周辺増分符号は、固有の符号を持つ場合が多い。例えば、図5に示すように、周辺画素を3×3画素とする場合、図17に示すように、周辺増分符号の有効成分の数は、3となる場合が多い。
また、影の境界線付近を除く領域では、輝度値の変化の割合が少ないので、周辺増分符号の有効成分は存在しない場合が多い。
マスク処理部13は、撮像画像の周辺増分符号を背景画像のマスク符号でマスク処理した後に残った周辺増分符号の有効成分の数が所定値である場合、その周辺増分符号を影として除去する除去手段としての機能を有する。すなわち、マスク処理部13は、マスク符号でマスク処理した後の周辺増分符号の有効成分の数が所定値である場合、当該周辺増分符号を除去する。周辺画素を3×3画素とする場合、所定値は、例えば、3とすることができる。これにより、影の境界線部分の画素を除外することができる。
候補領域抽出部14は、影として除去された後の周辺増分符号に基づいて、移動体候補領域を構成する画素を抽出する。移動体識別部15は、抽出された画素で構成される移動体候補領域に基づいて、移動体を識別する。これにより、車両の周囲に影が発生した場合でも、影の部分を除去することができるので、影の部分を誤って移動体として検出することを防止することができ、高精度で移動体を識別することができる。
次に、時間の経過とともに影が移動する場合の対策について説明する。マスク符号生成部16は、撮像時点を変えて撮像して得られた背景画像に基づいて、マスク符号(背景画像周辺差分符号)を複数生成し、生成したマスク符号を記憶部18に記憶しておく。これにより、道路付近に存在する支柱、木、看板、建物などの影が時間帯に応じて変化するような場合でも、時間帯による影の変化を考慮したマスク符号を選択して用いることにより、時間帯の影響を排除して移動体を精度良く識別することができる。あるいは、マスク処理を行う場合に、撮像画像の周辺増分符号に対して、複数のマスク符号を同時に用いることもできる。
また、マスク符号生成部16で、所定時間の間に撮像して得られた背景画像に基づいてマスク符号を複数生成しておき、生成頻度に応じてマスク符号を選択して用いることもできる。
図18はマスク符号の選択方法の一例を示す説明図である。所定時間(例えば、10分など)の間に適宜の時間間隔で撮像した背景画像のマスク符号を生成し、マスク符号(例えば、1〜255)毎に生成された頻度(度数)を集計して記録する。例えば、最大で30[回/秒]×60[秒/分]×10[分]=18000[回/10分]となる。図18はマスク符号毎の生成頻度をヒストグラムとして表したものである。そして、生成頻度が所定の閾値以上(例えば、1000[回/10分]のマスク符号を抽出(選択)し、抽出したマスク符号を、最大ゆれ分隣接する画素に拡大(例えば、7×7画素)する。所定時間経過の都度この処理を繰り返し、所定時間経過の都度異なるマスク符号を生成することにより、時間の経過に応じて影の部分が変化する場合でも、最も可能性の高い影の状態を表すマスク符号を用いることにより、時間経過の影響を排除して移動体を精度良く識別することができる。
上述の図17の例では、影を除去するための周辺増分符号の有効成分の所定値は、3としたが、これに限定されるものではない。
図19は周辺画素の構成例を示す説明図である。撮像画像の注目画素及び該注目画素に対応する背景画像上の画素の周辺画素は、m×nの画素ブロックとすることができる。ここで、m及びnは整数である。この場合、影を除去するための周辺増分符号の有効成分の所定値は、m及びnを超えない値とすることができる。例えば、図19(a)に示すように、周辺画素が、3×3画素である場合、所定値を3とすることができる。影の境界線は、直線状に現われる場合が多く、例えば、車両の横に発生する影の境界線は、3×3画素の周辺画素の場合、縦又は横の連続する3画素で輝度値の差分が大きくなり、撮像画像の影の境界線付近の周辺増分符号の有効成分の数が3となることが多い。
また、図19(b)に示すように、周辺画素を5×5の画素ブロックとすることもできる。この場合も同様に、所定値を5、又は4とすることができる。影の境界線は、直線状に現われる場合が多く、例えば、車両の横に発生する影の境界線は、5×5画素の周辺画素の場合、縦又は横に沿った4画素又は5画素で輝度値の差分が大きくなり、周辺増分符号の有効成分の数が4、5などになることが多い。これにより、影を除去して移動体を精度良く識別することができる。
また、図19(c)に示すように、周辺画素を5×3の画素ブロックとすることもできる。この場合も同様に、所定値を5、4又は3とすることができる。影の境界線は、直線状に現われる場合が多く、例えば、車両の横に発生する影の境界線は、5×3画素の周辺画素の場合、縦又は横に沿った3画素、4画素又は5画素で輝度値の差分が大きくなり、周辺増分符号の有効成分の数が3、4、5などになることが多い。これにより、影を除去して移動体を精度良く識別することができる。
次に、夜間などに車両のヘッドライトによる路面反射が発生した場合でも、車両などの移動体の誤検出を防止する方法について説明する。夜間の背景画像には、路面に描かれた図柄等(例えば、進行方向を示す矢印など)は反映されていない。しかし、ヘッドライトを点灯した車両が路面上の図柄に接近しながら走行する場合、ヘッドライトの光が路面で反射して路面上の図柄等が撮像されることが多く、従来の技術では路面上の図柄等を誤って車両として検出する場合がある。
そこで、マスク処理されて残った周辺増分符号を特徴点としたオプティカルフローにより、車両であるか路面の図柄であるかを判定する方法について説明する。オプティカルフローには、ブロックマッチング法、あるいは勾配法などの手法があるが、以下ではブロックマッチング法を用いて説明する。
図20は周辺増分符号を特徴点としたブロックマッチング法の概要を示す説明図である。図20は、フレームが(t−1)(前フレーム)のマスク処理後画像と、フレームがt(後フレーム)のマスク処理後画像とを示す。マスク処理後画像には、マスク処理後に残った周辺増分符号が特徴点として存在する。周辺増分符号を特徴点としたブロックマッチング法は、フレームtのマスク処理後画像の注目画素を中心とするブロックBをテンプレートとし、フレーム(t−1)のマスク処理後画像の探索範囲G中を探索し、周辺増分符号を特徴点とする差分評価関数の値を最小とする領域を注目画素の対応点とする手法である。
差分評価関数は、例えば、ブロックB内の各画素の周辺増分符号と探索範囲G内の各画素の周辺増分符号との差分の2乗を画素毎に加算し、加算値が最も小さくなる(相関が最も大きい)ときの位置を注目画素の対応点とすることができる。
画素判定部17は、第1撮像時点(例えば、フレーム(t−1))で撮像した撮像画像の注目画素の第1周辺増分符号をマスク符号でマスク処理した第1マスク処理後周辺増分符号、及び第2撮像時点(例えば、フレームt)で撮像した撮像画像の注目画素の第2周辺増分符号をマスク符号でマスク処理した第2マスク処理後周辺増分符号に基づいて、注目画素が移動したか否かを判定する判定手段としての機能を有する。
画素判定部17は、フレーム(t−1)の第1マスク処理後周辺増分符号及びフレームtの第2マスク処理後周辺増分符号を特徴点としたブロックマッチング法により、注目画素が、2つの撮像時点間で移動したか否かを判定する。なお、2つの撮像時点のフレームとしては、隣り合うフレームでもよく、いくつかのフレームが間引きされた、複数のフレーム分だけ時間が離れたフレームでもよい。
ヘッドライトの光による路面反射で図柄等が撮像された場合でも、撮像画像上の図柄等の位置には変化がないので、2つの撮像時点間で移動していない画素は、図柄等として除外することができ、路面の図柄などの移動体でないものを誤って移動体として検出することを防止することができ、高精度で移動体を識別することができる。
候補領域抽出部14は、画素判定部17で移動していないと判定した注目画素を除外し、除外した後の画素で構成される移動体候補領域を抽出する。
移動体識別部15は、抽出した移動体候補領域に基づいて、移動体を識別する。路面反射などにより映し出された図柄等を除外することができ、移動している画素で構成される移動体候補領域だけを抽出することができるので、精度良く移動体を識別することができる。
また、移動体識別部15は、画素判定部17で移動したと判定した注目画素の感知ループSでの数に基づいて、移動体を識別する。感知ループS内で移動したと判定された画素数が、所定の画素閾値を超えた場合には、道路上の感知領域に車両が進入したと判定することができ、感知領域に図柄等が描かれている場合でも、移動体の有無を確実に行うことができる。
図21及び図22は昼間車両が走行する様子を示す撮像画像の一例であり、図23は路面反射がない場合の撮像画像の周辺増分符号の様子を示す説明図である。図21はフレーム(t−1)での撮像画像を示し、車両が感知ループS内に進入し始めた状態を示す。また、図22はフレーム(t−1)より後のフレームtでの撮像画像を示し、車両が感知ループS内にほぼ入った状態を示す。また、図23は、それぞれフレーム(t−1)、フレームtでのマスク処理後の撮像画像の周辺増分符号の状態を示す。図23において、升目の1つは画素を示す。また、横線が付された画素は、周辺増分符号が除去されずに残存している画素を示す。
図23に示すように、ブロックマッチング法により、フレーム(t−1)、フレームtの間で移動していると判定された画素に基づいて、車両が存在すると識別することができる。
図24及び図25は夜間車両が走行する様子を示す撮像画像の一例であり、図26は路面反射がある場合の撮像画像の周辺増分符号の様子を示す説明図である。図24はフレーム(t−1)での撮像画像を示し、車両のヘッドライトが路面上の図柄を照らしている状態を示す。また、図25はフレーム(t−1)より後のフレームtでの撮像画像を示し、車両のヘッドライトが路面上の図柄を照らしている状態を示す。また、図26は、それぞれフレーム(t−1)、フレームtでのマスク処理後の撮像画像の周辺増分符号の状態を示す。図26において、升目の1つは画素を示す。また、横線が付された画素は、周辺増分符号が除去されずに残存している画素を示す。
図26に示すように、路面上の図柄は、ヘッドライトの光により照らされて映し出されたとしても、ブロックマッチング法により、フレーム(t−1)、フレームtの間で移動しないと判定されるので、車両であると誤検出されることがなく、車両が存在しないと識別することができる。
次に、本実施の形態に係る移動体識別装置100の動作について説明する。移動体識別装置100は、上述したように、周辺増分符号をマスク符号でマスク処理して移動体を識別する処理、撮像装置1の揺れを防止するための揺れ対策処理、車両やその他の物体による影を除去するための影対策処理、ヘッドライトによる路面反射による図柄等を除去するための路面反射対策処理などを行う。
図27及び図28は本実施の形態に係る移動体識別装置100の揺れ対策及び影対策を含む処理手順の一例を示すフローチャートである。図27及び図28の例では、感知ループSを用いて移動体の識別を行う。制御部10は、入力画像を取得し(S11)、取得した入力画像上で注目画素を順次走査して、周辺増分符号を算出する(S12)。
制御部10は、算出した周辺増分符号を、マスク符号画像を用いてマスク処理を行う(S13)。この場合、マスク符号画像は、図11、図12、図13に示した揺れ幅に相当するマスク画素にマスク符号を膨張(拡散)させたものを用いる。なお、撮像装置1の揺れが発生しない場合には、マスク符号をマスク画素に膨張させていないものを用いることもできる。
制御部10は、マスク処理後画像の注目画素の周辺増分符号の有効成分の残存数が閾値(例えば、2)以上であるか否かを判定し(S14)、周辺増分符号の有効成分の残存数が閾値以上である場合(S14でYES)、周辺増分符号の有効成分の残存数が所定値(例えば、3)に等しいか否かを判定する(S15)。なお、ステップS15では、注目画素が影の境界線の画素であるかを判定する。
マスク処理後画像の注目画素の周辺増分符号の有効成分の残存数が所定値に等しくない場合(S15でNO)、制御部10は、注目画素が影の境界線ではないとして、当該注目画素を、車両候補領域を構成する画素として抽出する(S16)。
注目画素の周辺増分符号の有効成分の残存数が閾値以上でない場合(S14でNO)、制御部10は、当該注目画素をノイズとして除外する(S17)。すなわち、制御部10は、当該注目画素の周辺増分符号を除去(無効に)する。
マスク処理後画像の注目画素の周辺増分符号の有効成分の残存数が所定値に等しい場合(S15でYES)、制御部10は、当該注目画素を影(影の境界)として除外する(S18)。すなわち、制御部10は、当該注目画素の周辺増分符号を除去(無効に)する。
制御部10は、入力画像のすべての画素について処理が終了したか否かを判定し(S19)、すべての画素の処理を終了していない場合(S19でNO)、ステップS14以降の処理を繰り返す。
入力画像のすべての画素について処理が終了した場合(S19でYES)、制御部10は、感知ループS内における抽出画素(周辺増分符号が存在する画素)の画素数が下限値以上であるか否かを判定する(S20)。抽出画素数が下限値以上である場合(S20でYES)、制御部10は、抽出した画素で構成される車両候補領域を車両として識別する(S21)。すなわち、制御部10は、車両ありと判定する。
感知ループS内における抽出画素(周辺増分符号が存在する画素)の画素数が下限値以上でない場合(S20でNO)、制御部10は、車両なしと判定する(S22)。制御部10は、処理を終了するか否かを判定し(S23)、処理を終了しないと判定した場合(S23でNO)、ステップS11以降の処理を行い、処理を終了すると判定した場合(S23でYES)、処理を終了する。
なお、感知ループS内での車両の検出ではなく、撮像画像全体で車両を識別する場合には、図28のステップS20以降の処理に代えて、例えば、制御部10は、抽出した画素に対してラベリング処理を行い、同じラベルが付与された連結領域の外接矩形領域を車両候補領域として抽出し、抽出した車両候補領域と予め記憶しておいたパターンとのパターンマッチングなどの手法により、車両か否かを判定するようにすればよい。
図29は本実施の形態に係る移動体識別装置100の路面反射対策を含む処理手順の一例を示すフローチャートである。制御部10は、入力画像を取得し(S51)、取得した入力画像上で注目画素を順次走査して、周辺増分符号を算出する(S52)。
制御部10は、算出した周辺増分符号を、マスク符号画像を用いてマスク処理を行う(S53)。これにより、マスク処理後画像を得る。この場合、マスク符号画像は、図11、図12、図13に示した揺れ幅に相当するマスク画素にマスク符号を膨張(拡散)させたものを用いてもよく、あるいは、撮像装置1の揺れが発生しない場合には、マスク符号をマスク画素に膨張させていないものを用いることもできる。
制御部10は、1フレーム前のマスク処理後画像があるか否かを判定し(S54)、1フレーム前のマスク処理後画像がない場合(S54でNO)、ステップS51以降の処理を行う。1フレーム前のマスク処理後画像がある場合(S54でYES)、制御部10は、2つのフレームにおけるマスク処理後画像の周辺増分符号を特徴点として、ブロックマッチング処理を行う(S55)。なお、ブロックマッチング法に代えて勾配法など他のオプティカルフローを用いることもできる。
制御部10は、2つのフレーム間で移動しない画素があるか否かを判定し(S56)、移動しない画素がある場合(S56でYES)、当該画素を路面反射として除外する(S57)。すなわち、この場合、制御部10は、当該画素を車両ではなく、路面反射の影響による路面上の模様や図柄として除外する。
2つのフレーム間で移動しない画素がない場合(S56でNO)、すなわち、移動する画素がある場合、制御部10は、移動した画素を抽出し(S58)、抽出した画素で構成される領域を車両として識別する(S59)。なお、車両を識別する方法は、上述したように、感知ループSを用いてもよく、撮像画像全体で車両を識別してもよい。
制御部10は、処理を終了するか否かを判定し(S60)、処理を終了しないと判定した場合(S60でNO)、ステップS51以降の処理を行い、処理を終了すると判定した場合(S60でYES)、処理を終了する。
本実施の形態に係る移動体識別装置100は、上述の図27及び図28の処理だけを行うこともでき、あるいは、図29の処理だけを行うこともでき、あるいは、図27から図29までの処理を含めた処理を行うこともできる。
移動体識別装置100は、CPU、RAMなどを備えた汎用コンピュータを用いて実現することもできる。すなわち、図27、図28及び図29に示すような、各処理手順を定めたプログラムコードをコンピュータに備えられたRAMにロードし、プログラムコードをCPUで実行することにより、コンピュータ上で移動体域別装置を実現することができる。
従来、撮像装置の揺れ対策は、例えば、撮像装置の揺れ量を予め計算しておき、揺れ分を補正する方法があったが、画像全体に対して補正処理を行う必要があり、このためには特殊な専用のハードウェアを準備する必要があり計算コストが高くなる場合があった。本実施の形態では、従来のような補正処理を行う必要がなく、想定される揺れ幅を定数として設定するだけで安価に揺れ対策を行うことができる。また、従来の揺れ対策は、路面上の図柄部分をマスクする方法もあるが、図柄部分に車両の一部が存在する場合、車両を構成する画素までマスクされてしまい、車両としての特徴量が減少するので車両の識別精度が低下する場合があった。本実施の形態では、従来のようなマスクが不要であり、車両の識別精度を向上させるとともに、リアルタイムで識別処理を行うことができる。
上述の実施の形態では、環境変化にロバストなマスク符号を用いて、入力画像の周辺増分符号からマスク符号を除去するマスク処理を行うので、環境変化にロバストな移動体識別装置を実現することができる。また、背景画像のマスク符号としては、時間によって変化しない固定のマスク符号と、時間経過に応じて変化する可変マスク符号とを用いるので、固定のマスク符号で路面表記又は道路標識を除去することができるとともに、可変のマスク符号により建物の影、あるいは木の影など時間とともに移動するような影も除去することができる。
上述の実施の形態では、影の境界上における周辺増分符号が特有の値を持つことに着目して、効果的に影を除去することができ、車両などの移動体が存在すると誤検出することを防止して、移動体の識別精度を向上させることができる。
また、従来、路面反射の対策として、車両のヘッドライトをモデル化し、入力画像の中からヘッドライトのモデルを探索する手法があったが、撮像装置のカメラ画角又はカメラ絞り値などによってヘッドライトの映り方は様々となり、モデル化しても必ずしも正確にヘッドライトを探索することができない。本実施の形態では、ヘッドライトのモデル化は全く不要であり、ヘッドライトの路面反射には移動フローが少ないことを利用して、精度よく路面反射か移動体かを判定することができる。
以上に開示された実施の形態及び実施例は、全ての点で例示であって制限的なものではないと考慮されるべきである。本発明の範囲は、以上の実施の形態及び実施例ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての修正や変形を含むものと意図される。