The process to Write it Right:
1. What inspires us?
When we were young, we would write lessons in books by hand. Growing older, some may adapt the typing method for the sake of convenience, though some would prefer keeping the traditional way. When we-the teammates met each other, we would spend all day in the library studying. We notice that we have so many ways to keep notes from lessons. Regarding reviewing, this gap creates difficulties for us since it is not the same format. Therefore, we would like to bridge this gap by creating an AI that can convert handwritten format to digital text.
2. What we learned
- We have learned about the techniques to train an AI. Some aspects must take a long path to go, while some only need a shortcut for an AI to understand. What makes it important is that you have to know when is enough. Just like raising a baby, it does not know anything, so our job is to ensure we cover all the areas within the time pressure.
- For 24 hours, we would start everything from scratch. We trained a newly born AI from single little things like telling it the gap between characters or a curvy shape to make an “o” or “a”. Let’s not mention that not every curve looks the same, and we would have to point out every possibility. We have learned (in a brutally hard way) that we must take time to raise “a baby” AI, which is the only thing that is against us in this Hackathon game.
- Technical parts aside, we have learned how to be the actual team. With the pressure of 24 hours, time management is of utmost importance. Obviously, we would strive for the best; however, pressure alone is not enough. We learned when the time is for task delegation, and we trust our teammates with the task assigned. By knowing each of the member’s strengths and weaknesses, we divided the tasks evenly, and this team has raised a baby AI up within a day.
3. How we built our project
Handwriting recognition is a process of identifying and transcribing the handwritten text into machine-readable digital text. The model you refer to combines Convolutional Neural Networks (CNNs) and Recurrent Neural Networks (RNNs) to accomplish this task. The model has three main layers:
- CNN layer: The first layer in the model is a CNN layer that is responsible for detecting and extracting text from the input image. This layer uses convolutional filters to scan the input image and extract relevant features for handwriting recognition.
- RNN layer: The second layer in the model is an RNN layer that takes the features extracted by the CNN layer and transcribes them into text. This layer uses a recurrent architecture to process the input data sequentially and maintain a memory of the previous inputs. This helps the model to capture the contextual information of the text and improve its recognition accuracy.
- CTC layer: The final layer in the model is a CTC (Connectionist Temporal Classification) layer that converts the output of the RNN layer into a sequence of characters. This layer uses the CTC algorithm to handle variable-length sequences and perform alignment between the input image and the output text.
- Finally, our AI is deployed to capture images of handwritten text into digital ones.
During inference, the model takes an input image of handwritten text and uses the CNN layer to extract features. These features are then passed to the RNN layer, transcribing them into text. The CTC layer then converts the output of the RNN layer into a sequence of characters representing the recognized text.
4. Challenges we face.
- Time constraints: learning and raising a baby is progress, and 24 hours might not be enough for us to train our AI to be as accurate as expected.
- Training process for an AI: handwritten text varies, from a neatly written paragraph to a sketchy one. Our job is to use a wide range of tools to help it understand in a short period of time. This is what we struggle with most.
- Compatibility issues:: working with open source library requires abundant work of version control and OS environment to ensure compatibility.
- Conflicts between teammates: not everything is as smooth as butter. We had different opinions and different ways of approaching the problem. It is not usually a negative thing. Many ideas would result in a better apprehension of the process. What’s important is how we would reach an agreement so that we could quickly move on and really apply our decided method to practice.
Log in or sign up for Devpost to join the conversation.