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

IT-копирайтер
Время чтения: 3 минуты
Арнольд работает страховым консультантом. Ежедневно он тратит 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 в бизнесе для распознавания документов. Так вы повысите скорость работы, увеличите продуктивность и освободите сотрудников от малоэффективного ручного труда.