Skip to content

Software Architectuur: AI-Componenten

Inleiding & Scope

Projectbeschrijving

Het Signapse project is een toegankelijkheidsoplossing die gebarentaal vertaalt naar tekst met behulp van een app op een mobiele telefoon. Het systeem maakt gebruik van computer vision en deep learning om handgebaren en gebarentaal in real-time te herkennen en te interpreteren.

Scope van dit document

Dit document beschrijft uitsluitend de AI-componenten en hun integratie binnen de totale software-architectuur van het Signapse project. De focus ligt op de deep learning modellen voor ASL, VGT en LSTM-gebaseerde woordherkenning, de MediaPipe feature extraction pipeline, de API-laag die de AI-functionaliteit aanbiedt, en de gebruikte technologieën en frameworks.

Voor een deep-dive in het smart_gestures package, model lifecycle en alle CLI-opties, zie AI-Packages.md.

Overzicht Architectuur

High-level AI-architectuur

Het Signapse AI-systeem bestaat uit een multi-model pipeline die verschillende soorten gebaren kan herkennen:

  1. Alfabet-herkenning: Individuele letters in American Sign Language (ASL) en Vlaams Gebarentaal (VGT)
  2. Woord-herkenning: Volledige woorden via sequentiële keypoint-analyse met LSTM

Alle modellen zijn gebundeld in het smart_gestures Python package en worden aangeboden via een FastAPI backend.

Contextdiagram

graph LR
  %% ====== CAPTURE LAYER ======
  subgraph Capture["Capture layer"]
    CAM["Camera / Frames<br/>(Smartphone / SmartGlasses)"]
  end

  %% ====== FEATURE EXTRACTION ======
  subgraph FeatureExtraction["Feature extraction (MediaPipe)"]
    MP["MediaPipe Hands & Pose<br/>21 hand landmarks · 33 pose landmarks"]
    KP["Keypoints / Landmarks<br/>numeric features"]
  end

  %% ====== AI MODELS ======
  subgraph Models["AI models (PyTorch)"]
    ASL["ASL Alphabet Model<br/>Feed-forward NN (63-dim)"]
    VGT["VGT Alphabet Model<br/>Feed-forward NN (63-dim)<br/>'wrist_to_middle' normalisation"]
    LSTM["LSTM Word Model<br/>40 × 258 sequence (Pose + Hands)"]
  end

  %% ====== BACKEND ======
  subgraph Backend["Backend (FastAPI)"]
    API["REST API<br/>/alphabet/{asl|vgt}/predict<br/>/alphabet/{asl|vgt}/classes<br/>/keypoints/"]
    WS["WebSocket<br/>/ws – streaming feedback"]
  end

  %% ====== CLIENT ======
  subgraph Client["Client (Expo / React Native / Web)"]
    UI["Camera & UI scherm<br/>(Client/app/camera.tsx)"]
    APIClient["API client<br/>Client/lib/api.ts"]
  end

  %% ====== TRAINING PIPELINE ======
  subgraph Training["Training & evaluatie<br/>(notebooks + utilities)"]
    DATAUTILS["data_utils.py<br/>preprocessing & augmentatie"]
    MODELUTILS["model_utils.py<br/>modeldefinities (ASL/VGT/LSTM)"]
    TRAIN["train_utils.py & run_training.py<br/>train / eval / save .pth"]
    NB["Jupyter-notebooks<br/>model_*.ipynb"]
  end

  %% -------- DATAFLOW: CAPTURE → FEATURES --------
  CAM --> MP --> KP

  %% -------- DATAFLOW: FEATURES → MODELS --------
  KP --> ASL
  KP --> VGT
  KP --> LSTM

  %% -------- MODELS → BACKEND API --------
  ASL --> API
  VGT --> API
  LSTM --> API

  API --> WS

  %% -------- CLIENT → BACKEND --------
  UI --> CAM
  UI --> APIClient --> API
  WS --> UI

  %% -------- TRAINING PIPELINE → MODELS --------
  NB --> TRAIN
  DATAUTILS --> TRAIN
  MODELUTILS --> TRAIN
  TRAIN -->|save .pth modelbestanden| ASL
  TRAIN -->|save .pth modelbestanden| VGT
  TRAIN -->|save .pth modelbestanden| LSTM

AI-Componenten

De specifieke AI-componenten worden in detail beschreven in de volgende secties:

Zie ook:

Conclusie

De AI-architectuur van het Signapse project combineert moderne deep learning technieken met pragmatische software engineering. Het systeem gebruikt MediaPipe als robuuste feature extractor en PyTorch feed-forward networks voor snelle alfabet-herkenning in zowel ASL als VGT. Voor contextuele woord-herkenning wordt een PyTorch LSTM ingezet, terwijl de modulaire package-structuur zorgt voor eenvoudige uitbreidbaarheid. De integratie gebeurt via een platform-agnostische REST API die real-time performance mogelijk maakt, zelfs op CPU-only apparaten.

De architectuur is ontworpen met schaalbaarheid en onderhoudbaarheid in gedachten, waardoor nieuwe modellen, talen of functies eenvoudig toegevoegd kunnen worden zonder grote refactoring.


Document-informatie:

  • Versie: 1.3
  • Datum: December 2025
  • Auteurs: Lynn Delaere
  • Contact: Zie GitHub repository