Create README.md
Browse files
README.md
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
language:
|
| 3 |
+
- tr
|
| 4 |
+
- otk
|
| 5 |
+
tags:
|
| 6 |
+
- ocr
|
| 7 |
+
- old-turkic
|
| 8 |
+
- gokturk
|
| 9 |
+
- resnet
|
| 10 |
+
- onnx
|
| 11 |
+
- computer-vision
|
| 12 |
+
- image-classification
|
| 13 |
+
metrics:
|
| 14 |
+
- accuracy
|
| 15 |
+
---
|
| 16 |
+
|
| 17 |
+
*Work in progress.*
|
| 18 |
+
|
| 19 |
+
# Gokturk ResNet OCR Model
|
| 20 |
+
|
| 21 |
+
This is a **ResNet-based** OCR model specifically trained to recognize **Old Turkic (Gokturk)** script characters. It is optimized for inference using **ONNX Runtime**, making it highly portable and efficient.
|
| 22 |
+
|
| 23 |
+
## Model Description
|
| 24 |
+
|
| 25 |
+
- **Repository:** [ocr-gokturk](https://github.com/EdgeTypE/ocr-gokturk)
|
| 26 |
+
- **Task:** Optical Character Recognition (OCR) / Image Classification
|
| 27 |
+
- **Classes:** 75 characters (Unicode range `U+10C00` – `U+10C4A`)
|
| 28 |
+
- **Input Shape:** [(Batch, 64, 64, 1)](file:///a:/Users/Edige/GitHub/ocr-gokturk/src/ocr.rs#36-60) (Grayscale)
|
| 29 |
+
- **Format:** ONNX
|
| 30 |
+
|
| 31 |
+
## How to use
|
| 32 |
+
|
| 33 |
+
This model is primarily used within the [ocr-gokturk](https://github.com/EdgeTypE/ocr-gokturk) Rust project.
|
| 34 |
+
|
| 35 |
+
### In Rust (with `ort` crate)
|
| 36 |
+
|
| 37 |
+
```rust
|
| 38 |
+
use ort::session::Session;
|
| 39 |
+
|
| 40 |
+
let session = Session::builder()?
|
| 41 |
+
.commit_from_file("gokturk_resnet_v1.onnx")?;
|
| 42 |
+
```
|
| 43 |
+
|
| 44 |
+
### In Python (with `onnxruntime`)
|
| 45 |
+
|
| 46 |
+
```python
|
| 47 |
+
import onnxruntime as ort
|
| 48 |
+
import numpy as np
|
| 49 |
+
|
| 50 |
+
session = ort.InferenceSession("gokturk_resnet_v1.onnx")
|
| 51 |
+
# Expects a 64x64 grayscale image normalized to [0, 1]
|
| 52 |
+
# input_data shape: (1, 64, 64, 1)
|
| 53 |
+
result = session.run(None, {"input_1": input_data})
|
| 54 |
+
```
|
| 55 |
+
|
| 56 |
+
## Dataset and Training
|
| 57 |
+
|
| 58 |
+
The model was trained on a curated dataset of Gokturk script characters, covering various styles and weights of the Orkhon and Yenisei variants.
|
| 59 |
+
|
| 60 |
+
## Files
|
| 61 |
+
- [gokturk_resnet_v1.onnx](file:///a:/Users/Edige/GitHub/ocr-gokturk/gokturk_resnet_v1.onnx): The main inference model.
|
| 62 |
+
- [model_labels.json](file:///a:/Users/Edige/GitHub/ocr-gokturk/model_labels.json): Mapping of model output indices to character labels.
|