如何精準實現OCR文字識別?

騰訊雲加社群發表於2018-10-25

歡迎大家前往騰訊雲+社群,獲取更多騰訊海量技術實踐乾貨哦~

本文由雲端計算基礎發表於雲+社群專欄

img

前言

2018年3月27日騰訊云云+社群聯合騰訊雲智慧影像團隊共同在客戶群舉辦了騰訊雲OCR文字識別——智慧影像分享活動,活動舉辦期間使用者耐心聽分享嘉賓的介紹,並提出了相關的問題,智慧影像團隊的科學家和工程師也耐心解答可使用者的疑問。以下就是活動分享的全部內容。

正文

在日常生活工作中,我們難免會遇到一些問題,比如自己辛辛苦苦寫完的資料,好不容易列印出來卻發現原始檔丟了。難的收集了一些名片,卻要很麻煩的一個一個錄入資訊。快遞公司的業務越來越好,但每天卻需要花費很多時間登記錄入運單,效率非常的低。

那麼,有沒有什麼技術能幫助我們解決這些難題呢?有的,那就是OCR文字識別技術。今天我們請到了騰訊雲大資料AI產品中心的AI科學家冀永楠、產品經理Florali、陳英恬,高階工程師肖西華為我們們分享一下騰訊雲近年來在這一領域的探索情況。

什麼是OCR?

OCR 是實時高效的定位與識別圖片中的所有文字資訊,返回文字框位置與文字內容。支援多場景、任意版面下整 圖文字的識別,以及中英文、字母、數字的識別。通俗的來說,就是將圖片上的文字內容,智慧識別成為可編輯的文字,例如:

img

OCR的技術原理是什麼?

OCR本質是影像識別。其原理也和其他的影像識別問題基本一樣。包含兩大關鍵技術:文字檢測和文字識別。先將影像中的特徵的提取並檢測目標區域,之後對目標區域的的字元進行分割和分類。

以深度學習興起的時間為分割點,直至近五年之前,業界最為廣泛使用的仍然是傳統的OCR識別技術框架,而隨著深度學習的崛起,基於這一技術的OCR識別框架以另外一種新的思路迅速突破了原有的技術瓶頸(如文字定位、二值化和文字分割等),並已在工業界得到廣泛應用。

首先文字定位,接著進行傾斜文字矯正,之後分割出單字後,並對單字識別,最後基於統計模型(如隱馬爾科夫鏈,HMM)進行語義糾錯。

OCR技術的難點是什麼?

複雜背景、藝術字型、低解析度、非均勻光照、影像退化、字元形變、多語言混合、文字行復雜版式、檢測框字元殘缺,等等。

如克服這些難點的?

從幾個方面入手。一是使用場景,另一方面是從技術上的改進騰訊優圖實驗室在文字檢測技術方進行了深度優化,提出了Compact Inception,通過設計合理的網路結構來提升各尺度的文字檢測/提取能力。同時引入RNN多層自適應網路和Refinement結構來提升檢測完整性和準確性。

imgimg

騰訊雲OCR目前支援什麼功能?

基於騰訊優圖實驗室世界領先的深度學習技術,目前我們已支援: 身份證識別,銀行卡識別,名片識別,營業執照識別,行駛證駕駛證識別,車牌號識別,通用印刷體識別,手寫體識別。

大家可以掃文章頭部的小程式二維碼體驗下我們的小程式。

通用印刷體的技術難點,使用場景

我們知道身份證識別可廣泛應用在金融行業中,有使用者的身份認證中,可以減少使用者的資訊輸入,提升效率,提高使用者體驗,營業執照的識別完全省去了手工錄入的繁瑣,還可以為企業省去大量的人力資源成本,這些場景大家都已經比較熟悉。

對於通用印刷體,騰訊優圖實驗室自主設計一整套全方位多尺度文字識別引擎,可攻破模糊,散焦,透視,文字部分遮擋的問題,識別準確率高達90%以上,處於業界領先水平。使用場景廣泛,例如對任意版面上影像的文字識別,可廣泛應用在印刷文件、廣告圖、醫療、物流等行業中的識別。

對於通用印刷體有沒有什麼好的例子?

例如這個廣告,內容多字型,中英文與數字混合,背景也比較隨意。我們們的OCR通過透視矯正、去模糊等,能大幅還原影像真實度,極大提升演算法的魯棒性。

img

再例如識別文字密集,行間距小,透視畸變等的海報。人工識別需要不僅耗費時間,肉眼也比較難識別。但騰訊雲OCR 設計了小而精的特徵提取網路,配合先進的預處理技術,識別準確率高達93%以上。

img

有時候也會遇到識別率不理想的情況,如何可以提高識別準確率?

首先會確認下當前的場景,造成準確度不高的原因。評估可提高的空間設計,之後做出相應的修改,列入預處理等等。

關於騰訊雲手寫體識別這塊有沒有什麼案例?

騰訊是國內首家將手寫體識別應用在複雜場景下的服務商,數字識別準確率高達90%以上,單字識別速度在15ms以內,複雜漢字準確率超過80%。

騰訊雲手寫體OCR已運用到的運單識別場景,解決了物流行業每日快遞單人工輸入工作量極大且極易出錯,非常低效等問題。

imgimg

運單識別與傳統人工識別有什麼區別呢?

如果傳統人工識別按照3min/單,1000單需要6.25個人/天,保證運單時效則需要耗費大量人力,考慮人力成本則影響運單及時性,成本和服務難兩全。

我們的運單識別速度可以達到毫秒級/單,並支援24小時識別服務 ,業務增長時只需要投入計算用伺服器資源即可,彈性較大。

與傳統識別相比,不僅成本可以降低,提高準確性,還可以保護使用者的隱私洩露風險。

目前OCR應用現實中有很廣泛的應用場景,騰訊雲OCR有什麼優勢?

我們們的OCR文字識別技術,目前支援中文簡繁體、英文、數字、標點共10000+標籤,覆蓋上百種字型,生僻字版本更支援2W+標籤 。

那我們們在行業中也有不少落地客戶了吧?

新版手Q就用到了我們們的技術,在掃一掃、聊天視窗和空間圖片大圖預覽共三個入口上支援了提取圖片中文字的功能。

方便使用者閱讀、編輯、儲存圖片上的文字,從而可以對提取出的文字進行翻譯、搜尋。在多種場景下可以極大提升使用者對圖片上文字的閱讀和記錄效率。

img

企業微信中的名片識也用到了我們們OCR技術。使用者只需拍照或選擇名片圖片,就能準確快速地識別出名片中的文字,並自動提取為對應的欄位,極大簡化了名片錄入流程,也避免了手動錄入過程可能出現的錯誤。

img

互動QA

經過上面的分享,使用者也提出了不少問題,我們來看看使用者都問了什麼?

Q:您好,我想問下OCR 識別是否支援H5開發呢?

A:支援,介面是基於http協議,只要支援http協議都可以使用。

Q:通用印刷體識別剩下的10%,有提高的思路嗎?

A:整體思路還是要回到我們的三大引擎上。逐一進行優化。

  1. 背景識別
  2. 定位引擎
  3. 欄位識別引擎

Q:目前印刷體識別上使用的思路是先分割後識別嗎?OCR支援離線識別嗎?

A:思路是先分割後識別,我們的OCR支援離線識別的。

Q:OCR遇到無法分割或者分割錯誤的情況如何處理呢

A:很少有無法分割的情況。分割錯誤肯定會對最後的結果又影響。我們的技術,即便是再字元重疊的情況下也可以做出正確的分割。

Q:我想問下如果針對運單識別場景,請問是否可以智慧糾正客戶的地址呢?例如深圳,寫成了深土川。

A:我們會結合NLP技術,結合上下文進行智慧糾錯。

Q:目前市面已提供有相關服務,那麼我們們在這塊有什麼與眾不同的地方或者更有優勢的一面呢?

A:我們在OCR上積累的很多的相關經驗,也是國內首家將手寫體識別應用在複雜場景下的服務商。

Q:那請問騰訊雲OCR業務支援什麼語言呀,對文字大小字型等有要求嘛?

A:中文(簡體和繁體),英文及數字。

Q:之前有提到總的分類高達2w+,這種大分類模型是怎麼訓練的。

A:分級,分批訓練。

Q:那我還想問您下車牌自動識別已應用於日常生活場景中。想了解下這個的技術難點是什麼呢?

A:相比於證照類輸入圖來說,車牌輸入圖受限於實際場景配置的攝像監控裝置,及車輛位置的隨機變化,產生各種極端角度及光照案例,其質量變化範圍遠大於證照類採集影像。

Q:您剛才展示都是平整的圖片,對於手機拍的紙質文件有一定弧度,比如折過的紙沒壓平,就會有一定弧度,這個能處理嗎?

A:輕微的弧度我們可以通過技術處理,嚴重變形的相對比較困難。

Q:除了支援標準車牌,我們支援識別新能源車嗎?

A:支援的,我們目前已支援藍牌、黃牌、軍牌、警牌、教練車牌、新能源車牌等,目前識別率可達到97%-98%~

Q:請問針對物流公司司機手機拍的照片,一是面單不平整,二是光線有的不理想,三是拍照角度有傾斜。針對以上情況技術方面有沒有解決辦法?

A:拍照角度可以通過幾何演算法矯正。光線的問題也可以通過影像的歸一化增強。單面不平整,這個得看不平整到什麼程度了。

Q:車輛執行中,您這個80%的準確率是指車輛運動過程中拍攝下來的圖還是車輛停止時候拍的圖?

A:我們是按幀處理的。

Q:是否可以經過一定資料積累,糾錯等訓練,從而使其能識別手寫文字?

A:我們已實現手寫體識別~

Q:OCR對運動模糊的場景識別率有多高

A:模糊的程度差異性很大。不好做標準化的統計。影像質量不佳,最直白的處理方法是做影像的增強。

Q:貴司技術有相關paper可以查閱嗎?

A:

https://cloud.tencent.com/dev…

https://cloud.tencent.com/dev…

https://cloud.tencent.com/dev…

可以看看我們們社群的文章哦~很多文章都是鵝廠的精華呢~

Q:圖片有點模糊,能不能說下比較好具體演算法,這個太籠統了

A:有很多的濾波器都可以處理不同程度的模糊影像。也有采用神經網路的的方式處理。

我們看到不管是複雜文字識別場景還是小程式應用騰訊雲OCR都可以解決,對本文提問有任何疑問的同學,大家都可以去騰訊雲問答社群(https://cloud.tencent.com/developer/ask)提出自己的疑問,屆時會有邀請相關的產品同學回答您的問題。

感謝大家對騰訊云云+社群及騰訊雲智慧影像的支援,如需瞭解更多騰訊雲OCR識別,請點選:https://cloud.tencent.com/pro…)。

img

騰訊雲OCR接入流程

第 1 步:登陸賬號註冊並通過實名認證後,您可以登入【騰訊雲控制檯】(連結:https://console.cloud.tencent.com/ai)進行使用。如果沒有賬號,請參考 【賬號註冊教程】(連結:https://cloud.tencent.com/document/product/378/9603)。

第 2 步:建立祕鑰完成註冊後,您需要在【訪問管理】(連結:https://console.cloud.tencent.com/cam/capi )建立祕鑰。AppID、SecretID和SecretKey是您進行應用開發的唯一憑證,請妥善保管。

第 3 步:生成簽名通過簽名來驗證請求的合法性,使用者可以使用AppID、SecretID和SecretKey生成簽名,具體簽名生成方法請參閱【簽名鑑權】(連結:https://cloud.tencent.com/document/product/641/12409

第 4 步:呼叫API我們為您提供了豐富多樣的API介面,您可以檢視並呼叫【OCR】(連結:https://cloud.tencent.com/document/product/641/12407)服務。

第 5 步:檢視呼叫您可以登入【騰訊雲控制檯】(連結:https://console.cloud.tencent.com/ai/ocr/namecard),查OCR的各服務呼叫情況。

問答
OCR文字識別技術有哪些應用?
相關閱讀
文字識別OCR知識資料全集(入門/進階/論文/綜述/程式碼/專家,附檢視)
我的AI之路 —— OCR文字識別快速體驗版
借你一雙“慧眼”:一文讀懂OCR文字識別︱技術派
【每日課程推薦】機器學習實戰!快速入門線上廣告業務及CTR相應知識

此文已由作者授權騰訊雲+社群釋出,更多原文請點選

搜尋關注公眾號「雲加社群」,第一時間獲取技術乾貨,關注後回覆1024 送你一份技術課程大禮包!

海量技術實踐經驗,盡在雲加社群

相關文章