Equal CER, Unequal Damage: Severity-Weighted Character Error Rate for OCR
Organizations: University of Rochester · Independent
Abstract
Character Error Rate (CER), the standard metric for OCR and vision-language models (VLMs), charges a typo as much as a wrong name. We introduce semCER, which keeps CER's alignment and denominator and charges each grapheme edit a severity from an LLM judge, with no word segmentation. Normalized CER keeps the score of a whole transcription, where it tracks readers as well as semCER or better, and semCER breaks that score down into named edits. The charges track readers' ratings edit by edit in English, Vietnamese, and Chinese and put the edits readers rate most severe near the top of a sorted list. On pairs drawn where CER and semCER disagreed, readers side with semCER more often than with normalized CER in English and Chinese, and equally often in Vietnamese. Across 16 languages, the judge charges a wrong diacritic or tone mark almost nothing in Spanish but nearly a wrong letter's severity in Telugu. Where we can count real words, a general VLM's wrong letter forms one far above chance while a classical pipeline's stays near it. We release the 61 million judged edits, the aggregated reader ratings, and the distilled scorer at https://github.com/nguyenx2t/semcer.
Figures & tables
| Level | Rating | Description |
|---|---|---|
| Cosmetic, fully recoverable | ||
| Non-word or obvious error, context recovers | ||
| Valid alternative, reader may notice | ||
| Recovery fails, but error is detectable | ||
| Reads perfectly, is false, no signal |
Appendix figures & tables13 assets
Supplementary material from the paper’s appendix.
Appendix
| Type | Datasets | Lines |
|---|---|---|
| Handwriting | IAM ( Marti and Bunke, 2002 ) , RIMES ( Grosicki and El-Abed, 2011 ) , German Handwriting ( Fachhochschule Südwestfalen, 2024 ) , CASIA-HWDB ( Liu et al., 2011 ) , KHATT ( Mahmoud et al., 2014 ) , UNHD ( Ahmed et al., 2019 ) , VNOnDB ( Nguyen et al., 2018 ) , Thai handwriting ( Pongsasit, 2025 ) , BRESSAY ( Neto et al., 2024 ) , School Notebooks ( ai-forever, 2022 ) , ICDAR 2025 IHDR ( IIIT Hyderabad, Centre for Visual Information Technology, 2025 ) | 104,897 |
| Scene text | HierText ( Long et al., 2022 ) , LSVT ( Sun et al., 2019 ) , RCTW-17 ( Shi et al., 2017 ) , COCO-Text ( Veit et al., 2016 ) , TextOCR ( Singh et al., 2021 ) , CTW ( Yuan et al., 2019 ) , ReCTS ( Zhang et al., 2019 ) , VinText ( Nguyen et al., 2021 ) , MLT-2019 ( Nayef et al., 2019 ) , ThaiOCRBench ( Nonesung et al., 2025 ) | 11,380 |
| Printed document | OmniDocBench ( Ouyang et al., 2025 ) , VieBookRead ( Do et al., 2025 ) , RETAS ( Yalniz and Manmatha, 2011 ) , Mozhi ( Mathew et al., 2024 ) | 113,118 |
| Total | 25 datasets, 16 languages | 229,395 |
| System | Params | Reference |
| Classical OCR | ||
| EasyOCR | – | ( JaidedAI, 2020 ) |
| PP-OCRv5 | – | ( Cui et al., 2025 ) |
| Document-specialized VLM | ||
| Qianfan-OCR | 4B | ( Dong et al., 2026 ) |
| General VLMs | ||
| Study | Lang | Items | Readers | ICC(2, ) | |
|---|---|---|---|---|---|
| single-edit | English | 87 | 5 | 0.71 | 0.89 |
| Vietnamese | 80 | 4 | 0.67 | 0.87 | |
| Chinese | 86 | 5 | 0.53 | 0.81 | |
| pair-level | English | 178 | 4 | 0.79 | 0.92 |
| Vietnamese | 173 | 4 | 0.65 | 0.88 | |
| Chinese | 185 | 3 | 0.68 | 0.84 |
| English | Vietnamese | Chinese | |
| Partial correlation within band | |||
| severity | 0.30 ∗ | 0.33 ∗ | 0.52 ∗ |
| mode | 0.44 ∗ | 0.23 ∗ | 0.29 ∗ |
| severity, given the mode | 0.13 | 0.24 ∗ | 0.45 ∗ |
| Correlation on the whole pool | |||
| severity | 0.81 | 0.66 | 0.82 |
| Score | English | Vietnamese | Chinese |
|---|---|---|---|
| unnormalized CER | |||
| whitespace stripped | |||
| character filter | |||
| normalized CER | |||
| case-folded, punct. kept | |||
| semCER |
| English | Vietnamese | Chinese | |
| Pool, strict majority | 173 | 163 | 146 |
| Near-miss pairs | 70 | 78 | 68 |
| Normalization-proof pairs | 22 | 30 | 30 |
| Agreement with readers on near-miss pairs | |||
| semCER | 0.87 ∗ | 0.76 | 0.85 ∗ |
| normalized CER | 0.64 | 0.73 | 0.59 |
| English | Vietnamese | Chinese | |
| Single edits | |||
| correlation with readers | 0.80 | 0.65 | 0.83 |
| partial within band | 0.37 ∗ | 0.35 ∗ | 0.57 ∗ |
| same, given the filter label | 0.35 ∗ | 0.20 | 0.51 ∗ |
| correlation with the first judge | 0.81 | 0.74 | 0.83 |
| Whole transcriptions | |||
| VLM | Chinese | Vietnamese | German | French | English | Spanish |
|---|---|---|---|---|---|---|
| Gemma 4 | (456) | (108) | (479) | (492) | (1,431) | (626) |
| InternVL3.5 | (343) | (104) | (260) | (321) | (1,242) | (533) |
| Qwen3.5 | (308) | (84) | (473) | (500) | (1,395) | (624) |
| Qwen3.6 | (297) | (77) | (506) | (546) | (1,309) | (629) |
| Language | mark-only | content sub. | per edit |
|---|---|---|---|
| Chinese † | – | 0.80 | 0.50 |
| Telugu | 0.75 | 0.81 | 0.74 |
| Kannada | 0.70 | 0.80 | 0.70 |
| Tamil | 0.66 | 0.77 | 0.68 |
| Thai | 0.64 | 0.81 | 0.66 |
| Marathi | 0.56 | 0.68 | 0.62 |
| Language | Domain | general VLM | classical |
|---|---|---|---|
| English | printed | / ∗ | / ∗ |
| English | handwriting | / ∗ | – |
| English | scene text | / ∗ | / ∗ |
| German | printed | / ∗ | / |
| German | handwriting | / ∗ | / |
| French | printed | / ∗ | / |
| English | Vietnamese | Chinese | All | |
| Correlation with readers, single edits | ||||
| student | 0.79 | 0.63 | 0.80 | |
| judge | 0.81 | 0.66 | 0.82 | |
| Clear pairs ordered as the judge does (%) | ||||
| held-out test lines | 90 | 91 | 93 | 90 |
| rated-pool lines | 90 | 92 | 90 | 91 |
| Data | training, validation, |
|---|---|
| and test lines | |
| Backbone | Qwen3.5-0.8B-Base ( Qwen Team, 2026a ) , |
| all weights trained | |
| Input | marked pair, up to tokens |
| Readout | last token and the pooled |
| reference and output spans |