EISeg(Efficient Interactive Segmentation)是以RITM为基础,基于飞桨开发的一个高效智能的交互式分割标注软件。涵盖了高精度和轻量级等不同方向的高质量交互式分割模型,方便开发者快速实现语义及实例标签的标注,降低标注成本。 另外,将EISeg获取到的标注应用到PaddleSeg提供的其他分割模型进行训练,便可得到定制化场景的高精度模型,打通分割任务从数据标注到模型训练及预测的全流程。
在使用EIseg前,请先下载模型参数。EISeg开放了在COCO+LVIS和大规模人像数据上训练的四个标注模型,满足通用场景和人像场景的标注需求。其中模型结构对应EISeg交互工具中的网络选择模块,用户需要根据自己的场景需求选择不同的网络结构和加载参数。
模型类型 | 适用场景 | 模型结构 | 下载地址 |
---|---|---|---|
高精度模型 | 适用于通用场景的图像标注。 | HRNet18_OCR64 | hrnet18_ocr64_cocolvis |
轻量化模型 | 适用于通用场景的图像标注。 | HRNet18s_OCR48 | hrnet18s_ocr48_cocolvis |
高精度模型 | 适用于人像标注场景。 | HRNet18_OCR64 | hrnet18_ocr64_human |
轻量化模型 | 适用于人像标注场景。 | HRNet18s_OCR48 | hrnet18s_ocr48_human |
EISeg提供多种安装方式,其中使用pip和运行代码方式可兼容Windows,Mac OS和Linux。为了避免环境冲突,推荐在conda创建的虚拟环境中安装。
版本要求:
- PaddlePaddle >= 2.1.0
PaddlePaddle安装请参考官网。
通过git将PaddleSeg克隆到本地:
git clone https://github.com/PaddlePaddle/PaddleSeg.git
安装好所需环境后,进入EISeg,可通过直接运行eiseg打开EISeg:
cd PaddleSeg\contrib\EISeg
python -m eiseg
或进入eiseg,运行exe.py打开EISeg:
cd PaddleSeg\contrib\EISeg\eiseg
python exe.py
pip安装方式如下:
pip install eiseg
pip会自动安装依赖。安装完成后命令行输入:
eiseg
即可运行软件。
EISeg使用QPT进行打包。可以从这里下载最新EISeg。解压后双击启动程序.exe即可运行程序。程序第一次运行会初始化安装所需要的包,请稍等片刻。
打开软件后,在对项目进行标注前,需要进行如下设置:
-
模型参数加载
选择合适的网络,并加载对应的模型参数。目前在EISeg中,网络分为
HRNet18s_OCR48
和HRNet18_OCR64
,并分别提供了人像和通用两种模型参数。在正确加载模型参数后,右下角状态栏会给予说明。若网络参数与模型参数不符,将会弹出警告,此时加载失败需重新加载。正确加载的模型参数会记录在近期模型参数
中,可以方便切换,并且下次打开软件时自动加载退出时的模型参数。 -
图像加载
打开图像/图像文件夹。当看到主界面图像正确加载,
数据列表
正确出现图像路径即可。 -
标签添加/加载
添加/加载标签。可以通过
添加标签
新建标签,标签分为4列,分别对应像素值、说明、颜色和删除。新建好的标签可以通过保存标签列表
保存为txt文件,其他合作者可以通过加载标签列表
将标签导入。通过加载方式导入的标签,重启软件后会自动加载。 -
自动保存设置
在使用中可以将
自动保存
设置上,设定好文件夹即可,这样在使用时切换图像会自动将完成标注的图像进行保存。
当设置完成后即可开始进行标注,默认情况下常用的按键/快捷键如下,如需修改可按E
弹出快捷键修改。
部分按键/快捷键 | 功能 |
---|---|
鼠标左键 | 增加正样本点 |
鼠标右键 | 增加负样本点 |
鼠标中键 | 平移图像 |
Ctrl+鼠标中键(滚轮) | 缩放图像 |
S | 切换上一张图 |
F | 切换下一张图 |
Space(空格) | 完成标注/切换状态 |
Ctrl+Z | 撤销 |
Ctrl+Shift+Z | 清除 |
Ctrl+Y | 重做 |
Ctrl+A | 打开图像 |
Shift+A | 打开文件夹 |
E | 打开快捷键表 |
Backspace(退格) | 删除多边形 |
鼠标双击(点) | 删除点 |
鼠标双击(边) | 添加点 |
- 多边形
- 交互完成后使用Space(空格)完成交互标注,此时出现多边形边界;当需要在多边形内部继续进行交互,则使用空格切换为交互模式,此时多边形无法选中和更改。
- 多边形可以拖动和删除,使用鼠标左边可以对锚点进行拖动,鼠标左键双击锚点可以删除锚点,双击两点之间的边则可在此边添加一个锚点。
- 打开
保留最大连通块
后,所有的点击只会在图像中保留面积最大的区域,其余小区域将不会显示和保存。
- 格式保存
- 打开保存
JSON保存
或COCO保存
后,多边形会被记录,加载时会自动加载。 - 若不设置保存路径,默认保存至当前图像文件夹下的label文件夹中。
- 如果有图像之间名称相同但后缀名不同,可以打开
标签和图像使用相同扩展名
。 - 还可设置灰度保存、伪彩色保存和抠图保存,见工具栏中7-9号工具。
- 生成mask
- 标签按住第二列可以进行拖动,最后生成mask时会根据标签列表从上往下进行覆盖。
- 界面模块
- 可在
显示
中选择需要显示的界面模块,正常退出时将会记录界面模块的状态和位置,下次打开自动加载。
- 2021.09.16 0.3.0:【1】初步完成多边形编辑功能,支持对交互标注的结果进行编辑;【2】支持中/英界面;【3】支持保存为灰度/伪彩色标签和COCO格式;【4】界面拖动更加灵活;【5】标签栏可拖动,生成mask的覆盖顺序由上往下覆盖。
- 2021.07.07 0.2.0:新增contrib:EISeg,可实现人像和通用图像的快速交互式标注。
感谢Yuying Hao, Lin Han, Yizhou Chen, Yiakwy, GT, Zhiliang Yu等开发者及RITM算法支持。
如果我们的项目在学术上帮助到你,请考虑以下引用:
@article{hao2021edgeflow,
title={EdgeFlow: Achieving Practical Interactive Segmentation with Edge-Guided Flow},
author={Hao, Yuying and Liu, Yi and Wu, Zewu and Han, Lin and Chen, Yizhou and Chen, Guowei and Chu, Lutao and Tang, Shiyu and Yu, Zhiliang and Chen, Zeyu and others},
journal={arXiv preprint arXiv:2109.09406},
year={2021}
}