<第一実施形態>
以下、本発明の第一実施形態として、本発明の姿勢判定装置を用いて監視カメラの監視画像から倒れている人物を検出し、倒れている人物を検出した場合に通報する画像監視装置の例を説明する。
[画像監視装置1の構成]
図1は画像監視装置1の概略の構成を示すブロック図である。画像監視装置1は、カメラ10、記憶部11、画像処理部12および出力部13からなる。
カメラ10はいわゆる監視カメラである。カメラ10は、画像処理部12と接続され、所定の監視空間を撮影して監視画像を生成し、監視画像を画像処理部12に入力する。例えば、カメラ10は、部屋の天井に当該部屋を俯瞰する視野に固定された状態で設置され、当該部屋を所定時間間隔で撮影し、監視画像を順次入力する。
記憶部11は、ROM(Read Only Memory)、RAM(Random Access Memory)等のメモリ装置で構成され、各種プログラムや各種データを記憶する。記憶部11は、画像処理部12と接続されて画像処理部12との間でこれらの情報を入出力する。
画像処理部12は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、MCU(Micro Control Unit)等の演算装置で構成される。画像処理部12は、記憶部11および出力部13と接続され、記憶部11からプログラムを読み出して実行することにより各種処理手段として動作する。また、画像処理部12は、各種データを記憶部11に記憶させ、読み出す。また、画像処理部12は、カメラ10および出力部13とも接続され、カメラ10が撮影した監視画像から倒れている人物を検出した場合に異常信号を出力部13に出力する。
出力部13は、画像処理部12と接続され、画像処理部12の処理結果を外部出力する。例えば、出力部13は、警備室の監視サーバーとの通信を行う通信装置であり、画像処理部12から入力された異常信号を監視サーバーに送信する。
[画像監視装置1の機能]
図2は画像監視装置1の画像処理に係る機能ブロック図である。
記憶部11はカメラ情報記憶手段110などとして機能する。また画像処理部12は物体検出手段120、識別手段122、射影変換手段123、窓領域設定手段124、姿勢判定手段125および異常判定手段126などとして機能する。
カメラ情報記憶手段110は監視空間を模したXYZ座標系におけるカメラ10のカメラパラメータを予め記憶している。カメラパラメータは外部パラメータと内部パラメータからなる。外部パラメータはXYZ座標系におけるカメラ10の位置および姿勢である。内部パラメータはカメラ10の焦点距離、画角、レンズ歪みその他のレンズ特性や、撮像素子の画素数などである。カメラパラメータは事前のキャリブレーションによって計測され、カメラ情報記憶手段110に記憶される。
このカメラパラメータをピンホールカメラモデルに適用することによって、XYZ座標系の座標をカメラ10の撮影面を表すxy座標系の座標に変換でき、またxy座標系の座標をXYZ座標系の座標に変換できる。
物体検出手段120は、監視画像から人を検出し、人を検出した監視画像上の位置(以下、検出位置と称する)を射影変換手段123に入力するとともに、監視画像から検出位置を囲む所定サイズの画像を切り出して射影変換手段123に入力する。なお、物体検出手段120は検出位置周辺の画像に対して内部パラメータを用いたレンズ歪み除去処理を行ってから所定サイズの画像を切り出してもよい。物体検出手段120が検出位置に対応して切り出した画像が本発明の姿勢判定装置における入力画像となる。
具体的には、物体検出手段120は背景差分処理により人を検出する。すなわち物体検出手段120は、監視空間に人が存在しない時点で撮影された監視画像を背景画像として記憶部11に記憶させておき、新たに撮影された監視画像と背景画像との差分処理を行い、人とみなせる大きさ及び形状の差分領域が抽出された場合に人を検出したとして当該差分領域の重心を検出位置とする。
なお、物体検出手段120は、検出位置の誤差を見込んで、検出位置の近傍にも後述する窓領域を複数設定できるよう、窓領域よりも大きめに設定したサイズの入力画像を切り出す。
識別手段122は、特定姿勢の所定物体を特定方向から撮影した特定形状の学習画像を用いて特定姿勢の所定物体の特徴を予め学習しており、画像上に(後述する変換画像上に)特定形状の窓領域が設定されると、当該画像の窓領域に特定姿勢の所定物体の特徴が現れている度合いであるスコアを出力する。
つまり、所定物体、特定姿勢、特定方向、特定形状は予め定義しておき、識別手段122は定義に従った学習を行っておく。本実施形態において、所定物体は人であり、特定姿勢は立位であり、特定方向は略水平方向(体軸に対し略垂直方向)であり、特定形状は幅と高さが1:2の矩形である。
具体的には、識別手段122は、立位の人を略水平方向から撮影した幅64画素×高さ128画素の多数のポジティブ学習画像のそれぞれから抽出した特徴量および立位の人が写っていない幅64画素×高さ128画素の多数のネガティブ学習画像のそれぞれから抽出した特徴量にブースティングアルゴリズムを適用して立位の人の特徴を学習した識別器を備える。特徴量は例えばHOG(Histograms of Oriented Gradients)特徴量とすることができる。
そして、識別手段122は、変換画像の窓領域から特徴量を抽出し、抽出した特徴量を識別器に入力してスコアを出力する。ただし、窓領域から抽出する特徴量は学習に用いた特徴量と同種のものである。
なお、同じ立位であっても腕をまっすぐに下した立位、腕を曲げた立位、足をまっすぐに伸ばした立位、足を開いた立位など手足が変動し得る。このような手足の変動の多様性に対応するために、ポジティブ学習画像にはこれら手足の変動のバリエーションを多く含んだ画像群を用いる。
射影変換手段123は、入力画像に撮影されている所定物体の姿勢を複数通りに仮定して、仮定した姿勢ごとに当該姿勢の所定物体の像を特定方向から撮影される特定姿勢の像に変換する射影変換を入力画像に施し、変換後の入力画像(変換画像と称する)を窓領域設定手段124に出力する。
入力画像に撮影されている所定物体の像は、その姿勢と検出位置すなわちカメラ10との位置関係に応じて変形し、学習画像とは異なるプロポーションの像となってしまう。例えば、立位の人の像であればカメラ10に近い検出位置となるほど脚部に比して頭部が大きくなり、カメラ10側に頭を向けて倒れている人の像であればカメラ10から遠ざかる検出位置となるほど脚部に比して頭部が大きくなる。
射影変換手段123が施す射影変換は、このような変形を補正して入力画像に撮影されている所定物体の像を学習画像と略同じ姿勢の所定物体を学習画像と略同じ方向から撮影した場合の像にする変換である。この変換によって、仮定した姿勢と入力画像に撮影されている所定物体の姿勢が一致した場合に、変換画像における所定物体の像のプロポーションが学習画像と略同じプロポーションに補正されるのである。この射影変換は、仮定する姿勢および検出位置の関数として予め設定しておくことができる。
具体的には、射影変換手段123は、入力画像に撮影されている人の姿勢を次の9通りに仮定する(図3参照)。なお、倒れている姿勢を倒位と称している。
(1)頭部方向vが鉛直上方、被写体面の重心gの高さがh/2である立位300
(2)頭部方向vが放射方向uとなす角が0度、被写体面の重心gの高さが0である倒位301
(3)頭部方向vが放射方向uとなす角が45度、被写体面の重心gの高さが0である倒位302
(4)頭部方向vが放射方向uとなす角が90度、被写体面の重心gの高さが0である倒位303
(5)頭部方向vが放射方向uとなす角が135度、被写体面の重心gの高さが0である倒位304
(6)頭部方向vが放射方向uとなす角が180度、被写体面の重心gの高さが0である倒位305
(7)頭部方向vが放射方向uとなす角が225度、被写体面の重心gの高さが0である倒位306
(8)頭部方向vが放射方向uとなす角が270度、被写体面の重心gの高さが0である倒位307
(9)頭部方向vが放射方向uとなす角が315度、被写体面の重心gの高さが0である倒位308
ただし、頭部方向vは人の体軸に沿って頭部に向かう方向、放射方向uはカメラ20の鉛直下の床面上の点を中心とする床面上の放射線の方向と定義している。また、カメラ20によって人が撮影される面として、XYZ座標系において人の体軸を通る特定形状の平面を被写体面と定義し、被写体面の重心gを人の位置を表す基準とする。例えば、被写体面には、人が立っているときの標準的な形状と大きさと手足の変動を考慮して、幅wと高さhが1:2の矩形を設定し、w=85cm、h=170cmとすることができる。つまり、各姿勢を定義する姿勢情報は、その重心(基準点)からの頭部方向(基準方向)と基準点の高さで構成される。
また以下では(1)の姿勢を立位、(2)〜(9)の姿勢をそれぞれ倒位0度、倒位45度、倒位90度、倒位135度、倒位180度、倒位225度、倒位270度、倒位315度と称する。なお、(2)〜(9)の各姿勢において、人体の厚みをさらに考慮しての重心gの高さを10cmなどとしてもよい。
そして、射影変換手段123は、仮定した9通りの姿勢ごとに当該姿勢の人の像を体軸に対して略垂直方向から撮影される立位の像に変換する射影変換を入力画像に施す。
図4は、立位を仮定した場合に行う射影変換400を例示した模式図である。この図を例に、入力画像401上の任意の画素位置P0を、これに対応する変換画像408上の画素位置P3に変換する射影変換400を説明する。
まず画素位置P0とこれに対応する実空間中の点P1の関係について説明する。図4における点Q0は検出位置、点Q1は検出位置Q0に対応する実空間中の座標、矩形402は被写体面である。ちなみに被写体面402は入力画像401に投影すると台形403となる。
点Q1は、検出位置Q0とカメラ10のカメラパラメータと高さがh/2であることから一意に定まる。また被写体面402は、カメラ10から点Q1への視線404をXY平面に投影した放射線405に垂直であり点Q1を含む平面であるとの拘束条件から一意に定まる。そして、点P1は、画素位置P0とカメラ10のカメラパラメータと被写体面402上の点であるとの拘束条件から一意に定まる。よって、画素位置P0を点P1に変換する行列は、立位の姿勢情報、検出した検出位置Q0およびカメラパラメータで定義できる。
次に入力画像401上で検出位置Q0に撮影された立位の人が実空間中でカメラ10から特定方向に撮影される場合に画素位置P0と対応すべき実空間中の点P2の、点P1との関係について説明する。
この関係は、被写体面402を点Q1を中心に視線404と直交する角度に回転させ、回転後の被写体面402をその重心が視線404を通りその下端が床面の高さとなるよう並進させることで定まる。図4では点Q1の並進後の座標を点Q2、被写体面402を回転および並進させた後の平面を被写体面407としている。並進量は高さhと視線404と回転角から定まり、回転角はカメラパラメータ、点Q1、視線404から一意に定まる。そして、被写体面402における点P1の点Q1に対する相対位置ベクトルを求めて、当該相対位置ベクトルを被写体面407における点Q2に加算すれば点P2が一意に定まる。よって、点P1を点P2に変換する行列は、立位の姿勢情報、検出した検出位置Q0およびカメラパラメータで定義できる。
点P2をこれに対応する変換画像408上の画素位置P3に変換する行列はカメラパラメータから導出される。ちなみに被写体面407は変換画像408に投影すると矩形409となる。
そして、画素位置P0を画素位置P3に変換する射影変換400は、画素位置P0を点P1に変換する行列、点P1を点P2に変換する行列および点P2を画素位置P3に変換する行列の積であるから、この行列の積である射影変換400は立位の姿勢情報、検出した検出位置Q0およびカメラパラメータで定義できる。ここでカメラパラメータは定数であるから、結局、立位を仮定した射影変換400における変数は検出位置Q0のみとなる。よって、この射影変換400の関数を立位を仮定した場合に用いるために予め設定しておき、検出位置Q0を代入すれば、射影変換手段123は、その関数を用いて入力画像から変換画像を生成できる。
図5は、倒位0度を仮定した場合に行う射影変換500を例示した模式図である。この図を例に、入力画像501上の任意の画素位置P4を、これに対応する変換画像508上の画素位置P7に変換する射影変換500を説明する。
まず画素位置P4とこれに対応する実空間中の点P5の関係について説明する。図5における点Q4は検出位置、点Q5は検出位置Q4に対応する実空間中の座標、矩形502は被写体面である。ちなみに被写体面502は入力画像501に投影すると台形503となる。
点Q5は、検出位置Q4とカメラ10のカメラパラメータと高さが0であることから一意に定まる。また被写体面502は、カメラ10から点Q5への視線504をXY平面に投影した放射線505に垂直であり点Q5を含む平面であるとの拘束条件から一意に定まる。そして、点P5は、画素位置P4とカメラ10のカメラパラメータと被写体面502上の点であるとの拘束条件から一意に定まる。よって、画素位置P4を点P5に変換する行列は、倒位0度の姿勢情報、検出した検出位置Q4およびカメラパラメータで定義できる。
次に入力画像501上で検出位置Q4に撮影された倒位0度の人が実空間中でカメラ10から特定方向に撮影される場合に画素位置P4と対応すべき実空間中の点P6の、点P5との関係について説明する。
この関係は、被写体面502を点Q5を中心に視線504と直交する角度に回転させ、回転後の被写体面502をその重心が視線504を通りその下端が床面の高さとなるよう並進させることで定まる。図5では点Q5の並進後の座標を点Q6、被写体面502を回転および並進させた後の平面を被写体面507としている。並進量は高さhと視線504と回転角から定まり、回転角はカメラパラメータ、点Q5、視線504から一意に定まる。そして、被写体面502における点P5の点Q5に対する相対位置ベクトルを求めて、当該相対位置ベクトルを被写体面507における点Q6に加算すれば点P6が一意に定まる。よって、点P5を点P6に変換する行列は、倒位0度の姿勢情報、検出した検出位置Q4およびカメラパラメータで定義できる。
点P6をこれに対応する変換画像508上の画素位置P7に変換する行列はカメラパラメータから導出される。ちなみに被写体面507は変換画像508に投影すると矩形509となる。
そして、画素位置P4を画素位置P7に変換する射影変換500は、画素位置P4を点P5に変換する行列、点P5を点P6に変換する行列および点P6を画素位置P7に変換する行列の積であるから、この行列の積である射影変換500は倒位0度の姿勢情報、検出した検出位置Q4およびカメラパラメータで定義できる。ここでカメラパラメータは定数であるから、結局、倒位0度を仮定した射影変換500における変数もまた検出位置Q4のみとなる。よって、この射影変換500の関数を倒位0度を仮定した場合に用いるために予め設定しておき、検出位置Q4を代入すれば、射影変換手段123は、その関数を用いて入力画像から変換画像を生成できる。
また、倒位45度、倒位90度、倒位135度、倒位180度、倒位225度、倒位270度および倒位315度を仮定した射影変換のそれぞれは、頭部方向を放射方向に一致させる回転行列と倒位0度の射影変換の積とすることで導出できる。
窓領域設定手段124は、仮定した姿勢ごとの変換画像それぞれに特定形状の窓領域を設定し、窓領域と変換画像を対応付けて姿勢判定手段125に出力する。
物体検出手段120の説明で述べたように、変換画像は検出位置の誤差を見込んで窓領域よりも大きめのサイズの入力画像から生成されている。これに対応し、窓領域設定手段124は、変換画像中の複数の位置に窓領域を設定する。
姿勢判定手段125は、仮定した姿勢ごとに、変換画像の窓領域に特定姿勢の所定物体の特徴が現れている度合いであるスコアを識別手段122に算出させ、仮定した姿勢のうちスコアが最も高い第一位姿勢を決定し、第一位姿勢のスコアが予め定めた基準値以上である場合に第一位姿勢の所定物体が入力画像に撮影されていると判定する。他方、第一位姿勢のスコアが基準値未満である場合、姿勢判定手段125は、仮定した姿勢のいずれでもない姿勢の所定物体が入力画像に撮影されていると判定する。
具体的には、姿勢判定手段125は、窓領域設定手段124から入力された変換画像と窓領域の組のそれぞれを識別手段122に入力し、その出力として窓領域ごとのスコアを取得する。次に、仮定した姿勢ごとの最高スコアを当該姿勢のスコアと決定する。続いて、仮定した姿勢間でスコアを比較し、スコアが最も高い姿勢を第一位姿勢と決定する。そして、第一位姿勢のスコアを基準値と比較し、基準値以上であれば第一位姿勢の人が入力画像に撮影されていると判定し、第一位姿勢を異常判定手段126に出力する。
基準値は、スコアに対するしきい値であり、学習画像と同様の条件で撮影した多数のテスト画像に対する識別精度が所望の値となるよう、予めの実験に基づいて設定しておく。例えば、立位の人を水平方向から撮影したテスト画像に対して識別手段122が算出するスコアの分布を分析し、分布において下位の所定割合のスコアの最高値を基準値とすることができる。
入力画像に撮影されている所定物体の姿勢が第一位姿勢であれば射影変換により所定物体の像の変形が正しく補正されるため射影変換しない場合よりも高いスコアを得やすい。他方、第一位姿勢以外を仮定した射影変換では所定物体の像の変形が誤って補正されるため射影変換しない場合よりも低いスコアを得やすい。よって、射影変換しない場合よりも第一位姿勢のスコアとそれ以外のスコアの差は強調され、仮定した姿勢間でスコアの大小比較により得た第一位姿勢は確度の高い判定結果となる。
さらに、姿勢判定手段125は、複数通りに仮定した姿勢のいずれに対するスコアも同一の識別手段122を用いて算出させる。そのため、同一基準で算出したスコアによる確度の高い大小比較ができる。仮に、姿勢ごと或いは姿勢の組み合わせごとに生成した識別手段でスコアを算出したならば、異なる基準で算出したスコアの大小比較となり、判定の確度は低下しやすいであろう。同一の識別手段122を用いて算出したスコアの大小比較は確度が高く、それにより得た第一位姿勢は確度の高い判定結果となる。
また、ひとつの識別手段122で判定できるため、学習画像を収集する手間も最小限で済む。
異常判定手段126は、姿勢判定手段125から入力された第一位姿勢が倒位であるか否かを確認して異常有無を判定する。第一位姿勢が倒位である場合、異常判定手段126は、監視空間に人が倒れているとして異常信号を生成し、生成した異常信号を出力部5に出力する。
図6と図7を参照して、本発明の姿勢判定装置による処理例を説明する。
図6に示した立位の人600の投影像611と、図7に示した倒位0度の人700の投影像711はともに、入力画像上で頭部を上に向けて写っており、入力画像だけではその姿勢が立位か倒位0度かを判定し難い。
図6は、立位の人600が撮影された入力画像610に対し、射影変換手段123が立位を仮定した射影変換620を施して変換画像630を生成し、および射影変換手段123が倒位0度を仮定した射影変換640を施して変換画像650を生成した様子を模式的に示している。
正しく立位と仮定した射影変換620は入力画像610上の像611に生じていた変形を補正し、変換画像630上の像641は人を特定方向から撮影した学習画像(ポジティブ画像)の像とよく似たプロポーションとなる。そのため、窓領域設定手段124が変換画像630上で像631の位置に設定した窓領域632に対するスコアを、姿勢判定手段125が識別手段122に算出させれば、入力画像610上のそのままの像611の位置に窓領域612を設定して識別手段122にスコアを算出させる場合よりも、基準値を超えるスコアを得る可能性が高まる。
一方、倒位0度を仮定した射影変換640は誤変換となる。変換画像650上の像651にはさらなる変形が加わり、頭部が極端に大きく脚部が極端に小さく変形された像651は学習画像上の像からかけ離れたプロポーションとなる。そのため、窓領域設定手段124が変換画像650上で像651の位置に設定した窓領域652に対するスコアを、姿勢判定手段125が識別手段122に算出させれば、正しく立位と仮定した場合よりも低いスコアを得る可能性が高い。
図6の例では、姿勢判定手段125の処理において、極めて高い確率で立位が第一位姿勢と決定され、第一位姿勢のスコアが基準値を超える。よって、本発明の姿勢判定装置によれば、入力画像610に撮影された人600の姿勢が立位であると正しく判定される可能性を格段に高くすることができる。
図7は、倒位0度の人700が撮影された入力画像710に対する処理の様子を模式的に示している。姿勢判定装置にとって人700の姿勢は当然ながら未知であるから、この場合も、図6を参照して説明した処理と同様、射影変換手段123は立位を仮定した射影変換720を施して変換画像730を生成し、および射影変換手段123は倒位0度を仮定した射影変換740を施して変換画像750を生成する。
図7の例の場合、立位を仮定した射影変換720は誤変換となる。変換画像730上の像731は、脚部が極端に大きく頭部が極端に小さく変形され、学習画像上の像からかけ離れたプロポーションとなる。そのため、窓領域設定手段124が変換画像730上で像731の位置に設定した窓領域732に対するスコアを、姿勢判定手段125が識別手段122に算出させれば、正しく倒位0度と仮定した場合よりも低いスコアを得る可能性が高い。
一方、倒位0度を仮定した射影変換740は正しい変換となる。変換画像750上の像751は人を特定方向から撮影した学習画像(ポジティブ画像)の像とよく似たプロポーションとなる。窓領域設定手段124が変換画像750上で像751の位置に設定した窓領域752に対するスコアを、姿勢判定手段125が識別手段122に算出させれば、入力画像710上で像711の位置に設定した窓領域712に対するスコアを識別手段122に算出させる場合よりも、基準値を超えるスコアを得る可能性が高まる。
図7の例では、姿勢判定手段125の処理において、極めて高い確率で倒位0度が第一位姿勢と決定され、第一位姿勢のスコアが基準値を超える。よって、本発明の姿勢判定装置によれば、入力画像710に撮影された人700の姿勢が倒位0度であると正しく判定される可能性を格段に高くすることができる。
ここでは説明を簡単化するために2通りの姿勢を仮定する例を示したが、3通り以上の姿勢を仮定する場合も同様の原理によって入力画像に撮影された所定物体の姿勢が正しく判定される可能性を格段に高くすることができる。
[画像監視装置1の動作]
図8のフローチャートを参照して画像監視装置1の動作を説明する。
画像監視装置1が起動すると、カメラ10は監視空間を所定時間間隔にて撮影する。そして撮影のたびに画像処理部12は図8に示すステップS10〜S17の処理を繰り返し実行する。
まず、画像処理部12はカメラ10からの監視画像を取得すると(S10)、物体検出手段120として動作し、取得した監視画像を背景差分処理して人検出を行う(S11)。監視画像から人が検出されなかった場合(S12にてNO)、物体検出手段120は処理をステップS10に戻し、次の監視画像の取得待ちとなる。
監視画像から人が検出された場合(S12にてYES)、物体検出手段120は、検出した1または複数の人についてのループ処理を実行する。
すなわち、物体検出手段120は監視画像において人の検出位置を含む当該検出位置周辺の画像を順次処理対象に設定する(S13)。この画像は本実施形態の姿勢判定装置に入力される画像であり、以下、入力画像と称する。
続いて、入力画像に撮影されている人の姿勢を判定する姿勢判定処理が行われる(S14)。
図9のフローチャートを参照してステップS14の姿勢判定処理を説明する。姿勢判定処理において、画像処理部12は射影変換手段123、窓領域設定手段124、姿勢判定手段125および識別手段122として動作し、物体検出手段120が射影変換手段123に入力画像と検出位置を入力することで、姿勢判定処理が開始される。
まず、射影変換手段123は、入力画像に撮影されている人に対し、9通りの姿勢を順次仮定して(S140)、仮定した姿勢および検出位置に応じた射影変換を入力画像に施して変換画像を生成する(S141)。
すなわち射影変換手段123は、立位、倒位0度、倒位45度、倒位90度、倒位135度、倒位180度、倒位225度、倒位270度および倒位315度を順次、入力画像に撮影されている人の姿勢の候補として設定する。そして、仮定した姿勢に対応して予め設定されている射影変換関数に物体検出手段120から入力された検出位置を代入し、検出位置を代入した射影変換関数によって入力画像を変換する。変換画像は窓領域設定手段124に入力される。
次に、窓領域設定手段124は複数段階の倍率で変換画像を拡大又は縮小させるスケーリング処理を行う(S142)。
スケーリング処理は、入力画像に撮影された人の像の見かけ上の大きさ変化や個体差に窓領域の大きさを適合させるために行う。倍率は、例えば0.75倍〜1.5倍まで0.125刻みで7段階に設定することができる。
次に、窓領域設定手段124は変換画像上に特定形状且つ特定サイズの窓領域を設定する(S143)。
すなわち、窓領域設定手段124は、各倍率の変換画像上に幅64画素×高さ128画素の矩形領域の窓領域を設定する。このとき、検出位置の誤差を考慮し、窓領域設定手段124は変換画像上の複数の位置に窓領域を設定する。設定した各窓領域は変換画像と対応付けて姿勢判定手段125に入力される。
なお、スケーリング処理は窓領域の大きさを拡大又は縮小させることで行ってもよい。その場合、窓領域設定手段124は、原サイズの変換画像上に各倍率で拡大又は縮小した窓領域を設定し、窓領域の変換画像を幅64画素×高さ128画素の大きさに拡大又は縮小する。
続いて、姿勢判定手段125は変換画像の窓領域に立位の人の特徴が現れている度合いであるスコアを識別手段122に算出させる(S144)。
すなわち、まず、姿勢判定手段125は、各倍率の変換画像と当該変換画像上の複数の位置に設定された窓領域を識別手段122に入力する。識別手段122は、変換画像の各窓領域からHOG特徴量を抽出し、立位の人のHOG特徴量を学習した識別器に各窓領域のHOG特徴量を入力して各窓領域に対するスコアを算出させる。次に、姿勢判定手段125は、各窓領域に対するスコアのうちの最高スコアを、仮定した姿勢に対するスコアとして選出し、仮定した姿勢と選出したスコアを対応づけて記憶部11に記憶させる。
スコアが算出されると、射影変換手段123は、9通りの姿勢全てのスコアを算出し終えたか確認する(S145)。未だスコアが算出されていない姿勢がある場合(S145にてNO)、射影変換手段123は処理をステップS140に戻して次の姿勢に対する処理を行う。
他方、9通りの姿勢全てのスコアを算出し終えた場合(S145にてYES)、姿勢判定手段125は、9通りの姿勢の中からスコアが最高である第一位姿勢を決定し(S146)、最高スコアである第一位姿勢のスコアを基準値と比較する(S147)。
最高スコアが基準値以上である場合(S147にてYES)、姿勢判定手段125は、入力画像に第一位姿勢の人が撮影されていると判定して、第一位姿勢と検出位置を対応付けた判定結果を生成し(S148)、判定結果を記憶部11に記憶させる。
他方、最高スコアが基準値未満である場合(S147にてNO)、姿勢判定手段125は、入力画像に立位でも倒位でもない姿勢の人が撮影されていると判定して、その旨と検出位置を対応付けた判定結果を生成し(S149)、判定結果を記憶部11に記憶させる。
判定結果が生成されると、処理は図8のステップS15に進められる。
物体検出手段120は、全ての検出位置について姿勢判定処理を終えたか確認し(S15)、未だ姿勢判定処理をしていない検出位置がある場合(S15にてNO)、物体検出手段120は処理をステップS13に戻して次の検出位置に対する処理を行う。
他方、全ての検出位置について姿勢判定処理を終えた場合(S15にてYES)、画像処理部12は異常判定手段126として動作し、倒れている人が検出されたか否かを確認する(S16)。
すなわち、異常判定手段126は、記憶部11に倒位の人が撮影されているとの判定結果が記憶されているか否かを確認し、該当する判定結果が記憶されている場合、監視画像から倒れている人が検出されたとして(S16にてYES)、所定の異常信号を出力部13に出力する(S17)。異常信号を入力された出力部13は監視センターへの通報を行う。
他方、該当する判定結果が記憶されていない場合(S16にてNO)、異常判定手段126は、ステップS17をスキップする。
以上の処理を終えると、画像処理部12は記憶部11のスコアおよび判定結果をクリアして処理をステップS10に戻す。
<第一実施形態の変形例>
第一実施形態の変形例においては、さらに変換前の入力画像からもスコア(無変換スコア)を算出して、無変換スコアに基づくスコアの補正を行う。
すなわち変形例において、窓領域設定手段124は、さらに入力画像に特定形状の無変換窓領域を設定して入力画像と無変換窓領域の組を姿勢判定手段125に入力し、姿勢判定手段125は、さらに入力画像の無変換窓領域に特定姿勢の所定物体の特徴が現れている度合いである無変換スコアを識別手段122に算出させて、仮定した姿勢ごとのスコアの無変換スコアに対する上昇度が大きいほど当該姿勢のスコアを高く補正する。そして、姿勢判定手段125は、仮定した姿勢のうち補正後のスコアが最も高い姿勢の所定物体が入力画像に撮影されていると判定する。
つまり、仮定した姿勢が入力画像に撮影されている所定物体の姿勢と一致していれば上昇度は高くなる傾向があり、不一致ならば上昇度は低くなる傾向があるため、上昇度に応じた補正を行うことによりスコアの大小関係は強調され、姿勢判定の精度が向上する。
具体的には、姿勢判定手段125は、変換画像に対して算出させたスコアSから無変換スコアS0を減じた差(S−S0)を上昇度として算出する。また上昇度が高いほど高い補正値を算出する補正関数f(S−S0)を予め定めておく。そして、姿勢判定手段125は、上昇度を補正関数に代入して得た補正値をスコアSに加えることでスコアSを補正する。なお、補正関数f(S−S0)は上昇度の正負によって補正値を切り替える関数としてもよい。
上記実施形態およびその変形例においては、9通りの姿勢を仮定する例を示したが、仮定する姿勢の数は、用途やカメラ10の解像度に応じた9以外の数とすることもできる。
例えば、背景差分領域の主軸方向をカメラ10から検出位置への視線方向と比較して「立位、倒位0度、倒位180度のいずれかの姿勢」であることと「倒位0度、倒位180度以外の倒位」であることを判別する第二の姿勢判定手段をさらに備え、射影変換手段123が3通りの姿勢を仮定する姿勢判定装置とすることができる。この変形例においては、第二の姿勢判定手段が「立位、倒位0度、倒位180度のいずれかの姿勢」と判別した場合に、射影変換手段123が立位、倒位0度および倒位180度の3通りの姿勢を仮定して入力画像を射影変換する。そして、窓領域設定手段124が射影変換された入力画像のそれぞれに窓領域を設定し、姿勢判定手段125が各窓領域に対するスコアを算出して立位、倒位0度、倒位180度のいずれの姿勢であるかを判定する。この場合、姿勢判定手段125は基準値との比較を行わずに第一位姿勢を確定させてもよい。
また、例えば、高解像度なカメラ10を用いた場合に、倒位を30度刻みとし、立位と合せて13通りの姿勢を仮定する姿勢判定装置とすることもできる。
上記実施形態およびその変形例においては、物体検出手段120が背景差分処理により人を検出する例を示したが、物体検出手段120が他の公知の方法により人を検出する形態とすることもできる。
例えば、物体検出手段120は人物追跡処理により人を検出することができる。この場合、物体検出手段120は上述した差分領域における色ヒストグラムなどの特徴量をテンプレートとして記憶部11に記憶させ、以降に撮影された監視画像上でテンプレートとのマッチング処理を行い、テンプレートにマッチングする位置を検出位置とする。
また、例えば、物体検出手段120は、予め人の顔画像を学習した顔識別器にて監視画像上を走査して頭部を検出し、その後の監視画像上で頭部を追跡することによって人を検出する。
上記実施形態およびその変形例においては、物体検出手段120が監視画像から人を検出する例を示したが、物体検出手段120は、監視画像を用いずに赤外線センサー、レーザーセンサー、人が所持する無線タグを検出するセンサーなど各種センサーによって人を検出する形態とすることもできる。監視画像を用いない場合、物体検出手段120は各種センサーによってXYZ座標系の検出位置を取得し、取得した検出位置をカメラ情報記憶手段110が記憶しているカメラパラメータを用いてxy座標系に変換することで監視画像上の検出位置を得る。
<第二実施形態>
以下、本発明の第二実施形態として、本発明の物体検知装置を用いて監視カメラの監視画像から侵入者を検知し、侵入者を検知した場合に通報する画像監視装置の例を説明する。この画像監視装置では視野を変更しながら撮影された監視画像の1枚すなわち静止画から、立位の侵入者および倒位すなわち匍匐している侵入者を検知できる。
[画像監視装置2の構成]
図10は画像監視装置2の概略の構成を示すブロック図である。画像監視装置2は、カメラ20、記憶部21、画像処理部22および出力部23からなる。
カメラ20はパン、チルト、ズームが可能なPTZカメラである。カメラ20は、画像処理部22および不図示の外部装置と接続され、外部装置からの指示に基づいてその視野を変更しながら所定の監視空間を撮影して監視画像を生成し、監視画像およびカメラパラメータを画像処理部22に入力する。
カメラパラメータは、カメラ制御値すなわちパン角度、チルト角度およびズーム値に基づいて算出できる。カメラ20は、各監視画像の撮影時のカメラ制御値に基づいてカメラパラメータを算出し、当該監視画像とカメラパラメータを対応付けて画像処理部22に入力する。
記憶部21は、ROM、RAM等のメモリ装置で構成され、各種プログラムや各種データを記憶する。記憶部21は、画像処理部22と接続されて画像処理部22との間でこれらの情報を入出力する。
画像処理部22は、CPU、DSP、MCU等の演算装置で構成される。画像処理部22は、記憶部21および出力部23と接続され、記憶部21からプログラムを読み出して実行することにより各種処理手段として動作する。また、画像処理部22は、各種データを記憶部21に記憶させ、読み出す。また、画像処理部22は、カメラ20および出力部23とも接続され、カメラ20が撮影した監視画像から侵入者を検知した場合に異常信号を出力部23に出力する。
出力部23は、画像処理部22と接続され、画像処理部22の処理結果を外部出力する。例えば、出力部23は、警備室の監視サーバーとの通信を行う通信装置であり、画像処理部22から入力された異常信号を監視サーバーに送信する。
[画像監視装置2の機能]
図11は画像監視装置2の画像処理に係る機能ブロック図である。
記憶部21はカメラ情報記憶手段210などとして機能する。また画像処理部22は候補位置設定手段220、識別手段222、射影変換手段223、窓領域設定手段224、存否判定手段225および異常判定手段226などとして機能する。
カメラ情報記憶手段210はカメラ20から入力されるカメラパラメータを記憶する。カメラパラメータを用いることによって、監視空間を模したXYZ座標系の座標をカメラ20の撮影面を表すxy座標系の座標に変換でき、またxy座標系の座標をXYZ座標系の座標に変換できる。
候補位置設定手段220は、監視画像上に人物が存在し得る候補位置を複数設定し、設定した候補位置を射影変換手段223に入力するとともに、監視画像から各候補位置を囲む所定サイズの画像を切り出して射影変換手段223に入力する。なお、候補位置設定手段220は監視画像に対して内部パラメータを用いたレンズ歪み除去処理を行ってから所定サイズの画像を切り出してもよい。候補位置設定手段220が複数の候補位置それぞれに対応して切り出した各画像が本発明の物体検知装置における入力画像となる。
具体的には、候補位置設定手段220は、監視空間を模したXYZ座標系のXY平面上(倒位用)およびh/2の高さの平面上(立位用)に人の幅のよりも狭い間隔で(例えば5cm間隔で)グリッド状に候補位置を配置し、配置したXYZ座標系の候補位置をカメラ情報記憶手段110が記憶しているカメラパラメータを用いてxy座標系に変換することで監視画像上の候補位置を得る。
或いは、候補位置設定手段220は監視画像上に予め定めた間隔でグリッド状に候補位置を設定することもできる。
識別手段222は、第一実施形態の識別手段122と同様、特定姿勢の所定物体を特定方向から撮影した特定形状の学習画像を用いて特定姿勢の所定物体の特徴を予め学習しており、変換画像上に特定形状の窓領域が入力されると、変換画像の窓領域に特定姿勢の所定物体の特徴が現れている度合いであるスコアを出力する。第一実施形態の識別手段122と同様、所定物体は人、特定姿勢は立位、特定方向は略水平方向(体軸に対し略垂直方向)、特定形状は幅と高さが1:2の矩形であると予め定義しておき、識別手段222は定義に従った学習を行っておく。
射影変換手段223は、入力画像に撮影されている所定物体の姿勢を複数通りに仮定して、仮定した姿勢ごとに当該姿勢の所定物体の像を特定方向から撮影される特定姿勢の像に変換する射影変換を入力画像に施して変換画像を生成する。射影変換手段223は、変換画像を窓領域設定手段224に出力する。
第一実施形態の射影変換手段123と同様、射影変換手段223は、倒位0度、倒位45度、倒位90度、倒位135度、倒位180度、倒位225度、倒位270度および倒位315度の9種類の姿勢を仮定する。
ただし、射影変換手段223に予め設定される射影変換関数は第一実施形態の射影変換手段123とは異なり、カメラパラメータも変数である。すなわち、射影変換手段223が行う射影変換は、仮定する姿勢、候補位置およびカメラパラメータの関数として予め設定され、射影変換手段223は候補位置設定手段220から入力される入力画像と候補位置およびカメラ情報記憶手段210に記憶されているカメラパラメータを用いて射影変換を行う。
この変換により、入力画像に所定物体が撮影されており、且つ入力画像に撮影されている所定物体の姿勢が仮定した姿勢と一致している場合に、変換画像における所定物体の像が学習画像と略同じプロポーションの像に変換される。
窓領域設定手段224は、第一実施形態の窓領域設定手段124と同様、仮定した姿勢ごとの変換画像それぞれに特定形状の窓領域を設定し、窓領域と変換画像を対応付けて姿勢判定手段225に出力する。
存否判定手段225は、仮定した姿勢ごとに、変換画像の窓領域に特定姿勢の所定物体の特徴が現れている度合いであるスコアを識別手段222に算出させ、算出させたスコアのいずれかが予め定めた基準値以上である場合に候補位置に所定物体が存在していると判定し、算出させたスコアのいずれもが基準値未満である場合に候補位置には所定物体が存在していないと判定する。存否判定手段225は、各候補位置の判定結果を異常判定手段226に出力する。
具体的には、存否判定手段225は、窓領域設定手段224から入力された変換画像と窓領域の組のそれぞれを識別手段222に入力し、その出力として窓領域ごとのスコアを取得する。次に、仮定した姿勢ごとの最高スコアを当該姿勢のスコアと決定する。続いて、仮定した姿勢間でスコアを比較し、スコアが最も高い姿勢を第一位姿勢と決定する。そして、第一位姿勢のスコアを基準値と比較し、基準値以上であれば第一位姿勢の人が入力画像に撮影されていると判定し、基準値未満であれば入力画像に人が撮影されていないと判定する。
基準値は、スコアに対するしきい値であり、学習画像と同様の条件で撮影した多数のテスト画像に対する識別精度が所望の値となるよう、予めの実験に基づいて設定しておく。
なお、第一位姿勢の決定は省略することもできる。その場合、存否判定手段225は、窓領域ごとのスコアのそれぞれを基準値と比較し、いずれかのスコアが基準値以上であれば少なくとも入力画像に人が撮影されていると判定し、いずれのスコアも基準値未満であれば少なくとも入力画像に人が撮影されていないと判定する。
異常判定手段226は、存否判定手段225による判定結果を参照して監視空間に侵入者が存在しているか否かを判定し、侵入者が存在していると判定した場合に異常信号を出力部23に出力する。
具体的には、異常判定手段226は、存否判定手段225から入力された候補位置ごとの判定結果を参照し、いずれかの判定結果が人が撮影されているとの判定結果であれば監視空間に侵入者が存在していると判定し、いずれの判定結果も人が撮影されていないとの判定結果であれば監視空間に侵入者は存在していないと判定する。
[画像監視装置2の動作]
図12のフローチャートを参照して画像監視装置2の動作を説明する。
画像監視装置2が起動すると、カメラ20は監視空間を所定時間間隔にて撮影する。そして撮影のたびに画像処理部22は図12に示すステップS20〜S27の処理を繰り返し実行する。
まず、画像処理部22はカメラ20からの監視画像およびカメラパラメータを取得すると(S20,S21)、取得したカメラパラメータをカメラ情報記憶手段210に記憶させる。
次に、画像処理部22は候補位置設定手段220として動作し、監視画像の各所に候補位置を設定する(S22)。候補位置は監視画像において人の像が現れている可能性のある位置である。
続いて候補位置設定手段220は、各候補位置を含む当該候補位置周辺の画像を順次処理対象に設定して(S23)、ステップS23〜S25のループ処理を実行する。この候補位置ごとの画像は本実施形態の物体検知装置に入力される画像であり、以下、入力画像と称する。
続いて、入力画像に人が撮影されているか否かを判定する人検知処理が行われる(S24)。
図13のフローチャートを参照してステップS24の人検知処理を説明する。人検知処理において、画像処理部22は射影変換手段223、窓領域設定手段224、存否判定手段225および識別手段222として動作し、候補位置設定手段220が射影変換手段223に入力画像と候補位置を入力することで、人検知処理が開始される。
まず、射影変換手段223は、入力画像に人が撮影されていると仮定するとともに当該人に対して9通りの姿勢を順次仮定し(S240)、仮定した姿勢、候補位置およびカメラパラメータに応じた射影変換を入力画像に施して変換画像を生成する(S241)。
すなわち射影変換手段123は、立位、倒位0度、倒位45度、倒位90度、倒位135度、倒位180度、倒位225度、倒位270度および倒位315度を順次、入力画像に撮影されていると仮定した人の姿勢の候補として設定する。また射影変換手段123はカメラ情報記憶手段210からカメラパラメータを読み出す。そして、仮定した姿勢に対応して予め設定されている射影変換関数に候補位置設定手段220から入力された候補位置、および読み出したカメラパラメータを代入し、これらを代入した射影変換関数によって入力画像を変換する。変換画像は窓領域設定手段224に入力される。
次に、窓領域設定手段224は複数段階の倍率で変換画像を拡大又は縮小させるスケーリング処理を行う(S242)。
次に、窓領域設定手段224は変換画像上に特定形状且つ特定サイズの窓領域を設定する(S243)。
すなわち、窓領域設定手段224は、各倍率の変換画像上に幅64画素×高さ128画素の矩形領域の窓領域を設定する。設定した各窓領域は変換画像と対応付けて存否判定手段225に入力される。なお、スケーリング処理は窓領域の大きさを拡大又は縮小させることで行ってもよい。その場合、窓領域設定手段224は、原サイズの変換画像上に各倍率で拡大又は縮小した窓領域を設定し、窓領域の変換画像を幅64画素×高さ128画素の大きさに拡大又は縮小する。
続いて、存否判定手段225は変換画像の窓領域に立位の人の特徴が現れている度合いであるスコアを識別手段222に算出させる(S244)。
すなわち、まず、存否判定手段225は、各倍率の変換画像と当該変換画像上に設定された窓領域を識別手段222に入力する。識別手段222は、変換画像の各窓領域からHOG特徴量を抽出し、立位の人のHOG特徴量を学習した識別器に各窓領域のHOG特徴量を入力して各窓領域に対するスコアを算出させる。次に、存否判定手段225は、各窓領域に対するスコアのうちの最高スコアを、仮定した姿勢に対するスコアとして選出し、仮定した姿勢と選出したスコアを対応づけて記憶部21に記憶させる。
スコアが算出されると、射影変換手段223は、9通りの姿勢全てのスコアを算出し終えたか確認する(S245)。未だスコアが算出されていない姿勢がある場合(S245にてNO)、射影変換手段223は処理をステップS240に戻して次の姿勢に対する処理を行う。
他方、9通りの姿勢全てのスコアを算出し終えた場合(S245にてYES)、存否判定手段225は、9通りの姿勢の中からスコアが最高である第一位姿勢を決定し(S246)、最高スコアである第一位姿勢のスコアを基準値と比較する(S247)。
最高スコアが基準値以上である場合(S247にてYES)、存否判定手段225は、候補位置に第一位姿勢の人が撮影されていると判定して、第一位姿勢と候補位置を対応付けた判定結果を生成し(S248)、判定結果を記憶部21に記憶させる。
他方、最高スコアが基準値未満である場合(S247にてNO)、存否判定手段225は、候補位置に人が撮影されていないと判定して、その旨と候補位置を対応付けた判定結果を生成し(S249)、判定結果を記憶部21に記憶させる。
判定結果が生成されると、処理は図12のステップS25に進められる。
候補位置設定手段220は、全ての候補位置について人検知処理を終えたか確認し(S25)、未だ人検知処理をしていない候補位置がある場合(S25にてNO)、候補位置設定手段220は処理をステップS23に戻して次の候補位置に対する処理を行う。
他方、全ての候補位置について人検知処理を終えた場合(S25にてYES)、画像処理部22は異常判定手段226として動作し、人が検知されたか否かを確認する(S26)。
すなわち、異常判定手段226は、記憶部21に人が撮影されているとの判定結果が記憶されているか否かを確認し、該当する判定結果が記憶されている場合、人が検知された(S26にてYES)、異常信号を出力部23に出力する(S27)。異常信号を入力された出力部23は監視センターに監視空間への侵入者が検知された旨の通報を行う。
他方、該当する判定結果が記憶されていない場合(S26にてNO)、異常判定手段226は、ステップS27をスキップする。
以上の処理を終えると、画像処理部22は記憶部21のスコアおよび判定結果をクリアして処理をステップS20に戻す。
<第二実施形態の変形例>
上記第二実施形態においては、カメラ20がカメラパラメータを算出する例を示したが、その変形例において、カメラ20はカメラ制御値を画像処理部4に入力し、画像処理部4がカメラ制御値に基づいてカメラパラメータを算出する。
また上記第二実施形態およびの変形例においては、カメラ20がPTZカメラである例を示したが、その変形例において、カメラ20を車載カメラ、空撮カメラなどのように移動によってカメラパラメータが変動するカメラとすることもできる。この場合、カメラ20にSLAM(Simultaneous Localization and Mapping)法などによって自己位置を推定する自己位置推定手段を設け、カメラ20は自己位置に基づいて撮影時に自身のカメラパラメータを算出する。
<第一実施形態および第二実施形態に共通の変形例>
上記各実施形態およびそれらの変形例においては、特徴量としてHOG特徴量を用いる識別手段122、識別手段222の例を示したが、特徴量はHOGに限らずLBP(Local Binary Pattern)、ハールライク(Haar-like)特徴、EOH(Edge of Orientation Histograms)特徴量など所定物体の識別に適した他の公知の特徴量を用いることもできる。
また、上記各実施形態およびそれらの変形例においては、ブースティングアルゴリズムを適用して学習した識別手段122、識別手段222の例を示したが、これらの変形例において識別手段122、識別手段222はサポートベクターマシーン(SVM:Support Vector Machine)とすることもでき、また、パターンマッチング器とすることもできる。なお、パターンマッチング器とする場合、ポジティブ学習画像のみで学習できる。
また、上記各実施形態およびそれらの変形例においては、立位の人の特徴を学習した識別手段122、識別手段222の例を示したが、これらの変形例においては、倒れた人の特徴を学習した識別手段122、識別手段222とすることもできる。この場合、射影変換手段123、射影変換手段223はそれぞれ仮定した姿勢ごとに当該姿勢の人の像を倒れた姿勢の像に変換する射影変換を入力画像に施す。倒れた人の特徴を学習した識別手段122、識別手段222とする場合、立位の場合と比較して学習画像を収集する手間が増大するが、ポジティブ学習画像における手足の変動のバリエーションを増やすことが容易であるため識別精度の向上が期待できる。
また、上記各実施形態およびそれらの変形例においては、所定物体を人とする例を示したが、車両や備品など、人以外の物体を対象とすることもできる。