IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 【Linux & Deep learning】从0开始安装MMDetection -> 正文阅读

[系统运维]【Linux & Deep learning】从0开始安装MMDetection

前言

不多废话,直接按操作走,别整错了。
建立环境:Ubuntu18.04服务器 + 能跑深度学习的N卡。
注:由于外链过多原因无法被推荐,大家尽量自行百度……

第一步:安装conda

可选项

根据需要,自行选择 Anaconda3 / Miniconda3 。

conda安装流程(以miniconda为例)

Linux系统(以Ubuntu为例)

wget -c https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod 777 Miniconda3-latest-Linux-x86_64.sh
sh Miniconda3-latest-Linux-x86_64.sh

Windows系统/SSH操作

  1. 安装Xftp7(或其他远程传输软件)
  2. 连接到远程Linux服务器
  3. 下载最新版本miniconda3
  4. 将文件拖动到服务器合适的文件夹中(请自行选择路径)
  5. 安装MobaXterm或其他SSH远程连接软件
  6. MobaXterm连接到远程Linux服务器(自行百度)
  7. cd到4中自行选择的路径,以/conda为例
chmod 777 Miniconda3-latest-Linux-x86_64.sh
cd /conda
sh Miniconda3-latest-Linux-x86_64.sh

如无疑问,从现在起,均使用终端语言进行操作。

检查conda安装情况

conda -V
若出现conda 4.x.0
表明安装成功

第二步:安装nvidia驱动

可用nvidia-smi查看。

一般来说都有,没有的话请自行百度或咨询老师、同学、同事……

第三步:安装CUDA和cudnn

强烈建议:选择CUDA10.2+pytorch1.9.0
也可以选择其他版本,但以上版本实测完美通过

如果之前存在另外的CUDA版本

找到cuda目录,卸载:
cuda目录以/usr/local/cuda-10.0为例:

# 默认为root操作,无root请加sudo
/usr/local/cuda-10.0/bin/uninstall_cuda_10.0.pl
rm -rf /usr/local/cuda-10.0/

安装CUDA←

选择对应选项

# 根据上述选项,可以得到以下操作命令
# 该命令截止2022.03.22为最新
# 请先cd到合适的下载路径
wget https://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run
sh cuda_10.2.89_440.33.01_linux.run

此时如无错误,应该进入了安装界面。安装界面是命令行人机交互页面,如下所示:
在这里插入图片描述
accept之后,到如下界面,用Enter键筛选如下(其他有必要再安装)。
在这里插入图片描述
注1:Done为返回上一级。Install为开始安装。
注2:Options->Toolkits Options->Change Toolkit Install Path中选择合适的安装路径,此处仅截图为例。
在这里插入图片描述
安装完成后会显示类似successful的提示(此处就不再重复安装了,故不出示图例)。之后开始配置环境:

vim ~/.bashrc
# 如使用的是zsh,则为
# vim ~/.zshrc
# 其他同理

通过vim操作加入如下三句。(别说vim也不会!!)

export CUDA_HOME=/usr/local/cuda-10.0
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
export PATH=${CUDA_HOME}/bin:${PATH}

最后激活重载环境配置。

source ~/.bashrc

安装cudnn←

在这里插入图片描述
cudnn通过windows下载+ftp文件传输是最简单、快捷、方便的。(所以此处不用纯命令行安装方式)
安装cudnn需要登录自己的Nvidia账号,没有就注册一个吧。登录过程比较麻烦,需要多点耐心。出现下图的话可以按暂不跳过。在这里插入图片描述
根据红箭头指示点击下载。
在这里插入图片描述
同样按照conda安装中SSH操作的步骤,将下载好的tar.xz文件放到合适的解压路径。
接下来运行解压命令:

# 按照流程,下载的压缩包名称为
# cudnn-linux-x86_64-8.3.2.44_cuda10.2-archive.tar.xz
tar -xvf cudnn-linux-x86_64-8.3.2.44_cuda10.2-archive.tar.xz
# 不用 -zxvf 的原因是可能会出现如下报错:
# gzip: stdin: not in gzip format
# tar: Child returned status 1
# tar: Error is not recoverable: exiting now

解压完成后,输入ls,应该会发现同名文件夹:

# 每个人的安装路径都不同,所以根据自己的下载路径进行对应更改
cp /*cudnn安装路径*/lib/* /*cuda安装路径*/lib64/
cp /*cudnn安装路径*/include/* /*cuda安装路径*/include/

别着急,我们待会再检查CUDA、cudnn是否安装成功。

第四步:安装MMDetection

首先激活环境,并安装pytorch:

conda create -n open-mmlab python=3.7 -y
conda activate open-mmlab
conda install pytorch==1.9.0 torchvision==0.10.0 torchaudio==0.9.0 cudatoolkit=10.2 -c pytorch

这个时候,我们来检查一下torch、CUDA、cudnn的安装情况:

python # 打开终端的python
import torch
print(torch.__version__)
print(torch.version.cuda)
print(torch.backends.cudnn.version())

在这里插入图片描述
若结果如上图所示,那么没有问题,继续。

pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.9.0/index.html
pip install mmdet

这里当然可以按照MMDetection的步骤走git clone,但是对于服务器无法翻墙的同学们来说,最好用pip自动安装方式。

终于快结束了!继续冲!!!

第五步:运行你的第一个mmdet程序

准备mmdetection文件夹

github搜索mmdetection,download zip(win)/git clone(linux)然后解压放到特定位置什么的不用我多说了好吗?假设这是路径A。

辛苦了那么久,终于可以测试了

创建一个py文件,命名为mmdet_test.py。然后,直接上代码:
请先下载faster rcnn pth模型放置到文件夹中,记住路径,假设这是路径B。

from mmdet.apis import init_detector, inference_detector
import cv2

def show_result_pyplot(model, img, result, score_thr=0.5):
    """Visualize the detection results on the image.
    Args:
        model (nn.Module): The loaded detector.
        img (str or np.ndarray): Image filename or loaded image.
        result (tuple[list] or list): The detection result, can be either
            (bbox, segm) or just bbox.
        score_thr (float): The threshold to visualize the bboxes and masks.
        fig_size (tuple): Figure size of the pyplot figure.
    """
    if hasattr(model, 'module'):
        model = model.module
    img = model.show_result(img, result, score_thr=score_thr, show=False)
    return img
    
# 记得路径A吗?加上/mmdetection/configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py这一段就可以了
config_file = 
# 示例:config_file = '/workspace/cwh/mmdetection/configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py'

# 刚叫你下载的pth文件!记得路径B吗?
checkpoint_file = 
# 示例:checkpoint_file = './dataset/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth'

# 使用CUDA
device = 'cuda:0'
# 初始化检测器
model = init_detector(config_file, checkpoint_file, device=device)
# 推理演示图像
# 还是你的路径A!看看能不能找到/mmdetection/demo/demo.jpg
img_path =
# 示例:img_path = '/workspace/cwh/mmdetection/demo/demo.jpg'
result = inference_detector(model, img_path)
# 只显示>0.8评分的框
det_img = show_result_pyplot(model, img_path, result, score_thr=0.8)
# 选择一个输出图像的路径
out_file =
# 示例:out_file = '/workspace/cwh/result.jpg'
cv2.imwrite(out_file, det_img)

此处我给出一张图片:
在这里插入图片描述

如果你能得到这个结果:
请添加图片描述
结束辣!恭喜你达成成就:「我也是会一点目标检测的人了」。

结语

这环境搞了我两三天,心态都差点崩了,当时也没有及时记录,可能有一些会报错的地方没有写上来,看看有没有热心观众提问吧,当然最好是没有人提问,这证明教程完美通过哈哈~
写于2022.03.22

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-24 00:59:27  更:2022-03-24 01:00:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:58:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码