<動体検知装置の導入例>
図1は本実施の形態に係る動体検知装置1が導入されるシステムの一例を示す図である。本実施の形態に係る動体検知装置1は、例えば、動体である人の有無を検知する。図1に示されるように、動体検知装置1は、例えば、機械式駐車設備が有する可動式の車庫(入庫バース)500内に導入される。動体検知装置1は、車庫500内での人の有無を判定する。図1では、横側から見た際の車庫500の内部が示されている。
車庫500の出入り口には金属製の扉(シャッター)501が設けられている。車庫500に車600が侵入する際には操作盤での操作により扉501が開く。そして、車600が車庫500内に侵入して停止した後、扉501が閉まる。扉501が閉まった後、動体検知装置1で車庫500内に人が存在しないと判定されると、車庫500は可動する。本実施の形態では、動体検知装置1は常に動体検知を行う。機械式駐車設備を管理する管理装置は、扉501が閉まった後の数秒間、動体検知装置1での動体検知結果を参照する。そして、管理装置は、数秒間、動体検知装置1において動体が検知されなかった場合には、車庫500を制御して可動する。
動体検知装置1は、例えば、車庫500の奥側に配置される。動体検知装置1は、送信波VTを出力し、その送信波VTについての反射物での反射波VRを受信する。そして、動体検知装置1は、送信波VTと反射波VRに基づいて、車庫500内での人の有無を判定する。
<動体検知装置の構成>
図2は動体検知装置1の構成を示す図である。図2に示されるように、動体検知装置1は、アンテナ10と、制御部11と、信号発生器12と、検波器13,14と、A/D変換器15とを備えている。これらの構成要素は、例えば、一つのケース16内に収納される。動体検知装置1は、信号発生器12で生成される送信波(進行波)VTをアンテナ10から送信し、当該送信波VTについての複数の反射物300での反射波VRをアンテナ10で受信する。そして、動体検知装置1は、送信波VTと、アンテナ10で受信される複数の反射波VRとが合成されることによって生じる定在波(合成波)に基づいて、車庫500内での人の有無を判定する。複数の反射物300には、車庫500内の人及び車庫500の扉501が含まれる。
信号発生器12は、制御部11からの指示に従って、出力する送信波VTの周波数を変化させることできる。検波器13,14は、互いに異なる位置において定在波の電力を検出し、検出した電力を示す検出信号を出力する。A/D変換器15は、検波器13,14から出力される検出信号をアナログ形式からデジタル形式に変換して出力する。
制御部11は、例えば、CPU(Central Processing Unit)等で構成されたマイクロコンピュータである。制御部11は、一種のデジタル回路であって、A/D変換器15から出力される、デジタル形式の検出信号に基づいて、人の有無を判定する。制御部11は、機能ブロックとして、関数生成部110と、動体判定部111と、周波数制御部112とを備えている。関数生成部110は、A/D変換器15から出力される検出信号に基づいて、後述する判定用関数を生成する。動体判定部111は、関数生成部110で生成される判定用関数に基づいて、車庫500内での人の有無を判定する。周波数制御部112は、信号発生器12が生成する送信波VTの周波数を制御する。
以上の構成を有する動体検知装置1では、検波器13,14、A/D変換器15及び関数生成部110によって、定在波(合成波)に基づいて判定用関数を生成する生成部17が構成されている。なお、A/D変換器15は、マイクロコンピュータである制御部11が備えていても良い。
<判定用関数>
次に判定用関数の生成方法について説明する。以下の説明では、複数の反射物300を区別するために、当該複数の反射物300に対して1番からの連続する複数の正の整数をそれぞれ割り当てる。
本実施の形態では、図2に示されるようにx軸が定められる。x軸の原点x=0は任意の点で良いが、本実施の形態では、例えば信号発生器12の位置を原点とする。送信波VTの振幅及び周波数をそれぞれA及びfとし、光速をcとすると、送信波VTは以下の式(1)で示される。
周波数fは、周波数制御部112による信号発生器12の制御によって、f=f0−fw/2からf=f0+fw/2まで変化させられる。
k番の反射物300までの距離をdkとし、x軸上の任意の点における、送信波VTに対する反射波VRの大きさの比及び両者の位相差を、それぞれγk、φkとすると、k番の反射物300からの反射波VRkは以下の式(2)で示される。
反射物300がn(≧1)個存在するとき、ある周波数fにおける定在波の電力p(f,x)は、以下の式(3)で示される。
ここで、周波数fは、中心周波数をf0、周波数の変化分を表す変数をfdとすると、以下の式(4)で表すことができる。
図2に示されるような、信号発生器12とアンテナ10との間の点x=x1,x2では、信号源の直近であることと空間の伝搬損失を考えれば、γk≪1と考えることができる。この場合、p(f,x)はfdの関数として以下の式(5)のように近似することができる。
ただし、式(5)中のΘは以下の式(6)で表される。
本実施の形態では、送信波VTは、例えば、24GHz帯の電波であって、送信波VTの占有帯域幅は76MHz以下である。したがって、f0≫fdと考えることができる。この場合、Θは以下の式(7)のように近似できる。
検波器13,14が、Θ=0、Θ=π/2となるような2か所で定在波の電力p(fd,x)を検出すると、検波器13,14からは、以下に説明する、互いに直交する2つの検出信号が出力される。
式(7)において、Θ=0となる位置xを検波位置x1とすると、x1=0となる。また、Θ=π/2となる位置xを検波位置x2とすると、x2=−λ/8となる。ただし、λ=c/f0である。
したがって、x=x1の位置で検出される定在波の電力p(fd,x1)と、x=x2の位置で検出される定在波の電力p(fd,x2)は、式(5)より、以下の式(8),(9)で表される。
本実施の形態では、検波器13は、x=x1の位置での定在波の電力を検出し、式(8)で示される検出信号p(fd,0)を出力する。一方で、検波器14は、x=x2の位置での定在波の電力を検出し、式(9)で示される検出信号p(fd,−λ/8)を出力する。A/D変換器15は、検波器13,14から出力されるアナログ形式の検出信号p(fd,0)及び検出信号p(fd,−λ/8)をデジタル形式に変換して制御部11に出力する。
p(fd,0)、p(fd,−λ/8)をfdで微分したものを、それぞれpdiff(fd,0)、pdiff(fd,−λ/8)とすると、pdiff(fd,0)、pdiff(fd,−λ/8)は以下の式(10),(11)で示される。
−pdiff(fd,−λ/8)を実部、−pdiff(fd,0)を虚部とする解析信号pa(fd)は以下の式(12)で示される。
解析信号pa(fd)をfdに関してフーリエ変換すると、以下の式(13)で示される信号P(x)が得られる。
式(13)中のSa(z)はシンク関数であって、以下の式(14)で示される。
信号P(x)は距離xを変数とする関数である。信号P(x)は、上記の非特許文献1では、距離スペクトルP(x)として示されている。
本実施の形態では、制御部11の関数生成部110は、A/D変換器15からの検出信号p(fd,0),p(fd,−λ/8)に基づいて信号P(x)を求める。そして、関数生成部110は、求めた信号P(x)を判定用関数P(x)として使用する。関数生成部110は、検出信号p(fd,0),p(fd,−λ/8)から式(10),(11)で示される信号pdiff(fd,0),pdiff(fd,−λ/8)を求めて、信号pdiff(fd,0),pdiff(fd,−λ/8)から式(12)で示される解析信号pa(fd)を求める。そして、関数生成部110は、解析信号pa(fd)から判定用関数P(x)を求める。
反射物300が一つの場合には(n=1)、判定用関数P(x)の振幅は、x=d1のとき、つまり、距離xが反射物300までの距離d1と一致するとき(x−d1=0)、最大となる。
判定用関数P(x)は、距離xを変数とし、当該変数の値に応じて振幅及び位相が変化する複素信号であると言える。式(13)は以下の式(15)のように書き直すことができる。
式(15)は以下の式(16)のように書き直すことができる。
Dk(x)及びEk(x)は、以下の式(17),(18)で表される。
Dk(x)ejEk(x)は、k番の反射物300に対応する複素信号であって、k番の反射物300がP(x)に与える影響を示している。Dk(x)ejEk(x)を個別複素信号と呼ぶと、判定用関数P(x)は、1番からn番の複数の反射物300にそれぞれ応じた複数の個別複素信号D1(x)ejE1(x)〜Dn(x)ejEn(x)を足し合わせた信号、つまり当該複数の個別複素信号D1(x)ejE1(x)〜Dn(x)ejEn(x)の合成信号であると言える。個別複素信号Dk(x)ejEk(x)は、変数xと、当該個別複素信号Dk(x)ejEk(x)に応じたk番目の反射物300までの距離dkとの間の差分距離に応じて変化する。具体的には、式(17)に示されるように、個別複素信号Dk(x)ejEk(x)の振幅Dk(x)は、変数xと、当該個別複素信号Dk(x)ejEk(x)に応じた反射物300までの距離dkとの間の差分距離(x−dk)に応じて変化する。
さらに、個別複素信号Dk(x)ejEk(x)の振幅Dk(x)は、当該振幅Dk(x)を示す式にシンク関数が含まれていることから、距離dkが一定であれば、差分距離(x−dk)の絶対値|x−dk|が大きくなるほど小さくなる傾向にある。
図3は(x−dk)とSa(x−dk)の関係を示す図である。図3に示されるように、(x−dk)が大きくなるほど、あるいは(x−dk)が小さくなるほど、Sa(x−dk)は小さくなる傾向にある。したがって、式(17)中のSa(2πfw/c×(x−dk))は、絶対値|x−dk|が大きくなるほど小さくなる傾向にある。よって、振幅Dk(x)は、距離dkが一定であれば、絶対値|x−dk|が大きくなるほど小さくなる傾向にある。したがって、振幅Dk(x)は、x=dkのとき最大となる。
判定用関数P(x)では、Sa(2πfw/c×(x−dk))の存在により、変数xが、k番の反射物300までの距離dkと一致する場合には、複数の反射物300のうち、k番の反射物300の影響が比較的強く表れる。
以上のようにして、生成部17は、定在波に基づいて判定用関数P(x)を求める。制御部11の動体判定部111は、生成部17で求められた判定用関数P(x)に基づいて人の有無を判定する。以後、個別複素信号を「影響信号」と呼ぶことがある。また、距離d1〜dnを特に区別する必要がないときには、それぞれを距離dと呼ぶ。
<動体検知>
k番の反射物300が動体である場合には、当該反射物300は動くため、当該反射物300までの距離dkが変化する。その結果、式(15)から分かるように、判定用関数P(x)の振幅|P(x)|及び位相arg(P(x))は変化する。したがって、ある対象距離xzでの判定用関数P(x)の関数値P(xz)(複素信号P(xz))の振幅|P(xz)|の時間変化を観測することによって動体検知が可能となる。同様に、関数値P(xz)の位相arg(P(xz))の時間変化を観測することによって動体検知が可能となる。
一方で、判定用関数P(x)は、距離xと、対応する反射物300までの距離dとの間の差分距離に応じて変化する複数の影響信号(個別複素信号)の合成信号である。非検知対象物が動く場合には、非検知対象物の動きにより、非検知対象物までの距離dが変化することから、非検知対象物に対応する影響信号が変化する。したがって、非検知対象物の動きの影響を受けて、判定用関数P(x)の振幅及び位相が変化する。よって、関数値P(xz)の振幅及び位相の時間変化のそれぞれには、非検知対象物の動きの影響が含まれる。
上述の図1に示される車庫500には、扉501が設けられていることから、風などによる扉501の振動により、判定用関数P(x)の振幅及び位相が変化する。したがって、関数値P(xz)の振幅及び位相の時間変化に基づいて車庫500内での人の有無を判定する場合には、扉501の振動により、車庫500内に人が存在していないにもかかわらず人が存在すると誤って判定する可能性がある。
このように、関数値P(xz)の振幅及び位相の時間変化のそれぞれには、非検知対象物の影響が含まれることから、関数値P(xz)の振幅及び位相の時間変化に基づいて、検知対象物の有無を適切に判定するためには、当該時間変化に含まれる、非検知対象物の影響を、当該時間変化から除去する必要がある。
しかしながら、上述のように、判定用関数P(x)は、距離xと、対応する反射物300までの距離dとの間の差分距離に応じて変化する複数の影響信号の合成信号であることから、関数値P(xz)を振幅と位相とに分けて、それぞれを個別に処理する場合には、振幅あるいは位相の時間変化から、非検知対象物の影響だけを除去することは困難である。以下にこの点について説明する。以下では、n=2の場合、つまり複数の反射物300が、検知対象物と非検知対象物との2つの反射物300で構成されている場合を例に挙げて説明する。
検知対象物が1番の反射物300であるとすると、検知対象物に対応する影響信号はD1(x)ejE1(x)となる。また、非検知対象物が2番目の反射物300であるとすると、非検知対象物に対応する影響信号はD2(x)ejE2(x)となる。対象距離xzでの影響信号D1(x)ejE1(x)の値D1(xz)ejE1(xz)と、対象距離xzでの影響信号D2(x)ejE2(x)の値D2(xz)ejE2(xz)とを複素平面上でベクトル表示すると、例えば図4のようになる。本実施の形態では、複素平面上のベクトルを「複素平面ベクトル」と呼ぶ。
図4では、複素平面ベクトルW1が、検知対象物に対応する値D1(xz)ejE1(xz)を表しており、複素平面ベクトルW2が、非検知対象物に対応する値D2(xz)ejE1(xz)を表している。そして、複素平面ベクトルZが、関数値P(xz)を表している。図4に示されるように、複素平面ベクトルW1と複素平面ベクトルW2とを足し合わせて得られる合成ベクトルが複素平面ベクトルZとなる。
ここで、図4に示されるように、検知対象物の動きにより複素平面ベクトルW1の位相がΔθW1だけ変化し、非検知対象物の動きにより複素平面ベクトルW2の位相がΔθW2だけ変化した場合を考える。複素平面ベクトルZは、複素平面ベクトルW1,W2の合成ベクトルであることから、複素平面ベクトルW1の位相がΔθW1だけ変化し、複素平面ベクトルW2の位相がΔθW2だけ変化した場合に、複素平面ベクトルZの位相が、ΔθW1とΔθW2とを足し合わせた分だけ変化するとは限らない。つまり、複素平面ベクトルZの位相の変化量ΔθZは、ΔθW1とΔθW2との合計値になるとは限らない。したがって、非検知対象物の影響を示す複素平面ベクトルW2の位相変化量ΔθW2を求めることができ、ΔθW2を、複素平面ベクトルZの位相変化量ΔθZから差し引いたとしても、検知対象物の影響を示す複素平面ベクトルW1の位相変化量ΔθW1を得ることはできない。つまり、非検知対象物に対応する値D2(xz)ejE2(xz)の位相の時間変化量が分かり、当該時間変化量を関数値P(xz)の位相の時間変化量から差し引いたとしても、検知対象物に対応する値D1(xz)ejE1(xz)の位相の時間変化量を求めることはできない。よって、関数値P(xz)の位相の時間変化量から、非検知対象物に対応する値D2(xz)ejE2(xz)の位相の時間変化量だけを、つまり非検知対象物の動きの影響だけを除去することは困難である。
振幅についても同様であり、関数値P(xz)の振幅の時間変化量から、非検知対象物に対応する値D2(xz)ejE2(xz)の振幅の時間変化量だけを、つまり非検知対象物の動きの影響だけを除去することは困難である。
このように、関数値P(xz)の振幅の変化量及び位相の変化量のそれぞれでは、複数の反射物300の動きの影響が線形に現れないことから、関数値P(xz)を振幅と位相とに分けて処理する場合には、検知対象物の有無を適切に判断できない可能性がある。
そこで、本実施の形態では、動体判定部111は、関数値P(xz)を振幅と位相とに分けて考えるのではなく、関数値P(xz)を複素平面ベクトルとして扱い、当該複素平面ベクトルの時間変化に基づいて、車庫500内での人の有無を判定する。以下に本実施の形態での動体検知方法について詳細に説明する。
関数値P(xz)を複素平面ベクトルZ(xz)で表し、値Dk(xz)ejEk(xz)を複素平面ベクトルWk(xz)で表すと、式(16)から以下の式(19)が得られる。
式(19)に示されるように、複素平面ベクトルZ(xz)は、複数の複素平面ベクトルW1(xz)〜Wn(xz)を足し合わせて得られるベクトルである。つまり、複素平面ベクトルZ(xz)は、複数の反射物300の影響をそれぞれ示す複数の複素平面ベクトルW1(xz)〜Wn(xz)の合成ベクトルである。
時刻tでの複素平面ベクトルZ(xz)及び複素平面ベクトルWk(xz)を、それぞれZ(xz,t)及びWk(xz,t)とする。そして、複素平面ベクトルZ(xz,t)の時間変化を表す複素平面ベクトルΔZ(xz,t)及び複素平面ベクトルWk(xz,t)の時間変化を表す複素平面ベクトルΔWk(xz,t)を以下の式(20),(21)で表す。
式(20)に示されるように、複素平面ベクトルΔZ(xz,t)は、時刻tでの複素平面ベクトルZ(xz,t)から、それよりも少し前の時刻(t−Δt)での複素平面ベクトルZ(xz,t−Δt)を差し引いて得られる差分ベクトルである。同様に、複素平面ベクトルΔWk(xz,t)は、式(21)に示されるように、時刻tでの複素平面ベクトルWk(xz,t)から、それよりも少し前の時刻(t−Δt)での複素平面ベクトルWk(xz,t−Δt)を差し引いて得られる差分ベクトルである。
式(20)は式(21)を用いて以下の式(22)に書き直すことができる。
式(22)に示されるように、複素平面ベクトルΔZ(xz,t)は、複数の反射物300の影響をそれぞれ示す複数の複素平面ベクトルΔW1(xz,t)〜ΔWn(xz,t)の合成ベクトルとなる。以後、複素平面ベクトルΔW1(xz,t)〜ΔWn(xz,t)を特に区別する必要がない場合には、それぞれを複素平面ベクトルΔW(xz,t)と呼ぶことがある。
静止している非検知対象物に対応する複素平面ベクトルΔW(xz,t)は零となることから、複素平面ベクトルΔZ(xz,t)から、動いている非検知対象物の影響を示す複素平面ベクトルΔW(xz,t)を差し引くことによって、検知対象物に対応する複素平面ベクトルΔW(xz,t)を得ることができる。つまり、関数値P(xz)の時間変化から、非検知対象物の動きの影響だけを除去することができる。よって、複素平面ベクトルΔZ(xz,t)と、非検知対象物の動きの影響を示す複素平面ベクトルΔW(xz,t)との差分ベクトルを求め、当該差分ベクトルに基づいて検知対象物の有無を判定することによって、適切な動体検知を行うことができる。つまり、関数値P(xz)を表す複素平面ベクトルZ(xz)の時間変化を表す複素平面ベクトルΔZ(xz,t)と、当該時間変化に含まれる、非検知対象物の動きの影響を表す複素平面ベクトルΔW(xz,t)との差分ベクトルに基づいて動体の有無を判定することによって、適切な動体検知を行うことができる。
本実施の形態では、動体判定部111は、生成部17で求められた判定用関数P(x)から、複素平面ベクトルΔZ(xz,t)を求める。また動体判定部111は、非検知対象物の動きの影響を表す複素平面ベクトルΔW(xz,t)を求める。本実施の形態では、車庫500の扉501が動くことから、動体判定部111は、扉501の動きの影響を表す複素平面ベクトルΔW(xz,t)を求める。そして、動体判定部111は、複素平面ベクトルΔZ(xz,t)と、扉501の動きの影響を表す複素平面ベクトルΔW(xz,t)との差分ベクトルを求めて、当該差分ベクトルに基づいて、車庫500内での人の有無を判定する。
本実施の形態では、複素平面ベクトルZ(xz,t)、複素平面ベクトルΔZ(xz,t)、複素平面ベクトルW(xz,t)及び複素平面ベクトルΔW(xz,t)のそれぞれは、実軸座標と虚軸座標とに分けられて処理される。
複素平面ベクトルZ(xz,t)の実軸座標及び虚軸座標をそれぞれU(xz,t)及びV(xz,t)とすると、複素平面ベクトルZ(xz,t)は以下の式(23)で表される。
U(xz,t)は関数値P(xz)の実部であり、V(xz,t)は関数値P(xz)の虚部である。関数値P(xz)は直交座標表示で表すと以下の式(24)で示される。
式(24)は、以下の式(25),(26)で表されるREALk(xz)及びIMAGEk(xz)を用いて、以下の式(27)のように書き直すことができる。
そして、U(xz)及びV(xz)は、以下の式(28),(29)で表される。
式(28)に示されるように、実部U(xz)は、複数の反射物300の影響をそれぞれ示す複数の実部REAL1(xz)〜REALn(xz)の総和である。また、式(29)に示されるように、虚部V(xz)は、複数の反射物300の影響をそれぞれ示す複数の虚部IMAGE1(xz)〜IMAGEn(xz)の総和である。したがって、関数値P(xz)の振幅及び位相とは異なり、実部U(xz)及び虚部V(xz)のそれぞれには、複数の反射物300の影響が線形に現れている。
時刻tでのU(xz)及びV(xz)をそれぞれU(xz,t)及びV(xz,t)とし、複素平面ベクトルΔZ(xz,t)の実軸座標及び虚軸座標をそれぞれΔU(xz,t)及びΔV(xz,t)とすると、ΔU(xz,t)及びΔV(xz,t)は以下の式(30),(31)で表される。
複素平面ベクトルΔWk(xz,t)の実軸座標及び虚軸座標をそれぞれΔXk(xz,t)及びΔYk(xz,t)とすると、ΔU(xz,t)及びΔV(xz,t)は以下の式(32),(33)で表される。
式(32)に示されるように、ΔU(xz,t)は、複数の反射物300の影響をそれぞれ示すΔX1(xz,t)〜ΔXn(xz,t)の総和である。したがって、ΔU(xz,t)には、U(xz,t)と同様に、複数の反射物300の影響が線形に現れている。同様に、式(33)に示されるように、ΔV(xz,t)は、複数の反射物300の影響をそれぞれ示すΔY1(xz,t)〜ΔYn(xz,t)の総和である。したがって、ΔV(xz,t)には、V(xz,t)と同様に、複数の反射物300の影響が線形に現れている。
動体判定部111は、動体検知を行う際には、まず、判定用関数P(x)から、関数値P(xz)の実部U(xz)及び虚部V(xz)を求める。次に動体判定部111は、式(30),(31)を用いて、ΔU(xz,t)及びΔV(xz,t)を求める。これは、複素平面ベクトルΔZ(xz,t)を求めることを意味する。また、動体判定部111は、扉501の動きの影響を表す複素平面ベクトルΔW(xz,t)のΔX(xz,t)及びΔY(xz,t)を求める。これは、扉501の動きの影響を表す複素平面ベクトルΔW(xz,t)を求めることを意味する。そして、動体判定部111は、ΔU(xz,t)からΔX(xz,t)を差し引いた値と、ΔV(xz,t)からΔY(xz,t)を差し引いた値とを求める。ΔU(xz,t)からΔX(xz,t)を差し引いた値は、複素平面ベクトルΔZ(xz,t)と複素平面ベクトルΔW(xz,t)との差分ベクトルJの実軸座標であって、ΔV(xz,t)からΔY(xz,t)を差し引いた値は、差分ベクトルJの虚軸座標である。動体判定部111は、差分ベクトルJの実軸座標及び虚実座標に基づいて、車庫500内の人の有無を判定する。差分ベクトルJの実軸座標及び虚軸座標をそれぞれΔUc(xz,t)及びΔVc(xz,t)とすると、ΔUc(xz,t)、ΔVc(xz,t)及び差分ベクトルJは以下の式(34),(35),(36)で表される。
動体判定部111は、ΔUc(xz,t)及びΔVc(xz,t)に基づいて、車庫500内の人の有無を判定する際には、ΔUc(xz,t)及びΔVc(xz,t)を用いて、例えば以下の式(37)で示される判定値Rを求める。判定値Rは差分ベクトルJの大きさである。
動体判定部111は、判定値Rがしきい値よりも大きいときに、車庫500内に人が存在すると判定する。一方で、動体判定部111は、判定値Rがしきい値以下のときに、車庫500内に人が存在しないと判定する。なお、動体判定部111は、判定値Rがしきい値以上のときに車庫500内に人が存在すると判定し、しきい値未満のときに車庫500内に人が存在しないと判定しても良い。また動体判定部111は、判定値Rを他の方法で決定しても良い。
<非検知対象物(扉)の動きの影響を示すΔW(xz,t)の求め方>
次に、動体検知で必要な、非検知対象物の動きの影響を示す複素平面ベクトルΔW(xz,t)の求め方の一例について説明する。以下の説明では、車庫500の扉501までの距離xがxdoorであるとする。
動体判定部111は、扉501が動いているときに求められた、以下の式(38),(39)で表される比率RATIO_U(xz),RATIO_V(xz)を使用して、扉501の動きの影響を示す複素平面ベクトルΔW(xz,t)を求める。
式(38)でのΔU(xdoor,t)は、変数xを、動いている扉501までの距離xdoorとした場合の判定用関数P(x)の関数値P(xdoor)を表す複素平面ベクトルZ(xdoor)の時間変化を表すΔZ(xdoor,t)の実軸座標を示している。一方で、式(39)でのΔV(xdoor,t)はΔZ(xdoor,t)の虚軸座標を示している。したがって、ΔU(xdoor,t)及びΔV(xdoor,t)を求めることによって複素平面ベクトルΔZ(xdoor,t)が求められる。
ここで、上述の式(25),(26),(28),(29)等から分かるように、U(x,t)及びV(x,t)を表す式にはシンク関数Sa(2πfw/c×(x−dk))が含まれていることから、変数xが扉501までの距離xdoorである場合のU(xdoor,t)及びV(xdoor,t)には、扉501の影響が強く表れている。したがって、ΔU(xdoor,t)及びΔV(xdoor,t)には、時刻tでの扉501の動きの影響が強く表れており、ΔU(xdoor,t)及びΔV(xdoor,t)は、時刻tでの扉501の動きを示していると考えることができる。そして、車庫500内では、人及び扉501以外の反射物300はほとんど動かないことから、距離xzのところに人が存在しない場合には、ΔU(xz,t)及びΔV(xz,t)は、扉501の動きの影響だけを受けていると考えることができる。つまり、ΔU(xz,t)及びΔV(xz,t)は、ΔU(xdoor,t)及びΔV(xdoor,t)で示されるベクトルΔZ(xdoor,t)(大きさ及び向き)で扉501が動いている場合に、その扉501の動きが、距離xzにおける複素平面ベクトルZ(xz,t)に与える影響を示していると言える。よって、ΔU(xz,t)/ΔU(xdoor,t)及びΔV(xz,t)/ΔV(xdoor,t)は、扉501の動きを表すベクトルΔZ(xdoor,t)(ΔU(xdoor,t)及びΔV(xdoor,t))を基準とした場合の、その扉501の動きが、複素平面ベクトルZ(xz,t)に与える影響を示している。つまり、ΔU(xz,t)/ΔU(xdoor,t)及びΔV(xz,t)/ΔV(xdoor,t)は、扉501の動きを表すΔZ(xdoor,t)を基準とした場合の、複素平面ベクトルΔZ(xz,t)(ΔU(xz,t)及びΔV(xz,t))に含まれる扉501の動きの影響を示している。
ただし、距離xzの位置に人が存在する場合には、ΔU(xz,t)及びΔV(xz,t)には人の動きの影響も現れてしまう。そこで、本実施の形態では、式(38)に示されるように、ΔU(xz,t)/ΔU(xdoor,t)についての時間平均(互いに異なる時刻tでのM個のΔU(xz,t)/ΔU(xdoor,t)の平均)を求めることによって、ΔU(xz,t)に現れる人の動きの影響を低減している。同様に、式(39)に示されるように、ΔV(xz,t)/ΔV(xdoor,t)についての時間平均(互いに異なる時刻tでのM個のΔV(xz,t)/ΔV(xdoor,t)の平均)を求めることによって、ΔV(xz,t)に現れる人の動きの影響を低減している。よって、比率RATIO_U(xz),RATIO_V(xz)は、扉501の動きを表すΔZ(xdoor)を基準とした場合の、その扉501の動きがZ(xz)に与える影響を示していると言える。
動体判定部111は、時刻tでの複素平面ベクトルΔU(xdoor,t),ΔV(xdoor,t)と、比率RATIO_U(xz),RATIO_V(xz)とに基づいて、時刻tでの扉501の動きの影響を示す複素平面ベクトルΔW(xz,t)を求める。具体的には、動体判定部111は、以下の式(40)を使用して扉501の動きの影響を示す複素平面ベクトルΔW(xz,t)の実軸座標ΔX(xz,t)を求め、以下の式(41)を使用して扉501の動きの影響を示す複素平面ベクトルΔW(xz,t)の虚軸座標ΔY(xz,t)を求める。
上記の式式(34),(35)は、式(40),(41)を用いて以下のように書き直すことができる。
動体判定部111は、扉501の動きの影響を示す時刻tでの複素平面ベクトルΔW(xz,t)を求めると、式(34),(35)(式(40),(41))を用いて差分ベクトルJの実軸座標ΔUc(xz,t)及び虚軸座標ΔVc(xz.t)を求める。そして、動体判定部111は、上記のようにして、実軸座標ΔUc(xz,t)及び虚時座標ΔVc(xz.t)に基づいて車庫500内での人の有無を判定する。
比率RATIO_U(xz,t),RATIO_V(xz,t)は、事前に求められて、制御部11に予め記憶されても良い。また、動体判定部111が動体検知を行う際に比率RATIO_U(xz,t),RATIO_V(xz,t)を求めても良い。
<動体検知処理の具体例>
次に動体判定部111の動作の各種具体例について説明する。
<第1動作例>
図5は動体判定部111の第1動作例を示すフローチャートである。本例では、動体判定部111は、車庫500内の車600の座席に人が存在するか否かを判定する。動体検知装置1から座席までの距離が例えば5mであるとする。つまり、動体判定部111は、動体検知装置1から5mの位置に人が存在するか否かを判定する。また本例では、動体検知装置1から6mの位置の扉501が存在する(xdoor=6m)。そして、本例では、比率RATIO_U(xz,t),RATIO_V(xz,t)は、予め求められて制御部11に記憶されている。
図5に示されるように、ステップs1において、動体判定部111は、上述のようにして、関数生成部110で生成される判定用関数P(x)に基づいて、所定時間Δtごとに、対象距離xzが5mの場合のU(xz)及びV(xz)を求める。さらに、動体判定部111は、判定用関数P(x)に基づいて、所定時間Δtごとに、距離xdoorが6mでのU(xdoor)及びV(xdoor)を求める。
次にステップs2において、動体判定部111は、ΔU(xz,t)及びΔV(xz,t)と、ΔU(xdoor,t)及びΔV(xdoor,t)とを求める。
次にステップs3において、動体判定部111は、制御部11に予め記憶される比率RATIO_U(xz,t),RATIO_V(xz,t)と、ステップs2で求めたΔU(xdoor,t)及びΔV(xdoor,t)とを用いて、式(40),(41)で示されるΔX(xz,t)及びΔY(xz,t)を求める。
次にステップs4において、動体判定部111は、ステップs2で求めたΔU(xz,t)及びΔV(xz,t)と、ステップs3で求めたΔX(xz,t)及びΔY(xz,t)とを用いて、式(34),(35)で示されるΔUc(xz,t)及びΔVc(xz,t)を求める。
次にステップs5において、動体判定部111は、ステップs4で求めたΔUc(xz,t)及びΔVc(xz,t)を用いて、式(37)に示される判定値Rを求める。そして、ステップs6において、動体判定部111は、判定値Rに基づいて、距離x=5mの位置に人が存在するか否かを判定する。動体判定部111は、判定値Rがしきい値よりも大きい場合には、車庫500内での距離x=5mの位置に人が存在すると判定し、判定値Rがしきい値以下の場合には、車庫500内での距離x=5mの位置に人が存在しないと判定する。
動体判定部111は、以上のステップs1〜s6までの動体検知処理を、所定時間ごとに繰り返し実行する。
<第2動作例>
図6は動体判定部111の第2動作例を示すフローチャートである。本例では、第1動作例と同様に、動体判定部111は、動体検知装置1から5mの位置に人が存在するか否かを判定し、動体検知装置1から6mの位置の扉501が存在する(xdoor=6m)。一方で、本例では、制御部11に予め記憶されている比率RATIO_U(xz,t),RATIO_V(xz,t)が、動体検知処理において動体判定部111によって更新される。動体判定部111は、図6に示される動体検知処理を、所定時間ごとに繰り返し実行する。
図6に示されるように、動体判定部111は上述のステップs1及びs2を実行して、ΔU(xz,t)、ΔV(xz,t)、ΔU(xdoor,t)及びΔV(xdoor,t)を求める。
次にステップs11において、動体判定部111は、ΔU(xdoor,t)及びΔV(xdoor,t)を用いて扉501が動いているか否かを判定する。動体判定部111は、例えば、以下の式(44)を用いて判定値Sを求める。そして、動体判定部111は、判定値Sがしきい値よりも大きい場合には、扉501が動いていると判定する。一方で、動体判定部111は、判定値Sがしきい値以下の場合には、扉501が動いていないと判定する。
動体判定部111は、ステップs11において扉501が動いていると判定すると、ステップs12において、RATIO_U(xz,t)及びRATIO_V(xz,t)を更新する。具体的には、動体判定部111は、ステップs2で求めたΔU(xz,t)、ΔV(xz,t)、ΔU(xdoor,t)及びΔV(xdoor,t)と、式(38),(39)を用いて、RATIO_U(xz,t)及びRATIO_V(xz,t)を新たに求める。そして、動体判定部111は、制御部11に記憶されているRATIO_U(xz,t)及びRATIO_V(xz,t)を、新たに求めたRATIO_U(xz,t),RATIO_V(xz,t)に置き換える。これにより、制御部11に記憶されるRATIO_U(xz,t)及びRATIO_V(xz,t)が更新される。
ステップs12が実行されると、動体判定部111は、ステップs3を実行して、ΔX(xz,t)及びΔY(xz,t)を求める。ここでは、ステップs12で更新されたRATIO_U(xz,t)及びRATIO_V(xz,t)が使用される。その後、動体判定部111は、同様にしてステップs4〜s6を実行する。ステップs11において、動体判定部111は、扉501が動いていないと判定すると、ステップs12を実行せずにステップs3〜s6を実行する。
このように、本動作例では、動体検知処理においてRATIO_U(xz,t)及びRATIO_V(xz,t)が更新される。扉501の動きがΔU(xz,t)及びΔV(xz,t)に与える影響は、一定ではなく、扉501までの距離によってもリアルタイムに変化することから、RATIO_U(xz,t)及びRATIO_V(xz,t)が更新されることによって、車庫500内での人の有無の判定精度がさらに向上する。
<第3動作例>
図7は動体判定部111の第3動作例を示すフローチャートである。本例では、動体判定部111は、動体検知装置1から3m〜5mの範囲内に人が存在するか否かを判定する。つまり、本例では、動体検知装置1の判定範囲が、動体検知装置1から3m〜5mの範囲となっている。これにより、動体判定部111は、車庫500の車600内に人が存在するか否かを判定することができる。本例では、判定範囲内の9個の対象距離xzが使用される。具体的には、3m、3.25m、3.5m、3.75m、4m、4.25m、4.5m、4.75m、5mが対象距離xzとして使用される。本例では、9個の対象距離xzのそれぞれでのRATIO_U(xz,t)及びRATIO_V(xz,t)が予め求められて制御部11に記憶されている。動体判定部111は、9個の対象距離xzにそれぞれ応じた9組のRATIO_U(xz,t)及びRATIO_V(xz,t)を更新する。また本例では、第1及び第2動作例と同様に、動体検知装置1から6mの位置の扉501が存在する(xdoor=6m)。動体判定部111は、図7に示される動体検知処理を、所定時間ごとに繰り返し実行する。
図7に示されるように、ステップs21において、動体判定部111は、判定用関数P(x)に基づいて、3m〜5mの9個の対象距離xzのそれぞれでのU(xz)及びV(xz)を所定時間Δtごとに求める。さらに、動体判定部111は、判定用関数P(x)に基づいて、所定時間Δtごとに、距離xdoorが6mでのU(xdoor)及びV(xdoor)を求める。
次にステップs22において、動体判定部111は、3m〜5mの9個の対象距離xzのそれぞれでのΔU(xz,t)及びΔV(xz,t)と、ΔU(xdoor,t)及びΔV(xdoor,t)とを求める。
次に動体判定部111は、上述のステップs11を実行して、扉501が動いているか否かを判定する。
動体判定部111は、ステップs11において、扉501が動いていると判定すると、ステップs23において、3m〜5mの9個の対象距離xzにそれぞれ対応する9組のRATIO_U(xz,t)及びRATIO_V(xz,t)を更新する。具体的には、動体判定部111は、ステップs22で求めたΔU(xz,t)、ΔV(xz,t)、ΔU(xdoor,t)及びΔV(xdoor,t)と、式(38),(39)を用いて、9個の対象距離xzにそれぞれ対応する9組のRATIO_U(xz,t)及びRATIO_V(xz,t)を新たに求める。そして、動体判定部111は、制御部11に記憶されている9組のRATIO_U(xz,t)及びRATIO_V(xz,t)を、新たに求めた9組のRATIO_U(xz,t)及びRATIO_V(xz,t)に置き換える。これにより、3m〜5mの9個の対象距離xzにそれぞれ対応する9組のRATIO_U(xz,t)及びRATIO_V(xz,t)が更新される。
ステップs23が実行されると、動体判定部111は、ステップs24において、制御部11内の9組のRATIO_U(xz,t)及びRATIO_V(xz,t)と、ステップs22で求めたΔU(xdoor,t)及びΔV(xdoor,t)とを用いて、3m〜5mの9個の対象距離xzのそれぞれでのΔX(xz,t)及びΔY(xz,t)を求める。ここでは、ステップs23で更新された9組のRATIO_U(xz,t)及びRATIO_V(xz,t)が使用される。
次にステップs25において、動体判定部111は、ステップs22で求めたΔU(xz,t)及びΔV(xz,t)と、ステップs24で求めたΔX(xz,t)及びΔY(xz,t)とを用いて、3m〜5mの9個の対象距離xzのそれぞれでのΔUc(xz,t)及びΔVc(xz,t)を求める。これにより、9個の対象距離xzにそれぞれ対応する9組のΔUc(xz,t)及びΔVc(xz,t)が得られる。
次にステップs26において、動体判定部111は、ステップs25で求めた9組のΔUc(xz,t)及びΔVc(xz,t)の各組についての判定値Rを求める。これより、3m〜5mの9個の対象距離xzにそれぞれ対応する9個の判定値Rが得られる。
次にステップs27において、動体判定部111は、ステップs26で求めた9個の判定値Rのうちの最大値がしきい値よりも大きい場合には、動体検知装置1から3m〜5mの判定範囲内に、つまり車600内に人が存在すると判定する。一方で、動体判定部111は、当該最大値がしきい値以下の場合には、動体検知装置1から3m〜5mの判定範囲内に、つまり車600内に人が存在しないと判定する。
動体判定部111は、ステップs11において、扉501が動いていないと判定すると、ステップs23を実行せずにステップs24〜s27を実行し、判定範囲内に人が存在するか否かを判定する。
このように、本例では、3m〜5mの判定範囲内での複数の対象距離xzのそれぞれについて、ΔUc(xz,t)及びΔVc(xz,t)が求められている。言い換えれば、判定範囲内での複数の対象距離xzのそれぞれについて、差分ベクトルJが求められている。対象距離xzの位置に人が存在する場合には、差分ベクトルJの大きさが大きくなることから、ΔUc(xz,t)及びΔVc(xz,t)の少なくとも一方が大きくなる。したがって、判定範囲内での複数の対象距離xzについて求められたΔUc(xz,t)及びΔVc(xz,t)に基づいて人の有無を判定することによって、当該判定範囲内での人の有無を適切に判定することができる。
<第4動作例>
図8は動体判定部111の第4動作例を示すフローチャートである。本例では、動体判定部111は、動体検知装置1から0〜5mの範囲内に人が存在するか否かを判定する。つまり、動体検知装置1の判定範囲は、動体検知装置1から0〜5mの範囲となっている。これにより、動体判定部111は、車庫500の全領域を対象として、車庫500内に人が存在するか否かを判定することができる。本例では、判定範囲内の21個の対象距離xzが使用される。具体的には、0m、0.25m、0.5m、0.75m、1m、1.25m、1.5m、1.75m、2m、2.25m、2.5m、2.75m、3m、3.25m、3.5m、3.75m、4m、4.25m、4.5m、4.75m、5mが対象距離xzとして使用される。本例では、21個の対象距離xzのそれぞれでのRATIO_U(xz,t)及びRATIO_V(xz,t)が予め求められて制御部11に記憶されている。動体判定部111は、21個の対象距離xzにそれぞれ応じた21組のRATIO_U(xz,t)及びRATIO_V(xz,t)を更新する。また本例では、第1及び第2動作例と同様に、動体検知装置1から6mの位置の扉501が存在する(xdoor=6m)。動体判定部111は、図8に示される動体検知処理を、所定時間ごとに繰り返し実行する。
図8に示されるように、ステップs31において、動体判定部111は、判定用関数P(x)に基づいて、0m〜5mの21個の対象距離xzのそれぞれでのU(xz)及びV(xz)を所定時間Δtごとに求める。さらに、動体判定部111は、判定用関数P(x)に基づいて、所定時間Δtごとに、距離xdoorが6mでのU(xdoor)及びV(xdoor)を求める。
次にステップs32において、動体判定部111は、0m〜5mの21個の対象距離xzのそれぞれでのΔU(xz,t)及びΔV(xz,t)と、ΔU(xdoor,t)及びΔV(xdoor,t)とを求める。
次に動体判定部111は上述のステップs11を実行して、扉501が動いているか否かを判定する。
動体判定部111は、ステップs11において、扉501が動いていると判定すると、ステップs33において、0m〜5mの21個の対象距離xzにそれぞれ対応する21組のRATIO_U(xz,t)及びRATIO_V(xz,t)を更新する。具体的には、動体判定部111は、ステップs32で求めたΔU(xz,t)、ΔV(xz,t)、ΔU(xdoor,t)及びΔV(xdoor,t)と、式(38),(39)を用いて、21個の対象距離xzにそれぞれ対応する21組のRATIO_U(xz,t)及びRATIO_V(xz,t)を新たに求める。そして、動体判定部111は、制御部11に記憶されている21組のRATIO_U(xz,t)及びRATIO_V(xz,t)を、新たに求めた21組のRATIO_U(xz,t)及びRATIO_V(xz,t)に置き換える。これにより、0m〜5mの21個の対象距離xzにそれぞれ対応する21組のRATIO_U(xz,t)及びRATIO_V(xz,t)が更新される。
ステップs33が実行されると、動体判定部111は、ステップs34において、制御部11内の21組のRATIO_U(xz,t)及びRATIO_V(xz,t)と、ステップs32で求めたΔU(xdoor,t)及びΔV(xdoor,t)とを用いて、0m〜5mの21個の対象距離xzのそれぞれでのΔX(xz,t)及びΔY(xz,t)を求める。ここでは、ステップs33で更新された21組のRATIO_U(xz,t)及びRATIO_V(xz,t)が使用される。
次にステップs35において、動体判定部111は、ステップs32で求めたΔU(xz,t)及びΔV(xz,t)と、ステップs34で求めたΔX(xz,t)及びΔY(xz,t)とを用いて、0m〜5mの21個の対象距離xzのそれぞれでのΔUc(xz,t)及びΔVc(xz,t)を求める。これにより、21個の対象距離xzにそれぞれ対応する21組のΔUc(xz,t)及びΔVc(xz,t)が得られる。
次にステップs36において、動体判定部111は、ステップs35で求めた21組のΔUc(xz,t)及びΔVc(xz,t)の各組についての判定値Rを求める。これより、0m〜5mの21個の対象距離xzにそれぞれ対応する21個の判定値Rが得られる。
次にステップs37において、動体判定部111は、ステップs36で求めた21個の判定値Rのうちの最大値がしきい値よりも大きい場合には、動体検知装置1から0m〜5mの範囲内に、つまり車庫500内に人が存在すると判定する。一方で、動体判定部111は、当該最大値がしきい値以下の場合には、動体検知装置1から0m〜5mの範囲内に、つまり車庫500内に人が存在しないと判定する。
動体判定部111は、ステップs11において、扉501が動いていないと判定すると、ステップs33を実行せずにステップs34〜s37を実行し、判定範囲内に人が存在するか否かを判定する。
なお、第3及び第4動作例では、RATIO_U(xz,t)及びRATIO_V(xz,t)は更新されているが、第1動作例と同様に、更新されなくても良い。
また、の第3及び第4動作例では、複数の判定値Rのうちの最大値としきい値との比較結果に基づいて人の有無が判定されているが、複数の判定値Rの合計値としきい値との比較結果に基づいて人の有無が判定されも良い。
以上のように、本実施の形態では、関数値P(xz)を表す複素平面ベクトルZ(xz)の時間変化を表す複素平面ベクトルΔZ(xz,t)と、当該時間変化に含まれる、非検知対象物の動きの影響を表す複素平面ベクトルΔW(xz,t)との差分ベクトルJに基づいて動体の有無を判定しているため、適切な動体検知を行うことができる。よって、関数値P(xz)の振幅の時間変化、あるいは関数値P(xz)の位相の時間変化に基づいて動体検知を行う場合よりも、動体の有無の判定精度を向上することができる。
また、特許文献1のように、ドップラセンサが用いられた動体検知では、検知対象物と非検知対象物が、ドップラセンサから見て同じ方向に存在する場合には、検知対象物と非検知対象物とを区別することが困難である。これに対して、本実施の形態に係る動体検知では、変数xと反射物300までの距離dとの間の差分距離に応じて変化する判定用関数P(x)が使用されることから、検知対象物及び非検知対象物が、動体検知装置1から見て同じ方向に存在する場合であっても、検知対象物及び非検知対象物までの距離dが異なれば、検知対象物及び非検知対象物を区別することができる。よって、本実施の形態に係る動体検知では、ドップラセンサが用いられた動体検知よりも、動体の有無の判定精度が向上する。
<第1変形例>
本変形例では、非検知対象物の動きの影響を示す複素平面ベクトルΔW(xz,t)の求め方の他の例について説明する。
本変形例では、動体判定部111は、以下の式(45),(46)で表される比率RATIO_U1(xz,t),RATIO_V1(xz,t)を使用して、扉501の動きの影響を示す複素平面ベクトルΔW(xz,t)を求める。
ただし、α1は適宜設定される更新割合(0≦α1≦1)である。また、β1は、適宜設定されるしきい値VELthを用いて以下の式(47)で表される。
ここで、ΔUn(xz,t)とΔVn(xz,t)を以下の式(48),(49)で表す。
ΔUn(xz,t)を実軸座標とし、ΔVn(xz,t)を虚軸座標とする複素平面ベクトルΔZn(xz,t)は、振幅として、複素平面ベクトルΔZ(xz,t)の振幅を複素平面ベクトルΔZ(xdoor,t)の振幅で正規化して得られる値を持ち、位相として、複素平面ベクトルΔZ(xz,t)の位相から複素平面ベクトルΔZ(xdoor,t)の位相を差し引いて得られる値を持つベクトルである。
図9はΔZ(xz,t)とΔZ(xdoor,t)との関係の一例を示す図である。図10は、ΔZ(xz,t)とΔZ(xdoor,t)との関係が図9に示される関係である場合でのΔZn(xz,t)を示す図である。図10に示されるΔZn(xz,t)は、図9に示されるΔZ(xdoor,t)の向きをx軸のプラス方向に一致させ、当該ΔZ(xdoor,t)の振幅を1に正規化した際のΔZ(xz,t)であると言える。
上述のように、ΔU(xz,t)及びΔV(xz,t)で示されるベクトルΔZ(xz,t)は、ΔU(xdoor,t)及びΔV(xdoor,t)で示されるベクトルΔZ(xdoor,t)で扉501が動いている場合に、その扉501の動きが、複素平面ベクトルZ(xz)に与える影響を示していると言える。したがって、ΔUn(xz,t)及びΔVn(xz,t)で示されるベクトルΔZn(xz,t)は、単位ベクトルUNT=[1,0]で扉501が動いている場合に、その扉501の動きが複素平面ベクトルZ(xz,t)に与える影響を示していると言える。つまり、ΔZn(xz,t)は、単位ベクトルUNTで扉501が動いている場合の、ΔZ(xz)に含まれる扉501の動きの影響を示していると言える。
ただし、上述のように、距離xzの位置に人が存在する場合には、ΔU(xz,t)及びΔV(xz,t)には人の動きの影響も現れてしまう。したがって、距離xzの位置に人が存在する場合には、ΔUn(xz,t)及びΔVn(xz,t)には人の動きの影響も現れてしまう。
そこで、本変形例では、上記の式(46),(47)を用いて、比率RATIO_U1(xz,t),RATIO_V1(xz,t)を更新することによって、等価的に、これまでの時刻のΔU(xz,t)及びΔV(xz,t)の重み付きの時間平均を求めている。これにより、比率RATIO_U1(xz,t),RATIO_V1(xz,t)での人の動きの影響を低減している。よって、比率RATIO_U1(xz,t),RATIO_V1(xz,t)は、扉501の動きが、実軸座標及び虚軸座標がそれぞれ“1”及び“0”の複素平面ベクトルで表される場合での、当該扉501の動きが複素平面ベクトルZ(xz,t)に与える影響をおおむね示している。つまり、比率RATIO_U1(xz,t),RATIO_V1(xz,t)は、扉501の動きが、実軸座標及び虚軸座標がそれぞれ“1”及び“0”の複素平面ベクトルで表される場合での、複数平面ベクトルΔZ(xz,t)に含まれる当該扉501の動きの影響を示している。
式(45),(46)において、β1α1は、ΔUn(xz,t)及びΔVn(xz,t)の更新割合である。更新割合β1α1は、RATIO_U1(xz,t)及びRATIO_V1(xz,t)が更新される際に、ΔUn(xz,t)及びΔVn(xz,t)がどの程度反映されるかを示している。式(47)に示されるように、β1は、(ΔU(xdoor,t)2+ΔV(xdoor,t)2)が大きいほど大きくなる(ただし上限は1)。したがって、β1は、x=xdoorの位置に存在する扉501が大きく動くほど大きくなると言える。よって、RATIO_U1(xz,t)及びRATIO_V1(xz,t)が更新される際に、扉501が大きく動いているほど、ΔUn(xz,t)及びΔVn(xz,t)がRATIO_U1(xz,t)及びRATIO_V1(xz,t)に強く反映される。
このように、本変形例では、RATIO_U1(xz,t)及びRATIO_V1(xz,t)が更新される際に、そのときの扉501の動きに応じて、ΔUn(xz,t)及びΔVn(xz,t)がRATIO_U1(xz,t)及びRATIO_V1(xz,t)に反映される程度が変化する。よって、RATIO_U1(xz,t)及びRATIO_V1(xz,t)を適切に更新できる。
動体判定部111は、時刻tでの複素平面ベクトルΔU(xdoor,t),ΔV(xdoor,t)と、比率RATIO_U1(xz),RATIO_V1(xz)とに基づいて、時刻tでの扉501の動きの影響を示す複素平面ベクトルΔW(xz,t)を求める。具体的には、動体判定部111は、以下の式(50)を使用して扉501の動きの影響を示す複素平面ベクトルΔW(xz,t)の実軸座標ΔX(xz,t)を求め、以下の式(51)を使用して扉501の動きの影響を示す複素平面ベクトルΔW(xz,t)の虚軸座標ΔY(xz,t)を求める。
上記の式(34),(35)は、式(50),(51)を用いて以下のように書き直すことができる。
図11は、RATIO_U1(xz,t)を実軸座標とし、RATIO_V1(xz,t)を虚軸座標とする複素平面ベクトルL(xz,t)と、単位ベクトルUNTとの関係の一例を示す図である。図12は、L(xz,t)と単位ベクトルUNTとの関係が図11に示される関係である場合での、扉501の動きの影響を示す複素平面ベクトルΔW(xz,t)の一例を示す図である。式(50),(51)により、扉501の動きがΔZ(xdoor,t)で表される場合での、ΔZ(xz,t)に含まれる当該扉501の動きの影響を示すΔW(xz,t)を求めることができる。
動体判定部111は、扉501の動きの影響を示す時刻tでの複素平面ベクトルΔW(xz,t)を求めると、式(34),(35)(式(50),(51))を用いて差分ベクトルJの実軸座標ΔUc(xz,t)及び虚軸座標ΔVc(xz.t)を求める。そして、動体判定部111は、上記のようにして、実軸座標ΔUc(xz,t)及び虚時座標ΔVc(xz.t)に基づいて車庫500内での人の有無を判定する。
本変形例のようにして、非検知対象物の動きの影響を示す複素平面ベクトルΔW(xz,t)が求められる際には、上述の図5〜8に示される動作例では、RATIO_U(xz,t)及びRATIO_V(xz,t)の代わりにRATIO_U1(xz,t)及びRATIO_V1(xz,t)が使用される。
また図6〜8の動作例のように、動体検知処理においてRATIO_U1(xz,t)及びRATIO_V1(xz,t)が更新される際には、ステップs11が実行されない。図13は、図8に対応する本変形例でのフローチャートである。図13に示されるように、本変形例では、ステップs32の直後にステップs33が実行される。このステップs33では、RATIO_U1(xz,t)及びRATIO_V1(xz,t)が式(45),(46)が用いられて更新される。式(45),(46)でのRATIO_U1(xz,t−Δt)及びRATIO_V1(xz,t−Δt)としては、制御部11に記憶されている、前回求められたRATIO_U1(xz)及びRATIO_V1(xz)が使用される。
なお、図6の動作例でも同様であり、ステップs11が実行されずに、ステップs2の直後にステップs12が実行されて、RATIO_U1(xz,t)及びRATIO_V1(xz,t)が更新されても良い。同様に、図7の動作例においても、ステップs11が実行されずに、ステップs22の直後にステップs23が実行されて、RATIO_U1(xz,t)及びRATIO_V1(xz,t)されても良い。
<第2変形例>
車庫500内では、扉501の動きよりも十分に小さいものの、扉501以外の動く反射物300が存在する可能性がある。例えば、車庫500内の車600の室内において人形あるいはお守りが吊り下げられている場合には、当該人形あるいはお守りが、動く反射物300となる。このような場合には、ΔUc(xz,t)及びΔV(xz,t)に、扉501以外の動く反射物300の影響が含まれる可能性があり、車庫500内の人の有無の判定精度が低下する可能性がある。
そこで、本変形例では、動体判定部111は、ΔUc(xz,t)及びΔVc(xz,t)のそれぞれから、人の動きに応じた周波数成分、具体的には呼吸による人の振動に応じた周波数成分を抽出する。そして、動体判定部111は、抽出した周波数成分に基づいて車庫500内での人の有無を判定する。これにより、車庫500内の人の有無の判定精度が向上する。
呼吸による人の振動の周波数はおおむね0.2〜0.5Hzであるため、動体判定部111は、ΔUc(xz,t)及びΔVc(xz,t)のそれぞれから、0.2〜0.5Hzまでの周波数成分を抽出する。ΔUc(xz,t)から抽出した周波数成分の大きさをΔUcc(xz,t)とし、ΔVc(xz,t)から抽出した周波数成分の大きさをΔVcc(xz,t)とすると、動体判定部111は、上記の式(37)において、ΔUc(xz,t)及びΔVc(xz,t)の代わりにそれぞれΔUcc(xz,t)及びΔVcc(xz,t)を使用して判定値Rを求める。ΔUcc(xz,t)及びΔVcc(xz,t)については、FFT(Fast Fourier Transform)あるいはフィルタなどを用いて求めることができる。
<第3変形例>
第2変形例では、ΔUc(xz,t)及びΔVc(xz,t)から0.2〜0.5Hzまでの周波数成分が抽出されていたが、この代わりに、U(x)及びV(x)を使用する場合に、U(x)及びV(x)のそれぞれでの、0.2〜0.5Hzまでの周波数成分だけを使用しても良い。この場合には、上述の説明において、U(x)の代わりに、それに含まれる0.2〜0.5Hzまでの周波数成分の大きさが、V(x)の代わりに、それに含まれる0.2〜0.5Hzまでの周波数成分の大きさが使用されて、ΔU(xz,t)、ΔV(xz,t)、ΔU(xdoor,t)、ΔV(xdoor,t)が求められる。本変形例では、第2変形例と同様に、車庫500内の人の有無の判定精度が向上する。
以上のように、動体検知装置1は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この発明がそれに限定されるものではない。また、上述した各種変形例は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の変形例が、この発明の範囲から外れることなく想定され得るものと解される。