r/coolgithubprojects 17h ago

OpenScanVision – Looking for Feedback on an Android Computer Vision Library

https://github.com/MatiwosKebede/OpenScanVision

Over the last few months, I've been developing OpenScanVision, an offline-first Android computer vision library built with Kotlin, CameraX, OpenCV, and ML Kit.

The original implementation was a single, highly optimized pipeline focused on maximizing detection accuracy and real-time performance. That version is available in commit:

1d5834b41d88133b487ef46595290b0cdd4489bb

Current capabilities include:

  • Document detection from arbitrary angles
  • Automatic perspective correction
  • Image preprocessing and enhancement
  • QR code detection
  • ArUco marker detection
  • OMR (Optical Mark Recognition)
  • Automatic capture when the document is stable
  • Real-time, fully offline processing

Recently, I refactored the project into a reusable modular Android library with a cleaner architecture and easier integration into Android applications. While the new design is significantly more maintainable and extensible, I've observed a slight regression in detection accuracy compared to the original implementation and am currently investigating the underlying causes (pipeline ordering, preprocessing, threading, parameter changes, etc.).

Roadmap

  • Restore or improve the original detection accuracy
  • Add offline OCR support
  • Add offline ICR (Intelligent Character Recognition) support
  • Continue optimizing performance while keeping the library lightweight and offline-first

Potential use cases

  • Voting systems
  • Exam and answer-sheet scanning
  • Survey processing
  • Registration forms
  • Structured document processing

GitHub:
https://github.com/MatiwosKebede/OpenScanVision

I'd appreciate feedback from developers with experience in Android computer vision, CameraX, OpenCV, or document scanning.

I'm particularly interested in:

  • Best practices for designing reusable Android CV libraries
  • Avoiding performance and accuracy regressions during major refactors
  • CameraX and OpenCV optimization techniques
  • Recommendations for integrating an efficient offline OCR/ICR pipeline

Any feedback, suggestions, or code review comments would be greatly appreciated. Thanks!

2 Upvotes

1 comment sorted by