logo资料库

mmdetection-中文文档(自己翻译).pdf

第1页 / 共54页
第2页 / 共54页
第3页 / 共54页
第4页 / 共54页
第5页 / 共54页
第6页 / 共54页
第7页 / 共54页
第8页 / 共54页
资料共54页,剩余部分请下载后查看
Mmdetection 中文文档(由原英文文档翻译) 一、安装 (一)所需条件 1.Linux 操作系统(官方不支持 Windows 操作系统,如果要在 Windows 上使用,见我博客中的另一篇文章) 2.Python 3.5+ 3.PyTorch1.1 或者更高版本 4.CUDA9.0 或者更高版本 5.NCCL2 6.GCC4.9 或更高版本 7.mmcv 8.安装 Anaconda 3(原文中没有此条,但确实需要) 我们已经在以下版本的操作系统或者软件中进行了测试: OS: Ubuntu 16.04/18.04 and CentOS 7.2 CUDA: 9.0/9.2/10.0/10.1 NCCL: 2.1.15/2.2.13/2.3.7/2.4.2 GCC(G++): 4.9/5.3/5.4/7.3 (二)安装 mmdetection(linux 环境下,windows 环境见我另外 一篇博客) 1.创建 conda 虚拟环境并激活 conda create -n open-mmlab python=3.7 -y conda activate open-mmlab
2.根据官方说明安装 PyTorch 和 torchvision,如: conda install pytorch torchvision -c pytorch 3.克隆 mmdetecion 库(国内用户推荐在码云镜像中下载,不是 打广告,确实速度快) git clone https://github.com/open-mmlab/mmdetection.git cd mmdetection 4.安装 mmdetection(其他依赖将会自动安装) pip install mmcv python setup.py develop # or "pip install -v -e ." 注意: 1.在上面的第 4 步时,使用 git 提交的 id 将被写入版本号。比如 0.6.0+2e7045c.版本也将被保存在训练模型中。这就建议你在每 次运行第 4 步时,将从 github 中获取一些更新。如果 c++/cuda 源码被调整了,那么这一步是必须做的。 2.按照上面的说明,mmdetection 被安装为开发模式,任何本地 代码的修改都将生效,而不需要再重新安装它(除非你提交了一 些命令想要更新版本号)。 3.如果你想要使用 opencv-python-headless 代替 opencv-python, 你可以在安装 MMCV 前安装它。 (三)另外一种方式:Docker 镜像 我们推荐一个 Dockerfile 来建立镜像: # build an image with PyTorch 1.1, CUDA 10.0 and CUDNN 7.5
docker build -t mmdetection docker/ (四)准备数据集 建议将数据集根目录和$MMDETECTION/data 建立链接。如果你 的目录结构和下面所示的不同,你要在 config 文件中改变相应的 路径。 mmdetection ├── mmdet ├── tools ├── configs ├── data │ ├── coco │ │ ├── annotations │ │ ├── train2017 │ │ ├── val2017 │ │ ├── test2017 │ ├── cityscapes │ │ ├── annotations │ │ ├── train │ │ ├── val │ ├── VOCdevkit │ │ ├── VOC2007 │ │ ├── VOC2012
cityscapes annotations 必须使用 cityscapesScripts 工具箱转变为 coco 格式。我们计划提供一个简单易用的转换脚本。暂时,我 们建议 maskrcnn-benchmark 工具箱提供的说明。当使用这个脚 本时,所有的图片需要被放在同一个目录下。在 linux 系统,下 面的例子将训练图片移动到一个目录下: cd data/cityscapes/ mv train/*/* train/ (五)一个从头开始设置的脚本 下面是一个用 conda 设置 mmdetection 和连接 dataset 路径的全 脚本。 conda create -n open-mmlab python=3.7 -y conda activate open-mmlab conda install -c pytorch pytorch torchvision -y conda install cython -y git clone https://github.com/open-mmlab/mmdetection.git cd mmdetection pip install -v -e . mkdir data ln -s $COCO_ROOT data (六)使用多个 MMDetection 版本 如果在你的计算机上有不止一个 mmdetection,你想要有选择的 使用它们,建议创建多个 conda 环境,在不同的环境中安装不同
的版本。 另外一种方式是,在主要的脚本中(如 train.py, test.py 或者其他 你运行的脚本)插入如下代码: import os.path as osp import sys sys.path.insert(0, osp.join(osp.dirname(osp.abspath(__file__)), '../')) 或者,如果你是暂时使用一个版本,在终端上相应的文件目录下, 运行下面的命令: export PYTHONPATH=`pwd`:$PYTHONPATH 二、入门 本节提供 MMDetection 使用的基础教程。关于安装说明, 请看上一节。 (一)预训练模型检测(推理) 我们提供了一个测试脚本来评测一个完整的数据集(比如 COCO,PASCAL VOC 等),也提供了一些高级接口来更加容易的整 合其他工程。 1.测试一个数据集。 包括:单 GPU 测试,多 GPU 测试,可视化检测结果。 你可以使用如下命令来测试一个数据集: # 单 GPU 测试 python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--out ${RESULT_FILE}] [--eval ${EVAL_METRICS}] [--show]
#多 GPU 测试 ./tools/dist_test.sh ${CONFIG_FILE} ${CHECKPOINT_FILE} ${GPU_NUM} [--out ${RESULT_FILE}] [--eval ${EVAL_METRICS}] 可选参数: RESULT_FILE:输出 pickle 格式结果的文件名。如果不明确指 定,结果将不会被保存到文件。 EVAL_METRICS:被检测物体的结果。允许取以下值:proposal_fast, proposal, bbox, segm, keypoints. --show:如果明确,被检测结果将在一个新的窗口上以图片 显示。这个只适用于单 GPU 测试。请确保 GUI 在你的环境中式 可用的,否则你可能会遇到以下错误:cannot connect to X server。 例子: 假设你已经在 checkpoints/文件夹下,下载好了 checkpoints 文件。 测试 Faster R-CNN 模型并显示结果命令如下: python tools/test.py configs/faster_rcnn_r50_fpn_1x.py checkpoints/faster_rcnn_r50_fpn_1x_20181010-3d1b3351.pth --show 测试 Mask R-CNN 模型并预测 bbox 和 maskAP,命令如下: python tools/test.py configs/mask_rcnn_r50_fpn_1x.py checkpoints/mask_rcnn_r50_fpn_1x_20181010-069fa190.pth --out results.pkl --eval bbox segm
用 8 个 GPU 测试 Mask R-CNN 并预测 bbox 和 maskAP,命令 如下: ./tools/dist_test.sh configs/mask_rcnn_r50_fpn_1x.py \ checkpoints/mask_rcnn_r50_fpn_1x_20181010-069fa190.pth \ 8 --out results.pkl --eval bbox segm 2.网络摄像头例子 python demo/webcam_demo.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--device ${GPU_ID}] [--camera-id ${CAMERA-ID}] [--score-thr ${SCORE_THR}] 例子: python demo/webcam_demo.py configs/faster_rcnn_r50_fpn_1x.py checkpoints/faster_rcnn_r50_fpn_1x_20181010-3d1b3351.pth (二)检测图像的高级 API 1.同步接口 下面是一个构建模型来测试图像的例子 from mmdet.apis import init_detector, inference_detector, show_result import mmcv
config_file = 'configs/faster_rcnn_r50_fpn_1x.py' checkpoint_file = 'checkpoints/faster_rcnn_r50_fpn_1x_20181010-3d1b3351.pt h' # build the model from a config file and a checkpoint file model = init_detector(config_file, checkpoint_file, device='cuda:0') # test a single image and show the results img = 'test.jpg' # or img = mmcv.imread(img), which will only load it once result = inference_detector(model, img) # visualize the results in a new window show_result(img, result, model.CLASSES) # or save the visualization results to image files show_result(img, result, model.CLASSES, out_file='result.jpg') # test a video and show the results video = mmcv.VideoReader('video.mp4') for frame in video:
分享到:
收藏