Распознавание изогнутого текста — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Архитектура)
(Архитектура)
Строка 49: Строка 49:
 
==== Архитектура ====
 
==== Архитектура ====
 
[[Файл:Ts pip.png|500px|right|thumb|Схема работы TextSnake]]
 
[[Файл:Ts pip.png|500px|right|thumb|Схема работы TextSnake]]
Схема работы TextSnake представлена справа. TextSnake использует [[:Сверточные_нейронные_сети|свёрточную нейронную сеть]]. Чтобы определять текст произвольной формы, используется FCN (Fully Convolutional Network) модель для предсказывания геометрических атрибутов текстовых областей. С помощью FCN и FPN<ref name="fpn">[https://arxiv.org/pdf/1612.03144.pdf Lin, T.Y., Dollar, P., Girshick, R., He, K., Hariharan, B., Belongie, S., "Feature pyramid networks for object detection"]</ref> предсказываются вероятностные карты центральной линии (text center line, TCL) и текстовых областей (text regions, TR), вместе с геометрическими атрибутами <math>r, cosθ, sinθ</math>. Карта TCL в дальнейшем маскируется картой TR (TCL, по сути, является частью TR). Далее извлекаются списки точек центральной оси и восстанавливаются экземпляры текста. Детальная архитектура представлена ниже:
+
Схема работы TextSnake представлена справа. TextSnake использует [[:Сверточные_нейронные_сети|свёрточную нейронную сеть]]. Чтобы определять текст произвольной формы, используется FCN (Fully Convolutional Network) модель для предсказывания геометрических атрибутов текстовых областей. С помощью FCN и FPN (Feature Pyramid Network)<ref name="fpn">[https://arxiv.org/pdf/1612.03144.pdf Lin, T.Y., Dollar, P., Girshick, R., He, K., Hariharan, B., Belongie, S., "Feature pyramid networks for object detection"]</ref> предсказываются вероятностные карты центральной линии (text center line, TCL) и текстовых областей (text regions, TR), вместе с геометрическими атрибутами <math>r, cosθ, sinθ</math>. Карта TCL в дальнейшем маскируется картой TR (TCL, по сути, является частью TR). Далее извлекаются списки точек центральной оси и восстанавливаются экземпляры текста. Детальная архитектура представлена ниже:
  
 
[[file:TextSnakeArchitecture.png|500px|left|thumb|Архитектура TextSnake]]
 
[[file:TextSnakeArchitecture.png|500px|left|thumb|Архитектура TextSnake]]

Версия 19:05, 20 января 2021

Эта статья находится в разработке!

Распознавание текста — важная задача машинного обучения, решение которой позволит получать огромное количество информации из окружающего мира без участия человека. Распознавание изогнутого текста, в частности, одна из проблем, лежащих на пути решения данной задачи.
В решении задачи распознавания текста двумя основными составляющими являются определение области текста и распознавание содержимого области. В сообществе исследователей выделяют три разных вида ориентации текста: horizontal, multi-oriented, curved (горизонтальная, множественная, изогнутая). Очевидно, что правильность определения области текста напрямую влияет на качество работы распознающих моделей. Долгое время распознавание изогнутого текста казалось крайне сложной задачей — до тех пор, пока не появились способы весьма точно определять контуры объектов на изображениях (например, Mask R-CNN[1]). Использование методов сегментации изображения позволяет добиться хороших результатов на существующих датасетах.

Существующие модели и датасеты

Датасеты, способствовавшие исследованиям в области распознавания изогнутого текста:

  • TotalText
  • SCUT-CTW1500

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

Модели только для детекции:

  • TextSnake (2018)
  • TextFuseNet (2020)
  • PolyPRNet (2020)

Модели end-to-end:

  • CRAFTS (2020)
  • MANGO (2021)
  • Text Perceptron (2020)
  • Boundary (2020)
  • Mask TextSpotter (2018)

Также здесь для ознакомления с технологиями распознавания представлены следующие модели:

  • MORAN (2019)
  • ESIR (2018)

Датасеты

TotalText (2017)

Предшествующие TotalText'у датасеты ICDAR'03[2], '11[3], '13[4] и MSRA-TD500[5] сыграли значимую роль в начале исследований в области распознавания текста. У датасетов ICDAR[2][3][4][6] тексты встречались в единственной ориентации — горизонтальной, и на этом предположении были основаны многие ранние модели. Границы текста они определяли как прямоугольник. Это ограничивало возможности распознавания, и для привлечения внимания исследователей к этой проблеме в 2012 году был представлен датасет MSRA-TD500[5], включавший в себя большое количество изображений с множественной ориентацией текста (от горизонтальной отличается тем, что область с текстом находится под наклоном или/и в перспективе). Модели были усовершенствованы, и теперь определяли границы как произвольных форм четырёхугольники. Текст же изогнутой формы, несмотря на частоту появления в реальном окружении, практически не появлялся в датасетах (искл. COCO-text[7] и CUTE80[8], но они не привлекли особого внимания к проблеме). Поэтому справиться с произвольной формой текста многие модели попросту не могли.

Для привлечения внимания к этой проблеме в 2017 году был представлен датасет TotalText, состоящий из 1555 изображений с текстом различной ориентации и содержащий в целом 9330 слов. Отличительной особенностью TotalText является Groundtruth области (или же границ) текста. Groundtruth ("основная истина") — это термин, используемый для обозначения информации, предоставляемой прямым наблюдением (в отличие от информации, предоставляемой предположением). В данном случае под термином groundtruth подразумевается значение, которое в идеале должна предсказать модель. Так, в COCO-Text[7] groundtruth области текста был прямоугольник, а вот в TotalText это был многоугольник, состоящий из множества полигонов.

SCUT-CTW1500 (2017)

SCUT-CTW1500 должен был привлечь внимание к той же проблеме, что и TotalText. Они были опубликованы практически одновременно (TotalText 27 октября 2017, а SCUT-CTW1500 6 декабря 2017). Вероятно, они разрабатывались независимо друг от друга — авторы SCUT-CTW1500 утверждали, что они являются первооткрывателями полигонального подхода, хотя TotalText был опубликован немного раньше. Позднее авторы TotalText добавили ссылку на SCUT-CTW1500 в качестве дополнения к своему датасету. SCUT-CTW1500 включает в себя 1500 изображений (1000 для обучения, 500 для проверки), на которых содержится более 10 тысяч областей с текстом, и на каждом изображении как минимум один раз встречается изогнутый текст. Здесь, как и в TotalText, groundtruth — фигура, состоящая из нескольких полигонов. Оба этих датасета (а точнее, модели, обученные на них) стали прорывом — они первые начали использовать полигональный groundtruth.

Сейчас TotalText и SCUT-CTW1500 все реже используются как два независимых датасета. Датасет ArT объединил их в себе и стал самым большим датасетом изогнутого текста.

Модели для детекции

TextSnake (2018)

TextSnake отличается уникальным способом представления области с текстом. Математически, экземпляр текста [math]t[/math], состоящий из нескольких элементов, может быть представлен как упорядоченный список [math]S(t)[/math]. [math]S(t) = \{D_0, D_1, ... , D_i , ... , D_n\}[/math], где [math]D_i[/math] — это [math]i[/math]-й диск, а [math]n[/math] — количество дисков. Каждый диск [math]D[/math] обладает набором геометрических свойств [math](c, r, θ)[/math], где [math]c, r, θ[/math] — это центр, радиус и ориентация диска [math]D[/math] соответственно. Радиус [math]r[/math] определён как половина от локальной высоты [math]t[/math], а ориентация [math]θ[/math] — это тангенциальное направление центральной линии относительно центра [math]c[/math]. Таким образом, текстовая область [math]t[/math] может быть легко представлена с помощью вычисления объединения дисков в [math]S(t)[/math]. Важно, что сами диски никак не связаны с символами, принадлежащими [math]t[/math]. Такое представление [math]t[/math] даёт возможность "выпрямить" текстовую область, что облегчит распознавание её содержимого.

Как TextSnake представляет текст


Архитектура

Схема работы TextSnake

Схема работы TextSnake представлена справа. TextSnake использует свёрточную нейронную сеть. Чтобы определять текст произвольной формы, используется FCN (Fully Convolutional Network) модель для предсказывания геометрических атрибутов текстовых областей. С помощью FCN и FPN (Feature Pyramid Network)[9] предсказываются вероятностные карты центральной линии (text center line, TCL) и текстовых областей (text regions, TR), вместе с геометрическими атрибутами [math]r, cosθ, sinθ[/math]. Карта TCL в дальнейшем маскируется картой TR (TCL, по сути, является частью TR). Далее извлекаются списки точек центральной оси и восстанавливаются экземпляры текста. Детальная архитектура представлена ниже:

Архитектура TextSnake


Точность

F-мера:

  • TotalText: 78.4%
  • CTW1500: 75.6%


TextFuseNet (2020)

Основной особенностью TextFuseNet является выделение бóльшего количества признаков и их слияние для более точного определения текстовых областей. TextFuseNet опирается на Mask R-CNN[1] и Mask TextSpotter, рассматривая детекцию текста как задачу сегментации. Выделение признаков происходит на трёх уровнях: символьном, словесном и глобальном.

Архитектура

Архитектура TextFuseNet


Общая архитектура TextFuseNet представлена выше. Для получения глобального представления используется семантическая сегментация. Далее, с помощью Mask R-CNN[1] в ветвях Detection и Mask определяются признаки на буквенном и словесном уровнях. Для слияния уровней используется модуль multi-path fusion (представлено снизу), что позволяет TextFuseNet изучать более дифференцированное представление и выдавать более точные результаты детекции текста.

Работа модуля multi-path fusion


Точность

F-мера:

  • Total-Text: 87.1%
  • CTW1500: 86.6%


PolyPRNet (2020)

Отличительной чертой PolyPRNet является способ представления текста. Для области с текстом модель определяет центральную линию как полином степени [math]n[/math]. Эта центральная линия определяет общую форму и плавность текста. Для её построения используется набор [math]k[/math] путевых точек, расположенных на медиальной оси текстовой области (полиномиальная центральная линия должна максимально точно проходить путевые точки). Для описания таких локальных свойств, как ширина линии (то есть высота текста) и ориентация, используется набор [math]m[/math] линий широты. Линия широты пересекается с центральной линией, и описывается с помощью параметров [math]x_i, y_i, l_a, l_b[/math] и [math]θ_i[/math], где [math]x_i[/math] и [math]y_i[/math] — координаты начала линии широты, [math]l_a[/math] и [math]l_b[/math] — длина различных частей линии, [math]θ_i[/math] — угол линии широты относительно оси [math]y[/math]. Геометрическая модель текстовой области состоит из центральной линии [math]\{a_n, a_{n-1},.. a_0\}[/math] и параметров [math]\{x_i, y_i, l_{ai}, l_{bi}, θ_i\}[/math] линий широты.

Геометрическая модель текстовой области PolyPRNet


Архитектура

PolyPRNet использует двухступенчатую структуру на основе R-CNN[1]. Схема архитектуры представлена ниже. На первой стадии используется ResNet50 и FPN[9], чтобы получить карты признаков из исходного изображения. Далее используется сеть RPN для формирования набора предложенных областей текста. На второй стадии используется модуль R-CNN[1] с ветками регрессии границы (bounding box regression) и классификации, чтобы точнее локализовать предложенные области. Так же используется модуль Polynomialbased shape Parameter Regression (PPR), чтобы вывести форму и направление потенциального текстового кандидата.

Архитектура PolyPRNet


Точность

F-мера:

  • Total-Text: 84.6%
  • CTW1500: 83.4%


Модели для распознавания

Распознающие текст модели в качестве входных данных принимают изображение, где должна находиться одна строка текста. Точность распознавания этих моделей тестируется на датасетах, где за groundtruth принимается текстовая "коробка" (например, CUTE80[8], ICDAR'15[6]).

MORAN: A Multi-Object Rectified Attention Network (2019)

Текст на изображениях часто оказывается не просто изогнут, а деформирован разными способами и в нескольких направлениях (например, изогнутый текст + перспектива). Это учитывалось при разработке выпрямляющего модуля MORAN, что и является отличительной особенностью этой модели.

Схема выпрямления


Архитектура

Архитектура MORAN

MORAN состоит из двух частей: MORN (Multi-Object Rectification Network) и ASRN (Attention-based Sequence Recognition Network):

  • MORN отвечает за выпрямление. Архитектура MORN представлена в таблице ниже. За каждым (за исключением последнего) свёрточным слоем следует слой батчевой нормализации и слой ReLU. MORN делит изображение на несколько частей, после чего предсказывает смещение для каждой части. Предсказанное смещение используется для выпрямления.
Архитектура MORN


  • ASRN отвечает за распознавание. Архитектура ASRN представлена в таблице ниже. Основной структурой ASRN является фреймворк CNN-BLSTM. В верхних слоях CRNN применяется одномерный механизм внимания. Далее используется attention-based декодер (GRU), основанный на RNN.
Архитектура ASRN


Точность

F-мера:

  • ICDAR'15[6]: 68.8%
  • CUTE80[8]: 77.4%


ESIR: End-to-end Scene Text Recognition via Iterative Image Rectification (2018)

ESIR использует итеративное выпрямление изображения, которое исправляет искажения, связанные с перспективой и кривизной. Для этого моделируется средняя линия текста с помощью полиномов. В дополнение, определяются направление и высота области текста на множестве сегментов линии. Среднюю линию с дополнительными параметрами назовём "повторяющей линией".

Представление центральной линии: [math]y = a_K ∗ x^K + a_{K−1} ∗ x^{K−1} + ... + a_1 ∗ x + a_0[/math], где [math]K[/math] — степень полинома.

Дополнительные параметры представлены в виде линии: [math]y = b_{1,l} ∗ x + b_{0,l} | r_l, l = 1, 2, ... , L[/math], где [math]L[/math] — количество линий.

"Повторяющая линия"


Архитектура

ESIR состоит из двух частей:

Сеть локализации
  • Iterative Rectification Network (сеть итеративного выравнивания). Сеть выравнивания итеративно регрессирует для просчёта параметров повторяющей линии, используя сеть локализации вместе со свёртками изображений, как показано на схеме ниже. Детальная структура сети локализации представлена в таблице.
Iterative Rectification Network


  • Recognition Network (сеть распознавания). Используется sequence-to-sequence модель с механизмом внимания. Система состоит из кодера и декодера. В кодировщик поступает выпрямленное изображение текста размером 32x100 пикселей. Используется 53-слойная остаточная сеть для извлечения признаков, за остаточной сетью следует два слоя BLSTM. Декодер использует LuongAttention механизм, состоящий из 2-слойных LSTM внимания. На этапе вывода используется beam search.


Точность

F-мера:

  • ICDAR'15[6]: 76.9%
  • CUTE80[8]: 83.3%

Модели end-to-end

CRAFTS (2020)

CRAFTS — это полноценный end-to-end фреймворк, способный не только к детекции, но и к распознаванию. Его часть, отвечающая за детекцию, показывает наилучшие результаты, так же, как и часть, отвечающая за распознавание без словаря.

Архитектура

CRAFTS состоит из трех слоев: слоя детекции, коммуникации и распознавания. Данные, проходя через три этих этапа, на выходе представляют собой готовый end-to-end результат в качестве распознанных слов.

Архитектура CRAFTS


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

Подробная схема работы слоя детекции


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

Очищение текста по сути своей является корректировкой символьных полигонов. Они выпрямляются и сглаживаются, обтекая символы. Эти преобразования происходят в три этапа трансформации сплайнов с малой шириной. Для трансформации используется 20 контрольных точек. Также на этом этапе при необходимости применяется 2D-полиномиальное сглаживание для достижения еще более точной формы полигона.

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

Диаграмма распространения ошибки в CRAFTS


Процесс распознавания состоит из трех частей: извлечение признаков, моделирование последовательности и непосредственно распознавание. Успех этапа распознавания во многом зависит от правильно расставленных точек внимания. Если они смещены или утеряны, то корректное распознавание практически невозможно.

Архитектура слоя распознавания


Точность

F-мера:

  • Total-Text (Detection): 87.4%
  • Total-Text (E2E, без словаря): 78.7%


MANGO (2021)

MANGO — один из самых удачных end-to-end фреймворков. Вероятно, такого успеха его авторы добились благодаря необычной для таких моделей внутренней архитектуре. Обычно E2E модели работают в два этапа: детекция и распознавание. Слой детекции выделяет и выпрямляет области текста, которые затем передаются в слой распознавания. Такой подход вызывает трудности в обучении, так как результат распознавания сильно зависит от результата детекции, но обучать два этих слоя одновременно и взаимно — сложная задача. Ученые ищут способы решения этой проблемы. Разработчики MANGO отказались от подобной архитектуры и делегировали обе задачи одному единственному слою. Именно поэтому MANGO не возможно протестировать на качество детекции — в этой модели этап детекции неразделим с этапом распознавания. MANGO является одним из первооткрывателей такой архитектуры и доказывает, что она не просто жизнеспособна, но и весьма успешна.

Архитектура

Итак, MANGO имеет однослойную архитектуру. Но это вовсе не значит, что работу этой модели нельзя разделить на этапы. В действительности MANGO, как и другие модели, не может выполнить сразу оба этапа каким-то одним инструментом. MANGO все еще разделяет свою работу на детекцию и распознавание. Особенность этой модели в том, что данные, спустя этап детекции, имеют такой вид, что рекогнайзер представляет собой легковесный инструмент. Это достигается тем, что этап детекции уже включает в себя элементы распознавания. Разберемся как это происходит.

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

Первоначальная обработка изображения происходит с помощью ResNet50 остаточной свёрточной нейронной сети.

Архитектура MANGO


Точность

F-мера:

  • Total-Text (E2E, без словаря): 72.9%
  • Total-Text (E2E, со словарём): 83.6%
  • CTW1500 (E2E, без словаря): 58.9%
  • CTW1500 (E2E, со словарём): 78.7%


TextPerceptron (2020)

Text Perceptron — это E2E модель, состоящая из трёх частей: модуль детекции, Shape Transform Module (STM, "модуль трансформации формы") и модуль распознавания текста. Модуль детекции описывает текстовую область с помощью четырёх субобластей: центр, начало, конец и вертикальная (верх/низ) область. Это сделано для упрощения определения направления чтения. STM необходим для устранения несовместимости между модулем детекции и модулем распознавания. Модуль распознавания генерирует итоговую символьную последовательность. Каждый этап может влиять на предшествующий ему этап, сигнализируя соответствующему модулю о необходимости дополнительной настройки.

Схема работы TextPerceptron


Архитектура:

Детектор текста использует ResNet и FPN[9] как основу, и реализуется путем одновременного изучения трех задач: многоклассовой семантической сегментации с учетом порядка, регрессии угла и регрессии смещения границ. STM отвечает за объединение детекции и распознания. Для этого STM генерирует доверительные точки и настраивает их позиции, на основе чего "выпрямляет" текст с помощью TPS (Thin-plate splines) для дальнейшего распознавания. В модуле распознавания может использоваться любой sequence-based метод.

Архитектура TextPerceptron


Точность

F-мера:

  • Total-Text (Detection): 85.2%
  • Total-Text (E2E, без словаря): 69.7%
  • Total-Text (E2E, со словарём): 78.3%


Boundary (2020)

Стадии работы Boundary

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

Архитектура Boundary

Архитектура

Boundary состоит из трёх частей: определение ориентированной "коробки" текста, определение граничных точек и распознавание текста. Сначала строится карта признаков с помощью ResNet-50 и FPN[9]. После используется RPN чтобы сгенерировать предполагаемые горизонтально-ориентированные области. После этого для каждой области генерируется ориентированная "коробка" через предсказывание её центральной точки, высоты, ширины и направления. Далее для каждой ориентированной коробки ищутся граничные точки, для чего используется Boundary Point Detection Network (BPDN). Опираясь на полученные граничные точки, предполагаемые области выравнивают, после чего для распознавания текста используется CRNN.

Точность

F-мера:

  • Total-Text (Detection): 87.0%
  • Total-Text (E2E, без словаря): 64.1%


Mask TextSpotter (2018)

Mask TextSpotter является одной из первых E2E моделей, тренированных на датасете TotalText. Она не была призвана распознавать именно изогнутый текст, но отличительной чертой модели Mask TextSpotter являлось как раз то, что она сравнительно неплохо с ним справлялась. Разработчики Mask TextSpotter применили недавно опубликованную нейронную сеть с архитектурой Mask R-CNN[1] для выделения контуров объектов на изображении, которая и позволила сделать шаг вперед в распознавании изогнутого текста.

Архитектура

Для первичной обработки изображения Mask TextSpotter использует ResNet50 остаточную свёрточную нейронную сеть.

Затем над изображением работает RPN нейронная сеть, которая выполняет базовый поиск областей текста на изображении. RPN может выявлять символы разных форм и размеров. Уже размеченный текст более детально обрабатывается Fast R-CNN[1] нейронной сетью. Её задачи принципиально ничем не отличаются от задач RPN, Fast R-CNN[1] лишь доводит дело до конца. Завершает работу этап детекции по маске. Сначала он разбивает полученные области текста на слова, а затем внутри слов распознает отдельные символы. На этом этапе можно настраивать локализацию. Затем данные проходят небольшой пост-процессинг перед достижением итогового результата.

Архитектура Mask TextSpotter


Точность

F-мера:

  • TotalText (Detection): 61.3%
  • TotalText (E2E, без словаря): 52.9%
  • TotalText (E2E, со словарём): 71.8%

См. также

Примечания

Источники информации