feat(analysis): position-aware OCR seam dedup for sliced pages
Boundary text duplicated across slices (often with slightly different, cropped transcriptions) survived the text-only merge. The OCR pass now asks for a per-piece vertical position and the merge uses it: - OcrResult gains optional `y` (fraction 0..1 of the slice); the Pass-A OCR schema/prompt request it (combined path leaves it None). Not persisted. - merge_ocr takes each slice's working-image y-band and maps `y` to a page-global position. A seam pair is a duplicate when position-close (same kind) OR text-similar, so a mis-OCR'd boundary line is caught even when the text differs. The kept copy is the one more central in its slice (less cropped); falls back to keep-longer when positions are missing. - Self-calibrates the model's y values (pixels vs. fraction) and ignores degenerate columns, so a bad localizer can't over-merge. Tests: position pairs differing texts and keeps the less-cropped copy; text-only fallback (dedup/keep-longer/non-adjacent/order) still holds. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "mangalord"
|
||||
version = "0.78.0"
|
||||
version = "0.79.0"
|
||||
edition = "2021"
|
||||
default-run = "mangalord"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user