117503445/flow-pdf

可以讨论下技术路线嘛

Opened this issue · 8 comments

smclh commented

我测试一下,猜测的技术路线为先进行版面分析,将图片提取处理,然后文字部分ocr识别,保存成html。
问题大致是版面分析部分不够准确(应该只提取图片就行了),ocr部分应该是公式识别不准确的问题。

我更新了 https://github.com/117503445/flow-pdf/blob/master/docs/design.md。不过我在文档里只说了怎么做,没有说为什么这样做。如果你对某些问题比较好奇,可以继续在这个 Issue 里问我。

只提取图片是不行的。比如代码块,再比如一些性能测试的图表,里面的坐标轴文字都是可复制的文字而不是位图。这些复杂元素都是使用 HTML 难以表达的,且在 PDF 文件结构中也不是图片。

文字部分我是直接从 PDF 文件结构中解析的。

现在最主要的问题是我使用 PyMuPDF 解析 PDF 得到的元素信息本身可能就存在问题,比如文字元素面积比实际渲染的面积要大,从而影响了后续的解析质量。

目前我没有使用任何 AI 技术,但我在考虑使用 layout-parsernougat 辅助分析。

smclh commented

你好,我最近对这方面也是比较感兴趣,我的思路是先使用layout-parser提取出图片(将一个pdf文件分解成若干个部分,图片和文字(nougat可以识别的部分)),然后使用nougat进行文字的提取,再将整个文档的顺序调整好,使用chatgpt对整个文本进行翻译,保存回html和pdf格式

我之前感觉 layout-parser 的准确率不是太让人满意,不过只是图片的话应该问题不大。

感觉你的思路挺可行的

测试了一下,感觉 layout-parser 在图片和表格上的表现也不是很妙。但我看 Nougat 的论文提到使用 pdffigure2 进行了预处理,或许可以借助 pdffigure2 将这些数据插入进来。

https://github.com/117503445/flow-pdf/tree/master/src/nougat 封装了 Nougat 服务,可以直接生成 HTML,也可以在阿里云函数计算上跑。但是比特币的 9 页论文就要跑 4 分钟,而且用到 GPU 有点小贵,所以还没有公开免费测试,可以本地先部署试试看效果。

smclh commented

不使用 layout-parser的nougat错误率太高了,一直出现预测失败的情况

emm 好吧,那看来他们都不是特别靠谱

知乎上还有人提到 kosmos-2.5,以后可以关注一下

smclh commented

kosmos-2.5 还没开源出来,这个是可以期待下。 layout-parser如果能实现图片的分割和整体页面的分割排序也就是可以使用了。