Руководство по GUI анализа изображений и CV pipeline
Это руководство описывает работу с панелью CV/AI в Screph и особенно подробно объясняет расширенный pipeline. Документ ориентирован на пользователя интерфейса: без внутренней реализации, но с практическими сценариями, понятной терминологией и пошаговой навигацией по GUI.
Основная CV-панель и её общий каталог методов доступны как часть полного продукта, а выбранный режим программы добавляет свою предметную семантику и workspace. «Общий» предназначен для нейтрального анализа изображений, «Автоматизация GUI» добавляет типы экранных элементов, markup refs, review и подтверждённое применение разметки, а «Промышленное зрение» и «Автономные беспилотники» — экспериментальные предметные задачи, кандидаты и evidence. Выберите режим в шапке Selector или в Общие настройки → Платформа разработки; границы режимов описаны в отдельной справке.
1. Что делает CV GUI
CV GUI помогает находить области на изображении, выделять маски и контуры, распознавать текст, объединять несколько шагов обработки и превращать результат в каноническую разметку проекта. Конкретные типы задач и кандидатов определяет выбранный режим программы.
Простой режим: выбрать один метод и настроить несколько параметров.
Линейный pipeline: собрать цепочку шагов один за другим.
Расширенный pipeline: собрать граф из методов, ветвлений, merge и runtime-inspector.
2. Базовый сценарий работы
Откройте изображение или выберите элемент/ROI на холсте.
Откройте панель CV/AI и выберите режим обработки.
Включите live preview для быстрых итераций или оставьте ручной Apply для тяжёлых методов.
Проверьте preview и overlay на холсте.
Выберите нужную границу: сохранить технический run, прикрепить mask/result к image series элемента или явно создать canonical elements.
Практический совет:
если вы не уверены, с чего начать, сначала ограничьте область интереса (ROI), а уже потом запускайте цветовую или сегментационную обработку. Это быстрее и обычно даёт меньше шума.
Несколько представлений одного проекта
Кнопка раскладки в панели меню может показать одну область A, две области A/B слева–справа или сверху–снизу, три области с A слева и B/C справа либо сетку A/B/C/D 2×2. Это не копии проекта: каноническая разметка, selection и project undo/redo у областей общие, а visual material и pane-local display settings могут быть разными.
В настройках каждой области можно изменить название, выбрать Source, рабочий CV-result, mask или diagnostic artifact, способ показа и crop source.
Кнопка Активировать задаёт область для Canvas tools и, по умолчанию, источник пикселей ROI. Запрос активации stale, unmapped или read-only presentation отклоняется; если уже активная область стала несовместимой, owner возвращается к A.
Linked panes синхронизируют zoom, центр viewport и canvas-курсор. A всегда является участником связанной группы; B/C/D можно отвязать. Read-only область может быть источником навигации, не становясь владельцем project interaction.
Поле Источник вырезки явно выбирает текущий instance или исходный Source.
Mask, diff/composite, display-only transform и stale/unmapped result не являются допустимым ROI input. Операция блокируется вместо скрытого возврата к Source.
Область A нельзя закрыть. B/C/D закрываются явно без удаления presentation; меньшая раскладка не удаляет их скрыто. Общий Reset назначает Source области A, активирует её, закрывает остальные области и возвращает single layout.
Варианты отображения Результат, Градации серого, Инверсия и Псевдоцвет меняют только визуализацию, а не material или recipe. Для сравнения оставьте Source в соседней связанной области.
Предобработка полного изображения
Откройте Source или существующее рабочее представление в нужной области.
Нажмите Настроить CV; для Source будет создано рабочее processed_raster представление.
В Анализ изображения → Обработка представления выберите метод или linear pipeline и нажмите Обновить представление.
У каждого рабочего представления собственные параметры. В его каталоге всегда действует Всё изображение; методы, которым нужны ROI, click, timeline, reference image или побочное изменение проекта, туда не включаются.
3. Основные части панели
Режим обработки:
выбор метода или pipeline.
Параметры метода:
динамическая форма с настройками выбранного метода.
Предпросмотр:
показывает, что именно вернул метод или pipeline.
Overlay:
накладывает маску и контуры на холст, чтобы вы сравнивали результат с исходным изображением.
Preset-ы:
сохраняют удачные наборы параметров.
Сохранение результатов:
отдельные действия для runtime archive, image series выбранного элемента и canonical markup.
Live preview / Auto / AI:Рисовка на лету пересчитывает результат при изменении параметров; 🔮 Авто подбирает параметры по изображению; AI выбор разрешает LLM предложить алгоритм. Для больших кадров и model-backed методов лучше использовать ручное Обновить превью.
Сессия и действия:
Применить запускает анализ и в основной панели обычно прикрепляет/заменяет cv_result в image series выбранного элемента; Сохранить пишет технический run в именованную CV-сессию; Добавить как элементы создаёт canonical elements, а Добавить маску в результаты добавляет отдельную mask entry.
Пипетка HSV:
берёт цвет из preview и заполняет H/S/V с допусками dH/dS/dV.
Text / OCR использует локальный Tesseract из ocr.runtime. YOLO, три SAM backend и OmniParser требуют отдельно готового ml.runtime и подходящих local model assets. Наличие пункта в списке методов означает доступность интерфейса, а не готовность runtime или уже загруженные веса. См. управление моделями и весами.
Применить не подтверждает CV candidate как geometry/semantic markup. Но explicit Apply в основной панели по умолчанию сохраняет визуальный result в image series выбранного элемента и записывает это изменение в project history; автоматический live-preview recalculation этого не делает. Добавить как элементы создаёт только canonical ScreenElement. Canonical feature или markup group появляются лишь в тех mode-specific review/apply путях, где это явно поддержано.
Кнопка настроек LLM открывает профиль роли CV. Model-backed и OCR-методы требуют соответствующих runtime-компонентов. LLM-подключения · Зависимости
4. Жизненный цикл CV-результата
Действие
Что создаётся
Меняет проект
Live preview
Рабочий preview/overlay и last-result state.
Нет автоматического сохранения при пересчёте параметров.
Применить / Apply
Новый анализ; в основной панели обычно verified artifact bundle и прикреплённый cv_result.
Image series выбранного элемента может измениться; canonical geometry/semantics — нет.
Сохранить / Save
Bundle текущего run и legacy/debug projection в именованной CV-сессии.
Не создаёт markup и само по себе не прикрепляет run к project element.
Добавить маску в результаты
Отдельная cv_mask entry с artifact metadata.
Да, image series элемента и project history.
Добавить как элементы
Rect/polygon elements из последних contours.
Да, explicit canonical markup mutation.
Mode review/apply
Принятое решение, apply preview/plan и target, разрешённый конкретным режимом.
Да, только после validation; apply транзакционный и пытается rollback при ошибке.
CV candidate, canonical markup и FeatureMatch
CV method сначала выдаёт result/evidence: preview, detections, contours, mask и metrics. Это ещё не объект Selector. Review связывает candidate с markup_candidate_id и создаёт accepted decision; затем готовятся patch и apply preview. Только явный apply после проверки target, revision и отсутствия дублей меняет canonical project.
Поверхность
Что реально создаётся
Граница готовности
General / GUI Automation
Текущий promotion UI принимает только canonical element; generic contract шире, но этот UI не создаёт feature/group.
element или region feature (DEFECT, MEASUREMENT_ZONE, TOLERANCE_REGION).
Candidate decision и confirmed apply есть, но workflow_ready=False; это не production review/export/control authority.
UAV
element, region feature (AOI/TILE/CHANGE_REGION) или typed TRACK_GROUP.
Есть transactional apply foundation, но workflow_ready=False; не mission control/GIS/dataset/export workflow.
FeatureMatch
Отдельная запись occurrence, ссылающаяся на уже существующий feature и хранящая bbox, score, target point и source.
Создаётся явным действием из Feature inspector. Ни live preview, ни CV-метод Feature Match не создают domain FeatureMatch автоматически: метод возвращает detections.
Проверка candidate и создание FeatureMatch — разные операции: первая продвигает evidence в canonical markup, вторая фиксирует конкретное найденное occurrence уже существующего feature. Это также разные записи project JSON и разные undo/redo mutations.
Verified bundle хранит source snapshot при его наличии, execution recipe, config snapshot, metrics, standard/extra outputs, SHA-256/size metadata, coordinate contracts и write report. Manifest публикуется только после успешной записи и readback всех обязательных ссылок.
Именованная CV-сессия — runtime archive в ScrephData/screen_selector/cv/results, а не второй project format. Список recent sessions содержит не более десяти ID, но это не retention файлов: автоматической очистки старых session directories здесь нет. При сохранении canonical project Selector импортирует только CV entries, прикреплённые к element image series, копирует их artifacts в <name>_artifacts и создаёт project-local result manifest. Неприкреплённый технический archive в package не попадает.
Workspace Video CV анализирует последовательность кадров Capture с durable source/timeline identity. Можно обработать выделенный диапазон, текущий clip, весь timeline, окно из 11 кадров вокруг playhead или live stream; направление задаётся отдельно. Pre-roll и post-roll расширяют offline-границы, шаг кадров прореживает вход, а масштаб 100/75/50/25% уменьшает нагрузку с нормализацией результата обратно в координаты источника.
Analysis ROI и exclusion areas привязаны к selection context. Если selection изменился, запуск блокируется до обновления контекста — старая ROI не применяется молча.
Live reader имеет очередь на четыре кадра и явную политику backpressure: reject, drop oldest или drop newest. Stop/cancel закрывает reader; gaps в offline sequence диагностируются и сбрасывают temporal processor.
Overlay разделён на motion, tracks, accepted markup, detections, optical flow, events и candidates. История запусков позволяет восстановить параметры, повторить run и перейти к проблеме.
Temporal providers
Встроенный registry включает UAV Sparse Camera Stabilization, OpenCV MOG2 Motion, MIL/CSRT/KCF trackers, Farneback Optical Flow, Activity Events, Native Scene Difference и conditional PySceneDetect Content. Недоступный provider выключается с причиной и repair action: CSRT/KCF требуют подходящий opencv-contrib, PySceneDetect — свою dependency. SAM 2.1 Prompt Mask Propagation сейчас является недоступным internal target будущего isolated worker, а не обычным рабочим backend.
Run, track apply и редактирование
Запустите provider и дождитесь completed, partial, cancelled или failed. Snapshot входа, config, provenance, coverage, issues и observations сохраняются в temporal run store.
Для tracker-run выберите track и подготовьте apply preview. План показывает observations/keyframes/lost states и ожидаемую revision, сохраняя manual/protected observations существующего track.
Подтвердите apply. Проект должен быть заранее сохранён или открыт: операция пишет Selector-owned sidecar <project>.temporal-markup.json с revision guard и project undo/redo.
После применения доступны manual keyframe из текущей ROI, удаление keyframe, trim/terminate, split, состояния occluded/outside, undo/redo, безопасный merge без неоднозначных пересечений, смена track ID и retrack от manual keyframe. Это явная prepare/apply граница temporal markup, а не автоматическое принятие всех observations.
Экспорт активного run
Neutral JSON содержит run/provider/status, hashes, coverage, provenance, config, observations и optional codegen IR из сохранённого recipe. Это данные, не исполняемый скрипт.
Annotated preview создаёт MJPG AVI по текущим полям start/end и timeline mapping, рисуя track и motion bounding boxes. Нужны положительный Capture FPS, каждый запрошенный кадр и рабочий OpenCV VideoWriter.
В основной панели зарегистрировано 28 пользовательских одиночных методов. Это реальные пункты выбора, а не число уникальных математических алгоритмов: например, MobileSAM, FastSAM и EfficientSAM — три backend одного семейства promptable segmentation.
Фильтры и цвет: Edges (Canny), Color (HSV), Color Mask (K-Means).
Текст и структура: Text / OCR, OmniParser, Hough Lines, Hough Circles, MSER, Connected Components, Contours, Adaptive Threshold.
GUI, reference и temporal: Template Match, Point Region Grow, Shape Analyze, Line/Rect Layout, Feature Match, Before/After Diff, Align To Reference, Target Track (KLT), UI Layout (Local), Visual ReID.
Для linear pipeline и method-flow graph дополнительно зарегистрировано 14 служебных узлов: Grayscale, Brightness/Contrast, Gamma, Gaussian Blur, Median Blur, CLAHE, Resize, Crop/Pad, Rotate, Deskew, Apply Mask to Image, Invert Mask, Morphology и Extract Contours. Они нужны для построения потока данных и поэтому не дублируются в списке одиночных методов.
Каталог рабочего представления уже. Full-image presentation включает только методы с безопасным exact-image/exact-mask контрактом. Template Match, Point Region Grow, Feature Match, Before/After Diff, Align To Reference, Target Track (KLT) и Visual ReID требуют reference, click, timeline или другого контекста и поэтому там не показываются.
Что меняет режим программы
General: 28 общих методов и 14 pipeline-узлов образуют нейтральный image-analysis каталог.
GUI Automation: использует общие CV-возможности и добавляет GUI-типы, markup refs, review draft и promotion patch. Это semantic/authoring layer, а не ещё 42 отдельных метода.
Industrial / UAV: имеют собственные pipeline-операции, но их каталоги смешивают CV, preprocessing, orchestration, decisions и export nodes. Эти workspace экспериментальны, поэтому число зарегистрированных шагов не следует читать как число production-ready алгоритмов.
7. Линейный pipeline
Линейный pipeline удобен, когда вам нужен предсказуемый поток без ветвлений: например, сначала выделить границы, потом очистить маску, потом извлечь контуры. Он проще для быстрого старта и легче переносится между проектами.
Каждый шаг исполняется сверху вниз.
Вы редактируете параметры одного шага за раз.
Панель preview шагов помогает понять, на каком этапе появился шум или потерялся объект.
Если цепочка остаётся линейной, её легко поддерживать и потом переносить в advanced mode.
8. Расширенный pipeline: подробное руководство
Расширенный pipeline предназначен для сложных сценариев, где обычной линейной цепочки уже недостаточно. Он позволяет строить полноценный граф обработки: использовать несколько веток, объединять результаты, держать отдельный preview-выход и смотреть runtime-трассу по шагам.
Когда переходить в расширенный режим
Нужно сравнить две разные ветки обработки одной и той же картинки.
Нужно выбрать один из вариантов по условию.
Нужно отдельно управлять результатом и предпросмотром.
Нужен runtime inspector, чтобы видеть payload каждого узла и каждой связи.
Важно:
расширенный режим экспериментальный. Пока у него свой draft-состояние, а линейный pipeline остаётся основным форматом, пока вы явно не примените обратно exportable graph.
Структура экрана advanced pipeline
Верхняя панель действий:
быстрые операции вроде Quick Add, Snippets, Auto Layout, Repair Graph, Apply to Linear.
Холст графа:
основная рабочая область с узлами, связями, комментариями и группами.
Правая колонка инспекторов:
сведения о выбранном объекте, payload, pinned inspector и selection preview.
Runtime debug область:
история выполнения, scrubber по шагам, diff, pinned runtime step и preview истории.
Validation / Search / Recommendations:
быстрый переход к проблемам, поиск по графу и рекомендации по исправлению.
Типы узлов
Source:
входное изображение, point prompt, константы.
Control:
условные узлы и merge для выбора или объединения веток.
Utility:
технические узлы вроде reroute, чтобы сделать граф чище.
Sink:
финальные точки вывода результата и preview.
В типичном графе всегда присутствуют как минимум Input Image и Result Output. Они задают начало и явную конечную точку потока. Если в графе несколько веток и нет явного result output, runtime может посчитать конфигурацию неоднозначной.
Как собирать граф на практике
Откройте вкладку Advanced рядом с линейным редактором.
Добавьте узлы через Quick Add или кнопку Add Node.
Соединяйте порты перетаскиванием от выхода к совместимому входу.
Если граф разрастается, используйте reroute и comment/group frames.
Для сложного ветвления вставляйте If и Merge узлы.
После изменений проверяйте validation panel и summary справа.
Рекомендуемый стартовый паттерн:
`Input Image -> один-два method nodes -> Result Output`. Сначала убедитесь, что этот скелет работает, и только потом добавляйте ветвление, merge и отдельный preview sink.
Редактирование и навигация
Delete удаляет выбранные узлы, связи или группы.
F2 переименовывает выбранный узел.
Ctrl+D дублирует выделение.
Tab или Space открывают Quick Add.
A запускает auto layout.
Ctrl+0 подгоняет масштаб под граф.
Runtime inspector: как читать выполнение графа
После запуска обработки расширенный pipeline сохраняет runtime-снимок. Он показывает не только итоговую картинку, но и то, что происходило в каждом узле: какие входы были доступны, что узел вернул, какая ветка условия была выбрана, и где появился warning или error.
Runtime scrubber:
переход между полным видом и отдельными runtime-шагами.
Current / Pinned step:
удобно сравнивать два состояния графа или две ветки выполнения.
Selection preview:
показывает preview именно выбранного узла или связи.
Payload inspector:
помогает понять, какой тип данных идёт по связи: image, mask, contours, detections, text.
Горячие клавиши runtime:
`Alt+Home` — к началу трассы, `Alt+Left/Right` — шаг назад/вперёд, `Alt+End` — полный вид.
Draft, синхронизация и применение к линейному pipeline
У advanced mode есть собственное состояние редактирования. Пока граф содержит ветвления, utility/control узлы или другие нелинейные конструкции, он может оставаться только advanced draft. Если же конфигурация остаётся linearly exportable, вы можете нажать Apply to Linear и вернуть её в обычный линейный pipeline.
Resync from Linear перезагружает граф из текущего линейного pipeline.
Apply to Linear записывает graph обратно в линейный формат, если это возможно.
Repair Graph предлагает безопасные исправления, если структура неполная или сломана.
9. Советы по производительности
Для тяжёлых графов выключайте live preview и запускайте Apply вручную.
Ограничивайте ROI перед сложной обработкой, если не нужен весь экран.
Используйте reroute и comment frames, чтобы не превращать граф в трудно читаемую “паутину”.
После крупных перестроений делайте Auto Layout и проверяйте validation summary.
10. Частые проблемы и что делать
Preview пустой:
проверьте, что граф заканчивается в Result Output или Preview sink и что у узлов есть совместимые входы.
Граф не применяется к linear:
обычно причина в ветвлении, merge, utility/control nodes или другом нелинейном фрагменте.
Слишком много шума:
уменьшите ROI, добавьте фильтрацию маски или разбейте задачу на несколько шагов вместо одного универсального метода.
Результат нестабилен между кадрами:
зафиксируйте область, уменьшите количество веток и проверяйте runtime trace по шагам, а не только итоговый preview.