Parent roadmap: #3
Objective
Create a clean OCR adapter interface so LaserAnalysisAI can compare multiple OCR engines and avoid treating one engine's noise as evidence.
Tasks
- Define an OCR adapter interface with input image/ROI, preprocessing metadata, timeout, language/script settings, and output schema.
- Support at least one local baseline OCR engine first, then leave extension points for additional engines.
- Normalize outputs: text, confidence, bounding boxes, character boxes when available, engine version, runtime, and failure reason.
- Store all OCR attempts, including empty/null outputs.
- Add ensemble fields for cross-engine agreement and disagreement.
Acceptance criteria
- OCR results from different engines can be compared using the same schema.
- Empty OCR output is preserved and visible in reports.
- Engine/version metadata is included in
results.json.
- Unit tests can run with a stub OCR adapter without requiring heavy OCR dependencies.
Notes
The goal is not to force OCR to see text. The goal is to record whether independent detectors converge on structured output above controls.
Parent roadmap: #3
Objective
Create a clean OCR adapter interface so LaserAnalysisAI can compare multiple OCR engines and avoid treating one engine's noise as evidence.
Tasks
Acceptance criteria
results.json.Notes
The goal is not to force OCR to see text. The goal is to record whether independent detectors converge on structured output above controls.