История алгоритма CTPN
Алгоритм CTPN предлагается для следующих точек:
-
Предположим, что текст горизонтальный
-
Текст можно рассматривать как состоящий из каждой «буквы». Буквы здесь можно рассматривать как небольшие фрагменты
Причина этой идеи в том, что алгоритм, основанный на общем обнаружении цели, трудно адаптировать к сцене обнаружения текста, такой как текст на приведенном выше рисунке, длина которого сильно различается. Поэтому автор разделяет текст в горизонтальном направлении, делит его на каждую маленькую часть, затем преобразует обнаружение текстовых строк в обнаружение маленьких частей и, наконец, использует правила для объединения небольших частей, принадлежащих одной горизонтальной строке, в текстовые строки. Упрощать.
Точка инноваций CTPN
Нововведения CTPN в основном включают в себя следующие три пункта:
-
Текстовая строка делится на фрагменты для обнаружения, так что в процессе обнаружения необходимо установить априорную привязку только к высоте текста.
-
Автор считает текст хронологическим, т. е. соответствующим читательским привычкам, слева направо. Поэтому автор присоединяется к RNN, чтобы получить эту семантику.
-
Алгоритм постобработки: алгоритм соединения текста
Различия между сетевыми структурами CTPN и RPN
Как показано на рисунке выше, это рисунок RPN, а рисунок справа — структура сети CTPN. Видно, что CTPN сам по себе является RPN, единственное отличие состоит в том, что двунаправленный LSTM добавлен для получения информации в направлении временного ряда, чтобы модель могла последовательно предсказывать небольшие фрагменты текста. Конечно, основные отличия здесь следующие:
-
Двунаправленный LSTM кодирует направление текстовой строки
-
Метки построены по-разному: CTPN использует горизонтальный блок среза в качестве цели регрессии.
Детали должны быть поняты в соответствии со следующим рисунком:
Общая структура CTPN:
-
Магистральная сеть — VGG16, ее выход — выход слоя conv5, а шаг — 16. То есть один пиксель на карте признаков соответствует 16 пикселям исходного изображения.
-
Карта функций кодирует ввод в BLSTM. Для выходных данных conv5 (N, C, H, W) направление W используется в качестве направления временного ряда, поэтому необходимо изменить форму, чтобы получить (N, W, H * C) в качестве входных данных LSTM.
-
Выходные данные BILSTM вводятся в FC, а окончательная модель имеет три выхода: смещение координат (y, h) текстового фрагмента. Автор не предсказал здесь начальные координаты, потому что эта часть имеет фиксированное смещение в процессе построения метки, поэтому необходимо знать только y и h текста, и с использованием фиксированного смещения можно построить полную текстовую строку.
-
Калибровка границ: поскольку модель не ограничивает начало текста, предсказание небольших фрагментов с началом и концом текста будет несколько превышено. Поэтому требуется небольшая доработка.
Конструкция этикетки
Как показано на рисунке выше, с учетом поля текстовой аннотации здесь (x, y, w, h). Автор разбивает по горизонтали со смещением 16 пикселей. В результате получается серия небольших текстовых фрагментов. Здесь левая и правая стороны отмечены красными маленькими кусочками, и автор использует их (маленькие кусочки, которые находятся в пределах 50 пикселей от левого и правого концов) в качестве метки во время уточнения стороны, которая используется, чтобы ограничить сеть для исправления начальная и конечная точки текста. Что касается причины, по которой смещение здесь равно 16, то это потому, что шаг conv5 равен 16, что эквивалентно ширине 16, соответствующей метке одного пикселя на карте объектов. Конечно, что касается рецептивного поля здесь, рецептивное поле в conv5 имеет размер 228x228, поэтому максимальная высота якоря текстовой строки не может превышать 228. Если она превышает, сеть не может хорошо предсказать.
сетевой выход
Среди них структура вертикальной координаты представлена следующей формулой:
Здесь C — координата центра якоря, а h — высота якоря. Верхняя и нижняя линии соответствуют относительному положению прогнозируемого значения и привязки, а также истинному значению и относительному положению привязки.
Исправление краевых анкеров:
В дополнение ко всем маленьким кусочкам регрессии y, h красный якорь также нуждается в дополнительной горизонтальной координате регрессии x, формула выглядит следующим образом:
Принцип аналогичен методу расчета в указанном выше вертикальном направлении, и рассчитывается только анкер на границе.
Алгоритмы постобработки: построение текстовой строки
Схему текстовой строки см. в колонке Zhihu https://zhuanlan.zhihu.com/p/34757009.
резюме
Двунаправленный LSTM в CTPN слишком громоздкий, поэтому нужно подумать, чем его заменить. Я обнаружил, что кто-то использовал conv1x7 для замены двухстороннего LSTM и сам экспериментировал с ним.Выше показан рендеринг. Хотя алгоритм CTPN является алгоритмом 2016 года, его обнаружение горизонтальных длинных линий также соответствует промышленному уровню, а сам алгоритм является надежным. И этот алгоритм также является одним из приложений RPN в области обнаружения текста. CTPN так много объясняет, но вам также нужно прочитать статью и прочитать код.
Ссылка на код и ссылка на статью выглядят следующим образом: