使用 Apache Tika + Tesseract 提取扫描 PDF 时速度缓慢
Slowness in extracting scan PDF using Apache Tika + Tesseract
从 Apache Tika extract scanned PDF files 开始,它非常适合扫描文档。但问题是,它花费了太多时间以及 CPU 利用率。
在我的例子中,具有 23 pages
的 15 MB
文件占用了大约 ~4.5 minute
,这太高了。请在下面找到我的工作代码,
Parser parser = new AutoDetectParser();
BodyContentHandler handler = new BodyContentHandler(Integer.MAX_VALUE);
TesseractOCRConfig config = new TesseractOCRConfig();
PDFParserConfig pdfConfig = new PDFParserConfig();
pdfConfig.setExtractInlineImages(true);
ParseContext parseContext = new ParseContext();
parseContext.set(TesseractOCRConfig.class, config);
parseContext.set(PDFParserConfig.class, pdfConfig);
//need to add this to make sure recursive parsing happens!
parseContext.set(Parser.class, parser);
Metadata metadata = new Metadata();
parser.parse(inputStream, handler, metadata, parseContext);
String content = handler.toString();
我怎样才能让它变得更多optimized/faster?有什么建议吗?
正如@Gagravarr 在评论中提到的,这不是 Tika
缓慢,因为 Tesseract
是 CPU 消耗过程。
为了处理它,我使用 FIFO
方法在另一台服务器上分离了这个过程。这样一次只处理一个文件。
从 Apache Tika extract scanned PDF files 开始,它非常适合扫描文档。但问题是,它花费了太多时间以及 CPU 利用率。
在我的例子中,具有 23 pages
的 15 MB
文件占用了大约 ~4.5 minute
,这太高了。请在下面找到我的工作代码,
Parser parser = new AutoDetectParser();
BodyContentHandler handler = new BodyContentHandler(Integer.MAX_VALUE);
TesseractOCRConfig config = new TesseractOCRConfig();
PDFParserConfig pdfConfig = new PDFParserConfig();
pdfConfig.setExtractInlineImages(true);
ParseContext parseContext = new ParseContext();
parseContext.set(TesseractOCRConfig.class, config);
parseContext.set(PDFParserConfig.class, pdfConfig);
//need to add this to make sure recursive parsing happens!
parseContext.set(Parser.class, parser);
Metadata metadata = new Metadata();
parser.parse(inputStream, handler, metadata, parseContext);
String content = handler.toString();
我怎样才能让它变得更多optimized/faster?有什么建议吗?
正如@Gagravarr 在评论中提到的,这不是 Tika
缓慢,因为 Tesseract
是 CPU 消耗过程。
为了处理它,我使用 FIFO
方法在另一台服务器上分离了这个过程。这样一次只处理一个文件。