Skip to content

taco-group/Visual_Chronometer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Visual Chronometer: Measuring Physical Frame Rate from Visual Dynamics

Paper  |  Project Page  |  Model Weights  |  PhyFPS-Bench-Gen

"Not only do we measure the movement by the time, but also the time by the movement, because they define each other." — Aristotle, Physics

Visual Chronometer predicts the Physical Frames Per Second (PhyFPS) of a video — the true temporal scale implied by its visual motion, independent of container metadata. We reveal that state-of-the-art video generators suffer from severe chronometric hallucination: their outputs exhibit ambiguous, unstable, and uncontrollable physical motion speeds.

"A Pomeranian dog chasing a soccer ball across a lawn."
Original Meta FPS: 24 → PhyFPS: 35.8

"A snake slithering across polished wooden floorboards."
Original Meta FPS: 24 → PhyFPS: 60.2

"A detailed view of the churning white wake trailing behind a large ship."
Original Meta FPS: 16 → PhyFPS: 44.9

Left: Original generated video at container FPS. Right: Corrected to PhyFPS using Visual Chronometer. User studies confirm corrected videos are perceived as more natural.


Installation

git clone https://github.com/taco-group/Visual_Chronometer.git
cd Visual_Chronometer/inference
pip install -r requirements.txt

Model Weights

The checkpoint is automatically downloaded from HuggingFace when you first run inference. No manual download is needed.

Alternatively, you can download it manually:

Model Range Download
VC-Common 10–60 FPS vc_common_10_60fps.ckpt

Place the file in inference/ckpts/.

Quick Start

Predict PhyFPS for a single video

cd inference
python predict.py --video_path demo_videos/gymnast_50fps.mp4

Expected output:

============================================================
  Video: gymnast_50fps.mp4
  Average PhyFPS: 50.5
============================================================
   Segment        Frames   Mid Frame    PhyFPS
  --------  ------------  ----------  --------
         0      0-29             15      54.9
         1      4-33             19      52.2
         2      8-37             23      50.8
         ...
       AVG                                50.5

Predict PhyFPS for a directory of videos

cd inference
python predict.py --video_dir path/to/videos/ --output_csv results.csv

Demo videos

Three demo videos with known ground-truth FPS are included in inference/demo_videos/:

Video Ground Truth Predicted PhyFPS Error
gymnast_24fps.mp4 24 FPS 24.2 FPS 0.8%
gymnast_30fps.mp4 30 FPS 30.3 FPS 1.0%
gymnast_50fps.mp4 50 FPS 50.5 FPS 1.0%

PhyFPS-Bench-Gen

A benchmark of 100 prompts for auditing the temporal consistency of video generators. See PhyFPS-Bench-Gen/README.md for usage.

Quick evaluation:

# 1. Generate videos with your model
your_model --prompts PhyFPS-Bench-Gen/prompts.txt --output generated/

# 2. Predict PhyFPS
cd inference
python predict.py --video_dir ../generated/ --stride 4 --output_csv results.csv

Citation

@article{gao2026visual_chronometer,
  title={The Pulse of Motion: Measuring Physical Frame Rate from Visual Dynamics},
  author={Gao, Xiangbo and Wu, Mingyang and Yang, Siyuan and Yu, Jiongze and Taghavi, Pardis and Lin, Fangzhou and Tu, Zhengzhong},
  year={2026}
}

License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages