Hi, I'm Ishan, I'm a high school junior working on Maxun through CodeDay Labs.
I've been reading through DocumentInterpreter.ts and wanted to check something before assuming.
preprocessPageImage() (the Sauvola binarization) seems to only be reachable from
the Tesseract paths. ocrPDF calls it on every rasterized page but paddleOCRPDF
doesn't, and PaddleOCR is the one that runs first, with Tesseract only firing on
a throw. So unless I'm misreading it, the binarization doesn't actually run in
the common case.
Is that on purpose? I could see it being deliberate, since Paddle does its own
normalization and binarizing first might hurt its detection model. If it isn't,
I'd like to look into it, though I'd want to build some kind of OCR quality
benchmark first, since there's no way to measure whether preprocessing helps or
hurts right now.
Hi, I'm Ishan, I'm a high school junior working on Maxun through CodeDay Labs.
I've been reading through DocumentInterpreter.ts and wanted to check something before assuming.
preprocessPageImage() (the Sauvola binarization) seems to only be reachable from
the Tesseract paths. ocrPDF calls it on every rasterized page but paddleOCRPDF
doesn't, and PaddleOCR is the one that runs first, with Tesseract only firing on
a throw. So unless I'm misreading it, the binarization doesn't actually run in
the common case.
Is that on purpose? I could see it being deliberate, since Paddle does its own
normalization and binarizing first might hurt its detection model. If it isn't,
I'd like to look into it, though I'd want to build some kind of OCR quality
benchmark first, since there's no way to measure whether preprocessing helps or
hurts right now.