Files
boc/iom/ai_pipeline/configs/training_config.yaml
T
Bernt bae705aa97 ARCHITECTURE: NFC roadmap, edge AI, audit logging
- 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
2026-06-29 16:24:48 +00:00

240 lines
4.2 KiB
YAML

# AI Produktionsmodell — Träningskonfiguration
# Zoomer-submissions granskning
project:
name: "quixzoom-ai-production"
version: "1.0.0"
description: "AI-granskning av Zoomer-submissions för IOM"
dataset:
# Klasser för objektdetektering
classes:
- street_light
- traffic_sign
- bench
- trash_can
- sidewalk
- road
- building
- bridge
- tree
- graffiti
- pothole
- crack
- corrosion
- broken_glass
- missing_parts
- water_damage
- vegetation_overgrowth
- illegal_dumping
- broken_pavement
- faded_markings
num_classes: 20
# Dataset-splits
splits:
train: 0.70
val: 0.15
test: 0.15
# Minsta dataset-storlek per klass
min_samples_per_class: 100
# Bildstorlek
image_size: 640
# Augmentation
augmentation:
enabled: true
target_multiplier: 10
geometric:
rotation: [-15, 15]
scale: [0.8, 1.2]
shear: [-5, 5]
flip_h: 0.5
flip_v: 0.0
photometric:
brightness: [0.7, 1.3]
contrast: [0.7, 1.3]
saturation: [0.5, 1.5]
hue: [-10, 10]
noise:
gaussian_prob: 0.3
gaussian_std: [5, 15]
jpeg_prob: 0.3
jpeg_quality: [60, 95]
blur_prob: 0.2
blur_radius: [0.5, 2.0]
weather:
rain_prob: 0.1
fog_prob: 0.1
shadow_prob: 0.15
overexposure_prob: 0.1
underexposure_prob: 0.1
models:
# YOLOv8 för objektdetektering
yolo:
model_type: "yolov8n" # nano, small, medium, large, xlarge
pretrained: true
training:
epochs: 100
batch_size: 16
learning_rate: 0.001
weight_decay: 0.0005
momentum: 0.937
# Early stopping
patience: 20
min_delta: 0.001
# Data loading
num_workers: 8
pin_memory: true
# Augmentation (Ultralytics inbyggd)
hsv_h: 0.015
hsv_s: 0.7
hsv_v: 0.4
degrees: 15
translate: 0.1
scale: 0.5
shear: 5
perspective: 0.0
flipud: 0.0
fliplr: 0.5
mosaic: 1.0
mixup: 0.1
copy_paste: 0.1
inference:
conf_threshold: 0.25
iou_threshold: 0.45
max_det: 300
# CLIP för scenklassificering
clip:
model_name: "openai/clip-vit-base-patch32"
fine_tuning:
epochs: 20
batch_size: 32
learning_rate: 0.00005
warmup_steps: 500
scene_labels:
- "street view"
- "building facade"
- "bridge"
- "road"
- "sidewalk"
- "park"
- "industrial area"
- "residential area"
- "commercial area"
- "construction site"
# Defekt-klassificerare
defect_classifier:
architecture: "resnet50"
num_classes: 20
training:
epochs: 50
batch_size: 64
learning_rate: 0.001
defect_codes:
"1100": "surface_rust"
"2100": "dirt_accumulation"
"2300": "surface_damage"
"2400": "graffiti"
"4100": "missing_parts"
"4200": "broken_parts"
"5100": "physical_blockage"
"6200": "water_damage"
metrics:
# Objektdetektering
detection:
- mAP50
- mAP50-95
- precision
- recall
- f1_score
# Per-klass metrics
per_class:
- precision
- recall
- f1_score
- ap50
- support
# Scenklassificering
classification:
- accuracy
- top5_accuracy
- precision_macro
- recall_macro
- f1_macro
# Defektdetektering
defect:
- accuracy
- precision
- recall
- f1_score
- confusion_matrix
# Träningsmål
targets:
mAP50: 0.85
mAP50_95: 0.70
precision: 0.88
recall: 0.85
f1_score: 0.86
# Per-klass minimum
per_class_min_ap50: 0.70
per_class_min_recall: 0.75
# Export
export:
formats:
- pytorch
- onnx
- torchscript
- openvino
- tensorrt
optimization:
quantization: true
pruning: false
distillation: false
# Produktion
deployment:
# API
api:
host: "0.0.0.0"
port: 8000
workers: 4
# Batch processing
batch:
max_batch_size: 32
timeout_ms: 5000
# Modell-uppdatering
model_update:
auto_retrain: false
retrain_threshold: 0.05 # mAP drop
retrain_schedule: "weekly"