Автор: Dipu Technology-Algorithm Engineer-Wen ZhipingFast Data - это интеллектуальный алгоритмический продукт, созданный Dipu для изображений и данных.Он разделен на два модуля: распознавание изображений и ИИ данных.Часть распознавания изображений в основном основана на алгоритмах глубокого обучения и распознавания образов для достижения обнаружения, классификации и распознавания целей. , Модуль машинного зрения используется в обнаружении промышленных дефектов и идентификации безопасности, среди которых распознавание символов OCR является важной частью модуля распознавания изображений.Далее мы проанализируем типичные алгоритмы и области применения традиционного OCR, а затем объединим практику Дипу для улучшения традиционного алгоритма OCR.
1. Краткое введение в технологию OCR
Оптическое распознавание символов (OCR) — это технология, которая распознает текст с изображений, используя машины для преобразования рукописного или печатного текста в изображениях в формат, который может быть непосредственно обработан компьютерами. Распознавание символов — одно из направлений в области исследований компьютерного зрения, оно находится на стадии углубленных исследований и получило множество коммерческих приложений. В прошлом существовали платформы облачных сервисов OCR, такие как Baidu, Ali и Tencent, а затем появились специализированные поставщики системной интеграции OCR, такие как Hanwang, Hehe Information, ABBYY и Wentong. Технология OCR позволяет обрабатывать изображения самых разных сцен, включая различные карты и документы, полученные при съемке или сканировании, а также изображения естественных сцен, содержащие текст и видеоизображения с наложенным текстом субтитров и т. д. Она широко используется в промышленности, бизнесе. и финансирование ценных бумаг.
2. Маршрут технологии OCR
До того, как глубокое обучение было полностью продвинуто, большая часть распознавания OCR была основана на традиционных методах машинного зрения для обнаружения и распознавания. В случае одного фона и простой сцены с данными традиционное распознавание обычно может дать хорошие результаты, но в случае сложных сцен и большого количества помех эффект распознавания не очень хорош, и распознавание с помощью глубокого обучения показывает огромное преимущество при в этот раз. В 2016 году Google DeepeMind выпустила робота AlphaGo [1], основанного на технологии глубокого обучения, который победил лучшего в мире мастера го Ли Шиши со счетом 4:1. Фреймворк распознавания OCR, основанный на технологии глубокого обучения, быстро преодолевает первоначальные технические трудности благодаря еще одной новой идее и широко используется в отрасли.
2.1 Традиционная технология идентификации
Традиционное распознавание символов основано на обработке изображений (бинаризация, анализ связанных доменов, проекционный анализ и т. д.) и статистическом машинном обучении (Adaboot, SVM) для извлечения текстового содержимого из изображений. Он разделен на четыре этапа в зависимости от метода обработки: предварительная обработка, позиционирование текста, распознавание текста и постобработка.
Рис. 1. Процесс внедрения на основе традиционной технологии OCR машинного зрения
Технология OCR сталкивается со следующими проблемами в сложных сценариях.
Сложная визуализация: шум, размытие, световые изменения, деформация; Сложный текст: шрифт, размер шрифта, цвет, износ, произвольная ширина штриха и произвольное направление; Сложная сцена: отсутствие макета, фоновые помехи; Отдельный признак: Оператор признака задается вручную, информация, которая может быть представлена, ограничена, и глубокая семантическая информация не может быть извлечена.
2.2 Технология глубокого обучения
Технология OCR, основанная на глубоком обучении, в основном включает два метода: первый состоит из двух этапов: обнаружение текста и распознавание текста, а второй — одновременное обнаружение и распознавание текста с помощью сквозной модели. Алгоритм обнаружения: CTPN, TextBoxes, SegLink, EAST и др.; Алгоритм распознавания: CRNN, CRNN+CTC, Seq2Seq-Attention и др.; Сквозной алгоритм: FOTS, Mask TextSpotter и т. д.
Методы, основанные на глубоком обучении, имеют следующие преимущества: Автоматический: автоматическое обучение представлению признаков освобождает исследователей от эмпирически разработанных, созданных вручную; Эффективность: производительность обычно выше, чем у традиционных алгоритмов; Обобщение: легче обобщить на похожие сценарии.
Рис. 2. Процесс внедрения технологии OCR на основе глубокого обучения
3. Обнаружение текста с глубоким обучением
Обнаружение текста является частным случаем обнаружения объектов.Обработка текста как цели одного типа может учиться на общих моделях обнаружения целей для выполнения задач обнаружения текста. Но обнаружение текста имеет больше возможностей, чем обычное обнаружение объектов:
По сравнению с обычным обнаружением объектов длина текстовой строки и соотношение длины и ширины сильно различаются;
Текстовая строка является направленной, а обнаружение Anchor-Based обычно представляет собой прямоугольник в горизонтальном и вертикальном направлениях;
Некоторые художественные шрифты имеют очень большие изменения формы, многие из которых изогнуты, и имеют богатые типы шрифтов и типы языка;
Из-за большого количества интерференций фонового изображения созданные вручную функции недостаточно надежны в задачах распознавания текста в естественных сценах.
Общие методы обнаружения текста в основном включают методы на основе блоков-кандидатов, методы на основе сегментации, гибридные методы и другие методы.
Рис. 3. Список методов распознавания текста методом глубокого обучения.
Методы, основанные на регрессии, делятся на блочную регрессию и регрессию значений пикселей.
А. Методы использования регрессии блоков в основном включают CTPN, серии текстовых полей и EAST и т. д. Эти алгоритмы лучше обнаруживают текст правильной формы, но не могут точно обнаруживать текст неправильной формы.
Б. Методы регрессии значений пикселей в основном включают CRAFT и SA-Text.Эти алгоритмы могут обнаруживать изогнутый текст и отлично влияют на мелкий текст, но производительности в реальном времени недостаточно.
Алгоритмы на основе сегментации, такие как PSENet, не ограничены формой текста и могут достигать хороших результатов для текстов различной формы, но постобработка часто усложняется, что приводит к значительным временным затратам. В настоящее время также существуют некоторые алгоритмы, специально улучшенные для этой задачи, такие как DB, который аппроксимирует бинаризацию, делает ее выводимой и интегрирует ее в обучение, чтобы получить более точную границу и значительно сократить время. потребление постобработки.
3.1 Алгоритм CTPN
Тянь Чжи, докторант Университета Аделаиды, предложил алгоритм обнаружения текста — CTPN [3] на ECCV 2016, который был улучшен по сравнению с классической моделью обнаружения целей Faster RCNN в сочетании с CNN и глубокой сетью LSTM, которая поддерживает любой размер ввода изображения и может находить текстовые строки непосредственно в сверточных слоях. CTPN состоит из трех частей: обнаружение мелкомасштабных текстовых полей, циклическое соединение текстовых полей и уточнение границ текстовой строки.
Используйте сеть VGG16 для извлечения функций и получения функций conv5_3 в виде карты функций;
Используйте скользящее окно 3*3, чтобы скользить по полученной карте признаков, чтобы получить соответствующий вектор признаков;
Введите полученный вектор признаков в двунаправленную сеть долговременной кратковременной памяти BLSTM, изучите признаки последовательности, а затем подключите полносвязный слой FC;
Затем пройдите через сеть RPN, аналогичную Faster R-CNN, чтобы получить текстовые предложения;
После получения плотных предложений с небольшим текстом отфильтруйте избыточные текстовые поля с помощью метода NMS;
Наконец, смежный текст синтезируется с помощью алгоритма построения текстовой строки для формирования текстовой строки.
Рис. 4. Реализация сети CTPN
CNN изучает пространственную информацию в рецептивном поле, а LSTM изучает особенности последовательности. Очевидно, что для обнаружения текстовой последовательности требуются как абстрактные пространственные признаки CNN, так и признаки последовательности (текст непрерывен). BLSTM фактически соединяет два LSTM в противоположных направлениях.По сравнению с обычными односторонними LSTM, он может изучать более надежную контекстную информацию, избегать проблемы с забвением длинной цепочки односторонних LSTM, более полно извлекать функции последовательности и улучшать текстовые строки. . После того, как CTPN узнает набор функций «пробел + последовательность» через CNN и BLSTM, он подключается к сети RPN после сверточного уровня «FC» [4]. Здесь RPN похож на Faster R-CNN и делится на две ветви:
Левая ветвь используется для регрессии ограничивающей рамки. Поскольку каждая точка карты характеристик FC оснащена 10 якорями и возвращает только центральную координату y и высоту 2 значений, Rpn_bbox_pred имеет 20 каналов;
Правая ветвь используется для привязки классификации Softmax.
Рис. 5. Детали RPN сети CTPN
Драматическое изменение длины текста является одной из проблем обнаружения текста. Автор считает, что изменение длины текста гораздо более серьезнее, чем изменение по высоте, и трудно использовать соответствие якорем и регрессию в начале и конец границы текста, как быстрее - RCNN, поэтому автор предлагает способ вертикального якоря, то есть только для прогнозирования вертикального положения текста, не предсказывать горизонтальное положение, определение горизонтального положения требуется только для Обнаружение небольшого текстового сегмента с фиксированной шириной и соответствующие высоты прогнозы являются точными, и, наконец, соединяют их вместе, чтобы получить текстовую строку. Сводка CTPN имеет следующие преимущества:
Он хорошо влияет на горизонтальный текст и является относительно надежным, а также может обрабатывать текст, наклоненный в пределах 10 градусов, путем изменения метода слияния блоков привязки постобработки;
Хорошо работает с длинным текстом, особенно длинным текстом с чрезмерным кернингом.
CTPN — эффективный метод обнаружения текста, но есть некоторые проблемы:
Из-за настройки привязки CTPN может обнаруживать только горизонтально распределенный текст, и можно добавить небольшое улучшение, чтобы добавить горизонтальную привязку для обнаружения вертикального текста. Однако из-за ограничений структуры эффект обнаружения неправильного наклонного текста является общим;
Насыщенный текст может иметь горизонтальное залипание;
CTPN добавляет двунаправленный LSTM для изучения особенностей последовательности текста, что способствует обнаружению текста. Однако после введения LSTM легко взорвать градиент во время тренировки, с чем нужно обращаться осторожно.
3.2 Алгоритм БД
При обнаружении текста на основе сегментации карта вероятностей, созданная методом сегментации, преобразуется в ограничивающие рамки и текстовые области, которые будут включать постобработку бинаризации. Процесс бинаризации очень важен.Обычная операция бинаризации устанавливает фиксированный порог, но фиксированный порог трудно адаптировать к сложным и изменчивым сценариям обнаружения. DBNet [7] предложил операцию дифференцируемой бинаризации. Вставляя операцию бинаризации в сеть сегментации для комбинированной оптимизации, каждый пиксель адаптивно бинаризируется, и порог бинаризации изучается сетью. Получается, что шаг бинаризации полностью добавлен в сеть для совместного обучения, так что окончательная выходная карта будет очень устойчивой к порогу, что упрощает постобработку и улучшает эффект обнаружения текста. Конкретный процесс показан красной стрелкой на рисунке ниже.
Рис. 6. Информация о структуре сетевого уровня DBNet
Сначала входное изображение проходит через основу пирамиды признаков, а затем функции пирамиды подвергаются повышающей дискретизации для вывода карты признаков того же размера, что и исходное изображение. Затем карта признаков F используется для прогнозирования карты вероятностей P и при этом пороговая карта T. После расчета по F и T приблизительно получается бинарное изображение B. На этапе обучения контролируются карта вероятностей, карта порогов и приблизительная бинарная карта, где карта вероятностей и приблизительная бинарная карта совместно контролируются. Во время логического вывода ограничивающие рамки текста могут быть легко получены из приблизительных двоичных или вероятностных карт с помощью модуля формулирования рамок.
Основные преимущества алгоритма БД:
Хорошая производительность на пяти эталонных наборах данных, включая горизонтальный, множественную ориентацию, криволинейный текст;
По сравнению с предыдущими методами гораздо быстрее, так как БД обеспечивают надежную бинаризацию ФИГ, тем самым значительно упрощая процесс постобработки; использовать облегченную магистраль (ResNet18) и иметь хорошую производительность;
Модуль БД может быть удален в процессе логического вывода, поэтому он не занимает дополнительную память и не требует времени. Основные недостатки:
Неразрешимая ситуация «текст в тексте», то есть ситуация, когда центры текста перекрываются, что также является общей проблемой моделей обнаружения текста, основанных на принципах сегментации.
4. Распознавание текста на основе глубокого обучения
После обнаружения текстовой области на изображении с помощью обнаружения текста текст в этой области может быть распознан. В отличие от традиционной сегментации одного символа и отдельного распознавания в OCR, технология распознавания текста, основанная на методе глубокого обучения, обычно выполняет распознавание в измерении текстовой строки, чтобы избежать неопределенности операции сегментации символов.
Алгоритм распознавания CRNN
CRNN (Convolutional Recurrent Neural Network) [8] в основном используется для сквозного распознавания текстовых последовательностей неопределенной длины.Ей не нужно сначала вырезать один текст, но он преобразует распознавание текста в последовательность, зависящую от временных рядов. задача обучения Метод распознавания последовательностей на основе изображений. Вся структура сети CRNN состоит из трех частей, снизу вверх:
cnn (сверточный слой): используйте CNN глубины для извлечения входного изображения для получения функции;
RNN (рекуррентный слой): используйте двунаправленную RNN (BLSTM) для прогнозирования последовательностей признаков, изучения каждого вектора признаков в последовательности и вывода прогнозируемого распределения меток (истинных значений);
Потеря CTC (уровень транскрипции): используйте потерю CTC для преобразования серии распределений меток, полученных из повторяющегося слоя, в окончательную последовательность меток.
5. Практика распознавания текста
В процессе промышленной практики Dipu Technology в основном использует DB для обнаружения текста и CRNN в качестве модели распознавания текста для создания продуктов серии Fast AI. На примере задачи распознавания автомобильных номеров в проекте описано применение модуля OCR на базе продуктов Dipu Fast AI в практических проектах.
5.1 Подготовка данных
В проекте используется комбинация набора данных CCPD с открытым исходным кодом Китайского университета науки и технологий (200 КБ) + набора данных реальной сцены (10 КБ) + набора данных синтетического номерного знака (100 КБ). В связи с фиксированным расположением CCPD и реальной сценой, собранные номерные знаки относительно единичны, а распределение китайских иероглифов на номерных знаках совершенно иное, добавляются все искусственные синтетические наборы данных [13, 14]. Четырехточечное положение рамки номерного знака (четырехугольник, не обязательно прямоугольник) и символьная информация номерного знака отмечаются вручную.
Рис. 7. Набор данных базы CCPD
Рис. 8. Набор данных номерного знака реальной сцены
Рис 9 Данные маркировки номерного знака
Рис. 10 Изображение области номерного знака
5.2 Обучение модели
Обнаружение номерного знака: используйте модель БД (MobileNetV3 — BackBone) для определения области номерного знака, заполните и масштабируйте исходное изображение до размера 640*640, используйте размер пакета 16, обучите 1000Epoch, оптимизатор — Адам, начальная скорость обучения — 0,001. , и используется скорость обучения косинусного отжига. Скорректирована стратегия для достижения 0,96 при 0,5 @ mAP.
Распознавание номерного знака: Модель CRNN (ResNet — BackBone, декодирование CTC) используется для идентификации символьной информации в области номерного знака в соответствии с исходным соотношением ширины и высоты номерного знака (440140), в пределах региона отмеченные данные о лицензионной табличке для перехвата и увеличения (10032) и собрать 67 символов номерного знака в виде файлов словаря. С 64Batch Size, обучением 1000Epoch, Адам является оптимизатором, начальная скорость обучения составляет 0,0005, а стратегия регулировки скорости обучения косинусного отжига используется для получения точности 0,91.
5.3 Системная интеграция
Интеграция системы распознавания номерных знаков может быть реализована путем последовательного соединения моделей обнаружения и распознавания номерных знаков, и может быть реализована задача распознавания нескольких номерных знаков на одном изображении. В реальной сцене может быть достигнут полный уровень точности 94%.В аппаратной среде графического процессора 1080TI изображение 720P может достигать скорости распознавания 20 кадров в секунду, что соответствует требованиям к индексу реального проекта.
Рис. 11. Результаты распознавания номерного знака
6. Сводка OCR и перспективы
Развитие OCR на основе глубокого обучения достигло больших успехов.Будь то OCR в общем смысле или STR в естественных сценах, глубокое обучение может обеспечить лучшее обнаружение и распознавание текстов разных масштабов, направлений и форм. Однако исследованию комплексных задач OCR еще предстоит пройти долгий путь, и требования к распознаванию в реальном времени постепенно возрастают.
Для получения более подробной информации о продукте, пожалуйста, войдите:woohoo.deepvices.com/product-new…
использованная литература [1]глубокий разум.com/research/wipe…
[2] GitHub.com/Red Tile Green Tree UK Lee/…
[3] Z. Tian, W. Huang, T. He, P. He and Y. Qiao: Detecting Text in Natural Image with Connectionist Text Proposal Network, ECCV, 2016.
[4] zhuanlan.zhihu.com/p/137540923
[5] Zhou X, Yao C, Wen H, et al. East: an efficient and accurate scene text detector[C]//Proceedings of the IEEE conference on Computer Vision and Pattern Recognition. 2017: 5551-5560.
[6] Блог Woo Woo.cn на.com/sky fan/fear/97…
[7] Liao M, Wan Z, Yao C, et al. Real-time Scene Text Detection with Differentiable Binarization[J].
[8] zhuanlan.zhihu.com/p/71506131
[9] sanitizing.io/coach-explain…
[10] Грейвс А., Фернандес С., Гомес Ф. и др. Коннекционистская временная классификация: маркировка несегментированных данных последовательности с помощью рекуррентных нейронных сетей[C]//Материалы 23-й международной конференции по машинному обучению, 2006: 369-376.
[11] blog.CSDN.net/День мертвых_30822…
[12] Lyu P, Liao M, Yao C, et al. Mask textspotter: An end-to-end trainable neural network for spotting text with arbitrary shapes[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 67-83.