gluoncv fcn做语义分割小结

照例,先占坑再填,不完善的地方后续再补

1、图片标注

github上搜labelme

也可以直接作为python第三方库安装

pip install labelme

即可

启动时在cmd命令中输入labelme,该软件的图形界面就出来了

 

 

点击open dir并选择对应的文件夹

点击creat polygons开始标记,以不规则方框或者拆线画出所要区分的实例,输入标签,最后点save

2、标签转换

标出来的标签是单个的json格式,由于要用pascal voc格式进行训练,需要对所标注的数据格式进行转换,转成voc数据格式

github中labelme官方项目中就有转换的脚本,但是需要注意的一点是要先选对对应的脚本,比如要做实例分割,不要选成目标检测了

实例分割转换脚本链接

https://github.com/wkentaro/labelme/blob/master/examples/semantic_segmentation/labelme2voc.py

对应的链接先空上,随后再补,家里的网是移动的,github基本打不开。

转出来的格式如图所示

3、训练

转换出来的数据好像是voc增强模式,还给每张图片提取了特征(npy文件),一个特征都是几十兆,如上图所示。

在训练时,gluoncv官方给出的FCN网络训练脚本读取的文件夹是SegmentationClass,而我们用labelme转出来的文件夹名称是SegmentationClassPNG,需要将脚本中的文件夹名称改动一下。

官方tutorial link:

https://gluon-cv.mxnet.io/build/examples_segmentation/train_fcn.html

官方训练脚本的link:

https://gluon-cv.mxnet.io/_downloads/1f67ebbf3e0adc5c6fa863a3bc7672a6/train.py

另外,此脚本还有两个坑:

(1)默认的模型保存路径为空,训练时一定要加上

 

 我第一次训练时就没管这个参数,导致白训了,训完在数据根目录下找model,but nothing was found!

(2)语法错误,局部变量在循环里面声明的,出了循环还在调用,运行时会报错

 

 只需在方法第一行给它们加上并赋个初值就好了。

posted @ 2020-09-13 23:59  飞向天边  阅读(340)  评论(0)    收藏  举报