小言_互联网的博客

【语义分割小白教程】手把手教你训练自己的数据集(基于轻量级的FCN-DenseNet)

450人阅读  评论(0)

0. 任务描述:

正好这几天有时间,就写一下一个小白教程,用来教大家如何用一个轻量级的 FCN-DenseNet 训练自己的数据集,我们以分割魔方为例:

1. 标注数据:

1.1 Labelme 的安装:

语义分割标注我们使用 labelme,它是一个图形界面的图像标注软件,是用 PyQt5 编写的图形界面。

安装方式:

pip3 install labelme --user

报错:

我们换清华源试一下:

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -U labelme --user --default-time=1000 --user

解决:

1.2 Labelme 的使用:

在终端输入 labelme:

打开界面如图:

点击OpenDir选择需要标注的图片的路径:


点击标注按键开始标注:


闭合标注区域后,填入标签:

点击Save保存:


另一张也如法炮制:

最后得到两个标注的json文件:

1.3 转换标注格式:

这一步我们需要把 json 文件转换成 VOC 格式的颜色掩码图,像这样:

我们只需要在终端输入:

labelme_json_to_dataset <文件名>.json

即:

就可以看到在该目录下,生成了相应的文件:



对于 1.json 也同样操作;

最终我们只需要保留两种标注的掩码图(注意需要改成跟原图相同的图片名):

2. 数据的目录结构:

我们需要安排一下图片和标注的文件目录;

首先新建一个 Data 文件夹:

里面创建 2 个文件夹:

train/images 文件夹放训练原图:

train/masks 放训练标注图:


同样那个 val 下面的 images 和 masks 分别放测试原图和测试标注图;

3. 下载源码:

源码地址(记得给一个Star哦~):
https://github.com/Sharpiless/FCN-DenseNet


下载完成后解压:


4. 下载预训练模型:

预训练模型地址:
http://download.pytorch.org/models/densenet121-a639ec97.pth

下载完成后放到源码目录下:

5. 安装 pytorch:

Linux 安装比较容易,这里就着重讲一下怎么在 Windows 下安装吧;

(我的是 python3.7,其他的版本同理)

到这个网站:
https://www.lfd.uci.edu/~gohlke/pythonlibs/

找到对应的 torch 版本下载:

下载完成后,在相应目录下 shift+右键 选择打开 Windows Powershell:


输入:

pip3 install torch‑1.0.1‑cp37‑cp37m‑win_amd64.whl --user

然后再:

pip3 install torchvision --user

如果还有报错 ‘No modul named ***’,也是直接用:

pip3 install *** --user

6. 运行训练:

在编辑器(我用的 VSCode)打开 FCN-DenseNet:

运行 train.py 即可开始训练:

下面是训练的参数,都有注释说明,需要改的话在 default 里面改就 ok:

训练时的模型参数保存在这里:

7. 测试图片:

运行 test.py 即可:

会在目录下生成一个 output 文件夹,里面是测试集的分割结果(这里是因为我只有两张图片做例子,所以测试集跟训练集是一样的):


大功告成!


转载:https://blog.csdn.net/weixin_44936889/article/details/105526596
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场