From 124d9f6fb6a75398e19e58ce3710838cdf51e173 Mon Sep 17 00:00:00 2001 From: "Thomas Dhome Casanova (from Dev Box)" Date: Wed, 29 Jan 2025 21:54:35 -0800 Subject: [PATCH] Clean up folder structure --- Dockerfile | 201 ---- demo/gradio/app.py | 29 +- .../{gui_agent => agent}/anthropic_agent.py | 0 .../{gui_agent => agent}/llm_utils/oai.py | 0 .../agent/llm_utils/omniparserclient.py | 44 + .../{omniparser_agent => agent}/vlm_agent.py | 76 +- demo/gradio/computer_use_demo/loop.py | 11 +- .../omniparser_agent/omniparser.py | 77 -- .../omniparser_agent/utils.py | 935 ------------------ demo/gradio/demo_image.jpg | Bin 230959 -> 0 bytes demo/gradio/demo_image_som.jpg | Bin 123201 -> 0 bytes demo/omniparserserver/omniparser.py | 33 + demo/omniparserserver/remote_request.py | 50 + demo/remote_request.py | 101 -- gradio_demo.py | 6 +- omniparser.py | 60 -- util/action_matching.py | 425 -------- util/action_type.py | 45 - utils.py => util/utils.py | 0 19 files changed, 141 insertions(+), 1952 deletions(-) delete mode 100644 Dockerfile rename demo/gradio/computer_use_demo/{gui_agent => agent}/anthropic_agent.py (100%) rename demo/gradio/computer_use_demo/{gui_agent => agent}/llm_utils/oai.py (100%) create mode 100644 demo/gradio/computer_use_demo/agent/llm_utils/omniparserclient.py rename demo/gradio/computer_use_demo/{omniparser_agent => agent}/vlm_agent.py (80%) delete mode 100644 demo/gradio/computer_use_demo/omniparser_agent/omniparser.py delete mode 100755 demo/gradio/computer_use_demo/omniparser_agent/utils.py delete mode 100644 demo/gradio/demo_image.jpg delete mode 100644 demo/gradio/demo_image_som.jpg create mode 100644 demo/omniparserserver/omniparser.py create mode 100644 demo/omniparserserver/remote_request.py delete mode 100644 demo/remote_request.py delete mode 100644 omniparser.py delete mode 100644 util/action_matching.py delete mode 100644 util/action_type.py rename utils.py => util/utils.py (100%) mode change 100755 => 100644 diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 5737680..0000000 --- a/Dockerfile +++ /dev/null @@ -1,201 +0,0 @@ -# Dockerfile for OmniParser with GPU support and OpenGL libraries -# -# This Dockerfile is intended to create an environment with NVIDIA CUDA -# support and the necessary dependencies to run the OmniParser project. -# The configuration is designed to support applications that rely on -# Python 3.12, OpenCV, Hugging Face transformers, and Gradio. Additionally, -# it includes steps to pull large files from Git LFS and a script to -# convert model weights from .safetensor to .pt format. The container -# runs a Gradio server by default, exposed on port 7861. -# -# Base image: nvidia/cuda:12.3.1-devel-ubuntu22.04 -# -# Key features: -# - System dependencies for OpenGL to support graphical libraries. -# - Miniconda for Python 3.12, allowing for environment management. -# - Git Large File Storage (LFS) setup for handling large model files. -# - Requirement file installation, including specific versions of -# OpenCV and Hugging Face Hub. -# - Entrypoint script execution with Gradio server configuration for -# external access. - -FROM nvidia/cuda:12.3.1-devel-ubuntu22.04 - -# Install system dependencies with explicit OpenGL libraries -RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \ - git \ - git-lfs \ - wget \ - libgl1 \ - libglib2.0-0 \ - libsm6 \ - libxext6 \ - libxrender1 \ - libglu1-mesa \ - libglib2.0-0 \ - libsm6 \ - libxrender1 \ - libxext6 \ - python3-opencv \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* \ - && git lfs install - -# Install Miniconda for Python 3.12 -RUN wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh && \ - bash miniconda.sh -b -p /opt/conda && \ - rm miniconda.sh -ENV PATH="/opt/conda/bin:$PATH" - -# Create and activate Conda environment with Python 3.12, and set it as the default -RUN conda create -n omni python=3.12 && \ - echo "source activate omni" > ~/.bashrc -ENV CONDA_DEFAULT_ENV=omni -ENV PATH="/opt/conda/envs/omni/bin:$PATH" - -# Set the working directory in the container -WORKDIR /usr/src/app - -# Copy project files and requirements -COPY . . -COPY requirements.txt /usr/src/app/requirements.txt - -# Initialize Git LFS and pull LFS files -RUN git lfs install && \ - git lfs pull - -# Install dependencies from requirements.txt with specific opencv-python-headless version -RUN . /opt/conda/etc/profile.d/conda.sh && conda activate omni && \ - pip uninstall -y opencv-python opencv-python-headless && \ - pip install --no-cache-dir opencv-python-headless==4.8.1.78 && \ - pip install -r requirements.txt && \ - pip install huggingface_hub - -# Run download.py to fetch model weights and convert safetensors to .pt format -# RUN . /opt/conda/etc/profile.d/conda.sh && conda activate omni && \ -# python download.py && \ -# echo "Contents of weights directory:" && \ -# ls -lR weights && \ -# python weights/convert_safetensor_to_pt.py - -# Expose the default Gradio port -EXPOSE 7861 - -# Configure Gradio to be accessible externally -ENV GRADIO_SERVER_NAME="0.0.0.0" - -# Copy and set permissions for entrypoint script -# COPY entrypoint.sh /usr/src/app/entrypoint.sh -# RUN chmod +x /usr/src/app/entrypoint.sh - -# To debug, keep the container running -# CMD ["tail", "-f", "/dev/null"] - -################################################################################################ -# virtual display related setup --> from anthropic-quickstarts/computer-use-demo/Dockerfile - -ENV DEBIAN_FRONTEND=noninteractive -ENV DEBIAN_PRIORITY=high - -RUN apt-get update && \ - apt-get -y upgrade && \ - apt-get -y install \ - # UI Requirements - xvfb \ - xterm \ - xdotool \ - scrot \ - imagemagick \ - sudo \ - mutter \ - x11vnc \ - # Python/pyenv reqs - build-essential \ - libssl-dev \ - zlib1g-dev \ - libbz2-dev \ - libreadline-dev \ - libsqlite3-dev \ - curl \ - git \ - libncursesw5-dev \ - xz-utils \ - tk-dev \ - libxml2-dev \ - libxmlsec1-dev \ - libffi-dev \ - liblzma-dev \ - # Network tools - net-tools \ - netcat \ - # PPA req - software-properties-common && \ - # Userland apps - sudo add-apt-repository ppa:mozillateam/ppa && \ - sudo apt-get install -y --no-install-recommends \ - libreoffice \ - firefox-esr \ - x11-apps \ - xpdf \ - gedit \ - xpaint \ - tint2 \ - galculator \ - pcmanfm \ - unzip && \ - apt-get clean - -# Install noVNC -RUN git clone --branch v1.5.0 https://github.com/novnc/noVNC.git /opt/noVNC && \ - git clone --branch v0.12.0 https://github.com/novnc/websockify /opt/noVNC/utils/websockify && \ - ln -s /opt/noVNC/vnc.html /opt/noVNC/index.html - -# setup user -ENV USERNAME=computeruse -ENV HOME=/home/$USERNAME -RUN useradd -m -s /bin/bash -d $HOME $USERNAME -RUN echo "${USERNAME} ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers -USER computeruse -WORKDIR $HOME - -# setup python -RUN git clone https://github.com/pyenv/pyenv.git ~/.pyenv && \ - cd ~/.pyenv && src/configure && make -C src && cd .. && \ - echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc && \ - echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc && \ - echo 'eval "$(pyenv init -)"' >> ~/.bashrc -ENV PYENV_ROOT="$HOME/.pyenv" -ENV PATH="$PYENV_ROOT/bin:$PATH" -ENV PYENV_VERSION_MAJOR=3 -ENV PYENV_VERSION_MINOR=11 -ENV PYENV_VERSION_PATCH=6 -ENV PYENV_VERSION=$PYENV_VERSION_MAJOR.$PYENV_VERSION_MINOR.$PYENV_VERSION_PATCH -RUN eval "$(pyenv init -)" && \ - pyenv install $PYENV_VERSION && \ - pyenv global $PYENV_VERSION && \ - pyenv rehash - -ENV PATH="$HOME/.pyenv/shims:$HOME/.pyenv/bin:$PATH" - -RUN python -m pip install --upgrade pip==23.1.2 setuptools==58.0.4 wheel==0.40.0 && \ - python -m pip config set global.disable-pip-version-check true - -# only reinstall if requirements.txt changes -# COPY --chown=$USERNAME:$USERNAME computer_use_demo/requirements.txt $HOME/computer_use_demo/requirements.txt -# RUN python -m pip install -r $HOME/computer_use_demo/requirements.txt - -# setup desktop env & app -# COPY --chown=$USERNAME:$USERNAME image/ $HOME -# COPY --chown=$USERNAME:$USERNAME computer_use_demo/ $HOME/computer_use_demo/ - -ARG DISPLAY_NUM=1 -ARG HEIGHT=768 -ARG WIDTH=1024 -ENV DISPLAY_NUM=$DISPLAY_NUM -ENV HEIGHT=$HEIGHT -ENV WIDTH=$WIDTH - -# Set the entrypoint -# ENTRYPOINT ["/usr/src/app/entrypoint.sh"] - -# docker build . -t omniparser-x-demo:local # manually build the docker image (optional) diff --git a/demo/gradio/app.py b/demo/gradio/app.py index d005c49..068d17c 100644 --- a/demo/gradio/app.py +++ b/demo/gradio/app.py @@ -3,21 +3,13 @@ Entrypoint for Gradio, see https://gradio.app/ python app.py --windows_host_url xxxx:8006/ --omniparser_host_url localhost:8000 """ -import platform -import asyncio -import base64 import os -import io -import json from datetime import datetime from enum import StrEnum from functools import partial from pathlib import Path -from typing import cast, Dict -from PIL import Image -import socket +from typing import cast import argparse - import gradio as gr from anthropic import APIResponse from anthropic.types import TextBlock @@ -27,7 +19,6 @@ from computer_use_demo.loop import ( APIProvider, sampling_loop_sync, ) - from computer_use_demo.tools import ToolResult CONFIG_DIR = Path("~/.anthropic").expanduser() @@ -43,7 +34,7 @@ Type a message and press submit to start OmniParser+X. Press the trash icon in t def parse_arguments(): parser = argparse.ArgumentParser(description="Gradio App") - parser.add_argument("--windows_host_url", type=str, default='GCRSANDBOX336.redmond.corp.microsoft.com:8006/') # http://gcrsandbox336.redmond.corp.microsoft.com/ + parser.add_argument("--windows_host_url", type=str, default='localhost:8006') parser.add_argument("--omniparser_host_url", type=str, default="localhost:8000") return parser.parse_args() args = parse_arguments() @@ -82,8 +73,6 @@ def setup_state(state): state["only_n_most_recent_images"] = 2 if 'chatbot_messages' not in state: state['chatbot_messages'] = [] - # if "omniparser_url" not in state: - # state["omniparser_url"] = "localhost:8000" async def main(state): """Render loop for Gradio""" @@ -225,7 +214,7 @@ def process_input(user_input, state): api_response_callback=partial(_api_response_callback, response_state=state["responses"]), api_key=state["api_key"], only_n_most_recent_images=state["only_n_most_recent_images"], - omniparser_url=omniparser_host_url #state["omniparser_url"] + omniparser_url=omniparser_host_url ): if loop_msg is None: yield state['chatbot_messages'] @@ -289,14 +278,6 @@ with gr.Blocks(theme=gr.themes.Default()) as demo: placeholder="Paste your API key here", interactive=True, ) - # with gr.Row(): - # omniparser_url = gr.Textbox( - # label="OmniParser Base URL", - # value="localhost:8000", - # placeholder="Enter OmniParser base URL (e.g. localhost:8000)", - # interactive=True - # ) - # hide_images = gr.Checkbox(label="Hide screenshots", value=False) with gr.Row(): with gr.Column(scale=8): @@ -373,9 +354,6 @@ with gr.Blocks(theme=gr.themes.Default()) as demo: state["api_key"] = api_key_value state[f'{state["provider"]}_api_key'] = api_key_value - # def update_omniparser_url(url_value, state): - # state["omniparser_url"] = url_value - def clear_chat(state): # Reset message-related state state["messages"] = [] @@ -388,7 +366,6 @@ with gr.Blocks(theme=gr.themes.Default()) as demo: only_n_images.change(fn=update_only_n_images, inputs=[only_n_images, state], outputs=None) provider.change(fn=update_provider, inputs=[provider, state], outputs=api_key) api_key.change(fn=update_api_key, inputs=[api_key, state], outputs=None) - # omniparser_url.change(fn=update_omniparser_url, inputs=[omniparser_url, state], outputs=None) chatbot.clear(fn=clear_chat, inputs=[state], outputs=[chatbot]) submit_button.click(process_input, [chat_input, state], chatbot) diff --git a/demo/gradio/computer_use_demo/gui_agent/anthropic_agent.py b/demo/gradio/computer_use_demo/agent/anthropic_agent.py similarity index 100% rename from demo/gradio/computer_use_demo/gui_agent/anthropic_agent.py rename to demo/gradio/computer_use_demo/agent/anthropic_agent.py diff --git a/demo/gradio/computer_use_demo/gui_agent/llm_utils/oai.py b/demo/gradio/computer_use_demo/agent/llm_utils/oai.py similarity index 100% rename from demo/gradio/computer_use_demo/gui_agent/llm_utils/oai.py rename to demo/gradio/computer_use_demo/agent/llm_utils/oai.py diff --git a/demo/gradio/computer_use_demo/agent/llm_utils/omniparserclient.py b/demo/gradio/computer_use_demo/agent/llm_utils/omniparserclient.py new file mode 100644 index 0000000..7b44069 --- /dev/null +++ b/demo/gradio/computer_use_demo/agent/llm_utils/omniparserclient.py @@ -0,0 +1,44 @@ +import requests +import base64 +from pathlib import Path +from computer_use_demo.tools.screen_capture import get_screenshot +from computer_use_demo.gui_agent.llm_utils.oai import encode_image + +OUTPUT_DIR = "./tmp/outputs" + +class OmniParserClient: + def __init__(self, + url: str) -> None: + self.url = url + + def __call__(self,): + screenshot, screenshot_path = get_screenshot() + screenshot_path = str(screenshot_path) + image_base64 = encode_image(screenshot_path) + response = requests.post(self.url, json={"base64_image": image_base64}) + response_json = response.json() + print('omniparser latency:', response_json['latency']) + + som_image_data = base64.b64decode(response_json['som_image_base64']) + screenshot_path_uuid = Path(screenshot_path).stem.replace("screenshot_", "") + som_screenshot_path = f"{OUTPUT_DIR}/screenshot_som_{screenshot_path_uuid}.png" + with open(som_screenshot_path, "wb") as f: + f.write(som_image_data) + + response_json['width'] = screenshot.size[0] + response_json['height'] = screenshot.size[1] + response_json['original_screenshot_base64'] = image_base64 + response_json['screenshot_uuid'] = screenshot_path_uuid + response_json = self.reformat_messages(response_json) + return response_json + + def reformat_messages(self, response_json: dict): + screen_info = "" + for idx, element in enumerate(response_json["parsed_content_list"]): + element['idx'] = idx + if element['type'] == 'text': + screen_info += f'ID: {idx}, Text: {element["content"]}\n' + elif element['type'] == 'icon': + screen_info += f'ID: {idx}, Icon: {element["content"]}\n' + response_json['screen_info'] = screen_info + return response_json \ No newline at end of file diff --git a/demo/gradio/computer_use_demo/omniparser_agent/vlm_agent.py b/demo/gradio/computer_use_demo/agent/vlm_agent.py similarity index 80% rename from demo/gradio/computer_use_demo/omniparser_agent/vlm_agent.py rename to demo/gradio/computer_use_demo/agent/vlm_agent.py index 35f57c9..0ce905a 100644 --- a/demo/gradio/computer_use_demo/omniparser_agent/vlm_agent.py +++ b/demo/gradio/computer_use_demo/agent/vlm_agent.py @@ -1,23 +1,16 @@ import json -import asyncio -import platform from collections.abc import Callable -from datetime import datetime -from enum import StrEnum -from typing import Any, cast, Dict, Callable +from typing import cast, Callable import uuid -import requests from PIL import Image, ImageDraw import base64 from io import BytesIO -from pathlib import Path -from anthropic import Anthropic, AnthropicBedrock, AnthropicVertex, APIResponse -from anthropic.types import TextBlock, ToolResultBlockParam +from anthropic import APIResponse +from anthropic.types import ToolResultBlockParam from anthropic.types.beta import BetaMessage, BetaTextBlock, BetaToolUseBlock, BetaMessageParam, BetaUsage -from computer_use_demo.tools.screen_capture import get_screenshot -from computer_use_demo.gui_agent.llm_utils.oai import run_oai_interleaved, encode_image +from computer_use_demo.gui_agent.llm_utils.oai import run_oai_interleaved from computer_use_demo.colorful_text import colorful_text_vlm import time import re @@ -33,67 +26,6 @@ def extract_data(input_string, data_type): # Return the first match if exists, trimming whitespace and ignoring potential closing backticks return matches[0][0].strip() if matches else input_string -class OmniParser: - def __init__(self, - url: str) -> None: - self.url = url - if not self.url: - config = { - 'som_model_path': '../weights/icon_detect_v1_5/model_v1_5.pt', - 'device': 'cpu', - 'caption_model_name': 'florence2', - 'caption_model_path': '../weights/icon_caption_florence', - 'BOX_TRESHOLD': 0.05 - } - from computer_use_demo.omniparser_agent.omniparser import Omniparser as Omniparser_class - self.omniparser = Omniparser_class(config=config) - - def __call__(self,): - screenshot, screenshot_path = get_screenshot() - screenshot_path = str(screenshot_path) - image_base64 = encode_image(screenshot_path) - if self.url: - response = requests.post(self.url, json={"base64_image": image_base64, 'prompt': 'omniparser process'}) - response_json = response.json() - else: - start = time.time() - dino_labled_img, parsed_content_list = self.omniparser.parse(image_base64) - latency = time.time() - start - response_json = { - 'som_image_base64': dino_labled_img, - 'parsed_content_list': parsed_content_list, - 'latency': latency - } - - som_image_data = base64.b64decode(response_json['som_image_base64']) - screenshot_path_uuid = Path(screenshot_path).stem.replace("screenshot_", "") - som_screenshot_path = f"{OUTPUT_DIR}/screenshot_som_{screenshot_path_uuid}.png" - with open(som_screenshot_path, "wb") as f: - f.write(som_image_data) - - response_json['width'] = screenshot.size[0] - response_json['height'] = screenshot.size[1] - response_json['original_screenshot_base64'] = image_base64 - response_json['screenshot_uuid'] = screenshot_path_uuid - # example response_json: {"som_image_base64": dino_labled_img, "parsed_content_list": parsed_content_list, "latency": 0.1} - print('omniparser latency:', response_json['latency']) - response_json = self.reformat_messages(response_json) - return response_json - - def reformat_messages(self, response_json: dict): - screen_info = "" - for idx, element in enumerate(response_json["parsed_content_list"]): - element['idx'] = idx - if element['type'] == 'text': - # screen_info += f'''

\n''' - screen_info += f'ID: {idx}, Text: {element["content"]}\n' - elif element['type'] == 'icon': - # screen_info += f'''{element['content']} \n''' - screen_info += f'ID: {idx}, Icon: {element["content"]}\n' - response_json['screen_info'] = screen_info - return response_json - - class VLMAgent: def __init__( self, diff --git a/demo/gradio/computer_use_demo/loop.py b/demo/gradio/computer_use_demo/loop.py index c400ec4..e702b10 100644 --- a/demo/gradio/computer_use_demo/loop.py +++ b/demo/gradio/computer_use_demo/loop.py @@ -15,9 +15,10 @@ from anthropic.types.beta import ( ) from computer_use_demo.tools import ToolResult -from computer_use_demo.gui_agent.anthropic_agent import AnthropicActor +from computer_use_demo.agent.llm_utils.omniparserclient import OmniParserClient +from computer_use_demo.agent.anthropic_agent import AnthropicActor +from computer_use_demo.agent.vlm_agent import VLMAgent from computer_use_demo.executor.anthropic_executor import AnthropicExecutor -from computer_use_demo.omniparser_agent.vlm_agent import OmniParser, VLMAgent BETA_FLAG = "computer-use-2024-10-22" @@ -52,7 +53,7 @@ def sampling_loop_sync( Synchronous agentic sampling loop for the assistant/tool interaction of computer use. """ print('in sampling_loop_sync, model:', model) - omniparser = OmniParser(url=f"http://{omniparser_url}/send_text/" if omniparser_url else None) + omniparser_client = OmniParserClient(url=f"http://{omniparser_url}/parse/") if model == "claude-3-5-sonnet-20241022": # Register Actor and Executor actor = AnthropicActor( @@ -94,7 +95,7 @@ def sampling_loop_sync( if model == "claude-3-5-sonnet-20241022": # Anthropic loop while True: - parsed_screen = omniparser() # parsed_screen: {"som_image_base64": dino_labled_img, "parsed_content_list": parsed_content_list, "screen_info"} + parsed_screen = omniparser_client() # parsed_screen: {"som_image_base64": dino_labled_img, "parsed_content_list": parsed_content_list, "screen_info"} import pdb; pdb.set_trace() screen_info_block = TextBlock(text='Below is the structured accessibility information of the current UI screen, which includes text and icons you can operate on, take these information into account when you are making the prediction for the next action. Note you will still need to take screenshot to get the image: \n' + parsed_screen['screen_info'], type='text') # # messages[-1]['content'].append(screen_info_block) @@ -112,7 +113,7 @@ def sampling_loop_sync( elif model == "omniparser + gpt-4o" or model == "omniparser + phi35v": while True: - parsed_screen = omniparser() + parsed_screen = omniparser_client() tools_use_needed, vlm_response_json = actor(messages=messages, parsed_screen=parsed_screen) for message, tool_result_content in executor(tools_use_needed, messages): diff --git a/demo/gradio/computer_use_demo/omniparser_agent/omniparser.py b/demo/gradio/computer_use_demo/omniparser_agent/omniparser.py deleted file mode 100644 index 81ca124..0000000 --- a/demo/gradio/computer_use_demo/omniparser_agent/omniparser.py +++ /dev/null @@ -1,77 +0,0 @@ -# uvicorn remote_request:app --host 0.0.0.0 --port 8000 --reload - -import sys -import os -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - -from computer_use_demo.omniparser_agent.utils import get_som_labeled_img, get_caption_model_processor, get_yolo_model, check_ocr_box -import torch -from PIL import Image -from typing import Dict, Tuple, List -import base64 -import io - - -# config = { -# 'som_model_path': '../weights/icon_detect_v1_5/model_v1_5.pt', -# 'device': 'cpu', -# 'caption_model_name': 'florence2', -# 'caption_model_path': '../weights/icon_caption_florence', -# 'BOX_TRESHOLD': 0.05 -# } - - -class Omniparser(object): - def __init__(self, config: Dict): - self.config = config - device = 'cuda' if torch.cuda.is_available() else 'cpu' - - self.som_model = get_yolo_model(model_path=config['som_model_path']) - self.caption_model_processor = get_caption_model_processor(model_name=config['caption_model_name'], model_name_or_path=config['caption_model_path'], device=device) - print('Omniparser initialized!!!') - - def parse(self, image_base64: str): - image_path = './demo_image.jpg' - with open(image_path, "wb") as fh: - fh.write(base64.b64decode(image_base64)) - print('Parsing image:', image_path) - - image = Image.open(image_path) - print('image size:', image.size) - - box_overlay_ratio = max(image.size) / 3200 - draw_bbox_config = { - 'text_scale': 0.8 * box_overlay_ratio, - 'text_thickness': max(int(2 * box_overlay_ratio), 1), - 'text_padding': max(int(3 * box_overlay_ratio), 1), - 'thickness': max(int(3 * box_overlay_ratio), 1), - } - BOX_TRESHOLD = self.config['BOX_TRESHOLD'] - - ocr_bbox_rslt, is_goal_filtered = check_ocr_box(image_path, display_img = False, output_bb_format='xyxy', goal_filtering=None, easyocr_args={'paragraph': False, 'text_threshold':0.8}, use_paddleocr=True) - text, ocr_bbox = ocr_bbox_rslt - dino_labled_img, label_coordinates, parsed_content_list = get_som_labeled_img(image_path, self.som_model, BOX_TRESHOLD = BOX_TRESHOLD, output_coord_in_ratio=True, ocr_bbox=ocr_bbox,draw_bbox_config=draw_bbox_config, caption_model_processor=self.caption_model_processor, ocr_text=text,use_local_semantics=True, iou_threshold=0.7, scale_img=False, batch_size=128) - - return dino_labled_img, parsed_content_list - - -# from fastapi import FastAPI -# from pydantic import BaseModel - -# app = FastAPI() - -# class Item(BaseModel): -# base64_image: str -# prompt: str - -# Omniparser = Omniparser(config) - -# @app.post("/send_text/") -# async def send_text(item: Item): -# print('start parsing...') -# import time -# start = time.time() -# dino_labled_img, parsed_content_list = Omniparser.parse(item.base64_image) -# latency = time.time() - start -# print('time:', latency) -# return {"som_image_base64": dino_labled_img, "parsed_content_list": parsed_content_list, 'latency': latency} \ No newline at end of file diff --git a/demo/gradio/computer_use_demo/omniparser_agent/utils.py b/demo/gradio/computer_use_demo/omniparser_agent/utils.py deleted file mode 100755 index 87c6f83..0000000 --- a/demo/gradio/computer_use_demo/omniparser_agent/utils.py +++ /dev/null @@ -1,935 +0,0 @@ -# from ultralytics import YOLO -import os -import io -import base64 -import time -from PIL import Image, ImageDraw, ImageFont -import json -import requests -# utility function -import os -from openai import AzureOpenAI - -import json -import sys -import os -import cv2 -import numpy as np -# %matplotlib inline -from matplotlib import pyplot as plt -import easyocr -from paddleocr import PaddleOCR -reader = easyocr.Reader(['en', 'ch_sim'], gpu=True) -paddle_ocr = PaddleOCR( - lang='en', # other lang also available - use_angle_cls=False, - use_gpu=False, # using cuda will conflict with pytorch in the same process - show_log=False, - max_batch_size=1024, - use_dilation=True, # improves accuracy - det_db_score_mode='slow', # improves accuracy - rec_batch_num=1024) -import time -import base64 - -import os -import ast -import torch -from typing import Tuple, List -from torchvision.ops import box_convert -import re -from torchvision.transforms import ToPILImage -import supervision as sv -import torchvision.transforms as T - - -def get_caption_model_processor(model_name, model_name_or_path="Salesforce/blip2-opt-2.7b", device=None): - if not device: - device = "cuda" if torch.cuda.is_available() else "cpu" - if model_name == "blip2": - from transformers import Blip2Processor, Blip2ForConditionalGeneration - processor = Blip2Processor.from_pretrained("Salesforce/blip2-opt-2.7b") - if device == 'cpu': - model = Blip2ForConditionalGeneration.from_pretrained( - model_name_or_path, device_map=None, torch_dtype=torch.float32 - ) - else: - model = Blip2ForConditionalGeneration.from_pretrained( - model_name_or_path, device_map=None, torch_dtype=torch.float16 - ).to(device) - elif model_name == "florence2": - from transformers import AutoProcessor, AutoModelForCausalLM - processor = AutoProcessor.from_pretrained("microsoft/Florence-2-base", trust_remote_code=True) - if device == 'cpu': - model = AutoModelForCausalLM.from_pretrained(model_name_or_path, torch_dtype=torch.float32, trust_remote_code=True) - else: - model = AutoModelForCausalLM.from_pretrained(model_name_or_path, torch_dtype=torch.float16, trust_remote_code=True).to(device) - return {'model': model.to(device), 'processor': processor} - - -def get_yolo_model(model_path): - from ultralytics import YOLO - # Load the model. - model = YOLO(model_path) - return model - - -@torch.inference_mode() -def get_parsed_content_icon(filtered_boxes, starting_idx, image_source, caption_model_processor, prompt=None, batch_size=None): - # Number of samples per batch, --> 256 roughly takes 23 GB of GPU memory for florence model - - to_pil = ToPILImage() - if starting_idx: - non_ocr_boxes = filtered_boxes[starting_idx:] - else: - non_ocr_boxes = filtered_boxes - croped_pil_image = [] - t0 = time.time() - for i, coord in enumerate(non_ocr_boxes): - try: - xmin, xmax = int(coord[0]*image_source.shape[1]), int(coord[2]*image_source.shape[1]) - ymin, ymax = int(coord[1]*image_source.shape[0]), int(coord[3]*image_source.shape[0]) - cropped_image = image_source[ymin:ymax, xmin:xmax, :] - # resize the image to 224x224 to avoid long overhead in clipimageprocessor # TODO - cropped_image = cv2.resize(cropped_image, (64, 64)) - croped_pil_image.append(to_pil(cropped_image)) - except: - continue - # print('time to prepare bbox:', time.time()-t0) - - model, processor = caption_model_processor['model'], caption_model_processor['processor'] - if not prompt: - if 'florence' in model.config.name_or_path: - prompt = "" - else: - prompt = "The image shows" - - generated_texts = [] - device = model.device - # batch_size = 64 - for i in range(0, len(croped_pil_image), batch_size): - start = time.time() - batch = croped_pil_image[i:i+batch_size] - t1 = time.time() - if model.device.type == 'cuda': - inputs = processor(images=batch, text=[prompt]*len(batch), return_tensors="pt", do_resize=False).to(device=device, dtype=torch.float16) - else: - inputs = processor(images=batch, text=[prompt]*len(batch), return_tensors="pt").to(device=device) - t2 = time.time() - # print('time to process image + tokenize text inputs:', t2-t1) - if 'florence' in model.config.name_or_path: - generated_ids = model.generate(input_ids=inputs["input_ids"],pixel_values=inputs["pixel_values"],max_new_tokens=20,num_beams=1, do_sample=False) - else: - generated_ids = model.generate(**inputs, max_length=100, num_beams=5, no_repeat_ngram_size=2, early_stopping=True, num_return_sequences=1) # temperature=0.01, do_sample=True, - t3 = time.time() - # print('time to generate:', t3-t2) - generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True) - generated_text = [gen.strip() for gen in generated_text] - generated_texts.extend(generated_text) - - return generated_texts - - - -def get_parsed_content_icon_phi3v(filtered_boxes, ocr_bbox, image_source, caption_model_processor): - to_pil = ToPILImage() - if ocr_bbox: - non_ocr_boxes = filtered_boxes[len(ocr_bbox):] - else: - non_ocr_boxes = filtered_boxes - croped_pil_image = [] - for i, coord in enumerate(non_ocr_boxes): - xmin, xmax = int(coord[0]*image_source.shape[1]), int(coord[2]*image_source.shape[1]) - ymin, ymax = int(coord[1]*image_source.shape[0]), int(coord[3]*image_source.shape[0]) - cropped_image = image_source[ymin:ymax, xmin:xmax, :] - croped_pil_image.append(to_pil(cropped_image)) - - model, processor = caption_model_processor['model'], caption_model_processor['processor'] - device = model.device - messages = [{"role": "user", "content": "<|image_1|>\ndescribe the icon in one sentence"}] - prompt = processor.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) - - batch_size = 5 # Number of samples per batch - generated_texts = [] - - for i in range(0, len(croped_pil_image), batch_size): - images = croped_pil_image[i:i+batch_size] - image_inputs = [processor.image_processor(x, return_tensors="pt") for x in images] - inputs ={'input_ids': [], 'attention_mask': [], 'pixel_values': [], 'image_sizes': []} - texts = [prompt] * len(images) - for i, txt in enumerate(texts): - input = processor._convert_images_texts_to_inputs(image_inputs[i], txt, return_tensors="pt") - inputs['input_ids'].append(input['input_ids']) - inputs['attention_mask'].append(input['attention_mask']) - inputs['pixel_values'].append(input['pixel_values']) - inputs['image_sizes'].append(input['image_sizes']) - max_len = max([x.shape[1] for x in inputs['input_ids']]) - for i, v in enumerate(inputs['input_ids']): - inputs['input_ids'][i] = torch.cat([processor.tokenizer.pad_token_id * torch.ones(1, max_len - v.shape[1], dtype=torch.long), v], dim=1) - inputs['attention_mask'][i] = torch.cat([torch.zeros(1, max_len - v.shape[1], dtype=torch.long), inputs['attention_mask'][i]], dim=1) - inputs_cat = {k: torch.concatenate(v).to(device) for k, v in inputs.items()} - - generation_args = { - "max_new_tokens": 25, - "temperature": 0.01, - "do_sample": False, - } - generate_ids = model.generate(**inputs_cat, eos_token_id=processor.tokenizer.eos_token_id, **generation_args) - # # remove input tokens - generate_ids = generate_ids[:, inputs_cat['input_ids'].shape[1]:] - response = processor.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False) - response = [res.strip('\n').strip() for res in response] - generated_texts.extend(response) - - return generated_texts - -def remove_overlap(boxes, iou_threshold, ocr_bbox=None): - assert ocr_bbox is None or isinstance(ocr_bbox, List) - - def box_area(box): - return (box[2] - box[0]) * (box[3] - box[1]) - - def intersection_area(box1, box2): - x1 = max(box1[0], box2[0]) - y1 = max(box1[1], box2[1]) - x2 = min(box1[2], box2[2]) - y2 = min(box1[3], box2[3]) - return max(0, x2 - x1) * max(0, y2 - y1) - - def IoU(box1, box2): - intersection = intersection_area(box1, box2) - union = box_area(box1) + box_area(box2) - intersection + 1e-6 - if box_area(box1) > 0 and box_area(box2) > 0: - ratio1 = intersection / box_area(box1) - ratio2 = intersection / box_area(box2) - else: - ratio1, ratio2 = 0, 0 - return max(intersection / union, ratio1, ratio2) - - def is_inside(box1, box2): - # return box1[0] >= box2[0] and box1[1] >= box2[1] and box1[2] <= box2[2] and box1[3] <= box2[3] - intersection = intersection_area(box1, box2) - ratio1 = intersection / box_area(box1) - return ratio1 > 0.95 - - boxes = boxes.tolist() - filtered_boxes = [] - if ocr_bbox: - filtered_boxes.extend(ocr_bbox) - # print('ocr_bbox!!!', ocr_bbox) - for i, box1 in enumerate(boxes): - # if not any(IoU(box1, box2) > iou_threshold and box_area(box1) > box_area(box2) for j, box2 in enumerate(boxes) if i != j): - is_valid_box = True - for j, box2 in enumerate(boxes): - # keep the smaller box - if i != j and IoU(box1, box2) > iou_threshold and box_area(box1) > box_area(box2): - is_valid_box = False - break - if is_valid_box: - # add the following 2 lines to include ocr bbox - if ocr_bbox: - # only add the box if it does not overlap with any ocr bbox - if not any(IoU(box1, box3) > iou_threshold and not is_inside(box1, box3) for k, box3 in enumerate(ocr_bbox)): - filtered_boxes.append(box1) - else: - filtered_boxes.append(box1) - return torch.tensor(filtered_boxes) - - -def remove_overlap_new(boxes, iou_threshold, ocr_bbox=None): - ''' - ocr_bbox format: [{'type': 'text', 'bbox':[x,y], 'interactivity':False, 'content':str }, ...] - boxes format: [{'type': 'icon', 'bbox':[x,y], 'interactivity':True, 'content':None }, ...] - - ''' - assert ocr_bbox is None or isinstance(ocr_bbox, List) - - def box_area(box): - return (box[2] - box[0]) * (box[3] - box[1]) - - def intersection_area(box1, box2): - x1 = max(box1[0], box2[0]) - y1 = max(box1[1], box2[1]) - x2 = min(box1[2], box2[2]) - y2 = min(box1[3], box2[3]) - return max(0, x2 - x1) * max(0, y2 - y1) - - def IoU(box1, box2): - intersection = intersection_area(box1, box2) - union = box_area(box1) + box_area(box2) - intersection + 1e-6 - if box_area(box1) > 0 and box_area(box2) > 0: - ratio1 = intersection / box_area(box1) - ratio2 = intersection / box_area(box2) - else: - ratio1, ratio2 = 0, 0 - return max(intersection / union, ratio1, ratio2) - - def is_inside(box1, box2): - # return box1[0] >= box2[0] and box1[1] >= box2[1] and box1[2] <= box2[2] and box1[3] <= box2[3] - intersection = intersection_area(box1, box2) - ratio1 = intersection / box_area(box1) - return ratio1 > 0.80 - - # boxes = boxes.tolist() - filtered_boxes = [] - if ocr_bbox: - filtered_boxes.extend(ocr_bbox) - # print('ocr_bbox!!!', ocr_bbox) - for i, box1_elem in enumerate(boxes): - box1 = box1_elem['bbox'] - is_valid_box = True - for j, box2_elem in enumerate(boxes): - # keep the smaller box - box2 = box2_elem['bbox'] - if i != j and IoU(box1, box2) > iou_threshold and box_area(box1) > box_area(box2): - is_valid_box = False - break - if is_valid_box: - # add the following 2 lines to include ocr bbox - if ocr_bbox: - # keep yolo boxes + prioritize ocr label - box_added = False - ocr_labels = '' - for box3_elem in ocr_bbox: - if not box_added: - box3 = box3_elem['bbox'] - if is_inside(box3, box1): # ocr inside icon - # box_added = True - # delete the box3_elem from ocr_bbox - try: - # filtered_boxes.append({'type': 'text', 'bbox': box1_elem['bbox'], 'interactivity': True, 'content': box3_elem['content'], 'source':'box_yolo_content_ocr'}) - # gather all ocr labels - ocr_labels += box3_elem['content'] + ' ' - filtered_boxes.remove(box3_elem) - # print('remove ocr bbox:', box3_elem) - except: - continue - # break - elif is_inside(box1, box3): # icon inside ocr, don't added this icon box, no need to check other ocr bbox bc no overlap between ocr bbox, icon can only be in one ocr box - box_added = True - # try: - # filtered_boxes.append({'type': 'icon', 'bbox': box1_elem['bbox'], 'interactivity': True, 'content': None}) - # filtered_boxes.remove(box3_elem) - # except: - # continue - break - else: - continue - if not box_added: - if ocr_labels: - filtered_boxes.append({'type': 'icon', 'bbox': box1_elem['bbox'], 'interactivity': True, 'content': ocr_labels, 'source':'box_yolo_content_ocr'}) - else: - filtered_boxes.append({'type': 'icon', 'bbox': box1_elem['bbox'], 'interactivity': True, 'content': None, 'source':'box_yolo_content_yolo'}) - - else: - filtered_boxes.append(box1) - return filtered_boxes # torch.tensor(filtered_boxes) - - -def load_image(image_path: str) -> Tuple[np.array, torch.Tensor]: - transform = T.Compose( - [ - T.RandomResize([800], max_size=1333), - T.ToTensor(), - T.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]), - ] - ) - image_source = Image.open(image_path).convert("RGB") - image = np.asarray(image_source) - image_transformed, _ = transform(image_source, None) - return image, image_transformed - - -def annotate(image_source: np.ndarray, boxes: torch.Tensor, logits: torch.Tensor, phrases: List[str], text_scale: float, - text_padding=5, text_thickness=2, thickness=3) -> np.ndarray: - """ - This function annotates an image with bounding boxes and labels. - - Parameters: - image_source (np.ndarray): The source image to be annotated. - boxes (torch.Tensor): A tensor containing bounding box coordinates. in cxcywh format, pixel scale - logits (torch.Tensor): A tensor containing confidence scores for each bounding box. - phrases (List[str]): A list of labels for each bounding box. - text_scale (float): The scale of the text to be displayed. 0.8 for mobile/web, 0.3 for desktop # 0.4 for mind2web - - Returns: - np.ndarray: The annotated image. - """ - h, w, _ = image_source.shape - boxes = boxes * torch.Tensor([w, h, w, h]) - xyxy = box_convert(boxes=boxes, in_fmt="cxcywh", out_fmt="xyxy").numpy() - xywh = box_convert(boxes=boxes, in_fmt="cxcywh", out_fmt="xywh").numpy() - detections = sv.Detections(xyxy=xyxy) - - labels = [f"{phrase}" for phrase in range(boxes.shape[0])] - - # from util.box_annotator import BoxAnnotator - box_annotator = BoxAnnotator(text_scale=text_scale, text_padding=text_padding,text_thickness=text_thickness,thickness=thickness) # 0.8 for mobile/web, 0.3 for desktop # 0.4 for mind2web - annotated_frame = image_source.copy() - annotated_frame = box_annotator.annotate(scene=annotated_frame, detections=detections, labels=labels, image_size=(w,h)) - - label_coordinates = {f"{phrase}": v for phrase, v in zip(phrases, xywh)} - return annotated_frame, label_coordinates - - -def predict(model, image, caption, box_threshold, text_threshold): - """ Use huggingface model to replace the original model - """ - model, processor = model['model'], model['processor'] - device = model.device - - inputs = processor(images=image, text=caption, return_tensors="pt").to(device) - with torch.no_grad(): - outputs = model(**inputs) - - results = processor.post_process_grounded_object_detection( - outputs, - inputs.input_ids, - box_threshold=box_threshold, # 0.4, - text_threshold=text_threshold, # 0.3, - target_sizes=[image.size[::-1]] - )[0] - boxes, logits, phrases = results["boxes"], results["scores"], results["labels"] - return boxes, logits, phrases - - -def predict_yolo(model, image_path, box_threshold, imgsz, scale_img, iou_threshold=0.7): - """ Use huggingface model to replace the original model - """ - # model = model['model'] - if scale_img: - result = model.predict( - source=image_path, - conf=box_threshold, - imgsz=imgsz, - iou=iou_threshold, # default 0.7 - ) - else: - result = model.predict( - source=image_path, - conf=box_threshold, - iou=iou_threshold, # default 0.7 - ) - boxes = result[0].boxes.xyxy#.tolist() # in pixel space - conf = result[0].boxes.conf - phrases = [str(i) for i in range(len(boxes))] - - return boxes, conf, phrases - - -def int_box_area(box, w, h): - x1, y1, x2, y2 = box - int_box = [int(x1*w), int(y1*h), int(x2*w), int(y2*h)] - area = (int_box[2] - int_box[0]) * (int_box[3] - int_box[1]) - return area - - -def get_som_labeled_img(img_path, model=None, BOX_TRESHOLD = 0.01, output_coord_in_ratio=False, ocr_bbox=None, text_scale=0.4, text_padding=5, draw_bbox_config=None, caption_model_processor=None, ocr_text=[], use_local_semantics=True, iou_threshold=0.9,prompt=None, scale_img=False, imgsz=None, batch_size=64): - """ ocr_bbox: list of xyxy format bbox - """ - image_source = Image.open(img_path).convert("RGB") - w, h = image_source.size - if not imgsz: - imgsz = (h, w) - # print('image size:', w, h) - xyxy, logits, phrases = predict_yolo(model=model, image_path=img_path, box_threshold=BOX_TRESHOLD, imgsz=imgsz, scale_img=scale_img, iou_threshold=0.1) - xyxy = xyxy / torch.Tensor([w, h, w, h]).to(xyxy.device) - image_source = np.asarray(image_source) - phrases = [str(i) for i in range(len(phrases))] - - - # annotate the image with labels - if ocr_bbox: - ocr_bbox = torch.tensor(ocr_bbox) / torch.Tensor([w, h, w, h]) - ocr_bbox=ocr_bbox.tolist() - else: - print('no ocr bbox!!!') - ocr_bbox = None - - ocr_bbox_elem = [{'type': 'text', 'bbox':box, 'interactivity':False, 'content':txt, 'source': 'box_ocr_content_ocr'} for box, txt in zip(ocr_bbox, ocr_text) if int_box_area(box, w, h) > 0] - xyxy_elem = [{'type': 'icon', 'bbox':box, 'interactivity':True, 'content':None} for box in xyxy.tolist() if int_box_area(box, w, h) > 0] - filtered_boxes = remove_overlap_new(boxes=xyxy_elem, iou_threshold=iou_threshold, ocr_bbox=ocr_bbox_elem) - - - # sort the filtered_boxes so that the one with 'content': None is at the end, and get the index of the first 'content': None - filtered_boxes_elem = sorted(filtered_boxes, key=lambda x: x['content'] is None) - # get the index of the first 'content': None - starting_idx = next((i for i, box in enumerate(filtered_boxes_elem) if box['content'] is None), -1) - filtered_boxes = torch.tensor([box['bbox'] for box in filtered_boxes_elem]) - print('len(filtered_boxes):', len(filtered_boxes), starting_idx) - - # get parsed icon local semantics - time1 = time.time() - if use_local_semantics: - caption_model = caption_model_processor['model'] - if 'phi3_v' in caption_model.config.model_type: - parsed_content_icon = get_parsed_content_icon_phi3v(filtered_boxes, ocr_bbox, image_source, caption_model_processor) - else: - parsed_content_icon = get_parsed_content_icon(filtered_boxes, starting_idx, image_source, caption_model_processor, prompt=prompt,batch_size=batch_size) - ocr_text = [f"Text Box ID {i}: {txt}" for i, txt in enumerate(ocr_text)] - icon_start = len(ocr_text) - parsed_content_icon_ls = [] - # fill the filtered_boxes_elem None content with parsed_content_icon in order - for i, box in enumerate(filtered_boxes_elem): - if box['content'] is None: - box['content'] = parsed_content_icon.pop(0) - for i, txt in enumerate(parsed_content_icon): - parsed_content_icon_ls.append(f"Icon Box ID {str(i+icon_start)}: {txt}") - parsed_content_merged = ocr_text + parsed_content_icon_ls - else: - ocr_text = [f"Text Box ID {i}: {txt}" for i, txt in enumerate(ocr_text)] - parsed_content_merged = ocr_text - print('time to get parsed content:', time.time()-time1) - - filtered_boxes = box_convert(boxes=filtered_boxes, in_fmt="xyxy", out_fmt="cxcywh") - - phrases = [i for i in range(len(filtered_boxes))] - - # draw boxes - if draw_bbox_config: - annotated_frame, label_coordinates = annotate(image_source=image_source, boxes=filtered_boxes, logits=logits, phrases=phrases, **draw_bbox_config) - else: - annotated_frame, label_coordinates = annotate(image_source=image_source, boxes=filtered_boxes, logits=logits, phrases=phrases, text_scale=text_scale, text_padding=text_padding) - - pil_img = Image.fromarray(annotated_frame) - buffered = io.BytesIO() - pil_img.save(buffered, format="PNG") - encoded_image = base64.b64encode(buffered.getvalue()).decode('ascii') - if output_coord_in_ratio: - # h, w, _ = image_source.shape - label_coordinates = {k: [v[0]/w, v[1]/h, v[2]/w, v[3]/h] for k, v in label_coordinates.items()} - assert w == annotated_frame.shape[1] and h == annotated_frame.shape[0] - - return encoded_image, label_coordinates, filtered_boxes_elem - - -def get_xywh(input): - x, y, w, h = input[0][0], input[0][1], input[2][0] - input[0][0], input[2][1] - input[0][1] - x, y, w, h = int(x), int(y), int(w), int(h) - return x, y, w, h - -def get_xyxy(input): - x, y, xp, yp = input[0][0], input[0][1], input[2][0], input[2][1] - x, y, xp, yp = int(x), int(y), int(xp), int(yp) - return x, y, xp, yp - -def get_xywh_yolo(input): - x, y, w, h = input[0], input[1], input[2] - input[0], input[3] - input[1] - x, y, w, h = int(x), int(y), int(w), int(h) - return x, y, w, h - - - -def check_ocr_box(image_path, display_img = True, output_bb_format='xywh', goal_filtering=None, easyocr_args=None, use_paddleocr=False): - if use_paddleocr: - if easyocr_args is None: - text_threshold = 0.5 - else: - text_threshold = easyocr_args['text_threshold'] - result = paddle_ocr.ocr(image_path, cls=False)[0] - # conf = [item[1] for item in result] - coord = [item[0] for item in result if item[1][1] > text_threshold] - text = [item[1][0] for item in result if item[1][1] > text_threshold] - else: # EasyOCR - if easyocr_args is None: - easyocr_args = {} - result = reader.readtext(image_path, **easyocr_args) - # print('goal filtering pred:', result[-5:]) - coord = [item[0] for item in result] - text = [item[1] for item in result] - # read the image using cv2 - if display_img: - opencv_img = cv2.imread(image_path) - opencv_img = cv2.cvtColor(opencv_img, cv2.COLOR_RGB2BGR) - bb = [] - for item in coord: - x, y, a, b = get_xywh(item) - # print(x, y, a, b) - bb.append((x, y, a, b)) - cv2.rectangle(opencv_img, (x, y), (x+a, y+b), (0, 255, 0), 2) - - # Display the image - plt.imshow(opencv_img) - else: - if output_bb_format == 'xywh': - bb = [get_xywh(item) for item in coord] - elif output_bb_format == 'xyxy': - bb = [get_xyxy(item) for item in coord] - # print('bounding box!!!', bb) - return (text, bb), goal_filtering - - - -from typing import List, Optional, Union, Tuple - -import cv2 -import numpy as np - -from supervision.detection.core import Detections -from supervision.draw.color import Color, ColorPalette - - -class BoxAnnotator: - """ - A class for drawing bounding boxes on an image using detections provided. - - Attributes: - color (Union[Color, ColorPalette]): The color to draw the bounding box, - can be a single color or a color palette - thickness (int): The thickness of the bounding box lines, default is 2 - text_color (Color): The color of the text on the bounding box, default is white - text_scale (float): The scale of the text on the bounding box, default is 0.5 - text_thickness (int): The thickness of the text on the bounding box, - default is 1 - text_padding (int): The padding around the text on the bounding box, - default is 5 - - """ - - def __init__( - self, - color: Union[Color, ColorPalette] = ColorPalette.DEFAULT, - thickness: int = 3, # 1 for seeclick 2 for mind2web and 3 for demo - text_color: Color = Color.BLACK, - text_scale: float = 0.5, # 0.8 for mobile/web, 0.3 for desktop # 0.4 for mind2web - text_thickness: int = 2, #1, # 2 for demo - text_padding: int = 10, - avoid_overlap: bool = True, - ): - self.color: Union[Color, ColorPalette] = color - self.thickness: int = thickness - self.text_color: Color = text_color - self.text_scale: float = text_scale - self.text_thickness: int = text_thickness - self.text_padding: int = text_padding - self.avoid_overlap: bool = avoid_overlap - - def annotate( - self, - scene: np.ndarray, - detections: Detections, - labels: Optional[List[str]] = None, - skip_label: bool = False, - image_size: Optional[Tuple[int, int]] = None, - ) -> np.ndarray: - """ - Draws bounding boxes on the frame using the detections provided. - - Args: - scene (np.ndarray): The image on which the bounding boxes will be drawn - detections (Detections): The detections for which the - bounding boxes will be drawn - labels (Optional[List[str]]): An optional list of labels - corresponding to each detection. If `labels` are not provided, - corresponding `class_id` will be used as label. - skip_label (bool): Is set to `True`, skips bounding box label annotation. - Returns: - np.ndarray: The image with the bounding boxes drawn on it - - Example: - ```python - import supervision as sv - - classes = ['person', ...] - image = ... - detections = sv.Detections(...) - - box_annotator = sv.BoxAnnotator() - labels = [ - f"{classes[class_id]} {confidence:0.2f}" - for _, _, confidence, class_id, _ in detections - ] - annotated_frame = box_annotator.annotate( - scene=image.copy(), - detections=detections, - labels=labels - ) - ``` - """ - font = cv2.FONT_HERSHEY_SIMPLEX - for i in range(len(detections)): - x1, y1, x2, y2 = detections.xyxy[i].astype(int) - class_id = ( - detections.class_id[i] if detections.class_id is not None else None - ) - idx = class_id if class_id is not None else i - color = ( - self.color.by_idx(idx) - if isinstance(self.color, ColorPalette) - else self.color - ) - cv2.rectangle( - img=scene, - pt1=(x1, y1), - pt2=(x2, y2), - color=color.as_bgr(), - thickness=self.thickness, - ) - if skip_label: - continue - - text = ( - f"{class_id}" - if (labels is None or len(detections) != len(labels)) - else labels[i] - ) - - text_width, text_height = cv2.getTextSize( - text=text, - fontFace=font, - fontScale=self.text_scale, - thickness=self.text_thickness, - )[0] - - if not self.avoid_overlap: - text_x = x1 + self.text_padding - text_y = y1 - self.text_padding - - text_background_x1 = x1 - text_background_y1 = y1 - 2 * self.text_padding - text_height - - text_background_x2 = x1 + 2 * self.text_padding + text_width - text_background_y2 = y1 - # text_x = x1 - self.text_padding - text_width - # text_y = y1 + self.text_padding + text_height - # text_background_x1 = x1 - 2 * self.text_padding - text_width - # text_background_y1 = y1 - # text_background_x2 = x1 - # text_background_y2 = y1 + 2 * self.text_padding + text_height - else: - text_x, text_y, text_background_x1, text_background_y1, text_background_x2, text_background_y2 = get_optimal_label_pos(self.text_padding, text_width, text_height, x1, y1, x2, y2, detections, image_size) - - cv2.rectangle( - img=scene, - pt1=(text_background_x1, text_background_y1), - pt2=(text_background_x2, text_background_y2), - color=color.as_bgr(), - thickness=cv2.FILLED, - ) - box_color = color.as_rgb() - luminance = 0.299 * box_color[0] + 0.587 * box_color[1] + 0.114 * box_color[2] - text_color = (0,0,0) if luminance > 160 else (255,255,255) - cv2.putText( - img=scene, - text=text, - org=(text_x, text_y), - fontFace=font, - fontScale=self.text_scale, - # color=self.text_color.as_rgb(), - color=text_color, - thickness=self.text_thickness, - lineType=cv2.LINE_AA, - ) - return scene - - -def box_area(box): - return (box[2] - box[0]) * (box[3] - box[1]) - -def intersection_area(box1, box2): - x1 = max(box1[0], box2[0]) - y1 = max(box1[1], box2[1]) - x2 = min(box1[2], box2[2]) - y2 = min(box1[3], box2[3]) - return max(0, x2 - x1) * max(0, y2 - y1) - -def IoU(box1, box2, return_max=True): - intersection = intersection_area(box1, box2) - union = box_area(box1) + box_area(box2) - intersection - if box_area(box1) > 0 and box_area(box2) > 0: - ratio1 = intersection / box_area(box1) - ratio2 = intersection / box_area(box2) - else: - ratio1, ratio2 = 0, 0 - if return_max: - return max(intersection / union, ratio1, ratio2) - else: - return intersection / union - - -def get_optimal_label_pos(text_padding, text_width, text_height, x1, y1, x2, y2, detections, image_size): - """ check overlap of text and background detection box, and get_optimal_label_pos, - pos: str, position of the text, must be one of 'top left', 'top right', 'outer left', 'outer right' TODO: if all are overlapping, return the last one, i.e. outer right - Threshold: default to 0.3 - """ - - def get_is_overlap(detections, text_background_x1, text_background_y1, text_background_x2, text_background_y2, image_size): - is_overlap = False - for i in range(len(detections)): - detection = detections.xyxy[i].astype(int) - if IoU([text_background_x1, text_background_y1, text_background_x2, text_background_y2], detection) > 0.3: - is_overlap = True - break - # check if the text is out of the image - if text_background_x1 < 0 or text_background_x2 > image_size[0] or text_background_y1 < 0 or text_background_y2 > image_size[1]: - is_overlap = True - return is_overlap - - # if pos == 'top left': - text_x = x1 + text_padding - text_y = y1 - text_padding - - text_background_x1 = x1 - text_background_y1 = y1 - 2 * text_padding - text_height - - text_background_x2 = x1 + 2 * text_padding + text_width - text_background_y2 = y1 - is_overlap = get_is_overlap(detections, text_background_x1, text_background_y1, text_background_x2, text_background_y2, image_size) - if not is_overlap: - return text_x, text_y, text_background_x1, text_background_y1, text_background_x2, text_background_y2 - - # elif pos == 'outer left': - text_x = x1 - text_padding - text_width - text_y = y1 + text_padding + text_height - - text_background_x1 = x1 - 2 * text_padding - text_width - text_background_y1 = y1 - - text_background_x2 = x1 - text_background_y2 = y1 + 2 * text_padding + text_height - is_overlap = get_is_overlap(detections, text_background_x1, text_background_y1, text_background_x2, text_background_y2, image_size) - if not is_overlap: - return text_x, text_y, text_background_x1, text_background_y1, text_background_x2, text_background_y2 - - - # elif pos == 'outer right': - text_x = x2 + text_padding - text_y = y1 + text_padding + text_height - - text_background_x1 = x2 - text_background_y1 = y1 - - text_background_x2 = x2 + 2 * text_padding + text_width - text_background_y2 = y1 + 2 * text_padding + text_height - - is_overlap = get_is_overlap(detections, text_background_x1, text_background_y1, text_background_x2, text_background_y2, image_size) - if not is_overlap: - return text_x, text_y, text_background_x1, text_background_y1, text_background_x2, text_background_y2 - - # elif pos == 'top right': - text_x = x2 - text_padding - text_width - text_y = y1 - text_padding - - text_background_x1 = x2 - 2 * text_padding - text_width - text_background_y1 = y1 - 2 * text_padding - text_height - - text_background_x2 = x2 - text_background_y2 = y1 - - is_overlap = get_is_overlap(detections, text_background_x1, text_background_y1, text_background_x2, text_background_y2, image_size) - if not is_overlap: - return text_x, text_y, text_background_x1, text_background_y1, text_background_x2, text_background_y2 - - return text_x, text_y, text_background_x1, text_background_y1, text_background_x2, text_background_y2 - - - -import re -def extract_dict_from_text(text): - # Define the regex pattern for a dictionary-like structure - pattern = r"\{\s*'(?P.*?)':\s*'(?P.*?)',\s*'(?P.*?)':\s*'(?P.*?)'\s*\}" - - # Search for the dictionary in the text - match = re.search(pattern, text) - - if match: - # Extract matched groups into a dictionary - return { - match.group('key1'): match.group('value1'), - match.group('key2'): match.group('value2'), - } - else: - raise ValueError("No valid dictionary structure found in the text.") - - -def get_phi3v_model_dict(): - from PIL import Image - import requests - from transformers import AutoModelForCausalLM - from transformers import AutoProcessor - - model_id = "microsoft/Phi-3.5-vision-instruct" - model = AutoModelForCausalLM.from_pretrained(model_id, device_map="cuda", trust_remote_code=True, torch_dtype="auto", _attn_implementation='flash_attention_2') - processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True) - print('phi3v model loaded!!!') - return {'model': model, 'processor': processor} - - -def call_phi3v(messages, image_base64, model_dict): - model, processor = model_dict['model'], model_dict['processor'] - device = model.device - prompt = processor.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) - if isinstance(image_base64, tuple): - image_base64, dino_labled_img = image_base64 - image = Image.open(io.BytesIO(base64.b64decode(image_base64))) - dino_labled_img = Image.open(io.BytesIO(base64.b64decode(dino_labled_img))) - inputs = processor(prompt, [image, dino_labled_img], return_tensors="pt").to(device) - else: - image = Image.open(io.BytesIO(base64.b64decode(image_base64))) - inputs = processor(prompt, [image], return_tensors="pt").to(device) - - generation_args = { - "max_new_tokens": 512, - "temperature": 0.01, - "do_sample": False, - } - - generate_ids = model.generate(**inputs, eos_token_id=processor.tokenizer.eos_token_id, **generation_args) - # remove input tokens - generate_ids = generate_ids[:, inputs['input_ids'].shape[1]:] - ans = processor.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0] - return ans - - -def get_pred_phi3v(message_text, image_base64, label_coordinates, id_key='Click ID', model_dict=None): - # messages = [ - # {"role": "system", "content": '''You are an expert at completing instructions on GUI screens. - # You will be presented with two images. The first is the original screenshot. The second is the same screenshot with some numeric tags. You will also be provided with some descriptions of the bbox, and your task is to choose the numeric bbox idx you want to click in order to complete the user instruction.'''}, - # ] - messages = [ - {"role": "system", "content": '''You are an expert at completing instructions on GUI screens. You will also be provided with some descriptions of the bbox, and your task is to choose the numeric bbox idx you want to click in order to complete the user instruction.'''}, - ] - messages = [] - if isinstance(image_base64, tuple): - messages.append({"role": "user", "content": '<|image_1|>\n' + '<|image_2|>\n' + message_text}) - else: - messages.append({"role": "user", "content": '<|image_1|>\n' + message_text}) - - response_text = call_phi3v(messages, image_base64, model_dict) - print(response_text) - - try: - response_text = ast.literal_eval(response_text) - - icon_id = response_text['Click BBox ID'] - bbox = label_coordinates[str(icon_id)] - click_point = [bbox[0] + bbox[2]/2, bbox[1] + bbox[3]/2] - except: - print('error parsing, use regex to parse!!!') - import pdb; pdb.set_trace() - response_text = extract_dict_from_text(response_text) - icon_id = response_text['Click BBox ID'] - bbox = label_coordinates[str(icon_id)] - click_point = [bbox[0] + bbox[2]/2, bbox[1] + bbox[3]/2] - return icon_id, bbox, click_point, response_text - - # try: - # match = re.search(r"```(.*?)```", ans, re.DOTALL) - # if match: - # result = match.group(1).strip() - # pred = result.split('In summary, the next action I will perform is:')[-1].strip().replace('\\', '') - # pred = ast.literal_eval(pred) - # else: - # pred = ans.split('In summary, the next action I will perform is:')[-1].strip().replace('\\', '') - # pred = ast.literal_eval(pred) - - # if pred[id_key]: - # icon_id = pred[id_key] - # bbox = label_coordinates[str(icon_id)] - # pred['click_point'] = [bbox[0] + bbox[2]/2, bbox[1] + bbox[3]/2] - # except: - # print('phi3v action regex extract fail!!!') - # pred = {'action_type': 'CLICK', 'click_point': [0, 0], 'value': 'None', 'is_completed': False} - - # step_pred_summary = None - # return pred, [True, ans, None, step_pred_summary] \ No newline at end of file diff --git a/demo/gradio/demo_image.jpg b/demo/gradio/demo_image.jpg deleted file mode 100644 index 06a901c7c747e155018674e51f232a74e6409972..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230959 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

Er;g-5IKy)N^DzN;FkpZ9Dcj4kN)RjzEx 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

H#<20tNXgDsW> zfw<@-=;+b6o@Z{}Hs4)@CTf(IaXU``CuhG6~5v)5rehF~@|8BbB-;;8SNY zQF5hnwE5m*w5tcph@uG~vn(^%<_g|NDX@Th;u}wJrC~J8#o#y>{@_$WgR}rDYTBuU z`bq@TFz@SriwNNXx7*EXD@`9Ab#E;Kbh$TZWFlLylGg5Ds0rsaHCPv9Cd?G&voLpV z?43!>b~$T*>J3j2_I6cLIvMOX-rAb@L8j+W#~)x>Ue%s>z5T5Nj(L*Z>cfZP@ywGo z=7aRIs@lc80dO>--_>{MP8fB4Ez<5o<8fqOqbbzAVGWI8R0!_|4yE?i!>%%z#H(-V zWGan6>>8Jh)&b!U6Mb@8zt{<4uH{Hbk!_4gC6F0b24Fhs=-Q5Kp1J4fa@{}9FZFQ! z$0PhcjPDntZRbz1xBCapMHP@Pd+d0_I2gZ^^U)>($YU-#b;N&wJx}d2dYI_-V1{Ni zI)Z3(%MgiV`u3xpZSF}hyLsC@h!`fGXT>E{7LU}YVzfZgDWPhoLT8Cnw$jh?bvc$vn{QNZl1M(`k>mU(yznqyxHQ3J9O-e3vXRpS0nPemg`pejkLv@ z^;MUL)iFxE?U@j#i_$L3F`Qu{N6yb_Ixk!)76#srILp>POon?{@!sQWqE-{H%2g>$ z(xemD990<94lm5<*0m6h%l_sH3^`u#fIa`ij4V9w#(5b1fb|i{RbF0KrS_;|)SzAH zVbJ^-dW!n*0J8mX4cSM~{Q>|&nS;KkheEuGEtg3Y;m1I&otjIR!r;tH|dO)

Uy>i?3bT(y-kJ79E4+iIl#gR_4`aoP4p} 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 diff --git a/demo/gradio/demo_image_som.jpg b/demo/gradio/demo_image_som.jpg deleted file mode 100644 index 2d580f3bfd0995fd18e038a85712e2ee02883404..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123201 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 z 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 diff --git a/demo/omniparserserver/omniparser.py b/demo/omniparserserver/omniparser.py new file mode 100644 index 0000000..424430f --- /dev/null +++ b/demo/omniparserserver/omniparser.py @@ -0,0 +1,33 @@ +from ...util.utils import get_som_labeled_img, get_caption_model_processor, get_yolo_model, check_ocr_box +import torch +from PIL import Image +import io +import base64 + +class Omniparser(object): + def __init__(self, config: Dict): + self.config = config + device = 'cuda' if torch.cuda.is_available() else 'cpu' + + self.som_model = get_yolo_model(model_path=config['som_model_path']) + self.caption_model_processor = get_caption_model_processor(model_name=config['caption_model_name'], model_name_or_path=config['caption_model_path'], device=device) + print('Omniparser initialized!!!') + + def parse(self, image_base64: str): + image_bytes = base64.b64decode(image_base64) + image = Image.open(io.BytesIO(image_bytes)) + print('image size:', image.size) + + box_overlay_ratio = max(image.size) / 3200 + draw_bbox_config = { + 'text_scale': 0.8 * box_overlay_ratio, + 'text_thickness': max(int(2 * box_overlay_ratio), 1), + 'text_padding': max(int(3 * box_overlay_ratio), 1), + 'thickness': max(int(3 * box_overlay_ratio), 1), + } + BOX_TRESHOLD = self.config['BOX_TRESHOLD'] + + (text, ocr_bbox), _ = check_ocr_box(image, display_img=False, output_bb_format='xyxy', easyocr_args={'text_threshold': 0.8}, use_paddleocr=False) + dino_labled_img, label_coordinates, parsed_content_list = get_som_labeled_img(image, self.som_model, BOX_TRESHOLD = BOX_TRESHOLD, output_coord_in_ratio=True, ocr_bbox=ocr_bbox,draw_bbox_config=draw_bbox_config, caption_model_processor=self.caption_model_processor, ocr_text=text,use_local_semantics=True, iou_threshold=0.7, scale_img=False, batch_size=128) + + return dino_labled_img, parsed_content_list \ No newline at end of file diff --git a/demo/omniparserserver/remote_request.py b/demo/omniparserserver/remote_request.py new file mode 100644 index 0000000..816940a --- /dev/null +++ b/demo/omniparserserver/remote_request.py @@ -0,0 +1,50 @@ +''' +python -m remote_request --som_model_path ../weights/icon_detect_v1_5/model_v1_5.pt --caption_model_name florence2 --caption_model_path ../weights/icon_caption_florence --device cuda --BOX_TRESHOLD 0.05 +''' + +import sys +import os +sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +import time +from fastapi import FastAPI +from pydantic import BaseModel +import argparse +import uvicorn +from omniparser import Omniparser + +def parse_arguments(): + parser = argparse.ArgumentParser(description='Omniparser API') + parser.add_argument('--som_model_path', type=str, default='../weights/icon_detect_v1_5/model_v1_5.pt', help='Path to the som model') + parser.add_argument('--caption_model_name', type=str, default='florence2', help='Name of the caption model') + parser.add_argument('--caption_model_path', type=str, default='../weights/icon_caption_florence', help='Path to the caption model') + parser.add_argument('--device', type=str, default='cpu', help='Device to run the model') + parser.add_argument('--BOX_TRESHOLD', type=float, default=0.05, help='Threshold for box detection') + parser.add_argument('--host', type=str, default='0.0.0.0', help='Host for the API') + parser.add_argument('--port', type=int, default=8000, help='Port for the API') + args = parser.parse_args() + return args + +args = parse_arguments() +config = vars(args) + +app = FastAPI() +omniparser = Omniparser(config) + +class ParseRequest(BaseModel): + base64_image: str + +@app.post("/parse/") +async def parse(parse_request: ParseRequest): + print('start parsing...') + start = time.time() + dino_labled_img, parsed_content_list = omniparser.parse(parse_request.base64_image) + latency = time.time() - start + print('time:', latency) + return {"som_image_base64": dino_labled_img, "parsed_content_list": parsed_content_list, 'latency': latency} + +@app.get("/probe/") +async def root(): + return {"message": "Omniparser API ready"} + +if __name__ == "__main__": + uvicorn.run("remote_request:app", host=args.host, port=args.port, reload=True) \ No newline at end of file diff --git a/demo/remote_request.py b/demo/remote_request.py deleted file mode 100644 index 414be81..0000000 --- a/demo/remote_request.py +++ /dev/null @@ -1,101 +0,0 @@ -''' -python -m remote_request --som_model_path ../weights/icon_detect_v1_5/model_v1_5.pt --caption_model_name florence2 --caption_model_path ../weights/icon_caption_florence --device cuda --BOX_TRESHOLD 0.05 -''' - -import sys -import os -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) -import time -from utils import get_som_labeled_img, get_caption_model_processor, get_yolo_model, check_ocr_box -import torch -from PIL import Image -from typing import Dict, Tuple, List -import base64 -import io -from fastapi import FastAPI -from pydantic import BaseModel -import argparse - -def parse_arguments(): - parser = argparse.ArgumentParser(description='Omniparser API') - parser.add_argument('--som_model_path', type=str, default='../weights/icon_detect_v1_5/model_v1_5.pt', help='Path to the som model') - parser.add_argument('--caption_model_name', type=str, default='florence2', help='Name of the caption model') - parser.add_argument('--caption_model_path', type=str, default='../weights/icon_caption_florence', help='Path to the caption model') - parser.add_argument('--device', type=str, default='cpu', help='Device to run the model') - parser.add_argument('--BOX_TRESHOLD', type=float, default=0.05, help='Threshold for box detection') - parser.add_argument('--host', type=str, default='0.0.0.0', help='Host for the API') - parser.add_argument('--port', type=int, default=8000, help='Port for the API') - args = parser.parse_args() - return args - -args = parse_arguments() -config = vars(args) - - -# config = { -# 'som_model_path': '../weights/icon_detect_v1_5/model_v1_5.pt', -# 'device': 'cpu', -# 'caption_model_name': 'florence2', -# 'caption_model_path': '../weights/icon_caption_florence', -# 'BOX_TRESHOLD': 0.05 -# } - - -class Omniparser(object): - def __init__(self, config: Dict): - self.config = config - device = 'cuda' if torch.cuda.is_available() else 'cpu' - - self.som_model = get_yolo_model(model_path=config['som_model_path']) - self.caption_model_processor = get_caption_model_processor(model_name=config['caption_model_name'], model_name_or_path=config['caption_model_path'], device=device) - print('Omniparser initialized!!!') - - def parse(self, image_base64: str): - # Convert base64 to image directly without saving to disk - image_bytes = base64.b64decode(image_base64) - image = Image.open(io.BytesIO(image_bytes)) - print('image size:', image.size) - - box_overlay_ratio = max(image.size) / 3200 - draw_bbox_config = { - 'text_scale': 0.8 * box_overlay_ratio, - 'text_thickness': max(int(2 * box_overlay_ratio), 1), - 'text_padding': max(int(3 * box_overlay_ratio), 1), - 'thickness': max(int(3 * box_overlay_ratio), 1), - } - BOX_TRESHOLD = config['BOX_TRESHOLD'] - - (text, ocr_bbox), _ = check_ocr_box(image, display_img=False, output_bb_format='xyxy', easyocr_args={'text_threshold': 0.8}, use_paddleocr=False) - dino_labled_img, label_coordinates, parsed_content_list = get_som_labeled_img(image, self.som_model, BOX_TRESHOLD = BOX_TRESHOLD, output_coord_in_ratio=True, ocr_bbox=ocr_bbox,draw_bbox_config=draw_bbox_config, caption_model_processor=self.caption_model_processor, ocr_text=text,use_local_semantics=True, iou_threshold=0.7, scale_img=False, batch_size=128) - - return dino_labled_img, parsed_content_list - - - - -app = FastAPI() - -class Item(BaseModel): - base64_image: str - prompt: str - -Omniparser = Omniparser(config) - -@app.post("/send_text/") -async def send_text(item: Item): - print('start parsing...') - - start = time.time() - dino_labled_img, parsed_content_list = Omniparser.parse(item.base64_image) - latency = time.time() - start - print('time:', latency) - return {"som_image_base64": dino_labled_img, "parsed_content_list": parsed_content_list, 'latency': latency} - -@app.get("/") -async def root(): - return {"message": "Omniparser API ready"} - - -if __name__ == "__main__": - import uvicorn - uvicorn.run("remote_request:app", host=args.host, port=args.port, reload=True) \ No newline at end of file diff --git a/gradio_demo.py b/gradio_demo.py index b09168b..15d46a7 100644 --- a/gradio_demo.py +++ b/gradio_demo.py @@ -8,7 +8,7 @@ import io import base64, os -from utils import check_ocr_box, get_yolo_model, get_caption_model_processor, get_som_labeled_img +from util.utils import check_ocr_box, get_yolo_model, get_caption_model_processor, get_som_labeled_img import torch from PIL import Image @@ -17,8 +17,6 @@ yolo_model = get_yolo_model(model_path='weights/icon_detect_v1_5/best.pt') caption_model_processor = get_caption_model_processor(model_name="florence2", model_name_or_path="weights/icon_caption_florence") # caption_model_processor = get_caption_model_processor(model_name="blip2", model_name_or_path="weights/icon_caption_blip2") - - MARKDOWN = """ # OmniParser for Pure Vision Based General GUI Agent 🔥

@@ -65,8 +63,6 @@ def process( # parsed_content_list = str(parsed_content_list) return image, str(parsed_content_list) - - with gr.Blocks() as demo: gr.Markdown(MARKDOWN) with gr.Row(): diff --git a/omniparser.py b/omniparser.py deleted file mode 100644 index 634ae9f..0000000 --- a/omniparser.py +++ /dev/null @@ -1,60 +0,0 @@ -from utils import get_som_labeled_img, check_ocr_box, get_yolo_model -import torch -from ultralytics import YOLO -from PIL import Image -from typing import Dict, Tuple, List -import io -import base64 - - -config = { - 'som_model_path': 'finetuned_icon_detect.pt', - 'device': 'cpu', - 'caption_model_path': 'Salesforce/blip2-opt-2.7b', - 'draw_bbox_config': { - 'text_scale': 0.8, - 'text_thickness': 2, - 'text_padding': 3, - 'thickness': 3, - }, - 'BOX_TRESHOLD': 0.05 -} - - -class Omniparser(object): - def __init__(self, config: Dict): - self.config = config - - self.som_model = get_yolo_model(model_path=config['som_model_path']) - # self.caption_model_processor = get_caption_model_processor(config['caption_model_path'], device=cofig['device']) - # self.caption_model_processor['model'].to(torch.float32) - - def parse(self, image_path: str): - print('Parsing image:', image_path) - ocr_bbox_rslt, is_goal_filtered = check_ocr_box(image_path, display_img = False, output_bb_format='xyxy', goal_filtering=None, easyocr_args={'paragraph': False, 'text_threshold':0.9}) - text, ocr_bbox = ocr_bbox_rslt - - draw_bbox_config = self.config['draw_bbox_config'] - BOX_TRESHOLD = self.config['BOX_TRESHOLD'] - dino_labled_img, label_coordinates, parsed_content_list = get_som_labeled_img(image_path, self.som_model, BOX_TRESHOLD = BOX_TRESHOLD, output_coord_in_ratio=False, ocr_bbox=ocr_bbox,draw_bbox_config=draw_bbox_config, caption_model_processor=None, ocr_text=text,use_local_semantics=False) - - image = Image.open(io.BytesIO(base64.b64decode(dino_labled_img))) - # formating output - return_list = [{'from': 'omniparser', 'shape': {'x':coord[0], 'y':coord[1], 'width':coord[2], 'height':coord[3]}, - 'text': parsed_content_list[i].split(': ')[1], 'type':'text'} for i, (k, coord) in enumerate(label_coordinates.items()) if i < len(parsed_content_list)] - return_list.extend( - [{'from': 'omniparser', 'shape': {'x':coord[0], 'y':coord[1], 'width':coord[2], 'height':coord[3]}, - 'text': 'None', 'type':'icon'} for i, (k, coord) in enumerate(label_coordinates.items()) if i >= len(parsed_content_list)] - ) - - return [image, return_list] - -parser = Omniparser(config) -image_path = 'examples/pc_1.png' - -# time the parser -import time -s = time.time() -image, parsed_content_list = parser.parse(image_path) -device = config['device'] -print(f'Time taken for Omniparser on {device}:', time.time() - s) diff --git a/util/action_matching.py b/util/action_matching.py deleted file mode 100644 index 51c5359..0000000 --- a/util/action_matching.py +++ /dev/null @@ -1,425 +0,0 @@ -''' -Adapted from https://github.com/google-research/google-research/tree/master/android_in_the_wild -''' - -import jax -import jax.numpy as jnp -import numpy as np - -# import action_type as action_type_lib -import enum - -class ActionType(enum.IntEnum): - # Placeholders for unused enum values - UNUSED_0 = 0 - UNUSED_1 = 1 - UNUSED_2 = 2 - UNUSED_8 = 8 - UNUSED_9 = 9 - - ########### Agent actions ########### - - # A type action that sends text to the emulator. Note that this simply sends - # text and does not perform any clicks for element focus or enter presses for - # submitting text. - TYPE = 3 - - # The dual point action used to represent all gestures. - DUAL_POINT = 4 - - # These actions differentiate pressing the home and back button from touches. - # They represent explicit presses of back and home performed using ADB. - PRESS_BACK = 5 - PRESS_HOME = 6 - - # An action representing that ADB command for hitting enter was performed. - PRESS_ENTER = 7 - - ########### Episode status actions ########### - - # An action used to indicate the desired task has been completed and resets - # the environment. This action should also be used in the case that the task - # has already been completed and there is nothing to do. - # e.g. The task is to turn on the Wi-Fi when it is already on - STATUS_TASK_COMPLETE = 10 - - # An action used to indicate that desired task is impossible to complete and - # resets the environment. This can be a result of many different things - # including UI changes, Android version differences, etc. - STATUS_TASK_IMPOSSIBLE = 11 - - -_TAP_DISTANCE_THRESHOLD = 0.14 # Fraction of the screen -ANNOTATION_WIDTH_AUGMENT_FRACTION = 1.4 -ANNOTATION_HEIGHT_AUGMENT_FRACTION = 1.4 - -# Interval determining if an action is a tap or a swipe. -_SWIPE_DISTANCE_THRESHOLD = 0.04 - - -def _yx_in_bounding_boxes( - yx, bounding_boxes -): - """Check if the (y,x) point is contained in each bounding box. - - Args: - yx: The (y, x) coordinate in pixels of the point. - bounding_boxes: A 2D int array of shape (num_bboxes, 4), where each row - represents a bounding box: (y_top_left, x_top_left, box_height, - box_width). Note: containment is inclusive of the bounding box edges. - - Returns: - is_inside: A 1D bool array where each element specifies if the point is - contained within the respective box. - """ - y, x = yx - - # `bounding_boxes` has shape (n_elements, 4); we extract each array along the - # last axis into shape (n_elements, 1), then squeeze unneeded dimension. - top, left, height, width = [ - jnp.squeeze(v, axis=-1) for v in jnp.split(bounding_boxes, 4, axis=-1) - ] - - # The y-axis is inverted for AndroidEnv, so bottom = top + height. - bottom, right = top + height, left + width - - return jnp.logical_and(y >= top, y <= bottom) & jnp.logical_and( - x >= left, x <= right) - - -def _resize_annotation_bounding_boxes( - annotation_positions, annotation_width_augment_fraction, - annotation_height_augment_fraction): - """Resize the bounding boxes by the given fractions. - - Args: - annotation_positions: Array of shape (N, 4), where each row represents the - (y, x, height, width) of the bounding boxes. - annotation_width_augment_fraction: The fraction to augment the box widths, - E.g., 1.4 == 240% total increase. - annotation_height_augment_fraction: Same as described for width, but for box - height. - - Returns: - Resized bounding box. - - """ - height_change = ( - annotation_height_augment_fraction * annotation_positions[:, 2]) - width_change = ( - annotation_width_augment_fraction * annotation_positions[:, 3]) - - # Limit bounding box positions to the screen. - resized_annotations = jnp.stack([ - jnp.maximum(0, annotation_positions[:, 0] - (height_change / 2)), - jnp.maximum(0, annotation_positions[:, 1] - (width_change / 2)), - jnp.minimum(1, annotation_positions[:, 2] + height_change), - jnp.minimum(1, annotation_positions[:, 3] + width_change), - ], - axis=1) - return resized_annotations - - -def is_tap_action(normalized_start_yx, - normalized_end_yx): - distance = jnp.linalg.norm( - jnp.array(normalized_start_yx) - jnp.array(normalized_end_yx)) - return distance <= _SWIPE_DISTANCE_THRESHOLD - - -def _is_non_dual_point_action(action_type): - return jnp.not_equal(action_type, ActionType.DUAL_POINT) - - -def _check_tap_actions_match( - tap_1_yx, - tap_2_yx, - annotation_positions, - matching_tap_distance_threshold_screen_percentage, - annotation_width_augment_fraction, - annotation_height_augment_fraction, -): - """Determines if two tap actions are the same.""" - resized_annotation_positions = _resize_annotation_bounding_boxes( - annotation_positions, - annotation_width_augment_fraction, - annotation_height_augment_fraction, - ) - - # Check if the ground truth tap action falls in an annotation's bounding box. - tap1_in_box = _yx_in_bounding_boxes(tap_1_yx, resized_annotation_positions) - tap2_in_box = _yx_in_bounding_boxes(tap_2_yx, resized_annotation_positions) - both_in_box = jnp.max(tap1_in_box & tap2_in_box) - - # If the ground-truth tap action falls outside any of the annotation - # bounding boxes or one of the actions is inside a bounding box and the other - # is outside bounding box or vice versa, compare the points using Euclidean - # distance. - within_threshold = ( - jnp.linalg.norm(jnp.array(tap_1_yx) - jnp.array(tap_2_yx)) - <= matching_tap_distance_threshold_screen_percentage - ) - return jnp.logical_or(both_in_box, within_threshold) - - -def _check_drag_actions_match( - drag_1_touch_yx, - drag_1_lift_yx, - drag_2_touch_yx, - drag_2_lift_yx, -): - """Determines if two drag actions are the same.""" - # Store drag deltas (the change in the y and x coordinates from touch to - # lift), magnitudes, and the index of the main axis, which is the axis with - # the greatest change in coordinate value (e.g. a drag starting at (0, 0) and - # ending at (0.3, 0.5) has a main axis index of 1). - drag_1_deltas = drag_1_lift_yx - drag_1_touch_yx - drag_1_magnitudes = jnp.abs(drag_1_deltas) - drag_1_main_axis = np.argmax(drag_1_magnitudes) - drag_2_deltas = drag_2_lift_yx - drag_2_touch_yx - drag_2_magnitudes = jnp.abs(drag_2_deltas) - drag_2_main_axis = np.argmax(drag_2_magnitudes) - - return jnp.equal(drag_1_main_axis, drag_2_main_axis) - - -def check_actions_match( - action_1_touch_yx, - action_1_lift_yx, - action_1_action_type, - action_2_touch_yx, - action_2_lift_yx, - action_2_action_type, - annotation_positions, - tap_distance_threshold = _TAP_DISTANCE_THRESHOLD, - annotation_width_augment_fraction = ANNOTATION_WIDTH_AUGMENT_FRACTION, - annotation_height_augment_fraction = ANNOTATION_HEIGHT_AUGMENT_FRACTION, -): - """Determines if two actions are considered to be the same. - - Two actions being "the same" is defined here as two actions that would result - in a similar screen state. - - Args: - action_1_touch_yx: The (y, x) coordinates of the first action's touch. - action_1_lift_yx: The (y, x) coordinates of the first action's lift. - action_1_action_type: The action type of the first action. - action_2_touch_yx: The (y, x) coordinates of the second action's touch. - action_2_lift_yx: The (y, x) coordinates of the second action's lift. - action_2_action_type: The action type of the second action. - annotation_positions: The positions of the UI annotations for the screen. It - is A 2D int array of shape (num_bboxes, 4), where each row represents a - bounding box: (y_top_left, x_top_left, box_height, box_width). Note that - containment is inclusive of the bounding box edges. - tap_distance_threshold: The threshold that determines if two taps result in - a matching screen state if they don't fall the same bounding boxes. - annotation_width_augment_fraction: The fraction to increase the width of the - bounding box by. - annotation_height_augment_fraction: The fraction to increase the height of - of the bounding box by. - - Returns: - A boolean representing whether the two given actions are the same or not. - """ - action_1_touch_yx = jnp.asarray(action_1_touch_yx) - action_1_lift_yx = jnp.asarray(action_1_lift_yx) - action_2_touch_yx = jnp.asarray(action_2_touch_yx) - action_2_lift_yx = jnp.asarray(action_2_lift_yx) - - # Checks if at least one of the actions is global (i.e. not DUAL_POINT), - # because if that is the case, only the actions' types need to be compared. - has_non_dual_point_action = jnp.logical_or( - _is_non_dual_point_action(action_1_action_type), - _is_non_dual_point_action(action_2_action_type), - ) - #print("non dual point: "+str(has_non_dual_point_action)) - - different_dual_point_types = jnp.logical_xor( - is_tap_action(action_1_touch_yx, action_1_lift_yx), - is_tap_action(action_2_touch_yx, action_2_lift_yx), - ) - #print("different dual type: "+str(different_dual_point_types)) - - is_tap = jnp.logical_and( - is_tap_action(action_1_touch_yx, action_1_lift_yx), - is_tap_action(action_2_touch_yx, action_2_lift_yx), - ) - #print("is tap: "+str(is_tap)) - - taps_match = _check_tap_actions_match( - action_1_touch_yx, - action_2_touch_yx, - annotation_positions, - tap_distance_threshold, - annotation_width_augment_fraction, - annotation_height_augment_fraction, - ) - #print("tap match: "+str(taps_match)) - - taps_match = jnp.logical_and(is_tap, taps_match) - #print("tap match: "+str(taps_match)) - - drags_match = _check_drag_actions_match( - action_1_touch_yx, action_1_lift_yx, action_2_touch_yx, action_2_lift_yx - ) - drags_match = jnp.where(is_tap, False, drags_match) - #print("drag match: "+str(drags_match)) - - return jnp.where( - has_non_dual_point_action, - jnp.equal(action_1_action_type, action_2_action_type), - jnp.where( - different_dual_point_types, - False, - jnp.logical_or(taps_match, drags_match), - ), - ) - - -def action_2_format(step_data): - # 把test数据集中的动作格式转换为计算matching score的格式 - action_type = step_data["action_type_id"] - - if action_type == 4: - if step_data["action_type_text"] == 'click': # 点击 - touch_point = step_data["touch"] - lift_point = step_data["lift"] - else: # 上下左右滑动 - if step_data["action_type_text"] == 'scroll down': - touch_point = [0.5, 0.8] - lift_point = [0.5, 0.2] - elif step_data["action_type_text"] == 'scroll up': - touch_point = [0.5, 0.2] - lift_point = [0.5, 0.8] - elif step_data["action_type_text"] == 'scroll left': - touch_point = [0.2, 0.5] - lift_point = [0.8, 0.5] - elif step_data["action_type_text"] == 'scroll right': - touch_point = [0.8, 0.5] - lift_point = [0.2, 0.5] - else: - touch_point = [-1.0, -1.0] - lift_point = [-1.0, -1.0] - - if action_type == 3: - typed_text = step_data["type_text"] - else: - typed_text = "" - - action = {"action_type": action_type, "touch_point": touch_point, "lift_point": lift_point, - "typed_text": typed_text} - - action["touch_point"] = [action["touch_point"][1], action["touch_point"][0]] - action["lift_point"] = [action["lift_point"][1], action["lift_point"][0]] - action["typed_text"] = action["typed_text"].lower() - - return action - - -def pred_2_format(step_data): - # 把模型输出的内容转换为计算action_matching的格式 - action_type = step_data["action_type"] - - if action_type == 4: # 点击 - action_type_new = 4 - touch_point = step_data["click_point"] - lift_point = step_data["click_point"] - typed_text = "" - elif action_type == 0: - action_type_new = 4 - touch_point = [0.5, 0.8] - lift_point = [0.5, 0.2] - typed_text = "" - elif action_type == 1: - action_type_new = 4 - touch_point = [0.5, 0.2] - lift_point = [0.5, 0.8] - typed_text = "" - elif action_type == 8: - action_type_new = 4 - touch_point = [0.2, 0.5] - lift_point = [0.8, 0.5] - typed_text = "" - elif action_type == 9: - action_type_new = 4 - touch_point = [0.8, 0.5] - lift_point = [0.2, 0.5] - typed_text = "" - else: - action_type_new = action_type - touch_point = [-1.0, -1.0] - lift_point = [-1.0, -1.0] - typed_text = "" - if action_type_new == 3: - typed_text = step_data["typed_text"] - - action = {"action_type": action_type_new, "touch_point": touch_point, "lift_point": lift_point, - "typed_text": typed_text} - - action["touch_point"] = [action["touch_point"][1], action["touch_point"][0]] - action["lift_point"] = [action["lift_point"][1], action["lift_point"][0]] - action["typed_text"] = action["typed_text"].lower() - - return action - - -def pred_2_format_simplified(step_data): - # 把模型输出的内容转换为计算action_matching的格式 - action_type = step_data["action_type"] - - if action_type == 'click' : # 点击 - action_type_new = 4 - touch_point = step_data["click_point"] - lift_point = step_data["click_point"] - typed_text = "" - elif action_type == 'scroll' and step_data["direction"] == 'down': - action_type_new = 4 - touch_point = [0.5, 0.8] - lift_point = [0.5, 0.2] - typed_text = "" - elif action_type == 'scroll' and step_data["direction"] == 'up': - action_type_new = 4 - touch_point = [0.5, 0.2] - lift_point = [0.5, 0.8] - typed_text = "" - elif action_type == 'scroll' and step_data["direction"] == 'left': - action_type_new = 4 - touch_point = [0.2, 0.5] - lift_point = [0.8, 0.5] - typed_text = "" - elif action_type == 'scroll' and step_data["direction"] == 'right': - action_type_new = 4 - touch_point = [0.8, 0.5] - lift_point = [0.2, 0.5] - typed_text = "" - elif action_type == 'type': - action_type_new = 3 - touch_point = [-1.0, -1.0] - lift_point = [-1.0, -1.0] - typed_text = step_data["text"] - elif action_type == 'navigate_back': - action_type_new = 5 - touch_point = [-1.0, -1.0] - lift_point = [-1.0, -1.0] - typed_text = "" - elif action_type == 'navigate_home': - action_type_new = 6 - touch_point = [-1.0, -1.0] - lift_point = [-1.0, -1.0] - typed_text = "" - else: - action_type_new = action_type - touch_point = [-1.0, -1.0] - lift_point = [-1.0, -1.0] - typed_text = "" - # if action_type_new == 'type': - # typed_text = step_data["text"] - - action = {"action_type": action_type_new, "touch_point": touch_point, "lift_point": lift_point, - "typed_text": typed_text} - - action["touch_point"] = [action["touch_point"][1], action["touch_point"][0]] - action["lift_point"] = [action["lift_point"][1], action["lift_point"][0]] - action["typed_text"] = action["typed_text"].lower() - - return action \ No newline at end of file diff --git a/util/action_type.py b/util/action_type.py deleted file mode 100644 index 2e2b06d..0000000 --- a/util/action_type.py +++ /dev/null @@ -1,45 +0,0 @@ -''' -Adapted from https://github.com/google-research/google-research/tree/master/android_in_the_wild -''' - -import enum - -class ActionType(enum.IntEnum): - - # Placeholders for unused enum values - UNUSED_0 = 0 - UNUSED_1 = 1 - UNUSED_2 = 2 - UNUSED_8 = 8 - UNUSED_9 = 9 - - ########### Agent actions ########### - - # A type action that sends text to the emulator. Note that this simply sends - # text and does not perform any clicks for element focus or enter presses for - # submitting text. - TYPE = 3 - - # The dual point action used to represent all gestures. - DUAL_POINT = 4 - - # These actions differentiate pressing the home and back button from touches. - # They represent explicit presses of back and home performed using ADB. - PRESS_BACK = 5 - PRESS_HOME = 6 - - # An action representing that ADB command for hitting enter was performed. - PRESS_ENTER = 7 - - ########### Episode status actions ########### - - # An action used to indicate the desired task has been completed and resets - # the environment. This action should also be used in the case that the task - # has already been completed and there is nothing to do. - # e.g. The task is to turn on the Wi-Fi when it is already on - STATUS_TASK_COMPLETE = 10 - - # An action used to indicate that desired task is impossible to complete and - # resets the environment. This can be a result of many different things - # including UI changes, Android version differences, etc. - STATUS_TASK_IMPOSSIBLE = 11 \ No newline at end of file diff --git a/utils.py b/util/utils.py old mode 100755 new mode 100644 similarity index 100% rename from utils.py rename to util/utils.py