← 开源
AssafSinger94

dino-tracker

Official Pytorch Implementation for “DINO-Tracker: Taming DINO for Self-Supervised Point Tracking in a Single Video” (ECCV 2024)

Model DevelopmentDomain-specific trainingPython
在 GitHub 打开
增长势头
+024 小时新增 Star0.0%
569
Star
52
Fork
+0
本周
2
贡献者
创建于 2024-04-03 · 更新于 2026-09-22 · 今日第 16842 名
主要开发者
tnarekAssafSinger94

AssafSinger94/dino-tracker 排名第 16,842,有 569 个星标。

同类别比较

AssafSinger94/dino-tracker 排名第 16,842,此处有 8 个同类条目;1x-technologies/1xgpt 排名第 16,841。

同类别比较
名称排名指标
The-Atticus-Project/cuad16,824
语言:
Python
星标数:
570
分叉数:
177
简介:
CUAD (NeurIPS 2021)
tobybreckon/fire-detection-cnn16,835
语言:
Python
星标数:
570
分叉数:
173
简介:
real-time fire detection in video imagery using a convolutional neural network (deep learning) - from our ICIP 2018 paper (Dunnings / Breckon) + ICMLA 2019 paper (Samarth / Bhowmik / Breckon)
vsyw/Keras-OpenFace16,838
语言:
Jupyter Notebook
星标数:
570
分叉数:
252
简介:
Keras-OpenFace is a project converting OpenFace from Torch implementation to a Keras version
1x-technologies/1xgpt16,841
语言:
Python
星标数:
569
分叉数:
50
简介:
world modeling challenge for humanoid robots
goml/gobrain16,852
语言:
Go
星标数:
569
分叉数:
61
简介:
Neural Networks written in go
mlverse/torch16,857
语言:
C++
星标数:
569
分叉数:
93
简介:
R Interface to Torch
mmasana/FACIL16,858
语言:
Python
星标数:
569
分叉数:
102
简介:
Framework for Analysis of Class-Incremental Learning with 12 state-of-the-art methods and 3 baselines.
ilovepose/DarkPose16,865
语言:
Cuda
星标数:
568
分叉数:
82
简介:
Distribution-Aware Coordinate Representation for Human Pose Estimation
关键参数与规格
关键参数与规格
参数值
语言Python
类别Model Development
子类别Domain-specific training
关键词Computer vision, Data processing, Embeddings, Visual understanding
星标数569
分叉数52
贡献者2
创建日期2024-04-03
更新日期2026-09-22
1 天星标数0
7 天星标数0
排名16,842
上次排名16,634
排名变化-208
7 天星标排名15,758
上次 7 天星标排名15,767
7 天星标排名变化9
总星标排名17,507
上次总星标排名17,472
总星标排名变化-35
国家Israel
README 摘录

DINO-Tracker: Taming DINO for Self-Supervised Point Tracking in a Single Video (ECCV 2024) [ Project Page ] [ arXiv ] Usage 1. Inference Setup Clone the repository: Switch to the project directory: To setup the environment, run: Add current path to : Preprocessing Given an input video, we start by extracting optical flow and DINO best-buddy correspondences. The input video directory should have the following structure: where contains the per-frame foreground masks. If is not provided, foreground masks are automatically computed

using DINO features saliency maps. In case the video is in mp4 format, convert it to frames by simply running: To run the preprocessing pipeline, run the following: The script outputs chained optical flow trajectories, DINO embeddings and DINO best-buddies in the following structure: Training Once preprocessing is finished, run the following command to train DINO-Tracker: The checkpoints are saved under: Inference Trajectory creation and visualization To predict and visualize trajectories with a trained DINO-Tracker, run the

following scripts sequentially: The first script creates trajectories for a grid of query points in the first frame, while the second script visualizes them. The option is used for visualizing motion trails. Note that this option requires a segmentation mask for the first frame. If is not provided, the script only visualizes the tracked positions in circles. The visualizations are outputted under directory. TAP-Vid evaluation To evaluate on TAP-Vid-DAVIS, please see the following steps. The same steps

can be applied for TAP-Vid Kinetics and BADJA datasets. Download benchmark data file from this link, put it under , 2. Download pre-trained weights and videos from this link under , unzip the folder to , 3. Extract DINO embeddings for all videos by running the following: The above should be run for all videos in the benchmark, e. Predict trajectories on benchmark query points by running the following for all benchmark videos: 5. Evaluate the model accuracy by running the

following: The evaluation should output: . The output CSV file contains all TAP-Vid metrics (position accuracy, occlusion accuracy, Average Jaccard) for all videos.

常见问题

记录了多少星标和分叉?

AssafSinger94/dino-tracker 有 569 个星标和 52 个分叉。

仓库排名是多少?

AssafSinger94/dino-tracker 排名第 16,842。

记录的语言和类别是什么?

AssafSinger94/dino-tracker 有 569 个星标,语言为 Python,类别为 Model Development。

哪个仓库排名最接近?

AssafSinger94/dino-tracker 与 1x-technologies/1xgpt 比较,后者排名第 16,841,有 569 个星标。

README

DINO-Tracker: Taming DINO for Self-Supervised Point Tracking in a Single Video (ECCV 2024)

[Project Page] [arXiv]

https://github.com/AssafSinger94/dino-tracker/assets/43016459/bcd7d57a-1977-4f05-a2f4-ddd859524598

Usage

  1. Setup
  2. Preprocessing
  3. Training
  4. Inference

Setup

Clone the repository:

git clone https://github.com/AssafSinger94/dino-tracker.git

Switch to the project directory:

cd dino-tracker

To setup the environment, run:

conda create -n dino-tracker python=3.9
conda activate dino-tracker
pip install -r requirements.txt

Add current path to PYTHONPATH:

export PYTHONPATH=`pwd`:$PYTHONPATH

Preprocessing

Given an input video, we start by extracting optical flow and DINO best-buddy correspondences. The input video directory should have the following structure:

├──
    ├──video/
        ├──00000.png
        ├──00001.png
        ├──...
    ├──masks/ # optional
        ├──00000.png
        ├──00001.png
        ├──...

where masks contains the per-frame foreground masks. If masks is not provided, foreground masks are automatically computed using DINO features saliency maps.

In case the video is in mp4 format, convert it to frames by simply running:

python ./preprocessing/mp4_to_frames.py \
    --video-path  \
    --output-folder /video

To run the preprocessing pipeline, run the following:

python ./preprocessing/main_preprocessing.py \
    --config ./config/preprocessing.yaml \
    --data-path 

The script outputs chained optical flow trajectories, DINO embeddings and DINO best-buddies in the following structure:

├──
    ├──video/
    ├──masks/
    ├──dino_best_buddies/
    ├──dino_embeddings/
    ├──of_trajectories/

Training

Once preprocessing is finished, run the following command to train DINO-Tracker:

python ./train.py \
    --config ./config/train.yaml \
    --data-path 

The checkpoints are saved under:

├──
    ├──models
        ├──dino_tracker
            ├──delta_dino_.pt
            ├──tracker_head_.pt

Inference

Trajectory creation and visualization

To predict and visualize trajectories with a trained DINO-Tracker, run the following scripts sequentially:

python ./inference_grid.py \
    --config ./config/train.yaml \
    --data-path  \
    --use-segm-mask # optional, used for sampling only foreground points
python visualization/visualize_rainbow.py \
    --data-path  \
    --plot-trails # optional, used for visualizing motion trails.

The first script creates trajectories for a grid of query points in the first frame, while the second script visualizes them. The --plot-trails option is used for visualizing motion trails. Note that this option requires a segmentation mask for the first frame. If --plot-trails is not provided, the script only visualizes the tracked positions in circles. The visualizations are outputted under /visualizations directory.

TAP-Vid evaluation

To evaluate on TAP-Vid-DAVIS, please see the following steps. The same steps can be applied for TAP-Vid Kinetics and BADJA datasets.

  1. Download benchmark data file tapvid_davis_data_strided.pkl from this link, put it under ./tapvid/tapvid_davis_data_strided.pkl,

  2. Download pre-trained weights and videos from this link under davis_480.zip, unzip the folder to ./dataset/tapvid-davis/,

  3. Extract DINO embeddings for all videos by running the following:

python ./preprocessing/save_dino_embed_video.py \
    --config ./config/preprocessing.yaml \
    --data-path ./dataset/tapvid-davis/

The above should be run for all videos in the benchmark, e.g. = {0, 1, ..., 29} for DAVIS.

  1. Predict trajectories on benchmark query points by running the following for all benchmark videos:
python inference_benchmark.py \
    --config ./config/train.yaml \
    --data-path ./dataset/tapvid-davis/ \
    --benchmark-pickle-path ./tapvid/tapvid_davis_data_strided.pkl \
    --video-id 
  1. Evaluate the model accuracy by running the following:
python ./eval/eval_benchmark.py \
    --dataset-root-dir ./dataset/tapvid-davis \
    --benchmark-pickle-path ./tapvid/tapvid_davis_data_strided.pkl \
    --out-file ./tapvid/comp_metrics_davis.csv \
    --dataset-type tapvid # tapvid | BADJA

The evaluation should output: average_pts_within_thresh: 0.8066 | occlusion_acc: 0.8854 | average_jaccard: 0.6528.

The output CSV file contains all TAP-Vid metrics (position accuracy, occlusion accuracy, Average Jaccard) for all videos.

Citation

@misc{dino_tracker_2024,
    author        = {Tumanyan, Narek and Singer, Assaf and Bagon, Shai and Dekel, Tali},
    title         = {DINO-Tracker: Taming DINO for Self-Supervised Point Tracking in a Single Video},
    year          = {2024},
    booktitle = {European Conference on Computer Vision (ECCV)}
}
排名相邻
同类项目