Как собрать собственный сканер документов без рекламы и подписок

10 Jun, 2026

Знаете это чувство, когда нужно срочно отправить скан документа, вы скачиваете первое попавшееся приложение из стора, а оно требует 500 рублей в неделю за «премиум-фильтры» или лепит огромный водяной знак на середину листа? Ситуация классическая. Именно поэтому я обратил внимание на проект OSS-DocumentScanner.

Это не просто очередное приложение, а полноценный Open Source проект, который объединяет в себе сразу два полезных инструмента: сканер документов и кошелек для карт. Самое интересное здесь — под капотом. Автор не стал изобретать велосипед и собрал мощный стек из OpenCV и Tesseract, завернув всё это в NativeScript.

Что умеет этот комбайн

Репозиторий Akylas/OSS-DocumentScanner — это база для двух разных приложений. Первое, OSS Document Scanner, занимается тем, что превращает фотографии в аккуратные PDF. Второе, OSS CardWallet, помогает хранить дисконтные и банковские карты в одном месте.

Вот что мне показалось наиболее ценным:

  • Автоматическая обрезка. Приложение само находит границы листа. Вам не нужно идеально выравнивать телефон, алгоритмы на базе OpenCV поправят перспективу.
  • Распознавание текста (OCR). Благодаря интеграции Tesseract, сканер не просто делает картинку, а пытается понять, что на ней написано. Это киллер-фича для тех, кто потом хочет искать по содержимому документов.
  • Работа с QR и штрих-кодами. За это отвечает библиотека zxingcpp. Актуально для CardWallet, когда нужно быстро считать код с пластиковой карты.
  • Приватность. Весь процессинг происходит на устройстве. Никакие ваши паспорта или счета не улетают на «облачные сервера для улучшения качества».

Технический зоопарк внутри

Если вы решите заглянуть в код, приготовьтесь к приключению. Это не типичное React Native приложение. Автор использует NativeScript, причем в связке с собственным форком фреймворка.

Реклама

Проект написан на C++ (ядро обработки) и TypeScript (интерфейс). Такое сочетание позволяет выжать максимум производительности из OpenCV при обработке изображений в реальном времени, сохраняя при этом удобство разработки UI.

Интересный момент с архитектурой: один репозиторий собирает два разных приложения. Это реализовано через переменные окружения. Например, чтобы собрать сканер, нужно задать APP_ID=com.akylas.documentscanner. Если поменяете на com.akylas.cardwallet — получите кошелек. Удобный подход, если у приложений много общей логики по работе с камерой и изображениями.

Как запустить это у себя

Сразу скажу: npm install здесь не отделаться. Поскольку проект использует тяжелые нативные библиотеки, подготовка окружения займет время.

Вам понадобятся:

  1. NativeScript CLI. Причем автор рекомендует использовать его специфическую версию.
  2. OpenCV. Библиотеки нужно скачивать отдельно и раскладывать по папкам opencv/android или opencv/ios. В репозитории их нет, чтобы не раздувать размер до гигабайтов.
  3. Tesseract. Его придется скомпилировать под нужную платформу. Для Android используется проект Tesseract4Android.

Пример запуска сборки для Android:

ns run android --no-hmr --env.devlog

Если не хочется возиться со сборкой, приложения доступны в Google Play, App Store и F-Droid (через репозиторий IzzyOnDroid). Но для разработчика самое интересное — это именно возможность покопаться в реализации того, как OpenCV интегрируется с мобильной камерой через NativeScript.

| | | |

Почему это стоит изучить

Я часто вижу вопросы в духе «как добавить сканирование документов в мой проект?». Обычно советуют платные SDK, которые стоят как крыло самолета. OSS-DocumentScanner показывает, что на связке OpenCV + Tesseract можно собрать продукт коммерческого качества.

Да, порог входа в проект высоковат из-за сложной настройки окружения и использования NativeScript. Но это отличный пример того, как делать кроссплатформенные приложения с глубоким использованием нативного железа и тяжелых библиотек обработки данных.

Если вам нужен надежный сканер без рекламы или вы хотите разобраться, как работают алгоритмы компьютерного зрения на мобилках — этот репозиторий точно стоит добавить в закладки. Можно начать с изучения того, как автор реализовал фильтры для улучшения читаемости текста на фото, это реализовано очень достойно.