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
5.2 KiB
5.2 KiB
QUIXZOOM Urban Video Ingestion Pipeline
Skalbar pipeline för att upptäcka, indexera och processa publikt tillgängliga city walking videos för urban intelligence och infrastrukturanalys.
Arkitektur
Discovery (YouTube API)
│
▼
Video Index (Redis)
│
▼
Download Queue
│
▼
Frame Extractor (FFmpeg)
├── Time-based (var 5:e sekund)
├── Scene change detection
└── Motion-based
│
▼
AI Annotator (15 modeller)
├── Scene Classification
├── Semantic Segmentation
├── OCR
├── Object Detection
├── Traffic Sign Detection
├── Building Detection
├── Road Surface Analysis
├── Sidewalk Analysis
├── Pole Detection
├── Utility Box Detection
├── Pavement Crack Detection
├── Vegetation Detection
├── Lighting Detection
├── Storefront Detection
└── Accessibility Detection
│
▼
Dataset Builder
├── Roads
├── Sidewalks
├── Crosswalks
├── Buildings
├── Trees
├── Utility Infrastructure
├── Traffic Infrastructure
├── Signage
├── Lighting
├── Accessibility
├── Commercial Areas
└── Urban Density
│
▼
Training Dataset (JSONL)
Komponenter
1. Discovery (discovery/youtube-discovery.js)
Söker efter city walking videos på YouTube:
- 25 söktermer (generella + stadsspecifika)
- Filtrerar endast Creative Commons-licensierade videos
- Extraherar stad och land från titel/beskrivning
- Indexerar i Redis
Söktermer:
'4K City Walk', 'Walking Tour', 'Street Walk',
'Bangkok Walk', 'Tokyo Walk', 'London Walk',
'Walking Downtown', 'Night Walk', 'POV Walk'
2. Frame Extractor (processing/frame-extractor.js)
Extraherar frames med 3 strategier:
- Time-based: Var 5:e sekund
- Scene change: Vid scenförändringar (threshold: 0.3)
- Motion-based: Vid hög rörelse
Deduplicering: Tar bort frames < 2 sekunder från varandra.
3. AI Annotator (processing/ai-annotator.js)
15 AI-modeller körs på varje frame:
| Modell | Funktion |
|---|---|
| Scene Classification | 20 scener (road, commercial, park, etc.) |
| Semantic Segmentation | Pixel-nivå klassificering |
| OCR | Text-extraktion (eng+tha+deu+fra+spa) |
| Object Detection | 80 COCO-klasser |
| Traffic Sign Detection | 13 skylttyper |
| Building Detection | Typ, höjd, position |
| Road Surface Analysis | 10 yt-typer + sprickor |
| Sidewalk Analysis | Bredd, skick, tillgänglighet |
| Pole Detection | 6 pol-typer |
| Utility Box Detection | El/telecom/trafik |
| Crack Detection | Antal, längd, allvarlighet |
| Vegetation Detection | Träd, täckning, hälsa |
| Lighting Detection | Gatlampor, tid på dygnet |
| Storefront Detection | 10 affärstyper |
| Accessibility Detection | Rullstolsramp, ledstråk, etc. |
4. Dataset Builder (dataset-builder/builder.js)
Bygger 12 specialiserade dataset i JSONL-format:
| Dataset | Innehåll |
|---|---|
| roads.jsonl | Vägtyp, skick, sprickor |
| sidewalks.jsonl | Bredd, skick, tillgänglighet |
| crosswalks.jsonl | Övergångsställen, trafikljus |
| buildings.jsonl | Byggnader, höjd, typ |
| trees.jsonl | Träd, täckning, hälsa |
| utility_infrastructure.jsonl | Elstolpar, skåp, kablage |
| traffic_infrastructure.jsonl | Trafikljus, skyltar |
| signage.jsonl | OCR-text, affärer |
| lighting.jsonl | Belysning, tid på dygnet |
| accessibility.jsonl | Tillgänglighetsfunktioner |
| commercial_areas.jsonl | Affärer, restauranger, hotell |
| urban_density.jsonl | Folk- och fordonsdensitet |
Snabbstart
1. Installation
git clone https://github.com/quixzoom/video-pipeline.git
cd quixzoom-video-pipeline
npm install
2. Konfiguration
cp .env.example .env
# Redigera .env med dina värden
3. Kör discovery
npm run discover
4. Extrahera frames
npm run extract -- --video=/path/to/video.mp4 --output=./frames
5. Kör AI-analys
npm run annotate -- --input=./frames --output=./annotations
6. Bygg dataset
npm run build-dataset -- --input=./annotations --output=./datasets
Miljövariabler
| Variabel | Beskrivning |
|---|---|
YOUTUBE_API_KEY |
YouTube Data API v3 key |
REDIS_HOST |
Redis host |
REDIS_PORT |
Redis port |
REDIS_PASSWORD |
Redis password |
Datakällor
Prioriterade källor:
- YouTube City Walk channels (Creative Commons)
- QUIXZOOM user captures (egen data)
- Öppna dataset (Cityscapes, etc.)
- OpenStreetMap
- Offentliga geodata
Juridisk hänsyn:
- Endast Creative Commons-licensierade videos
- Egeninsamlad data från QUIXZOOM
- Respektera upphovsrätt
Output-format
JSONL-exempel (roads.jsonl)
{
"image": "/path/to/frame_001.jpg",
"labels": {
"surface_type": "asphalt_fair",
"surface_confidence": 0.82,
"has_cracks": true,
"crack_severity": "medium",
"road_pixels": 34.5
},
"metadata": {
"city": "Bangkok",
"country": "Thailand",
"timestamp": "2026-06-28T08:15:30Z"
}
}
Licens
MIT © LandveX Inc.