用FCN训练自己的数据集问题汇总

参考博客:https://blog.csdn.net/qq_40994943/article/details/85041493

前言:

数据集处理过程就不做详细阐述,按照链接里步骤一步一步来就可以了。用来制作数据的几个脚本都在FCN-tensorflow-hzp-master\FCN-tensorflow-hzp-master\Data_produce\这个文件夹下面。
训练过程和代码讲解,这个博主也分别在两篇博客里详细地讲了,我主要分享下自己碰到的问题以及解决方法,最终让代码跑起来。(因为方便,我是在anaconda下安装tensorflow,tensorflow版本:1.12,python版本:3.6.13)

成功训练,不过结果还需要改进,而且数据集也不够,我只是测试学习。
在这里插入图片描述

遇到的问题及解决总结:

1.主要还是lablme安装的问题,因为默认装最新版,版本兼容的问题一直安装失败,安装了也打不开,无法绘制。之前训练YOLOV5也遇到过,后来用精灵标记助手代替了,但是这种数据用标记精灵制作起来又非常麻烦,不是简单画框(坑爹)。后来在anaconda上更改下载源,找了一个旧版本就好了。这里是在anaconda回退了python后装的,不然也labelme打不开,具体原因不知道- -。

2.制作出来的数据集利用labelme_json_to_dataset批量处理标记出来的json文件时,有报错:在这里插入图片描述
还是labelme的版本问题,但是如果用新版之前的问题就又会出现,进入一个死循环,后来看了下这个接口的代码,在网上找到类似的实现函数把这一部分替换了,主要是利用labelme中的utils.draw_label()做处理,将json文件对应的图片处理成有标签的低灰度热图。制作完后数据集结构如下图,然后按链接里说的分别放到指定不同的路径文件夹里就好。
在这里插入图片描述

3.训练时候发现FCN的预模型调用代码使用tensorflow1.0版本写的,我这边是2.0,用法差别很大有很多报错。tensorflow1.0 对应的python3.3-3.7版本,我的python是3.8自动更新到了最新版,因此我用anaconda回退了版本。

4.如果大家是想训练官方的ADEChallengeData2016里面的数据集,不会太多问题;但是如果是想训练自己的数据集,就会出现.pickle文件错误,找不到图片,然后输入训练的图片是0 (报错:Cannot feed value of shape (0,) for Tensor ‘input_image:0’, which has shape ‘(?, 224, 224, 3)’),你需要删除这个.pickle文件,自己生成,因为需要利用这个文件自动加载你自己的训练数据集,不然就还是官方的数据了,如图1。不过即使你删了,还会报错显示annotations的训练集和验证集文件夹下找不到图片,但其实文件下是有图片的;这个是因为在数据集制作的时候,原作者把Data_zoo\MIT_SceneParsing\ADEChallengeData2016\annotations\文件夹里的图片名后面都加了-gt(就成了xxxxx_gt.png),这时候需要在读取annotation文件夹下的标注图片时候,需要把读取的图片名称后面加上_gt如图2。
图1:
在这里插入图片描述
图2:在这里插入图片描述
5.最后还有个报错:numpy.AxisError: axis 3 is out of bounds for array of dimension 3,对应代码如图,把这个2改成3就可以了,详细原因参考https://blog.csdn.net/lingchuxiao/article/details/107773663
在这里插入图片描述
这次坑碰到好多,记录分享一下,也方便之后回顾。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值