玩转水平集 | 弱监督实例分割新SOTA!(ECCV2022)

简介: 全监督学习需要大量的标签数据,对分割任务而言,人工标注十分昂贵,因此基于框的弱监督实例分割获得了广泛的关注。本文提出一种新的single-shot框监督实例分割方法,将水平集(level-set)与CNN巧妙地结合起来。具体来说,模型以端到端的方式通过基于连续Chan-Vese能量的函数迭代地学习一系列水平集。本文基于SOLOv2上实现弱监督实例分割。

原文首发微信公众号【自动驾驶之心】:一个专注自动驾驶与AI的社区(https://mp.weixin.qq.com/s/NK-0tfm_5KxmOfFHpK5mBA



摘要



全监督学习需要大量的标签数据,对分割任务而言,人工标注十分昂贵,因此基于框的弱监督实例分割获得了广泛的关注。本文提出一种新的single-shot框监督实例分割方法,将水平集(level-set)与CNN巧妙地结合起来。具体来说,模型以端到端的方式通过基于连续Chan-Vese能量的函数迭代地学习一系列水平集。本文基于SOLOv2上实现弱监督实例分割。


方法


640.png


算法的整体框架如上图所示。具体来说,基于SOLOv2[48]按位置动态分割目标并预测全图大小的实例Mask,为了促进框监督实例分割,本文将每个实例Mask视为其对应目标的水平集函数 φ。此外,本文利用输入图像和深层特征作为输入来进化水平集,其中使用框投影函数来鼓励网络在每一步自动估计初始水平集 φ0。每个实例的水平集都在框内迭代优化。


图像分割中的水平集模型


首先简单回顾下水平集方法[7, 36, 45],其将图像分割表述为一个连续的能量最小化问题, 在Mumford-Shah水平集模型 [36],给定图像的分割是通过找到参数轮廓来获得的,该轮廓将图像平面划分为N个不相交区域,Mumford-Shah能量泛函如下所示:


640.png


Chan和Vese[7]后来将 Mumford-Shah泛函简化为变分水平集,目前已经比较成熟[31, 34, 46, 52]。具体可以如下推导:


640.png


框监督实例分割


本文提出的方法利用基于Chan-Vese 能量模型[7]的水平集演化,仅使用目标框来实现高质量的实例分割。目标框内的水平集演化给定输入图像,目标是通过在边界框内隐式演化水平集来预测目标的边界。SOLOv2将图像划分为S×S个网格,每个网格最多预测一个H×W大小的实例。本文将目标框内的每个正样本视为水平集 φ(x, y),其对应的输入图像 I(x, y) 的像素空间称为 Ω,即 Ω ∈ B。C 是分割边界,其将目标框区域划分为两个不相交的区域,即前景目标和背景。


为了获得每个实例的准确边界,本文通过最小化以下能量函数来学习一系列水平集 φ(x, y):


640.png


与传统的Heaviside函数[7] 不同,sigmoid函数更加平滑,可以更好地表达预测实例的特征,提高训练过程中水平集演化的收敛性。c1、c2定义如下:


640.png


能量函数F在训练期间可以使用梯度反向传播进行:

640.png


上述项的最小化可以看作是沿着能量函数下降的隐式曲线演化。实例的最优边界 C 是通过迭代拟合 φi 来最小化能量 F 得到的,如下所示:


640.png


输入数据项:输入图像代表了基本的低级特征,包括形状、颜色、图像强度等。然而,这些低级特征通常会随着光照变化、不同的材料和运动模糊而变化,使得水平集演化的鲁棒性降低。除了归一化图像之外,本文还考虑嵌入身侧特征以获取更稳健的结果。为此,本文使用SOLOv2中FPN输出的所有特征进一步提取高阶特征。此外,提取后的高阶特征经过tree filter[27, 41]进行增强,其利用最小生成树来建模长期依赖关系并保留目标结构。水平集初始化:传统水平集方法对初始化很敏感。本文使用框投影函数[44]以鼓励模型在每一步自动生成初始水平集 φ0 的粗略估计。即将GT投影至x轴和y轴并计算投影差异。


640.png


训练和推理


损失函数:损失函数同SOLOv2一致,包含两项:分类损失和实例损失:


640.png


其中分类损失为Focal Loss,实例损失如下:


640.png


推理:水平集的进化只用于训练阶段,推理时不需要,因此与原始SOLOv2相同。


实验结果



COCO测试集结果如下:

640.png

Pascal VOC验证集结果如下:

640.png

可视化:


640.png



相关文章
|
人工智能 并行计算 PyTorch
【PyTorch&TensorBoard实战】GPU与CPU的计算速度对比(附代码)
【PyTorch&TensorBoard实战】GPU与CPU的计算速度对比(附代码)
1206 0
|
人工智能 自然语言处理 前端开发
从0开始打造一款APP:前端+搭建本机服务,定制暖冬卫衣先到先得
通义灵码携手科技博主@玺哥超carry 打造全网第一个完整的、面向普通人的自然语言编程教程。完全使用 AI,再配合简单易懂的方法,只要你会打字,就能真正做出一个完整的应用。
11463 29
|
机器学习/深度学习 人工智能 运维
智能运维:利用机器学习优化IT基础设施管理
【7月更文挑战第7天】在数字化浪潮不断推进的今天,企业对IT基础设施的管理要求越来越高。传统的运维模式已难以满足现代企业的需求,智能运维(AIOps)应运而生。本文将探讨如何通过机器学习技术来优化IT基础设施的管理,提高故障预测的准确性,自动化日常任务,并实现个性化的报警系统,从而提升运维效率和服务质量。
|
机器学习/深度学习 人工智能 算法
一文尽览!弱监督语义/实例/全景分割全面调研(2022最新综述)(下)
今天分享一篇上交投稿TPAMI的文章,论文很全面的调研了广义上的弱监督分割算法,又涵盖了语义、实例和全景三个主流的分割任务。特别是基于目标框的弱监督分割算法,未来有很大的研究价值和落地价值,相关算法如BoxInst、DiscoBox和ECCV2022的BoxLevelset已经证明了,只用目标框可以实现可靠的分割性能。论文很赞,内容很扎实,分割方向的同学一定不要错过!
一文尽览!弱监督语义/实例/全景分割全面调研(2022最新综述)(下)
|
存储 传感器 物联网
|
开发者
【经典案例】使用HAL库配置STM32F407的SPI外设
在嵌入式系统开发中,STM32F407是一款广泛应用的微控制器,而SPI(Serial Peripheral Interface)是一种常用的通信接口。本文将详细介绍如何使用STM32的硬件抽象层(HAL)库配置STM32F407的SPI外设,并提供完整的代码示例。
2276 1
|
Ubuntu Linux 测试技术
在Ubuntu 18.04上安装Docker Compose的方法
在Ubuntu 18.04上安装Docker Compose的方法
920 0
|
算法 数据处理 计算机视觉
论文介绍:基于点标注的实例分割
【5月更文挑战第24天】研究人员提出了一种创新的弱监督实例分割方法,通过点标注代替传统的像素级掩模标注,显著降低数据标注成本和时间。点标注方案只需在对象边界框内标注少量点,与Mask R-CNN兼容,实现接近全监督性能。改进的PointRend模块(Implicit PointRend)在点监督下表现出色,简化了模型设计。实验表明,使用10个点标注的Mask R-CNN能达到全监督模型的性能,为实例分割的实际应用开辟了新途径。尽管取得初步成功,但面临处理不同尺度对象和提高泛化能力的挑战。
306 4
|
存储 机器学习/深度学习 关系型数据库
Python 金融编程第二版(四)(5)
Python 金融编程第二版(四)
97 0
|
机器学习/深度学习 存储 编解码
【我的方向】轻量化小目标检测
【我的方向】轻量化小目标检测
816 0

热门文章

最新文章