К содержимому
MoranaLabs.
Инженерные гайды14 мин чтения0 просмотров

Распознавание паспорта и сканов в 1С: заполнение карточек без ручного ввода 

Паспорт кажется простым документом: полей мало, бланк один на всю страну. На деле машиночитаемой зоны у него нет, номер напечатан вертикально, а регистрация приходит страницей без фамилии. Поля разворота, валидация арифметикой, дедуп по СНИЛС и контур по 152-ФЗ.

0xReality

Пересчитайте, что кадровик переносит в карточку с одного разворота. Фамилия, имя, отчество — три значения, дальше пол, дата рождения, место рождения, серия, номер, кем выдан, дата выдачи, код подразделения. Одиннадцать полей, и это до адреса регистрации, разложенного в карточке по классификатору. Через неделю те же значения набивает менеджер, заводя договор с физлицом, потом третий человек — в анкете на рассрочку. Один разворот, три системы, три возможности ошибиться в серии.

На пресейле паспорт заказывают как задачу попроще накладной: полей мало, бланк один на всю страну, расположение фиксированное. По факту общегражданский паспорт РФ — один из самых неудобных документов для автоматического разбора, и начинается это с того, чего у него нет.

Машиночитаемой зоны у российского паспорта нет

Фраза «прочитаем MRZ, там все поля в двух строках» звучит на пресейле регулярно. Для заграничного паспорта она верна: внизу страницы с фотографией лежат две строки фиксированной длины по стандарту ICAO 9303, с собственными контрольными цифрами на номер, дату рождения и срок действия. Такая зона читается даже с посредственного снимка, а ошибка ловится арифметикой прямо в строке.

У внутреннего паспорта РФ такой зоны нет и не было. Это не проездной документ, стандарты ICAO к нему отношения не имеют. Извлекать приходится по полям бланка: находить подписи полей, резать области, читать печатный текст разной степени сохранности. Все проверки, которые в загране встроены в саму строку, здесь нужно строить руками — из дат, кодов подразделений и контрольных чисел смежных документов.

Если на демонстрации показывают разбор загранпаспорта со словами «с внутренним так же» — вам показали другую задачу. Другой трудоемкости и точности.

Что реально снимается с разворота

Основной разворот — вторая и третья страницы. Слева орган выдачи, справа данные владельца и фотография. Ниже — поля карточки и то, чем каждое проверяется на месте.

ПолеГде лежитЧем проверяется на месте
Фамилия, имя, отчествоПравая страница, верхСверка с остальными документами комплекта: СНИЛС, ИНН, диплом
ПолПравая страницаСогласуется с окончанием отчества — подсказка, не правило
Дата рожденияПравая страницаАрифметика с датой выдачи и возрастом в анкете
Место рожденияПравая страницаСвободный текст со старыми названиями, справочник тут не помощник
Серия и номерПравое поле, вертикально; дубль перфорациейЧетыре плюс шесть цифр; вторые две цифры серии — год печати бланка
Кем выданЛевая страницаРегион сверяется с первыми двумя цифрами кода подразделения
Дата выдачиЛевая страницаВозрастные рубежи 14, 20 и 45 лет
Код подразделенияЛевая страница, под датойФормат три плюс три цифры, первые две — код региона

За пределами разворота живут адрес регистрации, семейное положение, дети, ранее выданные паспорта, отметка об ИНН. Выпишите, какие из них реально нужны вашей карточке: лишнее поле — это лишний объект персональных данных на хранении.

Серия и номер: вертикаль и перфорация

Серия и номер напечатаны на правом поле страницы с фотографией, повернутые на девяносто градусов. Движок распознавания по умолчанию ищет горизонтальные строки; вертикальный блок он либо пропускает целиком, либо выдает мусор из похожих символов. Лечение одно: область вырезается по геометрии, поворачивается и распознается отдельным проходом с узким алфавитом — только цифры, никаких букв. Проход ради одного поля выглядит излишеством ровно до первого договора с чужим номером паспорта.

Второй экземпляр тех же цифр — лазерная перфорация, пробитая насквозь через страницы с пятой по двадцатую. Это не печатный текст. На планшетном сканере с прижатой крышкой это ряд едва различимых точек; читается перфорация только на просвет. Есть регламент съемки на просвет — получаете второй независимый источник номера; на фотографии из мессенджера рассчитывать на него не стоит.

У перфорации есть и побочная роль. На странице с регистрацией нет ни фамилии, ни печатного номера — перфорация остается единственным реквизитом, физически связывающим эту страницу с конкретным паспортом. Не видно ее — комплект придется связывать процедурой.

Регистрация приходит отдельным разворотом

Прописка живет на страницах с пятой по двенадцатую и в карточке нужна почти всегда. Беда в том, что по содержимому страницы невозможно определить, чья она. Штамп содержит наименование органа, дату регистрации и адрес. Фамилии там нет.

Отсюда два требования к процессу.

  • Комплект приходит одной сущностью. Один архив, одна загрузка в форме, где сначала выбирается физлицо и только потом прикладываются страницы. Связывание «по времени загрузки» разваливается в первый же день, когда два кадровика работают одновременно.
  • Каждая страница классифицируется. Разворот 2-3, регистрация, воинская обязанность, семейное положение. Классификатор страниц дешевле и надежнее любой попытки угадать принадлежность по содержимому.

Сам штамп — отдельный уровень боли: ставится вручную, бывает наклонным, смазанным, наложенным на соседний, часть текста внутри вписана от руки. Поверх старых стоят отметки о снятии с учета. Читать нужно последний по дате, значит, разбирать придется все штампы на странице.

Чем паспорт хуже накладной по качеству входа

Накладная приходит с принтера поставщика. Паспорт приходит как получится. Шесть источников брака, которые встречаются в любом кадровом потоке.

  1. Рукописные и машинописные вставки. В бланках ранних выпусков поля «кем выдан» и «место рождения» набивались на пишущей машинке; встречаются вписанные от руки фрагменты и заверенные подписью исправления. Модель, обученная на печатном тексте, на этих строках проседает.
  2. Печать поверх текста. Оттиск подразделения ложится в нижнюю часть левой страницы и регулярно накрывает дату выдачи и код подразделения. Круглая печать поверх черных цифр — самый частый источник ошибки в коде подразделения.
  3. Старые бланки. Экземпляры разных лет печати отличаются насыщенностью защитной сетки, оттенком подложки и гарнитурой заполнения. Жесткий шаблон с абсолютными координатами держится до первого паспорта другого года выпуска. Поля ищутся по подписям и якорям.
  4. Фотография с телефона. Изгиб по корешку выгибает строки дугой, блик от ламината садится ровно на серию и номер, в кадр попадает палец, тень от телефона накрывает левую страницу.
  5. Копия копии. Ксерокопия с ксерокопии дает бледный текст и растр, на котором тонкие штрихи цифр рассыпаются.
  6. Обрезанный край. Снимают разворот, вертикальное поле с номером в кадр не влезает. Формально читаемо, фактически бесполезно.

Препроцессинг, выравнивание, снятие печатей, работа с бликом разобраны в статье про OCR в реальных условиях. Здесь важнее другое: половина этого брака лечится не инженерией, а листком с правилами съемки на стене у кадровика. Развернуть на плоскости, снимать сверху, рассеянный свет, оба поля в кадре.

Валидация вместо доверия

Оценку уверенности модели в приемку не берут: «0,98» на неверно прочитанной семерке выглядит ровно так же, как на верной. Работает другое — паспорт перепроверяет сам себя. Даты сцеплены возрастными рубежами, серия несет год бланка, код подразделения несет регион, а СНИЛС и ИНН из того же комплекта несут контрольные числа. Ниже — проверки, которые считаются без единого обращения во внешние базы.

ПроверкаЧто ловитРеакция системы
Дата выдачи не раньше четырнадцатилетияОшибку в любой из двух датОбе даты в разбор
Рубежи 20 и 45 лет: человеку больше 20, паспорт выдан до его двадцатилетияОшибку в датах либо недействительный паспортСтоп, запрос актуального документа
Вторые две цифры серии — год печати бланка, он не позже года выдачиОшибку в серии или в дате выдачиПодсветка серии, разбор
Первые две цифры кода подразделения против региона в «кем выдан»Ошибку под печатью в коде подразделенияПодсветка кода, разбор
Контрольное число СНИЛСОпечатку и сбой распознавания в одиннадцати цифрахСтоп до исправления
Контрольные цифры ИНН физлицаОшибку в двенадцати цифрахСтоп до исправления
Дата рождения против возраста в анкете и даты приемаПодмену комплекта, опечатки в анкетеРазбор оператору

Про контрольные числа подробнее: они бесплатны, и их регулярно не делают. У СНИЛС последние две цифры — контрольное число. Первые девять умножаются на веса от девяти до единицы, сумма делится на сто один, контрольным числом становится остаток; остаток, равный ста, дает ноль-ноль. Три строки кода, ноль обращений во внешние системы. У ИНН физлица контрольных цифр две, считаются похожим способом.

И одна проверка, которую делать нельзя, хотя она напрашивается. Дата в штампе регистрации может быть раньше даты выдачи паспорта: при замене бланка отметку переносят с исходной датой. Правило «регистрация позже выдачи» завалит очередь ложными срабатываниями в первый же день. Мнимые инварианты — главная причина, по которой операторы перестают доверять очереди и начинают штамповать подтверждения не глядя.

Адрес из штампа против адресного классификатора

Вытащить строку адреса — половина дела. В кадровых конфигурациях адрес физлица хранится разложенным по адресному классификатору, произвольный текст туда не записать. Разбор строки в структуру — самостоятельная задача, которую регулярно забывают в смете.

  • сокращения у разных подразделений разные: «ул.», «улица», «пр-кт», «пр.», «д.», «дом», «корп.», «к.», «стр.», «кв.»;
  • улицы и населенные пункты переименовывают, а штамп остается со старым названием;
  • дома с литерами и дробями вида «12/1 лит. А» в классификаторе разложены иначе, чем написаны в штампе;
  • регистрация по адресу общежития, воинской части или места пребывания вместо места жительства.

Рабочее правило: адрес разбирается до уровня, где классификатор дает однозначное совпадение — регион, район, населенный пункт, улица. Дом, корпус и квартира кладутся отдельными полями. Улица не нашлась — карточка не создается молча, вопрос уходит человеку с фрагментом штампа рядом.

Дубли: СНИЛС — ключ, фамилия — подсказка

Второе физлицо на одного человека обходится дороже любой ошибки распознавания: расходятся начисления, стаж, отчетность, взаиморасчеты. Порядок ключей всегда один.

  1. СНИЛС. Уникален, не меняется при смене фамилии и при замене паспорта. Единственный по-настоящему надежный ключ для физлица.
  2. ИНН. Второй по надежности, с проверяемой контрольной суммой.
  3. Серия и номер паспорта. Слабый ключ: документ меняется в 20 и 45 лет, старый номер продолжает жить в базе и в старых договорах.
  4. Фамилия, имя, отчество плюс дата рождения. Только подсказка. Полные однофамильцы с одной датой рождения в большой базе встречаются, а смена фамилии рвет ключ полностью.

Реакция на совпадение по первым двум ключам одна: новая карточка не создается, система показывает существующую с предложением обновить документ. Кадровик, который «заводит нового сотрудника», в заметной доле случаев заводит вернувшегося.

Три сценария в 1С и цена ошибки в каждом

Механика общая: сервис работает снаружи, конфигурация остается нетронутой, объект создается черновиком, подтверждает человек. Сам поток — каналы, дедуп, порог отсечения — разобран в статье про распознавание первичных документов в 1С. Разница между сценариями в наборе полей и в цене ошибки.

СценарийЧто заполняетсяЦена ошибки
Карточка сотрудникаФизлицо, документ удостоверяющий личность, СНИЛС, ИНН, адрес регистрацииОтчетность в фонд и в налоговую не принимается, дальше корректировки и объяснительные
Карточка контрагента-физлицаРеквизиты для договора и печатных форм, ИНН из двенадцати знаковПодписанный договор с чужими реквизитами, переподписание всей пачки
Анкета клиентаПолный набор полей плюс скан как приложение к заявкеРешение принято по чужим данным, деньги выданы не тому

Третий сценарий — лизинг, микрофинансы, розничная рассрочка — тянет за собой вторую задачу, которую путают с первой. Заполнение полей и проверка подлинности — разные дисциплины с разными моделями и ценой. Про вторую есть отдельный разбор: проверка документов на подделку. Нужна именно она — распознавание полей станет побочным продуктом, и проект считается иначе.

152-ФЗ: контур определяется до выбора модели

Скан паспорта в публичном облаке — это передача персональных данных третьему лицу: правовое основание, договор поручения на обработку, требования к площадке обработчика, а для сервиса за пределами РФ еще и трансграничная передача с отдельной процедурой. Оформляется. По часам юриста и по остаточному риску почти всегда дороже своего контура.

Первая строка технического задания на паспорта: скан не покидает контур организации. Все остальное — детали реализации.

Шесть требований, которые проверяются на приемке. После инцидента обсуждать их поздно.

  1. Контур. Обработка на своих серверах или в выделенном сегменте. Формулировка «мы on-prem» у разных поставщиков означает разное — от изолированной установки до контейнера, который ходит наружу за лицензией и телеметрией; что за ней стоит на практике, разобрано в отдельной статье. Вопрос задается до подписания договора.
  2. Правовое основание. Для работника это трудовые отношения, для клиента — согласие с перечисленными целями обработки. Согласие «на все» не работает: цели указываются списком, и распознавание скана должно попасть в этот список явно.
  3. Журнал доступа. Кто, когда и какой скан открыл, кто выгрузил, кто удалил. Без журнала вы не ответите ни службе безопасности, ни регулятору.
  4. Срок жизни скана. Файл живет отдельно от извлеченных полей. После подтверждения полей человеком во многих сценариях сам скан хранить незачем. Срок назначается по цели обработки и исполняется заданием по расписанию.
  5. Минимизация в логах. Серия и номер не попадают в текст лога, в трассировки, в метрики и в сообщения об ошибках. Самая тихая из утечек: скан лежит под замком, а номер паспорта висит в логе приложения открытым текстом с бессрочным хранением.
  6. Удаление по требованию субъекта. Процедура, которая по одному идентификатору находит все копии: исходный файл, превью, временные файлы обработки, резервные копии, очередь разбора.

Последний пункт выглядит занудством до первого аудита. Конвейер порождает промежуточные артефакты — выровненные изображения, вырезанные области, кэш ответов, — и каждый является копией персональных данных.

Нечитаемые сканы и очередь ручного разбора

Часть потока не распознается никогда. Отказ — штатный результат, под который в интерфейсе заложена отдельная ветка. Три класса, три реакции.

  • Физически нечитаемо. Блик на номере, обрезанный край, размытие, темная сторона разворота. Реакция — автоматический запрос на переснятие с указанием конкретной области. Формулировка «загрузите качественный скан» бесполезна; работает «не видно поля с серией, переснимите правую страницу без блика».
  • Читается, но не проходит валидацию. Даты не сходятся, контрольное число не бьется, регион в коде подразделения расходится с органом выдачи. Реакция — очередь оператору с подсветкой поля и исходным фрагментом скана рядом с формой.
  • Все сошлось, но нашелся дубль. Реакция описана выше — обновление существующей карточки.

Разница с накладной здесь в задержке. Неверная сумма вылезает на сверке через квартал, неверная серия — при сдаче отчетности, подписании договора или выдаче денег, и переделывать к этому моменту приходится уже подписанные бумаги. Поэтому очередь разбора закладывают в первую версию системы и не откладывают на второй этап.

Два общих требования к рабочему месту оператора — скан рядом с формой и правки, уходящие в накопитель для дообучения — разобраны в статье про поток первички, там же способ считать метрику приемки по доле комплектов без единой правки. Паспортная особенность одна: в очередь кладется комплект целиком. Разворот без страницы регистрации для карточки так же бесполезен, как регистрация без разворота, и оператор обязан видеть обе страницы сразу.

Когда не надо

Считается это в одну строку, и посчитать стоит до звонка подрядчику. Возьмите число новых карточек в месяц, умножьте на замеренное секундомером время заполнения одной вручную, переведите в часы и умножьте на стоимость часа сотрудника.

Сорок карточек в месяц по шесть минут — четыре часа. Четыре часа в месяц не окупят никакой пилот, тема закрыта. Четыреста карточек по шесть минут — сорок часов, целая рабочая неделя одного человека, разговор становится осмысленным. Пилот на одном типе документа начинается от 290 000 ₽: разделите эту сумму на месячную экономию в деньгах и посмотрите на срок окупаемости. Больше двух лет — не начинайте.

Еще четыре ситуации с отрицательным ответом.

  • Поток сезонный. Двести человек в августе и три в остальные месяцы. Пиковую очередь дешевле закрыть временным сотрудником, чем содержать систему круглый год.
  • Нет контура для персональных данных и нет бюджета его сделать. Начинать автоматизацию с паспортов значит создавать себе проблему вместо экономии. Начните с документов без персональных данных.
  • Регламент требует сверки с оригиналом. Там, где человек обязан посмотреть на документ глазами, распознавание экономит только ввод. Считайте выгоду по вводу, проверку из расчета выкидывайте.
  • Нужна подлинность документа. Задача «поймать переклеенное фото» решается другими средствами и стоит других денег.

Что сделать до разговора с подрядчиком

Шесть пунктов на один рабочий день. Ответы — почти готовое техническое задание.

  1. Соберите полсотни реальных сканов из потока, обязательно с худшими: фотографии из мессенджера, ксерокопии, старые бланки.
  2. Посчитайте в выборке долю комплектов, где нужна страница регистрации и где она пришла отдельным файлом без привязки.
  3. Замерьте секундомером заполнение пяти карточек вручную. Своя цифра важнее любых нормативов.
  4. Выпишите поля, которые реально нужны каждому из ваших сценариев. Вычеркните то, что заполняется «на всякий случай».
  5. Спросите у службы безопасности, где разрешено хранить скан, кто имеет к нему доступ и через какой срок он удаляется. Ответа нет — это первый пункт работ.
  6. Прогоните справочник физлиц на дубли по СНИЛС и ИНН. Результат обычно объясняет половину странностей в отчетности.

Порядок работ, сроки и вилки по этапам — на странице распознавания документов в 1С; если задача шире карточек физлиц и нужен разбор произвольных бланков, смотрите OCR-системы. Бюджет под свой объем прикидывается на калькуляторе. А по выборке из первого пункта чек-листа сразу видно, что у вас в потоке преобладает и какая доля комплектов уйдет в ручной разбор при любом подрядчике.

  • #152-ФЗ
  • #
  • #кадры
  • #паспорт
  • #персональные данные
  • #распознавание документов
ПоделитьсяTelegramX
рассылка

Новые статьи — на почту

Лонгриды про ML в проде, edge и компьютерное зрение — сразу после выхода.

Канал в Telegram: morana.log

Без спама. Нажимая «Подписаться», соглашаетесь с обработкой персональных данных

бесплатный pdf-гайд

Edge AI или облако: когда тащить нейросеть на железо

Признаки, фреймворк выбора и прикидка экономии — короткий PDF-гайд на почту.

PDF · 5 страниц · без спама. Нажимая «Получить», соглашаетесь с обработкой персональных данных

Читать дальше
— заявка

Опишите задачу  ответим как инженеры. 

Оставьте имя и Telegram — остальное обсудим. Без брифов на 40 слайдов и звонков по три раза.

Отвечаем за пару часовотвечает инженер, а не отдел продажNDA по запросу

Сюда напишем — это быстрее всего

Или сразу написать в Telegram

Без спама и звонков-роботов. Нажимая кнопку, вы соглашаетесь с политикой конфиденциальности и обработкой персональных данных.