使用Mask-RCNN在实例分割应用中克服过拟合

CATNet实例分割算法:遥感图像目标识别新突破 实例分割作为计算机视觉的核心任务之一,通过结合目标检测与语义分割技术,能够精确识别并分割图像中的每个对象实例。其技术原理主要基于深度学习框架,通过特征金字塔网络(FPN)实现多尺度特征融合,结合区域提议网络(RPN)生成候选区域。CATNet算法创新性地引入三维度上下文聚合机制,在特征、空间和实例层面进行信息整合,显著提升了遥感图像中复杂目标的识别精度。该技术在智慧城市、环境监测等场景展现突出价值,特别是在处理多尺度目标、密集小物体等挑战性任务时,其DenseFPN模块和HRoIE层次化特征提取设计能有效提 阅读详情

作者:Kayo Yin

编译:ronghuaiyang

导读

只使用1349张图像训练Mask-RCNN,有代码。

代码:https://github.com/kayoyin/tiny-inst-segmentation

介绍

计算机视觉的进步带来了许多有前途的应用,如自动驾驶汽车或医疗诊断。在这些任务中,我们依靠机器的能力来识别物体。

我们经常看到的与目标识别相关的任务有4个:分类和定位、目标检测、语义分割和实例分割。

在分类和定位中,我们感兴趣的是为图像中目标的分配类标签,并在目标周围绘制一个包围框。在这个任务中,要检测的目标数量是固定的。

物体检测不同于分类和定位,因为这里我们没有预先假设图像中物体的数量。我们从一组固定的目标类别开始,我们的目标是分配类标签,并在每次这些类别中的一个目标出现在图像中时绘制边界框。

在语义分割中,我们为每个图像像素分配一个类标签:所有属于草的像素被标记为“grass”,属于羊的像素被标记为“sheep”。值得注意的是,例如,这个任务不会对两只羊产生区别。

我们的任务是实例分割,它建立在目标检测和语义分割之上。在目标检测中,我们的目标是在预定义的类别中标记和定位目标的所有实例。但是,我们没有为检测到的目标生成边界框,而是进一步识别哪些像素属于该目标,就像语义分割一样。与语义分割不同的是,实例分割为每个目标实例绘制一个单独的掩码,而语义分割将为同一类的所有实例使用相同的掩码。

在本文中,我们将在一个很小的Pascal VOC数据集上训练一个实例分割模型,其中只有1349张图像用于训练,100张图像用于测试。这里的主要挑战是在不使用外部数据的情况下防止模型过拟合。

数据处理

标注采用COCO格式,因此我们可以使用pycocotools中的函数来检索类标签和掩码。在这个数据集中,共有20个类别。

下面是一些训练图像和相关mask的可视化显示。mask的不同阴影表示同一目标类别的多个实例的不同掩码。

图像的大小和长宽比各不相同,因此在将图像输入模型之前,我们调整每个图像的尺寸500x500。当图像尺寸小于500时,我们对图像进行优化,使最大边的长度为500,并添加必要的零以获得正方形图像。

为了使模型能够很好地泛化,特别是在这样一个有限的数据集上,数据增强是克服过拟合的关键。对于每一个图像,以0.5的概率水平翻转,以0.9到1倍的尺度进行随机剪裁,以0.5的概率进行高斯模糊,标准差为随机,对比度随机调整尺度为0.75和1.5之间,亮度随机调整尺度在0.8和1.2之间,以及一系列随机仿射变换如缩放、平移、旋转,剪切。

Mask-RCNN

我们使用matterport实现的Mask-RCNN进行训练。虽然结果可能会很好看,但我们不会用MS COCO的预训练权重来展示我们如何只用1349张训练图像就能得到好的结果。

Mask-RCNN是在2017年Mask-RCNN论文中提出的,是同一作者对Faster-RCNN的扩展。Faster-RCNN被广泛应用于目标检测,模型在被检测物体周围生成包围盒。Mask-RCNN进一步生成了目标的mask 。

我将在下面简要介绍模型体系结构。

首先,我们使用一个主干模型从输入图像中提取相关的特征。在这里,我们使用ResNet101架构作为骨干。图像由张量(500,500,3)转换为特征图(32,32,2048)。

然后将之前获得的特征输入到一个区域建议网络(RPN)中。RPN扫描feature map的区域,称为anchors,并尝试确定包含目标的区域。这些anchor的尺寸和纵横比各不相同。RPN为每个anchor分配一个类别:前景(正样本anchor)或背景(负样本anchor)。中性anchor是指不影响训练的anchor。

正样本anchors(左),中性anchors(中),负样本anchors(右)

建议层然后挑选最有可能包含目标的anchor,并优化anchor框以更接近目标。当太多anchor点重叠时,只保留前景分数最高的那个(非最大抑制)。这样,我们就得到了感兴趣的区域 (ROI)。

对于每个由ROI分类器选中的目标区域,模型生成28x28的mask。在训练过程中,将 ground truth mask缩小,用预测的mask计算损失,在推理过程中,将生成的mask放大到ROI的边界框大小。

迁移学习

特别是在数据有限的情况下,更快更好地训练模型的关键是迁移学习。Imagenet数据集是一个巨大的自然图像语料库,类似于我们的图像。因此,我们可以将Resnet101骨干模型的权值初始化为在Imagenet上预先训练的权值。这将提高我们得到的特征图的准确性,从而提高整个模型。

为了微调在Imagenet上预训练的模型,我们首先只训练model heads。然后我们在剩下的epochs中训练从ResNet level 4和以上的层。这个训练方案也有助于最小化过拟合。我们可以不去微调第一层,因为我们可以重用模型从自然图像中提取特征的权重。

结果 & 检测pipeline可视化

我们的测试集上获得的mAP为0. 53650。下面是随机选择测试图像的模型输出的一些可视化结果:

我们还可以看到算法不同步骤的输出。下面,我们有在边界框细化之前的top anchors的得分。

接下来,我们有了细化的边界框和非最大抑制后的输出。这些建议然后被输入分类网络。注意,在这里,我们有一些框框住了一些目标,比如标志,这些目标不属于我们定义的目标类别。

在建议区域上运行分类网络,得到正样本的检测,生成类概率和边界框回归。

在得到边界框并对其进行细化后,实例分割模型为每个检测到的目标生成mask。mask是soft masks(具有浮点像素值),在训练时大小为28x28。

最后,预测的mask被调整为边界框的尺寸,我们可以将它们覆盖在原始图像上以可视化最终的输出。

—END—

英文原文:https://towardsdatascience.com/overcome-overfitting-during-instance-segmentation-with-mask-rcnn-32db91f400bc

基于Mask-RCNN的目标检测和识别实现(Matlab) 通过以上步骤,你可以在Matlab中实现基于Mask-RCNN的目标检测和识别。进行训练后,你可以使用训练得到的模型进行目标检测和识别的测试。相比于其他目标检测算法,Mask-RCNN不仅可以准确地检测出图像中的目标,还可以生成目标的分割掩码。通过这些步骤,你可以在Matlab中实现基于Mask-RCNN的目标检测和识别,并对结果进行可视化展示。训练完成后,你可以使用训练得到的模型进行目标检测和识别的测试。使用准备好的数据集和配置好的训练选项,你可以开始进行目标检测和识别的训练。进行目标检测和识别训练。 阅读详情

相关推荐

基于Mask-RCNN的目标检测和识别 实现 matlab

在本次实验中,我们使用了 COCO 数据集,其包含超过 330k 张图像和超过 2.5M 个对象实例,并且覆盖了 80 种对象类别。接着,我们需要下载 Mask-RCNN 的预训练模型(例如,mask_rcnn_resnet50_fpn.mat),并将其加载到 Matlab 中。其中,Mask-RCNN是一种常用的目标检测和识别算法,它能够同时完成目标检测和语义分割任务,具有较高的精度和效率。在实际应用中,我们可以根据需要进行参数调优和模型训练,以达到更好的性能和效果。

ByteWhisper的博客 371

使用Mask-RCNN训练自己的数据集看这一篇就够了,从制作数据集开始一步步教你如何玩转Mask-RCNN(保姆级教程)

使用Mask_RCNN训练自己的数据集的方法,教你从零开始训练自己的Mask_RCNN模型。

ekekex的博客 2万+

目标检测:Cascade R-CNN: High Quality Object Detection and Instance Segmentation - 2019【方法解读】

“目标检测Cascade R-CNN(2019)” 方法部分解读

sinat_39783664的博客 496

防止过拟合的方法

过拟合(overfitting)是指在模型参数拟合过程中的问题,由于训练数据包含抽样误差,训练时,复杂的模型将抽样误差也考虑在内,将抽样误差也进行了很好的拟合。具体表现就是最终模型在训练集上效果好,在测试集上效果差,模型泛化能力弱。算法为了满足尽可能复杂的任务,其模型的拟合能力一般远远高于问题复杂度,也就是说,算法有拟合出正确规则的前提下,进一步拟合噪声的能力。那么如何防止过拟合呢?1. 更多的数...

qq_32799915的博客 806

28、基于深度学习的肺炎 X 光和 CT 图像自动分类研究

本研究探讨了深度学习在肺炎X光和CT图像自动分类中的应用,通过比较多种深度卷积神经网络架构的性能,评估其在肺炎早期筛查和诊断中的潜力。研究采用了数据预处理、数据增强和迁移学习等方法,以提高模型的准确率和泛化能力。实验结果显示,部分深度学习模型在二分类任务中表现出色,为肺炎的自动诊断提供了可靠的技术支持。

3c4x5z6v7b的博客 124

多重线性引擎ME2:从规则配置到实战避坑全解析

在业务数据计算场景中,多规则、多口径的核算往往依赖Excel或定制开发,难以兼顾灵活性与一致性。计算引擎作为将复杂业务规则配置化执行的技术方案,正成为企业数据治理的重要中间层。多重线性引擎ME2正是这类工具的代表:它将计算任务拆分为条件定义、计算链和结果集三层结构,通过配置化方式实现规则与执行解耦,既保留了可视化配置的易用性,又获得代码级计算效率。在电商佣金、物流运费等多条件组合场景下,ME2能显著降低规则维护成本,避免口径混乱。本文结合使用指南与实操经验,梳理引擎原理、配置步骤及常见陷阱,为正在选型或使用

weixin_33875839的博客 295

收藏 | 使用Mask-RCNN在实例分割应用中克服过拟合

点击上方“3D视觉工坊”,选择“星标”干货第一时间送达转载于:作者:Kayo Yin编译:ronghuaiyang | AI公园导读只使用1349张图像训练Mask-RCN...

3D视觉工坊 1663

mask-rcnn:在MATLAB中进行Mask-RCNN训练和预测以进行实例分割

mask-rcnn:在MATLAB中进行Mask-RCNN训练和预测以进行实例分割

matlab手动绘制图像mask_使用Mask-RCNN在实例分割应用中克服过拟合

作者:Kayo Yin编译:ronghuaiyang导读只使用1349张图像训练Mask-RCNN,有代码。代码:https://github.com/kayoyin/tiny-inst-segmentation介绍计算机视觉的进步带来了许多有前途的应用,如自动驾驶汽车或医疗诊断。在这些任务中,我们依靠机器的能力来识别物体。我们经常看到的与目标识别相关的任务有4个:分类和定位、目标检测、语义分割和...

weixin_31005047的博客 1982

基于Mask-RCNN的高精度目标检测和识别matlab仿真+代码仿真操作视频

1.领域:matlab,Mask-RCNN 2.内容:基于Mask-RCNN的高精度目标检测和识别matlab仿真+代码仿真操作视频 3.用处:用于Mask-RCNN的高精度目标检测和识别算法编程学习 4.指向人群:本硕博等教研学习使用 5.运行注意事项: 使用matlab2021a或者更高版本测试,运行里面的Runme_.m文件,不要直接运行子函数文件。运行时注意matlab左侧的当前文件夹窗口必须是当前工程所在路径。 具体可观看提供的操作录像视频跟着操作。

【Azure 架构师学习笔记】- Azure Databricks (1) - 环境搭建

Databricks 已经成为了数据科学的必备工具,今时今日你已经很难抛开它来谈大数据,它常用于做复杂的ETL中的T, 数据分析,数据挖掘等,特别适用于做数据建模,机器学习等。那么顺应时代,现在也来看看这个工具的内容。首先要有一个环境,基于Azure 的Databricks简称ADB。托管在Azure 上的Databricks已经被Azure进行了很大的优化, 在搭建时只需要简单的几步即可拥有一个环境,不过要提醒一句ADB的集群并不便宜,用完马上删掉或停止, 否则一晚过百美金就会烧掉。

MVP黄钊吉(發糞塗牆) 2299

faster rcnn论文_使用Mask-RCNN在实例分割应用中克服过拟合

导读只使用1349张图像训练Mask-RCNN,有代码。代码:https://github.com/kayoyin/tiny-inst-segmentation介绍计算机视觉的进步带来了许多有前途的应用,如自动驾驶汽车或医疗诊断。在这些任务中,我们依靠机器的能力来识别物体。我们经常看到的与目标识别相关的任务有4个:分类和定位、目标检测、语义分割和实例分割。在分类和定位中,我们感兴趣的是为图像中目标...

weixin_35973657的博客 219

国家医保移动支付国密算法SM2签名验签、SM4加解密DLL

DLL,非.net开发,所以无需安装配置,直接程序引用开发即可,支持各类开发语言。已知省份有广西、贵州、安徽、河北、黑龙江、湖南、吉林、江苏、四川、新疆等各地方。国家医保移动支付国密算法SM2签名验签、SM4加解密DLL。//SM4加密与解密。支持医保移动支付(国家统一版),//SM2签名与验签。

4266

pascal行人voc_在一个很小的Pascal VOC数据集上训练一个实例分割模型

只使用1349张图像训练Mask-RCNN,有代码。代码:https://github.com/kayoyin/tiny-inst-segmentation介绍计算机视觉的进步带来了许多有前途的应用,如自动驾驶汽车或医疗诊断。在这些任务中,我们依靠机器的能力来识别物体。我们经常看到的与目标识别相关的任务有4个:分类和定位、目标检测、语义分割和实例分割。在分类和定位中,我们感兴趣的是为图像中目标的分...

weixin_29290379的博客 722

我从华为身上学到的项目管理经验 -- 需求篇

记录这三年,关于项目管理上的一些心得体会 – 需求篇对于需求,我们可以根据不同的角色、理解拆分成三个过程:简单来说就是:需求分析原始需求、 需求拆分为系统需求、 需求实现为功能需求**需求分析**: 将客户需求 输出成 需求描述。 需求经理需要把 需求 转换成 客户能够接受的 初始需求 IR(Initial Requirement) 对于用户来说,我只管提 我的原始需求是

minminzhe520的博客 3万+

Maxwell个人初学经验及资料分享

前段时间学习了课题组基于Maxwell所建立的模型,因为以前从来没有使用过,只是按照一步一步记忆了操作,但总觉得不熟悉,我想是缺乏对这个软件整体的了解,真正想上手只会这一个模型也没有办法扩展。但是我感觉这些有限元分析软件学习起来应该有一些共性,基于以前对COMSOL学习的一点经验,我就在官网和其他网站找了一些学习资源构成一条基础入门之路,也可能有更好的资源,仅代表个人观点做一下分享。以上就是本人对该软件初步学习的一点理解,跟着这样的操作不到一个星期就能初步的掌握。...

怎么又是萝卜的博客 5643

CVPR (《28篇论文、6 大主题带你一览 CVPR 2020 研究趋势》学习笔记五迁移/小样本/半监督/无监督学习)

原文链接:https://mp.weixin.qq 迁移/小样本/半监督/无监督学习 用于任务感知的持续学习的条件通道门控网络 论文地址:https://arxiv.org/abs/2004.00070 在训练示例包含一系列子任务的情况下,需要基于梯度优化的深度网络会遭受灾难性的遗忘,从而丢失先前任务中学习到的信息。持续学习试图通过允许模型保护和保留所获取的信息,同时仍然能够从新任务中提取新信息来解决这一问题。与LSTM / GRU中的门控机制相似,作者提出了一种通道门控模块,其中仅根据当前任务选择

dujuancao11的博客 1174

JavaFX - 动画

JavaFX 动画

思你日度难眠 1606

深度学习网络篇——ResNet

ResNet 作者:Kaiming He ,Xiangyu Zhang ,Shaoqing Ren ,Jian Sun 研究机构:Microsoft Research About Kaiming He: 2003年广东省理科高考状元,清华基础科学班,香港中文大学攻读研究生,微软亚研院实习,现在FAIR工作 主要文献: ResNet,Faster-RCNN(Shaoqing Ren一作), S...

PRIS-SCMonkey的博客 9万+

WPF+Prism+LiveCharts+materialdesignin 搭建WPF开发框架

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容。

T_Tboy的博客 3054

Python-uiautomator2保姆级安装指南:从环境配置到设备连接全流程

本文提供Python-uiautomator2的保姆级安装指南,涵盖从环境配置到设备连接的全流程。详细介绍了Python 3.6+、ADB工具等核心组件的准备,以及uiautomator2的安装和设备端服务初始化步骤,帮助开发者快速搭建Android自动化测试环境,避免常见问题。

nnn11的博客 940

ECCV最佳论文提名:Group Normalization

Group Normalization 论文链接:https://arxiv.org/abs/1803.08494 代码链接:https://github.com/facebookresearch/Detectron/tree/master/projects/GN ECCV 2018最佳论文提名奖,何恺明团队的新作品。GN(Group Normalization)是BN(Batch Normali...

思矣远矣 1104

Ansys Zemax实战:5步搞定多模光纤耦合效率优化(附IMAE操作数详解)

本文详细介绍了使用Ansys Zemax优化多模光纤耦合效率的5个关键步骤,包括几何图像分析设置、IMAE操作数应用及偏振效应处理。通过实战案例解析,帮助工程师快速掌握光纤耦合效率提升技巧,特别针对IMAE操作数的配置保存机制和菲涅尔损耗控制进行深度讲解。

potato的博客 692

深度残差网络

转载:https://www.cnblogs.com/Ann21/p/9825602.html 深度残差网络: 深度残差网络的设计就是为了克服这种由于网络深度加深而产生的学习效率变低,准确率无法有效提升的问题(也称为网络退化)。 甚至在一些场景下,网络层数的增加反而会降低正确率。这种本质问题是由于出现了信息丢失而产生的过拟合问题(overfitting,所建的机器学习模型或者是深度学习模型在训练...

u014556057的专栏 791

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: 基于OpenCV的车辆变道检测
下一篇: 港大同济伯克利推出目标检测新范式:Sparse R-CNN
机器学习算法那些事
博客等级 码龄9年 1633粉丝 62原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值