摘要:言簡意賅地說,我們的這款即時視覺翻譯,用到了深度神經網絡,技術。您是知道的,深度學習的計算量是不容小覷的。因為如果字符扭曲幅度過大,為了識別它,神經網絡就會在過多不重要的事物上,使用過高的信息密度,這就大大增加深度神經網絡的計算量。
前幾天谷歌更新了它們的翻譯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”為識別出的字符)。
有意思的是,我們的訓練集,并非都是那些方方正正的“純潔的”字符集合,因為倘若不是這樣,訓練出來的識別器,就無法識別出在這個“并不純潔”的大千世界中的字符。要知道,在真實的世界里,這些字符可能會因為反射、灰塵、污跡及各種稀奇古怪的破損,導致攝像頭拍攝出來的字符“似是而非”。
因此,我們構建了一個字符生成器,來偽造生成各式各樣的陰影、扭曲字符?;蛟S您要問,為什么你們不用真實世界中的圖片字符,而是使用合成的數據集,來訓練深度神經網絡呢?
嗯,其實原因很簡單,我們很難找到足夠多的、多種語言的、各種“光怪陸離”文字樣本。當我們想要訓練一個真正高效的,緊湊的神經網絡時,更加困難的是,真實世界的字符樣本非常難以精細控制。
圖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的命中率。
最后,如您所見,我們終于讓這個基于深度神經網絡的翻譯系統在手機上跑起來了,而翻譯的效果比老版翻譯系統高出一大截,而在運行速度上,一點也不遜色于老版翻譯系統。
有時候,新技術看起來非常抽象,找到諸如卷積神經網絡這類新技術的用武之地,并不總是那么顯而易見。打破語言障礙——做一款棒棒的、多語言的即時視覺翻譯系統,我想,這應是一個偉大的應用案例。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/4332.html
摘要:谷歌表示,與搜索并列,是谷歌機器學習技術最重要的產品服務載體。谷歌宣布了基于機器學習技術的全面升級,很可能是其誕生以來的最大升級。在去年的大會上,谷歌宣布了其第一代。 showImg(https://segmentfault.com/img/bVNTKT?w=900&h=385); Google I/O Google I/O 是由 Google 舉行的網絡開發者年會,討論的焦點是用 G...
摘要:年實驗室團隊采用了深度學習獲勝,失敗率僅。許多其他參賽選手也紛紛采用這一技術年,所有選手都使用了深度學習。和他的同事運用深度學習系統贏得了美元。深度學習,似乎是解決 三年前,在山景城(加利福尼亞州)秘密的谷歌X實驗室里,研究者從YouTube視頻中選取了大約一千萬張靜態圖片,并且導入到Google Brain —— 一個由1000臺電腦組成的像幼兒大腦一樣的神經網絡。花費了三天時間尋找模式之...
摘要:深度學習浪潮這些年來,深度學習浪潮一直沖擊著計算語言學,而看起來年是這波浪潮全力沖擊自然語言處理會議的一年。深度學習的成功過去幾年,深度學習無疑開辟了驚人的技術進展。 機器翻譯、聊天機器人等自然語言處理應用正隨著深度學習技術的進展而得到更廣泛和更實際的應用,甚至會讓人認為深度學習可能就是自然語言處理的終極解決方案,但斯坦福大學計算機科學和語言學教授 Christopher D. Mannin...
閱讀 1605·2021-09-23 11:31
閱讀 920·2021-09-23 11:22
閱讀 1336·2021-09-22 15:41
閱讀 4061·2021-09-03 10:28
閱讀 2906·2019-08-30 15:55
閱讀 3536·2019-08-30 15:55
閱讀 1941·2019-08-30 15:44
閱讀 2712·2019-08-30 13:50