冀永楠:OCR的應用錦集及背後技術

歡迎你們前往騰訊雲+社區,獲取更多騰訊海量技術實踐乾貨哦~前端

本文由雲加社區技術沙龍 發表於雲+社區專欄算法

演講嘉賓:冀永楠,現爲騰訊雲大數據AI產品中心高級研究員。負責了騰訊雲與華星光電等多個圖像AI項目。數據庫

img7.28冀永楠OCR的應用集錦及背後技術-01.jpg安全

今天分享的主要是OCR的部分。分享騰訊雲在OCR上作的一些工做,以及騰訊雲目前在雲上面開放的OCR的一些服務。OCR簡單來講就是讓機器能看懂寫的文字。咱們手寫的文字比較複雜,什麼樣子的都有。印刷的文字稍微簡單一點,但也一樣具備複雜性。今天主要講的就是這種複雜性,這種服務在平常生活或者工程中遇到不一樣狀況所產生如何處理這些複雜性的能力。服務器

img7.28冀永楠OCR的應用集錦及背後技術-04.jpg微信

這裏分享兩個作過的例子。身份證相對來說很格式化、比較簡單東西,能夠明確知曉在哪裏找到怎樣的文字信息。後一個是醫院的檢查報告,醫院的檢查報告相對而言複雜一點,它的複雜度在於不僅是處理一個醫院的一種檢查報告,而是須要把不一樣的醫院的檢查報告所有作統一處理。這就增長了很大的難度。網絡

img7.28冀永楠OCR的應用集錦及背後技術-05.jpg框架

在作正式的介紹以前,先說一說關於OCR的歷史。OCR歷史回溯起來仍是好久遠的,最先在六七十年代就有過實際的應用。你們都寫過信,郵編號碼在信封的左上角。這就是最先的OCR的應用。這種技術被使用在了一個很是窄的場景裏面,只是要求把填在空格里的數字穩定的有效的檢索、識別出來。當時的識別機率能達到92%-93%。這解決一個很大的問題,當時郵寄信都是經過識別碼來進行投遞的。機器學習

這個應用場景後來直接致使了2013年MINST的一個誕生。全部的框架都將它做爲例子。它就是來源於這種最先的應用。一些複印機,掃描儀廠商,例如,東芝,佳能、富士通等但願將這項技術應用於掃描儀裏面的文字轉化成電子文字,便於客戶存檔。在PDF裏面也用到這種技術。工具

時間到了2015年的時候,谷歌雲盤裏全部的文件免費提供OCR的服務。即使是提供免費服務還是一種窄場景,只能使用在Google Doc存儲的文件。到今年的5月23日,騰訊雲公佈了OCR免費接入,以及其它不少AI類的圖像應用免費接入。這就意味着能夠用手機移動終端或者任何的終端設備採集一些文字的圖片後上傳到雲進行解析。

img7.28冀永楠OCR的應用集錦及背後技術-06.jpg

我用兩個維度來描述OCR的應用。一個維度是標明它是一種表格式的OCR仍是通用式的OCR。所謂表格式的OCR比較好理解,就是說要識別的這個東西里面是一種表格制式的,它有特定的規格,什麼位置寫在什麼內容。通用OCR的話就沒有這種要求,隨便拍一張照片裏任何的文字都須要提取出來,而且告知那個文字或者那段文字在哪裏。這是一個維度。另一個維度是印刷體維度和手寫體維度。這個比較好理解,可是有不少的應用裏面也是處於交界的位置上。手寫爲和印刷體還有一個交界是由於不少印刷體自己並非一個很是經常使用的印刷體。並且能夠設計成相似於花體字或者寫得比較隨意一點。好比說招牌,王老吉或者天津狗不理包子。自己的字體並非常見的字體,能夠算是手寫體偏印刷體一點。

OCR難度確定是表格式的會要容易一些。通用式的是要困難一些。一樣手寫體要困難一些,印刷體要簡單一些,那麼這個座標系裏面右下角的就是比較難的應用,左上角就是會稍微簡單一點。有任何的OCR實際場景應用的時候,咱們常常拜訪客戶。客戶提出要解決某個問題的需求的時候,若是這個落到右下角的話就會比較難。若是落在左上角的話會比較容易解決一些。

img7.28冀永楠OCR的應用集錦及背後技術-07.jpg

咱們如今騰訊雲提供的印刷體的服務基本上都是這些,經常使用的是通用OCR。往騰訊雲裏面發一張圖片,他會把這個圖片裏面全部可識別的印刷體的文字全返回出來,並告訴你這個印刷體的文字在這個圖片裏的位置。除此以外還有一些證件類的,好比駕照、車牌、銀行卡、名片等等這些,稍後會逐一的介紹這方面的應用。如今用這四個特徵來描述咱們的服務,第一咱們要求服務是準確的;另外要求咱們的服務是完備的,就是說能識別英文也能識別中文,也能識別字符。咱們如今能夠識別一部分的少數民族文字。英文也是沒有問題,其餘的文字如今也逐漸的往外拓展一個一個的加到咱們的範圍裏面。

img7.28冀永楠OCR的應用集錦及背後技術-08.jpg

快速這個特性是不少的應用場景中所要求的,咱們的OCR在GPU運行是毫秒級的。在CPU的話時間要長一點。還有就是魯棒性的問題。在手寫體的識別方面咱們主要的應用好比手寫的備忘,像早期諾基亞有一款能夠寫字並識別出來。如今全部的手機裏面都有這種功能。還有一些業務量較大的單據,如運單。這類業務咱們是第一家將手寫體應用在實際場景中的。數字的識別率高達90%以上。單字的識別率在15毫秒之內,複雜漢字超過80%。

img7.28冀永楠OCR的應用集錦及背後技術-09.jpg

手寫OCR強調;數字的準確率主要緣由是由於手寫體識別大部分都用在銀行業和數字相關的行業。不管你寫的地址仍是寫一張支票,那麼數字都是最重要的部分。因此咱們很是強調這個數字的準確率。騰訊雲的OCR服務在權威測評中也獲得了很是好的成績。在2015年的時候取得了排名第一。ICDAR是一個國際文檔與識別大會,它是一個比較權威的在OCR方面的一個會議,每兩年舉辦一次。你們若是有興趣作一些OCR的實驗或者作一些OCR的這種技術性的開發,能夠去ICDAR上面找一些對比的方法。

OCR技術自己的挑戰有這樣幾點:一個指拍出來的圖像。衆所周知全部的圖像類的AI第一步都是獲取圖像。要否則的話怎麼分析呢?那麼圖像拿過來的時候就會產生不少的問題,好比說你所用數據的採集,攝像頭等成像的儀器不同,成像的場景不同。還有要求可能也不同。

img7.28冀永楠OCR的應用集錦及背後技術-10.jpg

OCR是應用很普遍的一項技術,實際場景中會遇到一種文字傾斜、模糊等等的狀況。這是一個技術上的挑戰。還有一個就是說語言文字自己,最簡單是英文OCR。通常來說中文稍微簡單一點。中文繁體字、手寫字,國內少數民族文字等使用場景由於數據來源少,場景複雜難度有所增長。

文字大小不一以及文本背景複雜。主要是取決於場景,基本上全部經常使用的OCR識別步驟都是這樣子的:先作一個版面分析,即肯定場景。根據版面分析大概明確了正在分析的是什麼(駕照、行駛證或發票等)。進而將下一步的步驟簡化到比較簡單的環境裏,這樣有助於提升分析的結果,而且可以快速的分析出答案。

下面是文字檢測,以及文字識別。在此以後會有後處理,後處理根據一些語義和環境來把識別出來的錯誤糾正過來。例如:咖灰,咖後面不可能加一個灰,通常都是咖啡。在使用深度學習網絡技術作OCR時,並非一步一步進行,而是一個網絡裏面的一個模塊和一個模塊對應的這種功能。可是整個的流程仍然是這樣邏輯的流程。

img7.28冀永楠OCR的應用集錦及背後技術-11.jpg

OCR技術自己的發展能夠說是分爲了三個階段。最先的時候不用檢測,就像上文講的信封上數字的識別,不須要作檢測。直接使用分類器就能夠。早期的技術就是對圖像作一些特徵提取,後面加上分類器,比較成熟的好比有SVM,能直接獲得的分類結果。但在當時應用場景很窄。以後場景擴展:先識別文字的位置而後再把這些文字進行一塊一塊的切。切到小圖像以後再回歸原來的過程進行識別。

這種方法存在一個很大的問題就是你前面切的話,後面的偏差會累積。再後來有了深度學習這項技術,就開始有端到端的模型。如今大部分學術界裏面研究發表的論文都是基於CNN和RNN網絡結構的。CNN的做用是圖像特徵提取,RNN作文字序列的識別。儘管網絡結構有不少的變形,但它背後的邏輯仍然和原來的沒有太大的變化:都是先從圖像上面提取一部分特徵,再將圖像上的特徵對應到文字上。CNN是最經常使用的一種提取圖像的特徵的方式因此CNN+RNN這種網絡結構處理圖像,最後圖像產生一系列文字的特徵,最後造成文字的過程。

Attention機制最大的優勢在於識別當前的字或詞的時候,會考慮到它先後哪些字對這個字有影響。那麼在原來沒有這個以前通常認爲,全部的影響都是同樣的。由於存在必定連貫性,每一個字(詞)都與其上下文存在聯繫。考慮到這種關係就要對總體的模型和識別率進行提高。同時不一樣語言裏面的聯繫也有不一樣,這也爲語言的研究也提供了必定的信息。

img7.28冀永楠OCR的應用集錦及背後技術-12.jpg

這張PPT對應了剛纔所講傳統的OCR的流程,先將圖片獲取進行二制化,來提出多是文字的部分。再去分割這些字,把這些字分割成一塊一塊,再將這些一塊一塊小的圖片放到分類器裏面來識別這些文字是什麼字符。進行字符串彙總以後還會進行天然語言處理的修正,最後反饋正確的結果。目前騰訊雲基本上已經不採用這種傳統的方式,而是以端到端的方式爲主,那麼除了端到端的方式根據不一樣的場景應用,已經產生了一套相似工具集的方法。對於不一樣的應用場景,只需從工具集裏找出最爲適配這個場景的工具或者模塊,再將它們串起來進行調優,最後造成了總體識別的模型。

接下來先給你們介紹一下騰訊雲上的服務,再介紹一下咱們作過的一些綜合類應用。這二者的差異在於雲服務自己具備必定的通用性,基本上每一個人均可以在騰訊雲申請一個帳號,經過標準的API發送圖片等等。項目更可能是定製化解決一個具體問題的。咱們就會根據具體的問題和它產生的流程來開發一套系統或者流程來配合它的實際業務,來提升他們的生產效率。

img7.28冀永楠OCR的應用集錦及背後技術-14.jpg

身份證識能夠說是目前最火的識別項目。很早在咱們去酒店住店的時候就有一個叫作人證合一的認證過程,在沒有人工智能以前就有這種過程。去酒店住店,前臺將身份證號輸入到電腦發送至公安受權的某數據庫的遠程服務器上,以後服務器會返回一張身份證照片,服務員會看這個照片跟你本人是否是一我的,驗證完畢你就能夠住店了。

如今的技術發展到顧客把本身的身份證插到一個讀卡器裏,它會把這個身份證信息發到身份數據庫裏面把照片返還回來,並經過攝像頭拍攝臉部信息,將拍攝信息與身份證直接對比。目前這項技術不僅是用於住店,包括乘坐高鐵等,安保人證票合一等場景裏已經應用得愈來愈多。

img7.28冀永楠OCR的應用集錦及背後技術-15.jpg

名片識別是介於格式化和非格式化通用之間的一種。由於名片它所包含的信息是必定的,總會包含姓名包含工做地點,包括電話號碼這些。其所採用的字體各方面也比較恆定,因此說是格式化的。偏向通用是由於各部份內容的位置是不必定的。好比一些特別有創意的名片,常常會用一些符號代替原本應使用的一些字。

img7.28冀永楠OCR的應用集錦及背後技術-16.jpg

車牌識別服務應用範圍也比較廣。一方面是停車,還有在高速進出口以及交通管理車輛的識別也採用了車牌OCR的識別。車牌OCR的識別主要的難點在於場景多樣化以及前端採集設備的不可控。若是設備不是高清的設備放大以後會出現模糊的狀況。

img7.28冀永楠OCR的應用集錦及背後技術-17.jpg

駕駛證、行駛證兩個證件的識別通常用於租車以及車輛維修等領域的服務。共享汽車、滴滴都會用相似的服務。OCR在這類證件服務領域最大的難點在於證件的反光。這類證件自己它會有一層膜,拍照的時候可能會有反光。預處理會成爲OCR識別重要的模塊,這種預處理方式通常都是爲這種問題單獨開發的,它須要產生什麼呢?高動態,就是說這種會很是亮的。須要高動態、標準的歸一化過程,須要將識別部分歸一成比較一致的圖像。

img7.28冀永楠OCR的應用集錦及背後技術-18.jpg

銀行卡是這個領域比較常見的服務,銀行卡的字體相對比較簡單,位置也相對固定,但有的時候字體會變得很差識別,尤爲在不一樣的磨損條件下。發票OCR相對格式比較固定,問題在於發票種類多、發票的字體有時會打印的很是的不清楚。

img7.28冀永楠OCR的應用集錦及背後技術-21.jpg

通用印刷體OCR是比較常見OCR的產品,對OCR的使用至關一部分都是來自於通用的印刷體。廣告識別佔比較大。這類OCR最大的難度在於很難預料它的背景是什麼樣子,字體也是各類各樣。在歸類方面會認爲是一種介於印刷體和手寫之間的應用方式。對這類識別首先須要有足夠大的字體庫,若是還不足以解決問題就須要將手寫體的技術也放在裏面以保證比較高的準確識別率。

img7.28冀永楠OCR的應用集錦及背後技術-22.jpg

針對這一場景產生的方案可使準確率達到90%以上。隨手拍其實也是通用印刷體常見的應用方式。他的問題也是場景變化比較大,會涉及到光線變化的問題。廣告類的話光線變化不會有太多的問題,這類光線角度是一個問題,同時還有拍照手抖帶來的圖像模糊,以及擺放時產生的文字遮擋……這些都會產生影響。

img7.28冀永楠OCR的應用集錦及背後技術-23.jpg

血液的檢查單也是咱們在作項目中的一部分,醫院裏打出來的血檢單,文字間距很是小,字也小,同時識別的時候還會產生透視畸變。對於這種狀況有兩種處理方式:第採用超解析度作預處理,我把個人圖像先進行一個,能夠理解成一個採用了人工智能技術的一個非性能差值,使解析度更高、文字看上去更可識別,在進行識別器識別。第二種方式把剛纔那部分集成到網絡設計裏,最大的好處在於針對這種狀況會有比較高的識別準確率,而且識別速度會比較快。它的缺點在於遇到其餘的相似的問題的時候還會須要較大的調整纔會適用新的場景。

img7.28冀永楠OCR的應用集錦及背後技術-24.jpg

手寫體的識別就是比較困難的事情。咱們是第一家把手寫體識別應用在實際場景中的。應用的場景以快遞運單、銀行的支票爲主。

以上這些服務在騰訊雲上均可以找到相應的服務接口,能夠無償使用這些服務來本身搭建一個應用。當你實際須要開發的一個軟件,或者須要作一個手寫體的識別或者作一個通用的OCR識別的時候均可以直接去調用這些服務來完成應用。

下面都是有明確目標客戶的實際OCR應用場景。物流運單的挑戰:大概在2010年先後快遞業發展得很是迅猛。在當時他們的運單就是必須手寫以後錄入數據庫才能進行投遞。

img7.28冀永楠OCR的應用集錦及背後技術-27.jpg

早期採起的都是人工錄入的方式,開玩笑的說這多是是繼傳呼機以後另一個打字市場。咱們與順豐共同用手寫體的OCR來完成他們的運單錄入的過程。這種OCR的方式能夠持續工做、準確率高達91%並且保密性更高。

img7.28冀永楠OCR的應用集錦及背後技術-28.jpg

如今作的OCR系統,能夠日處理一千萬單,至關於三千多人三班倒的工做量。泰康認知覈保項目,是咱們如今在作的,咱們也在不斷的尋找OCR所能達到的業務和應用的邊界。泰康覈保復項目:之前須要人工確認一我的當前的身體情況是否可以買這一份健康保險。

img7.28冀永楠OCR的應用集錦及背後技術-29.jpg

咱們的主要目的是開發一種代替原有核保方式的系統,下降對醫生或者說有醫療經驗的核保人員的需求。經過OCR分析,把這些保單進行格式化、結構化輸出。以後進行我的患病風險特徵的提取。再經過特徵創建預測模型,最終獲得覈保的結論,這個項目對於OCR來說最大的難度在於單據格式的種類是衆多,來源不一。

第二個難度在於掃描件所產生的圖像質量差異很是大,第三設計系統須要對醫療知識有必定的瞭解。咱們採用的方式是除了自己的OCR的設計能力,咱們也請到了泰康的醫療專家來共同參與設計,並將知識儘可能的加入到系統裏面。一方面經過醫療字庫來提供OCR字的轉化能力;另一方面在作預測迴歸時把判斷經過機器學習的方式固化、標準化。

img7.28冀永楠OCR的應用集錦及背後技術-30.jpg

將來咱們仍會不斷的去探索AI特別是OCR的實際前沿應用。對糾錯庫多豐富一些場景信息,以使系統可以適用更多不一樣的場景。

Q&A

Q:OCR好比說高考識別的過程當中,跟快遞的掃描單有什麼區別嗎?高考卷這些OCR的掃描您那邊作過嗎?謝謝

A:咱們作過但不是高考試卷,是教育的。教育的話其實並非作只是針對高考一個場景的。其實高考的時候你寫得字每每是比運單寫的字還要清晰一些的,相對來說仍是要容易一些。比較麻煩的是裏面有不少公式,這是比較頭疼的一點。還有一點不太同樣的,運單的話它的,你想輸入的這個東西是有一個比較窄的範圍的,你輸得無非是地址,地址你能夠假設窮盡全部的地址選項。可是高考的話相對來說發散一點,它並無這麼一個全集在裏面。因此整體來說其實高考那個難度是要比運單的難度稍微大一些。但咱們也有一些教育方面的應用,那個方面的話其實咱們主要的工做是在公式上面。

Q:我問一下我如今有一個問題,我若是是PDF大量的文件上傳上去,由於PDF是掃描的圖片,它的文字就可深可淺,當我上傳一個PDF掃描實現的時候,我很大的數據量進去的時候這塊是怎麼作處理的?

A:這個有點難住我了。其實關於P處理的問題剛纔那位同事回答更爲合適一點。由於我是作算法應用的。

Q:好比說圖片的深淺不是切割了不少塊,切割了不少塊以後塊與塊之間的順序有一個拼接,這一塊是怎麼作到的?

A:如今來說有不少種方式。咱們如今基本上不太建議這種分紅小塊的方式。至少你能夠分紅行,分紅行的話若是你要作一個RNN的話要比分紅塊效果好一些。個人建議是說第一先經過一個最熟悉的方法把基本流程搭建起來,以後你會發現其中有一些步驟,那麼這些步驟在進行逐漸的優化和合並。由於有的步驟若是是兩個步驟,你沒有必要用兩個步驟,用一個網絡能夠更好的解決。可能用一個網絡效果會更好,因此我基本建議開發思路是這麼一個開發思路。

Q:我剛纔看到您作泰康項目的時候有不少先驗的信息,我想問一下先驗的信息對應於模型當中是加在哪些部分的?

A:咱們剛開始的時候確定仍是要用後處理或者前處理的方法分開來作。第一實現起來比較簡單一點,你能夠驗證你加的這個先驗知識是否真正的對你有幫助。當你肯定它有幫助的時候,你把它先獨立的分塊,以後再進一步的優化造成一個總體的功能。實際的狀況可能那種都會遇到,有的會分開兩部分,固然這個分開的就有一點技術含量了,這確實是會有一些面向應用場景的設計。

問答

AI開發的語言要求?

相關閱讀

安全報告 | 2018上半年互聯網惡意爬蟲分析:從全景視角看爬蟲與反爬蟲

安全報告 | SSH 暴力破解趨勢:從雲平臺向物聯網設備遷移

給你的CVM安裝一個面板吧!

此文已由做者受權騰訊雲+社區發佈,原文連接:https://cloud.tencent.com/developer/article/1182593?fromSource=waitui

歡迎你們前往騰訊雲+社區或關注雲加社區微信公衆號(QcloudCommunity),第一時間獲取更多海量技術實踐乾貨哦~

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

相關文章
相關標籤/搜索