Промышленность и оборудование
Июль 2026
· Реализовать точное распознавание текста на отсканированных документах.
· Автоматизировать сравнение текстовых версий документов.
· Визуализировать отличия между версиями в понятном и удобном формате.
· Обеспечить полностью локальную обработку для сохранности конфиденциальных данных.
Клиент регулярно сталкивался с необходимостью сравнения различных версий документов, включая отсканированные копии. Существующие онлайн-сервисы не удовлетворяли требованиям безопасности, так как не гарантировали конфиденциальность обрабатываемых данных. Кроме того, подобные сервисы зачастую не работают с отсканированными документами, поскольку такой документ представляет собой картинку, а существующие решения умеют сравнивать только текстовые документы. Поэтому заказчик обратился к нам с запросом на разработку сервиса, который бы локально мог сравнивать как текстовые, так и отсканированные документы.
1. Разработка пилота и подбор алгоритма сравнения
На первом этапе мы разделили задачи на два независимых блока: распознавание текста и его сравнение. К работе мы подошли итеративно: сначала подобрали подходящий алгоритм сравнения двух текстовых файлов, согласовали с заказчиком формат вывода результатов сравнения и развернули сервис локально на серверах нашей компании, предоставив заказчику доступ к нему через Telegram-бота. Это позволило быстро начать использовать прототип решения, не тратя время на интеграцию в системы заказчика. Бот мы разместили на своей стороне, предоставив доступ сотрудникам клиента. Такой подход упростил запуск пилота: заказчику не пришлось подключать разработчиков, а мы могли быстро получать фидбэк и вносить улучшения.
В дальнейшем, когда функциональность была протестирована, мы сделали API, код которого затем разработчики заказчика развернули на своих устройствах. Распознавание применяется только к сканам — извлеченный из изображения текст затем передается для сравнения. Если оба документа изначально текстовые, этап распознавания пропускается.
Вызов заключался в разработке универсального алгоритма сравнения, который бы одинаково корректно работал и с текстами, извлеченными из сканов документов, и с исходными текстовыми файлами. Из-за разницы в структуре и формате этих данных особенно важно было обеспечить корректное сопоставление фрагментов, а также реализовать наглядную визуализацию отличий. Мы адаптировали механизм сравнения, который справляется с этой задачей: он ищет отличия в последовательности символов и позволяет отобразить их в интерфейсе в удобной форме.
2. Подбор системы
Работу над блоком распознавания текста мы начали с выбора подходящей OCR-системы (системы оптического распознавания символов, которая преобразует изображения с текстом в машиночитаемый текстовый формат). Ключевым критерием было качество распознавания, а также возможность локального развертывания (без подключения к внешним сервисам). Мы протестировали 5 актуальных open-source решений и остановились на двух лучших по качеству.
Один из финалистов требовал использования GPU (графического процессора), второй — CPU (центрального процессора). Здесь важно понять, чем они принципиально отличаются:
GPU способен выполнять тысячи однотипных операций параллельно. Это делает его крайне эффективным для задач, связанных с нейросетями, таких как OCR. Распознавание текста на GPU проходит значительно быстрее;
CPU, в свою очередь, работает последовательно, но гораздо дешевле в эксплуатации и проще в интеграции. Он подходит для тех случаев, где высокая скорость не критична или нужно держать проект в рамках ограниченного бюджета.
На практике разница выглядела так:
GPU-решение обрабатывало документ немного быстрее и точнее, но требовало аренды дорогих серверов (от 30 000 ₽/мес);
CPU-решение обходилось примерно в 4 500 ₽/мес и не требовало видеокарт.
Хотя GPU-решение показало чуть лучшие результаты, прирост качества был не критичным. Зато использование CPU позволило значительно снизить стоимость инфраструктуры, упростить развертывание, избежать дополнительных зависимостей и требований к серверной части.
3. Тестирование и внедрение
Мы провели тестирование на искусственно созданных сканах с типовыми дефектами (смещения, тени, шум), приближенными к реальным кейсам заказчика. В результате выбрали OCR-решение на CPU — как оптимальное по соотношению качества, стоимости и стабильности работы.
Последним шагом мы адаптировали алгоритм вывода результатов сравнения поверх сканов. После успешного тестирования через Telegram-бота совместно с заказчиком мы приступили к разработке API и переносу сервиса на их серверы.
Точность OCR-системы достигла 93,2% даже на зашумлённых и искажённых сканах — результат был подтверждён на тестовом датасете.
Скорость обработки — около 6 секунд на страницу. Решение стабильно работает даже на современных офисных компьютерах без потери производительности.
Решение полностью локальное: все данные обрабатываются внутри периметра компании, без передачи информации третьим лицам — важный момент для соблюдения требований по конфиденциальности.
Поддерживается работа с различными форматами документов: PDF, DOC, DOCX, RTF.
Система автоматически рассчитывает процент схожести между двумя версиями документа, позволяя быстро оценить масштаб изменений.
Весь процесс полностью автоматизирован: от распознавания сканов до анализа и сравнения текста.
Найденные различия отображаются с помощью цветовой маркировки, что делает анализ быстрым и наглядным, даже при больших объемах текста.