Downloads · 30 days
0
Yaredoffice/geez-char-ocr
geez-char-ocr is a image classification model from Yaredoffice. Use it when you need a label for an image. It is set up for keras. The card lists the license as apache-2.0.
This model is a high-performance Optical Character Recognition (OCR) system specifically designed for the Geez script (Amharic, Tigrinya). It utilizes a Convolutional Neural Network (CNN) architecture to classify indi…
Downloads · 30 days
0
Access
Public
Updated Jan 4, 2026
Repo size
3.3 MB
Likes
2
Public
Click a slice to open those files.
.onnx3.3 MB · 99%
From the Hugging Face model README
This model is a high-performance Optical Character Recognition (OCR) system specifically designed for the Geez script (Amharic, Tigrinya). It utilizes a Convolutional Neural Network (CNN) architecture to classify individual handwritten Geez characters from images with high accuracy.
This model addresses the challenge of digital recognition for the Geez script by utilizing a deep CNN architecture. It is trained to accept a single character image and output one of 287 possible character classes. It has been optimized for web deployment using ONNX runtime.
The model is intended for direct use in digitizing handwritten Geez documents, educational language learning tools, and automated data entry systems. Users input a cropped image of a handwritten character, and the model returns the predicted character class and confidence score.
N/A (This is a standalone classification model).
The model is not designed for:
Users should implement a pre-processing pipeline to segment words into individual characters before feeding them into this model. Images should be normalized to 128x128 pixels and converted to grayscale.
Use the code below to get started with the model.
import onnxruntime as ort
import numpy as np
from PIL import Image
# 1. Load the ONNX model
session = ort.InferenceSession("cnn_output.onnx")
# 2. Preprocess input image
def preprocess_image(image_path):
# Load image
img = Image.open(image_path).convert('L') # Convert to Grayscale
# Resize to 128x128
img = img.resize((128, 128), Image.Resampling.LANCZOS)
# Convert to numpy array and normalize to 0-1
img_array = np.array(img).astype('float32') / 255.0
# Add batch dimension and channel dimension (1, 1, 128, 128)
img_array = np.expand_dims(np.expand_dims(img_array, axis=0), axis=0)
return img_array
input_data = preprocess_image("path/to/geez_char.jpg")
# 3. Run Inference
input_name = session.get_inputs()[0].name
output_name = session.get_outputs()[0].name
predictions = session.run([output_name], {input_name: input_data})[0]
# 4. Get Predicted Class
predicted_class_index = np.argmax(predictions)
print(f"Predicted Class ID: {predicted_class_index}")