JP2018097416A - 撮像装置および着目行動検出方法 - Google Patents
撮像装置および着目行動検出方法 Download PDFInfo
- Publication number
- JP2018097416A JP2018097416A JP2016238475A JP2016238475A JP2018097416A JP 2018097416 A JP2018097416 A JP 2018097416A JP 2016238475 A JP2016238475 A JP 2016238475A JP 2016238475 A JP2016238475 A JP 2016238475A JP 2018097416 A JP2018097416 A JP 2018097416A
- Authority
- JP
- Japan
- Prior art keywords
- time
- outer product
- storage unit
- motion vector
- series
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Image Processing (AREA)
- Studio Devices (AREA)
- Image Analysis (AREA)
Abstract
【課題】着目行動の検出時のみ映像データをネットワークに送信することにより、ネットワーク上のデータ量を低減するとともに、検出した着目行動を即座にシステム側に通知する。【解決手段】撮像装置1は、カメラ映像内の動被写体をカメラ画面内の座標として算出し、動被写体の重心座標についての時系列での移動を、動きベクトルとして求め、所定期間内の時系列で隣接する動きベクトル同士について、内積に基づく角度と外積とを求める動きベクトル算出部74と、所定期間内の角度の総和を算出するとともに、時系列の外積データで示される所定期間内の外積の符号が切り替わる回数をカウントし、算出した角度の総和が所定値以上であり、かつ、外積の符号が切り替わる回数が所定回以下である回転行動検出条件を満たす場合に、動被写体が回転行動を行っていると判定する着目行動検出部75と、着目行動の検出メッセージを出力する着目行動通知部76とを備える。【選択図】図1
Description
本発明は、撮像装置および着目行動検出方法に関する。
以前より、カメラから取得した映像を時系列に解析して、様々な情報を取得する多くの試みがなされている。その中に、映像上の動きのある被写体(以下、「動被写体」と称する。)の着目行動(異常行動等)を検出するという機能がある。これまで、この機能は、カメラから取得した映像データを、LANケーブル等を介しネットワークに送信し、記憶媒体であるレコーダに保存してから、その保存した映像データをレコーダにおいて解析するといった手法が一般的である。例えば、特許文献1や特許文献2に記載の技術では、異常行動パターンを同一ネットワーク上のデータベースに予め登録しておく。そして、登録した異常行動パターンと、映像データをレコーダにより解析して算出した行動パターンと照合し、一致した際に着目行動として検出する。
しかしながら、上記した特許文献1,2に記載の技術は、ネットワーク上のデータベースを使用する必要があるため、映像データを取得するカメラ側(前段側)ではなく、後段側の処理となり、一度カメラの映像データ全てをネットワーク上に送信し、記憶媒体に保存する必要がある。
近年では映像データの大容量化(高画質化)やカメラの接続台数の増加が進み、カメラと記憶媒体とを接続するネットワークに送信するデータ量が膨大になるといった課題が生じている。また、事件の未然防止のためにリアルタイムに映像から必要な情報を検出し通知する必要が生じている。そこで、カメラ側で映像データを解析し、必要な情報のみをネットワークに送信して記憶媒体で保存することにより、ネットワーク上のデータ量を削減し、かつリアルタイムに着目行動を検出可能とする、より高度(インテリジェント)な機能を備えたカメラへの期待が高まっている。
しかし、カメラ側では、ネットワーク上のデータベースを使用することができない点と、記憶媒体であるレコーダに比べマイコンの処理速度が遅く、特定パターンの画像とカメラの映像データとのマッチングを確認するといったような複雑な画像処理を行えないという問題がある。例えば、レコーダでは、動作クロックが1GHzを超えるものもあるが、通常のカメラは、100MHz程度である。このため、カメラ側では、高負荷な処理を実現することができない。
本発明は、上記問題を鑑みてなされたものであり、ネットワーク上に送信する映像データのデータ量を低減することができ、検出した着目行動を即座にシステム側に通知することができる、撮像装置および着目行動検出方法を提供することを課題とする。
前記目的を達成するため、本発明の撮像装置は、カメラ映像内の動被写体をカメラ画面内の座標として算出し、算出した動被写体の重心座標を求め、当該動被写体の重心座標についての時系列での移動を、動きベクトルとして計算する。そして、動きベクトルの算出処理を所定期間繰り返し、その所定期間内の時系列で隣接する動きベクトル同士について角度と外積とを求めるベクトル算出部を備える。また、撮像装置は、時系列の角度データで示される所定期間内の角度の総和を算出するとともに、時系列の外積データで示される所定期間内の外積の符号が切り替わる回数をカウントし、算出した角度の総和が所定値以上であり、かつ、外積の符号が切り替わる回数が所定回以下である回転行動検出条件を満たす場合に、動被写体が回転行動を行っていると判定する着目行動検出部を備えることを特徴とする。本発明の他の態様については、後記する実施形態において説明する。
本発明によれば、ネットワーク上に送信する映像データのデータ量を低減することができ、検出した着目行動を即座にシステム側に通知する、撮像装置および着目行動検出方法を提供することができる。
以下、本発明の実施形態(以下、「本実施形態」と称する。)について図面を参照して詳細に説明する。
図1は、本実施形態に係る撮像装置1の機能ブロック図である。撮像装置1は、監視カメラとしての機能と、カメラにより撮影された映像データを解析し、着目行動を検出する機能とを備える。
以下、撮像装置1の各機能について具体的に説明する。
図1は、本実施形態に係る撮像装置1の機能ブロック図である。撮像装置1は、監視カメラとしての機能と、カメラにより撮影された映像データを解析し、着目行動を検出する機能とを備える。
以下、撮像装置1の各機能について具体的に説明する。
<撮像装置の構成>
図1に示すように、撮像装置1は、レンズユニット10、撮像素子20、AFE(Analog Front End Circuit)30、画像処理LSI40、DAC(Digital Analog Converter)50、映像信号出力部60、マイコン70、カメラ操作部80およびメッセージ出力部90を含んで構成される。
図1に示すように、撮像装置1は、レンズユニット10、撮像素子20、AFE(Analog Front End Circuit)30、画像処理LSI40、DAC(Digital Analog Converter)50、映像信号出力部60、マイコン70、カメラ操作部80およびメッセージ出力部90を含んで構成される。
撮像装置1は、例えば、監視カメラの機能の備えるシステムであり、そのレンズユニット10は、ズーム機能を備えるズームレンズ11、フォーカス機能を備えるフォーカスレンズ12、フォーカスレンズ12から取り込まれる外部光の光量を調整するアイリス(アイリス絞り)13を備える。
外部から入射した光は、レンズユニット10を経て、撮像素子20に照射される。撮像素子20のCCDセンサに照射された入射光は、光電変換されて映像信号となる。
撮像素子20から映像信号を受信したAFE30は、相関二重サンプリング(Correlated Double Sampling:CDS)処理によりノイズを除去し、アナログAGC(Auto Gain Controller)処理により増幅器の増幅率を調整した上でA/D変換を行い、その映像信号を画像処理LSI40に出力する。
外部から入射した光は、レンズユニット10を経て、撮像素子20に照射される。撮像素子20のCCDセンサに照射された入射光は、光電変換されて映像信号となる。
撮像素子20から映像信号を受信したAFE30は、相関二重サンプリング(Correlated Double Sampling:CDS)処理によりノイズを除去し、アナログAGC(Auto Gain Controller)処理により増幅器の増幅率を調整した上でA/D変換を行い、その映像信号を画像処理LSI40に出力する。
画像処理LSI40は、区域分割輝度算出部41および信号処理部42を備える。
区域分割輝度算出部41は、取得したカメラ映像を所定の区域に分割し、各区域の輝度平均レベルを算出する。例えば、横に120分割、縦に27分割した各区域の輝度平均レベルを算出する。この区域分割輝度算出部41は、算出した各区域の輝度平均値のデータ(以下、「区域分割輝度情報」と称する。)を、マイコン70の動きベクトル算出部74に出力する。
信号処理部42は、取得した映像信号について、ノイズ低減処理、感度UP処理、色再現性向上処理等を実行し、DAC(Digital Analog Converter)50に出力する。
そして、DAC50において、デジタル映像信号をアナログ映像信号に変換し、映像信号出力部60が、モニタ等の表示装置にそのアナログ映像信号を出力して映像を表示させる。
区域分割輝度算出部41は、取得したカメラ映像を所定の区域に分割し、各区域の輝度平均レベルを算出する。例えば、横に120分割、縦に27分割した各区域の輝度平均レベルを算出する。この区域分割輝度算出部41は、算出した各区域の輝度平均値のデータ(以下、「区域分割輝度情報」と称する。)を、マイコン70の動きベクトル算出部74に出力する。
信号処理部42は、取得した映像信号について、ノイズ低減処理、感度UP処理、色再現性向上処理等を実行し、DAC(Digital Analog Converter)50に出力する。
そして、DAC50において、デジタル映像信号をアナログ映像信号に変換し、映像信号出力部60が、モニタ等の表示装置にそのアナログ映像信号を出力して映像を表示させる。
なお、図1においては、撮像素子20としてCCDを例に説明したが、CCD以外の撮像素子、例えば、CMOS等であってもよい。その際には、AFE30の構成が適宜変更される。また、DAC50を備えず、画像処理LSI40からのデジタル映像信号を直接表示装置に出力する構成にしてもよい。
マイコン70は、レンズユニット10が備える各レンズを制御するとともに、取得した映像信号の画像処理を実行する。このマイコン70は、操作情報取得部71、ズームレンズモータ制御部72、フォーカスレンズモータ制御部73、動きベクトル算出部74、着目行動検出部75、着目行動通知部76および記憶部77を含んで構成される。
このマイコン70は、画像処理LSI40から映像信号を取得して画像処理を実行するとともに、記憶部77内に各種データを保存しておく。映像信号への各種処理は画像処理LSI40に集約することにより、撮像機能を小型化する。なお、後記する各種データの記憶は、マイコン70内の記憶部77ではなく、マイコン70外に記憶手段を設けるようなシステム構成であってもよい。また、マイコン70の一部は、ソフトウェアではなく画像処理LSI40にハード実装されていてもよく、図1の構成に限定されるものでない。
このマイコン70は、画像処理LSI40から映像信号を取得して画像処理を実行するとともに、記憶部77内に各種データを保存しておく。映像信号への各種処理は画像処理LSI40に集約することにより、撮像機能を小型化する。なお、後記する各種データの記憶は、マイコン70内の記憶部77ではなく、マイコン70外に記憶手段を設けるようなシステム構成であってもよい。また、マイコン70の一部は、ソフトウェアではなく画像処理LSI40にハード実装されていてもよく、図1の構成に限定されるものでない。
操作情報取得部71は、カメラ操作部80から、パン(PAN)角度、チルト(TILT)角度、ズーム(ZOOM)位置情報、フォーカス(FOCUS)位置情報を取得する。操作情報取得部71は、取得した、パン角度、チルト角度、ズーム位置情報、フォーカス位置情報のうち、ズーム位置情報については、ズームレンズモータ制御部72に出力し、フォーカス位置情報については、フォーカスレンズモータ制御部73に出力する。なお、パン角度およびチルト角度については、レンズユニット10を含む監視カメラが固定されている場合には、カメラ設置時に各情報が設定されるが、遠隔による監視システム等からの指示情報を受信して、カメラのパン角度およびチルト角度を制御するようにしてもよい。
ズームレンズモータ制御部72は、ズームレンズ制御用モータ14を制御することにより、カメラ操作部80により指定されたズーム位置となるように、ズームレンズ11を移動する。
また、フォーカスレンズモータ制御部73は、フォーカスレンズ制御用モータ15を制御することにより、カメラ操作部80により指定されたフォーカス位置となるように、フォーカスレンズ12を移動する。
また、フォーカスレンズモータ制御部73は、フォーカスレンズ制御用モータ15を制御することにより、カメラ操作部80により指定されたフォーカス位置となるように、フォーカスレンズ12を移動する。
次に、マイコン70が実行する映像信号の画像処理に関する機能の概要を説明する。
マイコン70の動きベクトル算出部74は、画像処理LSI40の区域分割輝度算出部41から、カメラ映像を分割した各区域の輝度平均値(区域分割輝度情報)を取得する。そして、動きベクトル算出部74は、区域分割輝度情報について、時刻(t)と時刻(t−1)の差分を解析し、所定値以上の差分を有するまとまった区域(隣接する複数の区域)を動被写体が写っている「領域」としてラベリングし、その領域毎に重心データを算出する。動きベクトル算出部74は、動被写体の動き量を重心データの動きベクトルとして計算し、時系列方向に解析することにより、動きベクトルの内積に基づく角度θおよび動きベクトルの外積を演算して、記憶部77に記憶しておく。
着目行動検出部75は、記憶部77に記憶された、内積に基づく角度θの情報と、外積の情報とに基づき、着目行動の検出を行う(詳細は後記する。)。そして、着目行動検出部75が、着目行動を検出した場合に、着目行動通知部76が、外部の監視システム等に対して、メッセージ出力部90を介して、着目行動を検出した旨のメッセージ(着目行動検出メッセージ)を出力する。
マイコン70の動きベクトル算出部74は、画像処理LSI40の区域分割輝度算出部41から、カメラ映像を分割した各区域の輝度平均値(区域分割輝度情報)を取得する。そして、動きベクトル算出部74は、区域分割輝度情報について、時刻(t)と時刻(t−1)の差分を解析し、所定値以上の差分を有するまとまった区域(隣接する複数の区域)を動被写体が写っている「領域」としてラベリングし、その領域毎に重心データを算出する。動きベクトル算出部74は、動被写体の動き量を重心データの動きベクトルとして計算し、時系列方向に解析することにより、動きベクトルの内積に基づく角度θおよび動きベクトルの外積を演算して、記憶部77に記憶しておく。
着目行動検出部75は、記憶部77に記憶された、内積に基づく角度θの情報と、外積の情報とに基づき、着目行動の検出を行う(詳細は後記する。)。そして、着目行動検出部75が、着目行動を検出した場合に、着目行動通知部76が、外部の監視システム等に対して、メッセージ出力部90を介して、着目行動を検出した旨のメッセージ(着目行動検出メッセージ)を出力する。
以下、動きベクトル算出部74、着目行動検出部75、着目行動通知部76、記憶部77について詳細に説明する。
なお、記憶部77は、マイコン70内の処理に必要となる情報を一時的に記憶しておくメモリであり、区域分割輝度情報保存部771、軌跡データ保存部772(重心データ保存部773、角度データ保存部774、外積データ保存部775を含む)、および、角度関係テーブル776を記憶する。これらの情報の詳細は後記する。
なお、記憶部77は、マイコン70内の処理に必要となる情報を一時的に記憶しておくメモリであり、区域分割輝度情報保存部771、軌跡データ保存部772(重心データ保存部773、角度データ保存部774、外積データ保存部775を含む)、および、角度関係テーブル776を記憶する。これらの情報の詳細は後記する。
動きベクトル算出部74は、画像処理LSI40の区域分割輝度算出部41から、カメラ映像を分割した各区域の輝度平均値(区域分割輝度情報)を取得し、動被写体の動きベクトルを算出する。
この動きベクトル算出部74は、区域分割輝度情報取得部741、絶対値差分算出部742、二値化処理部743、ラベリング処理部744、重心データ算出部745、動きベクトル演算部746を備える。
この動きベクトル算出部74は、区域分割輝度情報取得部741、絶対値差分算出部742、二値化処理部743、ラベリング処理部744、重心データ算出部745、動きベクトル演算部746を備える。
区域分割輝度情報取得部741は、画像処理LSI40の区域分割輝度算出部41から、時刻(t)において、カメラ映像を分割した各区域の輝度平均値(区域分割輝度情報Y_T0_n(n=1〜3240))を取得する。ここで、「Y」が輝度を示し、「T0」が時刻(t)を示し、「n」が区域「n」(n=1〜3240)を示す。なお、ここでは、カメラ映像が3240(=120×27)の区域に分割されているものとして説明する。
絶対値差分算出部742は、区域分割輝度情報取得部741が取得した現在の時刻である時刻(t)における区域分割輝度情報Y_T0_n(n=1〜3240)と、記憶部77に記憶された時刻(t−1)における区域分割輝度情報Y_T1_n(n=1〜3240)とを用いて、時刻(t−1)と時刻(t)との間の各区域の輝度データの絶対値差分Y_DiFF_n(n=1〜3240)を次の式(1)を用いて算出する。
Y_Diff_n = | Y_T0_n − Y_T1_n | (n=1〜3240) ・・・式(1)
絶対値差分算出部742は、算出が完了した後、時刻(t)の各区域分割輝度情報Y_T0_nを記憶部77の区域分割輝度情報保存部771に、時刻(t−1)の区域分割輝度情報Y_T1_n(図2参照)として保存する。これは、次の動きベクトル演算部746の処理の際に使用するためである。
なお、絶対値差分算出部742における初回の処理時には、時刻(t−1)の各区域分割輝度情報Y_T1_nが存在しないため、初回時のみ算出を行わず、Y_T1_n = 0 とする。
なお、絶対値差分算出部742における初回の処理時には、時刻(t−1)の各区域分割輝度情報Y_T1_nが存在しないため、初回時のみ算出を行わず、Y_T1_n = 0 とする。
図2は、本実施形態に係る区域分割輝度情報保存部771に保存される時刻(t−1)における区域分割輝度情報のデータ構成例を示す図である。
図2に示すように、区域分割輝度情報は、区域番号、および、その区域番号と時刻(t−1)とを示す変数1に対応付けて、その区域の輝度平均値の値が格納される。例えば、区域番号「1」で変数1が「Y_T1_1」の区域の輝度平均値は「1」であることを示している。なお、変数1は、「Y」が輝度を示し、「T1」が時刻(t−1)を示し、「1」が区域番号「1」を示す。
図2に示すように、区域分割輝度情報は、区域番号、および、その区域番号と時刻(t−1)とを示す変数1に対応付けて、その区域の輝度平均値の値が格納される。例えば、区域番号「1」で変数1が「Y_T1_1」の区域の輝度平均値は「1」であることを示している。なお、変数1は、「Y」が輝度を示し、「T1」が時刻(t−1)を示し、「1」が区域番号「1」を示す。
図1に戻り、二値化処理部743は、絶対値差分算出部742で算出した各区域の絶対値差分データの値と、所定の閾値Y_Sとを比較し、絶対値差分データの値が閾値Y_S以上であれば、動被写体として、その区域に「255」を付与する。また、二値化処理部743は、絶対値差分データの値が閾値Y_S未満であれば、動被写体ではないとして、その区域に「0」を付与する。これにより、各区域を二値化する。この二値化処理では、動被写体が正しく抽出できればよく、所定の閾値Y_Sを設定することにより動被写体を判定する手法に限定されない。また、二値化の処理後に、動被写体以外と判定された区域を動被写体として「255」と付与し直す処理を行う場合がある。例えば、既存の膨張処理や収縮処理を行うことにより、動被写体の抽出を行い、動被写体ではない小領域(ノイズ成分)を除去することができる。また、画面の上下に分離した区域について膨張処理を行うことにより、1つの動被写体として扱うように、「0」から「255」に付与し直す処理を行ってもよい。
ラベリング処理部744は、二値化処理部743が二値化し動被写体として抽出した「255」が付与された区域のうち、隣接する複数の区域をひとつの領域としてラベリング(番号付け)する。ここでは、例としてラベリング番号の開始と終了をそれぞれ「1」と「24」とし、最大24個の領域のラベリング(番号付け)を可能とする。なお、このラベリング(番号付け)は、例えば、その領域に属する区域の数、つまり、まとまった(隣接する)複数の区域の数が多い順に24個を抽出するようにする。
重心データ算出部745は、ラベリング(番号付け)した領域ごとに、その領域の重心を、時刻(t)の計24個の重心データ(Jyu_T_Xn, Jyu_T_Yn)(n=1〜24)として算出する。
重心データ(Jyu_T_Xn, Jyu_T_Yn)は、図3に示すように、画像の左上を原点として横方向をX軸(右側を正の向き)、縦方向(下側を正の向き)をY軸とした際の座標位置とし、画像サイズを最大値としたデータであり、例えば、フルハイビジョン画質として最大値を横1920、縦1080とする。
重心データ(Jyu_T_Xn, Jyu_T_Yn)は、図3に示すように、画像の左上を原点として横方向をX軸(右側を正の向き)、縦方向(下側を正の向き)をY軸とした際の座標位置とし、画像サイズを最大値としたデータであり、例えば、フルハイビジョン画質として最大値を横1920、縦1080とする。
重心データ算出部745は、ラベリング処理により番号付けした各領域のX軸方向の最小値(左端)Area_min_T_Xn、最大値(右端)Area_max_T_Xn、Y軸方向の最小値(上端)Area_min_T_Yn、最大値(下端)Area_max_T_Ynを求め、次の式(2)および式(3)により重心データ(Jyu_T_Xn, Jyu_T_Yn)を算出する。
Jyu_T_Xn = Area_min_T_Xn + (Area_max_T_Xn − Area_min_T_Xn)/2 …式(2)
Jyu_T_Yn= Area_min_T_Yn + (Area_max_Y_Xn − Area_min_T_Yn)/2 …式(3)
Jyu_T_Yn= Area_min_T_Yn + (Area_max_Y_Xn − Area_min_T_Yn)/2 …式(3)
図4は、本実施形態に係る重心データ算出部745が算出する重心データのデータ構成例を示す図である。
図4に示すように、時刻(t)における重心データとして、領域番号に対応して、重心データ(Jyu_T_Xn, Jyu_T_Yn)の値が算出される。例えば、時刻(t)における領域番号「1」の重心データ(Jyu_T_X1, Jyu_T_Y1)の値が(213,59)であることを示している。
なお、この重心データ(Jyu_T_Xn, Jyu_T_Yn)の値は、動被写体の動きベクトルの重心データ(Move_T0_Xn, Move_T0_Yn)として、動きベクトル演算部746が後記する重心データ保存部773に保存する。
図4に示すように、時刻(t)における重心データとして、領域番号に対応して、重心データ(Jyu_T_Xn, Jyu_T_Yn)の値が算出される。例えば、時刻(t)における領域番号「1」の重心データ(Jyu_T_X1, Jyu_T_Y1)の値が(213,59)であることを示している。
なお、この重心データ(Jyu_T_Xn, Jyu_T_Yn)の値は、動被写体の動きベクトルの重心データ(Move_T0_Xn, Move_T0_Yn)として、動きベクトル演算部746が後記する重心データ保存部773に保存する。
動きベクトル演算部746は、記憶部77内の重心データ保存部773に記憶されている時刻(t−1)の重心データ(Move_T1_Xn, Move_T1_Yn)と、時刻(t)の重心データ(Move_T0_Xn, Move_T0_Yn)との対応付けを行い、動被写体の動き量を時刻(t)の動きベクトルとして計算する。
具体的には、この動きベクトル演算部746は、軌跡データ保存部772内の重心データ保存部773に記憶されている、動きベクトルの重心データ(図5参照)、角度データ保存部774の角度データ(図7参照)、外積データ保存部775の外積データ(図8参照)と、角度関係テーブル776(図6参照)とを用いて、動きベクトルの演算処理を行う。
具体的には、この動きベクトル演算部746は、軌跡データ保存部772内の重心データ保存部773に記憶されている、動きベクトルの重心データ(図5参照)、角度データ保存部774の角度データ(図7参照)、外積データ保存部775の外積データ(図8参照)と、角度関係テーブル776(図6参照)とを用いて、動きベクトルの演算処理を行う。
図5は、本実施形態に係る、時刻(t)〜時刻(t−31)における動被写体の動きベクトルの重心データ(Move_Tm_Xn, Move_Tm_Yn)(n=1〜24, m=0〜31)のデータ構成例を示す図である。
ここで、「n」は、動きベクトルの最大保持数(領域の数)を示し、例として1〜24個までの計24個を保持可能としている。「m」は、所定期間である時刻(t−0)〜時刻(t−31)のいずれかの時刻を示すものとする。
図5に示すように、時刻(t−0)〜時刻(t−31)の間において、各領域1〜24毎に、動きベクトルの重心データ(X軸の値,Y軸の値)が格納される。例えば、時刻(t−0)における領域n=1の重心データとして、(Move_T0_X1, Move_T0_Y1)の値が(650, 514)として格納される。
なお、T0=時刻(t−0)=時刻(t)であり、現時点での映像信号の画像処理を示す。また、T1=時刻(t−1)であり、時刻(t)から1つ前の時点での映像信号の画像処理を示す。同様に、T31=時刻(t−31)であり、時刻(t)から31前の時点での映像信号の画像処理を示す。つまり、T0は、現時点であり、「31」に向けて数字が増えるほど過去の時点を示している。
ここで、「n」は、動きベクトルの最大保持数(領域の数)を示し、例として1〜24個までの計24個を保持可能としている。「m」は、所定期間である時刻(t−0)〜時刻(t−31)のいずれかの時刻を示すものとする。
図5に示すように、時刻(t−0)〜時刻(t−31)の間において、各領域1〜24毎に、動きベクトルの重心データ(X軸の値,Y軸の値)が格納される。例えば、時刻(t−0)における領域n=1の重心データとして、(Move_T0_X1, Move_T0_Y1)の値が(650, 514)として格納される。
なお、T0=時刻(t−0)=時刻(t)であり、現時点での映像信号の画像処理を示す。また、T1=時刻(t−1)であり、時刻(t)から1つ前の時点での映像信号の画像処理を示す。同様に、T31=時刻(t−31)であり、時刻(t)から31前の時点での映像信号の画像処理を示す。つまり、T0は、現時点であり、「31」に向けて数字が増えるほど過去の時点を示している。
動きベクトル演算部746は、重心データ保存部773に保存された動きベクトルの重心データを参照し、各領域nの時刻(t−2)および時刻(t−1)の重心データから、時刻(t−1)の動きベクトル(MoveVecT1_Xn, MoveVecT1_Yn)(n=1〜24)を計算する。また、動きベクトル演算部746は、各領域nの時刻(t−1)の重心データおよび時刻(t)の重心データから、時刻(t)の動きベクトル(MoveVecT_Xn, MoveVecT_Yn)(n=1〜24)を計算する。なお、この時刻(t)における動きベクトル(MoveVecT_Xn, MoveVecT_Yn)を、以下「暫定動きベクトル」と称する。
動きベクトル演算部746は、時刻(t−1)の動きベクトル(MoveVecT1_Xn, MoveVecT1_Yn)と、暫定動きベクトル(MoveVecT_Xn, MoveVecT_Yn)とから、2つベクトルの内積を計算することで、cosθを求める。以下、cosθの算出手法について説明する。
時刻(t−1)の動きベクトル(MoveVecT1_Xn, MoveVecT1_Yn)と、時刻tの暫定動きベクトル(MoveVecT_X, MoveVecT_Y) との暫定内積Naiseki_T0は、次の式(4)となる。
Naiseki_T0 = MoveVecT1_Xn × MoveVecT_X + MoveVecT1_Yn × MoveVecT_Y
…式(4)
…式(4)
また、暫定内積Naiseki_T0は、次の式(5)でも記載することができる。
Naiseki_T0 =|時刻(t-1)の動きベクトルの大きさ| × |時刻(t)の暫定動きベクトルの大きさ| × cosθ … 式(5)
上記の式(4)および式(5)から、cosθを、次の式(6)により求めることができる。
cosθ = (MoveVecT1_Xn × MoveVecT_X + MoveVecT1_Yn × MoveVecT_Y)/ |時刻(t-1)の動きベクトルの大きさ| × |時刻tの暫定動きベクトルの大きさ| … 式(6)
そして、動きベクトル演算部746は、式(6)により求めたcosθに基づき、記憶部77に記憶された図6に示す角度関係テーブル776を参照し、角度θを求めることができる。
図6は、本実施形態に係る角度関係テーブル776のデータ構成例を示す図である。
図6に示すように、角度関係テーブル776は、cosθに対応する角度θの情報が格納される。この角度関係テーブル776は、記憶部77に予め記憶しておくものとする。
図6に示すように、角度関係テーブル776は、cosθに対応する角度θの情報が格納される。この角度関係テーブル776は、記憶部77に予め記憶しておくものとする。
また、動きベクトル演算部746は、時刻(t−1)の動きベクトル(MoveVecT1_Xn, MoveVecT1_Yn)と時刻(t)の暫定動きベクトル(MoveVecT_Xn, MoveVecT_Yn)との暫定外積Gaiseki_T0を、次の式(7)により計算する。
Gaiseki_T0 = MoveVecT_X × MoveVecT1_Yn + MoveVecT1_Xn × MoveVecT_Y
…式(7)
…式(7)
そして、動きベクトル演算部746は、時刻(t)の各領域の重心データ(Jyu_T_Xn, Jyu_T_Yn)を、動きベクトルの重心データ(Move_T0_Xn, Move_T0_Yn)(n=1〜24)として、記憶部77の重心データ保存部773に記憶する。また、動きベクトル演算部746は、算出した角度θの情報(θ_T0_n)を、記憶部77の角度データ保存部774に記憶し、算出した外積データ(Gaiseki_T0_n)を、記憶部77の外積データ保存部775に記憶する。
図7は、本実施形態に係る角度データ保存部774に記憶される角度データのデータ構成例を示す図である。
ここで、「n」は、動きベクトルの最大保持数(領域数)、ここではn=1〜24である。また、「m」は、所定期間である時刻(t−0)〜時刻(t−31)のいずれかを示す。
図7に示すように、例えば、時刻(t)における領域「1」での角度θ(θ_T0_1)の値として「0°」が格納され、時刻(t)における領域「24」での角度θ(θ_T0_24)の値として「21°」が格納される。
ここで、「n」は、動きベクトルの最大保持数(領域数)、ここではn=1〜24である。また、「m」は、所定期間である時刻(t−0)〜時刻(t−31)のいずれかを示す。
図7に示すように、例えば、時刻(t)における領域「1」での角度θ(θ_T0_1)の値として「0°」が格納され、時刻(t)における領域「24」での角度θ(θ_T0_24)の値として「21°」が格納される。
図8は、本実施形態に係る外積データ保存部775に記憶される外積データのデータ構成例を示す図である。
ここで、「n」は、動きベクトルの最大保持数(領域数)、n=1〜24である。また、「m」は、時刻(t−0)〜時刻(t−31)のいずれかを示す。
図8に示すように、例えば、第1行目は、時刻(t)における領域「1」での外積(Gaiseki_T0_1)の値として「642500」が格納され、第4行目は、時刻(t)における領域「24」での外積(Gaiseki_T0_24)の値として「630000」が格納される。
なお、動きベクトルの外積の値は、時刻(t−1)から時刻(t)の動きベクトルの回転方向が反時計回りの場合に、外積の符合が「正」となる。一方、時刻(t−1)から時刻(t)の動きベクトルの回転方向が時計周りの場合、外積の符合は「負」となる。
ここで、「n」は、動きベクトルの最大保持数(領域数)、n=1〜24である。また、「m」は、時刻(t−0)〜時刻(t−31)のいずれかを示す。
図8に示すように、例えば、第1行目は、時刻(t)における領域「1」での外積(Gaiseki_T0_1)の値として「642500」が格納され、第4行目は、時刻(t)における領域「24」での外積(Gaiseki_T0_24)の値として「630000」が格納される。
なお、動きベクトルの外積の値は、時刻(t−1)から時刻(t)の動きベクトルの回転方向が反時計回りの場合に、外積の符合が「正」となる。一方、時刻(t−1)から時刻(t)の動きベクトルの回転方向が時計周りの場合、外積の符合は「負」となる。
図1に戻り、着目行動検出部75は、記憶部77内の角度データ保存部774に記憶された角度θの情報と、記憶部77内の外積データ保存部775に記憶された外積の情報とに基づき、着目行動を検出する。
この着目行動検出部75は、回転行動算出部751およびジグザグ行動算出部752を備える。
この着目行動検出部75は、回転行動算出部751およびジグザグ行動算出部752を備える。
回転行動算出部751は、動きベクトル算出部74において計算し、記憶部77の軌跡データ保存部772に保存している情報のうち、角度データ保存部774に保存した時刻(t)〜時刻(t−31)の角度θの情報と、外積データ保存部775に保存した時刻(t)〜時刻(t−31)の外積データの情報を参照し、領域番号n=1〜24ごとに時刻(t)から時刻(t−31)までの角度θ_Tm_n(m=0〜31, n=1〜24)の和SUM_θnを次の式(8)により計算する。
SUM_θn=Σ[n=1→24]Σ[m=0→31] θ_Tm_n … 式(8)
また、回転行動算出部751は、領域番号n=1〜24ごとに、時刻(t)から時刻(t−31)までの外積Gaiseki_Tm_n(m=0〜31, n=1〜24)の符号がm=31からm=0への時系列方向に正から負、負から正へ切り替わっている回数を、カウントHugo_Cnt_nとして計算する。
回転行動算出部751は、計算したSUM_θnが所定値(例えば、360°)より大きく、かつ、Hugo_Cnt_nが所定回以下であるか否かを確認する。回転行動算出部751は、この条件(回転行動検出条件)を満たす場合には、その領域番号で示される動被写体が、回転行動をしていると判定する。つまり、動被写体が着目行動を行っていると判定する。一方、回転行動算出部751は、この条件(回転行動検出条件)を満たさない場合には、その領域番号で示される動被写体が、回転行動をしていないと判定する。つまり、動被写体の動きが、着目行動には当たらないと判定する。なお、外積の符号が、正から負、負から正に切り替わる回数であるカウントHugo_Cnt_nの所定回は、例えば、「0」であってもよいし、「1」「2」「3」等であってもよい。「0」の場合は、外積の符号が一度も切り替わらなかったことを意味する。
回転行動算出部751は、計算したSUM_θnが所定値(例えば、360°)より大きく、かつ、Hugo_Cnt_nが所定回以下であるか否かを確認する。回転行動算出部751は、この条件(回転行動検出条件)を満たす場合には、その領域番号で示される動被写体が、回転行動をしていると判定する。つまり、動被写体が着目行動を行っていると判定する。一方、回転行動算出部751は、この条件(回転行動検出条件)を満たさない場合には、その領域番号で示される動被写体が、回転行動をしていないと判定する。つまり、動被写体の動きが、着目行動には当たらないと判定する。なお、外積の符号が、正から負、負から正に切り替わる回数であるカウントHugo_Cnt_nの所定回は、例えば、「0」であってもよいし、「1」「2」「3」等であってもよい。「0」の場合は、外積の符号が一度も切り替わらなかったことを意味する。
ジグザグ行動算出部752は、動きベクトル算出部74が計算し、記憶部77内の軌跡データ保存部772に保存している情報のうち、外積データ保存部775に記憶された、外積データを参照する。そして、ジグザグ行動算出部752は、領域番号n=1〜24ごとに、時刻(t)から時刻(t−31)までの外積Gaiseki_Tm_n(m=0〜31, n=1〜24)の符号が、m=31からm=0への時系列方向に、正から負、負から正へ切り替わっている回数をカウントしHugo_Cnt_nを計算する。ジグザグ行動算出部752は、このHugo_Cnt_nが、領域の総数の所定割合以上であるときに、その領域番号で示される動被写体が、ジグザグ行動をしていると判定する。つまり、動被写体が着目行動を行っていると判定する。一方、ジグザグ行動算出部752は、Hugo_Cnt_nが、領域の総数の所定割合未満であるときに、その領域番号で示される動被写体が、ジグザグ行動をしていないと判定する。つまり、動被写体が着目行動を行っていないと判定する。なお、このジグザグ行動を判定する条件を、ジグザク行動検出条件と称する。
ここでは、「m」の最大個数を32個としているため、Hugo_Cnt_nの最大値は「31」となる。例えば、ジグザグ行動を判定する所定割合が8割であるすると、Hugo_Cnt_nの値が最大値「31」の8割より大きい「25」以上であれば、その領域番号の動被写体の動きはジグザグ行動をしていると判定し、「25」未満であれば、ジグザグ行動をしていないと判定する。
ここでは、「m」の最大個数を32個としているため、Hugo_Cnt_nの最大値は「31」となる。例えば、ジグザグ行動を判定する所定割合が8割であるすると、Hugo_Cnt_nの値が最大値「31」の8割より大きい「25」以上であれば、その領域番号の動被写体の動きはジグザグ行動をしていると判定し、「25」未満であれば、ジグザグ行動をしていないと判定する。
着目行動通知部76は、回転行動算出部751により回転行動を行っていると判定されると、着目行動(回転行動)が検出された旨を、外部の監視システム等に、メッセージ出力部90を介して出力する。
また、着目行動通知部76は、ジグザグ行動算出部752によりジグザグ行動を行っていると判定されと、着目行動(ジグザグ行動)が検出された旨を、外部の監視システム等に、メッセージ出力部90を介して出力する。
メッセージ出力部90は、外部装置にメッセージを出力するための通信IFである。
また、着目行動通知部76は、ジグザグ行動算出部752によりジグザグ行動を行っていると判定されと、着目行動(ジグザグ行動)が検出された旨を、外部の監視システム等に、メッセージ出力部90を介して出力する。
メッセージ出力部90は、外部装置にメッセージを出力するための通信IFである。
<処理の流れ>
次に、本実施形態に係る撮像装置1のマイコン70が実行する、着目行動検出処理の全体の流れを説明する。
図9は、本実施形態に係るマイコン70が実行する着目行動検出処理の全体の流れを示すフローチャートである。
次に、本実施形態に係る撮像装置1のマイコン70が実行する、着目行動検出処理の全体の流れを説明する。
図9は、本実施形態に係るマイコン70が実行する着目行動検出処理の全体の流れを示すフローチャートである。
まず、マイコン70の動きベクトル算出部74内の区域分割輝度情報取得部741は、画像処理LSI40の区域分割輝度算出部41から、時刻(t)において、カメラ映像を分割した各区域の輝度平均値(区域分割輝度情報Y_T0_n(n=1〜3240))を取得する(ステップS1:区域分割輝度情報の取得処理)。
次に、動きベクトル算出部74内の絶対値差分算出部742は、区域分割輝度情報取得部741が取得した現在の時刻である時刻(t)における区域分割輝度情報Y_T0_n(n=1〜3240)と、記憶部77の区域分割輝度情報保存部771に記憶されている時刻(t−1)における区域分割輝度情報Y_T1_n(n=1〜3240)とを用いて、時刻(t−1)と時刻(t)の区域ごとの輝度データの絶対値差分Y_DiFF_n(n=1〜3240)を、上記した式(1)を用いて算出する(ステップS2:絶対値差分算出処理)。そして、絶対値差分算出部742は、時刻(t)の各区域分割輝度情報Y_T0_nを記憶部77の区域分割輝度情報保存部771に、時刻(t−1)の区域分割輝度情報(図2参照)として保存する。
続いて、動きベクトル算出部74内の二値化処理部743は、絶対値差分算出部742で算出した各区域の絶対値差分データの値と、所定の閾値Y_Sとを比較し、絶対値差分データの値が閾値Y_S以上であれば、動被写体として、その区域に「255」を付与し、絶対値差分データの値が閾値Y_S未満であれば、動被写体ではないとしてその区域に「0」を付与する(ステップS3:二値化処理)。
そして、動きベクトル算出部74内のラベリング処理部744は、二値化処理部743が二値化し動被写体として抽出した「255」が付与された区域のうち、互いに隣接する(まとまった)複数の区域をひとつの「領域」とし、その領域にラベリング(番号付け)する(ステップS4:ラベリング処理)。ここでは、最大24個の領域にラベリング可能とし、各領域にn=1〜24を付与する。
続いて、動きベクトル算出部74内の重心データ算出部745は、ラベリング(番号付け)した領域ごとにその領域の重心を、時刻(t)の計24個の重心データ(Jyu_T_Xn, Jyu_T_Yn)(n=1〜24)として算出する(ステップS5:重心データ算出処理)。
次に、動きベクトル算出部74内の動きベクトル演算部746は、動被写体の動きベクトルの演算処理を行う(ステップS6)。具体的には、動きベクトル演算部746は、時刻(t−1)と時刻(t)の動きベクトルに基づき、内積を算出して角度θを計算し、軌跡データ保存部772内の角度データ保存部774に保存する。また、動きベクトル演算部746は、同じく、時刻(t−1)と時刻(t)の動きベクトルに基づき、外積を計算し、軌跡データ保存部772内の外積データ保存部775に保存する。なお、この動きベクトル演算部746の処理の詳細は後記する。
そして、着目行動検出部75は、軌跡データ保存部772に保存された軌跡データを用いて、着目行動の検出処理を実行する(ステップS7)。
具体的には、軌跡データ保存部772内の回転行動算出部751は、軌跡データ保存部772内の角度データ保存部774に保存された、時刻(t−31)〜時刻(t)の角度θの情報、および、外積データ保存部775に保存された、時刻(t−31)〜時刻(t)の外積の情報を用いて、動被写体が回転行動をしているか否かを判定する。
また、軌跡データ保存部772内のジグザグ行動算出部752は、外積データ保存部775に保存された、時刻(t−31)〜時刻(t)の外積の情報を用いて、動被写体がジグザグ行動をしているか否かを判定する。
そして、回転行動算出部751、ジグザグ行動算出部752のそれぞれは、着目行動(回転行動、ジグザグ行動)を検出すると、その検出結果を、着目行動通知部76を介して、メッセージ出力する(ステップS8)。そして、撮像装置1(マイコン70)は、着目行動検出処理を終了する。
具体的には、軌跡データ保存部772内の回転行動算出部751は、軌跡データ保存部772内の角度データ保存部774に保存された、時刻(t−31)〜時刻(t)の角度θの情報、および、外積データ保存部775に保存された、時刻(t−31)〜時刻(t)の外積の情報を用いて、動被写体が回転行動をしているか否かを判定する。
また、軌跡データ保存部772内のジグザグ行動算出部752は、外積データ保存部775に保存された、時刻(t−31)〜時刻(t)の外積の情報を用いて、動被写体がジグザグ行動をしているか否かを判定する。
そして、回転行動算出部751、ジグザグ行動算出部752のそれぞれは、着目行動(回転行動、ジグザグ行動)を検出すると、その検出結果を、着目行動通知部76を介して、メッセージ出力する(ステップS8)。そして、撮像装置1(マイコン70)は、着目行動検出処理を終了する。
≪動きベクトルの演算処理≫
次に、本実施形態に係る撮像装置1の動きベクトル演算部746の処理の流れについて説明する。
図10は、本実施形態に係る動きベクトル演算部746が実行する、動きベクトル演算処理を示すフローチャートである。ここで、動きベクトル演算部746は、動被写体の動きベクトルを時系列方向に解析し、動きベクトルの内積から角度θを算出するとともに、動きベクトルの外積を算出する。
次に、本実施形態に係る撮像装置1の動きベクトル演算部746の処理の流れについて説明する。
図10は、本実施形態に係る動きベクトル演算部746が実行する、動きベクトル演算処理を示すフローチャートである。ここで、動きベクトル演算部746は、動被写体の動きベクトルを時系列方向に解析し、動きベクトルの内積から角度θを算出するとともに、動きベクトルの外積を算出する。
まず、動きベクトル演算部746は、記憶部77内の重心データ保存部773に、時刻(t−1)における領域番号n=1〜24の重心データ(Move_T1_Xn, Move_T1_Yn)(n=1〜24)が存在するか否かを判定する(ステップS101)。そして、存在しない場合には(ステップS101→No)、ステップS102に進む。
ステップS102において、動きベクトル演算部746は、重心データ算出部745が算出した時刻(t)の重心データ(Jyu_T_Xn, Jyu_T_Yn)が存在するか否かを確認する。そして、存在しない場合には(ステップS102→No)、処理を終了する。一方、存在する場合には(ステップS102→Yes)、動きベクトル演算部746は、重心データ(Jyu_T_Xn, Jyu_T_Yn)を、重心データ保存部773の時刻(t)の領域番号nの軌跡データ(Move_T0_Xn, Move_T0_Yn)として保存する(ステップS103)。そして、処理を終了する。
ステップS102において、動きベクトル演算部746は、重心データ算出部745が算出した時刻(t)の重心データ(Jyu_T_Xn, Jyu_T_Yn)が存在するか否かを確認する。そして、存在しない場合には(ステップS102→No)、処理を終了する。一方、存在する場合には(ステップS102→Yes)、動きベクトル演算部746は、重心データ(Jyu_T_Xn, Jyu_T_Yn)を、重心データ保存部773の時刻(t)の領域番号nの軌跡データ(Move_T0_Xn, Move_T0_Yn)として保存する(ステップS103)。そして、処理を終了する。
ステップS101において、時刻(t−1)における領域番号n=1〜24の重心データが存在する場合には(ステップS101→Yes)、動きベクトル演算部746は、時刻(t−1)と時刻(t)の重心データの距離Jyu_Distanceを計算する(ステップS104)。
続いて、動きベクトル演算部746は、記憶部77内の重心データ保存部773に、時刻(t−2)における領域番号n=1〜24の重心データ(Move_T2_Xn, Move_T2_Yn)(n=1〜24)が存在するか否かを判定する(ステップS105)。そして、存在しない場合には(ステップS105→No)、動きベクトル演算部746は、時刻(t−1)と時刻(t)の重心データの距離Jyu_Distanceが所定値未満であり、かつ、Jyu_Distanceが最短となるJyu_Distance_minが存在するか否かを判定する(ステップS106)。この処理は、所定値以上離れた場合には、同じ動被写体の動きではないとして、そのデータを除去するために行うものである。
そして、動きベクトル演算部746は、距離Jyu_Distanceが所定値未満であり、かつ、Jyu_Distanceが最短となるJyu_Distance_minが存在しない場合には(ステップS106→No)、処理を終了する。一方、存在する場合には(ステップS106→Yes)、動きベクトル演算部746は、重心データ(Jyu_T_Xn, Jyu_T_Yn)を、重心データ保存部773の時刻(t)の領域番号nの軌跡データ(Move_T0_Xn, Move_T0_Yn)として保存する(ステップS107)。このとき、動きベクトル演算部746は、軌跡データ保存部772の角度データ保存部774および外積データ保存部775における、時刻(t)の領域番号nへは、それぞれ数値0を保存しておく。そして、動きベクトル演算部746は、処理を終了する。
ステップS105において、時刻(t−2)における領域番号n=1〜24の重心データが存在する場合には(ステップS105→Yes)、動きベクトル演算部746は、領域番号nの時刻(t−2)と時刻(t−1)の重心データから、時刻(t−1)の動きベクトル(MoveVecT1_Xn,MoveVecT1_Yn) (n=1〜24)を計算する(ステップS108)。
次に、動きベクトル演算部746は、領域番号nの時刻(t−1)と時刻(t)の重心データから時刻(t)の暫定動きベクトル(MoveVecT_X,MoveVecT_Y)を計算する(ステップS109)。
そして、動きベクトル演算部746は、ステップS108で計算した時刻(t−1)の動きベクトル(MoveVecT1_Xn,MoveVecT1_Yn)と、ステップS109で計算した暫定動きベクトル(MoveVecT_X,MoveVecT_Y)とから、上記の式(6)を用いて、2つの動きベクトルの内積を計算することによりcosθを求める(ステップS110)。
続いて、動きベクトル演算部746は、ステップS110において求めたcosθを用いて、記憶部77内の角度関係テーブル776(図6)を参照することにより、cosθに対応する角度θを求める(ステップS111)。
次に、動きベクトル演算部746は、時刻(t−1)の動きベクトル(MoveVecT1_Xn,MoveVecT1_Yn) と、時刻(t)の暫定動きベクトル(MoveVecT_X,MoveVecT_Y) との暫定外積Gaiseki_T0を、上記した式(7)により計算する(ステップS112)。
そして、動きベクトル演算部746は、時刻(t−1)と時刻(t)の重心データの距離Jyu_Distanceが最短となるJyu_Distance_minが存在し、かつ、角度θが最も0度に近い時刻(t)の重心が存在するか否かを判定する(ステップS113)。なお、ここで角度θが最も0度に近いという条件は、軌跡データとして、あまりに急激に角度θが変化したデータを、同じ動被写体の動きではないとして、排除するためのものである。また、ここで、重心データの距離Jyu_Distanceが所定値以上離れた場合にも、同じ動被写体の動きではないとして、そのデータを除去する。
そして、動きベクトル演算部746は、上記の条件を満たす重心が存在しない場合には(ステップS113→No)、処理を終了する。一方、存在する場合には(ステップS113→Yes)、動きベクトル演算部746は、重心データ(Jyu_T_Xn, Jyu_T_Yn)を、重心データ保存部773の時刻(t)の領域番号nの軌跡データ(Move_T0_Xn, Move_T0_Yn)として保存する。また、動きベクトル演算部746は、ステップS111において求めたθ_T0_nを、記憶部77内の角度データ保存部774に保存し、ステップS112において求めた外積データGaiseki_T0_nを、記憶部77内の外積データ保存部775に保存する。
以上により、動きベクトル演算部746は、動被写体の動きベクトルを時系列方向に解析し、動きベクトルの内積から角度θを算出するとともに、動きベクトルの外積を算出することができる。
以上により、動きベクトル演算部746は、動被写体の動きベクトルを時系列方向に解析し、動きベクトルの内積から角度θを算出するとともに、動きベクトルの外積を算出することができる。
≪回転行動算出部の処理≫
次に、着目行動検出部75内の回転行動算出部751が実行する処理について、具体的に説明する。
回転行動算出部751は、軌跡データ保存部772に保存した情報の内、角度データ保存部774に保存した時刻(t)〜時刻(t−31)の角度θの情報と、外積データ保存部775に保存した時刻(t)〜時刻(t−31)の外積データの情報を参照し、領域番号n=1〜24ごとに時刻(t)から時刻(t−31)までの角度θ_Tm_n(m=0〜31, n=1〜24)の和SUM_θnを、上記した式(8)により計算する。
また、回転行動算出部751は、領域番号n=1〜24ごとに、時刻(t)〜時刻(t−31)までの外積Gaiseki_Tm_n(m=0〜31, n=1〜24)の符号がm=31からm=0への時系列方向に正から負、負から正へ切り替わっている回数を、カウントHugo_Cnt_nとして計算する。
次に、着目行動検出部75内の回転行動算出部751が実行する処理について、具体的に説明する。
回転行動算出部751は、軌跡データ保存部772に保存した情報の内、角度データ保存部774に保存した時刻(t)〜時刻(t−31)の角度θの情報と、外積データ保存部775に保存した時刻(t)〜時刻(t−31)の外積データの情報を参照し、領域番号n=1〜24ごとに時刻(t)から時刻(t−31)までの角度θ_Tm_n(m=0〜31, n=1〜24)の和SUM_θnを、上記した式(8)により計算する。
また、回転行動算出部751は、領域番号n=1〜24ごとに、時刻(t)〜時刻(t−31)までの外積Gaiseki_Tm_n(m=0〜31, n=1〜24)の符号がm=31からm=0への時系列方向に正から負、負から正へ切り替わっている回数を、カウントHugo_Cnt_nとして計算する。
そして、回転行動算出部751は、計算したSUM_θnが所定値(例えば、360°)より大きく、かつ、Hugo_Cnt_nが所定回以下である場合には、その領域番号で示される動被写体が、回転行動をしていると判定する。一方、回転行動算出部751は、この判定条件(回転行動検出条件)を満たさない場合には、その領域番号で示される動被写体が、回転行動をしていないと判定する。
図11は、本実施形態に係る回転行動算出部751の処理を説明するための図である。
図11は、時刻(t−31)〜時刻(t)までの動被写体の動きベクトルを時系列方向に解析した結果を示している。
ここで、例えば、図11の符号aに示すように、時刻(t−7)において、動きベクトル(MoveVecT7_Xi, MoveVecT7_Yi)と動きベクトル(MoveVecT8_Xi, MoveVecT8_Yi)の内積により求まる角度は、θ_T7_nであり、外積Gaiseki_T7_i ≧ 0 (符号が正)となる。
そして、時刻(t−31)における動きベクトルから時刻(t)までの角度θの算出値に基づき、角度θ_Tm_n(m=0〜31, n=1〜24)の和SUM_θnは、次の式(9)に示すようになり、SUM_θnが所定値(例えば、360°)より大きいと判定される。
図11は、時刻(t−31)〜時刻(t)までの動被写体の動きベクトルを時系列方向に解析した結果を示している。
ここで、例えば、図11の符号aに示すように、時刻(t−7)において、動きベクトル(MoveVecT7_Xi, MoveVecT7_Yi)と動きベクトル(MoveVecT8_Xi, MoveVecT8_Yi)の内積により求まる角度は、θ_T7_nであり、外積Gaiseki_T7_i ≧ 0 (符号が正)となる。
そして、時刻(t−31)における動きベクトルから時刻(t)までの角度θの算出値に基づき、角度θ_Tm_n(m=0〜31, n=1〜24)の和SUM_θnは、次の式(9)に示すようになり、SUM_θnが所定値(例えば、360°)より大きいと判定される。
SUM_θn = θ_T31_n + θ_T30_n + θ_T29_n + … + θ_T1_n + θ_T0_n > 360°
… 式(9)
… 式(9)
また、外積については、Gaiseki_Tm_i(m=0〜31)が全て0以上であるため、Hugo_Cnt_n = 0 となる。よって、例えば、Hugo_Cnt_nが所定回(例えば、「3」)とした場合に、Hugo_Cnt_nが所定回(例えば、「3」)以下の条件を満たす。
このようにして、図11に示す場合においては、回転行動算出部751は、動被写体が回転行動、つまり、着目行動を行っていると判定することができる。
このようにして、図11に示す場合においては、回転行動算出部751は、動被写体が回転行動、つまり、着目行動を行っていると判定することができる。
≪ジグザグ行動算出部752の処理≫
ジグザグ行動算出部752は、軌跡データ保存部772に保存した情報の内、時刻(t)〜時刻(t−31)の外積データ保存部775に記憶された外積データを参照し、外積Gaiseki_Tm_n(m=0〜31, n=1〜24)の符号が、m=31からm=0への時系列方向に、正から負、負から正へ切り替わっている回数をカウントしHugo_Cnt_nを計算する。
そして、ジグザグ行動算出部752は、このHugo_Cnt_nが、その領域の総数の所定割合以上であるときに、その領域番号で示される動被写体が、ジグザグ行動をしていると判定する。
ジグザグ行動算出部752は、軌跡データ保存部772に保存した情報の内、時刻(t)〜時刻(t−31)の外積データ保存部775に記憶された外積データを参照し、外積Gaiseki_Tm_n(m=0〜31, n=1〜24)の符号が、m=31からm=0への時系列方向に、正から負、負から正へ切り替わっている回数をカウントしHugo_Cnt_nを計算する。
そして、ジグザグ行動算出部752は、このHugo_Cnt_nが、その領域の総数の所定割合以上であるときに、その領域番号で示される動被写体が、ジグザグ行動をしていると判定する。
図12は、本実施形態に係るジグザグ行動算出部752の処理を説明するための図である。
図12は、時刻(t−31)〜時刻(t)までの動被写体の動きベクトルを時系列方向に解析した結果を示している。
ここで、例えば、図12の符号aに示すように、時刻(t−9)においては、動きベクトル(MoveVecT9_Xi, MoveVecT9_Yi)と動きベクトル(MoveVecT10_Xi, MoveVecT10_Yi)との外積Gaiseki_T9_i ≧ 0 (符号が正)である。このように各時刻において、外積の符号が正であるか負であるかを確認し、正から負、負から正へ切り替わっている回数をカウントしHugo_Cnt_nを計算する。ここで、所定割合を8割とすると、切り替わりの回数が25回以上であれば、ジグザグ行動をしていると判定する。
図12においては、Hugo_Cnt_i = 29 ≧ 25 であるので、ジグザグ行動算出部752は、動被写体がジグザグ行動、つまり、着目行動を行っていると判定することができる。
図12は、時刻(t−31)〜時刻(t)までの動被写体の動きベクトルを時系列方向に解析した結果を示している。
ここで、例えば、図12の符号aに示すように、時刻(t−9)においては、動きベクトル(MoveVecT9_Xi, MoveVecT9_Yi)と動きベクトル(MoveVecT10_Xi, MoveVecT10_Yi)との外積Gaiseki_T9_i ≧ 0 (符号が正)である。このように各時刻において、外積の符号が正であるか負であるかを確認し、正から負、負から正へ切り替わっている回数をカウントしHugo_Cnt_nを計算する。ここで、所定割合を8割とすると、切り替わりの回数が25回以上であれば、ジグザグ行動をしていると判定する。
図12においては、Hugo_Cnt_i = 29 ≧ 25 であるので、ジグザグ行動算出部752は、動被写体がジグザグ行動、つまり、着目行動を行っていると判定することができる。
なお、着目行動検出部75は、回転行動算出部751、ジグザグ行動算出部752による着目行動検出処理が終了した時点で、記憶部77の軌跡データ保存部772に保存している、時刻(t)〜時刻(t−31)の重心データ保存部773の動きベクトルの重心データ、時刻(t)〜時刻(t−31)の角度データ保存部774の角度データ、および、時刻(t)〜(t−31)の外積データ保存部775の外積データのうち、それぞれの時刻(t−31)の情報を削除する。そして、時刻(t−30)の情報を時刻(t−31)へ移動し、時刻(t−29)の情報を時刻(t−30)へ移動し、以下同様にして、時刻(t)の情報を時刻(t−1)へ移動する。これにより、次の動きベクトル算出部74の処理に備えるようにする。
上記のように、着目行動検出部75内の回転行動算出部751およびジグザグ行動算出部752は、動きベクトル算出部74の動きベクトル演算部746が既に計算している、角度θ_Tm_nの情報、外積Gaiseki_Tm_nの情報を利用するため、別途、着目行動検出部75において処理負荷の大きい演算を実行する必要がなく、処理時間を低減することができる。
以上説明したように、本実施形態に係る、撮像装置1および着目行動検出方法によれば、被写体を撮影するカメラ側の撮像装置1において、着目行動を検出することができる。これにより、撮像装置1は、着目行動の検出時のみ映像データをネットワークを介して監視システム等に送信することができる。よって、ネットワーク上のデータ量を低減することができ、また、記憶媒体であるレコーダ側の保存データ量も削減することができる。さらに、本実施形態に係る撮像装置1によれば、負荷の高い複雑な処理を行わないため、比較的処理能力の低い環境でもリアルタイムに着目行動の検出ができ、着目行動を検出した際に、即座に監視システム側へ通知することが可能となる。
(変更例)
本実施形態に係る、撮像装置1および着目行動検出方法は、その発明の趣旨を逸脱しない範囲において、変更実施が可能である。
本実施形態においては、動きベクトルを時系列方向に解析し、それぞれに動被写体の時系列方向の動きの大きさ(重心間の距離)や内積により算出した移動角度、外積による動きの向きを算出している。この時系列方向の時刻が古い(例えば、最も古い時刻(t−31))の動きベクトルの情報を起点とし、回転行動やジグザグ行動のような着目行動が行われたか否かだけでなく、例えば、動被写体がカメラ画面を左から右方向に移動したといったような動被写体の方向情報も求めることができ、人流解析にも適用することができる。
具体的には、着目行動検出部75が、記憶部77の角度データ保存部774に記憶された時系列の角度データで示される角度と、外積データ保存部775に記憶された時系列の外積データの正負の符号に対応する時計回り方向若しくは反時計回り方向を示す情報を用いて、カメラ画面内の動被写体の動きを示す動きベクトルの進行方向を検出する。これにより、動被写体に方向情報を求めることができる。
本実施形態に係る、撮像装置1および着目行動検出方法は、その発明の趣旨を逸脱しない範囲において、変更実施が可能である。
本実施形態においては、動きベクトルを時系列方向に解析し、それぞれに動被写体の時系列方向の動きの大きさ(重心間の距離)や内積により算出した移動角度、外積による動きの向きを算出している。この時系列方向の時刻が古い(例えば、最も古い時刻(t−31))の動きベクトルの情報を起点とし、回転行動やジグザグ行動のような着目行動が行われたか否かだけでなく、例えば、動被写体がカメラ画面を左から右方向に移動したといったような動被写体の方向情報も求めることができ、人流解析にも適用することができる。
具体的には、着目行動検出部75が、記憶部77の角度データ保存部774に記憶された時系列の角度データで示される角度と、外積データ保存部775に記憶された時系列の外積データの正負の符号に対応する時計回り方向若しくは反時計回り方向を示す情報を用いて、カメラ画面内の動被写体の動きを示す動きベクトルの進行方向を検出する。これにより、動被写体に方向情報を求めることができる。
また、移動角度が0°から180°近く切り替わり、外積はゼロ付近に変わるか否かを確認することにより、動被写体が方向転換する行動を検出することができる。さらに、動きベクトルの大きさがゼロ、移動角度は0°のままか否かを確認することにより、動被写体が動いた状態から停止する行動を検出することも可能である。
1 撮像装置
10 レンズユニット
14 ズームレンズ制御用モータ
15 フォーカスレンズ制御用モータ
20 撮像素子
30 AFE
40 画像処理LSI
41 区域分割輝度算出部
42 信号処理部
50 DAC
60 映像信号出力部
70 マイコン
71 操作情報取得部
72 ズームレンズモータ制御部
73 フォーカスレンズモータ制御部
74 動きベクトル算出部
75 着目行動検出部
76 着目行動通知部
77 記憶部
80 カメラ操作部
90 メッセージ出力部
741 区域分割輝度情報収集部
742 絶対値差分算出部
743 二値化処理部
744 ラベリング処理部
745 重心データ算出部
746 動きベクトル演算部
751 回転行動算出部
752 ジグザグ行動算出部
771 区域分割輝度情報保存部
772 軌跡データ保存部
773 重心データ保存部
774 角度データ保存部
775 外積データ保存部
776 角度関係テーブル
10 レンズユニット
14 ズームレンズ制御用モータ
15 フォーカスレンズ制御用モータ
20 撮像素子
30 AFE
40 画像処理LSI
41 区域分割輝度算出部
42 信号処理部
50 DAC
60 映像信号出力部
70 マイコン
71 操作情報取得部
72 ズームレンズモータ制御部
73 フォーカスレンズモータ制御部
74 動きベクトル算出部
75 着目行動検出部
76 着目行動通知部
77 記憶部
80 カメラ操作部
90 メッセージ出力部
741 区域分割輝度情報収集部
742 絶対値差分算出部
743 二値化処理部
744 ラベリング処理部
745 重心データ算出部
746 動きベクトル演算部
751 回転行動算出部
752 ジグザグ行動算出部
771 区域分割輝度情報保存部
772 軌跡データ保存部
773 重心データ保存部
774 角度データ保存部
775 外積データ保存部
776 角度関係テーブル
Claims (6)
- カメラ映像内の動被写体をカメラ画面内の座標として算出し、前記算出した動被写体の重心座標を算出し、当該動被写体の重心座標についての時系列での移動を、動きベクトルとして算出し、前記動きベクトルの算出処理を所定期間繰り返し、前記所定期間内の時系列で隣接する動きベクトル同士について、内積に基づき算出される前記動きベクトル同士の角度と前記動きベクトル同士の外積とを求め、前記動きベクトル同士の角度を時系列の角度データとして記憶部に記憶し、前記動きベクトル同士の外積を時系列の外積データとして前記記憶部に記憶する動きベクトル算出部と、
前記記憶部に記憶された前記時系列の角度データで示される前記所定期間内の角度の総和を算出するとともに、前記記憶部に記憶された前記時系列の外積データで示される前記所定期間内の外積の符号が正から負または負から正に切り替わる回数をカウントし、前記算出した角度の総和が所定値以上であり、かつ、前記外積の符号が切り替わる回数が所定回以下である回転行動検出条件を満たす場合に、前記動被写体が回転行動を行っていると判定して、着目行動を検出する着目行動検出部と、
前記着目行動検出部が前記着目行動を検出した場合に、前記着目行動の検出メッセージを出力する着目行動通知部と、
を備えることを特徴とする撮像装置。 - カメラ映像内の動被写体をカメラ画面内の座標として算出し、前記算出した動被写体の重心座標を算出し、当該動被写体の重心座標についての時系列での移動を、動きベクトルとして算出し、前記動きベクトルの算出処理を所定期間繰り返し、前記所定期間内の時系列で隣接する動きベクトル同士の外積を求め、前記動きベクトル同士の外積を時系列の外積データとして記憶部に記憶する動きベクトル算出部と、
前記記憶部に記憶された前記時系列の外積データで示される前記所定期間内の外積の符号が時系列で切り替わる全体に占める割合が、所定の割合以上であることを示すジグザグ行動検出条件を満たす場合に、前記動被写体がジグザグ行動を行っていると判定して、着目行動を検出する着目行動検出部と、
を備えることを特徴とする撮像装置。 - 前記着目行動検出部は、さらに、
前記記憶部に記憶された前記時系列の角度データで示される角度と、前記記憶部に記憶された前記時系列の外積データの正負の符号に対応する時計回り方向若しくは反時計回り方向を示す情報を用いて、前記カメラ画面内の前記動被写体の動きを示す動きベクトルの進行方向を検出すること
を特徴とする請求項1に記載の撮像装置。 - 撮像装置が、
カメラ映像内の動被写体をカメラ画面内の座標として算出し、前記算出した動被写体の重心座標を算出し、当該動被写体の重心座標についての時系列での移動を、動きベクトルとして算出し、前記動きベクトルの算出処理を所定期間繰り返し、前記所定期間内の時系列で隣接する動きベクトル同士について、内積に基づき算出される前記動きベクトル同士の角度と前記動きベクトル同士の外積とを求め、前記動きベクトル同士の角度を時系列の角度データとして記憶部に記憶し、前記動きベクトル同士の外積を時系列の外積データとして前記記憶部に記憶するステップと、
前記記憶部に記憶された前記時系列の角度データで示される前記所定期間内の角度の総和を算出するとともに、前記記憶部に記憶された前記時系列の外積データで示される前記所定期間内の外積の符号が正から負または負から正に切り替わる回数をカウントし、前記算出した角度の総和が所定値以上であり、かつ、前記外積の符号が切り替わる回数が所定回以下である回転行動検出条件を満たす場合に、前記動被写体が回転行動を行っていると判定して、着目行動を検出するステップと、
前記着目行動を検出した場合に、前記着目行動の検出メッセージを出力するステップと、
を実行することを特徴とする着目行動検出方法。 - 前記撮像装置は、さらに、
前記記憶部に記憶された前記時系列の外積データで示される前記所定期間内の外積の符号が時系列で切り替わる全体に占める割合が、所定の割合以上であることを示すジグザグ行動検出条件を満たす場合に、前記動被写体がジグザグ行動を行っていると判定して、前記着目行動を検出するステップを
実行することを特徴とする請求項4に記載の着目行動検出方法。 - 前記撮像装置は、さらに、
前記記憶部に記憶された前記時系列の角度データで示される角度と、前記記憶部に記憶された前記時系列の外積データの正負の符号に対応する時計回り方向若しくは反時計回り方向を示す情報を用いて、前記カメラ画面内の前記動被写体の動きを示す動きベクトルの進行方向を検出するステップを
実行することを特徴とする請求項4または請求項5に記載の着目行動検出方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016238475A JP2018097416A (ja) | 2016-12-08 | 2016-12-08 | 撮像装置および着目行動検出方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016238475A JP2018097416A (ja) | 2016-12-08 | 2016-12-08 | 撮像装置および着目行動検出方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018097416A true JP2018097416A (ja) | 2018-06-21 |
Family
ID=62633559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016238475A Pending JP2018097416A (ja) | 2016-12-08 | 2016-12-08 | 撮像装置および着目行動検出方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018097416A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020031531A1 (ja) * | 2018-08-10 | 2020-02-13 | コニカミノルタ株式会社 | 移動行動異常判定装置および該方法ならびに被監視者監視支援システム |
-
2016
- 2016-12-08 JP JP2016238475A patent/JP2018097416A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020031531A1 (ja) * | 2018-08-10 | 2020-02-13 | コニカミノルタ株式会社 | 移動行動異常判定装置および該方法ならびに被監視者監視支援システム |
JPWO2020031531A1 (ja) * | 2018-08-10 | 2021-09-30 | コニカミノルタ株式会社 | 移動行動異常判定装置および該方法ならびに被監視者監視支援システム |
JP7352197B2 (ja) | 2018-08-10 | 2023-09-28 | コニカミノルタ株式会社 | 移動行動異常判定装置および該方法ならびに被監視者監視支援システム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3024227B1 (en) | Image processing apparatus and image processing method | |
US10204275B2 (en) | Image monitoring system and surveillance camera | |
CN104966304B (zh) | 基于卡尔曼滤波与非参数背景模型的多目标检测跟踪方法 | |
US10334150B2 (en) | Camera system and method of tracking object using the same | |
US9635237B2 (en) | Method and camera for determining an image adjustment parameter | |
US8437504B2 (en) | Imaging system and imaging method | |
CN106488115B (zh) | 用于追踪并传感追踪目标的图像传感设备的控制装置及方法 | |
CN103139492B (zh) | 摄像装置、摄像方法以及监视*** | |
CN109698905B (zh) | 控制设备、摄像设备、控制方法和计算机可读存储介质 | |
US10937124B2 (en) | Information processing device, system, information processing method, and storage medium | |
KR102282470B1 (ko) | 카메라 장치 및 이를 이용한 객체 추적 방법 | |
JP5155110B2 (ja) | 監視装置 | |
JP5955170B2 (ja) | 表示制御装置、表示制御方法、及びプログラム | |
WO2000054508A1 (fr) | Dispositif et procede de traitement de signaux camera | |
CN110610119B (zh) | 影像分析方法、电子***以及非暂态电脑可读取记录媒体 | |
WO2013017184A1 (en) | Method and device for video surveillance | |
JP2018097416A (ja) | 撮像装置および着目行動検出方法 | |
CN116887060A (zh) | 像素坏点矫正方法及装置、电子设备、存储介质 | |
KR102107137B1 (ko) | 팬틸트줌 카메라를 이용한 이벤트 감지방법 및 장치 | |
JP7150462B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
JP2010021597A (ja) | 撮像装置および撮像方法 | |
JP2018142911A (ja) | 撮像装置および撮像画像の揺れ補正方法 | |
JP2021022783A (ja) | 制御装置、追尾システム、制御方法、及びプログラム | |
JP2015088818A (ja) | 監視カメラ及び画像監視装置 | |
JP2013030921A (ja) | 撮像装置、その制御方法及びプログラム |