nw  

Handwriting recognition with digital pens

Summary

Creation of a client-server system for the collection of annotated online (children) handwriting data for online handwriting recognition.

Keywords

online data, handwriting recognition, Amazon Linux, EC2, Docker, cicd, multi-container application, Python, AWS, Flask, psycopg, SQLAlchemy, PostgreSQL, WSGI, Gunicorn, Nginx, certbot, https, basic authentication, jwt, EMR, android, Kotlin, Jetpack compose, room, okhttp, retrofit, gson, hilt, mvvm

Objectives

The main objectives of the system are the collection, storage, and retrieval of annotated data from online (children) handwriting. The system is designed such that multiple clients are able to collect and submit data simultaneously. The server performance flexibly adapts to the number of clients connected at any given time. From the perspective of different user groups, the system’s functions include:

Starting point

For teachers the manual reading of handwritten German texts of early elementary school students is a tedious task. If children lack necessary graphomotor skills for automatic writing, they produce poorly legible writing and teachers must spend even more time to decipher their texts. Thus, teachers can invest less resources into giving feedback to their students about their progress in handwriting, but also the content of their writings. The use of online handwriting recognition tools that automatically identify students’ handwriting would free up a lot of teachers’ resources that they could invest into targeted feedback and support for their students. The development of algorithms for online handwriting recognition in children requires the models to train with appropriate data sets, i.e., handwriting data collected from children. However, such datasets are not publicly available. Thus, in order to provide potential algorithms for online handwriting recognition in children with training data, handwriting data from children first need to be properly collected, stored, and prepared for analysis.

Results

High-Level Overview of the (Pentool) system

On the server side, a virtual machine hosts a multi-container application consisting of running docker instances of a PostgreSQL database server, a REST API and a proxy server for centralized data storage and provisioning over a secure HTTPS connection. On the client side an application for android tablets and digital pens with EMR technology allows end-users the online handwriting of text which can be sent to the server for its storage in the database through REST API calls. The Pentool system also uses GitLab's CI/CD services for the automated continuous integration and deployment of server-side components.

Overview of the data collector screen (Client side)

The user can write the text that appears on top of each canvas and send the generated data to the server via HTTPS request.

Online handwriting dataset

The system has been successfully created and can be now used to collect online handwriting data from elementary school students. At the moment, we managed to collect 2774 single characters and 56 sentences written by around 80 individual students between the ages of 6 and 8 as well as 1349 single characters and 160 sentences written by other individuals. The updated JSON data can be downloaded as Zip file.

Project Details

Duration: September 21, 2021 - March 25, 2022

Effort: 360 Hours.

Team size: 1 Student

Client

Susanne Grassmann, edu-RD GmbH - Industriestrasse 20 5200 Brugg, https://edu-rd.com

Project Team

Llano Jiménez, Santiago

Contact

Prof. Dr. Martin Melchior, martin.melchior@fhnw.ch

<< zurück