Using Optical Character Recognition to Make Mines Safer


With significant interests in copper, iron ore, nickel and coal as well as being the world's largest producer of platinum, Anglo American needs little introduction. The British multinational mining company (based in Johannesburg and London) has a long history of striving to improve both the efficiency and safety of their operations with innovative practices and technologies at each of their mines. One such innovation required the assistance of an experienced machine learning company so DotModus was eager to assist.

The Goals

Deliver a reliable document scanning and text extraction tool

The Approach

Automate the text extraction and data capture process using trained ML models

The Results

A fast, reliable, automated solution saving countless man-hours of data capture


The goal of the project was to streamline and automate a document management system being used by a number of Anglo American mines to record risks and hazards across their mining operations.

Better and more reliable collection of data pertaining to risk means a safer mine and lives saved. The existing system was slow, tedious and required a great deal of manual data capture. A digital solution would allow Anglo American to take a more proactive approach to risk management and greatly reduce their response time to reported hazards on their mines. The new solution would need to reliably ingest large amounts of scanned documents (pre-generated checklists in this case) and present the extracted data to the user for editing and correcting.

On top of much of the text within these documents being handwritten, there are more than 60,000 different possible permutations of the questionnaires/checklists the operations teams could complete and scan into the application. As such, machine learning was needed to decide how the form had been completed and then trigger the extraction necessary.

Each completed checklist document would also be complete with all the smudges and dirt you’d expect a sheet of white A4 paper to pick up in a coal or iron ore mine.

Google Cloud’s Vision API was the perfect ML tool to achieve the results we were looking for. Each document scanned into the application would need to be read, recognised and digitised before being displayed back to the user for signoff. To assist with the recognition part of the process, all possible document/checklist templates are uploaded and provided to the system via Cloud Storage. These preloaded checklist templates help the system to know where the relevant handwritten text is located within the document thus greatly speeding up the extraction. The extracted text is run through Google Cloud’s Vision API for converting to digital text. A celery beat Kubernetes deployment helps manage and organise the task passing and fulfillment. Having a queue of tasks sitting in celery allows us to scale any number of workers in Kubernetes horizontally, thus ensuring we are always processing this complex data pipeline in near real time. A redis database is used for the task passing between the Django Rest Framework API and the celery workers. The converted digital text is presented to the user from the Django API in the UI (hosted by App Engine Standard) for correcting or editing. The result is a solution that is fast, reliable, scalable and easy to monitor and manage.


The solution was test-driven at the Sishen and Goedehoop mines for a number of months but has since been adopted by 12 more Anglo American mines in South Africa. Q1 2020 will see the solution translated to Spanish and implemented at 3 mines in Chile. By the end of 2020 the solution will be being used at 40 mines globally.

The power and efficiency of the Google Cloud Platform is particularly evident on this project. A single instance serves their needs for the entire globe and scales to the usage in any timezone and geography