Views
No views yet
1from datasets import load_dataset
2
3# load dataset, you can also use any images
4train_ds = load_dataset("zai-org/VisionRewardDB-Image", split='train[:40000]')
5test_ds = load_dataset("zai-org/VisionRewardDB-Image", split='train[40000:]')
6
7from transformers import pipeline
8pipe = pipeline("image-text-to-text", model="weathon/qwen_2_5_vision_reward")
9
10from transformers import pipeline
11import pandas as pd
12df = pd.read_csv("rules.csv")
13import pandas as pd
14import re
15from PIL import Image
16
17df.columns = df.columns.str.strip()
18df['Dimension'] = df['Dimension'].ffill()
19
20df['dim_key'] = df['Dimension'].apply(lambda x: re.search(r'\((.*?)\)', x).group(1) if re.search(r'\((.*?)\)', x) else x)
21
22guide = {
23 dim_key: {
24 int(row['Score']): str(row['Description']).strip()
25 for _, row in group.iterrows()
26 }
27 for dim_key, group in df.groupby('dim_key')
28}
29
30question = f"You need to rate the quality of an image, guideline: {guide}."
31
32import json
33def rate(image):
34 messages = [
35 {
36 "role": "system",
37 "content": [{"type": "text", "text": question}],
38 },
39 {
40 "role": "user",
41 "content": [
42 {
43 "type": "image",
44 "image": image.resize((512, 512)),
45 }
46 ],
47 }]
48 gen = pipe(text=messages, return_full_text=False)
49 return sum(json.loads(gen[0]["generated_text"].replace("'", '"')).values())
50
51rate(test_ds[3]["image"])
52
53sum(test_ds[3]["annotation"].values())