Learning a Discriminative Feature Network for Semantic Segmentation(语义分割DFN,区别特征网络)
1、介绍
语义分割通常有两个问题:类内不一致性(同一物体分成两类)和类间不确定性(不同物体分成同一类)。本文从宏观角度,认为语义分割不是标记像素而是标记一个整体,提出了两个结构解决这两个问题,平滑网络和边界网络(Smooth Network and Border Network)。平滑网络用的是通道注意力块(Channel Attention Block),来解决类内不一致性。边界网络集成了语义边界损失。
2、相关工作
Encoder-Decoder:主要考虑如何恢复由于池化造成的空间信息损失,如 SegNet,U-net,Global Convolutional Network,LRR,Refinenet。这些方法只是把相邻步骤的特征总和起来,没有考虑多样表现性
Global Context(全局上下文信息):全局平均池化有很大的效果,如 ParseNet,PSPNet,Deeplabv3
Attention Module(注意力模块):注意力关注不同尺度信息,如 SENet
Semantic Boundary Detection(语义边界检测):许多方法直接连接不同层的特征提取边界,我们用了自下而上的结构来优化每一步的特征
3、网络结构

平滑网络:用了 global pool 以及通道注意力模块和精细化残差块
边界网络:用传统的 canny 边缘检测算法获得边界,损失函数用的 focal loss,为了平衡正负样本,同时减少简单样本的损失,使网络更易于训练
整体网络:用 deep supervision 对每一层的结果进行上采样计算损失,除了全局池化层,平滑网络用 softmax,边界网络用 focal loss,最后两个加起来用一个平衡参数 L=L(s)+a*L(b)
4、训练
优化器:SGD
batch size:32
动量:0.9
权重衰减:0.0001
学习率:4e-3
学习率衰减:(1-iter/maxiter)^0.9
损失函数比例a:0.1(验证集上效果最好)
数据扩增:减去均值,随机水平翻转,随机缩放
5、看完其实并不太懂具体的实现,只能是知道一个大概的结构,具体的实现结构可以参考github:https://github.com/YuhuiMa/DFN-tensorflow
Border Network主要用于计算 loss 更新权重,
Learning a Discriminative Feature Network for Semantic Segmentation(语义分割DFN,区别特征网络)的更多相关文章
- 《Learning a Discriminative Feature Network for Semantic Segmentation》解读
旷世18年的CVPR,论文链接:https://arxiv.org/abs/1804.09337 Motivation:针对分割中的“类内不一致”和“类间一致性”的两大问题,设计了结合Smooth n ...
- 论文阅读笔记十六:DeconvNet:Learning Deconvolution Network for Semantic Segmentation(ICCV2015)
论文源址:https://arxiv.org/abs/1505.04366 tensorflow代码:https://github.com/fabianbormann/Tensorflow-Decon ...
- Semantic Segmentation on Remotely Sensed Images Using an Enhanced Global Convolutional Network with Channel Attention and Domain Specific Transfer Learning
创新点: 1.在GCN(global convolutional network)基础上,把他的backbone替换成更多层的,使其适应中分辨率影像,resnet50,101,152 2.利用 cha ...
- 语义分割(semantic segmentation) 常用神经网络介绍对比-FCN SegNet U-net DeconvNet,语义分割,简单来说就是给定一张图片,对图片中的每一个像素点进行分类;目标检测只有两类,目标和非目标,就是在一张图片中找到并用box标注出所有的目标.
from:https://blog.csdn.net/u012931582/article/details/70314859 2017年04月21日 14:54:10 阅读数:4369 前言 在这里, ...
- Remote Sensing Images Semantic Segmentation with General Remote Sensing Vision Model via a Self-Supervised Contrastive Learning Method
论文阅读: Remote Sensing Images Semantic Segmentation with General Remote Sensing Vision Model via a Sel ...
- Learning Deconvolution Network for Semantic Segme小结
题目:Learning Deconvolution Network for Semantic Segmentation 作者:Hyeonwoo Noh, Seunghoon Hong, Bohyung ...
- 论文阅读笔记十八:ENet: A Deep Neural Network Architecture for Real-Time Semantic Segmentation(CVPR2016)
论文源址:https://arxiv.org/abs/1606.02147 tensorflow github: https://github.com/kwotsin/TensorFlow-ENet ...
- 【Semantic Segmentation】DeepLab V3(转)
原文地址:DeepLabv3 代码: TensorFlow Abstract DeepLabv3进一步探讨空洞卷积,这是一个在语义分割任务中:可以调整滤波器视野.控制卷积神经网络计算的特征响应分辨率的 ...
- 论文笔记:A Review on Deep Learning Techniques Applied to Semantic Segmentation
A Review on Deep Learning Techniques Applied to Semantic Segmentation 2018-02-22 10:38:12 1. Intr ...
随机推荐
- BUAA OO 2019 第三单元作业总结
目录 总 JML规格化设计 理论基础 工具链 规格验证 验证代码 代码静态检查 自动生成测试样例 生成结果 错误分析 作业设计 第九次作业 架构 代码实现 第十次作业 架构 代码实现 第十一次作业 架 ...
- JavaScript的变量和常量
1.什么是常量? 常量表示一些固定不变的数据 现实生活中人的性别其实就可以看做是常量, 生下来是男孩一辈子都是男孩, 生下来是女孩一辈子都是女孩 2.JavaScript中常量的分类 2.1整型常量 ...
- javascript原型链[图]
- Django Redis配置
Django Redis配置 # Django默认不支持redis,需要第三方插件来支持 pipenv install django-redis pipenv install hiredis # 不是 ...
- sqlite移植
编译 # tar xvf sqlite-3.6.16.tar.gz # cd sqlite-3.6.16 # ./configure # ./configure --host=arm-linux -- ...
- SAP Marketing Cloud功能简述(五) : 销售计划管理
Grace前四篇介绍SAP Marketing Cloud的文章: SAP Marketing Cloud功能简述(一) : Contacts和Profiles SAP Marketing Cloud ...
- PowerDesigner 连接数据库,更新数据库;
首先:以管理员身份运行Powerdesigner 一.连接服务器的某个数据库: 点击新建数据源图标 选择数据源类型:用户数据源:这里说是只用于当前机器,实际局域网里的都可以. Successfully ...
- MYSQL 存储引擎概述
一.存储引擎 Mysql中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中每一种技术都使用了不同的存储机制,索引技巧.锁定水平并且最终提供广泛的不同功能和能力.通过选择不同的技术,你能够获得 ...
- keekalived+nginx 高可用
高可用环境准备 后端服务器主配置文件 [192.168.2.7-root@web01~]#cat /etc/nginx/nginx.conf user www; worker_processes 1; ...
- 解决pycharm新建项目后按钮灰色问题
解决pycharm新建项目后按钮灰色问题 出现过多次该问题了, 在此记录一下 同样适用于导入别人的新项目后无法运行问题 原因一: pycharm没有设置系统解析器 解决方法一: 打开pycharm-& ...