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
219 lines
6.2 KiB
Markdown
219 lines
6.2 KiB
Markdown
# AI-arkitektur — QUIXZOOM/UIOS
|
|
|
|
**Version:** 1.0
|
|
**Datum:** 2026-06-29
|
|
**Syfte:** Kombinationsstrategi för AI-pipeline
|
|
|
|
---
|
|
|
|
## Översikt
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ AI-ARKITEKTUR │
|
|
├─────────────────────────────────────────────────────────────┤
|
|
│ │
|
|
│ FAS 1: CLOUD VISION (Bootstrap) │
|
|
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
|
│ │ Bilder │───→│Cloud Vision │───→│ Annotation │ │
|
|
│ │ (Bangkok) │ │ API │ │ Förslag │ │
|
|
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
|
│ │
|
|
│ FAS 2: EGET DATASET (Parallellt) │
|
|
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
|
│ │ Bilder │───→│ Manuell │───→│ Gold Labels │ │
|
|
│ │(Multi-City) │ │ Annotation │ │ │ │
|
|
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
|
│ │
|
|
│ FAS 3: EGEN MODELL (Ensemble) │
|
|
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
|
│ │ Gold │───→│ Träning │───→│ YOLOv11 │ │
|
|
│ │ Dataset │ │ │ │ + Ensemble │ │
|
|
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
|
│ │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## Fas 1: Cloud Vision Bootstrap
|
|
|
|
### Syfte
|
|
- Få igång piloten snabbt
|
|
- Automatiska annotationer
|
|
- Validera UIOS-pipeline
|
|
|
|
### Teknik
|
|
- **Google Cloud Vision API**
|
|
- Dedikerat projekt: `quixzoom-ai-bootstrap`
|
|
- Begränsade nycklar
|
|
- Budgetvarningar
|
|
|
|
### Kostnad
|
|
- ~$0.0015/bild
|
|
- Budget: 1000 kr/mån
|
|
|
|
### Output
|
|
- Annotation-förslag
|
|
- Första gold dataset
|
|
- Benchmark-data
|
|
|
|
---
|
|
|
|
## Fas 2: Eget Dataset
|
|
|
|
### Mål per objekttyp
|
|
|
|
| Objekttyp | Mål | Källor |
|
|
|-----------|-----|--------|
|
|
| Street lamp | 5 000 | Bangkok, Torrevieja, Stockholm |
|
|
| Traffic sign | 5 000 | Bangkok, Torrevieja, Stockholm |
|
|
| Manhole | 3 000 | Bangkok, Stockholm |
|
|
| Electrical cabinet | 2 000 | Bangkok, Stockholm |
|
|
| Bench | 2 000 | Torrevieja, Stockholm |
|
|
| Trees | 10 000 | Alla regioner |
|
|
|
|
### Process
|
|
1. Samla bilder (Gold Routes)
|
|
2. AI-förslag (Cloud Vision)
|
|
3. Manuell granskning
|
|
4. Gold labels
|
|
5. Spara allt
|
|
|
|
---
|
|
|
|
## Fas 3: Egen Modell (Ensemble)
|
|
|
|
### Komponenter
|
|
|
|
| Modell | Syfte | Input |
|
|
|--------|-------|-------|
|
|
| **YOLOv11** | Realtidsdetektion | Bild |
|
|
| **Grounding DINO** | Öppna kategorier | Bild + text-prompt |
|
|
| **SAM2** | Segmentering | Bild + bounding box |
|
|
| **OCR** | Textläsning | Bild-region |
|
|
| **Object Identity** | Unik identifiering | Bild + metadata |
|
|
|
|
### Träning
|
|
- Dataset: Gold labels från Fas 2
|
|
- Mål: mAP@50 > 0.90
|
|
- Validering: 20% av data
|
|
|
|
---
|
|
|
|
## Infrastructure Vocabulary
|
|
|
|
### Kategorier (7)
|
|
|
|
```
|
|
lighting (6 objekt)
|
|
road (10 objekt)
|
|
utility (6 objekt)
|
|
traffic (8 objekt)
|
|
vegetation (6 objekt)
|
|
furniture (7 objekt)
|
|
buildings (7 objekt)
|
|
```
|
|
|
|
### Totalt: 50 objekt
|
|
|
|
Alla modeller tränas mot samma vokabulär.
|
|
|
|
---
|
|
|
|
## Dataflöde
|
|
|
|
```
|
|
Bild (Zoomer/App)
|
|
↓
|
|
AI-analys (Cloud Vision / Egen modell)
|
|
↓
|
|
Detektioner (label, confidence, bbox)
|
|
↓
|
|
Mappning till vokabulär
|
|
↓
|
|
Manuell granskning (om behövs)
|
|
↓
|
|
Gold label
|
|
↓
|
|
Spara (raw + corrected + gold)
|
|
↓
|
|
Uppdatera UKG
|
|
↓
|
|
Export för träning
|
|
```
|
|
|
|
---
|
|
|
|
## Lagring
|
|
|
|
### Struktur
|
|
|
|
```
|
|
/data/ai-results/
|
|
├── raw/ # Råa AI-resultat
|
|
├── corrected/ # Manuellt korrigerade
|
|
├── gold/ # Verifierade gold labels
|
|
├── models/ # Modell-specifika loggar
|
|
├── index.json # Index över alla observationer
|
|
└── metadata.json # Metadata
|
|
```
|
|
|
|
### Schema per observation
|
|
|
|
```json
|
|
{
|
|
"observationId": "obs-123",
|
|
"timestamp": "2026-06-29T10:00:00Z",
|
|
"imagePath": "/data/images/bangkok_001.jpg",
|
|
"imageHash": "sha256:abc...",
|
|
"model": "cloud_vision",
|
|
"modelVersion": "v1",
|
|
"detections": [...],
|
|
"manualCorrection": {...},
|
|
"goldLabel": {...},
|
|
"region": "bangkok",
|
|
"cost": 0.0015,
|
|
"latency": 250,
|
|
"quality": {
|
|
"aiAccuracy": 0.85,
|
|
"needsReview": false
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## Benchmark
|
|
|
|
### Jämförelse
|
|
|
|
| Modell | Precision | Recall | Kostnad/bild | Latens |
|
|
|--------|-----------|--------|--------------|--------|
|
|
| Cloud Vision | TBD | TBD | $0.0015 | ~250ms |
|
|
| YOLOv8 | TBD | TBD | $0 | ~100ms |
|
|
| Grounding DINO | TBD | TBD | $0 | ~500ms |
|
|
| Egen modell | TBD | TBD | $0 | ~50ms |
|
|
|
|
### Metod
|
|
1. Samma dataset (Bangkok, Torrevieja, Stockholm)
|
|
2. Gold labels för utvärdering
|
|
3. Mät precision/recall per kategori
|
|
4. Jämför kostnad och latens
|
|
|
|
---
|
|
|
|
## Nästa steg
|
|
|
|
1. ✅ Skapa Google Cloud-projekt
|
|
2. ✅ Installera Cloud Vision
|
|
3. 🔄 Skaffa API-nyckel
|
|
4. ⏳ Kör benchmark på Bangkok
|
|
5. ⏳ Bygg gold dataset
|
|
6. ⏳ Starta Gold Route insamling
|
|
7. ⏳ Träna egen modell
|
|
|
|
---
|
|
|
|
*Senast uppdaterad: 2026-06-29*
|