一文帶你了解文字識別
共 1870字,需瀏覽 4分鐘
·
2022-02-09 17:36
摘要:本文主要介紹文字檢測和文字識別作為計算機視覺一部分的重要性,基本知識,面臨的挑戰(zhàn),以及部分最新的成果。
人類在認識了解世界的信息中91%來自視覺,同樣計算機視覺是機器認知世界的基礎(chǔ),也是人工智能研究的熱點,文字識別也是人工智能的重要研究方向。在我們生活當(dāng)中,文字是無處不在的,我們的衣食住行都是離不開它的。
文字的價值
首先,文字并非自然產(chǎn)生,而是人類特有的造物,是高層語義信息的載體。文字從整個文化的角度來講也是非常重要的,人類的文明離不開文字,文字是我們學(xué)習(xí)知識、傳播信息、記錄思想很重要的載體,沒有文字人類的文明無從談起。比如說王羲之的“蘭亭序”,不只是文化作品,也是人類歷史上璀璨的明珠之一;再比如詩經(jīng),通過詩經(jīng)我們既可以學(xué)習(xí)它朗朗上口的文學(xué)特性,也可以通過它了解兩千年前歷史的故事和先人的思想。
在上圖的右側(cè)的兩幅圖里面,可以看到是有建筑、有場景、有樹木等。如果僅僅看到這兩幅圖,相信大家并不知道圖片表達的意思。但是結(jié)合了文字之后,就可以一目了然的看到要講的內(nèi)容。所以說文字是計算機視覺的重要線索,與其他視覺信息有著重要的互補作用,可以和對話、NLP等,合成多模態(tài)語義分析。
光學(xué)字符識別,英文為OCR,是指把圖片、PDF中的文字轉(zhuǎn)換成可編輯的文字,也就是通常所說的文字識別。如果只提光學(xué)字符識別,估計很多人不知道是什么意思,所以大家通常把光學(xué)字符識別說成為文字識別。實際光學(xué)字符識別是一般包括檢測和識別等多個過程。文字檢測,是指判斷是否存在文字實例,并給出具體位置的過程。而文字識別是指把文字區(qū)域轉(zhuǎn)化成計算機可讀和編輯的符號。
文字識別方法也是有很多的,有一種方法是基于手工設(shè)計的特征。這個在2014年前是主流的方法,比如MSER,SIFT等。在2014年之后,大家主要用的方法是深度學(xué)習(xí)方法。
左邊這兩張圖分別是把發(fā)票和文檔轉(zhuǎn)化成文字
在文字識別技術(shù)領(lǐng)域,華為云也有著深入的研究。華為云的OCR處理流程,融合了多種圖像處理技術(shù),具有高精度,魯棒性和自適應(yīng)性等特點。處理結(jié)果中,文字識別精度特別高,支持錯行、蓋章、文字疊加等復(fù)雜場景。同時還支持多種類型單據(jù)、及自適應(yīng)不同質(zhì)量圖片。整個流程包括圖像預(yù)處理、表格提?。ㄓ袥]有表格進一步處理)、文字定位,整個流程中可能還會有文字矯正、文字識別、文字后處理等內(nèi)容,最后返回給客戶的是結(jié)構(gòu)化的json數(shù)據(jù)。
文字和檢測和識別的難點也是非常多。從下面圖片可以看得出,它的背景非常的復(fù)雜,字體不一、顏色多種多樣、字體多種朝向、大小各不相同、語言不統(tǒng)一、模板不固定等應(yīng)用場景,這些都是日常生活中所看到的。
在日常生活的指示欄、窗戶、磚塊、圖標(biāo)、花草、柵欄、樹木、機電等都與文字有一定的相似性,給檢測和識別帶來很大的干擾。
圖像本身和成像也會存在的問題,比如分比率、曝光、反光、局部遮擋、干擾等,給檢測和識別帶來很大的挑戰(zhàn)。
深度學(xué)習(xí)時代的文字和檢測和識別,主要是基于深度學(xué)習(xí)。其中文字檢測和目標(biāo)檢測類似,主要是基于物體檢測和基于分割。比如說我們左上邊看到的textbox是基于SSD目標(biāo)檢測網(wǎng)絡(luò),主要改了anchor的設(shè)置。在左下圖的pixellink,則是基于分割。其中基于目標(biāo)檢測,更多是側(cè)重比較規(guī)整的、可以用四點表示,而分割更多傾向于各種不規(guī)則形狀的文字。
文字識別,最常用的思想是把文字分成一個個字符,然后直接分類,這是以前傳統(tǒng)方法最常用的技術(shù)之一。中間一個也是基于分類,但是基于單詞,對整句話非常難以處理好。最后,是基于序列的特征,提取基本特征,比如說CTC,是參考語音識別,比如說Attention,比如說基于sequence2sequence。最后就是端到端的識別,是在一個網(wǎng)絡(luò)里同時做到文字檢測和識別,檢測和識別可以相輔相成,提高性能。
華中科技大學(xué)許老師提出一個TextField的概念,就是文字方向場的概念,傳統(tǒng)基于分割的文字檢測方法有一個很大的局限性就是對密集文本無法有效區(qū)分開。他們提出一個文字方向場,基于像素做回歸,然后通過后處理組合成一個文字條,對于彎曲特別離譜的文字都可以檢測出來。
在文字識別當(dāng)中非常有代表性的一個方法是就是華中科技大學(xué)白老師團隊提出的CRNN模型(后正式發(fā)表在IEEE TPAMI2016上),稱之為 CRNN,其底層用 CNN 提取特征,中層用 LSTM 進行序列建模,上層用 CTC loss 對目標(biāo)進行優(yōu)化。它是一個端到端可訓(xùn)練的文字識別結(jié)構(gòu),但并未使用 Attention。目前,CRNN 已成長為該領(lǐng)域的一個標(biāo)準(zhǔn)方法。
