MMDetection的安装与运行

MMDetection的安装与运行-Luninousail ' Blog

最近有人加我微信。

一上来就说胡老师你好,我想请您帮个忙。

我说可以啊,发生甚麽事了?

她说我们要跑深度学习的作业,所以我装了Ubuntu,现在切不回Windows了,想请您帮忙看看,顺便帮我看看要怎么装MMDetection。

我一看,嚯,好家伙,直接覆盖安装,一个引导区覆盖,一个硬盘分区格式化。

我说你这个没用,赶紧关机找数据恢复中心吧。

她说我这个有用,网上教程都这么写的......,唉,好吧,那帮我看看怎么装MMDetection吧。

于是就有了这篇文章,这里介绍一下MMDetection,简单来说就是一款基于PyTorch的目标检测框架,其实我也是第一次用,之前也没有装过,不过年初的时候有折腾过一点Tensorflow,所以机器上刚好有Anaconda,感觉装起来应该不难,甚至还挺好玩的,就准备试试看,结果没想到噩梦开始了。

安装的过程中各种不顺,用的是虚拟环境,安废了就删了,删了又要重建,来来回回删了又建至少7、8次,Windows系统下必须要装VS14组件用来编译mmcv-full,不然会报编译错误,装完vs还不行,提示找不到cl组件,必须手动找出来添加环境变量,总之就是各种麻烦。

这里提前说一下,MMDetection对于Windows系统的支持十分不友好,最新几个版本甚至都没有Windows的份,在耐着性子解决完全部报错后才发现版本不支持,所以如有有兴趣的话还是建议使用Linux或者MacOS。

这里先交代一下版本

因为使用的虚拟机,里面没有装CUDA,所以这里使用的PyTorch是cpu版本。

列出几个关键的版本号

torch == 1.7.1+cpu

torchvision == 0.8.2+cpu

mmcv-full == 1.2.5

MMDetection == 2.8.0

python == 3.6

正式安装

一、创建虚拟环境

首先需要安装Anaconda,这个安装很简单,百度上教程很多,这里不多说。之后使用命令创建mmdetection环境:

conda create -n mmdetection python=3.6

MMDetection的安装与运行-Luninousail ' Blog
成功界面

成功后使用命令激活虚拟环境:

conda activate mmdetection

成功的话shell端会变成这样

MMDetection的安装与运行-Luninousail ' Blog

二、安装Pytorch

装完虚拟环境后就要开始正式安装相关的组件了,第一个要装的是Pytorch,这个是mmdetectiom的核心,官网这里

MMDetection的安装与运行-Luninousail ' Blog

这里直接选择响应的版本进行安装,使用命令:

pip install torch==1.7.1+cpu torchvision==0.8.2+cpu torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html
MMDetection的安装与运行-Luninousail ' Blog
成功界面

安装成功的话可以在shell看到Successfully installed的提示

三、安装mmcv-full

接下载安装mmcv-full,GitHub地址在这里

注意mmcv和Pytorch有版本兼容性问题,具体可以看表

MMDetection的安装与运行-Luninousail ' Blog

根据自己的torch选择版本,这里我使用的是1.7+cpu版本,所以安装的命令是:

pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cpu/torch1.7.0/index.html

四、编译MMDetection

最后就可以把mmdetection 用git clone回来了,命令是:

git clone https://github.com/open-mmlab/mmdetection.git

之后进入目录

cd mmdetection

安装需要的依赖

pip install -r requirements/build.txt

MMDetection的安装与运行-Luninousail ' Blog

最后运行命令进行编译

python setup.py develop

这里需要注意的是mmdetection的编译需要升级系统的GCC,没有或者版本过低的GCC都会导致失败。

五、运行Demo

好了,到这里如果安装过程没有报错的话,mmdetection基本就算是安装成功了,虽然不太可能啦,中间一定会报各种奇怪的错误,根据错误代码百度就好了,安装其实很简单,处理报错才是最麻烦的。

如果耐着性子处理完全部错误后,接下来就可以收获胜利的果实了。

网上的Demo代码我试了一圈,基本都有这样那样的问题,我改了好久最终改出一个能跑的Demo,这里注意一下,网上的demo使用的模型是configs/faster_rcnn_r50_fpn_1x.py

但是最新版本的mmdetection不存在这个文件,只有相似的文件

faster_rcnn_r50_fpn_1x_coco.py

这时如果使用网上demo提供的训练好的模型文件:faster_rcnn_r50_fpn_1x_20181010-3d1b3351.pth 的话,系统会报一个数据集不匹配的错误,在官网看了好久资料后,最后得出结论,要根据算法模型下载相应的训练好的模型,切换到faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth模型后成功跑了出来。

MMDetection的安装与运行-Luninousail ' Blog

最后把demo代码贴到后面用来记录一下。

MMDetection的安装与运行-Luninousail ' Blog

本文系作者 @ 原创发布在 Luninousail ' Blog。未经许可,禁止转载。

喜欢()
评论 (0)
183 文章
4 评论
25 喜欢
Top