Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
File size: 24,973 Bytes
6accf0d da4f6a0 6accf0d da4f6a0 6accf0d da4f6a0 ca06aae da4f6a0 |
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 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 |
import seaborn as sns
from PIL import Image, ImageDraw, ImageFont
import matplotlib.font_manager
import spacy
import re
import base64
import time
import re
from PIL import Image
import base64
import hashlib
import os
nlp = spacy.load("en_core_web_sm-3.6.0")
def process_image_without_resize(image_prompt):
image = Image.open(image_prompt)
print(f"height:{image.height}, width:{image.width}")
timestamp = time.time()
file_ext = os.path.splitext(image_prompt)[1]
filename = f"examples/{timestamp}{file_ext}"
filename_grounding = f"examples/{timestamp}_grounding{file_ext}"
image.save(filename)
print(f"temporal filename {filename}")
with open(filename, "rb") as image_file:
bytes = base64.b64encode(image_file.read())
encoded_img = str(bytes, encoding='utf-8')
image_hash = hashlib.sha256(bytes).hexdigest()
os.remove(filename)
return image, encoded_img, image_hash, filename_grounding
def is_chinese(text):
zh_pattern = re.compile(u'[\u4e00-\u9fa5]+')
return zh_pattern.search(text)
def draw_boxes(image, boxes, texts, output_fn='output.png'):
box_width = 5
color_palette = sns.color_palette("husl", len(boxes))
colors = [(int(r*255), int(g*255), int(b*255)) for r, g, b in color_palette]
width, height = image.size
absolute_boxes = [[(int(box[0] * width), int(box[1] * height), int(box[2] * width), int(box[3] * height)) for box in b] for b in boxes]
overlay = Image.new('RGBA', image.size, (255, 255, 255, 0))
draw = ImageDraw.Draw(overlay)
font_path = sorted(matplotlib.font_manager.findSystemFonts(fontpaths=None, fontext='ttf'))[0]
font = ImageFont.truetype(font_path, size=26)
for box, text, color in zip(absolute_boxes, texts, colors):
for b in box:
draw.rectangle(b, outline=color, width=box_width)
if not text:
continue
splited_text = text.split('\n')
num_lines = len(splited_text)
text_width, text_height = font.getbbox(splited_text[0])[-2:]
y_start = b[3] - text_height * num_lines - box_width
if b[2] - b[0] < 100 or b[3] - b[1] < 100:
y_start = b[3]
for i, line in enumerate(splited_text):
text_width, text_height = font.getbbox(line)[-2:]
x = b[0] + box_width
y = y_start + text_height * i
draw.rectangle([x, y, x+text_width, y+text_height], fill=(128, 128, 128, 160))
draw.text((x, y), line, font=font, fill=(255, 255, 255))
img_with_overlay = Image.alpha_composite(image.convert('RGBA'), overlay).convert('RGB')
img_with_overlay.save(output_fn)
def boxstr_to_boxes(box_str):
boxes = [[int(y)/1000 for y in x.split(',')] for x in box_str.split(';') if x.replace(',', '').isdigit()]
return boxes
def text_to_dict(text):
doc = nlp(text)
box_matches = list(re.finditer(r'\[\[([^\]]+)\]\]', text))
box_positions = [match.start() for match in box_matches]
noun_phrases = []
boxes = []
for match, box_position in zip(box_matches, box_positions):
nearest_np_start = max([0] + [chunk.start_char for chunk in doc.noun_chunks if chunk.end_char <= box_position])
noun_phrase = text[nearest_np_start:box_position].strip()
if noun_phrase and noun_phrase[-1] == '?':
noun_phrase = text[:box_position].strip()
box_string = match.group(1)
noun_phrases.append(noun_phrase)
boxes.append(boxstr_to_boxes(box_string))
pairs = []
for noun_phrase, box_string in zip(noun_phrases, boxes):
pairs.append((noun_phrase.lower(), box_string))
return dict(pairs)
def parse_response(img, response, output_fn='output.png'):
img = img.convert('RGB')
width, height = img.size
ratio = min(1920 / width, 1080 / height)
new_width = int(width * ratio)
new_height = int(height * ratio)
new_img = img.resize((new_width, new_height), Image.LANCZOS)
pattern = r"\[\[(.*?)\]\]"
positions = re.findall(pattern, response)
boxes = [[[int(y) for y in x.split(',')] for x in pos.split(';') if x.replace(',', '').isdigit()] for pos in positions]
dic = text_to_dict(response)
if not dic:
texts = []
boxes = []
else:
texts, boxes = zip(*dic.items())
draw_boxes(new_img, boxes, texts, output_fn=output_fn)
def postprocess_text(template, text):
quoted_text = f'"{text.strip()}"'
return template.replace("<TASK>", quoted_text).strip() if template != "" else text.strip()
# The templates is for CogAgent_Agent Template
templates_agent_cogagent = [
"do not use template",
"Can you advise me on how to <TASK>?",
"I'm looking for guidance on how to <TASK>.",
"What steps do I need to take to <TASK>?",
"Could you provide instructions for <TASK>?",
"I'm wondering what the process is for <TASK>.",
"How can I go about <TASK>?",
"I need assistance with planning to <TASK>.",
"Do you have any recommendations for <TASK>?",
"Please share some tips for <TASK>.",
"I'd like to know the best way to <TASK>.",
"What's the most effective way to <TASK>?",
"I'm seeking advice on accomplishing <TASK>.",
"Could you guide me through the steps to <TASK>?",
"I'm unsure how to start with <TASK>.",
"Is there a strategy for successfully <TASK>?",
"What's the proper procedure for <TASK>?",
"How should I prepare for <TASK>?",
"I'm not sure where to begin with <TASK>.",
"I need some insights on <TASK>.",
"Can you explain how to tackle <TASK>?",
"I'm interested in the process of <TASK>.",
"Could you enlighten me on <TASK>?",
"What are the recommended steps for <TASK>?",
"Is there a preferred method for <TASK>?",
"I'd appreciate your advice on <TASK>.",
"Can you shed light on <TASK>?",
"What would be the best approach to <TASK>?",
"How do I get started with <TASK>?",
"I'm inquiring about the procedure for <TASK>.",
"Could you share your expertise on <TASK>?",
"I'd like some guidance on <TASK>.",
"What's your recommendation for <TASK>?",
"I'm seeking your input on how to <TASK>.",
"Can you provide some insights into <TASK>?",
"How can I successfully accomplish <TASK>?",
"What steps are involved in <TASK>?",
"I'm curious about the best way to <TASK>.",
"Could you show me the ropes for <TASK>?",
"I need to know how to go about <TASK>.",
"What are the essential steps for <TASK>?",
"Is there a specific method for <TASK>?",
"I'd like to get some advice on <TASK>.",
"Can you explain the process of <TASK>?",
"I'm looking for guidance on how to approach <TASK>.",
"What's the proper way to handle <TASK>?",
"How should I proceed with <TASK>?",
"I'm interested in your expertise on <TASK>.",
"Could you walk me through the steps for <TASK>?",
"I'm not sure where to begin when it comes to <TASK>.",
"What should I prioritize when doing <TASK>?",
"How can I ensure success with <TASK>?",
"I'd appreciate some tips on <TASK>.",
"Can you provide a roadmap for <TASK>?",
"What's the recommended course of action for <TASK>?",
"I'm seeking your guidance on <TASK>.",
"Could you offer some suggestions for <TASK>?",
"I'd like to know the steps to take for <TASK>.",
"What's the most effective way to achieve <TASK>?",
"How can I make the most of <TASK>?",
"I'm wondering about the best approach to <TASK>.",
"Can you share your insights on <TASK>?",
"What steps should I follow to complete <TASK>?",
"I'm looking for advice on <TASK>.",
"What's the strategy for successfully completing <TASK>?",
"How should I prepare myself for <TASK>?",
"I'm not sure where to start with <TASK>.",
"What's the procedure for <TASK>?",
"Could you provide some guidance on <TASK>?",
"I'd like to get some tips on how to <TASK>.",
"Can you explain how to tackle <TASK> step by step?",
"I'm interested in understanding the process of <TASK>.",
"What are the key steps to <TASK>?",
"Is there a specific method that works for <TASK>?",
"I'd appreciate your advice on successfully completing <TASK>.",
"Can you shed light on the best way to <TASK>?",
"What would you recommend as the first step to <TASK>?",
"How do I initiate <TASK>?",
"I'm inquiring about the recommended steps for <TASK>.",
"Could you share some insights into <TASK>?",
"I'm seeking your expertise on <TASK>.",
"What's your recommended approach for <TASK>?",
"I'd like some guidance on where to start with <TASK>.",
"Can you provide recommendations for <TASK>?",
"What's your advice for someone looking to <TASK>?",
"I'm seeking your input on the process of <TASK>.",
"How can I achieve success with <TASK>?",
"What's the best way to navigate <TASK>?",
"I'm curious about the steps required for <TASK>.",
"Could you show me the proper way to <TASK>?",
"I need to know the necessary steps for <TASK>.",
"What's the most efficient method for <TASK>?",
"I'd appreciate your guidance on <TASK>.",
"Can you explain the steps involved in <TASK>?",
"I'm looking for recommendations on how to approach <TASK>.",
"What's the right way to handle <TASK>?",
"How should I manage <TASK>?",
"I'm interested in your insights on <TASK>.",
"Could you provide a step-by-step guide for <TASK>?",
"I'm not sure how to start when it comes to <TASK>.",
"What are the key factors to consider for <TASK>?",
"How can I ensure a successful outcome with <TASK>?",
"I'd like some tips and tricks for <TASK>.",
"Can you offer a roadmap for accomplishing <TASK>?",
"What's the preferred course of action for <TASK>?",
"I'm seeking your expert advice on <TASK>.",
"Could you suggest some best practices for <TASK>?",
"I'd like to understand the necessary steps to complete <TASK>.",
"What's the most effective strategy for <TASK>?",
]
template_grounding_cogvlm = [
"Where is <TASK>?",
"Where is <TASK> in the image?",
"Where is <TASK>? answer in [[x0,y0,x1,y1]] format.",
"Can you point out <TASK> in the image and provide the bounding boxes of its location?",
"Help me to locate <TASK> in and give me its bounding boxes, please.",
"In the given, could you find and tell me the bounding boxes of <TASK>?",
"Guide me to the location of <TASK> within the image by providing its bounding boxes.",
"I'd like to know the exact bounding boxes of <TASK> in the photo.",
"Would you kindly provide the bounding boxes of <TASK> located in the picture?",
"Can you find <TASK> in and give me the bounding boxes of where it is located?",
"I'm trying to locate <TASK> in. Can you determine its bounding boxes for me?",
"What are the bounding boxes of <TASK> in the image?",
"Can you disclose the position of <TASK> in the photograph by stating its bounding boxes?",
"In, could you let me know the location of <TASK> in the form of bounding boxes?",
"I need the bounding boxes of <TASK> in, can you please assist me with that?",
"Where in is <TASK> located? Provide me with its bounding boxes, please.",
"May I have the bounding boxes of <TASK>?",
"In the photograph, could you pinpoint the location of <TASK> and tell me its bounding boxes?",
"Can you please search and find <TASK> in, then let me know its bounding boxes?",
"Please, point out the position of <TASK> in the image by giving its bounding boxes.",
"What are the exact bounding boxes of <TASK> in the provided picture?",
"Detect the location of <TASK> in and share the bounding boxes with me, please.",
"In the picture, I'd like you to locate <TASK> and provide its coordinates.",
"Please indicate the location of <TASK> in the photo by giving bounding boxes.",
"Find <TASK> in and share its coordinates with me.",
"Could you please help me find the bounding boxes of <TASK> in the image?",
"I am looking for the position of <TASK> in. Can you provide its bounding boxes?",
"In the image, can you locate <TASK> and let me know its coordinates?",
"I'd appreciate if you could find and tell me the bounding boxes of <TASK>.",
"In, I need the bounding box bounding boxes of <TASK>.",
"Point me to the location of <TASK> in the picture by providing its bounding boxes.",
"Could you trace <TASK> in and tell me its bounding boxes?",
"Can you assist me in locating <TASK> in, and then provide its bounding boxes?",
"I'm curious, what are the bounding boxes of <TASK> in the photo?",
"Kindly share the bounding boxes of <TASK> located in the image.",
"I would like to find <TASK> in. Can you give me its bounding boxes?",
"Can you spot <TASK> in and disclose its bounding boxes to me?",
"Please, reveal the location of <TASK> in the provided photograph as coordinates.",
"Help me locate and determine the bounding boxes of <TASK>.",
"I request the bounding boxes of <TASK> in the image.",
"In the given, can you find <TASK> and tell me its bounding boxes?",
"I need to know the position of <TASK> in as bounding boxes.",
"Locate <TASK> in and provide its bounding boxes, please.",
"Assist me in finding <TASK> in the photo and provide the bounding box bounding boxes.",
"In, can you guide me to the location of <TASK> by providing bounding boxes?",
"I'd like the bounding boxes of <TASK> as it appears in the image.",
"What location does <TASK> hold in the picture? Inform me of its bounding boxes.",
"Identify the position of <TASK> in and share its bounding boxes.",
"I'd like to request the bounding boxes of <TASK> within the photo.",
"How can I locate <TASK> in the image? Please provide the bounding boxes.",
"I am interested in knowing the bounding boxes of <TASK> in the picture.",
"Assist me in locating the position of <TASK> in the photograph and its bounding box bounding boxes.",
"In the image, I need to find <TASK> and know its bounding boxes. Can you please help?"
"Can you give me a description of the region <TASK> in image?",
"In the provided image, would you mind describing the selected area <TASK>?",
"I need details about the area <TASK> located within image.",
"Could you please share some information on the region <TASK> in this photograph?",
"Describe what's happening within the coordinates <TASK> of the given image.",
"What can you tell me about the selected region <TASK> in the photo?",
"Please, can you help me understand what's inside the region <TASK> in image?",
"Give me a comprehensive description of the specified area <TASK> in the picture.",
"I'm curious about the area <TASK> in the following image. Can you describe it?",
"Please elaborate on the area with the coordinates <TASK> in the visual.",
"In the displayed image, help me understand the region defined by <TASK>.",
"Regarding the image, what's going on in the section <TASK>?",
"In the given photograph, can you explain the area with coordinates <TASK>?",
"Kindly describe what I should be seeing in the area <TASK> of image.",
"Within the input image, what can be found in the region defined by <TASK>?",
"Tell me what you see within the designated area <TASK> in the picture.",
"Please detail the contents of the chosen region <TASK> in the visual input.",
"What's inside the area <TASK> of the provided graphic?",
"I'd like some information about the specific region <TASK> in the image.",
"Help me understand the details within the area <TASK> in photograph.",
"Can you break down the region <TASK> in the image for me?",
"What is taking place within the specified area <TASK> in this capture?",
"Care to elaborate on the targeted area <TASK> in the visual illustration?",
"What insights can you provide about the area <TASK> in the selected picture?",
"What does the area <TASK> within the given visual contain?",
"Analyze and describe the region <TASK> in the included photo.",
"Please provide details for the area marked as <TASK> in this photographic.",
"For the image, can you assess and describe what's happening at <TASK>?",
"Fill me in about the selected portion <TASK> within the presented image.",
"In the image, elaborate on the details found within the section <TASK>.",
"Please interpret and describe the area <TASK> inside the given picture.",
"What information can you give me about the coordinates <TASK> in image?",
"Regarding the coordinates <TASK> in image, can you provide a description?",
"In the photo, can you delve into the details of the region <TASK>?",
"Please provide insights on the specified area <TASK> within the graphic.",
"Detail the chosen region <TASK> in the depicted scene.",
"Can you discuss the entities within the region <TASK> of image?",
"I'd appreciate a breakdown of the area <TASK> in the displayed image.",
"What's the story in the section <TASK> of the included visual?",
"Please enlighten me about the region <TASK> in the given photo.",
"Offer a thorough description of the area <TASK> within the illustration.",
"What can you share about the area <TASK> in the presented image?",
"Help me grasp the context of the region <TASK> within image.",
"Kindly give an overview of the section <TASK> in photo.",
"What details can you provide about the region <TASK> in the snapshot?",
"Can you divulge the contents of the area <TASK> within the given image?",
"In the submitted image, please give a synopsis of the area <TASK>.",
"In the image, please describe the bounding box <TASK>.",
"Please describe the region <TASK> in the picture.",
"Describe the bbox <TASK> in the provided photo.",
"What can you tell me about the area <TASK> within the image?",
"Could you give me a description of the rectangular region <TASK> found in?",
"In, what elements can be found within the coordinates <TASK>?",
"Please provide details for the area within the bounding box <TASK> in.",
"Can you generate a description for the selected region <TASK> in the image?",
"Kindly describe the objects or scenery in the bounding box <TASK> within.",
"What details can you provide for the rectangle defined by the coordinates <TASK> in?",
"In relation to the picture, please describe the content of the area marked by <TASK>.",
"I'd like to know more about the area <TASK> in the given image. Can you describe it?",
"Can you help me by describing the part of that lies within the bounding box <TASK>?",
"What's happening in the section of the photo enclosed by the coordinates <TASK>?",
"Describe the image content present in the specified rectangular area <TASK> of.",
"Please provide information about the area within the bounding box <TASK> in the picture.",
"Could you offer a description of the contents in the selected area <TASK> of the image?",
"I'm curious about the area <TASK> in. Can you provide a description of it?",
"What can be observed in the rectangular region <TASK> in the photograph?",
"Please explain what is contained in the portion of defined by the box <TASK>.",
"In the photograph, can you describe the objects or scenery enclosed by <TASK>?",
"Can you give a brief explanation of the specified area <TASK> in the image?",
"What does the area <TASK> look like in the context of the image?",
"Could you please describe the contents of the bounding box <TASK> in the given image?",
"I would like to know more about the rectangular region <TASK> within the picture. Can you describe it?",
"Please tell me about the area <TASK> in the image. What does it contain?",
"Help me understand what's happening in the selected bounding box <TASK> within.",
"Can you provide a description of the area <TASK> in the image?",
"What sort of things can be seen in the region <TASK> of the photo?",
"Describe what can be found within the bounds of <TASK> in the image.",
"In, can you paint a picture of the area enclosed by coordinates <TASK>?",
"Please provide a detailed account of the area covered by the bounding box <TASK> in.",
"Give me a vivid description of what's happening in the area <TASK> within the snapshot.",
"In the image, what do you observe within the rectangular box defined by the coordinates <TASK>?",
"Could you give me a breakdown of the content in the specified area <TASK> of the picture?",
"Please elucidate the area<TASK> of the image.",
"I'd appreciate it if you could describe the portion of that lies within the rectangle <TASK>.",
"Can you share some insights about the rectangular region <TASK> in the image?",
"Help me visualize the section of the photo enclosed by the bounding box <TASK>.",
"Would you kindly provide a description for the content within the rectangular area <TASK> of?",
"In, can you tell me more about the area specified by the bounding box <TASK>?",
"Please describe what can be seen in the rectangular region <TASK> of the image.",
"Can you analyze the content of the area <TASK> within the photograph?",
"In the provided image, please explain the content within the region <TASK>.",
"I'm interested in the selected rectangle <TASK> in. Can you tell me more about it?",
"Explain what can be found in the bounding box <TASK> in the context of the image.",
"Kindly share your observations about the rectangular region <TASK> within.",
"I'd like a thorough description of the area <TASK> in the image.",
"Could you please provide a description of the rectangular area <TASK> in?",
"Please describe the section of the picture defined by the bbox <TASK>.",
"Tell me more about the scenery or objects within the rectangular region <TASK> in.",
"Would you kindly describe the content of the area enclosed by <TASK> in the image?",
"Help me understand the objects or scenery within the bounding box <TASK> in the image.",
"I would like to know about the section of the image enclosed by the rectangle <TASK>. Can you describe it?",
"Describe the selected rectangular area <TASK> in the photo.",
"Tell me about the region <TASK> of the image.",
"I request a description of the area <TASK> in the picture.",
"Can you elaborate on the content of the bounding box <TASK> in?",
"Please share details about the rectangular region <TASK> within the image.",
"What can I find in the bbox <TASK> of the provided image?",
"In the image, could you provide a description for the coordinates <TASK>?",
"Could you tell me more about the area <TASK> in the snapshot?",
"Fill me in on the details of the rectangular box <TASK> within the image.",
"What's going on in the section of contained within the bounding box <TASK>?",
"I would like a description of the content within the bbox <TASK> in.",
"Please enlighten me about the area <TASK> in the photograph.",
"Can you give me a visual rundown of the area <TASK> in?",
"Describe the visual elements within the selected area <TASK> of the image.",
"Tell me what you see in the area <TASK> within the context of the image.",
"Explain the content within the rectangular region <TASK> of the image.",
"I'd like some information about the bounding box <TASK> in the photo.",
"What is happening within the rectangle defined by coordinates <TASK> in the image?",
"Please describe the content within the area <TASK> displayed in the image.",
"What can be seen in the bounding box <TASK> in the context of the provided image?",
"Share some details about the objects or environment within the bounding box <TASK> in.",
"Please describe the area <TASK> in the image for me.",
"Can you generate a description of the contents within the selected region <TASK> in?",
"What objects or scenery can be found in the area <TASK> in the image?",
"Please tell me more about the rectangular section <TASK> in the photo.",
"Could you describe the content of the bbox <TASK> in the image?",
"What does the selected region <TASK> in the image encompass?",
"I am interested in the region <TASK> of the image; please describe it.",
"Can you provide some context for the area <TASK> within the picture?",
"Please give me some details about the rectangle <TASK> in the image.",
"In the photo, what can you see within the region defined by the bounding box <TASK>?",
"I would like a detailed description of the portion of enclosed by the bbox <TASK>.",
"Please help me understand the content present within the rectangle <TASK> in.",
"Would you mind describing the rectangular area <TASK> in the provided image?"
]
|