目标检测00-02:mmdetection(Foveabox为例)-官方数据训练测试-COCO

以下链接是个人关于mmdetection(Foveabox-目标检测框架)所有见解,如有错误欢迎大家指出,我会第一时间纠正。有兴趣的朋友可以加微信:17575010159 相互讨论技术。若是帮助到了你什么,一定要记得点赞!因为这是对我最大的鼓励。 文末附带 \color{blue}{文末附带} 文末附带 公众号 − \color{blue}{公众号 -} 公众号 海量资源。 \color{blue}{ 海量资源}。 海量资源

目标检测00-00:mmdetection(Foveabox为例)-目录-史上最新无死角讲解

该系列博客主要以 Foveabox 为例

注意,本人编写该博客的时间为 2020 / 09 / 02 ,也就是说,你现在下载的作者代码或许和 \color{red}{注意,本人编写该博客的时间为2020/09/02,也就是说,你现在下载的作者代码或许和} 注意,本人编写该博客的时间为2020/09/02,也就是说,你现在下载的作者代码或许和
本人的代码不一样(如果作者有更新过)还有就是,本人调试该代码为 u b u n t u 18.04 系统 \color{red}{本人的代码不一样(如果作者有更新过)还有就是,本人调试该代码为ubuntu18.04系统} 本人的代码不一样(如果作者有更新过)还有就是,本人调试该代码为ubuntu18.04系统
即下面的报错使用 u b u n t u 18.04 报错的过程,以及解决办法 \color{red}{即下面的报错使用ubuntu18.04报错的过程,以及解决办法} 即下面的报错使用ubuntu18.04报错的过程,以及解决办法

anconda环境搭建

请安装合适 c u d a 版本的 p y t o r c h ,不要直接复制 \color{red}{请安装合适cuda版本的pytorch,不要直接复制} 请安装合适cuda版本的pytorch,不要直接复制

# mmdetection-root表示从github下载项目的根目录
cd ${mmdetection-root}
conda create -n 09.mmdetection-pytorch1.5-py3.6  -y python=3.6
conda activate 09.mmdetection-pytorch1.5-py3.6
pip install torch==1.5.0+cu101 torchvision==0.6.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html
pip install -r requirements/build.txt
python setup.py develop
pip install mmcv -i https://pypi.douban.com/simple

 

数据处理,模型下载

数据摆放
上一篇博客已经给出 COCO 数据的下载链接,下载下来之后本人摆放如下(没有的目录请自行创建):
在这里插入图片描述

#  $MMPOSE表示项目(从githubu下载)的根目录
cd ${mmdetection-root}
# 创建软连接。注意 ../../Dataset data 需要替换成你本人Dataset路径
ln -s ../../Dataset data

其中 annotations 文件夹存在如下文件(有些东西是非必要的,根据上篇博客的提示下载即可):
在这里插入图片描述

模型下载
根据如下网址:https://github.com/open-mmlab/mmdetection/tree/master/configs/foveabox
下载:
在这里插入图片描述
下载的 fovea_r50_fpn_4x4_2x_coco_20200203-2df792b1.pth 与 fovea_r50_fpn_4x4_2x_coco_20200203_112043.log.json 文件存放在 mmdetection-root/checkpoints(如果不存在该文件夹,请自行创建)。
 

模型测试

指令1

#  $MMPOSE表示项目(从githubu下载)的根目录
cd ${mmdetection-root}
python tools/test.py configs/foveabox/fovea_r50_fpn_4x4_2x_coco.py     checkpoints/fovea_r50_fpn_4x4_2x_coco_20200203-2df792b1.pth  --show

指令2

# fovea_r50_fpn_4x4_2x_coco 表示你想保存测试图片的目录 
python tools/test.py configs/foveabox/fovea_r50_fpn_4x4_2x_coco.py     checkpoints/fovea_r50_fpn_4x4_2x_coco_20200203-2df792b1.pth  --show-dir  fovea_r50_fpn_4x4_2x_coco

如果执行第一个测试指令。图片会在桌面展示出来,本人如下:
在这里插入图片描述
如果执行第二条指令。其结果测试结果会保存在 fovea_r50_fpn_4x4_2x_coco 文件夹之中。
在这里插入图片描述
指令3:mAP评估

# proposal 可以省略,相关资料可以
python tools/test.py configs/foveabox/fovea_r50_fpn_4x4_2x_coco.py     checkpoints/fovea_r50_fpn_4x4_2x_coco_20200203-2df792b1.pth     --eval  bbox  proposal

本人显示如下:
在这里插入图片描述
我们还可以查看每个类别的mAP值,执行指令如下:

python tools/test.py configs/foveabox/fovea_r50_fpn_4x4_2x_coco.py     checkpoints/fovea_r50_fpn_4x4_2x_coco_20200203-2df792b1.pth    --eval-options  'classwise=True'  --eval bbox  proposal

在这里插入图片描述
指令4:测试结果转换为json文件:

python tools/test.py configs/foveabox/fovea_r50_fpn_4x4_2x_coco.py     checkpoints/fovea_r50_fpn_4x4_2x_coco_20200203-2df792b1.pth    --format-only --eval-options "jsonfile_prefix=./fovea_r50_fpn_4x4_2x_coco"

在项目根目录会生成 fovea_r50_fpn_4x4_2x_coco.bbox.json 文件。

 

模型训练

执行训练命令(单GPU):

#  $MMPOSE表示项目(从githubu下载)的根目录
cd ${mmdetection-root}
python tools/train.py configs/foveabox/fovea_r50_fpn_4x4_2x_coco.py

如果训练多个GPU:

# 2表示两个GPU(多个则把2替换即可)
python tools/train.py configs/foveabox/fovea_r50_fpn_4x4_2x_coco.py 2

分布式训练其他的等请查看:https://github.com/open-mmlab/mmdetection/blob/master/docs/getting_started.md

报错1

  File "/my_app/anaconda3/envs/09.-pytorch1.5-py3.6/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named 'mmcv._ext'

执行:

pip uninstall mmcv
pip install mmcv-full -i https://pypi.douban.com/simple

 
报错2

  File "/work/2.ChiPeak/5.OpenMMLab/4.mmdetection/1.mmdetection/1.mmdetection-init-master/mmdet/datasets/coco.py", line 47, in load_annotations
    self.cat_ids = self.coco.get_cat_ids(cat_names=self.CLASSES)
AttributeError: 'COCO' object has no attribute 'get_cat_ids'

执行

pip uninstall pycocotools
pip install "git+https://gitee.com/ztdztd/cocoapi.git#subdirectory=pycocotools"

 
报错3

RuntimeError: CUDA out of memory. Tried to allocate 66.00 MiB (GPU 0; 5.81 GiB total capacity; 4.89 GiB already allocated; 56.62 MiB free; 5.01 GiB reserved in total by PyTorch)

修改 configs/foveabox/fovea_r50_fpn_4x4_2x_coco.py 文件,在文件最后添加:

total_epochs = 24
data = dict(samples_per_gpu=2,  workers_per_gpu=2)

成功训练之后被人打印如下:
在这里插入图片描述

 

demo使用

测试单张图片

python demo/image_demo.py demo/demo.jpg configs/foveabox/fovea_r50_fpn_4x4_2x_coco.py     checkpoints/fovea_r50_fpn_4x4_2x_coco_20200203-2df792b1.pth  --device cuda

本人显示如下:
在这里插入图片描述
通过摄像头测试

python demo/webcam_demo.py demo/demo.jpg configs/foveabox/fovea_r50_fpn_4x4_2x_coco.py     checkpoints/fovea_r50_fpn_4x4_2x_coco_20200203-2df792b1.pth

这里就不粘贴效果图片了。

 

实用代码

分析loss_cls
执行代码:

python tools/analyze_logs.py plot_curve checkpoints/fovea_r50_fpn_4x4_2x_coco_20200203_112043.log.json  --keys loss_cls --legend loss_cls

本人打印如下:
在这里插入图片描述
或者

python tools/analyze_logs.py plot_curve checkpoints/fovea_r50_fpn_4x4_2x_coco_20200203_112043.log.json    --keys loss_cls loss_bbox --out losses.pdf

在项目根目录可以看到 losses.pdf 文件,本人显示如下:
在这里插入图片描述
计算mAP

python tools/analyze_logs.py plot_curve checkpoints/fovea_r50_fpn_4x4_2x_coco_20200203_112043.log.json  --keys bbox_mAP --legend  run

本人打印如下:
在这里插入图片描述
可以多个.log.json 文件进行对比,如下指令:

python tools/analyze_logs.py plot_curve   log1.json log2.json --keys bbox_mAP --legend run1 run2

其余工具

等等。还有其他很多实用的工具,具体的介绍查看
https://github.com/open-mmlab/mmdetection/blob/master/docs/getting_started.md

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江南才尽,年少无知!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值