(57)【要約】      （修正有）【課題】行列に並ぶつもりではなく単に滞留しているだけ等の人物は行列に並ぶ人として処理しない行列検出システム、行列検出方法および行列検出プログラムを提供する。【解決手段】行列検出システムは、行列位置の入力を受け付ける行列情報入力部２と、入力画像から対象物を検出する検出部３１と、対象物と行列位置との距離に基づいて、対象物が行列に並んでいるか否かを判定する判定部３３と、を含む。【選択図】図１
2020113300.tif 000002
【特許請求の範囲】
【請求項１】
行列位置の入力を受け付ける行列情報入力手段と、
入力画像から対象物を検出する検出手段と、
前記対象物と前記行列位置との距離に基づいて、前記対象物が行列に並んでいるか否かを判定する判定手段と、
を含む行列検出システム。
【請求項２】
前記行列位置と、前記判定手段により行列に並ぶと判定された対象物の位置とに基づいて、対象物が未検出となっている領域を推定し、前記行列に並ぶと判定された対象物から未検出領域の対象物を補完し、行列情報を生成する生成手段、
をさらに含む請求項１に記載の行列検出システム。
【請求項３】
前記生成手段は、前記判定手段により前記行列に並ぶと判定された対象物の密度に基づいて前記未検出領域の対象物を補完する
請求項２に記載の行列検出システム。
【請求項４】
前記生成手段は、
前記判定手段により行列に並ぶと判定された対象物の待ち時間を算出し、
前記未検出領域の前後の領域で検出された対象物の待ち時間に基づいて、前記未検出領域の対象物の待ち時間を算出する
請求項３に記載の行列検出システム。
【請求項５】
前記判定手段は、前記対象物の移動速度と、前記対象物と前記行列位置との距離と、に基づいて、前記対象物が行列に並んでいるか否かを判定する
請求項１〜４のいずれかに記載の行列検出システム。
【請求項６】
対象物が行列に並んでいるか否かに応じて異なる移動モデルを使用し、検出した対象物の位置を追跡する追跡手段、
をさらに含み、
前記判定手段は、前記追跡手段による追跡結果から前記移動速度を算出する
請求項５に記載の行列検出システム。
【請求項７】
前記追跡手段は、
前記判定手段により行列待ちと判定された対象物に対し、行列の待ち状態と移動状態を表す２つの移動モデルと、前記行列情報入力手段から取得した行列位置及び進行方向とに基づいて、前フレームから現フレームへの移動状態を予測し、また、
前記判定手段により行列待ちと判定されなかった対象物に対し、所定の範囲の速度で全方位に移動することを想定した移動モデルに基づいて、前フレームから現フレームへの移動状態を予測する
請求項６に記載の行列検出システム。
【請求項８】
前記行列情報入力手段は、少なくとも１つ以上の行列の始点と、少なくとも１つ以上の行列の終点と、行列の経由点又は分岐点を表すための０個以上の中継点との入力を受け付け、隣接する各始点、中継点、終点との間を結ぶ線分に対して、対象物が横並びになる列数の入力を受け付ける
請求項１〜７のいずれかに記載の行列検出システム。
【請求項９】
行列位置の入力を受け付け、
入力画像から対象物を検出し、
前記対象物と前記行列位置との距離に基づいて、前記対象物が行列に並んでいるか否かを判定する、
行列検出方法。
【請求項１０】
行列位置の入力を受け付ける行列情報入力処理と、
入力画像から対象物を検出する検出処理と、
前記対象物と前記行列位置との距離に基づいて、前記対象物が行列に並んでいるか否かを判定する判定処理と、
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像から行列を検出するためのシステム、方法及びプログラムに関する。
【背景技術】
【０００２】
カメラ映像から行列を検出する方法、及び、行列を成す人数や長さ、待ち時間等を解析する方法が種々提案されている。
【０００３】
特許文献１に記載された技術は、入力画像に対し、背景差分を用いて人物領域の面積を求め、その面積をあらかじめ定めた一人あたりの単位面積で除算して人数を推定する。特許文献１に記載された技術は、推定した人数に対し、別途所定の方法で集計した単位時間当たりの入場者数で除算することにより、待ち時間を推定する。
【０００４】
特許文献２に記載された技術は、天井に設置したカメラで行列を真上から撮影し、背景差分及びオプティカルフローを用いて、滞留及び移動中の個々の人物領域を抽出する。特許文献２に記載された技術は、抽出した個々の人物領域を順に結んで行列線を生成し、各行列の総延長及び長さに基づく待ち時間を算出する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−３２９１９６号公報
【特許文献２】特開２００７−３１７０５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述の特許文献１及び２に記載の技術では、行列に並ぶつもりではなく単に滞留しているだけ等の人物であっても、その人物を行列に並ぶ人として処理してしまう場合がある。
【０００７】
本発明の目的は、上述の課題を解決可能な技術を提供することである。
【課題を解決するための手段】
【０００８】
本発明に係る行列検出システムは、行列位置の入力を受け付ける行列情報入力部と、入力画像から対象物を検出する検出部と、対象物と行列位置との距離に基づいて、対象物が行列に並んでいるか否かを判定する判定部と、を含む。
【０００９】
本発明に係る行列検出方法は、行列位置の入力を受け付け、入力画像から対象物を検出し、対象物と行列位置との距離に基づいて、対象物が行列に並んでいるか否かを判定する。
【００１０】
本発明に係るプログラムは、行列位置の入力を受け付ける行列情報入力処理と、入力画像から対象物を検出する検出処理と、対象物と行列位置との距離に基づいて、対象物が行列に並んでいるか否かを判定する判定処理と、をコンピュータに実行させる。
【発明の効果】
【００１１】
本発明によれば、行列に並ぶつもりではなく単に滞留しているだけ等の人物であっても、誤ってその人物を行列に並ぶ人として処理してしまう場合がある、という課題が解決される。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態１の構成例を示す機能ブロック図である。
【図２】行列情報の入力方法の例を示す説明図である。
【図３】行列情報の入力方法の例を示す説明図である。
【図４】行列待ち情報の生成過程の例を示す説明図である。
【図５】行列待ち情報の生成過程の例を示す説明図である。
【図６】本発明の実施形態１の処理経過の例を示すフローチャートである。
【図７】本発明の実施形態１の処理経過の例を示すフローチャートである。
【図８】本発明の実施形態２の構成例を示す機能ブロック図である。
【図９】本発明の実施形態２の処理経過の例を示すフローチャートである。
【図１０】本発明の各実施形態を実現可能なコンピュータのハードウェア構成例を説明する図である。
【発明を実施するための形態】
【００１３】
まず、本発明の実施形態の理解を容易にするために、本発明の背景を説明する。
【００１４】
上述の特許文献１及び２に記載の技術では、行列に並ぶつもりではなく単に滞留しているだけ等の人物であっても、その人物を行列に並ぶ人として処理してしまう場合がある。
【００１５】
例えば、特許文献１に記載の技術は、入力画像に対し、背景差分を用いて人物領域の面積を求めるため、行列に並ぶつもりではない人が行列の付近に立ち止まった場合、その単に滞留している人も含めて人物領域の面積を求めることになる。また、本来の行列から離れた位置に複数の滞留者がいた場合、特許文献１に記載の技術はその複数の滞留者が行列を構成する人々であると認識しうる。特許文献１に記載の技術には、その他の課題として、オクルージョンの発生による未検出等がある。特許文献１のような背景差分に基づく手法では、人物の体格の違い、荷物等付帯物の有無、及び、人物同士の重なりや遮蔽物による隠れによって、実際の人物と差分ベースで取得する人物領域との関係に容易に誤差が生じる。また、この手法では、個々の人物やその並び順を認識しないため、人物ごとの待ち時間を算出することができない。
【００１６】
また、特許文献２に記載の技術においても、特許文献１と同様に単なる滞留者を行列に並ぶ人であるとする誤処理が生じうる。また、その他の課題として、特許文献２に記載の手法は、人物の検出及び追跡が良好に行えることを前提としているが、実環境においては、カメラの設置位置や建物の構造等により、人物同士の重なりや遮蔽物によるオクルージョンの発生が想定される。これにより、オクルージョン領域において人物の検出漏れが生じ、その結果行列に並ぶ人物を正しく繋ぐことに失敗し、誤った人数及び待ち時間を推定してしまう。特許文献２では、このようなオクルージョンの問題を解決するために、高い位置にカメラを設置し人物を真上から撮影することを提案している。しかし、一般的な屋内施設または屋外において必ずしも高い位置にカメラを設置できる環境が整っているとは限らない。また、一般的な監視カメラとも設置位置及び画角が異なるため、行列検出専用のカメラとして新たに設置する必要があり、導入コストの増大につながる。したがって、特殊な設置条件のカメラを使用するのではなく、人物を斜め上から撮影するような既設の監視カメラ映像を使用し、オクルージョンの問題を解決することが望ましい。
【００１７】
以下に説明される本発明の実施形態によれば、上述の課題が解決され、行列に並ぶ意図でない人物の誤検出が防止され、また、天井設置型等特殊なカメラでなくても、オクルージョンに頑健に行列を検出することができる。
【００１８】
以下、本発明の実施形態を、図面を参照して説明する。
【００１９】
＜実施形態１＞
図１は本発明の実施形態１の構成例を示すブロック図である。
【００２０】
図１に示すように、本実施形態に係る行列検出システムは、画像入力部１と、行列情報入力部２と、行列検出部３と、出力部４とを含む。
【００２１】
画像入力部１は、所定の監視領域を撮影した時系列の画像と撮影時刻との組を、行列検出部３に逐次入力する。画像入力部１が行列検出部３に入力する画像は、例えば監視カメラなどの撮影装置を用いて取得されてもよい。または、画像入力部１は、記憶装置（図示せず）に記憶された映像データを読み出して得られる時系列の画像を行列検出部３に入力してもよい。
【００２２】
なお、本実施形態において検出対象とする物体の種別は特に限定されず、人物、動物、車、ロボット、又は物であってもよい。以下では、人物の検出を例にして説明する。
【００２３】
行列情報入力部２は、解析対象となる行列の発生位置（以下「行列位置」という。）を入力する。行列情報入力部２は、例えばマウスや、タブレット端末のタッチパネルを介してユーザによる行列の発生位置の入力を受け付ける。行列情報入力部２は、ユーザによるマウス操作や、タッチペンや指などによるタッチパネル操作に基づき、監視カメラ映像が表示された画面上に行列の発生位置を入力してもよい。具体的には、行列情報入力部２は、画面上に、行列発生時の人物の足元位置の始点、中継点及び終点を描画して、行列の経路及び進行方向を入力してもよい。この時、ユーザは、始点及び終点を少なくともそれぞれ１点以上指定する必要があるが、中継点の指定は０点であってもよい。また、分岐や合流を含む行列を表現するために、ユーザは、始点又は終点の少なくともいずれかについて２つ以上入力してもよい。また、行列情報入力部２は、始点、中継点、終点間を結ぶ行列線ごとに、横に並ぶ人数の指定を、ユーザから受け付けるようにしてもよい。
【００２４】
また、入力された始点、中継点、終点及び横に並ぶ人数を、監視カメラ映像が表示された画面上に重畳して描画することで、ユーザが入力内容を容易に確認できるようにしてもよい。また、行列情報の入力は、行列検出処理を開始する前にあらかじめ行われていてもよいし、行列検出処理を実行中の任意のタイミングで、変更した行列情報が反映されるようにしてもよい。
【００２５】
なお、行列情報の入力方法は、上述のものに限定されない。例えば、行列発生時の人物の足元位置の始点、中継点及び終点の入力が行われるのではなく、ユーザがタッチパネル上に直接、直線や曲線をなぞることで行列位置を入力するようにしてもよい。または、行列情報入力部２は、ユーザによる入力に基づくのではなく、装置内外で格納されている所定の書式で行列位置が記述されたファイルを読み込む等の方法により自動的に行列位置を入力するようにしてもよい。
【００２６】
ここで、行列情報の入力について具体的に説明する。図２は行列に並ぶ人物を監視カメラで撮影した画像を示す図である図２は、奥から手前方向に人物が並んでいる様子を示す。また、図２は、行列の最後尾では二股に分かれているが、途中で合流し、２列の行列となって先頭まで続いている様子を示している。図３は、行列情報として、行列の最後尾である２つの終点（終点１及び終点２）と、２つの中継点（中継点１及び中継点２）と、行列の先頭である１つの始点（始点１）とが入力された様子を示す。また、図３は、終点１及び２から中継点１までは１列の行列、中継点１から始点１までは２列の行列として入力された様子を示す。
【００２７】
行列情報入力部２は、上述のようにして入力された始点、中継点、終点及び各地点間の情報を、任意のタイミングで行列位置として反映させる。例えば、入力情報を反映させるための「反映」ボタンを表示画面上に表示しておき、ユーザによるそのボタンの押下を検出すると、行列情報入力部２は、入力情報を反映させてもよい。これにより反映された行列情報が、判定部３３の判定等に用いられることになる。
【００２８】
行列検出部３は、画像入力部１から逐次入力される画像を解析し、画像中の行列を検出する。行列検出部３は、検出部３１と、追跡部３２と、判定部３３と、生成部３４とを備える。
【００２９】
検出部３１は、画像入力部１から取得した画像中に存在するすべての、又は一部の人物を検出する。検出部３１は、例えば、あらかじめ人物の頭部、上半身など特定部位の人体領域のパターンを認識するために構築された識別器を利用し入力画像から人物を検出する処理を行ってもよい。識別器を利用する方法に限定されず、検出部３１は、人物の検出方法としてパターン認識における公知の手法を用いればよい。
【００３０】
また、検出部３１は、行列位置の近辺に存在する人物のみを検出対象とするために、行列情報入力部２から入力される行列位置に基づいて、検出対象領域を限定して検出処理を行うようにしてもよい。すなわち、検出部３１は、入力された行列位置の近傍の領域に対してのみ検出処理を行うようにしてもよい。
【００３１】
検出部３１は、検出結果として、画像入力部１から取得した画像の時刻と、検出した人物の位置座標を出力する。入力画像を撮影したカメラのキャリブレーション情報について、あらかじめ算出されている等によりわかっている場合、検出部３１は、キャリブレーション情報を用いて、人物の検出結果である画面上の位置座標を世界座標に変換して出力してもよい。
【００３２】
追跡部３２は、検出部３１により各フレーム画像から検出された人物を対象に、複数フレーム間に渡って人物の追跡を行う。追跡部３２は、例えば、パーティクルフィルタなどの公知のアルゴリズムを用いて、人物の追跡処理を行うようにしてもよい。
【００３３】
追跡部３２は、追跡対象の人物の位置を更新するために用いる移動モデルに関し、対象が行列に並ぶ人物か否かによって、異なる移動モデルを使用してもよい。追跡部３２は、行列に並ぶ人物であるかどうかにつき、例えば判定部３３が管理する行列人物ＩＤ（ＩＤｅｎｔｉｆｉｅｒ）リストを参照してもよい。その場合、追跡部３２は、追跡対象の人物ＩＤが行列人物ＩＤリストに登録されていれば行列に並ぶ人物であると判定し、登録されていなければ行列に並んでいない人物であると判定しても良い。
【００３４】
行列に並ぶ人物に関し、並んでいる時間の多くは静止状態である。そのため、多くの時間で静止状態を表す（すなわち、ほとんど移動しない）移動モデルを適用することが適切である。また、行列情報入力部２から得られる行列位置情報により、場所ごとの進行方向は既知である。そのため、進行方向を限定した移動モデルを適用することができる。つまり、追跡部３２は、行列に並ぶ人物に対して、移動状態と静止状態を表す２状態モデルを使用した追跡処理を行うことで、より頑健に追跡することが可能になる。追跡部３２は、行列に並ぶ人物が静止状態か移動状態かに応じて、各状態モデルの重みを変化させるようにしてもよい。
【００３５】
一方で、行列に並んでいない人物は、移動方向に制限がない。そのため、追跡部３２は、行列に並んでいない人物に対しては、所定範囲の移動速度で全方位に移動することを想定した移動モデルを適用してもよい。
【００３６】
入力された人物の位置情報が画像上の平面座標である場合で、あらかじめ算出されている等の事情により入力画像を撮影したカメラのキャリブレーション情報をわかっている場合、追跡部３２は、世界座標系で追跡処理を行ってもよい。すなわち、追跡部３２は、キャリブレーション情報を用いて、画面上の座標系を世界座標系に変換してから追跡処理を行ってもよい。人物の位置情報が世界座標系で入力される場合は、追跡部３２は、そのまま世界座標系にて追跡処理を行ってもよい。
【００３７】
追跡部３２は、追跡結果を出力する。追跡部３２は、例えば、追跡結果として、追跡対象の人物毎の人物ＩＤと、時刻と、位置座標とを紐付けた情報を出力する。
【００３８】
判定部３３は、追跡部３２から出力される時刻ごとの人物の位置座標をもとに、各人物の移動速度を算出する。判定部３３は、人物の位置座標と、行列情報入力部２から入力される行列位置の座標とを比較し、各人物と行列位置との距離を算出する。
【００３９】
判定部３３は、移動速度及び行列位置との距離が所定の閾値よりも小さくなる人物を、行列に並ぶ人物（以下、「行列人物」という。）と判定する。判定部３３は、当該移動速度または行列位置との距離が所定の閾値以上となる人物を、行列に並ばない人物（以下、「移動人物」という。）と判定する。
【００４０】
判定部３３は、検出部３１が特定部位として頭部を検出した場合、カメラパラメータを用いて、頭部の位置から人物の足元に相当する下端位置を推定し、推定した下端位置と行列位置との距離に基づいて、人物が行列に並んでいるか否かを判定してもよい。これにより、足元を直接検出することが困難な場合にも、比較的検出が容易な頭部を検出し、そこから足元を推定するとこで、判定部３３は、精度よく行列人物か否かを判定することができる。判定部３３は、人物が大人である可能性や子供である可能性を考慮してもよい。具体的には、例えば、判定部３３は、頭部の世界座標系における高さを複数のバリエーションで仮定し、カメラパラメータを用いて、仮定した複数の高さから複数の下端位置を推定する。判定部３３は、推定した複数の下端位置と行列位置との最短距離に基づいて、対象物が行列に並んでいるか否かを判定してもよい。
【００４１】
判定部３３は、追跡中の各人物ＩＤが、行列人物と移動人物のどちらであるかを示す行列人物ＩＤリストを保持しておく。行列人物ＩＤリストとは、追跡中の人物の人物ＩＤと、当該人物が行列人物または移動人物のどちらであるかを表す情報と、の組を管理しているリストである。
【００４２】
判定部３３は、追跡中の各人物ＩＤについて、移動速度と行列位置との距離に基づく判定結果を用いて、行列人物ＩＤリストを更新する。
【００４３】
判定部３３は、行列人物であると判定した人物の情報を出力する。判定部３３は、例えば、行列人物であると判定した人物の人物ＩＤと、時刻と、位置座標とを紐付けた情報を出力する。
【００４４】
生成部３４は、判定部３３から入力される行列人物の情報と、行列情報入力部２から入力される行列位置の情報とに基づいて、欠損のない全体の行列情報を生成する。すなわち、生成部３４は、未検出領域を推定し、行列人物の情報から未検出領域に並ぶ人物の情報を補完して、行列情報を生成する。
【００４５】
具体的には、生成部３４は、行列人物の位置座標と、行列位置と、に基づいてオクルージョンの発生状況（オクルージョンの影響による人物の未検出領域）を推定する。生成部３４は、推定したオクルージョンの発生状況と、未検出領域前後の行列人物の検出状況等から、オクルージョンの影響により検出されなかった人物の存在を推定する。また、生成部３４は、見えが小さすぎることにより人物が検出できない領域（見えの影響による人物の未検出領域）を推定する。生成部３４は、見えの影響による未検出の可能性と、行列人物の検出状況とから、検出されなかった人物の存在を推定する。生成部３４は、未検出だが存在すると推定された人物の情報を補完することで、欠損のない全体の行列情報を生成する。生成部３４は、欠損のない全体の行列情報として、例えば、行列に並ぶ人数、行列の長さ、行列に並ぶ各人の累積待ち時間、行列の進行速度、行列に並び始めてから行列を抜けるまでの推定待ち時間などの情報を生成してもよい。
【００４６】
オクルージョンの発生状況の推定方法として、図４、図５を用いて説明する。
【００４７】
図４は、折り返しのある行列を撮影した画像を示す図である。図４は、画像中の左上が行列の始点（先頭）となり、途中で２回折り返し、右下が行列の終点（最後尾）となっている様子を示す。
【００４８】
斜め下を見下ろす画角で撮影された映像は、カメラからの距離が遠い場所ほど俯角が浅くなる。そのため、人物が等間隔に並んだ行列においても、カメラから遠い人物ほど手前の人物に隠れやすくなってしまう。また、カメラから離れるほど人物の見えが小さくなる。そのため、カメラから遠くに存在する人物は、人物を検出可能な最小画素数を下回ることで、検出されなくなることがある。具体例として、図４では、網掛けで示した領域で、オクルージョンや人物の見えが小さすぎることにより未検出となったことを示している。
【００４９】
このような状況において、例えば行列全体の待ち人数を算出する場合は、生成部３４は、例えば以下のような方法で算出する。生成部３４は、判定部３３により行列人物と判定された人物の位置座標と、行列情報入力部２から入力された行列位置とに基づいて、途切れた行列長を算出する。また、生成部３４は、人物位置が得られている領域から人口密度（所定の距離内で並ぶ人数）を推定する。生成部３４は、推定した人口密度に基づいて途切れた行列長に存在する人数を推定し、検出できた人数と合算して待ち人数を算出する。生成部３４は、例えば上述の方法で待ち人数を算出する。
【００５０】
また、各人の累積待ち時間を算出する場合は、生成部３４は、例えば以下のような方法で算出する。生成部３４は、上述の方法でオクルージョン領域に存在する人数を推定する。生成部３４は、オクルージョン領域の直前及び直後で検出された人物について、行列に並び始めてからの累積待ち時間を算出する。生成部３４は、算出した２つの累積待ち時間の時間差をオクルージョン領域に存在する推定人数で除算する。生成部３４は、除算することで算出した時間差を、オクルージョン領域に存在する先頭の人物から順に、前に並んでいる人物の累積待ち時間に加算していくことで、累積待ち時間の補間処理を行う。
【００５１】
出力部４は、行列検出部３から入力される行列情報を出力する。出力部４の出力様態は、例えば、表示出力である。この場合、出力部４は、外部に備えられたディスプレイ装置に表示を行えばよい。ただし、出力部４の出力態様は表示に限定されず、他の態様であってもよい。
【００５２】
次に、本実施形態に係る行列検出システムの動作について、図６及び図７のフローチャートを参照して説明する。図６は、ユーザが行列位置を入力する際の処理フローの一例を示す。図７は、行列位置が入力されたのち、行列を検出し、欠損のない全体の行列情報を生成する際の処理フローの一例を示す。
【００５３】
なお、後述の各処理ステップは、処理内容に矛盾を生じない範囲で、任意に順番を変更してもしくは並列に実行してもよく、また、各処理ステップ間に他のステップを追加しても良い。更に、便宜上１つのステップとして記載されているステップは複数のステップに分けて実行してもよく、便宜上複数に分けて記載されているステップを１ステップとして実行してもよい。
【００５４】
はじめに、ユーザが行列位置を入力する際の処理について、図６のフローチャートを参照して説明する。
【００５５】
行列情報入力部２は、所定の監視領域を撮影した画像を取得し、行列位置を設定するための画面上に表示する（ステップＳＡ１）。
【００５６】
次に、ユーザは、表示された画面上に、未設定である行列が存在するかどうかを確認する。行列の設定が完了しておらず未設定の行列が存在する場合、行列情報入力部２は、所定の入力装置を介してユーザによる行列位置の入力の開始を受け付ける（ステップＳＡ２のｎｏ）。入力装置としては、例えばマウスやタッチパネルが該当し、タッチパネルであれば、ユーザはタッチペンや指などを使用して入力すればよい。
【００５７】
行列情報入力部２は、ユーザによる行列の始点の入力を受け付ける（ステップＳＡ３）。ユーザが設定しようとしている行列に始点が複数存在する場合は、行列情報入力部２は、ステップＳＡ３ですべての始点の入力を受け付ける。
【００５８】
次に、行列情報入力部２は、ユーザによる行列の分岐や経由地点を表す中継点の入力を受け付ける（ステップＳＡ４）。もし行列が始点と終点を結ぶ直線で表すことができる場合は、中継点の入力は必要ないため、ステップＳＡ４の処理は省略される。また、ユーザが設定しようとしている行列に中継点が複数存在する場合は、行列情報入力部２は、ステップＳＡ４ですべての中継点の入力を受け付ける。
【００５９】
次に、行列情報入力部２は、行列の終点の入力を受け付ける（ステップＳＡ５）。ユーザが設定しようとしている行列に終点が複数存在する場合は、行列情報入力部２は、ステップＳＡ５ですべての終点の入力を受け付ける。
【００６０】
なお、ステップＳＡ３、ＳＡ４及びＳＡ５で入力した始点、中継点及び終点は、入力される都度、ステップＳＡ１で取得した画像上に表示され、ユーザは入力された各点を確認できるものとしてもよい。
【００６１】
次に、ユーザは、入力した始点、中継点及び終点の地点間を結ぶ各線分に対し、列の数（横に並ぶ人数）の入力が未設定である線分が存在するかどうかを確認する。列数の設定が完了しておらず未設定の線分が存在する場合、行列情報入力部２は、未設定の線分に対し、上述した入力装置を介してユーザによる列の数の入力の開始を受け付ける（ステップＳＡ６のｎｏ）。行列情報入力部２は、ユーザによる列の数の入力を受け付ける（ステップＳＡ７）。
【００６２】
なお、ステップＳＡ７で入力した地点間を結ぶ各線分及び列の数は、入力される都度、ステップＳＡ１で取得した画像上に表示され、ユーザは入力された各線分の人数を確認できるものとしてもよい。
【００６３】
行列情報入力部２は、ユーザによるすべての線分に対する列の数の入力が完了する（ステップＳＡ６のｙｅｓ）と、ステップＳＡ２に戻り、次の行列に関する入力の受付を開始する。行列情報入力部２は、ユーザによるすべての線分に対する列の数の入力が完了したことを、例えば、その旨のユーザによる入力を受け付けることにより、又はユーザの入力の開始がないまま所定時間が経過することにより判定してもよい。
【００６４】
行列情報入力部２は、ユーザによるすべての行列の入力が完了したことを判定すると（ステップＳＡ２のｙｅｓ）、行列情報入力部２における行列情報の入力は完了となる。行列情報入力部２は、ユーザによるすべての行列の入力が完了したことを、例えば、その旨のユーザによる入力を受け付けることにより、又はユーザの入力の開始がないまま所定時間が経過することにより判定してもよい。
【００６５】
次に、行列を検出し行列待ち情報を生成する際の処理について、図７のフローチャートを参照して説明する。
【００６６】
検出部３１は、入力部１から、撮影画像とその撮影時刻を取得する（ステップＳＢ１）。検出部３１は、画像中に存在するすべての人物を検出し、時刻及び検出した人物の位置座標を出力する（ステップＳＢ２）。
【００６７】
次に、追跡部３２の追跡結果を受け、判定部３３は、前フレーム画像に対する処理結果として得られた追跡人物に関して、行列人物ＩＤリストを参照し（ステップＳＢ３）、行列人物であるかどうかを判定する（ステップＳＢ４）。なお、行列人物ＩＤリストとは、追跡中の人物の人物ＩＤと、当該人物が行列人物または移動人物のどちらであるかを表す情報との組を管理しているリストである。
【００６８】
行列人物である場合（ステップＳＢ４のｙｅｓ）、判定部３３は、行列人物用の移動モデルを用いて、現フレーム画像における位置座標を予測する。判定部３３は、予測した位置座標とステップＳＢ２で得られた人物位置座標を用いて、現フレーム画像における追跡人物の位置座標を算出する（ステップＳＢ５ａ）。判定部３３は、行列人物用の移動モデルとして、例えば、行列が静止している状態を表す移動モデルと、行列が進む状態を表す移動モデルの２状態モデルを用いてもよい。具体的には、静止状態を表す移動モデルでは、判定部３３は、前フレーム画像と現フレーム画像でほとんど位置の変化がないという予測を行う。一方、進む状態を表す移動モデルでは、判定部３３は、前フレーム画像と現フレーム画像とで、行列情報入力部２から得られる行列位置の情報に基づいて移動方向を限定した予測を行う。
【００６９】
一方、移動人物である場合（ステップＳＢ４のｎｏ）、判定部３３は、移動人物用の移動モデルを用いて、現フレーム画像における位置座標を予測する。判定部３３は、予測した位置座標とステップＳＢ２で得られた人物位置座標を用いて、現フレーム画像における追跡人物の位置座標を算出する（ステップＳＢ５ｂ）。判定部３３は、移動人物用の移動モデルとして、例えば、移動方向に制限がないため、所定範囲の移動速度で全方位に移動することを想定したモデルを用いてもよい。
【００７０】
次に、判定部３３は、ステップＳＢ５ａ及びステップＳＢ５ｂにて算出した、現在から過去数フレーム分の人物位置座標及び各時刻情報を用いて、人物の移動速度を算出する（ステップＳＢ６）。
【００７１】
判定部３３は、現フレームにおける人物位置座標と、行列情報入力部２から得られる行列位置との最短距離等適切な距離を算出する（ステップＳＢ７）。
【００７２】
判定部３３は、ステップＳＢ６で算出した移動速度と、ステップＳＢ７で算出した距離とを用い、移動速度があらかじめ定めた閾値よりも小さく、かつ、距離があらかじめ定めた閾値よりも小さいかどうかを判定する（ステップＳＢ８）。前記条件を満たす場合（ステップＳＢ８のｙｅｓ）は、当該人物は行列人物であると判定する（ステップＳＢ９ａ）。一方、前記条件を満たさない場合（ステップＳＢ８のｎｏ）は、当該人物は、移動人物であると判定する（ステップＳＢ９ｂ）。
【００７３】
判定部３３は、ステップＳＢ９ａ及びステップＳＢ９ｂにおける行列に並ぶ人物か否かの判定結果を用いて、判定部３３が管理している行列人物ＩＤリストを更新する（ステップＳＢ１０）。
【００７４】
次に、生成部３４は、ステップＳＢ９ａで行列人物と判定された人物の人物位置と、行列情報入力部２から取得した行列位置とに基づいて、オクルージョンの発生状況を推定する。生成部３４は、オクルージョン領域に存在する行列情報の補間処理を行う（ステップＳＢ１１）。具体的には、行列情報として待ち人数を算出する場合、生成部３４は、ステップＳＢ９ａで行列人物と判定された人物の位置情報と、行列情報入力部２から得られる行列位置情報とを用いて、オクルージョンにより途切れた未検出領域の行列長を算出する。また、生成部３４は、行列人物の人口密度（所定の距離内で並ぶ人数）を算出する。生成部３４は、算出した人口密度に基づいて途切れた未検出領域の行列長に存在する人数を推定し、検出できている行列人物と合算して待ち人数を算出する。
【００７５】
出力部４は、生成部３４から出力される行列情報を、例えばアプリケーションや記憶媒体などの外部モジュールに対して出力する（ステップＳＢ１２）。
【００７６】
また、図６に示す行列情報の入力処理は、図７に示す行列検出処理を開始する前にあらかじめ行われていてもよい。あるいは、図７に示す行列検出処理が実行中の任意のタイミングで、図６に示す処理が行われて行列情報が更新され、更新された行列情報を用いて図７に示す行列検出処理が再開されるようにしてもよい。
【００７７】
実施形態１に係るプログラムは、上記の一連の処理をコンピュータに実行させるプログラムであれば良い。
【００７８】
以上説明したように実施形態１に係る行列検出システムによれば、行列に並ぶつもりではなく単に滞留しているだけ等の人物であっても、その人物を行列に並ぶ人として処理してしまう場合がある、という課題が解決される。
【００７９】
また、オクルージョンが発生する環境においても、隠れている領域の行列の長さを推定することで、人数の補間処理が可能になる。また、行列形状が複雑な場合でも、場所ごとの進行方向が既知となるため、行列人物追跡時の移動モデルに進行方向を活用することで、追跡の頑健性が向上する。そのため、実施形態１に係る行列検出システムによれば、行列に並ぶ人物を検出し、人数や待ち時間等の行列情報を好適に推定することができる。
【００８０】
また、行列に並ぶことを意図していない人物が行列の付近に立ち止まった場合にも、人物と行列位置との距離の閾値を適切に設定することで、行列に並ぶ人物ではないと判定することが可能になる。さらに、行列に並ぶ人物か否かの判定に、人物と行列位置との距離を考慮するのみではなく、人物の移動速度も考慮することで、行列の間を横切って通過する人物についての行列位置付近での判定において、当該人物は行列に並ぶ人物ではない、と精度よく判定することが可能になる。
【００８１】
＜実施形態２＞
次に図８を参照して、本発明の実施形態２に係る行列検出システムの機能構成を説明する。
【００８２】
図８は本発明の実施形態２の構成例を示すブロック図である。
【００８３】
図８に示すように、本実施形態に係る行列検出システムは、行列情報入力部５１と、検出部５２と、判定部５３とを含む。
【００８４】
行列情報入力部５１は、行列位置の入力を受け付ける。
【００８５】
検出部５２は、入力画像から対象物を検出する。
【００８６】
判定部５３は、対象物と行列位置との距離に基づいて、対象物が行列に並んでいるか否かを判定する。
【００８７】
図９は実施形態２に係る行列検出システムの動作を示すフローチャート図である。
【００８８】
行列情報入力部５１は、行列位置の入力を受け付ける（ステップＳＣ１）。
【００８９】
検出部５２は、入力画像から対象物を検出する（ステップＳＣ２）。
【００９０】
判定部５３は、対象物と行列位置との距離に基づいて、対象物が行列に並んでいるか否かを判定する（ステップＳＣ３）。
【００９１】
以上説明したように、実施形態２に係る行列検出システムによれば、行列に並ぶつもりではなく単に滞留しているだけ等の人物であっても、その人物を行列に並ぶ人として処理してしまう場合がある、という課題が解決される。
【００９２】
＜ハードウェア構成例＞
上述の各実施形態の行列検出システムを構成する各部は、制御部、メモリ、メモリにロードされたプログラム、プログラムを格納するハードディスク等の記憶ユニット、ネットワーク接続用インターフェース等からなり、ハードウェアとソフトウェアの任意の組合せによって実現される。
【００９３】
図１０は、実施形態１又は実施形態２に係る行列検出システムのハードウェア構成の一例を示すブロック図である。
【００９４】
図１０に示すように、行列検出システムは、ＣＰＵ１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、ネットワーク接続用の通信ＩＦ１２（通信インターフェース１２）と、メモリ１３と、プログラムを格納するハードディスク等の記憶装置１４とを含む、コンピュータ装置によって実現される。ただし、行列検出システムの構成は、図１０に示す構成に限定されない。
【００９５】
ＣＰＵ１１は、オペレーティングシステムを動作させて行列検出システムの全体を制御する。また、ＣＰＵ１１は、例えばドライブ装置などに装着された記録媒体からメモリ１３にプログラムやデータを読み出す。ＣＰＵ１１がメモリ１３にプログラムやデータを読み出すことで、画像入力部１、行列情報入力部２、行列検出部３（検出部３１、追跡部３２、判定部３３及び生成部３４）及び出力部４の各機能部が実現される。
【００９６】
行列検出システムは、例えば通信ＩＦ１２を介して他のコンピュータである画像入力装置と接続されても良い。
【００９７】
記録装置１４は、例えば光ディスク、フレキシブルディスク、磁気光ディスク、外付けハードディスク、半導体メモリ等であって、コンピュータプログラムをコンピュータ読み取り可能に記録する。記憶装置１４は、例えば、統合したデータを格納するデータ格納部でも良い。また、コンピュータプログラムは、通信網に接続されている図示しない外部コンピュータからダウンロードされても良い。
【００９８】
行列検出システムは、入力装置１５又は出力装置１６と接続されていても良い。入力装置１５は、例えばキーボード、マウス等である。出力装置１６は、例えばディスプレイ等でも良く、出力部４が出力する行列情報をディスプレイ上に表示しても良い。
【００９９】
なお、図１及び図８の機能ブロック図においては、各実施形態の構成部は物理的に結合した一つの装置により実現されるよう記載されているが、その実現手段は特に限定されない。すなわち、二つ以上の物理的に分離した装置を有線または無線で接続し、これら複数の装置により、各実施形態のシステムを実現しても良い。
【０１００】
以上、各実施形態及び実施例を参照して本発明を説明したが、本発明は以上の実施形態及び実施例に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で同業者が理解し得る様々な変更をすることができる。
【０１０１】
＜実施形態の他の表現＞
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１０２】
（付記１）
行列位置の入力を受け付ける行列情報入力手段と、
入力画像から対象物を検出する検出手段と、
前記対象物と前記行列位置との距離に基づいて、前記対象物が行列に並んでいるか否かを判定する判定手段と、
を含む行列検出システム。
【０１０３】
（付記２）
前記行列位置と、前記判定手段により行列に並ぶと判定された対象物の位置とに基づいて、対象物が未検出となっている領域を推定し、前記行列に並ぶと判定された対象物から未検出領域の対象物を補完し、行列情報を生成する生成手段、
をさらに含む付記１に記載の行列検出システム。
【０１０４】
（付記３）
前記生成手段は、前記判定手段により前記行列に並ぶと判定された対象物の密度に基づいて前記未検出領域の対象物を補完する
付記２に記載の行列検出システム。
【０１０５】
（付記４）
前記生成手段は、
前記判定手段により行列に並ぶと判定された対象物の待ち時間を算出し、
前記未検出領域の前後の領域で検出された対象物の待ち時間に基づいて、前記未検出領域の対象物の待ち時間を算出する
付記３に記載の行列検出システム。
【０１０６】
（付記５）
前記判定手段は、前記対象物の移動速度と、前記対象物と前記行列位置との距離と、に基づいて、前記対象物が行列に並んでいるか否かを判定する
付記１〜４のいずれかに記載の行列検出システム。
【０１０７】
（付記６）
対象物が行列に並んでいるか否かに応じて異なる移動モデルを使用し、検出した対象物の位置を追跡する追跡手段、
をさらに含み、
前記判定手段は、前記追跡手段による追跡結果から前記移動速度を算出する
付記５に記載の行列検出システム。
【０１０８】
（付記７）
前記追跡手段は、
前記判定手段により行列待ちと判定された対象物に対し、行列の待ち状態と移動状態を表す２つの移動モデルと、前記行列情報入力手段から取得した行列位置及び進行方向とに基づいて、前フレームから現フレームへの移動状態を予測し、また、
前記判定手段により行列待ちと判定されなかった対象物に対し、所定の範囲の速度で全方位に移動することを想定した移動モデルに基づいて、前フレームから現フレームへの移動状態を予測する
付記６に記載の行列検出システム。
【０１０９】
（付記８）
前記行列情報入力手段は、少なくとも１つ以上の行列の始点と、少なくとも１つ以上の行列の終点と、行列の経由点又は分岐点を表すための０個以上の中継点との入力を受け付け、隣接する各始点、中継点、終点との間を結ぶ線分に対して、対象物が横並びになる列数の入力を受け付ける
付記１〜７のいずれかに記載の行列検出システム。
【０１１０】
（付記９）
前記行列情報入力手段は、
入力画像上に前記始点、中継点、終点及び各地点間の列数を描画したものを入力情報として用い、任意のタイミングで前記行列位置として反映させる
付記８に記載の行列検出システム。
【０１１１】
（付記１０）
前記検出手段は、前記対象物の特定部位を検出し、
前記判定手段は、カメラパラメータを用いて、前記特定部位の位置から前記対象物の下端位置を推定し、推定した下端位置と前記行列位置との距離に基づいて、対象物が行列に並んでいるか否かを判定する
付記１〜９のいずれかに記載の行列検出システム。
【０１１２】
（付記１１）
前記判定手段は、前記特定部位の世界座標系における高さを複数のバリエーションで仮定し、前記カメラパラメータを用いて、仮定した複数の高さから複数の下端位置を推定し、推定した複数の下端位置と前記行列位置との最短距離に基づいて、対象物が行列に並んでいるか否かを判定する
付記１０に記載の行列検出システム。
【０１１３】
（付記１２）
行列位置の入力を受け付け、
入力画像から対象物を検出し、
前記対象物と前記行列位置との距離に基づいて、前記対象物が行列に並んでいるか否かを判定する、
行列検出方法。
【０１１４】
（付記１３）
行列位置の入力を受け付ける行列情報入力処理と、
入力画像から対象物を検出する検出処理と、
前記対象物と前記行列位置との距離に基づいて、前記対象物が行列に並んでいるか否かを判定する判定処理と、
をコンピュータに実行させるプログラム。
【０１１５】
この出願は、２０１５年９月１４日に出願された日本出願特願２０１５−１８０２６０を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０１１６】
本発明によれば、精度の良い行列監視システムを提供でき、監視領域内で発生する行列を検出し、待ち人数や待ち時間を提示するシステムに好適に適用することができる。
【０１１７】
また、本発明では、あらかじめ入力した行列の発生位置情報を活用することにより、棚や柱や人物同士の重なりによるオクルージョンが発生しやすい環境においても、特殊なカメラの設置条件を必要とせずに、欠損なく待ち人数や待ち時間を推定することができるため、行列検出システムの導入が容易になる。
【符号の説明】
【０１１８】
１                  画像入力部
２、５１            行列情報入力部
３                  行列検出部
４                  出力部
３１、５２            検出部
３２                追跡部
３３、５３            判定部
３４                生成部
１１                ＣＰＵ
１２                通信ＩＦ
１３                メモリ
１４                記憶装置
１５                入力装置
１６                出力装置
【図１】
2020113300.tif 000003
【図２】
2020113300.tif 000004
【図３】
2020113300.tif 000005
【図４】
2020113300.tif 000006
【図５】
2020113300.tif 000007
【図６】
2020113300.tif 000008
【図７】
2020113300.tif 000009
【図８】
2020113300.tif 000010
【図９】
2020113300.tif 000011
【図１０】
2020113300.tif 000012
【手続補正書】
【提出日】令和2年4月7日(2020.4.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
行列位置及び形状の入力を受け付ける行列情報入力手段と、
入力された前記行列位置及び前記形状を、撮像画像上に重畳描画させる表示制御手段と、
前記撮像画像に映る対象物の位置と、前記行列位置及び前記形状とに基づいて、前記対象物が行列に並んでいるか否かを判定する判定手段と、
を含む行列検出システム。
【請求項２】
ユーザが入力した行列位置により形状の入力を受け付ける行列情報入力手段と、
入力された前記形状を、撮像画像上に重畳描画させる表示制御手段と、
前記撮像画像に映る対象物の位置と、前記形状とに基づいて、前記対象物が行列に並んでいるか否かを判定する判定手段と、
を含む行列検出システム。
【請求項３】
行列を検出する位置の形状の入力を受け付ける行列情報入力手段と、
入力された前記形状を、撮像画像上に重畳描画させる表示制御手段と、
前記撮像画像に映る対象物の位置と、前記形状とに基づいて、前記対象物が前記行列に並んでいるか否かを判定する判定手段と、
を含む行列検出システム。
【請求項４】
前記入力に基づき設定された対象領域に存在する対象物の数を推定する生成手段と、
をさらに含み、
前記行列情報入力手段は、ユーザの操作により前記入力を受け付ける、
請求項１から３のいずれか１項に記載の行列検出システム。
【請求項５】
行列位置及び形状の入力を受け付け、
入力された前記行列位置及び前記形状を、撮像画像上に重畳描画させ、
前記撮像画像に映る対象物の位置と、前記行列位置及び前記形状とに基づいて、前記対象物が行列に並んでいるか否かを判定する、
行列検出方法。
【請求項６】
ユーザが入力した行列位置により形状の入力を受け付け、
入力された前記形状を、撮像画像上に重畳描画させ、
前記撮像画像に映る対象物の位置と、前記形状とに基づいて、前記対象物が行列に並んでいるか否かを判定する、
行列検出方法。
【請求項７】
行列を検出する位置の形状の入力を受け付け、
入力された前記形状を、撮像画像上に重畳描画させ、
前記撮像画像に映る対象物の位置と、前記形状とに基づいて、前記対象物が前記行列に並んでいるか否かを判定する、
行列検出方法。
【請求項８】
行列位置及び形状の入力を受け付ける行列情報入力処理と、
入力された前記行列位置及び前記形状を、撮像画像上に重畳描画させる表示制御処理と、
前記撮像画像に映る対象物の位置と、前記行列位置及び前記形状とに基づいて、前記対象物が行列に並んでいるか否かを判定する判定処理と、
をコンピュータに実行させるプログラム。
【請求項９】
ユーザが入力した行列位置により形状の入力を受け付ける行列情報入力処理と、
入力された前記形状を、撮像画像上に重畳描画させる表示制御処理と、
前記撮像画像に映る対象物の位置と、前記形状とに基づいて、前記対象物が行列に並んでいるか否かを判定する判定処理と、
をコンピュータに実行させるプログラム。
【請求項１０】
行列を検出する位置の形状の入力を受け付ける行列情報入力処理と、
入力された前記形状を、撮像画像上に重畳描画させる表示制御処理と、
前記撮像画像に映る対象物の位置と、前記形状とに基づいて、前記対象物が前記行列に並んでいるか否かを判定する判定処理と、
をコンピュータに実行させるプログラム。