Пересчитайте, что кадровик переносит в карточку с одного разворота. Фамилия, имя, отчество — три значения, дальше пол, дата рождения, место рождения, серия, номер, кем выдан, дата выдачи, код подразделения. Одиннадцать полей, и это до адреса регистрации, разложенного в карточке по классификатору. Через неделю те же значения набивает менеджер, заводя договор с физлицом, потом третий человек — в анкете на рассрочку. Один разворот, три системы, три возможности ошибиться в серии.
На пресейле паспорт заказывают как задачу попроще накладной: полей мало, бланк один на всю страну, расположение фиксированное. По факту общегражданский паспорт РФ — один из самых неудобных документов для автоматического разбора, и начинается это с того, чего у него нет.
Машиночитаемой зоны у российского паспорта нет
Фраза «прочитаем MRZ, там все поля в двух строках» звучит на пресейле регулярно. Для заграничного паспорта она верна: внизу страницы с фотографией лежат две строки фиксированной длины по стандарту ICAO 9303, с собственными контрольными цифрами на номер, дату рождения и срок действия. Такая зона читается даже с посредственного снимка, а ошибка ловится арифметикой прямо в строке.
У внутреннего паспорта РФ такой зоны нет и не было. Это не проездной документ, стандарты ICAO к нему отношения не имеют. Извлекать приходится по полям бланка: находить подписи полей, резать области, читать печатный текст разной степени сохранности. Все проверки, которые в загране встроены в саму строку, здесь нужно строить руками — из дат, кодов подразделений и контрольных чисел смежных документов.
Если на демонстрации показывают разбор загранпаспорта со словами «с внутренним так же» — вам показали другую задачу. Другой трудоемкости и точности.
Что реально снимается с разворота
Основной разворот — вторая и третья страницы. Слева орган выдачи, справа данные владельца и фотография. Ниже — поля карточки и то, чем каждое проверяется на месте.
| Поле | Где лежит | Чем проверяется на месте |
|---|---|---|
| Фамилия, имя, отчество | Правая страница, верх | Сверка с остальными документами комплекта: СНИЛС, ИНН, диплом |
| Пол | Правая страница | Согласуется с окончанием отчества — подсказка, не правило |
| Дата рождения | Правая страница | Арифметика с датой выдачи и возрастом в анкете |
| Место рождения | Правая страница | Свободный текст со старыми названиями, справочник тут не помощник |
| Серия и номер | Правое поле, вертикально; дубль перфорацией | Четыре плюс шесть цифр; вторые две цифры серии — год печати бланка |
| Кем выдан | Левая страница | Регион сверяется с первыми двумя цифрами кода подразделения |
| Дата выдачи | Левая страница | Возрастные рубежи 14, 20 и 45 лет |
| Код подразделения | Левая страница, под датой | Формат три плюс три цифры, первые две — код региона |
За пределами разворота живут адрес регистрации, семейное положение, дети, ранее выданные паспорта, отметка об ИНН. Выпишите, какие из них реально нужны вашей карточке: лишнее поле — это лишний объект персональных данных на хранении.
Серия и номер: вертикаль и перфорация
Серия и номер напечатаны на правом поле страницы с фотографией, повернутые на девяносто градусов. Движок распознавания по умолчанию ищет горизонтальные строки; вертикальный блок он либо пропускает целиком, либо выдает мусор из похожих символов. Лечение одно: область вырезается по геометрии, поворачивается и распознается отдельным проходом с узким алфавитом — только цифры, никаких букв. Проход ради одного поля выглядит излишеством ровно до первого договора с чужим номером паспорта.
Второй экземпляр тех же цифр — лазерная перфорация, пробитая насквозь через страницы с пятой по двадцатую. Это не печатный текст. На планшетном сканере с прижатой крышкой это ряд едва различимых точек; читается перфорация только на просвет. Есть регламент съемки на просвет — получаете второй независимый источник номера; на фотографии из мессенджера рассчитывать на него не стоит.
У перфорации есть и побочная роль. На странице с регистрацией нет ни фамилии, ни печатного номера — перфорация остается единственным реквизитом, физически связывающим эту страницу с конкретным паспортом. Не видно ее — комплект придется связывать процедурой.
Регистрация приходит отдельным разворотом
Прописка живет на страницах с пятой по двенадцатую и в карточке нужна почти всегда. Беда в том, что по содержимому страницы невозможно определить, чья она. Штамп содержит наименование органа, дату регистрации и адрес. Фамилии там нет.
Отсюда два требования к процессу.
- Комплект приходит одной сущностью. Один архив, одна загрузка в форме, где сначала выбирается физлицо и только потом прикладываются страницы. Связывание «по времени загрузки» разваливается в первый же день, когда два кадровика работают одновременно.
- Каждая страница классифицируется. Разворот 2-3, регистрация, воинская обязанность, семейное положение. Классификатор страниц дешевле и надежнее любой попытки угадать принадлежность по содержимому.
Сам штамп — отдельный уровень боли: ставится вручную, бывает наклонным, смазанным, наложенным на соседний, часть текста внутри вписана от руки. Поверх старых стоят отметки о снятии с учета. Читать нужно последний по дате, значит, разбирать придется все штампы на странице.
Чем паспорт хуже накладной по качеству входа
Накладная приходит с принтера поставщика. Паспорт приходит как получится. Шесть источников брака, которые встречаются в любом кадровом потоке.
- Рукописные и машинописные вставки. В бланках ранних выпусков поля «кем выдан» и «место рождения» набивались на пишущей машинке; встречаются вписанные от руки фрагменты и заверенные подписью исправления. Модель, обученная на печатном тексте, на этих строках проседает.
- Печать поверх текста. Оттиск подразделения ложится в нижнюю часть левой страницы и регулярно накрывает дату выдачи и код подразделения. Круглая печать поверх черных цифр — самый частый источник ошибки в коде подразделения.
- Старые бланки. Экземпляры разных лет печати отличаются насыщенностью защитной сетки, оттенком подложки и гарнитурой заполнения. Жесткий шаблон с абсолютными координатами держится до первого паспорта другого года выпуска. Поля ищутся по подписям и якорям.
- Фотография с телефона. Изгиб по корешку выгибает строки дугой, блик от ламината садится ровно на серию и номер, в кадр попадает палец, тень от телефона накрывает левую страницу.
- Копия копии. Ксерокопия с ксерокопии дает бледный текст и растр, на котором тонкие штрихи цифр рассыпаются.
- Обрезанный край. Снимают разворот, вертикальное поле с номером в кадр не влезает. Формально читаемо, фактически бесполезно.
Препроцессинг, выравнивание, снятие печатей, работа с бликом разобраны в статье про OCR в реальных условиях. Здесь важнее другое: половина этого брака лечится не инженерией, а листком с правилами съемки на стене у кадровика. Развернуть на плоскости, снимать сверху, рассеянный свет, оба поля в кадре.
Валидация вместо доверия
Оценку уверенности модели в приемку не берут: «0,98» на неверно прочитанной семерке выглядит ровно так же, как на верной. Работает другое — паспорт перепроверяет сам себя. Даты сцеплены возрастными рубежами, серия несет год бланка, код подразделения несет регион, а СНИЛС и ИНН из того же комплекта несут контрольные числа. Ниже — проверки, которые считаются без единого обращения во внешние базы.
| Проверка | Что ловит | Реакция системы |
|---|---|---|
| Дата выдачи не раньше четырнадцатилетия | Ошибку в любой из двух дат | Обе даты в разбор |
| Рубежи 20 и 45 лет: человеку больше 20, паспорт выдан до его двадцатилетия | Ошибку в датах либо недействительный паспорт | Стоп, запрос актуального документа |
| Вторые две цифры серии — год печати бланка, он не позже года выдачи | Ошибку в серии или в дате выдачи | Подсветка серии, разбор |
| Первые две цифры кода подразделения против региона в «кем выдан» | Ошибку под печатью в коде подразделения | Подсветка кода, разбор |
| Контрольное число СНИЛС | Опечатку и сбой распознавания в одиннадцати цифрах | Стоп до исправления |
| Контрольные цифры ИНН физлица | Ошибку в двенадцати цифрах | Стоп до исправления |
| Дата рождения против возраста в анкете и даты приема | Подмену комплекта, опечатки в анкете | Разбор оператору |
Про контрольные числа подробнее: они бесплатны, и их регулярно не делают. У СНИЛС последние две цифры — контрольное число. Первые девять умножаются на веса от девяти до единицы, сумма делится на сто один, контрольным числом становится остаток; остаток, равный ста, дает ноль-ноль. Три строки кода, ноль обращений во внешние системы. У ИНН физлица контрольных цифр две, считаются похожим способом.
И одна проверка, которую делать нельзя, хотя она напрашивается. Дата в штампе регистрации может быть раньше даты выдачи паспорта: при замене бланка отметку переносят с исходной датой. Правило «регистрация позже выдачи» завалит очередь ложными срабатываниями в первый же день. Мнимые инварианты — главная причина, по которой операторы перестают доверять очереди и начинают штамповать подтверждения не глядя.
Адрес из штампа против адресного классификатора
Вытащить строку адреса — половина дела. В кадровых конфигурациях адрес физлица хранится разложенным по адресному классификатору, произвольный текст туда не записать. Разбор строки в структуру — самостоятельная задача, которую регулярно забывают в смете.
- сокращения у разных подразделений разные: «ул.», «улица», «пр-кт», «пр.», «д.», «дом», «корп.», «к.», «стр.», «кв.»;
- улицы и населенные пункты переименовывают, а штамп остается со старым названием;
- дома с литерами и дробями вида «12/1 лит. А» в классификаторе разложены иначе, чем написаны в штампе;
- регистрация по адресу общежития, воинской части или места пребывания вместо места жительства.
Рабочее правило: адрес разбирается до уровня, где классификатор дает однозначное совпадение — регион, район, населенный пункт, улица. Дом, корпус и квартира кладутся отдельными полями. Улица не нашлась — карточка не создается молча, вопрос уходит человеку с фрагментом штампа рядом.
Дубли: СНИЛС — ключ, фамилия — подсказка
Второе физлицо на одного человека обходится дороже любой ошибки распознавания: расходятся начисления, стаж, отчетность, взаиморасчеты. Порядок ключей всегда один.
- СНИЛС. Уникален, не меняется при смене фамилии и при замене паспорта. Единственный по-настоящему надежный ключ для физлица.
- ИНН. Второй по надежности, с проверяемой контрольной суммой.
- Серия и номер паспорта. Слабый ключ: документ меняется в 20 и 45 лет, старый номер продолжает жить в базе и в старых договорах.
- Фамилия, имя, отчество плюс дата рождения. Только подсказка. Полные однофамильцы с одной датой рождения в большой базе встречаются, а смена фамилии рвет ключ полностью.
Реакция на совпадение по первым двум ключам одна: новая карточка не создается, система показывает существующую с предложением обновить документ. Кадровик, который «заводит нового сотрудника», в заметной доле случаев заводит вернувшегося.
Три сценария в 1С и цена ошибки в каждом
Механика общая: сервис работает снаружи, конфигурация остается нетронутой, объект создается черновиком, подтверждает человек. Сам поток — каналы, дедуп, порог отсечения — разобран в статье про распознавание первичных документов в 1С. Разница между сценариями в наборе полей и в цене ошибки.
| Сценарий | Что заполняется | Цена ошибки |
|---|---|---|
| Карточка сотрудника | Физлицо, документ удостоверяющий личность, СНИЛС, ИНН, адрес регистрации | Отчетность в фонд и в налоговую не принимается, дальше корректировки и объяснительные |
| Карточка контрагента-физлица | Реквизиты для договора и печатных форм, ИНН из двенадцати знаков | Подписанный договор с чужими реквизитами, переподписание всей пачки |
| Анкета клиента | Полный набор полей плюс скан как приложение к заявке | Решение принято по чужим данным, деньги выданы не тому |
Третий сценарий — лизинг, микрофинансы, розничная рассрочка — тянет за собой вторую задачу, которую путают с первой. Заполнение полей и проверка подлинности — разные дисциплины с разными моделями и ценой. Про вторую есть отдельный разбор: проверка документов на подделку. Нужна именно она — распознавание полей станет побочным продуктом, и проект считается иначе.
152-ФЗ: контур определяется до выбора модели
Скан паспорта в публичном облаке — это передача персональных данных третьему лицу: правовое основание, договор поручения на обработку, требования к площадке обработчика, а для сервиса за пределами РФ еще и трансграничная передача с отдельной процедурой. Оформляется. По часам юриста и по остаточному риску почти всегда дороже своего контура.
Первая строка технического задания на паспорта: скан не покидает контур организации. Все остальное — детали реализации.
Шесть требований, которые проверяются на приемке. После инцидента обсуждать их поздно.
- Контур. Обработка на своих серверах или в выделенном сегменте. Формулировка «мы on-prem» у разных поставщиков означает разное — от изолированной установки до контейнера, который ходит наружу за лицензией и телеметрией; что за ней стоит на практике, разобрано в отдельной статье. Вопрос задается до подписания договора.
- Правовое основание. Для работника это трудовые отношения, для клиента — согласие с перечисленными целями обработки. Согласие «на все» не работает: цели указываются списком, и распознавание скана должно попасть в этот список явно.
- Журнал доступа. Кто, когда и какой скан открыл, кто выгрузил, кто удалил. Без журнала вы не ответите ни службе безопасности, ни регулятору.
- Срок жизни скана. Файл живет отдельно от извлеченных полей. После подтверждения полей человеком во многих сценариях сам скан хранить незачем. Срок назначается по цели обработки и исполняется заданием по расписанию.
- Минимизация в логах. Серия и номер не попадают в текст лога, в трассировки, в метрики и в сообщения об ошибках. Самая тихая из утечек: скан лежит под замком, а номер паспорта висит в логе приложения открытым текстом с бессрочным хранением.
- Удаление по требованию субъекта. Процедура, которая по одному идентификатору находит все копии: исходный файл, превью, временные файлы обработки, резервные копии, очередь разбора.
Последний пункт выглядит занудством до первого аудита. Конвейер порождает промежуточные артефакты — выровненные изображения, вырезанные области, кэш ответов, — и каждый является копией персональных данных.
Нечитаемые сканы и очередь ручного разбора
Часть потока не распознается никогда. Отказ — штатный результат, под который в интерфейсе заложена отдельная ветка. Три класса, три реакции.
- Физически нечитаемо. Блик на номере, обрезанный край, размытие, темная сторона разворота. Реакция — автоматический запрос на переснятие с указанием конкретной области. Формулировка «загрузите качественный скан» бесполезна; работает «не видно поля с серией, переснимите правую страницу без блика».
- Читается, но не проходит валидацию. Даты не сходятся, контрольное число не бьется, регион в коде подразделения расходится с органом выдачи. Реакция — очередь оператору с подсветкой поля и исходным фрагментом скана рядом с формой.
- Все сошлось, но нашелся дубль. Реакция описана выше — обновление существующей карточки.
Разница с накладной здесь в задержке. Неверная сумма вылезает на сверке через квартал, неверная серия — при сдаче отчетности, подписании договора или выдаче денег, и переделывать к этому моменту приходится уже подписанные бумаги. Поэтому очередь разбора закладывают в первую версию системы и не откладывают на второй этап.
Два общих требования к рабочему месту оператора — скан рядом с формой и правки, уходящие в накопитель для дообучения — разобраны в статье про поток первички, там же способ считать метрику приемки по доле комплектов без единой правки. Паспортная особенность одна: в очередь кладется комплект целиком. Разворот без страницы регистрации для карточки так же бесполезен, как регистрация без разворота, и оператор обязан видеть обе страницы сразу.
Когда не надо
Считается это в одну строку, и посчитать стоит до звонка подрядчику. Возьмите число новых карточек в месяц, умножьте на замеренное секундомером время заполнения одной вручную, переведите в часы и умножьте на стоимость часа сотрудника.
Сорок карточек в месяц по шесть минут — четыре часа. Четыре часа в месяц не окупят никакой пилот, тема закрыта. Четыреста карточек по шесть минут — сорок часов, целая рабочая неделя одного человека, разговор становится осмысленным. Пилот на одном типе документа начинается от 290 000 ₽: разделите эту сумму на месячную экономию в деньгах и посмотрите на срок окупаемости. Больше двух лет — не начинайте.
Еще четыре ситуации с отрицательным ответом.
- Поток сезонный. Двести человек в августе и три в остальные месяцы. Пиковую очередь дешевле закрыть временным сотрудником, чем содержать систему круглый год.
- Нет контура для персональных данных и нет бюджета его сделать. Начинать автоматизацию с паспортов значит создавать себе проблему вместо экономии. Начните с документов без персональных данных.
- Регламент требует сверки с оригиналом. Там, где человек обязан посмотреть на документ глазами, распознавание экономит только ввод. Считайте выгоду по вводу, проверку из расчета выкидывайте.
- Нужна подлинность документа. Задача «поймать переклеенное фото» решается другими средствами и стоит других денег.
Что сделать до разговора с подрядчиком
Шесть пунктов на один рабочий день. Ответы — почти готовое техническое задание.
- Соберите полсотни реальных сканов из потока, обязательно с худшими: фотографии из мессенджера, ксерокопии, старые бланки.
- Посчитайте в выборке долю комплектов, где нужна страница регистрации и где она пришла отдельным файлом без привязки.
- Замерьте секундомером заполнение пяти карточек вручную. Своя цифра важнее любых нормативов.
- Выпишите поля, которые реально нужны каждому из ваших сценариев. Вычеркните то, что заполняется «на всякий случай».
- Спросите у службы безопасности, где разрешено хранить скан, кто имеет к нему доступ и через какой срок он удаляется. Ответа нет — это первый пункт работ.
- Прогоните справочник физлиц на дубли по СНИЛС и ИНН. Результат обычно объясняет половину странностей в отчетности.
Порядок работ, сроки и вилки по этапам — на странице распознавания документов в 1С; если задача шире карточек физлиц и нужен разбор произвольных бланков, смотрите OCR-системы. Бюджет под свой объем прикидывается на калькуляторе. А по выборке из первого пункта чек-листа сразу видно, что у вас в потоке преобладает и какая доля комплектов уйдет в ручной разбор при любом подрядчике.