【文献調査】SiamMask: Fast Online Object Tracking and Segmentation: A Unifying Approach
読んだもの
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
- 速い
- 手元のMacのCPUで1.6fps(リアルタイム)
- オフライン学習だから速い
- 事前に学習し未知のデータに対して処理
- 実行中の更新がないため紛らわしいものは間違える可能性あり
- トラッキングの精度も執筆時点で最新のものより良い(Conclusionより)
手法の理解
SiamMaskの構成図
従来と比べhの部分を拡張してmaskを出力
Fully-Convolutional Siamese Networksを使っている
- Siamese Networksで同じ場面を表す大小2枚の画像を学習することでObject Trackingを実現
- Siamese Networksはアーキテクチャ、中身のモデルはどんなネットワークにも変更可能
- Siameseの学習アルゴリズム
- クラスが同じ場合は距離を近づけ、違う場合は距離を離すよう損失関数をつくる
- ばねと同じ原理→フックの法則
- クラスが同じ場合は距離を近づけ、違う場合は距離を離すよう損失関数をつくる
- 今回の手法はおそらく
- 従来 :オブジェクトの位置をつくれるようSiameseしてる
- 本手法:セグメンテーションするMaskをつくれるようSiameseしてる
試しにやってみた
実行環境
- MacBookPro 2017 Core i7
Demo.py実行時の注意点
- PYTHONPATHを設定する
{yourlocation}/SiamMask/tools
を設定しました
- スペースを押すと再生開始
--cpu
をつけてCPUモードで実行できる
顔を選択したとき
文字を選択したとき
うまくいっていないところ
- 足のトラッキング中、足が重なったりすると判別できずもう片方の足を追従してしまう
- ラケットのトラッキングは体と重なっているところから開始しているせいか難しかった
- 体と離れた状態から選択するなら良くなるかもしれない
所感
- 動画中いつでもユーザーが自分でターゲットを設定できるので、アプリケーションの応用が無限に効きそう
- 刑事「あの犯人を追え!」→ハッカー「了解」
- セグメンテーションできるので、オブジェクトの状態を推定するための前処理として使えそう
- 背景に関わらず物体のうごきや色に注目できる
- 追従できるので人物の識別に使える?
- Aさん、Bさん
関連知識
- 動画から物体を追跡するSiamMaskの論文要約 - Qiita
- むちゃがっつり翻訳されている。ありがたや
- 論文読込み:「Fully-Convolutional Siamese Networks for Object Tracking」の要約 - Qiita
- 【深層距離学習】Siamese NetworkとContrastive Lossを徹底解説|はやぶさの技術ノート
- 物体検出、セグメンテーションをMask R-CNNで理解してみる (初心者) - Qiita
- コンピュータビジョンの最新論文調査 Object Tracking 編 · DeNA Engineers' Blog
- SiamRPNとSiamFC
- SiamRPNのが強いっぽい感じ
英単語
- fundamental: 基礎的な
- survaillance: 監視
- subsequent: その後に起こる
- intersection: 交差点
- arbitrary: 任意の
- consequence: 結果
- understandably: 当然だが
- operablity: 操作性
- agnostic: 不可知論者
- schematic: 概要を示した、図式の
- denote: であることを示す
- contrasive: 対称的な