receipt_recognition 0.1.0
receipt_recognition: ^0.1.0 copied to clipboard
A Flutter package for scanning and extracting structured data from supermarket receipts using Google's ML Kit.
Changelog #
All notable changes to this project will be documented in this file.
0.1.0 - 2025-06-06 #
β¨ Added #
- Stable Sum Detection: The scanner now identifies the most likely total amount by combining confidence and position tracking across multiple frames.
- Live Bounding Boxes: Detected receipt items are now outlined live on the camera preview, making it easier to see what's recognized in real time.
π οΈ Changed #
- Metadata Filtering: The engine is better at ignoring irrelevant lines like footer notes or fiscal metadata, keeping the product list clean.
- Enhanced Merge Logic: Optimized how multi-frame receipts are combined, improving structure and reliability even in fragmented scans.
π Fixed #
- Incorrect Totals: Fixed an issue where prices from unrelated lines could falsely be interpreted as the receiptβs sum.
- Layout Glitches: Resolved occasional misalignments or line skips when processing longer or poorly lit receipts.
0.0.9 - 2025-06-03 #
β¨ Added #
- Smarter Scan Confidence Filtering: The recognition engine can now automatically ignore low-confidence items that might distort the total sum.
- Status Getter: Added a simple flag to detect if scanning is still in progress.
- Improved Example App: The example app now includes best practice instructions, live scan overlays, and a clearer UI for scanning and viewing receipts.
π οΈ Changed #
- Internal Optimizations: Minor refactoring and documentation improvements to ensure better readability and maintainability of the code.
π Fixed #
- Sum Calculation Accuracy: Fixed cases where incorrect items could cause mismatches with the printed total.
- Scan Stability: Improved reliability of the scan process for varied receipt lengths and layouts.
0.0.8 - 2024-05-29 #
β¨ Added #
- Manual Receipt Acceptance: Added
acceptReceipt()method to manually accept receipts with validation discrepancies - Enhanced Validation Flow: Improved receipt validation with configurable thresholds and detailed status reporting
- Validation State Tracking: Added comprehensive validation states (complete, nearlyComplete, incomplete, invalid)
- Documentation: Added detailed documentation on validation workflow and manual acceptance
π οΈ Changed #
- Implementation Status Table: Improved formatting of status table in documentation
- Progress Reporting: Enhanced
ScanProgressmodel with more detailed validation information - Validation Logic: Refined match percentage calculation between calculated and declared sums
π Fixed #
- Receipt Merging: Fixed edge cases in receipt merging that could lead to inaccurate total sums
- Stability Thresholds: Adjusted default stability thresholds for more reliable scanning
0.0.6 - 2024-05-18 #
β¨ Added #
- Intelligent product name normalization via
ReceiptNormalizer.normalizeFromGroup - Graph-based item ordering using
PositionGraphwith fuzzy matching and topological sort CachedReceiptconsolidation with improved trust-based merging logic- Parallelized parsing and graph resolution using Dart's
compute()isolates - Outlier filtering for OCR noise and trailing receipt lines
- Unit tests for name cleaning and group resolution
π οΈ Changed #
- Restructured
core/folder for better modularity - Improved
ReceiptParser._shrinkEntities()to robustly remove lines below sum/total - Enhanced debug output when scanning receipts in
ReceiptRecognizer
π Documentation #
- Added concise DartDoc to all public APIs, data models, and helpers
β Tests #
- Added group-based name cleaning tests
- Validated space vs. no-space consensus logic (e.g. "Co ke Zero" vs. "Coke Zero")
0.0.5 β 2025-05-05 #
π Documentation #
- Added comprehensive
dartdoccomments for all model classes inlib/src/receipt_models.dart
0.0.4 β 2025-05-04 #
β¨ Added #
- Optimizer Module: Introduced a new optimizer module to enhance the performance and efficiency of the receipt recognition pipeline.
- Product Name Detection Enhancements: Implemented advanced techniques for more accurate extraction and recognition of product names from receipts.
π οΈ Changed #
- Company Regex Enhancements: Updated regular expressions related to company name detection to enhance parsing accuracy.
π Fixed #
- Product Name Extraction: Resolved issues where certain product names were not being accurately extracted due to inconsistent formatting.
- Company Name Detection: Fixed bugs in the regular expressions that led to incorrect company name identification in specific receipt formats.
- Parser Stability: Addressed edge cases in the parser that previously caused errors when processing receipts with uncommon layouts.
0.0.3 - 2025-04-24 #
β Added #
- Unit Tests: Introduced unit tests to enhance code reliability and ensure consistent behavior across updates.
π οΈ Changed #
- Parser Refactoring:
- Moved parsing methods to a dedicated parser module, improving code organization and maintainability.
- Converted parser methods to static, facilitating easier access without instantiating classes.
π Fixed #
- Company Name Recognition: Refined regular expressions related to company name detection, enhancing accuracy in identifying company names from receipts.
0.0.2 β 2025-04-23 #
β¨ Added #
ReceiptWidget: A customizable Flutter widget that displays parsed receipt data in a layout resembling a real supermarket receipt.- Advanced example demonstrating integration with a live video feed using the
camerapackage.
π οΈ Changed #
- Updated
README.mdto include usage examples and details about models etc.
π Fixed #
- Minor bug fixes and performance improvements.