阅读更多
前几天谷歌更新了它们的翻译App,该版本有诸多提升的地方,其中最大的是提升了所谓“字镜头”实时视频翻译性能和通话实时翻译性能。怎么提升的呢?字镜头技术首创者、Google 研究院翻译项目组资深软件工程师Otavio Good近日在Google Research Blog详述了相关原理。
以下是正文:

今天(2015年7月29日),我们发布了Google翻译手机App,现在这款App可支持20多种语言的即时视觉翻译(Visual Translation),也就是说,您可拿着手机摄像头对着实物,实物中的文字就可被即时识别出,并被翻译成目标语言。这项技术就是Google翻译中最新增加的特性——字镜头(Word Lens),如图1所示。



图 1  Google翻译手机版(图片来源:Google)

因此,倘若下一次您有机会莅临一个陌生国家的城市,例如布拉格(Prague,捷克共和国首都和最大城市),当您饥肠辘辘地迈进一家饭馆时,再也不用担心看不懂那“宛如天书般”外文菜单了,因为此刻我们这款App可以悄然地帮您化解点菜的尴尬。那么,这款App是如何能够快速识别这些新语言的?下面我就给大家说道说道这款App背后的事儿。

言简意赅地说,我们的这款即时视觉翻译App,用到了深度神经网络(deep neural network,DNN)技术。

当年,我们字镜头(Word Lens)研究团队加入Google这个大家庭时,我们非常兴奋,因为这样就有机会和Google深度学习领域的大牛们一起工作。在过去几年里,神经网络犹如“磐涅重生”,重新唤起人们的极大关注,研究人员们亦不负众望,在诸如图像识别等领域取得不斐的成就。

就在五年前,如果您交给计算机一幅阿猫或阿狗的图像,让它识别,通常它会很作难——水平有限,猫狗难辨。但时过境迁,由于卷积神经网络(convolutional neural network)技术的诞生,计算机不但可轻易分别出阿猫阿狗,它们甚至还可以分别出狗的不同品种,不管这狗是中国藏獒、德国牧羊犬,还是拉布拉多犬、西伯利亚雪橇犬,计算机都能分辨出个“子丑寅卯”来。



图2 数码迷幻艺术(图片来源:Google DeepDream)


是的,现在计算机的威力,已经不限于“玩玩”数码迷幻艺术(trippy art,参见例图2)了。如果你下载了Google翻译App的最新发布版,用之翻译您看不懂的外文菜单,那背后为您服务就是深度神经网络技术。

或许,您会不以为然,唔,这个…… 这个还好吧,Google已经把深度学习用得“炉火纯青”了,再把这技术用在文字翻译上,似乎在情理之中,意料之内。在人工智能时代,这类演示好像已有不少了吧。

但是,您可能不知道的是,我们这款App最棒的地方在于,它可在不联网的情况下也能正常工作,也就是说,所有深度学习的计算完全在手机上完成的。您是知道的,深度学习的计算量是不容小觑的。可这又是怎么做到的呢?

一步一步来,循序渐进
(1)找到图片中字符

当利用手机摄像头把图像读取进来后,Google即时翻译App要做的是,找到图片中需要翻译的字母。这款App首要要剔除诸如树木或汽车等背景对象,凸显出想要翻译的文字。在识辨图片中的文字过程中,这款App通过识别类似的、连续的色素块,来完成任务。如果某些像素颜色相似、位置彼此靠近,那么就可能是我们要找的字符,这些字符连接成一行,或许就是我们要找的一行文字(下图左1子图为原始图片,左2子图中红色方框框出的,即为标识出来的字符)。



图3 图片文字识别及翻译流程

(2)识别图片中字符

接下来,这款App就要识别出第(1)步定位的字符。这时就该让“深度学习”出马了。我们要用到卷积神经网络,并在字母和非字母集合上训练这个网络,这样做的目的在于,让它学习到不同字母的长得是啥模样(在图3左3子图中,瑞典语“Mörk”为识别出的字符)。

有意思的是,我们的训练集,并非都是那些方方正正的“纯洁的”字符集合,因为倘若不是这样,训练出来的识别器,就无法识别出在这个“并不纯洁”的大千世界中的字符。要知道,在真实的世界里,这些字符可能会因为反射、灰尘、污迹及各种稀奇古怪的破损,导致摄像头拍摄出来的字符“似是而非”。

因此,我们构建了一个字符生成器,来伪造生成各式各样的阴影、扭曲字符。或许您要问,为什么你们不用真实世界中的图片字符,而是使用合成的数据集,来训练深度神经网络呢?

嗯,其实原因很简单,我们很难找到足够多的、多种语言的、各种“光怪陆离”文字样本。当我们想要训练一个真正高效的,紧凑的神经网络时,更加困难的是,真实世界的字符样本非常难以精细控制。



图4 本图显示的是我们用作训练的各种“脏”字母。这些“脏”字母包括有污垢的,有亮点的和有扭曲的等各类字符,但这些情况不能有太多,因为太多这样的非正常字符会让我们的神经网络“迷糊”。
(3)查询字典,翻译识别出的字符

接下来,就是通过查字典,将这些识别出来的文字翻译为目标语言。在第(2)步的字符识别过程中,可能存在失准的地方,比如说,将“super”识别成“5uper”(也就是说,把字符S识别成5),但这也关系不大,在字典查询过程中,匹配允许存在一定的模糊性,“5uper”还是有可能被纠正为“super”(在图3左3子图中,将瑞典语的“Mörk”翻译成英语的“Dark”)。

(4)重新渲染翻译的文字

最后一步,我们会重新渲染翻译出来的文字,让翻译文字和图片中原文的字体和颜色一致。之所以我们可以做到这点,是因为我们已经从图像中找到并识别出我们要想的字符,并已确切地知道它们在原始图片中的位置。于是,在获取字符周围的颜色后,就可以从原始图像中“剔除”原始字符。然后,我们在保持原始前景色不变的基础上,在原始文字位置上,添加翻译出来的字符,这样就可以达到,加工出的图像和翻译出来的文字犹如 “浑然天成”(对比一下:图3左1子图为原始图,左4子图为即时翻译系统的加工图,如果不了解内情,可能您都会认为,这是厂商发布的两种语言版本的广告呢)。

将深度学习 “塞进”手机中

如果要将上述4步即时视觉翻译的流程,放置到我们的数据中心(data center)上去完成,这看起来并不是什么太难的事情。

但是,想一想,很多我们的手机用户,特别是那些仅在下载我们App时才仅此一次的用到我们数据中心的用户,他们的手机网络,要么慢如蜗牛,要么时断时续,加之智能手机又耗电得要命,让他们的手机将拍摄到的图像,发送到远程的Google数据中心上,在计算完毕后,再将识别结果发回手机,在上述场景下,是非常的不便!

那些低端手机的性能,可能要比一个稍微好点的笔记本电脑慢上50倍,而这个性能稍好的笔记本电脑,在计算性能上,和我们的数据中心相比,亦是差得何止十万八千里。而事实上,我们的数据中心,才是运行常规图像识别系统的平台。

那么,在没有和任何云计算平台相连的背景下,如何利用这些四处移动的手机摄像头捕获图像,并完成即时的视觉翻译呢?

答案很简单:自力更生,丰衣足食!我们开发了一个非常小型的神经网络,让它在计算能力有限的智能手机上,独立工作。在训练这个小型的神经网络时,我们做了若干个严格的限定,也就是说,我们设置了它所能处理的信息密度上限。因此,工作的挑战——如何生成最有效的训练数据,立马凸显出来了。

在生成适用的训练数据上,我们可是费了老大劲的。例如,我们仅希望识别出小幅扭曲变型的字符。因为如果字符扭曲幅度过大,为了识别它,神经网络就会在过多不重要的事物上,使用过高的信息密度,这就大大增加深度神经网络的计算量。所以,我们花了很大功夫,做出了一套工具,这些工具极大地提升了迭代效率和可视化渲染效果。在数分钟内,我们可以改变我们的神经网络算法,让这个算法产生训练数据,并重新训练参数,最后给出可视化识别结果。

从这里,我们可以找到,哪些字符识别失败,并及时查明原因。在这点上,我们故意将训练数据过度扭曲,这样一来,字符“$” 一开始可能被识别为“S”。但这没有关系,我们能够快速地确认这种“失误”何在,然后调整数据扭曲参数,来降低“失误率”。这就有点像,在现实生活中,我们要徒手画一副画,刚开始,我们画得可能很不像,但我们不断地修正,每次重画,都能进步一点点,最后您会看到,中途所有的不完善,都是为了画出一个完美的画面。

为了达到翻译的即时性,我们也做了大量的优化工作,而且优化和反复调试的工作量很大。此外,为了改善计算性能,在某些数学运算上,也需要手工重度调优。我们充分利用SIMD(Single instruction, multiple data,单指令流多数据流),这是一种数据并行的模式,来挖掘智能多核手机的并行潜能。同时,我们还优化矩阵乘法,提高矩阵运算的局部性,使之在各级缓存(Cache)中,提高Cache的命中率。

最后,如您所见,我们终于让这个基于深度神经网络的翻译系统在手机上跑起来了,而翻译的效果比老版翻译系统高出一大截,而在运行速度上,一点也不逊色于老版翻译系统。

有时候,新技术看起来非常抽象,找到诸如卷积神经网络这类新技术的用武之地,并不总是那么显而易见。打破语言障碍——做一款棒棒的、多语言的即时视觉翻译系统,我想,这应是一个伟大的应用案例。

原文来自:Google Research Blog

译者介绍:张玉宏,博士。2012年毕业于电子科技大学,现执教于河南工业大学。中国计算机协会(CCF)会员,ACM/IEEE会员。主要研究方向为高性能计算、生物信息学,主编有《Java从入门到精通》一书。
  • 大小: 49.2 KB
  • 大小: 222.1 KB
  • 大小: 31.5 KB
  • 大小: 11.9 KB
5
0
评论 共 2 条 请登录后发表评论
2 楼 fred_张浩 2016-01-05 16:05
Android市场有了吗
1 楼 duronshi 2015-08-04 15:28
识别我们个性化中文汉字成功率为多少

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 译是如何把深度学习“塞进”手机的?

    导读:前几天谷歌更新了它们的翻译App,其中最大的提升了是“字镜头”实时视频翻译和通话实时翻译。怎么做到的?字镜头技术首创者、Google 研究院翻译项目组资深软件工程师Otavio Good近日在博客上详述了相关原理。 ...

  • 深度学习撞墙了?

    近年来,AI 在大数据、大模型的深度学习之路上一路狂奔,但很多核心问题依然没有解决,比如如何让模型具备真正的理解能力。在很多问题上,继续扩大数据和模型规模所带来的收益似乎已经没有那么明显了。在 Robust.AI ...

  • 【一文讲解深度学习】语言自然语言处理(NLP)第一篇

    【一文讲解深度学习】语言自然语言处理(NLP)博主介绍自然语言处理概述NLP 的定义NLP的主要任务分词词义消歧识别物体识别(NER)词性标注(PoS)文本分类语言生成问答(QA)系统机器翻译(MT)NLP的发展历程快速...

  • 主流的深度学习推理架构有哪些呢?

    主流的深度学习推理架构有哪些呢?

  • 大牛的《深度学习》笔记,Deep Learning速成教程

    本文由Zouxy责编,全面介绍了深度学习的发展历史及其在各个领域的应用,并解释了深度学习的基本思想,深度与浅度学习的区别和深度学习与神经网络之间的关系。 深度学习,即Deep Learning,是一种学习算法(Learning ...

  • 【主流的深度学习推理架构 OpenVino TensorRT ONNX】

    以深度学习为主的人工智能算法模型在日常AI应用中逐渐占据主流方向,相关的各类产品也是层出不穷。我们平时所看到的AI产品,像刷脸支付、智能语音、银行的客服机器人等,都是AI算法的具体落地应用。AI技术在具体落地...

  • 深度学习足迹

    -----------------------------------------------------------------------------------...1、本文是鄙人深度学习之旅详细记录。 2、内容有错误之处,敬请不吝赐教。 3、本文内容主要来自网络,文章来源都会加以标注。

  • 深度学习最强资源推荐:一文看尽 GAN 的前世今生

    事后看来,正如 Ian Goodfellow 在与 Lex Fridman 在一次广播节目中所指出的那样,他们将这种模型称为 DCGAN(即「深层卷积生成对抗网络」)似乎很愚蠢,因为现在几乎所有与深度学习和图像相关的东西都是深度的、...

  • 深度学习撞墙了!

    AI 领域需要寻找新的出路 在 Robust.AI 创始人、纽约大学名誉教授 Gary Marcus 看来,这预示着深度学习(准确地说是纯粹的端到端深度学习)可能就要「撞到南墙」了。整个 AI 领域需要寻找新的出路。 Gary Marcus 的...

  • 【精华】主流的深度学习推理架构

    主流的深度学习推理架构

  • Deep Learning(深度学习)学习笔记整理系列

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04-08 原文链接:http://blog.csdn.net/zouxy09/article/details/8775360/ 声明:作者原文...

  • Deep Learning(深度学习)学习笔记整理

    目录: 一、概述 二、背景 三、人脑视觉机理 四、关于特征  4.1、特征表示的粒度  4.2、初级(浅层)特征表示  4.3、结构性特征表示...六、浅层学习(Shallow Learning)和深度学习(Deep Learning) 七、Deep learn

  • 大盘点:近期最值得阅读的五本深度学习书籍

    全文共3046字,预计学习时长6分钟 有很长一段时间,没有人想阅读和AI有关的书,整个领域的研究如同一潭死水。但之后,AI领域涌现一批重大突破成果:图像识别、自动驾驶汽车、阿尔法围棋(Alpha Go)。似乎在一夜...

  • 深度学习撞墙了

    近年来,AI 在大数据、大模型的深度学习之路上一路狂奔,但很多核心问题依然没有解决,比如如何让模型具备真正的理解能力。在很多问题上,继续扩大数据和模型规模所带来的收益似乎已经没有那么明显了。在 Robust.AI ...

  • Deep Learning(深度学习)学习笔记

    2013年1月,在百度年会上,创始人兼CEO李彦宏高调宣布要成立百度研究院,其中第一个成立的就是“深度学习研究所”(IDL,Institue of Deep Learning)。 ed3919c69128a72a73782125e6b6470d.jpg 715x158 32 KB ...

  • node-v6.3.1-linux-ppc64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

  • 计算机专业词汇+英语+计算机能不学英语吗?

    计算机专业英语词汇非常丰富,涉及计算机硬件、软件、网络、程序设计语言等多个方面。由于篇幅限制,我无法直接列出完整的1000个计算机专业英语词汇,但我可以为您提供一些常见的计算机专业英语词汇作为示例: file - 文件 command - 命令,指令 use - 使用,用途 program - 程序 line - (数据,程序)行,线路 if - 如果(连词) display - 显示,显示器 set - 设置(动词),集合(名词) key - 键,关键字,关键码 list - 列表,显示(名词),打印(动词) by - 凭,靠,沿(介词) press - 按,压(动词) with - 用,与,随着(介词) format - 格式 change - 更换,改变,变动(动词)

  • 35-35.渗透测试SQL注入之SQL注入防御

    35-35.渗透测试SQL注入之SQL注入防御

  • node-v6.3.1-linux-armv7l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

Global site tag (gtag.js) - Google Analytics