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

这篇博客详细介绍了如何使用FCN(全卷积网络)从头开始制作数据集,包括制作标签、修改文件、训练和测试的步骤。作者分享了如何将图像和标签转换为FCN所需的格式,并提供了代码示例,以帮助读者理解整个过程。在训练过程中,博主提到了解决训练初期loss高和模型调整的问题。
摘要由CSDN通过智能技术生成

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  = 
为了训练R-FCN模型使用自己的数据集,你可以按照以下步骤进行操作: 1. 首先,将你的数据集准备好,包括图像和相应的标注。确保你的标注与R-FCN的要求相匹配,通常是使用PASCAL VOC格式或COCO格式的标注。 2. 接下来,你需要克隆py-R-FCN工程,你可以通过运行以下命令来完成此操作: ``` git clone https://github.com/Orpine/py-R-FCN.git ``` 3. 在克隆的py-R-FCN目录中,你需要进行一些配置。首先,你需要安装所需的依赖项,可以通过运行以下命令来完成: ``` pip install -r requirements.txt ``` 4. 然后,你需要将训练和验证图像及其相应的标注放置在正确的目录下。按照py-R-FCN的要求,将训练图像和标注放置在`data/VOCdevkit2007/VOC2007`目录下,将验证图像和标注放置在`data/VOCdevkit2007/VOC2007`目录下。 5. 接下来,你需要在`experiments/cfgs`目录中创建一个配置文件。你可以根据你的需求修改现有的配置文件,或者创建一个新的配置文件。确保配置文件中包含正确的目录路径和类别数等信息。 6. 现在,你可以开始训练R-FCN模型了。通过在终端中运行以下命令来进行训练: ``` python train.py --cfg experiments/cfgs/your_config_file.yaml ``` 请将`your_config_file.yaml`替换为你创建的配置文件的名称。 7. 训练过程中可能会遇到一些问题,例如`loss_bbox=0`的情况。你可以参考中提供的解决方法,主要是关于numpy的问题。此外,中也提到了一些常见问题和解决方法,建议你先将迭代次数设置为100或更小来调试。 希望这些步骤对你有帮助。祝你成功训练R-FCN模型!
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值