Unlock Text Recognition: A Guide to LandingAI’s OCR Model on Docker
Effective deployment of deep learning models is a critical yet often overlooked aspect. It is more than just a technical task—it’s a strategic necessity. A well-executed deployment ensures that models run efficiently, are scalable, and integrate seamlessly with existing systems. Poor deployment can result in performance bottlenecks, security vulnerabilities, and integration issues that hinder the model’s effectiveness in accomplishing the desired goals.
LandingAI users have been leveraging OCR capability via LandingLens API. Continuing our commitment to make deployment more flexible for varying enterprise needs, we are launching an Optical Character Recognition (OCR) model through Docker and LandingEdge. This integration enables enterprises to deploy OCR models securely and efficiently within their own environments, mitigating deployment risks and optimizing the model’s performance in real-world applications.
In this blog, we will explore how users can implement LandingLens OCR capability via Docker.
[Note] LandingLens Enterprise plan is required to implement OCR through Docker and LandingEdge. Contact us to learn more about the LandingLens Enterprise plan.
Why Use Docker for OCR Deployment?
Docker deployment leverages containerization, providing a consistent and portable way to run applications, including Visual AI models. Containers package the application with all its dependencies including the operating system, environment variables and application dependencies, ensuring that it runs uniformly across different environments. Thus, your system could be running multiple deep learning applications without affecting each other.
Here’s when Docker deployment is ideal for OCR:
Workflow: Run OCR on Docker
This example guides you through a few simple steps to start using OCR with Docker:
1. Install Docker and Python
2. Obtain Your LandingAI OCR Activation Key:
3. Pull the Docker Image and Launch Docker Container:
Run the Pull Command: Use the following command to download the LandingAI OCR Docker image. OCR is available in LandingAI Docker v2.9.1 and later: docker run -e LANDING_LICENSE_KEY="your_activation_key" -p 8000:8000 public.ecr.aws/landing-ai/deploy:latest run-ocr
Replace your_activation_key with your actual OCR activation key.
4. Verify the Container is Running
You can find more information on using the LandingAI Docker solution here: Deploy with Docker.
Make Inference Calls with LandingAI OCR
Once the Docker container with the LandingAI OCR model is up and running, you can use the model to perform inference on images. As an example, let’s use an image of a printed label where the goal is to find the “best before” date of the product.
With only a few lines of code, you can start running inference. The following script sends an image to the OCR Model, processes the response, and extracts the detected text.
import requests
# Define the OCR service URL
ocr_url = "https://localhost:/images"
# Path to the image you want to analyze
image_path = "your/file/path"
# Open the image file in binary mode
with open(image_path, 'rb') as image_file:
# Prepare the request with the image file
files = {'file': image_file}
# Send a POST request to the /images endpoint
response = requests.post(ocr_url, files=files)
# Print the response status and text
if response.status_code == 200:
# Parse the JSON response
result = response.json()
# Extract text from predictions
predictions = result.get('predictions', [])
#JSON output
print(predictions)
else:
print("Error:", response.status_code, response.text)
Here’s the JSON output of the OCR model’s prediction:
[
{'text': 'Best By: 06/17/2026', 'score': 0.97393847, 'location': [
{'x': 193, 'y': 438
},
{'x': 194, 'y': 386
},
{'x': 485, 'y': 391
},
{'x': 484, 'y': 443
}
]
},
{'text': 'C101 06172402: 14', 'score': 0.96005297, 'location': [
{'x': 189, 'y': 475
},
{'x': 192, 'y': 426
},
{'x': 485, 'y': 440
},
{'x': 483, 'y': 488
}
]
}
]
For the example use case, we will update the code to extract the specific text after the “Best By:” characters:
import json
# Define a function to extract text after "Best By:"
def extract_best_by_date(texts):
for text in texts:
if "Best By: " in text:
# Find text after "Best By:" and strip any leading/trailing
return text.split("Best By: ")[-1].strip()
return "Date not found"
# Extract specific text after "Best By:"
best_by_date = extract_best_by_date(extracted_texts)
print(best_by_date)
else:
print("Error:", response.status_code, response.text)
OCR Result:
Script will only output the text we were looking for: 07/14/2025
Done! We have successfully set up a Docker container and used the LandingAI OCR model to run inference on an image!.
Conclusion
By running the LandingAI OCR model in Docker, users can easily perform text extraction tasks such as detecting a product’s “best before” date. For more complex cases where the text’s location varies, using a combination of LandingLens computer vision models such as object detection and the OCR model offers even greater precision and automation capabilities. This setup is ideal for use in both development and production environments, ensuring consistency and reliability across different deployments.
Start for free at app.landing.ai and check out more information on OCR and Deploy with Docker.
Head of AI at uqudo - Ph.D. | Invited Professor | DS/ML/DL instructor | Expert AI Consultant | Digital Identity | Quality Control
3dLandingAI The json output is not compatible with the example image. Probably the wrong image / wrong output was used in the newsletter
Electrical Engineering professional
4dVery informative