Дата: 2026-08-11.
Текущий primitive/text pipeline дополнен Mask R-CNN instance proposals для объектов внутри фотографии. Primitive и semantic candidates объединяются в общий pool; controller последовательно принимает наиболее уверенные маски, отбрасывает дубли, contained masks и background-like регионы, затем явно останавливается по порогу или исчерпанию кандидатов.
Каждое решение сохраняется в selection_trace вместе с mask, score и причиной
accepted, rejected, stop или skipped. Это диагностический контракт для
будущего обучаемого ranker и beam search.
| Case | Ожидаемый объект | Принятые semantic layers | Semantic runtime | E2E runtime |
|---|---|---|---|---|
| Portrait photo | person | person | 1.53 с | 13.75 с |
| Product photo | bottle | bottle | 1.59 с | 11.58 с |
| Northern coast | none | none | 1.41 с | 11.41 с |
| Fashion poster | person | person, card-like book mask |
1.29 с | 10.40 с |
Итого на этом малом smoke set:
- primary-object label recall: 1.00 (3/3);
- semantic false positives на empty case: 0;
- среднее время semantic detector: 1.45 с на CPU;
- среднее end-to-end время: 11.78 с;
- большой ошибочный primitive подиума/стола корректно отклоняется как
background_like_border_region.
Это не статистически значимый real-world benchmark. Он подтверждает работоспособность архитектуры и закрывает конкретный прежний провал: человек и продукт внутри фотографии теперь становятся отдельными RGBA nodes, а не остаются навсегда запечёнными в фоне.
- photo object discovery больше не ограничен k-means и контурами;
- корректный stop на фотографии пейзажа без foreground object;
- несколько объектов сцены могут быть приняты последовательно;
- UI показывает весь ход принятия решения, включая hard negatives;
- semantic checkpoint не хранится в git и является optional dependency: без него pipeline деградирует в primitive/text-only режим.
- Mask R-CNN знает только категории COCO и иногда неверно называет design card
book; маска при этом может оставаться полезной; - alpha лучше бинарной contour mask, но ещё не является настоящим matting;
- OpenCV Telea плохо восстанавливает большой фон после удаления человека или продукта: move/delete previews честно показывают smear artifacts;
- эвристический selector пока не предсказывает z-order и не выполняет rollback по edit-replay quality;
- текущий benchmark слишком мал; следующий gate — 100 real-world изображений с ручной разметкой полезных слоёв.
- Подключить trimap + ViTMatte либо сопоставимый alpha refiner.
- Заменить Telea на LaMa baseline и оценивать delete/move replay.
- Генерировать synthetic trajectories с 3–10 RGBA-объектами и известным z-order.
- Обучить next-layer ranker и stop head на accepted/rejected candidates.
- Заменить COCO-only detector на SAM 3.1 на CUDA либо class-agnostic SAM 2 backend после отдельного latency/recall сравнения.
Полные цифры лежат в metrics.json; тяжёлые воспроизводимые bundles находятся
в игнорируемой папке results/.