Changelog
TextScan release notes
v0.1.7 - 2025-09-27
Changed
- Updated documentation.
v0.1.6 - 2025-09-22
Added
- Multi-topic processing - Process multiple video regions simultaneously using pub/sub topics
- Data forwarding - New
forward_upstream_dataconfiguration to forward non-image frames - Main-first ordering - Ensures consistent output structure with 'main' topic first
- Enhanced configuration normalization - Robust string-to-type coercion and validation
- Comprehensive test suite - Added
test_smoke_simple.pyandtest_integration_config_normalization.py - Environment variable support -
FILTER_FORWARD_UPSTREAM_DATAfor data forwarding control
Changed
- Improved
process()method - Complete rewrite to handle multi-topic processing - Enhanced
OCREngine.from_str()- Better handling of various input formats - Updated
normalize_config()- Comprehensive configuration validation and type coercion - Updated documentation - README.md and docs/overview.md reflect new multi-topic capabilities
- Updated usage script -
scripts/filter_usage.pynow demonstrates multi-topic processing
Technical Improvements
- Performance optimization - Efficient processing of multiple topics in single pass
- Error handling - Robust validation and graceful error handling
- Code consistency - Follows established patterns from other Plainsight filters
v0.1.5 - 2025-08-12
Modified
- Lock Setuptools-SCM version
v0.1.4 - 2025-08-06
Modified
- Support for model info
- Updated dependencies
v0.1.3 - 2025-07-30
Added
- Support for model info
v0.1.2 - 2025-07-14
Changed
- Removed unnecessary imports
- Updated openfilter version in pyproject
Added
- Feature that computes and sends ocr confidence score for each frame to
metadata - Each entry in output jsons now include detected
ocr_confidence - Support for
ocr_language=engfor tesseract - Tests for ocr confidence score
v0.1.1 - 2025-05-22
Changed
- Update dependencies
v0.1.0 - 2025-05-22
Added
- Initial release of TextScan to extract text from image frames using OCR engines.
- Dual OCR Engine Support:
- Supports both
tesseractandeasyocr - Selectable via the
ocr_engineconfig field
- Supports both
- Multi-language OCR:
- Accepts a list of language codes (e.g.
['en', 'zh']) viaocr_language
- Accepts a list of language codes (e.g.
- Output to JSON:
- Writes OCR results per frame to a configurable
output_json_path - Each entry includes
frame_idand detectedtexts
- Writes OCR results per frame to a configurable
- Debug Mode:
- Optional
debugmode enables verbose logging
- Optional
- Frame-level Skipping:
- Skips OCR for frames tagged with metadata flag
skip_ocr: true
- Skips OCR for frames tagged with metadata flag
- Tesseract Binary Configurable:
- Customizable Tesseract binary path via
tesseract_cmd(defaults to packaged AppImage)
- Customizable Tesseract binary path via
- Safe Streaming Output:
- Results are flushed to disk in real-time to avoid data loss (future enhancement planned for configurable flush behavior)
- Support for
topic_patternconfiguration to selectively OCR frames based on topic name:- New env var:
FILTER_TOPIC_PATTERN - Supports regular expressions to match topics
- New env var:
- Optional forwarding of OCR results into
frame.data['meta']['ocr_texts']viaforward_ocr_texts(default: true) - Optional file output via
write_output_file(default: true) - Support for
.envandFILTER_*environment variable overrides docs/~internaldirectory added (excluded from production)- Enhanced documentation:
- Detailed topic-based processing and environment variable config
- Updated examples and configuration table
- Multi-camera use case
Changed
- Updated default config values to match implementation
- Improved configuration parsing:
- Proper handling of booleans, lists, and validation
- Clear error messages for invalid env vars
- Improved shutdown behavior and logging
- Reduced redundant OCR calls in Tesseract
- Improved FPS performance through internal tweaks
- Improved documentation readability and structure
Fixed
FILTER_OCR_LANGUAGEis now parsed correctly- Fixed incorrect detection of PROMO labels as line items
- Fixed logic for
transaction_statusupdates (ENG-1373) - Replaced
external_id_typewithexternal_id(ENG-1371) - Fixed double OCR processing and shutdown behavior issues
- Fixed template for temporary JSON Formatter
Feature
- Added
frame_skipvariable to improve processing efficiency
Internal
- Internal improvements and refactoring
Experimental
- Temporary JSON Formatter added:
- Enabled via
transform_to_mqttflag - Will be removed after integration with
JSONOutputFormaterFilter
- Enabled via
Payload Enhancements
video_chunksadded to the outgoing payload