Изменения

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

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

168 байт убрано, 00:25, 23 января 2021
После "рисунок [x]" заменил тире на точки
<br> Статья о модели доступна по [https://openaccess.thecvf.com/content_ECCV_2018/papers/Shangbang_Long_TextSnake_A_Flexible_ECCV_2018_paper.pdf ссылке]. Реализацию этой модели можно найти в [https://github.com/princewang1994/TextSnake.pytorch открытом доступе].
[[file:TextSnakeRepresentation.png|300px|left|thumb|Рисунок 1 {{---}} . [https://openaccess.thecvf.com/content_ECCV_2018/papers/Shangbang_Long_TextSnake_A_Flexible_ECCV_2018_paper.pdf Как TextSnake представляет текст]]]
<br clear=all>
==== Архитектура ====
[[Файл:Ts pip.png|500px|right|thumb|Рисунок 2 {{---}} . [https://openaccess.thecvf.com/content_ECCV_2018/papers/Shangbang_Long_TextSnake_A_Flexible_ECCV_2018_paper.pdf Схема работы TextSnake]]]
Схема работы TextSnake представлена справа (см. Рисунок 2). TextSnake использует [[:Сверточные_нейронные_сети|свёрточную нейронную сеть]]. Чтобы определять текст произвольной формы, используется FCN (Fully Convolutional Network)<ref name="fcn">[https://arxiv.org/pdf/1411.4038.pdf Jonathan Long, Evan Shelhamer, Trevor Darrell, "Fully Convolutional Networks for Semantic Segmentation" (2015)]</ref> модель для предсказывания геометрических атрибутов текстовых областей. С помощью FCN<ref name="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). Для сегментации используется непересекающийся набор, так как центральные линии не перекрывают друг друга. Далее извлекаются списки точек центральной оси и восстанавливаются экземпляры текста. Детальная архитектура представлена ниже (см. Рисунок 3):
[[file:TextSnakeArchitecture.png|500px|left|thumb|Рисунок 3 {{---}} . [https://openaccess.thecvf.com/content_ECCV_2018/papers/Shangbang_Long_TextSnake_A_Flexible_ECCV_2018_paper.pdf Архитектура TextSnake]]]
<br clear=all>
==== Архитектура ====
[[file:tfn_arch.png|800px|left|thumb|Рисунок 4 {{---}} . [https://www.ijcai.org/Proceedings/2020/0072.pdf Архитектура TextFuseNet]]]
<br clear=all>
Общая архитектура TextFuseNet представлена выше (см. Рисунок 4). В качестве основы для FPN<ref name="fpn"/> используется ResNet50<ref name="resnet"/>, на этом этапе извлекаются общие признаки. Выходные данные используются RPN (Region Proposal Network)<ref name="rpn"/> и ветвью Semantic Segmentation. RPN<ref name="rpn"/> используется для генерации предполагаемых текстовых областей, что используется в последующих ветках Detection и Mask.
<br clear=all>
[[file:tfn_mpf.png|500px|left|thumb|Рисунок 5 {{---}} . [https://www.ijcai.org/Proceedings/2020/0072.pdf Работа модуля multi-path fusion]]]
<br clear=all>
<br>Статья о модели доступна по [https://openaccess.thecvf.com/content/ACCV2020/papers/Shi_Accurate_Arbitrary-Shaped_Scene_Text_Detection_via_Iterative_Polynomial_Parameter_Regression_ACCV_2020_paper.pdf ссылке].
<br clear=all>
[[file:Pprnet text.png|800px|thumb|left|Рисунок 6 {{---}} . [https://openaccess.thecvf.com/content/ACCV2020/papers/Shi_Accurate_Arbitrary-shaped_Scene_Text_Detection_via_Iterative_Polynomial_Parameter_Regression_ACCV_2020_paper.pdf Геометрическая модель текстовой области PolyPRNet]]]
<br clear=all>
На первой стадии используется ResNet50 (Residual Network)<ref name="resnet">[https://arxiv.org/pdf/1512.03385.pdf He, K., Zhang, X., Ren, S., Sun, J., "Deep residual learning for image recognition" (2016)]</ref> и FPN<ref name="fpn"/>, чтобы получить карты признаков из исходного изображения. Далее используется сеть RPN<ref name="rpn">[https://arxiv.org/pdf/1506.01497.pdf Ren, S., He, K., Girshick, R.B., Sun, J., "Faster R-CNN: towards real-time object detection with region proposal networks" (2015)]</ref> для формирования набора предложенных областей текста. На второй стадии используется модуль R-CNN<ref name="rcnn"/> с ветками регрессии границы (bounding box regression) и классификации, чтобы точнее локализовать предложенные области. Так же используется модуль Polynomialbased shape Parameter Regression (PPR), чтобы вывести форму и направление потенциального текстового кандидата.
<br clear=all>
[[file:Pprnet arch.png|800px|left|thumb|Рисунок 7 {{---}} . [https://openaccess.thecvf.com/content/ACCV2020/papers/Shi_Accurate_Arbitrary-Shaped_Scene_Text_Detection_via_Iterative_Polynomial_Parameter_Regression_ACCV_2020_paper.pdf Архитектура PolyPRNet]]]
<br clear=all>
Статья о модели доступна по [https://arxiv.org/pdf/1812.05824.pdf ссылке].
[[Файл:Esir line.png|300px|thumb|left|Рисунок 8 {{---}} . [https://arxiv.org/pdf/1812.05824.pdf "Повторяющая линия"]]]
<br clear=all>
==== Архитектура ====
ESIR состоит из двух частей:
[[file:Eris loc.png|300px|thumb|right|Рисунок 9 {{---}} . [https://arxiv.org/pdf/1812.05824.pdf Сеть локализации]]]
*Iterative Rectification Network (сеть итеративного выравнивания) (см. Рисунок 9). Сначала просчитываются параметры повторяющей линии, для чего используется сеть локализации вместе со свёртками изображений. После, основываясь на полученных параметрах, изображение выравнивается, и снова передаётся в сеть выравнивания. Этот процесс повторяется до тех пор, пока не будет достигнуто заранее установленное количество итераций. На схеме ниже (см. Рисунок 9) представлена общая схема работы Iterative Rectification Network. Детальная структура сети локализации представлена в таблице (см. Рисунок 10).
[[Файл:Esir arch.png|800px|thumb|left|Рисунок 10 {{---}} . [https://arxiv.org/pdf/1812.05824.pdf Iterative Rectification Network]]]
<br clear=all>
*Recognition Network (сеть распознавания). Используется [[:Рекуррентные_нейронные_сети#Seq-2-seq_.D1.81.D0.B5.D1.82.D0.B8|sequence-to-sequence]] модель с [[:Механизм_внимания|механизмом внимания]]. Система состоит из кодера и декодера. В кодировщик поступает выпрямленное изображение текста размером 32x100 пикселей. Используется 53-слойная ResNet<ref name="resnet"/> для извлечения признаков, за ResNet следует два слоя двунаправленной [[:Долгая_краткосрочная_память|LSTM]]. Декодер использует LuongAttention<ref name="luong">[https://arxiv.org/pdf/1508.04025.pdf Minh-Thang Luong, Hieu Pham, and Christopher D. Manning, "Effective approaches to attention-based neural machine translation" (2015)]</ref> механизм. На этапе вывода используется поиск луча (beam search).
=== MORAN: A Multi-Object Rectified Attention Network (2019) ===
[[Файл:Moran morn.png|thumb|left|200px|Рисунок 11 {{---}} . [https://arxiv.org/pdf/1901.03003.pdf Схема выпрямления]]]
Текст на изображениях часто оказывается не просто изогнут, а деформирован разными способами и в нескольких направлениях (например, изогнутый текст + перспектива). Это учитывалось при разработке выпрямляющего модуля MORAN, что и является отличительной особенностью этой модели (см. Рисунок 11).
<br>Статья о модели доступна по [https://arxiv.org/pdf/1901.03003.pdf ссылке]. Реализацию этой модели можно найти в [https://github.com/sdll/moran открытом доступе].
==== Архитектура ====
[[Файл:Moran arch.png|600px|thumb|right|Рисунок 12 {{---}} . [https://arxiv.org/pdf/1901.03003.pdf Архитектура всей модели MORAN]]]
MORAN состоит из двух частей: MORN (Multi-Object Rectification Network) и ASRN (Attention-based Sequence Recognition Network) (см. Рисунок 12):
*MORN отвечает за выпрямление. Архитектура MORN представлена в таблице ниже (см. Рисунок 13). За каждым (за исключением последнего) свёрточным слоем следует слой [[:Batch-normalization|батчевой нормализации]] и слой [[:Практики_реализации_нейронных_сетей#:~:text=Функция%20ReLU%5Bправить%5D,аргумента%2C%20функция%20возвращает%20само%20число|ReLU]]. MORN делит изображение на несколько частей, после чего предсказывает смещение для каждой части. Предсказанное смещение используется для выпрямления.
[[Файл:Moran morn arch.png|250px|thumb|left|Рисунок 13 {{---}} . [https://arxiv.org/pdf/1901.03003.pdf Архитектура MORN]]]
<br clear=all>
*ASRN отвечает за распознавание. Архитектура ASRN представлена в таблице ниже (см. Рисунок 14). Основной структурой ASRN является фреймворк CNN-BLSTM (архитектура, в которой используется [[:Сверточные_нейронные_сети|CNN]] для извлечения признаков и двунаправленная [[:Долгая_краткосрочная_память|LSTM]] для предсказания последовательностей)<ref name="cnnblstm">[https://arxiv.org/pdf/1411.4389.pdf J. Donahue, L. A. Hendricks, M. Rohrbach, S. Venugopalan, S. Guadarrama, K. Saenko, T. Darrell "Long-term Recurrent Convolutional Networks for Visual Recognition and Description" (2016)]</ref>. В верхних слоях CRNN<ref name="crnn">[https://ieeexplore.ieee.org/document/7801919 B. Shi, X. Bai, and C. Yao, "An end-to-end trainable neural network for image-based sequence recognition and its application to scene text recognition" (2017)]</ref> применяется одномерный механизм внимания. Далее используется attention-based декодер (GRU) <ref name="gru">[https://arxiv.org/pdf/1406.1078.pdf K. Cho, B. van Merrienboer, C. Gulcehre, D. Bahdanau, F. Bougares, H. Schwenk, Y. Bengio, "Learning phrase representations using RNN encoderdecoder for statistical machine translation" (2014)]</ref>, основанный на [[:Рекуррентные_нейронные_сети|RNN]].
[[Файл:Moran asrn arch.png|250px|thumb|left|Рисунок 14 {{---}} . [https://arxiv.org/pdf/1901.03003.pdf Архитектура ASRN]]]
<br clear=all>
Затем над изображением работает RPN<ref name="rpn"/> нейронная сеть, которая выполняет базовый поиск областей текста на изображении. RPN<ref name="rpn"/> может выявлять символы разных форм и размеров. Уже размеченный текст более детально обрабатывается Fast R-CNN<ref name="rcnn"/> нейронной сетью. Её задачи принципиально ничем не отличаются от задач RPN<ref name="rpn"/>, Fast R-CNN<ref name="rcnn"/> лишь доводит дело до конца. Завершает работу этап детекции по маске. Сначала он разбивает полученные области текста на слова, а затем внутри слов распознает отдельные символы. На этом этапе можно настраивать локализацию. Затем данные проходят небольшой пост-процессинг перед достижением итогового результата. Примерная визуализация архитектуры представлена ниже (см. Рисунок 15).
<br clear=all>
[[file:ArchitectureMaskTextSpotter.png|800px|left|thumb|Рисунок 15 {{---}} . [https://openaccess.thecvf.com/content_ECCV_2018/papers/Pengyuan_Lyu_Mask_TextSpotter_An_ECCV_2018_paper.pdf Архитектура Mask TextSpotter]]]
<br clear=all>
CRAFTS состоит из трех слоев: слоя детекции, коммуникации и распознавания. Данные, проходя через три этих этапа, на выходе представляют собой готовый end-to-end результат в качестве распознанных слов (см. Рисунок 16).
<br clear=all>
[[file:CraftsArchitectureFull.png|800px|thumb|left|Рисунок 16 {{---}} . [https://arxiv.org/pdf/2007.09629.pdf Архитектура CRAFTS]]]
<br clear=all>
На этапе детекции CRAFTS использует ResNet50<ref name="resnet"/> остаточную [[:Сверточные_нейронные_сети|свёрточную нейронную сеть]] для первичной обработки изображения. На основе полученного результата определяется направление и границы сначала областей текста, а затем отдельных символов в них. На выходе получается изображение с размеченными областями текста, а внутри них размеченные ориентированные конейнеры с символами (см. Рисунок 17). Данные представляются в виде таблицы признаков.
<br clear=all>
[[file:CraftsArchitecture2.png|800px|thumb|left|Рисунок 17 {{---}} . [https://arxiv.org/pdf/2007.09629.pdf Подробная схема работы слоя детекции]]]
<br clear=all>
Слой коммуникации принимает таблицу признаков, сгенерированную на этапе детекции, и преобразовывает ее для дальнейшей передачи в слой распознавания. Это происходит в два этапа: сначала очищение текста, потом корректировка признаков.
После очищения текста производится корректировка признаков: на каждый символ устанавливается точка внимания. Этот этап является ключевым по двум причинам. Во-первых, скорректированная таблица сама по себе облегчает работу слою распознавания, что значительно повышает его эффективность. Во-вторых, на данном этапе через откорректированную таблицу слой детекции и слой распознавания становятся зависимыми друг от друга. Это позволяет ошибке распознавания повлиять на работу слоя детекции (см. Рисунок 18). Такая связь оказывает внушительное влияние на качество обучения и, как следствие, на качество модели.
<br clear=all>
[[file:CraftsLossFlow.png|800px|thumb|left|Рисунок 18 {{---}} . [https://arxiv.org/pdf/2007.09629.pdf Диаграмма распространения ошибки в CRAFTS]]]
<br clear=all>
Процесс распознавания состоит из трех частей: извлечение признаков, моделирование последовательности и непосредственно распознавание (см. Рисунок 19). Успех этапа распознавания во многом зависит от правильно расставленных точек внимания. Если они смещены или утеряны, то корректное распознавание практически невозможно.
<br clear=all>
[[file:CraftsRecognition.png|400px|thumb|left|Рисунок 19 {{---}} . [https://arxiv.org/pdf/2007.09629.pdf Архитектура слоя распознавания]]]
<br clear=all>
<br>Статья о модели доступна по [https://arxiv.org/pdf/2002.06820.pdf ссылке].
<br clear=all>
[[Файл:Tperc sch.png|500px|thumb|left|Рисунок 20 {{---}} . [https://arxiv.org/pdf/2002.06820.pdf Схема работы TextPerceptron]]]
<br clear=all>
Детектор текста использует ResNet<ref name="resnet"/> и FPN<ref name="fpn"/> как основу, и реализуется путем одновременного изучения трех задач: многоклассовой семантической сегментации с учетом порядка, регрессии угла и регрессии смещения границ. STM отвечает за объединение детекции и распознания. Для этого STM генерирует доверительные точки и настраивает их позиции, на основе чего "выпрямляет" текст с помощью TPS (Thin-plate splines) для дальнейшего распознавания. В модуле распознавания может использоваться любой sequence-based метод. Примерная визуализация архитектуры представлена ниже (см. Рисунок 21).
<br clear=all>
[[file:Tperc arch.png|800px|left|thumb|Рисунок 21 {{---}} . [https://arxiv.org/pdf/2002.06820.pdf Архитектура TextPerceptron]]]
<br clear=all>
=== Boundary (2020) ===
[[Файл:Bound stgs.png|500px|thumb|right|Рисунок 22 {{---}} . [https://arxiv.org/pdf/1911.09550.pdf Стадии работы Boundary]]]
Boundary при детекции использует граничные точки, чтобы максимально точно повторить контуры текстовой области. После, используя граничные точки, текст приводится к виду, подходящему для распознающего модуля. Перед определением граничных точек заранее определяются "коробки", в которых может находиться текст (см. Рисунок 22).
<br>Статья о модели доступна по [https://arxiv.org/pdf/1911.09550.pdf ссылке].
<br clear=all>
[[Файл:Bound arch.png|800px|thumb|right|Рисунок 23 {{---}} . [https://arxiv.org/pdf/1911.09550.pdf Архитектура Boundary]]]
==== Архитектура ====
Первоначальная обработка изображения происходит с помощью ResNet50<ref name="resnet"/> остаточной [[:Сверточные_нейронные_сети|свёрточной нейронной сети]].
<br clear=all>
[[file:WorkflowOfMANGO.png|800px|left|thumb|Рисунок 24 {{---}} . [https://arxiv.org/pdf/2012.04350.pdf Архитектура MANGO]]]
<br clear=all>
238
правок

Навигация