MMDetection学习笔记(1)--安装及demo测试全过程

MMDetection是什么?

MMDetection是一个基于Pytorch的目标检测开源工具箱,简直是懒狗福音啊~

放一下官方的GitHub链接:GitHub - open-mmlab/mmdetection: OpenMMLab Detection Toolbox and Benchmark

MMDetection的主要特征:

  • 模块化设计

        将检测框架解耦成不同的模块组件,通过组合不同的模块组件,用户可以便捷地构建自定义的检测模型     

  • 丰富的即插即用的算法和模型

        支持众多主流的最新的检测算法,例如 Faster R-CNN, Mask R-CNN, RetinaNet等

  • 速度快

        基本的框和mask操作都实现了GPU版本,训练速度快

  • 性能高        

        牛逼的开发团队

安装全过程及问题解决

1. 相关环境配置要求

话不多说,直接开干,首先按照官方要求的安装环境:

  • Linux or macOS (Windows is in experimental support)
  • Python 3.6+
  • PyTorch 1.3+
  • CUDA 9.2+ (If you build PyTorch from source, CUDA 9.0 is also compatible)
  • GCC 5+
  • MMCV

这里我个人的安装环境是这样的:

  • Linux(Ubuntu16.04)
  • Python 3.7.7
  • PyTorch 1.6.0
  • CUDA 10.1
  • GCC 5.4.0
  • MMCV

可以通过以下命令来查看各种包的版本;

  1. 查看pytorch版本:
  2. 查看cuda版本:nvcc --version
  3. 查看gcc版本:gcc --version 

---------------------------------------------------------------------------------------------------------------------------------

建议:

  1. pytorch, python....默认不要安装最新版的
  2. 为了避免安装包版本冲突问题,建议创建一个conda虚拟环境专门来存放相关包,这一步应该在安装pytorch等包之前执行,具体命令如下:
    conda create -n openmmlab python=3.7 -y
    conda activate openmmlab

    openmmlab可以设置成自己喜欢的环境名称

  3. 建议在linux系统上安装,windows虽然目前已支持,但是版本比较旧

---------------------------------------------------------------------------------------------------------------------------------

2. 安装MMDetection

首先我们先把相关文件下载下来

 通过进入目标目录git clone...或者直接下载压缩包的形式

这是文件的大概组成,其中demo主要存放demo图片和视频,demo脚本;configs主要存放各种算法框架的脚本,docs文件里面的install.md是用来讲解安装过程和环境配置;checkpoints是存放训练权重文件的,这个目录需要自己创建,里面的.pth文件需要对应要使用的不同的算法框架进行自行下载,具体后面会讲

然后我们开始安装MMDetection,官方建议的方法是用MIM来安装,这里就只展示这种方法,手动安装的方法可以在GitHub上查看

pip install openmim
mim install mmdet

我们可以看到上面目录图片里有一个requirements.txt的文件,这用来导向整体项目的一些python的依赖,在根目录下打开命令行窗口(要激活刚刚创建的虚拟环境),执行命令:

pip install -r requirements.txt

执行上面的命令之后就会自动安装一些依赖

3.安装COCO数据集

安装好MMDetection后,我们需要安装coco数据集

 安装后的文件结构如下,我主要会用到Python的接口

 进入到PythonAPI, 里面会有一个setup.py, 我们在PythonAPI目录下打开命令行窗口(虚拟环境下),输入以下命令以完成配置:

python setup.py build_ext install

注意:重新编译setup.py的话要先把build, pycocotools.egg-info删除干净

通过pip list查看是否成功安装pycocotools

再回到mmdetection根目录,打开命令行窗口,输入:

python setup.py develop

上面这行命令是用来安装包的,类似于"python setup.py install", 此处develpo不同于install,该方法不会真正的安装包,而是在系统环境中创建一个软链接指向包实际所在目录,这边在修改包之后不用再安装就能生效,便于调试。适用于项目处于开发阶段。

运行demo

到此我们已把所有基本的包和环境都安装好了,接下来就开始运行我们的demo了。首先打开mmdetection/config选一个算法框架,例如,假如我选择faster r-cnn,打开目录后,可以看到里面的文件是这样的:

 打开README.md,可以看到文件名称的含义

 这里我选择了mask_rcnn_fpn_1x_coco的框架,对应README.md中找到对应的权重文件下载链接,[model]对应的链接就是权重文件的下载链接

 打开链接之后,自动下载权重文件,我们在mmdetection目录下新建一个checkpoints目录,这个目录用来存放权重文件

下载好权重文件之后我们就可以开始测试了,输入下面的命令

 发现这里出现了一个错误,ImportError: /opt/ros/kinetic/lib/python2.7/dist-packages/cv2.so: undefined symbol: PyCObject_Type

仔细看,发现是与之前安装的ROS有关,这里我们安装的opencv-python包是存放在anaconda下的,而在使用import cv2的时候会出现此错误,原因是ROS安装之后的~/.bashrc文件多出一句:

source /opt/ros/kinetic/setup.bash

因为是受ROS安装的影响,ROS安装之后会在python中加入:'/opt/ros/kinetic/lib/python2.7/dist-packages',为了解决此问题,可以在需要运行的python文件(即使用 import cv2的python文件)中,添加以下代码:

import sys
sys.path.remove('/opt/ros/kinetic/lib/python2.7/dist-packages')

如下图:

 通过这两行代码,我们可以把ROS写入path中的路径清除

解决这个问题之后我们再尝试重新输入测试的命令,这里我又选用了其他算法框架哈哈哈: 

 得到结果:

 

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值