【CV】图像分割2020,架构,损失函数,数据集,框架的整理和总结
作者:Derrick Mwiti 编译:ronghuaiyang
正文共:3651 字 18 图
预计阅读时间:11 分钟
导读
包括架构,损失函数,数据集,框架的整理和总结。
在这篇文章中,我们将深入探讨使用深度学习进行图像分割。我们将讨论:
什么是图像分割,以及两种主要类型的图像分割
图像分割的结构
用于图像分割的损失函数
你可以用到你的图像分割项目中的框架
就让我们一探究竟吧。
什么是图像分割?
顾名思义,这是将图像分割成多个部分的过程。在这个过程中,图像中的每个像素都与一个物体类型相关联。图像分割主要有两种类型:语义分割和实例分割。
在语义分割中,同一类型的所有物体都使用一个类标签进行标记,而在实例分割中,相似的物体使用自己的独立标签。
图像分割结构
图像分割的基本结构包括编码器和解码器。
编码器通过滤波器从图像中提取特征。解码器负责生成最终的输出,通常是一个包含物体轮廓的分割掩码。大多数体系结构都具有这种结构或其变体。
让我们看几个例子。
U-Net
U-Net是最初为分割生物医学图像而开发的卷积神经网络。当它的结构可视化时,它看起来像字母U,因此取名为U-Net。它的结构由两部分组成,左边的部分是收缩路径,右边的部分是扩展路径。收缩路径的目的是捕获上下文,而扩展路径的作用是帮助精确定位。
U-Net由右边的扩展路径和左边的收缩路径组成。收缩路径由两个3×3的卷积组成。卷积之后是一个ReLU和一个用于下采样的2×2最大池化。
你可以在这里找到U-Net的完整实现:https://lmb.informatik.uni-freiburg.de/people/ronneber/u-net/。
FastFCN — Fast Fully-connected network
在这个架构中,使用联合金字塔上采样(JPU)模块来代替膨胀卷积,因为它们消耗大量内存和时间。它的核心是一个全连接网络,同时使用JPU进行上采样。JPU将低分辨率的特征图上采样到高分辨率的特征图。
如果你想亲自动手做一些代码实现:https://github.com/wuhuikai/FastFCN。
Gated-SCNN
这个架构由一个双流CNN架构组成。在这个模型中,一个单独的分支被用来处理图像的形状信息。形状流用于处理边界信息。
代码:https://github.com/nv-tlabs/gscnn。
DeepLab
在这种结构中,卷积与上采样滤波器用于密集预测的任务。多尺度物体的分割是通过空间金字塔汇聚来完成的。最后,使用DCNNs来改进物体边界的定位。通过插入零或对输入特征图进行稀疏采样来对滤波器进行上采样,从而实现Atrous卷积。
代码:https://github.com/fregu856/deeplabv3(PyTorch),https://github.com/sthalles/deeplab_v3(TensorFlow)
Mask R-CNN
在这个结构中,使用一个边界框和语义分割对物体进行分类和局部化,该边界框和语义分割将每个像素划分为一组类别。每个感兴趣的区域都有一个分割掩码。最终的输出是一个类标签和一个包围框。该架构是Faster R-CNN的扩展。
这是在COCO测试集上得到的结果的图像。
图像风格的损失函数
语义分割模型在训练过程中通常使用一个简单的交叉熵损失函数。但是,如果你对获取图像的粒度信息感兴趣,则必须使用到稍微高级一些的损失函数。
我们来看几个例子。
Focal Loss
这种损失是对标准交叉熵的一种改进。这是通过改变其形状来实现的,这样分配给分类良好的样本的损失的权重就会降低。最终,这确保了不存在类别不平衡。在这个损失函数中,随着对预测正确的类别的信心增加,交叉熵损失的比例因子在0处衰减。比例因子自动降低了训练时简单样本的权重,并将重点放在困难的样本上。
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 其目的是确保网络在训练过程中集中于困难样本。
Distance penalized CE loss 让网络去重点优化难以分割的边界区域。
Sensitivity-Specificity (SS) loss 计算特异性和敏感性的均方差的加权和。
Hausdorff distance(HD) loss 估计了卷积神经网络的Hausdorff距离。
这些只是在图像分割中使用的一些损失函数。要了解更多,请查看这个:https://github.com/JunMa11/SegLoss。
图像分割数据集
如果你还在看,你可能会问自己从哪里可以获得一些数据集来开始。
让我们来看一些。
Common Objects in COntext — Coco Dataset
COCO是一个大型的物体检测、分割和图像描述数据集。包含91个类。它有25万人拥有关键点,它包含80个对象类别。
链接:https://www.tensorflow.org/datasets/catalog/coco
PASCAL Visual Object Classes (PASCAL VOC)
PASCAL有20个不同的类,9963张图片。训练/验证集是一个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 — 给定一个图像,这个库能够给图像中的物体创建一个掩码。
Sefexa Image Segmentation Tool](http://www.fexovi.com/sefexa.html) — Sefexa是一个免费的工具,可以用于半自动图像分割,图像分析,并创建ground truth。
Deepmask — Deepmask是Facebook Research的Deepmask和SharpMask的一个Torch的实现。
MultiPath — 这是一个Torch实现的物体检测网络来自“A MultiPath Network for Object Detection”。
OpenCV — 这是一个开源的计算机视觉库,有超过2500个优化过的算法。
MIScnn — 是一个医学图像分割开源库。它允许使用最先进的卷积神经网络和深度学习模型在几行代码中建立pipeline。
Fritz — Fritz提供多种计算机视觉工具,包括用于移动设备的图像分割工具。
最后的一点想法
希望本文为你提供了一些图像分割的背景知识,并提供了一些工具和框架,你可以使用这些工具和框架来入门。
我们讨论了:
什么是图像分割
几个图像分割架构
一些图像分割损失
图像分割工具和框架
分割快乐!
—END—
英文原文:https://neptune.ai/blog/image-segmentation-in-2020?utm_source=medium&utm_medium=crosspost&utm_campaign=blog-image-segmentation-2020
往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑AI基础下载(pdf更新到25集)机器学习的数学基础专辑本站qq群1003271085,加入微信群请回复“加群”获取一折本站知识星球优惠券,复制链接直接打开:https://t.zsxq.com/yFQV7am喜欢文章,点个在看
【CV】图像分割2020,架构,损失函数,数据集,框架的整理和总结相关推荐
- 收藏 | 图像分割2020总结:结构,损失函数,数据集和框架
点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:作者丨Derrick Mwiti 来源丨AI公园 AI博士笔 ...
- 图像分割 2020 最新进展
正文字数:3004 阅读时长:4分钟 该文章由Derrick Mwiti发表在Neptune blog,在这篇文章中,我们将会探讨深度学习在图像分割领域的应用. Posted by Jakub Cz ...
- CV之CNN:基于tensorflow框架采用CNN(改进的AlexNet,训练/评估/推理)卷积神经网络算法实现猫狗图像分类识别
CV之CNN:基于tensorflow框架采用CNN(改进的AlexNet,训练/评估/推理)卷积神经网络算法实现猫狗图像分类识别 目录 基于tensorflow框架采用CNN(改进的AlexNet, ...
- 微服务架构的基础框架选择:Spring Cloud还是Dubbo?
最近一段时间不论互联网还是传统行业,凡是涉及信息技术范畴的圈子几乎都在讨论微服务架构.近期也看到各大技术社区开始组织一些沙龙和论坛来分享Spring Cloud的相关实施经验,这对于最近正在整理Spr ...
- 【深度学习】医学图像分割多标签损失函数和极坐标变换
[深度学习]医学图像分割多标签损失函数和极坐标变换 文章目录 1 基于分布的损失函数 2 基于区域的损失函数 3 基于边界的损失函数 4 多标签损失函数 5 极坐标变换 1 基于分布的损失函数 基于分 ...
- CV之YOLOv3:基于Tensorflow框架利用YOLOv3算法对热播新剧《庆余年》实现目标检测
CV之YOLOv3:基于Tensorflow框架利用YOLOv3算法对热播新剧<庆余年>实现目标检测 目录 搭建 1.下载代码 2.安装依赖库 3.导出COCO权重解压到checkpoin ...
- CV:Win10下深度学习框架安装之Tensorflow/tensorflow_gpu+Cuda+Cudnn(最清楚/最快捷)之详细攻略(图文教程)
CV:Win10下深度学习框架安装之Tensorflow/tensorflow_gpu+Cuda+Cudnn(最清楚/最快捷)之详细攻略(图文教程) 导读 本人在Win10下安装深度学习框架Tenso ...
- 基于自动图像分割算法和扩展数据集深度学习的经济作物病害识别
基于自动图像分割算法和扩展数据集深度学习的经济作物病害识别 1.作物病害识别出现的问题 实际应用中作物图像的复杂背景信息和训练数据不足会导致深度学习的错误识别. 2.研究内容 提出了一种基于自动图像分 ...
- 微服务架构的基础框架选择
最近一段时间不论互联网还是传统行业,凡是涉及信息技术范畴的圈子几乎都在讨论 微服务架构 .近期也看到各大技术社区开始组织一些沙龙和论坛来分享Spring Cloud的相关实施经验,这对于最近正在整理S ...
最新文章
- 王子与公主的另类结局
- 011_html标题
- 【贵州】2021年下半年软考报考时间及通知
- Python数据结构之链表(linked list)
- Java黑皮书课后题第9章:9.8(Fan类)设计一个名为Fan的类来代表风扇
- FineUI 页面跳转
- linux epoll 开发指南-【ffrpc源码解析】
- 为什么今日头条是技术牛人收割机(FW)
- uliso刻录系统到U盘
- 在pycharm中使用matplotlib时需要点❌才能显示下一张图片的问题
- 计算机输入法切换用户登录,电脑切换不出来输入法,教您解决切换输入法的问题...
- 搭建自己的代理服务器
- ubuntu下高通平台模组串口驱动及使用
- oracle里update+where,Oracle 关联表更新 update ,where exists
- DFRobot离线语音识别模块真实测评
- 计算机激光鼠标,差评终结者:激光鼠标就是比光电的好?
- 计算数据集的均值和方差(mean,std)
- STM32L031 HAL库读写内部EEprom
- React学习笔记二:实现一个数字时钟
- 图谱实战 | 基于金融场景的事理图谱构建与应用