0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心
发布

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一款通过AI技术自动批改数学作业的APP

Tensorflowers 来源:未知 作者:李倩 2018-11-19 15:24 次阅读

爱作业是一款通过AI技术自动批改数学作业的 APP,上线一年来已经积累超过千万用户, 帮助大量的老师和家长节约时间,提高效率。

在爱作业 APP 里面有个功能叫 “口算同步练”,我们希望提供给小朋友一种轻量的方便的方法可以直接在手机上巩固训练口算。如下图所示:

识别在屏幕上手写的笔迹,我们最早使用的方法是追踪书写轨迹,这也是比较传统和经典的方法,这种方法依赖于规则,不需要大量的训练数据。 但是经过我们试验,这种方法对于少量数字效果还不错,对于位数比较多的数字,特别是数字之间还存在连写,或者书写顺序不够标准的情况, 识别效果就差强人意了。

这时候我们想到要使用 Deep Learning 来解决问题,然后我们需要解决训练数据,模型, 和移动端部署的问题。

首先是训练数据,这是深度学习绕不开的问题。为此,我们专门开发了一个小工具(iOS/Android),让我们的标注人员可以方便的生成训练数据。这个工具会随机生成一些数字(包含小数点,分数),然后标注人员在屏幕中书写提示的数字,然后可以方便的保存到我们的服务器。 我们就这样收集到了第一批原始数据大概有 5000张训练图片左右。

然后是模型。由于模型需要在移动端运行,所以不管是图片输入大小和模型本身,都需要相对精简。基于竖屏的比例,我们最终采用了将所有图片预处理成 60x100(高x宽) 的大小。模型的整体方案是一个 seq2seq 的模型,这个框架最早是 Google 用于解决 NLP 相关的问题, 我们可以把它做一些调整来做图像 OCR。

首先我们需要一个生成 feature 的基础模型,最终我们采用了 MobileNet。 MobileNet 模型的核心就是将原本标准的卷积操作因式分解成一个 depthwise convolution 和一个 1*1 的卷积(文中叫 pointwise convolution)操作。简单讲就是将原来一个卷积层分成两个卷积层,其中前面一个卷积层的每个 filter 都只跟 input 的每个 channel 进行卷积,然后后面一个卷积层则负责 combining,即将上一层卷积的结果进行合并。MobileNet 可以在基本保证准确率的前提下大大减少计算时间和参数数量。 正如这个命名,我们相信用这个作为基础网络可以在移动端有不错的表现, 并且这个模型在TensorFlow的 model zoo 中有标准实现,并且提供了预训练模型。丰富的模型实现也是我们当初选择用 TensorFlow 来实现的重要原因之一。

在得到图片 feature 以后,我们通过 LSTMRNN 进行一个标准的 Encoder->Decoder 过程,得益于 TensorFlow 的丰富实现,这整个过程只要调用 TensorFlow 中 seq2seq 相关接口就可以轻松实现。 不过 seq2seq 的接口在 TensorFlow1.0 以后有一些接口上的变化,我们使用了更新以后的接口。

接下来是如何把模型放到客户端去运行,我们在这里面临诸多选择。 整体方案来看,我们需要选择使用 TensorFlow Mobile 还是 TensorFlow Lite,另外在 iOS 端,我们需要考虑是否要将模型转为 iOS 的 CoreML 模型。由于 CoreML 只从 iOS 11 开始支持,我们很快否掉了这个选项。我们在做这个功能的时候,TensorFlow 刚发布了 1.4(目前已经 1.12 了),Lite 还是一个全新的东西, 最大的问题是对于各种 ops 支持不够好,而且当时官方网站也是推荐在生产环境中使用 Mobile 版本, 所以尽管 Lite 有着各种优点, 我们还是选择了 Mobile。

TensorFlow Mobile 的文档也算是相对丰富的,我们在部署的过程中并没有遇到太大的障碍。有一点需要注意的是,需要使用 print_selective_registration_header 这个小工具来分析模型中真正使用到的算子,从而大大减少生成的运行库的大小。

就这样我们第一个版本顺利上线并稳定运行,但我们依然关注着 Lite 的动态。 在经过一些考虑后,特别是在 2018 年 10 月的谷歌开发者大会上听到了更多 TensorFlow Lite 的介绍,我们决定用Lite 替换掉 Mobile 版本,主要基于以下几个考虑:

更小的运行库体积, 通过 TensorFlow Lite 生成的运行库体积很小,去掉了很多不必要的依赖。比如模型采用新的更轻量级 FlatBuffers格式,而之前使用的 protobuf 需要很多的依赖库。同时 TensorFlow Lite 以更加轻量级的方式实现了原来 TensorFlow 中的核心算子, 也有效降低了运行库的体积。

更快的运行速度。 TensorFlow Lite 很多核心算子是专门为移动平台优化过的,同时通过NNAPI能够透明的支持GPU加速,在一些老设备上能够自动回滚到CPU计算。

TensorFlow Lite 的模型量化功能,将模型量化到 int8,在几乎不怎么损失计算精度的情况下把模型变为原来的 1/4 大小。

但是我们仍然遇到了很多困难。主要是:

TensorFlow Lite 尚不支持 controlflow,意味着 TensorFlow 新 seq2seq 接口中的 dynamic_decode不能正确导出执行。

TensorFlow Lite 中对于 LSTM 的支持不够完善,比如 forgetbias 参数并不支持。

我们所使用的部分 operators 在 TensorFlow Lite 中还不支持,比如 GatherTree等等。

在 TensorFlow Lite 中实现 controlflow 并不是件容易的事情,并不能直接通过 customop 来实现,最终我们把动态解码变成了静态展开,稍微损失了一些性能但是解决了这个问题。 对于 forget bias 的问题, 我们取巧的在参数恢复的时候把 forgetbias 加在 LSTMforgetgate 的 bias 上,这样就不用修改 TensorFlow Lite 的代码了。对于其他问题,都可以通过 customop 来实现,相对容易一些。

最终我们通过 toco 把 graphpb 导出成 TensorFlow Lite 格式,接下来就是要集成到手机上运行。在这一步上我们并没有遇到太多阻碍。因为有了之前集成 TensorFlowMobile 的经验,我们很快完成了集成。 我们在具体实现的时候把识别接口做了封装,这样在我们从 TensorFlowMobile 迁移到 TensorFlowLite 的时候,客户端开发的同事几乎不需要改动代码就可以使用新的接口。

在完成 TensorFlow Mobile 到 TensorFlow Lite 的迁移以后,我们单次 inference 的速度提高了20%,模型大小减少了 75%,可以说是非常有吸引力的。

随着手机端计算能力的不断增强,越来越多的深度学习模型可以在手机端运行。 目前TensorFlow Lite 也在快速开发迭代中,相信 TensorFlow Lite 会在更多实践中越来越好。

感谢 TensorFlow Lite 团队在我们的开发过程中给予的支持,特别是顾仁民和刘仁杰两位技术专家给我们提供了很多有帮助的资料和参考,希望将来有更多的合作机会。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 深度学习
    +关注

    关注

    73

    文章

    5415

    浏览量

    120429
  • ai技术
    +关注

    关注

    1

    文章

    1243

    浏览量

    23948

原文标题:爱作业口算同步练,TensorFlow Lite 实践

文章出处:【微信号:tensorflowers,微信公众号:Tensorflowers】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    中伟视界:矿山智能化安全生产,未戴自救器检测AI算法助力保护作业人员安全

    矿山 作业环境复杂危险,确保 作业人员佩戴自救器是重要措施之 。未戴自救器检测 AI算法 通过图像识别和人工智能
    的头像 发表于07-17 13:10 144次阅读
    中伟视界:矿山智能化安全生产,未戴自救器检测<b class='flag-5'>AI</b>算法助力保护<b class='flag-5'>作业</b>人员安全

    苹果要将苹果智能做成AI时代的APPStore?

    ,苹果正与Meta等 AI巨头展开深入合作,这 战略举措预示着苹果智能平台将成为 AI大模型的新“ AppStore”。 看来OpenAI原本想做的 AI
    的头像 发表于07-01 15:58 307次阅读
    苹果要将苹果智能做成<b class='flag-5'>AI</b>时代的<b class='flag-5'>APP</b> Store?

    中国教育AI在美受热捧,AI作业助力学生学习

    Gauth系字节跳动于2019年打造,而Question AI出自 作业帮之手。自2023年面市以来,Question AI已在 AppStore和Google Play累计被下载超过6
    的头像 发表于05-28 15:53 290次阅读

    飞利浦影音推出首AI会议降噪耳机飞利浦“8号”

    飞利浦影音近日重磅推出其首 AI会议降噪耳机——“8号”。这款产品的诞生,是飞利浦影音与小鹿声文 App深入合作的结晶,同时得到了“腾讯混元”语言大模型提供的强大 AI
    的头像 发表于05-13 11:29 611次阅读

    鸿蒙ArkUI开发实战:eTS版【笑话app

    制作 一款笑话 app,使用ArkUI。
    的头像 发表于03-25 16:04 321次阅读
    鸿蒙ArkUI开发实战:eTS版【笑话<b class='flag-5'>app</b>】

    NanoEdgeAI技术原理、应用场景及优势

    等领域。以下是 些具体的应用场景: 1 . 智能家居: 通过将 NanoEdge AI集成到智能家居设备中,可以实现对家庭环境的实时监控和智能控制,如温度调节、照明控制、安防监控等。 2.工业
    发表于03-12 08:09

    weblogic修改数据源需要重启吗

    WebLogic是 一款支持Java EE(Java Enterprise Edition)规范的应用服务器, 通过WebLogic可进行数据源的配置和管理。在WebLogic中修 改数据源是否需要重启
    的头像 发表于12-05 16:09 963次阅读

    如何选择一款真对数放大器?

    想选择 一款真对数放大器,用来实现接收机的动态范围的压缩,信号频率为10M, 压缩前动态范围为120dB, 想 通过放大器压缩到70dB范围内? 请推荐几 芯片? 谢谢
    发表于11-22 08:23

    一款适合自动化在线测试屏蔽箱

    闸刀式屏蔽箱是 一款适合半 自动化和 自动化操作的屏蔽箱,可根据产线需求实现产线流水线测试需求,可实现流水线线体从箱子穿过,为中小型设备的测试提供了优良可靠的射频屏蔽。
    的头像 发表于11-17 16:18 528次阅读
    <b class='flag-5'>一款</b>适合<b class='flag-5'>自动</b>化在线测试屏蔽箱

    解锁每一款属于你的AI,即刻预约Microsoft Ignite!

    解锁每 一款属于你的 AI,即刻预约Microsoft Ignite! , 发表于 2023-11-13 08:00 , , 原文标题:解锁每 一款属于你的 AI,即刻预约Microsof
    的头像 发表于11-13 08:15 189次阅读

    一款即热式热水器自动恒温实验电路图

    德赢Vwin官网 网站提供《 一款即热式热水器 自动恒温实验电路图.pdf》资料免费下载
    发表于11-02 14:41 2次下载
    <b class='flag-5'>一款</b>即热式热水器<b class='flag-5'>自动</b>恒温实验电路图

    一款国产USB3.0HUB集线器芯片

    *附件:和芯润德 USB3.0HUB 设计资料.rar 推荐 一款国产 USB3.0 HUB芯片,型号SL6340 推荐 一款国产3.0HUB,型号SL6340,是 一款由和芯润德科技自主研发的国产
    发表于10-20 18:20

    介绍一款基于昆仑芯AI加速卡的高效模型推理部署框架

    昆仑芯科技公众号全新栏目“用芯指南”重磅推出!面向 AI行业 技术从业者,系列好文将提供手把手的昆仑芯产品使用指南。第 期围绕昆仑芯自研效能工具——昆仑芯Anyinfer展开,这是 一款基于
    的头像 发表于10-17 11:16 1360次阅读
    介绍<b class='flag-5'>一款</b>基于昆仑芯<b class='flag-5'>AI</b>加速卡的高效模型推理部署框架

    AI大潮下MCU/MPU“何为”“如何为”?透过一款具体方案找答案

    ,如何在现有方案的基础上加入 AI的能力。笔者认为,在第二十三届中国国际工业博览会(以下简称:工博会)上,瑞萨电子的 一款方案具有很好的借鉴意义。 基于Arm® Cortex®-M85内核MCU的嵌入式 AI本次工博会上,瑞萨电子围
    的头像 发表于09-27 00:13 1107次阅读
    <b class='flag-5'>AI</b>大潮下MCU/MPU“何为”“如何为”?透过<b class='flag-5'>一款</b>具体方案找答案

    AI智能呼叫中心

    、数据驱动决策以及人力成本节约,旨在深入剖析其核心优势和对企业的重要意义。 自动化处理 AI智能呼叫中心 通过引入自然语言处理(NLP)、机器学习和
    发表于09-20 17:53