Сканирование документов без лишних глаз и разрешений

30 May, 2026

Знаете это чувство, когда простая утилита для сканирования чека или договора требует доступ к контактам, местоположению и обязательно хочет отправить ваш PDF в «облако» для улучшения качества? Меня всегда это напрягало. Казалось бы, задача тривиальная: сфотографировать лист, выровнять углы и подкрутить контраст. Но найти в Google Play что-то, что не завалено рекламой и не шпионит за пользователем, — тот еще квест.

Недавно наткнулся на FairScan. Это опенсорсное приложение для Android, которое делает ровно то, что обещано в названии: сканирует документы честно. У него вообще нет разрешения на выход в интернет. Совсем.

FairScan icon

В чем фишка проекта

Автор FairScan, pynicolas, пошел по пути максимального упрощения. Приложение не пытается быть швейцарским ножом с редактором текста и нейросетевым переводчиком. Его цель — выдать чистый PDF за несколько секунд.

Главное отличие от десятков аналогов — приватность по умолчанию. Поскольку у приложения нет доступа к сети, ваши документы физически не могут утечь на сторонние сервера. Все вычисления, включая распознавание границ документа, происходят прямо на устройстве.

Реклама

Что умеет FairScan

Несмотря на аскетичность, под капотом у него вполне взрослые технологии. Вот что приложение делает автоматически:

  • Находит границы листа в кадре. Вам не нужно идеально ровно держать телефон, алгоритм сам поймет, где заканчивается бумага и начинается стол.
  • Исправляет перспективу. Если снимали под углом, приложение «развернет» картинку так, будто вы сканировали её на планшетном сканере.
  • Улучшает изображение. Текст становится четче, а серый фон бумаги превращается в белый.
  • Собирает многостраничные PDF. Можно отщелкать пачку документов и сохранить их одним файлом.

| Scan | Preview | Save & Share | |------|---------|--------------| | | | |

Техническая начинка

Для разработчиков проект интересен своим стеком. Это отличный пример того, как собрать современное Android-приложение на актуальных библиотеках:

  1. Jetpack Compose для интерфейса. Код UI чистый и декларативный.
  2. CameraX для работы с камерой. Это стандарт сейчас, но здесь хорошо реализован захват кадров для анализа в реальном времени.
  3. LiteRT (TensorFlow Lite). Для детекции документов используется кастомная модель сегментации. Автор даже выложил отдельный репозиторий с датасетом и процессом обучения модели. Это редкость для небольших инди-проектов.
  4. OpenCV. Старый добрый инструмент для обработки изображений, который здесь отвечает за трансформацию перспективы и фильтры.
  5. PDFBox-Android. Библиотека для генерации PDF, которая не тянет за собой тонну лишнего веса.

Интеграция в свои приложения

Интересная деталь, которую я редко вижу в подобных утилитах: FairScan поддерживает работу через Intent. Если вы пишете свое приложение (например, CRM или систему учета расходов) и вам нужно добавить сканирование документов, вам не обязательно тащить OpenCV и модели сегментации к себе в проект.

Можно просто вызвать FairScan через неявный интент: org.fairscan.app.action.SCAN_TO_PDF

Приложение откроется в режиме сканера, даст пользователю сделать снимки и вернет вашему приложению URI готового PDF-файла. Это удобно, если вы цените модульность и не хотите раздувать размер своего APK.

Стоит ли пробовать

FairScan подойдет тем, кто устал от «тяжелых» приложений и ценит приватность. Он работает быстро, не просит денег и не показывает баннеры.

Из минусов можно отметить разве что отсутствие OCR (распознавания текста). То есть на выходе вы получаете именно картинку внутри PDF, а не текстовый слой, по которому можно искать. Но для быстрой отправки копии договора или чека бухгалтеру этого более чем достаточно.

Проект живет на GitHub под лицензией GPLv3, доступен в F-Droid и Google Play. Если вы Android-разработчик, советую заглянуть в исходники — там очень аккуратно реализована работа с CameraX и интеграция ML-моделей через LiteRT.

Собрать проект самому можно стандартной командой:

./gradlew clean check assembleRelease

Для работы понадобится Android 8.0 или выше. По нынешним меркам это практически любой живой смартфон.