研究背景:
最近在做一些瑕疵检测的项目,发现了一个比较好用的瑕疵检测框架,里面囊括了业界大部分经常使用的瑕疵检测算法,在这里记录、分享、总结一下自己的学习过程。
框架介绍:
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大门的第一步。
本人测试安装使用的环境配置如下:
查询linux系统版本命令:uname -v
查看gcc版本:gcc -v
查看系统中的GPU版本:lspci | grep -i nvidia
已安装显卡驱动后查询GPU:nvidia-smi -L
查看cuda版本:nvidia-smi 或者(nvcc -V)
查看cudnn版本:cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 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