...開發日記:如何設計能在Apple Watch上實時運行的中文手寫識別...

2021-01-08 雷鋒網

雷鋒網 AI 科技評論按:隨著蘋果機器學習日記(Apple ML Journal)的開放,蘋果分享出的設計自己產品、運用機器學習解決問題的故事也越來越多。近日蘋果在上面就放出了一篇關於識別手寫中文的文章,介紹了自己對這個功能的思考和實現過程。雖然文章中沒有什麼全新的技術,但也不失為一篇有誠意的開發經驗分享。雷鋒網(公眾號:雷鋒網) AI 科技評論把文章編譯如下。

隨著手機、平板電腦這樣的行動裝置,以及智能手錶這樣的可穿戴設備變得流行甚至不可或缺,手寫識別也隨之變得前所未有地重要。中文包含了一個很大的字符庫,在這些行動裝置上支持中文手寫識別就帶來了一組獨特的挑戰。這篇文章中,蘋果介紹了他們是如何在 iPone、iPad 和 Watch(繪畫模式中)上應對這些挑戰、實現中文手寫的實時識別的。蘋果設計的基於深度學習的識別系統可以準確地處理高達3萬個不同的字符。為了達到合理的準確度,蘋果的開發人員們在數據收集模式、書寫方式的代表性和訓練方式方面專門花了心思處理。他們發現,只要使用恰當的方式,即便更大的字符庫也可以解決得了。實驗表明只要訓練數據的質量足夠高、數量足夠大,隨著字符庫增大,識別準確率只會慢慢下降。

簡介

手寫識別可以增強行動裝置的用戶體驗,尤其是中文的鍵盤輸入還相對比較複雜。中文的手寫識別也有獨特的挑戰性,因為中文背後的字符庫非常大。其它基於字母的語言中,包含字符的數量級通常也就在100上下,而中文國標 GB18030-2005 中含有的漢字有27533個,在整個中國範圍內還有許多圖形式的字符仍然在使用著。

為了便於電腦處理,常見的做法是只關注其中的一部分字符,一般就是選出日常使用中最有代表性的字。根據這樣的思路,中文國標字符集 GB2312-80 僅僅包含了 6763 個字符(其中一級字符3755個,二級字符3008個)。中國科學院自動化研究所也構建了一個嚴密對齊的字符集,運用在CASIA資料庫中,包含了總共7356個字符。SCUT-COUCH資料庫的容量也在同一個水平上。

這些字符集基本反映了全中國的作家們的常用字。然而在個人層面上,每個人之間的「最常用字」經常都會有所不同。許多人都至少有幾十個自己的「不常用字」,因為這些字其實會在相關的事物名中出現,反倒不用一個個寫出來了。這樣,理想狀況下的中文手寫識別算法就至少要擴充到 GB18030-2005 中2萬多個漢字的水平。

早期的識別算法主要依靠基於一筆一划分析的結構化方法,後來有了去除筆劃順序影響的需求,就引發了人們利用整體形狀信息建立統計學方法的興趣。然而文本類別的數量越多,清晰地把文本分入一個類別就越難,這些方法顯然會大大提升大字符集下的識別難度。

對於MNIST之類的拉丁字符識別任務,卷積神經網絡(CNN)很快就表現出了壓倒性的優勢。只要有足夠的訓練數據、適當補充一些需要的生成樣本,CNN毫無疑問可以達到出頂尖的表現。不過,這些研究中的字符類別都相當的少。

之前,當蘋果的研究人員們開始研究如何做大規模的中文字符識別時,似乎明擺著就應該選CNN。但是CNN的方法需要把網絡拓展到包含接近3萬個字符,同時還要保證在嵌入式設備上還有實時識別的性能。這篇文章的重點就是介紹如何解決延時、字符覆蓋率、書寫風格的魯棒性等方面的問題,達到理想的性能表現。

系統配置

蘋果的研究人員們在這項研究中採用了一個普遍的CNN架構,跟之前用在MNIST手寫識別實驗中的CNN類似。系統的總體架構如圖

圖1. 典型的CNN架構(帶有連續的2組卷積+子採樣)

系統輸入是一張中等解析度 48x48 的圖像(為了更好的性能),其中包含著一個手寫中文字符。然後把它送入幾個包含卷積層和子採樣層的特徵提取層。最後一個特徵提取層通過一個全連接層連接到輸出。

在每個卷積層中,蘋果的研究人員們都選擇了能夠從逐漸變得粗糙的粒度中儘量提取特徵的卷積核和feature map數量。他們運用一個2x2的卷積核,通過一個最大池化層做子採樣。最後一個特徵層包含的小feature map數量級一般在1000上下。最後,輸出層上給每一個類都有一個單獨的節點,對於 GB2312-80 中級別1的漢字就有3755個節點,拓展到所有字符的時候就要接近30000。

作為基準線,蘋果的研究人員們在CASIA benchmark任務中評估了這個CNN模型。雖然這個任務只涵蓋了漢字中級別1的字符,但是在以往文獻中有豐富的識別測試準確率結果。他們使用了同樣的基於 CASIA-OLHWDB、DB1.0-1.2,分為訓練集和測試集,訓練樣本的數量大約為100萬個。

值得注意的是,蘋果這項研究的關注點是面向產品的,所以他們的目標並不是在 CASIA 中取得儘可能高的準確率,更為關注的是模型大小、推理速度和用戶體驗。所以,他們的優化目標是一個緊湊的、能夠實時計算結果的系統,它要能夠對付多種不同的書寫風格,對於非標準的筆劃順序也需要有較高的魯棒性。這樣下來,即便把在線的資料庫也加入了評估中,他們還是選用了基於圖像特徵的識別方法。他們也把實際觀察到的筆劃變化、外型改變也考慮了進來。

表1展示了前文圖1中的CNN模型的測試結果,其中「Hz-1」代表了級別1的漢字庫(3755個字符),「CR(n)」代表了模型的前n位識別結果中含有正確字符的準確率。除了常用的首選準確率(n=1)和前10位識別準確率(n=10)之外,表格中還加入了一項前4位準確率(n=4),因為蘋果的用戶界面中就是顯示4個候選字符,前4位準確率是一個重要的衡量用戶體驗的標誌。

表1:CASIA在線資料庫中3755個中文字符的測試結果。標準訓練,關聯模型大小1MB

之前有研究中首選準確率達到93%,前10位準確率達到98%。相比之下,雖然蘋果自己的前10位準確率和其它研究中的在同一水平上,但第一位準確率要稍低。在蘋果看來,這是為了達到更高的前4位準確率作出的平衡;而且可能更重要的是,這個模型的大小(1MB)比之前任何類似的系統都要小。

表1中的系統僅僅用了CASIA中的數據進行了訓練,沒有用到其它的訓練數據。蘋果的研究人員們也很感興趣,如果額外加入自家的iOS設備上實際採集到的手寫數據用來訓練系統會達到怎樣的效果。這些數據中涵蓋的書寫風格更為多樣,每個字符也有更多對應的訓練樣本。如下表2就是訓練結果,對應的是同一個3755字符的字符庫。

表2:CASIA在線資料庫中3755個中文字符的測試結果。增強訓練,關聯模型大小15MB

雖然這個系統的體積有大幅度的增加(達到了15MB),準確率卻只提升了一點點(前4位準確率的絕對值提升了2%)。這表明,測試集中的多數書寫風格都已經在CASIA的訓練集中有了相當的覆蓋。不過這也說明增加更多的訓練數據並沒有什麼壞處:新增加的書寫風格並不會對模型的原有表現帶來負面的影響。

拓展到3萬個字符

前文有說過,每個人理想狀況的下的「常寫的字」都不一樣,用戶數目大的時候需要的字庫大小也就遠遠不止3755個。準確挑出需要的字庫也不是一件那麼簡單直接的事情。GB2312-80 定義的簡體中文字符,以及 Big5、Big5E、CNS 11643-92 中定義的繁體中文字符覆蓋的範圍也各有不同(從3755到48027個漢字)。近期一些的還有新增了4568個字符的 HKSCS-2008,GB18030-2000中的甚至更多。

蘋果想要保證用戶們的日常用語都能寫得出來,不管是簡體還是繁體中文、是名字還是詩歌,還有其它常用的標記、視覺符號和emoji表情,他們也希望能讓用戶無需轉譯就寫出偶爾會在產品或者品牌名中出現的拉丁字符。蘋果遵循了國際主流的 Unicode 字符集作為字符編碼標準,因為其中幾乎囊括了上面提到的所有字符標準(值得一提的是,Unicode 7.0在B-D拓展中可以區分7萬個字符,而且還在考慮增加更多)。所以蘋果的字符識別系統就選擇了關注 GB18030-2005, HKSCS-2008, Big5E 中的漢字部分,以及 ASCII 的核心字符集和一組視覺符號和emoji表情,總數大約3萬個字符。這對於大多數中國用戶來說已經是最佳的取捨了。

在選出了模型內在的字符庫之後,下一個關鍵的點就是對用戶真正使用的書寫風格進行採樣。雖然不同的書寫風格之間有一些正式的規則可以用來幫助鑑別,但此外還會有一些區域性的書寫變化,比如 U+2EBF (艹)的幾種寫法,或者U+56DB(四)的寫得潦草的時候和U+306E(の)之間的類似性。

屏幕上顯示的字符也會帶來迷惑性,因為有些用戶會希望某些字符以特定的樣式顯示。寫得快的時候也會讓風格變得潦草,這會增加字符的模糊性,比如 U+738B(王)和U+4E94(五)。

最後,增大國際化的程度有時候也會帶來沒有預料到的衝突,比如U+4E8C(二),寫成連筆的時候就會和拉丁字符「2」和「Z」產生衝突。

蘋果的設計準則是給用戶提供全部的輸入可能性,不管是像印刷字體一樣,還是潦草的、不受約束的寫法。為了囊括儘可能多的字體變形,蘋果的研究人員們從全中國不同區域的作家們手中收集數據。讓他們很驚訝的是,有不少不常用的字,大多數的用戶連見都沒有見過。由於對不常用字的不熟悉,用戶在書寫的時候可能會猶豫、寫錯筆劃順序,以及造成其它的一些錯誤,都需要納入考慮中。

蘋果的研究人員們僱了許多不同年齡段、性別、教育程度的普通中國人,讓他們寫字,收集數據;最終得到的手寫數據也有許多別的資料庫不具有的特點:包含了多大幾千名用戶的數據,在iOS設備上用手指書寫(而不是手寫筆),數據也是有許多小批的。其中還有一個好處是iOS設備的採樣會形成非常清晰的手寫筆跡。

蘋果的研究人員們發現了非常多樣的書寫方式。如下圖2到圖4是其中一些U+82B1(花)的寫法,有的接近列印,有的很潦草,有的變化很大。

實際上,日常生活中用戶們經常寫得很快、變化很大,潦草、變形的筆跡看起來會有很大的區別。比如U+7684(的)和U+4EE5(以)。

反過來說,有時候不同的字也會看起來很相似,造成迷惑。以下U+738(王)、U+4E94(五)的數據就是明顯的例子。值得注意的是,要能夠區分潦草的變化就一定需要足夠的訓練數據。

根據前面討論的設計準則,蘋果採集了上千萬個手寫的漢字實例用作訓練數據。下面表3中的結果就是把可識別的字符數量從前面的3755個字符拓展到接近3萬之後得到的。仍然是前文的同一個 CASIA 在線測試。

表3:CASIA在線資料庫中30K個字符的測試結果

這裡保持了同樣的模型大小。前文表2中的系統只是限制在級別1漢字範圍,其它都與表3中的系統相同。準確率有略微下降,這倒比較符合研究人員們的期待,因為大幅度增長的覆蓋範圍會帶來額外的混淆,比如前面提到過的「二」和「Z」。

把表1到表3的結果進行對比,可以看到把字符覆蓋範圍擴大10倍並不會把錯誤率也擴大10倍,或者把模型大小變大10倍。實際上,對於更大的模型,錯誤率升高得要慢得多。所以,構建一個覆蓋了3萬個字符(而不是僅僅3755)、同時還有高準確率的中文手寫字符識別系統,不僅是可能的,還是可行的。

為了說明系統在這所有3萬個字符中的表現如何,蘋果的研究人員們也用一系列不同的測試集進行了測試,其中包含了所有支持的字符、用了各種的書寫風格。表4是結果的平均值。

表4:包含了所有書寫風格的3萬個字符的測試集的多個蘋果內部測試的平均結果

當然,表3和表4的結果是不能夠直接進行對比的,因為它們是用不同的測試集得到的。不過,它們的第一位準確率和前四位準確率對於整個字符庫都是在同一水平的。這樣的結果是通過較為均衡的訓練模式達到的。

討論

在表意文字工作組 IRG 不斷從不同的來源收集文字、提出新的增加建議下,目前大小約為75000的Unicode字符集中含有的中日韓文表義文字未來還可能繼續增加。坦誠地講,之後新增加的字符都會是非常罕見的字符(比如歷史上出現過的名字或者詩歌中的)。不過,對於名字裡剛好有一些罕見字的人來說,這些工作還是很有意義的。

那麼,蘋果未來打算如何應對更大的字符庫呢?這篇文章中的實驗展示了不同數量的訓練數據下的訓練和測試錯誤率狀況。這樣就可以做近似的推斷,預測有更多訓練數據、更多字符需要識別的時候準確率表現如何。

比如,從表1到表3可以看到,對於增大了十倍的字符庫和模型相關資源的大小,準確率僅僅下降了(不到)2%。那麼就有理由猜測,對於數目達到十萬個的字符庫和同倍增加的訓練數據,完全有可能仍然達到84%左右的首選準確率和97%的前10位準確率(對於同樣的網絡架構)。

總結來說,構造一個覆蓋了多達3萬個中文字符的高準確率手寫識別系統,即便對於嵌入式設備也是可以實現的。進一步地,隨著字符庫大小增加,識別準確率下降得非常慢,只要有足夠數量的高質量訓練數據。這對未來可能的基於更大的字符庫的手寫識別來說是一個好消息。

via Apple ML Journal,雷鋒網 AI 科技評論編譯

相關文章:

蘋果機器學習博客姍姍來遲,不過第一篇文章就給緊缺訓練數據的研究者們發糖

雷鋒網版權文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 蘋果發布長文,揭秘 iPhone 等設備如何利用三萬字符庫實時識別手寫...
    ​編者註:本文轉載自將門創投(ID:thejiangmen),來源:machinelearning.apple.com,編譯:Tom R,極客公園已獲轉載授權。在智能和行動裝置十分普遍的今天,手寫字符識別的重要性愈加顯現出來,在手機、便攜設備、可穿戴設備以及智能手錶上都會有十分重要的應用。
  • 繁體中文手寫輸入法
    繁體中文手寫輸入法 休閒益智 大小: 3.37M 版本: CALLA.1.2.10.24
  • 漢王推出全新手寫識別金豬版手寫軟體
    ,近日其手寫產品又有了全新的震撼性突破:此次最先公布的創新來自於軟體方面,在歷時4年的技術研發後,漢王推出了最新一代的手寫識別核心——「金豬版」手寫軟體。它不僅支持在Vista系統下運行,還大大簡化了操作界面,對手寫識別的核心技術也做了全面升級。相較之前的版本,「金豬版」手寫軟體使用更簡單,功能更強大,也將漢王力求讓用戶「少點、少寫、越寫越快」的原則體現的更為淋漓盡致。    初打開「金豬版」手寫軟體,會發現其操作界面與之前的11.0版相比有了很大變化:數字區和符號區被取消,工具欄也相應簡化。
  • 為Apple Watch簡化現有產品的設計思路
    我們在創建品牌規範時沒有考慮到將來多種平臺的狀況,隨著時間的推移,產品在品牌識別和設計語言方面的問題越發突顯。最近,我們已經開始著手在這方面進行統一和規範,首先要解決的就是界面視覺設計方面的一些問題。借著為Apple Watch進行設計的契機,我們決定對界面中的圖標進行一輪簡化工作。我們一直以來所使用的圖標太過複雜,無論樣式還是尺寸都不適於在Watch上快速傳達信息。
  • 有人讓Apple Watch玩上了《口袋妖怪黃》
    據外媒報導,除非所有的《口袋妖怪》遊戲能夠在每一款電子設備都運行上,不然的話社區玩家對於打造模擬器這件事情是不會停歇的。當地時間周五,iOS軟體開發者GabrielO』Flaherty-Chan就公布了一款為Apple Watch打造的Game Boy Color模擬器。獲悉,他讓蘋果的可穿戴設備跑上了《口袋妖怪黃(Pokemon Yellow)》。
  • Apple Watch在水中如何使用 功能受影響
    Apple Watch防水測試(Photo:furbo.org,下同)  在功能使用上,Apple Watch有時,水會在屏幕上激活控制。用戶只能在進入水中前激活Workout,並在離開水時結束。  Hockenberry表示,蘋果建議不要在水中使用Apple Watch,因為屏幕變溼後,Apple Watch會出現很怪異的操作。當然,蘋果可能會在watchOS 2中更好的支持水下運動。
  • 谷歌推出手寫輸入應用 可識別手繪表情符號
    【天極網IT新聞頻道】【Yesky新聞頻道消息】 據外媒體報導稱,今日谷歌推出了一款新應用:谷歌手寫輸入。除了語音和鍵盤輸入外,Android 4.0.3及以上版本的用戶現在可以直接在任何安卓應用中使用手寫方式輸入文本。
  • iPadOS 14「隨手寫」,讓 Apple Pencil 代替你的手指
    有了「隨手寫」,不再需要呼出鍵盤,一根筆搞定 iPad 內所有文字輸入。「隨手寫」目前支持中文、英文,和中英混合輸入,你不需要切換語言即可將中文、英文一起寫,力圖實現紙上書寫相同的體驗。不過值得注意的是,「隨手寫」目前也僅支持中英,其他語言可能還在路上。準確率怎麼樣?
  • Apple的「Time Flies」活動有何期待:當然是Apple Watch Series 6
    開發人員Guilherme Rambo發現活動的頁面數據包含短語「 Series 6」,這似乎暗示我們可以期待看到Apple Watch Series 5的後續產品。至於所謂的Series 6 Watch可能會帶給您什麼改變呢?在獲得的iOS 14早期版本的代碼片段中找到了有關血氧監測的內容,因此這可能是橫幅功能。
  • 手寫與智能的碰撞,柔記RoWrite S智能手寫本
    表面上不見的只是一個寫寫畫畫的本子,而實際上一起不見的還有你那回不去的青春。所以經常我們這群90後就會去羨慕現在的孩子,科技的發展能夠讓手寫與智能相結合,能夠在保留書寫質感的同時,讓你所書寫的筆跡、所記錄的內容都能夠永久保存。那麼今天小奈就帶大家來看一看柔宇柔記RoWrite S智能手寫本的表現究竟如何吧(以下簡稱柔記智能手寫本)。
  • WENKU手寫筆,一款可隨意更換筆頭的觸屏筆
    再配上一隻apple pencil,完全可以當做便攜版的筆記本電腦來使用。但是apple pencil價格卻不太美麗,於是市面上生出一種可以替代使用的電容筆,比如:WENKU被動式電容手寫筆。 這種被動電容式手寫筆主要是模仿手指的觸摸效應,只要筆頭足夠影響電容變化即可使用。所以大家就會有一種擔心,如果筆頭有破損是不是我們就要買過一支全新的筆,那太虧了。
  • OCR識別軟體可以識別手寫的文字稿件嗎?
    現在科技發達,市場上關於OCR識別的軟體特別多,但也意味著質量良莠不齊,所以找到一款實用的OCR文字識別軟體不容易。經過一小段時間的調查和使用,小亮找到了一款比較受歡迎的迅捷文字識別APP軟體,下面是相關的圖文教程。
  • 電梯運行實時監控系統主機及傳感器如何安裝?
    電梯運行實時監控系統是用來實時監控和顯示電梯運行狀態的軟硬體結合的智能系統,其中軟體部分是電梯監管實時服務平臺,硬體部件為電梯運行實時監控儀NE-ES1000(支持網絡高清攝像機),該系統可以用於樓宇智能化改造項目,電梯監控智能化項目等。
  • 《崖上的波妞》定檔,宮崎駿希望波妞能給人幸福,獻上中文手寫信
    近日,宮崎駿《崖上的波妞》(又譯《懸崖上的金魚姬》)定檔12月31日在中國內地上映。這是近年來繼《龍貓》《千與千尋》後,中國內地大銀幕迎來的第三部宮崎駿的作品。距離這部電影初次上映已經過去了12年,許多中國觀眾都對它非常喜愛,它在豆瓣上的評分也高達8.5。
  • 百度PC版中文輸入法內測 首頁將推手寫輸入功能
    5月6日上午消息,據百度內部人士證實,百度PC版本的中文輸入法正在公司工程師之間進行內測,該輸入法目前被命名為「在線拼音輸入法」,最大的特點是無需安裝客戶端,可以在線使用。今年3月份,就有消息傳出稱百度正在研發PC版本的中文輸入法,來自百度網站的招聘信息也進一步證實了此項研發。
  • 專訪白描陶新樂:做高品質又便宜的掃描識別 App,背後是開發者的浪漫
    開發的時候是完全沒想過的,最開始開發的時候就是為了給女朋友做個能識別紙質書上的文字用來記筆記的軟體,做完了之後發布到 App Store 也是職業習慣,沒想到發布之後會非常受歡迎,堅持下來獲得了現在的用戶規模。在你心目中,會給白描打幾分?
  • 南構Ana手寫|帶著國外體溫的書寫出來的字體
    這是一款由俄羅斯人Anastasia Korshunova手寫的首款中文字庫,由南構字庫發行的一款創意字體。南構Ana手寫是一款創意手寫體,可以廣泛的應用於生活中宣傳廣告、海報設計、商標標語、企業名稱、展覽會以及商品包裝和各類廣告、 報刊雜誌和書籍的裝帖上、個性籤名等領域使用。
  • Apple Watch新增Breath呼吸應用:能集中注意力
    在watch OS3中蘋果公司為Apple Watch增加了一款新的Breath呼吸應用,這款應用通過引導你按照規律時長進行深呼吸,從而讓你沉靜下來併集中注意力。根據蘋果公司的介紹,在默認設置下這款新的呼吸應用會每隔四個小時發出提醒,指導用戶完成一系列深呼吸運動,幫助用戶管理和釋放每天的壓力。
  • 8點1氪晚間版:The apple of my eye
    最早「the apple of the eye」這個短語出現於聖經中,莎士比亞的作品中也引用過「Sink in apple of his eye」這樣的詞句,估計後來這句話真正變得讓我們熟知是因為九把刀的電影《那些年》(You are the apple of my eye)。
  • 只需一個APP 市區公交都能實時查
    ——愛城市網打造濟南最全公交查詢平臺  市民張女士最近乘坐公交車時,總會打開一款叫做「愛城市網」的手機APP,「以前乘坐公交車,雖然也能查到車輛位置,卻不清楚路況如何,現在愛城市網APP的實時公交查詢功能不僅可以查看實時公交位置,還能查看最近一輛和下一輛來車的到站時間和距離站數,以及整條線路上的道路擁堵情況