FCN制作自己的数据集,训练,测试

FCN从制作自己的数据集,到训练,测试中间感谢很多朋友的帮助!现在整理出来,希望能帮助到更多的人。以voc_fcn8s为例,详细说明一下整个过程。

制作数据集:

按照voc的数据格式,分为benchmark和VOC2011,benchmark为训练集:VOC2011为测试集,benchmarck在 fcn.berkeleyvision.org/data/sbdd
VOC2011在 fcn.berkeleyvision.org/data/pascal
训练集的原图为.jpg/.png,标签为.mat. 测试集的原图和标签图都是.png/.jpg。这一点,从voc_layer.py中的读取数据的方式可以看出,VOCSegDataLayer()是读取测试集的方法,SBDDSegDataLayer()是读取训练集的方法。为了简单,我们在制作数据集的时候,我们将训练图片和测试图片都准备成图片形式,标签也是索引图。

制作标签:

假如我有两类,背景为0,目标为1,标签图就是单通道的灰度图。其中,背景的灰度值为0,目标的灰度值为1(从0开始,背景为0,连续的灰度值)这样制作完之后,标签图看起来是全黑(8位深),接下来,再将标签图制成索引图,至于什么是索引图,简单来说,就是做了一个map的映射,比如,将我前面设置的灰度值为0的背景,映射成一个自己设置的新的颜色(r,g,b),将灰度值为1的,映射成一个新的颜色(r,g,b)。索引图形式的label是P格式的,有新颜色的,此时的位深就等于制作索引图事对应了几个颜色,比如我的对应了0,1,此时的位深是1,如果对应了0,1,2,3,4,此时的位深是4。下面的这段代码可以帮助你查看图片的信息,如果输出[0,1]说明制作正确。

import PIL
from PIL import Image
import numpy as np
image = PIL.Image.open('.....图片路径')
print(np.unique(image))

将灰度图转成索引图的代码如下:

# -*- coding: utf-8 -*-
__author__ = 'cheese'

from random import randint
from PIL import Image
import os

'''
根据灰度图的值制作索引图
'''

path  = 
  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值