File size: 4,697 Bytes
b846912
 
 
 
 
 
 
555c94c
 
 
 
 
b568d00
 
33d3862
 
 
 
 
 
c1c4b4b
33d3862
 
c1c4b4b
 
 
 
 
33d3862
 
 
 
 
 
 
 
 
 
aabb518
33d3862
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c1c4b4b
 
 
33d3862
 
 
 
 
c1c4b4b
 
33d3862
 
c1c4b4b
 
 
 
33d3862
 
 
 
 
 
c1c4b4b
 
 
33d3862
 
 
 
c1c4b4b
 
33d3862
 
 
c1c4b4b
33d3862
 
c1c4b4b
 
 
33d3862
 
 
 
 
aabb518
33d3862
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
---
license: mit
language:
- he
tags:
- languages
- manuscripts
- hebrew
- ocr
- letters
- manuscript
- digital-humanities
datasets:
- bsesic/HebrewManuscripts
---

# Hebrew Letter Recognition Model

## Model Description

This is a **Convolutional Neural Network (CNN)** model trained to recognize **Hebrew letters** and a **stop symbols** in images. The model can identify individual letters from a provided image, outputting their respective class along with probabilities.

## Model Details:
* **Model Type**: Convolutional Neural Network (CNN)
* **Framework**: TensorFlow 2.x / Keras
* **Input Size**: 64x64 grayscale images of isolated letters.
* **Output Classes**: 28 Hebrew letters + 1 stop symbol (.)
* **Use Case**: Recognizing handwritten or printed Hebrew letters and punctuation in scanned images or photos of documents.

## Intended Use

This model is designed for the automatic recognition of *Hebrew letters* from images. The model can be used in applications such as:

* Optical character recognition (OCR) systems for Hebrew text.
* Educational tools to help learners read Hebrew text.
* Historical document digitization of Hebrew manuscripts.

## How to Use:
```python
from tensorflow.keras.models import load_model
import numpy as np
import cv2

# Load the model
model = load_model('path_to_model.hebrew_letter_model.keras')

# Preprocess an input image (example for one letter)
img = cv2.imread('path_to_image.jpg', cv2.IMREAD_GRAYSCALE)
img_resized = cv2.resize(img, (64, 64)) / 255.0
img_array = np.expand_dims(img_resized, axis=0)

# Predict
predictions = model.predict(img_array)
predicted_class = np.argmax(predictions, axis=1)[0]

# Class names for Hebrew letters
class_names = ['stop', '讗', '讘', '讙', '讚', '讛', '讜', '讝', '讞', '讟', '讬', '讱', '讻', '诇', '诐', '诪', '谉', '谞', '住', '注', '祝', '驻', '抓', '爪', '拽', '专', '砖', '转']

print("Predicted letter:", class_names[predicted_class])

```

## Example:
If given an image with the Hebrew word "讗讘专诐" (Abram), the model can detect and classify the letters and stop symbols with probabilities.

## Limitations:

* **Font Variations**: The model performs best on specific fonts (e.g., square Hebrew letters). Performance may degrade with highly stylized or cursive fonts.
* **Noise Sensitivity**: Images with a lot of noise, artifacts, or low resolution may lead to incorrect predictions.
* **Stop Symbol**: The stop symbol is particularly recognized by detecting three vertical dots. However, false positives can occur if letters with similar shapes are present.

## Training Data:

The model was trained on a dataset containing *Hebrew letters and stop symbols*. The training dataset includes:

* **28 Hebrew letters**.
* **1 stop symbol** representing three vertical dots (.).

## Training Procedure:
* **Optimizer**: Adam
* **Loss function**: Categorical Crossentropy
* **Batch size**: 32
* **Epochs**: 10

Data augmentation was applied to reduce overfitting and increase the model's generalizability to unseen data. This includes random rotations, zooms, and horizontal flips.

## Model Performance

# Metrics:
* **Accuracy**: 95% on the validation dataset.
* **Precision**: 94%
* **Recall**: 93%
* 
Performance may vary depending on the quality of the input images, noise levels, and whether the letters are handwritten or printed.

## Known Issues:
* **False Positives for Stop Symbols**: The model sometimes incorrectly identifies letters that resemble three vertical dots as stop symbols.
* **Overfitting to Specific Fonts**: Performance can degrade on handwritten texts or cursive fonts not represented well in the training set.

## Ethical Considerations

* **Bias**: The model was trained on a specific set of Hebrew fonts and may not perform equally well across all types of Hebrew texts, particularly historical or handwritten documents.
Fairness: The model may produce varying results depending on font style, quality of input images, and preprocessing applied.

## Future Work:

* **Improving Generalization**: Future work will focus on improving the model's robustness to different fonts, handwriting styles, and noisy inputs.
Multilingual Expansion: Adding support for other Semitic scripts or expanding the model for multilingual OCR tasks.
Citation:

If you use this model in your work, please cite it as follows:

```bibtex
@misc{hebrew-letter-recognition,
  title={Hebrew Manuscripts Letter Recognition Model},
  author={Benjamin Schnabel},
  year={2024},
  howpublished={\url{https://huggingface.co/bsesic/HebrewManuscriptsMNIST}},
}
```

License:

This model is licensed under [MIT License](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/mit.md).