首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >[调研] 通用实例分割方法[通俗易懂]

[调研] 通用实例分割方法[通俗易懂]

作者头像
全栈程序员站长
发布于 2022-09-23 03:20:25
发布于 2022-09-23 03:20:25
1.1K0
举报

大家好,又见面了,我是你们的朋友全栈君

目前的实例分割方法可分为3类:

  • top-down,也叫做 detect-then-segment,顾名思义,先检测后分割,如FCIS, Mask-RCNN, PANet, Mask Scoring R-CNN;
  • bottom-up,也叫Embedding-cluster,将每个实例看成一个类别;然后按照聚类的思路,最大类间距,最小类内距,对每个像素做embedding,最后做grouping分出不同的instance。Grouping的方法:learned associative embedding,A discriminative loss function,SGN,SSAP. 一般bottom-up效果差于top-down;
  • direct的方法。不同与上述两类方法,直接得到实例分割结果,如SOLO。

目录

Deep Snake for Real-Time Instance Segmentation [2001]

物体轮廓用循环卷积来学习特征确定offset

文章提出two-stage、real-time的instance segmentation方法:1、得到初始的目标轮廓;2、轮廓迭代变形,以得到最终精准的目标边界;

不同于CornerNet、ExtremeNet等方法直接回归目标边界上的点,受到传统snake算法的启发,Deep Snake 通过迭代变形一个初始轮廓来得到最终的目标边界;文章使用循环卷积来学习目标轮廓的结构特征;对512×512大小的图片在1080Ti上达到32.3 fps

先得到检测框,再得到diamond框,学习offset得到四个极点,得到octagon 轮廓; 输入到 deep snake,学习边缘;

PointRend: Image Segmentation as Rendering [1912]

方法:对输出的coarse mask 和 fine-grained 特征选部分点进行学习,用提出的subdivision mask rendering算法迭代,得到不确定边界区域的mask

Render方法:subdivision 、adaptive sampling、 ray-tracing Subdivision: 只在(与周围区域十分不同的)区域计算;其他区域直接插值; 如何选点:将coarse mask 上采样X2;选择p接近0.5的N个点;用MLP得到这N个点预测值;一直迭代,直到到达某一分辨率;

但训练阶段,不采用迭代的方式训练;而是使用随机采样

SOLO: Segmenting Objects by Locations [1912]

现有方法分为两类: top-down,也叫做 detect-then-segment,顾名思义,先检测后分割,如FCIS, Mask-RCNN, PANet, Mask Scoring R-CNN、TensorMask bottom-up,也叫Embedding-cluster,将每个实例看成一个类别;然后按照聚类的思路,最大类间距,最小类内距,对每个像素做embedding,最后做grouping分出不同的instance。Grouping的方法:learned associative embedding,A discriminative loss function,SGN,SSAP. 一般bottom-up效果差于top-down。

但这些方法是two-step而且indirect。我们思考12,不同的instance的真正区别是什么,我们的答案是 location 和 object size。

Location:将图像分成S*S个cell,就形成了S^2个location类别;网络输出的一个channel就代表了一个location类别;相应的这个channel map就输出属于这个location类别的instance。 将每个像素分类到不同的location class,等价于对每个像素的中心位置做回归;相比起回归;用分类来做对位置预测的任务,更加直观,且用固定的channel能预测不同数量的instance。且不需要grouping或者embedding的后处理。

Size:FPN做不同大小的类别,不同的level预测不同的大小

传统卷积是spatial invariant,但这里需要position sensitive.受CoordConv启发,直接把归一化坐标信息与特征拼接(简单易行)。 最后接NMS后输出实例分割结果。 FPN-backbone + prediction head –{ semantic category ———————————————- { instance mask

为验证方法有效性,选择了不同backbone+head+loss来进行试验。 标签赋值:Center sampling (在FCOS2019, Beyond anchor-based中都有使用) 中心区域定义:(cx, cy, εw, εh) ,ε=0.2,平均有3个positive sample

损失函数:category的focal 分类损失+ mask的分割损失(DICE) 在MS-COCO上与其他方法对比结果:

用FPN比直接设置grid num效果好很多✅

FPN各level的grid num

COORDCONV作用:

Decoupled方法

GPU显存更少

速度: SOLO – RESNET-50 Speed 12FPS ON V100

FCOS: Fully Convolutional One-Stage Object Detection [1904]

Method:不预测检测框;而是直接预测点距离四个边的距离

Centerness:一个branch抑制离中心点远的低质量proposal;训练时,计算;(l,t,r,b)为该点距离四个边的距离;不同level使用同一head对性能不太好,添加一个可学习的参数s用于回归,使得性能略微上升

CE作为loss;测试时,nms抑制低的得分。 同一点对应不同目标,可以用FPN解决;不同level预测不同scale

TensorMask: A Foundation for Dense Object Segmentation [1903]

滑动窗目标检测;dense sliding-window instance segmentation network 利用滑窗来寻找物体,是CV中古老又传统的方法。 Insight: Faster-rcnn、mask-rcnn都是用滑窗检测出候选框,再用refinement net来进一步挑选; SSD和RetinaNet舍弃了refinement,直接用滑窗得到检测结果。然而目前这类方法没有拓展到instance 分割上。本文即填补这个gap 方法: 定义 nature representation 与 aligned representation

方法总结:精度比不过mask rcnn,而且还慢3倍;

Hybrid Task Cascade for Instance Segmentation [1901]

Insight:充分利用detection与segmentation的相互(reciprocal)关系设计级联方式

现有方法粗略分为两类: detection-based:detector先产生bbox或region proposal,再在区域内预测mask; segmentation-based:

method: 交织进行bbox 回归与mask预测,而非并行 Mask brainch,上阶段信息直接输入到当前; 加入了额外的语义分割branch,并融入到bbox与mask branch中 这些改进改善了stage以及task的信息流

速度、性能比较:

CASCADE R-CNN: iou=0.5 ,FP多,iou升高,性能下降;原因:1、由于指数消失的正样本导致过拟合;2、训练与测试的mismatch(即在train上取得最佳的IOU阈值对inference时产生的proposal并不能很好地进行回归) 方法:级连不同iou的detector;iou逐渐升高;

Path Aggregation Network for Instance Segmentation [1803]

PANET CVPR2018 关键词:information flow 1st place in the COCO 2017 Challenge Instance Segmentation task Method:bottom-up path + adaptive feature pooling + mask branch中 添加了 fc;

Mask R-CNN [1703]

FPN + FPN + ROI Align + 3 branch (class, mask , box ) FCIS缺点:重叠instance、虚假边缘

实验:cityscape + coco

Fully Convolutional Instance-aware Semantic Segmentation [1611]

FCIS. : 首个端到端的实例分割网路;CVPR2017 spotlight 检测与分割同时进行. 用RPN代替sliding window。 此前的技术分为三步:1、FCN提取特征;2、将每个ROI pooling成相同尺寸的特征图;3、全连接层输出ROI mask。 注意:translation-variant在fc上引入。 缺点如下:1、ROIpooling损失空间细节;2、使用fc层参数量过多;3、最后一步每个ROI之间的计算不共享; Method: position-sensitive score map joint mask prediction and classification RPN得到的检测框,直接在score map上裁剪,特征图一半(inside)做softmax得到实例分割图;特征图另一半(outside)max + avg Pooling + softmax,判断是否为instance inside score:像素在目标内 segment+ outside score:像素在目标外 segment-

总共有3个loss, C+1类的检测loss,分割loss以及bbox的回归loss 实验:pascal+coco

Deep Watershed Transform for Instance Segmentation [1611]

需要好的语义分割图像(由PSPNet得到); 优点:适合学习相互连接的物体 缺点:遮挡、重叠;学不到实例类别;性能比mask-rcnn差很多 方法:网络学习分水岭变换;得到能量图,再根据能量图,直接得到每个实例:DN net (梯度图,单位向量,得到2维)+ WT net (能量图)

InstanceCut: from Edges to Instances with MultiCut [1611]

方法:输出语义分割图+所有instance的边界— 之后用MultiCut来分割最终的instance; instance-aware; ituition : Semantic seg 的中间特征可以用来 学习edge 数据:cityscape,8个类别;2975 images for training, 500 for validation and 1525 for testing

Instance-sensitive Fully Convolutional Networks [1603]

ECCV2016 优点:普通卷积有平移不变形,同一位置,响应总是一样,这阻碍了实例分割;为此文章引入instance-sensitive score map,同一个像素,因为相对位置发生了变化,选择了不同的score map的值,因此有了translation-variant。 缺点:1、非端到端的实例分割;因为无法判断instance分割的语义类别;2、 固定的224大小滑窗+ image pyramid scanning,十分耗费时间; 细节:测试训练都使用多尺度

基于像素的相对位置来进行分类,从而产生一些instance-sensitive的score map,后续通过一个简单的assembling module来得到最终的instance分割结果

具体实现上,特征提取使用VGG16网络,输出特征(H/8,W/8);第一个分支,经过两个卷积,先输出K^2个score map (K=5),用mXm的滑动窗用assemble 得到instance,再从得到的instance里面随机抽样256个,这些instance 和instance的分割gt计算loss;

第二个分支,预测分支一得到256个instance是真正的instance 的概率,计算loss;

测试阶段: 对分支一上sliding window得到的instance score map,先二值化,再用分支二的概率以及instance的box的iou来做NMS,最后选择top-N作为最终结果。

预处理上,scale jittering在多篇文章中大量运用;

SGN: Sequential Grouping Networks for Instance Segmentation [16XX]

ICCV17 ; 内容过于繁琐,且无开源代码 Insight:点成线;线成面 Method:一串子网络逐渐完成任务; 子网络1:水平以及垂直预测breakpoints;产生线的分割 子网络2:将线分割连成 联通的区域; 将对pixel的分类 降维成 对 线的分类;RNN网络 LineNet(很小);输入为9个通道 子网络3:连通区域形成最后instance; MergerNet(很小)

1、每个像素额外标注成background,interior,starting point,termination point 2、水平、垂直两个方向成线

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/172426.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ClickHouse 集群搭建
2018年第一天,许下第一份愿望吧,闭上眼睛,双手合十,心中默念,梦想成真。有期待的生活是快乐的,有憧憬的日子是惊喜的。元旦快乐!
Yunjie Ge
2022/04/24
1.2K0
ClickHouse集群搭建(二)
在上一章我们已经完成ClickHouse分布式集群安装,也创建本地表和分布式表进行了测试,但是,假如停掉一个节点会发生神马情况?
java干货
2021/02/15
1.7K0
数据源管理 | OLAP查询引擎,ClickHouse集群化管理
ClickHouse是俄罗斯的Yandex公司于2016年开源的列式存储数据库(DBMS),主要用于OLAP在线分析处理查询,能够使用SQL查询实时生成分析数据报告。
知了一笑
2020/05/20
9940
战斗民族开源神器ClickHouse:一款适合于构建量化回测研究系统的高性能列式数据库(二)
编辑部原创 编译:wally21st、 西西 未经允许,不得转载 Tutorial 对于一些私募、投资机构和个人来说,量化投资研究、回测离不开数据的支持。当数据量达到一定数量,如A股所有频率和种类的数据等等。这时候需要的是对数据有效的储存和管理。今年6月才开源的数据库ClickHouse,为我们提供了福音。ClickHouse来自俄罗斯,又是刚刚开源,社区也是俄语为主。因此,大家对它并不是很熟悉,用的人也不是很多。 我们对比一下他的速度 一个字 快 上面是100M数据集的跑分结果:ClickH
量化投资与机器学习微信公众号
2018/01/29
5.3K0
战斗民族开源神器ClickHouse:一款适合于构建量化回测研究系统的高性能列式数据库(二)
ClickHouse学习随笔-简介-202104
ClickHouse不仅查询速度快(相较于hive等类似的分析型DBMS),而且硬件使用效率、容错性、可靠性、易用性、线性扩展性等高。
用户8483969
2021/04/09
1.2K0
ClickHouse 分布式集群的安装、使用
ClickHouse是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。适合巨量数据环境下用户数据查询、数据分析等工作。ClickHouse 简称为 CH,是近2年日益火起来的一款类数据库分析工具。
南非骆驼说大数据
2020/12/13
3.6K0
ClickHouse 实战笔记 第05期:ClickHouse 环形复制集群搭建
上一节内容,我们聊了 ClickHouse 两分片两副本的搭建(点击传送),那么多分片多副本的情况下,是不是一定得起至少 4 个实例呢?其实是不一定的,如果机器资源紧张,3 台机器甚至 2 台机器都可以搭建一个 ClickHouse 多分片多副本的集群(暂时只聊 1 台机器跑一个 CH 实例的场景),这一节内容就来聊聊 3 台机器搭建的集群。
数据库交流
2022/04/25
9570
ClickHouse 实战笔记 第05期:ClickHouse 环形复制集群搭建
ClickHouse案例:查询结果不一致
某用户反馈其使用的ClickHouse集群同样的查询返回了不同的结果,是否是ClickHouse数据不能够保证一致性,还是集群有问题。
Yannic
2020/11/16
14.5K1
ClickHouse案例:查询结果不一致
Clickhouse分布式集群搭建
安装zookeeper集群,也可以使用现成的,本次使用现成的,配置如下,后续加入配置文件中
职场亮哥
2020/10/10
3.9K0
ClickHouse 实战笔记 第04期:ClickHouse 高可用集群搭建
在海量数据的场景下,单节点的 CH 可能不能满足我们的需求了,因此可以考虑使用 CH 集群,从而解决单节点存储和查询的瓶颈。
数据库交流
2022/04/25
5.1K0
ClickHouse 实战笔记 第04期:ClickHouse 高可用集群搭建
Clickhouse集群安装部署
相关知识参考:https://www.cnblogs.com/jmx-bigdata/p/13708835.html
别先生
2021/03/04
3.1K0
Clickhouse集群安装部署
ClickHouse分布式高可用集群搭建
地址:https://packagecloud.io/altinity/clickhouse
MySQL轻松学
2018/12/21
11K0
ClickHouse分布式高可用集群搭建
ClickHouse(04)如何搭建ClickHouse集群
ClickHouse集群的搭建和部署和单机的部署是类似的,主要在于配置的不一致,如果需要了解ClickHouse单机的安装设部署,可以看看这篇文章,ClickHouse(03)ClickHouse怎么安装和部署。
张飞的猪
2023/12/04
1.1K0
ClickHouse(04)如何搭建ClickHouse集群
大数据ClickHouse(二):多种安装方式
在官网中可以看到ClickHouse可以基于多种方式安装,rpm安装、tgz安装包安装、docker镜像安装、源码编译安装等。这里我们使用rpm安装包安装。目前Clickhouse仅支持Linux系统且cpu必须支持SSE4.2指令集,可以通过以下命令查询Linux是否支持:
Lansonli
2022/08/09
3.5K0
大数据ClickHouse(二):多种安装方式
大数据存储技术之ClickHouse入门学习(一)
ClickHouse入门学习(一):https://blog.csdn.net/qq262593421/article/details/119514836
静谧星空TEL
2021/12/07
2.1K0
大数据存储技术之ClickHouse入门学习(一)
大数据ClickHouse进阶(一):ClickHouse使用场景和集群安装
ClickHouse是一个开源的,用于联机分析(OLAP)的列式数据库管理系统(DBMS-database manager system), 它是面向列的,并允许使用SQL查询,实时生成分析报告。ClickHouse最初是一款名为Yandex.Metrica的产品,主要用于WEB流量分析。ClickHouse的全称是Click Stream,Data WareHouse,简称ClickHouse。
Lansonli
2022/09/06
2.7K0
大数据ClickHouse进阶(一):ClickHouse使用场景和集群安装
技术分享 | ClickHouse 集群分片下扩容副本的方式
爱可生南区交付服务部 DBA 团队成员,主要负责MySQL故障处理以及相关技术支持。爱好电影,游戏,旅游以及桌球。
爱可生开源社区
2021/11/18
1.8K0
clickhouse集群,双实例多副本
4台机器,clickhouse集群搭建了双副本双实例,查询统计多次出现不同数据结果,具体如下 :
用户9066404
2023/09/06
7732
ClickHouse Replicated 高效迁移方案
-config.xml 新增src zookeeper 'src_cluster'
jasong
2023/03/21
1.1K0
Docker Compose V2 安装 ClickHouse v20.6.8.5 经验分享
从容器内拷贝配置文件到容器外部主机 (创建 work 目录,进入运行的 clickhouse 容器后会将默认的配置文件(config.xml, users.xml)复制到 work 目录)
易墨
2023/10/07
1.1K0
Docker Compose V2 安装 ClickHouse v20.6.8.5 经验分享
推荐阅读
相关推荐
ClickHouse 集群搭建
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档