Skip to content

fix: landmark dim, preprocessing consistency, training script - #1

Open
esmasila wants to merge 3 commits into
mainfrom
claude/stoic-wozniak
Open

fix: landmark dim, preprocessing consistency, training script#1
esmasila wants to merge 3 commits into
mainfrom
claude/stoic-wozniak

Conversation

@esmasila

@esmasila esmasila commented Mar 6, 2026

Copy link
Copy Markdown
Owner

Summary

  • landmark boyutu hatası giderildi: preprocess.py'de _combine_landmarks() yalnızca 468 yüz landmark'ının ilk 33'ünü alıyordu. Bu durum toplam feature boyutunu 1629 yerine 324 yapıyordu. MultimodalDigitsCNN'in beklediği landmark_dim=1629 ile uyumsuzdu. Artık tüm 468 yüz landmark'ı kullanılıyor.
  • API ön işleme tutarsızlığı giderildi: /predict endpoint'i yalnızca orada uygulanan adaptive thresholding ile CNN'nin renk bilgisini yok ediyordu. Kaldırıldı. Her iki endpoint de artık aynı ham görüntüyü işliyor.
  • Eksik ultralytics eklendi: requirements.txt'e ultralytics>=8.0.0 eklendi; service.py ve train_yolo.py bu paketi import ediyor ama eksikti.
  • SEQUENCE_MODEL_CONFIG.num_classes düzeltildi: 100 → 10 (yalnızca rakam sınıfları tanımlı).
  • Eğitim scripti oluşturuldu: signbridge/training/train_multimodal.py — landmark önbellekleme, veri artırma, train/val/test bölünmesi, early stopping, LR scheduling ve checkpoints/multimodal_digits_best.pt kaydını içeriyor.

Modeli eğitmek için

# 1. Veri setini indir
# Sign-Language-Digits-Dataset-master'ı data/raw/ içine koy

# 2. Bağımlılıkları kur
pip install -r requirements.txt

# 3. Eğit
python -m signbridge.training.train_multimodal

# 4. API'yi başlat
python -m signbridge.api.service

Test plan

  • python -m signbridge.training.train_multimodal başarıyla çalışır ve checkpoints/multimodal_digits_best.pt oluşturur
  • python -m signbridge.api.service model checkpoint ile başarıyla başlar
  • /predict ve /predict/image endpoint'leri aynı sonuçları döndürür
  • from ultralytics import YOLO hata vermez

🤖 Generated with Claude Code

esmasi and others added 3 commits March 6, 2026 14:54
…cript

- preprocess.py: Extract all 468 face landmarks (was 33) to match
  MultimodalDigitsCNN's expected landmark_dim=1629 (543*3). This
  eliminates 1305 wasted zero-padded features and provides full facial
  expression data.

- service.py: Remove adaptive thresholding from /predict endpoint that
  was destroying color information needed by the CNN image branch.
  Unify landmark padding logic with a named constant for clarity.

- config.py: Fix SEQUENCE_MODEL_CONFIG num_classes from 100→10 to match
  CLASS_TO_TURKISH which only defines 10 digit classes.

- requirements.txt: Add missing ultralytics>=8.0.0 (required for YOLO
  imports in service.py and train_yolo.py).

- signbridge/training/train_multimodal.py: New training script for
  MultimodalDigitsCNN. Handles landmark caching, data augmentation,
  train/val/test split, early stopping, LR scheduling, and saves
  checkpoints/multimodal_digits_best.pt.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add autsl_transformer/ module (inference.py + trained model files):
  - SignTransformerPro architecture (6 layers, 384 d_model, 12 heads)
  - 226 Turkish sign language words (AUTSL dataset)
  - Val acc: 83.9%, Test acc: 81.2%
  - 718 features: raw(225) + velocity + acceleration + distances

- Refactor service.py to use AUTSLPredictor as primary model:
  - POST /predict/frame  — single frame, server-side rolling buffer (30 frames)
  - POST /predict/sequence — placeholder for batch sequence input
  - POST /reset/buffer   — clear the rolling buffer
  - GET  /model/info     — shows AUTSL + YOLO model status
  - Remove unused multimodal/CNN code paths

- Update .gitignore: exclude autsl_transformer/old_model/ and large .npz

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants