专栏首页机器学习AI算法工程教程: UNet/UNet++多类别图像分割,含数据集制作

教程: UNet/UNet++多类别图像分割,含数据集制作

人工智能大数据与深度学习 公众号:datayx

运行demo

下载数据集

https://pan.baidu.com/s/1PK3VoarNl3kRibbsUTuyAQ

提取密码: dq7j

并解压到data文件夹中,该数据集中包含checkpoints, images, masks, test四个文件夹,其中images是图像数据集,masks是该数据集对应的标签,test是测试数据,checkpoints是在该数据集上预训练的模型。

训练 python train.py

推理 预测

python inference.py -m ./data/checkpoints/epoch_10.pth -i ./data/test/input -o ./data/test/output


代码 获取方式:

分享本文到朋友圈

关注微信公众号 datayx 然后回复 图像分割 即可获取。

AI项目体验地址 https://loveai.tech


该数据集包含1500张128x128的图像,图像是程序生成的,包含三种类别:背景、圆形、矩形,如下:

该模型识别背景,圆形,矩形三种类别,使用如下图像进行推理:

得到的推理结果为三个图像,这三个图像分别是背景、圆、矩形(白色像素为预测结果):

该数据集是由程序生成的,图像对应的标签是一个8位的单通道图像,值为相应的类别索引。

关于标签

假设有如下图像,该图像是一个10x10大小的图像,图像周围是空白背景,中心位置是一个圆形:

该图像包含两个类别,背景和圆,则背景位置对应的标签的像素值应该为0,圆对应的标签像素值应该为1,像下面这样:

由于该标签图像的值只包含0和1,所以它看起来整个图都是黑色的。

由于标签图像是8位的单通道图像,所以该方法支持最多256种类别。

制作标签

现在有如下图片

该数据存在三个类别,分别是 Background、Tom、Jerry,使用labelme标注结果如下

该结果保存成为了一个json文件,内容如下

我们要制作一个只包含三个类别的标签图像,该标签图像中,Background为0,Tom为1,Jerry为2。我们首先要创建一个和原图大小一致的空白图像,该图像所有像素都是0,这表示在该图像中所有的内容都是Background。然后根据标签对应的区域使用与之对应的类别索引来填充该图像,也就是说,将Tom对应的区域用1填充,Jerry对应的区域用2填充。具体如下

该图像只包含0、1和2,如果打开图像查看的话,应该是一个全黑的图像,因为2这个像素值太小了,无法看清。如果想查看某个类别的标注情况,可以在mask = cv2.fillPoly(mask, [points_array]

, category_types.index(category))中将该颜色改为一个清晰可见的颜色,例如将Tom的颜色改成255,但是最终制作标签的时候要记得将其改回对应的索引值。如下

这样能够清晰看到Tom的标注结果是否正确

最后,保存图像的时候要注意保存成png格式的图像,因为jpg格式会在存储时对图像进行压缩,导致mask图像不准确。

损失函数

在计算多类别任务损失时,最开始是使用了交叉熵损失函数,交叉熵损失函数容易受到类别不平衡影响,后来改用了一种基于IOU的损失函数lovaszSoftmax,效果显著提升。

lovaszSoftmax

https://github.com/bermanmaxim/LovaszSoftmax

本文分享自微信公众号 - 机器学习AI算法工程(datayx)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-04-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • pytorch+Unet图像分割:将图片中的盐体找出来

    什么是图像分割问题呢?简单的来讲就是给一张图像,检测是用框出框出物体,而图像分割分出一个物体的准确轮廓。也这样考虑,给出一张图像 I,这个问题就是求一个函数,从...

    机器学习AI算法工程
  • 医学图像分割:UNet++

    在这篇文章中,我们将探索UNet++: A Nested U-Net Architecture for Medical Image Segmentation这篇...

    AI算法与图像处理
  • 收藏 | 医学图像分割:UNet++

    在这篇文章中,我们将探索UNet++: A Nested U-Net Architecture for Medical Image Segmentation这篇...

    计算机视觉联盟
  • Tensorflow入门教程(四十二)——ANU-Net

    今天将分享Unet的改进模型ANU-Net,改进模型来自2020年的论文《Attention-based nested U-Net to exploit ful...

    医学处理分析专家
  • UNet实现文档印章消除

    一个分割网络——Unet,Unet借鉴了FCN网络,其网络结构包括两个对称部分:前面一部分网络与普通卷积网络相同,使用了3x3的卷积和池化下采样,能够抓住图像中...

    机器学习AI算法工程
  • 基于UNet网络实现的人像分割 | 附数据集

    人像分割的相关应用非常广,例如基于人像分割可以实现背景的替换做出各种非常酷炫的效果。我们将训练数据扩充到人体分割,那么我们就是对人体做美颜特效处理,同时对背景做...

    AI算法与图像处理
  • 深度学习如何在医学影像分割上大显神通?——分割网络的三个改进思路

    一、医学影像分割有助于临床工作 图像分割在影像学诊断中大有用处。自动分割能帮助医生确认病变肿瘤的大小,定量评价治疗前后的效果。除此之外,脏器和病灶的识别和甄别也...

    企鹅号小编
  • 《Unet》论文阅读与

    上篇对FCN的论文解读提到,FCN的训练依赖大量数据,并且仍存在分割结果不精细的弱点。今天要说的Unet就是受到FCN启发针对医学图像做语义分割,且可以利用少量...

    BBuf
  • 医学图像分割:U-Net系列网络简介

    在图像分割任务特别是医学图像分割中,U-Net[1]无疑是最成功的方法之一,该方法在2015年MICCAI会议上提出,目前已达到四千多次引用。其采用的编码器(下...

    马上科普尚尚
  • 医学图像分割 | U-Net网络及他的变体

    今天来简单归纳一下,医学图像分割的内容,还有很多代表性的工作在之后的文章中不断更新,由于同一个网络结构可能在不同的数据集上表现出不一样的性能,在具体的任务场景中...

    AI算法修炼营
  • 3D U-Net:从稀疏注释中学习密集的体积分割

    本文介绍了一种从稀疏标注的体积图像中学习的体积分割网络。抽象。本文介绍了一种从稀疏标注的体积图像中学习的体积分割网络。

    3D视觉工坊
  • 深度学习系列(四)分割网络模型(FCN、Unet、Unet++、SegNet、RefineNet)

    深度学习系列(四)分割网络模型(FCN、Unet、Unet++、SegNet、RefineNet)

    Minerva
  • 基于Res-Unet网络实现肝脏肿瘤分割任务

    近年来,快速发展的深度学习技术已经渗透进了各行各业,医疗方面也不例外。这篇文章我主要介绍如何使用深度学习计算机视觉方法对CT扫描中的肝脏和肝脏肿瘤进行分割。

    用户1386409
  • 使用图像分割来做缺陷检测的一个例子

    给定一张图像,我们人类可以识别图像中的物体。例如,我们可以检测图像中是否有汽车,树木,人等。如果我们可以分析图像并检测物体,我们可以教机器做同样的事情吗?

    OpenCV学堂
  • 谈一谈UNet图像分割

    【导语】这篇文章主要针对于图像分割的算法的一些理解,主要是一个比较经典的UNet系列的网络的认识。最后希望看完这篇文章的读者可以有所收获,对于一些个人的理解欢迎...

    3D视觉工坊
  • 图像分割必备知识点 | Unet详解 理论+ 代码

    语义分割(Semantic Segmentation)是图像处理和机器视觉一个重要分支。与分类任务不同,语义分割需要判断图像每个像素点的类别,进行精确分割。语义...

    机器学习炼丹术
  • Pytorch 深度学习实战教程(二):UNet语义分割网络

    如果不了解语义分割原理以及开发环境的搭建,请看该系列教程的上一篇文章《Pytorch深度学习实战教程(一):语义分割基础与环境搭建》。

    Jack_Cui
  • Tensorflow入门教程(四十六)——SDU-Net

    今天将分享Unet的改进模型SDU-Net,改进模型来自2020年的论文《UNet Using Stacked Dilated Convolutions for...

    医学处理分析专家
  • Unet网络实现叶子病虫害图像分割

    智能化农业作为人工智能应用的重要领域,对较高的图像处理能力要求较高,其中图像分割作为图像处理方法在其中起着重要作用。图像分割是图像分析的关键步骤, 在复杂的自然...

    AI科技大本营

扫码关注云+社区

领取腾讯云代金券