| | |
| | | run metadata. It remains independent of all drone products and is local-only on |
| | | `6xxx` loopback ports. |
| | | |
| | | The point-cloud workflow also exposes read-only `GET /api/3d-pointcloud/tasks` |
| | | and `GET /api/3d-pointcloud/artifact-health`. Annotation-source preparation, |
| | | training, model inference, and automatic annotation write console-owned task |
| | | snapshots under `shared/outputs/05-3d-pointcloud/task-state/`. A local service |
| | | restart changes queued/running snapshots to `interrupted`, preserving inputs and |
| | | artifacts without claiming an in-memory worker continued. The task centre polls |
| | | active work, while artifact health strictly and read-only validates expected |
| | | model, inference, automatic-annotation, and annotation-revision artifacts. |
| | | |
| | | The same case library also discovers completed photo-SfM and CPU-MVS result |
| | | directories. Sparse SfM cases use an interactive `THREE.Points` vertex viewer |
| | | with registration statistics, local poses and input manifest; vertices are never |
| | |
| | | display rotations about the model centre. It never changes the original point |
| | | cloud or stored annotation indices; picking and rectangle selection follow the |
| | | currently displayed orientation. |
| | | The viewer loads and renders every point contained in the selected annotation |
| | | source directly. It does not switch to a zoom-dependent local detail layer, and |
| | | point indices stay stable for browsing, manual labels, saved revisions, and |
| | | training. Large sources consume correspondingly more browser memory and GPU |
| | | resources. |
| | | The viewer keeps the overview point order and annotation indices stable for |
| | | browsing, manual labels, saved revisions, and training. Its optional local |
| | | detail layer is view-only; it never changes the labels or index contract. Large |
| | | PLY decoding yields to browser frames every 200,000 points and uses a lower |
| | | pixel-ratio cap to reduce GPU pressure. Undo, redo, and keyboard undo/redo are |
| | | available without altering source point positions. |
| | | New annotation PLY/PCD/XYZ/LAS/LAZ uploads run a dedicated preview-only CPU |
| | | step. It preserves every readable finite XYZ and available vertex RGB point |
| | | and does not run the DSM, raster/vector, mesh, or rule-semantic pipeline. A |
| | | source without vertex RGB remains viewable with a neutral preview but cannot be |
| | | sent to the current RGB semantic-model trainer. |
| | | Textured-mesh ZIP bundles are prepared separately: the PLY's face UVs and its |
| | | referenced JPG/PNG tiles are baked into sampled face-centre RGB/XYZ points. A |
| | | small visual-validation source is exposed in the normal annotation-source list |
| | | before a larger training source is materialized. |
| | | The same Add annotation source modal now has a **Textured mesh** mode for one |
| | | binary little-endian PLY that declares face UVs and `TextureFile` image tiles, |
| | | plus all matching JPG/PNG tiles selected from the exported folder. The console |
| | | checks every declared image basename against the selected files, preserves raw |
| | | bytes, creates an internal processed ZIP, and runs the fixed CPU texture baker. |
| | | The resulting sampled face-centre RGB/XYZ PLY appears in the normal annotation |
| | | source list and can enter the existing review/training workflow. It is not a |
| | | path for ordinary photos or a claim of semantic ground truth; `.frag` files are |
| | | not required for the validated PLY + JPG/PNG contract. |
| | | |
| | | Sparse point-cloud, semantic-classification, supervised-prediction, and mesh |
| | | previews use the same viewer controls: local X/Y/Z orientation, click-to-set |
| | |
| | | candidate, especially for the current pole/tower class, not asset inventory or |
| | | an inspection conclusion. |
| | | |
| | | For ordinary RGB/XYZ annotation sources, the same workspace provides a |
| | | **concentrated training dataset** selector. It accepts one saved immutable |
| | | revision from each of two to 24 different sources, checks source and revision |
| | | integrity on the server, maps classes by their stable English keys, and starts a |
| | | single fixed-environment CPU/GPU job. One source cannot contribute two versions |
| | | to the same dataset. Each source is split independently into local XY |
| | | train/validation/test blocks before aggregation; all selected classes must |
| | | appear across every aggregate split and still total at least 500 confirmed |
| | | points. Multi-view photo-feature revisions remain single-source and cannot be |
| | | mixed with RGB/XYZ revisions. The resulting model directory contains |
| | | `training_dataset.json` and `metrics.json` provenance for every selected source; |
| | | the prediction preview shows only the first selected local-coordinate source. |
| | | |
| | | For an already selected annotation source, **Automatic annotation current |
| | | source** uses the selected local model without a second upload. Its asynchronous |
| | | candidate artifact records source/model checksums, class predictions, and |
| | | per-point confidence after a user-selected threshold. The completed run exposes an in-console, class-coloured prediction preview and predicted/high-confidence per-class counts for review. Brush/rectangle review can reject candidates or correct their classes, saving an independent correction draft. It remains separate from |
| | | per-point confidence after a user-selected threshold. The completed run exposes an in-console, class-coloured prediction preview and predicted/high-confidence per-class counts for review. A visible **Reject candidates** control selects exclusion mode for brush/rectangle review; selecting another class corrects candidate classes. The toolbar reports rejected and reclassified counts, and **Save candidate corrections** stores an independent correction draft. It remains separate from |
| | | human truth until **Confirm merge candidates** is pressed; the merge applies candidates, review corrections, then existing human labels as the highest priority, and creates a new annotation revision for |
| | | the next training cycle. |
| | | |
| | | The 3D point-cloud capability is presented as four focused workspaces rather |
| | | than one long mixed result page: |
| | | The 3D point-cloud capability is presented through three focused top-level |
| | | workspaces rather than one long mixed result page: |
| | | |
| | | 1. **Photo 3D reconstruction**: JPG/JPEG input, sparse/dense reconstruction, |
| | | mesh, texture, and photo-reconstruction cases only. |
| | | 2. **Point-cloud geometry processing**: PLY/PCD/XYZ/LAS/LAZ input, DSM, |
| | | elevated-surface raster/vector, approximate mesh, and geometry downloads. |
| | | 3. **Point-cloud semantic classification**: classification cases, coloured |
| | | point preview, semantic LAS/CSV/GeoJSON and review-only rule outputs. |
| | | 4. **Annotation, training, and model application**: RGB annotation source, |
| | | annotation revisions, automatic GPU/CPU training, training metrics, and applying a trained |
| | | model to a new RGB cloud. |
| | | 3. **Point-cloud semantic classification**: one business entry with a |
| | | left-side secondary navigation: **Semantic classification**, **Annotation |
| | | workbench**, **Automatic-annotation review**, **Training dataset**, **Model |
| | | centre**, and **Tasks and records**. Semantic classification offers a |
| | | **Rule screening** route for rapid CPU candidates and a **Trained model** |
| | | route for completed supervised models. Both create discoverable semantic |
| | | cases, coloured point previews and downloadable classification artifacts; |
| | | all output remains subject to human review and feedback into annotation. A |
| | | completed trained-model result prepares a complete observed-RGB/XYZ |
| | | `human-review-source.ply` and offers **Start human review** for correction |
| | | and a new immutable revision. Annotation, automatic-review correction, |
| | | concentrated training, model application, durable task status, and artifact |
| | | health are intentionally separate steps in this secondary navigation. The |
| | | classified LAS remains available for download and is never parsed by the |
| | | PLY annotation viewer. |
| | | |
| | | Each workspace filters the case library to its own purpose. A point-cloud run |
| | | Each top-level workspace filters the case library to its own purpose. A point-cloud run |
| | | may appear in both geometry and semantic workspaces because it has both output |
| | | families, but the pages never render the unrelated result bands together. The |
| | | model workspace deliberately uses its generated annotation sources and trained |
| | |
| | | visual UI, map, image, or 3D acceptance check, the requested interaction is |
| | | specified to the user and the user provides the screenshot; build, HTTP, |
| | | artifact, and automated checks remain independent evidence. |
| | | |
| | | ### Point-cloud annotation display colours |
| | | |
| | | The **Manage label classes** dialog separates class creation from existing |
| | | classes and lets users adjust the display colour of any class, including a |
| | | built-in class. This updates only the local workbench taxonomy colour. It does |
| | | not change a class code, stable English key, saved annotation point indices, |
| | | saved annotation schema, model weights, model metrics, or historical prediction |
| | | artefacts. Built-in classes remain non-removable; a custom class used by a saved |
| | | revision remains non-removable. |
| | | |
| | | New trained-model and automatic-annotation preview PLYs also carry an explicit |
| | | LAS-compatible `classification` vertex property. Review resolves that stable |
| | | property first and uses the current taxonomy only for display, so later colour |
| | | changes cannot reinterpret automatic-annotation candidates. Older preview files |
| | | without that property use their immutable inference-metadata colour snapshot |
| | | for compatibility, not the current editable display colour. |