制作自己的数据集,使用Unet网络训练测试

最近想做基于深度学习的图像分割,于是选择使用Unet进行分割。在整个过程中,从制作数据集,进行训练,完成测试,也是出现了各种问题,在这里记录下整个流程,可能对正在入门的你们会有一点帮助。不过在这么一个小的过程中,还是会有其他各种问题,一定要冷静的去分析,解决。
1、制作数据集:打开Anaconda运行环境(Anaconda Prompt),
在这里插入图片描述
在命令行输入labelme,激活标注软件,进行自己数据集的标注。
在这里插入图片描述
标记的数据以.json格式存储:在这里插入图片描述
2、mask文件数据的生成:同样在Anaconda命令环境下,cd到.json文件的目录下,运行labelme_json_to_dataset G:\python-test\vocaljson(这个也就是你的json文件目录)。
在这里插入图片描述
注意:此时一定要修改D:\ProgramData\Anaconda3\Lib\site-packages\labelme\cli目录下的json_to_dataset.py程序中的path路径。

3、将生成的json文件夹中的label.png提取出来放在一个文件夹中。
在这里插入图片描述
这就是制作的mask。
4、接下来就是用unet进行模型的训练和测试。参考代码Unet模型训练
5、在运行过程中会有出现测试结果全黑的情况。对于这个问题,我是修改了epochs更大一些,lr更小1e-8。

  • 4
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
对于使用自己的数据集训练UNet模型,您可以按照以下步骤进行操作: 1. 数据准备:收集并准备您的训练数据集。这些数据集应包含图像和相应的标签,其中标签可以是二进制掩模或像素级别的注释。 2. 数据预处理:对数据进行预处理以使其适用于UNet模型。这可能包括调整图像大小、裁剪、缩放、归一化等操作。确保将图像和标签进行相同的处理。 3. 划分数据集:将数据集划分为训练集、验证集和测试集。训练集用于模型的训练,验证集用于调整超参数和监控模型性能,测试集用于评估最终模型的性能。 4. 构建UNet模型:使用深度学习框架(如TensorFlow、PyTorch等)构建UNet模型。您可以参考已有的UNet实现或自行设计模型结构。 5. 定义损失函数:选择适当的损失函数来衡量预测结果与真实标签之间的差异。常用的损失函数包括二进制交叉熵损失、Dice损失等。 6. 配置训练参数:设置模型的优化器、学习率、批量大小等超参数。这些参数将影响模型的训练过程和性能。 7. 进行训练使用训练集对UNet模型进行训练。通过将输入图像传递给模型并将预测与真实标签进行比较,以计算损失并进行反向传播来更新模型的权重。 8. 模型调优:使用验证集来调整模型的超参数,例如学习率、正则化强度等。这样可以提高模型的性能并防止过拟合。 9. 模型评估:使用测试集来评估最终训练UNet模型的性能。可以计算指标如准确率、召回率、F1得分等来评估模型的效果。 10. 预测应用:使用训练UNet模型进行图像分割预测。将新的图像输入到模型中,获取预测结果并进行后处理,如阈值化、连通域分析等。 这些步骤提供了一个基本的框架,用于使用自己的数据集训练UNet模型。具体的实现会根据您的数据和任务需求有所差异,您可以根据实际情况进行调整和改进。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值