FairScan icon

FairScan

An Android app to scan your documents —
simple and respectful.

License

Get it on: F-Droid · Play Store · GitHub

--- FairScan is an Android app to **scan documents quickly, easily and privately**. It's designed to be **simple**: users get a clean, shareable PDF in seconds, with no manual adjustments.
And **respectful**: open source, minimal permissions, no tracking, no ads. - Website: https://fairscan.org - Blog: https://fairscan.org/blog/ --- ## Screenshots | Scan | Preview | Save & Share | |------|---------|--------------| | ![](metadata/en-US/images/phoneScreenshots/1.jpg) | ![](metadata/en-US/images/phoneScreenshots/2.jpg) | ![](metadata/en-US/images/phoneScreenshots/3.jpg) | --- ## Features - **Clear, distraction-free interface** - **Easy scanning process**: scan → preview → share - **Automatic document detection** using a custom segmentation model - **Automatic perspective correction** - **Automatic image enhancement** - **Fast PDF generation** with no manual adjustments - **Fully offline** – the app has *no* internet permission - **Minimal permissions** - **Open source**, GPLv3 --- ## Compatibility FairScan works on any device that: - runs **Android 8.0+** - has a camera --- ## Technical details FairScan uses: - [Jetpack Compose](https://developer.android.com/compose) for the UI - [CameraX](https://developer.android.com/media/camera/camerax) for image capture - [LiteRT](https://ai.google.dev/edge/litert) to run the custom segmentation model for automatic document detection - [OpenCV](https://opencv.org/) for perspective correction and image enhancement - [PDFBox-Android](https://github.com/TomRoush/PdfBox-Android) for PDF generation --- ## The segmentation model FairScan uses a custom-trained image segmentation model to detect documents:
https://github.com/pynicolas/fairscan-segmentation-model It's based on a fully public dataset that is available here:
https://github.com/pynicolas/fairscan-dataset The build system automatically downloads the model using [`download-tflite.gradle.kts`](app/download-tflite.gradle.kts). Related blog posts: - [*Making document detection more reliable*](https://fairscan.org/blog/automatic-document-detection/) - [*Building a public dataset for FairScan*](https://fairscan.org/blog/building_a_public_dataset/) --- ## Build To build an APK: ```bash ./gradlew clean check assembleRelease ``` To build an Android App Bundle: ```bash ./gradlew clean check :app:bundleRelease ``` ## License This project is licensed under the GNU GPLv3. See [LICENSE](LICENSE) for details.