开源了!ScenePaste:一个面向目标检测、分割和 OBB 的可控合成数据生成工具
开源了!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 / 负样本 |
| ④ Explorer | gif_04_explorer | 浏览生成图与 Detect/Seg/OBB 叠加 |
| ⑤ 数据闭环 | gif_05_data_loop | 难例 / QA / 对比 / 策展 / 分片 |
普通原图 / LabelMe
↓
抠图工作室(目录 + 缩略图)
↓
可视化拖拽 / Scene Template
↓
Object Appearance(单目标)
↓
批量套用 / 大规模多进程生成
↓
Scene Recipe(整图相机域)
↓
Explorer / QA / Hard Mining
⓪ 抠图工作室(新)
很多项目卡在「还没多边形」。GUI 打开 抠图工作室…:
- 打开文件夹… → 左侧显示目录路径、缩略图列表
- 选模型(rembg / SAM2 点选 / GroundingSAM2)→ 下载并加载(进度可见,国内可勾 hf-mirror)
- 设类别名 → 手绘 / 点一下分割 / 自动抠图 → 保存为 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) |
| 边缘 Blend | alpha / 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 + 近大远小。
一张图多任务:
| Detect | Seg | OBB | Semantic | COCO |
|---|---|---|---|---|
| YOLO 框 | 多边形 | 旋转框 | PNG mask | instances |

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.
更多推荐
所有评论(0)