当前位置: 首页 > news >正文

Docker部署yolov5

目录

  • 环境
  • 下载源码
  • 构建Docker镜像
  • 运行docker镜像
  • 运行目标检测
    • 出现partially initialized module 'cv2' has no attribute '_registerMatType'错误
    • 出现ImportError: libSM.so.6: cannot open shared object file: No such file or directory错误
    • 出现AttributeError: 'Upsample' object has no attribute 'recompute_scale_factor'错误
  • 参考链接

环境

Ubuntu:22.10
Docker:24.0.0

下载源码

这里我下载了6.0版本的,想要别的版本的自己修改,但dockerfile可能目录不同,可以通过find指令查询

git clone -b v6.0 https://github.com/ultralytics/yolov5.git

构建Docker镜像

这里要等待很长时间,构建大概20g的镜像

sudo docker build -f [your dockerfile path] -t [your image name]:[version] .

在这里插入图片描述

运行docker镜像

# 创建后台运行的docker 容器
sudo docker run -itd -w /workspace -v [your youlov5 path]:/workspace --net=host --ipc=host --gpus=all -e DISPLAY=$DISPLAY --env="QT_X11_NO_MITSHM=1" --name [your container name] [your image name]:[version] /bin/bash# 进入docker容器
sudo docker exec -it [your container name] /bin/bash

运行目标检测

python detect.py --source [your picture path] --view-img

出现partially initialized module ‘cv2’ has no attribute '_registerMatType’错误

具体错误详情:

Traceback (most recent call last):File "detect.py", line 14, in <module>import cv2File "/opt/conda/lib/python3.8/site-packages/cv2/__init__.py", line 181, in <module>bootstrap()File "/opt/conda/lib/python3.8/site-packages/cv2/__init__.py", line 175, in bootstrapif __load_extra_py_code_for_module("cv2", submodule, DEBUG):File "/opt/conda/lib/python3.8/site-packages/cv2/__init__.py", line 28, in __load_extra_py_code_for_modulepy_module = importlib.import_module(module_name)File "/opt/conda/lib/python3.8/importlib/__init__.py", line 127, in import_modulereturn _bootstrap._gcd_import(name[level:], package, level)File "/opt/conda/lib/python3.8/site-packages/cv2/mat_wrapper/__init__.py", line 33, in <module>cv._registerMatType(Mat)
AttributeError: partially initialized module 'cv2' has no attribute '_registerMatType' (most likely due to a circular import)

这是因为版本不匹配的问题,Dockerfile中只限制了opencv-python的版本大于4.1.2并没有限制最高版本,最高版本是,这里我们重新安装

sudo pip install 'opencv-python>=4.1.2,<4.3' --force-reinstall

重新运行

python detect.py --source [your picture path] --view-img

出现ImportError: libSM.so.6: cannot open shared object file: No such file or directory错误

具体错误详情:

Traceback (most recent call last):File "detect.py", line 14, in <module>import cv2File "/opt/conda/lib/python3.8/site-packages/cv2/__init__.py", line 5, in <module>from .cv2 import *
ImportError: libSM.so.6: cannot open shared object file: No such file or directory

这是没有库文件的原因,执行以下命令:

sudo apt-get install libsm6 libxrender1

重新运行

python detect.py --source [your picture path] --view-img

出现AttributeError: ‘Upsample’ object has no attribute 'recompute_scale_factor’错误

具体错误详情:

Traceback (most recent call last):File "detect.py", line 307, in <module>main(opt)File "detect.py", line 302, in mainrun(**vars(opt))File "/opt/conda/lib/python3.8/site-packages/torch/utils/_contextlib.py", line 115, in decorate_contextreturn func(*args, **kwargs)File "detect.py", line 133, in runmodel(torch.zeros(1, 3, *imgsz).to(device).type_as(next(model.parameters())))  # run onceFile "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1501, in _call_implreturn forward_call(*args, **kwargs)File "/workspace/yolov5/models/yolo.py", line 126, in forwardreturn self._forward_once(x, profile, visualize)  # single-scale inference, trainFile "/workspace/yolov5/models/yolo.py", line 149, in _forward_oncex = m(x)  # runFile "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1501, in _call_implreturn forward_call(*args, **kwargs)File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/upsampling.py", line 157, in forwardrecompute_scale_factor=self.recompute_scale_factor)File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1614, in __getattr__raise AttributeError("'{}' object has no attribute '{}'".format(
AttributeError: 'Upsample' object has no attribute 'recompute_scale_factor'

需要根据出错目录去修改upsampling.py文件,具体修改方法参考recompute_scale_factor错误参考
修改完毕后重新运行:

python detect.py --source [your picture path] --view-img

出现如下提示就是成功,如果出现x server的问题请看参考链接:
在这里插入图片描述
请添加图片描述

参考链接

x server错误参考
recompute_scale_factor错误参考

http://www.lryc.cn/news/89870.html

相关文章:

  • 如何在 Axios 中去控制 Loading?大有学问!
  • 充电桩检测设备厂家TK4860C交流充电桩检定装置
  • 一文3000字实现基于Selenium+Python的web自动化测试框架
  • Android 12系统源码_窗口管理(二)WindowManager对窗口的管理过程
  • python3.8,torch1.10.2+cu113、torch-geometric 安装
  • 堆(heap)、栈(stack)
  • 企业级API网关之典型应用场景
  • 【2023年4月美赛加赛】Z题:The future of Olympics 25页完整论文
  • Rocket重试机制,消息模式,刷盘方式
  • linux+onenet可视化(图形化步骤)
  • 汇编的基础
  • 并发编程学习(十四):tomcat线程池
  • 简洁灵活工单管理系统,支持工单模版字段、工单状态自定义
  • 标签派单系统架构设计
  • Jmeter和Postman那个工具更适合做接口测试?
  • k8s污点与容忍
  • 市面上有哪些软件可以结合agentgpt的?众包平台结合的好处!
  • 【js】对象属性的拦截和Proxy代理与Reflect映射的用法与区别
  • Yolov8涨点神器:ODConv+ConvNeXt提升小目标检测能力
  • git代码回滚是使用reset还是revert
  • 深入理解Java ThreadLocal及其内存泄漏防范
  • 介绍10款ChatGPT替代产品
  • 数字逻辑 期末
  • MT4交易外汇平台有哪些优势?为何是外汇投资首选?
  • 问卷调查工具实力榜单发布
  • javascript中property和attribute有什么区别?
  • 快速上手kettle
  • Leetcode 399. 除法求值
  • kotlin协程并发/并行与串行互相切换,CoroutineScope与await
  • 初识linux之简单了解TCP协议与UDP协议