ArtTrack: Articulated Multi-person Tracking in the Wild

Glia Comuputing 研究員の芦原です.

 本記事では,ArtTrackの解説をします.前回,前々回と,ArtTrackの解説に向けて先行研究をについて書いていましたが,それら二つの論文と今回のArtTrackを解説することで,姿勢推定のテーマについては一つの区切りができたかなと思います.本記事では,前回記事までのDeepCutDeeperCutに関しては簡単に述べますが,もう少し細かい部分については各記事を読んでもらえたらと思います.

紹介する論文の概要

 本記事で紹介するArtTrackは,DeepCutを改良したDeeperCutをさらに改良したものという位置付けになっています.なので前回までの記事と同様,姿勢推定の問題を扱っているのですが,ArtTrackからはさらにトラッキングというタスクを追加して解きます.言い換えれば,「ボトムアップ型のアプローチであるDeeperCutをベースに,さらにトップダウン型のアプローチの考え方を合わせることによって,人物のトラッキングについても同時に行う.」といったモデルの提案になります.ここで,トラッキングというタスクについては,こちらの動画のようなものを想像してもらえればOKです.言葉で表せば,動画のデータがあったとして,動画の元とな1コマ(1フレーム)の画像中に,ある特定の人物や車といったオブジェクトを見つけることができた時,次のフレームでも,その次のフレームでも,一度見つけたオブジェクトを追い続けるというタスクです.少し話が逸れてしまいましたが,今回の論文が与えたインパクトは,姿勢推定問題とトラッキング問題を同時に解くというタスクを達成するために,DeepCutやDeeperCutで使っていたアプローチに,トップダウン型の考え方を取り入れて改良したということです.いいとこ取りに成功したといったところでしょうか.

DeepCut,DeeperCutのおさらい

 さて,ArtTrackが目指すタスクと,そのアプローチを前章で抽象的に説明しました.この章以降から,ArtTrackの取ったアプローチの要素を解説していくことになります.この章では,まずベースとなるDeepCut,DeeperCutが扱った考え方をおさらいします.より詳細な説明は,前回の記事,そして前々回の記事に書いてありますので,時間のある時に読んでみてください.

 姿勢推定問題を解くためのアプローチには,大きく二つの考え方があると言えます.それぞれトップダウン型のアプローチとボトムアップ型のアプローチになります.人物の検出→各人物についての姿勢推定といったトップダウン型のアプローチが多く登場した一方,DeepCutは,肘や膝といった人体を構成する部分をキーポイントとして最初に抽出し,抽出したキーポイント同士をうまくつなげるというボトムアップ型のアプローチでした.

 DeepCutがボトムアップ型のアプローチとして大きな貢献をしたと考えられますが,1枚の画像に対して姿勢検出をする際の計算時間がかかりすぎるといった問題や,キーポイント同士をつなげるというマッチングの段階で,使える特徴量を画像から上手に抽出できていないという問題がありました.そこで,キーポイントの抽出に使っていたニューラルネットをより精度よく早いモデルに切り替え,マッチングのための特徴量をより上手に抽出できるように改良したDeeperCutが発明されました.さらに,DeeperCutでは,キーポイントの抽出を考える際に,ステージという単位を用いて,1ステージ目で上半身,2ステージ目で下半身といった段階に分けた抽出を行う工夫を取り入れました.こうしたDeeperCutの改良部分や工夫は,後に多くの人に注目されるOpenPoseにも多大な影響があったと考えられます.

 改めてDeeperCutのモデルが行ってきた工程を図に表しますと,以下のようになります.

画像1. DeeperCutの全体像.

 ①でカラー画像を入力,②の段階で部位の候補となるキーポイントを抽出し,③で抽出されたキーポイントの組み合わせを考え,④で人物ごとにクラスタリング,⑤で幾つかのキーポイントの候補点から部位の座標を確定し,最終的に④と⑤の双方を組み合わせて,⑥のような人物ごとに,姿勢の推定が行われた結果を出力します.

 ArtTrackではDeeperCutが行ってきた貢献を用いながら,さらにトラッキングを実現する問題設定を解くことになりますが,DeeperCutで扱ったモデルをうまく使って実現しています.その部分は次章以降で述べていきます.

DeeperCutをトラッキングまで拡張するために

 さて,DeeperCutのアルゴリズムをすごく大雑把におさらいしたところで,DeeperCutがArtTrackのようなトラッキングまでも行えるモデルに拡張するためには,モデルにどのような工夫を行っていけば良いのでしょうか.本章では,その点について述べていきたいと思います.

 まず,トラッキングというタスクが持っている困難さを考えてみます.このタスクでは,動画内の人物をフレーム単位で追いかけていく必要があるので,「出力の速さ」が重要になってきます.というのも,トラッキングが1秒や2秒の間隔で行われるとなると,被写体がその時間の間に移動する距離が大きくなり,追いかけるのが大変になってしまいます.逆に,処理速度が早ければ,被写体が大きく移動しない状態で追跡できます.処理速度の側面で言えば,DeeperCutは確かにその前のDeepCutよりも早く画像を処理できましたが,それでも数秒〜数十秒の単位の時間がかかっていました.それではなかなかトラッキングのアルゴリズムを現実的に成立することは難しいといえます.DeeperCutから改良する上での課題の一は,画像1枚を処理する速度を格段に上げることのようです.

 トラッキングに必要なもう一つの要素は,時間をまたいで同じ人を追跡し続けるための表現を何かしら得ることです.DeeperCutまでのモデルの考え方では,1枚の画像毎に出力を出す際に,隣り合ったフレームの関係性が特にありません.この動画をみてみると分かりやすいのですが,色分けされて姿勢が表示されている際に,時間を跨いだ考慮がされていないと,次の時刻のフレームの際に,人の色が入れ替わってしまう問題が起きてしまいます.下の画像で見ても,上側のトラッキングの考慮がされていない場合のケースについてのイメージができると思います.

画像2. トラッキング技術を用いない場合と,用いた場合の出力結果の比較.上側がトラッキングを用いない場合で,フレーム毎に推定した人物の姿勢に関して,同じ人物を追跡することができない.下側では,トラッキングを導入することによって,人物の追跡を実現している.

 トラッキングのためには,時間をまたいだ人物の追跡を実現する方法論.言い換えれば,動画のフレーム間の情報を共有できるような考え方が必要です.DeeperCutでは,1フレーム毎に推定問題を解いていましたが,フレーム間の問題を考慮したアルゴリズムを再考することが課題となります.

 以上をまとめると,DeeperCutをトラッキングの機能を追加するためには,画像1枚ごとの処理速度を上昇させる必要があるということ.そして,動画のフレームとフレームの間で,人物の追跡に必要な情報を得ることです.ArtTrackでは上記の2点を解決するために取り入れるアプローチを提案することになります.

ArtTrackの全体像

 まず,ArtTrackがDeeperCutからどのように改良されているかを簡単に図にすると,以下のようになります.

画像3. ArtTrackの手法の全体図.
※画像は,https://www.youtube.com/watch?v=kdV2sdZ9TWgc中で紹介されているもの

 画像3.について述べると,まず,動画をフレーム単位の画像に切り分けて準備します.そして,Convolutional Neural Networkをベースとしたモデルによって,キーポイントの導出を行います(画像中の1.の部分).次に,キーポイント同士のマッチングを考えます(画像中の2.の部分),その際に,DeeperCutでは,空間的なマッチングのみを考えていましたが,ArtTrackでは,それに加えて時間的なマッチング(今回の人物のトラッキングに当たる部分)も考えます.最後に,推定結果を人物ごとに色分けして出力となります(画像中の3.の部分)

 ArtTrackを著したグループによって発表された過去の2つの論文と異なる部分は,キーポイントの抽出後に行うマッチングの工程において,空間的なマッチングに加えて時間的なマッチングも行うという問題設定が追加されているというところが大きいと思います.次章以降で説明するアルゴリズムでは,従来法から改良した部分である,キーポイントの抽出時の工夫に関する章,及びマッチングの際の工夫に関する章に分けて解説していきます.

キーポイント抽出モデルの改良

 ArtTrackの全体像を見ても分かる通り,基本的にはDeeperCutと流れは変わっていません.しかしながら,第3章で述べたように,処理速度を向上させる必要が出てきていました.実際のところ,処理のほとんどはマッチングの速度に関係してくるのですが,ボトムアップ型のアプローチは基本的に組み合わせがかなり大きくなる問題を抱えているため,ここを改善しなければなりません.そこで,ArtTrackでは,トップダウン型のアプローチで扱われている方法論を借りながら,マッチング問題がより高速に処理できるような工夫を行なっています.具体的には,以下の画像を見てイメージすると分かりやすくなると思います.

画像4. ArtTrackが扱うキーポイント抽出の段取りを表したもの.まず人物の頭部を検出し,その後頭部に応じて,他のキーポイントを抽出し,Non Maximum Supression(NMS)を使って部分抽出を行う.

 DeeperCutまでのキーポイント抽出機では,まずキーポイントの候補点をひたすらに出力するような仕組みで動いていました.そうすると,キーポイントが出た後に,マッチング問題を考える上で,組み合わせ数が膨大になってしまう問題が発生していました.
 ArtTrackでは,先に人物の頭部のみを検出し,その周辺のキーポイントを抽出することで,キーポイントの抽出と人物の特定を別々に行なっていたボトムアップ型のアプローチと異なり,マッチングの際の計算コストを減らすことが可能となります.さらに,DeeperCutでも使用した,階層的なキーポイントの抽出構造を以下の画像のように使用することで,より精度の高いキーポイント抽出が可能となっています.

画像5. キーポイント抽出における段階的な抽出過程.画像中の人物の一人の頭部を抽出したのちに,上半身,下半身といった段階的な抽出によって人物のキーポイントを抽出する.

 ここで,著者らはトップダウン型を取り入れたボトムアップ型のアプローチ(TD/BU model)と称しているのですが,この工程だけを見るとそのままトップダウン型のような気もします.これはなんとなくですが,第4章で述べたように,ArtTrackの全体像としてはキーポイントの抽出→キーポイントのマッチングという構造が崩れていないのでボトムアップ型のアプローチであり,そのなかでキーポイントの抽出の工程に限ってトップダウン型のような,人物の特定→キーポイントの抽出という工程を踏んでいるため,そのような呼び方になっているのだろうと考えられます.

マッチングの際の工夫

 キーポイントの抽出が行われると,次はマッチングの工程に入ります.これはボトムアップ型のアプローチでは自然な流れですが,この部分に処理時間がかかってしまうということがArtTrackやOpenPoseが出る前までの問題でした.例えば,OpenPoseでは抽出したキーポイントと別のキーポイントとの線分を結んだ際に,あらかじめ得ていたベクトル場において線積分を行うことで,キーポイントとキーポイントの線分を,部位のつながりとしてふさわしいかどうかを計算していました.
 ArtTrackでは,トラッキングの機能も追加することを狙わないといけないので,ただ抽出した部位同士を繋げることを目指すのではなく,前後のフレーム間における同一人物を追跡するようにしなければなりません.そこで,ArtTrackでは時間的なつながりを持つキーポイント同士のつながりを,Temporal edgeとして定義し,同じフレーム内でのつながりは,Spatial edgeとして定義しています.

画像6. Temporal edge と Spatial edgeの例,画像の下に書かれているのが時間で,左から右にフレームが流れている想定.青色の点線部分が同時刻内でのキーポイントのつながりの候補で,緑色の点線部分が時間をまたいだキーポイントのつながりの候補.

  Spatial edgesからマッチングを行う部分はDeeperCutの時ほど大変ではありません.というのも,あらかじめ第5章で述べたような,人物毎のキーポイントとも呼べるような状態でキーポイントが抽出されています.そのため,実は人物がほとんど特定されているような状態になっているため,最初に検出した人物の頭部にあたるようなキーポイントから各部位への線分に関する確率を計算するだけでよくなるためです.実際に,従来法と見比べて見ると,その手間の少なさがわかると思います.

画像7. 従来のマッチングのための手法(画像点線左側)と,ArtTrackで用いるSpatial edges に対するマッチングの手法(画像点線右側).従来法では,各キーポイントから他のキーポイントへのコストを計算していたが,ArtTrackでは,人物の頭部の一から他の部位へのコストを計算するだけで済む.

 Spatial edgesが第5章で述べたトップダウン型の手法を用いることで,計算コストが削減されやすいことはわかりましたが,ArtTrackではトラッキングのため,Temporal edgesを使った時間的な人物の追跡も行う必要があります.そもそもTemporal edgeは,フレーム間をまたいだ部位と部位をつなぐものですが,例えば動画中に人物が一人だけ写っているケースを考えると,時刻tの時の頭部と,時刻t+1の時の頭部をつなげるものがTemporal edgeです.時刻tの頭部と,時刻t+1の膝が繋がることはありません.以下にTemporal edgeの例を示します.

画像8. Temporal edgeの例,同じ部位を,時間をまたいでつなげたものがそれにあたる.

 Temporal edgeから,同じ人物の時間をまたいだ同じ部位を見つけることができれば,トラッキングは完了したとも言うことができます.トラッキングのためのマッチングは,Tnagらの[1]で扱われたマッチング手法をベースに,キーポイントの抽出の際にモデルから得られる各特徴量と,Weinzaepfelらの[2]からヒントを得たSIFT特徴量を合わせて,回帰を行うことで求めます.

実験結果

 実際に実験結果を見てみると,キーポイントの抽出の精度が従来のDeeperCutに比べて向上し,かつマッチングの速度も向上していることがわかります.

表1. MPII Multi-Person データセットでのテスト結果.DeeperCutが1枚の画像のグラフ構築に485秒ほど用いているという状態に対して,提案手法では0.005秒でかつ高精度を実現している.

 ただ,実行時間を早くすることはできていても,ボトムアップ型のアプローチにTemporal edgeを使った回帰を追加したモデルの方がトラッキング精度そのものは高いという結果が出ていました. 

表2. トラッキングタスクの結果.実行速度は下段のトップダウン型の方が速いが,精度自体はボトムアップ型のアプローチを用いた方が良い結果となった.

まとめ

 ArtTrackを理解するために,DeepCut,DeeperCutを巡り,ブログとしても三部作になる長旅になりました.OpenPoseの記事も含め各ブログを書くために読んだ文献は合計で60本ほどになったので,姿勢推定のモデルについて理解していくのは,様々なタスクの結晶となっていて,非常に勉強になりました.

 論文一本に結集されたノウハウは,多くの他の論文の偉大な礎を借りて実現されているものです.ArtTrackという一つのアプローチもまた,著者のグループが三年かけて改良に改良を重ねた結果ですが,その間に良い論文の手法を着実に取り込みながら問題を解決している様子が伺えます.そして,速さを求めた上で部分的には精度向上に至ったケースなど,論文を読んでいる限りでは副産物のような結果も見えています.著者のグループの研究は,結果だけ見れば狙ったタスクに対して実を結んでいますが,三部作の記事を書いているうちに,著者らがかなり苦戦していた様相が伺えました.

 一つの分野を理解するのに,State of The Artである論文の手法を真似したり,その論文を理解するのはとても良い方法の一つですが,その手法が発想として生まれてくるまでの源流を,その論文の参考文献の参考文献の参考文献の・・・と探っていき,もう少し深いネットワークに溶け込むことで,理解はより深まると思います.今回のように,たった1本の論文のために3つの記事を書いたのは,理解を深めるためのアプローチを掲示できたら良いと思い,書きました(個人的には3本ですら全然足りないように思います).次回からはまた違うタスクに関して改めて論文の紹介をする予定です.

参考文献

[1] S. Tang, B. Andres, M. Andriluka, and B. Schiele. Multi- person tracking by multicuts and deep matching. In BMTT, 2016.
[2] P. Weinzaepfel, J. Revaud, Z. Harchaoui, and C. Schmid. Deepflow: Large displacement optical flow with deep match- ing. In ICCV’13.

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL