教程: UNet/UNet++多类别图像分割,含数据集制作
向AI转型的程序员都关注了这个号????????????
人工智能大数据与深度学习 公众号: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
单肩包/双肩包/斜挎包/手提包/胸包/旅行包/上课书包 /个性布袋等各式包饰挑选
https://shop585613237.taobao.com/
↓
该数据集包含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
pytorch+Unet图像分割:将图片中的盐体找出来
Unet车牌分割,矫正
Unet美发实例分割,染发展示
机器学习算法AI大数据技术
搜索公众号添加: datanlp
长按图片,识别二维码
阅读过本文的人还看了以下文章:
TensorFlow 2.0深度学习案例实战
基于40万表格数据集TableBank,用MaskRCNN做表格检测
《基于深度学习的自然语言处理》中/英PDF
Deep Learning 中文版初版-周志华团队
【全套视频课】最全的目标检测算法系列讲解,通俗易懂!
《美团机器学习实践》_美团算法团队.pdf
《深度学习入门:基于Python的理论与实现》高清中文PDF+源码
特征提取与图像处理(第二版).pdf
python就业班学习视频,从入门到实战项目
2019最新《PyTorch自然语言处理》英、中文版PDF+源码
《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码
《深度学习之pytorch》pdf+附书源码
PyTorch深度学习快速实战入门《pytorch-handbook》
【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》
《Python数据分析与挖掘实战》PDF+完整源码
汽车行业完整知识图谱项目实战视频(全23课)
李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材
笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!
《神经网络与深度学习》最新2018版中英PDF+源码
将机器学习模型部署为REST API
FashionAI服装属性标签图像识别Top1-5方案分享
重要开源!CNN-RNN-CTC 实现手写汉字识别
yolo3 检测出图像中的不规则汉字
同样是机器学习算法工程师,你的面试为什么过不了?
前海征信大数据算法:风险概率预测
【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类
VGG16迁移学习,实现医学图像识别分类工程项目
特征工程(一)
特征工程(二) :文本数据的展开、过滤和分块
特征工程(三):特征缩放,从词袋到 TF-IDF
特征工程(四): 类别特征
特征工程(五): PCA 降维
特征工程(六): 非线性特征提取和模型堆叠
特征工程(七):图像特征提取和深度学习
如何利用全新的决策树集成级联结构gcForest做特征工程并打分?
Machine Learning Yearning 中文翻译稿
蚂蚁金服2018秋招-算法工程师(共四面)通过
全球AI挑战-场景分类的比赛源码(多模型融合)
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
python+flask搭建CNN在线识别手写中文网站
中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程
不断更新资源
深度学习、机器学习、数据分析、python
搜索公众号添加: datayx
教程: UNet/UNet++多类别图像分割,含数据集制作相关推荐
- 图像分割 | FCN数据集制作的全流程(图像标注)
图像分割 | FCN数据集制作的全流程(图像标注) 一 全卷积神经网络 文章所有代码已上传至github,觉得好用就给个star吧,谢谢 https://github.com/315386775/FC ...
- Yolov5-5.0源码分享以及环境配置——Yolov5训练及测试教程(超详细含数据集制作,格式转换,数据集划分)
yolov5-5.0百度网盘连接 链接: https://pan.baidu.com/s/1Hd2KKBixuEWRv3jcH6Bcsw 提取码: g6xf 复制这段内容后打开百度网盘手机App,操作 ...
- tensorflow版使用uNet进行医学图像分割(Skin数据集)
tensorflow版使用uNet进行医学图像分割(Skin数据集) 深度学习.计算机视觉学习笔记.医学图像分割.uNet.Skin皮肤数据集 tensorflow版使用uNet进行医学图像分割(Sk ...
- 全卷积神经网路【U-net项目实战】ISBI 挑战数据集图像分割-keras实现
文章目录 1.数据准备 2.程序准备 3.运行网络 4.测试结果 5.参考 1.数据准备 原始数据:首先准备数据,参考数据来自于 ISBI 挑战的数据集.数据可以在(https://github.co ...
- UNet 网络做图像分割DRIVE数据集
目录 1. 介绍 2. 搭建 UNet 网络 3. dataset 数据加载 4. train 训练网络 5. predict 分割图像 6. show 7. 完整代码 1. 介绍 项目的目录如下所示 ...
- 全卷积神经网路【U-net项目实战】U-Net源码上实现自己数据集的分割任务
文章目录 环境: 数据集准备: 主要代码: 接下来是训练,此处将训练和测试分开在两个.py文件中,好调用! 接下来就是愉快的测试了:main_test.py 测试结果部分展示:(裂缝检测) 问题 : ...
- UNet - unet网络
目录 1. u-net介绍 2. u-net网络结构 3. u-net 网络搭建 3.1 DoubleConv 3.2 Down 下采样 3.3 Up 上采样 3.4 网络输出 3.5 UNet 网络 ...
- yolov5识别吸烟(含数据集)
yolov5识别头盔(含数据集) 链接:https://pan.baidu.com/s/1VvLo_VkbSv2QSMYdAtJL_w 提取码:ugh0 –来自百度网盘超级会员V4的分享
- 记录::图像分割数据集制作过程
图像分割数据集制作,主要分为4步,用于语义分割还是实例分割,分不清楚,只是针对代码制作的自己的数据集. 数据整体差别不大,用复制加速了一下. 1.cmd:labelme,先画一个json作为模板 2. ...
最新文章
- 使用百度地图结合GPS进行定位
- 深入理解 Kotlin Coroutine (一)
- java集合性能_Java集合性能分析-疯狂Java讲义
- Java 中 this 和 super 的用法总结
- Java充电宝模型设计_继续探讨点赞功能模块设计
- js变量后面加问号是什么_JS变量生命周期:为什么 let 没有被提升
- (56)FPGA条件选择有优先级(case)
- c统计多线程总时间_SQL Server处理器性能指标–第2部分–处理器:%用户时间,处理器:%特权时间,总时间和线程指标
- oracle subset-superset pairs,Oracle 字符集
- Swift实现糗事百科Demo(实战项目)
- Sublime Text3:显示/隐藏侧边栏快捷键 修改侧边栏颜色、字体大小
- VMware虚拟机中激活Windows Server 2008的具体步骤
- 【单片机】2.3 AT89S52的CPU
- Youtube上播放量前100的单曲整理
- php实现按一下button显示的数字加1_24h只能加一次,javascript - 连续点击按钮后,数据如何不会累加显示?...
- 特种浓缩分离:生物农药超滤分离提纯过滤技术
- java毕业生设计校园线上点餐系统计算机源码+系统+mysql+调试部署+lw
- Linux升级gcc到最新版本gcc-11.2.0
- 使用AndroidViewModel初始化报错
- e480换高分屏_ThinkPadE480电脑(i5-8250u 8G内存 256G固态 高分屏0QCD 14英寸) 京东5699元...
热门文章
- Mysql和vs2010 的连接
- OpenCV-计算轮廓面积cv::contourArea
- opencv 打印文字_如何使用OpenCV+Python去除手机拍摄文本底色
- 商品库存清单案例java_java实现超市商品库存管理平台
- mysql搜索所有表,mySQL查询来搜索数据库中的所有表以查找字符串?
- 剑指offer面试题[26]-复杂链表的复制
- 软件测试52讲-安全第一:渗透测试
- 金三银四 | 吃透这套题,面试更有底气
- 接口自动化测试(Python+Requests+Unittest)
- 人人都是测试经理:如何进行测试风险分析并制定策略