Ubuntu 下 Mask_RCNN 制作和训练自己的数据

本文介绍如何利用少量图片(75张)进行深度学习模型训练的方法,包括数据集准备、标注工具使用(VIA)、数据集验证及模型训练过程等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

官网说明地址:点击此处

------------------------------------------------------------------------------------------------

1. 准备数据集

法1:网上寻找标准数据集

法2:自己制作

 1) 寻找图片

   寻找75张(自定义数目)包含目标的图片,把它划分为训练集和验证集。最好整理成如下文件夹:

问:为什么不需要一百万张图片来训练一个深层的学习模型?

答:主要依靠以下两个要点来显著降低我的训练要求:

       a. 迁移学习,加载coco数据集的训练权重,再继续训练自己的数据集。

       b. 不要求高精度,因此用小数据集即可。

2) 标注数据集

本文使用的工具:VIA (VGG Image Annotator)

a. 下载 制作工具:HTML 文件

b.  工具使用

   

*  打开 via.html

   

*  加载图片文件夹:

  Project → Add local files,选择需要标注的图片

   

* 选定目标区域:

 —— 矩形、圆形和椭圆形:按下鼠标左键 —> 拖动鼠标光标 —> 释放鼠标按钮。

 —— 点:单击以定义点。

 —— 多边形与直线:单击定义顶点 —> 双击/enter 完成 或者 Esc 取消

   

* 创建属性 (一般多类目标检测需要,单类目标检测可不用)

  在左边的 Attributes 控制版上—> 选择 Region Attributes 选项卡 ——> 按下 '+' 号,填写需要的属性名称

   

* 创建属性的类别

 给每个标签选择type类型——>为该type添加选项 (id) ——>然后就可以为图中每个选定的目标区域选择特定的属性类别,即为标签

   如果要分别编辑每个目标的属性,点击Toggle Annotation Editor

 备注:在coco数据集中,这个id很重要,所以如果要训练多分类网络,务必给每个目标区域标注ID。

* 导出标注文件

 每张图片都标注完成后,在顶部菜单栏: Annotations → Export annotations ——> 此时本地 document 文件夹下会多一个 via_region_data.json 文件(这次项目下所有图片的标注情况全被记录在这个文件里)——> 将他放到采集的数据集的 train 文件夹中

-------------------------------------------------------------------------------------------------

以下内容需要的代码均在balloon文件夹下。为了使用方便,inspect_balloon_data.ipynb 和 inspect_balloon_model.ipynb 被转换成 .py文件,转换方法见:点击此处 .

------------------------------------------------------------------------------------------------

2. 验证数据集

a. 修改代码的对应名称

代码作者将适用于coco数据集的 inspect_data.py 文件改成了 适用于 Balloons 数据集的  inspect_balloon_data.py

b. 修改代码的数据集目录

将 inspect_balloon_data.py 文件中的数据集目录换为自己收集的数据集母目录:

c. 修改引用代码的语法

因为新版本的标注数据集的工具VIA中,"regions" 由原来的字典 dict 变成了list:

原来:

现在:

又因为 list 没有.values 属性,需要将 balloon.py 中的

 polygons = [r['shape_attributes'] for r in a['regions'].values()]

改为:

 polygons = [r['shape_attributes'] for r in a['regions']]

 d. 运行

 运行,即可得到各个阶段的检测结果

-------------------------------------------------------------------------------------

3. 训练

a. 修改训练文件中的层数

1) 根据mrcnn文件夹中的utils文件里,add_class函数定义:

2) 在训练文件balloon.py中增加层数(中间为标注时对应的目标id):

3) 修改预训练模型目录

4) 在终端训练:

cd PycharmProjects/Mask_RCNN/samples/mountain #打开文件位置

python balloon.py train --dataset=/home/xupp/PycharmProjects/Mask_RCNN/datasets/mountain3 --weights=coco #用coco预训练参数训练

5) 检查结果:

修改demo.py,修改根目录,训练好的模型位置(默认在logs中,将最新的模型移动到该位置,并修改名称为 mask_rcnn_balloon),测试图片位置

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

梦dancing

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

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

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

打赏作者

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

抵扣说明:

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

余额充值