TensorFlow实现FCN分割图片(使用自己的数据集)

一、复现FCN

1、在github上下载fcn的tensorflow版本实现 https://github.com/shekkizh/FCN.tensorflow
2、代码的实现有四个python文件,分别是FCN.pyBatchDatasetReader.pyTensorFlowUtils.py、read_MITSceneParsingData.py,将这四个文件放在一个当前目录下。
3、然后下载VGG网络的权重参数,下载好后的文件路径为./Model_zoo/imagenet-vgg-verydeep-19.mat.
网址:http://www.vlfeat.org/matconvnet/models/beta16/imagenet-vgg-verydeep-19.mat
4、然后下载训练会用到的数据集,并解压到路径: ./Data_zoo/MIT_SceneParsing/ADEChallengeData2016。
网址:http://data.csail.mit.edu/places/ADEchallenge/ADEChallengeData2016.zip
5、训练时把FCN.py中的全局变量mode该为“train”,运行该文件。测试时改为“visualize”运行即可。

二、 制作自己的训练数据

  1. 做标签安装
    下载网址:https://github.com/wkentaro/labelme#ubuntu
    我的环境ubuntu18+py36.
    # Python3
sudo apt-get install python3-pyqt5  # PyQt5
sudo pip3 install labelme

2.标注:运行labelme打开取名标注即可,点击Save后会生成改图片对应的json文件
首先看一下标准数据格式
在这里插入图片描述
annotation文件夹放的是train和valid的label文件,具体形式是图片(png),image文件夹放的是原照片(jpg),两个文件夹的内容除了图片格式有区别外,文件名等必须一一对应。
ok,所以我们的第一步应该是制作自己数据的label,运行labelme打开取名标注即可,点击Save后会生成改图片对应的json文件.
在这里插入图片描述

  • 2
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
你可以通过使用TensorFlow来训练自己的数据集。对于全卷积网络(Fully Convolutional Network,FCN)来说,它可以用于语义分割任务,其中每个像素被标记为属于特定类别。 下面是一个简单的步骤来训练FCN模型: 1. 准备数据集:首先,你需要准备你自己的语义分割数据集,其中包含了图像和对应的标签,标签是每个像素的类别标识。 2. 构建模型:使用TensorFlow构建FCN模型。可以使用现有的FCN模型作为基础,例如FCN-8或FCN-16。你可以从TensorFlow模型库中找到这些模型的实现。 3. 配置训练参数:设置训练时的一些参数,例如学习率、批量大小和迭代次数等。这些参数会根据你的数据集和模型进行调整。 4. 定义损失函数:为了进行语义分割任务,你需要定义适合的损失函数。常见的损失函数包括交叉熵损失函数或Dice损失函数等。 5. 训练模型:将准备好的数据集输入到模型中,并使用训练数据进行模型的训练。在每个训练迭代中,计算损失并更新模型的参数。 6. 评估模型:使用验证集或测试集对训练后的模型进行评估。可以计算准确率、IoU(Intersection over Union)等指标来评估模型的性能。 7. 进行预测:使用训练好的模型对新的图像进行预测。将图像输入到模型中,获取每个像素的类别标识,从而实现语义分割。 这只是一个基本的训练FCN模型的流程,具体实现可能会根据你的需求和数据集的特点进行调整。你可以参考TensorFlow官方文档和相关教程来详细了解如何训练FCN模型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值