Как производительность PaddleOCR сравнивается с Tesseract?
Недавно я наткнулся на PaddleOCR и мне интересно, как эта система OCR сравнивается с Tesseract. Есть ли какие-нибудь данные или тесты?
5 ответов
Я использовал оба в некоторых исследованиях в течение почти года. Могу сказать, что у каждого есть свое идеальное применение.
Плюсы PaddleOCR:
- Если текст повернут не на 90 градусов , PaddleOCR все еще может правильно определить текст, но Tesseract не может этого сделать, даже если используется экранное меню.
- Вы можете использовать результаты обнаружения , чтобы исправить вращение, но Tesseract, скорее всего, получит бессмысленные результаты.
- PaddleOCR работает лучше, чем Tesseract, с изображениями в RGB/BGR , если вы не можете бинаризировать свое изображение.
Тессеракт PRO:
- PaddleOCR имеет серьезные проблемы с обнаружением пробелов даже после манипулирования параметрами, но они работают над исправлением этого в следующем обновлении. Tesseract не имеет значительных проблем с пробелами.
- Tesseract лучше с точки зрения обработки отсканированных документов .
- Режимы сегментации изображения приходят на помощь и очень помогают улучшить результаты.
- Результаты Tesseract на бинаризованных изображениях с длинным текстом обычно лучше, чем у PaddleOCR.
- Tesseract гораздо лучше распознает символы .
- Tesseract быстрее на процессоре.
Короче говоря, использование Tesseract идеально подошло бы для отсканированных документов , а PaddleOCR — для общих проектов компьютерного зрения .
Я нашел сравнение между PaddleOCR 2 и Tesseract 4 , но только для английских текстов. Кратко резюмируем:
- PaddleOCR немного медленнее, чем Tesseract на процессорах, но с поддержкой графического процессора он превосходит Tesseract на 46% на стандартном графическом процессоре.
- Без постобработки PaddleOCR в основном допускает ошибки с отсутствием пробелов между словами и символами пунктуации. Однако эти ошибки легко исправить. После постобработки точность сопоставима с Tesseract (на 1% меньше).
- Предварительно обученная модель для английского языка имеет только 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.