Skip to content

Commit

Permalink
update EISeg (PaddlePaddle#1282)
Browse files Browse the repository at this point in the history
  • Loading branch information
geoyee authored Aug 25, 2021
1 parent e8e5b96 commit 4232af9
Show file tree
Hide file tree
Showing 11 changed files with 243 additions and 229 deletions.
1 change: 1 addition & 0 deletions contrib/EISeg/MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
include eiseg/config/*
include eiseg/resource/*
include eiseg/util/translate/*
8 changes: 1 addition & 7 deletions contrib/EISeg/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ eiseg

### Windows exe

EISeg使用[QPT](https://github.com/GT-ZhangAcer/QPT)进行打包。可以从[这里](http://cloud.a-boat.cn:2021/share/egI4T3tB)[百度云盘](https://pan.baidu.com/s/1bHVZgUj4u3trhfvPrjYlQw)(提取码:82z9)下载最新EISeg。解压后双击启动程序.exe即可运行程序。程序第一次运行会初始化安装所需要的包,请稍等片刻。
EISeg使用[QPT](https://github.com/GT-ZhangAcer/QPT)进行打包。可以从[这里](http://cloud.a-boat.cn:2021/share/egI4T3tB)[百度云盘](https://pan.baidu.com/s/1AX5tiZiP3m3XrP5cJhB-kA)(提取码:82z9)下载最新EISeg。解压后双击启动程序.exe即可运行程序。程序第一次运行会初始化安装所需要的包,请稍等片刻。

## 使用

Expand Down Expand Up @@ -139,12 +139,6 @@ EISeg使用[QPT](https://github.com/GT-ZhangAcer/QPT)进行打包。可以从[

1. 可在`显示`中选择需要显示的界面模块,正常退出时将会记录界面模块的状态和位置,下次打开自动加载。

## 常见问题

1. **COCO tools安装失败**

若在Windows下安装coco tool时报错,则可能缺少Microsoft Visual C++,可在[微软官方下载网页](https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/)进行下载安装后重启,即可解决。

## 版本更新

- 待发版 **0.3.0**:【1】初步完成多边形编辑功能,支持对交互标注的结果进行编辑;【2】支持中/英界面;【3】支持保存为灰度/伪彩色标签和COCO格式;【4】界面拖动更加灵活;【5】标签栏可拖动,生成mask的覆盖顺序由上往下覆盖。
Expand Down
2 changes: 1 addition & 1 deletion contrib/EISeg/eiseg/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
sys.path.append(pjpath)

__APPNAME__ = "EISeg"
__VERSION__ = "0.3.0"
__VERSION__ = "0.3.0.3"


import os
Expand Down
18 changes: 10 additions & 8 deletions contrib/EISeg/eiseg/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import numpy as np

from eiseg import pjpath, __APPNAME__
from models import ModelsNick
from widget import ShortcutWindow, PolygonAnnotation
from controller import InteractiveController
from ui import Ui_EISeg
Expand Down Expand Up @@ -43,7 +44,7 @@ def __init__(self, parent=None):
"pseudo_color": True,
"json": False,
"coco": True,
"matting": True,
"foreground": True,
} # 是否保存这几个格式

self.image = None # 可能先加载图片后加载模型,只用于暂存图片
Expand Down Expand Up @@ -314,13 +315,13 @@ def initActions(self):
)
save_matting = action(
tr("&抠图保存"),
partial(self.toggleSave, "matting"),
partial(self.toggleSave, "foreground"),
"save_matting",
"SaveMatting",
tr("只保留前景,背景设置为背景色"),
checkable=True,
)
save_matting.setChecked(self.save_status["matting"])
save_matting.setChecked(self.save_status["foreground"])
set_matting_background = action(
tr("&设置抠图背景色"),
self.setMattingBackground,
Expand Down Expand Up @@ -487,7 +488,7 @@ def menu(title, actions=None):
menu(tr("显示"), self.menus.showMenu)
menu(tr("帮助"), self.menus.helpMenu)
util.addActions(self.toolBar, self.menus.toolBar)
# matting backgroud
# foreground backgroud
if self.settings.value("matting_color"):
self.mattingBackground = [
int(c) for c in self.settings.value("matting_color")
Expand Down Expand Up @@ -583,8 +584,8 @@ def updateModelsMenu(self):
self.settings.setValue("recent_params", self.recentModels)

def setModelParam(self, modelName, paramPath):
if self.changeModel(modelName):
self.comboModelSelect.setCurrentText(modelName) # 更改显示
if self.changeModel(ModelsNick[modelName][1]):
self.comboModelSelect.setCurrentText(self.tr(ModelsNick[modelName][0])) # 更改显示
res = self.changeParam(paramPath)
if res:
return True
Expand Down Expand Up @@ -874,6 +875,7 @@ def openImage(self):
)
if len(file_path) == 0:
return
self.saveImage(True) # 清除
self.queueEvent(partial(self.loadImage, file_path))
self.listFiles.addItems([file_path.replace("\\", "/")])
self.imagePaths.append(file_path)
Expand Down Expand Up @@ -1198,9 +1200,9 @@ def saveLabel(self, saveAs=False, savePath=None):
cv2.imencode(ext, pseudo)[1].tofile(pseudoPath)

# 4.3 保存前景抠图
if self.save_status["matting"]:
if self.save_status["foreground"]:
mattingPath, ext = osp.splitext(savePath)
mattingPath = mattingPath + "_matting" + ext
mattingPath = mattingPath + "_foreground" + ext
img = self.controller.image.copy()
img = img[:, :, ::-1]
img[self.getMask() == 0] = self.mattingBackground[::-1]
Expand Down
Empty file.
3 changes: 3 additions & 0 deletions contrib/EISeg/eiseg/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,9 @@ def get_param(self, param_path):
return params


ModelsNick = {"HRNet18s_OCR48": ["轻量级模型", 0],
"HRNet18_OCR64": ["高精度模型", 1]}

@MODELS.add_component
class HRNet18s_OCR48(EISegModel):
__name__ = "HRNet18s_OCR48"
Expand Down
4 changes: 2 additions & 2 deletions contrib/EISeg/eiseg/ui.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from qtpy.QtCore import Qt

from eiseg import pjpath, __APPNAME__
import models
from models import ModelsNick
from util import MODELS
from widget import AnnotationScene, AnnotationView
from widget.create import *
Expand Down Expand Up @@ -85,7 +85,7 @@ def setupUi(self, MainWindow):
# labShowSet = self.create_text(CentralWidget, "labShowSet", "模型选择")
# ModelRegion.addWidget(labShowSet)
combo = QtWidgets.QComboBox(self)
combo.addItems([m.__name__ for m in MODELS])
combo.addItems([self.tr(ModelsNick[m.__name__][0]) for m in MODELS])
self.comboModelSelect = combo
ModelRegion.addWidget(self.comboModelSelect)
# 网络参数
Expand Down
Loading

0 comments on commit 4232af9

Please sign in to comment.