windows下进行FCN图像训练分割

基本上所有的资料都是在乌班图下的,在windows下的基本没有,下面是我在windows 下配置深度学习图像语义分割的一些过程:

首先你要配置好caffe把?这个教程多得很,我就不再累述了;

我建议python同一版本,我之前是2.7和3.6共存,所以配置 的过程中感觉有冲突,后来我都删了重新装的2.7的版本。

http://blog.csdn.net/qq_34220460/article/details/70244725
这个是我主要参考的帖子.
需要通过pip把所依赖的库都安装上。

pip install scikit-image on windows 失败 解决方案:(自行下载安装)
http://blog.csdn.net/jqw11/article/details/72453084

cuda加速不能用:cudasuccess (8 vs. 0) invalid device function 错误
https://www.zhihu.com/question/42010540/answer/118341484

https://github.com/shelhamer/fcn.berkeleyvision.org
这是FCN的源码,我们要把它给跑通了:
我用的是fcn32s这个模型。
windows下进行FCN图像训练分割_第1张图片

这是voc-fcn32s文件夹里面的内容:
windows下进行FCN图像训练分割_第2张图片
其中的trian是训练模型的保存位置(可以自定义的),我们训练的模型就保存在这里。
windows下进行FCN图像训练分割_第3张图片
我是设值每300次保存一次。

要想训练自己的模型,就要有自己的训练集。由于FCN是end-to-end,输出也是一张图,因此训练集要分为两部分,一个是原图,一个是分割二值图。图片太大了跑不了,先切成300*300(自定义),如下图所示(我分割的结果就两部分,目标和背景)

下图是标记图,其实标记图应该是二值图,位深是8的,而且如果是2个lable,比如我的这个图,需要灰度从0到1,现在显示是红色,需要继续处理。
windows下进行FCN图像训练分割_第4张图片

分别在两个不同的文件夹里面,同时还要有一个txt文件来指定他们的名字:
windows下进行FCN图像训练分割_第5张图片
需要注意的是,这个文件里面每个名字之间都有一个换行,最好用nodepad来换行,我直接用txt的换行会运行报错,找不到文件。

下面要去运行voc-fcn32s文件夹里面的solve.py了
http://blog.csdn.net/wangkun1340378/article/details/70238290
http://blog.csdn.net/z13653662052/article/details/70949440
http://blog.csdn.net/zoro_lov3/article/details/74550735
我是参照这个帖子里面的内容修改的,里面这么说的:
这里写图片描述
具体是啥原因呢?希望以后我会知道。。。

同时还要修改prototxt文件:这个文件里面本来没有deploy.prototxt这个文件,要自己做一个。
windows下进行FCN图像训练分割_第6张图片
下图是solve.prototxt
windows下进行FCN图像训练分割_第7张图片
其中trian.net是train.prototxt的路径(我这边是相对路径,你可以是用绝对的)
max_iter是最大迭代次数;
snapshot 是每多少次保存一次模型文件到下一行的路径中;
下图是train.prototxt
windows下进行FCN图像训练分割_第8张图片
其中红框是需要修改的,黄色框框里面的就是训练的数据文件夹,白色的是制作的txt文件(用来保存图片名称的那个)

不可避免的,有一个val的文件把我困扰好久,这个好像只是打分的时候才会用到,直接训练也无妨,我是按照train的格式配置了一遍,但其实没有用到过。

同时上文提到要修改标记灰度图为从0,1,2,3,……开始。比如我要标记两类,只能是会的0和灰度1. 具体这样修改:

windows下进行FCN图像训练分割_第9张图片
把灰度大于0的都变成1;

还要修改voc_layers.py这个文件,我是参考的这个:
http://blog.csdn.net/z13653662052/article/details/70949440
原来的数据要求的是mat格式的,修改后直接用png图片也可以。

很多问题都忘记了,以后想起来补充

你可能感兴趣的:(深度学习)