开源了!ScenePaste:一个面向目标检测、分割和 OBB 的可控合成数据生成工具

当前版本:v1.1.0(MIT)
这一版主界面就能调:批量生成默认 + 目标外观预览;素材侧新增 抠图工作室(目录缩略图 / 手绘 / 点选 SAM2 / rembg·GroundingSAM2)。

做计算机视觉时,常见困境是:

模型已经能训了,但数据永远不够——尤其是长尾、小目标、遮挡和难背景。

真实工程里更麻烦的是:

  • 某些类别特别少;
  • 危险 / 异常场景很难采;
  • cutout 只有几十个,换再多背景也还是那几个人 / 那几辆车;
  • 原图很多,却还没画 LabelMe 多边形;
  • 检测、分割、OBB 还要各整理一套标签;
  • 想补难例,又得重新采集标注。

所以我开源了自己一直在用的工具:

ScenePaste —— 场景优先的可控合成数据工作室:抠图素材 → 可视化摆场景 → 目标外观增强 → 批量生成 → 多任务标注 → QA → 模型难例回灌。

GitHub: https://github.com/embed9669-alt/ScenePaste

欢迎 ⭐ Star。

在这里插入图片描述

右侧不用钻二级菜单:

  • 批量生成默认:场景 Recipe / 目标外观 / Blend / 负样本比例
    → 直接服务「批量套用」和「大规模生成」
  • 目标外观预览:选中实例后启用 Recipe,调亮度 / 对比度 / 饱和度 / 模糊,或「换一种」

快速预览(外观增强那一段):

在这里插入图片描述

在这里插入图片描述


一、整条工作流:从抠图到数据闭环

训练时「随机贴一下」≠ 生产一套可控数据集。ScenePaste 要串的是:

抠图工作室 → 摆场景 → 外观多样化 → 设批量默认 → 自动标注 / 浏览 → QA 与难例回灌

步骤动图做什么
⓪ 抠图工作室gif_00_cutout打开文件夹 → 缩略图浏览 → 手绘 / 点选 / 自动抠图 → LabelMe
① 摆场景gif_01_compose放置 cutout,缩放 / 旋转构图
② 目标外观gif_02_appearance选中实例启用 Recipe,调滑条或换种子
③ 批量默认gif_03_batch_defaults右侧设场景 / 目标外观 / Blend / 负样本
④ Explorergif_04_explorer浏览生成图与 Detect/Seg/OBB 叠加
⑤ 数据闭环gif_05_data_loop难例 / QA / 对比 / 策展 / 分片
普通原图 / LabelMe
        ↓
   抠图工作室(目录 + 缩略图)
        ↓
   可视化拖拽 / Scene Template
        ↓
   Object Appearance(单目标)
        ↓
   批量套用 / 大规模多进程生成
        ↓
   Scene Recipe(整图相机域)
        ↓
   Explorer / QA / Hard Mining

⓪ 抠图工作室(新)

很多项目卡在「还没多边形」。GUI 打开 抠图工作室…:

  1. 打开文件夹… → 左侧显示目录路径、缩略图列表
  2. 选模型(rembg / SAM2 点选 / GroundingSAM2)→ 下载并加载(进度可见,国内可勾 hf-mirror)
  3. 设类别名 → 手绘 / 点一下分割 / 自动抠图 → 保存为 LabelMe JSON

在这里插入图片描述

在这里插入图片描述

pip install 'scenepaste[auto]'        # rembg
pip install 'scenepaste[grounding]'   # SAM2 / GroundingSAM2

① 摆场景

拖 cutout 上画布,滚轮缩放、Shift+旋转,把人和车摆到合理透视位置。

在这里插入图片描述

② 目标外观预览

选中实例 → 启用外观增强 → 选 mild / surveillance-object → 拖滑条或「换一种」。
只改 RGB,标签几何不动;保存 / 批量套用都会带上当前外观。

在这里插入图片描述

在这里插入图片描述

③ 批量生成默认

不必只在「大规模生成」对话框里找——右侧常驻:

选项作用
场景 Recipe整图相机域(camera-mild / surveillance…)
目标外观批量默认 cutout 外观(推荐 mild)
边缘 Blendalpha / gaussian / hard
负样本比例纯背景负样本(大规模生成)
应用到全部实例外观一键把默认 Recipe 写进当前画布全部实例

项目设置里也能改同一套默认项:

在这里插入图片描述

④ 浏览生成结果(Explorer)

生成后用 Dataset Explorer 翻图,看 Detect / Seg / OBB 等叠加是否贴合。

在这里插入图片描述

⑤ 数据闭环中心

难例挖掘、QA、真/合对比、策展、WebDataset 分片——都在同一个对话框里进。

在这里插入图片描述

在这里插入图片描述


二、为什么要做 Object Appearance?

素材少时,哪怕生成 10 万张,模型仍反复看到同一批具体目标。

v1.1 在粘贴前对单个 cutout 做可控外观变化:

Cutout → 几何 → Object Appearance → Color Match → Blend → Scene Recipe

内置:mild(推荐)/ surveillance-object / legacy / off
支持按类别覆盖、alpha-aware 边缘(避免 mask 外底色渗进目标)、每实例 metadata + QA 覆盖统计。

对我自己最有用的是 低分辨率退化:远距离目标不再「小却过分清晰」。

scenepaste generate ... \
  --object-appearance-recipe mild \
  --augmentation-recipe surveillance \
  --blend-mode gaussian

三、场景能力一览

可视化编辑:拖动 / 滚轮缩放 / Shift+旋转 / 翻转;模板可参数化 + 关系约束(左右上下、距离)。

放置约束:paste_zone / paste_zone:person + 近大远小。

一张图多任务:

DetectSegOBBSemanticCOCO
YOLO 框多边形旋转框PNG maskinstances

在这里插入图片描述

Mask-first:被挡住的部分会从分割 / OBB / Semantic / COCO 里扣掉。

分布学习 / 难例回灌 / QA / 对比 / 多样性 / WebDataset,以及 GUI 数据闭环中心,都还在(见上面动图 ④⑤)。

在这里插入图片描述


四、安装与上手

Python 3.10~3.13

git clone https://github.com/embed9669-alt/ScenePaste.git
cd ScenePaste
pip install -e ".[gui-qt]"   # 镜像 SSL 不稳可加 --no-build-isolation

scenepaste gui

点 ★ 加载示例 → 需要素材时开 抠图工作室… → 拖几个目标 → 右侧开外观预览 / 设批量默认 → 批量套用或大规模生成。

CLI:scenepaste --help
文档:docs/OBJECT_APPEARANCE.md · docs/AUTO_MASK.md


五、适合谁?不吹什么?

适合:工业视觉、固定摄像头、人车检测、长尾少样本、需要 Detect/Seg/OBB 对照的项目。

不保证「一用就涨点」;不是新论文算法。
外观增强是确定性、离线、可复现的;区域换色 / Diffusion 换装故意没塞进核心。

最终仍要用独立真实验证集说话。


最后

如果你也遇到数据难采、cutout 太少、原图还没多边形、远距离目标不真实、想用模型弱点反推下一轮数据——可以试试 ScenePaste v1.1。

GitHub: https://github.com/embed9669-alt/ScenePaste

欢迎 ⭐ / Issue / PR。

ScenePaste — Scene-first synthetic dataset generation for computer vision.

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐