Инструменты для сравнения детекторов текста (Tesseract, EasyOCR, Doctr, PaddleOCR, MMOCR) на едином датасете и сохранения визуальных примеров предсказаний.
benchmark.py— CLI для запуска бенчмарка и расчёта метрик F1/precision/recall.generate_demo_previews.py— генерация демо-картинок: для каждой модели сохраняется по 6 изображений с нарисованными bounding boxes.dataset/— набор из 113 документов (используются движками и docker-контейнерами).labels/tasks_dataset.json— экспорт Label Studio с GT-боксами.Dockerfile.mmocr— окружение для контейнераmmocr-bench.
HTML/Flask визуализации намеренно отсутствуют — весь функционал доступен из CLI.
-
Python ⩾ 3.10 с библиотеками из
requirements.txt:python3 -m venv .venv source .venv/bin/activate pip install --upgrade pip pip install -r requirements.txt -
Docker контейнеры:
- MMOCR:
docker build -f Dockerfile.mmocr -t mmocr-bench . - PaddleOCR: образ
paddleocr-cpuдолжен быть доступен локально (можно использовать официальный PaddleOCR dockerfile).
- MMOCR:
-
Для docker-запусков скрипты могут попросить
sudo. Передавайте пароль черезSUDO_PASSWORD=...(либо заранее настройте доступ к сокету Docker).
# все модели
./benchmark.py --images dataset/images --tasks labels/tasks_dataset.json --results results
# только отдельные движки
./benchmark.py --engines tesseract easyocr paddle
# список доступных моделей
./benchmark.py --listКаждый запуск создаёт JSON-файл results/<engine>.json со сводными метриками. После выполнения скрипт печатает таблицу с F1/precision/recall.
# полный прогон для всех движков (если docker требует sudo — прокиньте пароль)
SUDO_PASSWORD=1234 ./generate_demo_previews.py
# перегенерировать только docker-модели
DEMO_ENGINES='paddle,paddle_server,mmocr' SUDO_PASSWORD=1234 ./generate_demo_previews.pyСкрипт берёт страницы с индексами 1, 20, 40, 60, 80, 110 и сохраняет версии с боксами в demo_outputs/<engine>/.
results/— JSON с усреднёнными метриками.demo_outputs/<engine>/img_XXXX.jpg— визуализации для каждой модели.
- Путь к датасету и JSON-аннотациям можно переопределять опциями
--imagesи--tasks. - Для docker-моделей (
paddle,paddle_server,mmocr) используется локальное кеширование (.paddle_cache). - Если требуется только вычисление предсказаний без метрик, имеющиеся функции можно переиспользовать как модуль.