Skip to content

Repository files navigation

VesselMe

眼底图像血管分割与 LabelMe 兼容矢量标注工具。

核心目标只有一个:以最低学习成本,提供可直接用于训练的高质量血管分割标注流程。项目操作逻辑兼容 pair,界面交互借鉴 labelme

VesselMe Home

为什么做这个项目

  • 眼底血管分割是像素级任务,标注效率和一致性直接决定训练数据质量。
  • 通用标注工具对该场景不够顺手,迁移学习成本高。
  • 本项目聚焦“本地、轻量、稳定、可落盘复现”的标注闭环。

现在有什么(v0.1)

  • 打开目录并递归加载图像(png/jpg/jpeg/tif/tiff/bmp/webp)。
  • 每张图支持多标签 mask 管理(创建、导入、重命名、删除、显示/锁定)。
  • 画布支持画笔/橡皮、缩放平移、叠加透明度、连续笔画,以及控制点、多边形、圆和轴对齐椭圆。
  • 支持每张图独立的统一撤销/重做历史,mask 和矢量操作按发生顺序交替撤回。
  • 标注同时保存为单标签 .tarmask.npy + meta.json)与同 stem 的 LabelMe JSON。
  • LabelMe JSON 保留外部未支持 shape 与扩展字段;尺寸不一致和同 stem 图片冲突会阻止覆盖保存。
  • 支持从图片导入 mask(二值化 + 尺寸对齐)及黑底 stroke PNG 导出。

实现索引见:docs/WIKI.md

快速开始

1) 安装依赖

pip install -r requirements.txt

或 Conda:

conda create -y -n vesselme python=3.11
conda run -n vesselme python -m pip install -r requirements.txt

2) 启动

python main.py

python -m vesselme.main

核心快捷键

  • B: 画笔
  • E: 橡皮
  • V: 选择和编辑图形
  • P: 控制点
  • G: 多边形(Enter/双击完成,Esc 取消)
  • C: 圆 / 椭圆(按住 Shift 创建圆)
  • Ctrl + 鼠标滚轮: 调整画笔大小
  • 鼠标右键: 临时橡皮
  • 中键拖动Space + 左键: 平移
  • 滚轮: 缩放
  • Ctrl+Z / Ctrl+Y: 撤销 / 重做
  • A: 显示 / 隐藏标注层
  • [ / ]: 缩小 / 增大画笔
  • 1~9: 切换标签
  • SCtrl+S: 保存当前图像的全部脏数据
  • ← / →: 切换上一张 / 下一张图片

数据格式(训练友好)

每张图保留原有 mask 包,并增加同 stem 的 LabelMe JSON:

fundus.png
fundus_[vessel].tar
fundus_[lesion].tar
fundus.json

每个“图像-标签”保存为一个 .tar

  • mask.npy: uint8 单通道二值图(背景 0,前景 255
  • meta.json: 标签名、显示色、时间戳、版本等元数据

命名规则:

  • 图片:<image_stem>.<ext>
  • 标签:<image_stem>_[<label_name>].tar
  • 矢量:<image_stem>.json

JSON 固定写入 LabelMe 根字段 version/flags/shapes/imagePath/imageData/imageHeight/imageWidth。支持 pointpolygoncircle;椭圆保存为 64 个边界点的 polygon,并用 vesselme_shape_typevesselme_geometry 恢复中心与半轴。每个 VesselMe 对象额外携带稳定 UUID、显示状态、锁定状态和颜色。

rectanglelinelinestripmask 等未支持对象不会显示或编辑,保存时会按原内容和原始相对顺序合并回 JSON。JSON 尺寸与图片不一致、或同目录出现相同 stem 的多种图片扩展名时,程序会阻止 JSON 覆盖保存;imagePath 不一致只提示,不阻止加载。

删除 mask 标签或最后一个受支持 shape 只改变内存状态。下一次保存才删除相应 .tar 或 JSON;在保存前可用撤销恢复。

项目结构

vesselme/
  ui/        # 主窗口、画布、交互
  core/      # 历史栈等核心逻辑
  data/      # 模型与 tar 读写
  services/  # 项目/标签服务
docs/
  README.md
  WIKI.md
  NEXT.md
spec.md      # 产品与技术规范

文档导航

License

GPL-3.0. See LICENSE.

运行

Windows 用户

  1. 安装 Python 3.10+(安装时勾选 Add python.exe to PATH)。
  2. 打开 cmd 或 PowerShell,进入项目根目录(和 main.py 同级)。
  3. 执行:
python -m pip install -r requirements.txt
python main.py

macOS 用户

  1. 确保已安装 Python 3.10+。
  2. 打开终端,进入项目根目录(和 main.py 同级)。
  3. 执行:
python3 -m pip install -r requirements.txt
python3 main.py

常见问题

  1. python / python3 不存在:先安装 Python,再重开终端。
  2. 依赖安装报权限错误:使用
python3 -m pip install --user -r requirements.txt
  1. 程序启动失败:先确认你当前目录下有 main.py

About

轻量的医学眼底图像血管标注软件

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages