​ 前言:

在深度学习和计算机视觉中,人们正在努力提取特征,为各种视觉任务输出有意义的表示。在一些任务中,我们只关注对象的几何形状,而不管颜色、纹理和照明等。这就是边界检测的作用所在。

关注公众号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实现清晰的边界检测的更多相关文章

  1. 不带Anchors和NMS的目标检测

    ​前言: 目标检测是计算机视觉中的一项传统任务.自2015年以来,人们倾向于使用现代深度学习技术来提高目标检测的性能.虽然模型的准确性越来越高,但模型的复杂性也增加了,主要是由于在训练和NMS后处理过 ...

  2. 经典论文系列 | 目标检测--CornerNet & 又名 anchor boxes的缺陷

    ​ 前言: 目标检测的预测框经过了滑动窗口.selective search.RPN.anchor based等一系列生成方法的发展,到18年开始,开始流行anchor free系列,CornerNe ...

  3. AAAI 2021 最佳论文公布

    ​ 作者:Synced 翻译:仿佛若有光 第三十五届 AAAI 人工智能会议 (AAAI-21) 以虚拟会议的形式拉开帷幕.组委会在开幕式上公布了最佳论文奖和亚军.三篇论文获得了最佳论文奖,三篇被评为 ...

  4. 漫谈CUDA优化

    ​ 作者:Lawliet 翻译:仿佛若有光 前言: 几个月前,我根据 Simoncelli 2016 年的论文编写了自己的自动编码器,用于研究目的.一开始,我想使用一些流行的深度学习框架(例如 Ten ...

  5. CVPR2021 | Transformer用于End-to-End视频实例分割

    ​ 论文:End-to-End Video Instance Segmentation with Transformers 获取:在CV技术指南后台回复关键字"0005"获取该论文 ...

  6. ICCV2021 | 重新思考视觉transformers的空间维度

    ​ 论文:Rethinking Spatial Dimensions of Vision Transformers 代码:https://github.com/naver-ai/pit 获取:在CV技 ...

  7. ICCV2021 |重新思考人群中的计数和定位:一个纯粹基于点的框架

    ​ 论文:Rethinking Counting and Localization in Crowds:A Purely Point-Based Framework 代码:https://github ...

  8. CVPR2021 | 重新思考BatchNorm中的Batch

    ​ 前言 公众号在前面发过三篇分别对BatchNorm解读.分析和总结的文章(文章链接在文末),阅读过这三篇文章的读者对BatchNorm和归一化方法应该已经有了较深的认识和理解.在本文将介绍一篇关于 ...

  9. ICCV2021 | MicroNet:以极低的 FLOPs 改进图像识别

    ​前言:这篇论文旨在以极低的计算成本解决性能大幅下降的问题.提出了微分解卷积,将卷积矩阵分解为低秩矩阵,将稀疏连接整合到卷积中.提出了一个新的动态激活函数-- Dynamic Shift Max,通过 ...

随机推荐

  1. python从hello world开始(3)

    """# !usr/bin/env python# -*- coding:utf-8 _*-""""""@Au ...

  2. 025.Python面向对象以及对对象的操作

    一 面向对象基本概念 1.1 OOP面向对象的程序开发 用几大特征表达一类事物称为一个类,类更像是一张图纸,表达只是一个抽象概念 对象是类的具体实现,更像是由这图纸产出的具体物品,类只有一个,但是对象 ...

  3. 生成多个ssh密钥-(转自 破男孩)

    如果你已经有了一套名为 id_rsa 的公秘钥,将要生成另外一个公钥,比如 aysee ,你也可以使用任何你喜欢的名字. 步骤如下: 1.生成一个新的自定义名称的公钥: 1 ssh-keygen -t ...

  4. Linux命令学习—— fdisk -l 查看硬盘及分区信息

    Linux命令学习(3)-- fdisk -l 查看硬盘及分区信息注意:在使用fdisk命令时要加上sudo命令,否则什么也不能输出linux fdisk 命令和df区别是什么? fdisk工具是分区 ...

  5. http keep-alive 的一些理解

    在日常的工作中涉及到了关于检测用户是否在线的功能需求,在方案设计过程中考虑过使用http-keepalive的方式,由于我们获取到的keepalive是经过nginx转发的keep-alive,所以最 ...

  6. 【ArcGIS遇上Python】ArcGIS Python批处理入门到精通实用教程目录

    目录 1. 专栏简介 2. 专栏地址 3. 专栏目录 1. 专栏简介 Python语言是目前很火热的语言,极大的促进了人工智能发展.你知道在ArcGIS中也会有python的身影吗?事实上,在ArcG ...

  7. Linux C 文件IO

    文件IO 2021-05-31 12:46:14 星期一 目录 文件IO 基础IO open 错误 creat read 一个例子 write close lseek 文件空洞 unlink删除 io ...

  8. WEB安全防护相关响应头(下)

    前篇"WEB安全防护相关响应头(上)"中,我们分享了 X-Frame-Options.X-Content-Type-Options.HTTP Strict Transport Se ...

  9. 2. Servlet3.0注解方式 @WebServlet

    web.xml配置还是比较麻烦,这次使用注解方式 编写servlet import javax.servlet.ServletException; import javax.servlet.annot ...

  10. [leetcode] (周赛)869. 重新排序得到 2 的幂

    869. 重新排序得到 2 的幂 枚举排列,然后验证.比较暴力. 其实好一点的做法应该反过来,先把int范围下的2的N幂算出来,然后一个一个验证给出的数能不能拼成. class Solution { ...