fix(#350): OCR-Merge nutzt Center-Y-Distanz statt y-Überlapp #351
No reviewers
Labels
No labels
app/archiv
app/einkaufslisten
app/imap-client
app/wissensbasis
arch-answered
arch-question
area/api
area/auth
area/infra
area/mobile
area/shared
area/ui
area/web
portfolio-status
prio/high
prio/low
prio/medium
roadmap/public
size/l
size/m
size/s
size/xl
size/xs
status/blocked
status/needs-info
type/bug
type/chore
type/docs
type/feature
type/idea
type/refactor
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
admin-mrrm/mrrmlabapp!351
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/350-merge-center-heuristic"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Follow-up zu #325 / PR #346. Im echten Foto-Test wurden zwei semantisch getrennte Handschrift-Zeilen („300g Kirschen" + „Erdbeeren") fälschlich zusammengemerged.
Ursache
Alte Heuristik in
_merge_overlapping_bboxes:y_overlap / min(h) > 0.4. Bei deutscher Handschrift mit Unterlängen (g, p) und Oberlängen (E, K) erzeugen vertikal benachbarte Zeilen oft 40–50 % Streifen-Überlapp — ohne semantisch eine Zeile zu sein.Fix
Umstellung auf Center-Y-Distanz:
Zwei Boxen gehören nur dann zur selben Zeile, wenn ihre Mittellinien wirklich auf gleicher Höhe liegen. Ist robust gegen Ober-/Unterlängen.
Tests
test_merge_overlapping_bboxes_keeps_stacked_lines_with_descender_overlapmit Geometrie aus dem realen Failure-Case (45 % y-Überlapp, aber Center-Differenz 22 px > 20 px = halbe Box-Höhe).extract_text-Mock-Test bleiben grün (offline geprüft, vollständige Suite läuft auf Drone).Fixt #350.
Test plan
pytest apps/ocr/tests/test_ocr.py -vgrün (Drone-CI)