以下に、本発明を実施するための形態について図面を用いて説明する。ただし、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。なお、以下の実施形態の説明に用いる全図においては、特に理由がない限り、同様箇所には同一符号を付す。また、以下の実施形態において、同様の構成・動作に関しては繰り返しの説明を省略する場合がある。
(第1の実施形態)
まず、第1の実施形態に係る追跡システムについて図面を参照しながら説明する。本実施形態の追跡システムは、監視カメラ等によって撮影された動画を構成する画像フレーム(フレームとも呼ぶ)から人物等の追跡対象を検出し、検出された追跡対象をフレーム間で追跡する。なお、本実施形態の追跡システムの追跡対象には特に限定を加えない。例えば、本実施形態の追跡システムは、人物のみならず、犬や猫等の動物、自動車や自転車、ロボット等の移動体、任意の物体などを追跡対象としてもよい。以下においては、映像において人物を追跡する例について説明する。
(構成)
図1は、本実施形態の追跡システム1の構成の一例を示すブロック図である。追跡システム1は、追跡装置10、監視カメラ110、および端末装置120を備える。図1には、監視カメラ110や端末装置320を一つしか図示していないが、監視カメラ110や端末装置120は複数あってもよい。
監視カメラ110は、監視対象範囲を撮影可能な位置に配置される。監視カメラ110は、一般的な監視カメラの機能を有する。監視カメラ110は、可視領域に感度があるカメラであってもよいし、赤外領域に感度がある赤外線カメラであってもよい。例えば、監視カメラ110は、人通りのある街頭や室内に配置される。監視カメラ110と追跡装置10の接続方式については、特に限定を加えない。例えば、監視カメラ110は、インターネットやイントラネットなどのネットワークを介して、追跡装置10に接続される。また、監視カメラ110は、追跡装置10にケーブル等で接続されてもよい。
監視カメラ110は、設定された撮影間隔で監視対象範囲を撮影し、映像データを生成する。監視カメラ110は、生成された映像データを追跡装置10に出力する。映像データは、設定された撮影間隔で撮影された複数のフレームによって構成される。例えば、監視カメラ110は、複数のフレームによって構成される映像データを追跡装置10に出力してもよいし、複数のフレームの各々を撮影された時系列順で追跡装置10に出力してもよい。監視カメラ110が追跡装置10にデータを出力するタイミングには、特に限定を加えない。
追跡装置10は、映像取得部11、記憶部12、検出部13、抽出部15、姿勢情報生成部16、追跡部17、および追跡情報出力部18を有する。例えば、追跡装置10は、サーバやクラウドに配置される。例えば、追跡装置10は、端末装置120にインストールされるアプリケーションとして提供されてもよい。
本実施形態において、追跡装置10は、二つの検証対象のフレーム(以下、検証フレームと呼ぶ)の間で追跡対象を追跡していく。時系列順で先行する検証フレームを先行フレームと呼び、後続する検証フレームを後続フレームと呼ぶ。追跡装置10は、先行フレームに含まれる追跡対象と、後続フレームに含まれる追跡対象とを照合することで、フレーム間において追跡対象を追跡する。先行フレームと後続フレームは、連続するフレームであってもよいし、何フレームかを離れていてもよい。
映像取得部11は、処理対象の映像データを監視カメラ110から取得する。映像取得部11は、取得した映像データを記憶部12に記憶させる。追跡装置10が監視カメラ110からデータを取得するタイミングには、特に限定を加えない。例えば、映像取得部11は、複数のフレームによって構成される映像データを監視カメラ110から取得してもよいし、複数のフレームの各々を撮影順で監視カメラ110から取得してもよい。なお、映像取得部11は、監視カメラ110によって生成された映像データのみならず、図示しない外部のストレージやサーバ等に保存された映像データを取得してもよい。
記憶部12は、監視カメラ110によって生成された映像データを記憶する。記憶部12に記憶された映像データを構成するフレームは、追跡部17によって取得され、追跡対象の追跡に用いられる。
検出部13は、記憶部12から検証フレームを取得する。検出部13は、取得した検証フレームから追跡対象を検出する。検出部13は、検証フレームから検出された全ての追跡対象に対してID(Identifier)を割り振る。以下において、先行フレームから検出された追跡対象については、正式なIDが付与されているものとする。検出部13は、後続フレームから検出された追跡対象については、仮のIDを付与する。
例えば、検出部13は、背景差分法等の検出技術によって、検証フレームから追跡対象を検出する。例えば、検出部13は、動きベクトル等の特徴量を用いた検出技術(例えば、検出アルゴリズム)によって、検証フレームから追跡対象を検出してもよい。検出部13が検出する追跡対象は、人物や、移動する物体(移動体とも呼ぶ)である。例えば、追跡対象が人物である場合、検出部13は、顔検出技術を用いて、検証フレームから追跡対象を検出する。例えば、検出部13は、人体検出技術や物体検出技術を用いて、検証フレームから追跡対象を検出してもよい。例えば、検出部13は、移動体ではないものの、一定の位置において、形や模様、色等の特徴量が変化する物体を検出してもよい。
抽出部15は、検証フレームから検出された追跡対象から複数のキーポイントを抽出する。例えば、追跡対象が人物の場合、抽出部15は、検証フレームに含まれる人物の頭部や関節、手足等の位置をキーポイントとして抽出する。例えば、抽出部15は、検証フレームに含まれる人物の骨格構造を検出し、検出された骨格構造に基づいてキーポイントを抽出する。例えば、抽出部15は、機械学習を用いた骨格推定技術を用いて、検証フレームに含まれる人物の関節等の特徴に基づいて人物の骨格構造を検出する。例えば、抽出部15は、非特許文献2に開示された骨格推定技術を用いて、検証フレームに含まれる人物の骨格構造を検出する(非特許文献2:Z. Cao et al., The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2017, pp.7291-7299)。
例えば、抽出部15は、右肩は0、右肘は1というように、抽出された各キーポイントに1~nの番号を付す(nは自然数)。例えば、検証フレームから検出された人物のk番目のキーポイントが抽出されなかった場合、そのキーポイントに関しては未検出とする(kは、1以上n以下の自然数)。
図2は、追跡対象が人物である場合のキーポイントについて説明するための概念図である。図2は、人物を正面から見た図である。図2の例では、一人の人物に対して14個のキーポイントが設定される。HDは、頭部に設定されるキーポイントである。Nは、首に設定されるキーポイントである。RSおよびLSの各々は、右肩および左肩の各々に設定されるキーポイントである。REおよびLEの各々は、右肘および左肘の各々に設定されるキーポイントである。RHおよびLHの各々は、右手および左手の各々に設定されるキーポイントである。RWおよびLWの各々は、右腰および左腰の各々に設定されるキーポイントである。RKおよびLKの各々は、右膝および左膝の各々に設定されるキーポイントである。RFおよびLFの各々は、右足および左足の各々に設定されるキーポイントである。なお、一人の人物に対して設定されるキーポイントの数は14個に限定されない。また、各キーポイントの位置は、図2の例に限定されない。例えば、顔検出を併用し、顔の検出に応じて、目や眉、鼻、口等にキーポイントを設定してもよい。
姿勢情報生成部16は、抽出部15によって抽出されたキーポイントに基づいて、検証フレームから検出された全ての追跡対象の姿勢情報を生成する。姿勢情報は、検証フレームにおける各追跡対象の各キーポイントの位置情報である。二つの検証フレーム間で追跡対象を追跡する場合、先行フレームから検出される追跡対象の姿勢情報fpは下記の式1で表され、後続フレームから検出される人物の姿勢情報fsは下記の式2で表される。
上記の式1および式2において、(xpk、ypk)は、k番目のキーポイントの画像上の位置座標である(k、nは自然数)。ただし、先行フレームの人物のk番目のキーポイントが抽出されなかった場合、姿勢情報fpkは未検出となる。同様に、後続フレームの人物のk番目のキーポイントがされなかった場合、姿勢情報fskは未検出となる。
追跡部17は、先行フレームから検出された追跡対象に対して生成された姿勢情報と、先行フレームから検出された追跡対象に対して生成された姿勢情報とを用いて、フレーム間で追跡対象を追跡する。追跡部17は、少なくとも二つのフレームの各々から検出された追跡対象の姿勢情報の位置および向きに基づいて追跡対象を追跡する。追跡部17は、後続フレームから検出された追跡対象のうち、先行フレームから検出された追跡対象と同定された追跡対象には、その先行フレームから検出された追跡対象のIDを割り振ることによって、追跡対象を追跡する。なお、後続フレームから検出された追跡対象に対応する追跡対象が先行フレームから検出されなかった場合、その後続フレームから検出された追跡対象に付与されていた仮のIDを正式なIDとしたり、新たなIDを正式なIDとして付与したりすればよい。
例えば、追跡部17は、フレームにおける座標情報を用いて、追跡対象のキーポイントの位置を計算する。追跡部17は、基準となるキーポイントの位置と、頭部のキーポイントとの間の特定方向における距離を追跡対象の向きとして計算する。例えば、追跡部17は、画面水平方向(x方向)における、首のキーポイントから頭部のキーポイントまでの距離(x方向の距離)を追跡対象の向きとして計算する。追跡部17は、先行フレームから検出された全ての追跡対象と、後続フレームから検出された全ての追跡対象に対して、位置および向きに関する距離を総当たりで計算する。追跡部17は、先行フレームから検出された全ての追跡対象と、後続フレームから検出された全ての追跡対象との間で計算された、位置に関する距離と向きに関する距離の和をスコアとして算出する。追跡部17は、先行フレームから検出された追跡対象と、後続フレームから検出された追跡対象とのペアのうち、スコアが最小となる追跡対象に同一のIDを割り振ることによって、追跡対象を追跡する。
位置に関する距離Dpは、先行フレームと後続フレームにおける比較中の追跡対象から抽出された各キーポイントの、座標値の差の絶対値の重み付き平均である。各キーポイントの位置に関する重みをwkとすると、追跡部17は、下記の式3を用いて、位置に関する距離Dpを算出する。
ただし、上記の式3において、姿勢情報fpkまたは姿勢情報fskが未検出のキーポイントに関しては、分子の丸括弧の内部とwkは0とする。
向きに関する距離Ddは、先行フレームと後続フレームにおける比較中の追跡対象から抽出された各キーポイントの、基準点に対する相対的なx座標の差の絶対値の重み付き平均である。首のキーポイントを基準点とし、先行フレームの基準点をxp_neckと表し、後続フレームの基準点をxs_neckと表し、各キーポイントの位置に関する重みをwkとすると、追跡部17は、下記の式4を用いて、向きに関する距離Ddを算出する。
ただし、上記の式4において、姿勢情報fpkまたは姿勢情報fskが未検出のキーポイントに関しては、分子の丸括弧の内部とwkは0とする。
位置に関する距離Dpと向きに関する距離Ddの合計値がスコアSである。追跡部17は、下記の式5を用いて、スコアSを算出する。
追跡部17は、先行フレームと後続フレームから検出された比較対象の追跡対象に対してスコアSを総当たりで計算する。追跡部17は、スコアSが最小の追跡対象に対して同一のIDを付与する。
図3は、追跡部17による、キーポイントの抽出の例(A)、追跡に用いられるキーポイント(骨格線)の抽出の例(B)、IDの割り振りの例(C)について説明するための概念図である。図3においては、上段の図が先行フレームに相当し、下段の図が後続フレームに相当する。
図3の(A)は、検証フレームに含まれる追跡対象からキーポイントを抽出する例である。図3の(A)には、追跡対象の輪郭と、追跡対象から抽出されたキーポイントを結んだ線分が示されている。図3の(A)においては、先行フレームと後続フレームに二人の人物が含まれる。先行フレームから抽出された二人の人物の各々には、P_ID4とP_ID8というIDが付与されている。後続フレームから抽出された二人の人物の各々には、S_ID1とS_ID2というIDが付与されている。後続フレームから抽出された二人の人物の各々に付与されたIDは、仮のIDである。
図3の(B)は、追跡対象から抽出されたキーポイントのうち、追跡対象の追跡に用いられるキーポイントを結んだ線分(骨格線とも呼ぶ)のみを抜き出した図である。例えば、追跡に用いられるキーポイントは、予め設定されていてもよいし、検証ごとに設定されてもよい。
図4は、図3の例に関して、追跡部17が算出するスコアをまとめたテーブルである。後続フレームから検出されたS_ID1の追跡対象と、先行フレームから検出されたP_ID4との間のスコアは0.2である。後続フレームから検出されたS_ID1の追跡対象と、先行フレームから検出されたP_ID8との間のスコアは1.5である。後続フレームから検出されたS_ID2の追跡対象と、先行フレームから検出されたP_ID4との間のスコアは1.3である。後続フレームから検出されたS_ID2の追跡対象と、先行フレームから検出されたP_ID8との間のスコアは0.3である。すなわち、S_ID1の追跡対象に対してスコアが最小の追跡対象はP_ID4である。また、S_ID2の追跡対象に対してスコアが最小の追跡対象はP_ID8である。追跡部17は、S_ID1の追跡対象に対してP_ID4というIDを割り振り、S_ID2の追跡対象に対してP_ID8というIDを割り振る。
図3の(C)は、図4のスコアの値に基づいて、先行フレームと後続フレームから検出された同一の追跡対象に対して同一のIDが割り振られた状況を示す。このように、先行フレームと後続フレームにおいて同一のIDが割り振られた追跡対象は、さらに後続するフレームにおいて参照される。
追跡情報出力部18は、追跡部17による追跡結果を含む追跡情報を端末装置120に出力する。例えば、追跡情報出力部18は、検証フレームから検出された追跡対象にキーポイントや骨格線を重ね合わせた画像を追跡情報として出力する。例えば、追跡情報出力部18は、検証フレームから検出された追跡対象の位置に、キーポイントや骨格線が表示される画像を追跡情報として出力する。例えば、追跡情報出力部18から出力された画像は、端末装置120の表示部に表示される。
端末装置120は、映像データを構成する複数のフレームごとの追跡情報を追跡装置10から取得する。端末装置120は、取得した追跡情報を含む画像を画面に表示させる。例えば、端末装置120は、予め設定された表示条件に従って、追跡情報を含む画像を画面に表示させる。例えば、予め設定された表示条件とは、予め設定されたフレーム番号を含む連続した所定枚数のフレームに対応する追跡情報を含む画像を時系列順に表示させるという条件である。例えば、予め設定された表示条件とは、予め設定された時刻を含む所定時間帯に生成された複数のフレームに対応する追跡情報を含む画像を、時系列順に表示させるという条件である。なお、表示条件は、予め設定されていれば、ここであげた例に限定されない。
(動作)
次に、追跡装置10の動作の一例について図面を参照しながら説明する。以下においては、追跡装置10による処理の概要と、追跡装置10の追跡部17による追跡処理の詳細について説明する。
図5は、追跡装置10の動作について説明するためのフローチャートである。図5において、まず、追跡装置10は、検証フレームを取得する(ステップS11)。追跡装置10は、予め蓄積しておいた検証フレームを取得してもよいし、新たに入力された検証フレームを取得してもよい。
検証フレームから追跡対象を検出すると(ステップS12でYes)、追跡装置10は、検出された追跡対象にIDを付与する(ステップS13)。このとき追跡装置10が追跡対象に付与するIDは仮のIDである。一方、検証フレームから追跡対象を検出しなかった場合(ステップS12でNo)、ステップS18に進む。
ステップS13の次に、追跡装置10は、検出された追跡対象からキーポイントを抽出する(ステップS14)。複数の追跡対象が検出された場合、追跡装置10は、検出された追跡対象ごとにキーポイントを抽出する。
次に、追跡装置10は、追跡対象ごとに姿勢情報を生成する(ステップS15)。姿勢情報は、追跡対象ごとに抽出されたキーポイントの位置情報を、追跡対象ごとに統合した情報である。複数の追跡対象が検出された場合、追跡装置10は、検出された追跡対象ごとに姿勢情報を生成する。
ここで、先行フレームがある場合(ステップS16でYes)、追跡装置10は、追跡処理を実行する(ステップS17)。一方、先行フレームがない場合(ステップS16でNo)、ステップS18に進む。追跡処理の詳細については、図6のフローチャートを用いて後ほど説明する。
そして、さらなる後続フレームがある場合(ステップS18でYes)、ステップS11に戻る。一方、さらなる後続フレームがない場合(ステップS18でNo)、図5のフローチャートに沿った処理は終了である。
図6は、追跡装置10の追跡部17による追跡処理について説明するためのフローチャートである。図6において、まず、追跡部17は、先行フレームと後続フレームに関して、追跡対象間の位置および向きに関する距離を計算する(ステップS171)。
次に、追跡部17は、追跡対象間の位置および向きに関する距離から追跡対象間のスコアを計算する(ステップS172)。例えば、追跡部17は、追跡対象間の位置に関する距離と向きに関する距離の和をスコアとして算出する。
次に、追跡部17は、追跡対象間のスコアに応じて、最適な追跡対象の組み合わせを選択する(ステップS173)。例えば、追跡部17は、先行フレームと後続フレームから、スコアが最小となる追跡対象の組み合わせを選択する。
次に、追跡部17は、選択された組み合わせに応じて、後続フレームから検出された追跡対象にIDを割り振る(ステップS174)。例えば、追跡部17は、先行フレームと後続フレームにおいて、スコアが最小となる追跡対象の組み合わせに対して同一のIDを割り振る。
以上のように、本実施形態の追跡システムの追跡装置は、検出部、抽出部、姿勢情報生成部、および追跡部を備える。検出部は、映像データを構成する少なくとも二つのフレームから追跡対象を検出する。抽出部は、検出された追跡対象から少なくとも一つのキーポイントを抽出する。姿勢情報生成部は、少なくとも一つのキーポイントに基づいて追跡対象の姿勢情報を生成する。追跡部は、少なくとも二つのフレームの各々から検出された追跡対象の姿勢情報の位置および向きに基づいて追跡対象を追跡する。
本実施形態の追跡装置は、追跡対象の姿勢情報の位置および向きに基づいて追跡対象を追跡する。追跡対象を位置のみで追跡すると、複数の追跡対象がすれ違う際に、異なる追跡対象間で識別番号が入れ替わってしまう可能性がある。本実施形態の追跡装置は、追跡対象の位置だけではなく、追跡対象の向きに基づいて追跡対象を追跡するため、複数の追跡対象がすれ違う際に、異なる追跡対象間で識別番号が入れ替わってしまう可能性が低くなる。そのため、本実施形態の追跡装置によれば、追跡対象の姿勢に基づいて、複数のフレームに亘って複数の追跡対象を追跡することが可能になる。すなわち、本実施形態の追跡装置によれば、映像を構成する複数のフレームにおいて、複数の追跡対象を姿勢に基づいて追跡できる。
また、本実施形態の追跡装置によれば、各追跡対象の姿勢毎の参照画像がデータベース化されていなくても、姿勢に基づいて追跡対象を追跡することができる。さらに、本実施形態の追跡装置によれば、混雑度や画角、カメラと追跡対象との距離、フレームレート等の条件が学習された条件と異なる場合でも、追跡精度が低下しない。すなわち、本実施形態によれば、映像を構成するフレーム中の追跡対象を高精度で追跡できる。本実施形態の追跡装置は、例えば、街中や公共施設、店内等における人物の動線の監視等に適用できる。
本実施形態の一態様において、追跡部は、少なくとも二つのフレームの各々から検出された追跡対象に関する位置および向きに関する距離に応じたスコアを姿勢情報に基づいて計算する。追跡部は、算出されたスコアに基づいて追跡対象を追跡する。本態様によれば、追跡対象の位置および向きに関する距離に応じたスコアに基づいて追跡対象を追跡することによって、映像を構成するフレーム間において、複数の追跡対象を継続的に追跡できる。
本実施形態の一態様において、追跡部は、少なくとも二つのフレームの各々から検出された追跡対象に関して、スコアが最小になるペアを同一の追跡対象として追跡する。本態様によれば、スコアが最小になるペアを同一の追跡対象として同定することによって、映像を構成するフレーム間における追跡対象の追跡をより継続的に行うことができる。
本実施形態の一態様において、追跡部は、少なくとも二つのフレームの各々から検出された追跡対象に関して、キーポイントの座標値の差の絶対値の重み付き平均を位置に関する距離として計算する。追跡部は、少なくとも二つのフレームの各々から検出された追跡対象に関して、キーポイントの基準点に対する特定方向の相対的な座標値の差の絶対値の重み付き平均を向きに関する距離として計算する。追跡部は、少なくとも二つのフレームの各々から検出された追跡対象に関して、位置に関する距離と向きに関する距離の和をスコアとして計算する。本態様によれば、位置および向きに関する重みが明確に定義され、フレーム間における追跡対象の追跡を重み付けに応じて適切に行うことができる。
本実施形態の一態様において、追跡装置は、追跡対象の追跡に関する追跡情報を出力する追跡情報出力部を備える。追跡情報は、例えば、検証フレームから検出された追跡対象の位置に、キーポイントが表示される画像である。本態様によれば、追跡対象に追跡情報が重ねた画像を表示機器の画面に表示させることによって、追跡対象の姿勢が視覚的に把握しやすくなる。
(第2の実施形態)
次に、第2の実施形態に係る追跡システムについて図面を参照しながら説明する。本実施形態の追跡システムは、追跡対象間の位置および向きに関する距離を、フレーム内の追跡対象の大きさで正規化する点において第1の実施形態とは異なる。
(構成)
図7は、本実施形態の追跡システム2の構成の一例を示すブロック図である。追跡システム2は、追跡装置20、監視カメラ210、および端末装置220を備える。図7には、監視カメラ210や端末装置220を一つしか図示していないが、監視カメラ210や端末装置220は複数あってもよい。監視カメラ210および端末装置220の各々は、第1の実施形態の監視カメラ110や端末装置120の各々と同様であるので、詳細な説明は省略する。
追跡装置20は、映像取得部21、記憶部22、検出部23、抽出部25、姿勢情報生成部26、追跡部27、および追跡情報出力部28を有する。例えば、追跡装置20は、サーバやクラウドに配置される。例えば、追跡装置20は、端末装置220にインストールされるアプリケーションとして提供されてもよい。映像取得部21、記憶部22、検出部23、抽出部25、姿勢情報生成部26は、および追跡情報出力部28の各々は、第1の実施形態の対応する構成と同様であるので、詳細な説明を省略する。
追跡部27は、先行フレームから検出された追跡対象に対して生成された姿勢情報と、先行フレームから検出された追跡対象に対して生成された姿勢情報とを用いて、フレーム間で追跡対象を追跡する。追跡部27は、少なくとも二つのフレームの各々から検出された追跡対象の姿勢情報の位置および向きに基づいて追跡対象を追跡する。追跡部27は、後続フレームから検出された追跡対象のうち、先行フレームから検出された追跡対象と同定された追跡対象には、その先行フレームから検出された追跡対象のIDを割り振ることによって、追跡対象を追跡する。なお、後続フレームから検出された追跡対象に対応する追跡対象が先行フレームから検出されなかった場合、その後続フレームから検出された追跡対象に付与されていた仮のIDを正式なIDとしたり、新たなIDを正式なIDとして付与したりすればよい。
例えば、追跡部27は、先行フレームから検出された全ての追跡対象と、後続フレームから検出された全ての追跡対象に対して、追跡対象の大きさで正規化された位置および向きに関する距離を総当たりで計算する。追跡部27は、先行フレームから検出された全ての追跡対象と、後続フレームから検出された全ての追跡対象に対して算出された、追跡対象の大きさで正規化された位置および向きに関する距離の和を、正規化されたスコアとして算出する。追跡部27は、先行フレームから検出された追跡対象と、後続フレームから検出された追跡対象とのペアのうち、正規化されたスコアが最小となる追跡対象に同一のIDを割り振ることによって、追跡対象を追跡する。例えば、フレーム内の追跡対象の人物が直立歩行している場合、人物を矩形等の枠で囲うことによって大きさを推定できる。しかしながら、フレーム内の追跡対象の人物が、座っていたり、頻繁に方向転換をしていたりする場合、人物を矩形等の枠で囲うだけでは大きさを推定することが難しい。このような場合は、下記のように、追跡対象の人物の骨格に基づいて大きさを推定すればよい。
図8は、追跡部27が追跡対象(人物)の大きさを推定する際に用いる骨格線について説明するための概念図である。骨格線は、特定のキーポイント間を接続する線分である。図8は、人物を正面から見た図である。図8の例では、一人の人物に対して14個のキーポイントが設定され、15本の骨格線が設定される。L1は、HDとNを結ぶ線分である。L21はNとRSを結ぶ線分であり、L22はNとLSを結ぶ線分である。L31はRSとREを結ぶ線分であり、L32はLSとLEを結ぶ線分である。L41はREとRHを結ぶ線分であり、L42はLEとLHを結ぶ線分である。L51はNとRWを結ぶ線分であり、L52はNとLWを結ぶ線分である。L61はRWとRKを結ぶ線分であり、L62はLWとLKを結ぶ線分である。L71はRKとRFを結ぶ線分であり、L42はLKとLFを結ぶ線分である。なお、一人の人物に対して設定されるキーポイントの数は14個に限定されない。また、一人の人物に対して設定される骨格線の数は13個に限定されない。また、各キーポイントや骨格線の位置は、図8の例に限定されない。
追跡部27は、検証フレーム内の人物に対応する骨格線に基づいて、その人物の直立時の高さ(身長画素数と呼ぶ)を計算する。身長画素数は、検証フレームにおける人物の身長(2フレームにおける人物の全身の長さ)に相当する。追跡部27は、フレームにおける各骨格線の長さから身長画素数(ピクセル数)を求める。
例えば、追跡部27は、頭部(HD)から足部(RF、LF)までの骨格線の長さを用いて、身長画素数を推定する。例えば、追跡部27は、検証フレーム内の人物から抽出された骨格線のうち、検証フレーム内におけるL1、L51、L61、およびL71の長さの和HRを身長画素数として算出する。例えば、追跡部27は、検証フレーム内の人物から抽出された骨格線のうち、検証フレーム内におけるL1、L52、L62、およびL72の長さの和HLを身長画素数として算出する。例えば、追跡部27は、検証フレーム内におけるL1、L51、L61、およびL71の長さの和HRと、検証フレーム内におけるL1、L52、L62、およびL72の長さの和HLの平均値を身長画素数として算出する。例えば、追跡部27は、より正確な身長画素数を算出するために、各骨格線の傾きや姿勢等を補正するための補正係数で各骨格線を補正した上で、身長画素数を算出してもよい。
例えば、追跡部27は、平均的な人物の各骨格線の長さと身長との関係に基づいて、個々の骨格線の長さを用いて身長画素数を推定してもよい。例えば、頭部(HD)と首(N)を結ぶ骨格線(L1)の長さは、身長の20パーセント程度である。例えば、肘(RE、LE)と手(RH、LH)を結ぶ骨格線の長さは、身長の25パーセント程度である。このように、各骨格線の長さの身長に対する割合を記憶部(図示しない)に記憶させておけば、検証フレームから検出された人物の各骨格線の長さに基づいて、その人物の身長に対応する身長画素数を推定できる。また、平均的な人物の各骨格線の長さの身長に対する割合は、年齢によって異なる傾向がある。そのため、人物の年齢ごとに、平均的な人物の各骨格線の長さの身長に対する割合を記憶部に記憶させておいてもよい。例えば、平均的な人物の各骨格線の長さの身長に対する割合を記憶部に記憶させておけば、直立した人物を検証フレームから検出できた場合、その人物の各骨格線の長さに基づいて、その人物の大まかな年齢を推定することもできる。なお、上述した骨格線の長さに基づく身長画素数の推定方法は、一例であって、追跡部27による身長画素数の推定方法を限定するものではない。
追跡部27は、推定された身長画素数で、位置に関する距離Dpと向きに関する距離Ddを正規化する。ここで、比較対象の人物に関して、先行フレームから検出された身長をHp、後続フレームから検出された身長をHsとする。追跡部27は、位置に関する正規化距離NDpを下記の式6を用いて算出し、向きに関する正規化距離NDdを下記の式7を用いて算出する。
そして、追跡部27は、下記の式8を用いて、正規化されたスコア(正規化スコアNS)を算出する。
追跡部27は、先行フレームと後続フレームから検出された比較中の追跡対象に対して正規化スコアNSを総当たりで計算し、正規化スコアNSが最小の追跡対象に同一のIDを付与する。
(動作)
次に、追跡装置20の動作の一例について図面を参照しながら説明する。追跡装置20による処理の概要は、第1の実施形態と同様であるので省略する。以下においては、追跡装置20の追跡部27による追跡処理の詳細について説明する。
図9は、追跡装置20の追跡部27による追跡処理について説明するためのフローチャートである。図9において、まず、追跡部27は、検証フレームから検出された検出対象の骨格線に基づいて、追跡対象の身長画素数を推定する(ステップS271)。
次に、追跡部27は、先行フレームと後続フレームに関して、追跡対象間の位置および向きに関する正規化距離を計算する(ステップS272)。正規化距離は、推定された身長画素数で正規化された位置および向きに関する距離である。
次に、追跡部27は、追跡対象間の位置および向きに関する正規化距離から追跡対象間の正規化スコアを計算する(ステップS273)。例えば、追跡部17は、追跡対象間の位置に関する正規化距離と向きに関する正規化距離の和を正規化スコアとして算出する。
次に、追跡部27は、追跡対象間の正規化スコアに応じて、最適な追跡対象の組み合わせを選択する(ステップS274)。例えば、追跡部27は、先行フレームと後続フレームから、正規化スコアが最小となる追跡対象の組み合わせを選択する。
次に、追跡部27は、選択された組み合わせに応じて、後続フレームから検出された追跡対象にIDを割り振る(ステップS275)。例えば、追跡部27は、先行フレームと後続フレームにおいて、正規化スコアが最小となる追跡対象の組み合わせに対して同一のIDを割り振る。
以上のように、本実施形態の追跡システムの追跡装置は、検出部、抽出部、姿勢情報生成部、および追跡部を備える。検出部は、映像データを構成する少なくとも二つのフレームから追跡対象を検出する。抽出部は、検出された追跡対象から少なくとも一つのキーポイントを抽出する。姿勢情報生成部は、少なくとも一つのキーポイントに基づいて追跡対象の姿勢情報を生成する。追跡部は、少なくとも二つのフレームの各々から検出された追跡対象の姿勢情報の位置および向きに基づいて追跡対象を追跡する。
さらに、本実施形態において、追跡部は、複数のキーポイントのうちいずれかの間を結ぶ骨格線に基づいて追跡対象の身長画素数を推定する。追跡部は、推定された身長画素数でスコアを正規化し、正規化されたスコアに応じて、少なくとも二つのフレームの各々から検出された追跡対象を追跡する。
本実施形態では、フレーム中における追跡対象の大きさに応じてスコアを正規化する。そのため、本実施形態によれば、監視カメラとの位置関係によって大きく映った追跡対象を過大に評価することがなくなり、フレーム内の位置における追跡の偏りを低減できる。そのため、本実施形態によれば、映像を構成する複数のフレームに亘って、より高精度な追跡が可能になる。また、本実施形態によれば、追跡対象の姿勢にかかわらず追跡できるため、フレーム間における姿勢の変化が大きい場合であっても、追跡対象の追跡を継続できる。
本実施形態の一態様において、追跡装置は、追跡対象の追跡に関する追跡情報を出力する追跡情報出力部を備える。追跡情報は、例えば、検証フレームから検出された追跡対象の位置に、骨格線が表示される画像である。本態様によれば、追跡対象に追跡情報が重ねた画像を表示機器の画面に表示させることによって、追跡対象の姿勢が視覚的に把握しやすくなる。
(第3の実施形態)
次に、第3の実施形態に係る追跡システムについて図面を参照しながら説明する。本実施形態の追跡システムは、位置および向きの重みの設定や、キーポイントの設定をするためのユーザインタフェースを表示させる点において、第1および第2の実施形態とは異なる。
(構成)
図10は、本実施形態の追跡システム3の構成の一例を示すブロック図である。追跡システム3は、追跡装置30、監視カメラ310、および端末装置320を備える。図10には、監視カメラ310や端末装置320を一つしか図示していないが、監視カメラ310や端末装置320は複数あってもよい。監視カメラ310は、第1の実施形態の監視カメラ110と同様であるので、詳細な説明は省略する。
追跡装置30は、映像取得部31、記憶部32、検出部33、抽出部35、姿勢情報生成部36、追跡部37、追跡情報出力部38、および設定取得部39を有する。例えば、追跡装置30は、サーバやクラウドに配置される。例えば、追跡装置30は、端末装置320にインストールされるアプリケーションとして提供されてもよい。映像取得部31、記憶部32、検出部33、抽出部35、姿勢情報生成部36は、追跡部37、および追跡情報出力部38の各々は、第1の実施形態の対応する構成と同様であるので、詳細な説明を省略する。
図11は、端末装置320等の構成の一例を示すブロック図である。端末装置320は、追跡情報取得部321、追跡情報記憶部322、表示部323、および入力部324を有する。図11には、端末装置320に接続される追跡装置10、入力機器327、および表示機器330を併せて図示する。
追跡情報取得部321は、映像データを構成する複数のフレームごとの追跡情報を追跡装置30から取得する。追跡情報取得部321は、フレームごとの追跡情報を追跡情報記憶部322に記憶させる。
追跡情報記憶部322は、追跡装置30から取得した追跡情報を記憶する。追跡情報記憶部322に記憶された追跡情報は、例えばユーザの操作等に応じて、表示部323の画面にGUI(Graphical User Interface)として表示される。
表示部323は、画面を有する表示機器330に接続される。表示部323は、追跡情報記憶部322から追跡情報を取得する。表示部323は、取得した追跡情報を含む表示情報を表示機器330の画面に表示させる。なお、端末装置320が表示機器330の機能を含んでいてもよい。
例えば、表示部323は、入力部324を介してユーザによる操作を受け付け、受け付けた操作内容に応じた表示情報を表示機器330の画面に表示させる。例えば、表示部323は、ユーザによって指定されたフレーム番号のフレームに対応する表示情報を表示機器330の画面に表示させる。例えば、表示部323は、ユーザによって指定されたフレーム番号のフレームを含む一連の複数のフレームの各々に対応する表示情報を、時系列順に表示機器330の画面に表示させる。
例えば、表示部323は、予め設定された表示条件に従って、少なくとも一つの表示情報を表示機器330の画面に表示させてもよい。例えば、予め設定された表示条件とは、予め設定されたフレーム番号を含む連続した所定枚数のフレームに対応する複数の表示情報を時系列順に表示させるという条件である。例えば、予め設定された表示条件とは、予め設定された時刻を含む所定時間帯に生成された複数のフレームに対応する複数の表示情報を時系列順に表示させるという条件である。なお、表示条件は、予め設定されていれば、ここであげた例に限定されない。
入力部324は、ユーザによる操作を受け付ける入力機器327に接続される。例えば、入力機器327は、キーボードやタッチパネル、マウス等によって実現される。入力部324は、入力機器327を介して入力されたユーザによる操作内容を追跡装置30に出力する。また、入力部324は、映像データやフレーム、表示情報等の指定をユーザから受け付けた場合、指定された画像を画面に表示させる指示を表示部323に出力する。
設定取得部39は、端末装置320を用いて入力された設定を取得する。設定取得部39は、位置や向きに関する重みの設定や、キーポイントの設定等を取得する。設定取得部39は、取得した設定を追跡装置30の機能に反映させる。
図12は、表示機器330の画面に表示される表示情報の一例について説明するための概念図である。表示機器330の画面には、重み設定領域340と画像表示領域350が設定される。設定領域340には、位置に関する重みを設定するための第1操作画像341と、向きに関する重みを設定するための第2操作画像342とが表示される。画像表示領域350には、監視カメラ310によって撮影された映像を構成するフレームごとの追跡画像が表示される。なお、表示機器330の画面には、重み設定領域340および画像表示領域350以外の表示領域を設定してもよい。また、重み設定領域340および画像表示領域350の画面上における表示位置は、任意に変更できる。
第1操作画像341には、位置に関する重みを設定するためのスクロールバーが表示される。位置に関する重みは、先行フレームと後続フレームの各々から検出された追跡対象を比較する際に、それらの追跡対象の位置をどの程度重視するかを示す指標値である。位置に関する重みは、0以上1以下の範囲に設定される。第1操作画像341に表示されるスクロールバーには、位置に関する重みの最小値(左端)と最大値(右端)が設定される。スクロールバー上のノブ361を左右に移動させると、位置に関する重みが変更される。図12の例では、位置に関する重みは0.8に設定される。なお、第1操作画像341には、横方向のスクロールバーではなく、縦方向のスクロールバーが表示されてもよい。また、第1操作画像341には、スクロールバーではなく、位置に関する重みを設定するためのスピンボタンやコンボボックス等を表示させてもよい。また、第1操作画像341には、位置に関する重みを設定するために、スクロールバー等とは異なる要素が表示されてもよい。
第2操作画像342には、向きに関する重みを設定するためのスクロールバーが表示される。向きに関する重みは、先行フレームと後続フレームの各々から検出された追跡対象を比較する際に、それらの追跡対象の向きをどの程度重視するかを示す指標値である。向きに関する重みは、0以上1以下の範囲に設定される。第2操作画像342に表示されるスクロールバーには、向きに関する重みの最小値(左端)と最大値(右端)が設定される。スクロールバー上のノブ362を左右に移動させると、向きに関する重みが変更される。図12の例では、向きに関する重みは0.2に設定される。なお、第2操作画像342には、横方向のスクロールバーではなく、縦方向のスクロールバーが表示されてもよい。また、第2操作画像342には、スクロールバーではなく、向きに関する重みを設定するためのスピンボタンやコンボボックス等を表示させてもよい。また、第2操作画像342には、向きに関する重みを設定するために、スクロールバー等とは異なる要素が表示されてもよい。
図12の例では、11~16のIDが付与された6人の人物を追跡対象として含むフレームが画像表示領域350に表示される。図12には、後続フレームに対応する画像を画像表示領域350に表示させる例を示す。画像表示領域350には、先行フレームと後続フレームを並べて表示させてもよい。また、画像表示領域350には、図示しないボタンの選択等に応じて、先行フレームと後続フレームを切り替えるように表示させてもよい。
図12の例では、フレームから検出された人物に対応付けられた追跡情報が表示される。追跡情報は、フレームから検出された人物から抽出された複数のキーポイントと、それらのキーポイントを結ぶ線分(骨格線)とが人物に対応付けられて表示される。例えば、端末装置320を介したユーザの操作に応じて、画像表示領域350に追跡情報を表示させるか否かを切り替えることができるようにしてもよい。図12の例では、6人の人物が同じ向きに向けて歩いている。このように、同じ向きに移動する追跡対象が多い場合、フレーム間で追跡対象を高精度で追跡するためには、向きに比べて位置を重視する方がよい。同じ向きに移動する追跡対象が多い場合、位置に関する重みと向きに関する重みを同じにすると、向きに関する重みが過剰に見積もられ、追跡精度が低下する可能性がある。そのため、同じ向きに移動する追跡対象が多い場合には、位置に関する重みを大きめに設定すれば、向きに関する重みを低めに設定することによって、追跡精度の低下を低減できる。
図13は、表示機器330の画面に表示される表示情報の別の一例について説明するための概念図である。図13の例では、位置に関する重みが0.2に設定され、向きに関する重みが0.8に設定される。図13の例では、6人の人物がすれ違うように歩いている。このように、すれ違うように移動する追跡対象が多い場合、フレーム間で追跡対象を高い精度で追跡するためには、位置に比べて向きを重視する方がよい。すれ違うように移動する追跡対象が多い場合、向きに関する重みと位置に関する重みを同じにすると、位置に関する重みが過剰に見積もられ、追跡精度が低下する可能性がある。そのため、すれ違うように移動する追跡対象が多い場合には、向きに関する重みを大きめに設定し、位置に関する重みを低めに設定することによって、追跡精度の低下を低減できる。
図14は、表示機器330の画面に表示される表示情報のさらに別の一例について説明するための概念図である。図14の例では、位置および向きに関する重みを設定するための第3操作画像343と、シーンに応じた位置および向きに関する重みを設定するための第4操作画像344を重み設定領域340に表示させる。なお、第3操作画像343と第4操作画像344は、重み設定領域340に同時に表示させなくてもよい。
第3操作画像343には、位置およびに関する重みを設定するためのスクロールバーが表示される。第1操作画像341に表示されるスクロールバーには、位置に関する重みの最大値(左端)と、向きに関する重みの最大値(右端)が設定される。位置に関する重みが最大値(左端)に設定されると、向きに関する重みが最小値に設定される。一方、向きに関する重みが最大値(右端)に設定されると、位置に関する重みが最小値に設定される。スクロールバー上のノブ363を左右に移動させると、位置および向きに関する重みが一括で変更される。なお、第3操作画像343には、横方向のスクロールバーではなく、縦方向のスクロールバーが表示されてもよい。また、第3操作画像343には、スクロールバーではなく、位置および向きに関する重みを設定するためのスピンボタンやコンボボックス等を表示させてもよい。また、第3操作画像343には、位置および向きに関する重みを設定するために、スクロールバー等とは異なる要素が表示されてもよい。位置に関する重みと、向きに関する重みは、シーンに応じて相補的な関係にあることが多い。そのため、位置に関する重みを重視するシーンでは、向きに関する重みを小さくした方がよい。その反対に、向きに関する重みを重視するシーンでは、位置に関する重みを小さくした方がよい。図14の例では、画像表示領域350に表示されたフレーム内における追跡対象の状況に応じて、位置およびに関する重みを一括で設定できるので、位置および向きに関する重みの設定をシーンに応じて適切に変更できる。
第4操作画像344には、シーンに応じた位置および向きに関する重みを設定するためのチェックボックスが表示される。図14は、端末装置320を介したポインター365の操作に応じて、「すれ違い」のシーンに応じた重みが設定された例である。図14の例では、第4操作画像344でいずれかのシーンが選択されると、第3操作画像343の設定も同時に変更されるものとする。例えば、多くの人がすれ違うシーンでは、すれ違った追跡対象間でIDの入れ違いが起こりにくくなるように、顔の向きを考慮して向きを重視する方が好ましい。例えば、「すれ違い」のシーンが選択されると、位置の重みが0.2、向きの重みが0.8に設定される。例えば、同じ向きに移動する人物が多いシーンでは、顔の向きによらず、位置を重視すればよい。例えば、「同じ向き」のシーンが選択されると、位置の重みが0.8、向きの重みが0.2に設定される。画像表示領域350に表示されたフレーム内における追跡対象の状況に応じてシーンを選択することによって、位置および向きに関する重みの設定を直感的に変更できる。
図15は、表示機器330の画面に表示される表示情報の別の一例について説明するための概念図である。表示機器330の画面には、キーポイント指定領域370とキーポイント指定領域380が設定される。キーポイント指定領域370には、個別指定画像371と一括指定画像372が表示される。キーポイント指定領域380には、キーポイント指定領域370で指定されたキーポイントが人体に対応付けられた画像が表示される。例えば、個別指定画像371における各キーポイントの選択や、一括指定画像372における体の部分の選択に応じて、キーポイントが指定される。図15の例は、個別指定画像371において指定された全てのキーポイントは、キーポイント指定領域380に表示される。キーポイント指定領域380には、選択されたキーポイントが黒く塗り潰された状態で表示される。なお、表示機器330の画面には、キーポイント指定領域370およびキーポイント指定領域380以外の表示領域を設定してもよい。また、キーポイント指定領域370およびキーポイント指定領域380の画面上における表示位置は、任意に変更できる。
図16は、表示機器330の画面に表示される表示情報のさらに別の一例について説明するための概念図である。図16の例では、端末装置320を介したポインター365の操作に応じて、一括指定画像372において「体幹」が選択された例である。一括指定画像372において「体幹」が選択されると、頭部(HD)、首(N)、右腰(RW)、左腰(LW)が一括で指定される。図16の例では、一括指定画像372において指定された「体幹」のキーポイントは、キーポイント指定領域380に表示される。キーポイント指定領域370には、選択されたキーポイントが黒く塗り潰された状態で表示される。例えば、両手両足は、体幹に比べてフレーム間における変化が大きいため、重みが大きすぎると追跡精度が低下する可能性がある。そのため、両手両足の重みは、体幹の重みと比べて、デフォルトで小さく設定されてもよい。
例えば、「上半身」が選択されると、頭部(HD)、首(N)、右肩(RS)、左肩(LS)、右肘(RE)、左肘(LE)、右手(RH)、左手(LH)が一括で指定される。例えば、「下半身」が選択されると、右腰(RW)、左腰(LW)、右膝(RK)、左膝(LK)、右足(RF)、左足(LF)が一括で指定される。例えば、「右半身」が選択されると、右肩(RS)、右肘(RE)、右手(RH)、右膝(RK)、右足(RF)が一括で指定される。例えば、「左半身」が選択されると、左肩(LS)、左肘(LE)、左手(LH)、左膝(LK)、左足(LF)が一括で指定される。例えば、「手足」が選択されると、右肘(RE)、左肘(LE)、右手(HR)、左手(LH)、右膝(RK)、左膝(LK)、右足(RF)、左足(LF)が一括で指定される。例えば、「腕」が選択されると、右肘(RE)、左肘(LE)、右手(RH)、左手(LH)が一括で指定される。例えば、「足」が選択されると、右膝(RK)、左膝(LK)、右足(RF)、左足(LF)が一括で指定される。
例えば、選択されたキーポイントの重みは1に設定され、選択されなかったキーポイントの重みは0に設定される。例えば、上半身が選択された場合、上半身に含まれるキーポイントの重みが1に設定される。例えば、上半身が選択された場合、上半身に含まれるキーポイントの重みが1に設定され、下半身に含まれるキーポイントの重みが0.5に設定されるように構成してもよい。
上述したような、一括指定画像372で選択された際に一括で選択されるキーポイントは、一例であって、上述とは異なる組み合わせであってもよい。例えば、体の部分によって一括でキーポイントを選択するのではなく、シーンや状況に応じた適切なキーポイントのセットを予め用意しておき、それらのキーポイントのセットを直感的に選択できるように構成してもよい。例えば、スキルのあるユーザによってシーンや状況に応じて選択されたキーポイントを学習させたモデルを用いて、シーンや状況に応じた適切なキーポイントを推定するように構成してもよい。例えば、キーポイントを設定するための質問事項を用意しておき、質問事項の答えに応じてキーポイントを設定してもよい。予め用意されたキーポイントのセットを選択できるように構成すれば、シーンや状況に応じてキーポイントを個別に選択できるスキルのないユーザであっても、スキルのあるユーザと同様に適切なキーポイントを選択できる。
図17は、図16のように、「体幹」が選択され、頭部(HD)、首(N)、右腰(RW)、左腰(LW)が一括で指定された状態で、フレームから検出された人物に追跡情報が対応付けられて表示される例である。追跡情報は、フレームから検出された人物から抽出された4つのキーポイント(HD、N、RW、LW)と、それらのキーポイントを結ぶ線分(骨格線)とが人物に対応付けられて表示される。図17のように、追跡対象が同じ向きに向けて移動する場合、追跡対象の位置を把握できれば十分であるので、比較的移動の少ない体幹のキーポイントを重視して追跡すればよい。例えば、図15~図16の表示情報と、図17の表示情報は、表示機器330の画面に表示させた図示しないボタンの押下によって切り替わるように構成すればよい。
(動作)
次に、追跡装置30の動作の一例について図面を参照しながら説明する。追跡装置30による処理の概要は、第1の実施形態と同様であるので省略する。以下においては、追跡装置30の追跡部37における設定処理の詳細について説明する。例えば、図5のステップS13~S14の間のいずれかに挿入される。設定処理は、キーポイントの指定や、位置および向きの重みの調整に応じて実行される。
図18において、まず、追跡装置30は、キーポイント(KP:Key Point)の指定の有無を判定する(ステップS31)。キーポイントの指定があった場合(ステップS31でYes)、追跡装置30は、指定されたキーポイントを抽出対象として設定する(ステップS32)。一方、キーポイントの指定がなかった場合(ステップS31でNo)、ステップS33に進む。
次に、位置および向きの重みの調整があった場合(ステップS33でYes)、追跡装置30は、調整に応じて位置および向きの重みを設定する(ステップS34)。ステップS34の後は、図5のフローチャートの後続する処理に移行する。また、位置および向きの重みの調整がなかった場合(ステップS33でNo)、位置および向きの重みの再調整はせずに、図5のフローチャートの後続する処理に移行する。
以上のように、本実施形態の追跡システムは、監視カメラ、追跡装置、および端末装置を備える。監視カメラは、監視対象範囲を撮影して映像データを生成する。端末装置は、追跡装置によって生成される表示情報を表示させる画面を有する表示機器に接続される。追跡装置は、映像取得部、記憶部、検出部、抽出部、姿勢情報生成部、追跡部、追跡情報出力部、および設定取得部を有する。映像取得部は、監視カメラから映像データを取得する。記憶部は、取得された映像データを記憶する。検出部は、映像データを構成する少なくとも二つのフレームから追跡対象を検出する。抽出部は、検出された追跡対象から少なくとも一つのキーポイントを抽出する。姿勢情報生成部は、少なくとも一つのキーポイントに基づいて追跡対象の姿勢情報を生成する。追跡部は、少なくとも二つのフレームの各々から検出された追跡対象の姿勢情報の位置および向きに基づいて追跡対象を追跡する。追跡情報出力部は、追跡対象の追跡に関する追跡情報を端末装置に出力する。設定取得部は、端末装置を用いて入力された設定を取得する。設定取得部は、位置や向きに関する重みの設定や、キーポイントの設定等を取得する。設定取得部は、取得した設定を追跡装置の機能に反映させる。
本実施形態において、端末装置は、画像表示領域と重み設定領域を表示機器の画面に設定する。画像表示領域には、映像データを構成するフレームから検出された追跡対象に対してキーポイントが対応付けられた追跡画像が表示される。重み設定領域には、位置に関する重みと向きに関する重みを設定するための操作画像が表示される。端末装置は、重み設定領域において設定された位置に関する重みと向きに関する重みを追跡装置に出力する。追跡装置は、重み設定領域において選択された位置に関する重みと向きに関する重みを端末装置から取得する。追跡装置は、取得した位置に関する重みと向きに関する重みを用いて、映像データを構成する少なくとも二つのフレームの各々から検出された追跡対象に関する位置および向きに関する距離に応じたスコアを計算する。追跡装置は、算出されたスコアに基づいて追跡対象を追跡する。
本実施形態では、ユーザの操作に応じて、位置および向きに関する重みを任意に調整できる。そのため、本実施形態によれば、ユーザの要求に応じた重みに基づいて、高精度な追跡対象の追跡を実現できる。
本実施形態の一態様において、端末装置は、位置に関する重みと向きに関する重みをシーンに応じて設定するための操作画像を重み設定領域に表示させる。端末装置は、重み設定領域において設定されたシーンに応じた位置に関する重みと向きに関する重みを追跡装置に出力する。本態様によれば、シーンに応じて、位置および向きに関する重みを任意に調整できる。そのため、本実施形態によれば、シーンに適した高精度な追跡対象の追跡を実現できる。
本実施形態の一態様において、端末装置は、追跡対象の姿勢情報の生成に用いられるキーポイントを指定するための指定画像が表示されるキーポイント指定領域を表示機器の画面に設定する。端末装置は、キーポイント領域において選択されたキーポイントを追跡装置に出力する。追跡装置は、キーポイント選択領域において選択されたキーポイントを端末装置から取得する。追跡装置は、取得したキーポイントに関して姿勢情報を生成する。本態様では、ユーザの操作に応じて、姿勢情報の生成に用いられるキーポイントを任意に調整できる。そのため、本実施形態によれば、ユーザの要求に応じた姿勢情報を用いて、高精度な追跡対象の追跡を実現できる。
(第4の実施形態)
次に、第4の実施形態に係る追跡装置について図面を参照しながら説明する。本実施形態の追跡装置は、第1~第3の実施形態の追跡装置を簡略化した構成である。図19は、本実施形態の追跡装置40の構成の一例を示すブロック図である。追跡装置40は、検出部43、抽出部45、姿勢情報生成部46、および追跡部47を備える。
検出部は43、映像データを構成する少なくとも二つのフレームから追跡対象を検出する。抽出部45は、検出された追跡対象から少なくとも一つのキーポイントを抽出する。姿勢情報生成部46は、少なくとも一つのキーポイントに基づいて追跡対象の姿勢情報を生成する。追跡部47は、少なくとも二つのフレームの各々から検出された追跡対象の姿勢情報の位置および向きに基づいて追跡対象を追跡する。
以上のように、本実施形態の追跡装置は、追跡対象の姿勢情報の位置および向きに基づいて追跡対象を追跡することによって、映像を構成するフレームにおいて、複数の追跡対象を姿勢に基づいて追跡できる。
(ハードウェア)
ここで、本開示の各実施形態に係る追跡装置や端末装置等(以下、追跡装置等とよぶ)の処理を実行するハードウェア構成について、図20の情報処理装置90を一例として挙げて説明する。なお、図20の情報処理装置90は、各実施形態の追跡装置等の処理を実行するための構成例であって、本開示の範囲を限定するものではない。
図20のように、情報処理装置90は、プロセッサ91、主記憶装置92、補助記憶装置93、入出力インターフェース95、および通信インターフェース96を備える。図20においては、インターフェースをI/F(Interface)と略して表記する。プロセッサ91、主記憶装置92、補助記憶装置93、入出力インターフェース95、および通信インターフェース96は、バス98を介して互いにデータ通信可能に接続される。また、プロセッサ91、主記憶装置92、補助記憶装置93および入出力インターフェース95は、通信インターフェース96を介して、インターネットやイントラネットなどのネットワークに接続される。
プロセッサ91は、補助記憶装置93等に格納されたプログラムを主記憶装置92に展開し、展開されたプログラムを実行する。本実施形態においては、情報処理装置90にインストールされたソフトウェアプログラムを用いる構成とすればよい。プロセッサ91は、本実施形態に係る追跡装置等による処理を実行する。
主記憶装置92は、プログラムが展開される領域を有する。主記憶装置92は、例えばDRAM(Dynamic Random Access Memory)などの揮発性メモリとすればよい。また、MRAM(Magnetoresistive Random Access Memory)などの不揮発性メモリを主記憶装置92として構成・追加してもよい。
補助記憶装置93は、種々のデータを記憶する。補助記憶装置93は、ハードディスクやフラッシュメモリなどのローカルディスクによって構成される。なお、種々のデータを主記憶装置92に記憶させる構成とし、補助記憶装置93を省略することも可能である。
入出力インターフェース95は、情報処理装置90と周辺機器とを接続するためのインターフェースである。通信インターフェース96は、規格や仕様に基づいて、インターネットやイントラネットなどのネットワークを通じて、外部のシステムや装置に接続するためのインターフェースである。入出力インターフェース95および通信インターフェース96は、外部機器と接続するインターフェースとして共通化してもよい。
情報処理装置90には、必要に応じて、キーボードやマウス、タッチパネルなどの入力機器を接続するように構成してもよい。それらの入力機器は、情報や設定の入力に使用される。なお、タッチパネルを入力機器として用いる場合は、表示機器の表示画面が入力機器のインターフェースを兼ねる構成とすればよい。プロセッサ91と入力機器との間のデータ通信は、入出力インターフェース95に仲介させればよい。
また、情報処理装置90には、情報を表示するための表示機器を備え付けてもよい。表示機器を備え付ける場合、情報処理装置90には、表示機器の表示を制御するための表示制御装置(図示しない)が備えられていることが好ましい。表示機器は、入出力インターフェース95を介して情報処理装置90に接続すればよい。
また、情報処理装置90には、ドライブ装置を備え付けてもよい。ドライブ装置は、プロセッサ91と記録媒体(プログラム記録媒体)との間で、記録媒体からのデータやプログラムの読み込み、情報処理装置90の処理結果の記録媒体への書き込みなどを仲介する。ドライブ装置は、入出力インターフェース95を介して情報処理装置90に接続すればよい。
以上が、本発明の各実施形態に係る追跡装置等を可能とするためのハードウェア構成の一例である。なお、図20のハードウェア構成は、各実施形態に係る追跡装置等の演算処理を実行するためのハードウェア構成の一例であって、本発明の範囲を限定するものではない。また、各実施形態に係る追跡装置等に関する処理をコンピュータに実行させるプログラムも本発明の範囲に含まれる。さらに、各実施形態に係るプログラムを記録したプログラム記録媒体も本発明の範囲に含まれる。記録媒体は、例えば、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光学記録媒体で実現できる。また、記録媒体は、USB(Universal Serial Bus)メモリやSD(Secure Digital)カードなどの半導体記録媒体や、フレキシブルディスクなどの磁気記録媒体、その他の記録媒体によって実現してもよい。プロセッサが実行するプログラムが記録媒体に記録されている場合、その記録媒体はプログラム記録媒体に相当する。
各実施形態の追跡装置等の構成要素は、任意に組み合わせることができる。また、各実施形態の追跡装置等の構成要素は、ソフトウェアによって実現してもよいし、回路によって実現してもよい。
以上、実施形態を参照して本発明を説明してきたが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。