• MMdetection瑕疵检测环境搭建


    研究背景: 

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

    框架介绍:

    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)

    查看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.测试环境是否安装成功

    1. import torch
    2. torch.__version__
    3. 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.测试总体环境

    1. import torch
    2. import torchvision
    3. import mmdet
    4. from mmcv.ops import get_compiling_cuda_version,get_compiler_version
    5. # 检查pytorch和cuda是否可用
    6. print(torch.__version__, torch.cuda.is_available())
    7. # 检查mmdet是否可用
    8. print(mmdet.__version__)
    9. # 检查mmcv安装是否成功
    10. print(get_compiling_cuda_version())
    11. print(get_compiler_version())

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

    1. python tools/train.py configs/cascade_rcnn/cascade_rcnn_r101_fpn_1x_coco.py
    2. 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. 结果可视化

    1. python tools/analysis_tools/analyze_logs.py plot_curve ./work_dirs/20220914_192557.log.json --keys bbox_mAP --out mAP_5.jpg
    2. 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
    3. python tools/analysis_tools/analyze_logs.py plot_curve ./work_dirs/20220914_192557.log.json --keys loss --legend loss --out loss_5.jpg
    4. 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
    5. 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
    6. 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

  • 相关阅读:
    [附源码]Python计算机毕业设计Django大学生考勤管理系统论文
    RK3399驱动开发 | 07 - GT911触摸屏驱动调试及问题分析解决(基于RK SDK Linux 4.4.194内核)
    idea部署javaSE项目(awt+swing项目)/idea导入eclipse的javaSE项目
    基于神经网络的智能诊断,基于神经网络的控制
    深度解析网络代理技术及其在网络安全和爬虫应用中的关键作用
    使用环信提供的uni-app Demo,快速实现一对一单聊
    HTML+CSS个人电影网页设计——电影从你的全世界路过(4页)带音乐特效
    处理问题,心态崩了?论一个程序员的基本素养
    Vue中如何进行拖拽与排序功能实现
    pytest学习-pytorch单元测试
  • 原文地址:https://blog.csdn.net/mzl_18353516147/article/details/126767925