# 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 |