[Bug] OCR: Zeilensegmentierung teilt einzelne handschriftliche Zeilen in zwei Einträge #325

Closed
opened 2026-05-18 08:20:25 +02:00 by admin-mrrm · 2 comments
Owner

Beobachtetes Verhalten

Beim Einlesen handgeschriebener Einkaufszettel wird der Inhalt einer einzelnen Zeile vom OCR häufig nicht als zusammengehörig erkannt. Folge: Aus einer Zeile entstehen zwei Listen-Einträge (Over-Segmentation).

Erwartetes Verhalten

Eine handgeschriebene Zeile soll als ein Eintrag in die Einkaufsliste übernommen werden.

Reproduktion

  1. Foto eines handgeschriebenen Einkaufszettels machen (mehrere Zeilen)
  2. In der App OCR-Analyse starten
  3. Im Review-Screen beobachten: einzelne reale Zeilen tauchen als zwei oder mehr Einträge auf

Umgebung

  • App: mobile (Expo)
  • Version / Commit: bitte ausfüllen
  • OS / Device: bitte ausfüllen

Zusätzliche Infos

Vermutliche Ursache: Die Zeilen-Segmentierung (aktuell ocr.py-Pipeline auf dem Server, später on-device per #81) teilt Boxen zu aggressiv: bei Buchstaben mit Unterlängen, Lücken innerhalb eines Worts oder leichter Schräglage entstehen mehrere Bounding-Boxes pro echter Zeile.

Mögliche Stellschrauben:

  • Stärkere horizontale Dilation vor Contour-Detection (mehr Verschmelzung naher Komponenten)
  • Mindest-Breite/Vertikal-Overlap-Filter zum Mergen benachbarter Boxen, deren y-Bereich sich überlappt
  • Optional: Post-Processing das benachbarte Items mit gleichem y-Center wieder zusammenfasst

Verwandt:

  • #81 (Zeilensegmentierung on-device — technische Migration, dieser Bug ist die Qualitäts-Achse)
  • #85 Schlusssatz (Erkennungsqualität deutscher Handschrift mit TrOCR-IAM begrenzt — separates Thema)

Mitigation aus Sicht UX: separates Feature-Issue (Vorschau erkannter Zeilen-Boxen mit Split/Merge-Korrektur).

## Beobachtetes Verhalten Beim Einlesen handgeschriebener Einkaufszettel wird der Inhalt **einer einzelnen Zeile** vom OCR häufig nicht als zusammengehörig erkannt. Folge: Aus einer Zeile entstehen **zwei Listen-Einträge** (Over-Segmentation). ## Erwartetes Verhalten Eine handgeschriebene Zeile soll als **ein** Eintrag in die Einkaufsliste übernommen werden. ## Reproduktion 1. Foto eines handgeschriebenen Einkaufszettels machen (mehrere Zeilen) 2. In der App OCR-Analyse starten 3. Im Review-Screen beobachten: einzelne reale Zeilen tauchen als zwei oder mehr Einträge auf ## Umgebung - App: mobile (Expo) - Version / Commit: _bitte ausfüllen_ - OS / Device: _bitte ausfüllen_ ## Zusätzliche Infos **Vermutliche Ursache:** Die Zeilen-Segmentierung (aktuell `ocr.py`-Pipeline auf dem Server, später on-device per #81) teilt Boxen zu aggressiv: bei Buchstaben mit Unterlängen, Lücken innerhalb eines Worts oder leichter Schräglage entstehen mehrere Bounding-Boxes pro echter Zeile. **Mögliche Stellschrauben:** - Stärkere horizontale Dilation vor Contour-Detection (mehr Verschmelzung naher Komponenten) - Mindest-Breite/Vertikal-Overlap-Filter zum Mergen benachbarter Boxen, deren y-Bereich sich überlappt - Optional: Post-Processing das benachbarte Items mit gleichem y-Center wieder zusammenfasst **Verwandt:** - #81 (Zeilensegmentierung on-device — technische Migration, dieser Bug ist die Qualitäts-Achse) - #85 Schlusssatz (Erkennungsqualität deutscher Handschrift mit TrOCR-IAM begrenzt — separates Thema) Mitigation aus Sicht UX: separates Feature-Issue (Vorschau erkannter Zeilen-Boxen mit Split/Merge-Korrektur).
Author
Owner

Verwandte neue OCR-Issues:

  • #325 [Bug] Over-Segmentation handschriftlicher Zeilen
  • #326 feat: Crop vor der Analyse
  • #327 feat: Zeilen-Boxen-Vorschau mit Korrektur

Alle drei in Milestone v0.5.

**Verwandte neue OCR-Issues:** - #325 [Bug] Over-Segmentation handschriftlicher Zeilen - #326 feat: Crop vor der Analyse - #327 feat: Zeilen-Boxen-Vorschau mit Korrektur Alle drei in Milestone v0.5.
Author
Owner

Fixed in #346 — merged auf main als d8b34a4.

Fixed in #346 — merged auf main als d8b34a4.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
admin-mrrm/mrrmlabapp#325
No description provided.