File size: 2,050 Bytes
43c0e77
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
---
license: apache-2.0
base_model: Qwen/Qwen2.5-VL-7B-Instruct
pipeline_tag: video-text-to-text
library_name: transformers
tags:
  - temporal-forgery-localization
  - video-forensics
  - grpo
---

# ForgeLoc-R1 checkpoints

Qwen2.5-VL-7B-Instruct fine-tuned with GRPO to localize the manipulated segments of a video.
Every folder holds a full checkpoint in Hugging Face format.

| Folder | Model | Training data | Test mIoU (%) |
|---|---|---|---|
| `af` | ForgeLoc-R1 | ActivityForensics | 64.27 |
| `ddl` | ForgeLoc-R1 | DDL | 53.03 |
| `baselines/af_grpo` | GRPO | ActivityForensics | 51.28 |
| `baselines/af_video-r1` | Video-R1 | ActivityForensics | 54.29 |
| `baselines/af_tempsamp-r1` | TempSamp-R1 | ActivityForensics | 59.93 |
| `baselines/ddl_grpo` | GRPO | DDL | 31.89 |
| `baselines/ddl_video-r1` | Video-R1 | DDL | 33.25 |
| `baselines/ddl_tempsamp-r1` | TempSamp-R1 | DDL | 50.92 |
| `ablations/af_noanchor` | without anchor injection | ActivityForensics | 58.61 |
| `ablations/af_noprune` | without advantage pruning | ActivityForensics | 62.05 |
| `ablations/af_noos` | without count balancing (m=1) | ActivityForensics | 59.53 |
| `ablations/af_notransform` | without the asymmetric advantage transform | ActivityForensics | 62.90 |
| `ablations/af_bestoverlap` | set term replaced by the best-overlap soft F1 | ActivityForensics | 65.35 |
| `ablations/af_g16` | G'=16 | ActivityForensics | 63.53 |
| `ablations/af_eps0.01` | Sinkhorn coefficient 0.01 | ActivityForensics | 63.49 |
| `ablations/af_seed7` | ForgeLoc-R1, seed 7 | ActivityForensics | 63.27 |
| `ablations/ddl_noos` | without count balancing (m=1) | DDL | 50.17 |

mIoU is measured on the test splits: 1,565 ActivityForensics videos and 1,500 DDL videos.

```python
from transformers import AutoProcessor, Qwen2_5_VLForConditionalGeneration

model = Qwen2_5_VLForConditionalGeneration.from_pretrained(
    "sdzt/ForgeLoc-R1", subfolder="af", torch_dtype="bfloat16", device_map="auto"
)
processor = AutoProcessor.from_pretrained("sdzt/ForgeLoc-R1", subfolder="af")
```