Как производительность PaddleOCR сравнивается с Tesseract?

Недавно я наткнулся на PaddleOCR и мне интересно, как эта система OCR сравнивается с Tesseract. Есть ли какие-нибудь данные или тесты?

5 ответов

Я использовал оба в некоторых исследованиях в течение почти года. Могу сказать, что у каждого есть свое идеальное применение.

Плюсы PaddleOCR:

  1. Если текст повернут не на 90 градусов , PaddleOCR все еще может правильно определить текст, но Tesseract не может этого сделать, даже если используется экранное меню.
  2. Вы можете использовать результаты обнаружения , чтобы исправить вращение, но Tesseract, скорее всего, получит бессмысленные результаты.
  3. PaddleOCR работает лучше, чем Tesseract, с изображениями в RGB/BGR , если вы не можете бинаризировать свое изображение.

Тессеракт PRO:

  1. PaddleOCR имеет серьезные проблемы с обнаружением пробелов даже после манипулирования параметрами, но они работают над исправлением этого в следующем обновлении. Tesseract не имеет значительных проблем с пробелами.
  2. Tesseract лучше с точки зрения обработки отсканированных документов .
  3. Режимы сегментации изображения приходят на помощь и очень помогают улучшить результаты.
  4. Результаты Tesseract на бинаризованных изображениях с длинным текстом обычно лучше, чем у PaddleOCR.
  5. Tesseract гораздо лучше распознает символы .
  6. Tesseract быстрее на процессоре.

Короче говоря, использование Tesseract идеально подошло бы для отсканированных документов , а PaddleOCR — для общих проектов компьютерного зрения .

Я нашел сравнение между PaddleOCR 2 и Tesseract 4 , но только для английских текстов. Кратко резюмируем:

  1. PaddleOCR немного медленнее, чем Tesseract на процессорах, но с поддержкой графического процессора он превосходит Tesseract на 46% на стандартном графическом процессоре.
  2. Без постобработки PaddleOCR в основном допускает ошибки с отсутствием пробелов между словами и символами пунктуации. Однако эти ошибки легко исправить. После постобработки точность сопоставима с Tesseract (на 1% меньше).
  3. Предварительно обученная модель для английского языка имеет только 10% размера файла данных поезда Tesseracts English (2 МБ против 23 МБ).

Для китайских текстов, которые кажутся основным приоритетом PaddleOCR на данный момент, ситуация может быть иной.

Я использовал Tesseract на мгновение, но он страдает от точности, например, число 4 распознается как A, 1 как ], 8 как & и так далее,

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

Сравнивая результат Tesseract OCR с результатом paddleOCR при распознавании текста, paddleOCR превосходит Tesseract.

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

Я провел исследование, чтобы решить проблему, и я вижу 6 возможных решений:

1. Постобработайте вывод paddleOCR:

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

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

2. Используйте исправление орфографии:

Вы можете использовать библиотеки исправления орфографии, такие как pyspellchecker или autocorrect, чтобы исправить любые орфографические ошибки в распознанном тексте.

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

4. Используйте языковую модель. Вы можете использовать языковую модель, такую ​​как GPT-3 или BERT, для постобработки распознанного текста. эти инструменты используются для понимания и ответа на естественном языке, вы можете научить их распознавать ваш текст. Это будет следующий шаг, я буду использовать

5. Используйте конвейер постобработки. Вы можете создать собственный конвейер постобработки, в котором используется комбинация библиотек исправления орфографии и моделей языкового представления.

6. Вы меняете OCR: изучите другие OCR, на данный момент я не думаю менять paddleOCR, так как у него хороший уровень распознавания, но все возможно.

Недавно PaddleOCR обновил версию v3, и проблема английского пробела была значительно улучшена. Попробовал английскую модель, работает очень хорошо.

В сценариях с документами PaddleOCR может достигать точности 95%+. Но Тессеракт можно спутать с некоторыми ритмическими знаками.

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

Настоятельно рекомендую PaddleOCR!

Я тестировал с ними английский и японский, но, что интересно, PaddleOCR, похоже, распознает их обоих лучше, чем Tesseract. Обнаружение текста PaddleOCR также кажется лучше. Однако, согласно их сообщениям, PaddleOCR не может очень хорошо обрабатывать пробелы, и есть жалобы от некитайских (или японских) пользователей.PaddleOCR очень хочет использовать новейшие алгоритмы распознавания / обнаружения, опубликованные в качестве исследовательских работ, для которых я решил использовать PaddleOCR.

Другие вопросы по тегам