Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

可以讨论下技术路线嘛 #7

Open
smclh opened this issue Oct 11, 2023 · 8 comments
Open

可以讨论下技术路线嘛 #7

smclh opened this issue Oct 11, 2023 · 8 comments

Comments

@smclh
Copy link

smclh commented Oct 11, 2023

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

@117503445
Copy link
Owner

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

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

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

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

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

@smclh
Copy link
Author

smclh commented Oct 11, 2023

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

@117503445
Copy link
Owner

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

感觉你的思路挺可行的

@117503445
Copy link
Owner

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

@117503445
Copy link
Owner

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

@smclh
Copy link
Author

smclh commented Oct 16, 2023

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

@117503445
Copy link
Owner

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

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

@smclh
Copy link
Author

smclh commented Oct 20, 2023

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants