Models by script
Character error rate for a selection of the handwriting systems we tested, on 8,136 lines across seven script types, plus an estimate for Najdi. Lower is better.
Kindi v0.5 preview has the lowest error on six of the seven scripts. On Modern handwriting, other systems we tested read better, including sherif-v3.
| System | Oriental1,528 | Ruq‘ah2,096 | Nastaliq663 | Ta‘liq182 | Naskh1,205 | Maghrebi1,071 | Modern1,391 | All8,136 | Najdiestimate | Lines read |
|---|---|---|---|---|---|---|---|---|---|---|
| Read every line (8,136) | ||||||||||
| Kindi v0.5 preview | 3.70 | 5.82 | 8.18 | 8.83 | 9.82 | 10.43 | 15.30 | 8.96† | 12.4 | 8,136 |
| HATFormer | 32.03 | 17.91 | 20.73 | 13.43 | 21.19 | 33.90 | 41.42 | 26.81 | 30.0 | 8,136 |
| sdkv2 | 24.74 | 21.93 | 32.46 | 35.09 | 40.03 | 48.78 | 39.65 | 33.72 | 40.4 | 8,136 |
| Chandra OCR 2 | 29.33 | 34.33 | 48.14 | 27.50 | 33.92 | 52.07 | 33.88 | 37.07 | 30.5 | 8,136 |
| PaddleOCR-VL 1.6 | 35.95 | 44.13 | 36.06 | 27.37 | 49.31 | 52.41 | 36.87 | 42.90 | 47.6 | 8,136 |
| Qwen3.5-4B | 36.83 | 48.90 | 44.73 | 34.09 | 48.82 | 55.94 | 36.12 | 45.45 | 41.9 | 8,136 |
| olmOCR 2 | 36.90 | 48.43 | 54.16 | 34.43 | 45.06 | 58.70 | 36.64 | 45.91 | 45.3 | 8,136 |
| dots.mocr | 37.86 | 49.64 | 37.69 | 27.33 | 41.65 | 57.98 | 50.69 | 46.68 | 38.5 | 8,136 |
| Qari-OCR v0.4 | 40.00 | 50.32 | 43.66 | 33.60 | 49.98 | 56.91 | 40.79 | 47.30 | 47.8 | 8,136 |
| EasyOCR | 48.80 | 52.19 | 42.70 | 35.30 | 50.81 | 55.42 | 45.49 | 49.59 | 54.7 | 8,136 |
| LightOnOCR 2 | 43.47 | 53.89 | 70.73 | 48.49 | 54.11 | 62.49 | 39.40 | 52.55 | 49.4 | 8,136 |
| Qari-OCR v0.3 | 40.02 | 58.08 | 67.00 | 33.13 | 58.19 | 57.57 | 45.26 | 53.78 | 43.2 | 8,136 |
| Tesseract | 68.72 | 63.70 | 70.32 | 49.22 | 68.76 | 65.11 | 51.58 | 63.38 | 54.8 | 8,136 |
| DeepSeek-OCR 2 | 73.88 | 69.82 | 70.65 | 59.91 | 70.21 | 74.46 | 60.19 | 69.07 | 66.4 | 8,136 |
| GLM-OCR | 83.71 | 79.55 | 81.95 | 78.28 | 83.19 | 83.97 | 81.39 | 81.82 | 67.2 | 8,136 |
| Read part of the test | ||||||||||
| sherif-v3 | 15.94 | 18.42* | 31.02 | 19.39 | 34.98* | 34.41* | 7.88‡ | — | 27.9 | 7,838 |
| Gemma 4 31B | 21.87 | 26.55* | 17.16 | 14.49 | 24.69* | 42.13* | 24.10 | — | 28.4 | 7,838 |
| Baseer Nakba | 19.57 | 23.34* | 33.31 | 27.68 | 41.26* | 53.67* | 28.19 | — | 32.7 | 7,838 |
| deep.sa OCR v2.0 | — | 49.25* | 44.07 | 37.03 | 51.23* | 52.57* | — | — | — | 4,458 |
| Mistral OCR v4.1 | — | 29.33* | 40.21* | 29.37 | 39.82* | 56.65* | — | — | — | 2,000 |
| Qwen2.5-VL 3B | — | 43.68* | 58.45* | 37.49 | 49.58* | 59.04* | — | — | 41.5 | 2,000 |
How to read the table
- Bold numbers
- The lowest error in the column among the systems listed that read all of its lines. Modern has none, because systems not listed here read it better.
- * Partial read
- The system read only some of that script's lines, so compare its number with care.
- —
- No score: the system hasn't read these lines.
- ‡ Trained on these lines
- sherif-v3 trained on most of the Modern lines, so its score there is better than it would be on new handwriting.
- † Calculated
- Kindi v0.5 preview's All score is worked out from its seven script scores, weighted by characters.
- Najdi
- An estimate, not a test result. These pages have no line-by-line reference, so each read is compared with its closest stretch of a printed transcription. Every system is scored on the same 76 lines, and lines with no close match are dropped, which favours weak systems. DeepSeek-OCR 2, GLM-OCR and Tesseract matched very few lines, so their numbers say little.
- Qwen3.5-4B
- It read the seven scripts with our prompt and Najdi with a plainer one.
- Why it isn't 8.83%
- The 8.83% on the Kindi HTR page comes from a narrower test: 2,000 lines in five scripts. This table uses the wider test.