问题:如何在flask离线时使用yolov5 api?

我能够在具有 Internet 连接的 PC 上使用 yolov5 运行 Flask 应用程序。我按照yolov5 docs中提到的步骤使用了这个文件:yolov5/utils/flask_rest_api/restapi.py,

但我需要实现相同的离线(在特定的 PC 上)。现在的问题是,当我使用以下内容时:

model = torch.hub.load("ultralytics/yolov5", "yolov5", force_reload=True)

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

Urllib.error.URLError: <urlopen error [Errno - 2] name or service not known>

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

提前致谢。

解答

如果要离线运行检测,则需要已下载模型。

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

之后,更换

# model = torch.hub.load("ultralytics/yolov5", "yolov5s", force_reload=True)  # force_reload to recache

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 下载它/释放)。

在此处输入图像描述

Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐