使用Dice loss实现清晰的边界检测
前言:
在深度学习和计算机视觉中,人们正在努力提取特征,为各种视觉任务输出有意义的表示。在一些任务中,我们只关注对象的几何形状,而不管颜色、纹理和照明等。这就是边界检测的作用所在。
关注公众号CV技术指南,及时获取更多计算机视觉技术总结文章。
问题定义
图1 边界检测
图1是一个边界检测的例子,顾名思义,边界检测是从图像中检测对象边界的任务。这是一个不适定的问题,因为问题设置本身存在歧义。如图所示,对于室内房间图像(左),ground truth(中)定义房间内的ground truth对象边界,并且预测(右)估计房间的对象边界。然而,我们可以看到,估计的边界远不止是ground truth,包括来自房间布局、窗帘,甚至沙发纹理的不必要的边界线。提取干净且有意义的对象边界并不容易。
原始方法
边界检测的一个直接解决方案是将其视为语义分割问题。在标注中简单地将边界为1和其他区域标记为0,我们可以将其表示为一个二分类语义分割问题,以二值交叉熵损失为损失函数。然而,它有两个原因:高度不平衡的标签分布和每像素交叉熵损失的内在问题。
Cross Entropy Loss的局限性
当使用交叉熵损失时,标签的统计分布对训练精度起着很重要的作用。标签分布越不平衡,训练就越困难。虽然加权交叉熵损失可以减轻难度,但改进并不显著,交叉熵损失的内在问题也没有得到解决。在交叉熵损失中,损失按每像素损失的平均值计算,每像素损失按离散值计算,而不知道其相邻像素是否为边界。因此,交叉熵损失只考虑微观意义上的损失,而不是全局考虑,这还不足以预测图像水平。
图2 具有交叉熵损失的边界预测
如图2所示。对于输入图像(左),比较了交叉熵损失(中)和加权交叉熵损失(右)的预测。右边的边界比中间的要好得多,但预测的边界并不干净,肮脏的草地纹理边界仍然存在。
Dice Loss
Dice Loss起源于Sørensen-Dice系数,这是20世纪40年代用来测量两个样本之间的相似性的统计数据。它是由米勒塔里等人带到计算机视觉的。2016年进行三维医学图像分割。
图3 骰子系数
上式显示了骰子系数方程,其中pi和gi分别表示对应的像素预测值和ground truth。在边界检测场景中,pi和gi的值为0或1,表示像素是否为边界,是的时候值为1,否则值为0。因此,分母是预测和ground truth的总边界像素的和,数值是正确预测的边界像素的和,因为只有当pi和gi值匹配时(两个值1)才递增。
图4 骰子系数(设定视图)
图4是图3的另一个视图。从集理论的角度来看,其中骰子系数(DSC)是两个集合之间重叠的度量。例如,如果两组A和B完全重叠,DSC的最大值为1。否则,DSC开始减少,如果两个组完全不重叠,则最小值为0。因此,DSC的范围在0到1之间,越大越好。因此,我们可以使用1-DSC作为骰子损失来最大化两组之间的重叠。
在边界检测任务中,ground truth边界像素和预测的边界像素可以被视为两个集合。通过利用Dice Loss,这两组被训练一点地重叠。如图4所示。分母考虑全局尺度上的边界像素的总数,而数值考虑局部尺度上的两个集合之间的重叠。因此,Dice Loss在本地和全局上都考虑了损失信息,这对于高精度至关重要。
结果
图5 边界预测的结果
如图5所示。使用Dice Loss(c列)的预测结果比其他方法(d、e列)具有更高的精度。特别是对于薄边界,因为只有当预测的边界像素与ground truth薄边界重叠,并且在其他区域没有预测的边界像素时,才可以减少Dice Loss
参考论文
V-Net: Fully Convolutional Neural Networks for Volumetric Medical Image Segmentation, Milletari et al., 3DV 2016
Learning to Predict Crisp Boundaries, Deng et al., ECCV 2018
原文链接:
https://medium.com/ai-salon/understanding-dice-loss-for-crisp-boundary-detection-bb30c2e5f62b
本文来源于公众号 CV技术指南 的论文分享系列。
欢迎关注公众号 CV技术指南 ,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读。
在公众号中回复关键字 “技术总结” 可获取以下文章的汇总pdf。
其它文章
使用Dice loss实现清晰的边界检测
PVT--无卷积密集预测的多功能backbone
CVPR2021 | 开放世界的目标检测
Siamese network总结
视觉目标检测和识别之过去,现在及可能
在做算法工程师的道路上,你掌握了什么概念或技术使你感觉自我提升突飞猛进?
计算机视觉专业术语总结(一)构建计算机视觉的知识体系
欠拟合与过拟合技术总结
归一化方法总结
论文创新的常见思路总结
CV方向的高效阅读英文文献方法总结
计算机视觉中的小样本学习综述
知识蒸馏的简要概述
优化OpenCV视频的读取速度
NMS总结
损失函数技术总结
注意力机制技术总结
特征金字塔技术总结
池化技术总结
数据增强方法总结
CNN结构演变总结(一)经典模型
CNN结构演变总结(二)轻量化模型
CNN结构演变总结(三)设计原则
如何看待计算机视觉未来的走向
CNN可视化技术总结(一)特征图可视化
CNN可视化技术总结(二)卷积核可视化
CNN可视化技术总结(三)类可视化
CNN可视化技术总结(四)可视化工具与项目
使用Dice loss实现清晰的边界检测相关推荐
- msra数据集_ACL2020 | 香侬科技提出使用Dice Loss缓解数据集数据不平衡问题
论文标题:Dice Loss for Data-imbalanced NLP Tasks 论文作者:Xiaofei Sun, Xiaoya Li, Yuxian Meng, Junjun Liang, ...
- L1/L2/smooth_l1_loss/center_loss+Dice Loss+focal loss+各种IOU loss+kl散度
一.L1/L2/smooth_l1_loss/center_loss公式与代码 1.公式 L2公式: smooth_L1公式: 2.三种函数numpy代码实现 import numpy as np i ...
- Dice Loss,balanced cross entropy,Focal Loss
Dice Loss Dice系数是一种集合相似度度量函数,取值范围在[0,1]:s=2∣X∩Y∣∣X∣+∣Y∣s=\frac{2|X\cap Y|}{|X|+|Y|}s=∣X∣+∣Y∣2∣X∩Y∣其 ...
- Dice Loss与mIoU
Dice系数和mIoU是语义分割的评价指标,在这里进行了简单知识介绍. 一.Dice系数 1.1 概念理解 Dice系数源于二分类,本质上是衡量两个样本的重叠部分,是一种集合相似度度量函数,该指标范围 ...
- dice系数 交叉熵_ACL2020 | 香侬科技提出用Dice Loss缓解数据集数据不平衡问题
论文标题: Dice Loss for Data-imbalanced NLP Tasks 论文作者: Xiaofei Sun*, Xiaoya Li*, Yuxian Meng, Junjun Li ...
- ACL 2020 | 香侬科技提出用Dice Loss缓解数据集数据不平衡问题
论文标题: Dice Loss for Data-imbalanced NLP Tasks 论文作者: Xiaofei Sun*, Xiaoya Li*, Yuxian Meng, Junjun Li ...
- 图像分割中的Dice Loss
本文只总结我对Dice Loss的一些理解,如有不同见解欢迎批评指正 1.首先简单介绍一下,这个不多说,详细如知乎所讲. Dice 定义为2倍交集/和, 范围在[0,1]: Dice Loss 取反或 ...
- 图像分割之常用损失函数-Dice Loss
哈喽大家好 ! 我是唐宋宋宋,很荣幸与您相见!! Dice Loss Dice Loss是由Dice系数而得名的,Dice系数是一种用于评估两个样本相似性的度量函数,其值越大意味着这两个样本越相似,D ...
- 类别不均衡问题之loss大集合:focal loss, GHM loss, dice loss 等等
数据类别不均衡问题应该是一个极常见又头疼的的问题了.最近在工作中也是碰到这个问题,花了些时间梳理并实践了类别不均衡问题的解决方式,主要实践了"魔改"loss(focal loss, ...
最新文章
- C++ leetcode 12. 整数转罗马数字 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。
- Tomcat集群快速入门
- 使用SAP ABAP 事物码 ST12 研究 SAP CRM 产品搜索的性能 - product search性能
- Python正则替换字符串函数re.sub用法示例(1)
- ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程
- [CTSC2017]吉夫特(思维+巧妙)
- java math max_Java Math类静态double max(double d1,double d2)示例
- layui父页面调用子页面的渲染_layUI ajax加载html页面后重新渲染的方法
- Android中文翻译组 - 简介
- E: Malformed line 60 in source list /etc/apt/sources.list (dist parse)
- c#如何生成Excel(.xls和.xlsx)文件
- 产品读书《浪潮之巅》
- Windows Me光盘启动安装过程
- 高德地图经纬度检索校验
- 掠过和记黄埔IDC机房
- 计算机一级最强大脑,计算机入侵人类 《最强大脑》选手完败?
- 2019上半年软件设计师考试体会
- 域名被QQ和微信拦截?域名红了无法推广教你一段代码搞定!
- 立创EDA学习笔记(5)——PCB设计
- 【规范】万字集大成的HDLFPGA学习和规范
热门文章
- win10 关闭病毒和威胁防护
- 20171218Capstone培训班
- worthington丨worthington 胶原酶取样程序
- Python案例学习—yuC
- 美国房价仍在上涨,但购房需求今年首次低于2020年水平
- c语言中要求对象只能为整数的运算符是,以下正确的叙述是( ) 答案:在C程序中, %是只能用于整数运算 的运算符...
- css如何实现毛玻璃效果
- Linux命令使用技巧集锦(转)
- adblock plus规则下载(包含国内99%网站广告屏蔽规则)
- 华为android5.1版本,华为P10国行版搭载的EMUI5.1怎么样?