微軟開源神器 OmniParser-v2-0 本地部署教程
安裝 python 環境
我這裏是以前安裝好的版本:python 3.11.5,這裏不再介紹,有需要的可以在網上找教程。
安裝 Anaconda
我這裏是以前安裝好的版本:conda 23.7.4,這裏也不再介紹,有需要的可以在網上找教程。
安裝 OmniParser
git clone https://github.com/microsoft/OmniParser.git
cd OmniParser
創建專屬環境
conda create -n "omni" python==3.11
conda activate omni
執行下面命令,下載所需要的依賴包。
pip install -r requirements.txt
下載 microsoft/OmniParser-v2.0
模型文件,但是一直進不去網址(https://huggingface.co),所以我選擇了 https://hf-mirror.com/。
找到 microsoft/OmniParser-v2.0
進去之後點擊 icon_caption 和 icon_detect) 文件夾,分別下載裏面文件。
主要爲下面 6 個文件。
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
在項目目錄下新建目錄,具體如下
mkdir -p weights/icon_detect
mkdir -p weights/icon_caption_florence
完成效果如下:
將前面下載好的文件分別對應的文件夾。
運行 python gradio_demo.py 命令,稍等之後出現如下面報錯。
[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:\DevelopmentTools\Python\Lib\site-packages\urllib3\connection.py", line 203, in _new_conn
sock = connection.create_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\DevelopmentTools\Python\Lib\site-packages\urllib3\util\connection.py", line 85, in create_connection
raise err
File "D:\DevelopmentTools\Python\Lib\site-packages\urllib3\util\connection.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:\DevelopmentTools\Python\Lib\site-packages\urllib3\connectionpool.py", line 790, in urlopen
response = self._make_request(
^^^^^^^^^^^^^^^^^^^
File "D:\DevelopmentTools\Python\Lib\site-packages\urllib3\connectionpool.py", line 491, in _make_request
raise new_e
File "D:\DevelopmentTools\Python\Lib\site-packages\urllib3\connectionpool.py", line 467, in _make_request
self._validate_conn(conn)
File "D:\DevelopmentTools\Python\Lib\site-packages\urllib3\connectionpool.py", line 1096, in _validate_conn
conn.connect()
File "D:\DevelopmentTools\Python\Lib\site-packages\urllib3\connection.py", line 611, in connect
self.sock = sock = self._new_conn()
^^^^^^^^^^^^^^^^
File "D:\DevelopmentTools\Python\Lib\site-packages\urllib3\connection.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:\DevelopmentTools\Python\Lib\site-packages\requests\adapters.py", line 486, in send
resp = conn.urlopen(
^^^^^^^^^^^^^
File "D:\DevelopmentTools\Python\Lib\site-packages\urllib3\connectionpool.py", line 844, in urlopen
retries = retries.increment(
^^^^^^^^^^^^^^^^^^
File "D:\DevelopmentTools\Python\Lib\site-packages\urllib3\util\retry.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:\DevelopmentTools\Python\Lib\site-packages\huggingface_hub\file_download.py", line 1376, in _get_metadata_or_catch_error
metadata = get_hf_file_metadata(
^^^^^^^^^^^^^^^^^^^^^
File "D:\DevelopmentTools\Python\Lib\site-packages\huggingface_hub\utils\_validators.py", line 114, in _inner_fn
return fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File "D:\DevelopmentTools\Python\Lib\site-packages\huggingface_hub\file_download.py", line 1296, in get_hf_file_metadata
r = _request_wrapper(
^^^^^^^^^^^^^^^^^
File "D:\DevelopmentTools\Python\Lib\site-packages\huggingface_hub\file_download.py", line 280, in _request_wrapper
response = _request_wrapper(
^^^^^^^^^^^^^^^^^
File "D:\DevelopmentTools\Python\Lib\site-packages\huggingface_hub\file_download.py", line 303, in _request_wrapper
response = get_session().request(method=method, url=url, **params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\DevelopmentTools\Python\Lib\site-packages\requests\sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\DevelopmentTools\Python\Lib\site-packages\requests\sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\DevelopmentTools\Python\Lib\site-packages\huggingface_hub\utils\_http.py", line 96, in send
return super().send(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\DevelopmentTools\Python\Lib\site-packages\requests\adapters.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:\DevelopmentTools\Python\Lib\site-packages\transformers\utils\hub.py", line 342, in cached_file
resolved_file = hf_hub_download(
^^^^^^^^^^^^^^^^
File "D:\DevelopmentTools\Python\Lib\site-packages\huggingface_hub\utils\_validators.py", line 114, in _inner_fn
return fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File "D:\DevelopmentTools\Python\Lib\site-packages\huggingface_hub\file_download.py", line 862, in hf_hub_download
return _hf_hub_download_to_cache_dir(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\DevelopmentTools\Python\Lib\site-packages\huggingface_hub\file_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:\DevelopmentTools\Python\Lib\site-packages\huggingface_hub\file_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:\OmniParser\gradio_demo.py", line 16, in <module>
caption_model_processor = get_caption_model_processor(model_)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\OmniParser\util\utils.py", line 63, in get_caption_model_processor
processor = AutoProcessor.from_pretrained("microsoft/Florence-2-base", trust_remote_code=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\DevelopmentTools\Python\Lib\site-packages\transformers\models\auto\processing_auto.py", line 305, in from_pretrained
config = AutoConfig.from_pretrained(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\DevelopmentTools\Python\Lib\site-packages\transformers\models\auto\configuration_auto.py", line 1075, in from_pretrained
config_dict, unused_kwargs = PretrainedConfig.get_config_dict(pretrained_model_name_or_path, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\DevelopmentTools\Python\Lib\site-packages\transformers\configuration_utils.py", line 594, in get_config_dict
config_dict, kwargs = cls._get_config_dict(pretrained_model_name_or_path, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\DevelopmentTools\Python\Lib\site-packages\transformers\configuration_utils.py", line 653, in _get_config_dict
resolved_config_file = cached_file(
^^^^^^^^^^^^
File "D:\DevelopmentTools\Python\Lib\site-packages\transformers\utils\hub.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'.
看着錯誤很多,其實就是 https://huggingface.co 訪問不到的原因。我們將 constants.py 文件裏的 https://huggingface.co 替換爲 https://hf-mirror.com。
爲此,還是不放心,網上找了教程,又在最前面加了一行設置。
再次輸入 python gradio_demo.py 命令,運行成功如下圖所示:
在瀏覽器輸入:http://127.0.0.1:7861,顯示結果如下:
截一張桌面的圖,讓他進行分析:
毋庸置疑,好的事情總會到來。而當它來晚時,也不失爲一種驚喜。
微信公衆號|衍生星球讀書筆記
作者介紹:
我是衍生星球,一個努力打工的 95 後,
程序員,讀書人,熱點關注者。
在這裏分享我的成長和學習歷程,歡迎關注訂閱,
願我們每個人都能不斷進步,成就更優秀的自己。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/El_MibMwEdpwtMYnrygPsA