首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何脱机使用yolov5 api与烧瓶?

如何脱机使用yolov5 api与烧瓶?
EN

Stack Overflow用户
提问于 2022-02-24 11:21:51
回答 2查看 2.3K关注 0票数 3

我能够在带有互联网连接的PC上运行带有yolov5的烧瓶应用程序。我遵循了yolov5文档中提到的步骤,并使用了以下文件:yolov5/utils/flask_rest_api/restapi.py

但我需要实现同样的离线(在一个特定的个人电脑)。现在的问题是,当我使用以下内容时:

代码语言:javascript
复制
model = torch.hub.load("ultralytics/yolov5", "yolov5", force_reload=True)

它试图从互联网上下载模型。并抛出一个错误。

代码语言:javascript
复制
Urllib.error.URLError: <urlopen error [Errno - 2] name or service not known>

如何离线获得相同的结果。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-25 15:38:02

如果要脱机运行检测,则需要下载模型。

因此,从yolov5s.pt下载模型(例如https://github.com/ultralytics/yolov5/releases )并将其存储到yolov5 5/ model中。

在此之后,替换

代码语言:javascript
复制
# model = torch.hub.load("ultralytics/yolov5", "yolov5s", force_reload=True)  # force_reload to recache

使用

代码语言:javascript
复制
model = torch.hub.load(r'C:\Users\Milan\Projects\yolov5', 'custom', path=r'C:\Users\Milan\Projects\yolov5\models\yolov5s.pt', source='local')

使用这一行,您也可以脱机运行检测。

注意:当您第一次使用更新的torch.hub.load启动应用程序时,如果不存在,它将下载该模型(因此您不需要从https://github.com/ultralytics/yolov5/releases下载它)。

票数 6
EN

Stack Overflow用户

发布于 2022-02-27 09:20:41

这里还有一个问题。当此代码在一台根本没有internet连接的机器上运行时。那么,您可能会面临以下错误。

代码语言:javascript
复制
Downloading https://ultralytics.com/assets/Arial.ttf to /home/<local_user>/.config/Ultralytics/Arial.ttf...
Traceback (most recent call last):
  File "/home/<local_user>/Py_Prac_WSL/yolov5-flask-master/yolov5/utils/plots.py", line 56, in check_pil_font
    return ImageFont.truetype(str(font) if font.exists() else font.name, size)
  File "/home/<local_user>/.local/share/virtualenvs/23_Jun-82xb8nrB/lib/python3.8/site-packages/PIL/ImageFont.py", line 836, in truetype
    return freetype(font)
  File "/home/<local_user>/.local/share/virtualenvs/23_Jun-82xb8nrB/lib/python3.8/site-packages/PIL/ImageFont.py", line 833, in freetype
    return FreeTypeFont(font, size, index, encoding, layout_engine)
  File "/home/<local_user>/.local/share/virtualenvs/23_Jun-82xb8nrB/lib/python3.8/site-packages/PIL/ImageFont.py", line 193, in __init__
    self.font = core.getfont(
OSError: cannot open resource

要克服此错误,您需要手动下载来自Arial.ttfhttps://ultralytics.com/assets/Arial.ttf文件,并将其粘贴到Linux上的以下位置:

代码语言:javascript
复制
/home/<your_pc_user>/.config/Ultralytics

在窗口上粘贴Arial.ttf:

代码语言:javascript
复制
C:\Windows\Fonts

错误消息的第一行提到了同样的事情。之后,代码在脱机模式下平稳运行。

此外,正如在https://docs.ultralytics.com/tutorials/pytorch-hub/上提到的,除了上传到PyTorch模型集线器上的模型之外,任何经过自定义培训的模型都可以通过这段代码访问。

代码语言:javascript
复制
path_hubconfig = 'absolute/path/to/yolov5'
path_trained_model = 'absolute/path/to/best.pt'
model = torch.hub.load(path_hubconfig, 'custom', path=path_trained_model, source='local')  # local repo

使用此代码,对象检测由本地保存的自定义模型执行。一旦,自定义培训模型被保存在本地--这段代码直接访问它,避免了互联网的任何必要。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71251177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档