用于语义图像分割的弱监督和半监督学习:弱监督期望最大化方法

这时一篇2015年的论文,但是他却是最早提出在语义分割中使用弱监督和半监督的方法,SAM的火爆证明了弱监督和半监督的学习方法也可以用在分割上。

这篇论文只有图像级标签或边界框标签作为弱/半监督学习的输入。使用期望最大化(EM)方法,用于弱/半监督下的语义分割模型训练。

背景知识

1、符号定义

X是图像。Y是分割映射。其中,ym∈{0,…,L}是位置m∈{1,…,m}处的像素标签,假设我们有背景和L个可能的前景标签,m是像素个数。

2、 有监督学习的流程

在上述完全监督情况下,目标函数为:

这里的θ为模型参数向量。每个像素的标签分布计算如下:

其中fm(ym|x,θ)为模型在像素m处的输出。J(θ)采用小批量SGD优化。

弱监督方法(图像级标注)

当只有图像级标注时,可以观察到的是图像值x和图像级标签z,但像素级分割y是潜在变量。那么我们有如下的概率图形模型:

给定之前的参数估计θ ',期望的完整数据对数似然为:

其中可以采用em近似,在算法的e步中估计潜在分割:

论文对EM进行了修改,增加了偏差Bias

在这种变体中,假设log P(z|y)对像素位置进行因式分解为:

这样可以在每个像素上分别估计e步分割:

参数bl=bfg,如果l > 0, b0=bbg,且bfg > bbg > 0。

可以简单的解释为:鼓励将一个像素分配给图像级标签之一。bfg > bbg比背景更能增强当前景类,鼓励完整的对象覆盖并避免退化的解决方案。

论文的参数是:BFG = 5, BBG = 3,除此以外,论文还使用了自适应的值:

EM-Adapt没有在EM-Fixed中使用固定值,而是鼓励至少将图像区域的ρl部分分配给类l(如果zl = 1),并强制不将像素分配给类l(如果zl = 0),这样EM-Adapt可以自适应地设置图像和类相关的偏差bl。ρfg = 20%, ρbg = 40%。

弱监督方法(边界框标注)

Bbox-Rect方法相当于简单地将边界框内的每个像素视为各自对象类的正面示例。通过将属于多个边界框的像素分配给具有最小面积的边界框来解决歧义。虽然边界框完全包围了对象,但也包含背景像素,这些像素是假阳性示例污染训练集。

为了过滤掉这些背景,论文还使用了DeepLab中使用的CRF。边界框的中心区域(框内像素的%)被约束为前景。用hold -out集估计CRF参数。

论文的方法Bbox-EM-Fixed:该方法是前面提到的EM-Fixed算法的一种变体,其中仅提升当前前景目标在边界框区域内的分数。

半监督方法(混合标注)

在混合标注的情况下,就变成了一种半监督的情况。在深度CNN模型的SGD训练中,每个mini-batch具有固定比例的强/弱标注图像,并使用论文提出的EM算法在每次迭代中估计弱标注图像的潜在语义分割。

结果

在EM-Fixed半监督设置中使用1464个像素级和9118个图像级注释,性能显著提高了,达到64.6%,接近完全监督67.6%。

在半监督设置中使用2.9k像素级注释和9k图像级注释,得到68.5%,接近完全监督70.3%。

Bbox-Seg比Bbox-Rect提高了8.1%,并且在像素级标注结果的7.0%以内。1464个像素级标注与弱边界框标注相结合,得到的结果为65.1%,仅比像素级标注差2.5%。

Bbox-EM-Fixed在添加更多标注时比Bbox-Seg有所改进,当在添加2.9k标注时,它的性能提高了1.0% (69.0% vs 68.0%)。

可以说的EM算法的e步比前景-背景分割预处理步骤能更好地估计目标掩模。

总结

这虽然是一篇很老的论文,但是它提出的思想到现在还是可用的,这对于我们了解现在的弱监督和半监督的学习方法也是非常有帮助的,所以推荐对于研究SAM方向的小伙伴都阅读一下,论文地址:

https://avoid.overfit.cn/post/36b0fbd642d640ceab41d0dfb885a95d

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/33497.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Solr】中文分词配置

提示:在设置中文分词前需确保已经生成过core,未生成core的可以使用:solr create -c "自定义名称"进行定义。 未分词前的效果预览: 下载分词器: 下载地址: https://mvnrepository.com/artifact/com.github.m…

Spring Cloud 之注册中心 Eureka 精讲

🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…

nginx配置开机启动(Windows环境)

文章目录 1、下载nginx,并解压2、配置nginx.conf,并启动Nginx3、开机自启动 1、下载nginx,并解压 2、配置nginx.conf,并启动Nginx 两种方法: 方法一:直接双击nginx.exe,双击后一个黑色弹窗一闪…

ELK日志收集系统集群实验

ELK日志收集系统集群实验 目录 一、实验拓扑 二、环境配置 三、 安装node1与node2节点的elasticsearch 1. 安装 2.配置 3.启动elasticsearch服务 4.查看节点信息 四、在node1安装elasticsearch-head插件 1.安装node 2.拷贝命令 3.安装elasticsearch-head 4.修改el…

【机器学习】十大算法之一 “PCA”

作者主页:爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

【夜深人静学数据结构与算法 | 第十一篇】枚举算法

目录 前言: 枚举算法: 优点: 枚举算法的种类: 枚举算法案例: 343. 整数拆分 - 力扣(LeetCode) 12. 整数转罗马数字 - 力扣(LeetCode) 总结: 前言&…

【手撕算法|动态规划系列No.1】leetcode1137. 第 N 个泰波那契数

个人主页:平行线也会相交 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…

exe的python文件打包

【步骤01】 【在命令行中用pip工具安装Pyinstaller模块】 pip install Pyinstaller 步骤02】 【切换命令行的路径到你要打包的Python源文件的文件夹路径下】 【下面是我要打包的Python源文件(散点坐标图.py)及其文件夹路径】 【步骤03】 【执行Pyi…

使用SSH远程直连Docker容器

文章目录 1. 下载docker镜像2. 安装ssh服务3. 本地局域网测试4. 安装cpolar5. 配置公网访问地址6. SSH公网远程连接测试7.固定连接公网地址8. SSH固定地址连接测试 转载自cpolar极点云文章:SSH远程直连Docker容器 在某些特殊需求下,我们想ssh直接远程连接docker 容器…

SpringBoot 实现 elasticsearch 查询操作(RestHighLevelClient 的案例实战)

文章目录 1. 环境准备1. 查询全部2. 根据 name 查询 match 分词查询3. 根据 name 和 品牌查询 multiMatch 分词查询4. 根据 brand 查询 match 分词查询5. 按照价格 范围查询6. 精确查询7. boolQuery8. 分页9. 高亮查询9. 公共解析 上一节讲述了 SpringBoot 实现 elasticsearch …

【图像处理OpenCV(C++版)】——5.3 图像平滑之均值平滑(滤波)

前言: 😊😊😊欢迎来到本博客😊😊😊 🌟🌟🌟 本专栏主要结合OpenCV和C来实现一些基本的图像处理算法并详细解释各参数含义,适用于平时学习、工作快…

Linux终端与进程的关系 ( 1 ) -【Linux通信架构系列】

系列文章目录 C技能系列 Linux通信架构系列 C高性能优化编程系列 深入理解软件架构设计系列 高级C并发线程编程 期待你的关注哦!!! 现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。 Now everything is for the…

C高级重点

1、请简要描述一下Linux文件系统的层级结构,包括不同目录的作用和功能。 Linux的文件系统结构是一个倒插树结构,所有的文件都从根目录出发。 2、find指令的用途 find 查找的路径 -name 文件名 ----->在指定路径下,以文件名为条件查找文…

总结vue3 的一些知识点:​Vue3 起步

目录 引言 Vue3 混入 实例 选项合并 实例 实例 全局混入 实例 Vue3 起步 Vue 3.0 实例 data 选项 实例 方法 总结 引言 Vue 进阶系列教程将在本号持续发布,一起查漏补缺学个痛快!若您有遇到其它相关问题,非常欢迎在评论中留言讨…

Ubuntu 20.04.02 LTS安装virtualbox7.0

ubuntu22.04的软件仓库也有virtualbox,不过版本较老。 使用安装命令:sudo apt install virtualbox 如果想要安装最新版,那么需要去官网下载deb包或者使用官方的仓库。 这里采用安装Oracle官方仓库的方法。 执行如下命令: wge…

HTTP调用:你考虑到超时、重试、并发了吗?

今天,我们一起聊聊进行 HTTP 调用需要注意的超时、重试、并发等问题。 与执行本地方法不同,进行 HTTP 调用本质上是通过 HTTP 协议进行一次网络请求。网络请求必然有超时的可能性,因此我们必须考虑到这三点: 首先,框架…

抖音本地生活团购服务商

抖音本地生活团购服务商市场前景非常广阔。随着移动互联网的普及和人们对本地生活服务需求的增加,本地生活团购行业已成为一个快速增长的市场。而抖音平台拥有庞大的用户基础和强大的社交媒体传播力,为本地生活团购服务商提供了巨大的发展机遇。 抖音…

【博客674】警惕Prometheus 中的重复样本和无序时间戳错误

警惕Prometheus 中的重复样本和无序时间戳错误 1、场景 您的 Prometheus 服务器日志中是否遇到过以下错误? "Error on ingesting out-of-order samples" "Error on ingesting samples with different value but same timestamp" "dupli…

图解CNN中的卷积(卷积运算、池化、Padding、多通道的卷积)

文章目录 卷积操作池化Padding对多通道(channels)图片的卷积套上激活函数是什么样的参考: 卷积层是深度学习神经网络中经常使用的一种层。它通过卷积运算来提取输入的特征,常用于图像、语音等信号处理任务中。 卷积层有以下几个参…

探索iOS之Metal编程指南

iOS推出Metal渲染库为了取代OpenGL。Metal有自己的Shader语言,渲染效率比OpenGL高。在这里我们一起探索:Metal使用C限制、预处理定义、动态链接配置、GPU编译配置、设备坐标系、视口坐标系、纹理坐标系、矢量类型、矩阵类型、采样器状态、矩阵相乘。 1、…