Open Ward-zzZ opened 10 months ago
建议收到,之后会考虑
目前的前端框架支持简单Markdown渲染。但如果要支持latex语法渲染,我研究了一下,都要付出一定的代价。
python使用 matplotlib
库将latex字符串渲染为图片,交给前端显示。 matplotlib
大小 16MB 左右。
qml中加载一个web浏览器内核,通过 MathJax
等js库渲染网页,将网页嵌入软件面板中显示。qt的浏览器内核要 100MB 左右。
python请求在线API服务,获取图片。无法离线使用。
生成一个内置 MathJax
库的网页html文件,调用系统浏览器打开渲染。基本无需占用存储空间,但是操作较繁琐,而且不能实时预览更新。
使用 LaTeXML 等命令行工具将字符串转为xml文本。但是该工具的安装非常麻烦,且可能无法绿色化(提取出能单独运行的exe)。
总之,我暂时没有找到一个能平衡空间占用与性能的方案。如果各位有建议可以提。
总之,我暂时没有找到一个能平衡空间占用与性能的方案。如果各位有建议可以提。
天若的开源版本没有渲染的功能,但是闭源有😂在识别出来的那一刻才进行渲染,而不是实时渲染可以减少空间占用和性能吗
@realDGD
感谢你提供的线索。我出于学习的目的 反编译了天若OCR闭源版本,发现它是采用第2种方案。
首先,它的前端界面库 DSkin 原生支持 Html5+CSS3 ,允许直接显示html格式的公式。
然后,首次运行时下载一个 MathJax.js
。通过该js库,将 Latex 格式的文本转变为 html 元素,将该元素更新到软件界面上。
柳暗花明又一村!我初步实现了公式渲染。
具体原理是,借助 hfmath.js 这个项目,用js脚本将 latex
字符串转变为 svg
字符串。然后在qml中渲染svg图像。
全程只使用qml引擎自带的js解释器,无需引入额外组件,离线运行,支持实时刷新。
不足:
综合效果没有天若的 MathJax.js
方案那么好,但至少能用😂
- 只支持纯latex公式,不支持混合文本和公式的Markdown格式。
感谢开发者。
我在用pix2text serve中地Mixed模式会碰到将公式识别成普通文本的问题,我觉得这种东西还是专品专用比较好。
开发者是否可将这个功能单独提出来,采取不同的快捷键的方式分别进行文字识别,公式识别和混合识别。我记得pix2text项目是有cnocr,cnstd两个分支。
另外,可能是我一开始用的是天若OCR养成了使用习惯,对于截图OCR的功能我更倾向于文本识别,表格识别,公式识别的划分,而不是采用mixed。同时,该软件截图功能也很全(画图,序号,马赛克,撤销与重做,录制等等),加上翻译功能,我完全不用再安装其他的截图等软件,可以说是All in One。但是天若从2022年后就没更新了,发邮件也没人回复,很多服务的接口都没有(虽然可以自己写,但无奈实在是不会C#)。
我看目前支持本地公式OCR的面向用户的项目其实挺少的(也有可能是这个功能的使用对象比较小众,最近挺火的PixPin也没人在request提这个功能。),感觉这个方向很不错。
如题,有些时候数学公式识别出来不一定正确,如果能提供MD预览,就可以快速在识别结果上修改
OpenDataLab 开源的这个MinerU项目可以很好地把PDF里的公式提取出来,专门为大模型语料从复杂文档(PDF、网页、电子书)中提取开发的工具,效果挺好,速度也很快,需要的话,可以看看:https://github.com/opendatalab/MinerU
如题,有些时候数学公式识别出来不一定正确,如果能提供MD预览,就可以快速在识别结果上修改