| | --- |
| | license: mit |
| | --- |
| | # Egyptian Hieroglyphs Classification |
| | This model classifies Egyptian hieroglyph symbols using deep learning. It uses transfer learning with _MobileNetV2 for accurate recognition. |
| | ## Dataset |
| | - Source: Egyptian Hieroglyphs Dataset on Kaggle |
| | - Classes: 92 |
| | - Split: Balanced training and test sets |
| | ## Training |
| | - Epochs: 20 |
| | - Model: _MobileNetV2 |
| | - Transfer learning was used to improve accuracy |
| | ## Performance |
| | - MobileNetV2 achieved approximately 98% accuracy and high precision |
| |
|
| |
|
| | MobileNetV2 |
| |  |
| |
|
| |
|
| | ```python |
| | from huggingface_hub import hf_hub_download |
| | from tensorflow.keras.models import load_model |
| | from tensorflow.keras.preprocessing import image |
| | import numpy as np |
| | |
| | # 1. Hugging Face repo ID and model filename |
| | repo_id = "your-username/your-repo" # Replace with your repo ID |
| | filename = "hieroglyphics_modelMobileNetV2.keras" # Replace with your model filename |
| | |
| | # 2. Download the model from Hugging Face Hub |
| | model_path = hf_hub_download(repo_id=repo_id, filename=filename) |
| | model = load_model(model_path) |
| | |
| | # 3. Class names corresponding to model output indices |
| | class_names = [ |
| | "100", "Her", "Woman", "among", "angry", "ankh", "aroura", "at", "bad", "bandage", |
| | "bee", "belongs", "birth", "board", "book", "boy", "branch", "bread", "brewer", "builder", |
| | "bury", "canal", "cloth", "cobra", "composite_bow", "cooked", "corpse", "dessert", "divide", |
| | "duck", "elephant", "enclosed", "eye", "fabric", "face", "falcon", "fingre", "fish", "flail", |
| | "folded", "foot", "galena", "giraffe", "he", "hit", "horn", "king", "leg", "length", "life", |
| | "limits", "lion", "lizard", "loaf", "man", "mascot", "meet", "mother", "mouth", "musical", |
| | "nile", "not", "now", "nurse", "nursing", "occur", "one", "owl", "pair", "papyrus", "pool", |
| | "quailchick", "reed", "ring", "rope", "ruler", "sail", "sandal", "semen", "small", "snake", |
| | "soldier", "star", "stick", "swallow", "this", "to", "turtle", "viper", "wall", "water", "you" |
| | ] |
| | |
| | # 4. Function to prepare input image for prediction |
| | def prepare_image(img_path, target_size=(224, 224)): |
| | img = image.load_img(img_path, target_size=target_size) # Load and resize image |
| | img_array = image.img_to_array(img) # Convert to array |
| | img_array = np.expand_dims(img_array, axis=0) # Add batch dimension |
| | img_array = img_array / 255.0 # Normalize |
| | return img_array |
| | |
| | # 5. Provide the path to your test image here |
| | img_path = "path/to/your/hieroglyph_image.jpg" |
| | img = prepare_image(img_path) |
| | |
| | # 6. Run prediction |
| | predictions = model.predict(img) |
| | predicted_index = np.argmax(predictions) |
| | predicted_label = class_names[predicted_index] |
| | |
| | print(f"Predicted Hieroglyph: {predicted_label}") |
| | ``` |
| |
|
| |
|