8 月 6 日,网易有道发布了一款全新的智能学习硬件:网易有道词典笔 2.0。该词典笔只要扫一扫就能自动识别生词、句子,并提供对应的释义、翻译与读音。重要的是,所有这些功能都可以在离线的情况下完成,包括 NMT 实现的整句翻译。当然,这支笔背后的技术不止这些,ASR(语音识别)和 NLU(自然语言理解)等技术也帮助其实现了在线的语音助手问答功能。
这样集成了视觉、语言、语音系统的词典笔,才是机器学习帮助英语学习的优秀范例。那么小小的设备上,怎样才能集成图像识别和翻译的离线模型,怎样才能在准确和速度间做权衡以提供最好的使用体验?在这篇文章中,网易有道技术研发团队向机器之心介绍了词典笔 2.0 背后的核心技术。
在网易有道产品负责人吴迎晖的现场演示中,我们可以看到词典笔 2.0 在查词、翻译和发音等功能上的不凡效果。它的核心操作就是「扫一扫」,不论是纸质书籍、儿童绘本,还是产品包装盒,扫一扫就能识别陌生单词与句子。
网易有道词典笔 2.0 的使用体验
机器之心也试用了这支词典笔,我们在联网/不联网的情况下分别测试了划词识别的情况,基本上单词识别和发音体验上都是非常准确的,短句的翻译也没什么问题。此外,词典笔的使用非常方便,用笔头划一下词就能看到识别结果,划动的角度和速度也有很大的自由空间。
如果我们读文献看到不了解的词也可以用词典笔查,如下展示了离线情况下翻译论文句子的效果,从这里可以看出词典笔内置的离线翻译模型还是很厉害的。
既然识别和翻译效果都这么好,那么词典笔背后的技术到底是什么样的。它为什么扫一下就能识别单词字母,为什么能将视觉模型与翻译模型都压缩到小小的设备中,并离线实时运行?
网易有道词典笔 2.0 的技术路线
如果我们要实现扫一扫就能查词,那么 OCR、NMT 和 TTS 三大模块是不可缺少的。而且如果要将它们都嵌入到小小的端设备上,那么还需要大量的模型压缩与工程实践等工作。在后文中,我们将从 OCR、NMT 与工程实践三部分介绍有道词典笔 2.0 的技术路线。
直观而言,为了实现划一划查词查句,笔头的高速相机每秒大约会拍摄一百多张图像,这些图像要拼接在一起才能展现完整的单词或句子图像。随后 OCR 可以将拼接的图像识别为文字,并使用内置的词典与 NMT 模型进行处理。最后,词典笔再使用 TTS 生成词或句子的读音就行了。
整体上,词典笔系统从数据、算法到效果都比较有优势。借助有道词典等产品的 8 亿+用户,有道可以获得大规模文本、OCR 图像和语音的真实数据,累积的亿级高质量训练数据也能输出更加贴近学习场景的机器学习模型。下面就让我们看看词典笔最核心的技术与方法都是什么吧。
扫一扫识别单词句子
作为网易有道词典笔 2.0 最为核心的技术之一,OCR 负责「看懂」图片中文字都有什么。先简单介绍下,网易有道整体的 OCR 的情况,他们的 OCR 引擎使用了主流的卷积神经网络+循环神经网络的方法,现已支持 26 种语言文字,支持语种自动判别和混合识别,是目前国内识别语言最多的 OCR 识别引擎。整体上识别准确率最高能达到 99.6%。
如上展示了有道 OCR 的一个应用,一般识别公式要比文字更复杂一些,因为表达式的结构是多种多样的,上标、下标、分式等各种形式都存在。除了用 OCR 转换为 LaTex 表达式,后续的解题步骤生成就更复杂了。除此之外,有道 OCR 还能实现手写、模糊文字、拼音等识别,据有道 AI 团队介绍准确率能达到 93%-95% 以上。此外在模型方面,有道也在探索更加前沿的解决方案,例如尝试将 Transformer 嵌入到 OCR 任务中。
据了解,通过实验室测试数据得出,在词典笔 2.0 中,它识别字符的准确率平均达到了 95.5%,领先行业 82% 的平均水平。
上文介绍了,有道的标准 OCR 模型已经非常强了,但是将其应用到词典笔 2.0 中还会存在很多挑战,其中最大的问题即它只能看到字符片段,滑动的过程是看不到完整的词或句的图片。这就要求模型先要把图像拼接起来,再来做 OCR 识别。
自适应全景拼接
简单而言,图像拼接是将存在重叠的图像序列进行图像配准(Image registration)和图像融合(Image blending),并生成完整图像的过程。其中图像配准是建立图像之间的对齐关系,以确定一张图像与另一张图像的空间投影关系,它是图像拼接的核心问题。
常见的图像配准方法很多都基于特征的方法,这类方法会使用图像的轮廓特征、角点检测和尺度不变特征来确定图与图间的相似部分。例如基于尺度不变特征的拼接方法,其过程分为特征提取、特征匹配、投影估计和图像融合,它对光照、视角、噪声和多种图像变换具有较高的鲁棒性。
但是标准方法在词典笔的应用场景中还有很多不足,首先是特征提取太过耗时。考虑一下,如果每秒需要提取一百多张图片的特征信息,而且还只能在移动端完成,那标准 SIFT 方法延迟会有多大啊。这种延迟是不可接受的,词典笔需要一种能在移动端处理高帧率图像的能力。
其次,相比通用的图像拼接,文字图像的轮廓特征明显但纹理特征非常少,因此不同文字中很可能存在相同的特征描述子。例如「三」和「十」都可能包含「一」这个特征描述子,因此很可能导致错误的匹配与对齐。
网易有道根据实际应用场景自行设计了一套特征,解决了这两大问题,从而用自定义的方式快速提取特征。相比传统 SIFT 花 1 毫秒提取单张图像的特征,有道定制化的提取方法要高效很多。总体而言,词典笔 2.0 所采用的图像拼接方法可以分为图像配准、图像融合与文本切行三大步骤。
1. 图像配准
有道词典笔将扫描图像分成若干图像块,对于每一个选取的图像块,模型会同时提取特征匹配计算多对图像块的投影估计实现图像对齐。
2. 图像融合
根据图像对齐关系,有道设计了自适应的图像加权融合算法,从而自然地融合对齐后的图像。因为实际使用中手抖或滑动速度等因素,一般方法拼接出来的效果都不会太好。但有道的图像融合能得到无重影、无接缝的完整拼图结果,并且在多角度(与桌面夹角成 90 度至 60 度)扫描输入下表现如一。
一般方法不稳定的拼接效果。
克服抖动、角度和滑动速度等因素得到的拼接结果。
3. 文本切行 最后,在实际使用中笔头经常会跨越多行文本,得到的拼接图像如上所示也不是干净的。为此,有道使用一个模型来将所有字符的候选位置信息关联组行,即使在密集文本、抖动的情况下也能将目标行样本分割出来。
扫一扫翻译句子
这一次词典笔 2.0 还有一个非常强力的功能,即离线地实现整句神经网络翻译。目前有道的 NMT(简称 YNMT)可以实现中文到 12 种语言互译,英文到 9 种语言互译。翻译效果 BLEU 值高出同行一些,尤其在特定测试集领域,比如新闻领域的中英文互译上效果甚至优于谷歌和微软。之前机器之心曾了解到 YNMT 模型主要也采用 Transformer 架构,并从单语数据的利用、模型结构的调整、训练方法的改进等方面加强翻译效果。
之前 YNMT 也会采用回译、对偶学习和对抗训练等策略加强翻译结果的鲁棒性,而最近随着预训练技术在 NLP 领域的大力发展,有道也将预训练技术引入到了 NMT 训练中。在最近发布的 ACL 2019 最佳长论文中,研究者非常关注训练与推断间的不匹配性,有道表示他们在这方面也一直有尝试。有道表示这篇最佳论文比较突出的贡献体现在挑选 Sentence-level Oracle Word,因此研发团队也在进一步尝试它的效果。
有道表示,通过加入 BERT 等预训练语言模型后,模型有改善。此外在模型训练时可以结合一些基础任务,例如命名实体识别等,这种多任务学习机制对 NMT 的质量还是很有帮助的。有道同时也在探索怎样在强化学习的过程中设置合适的奖励,从而提升翻译结果的流畅度与忠实度。
当然加入 BERT 等大模型的 NMT 系统是无法嵌入到词典笔的,有道会采用更加精简的离线端模型,在不显著降低效果的同时极大压缩模型。
扫一扫需要的算力支持
尽管模型的效果非常好,但如果不能嵌入到小小的词典笔中,那么使用体验会差很多。但如果要嵌入端设备,那么如何在有限的算力下实时运行这些系统就非常重要了。有道在词典笔 2.0 中部署了 OCR、NMT 和 TTS 模型,而离线部署的最大问题是准确率和速度之间的权衡,为此有道做了很多优化。
其实词典笔中的离线模型都是从线上模型演化而来的,且为了在给定算力的情况下实时运行,它们的结构和参数量都更为精简。此外,通过网易有道自研的离线预测框架,开发者在保证准确率的同时能更方便地部署到嵌入式芯片上。因此对于端侧模型部署,我们可以从模型压缩和离线推断工具两方面探讨。
1. 模型压缩
模型压缩渗透在训练和预测各个阶段。在训练过程中,有道在紧凑设计的离线网络模型上通过网络剪枝进一步精简模型,模型大小可以压缩近百倍;在预测阶段,有道使用了网络融合(network fusion)、低秩近似(low-rank Approximation)等技术减少计算参数量。重要的是,有道在支持定点计算的芯片上(如高通 DSP)实现了 int8 模型量化,能在少量损失下得到 4 倍压缩比的定点模型。
除了采用各种模型压缩算法外,裁减词表(NMT)、共享参数等方法也能降低模型大小。
因此从各个层面与角度出发,机器学习模型才能在不显著影响性能的情况下大幅度降低对运算资源的需求。
2. 离线推断框架
如果每一个模型都要一点点做优化,那么整个模型部署过程是非常繁杂的,这就需要一种能自动高质量完成这个过程的工具,这也就是有道自研预测框架的重要原因。
有道的离线预测框架能够根据模型的特点做一些优化处理,包括模型压缩、层间合并,使用芯片支持的向量操作指令集,调整指令执行顺序和逻辑结构,提高 cache 命中率、提高内存使用效率等。有道在这方面做了很多工作,目前离线框架已经比较成熟了,能够支持 cpu、gpu、dsp、npu 等各种硬件平台,而且有道在端侧的工程化都基于这个框架完成。
有道自研的离线预测框架支持 Caffe、TensorFlow、PyTorch 等主流 DL 框架训练的模型,同时有道重点完成以下优化:
- 模型多框架的自动转换、一键部署
- 模型异构芯片的自动压缩、定点量化
- 模型跨平台的多线程并行计算加速
有道词典笔 2.0 也会继续添加新功能,例如据说 8 月底,词典笔 2.0 就会通过 OTA 升级的方式支持整段翻译,这对离线端 NMT 模型又提出新的挑战。最后,不论是模型方法的创新,还是工程实践的探索,将机器学习应用到英语学习场景都是非常值得探讨的方向,网易有道词典笔 2.0 就是很好的范例。