基于MMdetection框架的目标检测研究-1.环境搭建

研究背景: 

最近在做一些瑕疵检测的项目,发现了一个比较好用的瑕疵检测框架,里面囊括了业界大部分经常使用的瑕疵检测算法,在这里记录、分享、总结一下自己的学习过程。

框架介绍:

MMDetection 是一个基于 PyTorch 的目标检测开源工具箱。它是 OpenMMLab 项目的一部分。

主分支代码目前支持 PyTorch 1.5 以上的版本。

详细介绍可以参考:https://gitee.com/mirrors/mmdetection#%E5%AE%89%E8%A3%85

中文文档介绍:https://zhuanlan.zhihu.com/p/101225733

开发及开源者:商汤科技((2018 COCO 目标检测挑战赛冠军))和香港中文大学

框架主流算法:支持Faster-RCNN,Mask-RCNN,Fast-RCNN、Cascade-RCNN以及其他一系列目标检测框架。

特点:相比于Facebook开源的Detectron框架,该框架performance稍高、训练速度稍快、所需显存稍小。

环境说明:

"工欲善其事,必先利其器",配置环境是深度学习的第一道门槛,也是必须迈过的一道门槛,掌握了环境搭建,可以说算是进入了AI大门的第一步。

本人测试安装使用的环境配置如下:

  • 系统环境:Ubuntu 20.04.1 (目前不支持windows系统)
  • python :3.8.10
  • cuda版本:11.7(11.3也是可以的,nvcc --version)
  • cudnn版本:8.2.1
  • torch版本:1.11.0+cu113
  • torchvision版本:0.12.0+cu113
  • 显卡类型:GeForce RTX 3070

查询linux系统版本命令:uname -v            

查看gcc版本:gcc  -v 

查看系统中的GPU版本:lspci | grep -i nvidia

已安装显卡驱动后查询GPU:nvidia-smi -L

查看cuda版本:nvidia-smi     或者(nvcc  -V)

基于MMdetection框架的目标检测研究-1.环境搭建_第1张图片

查看cudnn版本:cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

基于MMdetection框架的目标检测研究-1.环境搭建_第2张图片

查看python版本及相关库版本:

python -V     

pip show torchvision   

pip show torch

环境搭建步骤:

1.创建python虚拟环境:(虚拟环境的好处是可以对不同的项目分别管理),虚拟环境路径(c:\path\to\myenv)可以根据自己的需求进行设置。

虚拟环境创建参考文档:https://docs.python.org/zh-cn/3.8/library/venv.html

python -m venv c:\path\to\myenv

激活虚拟环境:
进入创建的虚拟python环境目录bin文件夹,llinux系统激活命令是: 

source activate

,windows激活命令是:

activate

 退出虚拟环境的命令是:

deactivate

2.安装pytorch:

pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113

3.测试环境是否安装成功

import torch
torch.__version__
torch.cuda.is_available()

4.安装mmcv

pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.11.0/index.html

若安装MMCV报错,请参考以下文章:https://www.cnblogs.com/cs-markdown10086/p/16001953.html 

5.安装mmdetection

pip install mmdet -i https://pypi.tuna.tsinghua.edu.cn/simple

6.测试总体环境

import torch
import torchvision
import mmdet
from mmcv.ops import get_compiling_cuda_version,get_compiler_version
# 检查pytorch和cuda是否可用
print(torch.__version__, torch.cuda.is_available())
# 检查mmdet是否可用
print(mmdet.__version__)
# 检查mmcv安装是否成功
print(get_compiling_cuda_version())
print(get_compiler_version())

7.训练(Downloading: "https://download.pytorch.org/models/resnet50-0676ba61.pth" )

python tools/train.py configs/cascade_rcnn/cascade_rcnn_r101_fpn_1x_coco.py

python tools/train.py work_dirs/cascade_rcnn_r101_fpn_1x_coco/cascade_rcnn_r101_fpn_1x_coco.py

上面第一行会创建默认文件夹,下面是指定目录文件夹。 

8.测试

python tools/test.py configs/cascade_rcnn_r50_fpn_1x.py work_dirs/latest.pth --out result/result.pkl --eval bbox

9. 结果可视化

python tools/analysis_tools/analyze_logs.py plot_curve ./work_dirs/20220914_192557.log.json --keys  bbox_mAP --out mAP_5.jpg
python tools/analysis_tools/analyze_logs.py plot_curve ./work_dirs/20220914_192557.log.json --keys bbox_mAP_50 --legend bbox_mAP_50 --out mAP_5.jpg
python tools/analysis_tools/analyze_logs.py plot_curve ./work_dirs/20220914_192557.log.json --keys loss --legend loss --out loss_5.jpg
python tools/analysis_tools/analyze_logs.py plot_curve ./work_dirs/20220914_192557.log.json --keys s0.acc --legend s0.acc --out acc_5.jpg
python tools/analysis_tools/analyze_logs.py plot_curve ./work_dirs/faster_rcnn_dcpn_fpn/20221011_151620.log.json --keys  acc --legend acc --out acc_5.jpg
python tools/analysis_tools/analyze_logs.py plot_curve ./work_dirs/faster_rcnn_dcpn_fpn/20221011_151620.log.json --keys  loss --legend loss --out loss.jpg

该框架对应的论文下载地址:https://arxiv.org/pdf/1906.07155.pdf

你可能感兴趣的:(MMdetection,深度学习,pytorch,MMdetection,瑕疵检测,环境搭建)