Docker部署yolov5

news2024/11/15 19:57:24

目录

  • 环境
  • 下载源码
  • 构建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 cv2
  File "/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 bootstrap
    if __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_module
    py_module = importlib.import_module(module_name)
  File "/opt/conda/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _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 cv2
  File "/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 main
    run(**vars(opt))
  File "/opt/conda/lib/python3.8/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context
    return func(*args, **kwargs)
  File "detect.py", line 133, in run
    model(torch.zeros(1, 3, *imgsz).to(device).type_as(next(model.parameters())))  # run once
  File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/workspace/yolov5/models/yolo.py", line 126, in forward
    return self._forward_once(x, profile, visualize)  # single-scale inference, train
  File "/workspace/yolov5/models/yolo.py", line 149, in _forward_once
    x = m(x)  # run
  File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/upsampling.py", line 157, in forward
    recompute_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.coloradmin.cn/o/594213.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

产品设计需要学的8款软件

1、即时设计&#xff1a; 即时设计是国内广受 UI/UX 设计师和产品经理欢迎的专业产品设计工具。它内置了 iOS 和 Android 设计系统资源&#xff0c;可帮助用户快速启动设计工作。该工具集成了原型设计、UI 设计、交互设计、交付和资源管理等多种功能&#xff0c;并自带专业设计…

【云原生|探索 Kubernetes 系列 8】探究 Pod 的 API 对象属性级别与重要字段用法

前言 大家好&#xff0c;我是秋意零。 本专栏上一篇中&#xff0c;我们介绍了 Pod 的核心思想以及 Pod 的工作原理。今天我们还是探讨 Pod &#xff0c;聊一聊 Pod 的基本概念。 &#x1f47f; 简介 &#x1f3e0; 个人主页&#xff1a; 秋意零&#x1f9d1; 个人介绍&#x…

科研工具-Citespace和vosviewer文献计量及其可视化

文献计量学是指用数学和统计学的方法&#xff0c;定量地分析一切知识载体的交叉科学。它是集数学、统计学、文献学为一体&#xff0c;注重量化的综合性知识体系。特别是&#xff0c;信息可视化技术手段和方法的运用&#xff0c;可直观的展示主题的研究发展历程、研究现状、研究…

【正点原子STM32连载】 第二十二章 高级定时器实验 摘自【正点原子】STM32F103 战舰开发指南V1.2

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第二十…

Yolov8轻量级:EfficientViT,基于级联分组注意力模块的全新实时网络架构,better speed and accuracy

EfficientViT: Memory Efficient Vision Transformer with Cascaded Group Attention 论文:https://arxiv.org/abs/2305.07027 代码:Cream/EfficientViT at main microsoft/Cream GitHub 🏆🏆🏆🏆🏆🏆Yolo轻量化模型🏆🏆🏆🏆🏆🏆 近些年对视觉Tra…

C++ 进阶篇复习:

本篇仅对本人C五月份的学习做一个大致的思维导图和总结&#xff0c;各个详细的知识点在具体文章中都有提到&#xff0c;本文不对所有的知识点做详细的解释&#xff0c;如有需要可以移步具体文章进行阅读理解。 目录 &#x1f914;类和对象&#xff1a; &#x1f642; 什么是类…

Spring Boot如何实现自定义条件注解

Spring Boot如何实现自定义条件注解 在Spring Boot中&#xff0c;条件注解是一种非常强大的工具&#xff0c;它可以根据特定的条件来选择是否加载某个类或某个Bean。Spring Boot已经提供了一些内置的条件注解&#xff0c;例如ConditionalOnClass、ConditionalOnBean等&#xf…

spring自定义注解及使用

文章目录 简介一、定义注解1.注解示例2.元注解含义&#xff08;1&#xff09;Target&#xff08;2&#xff09;Retention&#xff08;3&#xff09;Documented&#xff08;4&#xff09;Inherited&#xff08;5&#xff09;Native&#xff08;6&#xff09;Repeatable 二、使用…

mqtt订阅地址有串了情况是怎么回事「艾思科技」

当mqtt订阅地址出现串连的情况时&#xff0c;可能有以下几种可能的原因&#xff1a; 订阅主题错误&#xff1a;订阅地址中指定的主题可能有误。在mqtt中&#xff0c;订阅地址通常由主题和客户端ID组成&#xff0c;如果主题名称或者客户端ID设置错误&#xff0c;可能会导致订阅地…

高完整性系统工程(四): Checking Formal Specifications

目录 1. Alloy Modelling Overview 2. 有限状态机&#xff08;Finite State Machines&#xff09; 3. 在Alloy中建模有限状态机&#xff08;Modelling FSMs in Alloy&#xff09; 4. 在Alloy中检查规格&#xff08;CHECKING SPECIFICATIONS IN ALLOY&#xff09; 4.1 Allo…

Apache Kafka - 灵活控制Kafka消费_动态开启/关闭监听实现

文章目录 概述思路Code扩展KafkaListenerEndpointRegistry 概述 在实际应用中&#xff0c;往往需要根据业务需求动态开启/关闭Kafka消费者监听。例如&#xff0c;在某些时间段内&#xff0c;可能需要暂停对某个Topic的消费&#xff0c;或者在某些条件下才开启对某个Topic的消费…

毫米波雷达信号处理中的通道间相干与非相干积累问题

说明 相干和非相干积累是雷达信号处理中的常用方法&#xff0c;这两个概念一般是用在多脉冲积累这个问题上&#xff1a;积累可以提高信号的SNR&#xff0c;从而提高检出概率。不过本文内容与脉冲积累无关&#xff0c;本文讨论的话题是将这两个概念(non-coherent combination、c…

HEVC变换编码介绍

介绍 ● 图像变换编码是指将以空间域中像素形式描述的图像转化至变换域&#xff0c;以变换系数的形式加以表示&#xff1b; ● 图像都含有较多平坦区域和内容变化缓慢的区域&#xff0c;适当的变换可使图像能量在空间域的分散分布转为在变换域的相对集中分布&#xff0c;实现…

推出“百亿生态”,拼多多“极限左移”

文 | 螳螂观察 作者 | 陈小江 任何一个成功穿越周期的企业&#xff0c;都有一个共同的特点——在发展顺利的时候&#xff0c;主动跳出“舒适圈”&#xff0c;进而跳出一般企业“起始、成长、成熟、衰退”的发展周期&#xff0c;为企业发展画出漂亮的S型增长曲线。 日前&…

DC1通关

环境自己百度装好。 我的一台kali&#xff0c;一台DC都是52网段 1.nmap 扫一扫52网段 确定是143&#xff0c;然后针对143进行扫描 80开放&#xff0c;进去。 老熟人了 Drupal&#xff0c;直接msf开打 试了几个&#xff0c;use2直接getshell了 看看权限 尝试SUID提权 进入sh…

零基础如何入门网络安全?

要学习网络安全&#xff0c;其实自学是有局限的&#xff0c;没有设备和网络环境&#xff0c;除了web渗透&#xff0c;其他很多方面&#xff0c;只能在培训班实战环境里才合适&#xff0c;比如路由交换技术、安全设备、学会怎么架构和配置一个企业网络安全只架构。 还要学习系统…

chatgpt赋能Python-python中导入numpy

介绍 在Python编程领域中&#xff0c;NumPy是一个非常常用的库&#xff0c;它提供了高性能的多维数组对象和许多用于操作这些数组的函数。在科学计算、数据分析和机器学习等领域中&#xff0c;NumPy是必不可少的工具。 本文将详细介绍如何在Python中导入NumPy库&#xff0c;并…

opencv初步了解

https://www.bilibili.com/video/BV1PV411774y?p2&vd_sourcee7d12c9f66ab8294c87125a95510dac9 这里写目录标题 下载计算机眼中的图像视频gray cv2.cvColor(frame, cv.COLOR_BGR2GRAY) ROI边界填充数值计算图像融合 下载 pip install input cv2 cv2.__version__下载一些…

io之io模型

写在前面 本文一起看下常见的io模型。 1&#xff1a;基础知识 同步异步&#xff0c;阻塞阻塞&#xff0c;区别如下&#xff1a; 同步异步:描述的通信模式&#xff0c;即结果如果是主动的获取则是同步&#xff0c;处理结果是被动的接收则是异步 阻塞非阻塞&#xff1a;描述的…

网页提交文件无法打开问题解决办法(以学习通为例)

时长会碰到这样的情况&#xff0c;日常实训课在机房写实训作业时&#xff0c;将未完成的作业先暂存先在学习通里&#xff0c;但后续在登陆学习通时发现未提交的附件打不开了&#xff0c;经过翻阅之前web的相关资料&#xff0c;总结出了这样的解决办法&#xff0c;供各位参考。 …