【目标检测】从头到尾教你安装MMDetection(超详细版本)

2023-11-17

前言

文首先介绍了 MMDetection 库在 Windows 11 下的安装方式,及可能遇到的问题和解决方法。

一、本地环境

这里放上我本人的配置环境:

  1. 显卡 = 3060

  2. CUDA = 11.3

  3. Pytorch = 1.12.1

  4. Python = 3.10.6

  5. torchvision = 0.13.1

  6. torchaudio = 0.12.1

  7. openmim = 0.3.2

  8. mmcv-full = 1.7.0

  9. mmdet = 2.25.3

二、先决条件

MMDetection适用于Linux,Windows和macOS。它需要Python 3.6+,CUDA 9.2+和PyTorch 1.5+。

If you are experienced with PyTorch and have already installed it, just skip this part and jump to the [next section](#installation). Otherwise, you can follow these steps for the preparation.

1. 从官方网站下载并安装Anaconda。

2. 创建 conda 环境并激活它

conda create --name openmmlab python=3.8 -y
conda activate openmmlab

3. 按照官方说明安装 PyTorch,例如

在 GPU 平台上:

conda install pytorch torchvision -c pytorch

在 CPU 平台上:

conda install pytorch torchvision cpuonly -c pytorch

三、配置PyTorch环境时出现的第一个错误

在下载pytorch的时候,出现了不少错误:

1. 无法下载包

(1)错误类型

Conda SSL Error: OpenSSL appears to be unavailable on this machine. OpenSSL is required to download。

按提示安装 openssl,问题也没解决。

在这里插入图片描述

(2)分析

这是.dll错误导致的。

(3)解决办法

转到安装anaconda-anaconda3>Library>bin的位置。搜索并复制以下dll文件:

libcrypto-1_1-x64.dll
libssl-1_1-x64.dll

然后复制这两个文件到anaconda3>DLLs

上网搜了一下之后发现我的电脑可能是缺少OpenSSL了。

到网站下载:

https://slproweb.com/products/Win32OpenSSL.html

在这里插入图片描述

这里按照系统下载对应的版本,我的电脑是Win10 64bit,于是就选择了红色圈起来的版本:

在这里插入图片描述

安装的过程中记得选择这项:

在这里插入图片描述

安装好之后就可以顺利下包了!!!

四、配置PyTorch环境时出现的第二个错误

根据PyTorch网站,我选择下载CUDA11.3对应的版本:

在这里插入图片描述

不知道为什么,我这样下载的却是CPU版本的torch。

在旧电脑上可以顺利安装,但是新电脑安装失败!

我们改变下载策略:

conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch

在这里插入图片描述

torch.cuda.is_available()返回的为True。

五、安装mmdet

1. 使用MIM 安装MMCV

MMDetection 的运行依赖 MMCV ,它是一个面向计算机视觉的基础库,其中支持了很多开源工具,如图像分类工具、目标检测工具、语义分割工具、姿态估计工具等常用工具。 MMDetection 的版本跟 MMCV 的版本依赖关系如下表:

pip install -U openmim
mim install mmcv-full

没想到第一步就出了问题。

2. pip install -U openmim出错

在这里插入图片描述
然后下载错误,我们配置下载源,选择豆瓣的:

豆瓣的镜像源地址为:

https://pypi.douban.com/simple

在这里插入图片描述

在这里插入图片描述

下载安装成功!

3. 安装 MMDetection

3.1 情况 a:直接开发和运行 mmdet

git clone https://github.com/open-mmlab/mmdetection.git
cd mmdetection
pip install -v -e .
# "-v" means verbose, or more output
# "-e" means installing a project in editable mode,
# thus any local modifications made to the code will take effect without reinstallation.

3.2 情况 b:使用 mmdet 作为依赖项或第三方包

pip install mmdet

我们选用第二种情况,再次出现错误!

4. pip install mmdet出错

一样的问题,下载错误:

在这里插入图片描述

我们同样使用豆瓣的源进行下载:

在这里插入图片描述
在这里插入图片描述

再次失败,pycocotools下载安装失败。

六、安装pycocotools

在网上查了几篇问题一样的文章,说是pycocotools作者压根没想过windows版本,所以会有这样的报错。

从【https://github.com/pdollar/coco.git 】这个网址下载源码。

在这里插入图片描述
然后解压,将文件夹放到【D:\Anaconda3.8.5\Lib\site-packages】路径下,这个路径是Anaconda安装的路径,找到里面的site-packages文件夹。

然后打开Anaconda Prompt (Anaconda3.8.5)或者是cmd,将当前路径跳转至【D:\Anaconda3.8.5\Lib\site-packages\cocoapi-master\PythonAPI】。

依次输入以下命令:

# install pycocotools locally (先这一条,结束后再下一条)
python setup.py build_ext --inplace
# install pycocotools to the Python site-packages
python setup.py build_ext install

到这一步我就开始报错了,没有飘红,但是显示有error:

在这里插入图片描述
错误类型为:

error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools”: https://visualstudio.microsoft.com/visual-cpp-build-tools/

根据error里面的信息,进入到这个网址【https://visualstudio.microsoft.com/visual-cpp-build-tools/】,然后下载vs_buildtools__238bb1dd7df5438ca3028116fa524923.exe。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
装好了之后我们返回第四步输入命令。

在此处报了第二个错误:

在这里插入图片描述
错误为:

命令行 error D8021 :无效的数值参数“/Wno-cpp”

解决该问题需要打开setup.py文件,以记事本的形式打开,然后删除里面的两个参数,并保存。

在这里插入图片描述

好了之后,继续返回第四步输入命令:

在这里插入图片描述
装好!

七、再次安装mmdet

继续安装:

pip install mmdet

在这里插入图片描述
再次报错!

解决方案重新安装importlib_metadata:

pip install importlib_metadata --force-reinstall

在这里插入图片描述
在这里插入图片描述

顺利安装成功!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【目标检测】从头到尾教你安装MMDetection(超详细版本) 的相关文章

  • 用于将 cython 中的许多 C++ 类包装到单个共享对象的项目结构

    我在文档 邮件列表和这个问题在这里 https stackoverflow com questions 10300660 cython and distutils 但我想得到一个更直接的答案来解决我的具体情况 我正在通过尝试一点一点地包装我
  • 将 saxon 与 python 结合使用

    我需要使用 python 处理 XSLT 目前我正在使用仅支持 XSLT 1 的 lxml 现在我需要处理 XSLT 2 有没有办法将 saxon XSLT 处理器与 python 一起使用 有两种可能的方法 设置一个 HTTP 服务 接受
  • 将 Matplotlib 误差线放置在不位于条形中心的位置

    我正在 Matplotlib 中生成带有错误栏的堆积条形图 不幸的是 某些层相对较小且数据多样 因此多个层的错误条可能重叠 从而使它们难以或无法读取 Example 有没有办法设置每个误差条的位置 即沿 x 轴移动它 以便重叠的线显示在彼此
  • OpenCV Python cv2.mixChannels()

    我试图将其从 C 转换为 Python 但它给出了不同的色调结果 In C Transform it to HSV cvtColor src hsv CV BGR2HSV Use only the Hue value hue create
  • Django:按钮链接

    我是一名 Django 新手用户 尝试创建一个按钮 单击该按钮会链接到我网站中的另一个页面 我尝试了一些不同的例子 但似乎没有一个对我有用 举个例子 为什么这不起作用
  • 使用 on_bad_lines 将 pandas.read_csv 中的无效行写入文件

    我有一个 CSV 文件 我正在使用 Python 来解析该文件 我发现文件中的某些行具有不同的列数 001 Snow Jon 19801201 002 Crom Jake 19920103 003 Wise Frank 19880303 l
  • 如何替换 pandas 数据框列中的重音符号

    我有一个数据框dataSwiss其中包含瑞士城市的信息 我想用普通字母替换带有重音符号的字母 这就是我正在做的 dataSwiss Municipality dataSwiss Municipality str encode utf 8 d
  • Spark KMeans 无法处理大数据吗?

    KMeans 有几个参数training http spark apache org docs latest api python pyspark mllib html highlight kmeans pyspark mllib clus
  • OpenCV 无法从 MacBook Pro iSight 捕获

    几天后 我无法再从 opencv 应用程序内部打开我的 iSight 相机 cap cv2 VideoCapture 0 返回 并且cap isOpened 回报true 然而 cap grab 刚刚返回false 有任何想法吗 示例代码
  • 从 Flask 访问 Heroku 变量

    我已经使用以下命令在 Heroku 配置中设置了数据库变量 heroku config add server xxx xxx xxx xxx heroku config add user userName heroku config add
  • python获取上传/下载速度

    我想在我的计算机上监控上传和下载速度 一个名为 conky 的程序已经在 conky conf 中执行了以下操作 Connection quality alignr wireless link qual perc wlan0 downspe
  • 每个 X 具有多个 Y 值的 Python 散点图

    我正在尝试使用 Python 创建一个散点图 其中包含两个 X 类别 cat1 cat2 每个类别都有多个 Y 值 如果每个 X 值的 Y 值的数量相同 我可以使用以下代码使其工作 import numpy as np import mat
  • 有没有办法检测正在运行的代码是否正在上下文管理器内执行?

    正如标题所述 有没有办法做到这样的事情 def call back if called inside context print running in context else print called outside context 这将
  • Python:如何将列表列表的元素转换为无向图?

    我有一个程序 可以检索 PubMed 出版物列表 并希望构建一个共同作者图 这意味着对于每篇文章 我想将每个作者 如果尚未存在 添加为顶点 并添加无向边 或增加每个合著者之间的权重 我设法编写了第一个程序 该程序检索每个出版物的作者列表 并
  • 如何计算 pandas 数据帧上的连续有序值

    我试图从给定的数据帧中获取连续 0 值的最大计数 其中包含来自 pandas 数据帧的 id date value 列 如下所示 id date value 354 2019 03 01 0 354 2019 03 02 0 354 201
  • Scrapy:如何使用元在方法之间传递项目

    我是 scrapy 和 python 的新手 我试图将 parse quotes 中的项目 item author 传递给下一个解析方法 parse bio 我尝试了 request meta 和 response meta 方法 如 sc
  • 在 Qt 中自动调整标签文本大小 - 奇怪的行为

    在 Qt 中 我有一个复合小部件 它由排列在 QBoxLayouts 内的多个 QLabels 组成 当小部件调整大小时 我希望标签文本缩放以填充标签区域 并且我已经在 resizeEvent 中实现了文本大小的调整 这可行 但似乎发生了某
  • 从列表指向字典变量

    假设你有一个清单 a 3 4 1 我想用这些信息来指向字典 b 3 4 1 现在 我需要的是一个常规 看到该值后 在 b 的位置内读写一个值 我不喜欢复制变量 我想直接改变变量b的内容 假设b是一个嵌套字典 你可以这样做 reduce di
  • Python 类继承 - 诡异的动作

    我观察到类继承有一个奇怪的效果 对于我正在处理的项目 我正在创建一个类来充当另一个模块的类的包装器 我正在使用第 3 方 aeidon 模块 用于操作字幕文件 但问题可能不太具体 以下是您通常如何使用该模块 project aeidon P
  • 导入错误:没有名为 site 的模块 - mac

    我已经有这个问题几个月了 每次我想获取一个新的 python 包并使用它时 我都会在终端中收到此错误 ImportError No module named site 我不知道为什么会出现这个错误 实际上 我无法使用任何新软件包 因为每次我

随机推荐

  • 微信好友大数据分析

    微信好友数据分析 这里很多工作量 参考了该篇博客 在此致谢 传送门如下 一件有趣的事 我用 Python 爬了爬自己的微信朋友 不过原博客代码不是特别全 有些没有放出来 而且代码都是图片截图 比较模糊 所以我来整理一下我的代码 贴上来 同时
  • 【订阅消息】微信小程序发送服务通知

    前言 由于上次的公众号测试消息推送次数太多被官方认为是推销或者是广告之类的 被微信官方给禁了 然后偶然在一次吃饭的时候扫码点餐下单之后有个弹窗勾选订单完成通知 勾选之后就餐之后就会发送一个服务通知告诉您的订单已完成 其实基于这种消息提醒也是
  • keil5选择ST-Link Debugger时候setting点击不了问题

    分享一个自己用keil5的ST Link Debugger时候遇到的一个问题 就是在我选择用ST Link来进行调试时候 发现setting选择不了 如图所示 弹出来了一个提示我 说无法加载驱动程序 少了一个ST LINKIII KEIL
  • Redis 系列-- SpringBoot中redisTemplate 的操作(一)

    SpringBoot中 集成 redisTemplate 对 Redis 的操作 一 在Java 操作redis 时 有很多工具 redis 官网中 就有很多操作 目前主流开发框架SpringBoot 中 当然也有集成好的操作redis的工
  • 关于浏览器出现ERR_SSL_PROTOCOL_ERROR错误的原因与解决建议

    一 导致ERR SSL PROTOCOL ERROR错误主要有以下几个原因 Invalid System Time 系统时间与网络时间不同步 Firewall blocking the website or IP address Websi
  • 关于yarn安装时报“node“ is incompatible with this module的解决办法

    前提 在用vue写一个h5页面时 当在用yarn安装时 提示如下错误 The engine node is incompatible with this module Expected version 14 18 0 16 14 0 gt
  • Jmeter —— 常用的几种断言方法(基本用法)

    在使用JMeter进行性能测试或者接口自动化测试工作中 经常会用到的一个功能 就是断言 断言相当于检查点 它是用来判断系统返回的响应结果是否正确 以此帮我们判断测试是否通过 本文 主要介绍几种常用的断言 响应断言 JSON断言 BeanSh
  • WPS AI(海外版)使用体验分享

    最近很幸运的通过了WPS AI海外版的内测waitlist 这里和大家分享一下使用的体验和评价 申请与安装 WPS AI分为国内版和海外版两种 其中根据WPS自己的介绍 国内版本的模型由MinMax公司提供 海外版则是直接使用OpenAI的
  • OpenCV检测角点

    harris角点检测算法步骤 1 利用Soble计算出XY方向的梯度值 2 计算出Ix 2 Iy 2 Ix Iy 3 利用高斯函数对Ix 2 Iy 2 Ix Iy进行滤波 4 计算局部特征结果矩阵M的特征值和响应函数C i j Det M
  • Win7下U盘安装Ubuntu14.04双系统步骤详解

    Win7下U盘安装Ubuntu14 04双系统步骤详解 百度经验 http jingyan baidu com article 76a7e409bea83efc3b6e1507 html
  • 数据模型:数字化转型的核心能力

    业界数字化转型已经进入深水区 数据越来越受到大家重视 由于数据中台等等概念的兴起 大家越来越回到数据的根本问题 数据模型 今天不谈论高大上的数据中台 我想回到数据的本源 谈谈接地气的数据模型 大数据产业创新服务媒体 聚焦数据 改变商业 什么
  • Topaz Gigapixel AI 4.1.2 特别版 Mac 图片无损放大软件

    Topaz AI Gigapixel是一款由Topaz Labs公司开发的mac 软件 它使用深度学习技术 可以实现图片无损放大 使低分辨率图片转换成高分辨率 高质量的图片 还能够自动弥补图片损失的细节 增强画质 其实 对于像素图而言 无损
  • 想去谷歌工作?15个面试问题据说难倒天才!

    11月 15 日消息 谷歌公司的面试题在刁钻古怪方面相当出名 科技博客 BusinessInsider 贴出了 15 道谷歌面试题 并一一给出了答案 第一题 多少只高尔夫球才能填满一辆校车 职位 产品经理 解析 通过这道题 谷歌希望测试出求
  • 华为OD机试 - 找到比自己强的人数(Java)

    题目描述 给定数组 2 1 3 2 每组表示师徒关系 第一个元素是第二个元素的老师 数字代表排名 现在找出比自己强的徒弟 输入描述 无 输出描述 无 用例 输入 2 1 3 2 输出 0 1 2 说明 输入 第一行数据 2 1 表示排名第
  • 多益网络2022春笔试题记忆版

    多益网络笔试题 自己做完之后凭记忆整理出来的 填空题 数据结构 数据库 相对没那么难 所以只记了几个 选择题 1 A B C栈的出栈序列可能性有几种 2 关于队列 3 插入数据库表 name char 20 not null age cha
  • 毕业设计- 基于机器视觉的交通标志检测系统

    目录 前言 课题背景和意义 实现技术思路 一 交通标志检测识别理论基础 二 基于单阶段算法的交通标志检测 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量
  • [Intel汇编-NASM]基本语法

    1 NASM编译器介绍 1 Netwide Assembler 是目前唯一开源且免费的汇编器 2 该汇编器只提供编译的功能 但不提供连接的功能 在Linux下编译器产生 o文件后还需要使用ld链接器和操作系统的库链接才能形成可执行文件 而在
  • 男人怎么读 萨瓦迪卡!还是萨瓦迪卡不!

    泰国旅游中问候语 你好 是十分常见的 很早就听闻男同胞说萨瓦迪卡是不正确的 结果百度的结果是这样的 通篇并没有说正确的读音 修改关键词吧终于在知道里面找到想要的 是梵文 sawat 表示祝福 好运 dee表示好 sawatdee 表示 你好
  • 完成该操作所需的数据还不可使用

    原因是没有加下面两个判断条件 if xmlhttp readyState 4 if xmlhttp status 200
  • 【目标检测】从头到尾教你安装MMDetection(超详细版本)

    目录 MMDetection的安装过程 前言 一 本地环境 二 先决条件 1 从官方网站下载并安装Anaconda 2 创建 conda 环境并激活它 3 按照官方说明安装 PyTorch 例如 三 配置PyTorch环境时出现的第一个错误