对象上下文语义分割:OCR

原文:Object-Contextual Representations for Semantic Segmentation

论文链接: https://arxiv.org/abs/1909.11065

pytorch official code: https://github.com/HRNet/HRNet-Semantic-Segmentation/tree/HRNet-OCR

笔记时间:2020.11.25

文章发表在了ECCV2020

微软和中科大提出的HRNet可以保持高分辨率的特性可以用于对位置信息敏感的任务中。

在语义分割的任务中进一步的提出了一个聚合上下文信息的模块。也就是今天说的这个OCR。

看到目前的分割文章都有一种A+B的感觉,A是一个backbone(resnet,inception)等等。B是一个语义聚合的模块(包括pspnet中的PPM,deeplab中的ASPP)等等


文章目录

  • 对象上下文语义分割:OCR
    • Abstract
    • Introduction+Related work
    • Approach
    • Experiments
    • Conclusions

Abstract

文章的总体思路是:像素的标签是像素所在的对象的标签,并且通过用相应的对象区域表示来表征每个像素来加强像素表示。

主要分为三个步骤:

  • First, we learn object regions under the supervision of the ground-truth segmentation.(这里的object regions可以大概理解成我先搞一个粗略的分割)
  • Second, we compute the object region representation by aggregating the representations of the pixels lying in the object region.
  • Last, we compute the relation between each pixel and each object region, and augment the representation of each pixel with the object-contextual representation which is a weighted aggregation of all the object region representations.

具体看这些步骤好像很乱,事实上大概目标就是计算像素和对象之间的关系,最后来加强每个像素的表示。


Introduction+Related work

对于上下文信息的利用最早就有aspp和ppm这种具有固定区域结构的空间表示。但是本文提出的OCR对比固定空间表示的上下文聚合更具灵活性。可以看到下图:

对于aspp来讲,每个像素去提取上下文信息都是固定空间位置的。对于OCR来讲,他提取的上下文信息是提取目标像素所在对象的上下文信息。

论文整体的思路有点有粗到细的感觉。先根据粗的分割结果表示出对象。再通过对象和像素之间的关系,加强表示像素的信息。但是这个粗分割的结果只用于生成上下文信息。


Approach

文章这个部分写了很多的公式。直接看公式可能有点云里雾里,直接看代码可能更清楚些。

看的是上面这个文件的代码

https://github.com/HRNet/HRNet-Semantic-Segmentation/blob/HRNet-OCR/lib/models/seg_hrnet_ocr.py

633行之前都是进行HRNet,从633行开始才是OCR的部分

     # ocr#这句的作用是进行粗分割,形成对应论文中的软对象区域,也就是粉色框里的东西out_aux = self.aux_head(feats)# compute contrast feature#这里feats就是图中的蓝色框里的东西,对应论文中的pixel reprationsfeats = self.conv3x3_ocr(feats)#这里形成的是object region representation,就是紫色框里的东西context = self.ocr_gather_head(feats, out_aux)#计算pixel和object region的关系。最后形成的是augmented           #representation也就是黄色框里的深蓝色块(这步里面进去看有很多的步骤)feats = self.ocr_distri_head(feats, context)#最后分类到对应的channel数out = self.cls_head(feats)

在看代码的过程中没有看到最后上采样4倍的地方,找了好久,最后发现好像写在了criterion.py 交叉熵损失那里,不知道为啥要这么做。

对比实验验证对象区域监督对性能有不小的影响


Experiments

训练:用于监督目标区域的损失设置损失权重为0.4。进行了数据增强。

作者不仅在性能上进行了对比,在内存使用,参数量等也进行了对比。


Conclusions

文章提出了一种面向语义分割的对象上下文表示方法。主要的想法就是认为像素的标签是像素所在的对象的标签,并且通过用相应的对象区域表示来表征每个像素来加强像素表示。

对象上下文语义分割:OCR论文笔记(Object-Contextual Representations for Semantic Segmentation )相关推荐

  1. CVPR2022自适应/语义分割:Class-Balanced Pixel-Level Self-Labeling for Domain Adaptive Semantic Segmentation

    CVPR2022自适应/语义分割:Class-Balanced Pixel-Level Self-Labeling for Domain Adaptive Semantic Segmentation用 ...

  2. 语义分割--(DFN)Learning a Discriminative Feature Network for Semantic Segmentation

    Learning a Discriminative Feature Network for Semantic Segmentation Learning a Discriminative Featur ...

  3. 语义分割--Not All Pixels Are Equal:Difficulty-Aware Semantic Segmentation via Deep Layer Cascade

    Not All Pixels Are Equal: Difficulty-Aware Semantic Segmentation via Deep Layer Cascade CVPR2017 本文针 ...

  4. 一文看尽9篇语义分割最新论文(GPSNet/Graph-FCN/HMANet等)

    前言 恰逢 2020年,本文再次更新近期值得关注的最新语义分割论文.这次分享的paper将同步推送到 github上,欢迎大家 star/fork(点击阅读原文,也可直接访问): https://gi ...

  5. ICCV2021 语义分割相关论文集合推荐

    1. 论文名称:Re-distributing Biased Pseudo Labels for Semi-supervised Semantic Segmentation: A Baseline I ...

  6. 干货 | 语义分割综述论文总结与推荐

    添加几篇 19-20 年的综述 Evolution of Image Segmentation using Deep Convolutional Neural Network: A Survey 这篇 ...

  7. 【语义分割】论文代码资料汇总

    语义分割的资料总结 1.Github一份丰富的论文清单 from hangdong1587,这份清单中包含了一下几个部分: 语义分割基础论文 基于多边形的分割 基于U-net的分割 前景分割 语义分割 ...

  8. 语义分割——语义分割数据集的笔记

    1 语义分割数据集的笔记 1.1 Pascal VOC data sets Pascal VOC是一个语义分割的数据集: 官方链接:http://host.robots.ox.ac.uk/pascal ...

  9. 语义分割系列论文 ParseNet

    语义分割系列论文 ParseNet 核心思想--Global Context 理论感受野的大小(Receptive Field) 实际感受野的大小 此文章如何扩大感受野? 疑点(读者可以忽略本节) 总 ...

最新文章

  1. 从实现iPhone的OAuth封装看国内互联网和开放平台
  2. 转:android实时语音问题分析
  3. python pip国内源_Python 修改pip源为国内源
  4. OPPO海外功臣realme将回归国内 目标竞争对手:红米和荣耀
  5. mysql 数据库被覆盖_理解MySQL数据库覆盖索引
  6. linux内核维护者,Linux 内核维护者封杀明尼苏达大学(转载) - 优秀的Free OS(Linux)版 - 北大未名BBS...
  7. 开发一个软件需要哪些角色
  8. 知识图谱嵌入:TransE算法原理及代码详解
  9. java图片透明_Java实现对图片透明化处理
  10. NSString NSCFString isMemberOfClass 遇到的相关的问题
  11. 抖音账号盘子起底:摄影类账号是怎么割韭菜?
  12. python股票交易接口是什么_python 股票交易接口【怎样用 Python 写一个股票自动交易的程序】...
  13. 并发(10):线程之间的协作(上)
  14. 一台电脑绿色安装多个版本google Chorme方案
  15. 计算机毕设 SSM线上少儿编程系统 在线少儿编程学习系统 少儿编程教育课程平台Java
  16. the inferior stopped because it triggered an exception
  17. 安卓bmi项目_bmi计算器
  18. 【万字干货】产业互联网B端产品经理实操手册
  19. kafka部署时出现的天坑
  20. 嵌套交叉验证的一致特征(Consensus features nested cross-validation)

热门文章

  1. 微博android升级7.000,华为 Android 7.0 升级计划曝光:G9 青春版 /Nova 也有份
  2. html编码后台转换,HTML编码转换、HTML部分实体
  3. 高德地图SDK在API 31以上崩溃的问题
  4. 王者荣耀账号转服务器,王者荣耀账号如何跨系统转移
  5. 如何选择适合你的兴趣爱好(一),拉丁舞
  6. C语言或less或sass中,ceil floor 无法传入动态变量取整的办法
  7. picACG本地缓存目录_饭团追书怎么返回目录 饭团追书和饭团探书区别
  8. Layui使用中遇到的问题
  9. python 人民币兑美元汇率代码_人民币对美元汇率的大数据分析与预测【完整代码】...
  10. 《用户至上:用户研究方法与实践》用户体验入门