0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

没你想的那么难 | 一文读懂图像分割

颖脉Imgtec 2023-05-16 09:21 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

来源:图灵Topia(ID:turingtopia)


图像分割(Image Segmentation)是计算机视觉领域中的一项重要基础技术,是图像理解中的重要一环。近日,数据科学家Derrick Mwiti在一篇文章中,就什么是图像分割、图像分割架构、图像分割损失函数以及图像分割工具和框架等问题进行了讨论,让我们一探究竟吧。

42b820f2-f0a8-11ed-ba01-dac502259ad0.jpg


什么是图像分割?

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

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

42d13c4a-f0a8-11ed-ba01-dac502259ad0.jpg


图像分割的体系结构

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

42e5767e-f0a8-11ed-ba01-dac502259ad0.jpg编码器通过过滤器从图像中提取特征。解码器负责生成最终的输出,通常是一个包含对象轮廓的分割掩码。大多数体系结构都有这种结构或其变体,看几个例子:U-NetU-Net是最初用于分割生物医学图像的卷积神经网络。可视化时,其架构看起来像字母U,因此名称为U-Net。它的体系结构由两部分组成,左边部分是收缩路径,右边部分是扩展路径。收缩路径的目的是捕获上下文,而扩展路径的作用是帮助精确定位。42f67d98-f0a8-11ed-ba01-dac502259ad0.jpgU-Net由右边的扩展路径和左边的收缩路径组成。收缩路径由两个3×3的卷积组成,卷积之后是一个整流的线性单元和一个用于降采样的两乘二最大池计算。

完整的U-Net实现可以在这里找到

https://lmb.informatik.uni-freiburg.de/people/ronneber/u-net/

FastFCN —Fast Fully-connected network

在这种结构中,联合金字塔上采样(JPU)模块被用来代替扩展卷积,因为它们消耗大量的内存和时间。它的核心是一个全连接网络,同时使用JPU进行上采样。JPU将低分辨率特征图提升为高分辨率特征图。430ce98e-f0a8-11ed-ba01-dac502259ad0.jpg如果你想进行代码实现,链接如下:https://github.com/wuhuikai/FastFCNGated-SCNN该架构由双流CNN架构组成。在此模型中,一个单独的分支用于处理图像形状信息。形状流用于处理边界信息。432bab80-f0a8-11ed-ba01-dac502259ad0.jpg

你可以通过检查这里的代码来实现:

https://github.com/nv-tlabs/gscnnDeepLab在这种结构中,卷积与上采样滤波器用于涉及密集预测的任务。多个对象的分割是通过空间金字塔池来完成的。最后,用DCNNs改进对象边界的定位。通过插入零点或对输入特征图进行稀疏采样来对滤波器进行上采样,从而实现空洞卷积。433f39f2-f0a8-11ed-ba01-dac502259ad0.jpg

可以在PyTorch或TensorFlow上尝试其实现。

PyTorch:https://github.com/fregu856/deeplabv3

TensorFlow:https://github.com/sthalles/deeplab_v3

Mask R-CNN在这种体系结构中,使用bounding box和语义分割对对象进行分类和定位,并将每个像素分类为一组类别。每个感兴趣的区域都有一个分割掩码,最终的输出是一个类标签和一个bounding box。该体系结构是Faster R-CNN的扩展,Faster R-CNN由提出区域的深度卷积网络和利用区域的检测器组成。4358d8b2-f0a8-11ed-ba01-dac502259ad0.jpg这是在COCO测试集上得到的结果的图像

43717f70-f0a8-11ed-ba01-dac502259ad0.jpg

图像分割损失函数

语义分割模型在训练过程中通常使用一个简单的交叉熵损失函数。但是,如果对获取图像的粒度信息感兴趣,则必须恢复到稍微高级一些的损失函数,来看几个例子:

Focal Loss

这种损失是对标准交叉熵准则的改进。这是通过改变其形状来实现的,使得分配给分类良好的示例的损失权重降低了。最终,确保不存在类不平衡。

在这个损失函数中,交叉熵损失是会随着缩放系数衰减为零而缩,训练时,比例因数自动降低了简单示例的权重,并将重点放在困难示例上。

43973ac6-f0a8-11ed-ba01-dac502259ad0.png

Dice loss

该损失是通过计算平滑dice coefficient函数获得的。这种损失是最常用的损失,是分割问题。

43b12026-f0a8-11ed-ba01-dac502259ad0.png

Intersection over Union (IoU)-balanced Loss

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

43c8e6e8-f0a8-11ed-ba01-dac502259ad0.png

Boundary loss

Boundary loss的一种变体应用于具有高度不平衡分段的任务。

这种损失的形式是空间轮廓而非区域上的距离度量。通过这种方式,它解决了高度不平衡的分割任务的区域损失所带来的问题。

43e7d080-f0a8-11ed-ba01-dac502259ad0.png

Weighted cross-entropy

在交叉熵的一个变体中,所有正例均按一定系数加权。它用于涉及类不平衡的方案。

43fb2766-f0a8-11ed-ba01-dac502259ad0.png

Lovász-Softmaxloss

该损失基于子模块损失的convex Lovasz扩展,对神经网络中的intersection-over-union loss进行了直接优化。

441f09ba-f0a8-11ed-ba01-dac502259ad0.png其他值得一提的损失有: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万人,都有自己的关键点。它的下载大小是37.57 GiB。它包含80个对象类别。它在Apache 2.0的许可下可用,可以从这里下载。

http://cocodataset.org/#download

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库:给定一个图像,该库能够为图像中的对象创建掩码。Sefexa图像分割工具:可用于半自动图像分割,图像分析和创建地面实况。Deepmask:Facebook Research的Deepmask是DeepMask和SharpMask的Torch实现。MultiPath:这是一个Torch实现,从“用于目标检测的多路径网络”中提取目标检测网络。OpenCV :这是一个开放源代码的计算机视觉库,具有2500多种优化算法。MIScnn:医学图像分割开源库。它允许在几行代码中使用最新的卷积神经网络和深度学习模型建立管道。

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 图像
    +关注

    关注

    2

    文章

    1095

    浏览量

    42154
  • 图像分割
    +关注

    关注

    4

    文章

    182

    浏览量

    18674
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    谁说网关做?用乐鑫科技ESP32-P4C5开发板,小白也能搞定专业级方案!启明云端乐鑫代理

    “什么?你想自己搭建个家庭智能网关?”“别闹了吧!协议复杂、硬件搞、代码难题,两三个月下不来的!”以上是不是你做家庭网关项目时的境况?不要急!传统做家庭网关当然是这样!但如果你手
    的头像 发表于 12-04 18:02 112次阅读
    谁说网关<b class='flag-5'>难</b>做?用乐鑫科技ESP32-P4C5开发板,小白也能搞定专业级方案!启明云端乐鑫代理

    读懂:CWDM和DWDM的核心差异

    光纤通信里的“两兄弟”CWDM和DWDM,名字只差个字母,差别可大了去!今天讲透核心差异,小易帮你快速分清~
    的头像 发表于 09-17 18:19 823次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>读懂</b>:CWDM和DWDM的核心差异

    手机板 layout 走线跨分割问题

    初学习layout时,都在说信号线不可跨分割,但是在工作中为了成本不能跨分割似乎也非绝对。 在后续工作中,跨分割的基础都是相邻层有面完整的GND参考,跨
    发表于 09-16 14:56

    读懂 PWM控制背光亮度原理

    关于PWM控制背光亮度原理的详细介绍 读懂PWM调光:为何你的屏幕亮度可随心而变? 你是否曾好奇,手机或电脑屏幕的亮度是如何从最暗无级调整到最亮的?这背后的魔法,主要归功于项名为
    发表于 09-03 08:48

    迅为RK3576开发板摄像头实时推理测试-ppseg 图像分割

    迅为RK3576开发板摄像头实时推理测试-ppseg 图像分割
    的头像 发表于 07-11 14:31 700次阅读
    迅为RK3576开发板摄像头实时推理测试-ppseg <b class='flag-5'>图像</b><b class='flag-5'>分割</b>

    【正点原子STM32MP257开发板试用】基于 DeepLab 模型的图像分割

    是谷歌团队提出的种用于语义分割的深度学习模型,属于 DeepLab 系列模型的第三代版本。它在图像语义分割任务中表现优异,能够高效地捕获图像
    发表于 06-21 21:11

    读懂图像采集卡是什么?它在工业/医疗/监控等多领域中的作用

    你有没有想过,在工业检测、医院手术室、安防监控这些高精度影像场景中,图像是怎么被“抓”进电脑里进行分析处理的?单靠摄像头就能搞定吗?其实并没那么简单,真正起到关键作用的,是种常被忽视但极其重要的设备——
    的头像 发表于 05-13 13:35 1729次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>读懂</b>!<b class='flag-5'>图像</b>采集卡是什么?它在工业/医疗/监控等多领域中的作用

    读懂德明利2024年度报告

    读懂德明利2024年度报告
    的头像 发表于 04-25 22:42 419次阅读
    <b class='flag-5'>一</b>图<b class='flag-5'>读懂</b>德明利2024年度报告

    rootfs镜像制作其实那么

    在嵌入式Linux开发中,文件系统的打包和镜像制作是关键步骤。本文介绍了Linux核心板文件系统的打包与镜像制作方法,适合嵌入式开发人员快速上手。前言致远电子Linux核心板提供的系统固件里,除了镜像文件之外,通常还会提供文件系统压缩包。镜像文件可以直接用于烧写到目标板,而文件系统压缩包则可以进行部分修改,修改后重新制作镜像文件烧写。这里只讲直接用编译好的二
    的头像 发表于 04-03 11:37 893次阅读
    rootfs镜像制作其实<b class='flag-5'>没</b><b class='flag-5'>那么</b><b class='flag-5'>难</b>

    读懂分贝(dB)【强烈建议收藏】

    。 假设个放大器的输出信号是输入信号的 100 倍,那么这个放大器的增益用线性表示是 100,而用 dB 表示则是 20 dB。是不是觉得这个转换很神奇?其实,只需要记住两种基本的 dB 转换,就能轻松
    发表于 03-24 12:03

    读懂ESD原理

    文件过大,大家下载附件查看全文哦!
    发表于 03-03 16:36

    读懂:LED 驱动电路二极管挑选要点

    读懂:LED 驱动电路二极管挑选要点
    的头像 发表于 02-06 14:47 1087次阅读

    读懂什么是「雷电4」

    Thunderbolt读懂什么是「雷电4」目前大部分PC接口配备了USB接口、音频接口、HDMI接口等,这些接口的功能基本覆盖了用户的日常使用需求。为了提供更高速、更便捷的数据传输和设备连接体
    的头像 发表于 02-05 17:52 6161次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>读懂</b>什么是「雷电4」

    读懂德明利内存条产品线

    读懂德明利内存条产品线
    的头像 发表于 01-21 15:42 1277次阅读
    <b class='flag-5'>一</b>图<b class='flag-5'>读懂</b>德明利内存条产品线

    不是!让高速先生给个过孔优化方案就那么吗?

    在内层的出线层不样时,例如个是靠很下层出线,stub比较短,另外个是那么下层出线,stub稍长
    发表于 01-21 08:50