AzoftR&DOCR для распознавания документов и автоматического ввода данных

OCR для распознавания документов и автоматического ввода данных

Иван Ожиганов Июль 6, 2017

OCR для распознавания документов и автоматического ввода данных

Арнольд работает страховым консультантом. Ежедневно он тратит 2 часа на правку отчетов и оформление страховых полисов. Агентов в фирме много, но всех объединяет одна проблема: слишком много ручной работы. Время, потраченное на набор текста и исправление ошибок, лучше потратить на общение с клиентами или развитие новых навыков. Все это негативно отражается на бизнесе.

Чтобы оптимизировать работу, сократите бессмысленный ручной труд. В этом поможет OCR.

Что такое OCR?

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

OCR пригодится там, где нужно обрабатывать большие объемы текста или работать с бумажными носителями. Страховые компании, банки, государственные учреждения, транспортные компании. Все, кто хочет извлечь текст из изображения, могут делать это проще и быстрее.

Как это работает?

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

Для компании Арнольда мы разработали специальный алгоритм обработки паспортов и водительских прав. Страховые агенты просто фотографируют нужный документ на телефон. Программа сама заполняет ФИО, серию, номер паспорта и другие поля заявления.

Автозаполнение документов

В чем выражается польза?

Вы работаете быстрее

Раньше на оформление страховки требовалось 15-20 минут. С помощью нашего OCR-софта все решается за 5 минут и 3 простых шага:

  • Сотрудник фотографирует документ
  • Поля электронного заявления заполняются автоматически
  • Быстро проверяет текст на наличие ошибок

Вы работаете с удовольствием

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

Так Арнольд и его коллеги перестали тратить время на ручную печать и освободили время для настоящей работы.

Как мы распознавали документы для страховой компании

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

  • Локализация
  • Фильтрация
  • Извлечение строк
  • Распознавание текста по символам или по строкам

Локализация

Это нахождение документа на изображении. Для локализации мы пробовали три основных подхода:

  • OpenCV и обученный классификатор Хаара
  • Полносверточные нейронные сети
  • Аналитический подход на основе поиска связных компонент

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

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

Натренированная нейронная сеть

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

Фильтрация

Фон документов ламинированный, с бликами света и водяными знаками. Для нейронной сети все это - шум, который мешает распознавать символы. Поэтому мы этот шум постарались убрать. Для этого использовали:

  • Алгоритм фильтрации шума fastNlMeansDenoisingColored с окном подходящего размера для затирания линий
  • Билатеральный фильтр для получения однородного фона
  • Метод адаптивной бинаризации

Извлечение строк

Для водительских прав мы применили OpenCV и детектировали контуры букв.Затем мы разбивали строки на буквы, которые потом подавали на вход нейронной сети для распознавания.

Детектирование контуров букв и разбиение строк на буквы

Для извлечения строк паспорта мы применили полносверточную нейронную сеть.

Распознавание текста

Для распознавания текста мы использовали нейронные сети. Текст на правах мы распознавали по буквам с помощью сверточной нейронной сети, обученной на большом датасете изображений букв. Для создания и обучения нейронной сети мы использовали фреймворк Torch.

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

Схема работы скрипта

1. Водительское удостоверение

2. Камера

3. Исполняемый бинарный файл

4. Исходные коды C++, из которых собран исполняемый файл

5. Lua скрипт, осуществляющий работу с нейросетью. В нем описана архитектура сети.

6. Бинарный файл с весами сети, подгружаемый Lua скриптом. Веса получены после обучения сети

Почему вашему бизнесу нужны наши алгоритмы распознавания текста

Комбинируя различные подходы, мы добились точности распознавания 90%. Это больше, чем предлагают доступные на рынке инструменты.

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

Используйте OCR в бизнесе для распознавания документов. Так вы повысите скорость работы, увеличите продуктивность и освободите сотрудников от малоэффективного ручного труда.

Комментарии

комментарии