热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【论文笔记】DeepExtremeCut

主页:http:people.ee.ethz.ch~cvlsegmentationdextr论文地址:https:arxiv.orgabs1711.09

主页:http://people.ee.ethz.ch/~cvlsegmentation/dextr/
论文地址:https://arxiv.org/abs/1711.09081
代码:https://github.com/scaelles/DEXTR-PyTorch/




概览

Deep Extreme Cut 基于《Extreme clicking for efficient object annotation》,这篇论文是用户通过 extreme clicking 做物体标注任务,也就是画一个物体的 bounding box。

Deep Extreme Cut 将 extreme points 作为 guiding signal 输入到网络中去:


  • 为 extreme points 形成的 bounding box 区域内创建 heatmap
  • 2D Gaussian
  • 将 heatmap 与原 RGB 图像进行连接,形成一个 4 通道的 CNN

主要方法:

使用目标物体的 extreme points(极限点),即最左、最右、最上、最下方的四个点作为输入,以此获得图像分割结果。

网络结构:

backbone:ResNet-101

去掉了全连接层和最后两个 stage 的最大池化层,这样做是为了保持图像分辨率(和 FCN 一样),在最后两个 stage 用了 atrous convolution,用于保持相同大小的 receptive field,在最后,使用 pyramid scene parsing module,向最终的 feature map 中添加 global context。

预训练:ImageNet 数据集




方法细节

在这里插入图片描述
画 bounding box 的目的: 是为了获得 ROI 区域,排除其他信息对分割任务的干扰。所以这里就用 extreme points 获得目标物体的 bounding box,然后根据 bbox 对原图进行 crop

另外,又为了包含目标物体的上下文信息,所以 crop 并非严格按照 extreme points 得到的 bounding box 进行 crop,而是将这个 tight bounding box 稍微向外扩大几个像素

所以在数据的预处理阶段,就是进行 extreme clicking,然后根据这些 extreme points 得到一个 bounding box,最后输入网络的是 crop 后的原 RGB 图像 + extreme points

crop 策略:

使用 Obejct-centered crop,也就是以物体为中心的 crop 方式,这样得到的结果中,属于前景的 sample 应该要多于属于背景的 sample。


DEXTR使用场景

1)Class-agnostic Instance Segmentation(未知类别的实例分割)

实验数据集:PASCALA 和 Grabcut

2)Annotation(标注任务)

3)Video Object Segmentation(视频目标分割)

实验数据集:DAVIS-2016 和 DAVIS-2017

4)Interactive Object Segmentation(交互式分割)

用户给出 4 个 extreme points,得到一个自动的分割结果,如果不满意这个初始的分割结果,可以在误分割的区域上再额外给出一个点,论文中建议这个 extra point 最好也在目标物体的 boundary 上




实验部分

数据集: PASCAL,COCO,DAVIS-2016,DAVIS-2017,Grabcut

这里作者给出了一系列 ablation experiment(消融实验),消融实验实际上就是在证明提出的某个方法 “确实有效果”,即对比的就是没有加某个方法前和加了某个方法之后性能是否有提升、提升了多少。(也不知道为啥叫的这么唬人)

1)网络结构

采用的结构:ResNet-101
对比结构:Deeplab-v2,Mask R-CNN

2)bounding box 和 extreme points

对比 Deeplab-v2 使用 bounding box 做分割任务和本文用 extreme points 做分割任务,后者提升了 3.1%

3)loss function

对比两种损失函数,standard cross-entropy 和 class-balanced version

结论: balanced version 更好,提升性能 3.3%

4)Full image 和 crops

对比 CNN 是输入整张图像好还是输入 crop 后的图像好

结论: 输入 crop 后的图像提升性能 7.9%,而且对小物体分割的提升更大

原因: cropping 排除了无关信息的干扰

5)Atrous spatial pyramid(ASPP) 和 pyramid scene parsing(PSP) module

结论: PSP module 提升 2.3%

6)Manual extreme points 和 simulated extreme points

比较人工点击 extreme points 和模拟生成的 extreme points 得到的分割结果有什么不同
在这里插入图片描述
结论: 分割结果差不多

7)Distance-map 和 fixed points

消融实验总结:
在这里插入图片描述
在这里插入图片描述


推荐阅读
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 标题: ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • pytorch Dropout过拟合的操作
    这篇文章主要介绍了pytorchDropout过拟合的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完 ... [详细]
  • PyTorch框架中有一个非常重要且好用的包:torchvision,该包主要由3个子包组成,分别是:torchvision.datasets、torchvision.models、torchv ... [详细]
  • Giventhefollowingexample:给出以下示例:X<-matrix(nrow3,ncol3)X[1,]<-c(0.3,0.4,0.45)X ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • Netty源代码分析服务器端启动ServerBootstrap初始化
    本文主要分析了Netty源代码中服务器端启动的过程,包括ServerBootstrap的初始化和相关参数的设置。通过分析NioEventLoopGroup、NioServerSocketChannel、ChannelOption.SO_BACKLOG等关键组件和选项的作用,深入理解Netty服务器端的启动过程。同时,还介绍了LoggingHandler的作用和使用方法,帮助读者更好地理解Netty源代码。 ... [详细]
  • 传统图像处理之皮肤区域检测
    本文主要分享【图像区域识别】,技术文章【传统图像处理之皮肤区域检测】为【watersink】投稿,如果你遇到图像处理相关问题,本文相关知识或能到你。图像区域识别能够从别人的角度来看待这个世界,是一 ... [详细]
  • YOLOV4 Pytorch版本训练自建数据集和预测
    1.程序下载本文程序核心部分完全参考开源代码:https:github.comWongKinYiuPyTorch_YOLOv4。只是从一种学习的角度去写了我的代码仓库,在基础上增加 ... [详细]
author-avatar
mobiledu2502886217
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有