1. 用紙のダウンロードアドレス:
Transformer と Tracker の出会い: 時間的コンテキストを活用して堅牢な視覚的追跡を実現します。【紙】
2. コードのダウンロード アドレス:
https://github.com/594422814/TransformerTrack
3. 環境構築
TransformerTrack は pytracking に基づいて構成されているため、既に構成されている pytracking の Python 環境を直接使用します。
pytracking の Ubuntu バージョン構成:
pytracking の Windows バージョン構成:
conda activate pytracking
4. 事前トレーニングされたモデルを構成する
github ダウンロード リンク: https://github.com/594422814/TransformerTrack/releases/download/model/trdimp_net.pth.tar
Baidu Cloud のダウンロード リンク: リンク: https://pan.baidu.com/s/1SY_qR0wri0Ep9DYY1vffBg
抽出コード: w4of
ダウンロードしたモデルをパス pytracking/networks/ に配置します。
5. pytracking/evaluation/local.py を開き、パラメータを設定します
6. 視覚化サーバーを実行する
conda activate pytracking
python -m visdom.server
7. コードを実行します
別のターミナルを開いて実行します
conda activate pytracking
python pytracking/run_tracker.py trdimp trdimp --dataset_name otb --sequence Soccer --debug 1 --threads 0
パラメータの説明: trdimp は、実行する必要があるトラッカーの名前です。
trdimp はパラメータ設定であり、pytracking/parameter/trdimp パスの下に多くのパラメータが用意されています。
otb は、実行する必要があるデータセットの名前です。
Soccer は、実行する必要があるビデオ シーケンスの名前です。
8. エラー 1 が発生しました
raise Exception('ファイル {}'.format(path) を読み取れませんでした)
例外: ファイル /data3/publicData/Datasets/OTB/OTB2015/BlurCar1/groundtruth_rect.txt を読み取れませんでした
間違った理由:
groundtruth_rect.txt形式が読み取り形式に対応していません
解決:
pytracking/utils/load_text.py を開いて関数を変更します。
def load_text_numpy(path, delimiter, dtype)
次のように:
def load_text_numpy(path, delimiter, dtype):
if isinstance(delimiter, (tuple, list)):
for d in delimiter:
try:
# ground_truth_rect = np.loadtxt(path, delimiter=d, dtype=dtype)
# to deal with different delimeters
import io
with open(path,'r') as f:
ground_truth_rect=np.loadtxt(io.StringIO(f.read().replace(',',' ')))
return ground_truth_rect
except:
pass
raise Exception('Could not read file {}'.format(path))
else:
ground_truth_rect = np.loadtxt(path, delimiter=delimiter, dtype=dtype)
return ground_truth_rect
9. エラー 2 が発生しました
モジュール「torch」には属性「floor_divide」がありません
間違った理由:
torch 1.6.0 以降、テンソル A と整数 n の間の直接除算はサポートされなくなりました。
result = A / n # not supported in torch 1.6.0
# solution
result = torch.floor_divide(A, n)
出典: [pytorch] RuntimeError: div または / を使用したテンソルの整数除算はサポートされなくなりました [解決策]_Muzhan-CSDN ブログ
トーチのバージョンは 1.4.0 で、floor_divide 関数がまだないため、floor_divide を通常の直接除算に変更します。
解決:
pytracking/features/preprocessing.py を開きます
コメント行 101/113/114 およびコメント解除行 100/111/112
10. 再度実行すると成功します。
追跡結果はhttp://localhost:8097/で確認できます。