Работу над блоком распознавания текста мы начали с выбора подходящей OCR-системы (системы оптического распознавания символов, которая преобразует изображения с текстом в машиночитаемый текстовый формат). Ключевым критерием было качество распознавания, а также возможность локального развертывания (без подключения к внешним сервисам). Мы протестировали 5 актуальных open-source решений и остановились на двух лучших по качеству.
Один из финалистов требовал использования GPU (графического процессора), второй — CPU (центрального процессора). Здесь важно понять, чем они принципиально отличаются:
- GPU способен выполнять тысячи однотипных операций параллельно. Это делает его крайне эффективным для задач, связанных с нейросетями, таких как OCR. Распознавание текста на GPU проходит значительно быстрее;
-
CPU, в свою очередь, работает последовательно, но гораздо дешевле в эксплуатации и проще в интеграции. Он подходит для тех случаев, где высокая скорость не критична или нужно держать проект в рамках ограниченного бюджета.
На практике разница выглядела так:
- GPU-решение обрабатывало документ немного быстрее и точнее, но требовало аренды дорогих серверов (от 30 000 ₽/мес);
-
CPU-решение обходилось примерно в 4 500 ₽/мес и не требовало видеокарт.
Хотя GPU-решение показало чуть лучшие результаты, прирост качества был не критичным. Зато использование CPU позволило значительно снизить стоимость инфраструктуры, упростить развертывание, избежать дополнительных зависимостей и требований к серверной части.