Добавил фильтров и общий рефакторинг

This commit is contained in:
2026-04-23 16:52:22 +03:00
parent e0f72ba288
commit 64b54bbc56
25 changed files with 3891 additions and 190 deletions
+40 -5
View File
@@ -35,6 +35,26 @@
- `strategies`: конкретные стадии пайплайна (preprocess, transform, registration, reconstruction).
- `factories`: сборка `PipelineExecutor` из plugin-id и профиля.
## Pipeline Dashboard: UX и анализ цепочки
В dashboard реализованы инструменты для пошаговой настройки всей pipeline-цепочки (preprocess + reconstruction):
- **Категориальная палитра этапов**: фильтры сгруппированы по логике обработки
(`Обрезка -> NaN (предочистка) -> Условия/Индексы -> Шум -> Морфология -> Прореживание -> Сглаживание -> Нормали -> Реконструкция`), для каждого фильтра
доступны краткие подсказки.
- **Проверка порядка этапов**: при рискованной последовательности (например, когда
`OutlierRemoval` идет после `VoxelGrid`) показываются предупреждения и рекомендация.
- **Стартовые пресеты**: доступны шаблоны для типичных источников
(`LiDAR_scan`, `RGBD_camera`, `Synthetic_clean`) как отправная точка с возможностью
ручной донастройки.
- **Метрики между шагами**: показывается вклад каждого preprocess-этапа:
входные точки, выходные точки, сколько удалено и время шага в миллисекундах.
- **Единый редактор параметров**: и preprocess-стадии, и реконструкторы поверхности
настраиваются через одинаковые карточки и один диалог параметров.
Пер-шаговые метрики собираются на уровне `core::PipelineExecutor` и возвращаются через
`PipelineStats::preprocessStepMetrics`, чтобы данные были едиными для GUI и тестов.
### Профили выполнения
- `desktop_debug`: дефолтный профиль для GUI/отладки.
@@ -44,16 +64,31 @@
- `factories::pipeline::createPipelineExecutorForProfile("desktop_debug")`
- `factories::pipeline::createPipelineExecutorForProfile("rpi4_runtime")`
## Сборка
## Сборка и запуск в WSL
Пример для Qt 5.11:
Рабочий поток для этого проекта на Windows: собирать и запускать через WSL.
```bash
qmake DotsToSirface.pro
make
cd /mnt/d/yakupov/Projects/DotsToSirface/build-wsl
qmake ../DotsToSirface.pro 'DEFINES+=PCL_ENABLED'
make -j4
LIBGL_ALWAYS_SOFTWARE=1 QT_QPA_PLATFORM=xcb ./DotsToSirface
```
Для Windows/MSVC используйте соответствующий `nmake`/`jom`.
Примечания:
- `DEFINES+=PCL_ENABLED` включает PCL-стадии пайплайна.
- `LIBGL_ALWAYS_SOFTWARE=1` снижает риски графических артефактов в WSLg.
- `QT_QPA_PLATFORM=xcb` используется как стабильный backend для Qt в WSL.
Перезапуск после правок:
```bash
pkill -f '^./DotsToSirface$' || true
cd /mnt/d/yakupov/Projects/DotsToSirface/build-wsl
qmake ../DotsToSirface.pro 'DEFINES+=PCL_ENABLED'
make -j4
LIBGL_ALWAYS_SOFTWARE=1 QT_QPA_PLATFORM=xcb ./DotsToSirface
```
## Smoke tests (отдельный runner)