Back to Selected Work

Undergraduate Research · Sep 2025–May 2026

Sign2Text

An iOS and online recognition workflow exploring how continuous sign-language input can become readable text while balancing responsiveness and recognition quality.

My role
Undergraduate team lead and app developer
Team
Three undergraduates with graduate and PI collaboration
Stack
SwiftUI · MediaPipe · PyTorch
Status
Formal project completed · May 2026

01 · Context

Connecting a recognition pipeline to a usable mobile loop

Continuous sign-language recognition must process a stream rather than a single isolated sign. The project combines an online CSLR pipeline with an iOS interface that captures input, displays translated text, and preserves a history of outputs.

The goal is research exploration, not a production accessibility claim. Real-world performance remains sensitive to lighting, occlusion, keypoint stability, and the gap between benchmark data and phone-camera input.

02 · Contribution

Team leadership, app flow, and adaptive inference experiments

I led a three-student undergraduate team, coordinated with graduate collaborators and the PI, and connected research experiments to the mobile workflow.

  • Reviewed the continuous sign-language recognition literature and translated pipeline constraints into implementation tasks.
  • Implemented the SwiftUI flow that sends live keypoints and resized frames to the backend.
  • Displayed returned text in the app and stored translated text with timestamps for later history lookup.
  • Evaluated adaptive stride and time-aware voting on the Phoenix-2014T test set.

03 · System flow

A replaceable boundary between capture, inference, and interface state

  1. 01Capture

    The phone collects camera frames for the live translation session.

  2. 02Extract

    MediaPipe produces body and hand keypoints alongside resized image data.

  3. 03Recognize

    The backend runs the online CSLR pipeline and returns an evolving text result.

  4. 04Persist

    SwiftUI displays the output and records its text and timestamp in history.

04 · Evaluation

Measured efficiency gain with an explicit WER cost

The full comparison ran both configurations serially on the same healthy GPU across all 642 Phoenix-2014T test samples. The adaptive configuration paired motion-sensitive stride selection with span-weighted voting based on real frame distance.

MetricFixed stride = 1Adaptive + span-weightedChange
Processed clips64,62743,932−32.02%
End-to-end runtime1547.29 s1101.12 s−28.84%
Best WER22.0022.73+0.73 points
Equivalent throughput1.00×1.41×+40.52%

05 · Key decision

Adaptive sampling also required time-aware decoding

Fixed-index voting assumes evenly spaced clips. Once stride changes with motion, that assumption breaks: a fixed number of clips can cover very different real time spans. In the adaptive run, ordinary window voting degraded sharply at larger windows, while span-weighted voting restored the best adaptive WER to 22.73.

This made time-aware voting a necessary companion to adaptive sampling rather than an optional post-processing improvement.

06 · Outcome & limits

A working research loop, not a finished accessibility product

The university project concluded with a final defense in May 2026. I completed the 642-sample benchmark as a follow-up experiment after the defense; no active continuation is currently claimed.

  • The iOS workflow, history flow, backend connection, and benchmark experiment are inspectable project outputs.
  • Phone-camera input remains vulnerable to occlusion, lighting, and unstable keypoints.
  • No usability study or reliable real-world accuracy measurement has been completed.
  • The repositories remain unlinked while publication and documentation boundaries are reviewed.