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

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/.

blank

Localizar microsoft/OmniParser-v2.0

blank

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

blank

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:

blank

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

blank

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 - Nem CUDA nem MPS estão disponíveis - padrão para CPU. Observação: este módulo é muito mais rápido com uma GPU.
Traceback (última chamada mais recente).
  Arquivo "D:DevelopmentToolsPythonLibsite-packagesurllib3connection.py", linha 203, em _new_conn
    sock = connection.create_connection(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  Arquivo "D:DevelopmentToolsPythonLibsite-packagesurllib3utilconnection.py", linha 85, em create_connection
    aumentar err
  Arquivo "D:DevelopmentToolsPythonLibsite-packagesurllib3utilconnection.py", linha 73, em create_connection
    sock.connect(sa)
TimeoutError: tempo limite esgotado
A exceção acima foi a causa direta da exceção a seguir.
Traceback (última chamada mais recente).
  Arquivo "D:DevelopmentToolsPythonLibsite-packagesurllib3connectionpool.py", linha 790, em urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  Arquivo "D:DevelopmentToolsPythonLibsite-packagesurllib3connectionpool.py", linha 491, em _make_request
    raise new_e
  Arquivo "D:DevelopmentToolsPythonLibsite-packagesurllib3connectionpool.py", linha 467, em _make_request
    self._validate_conn(conn)
  Arquivo "D:DevelopmentToolsPythonLibsite-packagesurllib3connectionpool.py", linha 1096, em _validate_conn
    conn.connect()
  Arquivo "D:DevelopmentToolsPythonLibsite-packagesurllib3connection.py", linha 611, em connect
    self.sock = sock = self._new_conn()
                       ^^^^^^^^^^^^^^^^
  Arquivo "D:DevelopmentToolsPythonLibsite-packagesurllib3connection.py", linha 212, em _new_conn
    raise ConnectTimeoutError(
urllib3.exceptions.ConnectTimeoutError: (, 'Connection to huggingface.co timed out. (connect timeout=10)')
A exceção acima foi a causa direta da exceção a seguir.
Traceback (última chamada mais recente).
  Arquivo "D:DevelopmentToolsPythonLibsite-packagesrequestsadapters.py", linha 486, em send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  Arquivo "D:DevelopmentToolsPythonLibsite-packagesurllib3connectionpool.py", linha 844, em urlopen
    retries = retries.increment(
              ^^^^^^^^^^^^^^^^^^
  Arquivo "D:DevelopmentToolsPythonLibsite-packagesurllib3utilretry.py", linha 515, em 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 (Causado por ConnectTimeoutError(, ' Connection to huggingface.co timed out. (connect timeout=10)'))
Durante o tratamento da exceção acima, ocorreu outra exceção.
Traceback (última chamada mais recente).
  Arquivo "D:DevelopmentToolsPythonLibsite-packageshuggingface_hubfile_download.py", linha 1376, em _get_metadata_or_catch_error
    metadata = get_hf_file_metadata(
               ^^^^^^^^^^^^^^^^^^^^^
  Arquivo "D:DevelopmentToolsPythonLibsite-packageshuggingface_hubutils_validators.py", linha 114, em _inner_fn
    return fn(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^
  Arquivo "D:DevelopmentToolsPythonLibsite-packageshuggingface_hubfile_download.py", linha 1296, em get_hf_file_metadata
    r = _request_wrapper(
        ^^^^^^^^^^^^^^^^^
  Arquivo "D:DevelopmentToolsPythonLibsite-packageshuggingface_hubfile_download.py", linha 280, em _request_wrapper
    response = _request_wrapper(
               ^^^^^^^^^^^^^^^^^
  Arquivo "D:DevelopmentToolsPythonLibsite-packageshuggingface_hubfile_download.py", linha 303, em _request_wrapper
    response = get_session().request(method=method, url=url, **params)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  Arquivo "D:DevelopmentToolsPythonLibsite-packagesrequestssessions.py", linha 589, em request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  Arquivo "D:DevelopmentToolsPythonLibsite-packagesrequestssessions.py", linha 703, em send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  Arquivo "D:DevelopmentToolsPythonLibsite-packageshuggingface_hubutils_http.py", linha 96, em send
    return super().send(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  Arquivo "D:DevelopmentToolsPythonLibsite-packagesrequestsadapters.py", linha 507, em 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 (Causado por ConnectTimeoutError(, 'Connection to huggingface.co timed out.(connect timeout=10)'))"), '(Request ID: 3ae795ae-e87f-45e3-8c1b-26c359494139) ')
A exceção acima foi a causa direta da exceção a seguir.
Traceback (última chamada mais recente).
  Arquivo "D:DevelopmentToolsPythonLibsite-packagestransformersutilshub.py", linha 342, em cached_file
    resolved_file = hf_hub_download(
                    ^^^^^^^^^^^^^^^^
  Arquivo "D:DevelopmentToolsPythonLibsite-packageshuggingface_hubutils_validators.py", linha 114, em _inner_fn
    return fn(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^
  Arquivo "D:DevelopmentToolsPythonLibsite-packageshuggingface_hubfile_download.py", linha 862, em hf_hub_download
    return _hf_hub_download_to_cache_dir(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  Arquivo "D:DevelopmentToolsPythonLibsite-packageshuggingface_hubfile_download.py", linha 969, em _hf_hub_download_to_cache_dir
    _raise_on_head_call_error(head_call_error, force_download, local_files_only)
  Arquivo "D:DevelopmentToolsPythonLibsite-packageshuggingface_hubfile_download.py", linha 1489, em _raise_on_head_call_error
    raise LocalEntryNotFoundError(
huggingface_hub.errors.LocalEntryNotFoundError: Ocorreu um erro ao tentar localizar o arquivo no Hub e não conseguimos encontrar os arquivos solicitados em Verifique sua conexão e tente novamente ou certifique-se de que sua conexão com a Internet esteja ativada.
A exceção acima foi a causa direta da exceção a seguir.
Traceback (última chamada mais recente).
  Arquivo "E:OmniParsergradio_demo.py", linha 16, em
    caption_model_processor = get_caption_model_processor(model_name="florence2", model_name_or_path="weights/icon_caption_florence")
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  Arquivo "E:OmniParserutilutils.py", linha 63, em get_caption_model_processor
    processor = AutoProcessor.from_pretrained("microsoft/Florence-2-base", trust_remote_code=True)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  Arquivo "D:DevelopmentToolsPythonLibsite-packagestransformersmodelsautoprocessing_auto.py", linha 305, em from_pretrained
    config = AutoConfig.from_pretrained(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  Arquivo "D:DevelopmentToolsPythonLibsite-packagestransformersmodelsautoconfiguration_auto.py", linha 1075, em from_pretrained
    config_dict, unused_kwargs = PretrainedConfig.get_config_dict(pretrained_model_name_or_path, **kwargs)
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  Arquivo "D:DevelopmentToolsPythonLibsite-packagestransformersconfiguration_utils.py", linha 594, em get_config_dict
    config_dict, kwargs = cls._get_config_dict(pretrained_model_name_or_path, **kwargs)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  Arquivo "D:DevelopmentToolsPythonLibsite-packagestransformersconfiguration_utils.py", linha 653, em _get_config_dict
    resolved_config_file = cached_file(
                           ^^^^^^^^^^^^
  Arquivo "D:DevelopmentToolsPythonLibsite-packagestransformersutilshub.py", linha 385, em cached_file
    raise EnvironmentError(
OSError: Não foi possível conectar-se a 'https://huggingface.co' para carregar esse arquivo, não foi possível encontrá-lo nos arquivos em cache e parece que microsoft/Florence-2 -base não é o caminho para um diretório que contém um arquivo chamado config.json.
Verifique sua conexão com a Internet ou veja como executar a biblioteca no modo off-line em '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.

blank

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

blank

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

blank

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

blank

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

blank

CDN1
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

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil