Съёмка с подсказками
Веб-виджет показывает рамку и подсказки, а проверка качества отсеивает размытые, тёмные и обрезанные кадры. Нижний край документа с MRZ должен попасть в кадр целиком.
Распознавание MRZ по фото или скану: NeuroVision находит машиночитаемую зону на паспорте, ID-карте или виде на жительство, читает строки, пересчитывает контрольные цифры и сверяет их с данными на странице документа. Строки MRZ и разобранные поля приходят в JSON через REST API или веб-виджет — вместе с остальными данными документа.
В MRZ 37 допустимых символов: буквы A–Z, цифры 0–9 и знак-заполнитель «<», который заменяет пробелы и пустые позиции. Шрифт — моноширинный OCR-B, поэтому каждая позиция стоит на своём месте.
Тип документа, страна выдачи, фамилия и имя, номер, гражданство, дата рождения, пол и срок действия — те же сведения, что напечатаны для человека в визуальной зоне (VIZ).
Номер документа, даты и дополнительные данные сопровождаются контрольными цифрами. Ошибка чтения одного символа или правка поля меняют результат расчёта.
Сервис не просто «видит текст»: он определяет формат, раскладывает строки на поля, приводит даты к единому формату и возвращает статус проверки MRZ в одном ответе API.
MRZ — не чип. Машиночитаемая зона (MRZ, ICAO Doc 9303) напечатана на бумаге и читается по обычной фотографии; чип читается только по NFC — об отличиях в блоке «OCR MRZ и чтение чипа». Где MRZ-зона на паспорте и как по ней проверяют подделки вручную — в статье о машиночитаемой зоне.
Документы с зоной MRZ бывают трёх размеров, и у каждого своя раскладка строк. Сервис определяет формат сам — по числу строк, их длине и коду документа в первых позициях, — поэтому чтение MRZ-зоны документа не требует от пользователя выбирать тип заранее.
Строку визы MRV-A легко спутать с паспортной: у неё та же длина, но первая буква — V, а состав полей другой. Модель отличает их по коду документа.
Карточные документы: ID-1, три строки по 30 символов.
Паспорта: ID-3, две строки по 44 символа — главный формат страницы.
Документы среднего размера: ID-2, две строки по 36 символов.
Пример MRZ загранпаспорта (данные вымышленные)
MRZP<RUSTSVETKOVA<<IULIIA<<<<<<<<<<<<<<<<<<<<<<
0000000000RUS9001011F3001019<<<<<<<<<<<<<<06 valueUTC). Как пересчитывают контрольные цифры вручную — в нашей статье У гражданина России два документа с MRZ, и устроены они по-разному. Загранпаспорт — обычный TD3 по ICAO: тип P, имя латиницей по правилам транслитерации, срок действия в строке 2. Во внутреннем паспорте РФ (с 1 июля 2011 года) код документа — PN, ФИО записаны кодировкой, срока действия нет, зато есть серия, дата выдачи и код подразделения.
Сервис знает обе схемы и раскладывает каждую на поля. Паспорта до июля 2011 года MRZ не имеют — их читаем по визуальной зоне (страница о распознавании паспорта). О бланке и его защите — в статье «Защитные элементы паспорта РФ».
Пример MRZ внутреннего паспорта РФ (данные вымышленные)
MRZPNRUSCVETKOVA<<7LI8<PETROVNA<<<<<<<<<<<<<<<<
0000000000RUS9001011F<<<<<<<0200101000000<62 Строка 2, позиции 1–9 — первые три цифры серии и номер; 22–28 — пусто; 29–42 — последняя цифра серии, дата выдачи (ГГММДД) и код подразделения без дефиса. Контрольные цифры — по тому же алгоритму 7‑3‑1, что и в загранпаспорте.
Ё → 2 · Ж → J · Й → Q · Х → H · Ц → C · Ч → 3 · Ш → 4 · Щ → W · Ъ → X · Ы → Y · Ь → 9 · Э → 6 · Ю → 7 · Я → 8
Ё → E · Ж → ZH · Й → I · Х → KH · Ц → TS · Ч → CH · Ш → SH · Щ → SHCH · Ъ → IE · Ы → Y · Ь → — (не передаётся) · Э → E · Ю → IU · Я → IA
Ё → YO · Ж → ZH · Й → J · Х → X · Ц → CZ или C · Ч → CH · Ш → SH · Щ → SHH · Ъ → '' (два апострофа) · Ы → Y' · Ь → ' (апостроф) · Э → E' · Ю → YU · Я → YA
Пример: Цветкова Юлия: CVETKOVA<<7LI8 (внутренний паспорт), TSVETKOVA IULIIA (загранпаспорт), CZVETKOVA YULIYA (ГОСТ). Остальные буквы во всех трёх системах совпадают (А — A, Б — B, В — V и т. д.). Транслитерацию в загранпаспорте можно изменить по заявлению (в MRZ встречается и «YULIYA», и «IULIIA»): сервис не считает такое расхождение ошибкой, если строка MRZ совпадает с латиницей визуальной зоны того же документа. Сверка разных документов клиента между собой — отдельная логика вашей системы.
Что значит контрольная сумма в паспорте? Это цифра, рассчитанная из соседних символов MRZ. Сервис пересчитывает её для каждого защищённого поля и сравнивает с напечатанной. Расхождение означает ошибку чтения, повреждённый документ или изменённые данные — в ответе API это isMRZValid и ошибка [document] bad mrz checksum.
Контрольные цифры ловят ошибки и грубые правки, но не доказывают подлинность: алгоритм опубликован, и тот, кто подделал документ, может пересчитать их заново. Поэтому сервис сверяет MRZ с визуальной зоной (блок ниже) и ищет следы редактирования изображения — проверка подлинности документов.
Цифра после девяти символов номера. Ловит опечатку и перестановку соседних цифр — самые частые ошибки и ручного ввода, и OCR.
Защищает шесть цифр ГГММДД. Изменённый год рождения без пересчёта цифры сразу виден.
Защищает дату окончания срока. В MRZ внутреннего паспорта РФ поле пустое, и на месте цифры стоит «<».
В паспорте — личный номер или данные на усмотрение государства. В паспорте РФ здесь дата выдачи и код подразделения, и они тоже под контролем.
Считается по номеру, датам и дополнительным данным вместе. Сходится, только если согласованы все поля сразу.
Цифры берутся как есть, буквы A–Z — как 10–35, «<» — как 0. Значения умножаются по кругу на 7, 3 и 1, произведения складываются, остаток от деления на 10 — контрольная цифра. Пример: дата 900101 → 9×7 + 0×3 + 0×1 + 1×7 + 0×3 + 1×1 = 71 → 1.
MRZ читается вместе со всем документом за один запрос: клиент делает снимок, а ваша система получает строки зоны, разобранные поля и статусы проверок. Все поля паспорта, включая прописку.
Если в документе изменили поле, его чаще всего меняют там, где видно человеку, — в визуальной зоне. Машиночитаемая зона при этом остаётся прежней или пересчитывается с ошибкой. Сервис сравнивает обе зоны поле за полем и показывает, где они расходятся. На иллюстрациях — вымышленный документ «ОБРАЗЕЦ». Расхождение — повод переснять документ или отправить заявку на ручную проверку, а не вывод о подделке: блик, загнутый угол или старый бланк тоже дают ошибки чтения.
В биометрическом загранпаспорте данные хранятся дважды: напечатаны в MRZ и записаны в электронный чип. Это два разных способа получить данные, и у каждого своя задача.
| Критерий | Чтение RFID-чипа по NFC | OCR MRZ по фото — NeuroVision |
|---|---|---|
| Что нужно клиенту | смартфон с NFC и нативное приложение | камера телефона или компьютера, браузер |
| Какие документы | только документы с чипом (eMRTD) | все документы с MRZ, в том числе без чипа: внутренний паспорт РФ, старые загранпаспорта, ID-карты |
| Как получают данные | приложение открывает чип ключом из MRZ и читает записанные данные | распознают строки на изображении |
| Что подтверждает | данные записаны при выпуске документа и подписаны цифровой подписью государства | данные согласованы между собой и с визуальной зоной |
| Фото владельца | цифровая фотография из чипа | вырезается с изображения страницы |
| Где работает | только в приложении, документ прикладывают к телефону | сайт, мобильный браузер, WebView, офис |
| Есть в NeuroVision | нет | да |
NeuroVision не читает чип. Сервис работает с изображением документа: читает MRZ и визуальную зону, сверяет их и ищет следы редактирования изображения. Если по вашей процедуре нужна криптографическая проверка данных чипа, её выполняет отдельное приложение с NFC. Для массового онбординга, где документы присылают фотографией и не у всех клиентов биометрический паспорт, OCR MRZ закрывает задачу без установки приложения.
Блик на ламинате
Страница паспорта покрыта плёнкой, и вспышка или лампа дают пятно ровно на строках MRZ. Помогает съёмка без вспышки и под небольшим углом к источнику света — виджет подсказывает «уберите блик».
Обрезанный нижний край
MRZ — самая нижняя часть страницы, и её первой отрезает кадр или палец. Если строк не видно целиком, сервис вернёт [document] cropped или bad mrz checksum и попросит переснять.
Размытие и перспектива
Моноширинный шрифт мелкий: при смазе «8» становится «B», «5» — «S». Сервис выравнивает перспективу и учитывает, какие символы допустимы в каждой позиции, но резкий кадр надёжнее любой коррекции. Как снизить число пересъёмок — в статье «Почему пользователи переснимают документы». Метрики качества OCR и MRZ — в статье «Как повысить точность AI OCR и MRZ-проверки в KYC».
Повреждения и старые бланки
Потёртые, залитые или надорванные страницы читаются хуже. Внутренние паспорта РФ, выданные до июля 2011 года, MRZ не имеют вовсе — их данные берутся из визуальной зоны.
Код ошибки и подсказку для клиента — из справочника ошибок
KYC с проверкой MRZ подключается одним методом: строки зоны, разобранные поля и статус MRZ приходят вместе с остальными данными документа. Отдельной интеграции под MRZ не нужно.
Тестовый доступ на 1 месяц, персональный менеджер, поддержка по системе тикетов, оплата только за распознанные документы.
Запрос
cURLcurl -X POST "https://api.neuro-vision.ru/v1/kyc/process" \
-H "token: <jwt-token>" \
-F "images=@passport.jpg" \
-F "ocr=true" \
-F "mode=sync" Ответ: загранпаспорт с MRZ
JSON{
"status": "success",
"results": [
{
"status": "success",
"type": "passport",
"docName": "RUS — ePassport (2021)",
"errors": [],
"checks": [
{
"caption": "fraud",
"items": [
{ "caption": "isMRZValid", "status": "success" },
{ "caption": "isEdited", "status": "success" }
]
}
],
"ocr": {
"status": "success",
"fields": [
{ "title": "Surname", "value": "TSVETKOVA", "conf": "high" },
{ "title": "Given name(s)", "value": "IULIIA", "conf": "high" },
{ "title": "Document number", "value": "000000000", "conf": "high" },
{ "title": "Date of birth", "value": "01.01.1990", "valueUTC": "1990-01-01T00:00:00Z", "conf": "high" },
{ "title": "Date of expiry", "value": "01.01.2030", "valueUTC": "2030-01-01T00:00:00Z", "conf": "high" },
{ "title": "MRZ Strings", "value": "P<RUSTSVETKOVA<<IULIIA<<<<<<<<<<<<<<<<<<<<<<\n0000000000RUS9001011F3001019<<<<<<<<<<<<<<06", "conf": "high" }
]
}
}
]
} Если MRZ не прочиталась или контрольные цифры не сошлись, в errors придёт [document] bad mrz checksum. Как поступить — переснять, отправить оператору или отклонить — задаёте вы.
MRZ выручает там, где много документов иностранцев и загранпаспортов, а данные нужны латиницей и без ошибок. Проверка нерезидентов по санкционным спискам и базам.
Считывание MRZ и проверка контрольных сумм входят в распознавание документа — отдельно за MRZ платить не нужно. Абонентской платы нет.
Рассчитать стоимостьТермины, которые встречаются в стандарте ICAO, в документации API и в требованиях к проверке документов.
Пришлите задачу — дадим тестовый доступ к API и веб-виджету на месяц и проверим чтение MRZ на ваших документах.
Не можете сформулировать запрос? Запишитесь на звонок, и наша команда свяжется с вами в удобное время
Записаться на звонокКомпания внесена в реестр IT-компаний и реестр операторов персональных данных Минцифры России.
Адрес: Москва, Пресненская наб., д. 12 — деловой центр «Москва-Сити», башня «Федерация». Ближайшие станции метро — «Деловой центр» и «Международная».
Как устроена машиночитаемая зона и как проверяют документы — в нашем блоге
Ответы о типах паспортов, прописке, точности, хранении данных и подключении
Это две строки латиницей и цифрами внизу страницы с фотографией, в которых по стандарту ICAO Doc 9303 записаны тип документа, страна, фамилия и имя, номер, даты и контрольные цифры. На ID-картах MRZ из трёх строк и стоит на обороте. Зона нужна, чтобы данные документа можно было считать автоматически и проверить.
Паспорта (формат TD3), ID-карты и карточные виды на жительство (TD1) и документы формата TD2 из 195+ стран и территорий, включая загранпаспорт и внутренний паспорт РФ. Полный список — в документации; бланки без MRZ отмечены в нём «не MRZ».
Да, во внутреннем паспорте РФ машиночитаемая запись заполняется с 1 июля 2011 года: она внизу третьей страницы. У паспортов, выданных раньше, зоны нет — это законные документы, их данные сервис берёт из визуальной зоны.
Во внутреннем паспорте кириллица записывается кодировкой, а не транслитерацией: буквы без латинского аналога заменены цифрами и буквами, например Ч — 3, Ш — 4, Ю — 7, Я — 8. Сервис знает эту таблицу и сверяет такую запись с ФИО на странице.
В загранпаспорте фамилию и имя пишут латиницей по правилам, основанным на ICAO Doc 9303: Ю — IU, Я — IA, Ц — TS. ГОСТ 7.79 в паспортах не применяется. По заявлению гражданина написание может быть другим, например как в прежнем паспорте, поэтому MRZ сверяется с латиницей того же документа.
Не обязательно. Контрольные цифры подтверждают, что запись согласована, но алгоритм опубликован, и их может пересчитать тот, кто изменил документ. Поэтому сервис ещё сверяет MRZ с визуальной зоной и ищет следы редактирования изображения.
Нет. Сервис работает с изображением документа: читает MRZ и визуальную зону по фото. Чип биометрического паспорта читается только по NFC в отдельном приложении; зато OCR MRZ работает в браузере и для документов без чипа.
Попросить клиента переснять документ без вспышки, чтобы нижние строки целиком попали в кадр. API подскажет причину кодом ошибки: bad mrz checksum — строки не прочитались или контрольные суммы не сошлись, cropped — документ обрезан. Веб-виджет показывает подсказки ещё при съёмке.
MRZ читается в составе распознавания документа: вы получаете и строки зоны, и поля визуальной зоны в одном ответе. Отдельного режима только для MRZ нет.
Паспортный сканер — устройство на стойке, которое читает документ с подсветкой и подходит, когда клиент приходит лично. OCR MRZ работает с фотографией: клиент снимает документ телефоном на сайте или в приложении, и данные приходят через API без оборудования.
Отдельно за MRZ платить не нужно: считывание и проверка контрольных сумм входят в распознавание документа — от 16 ₽ с антифродом. Первый месяц — бесплатный тест.
В России: в облаке NeuroVision или на ваших серверах при установке в контуре. Обработка соответствует 152‑ФЗ; в облаке оригиналы изображений хранятся 3 месяца бесплатно, далее — по тарифу, при установке у вас — не покидают вашу инфраструктуру.