Изменения

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

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

33 012 байт добавлено, 19:13, 4 сентября 2022
м
rollbackEdits.php mass rollback
<!--{{В разработке}}-->
'''[[:Распознавание_текста_на_изображении|Распознавание текста]]''' {{---}} важная задача машинного обучения, решение которой позволит получать огромное количество информации из окружающего мира без участия человека. '''Распознавание изогнутого текста''', в частности, одна из проблем, лежащих на пути решения данной задачи.<br>
Людей== Введение ==В решении задачи распознавания текста двумя основными составляющими являются определение области текста и распознавание содержимого области. В сообществе исследователей выделяют три разных вида ориентации текста: горизонтальная (англ. horizontal), работающих в данном направлениимножественная (англ. multi-oriented), для удобства условно будем называть изогнутая (англ. curved). Очевидно, что правильность определения области текста напрямую влияет на качество работы распознающих моделей. Долгое время распознавание изогнутого текста казалось крайне сложной задачей {{---}} до тех пор, пока не появились способы весьма точно определять контуры объектов на изображениях (например, Mask R-CNN<ref name="исследователямиrcnn">[https://arxiv.org/pdf/1703.06870.pdf Mask R-CNN, Kaiming He, Georgia Gkioxari, Piotr Dollar, Ross Girshick]</ref>). Использование методов сегментации изображения позволяет добиться хороших результатов на существующих наборах данных.<br>В этой статье будут описаны наборы данных, поспособствовавшие исследованиям, а также новейшие и наиболее удачные модели, которые показывают хорошие результаты вне зависимости от ориентации текста. Модели разделены на три категории:*модели, занимающиеся только детекцией (они находят группы букв на изображении, а распознавание непосредственно слов разработчики делегируют другим инструментам).*модели, которые занимаются только распознаванием.*модели, которые занимаются и детекцией, и распознаванием {{---}} сквозные модели (англ. end-to-end).
== Вступление ==При дальнейшем чтении статьи могут возникнуть вопросы относительно методов измерения точности моделей. В решении задачи распознавания текста двумя основными составляющими являются определение области текста качестве меры точности используется [[:Оценка_качества_в_задачах_классификации|F-мера]] (совместно с precision и распознавание содержимого областиrecall). В сообществе исследователей выделяют три разных вида ориентации задаче распознавания текста precision {{-- horizontal-}} это количество правильно распознанных слов из общего числа слов, multiкоторые модель сумела найти на изображениях; recall {{-oriented--}} это количество правильно распознанных слов из всех слов, curved (услпредставленных в наборе данных. горизонтальнаяВ задаче детекции текста для различных наборов данных используются различные протоколы оценки, множественная, изогнутая). Очевидно, что правильность определения области текста напрямую влияет на качество работы распознающих моделей. Долгое время распознавание изогнутого текста казалось крайне сложной задачей - до тех порс помощью которых определяется recall и precision, пока не появились способы весьма точно определять контуры объектов на изображениях ([см./например] Mask Rпотом высчитывается F-CNN). Использование методов сегментации изображения позволяет добиться хороших результатов на существующих датасетахмера.
== Существующие модели и датасеты Наборы данных ==Датасеты, способствовавшие исследованиям в области распознавания изогнутого текста:*TotalText*SCUT-CTW1500
Здесь будут представлены только наиболее удачные модели=== TotalText (2017) ===Предшествующие TotalText'у наборы данных [[:Известные_наборы_данных#ICDAR|ICDAR]]'03<ref name="icdar03">[http://www.iapr-tc11.org/mediawiki/index.php/ICDAR_2003_Robust_Reading_Competitions S.M. Lucas et al, "ICDAR 2003 Robust Reading Competition"]</ref>, '11<ref name="icdar11">[http://www.cvc.uab.es/icdar2011competition/images/Report_RobustReading_Challenge1_final.pdf D. Karatzas, S. Robles Mestre, J. Mas, F. Nourbakhsh, P. Pratim Roy, "ICDAR 2011 Robust Reading Competition"]</ref>, '13<ref name="icdar13">[http://dagdata.cvc.uab.es/icdar2013competition/ D. Karatzas, F. Shafait, S. Uchida, M. Iwamura, L. Gomez, S. Robles, J. Mas, D. Fernandez, J. Almazan, L.P. de las Heras, "ICDAR 2013 Robust Reading Competition"]</ref> и MSRA-TD500<ref name="msra">[http://www.iapr-tc11.org/dataset/MSRA-TD500/Detecting_Texts_of_Arbitrary_Orientations_in_Natural_Images.pdf C. Yao, X. Bai, W. Liu, Y. Ma and Z. Tu, которые показывают хорошие результаты вне зависимости от ориентации "Detecting Texts of Arbitrary Orientations in Natural Images"]</ref> сыграли значимую роль в начале исследований в области распознавания текста.Мы разделим модели У наборов данных [[:Известные_наборы_данных#ICDAR|ICDAR]]<ref name="icdar03"/><ref name="icdar11"/><ref name="icdar13"/><ref name="icdar15"/> тексты встречались в единственной ориентации {{---}} горизонтальной, и на две категории: этом предположении были основаны многие ранние модели. Границы текста они определяли как прямоугольник. Это ограничивало возможности распознавания, и для привлечения внимания исследователей к этой проблеме в 2012 году был представлен набор данных MSRA-TD500<ref name="msra"/>, занимающиеся только детекцией включавший в себя большое количество изображений с множественной ориентацией текста (они находят группы букв на изображенииот горизонтальной отличается тем, а распознавание непосредственно слов разработчики делегируют другим инструментамчто область с текстом находится под наклоном или/и в перспективе). Модели были усовершенствованы, и моделитеперь определяли границы как произвольных форм четырёхугольники. Текст же изогнутой формы, несмотря на частоту появления в реальном окружении, практически не появлялся в наборах данных (искл. [[:Известные_наборы_данных#COCO|COCO-text]]<ref name="coco">[https://arxiv.org/pdf/1601.07140.pdf A. Veit, T. Matera, L. Neumann, J. Matas, S. Belongie, которые занимаются "COCO-Text: Dataset and Benchmark for Text Detection and Recognition in Natural Images"]</ref> и детекциейCUTE80<ref name="cute">[http://cs-chan.com/doc/ESWA_2014A.pdf A. Risnumawan, P. Shivakumara, C.S. Chan and C.L. Tan, "A Robust Arbitrary Text Detection System for Natural Scene Images"]</ref>, и распознаваниемно они не привлекли особого внимания к проблеме). Поэтому справиться с произвольной формой текста многие модели попросту не могли.
Модели только для детекцииДля привлечения внимания к этой проблеме в 2017 году был представлен набор данных TotalText, состоящий из 1555 изображений с текстом различной ориентации и содержащий в целом 9330 слов. Отличительной особенностью TotalText является ''эталон'' области (или же границ) текста. Так, в [[:*TextSnake*TextFuseNet*PolyPRNetИзвестные_наборы_данных#COCO|COCO-text]]<ref name="coco"/> эталоном области текста являлся горизонтально ориентированный прямоугольник, а вот в TotalText это был многоугольник, состоящий из множества полигонов.
Модели endВ качестве протокола оценки используется DetEval<ref name="deteval">[https://perso.liris.cnrs.fr/christian.wolf/software/deteval/ C. Wolf and J.-to-end:*CRAFTS*MANGO*Text Perceptron*BoundaryM. Jolion, “Object count/area graphs for the evaluation of object detection and segmentation algorithms” (2006)]</ref>.
== Датасеты == === TotalText SCUT-CTW1500 (2017) ===Предшествующие SCUT-CTW1500 должен был привлечь внимание к той же проблеме, что и TotalText. Они были опубликованы практически одновременно (TotalText'у датасеты ICDAR'0327 октября 2017, '11а SCUT-CTW1500 6 декабря 2017). Вероятно, '13 и MSRAони разрабатывались независимо друг от друга {{---TD500 сыграли значимую роль в начале исследований в области распознавания текста. У датасетов ICDAR тексты встречались в единственной ориентации }} авторы SCUT- горизонтальнойCTW1500 утверждали, и на этом предположении были основаны многие ранние модели. Границы текста что они определяли как прямоугольникявляются первооткрывателями полигонального подхода, хотя TotalText был опубликован немного раньше. Это ограничивало возможности распознавания, и для привлечения внимания исследователей Позднее авторы TotalText добавили ссылку на SCUT-CTW1500 в качестве дополнения к этой проблеме в 2012 году был представлен датасет MSRAсвоему набору данных. SCUT-TD500, включавший CTW1500 включает в себя большое количество 1500 изображений с множественной ориентацией текста (от горизонтальной отличается тем1000 для обучения, 500 для проверки), что область на которых содержится более 10 тысяч областей с текстом находится под наклоном или/и в перспективе). Модели были усовершенствованы, и теперь определяли границы на каждом изображении как произвольных форм четырёхугольникиминимум один раз встречается изогнутый текст. Текст же изогнутой формыЗдесь, несмотря на частоту появления как и в реальном окруженииTotalText, эталоном области является фигура, практически не появлялся в датасетах состоящая из нескольких полигонов. Оба этих набора данных (искл. COCO-text и CUTE80модели, но обученные на них) стали прорывом {{---}} они не привлекли особого внимания к проблеме). Поэтому справиться с произвольной формой текста многие модели попросту не моглипервые начали использовать полигональную форму.
Для привлечения внимания к этой проблеме в 2017 году был представлен датасет Сейчас TotalText, состоящий из 1555 изображений с текстом различной ориентации и содержащий в целом 9330 словSCUT-CTW1500 все реже используются как два независимых набора данных. Отличительной особенностью TotalText является ''Groundtruth'' области (или же границ) текста. Groundtruth (Набор данных ArT<ref name="основная истинаart") - это термин, используемый для обозначения информации, предоставляемой прямым наблюдением (в отличие от информации, предоставляемой предположением)>[https://arxiv.org/pdf/1909. В данном случае под термином groundtruth подразумевается значение, которое в идеале должна предсказать модель07145. Так, в COCOpdf "ICDAR2019 Robust Reading Challenge on Arbitrary-Shaped Text groundtruth области текста был прямоугольник, а вот в TotalText это был многоугольник, состоящий из множества полигонов. === SCUT-CTW1500 (2017) ===SCUT-CTW1500 должен был привлечь внимание к той же проблеме, что и TotalText. Они были опубликованы практически одновременно (TotalText 27 октября 2017, а SCUT{{-CTW1500 6 декабря 2017). Вероятно, они разрабатывались независимо друг от друга - авторы SCUT-CTW1500 утверждали, что они являются первооткрывателями полигонального подхода, хотя TotalText был опубликован немного раньше. Позднее авторы TotalText добавили ссылку на SCUT}} RRC-CTW1500 ArT"]</ref> объединил их в качестве дополнения к своему датасету. SCUT-CTW1500 включает в себя 1500 изображений (1000 для обучения, 500 для проверки), на которых содержится более 10 тысяч областей с текстом, себе и на каждом изображении как минимум один раз встречается изогнутый текст. Здесь, как и в TotalText, groundtruth - фигура, состоящая из нескольких полигонов. Оба этих датасета (а точнее, модели, обученные на них) стали прорывом - они первые начали использовать полигональный groundtruthстал самым большим набором данных изогнутого текста.
Сейчас TotalText и SCUTПротоколом оценки является PASCAL VOC<ref name="pascvoc">[https://homepages.inf.ed.ac.uk/ckiw/postscript/ijcv_voc09.pdf M. Everingham, L. Van Gool, C. K. Williams, J. Winn, and A. Zisserman, "The pascal visual object classes (voc) challenge" (2010)]</ref> протокол, где используется метрика [[:Задача_нахождения_объектов_на_изображении|IoU]] (граничное значение для определения true или false positive {{---CTW1500 все реже используются как два независимых датасета}} 0. Датасет ArT объединил их в себе и стал самым большим датасетом изогнутого текста5).
== Модели для детекции ==
=== TextSnake (2018) ===
[[file:TextSnakeRepresentation.png|300px|left|thumb|Рисунок 1. Как TextSnake представляет текст<ref name="textsnake">[https://openaccess.thecvf.com/content_ECCV_2018/papers/Shangbang_Long_TextSnake_A_Flexible_ECCV_2018_paper.pdf Shangbang Long, Jiaqiang Ruan, Wenjie Zhang, Xin He, Wenhao Wu, Cong Yao, "TextSnake: A Flexible Representation for Detecting Text of Arbitrary Shapes" (2018)]</ref>]]
TextSnake отличается уникальным способом представления области с текстом (см. Рисунок 1). Математически, экземпляр текста <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> даёт возможность "выпрямить" текстовую область, что облегчит распознавание её содержимого.
<br> Статья о модели доступна по [https://openaccess.thecvf.com/content_ECCV_2018/papers/Shangbang_Long_TextSnake_A_Flexible_ECCV_2018_paper.pdf ссылке]. Реализацию этой модели можно найти в [https://github.com/princewang1994/TextSnake.pytorch открытом доступе].
 
==== Краткое описание и особенности ====
TextSnake представляет текст в виде области текста (линия, обводящая текcт по периметру), делящейся внутри в виде последовательности кругов разного радиуса, расположенных всегда строго в центре области текста.
<br clear=all>
[[file:TextSnakeRepresentation.png|300px|left|thumb|Как TextSnake представляет текст]]
<br clear=all>
==== Архитектура ====
[[Файл:Ts pip.png|500px|right|thumb|Рисунок 2. Схема работы TextSnake<ref name="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):<br clear=all>[[file:TextSnakeArchitecture.png|500px|left|thumb|Рисунок 3. Архитектура TextSnake<ref name="textsnake"/>]]
<br clear=all>
 
==== Точность ====
[[:Оценка_качества_в_задачах_классификации|F-мера]]:
*TotalText: 78.4%
*CTW1500: 75.6%
<br clear=all>
=== TextFuseNet (2020) ===
 ==== Краткое описание и особенности ====Основной особенностью TextFuseNet является выделение бóльшего количества признаков и их слияние для более точного определения текстовых областей. TextFuseNet опирается на Mask R-CNN <ref name="rcnn"/> и Mask TextSpotter и рассматривает , рассматривая детекцию текста как задачу сегментации. Но отличительной особенностью данной модели является выделение Выделение признаков происходит на трёх уровнях: буквенномсимвольном, словесном и глобальном.<br>Статья о модели доступна по [https://www.ijcai.org/Proceedings/2020/0072.pdf ссылке]. Реализацию этой модели можно найти в [https://github.com/ying09/TextFuseNet открытом доступе].
==== Архитектура ====
[[file:tfn_arch.png|800px|left|thumb|Рисунок 4. Архитектура TextFuseNet<ref name="textfusenet">[https://www.ijcai.org/Proceedings/2020/0072.pdf Jian Ye, Zhe Chen, Juhua Liu, Bo Du, "TextFuseNet: Scene Text Detection with Richer Fused Features" (2020)]</ref>]]
<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.*Сначала в ветви Semantic Segmentation с помощью Mask R-CNN сегментации определяются признаки на глобальном уровне.*Далее в ветвях ветви Detection , извлекаются признаки на словесном уровне и объединяются с признаками глобального уровня. Полученное представление используется для регрессии окружающей рамки и классификации объектов (текста/букв).*Потом в ветви Mask определяются извлекаются признаки на буквенном символьном уровне. Все три уровня признаков (символьный, словесный и глобальный) объединяются, и словесном уровняхполученное представление используется при сегментации экземпляров (instance segmentation) для объектов, полученных в ветви Detection. Для слияния уровней При объединении признаков используется модуль multiMulti-path fusion Path Fusion, общая схема работы которого представлена ниже (представлено снизуРис. 5), что позволяет TextFuseNet изучать более дифференцированное представление и выдавать более точные результаты детекции текста.:
[[file:tfn_mpf.png|500px|left|thumb|Работа модуля multi-path fusion]]
<br clear=all>
[[file:tfn_mpf.png|500px|left|thumb|Рисунок 5. Работа модуля multi-path fusion<ref name="textfusenet"/>]]
<br clear=all>
 
==== Точность ====
[[:Оценка_качества_в_задачах_классификации|F-мера]]:
*Total-Text: 87.1%
*CTW1500: 86.6%
<br clear=all>
=== 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> линий широты (см. Рисунок 6).<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. Геометрическая модель текстовой области PolyPRNet<ref name="polyprnet">[https://openaccess.thecvf.com/content/ACCV2020/papers/Shi_Accurate_Arbitrary-Shaped_Scene_Text_Detection_via_Iterative_Polynomial_Parameter_Regression_ACCV_2020_paper.pdf Jiahao Shi, Long Chen, Feng Su, "Accurate Arbitrary-Shaped Scene Text Detection via Iterative Polynomial Parameter Regression" (2020)]</ref>]]<br clear=all>
==== Краткое описание и особенности ====
Отличительной чертой PolyPRNet является способ представления текста. Для области с текстом модель определяет центральную линию как полином степени n. Эта центральная линия определяет общую форму и плавность текста. Для её построения используется набор k путевых точек, расположенных на медиальной оси текстовой области (полиномиальная центральная линия должна максимально точно проходить путевые точки). Для описания таких локальных свойств, как ширина линии (т.е. высота текста) и ориентация, используется набор m линий широты. Линия широты пересекается с центральной линией, и описывается с помощью параметров xi, yi, la, lb и θi, где xi и yi - координаты начала линии широты, la и lb - длина различных частей линии, θi - угол линии широты относительно оси y. Геометрическая модель текстовой области состоит из центральной линии {an, an-1,.. a0} и параметров {xi, yi, lai, lbi, θi} линий широты.
 
[[file:Pprnet text.png|800px|thumb|left|Геометрическая модель текстовой области PolyPRNet]]
<br clear=all>
==== Архитектура ====
PolyPRNet использует двухступенчатую структуру на основе R-CNN<ref name="rcnn"/>. Схема архитектуры представлена ниже(см. Рисунок 7).На первой стадии используется ResNet50 и Feature Pyramid (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. Архитектура PolyPRNet<ref name="polyprnet"/>]]
<br clear=all>
 
==== Точность ====
[[:Оценка_качества_в_задачах_классификации|F-мера]]:
*Total-Text: 84.6%
*CTW1500: 83.4%
<br clear=all>
== Модели для распознавания ==
Распознающие текст модели в качестве входных данных принимают изображение, где должна находиться одна строка текста. Точность распознавания этих моделей тестируется тестировалась на датасетахнаборах данных, где за groundtruth эталон принимается текстовая "коробка" прямоугольная окружающая рамка (например, CUTE80<ref name="cute"/>, [[:Известные_наборы_данных#ICDAR|ICDAR]]'15<ref name="icdar15">[https://rrc.cvc.uab.es/files/Robust-Reading-Competition-Karatzas.pdf D. Karatzas, L. Gomez-Bigorda, A. Nicolaou, S. Ghosh, A. Bagdanov, M. Iwamura, J. Matas, L. Neumann, V. Ramaseshan Chandrasekhar, S. Lu, F. Shafait, S. Uchida, E. Valveny, "ICDAR 2015 Competition on Robust Reading"]</ref>).<br>=== ESIR: End-to-end Scene Text Recognition via Iterative Image Rectification (2018) ===
=== MORAN[[Файл: A Multi-Object Rectified Attention Network (2019) ==Esir line.png|300px|thumb|left|Рисунок 8. Повторяющая линия<ref name="esir"/>]]==== Краткое описание ESIR использует итеративное выпрямление изображения, которое исправляет искажения, связанные с перспективой и особенности ====Текст на изображениях часто оказывается не просто изогнуткривизной. Для этого с помощью полинома моделируется средняя линия текстовой области. В дополнение, а деформирован разными способами определяются направление и в нескольких направлениях высота области текста на множестве сегментов линии. Среднюю линию с дополнительными параметрами назовём "повторяющей линией" (например, изогнутый текст см. Рисунок 8). Представление центральной линии: <math>y = a_K ∗ x^K + a_{K−1} ∗ x^{K−1} + перспектива). Это учитывалось при разработке выпрямляющего модуля MORAN.. + 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> {{---}} количество линий.<br>Статья о модели доступна по [[Файлhttps:Moran morn//arxiv.png|thumb|left|200px|Схема выпрямления]org/pdf/1812.05824.pdf ссылке].
<br clear=all>
 
==== Архитектура ====
ESIR состоит из двух частей:
[[file:Eris loc.png|300px|thumb|right|Рисунок 9. Сеть локализации<ref name="esir">[https://arxiv.org/pdf/1812.05824.pdf Fangneng Zhan, Shijian Lu, "ESIR: End-to-end Scene Text Recognition via Iterative Image Rectification" (2018)]</ref>]]
*Iterative Rectification Network (сеть итеративного выравнивания) (см. Рисунок 9). Сначала просчитываются параметры повторяющей линии, для чего используется сеть локализации вместе со свёртками изображений. После, основываясь на полученных параметрах, изображение выравнивается, и снова передаётся в сеть выравнивания. Этот процесс повторяется до тех пор, пока не будет достигнуто заранее установленное количество итераций. На схеме ниже (см. Рисунок 9) представлена общая схема работы Iterative Rectification Network. Детальная структура сети локализации представлена в таблице (см. Рисунок 10).
[[Файл:Esir arch.png|800px|thumb|left|Рисунок 10. Iterative Rectification Network<ref name="esir"/>]]
<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> механизм. На этапе вывода используется алгоритм поиск луча<ref name="beam">[https://en.wikipedia.org/wiki/Beam_search Beam Search - Wikipedia]</ref> (англ. beam search).
==== Точность ====[[Файл:Moran arch.pngОценка_качества_в_задачах_классификации|600pxF-мера]]:*[[:Известные_наборы_данных#ICDAR|thumb|right|Архитектура MORANICDAR]]'15<ref name="icdar15"/>: 76.9%*CUTE80<ref name="cute"/>: 83.3%<br clear=all>
=== MORAN состоит из двух частей: MORN (A Multi-Object Rectification Rectified Attention Network(2019) и ASRN (===[[Файл:Moran morn.png|thumb|left|200px|Рисунок 11. Схема выпрямления<ref name="moran">[https://arxiv.org/pdf/1901.03003.pdf Canjie Luo, Lianwen Jin, Zenghui Sun, "MORAN: A Multi-Object Rectified Attention-based Sequence Network for Scene Text Recognition Network" (2019):]</ref>]]*MORN отвечает за выпрямление. Архитектура MORN представлена Текст на изображениях часто оказывается не просто изогнут, а деформирован разными способами и в таблице ниженескольких направлениях (например, изогнутый текст + перспектива). За каждым Это учитывалось при разработке выпрямляющего модуля MORAN, что и является отличительной особенностью этой модели (за исключением последнегосм. Рисунок 11) свёрточным слоем следует слой батчевой нормализации и слой ReLU. MORN делит изображение на несколько частей, после чего предсказывает смещение для каждой части<br>Статья о модели доступна по [https://arxiv.org/pdf/1901.03003.pdf ссылке]. Реализацию этой модели можно найти в [https://github. Предсказанное смещение используется для выпрямленияcom/sdll/moran открытом доступе].<br clear=all>
==== Архитектура ====[[Файл:Moran arch.png|650px|thumb|right|Рисунок 12. Архитектура всей модели MORAN<ref name="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 делит изображение на несколько частей, после чего предсказывает смещение для каждой части. Предсказанное смещение используется для выпрямления.*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 morn arch.png|250px300px|thumb|leftright|Рисунок 13. Архитектура MORN<ref name="moran"/>]]| style="width:350px" | [[Файл:Moran asrn arch.png|300px|thumb|right|Рисунок 14. Архитектура ASRN<ref name="moran"/>]]|-|}<!--[[Файл:Moran morn arch.png|300px|thumb|right|Рисунок 13. Архитектура MORN<ref name="moran"/>]][[Файл:Moran asrn arch.png|300px|thumb|right|Рисунок 14. Архитектура ASRN<ref name="moran"/>]]-->
<br clear=all>
==== Точность ====[[:Оценка_качества_в_задачах_классификации|F-мера]]:*ASRN отвечает за распознавание[[:Известные_наборы_данных#ICDAR|ICDAR]]'15<ref name="icdar15"/>: 68. Архитектура ASRN представлена в таблице ниже8%*CUTE80<ref name="cute"/>: 77. Основной структурой ASRN 4% == Сквозные (end-to-end) модели == === Mask TextSpotter (2018) ===Mask TextSpotter является фреймворк CNNодной из первых E2E (end-to-BLSTMend) моделей, тренированных на наборе данных TotalText. В верхних слоях CRNN применяется одномерный механизм вниманияОна не была призвана распознавать именно изогнутый текст, но отличительной чертой модели Mask TextSpotter являлось как раз то, что она сравнительно неплохо с ним справлялась. Далее используется attentionРазработчики Mask TextSpotter применили недавно опубликованную нейронную сеть с архитектурой Mask R-based декодер (GRU)CNN<ref name="rcnn"/> для выделения контуров объектов на изображении, основанный на RNNкоторая и позволила сделать шаг вперед в распознавании изогнутого текста.<br>Статья о модели доступна по [https://openaccess.thecvf.com/content_ECCV_2018/papers/Pengyuan_Lyu_Mask_TextSpotter_An_ECCV_2018_paper.pdf ссылке]. Реализацию этой модели можно найти в [https://github.com/MhLiao/MaskTextSpotter открытом доступе]. ==== Архитектура ====Для первичной обработки изображения Mask TextSpotter использует ResNet50<ref name="resnet"/> остаточную [[:Сверточные_нейронные_сети|свёрточную нейронную сеть]].
Затем над изображением работает 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:Moran asrn archArchitectureMaskTextSpotter.png|250px800px|left|thumb|left|Рисунок 15. Архитектура ASRNMask TextSpotter<ref name="masktextspotter">[https://openaccess.thecvf.com/content_ECCV_2018/papers/Pengyuan_Lyu_Mask_TextSpotter_An_ECCV_2018_paper.pdf Pengyuan Lyu, Minghui Liao, Cong Yao, Wenhao Wu, Xiang Bai, "Mask TextSpotter: An End-to-End Trainable Neural Network for Spotting Text with Arbitrary Shapes" (2018)]</ref>]]
<br clear=all>
==== Точность ====
[[:Оценка_качества_в_задачах_классификации|F-мера]]:*ICDAR'15TotalText (Detection): 6861.83%*CUTE80TotalText (E2E, без словаря): 7752.49%*TotalText (E2E, со словарём): 71.8%<br clear== Модели end-to-end ==all>
=== CRAFTS (2020) ===
 
CRAFTS {{---}} это полноценный end-to-end фреймворк, способный не только к детекции, но и к распознаванию. Его часть, отвечающая за детекцию, показывает наилучшие результаты, так же, как и часть, отвечающая за распознавание без словаря.
<br>Статья о модели доступна по [https://arxiv.org/pdf/2007.09629.pdf ссылке]. Реализацию этой модели можно найти в [https://github.com/clovaai/CRAFT-pytorch открытом доступе].
==== Архитектура ====
CRAFTS состоит из трех слоев: слоя детекции, коммуникации и распознавания. Данные, проходя через три этих этапа, на выходе представляют собой готовый end-to-end результат в качестве распознанных слов(см. Рисунок 16).
<br clear=all>
[[file:CraftsArchitectureFull.png|800px|thumb|left|Рисунок 16. Архитектура CRAFTS<ref name="crafts">[https://arxiv.org/pdf/2007.09629.pdf Youngmin Baek, Seung Shin, Jeonghun Baek, Sungrae Park, Junyeop Lee, Daehyun Nam, Hwalsuk Lee, "Character Region Attention For Text Spotting" (2020)]</ref>]]
<br clear=all>
На этапе детекции CRAFTS использует ResNet50 <ref name="resnet"/> остаточную сверточную [[:Сверточные_нейронные_сети|свёрточную нейронную сеть ]] для первичной обработки изображения. На основе полученного результата определяется направление и границы сначала областей текста, а затем отдельных символов в них. На выходе получается изображение с размеченными областями текста, а внутри них размеченные ориентированные конейнеры с символами(см. Рисунок 17). Данные представляются в виде таблицы признаков.
<br clear=all>
[[file:CraftsArchitecture2.png|800px|thumb|left|Рисунок 17. Подробная схема работы слоя детекции<ref name="crafts"/>]]
<br clear=all>
Слой коммуникации принимает таблицу признаков , сгенерированную на этапе детекции, и преобразовывает ее для дальнейшей передачи в слой распознавания. Это происходит в два этапа: сначала очищение текста, потом корректировка признаков.
Очищение текста по сути своей является корректировкой символьных полигонов. Они выпрямляются и сглаживаются, обтекая символы. Эти преобразования происходят в три этапа трансформации сплайнов с малой шириной. Для трансформации используется 20 контрольных точек. Также на этом этапе при необходимости применяется 2D-полиномиальное сглаживание для достижения еще более точной формы полигона.
Полученный результат позволяет составить откорректированную таблицу После очищения текста производится корректировка признаков, ориентированную посимвольно (: на каждый символ устанавливается точка внимания). Этот этап является ключевым по двум причинам. Во-первых, скорректированная таблица сама по себе облегчает работу рекогнайзеруслою распознавания, что значительно повышает его эффективность. Во-вторых, на данном этапе через откорректированную таблицу слой детекции и слой распознавания становятся зависимыми друг от друга. Это позволяет ошибке распознавания повлиять на работу слоя детекции(см. Рисунок 18). Такая связь оказывает внушительное влияние на качество обучения и, как следствие, на качество модели.
<br clear=all>
[[file:CraftsLossFlow.png|800px|thumb|left|Рисунок 18. Диаграмма распространения ошибки в CRAFTS<ref name="crafts"/>]]
<br clear=all>
Процесс распознавания состоит из трех частей: извлечение признаков, моделирование последовательности и непосредственно распознавание(см. Рисунок 19). Успех этапа распознавания во многом зависит от правильно расставленных точек внимания. Если они смещены или утеряны, то корректное распознавание практически невозможно.
<br clear=all>
[[file:CraftsRecognition.png|400px|thumb|left|Рисунок 19. Архитектура слоя распознавания<ref name="crafts"/>]]
<br clear=all>
 
==== Точность ====
TotalText[[:Оценка_качества_в_задачах_классификации|F-мера]]:*FTotal-мера Text (Detection): 87.4%*Total-Text (E2E, без словаря): 78.7%<br clear=all> === TextPerceptron (2020) ===Text Perceptron {{---}} это E2E модель, состоящая из трёх частей: модуль детекции, Shape Transform Module (STM, "модуль трансформации формы") и модуль распознавания текста. Модуль детекции описывает текстовую область с помощью четырёх субобластей: центр, начало, конец и вертикальная (верх/низ) область (см. Рисунок 20). Это сделано для упрощения определения направления чтения. STM необходим для устранения несовместимости между модулем детекции и модулем распознавания. Модуль распознавания генерирует итоговую символьную последовательность. Каждый этап может влиять на предшествующий ему этап, сигнализируя соответствующему модулю о необходимости дополнительной настройки.<br>Статья о модели доступна по [https://arxiv.org/pdf/2002.06820.pdf ссылке].<br clear=all>[[Файл:Tperc sch.png|500px|thumb|left|Рисунок 20. Схема работы TextPerceptron<ref name="textperceptron">[https://arxiv.org/pdf/2002.06820.pdf Liang Qiao, Sanli Tang, Zhanzhan Cheng, Yunlu Xu, Yi Niu, Shiliang Pu, Fei Wu, "Text Perceptron: Towards End-to-End Arbitrary-Shaped Text Spotting" (2020)]</ref>]]<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. Архитектура TextPerceptron<ref name="textperceptron"/>]]<br clear=all> ==== Точность ====[[:Оценка_качества_в_задачах_классификации|F-мера ]]:*Total-Text (Detection): 85.2%*Total-Text (E2E, без словаря): 69.7%*Total-Text (E2E, со словарём): 78.73%<br clear=all> === Boundary (2020) ===[[Файл:Bound stgs.png|500px|thumb|right|Рисунок 22. Стадии работы Boundary<ref name="boundary"/>]]Boundary при детекции использует граничные точки, чтобы максимально точно повторить контуры текстовой области. После, используя граничные точки, текст приводится к виду, подходящему для распознающего модуля. Перед определением граничных точек заранее определяются "коробки", в которых может находиться текст (см. Рисунок 22).<br>Статья о модели доступна по [https://arxiv.org/pdf/1911.09550.pdf ссылке].<br clear=all> [[Файл:Bound arch.png|800px|thumb|right|Рисунок 23. Архитектура Boundary<ref name="boundary">[https://arxiv.org/pdf/1911.09550.pdf Hao Wang, Pu Lu, Hui Zhang, Mingkun Yang, Xiang Bai, Yongchao Xu, Mengchao He, Yongpan Wang, Wenyu Liu, "All You Need Is Boundary: Toward Arbitrary-Shaped Text Spotting" (2020)]</ref>]] ==== Архитектура ====Boundary состоит из трёх частей: определение ориентированной "коробки" текста, определение граничных точек и распознавание текста (см. Рисунок 23). Сначала строится карта признаков с помощью ResNet50<ref name="resnet"/> и FPN<ref name="fpn"/>. После используется RPN<ref name="rpn"/> чтобы сгенерировать предполагаемые горизонтально-ориентированные области. После этого для каждой области генерируется ориентированная "коробка" через предсказывание её центральной точки, высоты, ширины и направления. Далее для каждой ориентированной коробки ищутся граничные точки, для чего используется Boundary Point Detection Network (BPDN). Опираясь на полученные граничные точки, предполагаемые области выравнивают, после чего для распознавания текста используется CRNN<ref name="crnn"/>. ==== Точность ====[[:Оценка_качества_в_задачах_классификации|F-мера]]:*Total-Text (Detection): 87.0%*Total-Text (E2E, без словаря): 64.1%<br clear=all>
=== MANGO (2021) ===
 ==== Краткое описание и особенности ====MANGO {{---}} один из самых удачных end-to-end фреймворков. Вероятно, такого успеха его авторы добились благодаря необычной для таких моделей внутренней архитектуре. Обычно E2E модели работают в два этапа: детекция и распознавание. Слой детекции выделяет и выпрямляет области текста, которые затем передаются в слой распознавания. Такой подход вызывает трудности в обучении, так как результат распознавания сильно зависит от результата детекции, но обучать два этих слоя одновременно и взаимно {{- --}} сложная задача. Ученые ищут способы решения этой проблемы. Разработчики MANGO отказались от подобной архитектуры и делегировали обе задачи одному единственному слою. Именно поэтому MANGO не возможно невозможно протестировать на качество детекции {{- --}} в этой модели этап детекции неразделим с этапом распознавания. MANGO является одним из первооткрывателей такой архитектуры и доказывает, что она не просто жизнеспособна, но и весьма успешна{{---}} среди всех существующих на данный момент E2E моделей MANGO показывает второй результат [[:Оценка_качества_в_задачах_классификации|F-меры]] как по распознаванию без словаря, так и со словарем.<br>Статья о модели доступна по [https://arxiv.org/pdf/2012.04350.pdf ссылке].
==== Архитектура ====
Итак, MANGO имеет однослойную архитектуру(см. Рисунок 24). Но это вовсе не значит, что работу этой модели нельзя разделить на этапы. В действительности MANGO, как и другие модели, не может выполнить сразу оба этапа каким-то одним инструментом. MANGO все еще разделяет свою работу на детекцию и распознавание. Особенность этой модели в том, что данные, спустя этап детекции, имеют такой вид, что рекогнайзер код на этапе распознавания представляет собой легковесный инструмент. Это достигается тем, что этап детекции уже включает в себя элементы распознавания. Разберемся как это происходит.
На вход рекогнайзеру инструменту распознавания подается так называемая позиционно-ориентированная маска внимания. Она представляет собой конкатенацию двух других масок: маски областей текста и многослойной маски точек внимания символов. Каждый слой маски символов сопоставлен с соответствующим слоем маски областей текста. Данные, представленные в таком виде (особенно важно сопоставление между двумя масками), сильно облегчают рекогнайзеру работу распознавание (выполняя часть этой работы за негопо распознаванию заранее). Тем самым рекогнайзер превращается в Поэтому на данном этапе можно оставить лишь легковесный инструмент и перестает быть отдельным слоемне писать для распознавания отдельный слой.
Первоначальная обработка изображения происходит с помощью ResNet50 <ref name="resnet"/> остаточной сверточной [[:Сверточные_нейронные_сети|свёрточной нейронной сети]].
<br clear=all>
[[file:WorkflowOfMANGO.png|800px|left|thumb|Рисунок 24. Архитектура MANGO<ref name="mango">[https://arxiv.org/pdf/2012.04350.pdf Liang Qiao, Ying Chen, Zhanzhan Cheng, Xunlu Xu, Yi Niu, Shiliang Pu, Fei Wu, "MANGO: A Mask Attention Guided One-Stage Scene Text Spotter" (2021)]</ref>]]
<br clear=all>
 
==== Точность ====
[[:Оценка_качества_в_задачах_классификации|F-мера]]:
*Total-Text (E2E, без словаря): 72.9%
*Total-Text (E2E, со словарём): 83.6%
*CTW1500 (E2E, без словаря): 58.9%
*CTW1500 (E2E, со словарём): 78.7%
<br clear=all>
=== TextPerceptron (2020) =Сводные таблицы ==
=== Общие данные ==={| class="wikitable"|+ Сводная таблица моделей для детекции|-! Модель !! Особенности !! Использованные методы|-| style="background:#eaecf0;width:100px" | <p style="text-align:center;">'''TextSnake (2018)'''</p>| style="width: 400px;" | <p style="text-align:center;">Представление области текста с помощью центральной линии и множества дисков.</p>[[Файл:Tperc schTs textreg.png|500px300px|thumbcenter]]|rightstyle="width: 400px;" |Схема работы TextPerceptron <p style="text-align:center;">FCN<ref name="fcn"/> + FPN<ref name="fpn"/></p>|-| style="background:#eaecf0;width:100px" | <p style="text-align:center;">'''TextFuseNet (2020)'''</p>| style="width: 400px;" | <p style="text-align:center;">Выделение признаков на глобальном, словесном и символьном уровнях. Представление области текста с помощью маски.</p>[[Файл:Tfn textreg.png|300px|center]]| style="width: 400px;" |<p style="text-align:center;">ResNet50<ref name="resnet"/> + FPN<ref name="fpn"/> + Mask R-CNN<ref name="rcnn"/></p>|-| style="background:#eaecf0;width:100px" | <p style="text-align:center;">'''PolyPRNet (2020)'''</p>| style="width: 400px;" | <p style="text-align:center;">Представление текста с помощью скелета из полиномиальной центральной линии и линий широты.</p>[[Файл:Polyprn textreg.png|300px|center]]| style="width: 400px;" | <p style="text-align:center;">ResNet50<ref name="resnet"/> + FPN<ref name="fpn"/> + RPN<ref name="rpn"/> + R-CNN<ref name="rcnn"/></p>|-|}
==== Краткое описание и особенности: ====
Text Perceptron - это E2E модель, состоящая из трёх частей: модуль детекции, Shape Transform Module (STM, "модуль трансформации формы") и модуль распознавания текста. Модуль детекции описывает текстовую область с помощью четырёх субобластей: центр, начало, конец и вертикальная (верх/низ) область. Это сделано для упрощения определения направления чтения. STM необходим для устранения несовместимости между модулем детекции и модулем распознавания. Модуль распознавания генерирует итоговую символьную последовательность. Каждый этап может влиять на предшествующий ему этап, сигнализируя соответствующему модулю о необходимости дополнительной настройки.
{| class="wikitable"|+ Сводная таблица моделей E2E|-! Модель !! Особенности !! Использованные методы|-| style="background:#eaecf0;width:100px" | <p style="text-align:center;">'''Mask TextSpotter (2018)'''</p>| style="width: 400px;" | <p style="text-align:center;">Одна из первых моделей, способных определить и распознать изогнутый текст. Представление области текста с помощью маски.</p>[[Файл:Mts_textreg.png|300px|center]]| style="width: 400px;" | <p style="text-align:center;">ResNet50<ref name="resnet"/> + RPN<ref name="rpn"/> + Fast R-CNN<ref name="rcnn"/></p>|-| style="background:#eaecf0;width:100px" | <p style="text-align:center;">'''CRAFTS (2020)'''</p>| style="width: 400px;" | <p style="text-align:center;">Состоит из трех слоев: детекции, коммуникации и распознавания. Слой коммуникации связывает слой детекции и распознавания и позволяет ошибке распознавания распространиться до слоя детекции. Текст представляется в трех видах: границы областей текста, границы символов и ориентированные границы символов.</p>[[Файл:CraftsText.png|300px|center]]| style="width: 400px;" | <p style="text-align:center;">ResNet50<ref name="resnet"/></p>|-| style="background:#eaecf0;width:100px" | <p style="text-align:center;">'''TextPerceptron (2020)'''</p>| style="width: 400px;" | <p style="text-align:center;">Shape Transform Module, использующий для выпрямления доверительные точки на границах текстовых областей. Взаимодействие модулей друг с другом в обе стороны.</p>[[Файл:Textperc textreg.png|300px|center]]| style="width: 400px;" | <p style="text-align:center;"> ResNet50<ref name="resnet"/> + FPN<ref name="fpn"/></p>|-| style="background:#eaecf0;width:100px" | <p style="text-align:center;">'''Boundary (2020)'''</p>| style="width: 400px;" | <p style="text-align:center;">Нанесение граничных точек при представлении текста. Использование граничных точек для выпрямления.</p>[[Файл:Boundary.png|300px|center]]| style="width: 400px;" | <p style="text-align:center;">ResNet50<ref name="resnet"/> + FPN<ref name="fpn"/> + RPN<ref name="rpn"/> + CRNN<ref name="crnn"/></p>|-| style="background:#eaecf0;width:100px" | <p style="text-align:center;">'''MANGO (2021)'''<br clear/p>| style=all"width: 400px;" | <p style="text-align:center;">Однослойная архитектура, сочетающая детекцию и распознавание. Элементы распознавания частично присутствуют уже на этапе детекции. На этапе распознавания остался лишь легковесный инструмент вместо полноценного слоя.</p>| style="width: 400px;" | <p style="text-align:center;">ResNet50<ref name="resnet"/> + FPN<ref name="fpn"/></p>|-|}
[[file:Tperc arch.png|800px|right|thumb|Архитектура TextPerceptron]]
{| class="wikitable"|+ Сводная таблица моделей распознавания|-! Модель !! Особенности !! Использованные методы|-| style="background:#eaecf0;width:100px" | <p style="text-align:center;">'''ESIR (2018)'''</p>| style= Архитектура"width: 400px;" | <p style="text-align:center;">Представление области текста с помощью скелета из полиномиальной центральной линии и дополнительных параметров (высота, ориентация). Итеративное выпрямление текста на основе просчитанных параметров.</p>[[Файл:Esir line.png|300px|center]]| style="width: 400px;" | <p style="text-align:center;">ResNet53<ref name="resnet"/> + [[:Долгая_краткосрочная_память|BiLSTM]]</p>|-Детектор текста использует ResNet и Feature Pyramid Network | style="background:#eaecf0;width:100px" | <p style="text-align:center;">'''MORAN (FPN2019) как основу, и реализуется путем одновременного изучения трех задач'''</p>| style="width: 400px;" | <p style="text-align: многоклассовой семантической сегментации с учетом порядкаcenter;">Разбиение изображения на части, регрессии угла и регрессии определение смещения границкаждой части изображения. STM отвечает за объединение детекции и распознания. Для этого STM генерирует доверительные точки и настраивает их позиции, Выпрямление изображения на основе чего предсказанных смещений.</p>[[Файл:Moran morn.png|300px|center]]| style="width: 400px;"выпрямляет| <p style=" текст с помощью TPS (Thintext-plate splines) для дальнейшего распознавания. В модуле распознавания может использоваться любой sequencealign:center;">[[:Сверточные_нейронные_сети|CNN]] + [[:Долгая_краткосрочная_память|BiLSTM]] + GRU<ref name="gru"/></p>|-based метод.|}<br>
==== Точность: Результаты ==={| class="wikitable"|+ Общие результаты детекции на наборе данных Total-Text|-! Модель !! Precision !! Recall !! F-мера:*Total|-Text | style="background:#eaecf0;" | '''CRAFTS (DetectionE2E)''' || 89.5 || 85.4 || 87.4|-| style="background: #eaecf0;" | '''TextFuseNet''' || 89.0 || 85.2%3 || 87.1*Total|-Text | style="background:#eaecf0;" | '''Boundary (E2E, без словаря)''' || 88.9 || 85.0 || 87.0|-| style="background: 69#eaecf0;" | '''PolyPRNet''' || 88.1 || 85.3 || 86.7%*Total|-| style="background:#eaecf0;" | '''Text Perceptron (E2E, со словарём)''' || 88.8 || 81.8 || 85.2|-| style="background: #eaecf0;" | '''TextSnake''' || 82.7 || 74.5 || 78.3%4<br clear=all>|-| style=== Boundary "background:#eaecf0;" | '''Mask TextSpotter (2020E2E) ===''' || 69.0 || 55.0 || 61.3|-|}
[[Файл:Bound stgs.png|500px|thumb|right|Стадии работы Boundary]]
{| class="wikitable"|+ Общие результаты E2E моделей на наборе данных Total-Text|-! Модель !! F-мера без словаря !! F-мера со словарем|-| style="background:#eaecf0;" | '''CRAFTS''' || 78.7 || -|-| style="background:#eaecf0;" | '''MANGO''' || 72.9 || 83.6|-| style= Краткое описание и особенности ====Boundary при детекции использует граничные точки, чтобы максимально точно повторить контуры текстовой области"background:#eaecf0;" | '''Text Perceptron''' || 69. После, используя граничные точки, текст выравнивают (приводят к виду, подходящему для распознающего модуля)7 || 78. Перед определением граничных точек заранее определяются 3|-| style="коробкиbackground:#eaecf0;", в которых может находиться текст| '''Boundary''' || 65.0 || 76.1<br clear|-| style=all>[[Файл"background:Bound arch#eaecf0;" | '''Mask TextSpotter''' || 52.png9 |800px|thumb71.8|right-|Архитектура Boundary]]}
==== Архитектура ====
Boundary состоит из трёх частей: определение ориентированной "коробки" текста, определение граничных точек и распознавание текста. Сначала строится карта признаков с помощью ResNet-50 и FPN (Feature Pyramid Network). После используется RPN чтобы сгенерировать предполагаемые горизонтально-ориентированные области. После этого для каждой области генерируется ориентированная "коробка" через предсказывание её центральной точки, высоты, ширины и направления. Далее для каждой ориентированной коробки ищутся граничные точки, для чего используется Boundary Point Detection Network (BPDN). Опираясь на полученные граничные точки, предполагаемые области выравнивают, после чего для распознавания текста используется CRNN.
{| class==== Точность ===="wikitable"|+ Общие результаты моделей распознавания|-! Модель !! F-мерана наборе [[:Известные_наборы_данных#ICDAR|ICDAR]]'15<ref name="icdar15"/> !! F-мера на наборе данных CUTE80<ref name="cute"/>*Total|-Text (Detection)| style="background: 87#eaecf0;" | '''ESIR''' || 76.9 || 83.0%3*Total|-Text (E2E, без словаря)| style="background: 64#eaecf0;" | '''MORAN''' || 68.8 || 77.1%4|-|}
=== Mask TextSpotter (2018) =См. также ==*[[Задача нахождения объектов на изображении]]*[[Сверточные нейронные сети]]*[[Глубокое обучение]]*[[Распознавание текста на изображении]]*[[Рекуррентные нейронные сети]]*[[Компьютерное зрение]]
==== Краткое описание и особенности ==Примечания ==Mask TextSpotter является одной из первых E2E моделей, тренированных на датасете TotalText. Она не была призвана распознавать именно изогнутый текст, но отличительной чертой модели Mask TextSpotter являлось как раз то, что она сравнительно неплохо с ним справлялась. Разработчики Mask TextSpotter применили недавно опубликованную нейронную сеть с архитектурой Mask R-CNN для выделения контуров объектов на изображении, которая и позволила сделать шаг вперед в распознавании изогнутого текста.<references/>
==Источники информации == Архитектура ====Для первичной обработки изображения * [https://github.com/cs-chan/Total-Text-Dataset TotalText Dataset GitHub page]* [https://github.com/Yuliang-Liu/Curve-Text-Detector SCUT-CTW1500 Dataset GitHub page]* [https://openaccess.thecvf.com/content_ECCV_2018/papers/Shangbang_Long_TextSnake_A_Flexible_ECCV_2018_paper.pdf TextSnake: A Flexible Representation for Detecting Text of Arbitrary Shapes, Shangbang Long, Jiaqiang Ruan, Wenjie Zhang, Xin He, Wenhao Wu, Cong Yao]* [https://www.ijcai.org/Proceedings/2020/0072.pdf TextFuseNet: Scene Text Detection with Richer Fused Features, Jian Ye, Zhe Chen, Juhua Liu, Bo Du]* [https://openaccess.thecvf.com/content/ACCV2020/papers/Shi_Accurate_Arbitrary-Shaped_Scene_Text_Detection_via_Iterative_Polynomial_Parameter_Regression_ACCV_2020_paper.pdf Accurate Arbitrary-Shaped Scene Text Detection via Iterative Polynomial Parameter Regression, Jiahao Shi, Long Chen, Feng Su]* [https://arxiv.org/pdf/1901.03003.pdf MORAN: A Multi-Object Rectified Attention Network for Scene Text Recognition, Canjie Luo, Lianwen Jin, Zenghui Sun]* [https://arxiv.org/pdf/1812.05824.pdf ESIR: End-to-end Scene Text Recognition via Iterative Image Rectification, Fangneng Zhan, Shijian Lu]* [https://arxiv.org/pdf/2007.09629.pdf Character Region Attention For Text Spotting, Youngmin Baek, Seung Shin, Jeonghun Baek, Sungrae Park, Junyeop Lee, Daehyun Nam, Hwalsuk Lee]* [https://arxiv.org/pdf/2012.04350.pdf MANGO: A Mask Attention Guided One-Stage Scene Text Spotter, Liang Qiao, Ying Chen, Zhanzhan Cheng, Xunlu Xu, Yi Niu, Shiliang Pu, Fei Wu]* [https://arxiv.org/pdf/2002.06820.pdf Text Perceptron: Towards End-to-End Arbitrary-Shaped Text Spotting, Liang Qiao, Sanli Tang, Zhanzhan Cheng, Yunlu Xu, Yi Niu, Shiliang Pu, Fei Wu]* [https://arxiv.org/pdf/1911.09550.pdf All You Need Is Boundary: Toward Arbitrary-Shaped Text Spotting, Hao Wang, Pu Lu, Hui Zhang, Mingkun Yang, Xiang Bai, Yongchao Xu, Mengchao He, Yongpan Wang Wenyu Liu]* [https://openaccess.thecvf.com/content_ECCV_2018/papers/Pengyuan_Lyu_Mask_TextSpotter_An_ECCV_2018_paper.pdf Mask TextSpotter использует ResNet50 остаточную сверточную нейронную сеть.: An End-to-End Trainable Neural Network for Spotting Text with Arbitrary Shapes, Pengyuan Lyu, Minghui Liao, Cong Yao, Wenhao Wu, Xiang Bai]
Затем над изображением работает RPN нейронная сеть, которая выполняет базовый поиск областей текста на изображении. RPN может выявлять символы разных форм и размеров. Уже размеченный текст более детально обрабатывается Fast R-CNN нейронной сетью. Её задачи принципиально ничем не отличаются от задач RPN, Fast R-CNN лишь доводит дело до конца. Завершает работу этап детекции по маске. Сначала он разбивает полученные области текста на слова, а затем внутри слов распознает отдельные символы. На этом этапе можно настраивать локализацию. Затем данные проходят небольшой пост-процессинг перед достижением итогового результата.<br clear=all>[[fileКатегория:ArchitectureMaskTextSpotter.png|800px|left|thumb|Архитектура Mask TextSpotterМашинное обучение]]<br clear=all>==== Точность ====TotalText[[Категория:Компьютерное зрение‏‎ ]]*F-мера (Detection)[[Категория: 61.3%Сверточные нейронные сети‏‎‏‎ ]]*F-мера (E2E, без словаря)[[Категория: 52.9%Глубокое обучение‏‏‎ ]]*F-мера (E2E, без словаря)[[Категория: 71.8%Рекуррентные нейронные сети‏‎‏‎ ]]
1632
правки

Навигация