码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Swin Transformer目标检测—训练自己数据集


    文章目录

    • 一、环境配置
      • (1)安装VS2019
      • (2)创建Conda虚拟环境
      • (3)安装mmcv
      • (4)安装mmdetection
      • (5)安装apex
    • 二、工程修改
    • 三、踩坑记录

    一、环境配置

    Code:https://github.com/SwinTransformer/Swin-Transformer-Object-Detection

    软件准备:

    • Ubantu 18.04
    • Pycharm 2020.1
    • Anaconda

    (1)安装VS2019

    VS官网: https://docs.microsoft.com/zh-cn/visualstudio/releases/2019/release-notes
    安装时只勾选桌面端的C++部分就可以,并添加环境变量,安装后需要重启电脑才有效

    (2)创建Conda虚拟环境

    创建:conda create -n swin_det python=3.8
    激活:conda activate swin_det
    pytorch安装:pip3 install torch==1.8.2+cu111 torchvision==0.9.2+cu111 torchaudio===0.8.2 -f https://download.pytorch.org/whl/lts/1.8/torch_lts.html
    其他包安装:pip install cython matplotlib opencv-python timm -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

    (3)安装mmcv

    项目地址:https://github.com/open-mmlab/mmcv/blob/master/README_zh-CN.md

    • 使用Anaconda的Powershell Prompt进入mmcv目录下,执行 pip install -r requirements.txt来安装mmcv所需的python包
    • 运行python setup.py build_ext(这步包括下面的一步就会用到之前VS中的cl工具,若VS安装有问题,这一步没法成功)
    • 运行python setup.py develop重建代码

    (4)安装mmdetection

    项目地址:https://github.com/open-mmlab/mmdetection/tree/v2.11.0

    • 使用Anaconda的Powershell Prompt进入mmdetection的代码目录,执行 pip install -r requirements.txt安装mmdetection所需的python包
    • 运行python setup.py develop重建代码

    (5)安装apex

    项目地址:https://github.com/open-mmlab/mmdetection/tree/v2.11.0

    • 使用Anaconda的Powershell Prompt进入mmdetection的代码目录,执行 pip install -r requirements.txt安装mmdetection所需的python包
    • 运行python setup.py develop重建代码

    二、工程修改

    1. 设置类别
    修改 configs/base/models/mask_rcnn_swin_fpn.py 中 num_classes 为自己数据集的类别(有两处需要修改)
    2. 数据集路径
    配置数据集路径:configs/base/datasets/coco_instance.py 文件的最上面指定了数据集的路径,因此在项目下新建 data/coco目录,下面四个子目录 annotations和test2017,train2017,val2017。
    3. 修改分类数组
    mmdet/datasets/coco.py目录下,CLASSES中填写自己的分类:

    CLASSES = ('class1',)
    
    • 1

    三、踩坑记录

    1. 修改分类数组时,若只有一个类,一定要定义为元组,即类名后面加都好,不然会报错,别问我怎么知道的!
      报错如下:
    # AssertionError: The `num_classes` (80) in Shared2FCBBoxHead of MMDataParallel does not matches the
    
    • 1
    1. 修改完代码以后,若还是包相同的错误,建议执行python setup.py develop再尝试运行

    参考链接:
    https://beyonderwei.com/
    https://blog.csdn.net/hasque2019/article/details/121899614

    测试部分后面跑完有时间再来追加~
    干饭去了!

  • 相关阅读:
    结构体数组经典运用---选票系统
    神舟电脑怎么清理缓存文件?介绍几种简单有效方法
    【云原生】基于windows环境搭建Docker
    表48表48
    (C语言)数据结构——归并排序
    谷粒商城10——分布式缓存Redis 分布式锁Redisson SpringCache自定义缓存配置
    07OpenCV 图像模糊
    有效需求分析培训梳理(一)
    【pytorch】目标检测:YOLO的基本原理与YOLO系列的网络结构
    【附源码】计算机毕业设计java支持协作知识建构的Python程序设计课程学习活动平台设计与实现
  • 原文地址:https://blog.csdn.net/chengxuyuanliwanwan/article/details/125493004
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号