关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » HTML5 »Google翻译是如何把深度学习“塞进”手机的?

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

    2015-08-03 00:00:00 出处:杨泽涛
    分享

    前几天谷歌更新了它们的翻译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的命中率。

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

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

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    帝国CMS7.5编辑器上传图片取消宽高的三种方法

    帝国cms如何自动生成缩略图的实现方法

    Windows 12即将到来,将彻底改变人机交互

    帝国CMS 7.5忘记登陆账号密码怎么办?可以phpmyadmin中重置管理员密码

    帝国CMS 7.5 后台编辑器换行,修改回车键br换行为p标签

    Windows 11 版本与 Windows 10比较,新功能一览

    Windows 11激活产品密钥收集及专业版激活方法

    如何从 Windows 11 中完全删除/卸载 OneNote?无解!

    抖音安全与信任开放日:揭秘推荐算法,告别单一标签依赖

    ultraedit编辑器打开文件时,总是提示是否转换为DOS格式,如何关闭?

    IT头条

    华为Pura80系列新机预热,余承东力赞其复杂光线下的视频拍摄实力

    01:28

    阿里千问3开源首战告捷:全球下载破千万,国产AI模型崛起新高度!

    01:22

    DeepSeek R1小版本试升级:网友实测编程能力已达到国际一线水平

    23:15

    NVIDIA 与 Dell 合作,大规模交付 Blackwell AI 系统

    20:52

    Cerebras 以最快的 Llama 4 Maverick 性能引领 LLM 推理竞赛

    20:51

    技术热点

    PHP中的随机性——你觉得自己幸运吗?

    搞定Ubuntu Linux下WPA无线上网

    Java使用内存映射实现大文件的上传

    MySQL安全性指南

    MySQL两项性能的基本测试浅谈

    教您使用UniqueIdentifier选取SQL Server主键

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。