以下、本発明の構成を図面に示す実施形態に基づいて詳細に説明する。
図1から図29に本発明の画像処理による侵入物体検出方法および装置およびプログラムの実施の一形態を示す。この侵入物体検出方法は、まず撮影画像内に監視ラインを設定し、監視ラインごとに時空間画像を作成し、監視ライン上で画素の輝度値の時系列変化が大きい画素を検出して、検出された画素によって時空間画像上に形成される線分(以下、変化パスという)の傾きの大きさを求める。更に、求められた変化パスの傾きの大きさによって、侵入物体の移動速度を推定し、移動速度の速い侵入物体を捉えた監視ライン上の画素を含む、撮影画像を予め分割しておいた区画に優先順位を設定し、その区画の優先順位に従って、区画内に撮影された画像と予め用意された侵入物体テンプレートとのマッチングにより区画内に侵入物体が存在しているか否かを判定するようにしている。
本発明の画像処理による侵入物体検出方法および装置およびプログラムは、例えば、図1に示すように、監視ライン設定(S1)、新規撮影画像入力(S2)、ライン監視処理(S3)、優先区画決定処理(S4)と、侵入物体判定処理(S5)と、侵入物体検知画像記録(S6)からなる。尚、図21に侵入物体検出装置のハードウェア構成図の一例を示す。
監視ライン設定(S1)は、利用者がディスプレイなどの出力装置14で、マウス、タブレット等の入力インターフェース11を用いて画像上の必要な位置と傾きに線分領域を任意に設定するものである。出力装置14には、監視画像が表示されているものとする。監視ラインの設定は、出力装置14上で、線分の始点と終点をマウス等で指定する、または、マウス等でドラッグして線分を引くことにより設定される。主記憶装置13は、指定された線分領域に対応する部分の監視画像上のアドレスを監視ラインとしてに記憶する。
本発明は、監視ライン上を侵入物体が通過することにより、当該侵入物体を検出するものである。そのため、監視ラインは、侵入物体の立ち入りや通過が禁止されている、または、制限されている箇所に、侵入物体が通過するような位置と傾きで設定する必要がある。そのためには、監視ラインの設定は、特定の位置や傾きにおいてのみ設定が可能であるのではなく、任意の位置と傾きで設定が可能であることが望ましい。本発明では、必要に応じた位置と傾きで監視画像上に監視ラインを設定することができるものとしているので、侵入物体の通過を捉えるために必要な位置と傾きで設定することができる。尚、監視ラインの設定数は特に限られるものではなく、一つの監視画像に対して必要な本数分を設定することができる。
監視ラインは、監視画像上に入力インターフェース11を用いて設定するものであるが、例えば、侵入物体が通過する可能性の高い通路に設定したり、侵入禁止区域を囲むように複数設定することが効果的である。監視対象物が人物である場合には、立ち入り禁止区域や立ち入り制限区域に監視ラインを設定することが効果的である。具体的には、立ち入り禁止区域に通じる通路に設定することで侵入者を未然に検出することができる。また、監視ラインを立ち入り禁止区域を囲むように複数設定することで当該区域への侵入者を検出することができる。なお、監視対象は人物に限られるものではなく、車両、動物などであってもよい。例えば、監視対象が車両であれば、車両通過禁止区域に監視ラインを設定することで、車両の通過の検出を行うことができ、また、監視対象が動物であれば、動物園における動物の行動監視などにも用いることができるものである。
図5に監視ラインの設定の一例を示す。本実施形態では、例えば、電力会社内の充電部への人物の接近監視や侵入禁止領域での侵入監視を行うものとし、電力会社内の充電部への人物の接近を監視する監視画像から、侵入者の検出を行うものとしている。電力会社構内にある充電部は、人物が不用意に接近することは危険であるので立ち入り制限がされている場所である。このような場合は、電気所構内の充電部を囲むように監視ラインを設定することにより、人物の充電部への接近を検出することができ、事故を未然に防ぐことが可能となる。尚、本実施形態では、屋外での監視を行っているが、監視場所は屋外に限られるものではなく、屋内での監視も可能である。例えば、電気所構内の充電部を囲むように3本の監視ラインを設定することができる。このように、人物の立ち入りが制限されている場所を囲むように、任意の位置と傾きで監視ラインを設定することができることとしている。
新規撮影画像入力(S2)は、監視カメラにより撮影された監視画像(例えば、720×480画素)をTVレート(30画像/秒)で、取得するものとする。尚、撮像手段は監視カメラに限定されるものではなくビデオカメラ等の撮像装置であってもよい。また、撮像手段は、本装置とは別途設置されていてもよく、例えば、撮影画像はインターネット網等を通じて取得するようにしても良い。また、フレームレート数もTVレートに限るものではない。尚、撮影画像はカラー画像であっても、グレースケール画像であっても良い。また、解像度も上記の解像度に限定されるものではない。
ライン監視処理(S3)は、監視ライン毎に時空間画像を作成するものとする。図2に時空間画像の一例を示す。時空間画像2とは、監視画像1上に設定された監視ライン3上のすべての画素を撮影フレーム(1からn番目まで)順に並べて作成する画像をいう。ここで、nは監視画像のフレーム数を示している。時空間画像は、更新されるものであり、nフレーム分の監視画像を取得したら、その後は常に更新されていくものである。尚、nはパラメータであり任意に設定することができる。尚、フレーム数とフレームレート数から記録時間t(撮影時間)も求めることができる。
図3及び図4に、人物が通過した監視画像上のある画素値における輝度値の変化を計測した結果を示す。図4は、図3で示す監視画像内の×点部分8の輝度値(約600フレーム分)の時系列変化を示したものである。図4は、約400〜500フレームにかけて人物が通過する様子を示している。人物が通過するときに輝度値が大きく変化する(400〜500フレームにかけての標準偏差11.4)が、その他のフレームでは平均輝度値を前後しながら微小な変化(100画像分の輝度値の標準偏差1.4)であることがわかった。×点部分8には、通常、アスファルトが撮影されている。同一の背景が撮影されている間は、画素の輝度値もほとんど変化しないが、侵入物体(人物)が×点部分を通過する地点で、大きな輝度値の変化が捉えられた。これにより、ある画素における輝度値のフレームごとの時系列変化を捉えることで、侵入物体の検出に用いることができることがわかった。
以上より、監視ライン上における画素の輝度値の時系列変化は、侵入物体が通過をしたときに大きな変化を示すことがわかった(図3及び図4)。即ち、撮影画像に設けられた監視ライン上の各画素の輝度値が一定時間の時系列変化が大きく変化した画素を抽出することにより、侵入物体の検出を行うことができることとなる。本実施形態では、画素の輝度値の時系列変化を捉えるため、監視画像上の画素の輝度値が予め設定した閾値以上となる画素を検出するようにしている。尚、本実施形態では、時系列変化を捉える基準として、画素の輝度値を基準としているが、各画素の色彩情報を基準として予め設定した閾値以上となる画素を抽出しても良い。
監視ライン上において、輝度値が大きく変化した画素(以下、変化点という)を抽出するようにしている。本実施形態においては、変化点を抽出するために、標準偏差を用いたシグマバンドを用いている。具体的には、時空間画像に新規に追加された監視画像の監視ラインの各画素位置の輝度値と1フレーム前までの各画素位置で求めた輝度値の平均値との差が、1フレーム前までの各画素位置での輝度値の平均値に対して求めた標準偏差の予め設定した閾値倍以内に収まるかで否かで変化点の抽出を行うものとしている。これにより、新規に追加された監視画像の監視ラインの各画素位置の輝度値が、同一の画素位置での輝度値に対して、どれくらいの変化をしているかを判断し、大きな変化をしたものを捉えることとしている。
なお、標準偏差に対して設定する閾値は任意に設定することが可能であり、侵入物体、背景変化に応じて適宜設定することができる。例えば、閾値を低く設定しておけば、より微小な輝度値の変化を検出することができるので、ノイズの少ない屋内での監視の場合等には有効である。また、検出する侵入物体に応じて最も効果的に検出可能な閾値を予め実験等により求めておくことで、ノイズの誤検出を減らすことができる。尚、本実施形態では、シグマバンドを用いて変化点の抽出を行っているが、変化点の抽出は、これに限られるものではない。例えば、輝度値平均から予め設定した閾値以上離れた輝度値を示した画素を変化点として抽出しても良い。尚、閾値の設定は必ずしも必要なものでなく、閾値の設定をせずに、標準偏差(1σ)を超えた画素を抽出するようにしても良い。
また、本実施形態においては、変化点を複数フレームに渡って検出した場合(以下、基準とするフレーム数を変化判定画像数とする)にのみ、その連続した変化点を変化パスとして抽出することとしている。変化点は、侵入物体の通過だけでなく、ノイズ(ブラックノイズ、太陽光の変化、陽炎、カメラ前での虫や鳥の通過など)による単発的な輝度値の変化によっても起こりうる。このため、変化判定画像数以上に渡って変化点を検出した場合のみ変化パスとして抽出することで、単発的な輝度値の変化を除くこととしている。これにより、ノイズの除去を行うこととしている。尚、変化判定画像数は任意に設定可能なパラメータであるので、撮影環境、監視対象物に応じて任意に設定することができる。
また、複数フレームに渡り連続する変化点を変化パスとして抽出することとしているが、侵入物体の通過により変化点が連続して捉えられている場合でも、ノイズの発生により逆に変化点として検出されない範囲の輝度値を示してしまうことで、変化点として抽出されず変化点の連続が途切れてしまう場合がある。この場合、変化パスとして抽出されない場合も起こりうるので、監視ライン上の変化点を周辺の画素に拡張しておく処理を行っている。例えば、本実施形態では、監視ライン上で変化点として検出された画素位置の監視ライン上の両隣に位置する画素も変化点として記録しておく処理をしている。このように、変化点の拡張処理をしておくことで、変化点の連続が途切れて、変化パスとして検出されなくなることを防いでいる。尚、拡張範囲は、任意に設定することができるものであり、両隣の画素に限られるものではない。本拡張処理は、必ずしも必要な処理ではない。例えば、ノイズの発生が少ないと考えられる場合などにおいては、省略してもよい。
なお、時空間画像の更新は、First In First Out(以下、FIFOという)を用いておこなうこととしている。時空間画像の作成フレーム数nは、予め任意に設定することができる。例えば、60画像にすれば、60フレーム(2秒間)に渡る時空間画像を記録しておくことができる。時空間画像の更新は、具体的には、最新の撮影画像の監視ライン上の画素を時空間画像の最下位行に追加し、最上位行(最も前の撮影画像)を削除する処理を行うものである。これにより、常に最新フレームについてデータ処理を行い、一定時間経過後のフレームを削除することとしているので、複数フレームを同時に処理する方式に比べて、データ処理量を減らすことができる。尚、時空間画像の更新方式はFIFOに限られるものではなく、例えば、複数フレームを同時に追加、削除を行っても良い。
次に、図6に時空間画像における侵入物体と静止物体の変化点を記録し、線分として示したもの(以下、変化点記録ラインという)を示す。監視画像1上の監視ライン3から作成した時空間画像2を示している。尚、4aは侵入物体の変化点記録ライン、変化5は静止物体の変化点記録ラインを示している。例えば、変化点記録ライン4aは、侵入物体6が矢印の方向に進んだ場合の変化点記録ラインを表している。侵入物体6が、監視ライン上を通過することに伴って、変化点も監視ライン上を移動をするが、時空間画像は絶えず更新されていくので、変化点の連続を捉えた変化点記録ラインは線分4aのような傾きを持つ線分を描くこととなる。尚、監視ライン3は、実際は線分領域であるが、理解を容易にするために、図6及び図7においては、一定の幅を持たせた記載としている。
また、監視ライン3上において侵入物体が通過していない部分は、撮影時間に渡って、同じ背景や建物などの静止物体が撮影されているので、画素の輝度値の変化は微小である。本来であれば、静止物体の画素値はほとんど変化しないので変化点としては、抽出されないが、ここでは、理解を容易にするために静止物体の画素値を抽出し、時空間画像上で侵入物体と同様に静止物体の変化点記録ライン5を示すと、時系列方向に平行に近似した垂線を描くこととなる。即ち、時空間画像上では、侵入物体は傾きを持つ線分を描き、静止物体は垂線を描くことがわかる。
また、図7に時空間画像における2つの侵入物体の変化点記録ラインの一例を示す。侵入物体の変化点記録ライン4bは、記録時間tに渡り監視ラインを通過したことを示す。また、侵入物体の変化点記録ライン4cは、記録時間tの約1/2分の時間で監視ラインを通過したことを示している。即ち、移動速度が速い侵入物体は、監視ライン上を短い時間で通過するので、侵入物体4cの方が侵入物体4bよりも移動速度が速いことが推定される。ここで、本実施形態では、変化点が変化判定画像数c(例えばc=4)以上に渡って記録された場合に変化パスとして抽出することとしている。変化パス7bと変化パス7cに着目すると、変化パス7bは、変化点記録ライン4bの4画像分の線分であり、変化パス7cは、変化点記録ライン4cの4画像分の線分である。ここで、監視ラインと、変化パスとの間の角度に注目すると、変化パス7cの方が変化パス7bより傾きが大きい(監視ラインと、変化パスとの間の角度が小さい)ことがわかる。侵入物体の変化パスは、移動速度が速いほど、変化パスの傾きは大きくなり(監視ラインと、変化パスとの間の角度が小さくなる)、逆に、移動速度が遅い侵入物体の変化パスは傾きが小さくなる(監視ラインと、変化パスとの間の角度が大きくなる)こととなる。本発明は、これを利用して、時空間画像内での変化パスの傾きの大きさから侵入物体の移動速度を推定することとしている。本実施形態では、監視ライン上の各画素位置で、監視ラインと変化パスとの間の角度に比例する変数を求め、これを記憶装置等に記録することとしている。
また、侵入物体が監視ラインに対し、垂直に通過した場合は、変化パスは垂線を描くので、検出できない場合も考え得るが、現実には侵入物体は、一定の幅を持つ物体であるので監視ラインに対してまったくの垂直に通過する(数フレーム間に渡って垂直である)ことは起こりにくい。また、本発明では、このような事態を避けるよう、監視ラインの設定をすることができることとしている。例えば、2本の監視ラインを傾きを変えて並べて設定しておけば、垂直に通過する物体もどちらかの監視ラインで検出可能である。更に、上記述べているデータ処理は、すべて撮影画像の1フレーム分での処理であり、現実には、撮影フレーム分処理が繰り返されるものである。このため、あるフレームにおいて、たまたま侵入物体が監視ラインに対し垂直に移動し、監視ラインと変化パスとの間の角度が大きくなって移動速度を遅いものと検出したとする。この場合、侵入物体の移動速度がどんなに速くても、侵入物体が通過するまでには、数フレームに渡って撮影されるものである。これを考慮すれば、1フレームの処理において検出を失敗しても、侵入物体の通過中のいずれかのフレームで検出処理が可能であれば、監視装置としての役割を果たすことができることとなる。
また、侵入物体は、一定の幅を持つ物体であるので、侵入物体が監視ラインを通過する際に検出される変化点は、通常、監視ライン上の複数の画素に連続して検出されることとなる。即ち、検出された変化点のすべてについて変化パスを求めても、隣接する画素であれば同一の物体を検出していることとなるので、本実施形態においては、変化点の連続する時空間画像上の画素の0行地点での中点と、c行(c=変化判定画像数)地点での中点を繋いで変化パスとして抽出することとしている。これにより、一の侵入物体につき一の変化パスを抽出することとしている。
優先区画決定処理(S4)は、監視画像を少なくとも一以上の区画に予め分割し、分割された区画に対して、侵入物体判定処理(S5)を行うための優先順位を設定するためのものである。監視ライン上で変化パスが検出できた全画素に対して侵入物体判定処理を行うとデータ処理量が大きくなり、迅速な処理ができない。そこで、監視画像を少なくとも一以上の区画に分割し、当該区画に優先順位を設定して、その優先順位の高い区画から順番に侵入物体判定処理をおこなうことで、監視画像全体に侵入物判定処理をすることなく、侵入物体の検出を行うこととしている。これにより監視画像全体をデータ処理する方式に比べ、データ処理量を減らすことができ、実時間処理を可能にしている。
尚、監視画像の分割は予め設定しておくものとする。監視画像の分割は、例えば、監視画像をm画素単位の、p×q個の区画に分割するものである。例えば、画像全体が100×100画素の場合は、p=10、q=10と設定すれば、100画素単位に100区画に分類するものである。尚、区画は、出力装置14等でp、qを指定し、監視画像の区画を主記憶装置13に記憶させることによって設定する。尚、区画の設定方法は、これに限られるものではない。例えば、分割する区画数を入力することにより、区画の設定を行っても良い。
本実施形態では、優先順位の設定は、移動速度の速い侵入物体を見逃さないようにするため、分割された各区画内に速い侵入物体が含まれる順に優先順位を決定するものとしている。移動速度が速い侵入物体が、監視対象としている侵入物体である可能性が高いと考えられるので、より効果的に監視を行うことができるからである。移動速度が速い侵入物体の時空間画像内での変化パスは、傾きが大きくなるので、傾きの大きな変化パスを含む区画の順番にしたがって優先順位を決定するものとしている。
前記ライン監視処理(S3)により求めた監視ラインと変化パスとの間の角度に比例する変数に、後述する侵入物体判定処理で設定される重み係数(一つ前のフレームでの侵入物体判定処理の結果により定まる係数)をかけて監視ライン上の各画素に対する重み値を求めることとしている。次に、区画内で最大となる画素の重み値を、その区画の区画値として設定し、区画値の大きい順に区画に優先順位を設定するものとしている。尚、監視画像全体を分割した区画のうち、データ処理の対象とするのは、監視ラインを含んでいる区画のみである。具体的には、監視ライン設定(S1)で記憶された、線分領域(監視ライン)の画素のアドレスを、一つでも含んでいる区画を抽出して、さらに、そのうちで移動速度が速い侵入物体を含む区画に対して、移動速度の速い順番に優先順位を設定し、優先順位に従って、侵入物体判定処理を行うものとしている。優先順位は、例えば、侵入物体の移動速度が速い順に1,2,3…と順番に区画に優先順位をつけてもよいが、優先順位の付与方法は、これに限られるものではない。尚、優先順位に対して、実際に侵入物体判定処理を行うための閾値を設定することも可能である。例えば、閾値を3とした場合、優先順位が3までの3つの区画に対し、次の侵入物体判定処理を行うこととする。閾値を1とし、撮影画像の1フレーム分の処理において最大の区画値を示した区画についてだけ侵入物体判定処理を行うこともできる。尚、優先順位を設定せずに、監視ライン上で変化パスを検出した、すべての画素において侵入物体判定処理を行うようにしても良い。
監視ラインを含む区画に限定してデータ処理を行っているので、画像全体をデータ処理を行う必要がなくデータ処理量を減らすことができる。さらに、優先順位が設定された区画についてだけ、侵入物体判定処理を行うこととしているので、データ処理量を大幅に減らすことができる。尚、変化パスが検出されたすべての画素について侵入物体判定処理を行っても良い。また、予め監視画像全体を区画に分割しているのは、区画が重複して、同一の画素に対するデータ処理の重複を避けることができるという理由によるものである。したがって、重複部分の画素のデータ処理を除く処理を行う、又は重複部分のデータ処理を複数回行うようにすれば、撮影画像のうち監視ライン近辺のみを区画に分割して、その区画を優先区画として設定するようにしても良い。
侵入物体判定処理(S5)は、優先区画決定処理(S4)において設定された優先順位に従って、区画と侵入物体テンプレートをテンプレートマッチングにより判定する処理を行う。侵入物体判定処理の結果、区画内に侵入物体がいないと判定した場合と、侵入物体が存在すると判断した場合により、重み係数に異なる値を設定することとしている。重み係数は、次フレームの画像処理において、変化パスの傾きに比例する変数を求める際に用いられ、変数の値を更新する。これにより、優先順位を決定する重み値が更新されるので、結果として、区画の優先順位が更新されるものである。
本実施例では、予めサポートベクタマシンに学習用データとして記憶させた侵入物体の画像を判定処理に用いることとしている。これにより、精度の高い侵入物体判定処理を行うことを可能としている。尚、侵入物体の画像に加えて、侵入物体以外の画像(背景画像等)も学習用データとして同様に記憶させることにより、判定結果の精度を上げることができる。具体的には、侵入物体画像と侵入物体以外の2種類の画像集合を、例えば、Haarウェブレット方式で変換した画像を用いてサポートベクタマシンで侵入物体テンプレートを事前に作成しておくことによる。尚、Haarウェブレットとは、最も単純なウェブレット関数の一つである。尚、侵入物体テンプレートは、サポートベクタマシンで作成されたテンプレートに限られるものではなく、既存のテンプレートを予め計算機の記憶装置等に記憶させておく、または、本装置とは別途、外部の記憶装置に記憶させておいても良い。
また、本実施形態では、テンプレートマッチングに際し、人物画像と人物以外の画像(人物が撮影されていない監視画像の背景画像から任意に採取した画像)の2種類の画像集合を準備することとしているが、人物以外の画像は、必ずしも必要ではなく、人物画像のテンプレートがあれば判定可能である。人物以外の画像を予めサポートベクタマシンに記憶させておくことにより判定精度を上げることができる。また、車両の監視を行う際には、人物画像に代えて車両の画像を、動物の監視を行う際には、動物の画像を用意することにより、同様にテンプレートマッチングを行うものである。
また、マッチング方式は例えば、監視カメラで撮影した画像から、侵入物体テンプレートとの比較により人物を検出する方法(非特許文献1参照)を用いることととしているが、これに限定されるものではない。例えば、面積相関法などの他のテンプレートマッチング手法を用いても良い。
侵入物体検知画像記録(S6)は、監視画像のうち、侵入物体が検出された画像を記憶するものである。尚、監視画像は、侵入物体の検出の有無にかかわらず、撮影中継続して記録しても良い。また、一定時間ごとに、監視画像の記憶領域を更新しながら、監視画像の記録をおこなってもよい。尚、侵入物体検知画像の記録は、侵入物体の記録を残すためのものであるので、実時間処理が可能な本発明においては、侵入物体の検出と同時に警報を出すことができるので、必ずしも画像の記録は必要ではない。また、画像を記録する際も、本装置により行う必要はなく、例えば、インターネット網を通じて他のハードウェアで記録し、通報をおこなうようにしてもよい。
本発明は、実時間処理(約30画像/秒)が可能で、既存のソフトウェアによる人物検知に比べ高速な方式を実現している。そのため、充電部接近監視などの監視処理速度が要求される場面に活用できると考えられる。また、ソフトウェアで実現しているため、既存の画像監視システムに導入が容易である。例えば、現在、発電所1箇所あたり約30台以上の監視カメラが設置されている。今後は、さらにインターネット網を利用した監視カメラが増えると考えられるが、それらのカメラ全てに充電部接近判定用の安全監視装置を専用に準備することはコストがかかりすぎるため、実施は困難である。この点、本発明では、既設の監視カメラに接続している既存のハードウェアを用いて、ソフトウェアにより実現可能としているので、新たな設備投資の投資を行うことなく、実時間処理を可能とする監視を実現している。
さらに、本発明によれば、画素の値の変化から画像内の一部を侵入物体領域候補を抽出し、その侵入物体領域候補内で侵入物体テンプレートとの照合を行う方式としている。また、撮影画像内に監視ラインを設定することで、侵入物体の検出前における画像処理範囲を監視ライン上に限定している。このため、画像全体を処理する従来の方式に比べてデータ処理量を減らすことができる。したがって、データ処理時間を短縮することができ、侵入物体を検出すると同時に警報等を発することができるようになる。
以上に説明した侵入物体検出方法は、例えば周知のコンピュータを用いて、侵入物体検出装置として装置化できる。例えば図21に侵入物体検出装置10を示す。監視画像が撮影された映像が入力される入力インターフェース11と、原画像やテンプレート画像等のデータが記録される外部記憶装置12としてのハードディスクと、一時的な作業データ等が記録される主記憶装置13としてのRAMと、異常が検出された画像等が出力される出力装置14と、中央処理演算装置(CPU)15等を備えている。上記のハードウェア資源は例えばバス16を通じて電気的に接続されている。入力インターフェース11は、例えば監視カメラから入力される又は映像が記録されたDVD等の媒体から読み込まれる信号をコンピュータでの処理が可能なデータに変換する機能や、映像を構成する各フレームをそれぞれ画像データとして外部記憶装置12に記録する機能を有する。このような入力インターフェース11として、例えば既存のNTSC−RGBコンバータやフレームグラバまたはパーソナルコンピュータ用画像取り込みボード等を利用して良い。出力装置14は、例えばディスプレイであり、異常が検出された画像やユーザインターフェース画面などが表示される。また、外部記憶装置12には本発明の侵入物体検出プログラムが記録されており、当該プログラムがCPU15に読み込まれ実行されることによって、コンピュータが侵入物体検出装置10として機能する。
次に、本実施形態の侵入物体検出プログラムによって、侵入物体検出装置10が人物の侵入を監視する場合に実行する処理の一例を、図22から図29までに示すフローチャートに沿って説明する。図22に侵入物体検出装置10が実行する処理の概要フローチャートを示す。まず、監視カメラから撮影画像を取り込みを行う(S101)。次に、監視ラインの設定を行う(S102)。尚、[no]は、監視ラインを示すプログラム上の変数である。監視ライン[no]は複数設定することができるので、設定した監視ライン数分、以下の処理(S104からS108)の処理を繰り返す(S103)。尚、S103にある、「no=1,監視ライン数,1」の記載は、一本目の監視ライン[no]から、設定する監視ライン数まで、noに1ずつ加えながら(以下、インクリメントという)、ループ処理を行うことを示している。(「a,b,c」の記載は、aにcずつ加えながらbまで処理をループさせることを意味している。以下、同様とする。)次に、監視ラインでの各画素位置で輝度値の標準偏差を算出し(S104)、監視ラインの時空間画像の更新と変化点の検出し(S105)、監視ラインの時空間画像内での変化点の拡張(S106)処理を行う。そして、指定フレーム数(変化判定画像数)に渡る変化があれば(S107;Yes)、時空間画像内での変化の長さ(傾き)の検出を行い(S108)、変化がなければ(S107;No)時空間画像内での変化の長さ(傾き)の検出処理は行わない。そして、全監視ラインから変化が重み値が最大である画素を含む区画を選択し(S109)、人体テンプレートとのマッチングを行い、人物判定を行うこととしている(S110)。人物判定結果により重み係数を更新するようにしている(S111)。人物判定結果について結果の出力(S112)を行う。人物を検出した場合は、検出結果の出力と同時に警報を発する処理を行うこととしている。尚、上記の処理は、監視画像のすべてのフレームについて実行されるものであるので、監視画像を撮影している間に渡って実行されるものである。監視画像が終了した場合に、本処理は終了する。
図23に、監視ラインの設定処理(S102)を詳細化したフローチャートを示す。侵入物体検出装置10は、出力装置14上で指定された始点と終点の画像上のアドレスを記憶し(S102−2)、始点と終点の指定により確定する線分領域の画像上のすべてのアドレスを主記憶装置に記憶する(S102−3)。以上の処理(S102−2からS102−3まで)を設定する監視ライン数分繰り返す(S102−1)。以上で監視ライン設定処理を終了する。
監視ライン設定処理の終了後、ライン監視処理を行なう(S103からS108まで)。図24にライン監視処理を詳細化したフローチャートのうち、平均値、標準偏差の算出処理を示すフローチャートを示す。この処理では、先ず、平均値カウンタaを0にセットする(S104−2)。そして、水平画素位置xでの輝度値を平均値カウンタaに加える処理(S104−4)を、記録時間t(垂直画素方向)分繰り返す(S104−3)。その結果得た、平均値カウンタaを記録時間tで割って、水平画素位置xでの平均輝度を算出している(S104−5)。次に、標準偏差カウンタsに0をセットする(S104−6)。各画素位置での輝度値と平均値との差を二乗した値を標準偏差カウンタsに加えていく処理(S104−8)を記録時間t分繰り返す(104−7)。その結果得られた、標準偏差カウンタsをデータ数(t−1)で割り平方根をとって標準偏差を算出している処理(S104−9)をしている。なお、上記の処理(S104−2からS104−9まで)を、監視ライン上のすべての画素位置で標準偏差を求める処理を繰り返す(S104−1)。以上でライン監視処理のうち平均値、標準偏差の算出処理を終了する。
図25にライン監視処理を詳細化したフローチャートのうち、時空間画像の更新処理(S105)を示すフローチャートを示す。この処理では、最新の撮影画像を取得して、時空間画像上で最も時間が経過した画像を削除する処理(FIFO)を行うものである。まず、監視ラインの水平画素位置xの輝度値を、時空間画像の垂直画素方向に対し−1行に設定する(S105−2)。そして、新規追加分の輝度値と、各画素平均との標準偏差とのずれがの予め設定された閾値であるα倍以内であれば(S105−3;Yes)、記録用画像DIFの各画素に対応するフラグ領域に0を代入する(S105−4)。以下、フラグ領域とはデータ構造のうちフラグデータを格納する領域をいうものとする。α倍を超えれば(S105−3;No)、記録用画像DIFの各画素に対応するフラグ領域に1を代入し(S105−5)、変化点としている。なお、上記の処理(S105−2からS105−5まで)を、監視ラインの各画素位置で繰り返す(S105−1)。次に、時空間画像を垂直画素方向に対して上に1行シフトさせる処理(S105−7)を、時空間画像の全ての画素で繰り返す(S105−6)。以上で時空間画像の更新処理を終了する。
本実施形態の監視ラインの時空間画像内での変化点の拡張処理では、記録用画像DIFの線分をx座標に対し1座標分ずつ加算して線分を拡張し、これを作業用配列BWとして新たに記録している。さらに、作業用配列BW内の任意の指定時間(変化判定画像数c)に渡って連続的に変化する部分(作業用配列BWのフラグ領域が連続して1である部分)を検出する。具体的には、作業用配列BWの0行からc行まで作業用配列BWのフラグ領域が1である部分が連続して検出できるかどうかを判断する。c行に渡る変化点の連続を変化パスとして検出し、変化パスが検出された場合に示す時空間画像内での傾き検出処理を行うものとしている。
図26にライン監視処理を詳細化したフローチャートのうち、監視ラインの時空間画像内での変化点の拡張処理(S106)を示すフローチャートを示す。この処理では、まず作業用配列BWのフラグ領域を、初期化する(S106−1)。次に、記録用画像DIFのフラグ領域が1であれば(S106−4;Yes)、時空間画像内の変化点の領域の拡張を行う(S106−5)。なお、上記(S106−4からS106−5まで)の処理を、時空間画像のすべての画素で繰り返す(S106−2、S106−3)。以上で監視ラインの時空間画像内での変化点の拡張処理を終了する。
図27にライン監視処理を詳細化したフローチャートのうち、変化判定画像数cに渡る変化を判定する処理(S107)を示すフローチャートを示す。時空間画像内に0行目から変化判定画像数cまで連続した変化があるかどうか判定し(S107−1からS107−2まで)、変化判定画像数c行間に渡り変化が続いた部分があれば(S107−4;Yes)、処理A(図28)へ、変化判定画像数c行間に渡る変化が続いた部分がなければ(S107−4;No)、処理B(図28)へ進むものとする。この操作を監視ライン上のすべての画素で繰り返す処理(S107−3)を行う。以上で、変化判定画像数cに渡る変化を判定する処理を終了する。
図28にライン監視処理を詳細化したフローチャートのうち、時空間画像内での傾き検出処理(S108)を示すフローチャートを示す。この処理では、時空間画像内に0行目から変化判定画像数cまで連続した変化を変化パスとして検出する(S108−1)。次に、変化パスの本数を数える処理(S108−2)をし、変化パスに通し番号を付与する(S108−3)。次に、番号が付与されたパスの0行での中点と、t行での中点を求める(S108−4、S108−5)。さらに、番号を付与された変化パスの長さを計算する処理(S108−6)をし、パスの長さを計測する処理(S108−7)をおこなうものである。以上で、時空間画像内での傾き検出処理を終了する。
図29に優先区画決定処理(S109)、人物判定処理(S110)、重み更新処理(S111)のフローチャートを示す。xに監視ラインの画素の監視画像内でのx座標、yに監視ラインの画素の監視画像内でのy座標を代入し(S109−2)、各画素位置で変化パスの長さが最大値を示す画素を設定する処理(S109−3)を行う。上記処理(S109−2からS109−3まで)を監視ラインの全画素で処理をループさせる(S109−1)。次に、重み値が0以上であり(S109−5;Yes)、変化パスの長さが0であれば(S109−6;Yes)、重み値ωからパラメータγを引いた値を重み値ωとする(ただし、最小値は0としている。)処理(S109−7)を行う。変化パスの長さが0でなければ(S109−6;No)、重み値ωを重み係数βに変化パスの長さを乗じた値を代入する(ただし、ωの最大値は2としている。)処理(S109−7)を行う。上記の処理(S109−5からS109−9まで)を繰り返す処理(S109−4)を行う。さらに、重み係数βの値を初期化し(S109−10から109−11まで)、重み値ωが最大となる監視画像上の座標を検出する(S109−12)。その座標を含む区画と人物テンプレート画像とのテンプレートマッチングを行う(S110)。その結果、人物であれば重み係数βに1.0を、人物以外であれば重み係数βに0.5を代入して(S111−1、S−111−2)重み係数を更新することとしている。本実施形態の侵入物体検出プログラムにより侵入物体検出装置10が実行する監視画像1フレーム分の処理は以上で終了となり、次のフレームの処理へ移る。また、人物を判定した場合には、判定結果について結果の出力(S112)を行い、検出結果の出力と同時に警報を発する処理を行うこととしている。
本発明は、実時間処理(約30画像/秒)が可能で、既存のソフトウェアによる人物検知に比べ高速な方式となっている。そのため、充電部接近監視などの監視処理速度が要求される場面に活用できると考えられる。また、ソフトウェアで実現しているため、既存の画像監視システムに導入が容易である。
また、監視領域を監視ライン上に限定することで、画像のデータ処理範囲を限定し、処理の高速化を実現している。さらに、特にデータ処理量が多くなり時間のかかる侵入物体判定処理においても、はじめに侵入物体が存在する可能性が高い区画を絞り込んだうえで、可能性が高い区画のみにパターン認識を行うことで、データ処理量を減らしている。このように、データ処理量を減らすことで処理の高速化を実現し、実時間処理を可能としている。
なお、上述の実施形態は本発明の好適な実施の一例ではあるがこれに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々変形実施可能である。例えば、上述の実施形態ではカラー画像を原画像として各処理を行なったが、グレースケール画像を原画像として各処理を行なっても良い。また、閾値などの各パラメータ、例えば標準偏差の閾値などは、撮影条件などに合わせて適宜調節してよい。また、例えば、監視ラインを通過して検出された侵入物体の数をカウントして外部記憶装置12に記憶させておいても良い。これにより、侵入物体の検出数の記録を残すことも可能である。
(実施例)
変化点の抽出には、標準偏差を用いたシグマバンドを用いた。まず、監視ライン上の各画素の輝度値について、時空間画像の高さに対する平均値と標準偏差の値を求めた(数式1)。次に、新規撮影画像を用い時空間画像を更新する際に時空間画像の下位行に新規追加する画素の輝度値が、平均からどの程度ずれているかを、上記求めた標準偏差σを用いたシグマバンドにより判定した(数式2)。
ここでkはk番目の新規入力画像を示し、Mi k−1とIi kは、1画像前までのn画像分の輝度値の平均値と標準偏差を示す。各画素iの新規入力値と1画像前までの平均値との差が標準偏差の一定倍率α以内に収まるかどうかで判定をした。標準偏差の一定倍率α倍以上である場合にパラメータに1を、そうでなければパラメータに0を入れるものとした。尚、本実施例では、α=4とした。これにより、標準偏差の4倍の範囲のシグマバンドを超えた輝度値を示した画素を変化点として抽出した。
次に、パラメータが1である画素を変化点として検出し、変化点が変化判定画像数以上連続して検出された場合、即ち、変化点の連続部分(変化パス)を検出した場合に監視ラインに進入物体が現れたものと判断することとした。尚、本実施例では、毎秒約7.5画像以上の処理速度で人物検知ができるように変化判定画像数を4画像(c=4)に設定した。これにより、ノイズの除去が可能であることがわかった。
次に、侵入物体の移動速度に比例する変数λi kは、以下の方法により求めた。図8に時空間画像の一例を示す。時空間画像で侵入物体が作り出す変化パスの傾き角をθiとし、侵入物体の移動速度を時空間画像を使い以下のように計測した。監視ラインの各画素iでの時空間画像内での線分の傾きθiに比例する変数λi kとし、以下の式により求めた。尚、cは変化判定画像数、c’は変化判定画像数c画像内での移動軌跡長(≧c)である。βi k−1は、1フレーム前の侵入物体判定処理で決定された重み係数であり、侵入物体を検出した場合と、検出しなかった場合で、それぞれ異なる重み係数を設定する。重み係数は侵入物体判定処理で決定されるものである。
次に、監視ライン上の各画素に対する重み値ωi kは、数式4により求めた。尚、λi k監視ラインの各画素iでの時空間画像内での線分の傾きθiに比例する変数である。また、重み係数βは侵入物体判定処理の判定結果により決定された重み係数であり、侵入物体を検出した場合と、検出しなかった場合で、それぞれ異なる重み係数を設定した。(本実施例においては、人物と判断したときは1.0、人物でないと判断したときには0.5を設定し、重み値ωi kの上限値は2.0とした。)
<数4>
ωi k = min(λi k,2.0)
ただし、数式4を用いて、重み値ωi kを求めるのはλi k≠0(変化パスの長さが0でない)の場合に限られるものとした。λi k=0(変化パスの長さが0)である画素値は、変化パスが検出できていないが、侵入物体がその場に立ち止まった等の理由が考えられる。そのため、数式5により求めるものとした。(本実施例においては、ωi kの最小値は0とし、演算結果が0以下であれば0とするものとした。重み値を負に設定してしまうと、正しい優先順位の設定ができないからである。)尚、γはパラメータであり、任意に設定できるものとした。これにより、侵入物体の短時間の停止にも対応できるようにしている。パラメータγの値を大きくすると、重み値ωi kの値が低くなるので、しばらくの間、優先区画として抽出され難くなる。即ち、パラメータγにより変化パスが検出されなかった部分の重み値を、どの程度下げるかをコントロールして、優先順位をどの程度下げるかをコントロールできることとしている。
<数5>
ωi k = max(ωi k−1−γ,0)
本実施例においては、数式4または、数式5により求められた、重み値ωi kの値が各区画内で最大値を示す画素の重み値を該区画の区画値として設定し、該区画値の大きい順に優先順位を決定するものとした。
図9にサポートベクタマシンでの学習に利用した人物画像例を示す画像を示す。本実施例では、予めサポートベクタマシンで作成された人体テンプレートと区画Rmaxとのテンプレートマッチングをおこなった。(区画Rmaxは、区画のうち区画値が最大となる区画を示す。)区間Rmaxの領域にウェブレット変換を行い、人体テンプレートとのマッチングを実施した。
本実施例では画像監視形態として、電力会社構内を撮影した監視カメラ画像によって、構内の充電部への人物接近監視を実時間処理で行うこと実験を行った。なお、人物は縦横30×25画素から120×60画素程度の大きさで撮影され、毎フレーム6画素から15画素程度の歩行速度を想定した。これは、TVレート(30画像/秒)で、歩行者を想定した状況である。そのため、あるポイントで人物の通過を判定するには、最低でも毎秒7.5画像程度の処理が必要となる。以下に実験結果を示す。
図10(a)〜(c)に示す3種類の撮影画像による実験結果を示す。図10(a)に示す監視画像についての実験では、本システムの処理速度を調べるため、設備近傍を歩行する1名の被験者の検知速度を計測した。また、図10(b)に示す監視画像についての実験では撮影画像15分の前半部分(7分)で収集した人物画像を使い、後半8分の不特定多数の人物検知を行った。特に、電力会社構内では設備以外にアスファルトや花壇等が背景になる場合があるため、背景が異なった場合の人物検知を比較した。また、図10(c)に示す監視画像についての実験では、状況変化に対する頑健性を調べるため、図10(b)で学習したシステムを用いて電力設備周辺での接近監視を行った。尚、本実験は監視カメラから監視画像(720×480画素)をIEEE1394で読込み、1GBのメモリを搭載した計算機(CPUクロック数:2.4GHz)で実施した。それぞれの監視画像について、約1分4秒(1900画像)の人物検知実験により、本システムの処理速度を計測した。
図10(a)は曇りの日に撮影した照度変化の少ない画像であり、1名の被験者が電力設備に接近したり離れたりを繰返すシーンで構成されている。尚、表1に処理速度計測実験で利用した各種パラメータを示す。人物判定処理の学習に使う人物画像は、図10(a)の約1分のビデオ画像から切り出した551画像を利用した。図9に学習に使用した人物画像の一例を示す。また、学習に利用する人物画像以外の背景画像は、図10(a)の無人背景から切り出した2838画像を利用した。尚、監視ラインは画像内の電力設備フェンスを囲むように3本設定した(図11)。
図11に人物の検知例を示し、図12に撮影画像全シーンに対する人物検知の時系列結果を示す。図12のグラフ上側はライン監視処理が変化を検知した画像番号を示し、下側は人物判定処理が人物を検知した画像番号を示している。また、表2に人物が監視ラインに入ってから出るまでに一度でも反応があれば正解、監視ラインに入ってから出るまでに1度も反応がなければ未反応、人物以外の要因で反応した場合を誤反応として集計した結果を示す。(以下、この集計結果を「実験の要約結果」とする。)ライン監視処理では、3件の誤反応があるが、人物判定処理では、誤反応は0件であった。実験の結果、本システムにより実時間で人物検知ができることが分かった。また、実験画像の中から抽出した学習用の人物画像と背景画像を使うことで、人物をより高精度に検知できることが分かった。
これにより、約1分4秒の撮影画像(約1900画像)を実時間処理(30画像/秒)により処理が可能であることがわかった。表3に約1分4秒の撮影画像(約1900画像)に対する人物検知の正解率等を示す。表3のライン監視処理欄は、人物による変化を正しく検知した画像数(正解反応)、人物以外で誤反応を示した画像数(誤反応)と、人物の通過中に反応を示さなかった画像数(未反応)を示している。人物判定処理欄は、ライン監視処理に反応した470画像に対し、人物判定処理を行った結果を示している。最終結果欄では、人物が現れない画像を含め全1900画像での反応割合を示している。
次に、別の人物の画像を利用した不特定多数の人物検知実験結果を示す。また、屋外での監視ではアスファルトのような人工的な部分や、樹木が背景となる場合が多い。そこで、2種の背景に対しする実験結果を示す。本実験では、図10(b)の約15分の画像のうち前半7分から切り出した25人分の画像1486枚と、マサチューセッツ工科大学の歩行者画像データベース(924人分)の2410枚を人物の学習画像とした。背景画像として、人物が写っていない図10(b)の9281画像を機械学習に利用した。その後、残り8分の画像に現れる不特定多数の人物検知実験を行った。なお、表1に実験に使用した各種パラメータを示す。
図10(b)の15分のビデオ画像は、太陽が雲で隠れるなどの大きい照度変化を多数含む画像であり、不特定多数の人物が画像中を通過するシーンである。アスファルトと樹木を背景にした実験結果を示す。
図13に、アスファルトを背景とした監視結果例を示す。また、表4にビデオ画像後半8分(14400画像)の正解率等を示す。また、図14に14400画像に対する提案方式の時系列結果を示す。また、表5に実験の要約結果を示す。表4に示すように、ライン監視処理では人物以外の影響で155画像の誤反応が観測された。いずれも、太陽が雲に隠れるときと現れるときに発生した誤反応であったが、人物判定処理では、誤反応は0件であった。これにより、太陽光の変化によるライン監視処理の誤反応を人物判定処理で完全に排除できることがわかった。
次に、図15に樹木を背景とした監視結果例を示し、表6に正解率等を示す。また、図16に14400画像に対する提案方式の時系列結果を示す。さらに、表7に実験の要約結果を示す。表4に示すアスファルト部分での監視では、輝度値のばらつきが小さいため日陰であっても太陽光の変化に反応しライン監視処理で誤反応を起こしていたが、樹木を背景とした表6の結果は、樹木部分の輝度のばらつきが大きいため、太陽光の変化にアスファルト部分よりも追従する結果が得られたが、ライン監視処理の誤反応はいずれも人物判断処理で排除できる結果となった。本実験結果により、学習事例と異なる不特定の人物に対して、安定に人物検知ができることを確認できた。また、背景がアスファルトや樹木であっても、安定した人物検知ができることが確認できた。
以上の実験による人物画像と背景画像で学習した結果を、図10(c)の撮影画像へ適用する。図10(c)の撮影画像は、3人の被験者がフェンスを触ったり登ったり、あるいはフェンスの前で立ち止まるシーンが含まれている。監視ラインは電力設備のフェンスを囲むように3本設定し(図17)、表1に各種パラメータを示す。
図18に監視実験結果例を示す。また、表8に図10(c)の6000画像に対する正解率等を示す。さらに、図19に時系列結果を、表11に実験の要約結果を示す。監視ライン上で静止した場合、人物が背景とみなされるため、ライン監視処理が反応しない。そのため、監視ライン上で人物が静止している91画像でライン監視処理が未反応となった。しかし、監視ラインへの出入りでは必ず反応があり、監視ラインへの侵入時変化を考慮すると未検出が0となる(表9)。移動しないで監視ラインに入ることは不可能なので、充電部接近監視目的は達成できることがわかった。
また、フェンスの揺れにより人物以外でライン監視処理が誤反応し、その近傍を人物判定処理で人物と誤判定した画像が発生したが、監視ライン近傍で、人物判定処理が誤判定を起こす場所を調べるため、監視ライン近傍全体に10画素飛びに人物判定処理を実施した。図20にその結果を示す。図20から、人物以外に背景の柱を人物として誤検出していることが分かる。尚、図20の誤検出位置は、表9で示す1件の誤反応が発生した場所である。本実験では、図10(b)の1枚の無人画像から得た背景画像のみを学習したシステムを用いた。そのため、学習に利用した背景画像にない柱を人物として誤判定しているが、フェンスや電力設備等のより多様な背景画像を学習することで人物判定の誤判定をなくし、より高い精度での検出が可能と考えられる。
本実施例におけるサポートベクタマシンでの人物判定式を数式6に示す。また、表10に、図10(a)に示す監視画像から取得した画像を使ったサポートベクタマシンによる学習結果を示す。線形サポートベクタマシンの学習率の結果は97.7%であった。尚、線形サポートベクタマシンによる人物判定処理の1回の処理速度は特徴算出も含め約0.013秒であった。尚、線形カーネルK(x,y)=x・y(内積)を、数式7により予め求めておくことで、φの計算を行わず、カーネル関数の計算に置き換え(カーネルトリックという)、φを直接計算せずに、処理の高速化を図っている。尚、表11に、図10(b)の監視画像から取得した画像を使ったサポートベクタマシンによる学習結果を示す。
<数7>
φ = Σdixi
ここでxiが事例画像(人体テンプレート画像)、xが新たな入力画像(人物候補画像)、diはパラメータ、Kは事例画像と入力画像の距離を計算するカーネル関数を示す。前記人物判定式f(x)の符号により、人物の可否を決定する。本実施例においては、入力画像xは入力画像のわずかな変化に影響を受けないように、画像をHaarウェブレット変換で変換した画像を用いている。
本実施例では、監視ライン上での検知に失敗すると侵入物体の侵入を見過ごす可能性がある。より検知の精度をあげるには、重要な部分に2重の監視ラインを設けるなどの運用上の工夫が必要であることがわかった。また、侵入物体判定の精度の向上のためには、侵入物体の画像や背景画像をより多く用意して、監視シーンごとにサポートベクタマシンに学習を行う等の運用が有効となると考えられる。