(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-25
(45)【発行日】2024-12-03
(54)【発明の名称】行列検出システム、方法及びプログラム
(51)【国際特許分類】
G06T 7/20 20170101AFI20241126BHJP
G06V 20/52 20220101ALI20241126BHJP
H04N 7/18 20060101ALI20241126BHJP
【FI】
G06T7/20 300Z
G06V20/52
H04N7/18 D
(21)【出願番号】P 2022064304
(22)【出願日】2022-04-08
(62)【分割の表示】P 2021033283の分割
【原出願日】2016-09-12
【審査請求日】2022-04-22
【審判番号】
【審判請求日】2023-12-26
(31)【優先権主張番号】P 2015180260
(32)【優先日】2015-09-14
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100109313
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100149618
【氏名又は名称】北嶋 啓至
(72)【発明者】
【氏名】海老山 有紀江
【合議体】
【審判長】中木 努
【審判官】廣川 浩
【審判官】本郷 彰
(56)【参考文献】
【文献】米国特許出願公開第2005/0117778(US,A1)
【文献】特開2003-276963(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T1/00
G06T7/00-7/90
H04N7/18
G06V10/00-20/90
G06M11/00
(57)【特許請求の範囲】
【請求項1】
ユーザが行列位置を入力する操作に基づき、映像上で行列
に並ぶ人物を検出する領域を設定する設定手段、
映像に映る人物の移動速度を算出する算出手段、
前記領域において、算出された移動速度及び前記行列位置との距離が所定の閾値より小さい人物を判定する判定手段、
前記判定に基づき、前記映像から行列
に並ぶ人物を検出する検出手段、を備える行列検出システム。
【請求項2】
前記検出手段は、前記判定された人物が行列に並ぶ人物であることを検出する、請求項1に記載の行列検出システム。
【請求項3】
前記算出手段は、前記映像が有する複数のフレームにおける前記人物の位置座標を用いて、前記人物の移動速度を算出する、請求項1または2に記載の行列検出システム。
【請求項4】
ユーザが行列位置を入力する操作に基づき、映像上で行列
に並ぶ人物を検出する領域を設定し、
映像に映る人物の移動速度を算出し、
前記領域において、算出された移動速度及び前記行列位置との距離が所定の閾値より小さい人物を判定し、
前記判定に基づき、前記映像から行列
に並ぶ人物を検出する、行列検出方法。
【請求項5】
前記判定された人物が行列に並ぶ人物であることを検出する、請求項4に記載の行列検出方法。
【請求項6】
前記映像が有する複数のフレームにおける前記人物の位置座標を用いて、前記人物の移動速度を算出する、請求項4または5に記載の行列検出方法。
【請求項7】
ユーザが行列位置を入力する操作に基づき、映像上で行列
に並ぶ人物を検出する領域を設定する設定処理、
映像に映る人物の移動速度を算出する算出処理、
前記領域において、算出された移動速度及び前記行列位置との距離が所定の閾値より小さい人物を判定する判定処理、
前記判定に基づき、前記映像から行列
に並ぶ人物を検出する検出処理、をコンピュータに実行させるプログラム。
【請求項8】
前記検出処理は、前記判定された人物が行列に並ぶ人物であることを検出する、請求項7に記載のプログラム。
【請求項9】
前記算出処理は、前記映像が有する複数のフレームにおける前記人物の位置座標を用いて、前記人物の移動速度を算出する、請求項7または8に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、映像から行列を検出するためのシステム、方法及び記録媒体に関する。
【背景技術】
【0002】
カメラ映像から行列を検出する方法、及び、行列を成す人数や長さ、待ち時間等を解析する方法が種々提案されている。
【0003】
特許文献1に記載された技術は、入力画像に対し、背景差分を用いて人物領域の面積を求め、その面積をあらかじめ定めた一人あたりの単位面積で除算して人数を推定する。特許文献1に記載された技術は、推定した人数に対し、別途所定の方法で集計した単位時間当たりの入場者数で除算することにより、待ち時間を推定する。
【0004】
特許文献2に記載された技術は、天井に設置したカメラで行列を真上から撮影し、背景差分及びオプティカルフローを用いて、滞留及び移動中の個々の人物領域を抽出する。特許文献2に記載された技術は、抽出した個々の人物領域を順に結んで行列線を生成し、各行列の総延長及び長さに基づく待ち時間を算出する。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2002-329196号公報
【文献】特開2007-317052号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上述の特許文献1及び2に記載の技術では、行列に並ぶつもりではなく単に滞留しているだけ等の人物であっても、その人物を行列に並ぶ人として処理してしまう場合がある。
【0007】
本発明の目的は、上述の課題を解決可能な技術を提供することである。
【課題を解決するための手段】
【0008】
本開示の一態様に係る行列検出システムは、ユーザによる行列位置の入力を受け付ける行列情報入力手段と、入力画像から検出された対象物と前記行列位置との距離に基づいて、前記対象物が行列に並んでいるか否かを判定する判定手段と、前記対象物が行列に並んでいるか否かに応じて異なる移動モデルを使用し、前記対象物の位置を追跡する追跡手段と、を含む。
【0009】
本開示の一態様に係る行列検出方法は、ユーザによる行列位置の入力を受け付け、入力画像から検出された対象物と前記行列位置との距離に基づいて、前記対象物が行列に並んでいるか否かを判定し、前記対象物が行列に並んでいるか否かに応じて異なる移動モデルを使用し、前記対象物の位置を追跡する。
【0010】
本開示の一態様に係るプログラムは、コンピュータに、ユーザによる行列位置の入力を受け付ける処理、入力画像から検出された対象物と前記行列位置との距離に基づいて、前記対象物が行列に並んでいるか否かを判定する処理、前記対象物が行列に並んでいるか否かに応じて異なる移動モデルを使用し、前記対象物の位置を追跡する処理、を実行させる。
【発明の効果】
【0011】
本発明によれば、行列に並ぶつもりではなく単に滞留しているだけ等の人物であっても、誤ってその人物を行列に並ぶ人として処理してしまう場合がある、という課題が解決される。
【図面の簡単な説明】
【0012】
【
図1】本発明の実施形態1の構成例を示す機能ブロック図である。
【
図2】行列情報の入力方法の例を示す説明図である。
【
図3】行列情報の入力方法の例を示す説明図である。
【
図4】行列待ち情報の生成過程の例を示す説明図である。
【
図5】行列待ち情報の生成過程の例を示す説明図である。
【
図6】本発明の実施形態1の処理経過の例を示すフローチャートである。
【
図7】本発明の実施形態1の処理経過の例を示すフローチャートである。
【
図8】本発明の実施形態2の構成例を示す機能ブロック図である。
【
図9】本発明の実施形態2の処理経過の例を示すフローチャートである。
【
図10】本発明の各実施形態を実現可能なコンピュータのハードウェア構成例を説明する図である。
【発明を実施するための形態】
【0013】
まず、本発明の実施形態の理解を容易にするために、本発明の背景を説明する。
【0014】
上述の特許文献1及び2に記載の技術では、行列に並ぶつもりではなく単に滞留しているだけ等の人物であっても、その人物を行列に並ぶ人として処理してしまう場合がある。
【0015】
例えば、特許文献1に記載の技術は、入力画像に対し、背景差分を用いて人物領域の面積を求めるため、行列に並ぶつもりではない人が行列の付近に立ち止まった場合、その単に滞留している人も含めて人物領域の面積を求めることになる。また、本来の行列から離れた位置に複数の滞留者がいた場合、特許文献1に記載の技術はその複数の滞留者が行列を構成する人々であると認識しうる。特許文献1に記載の技術には、その他の課題として、オクルージョンの発生による未検出等がある。特許文献1のような背景差分に基づく手法では、人物の体格の違い、荷物等付帯物の有無、及び、人物同士の重なりや遮蔽物による隠れによって、実際の人物と差分ベースで取得する人物領域との関係に容易に誤差が生じる。また、この手法では、個々の人物やその並び順を認識しないため、人物ごとの待ち時間を算出することができない。
【0016】
また、特許文献2に記載の技術においても、特許文献1と同様に単なる滞留者を行列に並ぶ人であるとする誤処理が生じうる。また、その他の課題として、特許文献2に記載の手法は、人物の検出及び追跡が良好に行えることを前提としているが、実環境においては、カメラの設置位置や建物の構造等により、人物同士の重なりや遮蔽物によるオクルージョンの発生が想定される。これにより、オクルージョン領域において人物の検出漏れが生じ、その結果行列に並ぶ人物を正しく繋ぐことに失敗し、誤った人数及び待ち時間を推定してしまう。特許文献2では、このようなオクルージョンの問題を解決するために、高い位置にカメラを設置し人物を真上から撮影することを提案している。しかし、一般的な屋内施設または屋外において必ずしも高い位置にカメラを設置できる環境が整っているとは限らない。また、一般的な監視カメラとも設置位置及び画角が異なるため、行列検出専用のカメラとして新たに設置する必要があり、導入コストの増大につながる。したがって、特殊な設置条件のカメラを使用するのではなく、人物を斜め上から撮影するような既設の監視カメラ映像を使用し、オクルージョンの問題を解決することが望ましい。
【0017】
以下に説明される本発明の実施形態によれば、上述の課題が解決され、行列に並ぶ意図でない人物の誤検出が防止され、また、天井設置型等特殊なカメラでなくても、オクルージョンに頑健に行列を検出することができる。
【0018】
以下、本発明の実施形態を、図面を参照して説明する。
【0019】
<実施形態1>
図1は本発明の実施形態1の構成例を示すブロック図である。
【0020】
図1に示すように、本実施形態に係る行列検出システムは、画像入力部1と、行列情報入力部2と、行列検出部3と、出力部4とを含む。
【0021】
画像入力部1は、所定の監視領域を撮影した時系列の画像と撮影時刻との組を、行列検出部3に逐次入力する。画像入力部1が行列検出部3に入力する画像は、例えば監視カメラなどの撮影装置を用いて取得されてもよい。または、画像入力部1は、記憶装置(図示せず)に記憶された映像データを読み出して得られる時系列の画像を行列検出部3に入力してもよい。
【0022】
なお、本実施形態において検出対象とする物体の種別は特に限定されず、人物、動物、車、ロボット、又は物であってもよい。以下では、人物の検出を例にして説明する。
【0023】
行列情報入力部2は、解析対象となる行列の発生位置(以下「行列位置」という。)を入力する。行列情報入力部2は、例えばマウスや、タブレット端末のタッチパネルを介してユーザによる行列の発生位置の入力を受け付ける。行列情報入力部2は、ユーザによるマウス操作や、タッチペンや指などによるタッチパネル操作に基づき、監視カメラ映像が表示された画面上に行列の発生位置を入力してもよい。具体的には、行列情報入力部2は、画面上に、行列発生時の人物の足元位置の始点、中継点及び終点を描画して、行列の経路及び進行方向を入力してもよい。この時、ユーザは、始点及び終点を少なくともそれぞれ1点以上指定する必要があるが、中継点の指定は0点であってもよい。また、分岐や合流を含む行列を表現するために、ユーザは、始点又は終点の少なくともいずれかについて2つ以上入力してもよい。また、行列情報入力部2は、始点、中継点、終点間を結ぶ行列線ごとに、横に並ぶ人数の指定を、ユーザから受け付けるようにしてもよい。
【0024】
また、入力された始点、中継点、終点及び横に並ぶ人数を、監視カメラ映像が表示された画面上に重畳して描画することで、ユーザが入力内容を容易に確認できるようにしてもよい。また、行列情報の入力は、行列検出処理を開始する前にあらかじめ行われていてもよいし、行列検出処理を実行中の任意のタイミングで、変更した行列情報が反映されるようにしてもよい。
【0025】
なお、行列情報の入力方法は、上述のものに限定されない。例えば、行列発生時の人物の足元位置の始点、中継点及び終点の入力が行われるのではなく、ユーザがタッチパネル上に直接、直線や曲線をなぞることで行列位置を入力するようにしてもよい。または、行列情報入力部2は、ユーザによる入力に基づくのではなく、装置内外で格納されている所定の書式で行列位置が記述されたファイルを読み込む等の方法により自動的に行列位置を入力するようにしてもよい。
【0026】
ここで、行列情報の入力について具体的に説明する。
図2は行列に並ぶ人物を監視カメラで撮影した画像を示す図である
図2は、奥から手前方向に人物が並んでいる様子を示す。また、
図2は、行列の最後尾では二股に分かれているが、途中で合流し、2列の行列となって先頭まで続いている様子を示している。
図3は、行列情報として、行列の最後尾である2つの終点(終点1及び終点2)と、2つの中継点(中継点1及び中継点2)と、行列の先頭である1つの始点(始点1)とが入力された様子を示す。また、
図3は、終点1及び2から中継点1までは1列の行列、中継点1から始点1までは2列の行列として入力された様子を示す。
【0027】
行列情報入力部2は、上述のようにして入力された始点、中継点、終点及び各地点間の情報を、任意のタイミングで行列位置として反映させる。例えば、入力情報を反映させるための「反映」ボタンを表示画面上に表示しておき、ユーザによるそのボタンの押下を検出すると、行列情報入力部2は、入力情報を反映させてもよい。これにより反映された行列情報が、判定部33の判定等に用いられることになる。
【0028】
行列検出部3は、画像入力部1から逐次入力される画像を解析し、画像中の行列を検出する。行列検出部3は、検出部31と、追跡部32と、判定部33と、生成部34とを備える。
【0029】
検出部31は、画像入力部1から取得した画像中に存在するすべての、又は一部の人物を検出する。検出部31は、例えば、あらかじめ人物の頭部、上半身など特定部位の人体領域のパターンを認識するために構築された識別器を利用し入力画像から人物を検出する処理を行ってもよい。識別器を利用する方法に限定されず、検出部31は、人物の検出方法としてパターン認識における公知の手法を用いればよい。
【0030】
また、検出部31は、行列位置の近辺に存在する人物のみを検出対象とするために、行列情報入力部2から入力される行列位置に基づいて、検出対象領域を限定して検出処理を行うようにしてもよい。すなわち、検出部31は、入力された行列位置の近傍の領域に対してのみ検出処理を行うようにしてもよい。
【0031】
検出部31は、検出結果として、画像入力部1から取得した画像の時刻と、検出した人物の位置座標を出力する。入力画像を撮影したカメラのキャリブレーション情報について、あらかじめ算出されている等によりわかっている場合、検出部31は、キャリブレーション情報を用いて、人物の検出結果である画面上の位置座標を世界座標に変換して出力してもよい。
【0032】
追跡部32は、検出部31により各フレーム画像から検出された人物を対象に、複数フレーム間に渡って人物の追跡を行う。追跡部32は、例えば、パーティクルフィルタなどの公知のアルゴリズムを用いて、人物の追跡処理を行うようにしてもよい。
【0033】
追跡部32は、追跡対象の人物の位置を更新するために用いる移動モデルに関し、対象が行列に並ぶ人物か否かによって、異なる移動モデルを使用してもよい。追跡部32は、行列に並ぶ人物であるかどうかにつき、例えば判定部33が管理する行列人物ID(IDentifier)リストを参照してもよい。その場合、追跡部32は、追跡対象の人物IDが行列人物IDリストに登録されていれば行列に並ぶ人物であると判定し、登録されていなければ行列に並んでいない人物であると判定しても良い。
【0034】
行列に並ぶ人物に関し、並んでいる時間の多くは静止状態である。そのため、多くの時間で静止状態を表す(すなわち、ほとんど移動しない)移動モデルを適用することが適切である。また、行列情報入力部2から得られる行列位置情報により、場所ごとの進行方向は既知である。そのため、進行方向を限定した移動モデルを適用することができる。つまり、追跡部32は、行列に並ぶ人物に対して、移動状態と静止状態を表す2状態モデルを使用した追跡処理を行うことで、より頑健に追跡することが可能になる。追跡部32は、行列に並ぶ人物が静止状態か移動状態かに応じて、各状態モデルの重みを変化させるようにしてもよい。
【0035】
一方で、行列に並んでいない人物は、移動方向に制限がない。そのため、追跡部32は、行列に並んでいない人物に対しては、所定範囲の移動速度で全方位に移動することを想定した移動モデルを適用してもよい。
【0036】
入力された人物の位置情報が画像上の平面座標である場合で、あらかじめ算出されている等の事情により入力画像を撮影したカメラのキャリブレーション情報をわかっている場合、追跡部32は、世界座標系で追跡処理を行ってもよい。すなわち、追跡部32は、キャリブレーション情報を用いて、画面上の座標系を世界座標系に変換してから追跡処理を行ってもよい。人物の位置情報が世界座標系で入力される場合は、追跡部32は、そのまま世界座標系にて追跡処理を行ってもよい。
【0037】
追跡部32は、追跡結果を出力する。追跡部32は、例えば、追跡結果として、追跡対象の人物毎の人物IDと、時刻と、位置座標とを紐付けた情報を出力する。
【0038】
判定部33は、追跡部32から出力される時刻ごとの人物の位置座標をもとに、各人物の移動速度を算出する。判定部33は、人物の位置座標と、行列情報入力部2から入力される行列位置の座標とを比較し、各人物と行列位置との距離を算出する。
【0039】
判定部33は、移動速度及び行列位置との距離が所定の閾値よりも小さくなる人物を、行列に並ぶ人物(以下、「行列人物」という。)と判定する。判定部33は、当該移動速度または行列位置との距離が所定の閾値以上となる人物を、行列に並ばない人物(以下、「移動人物」という。)と判定する。
【0040】
判定部33は、検出部31が特定部位として頭部を検出した場合、カメラパラメータを用いて、頭部の位置から人物の足元に相当する下端位置を推定し、推定した下端位置と行列位置との距離に基づいて、人物が行列に並んでいるか否かを判定してもよい。これにより、足元を直接検出することが困難な場合にも、比較的検出が容易な頭部を検出し、そこから足元を推定するとこで、判定部33は、精度よく行列人物か否かを判定することができる。判定部33は、人物が大人である可能性や子供である可能性を考慮してもよい。具体的には、例えば、判定部33は、頭部の世界座標系における高さを複数のバリエーションで仮定し、カメラパラメータを用いて、仮定した複数の高さから複数の下端位置を推定する。判定部33は、推定した複数の下端位置と行列位置との最短距離に基づいて、対象物が行列に並んでいるか否かを判定してもよい。
【0041】
判定部33は、追跡中の各人物IDが、行列人物と移動人物のどちらであるかを示す行列人物IDリストを保持しておく。行列人物IDリストとは、追跡中の人物の人物IDと、当該人物が行列人物または移動人物のどちらであるかを表す情報と、の組を管理しているリストである。
【0042】
判定部33は、追跡中の各人物IDについて、移動速度と行列位置との距離に基づく判定結果を用いて、行列人物IDリストを更新する。
【0043】
判定部33は、行列人物であると判定した人物の情報を出力する。判定部33は、例えば、行列人物であると判定した人物の人物IDと、時刻と、位置座標とを紐付けた情報を出力する。
【0044】
生成部34は、判定部33から入力される行列人物の情報と、行列情報入力部2から入力される行列位置の情報とに基づいて、欠損のない全体の行列情報を生成する。すなわち、生成部34は、未検出領域を推定し、行列人物の情報から未検出領域に並ぶ人物の情報を補完して、行列情報を生成する。
【0045】
具体的には、生成部34は、行列人物の位置座標と、行列位置と、に基づいてオクルージョンの発生状況(オクルージョンの影響による人物の未検出領域)を推定する。生成部34は、推定したオクルージョンの発生状況と、未検出領域前後の行列人物の検出状況等から、オクルージョンの影響により検出されなかった人物の存在を推定する。また、生成部34は、見えが小さすぎることにより人物が検出できない領域(見えの影響による人物の未検出領域)を推定する。生成部34は、見えの影響による未検出の可能性と、行列人物の検出状況とから、検出されなかった人物の存在を推定する。生成部34は、未検出だが存在すると推定された人物の情報を補完することで、欠損のない全体の行列情報を生成する。生成部34は、欠損のない全体の行列情報として、例えば、行列に並ぶ人数、行列の長さ、行列に並ぶ各人の累積待ち時間、行列の進行速度、行列に並び始めてから行列を抜けるまでの推定待ち時間などの情報を生成してもよい。
【0046】
オクルージョンの発生状況の推定方法として、
図4、
図5を用いて説明する。
【0047】
図4は、折り返しのある行列を撮影した画像を示す図である。
図4は、画像中の左上が行列の始点(先頭)となり、途中で2回折り返し、右下が行列の終点(最後尾)となっている様子を示す。
【0048】
斜め下を見下ろす画角で撮影された映像は、カメラからの距離が遠い場所ほど俯角が浅くなる。そのため、人物が等間隔に並んだ行列においても、カメラから遠い人物ほど手前の人物に隠れやすくなってしまう。また、カメラから離れるほど人物の見えが小さくなる。そのため、カメラから遠くに存在する人物は、人物を検出可能な最小画素数を下回ることで、検出されなくなることがある。具体例として、
図4では、網掛けで示した領域で、オクルージョンや人物の見えが小さすぎることにより未検出となったことを示している。
【0049】
このような状況において、例えば行列全体の待ち人数を算出する場合は、生成部34は、例えば以下のような方法で算出する。生成部34は、判定部33により行列人物と判定された人物の位置座標と、行列情報入力部2から入力された行列位置とに基づいて、途切れた行列長を算出する。また、生成部34は、人物位置が得られている領域から人口密度(所定の距離内で並ぶ人数)を推定する。生成部34は、推定した人口密度に基づいて途切れた行列長に存在する人数を推定し、検出できた人数と合算して待ち人数を算出する。生成部34は、例えば上述の方法で待ち人数を算出する。
【0050】
また、各人の累積待ち時間を算出する場合は、生成部34は、例えば以下のような方法で算出する。生成部34は、上述の方法でオクルージョン領域に存在する人数を推定する。生成部34は、オクルージョン領域の直前及び直後で検出された人物について、行列に並び始めてからの累積待ち時間を算出する。生成部34は、算出した2つの累積待ち時間の時間差をオクルージョン領域に存在する推定人数で除算する。生成部34は、除算することで算出した時間差を、オクルージョン領域に存在する先頭の人物から順に、前に並んでいる人物の累積待ち時間に加算していくことで、累積待ち時間の補間処理を行う。
【0051】
出力部4は、行列検出部3から入力される行列情報を出力する。出力部4の出力様態は、例えば、表示出力である。この場合、出力部4は、外部に備えられたディスプレイ装置に表示を行えばよい。ただし、出力部4の出力態様は表示に限定されず、他の態様であってもよい。
【0052】
次に、本実施形態に係る行列検出システムの動作について、
図6及び
図7のフローチャートを参照して説明する。
図6は、ユーザが行列位置を入力する際の処理フローの一例を示す。
図7は、行列位置が入力されたのち、行列を検出し、欠損のない全体の行列情報を生成する際の処理フローの一例を示す。
【0053】
なお、後述の各処理ステップは、処理内容に矛盾を生じない範囲で、任意に順番を変更してもしくは並列に実行してもよく、また、各処理ステップ間に他のステップを追加しても良い。更に、便宜上1つのステップとして記載されているステップは複数のステップに分けて実行してもよく、便宜上複数に分けて記載されているステップを1ステップとして実行してもよい。
【0054】
はじめに、ユーザが行列位置を入力する際の処理について、
図6のフローチャートを参照して説明する。
【0055】
行列情報入力部2は、所定の監視領域を撮影した画像を取得し、行列位置を設定するための画面上に表示する(ステップSA1)。
【0056】
次に、ユーザは、表示された画面上に、未設定である行列が存在するかどうかを確認する。行列の設定が完了しておらず未設定の行列が存在する場合、行列情報入力部2は、所定の入力装置を介してユーザによる行列位置の入力の開始を受け付ける(ステップSA2のno)。入力装置としては、例えばマウスやタッチパネルが該当し、タッチパネルであれば、ユーザはタッチペンや指などを使用して入力すればよい。
【0057】
行列情報入力部2は、ユーザによる行列の始点の入力を受け付ける(ステップSA3)。ユーザが設定しようとしている行列に始点が複数存在する場合は、行列情報入力部2は、ステップSA3ですべての始点の入力を受け付ける。
【0058】
次に、行列情報入力部2は、ユーザによる行列の分岐や経由地点を表す中継点の入力を受け付ける(ステップSA4)。もし行列が始点と終点を結ぶ直線で表すことができる場合は、中継点の入力は必要ないため、ステップSA4の処理は省略される。また、ユーザが設定しようとしている行列に中継点が複数存在する場合は、行列情報入力部2は、ステップSA4ですべての中継点の入力を受け付ける。
【0059】
次に、行列情報入力部2は、行列の終点の入力を受け付ける(ステップSA5)。ユーザが設定しようとしている行列に終点が複数存在する場合は、行列情報入力部2は、ステップSA5ですべての終点の入力を受け付ける。
【0060】
なお、ステップSA3、SA4及びSA5で入力した始点、中継点及び終点は、入力される都度、ステップSA1で取得した画像上に表示され、ユーザは入力された各点を確認できるものとしてもよい。
【0061】
次に、ユーザは、入力した始点、中継点及び終点の地点間を結ぶ各線分に対し、列の数(横に並ぶ人数)の入力が未設定である線分が存在するかどうかを確認する。列数の設定が完了しておらず未設定の線分が存在する場合、行列情報入力部2は、未設定の線分に対し、上述した入力装置を介してユーザによる列の数の入力の開始を受け付ける(ステップSA6のno)。行列情報入力部2は、ユーザによる列の数の入力を受け付ける(ステップSA7)。
【0062】
なお、ステップSA7で入力した地点間を結ぶ各線分及び列の数は、入力される都度、ステップSA1で取得した画像上に表示され、ユーザは入力された各線分の人数を確認できるものとしてもよい。
【0063】
行列情報入力部2は、ユーザによるすべての線分に対する列の数の入力が完了する(ステップSA6のyes)と、ステップSA2に戻り、次の行列に関する入力の受付を開始する。行列情報入力部2は、ユーザによるすべての線分に対する列の数の入力が完了したことを、例えば、その旨のユーザによる入力を受け付けることにより、又はユーザの入力の開始がないまま所定時間が経過することにより判定してもよい。
【0064】
行列情報入力部2は、ユーザによるすべての行列の入力が完了したことを判定すると(ステップSA2のyes)、行列情報入力部2における行列情報の入力は完了となる。行列情報入力部2は、ユーザによるすべての行列の入力が完了したことを、例えば、その旨のユーザによる入力を受け付けることにより、又はユーザの入力の開始がないまま所定時間が経過することにより判定してもよい。
【0065】
次に、行列を検出し行列待ち情報を生成する際の処理について、
図7のフローチャートを参照して説明する。
【0066】
検出部31は、入力部1から、撮影画像とその撮影時刻を取得する(ステップSB1)。検出部31は、画像中に存在するすべての人物を検出し、時刻及び検出した人物の位置座標を出力する(ステップSB2)。
【0067】
次に、追跡部32の追跡結果を受け、判定部33は、前フレーム画像に対する処理結果として得られた追跡人物に関して、行列人物IDリストを参照し(ステップSB3)、行列人物であるかどうかを判定する(ステップSB4)。なお、行列人物IDリストとは、追跡中の人物の人物IDと、当該人物が行列人物または移動人物のどちらであるかを表す情報との組を管理しているリストである。
【0068】
行列人物である場合(ステップSB4のyes)、判定部33は、行列人物用の移動モデルを用いて、現フレーム画像における位置座標を予測する。判定部33は、予測した位置座標とステップSB2で得られた人物位置座標を用いて、現フレーム画像における追跡人物の位置座標を算出する(ステップSB5a)。判定部33は、行列人物用の移動モデルとして、例えば、行列が静止している状態を表す移動モデルと、行列が進む状態を表す移動モデルの2状態モデルを用いてもよい。具体的には、静止状態を表す移動モデルでは、判定部33は、前フレーム画像と現フレーム画像でほとんど位置の変化がないという予測を行う。一方、進む状態を表す移動モデルでは、判定部33は、前フレーム画像と現フレーム画像とで、行列情報入力部2から得られる行列位置の情報に基づいて移動方向を限定した予測を行う。
【0069】
一方、移動人物である場合(ステップSB4のno)、判定部33は、移動人物用の移動モデルを用いて、現フレーム画像における位置座標を予測する。判定部33は、予測した位置座標とステップSB2で得られた人物位置座標を用いて、現フレーム画像における追跡人物の位置座標を算出する(ステップSB5b)。判定部33は、移動人物用の移動モデルとして、例えば、移動方向に制限がないため、所定範囲の移動速度で全方位に移動することを想定したモデルを用いてもよい。
【0070】
次に、判定部33は、ステップSB5a及びステップSB5bにて算出した、現在から過去数フレーム分の人物位置座標及び各時刻情報を用いて、人物の移動速度を算出する(ステップSB6)。
【0071】
判定部33は、現フレームにおける人物位置座標と、行列情報入力部2から得られる行列位置との最短距離等適切な距離を算出する(ステップSB7)。
【0072】
判定部33は、ステップSB6で算出した移動速度と、ステップSB7で算出した距離とを用い、移動速度があらかじめ定めた閾値よりも小さく、かつ、距離があらかじめ定めた閾値よりも小さいかどうかを判定する(ステップSB8)。前記条件を満たす場合(ステップSB8のyes)は、当該人物は行列人物であると判定する(ステップSB9a)。一方、前記条件を満たさない場合(ステップSB8のno)は、当該人物は、移動人物であると判定する(ステップSB9b)。
【0073】
判定部33は、ステップSB9a及びステップSB9bにおける行列に並ぶ人物か否かの判定結果を用いて、判定部33が管理している行列人物IDリストを更新する(ステップSB10)。
【0074】
次に、生成部34は、ステップSB9aで行列人物と判定された人物の人物位置と、行列情報入力部2から取得した行列位置とに基づいて、オクルージョンの発生状況を推定する。生成部34は、オクルージョン領域に存在する行列情報の補間処理を行う(ステップSB11)。具体的には、行列情報として待ち人数を算出する場合、生成部34は、ステップSB9aで行列人物と判定された人物の位置情報と、行列情報入力部2から得られる行列位置情報とを用いて、オクルージョンにより途切れた未検出領域の行列長を算出する。また、生成部34は、行列人物の人口密度(所定の距離内で並ぶ人数)を算出する。生成部34は、算出した人口密度に基づいて途切れた未検出領域の行列長に存在する人数を推定し、検出できている行列人物と合算して待ち人数を算出する。
【0075】
出力部4は、生成部34から出力される行列情報を、例えばアプリケーションや記憶媒体などの外部モジュールに対して出力する(ステップSB12)。
【0076】
また、
図6に示す行列情報の入力処理は、
図7に示す行列検出処理を開始する前にあらかじめ行われていてもよい。あるいは、
図7に示す行列検出処理が実行中の任意のタイミングで、
図6に示す処理が行われて行列情報が更新され、更新された行列情報を用いて
図7に示す行列検出処理が再開されるようにしてもよい。
【0077】
実施形態1に係るプログラムは、上記の一連の処理をコンピュータに実行させるプログラムであれば良い。
【0078】
以上説明したように実施形態1に係る行列検出システムによれば、行列に並ぶつもりではなく単に滞留しているだけ等の人物であっても、その人物を行列に並ぶ人として処理してしまう場合がある、という課題が解決される。
【0079】
また、オクルージョンが発生する環境においても、隠れている領域の行列の長さを推定することで、人数の補間処理が可能になる。また、行列形状が複雑な場合でも、場所ごとの進行方向が既知となるため、行列人物追跡時の移動モデルに進行方向を活用することで、追跡の頑健性が向上する。そのため、実施形態1に係る行列検出システムによれば、行列に並ぶ人物を検出し、人数や待ち時間等の行列情報を好適に推定することができる。
【0080】
また、行列に並ぶことを意図していない人物が行列の付近に立ち止まった場合にも、人物と行列位置との距離の閾値を適切に設定することで、行列に並ぶ人物ではないと判定することが可能になる。さらに、行列に並ぶ人物か否かの判定に、人物と行列位置との距離を考慮するのみではなく、人物の移動速度も考慮することで、行列の間を横切って通過する人物についての行列位置付近での判定において、当該人物は行列に並ぶ人物ではない、と精度よく判定することが可能になる。
【0081】
<実施形態2>
次に
図8を参照して、本発明の実施形態2に係る行列検出システムの機能構成を説明する。
【0082】
図8は本発明の実施形態2の構成例を示すブロック図である。
【0083】
図8に示すように、本実施形態に係る行列検出システムは、行列情報入力部51と、検出部52と、判定部53とを含む。
【0084】
行列情報入力部51は、行列位置の入力を受け付ける。
【0085】
検出部52は、入力画像から対象物を検出する。
【0086】
判定部53は、対象物と行列位置との距離に基づいて、対象物が行列に並んでいるか否かを判定する。
【0087】
図9は実施形態2に係る行列検出システムの動作を示すフローチャート図である。
【0088】
行列情報入力部51は、行列位置の入力を受け付ける(ステップSC1)。
【0089】
検出部52は、入力画像から対象物を検出する(ステップSC2)。
【0090】
判定部53は、対象物と行列位置との距離に基づいて、対象物が行列に並んでいるか否かを判定する(ステップSC3)。
【0091】
以上説明したように、実施形態2に係る行列検出システムによれば、行列に並ぶつもりではなく単に滞留しているだけ等の人物であっても、その人物を行列に並ぶ人として処理してしまう場合がある、という課題が解決される。
【0092】
<ハードウェア構成例>
上述の各実施形態の行列検出システムを構成する各部は、制御部、メモリ、メモリにロードされたプログラム、プログラムを格納するハードディスク等の記憶ユニット、ネットワーク接続用インターフェース等からなり、ハードウェアとソフトウェアの任意の組合せによって実現される。
【0093】
図10は、実施形態1又は実施形態2に係る行列検出システムのハードウェア構成の一例を示すブロック図である。
【0094】
図10に示すように、行列検出システムは、CPU11(Central Processing Unit)と、ネットワーク接続用の通信IF12(通信インターフェース12)と、メモリ13と、プログラムを格納するハードディスク等の記憶装置14とを含む、コンピュータ装置によって実現される。ただし、行列検出システムの構成は、
図10に示す構成に限定されない。
【0095】
CPU11は、オペレーティングシステムを動作させて行列検出システムの全体を制御する。また、CPU11は、例えばドライブ装置などに装着された記録媒体からメモリ13にプログラムやデータを読み出す。CPU11がメモリ13にプログラムやデータを読み出すことで、画像入力部1、行列情報入力部2、行列検出部3(検出部31、追跡部32、判定部33及び生成部34)及び出力部4の各機能部が実現される。
【0096】
行列検出システムは、例えば通信IF12を介して他のコンピュータである画像入力装置と接続されても良い。
【0097】
記録装置14は、例えば光ディスク、フレキシブルディスク、磁気光ディスク、外付けハードディスク、半導体メモリ等であって、コンピュータプログラムをコンピュータ読み取り可能に記録する。記憶装置14は、例えば、統合したデータを格納するデータ格納部でも良い。また、コンピュータプログラムは、通信網に接続されている図示しない外部コンピュータからダウンロードされても良い。
【0098】
行列検出システムは、入力装置15又は出力装置16と接続されていても良い。入力装置15は、例えばキーボード、マウス等である。出力装置16は、例えばディスプレイ等でも良く、出力部4が出力する行列情報をディスプレイ上に表示しても良い。
【0099】
なお、
図1及び
図8の機能ブロック図においては、各実施形態の構成部は物理的に結合した一つの装置により実現されるよう記載されているが、その実現手段は特に限定されない。すなわち、二つ以上の物理的に分離した装置を有線または無線で接続し、これら複数の装置により、各実施形態のシステムを実現しても良い。
【0100】
以上、各実施形態及び実施例を参照して本発明を説明したが、本発明は以上の実施形態及び実施例に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で同業者が理解し得る様々な変更をすることができる。
【0101】
<実施形態の他の表現>
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0102】
(付記1)
行列位置の入力を受け付ける行列情報入力手段と、
入力画像から対象物を検出する検出手段と、
前記対象物と前記行列位置との距離に基づいて、前記対象物が行列に並んでいるか否かを判定する判定手段と、
を含む行列検出システム。
【0103】
(付記2)
前記行列位置と、前記判定手段により行列に並ぶと判定された対象物の位置とに基づいて、対象物が未検出となっている領域を推定し、前記行列に並ぶと判定された対象物から未検出領域の対象物を補完し、行列情報を生成する生成手段、
をさらに含む付記1に記載の行列検出システム。
【0104】
(付記3)
前記生成手段は、前記判定手段により前記行列に並ぶと判定された対象物の密度に基づいて前記未検出領域の対象物を補完する
付記2に記載の行列検出システム。
【0105】
(付記4)
前記生成手段は、
前記判定手段により行列に並ぶと判定された対象物の待ち時間を算出し、
前記未検出領域の前後の領域で検出された対象物の待ち時間に基づいて、前記未検出領域の対象物の待ち時間を算出する
付記3に記載の行列検出システム。
【0106】
(付記5)
前記判定手段は、前記対象物の移動速度と、前記対象物と前記行列位置との距離と、に基づいて、前記対象物が行列に並んでいるか否かを判定する
付記1~4のいずれかに記載の行列検出システム。
【0107】
(付記6)
対象物が行列に並んでいるか否かに応じて異なる移動モデルを使用し、検出した対象物の位置を追跡する追跡手段、
をさらに含み、
前記判定手段は、前記追跡手段による追跡結果から前記移動速度を算出する
付記5に記載の行列検出システム。
【0108】
(付記7)
前記追跡手段は、
前記判定手段により行列待ちと判定された対象物に対し、行列の待ち状態と移動状態を表す2つの移動モデルと、前記行列情報入力手段から取得した行列位置及び進行方向とに基づいて、前フレームから現フレームへの移動状態を予測し、また、
前記判定手段により行列待ちと判定されなかった対象物に対し、所定の範囲の速度で全方位に移動することを想定した移動モデルに基づいて、前フレームから現フレームへの移動状態を予測する
付記6に記載の行列検出システム。
【0109】
(付記8)
前記行列情報入力手段は、少なくとも1つ以上の行列の始点と、少なくとも1つ以上の行列の終点と、行列の経由点又は分岐点を表すための0個以上の中継点との入力を受け付け、隣接する各始点、中継点、終点との間を結ぶ線分に対して、対象物が横並びになる列数の入力を受け付ける
付記1~7のいずれかに記載の行列検出システム。
【0110】
(付記9)
前記行列情報入力手段は、
入力画像上に前記始点、中継点、終点及び各地点間の列数を描画したものを入力情報として用い、任意のタイミングで前記行列位置として反映させる
付記8に記載の行列検出システム。
【0111】
(付記10)
前記検出手段は、前記対象物の特定部位を検出し、
前記判定手段は、カメラパラメータを用いて、前記特定部位の位置から前記対象物の下端位置を推定し、推定した下端位置と前記行列位置との距離に基づいて、対象物が行列に並んでいるか否かを判定する
付記1~9のいずれかに記載の行列検出システム。
【0112】
(付記11)
前記判定手段は、前記特定部位の世界座標系における高さを複数のバリエーションで仮定し、前記カメラパラメータを用いて、仮定した複数の高さから複数の下端位置を推定し、推定した複数の下端位置と前記行列位置との最短距離に基づいて、対象物が行列に並んでいるか否かを判定する
付記10に記載の行列検出システム。
【0113】
(付記12)
行列位置の入力を受け付け、
入力画像から対象物を検出し、
前記対象物と前記行列位置との距離に基づいて、前記対象物が行列に並んでいるか否かを判定する、
行列検出方法。
【0114】
(付記13)
行列位置の入力を受け付ける行列情報入力処理と、
入力画像から対象物を検出する検出処理と、
前記対象物と前記行列位置との距離に基づいて、前記対象物が行列に並んでいるか否かを判定する判定処理と、
をコンピュータに実行させるプログラム。
【0115】
この出願は、2015年9月14日に出願された日本出願特願2015-180260を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【0116】
本発明によれば、精度の良い行列監視システムを提供でき、監視領域内で発生する行列を検出し、待ち人数や待ち時間を提示するシステムに好適に適用することができる。
【0117】
また、本発明では、あらかじめ入力した行列の発生位置情報を活用することにより、棚や柱や人物同士の重なりによるオクルージョンが発生しやすい環境においても、特殊なカメラの設置条件を必要とせずに、欠損なく待ち人数や待ち時間を推定することができるため、行列検出システムの導入が容易になる。
【符号の説明】
【0118】
1 画像入力部
2、51 行列情報入力部
3 行列検出部
4 出力部
31、52 検出部
32 追跡部
33、53 判定部
34 生成部
11 CPU
12 通信IF
13 メモリ
14 記憶装置
15 入力装置
16 出力装置