如何在 Flask 离线状态下使用 yolov5 api?

rs_*_*nia 3 flask python-3.x pytorch yolov5

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

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

model = torch.hub.load("ultralytics/yolov5", "yolov5", force_reload=True)
Run Code Online (Sandbox Code Playgroud)

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

Urllib.error.URLError: <urlopen error [Errno - 2] name or service not known>
Run Code Online (Sandbox Code Playgroud)

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

提前致谢。

Mil*_*nák 7

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

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

之后,更换

# model = torch.hub.load("ultralytics/yolov5", "yolov5s", force_reload=True)  # force_reload to recache
Run Code Online (Sandbox Code Playgroud)

model = torch.hub.load(r'C:\Users\Milan\Projects\yolov5', 'custom', path=r'C:\Users\Milan\Projects\yolov5\models\yolov5s.pt', source='local')
Run Code Online (Sandbox Code Playgroud)

通过这条线,您还可以离线运行检测。

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

在此输入图像描述