Изменения

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

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

354 байта добавлено, 14:26, 23 января 2021
Нет описания правки
<!--{{В разработке}}-->
'''[[:Распознавание_текста_на_изображении|Распознавание текста]]''' {{---}} важная задача машинного обучения, решение которой позволит получать огромное количество информации из окружающего мира без участия человека. '''Распознавание изогнутого текста''', в частности, одна из проблем, лежащих на пути решения данной задачи. <br>
=== 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 открытом доступе].
[[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>]]
<br clear=all>
==== Архитектура ====
<br>
=== ESIR: End-to-end Scene Text Recognition via Iterative Image Rectification (2018) ===
 
[[Файл:Esir line.png|300px|thumb|left|Рисунок 8. Повторяющая линия<ref name="esir"/>]]
ESIR использует итеративное выпрямление изображения, которое исправляет искажения, связанные с перспективой и кривизной. Для этого с помощью полинома моделируется средняя линия текстовой области. В дополнение, определяются направление и высота области текста на множестве сегментов линии. Среднюю линию с дополнительными параметрами назовём "повторяющей линией" (см. Рисунок 8).
<br>
Статья о модели доступна по [https://arxiv.org/pdf/1812.05824.pdf ссылке].
 
[[Файл:Esir line.png|300px|thumb|left|Рисунок 8. Повторяющая линия<ref name="esir"/>]]
<br clear=all>
[[Файл: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|600px650px|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 делит изображение на несколько частей, после чего предсказывает смещение для каждой части. Предсказанное смещение используется для выпрямления.[[Файл:Moran morn arch.png|250px|thumb|left|Рисунок 13. Архитектура MORN<ref name="moran"/>]]<br clear=all>*ASRN отвечает за распознавание. Архитектура ASRN представлена в таблице ниже (см. Рисунок 14). Основной структурой ASRN является фреймворк CNN-BLSTM (архитектура, в которой используется [[:Сверточные_нейронные_сети|CNN]] для извлечения признаков и двунаправленная [[:Долгая_краткосрочная_память|LSTM]] для предсказания последовательностей)<ref name="cnnblstm">[https://arxiv.org/pdf/1411.4389.pdf J. Donahue, L. A. Hendricks, M. Rohrbach, S. Venugopalan, S. Guadarrama, K. Saenko, T. Darrell "Long-term Recurrent Convolutional Networks for Visual Recognition and Description" (2016)]</ref>. В верхних слоях CRNN<ref name="crnn">[https://ieeexplore.ieee.org/document/7801919 B. Shi, X. Bai, and C. Yao, "An end-to-end trainable neural network for image-based sequence recognition and its application to scene text recognition" (2017)]</ref> применяется одномерный механизм внимания. Далее используется attention-based декодер (GRU) <ref name="gru">[https://arxiv.org/pdf/1406.1078.pdf K. Cho, B. van Merrienboer, C. Gulcehre, D. Bahdanau, F. Bougares, H. Schwenk, Y. Bengio, "Learning phrase representations using RNN encoderdecoder for statistical machine translation" (2014)]</ref>, основанный на [[:Рекуррентные_нейронные_сети|RNN]].{|-|[[Файл:Moran morn arch.png|300px|thumb|right|Рисунок 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|250px300px|thumb|leftright|Рисунок 14. Архитектура ASRN<ref name="moran"/>]]-->
<br clear=all>
238
правок

Навигация