NAAZ1605's picture
Prepare ISL command recognition project
e2d95ed
|
Raw History Blame Contribute Delete
5.68 kB
# Limitations
Every item below is a measured property of this project or of the INCLUDE-50
dataset, not a hypothetical. Where a number appears it was produced by
`training/audit_dataset.py` and is reproducible from `results/dataset_audit_summary.json`.
## 1. Scope
* This is an **isolated sign/command recognition** prototype. It classifies one sign at a
time from a short clip. It is **not** a sign-language translator: it does not model ISL
grammar, sentence structure, fingerspelling, non-manual markers (facial expression, mouth
morphemes, head tilt) or spatial referencing.
* The system recognises exactly the classes present in the trained model's vocabulary
(INCLUDE-50: 50 signs). Anything outside that vocabulary either produces a wrong label or
should be caught by the confidence gate - it cannot produce a sensible "I don't know that
sign" answer beyond the `UNCERTAIN` state.
* This is not a medical, legal, emergency or accessibility-certified system, and must not be
used as the sole channel of communication.
## 2. Dataset limitations (measured)
| limitation | measurement |
|---|---|
| **Signer metadata absent** | INCLUDE publishes no signer ids, so signer-disjoint evaluation is impossible. Restated in `docs/dataset_audit.md` §8. |
| **Session leakage in the official split** | 199 of 299 recording clusters (bursts of consecutive file ids) span more than one side of the official train/test split; 63% of clips share an id-block with the other side. Benchmark numbers computed on the official split are therefore optimistic. |
| **Our mitigation** | The project's primary protocol (`session_disjoint`) keeps whole recording clusters on one side: 0 of 299 clusters span a split. Both numbers will be reported side by side. |
| **Very small test set per class** | The session-disjoint split yields 3-4 test clips per class (154 total). Per-class precision/recall/F1 therefore has wide confidence intervals and must not be read to three decimal places. |
| **One class has no test clip in the official split** | `DRY` appears only in the official train file; it is excluded from official-split per-class test metrics rather than silently dropped. |
| **Demographic and geographic bias** | INCLUDE was recorded by a small number of experienced signers in India, in a studio-like setting. ISL itself varies regionally. Performance for other signers, dialects, and skin tones is unknown and will very likely be lower. |
| **No signer-disjoint generalisation evidence** | Because signer ids are unavailable, no claim of signer-independent performance can be made. |
| **Released keypoints are 2-D + z** | x/y are image coordinates; z is MediaPipe's relative depth, which is far noisier. The 225-feature layout is preserved, but the effective spatial information is mostly 2-D. |
| **Axis anisotropy in the release** | The official keypoints were produced through a width/height-swapped resize, compressing x by ~3.16x. Measured and corrected (`config.X_AXIS_SCALE`); residual uncertainty is the spread between the two anatomical priors (3.00 and 3.26). Any result computed *without* the correction would train a squashed body model that does not transfer to the webcam. |
| **No FPS or duration metadata** | Not present in the keypoint release, so temporal statistics are reported in frames. |
## 3. Modelling limitations
* Landmark-based models discard appearance: they cannot use facial expression, finger
contact with a surface, or any cue MediaPipe cannot see. Fast or partially occluded signs
lose most of their signal.
* The three architectures (LSTM, GRU, GRU+attention) are all small recurrent models trained
from scratch on ~650 clips. No pretrained backbone is used, so absolute accuracy is
bounded by data size, not by architecture choice alone.
* Augmentation changes the landmark statistics on purpose. Aggressive settings can make the
validation distribution differ from the test distribution; the augmentation policy must be
identical across the three models or the comparison is void (enforced in
`backend/preprocessing/sequence.augment`, called from one place).
* Robustness experiments perturbe landmarks directly. They measure sensitivity to *feature*
degradation, which is a proxy for - not a substitute for - real occlusion, motion blur and
bad lighting.
## 4. Deployment and human-factors limitations
* Webcam input is distributionally different from the studio recordings (camera height,
framing, distance, lighting, background clutter). No cross-domain claim is made.
* Confidence is a softmax score, not a calibrated probability. It is used as a *gate*, and
the threshold must be tuned on validation data (`training/tune_threshold.py`), never
assumed optimal. The default 0.70 is a starting point, not a validated choice.
* Temporal smoothing introduces latency: a prediction needs `STABLE_FRAMES_REQUIRED`
consistent frames before it is emitted.
* Text-to-speech output is English wording for ISL signs; it is a captioning aid, not a
faithful translation of ISL grammar.
* Personalisation only adjusts thresholds/vocabulary and optionally fine-tunes on the user's
own consented samples. It is deliberately conservative and cannot silently retrain itself
from corrections.
## 5. Claims this project does not make
* It does not claim the attention model beats the GRU/LSTM baselines before the experiment
has been run and reported.
* It does not claim the confidence threshold of 0.70 is optimal.
* It does not claim benchmark accuracy equals real-world accuracy.
* It does not claim to understand Indian Sign Language; it classifies isolated signs from a
benchmark vocabulary.