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

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

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 1: Строка 1:
<!--{{В разработке}}-->
+
{{В разработке}}
  
 
'''[[:Распознавание_текста_на_изображении|Распознавание текста]]''' {{---}} важная задача машинного обучения, решение которой позволит получать огромное количество информации из окружающего мира без участия человека. '''Распознавание изогнутого текста''', в частности, одна из проблем, лежащих на пути решения данной задачи. <br>
 
'''[[:Распознавание_текста_на_изображении|Распознавание текста]]''' {{---}} важная задача машинного обучения, решение которой позволит получать огромное количество информации из окружающего мира без участия человека. '''Распознавание изогнутого текста''', в частности, одна из проблем, лежащих на пути решения данной задачи. <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>). Использование методов сегментации изображения позволяет добиться хороших результатов на существующих наборах данных.
+
В решении задачи распознавания текста двумя основными составляющими являются определение области текста и распознавание содержимого области. В сообществе исследователей выделяют три разных вида ориентации текста: 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>
 
<br>
 
В этой статье будут описаны наборы данных, поспособствовавшие исследованиям, а также новейшие и наиболее удачные модели, которые показывают хорошие результаты вне зависимости от ориентации текста. Модели разделены на три категории:
 
В этой статье будут описаны наборы данных, поспособствовавшие исследованиям, а также новейшие и наиболее удачные модели, которые показывают хорошие результаты вне зависимости от ориентации текста. Модели разделены на три категории:
 
*модели, занимающиеся только детекцией (они находят группы букв на изображении, а распознавание непосредственно слов разработчики делегируют другим инструментам).
 
*модели, занимающиеся только детекцией (они находят группы букв на изображении, а распознавание непосредственно слов разработчики делегируют другим инструментам).
 
*модели, которые занимаются только распознаванием.
 
*модели, которые занимаются только распознаванием.
*модели, которые занимаются и детекцией, и распознаванием {{---}} сквозные модели (англ. end-to-end).
+
*модели, которые занимаются и детекцией, и распознаванием (end-to-end модели).
  
При дальнейшем чтении статьи могут возникнуть вопросы относительно методов измерения точности моделей. В качестве меры точности используется [[:Оценка_качества_в_задачах_классификации|F-мера]] (совместно с precision и recall). В задаче распознавания текста precision {{---}} это количество правильно распознанных слов из общего числа слов, которые модель сумела найти на изображениях; recall {{---}} это количество правильно распознанных слов из всех слов, представленных в наборе данных. В задаче детекции текста для различных наборов данных используются различные протоколы оценки, с помощью которых определяется recall и precision, потом высчитывается F-мера.
+
При дальнейшем чтении статьи могут возникнуть вопросы относительно методов измерения точности моделей. Абсолютное большинство исследователей выбирают [[:Оценка_качества_в_задачах_классификации|F-меру]] в качестве меры точности (естественно, совместно с precision и recall). В задаче распознавания текста precision {{---}} это количество правильно распознанных слов из общего числа слов, которые модель сумела найти на изображениях; recall {{---}} это количество правильно распознанных слов из всех слов, представленных в наборе данных. В задаче детекции текста для различных наборов данных используются различные протоколы оценки, с помощью которых определяется recall и precision, и только потом высчитывается F-мера.
  
 
== Наборы данных ==
 
== Наборы данных ==
  
 
=== TotalText (2017) ===
 
=== 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>, но они не привлекли особого внимания к проблеме). Поэтому справиться с произвольной формой текста многие модели попросту не могли.
+
Предшествующие TotalText'у наборы данных [[:Известные_наборы_данных|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]]<ref name="icdar03"/><ref name="icdar11"/><ref name="icdar13"/><ref name="icdar15"/> тексты встречались в единственной ориентации {{---}} горизонтальной, и на этом предположении были основаны многие ранние модели. Границы текста они определяли как прямоугольник. Это ограничивало возможности распознавания, и для привлечения внимания исследователей к этой проблеме в 2012 году был представлен набор данныхMSRA-TD500<ref name="msra"/>, включавший в себя большое количество изображений с множественной ориентацией текста (от горизонтальной отличается тем, что область с текстом находится под наклоном или/и в перспективе). Модели были усовершенствованы, и теперь определяли границы как произвольных форм четырёхугольники. Текст же изогнутой формы, несмотря на частоту появления в реальном окружении, практически не появлялся в наборах данных (искл. [[:Известные_наборы_данных|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 является ''эталон'' области (или же границ) текста. Так, в [[:Известные_наборы_данных#COCO|COCO-text]]<ref name="coco"/> эталоном области текста являлся горизонтально ориентированный прямоугольник, а вот в TotalText это был многоугольник, состоящий из множества полигонов.
+
Для привлечения внимания к этой проблеме в 2017 году был представлен набор данных TotalText, состоящий из 1555 изображений с текстом различной ориентации и содержащий в целом 9330 слов. Отличительной особенностью TotalText является ''эталон'' области (или же границ) текста. Так, в [[:Известные_наборы_данных|COCO-text]]<ref name="coco"/> эталоном области текста являлся горизонтально ориентированный прямоугольник, а вот в TotalText это был многоугольник, состоящий из множества полигонов.
  
 
В качестве протокола оценки используется DetEval<ref name="deteval">[https://perso.liris.cnrs.fr/christian.wolf/software/deteval/ C. Wolf and J.-M. Jolion, “Object count/area graphs for the evaluation of object detection and segmentation algorithms” (2006)]</ref>.
 
В качестве протокола оценки используется DetEval<ref name="deteval">[https://perso.liris.cnrs.fr/christian.wolf/software/deteval/ C. Wolf and J.-M. Jolion, “Object count/area graphs for the evaluation of object detection and segmentation algorithms” (2006)]</ref>.
Строка 32: Строка 32:
  
 
=== TextSnake (2018) ===
 
=== 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> даёт возможность "выпрямить" текстовую область, что облегчит распознавание её содержимого.
 
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 открытом доступе].
 
<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>
 
<br clear=all>
 
==== Архитектура ====
 
==== Архитектура ====
[[Файл:Ts pip.png|500px|right|thumb|Рисунок 2. Схема работы TextSnake<ref name="textsnake"/>]]
+
[[Файл: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):
 
Схема работы 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. Архитектура TextSnake<ref name="textsnake"/>]]
+
[[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>
 
<br clear=all>
  
Строка 56: Строка 55:
  
 
==== Архитектура ====  
 
==== Архитектура ====  
[[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>]]
+
[[file:tfn_arch.png|800px|left|thumb|Рисунок 4 {{---}} [https://www.ijcai.org/Proceedings/2020/0072.pdf Архитектура TextFuseNet]]]
 
<br clear=all>
 
<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.
 
Общая архитектура 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.
Строка 65: Строка 64:
  
 
<br clear=all>
 
<br clear=all>
[[file:tfn_mpf.png|500px|left|thumb|Рисунок 5. Работа модуля multi-path fusion<ref name="textfusenet"/>]]
+
[[file:tfn_mpf.png|500px|left|thumb|Рисунок 5 {{---}} [https://www.ijcai.org/Proceedings/2020/0072.pdf Работа модуля multi-path fusion]]]
 
<br clear=all>
 
<br clear=all>
  
Строка 78: Строка 77:
 
<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>Статья о модели доступна по [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>
 
<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>]]
+
[[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>
 
<br clear=all>
  
Строка 85: Строка 84:
 
На первой стадии используется 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), чтобы вывести форму и направление потенциального текстового кандидата.  
 
На первой стадии используется 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>
 
<br clear=all>
[[file:Pprnet arch.png|800px|left|thumb|Рисунок 7. Архитектура PolyPRNet<ref name="polyprnet"/>]]
+
[[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>
 
<br clear=all>
  
Строка 95: Строка 94:
  
 
== Модели для распознавания ==
 
== Модели для распознавания ==
Распознающие текст модели в качестве входных данных принимают изображение, где должна находиться одна строка текста. Точность распознавания этих моделей тестировалась на наборах данных, где за эталон принимается прямоугольная окружающая рамка (например, 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>).
+
Распознающие текст модели в качестве входных данных принимают изображение, где должна находиться одна строка текста. Точность распознавания этих моделей тестировалась на наборах данных, где за эталон принимается прямоугольная окружающая рамка (например, CUTE80<ref name="cute"/>, 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>
 
<br>
 
=== ESIR: End-to-end Scene Text Recognition via Iterative Image Rectification (2018) ===
 
=== ESIR: End-to-end Scene Text Recognition via Iterative Image Rectification (2018) ===
 
[[Файл:Esir line.png|300px|thumb|left|Рисунок 8. Повторяющая линия<ref name="esir"/>]]
 
 
ESIR использует итеративное выпрямление изображения, которое исправляет искажения, связанные с перспективой и кривизной. Для этого с помощью полинома моделируется средняя линия текстовой области. В дополнение, определяются направление и высота области текста на множестве сегментов линии. Среднюю линию с дополнительными параметрами назовём "повторяющей линией" (см. Рисунок 8).
 
ESIR использует итеративное выпрямление изображения, которое исправляет искажения, связанные с перспективой и кривизной. Для этого с помощью полинома моделируется средняя линия текстовой области. В дополнение, определяются направление и высота области текста на множестве сегментов линии. Среднюю линию с дополнительными параметрами назовём "повторяющей линией" (см. Рисунок 8).
  
Строка 107: Строка 104:
 
<br>
 
<br>
 
Статья о модели доступна по [https://arxiv.org/pdf/1812.05824.pdf ссылке].
 
Статья о модели доступна по [https://arxiv.org/pdf/1812.05824.pdf ссылке].
 +
 +
[[Файл:Esir line.png|300px|thumb|left|Рисунок 8 {{---}} [https://arxiv.org/pdf/1812.05824.pdf "Повторяющая линия"]]]
 
<br clear=all>
 
<br clear=all>
  
 
==== Архитектура ====
 
==== Архитектура ====
 
ESIR состоит из двух частей:
 
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>]]
+
[[file:Eris loc.png|300px|thumb|right|Рисунок 9 {{---}} [https://arxiv.org/pdf/1812.05824.pdf Сеть локализации]]]
 
*Iterative Rectification Network (сеть итеративного выравнивания) (см. Рисунок 9). Сначала просчитываются параметры повторяющей линии, для чего используется сеть локализации вместе со свёртками изображений. После, основываясь на полученных параметрах, изображение выравнивается, и снова передаётся в сеть выравнивания. Этот процесс повторяется до тех пор, пока не будет достигнуто заранее установленное количество итераций. На схеме ниже (см. Рисунок 9) представлена общая схема работы Iterative Rectification Network. Детальная структура сети локализации представлена в таблице (см. Рисунок 10).
 
*Iterative Rectification Network (сеть итеративного выравнивания) (см. Рисунок 9). Сначала просчитываются параметры повторяющей линии, для чего используется сеть локализации вместе со свёртками изображений. После, основываясь на полученных параметрах, изображение выравнивается, и снова передаётся в сеть выравнивания. Этот процесс повторяется до тех пор, пока не будет достигнуто заранее установленное количество итераций. На схеме ниже (см. Рисунок 9) представлена общая схема работы Iterative Rectification Network. Детальная структура сети локализации представлена в таблице (см. Рисунок 10).
[[Файл:Esir arch.png|800px|thumb|left|Рисунок 10. Iterative Rectification Network<ref name="esir"/>]]
+
[[Файл:Esir arch.png|800px|thumb|left|Рисунок 10 {{---}} [https://arxiv.org/pdf/1812.05824.pdf Iterative Rectification Network]]]
 
<br clear=all>
 
<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).
+
*Recognition Network (сеть распознавания). Используется sequence-to-sequence модель с механизмом внимания. Система состоит из кодера и декодера. В кодировщик поступает выпрямленное изображение текста размером 32x100 пикселей. Используется 53-слойная ResNet<ref name="resnet"/> для извлечения признаков, за ResNet<ref name="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.
  
 
==== Точность ====
 
==== Точность ====
 
[[:Оценка_качества_в_задачах_классификации|F-мера]]:
 
[[:Оценка_качества_в_задачах_классификации|F-мера]]:
*[[:Известные_наборы_данных#ICDAR|ICDAR]]'15<ref name="icdar15"/>: 76.9%
+
*ICDAR'15<ref name="icdar15"/>: 76.9%
 
*CUTE80<ref name="cute"/>: 83.3%
 
*CUTE80<ref name="cute"/>: 83.3%
 
<br clear=all>
 
<br clear=all>
  
 
=== MORAN: A Multi-Object Rectified Attention Network (2019) ===
 
=== MORAN: A Multi-Object Rectified Attention Network (2019) ===
[[Файл: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 Network for Scene Text Recognition" (2019)]</ref>]]
+
[[Файл:Moran morn.png|thumb|left|200px|Рисунок 11 {{---}} [https://arxiv.org/pdf/1901.03003.pdf Схема выпрямления]]]
 
Текст на изображениях часто оказывается не просто изогнут, а деформирован разными способами и в нескольких направлениях (например, изогнутый текст + перспектива). Это учитывалось при разработке выпрямляющего модуля MORAN, что и является отличительной особенностью этой модели (см. Рисунок 11).
 
Текст на изображениях часто оказывается не просто изогнут, а деформирован разными способами и в нескольких направлениях (например, изогнутый текст + перспектива). Это учитывалось при разработке выпрямляющего модуля MORAN, что и является отличительной особенностью этой модели (см. Рисунок 11).
 
<br>Статья о модели доступна по [https://arxiv.org/pdf/1901.03003.pdf ссылке]. Реализацию этой модели можно найти в [https://github.com/sdll/moran открытом доступе].
 
<br>Статья о модели доступна по [https://arxiv.org/pdf/1901.03003.pdf ссылке]. Реализацию этой модели можно найти в [https://github.com/sdll/moran открытом доступе].
Строка 130: Строка 129:
  
 
==== Архитектура ====
 
==== Архитектура ====
[[Файл:Moran arch.png|650px|thumb|right|Рисунок 12. Архитектура всей модели MORAN<ref name="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):
 
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 делит изображение на несколько частей, после чего предсказывает смещение для каждой части. Предсказанное смещение используется для выпрямления.
+
*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|250px|thumb|left|Рисунок 13 {{---}} [https://arxiv.org/pdf/1901.03003.pdf Архитектура MORN]]]
{|-
+
<br clear=all>
|[[Файл:Moran morn arch.png|300px|thumb|right|Рисунок 13. Архитектура MORN<ref name="moran"/>]]
+
*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]].
| style="width:350px" | [[Файл:Moran asrn arch.png|300px|thumb|right|Рисунок 14. Архитектура ASRN<ref name="moran"/>]]
+
[[Файл:Moran asrn arch.png|250px|thumb|left|Рисунок 14 {{---}} [https://arxiv.org/pdf/1901.03003.pdf Архитектура ASRN]]]
|-
 
|}
 
<!--
 
[[Файл: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>
 
<br clear=all>
  
 
==== Точность ====
 
==== Точность ====
 
[[:Оценка_качества_в_задачах_классификации|F-мера]]:
 
[[:Оценка_качества_в_задачах_классификации|F-мера]]:
*[[:Известные_наборы_данных#ICDAR|ICDAR]]'15<ref name="icdar15"/>: 68.8%
+
*ICDAR'15<ref name="icdar15"/>: 68.8%
 
*CUTE80<ref name="cute"/>: 77.4%
 
*CUTE80<ref name="cute"/>: 77.4%
  
== Сквозные (end-to-end) модели ==
+
== Модели end-to-end ==
  
 
=== Mask TextSpotter (2018) ===
 
=== Mask TextSpotter (2018) ===
Mask TextSpotter является одной из первых E2E (end-to-end) моделей, тренированных на наборе данных TotalText. Она не была призвана распознавать именно изогнутый текст, но отличительной чертой модели Mask TextSpotter являлось как раз то, что она сравнительно неплохо с ним справлялась. Разработчики Mask TextSpotter применили недавно опубликованную нейронную сеть с архитектурой Mask R-CNN<ref name="rcnn"/> для выделения контуров объектов на изображении, которая и позволила сделать шаг вперед в распознавании изогнутого текста.
+
Mask TextSpotter является одной из первых E2E моделей, тренированных на наборе данных TotalText. Она не была призвана распознавать именно изогнутый текст, но отличительной чертой модели Mask TextSpotter являлось как раз то, что она сравнительно неплохо с ним справлялась. Разработчики Mask TextSpotter применили недавно опубликованную нейронную сеть с архитектурой Mask R-CNN<ref name="rcnn"/> для выделения контуров объектов на изображении, которая и позволила сделать шаг вперед в распознавании изогнутого текста.
 
<br>Статья о модели доступна по [https://openaccess.thecvf.com/content_ECCV_2018/papers/Pengyuan_Lyu_Mask_TextSpotter_An_ECCV_2018_paper.pdf ссылке]. Реализацию этой модели можно найти в [https://github.com/MhLiao/MaskTextSpotter открытом доступе].
 
<br>Статья о модели доступна по [https://openaccess.thecvf.com/content_ECCV_2018/papers/Pengyuan_Lyu_Mask_TextSpotter_An_ECCV_2018_paper.pdf ссылке]. Реализацию этой модели можно найти в [https://github.com/MhLiao/MaskTextSpotter открытом доступе].
  
Строка 161: Строка 154:
 
Затем над изображением работает 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).
 
Затем над изображением работает 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>
 
<br clear=all>
[[file:ArchitectureMaskTextSpotter.png|800px|left|thumb|Рисунок 15. Архитектура Mask 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>]]
+
[[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>
 
<br clear=all>
  
Строка 178: Строка 171:
 
CRAFTS состоит из трех слоев: слоя детекции, коммуникации и распознавания. Данные, проходя через три этих этапа, на выходе представляют собой готовый end-to-end результат в качестве распознанных слов (см. Рисунок 16).
 
CRAFTS состоит из трех слоев: слоя детекции, коммуникации и распознавания. Данные, проходя через три этих этапа, на выходе представляют собой готовый end-to-end результат в качестве распознанных слов (см. Рисунок 16).
 
<br clear=all>
 
<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>]]
+
[[file:CraftsArchitectureFull.png|800px|thumb|left|Рисунок 16 {{---}} [https://arxiv.org/pdf/2007.09629.pdf Архитектура CRAFTS]]]
 
<br clear=all>
 
<br clear=all>
 
На этапе детекции CRAFTS использует ResNet50<ref name="resnet"/> остаточную [[:Сверточные_нейронные_сети|свёрточную нейронную сеть]] для первичной обработки изображения. На основе полученного результата определяется направление и границы сначала областей текста, а затем отдельных символов в них. На выходе получается изображение с размеченными областями текста, а внутри них размеченные ориентированные конейнеры с символами (см. Рисунок 17). Данные представляются в виде таблицы признаков.
 
На этапе детекции CRAFTS использует ResNet50<ref name="resnet"/> остаточную [[:Сверточные_нейронные_сети|свёрточную нейронную сеть]] для первичной обработки изображения. На основе полученного результата определяется направление и границы сначала областей текста, а затем отдельных символов в них. На выходе получается изображение с размеченными областями текста, а внутри них размеченные ориентированные конейнеры с символами (см. Рисунок 17). Данные представляются в виде таблицы признаков.
 
<br clear=all>
 
<br clear=all>
[[file:CraftsArchitecture2.png|800px|thumb|left|Рисунок 17. Подробная схема работы слоя детекции<ref name="crafts"/>]]
+
[[file:CraftsArchitecture2.png|800px|thumb|left|Рисунок 17 {{---}} [https://arxiv.org/pdf/2007.09629.pdf Подробная схема работы слоя детекции]]]
 
<br clear=all>
 
<br clear=all>
 
Слой коммуникации принимает таблицу признаков, сгенерированную на этапе детекции, и преобразовывает ее для дальнейшей передачи в слой распознавания. Это происходит в два этапа: сначала очищение текста, потом корректировка признаков.
 
Слой коммуникации принимает таблицу признаков, сгенерированную на этапе детекции, и преобразовывает ее для дальнейшей передачи в слой распознавания. Это происходит в два этапа: сначала очищение текста, потом корректировка признаков.
Строка 190: Строка 183:
 
После очищения текста производится корректировка признаков: на каждый символ устанавливается точка внимания. Этот этап является ключевым по двум причинам. Во-первых, скорректированная таблица сама по себе облегчает работу слою распознавания, что значительно повышает его эффективность. Во-вторых, на данном этапе через откорректированную таблицу слой детекции и слой распознавания становятся зависимыми друг от друга. Это позволяет ошибке распознавания повлиять на работу слоя детекции (см. Рисунок 18). Такая связь оказывает внушительное влияние на качество обучения и, как следствие, на качество модели.
 
После очищения текста производится корректировка признаков: на каждый символ устанавливается точка внимания. Этот этап является ключевым по двум причинам. Во-первых, скорректированная таблица сама по себе облегчает работу слою распознавания, что значительно повышает его эффективность. Во-вторых, на данном этапе через откорректированную таблицу слой детекции и слой распознавания становятся зависимыми друг от друга. Это позволяет ошибке распознавания повлиять на работу слоя детекции (см. Рисунок 18). Такая связь оказывает внушительное влияние на качество обучения и, как следствие, на качество модели.
 
<br clear=all>
 
<br clear=all>
[[file:CraftsLossFlow.png|800px|thumb|left|Рисунок 18. Диаграмма распространения ошибки в CRAFTS<ref name="crafts"/>]]
+
[[file:CraftsLossFlow.png|800px|thumb|left|Рисунок 18 {{---}} [https://arxiv.org/pdf/2007.09629.pdf Диаграмма распространения ошибки в CRAFTS]]]
 
<br clear=all>
 
<br clear=all>
 
Процесс распознавания состоит из трех частей: извлечение признаков, моделирование последовательности и непосредственно распознавание (см. Рисунок 19). Успех этапа распознавания во многом зависит от правильно расставленных точек внимания. Если они смещены или утеряны, то корректное распознавание практически невозможно.
 
Процесс распознавания состоит из трех частей: извлечение признаков, моделирование последовательности и непосредственно распознавание (см. Рисунок 19). Успех этапа распознавания во многом зависит от правильно расставленных точек внимания. Если они смещены или утеряны, то корректное распознавание практически невозможно.
 
<br clear=all>
 
<br clear=all>
[[file:CraftsRecognition.png|400px|thumb|left|Рисунок 19. Архитектура слоя распознавания<ref name="crafts"/>]]
+
[[file:CraftsRecognition.png|400px|thumb|left|Рисунок 19 {{---}} [https://arxiv.org/pdf/2007.09629.pdf Архитектура слоя распознавания]]]
 
<br clear=all>
 
<br clear=all>
  
Строка 207: Строка 200:
 
<br>Статья о модели доступна по [https://arxiv.org/pdf/2002.06820.pdf ссылке].
 
<br>Статья о модели доступна по [https://arxiv.org/pdf/2002.06820.pdf ссылке].
 
<br clear=all>
 
<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>]]
+
[[Файл:Tperc sch.png|500px|thumb|left|Рисунок 20 {{---}} [https://arxiv.org/pdf/2002.06820.pdf Схема работы TextPerceptron]]]
 
<br clear=all>
 
<br clear=all>
  
Строка 213: Строка 206:
 
Детектор текста использует ResNet<ref name="resnet"/> и FPN<ref name="fpn"/> как основу, и реализуется путем одновременного изучения трех задач: многоклассовой семантической сегментации с учетом порядка, регрессии угла и регрессии смещения границ. STM отвечает за объединение детекции и распознания. Для этого STM генерирует доверительные точки и настраивает их позиции, на основе чего "выпрямляет" текст с помощью TPS (Thin-plate splines) для дальнейшего распознавания. В модуле распознавания может использоваться любой sequence-based метод. Примерная визуализация архитектуры представлена ниже (см. Рисунок 21).
 
Детектор текста использует ResNet<ref name="resnet"/> и FPN<ref name="fpn"/> как основу, и реализуется путем одновременного изучения трех задач: многоклассовой семантической сегментации с учетом порядка, регрессии угла и регрессии смещения границ. STM отвечает за объединение детекции и распознания. Для этого STM генерирует доверительные точки и настраивает их позиции, на основе чего "выпрямляет" текст с помощью TPS (Thin-plate splines) для дальнейшего распознавания. В модуле распознавания может использоваться любой sequence-based метод. Примерная визуализация архитектуры представлена ниже (см. Рисунок 21).
 
<br clear=all>
 
<br clear=all>
[[file:Tperc arch.png|800px|left|thumb|Рисунок 21. Архитектура TextPerceptron<ref name="textperceptron"/>]]
+
[[file:Tperc arch.png|800px|left|thumb|Рисунок 21 {{---}} [https://arxiv.org/pdf/2002.06820.pdf Архитектура TextPerceptron]]]
 
<br clear=all>
 
<br clear=all>
  
Строка 224: Строка 217:
  
 
=== Boundary (2020) ===
 
=== Boundary (2020) ===
[[Файл:Bound stgs.png|500px|thumb|right|Рисунок 22. Стадии работы Boundary<ref name="boundary"/>]]
+
[[Файл:Bound stgs.png|500px|thumb|right|Рисунок 22 {{---}} [https://arxiv.org/pdf/1911.09550.pdf Стадии работы Boundary]]]
 
Boundary при детекции использует граничные точки, чтобы максимально точно повторить контуры текстовой области. После, используя граничные точки, текст приводится к виду, подходящему для распознающего модуля. Перед определением граничных точек заранее определяются "коробки", в которых может находиться текст (см. Рисунок 22).
 
Boundary при детекции использует граничные точки, чтобы максимально точно повторить контуры текстовой области. После, используя граничные точки, текст приводится к виду, подходящему для распознающего модуля. Перед определением граничных точек заранее определяются "коробки", в которых может находиться текст (см. Рисунок 22).
 
<br>Статья о модели доступна по [https://arxiv.org/pdf/1911.09550.pdf ссылке].
 
<br>Статья о модели доступна по [https://arxiv.org/pdf/1911.09550.pdf ссылке].
 
<br clear=all>
 
<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>]]
+
[[Файл:Bound arch.png|800px|thumb|right|Рисунок 23 {{---}} [https://arxiv.org/pdf/1911.09550.pdf Архитектура Boundary]]]
  
 
==== Архитектура ====
 
==== Архитектура ====
Строка 251: Строка 244:
 
Первоначальная обработка изображения происходит с помощью ResNet50<ref name="resnet"/> остаточной [[:Сверточные_нейронные_сети|свёрточной нейронной сети]].
 
Первоначальная обработка изображения происходит с помощью ResNet50<ref name="resnet"/> остаточной [[:Сверточные_нейронные_сети|свёрточной нейронной сети]].
 
<br clear=all>
 
<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>]]
+
[[file:WorkflowOfMANGO.png|800px|left|thumb|Рисунок 24 {{---}} [https://arxiv.org/pdf/2012.04350.pdf Архитектура MANGO]]]
 
<br clear=all>
 
<br clear=all>
  
Строка 264: Строка 257:
 
== Сводные таблицы ==  
 
== Сводные таблицы ==  
  
=== Общие данные ===
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|+ Сводная таблица моделей для детекции
 
|+ Сводная таблица моделей для детекции
Строка 270: Строка 262:
 
! Модель !! Особенности !! Использованные методы
 
! Модель !! Особенности !! Использованные методы
 
|-
 
|-
| style="background:#eaecf0;width:100px" | <p style="text-align:center;">'''TextSnake (2018)'''</p>
+
| style="background:#eaecf0;width:100px" | <p style="text-align:center;">'''TextSnake'''</p>
 
| style="width: 400px;" | <p style="text-align:center;">Представление области текста с помощью центральной линии и множества дисков.</p>[[Файл:Ts textreg.png|300px|center]]
 
| style="width: 400px;" | <p style="text-align:center;">Представление области текста с помощью центральной линии и множества дисков.</p>[[Файл:Ts textreg.png|300px|center]]
 
| style="width: 400px;" |  <p style="text-align:center;">FCN<ref name="fcn"/> + FPN<ref name="fpn"/></p>
 
| style="width: 400px;" |  <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="background:#eaecf0;width:100px" | <p style="text-align:center;">'''TextFuseNet'''</p>
 
| style="width: 400px;" | <p style="text-align:center;">Выделение признаков на глобальном, словесном и символьном уровнях. Представление области текста с помощью маски.</p>[[Файл:Tfn textreg.png|300px|center]]
 
| 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="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="background:#eaecf0;width:100px" | <p style="text-align:center;">'''PolyPRNet'''</p>
 
| style="width: 400px;" | <p style="text-align:center;">Представление текста с помощью скелета из полиномиальной центральной линии и линий широты.</p>[[Файл:Polyprn textreg.png|300px|center]]
 
| 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>
 
| 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>
Строка 290: Строка 282:
 
! Модель !! Особенности !! Использованные методы
 
! Модель !! Особенности !! Использованные методы
 
|-
 
|-
| style="background:#eaecf0;width:100px" | <p style="text-align:center;">'''Mask TextSpotter (2018)'''</p>
+
| style="background:#eaecf0;width:100px" | <p style="text-align:center;">'''Mask TextSpotter'''</p>
 
| style="width: 400px;" | <p style="text-align:center;">Одна из первых моделей, способных определить и распознать изогнутый текст. Представление области текста с помощью маски.</p>[[Файл:Mts_textreg.png|300px|center]]
 
| 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="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="background:#eaecf0;width:100px" | <p style="text-align:center;">'''CRAFTS'''</p>
 
| style="width: 400px;" | <p style="text-align:center;">Состоит из трех слоев: детекции, коммуникации и распознавания. Слой коммуникации связывает слой детекции и распознавания и позволяет ошибке распознавания распространиться до слоя детекции. Текст представляется в трех видах: границы областей текста, границы символов и ориентированные границы символов.</p>[[Файл:CraftsText.png|300px|center]]
 
| 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="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="background:#eaecf0;width:100px" | <p style="text-align:center;">'''TextPerceptron'''</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;">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="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="background:#eaecf0;width:100px" | <p style="text-align:center;">'''Boundary'''</p>
 
| style="width: 400px;" | <p style="text-align:center;">Нанесение граничных точек при представлении текста. Использование граничных точек для выпрямления.</p>[[Файл:Boundary.png|300px|center]]
 
| 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="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)'''</p>
+
| style="background:#eaecf0;width:100px" | <p style="text-align:center;">'''MANGO'''</p>
 
| style="width: 400px;" | <p style="text-align:center;">Однослойная архитектура, сочетающая детекцию и распознавание. Элементы распознавания частично присутствуют уже на этапе детекции. На этапе распознавания остался лишь легковесный инструмент вместо полноценного слоя.</p>
 
| style="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>
 
| style="width: 400px;" | <p style="text-align:center;">ResNet50<ref name="resnet"/> + FPN<ref name="fpn"/></p>
Строка 318: Строка 310:
 
! Модель !! Особенности !! Использованные методы
 
! Модель !! Особенности !! Использованные методы
 
|-
 
|-
| style="background:#eaecf0;width:100px" | <p style="text-align:center;">'''ESIR (2018)'''</p>
+
| style="background:#eaecf0;width:100px" | <p style="text-align:center;">'''MORAN'''</p>
 +
| style="width: 400px;" | <p style="text-align:center;">Разбиение изображения на части, определение смещения каждой части изображения. Выпрямление изображения на основе предсказанных смещений.</p>[[Файл:Moran morn.png|300px|center]]
 +
| style="width: 400px;" |  <p style="text-align:center;">[[:Сверточные_нейронные_сети|CNN]] + [[:Долгая_краткосрочная_память|BiLSTM]] + GRU<ref name="gru"/></p>
 +
|-
 +
| style="background:#eaecf0;width:100px" | <p style="text-align:center;">'''ESIR'''</p>
 
| style="width: 400px;" | <p style="text-align:center;">Представление области текста с помощью скелета из полиномиальной центральной линии и дополнительных параметров (высота, ориентация). Итеративное выпрямление текста на основе просчитанных параметров.</p>[[Файл:Esir line.png|300px|center]]
 
| 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>
 
| style="width: 400px;" | <p style="text-align:center;">ResNet53<ref name="resnet"/> + [[:Долгая_краткосрочная_память|BiLSTM]]</p>
|-
 
| style="background:#eaecf0;width:100px" | <p style="text-align:center;">'''MORAN (2019)'''</p>
 
| style="width: 400px;" | <p style="text-align:center;">Разбиение изображения на части, определение смещения каждой части изображения. Выпрямление изображения на основе предсказанных смещений.</p>[[Файл:Moran morn.png|300px|center]]
 
| style="width: 400px;" |  <p style="text-align:center;">[[:Сверточные_нейронные_сети|CNN]] + [[:Долгая_краткосрочная_память|BiLSTM]] + GRU<ref name="gru"/></p>
 
 
|-
 
|-
 
|}
 
|}
<br>
 
  
=== Результаты ===
+
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|+ Общие результаты детекции на наборе данных Total-Text
 
|+ Общие результаты детекции на наборе данных Total-Text
Строка 373: Строка 364:
 
|+ Общие результаты моделей распознавания
 
|+ Общие результаты моделей распознавания
 
|-
 
|-
! Модель !! F-мера на наборе [[:Известные_наборы_данных#ICDAR|ICDAR]]'15<ref name="icdar15"/> !! F-мера на наборе данных CUTE80<ref name="cute"/>
+
! Модель !! F-мера на наборе ICDAR'15<ref name="icdar15"/> !! F-мера на наборе данных CUTE80<ref name="cute"/>
 
|-
 
|-
 
| style="background:#eaecf0;" | '''ESIR''' || 76.9 || 83.3
 
| style="background:#eaecf0;" | '''ESIR''' || 76.9 || 83.3
Строка 407: Строка 398:
  
 
[[Категория: Машинное обучение]]
 
[[Категория: Машинное обучение]]
[[Категория: Компьютерное зрение‏‎ ]]
 
[[Категория: Сверточные нейронные сети‏‎‏‎ ]]
 
[[Категория: Глубокое обучение‏‏‎ ]]
 
[[Категория: Рекуррентные нейронные сети‏‎‏‎ ]]
 

Пожалуйста, учтите, что любой ваш вклад в проект «Викиконспекты» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Викиконспекты:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

Чтобы изменить эту страницу, пожалуйста, ответьте на приведённый ниже вопрос (подробнее):

Отменить | Справка по редактированию (в новом окне)

Шаблон, используемый на этой странице: