TASK 51 slice 2: Blur — background at 1/4 res, 3 separable box passes (~gaussian, radius by strength), mask-blended; person untouched; Remove gains strength = edge feather; mask computed once, rendered per effect (Unit: bg blur)
This commit is contained in:
@@ -57,7 +57,8 @@ delivery shape changed:
|
||||
obs-backgroundremoval code (GPL-3.0) — referenced for approach only (ONNX Runtime, CPU, 2 threads).
|
||||
- ✅ `Microsoft.ML.OnnxRuntime` 1.31.0, CPU EP (`OnnxPersonSegmenter`). Failing load/run →
|
||||
logs once, returns null, caller passes through. DirectML still optional/later.
|
||||
- ☐ Blur = **separable in-app blur** (box/gaussian) over the masked background region — slice 2.
|
||||
- ✅ **Blur (slice 2, 2026-10-09):** background box-averaged to ¼ res, 3 separable box-blur passes
|
||||
(≈ gaussian, radius by strength), mask-blended back; person pixels untouched (`BackgroundEffectProcessor.ApplyBlur`).
|
||||
- ✅ Remove = alpha = mask outside the person (`BackgroundEffectProcessor`), `IsOpaque = false`.
|
||||
The compositor already alpha-blends per element — no compositor change expected (confirm in
|
||||
the hookup slice).
|
||||
@@ -87,7 +88,7 @@ delivery shape changed:
|
||||
- ☐ Assert the **processed frame reaches both consumers** (preview bitmap + compositor frame).
|
||||
- ✅ `None` = same-instance passthrough of the raw frame (`BackgroundEffectEngineTests`).
|
||||
- ✅ `Remove` = alpha 0 outside the person, RGB untouched, non-opaque (`BackgroundEffectEngineTests`);
|
||||
☐ `Blur` = background region blurred, person sharp.
|
||||
✅ `Blur` = background smoothed, person pixel-identical (`BackgroundEffectEngineTests`).
|
||||
- ✅ **Bundled-model contract:** the embedded ONNX model through the C# preprocessing reproduces
|
||||
MediaPipe's reference mask on a fixture (≥99.5% agreement). This is a fixed, deterministic
|
||||
contract check of the shipped bytes — not a camera/lighting quality test.
|
||||
@@ -102,7 +103,7 @@ delivery shape changed:
|
||||
## 4. Sequencing
|
||||
|
||||
- ✅ Separate work unit after the zoom build (zoom shipped 2026-10-08).
|
||||
- Slice order: 1 engine ✅ → 2 Blur → 3 config + persistence → 4 camera-path hookup (one
|
||||
- Slice order: 1 engine ✅ → 2 Blur ✅ → 3 config + persistence → 4 camera-path hookup (one
|
||||
processing point, both consumers) + perf check → 5 properties-panel UI.
|
||||
|
||||
## Related (not duplicated here)
|
||||
|
||||
Reference in New Issue
Block a user