Распознавание Паспорта РФ на мобильном телефоне. (UPD: 28.03.2015 + выложили программу в App Store)

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



    Конечно, мимо такой хорошо поставленной задачи в наш век глобальной автоматизации не могли пройти гиганты в области распознавания данных. На сегодняшний день существует множество различных программ и аппаратно-программных комплексов (как от крупных компаний, так и от относительно новых на этом рынке игроков), которые позволяют решить эту конкретную практическую задачу. При этом, несмотря на локальные отличия всех предлагаемых решений (кто-то лучше распознает, у кого-то более продуманный и современный интерфейс, кто-то более прост и понятен в интеграции, кто-то подешевле или подороже) глобально все существующие ПО решают задачу одинаково: получение изображения паспорта с помощью сканера и последующее распознавание на персональном компьютере. В результате такой подход позволяет ввести паспортные данные от 2 до 26 секунд (в зависимости от производительности сканера), что в разы-десятки раз быстрее и надежнее по сравнению ручным вводом.

    Казалось бы, задача решена! Но как часто мы видим такие «умные» решения по распознаванию паспортов в жизни? Увы, в почтовых отделениях, многих банках и даже отделениях полиции (которые имеют дело с паспортами, наверное, чаще, чем кто-либо другой) до сих пор ввод паспортных данных осуществляется в ручном режиме. В чем же тут камень преткновения? Почему столь надежное и качественное решение конкретной прикладной задачи не используются повсеместно?

    Чтобы понять суть проблемы, обратимся к другому примеру развития инновационной технологии, не имеющего прямого отношения к задачам распознавания – цифровой фотографии. Давайте вспомним 90-е годы, когда на рынке начали появляться первые потребительские цифровые фотоаппараты. Казалось бы, вот оно счастье: никакой пленки, мгновенный просмотр сделанных снимков, простота хранения фотографий – снимай и снимай себе в удовольствие все подряд. На практике же люди в большинстве своем, как и прежде, пользовались фотоаппаратами не слишком часто: на отдыхе, торжествах и памятных событиях. Зато настоящий бум фотографии произошел в момент появления фотокамеры в смартфоне. Цифровая фотография сразу зажила второй жизнью и обрела громадную популярность. И такую же учесть пережили многие другие технологии в совершенно разных областях: карты и навигация, Wi-Fi, социальные сети и многое другое.

    Вернемся теперь к распознаванию документов и попробуем провести параллель. Может быть небольшая популярность систем распознавания паспорта связана именно с неудобством самого процесса, а не с качеством? Действительно, трудно представить участкового полиции, разложившего на газоне ноутбук и сканер и проверяющего документы у мигранта. Совсем другое дело, если бы распознать и проверить паспорт можно было бы прямо в руках с помощью какого-нибудь компактного подручного устройства (например, смартфона). Так у нас родилась идея написать программу распознавания ID-документов для мобильного телефона. И конечно, начать мы решили с распознавания паспорта гражданина РФ.



    Чтобы дальше было интереснее читать, покажем наше приложение в действии. Федеральный закон 152-ФЗ запрещает нам публиковать изображения настоящих паспортов. Поэтому, для демонстрационных целей используется распечатанное с Википедии синтезированное изображение паспорта.

    Постановка задачи


    Итак, финальная цель – распознать паспорт гражданина РФ на мобильнике. Но в такой постановке задача звучит очень расплывчато. Давайте уточним суть задачи, задав ограничения «по осям», сформировав некоторое подобие технических требований.

    Целевая платформа. Необходимо приложение, способное работать на современных Android-устройствах, а также Apple iPhone версии не ниже 5s. Такие ограничения появились после анализа текущей ситуации на рынке мобильных устройств. При этом важным элементом является написание именно распознающей на мобильном устройстве программы, а не программы-прослойки, которая получает изображения, отправляет картинки в облако и получает назад результат. И дело тут совсем не в медленном мобильном интернете, как может показаться на первый взгляд. Просто у нас в стране во всю действует федеральный закон «О персональных данных» (152-ФЗ), который строго регулирует деятельность по обработке персональных данных. В соответствии с законом, в России существенно возрастают требования ко всем частным и государственным компаниям и организациям, а также физическим лицам, которые хранят, собирают, передают или обрабатывают персональные данные (в том числе фамилию, имя, отчество). Поэтому с точки зрения закона чем быстрее любая распознающая программа забудет персональные данные, тем лучше (и уж тем более не стоит никуда отправлять ни сами данные, ни изображения паспорта).

    Объект распознавания. В большинстве прикладных задач клиенту в основном требуются серия-номер паспорта, фотография, фамилия, имя, отчество, пол и дата рождения. Все эти данные расположены на третьей (в соответствии с нумерацией) странице паспорта. Поэтому решим вначале задачу распознавания указанных выше «основных» полей. То есть будем решать задачу распознавания третьей страницы паспорта РФ.

    Входные данные. В отличии от классического подхода (распознавание отсканированного изображения) смартфон позволяет получить видеопоследовательность. Объединение результатов распознавания информации с разных кадров позволяет существенно поднять качество работы системы в целом. Правда это преимущество справедливо только при условии, что удается очень быстро обрабатывать` отдельные кадры, что плавно нас переводит к вопросу о производительности.

    Производительность. По заявлениям конкурентов, на сегодняшний день лучшие ПО распознавания паспорта справляются с этой задачей примерно за 1-3 секунды на компьютере средней производительности, без учета сканирования. Поэтому мы поставили себе цель решить данную задачу на мобильнике не медленнее чем за 3 секунды. При этом мы хотим обрабатывать данные со скоростью не менее трех кадров в секунду на устройствах типа Apple iPhone 5s. Другими словами, среднее время обработки одного кадра не должно превышать 0.3 секунды. Если вспомнить, что 1 кадр состоит примерно из 2 миллионов пикселей, а распознавание производится на устройствах значительно слабее средненького ПК (см. таблицу 1), то задача более чем нерешаемой. Признаюсь, нам пришлось немало попотеть во время оптимизации кода и разработкой быстрых алгоритмов прежде чем мы добились такой скорости. Позже мы напишем отдельный пост про подходы оптимизации распознающих программ на мобильных устройствах. Сейчас могу лишь только вспомнить: год назад на это смелое заявление о скорости мы дружно ответили «Challenge accepted».

    Качество. Качество распознавания часто является решающим фактором при выборе той или иной системы. Поэтому в самом начале разработки мы поставили себе довольно высокую планку – в первой версии продукта 95% паспортов должны распознаваться правильно (исключая паспорта, которые не могут быть распознаны автоматически). Вообще оценка качества подобных распознающих систем – серьезная задача, про которую мы хотим рассказать в будущих постах на Хабре.

    Новые проблемы при распознавании на смартфоне


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

    Однако, при распознавании паспорта на телефоне ко всем указанным выше проблемам добавляются принципиально новые, ранее не встречающиеся при работе со сканером:

    • Проективное искажение изображения документа. При съемке камерой углы и их отношения, а также пропорции объектов изменяются в зависимости от ракурса съемки. Это приводит к тому, что классические алгоритмы (поиск опорных линий, выделения текстовых полей и прочие) не могут применяться напрямую, а требуют предварительной проективной нормализации изображения.
    • Блики. Глянцевая пленка, голограммы и прочие элементы защиты, которые помогают нам отличить настоящий паспорт от поддельного, очень сильно мешают при распознавании (частично уничтожая информацию). Попробуйте посмотрите на свой паспорт даже через объектив фотоаппарата (например, с помощью стандартного приложения камеры вашего смартфона) под разными углами, и вы сразу поймете всю глубину проблемы.
    • Неравномерность освещения. В отличии от сканера, где используется свой осветитель, при фотографировании документа свет поступает от внешних источников неконтролируемым образом. Отсюда возникает еще ряд таких проблем, как тени и неточность передачи цвета.
    • Дефокусировка и смазывание. Возникает из-за постоянного смещения камеры во время распознавания (ведь съемка идет без использования штатива).
    • Цифровой шум. Часто возникает в ситуации недостаточной освещенности. При этом, чем меньше освещенность, тем больше усиливается влияние цифрового шума.

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

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

    Теперь мы готовы к распознаванию. Для распознавания данных требуются специальные методы оптического распознавания, как отдельных символов, так и текстовых фрагментов. Особенностью обработки видеопотока является достаточно низкое исходное разрешение (не превышающее 150-200 DPI) при наличии помех и искажений, в частности бликов и засветки, дефокусировки изображения и смазывания.

    После того, как будут успешно преодолены все трудности, связанные с обработкой отдельного кадра, появляются новые задачи, связанные с распознаванием всей видеопоследовательности – это контекстный анализ и интеграция результатов. Эта тема очень интересна, и мы обязательно посвятим ей ни одну статью в будущих постах. Пока лишь ограничимся анонсированием существования таких задач.

    Заключение


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

    Данный пост носит скорее вводный характер и повествует дорогим читателям в целом о наших задачах, проблемах, интересах. О конкретных научных и технических достижений мы обязательно продолжим серию публикаций на Хабре, в которых расскажем о решениях отдельных подзадач распознавания документов (и не только) на мобильных устройствах.

    Что же касается готового решения по распознаванию паспорта РФ на мобильном устройстве, мы с радостью хотим сообщить, скачать Demo-программу распознавания для Android можно уже сейчас (Smart PassportReader в Google play) и для iOS (Smart PassportReader в App Store). А если по роду деятельности вам интересно SDK нашего продукта, чтобы живьем «потрогать» и попробовать встроить в свои мобильные приложения – напишите нам на support@smartengines.biz и мы с удовольствием расскажем, как это сделать, а также ответим на другие интересующие Вас вопросы.

    И в самом конце несколько скриншотов нашей программы для Apple iPhone

    Smart Engines

    76,00

    Обработка изображений, распознавание в видеопотоке

    Поделиться публикацией
    Комментарии 77
      +1
      Мало считать паспортные данные, нужно еще убедиться, что предъявленный документ настоящий.
      Проверка наличия элементов защиты от подделки документа реализована? Было бы интересно почитать.
        +4
        Как вы себе это представляете? Хорошую подделку может человек не отличить то…
          +1
          например подцепить сервис ФМС по отозванным паспортам.
            0
            Можно, но будет ли это достаточно для проверки на подлинность или это все же проверка на действительность?
            Сделать такую проверку достаточно просто, вероятно, наши будущие клиенты реализуют у себя эту функцию у себя в приложениях. Предлагать пользователю демонстрационное приложение которое передает его персональные данные в интернет или «весит» десятки мегабайт, по нашему мнению безответственно.
              0
              Согласен
            +1
            Речь не о хороших подделках или плохих, а определении наличия элементов защиты, которые способна увидеть камера.
            Можно и ксерокопии распознавать, но важно, чтобы программа сообщала о наличии/отсутствии элементов защиты у предъявленного документа.
              0
              Если тема интересна мы подготовим статью по этой тематике. Если кратко то: камера среднего телефона устойчиво регистрирует не так уж и много деталей защиты (например, тонкие линии гильотиной защиты зачастую смазаны); ламинария пленкой — есть как минимум 3 типа пленки: очень старая, старая и новая, последние две содержат голографических элементы, но их наличие на кадре зависит от освещения и угла съемки; специальные элементы дизайна — узор на фотографии, блямба РФ и мы их активно используем. Но надо заметить, что многие элементы защиты являются помехами для распознавания (пленка создает блики) и система вынуждена их учитывать при работе.
                –1
                гильотиной == гильоширная и ламинария == ламинация — чудеса автоподстановки
            +4
            Некоторые элементы (например, периодичность голографических структур или правильное расположение статических полей) можно проверить даже с помощью мобильного телефона. Если это интересно, то мы подготовим пост по этой теме. Однако, такое определение подлинности позволит отсечь только сделанные на коленке подделки. Что касается профессиональных образцов — без специального оборудования уже не обойтись.
              +2
              На новых голографическое фото, такое не подделаешь легко.
              +8
              1682 год рождения распознал как 1982. Баг однако.
                +4
                Это не баг, а фича :) Дело в том, что у нас, как и в любой серьезной программе распознавания существует набор алгоритмов, который способен скорректировать результат посимвольного распознавания на свое усмотрение исходя из эмпирического смысла. Здесь как раз такая ситуация.
                  0

                  И какая максимальная продолжительность жизни заложена в программу?

                  +5
                  Баг, только если не пометил поле, как сомнительное. Если видишь в паспорте 1682 — разумно распознавать 1982 с флагом сомнительности. И абсолютно неразумно ответить 1682 без сомнительности, поскольку таких паспартов не бывает. Здесь нет задачи распознавания текста, здесь задача распознавания документа.
                    +5
                    Я, конечно, несерьёзно написал о баге, но раз уж вы так подошли к вопросу, то стоит уточнить, что такой паспорт является недействительным документом, так как несёт ошибочные сведения и подлежит немедленной замене.

                    А вообще, «додумывать» сведения в документах — порочная практика. Да, можно выдать предупреждение, что, мол, тут что-то не так, но менять данные, тем более втихую, нельзя. Особенно, если речь касается «совершения любого сколь угодно серьезного дела».
                      +1
                      Порочная практика — оптимизировать не то, что требуется в задаче. Группа теорем об отсутствии бесплатных завтраков как бы намекает нам, что единственное, что мы можем делать — это перегонять ошибки из одной части генеральной совокупности в другую. При том же среднем качестве распознавания одного символа в реальной эксплуатации выиграет та программа, которая ошибается на невероятных документах, но не ошибается на вероятных.
                        0
                        Говоря по-русски, вы пытаетесь подстраховаться на случай, если алгоритм распознает с ошибкой — тогда он попробует автоматически её исправить. Подход разумный, хотя мне было бы интересно посмотреть количество ошибок распознавания с исправлениями и без.
                          0
                          Да, вы правы, именно так. А всякую интересную статистику мы планируем привести в публикации про сам движок распознавания.
                            0
                            Точно. А то были МФУ от, кажется, Epson, который хранили сканы в формате, который предполагал частичное распознование для лучшего сжатия при хранении документов. Если в оригинале были мелкие цифры, то в отсканированном изображении (!) вместо 2 могла стоять 5.

                            Иногда автокоррекция несет с собой дополнительные риски :)
                    –2
                    Поэтому с точки зрения закона чем быстрее любая распознающая программа забудет персональные данные, тем лучше (и уж тем более не стоит никуда отправлять ни сами данные, ни изображения паспорта).

                    Хорошо. Вы распознали документ локально. Что дальше?
                      –2
                      Например, вы можете авторизоваться в любой системе, желающей дополнительных доказательств идентичности. Сейчас это платежные системы. Впоследствии и социальные сети могут ввести подобный способ авторизации. При этом в базе данных системы, как и в случае с паролями, будет храниться только хэш. Клиентское приложение сможет «доказать», что паспорт — тот же, если пришлет совпадающий хэш. При этом персональные данные даже при перехвате сообщения восстановить будет невозможно.

                      Но даже если просто пересылать результат распознавания (вместо картинки), это в двух аспектах более безопасно: 1) меньший объем данных легче защитить, меньшая избыточность данных также повышает криптостойкость; 2) ваши персональные данные путешествуют по одному каналу к одному агенту, именно к тому, к которому вы хотели. В случае распознавания картинки «в облаке», персональные данные попадают к третьей стороне, причем, как правило, даже неизвестной для вас.
                        0
                        Говорят «вход по лицу» в Windows удалось обмануть фотографией. В вашем же случае хватит ксерокопии, а то и фотошопа паспорта. Для идентификации это несерьёзно.
                        +2
                        А дальше, как и с QR-кодом, ничего. Распознавание паспорта прекрасно для случаев, когда требуется массово вводить однотипную информацию, например, в бюро пропусков какого-нибудь параноидального предприятия, где много посетителей и отставной полковник милиции во главе охраны. Там действительно такая система может помочь. Но мобильный телефон с аппой (а точнее, вот эта аппа) никуда данные не отдает, а потому низачем не нужна.
                        А всякие богатые конторки типа сбербанка давно поставили себе сканеры паспортов и не кашляют.
                          0
                          1. «Эта аппа» — демо-приложение. Аналогичная «аппа» Word Lens вклеивает в кадр слова, которые находит, «задом наперед». Абсолютно бесполезная программа. Которая принесла создателю миллионы. Потому что «боевая» версия делает неможко больше. И представителям бизнеса такой демки вполне достаточно.
                          2. Богатые конторки чрезвычайно озабочены уменьшением времени обслуживания клиента.
                          3. По опыту продаж нашего ядрышка распознавания МЧЗ (MRZ) на западном рынке, основной юзкейс — это встраивание в приложение, которое человек добровольно устанавливает на свой мобильник для получения услуги, требующей юридически значимой аутентификации. Представьте себе, например, аппликацию для покупки авиа-билетов, не требующую нудного вбивания паспортных данных.
                            +1
                            Представьте себе, например, аппликацию для покупки авиа-билетов, не требующую нудного вбивания паспортных данных.

                            Представил.
                            Вы описываете удивительный юскейс. Предположим, что я летаю настолько регулярно, что мне и вправду мобильное приложение для покупки авиабилетов было бы в помощь.
                            Но помимо номера паспорта (который, к слову, я тупо помню), мне по любому придется ввести номер кредитки с cvv2 кодом и дату валидности (которые я, увы, не помню), и, что более печально, мне придется связать свою судьбу с той авиакомпанией/авиакассой, которая предложит мне приложение с возможностью сканирования моего паспорта (вопрос знатокам: что способно помешать разработчикам этого приложения попросить меня один раз ввести номер моего паспорта и запомнить его навсегда, не заморачиваясь с оцр?).
                            Кстати, когда я много летал и много снимал отелей в разных частях планеты, мне очень сильно помогало приложение 1password — оно хранит в себе не только пароли ко всей куче сайтов, но еще и как раз мои имя-фамилию. адреса, номера документов и кредиток, и способно заполнять формы по одному щелчку мыши.
                            Как Вы понимаете, я все равно эту информацию буду вводить только со своего компьютера/мобильного устройства (ни разу в жизни не вводил номер кредитки/паспорта на чужом телефоне и не собираюсь впредь), а раз так — то мне без разницы, буду я это сканировать или введу один раз руками и запомню навсегда.
                            Повторюсь, у вас получилась хорошая распознавалка, но я не вижу для нее юскейса применительно к мобильному устройству. Возможно, я и ошибаюсь, но вот не вижу.
                              –2
                              .
                                0
                                Вы описываете удивительный юскейс.

                                Я описываю бизнес, в котором мы успешно работаем уже 4 года (правда, только в этом году нацелились на отечественный рынок).
                                Но помимо номера паспорта (который, к слову, я тупо помню)

                                Вы, разумеется, и ФИО помните. И дату рождения. Но мобильники пока еще не оснащены телепатическим интерфейсом, и ввод этой информации занимает некоторое время и очень раздражает среднего пользователя. Это pain. Тот, кто унимает боль клиента — получает его деньги.
                                по любому придется ввести номер кредитки с cvv2 кодом и дату валидности (которые я, увы, не помню)

                                Нет. Yandex и PayPal используют продукт card.io, Facebook — Jumio (и к этому продукту мы имеем некоторое отношение, степень которого мы не имеем права раскрывать). Эти продукты как раз предлагают НЕ вводить PAN, expiry и имя держателя карточки, а распознать их на мобильнике.
                                мне очень сильно помогало приложение 1password

                                Безо всякой иронии — вы молодец! Очевидно, мне не удастся «впарить» вам нашу технологию :-). Я только что понял, что моя компания потеряла несколько долларов. Но в мире еще несколько потенциальных пользователей, которые либо не настолько продвинуты, либо, наоборот, боятся утечки разом всех персональных данных. Время покажет, правильную ли мы сделали ставку. Вы-то уж точно ничего не теряеете, кроме время просмотра страницы на Хабре, не так ли?
                                (ни разу в жизни не вводил номер кредитки/паспорта на чужом телефоне и не собираюсь впредь)

                                Мне кажется, я вам рассказывал про ваш же мобильник. Не чужой.
                                  +1
                                  Не знаю насчет Yandex и PayPal, в мобильном приложении Тинькова card.io только номер карты распознал. Может, правда, дизайн карты чрезмерно усложнил распознавание.
                                    0
                                    Когда мы последний раз проверяли конкурентов, состояние у них было такое: на мобильнике — номер, через сервер (если есть интернет) — дата, имя вообще никак. А вот Jumio где-то нашли группу специалистов, которые сумели все три поля распознавать на мобильнике в реальном времени. Подозреваю, что эта группа связана NDA и не может признаться в своем участии.
                                      0
                                      Тонко, особенно вместе с этим:

                                      Спойлер
                                      Jumio (и к этому продукту мы имеем некоторое отношение, степень которого мы не имеем права раскрывать)
                          +1
                          Ну не знаю, я бы не разрешил кому-то фоткать свой паспорт с телефона… Полиция еще понятно, а вот в том же банке — первая мысль будет — сотрудник фоткает данные для своих целей.
                            –2
                            А себе самому разрешите? Ну вот как вы себе разрешаете ввести цифры кредитки при интернет-оплате?
                            А если рассмотреть указанный вами юзкейс, то возникают ли у вас те же самые мысли в случаях, когда ваш паспорт кладут на планшетник?
                              0
                              Человек совершенно прав. Планшетник находится не в клиентской зоне банка, а за стойкой операциониста, и банк, если речь о банке, несет ответственность за действия сотрудника.
                              А в клиентской зоне подойдет некто с мобилой — потом выяснится, что форму и бэджик можно «в любом военторге купить» (с).
                                –1
                                Погодите. Я не понял. А откуда в бизнес-процессах банка появился какой-то товарищ с телефоном, но в клиенской зоне? Так можно и человека со сканером под мышкой нафантазировать.
                                  +1
                                  А если не в клиентской зоне, то сканер паспорта, болтами прикрученный к столу и проводами к компьютеру не имеет конкурентов. Он быстрый, понятный, его нельзя использовать неправильно и у него не садится батарейка.
                                    –4
                                    У мобильника, подключенного к ПК, тоже ничего не садится. Стоит он вместе с пластиковой стойкой — 200-300 USD, против 1000 для паспортных сканеров со сравнимой скоростью работы. При этом ваши аргументы верны! Абсолютно очевидно, что провальная идея — добавить в мобильник фото-камеру. Зеркалки несравнимо лучше.
                                      0
                                      Я очень люблю, когда со мной беседуют, держа под рукой справочник демагога.
                                      Использованный вами прием с фотоаппаратом — номер 42.
                                        –4
                                        Использованный мною прием называется аналогией. Еще более авторитетный источник, чем ваш (а именно, Википедия), утверждает, что Стефан Банах, в частности, говорил: «Математик — это тот, кто умеет находить аналогии между утверждениями, лучший математик — тот, кто устанавливает аналогии доказательств, более сильный математик — тот, кто замечает аналогии теорий; но можно представить себе и такого, кто между аналогиями видит аналогии».
                                        Я не приписывал вам суждения о зеркалках. Более того, ваши аргуметны действительно верны, здесь не было сарказма. И в случае зеркалок аргументы верны. Но они не соотносятся с ключевым вопросом. А ключевой вопрос — будет ли востребован продукт. На примере зеркалок я хотел показать, что совершенно неважно, есть ли более «правильный» аппарат, или нет.
                                    +1
                                    Я имею ввиду — дал паспорт операционисту — он откидывается назад, достает свою мобилку, вытягивает паспорт на вытянутой руке и щелкает паспорт и дальше работает. Какие у вас мысли пойдут в голову? Примерно те же самые, если к вам на улице подойдет незнакомый человек и начнет фотать — вроде можно, но жутко неприятно.

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

                                    Поймите, идея неплохая, но нужно, чтобы сменилось еще одно поколение, чтобы люди привыкли, что камеры в телефонах не только для выкладывания фоток в интернет, а что это рабочий инструмент.
                                      0
                                      Для банков мы не рассматриваем такой сценарий — он действительно может напугать. Мобильник может быть превращен в стационарный сканер с помощью копеечного пластикового крепления. Выигрыш при этом — в стоимости за счет серийности. Распознавание «с руки» предполагается в основном с мобильника самого клиента. Кроме того, страховые компании уже сейчас присылают своих сотрудников с фотоаппаратами для съемки в том числе документов, и люди мирятся с тем, что из кармана достается фотоаппарат. Думаю, для уже существующих процессов переход на мобильники будет вполне гладким.
                              +1
                              Сама приблуда прикольная у вас получилась. А распознавалка (текста) у вас чья? Аббии? Тессеракт? ОупенОСиАр?
                                +1
                                Движок (ядро, распознавалка) распознавания у нас полностью свой, разработанный специально для распознавания видео на мобильных устройствах.
                                  +2
                                  А смысл? Чужое — дорого?
                                    –1
                                    Медленно, дорого, неинтересно.
                                      +1
                                      Неинтересно — верю. Но медленно? Мобильное ядро у Аббии вполне шустрое. А бывшее когнитивное еще быстрее. Там, правда, качество другое.
                                        0
                                        В задаче распознавания паспорта для вышеперечисленных продуктов надо готовить изображение, а для этого надо понимать, как ядро устроено. Кроме того, имеются два соображения — зависимость и модифицируемость. С первым все просто: мы создаем продукт который, по идее, будет конкурировать с Abbyy; второе — если нас что-то не устраивает (скорость, качество), мы ничего не можем сделать. OpenOCR — большой, сложный, как-то отлаженный кусок кода. Переделывать его — задача глубоко нетривиальная и нам не нужная.
                                          0
                                          Ну уж аби не такое и шустрое, хотя качественное. Пошустрее у паспортвижн но у них в бете беда с качеством была. Как сейчас не знаю. Но в любом случае вы предлагаете вычисление на сервере, а товарищь пишет про клиента.
                                  +4
                                  Отдельно напишем пост про движок.
                                  +1
                                  Вот это бы на почте внедрить. Дико раздражает по нескольку раз вводить свои паспортные данные при получении/отправке.

                                  Вообще, ручной ввод своих данных, как я думаю, основная причина очередей на почте.
                                    +1
                                    Есть способ еще проще: не требовать паспортные данные для получения и отправки почтовых отправлений. Во Франции на почте у меня просили айди только для того, чтобы удостовериться, что имя в квитке на получение совпадает с тем, которое указано в карте резидента.
                                    При этом ничего никуда не вписывалось. Сотрудник почты удостоверился — ок.
                                      –1
                                      Мы — скромная айти компания. Никто из наших сотрудников не баллотируется в президенты. Мы пытаемся улучшить то, что в нашей компетенции.
                                        0
                                        При курьерской доставке EMS они тоже паспорт просто для галочки спрашивают, нигде ничего писать и расписываться не надо.
                                        0
                                        Причина очередей на почте в том, что никто на почте не заинтересован обслуживать быстро :)
                                          +1
                                          Нам нравится ваша идея!
                                            +3
                                            Я при получении паспорта сделал себе карманный штампик с паспортными данными.
                                            Делов на 10 минут и 100р + оснастка(300).
                                            Вот так выглядит



                                            Уже лет десять все об этом ноют и никто ничего не сделал даже в рамках себя любимого.
                                              –1
                                              Идея интересная, главное его не потерять.
                                                0
                                                Кстати там специально допущено несколько различий почти в каждом реквизите, никто пока особо не сверял и не заметил
                                            0
                                            А еще данные паспорта можно проверять через сайт ФМС — Проверка по списку недействительных российских паспортов (http://services.fms.gov.ru/info-service.htm?sid=2000), правда там капча, но её можно обойти.
                                              –1
                                              Мы специально сделали Демо программу не взаимодействующей с внешним миром, мы не хотим передавать персональные данные, тех кто скачал и пробует нашу программу, куда либо или хранить их. Используя же наш SDK, этот запрос можно реализовать как online (соблюдая меры безопасности), так и offline с помощью списка недействительных паспортов, хотя при обмене по сетям общего доступа такой информацией лучше использовать хеш.
                                                +1
                                                Капча не проблема, ФМС отдаёт список всех недействительных паспортов в заархивированном текстовом файле.
                                                  +1
                                                  Файл однако достаточно большой: в CSV формате — ~1Гб, в bz2-архиве — ~320 Мб. При этом ежедневно обновляется, если верить сайту. Хранить на мобильнике вряд ли получится, можно конечно на каком-нибудь своем сервере его хранить… но тогда приложению доступ в сеть понадобится для проверки. Кроме того, проверять получится только серию и номер (только они в базе хранятся). Что делать если номер распознается с ошибкой в одной цифре, и результат окажется в базе?..
                                                    –1
                                                    Размер дистрибутива тоже является важным параметром оптимизации, о котором уже подзабыли разработчики для десктопов. На мобильных устройствах размер пакета, зачастую, имеет критическое значение, иногда каждая сотня килобайт на счету.
                                                      +1
                                                      Спасибо за уточнение. Этого я не учёл.
                                                      Но всегда можно сделать сервис для внутреннего пользования и заложить в его «API» какую0угодно сложную логику.
                                                        –1
                                                        Такой сервис, в случае обеспечения безопасности и хорошего уровня QoS, был бы весьма полезен. Логично, чтобы он был услугой предоставляемой государством.
                                                    0
                                                    эта проверка работает через жопу. Поверьте, не надо её использовать.
                                                    0
                                                    Надо вообше все номера выложить в инете и мучатся не надо.

                                                    — Номера паспортов 164 членов Совета Федерации опубликованы на официальном портале государственных закупок. Персональные данные сенаторов (за исключением представителей Севастополя, Магаданской, Челябинской областей, Приморского края и Республики Татарстан) разместил в открытом доступе аппарат верхней палаты в составе документов контракта на оказание услуг по страхованию сенаторов от несчастных случаев и болезней.

                                                    По данным контракта паспортные данные сенаторов находятся в открытом доступе еще с сентября прошлого года.

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

                                                    top.rbc.ru/politics/17/03/2015/55085b0f9a79479d844ad14d
                                                      –1
                                                      Ничего хорошего тут нет, каждый должен сам решать: публиковать персональные данные или нет. А за несанкционированную публикацию надо наказывать, в соотвествии с законом.
                                                      0
                                                      Очень классный проект. Любопытно почитать про ядро очень, если сами писали. Особенно как вы смогли по быстродействию его упихать в мобильник.Наверное какие-нибудь контурные/скелетные методы+SVM+много-много-много эмпирических априорных оценок? Вообще сталкивались с разработками CV на мобильниках не раз, но как-то неприятно CV методы под них разрабатывать. Всё медленно, коряво, неудобно, в 10 раз медленнее разрабатывать, чем на компе. Так что респект и уважуха:)
                                                        0
                                                        Большую часть времени в подобных задачах тратится на обработку изображений, а не на методы статистического распознавания. Над своей библиотекой обработки изображений мы работаем уже 5 лет. Функции там достаточно низкоуровневые, зато полностью «отжатые» на двух SIMD платформах: Intel SSE2, ARM NEON. Все «расшито» интринсиками. Есть как минимум три полезных алгоритма с предельной асимптотикой, которых нет в OpenCV: быстрое преобразование Хафа, морфологические фильтры по ван Херку — Гилу — Верману и быстрые Гауссовские свертки алгоритмом Дерише. Кроме того, мы всю обработку удерживаем в 8-битных целых, изредка расширяясь до 16-битных для хранения кумулятивных сумм. На всех этапах растр масштабируется до минимального размера, на котором задача еще разрешима. Заодно шум давится. Нет глубоких переборных схем. Бинаризации нет вообще, поэтому не возникает комбинаторный взрыв на разваленных символах. Нейронные сетки обучаются с раздутием (augmentation) обучающей выборки, в том числе сдвигами растра, поэтому неточности сегментации парируются сетками. Сами сетки — глубокие сверточные, вычисляются через Eigen, который очень хорошо разогнан под NEON. Сетки, к несчастью. пока в 32-битных флоатах считаются. Сейчас в другом продукте мы уже начали использовать целочисленные сетки (16 бит), так что скоро Паспорт РФ еще ускорится.
                                                        0
                                                        Подскажите, а под какие устройства Андроид-приложение? У меня на Dell Venue пишет «не поддерживается» (
                                                          0
                                                          В данный момент опубликована сборка под ARM, требования: наличие автофокуса. С Dell Venue будем разбираться, если не сложно уточните модель и версию операционной системы.
                                                            0
                                                            Dell Venue 7 3730, 4.4.2
                                                          0
                                                          Протестировал, первое что выглядит странным, это скан по времени. Почему не сканировать до тех пор, пока не распознает все поля?
                                                          И кнопка старт совсем плохо расположена.

                                                          Ну это так, мелочи, на будущее.
                                                            0
                                                            Отличный вопрос, более того, один из фундаментальных: как системе определить, что расползалось верно, если правильного ответа система не знает? Соответственно из этого вопроса вытекает – а когда остановиться? В нашем ядре реализовано сразу несколько подсистем которые работают над этим вопросом: система определения надежности результатов распознавания и система интеграции. Первая оценивает результат работы методов на каждом кадре для каждого объекта (зоны, поля, символа), вторая работает с потоком кадров и их результатов распознавания и выносит свой вердикт. В рамках планируемой статьи описывающей устройство ядра распознавания мы покажем место и функции этих систем, и если будет дальнейший интерес подготовим пост по этой тематике.
                                                            Над кнопкой поработаем.
                                                            0
                                                            В целом здорово! Однако, придётся адаптировать под паспорта других Государств (СНГ), как минимум + их заграничные версии! Но учитывая, что в скорости появится УЭК, и с ним надо тоже чего-то думать. Конечно, имея хороший движок, я думаю, что можно это добро всё адаптировать. Однако, всё равно возникает ряд нюансов… — Читать какие-нибудь паспорта Таджикистана с их шрифтами и т.п. Я думаю, что конечная цена приложения — будет весьма дорогой. Плюс ко всему, накладывается фрагментация мобильных платформ…
                                                              0
                                                              УЭК будем распознавать. Насчет паспортов и ID карт других стран — ведем работы, самое сложное это найти массивы для обучения, настройки и отладки — персональные данные. Нюансов, конечно, множество, но это и интересно. Фрагментация по процессорам и камерам требует внимания и если его прикладывать, то в конечном итоге, качество только растет.

                                                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                            Самое читаемое