| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 实例分割&语义分割:A mini-survey -> 正文阅读 |
|
[人工智能]实例分割&语义分割:A mini-survey |
文章目录实例分割
基于检测框的实例分割目前主流做实例分割的方法大都基于目标检测,即:先跑目标检测,然后对于每一个方框跑一个二元图像分割(binary segmenation) Mask RCNNMask RCNN沿用了Faster RCNN的思想,将ROI Pooling操作改成了ROI Align操作,特征提取采用ResNet-FPN的架构,另外多加了一个Mask预测分支。 Mask Scoring R-CNN在实例分割框架中会将实例的分类置信度作为其分割掩膜质量得分,然而分割掩膜的质量得分应该是和IoU相关才对,通常情况下并不能和分类的得分很好关联在一起。基于这个观点让深度学习网络为自身的预测进行评分相对来说是比较重要的,评判更为合理。在这篇文章在Mask R-CNN的基础上使用一个网络结构(MaskIoU Head)去学习预测得到的掩膜质量,得到一个新的网络结构Mask Scoring R-CNN(MS R-CNN),这个模块使用实例的特征与对应的预测掩膜一起去回归掩膜IoU。使用这样的方法实例分割的性能得到增强,超过了Mask R-CNN。在测试阶段会将MaskIoU与分类置信度相乘得到mask score。 Bbox-Free的实例分割SOLOSOLO的核心思想是:将分割问题转化为位置分类问题,从而做到不需要anchor,不需要normalization,不需要bounding box detections的实例分割。具体做法是:将图片划分成S×S的网格,如果物体的中心(质心)落在了某个网格中,那么该网格就有了两个任务:(1)Category Branch 负责预测该物体语义类别(2)Mask Branch 负责预测该物体的instance mask。这就对应了网络的两个分支。同时,SOLO在骨干网络后面使用了FPN,用来应对尺寸。FPN的每一层后都接上述两个并行的分支,进行类别和位置的预测,每个分支的网格数目也相应不同,小的实例对应更多的的网格。 SOLO v2SOLO v2中的mask branch 被分解为mask kernel branch和mask feature branch,分别对应卷积核的学习和特征的学习。两个分支的输出最终组合成整个mask branch的输出。
语义分割
语义分割评价指标
模型性能参数比较模型性能参数比较的表格来自PaddleSeg的官方GitHub网址,模型由Paddle框架实现,推理时间是使用CityScapes数据集中的图像进行100次预测取平均值的结果。 基于全卷积的深度语义分割模型目前基于 FCN 的语义分割方法通常面临3个挑战:
FCNFCN首先将一幅 RGB 图像输入到卷积神经网络后,经过多次卷积及池化过程得到一系列的特征图,然后利用反卷积层对最后一个卷积层得到的特征图进行上采样,使得上采样后特征图与原图像的大小一样。 ParseNetParseNet(ICLR 2016)提出了采用 Global Pooling 操作计算一个全局特征作为上下文信息去增强每个像素的特征表达。ParseNet 旨在提高每个像素的特征感受野, 以获取更丰富的上下文信息。 PSPNetPSPNet(CVPR 2017)提出了用 Pyramid Pooling Module来抽取多尺度的上下文信息,以解决物体多尺度的问题。具体来说,PSPNet 采用了4路并行的不同尺度的图像划分,分别将图像均匀的划分成6ⅹ6/3ⅹ3/2ⅹ2个子区域,然后在每个子区域上应用 Average Pooling 计算得到一个向量作为这个区域内所有像素的 (不同尺度划分下) 局部上下文信息。另外,PSPNet 也会采用 Global Pooling 计算得到的一个向量作为所有像素的全局上下文信息。 DeepLab系列DeepLabv2(PAMI 2017)提出了一种新的 Atrous Convolution (空洞卷积) 来抽取多尺度上下文信息。具体而言,DeepLabv2 采用了并行的3组具有不同膨胀率(dilation rate)的空洞卷积操作来计算每一个位置的上下文信息,后续的 DeepLabv3又额外引入了 Global Average Pooling 操作来增强每一个位置的上下文信息。 OCRNetOCRNet(ECCV2020)的主要思想是显式地把像素分类问题转化成物体区域分类问题,这与语义分割问题的原始定义是一致的,即每一个像素的类别就是该像素属于的物体的类别,换言之,与 PSPNet 和 DeepLabv3 的上下文信息最主要的不同就在于 OCR 方法显式地增强了物体信息。
当把物体上下文特征表示 OCR 与网络最深层输入的特征表示拼接之后作为上下文信息增强的特征表示(Augmented Representation),可以基于增强后的特征表示预测每个像素的语义类别。 SFNetSFNet参考FPN的结构,加入了PPM模块(Pyramid Pooling Module)和FAM模块(Flow Alignment Module),提出了一种语义流(Semantic Flow)的模块来辅助不同的层的特征之间的融合。作者认为之间的方式没有很好的进行特征之间的传递是因为不同的层的特征对不齐(misalignment)。因为在不同层之间进行特征融合的时候,由于分辨率不同,需要进行上采样操作,同时,在多次的下采样和残差连接的时候都会使得不同层的特征之间对不齐。将特征图之间未对齐理解为一种运动,从而预测光流场来解决特征的对齐问题。 DANet&CCNetDANet使用自注意力机制捕获背景依赖,该模型可以自适应地集成局部特征及其全局依赖性。具体而言,作者在传统扩张的FCN之上附加两种类型的注意力模块,它们分别模拟空间和通道维度中的语义相互依赖性。Position Attention 模块通过对所有位置的特征进行加权和,有选择地聚合每个位置的特征。无论距离如何,相似的特征都将彼此相关。同时,Channel Attention模块通过整合所有通道映射中的相关特征来选择性地强调相互依赖的通道映射。利用这两种注意力模块来捕获图像中的全局信息。 CCNet使用递归十字交叉注意(RCCA)模块来获取全图的上下文信息,这种模块比全局的自注意力机制要更高效。具体来说,对于每一个像素,使用一个新型的十字交叉注意力模块捕获该像素的十字交叉路径上的其他像素的上下文信息,通过递归使用这个十字交叉注意力模块(两次就能捕获全局),每个像素就可以捕获全局的依赖。使用类别一致性损失来监督十字交叉注意力模块产生更有判别性的特征。优点:(1)GPU memory friendly;(2)High computational efficiency;(3) The state-of-the-art performance
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/1 7:51:28- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |