Files
Seg_Data_Server_Net/README.md

117 lines
4.4 KiB
Markdown

# Seg Data Server Net
Modular web control plane for the existing Seg image segmentation workspace.
The platform keeps the current training and analysis scripts as the compute
core, then adds:
- a FastAPI backend for catalog discovery, job orchestration, logs, results,
GPU status, and weight management;
- a React/Vite frontend for launching jobs and inspecting progress;
- a unified `weights/` area with a generated manifest for `.pt`, `.pth`,
`.onnx`, and `.engine` assets.
## Layout
```text
Seg_Data_Server_Net/
backend/ FastAPI API, job runner, module wrappers
frontend/ React + Vite operator UI
scripts/ helper scripts for running services and syncing weights
weights/ copied model weights and manifest.json
```
## Quick Start
```bash
cd Seg_Data_Server_Net
cp .env.example .env
# Backend. The deployment env is seg_smp so the API and task wrappers share
# the same segmentation dependency stack.
conda run -n seg_smp uvicorn app.main:app --app-dir backend --host 0.0.0.0 --port 8010
# Frontend.
cd frontend
npm install
npm run dev -- --host 0.0.0.0
```
Open the Vite URL shown in the terminal. The frontend expects the backend at
`http://localhost:8010` by default.
The web UI includes a dataset bench for creating upload workspaces, uploading
images/labels/masks, and jumping into the existing rename, PNG conversion,
resize, pair-check, label rebuild, transparent overlay, stitch, and video-frame
jobs. Segmentation previews, YOLO heatmaps, and loss/metric artifacts are
grouped on the results dashboard.
The coverage panel calls `GET /api/coverage` and verifies that the user-facing
scripts from the existing `Seg/` workspace are mapped to web jobs. MMSeg
vendored internals, docs, build outputs, converters, and config templates are
classified as supporting artifacts rather than direct web actions.
The same panel can run `POST /api/acceptance/smoke`, a lightweight live smoke
that creates an upload dataset, uploads a label, downloads it through the
artifact API, runs a mock job, checks SSE log streaming, and executes one
legacy image/label overlay job on tiny generated PNGs.
## Weight Sync
The current workspace contains tens of GB of pretrained and trained weights.
They are copied into `weights/files/<original-relative-path>` and indexed in
`weights/manifest.json`.
```bash
cd Seg_Data_Server_Net
python scripts/sync_weights.py --mode copy --hash
```
Weights must remain local to the deployment machine. Do not push `.pt`, `.pth`,
`.onnx`, `.engine`, or `weights/files/` into Gitea. The repository stores only
code, `weights/manifest.json`, and helper scripts. Before pushing, run:
```bash
scripts/check_no_weight_git.sh
```
If a deployment machine needs weights, run the sync command locally on that
machine after cloning the code.
## Job Types
The backend exposes all current Seg capabilities as job types. Examples:
- `dataset.rename`, `dataset.resize`, `dataset.pair`, `dataset.rebuild_labels`,
`dataset.stack`, `dataset.stitch`, `dataset.video_frames`,
`dataset.yolo_check_pairs`, `dataset.yolo_stack`, `dataset.yolo_txt_sort`,
`dataset.yolo_convert_png`, `dataset.yolo_resize`
- `segmodel.train`, `segmodel.batch_train`, `segmodel.predict`,
`segmodel.batch_predict`, `segmodel.flops`, `segmodel.params_flops`,
`segmodel.benchmark`, `segmodel.raw_mask_check`
- `yolo.train`, `yolo.batch_train`, `yolo.predict`, `yolo.batch_predict`,
`yolo.heatmap`, `yolo.compare`, `yolo.raw_mask_check`, `yolo.video_visible`
- `mmseg.generate_data`, `mmseg.generate_alg`, `mmseg.train`,
`mmseg.metrics`, `mmseg.flops_fps`, `mmseg.draw`, `mmseg.extract_loss_miou`
- `visual.train`, `visual.inference`, `visual.fps`,
`visual.yolo11_heatmap_v1`, `visual.yolo11_heatmap_v2`, `visual.deal_labels`
- `analysis.all`, `system.backup`, `mock.echo`
Use `GET /api/catalog` to inspect supported models, algorithms, datasets, and
task types discovered from the existing `Seg/` workspace.
Use `GET /api/coverage` to inspect script-to-task coverage and task
buildability.
## Agents
Run the local evaluation and validation agents before publishing changes:
```bash
PYTHONPATH=backend conda run -n seg_smp python scripts/run_agents.py --build
```
The validation agent checks catalog coverage, the new `seg_smp` env, GPU
visibility, no-weight Git safety, backend tests, frontend build, and live
backend/frontend endpoints when the services are running. With live validation
enabled it also runs the lightweight acceptance smoke above.