Optical Character Recognition in the workplace
Reading codes off the sides of old tires can be a challenging task, especially when the codes are often black on black, worn out, or faded. I was able to work with client with the need to automate this process, I set out to build a solution that could capture these codes using Optical Character Recognition (OCR) technology. Here's how I approached the project, from research to execution.
Understanding the Problem
The codes on the sides of tires provide important details like the year of manufacture, the place where the tire was made, and other regulatory information. For businesses that handle old tires, this information is essential, but reading the codes manually is time-consuming and often prone to error due to wear and tear.
My goal was to build a system that would automate this process by using a camera to capture the tire codes and a software solution to parse the code accurately.
Technology Stack: Python and TensorFlow
After conducting extensive research, I decided to use Python in combination with TensorFlow, an open-source machine learning framework, to develop the OCR model. TensorFlow allowed me to train the model to identify the alphanumeric characters despite the challenges presented by the worn-out codes.
Here’s a breakdown of the technical components I used:
- Python: The backbone of the application for handling image processing, model training, and integration.
- TensorFlow: I utilized pre-trained models and customized them to recognize the specific patterns and fonts used in tire codes.
- OpenCV: For image pre-processing tasks, such as cleaning up the input images, adjusting contrast, and preparing them for the OCR model.
- Hardware Integration: Connecting a camera system to take photos of the tire’s sidewall, which was then fed through the program.
Challenges of OCR on Tires
One of the toughest challenges in this project was dealing with the nature of the tire codes themselves:
- Black on Black: The codes are usually embossed, making them difficult to distinguish from the surface.
- Wear and Tear: Older tires often had severely worn-out codes, which meant my system had to rely on intelligent predictions rather than just clear text recognition.
To address these issues, I experimented with various image processing techniques to improve the contrast and clarity of the images, allowing the OCR model to detect the characters better.
Client and Stakeholder Management
Building this app was more than just coding—it required close collaboration with the client. I worked extensively with the stakeholders to understand their pain points, refine the product's scope, and ensure that the solution would fit into their existing workflow.
This involved:
- Site Visits: I visited the client’s site to observe how tires were handled and identified opportunities where the hardware could fit into their process.
- Research and Solution Exploration: I explored different cost-effective solutions, weighing factors like the expense of hardware, camera quality, and software licensing.
- Frequent Updates: Regular communication with the client was key. I updated them on progress and made adjustments based on their feedback to ensure we were aligned at every stage.
Integrating Hardware into Workflow
The project also required integration with physical hardware—the camera system. A high-quality camera capable of capturing detailed images of the tire's surface was selected. During my site visit, I mapped out where and how the hardware would be installed to optimize image capture while minimizing interruptions to the existing workflow. Results and Next Steps
The app successfully improved the process of reading tire codes, offering a significant time-saving solution to the client. While the initial version provided accurate results in many cases, there’s always room for improvement. In future iterations, I plan to enhance the OCR model’s ability to handle even more obscure and worn-out codes, as well as improve the hardware setup for better image capture. Key Takeaways
Building this OCR app was a rewarding experience that required both technical and project management skills. By working closely with stakeholders and investing in thorough research, I was able to deliver a solution that not only met the client’s needs but also integrated seamlessly into their workflow.