图像分割2020总结:结构,损失函数,数据集和框架

2023-05-16

点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”


作者:Derrick Mwiti

编译:ronghuaiyang

导读

一个很好的入门小短文,内容很全,适合上手。

在这篇文章中,我们将进入使用深度学习进行图像分割的世界。我们将讨论:

  • 图像分割是什么以及图像分割的两种主要类型

  • 图像分割结构

  • 图像分割中使用的损失函数

  • 你可以使用的框架

就让我们一探究竟吧。

什么是图像分割?

顾名思义,这是将图像分割为多个部分的过程。在这个过程中,图像中的每个像素都与一个对象类型相关联。图像分割主要有两种类型:语义分割和实例分割。

在语义分割中,所有相同类型的对象都使用一个类标签进行标记,而在实例分割中,相似的对象使用各自的标签。

图像分割结构

图像分割的基本结构包括编码器和解码器。

编码器通过滤波器从图像中提取特征。解码器负责生成最终输出,该输出通常是包含对象轮廓的分割掩码。大多数架构都有这种架构或它的变体。

让我们来看几个例子。

U-Net

U-Net是一种卷积神经网络,最初是为分割生物医学图像而开发的。当它被可视化的时候,它的架构看起来像字母U,因此被命名为U-Net。其体系结构由两部分组成,左侧为收缩路径,右侧为扩展路径。收缩路径的目的是获取上下文,而扩展路径的作用是帮助精确定位。

U-Net是由右侧的扩张路径和左侧的收缩路径组成的。收缩路径由两个3乘3的卷积组成。卷积之后是一个ReLU和一个2x2的最大池计算用于下采样。

你可以在这里找到U-Net的完整实现:https://lmb.informatik.uni-freiburg.de/people/ronneber/u-net/。

FastFCN —Fast Fully-connected network

在这个架构中,使用一个联合金字塔上采样(JPU)模块来替换膨胀卷积,因为它们消耗大量的内存和时间。在应用JPU进行上采样时,其核心部分采用全连接网络。JPU将低分辨率的feature map采样到高分辨率feature map。

如果你想动手实现一些代码,看这里:https://github.com/wuhuikai/FastFCN。

Gated-SCNN

这个架构由一个 two-stream CNN架构组成。在该模型中,使用一个单独的分支来处理图像的形状信息。利用形状流来处理边界信息。

实现参考代码:https://github.com/nv-tlabs/gscnn

DeepLab

在这种架构中,上采样滤波器的卷积用于涉及密集预测的任务。多尺度的目标分割是通过空间金字塔池实现的。最后,利用DCNNs来改进目标边界的定位。通过对滤波器插入零进行上采样或对输入特征图进行稀疏采样来实现卷积。

实现参考代码:https://github.com/fregu856/deeplabv3,https://github.com/sthalles/deeplab_v3

Mask R-CNN

在这个架构中,使用边界框和语义分割将每个像素划分为一组类别,对对象进行分类和局部化。对每个感兴趣的区域得到一个分割掩码,生成一个类标签和一个边界框作为最终输出。该架构是Faster  R-CNN的扩展。Faster R-CNN由regions proposer和深度卷积网络和利局部检测器组成。

这里是COCO测试集中的一张图像的结果:

图像分割损失函数

语义分割模型在训练过程中通常使用一个简单的交叉分类熵损失函数。但是,如果你对获取图像的细粒度信息感兴趣,那么你需要用到稍微高级一点的损失函数。

我们来看看其中的几个。

Focal Loss

这种损失是对标准交叉熵的改进。这是通过改变它的形状来实现的,这样分配给分类良好的样本的损失就降低了。最终,这确保了没有类别不平衡。在这个损失函数中,交叉熵损失被缩放,随着对正确类的置信度的增加,缩放因子衰减为零。在训练时,比例因子会自动降低简单样本的权重,并聚焦于困难样本。

Dice loss

这个损失是通过计算smooth dice coefficient得到的。这种损失是最常用的分割损失。

Interp over Union (IoU)-balanced Loss

IoU平衡分类损失的目的是增加高IoU样本的梯度,降低低IoU样本的梯度。这样提高了机器学习模型的定位精度。

Boundary loss

边界损失的一种变体应用于分割高度不平衡的任务。这种损失的形式是空间等高线上的距离度量,而不是区域。这种方法解决了高度不平衡的分割任务中区域损失的问题。

Weighted cross-entropy

在交叉熵的一种变体中,所有正样本都用一定的系数进行加权。它用于类别不平衡的场景。

Lovász-Softmax loss

该损失是对基于子模块损失凸Lovasz扩展的神经网络平均IoU损失的直接优化。

其他值得一提的损失包括:

  • TopK loss,其目的是确保网络在训练过程中聚焦于困难样本上。

  • 距离惩罚交叉熵损失,引导网络难以分割的边界地区。

  • 敏感性-特异性(SS)损失,计算特异性和敏感性的均方差的加权和。

  • Hausdorff distance(HD) loss,估计了卷积神经网络的Hausdorff距离。

这只是在图像分割中使用的几个损失函数。想了解更多内容,看这里:https://github.com/JunMa11/SegLoss。

图像分割数据集

从哪里可以得到一些数据集来开始?让我们来看几个例子。

Common Objects in COntext — Coco Dataset

COCO是一个大型物体检测、分割和图像描述数据集。数据集包含91个类。它有25万个人标注了关键点。它的大小是37.57 GiB。它包含80个物体类别。它遵循Apache 2.0许可,下载链接:http://cocodataset.org/#download。

PASCAL Visual Object Classes (PASCAL VOC)

PASCAL有9963个图像和20个不同的类。训练/验证集是一个2GB的tar文件。数据集下载:http://host.robots.ox.ac.uk/pascal/VOC/voc2012/。

The Cityscapes Dataset

此数据集包含城市场景的图像。它可以用来评估城市场景中视觉算法的性能。数据集下载:https://www.cityscapes-dataset.com/downloads/。

The Cambridge-driving Labeled Video Database — CamVid

这是一个基于运动的分割和识别数据集。它包含32个语义类。数据集下载:http://mi.eng.cam.ac.uk/research/projects/VideoRec/CamVid/。

图像分割框架

现在你已经有了数据集,让我们介绍一些工具/框架,你可以使用它们来开始。

  • FastAI library - 给定一幅图像,该库能够创建该图像中对象的mask。

  • Sefexa Image Segmentation Tool  - Sefexa是一个免费的工具,可以用于半自动图像分割,图像分析,创建ground truth

  • Deepmask - Deepmask由Facebook Research开发,是Deepmask和SharpMask的Torch实现。

  • MultiPath - 这是来源于A MultiPath Network for Object Detection的物体检测网络的Torch实现。

  • OpenCV - 这是一个开源的计算机视觉库,有超过2500个优化算法。

  • MIScnn - 这是一个医学图像分割开源库。它使用最先进的卷积神经网络和深度学习模型建立管道,只需几行代码。

  • Fritz - Fritz提供多种计算机视觉工具,包括用于移动设备的图像分割工具。

总结

本文为你提供了一些图像分割的背景知识,并为你提供了一些工具和框架,可以用于入门。

我们讨论了:

  • 什么是图像分割,

  • 图像分割架构,

  • 图像分割损失,

  • 图像分割工具和框架。

要了解更多信息,请查看每个架构和框架的链接。

—END—

英文原文:https://neptune.ai/blog/image-segmentation-in-2020

请长按或扫描二维码关注本公众号

喜欢的话,请给我个在看吧

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图像分割2020总结:结构,损失函数,数据集和框架 的相关文章

  • Passwork适合多人协作团队的自建密码管理器

    如今互联网已经深入我们的工作和生活中 xff0c 从办公 购物 学习每天都会用到各种网站平台 各种APP客户端 各种软件账户 xff0c 这就离不开对各个平台账户的管理 我们应该也知道 xff0c 账户的安全是至关重要的 xff0c 如果账
  • 完整利用Rsync实现服务器/网站数据增量同步备份

    我们在选择VPS 服务器架设项目之后 xff0c 所有的项目 网站数据都需要我们自行备份和维护 xff0c 即便有些服务商有提供管理型服务器 xff0c 但是数据自行备份和管理才是较为靠谱的 无论是网站 xff0c 还是其他项目 xff0c
  • 整理Nginx/Apache服务器配置HTTPS SSL证书示范教程

    昨天我们看到百度发布 34 百度烽火算法升级 34 xff0c 提到网站如果被劫持或者拦截可能会降低网站的权重和排名等问题 这使得我们网站需要使用HTTPS SSL证书来减少被拦截劫持的风险 其实在早些时候我们已经看到很多浏览器都强制要求网
  • 6个免费DNS解析服务商评测分析 适用于网站域名解析应用

    这几天我们很多网友应该知道CloudXNS DNS解析服务商预计7月15日会宣布停止提供免费解析服务而主营商业服务 虽然网络上提供免费DNS解析服务商很多 xff0c 但是毕竟这么多年CloudXNS域名解析稳定性还是不错的 xff0c 而
  • 两种方法修改数据库myslq密码

    搞了很久终于修改数据库密码成功了 命令行修改root密码 xff1a mysql gt UPDATE mysql user SET password 61 PASSWORD 新密码 WHERE User 61 root mysql gt F
  • 关于学生课堂行为识别算法

    目前基于针对学校做了一款考生行为识别算法 xff0c 算法可以在服务器部署 xff0c 也可以在前端设备如Jetson RK等边缘设备运行 xff0c 目前算法已经投入使用 xff0c 算法效果如下 目前算法在 2080Ti 服务器运行效率
  • 获取imagefield 类型图片的路径

    绝对路径 request build absolute uri 图片 url 相对路径 图片 url
  • mmdetection 常用命令

    1 多卡训练 CUDA VISIBLE DEVICES 61 0 1 2 3 PORT 61 15200 tool dist train py configs py 4 2 普通测试 python tools test py configs
  • yolov5 导出onnx 忽略检测层

    def forward self x z 61 inference output for i in range self nl x i 61 self m i x i conv bs ny nx 61 x i shape x bs 255
  • python opencv 添加运动模糊

    在训练过程中增加 运动模糊 class MotionBlur object def init self p 61 0 5 degree 61 5 angle 61 45 self p 61 p self degree 61 degree s
  • pth 多类模型改成一类模型

    import torch import copy def change pth input pth out pth model dir 61 input pth checkpoint 61 torch load model dir mode
  • 使用opencv进行车牌提取及识别

    商业合作可联系 xff1a 547691062 64 qq com 目录 1车牌提取过程 1 1车辆图像获取1 2车牌定位1 3车牌字符分割2车牌提取 2 1灰度化2 2Candy边缘检测2 3形态学 xff08 膨胀腐蚀 xff09 处理
  • python 爬虫禁止访问解决方法(403)

    1 增加Header2 代理IP3 终极方法4 实例练习 5 更多思考 在上一篇博客中说到 xff0c 程序使用一段时间后会遇到HTTP Error 403 Forbidden错误 因为在短时间内直接使用Get获取大量数据 xff0c 会被
  • C++多线程编程

    c 43 43 11 之后有了标准的线程库 xff1a C 43 43 11发布之前 xff0c C 43 43 并没有对多线程编程的专门支持 xff0c C 43 43 11通过标准库引入了对多线程的支持 xff0c 大大方便了程序员的工
  • TensorFlow车牌识别完整版(含车牌数据集)

    在之前发布的一篇博文 MNIST数据集实现车牌识别 初步演示版 中 xff0c 我们演示了如何使用TensorFlow进行车牌识别 xff0c 但是 xff0c 当时采用的数据集是MNIST数字手写体 xff0c 只能分类0 9共10个数字
  • 混合精度训练

    MIXED PRECISION TRAINING https arxiv org pdf 1710 03740 pdf 论文概述 nvidia的Pascal和Volta系列显卡除了支持标准的单精度计算外 xff0c 也支持了低精度的计算 x
  • LDA-原理解析

    前言 在之前的一篇博客机器学习中的数学 7 PCA的数学原理中深入讲解了 xff0c PCA的数学原理 谈到PCA就不得不谈LDA xff0c 他们就像是一对孪生兄弟 xff0c 总是被人们放在一起学习 xff0c 比较 这这篇博客中我们就
  • Linux下配置使用VNC

    1 在Linux下配置使用VNC 1 1 VNC简介 VNC xff08 Virtual Network Computing xff0c 虚拟网络计算机 xff09 是一种可以对远程计算机进行远程控制的软件 xff0c 支持linux远程桌
  • 双目测距原理

    双目测距基本原理 xff1a 双目测距实际操作分4个步骤 xff1a 相机标定 双目校正 双目匹配 计算深度信息 相机标定 xff1a 摄像头由于光学透镜的特性使得成像存在着径向畸变 xff0c 可由三个参数k1 k2 k3确定 xff1b
  • openstack虚拟机无法启动的一次排错经历

    如上图所示 xff0c 虚拟机卡在这个界面并且无法启动 一般的虚拟机排错方式 xff1a 1 查找虚拟机宿主机的以下日志排查是否有报错的关键字 span class hljs built in var span span class hlj

随机推荐

  • 给自己时间沉淀下来

    像很多学长学姐当初一样 xff0c 我也到了繁忙的大四 这个尴尬的时间 xff0c 要选择 xff0c 要放弃 开始实习 xff0c 去窥探一下外面的世界 经过一个月的测试工作 xff0c 开始发现自己与别人的差距还是很大 再继续试水 xf
  • ROS学习(22)TF变换

    文章目录 前言一 TF功能包二 TF工具1 tf monitor2 tf echo3 static transform publisher4 view frames 三 乌龟例程中的TF四 乌龟跟随例程代码实现1 创建TF广播器2 创建TF
  • C# winform 窗体缩放问题处理

    一 问题 xff1a 本身窗体在设计器显示没有问题 xff0c 但运行时窗口却被缩放失真 xff1a 二 解决方法 xff1a 修改项目的配置文件 xff0c 使项目运行时自动检测屏幕分辨率 xff0c 在高分辨率屏幕禁用系统缩放 xff0
  • strlen与sizeof计算char* 与char数组

    sizeof 可以计算所有类型 xff0c strlen 仅计算字符串 xff0c 至于这二者的详细区别可以看其他文章 char a char b 5 sizeof a 61 8 64位系统 xff0c 8代表的是指针的大小 xff0c 指
  • MySQL的not null default

    建表语句每行末尾的NOT NULL DEFAUTL 含义 该句的含义是 xff0c 该字段不能为null xff0c 并且设置如果插入数据的时候不设置该字段的值的时候使用的默认值 insert操作且不给该字段插值的时候 xff0c 数据库判
  • eclipse 中 中文字符变小的解决方法

    前言 xff1a 装了新版的eclipse后发现 英文代码部分正常 xff0c 但是但凡有中文的地方中文字符变小了 xff0c 若调整字体大小 xff0c 英文就更大了 xff0c 总归中英文大小不一致 推荐解决方法 xff1a 打开 ec
  • LINUX/AIX下文本DOS格式与UNIX格式互转

    LINUX AIX下文本DOS格式与UNIX格式互转 一 文本换行符简介 n 换行 newline LF LineFeed 0x0D r 回车 return CR CarrageReturn 0x0A windows dos r n uni
  • STM32F103用hal库使用DMA+串口空闲中断接收数据

    简介 xff1a 出现空闲标志时 xff0c 认为一帧报文发送完毕 xff0c 进行报文分析 xff0c 比普通的串口中断效率高很多 xff01 用到的工具 xff1a CubeMX xff0c Keil5 芯片 xff1a STM32F1
  • AIX页面空间管理

    一 页面空间相关概念及设计规则 系统中的物理内存是非常有限的 xff0c 因此大多数OS都采用了虚拟内存技术 在AIX系统中也使用分页的存储方式管理存储器 xff0c 并将虚拟内存称为页面空间 Paging space 页面空间 xff1a
  • C/C++中的double类型四舍五入

    一 前言 最近 xff0c 项目中需要对金额进行四舍五入运算 本身系统中全部使用长整型 long or long long xff0c 数据库中使用decimal xff0c 从而防止double类型的精度缺失情况以及数据库中小数点后几位的
  • CAS实现SSO单点登录-CAS Server搭建

    最近公司连续接了三四个单点登录集成的项目 xff0c 由我们公司提供CAS Server端的 xff0c 也有需要我们把Client与其他公司提供的Server端对接的 xff0c 我负责把我们公司的一个Client与另外一个公司提供的Se
  • 从高考到程序员:我的程序探险之旅

    就在今天下午 xff0c 湖南省教育考试院公布了 2017 年湖南省普通高等学校招生全国统一考试的卷面成绩 xff0c 我的微信也瞬间被各种分段统计表和喜报刷屏 xff0c 每年的这个时候总是几家欢喜几家愁 六年前的 6 月 25 日 xf
  • MatconvNet+VS2015+Matlab2018a+CUDA9+cudnn7:在matlab上搞深度学习,安装环境时遇到的大坑!

    事情发生的背景 作为刚入职的深度学习实习生 xff0c 入职第一天 xff0c 我领完电脑 xff0c 刚装完电脑 xff0c 分配好公司的ip xff0c 连chrome都还没来得及安装 xff0c 就接到任务 xff0c 需要实现给定的
  • CAS学习(一) 编译支持REST认证的cas6.2服务端并配置部署测试

    CAS 是 Yale 大学发起的一个开源项目 xff0c 旨在为 Web 应用系统提供一种可靠的单点登录方法 xff0c CAS 在 2004 年 12 月正式成为 JA SIG 的一个项目 CAS 具有以下特点 xff1a 1 开源的企业
  • QEMU

    QEMU 1 使用QEMU创建虚拟机 一 QEMU简介 QEMU是一款开源的模拟器及虚拟机监管器 Virtual Machine Monitor VMM QEMU主要提供两种功能给用户使用 一是作为用户态模拟器 xff0c 利用动态代码翻译
  • 使用virt-install手动创建qcow2镜像并安装ISO

    virt install是一个使用libvirt库构建新虚拟机的命令行工具 xff0c 此工具使用串行控制台 xff0c SDL xff08 Simple DirectMedia Layer xff09 图形或者VNC客户端 服务器 xff
  • OVN总结

    参考 xff1a https www sdnlab com 18600 html 三 OVN L3 对比 Neutron L3 Neutron 的三层功能主要有路由 xff0c SNAT 和 Floating IP xff08 也叫 DNA
  • Keil MDK5 打开MDK4项目

    安装完最新版本keil 5 38a 后 xff0c 需要打开几个MDK4的项目 xff0c 结果一打开keil就提示报错了 这里我选择的是第二种方式 xff0c 首先安装legacy support xff0c 以下是下载链接 MDK v4
  • ubuntu18.04换源及E: 仓库 “http://ppa.launchpad.net/v-launchpad-jochen-sprickerhof-de/pcl/ubuntu bionic Re

    ubuntu18 04换源E 仓库 http ppa launchpad net v launchpad jochen sprickerhof de pcl ubuntu bionic Re问题 1 备份2 修改源3 更新4 解决E 仓库
  • 图像分割2020总结:结构,损失函数,数据集和框架

    点击上方 AI公园 xff0c 关注公众号 xff0c 选择加 星标 或 置顶 作者 xff1a Derrick Mwiti 编译 xff1a ronghuaiyang 导读 一个很好的入门小短文 xff0c 内容很全 xff0c 适合上手