Skip to content

dipta007/VC-Inspector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VC-Inspector: Advancing Reference-free Evaluation of Video Captions with Factual Analysis

Accepted at ACL 2026 (Main)

ACL 2026 (Main) Paper Project Page Models Dataset Python 3.12

Official implementation of "Advancing Reference-free Evaluation of Video Captions with Factual Analysis"

Table of Contents

Key Features

  • Reference-free Evaluation: Evaluates video captions without requiring ground-truth references
  • Factual Grounding: Focuses on detecting factual errors in objects and actions
  • Interpretable Outputs: Generates quality scores (1-5) with natural language explanations
  • Lightweight & Open-source: Built on Qwen2.5-VL (3B/7B), fully reproducible
  • Cross-domain Generalization: Works on both video and image caption evaluation

Installation

# Clone the repository
git clone https://github.com/dipta007/VC-Inspector.git
cd VC-Inspector

# Install all dependencies
pip install -e .

# Then install PyTorch for your CUDA version (see https://pytorch.org/get-started/locally/)
# Example for CUDA 12.4:
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu124

Dataset

The training dataset is available on HuggingFace:

Name Description Size
dipta007/ActivityNet-FG-It Synthetic video caption evaluation data (balanced & imbalanced splits) 22K train / 1.1K val

Loading the Dataset

from datasets import load_dataset

dataset = load_dataset("dipta007/ActivityNet-FG-It", "balanced")

Each example contains:

  • messages: Chat-formatted data with 32 <image> tags, a caption, an evaluation prompt, and a score + explanation
  • images: List of 32 video frame paths

Dataset Structure

The dataset is generated by systematically augmenting ground-truth ActivityNet captions with controlled factual errors in objects and actions. Each sample pairs a video (as 32 frames) with a caption and a quality score (1-5) along with a natural language explanation.

Synthetic Data Generation

Our data generation pipeline creates training samples by systematically augmenting ground-truth captions with controlled factual errors.

Pipeline Overview

  1. Extract objects and actions from ground-truth captions using an LLM
  2. Generate alternative objects/actions with different meanings
  3. Substitute original elements with alternatives
  4. Compute quality scores based on semantic similarity
  5. Generate explanations identifying the factual errors

Running Data Generation

Step 1: Start the vLLM servers

# Start vLLM server for text generation
vllm serve Qwen/Qwen3-32B --port 8000 --trust-remote-code

# Start vLLM server for embeddings (quality scoring)
bash src/gen_data/embedding.sh

Step 2: Run the generation script

python -m src.gen_data.gen \
    --gt_file data/actnet/train.caption_coco_format.json \
    --dataset anet \
    --n_sample 10 \
    --out_dir data/synthetic_data \
    --gen_model_id Qwen/Qwen3-32B \
    --num_of_workers 64

Arguments:

Argument Description Default
--gt_file Path to ground-truth captions (COCO format) Required
--dataset Dataset name (anet, vatex, msvd) anet
--n_sample Augmented samples per caption 10
--out_dir Output directory data/synthetic_data
--gen_model_id Generator LLM Qwen/Qwen3-32B
--num_of_workers Parallel workers 64

Training

We fine-tune vision-language models using LoRA with the ms-swift framework.

Training uses the dipta007/ActivityNet-FG-It dataset (balanced subset) from HuggingFace Hub directly.

bash src/training/train_lora.sh \
    "Qwen/Qwen2.5-VL-3B-Instruct"

Supported Base Models:

  • Qwen/Qwen2.5-VL-3B-Instruct
  • Qwen/Qwen2.5-VL-7B-Instruct

Inference

Available Models

Model HuggingFace
VC-Inspector-3B dipta007/VCInspector-3B
VC-Inspector-7B dipta007/VCInspector-7B

CLI

python -m src.inference \
    --model dipta007/VCInspector-7B \
    --video path/to/video.mp4 \
    --caption "A man is playing guitar in a field"

Example Output:

4
The caption does not accurately capture the video content. For example, the objects (guitar) are incorrect.

Results

Correlation with Human Judgments on VATEX-Eval

Metric Type Kendall's τb Spearman's ρ
EMScore Reference-free 22.88 29.79
CLIPScore Reference-free 22.33 29.09
ViCLIPScore Reference-free 30.92 39.86
G-VEval (GPT-4o) Reference-free 39.40 -
VC-Inspector-3B Reference-free 37.99 42.45
VC-Inspector-7B Reference-free 42.58 45.99

Cross-domain Evaluation on Image Caption Benchmarks

Metric Flickr8K-Expert Flickr8K-CF
CLIPScore (ref-free) 51.10 34.40
PAC-S (ref-free) 53.90 36.00
VC-Inspector-3B 59.86 39.00
VC-Inspector-7B 63.43 45.97

Citation

If you find this work useful, please cite our paper:

@inproceedings{dipta2026vcinspector,
  title={VC-Inspector: Advancing Reference-free Evaluation of Video Captions with Factual Analysis},
  author={Shubhashis Roy Dipta and Tz-Ying Wu and Subarna Tripathi},
  booktitle={Proceedings of the Association for Computational Linguistics: ACL 2026},
  year={2026},
  eprint={2509.16538},
  archivePrefix={arXiv},
  primaryClass={cs.CV},
  url={https://arxiv.org/abs/2509.16538},
}

Contact

For questions or issues, please open a GitHub issue or contact:

About

Reference free video-caption evaluator

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors