OCR для маркетплейсов: Тестирование 7 моделей для автоматического сбора данных с инфографики товаров

Привет! Меня зовут Данила, я менеджер интернет-проектов в бренде бытовой техники GARLYN. Меня дико увлекает аналитика и использование ИИ-моделей для поиска лучших товаров на рынке. В этой статье расскажу про то, как я пытался собрать dataset на базе инфографики товаров с использованием компьютерного зрения.

Почему я вообще решил заняться этой задачей

Если честно, для качественной аналитики нужен качественный dataset. Если данные неполные или неверные, то увидеть зависимости и закономерности практически невозможно.

Недавно столкнулся с проблемой при анализе товаров на Wildberries. В отличие от Ozon, где селлеры выбирают значения из готовых списков, на WB поля характеристик — это просто текстовые поля, куда продавцы могут написать абсолютно любой текст. И это реально создает проблемы для аналитики.

OCR для маркетплейсов: Тестирование 7 моделей для автоматического сбора данных с инфографики товаров

Смотрите, поле мощности у пяти разных селлеров на WB может быть заполнено так:

  • 2000
  • 2000 Вт
  • две тысячи ватт
  • 2000 WT
  • (пусто)

С числовыми параметрами еще можно как-то справиться, но с дополнительными функциями или комплектацией возникают настоящие сложности.

НО после размышлений я понял, что селлеры, нацеленные на продажи, вкладываются в инфографику, где указывают основные характеристики, УТП и комплектацию. Именно там содержится максимально актуальная и полная информация!

Поэтому решил спарсить картинки инфографики для категории аэрогрилей. В моей выборке оказалось 610 артикулов и около 7,000 изображений.

Результаты на практике

Лучшая среди платных и бесплатных:

Лучшая - Google Vision. Цена за обработку одного изображения - 3 коп/изображение. 
Лучшая - Google Vision. Цена за обработку одного изображения - 3 коп/изображение. 

Лучше среди opensource моделей

EasyOCR  -- лучшая среди бесплатных
EasyOCR  -- лучшая среди бесплатных

Как я оценивал качество?

Для оценки качества OCR моделей использовал два основных метрических показателя:

CER (Character Error Rate) — процент символов, которые система OCR распознала неправильно. WER (Word Error Rate) — процент слов, которые система OCR распознала неправильно.

Чтобы объективно сравнить модели:

  1. Прогнал все модели на одном и том же наборе данных
  2. Создал gold_standard (эталонный текст) для каждой тестовой картинки вручную. Переписал весь текст с разделнием на текстовые блоки
  3. Разработал скрипт для автоматического расчета метрик CER и WER
  4. Прогнал все модели для оценки
  5. Для opensource моделей я прогонял скрипт два раза. Первая оцкенка - оценка cer & wer для не обработанного текста, а втонрой сбор - тот же текст, но после обработки его через LLM, которая испаравляла грамматические ошибки и убирала лишние символы.
в датасете было 21 картинка. Мнке понравилось, что он очень разнообразный и покрывает все кейсы - от таблиц, до текста с необычной ориентированием (сверху вниз, вертикальный текст, текст по кругу) 
в датасете было 21 картинка. Мнке понравилось, что он очень разнообразный и покрывает все кейсы - от таблиц, до текста с необычной ориентированием (сверху вниз, вертикальный текст, текст по кругу) 

Пару слов о каждой модели OCR

7. PaddleOCR (CER: 0.364700, WER: 0.690350)

OCR для маркетплейсов: Тестирование 7 моделей для автоматического сбора данных с инфографики товаров

Это открытый проект от Baidu, который должен распознавать текст на разных языках и при этом не использует много ресурсов. Если честно, показал самый высокий уровень ошибок — почти 37% неверно распознанных символов и 69% неверно распознанных слов. Самая сложная установка, так как при установке на Windows возникают проблемы, и приходится накатывать "колеса" и настраивать виртуализацию.

Что я реализовал: он умеет использовать EasyOCR как запасной вариант, когда сам не справляется (послек обаботки стоится прогноз в уверенности. С каким конфиденсом модель уверена в том, тексте, котрый она распознала). Делает всякую предобработку исходной фотографии — фильтры, повышение резкости, чтобы увеличить контрастность текста и потом проще его распознать. Если уверенность распознавания ниже 0.8, вырезает кусок картинки и пропускает через EasyOCR. В теории должно помогать с кириллицей, но на практике не особо.

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

6. Tesseract (CER: 0.238350, WER: 0.568800)

OCR для маркетплейсов: Тестирование 7 моделей для автоматического сбора данных с инфографики товаров

Это классика от HP и Google. Использует старый-добрый алгоритм выделения связных компонентов для идентификации символов. Стала основой для многих коммерческих OCR-систем еще в начале 2000-х, но сейчас уже не торт.

Быстро разворачивается, дает супер быстрый результат, но качество сильно страдает — с ошибкой в 24% символов и 57% слов плохо справляется с нестандартными шрифтами.

Вердикт: Хотя Tesseract легко настроить, для распознавания сложной инфографики его точности явно недостаточно.

5. Tesseract + Detectron2 (CER: 0.233050, WER: 0.467567)

OCR для маркетплейсов: Тестирование 7 моделей для автоматического сбора данных с инфографики товаров

Заколебался с установкой Detectron2, а по факту он дал прямо сомнительные результаты, кажется, не стоит своего времени. Суть в том, что это комбо должно сначала определять через Detectron2 типы блоков (текст, заголовок, таблица), а потом распознавать текст отдельно в каждом через Tesseract. С показателями ошибок в 23% для символов и 47% для слов имеет ограничения при работе с вертикальными текстами и сложным форматированием. Столько мороки с предобработкой — преобразование в оттенки серого, выравнивание гистограммы и вся эта муть, а толку чуть.

Вердикт: Комбинация Tesseract с Detectron2 немного улучшает WER по сравнению с базовым Tesseract, но установка и настройка этого решения настолько сложна, что не оправдывает небольшое улучшение качества.

🥇4. Победитель среди бесплатных. EasyOCR (CER: 0.216250, WER: 0.554700)

OCR для маркетплейсов: Тестирование 7 моделей для автоматического сбора данных с инфографики товаров

Это открытая Python-библиотека с моделями глубокого обучения для распознавания текста на 80+ языках. Работает в два этапа: сначала находит области текста, потом распознает символы.

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

Технически там внутри вообще трехэтапный каскад, с порогом достоверности 0.75:

1 этап. Обработка через EasyOCR

2 этап. Если значение EasyOCR ниже 0.75, то идет расчет Tesseract и Paddle OCR

3 этап. Результаты от всех моделей приводятся к общему знаменателю и выбирается лучшая

А для экономии памяти приходится переинициализировать движки каждые 100 товаров и запускать сборщик мусора после каждой картинки.

Вердикт: Лучшая из протестированных open source моделей, но для обработки большого количества изображений требует мощного GPU и значительного времени. Может быть вариантом для небольших проектов.

Важно! На этом заканчиваются "бесплатные" модели

Основная сложность - приходится их донастраивать и тратить токены на обработку

Вот на сколько улучшились значения OCR после обработки их ИИ (в качестве модели взял gpt-4.1-mini, так как она лучше должна следовать инструкциям

Промт на скрине:

OCR для маркетплейсов: Тестирование 7 моделей для автоматического сбора данных с инфографики товаров

А вот и результаты:

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

3. OCRspace API (CER: 0.079900, WER: 0.217500)

OCR для маркетплейсов: Тестирование 7 моделей для автоматического сбора данных с инфографики товаров

Коммерческий сервис с крутыми показателями — всего 8% ошибок на уровне символов и 22% на уровне слов. Хорошее решение, для многих проектов подойдет, так как есть бесплатный доступ — около 25 000 изображений в месяц и максимум 500 запросов в день. Я уже был готов оплатить, но кнопка покупки никуда не ведет, поэтому 3 место. Качество крутейшее, но это и не open source, и не платное решение — чемодан без ручки: отказываться жалко, но и полностью использовать нельзя. В техническом плане это просто REST API, отправляешь картинку с параметрами "русский язык", "bounding box", вот это всё, и получаешь в ответ текст с координатами. Минимум кода, но при этом он отлично отрабатывает очень сложные кейсы:

- таблицы

- положение текста (про вертикали, по кругу и тд)

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

Ссылка, чтобы ознакомиться с тарифами:

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

2. GPT-4-Turbo (CER: 0.094099, WER: 0.258950)

OCR для маркетплейсов: Тестирование 7 моделей для автоматического сбора данных с инфографики товаров

Вообще в начале знакомства с OCR, я надеялся, что именно эта модель закроет все мои боли, но очень-очень дорого. на скрине сравнение двух моделей (платной // бесплатной):

OCR для маркетплейсов: Тестирование 7 моделей для автоматического сбора данных с инфографики товаров

Это модель от OpenAI, которая использует трансформерную архитектуру для понимания контекста. Показывает низкий уровень ошибок — 9.4% символов и 26% слов, особенно хороша для сложных документов с нестандартным форматированием. Единственный минус — это стоимость, но возможности фантастические, так как можно через промпт попросить описать очень подробно весь дизайн и на базе этого уже делать какие-то классификаторы или платформы для подбора баннеров. Технически использует API OpenAI с параметром "detail": "high", и не просто распознает текст, но и контекстуально анализирует содержимое картинок.

Вердикт: GPT-4-Turbo — отличное решение для сложных задач распознавания, но его стоимость ($0.02 за одно изображение) делает его непрактичным для обработки больших объемов данных. Для 5000 изображений затраты составили бы около $100.

🏆1. Google Vision (CER: 0.104450, WER: 0.290600) - ПОБЕДИТЕЛЬ

OCR для маркетплейсов: Тестирование 7 моделей для автоматического сбора данных с инфографики товаров

Это коммерческий OCR от Google с использованием нейронок для понимания структуры документа. Эффективно работает с таблицами и многоколоночными текстами. Супер! В триале дается сразу же $300, чего хватает за глаза. Качество просто восторг. При обработке 7224 изображений стоимость составила всего 3 евро (3 копейки на картинку), в сравнении с OpenAI — 15 копеек на картинку.

Расходы на +7к картинок
Расходы на +7к картинок

При этом не нужно углубляться в настройки/подбор модели/ломать голову где она будет находиться + время! Гугл справился буквально за 3-4 часа — сверхбыстро и дешево, против суток при использовании локальных моделек. Техническая реализация тоже без заморочек — загружаешь картинки по URL из CSV-файла и отправляешь в облако. В коде меньше 100 строк, больше половины остутпы и подклбчение библиотек =)

Минус для тех, кто в РФ — ищите карту, которая действительна и зарубежная, тогда сможете активировать бесплатный период.

Вердикт: Абсолютный победитель тестирования! Google Vision предлагает оптимальное сочетание цены (3 копейки за изображение), скорости (7224 изображения за 3-4 часа) и качества распознавания. С $300 бесплатного кредита при регистрации в Google Cloud можно обработать огромное количество изображений без затрат.

А по ссылке можете глянуть результаты по каждой кратинке для каждой модели + исходные тексты и обработанные.

Лист Result - расчет wer, cer, ошибки, data_with_gold_standart - оригинальные данные с меткой, original - данные после обарботки OCRками.
Лист Result - расчет wer, cer, ошибки, data_with_gold_standart - оригинальные данные с меткой, original - данные после обарботки OCRками.

Заключение

Лучшая Google Vision — абсолютный победитель по соотношению цена/качество/скорость. При стоимости всего 3 копейки за изображение и обработке более 7000 изображений за 3-4 часа, это оптимальное решение для масштабных проектов. Бонусом идут $300 бесплатного кредита при регистрации.

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

Я выбрал ключевые спеки и товары у которых ЧТО-ТО одно не заполнено и через отдельный скрипт разнес информацию по товарам. 
Я выбрал ключевые спеки и товары у которых ЧТО-ТО одно не заполнено и через отдельный скрипт разнес информацию по товарам. 

То, с чем я борюсь и пока не могу поменять видение: если есть уже готовый продукт, то нет смысла пытаться развернуть у себя аналог. Пример с Space OCR, в теории не такие большие деньги, но при этом их команда обрабатывает все сценарии с текстом -- таблицы, колонки. Это ускоряет вас, так что пользуйтесь и не тратьте время на то, что уже готово! Заплатить 2к явно не так много при условии, что вы сэкономите 1 день.

А в своем телеграм-канале рассказываю каждый день, как я работаю над своими пет-проектами, посты на тему статьи:

Подготовка сырых данных

Начинаю по-тихоьку вкатываться в анализ аэрогрилей, пока готовы 3 вещи:

1. Файл со всеми картинками из слайдера для каждого товара

2. Описанные атрибуты с значениями

3. Наброски API, которое свяжет картинки и модель с CV (computer vision)+ описанием

Начало 

Сегодня пытался сделать аналог gpt по OCR (оптическое распознавание символов. За пример взял картинку с первого скрина

Решил сначала использовать модельку от чата гпт , результат его работы на втором скрине. Супер прямо справляется! НО очень дорогая, одно изображение $0,02, если 1 000 изображений, то уже $20 , а у меня в таблице с потенциальными ко…

Макс в комментариях поделился, как увеличить точность opensouce моделей, полезно!

Ходил сегодня в кино, увидел красную типографику и дизайн трейлера "Серфера" с Николосом Кейджем, решил, что сегодня повторю их стиль, в карточках рассказываю, а чем я сегодня занимался. Это выбор OCR, тоже оказалось не простым занятием по интеграции, но вроде бы, как то справился, что уже хорошо! Сейчас поставил на повторную обработку всего DF. За…

Инфографика по каждой OCR 

Пока ехали в сапсане, готовил данные для статьи про выбор OCR для аэрогрилей

На самом деле, если бы не поездка и отсутствие стабильного интернета, до этой задачки я не добрался

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

Думаю, завтра/послезавтра получится опубликовать ст…

OCR для маркетплейсов: Тестирование 7 моделей для автоматического сбора данных с инфографики товаров
Ряд статей про то, как я пытался оценить все модели, которые использовал 

Смотрим, подписываемся!

Начать дискуссию