Skip to content

Phase 3: OCR engine adapter layer and ensemble results schema #9

Description

@ProhibitedTV

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions