Оптическое распознавание символов

Статья Маор Ниссан, Яир Вагшал

Визуальное сходство является основным компонентом продуктовых предложений S yte. Хотя этот продукт можно использовать сам по себе, мы также используем визуальное сходство для поддержки различных продуктов. Проблема визуального сходства в том, что оно субъективно. Некоторые рассматривают сходство как все, что имеет общие визуальные атрибуты, такие как цвет, длина рукава или материал.

Одну из проблем с визуальным сходством можно объяснить следующим образом: кто-то пытается украсить комнату предметами в одном стиле. Стиль не всегда легко выразить словами — например, что такое скандинавский дизайн в мебели и домашнем декоре?

Согласно определению, скандинавский дизайн «характеризуется минимальным, чистым подходом, который стремится сочетать функциональность с красотой. Его внимание сосредоточено на простых линиях и светлых пространствах, лишенных беспорядка».

Определение скандинавского стиля расплывчато и не содержит конкретных атрибутов и значений предметов, которые считаются скандинавским стилем. Предметы могут различаться по цвету и материалу, но по-прежнему считаются одинаковыми для потребителей и отрасли.

Еще одна проблема с визуальным сходством возникает, когда мы пытаемся предоставить результаты для схожих тем, таких как одна и та же спортивная команда, кинематографическая вселенная или состав персонажей. Например, футбольный клуб «Ливерпуль». футболки могут быть визуально похожи на футболки «Манчестер Юнайтед» по своим атрибутам (категория, тип, длина рукава), но шансы, что болельщики «Ливерпуля» захотят футболку «Манчестер Юнайтед», невелики.

Основываясь на этих наблюдениях, мы хотели идентифицировать текст, скрытый в изображениях, и использовать его в качестве входных данных для нашего механизма подобия как одного из факторов, влияющих на нашу меру расстояния. Если мы знаем, что элемент содержит атрибут или тему «Звездных войн», мы можем сопоставить другие предметы из «Звездных войн».

Оптическое распознавание символов

Оптическое распознавание символов — это модель, используемая для извлечения текста из изображений. Модели OCR используются на различных изображениях для извлечения текста из отсканированных документов, номерных знаков, изображений с рукописным текстом, многоязычного текста и многого другого.

Задача нашего проекта состояла в том, чтобы извлечь текст из продуктов одежды, таких как рубашки, головные уборы, сумки, обувь и т. д. Текст будет использоваться для получения информации о продукте, а затем рекомендации похожих товаров. Например, футболка с надписью «Нирвана» может указывать на то, что это рубашка группы в категории рок, поэтому можно предложить больше футболок рок-группы.

В этой конкретной задаче есть много типов текстов, которые модель OCR должна уметь извлекать. Каждое изображение может иметь текст с разными шрифтами, стилем почерка, фоновым шумом, кривыми, размытостью, низким разрешением и т. д. Модель должна быть надежной, чтобы обрабатывать все эти случаи, и в то же время выводить результаты достаточно быстро, чтобы их можно было использовать на практике.

В следующей статье мы подробно описываем проект, а также процесс тестирования и оценки нескольких моделей OCR. Кроме того, мы обсудим несколько способов обработки изображений и текста, которые могут помочь улучшить результаты модели OCR.

На протяжении всего процесса тестирования мы использовали следующий конвейер:

Набор данных

Набор данных, который мы использовали для тестирования конвейера OCR, содержит изображения рубашек, сумок, обуви и головных уборов с разными темами, такими как музыкальные жанры, комические персонажи, кинематографические вселенные и спортивные команды.

Показатели

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

  1. CER: коэффициент ошибок символов. ссылка на источник
  2. WER: частота ошибок в словах. ссылка на источник
  3. BLEU: дублер двуязычной оценки. ссылка на источник

И CER, и WER используют расстояние Левенштейна, которое измеряет разницу (ошибку) между двумя последовательностями строк.

Формула CER:

Пример коэффициента ошибок символов (CER):

CER может вводить в заблуждение — хороших результатов вывода персонажа может быть недостаточно для оценки производительности модели, и у нас может быть низкий уровень ошибок, несмотря на то, что в каждом слове есть ошибка. Чтобы преодолеть эту проблему, мы также используем WER, который имеет аналогичную идею, но с выводом слова.

Формула WER:

Пример доли ошибок в словах (WER):

Хотя эти две метрики охватывают вывод как символов, так и слов, этого все же недостаточно. Например, если модель извлекает все слова правильно, но в неправильном порядке, WER не даст нам хороших результатов.

Bleu дает свою оценку на основе последовательных правильных слов (n-грамм):

  • Bleu1 дает 100% вероятность успеха, когда все слова правильные (независимо от их порядка).
  • Bleu2 дает 100% вероятность успеха, когда все возможные два последовательных слова верны.
  • Bleu3 дает 100% вероятность успеха, когда все возможные три последовательных слова верны и т. д.
  • Bleu - это среднее значение всех оценок (количество оценок является параметром)

Пример BLEU2:

Модели

Существует много типов моделей OCR, и они используют многие типы глубоких сетей: CNN, RNN, Transformers (модель Vision, языковые модели), модели сегментации и т. д.

Мы протестировали следующие модели: EasyOCR, PaddleOCR, CRNN, MASTER, NRTR, RobustScanner, SAR, SATRAN, SegOCR, CRNN-STN и ABINet. Из этих моделей мы сосредоточились на двух, которые дали наилучшие результаты:

  1. ABINet. ссылка на статью
  2. PaddleOCR, PP-OCRv3. ссылка на статью

ABINet

ABINet использует модель Vision и языковую модель для распознавания текста в дикой природе, которые проходят сквозное обучение. Трубопровод ABINet:

  1. Модель Vision - ResNet + трансформатор
  2. Языковая модель - Transformer
  3. ABINet работает итеративно и использует обе модели для увеличения вероятности результата.
  4. Теоретически языковая модель может быть заменена другими модельными языками (трансформерами).

PaddleOCR, PP-OCRv3

PaddleOCR — это платформа OCR, обеспечивающая многоязычное практическое распознавание символов. Конвейер PaddleOCR:

  1. Обнаружение текста (БД): карта вероятностей расположения символов
  2. Поля обнаружения Исправление: исправляет направление текста.
  3. Распознавание текста (SVTR): преобразователь зрения, который выводит текст

Анализ ошибок моделей

Мы провели анализ ошибок для моделей, чтобы понять их чувствительность к разным типам текстов. Для этого мы использовали репозиторий TextRecognitionDataGenerator и смогли создать множество типов текстов для анализа. Выводы из анализа помогли улучшить результаты пайплайна.

Например, анализ показал, что PaddleOCR очень чувствителен к фоновому шуму и текстам под определенными углами. В случае с текстами под углом кажется, что «Выпрямление блоков обнаружения» можно улучшить, тренируясь с большим количеством примеров этих определенных углов. А в случае с фоновым шумом мы обнаружили, что удаление фонового шума на этапе предварительной обработки повышает производительность.

Предварительная обработка изображения

Цели предварительной обработки изображений:

  1. Усиление разницы между текстом и фоном (более четкие границы).

Для достижения этой цели мы попробовали следующие методы:

  • Растяните гистограмму значений пикселей, чтобы сделать более заметными различия между областями изображения (Выравнивание гистограммы, CLAHE).
  • Обнаружение краев, чтобы найти границу символов (Sobel, Canny)
  • Повышение резкости изображения и пороговое значение изображения, чтобы улучшить границы символов. (Глобальный, Адаптивное среднее, Адаптивный гауссовский)

2. Сделайте текст и фон более четкими (удалите шум с обоих, сохраняя при этом четкость границы).

Для достижения этой цели мы попробовали следующие методы:

  • Сглаживание изображений(фильтры нижних частот — гауссовский, медианный, средний, нелокальный средний)
  • Сглаживание изображений с сохранением краев(двусторонний фильтр)

Вот некоторые результаты моделей с предварительной обработкой изображений:

Наиболее эффективные предварительные процессы включали удаление шума, тогда как другие методы уменьшали результаты. Наилучшие результаты были получены при использовании двустороннего фильтра — фильтра нижних частот, учитывающего расстояние между пикселями. Чем больше расстояние, тем меньше эффект от фильтра, и поэтому он не будет сглаживать края, но будет сглаживать шум.

Окончательные результаты

Вот окончательные результаты конфигураций лучших моделей:

  • Использование двустороннего фильтра с ABINet увеличило производительность в результате символа (CER) на ~ 10,5% и в результате слова (WER) на ~ 28%.
  • При рассмотрении результата слова (WER, BLEU2, BLEU3, BLEU4) модель PaddleOCR показала лучшие результаты, чем ABINet.
  • В целом ABINet с двусторонним фильтром дает лучшие результаты, чем PaddleOCR с двусторонним фильтром, за исключением BLEU3 и BLEU4. Несмотря на то, что PaddleOCR намного быстрее, чем ABINet, это делает его более удобным в использовании.
  • В результате вышеизложенного для проекта выбран конвейер PaddleOCR с двусторонним фильтром.

В заключение мы будем использовать модель PaddleOCR с двусторонним фильтром в качестве входных данных для нашего поиска визуального сходства. Это решение позволит нам предоставлять аналогичные предложения по темам, кинематографическим вселенным, брендам, спортивным командам и любым другим темам, описанным в тексте.