본문으로 건너뛰기

© 2026 Molayo

GH Trending릴리즈2026. 05. 24. 19:47

linzhiqiu/t2v_metrics

요약

VQAScore는 텍스트-비주얼 생성 모델을 자동으로 평가하는 프레임워크로, 최근 비디오 기반 모델 지원 및 CameraBench 통합 업데이트를 완료했습니다. Google의 Imagen3 등 주요 기업에서 CLIPScore의 강력한 대안으로 채택하며 그 성능을 입증했습니다.

핵심 포인트

  • VQAScore를 통해 단 한 줄의 코드로 이미지/비디오/3D 모델 자동 평가 가능
  • Qwen2.5-VL, LLaVA-Video 등 20개 이상의 최첨단 비디오-언어 모델 지원
  • 카메라 움직임 이해도 평가를 위한 CameraBench 벤치마크 통합
  • Google DeepMind, NVIDIA 등 글로벌 테크 기업에서 채택 및 활용

VQAScore를 통해 연구자들은 단 한 줄의 Python 코드로 text-to-image/video/3D 모델을 자동으로 평가할 수 있습니다!

[VQAScore 페이지] [VQAScore 데모] [GenAI-Bench 페이지] [GenAI-Bench 데모] [CLIP-FlanT5 모델 저장소]

VQAScore: Image-to-Text Generation을 이용한 Text-to-Visual Generation 평가 (ECCV 2024) [논문] [HF]

Zhiqiu Lin, Deepak Pathak, Baiqi Li, Jiayao Li, Xide Xia, Graham Neubig, Pengchuan Zhang*, Deva Ramanan* (*공동 제1저자 및 공동 교신저자)

GenAI-Bench: Compositional Text-to-Visual Generation의 평가 및 개선 (CVPR 2024, SynData Workshop 최우수 단편 논문상) [논문] [HF]

Baiqi Li*, Zhiqiu Lin*, Deepak Pathak, Jiayao Li, Yixin Fei, Kewen Wu, Tiffany Ling, Xide Xia*, Pengchuan Zhang*, Graham Neubig*, Deva Ramanan* (*공동 제1저자 및 공동 교신저자)

CameraBench: 모든 비디오에서의 카메라 움직임 이해를 향하여 (arXiv 2025) [논문] [사이트]

Zhiqiu Lin*, Siyuan Cen*, Daniel Jiang, Jay Karhade, Hewei Wang, Chancharik Mitra, Tiffany Yu Tong Ling, Yuhan Huang, Sifan Liu, Mingyu Chen, Rushikesh Zawar, Xue Bai, Yilun Du, Chuang Gan, Deva Ramanan (*공동 제1저자)

  • [2025/09/03] 🚀
    VQAScore가 비디오 기반 VQAScore를 위해 20개 이상의 최첨단 비디오-언어 모델 (video-language models)(예: Qwen2.5-VL, LLaVA-Video 등)을 지원하며 대대적인 업그레이드를 거쳤습니다. 이와 함께 Kling 및 Runway와 같은 텍스트-비디오 (text-to-video) 모델의 카메라 움직임 이해도를 평가하기 위한 새로운 벤치마크인 CameraBench가 완전히 통합되었습니다. 이 이정표적인 업데이트를 이끌어준 협력자 Chancharik Mitra에게 큰 감사를 전합니다! - [2025/09/03] ✨
    VQAScore생성 모델을 위한 필수 평가 선택지가 되었습니다. GenAI-Bench는 이제 Google DeepMind(Imagen3 및 Imagen4), Bytedance Seed, NVIDIA 등에 의해 채택되었습니다. 한편, 당사의 오픈 소스 CLIP-FlanT5 모델은 Hugging Face에서 200만 회 이상 다운로드되었습니다! - [2024/08/13] 🔥
    VQAScore는 Google의 Imagen3 보고서에서 자동 평가를 위한 CLIPScore의 가장 강력한 대체제로 강조되었습니다! GenAI-Bench는 Imagen3의 우수한 프롬프트-이미지 정렬 (prompt-image alignment)을 보여주기 위한 핵심 벤치마크 중 하나로 선정되었습니다. 이 성과를 거둔 Google에 찬사를 보냅니다! [Paper] - [2024/07/01] 🔥
    VQAScore가 ECCV 2024에 채택되었습니다! - [2024/06/20] 🔥
    GenAI-Bench가 CVPR'24 SynData Workshop에서 Best Short Paper를 수상했습니다! [Workshop Site].

VQAScore는 구성적 텍스트 프롬프트 (compositional text prompts)에서 CLIPScore 및 PickScore와 같은 이전 지표들을 크게 능가하며, 인간의 피드백이나 ChatGPT 및 GPT-4Vision과 같은 독점 모델을 사용하는 기존 기술(예: HPSv2, TIFA, Davidsonian, VPEval, VIEScore)보다 훨씬 더 단순합니다.

모델 제품군 이름 (Model Family Name)이미지 (Image)비디오 (Video)모델 (Models)
CLIP-FlanT5✔️clip-flant5-xxl, clip-flant5-xl
...
모델 제품군 이름 (Model Family Name)이미지 (Image)비디오 (Video)모델 (Models)
------------
BLIP2-ITM✔️blip2-itm, blip2-itm-vitL, blip2-itm-coco
...
모델 제품군 이름 (Model Family Name)이미지 (Image)비디오 (Video)모델 (Models)
------------
모든 OpenCLIP 모델 (All OpenCLIP Models)✔️openai:ViT-B-32, openai:ViT-L-14, laion2b_s32b_b82k:ViT-L-14, datacomp_xl_s13b_b90k:ViT-B-16, webli:ViT-B-16-SigLIP, metaclip_400m:ViT-B-32, ... (200개 이상의 모델 사용 가능 - 모든 정확한 모델 이름을 확인하려면 t2v_metrics.list_all_clipscore_models()를 사용하세요)
BLIP2-ITC✔️blip2-itc, blip2-itc-vitL, blip2-itc-coco
HPSv2✔️hpsv2
PickScore✔️pickscore-v1
...

다음 명령어를 통해 패키지를 편집 가능 모드 (editable mode)로 설치하세요:

git clone https://github.com/linzhiqiu/t2v_metrics
cd t2v_metrics
conda create -n t2v python=3.10 -y
...

또는 표준 pip 설치를 통해 수행할 수 있습니다:

conda install ffmpeg -c conda-forge
pip install t2v-metrics
# Git 기반 종속성 설치
...

참고: 특정 모델은 전체 사용성을 위해 다른 모델의 요구 사항과 충돌할 수 있는 추가 요구 사항을 가질 수 있습니다. 이러한 드문 경우의 경우, 해당 requirements.txt 폴더에 있는 종속성을 설치해 주세요.

이제, 이미지-텍스트 정렬 (image-text alignment)을 위한 VQAScore를 계산하는 데 필요한 모든 것은 다음 Python 코드입니다 (점수가 높을수록 유사도가 높음을 나타냅니다):

import t2v_metrics
clip_flant5_score = t2v_metrics.VQAScore(model='clip-flant5-xxl') # 권장하는 스코어링 모델
### 단일 (이미지, 텍스트) 쌍의 경우
...

GPU 사용: 기본적으로 이 코드는 사용 중인 머신의 첫 번째 cuda 장치를 사용합니다. clip-flant5-xxlllava-v1.5-13b와 같은 가장 큰 VQAScore 모델의 경우 40GB GPU를 권장합니다. GPU 메모리가 제한적인 경우 clip-flant5-xlllava-v1.5-7b와 같은 더 작은 모델을 고려하십시오.

캐시 디렉토리 (Cache directory): 모든 모델 체크포인트 (model checkpoints)를 저장하는 캐시 폴더를 변경할 수 있습니다 (기본값은 ./hf_cache/ 입니다.)

t2v_metrics/constants.py에서 HF_CACHE_DIR을 업데이트하여 변경할 수 있습니다.

특정 모델을 사용하여 이미지를 생성하려면 다음을 실행하세요:

python -m genai_bench.generate --output_dir ./outputs/ --gen_model runwayml/stable-diffusion-v1-5

생성된 이미지는 ./outputs/<model>/에 저장됩니다. 여러분의 자체 모델을 사용하여 이미지를 생성하도록 이 스크립트를 수정할 수도 있습니다.

clip-flant5-xxl 기반의 VQAScore를 사용하여 모델을 평가할 수 있습니다:

python -m genai_bench.evaluate --model clip-flant5-xxl --output_dir ./outputs --gen_model runwayml/stable-diffusion-v1-5

또는 GPT-4o 기반의 VQAScore를 사용할 수 있습니다:

python -m genai_bench.evaluate --model gpt-4o --api_key INPUT_YOUR_KEY_HERE --output_dir ./outputs --gen_model runwayml/stable-diffusion-v1-5

DALLE-3 및 Midjourney v6와 같은 최첨단 (SOTA) 모델에 대한 비교 VQAScore 결과(clip-flant5-xxl 및 GPT-4o 기반)는 VQAScore 결과(VQAScore results)를 참조하십시오!

  • 더 많은 이미지-텍스트 쌍을 위한 배치 처리 (Batch processing)
  • 지원되는 모든 모델 확인
  • 질문 및 답변 템플릿 커스터마이징 (VQAScore용)
  • VQAScore 논문 결과 재현
  • GenAI-Bench 논문 결과 재현
  • VQAScore를 위한 GPT-4o 사용
  • 자체 점수 산정 지표 (scoring metric) 구현
  • CLIP-FlanT5를 사용한 텍스트 생성 (VQA)
  • 비디오-텍스트 정렬 점수 (Video-text alignment scores)

M개의 이미지 x N개의 텍스트로 구성된 대규모 배치를 사용하는 경우, batch_forward() 함수를 사용하여 속도를 높일 수 있습니다.

import t2v_metrics
clip_flant5_score = t2v_metrics.VQAScore(model='clip-flant5-xxl')
# 딕셔너리당 이미지와 텍스트의 수는 일치해야 합니다.
...

현재 CLIP-FlanT5, LLaVA-1.5, InstructBLIP을 비롯하여 Qwen2.5-VL, InternVL3, GPT-4o, Gemini-2.5-pro와 같은 최첨단 (SOTA) 비디오-언어 모델(video-language models)을 통한 VQAScore 실행을 지원합니다:

gpt4o_score = t2v_metrics.VQAScore(model='gpt-4o', api_key="YOUR_API_KEY") # OpenAI 키 사용
gemini25_score = t2v_metrics.VQAScore(model='gemini-2.5-pro', api_key="YOUR_API_KEY") # 이는 권장되는 방식인 Gemini API 키를 사용하는 것입니다. 만약 Vertex AI 프로젝트를 사용하고 싶다면, GitHub에 요청을 남겨주세요.
qwen25vl_score = t2v_metrics.VQAScore(model='qwen2.5-vl-7b')
...

다음 명령어를 실행하여 지원되는 모든 모델을 확인할 수 있습니다:

print("VQAScore models:")
t2v_metrics.list_all_vqascore_models()
print("ITMScore models:")
...

저희 논문의 부록(Appendix)에 명시된 바와 같이, 질문(question)과 답변(answer)은 최종 점수에 약간의 영향을 미칩니다. 저희는 재현성(reproducibility)을 위해 각 모델에 대해 간단한 기본 템플릿을 제공하며, 이를 변경하는 것을 권장하지 않습니다. 하지만 질문과 답변은 쉽게 수정될 수 있다는 점을 말씀드리고 싶습니다. 예를 들어, CLIP-FlanT5와 LLaVA-1.5는 다음과 같은 템플릿을 사용하며, 이는 t2v_metrics/models/vqascore_models/clip_t5_model.py에서 확인할 수 있습니다:

# {}는 캡션(caption)으로 대체됩니다
default_question_template = 'Does this figure show "{}"? Please answer yes or no.'
default_answer_template = 'Yes'

forward() 또는 batch_forward() 함수에 question_templateanswer_template 파라미터를 전달하여 템플릿을 사용자 정의할 수 있습니다:

# VQAScore를 위해 다른 질문 사용
scores = clip_flant5_score(images=images,
texts=texts,
...

또한 P(answer | image, question) 대신 P(caption | image) (VisualGPTScore)를 계산할 수도 있습니다:

scores = clip_flant5_score(images=images,
texts=texts,
question_template="", # 질문 없음
...

저희의 eval.py를 사용하면 10가지 이미지/비전/3D 정렬 벤치마크(예: Winoground/TIFA160/SeeTrue/StanfordT23D/T2VScore)를 쉽게 실행할 수 있습니다:

python eval.py --model clip-flant5-xxl # VQAScore용
python eval.py --model openai:ViT-L-14 # CLIPScore용
# 선택적으로 질문/답변 템플릿을 지정할 수 있습니다. 예시:
...

우리의 genai_image_eval.pygenai_video_eval.py를 통해 GenAI-Bench 결과를 재현할 수 있습니다. 추가로 genai_image_ranking.py를 통해 GenAI-Rank 결과를 재현할 수 있습니다:

# GenAI-Bench
python genai_image_eval.py --model clip-flant5-xxl
python genai_video_eval.py --model clip-flant5-xxl
...

우리는 새로운 SOTA (State-of-the-art) 성능을 달성하기 위해 GPT-4o를 사용하여 VQAScore를 구현했습니다. 예시는 gpt4_eval.py를 참조하십시오. 커맨드 라인(command line)에서의 사용법은 다음과 같습니다:

api_key = # 귀하의 OpenAI 키
score_func = t2v_metrics.get_score_model(model="gpt-4o", device="cuda", api_key=openai_key, top_logprobs=20) # 대부분의 (이미지, 텍스트) 샘플에 대해 top_logprobs=20이면 충분하다는 것을 확인했습니다. 오류가 발생할 경우 이 숫자를 늘리는 것을 고려하십시오 (API 비용은 증가하지 않습니다).

이제 video-CLIPScore (InternVideo2, Unmasked Teacher 등) 및 video-VQAScore (LLaVA-OneVision, Qwen2.5-VL 등)를 포함한 비디오-텍스트 정렬 (video-text alignment) 점수를 지원합니다.

단일 이미지 및 CLIP 스타일 모델의 경우, 비디오 프레임들이 연결(concatenate)됩니다. 그 외 모든 네이티브 비디오 모델(본 문서 작성 시점 기준으로는 Qwen2.5-VL을 권장합니다)의 경우, 비디오 프레임들이 모델로 직접 전달됩니다.

import t2v_metrics
### 단일 (비디오, 텍스트) 쌍의 경우:
qwen_score = t2v_metrics.VQAScore(model='qwen2.5-vl-7b')
...

우리의 모델 중 어느 것이라도 텍스트를 생성(캡셔닝 (captioning) 또는 VQA 태스크)하려면 아래 코드를 사용하십시오:

import t2v_metrics
clip_flant5_score = t2v_metrics.VQAScore(model='clip-flant5-xxl')
images = ["images/0.png", "images/0.png"] # 이미지 리스트
...

CLIP-FlanT5의 generate 메서드는 transformers 버전을 4.36.1로 다운그레이드해야 할 수도 있습니다:

pip install transformers==4.36.1

자신만의 채점 지표 (scoring metric)를 쉽게 구현할 수 있습니다. 예를 들어, 더 효과적이라고 판단되는 VQA 모델이 있다면 t2v_metrics/models/vqascore_models 디렉토리에 포함시킬 수 있습니다. 가이드가 필요하다면, 시작 지점으로 활용할 수 있는 LLaVA-1.5 및 InstructBLIP의 예시 구현을 참조하십시오.

Zhiqiu Lin, Jean de Nyandwi, Chancharik Mitra

다음 모델들을 위한 이미지 기반 CLIPScoreVQAScore를 구현했습니다:

CLIP-FlanT5, GPT-4o, LLaVA-1.5, InstructBLIP, OpenCLIP, HPSv2, PickScore.

Baiqi Li

GenAI-BenchGenAI-Rank 벤치마크를 구현했습니다.

Chancharik Mitra

다음 모델들을 위한 CameraBench 및 비디오 기반 VQAScore를 구현했습니다:

LLaVA-OneVision, Qwen2.5-VL, InternVideo2, InternVL2, InternVL3, InternLMXC2.5 등.

이 저장소(repository)가 귀하의 연구에 유용하다면, 다음 논문을 인용해 주세요:

@article{lin2024evaluating,
title = {Evaluating Text-to-Visual Generation with Image-to-Text Generation},
author = {Lin, Zhiqiu and Pathak, Deepak and Li, Baiqi and Li, Jiayao and Xia, Xide and Neubig, Graham and Zhang, Pengchuan and Ramanan, Deva},
...

이 저장소는 이미지 품질의 자동 평가를 위해 Richard Zhang이 만든 Perceptual Metric (LPIPS) 저장소에서 영감을 받았습니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub Trending Jupyter Notebook (weekly)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0