何恺明团队又出神作:将图像分割视作渲染问题,性能显著提升!

简介: Facebook人工智能实验室何恺明团队提出一种高效、高质量的目标和场景图像分割新方法。他们开发了一个独特的视角,将图像分割视为一个渲染问题,提出PointRend神经网络模块。建立在现有的最先进的模型之上,PointRend可以灵活地应用于实例分割和语义分割任务。

微信图片_20220107190754.jpg


Facebook人工智能实验室Alexander Kirillov、吴育昕、何恺明、Ross Girshick等研究人员近日发表新论文,提出一种高效、高质量的目标和场景图像分割新方法。


通过将有效渲染的经典计算机图形学方法与像素标记任务中遇到的过采样和欠采样问题进行类比,他们开发了一个独特的视角,将图像分割视为一个渲染问题


微信图片_20220107190751.png


从这个角度出发,他们提出PointRend (Point-based Rendering)神经网络模块:该模块基于迭代细分算法,在自适应选择的位置执行基于点的分割预测。


建立在现有的最先进的模型之上,PointRend可以灵活地应用于实例分割和语义分割任务。


何恺明等人的研究表明,这个简单的设计已经取得了出色的结果。在定性上,PointRend输出清晰的对象边界,而先前的方法会出现过度平滑。在定量上,无论是实例分割还是语义分割,PointRend在COCO和Cityscapes两个数据集都获得了显著的结果。



PointRend:将图像分割视作渲染问题


图像分割任务涉及将在规则网格上采样的像素映射到同一网格上的标签映射或一组标签映射。在语义分割的情况下,标签映射表示每个像素处的预测类别。在实例分割的情况下,针对每个检测到的对象预测一个二元的前景和背景图。用于图像分割任务的现代工具是建立在卷积神经网络(CNN)上的。


用于图像分割的CNN通常在规则网格(regular grids)上操作:输入图像是由像素组成的规则网格,它们的隐藏表示是规则网格上的特征向量,它们的输出是规则网格上的标签映射。


规则网格很方便,但不一定是理想的图像分割计算。这些网络所预测的标签映射应该基本上是平滑的,即由于高频区域被限制在对象之间的稀疏边界上,因此相邻像素常常采用相同的标签。一个规则的网格会不必要地对平滑区域进行过采样,同时对对象边界进行欠采样。结果导致在平滑区域和模糊轮廓上进行了多余的计算(图1,左上角)。图像分割方法在低分辨率规则网格上预测标签,例如输入的1/8用于语义分割,或28×28用于实例分割,作为欠采样和过采样之间的折衷。


微信图片_20220107190748.jpg


图1:PointRend的实例分割。我们引入了PointRend(基于点的渲染)模块,该模块使用一种新的基于点的特征表示对图像上的自适应采样点进行预测。当使用PointRend替换Mask R-CNN的默认Mask head(左上)时,会产生更精细的结果(右上)。


类似的采样问题在计算机图形学中已经研究几十年了。例如,一个渲染器将一个模型(例如,一个3D网格)映射到一个栅格化的图像,即一个规则的像素网格。当输出在规则网格上时,计算并不是均匀地分配到网格上的。相反,一种常见的图形策略是计算图像平面上自适应选择点的不规则子集上的像素值。以Turner Whitted提出的经典subdivision技术为例,生成一个类似四叉树的采样模式,该模式可以有效地渲染一个抗锯齿的高分辨率图像。


本研究的中心思想是将图像分割看作一个渲染问题,并采用计算机图形学中的经典思想来有效地“渲染”高质量的标签图(见图1,左下)。我们基于这个计算思想提出一个新的神经网络模块,称为PointRend,它使用subdivision策略自适应地选择一组非均匀的点来计算标签。


PointRend可以被合并到流行的元架构中,用于实例分割(如Mask R-CNN)和语义分割(如FCN)。它的subdivision策略使用的浮点运算比直接的密集计算要少一个数量级,从而可以有效地计算高分辨率分割图。


PointRend是一个通用模块,允许多种可能的实现。从抽象的角度来看,PointRend模块接受一个或多个定义在常规网格上的典型CNN特征图微信图片_20220107190745.png,并在一个更细的网格上输出高分辨率预测微信图片_20220107190742.png。与对输出网格上的所有点进行过度预测不同,PointRend只对精心选择的点进行预测。为了进行这些预测,它通过对f进行插值来提取所选点的点向特征表示,并使用一个小的point head子网络来预测点向特征的输出标签。


我们将介绍一个简单而有效的PointRend实现。


我们使用COCO和Cityscapes基准来评估PointRend在实例分割和语义分割任务上的性能。定性地说,PointRend可以有效地计算出对象之间的边界,如图2和图8所示。


我们也观察到定量上的改进。PointRend显著改进了Mask RCNN和DeepLabV3模型。


微信图片_20220107190739.jpg


图2:使用带标准mask head的Mask R-CNN(左)与使用带PointRend的Mask R-CNN(右)的示例结果对比。可以看到,PointRend以更精细的细节来预测masks。


方法:用于推理和训练的Point Selection


PointRend架构可以应用于实例分割(如Mask R-CNN)和语义分割(如FCNs)任务。对于实例分割,对每个区域应用PointRend。它通过对一组选定的点进行预测,从粗到精地计算mask(如图3所示)。对于语义分割,可以将整个图像视为一个区域。


微信图片_20220107190736.jpg


图3:将PointRend应用于实例分割


用于推理和训练的Point Selection


该方法的核心思想是在图像平面中灵活、自适应地选择点(points)来预测分割标签。直观上,这些点应该更密集地位于高频区域附近,例如对象边界,类似于光线追踪中的抗锯齿问题(anti-aliasing,也译为边缘柔化、消除混叠等)。我们推理和训练阶段应用了这一想法。


推理:


我们的推理选择策略是受到计算机图形学中经典的自适应细分技术(adaptive subdivision)的启发。该技术被用来有效地渲染高分辨率的图像(例如,通过光线追踪),只计算在该值与相邻值有显著差异的位置;对于所有其他位置,通过对已计算的输出值(从粗网格开始)进行插值来获得值。


微信图片_20220107190734.png


图4:一个自适应细分步骤的示例。采用双线性插值的方法对4×4网格的预测进行2×上采样。然后,PointRend对N个最模糊的点(黑点)进行预测,以恢复更精细网格上的细节。重复此过程,直到达到所需的网格分辨率。


训练:


在训练期间,PointRend还需要选择训练点来构造 point-wise features,以训练point head。原则上,点的选择策略可以类似于推理中使用的细分策略。但是, subdivision 引入了顺序步骤,这对使用反向传播训练的神经网络不太友好。相反,对于训练,我们使用基于随机采样的非迭代策略。


微信图片_20220107190731.png


图5:训练期间的点采样


实验和结果:实例分割和语义分割均优于基线方法


实例分割


我们将PointRend与表1中Mask R-CNN中默认的4×conv head进行比较。


微信图片_20220107190728.png


表1:PointRend与Mask R-CNN的默认4×conv mask head的对比。PointRend在数量和质量上都优于标准的4×conv  mask head。


PointRend在两个数据集上的性能都优于默认的head。即使输出分辨率相同,PointRend的性能也优于baseline。从直观上看,边界质量也差异明显,如图6所示。


微信图片_20220107190725.jpg


图6:具有不同输出分辨率的PointRend推理。

高分辨率 masks 与对象边界更好地对齐了。


细分推理允许PointRend产生高分辨率的224×224预测,使用的计算(FLOPs)和内存是默认的4×conv head输出相同分辨率所需的30倍以上,见表2。


微信图片_20220107190719.png


表2:224×224输出分辨率mask的FLOP(multiply-adds)和激活计数。


PointRend通过忽略一个对象的某些区域(例如,远离对象边界的区域)来实现Mask R-CNN框架下的高分辨率输出。


表3显示了不同输出分辨率和在每个细分步骤中选择的点数的PointRend细分推断。以更高的分辨率预测掩模可以改进结果。虽然AP饱和,但从较低(如56×56)分辨率输出到较高(如224×224)分辨率输出时,视觉效果仍有明显改善,见图7。


微信图片_20220107190717.png


表3:细分推理参数。更高的输出分辨率提高了AP。虽然随着每个细分步骤中采样点的数量的增加,改进会很快达到饱和(在下划线处的值),但对于复杂的对象,定性结果可能会继续改进。


微信图片_20220107190714.jpg


图7:使用PointRend进行抗锯齿。


语义分割


DeeplabV3。在表6中,我们将DeepLabV3与带有PointRend的DeepLabV3进行了比较。通过使用res4阶段的扩展卷积,推理阶段输出分辨率也可以提高2倍。相比两者,PointRend具有更高的mIoU。定性改进也很明显,见图8。


微信图片_20220107190711.png


表6:在Cityscapes数据集,带有PointRend的DeeplabV3语义分割的性能优于基线DeepLabV3。在推理过程中对res4阶段进行扩展会产生更大,更准确的预测,但计算和存储成本要高得多。仍然不如使用PointRend。


微信图片_20220107190708.jpg


图8:Cityscapes上的实例分割和语义分割结果。在实例分割中,较大的对象更容易从PointRend能力中获得高分辨率的输出。而在语义分割方面,PointRend可以恢复小的对象和细节。


通过自适应采样点,仅对32k点进行预测, PointRend可以达到1024×2048分辨率(即2M点),如图9所示。


微信图片_20220107190705.jpg


图9:语义分割的PointRend推断。


SemanticFPN。表7显示,具有PointRend的SemanticFPN优于没有PointRend的8×和4×输出步长变体。


微信图片_20220107190702.png


表7:Cityscapes中,带有PointRend的SemanticFPN语义分割性能优于基线SemanticFPN。

相关文章
|
关系型数据库 MySQL Linux
【Linux】jdk & Tomcat & MySql的安装及Linux后端接口部署
【Linux】jdk & Tomcat & MySql的安装及Linux后端接口部署
321 0
|
Python
Ubuntu18.04 ROS Melodic安装和卸载
Ubuntu18.04 ROS Melodic安装和卸载简单过程
589 0
|
机器学习/深度学习 传感器 编解码
史上最全 | 基于深度学习的3D分割综述(RGB-D/点云/体素/多目)(上)
3D目标分割是计算机视觉中的一个基本且具有挑战性的问题,在自动驾驶、机器人、增强现实和医学图像分析等领域有着广泛的应用。它受到了计算机视觉、图形和机器学习社区的极大关注。传统上,3D分割是用人工设计的特征和工程方法进行的,这些方法精度较差,也无法推广到大规模数据上。在2D计算机视觉巨大成功的推动下,深度学习技术最近也成为3D分割任务的首选。近年来已涌现出大量相关工作,并且已经在不同的基准数据集上进行了评估。本文全面调研了基于深度学习的3D分割的最新进展,涵盖了150多篇论文。论文总结了最常用的范式,讨论了它们的优缺点,并分析了这些分割方法的对比结果。并在此基础上,提出了未来的研究方向。
史上最全 | 基于深度学习的3D分割综述(RGB-D/点云/体素/多目)(上)
|
固态存储 计算机视觉 异构计算
一起来学MediaPipe(一)人脸及五官定位检测
一起来学MediaPipe(一)人脸及五官定位检测
4254 0
一起来学MediaPipe(一)人脸及五官定位检测
|
4月前
|
机器学习/深度学习 人工智能 自动驾驶
7种交通场景数据集(千张图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
在智能交通与自动驾驶技术快速发展的今天,如何高效、准确地感知道路环境已经成为研究与应用的核心问题。车辆、行人和交通信号灯作为城市交通系统的关键元素,对道路安全与交通效率具有直接影响。然而,真实道路场景往往伴随 复杂光照、遮挡、多目标混杂以及交通信号状态多样化 等挑战,使得视觉识别与检测任务难度显著增加。
|
人工智能 数据安全/隐私保护 计算机视觉
GitHub爆款神器 | IOPaint:21.7k star 开源AI图像修复项目,竟能秒删水印、拓展画幅!
IOPaint 是一款由 Sanster 团队开发的开源图像处理工具,集成多种 SOTA AI 模型,支持图像擦除、对象替换、文本绘制和图像外扩等功能。它操作简便,一键安装,适用于 Windows、macOS、Linux 和 Apple Silicon 系统,适合摄影爱好者、电商从业者及内容创作者使用,大幅提升图像处理效率。
720 0
|
8月前
|
人工智能 开发框架 小程序
【一步步开发AI运动APP】二、跨平台APP AI运动识别方案介绍
本系列博文旨在帮助开发者从【AI运动小程序】迈向性能更优的【AI运动APP】开发。通过「云智AI运动识别」uni-app版插件,提供本地原生极速识别、精准姿态检测及运动计时计数功能,支持健身系统、线上赛事、学生体测、康复锻炼等多场景应用。插件无需云端依赖,一次付费永久使用,成本低且扩展性强。同时兼容uni-app与uni-app x框架,适合不同技术背景的开发者快速上手,助力抢占AI辅助运动市场。下篇将介绍插件引入,敬请期待!
|
12月前
|
缓存 监控 NoSQL
Redis经典问题:数据不一致
在使用Redis时,缓存与数据库数据不一致会导致应用异常。主要原因包括缓存更新失败、Rehash异常等。解决方案有:重试机制、缩短缓存时间、优化写入策略、建立监控报警、定期验证一致性、采用缓存分层及数据回滚恢复机制。这些措施可确保数据最终一致性,提升应用稳定性和性能。
|
传感器 机器学习/深度学习 人工智能
史上最全综述 | 3D目标检测算法汇总!(单目/双目/LiDAR/多模态/时序/半弱自监督)(下)
近年来,自动驾驶因其减轻驾驶员负担、提高行车安全的潜力而受到越来越多的关注。在现代自动驾驶系统中,感知系统是不可或缺的组成部分,旨在准确估计周围环境的状态,并为预测和规划提供可靠的观察结果。3D目标检测可以智能地预测自动驾驶车辆附近关键3D目标的位置、大小和类别,是感知系统的重要组成部分。本文回顾了应用于自动驾驶领域的3D目标检测的进展。
史上最全综述 | 3D目标检测算法汇总!(单目/双目/LiDAR/多模态/时序/半弱自监督)(下)
|
机器学习/深度学习 数据采集 传感器
使用Python实现深度学习模型:智能空气质量监测与预测
【8月更文挑战第21天】 使用Python实现深度学习模型:智能空气质量监测与预测
1588 3