(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
図1は、本発明による物体位置検出装置の一実施例を示す構成図である。以下の例では物体として人物の位置を検出する場合について説明する。物体位置検出装置1では、人物を含む被写体までの距離をTOF方式で測定し、測定した被写体の各部までの距離を例えば色で表示し、距離画像として出力する。その際、被写体全体から人物以外の背景画像を除去することで、検出対象である人物の位置や姿勢を見やすく表示するものである。
【0011】
物体位置検出装置1は、TOF方式による距離画像を生成する距離画像生成部10(以下、TOFカメラ、または単にカメラとも呼ぶ)と、距離画像から人物などの物体の部分を抽出して物体画像(人物画像)を生成する物体画像生成部16とを備える。また、各部の動作は図示しないCPUによって制御される。
【0012】
TOFカメラ10は、被写体にパルス光を照射するレーザダイオード(LD)や発光ダイオード(LED)などの発光部11と、被写体から反射したパルス光を受光するCCDセンサやCMOSセンサなどの受光部12と、発光部11を駆動するとともに受光部12の検出信号から被写体までの距離を計算する距離計算部13を含む。受光部12では被写体の2次元画像を撮影することで、距離計算部13は、被写体の2次元画像の距離データを距離画像として出力する。TOFによる距離測定の原理は後述する。
【0013】
背景画像取込部14は、距離計算部13から人物がいない状態の距離画像(以下、背景画像Bと呼ぶ)を取り込み、背景画像記憶部15に保存する。
【0014】
物体画像生成部16は、差分器17とノイズ除去部18と画像処理部19を備え、TOFカメラ10で生成した距離画像から物体画像(人物画像)を生成して出力する。距離計算部13から人物を含む距離画像(以下、入力画像Aと呼ぶ)が出力されると、差分器17は、背景画像記憶部15に保存している背景画像Bとの差分化処理を行い、差分画像Cを出力する。この差分化処理は、入力画像Aと背景画像Bとの距離差が閾値より大きい領域では入力画像Aの信号をそのまま通過し、距離差が閾値以下の領域では入力画像Aの信号を無信号とする処理である。無信号とする処理とは、具体的には、距離データをカメラから無限遠(あるいは距離データとして取りえる最も遠い位置)に置き換えることを意味する。差分画像Cでは、入力画像Aから背景が除去され、例えば人物等の物体が抽出されたものとなる。
【0015】
ノイズ除去部18は、例えばローパスフィルタで構成し、差分画像Cに含まれる残留ノイズをさらに除去して物体画像Eとして出力する。画像処理部19は、距離データに基づき人物の物体画像Eの色相を変えるカラー化処理を行い、外部装置に出力またはディスプレイ等に表示する。画像処理は、明度、コントラスト等を変える処理でも構わない。ユーザはカラー化された物体画像Eを見ることで、人物等の物体の位置(距離)と形状(姿勢)を容易に知ることができる。
【0016】
本実施例では、差分器17に設定する背景除去のための閾値dを、自動的にかつ適応的に設定する。すなわち、TOFカメラ10と検出対象である物体との位置関係から閾値を最適に設定する。そのため、TOFカメラ10の設置角度(水平方向に対する傾斜角度)を設置角度検出部20にて検出する。設置角度検出部20には例えば加速度センサを用いる。また、物体距離・姿勢検出部21は、距離計算部13から得られる距離データにより、カメラから物体(人物)までの距離あるいは物体の姿勢を検出する。閾値記憶部22は、設置角度、物体位置・姿勢をパラメータとして、最適な閾値dを予めルックアップテーブル(LUT)に記憶している。なお、設置角度検出部20と物体距離・姿勢検出部21は、機能を統合して1つの検出部で構成してもよいし、あるいはいずれか一方の検出部のみ備える構成でも良い。
【0017】
次に、各部の動作を説明する。
図2Aと
図2Bは、TOF法による距離測定の原理を説明する図である。TOF(タイム・オブ・フライト)法では、出射光信号と受光信号の時間差により距離を算出する、
図2AはTOFカメラ(距離画像生成部)10と被写体2(例えば人物)の関係を示す図である。TOFカメラ10は発光部11と受光部12を有し、発光部11から被写体2へ距離測定用の光31を出射する。出射光には赤外光を用いる。受光部12は、被写体2に出射された光の反射光32を受光するが、対物レンズ33を介してCCDなどの2次元センサ34で受光する。被写体2は、発光部11および受光部12からL[m]離れた位置に存在する。ここで、光速をc[m/s]として、発光部11が光出射を開始してから受光部12が反射光を受光するまでの時間差をt[s]とすると、被写体2までの距離L[m]は、
L[m]=c[m/s]×t[s]/2・・・(1)
で求められる。
【0018】
図2Bは時間差tの測定を示す図である。距離計算部13は、発光部11から出射した光31のタイミングと、受光部12で反射光32を受光したタイミングから、その時間差tを測定し、式(1)から被写体2との距離Lを算出する。また、2次元センサ34における各画素位置での受光タイミングのずれから、被写体各位置の距離の差、すなわち被写体の凹凸形状を求めることができる。
【0019】
図3は、設置角度検出部20の動作を説明する図である。設置角度検出部20は例えば加速度センサからなり、そのセンサ出力値からTOFカメラ10の設置角度θを検出する。TOFカメラ10が物体位置検出装置1と一体で構成されていれば、物体位置検出装置1の設置角度と同じ意味である。これにより、TOFカメラ10からの光出射方向が水平方向(θ=0°)か、垂直方向(θ=90°)か、あるいは斜め方向(θ=45°)かを判定する。判定した設置角度θは、差分器17における閾値dの設定に利用する。以下では、典型的な水平設置と垂直設置の場合を例として、距離画像と物体画像の生成について説明する。
【0020】
図4は、TOFカメラの配置と被写体の輝度画像の関係を示す図である。TOFカメラ10の配置が水平設置と垂直設置の場合に、カメラの受光部12で得られる被写体(人物と背景)の輝度画像の例を示す。(a)は人物のいない背景画像であり、(b)は人物が含まれる入力画像である。背景として、垂直な壁面41と水平な床面42とからなる空間を想定し、水平設置のカメラAは壁面41から3mだけ離れた位置に、垂直設置のカメラBは床面42から3mだけ離れた位置に配置している。人物43は壁面41の前に起立している状態である。このように、ここでは簡単のために、背景は平面状の壁面41と床面42としたが、壁面や床面が凹凸形状であったり、机や椅子などの人物以外の物体が存在していても構わない。これらは後述するように、入力画像と背景画像との差分化処理により除去されるからである。
【0021】
カメラA(水平設置)の場合は、人物43と壁面41を正面から見た画像となり、カメラB(垂直設置)の場合は、人物43と床面42を頭上から見た画像となる。以下、このような人物・背景の構図で得られる距離画像について説明する。
【0022】
図5は、TOFカメラの配置と距離画像・物体画像の関係を示す図である。カメラA(水平設置)とカメラB(垂直設置)の場合に得られる距離画像と、距離画像に対して差分化を行った物体画像(ここでは人物画像)について説明する。各画像の下段には、破線で示した断面位置におけるカメラからの距離信号を模式的に示す。
【0023】
(a)はカメラA(水平設置)の場合で、(a1)は背景画像B、(a2)は人物が含まれる入力画像Aである。下段の距離信号では、壁面41や人物43の位置を示す信号の他に、ショットノイズ50(ジグザグ状で示す)が重畳している。
【0024】
(a3)と(a4)は、入力画像Aから背景画像Bを差分化を行った人物画像Eを示す。差分器17では、入力画像Aと背景画像Bの画像内の対応する各画素位置での距離データの差分演算を行って、人物43を抽出した差分画像Cとする。この段階で背景画像Bに存在する壁面41の形状は除去される。この差分化処理では、距離信号の最奥位置(この場合は壁面41)から手前方向に所定の幅(閾値d)の領域51を設定し、そこに含まれる信号を無限遠の信号に置き換える。その結果差分画像Cでは、領域51に含まれるノイズは見えなくなり、領域51を超えて手前にあるノイズが残ることになる。なお、残留するノイズはノイズ除去部18でさらに低減されて、人物画像Eとなる。
【0025】
(a3)は閾値d=15cmで背景を除去した場合、(a4)は閾値d=30cmで背景を除去した場合である。閾値dを大きくすると(a4)のようにショットノイズ50は目立ちにくくなるが、反面、人物43の信号の一部がノイズとして除去されてしまう。よってこの例では、(a3)のように人物43の信号を残した状態でノイズを除去するのが望ましい。すなわち、閾値dとして15cmの設定が最適である。
【0026】
(b)はカメラB(垂直設置)の場合で、(b1)は背景画像B、(b2)は人物が含まれる入力画像Aである。下段の距離信号では、床面42や人物43の位置を示す信号の他に、ショットノイズ50が重畳している。(b2)の入力画像Aでは、カメラから見える人物43は主に上半身であり、下半身は上半身の陰になるので、下半身の画像は元々少ない。(b3)は閾値d=15cmで背景を除去した場合、(b4)は閾値d=30cmで背景を除去した場合である。これらを比較すると、(b4)のように閾値dを大きくしてノイズ除去を優先するのが望ましく、これにより削除される人物43の信号は僅かであり支障がない。
【0027】
本実施例では、カメラと人物、および背景の位置関係が変化しても、現在の位置関係に応じて背景除去の閾値を適応的に設定するようにしたので、カメラの配置が変化しても常にノイズの少ない鮮明な人物画像を得ることができる。
【0028】
以上の考察によれば、背景除去の閾値には、カメラの設置角度の他に物体(人物)の位置や姿勢も影響することになる。以下、これらの各要因を取り上げ、閾値の具体的な設定例を
図6〜
図8で説明する。
【0029】
図6は、TOFカメラの設置角度と閾値の関係を示す図である。設置角度θは設置角度検出部20にて検出する。
【0030】
(a)はカメラA(水平設置、θ=0°)の場合で、距離画像の画面60全体に対し閾値を小さな値(d=15cm)に設定する。カメラと人物との距離が大きく、人物と背景(壁面41)との距離が小さいためである。
【0031】
(b)はカメラB(垂直設置、θ=90°)の場合で、画面60全体に対し閾値を大きな値(d=30cm)に設定する。カメラと人物との距離が小さく、人物と背景(床面42)との距離が大きいためである。
【0032】
(c)はカメラC(斜め設置、θ=45°)の場合で、画面60を上下方向に分割し、各領域ごとに異なる閾値を設定する。画面の上側領域61ではd=30cm、中央領域62ではd=20cm、下側領域63ではd=15cmとする。これは、カメラと人物との距離が画面内で異なり、各領域ごとに閾値を設定している。画面の分割数は被写体の構図に応じて適宜決定すればよい。
【0033】
上記以外の設置角度については、さらに異なる画面分割を行いそれぞれの領域に閾値を設定しても良いし、あるいは上記の3通りの設置角度のうち最も近い設置角度の閾値を用いても良い。
【0034】
図7は、人物までの距離と閾値の関係を示す図である。TOFカメラ10の設置角度はいずれも水平(カメラA)とし、カメラから人物43までの距離sを物体距離・姿勢検出部21で検出する。この例ではカメラから壁面41までの距離を6mとする。物体距離・姿勢検出部21は、距離計算部13から出力される物体(人物)までの距離データから人物43までの距離sを検出する。なお、必要に応じて人物43の判定のため画像認識処理を併用して行っても良い。
【0035】
(a)は距離s=2mの場合で、距離画像の画面60全体に対し閾値を大きな値(d=30cm)に設定する。カメラと人物との距離が小さく、人物と背景(壁面41)との距離が大きいためである。
【0036】
(b)は距離s=4mの場合で、画面60全体に対し閾値を中程度の値(d=20cm)に設定する。カメラと人物との距離、人物と背景(壁面41)との距離が中程度であるからである。
【0037】
(c)は距離s=6mの場合で、画面60全体に対し閾値を小さな値(d=15cm)に設定する。カメラと人物との距離が大きく、人物と背景(壁面41)との距離が小さいためである。
【0038】
ここでは、カメラの設置角度が水平の場合としたが、垂直設置の場合は人物の位置に依らず閾値を大きな値(d=30cm)に設定すればよい。これは、カメラと人物との距離が小さく、人物と背景(床面42)との距離が大きいためである。
【0039】
図8は、人物の姿勢と閾値の関係を示す図である。ここでは人物43がベッド44の上に横になっている状態を、カメラの設置角度を変えて撮影する場合を示す。人物の姿勢、すなわち立っている状態(起立状態)か、横になっている状態(平臥状態)かは、カメラの設置角度検出部20と物体距離・姿勢検出部21により検出する。すなわち、カメラの撮影方向と距離計算部13から得られる人物形状の関係から、人物の姿勢を判定する。
【0040】
(a)はカメラA(水平設置)の場合で、撮影される人物形状は上半身のみとなる。この場合は距離画像の画面60全体に対し閾値を大きな値(d=30cm)に設定する。カメラと人物(上半身)との距離が小さいからである。
【0041】
(b)はカメラB(垂直設置)の場合で、撮影される人物形状は全身形状となる。画面60全体に対し閾値を小さな値(d=15cm)に設定する。カメラと人物との距離が大きく、人物と背景(ベッド44)との距離が小さいからである。
【0042】
(c)はカメラC(斜め設置)の場合で、カメラと人物との距離により画面60を上下方向に分割し、各領域ごとに異なる閾値を設定する。画面の上側領域61ではd=30cm、中央領域62ではd=20cm、下側領域63ではd=15cmとする。画面の分割数は被写体の構図に応じて適宜決定すればよい。
ここでは人物の姿勢として起立状態と平臥状態の2つを取り上げたが、その他の状態(椅子に座っている状態など)を含めても良い。
【0043】
以上の説明では、カメラの設置角度、物体(人物)までの距離、物体(人物)の姿勢をパラメータとして、閾値の具体的な設定例を提示した。各パラメータの組み合わせはこれ以外にもありえるが、いずれの場合も、カメラと人物との距離、人物と背景物との距離に応じて閾値を決定すればよい。決定した閾値は、閾値記憶部22のルックアップテーブル(LUT)に記憶する。
【0044】
図9は、閾値記憶部22が記憶する閾値の設定用テーブルの例を示す図である。ルックアップテーブル(LUT)には、カメラの設置角度θ、人物の姿勢(起立状態/平臥状態)、人物までの距離sをパラメータに、閾値の最適な設定値を記憶している。また、カメラ設置角度が斜め設置(θ=45°)の場合は、画面を複数の領域に分割して各領域での閾値の設定値を記憶している。閾値記憶部22はルックアップテーブルを参照して、現在のパラメータ条件に該当する閾値dを読出して差分器17の処理に設定する。
【0045】
図10は、本実施例における画像処理の流れを示すフローチャートである。以下に示す画像処理は、物体位置検出装置のCPUが
図1の各部の動作を制御することで実行される。以下、ステップ順に説明する。
【0046】
S101:距離画像生成部(TOFカメラ)10により、予め設定された範囲内にある被写体の距離画像を取得する。すなわち距離計算部13は、被写体画像の各部までの距離を計算して距離画像として出力する。
【0047】
S102:背景取込部14は、背景画像の取込み指示を受けたかどうか判定する。背景画像の取込み指示はユーザの操作で行うか、あるいは予め決められた時刻に自動的に指示するものでもよい。例えば店舗内の客の移動を検出する場合には、開店前の時刻に背景画像を取込めばよい。取込み指示があった場合はS103へ進み、指示がない場合はS104へ進む。
S103:現在の距離画像を背景画像Bとして、背景画像記憶部15へ記憶する。その後S101へ戻り、距離画像の取得を繰り返す。
【0048】
S104:設置角度検出部20は、TOFカメラ10の設置角度θを検出する。
S105:物体距離・姿勢検出部21は、距離計算部13から出力される距離データから人物までの距離sを検出し、またカメラの設置角度と人物の形状から人物の姿勢(起立状態/平臥状態)を検出する。
【0049】
S106:上記S104,S105で検出した設置角度θ、人物の距離s、人物の姿勢の条件をもとに、閾値記憶部22は、
図9に示したルックアップテーブル(LUT)を参照し、該当する閾値dを読み出して差分器17に設定する。
S107:差分器17は、距離計算部13からの入力画像Aと背景画像記憶部15からの背景画像Bの距離データから、差分画像Cを生成する。すなわち、設定された閾値dを用いて背景除去を行う。これにより、入力画像Aに人物等が含まれていれば、差分画像Cでは人物が抽出された画像となる。
【0050】
S108:ノイズ除去部18は、差分画像Cに対して残留ノイズの除去を行い、物体画像(人物画像E)を生成する。
S109:画像処理部19は、距離データに基づき物体画像(人物画像E)のカラー化処理などを行い、外部装置に出力する。その後S101へ戻り、距離画像の取得を繰り返す。
【0051】
以上のフローにより、現在の人物の距離や姿勢に応じて適応的に閾値を設定して背景除去を行うようにしたので、人物に動きがあっても、常に鮮明な人物画像を提供することができる。
【0052】
以上述べた実施例では、被写体として人物を検出する場合について説明したが、人物以外の物体を検出する場合も同様である。すなわち、物体特有の形状に合わせて背景除去の閾値を設定すれば、鮮明な物体画像が得られる。