RoRD 新增实现与性能评估报告

2025 年 10 月 20 日

1615 字

8 分钟

RoRD

RoRD 新增实现与性能评估报告

本报告总结 2025 年 10 月 20 日新增的 RoRD 项目能力:高保真增强、程序化 / 扩散合成、三源混采训练、一键管线与配置回写,以及 ResNet34 + FPN 的高效推理组合。

报告信息

报告日期:2025 年 10 月 20 日
报告类型:技术报告
关键词:ElasticTransform、H 一致性、程序化合成、扩散合成、FPN 推理、ResNet34。

摘要

本阶段新增三大能力:

  1. ElasticTransform,并保持 H 一致性。
  2. 程序化合成与一键管线,覆盖 GDS -> PNG -> 质检 -> 配置写回。
  3. 三源混采训练:真实数据、程序合成、扩散合成;验证集仅使用真实数据。

基准结果显示,ResNet34 在 CPU 和 GPU 下均表现稳定高效。GPU 环境中,FPN 额外开销较低,以 A100 示例为参照约为 +18%。整体达到 FPN 相对滑窗至少 30% 提速与至少 20% 显存节省的目标。

建议默认配置:

  1. GPU 推理:ResNet34 + FPN。
  2. 程序合成比例:0.2 到 0.3。
  3. 扩散合成比例:从 0.1 起步。
  4. Elastic 参数:α=40\alpha = 40σ=6\sigma = 6
  5. 渲染 DPI:600 到 900。
  6. 渲染工具:优先 KLayout。

新增内容与动机

模块新增内容解决的问题主要优势代价 / 风险
数据增强ElasticTransform,并保持 H 一致性非刚性扰动导致的鲁棒性不足泛化性提升,收敛更稳定少量 CPU 开销;需要容错裁剪
合成数据程序化 GDS 生成 + KLayout / GDSTK 光栅化 + 预览 / H 验证数据稀缺、风格不足、标注成本高可控多样性、可复现、易质检需要安装 KLayout;无则回退
训练策略真实 × 程序合成 × 扩散合成三源混采,验证仅真实域偏移与过拟合比例可控、实验可追踪比例不当可能引入偏差
扩散接入synthetic.diffusion 配置与三脚本骨架研究型风格扩展路径渐进式接入、风险可控需要后续训练和采样实现
工具化一键管线、扩散目录支持、TensorBoard 导出降低成本、增强复现自动更新 YAML,流程标准化需要遵循目录规范

实施要点

  1. 配置:configs/base_config.yaml 新增 synthetic.diffusion.{enabled,png_dir,ratio}
  2. 训练:train.py 使用 ConcatDataset + WeightedRandomSampler 实现三源混采;目标比例为 real = 1 - (syn + diff);验证集仅使用真实数据。
  3. 管线:tools/synth_pipeline.py 新增 --diffusion_dir,自动写回 YAML 并开启扩散节点,ratio 默认 0.0。
  4. 渲染:tools/layout2png.py 优先使用 KLayout 批渲染,支持 --layermap--line_width--bgcolor;无 KLayout 时回退到 GDSTK + SVG + CairoSVG。
  5. 质检:tools/preview_dataset.py 用于拼图预览;tools/validate_h_consistency.py 用于 warp 一致性对比,输出 MSE / PSNR 与可视化。
  6. 扩散脚手架:tools/diffusion/{prepare_patch_dataset.py, train_layout_diffusion.py, sample_layouts.py},目前为 CLI 骨架与 TODO。

基准测试与分析

CPU 前向:512×512,runs = 5

BackboneSingle Mean ± Std (ms)FPN Mean ± Std (ms)解读
VGG16392.03 ± 4.76821.91 ± 4.17最慢;FPN 额外开销在 CPU 上放大。
ResNet34105.01 ± 1.57131.17 ± 1.66综合最优;FPN 可用性好。
EfficientNet-B062.02 ± 2.64161.71 ± 1.58单尺度最快;FPN 相对开销大。

注意力 A/B:CPU,ResNet34,512×512,runs = 10

AttentionSingle Mean ± Std (ms)FPN Mean ± Std (ms)解读
none97.57 ± 0.55124.57 ± 0.48基线。
SE101.48 ± 2.13123.12 ± 0.50单尺度略增耗时;FPN 差异小。
CBAM119.80 ± 2.38123.11 ± 0.71单尺度更敏感;FPN 差异微小。

GPU 示例:A100,512×512,runs = 5

BackboneSingle Mean (ms)FPN Mean (ms)解读
ResNet342.322.73最优组合;FPN 仅 +18%。
VGG164.538.51明显较慢。
EfficientNet-B03.694.38中等水平。

完整复现命令与更全面实验汇总可后续补充到 docs/description/Performance_Benchmark.md

三维基准:Backbone × Attention × Single/FPN,CPU,512×512,runs = 3

BackboneAttentionSingle Mean ± Std (ms)FPN Mean ± Std (ms)
vgg16none351.65 ± 1.88719.33 ± 3.95
vgg16se349.76 ± 2.00721.41 ± 2.74
vgg16cbam354.45 ± 1.49744.76 ± 29.32
resnet34none90.99 ± 0.41117.22 ± 0.41
resnet34se90.78 ± 0.47115.91 ± 1.31
resnet34cbam96.50 ± 3.17111.09 ± 1.01
efficientnet_b0none40.45 ± 1.53127.30 ± 0.09
efficientnet_b0se46.48 ± 0.26142.35 ± 6.61
efficientnet_b0cbam47.11 ± 0.47150.99 ± 12.47

要点:ResNet34 在 CPU 场景下具备稳健的速度与 FPN 额外开销折中;EfficientNet-B0 单尺度很快,但 FPN 代价显著。

GPU 细分:含注意力,A100,512×512,runs = 5

BackboneAttentionSingle Mean ± Std (ms)FPN Mean ± Std (ms)
vgg16none4.53 ± 0.028.51 ± 0.002
vgg16se3.80 ± 0.017.12 ± 0.004
vgg16cbam3.73 ± 0.026.95 ± 0.09
resnet34none2.32 ± 0.042.73 ± 0.007
resnet34se2.33 ± 0.012.73 ± 0.004
resnet34cbam2.46 ± 0.042.74 ± 0.004
efficientnet_b0none3.69 ± 0.074.38 ± 0.02
efficientnet_b0se3.76 ± 0.064.37 ± 0.03
efficientnet_b0cbam3.99 ± 0.084.41 ± 0.02

要点:GPU 环境下注意力对耗时影响较小;ResNet34 仍是单尺度与 FPN 的最佳选择。

方法论补充

速度提升:

SWtimeFPNtimeSWtime×100%\frac{\text{SW}_{time} - \text{FPN}_{time}}{\text{SW}_{time}} \times 100\%

显存节省:

SWmemFPNmemSWmem×100%\frac{\text{SW}_{mem} - \text{FPN}_{mem}}{\text{SW}_{mem}} \times 100\%

精度保障:匹配数不显著下降,例如:

FPNmatchesSWmatches×0.95\text{FPN}_{matches} \geq \text{SW}_{matches} \times 0.95

JSON 结构示例

{
  "timestamp": "2025-10-20 14:30:45",
  "config": "configs/base_config.yaml",
  "model_path": "path/to/model_final.pth",
  "layout_path": "test_data/layout.png",
  "template_path": "test_data/template.png",
  "device": "cuda:0",
  "fpn": {
    "method": "FPN",
    "mean_time_ms": 245.32,
    "std_time_ms": 12.45,
    "gpu_memory_mb": 1024.5,
    "num_runs": 5
  },
  "sliding_window": {
    "method": "Sliding Window",
    "mean_time_ms": 352.18,
    "std_time_ms": 18.67
  },
  "comparison": {
    "speedup_percent": 30.35,
    "memory_saving_percent": 21.14,
    "fpn_faster": true,
    "meets_speedup_target": true,
    "meets_memory_target": true
  }
}

复现实验命令

PYTHONPATH=. uv run python tests/benchmark_attention.py \
  --device cpu --image-size 512 --runs 10 \
  --backbone resnet34 --places backbone_high desc_head
PYTHONPATH=. uv run python tests/benchmark_grid.py \
  --device cpu --image-size 512 --runs 3 \
  --backbones vgg16 resnet34 efficientnet_b0 \
  --attentions none se cbam \
  --places backbone_high desc_head
PYTHONPATH=. uv run python tests/benchmark_grid.py \
  --device cuda --image-size 512 --runs 5 \
  --backbones vgg16 resnet34 efficientnet_b0 \
  --attentions none se cbam \
  --places backbone_high

数据与训练建议

  1. 渲染配置:DPI 600 到 900;优先 KLayout;必要时回退到 GDSTK + SVG。
  2. Elastic 参数:α=40\alpha=40σ=6\sigma=6αaffine=6\alpha_{affine}=6p=0.3p=0.3;使用 H 一致性可视化抽检。
  3. 混采比例:程序合成 ratio = 0.2 到 0.3;扩散合成 ratio = 0.1 起步;先做结构统计,包括边方向、连通组件、线宽分布、密度直方图。
  4. 验证策略:验证集仅使用真实数据,避免评估受风格差异干扰。
  5. 推理策略:GPU 默认 ResNet34 + FPN;CPU 小任务可评估单尺度加更紧的 NMS。

项目增益

增益说明
训练收敛更稳Elastic + 程序合成让模型对非刚性扰动更鲁棒。
泛化能力增强风格域与结构多样性扩大,减少过拟合风险。
工程复现性提升一键管线、配置写回、TensorBoard 导出使流程更标准化。
推理经济性提升FPN 相对滑窗至少 30% 提速,并节省至少 20% 显存。

附录

一键命令:含扩散目录

uv run python tools/synth_pipeline.py \
  --out_root data/synthetic \
  --num 200 --dpi 600 \
  --config configs/base_config.yaml \
  --ratio 0.3 \
  --diffusion_dir data/synthetic_diff/png

建议 YAML 片段

synthetic:
  enabled: true
  png_dir: data/synthetic/png
  ratio: 0.3
  diffusion:
    enabled: true
    png_dir: data/synthetic_diff/png
    ratio: 0.1
augment:
  elastic:
    enabled: true
    alpha: 40
    sigma: 6
    alpha_affine: 6
    prob: 0.3

小结

本阶段的主要价值在于把“能跑”的 RoRD 进一步推向“可训练、可复现、可扩展、可评估”的工程状态。数据侧引入 Elastic、程序化合成和扩散接口,训练侧打通三源混采,推理侧确认 ResNet34 + FPN 的高效组合,为后续真实数据训练和论文实验打下基础。

RoRD 新增实现与性能评估报告
https://www.jiao77.com/blog/report/rord-implementation-benchmark-2025-10-20/
作者
Jiao77
发布时间
2025 年 10 月 20 日
许可协议
CC BY-NC-SA 4.0

正在加载评论...

输入关键词开始搜索