Aprendizagem pessoal com IA
e orientação prática
TRAE

Tutoriais de implementação local do OmniParser-v2.0 mágico de código aberto da Microsoft

Instalação do ambiente python

Estou aqui com uma versão instalada anteriormente: python 3.11.5, que não abordarei aqui, mas você pode encontrar tutoriais on-line se precisar.


Instalação do Anaconda

Estou aqui com uma versão instalada anteriormente: conda 23.7.4, que também não descreverei aqui, mas você pode encontrar tutoriais on-line se precisar deles.

Instalar o OmniParser

git clone https://github.com/microsoft/OmniParser.git
cd OmniParser

Criação de ambientes exclusivos

conda create -n "omni" python==3.11
conda activate omni

Execute o seguinte comando para baixar os pacotes de dependência necessários.

pip install -r requirements.txt

download microsoft/OmniParser-v2.0 O arquivo do modelo, mas não consigo acessar o site (https://huggingface.co), então escolhihttps://hf-mirror.com/.

Localizar microsoft/OmniParser-v2.0

Uma vez lá dentro, clique nas pastas icon_caption e icon_detect e faça download dos arquivos em cada uma delas.

Principalmente os seis documentos a seguir.

icon_detect/train_args.yaml
icon_detect/model.pt
icon_detect/model.yaml
icon_caption/config.json
icon_caption/generation_config.json
icon_caption/model.safetensors

Crie um novo diretório no diretório do projeto da seguinte forma

mkdir -p weights/icon_detect
mkdir -p weights/icon_caption_florence

O resultado final é o seguinte:

Faça o download dos arquivos da seção anterior e coloque-os nas pastas correspondentes.

Execute o comando python gradio_demo.py e, após uma breve espera, ocorre o seguinte erro.

[2025-02-25 20:11:26,669] [ WARNING] easyocr.py:80 - Neither CUDA nor MPS are available - defaulting to CPU. Note: This module is much faster with a GPU.
Traceback (most recent call last):
  File "D:DevelopmentToolsPythonLibsite-packagesurllib3connection.py", line 203, in _new_conn
    sock = connection.create_connection(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:DevelopmentToolsPythonLibsite-packagesurllib3utilconnection.py", line 85, in create_connection
    raise err
  File "D:DevelopmentToolsPythonLibsite-packagesurllib3utilconnection.py", line 73, in create_connection
    sock.connect(sa)
TimeoutError: timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "D:DevelopmentToolsPythonLibsite-packagesurllib3connectionpool.py", line 790, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "D:DevelopmentToolsPythonLibsite-packagesurllib3connectionpool.py", line 491, in _make_request
    raise new_e
  File "D:DevelopmentToolsPythonLibsite-packagesurllib3connectionpool.py", line 467, in _make_request
    self._validate_conn(conn)
  File "D:DevelopmentToolsPythonLibsite-packagesurllib3connectionpool.py", line 1096, in _validate_conn
    conn.connect()
  File "D:DevelopmentToolsPythonLibsite-packagesurllib3connection.py", line 611, in connect
    self.sock = sock = self._new_conn()
                       ^^^^^^^^^^^^^^^^
  File "D:DevelopmentToolsPythonLibsite-packagesurllib3connection.py", line 212, in _new_conn
    raise ConnectTimeoutError(
urllib3.exceptions.ConnectTimeoutError: (<urllib3.connection.HTTPSConnection object at 0x0000019B3B7505D0>, 'Connection to huggingface.co timed out. (connect timeout=10)')

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "D:DevelopmentToolsPythonLibsite-packagesrequestsadapters.py", line 486, in send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  File "D:DevelopmentToolsPythonLibsite-packagesurllib3connectionpool.py", line 844, in urlopen
    retries = retries.increment(
              ^^^^^^^^^^^^^^^^^^
  File "D:DevelopmentToolsPythonLibsite-packagesurllib3utilretry.py", line 515, in increment
    raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='huggingface.co', port=443): Max retries exceeded with url: /microsoft/Florence-2-base/resolve/main/config.json (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x0000019B3B7505D0>, 'Connection to huggingface.co timed out. (connect timeout=10)'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:DevelopmentToolsPythonLibsite-packageshuggingface_hubfile_download.py", line 1376, in _get_metadata_or_catch_error
    metadata = get_hf_file_metadata(
               ^^^^^^^^^^^^^^^^^^^^^
  File "D:DevelopmentToolsPythonLibsite-packageshuggingface_hubutils_validators.py", line 114, in _inner_fn
    return fn(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^
  File "D:DevelopmentToolsPythonLibsite-packageshuggingface_hubfile_download.py", line 1296, in get_hf_file_metadata
    r = _request_wrapper(
        ^^^^^^^^^^^^^^^^^
  File "D:DevelopmentToolsPythonLibsite-packageshuggingface_hubfile_download.py", line 280, in _request_wrapper
    response = _request_wrapper(
               ^^^^^^^^^^^^^^^^^
  File "D:DevelopmentToolsPythonLibsite-packageshuggingface_hubfile_download.py", line 303, in _request_wrapper
    response = get_session().request(method=method, url=url, **params)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:DevelopmentToolsPythonLibsite-packagesrequestssessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:DevelopmentToolsPythonLibsite-packagesrequestssessions.py", line 703, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:DevelopmentToolsPythonLibsite-packageshuggingface_hubutils_http.py", line 96, in send
    return super().send(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:DevelopmentToolsPythonLibsite-packagesrequestsadapters.py", line 507, in send
    raise ConnectTimeout(e, request=request)
requests.exceptions.ConnectTimeout: (MaxRetryError("HTTPSConnectionPool(host='huggingface.co', port=443): Max retries exceeded with url: /microsoft/Florence-2-base/resolve/main/config.json (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x0000019B3B7505D0>, 'Connection to huggingface.co timed out. (connect timeout=10)'))"), '(Request ID: 3ae795ae-e87f-45e3-8c1b-26c359494139)')

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "D:DevelopmentToolsPythonLibsite-packagestransformersutilshub.py", line 342, in cached_file
    resolved_file = hf_hub_download(
                    ^^^^^^^^^^^^^^^^
  File "D:DevelopmentToolsPythonLibsite-packageshuggingface_hubutils_validators.py", line 114, in _inner_fn
    return fn(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^
  File "D:DevelopmentToolsPythonLibsite-packageshuggingface_hubfile_download.py", line 862, in hf_hub_download
    return _hf_hub_download_to_cache_dir(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:DevelopmentToolsPythonLibsite-packageshuggingface_hubfile_download.py", line 969, in _hf_hub_download_to_cache_dir
    _raise_on_head_call_error(head_call_error, force_download, local_files_only)
  File "D:DevelopmentToolsPythonLibsite-packageshuggingface_hubfile_download.py", line 1489, in _raise_on_head_call_error
    raise LocalEntryNotFoundError(
huggingface_hub.errors.LocalEntryNotFoundError: An error happened while trying to locate the file on the Hub and we cannot find the requested files in the local cache. Please check your connection and try again or make sure your Internet connection is on.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "E:OmniParsergradio_demo.py", line 16, in <module>
    caption_model_processor = get_caption_model_processor(model_name="florence2", model_name_or_path="weights/icon_caption_florence")
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:OmniParserutilutils.py", line 63, in get_caption_model_processor
    processor = AutoProcessor.from_pretrained("microsoft/Florence-2-base", trust_remote_code=True)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:DevelopmentToolsPythonLibsite-packagestransformersmodelsautoprocessing_auto.py", line 305, in from_pretrained
    config = AutoConfig.from_pretrained(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:DevelopmentToolsPythonLibsite-packagestransformersmodelsautoconfiguration_auto.py", line 1075, in from_pretrained
    config_dict, unused_kwargs = PretrainedConfig.get_config_dict(pretrained_model_name_or_path, **kwargs)
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:DevelopmentToolsPythonLibsite-packagestransformersconfiguration_utils.py", line 594, in get_config_dict
    config_dict, kwargs = cls._get_config_dict(pretrained_model_name_or_path, **kwargs)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:DevelopmentToolsPythonLibsite-packagestransformersconfiguration_utils.py", line 653, in _get_config_dict
    resolved_config_file = cached_file(
                           ^^^^^^^^^^^^
  File "D:DevelopmentToolsPythonLibsite-packagestransformersutilshub.py", line 385, in cached_file
    raise EnvironmentError(
OSError: We couldn't connect to 'https://huggingface.co' to load this file, couldn't find it in the cached files and it looks like microsoft/Florence-2-base is not the path to a directory containing a file named config.json.
Checkout your internet connection or see how to run the library in offline mode at 'https://huggingface.co/docs/transformers/installation#offline-mode'.

Parece um monte de erros, mas na verdade são apenas https://huggingface.co O motivo da falta de acesso. Vamos alterar o arquivo constants.py no diretório https://huggingface.co Substituir porhttps://hf-mirror.com.

Por esse motivo, ainda inseguro, procurei tutoriais on-line e adicionei outra linha de configurações na parte superior.

Digite o comando python gradio_demo.py novamente e ele será executado com êxito, conforme mostrado abaixo:

Digite-o em seu navegador:http://127.0.0.1:7861Os resultados são mostrados abaixo:

Faça uma captura de tela da área de trabalho e peça que ele a analise:

Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Tutoriais de implementação local do OmniParser-v2.0 mágico de código aberto da Microsoft
pt_BRPortuguês do Brasil