Home

Awesome

TCCL.pytorch

Temporal Cycle-Consistency Learning

書誌情報

問題

手法・要点

手法のポイントは、動画の画像フレームの時系列的な対応関係が取れるような embedding space を学習することである。 画像から訓練済みモデル等 一般的な CNN を使って抽出した画像特徴量に基づいて embedding に変換する。 異なる動画の画像フレーム (s_i, t_j) から求めた embedding の系列 (u_i, v_j)に対して、その時系列的な位置の対応を取る損失を取る。

スクリーンショット 2020-08-05 11 45 57

より具体的には、u の soft nearest neighbor (v_tilda) を求め、その soft nearest neighbor を cycle-back した時に、元の u と一致する時系列のインデックスを持つようにする損失を取る。 損失には、Cycle-back Classification と Cycle-back Regression の2つが提案されている。Cycle-back Classification は cycle-back した時の時系列インデックスを分類によって位置合わせする損失である。しかし、分類では時系列位置の遠近が考慮されないため、ターゲット位置を中心とした分布を考えて時系列のインデックスを回帰する Cycle-back Regression が提案されている。

スクリーンショット 2020-08-05 11 43 05

以上の図は、原著論文から引用した。

Implementation & Results

結果例1

20200803152325 checkpoint_00500 0_17

20200803152325 checkpoint_03500 0_17

結果例2

20200803152325 checkpoint_00500 50_67

20200803152325 checkpoint_03500 50_67

Usage

$ python main.py --normalize_indices --num_frames 20 --batch_size 4 

If you have more GPU memory (~30,000MiB),

$ python main.py --normalize_indices --num_frames 32 --batch_size 8 (--weight_decay 0.)

Found that the latter settings resulted in a better/stable learning by a few experiments. Might need more hyper parameter tuning with the implementation.

Acknowledgement