一、安装

(1)创建虚拟环境:

conda create -n mmdec python=3.6

完成

(2)激活虚拟环境,安装torch(现在mmdetection需要的torch最低版本为1.1.0)

activate mmdec

发现官网的这个pip也是挺快的(https://pytorch.org/)

pip install http://download.pytorch.org/whl/cu100/torch-1.1.0-cp36-cp36m-win_amd64.whl (本人使用)

pip (--default-timeout=600等待时间) install ****** 若果超时可以用下面的多等待一会儿

其他版本路径:

https://download.pytorch.org/whl/cpu/torch-1.1.0-cp36-cp36m-win_amd64.whl(WIN,CPU)https://download.pytorch.org/whl/cu100/torch-1.1.0-cp36-cp36m-win_amd64.whl (WIN,CUDA 10.0)
https://download.pytorch.org/whl/cu90/torch-1.1.0-cp36-cp36m-win_amd64.whl (WIN,CUDA 9.0)pip install https://download.pytorch.org/whl/cu100/torch-1.0.1-cp35-cp35m-linux_x86_64.whl(linux,CUDA 10.0)

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

pip install cython

pip install scikit-image

pip install torchvision

Pycocotools 这个东西windows安装需要https://github.com/philferriere/cocoapi下载后进入pythonAPI文件夹内

使用python setup.py install

继续安装上面缺少的库:

pip install 库名称 -i https://pypi.tuna.tsinghua.edu.cn/simple

V2EX:http://pypi.v2ex.com/simple
豆瓣:http://pypi.douban.com/simple
中国科学技术大学:http://pypi.mirrors.ustc.edu.cn/simple
清华:https://pypi.tuna.tsinghua.edu.cn/simple

(3)安装mmcv

直接pip安装就可以:pip install mmcv 

以前 我是按照以下安装的

下载:https://github.com/open-mmlab/mmcv

pip install .

补充,电脑重装遇到的问题:anaconda3\envs\torch\lib\site-packages\pip\compat\__init__.py", line 75, in console_to_str
    return s.decode('utf_8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa1 in position 60: invalid start byte

发现是pip版本过低,更新pip 解决问题| python -m pip install --upgrade pip

(4)安装

mmdetection 1.x版本:如果你安装的是VS2015,自定义安装,updata3需要选上,否则这一步失败。

下载:https://github.com/open-mmlab/mmdetection

使用如下命令安装

python setup.py develop -i https://pypi.tuna.tsinghua.edu.cn/simple

mmdetection 2.x版本,使用原本的VS2015报错,然后我安装了vs2019结果cuda又不支持了,我太难了

纠结了一下是升级cuda还是卸载vs2019,决定重新安装一个VS2017 试试。

待续。。。2.1版本的报错,先安装了个2.0 的

ubuntu下和1.x一样的安装方式正常安装

(5)测试

from mmdet.apis import init_detector, inference_detector, show_result
config_file = './configs/faster_rcnn_r50_fpn_1x.py'
checkpoint_file = './checkpoints/faster_rcnn_r50_fpn_1x_20181010-3d1b3351.pth'
model = init_detector(config_file, checkpoint_file)
img = 'demo.jpg'
result = inference_detector(model, img)
show_result(img, result, model.CLASSES)

遇到问题:

0、ImportError: cannot import name 'get_dist_info'

mmcv版本和mmdetection版本不匹配

1、在测试的时候提示:AttributeError: module 'torch.distributed' has no attribute 'is_initialized'定位到错误处修改

-------------------------------------------------------分割线-------------------------------------------------

使用自己的数据集进行训练

1数据集准备:

因为一直用的都是VOC数据集,所以直接训练Voc的数据集

2.在mmdet/datasets文件夹内,修改自己的数据

1、在__init__ 中新增自己的

2、复制voc重命名成自己的MyData.py修改地方已标红

3.修改configs中的配置文件

# model settings
model = dict(type='FasterRCNN',pretrained='torchvision://resnet50',backbone=dict(type='ResNet',depth=50,num_stages=4,out_indices=(0, 1, 2, 3),frozen_stages=1,style='pytorch'),neck=dict(type='FPN',in_channels=[256, 512, 1024, 2048],out_channels=256,num_outs=5),rpn_head=dict(type='RPNHead',in_channels=256,feat_channels=256,anchor_scales=[8],anchor_ratios=[0.5, 1.0, 2.0],anchor_strides=[4, 8, 16, 32, 64],target_means=[.0, .0, .0, .0],target_stds=[1.0, 1.0, 1.0, 1.0],loss_cls=dict(type='CrossEntropyLoss', use_sigmoid=True, loss_weight=1.0),loss_bbox=dict(type='SmoothL1Loss', beta=1.0 / 9.0, loss_weight=1.0)),bbox_roi_extractor=dict(type='SingleRoIExtractor',roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2),out_channels=256,featmap_strides=[4, 8, 16, 32]),bbox_head=dict(type='SharedFCBBoxHead',num_fcs=2,in_channels=256,fc_out_channels=1024,roi_feat_size=7,num_classes=3,  # 类别+1target_means=[0., 0., 0., 0.],target_stds=[0.1, 0.1, 0.2, 0.2],reg_class_agnostic=False,loss_cls=dict(type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0),loss_bbox=dict(type='SmoothL1Loss', beta=1.0, loss_weight=1.0)))
# model training and testing settings
train_cfg = dict(rpn=dict(assigner=dict(type='MaxIoUAssigner',pos_iou_thr=0.7,neg_iou_thr=0.3,min_pos_iou=0.3,ignore_iof_thr=-1),sampler=dict(type='RandomSampler',num=256,pos_fraction=0.5,neg_pos_ub=-1,add_gt_as_proposals=False),allowed_border=0,pos_weight=-1,debug=False),rpn_proposal=dict(nms_across_levels=False,nms_pre=2000,nms_post=2000,max_num=2000,nms_thr=0.7,min_bbox_size=0),rcnn=dict(assigner=dict(type='MaxIoUAssigner',pos_iou_thr=0.5,neg_iou_thr=0.5,min_pos_iou=0.5,ignore_iof_thr=-1),sampler=dict(type='RandomSampler',num=512,pos_fraction=0.25,neg_pos_ub=-1,add_gt_as_proposals=True),pos_weight=-1,debug=False))
test_cfg = dict(rpn=dict(nms_across_levels=False,nms_pre=1000,nms_post=1000,max_num=1000,nms_thr=0.7,min_bbox_size=0),rcnn=dict(score_thr=0.05, nms=dict(type='nms', iou_thr=0.5), max_per_img=100)# soft-nms is also supported for rcnn testing# e.g., nms=dict(type='soft_nms', iou_thr=0.5, min_score=0.05)
)
# dataset settings
dataset_type = 'MyData'
data_root = 'E:/mm/VOCdevkit/'
img_norm_cfg = dict(mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
data = dict(imgs_per_gpu=2,workers_per_gpu=2,train=dict(type='RepeatDataset',  # to avoid reloading datasets frequentlytimes=3,dataset=dict(type=dataset_type,ann_file=[data_root + 'VOC2007/ImageSets/Main/train.txt'],img_prefix=[data_root + 'VOC2007/'],img_scale=(400, 400),img_norm_cfg=img_norm_cfg,size_divisor=32,flip_ratio=0.5,with_mask=False,with_crowd=False,with_label=True)),val=dict(type=dataset_type,ann_file=data_root + 'VOC2007/ImageSets/Main/val.txt',img_prefix=data_root + 'VOC2007/',img_scale=(400, 400),img_norm_cfg=img_norm_cfg,size_divisor=32,flip_ratio=0,with_mask=False,with_crowd=False,with_label=True),test=dict(type=dataset_type,ann_file=data_root + 'VOC2007/ImageSets/Main/test.txt',img_prefix=data_root + 'VOC2007/',img_scale=(400, 400),img_norm_cfg=img_norm_cfg,size_divisor=32,flip_ratio=0,with_mask=False,with_crowd=False,with_label=False,test_mode=True))# optimizer
optimizer = dict(type='SGD', lr=0.02, momentum=0.9, weight_decay=0.0001)
optimizer_config = dict(grad_clip=dict(max_norm=35, norm_type=2))
# learning policy
lr_config = dict(policy='step',warmup='linear',warmup_iters=500,warmup_ratio=1.0 / 3,step=[8, 11])
checkpoint_config = dict(interval=1)
# yapf:disable
log_config = dict(interval=100,hooks=[dict(type='TextLoggerHook'),# dict(type='TensorboardLoggerHook')])
# yapf:enable
# runtime settings
total_epochs = 12
dist_params = dict(backend='nccl')
log_level = 'INFO'
work_dir = 'model'
load_from = None
resume_from = None
workflow = [('train', 1)]

4.使用tools中的train训练

config 变为--config =“配置文件”

5.测试

下载权重

常见问题(本人遇见的):

1、在训练的时候提示的:KeyError: 'None is not in the dataset registry'

修改mmdet/datasets内修改不完整

2、在训练完一个epoch保存权重后提示的:OSError: symbolic link privilege not held

以管理员身份运行pycharm

mmdetection 安装与使用(win10)相关推荐

  1. PostgreSQL10.5安装后(Win10)环境变量配置与运行

    一.PostgreSQL10.5安装后(Win10)环境变量配置 安装见:PostgreSQL10.5安装详细步骤(Win10) 需要设置环境变量,包括三项:data存放路径,lib以及bin目录 C ...

  2. Mac安装双系统-win10

    选择并下载windows镜像 我安装的是win10 64位专业版,很多地方都可以下载的到windows系统镜像,我是在MSDN,我告诉你下载的.win10有家庭版.专业版.企业版和教育版.不同的版本功 ...

  3. ISE 14.7安装教程最新版(Win10安装)——解决Win10安装完后打不开快捷方式的方法

    ISE 14.7安装教程最新版(Win10安装)--解决Win10安装完后打不开快捷方式的方法 参考文章: (1)ISE 14.7安装教程最新版(Win10安装)--解决Win10安装完后打不开快捷方 ...

  4. 8G的U盘轻松帮助你安装win7/win8/win10/xp系统

    你的电脑是否也经常出现卡顿.死机?你的操作系统使用时间太久也会出现,电脑开机无法正常启动但又不是硬件问题,电脑深度中毒且杀毒不彻底.如果用户的电脑遇到上述情况,那么您的电脑最好重装一套操作系统,可是不 ...

  5. # 华硕笔记本电脑如何配置win10系统U盘 # 以及安装或重装win10系统#

    华硕笔记本电脑如何配置win10系统U盘 以及安装或重装win10系统 进入win10官网下载一个工具,之后运行这个工具将事先插入U盘做成系统盘. 对于如何下载win10并制作U盘,可以去参考这个网站 ...

  6. Visual C++6.0安装教程(win10版)及“应用程序无法正常启动(0x0150002)”解决办法

    Visual C++6.0安装教程(win10版)及"应用程序无法正常启动(0x0150002)"解决办法

  7. 不从Win7/Win8.1升级,直接全新安装并激活Win10方法

    不从Win7/Win8.1升级,直接全新安装并激活Win10方法(转自IT之家):方法简单方便, 感觉可节省不少时间,所以搬运分享给大家.        本文针对那些还没有升级Win10的Win7/W ...

  8. Apple芯片Mac安装ARM版Win10完美教程(结尾附视频)

    写在前面:博主是一只经过实战开发历练后投身培训事业的"小山猪",昵称取自动画片<狮子王>中的"彭彭",总是以乐观.积极的心态对待周边的事物.本人的技 ...

  9. Win11安装VMware虚拟机+win10教程(主要遇到蓝屏重启问题)

    现在很多同学都更新了win11的系统,但是Win11和VM有的版本不兼容,导致出现蓝屏问题.这里简单记录一下安装VM和Win10的过程,以及解决蓝屏的方法. 事实上,如果是从官网上下载的最新版的VM, ...

  10. qnap虚拟linux,QNAP进阶教程:威联通NAS 虚拟机教程 安装精简版win10、软路由、群晖NAS系统!...

    威联通最具体的虚拟机利用方式之一,接待点赞.收藏! 6 t* L# m7 X+ E前言 - A- ^8 |# l0 E' E$ k大师好,俺又来了!5 G, c% {7 ]- Z6 Q$ ] 4 }% ...

最新文章

  1. byteofpython.info_byteofpython学习笔记(2)
  2. Zuul网关原理及源码解读(草稿版)
  3. 深圳部分写字楼租金暴跌,为何会出现这种情况?
  4. Round Numbers POJ - 3252(数位dp+判断前导零)
  5. 201521123061 《Java程序设计》第三周学习总结
  6. ctf up怎么写 write_软件测试工程师要不要写工具?
  7. linux arm current_thread_info定义,linux 内核 current全局变量
  8. 微博开发笔记上(未完待续)
  9. java基础-(二)-第一个java程序
  10. P3853 路标设置
  11. win10启用php_zip,win10右键没有压缩文件选项怎么办
  12. 盘点!物流移动机器人的几种定位技术
  13. 东北大学OJ-1212: 实验3-4 :scanf、printf测试
  14. 史上最全Python快速入门教程,让你快速入门python学好python
  15. 重磅!阿里又推免费商用字:阿里巴巴普惠体
  16. iphone绕ID激活并完美重启
  17. Codeup 小白鼠排队
  18. 在Google Doc不可用的时候,见识了Google的18国语言道歉, 力压苹果5国
  19. 【SSM整合】SSM详细整合-maven分模块架构
  20. 2012 VDI环境下,实现WIN7/ThinPC客户端自动配置RemoteAPP和桌面连接

热门文章

  1. 摩尔定律到摩尔第二定律
  2. Windows 11快捷键功能大全 28个Windows 11快捷键功能介绍
  3. 软件测试之独步武林系列(一)
  4. 使用卷积神经网络(普通CNN和改进型LeNet)以及数据增强和迁移学习技巧识别猫和狗,并制作成分类器软件(基于Keras)
  5. 等高线节点过密如何处理?CASS10.1复合线滤波功能详解
  6. 你怎么不招聘 DBA
  7. 【Android玩机】跟大家聊聊面具Magisk的使用(安装、隐藏)
  8. PPT处理控件Aspose.Slides功能演示:使用 C# 在 PowerPoint 演示文稿中创建 SmartArt
  9. 数据仓库(DW)、数据湖、数据中台的关系
  10. uni-app支付宝小程序map地图组件基础操作+画多边形+打点连线