使用Apache Tika + Tesseract提取扫描PDF的速度很慢

时间:2017-11-14 10:45:38

标签: java performance ocr tesseract apache-tika

Apache Tika extract scanned PDF files开始,扫描文档的效果非常好。但问题是,它占用了太多时间以及CPU利用率。

在我的情况下,15 MB文件23 pages占用~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();

如何让它更优化/更快?有什么建议吗?

1 个答案:

答案 0 :(得分:0)

正如@Gagravarr在评论中提到的那样,这并不是Tika的慢点,因为Tesseract是消耗CPU的过程。

要处理此问题,我已使用FIFO方法在另一台服务器上分离了此过程。这样一次只能处理一个文件。