V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
i2000s
V2EX  ›  程序员

求训练识别手写英文加公式为 LaTeX 编码的机器学习程序

  •  
  •   i2000s ·
    i2000s · 2017-07-28 09:45:19 +08:00 · 5250 次点击
    这是一个创建于 2674 天前的主题,其中的信息可能已经有所发展或是发生改变。
    自己经常要把手写的英文加数学公式的 OneNote 笔记转换成 LaTeX,比较繁琐机械。求人工智能帮忙。自己搜了下,好像还比较麻烦,目前只有单一识别公式或者只适用于印刷体混合识别的软件。请推荐便于自主改进的程序包以同时识别文本与公式的混排,我可以逐渐训练之。

    谢谢。
    29 条回复    2017-07-30 14:43:23 +08:00
    atempcode
        1
    atempcode  
       2017-07-28 10:32:04 +08:00
    i2000s
        2
    i2000s  
    OP
       2017-07-28 10:37:17 +08:00
    @atempcode 我了解这个工具,不过我不是要在线手写识别。而是希望把手头已经完成的手稿变为 LaTeX,同时包括文字和公式。谢谢。
    snnn
        3
    snnn  
       2017-07-28 10:37:54 +08:00 via Android
    我有。上次回地球探亲的时候忘了一起带回来了。
    zetary
        4
    zetary  
       2017-07-28 10:45:03 +08:00 via Android
    OneNote 自带这个功能啊…你在想什么呢
    i2000s
        5
    i2000s  
    OP
       2017-07-28 11:04:37 +08:00
    @zetary OneNote 能把手写文字变文本,但是还没有把文字与公式混编的文件变 LaTeX 的功能吧?
    hobochen
        6
    hobochen  
       2017-07-28 11:16:19 +08:00 via Android
    预算 1e7 人名币吧。。
    ss098
        7
    ss098  
       2017-07-28 11:27:19 +08:00
    http://webdemo.myscript.com/views/math.html

    之前看的一个在线服务,这家貌似非常厉害。
    zetary
        8
    zetary  
       2017-07-28 11:31:39 +08:00 via Android
    @i2000s 是的,而且也不是 LaTex 那个是 MathML 吧
    chinvo
        9
    chinvo  
       2017-07-28 11:44:32 +08:00
    楼主不会是某某搜题的高考机器人项目组的吧(逃
    murmur
        10
    murmur  
       2017-07-28 11:46:14 +08:00
    这种东西我认为就算是高考阅卷老师都得靠猜 数学和物理这些公式复杂起来是没底线的
    catfish
        11
    catfish  
       2017-07-28 11:56:08 +08:00 via iPhone
    想知道你有多少样本可以用来训练
    i2000s
        12
    i2000s  
    OP
       2017-07-28 12:07:58 +08:00
    @catfish 这些是我每天的研究笔记,目前已经有不少了。正在写 200 页+的学位论文,还有几篇文章待发。虽然不算多,但可以笔耕不辍,源源不断,不断训练。我导师那里一堆的教学笔记,还有配套的部分书稿对应。
    toml
        13
    toml  
       2017-07-28 12:16:04 +08:00 via iPhone
    @catfish 有的老师不是正好有 “不交作业就罚抄课本 XXX 次” 的习惯吗😏
    ivechan
        14
    ivechan  
       2017-07-28 12:34:02 +08:00
    说实话可以考虑请人代抄. 这也是 人工的"人工智能".
    zetary
        15
    zetary  
       2017-07-28 12:40:30 +08:00 via Android
    要识别哪些是文字哪些是公式,还要把公式转成 LaTex …因为方位的原因识别公式效果都堪忧
    i2000s
        16
    i2000s  
    OP
       2017-07-28 12:52:50 +08:00
    @zetary 对,说实话,这东西要实现起来还是有点难度。不过关键是这是个小众市场,除了考试教学之外没有太大的市场,所以商业化的产品目前我还没看到有。如果有同仁对此感兴趣,可以共同探讨。
    catfish
        17
    catfish  
       2017-07-28 12:53:53 +08:00 via iPhone
    @i2000s 太少了…起码也 2W 页吧。两万页的手写图片和对应的公式。
    i2000s
        18
    i2000s  
    OP
       2017-07-28 12:55:00 +08:00
    @toml @ivechan 哈哈 你们这倒是有意思的积累数据的办法!
    catfish
        19
    catfish  
       2017-07-28 12:55:08 +08:00 via iPhone
    @toml 哈哈哈哈哈哈哈,这脑洞!不过只有小学生才会被罚抄吧。
    i2000s
        20
    i2000s  
    OP
       2017-07-28 12:57:31 +08:00
    话说我有一个研究生阶段的老师布置的作业就是每人要把课堂的板书整理成电子版。有些人是提交的手写的扫描件,有些人提供的是最后的 LaTeX 版本,两者正好大体互为对照。
    rogerchen
        21
    rogerchen  
       2017-07-28 13:04:09 +08:00
    1. 识别公式符号
    2. 识别公式结构
    3. 转化为 AST
    4. PGCF 定结构
    5. 转换到 Latex

    2 是基本搞不出来的,这种工作做出来至少是千万级别的产品市场。
    lcqtdwj
        22
    lcqtdwj  
       2017-07-28 14:00:50 +08:00
    人工智能重要的一半就是人工啊 lol
    ihciah
        23
    ihciah  
       2017-07-28 14:44:57 +08:00 via iPhone
    可以无脑试试 CNN+STN 提特征然后丢 LSTM 里吐输出…不过训练数据不好搞诶
    manifold
        24
    manifold  
       2017-07-28 19:30:28 +08:00
    @ihciah =。=这也太粗暴了吧,而且想想 LaTeX 各种各样的宏包。。table,figure 什么的就很酸爽
    ypw
        25
    ypw  
       2017-07-28 23:08:41 +08:00   ❤️ 1
    CNN+BiLSTM+CTC 在训练集数量够多的情况下,可以识别单行。多行的话需要用 OpenCV 自己裁。

    我写过一个简单的识别 captcha 的 Demo,用 Keras 做的,你可以参考一下: https://github.com/ypwhs/captcha_break

    然后百度有个比赛( http://meizu.baiducloud.top/ps/web/contestIntroduction.html#/dataDownloading )是通过图片识别四则运算式子的,用这个方法可以做到很高的准确率。
    ypw
        26
    ypw  
       2017-07-28 23:11:21 +08:00
    估计你训练出来一个可靠的模型至少要上万张图,而且没有显卡基本上玩不了,入坑需谨慎。
    andyhenry
        27
    andyhenry  
       2017-07-29 22:12:34 +08:00
    机器识别出来的手写公式的 tex 代码得多么丑。。自己手打吧,或者雇人打。
    i2000s
        28
    i2000s  
    OP
       2017-07-30 00:28:02 +08:00
    @ypw 感谢提供的参考资料。为什么用 OpenCV 可以实现对多行公式和文字的识别?

    看样子目前国内对这个方向的重视程度还是比较高啊。人类科技探索的根本目的是实现从实践到理论,再从理论到实践的过程。如果人工智能能够实现这个全过程的参与,将是对社会发展的极大促进。
    ypw
        29
    ypw  
       2017-07-30 14:43:23 +08:00
    @i2000s OpenCV 直接做识别很难,我的意思是用 OpenCV 抠字。比如先对图像进行校正,然后对 x 方向统计直方图,可以根据分界线抠出单行文字,然后再用 CNN + RNN 去识别具体的字。

    当然,我们也可以用深度学习直接抠字,参考链接: https://arxiv.org/abs/1703.06520

    CNN + LSTM + CTC 识别参考: https://arxiv.org/abs/1507.05717
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2796 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 14:25 · PVG 22:25 · LAX 06:25 · JFK 09:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.