Изменения

Перейти к: навигация, поиск

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

241 байт добавлено, 20:58, 19 января 2021
Нет описания правки
Людей, работающих в данном направлении, для удобства условно будем называть "исследователями".
<br clear=all>
== Вступление ==
В решении задачи распознавания текста двумя основными составляющими являются определение области текста и распознавание содержимого области. В сообществе исследователей выделяют три разных вида ориентации текста {{- --}} horizontal, multi-oriented, curved (усл. горизонтальная, множественная, изогнутая). Очевидно, что правильность определения области текста напрямую влияет на качество работы распознающих моделей. Долгое время распознавание изогнутого текста казалось крайне сложной задачей {{--- }} до тех пор, пока не появились способы весьма точно определять контуры объектов на изображениях ([см./например] Mask R-CNN). Использование методов сегментации изображения позволяет добиться хороших результатов на существующих датасетах.
<br clear=all>
== Существующие модели и датасеты ==
Датасеты, способствовавшие исследованиям в области распознавания изогнутого текста:
*Boundary
<br clear=all>
== Датасеты ==
Сейчас TotalText и SCUT-CTW1500 все реже используются как два независимых датасета. Датасет ArT объединил их в себе и стал самым большим датасетом изогнутого текста.
<br clear=all>
== Модели для детекции ==
=== TextSnake (2018) ===
 
==== Краткое описание и особенности ====
TextSnake представляет текст в виде области текста (линия, обводящая текcт по периметру), делящейся внутри в виде последовательности кругов разного радиуса, расположенных всегда строго в центре области текста.
[[file:TextSnakeRepresentation.png|300px|left|thumb|Как TextSnake представляет текст]]
<br clear=all>
 
==== Архитектура ====
TextSnake использует сверточную нейронную сеть, подробная архитектура которой представлена на изображении:
[[file:TextSnakeArchitecture.png|500px|left|thumb|Архитектура TextSnake]]
<br clear=all>
 
==== Точность ====
F-мера:
=== TextFuseNet (2020) ===
 
==== Краткое описание и особенности ====
Основной особенностью TextFuseNet является выделение бóльшего количества признаков и их слияние для более точного определения текстовых областей. TextFuseNet опирается на Mask R-CNN и Mask TextSpotter и рассматривает детекцию текста как задачу сегментации. Но отличительной особенностью данной модели является выделение признаков на трёх уровнях: буквенном, словесном и глобальном.
<br clear=all>
Общая архитектура TextFuseNet представлена выше. Для получения глобального представления используется семантическая сегментация. Далее, с помощью Mask R-CNN в ветвях Detection и Mask определяются признаки на буквенном и словесном уровнях. Для слияния уровней используется модуль multi-path fusion (представлено снизу), что позволяет TextFuseNet изучать более дифференцированное представление и выдавать более точные результаты детекции текста.
<br clear=all>
[[file:tfn_mpf.png|500px|left|thumb|Работа модуля multi-path fusion]]
<br clear=all>
 
==== Точность ====
F-мера:
*Total-Text: 87.1%
*CTW1500: 86.6%
 
<br clear=all>
=== PolyPRNet ===
=== PolyPRNet (2020) ===
==== Краткое описание и особенности ====
Отличительной чертой PolyPRNet является способ представления текста. Для области с текстом модель определяет центральную линию как полином степени n. Эта центральная линия определяет общую форму и плавность текста. Для её построения используется набор k путевых точек, расположенных на медиальной оси текстовой области (полиномиальная центральная линия должна максимально точно проходить путевые точки). Для описания таких локальных свойств, как ширина линии (т.е. высота текста) и ориентация, используется набор m линий широты. Линия широты пересекается с центральной линией, и описывается с помощью параметров xi, yi, la, lb и θi, где xi и yi - координаты начала линии широты, la и lb - длина различных частей линии, θi - угол линии широты относительно оси y. Геометрическая модель текстовой области состоит из центральной линии {an, an-1,.. a0} и параметров {xi, yi, lai, lbi, θi} линий широты.
<br clear=all>
[[file:Pprnet text.png|800px|thumb|left|Геометрическая модель текстовой области PolyPRNet]]
<br clear=all>
 
==== Архитектура ====
PolyPRNet использует двухступенчатую структуру на основе R-CNN. Схема архитектуры представлена ниже.
[[file:Pprnet arch.png|800px|left|thumb|Архитектура PolyPRNet]]
<br clear=all>
 
==== Точность ====
F-мера:
*Total-Text: 84.6%
*CTW1500: 83.4%
<br clear=all>
== Модели для распознавания ==
==== Краткое описание и особенности ====
Текст на изображениях часто оказывается не просто изогнут, а деформирован разными способами и в нескольких направлениях (например, изогнутый текст + перспектива). Это учитывалось при разработке выпрямляющего модуля MORAN, что и является отличительной особенностью этой модели.
<br clear=all>
[[Файл:Moran morn.png|thumb|left|200px|Схема выпрямления]]
<br clear=all>
 
==== Архитектура ====
 
[[Файл:Moran arch.png|600px|thumb|right|Архитектура MORAN]]
 
MORAN состоит из двух частей: MORN (Multi-Object Rectification Network) и ASRN (Attention-based Sequence Recognition Network):
*MORN отвечает за выпрямление. Архитектура MORN представлена в таблице ниже. За каждым (за исключением последнего) свёрточным слоем следует слой батчевой нормализации и слой ReLU. MORN делит изображение на несколько частей, после чего предсказывает смещение для каждой части. Предсказанное смещение используется для выпрямления.
 
[[Файл:Moran morn arch.png|250px|thumb|left|Архитектура MORN]]
<br clear=all>
 
*ASRN отвечает за распознавание. Архитектура ASRN представлена в таблице ниже. Основной структурой ASRN является фреймворк CNN-BLSTM. В верхних слоях CRNN применяется одномерный механизм внимания. Далее используется attention-based декодер (GRU), основанный на RNN.
 
[[Файл:Moran asrn arch.png|250px|thumb|left|Архитектура ASRN]]
<br clear=all>
*ICDAR'15: 68.8%
*CUTE80: 77.4%
<br clear=all>
== Модели end-to-end ==
=== CRAFTS (2020) ===
==== Краткое описание и особенности ====
CRAFTS {{---}} это полноценный end-to-end фреймворк, способный не только к детекции, но и к распознаванию. Его часть, отвечающая за детекцию, показывает наилучшие результаты, так же, как и часть, отвечающая за распознавание без словаря.
=== MANGO (2021) ===
 
==== Краткое описание и особенности ====
MANGO {{---}} один из самых удачных end-to-end фреймворков. Вероятно, такого успеха его авторы добились благодаря необычной для таких моделей внутренней архитектуре. Обычно E2E модели работают в два этапа: детекция и распознавание. Слой детекции выделяет и выпрямляет области текста, которые затем передаются в слой распознавания. Такой подход вызывает трудности в обучении, так как результат распознавания сильно зависит от результата детекции, но обучать два этих слоя одновременно и взаимно - сложная задача. Ученые ищут способы решения этой проблемы. Разработчики MANGO отказались от подобной архитектуры и делегировали обе задачи одному единственному слою. Именно поэтому MANGO не возможно протестировать на качество детекции - в этой модели этап детекции неразделим с этапом распознавания. MANGO является одним из первооткрывателей такой архитектуры и доказывает, что она не просто жизнеспособна, но и весьма успешна.
*CTW1500 (E2E, без словаря): 58.9%
*CTW1500 (E2E, со словарём): 78.7%
<br clear=all>
<br clear=all>
=== TextPerceptron (2020) ===
==== Краткое описание и особенности: ====
Text Perceptron - это E2E модель, состоящая из трёх частей: модуль детекции, Shape Transform Module (STM, "модуль трансформации формы") и модуль распознавания текста. Модуль детекции описывает текстовую область с помощью четырёх субобластей: центр, начало, конец и вертикальная (верх/низ) область. Это сделано для упрощения определения направления чтения. STM необходим для устранения несовместимости между модулем детекции и модулем распознавания. Модуль распознавания генерирует итоговую символьную последовательность. Каждый этап может влиять на предшествующий ему этап, сигнализируя соответствующему модулю о необходимости дополнительной настройки.
<br clear=all>
[[Файл:Tperc sch.png|500px|thumb|left|Схема работы TextPerceptron]]
<br clear=all>
==== Архитектура: ====
Детектор текста использует ResNet и Feature Pyramid Network (FPN) как основу, и реализуется путем одновременного изучения трех задач: многоклассовой семантической сегментации с учетом порядка, регрессии угла и регрессии смещения границ. STM отвечает за объединение детекции и распознания. Для этого STM генерирует доверительные точки и настраивает их позиции, на основе чего "выпрямляет" текст с помощью TPS (Thin-plate splines) для дальнейшего распознавания. В модуле распознавания может использоваться любой sequence-based метод.
<br clear=all>
[[file:Tperc arch.png|800px|left|thumb|Архитектура TextPerceptron]]
<br clear=all>
 
==== Точность: ====
F-мера:
*Total-Text (E2E, без словаря): 69.7%
*Total-Text (E2E, со словарём): 78.3%
 
<br clear=all>
=== Boundary (2020) ===
==== Краткое описание и особенности ====
 
[[Файл:Bound stgs.png|500px|thumb|right|Стадии работы Boundary]]
 
Boundary при детекции использует граничные точки, чтобы максимально точно повторить контуры текстовой области. После, используя граничные точки, текст выравнивают (приводят к виду, подходящему для распознающего модуля). Перед определением граничных точек заранее определяются "коробки", в которых может находиться текст.
<br clear=all>
*Total-Text (Detection): 87.0%
*Total-Text (E2E, без словаря): 64.1%
 
<br clear=all>
=== Mask TextSpotter (2018) ===
 
==== Краткое описание и особенности ====
Mask TextSpotter является одной из первых E2E моделей, тренированных на датасете TotalText. Она не была призвана распознавать именно изогнутый текст, но отличительной чертой модели Mask TextSpotter являлось как раз то, что она сравнительно неплохо с ним справлялась. Разработчики Mask TextSpotter применили недавно опубликованную нейронную сеть с архитектурой Mask R-CNN для выделения контуров объектов на изображении, которая и позволила сделать шаг вперед в распознавании изогнутого текста.
[[file:ArchitectureMaskTextSpotter.png|800px|left|thumb|Архитектура Mask TextSpotter]]
<br clear=all>
 
==== Точность ====
TotalText:
238
правок

Навигация