AI for Accessibility

Sign language recognition

Sign language recognition reads hand shape, movement, and facial expression together, and stays a research problem because sign languages are full languages with their own grammar, not spelled-out speech.

On this page 6
  1. Why it exists
  2. How it works
  3. Where you have already seen it
  4. An honest warning
  5. Remember this
  6. What to learn next

One lesson, three depths. Pick the one that fits you today — you can switch any time.

Beginner — No maths. Plain English.

Sign language recognition reads hand movement and facial expression together, and turns them into words or meaning.

Think about watching someone across a noisy room, unable to hear a word, but following what they mean from their hand gestures and facial expressions alone. That is close to what a sign language recognition system has to do. It tracks a signer's hands, arms, and face over time, and works out what they are communicating — using vision instead of hearing.

Why it exists

Sign languages are complete, independent languages, each with its own grammar. American Sign Language, Indian Sign Language, British Sign Language, and hundreds of others exist around the world. They are not spoken language spelled out gesture-by-gesture. Millions of Deaf people communicate primarily in a sign language, often as their first language.

Most software, from video call captions to voice assistants, assumes communication arrives as typed text or spoken audio. A Deaf signer using sign language as their primary language is left out of both, unless a human interpreter is present. Sign language recognition technology aims to close part of that gap, by translating sign into text or speech, and eventually the reverse. That would make software built around typing and talking reachable from sign language too.

How it works

Video of a signer  ->  Track hand and body positions, frame by frame
        |
        v
A sequence of hand shapes and movements over time
        |
        v
Match the sequence against known sign patterns
        |
        v
Predicted meaning: a word, or eventually a translated sentence

Real sign languages use the hands, the arms, the face, and the body together. A raised eyebrow or a head tilt can change a sentence's meaning entirely — the same way tone of voice changes meaning in speech. Most current systems, including the one in this lesson's developer section, handle only a simplified slice of that full picture.

Where you have already seen it

Video call platforms have experimented with sign language recognition features to caption a signer's speech automatically for hearing participants. Museums and public information kiosks in some countries have piloted sign language recognition kiosks that respond to signed questions.

An honest warning

Sign language recognition is a genuinely hard, still largely unsolved research problem, more so than most other technologies in this section. Isolated single-sign recognition — spotting one sign at a time from a fixed list — works reasonably well in controlled settings. Continuous recognition of natural, connected signing, with all the grammar and facial expression sign languages actually use, remains far from reliable. A system that works well for one signer's style and speed can fail for another, since sign, like spoken language, varies by region, individual, and community. Treat any current sign language recognition product as a limited aid, not a substitute for a qualified human interpreter. This matters most wherever the accuracy of communication genuinely counts — a medical appointment, a legal proceeding, an emergency.

Remember this

  • Sign languages are full, independent languages with their own grammar, not a hand-spelled version of spoken language.
  • Recognition needs to read hands, movement, and facial expression together, since all of them carry meaning.
  • Continuous, natural signing recognition remains a genuinely hard, unsolved research problem — treat current tools as limited aids, not a replacement for a human interpreter.

What to learn next

Developer — Code and libraries.

This example classifies three simple, invented hand-movement shapes — not real signs — from a synthetic trajectory of one tracked hand keypoint. It shows the shape-recognition step that real systems build on, at a scale that runs in seconds.

Setup

bash
pip install scikit-learn numpy

Minimal runnable code

Real systems track many keypoints — both hands, arm joints, and facial landmarks — every frame (see MediaPipe landmarks). This example simplifies to one hand keypoint tracing one of three toy shapes over time.

signlang.py
import numpy as np
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split

rng = np.random.default_rng(0)
FRAMES = 20

# Three toy signs, each a shape traced by one hand keypoint over time --
# this stands in for the (x, y) hand landmark a real system tracks every
# frame (see mediapipe-landmarks). Real signs also use the face and both
# hands together; this keeps to one hand and one shape for clarity.
def trace_circle(rng):
    t = np.linspace(0, 2 * np.pi, FRAMES)
    return np.column_stack([np.cos(t), np.sin(t)]) + rng.normal(0, 0.08, (FRAMES, 2))

def trace_line(rng):
    t = np.linspace(-1, 1, FRAMES)
    return np.column_stack([t, np.zeros(FRAMES)]) + rng.normal(0, 0.08, (FRAMES, 2))

def trace_zigzag(rng):
    t = np.linspace(-1, 1, FRAMES)
    zigzag = np.abs((t * 3) % 2 - 1) * 2 - 1
    return np.column_stack([t, zigzag]) + rng.normal(0, 0.08, (FRAMES, 2))

SHAPES = {"circle": trace_circle, "line": trace_line, "zigzag": trace_zigzag}

def trajectory_features(points):
    # simple, hand-built summary of a trajectory -- total path length,
    # net displacement start-to-end, and how many times direction reverses
    steps = np.diff(points, axis=0)
    path_length = np.linalg.norm(steps, axis=1).sum()
    net_displacement = np.linalg.norm(points[-1] - points[0])
    direction_changes = np.sum(np.diff(np.sign(steps[:, 1])) != 0)
    return [path_length, net_displacement, direction_changes]

X, y = [], []
for _ in range(40):
    for name, shape_fn in SHAPES.items():
        X.append(trajectory_features(shape_fn(rng)))
        y.append(name)

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0, stratify=y)
model = RandomForestClassifier(n_estimators=100, random_state=0)
model.fit(X_train, y_train)
print(f"held-out accuracy on the three toy signs: {model.score(X_test, y_test):.0%}")

new_sample = trajectory_features(trace_zigzag(rng))
print(f"a fresh zigzag trace is predicted as:      {model.predict([new_sample])[0]}")
Output
held-out accuracy on the three toy signs: 100%
a fresh zigzag trace is predicted as:      zigzag

Walkthrough

Each of the three "signs" traces a different shape — a circle, a straight line, a zigzag — over 20 frames, with noise added to simulate the natural variation between repetitions of the same real sign. trajectory_features reduces a whole 20-frame trajectory to three summary numbers: total path length, how far the hand ended up from where it started, and how many times its vertical direction reversed.

These three shapes happen to be easy to separate — a circle has near-zero net displacement despite a long path, a line has almost no direction changes, a zigzag has many. That is why accuracy reaches 100% here, and it is a fair warning rather than a boast: this toy problem was chosen because the shapes are easy to tell apart by a few simple statistics, which is not automatically true of real signs, many of which differ from each other in far subtler ways.

Common mistakes

Mistaking single-keypoint trajectory classification for real sign recognition. This example tracks one point in 2D. Real sign recognition tracks many keypoints across both hands, the arms, and the face, in 3D, evolving together over time — a substantially harder problem this toy does not attempt.

Believing near-perfect toy accuracy predicts real-world accuracy. The 100% score here reflects that these three invented shapes are easy to distinguish with simple statistics, not that this technique is ready for real signs, which vary far more within a single meaning across different signers.

Ignoring the face. Facial expression is grammatically meaningful in real sign languages — for example, raised eyebrows can mark a yes/no question in ASL. A system that tracks only hand movement, as this toy does, is missing information a real signer relies on.

Treating isolated-sign classification as equivalent to continuous sign language understanding. Classifying one sign at a time from a short, isolated clip, as this example does, is a much easier and more limited problem than recognising natural, connected signing with its full grammar — the honest warning in the beginner section above.

Try it yourself

Add a fourth shape function, trace_wave, tracing a smooth sine wave instead of a sharp zigzag. Add it to SHAPES, retrain, and check whether the model can now reliably tell a smooth wave apart from a sharp zigzag — a much subtler distinction than the original three shapes, closer to the kind of fine-grained difference real signs actually require.

What to learn next

Researcher — Mathematics and papers.

The formal setting

Sign language recognition spans a spectrum of task difficulty. Isolated sign language recognition classifies a single, temporally segmented clip into one of a fixed vocabulary of signs — a multi-class video classification problem, f: V -> {1, ..., K} for video clip V and vocabulary size K, the problem the developer example simplifies drastically. Continuous sign language recognition (CSLR) must jointly segment and recognise a sequence of signs from unsegmented video, without knowing in advance where one sign ends and the next begins. Sign language translation (SLT) goes further, producing a grammatically correct sentence in a spoken/written target language, which is not a word-for-word mapping from the sequence of signs, because sign language grammar differs structurally from spoken language grammar (Stokoe, 1960, the founding work establishing ASL as a full language with its own phonology and grammar, independent of English).

Why continuous recognition and translation are harder

CSLR is commonly formulated with Connectionist Temporal Classification (CTC) loss (Graves et al., 2006), the same alignment-free technique used for CRNN text recognition and CTC loss in OCR, because it allows training without frame-level sign boundary annotations, which are extremely costly to produce by hand for continuous video. SLT is additionally a full sequence-to-sequence translation problem between two structurally different grammars, typically addressed with encoder-decoder or transformer architectures (Camgoz et al., 2020, "Sign Language Transformers," jointly modelling recognition and translation as one system).

The data scarcity problem, specifically

Large labelled continuous sign language datasets are far smaller than equivalent spoken-language speech or text corpora. RWTH-PHOENIX-Weather 2014T (Camgoz et al., 2018), one of the most widely used CSLR/SLT benchmarks, contains roughly 8 hours of German Sign Language weather broadcast footage — orders of magnitude smaller than standard speech recognition training sets, and drawn from one narrow domain (weather reporting) with one register of formal, broadcast signing, limiting how well models trained on it generalise to everyday conversational signing or other sign languages entirely.

Complexity and cost

For a video of T frames processed through a keypoint tracker producing K keypoints per frame, then a temporal model over the resulting sequence:

ComponentTypical cost
Per-frame keypoint trackingO(T), one forward pass per frame through a pose/hand model
Temporal modelling (RNN or Transformer over T steps)O(T) for an RNN, O(T^2) for full self-attention over the sequence
CTC decoding (continuous recognition)O(T · K_vocab) typical, using beam search

Real-time sign recognition on-device faces the same latency and compute constraints as live captioning, compounded by the added cost of multi-point video tracking rather than audio processing alone.

Papers

  • Stokoe, W. (1960). Sign Language Structure: An Outline of the Visual Communication Systems of the American Deaf. Studies in Linguistics, Occasional Papers 8. The foundational linguistic work establishing ASL as a full language.
  • Graves, A. et al. (2006). Connectionist Temporal Classification: Labelling Unsegmented Sequence Data with Recurrent Neural Networks. ICML. The CTC loss underlying most continuous recognition systems.
  • Camgoz, N. et al. (2018). Neural Sign Language Translation. CVPR. Introduces the PHOENIX-2014T benchmark.
  • Camgoz, N. et al. (2020). Sign Language Transformers: Joint End-to-End Sign Language Recognition and Translation. CVPR.
  • Bragg, D. et al. (2019). Sign Language Recognition, Generation, and Translation: An Interdisciplinary Perspective. ASSETS. A widely cited call for the field to centre Deaf community involvement and needs, not only technical benchmarks.

Current state

Isolated sign recognition on constrained vocabularies has reached practically useful accuracy in controlled conditions. Continuous recognition and translation of natural signing remain active, unsolved research problems, with accuracy that degrades substantially outside the narrow domains current benchmarks cover. Bragg et al. (2019) and subsequent work from Deaf researchers and community organisations have specifically emphasised that progress in this field must be driven by, and evaluated against, the needs and involvement of Deaf signers themselves — not treated as a computer vision benchmark to be optimised in isolation from the community it is meant to serve. This lesson takes that concern seriously: none of the demonstrations above should be read as evidence that current systems are close to substituting for a qualified human interpreter.

What to learn next