fix: move Struktur step after OCR so word boxes are available for exclusion
Some checks failed
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-school (push) Successful in 28s
CI / test-go-edu-search (push) Successful in 30s
CI / test-python-klausur (push) Failing after 2m2s
CI / test-python-agent-core (push) Successful in 17s
CI / test-nodejs-website (push) Successful in 18s

Graphic detection needs word positions to exclude text from the ink mask.
Previously Struktur ran before OCR, causing every word to be detected as
a graphic element. Now:
- Pipeline: Struktur at index 7 (after Wörter)
- Kombi: Struktur at index 5 (after PP-OCRv5+Tesseract, before Tabelle)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-03-16 13:38:58 +01:00
parent 6b9b280ba3
commit 3aa4a63257
4 changed files with 32 additions and 30 deletions

View File

@@ -92,15 +92,15 @@ export default function OcrPipelinePage() {
let uiStep = Math.max(0, dbStep - 1)
const skipSteps = [...(savedDocType?.skip_steps || [])]
// Sub-sessions: image is already cropped, skip pre-processing + structure steps
// Jump directly to columns (UI step 5) unless already further ahead
// Sub-sessions: image is already cropped, skip pre-processing steps
// Jump directly to columns (UI step 4) unless already further ahead
const isSubSession = !!data.parent_session_id
const SUB_SESSION_SKIP = ['orientation', 'deskew', 'dewarp', 'crop', 'structure']
const SUB_SESSION_SKIP = ['orientation', 'deskew', 'dewarp', 'crop']
if (isSubSession) {
for (const s of SUB_SESSION_SKIP) {
if (!skipSteps.includes(s)) skipSteps.push(s)
}
if (uiStep < 5) uiStep = 5 // columns step (now index 5)
if (uiStep < 4) uiStep = 4 // columns step (index 4)
}
setSteps(
@@ -330,10 +330,10 @@ export default function OcrPipelinePage() {
2: 'Begradigung',
3: 'Entzerrung',
4: 'Zuschneiden',
5: 'Struktur',
6: 'Spalten',
7: 'Zeilen',
8: 'Woerter',
5: 'Spalten',
6: 'Zeilen',
7: 'Woerter',
8: 'Struktur',
9: 'Korrektur',
10: 'Rekonstruktion',
11: 'Validierung',
@@ -373,13 +373,13 @@ export default function OcrPipelinePage() {
case 3:
return <StepCrop sessionId={sessionId} onNext={handleCropNext} />
case 4:
return <StepStructureDetection sessionId={sessionId} onNext={handleNext} />
case 5:
return <StepColumnDetection sessionId={sessionId} onNext={handleNext} onBoxSessionsCreated={handleBoxSessionsCreated} />
case 6:
case 5:
return <StepRowDetection sessionId={sessionId} onNext={handleNext} />
case 7:
case 6:
return <StepWordRecognition sessionId={sessionId} onNext={handleNext} goToStep={goToStep} />
case 7:
return <StepStructureDetection sessionId={sessionId} onNext={handleNext} />
case 8:
return <StepLlmReview sessionId={sessionId} onNext={handleNext} />
case 9: