Skip to content

Commit c8d9103

Browse files
authored
Merge release/2.2 into develop (PaddlePaddle#1326)
1 parent 515bf93 commit c8d9103

File tree

906 files changed

+17303
-63763
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

906 files changed

+17303
-63763
lines changed

contrib/EISeg/.gitignore renamed to EISeg/.gitignore

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# Byte-compiled / optimized / DLL files
2+
test/
23
__pycache__/
34
*.py[cod]
45
*$py.class
@@ -9,6 +10,9 @@ vis_temp.py
910
test.txt
1011
*.pdparams
1112
output/
13+
temp*
14+
temp/
15+
1216

1317
# C extensions
1418
*.so
@@ -143,8 +147,12 @@ out/
143147
eiseg/requirements_with_opt.txt
144148

145149
# test
150+
test/
146151
test_output/
147152
*.npy
148153

149154
# qsetting
150-
*.ini
155+
*.ini
156+
157+
# mask_sm
158+
tool/mask.png
File renamed without changes.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
include eiseg/config/*
22
include eiseg/resource/*
3+
include eiseg/util/translate/*

EISeg/README.md

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
# EISeg
2+
3+
[![Python 3.6](https://img.shields.io/badge/python-3.6+-blue.svg)](https://www.python.org/downloads/release/python-360/) [![License](https://img.shields.io/badge/license-Apache%202-blue.svg)](LICENSE)
4+
<!-- [![GitHub release](https://img.shields.io/github/release/Naereen/StrapDown.js.svg)](https://github.com/PaddleCV-SIG/iseg/releases) -->
5+
6+
## 最新动向
7+
8+
- 支持多边形编辑,上线更多功能,最新EISeg 0.3.0推出。
9+
10+
## 介绍
11+
12+
EISeg(Efficient Interactive Segmentation)是基于飞桨开发的一个高效智能的交互式分割标注软件。涵盖了高精度和轻量级等不同方向的高质量交互式分割模型,方便开发者快速实现语义及实例标签的标注,降低标注成本。 另外,将EISeg获取到的标注应用到PaddleSeg提供的其他分割模型进行训练,便可得到定制化场景的高精度模型,打通分割任务从数据标注到模型训练及预测的全流程。
13+
14+
![eiseg_demo](../../docs/images/eiseg_demo.gif)
15+
16+
## 模型准备
17+
18+
在使用EIseg前,请先下载模型参数。EISeg开放了在COCO+LVIS和大规模人像数据上训练的四个标注模型,满足通用场景和人像场景的标注需求。其中模型结构对应EISeg交互工具中的网络选择模块,用户需要根据自己的场景需求选择不同的网络结构和加载参数。
19+
20+
| 模型类型 | 适用场景 | 模型结构 | 下载地址|
21+
| --- | --- | --- | ---|
22+
| 高精度模型 | 适用于通用场景的图像标注。 |HRNet18_OCR64 | [hrnet18_ocr64_cocolvis](https://bj.bcebos.com/paddleseg/dygraph/interactive_segmentation/ritm/hrnet18_ocr64_cocolvis.pdparams) |
23+
| 轻量化模型 | 适用于通用场景的图像标注。 |HRNet18s_OCR48 | [hrnet18s_ocr48_cocolvis](https://bj.bcebos.com/paddleseg/dygraph/interactive_segmentation/ritm/hrnet18s_ocr48_cocolvis.pdparams) |
24+
| 高精度模型 | 适用于人像标注场景。 |HRNet18_OCR64 | [hrnet18_ocr64_human](https://bj.bcebos.com/paddleseg/dygraph/interactive_segmentation/ritm/hrnet18_ocr64_human.pdparams) |
25+
| 轻量化模型 | 适用于人像标注场景。 |HRNet18s_OCR48 | [hrnet18s_ocr48_human](https://bj.bcebos.com/paddleseg/dygraph/interactive_segmentation/ritm/hrnet18s_ocr48_human.pdparams) |
26+
27+
28+
29+
## 安装使用
30+
31+
EISeg提供多种安装方式,其中使用[pip](#PIP)[运行代码](#运行代码)方式可兼容Windows,Mac OS和Linux。为了避免环境冲突,推荐在conda创建的虚拟环境中安装。
32+
33+
版本要求:
34+
35+
* PaddlePaddle >= 2.1.0
36+
37+
PaddlePaddle安装请参考[官网](https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/install/pip/windows-pip.html)
38+
39+
### 克隆到本地
40+
41+
通过git将PaddleSeg克隆到本地:
42+
43+
```shell
44+
git clone https://github.com/PaddlePaddle/PaddleSeg.git
45+
```
46+
47+
安装好所需环境后,进入EISeg,可通过直接运行eiseg打开EISeg:
48+
49+
```shell
50+
cd PaddleSeg\contrib\EISeg
51+
python -m eiseg
52+
```
53+
54+
或进入eiseg,运行exe.py打开EISeg:
55+
56+
```shell
57+
cd PaddleSeg\contrib\EISeg\eiseg
58+
python exe.py
59+
```
60+
61+
### PIP
62+
63+
pip安装方式如下:
64+
65+
```shell
66+
pip install eiseg
67+
```
68+
pip会自动安装依赖。安装完成后命令行输入:
69+
```shell
70+
eiseg
71+
```
72+
即可运行软件。
73+
74+
### Windows exe
75+
76+
EISeg使用[QPT](https://github.com/GT-ZhangAcer/QPT)进行打包。可以从[这里](http://cloud.a-boat.cn:2021/share/egI4T3tB)[百度云盘](https://pan.baidu.com/s/19kUUQBJamL0xY5UKzlNBzg)(提取码:82z9)下载最新EISeg。解压后双击启动程序.exe即可运行程序。程序第一次运行会初始化安装所需要的包,请稍等片刻。
77+
78+
## 使用
79+
80+
打开软件后,在对项目进行标注前,需要进行如下设置:
81+
82+
1. **模型参数加载**
83+
84+
选择合适的网络,并加载对应的模型参数。目前在EISeg中,网络分为`HRNet18s_OCR48``HRNet18_OCR64`,并分别提供了人像和通用两种模型参数。在正确加载模型参数后,右下角状态栏会给予说明。若网络参数与模型参数不符,将会弹出警告,此时加载失败需重新加载。正确加载的模型参数会记录在`近期模型参数`中,可以方便切换,并且下次打开软件时自动加载退出时的模型参数。
85+
86+
2. **图像加载**
87+
88+
打开图像/图像文件夹。当看到主界面图像正确加载,`数据列表`正确出现图像路径即可。
89+
90+
3. **标签添加/加载**
91+
92+
添加/加载标签。可以通过`添加标签`新建标签,标签分为4列,分别对应像素值、说明、颜色和删除。新建好的标签可以通过`保存标签列表`保存为txt文件,其他合作者可以通过`加载标签列表`将标签导入。通过加载方式导入的标签,重启软件后会自动加载。
93+
94+
4. **自动保存设置**
95+
96+
在使用中可以将`自动保存`设置上,设定好文件夹即可,这样在使用时切换图像会自动将完成标注的图像进行保存。
97+
98+
当设置完成后即可开始进行标注,默认情况下常用的按键/快捷键如下,如需修改可按`E`弹出快捷键修改。
99+
100+
| 部分按键/快捷键 | 功能 |
101+
| --------------------- | ----------------- |
102+
| 鼠标左键 | 增加正样本点 |
103+
| 鼠标右键 | 增加负样本点 |
104+
| 鼠标中键 | 平移图像 |
105+
| Ctrl+鼠标中键(滚轮) | 缩放图像 |
106+
| S | 切换上一张图 |
107+
| F | 切换下一张图 |
108+
| Space(空格) | 完成标注/切换状态 |
109+
| Ctrl+Z | 撤销 |
110+
| Ctrl+Shift+Z | 清除 |
111+
| Ctrl+Y | 重做 |
112+
| Ctrl+A | 打开图像 |
113+
| Shift+A | 打开文件夹 |
114+
| E | 打开快捷键表 |
115+
| Backspace(退格) | 删除多边形 |
116+
| 鼠标双击(点) | 删除点 |
117+
| 鼠标双击(边) | 添加点 |
118+
119+
## 新功能使用说明
120+
121+
- **多边形**
122+
123+
1. 交互完成后使用Space(空格)完成交互标注,此时出现多边形边界;当需要在多边形内部继续进行交互,则使用空格切换为交互模式,此时多边形无法选中和更改。
124+
2. 多边形可以拖动和删除,使用鼠标左边可以对锚点进行拖动,鼠标左键双击锚点可以删除锚点,双击两点之间的边则可在此边添加一个锚点。
125+
3. 打开`保留最大连通块`后,所有的点击只会在图像中保留面积最大的区域,其余小区域将不会显示和保存。
126+
127+
- **格式保存**
128+
129+
1. 打开保存`JSON保存``COCO保存`后,多边形会被记录,加载时会自动加载。
130+
2. 若不设置保存路径,默认保存至当前图像文件夹下的label文件夹中。
131+
3. 如果有图像之间名称相同但后缀名不同,可以打开`标签和图像使用相同扩展名`
132+
4. 还可设置灰度保存、伪彩色保存和抠图保存,见工具栏中7-9号工具。
133+
134+
- **生成mask**
135+
136+
1. 标签按住第二列可以进行拖动,最后生成mask时会根据标签列表从上往下进行覆盖。
137+
138+
- **界面模块**
139+
140+
1. 可在`显示`中选择需要显示的界面模块,正常退出时将会记录界面模块的状态和位置,下次打开自动加载。
141+
142+
## 版本更新
143+
144+
- 待发版 **0.3.0**:【1】初步完成多边形编辑功能,支持对交互标注的结果进行编辑;【2】支持中/英界面;【3】支持保存为灰度/伪彩色标签和COCO格式;【4】界面拖动更加灵活;【5】标签栏可拖动,生成mask的覆盖顺序由上往下覆盖。
145+
- 2021.07.07 **0.2.0**:新增contrib:EISeg,可实现人像和通用图像的快速交互式标注。
146+
147+
## 开发者
148+
149+
[Yuying Hao](https://github.com/haoyuying), [Lin Han](https://github.com/linhandev/), [Yizhou Chen](https://github.com/geoyee), [Yiakwy](https://github.com/yiakwy), [GT](https://github.com/GT-ZhangAcer), [Zhiliang Yu](https://github.com/yzl19940819)

EISeg/eiseg/__init__.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import sys
2+
import os.path as osp
3+
4+
pjpath = osp.dirname(osp.realpath(__file__))
5+
sys.path.append(pjpath)
6+
7+
__APPNAME__ = "EISeg"
8+
__VERSION__ = "0.3.0"
9+
10+
11+
import os
12+
import cv2
13+
14+
for k, v in os.environ.items():
15+
if k.startswith("QT_") and "cv2" in v:
16+
del os.environ[k]
File renamed without changes.

0 commit comments

Comments
 (0)