mmdetection的VOC数据集训练、测试、保存(测试图片)

2023-11-11

mmdetection训练、测试总结

1)数据集格式:voc数据集;
在/mmdetection/data/VOCdekit 上传数据,改名为VOC2007,其中包含JPEGImages/Annotations/ImageSets等;

2)代码修改:
①mmdet/dataset/voc.py,把里面的类别改成你自己数据集的类别。
②mmdet/core/evaluation/class_name.py,把里面的voc_classes()改成你自己数据集的类别。
③修改config文件
pretrained是预训练模型的绝对路径,例如:pretrained=’/home/haohao/zmp/mmdetection/mmdet/models/resnet101-5d3b4d8f.pth’,

#data settings
num_classes=179, #修改为自己数据集的类别数+1、
dataset_type = ‘VOCDataset’
data_root = ‘data/VOCdevkit/’
ann_file=data_root + ‘VOC2007/ImageSets/Main/train.txt’,
img_prefix=data_root + ‘VOC2007/’, ###多个train/trainval/test/路径需修改

训练:python tools/train.py configs/retinanet_r101_fpn_1x.py --gpus 1
报错:AttributeError: ‘NoneType’ object has no attribute ‘text’
原因:xml不含有difficult
解决:把mmdet/dataset里面的xml_style中的difficult语句删掉

测试:python tools/test.py configs/retinanet_r101_fpn_1x.py work_dirs/retinanet_r101_fpn_1x/latest.pth --out ./test_result/retinanet_r101_fpn_1x/latest.pkl --eval mAP (显示result)
python tools/test.py configs/retinanet_r101_fpn_1x.py work_dirs/retinanet_r101_fpn_1x/latest.pth --out ./test_result/retinanet_r101_fpn_1x/latest.pkl --show (保存测试后的图片)

原测试是仅展示测试结果,其中包含 | class | gts | dets | tp | fp | recall | precisions | ap(fp、tp、precisions为后来添加代码展示出来),为了保存测试图片,后又修改mmdet/apis中的test.py,
###zmp add(savepeth需绝对路径,否则无法保存)
savepath = “/home/haohao/zmp/mmdetection/test_result/test_pic/” + str(i)+’.jpg’
# if show:
model.module.show_result(data, result, score_thr=0.3, out_file = savepath)
后又在mmdet/models/detectors/下的base.py文件中的def show_result
添加show 和 out_file。
def show_result(self, data, result, dataset=None, score_thr=0.3, show=True, out_file=None):
if out_file is not None:
show = False
#print(out_file)
mmcv.imshow_det_bboxes(
img_show,
bboxes,
labels,
class_names=class_names,
score_thr=score_thr,
show=show,
out_file=out_file)

config文件里设置框的阈值和nms的大小,我针对我自己的数据集设置框的阈值为0.45,nms为0.3
test_cfg = dict(
nms_pre=1000,
min_bbox_size=0,
score_thr=0.45, ###框的阈值
nms=dict(type=‘nms’, iou_thr=0.3), ###nms
max_per_img=100)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mmdetection的VOC数据集训练、测试、保存(测试图片) 的相关文章

随机推荐

  • 缺少项目经验 & 找工作处处碰壁?这 240 个实战项目请打包带走!

    全部面试找工作时 最常被问到的问题就是 有什么项目经验 对于毕业生来说 我们刚走出校园 还没有工作和项目经验 只能拿学校里练习做的 小游戏 或者 命令行程序 出来 但是 这些项目并不符合现代编程的需要 现代编程需要 前后端分工合作 网络接入
  • 云直播SDK核心功能对比|腾讯云、阿里云、声网、即构等SDK厂商对比

    直播业务概述 大家所熟知的直播平台虎牙 斗鱼 快手 抖音 B站 直播功能看似普遍 但从零到一开发却不简单 直播中运用到的技术难点非常之多 音频视频处理 编解码 前后处理 直播分发 即时通讯等技术 学好任何一项都需要比较高的成本 将它们融合到
  • QT从入门到实战x篇_14_消息对话框(QMessageBox、静态成员函数的访问、修改按键、利用函数返回值为枚举判断按键类型,实现指定动作)

    接上篇 QT从入门到实战x篇 xx 模态和非模态对话框创建 对话框建立在栈上运行完即释放 堆上不删除不可释放 对象在栈上及堆上的生命周期问题需弄懂 在帮助文档中 搜索QMessageBox 会看到其比较重要的几个函数如下 对应的为静态成员函
  • npm start 作用

    在配置phonecat项目时需要运行npm start在本地配置一个服务器环境 npm start首先会安装一系列的必要程序 这些程序依赖package json中的内容 package json中的内容详解如下 依赖包介绍 在克隆项目之后
  • 【Android开发】toast提示

    什么是Toast 在屏幕下方浮现出一个窗口 显示一段时间后又消失 这个可视化组件叫做 Toast 它主要用于提示用户某种事件发生了 如何在添加Toast 最关键的是在事件处理逻辑中加两条语句 定义一个Toast 用makeText 设置要浮
  • 饥荒暴食模式服务器无响应,饥荒暴食模式无银盘图文攻略介绍

    饥荒暴食模式无银盘图文攻略介绍 2018 06 26 17 03 50来源 游戏下载编辑 苦力趴评论 0 饥荒 近日推出了新的游戏模式暴食模式 玩家可以选择单人通关亦或是组队一同任务 下面就为大家带来饥荒暴食模式无银盘图文攻略介绍 基本思路
  • 数据库之数据库设计和E-R模型

    本篇文章介绍数据库设计和E R模型 内容基本是笔者在学习 数据库系统概念 时摘抄总结而来 仅作笔记 实体 联系模型 实体 联系 entity relationship E R 数据模型的提出旨在方便数据库的设计 它是通过允许定义代表数据库全
  • related work

    Traditional approaches e g genetic algorithm GA 2 and ant colony optimization ACO 3 can obtain optimal mapping results b
  • mysql查询练习(三)

    31 查询成绩比该课程平均成绩低的同学的成绩表 mysql gt select from score a where degree lt select avg degree from score b where a cno b cno sn
  • 查看linux系统版本命令

    一 查看内核版本命令 1 root SOR SYS cat proc version Linux version 2 6 18 238 el5 mockbuild x86 012 build bos redhat com gcc versi
  • Robot Framework完整流程学习--分层思想

    一 环境搭建 网上有很多的教程 这里就不多讲了 二 RIDE的界面认识 这里只介绍几个重要常用的功能 其他相信自己都能理解 1 Search Keywords F5 搜索关键字 2 Content Assistance 内容助手 3 Vie
  • java 多线程 总结一

    首先讲一下进程和线程的区别 进程 每个进程都有独立的代码和数据空间 进程上下文 进程间的切换会有较大的开销 一个进程包含1 n个线程 线程 同一类线程共享代码和数据空间 每个线程有独立的运行栈和程序计数器 PC 线程切换开销小 线程和进程一
  • nmap常规使用和参数超细详解 -- 小黑liux武器库详解<宝藏文>

    namp非常强大的主机发现和端口扫描工具 这是web渗透常用的工具 包含四项基本功能 主机发现 端口扫描 版本侦测 操作系统侦测 目录 常规使用 单体拳法 组合拳 参数详解 主机发现 扫描技术 服务版本探测 操作系统检测 防火墙 IDS规避
  • opencv +数字识别

    现在很多场景需要使用的数字识别 比如银行卡识别 以及车牌识别等 在AI领域有很多图像识别算法 大多是居于opencv 或者谷歌开源的tesseract 识别 由于公司业务需要 需要开发一个客户端程序 同时需要在xp这种老古董的机子上运行 故
  • protoBuffer的下载以及使用①

    这里写了一个简单的示例检测proto是否可以使用 使用protoBuf需要提供以下 protobuf java 2 6 1 sources jar protoc 2 6 1 win32 zip 这两个文件我已经添加了附件 当然也可去谷歌官网
  • mysql报错合集

    1 Too many connections 报错 quickBI上报错 数据源执行SQL失败 INTERNAL java sql SQLException com mysql jdbc exceptions jdbc4 MySQLNonT
  • java.lang.ClassCastException: java.lang.Integer cannot be cast to java.math.BigD

    解决 将int类型转成BigDecimal类型就可以了 filtrationList add new Filtration MatchType EQ BigDecimal valueOf 0 fisRemove java lang Clas
  • 东北大学acm第五周周赛

    include
  • Resources.getResourceAsStream用法

    Resources com ibatis common resource Resources 类为从类路径中加载资源 提供了易于使用的方法 处理 ClassLoader 是一项 富于挑战的工作 尤其是应用服务器 容器的情况下 Resourc
  • mmdetection的VOC数据集训练、测试、保存(测试图片)

    mmdetection训练 测试总结 1 数据集格式 voc数据集 在 mmdetection data VOCdekit 上传数据 改名为VOC2007 其中包含JPEGImages Annotations ImageSets等 2 代码