Capstone: Braille Haptic Reader — braille reader device

Capstone: Braille Haptic Reader

AI
IoT
Python
Raspberry Pi
YOLOv5
OCR
OCR Accuracy97.82%

Custom translation accuracy under varied lighting

Pipeline Latency~1.2s

Full image-to-haptic-pattern latency

Codebase Scale~4,200 LOC

Python scripts, YOLOv5 integration, solenoid driver loops

Hardware Nodes4 Components

Raspberry Pi 4, high-res camera, 3D-printed haptic cell array

About the Project

As my capstone project, I developed an OCR-to-Braille translation pipeline running on a Raspberry Pi. The system uses a camera to capture text, which is then processed by a custom-trained YOLOv5-based AI model for accurate text detection. The detected text is run through an OCR engine and translated into Braille, which is then outputted to a haptic display. The system achieved a 97.82% OCR accuracy, enabling real-time translation for visually impaired users.

Challenges

Training a highly accurate text detection model for various fonts and lighting conditions was a significant challenge. Integrating the entire pipeline—camera capture, AI inference, OCR, and haptic output—on a resource-constrained device like the Raspberry Pi required extensive optimization. The real-time constraint meant every part of the process had to be as efficient as possible.

Learnings

This project taught me a great deal about the practical application of machine learning models on edge devices. I learned about optimizing deep learning models for performance, working with hardware interfaces, and building a complete, end-to-end system that serves a real-world purpose.

What I'd Do Differently

97.82% is character-level accuracy on test images I chose, and that flatters the system. For someone reading by touch, what matters is whether a line comes through intelligibly, and a single wrong character inside a word is far more disruptive than the percentage implies. I would report word-level accuracy and test with visually impaired users rather than optimising a metric I picked myself. Technically, capture, OCR and haptic output shared one thread budget and I fought the 1.2s latency head-on; decoupling capture from playback with a queue would have let the reader start feeling output before the frame finished processing.

Development Journey

Phase 1: Physical R&DWeeks 1-2

Hardware Prototyping & Pin Mapping

Sourced Raspberry Pi 4 board, configured custom-designed circuit connections, and soldered 3D-printed haptic cell solenoid relays.

Phase 2: Vision Model TrainingWeeks 3-4

YOLOv5 Character Box Detections

Trained high-accuracy character and paragraph boundary detection anchors with YOLOv5 on various distinct printed fonts.

Phase 3: Translation PipelineWeek 5

Python Braille Mapping Core Engine

Developed low-level Python scripts converting OCR string characters into 6-dot haptic grid arrays mapped directly to GPIO pin nodes.

Phase 4: Latency CalibrationWeek 6

Thread Tuning & Validation testing

Streamlined image processing threads to cut pipeline lag to ~1.2 seconds, achieving solid 97.82% overall accuracy.

    Meshary AI

    Gemini 2.5 Flash

    Portfolio Assistant

    Hello! I'm Meshary AI, your interactive portfolio assistant powered by Gemini. Ask me anything about Meshary's software projects, n8n automation workflows, or technical skills!

    12:36 PM