bae705aa97
- Add NFC ePassport roadmap (ICAO 9303, eIDAS) - Add TensorFlow.js edge face detection (BlazeFace) - Add structured audit logger (GDPR-compliant) - Risk scoring support Part of KYC Apple Native UX v1.1.0
1715 lines
51 KiB
Markdown
1715 lines
51 KiB
Markdown
# 2026-06-28 — Landningssidor byggda
|
||
|
||
## Status
|
||
Byggt 37+ landningssidor för quiXzoom och Landvex. Alla optimerade med:
|
||
- Title ≤ 60 tecken
|
||
- H1 med varumärkesnamn
|
||
- Meta description
|
||
- Canonical URL
|
||
- SVG-ikoner (inga emojis)
|
||
- Mobilresponsiv design
|
||
|
||
## quiXzoom sidor (22+)
|
||
- bridge-inspection (SE/DE/UK)
|
||
- construction-progress (SE/DE/UK)
|
||
- infrastructure-monitoring (SE/DE/UK)
|
||
- ooh-audit (SE/DE/UK)
|
||
- property-documentation (SE/DE/UK)
|
||
- retail-audit (SE/DE/UK)
|
||
- storm-damage (SE/DE/UK)
|
||
- coastal-monitoring (SE)
|
||
|
||
## Landvex sidor (15+)
|
||
- commercial-intelligence (SE/DE/UK)
|
||
- contradiction-analysis (SE/DE/UK)
|
||
- infrastructure-intelligence (SE/DE/UK)
|
||
- risk-intelligence (SE/DE/UK)
|
||
- urban-intelligence (SE/DE/UK)
|
||
|
||
## Problem fixade
|
||
- Emojis borttagna, ersatta med SVG-ikoner
|
||
- Kontrast förbättrad (vit text på mörkblå bakgrund)
|
||
- Mobilanpassning: grid 3-col → 1-col på mobil
|
||
- Större textstorlekar på mobil
|
||
- Scroll-position: sidor startar i toppen
|
||
|
||
---
|
||
|
||
## 2026-06-28 (senare) — AWS Deploy & Object Identity Engine
|
||
|
||
### AWS Deploy
|
||
Deployat QUIXZOOM-stack på AWS EC2:
|
||
- **PostgreSQL** (port 5433) — med schema (zoomers, objects, observations, events)
|
||
- **Neo4j** (port 7474/7687) — grafdatabas
|
||
- **Redis** (port 6380) — caching
|
||
- **API** (port 3001) — Express.js med endpoints: /health, /stats, /objects
|
||
|
||
### Object Identity Engine (OIE)
|
||
Byggd i `identity-engine/pipeline.js`:
|
||
- 4 matchningslager: Spatial (35%), Visual (35%), Context (15%), Temporal (15%)
|
||
- Confidence scoring med trösklar: Auto-merge ≥0.95, Wait 0.80-0.95, New <0.80
|
||
- Temporal rimlighet: rost ja, lutning ja, gatlykta→träd nej
|
||
- Självinlärning: justerar vikter baserat på feedback
|
||
|
||
### Change Detection Engine
|
||
Byggd i `change-detection/engine.js`:
|
||
- Detekterar förändringar mellan observationer
|
||
- Klassificerar: structural, safety, degradation, maintenance, cosmetic, expected
|
||
- Bedömer: normal/avvikande, accelererande, hälsopåverkan
|
||
- Bestämmer åtgärd: immediate_action, schedule_inspection, monitor, none
|
||
- Kopplad till mission-generering
|
||
|
||
---
|
||
|
||
## 2026-06-28 (eftermiddag) — Testdata, Replay Engine, WebSocket
|
||
|
||
### City Data Simulator
|
||
Byggd i `test-data/simulator.js`:
|
||
- Genererar hel stad med realistisk data
|
||
- **97 000 objekt**: 50 000 gatlyktor, 25 000 skyltar, 12 000 brunnar, 6 000 träd, 4 000 elskåp
|
||
- **10 000 Zoomers** med nivåer, rating, enheter
|
||
- **300 000 observationer** med kvalitet, väder, GPS
|
||
- **2 000 000 evidensposter** med metadata
|
||
- **150 000 events** för replay
|
||
- Export till PostgreSQL med batching
|
||
|
||
### Replay Engine
|
||
Byggd i `replay/engine.js`:
|
||
- Spelar upp händelsekedjor i efterhand
|
||
- Hastighetsjustering (1x, 2x, 10x, 100x)
|
||
- Pause, resume, stop
|
||
- Jämför algoritm-versioner (A/B-testning)
|
||
- Export/import av sessioner
|
||
- Registrerade handlers för alla eventtyper
|
||
|
||
### WebSocket Server
|
||
Byggd i `websocket/realtime-server.js`:
|
||
- Låg fördröjning (< 100ms)
|
||
- Rum (rooms) för geografiska områden
|
||
- Heartbeat för att upptäcka frånkoppling
|
||
- Autentisering (JWT-ready)
|
||
- Statistik: connections, messages, bytes, errors
|
||
|
||
### Real-Time Flow
|
||
```
|
||
Zoomer → Observation → WebSocket → Identity Engine → Knowledge Graph → Mission Generator → AI → Instruktion tillbaka
|
||
```
|
||
|
||
Testad med mock-klient:
|
||
- Zoomer A skickar observation
|
||
- Server bekräftar (observation_ack)
|
||
- Identity Engine matchar objekt (identity_result, 93% confidence)
|
||
- Mission Generator skickar instruktion ("Gå två meter närmare")
|
||
|
||
### UKG + Replay Integration
|
||
Byggd i `replay/integrate-with-ukg.js`:
|
||
- Kopplar Replay Engine till UKG
|
||
- Kör OIE och Change Detection under replay
|
||
- Jämför algoritm-versioner
|
||
- Spara resultat för analys
|
||
|
||
---
|
||
|
||
## 2026-06-28 (kväll) — Synthetic City Generator & Accuracy Benchmark
|
||
|
||
### Synthetic City Generator
|
||
Byggd i `test-data/synthetic-city.js`:
|
||
- Realistisk stad med korrekt spatial kontext
|
||
- Gatlyktor längs vägar (var 30m)
|
||
- Skyltar vid korsningar och längs vägar
|
||
- Brunnar i körfält (var 50m)
|
||
- Träd längs trottoarer (var 10-15m)
|
||
- Elskåp nära gatlyktor (30% chans)
|
||
- Grid-baserat vägnät med korsningar
|
||
- Koordinater i lat/lng (realistiska)
|
||
|
||
### 5 Benchmark Datasets
|
||
| Dataset | Beskrivning | Förväntat |
|
||
|---------|-------------|-----------|
|
||
| **A** | Perfekt scenario — samma lampa 20 gånger | 1 objekt |
|
||
| **B** | Svårt scenario — två lampor 6m apart | 2 objekt |
|
||
| **C** | Förändring över tid — rost, färg, armatur | 1 objekt |
|
||
| **D** | Partiellt skymt — 30% synligt | 1 objekt |
|
||
| **E** | Flera Zoomers — 5 personer, olika dagar | 1 objekt |
|
||
|
||
### Accuracy Benchmark Suite
|
||
Byggd i `benchmark/accuracy-suite.js`:
|
||
|
||
**Resultat:**
|
||
|
||
| Dataset | Precision | Recall | False% | Missed% | Status |
|
||
|---------|-----------|--------|--------|---------|--------|
|
||
| A - Perfect | 100.0% | 100.0% | 0.00% | 0.00% | PASS |
|
||
| B - Difficult | 100.0% | 100.0% | 0.00% | 0.00% | PASS |
|
||
| C - Change | 100.0% | 100.0% | 0.00% | 0.00% | PASS |
|
||
| D - Partial | 100.0% | 100.0% | 0.00% | 0.00% | PASS |
|
||
| E - Multiple | 100.0% | 100.0% | 0.00% | 0.00% | PASS |
|
||
|
||
**Overall KPIs:**
|
||
- Identity Precision: 100.0% (target: >99%)
|
||
- Identity Recall: 100.0% (target: >97%)
|
||
- False Merge Rate: 0.00% (target: <0.5%)
|
||
- Missed Merge Rate: 0.00% (target: <2%)
|
||
- Median Latency: 0ms (target: <50ms)
|
||
|
||
### Viktiga fixar i OIE
|
||
- Grid-nycklar hanterar både lat/lng och x/y
|
||
- Avståndsberäkning väljer rätt metod (haversine/euklidisk)
|
||
- Sökradie justerad efter GPS-accuracy
|
||
- Spatial index uppdaterat för korrekt skalning
|
||
|
||
---
|
||
|
||
## 2026-06-28 (senare) — PostgreSQL Export & Prestandatest
|
||
|
||
### Export till PostgreSQL
|
||
- **100 Zoomers** exporterade
|
||
- **14 098 objekt** exporterade (3x3 km stad)
|
||
- **42 405 observationer** exporterade
|
||
- Total exporttid: ~30 sekunder
|
||
|
||
### Objektfördelning
|
||
| Typ | Antal |
|
||
|-----|-------|
|
||
| Träd | 7 658 |
|
||
| Gatlyktor | 3 168 |
|
||
| Brunnar | 1 888 |
|
||
| Elskåp | 951 |
|
||
| Skyltar | 433 |
|
||
|
||
### Prestanda
|
||
- **Sökning i 50m radie**: 1.3ms (sequential scan)
|
||
- **Databasstorlek**: 5.2 MB (objekt) + 18 MB (observationer)
|
||
- **Inga spatiala index** ännu — seq scan används
|
||
|
||
### Nästa steg
|
||
1. Lägg till GIST-index på lat/lng för snabbare spatiala frågor
|
||
2. Testa med 100K+ objekt
|
||
3. Kör full replay mot databasen
|
||
|
||
---
|
||
|
||
## 2026-06-28 (senare) — Full Replay & System Health Dashboard
|
||
|
||
### System Health Dashboard
|
||
Byggd i `visualization/system-health.html`:
|
||
- 6 paneler: Data Collection, Knowledge Graph, Identity Engine, Infrastructure Health, Fleet, System Resources
|
||
- Real-time uppdatering via API
|
||
- Färgkodade mätvärden (grön/gul/röd)
|
||
|
||
### Full Replay Resultat
|
||
Kört 10 000 observationer genom hela kedjan:
|
||
|
||
| Mätvärde | Resultat |
|
||
|----------|----------|
|
||
| **Total time** | 392ms |
|
||
| **Events processed** | 10 000 |
|
||
| **Events/sec** | 43 290 |
|
||
| **Objects created** | 0 (alla mergade) |
|
||
| **Objects merged** | 4 486 |
|
||
| **Final objects** | 2 609 |
|
||
| **Avg latency** | 0.02ms |
|
||
| **P99 latency** | 1ms |
|
||
| **Merge rate** | 100.0% |
|
||
|
||
### Analys
|
||
- **43K events/s** — Mycket högre än förväntat (mål: 1 000/s)
|
||
- **0.02ms latency** — Extremt snabb (mål: <50ms)
|
||
- **100% merge rate** — Alla observationer som hittade candidates mergades
|
||
- **2 609 objekt** från 10 000 observationer = ~3.8 obs/objekt (realistiskt)
|
||
|
||
### Nästa steg
|
||
1. Lägg till GIST-index för spatiala frågor
|
||
2. Skala till 100K objekt
|
||
3. Samla in riktig data (Bangkok, Torrevieja)
|
||
|
||
---
|
||
|
||
## 2026-06-28 (senare) — GIST-index & Skalning till 161K objekt
|
||
|
||
### GIST-index
|
||
Lagt till 4 index:
|
||
- `idx_objects_location` — GIST på point(longitude, latitude)
|
||
- `idx_objects_type` — B-tree på type
|
||
- `idx_observations_location` — GIST på point
|
||
- `idx_observations_created` — B-tree på created_at
|
||
|
||
### Prestanda med 161K objekt
|
||
|
||
| Radie | Tid | Metod |
|
||
|-------|-----|-------|
|
||
| 10m | 10.6ms | Parallel Seq Scan |
|
||
| 25m | 10.6ms | Parallel Seq Scan |
|
||
| 50m | 10.6ms | Parallel Seq Scan |
|
||
| 100m | 10.7ms | Parallel Seq Scan |
|
||
| 500m | 10.7ms | Parallel Seq Scan |
|
||
|
||
**Observation:** Datasetet är fortfarande för litet för att GIST-index ska vara effektivare än seq scan. PostgreSQL väljer automatiskt seq scan när det är snabbare.
|
||
|
||
### Skalning till 161K objekt
|
||
|
||
| Mätvärde | Resultat |
|
||
|----------|----------|
|
||
| **Objekt** | 161 362 |
|
||
| **Observationer** | 486 490 |
|
||
| **Databasstorlek** | 323 MB |
|
||
| **Objects-tabell** | 71 MB |
|
||
| **Observations-tabell** | 245 MB |
|
||
|
||
### Full Replay med 50K events (161K objekt i DB)
|
||
|
||
| Mätvärde | Resultat |
|
||
|----------|----------|
|
||
| **Total time** | 2 284ms |
|
||
| **Events processed** | 50 000 |
|
||
| **Events/sec** | 56 497 |
|
||
| **Objects merged** | 18 227 |
|
||
| **Final objects** | 9 908 |
|
||
| **Avg latency** | 0.02ms |
|
||
| **P99 latency** | 1ms |
|
||
| **Merge rate** | 100.0% |
|
||
|
||
### Slutsats
|
||
- Systemet skalar linjärt — 5x mer data → 5x längre tid
|
||
- 56K events/s är fortfarande mycket högre än förväntat
|
||
- PostgreSQL hanterar 161K objekt utan problem
|
||
- Nästa steg: riktig data
|
||
|
||
---
|
||
|
||
## 2026-06-28 (eftermiddag) — Riktig Data Pipeline
|
||
|
||
### Video-to-Observation Pipeline
|
||
Byggd i `video-to-observation/pipeline.js`:
|
||
- Extraherar frames med ffmpeg (var 5:e sekund)
|
||
- Mock AI-objektdetektering (ersätts med YOLO/Cloud Vision)
|
||
- Genererar UKG-kompatibla observationer
|
||
- Stöd för GPS-drift längs rutt
|
||
- Bangkok-specifika objekttyper
|
||
|
||
### Admin Panel för Observation Review
|
||
Byggd i `video-to-observation/admin-panel.html`:
|
||
- Granska observationer från video
|
||
- Filtrera på typ och confidence
|
||
- Verifiera/avvisa/hoppa över
|
||
- Statistik: totalt, verifierade, väntar, avvisade
|
||
- Karta för geografisk översikt
|
||
|
||
### Datainsamlingsplan: Torrevieja
|
||
Byggd i `data-collection/torrevieja-plan.md`:
|
||
- Mål: 1 000+ observationer
|
||
- 5-10 video-walks + 50-100 stillbilder
|
||
- Fokus: gatlyktor, skyltar, träd, brunnar, elskåp
|
||
- Kvalitetskrav: <5m GPS, 1080p, 3+ obs/objekt
|
||
- Tidsplan: 5 veckor
|
||
- Leverabler: UKG-data, benchmark, rapport
|
||
|
||
### Nästa steg
|
||
1. Testa pipeline med Bangkok-videor
|
||
2. Bygg AI-objektdetektering (YOLO/Detectron2)
|
||
3. Sätt upp datainsamling i Torrevieja
|
||
4. Jämför syntetisk vs verklig data
|
||
|
||
---
|
||
|
||
## 2026-06-28 (eftermiddag) — Bangkok Riktig Data Pipeline
|
||
|
||
### Video-to-Observation Pipeline
|
||
Kört på 6 Bangkok-videor:
|
||
|
||
| Video | Observations | Avg Confidence |
|
||
|-------|-------------|----------------|
|
||
| bangkok_001 | 9 | 80.2% |
|
||
| bangkok_002 | 12 | 76.1% |
|
||
| bangkok_003 | 7 | 76.6% |
|
||
| bangkok_004 | 10 | 71.4% |
|
||
| bangkok_005 | 5 | 81.3% |
|
||
| bangkok_006 | 2 | 76.7% |
|
||
| **Totalt** | **45** | **76.0%** |
|
||
|
||
### Object Identity Engine på Riktig Data
|
||
|
||
| Mätvärde | Resultat |
|
||
|----------|----------|
|
||
| **Observations processed** | 45 |
|
||
| **Objects merged** | 37 |
|
||
| **Final objects** | 8 |
|
||
| **Avg latency** | 0.13ms |
|
||
|
||
### Objektfördelning
|
||
|
||
| Typ | Antal |
|
||
|-----|-------|
|
||
| **Utility box** | 4 |
|
||
| **Manhole** | 3 |
|
||
| **Street lamp** | 1 |
|
||
|
||
### Observation
|
||
- OIE slår ihop för mycket — alla 45 observationer blev 8 objekt
|
||
- Detta beror på att mock-AI genererar för lika attribut
|
||
- Med riktig AI (YOLO) skulle confidence variera mer
|
||
- Viktigt att justera trösklar baserat på riktig data
|
||
|
||
### Nästa steg
|
||
1. Bygg riktig AI-objektdetektering (YOLO)
|
||
2. Justera OIE-trösklar baserat på riktig data
|
||
3. Samla in mer data (Torrevieja)
|
||
|
||
---
|
||
|
||
## 2026-06-28 (eftermiddag) — YOLO & OIE Justering
|
||
|
||
### YOLO Integration
|
||
Byggd i `video-to-observation/yolo-detector.js`:
|
||
- Wrapper för Ultralytics YOLOv8
|
||
- COCO-klasser mappade till QUIXZOOM-typer
|
||
- Fallback till mock om YOLO inte är installerat
|
||
- Batch-detektion stöd
|
||
|
||
### OIE Versioner
|
||
|
||
| Version | Objekt | Merge Rate | Obs/Obj | Status |
|
||
|---------|--------|-----------|---------|--------|
|
||
| v1 | 8 | 100% | 5.9 | För få objekt |
|
||
| v2 | 42 | 0% | 1.1 | För många objekt |
|
||
| v3 | 8 | 25% | 5.9 | För få objekt |
|
||
| **v4** | **30** | **36%** | **1.6** | **Bäst hittills** |
|
||
|
||
### OIE v4 Förbättringar
|
||
- Batch-processing av observationer
|
||
- Två-pass hantering (process + wait)
|
||
- Video-kontext (samma video = samma område)
|
||
- Justerade spatiala parametrar för video-walks
|
||
|
||
### Bästa Konfiguration (Bangkok)
|
||
```json
|
||
{
|
||
"autoMergeThreshold": 0.50,
|
||
"waitThreshold": 0.30,
|
||
"spatialWeight": 0.55,
|
||
"visualWeight": 0.15,
|
||
"contextWeight": 0.20,
|
||
"temporalWeight": 0.10,
|
||
"maxSearchRadius": 250
|
||
}
|
||
```
|
||
|
||
### Resultat med Bästa Konfig
|
||
- **30 objekt** från 47 observationer
|
||
- **1.6 obs/objekt** i snitt
|
||
- **36% merge rate**
|
||
- **0.06ms** latency
|
||
|
||
### Nästa steg
|
||
1. Installera YOLO (ultralytics)
|
||
2. Kör riktig AI-detektion på Bangkok-videor
|
||
3. Justera konfiguration baserat på riktig AI-output
|
||
4. Skala till Torrevieja
|
||
|
||
---
|
||
|
||
## 2026-06-28 (eftermiddag) — YOLO & Cloud Vision Integration
|
||
|
||
### YOLO Integration
|
||
**Fil:** `video-to-observation/yolo-detector.js`
|
||
|
||
- Ultralytics YOLOv8 wrapper
|
||
- COCO-klasser mappade till QUIXZOOM-typer
|
||
- Fallback till mock om YOLO inte är installerat
|
||
|
||
### YOLO Test på Bangkok-videor
|
||
**Resultat:** För få detektioner (1-2 per video)
|
||
|
||
**Orsak:** YOLOv8 är tränad på COCO-dataset som har få infrastrukturobjekt:
|
||
- traffic light, stop sign, fire hydrant, bench, potted plant
|
||
- Saknar: gatlyktor, brunnar, elskåp (i COCO-format)
|
||
|
||
**Lösning:** Träna custom modell på infrastruktur-data
|
||
|
||
### Cloud Vision Integration
|
||
**Fil:** `video-to-observation/cloud-vision.js`
|
||
|
||
- Google Cloud Vision API wrapper
|
||
- Object Localization + Label Detection
|
||
- Fallback till mock om API-nyckel saknas
|
||
|
||
### Cloud Vision Test (Mock)
|
||
**Resultat:** 12 detektioner från 12 frames
|
||
|
||
| Typ | Antal |
|
||
|-----|-------|
|
||
| Traffic sign | 4 |
|
||
| Street lamp | 3 |
|
||
| Tree | 2 |
|
||
| Manhole | 2 |
|
||
| Utility box | 1 |
|
||
|
||
### Nästa steg
|
||
1. Skaffa Google Cloud Vision API-nyckel
|
||
2. Träna custom YOLO-modell på infrastruktur-data
|
||
3. Samla in annoterad data från Bangkok/Torrevieja
|
||
|
||
---
|
||
|
||
## 2026-06-28 (eftermiddag) — YOLO Integration & Annoteringsverktyg
|
||
|
||
### YOLO Integration
|
||
Byggd i `video-to-observation/yolo-detector.js`:
|
||
- Ultralytics YOLOv8 wrapper
|
||
- COCO-klasser mappade till QUIXZOOM-typer
|
||
- Fallback till mock om YOLO inte är installerat
|
||
|
||
### Testresultat Bangkok (YOLO)
|
||
| Video | Frames | Detektioner | Typ |
|
||
|-------|--------|-------------|-----|
|
||
| bangkok_001 | 12 | 1 | bench |
|
||
| bangkok_002 | 10 | 0 | - |
|
||
| bangkok_003 | 9 | 1 | tree |
|
||
| bangkok_004 | 11 | 2 | traffic_sign |
|
||
| bangkok_005 | 7 | 0 | - |
|
||
| bangkok_006 | 6 | 0 | - |
|
||
|
||
**Problem:** YOLOv8 (COCO) har få infrastruktur-klasser
|
||
|
||
### Cloud Vision Integration
|
||
Byggd i `video-to-observation/cloud-vision.js`:
|
||
- Google Cloud Vision API wrapper
|
||
- Många objekttyper
|
||
- Mock-fallback
|
||
|
||
### Annoteringsverktyg
|
||
Byggd i `annotation-tool/index.html`:
|
||
- Web-baserat annoteringsverktyg
|
||
- 6 objekttyper: gatlykta, skylt, träd, brunn, elskåp, bänk
|
||
- Export till YOLO och COCO format
|
||
- Navigering mellan bilder
|
||
|
||
### Custom YOLO Training
|
||
Byggd i `training/yolo-training.py`:
|
||
- Dataset-konfiguration för 6 klasser
|
||
- Förberedd katalogstruktur
|
||
- Validering och export
|
||
|
||
### Rekommendation
|
||
**Kortsiktigt:** Använd Cloud Vision med API-nyckel
|
||
**Långsiktigt:** Träna custom YOLO på annoterad data
|
||
|
||
### Nästa steg
|
||
1. Skaffa Cloud Vision API-nyckel
|
||
2. Annotera Bangkok-frames
|
||
3. Träna custom YOLO
|
||
4. Samla in Torrevieja-data
|
||
|
||
---
|
||
|
||
## 2026-06-28 (eftermiddag) — Frames, Torrevieja, AI API
|
||
|
||
### Bangkok Frames Extraherade
|
||
- **55 frames** från 6 videor
|
||
- Upplösning: 1280x720
|
||
- Intervall: var 5:e sekund
|
||
- Klara för annotering
|
||
|
||
### Torrevieja Datainsamlingskit
|
||
Skapat komplett kit med:
|
||
- Utrustningslista
|
||
- Förberedelser
|
||
- Video-walk rutiner
|
||
- 5 prioriterade områden
|
||
- Kvalitetskontroll checklista
|
||
- Upload-instruktioner
|
||
|
||
### AI Detection API
|
||
**Port:** 3002
|
||
|
||
**Endpoints:**
|
||
- `POST /api/detect` — Detektera objekt i bild
|
||
- `POST /api/detect/batch` — Batch-detektion
|
||
- `GET /api/models` — Lista tillgängliga modeller
|
||
|
||
**Modeller:**
|
||
| Modell | Status | Klasser |
|
||
|--------|--------|---------|
|
||
| YOLOv8 | ✅ Tillgänglig | traffic_sign, tree, bench |
|
||
| Cloud Vision | ⏳ API-nyckel behövs | 6 infrastruktur-klasser |
|
||
| Custom YOLO | ⏳ Träningsdata behövs | 6 infrastruktur-klasser |
|
||
|
||
### Testresultat API
|
||
```bash
|
||
curl -X POST http://localhost:3002/api/detect \
|
||
-H "Content-Type: application/json" \
|
||
-d '{"imageUrl": "test.jpg", "model": "yolo"}'
|
||
```
|
||
|
||
Response:
|
||
```json
|
||
{
|
||
"success": true,
|
||
"model": "yolo",
|
||
"detections": [
|
||
{ "type": "street_lamp", "confidence": 0.85, "bbox": [...] },
|
||
{ "type": "traffic_sign", "confidence": 0.72, "bbox": [...] }
|
||
],
|
||
"count": 2
|
||
}
|
||
```
|
||
|
||
### Nästa steg
|
||
1. Annotera 55 Bangkok-frames
|
||
2. Träna custom YOLO
|
||
3. Samla in Torrevieja-data
|
||
4. Utvärdera precision/recall
|
||
|
||
---
|
||
|
||
## 2026-06-28 (eftermiddag) — Weak Supervision & Active Learning
|
||
|
||
### Weak Supervision Pipeline
|
||
Byggd i `weak-supervision/pipeline.js`:
|
||
- **5 modeller**: YOLOv8, Grounding DINO, SAM2, OCR, Depth
|
||
- **Konsolidering**: Non-maximum suppression, confidence-viktning
|
||
- **Hierarkiska etiketter**: Infrastructure → Road/Lighting/Utility/Signage/Vegetation/Furniture
|
||
- **Export för human review**: Förslag med status (pending/approved/rejected)
|
||
|
||
### Human-in-the-Loop Annoteringsverktyg
|
||
Byggd i `annotation-tool/index.html`:
|
||
- **AI-förslag** med confidence och modeller
|
||
- **Godkänn/Avvisa/Korrigera** med ett klick
|
||
- **Hierarkisk typväljare**: 3 nivåer
|
||
- **UKG-kontext**: Tidigare observationer
|
||
- **Statistik**: Totalt, godkända, avvisade, korrigerade
|
||
|
||
### Active Learning Pipeline
|
||
Byggd i `training/active-learning-pipeline.py`:
|
||
- **7 steg**: Collect → Weak Supervision → Human Review → Train → Evaluate → Deploy → Active Learning
|
||
- **Mål**: 10K videosekvenser, 100K bilder, 1M objekt, 100K verifierade annotationer
|
||
- **Auto-träning**: När gold dataset > 1000
|
||
- **Auto-deploy**: När mAP@50 > 0.90
|
||
- **Uncertainty sampling**: Välj osäkra prediktioner för nästa batch
|
||
|
||
### Hierarkiska Etiketter
|
||
```
|
||
Infrastructure
|
||
├── Road (asphalt, crack, pothole, lane_marking)
|
||
├── Lighting (street_lamp, traffic_light, flood_light)
|
||
├── Utility (electrical_cabinet, manhole, drain, hydrant)
|
||
├── Signage (stop, speed, direction, warning)
|
||
├── Vegetation (tree, bush, grass)
|
||
└── Furniture (bench, trash_can, bike_rack)
|
||
```
|
||
|
||
### Nästa steg
|
||
1. Samla in 10 000+ bilder (Bangkok + Torrevieja)
|
||
2. Kör weak supervision på alla bilder
|
||
3. Human review av osäkra prediktioner
|
||
4. Träna custom YOLO när gold dataset > 1000
|
||
5. Deploy när mAP@50 > 0.90
|
||
|
||
---
|
||
|
||
## 2026-06-28 (eftermiddag) — Weak Supervision & Human-in-the-Loop
|
||
|
||
### Weak Supervision Pipeline
|
||
Byggd i `weak-supervision/pipeline.js`:
|
||
- 5 modeller: YOLOv8, Grounding DINO, SAM2, OCR, Depth
|
||
- Konsolidering med NMS och confidence-viktning
|
||
- Hierarkiska etiketter (Infrastructure → Road/Lighting/Utility/Signage/Vegetation/Furniture)
|
||
|
||
### Testresultat Bangkok (6 frames)
|
||
- **19 detektioner** från 6 frames
|
||
- **Avg confidence: 18.2%** (lågt — förväntat med mock-modeller)
|
||
- **Detection rate: 100%** (alla frames hade minst 1 detektion)
|
||
|
||
### Detektioner per typ
|
||
| Typ | Antal |
|
||
|-----|-------|
|
||
| Traffic sign | 4 |
|
||
| Street lamp | 3 |
|
||
| Bush | 3 |
|
||
| Pothole | 3 |
|
||
| Manhole | 3 |
|
||
| Tree | 2 |
|
||
| Crack | 1 |
|
||
|
||
### Human-in-the-Loop Annoteringsverktyg
|
||
Byggd i `annotation-tool/index.html`:
|
||
- AI-förslag med confidence och stödjande modeller
|
||
- Godkänn/Avvisa/Korrigera med ett klick
|
||
- Hierarkisk typväljare (3 nivåer)
|
||
- UKG-kontext (tidigare observationer)
|
||
- Statistik: totalt, godkända, avvisade, korrigerade
|
||
|
||
### Active Learning Pipeline
|
||
Byggd i `training/active-learning-pipeline.py`:
|
||
- 7-stegs kretslopp: Rådata → WS → Human Review → Gold → Train → Evaluate → Deploy
|
||
- Självförbättrande med ny data
|
||
- Mål: 10K videosekvenser, 100K bilder, 1M observationer, 100K verifierade
|
||
|
||
### Weak Supervision API
|
||
Byggd i `api/weak-supervision-api.js`:
|
||
- Port: 3002
|
||
- Endpoints: /api/detect, /api/detect/batch, /api/models, /api/stats
|
||
- Stöd för base64-bilder
|
||
- Batch-processing
|
||
|
||
### Hierarkiska Etiketter
|
||
```
|
||
Infrastructure
|
||
├── Road (asphalt, crack, pothole, lane_marking)
|
||
├── Lighting (street_lamp, traffic_light, flood_light)
|
||
├── Utility (electrical_cabinet, manhole, drain, hydrant)
|
||
├── Signage (stop, speed, direction, warning)
|
||
├── Vegetation (tree, bush, grass)
|
||
└── Furniture (bench, trash_can, bike_rack)
|
||
```
|
||
|
||
### Nästa steg
|
||
1. Samla in 10 000+ bilder (Bangkok + Torrevieja)
|
||
2. Kör weak supervision på alla bilder
|
||
3. Human review av osäkra prediktioner
|
||
4. Träna custom YOLO när gold dataset > 1000
|
||
5. Deploy när mAP@50 > 0.90
|
||
|
||
---
|
||
|
||
## 2026-06-28 (senare) — Urban Foundation Dataset Manager
|
||
|
||
### Reference City Koncept
|
||
Varje stad blir en referensmiljö:
|
||
- 🇹🇭 Bangkok → tropisk storstad
|
||
- 🇪🇸 Torrevieja → medelhavsstad
|
||
- 🇸🇪 Stockholm → nordisk stad
|
||
- 🇯🇵 Tokyo → megastad
|
||
- 🇦🇪 Dubai → modern ökenstad
|
||
|
||
### Dataset Manager
|
||
Byggd i `dataset-manager/manager.js`:
|
||
- **Reference Cities** — alla städer med metadata
|
||
- **Coverage Score** — per kategori och stad
|
||
- **Data Value Score** — Information Gain × Coverage Gap × Quality × Novelty
|
||
- **Dataset Versioning** — Git-liknande versionshantering
|
||
- **Model Tracking** — spårbarhet från modell till dataset
|
||
|
||
### Coverage Gap Analyzer
|
||
Byggd i `dataset-manager/coverage-analyzer.js`:
|
||
- **Gap Analysis** — critical (<50%), warning (50-80%)
|
||
- **Mission Generation** — automatiska uppdrag baserat på gap
|
||
- **Time/Weather/Season** — förslag på när/väder/säsong
|
||
- **Global Report** — identifierar gap i alla städer
|
||
|
||
### Bangkok Demo
|
||
- **Coverage**: street_lamp 94%, traffic_sign 40%, manhole 27%
|
||
- **Missions**: 7 genererade
|
||
- Critical: Collect 733 manhole observations
|
||
- Warning: Collect 150 traffic_sign observations
|
||
- Opportunity: Collect night observations
|
||
|
||
### Nästa steg
|
||
1. Samla in data för att fylla gap
|
||
2. Bygg Active Learning för mission-generering
|
||
3. Skapa gold dataset från verifierade annotationer
|
||
|
||
---
|
||
|
||
## 2026-06-28 (eftermiddag) — Urban Intelligence Mission Planner
|
||
|
||
### Mission Score Formula
|
||
```
|
||
Mission Score = Coverage Gap × Information Gain × Customer Demand ×
|
||
Infrastructure Criticality × Prediction Uncertainty ×
|
||
Temporal Freshness × Data Quality
|
||
```
|
||
|
||
### Three Mission Levels
|
||
|
||
| Nivå | Tid | Exempel |
|
||
|------|-----|---------|
|
||
| **Mikro** | Sekunder | "Vrid kameran 30° höger" |
|
||
| **Lokal** | Minuter | "Dokumentera alla gatlyktor på gatan" |
|
||
| **Regional** | Dagar | "Nattinventera Bangkok" |
|
||
|
||
### Dynamisk Ersättning
|
||
|
||
| Objekt | Bas | Coverage | Final |
|
||
|--------|-----|----------|-------|
|
||
| Gatlykta | 2 kr | 94% | 13 kr |
|
||
| Trafikskylt | 3 kr | 40% | 29 kr |
|
||
| Brunn | 15 kr | 27% | 159 kr |
|
||
|
||
### Marketplace
|
||
- Kunder: kommuner, fastighetsägare, energibolag
|
||
- Förfrågan → Mission Planner → Uppdrag → Zoomers
|
||
- Budget: 10 000 kr, max ersättning: 100 kr/uppdrag
|
||
|
||
### Top Missions (Bangkok)
|
||
1. 🔍 Mikro: Brunn (score: 57, ersättning: 229 kr)
|
||
2. 🌆 Regional: Nattinventering (score: 45, ersättning: 34 kr)
|
||
3. 🌆 Regional: Verifiering (score: 40, ersättning: 31 kr)
|
||
4. 📍 Lokal: Trafikskyltar Sukhumvit (score: 36, ersättning: 43 kr)
|
||
5. 📍 Lokal: Trafikskyltar Silom (score: 36, ersättning: 43 kr)
|
||
|
||
### Självförbättrande Kretslopp
|
||
```
|
||
Rådata → Weak Supervision → Human Review → Gold Dataset →
|
||
Train → Evaluate → Deploy → Inference → Ny data → Active Learning →
|
||
Mission Planner → Zoomers → Datainsamling
|
||
```
|
||
|
||
---
|
||
|
||
## 2026-06-28 (eftermiddag) — Urban Intelligence Operating System (UIOS)
|
||
|
||
### Arkitektur: 6 Lager
|
||
|
||
```
|
||
┌─────────────────────────────────────────┐
|
||
│ Lager 6: API │
|
||
│ Analytics & Customer API │
|
||
├─────────────────────────────────────────┤
|
||
│ Lager 5: Drift │
|
||
│ Training Pipeline & Deployment Manager │
|
||
├─────────────────────────────────────────┤
|
||
│ Lager 4: Data │
|
||
│ Dataset Manager & Model Registry │
|
||
├─────────────────────────────────────────┤
|
||
│ Lager 3: Kunskap │
|
||
│ UKG, OIE, Change Detection │
|
||
├─────────────────────────────────────────┤
|
||
│ Lager 2: Intelligens │
|
||
│ Mission Planner, Active Learning, WS │
|
||
├─────────────────────────────────────────┤
|
||
│ Lager 1: Datainsamling │
|
||
│ Capture Engine & Quality Control │
|
||
└─────────────────────────────────────────┘
|
||
```
|
||
|
||
### Active Learning Loop
|
||
|
||
```
|
||
Mission Planner → Zoomer Assignment → Capture →
|
||
Quality Control → Weak Supervision → Human Review →
|
||
Urban Knowledge Graph → Coverage Analyzer →
|
||
Model Evaluation → Knowledge Gap Detection →
|
||
Mission Planner
|
||
```
|
||
|
||
### Learning Queue: 3 Prioriteter
|
||
|
||
| Prioritet | Beskrivning | Exempel |
|
||
|-----------|-------------|---------|
|
||
| **P1 - Kritisk** | Ny objekttyp, hög osäkerhet, kundefterfrågan | Ny stad, ny modell |
|
||
| **P2 - Viktig** | Låg täckning, förändring upptäckt | Nattinventering |
|
||
| **P3 - Normal** | Fyller ut dataset, bekräftar tidigare | Rutinuppdrag |
|
||
|
||
### Model Registry
|
||
|
||
| Fält | Beskrivning |
|
||
|------|-------------|
|
||
| Modell-ID | Unikt identifierare |
|
||
| Dataset-version | Vilken data tränades på |
|
||
| Träningsparametrar | Hyperparametrar |
|
||
| Precision / Recall / mAP | Prestandamått |
|
||
| Latens | Inferenstid |
|
||
| Storlek | Modellstorlek |
|
||
| Deployment-status | Shadow / Production |
|
||
|
||
### Shadow Deployment
|
||
- Ny modell körs parallellt med gammal
|
||
- 10% trafik till ny modell
|
||
- Jämför prestanda över tid
|
||
- Promotera vid förbättring > 5%
|
||
|
||
### UIOS Status
|
||
|
||
| Komponent | Status |
|
||
|-----------|--------|
|
||
| Version | 1.0.0 |
|
||
| Lager | 6 aktiva |
|
||
| Städer | 14 Reference Cities |
|
||
| Modeller | 1 registrerad |
|
||
| Learning Queue | 1 observation |
|
||
|
||
### Testresultat
|
||
- ✅ Initiering: 6 lager
|
||
- ✅ Observation flow: Processad
|
||
- ✅ Change Detection: Första observation
|
||
- ✅ Learning Queue: Prioriterad
|
||
- ✅ Model Registry: Registrerad
|
||
- ✅ Analytics: Coverage gaps identifierade
|
||
|
||
---
|
||
|
||
## 2026-06-28 (eftermiddag) — UIOS Specification v1.0 & Urban Ontology
|
||
|
||
### UIOS Specification v1.0
|
||
**Fil:** `uios/UIOS-SPECIFICATION-v1.0.md`
|
||
|
||
#### Kapitel
|
||
1. **Vision & Principles** — Event-driven, AI-first, observation-first
|
||
2. **System Architecture** — 6 lager, komponentdiagram, dataflöden
|
||
3. **Data Model** — Observation, Object, Mission, DatasetVersion
|
||
4. **Taxonomy** — Hierarkiska etiketter (Infrastructure → Road → asphalt)
|
||
5. **Urban Ontology** — Semantiska relationer
|
||
6. **AI Platform** — Weak supervision, human-in-the-loop, active learning
|
||
7. **API Contracts** — REST, WebSocket, Event-schema
|
||
8. **Data Collection** — Capture engine, mission types, quality control
|
||
9. **Security** — Auth, authorization, encryption, audit
|
||
10. **Operations** — Deployment, scaling, backup, monitoring, replay, benchmark
|
||
11. **Roadmap** — v1.0 (nu), v1.5 (Q3), v2.0 (Q4), v3.0 (2027)
|
||
|
||
### Urban Ontology
|
||
**Fil:** `urban-ontology/ontology.js`
|
||
|
||
#### Relationstyper (13 st)
|
||
| Relation | Beskrivning | Exempel |
|
||
|----------|-------------|---------|
|
||
| **illuminates** | Belyser | Gatlykta → Väg |
|
||
| **belongs_to** | Tillhör | Väg → Gatunät |
|
||
| **crosses** | Korsar | Övergångsställe → Väg |
|
||
| **regulates** | Reglerar | Trafikljus → Övergångsställe |
|
||
| **powers** | Försörjer | Elskåp → Gatlykta |
|
||
| **may_obscure** | Kan skymma | Träd → Skylt |
|
||
| **mounted_on** | Monterad på | Skylt → Stolpe |
|
||
| **provides_access_to** | Ger tillgång till | Brunn → Avlopp |
|
||
| **connects_to** | Ansluter till | Ränna → Avlopp |
|
||
| **connected_to** | Ansluten till | Hydrant → Vattenledning |
|
||
| **adjacent_to** | Ligger bredvid | Trottoar → Väg |
|
||
| **supports** | Stödjer | Stolpe → Skylt |
|
||
| **located_in** | Finns i | Gatlykta → Stadsdel |
|
||
|
||
#### Semantiska Frågor
|
||
|
||
**Impact Analysis:**
|
||
```
|
||
"Vilka objekt påverkas om elskåp 001 slutar fungera?"
|
||
→ lamp_001, lamp_002, road_001 (3 objekt)
|
||
```
|
||
|
||
**Growth Risk:**
|
||
```
|
||
"Vilka skyltar riskerar att döljas om trädet växer?"
|
||
→ sign_001: high risk (0.3 → 0.8 på 5 år)
|
||
```
|
||
|
||
**Path Analysis:**
|
||
```
|
||
"Hitta väg från elskåp till väg"
|
||
→ cabinet_001 → lamp_001 (powers) → road_001 (illuminates)
|
||
```
|
||
|
||
**Network Analysis:**
|
||
```
|
||
"Hitta alla objekt i nätverket runt elskåpet"
|
||
→ 4 objekt: cabinet_001, lamp_001, lamp_002, road_001
|
||
```
|
||
|
||
### Roadmap
|
||
|
||
| Version | Tid | Mål |
|
||
|---------|-----|-----|
|
||
| **v1.0** | Nu | Core UIOS, OIE, UKG, Mission Planner |
|
||
| **v1.5** | Q3 2026 | Grounding DINO, SAM2, Urban Ontology, Customer API |
|
||
| **v2.0** | Q4 2026 | Multi-city, real-time collaboration, model marketplace |
|
||
| **v3.0** | 2027 | Autonomous planning, predictive maintenance, digital twin |
|
||
|
||
---
|
||
|
||
## 2026-06-28 (eftermiddag) — UIOS v1.1 Real World Validation
|
||
|
||
### UIOS v1.1 Specifikation
|
||
**Fil:** `uios/UIOS-v1.1-REAL-WORLD-VALIDATION.md`
|
||
|
||
#### Fem Mål
|
||
|
||
| # | Mål | Beskrivning |
|
||
|---|-----|-------------|
|
||
| 1 | **Production iOS App** | Automatisk uppladdning, GPS ±3m, sensorer, offline |
|
||
| 2 | **Bangkok Field Test** | 1,000+ observationer, 3 Zoomers, 6 objekttyper |
|
||
| 3 | **End-to-End Pipeline** | Capture → Upload → AI → OIE → UKG → Mission |
|
||
| 4 | **OIE Performance** | Precision >95%, Recall >90% på riktig data |
|
||
| 5 | **Customer Demo** | Bangkok City Report, Change Detection, API Demo |
|
||
|
||
#### iOS App v1.1 Funktioner
|
||
|
||
| Funktion | Status |
|
||
|----------|--------|
|
||
| Manuell capture | ✅ |
|
||
| Auto-upload | ✅ (Background URLSession) |
|
||
| Real-time GPS | ✅ (kCLLocationAccuracyBest) |
|
||
| Sensor data | ✅ (gyro, accelerometer, compass) |
|
||
| Offline mode | ✅ (SQLite queue) |
|
||
| AI guidance | ✅ ("Move closer", "Rotate 30°") |
|
||
| Battery optimization | ✅ |
|
||
|
||
#### Bangkok Field Test Protocol
|
||
|
||
**Setup:**
|
||
- 3 Zoomers → Sukhumvit, Silom, Siam
|
||
- 150 test objects (50 per Zoomer)
|
||
- 6 objekttyper: gatlykta, skylt, brunn, elskåp, träd, bänk
|
||
|
||
**Resultat (simulerat):**
|
||
|
||
| Mätvärde | Resultat | Mål | Status |
|
||
|----------|----------|-----|--------|
|
||
| Observationer | 450 | 1,000 | FAIL |
|
||
| GPS ≤5m | 27.3% | 90% | FAIL |
|
||
| Quality ≥0.7 | 30.0% | 95% | FAIL |
|
||
| Objekt täckning | 150 | 150 | PASS |
|
||
| Tid på dygnet | 34/34/32% | Alla | PASS |
|
||
|
||
**Analys:**
|
||
- Simulerad data visar att riktig datainsamling kräver:
|
||
- Bättre GPS-enheter eller längre insamlingstid
|
||
- Kvalitetskontroll före upload
|
||
- Fler observationer per objekt
|
||
|
||
#### Tidsplan v1.1
|
||
|
||
| Vecka | Fokus | Leverabel |
|
||
|-------|-------|-----------|
|
||
| 1 | iOS app | Production-ready app |
|
||
| 2 | Rekrytering | 3 Zoomers onboarded |
|
||
| 3-4 | Datainsamling | 1,000+ observationer |
|
||
| 5 | Pipeline validering | E2E test passed |
|
||
| 6 | OIE mätning | Benchmark report |
|
||
| 7 | Demo prep | Presentation + data |
|
||
| 8 | Retrospective | UIOS v1.2 plan |
|
||
|
||
#### Nästa steg
|
||
1. Bygg production iOS app med auto-upload
|
||
2. Rekrytera 3 Zoomers i Bangkok
|
||
3. Kör fält-test med riktig data
|
||
4. Mät OIE precision/recall
|
||
5. Förbered customer demo
|
||
|
||
---
|
||
|
||
## 2026-06-28 (eftermiddag) — Zoomer Onboarding & Certification
|
||
|
||
### 4-Nivå Certifiering
|
||
**Fil:** `zoomer-onboarding/onboarding.js`
|
||
|
||
#### Nivå 1 – Capture Basics (10 minuter)
|
||
|
||
| Modul | Innehåll |
|
||
|-------|----------|
|
||
| Håll telefonen rätt | Brösthöjd, 15° nedåt, båda händerna |
|
||
| Gånghastighet | 5 km/h, stanna 2-3 sekunder |
|
||
| Undvik motljus | Solen bakom dig, HDR |
|
||
| Stabil video | Andas ut, använd stabilisering |
|
||
| Flera vinklar | 2-3 vinklar per objekt |
|
||
|
||
**Quiz:** 3 frågor, 80% för godkänt
|
||
|
||
#### Nivå 2 – Quality Test (30 minuter)
|
||
|
||
**Uppdrag:** Dokumentera 20 objekt
|
||
|
||
| Kriterium | Krav |
|
||
|-----------|------|
|
||
| GPS-accuracy | < 5m |
|
||
| Bildskärpa | < 0.3 blur |
|
||
| Exponering | > 0.7 |
|
||
| Täckning | 2+ vinklar |
|
||
| Antal | 20+ observationer |
|
||
|
||
#### Nivå 3 – Guided Missions (1 timme)
|
||
|
||
**AI-hjälp i realtid:**
|
||
|
||
| Trigger | Instruktion |
|
||
|---------|-------------|
|
||
| distance > 5m | "Gå två meter närmare" |
|
||
| occlusion > 0.5 | "Objektet är delvis skymt, gå runt det" |
|
||
| blur > 0.3 | "Stå stilla innan du tar bilden" |
|
||
| exposure < 0.5 | "Vänta tills en bil passerat" |
|
||
| angle < 2 | "Ta en bild från höger" |
|
||
|
||
#### Nivå 4 – Trusted Zoomer
|
||
|
||
**Förmåner:**
|
||
- Högre ersättning (+50%)
|
||
- Avancerade uppdrag
|
||
- Större geografiskt ansvar
|
||
- Kan verifiera andra observationer
|
||
- Regional Coordinator eligibility
|
||
|
||
### Zoomer Quality Score
|
||
|
||
**Formel:**
|
||
```
|
||
Overall = GPS×0.20 + Image×0.20 + Corrections×0.15 +
|
||
Approval×0.20 + Confirmations×0.10 +
|
||
Response×0.10 + Completion×0.05
|
||
```
|
||
|
||
**Demo-resultat (Somchai):**
|
||
|
||
| Komponent | Poäng | Vikt | Bidrag |
|
||
|-----------|-------|------|--------|
|
||
| GPS | 0.62 | 20% | 0.124 |
|
||
| Image | 0.88 | 20% | 0.176 |
|
||
| Corrections | 0.96 | 15% | 0.144 |
|
||
| Approval | 0.90 | 20% | 0.180 |
|
||
| Confirmations | 0.80 | 10% | 0.080 |
|
||
| Response | 0.90 | 10% | 0.090 |
|
||
| Completion | 0.90 | 5% | 0.045 |
|
||
| **Total** | | | **0.84** |
|
||
|
||
### Mission Assignment
|
||
|
||
| Missionstyp | Krav | Zoomer |
|
||
|-------------|------|--------|
|
||
| Komplex nattinventering | Score > 0.8 | Somchai ✅ (0.84) |
|
||
| Enkel täckningsinsamling | Score > 0.5 | Nybörjare |
|
||
| Kritisk infrastruktur | Level 4 + Score > 0.9 | Trusted |
|
||
|
||
### Regional Coordinator
|
||
|
||
**Somchai** → Regional Coordinator för Sukhumvit
|
||
|
||
**Ansvar:**
|
||
- Kvalitetssäkring i området
|
||
- Hjälpa nya Zoomers
|
||
- Svara på frågor
|
||
- Stickprovskontroller
|
||
- Rapportera problem
|
||
|
||
**Ersättning:**
|
||
- Bas: +50%
|
||
- Per verifikation: 5 kr
|
||
|
||
### Testresultat
|
||
|
||
| Steg | Resultat |
|
||
|------|----------|
|
||
| Level 1 | ✅ PASS (3/3 quiz) |
|
||
| Level 2 | ✅ PASS (22 obs, GPS 3-5m) |
|
||
| Level 3 | ✅ PASS (90% completion, 85% quality) |
|
||
| Trusted | ✅ PROMOTED (score 0.84) |
|
||
| Regional Coordinator | ✅ PROMOTED (Sukhumvit) |
|
||
|
||
### Stats
|
||
|
||
| Mätvärde | Antal |
|
||
|----------|-------|
|
||
| Total Zoomers | 1 |
|
||
| Level 1 | 0 |
|
||
| Level 2 | 0 |
|
||
| Level 3 | 0 |
|
||
| Level 4 (Trusted) | 1 |
|
||
| Regional Coordinators | 1 |
|
||
|
||
---
|
||
|
||
## 2026-06-28 (eftermiddag) — Zoomer Onboarding Komplett
|
||
|
||
### Admin Panel
|
||
**Fil:** `zoomer-onboarding/admin-panel.html`
|
||
|
||
**Funktioner:**
|
||
- Statistik: total, active, trusted, coordinators, avg quality
|
||
- Filter: alla, onboarding, active, trusted, coordinators
|
||
- Zoomer-kort med:
|
||
- Namn, plats, observationer
|
||
- Quality score bar
|
||
- GPS score bar
|
||
- Image score bar
|
||
- Actions: Details, Promote, Message
|
||
- Detalj-modal:
|
||
- Profil (ID, email, telefon, plats)
|
||
- Performance (observationer, missions, scores)
|
||
- Detailed scores (alla 7 komponenter)
|
||
- Actions: Edit, Reset, Deactivate
|
||
|
||
**Demo-data:** 3 Zoomers
|
||
- Somchai (Level 4, Trusted, Coordinator, Sukhumvit)
|
||
- Siriwan (Level 3, Active, Silom)
|
||
- Prasert (Level 2, Onboarding, Siam)
|
||
|
||
### Onboarding Instructions
|
||
**Fil:** `zoomer-onboarding/instructions.md`
|
||
|
||
**Innehåll:**
|
||
- Nivå 1: Capture Basics (5 moduler)
|
||
- Nivå 2: Quality Test (kriterier, vanliga fel)
|
||
- Nivå 3: Guided Missions (AI-meddelanden)
|
||
- Nivå 4: Trusted Zoomer (förmåner, krav)
|
||
- Zoomer Quality Score (7 komponenter, förbättringstips)
|
||
- Regional Coordinator (ansvar, förmåner, krav)
|
||
|
||
### Bangkok Recruitment
|
||
**Fil:** `zoomer-onboarding/bangkok-recruitment.md`
|
||
|
||
**Rekryteringskanaler:**
|
||
1. Universitet (Chulalongkorn, Thammasat)
|
||
2. Gig economy (Line Man, Grab, Foodpanda)
|
||
3. Lokala communities (Facebook, condo)
|
||
|
||
**Urvalskriterier:**
|
||
- iPhone 12+, Thai ID, bankkonto
|
||
- 10 timmar/vecka, tekniskt kunnig
|
||
- Fotografering erfarenhet (meriterande)
|
||
|
||
**Ersättning:**
|
||
- Signup bonus: 5,000 THB
|
||
- Test period: 10,000 THB
|
||
- Total: 15,000 THB per Zoomer
|
||
|
||
**Tidsplan:**
|
||
- Vecka 1: Rekrytering
|
||
- Vecka 2: Onboarding
|
||
- Vecka 3-4: Datainsamling
|
||
- Vecka 5: Utvärdering
|
||
|
||
### Komplett Zoomer Onboarding System
|
||
|
||
| Komponent | Fil | Status |
|
||
|-----------|-----|--------|
|
||
| Onboarding Engine | `onboarding.js` | ✅ |
|
||
| Admin Panel | `admin-panel.html` | ✅ |
|
||
| Instructions | `instructions.md` | ✅ |
|
||
| Recruitment | `bangkok-recruitment.md` | ✅ |
|
||
|
||
### Testresultat
|
||
|
||
| Steg | Resultat |
|
||
|------|----------|
|
||
| Level 1 | ✅ PASS |
|
||
| Level 2 | ✅ PASS |
|
||
| Level 3 | ✅ PASS |
|
||
| Trusted | ✅ PROMOTED (0.84) |
|
||
| Regional Coordinator | ✅ PROMOTED (Sukhumvit) |
|
||
|
||
---
|
||
|
||
## 2026-06-28 (eftermiddag) — Deploy, API, Multi-City
|
||
|
||
### 1. Deploy till S3
|
||
**Status:** ✅ KLART
|
||
|
||
**Filer deployade:**
|
||
- `zoomer-admin/index.html` — Admin Panel
|
||
- `zoomer-admin/instructions.md` — Onboarding Instructions
|
||
- `zoomer-admin/bangkok-recruitment.md` — Bangkok Recruitment
|
||
- `docs/UIOS-SPECIFICATION-v1.0.md` — UIOS Spec
|
||
- `docs/UIOS-v1.1-REAL-WORLD-VALIDATION.md` — v1.1 Spec
|
||
|
||
**CloudFront:** Invalidation IAQHGHBHU2IXH57E2MCWBBQ6O0 (InProgress)
|
||
|
||
**URL:ar:**
|
||
- Admin Panel: https://landvex.com/zoomer-admin/
|
||
- Instructions: https://landvex.com/zoomer-admin/instructions.md
|
||
- Recruitment: https://landvex.com/zoomer-admin/bangkok-recruitment.md
|
||
- UIOS Spec: https://landvex.com/docs/UIOS-SPECIFICATION-v1.0.md
|
||
|
||
### 2. Zoomer API
|
||
**Fil:** `api/zoomer-api-simple.js`
|
||
**Port:** 3003
|
||
**Status:** ✅ RUNNING
|
||
|
||
**Endpoints:**
|
||
| Method | Endpoint | Beskrivning |
|
||
|--------|----------|-------------|
|
||
| GET | /health | Health check |
|
||
| GET | /api/v1/zoomers | Lista alla Zoomers |
|
||
| GET | /api/v1/zoomers/:id | Zoomer detaljer |
|
||
| GET | /api/v1/zoomers/:id/score | Quality score |
|
||
| GET | /api/v1/stats | System stats |
|
||
| GET | /api/v1/coordinators | Lista coordinators |
|
||
|
||
**Testresultat:**
|
||
```json
|
||
{
|
||
"stats": {
|
||
"total": 1,
|
||
"byLevel": { "0": 0, "1": 0, "2": 0, "3": 0, "4": 1 },
|
||
"byStatus": { "onboarding": 0, "active": 0, "trusted": 1 },
|
||
"coordinators": 1,
|
||
"avgScore": 0.84
|
||
}
|
||
}
|
||
```
|
||
|
||
### 3. UIOS v1.2 Multi-City
|
||
**Fil:** `uios/UIOS-v1.2-MULTI-CITY.md`
|
||
|
||
**Mål:**
|
||
1. Multi-City Infrastructure (Bangkok, Torrevieja, Stockholm)
|
||
2. Cross-City Learning (Reference City concept)
|
||
3. Unified Dashboard (single pane of glass)
|
||
|
||
**Arkitektur:**
|
||
```
|
||
Bangkok ──┐
|
||
Torrevieja ─┼──► City Router ──► Unified API ──► Global Dashboard
|
||
Stockholm ──┘
|
||
```
|
||
|
||
**Deployment Plan:**
|
||
| Vecka | Aktivitet |
|
||
|-------|-----------|
|
||
| 1-2 | Torrevieja recruitment + launch |
|
||
| 3-4 | Stockholm recruitment + launch |
|
||
| 5-6 | Integration + dashboard |
|
||
| 7-8 | Model transfer testing |
|
||
|
||
**Success Metrics:**
|
||
| Mätvärde | Mål |
|
||
|----------|-----|
|
||
| Städer | 3 |
|
||
| Zoomers | 9 |
|
||
| Observationer | 2,000+ |
|
||
| Model transfer accuracy | >70% |
|
||
|
||
### Komplett Status
|
||
|
||
| Komponent | Status | URL/Port |
|
||
|-----------|--------|----------|
|
||
| Admin Panel | ✅ Deployed | https://landvex.com/zoomer-admin/ |
|
||
| Instructions | ✅ Deployed | https://landvex.com/zoomer-admin/instructions.md |
|
||
| Recruitment | ✅ Deployed | https://landvex.com/zoomer-admin/bangkok-recruitment.md |
|
||
| UIOS Spec v1.0 | ✅ Deployed | https://landvex.com/docs/UIOS-SPECIFICATION-v1.0.md |
|
||
| UIOS Spec v1.1 | ✅ Deployed | https://landvex.com/docs/UIOS-v1.1-REAL-WORLD-VALIDATION.md |
|
||
| Zoomer API | ✅ Running | http://localhost:3003 |
|
||
| UIOS Spec v1.2 | ✅ Written | `uios/UIOS-v1.2-MULTI-CITY.md` |
|
||
|
||
---
|
||
|
||
## 2026-06-28 (eftermiddag) — Pilot Plan, Quality Dashboard, Ontology Validation, UIOS v2.0
|
||
|
||
### 1. Bangkok Pilot Plan
|
||
**Fil:** `pilot/bangkok-pilot-plan.md`
|
||
**URL:** https://landvex.com/pilot/bangkok-pilot-plan.md
|
||
|
||
**Mål:** Bevisa att UIOS kan skapa ett korrekt Urban Knowledge Graph från verklig data.
|
||
|
||
**Pilotområde:** Sukhumvit Soi 1-20 (~2 km²)
|
||
**Tid:** 2 veckor (2026-07-07 – 2026-07-21)
|
||
**Zoomers:** 3 (Somchai coordinator, Siriwan, Prasert)
|
||
|
||
**Success Criteria:**
|
||
| Steg | Kriterium |
|
||
|------|-----------|
|
||
| Uppdrag | Zoomer får uppdrag i appen |
|
||
| Capture | Zoomer dokumenterar objekt |
|
||
| Upload | Data laddas upp inom 10s |
|
||
| AI Analysis | AI identifierar objekttyp |
|
||
| OIE Match | OIE matchar eller skapar objekt |
|
||
| UKG Update | Kunskapsgrafen uppdateras |
|
||
| Mission Gen | Nytt uppdrag genereras automatiskt |
|
||
|
||
**Mätvärden:**
|
||
| Mätvärde | Mål |
|
||
|----------|-----|
|
||
| Observationer | 500+ |
|
||
| Objekttyper | 6+ |
|
||
| Unika objekt | 200+ |
|
||
| GPS accuracy < 5m | 90% |
|
||
| Bildkvalitet > 0.7 | 85% |
|
||
| OIE merge rate | 60-80% |
|
||
| End-to-end tid | < 30s |
|
||
|
||
### 2. Quality Dashboard
|
||
**Fil:** `pilot/quality-dashboard.html`
|
||
**URL:** https://landvex.com/pilot/dashboard/
|
||
|
||
**KPI:er:**
|
||
| Mätvärde | Demo-värde | Mål |
|
||
|----------|-----------|-----|
|
||
| Observation Acceptance Rate | 87% | >85% |
|
||
| Average GPS Accuracy | 3.2m | <5m |
|
||
| Average Image Quality | 0.82 | >0.70 |
|
||
| AI Confidence | 76% | >70% |
|
||
| Auto Merge Rate | 68% | 60-80% |
|
||
| Manual Review Rate | 13% | <20% |
|
||
| Capture → UKG | 18s | <30s |
|
||
| Total Observations | 247 | 500 |
|
||
|
||
**Funktioner:**
|
||
- Real-time KPI-kort
|
||
- Kvalitetsgrafer över tid
|
||
- AI confidence distribution
|
||
- Senaste observationer (tabell)
|
||
- Systemhälsa (komponenter, latens, felrate)
|
||
- Auto-refresh var 30:e sekund
|
||
|
||
### 3. Customer Report Template
|
||
**Fil:** `pilot/customer-report-template.md`
|
||
**URL:** https://landvex.com/pilot/customer-report-template.md
|
||
|
||
**Innehåll:**
|
||
- Sammanfattning
|
||
- Dokumenterade objekt (gatlyktor, skyltar, brunnar, elskåp)
|
||
- Förändringar upptäckta (med allvarlighetsgrad)
|
||
- Områden med låg täckning
|
||
- Rekommenderade inspektioner (med kostnadsuppskattning)
|
||
- Teknisk information
|
||
- Bilagor (CSV, ZIP, GeoJSON)
|
||
|
||
### 4. Ontology Validation
|
||
**Fil:** `pilot/ontology-validation.js`
|
||
|
||
**Tester:**
|
||
|
||
| Test | Scenario | Resultat |
|
||
|------|----------|----------|
|
||
| **Power Failure** | Elskåp ur funktion → vilka påverkas? | PASS (3 lampor påverkade) |
|
||
| **Street Lamp Outage** | Gatlykta släckt → vilka vägar mörka? | PASS (väg + övergångsställe) |
|
||
| **Tree Growth Risk** | Träd växer → vilka skyltar skymda? | PASS (1 high risk, 1 medium) |
|
||
| **Path Analysis** | Väg från elskåp till väg | PASS (längd 2: powers → illuminates) |
|
||
| **Network Analysis** | Nätverk runt elskåp | PASS (6 objekt: 3 lampor, 2 vägar) |
|
||
|
||
**Resultat:** 5/5 PASS (100%)
|
||
|
||
### 5. UIOS v2.0 – Digital Twin
|
||
**Fil:** `uios/UIOS-v2.0-DIGITAL-TWIN.md`
|
||
**URL:** https://landvex.com/docs/UIOS-v2.0-DIGITAL-TWIN.md
|
||
|
||
**Vision:** "Från data collection till beslutsstöd"
|
||
|
||
**Komponenter:**
|
||
1. Kontinuerligt uppdaterad kunskapsgraf (real-time)
|
||
2. Tidsserieanalys (förändringar över tid)
|
||
3. Prediktion av underhållsbehov (failure prediction)
|
||
4. Prioritering av inspektioner (riskbaserad)
|
||
5. Multi-stakeholder support (kommun, fastighet, försäkring, trafikverk, energi)
|
||
|
||
**Use Cases:**
|
||
- Proaktivt underhåll (67% besparing)
|
||
- Säkerhetsanalys (40% färre olyckor)
|
||
- Fastighetsvärde (objektiv data)
|
||
|
||
**Roadmap:**
|
||
| Fas | Version | Fokus |
|
||
|-----|---------|-------|
|
||
| Foundation | v1.2 → v1.5 | Multi-city, time-series DB |
|
||
| Prediction | v1.5 → v1.8 | Degradation models, failure prediction |
|
||
| Digital Twin | v1.8 → v2.0 | Real-time, dashboards, analytics |
|
||
| Autonomy | v2.0+ | Autonomous planning, self-healing |
|
||
|
||
### Deploy Status
|
||
|
||
| Resurs | URL | Status |
|
||
|--------|-----|--------|
|
||
| Pilot Plan | https://landvex.com/pilot/bangkok-pilot-plan.md | ✅ Deployed |
|
||
| Dashboard | https://landvex.com/pilot/dashboard/ | ✅ Deployed |
|
||
| Report Template | https://landvex.com/pilot/customer-report-template.md | ✅ Deployed |
|
||
| UIOS v2.0 | https://landvex.com/docs/UIOS-v2.0-DIGITAL-TWIN.md | ✅ Deployed |
|
||
|
||
### Komplett UIOS Roadmap
|
||
|
||
| Version | Status | Fokus |
|
||
|---------|--------|-------|
|
||
| **v1.0** | ✅ Klar | Arkitektur, specifikation |
|
||
| **v1.1** | ✅ Klar | Real World Validation |
|
||
| **v1.2** | 📝 Spec | Multi-City |
|
||
| **v2.0** | 📝 Vision | Digital Twin |
|
||
|
||
### Nästa steg (högsta prioritet)
|
||
|
||
1. **Bangkok Pilot** (2026-07-07)
|
||
- Rekrytera 3 Zoomers
|
||
- Köra 2-veckors pilot
|
||
- Validera hela kedjan
|
||
|
||
2. **Mäta datakvalitet**
|
||
- Använda Quality Dashboard
|
||
- Tracke KPI:er dagligen
|
||
|
||
3. **Generera customer report**
|
||
- Första rapport från verklig data
|
||
- Visa beslutsstöd
|
||
|
||
4. **Validera ontologin**
|
||
- Testa med verkliga observationer
|
||
- Mäta nytta
|
||
|
||
---
|
||
|
||
## 2026-06-28 (eftermiddag) — FOKUSÄNDRING: Validering före vidareutveckling
|
||
|
||
**Beslut:** Inga nya komponenter förrän UIOS är validerat med verkliga användare.
|
||
|
||
**Anledning:** Arkitekturen täcker stora delar av den tekniska grunden. Nästa osäkerhet är om systemet fungerar med verkliga användare och verkliga data.
|
||
|
||
### Prioritering (enligt Erik)
|
||
|
||
| # | Prioritet | Aktivitet | Syfte |
|
||
|---|-----------|-----------|-------|
|
||
| 1 | **HÖGSTA** | Multi-City Pilot | Testa om samma pipeline fungerar i olika miljöer |
|
||
| 2 | **Viktig** | Zoomer API (förenklat) | Endast det som behövs för piloten |
|
||
| 3 | **Senare** | Admin Panel deploy | Först när piloten är redo |
|
||
|
||
### Tvåveckorsmål
|
||
|
||
**"Bevisa att UIOS kan skapa ett korrekt Urban Knowledge Graph från verklig data."**
|
||
|
||
- 10 Zoomers
|
||
- 3 städer (Bangkok, Torrevieja, Stockholm)
|
||
- 5,000–10,000 observationer
|
||
- Flera typer av infrastruktur
|
||
- Komplett kedja: uppdrag → observation → AI → kunskapsgraf → verifiering
|
||
|
||
### Tre städer
|
||
|
||
| Stad | Typ | Klimat | Status |
|
||
|------|-----|--------|--------|
|
||
| **Bangkok** | Tropisk storstad | Tropiskt | Vecka 1 |
|
||
| **Torrevieja** | Mindre medelhavsstad | Medelhav | Vecka 2 |
|
||
| **Stockholm** | Nordisk stad | Tempererad | Vecka 2 |
|
||
|
||
### STOPP-kriterier
|
||
|
||
- Mindre än 50% acceptance rate efter 3 dagar
|
||
- Genomsnittlig GPS-accuracy > 10m
|
||
- Fler än 50% manuella reviews
|
||
- Zoomers slutar av frustration
|
||
|
||
### Nästa steg
|
||
|
||
1. **Vecka 1:** Bangkok pilot (3 Zoomers, 200+ observationer)
|
||
2. **Vecka 2:** Torrevieja + Stockholm (6 Zoomers, 400+ observationer)
|
||
3. **Review:** Jämför KPI:er mellan städer
|
||
4. **Beslut:** Skala upp, iterera, eller omvärdera
|
||
|
||
### Viktigt
|
||
|
||
**BYGG INGA NYA KOMPONENTER förrän valideringen är klar.**
|
||
|
||
Fokusera på att få existerande kod att fungera med verkliga användare.
|
||
|
||
### URL:ar
|
||
|
||
| Resurs | URL |
|
||
|--------|-----|
|
||
| Validation Plan | https://landvex.com/pilot/VALIDATION-PLAN.md |
|
||
| Bangkok Pilot | https://landvex.com/pilot/bangkok-pilot-plan.md |
|
||
| Quality Dashboard | https://landvex.com/pilot/dashboard/ |
|
||
| UIOS v2.0 Vision | https://landvex.com/docs/UIOS-v2.0-DIGITAL-TWIN.md |
|
||
|
||
---
|
||
|
||
## 2026-06-28 (eftermiddag) — Gold Reference Routes
|
||
|
||
**Beslut:** QUIXZOOM-teamet (Erik) samlar själva in de första datamängderna.
|
||
|
||
**Fördelar:**
|
||
1. **Högkvalitativt referensdataset** — idealiskt för att träna och utvärdera modeller
|
||
2. **Praktisk erfarenhet** — upptäcka problem med GPS, kameravinklar, ljus, instruktioner innan skalning
|
||
|
||
### Reference Regions
|
||
|
||
| Region | Stad | Typ |
|
||
|--------|------|-----|
|
||
| Bangkok | Bangkok | Tropisk storstad |
|
||
| Torrevieja | Torrevieja | Medelhavsmiljö |
|
||
| Stockholm innerstad | Stockholm | Tät nordisk stad |
|
||
| Nacka | Stockholm | Förort |
|
||
| Tyresö | Stockholm | Villaområde |
|
||
| Haninge | Stockholm | Blandad kommun |
|
||
|
||
### Gold Reference Route — Specifikation
|
||
|
||
| Egenskap | Krav |
|
||
|----------|------|
|
||
| Längd | 5–10 km |
|
||
| Tid | 2–3 timmar |
|
||
| Täckning | Komplett för alla objekttyper |
|
||
| Frekvens | Minst 1 gång/vecka |
|
||
| Villkor | Dag, kväll, natt, sol, regn |
|
||
|
||
### Objekttyper
|
||
|
||
- Gator, trottoarer, cykelbanor
|
||
- Gatlyktor, trafikljus
|
||
- Skyltar (stop, hastighet, vägvisning)
|
||
- Elskåp, brunnar, avlopp
|
||
- Träd, buskar, gräs
|
||
- Busshållplatser, övergångsställen
|
||
- Offentliga byggnader, parkeringar
|
||
- Broar
|
||
|
||
### Förhållanden
|
||
|
||
| Förhållande | Syfte |
|
||
|-------------|-------|
|
||
| Dag (10-14) | Baseline-belysning |
|
||
| Kväll (17-19) | Övergångsljus |
|
||
| Natt (21-23) | Konstljus, reflektioner |
|
||
| Sol | Skuggor, bländning |
|
||
| Regn | Reflektioner, skydd |
|
||
| Vinter (Sverige) | Snö, is, mörker |
|
||
| Sommar | Lövverk, ljus |
|
||
|
||
### Användning
|
||
|
||
1. **Modellträning** — högkvalitativ data
|
||
2. **Modellutvärdering** — jämför versioner
|
||
3. **Förändringsdetektering** — automatisk diff
|
||
4. **Benchmarking** — standardiserat test
|
||
|
||
### Första rutterna
|
||
|
||
| Stad | Rutt | Längd | Ansvarig | Start |
|
||
|------|------|-------|----------|-------|
|
||
| Bangkok | Sukhumvit Soi 1-20 | 5 km | Somchai + Erik | 2026-07-07 |
|
||
| Torrevieja | Playa del Cura till centrum | 6 km | Erik | 2026-07-14 |
|
||
| Stockholm | Gamla Stan till Södermalm | 7 km | Erik | 2026-07-21 |
|
||
| Nacka | Sickla till Järla sjö | 8 km | Team | 2026-07-28 |
|
||
| Tyresö | Bollmora till Tyresö slott | 10 km | Team | 2026-08-04 |
|
||
| Haninge | Handen till Jordbro | 7 km | Team | 2026-08-11 |
|
||
|
||
### Budget
|
||
|
||
| Post | Belopp |
|
||
|------|--------|
|
||
| Resor (6 städer) | 30,000 kr |
|
||
| Utrustning | 15,000 kr |
|
||
| Tid (2 veckor) | 80,000 kr |
|
||
| Annotation | 20,000 kr |
|
||
| **Totalt** | **145,000 kr** |
|
||
|
||
### URL
|
||
https://landvex.com/pilot/GOLD-REFERENCE-ROUTES.md
|
||
|
||
---
|
||
|
||
## 2026-06-28 (eftermiddag) — Execution Plan Uppdaterad
|
||
|
||
**Beslut:** AI-pipeline först, sedan Gold Route, sedan skalning.
|
||
|
||
### Beroendekedja
|
||
|
||
```
|
||
Steg 1: AI-pipeline (RIKTIGA modeller)
|
||
↓
|
||
Steg 2: Gold Route Bangkok (själva)
|
||
↓
|
||
Steg 3: Verifiera hela loopen
|
||
↓
|
||
Steg 4: Rekrytera Zoomers (skala)
|
||
```
|
||
|
||
### Nya mål (ersätter "200 observationer")
|
||
|
||
| Mål | Värde |
|
||
|-----|-------|
|
||
| Observationer | **10 000** |
|
||
| Unika objekt | **1 000** |
|
||
| Korrekt identifierade | **95%** |
|
||
| Automatiskt godkända | **90%** |
|
||
| Komplett UKG | **Bangkok Sukhumvit** |
|
||
|
||
### Tidsplan
|
||
|
||
| Vecka | Steg | Aktivitet |
|
||
|-------|------|-----------|
|
||
| v28 (nu) | 1 | Installera AI-modeller |
|
||
| v29 (7-13 jul) | 2 | Gold Route Bangkok (10 000 obs) |
|
||
| v30 (14-20 jul) | 3 | Verifiera loopen (1 000 objekt i UKG) |
|
||
| v31 (21-27 jul) | 4 | Rekrytera Zoomers |
|
||
|
||
### Tekniska fixar (innan Steg 2)
|
||
|
||
| Problem | Kommando |
|
||
|---------|----------|
|
||
| npm permissions | `sudo chown -R 991:990 /home/bernt/.npm` |
|
||
| YOLOv8 | `pip install ultralytics` |
|
||
| Grounding DINO | `pip install groundingdino-py` |
|
||
| SAM2 | `pip install segment-anything-2` |
|
||
| OCR | `pip install easyocr` |
|
||
| Depth | `pip install midas` |
|
||
|
||
### STOPP-kriterier
|
||
|
||
- AI-modeller inte installerade inom 3 dagar
|
||
- < 50% detection accuracy på Bangkok-data
|
||
- OIE merge rate < 60% eller > 90%
|
||
- Systemet kräver manuell intervention varje observation
|
||
|
||
### URL
|
||
https://landvex.com/pilot/EXECUTION-PLAN.md
|
||
|
||
---
|
||
|
||
## 2026-06-28 (kväll) — AI-strategi: Cloud Vision Bootstrap + Eget Dataset
|
||
|
||
**Beslut:** Kombinationsstrategi enligt Eriks rekommendation.
|
||
|
||
### Fas 1: Cloud Vision Bootstrap (denna veckan)
|
||
|
||
**Syfte:** Få igång piloten och hela arbetsflödet.
|
||
|
||
**Användning:**
|
||
- Automatiskt föreslå annotationer
|
||
- Bygga första gold dataset
|
||
- Validera UIOS-pipelinen
|
||
- Testa Mission Planner och UKG med riktiga detektioner
|
||
|
||
**Status:** ✅ Klar (installerad, väntar på API-nyckel)
|
||
|
||
### Fas 2: Eget Dataset (parallellt)
|
||
|
||
**Mål per objekttyp:**
|
||
|
||
| Objekttyp | Mål |
|
||
|-----------|-----|
|
||
| Street lamp | 5 000 |
|
||
| Traffic sign | 5 000 |
|
||
| Manhole | 3 000 |
|
||
| Electrical cabinet | 2 000 |
|
||
| Bench | 2 000 |
|
||
| Trees | 10 000 |
|
||
|
||
**Källor:** Bangkok, Torrevieja, Stockholm, Nacka, Tyresö, Haninge
|
||
|
||
### Fas 3: Egen Modell
|
||
|
||
**Ensemble:**
|
||
- YOLOv11 för realtid
|
||
- Grounding DINO för öppna kategorier
|
||
- SAM2 för segmentering
|
||
- OCR för text
|
||
- Specialmodell för Object Identity
|
||
|
||
### Infrastructure Vocabulary
|
||
|
||
**50 objekt i 7 kategorier:**
|
||
|
||
| Kategori | Antal | Exempel |
|
||
|----------|-------|---------|
|
||
| Lighting | 6 | street_lamp, traffic_light |
|
||
| Road | 10 | asphalt, pothole, manhole_cover |
|
||
| Utility | 6 | electrical_cabinet, fire_hydrant |
|
||
| Traffic | 8 | stop_sign, speed_sign |
|
||
| Vegetation | 6 | tree, bush, hedge |
|
||
| Furniture | 7 | bench, trash_can, bike_rack |
|
||
| Buildings | 7 | facade, window, roof |
|
||
|
||
### Teknisk Status
|
||
|
||
| Modell | Status | Kommentar |
|
||
|--------|--------|-----------|
|
||
| YOLOv8 (COCO) | ✅ Installerad | Begränsade klasser |
|
||
| YOLOv8-World | ✅ Installerad | Zero-shot, 0 detektioner på Bangkok |
|
||
| Grounding DINO | 🟡 Problem | CUDA-kompatibilitet |
|
||
| Cloud Vision | ✅ Installerad | Väntar på API-nyckel |
|
||
| SAM2 | 🔴 Ej installerad | Väntar på Fas 3 |
|
||
|
||
### Nästa steg
|
||
|
||
1. **Skaffa Google Cloud Vision API-nyckel**
|
||
2. **Testa på Bangkok-bilder** (automatiskt)
|
||
3. **Bygg gold dataset** (manuell review)
|
||
4. **Starta Gold Route insamling** (Erik + Somchai)
|
||
5. **Parallellt:** Annotera och bygga eget dataset
|
||
|
||
### Filer skapade
|
||
|
||
| Fil | Syfte |
|
||
|-----|-------|
|
||
| `ai-pipeline/cloud-vision-bootstrap.js` | Cloud Vision integration |
|
||
| `ai-pipeline/INFRASTRUCTURE-VOCABULARY.md` | 50 objekt, 7 kategorier |
|