restructure project

This commit is contained in:
Yaojia Wang
2026-01-27 23:58:17 +01:00
parent 58bf75db68
commit d6550375b0
230 changed files with 5513 additions and 1756 deletions

54
docs/training-flow.mmd Normal file
View File

@@ -0,0 +1,54 @@
flowchart TD
A[CLI Entry Point\nsrc/cli/train.py] --> B[Parse Arguments\n--model, --epochs, --batch, --imgsz, etc.]
B --> C[Connect PostgreSQL\nDB_HOST / DB_NAME / DB_PASSWORD]
C --> D[Load Data from DB\nsrc/yolo/db_dataset.py]
D --> D1[Scan temp/doc_id/images/\nfor rendered PNGs]
D --> D2[Batch load field_results\nfrom database - batch 500]
D1 --> E[Create DBYOLODataset]
D2 --> E
E --> F[Split Train/Val/Test\n80% / 10% / 10%\nDocument-level, seed=42]
F --> G[Export to YOLO Format]
G --> G1[Copy images to\ntrain/val/test dirs]
G --> G2[Generate .txt labels\nclass x_center y_center w h]
G --> G3[Generate dataset.yaml\n+ classes.txt]
G --> G4[Coordinate Conversion\nPDF points 72DPI -> render DPI\nNormalize to 0-1]
G1 --> H{--export-only?}
G2 --> H
G3 --> H
G4 --> H
H -- Yes --> Z[Done - Dataset exported]
H -- No --> I[Load YOLO Model]
I --> I1{--resume?}
I1 -- Yes --> I2[Load last.pt checkpoint]
I1 -- No --> I3[Load pretrained model\ne.g. yolo11n.pt]
I2 --> J[Configure Training]
I3 --> J
J --> J1[Conservative Augmentation\nrotation=5 deg, translate=5%\nno flip, no mosaic, no mixup]
J --> J2[imgsz=1280, pretrained=True]
J1 --> K[model.train\nUltralytics Training Loop]
J2 --> K
K --> L[Training Outputs\nruns/train/name/]
L --> L1[weights/best.pt\nweights/last.pt]
L --> L2[results.csv + results.png\nTraining curves]
L --> L3[PR curves, F1 curves\nConfusion matrix]
L1 --> M[Test Set Validation\nmodel.val split=test]
M --> N[Report Metrics\nmAP@0.5 = 93.5%\nmAP@0.5-0.95]
N --> O[Close DB Connection]
style A fill:#4a90d9,color:#fff
style K fill:#e67e22,color:#fff
style N fill:#27ae60,color:#fff
style Z fill:#95a5a6,color:#fff