01
Join us
Scan to join our Discord server or our WeChat group. The third code opens HeyGen Research, where our related work is posted. You are welcome to follow it there. In case any QR code expires, please open an issue.
If you are interested in joining HeyGen, please email christina.zhang@heygen.com directly.
02
TransVLM vs. existing detectors
Ground truth and three detectors, all at 25 fps, on the same benchmark videos. Every clip here is a transition TransVLM detects and both shot-boundary detectors miss, cut out of the video it came from. 84 clips in total. Drag the timeline to move through one.
03
All 59 transitions
FFmpeg’s 58 native xfade transitions and the cut: the whole
vocabulary of the data engine behind the synthetic half of the benchmark
and most of the training set. Point at a tile, or tap it, and it plays
with its definition.
For each pair of adjacent shots the engine draws one effect uniformly from the 59 and a duration uniformly up to a bound set by the two shots. A cut forces the duration to zero. The shots themselves are mined by running PySceneDetect, TransNetV2 and AutoShot and keeping only those a majority agree on, so the pool carries almost no residual transitions.
04
Failing scenarios
Where the errors are
| Duration | Segment F1 | Frame F1 | IoU F1 | Boundary error |
|---|---|---|---|---|
| Public data | ||||
| Cut < 0.1 s | 0.776 | 0.805 | 0.165 | 0.13 s |
| Normal 0.1–1 s | 0.591 | 0.341 | 0.216 | 0.15 s |
| Long > 1 s | 0.803 | 0.238 | 0.269 | 2.15 s |
| Synthetic data | ||||
| Cut < 0.1 s | 0.668 | 0.638 | 0.003 | 0.04 s |
| Normal 0.1–1 s | 0.948 | 0.997 | 0.787 | 0.06 s |
| Long > 1 s | 0.991 | 0.942 | 0.946 | 0.11 s |
| Overall | ||||
| Cut < 0.1 s | 0.764 | 0.787 | 0.146 | 0.12 s |
| Normal 0.1–1 s | 0.689 | 0.479 | 0.335 | 0.12 s |
| Long > 1 s | 0.941 | 0.761 | 0.796 | 0.57 s |
TransVLM at 25 fps. The F1 columns are averaged over the 0 to 0.5 s tolerance sweep. IoU F1 also over five overlap thresholds from 0.1 to 0.9.
Long transitions are the easiest to detect because several seconds of surrounding context anchor both endpoints. Normal-length transitions in the public set are the most difficult: the model tends to overpredict them, increasing false positives and lowering F1. Cuts are usually detected but localized one frame off. On synthetic cuts, the average boundary error is 0.04 second, which yields an almost negligible IoU because cuts have no temporal duration. In the public subset, some long transitions are detected, but their endpoints can be off by as much as two seconds, where the ground-truth boundaries are themselves least certain.
The remaining errors occur mainly in very low-light scenes, where both colour and optical flow become unreliable, and in long transitions that span two sliding windows and lose temporal coverage at the boundary between them.
05
Method
VLMs capture spatial semantics effectively but struggle with motion across shot boundaries. Instead of adding a separate encoder, TransVLM expands the vision patch embedding from three to six channels, initializes the new weights to zero, and processes concatenated colour and optical-flow inputs.
The visual token sequence does not get longer, so the language backbone carries no additional cost.
input channels
parameters
tokens
(Qwen3-VL-4B-Instruct)
06
Benchmark
Public SBD datasets represent cuts as timestamps, making them unable to capture transitions such as a two-second dissolve. The STD benchmark addresses this by using six datasets with segment-level annotations (three re-annotated frame by frame for this study and three adopted as provided) alongside synthetically generated videos.
Transitions are grouped by duration — Cut under 0.1 s, Normal up to 1 s, Long beyond that.
| Dataset | Domain | Original label | Videos | Hours | Transitions | Cut | Normal | Long |
|---|---|---|---|---|---|---|---|---|
| RAI [3] | TV shows | Point | 10 | 1.64 | 1,036 | 757 | 188 | 91 |
| BBC [4] | Documentaries | Point | 11 | 9.00 | 4,943 | 4,255 | 582 | 106 |
| AutoShot (test) [1] | Short videos | Point | 200 | 2.01 | 2,065 | 1,008 | 1,004 | 53 |
| ClipShots (test) [5] | Web videos | Point | 500 | 32.85 | 6,923 | 4,798 | 1,830 | 295 |
| MovieShots2 (test) [6] | Movies | Point | 282 | 20.72 | 14,767 | 13,436 | 710 | 621 |
| SportsShot (val) [7] | Sports | Point | 240 | 9.37 | 5,045 | 3,899 | 1,064 | 82 |
| STD synthesis data | Web videos | Segment | 3,972 | 24.67 | 10,460 | 3,593 | 1,615 | 5,252 |
| STD Benchmark | Diverse | Segment | 5,215 | 100.26 | 45,239 | 31,746 | 6,993 | 6,500 |
How it was annotated
Expert annotators worked through a frame-precise tool, one primary pass plus at least one reviewer, disagreements arbitrated to a single consensus label. We will release the benchmark annotations after our internal inspection process.
annotators
added
removed
shifted
per video
Missed in the originals
Across four of the six datasets, the public annotations omit 14 transitions entirely. Most are gradual transitions, the very kind of event that point-based labels cannot represent.
07
Results
No baseline is strong on both halves of the benchmark. Public data is about 80% cuts, which the shot-boundary detectors were built for and which a VLM fed five frames a second cannot resolve; the synthetic half is mostly gradual, and there the order reverses. TransVLM is the only row that holds on both.
Same frame rate. The zero-shot VLMs were run at 5 fps. Run at 5 fps itself, TransVLM still leads them on frame-level F1 on both halves and on segment-level F1 on the synthetic half; on public segment-level F1 Gemini 3 Pro is ahead by 0.001.
Well-formed output. Untuned, Qwen3-VL-4B returns unparseable JSON for 4.96% of its outputs; TransVLM for 0.03%. Take the sliding window away, so the whole video goes through one forward pass, and the rate climbs back to 4.35% while public segment-level F1 falls to 0.540. The 2B variants fail on 54% and 65% of outputs, which is why 4B is the smallest backbone used.
Where flow helps. The ablation view shows what removing optical flow costs overall. On the synthetic subtle-cut split alone, cuts with little change in content, flow lifts segment-level F1 from 0.681 to 0.732 and frame-level F1 from 0.555 to 0.642: it is the abrupt, low-contrast cuts it recovers.
08
Cite
@inproceedings{chen2026transvlm,
title={TransVLM: A Vision-Language Framework and Benchmark for
Detecting Any Shot Transitions},
author={Chen, Ce and Ren, Yi and Li, Yuanming and Goriachko, Viktor and
Ye, Zhenhui and Guo, Zujin and Hong, Zhibin and Gong, Mingming},
booktitle={European Conference on Computer Vision},
year={2026},
organization={Springer}
}
Updates
The STD benchmark is meant as a living resource. We are working on smaller and more efficient VLM backbones for the task; checkpoints, recipes and results will be released here as they land.
References
- Zhu et al. AutoShot: A Short Video Dataset and State-of-the-Art Shot Boundary Detection. CVPRW 2023.
- Bai et al. Qwen3-VL Technical Report. 2025.
- Baraldi et al. A Deep Siamese Network for Scene Detection in Broadcast Videos (RAI). ACM MM 2015.
- Baraldi et al. Shot and Scene Detection via Hierarchical Clustering for Re-using Broadcast Video (BBC). CAIP 2015.
- Tang et al. Fast Video Shot Transition Localization with Deep Structured Models (ClipShots). ACCV 2018.
- Rao et al. A Local-to-Global Approach to Multi-Modal Movie Scene Segmentation (MovieShots). CVPR 2020.
- MCG-NJU. SportsShot: A Fine-Grained Dataset for Shot Segmentation in Multiple Sports. Dataset, 2024.
- Castellano. PySceneDetect. Open-source software, 2014–.
- Souček and Lokoč. TransNet V2: An Effective Deep Network Architecture for Fast Shot Transition Detection. ACM MM 2024.
- Gemini Team. Gemini: A Family of Highly Capable Multimodal Models. 2023.
- Zhang et al. ActionFormer: Localizing Moments of Actions with Transformers. ECCV 2022.
- Zhang et al. NeuFlow v2: Push High-Efficiency Optical Flow to the Limit. 2024.