-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathimg_prompt_gen.py
95 lines (81 loc) · 3.53 KB
/
img_prompt_gen.py
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
import os
def read_text(data_path):
label_map_path = f"{data_path}/label_map.txt"
with open(label_map_path, 'r') as file:
data_str = file.read()
file.close()
label_map = eval(data_str)
label_candidate = []
keys = sorted([int(key) if isinstance(key, str) else key for key in label_map.keys()])
all_str = all(isinstance(key, str) for key in label_map.keys())
label_candidate = [label_map[str(key)] if all_str else label_map[key] for key in keys]
return prompt_generate(data_path, label_candidate)
def prompt_generate(data_path, label_candidate):
if 'arid' in data_path.lower():
label_prompt = []
reformat = {"Drink": "Drinking",
"Jump": "Jumping",
"Pick": "Picking",
"Pour": "Pouring",
"Push": "Pushing",
"Run": "Running",
"Sit": "Sitting",
"Stand": "Standing",
"Turn": "Turning",
"Walk": "Walking",
"Wave": "Waving", }
for label in label_candidate:
label_prompt.append(f'Someone is {reformat[label]}.')
elif 'breakfast' in data_path.lower():
label_prompt = []
for label in label_candidate:
label_prompt.append(f'A video of making {label}.')
elif 'surgicalactions' in data_path.lower():
label_prompt = []
for label in label_candidate:
label_prompt.append(f'Performing {label} in gynecologic laparoscopy.'.replace('_', ' ').replace('-', ' '))
elif 'facefake' in data_path.lower():
label_prompt = []
for label in label_candidate:
if label == "video with fake face":
label_prompt.append(f'A video of a manipulated face.')
elif label == "origin video":
label_prompt.append(f'A video of a natural face.')
else:
raise NotImplementedError
elif 'caer' in data_path.lower():
label_prompt = []
for label in label_candidate:
label_prompt.append(f'Someone is {label.lower()}.') # "A person is showing sadness."
elif 'dover' in data_path.lower():
label_prompt = []
for label in label_candidate:
#label_prompt.append(f'A {label}.')
if 'low' in label.lower():
label_prompt.append(f'A video of low quality.')
elif 'high' in label.lower():
label_prompt.append(f'A video of high quality.')
elif 'mob' in data_path.lower():
label_prompt = []
for label in label_candidate:
if 'without' in label.lower():
label_prompt.append("Harmless content.")
elif 'violent' in label.lower():
label_prompt.append("Fast, repetitive or violent actions.")
elif "unpleasant" in label.lower():
label_prompt.append("Obscene or unpleasant cartoon content.")
elif 'animal_kingdom' in data_path.lower():
label_prompt = []
for label in label_candidate:
label_prompt.append(f"The animal is {label['Action']}.".rstrip('\n'))
else:
raise NotImplementedError
return label_prompt
if __name__ == '__main__':
ROOT = "/mnt/petrelfs/lixinhao/lxh_exp/data/video_eval"
datasets = ['animal_kingdom', 'breakfast', 'MOB',
'SurgicalActions160', 'CAER', 'DOVER',
'facefake', 'ARID']
for data in datasets:
print(os.path.join(ROOT, data))
print(read_text(os.path.join(ROOT, data)))