【文献調査】FairMOT: A Simple Baseline for Multi-Object Tracking

読んだもの

A Simple Baseline for Multi-Object Tracking

  • 華中科技大学とMicrosoftの人が共著の2020年5月公開の文献

paperswithcode.com

GitHub: FairMOT

github.com

試してみた

環境

Demoの実行→github#demo

  • DLA34を使ったモデル(all_dla34.pth)ではメモリが足らなかった
RuntimeError: CUDA out of memory. Tried to allocate 2.00 MiB (GPU 0; 1.95 GiB total capacity; 0 bytes already allocated; 899.25 MiB free; 0 bytes cached)
  • そのためその下のを実行(HRNetV2_w18を使ったモデルを使用)
python demo.py mot --load_model ../models/all_hrnet_v2_w18.pth --arch hrnet_18 --reid_dim 128 --conf_thres 0.4

デモ実行結果

youtu.be

文献概要

  • 近年、Multi Object Tracking(MOT)のための物体検出(Object Detection)と再識別(Re-identification, Re-ID)は目覚ましい発展をしている
  • しかし推論速度を向上するためにこの2つのタスクを1つのネットワークで達成する試みにはあまり注意が向けられていない
  • 従来研究では再識別部(Re-ID)の学習がうまくいかず失敗している
  • 本文献ではこのための問題解決のベースラインを示す
  • Public datasetで学習し30fpsの速度が出る(GPUでってことだと思う。ベンチマーク用のなにかがあるのかもしれない)

Keywords: One-shot MOT, Simple Baseline, Anchor-free

手法理解

f:id:keix1:20200610212159p:plain
FairMOT Method

  • 本手法では下記によりMOTを実現
    • One-shot method(one-shot learningとは別物?)
    • Anchor-free object detection
    • Multi-Layer Feature Aggregation

従来研究

  1. 2ステップ手法(2つのモデルでMOT
    • detection model:
      • bounding boxで位置を割り出す
    • association model:
      • 各bounding boxからRe-ID featureを抽出し対象物を関連付ける
    • 2つのネットワークの間では特徴を共有しないため、ビデオレートの速度は出なかった
  2. one-shot method(従来版)
    • 上記2つのネットワークを連結して高速に実行できるが、2ステップ手法に比べて精度が落ちていた
    • IDの切り替わり回数が大幅に増加してしまう問題があった(文献中に実験あり)

Re-IDについての2つの手法

f:id:keix1:20200610084555p:plain
Re-ID methods

  • (a)anchor-based Re-IDでは荒いグリッドを使うため物体の中心に合わせられない
    • 黄と赤のアンカーは青シャツランナーのIDを推定している
  • (b)anchor-free Re-IDは曖昧さの影響を受けづらい

Anchorを用いた手法はRe-IDに向かない

  • 問題:
    • 複数のアンカーが同じオブジェクトをとらえる可能性がある
  • 解決:下記2つの問題に分解
    • ピクセル単位のキーポイント(オブジェクトセンター)推定問題
    • 高解像度特徴マップ上でのidentity分類問題(AとBは同じ?分類)

Multi-Layer Feature AggregationのMOTにおける重要性

Deep layer aggregationについて

Deep layer aggregation. Cvpr2018 P13〜

既存:

f:id:keix1:20200610230009p:plain
existing

Deep Layer Aggregation:

f:id:keix1:20200610230040p:plain
deep layer aggregation

  • MOTではRe-ID featureは大小それぞれのオブジェクトに対応するためlow/high level両方のfeatureを活用する必要がある
  • Multi-Layer Feature Aggregationにより様々な大きさに対応できるようになり、実験からID切り替わり回数問題が低減することを確認した

ReIDの特徴の次元数

  • 前述したRe-IDでは高次元な特徴を用いており、とてもいい結果を残してきた
  • しかし次元数は小さいほうがいいことが判明した
  • 低次元な特徴の学習はover-fittingを抑制しトラッキングの頑健性を向上する

学習について

DLA-34(COCOベースのpretrainモデル)で初期化しRTX 2080で30時間学習したそう

Train Dataset

  • only bounding box annotations (detection branch)

    • ETH
    • CityPerson
  • bounding box and identity annotations (detection and identity branch)

Test Dataset

  • 2DMOT15,
  • MOT16
  • MOT17
  • MOT20

所感

  • このまま姿勢推定に突っ込めばもう個人を特定できると思った
  • one-shotという用語を調べてるうちにone-shot learningが気になり始めたが今回のone-shotは2つのタスクを1つのモデルでやるの意味だと思う。one-shot learning今度調べたい
  • 2つのタスクを1つのモデルで実施は前回調査したSiamMaskでも出てきたので最近のトレンドはmultitaskできるモデルなんだろうと思った

用語

英単語

  • degraded: 退化した
  • end up: 最後には〜で終わる
  • trajectory: 弾道、軌道
  • in tern: 順番に
  • compounding: 配合
  • aggregating: 集約
  • deserve: 値する
  • dilated: 膨張した
  • deformable: 変形可能な
  • trivial: 自明
  • need to leverage: 活用する必要がある
  • observe: 気づく
  • due to: のため
  • fed to, feed to: 供給する
  • promising: 前途有望な
  • alleviate: 軽減する
  • aligned with: 連携して
  • fuse: 導火線
  • jittering: 神経質

【文献調査】SiamMask: Fast Online Object Tracking and Segmentation: A Unifying Approach

読んだもの

paperswithcode.com

youtu.be

GitHub: foolwood/SiamMask: [CVPR2019] Fast Online Object Tracking and Segmentation: A Unifying Approach

2019年5月公開

概要

  • 任意のオブジェクトのトラッキング (visual object tracking, VOT)+セグメンテーション (video object segmentation, VOS)
  • 自分でbounding boxを設定するとそのオブジェクトを追従してくれる→classのわからない未知のバイナリ画像を追える
    • 青→自分で設定したbounding box
    • 赤→ECOという従来手法
    • 緑→提案するSiamMask

f:id:keix1:20200602223846p:plain
SiamMaskComparison

  • 速い
    • 手元のMacのCPUで1.6fps(リアルタイム)
    • オフライン学習だから速い
      • 事前に学習し未知のデータに対して処理
      • 実行中の更新がないため紛らわしいものは間違える可能性あり
  • ラッキングの精度も執筆時点で最新のものより良い(Conclusionより)

手法の理解

SiamMaskの構成図

f:id:keix1:20200603004628p:plain
SiamMaskMethod

  • 従来と比べhの部分を拡張してmaskを出力

  • Fully-Convolutional Siamese Networksを使っている

    • Siamese Networksで同じ場面を表す大小2枚の画像を学習することでObject Trackingを実現
    • Siamese Networksはアーキテクチャ、中身のモデルはどんなネットワークにも変更可能

f:id:keix1:20200603004736p:plain
Siamese

  • Siameseの学習アルゴリズム
    • クラスが同じ場合は距離を近づけ、違う場合は距離を離すよう損失関数をつくる
      • ばねと同じ原理→フックの法則

f:id:keix1:20200603004836p:plain
Siamese2

  • 今回の手法はおそらく
    • 従来 :オブジェクトの位置をつくれるようSiameseしてる
    • 本手法:セグメンテーションするMaskをつくれるようSiameseしてる

試しにやってみた

実行環境

Demo.py実行時の注意点

  • PYTHONPATHを設定する
    • {yourlocation}/SiamMask/toolsを設定しました
  • スペースを押すと再生開始
  • --cpuをつけてCPUモードで実行できる

顔を選択したとき

youtu.be

文字を選択したとき

youtu.be

うまくいっていないところ

  • 足のトラッキング中、足が重なったりすると判別できずもう片方の足を追従してしまう
  • ラケットのトラッキングは体と重なっているところから開始しているせいか難しかった
    • 体と離れた状態から選択するなら良くなるかもしれない

所感

  • 動画中いつでもユーザーが自分でターゲットを設定できるので、アプリケーションの応用が無限に効きそう
    • 刑事「あの犯人を追え!」→ハッカー「了解」
  • セグメンテーションできるので、オブジェクトの状態を推定するための前処理として使えそう
    • 背景に関わらず物体のうごきや色に注目できる
  • 追従できるので人物の識別に使える?
    • Aさん、Bさん

関連知識

英単語

  • fundamental: 基礎的な
  • survaillance: 監視
  • subsequent: その後に起こる
  • intersection: 交差点
  • arbitrary: 任意の
  • consequence: 結果
  • understandably: 当然だが
  • operablity: 操作性
  • agnostic: 不可知論者
  • schematic: 概要を示した、図式の
  • denote: であることを示す
  • contrasive: 対称的な

【文献調査】End-to-End Object Detection with Transformers

注意点

  • 文献をざっくり読んでの個人的なまとめです。

読んだもの

文献: paperswithcode.com

Facebook AIブログ: ai.facebook.com

概要のまとめ

  • Facebook AIが2020年5月26日に公開。公式ブログにも解説がある
  • DETRの大きな特徴は2部グラフの損失とtransformerの組み合わせ
    • the main features of DETR are the conjunction of the bipartite matching loss and transformers with (non-autoregressive) parallel decoding

  • 動画中のオブジェクトの関係を見る
    • DETR reasons about the relations of the objects and the global image context to directly output the final set of predictions in parallel

    • 意訳:DETRはYoloで推定されるようなオブジェクトと動画中のそれぞれの画像の文脈を推理して最終の推定結果と一緒に出力する
    • f:id:keix1:20200601141728p:plain
      method
  • シンプルなEnd to Endなモデルを実現している
  • 従来手法との比較([Facebook AI公式ブログ(https://ai.facebook.com/blog/end-to-end-object-detection-with-transformers)より)
    • f:id:keix1:20200601134208p:plain
      compararison
    • 従来手法では逐次的に出す必要があり時間がかかるが、本手法であれば並行して出すことができるため速く高効率としている
  • 物体検出の推定精度が向上する可能性がある
    • If DETR predicts that an image contains a person standing on the beach, for example, it knows that a partially occluded object is more likely to be a surfboard. In contrast, other detection models predict each object in isolation.

    • 意訳:ビーチに人が立っていたら、部分的に写っている物体はサーフボードと認識しやすくなる。従来ではまったく独立のものとして推定していた。

結論のまとめ

  • DETRは柔軟なアーキテクチャが可能
  • self-attentionを使ったため大きな対象物を推定する際にはFast R-CNNより速い
  • 最適化されたFast R-CNNと同等の結果が出た

所感

動画中のオブジェクトの関係を表すものかと思ったが、物体検出の改良の模様。
ただ、オブジェクトの関係を考慮して推定しているのはおもしろいと思った。
オブジェクトが一部隠れていても関係性を表せるようなので、特定の用途ではいい効果になるかもしれない。

関連知識

英単語

  • reason about: 推理する
  • panoptic: パノラマ的な
  • cast: 投げる
  • deduplicate: 重複排除する
  • leverage:てこの力
  • bipartite: 二部グラフ
  • partially occluded: 部分的に遮蔽された
  • simultaneously: 同時に
  • bimodal: 二峰性の(ピークが2つあるようなグラフ、風を引いて熱が出て、収まって、また熱を出すみたいなことらしい)
  • interpretability: 説明力
  • heuristic: 経験則の
  • conjunction: 結合、関連、組み合わせ

生きること。つくること。

 

技術は人に喜びを与える。

何かが少し向上したり、何かが少し効率的になったり。そのちょっとの積み重ねが人を喜ばせる。

 

なぜか。

 

名は体を表すという。生命体である私たちは生きること自体がそれを表す手段になっている。

 

生きること。それが生命体の原則ともいえる。それにつながる要素は全て喜びにつながるのだ。

 

だから技術は発展した。人を喜ばせるために。より生かすために。

 

私たちは生命というパラダイムの下、この基本原則に従い日夜新たなる技術をつくりだす。それが生きることだから。喜びだから。

 

個体の生命には限りがある。所詮は現象である。その場限りのインスタンスな存在だ。

 

しかし、It works. 

 

技術は受け継がれ、発明は起こり、人類は生きるのだ。

 

生命体は生命体として、生きることを目的として生きるのだ。

 

だから今日も

 

その一行のコードを時代に刻み込め。

 

 

Technology makes you happy.

 

Someone improves something, or increases efficiency makes people happy.

 

Why?

 

Name explains the body. So, For us, to live is method of expressing itself.

 

Living... it's principle of life-form. All of the related is pleasure.

 

For this, Technology is spreaded. In order to make people happy, or make people sustainable. 

Under the paradim of life-form, according to the basic principle, we develop a new technology everyday.


Because we are alive and that's our pleasure.

 

Life is limited. We are just phenomenon, temporary existence.

 

But, it works.

 

Techonology is inherited, invention is invoked, human-being will alive.

 

Life-form is life-form... Our purpose is to live.

 

So, just write the code!